Mercurial > libavcodec.hg
changeset 7183:db32d2544050 libavcodec
Reorder the if/else for residual cats to match gcc's branch prediction.
author | astrange |
---|---|
date | Wed, 02 Jul 2008 22:20:06 +0000 |
parents | ea851fc7ea27 |
children | 9a8278d65858 |
files | h264.c |
diffstat | 1 files changed, 12 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/h264.c Wed Jul 02 22:15:05 2008 +0000 +++ b/h264.c Wed Jul 02 22:20:06 2008 +0000 @@ -5350,13 +5350,13 @@ nzb = (h-> top_cbp>>(6+idx))&0x01; } } else { - if( cat == 1 || cat == 2 ) { + if( cat == 4 ) { + nza = h->non_zero_count_cache[scan8[16+idx] - 1]; + nzb = h->non_zero_count_cache[scan8[16+idx] - 8]; + } else { + assert(cat == 1 || cat == 2); nza = h->non_zero_count_cache[scan8[idx] - 1]; nzb = h->non_zero_count_cache[scan8[idx] - 8]; - } else { - assert(cat == 4); - nza = h->non_zero_count_cache[scan8[16+idx] - 1]; - nzb = h->non_zero_count_cache[scan8[16+idx] - 8]; } } @@ -5447,10 +5447,10 @@ if( is_dc || cat != 5 ) { if( get_cabac( CC, &h->cabac_state[85 + get_cabac_cbf_ctx( h, cat, n, is_dc ) ] ) == 0 ) { if( !is_dc ) { - if( cat == 1 || cat == 2 ) + if( cat == 4 ) + h->non_zero_count_cache[scan8[16+n]] = 0; + else h->non_zero_count_cache[scan8[n]] = 0; - else - h->non_zero_count_cache[scan8[16+n]] = 0; } #ifdef CABAC_ON_STACK @@ -5504,13 +5504,13 @@ else h->cbp_table[h->mb_xy] |= 0x40 << n; } else { - if( cat == 1 || cat == 2 ) - h->non_zero_count_cache[scan8[n]] = coeff_count; + if( cat == 5 ) + fill_rectangle(&h->non_zero_count_cache[scan8[n]], 2, 2, 8, coeff_count, 1); else if( cat == 4 ) h->non_zero_count_cache[scan8[16+n]] = coeff_count; else { - assert( cat == 5 ); - fill_rectangle(&h->non_zero_count_cache[scan8[n]], 2, 2, 8, coeff_count, 1); + assert( cat == 1 || cat == 2 ); + h->non_zero_count_cache[scan8[n]] = coeff_count; } }