diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2006-10-17 22:18:29 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2006-10-17 22:18:29 +0000 |
commit | eb73bf723d7657bd5bbaaeb63dd9b77f21048a87 (patch) | |
tree | a550d53f9f65d7432de5ec4403365a07e7515396 /libavcodec/h264.c | |
parent | 5b9d79bd770608073a3245f50269ad8c36d7ef5d (diff) | |
download | ffmpeg-eb73bf723d7657bd5bbaaeb63dd9b77f21048a87.tar.gz |
x86 asm version of the decode significance loop (not 8x8) of decode_residual() 5% faster decode_residual() on P3
Originally committed as revision 6724 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r-- | libavcodec/h264.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 37e373f1ef..14bc99f338 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -6116,14 +6116,18 @@ static int decode_cabac_residual( H264Context *h, DCTELEM *block, int cat, int n break; \ } \ } \ + }\ + if( last == max_coeff -1 ) {\ + index[coeff_count++] = last;\ } const uint8_t *sig_off = significant_coeff_flag_offset_8x8[MB_FIELD]; DECODE_SIGNIFICANCE( 63, sig_off[last], last_coeff_flag_offset_8x8[last] ); } else { +#ifdef ARCH_X86 + coeff_count= decode_significance_x86(&h->cabac, max_coeff, significant_coeff_ctx_base, index); +#else DECODE_SIGNIFICANCE( max_coeff - 1, last, last ); - } - if( last == max_coeff -1 ) { - index[coeff_count++] = last; +#endif } assert(coeff_count > 0); |