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