This experiment performs symbol-by-symbol statistics
adaptation for non-binary symbols. It requires DAALA_EC or
RANS and ANS to be enabled. The adaptation is currently
based on a simple recursive filter and is taken from
Daala. It has an adaptation rate dependent on alphabet size,
taken from Daala. It applies wherever non-binary symbols
are encoded using Cumulative Probability Functions rather
than trees.
Where symbols are adapted, forward updates in the compressed
header are removed.
In the case of RANS coefficient token values are adapted,
with the exception of the zero token which remains a
binary symbol. In the case of DAALA_EC other values
such as inter and intra modes are adapted as CDFs are
provided in those cases.
The experiment is configured with:
./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
or
./configure --enable-experimental --enable-ans --enable-rans \
--enable-ec-adapt
EC_ADAPT is not currently compatible with tiles.
BDR results on Objective-1-fast give a small loss:
PSNR YCbCr: 0.51% 0.49% 0.48%
PSNRHVS: 0.50%
SSIM: 0.50%
MSSSIM: 0.51%
CIEDE2000: 0.50%
Change-Id: I3888718e42616f3fd87144de7f125228446ac984
Making this change in case the future implementation changes and the
compairson is no longer between single bits.
Change-Id: I94f474ce7d82febfa23cec65cbe1b9d240b42e02
This ensures TGs can be decoded even if the whole
frame has not been received and the frame length
is not known.
Change-Id: If24837fcc3b5c46554751be792e91100de73e8d6
This is a manual adaptation of the following commit from aom/master:
ce12003d60
The original commit message:
A tile group is a set of tiles in scan order.
Each tile group has a version of uncompressed and compressed headers,
identical apart from tile group parameters.
Encoding probability updates takes account of the number of
headers to control overheads.
The decoder supports arbitrary numbers of tile groups with
arbitrary number of tiles. The number of tiles in a TG is
signalled in the uncompressed header for that TG.
The encoder currently only supports a fixed number
of TGs (3, when error resilient mode is on) of equal size
(except possibly for the last one).
The average BDR performnce with 3 tile groups versus
anchor with error resilient mode and up to 16 tiles is:
NR YCbCr: 3.02% 3.04% 3.05%
PSNRHVS: 3.09%
SSIM: 3.06%
MSSSIM: 3.05%
CIEDE2000: 3.04%
Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
For clarity, use separate variables for 'color_ctx_hash' and
'color_ctx' instead of reusing same variables for both.
BUG=webm:1324
Change-Id: I3a516ea54353e1f0737822c613a68da252e30c6e
Use unified transform block size and coding block size map. This
prepares for the integration of 2x2 transform block size and the
rectangular transform block size.
Change-Id: I99f51017d19aef337639b708ee9c7faedcc20935
Unify coefficient context used by different experiments. Make
block size and transform block size consistent with rest codebase.
Change-Id: I237336f161d6c473b88c59c48ee68d24b75ce738
Use the transform block partition depth counts to decide if to
reset the tx_mode at frame header level. Add a comment to make this
explicit.
Change-Id: I417920b4b61eeb91cde9536336a12deea2d42f79
Previously, when ext-partition-types and either clpf or dering were
enabled, the signalling for clpf/dering would not be encoded or decoded,
as the code to do so was inside a #if !CONFIG_EXT_PARTITION_TYPES block.
This caused many tests (eg, AV1/EndToEndTestLarge.EndToEndPSNRTest/0)
to fail with encode/decode mismatches.
Change-Id: If1742deb1812877813b2c3e93a048430f9a504ba