1473 Commits

Author SHA1 Message Date
Jingning Han
94266f4f34 Make loop filter support recursive transform block partitioning
This commit allows the loop filter to account for the recursive
transform block partition when selecting the filter and mask.

Change-Id: I62b6c2dcc0497cbe1f264b03c46163f55d2c9752
2015-10-30 15:42:25 -07:00
Jingning Han
6727943ceb Refactor loop filter mask
This commit refactors the loop filter selection process to support
variable transform block sizes based filter mask. It disables the
multi-thread loop filter implementation to simplify the experiments.
The speed impact on speed 0 encoding is negligible.

Change-Id: Ia470b6da9ad833fe6eb72d2cbeda9296b21910ec
2015-10-30 15:25:16 -07:00
Jingning Han
47c7fd984e Fix a switch condition in select_tx_block
Change-Id: I3d90a0286c5ef559b91ad298db97e8990becf85f
2015-10-30 13:01:52 -07:00
Angie Chiang
27a739b650 Add fadst8
Change-Id: Ida4f292b824a29b4ffac8cad6e4042867f427979
2015-10-30 12:18:54 -07:00
Angie Chiang
1ef285bfe9 Add fadst4
Change-Id: I320a1cf82d1705e5ec7fe1870327f70ce8493489
2015-10-30 12:18:08 -07:00
Angie Chiang
0a6cab1dbc Add fdct32
Change-Id: Ifc709b62313cca0101638ed85ddb5c82e5f84fac
2015-10-30 12:07:40 -07:00
Angie Chiang
67e5b45dad Add fdct16
Change-Id: Id155b76d6694ba3fe5184ed2c20d57db4951ebf8
2015-10-30 12:05:24 -07:00
Angie Chiang
3eb719f6b0 Add fdct8
Change-Id: I66b884bc831324b5295c7874aa23f62042157834
2015-10-30 11:24:06 -07:00
Angie Chiang
ba78f80b01 Merge "Add fdct4" into nextgenv2 2015-10-30 17:41:21 +00:00
Jingning Han
b86b76bb4a Merge "Support per transform block skip coding" into nextgenv2 2015-10-30 16:58:03 +00:00
Jingning Han
bfeac5e19c Support per transform block skip coding
Allow the encoder to drop individual transform block coding.

Change-Id: I2c2b2985254cb92baf891f03daa33f067279373b
2015-10-30 08:55:17 -07:00
Yaowu Xu
cca1b39586 Merge branch 'master' into nextgenv2 2015-10-30 05:00:05 -07:00
Jingning Han
366bf3c2b6 Merge "Reset txfm context condition for skip coded blocks" into nextgenv2 2015-10-30 02:15:34 +00:00
Jingning Han
981f09a1f1 Reset txfm context condition for skip coded blocks
If a block has all coefficients quantized to zero, the codec will
assume that it uses largest transform block size.

Change-Id: Icd4e8e7cdc4b6af6974f87169e50b040ebfe9020
2015-10-29 18:02:37 -07:00
Alex Converse
989193c797 Make the zero handling in extend_to_full_distribution more explicit.
The old workaround "p = 0 ? 0 : p -1" is misleading.

?: happens before =
assigning back to p truncates to one byte.

Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists
to work around a first pass bug, so let's make the work around more
clear.

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

Change-Id: I587c44dd61c1f3767543c0126376f881889935af
2015-10-29 14:46:55 -07:00
Jingning Han
88b9e90a56 Turn off fixed tx size in frame header
Temporarily turn off the fixed transform size at frame level.

Change-Id: I94a6a3b18893909d33fb7fa91e73ee3568b537b2
2015-10-29 14:30:56 -07:00
Angie Chiang
2e0aa9fb28 Add fdct4
Change-Id: Ic4539cb6c2d421ddffa44f58d3ce21bd797b57c6
2015-10-29 14:05:25 -07:00
Alex Converse
6f229b3e62 Merge "Shrink probability remap tables." 2015-10-29 19:58:24 +00:00
Jingning Han
3edad6e887 Enable entropy coding of recursive transform block partition
This commit enables the entropy coding of the recursive transform
block partition syntax.

Change-Id: I0c2509fb7b9822d12a721f9ebf9327fac83c777e
2015-10-29 11:06:46 -07:00
Debargha Mukherjee
bdaa257674 Merge "Refactoring tx-types to add more flexibility" into nextgenv2 2015-10-29 16:51:14 +00:00
Yaowu Xu
fff670456d Merge branch 'master' into nextgenv2 2015-10-29 05:00:05 -07:00
Debargha Mukherjee
8a4292441f Refactoring tx-types to add more flexibility
Allows inter and intra tx_types to have different sets of
transforms for different tx_size/sb_type combinations.

Change-Id: Ic0ac1daef7a9fb15c4210271e4d04cd36e5cec8e
2015-10-28 23:31:32 -07:00
Alex Converse
663960e757 Revert "Replace the zero handling in extend_to_full_distribution."
This reverts commit 7f56cb29787b187c8cb1b778918ca3b80184c804.

It causes uninitialized reads in the first pass setting up later cost tables.

Change-Id: I2df498df3f5c03eff359f79edf045aed0c618dc9
2015-10-28 11:51:40 -07:00
Jingning Han
71c156070c Use precise distortion metric
Rework the rate distortion optimization pipeline. Use precise
distortion metric that accounts for the forward and inverse
transform rounding effect.

Change-Id: Ibe19ce9791ec3547739294cc3012dd9e11f4ea49
2015-10-28 11:47:14 -07:00
Jingning Han
4bfed0b32e Account for variable txfm sizes in coeff token packing
This commit makes the coefficient token packtization process account
for variable transform block sizes supported in a single processing
block. It fixes an enc/dec mismatch issue when var-tx, ext-tx, and
misc-fixes experiments are all turned on.

Change-Id: I2e8946e6f72de567603a568debbadad11196430c
2015-10-28 11:45:31 -07:00
Yaowu Xu
eb7b5f660d Merge branch 'master' into nextgenv2
Change-Id: I63dc39d1ec9ad2e2454da6f5956dcd4367b87190
2015-10-28 08:14:16 -07:00
Jingning Han
f847a16a7c Add tx_type counts in key frame
Properly update the transform type counts in key frame coding at
decoder. It fixes an enc/dec mismatch issue when both ext-tx and
misc-fixes are turned on.

Change-Id: I1e40a77c8d8157d5ff254b072ce474d8dfbaa3ae
2015-10-27 16:51:45 -07:00
Alex Converse
0f059d6d65 misc fixes: Remove a wasted value.
Remove delta index 254 from probability remapping and subexp coding.
Saves 1-bit when the delta index is 129.

Change-Id: I88aba565fc766b1769165be458d2efd3ce45817e
2015-10-27 12:10:25 -07:00
Alex Converse
a736bf6bfb Shrink probability remap tables.
Saves 2288 bytes in vp8+vp9 libvpx.a.

Change-Id: Iaa5712e59a9693ed58cea63de63781a96827e44e
2015-10-27 12:08:23 -07:00
Debargha Mukherjee
0526305151 Merge "Accumulate EXT_TX counts for multithread" into nextgenv2 2015-10-27 18:48:25 +00:00
Yaowu Xu
c1b2d416d7 Merge "Reorder code to be consistent accross branches" 2015-10-27 17:07:50 +00:00
Alex Converse
89d10d8f3f Merge "Replace the zero handling in extend_to_full_distribution." 2015-10-27 16:54:49 +00:00
Peter de Rivaz
325b96dcac Accumulate EXT_TX counts for multithread
EXT_TX introduces some new symbols to be decoded.
The encoder counts how many times these are used.
In multithreaded mode, the counts from the worker threads
need to be accumulated into the main thread.

This change means that VP10/VPxEncoderThreadTest now works
with more choices of cpu-used and number of passes.

Change-Id: Ibe7e6a3c58145265f4ead155ff98fb4cb37c3513
2015-10-27 09:41:07 -07:00
Yaowu Xu
9d8bde85cb Reorder code to be consistent accross branches
This is to make future merge a bit easier.

Change-Id: I1039de381d8fe7b9988b57c23d15d0cb5f2fcd32
2015-10-27 09:04:40 -07:00
Yaowu Xu
b6da40ad82 Merge branch 'master' into nextgenv2
Change-Id: I0e4030a37354bb23b3aa8be5cc1473770b9e7b06
2015-10-27 08:28:09 -07:00
Alex Converse
811be0df3a Fix VS build.
Add a cast on a double to unsigned assignment.

