mirror of https://git.ffmpeg.org/ffmpeg.git
Speedup decode_cabac_field_decoding_flag() by 9 cpu cycles.
Originally committed as revision 21875 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
077a8d61c0
commit
90a5849efd
|
@ -707,12 +707,11 @@ void ff_h264_init_cabac_states(H264Context *h) {
|
||||||
|
|
||||||
static int decode_cabac_field_decoding_flag(H264Context *h) {
|
static int decode_cabac_field_decoding_flag(H264Context *h) {
|
||||||
MpegEncContext * const s = &h->s;
|
MpegEncContext * const s = &h->s;
|
||||||
const long mba_xy = h->mb_xy - 1L;
|
|
||||||
const long mbb_xy = h->mb_xy - 2L*s->mb_stride;
|
const long mbb_xy = h->mb_xy - 2L*s->mb_stride;
|
||||||
|
|
||||||
unsigned long ctx = 0;
|
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);
|
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] );
|
return get_cabac_noinline( &h->cabac, &(h->cabac_state+70)[ctx] );
|
||||||
|
|
Loading…
Reference in New Issue