]> granicus.if.org Git - libvpx/log
libvpx
8 years agoMerge "Reject ext-inter compound modes based on modelled RD." into nextgenv2
Debargha Mukherjee [Thu, 30 Jun 2016 18:18:53 +0000 (18:18 +0000)]
Merge "Reject ext-inter compound modes based on modelled RD." into nextgenv2

8 years agoMerge "Remove unused BITDEPTH_10 definition" into nextgenv2
Jingning Han [Thu, 30 Jun 2016 16:26:24 +0000 (16:26 +0000)]
Merge "Remove unused BITDEPTH_10 definition" into nextgenv2

8 years agoMerge "Fix shift value in dist_block with hbd" into nextgenv2
Jingning Han [Thu, 30 Jun 2016 16:26:18 +0000 (16:26 +0000)]
Merge "Fix shift value in dist_block with hbd" into nextgenv2

8 years agoMerge "Various cosmetics on the new_quant experiment" into nextgenv2
Debargha Mukherjee [Thu, 30 Jun 2016 16:03:49 +0000 (16:03 +0000)]
Merge "Various cosmetics on the new_quant experiment" into nextgenv2

8 years agoReject ext-inter compound modes based on modelled RD.
Geza Lore [Tue, 28 Jun 2016 11:59:19 +0000 (12:59 +0100)]
Reject ext-inter compound modes based on modelled RD.

Reject ext-inter compound modes before doing full rate distortion
evaluation, if the corresponding single reference modes had a lower
modelled RD.

ext-inter speedup up to TBD.

Coding performance: TBD

Change-Id: I358bfb879c5ebe5e7afbf6f540cc784f8de14857

8 years agoRemove unused BITDEPTH_10 definition
Jingning Han [Wed, 29 Jun 2016 23:43:22 +0000 (16:43 -0700)]
Remove unused BITDEPTH_10 definition

Change-Id: Ic11f32db352e1ff7b3ed140654ee1a6016ba516f

8 years agoFix shift value in dist_block with hbd
Jingning Han [Wed, 29 Jun 2016 23:40:47 +0000 (16:40 -0700)]
Fix shift value in dist_block with hbd

This offset value related to the bit depth has been taken care of
inside the function vp10_highbd_block_error.

Change-Id: I58dd8a53380ba4529d59837e56a951bc81a2962e

8 years agoRemove use_quant_fp speed feature
Debargha Mukherjee [Wed, 29 Jun 2016 18:59:27 +0000 (11:59 -0700)]
Remove use_quant_fp speed feature

Change-Id: I22f1299545d4c75d80e72d479be66f66ea142ef1

8 years agoVarious cosmetics on the new_quant experiment
Debargha Mukherjee [Wed, 29 Jun 2016 20:18:52 +0000 (13:18 -0700)]
Various cosmetics on the new_quant experiment

Also extends quant profiles to include quality range.

Change-Id: Ia96e45b6425e1d42ca61fc401f63d4fd7214e448

8 years agoMerge "Remove skip_txfm optimization." into nextgenv2
Debargha Mukherjee [Wed, 29 Jun 2016 17:52:39 +0000 (17:52 +0000)]
Merge "Remove skip_txfm optimization." into nextgenv2

8 years agoMerge "Fix compiler warnings in yv12extend.c" into nextgenv2
Sarah Parker [Wed, 29 Jun 2016 03:29:12 +0000 (03:29 +0000)]
Merge "Fix compiler warnings in yv12extend.c" into nextgenv2

8 years agoMerge "Fix compiler warnings in vp10_convolve_optimz_test.cc" into nextgenv2
Sarah Parker [Wed, 29 Jun 2016 02:03:10 +0000 (02:03 +0000)]
Merge "Fix compiler warnings in vp10_convolve_optimz_test.cc" into nextgenv2

8 years agoFix compiler warnings in yv12extend.c
Sarah Parker [Wed, 29 Jun 2016 00:23:16 +0000 (17:23 -0700)]
Fix compiler warnings in yv12extend.c

Change-Id: I1f6f5b8861c4081b1f4b85c531c5d7ef0cb67bab

8 years agoFix compiler warnings in vp10_convolve_optimz_test.cc
Sarah Parker [Wed, 29 Jun 2016 00:13:03 +0000 (17:13 -0700)]
Fix compiler warnings in vp10_convolve_optimz_test.cc

Change-Id: I11b717e1652dff440a54f6977527d544b0c5ed29