Change-Id: I4abce7cfa13e145ed0c71469844ac9b274aa1411
2015-10-26 23:13:03 -07:00
Jingning Han
236623cf2c Fix early termination flag in recursive transform block search
Properly reset the early termination flag in the recursive transform
block partitioning rate-distortion optimization scheme.

Change-Id: Ibfe918f21f11dcb1ec267c09f954c635305cc95a
2015-10-26 19:41:14 -07:00
Jingning Han
f0dee7765a Fix lossless coding
Use inter_block_yrd as rate-distortion optimization for lossless
coding. This fixes transform coefficient buffer swap use case and
resolves the unit test failure related to lossless coding.

Change-Id: I1512dab5ed5760c31f7de21a06e8d9ed1eb081fa
2015-10-26 22:03:39 +00:00
Alex Converse
7f56cb2978 Replace the zero handling in extend_to_full_distribution.
The old workaround "p = 0 ? 0 : p -1" is misleading.

?: happens before =
assigning back to p truncates to one byte.

Therefore it is equivalent to (p - 1) & 0xFF, but the check just exists
to work around a first pass bug, so let's make the work around more
clear.

https://code.google.com/p/webm/issues/detail?id=1089

Change-Id: Ia6dcc8922e1acbac0eeca23a4d564a355c489572
2015-10-26 11:29:46 -07:00
Jingning Han
01ba752a0d Make transform block partition scheme support use largest txfm setting
This commit properly resets the recursive transform block partition
array in the settings of using largest transform block size at frame
header level. It fixes one of the unit test failure related to the use
of frame level fixed transform block size with 440 color format.

Change-Id: I6750f323e2c2510c080ffc3af82ce2041f4f60b8
2015-10-26 11:13:36 -07:00
Debargha Mukherjee
65dd056e41 Merge "Optimize vpx_quantize_{b,b_32x32} assembler." 2015-10-26 18:04:49 +00:00
Alex Converse
e34c7e3f59 Merge "palette: Replace rand() call with custom LCG." 2015-10-26 17:05:00 +00:00
Alex Converse
171fd8999f palette: Replace rand() call with custom LCG.
The custom LCG is based on the POSIX recommend constants for a 16-bit
rand(). This implementation uses less computation than typical standard
library procedures which have been extended for 32-bit support, is
guaranteed to be reentrant, and identical everywhere.

Change-Id: I3140bbd566f44ab820d131c584a5d4ec6134c5a0
Ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/rand.html
2015-10-24 13:38:23 -07:00
Jingning Han
3ff3313502 Silence compiler warnings when high bit-depth is turned on
Clear the compiler warnings when both ext-tx and high bit-depth
are turned on.

Change-Id: I2e02f1f29043f2952fe215f8183b5bfd80e16f58
2015-10-23 14:51:16 -07:00
Jingning Han
79fe7246c1 Properly handle non-420 color format in recursive transform scheme
This commit makes the recursive transform block partitioning properly
handle the non-420 color format. It resolves an enc/dec mismatch
issue in that setting when var-tx experiment is turned on.

Change-Id: I48a91de02c11b3153f897d1cca0ae948eec15605
2015-10-23 14:42:01 -07:00
Debargha Mukherjee
f1c4b79d72 Build fix for ext-tx
Change-Id: Ifab43f85f6ae1be6b9f95521f79ba49055353b5f
2015-10-23 21:38:50 +00:00
Jingning Han
48c7de0fce Fix enc/dec mismatch in var-tx experiment
This commit fixes an enc/dec mismatch issue in recursive transform
partitioning experiment due to merge conflict.

Change-Id: I66146ef806c008902c91d54f4f8c7ccf47996b78
2015-10-23 13:58:38 -07:00
Jingning Han
caeb10bf06 Use explicit block position in foreach_transformed_block
Add the row and column index to the argument list of unit functions
called by foreach_transformed_block wrapper. This avoids the
repeated internal parsing according to the block index.

Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7
2015-10-23 09:19:17 -07:00
Yaowu Xu
ed8bddaac8 Merge "Merge branch 'masterbase' into nextgenv2" into nextgenv2 2015-10-23 01:32:19 +00:00
Yaowu Xu
37d17b6518 Merge branch 'masterbase' into nextgenv2
Conflicts:
	configure

Change-Id: I7f331981e19338451d16030f0ac1179db2e08c4d
2015-10-22 18:31:26 -07:00