Commit Graph

16179 Commits

Author SHA1 Message Date
Geza Lore
d29ec48504 Initialize dummy variables.
Valgrind flags these up as needed by handle_inter_mode.
Initializing fixes some assertion failures in the unit tests with
only ref-mv enabled.

Change-Id: I4d56c356692745dbecd9f790cdbb8dbfbaf72d55
2016-04-27 13:35:12 +01:00
Yue Chen
88bb103f75 Merge "Optimization for EXT_INTER + OBMC" into nextgenv2 2016-04-27 06:29:38 +00:00
Yue Chen
3ac12aecc5 Optimization for EXT_INTER + OBMC
Remove the restriction that the neighboring predictor cannot be
used in obmc prediction if it is an interintra or wedgeinterinter
block. The inter predictor of the interintra block, or the first
inter predictor(using LAST or GOLDEN frame) of the wedgeinterinter
block will be exploited in obmc prediction.

Coding gain: 0.248% (2.833%->3.081%) lowres

Change-Id: I4ac0368b9d2f2956f266b30c1ac97db8bafa0742
2016-04-26 16:50:10 -07:00
Debargha Mukherjee
e5b8a01fd5 Merge "Reduce intra transform set" into nextgenv2 2016-04-26 23:32:16 +00:00
Yue Chen
02e941d371 Merge "Remove double counting for mv costs" into nextgenv2 2016-04-26 21:40:13 +00:00
Jingning Han
2f2448aec9 Merge "Rework motion vector precision limit" into nextgenv2 2016-04-26 21:31:10 +00:00
Yue Chen
34177e673d Remove double counting for mv costs
The bug is introduced by commit 1a0352d, in which mv costs are
counted twice in joint_motion_search() in ext_inter experiment.

Change-Id: Ibace453df999d3c2e781d73f1f0912038fee2d4e
2016-04-26 13:01:52 -07:00
Hui Su
3f7a709676 Merge "ext-intra: get rid of some floating operations." into nextgenv2 2016-04-26 18:53:33 +00:00
Jingning Han
8678ab4c55 Rework motion vector precision limit
This commit enables 1/8 luma component motion vector precision
for all motion vector cases. It improves the compression performance
of lowres by 0.13% and hdres by 0.49%.

Change-Id: Iccfc85e8ee1c0154dfbd18f060344f1e3db5dc18
2016-04-26 10:14:26 -07:00
Debargha Mukherjee
8851acc5ed Reduce intra transform set
Reduce transform set for intra for 8x8 and smalller to 7 from 12.
Also fixes an issue with prob updates.

Enocder Speed-up about 8-10%

Coding efficiency very little change.
lowres: -2.996 (from -3.055 before)
midres: -2.482 (from -2.552 before)

Change-Id: I4ba50ff967521b33c748fe423bd92f7cf4105ebc
2016-04-26 10:10:55 -07:00
Hui Su
1e93a3e64e Merge "Keep track of zcoeff_blk in tx size/type search" into nextgenv2 2016-04-26 16:41:50 +00:00
hui su
ad50c226e6 ext-intra: get rid of some floating operations.
No performance changes.

Change-Id: Idd4043090fec09e57520bc970ed2e39e6f7e1a5e
2016-04-25 14:44:42 -07:00
Debargha Mukherjee
022da62579 Merge "Clear X87 register state before using double." into nextgenv2 2016-04-25 21:42:23 +00:00
Yi Luo
333ff883e1 Merge "HBD hybrid transform 4x4 SSE4.1 optimization" into nextgenv2 2016-04-25 19:43:35 +00:00
Geza Lore
23c4116ebb Clear X87 register state before using double.
MMX and X87 floating point instructions cannot be mixed freely on
the 32 bit x86 architecture.

This fixes a lot of unit tests in the 32bit build with
--enable-ext-intra.

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1196

Change-Id: I0e1c3565f4b9cb4fc2d716e94d9c40e68b36fac8
2016-04-25 10:30:20 -07:00
Alex Converse
d4fe243cdf Merge "Raise the probability resolution for rANS tokens to 10-bits per symbol" into nextgenv2 2016-04-25 17:11:16 +00:00
Yi Luo
a4593f17ca HBD hybrid transform 4x4 SSE4.1 optimization
- Optimization on tx_type: DCT_DCT, DCT_ADST, ADST_DCT, ADST_ADST.
- Overall encoder speed improves ~4.5%-6%.
- Update bit-exact unit test against current C version.

