]>
granicus.if.org Git - libvpx/log
Luca Barbato [Thu, 11 May 2017 03:58:34 +0000 (03:58 +0000)]
ppc: Add get_mb_ss_vsx
Change-Id: I1b54a7a5bb642e4b836d786ea1ae506eed025e3f
Luca Barbato [Thu, 11 May 2017 03:16:45 +0000 (05:16 +0200)]
ppc: Add get4x4sse_cs_vsx
Change-Id: I3028bdadf653665d18e781d28e9625f62804b3d8
Luca Barbato [Thu, 11 May 2017 01:07:09 +0000 (01:07 +0000)]
ppc: Add comp_avg_pred_vsx
Change-Id: I59788cd98231e707239c2ad95ae54f67cfe24e10
Marco Paniconi [Wed, 10 May 2017 23:51:44 +0000 (23:51 +0000)]
Merge "vp9: SVC: Fix setting in sample encoder."
Marco [Wed, 10 May 2017 23:18:14 +0000 (16:18 -0700)]
vp9: SVC: Fix setting in sample encoder.
For 1 spatial layer case, scaling_num/den was not set properly.
Change-Id: I139bf70c6dffde89eed24e435bcb5d98d2029bcd
Linfeng Zhang [Wed, 10 May 2017 20:31:13 +0000 (20:31 +0000)]
Merge "Update specializations of idct functions"
Linfeng Zhang [Wed, 10 May 2017 18:52:32 +0000 (11:52 -0700)]
Update specializations of idct functions
Introduced append situation in Commit
0178d97 which could be
confusing. Clean a little bit and add some comments.
Change-Id: I69ad336f805aca7ce9d45515b8cd237423fadbb2
Jerome Jiang [Wed, 10 May 2017 00:23:00 +0000 (17:23 -0700)]
vp9: Wrap threshold tuning for HD only when denoiser is enabled.
Fixes a speed regression.
Change-Id: I23d942e4af17fa81fe4a366c7369b3ad537e59b0
Johann Koenig [Wed, 10 May 2017 18:19:50 +0000 (18:19 +0000)]
Merge changes I92eb4312,Ibb2afe4e
* changes:
subpel variance neon: add mixed sizes
sub pixel variance neon: use generic variance
Marco Paniconi [Wed, 10 May 2017 17:11:17 +0000 (17:11 +0000)]
Merge "vp9: Adjustment to noise estimation."
Marco Paniconi [Wed, 10 May 2017 17:10:51 +0000 (17:10 +0000)]
Merge "vp9: SVC: Add option to set downsampling filter type."
Marco [Wed, 10 May 2017 16:36:10 +0000 (09:36 -0700)]
vp9: Adjustment to noise estimation.
When the noise estimate is forced off due to large motion,
reset the counter and set smaller window for next estimate.
Change-Id: Ifa4ec95396134173a00d48353ad52f1b6a40c217
Marco [Tue, 2 May 2017 22:50:31 +0000 (15:50 -0700)]
vp9: SVC: Add option to set downsampling filter type.
Add option in SVC to set the filter type and phase for
the frame level downsampling filters.
For 3 spatial layers: set downsampling filter type to bilinear
and set phase to 8, for lowest spatial layer.
Change-Id: Id81f4b1ba93db19c1cd37b6a46d1281a2c61bc43
Linfeng Zhang [Tue, 9 May 2017 20:04:54 +0000 (13:04 -0700)]
Update test/partial_idct_test.cc
Makes more sense to call the corresponding partial idct C function
instead of the full idct C function as the reference.
Change-Id: Ibb7681dd063edd6307ba582c10c26c4c6a4b78c6
Linfeng Zhang [Tue, 9 May 2017 18:05:51 +0000 (11:05 -0700)]
Clean 32x32 idct C code
Change-Id: I73b8104a9e7a70ffe827c1b7ff43618f24f5d7bd
Linfeng Zhang [Mon, 8 May 2017 22:41:24 +0000 (15:41 -0700)]
Update 4x4 idct sse2 functions
It's a bit faster to call idct4_sse2() in vpx_idct4x4_16_add_sse2()
Change-Id: I1513be7a895cd2fc190f4a8297c240b17de0f876
Marco Paniconi [Mon, 8 May 2017 21:45:58 +0000 (21:45 +0000)]
Merge "vp9: SVC: Modify conditon for setting downsample filter type."
Marco [Mon, 8 May 2017 17:47:53 +0000 (10:47 -0700)]
vp9: SVC: Modify conditon for setting downsample filter type.
Base the condition on the resolution of the spatial layer.
And remove restriction on scaling factor.
Change-Id: Iad00177ce364279d85661654bff00ce7f48a672e
Johann [Mon, 1 May 2017 21:10:54 +0000 (14:10 -0700)]
neon variance: process 16 values at a time
Read in a Q register. Works on blocks of 16 and larger.
Improvement of about 20% for 64x64. The smaller blocks are faster, but
don't have quite the same level of improvement. 16x32 is only about 5%
BUG=webm:1422
Change-Id: Ie11a877c7b839e66690a48117a46657b2ac82d4b
Johann Koenig [Mon, 8 May 2017 17:34:20 +0000 (17:34 +0000)]
Merge changes Id602909a,Ib0e85608
* changes:
neon variance: process two rows of 8 at a time
neon variance: add small missing sizes
Linfeng Zhang [Mon, 8 May 2017 16:15:56 +0000 (16:15 +0000)]
Merge changes I0cfe4117,I3581d80d,Ida62c941
* changes:
Split dsp/x86/inv_txfm_sse2.c
Update highbd idct functions arguments to use uint16_t dst
Clean CONVERT_TO_BYTEPTR/SHORTPTR in idct
Marco Paniconi [Sat, 6 May 2017 02:30:59 +0000 (02:30 +0000)]
Merge "vp9: SVC: Set downsample filtertype for lowest spatial layer."
Marco [Sat, 6 May 2017 01:39:55 +0000 (18:39 -0700)]
vp9: SVC: Set downsample filtertype for lowest spatial layer.
For lowest spatial layer, in 3 layer SVC, set the
downsampling filtertype to get averaging filter.
Needed for reducing aliasing on low-res layer,
small increase in overall encoder time.
Change-Id: Ia31460123bd91b72eca49b46dd924b9f226d4563
Jerome Jiang [Sat, 6 May 2017 01:28:31 +0000 (01:28 +0000)]
Merge "vp9: Neon optimization for denoiser. Add unit tests."
Jerome Jiang [Sat, 6 May 2017 01:28:15 +0000 (01:28 +0000)]
Merge "Change target bitrate thresh in denoiser test."
Jerome Jiang [Fri, 5 May 2017 23:50:19 +0000 (16:50 -0700)]
Change target bitrate thresh in denoiser test.
An intended behavior change disabling exhaustive searches in speed
feature causes VP9/DatarateTestVP9LargeDenoiser.4threads test failure.
Change the threshold to make it pass.
BUG=webm:1429
Change-Id: Ibcbe2314c6b2525799894f5d7204fc8eb4ec2a1e
Jerome Jiang [Tue, 25 Apr 2017 22:29:43 +0000 (15:29 -0700)]
vp9: Neon optimization for denoiser. Add unit tests.
Denoiser on Neon is 5x faster than C code.
BUG=webm:1420
Change-Id: I805ab64f809ff2137354116be6213e7ec29c1dcb
Marco Paniconi [Fri, 5 May 2017 20:02:41 +0000 (20:02 +0000)]
Merge "vp9: Adjust some thresholds for noise estimation."
Marco [Fri, 5 May 2017 00:34:19 +0000 (17:34 -0700)]
vp9: Adjust some thresholds for noise estimation.
Adjust thresholds for noise estimation, for resolutions above VGA.
Tends to push cleaner/low noise clips to LowLow state.
No change in RTC metrics.
Change-Id: I739ca6b797d0a60ccd1c6c6a2775269b1f007e5e
Johann Koenig [Fri, 5 May 2017 18:22:44 +0000 (18:22 +0000)]
Merge "fdct 8x8 neon: minor comment cleanup"
Jerome Jiang [Mon, 1 May 2017 17:49:54 +0000 (10:49 -0700)]
vp9: Enable noise estimation on low res.
Set noise level to kLowLow for high motion low res clips.
Change the normalization in noise metric for low res.
Reduce the initial time-window for all resolutions.
Change-Id: Iaed39dbb50b205cd9c735dc5b84822304fb01987
Johann [Wed, 3 May 2017 19:06:29 +0000 (12:06 -0700)]
subpel variance neon: add mixed sizes
Add support for everything except block sizes of 4.
Performance is better but numbers will improve again when the variance
optimizations land.
BUG=webm:1423
Change-Id: I92eb4312b20be423fa2fe6fdb18167a604ff4d80
Johann [Tue, 2 May 2017 17:25:37 +0000 (10:25 -0700)]
sub pixel variance neon: use generic variance
When a neon version is available it will be called. This allows
decoupling the variance implementations and has no real downside. For
most configurations, the call will be #define'd to the neon
implementation.
Change-Id: Ibb2afe4e156c5610e89488504d366b3e6d1ba712
Johann [Thu, 4 May 2017 22:14:23 +0000 (15:14 -0700)]
fdct 8x8 neon: minor comment cleanup
Simplify HBD/non distinction in test.
Document why transpose_neon.h is not used
Change-Id: I17659414206ddbb8c2f1ef0d9f4a17f1745d5a52
Johann [Mon, 1 May 2017 20:19:49 +0000 (13:19 -0700)]
neon variance: process two rows of 8 at a time
When the width is equal to 8, process two rows at a time. This doubles
the speed of 8x4 and improves 8x8 by about 20%.
8x16 was using this technique already, but still improved a little bit
with the rewrite.
Also use this for vpx_get8x8var_neon
BUG=webm:1422
Change-Id: Id602909afcec683665536d11298b7387ac0a1207
Johann [Mon, 1 May 2017 16:10:06 +0000 (09:10 -0700)]
neon variance: add small missing sizes
Some of the mixed sizes were missing. They can be implemented trivially
using the existing helper function.
When comparing the previous 16x8 and 8x16 implementations, the helper
function is about 10% faster than the 16x8 version. The 8x16 is very
close, but the existing version appears to be faster.
BUG=webm:1422
Change-Id: Ib0e856083c1893e1bd399373c5fbcd6271a7f004
Yi Luo [Thu, 4 May 2017 15:43:20 +0000 (15:43 +0000)]
Merge "High bit depth inter prediction horizontal/vertical filters AVX2"
Linfeng Zhang [Wed, 3 May 2017 22:43:02 +0000 (15:43 -0700)]
Split dsp/x86/inv_txfm_sse2.c
Spin out highbd idct functions.
BUG=webm:1412
Change-Id: I0cfe4117c00039b6778c59c022eee79ad089a2af
Linfeng Zhang [Wed, 3 May 2017 20:32:08 +0000 (13:32 -0700)]
Update highbd idct functions arguments to use uint16_t dst
BUG=webm:1388
Change-Id: I3581d80d0389b99166e70987d38aba2db6c469d5
Linfeng Zhang [Tue, 2 May 2017 17:44:12 +0000 (10:44 -0700)]
Clean CONVERT_TO_BYTEPTR/SHORTPTR in idct
BUG=webm:1388
Change-Id: Ida62c941f2b836d6c9e27b427a7d5008ab6dc112
Hui Su [Wed, 3 May 2017 20:51:03 +0000 (20:51 +0000)]
Merge "vp9 level: add tentative max cpb values for high levels"
Hui Su [Wed, 3 May 2017 20:50:28 +0000 (20:50 +0000)]
Merge "Adjust alt-ref selection in define_gf_group()"
Yi Luo [Mon, 17 Apr 2017 22:43:06 +0000 (15:43 -0700)]
High bit depth inter prediction horizontal/vertical filters AVX2
User level speed improvement on i7-6700, cpu-used=1,
x86_64 Linux, bitrate, 1080p, 8Mbps, 4K, 16Mbps:
- Decoder:
1080p: ~4%
4K: ~5%
- Encoder:
1080p: ~1%
4K: ~3%
Change-Id: I51b48f9c5de0d62487d5a11aa579c97bd03dd640
Linfeng Zhang [Wed, 3 May 2017 19:17:55 +0000 (19:17 +0000)]
Merge changes I8bb660de,Ica51d780,I6037525d
* changes:
Clean specializes of idct functions
Clean add_protos of highbd idct functions
Clean add_protos of idct functions
James Zern [Wed, 3 May 2017 03:31:18 +0000 (03:31 +0000)]
Merge changes Ia5293d94,I90d481d3,Ia509d622,I54549b03,I89b635d6
* changes:
ppc: Add convolve8_vsx and convolve8_avg_vsx
ppc: Add convolve8_avg_vert_vsx
ppc: Add convolve8_vert
ppc: Add convolve8_horiz_avg
ppc: Add convolve8_horiz
Luca Barbato [Mon, 1 May 2017 17:02:03 +0000 (17:02 +0000)]
ppc: Add convolve8_vsx and convolve8_avg_vsx
Change-Id: Ia5293d948003a7fff5a7cbad6e83d8a72717c857
Luca Barbato [Mon, 1 May 2017 15:53:44 +0000 (15:53 +0000)]
ppc: Add convolve8_avg_vert_vsx
Only the generic one again, speedups for 8x8 and larger blocks to
come later.
Change-Id: I90d481d3a602d1e277ead8f3934eca126b86b72d
Luca Barbato [Mon, 1 May 2017 15:53:44 +0000 (15:53 +0000)]
ppc: Add convolve8_vert
Only the generic one again, speedups for 8x8 and larger blocks
to come later.
Change-Id: Ia509d6225984b4930ec03928c9bcbf51486da99f
Luca Barbato [Sat, 29 Apr 2017 12:34:20 +0000 (12:34 +0000)]
ppc: Add convolve8_horiz_avg
The 8x8 and larger blocks cases can be sped up further.
Change-Id: I54549b03ac6c7a4e3f485738b100c3cac7ac2e15
Luca Barbato [Sat, 29 Apr 2017 12:34:20 +0000 (12:34 +0000)]
ppc: Add convolve8_horiz
The 8x8 and larger blocks cases can be sped up further.
Change-Id: I89b635d6b01c59f523f2d54b1284ed32916c5046
Linfeng Zhang [Tue, 2 May 2017 21:14:06 +0000 (14:14 -0700)]
Clean specializes of idct functions
Change-Id: I8bb660de47b5f97263ec381dc428db96e9c9a4b2
Linfeng Zhang [Tue, 2 May 2017 20:31:56 +0000 (13:31 -0700)]
Clean add_protos of highbd idct functions
Change-Id: Ica51d780b92b316ce9112740c56cdf7670816371
Linfeng Zhang [Tue, 2 May 2017 18:19:44 +0000 (11:19 -0700)]
Clean add_protos of idct functions
Change-Id: I6037525d92ec172810edab720389eb1865ed3b1a
Johann Koenig [Tue, 2 May 2017 14:16:47 +0000 (14:16 +0000)]
Merge "block error sse2: sum in 32 bits when possible"
Johann [Tue, 2 May 2017 00:54:19 +0000 (17:54 -0700)]
block error avx2: rename variables
Change-Id: I2b8a9253f2c3d1fd85304c2970ebe70213870fe9
Johann Koenig [Tue, 2 May 2017 00:52:58 +0000 (00:52 +0000)]
Merge "block error avx2: sum in 32 bits when possible"
Marco Paniconi [Mon, 1 May 2017 21:04:51 +0000 (21:04 +0000)]
Merge "vp9: SVC: Early exit on golden ref in non-rd pickmode."
Linfeng Zhang [Mon, 1 May 2017 19:54:40 +0000 (19:54 +0000)]
Merge "Clean vp9_highbd_build_inter_predictor() and highbd_inter_predictor()"
Johann Koenig [Mon, 1 May 2017 19:52:36 +0000 (19:52 +0000)]
Merge "move vp9_error_intrin_avx2.c"
Kyle Siefring [Mon, 1 May 2017 16:19:11 +0000 (09:19 -0700)]
block error avx2: sum in 32 bits when possible
Add 31bit pairs before unpacking in x86 block error code
AVX2 code provides a very minor performance improvement.
BUG=webm:1210
Change-Id: I4c82308eaf65741dca2f5c6db9be9c85f905073a
James Zern [Mon, 1 May 2017 19:22:21 +0000 (19:22 +0000)]
Merge "vpx_scale_test: fix segfault on alloc failure"
Marco [Mon, 1 May 2017 17:04:31 +0000 (10:04 -0700)]
vp9: SVC: Early exit on golden ref in non-rd pickmode.
For SVC 1 pass real-time: add condition to skip the
golden (spatial) reference mode in non-rd pickmode.
Condition is to skip golden if the sse of zeromv-last mode
is below threshold. And change order in ref_mode_set_svc
to make sure golden zeromv is tested after last-nearest.
Speedup ~3-4% with little/negligible quality loss.
Change-Id: I6cbe314a93210454ba2997945f714015f1b2fca3
Kyle Siefring [Mon, 1 May 2017 16:15:29 +0000 (09:15 -0700)]
block error sse2: sum in 32 bits when possible
Add 31bit pairs before unpacking in x86 block error code
BUG=webm:1210
Change-Id: I5ca8c7f7775585a17fe09d6bbfc25e1f2955eb0a
Johann [Mon, 1 May 2017 16:12:25 +0000 (09:12 -0700)]
move vp9_error_intrin_avx2.c
There is only one avx2 implementation. Drop '_intrin'
Change-Id: I887a0d27d58567eaad49f749f127eca61313f312
James Zern [Sat, 29 Apr 2017 20:12:53 +0000 (13:12 -0700)]
vpx_scale_test: fix segfault on alloc failure
check the return of ResetImage() before continuing
Change-Id: Iff0b038f7b9761113b8cf33a511a5306640d1273
Luca Barbato [Wed, 26 Apr 2017 16:31:11 +0000 (16:31 +0000)]
ppc: Add convolve_avg
Change-Id: Ib203c444c708f42072e38301ee3db97b5b53d014
Luca Barbato [Wed, 26 Apr 2017 15:43:19 +0000 (15:43 +0000)]
ppc: Add convolve_copy
Change-Id: Ie26d6dbe090e711d84bac01ba7da270db983f405
Johann Koenig [Fri, 28 Apr 2017 18:32:08 +0000 (18:32 +0000)]
Merge "Use uint32_t for accumulator"
Jerome Jiang [Fri, 28 Apr 2017 18:10:35 +0000 (18:10 +0000)]
Merge "vp9: Fix condition for disabling adaptive_rd_thresh."
Jerome Jiang [Thu, 27 Apr 2017 19:56:52 +0000 (12:56 -0700)]
vp9: Fix condition for disabling adaptive_rd_thresh.
Add speed constrains for disabling adaptive_rd_thresh when
row_mt_bit_exact is set.
Change-Id: I2445115c2f9a2e46b8a0966031a0fea488d4964e
Jerome Jiang [Fri, 28 Apr 2017 15:45:52 +0000 (15:45 +0000)]
Merge "Generalize vp9 sse2 denoiser test for other platforms."
Johann [Fri, 28 Apr 2017 13:34:21 +0000 (06:34 -0700)]
Use uint32_t for accumulator
Be specific about the data type size.
Use convenience macro vp9_zero_array.
Change-Id: I5fadf7dbd408befb73820d85db0be4832e8cfcbd
Johann Koenig [Fri, 28 Apr 2017 13:22:40 +0000 (13:22 +0000)]
Merge "vp9 temporal filter: sse4 implementation"
Jerome Jiang [Thu, 27 Apr 2017 22:56:39 +0000 (15:56 -0700)]
Generalize vp9 sse2 denoiser test for other platforms.
Renamed to vp9_denoiser_test.
Change-Id: I0d8f4c94bcb81a60949a13d9fe839cee95d03f77
Yaowu Xu [Fri, 28 Apr 2017 00:16:55 +0000 (00:16 +0000)]
Merge "VP9: enable trellis for high bitdepth intra"
James Zern [Thu, 27 Apr 2017 21:47:09 +0000 (21:47 +0000)]
Merge "webm_read_frame: avoid NULL dereference"
Johann [Wed, 15 Mar 2017 17:40:58 +0000 (10:40 -0700)]
vp9 temporal filter: sse4 implementation
Approximates division using multiply and shift.
Speeds up both sizes (8x8 and 16x16) by 30 times.
Fix the call sites to use the RTCD function.
Delete sse2 and mips implementation. They were based on a previous
implementation of the filter. It was changed in Dec 2015:
ece4fd5d2247c9512b31a93dd593de567beaf928
BUG=webm:1378
Change-Id: I0818e767a802966520b5c6e7999584ad13159276
Jerome Jiang [Wed, 26 Apr 2017 18:12:21 +0000 (11:12 -0700)]
vp9: Don't force disabling of adaptive_rd_thresh for realtime.
Don't force disabling of adaptive_rd_thresh for realtime when
row_mt_bit_exact is set.
Row based adaptive rd is made usable in CL
454882(https://chromium-review.googlesource.com/c/454882) for REALTIME.
Change-Id: Ief023414f0fd6eb86f299dd46ae58f4436875af5
Yunqing Wang [Wed, 26 Apr 2017 16:12:14 +0000 (16:12 +0000)]
Merge "Make the row based multi-threaded encoder deterministic"
Linfeng Zhang [Wed, 26 Apr 2017 15:50:45 +0000 (15:50 +0000)]
Merge "Update highbd convolve functions arguments to use uint16_t src/dst"
Marco Paniconi [Wed, 26 Apr 2017 15:45:05 +0000 (15:45 +0000)]
Merge "vp9: SVC: Adjust some speed settings for temporal layers."
Peter de Rivaz [Wed, 26 Apr 2017 10:40:58 +0000 (11:40 +0100)]
VP9: enable trellis for high bitdepth intra
BUG=webm:1409
Change-Id: I5236595aac1c09386c60ffe8ad621e01422ed5a7
hui su [Thu, 20 Apr 2017 23:16:18 +0000 (16:16 -0700)]
vp9 level: add tentative max cpb values for high levels
Add tentative max cpb size values for levels 5.2 and up. Otherwise
encoding will fail when targeting for these levels.
Change-Id: Ib7e0ba4b9836ea1ac900b6822543812843d48463
hui su [Thu, 20 Apr 2017 22:49:52 +0000 (15:49 -0700)]
Adjust alt-ref selection in define_gf_group()
107de19698 changes the encoder alt-ref selection behavior. Assuming
min_gf_interval = max_gf_interval = 4, the frame order would be
frm_1 arf_1 frm_2 frm_3 frm_4 frm_5 arf_2 before
107de19698 ;
frm_1 arf_1 frm_2 frm_3 frm_4 arf_2 frm_5 after
107de19698 .
This patch reverts such alt-ref placement change.
Change-Id: I93a4a65036575151286f004d455d4fcea88a1550
Jerome Jiang [Wed, 26 Apr 2017 00:09:29 +0000 (00:09 +0000)]
Merge "Fix the decoder seg fault when frame is corrupted."
Jerome Jiang [Wed, 26 Apr 2017 00:09:21 +0000 (00:09 +0000)]
Merge "vp9: speed >= 8: Skip uv variance in model_rd_sb_y_large"
Marco [Tue, 25 Apr 2017 23:11:19 +0000 (16:11 -0700)]
vp9: SVC: Adjust some speed settings for temporal layers.
Make some speed setting changes for temporal enhancement layers,
and remove the switch in subpel_force_stop for the aggressive_base_mv
in non-rd pickmode.
Gain some 2-3% speed with little/negligible quality loss.
Change-Id: I3e2a7f80ff45f38c0a6ceb01b34dbca2f53edbf0
Jerome Jiang [Fri, 21 Apr 2017 17:10:05 +0000 (10:10 -0700)]
vp9: speed >= 8: Skip uv variance in model_rd_sb_y_large
For speed >= 8 and color_sensitivity not set, skip the transform
skipping test in UV planes.
Add a new condition to check noise level to skip chroma check
for speed >= 8 if y_sad is high.
1~2% speedup on ARM for speed 8.
Borg tests show neutral results in both rtc and rtc_derf.
Change-Id: Idecd3ff6e28c97757a43bb6f3a7082c85f72109c
Linfeng Zhang [Wed, 19 Apr 2017 21:48:07 +0000 (14:48 -0700)]
Clean vp9_highbd_build_inter_predictor() and highbd_inter_predictor()
BUG=webm:1388
Change-Id: I7ee32e0c08f0fb41712a8cc640b2c5bba872421d
Linfeng Zhang [Wed, 19 Apr 2017 20:08:25 +0000 (13:08 -0700)]
Update highbd convolve functions arguments to use uint16_t src/dst
BUG=webm:1388
Change-Id: I6912de2639895d817ce850da8ea9f6c8fe21da42
James Zern [Sat, 22 Apr 2017 20:11:16 +0000 (13:11 -0700)]
webm_read_frame: avoid NULL dereference
block may be NULL with block_entry_eos or from return of GetBlock()
Change-Id: Ia0dd3ffa46305ee70efcdc55c05c2ad24efc993b
Marco [Fri, 14 Apr 2017 18:32:19 +0000 (11:32 -0700)]
vp9; Reduce artifact in non-rd pickmode for lighting changes.
Add a low-variance high-sumdiff to the superblock content state
and use it to limit the mv and bias some decisions in non-rd pickmode.
Only affects speed >= 6.
Reduces artifact for lighting changes.
Small/no difference in metrics on RTC set.
Change-Id: Ic84b2379fe0ae3fa71ae826ee6bae3eaf551a25b
Yunqing Wang [Mon, 24 Apr 2017 19:06:49 +0000 (12:06 -0700)]
Make the row based multi-threaded encoder deterministic
This patch followed allow_exhaustive_searches feature modification and
continued to modify the encoder to achieve the determinism in the row
based multi-threaded encoding. While row-mt = 1 and using multiple
threads, the adaptive feature in encoder was disabled, which gave
BDRate gain(at speed 1, -0.6% ~ -0.7%; at speed 2, -0.46% ~ -0.59%),
but some encoder speed losses(7% ~ 10% at speed 1 and 3% ~ 6% at
speed 2). These speed losses were acceptable considering the speed
gains obtained from row-mt.
Change-Id: I60d87a25346ebc487a864b57d559f560b7e398bb
Yunqing Wang [Mon, 24 Apr 2017 17:41:10 +0000 (17:41 +0000)]
Merge "Make allow_exhaustive_searches feature no longer adaptive"
Marco Paniconi [Fri, 21 Apr 2017 21:28:16 +0000 (21:28 +0000)]
Merge "vp9: SVC: fix condition for partition/skip threshold when denoising."
Yunqing Wang [Thu, 20 Apr 2017 00:00:08 +0000 (17:00 -0700)]
Make allow_exhaustive_searches feature no longer adaptive
A previous patch turned on allow_exhaustive_searches feature only for
FC_GRAPHICS_ANIMATION content. This patch further modified the feature
by removing the exhaustive search limit, and made it no longer adaptive.
As a result, the 2 counts that recorded the number of motion searches
were removed, which helped achieve the determinism in the row based
multi-threading encoding. Tests showed that this patch didn't cause
the encoder much slower.
Used exhaustive_searches_thresh for this speed feature, and removed
allow_exhaustive_searches. Also, refactored the speed feature code
to follow the general speed feature setting style.
Change-Id: Ib96b182c4c8dfff4c1ab91d2497cc42bb9e5a4aa
Jerome Jiang [Fri, 21 Apr 2017 00:51:46 +0000 (00:51 +0000)]
Merge "vp9: Non-rd pickmode: Avoid computation duplication."
Marco [Thu, 20 Apr 2017 23:32:46 +0000 (16:32 -0700)]
vp9: SVC: fix condition for partition/skip threshold when denoising.
The more aggressive settings should only be used when denoise_svc
condition is satisfied (which means top spatial layer).
Change-Id: Ia8e3515b27f31bf21b1976ca80a2fa826daece3a
Jerome Jiang [Thu, 20 Apr 2017 17:57:02 +0000 (10:57 -0700)]
vp9: Non-rd pickmode: Avoid computation duplication.
In non-rd pickmode (speed >= 5), avoid duplication of computations in
model_rd_for_sb_y when the speed feature use_simple_block_yrd is
enabled (or for high bitdepth build under certain conditions).
QVGA, VGA and HD have 1.23%, 2.68% and 1.7% speedup on ARM for speed 8,
respectively.
Encoding results are bitexact for speed >= 5.
Change-Id: I3f9130810c21439f5ad7e159e21cb2243dcd05f1
Jerome Jiang [Thu, 20 Apr 2017 21:48:22 +0000 (14:48 -0700)]
Fix the decoder seg fault when frame is corrupted.
BUG=webm:1399
Change-Id: I1e006e0260d9b56a4d2273659ca19b86c69c474b