[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