Simplify coding power-of-two distributions

Multimedia / Daala - Timothy B. Terriberry [xiph.org] - 4 April 2016 08:27 UTC

When encoding a probability distribution whose frequency counts sum to a power of two, we can use a more traditional partition function without requiring any divisions (though we do require some 16x16->32 multiplies). This should have substantially lower overhead in these cases. This does break compatibility between the Q15 and non-Q15 versions of these functions, but we do not actually require this for anything (all of the Q15 and dyadic functions remain compatible with each other and all of the non-dyadic functions remain compatible with each other).

Results on ntt-short-1: RATE (%) DSNR (dB) PSNR -0.04686 0.00140 PSNRHVS -0.04323 0.00204 SSIM -0.06528 0.00148 FASTSSIM -0.03908 0.00105

Results on subset1: RATE (%) DSNR (dB) PSNR -0.59113 0.02429 PSNRHVS -0.16622 0.01116 SSIM -0.59816 0.02052 FASTSSIM -0.46032 0.01470

Extra ntt-short-1 results requested by jmspeex:

LOW (%) MEDIUM (%) HIGH (%) PSNR -0.104396 0.033221 -0.007531 PSNRHVS -0.101554 0.007621 -0.024936 SSIM -0.147774 -0.016904 0.019413 FASTSSIM -0.072774 -0.148200 -0.035158

Extra subset1 results requested by jmspeex: LOW (%) MEDIUM (%) HIGH (%) PSNR NaN 0.192461 -0.419350 PSNRHVS NaN 0.195388 -0.241006 SSIM NaN -0.016675 -0.433450 FASTSSIM NaN -0.018038 -0.337764

39debe0 Simplify coding power-of-two distributions.
src/entdec.c | 140 +++++++++++++++-------------------------------------
src/entenc.c | 54 +++++++++-----------
src/tests/ectest.c | 30 +++++------
3 files changed, 79 insertions(+), 145 deletions(-)

Upstream: git.xiph.org


  • Share