diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2013-02-18 21:03:02 -0800 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-19 16:25:50 +0100 |
commit | 1acd7d594c15aa491729c837ad3519d3469e620a (patch) | |
tree | 4a515aa31c7483d8a2fdfa1d4399c9a9d2b29cae /libavcodec/svq3.c | |
parent | a1f1ca96b42698002920467c0aab9e636893088a (diff) | |
download | ffmpeg-1acd7d594c15aa491729c837ad3519d3469e620a.tar.gz |
h264: integrate clear_blocks calls with IDCT.
The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700
to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb
(in the decode_slice loop) goes from 1759 to 1733 cycles on the clip
tested (cathedral), i.e. almost 30 cycles per mb faster.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/svq3.c')
-rw-r--r-- | libavcodec/svq3.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 7817766e8c..8f910b588f 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -219,6 +219,8 @@ void ff_svq3_add_idct_c(uint8_t *dst, int16_t *block, dst[i + stride * 2] = av_clip_uint8(dst[i + stride * 2] + ((z1 - z2) * qmul + rr >> 20)); dst[i + stride * 3] = av_clip_uint8(dst[i + stride * 3] + ((z0 - z3) * qmul + rr >> 20)); } + + memset(block, 0, 16 * sizeof(int16_t)); } static inline int svq3_decode_block(GetBitContext *gb, int16_t *block, @@ -669,8 +671,6 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type) } if (!IS_SKIP(mb_type) || h->pict_type == AV_PICTURE_TYPE_B) { memset(h->non_zero_count_cache + 8, 0, 14 * 8 * sizeof(uint8_t)); - h->dsp.clear_blocks(h->mb + 0); - h->dsp.clear_blocks(h->mb + 384); } if (!IS_INTRA16x16(mb_type) && |