[Ffmpeg-devel] Re: [PATCH] h264 - loopify some get_cabac calls

Alexander Strange astrange
Fri Apr 20 00:46:41 CEST 2007


On Mar 24, 2007, at 7:23 PM, Alexander Strange wrote:

> This changes two series of straight-line get_cabac calls to loops.
> ...
>
> <ffmpeg-mbcabac-loops.patch>

I finally found the time to look through the rest of the benchmarks I  
did for this:

45552 dezicycles in decode_mb_cabac, 8188 runs, 4 skips
39043 dezicycles in decode_mb_cabac, 13456 runs, 2928 skips
34729 dezicycles in decode_mb_cabac, 23559 runs, 9209 skips
32233 dezicycles in decode_mb_cabac, 44016 runs, 21520 skips
31117 dezicycles in decode_mb_cabac, 86431 runs, 44641 skips
30542 dezicycles in decode_mb_cabac, 171150 runs, 90994 skips
30203 dezicycles in decode_mb_cabac, 339742 runs, 184546 skips
30131 dezicycles in decode_mb_cabac, 710510 runs, 338066 skips
33107 dezicycles in decode_mb_cabac, 1411827 runs, 685325 skips
34922 dezicycles in decode_mb_cabac, 2822050 runs, 1372254 skips
vs
45363 dezicycles in decode_mb_cabac, 8184 runs, 8 skips
38764 dezicycles in decode_mb_cabac, 13450 runs, 2934 skips
34475 dezicycles in decode_mb_cabac, 23550 runs, 9218 skips
32004 dezicycles in decode_mb_cabac, 44008 runs, 21528 skips
30891 dezicycles in decode_mb_cabac, 86426 runs, 44646 skips
30356 dezicycles in decode_mb_cabac, 171146 runs, 90998 skips
30016 dezicycles in decode_mb_cabac, 339740 runs, 184548 skips
29916 dezicycles in decode_mb_cabac, 710517 runs, 338059 skips
32863 dezicycles in decode_mb_cabac, 1411814 runs, 685338 skips
34668 dezicycles in decode_mb_cabac, 2822069 runs, 1372235 skips

(~226 dezicyles difference)

and

9471 dezicycles in decode_mb_cabac, 3598 runs, 498 skips
9576 dezicycles in decode_mb_cabac, 3617 runs, 4575 skips
9742 dezicycles in decode_mb_cabac, 3655 runs, 12729 skips
9978 dezicycles in decode_mb_cabac, 3698 runs, 29070 skips
10313 dezicycles in decode_mb_cabac, 3759 runs, 61777 skips
13191 dezicycles in decode_mb_cabac, 4319 runs, 126753 skips
15163 dezicycles in decode_mb_cabac, 4751 runs, 257393 skips
40351 dezicycles in decode_mb_cabac, 67789 runs, 456499 skips
36589 dezicycles in decode_mb_cabac, 231005 runs, 817571 skips
29290 dezicycles in decode_mb_cabac, 811360 runs, 1285792 skips
vs
9393 dezicycles in decode_mb_cabac, 3598 runs, 498 skips
9499 dezicycles in decode_mb_cabac, 3617 runs, 4575 skips
9670 dezicycles in decode_mb_cabac, 3655 runs, 12729 skips
9906 dezicycles in decode_mb_cabac, 3698 runs, 29070 skips
10245 dezicycles in decode_mb_cabac, 3758 runs, 61778 skips
13151 dezicycles in decode_mb_cabac, 4320 runs, 126752 skips
15118 dezicycles in decode_mb_cabac, 4753 runs, 257391 skips
40268 dezicycles in decode_mb_cabac, 67784 runs, 456504 skips
36602 dezicycles in decode_mb_cabac, 230995 runs, 817581 skips
29295 dezicycles in decode_mb_cabac, 811378 runs, 1285774 skips
(~43 dezicycles difference)

Signed-rank test for both (one-tailed) using http:// 
faculty.vassar.edu/lowry/wilcoxon.html:
z = 2.78 / p = .0027 (95% significant)
z = 2.47 / p = .0068 (same)

I don't think this is quite true, since the numbers are running  
averages and not individual samples, but without std. deviations it's  
the best I can do.

The patch saves an amazing 84 bytes in a stripped mplayer binary.




More information about the ffmpeg-devel mailing list