platform/upstream/libvpx.git
9 years agoMerge "Add a new control of golden frame boost in CBR mode"
Yaowu Xu [Tue, 28 Oct 2014 16:32:58 +0000 (09:32 -0700)]
Merge "Add a new control of golden frame boost in CBR mode"

9 years agoRelax maximum Q for extreme overshoot.
Paul Wilkins [Tue, 28 Oct 2014 13:03:06 +0000 (13:03 +0000)]
Relax maximum Q for extreme overshoot.

Added code to relax the active maximum Q in response
to extreme local overshoot to reduce bandwidth peaks.

The impact is small in metrics terms, but it this helps reduce
bandwidth spikes and overall overshoot in a number of
clips in our tests sets (especially the YT test set).

In particular this should help prevent very big spikes where a clip
is mainly easy but has a short hard section. In such a case a choice
of maximum Q for the clip as a whole may allow us to hit the overall
target rate but give some extreme spikes. The chunked encoding in YT
mitigates this problem but it can show up where a longer clip is
coded as a single chunk.

Change-Id: I213d09950ccb8489d10adf00fda1e53235b39203

9 years agoRefactor encoder tile data structure
Jingning Han [Mon, 27 Oct 2014 18:11:50 +0000 (11:11 -0700)]
Refactor encoder tile data structure

Make the common tile info as one element in the encoder tile data
struct.

Change-Id: I8c474b4ba67ee3e2c86ab164f353ff71ea9992be

9 years agoAdd a new control of golden frame boost in CBR mode
Yaowu Xu [Mon, 27 Oct 2014 20:13:14 +0000 (13:13 -0700)]
Add a new control of golden frame boost in CBR mode

0 means that golden boost is off, and uses average frame target rate,
a non-zero number means the percentage of boost over average frame
bitrate is given initially to golden frames in CBR mode.

Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d

9 years agoRefactor rtc coding mode to support tile encoding
Jingning Han [Mon, 27 Oct 2014 16:52:14 +0000 (09:52 -0700)]
Refactor rtc coding mode to support tile encoding

Use per tile threshold in the prediction mode search process.

Change-Id: I6c74ee5a3b069bb4281002dfe51310911a0756c0

9 years agoMerge "Add a new control of max bitrate for inter frame"
Yaowu Xu [Mon, 27 Oct 2014 15:11:54 +0000 (08:11 -0700)]
Merge "Add a new control of max bitrate for inter frame"

9 years agoMerge "Tile based adaptive mode search in RD loop"
Jingning Han [Sat, 25 Oct 2014 01:44:52 +0000 (18:44 -0700)]
Merge "Tile based adaptive mode search in RD loop"

9 years agoMerge changes I8a9c9019,Ic7b2faa3,I44d42a50,I3f3a3924,I10747b32,I31b49c9e
James Zern [Fri, 24 Oct 2014 18:43:51 +0000 (11:43 -0700)]
Merge changes I8a9c9019,Ic7b2faa3,I44d42a50,I3f3a3924,I10747b32,I31b49c9e

* changes:
  add vp9_loop_filter_data_reset
  move LFWorkerData allocation to VP9LfSync
  vp9_loop_filter_frame_mt: remove pbi dependency
  vp9_loop_filter_frame_mt: pass planes directly
  vp9_loop_filter_frame_mt: pass VP9LfSync directly
  vp9: store TileWorkerData allocations separately

9 years agoAdd a new control of max bitrate for inter frame
Yaowu Xu [Fri, 24 Oct 2014 16:31:16 +0000 (09:31 -0700)]
Add a new control of max bitrate for inter frame

Change-Id: I205de3611622cff7f751ea8baf9f82784581730a

9 years agoTile based adaptive mode search in RD loop
Jingning Han [Thu, 23 Oct 2014 23:54:45 +0000 (16:54 -0700)]
Tile based adaptive mode search in RD loop

Make the spatially adaptive mode search in rate-distortion
optimization loop inter tile independent. Experiments suggest that
this does not significantly change the coding staticstics.

Single tile, speed 3:
pedestrian_area 1080p 1500 kbps
59192 b/f, 40.611 dB, 101689 ms

blue_sky 1080p 1500 kbps
58505 b/f, 36.347 dB, 62458 ms

mobile_cal 720p 1000 kbps
13335 b/f, 35.646 dB, 45655 ms

as compared to 4 column tiles, speed 3:
pedestrian_area 1080p 1500 kbps
59329 b/f, 40.597 dB, 101917 ms

blue_sky 1080p 1500 kbps
58712 b/f, 36.320 dB, 62693 ms

mobile_cal 720p 1000 kbps
13191 b/f, 35.485 dB, 45319 ms

