Skip to content
  • Yushin Cho's avatar
    New experiment: Perceptual Vector Quantization from Daala · 77bba8d3
    Yushin Cho authored
    PVQ replaces the scalar quantizer and coefficient coding with a new
    design originally developed in Daala. It currently depends on the
    Daala entropy coder although it could be adapted to work with another
    entropy coder if needed:
    ./configure --enable-experimental --enable-daala_ec --enable-pvq
    
    The version of PVQ in this commit is adapted from the following
    revision of Daala:
    https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8
    
    More information about PVQ:
    - https://people.xiph.org/~jm/daala/pvq_demo/
    - https://jmvalin.ca/papers/spie_pvq.pdf
    
    The following files are copied as-is from Daala with minimal
    adaptations, therefore we disable clang-format on those files
    to make it easier to synchronize the AV1 and Daala codebases in the future:
     av1/common/generic_code.c
     av1/common/generic_code.h
     av1/common/laplace_tables.c
     av1/common/partition.c
     av1/common/partition.h
     av1/common/pvq.c
     av1/common/pvq.h
     av1/common/state.c
     av1/common/state.h
     av1/common/zigzag.h
     av1/common/zigzag16.c
     av1/common/zigzag32.c
     av1/common/zigzag4.c
     av1/common/zigzag64.c
     av1/common/zigzag8.c
     av1/decoder/decint.h
     av1/decoder/generic_decoder.c
     av1/decoder/laplace_decoder.c
     av1/decoder/pvq_decoder.c
     av1/decoder/pvq_decoder.h
     av1/encoder/daala_compat_enc.c
     av1/encoder/encint.h
     av1/encoder/generic_encoder.c
     av1/encoder/laplace_encoder.c
     av1/encoder/pvq_encoder.c
     av1/encoder/pvq_encoder.h
    
    Known issues:
    - Lossless mode is not supported, '--lossless=1' will give the same result as
    '--end-usage=q --cq-level=1'.
    - High bit depth is not supported by PVQ.
    
    Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
    77bba8d3