Commit 80a3ec56 authored by michael's avatar michael

Merge mv&ref related code for spatial direct MV code.

a bit more than 10 cpu cycles faster.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@21678 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent db83fd41
...@@ -231,31 +231,22 @@ single_col: ...@@ -231,31 +231,22 @@ single_col:
if(refc == PART_NOT_AVAILABLE) if(refc == PART_NOT_AVAILABLE)
refc = h->ref_cache[list][scan8[0] - 8 - 1]; refc = h->ref_cache[list][scan8[0] - 8 - 1];
ref[list] = FFMIN3((unsigned)refa, (unsigned)refb, (unsigned)refc); ref[list] = FFMIN3((unsigned)refa, (unsigned)refb, (unsigned)refc);
if(ref[list] < 0) if(ref[list] >= 0){
ref[list] = -1;
}
if(ref[0] < 0 && ref[1] < 0){
ref[0] = ref[1] = 0;
mv[0][0] = mv[0][1] =
mv[1][0] = mv[1][1] = 0;
}else{
for(list=0; list<2; list++){
if(ref[list] >= 0)
pred_motion(h, 0, 4, list, ref[list], &mv[list][0], &mv[list][1]); pred_motion(h, 0, 4, list, ref[list], &mv[list][0], &mv[list][1]);
else }else{
int mask= ~(MB_TYPE_L0 << (2*list));
mv[list][0] = mv[list][1] = 0; mv[list][0] = mv[list][1] = 0;
ref[list] = -1;
if(!is_b8x8)
*mb_type &= mask;
sub_mb_type &= mask;
} }
} }
if(ref[0] < 0 && ref[1] < 0){
if(ref[1] < 0){ ref[0] = ref[1] = 0;
if(!is_b8x8)
*mb_type &= ~MB_TYPE_L1;
sub_mb_type &= ~MB_TYPE_L1;
}else if(ref[0] < 0){
if(!is_b8x8) if(!is_b8x8)
*mb_type &= ~MB_TYPE_L0; *mb_type |= MB_TYPE_L0L1;
sub_mb_type &= ~MB_TYPE_L0; sub_mb_type |= MB_TYPE_L0L1;
} }
if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){ if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment