[FFmpeg-devel] [PATCHv3] On2 VP7 decoder

Michael Niedermayer michaelni at gmx.at
Thu Mar 27 05:01:06 CET 2014


On Wed, Mar 26, 2014 at 04:37:43AM +0100, Vittorio Giovara wrote:
> On Tue, Mar 25, 2014 at 1:25 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> > On Tue, Feb 18, 2014 at 09:52:30PM +1100, Peter Ross wrote:
> >> Signed-off-by: Peter Ross <pross at xvid.org>
> >> ---
> >> Here is my first attempt at addressing the VP8 performance regressions
> >> introduced by the VP7 decoder.
> >>
> >> This uses 'always inline & static template' approach to generate vp7_ and
> >> vp8_ variants of performance critical functions. Every function containing
> >> an 'if vp7' branch below vp8_decode_mb_row_sliced is duplicated.
> >>
> >> As a sanity check --disable-decoder=vp7 makes the resulting vp8.o binary is
> >> virtually identical to the current vp8.o file. The only difference being the
> >> use of function pointers for decode_mb_row_no_filter and filter_mb_row.
> >>
> >> user times from VP8 'A_4K_Video_Reel_by_Bright_Side_Network_Inc..webm' on
> >> Core2 Q9400. In seconds.
> >> VP8 only: 82.013 82.049 82.059 82.089 82.095  : AVERAGE 82.061
> >> VP7+VP8:  82.206 82.234 82.249 82.253 82.261  : AVERAGE 82.241
> >> VP8 only: 82.056 82.065 82.114 82.211 82.224  : AVERAGE 82.134
> >> VP7+VP8:  82.257 82.339 82.356 82.391 82.482  : AVERAGE 82.365
> >>
> >> There is a fairly consistent ~0.25% performance drop for this input. It would
> >> be nice to get performance data on other platforms where VP8 is popular. ARM
> >> especially.
> >>
> >> Other changes in PATCHv3:
> >> - combine fade operation with gold frame preservation
> >> - optimise inter_predict_dc usage
> >> - described vp7_calculate_mb_offset
> >> - dont bother zeroing block/block_dc as done by idct now
> >>
> >> Thanks to Ronald and Jason for their thorough reviews. Cheers,
> >>
> >>  Changelog                            |   1 +
> >>  doc/general.texi                     |   2 +
> >>  libavcodec/Makefile                  |   1 +
> >>  libavcodec/allcodecs.c               |   1 +
> >>  libavcodec/arm/h264pred_init_arm.c   |   6 +-
> >>  libavcodec/arm/vp8.h                 |   2 +-
> >>  libavcodec/avcodec.h                 |   1 +
> >>  libavcodec/codec_desc.c              |   7 +
> >>  libavcodec/h264pred.c                |  16 +-
> >>  libavcodec/vp8.c                     | 759 +++++++++++++++++++++++++++++------
> >>  libavcodec/vp8.h                     |  26 ++
> >>  libavcodec/vp8data.h                 | 138 ++++++-
> >>  libavcodec/x86/Makefile              |   3 +
> >>  libavcodec/x86/h264_intrapred_init.c |  10 +-
> >>  14 files changed, 829 insertions(+), 144 deletions(-)
> >
> > applied
> >
> 
> Hi,
> 
> the decoder doesn't compile standalone.

fixed


> Also lacks a lavc MINOR version bump.

yes though there was a minor bump in the meantime already so that
should work as serving for that too


> Furthermore it introduces at least a possible NULL pointer
> dereferences in vp7_decode_frame_header() when prev_frame is NULL.

fixed

[...]

Thanks

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When you are offended at any man's fault, turn to yourself and study your
own failings. Then you will forget your anger. -- Epictetus
-------------- 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/20140327/48e159d2/attachment.asc>


More information about the ffmpeg-devel mailing list