[PATCH] New rgb32tobgr32 (was: Re: [Ffmpeg-devel] [PATCH] have cs_test check for sigsegv at smaller widths and sigill)

Ivo ivop
Fri Apr 13 22:40:12 CEST 2007


Hi,

On Friday 13 April 2007 19:19, Ivo wrote:
> It's even worse. The change for rgb32tobgr32 is not ok as it doesn't have
> any fallback C code if the HAVE_MMX block is compiled. So, with my
> change, there will be no conversion done if the incoming image is too
> small (1 pixel wide :) ). I'll brew up another patch that rewrites the
> whole function from scratch and also fix two other scalers (rgb32to16 and
> rgb32to15) that do not segfault, but do run the MMX code even if src_size
> is smaller than the size of the units it processes.

Okay, let's do one at the time. Here's a new rgb32tobgr32.

Old C code:
71005170 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68674000 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68812770 dezicycles in rgb32tobgr32, 1 runs, 0 skips
70973970 dezicycles in rgb32tobgr32, 1 runs, 0 skips
80106370 dezicycles in rgb32tobgr32, 1 runs, 0 skips
72288570 dezicycles in rgb32tobgr32, 1 runs, 0 skips
70083870 dezicycles in rgb32tobgr32, 1 runs, 0 skips
69491770 dezicycles in rgb32tobgr32, 1 runs, 0 skips
71102770 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68530510 dezicycles in rgb32tobgr32, 1 runs, 0 skips
Avg: 71106977

New C code:
67884120 dezicycles in rgb32tobgr32, 1 runs, 0 skips
67676920 dezicycles in rgb32tobgr32, 1 runs, 0 skips
67062970 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66117070 dezicycles in rgb32tobgr32, 1 runs, 0 skips
69446870 dezicycles in rgb32tobgr32, 1 runs, 0 skips
67218120 dezicycles in rgb32tobgr32, 1 runs, 0 skips
67959520 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68862130 dezicycles in rgb32tobgr32, 1 runs, 0 skips
67234370 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66610970 dezicycles in rgb32tobgr32, 1 runs, 0 skips
Avg: 67607306

Old MMX code:
65658150 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66108690 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68708460 dezicycles in rgb32tobgr32, 1 runs, 0 skips
65514390 dezicycles in rgb32tobgr32, 1 runs, 0 skips
65134590 dezicycles in rgb32tobgr32, 1 runs, 0 skips
76013820 dezicycles in rgb32tobgr32, 1 runs, 0 skips
69046210 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68236350 dezicycles in rgb32tobgr32, 1 runs, 0 skips
65870740 dezicycles in rgb32tobgr32, 1 runs, 0 skips
70115250 dezicycles in rgb32tobgr32, 1 runs, 0 skips
Avg: 68040665

New MMX code:
67142180 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66278990 dezicycles in rgb32tobgr32, 1 runs, 0 skips
65370130 dezicycles in rgb32tobgr32, 1 runs, 0 skips
68851770 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66163960 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66671710 dezicycles in rgb32tobgr32, 1 runs, 0 skips
67618260 dezicycles in rgb32tobgr32, 1 runs, 0 skips
66444230 dezicycles in rgb32tobgr32, 1 runs, 0 skips
75597570 dezicycles in rgb32tobgr32, 1 runs, 0 skips
64721560 dezicycles in rgb32tobgr32, 1 runs, 0 skips
Avg: 67486036

My CPU is an AMD Sempron 2400+.

--Ivo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rgb32tobgr32.new.patch
Type: text/x-diff
Size: 2798 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070413/320e549e/attachment.patch>



More information about the ffmpeg-devel mailing list