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

Peter Ross pross at xvid.org
Fri Feb 14 12:57:23 CET 2014


Patch version 2.

CHANGES
- each patch will compile and pass fate when applied in sequence
- Fast C DCT -- thanks to Ronald Bultje for assistance
- Make AV_CODEC_ID_VP7 unique
- Remove abs() usage in inter_predict_dc

PERFORMANCE
The introduction of VP7 degrades the VP8 decoder performance by <=1%
Data supporting this claim (Core2 Q9400) below.

I have tried moving the 'int vp7' field further towards the beginning of
the VP8Context data structure. This field is evaluated many times
for each macroblock. No performance improvement was observed for my
test streams.

parkjoy.ivf – single thread
VP8 orig,  9.384,  9.384,  9.385,  9.388,  9.409, AVG:, 9.390
VP8+VP7,   9.524,  9.492,  9.684,  9.460,  9.472, AVG:, 9.526

parkjoy.ivf – multithread
VP8 orig, 10.007, 10.002, 10.036, 10.047, 10.012, AVG:, 10.021
VP8+VP7,  10.090, 10.049, 10.092, 10.082, 10.115, AVG:, 10.086

sintel_trailer_1080p_vp8_vorbis.webm – single thread
VP8 orig, 13.584, 13.588, 13.600, 13.596, 13.611, AVG:, 13.596 
VP8+VP7,  13.713, 13.721, 13.687, 13.731, 13.755, AVG:, 13.721

~/Downloads/sintel_trailer_1080p_vp8_vorbis.webm – multithread
VP8 orig, 16.021, 15.975, 16.042, 16.037, 16.071, AVG:, 16.029
VP8+VP7,  16.122, 16.192, 16.140, 16.064, 16.045, AVG:, 16.113

Peter Ross (6):
  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
  avformat/riff: add On2 VP7 fourccs

 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                     | 626 ++++++++++++++++++++++++++++-------
 libavcodec/vp8.h                     |  23 ++
 libavcodec/vp8data.h                 | 138 +++++++-
 libavcodec/vp8dsp.c                  | 278 +++++++++++-----
 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, 1036 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/20140214/5341bd30/attachment.asc>


More information about the ffmpeg-devel mailing list