From: Henrik Gramner Date: Wed, 8 Jan 2014 00:06:56 +0000 (+0100) Subject: Avoid some unneccesary memory loads in macroblock_encode X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8be6600d10a74ca241dbb27e096883ceed7b4082;p=libx264 Avoid some unneccesary memory loads in macroblock_encode --- diff --git a/encoder/macroblock.c b/encoder/macroblock.c index 1f66278a..351650a1 100644 --- a/encoder/macroblock.c +++ b/encoder/macroblock.c @@ -157,10 +157,7 @@ static void x264_mb_encode_i16x16( x264_t *h, int p, int i_qp ) return; } - M32( &h->mb.cache.non_zero_count[x264_scan8[ 0+p*16]] ) = 0; - M32( &h->mb.cache.non_zero_count[x264_scan8[ 2+p*16]] ) = 0; - M32( &h->mb.cache.non_zero_count[x264_scan8[ 8+p*16]] ) = 0; - M32( &h->mb.cache.non_zero_count[x264_scan8[10+p*16]] ) = 0; + CLEAR_16x16_NNZ( p ); h->dctf.sub16x16_dct( dct4x4, p_src, p_dst ); diff --git a/encoder/macroblock.h b/encoder/macroblock.h index d0ba11a9..9ca3f3d6 100644 --- a/encoder/macroblock.h +++ b/encoder/macroblock.h @@ -98,10 +98,10 @@ do\ #define CLEAR_16x16_NNZ( p ) \ do\ {\ - M32( &h->mb.cache.non_zero_count[x264_scan8[16*p+ 0]] ) = 0;\ - M32( &h->mb.cache.non_zero_count[x264_scan8[16*p+ 2]] ) = 0;\ - M32( &h->mb.cache.non_zero_count[x264_scan8[16*p+ 8]] ) = 0;\ - M32( &h->mb.cache.non_zero_count[x264_scan8[16*p+10]] ) = 0;\ + M32( &h->mb.cache.non_zero_count[x264_scan8[16*p] + 0*8] ) = 0;\ + M32( &h->mb.cache.non_zero_count[x264_scan8[16*p] + 1*8] ) = 0;\ + M32( &h->mb.cache.non_zero_count[x264_scan8[16*p] + 2*8] ) = 0;\ + M32( &h->mb.cache.non_zero_count[x264_scan8[16*p] + 3*8] ) = 0;\ } while(0) /* A special for loop that iterates branchlessly over each set