Change-Id: If751c030612245b1c2470200c9570cf40d655504
2016-04-25 09:53:09 -07:00
Jingning Han
b4cbe54ed6 Merge "Fix out-of-bound memory access in loop filter" into nextgenv2 2016-04-25 16:13:04 +00:00
Jingning Han
221c09aa99 Merge "Refactor sub-pixel motion search" into nextgenv2 2016-04-25 16:12:51 +00:00
James Zern
0aa6435c45 vp10/rdopt: quiet unused variable warning
when CONFIG_REF_MV and CONFIG_EXT_INTER are enabled

Change-Id: I17fa2b5fe0e1878333099cc5fa2b1ee36636b4d3
2016-04-23 16:59:45 +00:00
Yue Chen
8ce563bf92 Merge "Fix EXT_INTER unit test failure in 32-bit builds" into nextgenv2 2016-04-23 16:51:08 +00:00
Jingning Han
004c7fa668 Fix out-of-bound memory access in loop filter
This commit fixes an out-of-bound memory access case in the
loop filter mask setting. This issue was introduced in

10232ed Refactor loopfilter level arrays to 2D.
https://chromium-review.googlesource.com/#/c/336645/

Change-Id: I7101a4a79b9ecfdd8ec5ef13a0b314cc95f48d12
2016-04-22 22:57:14 -07:00
Yue Chen
6daf1a460e Fix EXT_INTER unit test failure in 32-bit builds
Align new buffers that are used in interintra and wedgeinterinter prediction.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1196

Change-Id: I1ef49fdf13c79a22cf8a1737e3d3052da0a92dfe
2016-04-22 22:37:13 -07:00
Jingning Han
cdf989adb7 Silence compiler above-boundary warnings
Change-Id: I6d806f92e8d38d5b0b01bc8e0fd97bd8839c84df
2016-04-22 15:49:34 -07:00
Alex Converse
1f57aa38cd Raise the probability resolution for rANS tokens to 10-bits per symbol
Change-Id: I397b5a9371c85d1df401d261143c985623e9def6
2016-04-22 15:48:11 -07:00
Jingning Han
77d451ecca Refactor sub-pixel motion search
Unify the rate cost used in the motion estimation process.

Change-Id: I8e52ca9f29eee3469553433302b62fb02a038919
2016-04-22 22:27:09 +00:00
Jingning Han
0dccc85c98 Replace left shift with multiplications
This avoids the potential risk in left shift of negative numbers.

Change-Id: I7aecb499ee6ce7342b172adc4741de5c6c107a24
2016-04-22 20:56:02 +00:00
Jingning Han
3f6ec144e5 Fix an enc/dec mismatch issue in ext-inter experiment
This commit fixes an encoding decision process issue that could
trigger enc/dec mismatch in the ext-inter experiment.

Change-Id: I6f10d1fd2fd1aa04e51df04c39a65cf72ac66c42
2016-04-22 20:49:29 +00:00
Yi Luo
cf7f00691f Change hybrid transform function argument from TXFM_2D_CFG* to int
Unit test shows manually developed SSE4.1 code would performs ~30%
  better if TXFM_2D_CFG configuration is set in lower level. This
  change only updates function signature. There is no performance
  impact.

