In preparation for enabling backward updates of contexts for PVQ.
1. Default prob setting for PVQ,
which is based on flat probabilities at the moment.
2. At the end of encoding a frame, average probablities and expected values
of PVQ are copied to the frame context.
Change-Id: I1d087b98e6b0d55ebf8aef696dd986f88197cedf
Do multisymbol coding for transform type.
Load default cdf probabilities directly.
Use CDF frame update mechanism when EC_ADAPT is
enabled.
Change-Id: Id23c927e81587b560e9df8b9bc56c0e2e3bb6f03
This will make it easier to add native CDFs for all the
dependent experiments without excessive macros.
Change-Id: Iee4710f0fe1c1b4300f686cdf2c5b879a36de987
This commit produces a bit-exact bitstream because prior calls to code
the tx_size using aom_write_tree() would automatically convert the
aom_tree_index on the fly to a CDF.
The tx_size_cdf[]'s are now computed once per frame.
Based on recent tests, this patch reduces decode time by 4%.
Change-Id: I920dbf036b8a9574ea6e65ae5f9c43eef1c3f864
The new_tokenset experiment replaces the unconstrained tokenset with a
multisymbol alphabet in an inventive way.
Tested configurations:
new_tokenset + ec_adapt, new_tokenset, ec_multisymbol
Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
Preparation for merging EOB_TOKEN. The block_zero value
corresponds to the first EOB_TOKEN: other EOB_TOKEN values will
be merged with non-zero values.
Change-Id: I94036783ee240fa916a79c544ecd716a9c24fa59
These are optimized for EOB_TOKEN being associated
with the current position, not the previous.
CBP tables cover EOB_TOKEN for the the whole block.
This change causes a performance regression until
EOB_TOKEN is merged into the coding scheme.
Change-Id: Ica3a12ed97285cbae204ce3cc1a7e658ebcacc9f
Zero, one, and two or more coded as one symbol (head).
Remaining tokens coded as a tail symbol.
The pareto CDF distribution is adjusted to cover tokens from
two onwards.
Change-Id: I98b33fab6b9f52690f6ad618ac55e725a97be056
- Added comments for some tables and #defines for clarity.
- Renamed some variables to ensure we use "color_index" instead of
"color" for palette color index related variables.
Change-Id: Ica95a26e0f171a41a3259c8e6b3b891b8cd10151
This reduces the complexity in a number of ways:
- We need just 3 neighbors instead of 4.
- Possible contexts reduce from 16 to 5.
- On hardware side, getting the contexts for a whole block will be more
parallelizable.
At the same time, compression performance improves very slightly:
- Screen-content set (videos) (Google): BDRate improved by 0.32
- screenshots set (images) (AWCY): PSNR improved by 0.62:
https://arewecompressedyet.com/?job=palette_withTR2%402017-01-27T21%3A30%3A28.890Z&job=palette_noTR2%402017-01-27T21%3A41%3A34.312Z
Change-Id: Ie84ca32f05d55ad481a51c2d3abc579468597189
If part of a block falls outside right and/or bottom image boundary,
then only store tokens for the part of it within the boundary.
Also, consider only the part of the block within the boundary when
calculating the number of colors in the image, deciding the base
colors for palette, RD calculation etc.
The part of color map corresponding to pixels outside the image
boundary is padded with color indices copied from same row/column.
This behavior is similar to how pixels outside the boundary are padded.
For screen_content set, this is improves compression performance by
0.038 overall. One clip, in particular, has a significant gain of 0.8.
Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
This commit enables the adaptive scan order system support
rectangular trnasform block sizes. It resolves the coding failure
when rect-tx or var-tx are enabled.
BUG=aomedia:143
Change-Id: Ic565284e811e3f7e0ebf2e08fb3748257ce8a049
This commit adds 2x2 transform block scan order to make the
adaptive scan order support cb4x4 mode.
BUG=aomedia:135
Change-Id: Ic8c3ae9ed65d577df629524b617b386b5e799d4c
intra-interp experiment allows intra prediction to use different
interpolation filters. It was part of the ext-intra in the nextgenv2
branch.
Change-Id: I27ab692494dc79bb92e457dbf9a72988577f1c6d
This filter is meant to replace the bilateral filter,
but is currently added in addition to the bilateral filter
for testing.
Change-Id: Ia529701e69833d47c11b3367d5bf804eb8498079
Performance gain (REF_MV on by default)
WARPED_MOTION: 1.061%
WARPED_MOTION+MOTION_VAR: 2.917%
MOTION_VAR: 2.337%
Change-Id: I43f742a02cdd43d13ef333a0a15087062ad020ab
The recursive transform block partitioning system naturally supports
the use of rectangular transform block size. Hence there is no need
to make a separate coding route for the rectangular transform block
size support there.
Change-Id: I709b61f94cd4a6ea3f33c05abe319488c7d24f5a
This is currently just a refactor and creates no change in performance.
It allows new compound types to be added easily in the future to
facilitate experiments with segmentation masks.
Change-Id: If48fed216d482454fabb45a304b4220ada0dbdee
After https://aomedia-review.googlesource.com/#/c/5589/ ,
the Global_Motion_Params and GLOBAL_MOTION_TYPE types
are redundant, and can be removed in favour of
WarpedMotionParams and TransformationType respectively.
Change-Id: I33f3796e5c469e595fd012ccdb65a672dd1bb86c
The switch to using daala_ec by default broke the compile
when used with ext-tx, as some code which should have been
inside #if !CONFIG_EXT_TX was not inside such a block.
Change-Id: I4cec9755bd4e6134a7d3036c4482f952a815cafc
The new ec_multisymbol experiment supersedes the rans experiment and is
used for multisymbol features that can be backed by either daala_ec or
rans.
This experiment is automatically enabled by ec_adapt and will try to
enable daala_ec or ans (in that order).
Change-Id: Ie75b4002b7a9d7f5f7b4d130c1aacb3dbe97e54f
Move computing the inter_mode_cdf tables per coded inter mode symbol to
computing them only when the probabilities are updated.
Change-Id: I7a7b059ee75723cb6f278ed82a20cf34c27915d8
Move computing the uv_mode_cdf tables per coded intra mode symbol to
computing them only when the probabilities are updated.
Change-Id: I627b59d30726c913f5d7ba7753cb0446a12655bb