[FFmpeg-devel] [PATCH 0/6] improved VP6 decoding

Peter Ross pross at xvid.org
Sun Jan 13 22:00:26 EET 2019

These patches make FFmpeg match the output of the VP6 reference
decoder. Collectively they fix <https://trac.ffmpeg.org/ticket/1282>

Bugs fixed:

* Chroma motion vector calculation was sometimes off by 1.

* Loop filter differences. The VP6 loop filter is the same as the VP4 one.

* IDCT drift. the VP3/4/5/6 reference decoders all use three IDCT versions:
  one for the DC-only case, another for blocks with more than 10 coefficients,
  and an optimised one for blocks with up to 10 AC coefficents. VP6 relies
  on the sparse 10 coefficient version, and without it, picture quality goes
  to custard. VP3/4/5 does not seem to share this problem.

Output is bit identical to vp6vfw.dll for all my test streams.
Please note the On2 enables post-processing by default, and this must be
disabled for accurate comparisions with mplayer, etc.

I would like to get these patches signed off. Can somebody else test them
and report back :)

Peter Ross (6):
  avcodec/vp3dsp: add 12 pixel loop filter functions
  avcodec/vp3dsp: add 10 coefficient version of the vp3 idct
  avcodec/vp6: use rounded shift for chroma motion vector calculation
  avcodec/vp6: use ff_vp4_[hv]_loop_filter_12_c
  avcodec/vp6: select idct based (loosely) on number of coefficients
  fate: update vp6 regression test data

 libavcodec/vp3dsp.c            | 180 ++++++++++++++++-
 libavcodec/vp3dsp.h            |   8 +
 libavcodec/vp5.c               |   1 +
 libavcodec/vp56.c              |  48 +++--
 libavcodec/vp56.h              |   3 +
 libavcodec/vp56dsp.c           |  19 --
 libavcodec/vp6.c               |  14 ++
 tests/ref/fate/vp60            | 202 +++++++++----------
 tests/ref/fate/vp61            | 238 +++++++++++------------
 tests/ref/fate/vp6a            | 172 ++++++++---------
 tests/ref/fate/vp6a-skip_alpha | 172 ++++++++---------
 tests/ref/fate/vp6f            | 342 ++++++++++++++++-----------------
 12 files changed, 797 insertions(+), 602 deletions(-)


-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190114/1c6dbe03/attachment.sig>

More information about the ffmpeg-devel mailing list