Change-Id: I35c6e1e0a859fece8f4145dec28623cbc6a12325

9 years agovp8: Updates to noise level estimate.
Marco [Fri, 24 Oct 2014 16:31:38 +0000 (09:31 -0700)]
vp8: Updates to noise level estimate.

-Use full bandwidth (when temporal layers is on) for checking switching.
-Normalize metric wrt num_blocks.
-Rounding fix to update of average noise level metric.
-Make default internal denoiser mode == kDenoiserOnYUV (in denoiser set_parameters()).
-Adjust some thresholds.

Change-Id: Ib827512b25a7bf1f66c76d3045f3a68ce56b1cd2

9 years agoMerge "Enable dual arf with constant q."
Paul Wilkins [Fri, 24 Oct 2014 12:51:25 +0000 (05:51 -0700)]
Merge "Enable dual arf with constant q."

9 years agoMerge "Move frame re-sizing into the recode loop"
Paul Wilkins [Fri, 24 Oct 2014 12:50:39 +0000 (05:50 -0700)]
Merge "Move frame re-sizing into the recode loop"

9 years agoMove frame re-sizing into the recode loop
Adrian Grange [Fri, 17 Oct 2014 22:12:43 +0000 (15:12 -0700)]
Move frame re-sizing into the recode loop

The point at which frames are scaled to their
coded dimensions is moved into the re-code loop.

This is in preparation for a further patch that
will add logic into the re-code loop to reduce
the coded frame size if the encoder is struggling
to hit the target data rate at the native frame
size.

Change-Id: Ie4131f5ec6fb93148879f6ce96123296442bf2d1

9 years agoMerge "build/make/iosbuild.sh: Remove armv6 support."
Tom Finegan [Thu, 23 Oct 2014 21:20:06 +0000 (14:20 -0700)]
Merge "build/make/iosbuild.sh: Remove armv6 support."

9 years agoMerge "Move filter_ref initialization"
Yaowu Xu [Thu, 23 Oct 2014 18:20:22 +0000 (11:20 -0700)]
Merge "Move filter_ref initialization"

9 years agoadd vp9_loop_filter_data_reset
James Zern [Thu, 26 Dec 2013 18:15:56 +0000 (13:15 -0500)]
add vp9_loop_filter_data_reset

Change-Id: I8a9c9019242ec10fa499a78db322221bf96a0275

9 years agoMove filter_ref initialization
Yaowu Xu [Thu, 23 Oct 2014 15:27:25 +0000 (08:27 -0700)]
Move filter_ref initialization

To outside the loop to avoid repeating the operations.

Change-Id: I66c1986e98ce0d7594caad3d3b45de655b299bff

9 years agoEnable dual arf with constant q.
Paul Wilkins [Wed, 22 Oct 2014 12:46:40 +0000 (13:46 +0100)]
Enable dual arf with constant q.

Add second level arf Q adjustment when using dual arfs
in constant Q mode.

Previously in constant Q mode enabling dual arf hurt by ~5%
but with this change the average benefit is ~1-1.5% with some
mid range data points up ~10%.

Note however that it still hurts on some clips including
some very low motion show content.

Change-Id: I5b7789a2f42a6127d9e801cc010c20a7113bdd9b

9 years agoMerge "Initialization bug for multi arf."
Paul Wilkins [Thu, 23 Oct 2014 09:02:48 +0000 (02:02 -0700)]
Merge "Initialization bug for multi arf."

9 years agoMerge "Allow checking zeromv mode in vp9_pick_inter_mode"
Jingning Han [Thu, 23 Oct 2014 01:46:20 +0000 (18:46 -0700)]
Merge "Allow checking zeromv mode in vp9_pick_inter_mode"

9 years agoMerge "vp9_ethread: allocate frame contexts outside VP9_COMMON struct"
Yunqing Wang [Thu, 23 Oct 2014 00:10:39 +0000 (17:10 -0700)]
Merge "vp9_ethread: allocate frame contexts outside VP9_COMMON struct"

9 years agobuild/make/iosbuild.sh: Remove armv6 support.
Tom Finegan [Wed, 22 Oct 2014 23:26:14 +0000 (16:26 -0700)]
build/make/iosbuild.sh: Remove armv6 support.

Apple no longer supports armv6 targets in Xcode or iOS.

Change-Id: Ia7aa496afe62162c43c004530324406486c9a052

9 years agoMerge "Fix Neon convolve profiling"
Frank Galligan [Wed, 22 Oct 2014 22:50:36 +0000 (15:50 -0700)]
Merge "Fix Neon convolve profiling"

