[FFmpeg-cvslog] r21689 - trunk/libavcodec/h264_direct.c
michael
subversion
Mon Feb 8 14:05:24 CET 2010
Author: michael
Date: Mon Feb 8 14:05:24 2010
New Revision: 21689
Log:
Detect equal 4x4 blocks in spatial direct MBs.
19 cycles slower MV generation
575 cycles faster MC
Modified:
trunk/libavcodec/h264_direct.c
Modified: trunk/libavcodec/h264_direct.c
==============================================================================
--- trunk/libavcodec/h264_direct.c Mon Feb 8 11:13:03 2010 (r21688)
+++ trunk/libavcodec/h264_direct.c Mon Feb 8 14:05:24 2010 (r21689)
@@ -345,7 +345,8 @@ single_col:
if(ref[1] == 0)
fill_rectangle(&h->mv_cache[1][scan8[i8*4]], 2, 2, 8, 0, 4);
}
- }else
+ }else{
+ int m=0;
for(i4=0; i4<4; i4++){
const int16_t *mv_col = l1mv[x8*2 + (i4&1) + (y8*2 + (i4>>1))*b4_stride];
if(FFABS(mv_col[0]) <= 1 && FFABS(mv_col[1]) <= 1){
@@ -353,8 +354,12 @@ single_col:
*(uint32_t*)h->mv_cache[0][scan8[i8*4+i4]] = 0;
if(ref[1] == 0)
*(uint32_t*)h->mv_cache[1][scan8[i8*4+i4]] = 0;
+ m++;
}
}
+ if(!(m&3))
+ h->sub_mb_type[i8]+= MB_TYPE_16x16 - MB_TYPE_8x8;
+ }
}
}
}
More information about the ffmpeg-cvslog
mailing list