17183 Commits

Author SHA1 Message Date
Sarah Parker
fbe6fb2773 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
2016-06-24 16:16:13 -07:00
Debargha Mukherjee
cf0cdfc55e Turn on ActiveMapRefreshTest for Vp10
Also reduce number of frames coded for VP10.

Change-Id: I7de908861620b6f4f08513516110fd584660d994
2016-06-24 12:55:03 -07:00
Yi Luo
2003cd8011 Merge "Change register loading to fix stack overflow issue" into nextgenv2 2016-06-24 18:47:21 +00:00
Yi Luo
08184e32de 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
2016-06-24 10:39:49 -07:00
Jingning Han
bf89ee7109 Merge "Use uniform quantizer for sub8x8 block coding" into nextgenv2 2016-06-24 17:07:46 +00:00
Jingning Han
0353e8d6b8 Merge "Refactor sub8x8 block transform and quantization process" into nextgenv2 2016-06-24 17:07:35 +00:00
Jingning Han
45c9add28c Merge "Make recursive txfm partitioning use uniform quantizer" into nextgenv2 2016-06-24 03:18:11 +00:00
Jingning Han
d100948ca2 Use uniform quantizer for sub8x8 block coding
Use the trellis optimization based uniform quantizer to encode the
sub8x8 block coding.

Change-Id: Ibbf7791b0aa430b7c67ef38eac3af6379578f56d
2016-06-23 17:01:00 -07:00
Jingning Han
bbe1b2217b 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
2016-06-23 16:56:05 -07:00
Jingning Han
db78fa9abb 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
2016-06-23 15:23:43 -07:00
Yi Luo
2f52813ebd Merge "Convolution vertical filter SSSE3 optimization" into nextgenv2 2016-06-23 22:01:19 +00:00
Jingning Han
dde6e2b1d3 Merge "Enforce trellis optimization for 1-pass encoding" into nextgenv2 2016-06-23 21:38:03 +00:00
Yi Luo
81ad95363a 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
2016-06-23 12:56:47 -07:00
Jingning Han
8aca4c3495 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
2016-06-23 12:18:28 -07:00
Yi Luo
76ff9b3097 Merge "Fix input buffer initialization in convolution filter test" into nextgenv2 2016-06-23 18:43:03 +00:00
Jingning Han
95d99ae1f0 Merge "Refactor reference frame type defs" into nextgenv2 2016-06-23 16:51:25 +00:00
Alex Converse
8505967430 Merge "Reject sub8x8 partitions with SEG_LVL_SKIP." into nextgenv2 2016-06-23 16:50:04 +00:00
Alex Converse
5a019e148e Reject sub8x8 partitions with SEG_LVL_SKIP.
Change-Id: I2503f163464862dc3a7a3141d43d3f07c81b33d2
2016-06-23 16:20:51 +00:00
Geza Lore
c9e7675c1a Force SIMPLE_TRANSLATION motion for SEG_LVL_SKIP blocks.
Change-Id: Ib8ac19f25d06351b8aabed742aa0be66e28ec4d4
2016-06-23 14:09:16 +01:00
Jingning Han
b605de074d 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
2016-06-22 12:34:44 -07:00
Nico Weber
243029faff Merge "win: Include <intrin.h> instead of manually declaring intrinsics." 2016-06-22 19:06:48 +00:00
Yi Luo
f26a48bd52 Fix input buffer initialization in convolution filter test
Change-Id: I70c0da96a81463d752e88b134b6fde012bd5823d
2016-06-22 11:46:16 -07:00
Nico Weber
8c29d332c9 win: Include <intrin.h> instead of manually declaring intrinsics.
This helps clang-cl.

BUG=chromium:592745

Change-Id: I49f9b6928c91b2b43567f4336520ba4f1010d3ad
2016-06-22 14:44:47 -04:00
Yaowu Xu
ef665996ae Prevent negative variance
Due to rounding used computation, HDB variance computation may produce
slightly negative values. This commit adds clamping to make sure
output variance values for 10 and 12 to be non-negative.

Change-Id: Id679aa55a4c201958c4c7d28cd8733b9246a71c8
2016-06-22 17:55:14 +00:00
Zoe Liu
cb2c037c06 Remove unnecessary macros
Change-Id: Id0975947b4e7b76b2c2464905f3b9a29245946c2
2016-06-22 10:25:40 -07:00
Yue Chen
883e3b840f Merge "(Cosmetics) Remove unnecessary new parameters in obmc experiment" into nextgenv2 2016-06-22 17:22:47 +00:00
Debargha Mukherjee
78842b2870 Merge "Reinstate "Optimize wedge partition selection." without tests." into nextgenv2 2016-06-22 16:59:40 +00:00
Yue Chen
02596589e7 (Cosmetics) Remove unnecessary new parameters in obmc experiment
pred_variance in obmc experiment is equivalant to recon_variance in
baseline