9 years agovp9_ethread: allocate frame contexts outside VP9_COMMON struct
Yunqing Wang [Wed, 22 Oct 2014 21:37:38 +0000 (14:37 -0700)]
vp9_ethread: allocate frame contexts outside VP9_COMMON struct

This patch allocated frame contexts outside VP9_COMMON. This allows
multiple threads to share the same copy of frame contexts, and
reduces the overhead. It also guarantees the correct update of
these contexts during bitstream packing. This patch doesn't change
encoding result.

Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353

9 years agoMerge "Fix a subtle issue in re-use inter_pred"
Yaowu Xu [Wed, 22 Oct 2014 21:53:06 +0000 (14:53 -0700)]
Merge "Fix a subtle issue in re-use inter_pred"

9 years agoAllow checking zeromv mode in vp9_pick_inter_mode
Jingning Han [Wed, 22 Oct 2014 21:47:15 +0000 (14:47 -0700)]
Allow checking zeromv mode in vp9_pick_inter_mode

This improves the compression performance of speed -5 by 0.6%. The
speed impact is less than 1%.

Change-Id: Ie77daa561976dfc8b479061e1221bdf428eb0c3b

9 years agoMerge "vp9_denoiser_sse2.c: improve code style."
JackyChen [Wed, 22 Oct 2014 20:52:03 +0000 (13:52 -0700)]
Merge "vp9_denoiser_sse2.c: improve code style."

9 years agoFix a subtle issue in re-use inter_pred
Yaowu Xu [Wed, 22 Oct 2014 18:57:09 +0000 (11:57 -0700)]
Fix a subtle issue in re-use inter_pred

The initialization of this_mode_pred does not work when the ref_frame
loop ever goes beyond LAST_FRAME. This commit fixes the subtle issue
and allows potentially expanding the loop to test GOLDEN_FRAME.

Change-Id: Ibbd427a22160d1d9eacb8ed0c87f88d6cef9c0f3

9 years agovp9_denoiser_sse2.c: improve code style.
JackyChen [Fri, 17 Oct 2014 19:16:13 +0000 (12:16 -0700)]
vp9_denoiser_sse2.c: improve code style.

denoiser_sse2.c: fix typos in comment.

Change-Id: Ic0fb102331b0e533c058da3cab1fbc30de9a0070

9 years agoFix Neon convolve profiling
Frank Galligan [Wed, 22 Oct 2014 17:14:38 +0000 (10:14 -0700)]
Fix Neon convolve profiling

When profiling, gprof can't distinguish between matching labels in
different files.

Change-Id: I56770df212ed314a0d8568071fa8157624ef1e8f

9 years agoInitialization bug for multi arf.
Paul Wilkins [Wed, 22 Oct 2014 17:51:07 +0000 (18:51 +0100)]
Initialization bug for multi arf.

Moved erroneous reset of cpi->multi_arf_last_grp_enabled.

Change-Id: Ibb0b96f6ed1d5eeb575a3b1c798e0fe2ee651d06

9 years agovp8: Update to computation of noise level.
Marco [Wed, 22 Oct 2014 17:36:03 +0000 (10:36 -0700)]
vp8: Update to computation of noise level.

Avoid unneeded computation of mse in process_denoise.

Change-Id: I3a538178f2d138750d0c38ea4dd05dbbc2b7df41

9 years agoMerge "Refactor rate distortion cost structure in non-RD coding mode"
Jingning Han [Wed, 22 Oct 2014 15:41:36 +0000 (08:41 -0700)]
Merge "Refactor rate distortion cost structure in non-RD coding mode"

9 years agoMerge "Change speed features for good quality(cpu-used=5)"
Yaowu Xu [Wed, 22 Oct 2014 15:40:15 +0000 (08:40 -0700)]
Merge "Change speed features for good quality(cpu-used=5)"

9 years agoRefactor rate distortion cost structure in non-RD coding mode
Jingning Han [Tue, 21 Oct 2014 23:31:37 +0000 (16:31 -0700)]
Refactor rate distortion cost structure in non-RD coding mode

This commit refactors the rate distortion structure used in the
non-RD coding mode and saves a few RDCOST calculations.

Change-Id: I62c3416c300d2c5372f21b96d93a6b633a34ab3a

9 years agoChange speed features for good quality(cpu-used=5)
Yaowu Xu [Mon, 20 Oct 2014 21:41:20 +0000 (14:41 -0700)]
Change speed features for good quality(cpu-used=5)

The existing speed features produce horrible encoding results, almost
30% worse than cpu-used=4, this commit adjust the speed features to
produce relatively resonable results to be within 3%-5% of cpu-used=4.

Change-Id: I0ca6ebafb33024d4a0cbcf04c78a4a00b8dd1ecf

