[FFmpeg-cvslog] r21819 - in trunk/libavcodec: h264.h h264_cabac.c

michael subversion
Sun Feb 14 03:08:48 CET 2010


Author: michael
Date: Sun Feb 14 03:08:48 2010
New Revision: 21819

Log:
Remove slice_table checks from decode_cabac_mb_cbp_luma() and set left/top_cbp so
these checks arent needed.

Modified:
   trunk/libavcodec/h264.h
   trunk/libavcodec/h264_cabac.c

Modified: trunk/libavcodec/h264.h
==============================================================================
--- trunk/libavcodec/h264.h	Sun Feb 14 03:04:41 2010	(r21818)
+++ trunk/libavcodec/h264.h	Sun Feb 14 03:08:48 2010	(r21819)
@@ -927,17 +927,17 @@ static void fill_decode_caches(H264Conte
         if(top_type) {
             h->top_cbp = h->cbp_table[top_xy];
         } else if(IS_INTRA(mb_type)) {
-            h->top_cbp = 0x1C0;
+            h->top_cbp = 0x1CF;
         } else {
-            h->top_cbp = 0;
+            h->top_cbp = 0x00F;
         }
         // left_cbp
         if (left_type[0]) {
             h->left_cbp = h->cbp_table[left_xy[0]] & 0x1f0;
         } else if(IS_INTRA(mb_type)) {
-            h->left_cbp = 0x1C0;
+            h->left_cbp = 0x1CF;
         } else {
-            h->left_cbp = 0;
+            h->left_cbp = 0x00F;
         }
         if (left_type[0]) {
             h->left_cbp |= ((h->cbp_table[left_xy[0]]>>((left_block[0]&(~1))+1))&0x1) << 1;

Modified: trunk/libavcodec/h264_cabac.c
==============================================================================
--- trunk/libavcodec/h264_cabac.c	Sun Feb 14 03:04:41 2010	(r21818)
+++ trunk/libavcodec/h264_cabac.c	Sun Feb 14 03:08:48 2010	(r21819)
@@ -867,8 +867,8 @@ static int decode_cabac_mb_chroma_pre_mo
 static int decode_cabac_mb_cbp_luma( H264Context *h) {
     int cbp_b, cbp_a, ctx, cbp = 0;
 
-    cbp_a = h->slice_table[h->left_mb_xy[0]] == h->slice_num ? h->left_cbp : -1;
-    cbp_b = h->slice_table[h->top_mb_xy]     == h->slice_num ? h->top_cbp  : -1;
+    cbp_a = h->left_cbp;
+    cbp_b = h->top_cbp;
 
     ctx = !(cbp_a & 0x02) + 2 * !(cbp_b & 0x04);
     cbp |= get_cabac_noinline(&h->cabac, &h->cabac_state[73 + ctx]);



More information about the ffmpeg-cvslog mailing list