If --enable-ext-partition is used at build time, the superblock size
(sometimes also referred to as coding unit (CU) size) is extended to
128x128 pixels.
Change-Id: Ie09cec6b7e8d765b7555ff5d80974aab60803f3a
If configured with --enable-ext-tile, the codec uses an alternative
tile coding syntax in the bitstream. Changes include::
- The maximum number of tile rows and columns is extended to 1024
each.
- The minimum tile width/height is 64 pixels (1 superblock).
- A tile copy mode is added where a tile directly reuse the coded
data of a previous tile
- The meaning of the tile-columns and tile-rows codec parameters are
overloaded to mean tile-width and tile-height in units of 64
pixels.
- All tiles should now be independent, including rows within the
same columns, so large scale parallel, or independent decoding is
possible.
- vpxdec also gained the options to decode only a particular tile,
tile row, or tile column.
Changes without --enable-ext-tile:
- All tiles should now be independent, including rows within the
same columns, so large scale parallel, or independent decoding is
possible.
- vpxenc default tile configuration changed to use 1 tile column.
Change-Id: I0cd08ad550967ac18622dae5e98ad23d581cb33e
This has been ported under ext_partition_types because it is due
to be combined with the coding_unit_size experiment which is
already being ported under ext_partition
Change-Id: I47af869ae123ddf0aa99160dac644059d14266ee
Merge the functions that generate prediction by above/left predictors
for the encoder and the decoder.
Change-Id: I57e53a8f2eb8d3028c4ed0c9abdcbf00503f95a0
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
This commit re-designs the probability model for the syntax elements
of the dynamic motion vector referencing system.
Change-Id: Icfb8203c7e8f64e10e99f5890e25e6f6b15fe5d1
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
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
Coding gain on screen_content is 12.2% (was 6.6%).
Some features such as frame-level color buffer, adaptive
entropy coding, are coming in future patches.
Change-Id: I2658cf5ec0cbb02cff685475759f3b68c9807697
This commit fixes an encoding issue related to var-tx and ref-mv
experiments that causes the codec to use random values for transform
block skip flag.
Change-Id: I8daa6d6b88ea45b5bbeb81b43dd0eeff545c8e5a
Includes various cosmetic changes and refactoring including
naming the sharp filters differently (since they are no longer
8-tap).
Change-Id: Ida5a19ca0daa9f6a64a6734394c685b2a4a2564a
The interintra experiment, which combines an inter prediction and an
inter prediction have been ported from the nextgen branch. The
experiment is merged into ext_inter, so there is no separate configure
option to enable it.
Change-Id: I0cc20cefd29e9b77ab7bbbb709abc11512320325
Instead of using model_rd_for_sb() to estimate the cost and make the
decision on bmc/obmc, we use super_block_yrd/uvrd() to calculate and
compare the real rd costs of bmc and obmc.
Average bit-rate reduction(%) of obmc experiment:
derflr/derfhd/hevcmr/hevchd
2.353/TBD/TBD/TBD
Before the optimization, the coding gain was:
1.582/1.109/1.600/1.164
Note: there is still some mysterious bug because that compared to
the previous version, the performance at low bit rate drops a lot.
Change-Id: I8dbee04a272190f10516a3953c1ae690f8136766
In this experiment, an obmc inter prediction mode is enabled for
>= 8X8 inter blocks. When the obmc flag is on, the regular block-
based motion compensation will be refined by using predictors of
the above and left blocks.
Fixed some compatibility issues with vp9_highbitdepth, supertx,
ref_mv, and ext_interp.
Coding gain (%) on derflr/hevcmr/hevchd
OBMC:
1.047/1.022/0.708
OBMC + SUPERTX:
1.652/1.616/1.137
SUPERTX:
0.862/0.779/0.630
Change-Id: I5d8d3c4729c6d3ccb03ec7034563107893103b7f
This commit aligns the rate-distortion metrics for both luma and
chroma components in super transform rate-distortion optimization.
It improves the coding gains due to var-tx and supertx experiments
by 0.2% for high resolution test sets.
Change-Id: Ib89d99e29cb5ee27b1f867e301954d4164d8b364
This commit aligns the rate-distortion metric for the recursive
transform block partitioning and the super transform. It resolves
the conflicts between these two experiments. The coding performance
gains of the combined experiments (var-tx + super-tx) has been
improved:
derf 0.89% -> 1.9%
hevcmr 1.06% -> 1.8%
stdhd 0.29% -> 1.4%
hevchr 0.80% -> 2.3%
Change-Id: I7e33994ad70c1b2751435620815f867d82172f41
This patch makes rd optimization use the same context for computing
the rate cost of coding the partitioning as the packer actually uses
when emitting it in write_modes_sb.
Change-Id: Idb1427bb2f9c37ab80c6aa182f7ff754ef0595cb
This commit enables entropy coding for dynamic reference motion
vector modes. The probability model is contexted on the ranking
categories of the reference motion vector candidates.
Change-Id: I09b58d98a409d63ec1a407331e29f8945b7ef17d