pvq: add --enable-float-pvq option to configure

Multimedia / Daala - Tristan Matthews [videolan.org] - 25 March 2016 02:47 UTC

This will allow us to revert to earlier, pre-fixed point behaviour for debugging/comparison purposes.

When enabled, there is a slight change in metrics between this and the original PVQ float code (e.g. 0ed89290fc6627520187f0378831e7f14cc6719c) on some clips (see comment before od_pvq_compute_gain() invocation): ntt-short1: LOW (%) MEDIUM (%) HIGH (%) PSNR -0.024708 0.008433 0.001629 PSNRHVS -0.028322 0.005017 0.013243 SSIM -0.024769 -0.013816 -0.009093 FASTSSIM -0.048246 -0.064317 0.018761

but no change on subset1. The above metrics are with reverts of all other (non-PVQ) metrics changing patches since 0ed89, namely:

9fe5435 Fixes uninitialized curr_coding_order from f7499812617 f749981 Add closed-form frame determination code along with verification b3885ab Alter golden frame spacing calculation 685b54c Alter od_quantizer_to_codedquantizer to find closet match 5c0b0d0 Fix overflow when coding more than 536870912 bits. 91a60fd Fix some additional overflows in the 64x64 DCT.

Actual metrics change (with --enable-float-pvq) between the parent and this patch, i.e. the current fixed-point PVQ code and the restored float PVQ code: subset1: LOW (%) MEDIUM (%) HIGH (%) PSNR -0.015591 0.010948 0.001300 PSNRHVS 0.026496 0.048591 0.009870 SSIM -0.012691 0.023220 0.013913 FASTSSIM 0.104007 0.027649 -0.187406

ntt-short1: LOW (%) MEDIUM (%) HIGH (%) PSNR -0.006558 0.036382 -0.014382 PSNRHVS 0.062005 0.040058 -0.042301 SSIM 0.039120 -0.004784 -0.021224 FASTSSIM 0.057295 0.030152 0.130065

Finally, no change in metrics when disabled (the default).

8965b9d pvq: add --enable-float-pvq option to configure
configure.ac | 9 +++++
src/odintrin.h | 43 +++++++++++++++++----
src/pvq.c | 108 ++++++++++++++++++++++++++++++++---------------------
src/pvq.h | 53 ++++++++++++++++----------
src/pvq_decoder.c | 42 +++++++++++++--------
src/pvq_encoder.c | 85 +++++++++++++++++++++++++----------------
6 files changed, 221 insertions(+), 119 deletions(-)

Upstream: git.xiph.org


  • Share