From 65a0f3fd4756e6214e519892de4abd8fcd65ea55 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 16 Feb 2007 21:27:59 +0000 Subject: [PATCH] factorize mv_cache and mvd_cache init Originally committed as revision 7996 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.c | 54 +++++++++++++++++++++++++----------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 8ae275239..7ec0e6c8a 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -5299,21 +5299,19 @@ decode_intra_mb: tprintf("final mv:%d %d\n", mx, my); if(IS_SUB_8X8(sub_mb_type)){ - mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= + mv_cache[ 1 ][0]= mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx; - mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= + mv_cache[ 1 ][1]= mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my; }else if(IS_SUB_8X4(sub_mb_type)){ - mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= mx; - mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= my; + mv_cache[ 1 ][0]= mx; + mv_cache[ 1 ][1]= my; }else if(IS_SUB_4X8(sub_mb_type)){ - mv_cache[ 0 ][0]= mv_cache[ 8 ][0]= mx; - mv_cache[ 0 ][1]= mv_cache[ 8 ][1]= my; - }else{ - assert(IS_SUB_4X4(sub_mb_type)); - mv_cache[ 0 ][0]= mx; - mv_cache[ 0 ][1]= my; + mv_cache[ 8 ][0]= mx; + mv_cache[ 8 ][1]= my; } + mv_cache[ 0 ][0]= mx; + mv_cache[ 0 ][1]= my; } }else{ uint32_t *p= (uint32_t *)&h->mv_cache[list][ scan8[4*i] ][0]; @@ -6434,35 +6432,33 @@ decode_intra_mb: tprintf("final mv:%d %d\n", mx, my); if(IS_SUB_8X8(sub_mb_type)){ - mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= + mv_cache[ 1 ][0]= mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx; - mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= + mv_cache[ 1 ][1]= mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my; - mvd_cache[ 0 ][0]= mvd_cache[ 1 ][0]= + mvd_cache[ 1 ][0]= mvd_cache[ 8 ][0]= mvd_cache[ 9 ][0]= mx - mpx; - mvd_cache[ 0 ][1]= mvd_cache[ 1 ][1]= + mvd_cache[ 1 ][1]= mvd_cache[ 8 ][1]= mvd_cache[ 9 ][1]= my - mpy; }else if(IS_SUB_8X4(sub_mb_type)){ - mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= mx; - mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= my; + mv_cache[ 1 ][0]= mx; + mv_cache[ 1 ][1]= my; - mvd_cache[ 0 ][0]= mvd_cache[ 1 ][0]= mx- mpx; - mvd_cache[ 0 ][1]= mvd_cache[ 1 ][1]= my - mpy; + mvd_cache[ 1 ][0]= mx - mpx; + mvd_cache[ 1 ][1]= my - mpy; }else if(IS_SUB_4X8(sub_mb_type)){ - mv_cache[ 0 ][0]= mv_cache[ 8 ][0]= mx; - mv_cache[ 0 ][1]= mv_cache[ 8 ][1]= my; - - mvd_cache[ 0 ][0]= mvd_cache[ 8 ][0]= mx - mpx; - mvd_cache[ 0 ][1]= mvd_cache[ 8 ][1]= my - mpy; - }else{ - assert(IS_SUB_4X4(sub_mb_type)); - mv_cache[ 0 ][0]= mx; - mv_cache[ 0 ][1]= my; + mv_cache[ 8 ][0]= mx; + mv_cache[ 8 ][1]= my; - mvd_cache[ 0 ][0]= mx - mpx; - mvd_cache[ 0 ][1]= my - mpy; + mvd_cache[ 8 ][0]= mx - mpx; + mvd_cache[ 8 ][1]= my - mpy; } + mv_cache[ 0 ][0]= mx; + mv_cache[ 0 ][1]= my; + + mvd_cache[ 0 ][0]= mx - mpx; + mvd_cache[ 0 ][1]= my - mpy; } }else{ uint32_t *p= (uint32_t *)&h->mv_cache[list][ scan8[4*i] ][0]; -- 2.11.0