[FFmpeg-cvslog] r21875 - trunk/libavcodec/h264_cabac.c
michael
subversion
Thu Feb 18 13:13:21 CET 2010
Author: michael
Date: Thu Feb 18 13:13:21 2010
New Revision: 21875
Log:
Speedup decode_cabac_field_decoding_flag() by 9 cpu cycles.
Modified:
trunk/libavcodec/h264_cabac.c
Modified: trunk/libavcodec/h264_cabac.c
==============================================================================
--- trunk/libavcodec/h264_cabac.c Thu Feb 18 01:19:50 2010 (r21874)
+++ trunk/libavcodec/h264_cabac.c Thu Feb 18 13:13:21 2010 (r21875)
@@ -707,12 +707,11 @@ void ff_h264_init_cabac_states(H264Conte
static int decode_cabac_field_decoding_flag(H264Context *h) {
MpegEncContext * const s = &h->s;
- const long mba_xy = h->mb_xy - 1L;
const long mbb_xy = h->mb_xy - 2L*s->mb_stride;
unsigned long ctx = 0;
- ctx += (s->current_picture.mb_type[mba_xy]>>7)&(h->slice_table[mba_xy] == h->slice_num);
+ ctx += h->mb_field_decoding_flag & !!s->mb_x; //for FMO:(s->current_picture.mb_type[mba_xy]>>7)&(h->slice_table[mba_xy] == h->slice_num);
ctx += (s->current_picture.mb_type[mbb_xy]>>7)&(h->slice_table[mbb_xy] == h->slice_num);
return get_cabac_noinline( &h->cabac, &(h->cabac_state+70)[ctx] );
More information about the ffmpeg-cvslog
mailing list