9 years agoRemove unused copy_partitioning
Jingning Han [Tue, 21 Oct 2014 16:47:58 +0000 (09:47 -0700)]
Remove unused copy_partitioning

Change-Id: I75a2a3772ed17e73180eb4f263cc838cae4927b0

9 years agoMerge "Adding test vectors for profile 2 and 3"
Deb Mukherjee [Tue, 21 Oct 2014 16:44:46 +0000 (09:44 -0700)]
Merge "Adding test vectors for profile 2 and 3"

9 years agoMerge "Remove deprecated constrain_copy_partitioning function"
Jingning Han [Tue, 21 Oct 2014 16:44:11 +0000 (09:44 -0700)]
Merge "Remove deprecated constrain_copy_partitioning function"

9 years agoMerge "Remove unused sb_has_motion function in vp9_encodeframe.c"
Jingning Han [Tue, 21 Oct 2014 16:43:55 +0000 (09:43 -0700)]
Merge "Remove unused sb_has_motion function in vp9_encodeframe.c"

9 years agoMerge "Remove deprecated use_lastframe_partitioning feature"
Jingning Han [Tue, 21 Oct 2014 16:43:45 +0000 (09:43 -0700)]
Merge "Remove deprecated use_lastframe_partitioning feature"

9 years agoMerge "Hybrid partition search for rtc coding mode"
Jingning Han [Tue, 21 Oct 2014 16:43:35 +0000 (09:43 -0700)]
Merge "Hybrid partition search for rtc coding mode"

9 years agoMerge "Extend --auto-alt-ref so it can enable multi-alt ref."
Paul Wilkins [Tue, 21 Oct 2014 14:02:24 +0000 (07:02 -0700)]
Merge "Extend --auto-alt-ref so it can enable multi-alt ref."

9 years agoMerge "Resolve compiler warning."
Paul Wilkins [Tue, 21 Oct 2014 14:02:13 +0000 (07:02 -0700)]
Merge "Resolve compiler warning."

9 years agoAdding test vectors for profile 2 and 3
Deb Mukherjee [Tue, 21 Oct 2014 06:51:58 +0000 (23:51 -0700)]
Adding test vectors for profile 2 and 3

Also adds mising test vectors for profile 1.

Change-Id: I5269af8b9e6b708ce50a0d9c69b6cae4bb2870dc

9 years agoRemove deprecated constrain_copy_partitioning function
Jingning Han [Mon, 20 Oct 2014 22:34:19 +0000 (15:34 -0700)]
Remove deprecated constrain_copy_partitioning function

Its functionality has been replaced with choose_partitioning and
threshold based control on split mode check.

Change-Id: Ic9bb321df06b524f5c38ea5874dc6f6a8f93c5e3

9 years agoRemove unused sb_has_motion function in vp9_encodeframe.c
Jingning Han [Mon, 20 Oct 2014 22:29:58 +0000 (15:29 -0700)]
Remove unused sb_has_motion function in vp9_encodeframe.c

Change-Id: I035fb6aa5c10741b065e27befb097d8087e3c62f

9 years agoRemove deprecated use_lastframe_partitioning feature
Jingning Han [Mon, 20 Oct 2014 22:00:24 +0000 (15:00 -0700)]
Remove deprecated use_lastframe_partitioning feature

This speed feature has been deprecated in both yt and rtc coding
modes. This commit removes the related operations.

Change-Id: I079c79c6adafe45581af2ebf8b98faebcface1ce

9 years agoHybrid partition search for rtc coding mode
Jingning Han [Fri, 17 Oct 2014 15:58:28 +0000 (08:58 -0700)]
Hybrid partition search for rtc coding mode

This commit re-designs the recursive partition search scheme in
rtc speed -5. It first checks if the current block is under cyclic
refresh mode. If so, apply recursive partition search. Otherwise,
perform sub-sampled pixel based partition selection. When the
pre-selection finds the partition size should be 32x32 or above,
use the partition size directly. Otherwise, apply partition search
at nearby levels around the preset partition size.

It is enabled in speed -5. The compression performance of rtc
speed -5 is improved by 9.4%. Speed wise, the run-time goes slower
from 1% to 10%.

nik_720p, 1000 kbps
33220 b/f, 38.977 dB, 10109 ms -> 33200 b/f, 39.119 dB, 10210 ms

vidyo1_720p, 1000 kbps
16536 b/f, 40.495 dB, 10119 ms -> 16536 b/f, 40.827 dB, 11287 ms

Change-Id: I65adba352e3adc03bae50854ddaea1b421653c6c