Change-Id: I62692bd50a21ffc8a944bbd6c155c0a2020ad77b
2016-04-21 18:37:21 -07:00
Alex Converse
8f2fa04181 Unbreak the non-var_tx build.
Change-Id: I76cc3d88122de42f035fbf6508bdf3fd7c995012
2016-04-21 13:27:19 -07:00
Debargha Mukherjee
53968c3917 Merge "Fix uninitialized blk_skip for VAR TX." into nextgenv2 2016-04-21 19:56:17 +00:00
Alex Converse
67058089b4 Merge "Move ZERO_TOKEN into the ANS coef tokenset." into nextgenv2 2016-04-21 18:08:04 +00:00
Angie Chiang
7d598d658c Merge "relax txfm test error constraint" into nextgenv2 2016-04-20 02:17:40 +00:00
Alex Converse
fcea1485bb Merge "Store ANS token CDFs in the FRAME_CONTEXT rather than in a global table." into nextgenv2 2016-04-19 23:29:14 +00:00
Alex Converse
3829cd2f2f Move ZERO_TOKEN into the ANS coef tokenset.
Change-Id: I87943e027437543ab31fa3ae1aa8b2de3a063ae5
2016-04-19 15:29:47 -07:00
Jingning Han
1a0352d18e Merge "Handle zero motion vector residual" into nextgenv2 2016-04-19 21:20:08 +00:00
Hui Su
1e02f2e8a4 Merge "Adjust optimize_b RD parameters" into nextgenv2 2016-04-19 21:18:50 +00:00
Hui Su
ee8c72d95a Merge "Enable optimize_b for intra blocks" into nextgenv2 2016-04-19 21:18:37 +00:00
Angie Chiang
aea0cc5041 Merge "Change the naming of txfm#d_test" into nextgenv2 2016-04-19 19:52:03 +00:00
Angie Chiang
218dfbd547 Change the naming of txfm#d_test
Change-Id: I151b18b38f7a000fb6e431cd42675ac4e7e9e3ca
2016-04-19 11:59:00 -07:00
hui su
7dffb43267 Keep track of zcoeff_blk in tx size/type search
Prevent potential problems when per transform block
zero forcing is re-enabled (a To-Do).

Change-Id: I03b0ab2a86d88058441f2ca18994cfd2e6329898
2016-04-19 11:45:11 -07:00
Yue Chen
feb2184c4e Merge "Remove an unsuccessful adaption of overlap sizes in obmc experiment" into nextgenv2 2016-04-19 18:41:02 +00:00
hui su
ad59b08f76 Adjust optimize_b RD parameters
Coding gain:
lowres  0.44%
midres  0.24%
hdres   0.32%

Change-Id: Ie558203b2b2bf5c16cd49b114df3d696c4f35049
2016-04-19 09:54:08 -07:00
hui su
e43c21112d Enable optimize_b for intra blocks
Coding gain:
lowres  0.05%
midres  0.10%
hdres   0.18%

Change-Id: I508b150c02588f911a8ddddfe73c770f0819fe10
2016-04-19 09:50:45 -07:00
Alex Converse
6ca364606b Store ANS token CDFs in the FRAME_CONTEXT rather than in a global table.
This will facilitate bringing the zero node into the token set while
allowing its probability to vary independently.

Change-Id: I57b44c0fce44debb8e612021e44713b229d1b3cf
2016-04-19 09:39:48 -07:00
Alex Converse
ab759be8d9 Merge "Use an exponential growth approach for the ANS reversal buffer." into nextgenv2 2016-04-19 16:39:18 +00:00
Geza Lore
7aa95be980 Fix uninitialized blk_skip for VAR TX.
x->blk_skip used to be uninitialized (leftover from encoding the
previous block), if cm->tx_mode != TX_MODE_SELECT (which is used with
higher --cpu-used or --rt options). This resulted in degraded coding
performance when using cm->tx_mode != TX_MODE_SELECT.

This fixes the VP10/EndToEndTestLarge.EndtoEndPSNRTest/40 unit test.

Also fixed an edge effect where encode_block in encodemb.c used the
formal width of the block (without cropping at the right edge), to
look up blk_skip, while select_tx_block in rdopt.c used the cropped
width to set blk_skip.

Change-Id: I76d0f49ac5ab3ab54203573e0d7fcfcc1c6aa10d
2016-04-19 17:00:20 +01:00
Yaowu Xu
efc6aa0c97 Merge "Merge branch 'master' into nextgenv2" into nextgenv2 2016-04-19 15:43:58 +00:00
Geza Lore
8d64b53dc8 Revert "Fix uninitialized blk_skip for VAR TX."
This reverts commit e7b89d8835.
2016-04-19 15:41:56 +01:00
Geza Lore
e7b89d8835 Fix uninitialized blk_skip for VAR TX.
x->blk_skip used to be uninitialzied (leftover from encoding the
previous block), if cm->tx_mode != TX_MODE_SELECT (which is used with
higher --cpu-used or --rt options). This resulted in degraded coding
performance when uning cm->tx_mode != TX_MODE_SELECT.

This fixes the VP10/EndToEndTestLarge.EndtoEndPSNRTest/40 unit test.

Change-Id: If39062927446798c626fc93694b4e6a4f35fa5da
2016-04-19 14:22:48 +01:00