Commit b0112dfd authored by Committed by Thomas DaviesBrowse files
Add EC_ADAPT experiment for symbol-adaptive entropy coding.
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