8 years agoethread_test: Remove vp10 as test parameter.
Alex Converse [Tue, 28 Jun 2016 21:21:13 +0000 (14:21 -0700)]
ethread_test: Remove vp10 as test parameter.

Change-Id: I043418cde5a2562520ff37cdf81436abc2c9821a

8 years agoRemove skip_txfm optimization.
Geza Lore [Mon, 27 Jun 2016 12:54:30 +0000 (13:54 +0100)]
Remove skip_txfm optimization.

Commit 0d6980d7a1caa592058f8d5d618b012c160772f7 removed some use
of the skip_txfm optimization, and the rest are not productive.

The current use of this optimization is only used with --good
and --cpu-used >= 3, however the overhead of this is higher than the
speedup it yields.

Removing this, and subsequently simplifying model_rd_for_sb yields
a net encoder speedup:
--cpu-used=0    ~1.5% faster
--cpu-used=3    ~2.0% faster

The code simplification is also significant.

Change-Id: I1dd668c32de15a2e912c59c42379d0f9e1032ff8

8 years agoMerge "Quantization fix for new-quant/var-tx" into nextgenv2
Sarah Parker [Tue, 28 Jun 2016 02:21:35 +0000 (02:21 +0000)]
Merge "Quantization fix for new-quant/var-tx" into nextgenv2

8 years agoMerge "Rename the initial MV search candidate" into nextgenv2
Hui Su [Tue, 28 Jun 2016 00:37:48 +0000 (00:37 +0000)]
Merge "Rename the initial MV search candidate" into nextgenv2

8 years agoMerge "Refactor vp10_pattern_search" into nextgenv2
Hui Su [Tue, 28 Jun 2016 00:24:01 +0000 (00:24 +0000)]
Merge "Refactor vp10_pattern_search" into nextgenv2

8 years agoQuantization fix for new-quant/var-tx
Debargha Mukherjee [Thu, 23 Jun 2016 21:49:00 +0000 (14:49 -0700)]
Quantization fix for new-quant/var-tx

Also use the fp quantizer consistently

lowres: -0.07 BDRATE improvement

Change-Id: I9174f6ad54a74d38541004b99cb3689d0c09be55

8 years agoMerge "Fix a bug in vp10_pattern_search()" into nextgenv2
Hui Su [Mon, 27 Jun 2016 23:09:10 +0000 (23:09 +0000)]
Merge "Fix a bug in vp10_pattern_search()" into nextgenv2

8 years agoMerge "Disable trellis optimized quantization in the first-pass" into nextgenv2
Jingning Han [Mon, 27 Jun 2016 21:34:42 +0000 (21:34 +0000)]
Merge "Disable trellis optimized quantization in the first-pass" into nextgenv2

8 years agoMerge "Fix bugs in convolution filter optimization" into nextgenv2
Yi Luo [Mon, 27 Jun 2016 21:33:44 +0000 (21:33 +0000)]
Merge "Fix bugs in convolution filter optimization" into nextgenv2

8 years agoDisable trellis optimized quantization in the first-pass
Jingning Han [Mon, 27 Jun 2016 17:15:36 +0000 (10:15 -0700)]
Disable trellis optimized quantization in the first-pass

This resolves the use of uninitialized value in the first-pass
encoding.

Change-Id: I78bc19214a1bfde5c5641424550cbbe4e52cae99

8 years agoMerge "Add multiple quantization profiles to new_quant experiment" into nextgenv2
Sarah Parker [Mon, 27 Jun 2016 18:46:25 +0000 (18:46 +0000)]
Merge "Add multiple quantization profiles to new_quant experiment" into nextgenv2

8 years agoFix bugs in convolution filter optimization
Yi Luo [Sat, 25 Jun 2016 00:29:21 +0000 (17:29 -0700)]
Fix bugs in convolution filter optimization

- Fix the over-writing bug in horizontal filtering as width = 2.
- Fix 10-tap vertical filtering which no longer reads one row of
  pixel above the block.
- Fix 10-tap filter zero padding.
- Encoder speed slow down ~4.0%, compared to,
  81ad953 Convolution vertical filter SSSE3 optimization

Change-Id: I9bb294a4529300081c29bf284e6bc6eb081cc536

8 years agoRename the initial MV search candidate
hui su [Fri, 24 Jun 2016 19:59:01 +0000 (12:59 -0700)]
Rename the initial MV search candidate

Its old name "ref_mv" is confusing.

