aom/aom_dsp
Thomas 9ac5508f32 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
2016-10-29 16:57:48 -07:00
..
arm Add compiler warning flag -Wextra and fix related warnings. 2016-10-20 15:49:16 -07:00
mips Fix warnings reported by -Wshadow: Part1: aom_dsp directory 2016-10-18 17:22:12 -07:00
simd Add support for v256 intrinsics 2016-10-21 08:55:37 -07:00
x86 Fix aom_fdct8x8_ssse3 in high bit depth mode 2016-10-28 10:13:43 +01:00
add_noise.c Port renaming changes from AOMedia 2016-08-31 18:19:03 -07:00
ans.c Use remove some magic numbers in aom_rans_merge_prob8_pdf. 2016-10-24 09:05:03 -07:00
ans.h Switch rANS to 15 bit precision, and adjust L_BASE. 2016-10-14 14:05:50 -07:00
ansreader.h Fix compile error with --enable-ans + --enable-accounting 2016-10-25 16:22:24 +01:00
answriter.h Use divide by multiply in the ans writer. 2016-10-21 09:54:41 -07:00
aom_convolve.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
aom_convolve.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
aom_dsp.mk Fix aom_fdct32x32_avx2 output as CONFIG_AOM_HIGHBITDEPTH=1 2016-10-25 14:33:21 -07:00
aom_dsp_common.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
aom_dsp_rtcd.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
aom_dsp_rtcd_defs.pl Fix aom_fdct8x8_ssse3 in high bit depth mode 2016-10-28 10:13:43 +01:00
aom_filter.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
aom_simd.c Make generic SIMD code compile if no native support 2016-10-11 12:36:16 -07:00
aom_simd.h Add support for v256 intrinsics 2016-10-21 08:55:37 -07:00
aom_simd_inline.h Define SIMD_INLINE using AOM_FORCE_INLINE 2016-10-19 15:14:27 -07:00
avg.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
bitreader.h Add EC_ADAPT experiment for symbol-adaptive entropy coding. 2016-10-29 16:57:48 -07:00
bitreader_buffer.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
bitreader_buffer.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
bitwriter.h Add EC_ADAPT experiment for symbol-adaptive entropy coding. 2016-10-29 16:57:48 -07:00
bitwriter_buffer.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
bitwriter_buffer.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
blend.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
blend_a64_hmask.c Fix a compiler warning of unused variable 2016-09-06 14:52:49 +00:00
blend_a64_mask.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
blend_a64_vmask.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
buf_ans.c Port ANS from aom/master 25aaf40 2016-09-28 12:07:00 -07:00
buf_ans.h Port aom_reader_tell() support 2016-10-18 08:50:05 -07:00
daalaboolreader.c Change return type of tell and tell_frac to uint32_t. 2016-10-19 10:53:52 -07:00
daalaboolreader.h Change return type of tell and tell_frac to uint32_t. 2016-10-19 10:53:52 -07:00
daalaboolwriter.c Free memory allocated by daala_ec encoder. 2016-10-19 15:14:27 -07:00
daalaboolwriter.h Create aom_cdf_prob type for 16-bit probabilities. 2016-10-17 20:22:48 -07:00
deblock.c Change to use AOM copyright notice 2016-09-02 19:52:03 +00:00
dkboolreader.c Bit accounting. 2016-10-19 04:34:29 +00:00
dkboolreader.h Change return type of tell and tell_frac to uint32_t. 2016-10-19 10:53:52 -07:00
dkboolwriter.c dkboolwriter.c: change copyright notice 2016-10-25 10:32:33 -07:00
dkboolwriter.h Refactor bitreader and bitwriter wrapper. 2016-09-28 12:07:00 -07:00
entcode.c Revert code formatting of OD_UNIFORM_CDFS_Q15. 2016-10-17 12:16:26 -07:00
entcode.h Add Daala entropy coder. 2016-10-14 14:59:27 -07:00
entdec.c Decoder performance improvement with daala_ec. 2016-10-21 12:38:30 -07:00
entdec.h Remove stale OD_ACCOUNTING code. 2016-10-18 09:12:06 -07:00
entenc.c Fix warning when discarding const qualifier. 2016-10-17 12:16:27 -07:00
entenc.h Fix warning when discarding const qualifier. 2016-10-17 12:16:27 -07:00
fastssim.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
fwd_txfm.c Fix warnings reported by -Wshadow: Part1: aom_dsp directory 2016-10-18 17:22:12 -07:00
fwd_txfm.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
intrapred.c Decoder performance improvement with daala_ec. 2016-10-21 12:38:30 -07:00
inv_txfm.c Namespace the idct/iad symbols 2016-10-27 12:36:37 -07:00
inv_txfm.h Namespace the idct/iad symbols 2016-10-27 12:36:37 -07:00
loopfilter.c Change to use AOM copyright notice 2016-09-02 19:52:03 +00:00
postproc.h Port renaming changes from AOMedia 2016-08-31 18:19:03 -07:00
prob.c rans: Use symbol coding for motion vectors 2016-10-27 12:38:43 -07:00
prob.h Add EC_ADAPT experiment for symbol-adaptive entropy coding. 2016-10-29 16:57:48 -07:00
psnr.c apply clang-format after 5cd2ab9 2016-09-19 15:56:08 -07:00
psnr.h apply clang-format after 5cd2ab9 2016-09-19 15:56:08 -07:00
psnrhvs.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
quantize.c quantize.c: int->uint32_t for absolute values 2016-09-06 14:51:47 +00:00
quantize.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
sad.c Renamings for OBMC experiment 2016-10-13 15:51:22 -07:00
ssim.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
ssim.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
subtract.c Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
sum_squares.c Port renaming changes from AOMedia 2016-08-31 18:19:03 -07:00
txfm_common.h Change to use aom copyright notice 2016-09-02 08:22:07 -07:00
variance.c Resolve -Wshorten-64-to-32 in variance. 2016-10-13 20:12:20 -07:00
variance.h Renamings for OBMC experiment 2016-10-13 15:51:22 -07:00