Difference between revisions of "DaalaTodo"

From XiphWiki
Jump to navigation Jump to search
 
(23 intermediate revisions by 6 users not shown)
Line 1: Line 1:
= Simple Things =
+
== Simple Things ==
 +
 
 
* Overflow checking for allocations in od_state_ref_imgs_init().
 
* Overflow checking for allocations in od_state_ref_imgs_init().
 +
* Implement [https://www.bugzilla.org/download/ Bugzilla] for Daala users to report bugs and enhancements.
 +
 +
== Tuning ==
  
= Tuning =
 
 
* Quantization matrix
 
* Quantization matrix
* Beta
+
** Rate-dependent QMs
* Inter band masking
+
* Beta (activity masking)
 
* PVQ RDO
 
* PVQ RDO
 
* Better MV cost estimates
 
* Better MV cost estimates
 
* Better MC distortion metrics (SATD, some MSE/SATD hybrid, no-ref-aware, maybe table driven Theora-style, etc.)
 
* Better MC distortion metrics (SATD, some MSE/SATD hybrid, no-ref-aware, maybe table driven Theora-style, etc.)
 
* Better MV split flag rate estimates
 
* Better MV split flag rate estimates
 +
* Does the 8-pixel MV offset influence quality in any way?
 +
* Tuning for new lapping
 +
** quantization matrices
 +
** lambda
 +
** Haar DC
 +
 +
== Known Broken/Suboptimal ==
  
= Known broken/suboptimal =
 
 
* Block size decision
 
* Block size decision
 
** Never tuned on inter
 
** Never tuned on inter
 
** Not considering chroma
 
** Not considering chroma
* Code quantizers on a log scale
 
* Re-order bitstream (e.g., don't code all MVs at the front, etc.)
 
 
* Investigate bias introduced by coefficient scaling
 
* Investigate bias introduced by coefficient scaling
 +
* Take into account scaling differences from lapping on variable block size
 +
** Including Haar DC
 +
* Finish "skip higher bands" flags
 +
* Re-train zig-zags (particularly on inter)
 +
* Implement RDO for "skip_rest" decisions.
 +
* Better RDO rates for gain/theta/noref
 +
* Don't code blocks that are outside the image
  
= New work =
+
== New Work ==
  
* VQ for inter frames, with codebook selected based on dim m
 
 
* Motion vector "mask" based on previous frame
 
* Motion vector "mask" based on previous frame
 
* Use coeff magnitude correlation for modelling
 
* Use coeff magnitude correlation for modelling
Line 27: Line 40:
 
* Variable Framerate support
 
* Variable Framerate support
 
* Dynamic frame size changes (without keyframes)
 
* Dynamic frame size changes (without keyframes)
 +
* Land paint-based deringing
 
* SPIHT as k-tokenizer
 
* SPIHT as k-tokenizer
 +
* MV prediction clustering
 +
* Special case for K=2
 +
* Train Laplace tables
  
= Entropy coding =
+
== Entropy Coding ==
  
 
* Make the Laplace vector encoder (aka k-tokenizer) faster
 
* Make the Laplace vector encoder (aka k-tokenizer) faster
Line 36: Line 53:
 
* Add SIMD to the decoder search
 
* Add SIMD to the decoder search
  
= Visualization =
+
== Minor things ==
 +
 
 +
* Code quantizers on a log scale
 +
 
 +
== Visualization ==
  
 
* Add ability to display decoder side information to player_example
 
* Add ability to display decoder side information to player_example
Line 45: Line 66:
 
** Motion vectors
 
** Motion vectors
 
** Display prediction residual
 
** Display prediction residual
** Show only one plane (Y, Cb, Cr)
+
 
 +
== Bit-stream work (no expected quality improvement) ==
 +
 
 +
* Need a bugzilla instance for issue tracking
 +
* Re-order bitstream (e.g., don't code all MVs at the front, etc.)
 +
 
 +
== AreWeCompressedYet ==
 +
Wiki page: [[AreWeCompressedYet]]
 +
 
 +
Website: https://arewecompressedyet.com
 +
 
 +
Bug tracker: https://github.com/tdaede/awcy/issues
 +
 
 +
* Huge batch run of all versions of Daala
 +
* Look at rd_tool options and improve
 +
* Add realtime constraint options for x265
 +
 
 +
[[Category:Daala]]

Latest revision as of 13:06, 18 February 2015

Simple Things

  • Overflow checking for allocations in od_state_ref_imgs_init().
  • Implement Bugzilla for Daala users to report bugs and enhancements.

Tuning

  • Quantization matrix
    • Rate-dependent QMs
  • Beta (activity masking)
  • PVQ RDO
  • Better MV cost estimates
  • Better MC distortion metrics (SATD, some MSE/SATD hybrid, no-ref-aware, maybe table driven Theora-style, etc.)
  • Better MV split flag rate estimates
  • Does the 8-pixel MV offset influence quality in any way?
  • Tuning for new lapping
    • quantization matrices
    • lambda
    • Haar DC

Known Broken/Suboptimal

  • Block size decision
    • Never tuned on inter
    • Not considering chroma
  • Investigate bias introduced by coefficient scaling
  • Take into account scaling differences from lapping on variable block size
    • Including Haar DC
  • Finish "skip higher bands" flags
  • Re-train zig-zags (particularly on inter)
  • Implement RDO for "skip_rest" decisions.
  • Better RDO rates for gain/theta/noref
  • Don't code blocks that are outside the image

New Work

  • Motion vector "mask" based on previous frame
  • Use coeff magnitude correlation for modelling
  • Per SB/MB/block/something quantizer changes
  • Variable Framerate support
  • Dynamic frame size changes (without keyframes)
  • Land paint-based deringing
  • SPIHT as k-tokenizer
  • MV prediction clustering
  • Special case for K=2
  • Train Laplace tables

Entropy Coding

  • Make the Laplace vector encoder (aka k-tokenizer) faster
  • Add "skip-all remaining bands" flag
  • Better encoding of the CfL sign
  • Add SIMD to the decoder search

Minor things

  • Code quantizers on a log scale

Visualization

  • Add ability to display decoder side information to player_example
    • Block size split decision
    • Cost in bits per block (use log scale)
    • No-ref and skip flags
    • Mode information (if we signal intra)
    • Motion vectors
    • Display prediction residual

Bit-stream work (no expected quality improvement)

  • Need a bugzilla instance for issue tracking
  • Re-order bitstream (e.g., don't code all MVs at the front, etc.)

AreWeCompressedYet

Wiki page: AreWeCompressedYet

Website: https://arewecompressedyet.com

Bug tracker: https://github.com/tdaede/awcy/issues

  • Huge batch run of all versions of Daala
  • Look at rd_tool options and improve
  • Add realtime constraint options for x265