Change-Id: I7ac8f346c468bcf3c0e7692582d423fb7a1f113a

8 years agoRefactor vp10_pattern_search
hui su [Fri, 24 Jun 2016 18:06:50 +0000 (11:06 -0700)]
Refactor vp10_pattern_search

Combine it with vp10_pattern_search_sad

Change-Id: I47a3b34dfefad9fc8abd23fcc197f6aea3419873

8 years agoFix a bug in vp10_pattern_search()
hui su [Fri, 24 Jun 2016 18:47:56 +0000 (11:47 -0700)]
Fix a bug in vp10_pattern_search()

Should use sub-pel MV instead of full-pixel MV as input parameter
to calc_int_cost_list().

Change-Id: I054d94220a090ca54c8d24df265193ee345cd439

8 years agoMerge "Turn on ActiveMapRefreshTest for Vp10" into nextgenv2
Debargha Mukherjee [Sat, 25 Jun 2016 00:32:21 +0000 (00:32 +0000)]
Merge "Turn on ActiveMapRefreshTest for Vp10" into nextgenv2

8 years agoAdd multiple quantization profiles to new_quant experiment
Sarah Parker [Fri, 10 Jun 2016 22:29:10 +0000 (15:29 -0700)]
Add multiple quantization profiles to new_quant experiment

Add the ability to pick between 3 quantization profiles.
The profile is chosen based on the entropy context at the
block level.

Change-Id: Iaea0485798441b7d635962c2563f3a477f582dac

8 years agoTurn on ActiveMapRefreshTest for Vp10
Debargha Mukherjee [Fri, 24 Jun 2016 17:31:07 +0000 (10:31 -0700)]
Turn on ActiveMapRefreshTest for Vp10

Also reduce number of frames coded for VP10.

Change-Id: I7de908861620b6f4f08513516110fd584660d994

8 years agoMerge "Change register loading to fix stack overflow issue" into nextgenv2
Yi Luo [Fri, 24 Jun 2016 18:47:21 +0000 (18:47 +0000)]
Merge "Change register loading to fix stack overflow issue" into nextgenv2

8 years agoChange register loading to fix stack overflow issue
Yi Luo [Thu, 23 Jun 2016 21:31:26 +0000 (14:31 -0700)]
Change register loading to fix stack overflow issue

- Use _mm_loadl_epi64 instead of _mm_loadu_si128 for
  uint16_t temp2[4 * 4] buffer.
- Refer to:
  d0de89a remove vpx_highbd_1[02]_sub_pixel_variance4x4_sse4_1
BUG=webm:1242

Change-Id: Ieff555c8dd8070937f27f4ec8535b77e1ed5b8b2

8 years agoMerge "Use uniform quantizer for sub8x8 block coding" into nextgenv2
Jingning Han [Fri, 24 Jun 2016 17:07:46 +0000 (17:07 +0000)]
Merge "Use uniform quantizer for sub8x8 block coding" into nextgenv2

8 years agoMerge "Refactor sub8x8 block transform and quantization process" into nextgenv2
Jingning Han [Fri, 24 Jun 2016 17:07:35 +0000 (17:07 +0000)]
Merge "Refactor sub8x8 block transform and quantization process" into nextgenv2

8 years agoMerge "Make recursive txfm partitioning use uniform quantizer" into nextgenv2
Jingning Han [Fri, 24 Jun 2016 03:18:11 +0000 (03:18 +0000)]
Merge "Make recursive txfm partitioning use uniform quantizer" into nextgenv2

8 years agoUse uniform quantizer for sub8x8 block coding
Jingning Han [Fri, 24 Jun 2016 00:01:00 +0000 (17:01 -0700)]
Use uniform quantizer for sub8x8 block coding

Use the trellis optimization based uniform quantizer to encode the
sub8x8 block coding.

Change-Id: Ibbf7791b0aa430b7c67ef38eac3af6379578f56d

8 years agoRefactor sub8x8 block transform and quantization process
Jingning Han [Thu, 23 Jun 2016 23:48:39 +0000 (16:48 -0700)]
Refactor sub8x8 block transform and quantization process

This commit refactors the transform and quantization process for
sub8x8 blocks and unifies the related functions.

Change-Id: I005f61f3eb49eec44f947b906c4e308cab9935a2

8 years agoMake recursive txfm partitioning use uniform quantizer
Jingning Han [Thu, 23 Jun 2016 19:15:17 +0000 (12:15 -0700)]
Make recursive txfm partitioning use uniform quantizer

