Skip to content
  • Thomas's avatar
    Add EC_ADAPT experiment for symbol-adaptive entropy coding. · 9ac5508f
    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
    
    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
    9ac5508f