9 years agoMerge "SAD32xh and SAD64xh for AVX2"
Yunqing Wang [Mon, 20 Oct 2014 19:37:55 +0000 (12:37 -0700)]
Merge "SAD32xh and SAD64xh for AVX2"

9 years agoMerge "Remove the dependency in token storing locations"
Yunqing Wang [Mon, 20 Oct 2014 15:26:46 +0000 (08:26 -0700)]
Merge "Remove the dependency in token storing locations"

9 years agoExtend --auto-alt-ref so it can enable multi-alt ref.
Paul Wilkins [Mon, 20 Oct 2014 11:05:17 +0000 (12:05 +0100)]
Extend --auto-alt-ref so it can enable multi-alt ref.

Extend --auto-alt-ref from parameter so we can use it to
turn multi-arf on and off from the command line.

For now the range is 0-off, 1-on, 2-multi-arf on.

Rename play_alternate to enable_auto_arf

Change-Id: Id7b64407cfbe76ba0090a83b588a03e22a240386

9 years agoResolve compiler warning.
Paul Wilkins [Mon, 20 Oct 2014 11:08:33 +0000 (12:08 +0100)]
Resolve compiler warning.

conversion from 'const int64_t' to 'int', possible loss of data.

Change-Id: I471a73bba5d448d9be0ef9cbf1590fa73aa74be1

9 years agoMerge "Alter adjustment of two pass GF/ARF boost with Q."
Paul Wilkins [Mon, 20 Oct 2014 10:12:06 +0000 (03:12 -0700)]
Merge "Alter adjustment of two pass GF/ARF boost with Q."

9 years agoSAD32xh and SAD64xh for AVX2
levytamar82 [Thu, 2 Oct 2014 06:47:31 +0000 (23:47 -0700)]
SAD32xh and SAD64xh for AVX2

All sad function that process above 32 consecutive elements are optimized
for AVX2:
vp9_sad64x64
vp9_sad64x32
vp9_sad32x64
vp9_sad32x32
vp9_sad32x16
vp9_sad64x64_avg
vp9_sad64x32_avg
vp9_sad32x64_avg
vp9_sad32x32_avg
vp9_sad32x16_avg
The functions that appeared as a hotspot is vp9_sad32x32 and vp9_sad64x64
vp9_sad32x32 was optimized by 68% and vp9_sad64x64 was optimized by 90%
both of them gave and overall ~2.3% user level gain

Change-Id: Iccf86b375a2b54c5fbbe685902ead0c9a561b9fd

9 years agoMerge "Add highbitdepth function for vp9_avg_8x8"
Debargha Mukherjee [Sat, 18 Oct 2014 21:37:10 +0000 (14:37 -0700)]
Merge "Add highbitdepth function for vp9_avg_8x8"

9 years agoMerge "Remove unused VAR_BASED_FIXED_PARTITION flag"
Yaowu Xu [Sat, 18 Oct 2014 20:31:47 +0000 (13:31 -0700)]
Merge "Remove unused VAR_BASED_FIXED_PARTITION flag"

9 years agoMerge "Use rate/distortion thresholds to control non-RD partition search"
Yaowu Xu [Sat, 18 Oct 2014 20:31:41 +0000 (13:31 -0700)]
Merge "Use rate/distortion thresholds to control non-RD partition search"

9 years agoAdd highbitdepth function for vp9_avg_8x8
Peter de Rivaz [Thu, 16 Oct 2014 13:36:07 +0000 (14:36 +0100)]
Add highbitdepth function for vp9_avg_8x8

Cherry-picked from https://gerrit.chromium.org/gerrit/#/c/71914/
(a92f987a6b7819ae5c62a429e126e1c26bdb1b71) on highbitdepth branch.

Change-Id: I6903e4e4cb57d90590725c8a1c64c23da7ae65e8

9 years agoUpdates to aggressive denoising mode.
Marco [Fri, 17 Oct 2014 22:55:30 +0000 (15:55 -0700)]
Updates to aggressive denoising mode.

Fix to the noise level and bitrate threshold settings per resolution.

Change-Id: I25524b7f78afa1aeb76edef7be13c17bc8976508

9 years agoRemove the dependency in token storing locations
Yunqing Wang [Thu, 16 Oct 2014 19:29:48 +0000 (12:29 -0700)]
Remove the dependency in token storing locations

Currently, the tokens for a tile are stored immediately after its
preceding tile, which causes a dependency. This is unnecessary
since we always allocate enough memory for tokens. Removing
the dependency allows token writing done in parallel. This patch
doesn't change encoding result.

Change-Id: I7365a6e5e2c2833eb14377c37e1503c9d0f26543