Replace the expanded zero-bin quantizer with uniform quantizer in
the recursive transform block partitioning scheme. This improves
the compression performance by 0.4% for lowres.

Change-Id: I1c32ce9ebba0f0760e36a2c5bd20f2f5887ea5b4

8 years agoMerge "Convolution vertical filter SSSE3 optimization" into nextgenv2
Yi Luo [Thu, 23 Jun 2016 22:01:19 +0000 (22:01 +0000)]
Merge "Convolution vertical filter SSSE3 optimization" into nextgenv2

8 years agoMerge "Enforce trellis optimization for 1-pass encoding" into nextgenv2
Jingning Han [Thu, 23 Jun 2016 21:38:03 +0000 (21:38 +0000)]
Merge "Enforce trellis optimization for 1-pass encoding" into nextgenv2

8 years agoConvolution vertical filter SSSE3 optimization
Yi Luo [Tue, 21 Jun 2016 19:17:39 +0000 (12:17 -0700)]
Convolution vertical filter SSSE3 optimization

- Apply 8-pixel vertical filtering direction parallelism.
- Add unit tests to verify bit exact.
- Encoder speed improves ~29% (enable EXT_INTERP) on Xeon E5-2680.
- Combinational cycle count of vp10_convolve() drops from 26.06%
  to 6.73%.

Change-Id: Ic1ae48f8fb1909991577947a8c00d07832737e57

8 years agoEnforce trellis optimization for 1-pass encoding
Jingning Han [Thu, 23 Jun 2016 16:32:32 +0000 (09:32 -0700)]
Enforce trellis optimization for 1-pass encoding

This fixes the unit test failure in the 1-pass settings of
EndToEndTestLarge.EndtoEndPSNRTest

bug=webm:1243

Change-Id: I7667c341f7c063f7ffb83786446bbbd1e498c1aa

8 years agoMerge "Fix input buffer initialization in convolution filter test" into nextgenv2
Yi Luo [Thu, 23 Jun 2016 18:43:02 +0000 (18:43 +0000)]
Merge "Fix input buffer initialization in convolution filter test" into nextgenv2

8 years agoMerge "Refactor reference frame type defs" into nextgenv2
Jingning Han [Thu, 23 Jun 2016 16:51:24 +0000 (16:51 +0000)]
Merge "Refactor reference frame type defs" into nextgenv2

8 years agoMerge "Reject sub8x8 partitions with SEG_LVL_SKIP." into nextgenv2
Alex Converse [Thu, 23 Jun 2016 16:50:04 +0000 (16:50 +0000)]
Merge "Reject sub8x8 partitions with SEG_LVL_SKIP." into nextgenv2

8 years agoReject sub8x8 partitions with SEG_LVL_SKIP.
Alex Converse [Thu, 16 Jun 2016 22:00:31 +0000 (15:00 -0700)]
Reject sub8x8 partitions with SEG_LVL_SKIP.

Change-Id: I2503f163464862dc3a7a3141d43d3f07c81b33d2

8 years agoForce SIMPLE_TRANSLATION motion for SEG_LVL_SKIP blocks.
Geza Lore [Thu, 23 Jun 2016 12:51:37 +0000 (13:51 +0100)]
Force SIMPLE_TRANSLATION motion for SEG_LVL_SKIP blocks.

Change-Id: Ib8ac19f25d06351b8aabed742aa0be66e28ec4d4

8 years agoRefactor reference frame type defs
Jingning Han [Wed, 22 Jun 2016 16:36:17 +0000 (09:36 -0700)]
Refactor reference frame type defs

Move the reference frame type definitions to common/enums.h file.
Replace hard coded numbers.
Combine repeated definitions.

Change-Id: I288e079a03e448014cc181bcdb3f88ee8ec8d139

8 years agoFix input buffer initialization in convolution filter test
Yi Luo [Wed, 22 Jun 2016 18:44:02 +0000 (11:44 -0700)]
Fix input buffer initialization in convolution filter test

Change-Id: I70c0da96a81463d752e88b134b6fde012bd5823d

8 years agoRemove unnecessary macros
Zoe Liu [Wed, 22 Jun 2016 17:25:40 +0000 (10:25 -0700)]
Remove unnecessary macros

Change-Id: Id0975947b4e7b76b2c2464905f3b9a29245946c2

