diff h264.c @ 11285:613370892df2 libavcodec

Store intra4x4_pred_mode per row only. about 5 cpu cycles slower in the local code but should be overall faster due to reduced cache use. (my sample though has too few intra4x4 blocks for this to be meassureable easily either way)
author michael
date Thu, 25 Feb 2010 14:02:39 +0000
parents 853e93a50fe5
children db94c9bc5694
line wrap: on
line diff
--- a/h264.c	Thu Feb 25 12:51:32 2010 +0000
+++ b/h264.c	Thu Feb 25 14:02:39 2010 +0000
@@ -52,15 +52,15 @@
 };
 
 void ff_h264_write_back_intra_pred_mode(H264Context *h){
-    const int mb_xy= h->mb_xy;
-
-    h->intra4x4_pred_mode[mb_xy][0]= h->intra4x4_pred_mode_cache[7+8*1];
-    h->intra4x4_pred_mode[mb_xy][1]= h->intra4x4_pred_mode_cache[7+8*2];
-    h->intra4x4_pred_mode[mb_xy][2]= h->intra4x4_pred_mode_cache[7+8*3];
-    h->intra4x4_pred_mode[mb_xy][3]= h->intra4x4_pred_mode_cache[7+8*4];
-    h->intra4x4_pred_mode[mb_xy][4]= h->intra4x4_pred_mode_cache[4+8*4];
-    h->intra4x4_pred_mode[mb_xy][5]= h->intra4x4_pred_mode_cache[5+8*4];
-    h->intra4x4_pred_mode[mb_xy][6]= h->intra4x4_pred_mode_cache[6+8*4];
+    int8_t *mode= h->intra4x4_pred_mode + h->mb2br_xy[h->mb_xy];
+
+    mode[0]= h->intra4x4_pred_mode_cache[7+8*1];
+    mode[1]= h->intra4x4_pred_mode_cache[7+8*2];
+    mode[2]= h->intra4x4_pred_mode_cache[7+8*3];
+    mode[3]= h->intra4x4_pred_mode_cache[7+8*4];
+    mode[4]= h->intra4x4_pred_mode_cache[4+8*4];
+    mode[5]= h->intra4x4_pred_mode_cache[5+8*4];
+    mode[6]= h->intra4x4_pred_mode_cache[6+8*4];
 }
 
 /**