mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-12-18 00:46:51 +00:00
Branchless calculation of ref_offset.
7 cpu cycles faster. Originally committed as revision 21685 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
fb70c63f70
commit
542d4a756a
@ -361,15 +361,14 @@ single_col:
|
|||||||
}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]};
|
||||||
const int *dist_scale_factor = h->dist_scale_factor;
|
const int *dist_scale_factor = h->dist_scale_factor;
|
||||||
int ref_offset= 0;
|
int ref_offset;
|
||||||
|
|
||||||
if(FRAME_MBAFF && IS_INTERLACED(*mb_type)){
|
if(FRAME_MBAFF && IS_INTERLACED(*mb_type)){
|
||||||
map_col_to_list0[0] = h->map_col_to_list0_field[s->mb_y&1][0];
|
map_col_to_list0[0] = h->map_col_to_list0_field[s->mb_y&1][0];
|
||||||
map_col_to_list0[1] = h->map_col_to_list0_field[s->mb_y&1][1];
|
map_col_to_list0[1] = h->map_col_to_list0_field[s->mb_y&1][1];
|
||||||
dist_scale_factor =h->dist_scale_factor_field[s->mb_y&1];
|
dist_scale_factor =h->dist_scale_factor_field[s->mb_y&1];
|
||||||
}
|
}
|
||||||
if(h->ref_list[1][0].mbaff && IS_INTERLACED(mb_type_col[0]))
|
ref_offset = (h->ref_list[1][0].mbaff<<4) & (mb_type_col[0]>>3); //if(h->ref_list[1][0].mbaff && IS_INTERLACED(mb_type_col[0])) ref_offset=16 else 0
|
||||||
ref_offset += 16;
|
|
||||||
|
|
||||||
if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){
|
if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){
|
||||||
int y_shift = 2*!IS_INTERLACED(*mb_type);
|
int y_shift = 2*!IS_INTERLACED(*mb_type);
|
||||||
|
Loading…
Reference in New Issue
Block a user