8 years agoMerge "(Cosmetics) Remove unnecessary new parameters in obmc experiment" into nextgenv2
Yue Chen [Wed, 22 Jun 2016 17:22:47 +0000 (17:22 +0000)]
Merge "(Cosmetics) Remove unnecessary new parameters in obmc experiment" into nextgenv2

8 years agoMerge "Reinstate "Optimize wedge partition selection." without tests." into nextgenv2
Debargha Mukherjee [Wed, 22 Jun 2016 16:59:39 +0000 (16:59 +0000)]
Merge "Reinstate "Optimize wedge partition selection." without tests." into nextgenv2

8 years ago(Cosmetics) Remove unnecessary new parameters in obmc experiment
Yue Chen [Tue, 21 Jun 2016 22:00:40 +0000 (15:00 -0700)]
(Cosmetics) Remove unnecessary new parameters in obmc experiment

pred_variance in obmc experiment is equivalant to recon_variance in
baseline

Change-Id: Iba8fb9bd973898be5a0d87a507ceaf65c75bdc51

8 years agoMerge "Fix uninitialized context use case in supertx and var-tx" into nextgenv2
Jingning Han [Wed, 22 Jun 2016 05:47:45 +0000 (05:47 +0000)]
Merge "Fix uninitialized context use case in supertx and var-tx" into nextgenv2

8 years agoMerge "Make drl support bi-directional reference frames" into nextgenv2
Jingning Han [Wed, 22 Jun 2016 05:47:34 +0000 (05:47 +0000)]
Merge "Make drl support bi-directional reference frames" into nextgenv2

8 years agoMerge "Remove an unnecessary if()" into nextgenv2
Hui Su [Wed, 22 Jun 2016 04:10:41 +0000 (04:10 +0000)]
Merge "Remove an unnecessary if()" into nextgenv2

8 years agoMerge "Skip optimizing larger coefficients in trellis quant module" into nextgenv2
Hui Su [Wed, 22 Jun 2016 04:10:21 +0000 (04:10 +0000)]
Merge "Skip optimizing larger coefficients in trellis quant module" into nextgenv2

8 years agoMerge "remove vpx_highbd_1[02]_sub_pixel_variance4x4_sse4_1" into nextgenv2
James Zern [Wed, 22 Jun 2016 03:13:31 +0000 (03:13 +0000)]
Merge "remove vpx_highbd_1[02]_sub_pixel_variance4x4_sse4_1" into nextgenv2

8 years agoFix uninitialized context use case in supertx and var-tx
Jingning Han [Tue, 21 Jun 2016 19:55:21 +0000 (12:55 -0700)]
Fix uninitialized context use case in supertx and var-tx

This commit fixes the use of uninitialized context values in the
combination of supertx and var-tx.

Change-Id: I2d36badf5c9806ea402ce3e19515cc299e6b79e8

8 years agoMake drl support bi-directional reference frames
Jingning Han [Tue, 21 Jun 2016 22:06:40 +0000 (15:06 -0700)]
Make drl support bi-directional reference frames

This commit refactors the reference frame structure used in the
dynamic motion vector referencing system, and makes it support
the bi-directional reference frames. This resolves unit test
failure (enc/dec mismatch) when both are turned on.

The compression performance (ref-mv + ext-refs) is improved by
0.2% for lowres.

Change-Id: I233624d8fccc1f69e82295f94de984ff056365dc

8 years agoMerge "Add 1D version of vpx_sum_squares_i16" into nextgenv2
Debargha Mukherjee [Wed, 22 Jun 2016 00:33:17 +0000 (00:33 +0000)]
Merge "Add 1D version of vpx_sum_squares_i16" into nextgenv2

8 years agoMerge "Cleanup dist_block()" into nextgenv2
Alex Converse [Wed, 22 Jun 2016 00:16:10 +0000 (00:16 +0000)]
Merge "Cleanup dist_block()" into nextgenv2

8 years agoRemove an unnecessary if()
hui su [Tue, 21 Jun 2016 19:45:41 +0000 (12:45 -0700)]
Remove an unnecessary if()

The condition of this if() is always true.

Change-Id: I251715d519414d1a3d0a78eb3d025df11d913298

8 years agoSkip optimizing larger coefficients in trellis quant module
hui su [Tue, 21 Jun 2016 17:19:46 +0000 (10:19 -0700)]
Skip optimizing larger coefficients in trellis quant module

This achieves a few percent speed increase without hurting
compression performance.

Change-Id: I040e9bb69274f7de843bdd15926a5c924b30a731

