[FFmpeg-devel] [PATCH 0/6] On2 VP7 decoder

Peter Ross pross at xvid.org
Thu Feb 6 14:19:27 CET 2014


VP7 is essentially "VP8 minus stuff, plus design bugs".

Decoder limitations:

 * The On2 VP7 mc interpolator gives different results for SSE2 and MMX/C
   CPUs. Oops. Their MMX/C routines are identical to the VP8 epel routines,
   so I have used them. Otherwise, the decoder is bit-identical.

 * VP70 uses inter-mb dc prediction across frames, so there is no gain by
   having a multithreaded decoder. This limitation is not present in VP71, but
   there are very few samples for it.
      Also: VP7 needs to access mb_y - 2 and mb_y - 2 for prediction.T the
      existing VP8 multi-threaded code would need some rework.

 * Per-macroblock features are not implemented:
      Q value
      Loop filter adjustment
      Partial golden frame updates
      Blit pitch (interlacing)

   If somebody really wants these and can find samples, I will try and
   incorporate them.

 * Upscaling is not implemented. This is a bitstream header flag that instructs
   the renderer to upscale frames. Most applications using libavcodec do this
   automatically.

 * IDCT, loop filter and fade routines are not optimised.

Samples:
   http://pub.zaryad.com/video/Documentary/VP70/
   http://samples.ffmpeg.org/V-codecs/VP7/

Cheers,

Peter Ross (6):
  avformat/riff: add On2 VP7 fourccs
  avcodec/h264pred: deconflict DC_128_PRED and HOR_VP8_PRED
  avcodec/vp8dsp: add VP7 idct and loop filter
  indent
  avcodec/vp8: vp8_find_free_buffer
  On2 VP7 decoder

 Changelog                            |   1 +
 doc/general.texi                     |   2 +
 libavcodec/Makefile                  |   1 +
 libavcodec/allcodecs.c               |   1 +
 libavcodec/arm/h264pred_init_arm.c   |   6 +-
 libavcodec/arm/vp8dsp.h              |   4 +-
 libavcodec/arm/vp8dsp_init_arm.c     |   6 +-
 libavcodec/arm/vp8dsp_init_armv6.c   |  44 +--
 libavcodec/arm/vp8dsp_init_neon.c    |  42 +--
 libavcodec/avcodec.h                 |   1 +
 libavcodec/codec_desc.c              |   7 +
 libavcodec/h264pred.c                |  16 +-
 libavcodec/h264pred.h                |   2 +-
 libavcodec/vp8.c                     | 627 ++++++++++++++++++++++++++++-------
 libavcodec/vp8.h                     |  23 ++
 libavcodec/vp8data.h                 | 138 +++++++-
 libavcodec/vp8dsp.c                  | 273 ++++++++++-----
 libavcodec/vp8dsp.h                  |   6 +-
 libavcodec/x86/Makefile              |   3 +
 libavcodec/x86/h264_intrapred_init.c |  10 +-
 libavcodec/x86/vp8dsp_init.c         | 128 ++++---
 libavformat/riff.c                   |   2 +
 22 files changed, 1032 insertions(+), 311 deletions(-)

-- 
1.8.3.2

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


More information about the ffmpeg-devel mailing list