9 years agoMerge "Correct the logic of ready_for_new_data."
hkuang [Fri, 17 Oct 2014 21:13:44 +0000 (14:13 -0700)]
Merge "Correct the logic of ready_for_new_data."

9 years agoMerge "vp9_denoiser_sse2.c: solve windows build error."
JackyChen [Fri, 17 Oct 2014 18:16:22 +0000 (11:16 -0700)]
Merge "vp9_denoiser_sse2.c: solve windows build error."

9 years agoMerge "Add init and reset functions for RD_COST struct"
Jingning Han [Fri, 17 Oct 2014 18:15:19 +0000 (11:15 -0700)]
Merge "Add init and reset functions for RD_COST struct"

9 years agoMerge "Reset rate cost value in rd mode search"
Jingning Han [Fri, 17 Oct 2014 18:15:03 +0000 (11:15 -0700)]
Merge "Reset rate cost value in rd mode search"

9 years agoCorrect the logic of ready_for_new_data.
hkuang [Fri, 17 Oct 2014 17:09:56 +0000 (10:09 -0700)]
Correct the logic of ready_for_new_data.

This should be set right after decoder really start to decode frame
instead setting at the end.

Even decoder does not have a displayable frame to show and return NULL
to application, this should be set too.

Change-Id: If0313a834bc64e3b0f05a84f4459d444d9eab0d8

9 years agoReset rate cost value in rd mode search
Jingning Han [Fri, 17 Oct 2014 16:31:42 +0000 (09:31 -0700)]
Reset rate cost value in rd mode search

When early termination is triggered, properly reset the rate cost
to invalid value to avoid potential ioc issue.

Change-Id: I3444390be2e49a34bb02cf8a74c33d5dbd96d88d

9 years agovp9_denoiser_sse2.c: solve windows build error.
JackyChen [Fri, 17 Oct 2014 16:28:22 +0000 (09:28 -0700)]
vp9_denoiser_sse2.c: solve windows build error.

Change-Id: Ib5df91c8580d5dbeb0b3554edc9c2ca906ba4c4d

9 years agoRemove unused VAR_BASED_FIXED_PARTITION flag
Jingning Han [Wed, 15 Oct 2014 22:45:27 +0000 (15:45 -0700)]
Remove unused VAR_BASED_FIXED_PARTITION flag

Change-Id: I4ce19b7cb1c45fed86e81ee785e787630020fb4f

9 years agoAlter adjustment of two pass GF/ARF boost with Q.
Paul Wilkins [Thu, 16 Oct 2014 15:24:25 +0000 (16:24 +0100)]
Alter adjustment of two pass GF/ARF boost with Q.

Delete gfboost_qadjust() and move Q based adjustment
into calc_frame_boost(). Also remove clamping. Making
the adjustment here means that it influences not just the
boost level but also the selection of the GF/ARF interval.

This change gives a small average gain in PSNR but
larger gains in SSIM, especially for harder std-hd set (1.5%)

Change-Id: I3aa81b8feccaeff93d915e19fb9cf5cd64c86327

9 years agoMerge "vp9_denoiser_sse2.c: eliminate gcc warnings"
James Zern [Fri, 17 Oct 2014 10:26:06 +0000 (03:26 -0700)]
Merge "vp9_denoiser_sse2.c: eliminate gcc warnings"

9 years agovp9_denoiser_sse2.c: eliminate gcc warnings
JackyChen [Mon, 13 Oct 2014 06:29:10 +0000 (23:29 -0700)]
vp9_denoiser_sse2.c: eliminate gcc warnings

Change-Id: I5f63f48e11e31ea9951223c5b18f42a2471e4560

9 years agoMerge "Adds a set of end-to-end encode tests"
Deb Mukherjee [Thu, 16 Oct 2014 21:27:26 +0000 (14:27 -0700)]
Merge "Adds a set of end-to-end encode tests"

9 years agoMerge "Fix an ioc issue in super_block_uvrd"
Jingning Han [Thu, 16 Oct 2014 19:35:11 +0000 (12:35 -0700)]
Merge "Fix an ioc issue in super_block_uvrd"

9 years agoAdds a set of end-to-end encode tests
Deb Mukherjee [Wed, 15 Oct 2014 23:40:12 +0000 (16:40 -0700)]
Adds a set of end-to-end encode tests

Covers all profiles and input formats. The tests check if the
encode succeeds and if the psnr is sane.

Change-Id: I195a5330debf92562846121819b6eaf961e27c01

9 years agoFix an ioc issue in super_block_uvrd
Jingning Han [Thu, 16 Oct 2014 16:19:42 +0000 (09:19 -0700)]
Fix an ioc issue in super_block_uvrd

This commit fixes an ioc issue that will happen when the cumulative
variables are not in effective use. The fix discards these
redundant additions.