8 years agoReinstate "Optimize wedge partition selection." without tests.
Geza Lore [Tue, 21 Jun 2016 19:27:33 +0000 (20:27 +0100)]
Reinstate "Optimize wedge partition selection." without tests.

This reinstates commit efda2831e5f758b4f350679b5c55c0b9282449b0
without the tests and with fixes for 32 bit x86 builds.

Change-Id: I34be4fe1e8a67686d26ba256fd7efe0eb6a569e8

8 years agoAdd 1D version of vpx_sum_squares_i16
Geza Lore [Tue, 21 Jun 2016 19:22:25 +0000 (20:22 +0100)]
Add 1D version of vpx_sum_squares_i16

Change-Id: I1829f931749a26aec38c896b609c5a2640d6dfaf

8 years agoMerge "Always respect tile bounds in calc_target_weighted_pred." into nextgenv2
Debargha Mukherjee [Tue, 21 Jun 2016 18:33:40 +0000 (18:33 +0000)]
Merge "Always respect tile bounds in calc_target_weighted_pred." into nextgenv2

8 years agoMerge "Fix false uninitialized warnings (GCC 5+)." into nextgenv2
Debargha Mukherjee [Tue, 21 Jun 2016 17:12:13 +0000 (17:12 +0000)]
Merge "Fix false uninitialized warnings (GCC 5+)." into nextgenv2

8 years agoAlways respect tile bounds in calc_target_weighted_pred.
Geza Lore [Tue, 21 Jun 2016 16:56:29 +0000 (17:56 +0100)]
Always respect tile bounds in calc_target_weighted_pred.

The tile boundaries should now be respected even between tile rows.
regardless of whether ext-tile is used or not.

Change-Id: I5a39fd274451114a4264215f97f12be2c908016d

8 years agoMerge "Handle two identical states in the trellis chain" into nextgenv2
Jingning Han [Tue, 21 Jun 2016 16:04:30 +0000 (16:04 +0000)]
Merge "Handle two identical states in the trellis chain" into nextgenv2

8 years agoFix false uninitialized warnings (GCC 5+).
Geza Lore [Sun, 19 Jun 2016 20:35:01 +0000 (21:35 +0100)]
Fix false uninitialized warnings (GCC 5+).

Change-Id: Ia00c754ddaf22bb7f1dfcd20106db6293bf4b070

8 years agoHandle two identical states in the trellis chain
Jingning Han [Mon, 20 Jun 2016 17:56:04 +0000 (10:56 -0700)]
Handle two identical states in the trellis chain

When the next two states are identical, skip repeated cost table
fetch and multiplication operations. This makes the trellis unit
about 5% faster.

Change-Id: I0dbf7ad0a5732044e4e45dd59e9431a251c678f2

8 years agoMerge "Fix RDO issue of obmc + speed feature fast_inter_tx_type_search" into nextgenv2
Yue Chen [Mon, 20 Jun 2016 21:57:24 +0000 (21:57 +0000)]
Merge "Fix RDO issue of obmc + speed feature fast_inter_tx_type_search" into nextgenv2

8 years agoMerge "Convolution horizontal filter SSSE3 optimization" into nextgenv2
Yi Luo [Mon, 20 Jun 2016 20:06:02 +0000 (20:06 +0000)]
Merge "Convolution horizontal filter SSSE3 optimization" into nextgenv2

8 years agoConvolution horizontal filter SSSE3 optimization
Yi Luo [Tue, 14 Jun 2016 00:01:17 +0000 (17:01 -0700)]
Convolution horizontal filter SSSE3 optimization

- Apply signal direction/4-pixel vertical/8-pixel vertical
  parallelism.
- Add unit test to verify the bit exact result.
- Overall encoding time improves ~24% on Xeon E5-2680 CPU.

Change-Id: I104dcbfd43451476fee1f94cd16ca5f965878e59

8 years agoMerge "Use precise rate estimate for zero_token" into nextgenv2
Jingning Han [Mon, 20 Jun 2016 16:47:33 +0000 (16:47 +0000)]
Merge "Use precise rate estimate for zero_token" into nextgenv2

8 years agoMerge "Optimize the use case of token_cost table" into nextgenv2
Jingning Han [Mon, 20 Jun 2016 16:47:20 +0000 (16:47 +0000)]
Merge "Optimize the use case of token_cost table" into nextgenv2

