1015 Commits

Author SHA1 Message Date
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
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
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
Alex Converse
27d3905cae Merge "Cleanup dist_block()" into nextgenv2 2016-06-22 00:16:10 +00: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
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
Debargha Mukherjee
7f929d292d Merge "Always respect tile bounds in calc_target_weighted_pred." into nextgenv2 2016-06-21 18:33:40 +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
Jingning Han
5223a4b405 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
2016-06-20 16:59:28 -07:00
Yue Chen
474ea305ea Merge "Fix RDO issue of obmc + speed feature fast_inter_tx_type_search" into nextgenv2 2016-06-20 21:57:24 +00:00
Jingning Han
a5bcf03030 Merge "Use precise rate estimate for zero_token" into nextgenv2 2016-06-20 16:47:33 +00:00
Jingning Han
899a989d3a Merge "Optimize the use case of token_cost table" into nextgenv2 2016-06-20 16:47:20 +00:00
Yue Chen
1273c39c03 Fix RDO issue of obmc + speed feature fast_inter_tx_type_search
Change-Id: I86a967ad2d824ca7877626eed9eb11f0e057b22d
2016-06-20 16:38:12 +00:00
Jingning Han
86b7d39a83 Merge "Fix unit test failure in obmc exp" into nextgenv2 2016-06-18 22:38:53 +00:00
Jingning Han
887f020691 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
2016-06-17 17:44:03 -07:00
Yue Chen
0c73623d2c Merge "Make variance based partitioning compatible with SEG_LVL_SKIP" into nextgenv2 2016-06-18 00:19:42 +00:00
Jingning Han
8293759056 Merge "Skip restore token_cache value" into nextgenv2 2016-06-17 21:59:53 +00:00
Zoe Liu
5805a14ca6 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
2016-06-17 12:43:39 -07:00
Geza Lore
169431b84a 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
2016-06-17 20:31:05 +01:00
Jingning Han
019b750867 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
2016-06-17 10:57:30 -07:00
Jingning Han
90ea281f29 Optimize the use case of token_cost table
Reduce the cache footprint of the token_costs table.

Change-Id: Ie989e60c6479ac3251cadaac9c7e795ccba52f4e
2016-06-17 10:15:34 -07:00
Jingning Han
019dbb4cdc Merge "Rework table access operations in vp10_optimize_b function" into nextgenv2 2016-06-17 00:25:50 +00:00
Alex Converse
cf7968dcea Cleanup dist_block()
Change-Id: Iff0c0548924efd5a01c3a301cc5b4cdfda42e87e
2016-06-16 15:27:22 -07:00
Jingning Han
c187429865 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
2016-06-16 15:18:46 -07:00
Jingning Han
37bf29b916 Rework table access operations in vp10_optimize_b function
Localize table access. This provides another 10% speed-up to
the unit.

Change-Id: Ib902121f412f78e2bd501b9799c8c64462f803b5
2016-06-16 14:33:16 -07:00
Geza Lore
7f6518a4b7 Make supertx skip bits observe segment level coding.
Change-Id: Id918d502c8f89e236bcb51949d7ad34efa017321
2016-06-16 17:41:46 +01:00
Geza Lore
984cc04a22 Change supertx syntax order.
Move the supertx skip bit and transform type past the recursive
prediction blocks. This is in preparation for using the segment level
skip feature for supertx blocks.

Change-Id: I8319414b0734144a9264e8a4a60940b6716b12a8
2016-06-16 17:41:39 +01:00
Geza Lore
8192010e32 Plug leak of variance tree.
The speed features can change per frame, so remove condition on
releasing the variance tree.

Change-Id: I651c87a1504266d737e6d98f14fd3ed30d84e01d
2016-06-16 13:21:03 +01:00
Jingning Han
d10161eafc Merge "Refactor trellis optimization process" into nextgenv2 2016-06-15 19:16:30 +00:00
Debargha Mukherjee
00b6ad1ebf Merge "Disable loop restoration when LPF_PICK_MINIMAL_LPF." into nextgenv2 2016-06-15 16:50:55 +00:00
Debargha Mukherjee
00f1580a14 Merge "Remove magic number from traversal (CYCLIC_REFRESH_AQ)." into nextgenv2 2016-06-15 16:50:15 +00:00
Debargha Mukherjee
e20a29d3b0 Merge "Select segment based loopfilter strength for supertx blocks." into nextgenv2 2016-06-15 16:49:34 +00:00
Debargha Mukherjee
343fe016ae Merge "Remove now superfluous argument from predict_b_extend." into nextgenv2 2016-06-15 16:48:13 +00:00
Debargha Mukherjee
52c71f749d Merge "Rework supertx segment handling and adaptive quantization." into nextgenv2 2016-06-15 16:47:58 +00:00
Debargha Mukherjee
3b84c803d8 Merge "Re-initialise quantiser after changing segment." into nextgenv2 2016-06-15 16:45:57 +00:00
Debargha Mukherjee
1b735da7d5 Merge "Refactor variance aq." into nextgenv2 2016-06-15 16:45:21 +00:00
Debargha Mukherjee
46f048e397 Merge "Pass segment id explicitly to quantizer init." into nextgenv2 2016-06-15 16:44:37 +00:00
Debargha Mukherjee
095c88e470 Merge "Fix estimate_wedge_sign with high bit-depth." into nextgenv2 2016-06-15 16:43:51 +00:00
Jingning Han
c457fc3553 Merge "Rework transform quantization pipeline" into nextgenv2 2016-06-15 16:07:10 +00:00
Jingning Han
08bf788ebd Merge "Refactor the trellis optimization process" into nextgenv2 2016-06-15 16:07:03 +00:00
Jingning Han
e9c44a76a2 Refactor trellis optimization process
This commit refactors the trellis coefficient optimization process.
It saves multiplications used to generate the final dequantized
coefficients. It also removes two memset operations on quantized
and dequantized coefficient sets.

The trellis coefficient optimization is on average running over
10% faster.

Change-Id: If3aa26d2a706c3012bf2b7ac059bf1825250e81f
2016-06-15 09:06:13 -07:00
Geza Lore
d3df694fa8 Fix estimate_wedge_sign with high bit-depth.
This fixes some crashes in
VP10/EndToEndTestLarge.EndtoEndPSNRTest/ with high bit-depth and
ext-inter.

Change-Id: I10f0f08e1be4bd5c388616074d4aa3f91a2fda7a
2016-06-15 10:52:29 +01:00
Hui Su
1f493d1ff8 Merge "Speed up ext-intra inter frame encoding" into nextgenv2 2016-06-15 02:46:06 +00:00