Change-Id: Idbac5bfb989c0cedc5f8a323effce938519b2457

9 years agoMerge "Change initialization of static_scene_max_gf_interval."
Paul Wilkins [Thu, 16 Oct 2014 17:46:20 +0000 (10:46 -0700)]
Merge "Change initialization of static_scene_max_gf_interval."

9 years agoMerge "[spatial svc]Another workaround to avoid using prev_mi"
Paul Wilkins [Thu, 16 Oct 2014 17:46:08 +0000 (10:46 -0700)]
Merge "[spatial svc]Another workaround to avoid using prev_mi"

9 years agoMerge "Revert "Move input frame scaling into the recode loop""
Paul Wilkins [Thu, 16 Oct 2014 17:44:58 +0000 (10:44 -0700)]
Merge "Revert "Move input frame scaling into the recode loop""

9 years agoMerge "Revert "[spatial svc]Another workaround to avoid using prev_mi""
Paul Wilkins [Thu, 16 Oct 2014 17:44:47 +0000 (10:44 -0700)]
Merge "Revert "[spatial svc]Another workaround to avoid using prev_mi""

9 years agomove LFWorkerData allocation to VP9LfSync
James Zern [Sun, 31 Aug 2014 20:16:37 +0000 (13:16 -0700)]
move LFWorkerData allocation to VP9LfSync

this removes an assumption that worker->data1 would be pointing to a
TileWorkerData allocation.
additionally, within the multi-threaded loopfilter pass VP9LfSync as a
parameter to the worker hook, removing the need for a shadow pointer in
LFWorkerData.

Change-Id: Ic7b2faa34e3eb59dbcb8a7c67f333448fa047c88

9 years agovp9_loop_filter_frame_mt: remove pbi dependency
James Zern [Sun, 31 Aug 2014 19:46:19 +0000 (12:46 -0700)]
vp9_loop_filter_frame_mt: remove pbi dependency

Change-Id: I44d42a5098305a2d050ce8ff3c76baf7798c48af

9 years agovp9_loop_filter_frame_mt: pass planes directly
James Zern [Sun, 31 Aug 2014 19:36:34 +0000 (12:36 -0700)]
vp9_loop_filter_frame_mt: pass planes directly

one less dependency on pbi

Change-Id: I3f3a392416d3523f4aea6682c3965885baf85197

9 years agoMerge "Fix in bit-shift operation for highbitdepth decode"
Deb Mukherjee [Thu, 16 Oct 2014 16:23:57 +0000 (09:23 -0700)]
Merge "Fix in bit-shift operation for highbitdepth decode"

9 years agovp9_loop_filter_frame_mt: pass VP9LfSync directly
James Zern [Sun, 31 Aug 2014 19:21:42 +0000 (12:21 -0700)]
vp9_loop_filter_frame_mt: pass VP9LfSync directly

a step towards removing the pbi dependency

Change-Id: I10747b325e81c172f5e67031ea5159159fc26e91

9 years agovp9: store TileWorkerData allocations separately
James Zern [Sun, 31 Aug 2014 03:15:37 +0000 (20:15 -0700)]
vp9: store TileWorkerData allocations separately

move them from VP9Worker::data[12] to allow the structure to be reused a
bit more naturally by the multi-threaded loopfilter.

Change-Id: I31b49c9e93ca744fd7f6d6ed8696671188fb2c1d

9 years agoChange initialization of static_scene_max_gf_interval.
Paul Wilkins [Thu, 16 Oct 2014 11:39:14 +0000 (12:39 +0100)]
Change initialization of static_scene_max_gf_interval.

This removes an unnecessary restriction that causes
a problem (noticed by AWG) when the forced key frame
interval is set to a very small value, such as 10. In this case
we were being forced to code minimal length GF groups.

Change-Id: I76ef5861a09638ff51f61fea02359554184ada53

9 years ago[spatial svc]Another workaround to avoid using prev_mi
Minghai Shang [Tue, 14 Oct 2014 23:25:03 +0000 (16:25 -0700)]
[spatial svc]Another workaround to avoid using prev_mi

We encode a empty invisible frame in front of the base layer frame to
avoid using prev_mi. Since there's a restriction for reference frame
scaling factor, we have to make it smaller and smaller gradually until
its size is 16x16.

Change remerged.

Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449

9 years agoRevert "Move input frame scaling into the recode loop"
Paul Wilkins [Thu, 16 Oct 2014 14:53:21 +0000 (15:53 +0100)]
Revert "Move input frame scaling into the recode loop"

This reverts commit 452dc21500a2339ee685cb28efbd2af1b856ea12.

