Peter Ross: > Fixes ticket #128. > > The SVQ1 interframe mean VLC symbols -128 and 128 are incorrectly swapped > in our SVQ1 implementation, resulting in visible artifacts for some videos. > This patch unswaps the order of these two symbols. > > The most noticable example of the artiacts caused by this error can be > observed in > https://trac.ffmpeg.org/attachment/ticket/128/svq1_set.7z '352_288_k_50.mov'. > The artifacts are not observed when using the reference decoder > (QuickTime 7.7.9 x86 binary). > > As a result of this patch, the reference data for the fate-svq1 test > ($SAMPLES/svq1/marymary-shackles.mov) must be modified. For this file, our > decoder output is now bitwise identical to the reference decoder. I have > tested patch with various other samples and they are all now bitwise > identical.
Seems like this is not the only test whose reference needs to be updated. There are also the fate-vsynth%-svq1 tests. > --- > libavcodec/svq1_vlc.h | 4 ++-- > tests/ref/fate/svq1 | 22 +++++++++++----------- > 2 files changed, 13 insertions(+), 13 deletions(-) > > diff --git a/libavcodec/svq1_vlc.h b/libavcodec/svq1_vlc.h > index 06e3509e4d..5c27928c2a 100644 > --- a/libavcodec/svq1_vlc.h > +++ b/libavcodec/svq1_vlc.h > @@ -167,7 +167,7 @@ const uint16_t ff_svq1_inter_mean_vlc[512][2] = { > { 0xA0, 22 }, { 0xA1, 22 }, { 0xA2, 22 }, { 0xA3, 22 }, > { 0xA4, 22 }, { 0xA5, 22 }, { 0xA6, 22 }, { 0xA7, 22 }, > { 0xA8, 22 }, { 0xA9, 22 }, { 0xAA, 22 }, { 0xAB, 22 }, > - { 0x7F, 22 }, { 0x8F, 21 }, { 0xAC, 22 }, { 0xAD, 22 }, > + { 0x8E, 21 }, { 0x8F, 21 }, { 0xAC, 22 }, { 0xAD, 22 }, > { 0xAE, 22 }, { 0xAF, 22 }, { 0xB0, 22 }, { 0xB1, 22 }, > { 0x53, 20 }, { 0x90, 21 }, { 0xB2, 22 }, { 0x91, 21 }, > { 0xB3, 22 }, { 0xB4, 22 }, { 0x54, 20 }, { 0xB5, 22 }, > @@ -231,7 +231,7 @@ const uint16_t ff_svq1_inter_mean_vlc[512][2] = { > { 0x87, 21 }, { 0x4F, 20 }, { 0x35, 19 }, { 0x4E, 20 }, > { 0x33, 19 }, { 0x32, 19 }, { 0x4D, 20 }, { 0x4C, 20 }, > { 0x83, 22 }, { 0x4B, 20 }, { 0x81, 22 }, { 0x80, 22 }, > - { 0x8E, 21 }, { 0x7E, 22 }, { 0x7D, 22 }, { 0x84, 21 }, > + { 0x7F, 22 }, { 0x7E, 22 }, { 0x7D, 22 }, { 0x84, 21 }, > { 0x8D, 21 }, { 0x7A, 22 }, { 0x79, 22 }, { 0x4A, 20 }, > { 0x77, 22 }, { 0x76, 22 }, { 0x89, 21 }, { 0x74, 22 }, > { 0x73, 22 }, { 0x72, 22 }, { 0x49, 20 }, { 0x70, 22 }, > diff --git a/tests/ref/fate/svq1 b/tests/ref/fate/svq1 > index d53e2952e4..0b0948cce6 100644 > --- a/tests/ref/fate/svq1 > +++ b/tests/ref/fate/svq1 > @@ -24,19 +24,19 @@ > 0, 18, 18, 1, 21600, 0x8d5b2ad0 > 0, 19, 19, 1, 21600, 0xe67128e6 > 0, 20, 20, 1, 21600, 0xb7bf613e > -0, 21, 21, 1, 21600, 0xefd0f51b > -0, 22, 22, 1, 21600, 0x31b7da59 > +0, 21, 21, 1, 21600, 0xf697fa3e > +0, 22, 22, 1, 21600, 0x5b6ede88 > 0, 23, 23, 1, 21600, 0x7a84a8f7 > 0, 24, 24, 1, 21600, 0x0351ad27 > -0, 25, 25, 1, 21600, 0xed6f434d > -0, 26, 26, 1, 21600, 0x0e771127 > -0, 27, 27, 1, 21600, 0x37bf0b95 > -0, 28, 28, 1, 21600, 0x30e10a77 > -0, 29, 29, 1, 21600, 0x1a48288a > -0, 30, 30, 1, 21600, 0xf43c6770 > -0, 31, 31, 1, 21600, 0x3c43ae68 > -0, 32, 32, 1, 21600, 0x04dc0949 > -0, 33, 33, 1, 21600, 0x7920758d > +0, 25, 25, 1, 21600, 0x57b547c2 > +0, 26, 26, 1, 21600, 0xbb9e1558 > +0, 27, 27, 1, 21600, 0xcb470f6b > +0, 28, 28, 1, 21600, 0xeb100de0 > +0, 29, 29, 1, 21600, 0x089c2bf0 > +0, 30, 30, 1, 21600, 0xe27b6a42 > +0, 31, 31, 1, 21600, 0xbfe2b11b > +0, 32, 32, 1, 21600, 0xd9ca0bb5 > +0, 33, 33, 1, 21600, 0x12fe783c > 0, 34, 34, 1, 21600, 0x6c12bab5 > 0, 35, 35, 1, 21600, 0x1ac23706 > 0, 36, 36, 1, 21600, 0x7a95cb5f > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".