Change-Id: Iba8fb9bd973898be5a0d87a507ceaf65c75bdc51
2016-06-22 06:24:32 +00:00
Jingning Han
c797e709a2 Merge "Fix uninitialized context use case in supertx and var-tx" into nextgenv2 2016-06-22 05:47:45 +00:00
Jingning Han
7272750702 Merge "Make drl support bi-directional reference frames" into nextgenv2 2016-06-22 05:47:34 +00:00
Hui Su
09d7d76b21 Merge "Remove an unnecessary if()" into nextgenv2 2016-06-22 04:10:41 +00:00
Hui Su
467bb16215 Merge "Skip optimizing larger coefficients in trellis quant module" into nextgenv2 2016-06-22 04:10:21 +00:00
James Zern
5d14586392 Merge "remove vpx_highbd_1[02]_sub_pixel_variance4x4_sse4_1" into nextgenv2 2016-06-22 03:13:31 +00:00
Jingning Han
d26815569f 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
2016-06-22 00:46:22 +00:00
Jingning Han
c2195c5b7e 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
2016-06-21 17:39:30 -07:00
Debargha Mukherjee
997b491272 Merge "Add 1D version of vpx_sum_squares_i16" into nextgenv2 2016-06-22 00:33:18 +00:00
Alex Converse
27d3905cae Merge "Cleanup dist_block()" into nextgenv2 2016-06-22 00:16:10 +00:00
Yaowu Xu
b3933e2d3c Merge "Fix ubsan warnings: vp9/encoder/vp9_mcomp.c" 2016-06-22 00:12:58 +00:00
Yaowu Xu
87bf1a149c Fix ubsan warnings: vp9/encoder/vp9_mcomp.c
This commit fixes a number of ubsan warnings in HBD build.

BUG=webm:1219

Change-Id: I05f0fd0ef50e93db4ba34205005c54af1ed32acc
2016-06-21 15:37:59 -07:00
hui su
9981cb8b0f Remove an unnecessary if()
The condition of this if() is always true.

Change-Id: I251715d519414d1a3d0a78eb3d025df11d913298
2016-06-21 14:56:11 -07:00
hui su
e067755930 Skip optimizing larger coefficients in trellis quant module
This achieves a few percent speed increase without hurting
compression performance.

Change-Id: I040e9bb69274f7de843bdd15926a5c924b30a731
2016-06-21 14:55:52 -07:00
Hui Su
b8ec5dcdf8 Merge "Add a hardware compatibility feature" 2016-06-21 21:33:26 +00:00
Geza Lore
135d663159 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
2016-06-21 20:31:50 +01:00
Geza Lore
52141c9111 Add 1D version of vpx_sum_squares_i16
Change-Id: I1829f931749a26aec38c896b609c5a2640d6dfaf
2016-06-21 20:31:50 +01:00
Debargha Mukherjee
7f929d292d Merge "Always respect tile bounds in calc_target_weighted_pred." into nextgenv2 2016-06-21 18:33:40 +00:00
Tom Finegan
cb1d152719 Merge "Disable neon for Xcode versions < v6.3." 2016-06-21 17:53:54 +00:00
hui su
a5af392aae Add a hardware compatibility feature
This commit adds an encoder workaround to support better
compatibility with a non-compliant hardware vp9 profile 2 decoder.

The known issue with this decoder is:
The decoder assumes a wrong value, 127 instead of the correct
value of 511 and 2047, for any assumed top-left corner pixel in
UV planes for 10 and 12 bit, respectively. Such assumed
top-left corner pixel is used for INTRA prediction when a real
decoded/reconstructed pixel is not avalable, e.g. when it is
located inside the row above the top row or inside the column
left to the leftest column of a video image.

Change-Id: Ic15a938a3107e1b85e96cb7903a5c4220986b99d
2016-06-21 10:33:57 -07:00
Debargha Mukherjee
db328a6b18 Merge "Fix false uninitialized warnings (GCC 5+)." into nextgenv2 2016-06-21 17:12:13 +00:00
Geza Lore
78bd14b38d 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
2016-06-21 17:56:29 +01:00
Jingning Han
02b8212be8 Merge "Handle two identical states in the trellis chain" into nextgenv2 2016-06-21 16:04:31 +00:00