Skip to content
Snippets Groups Projects
Commit 8b9eb2df authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

Detect equal 4x4 blocks in spatial direct MBs.

19 cycles slower MV generation
575 cycles faster MC

Originally committed as revision 21689 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent ecc0027b
No related branches found
No related tags found
No related merge requests found
...@@ -345,7 +345,8 @@ single_col: ...@@ -345,7 +345,8 @@ single_col:
if(ref[1] == 0) if(ref[1] == 0)
fill_rectangle(&h->mv_cache[1][scan8[i8*4]], 2, 2, 8, 0, 4); 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++){ for(i4=0; i4<4; i4++){
const int16_t *mv_col = l1mv[x8*2 + (i4&1) + (y8*2 + (i4>>1))*b4_stride]; 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){ if(FFABS(mv_col[0]) <= 1 && FFABS(mv_col[1]) <= 1){
...@@ -353,8 +354,12 @@ single_col: ...@@ -353,8 +354,12 @@ single_col:
*(uint32_t*)h->mv_cache[0][scan8[i8*4+i4]] = 0; *(uint32_t*)h->mv_cache[0][scan8[i8*4+i4]] = 0;
if(ref[1] == 0) if(ref[1] == 0)
*(uint32_t*)h->mv_cache[1][scan8[i8*4+i4]] = 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;
}
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment