mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Detect spatial direct MBs partitioned smaller than 16x16 that can be partitioned
as 16x16 (except ones changing interlacing relative to the colocated MB). 20 cycles slower during MV generation 175 cycles faster during MC Originally committed as revision 21690 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
8b9eb2dfec
commit
3babc711d8
@ -319,6 +319,7 @@ single_col:
|
|||||||
fill_rectangle(&h->mv_cache[0][scan8[0]], 4, 4, 8, a, 4);
|
fill_rectangle(&h->mv_cache[0][scan8[0]], 4, 4, 8, a, 4);
|
||||||
fill_rectangle(&h->mv_cache[1][scan8[0]], 4, 4, 8, b, 4);
|
fill_rectangle(&h->mv_cache[1][scan8[0]], 4, 4, 8, b, 4);
|
||||||
}else{
|
}else{
|
||||||
|
int n=0;
|
||||||
for(i8=0; i8<4; i8++){
|
for(i8=0; i8<4; i8++){
|
||||||
const int x8 = i8&1;
|
const int x8 = i8&1;
|
||||||
const int y8 = i8>>1;
|
const int y8 = i8>>1;
|
||||||
@ -344,6 +345,7 @@ single_col:
|
|||||||
fill_rectangle(&h->mv_cache[0][scan8[i8*4]], 2, 2, 8, 0, 4);
|
fill_rectangle(&h->mv_cache[0][scan8[i8*4]], 2, 2, 8, 0, 4);
|
||||||
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);
|
||||||
|
n+=4;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
int m=0;
|
int m=0;
|
||||||
@ -359,9 +361,12 @@ single_col:
|
|||||||
}
|
}
|
||||||
if(!(m&3))
|
if(!(m&3))
|
||||||
h->sub_mb_type[i8]+= MB_TYPE_16x16 - MB_TYPE_8x8;
|
h->sub_mb_type[i8]+= MB_TYPE_16x16 - MB_TYPE_8x8;
|
||||||
|
n+=m;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!is_b8x8 && !(n&15))
|
||||||
|
*mb_type= (*mb_type & ~(MB_TYPE_8x8|MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_P1L0|MB_TYPE_P1L1))|MB_TYPE_16x16|MB_TYPE_DIRECT2;
|
||||||
}
|
}
|
||||||
}else{ /* direct temporal mv pred */
|
}else{ /* direct temporal mv pred */
|
||||||
const int *map_col_to_list0[2] = {h->map_col_to_list0[0], h->map_col_to_list0[1]};
|
const int *map_col_to_list0[2] = {h->map_col_to_list0[0], h->map_col_to_list0[1]};
|
||||||
|
Loading…
Reference in New Issue
Block a user