[FFmpeg-devel] [PATCH] h264: integrate clear_blocks calls with IDCT.

Michael Niedermayer michaelni at gmx.at
Sat Feb 9 22:39:23 CET 2013


On Sat, Feb 09, 2013 at 10:35:44PM +0100, Michael Niedermayer wrote:
> On Sat, Feb 09, 2013 at 10:23:35AM -0800, Ronald S. Bultje wrote:
> > From: "Ronald S. Bultje" <rsbultje at gmail.com>
> > 
> > In case of no-transform, integrate it with put_pixels4/8(). Intra PCM
> > is changed to not use h->mb anymore (saves a memcpy). The one during
> > update_thread_context() init is removed by removing the memcpy() that
> > clobbered it in the first place. Together, this makes the H264 decoder
> > almost-independent of dsputil.
> > 
> > (PPC and Arm assembly not yet ported. Will port if the rest is OK'ed.)
> > ---
> >  libavcodec/get_bits.h              |   3 +-
> >  libavcodec/h264.c                  |   7 ++-
> >  libavcodec/h264.h                  |   1 +
> >  libavcodec/h264_cabac.c            |   4 +-
> >  libavcodec/h264_cavlc.c            |  10 ++--
> >  libavcodec/h264_mb_template.c      |  20 +++----
> >  libavcodec/h264idct_template.c     |  16 ++++--
> >  libavcodec/h264pred.h              |   8 +--
> >  libavcodec/h264pred_template.c     |  28 ++++++----
> >  libavcodec/svq3.c                  |   2 +
> >  libavcodec/x86/h264_idct.asm       | 108 ++++++++++++++++++++++++++++---------
> >  libavcodec/x86/h264_idct_10bit.asm |  53 ++++++++++++++++--
> >  12 files changed, 185 insertions(+), 75 deletions(-)
> >
> 
> This fails h264-lossless too:
> --- ./tests/ref/fate/h264-lossless  2013-02-09 22:21:42.881124947 +0100
> +++ tests/data/fate/h264-lossless   2013-02-09 22:24:40.705128693 +0100
> @@ -1,11 +1,11 @@
>  #tb 0: 83333/5000000
> -0,          0,          0,        1,   460800, 0x7731dd2f
> -0,          2,          2,        1,   460800, 0x944b8c64
> -0,          3,          3,        1,   460800, 0xbe833041
> -0,          4,          4,        1,   460800, 0xbe95d96a
> -0,          5,          5,        1,   460800, 0xfe7ea5e6
> -0,          6,          6,        1,   460800, 0x381743c7
> -0,          7,          7,        1,   460800, 0x63fcc2e9
> -0,          8,          8,        1,   460800, 0x79574960
> -0,          9,          9,        1,   460800, 0xdab9e18a
> -0,         10,         10,        1,   460800, 0xd88e8fe8
> +0,          0,          0,        1,   460800, 0xa40e9b4e
> +0,          2,          2,        1,   460800, 0x3ac9f364
> +0,          3,          3,        1,   460800, 0x38e73edf
> +0,          4,          4,        1,   460800, 0x97bb08b0
> +0,          5,          5,        1,   460800, 0xd16f4b6d
> +0,          6,          6,        1,   460800, 0x00f724f4
> +0,          7,          7,        1,   460800, 0x8b0d742b
> +0,          8,          8,        1,   460800, 0xddda09dc
> +0,          9,          9,        1,   460800, 0x7b7e80b5
> +0,         10,         10,        1,   460800, 0xb3243355

can be reproduced with: (possibly not a minimal configure line)
make distclean ; ./configure --disable-optimizations --enable-gpl --cc='ccache gcc'  --samples=... && make -j12 fate-h264-lossless

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates
-------------- 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/20130209/40a7612b/attachment.asc>


More information about the ffmpeg-devel mailing list