• Thomas's avatar
    Add EC_ADAPT experiment for symbol-adaptive entropy coding. · b0112dfd
    Thomas authored
    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
    ./configure --enable-experimental --enable-ans --enable-rans \
    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