[FFmpeg-devel] Fix MMX dct_quantize for non zigzag_direct scans
Ramiro Polla
ramiro
Mon May 19 18:44:40 CEST 2008
Michael Niedermayer wrote:
> On Fri, May 16, 2008 at 12:55:03AM +0100, Ramiro Polla wrote:
>> Hi,
>>
>> Michael Niedermayer wrote:
>>> On Wed, May 14, 2008 at 11:25:43PM +0100, Ramiro Polla wrote:
> [...]
>>>> Benchmarking with START/STOP_TIMER isn't very good since the runs can vary
>>>> on the time they take depending on last_non_zero. Also the patch changes
>>>> not only the MMX code but removes the hack in mpegvideo_enc.c.
>>> *_TIMER around the macroblock encode function seems an option
>>> also the automatic threshold calculation could be replaced by a constant
>>> to avoid excessive skips.
>> I added *_TIMERs in first and last line of encode_mb_internal. These are
>> the results:
>>
>> around 1048576 runs
>> ref new
>> time skips time skips
>> 42612 3033 44422 2889
>> 42551 2981 43440 2712
>> 42553 2846 43711 2991
>> 41825 2895 44401 3036
>> 41812 2925 43691 2878
>> 41792 2858 43137 2873
>> 42458 2973 43482 2945
>> 42388 3078 43553 2766
>> 42366 2888 43450 2987
>> 42721 3003 43163 2996
>> 42210 2964 43956 2954
>> 42299 43674 avg
>> 341.8448 433.0284 stdev
>
> the skip numbers are too high
>
> try:
> -if(tcount<2 || tend - tstart < FFMAX(32*tsum/tcount, 200000)){\
> +if(tcount<2 || tend - tstart < FFMAX(32*tsum/tcount, 5000000)){\
> or higher
ref new
43427 45236
42913 44817
43902 44740
43719 44135
42767 44276
44417 44702
45242 45931
44633 44899
42801 45561
44188 44503
43265 44565
43127 45532
43238 44569
43588 44631
43242 44868
44073 45426
43659 44899 average
706.15 502.52 stdev
It's weird that testing the internal function with *_TIMER shows ref as
better, but benchmarking the entire process shows new as better (but
still inside stdev).
[...]
Ramiro Polla
More information about the ffmpeg-devel
mailing list