[FFmpeg-devel] [PATCH] h264 CAVLC coeff_token decoder based on CLZ

Anatoliy Nenashev nenashev_as
Sat Jan 23 01:28:53 CET 2010


Hi all!
I have made some investigations in H264 CAVLC coeff_token decoder.
In attached patch you can see special implementation of VLC decoder for 
coeff_token which is based on CLZ (count leading zeros).
This method reduce size of VLC decoding tables for coeff_token from 
(520+332+280+256)*2 = 2776 byte to (2*4*16 + 64 + 67 + 63 + 63) = 385 byte.
The all reason is to reduce cache missing. Unfortunally, on my system 
(Intel Core 2 Duo P8700 Debian Linux 64-bit) it make no difference with 
original code performance. May be the bottleneck is implementation of 
CLZ. It would be interesting to see any tests on other systems. Any 
comments are welcome. If community will agree with this kind of 
optimization I will continue this work to implement total_zeros and 
run_before decoding.

Thank you for your answers,
Anatoliy.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: h264_cavlc_coeff_token.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100123/78120c30/attachment.txt>



More information about the ffmpeg-devel mailing list