[FFmpeg-cvslog] r21685 - trunk/libavcodec/h264_direct.c
michael
subversion
Mon Feb 8 04:22:17 CET 2010
Author: michael
Date: Mon Feb 8 04:22:17 2010
New Revision: 21685
Log:
Branchless calculation of ref_offset.
7 cpu cycles faster.
Modified:
trunk/libavcodec/h264_direct.c
Modified: trunk/libavcodec/h264_direct.c
==============================================================================
--- trunk/libavcodec/h264_direct.c Mon Feb 8 03:10:59 2010 (r21684)
+++ trunk/libavcodec/h264_direct.c Mon Feb 8 04:22:17 2010 (r21685)
@@ -361,15 +361,14 @@ single_col:
}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 *dist_scale_factor = h->dist_scale_factor;
- int ref_offset= 0;
+ int ref_offset;
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[1] = h->map_col_to_list0_field[s->mb_y&1][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 += 16;
+ 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
if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){
int y_shift = 2*!IS_INTERLACED(*mb_type);
More information about the ffmpeg-cvslog
mailing list