8 years agoMerge "Turn on AqSegment tests for VP10" into nextgenv2
Debargha Mukherjee [Mon, 20 Jun 2016 16:47:13 +0000 (16:47 +0000)]
Merge "Turn on AqSegment tests for VP10" into nextgenv2

8 years agoFix RDO issue of obmc + speed feature fast_inter_tx_type_search
Yue Chen [Fri, 17 Jun 2016 21:15:44 +0000 (14:15 -0700)]
Fix RDO issue of obmc + speed feature fast_inter_tx_type_search

Change-Id: I86a967ad2d824ca7877626eed9eb11f0e057b22d

8 years agoMerge "Re-enable ActiveMapTest for VP10" into nextgenv2
Yue Chen [Mon, 20 Jun 2016 16:37:53 +0000 (16:37 +0000)]
Merge "Re-enable ActiveMapTest for VP10" into nextgenv2

8 years agoMerge "Fix unit test failure in obmc exp" into nextgenv2
Jingning Han [Sat, 18 Jun 2016 22:38:53 +0000 (22:38 +0000)]
Merge "Fix unit test failure in obmc exp" into nextgenv2

8 years agoremove vpx_highbd_1[02]_sub_pixel_variance4x4_sse4_1
James Zern [Sat, 18 Jun 2016 02:40:58 +0000 (19:40 -0700)]
remove vpx_highbd_1[02]_sub_pixel_variance4x4_sse4_1

these cause ASan errors VP10/EndToEndTestLarge.EndtoEndPSNRTest

BUG=webm:1242

Change-Id: I0334e3b255b14e18f61970c3721ae748dc79727b

8 years agoFix unit test failure in obmc exp
Jingning Han [Fri, 17 Jun 2016 23:23:32 +0000 (16:23 -0700)]
Fix unit test failure in obmc exp

Properly restore the rate cost in the inner search loop of obmc
prediction. This avoids unexpected encoding behavior. It fixes
the unit test failure in obmc experiment:

AltRefForcedKeyTestLarge.Frame1IsKey/2

Change-Id: I667b219dfcf2f2c63d9d984900ed3cfd10c354bd

8 years agoMerge "Make variance based partitioning compatible with SEG_LVL_SKIP" into nextgenv2
Yue Chen [Sat, 18 Jun 2016 00:19:41 +0000 (00:19 +0000)]
Merge "Make variance based partitioning compatible with SEG_LVL_SKIP" into nextgenv2

8 years agoMerge "Skip restore token_cache value" into nextgenv2
Jingning Han [Fri, 17 Jun 2016 21:59:53 +0000 (21:59 +0000)]
Merge "Skip restore token_cache value" into nextgenv2

8 years agoMerge "Fix warnings from gtest under GCC 5 or newer." into nextgenv2
Geza Lore [Fri, 17 Jun 2016 20:10:13 +0000 (20:10 +0000)]
Merge "Fix warnings from gtest under GCC 5 or newer." into nextgenv2

8 years agoMerge bi-predictive frames to EXT_REFS
Zoe Liu [Wed, 8 Jun 2016 21:27:56 +0000 (14:27 -0700)]
Merge bi-predictive frames to EXT_REFS

This patch removed the experiment of BIDIR_PRED and merged the feature
into the experiment of EXT_REFS:

(1) Each frame now has up to 6 reference frames, namely
    LAST_FRAME, LAST2_FRAME, LAST3_FRAME, GOLDEN_FRAME, (forward) and
    BWDREF_FRAME, ALTREF_FRAME (backward);
    LAST4_FRAME has been removed;
(2) First pass still keeps the 8 updates:
    KF_UPDATE, LF_UPDATE, GF_UPDATE, ARF_UPDATE, OVERLAY_UPDATE, and
    BRF_UPDATE, LAST_BIPRED_UPDATE, BI_PRED_UPDATE;
(3) show_existing_frame==1 is supported in the experiment of EXT_REFS;
(4) New encoding modes are added for both single-ref and compound cases,
    through the use of the 2 extra forward references (LAST2 & LAST3)
    and the 1 extra backward reference (BWDREF).

RD performance wise, using Overall PSNR: Avg/BDRate
        Bipred only      Prev EXT_REFS    Current EXT_REFS with bipred
lowres: -3.474/-3.324    -1.748/-1.586    -4.613/-4.387
derflr: -2.097/-1.353    -1.439/-1.215    -3.120/-2.252
midres: -2.129/-1.901    -1.345/-1.185    -2.898/-2.636

If in vp10/encoder/firstpass.h, change BFG_INTERVAL from 2 to 3, i.e. to
use 2 bi-predictive frames than 1, a further improvement may be
obtained:
                 Current EXT_REFS with bipred
        1 bi-predictive frame    2 bi-predictive frames
lowres: -4.613/-4.387            -4.675/-4.465
derflr: -3.120/-2.252            -3.333/-2.516
midres: -2.898/-2.636            -3.406/-3.095

Change-Id: Ib06fe9ea0a5cfd7418a1d79b978ee9d80bf191cb

8 years agoRe-enable ActiveMapTest for VP10
Geza Lore [Fri, 17 Jun 2016 10:46:23 +0000 (11:46 +0100)]
Re-enable ActiveMapTest for VP10

Change-Id: I030fdde966b9911712eca131d095015afd9b0d8a

8 years agoMake variance based partitioning compatible with SEG_LVL_SKIP
Geza Lore [Fri, 17 Jun 2016 10:28:02 +0000 (11:28 +0100)]
Make variance based partitioning compatible with SEG_LVL_SKIP

Inter blocks that have SEG_LVL_SKIP active must be at least 8x8 in
size for bitstream conformance (see read_inter_block_mode_info in
decodemv.c).

This patch makes the variance based partitioning scheme stop at 8x8
blocks in inter frames. This satisfies the SEG_LVL_SKIP constraint
and is more in line with the original implementation of this function
(before it got extended for 128x128 superblocks).

BUG=webm:1234

Change-Id: I1fdd894569a9c0817713a77daabe4c8b8e1d00c0

8 years agoUse precise rate estimate for zero_token
Jingning Han [Fri, 17 Jun 2016 17:24:34 +0000 (10:24 -0700)]
Use precise rate estimate for zero_token

This commit takes the precise rate estimate for zero_token rate
cost update. It improves the compression performance:

lowres 0.15%
midres 0.23%

Change-Id: I36761079f75ce43c814f8c663667e359d4ac2cd4

8 years agoOptimize the use case of token_cost table
Jingning Han [Thu, 16 Jun 2016 23:56:02 +0000 (16:56 -0700)]
Optimize the use case of token_cost table

Reduce the cache footprint of the token_costs table.

Change-Id: Ie989e60c6479ac3251cadaac9c7e795ccba52f4e

8 years agoFix warnings from gtest under GCC 5 or newer.
Geza Lore [Fri, 17 Jun 2016 14:32:25 +0000 (15:32 +0100)]
Fix warnings from gtest under GCC 5 or newer.

Change-Id: I9661f2fe9d315dccae69caa70d929b5d9d93b7db

8 years agoMerge "Rework table access operations in vp10_optimize_b function" into nextgenv2
Jingning Han [Fri, 17 Jun 2016 00:25:50 +0000 (00:25 +0000)]
Merge "Rework table access operations in vp10_optimize_b function" into nextgenv2

8 years agoCleanup dist_block()
Alex Converse [Thu, 16 Jun 2016 22:27:22 +0000 (15:27 -0700)]
Cleanup dist_block()

Change-Id: Iff0c0548924efd5a01c3a301cc5b4cdfda42e87e

8 years agoSkip restore token_cache value
Jingning Han [Thu, 16 Jun 2016 22:18:46 +0000 (15:18 -0700)]
Skip restore token_cache value

The trellis optimization is going backward. Hence there is no need
to restore the token_cache values that is behind the current node
in the scan order.

Change-Id: I4da8a2e3f78bf9630e6667c85d8c387c5d94de9a

8 years agoMerge "Make supertx skip bits observe segment level coding." into nextgenv2
Yue Chen [Thu, 16 Jun 2016 22:03:44 +0000 (22:03 +0000)]
Merge "Make supertx skip bits observe segment level coding." into nextgenv2

8 years agoRework table access operations in vp10_optimize_b function
Jingning Han [Thu, 16 Jun 2016 16:50:19 +0000 (09:50 -0700)]
Rework table access operations in vp10_optimize_b function

Localize table access. This provides another 10% speed-up to
the unit.

Change-Id: Ib902121f412f78e2bd501b9799c8c64462f803b5

8 years agoMerge "Change supertx syntax order." into nextgenv2
Debargha Mukherjee [Thu, 16 Jun 2016 18:25:04 +0000 (18:25 +0000)]
Merge "Change supertx syntax order." into nextgenv2