This change has introduced a significant quality regression on content
with forced key frames. (e.g. the YT and yt-hd set). It is most
noticeable in static content where the kf bits dominate. Here, despite
key frames being apparently coded at the same Q, there is a drop in all
metrics of ~20% (e.g clXR and BFa0).

Change-Id: Iba14cc61778c0846fa0a59c33c55a9fc49512cb4

9 years agoRevert "[spatial svc]Another workaround to avoid using prev_mi"
Paul Wilkins [Thu, 16 Oct 2014 14:49:13 +0000 (15:49 +0100)]
Revert "[spatial svc]Another workaround to avoid using prev_mi"

This reverts commit c113457af9880b8e15a36cdaabfd414d1c245693.

Temporary revert to allow clean revert of another commit.

Change-Id: Ia9b7b755e6c48e1b6e383329f121fef175a24b27

9 years agoMerge "fix CONFIG_SPATIAL_SVC warning"
James Zern [Thu, 16 Oct 2014 08:09:15 +0000 (01:09 -0700)]
Merge "fix CONFIG_SPATIAL_SVC warning"

9 years agoMerge "Some updates for Speed 6/VAR_BASED_PARTITION."
Marco [Wed, 15 Oct 2014 22:57:21 +0000 (15:57 -0700)]
Merge "Some updates for Speed 6/VAR_BASED_PARTITION."

9 years agoAdd init and reset functions for RD_COST struct
Jingning Han [Tue, 14 Oct 2014 17:26:28 +0000 (10:26 -0700)]
Add init and reset functions for RD_COST struct

Change-Id: I2902de7051a883fd22e27a655209233733969cfd

9 years agoMerge "Replace copy_partitioning use case with choose_partitioning"
Jingning Han [Wed, 15 Oct 2014 21:54:52 +0000 (14:54 -0700)]
Merge "Replace copy_partitioning use case with choose_partitioning"

9 years agoUse rate/distortion thresholds to control non-RD partition search
Jingning Han [Wed, 15 Oct 2014 19:18:48 +0000 (12:18 -0700)]
Use rate/distortion thresholds to control non-RD partition search

Compare the estimated rate and distortion to the thresholds scaled
according to the operating block size and determine if further
split partition search will be run. The compression performance of
speed -5 is changed by -0.074%. The encoding speed is 10% - 15%
faster.

vidyo1 720p
16545 b/f, 40.492 dB, 11475 ms -> 16535 b/f, 40.486 dB, 10100 ms

nik720p
16624 b/f, 36.310 dB, 10071 ms -> 16617 b/f, 36.313 dB, 8346 ms

Change-Id: Ic9197ab5761279ae55d2fb7813b2af0e0db497b8

9 years agoSome updates for Speed 6/VAR_BASED_PARTITION.
Marco [Thu, 9 Oct 2014 23:01:52 +0000 (16:01 -0700)]
Some updates for Speed 6/VAR_BASED_PARTITION.

Reduce the intra_cost_penalty for non-rd mode,
and some updates to VAR_BASED_PARTITION.

Visual tests show some improvement at Speed 6, for RTC clips.

Change-Id: If9090daf7aed14906a32d931a538ab544bbca606

9 years agoReplace copy_partitioning use case with choose_partitioning
Jingning Han [Wed, 15 Oct 2014 18:37:20 +0000 (11:37 -0700)]
Replace copy_partitioning use case with choose_partitioning

This commit replaces the use of copy_partitioning with
choose_partitioning based on the sse of subsamped pixels, which
provides significantly better coding performance and runs at
similar speed, as compared to copy_partitioning. It improves rtc
speed 5 coding performance by 3%.

Change-Id: I52d3682a12dce0147f5e52383a594fc242ca3228

9 years agoFix in bit-shift operation for highbitdepth decode
Deb Mukherjee [Wed, 15 Oct 2014 17:01:34 +0000 (10:01 -0700)]
Fix in bit-shift operation for highbitdepth decode

Fixes a bug introduced in a previous refactoring patch.

Change-Id: I243e74637cfd7a997c7a1fef03b06c290dd0dee6

9 years agofix CONFIG_SPATIAL_SVC warning
James Zern [Wed, 15 Oct 2014 14:37:35 +0000 (16:37 +0200)]
fix CONFIG_SPATIAL_SVC warning

this change checks that CONFIG_SPATIAL_SVC is defined and adds a TODO to
ensure this is changed in the future as the release headers can't
depend on vpx_config.h.

vpx/vpx_encoder.h:164:5: warning: "CONFIG_SPATIAL_SVC" is not defined
[-Wundef]

Change-Id: I797a0150e5f56caf048e7ee00b282fbc9c5ede19