Merge the functions that generate prediction by above/left predictors
for the encoder and the decoder.
Change-Id: I57e53a8f2eb8d3028c4ed0c9abdcbf00503f95a0
Decompose choose_tx_size_from_rd into three functions that determine
the transform coding rd at different stages. Besides the original
function, txfm_yrd() calculates the rd for fixed size and type.
choose_tx_size_fix_type() fixes the type and searches for the size.
It can enable other experiments to do restricted tx searches so as to
reduce the impact on speed.
Similar refactoring is done for select_tx_type_yrd() in VAR_TX.
Performance change in baseline is trivial:
0.014/0.001/-0.020 for lowres/midres/hdres.
Change-Id: I2ecbf6066329be088ec1bfb69013b657b14b8afe
This allows sharing more code paths with the rest of the code an allows
for easier compatibility with the other experiments.
Change-Id: Id288b533805a4d0657ec2f17542f2e6ad23ebdb4
Makes a set of 16 transforms total, adding all 1D
combinations of ADST and FlipADST, and removng all DST
transforms.
lowres, midres both improve by about 0.1% and hdres by
-0.378% in BDRATE but with fewer transforms that are also
simpler.
Further experiments to continue later.
Change-Id: I7348a4c0e12078fdea5ae3a2d36a89a319ffcc6e
Rework the interface to allow codec store the reference motion
vector list information for coding process.
Change-Id: I47e26587f6c0808655e4626f316ec7614a7ad8ed
This commit re-designs the probability model for the syntax elements
of the dynamic motion vector referencing system.
Change-Id: Icfb8203c7e8f64e10e99f5890e25e6f6b15fe5d1
This buffered ANS coder supports coding the symbols in forward (decode)
order. Rather than windowing or growing the buffer, right now this
coder merely asserts that the buffer will never overflow.
This approach should allow ANS to be used as a drop in replacement for
other entropy coders rather than requiring complicated reversal logic
throughout the codebase.
Change-Id: I6689271233d0e22fea94c51950415dad5af96598
This commit enables the dynamic motion vector predictor for NEWMV
mode. It allows the codec to select the best motion vector predictor
in a rate-distortion optimization framework for motion vector
residual coding. The compression performance is improved:
lowres 0.14%
midres 0.27%
hdres 0.24%
Change-Id: I6a601c74eb6cb0b71a613336d40363359f2edecd
Eearly termination if U plane RD cost is large enough.
No notable compression performance changes.
Change-Id: Ieeefc5859cb55d94391b502b4bd840bc8bcb2578
This is a cosmetic patch that removes a great deal of conditional
compilation around CONFIG_VAR_TX from the partition search function.
Change-Id: I9dcef9d4fe6847b793c77bdf565a5cacbdfacd59
This patch added two features to improve entropy coding efficiency
for coefficient tokens.
1. Choose 1 of 4 default probability tables based on q-index for
key-frames.
It is ported from nextgen branch:
https://chromium-review.googlesource.com/#/c/280586/
2. Do backward update after each superblock (64X64) row using
subframe token counts.
Coding gain: 0.1% on lowres; 0.42% on midres; 0.36% on hdres.
Much larger gain for key-frames: 2.6%, 2.3%, 1.7%.
Design doc: go/huisu-entropy
Change-Id: Ia3b6a615636be09247d70e4c520405637561532b
This commit fixes the computation of rate_nocoef for situation when
rate_y is uninitialized at INT_MAX for x->skip is true.
Change-Id: If3dde4e4ee16667f4408067d3bb3084f916272f1