While investigating ticket #2970, I noticed several things about these
tables. Patch #1 is kind of preparatory for #2.

Patch #3 uses mathematically more correct values, which happens to match
another dv implementation (cedocida). It does not seem to affect that
much the decoded output, as there is PSNR variations on the 3rd decimal
at most. The best I got was, using a resized version of lena.ppm, a PSNR
going from 49.35dB to 49.36dB. It would be ok not to integrate it, as
one may argue they were devised with the simple_idct implementation in
mind (I haven't checked).

Patch #4 fixes the actual issue. As I don't want to bother determining
how the table was incorrectly mangled, I've preferred regenerating it.

Patch #5 is somewhat futile, but it's free lunch.

Patch #6 uses the fact that the encoder has its own weight tables, not
shareable, and thus all inverse weight table init code is moved to the
decoder.

Christophe Gisquet (6):
  dv: better split weight tables assignment
  dv: use smaller type for weight tables
  dv: more precise weight table for 8x8
  dv: fix weight table for 2x4x8 transform
  dv: increase reading bits to 10
  dv: move inverse weight tables to decoder

 libavcodec/dv.c                 |  34 ------------
 libavcodec/dv.h                 |   3 +-
 libavcodec/dvdata.c             |  65 -----------------------
 libavcodec/dvdata.h             |   7 ---
 libavcodec/dvdec.c              | 112 ++++++++++++++++++++++++++++++++++++++++
 tests/ref/lavf/dv_fmt           |   6 +--
 tests/ref/vsynth/vsynth1-dv     |   2 +-
 tests/ref/vsynth/vsynth1-dv-411 |   4 +-
 tests/ref/vsynth/vsynth1-dv-50  |   2 +-
 tests/ref/vsynth/vsynth2-dv     |   4 +-
 tests/ref/vsynth/vsynth2-dv-411 |   2 +-
 tests/ref/vsynth/vsynth2-dv-50  |   2 +-
 12 files changed, 125 insertions(+), 118 deletions(-)

-- 
1.9.2.msysgit.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to