]> granicus.if.org Git - libx264/commitdiff
Remove an IDIV from i8x8 analysis
authorFiona Glaser <fiona@x264.com>
Wed, 14 Jan 2009 00:58:44 +0000 (19:58 -0500)
committerFiona Glaser <fiona@x264.com>
Wed, 14 Jan 2009 00:58:44 +0000 (19:58 -0500)
Only one IDIV is left in macroblock level code (transform_rd)

encoder/analyse.c

index 6d75fe5a8a68bbabaf804188b98906a004352fd0..96574333ba8bcd1b15f8ac8041fda66d911d7cab 100644 (file)
@@ -727,8 +727,9 @@ static void x264_mb_analyse_intra( x264_t *h, x264_mb_analysis_t *a, int i_satd_
         }
         else
         {
+            static const uint16_t cost_div_fix8[3] = {1024,512,341};
             a->i_satd_i8x8 = COST_MAX;
-            i_cost = i_cost * 4/(idx+1);
+            i_cost = (i_cost * cost_div_fix8[idx]) >> 8;
         }
         if( X264_MIN(i_cost, a->i_satd_i16x16) > i_satd_inter*(5+!!a->i_mbrd)/4 )
             return;