[FFmpeg-devel] [RFC] RGB32 / BGR32 ethernal bug

Stefano Sabatini stefano.sabatini-lala
Sun Jan 31 13:22:53 CET 2010


On date Sunday 2010-01-31 02:06:12 +0100, Michael Niedermayer encoded:
> On Sun, Jan 31, 2010 at 01:48:23AM +0100, Stefano Sabatini wrote:
> > On date Tuesday 2010-01-26 09:17:12 +0100, Michael Niedermayer encoded:
[...]
> > > you write byte shuffling code, id suggest to call it accordingly
> > > theres nothing rgb specific on this, it could be usefull to do packed yuv
> > > shuffling as well.
> > > 
> > > like maybe:
> > > byte_shuffle_0123_to_0321
> > > but before you convert your code to this, what is the speed gain from
> > > a/b/c/d being constants instead of just passed into the function?
> > > there should be enough registers for this in theory
> > > also
> > > dst+=4; src+=4
> > > for(dst<dstend
> > > would reduce the register need
> > 
> > Patch+diff of the regression test attached, maybe rgb2rgb.{h,c} is not
> > the right place for the shuffle functions and you can suggest a better
> > place.
> 
> it can be moved later
> 
> 
> > 
> > I have yet to try/benchmark with a generic shuffle_byte_4() function.
> 
> then ill wait with a review

Attached patches with the two different approaches, code with ad-hoc
custom shuffle functions and with the generic shuffle function
shuffle_bytes_abcd, first solution looks simpler and faster, but I may
miss something.

Regards. 
-- 
FFmpeg = Fostering Fostering Miracolous Purposeless Eager Geisha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lsws-fix-rgba32-scaling.patch
Type: text/x-diff
Size: 6785 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100131/96d4074e/attachment.patch>
-------------- next part --------------
argb -> argb
argb -> rgba
2351280 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2347380 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2398050 dezicycles in shuffle_bytes1, 4 runs, 0 skips
argb -> bgra
2345040 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2343180 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2341710 dezicycles in shuffle_bytes1, 4 runs, 0 skips
argb -> abgr
2328480 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2324640 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2325780 dezicycles in shuffle_bytes1, 4 runs, 0 skips
rgba -> argb
2442600 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2576700 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2457450 dezicycles in shuffle_bytes1, 4 runs, 0 skips
rgba -> rgba
rgba -> bgra
2295360 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2303460 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2296920 dezicycles in shuffle_bytes1, 4 runs, 0 skips
rgba -> abgr
2352600 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2348640 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2344950 dezicycles in shuffle_bytes1, 4 runs, 0 skips
bgra -> argb
2342040 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2404020 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2413470 dezicycles in shuffle_bytes1, 4 runs, 0 skips
bgra -> rgba
2295360 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2359860 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2330640 dezicycles in shuffle_bytes1, 4 runs, 0 skips
bgra -> bgra
bgra -> abgr
2334240 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2336700 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2995410 dezicycles in shuffle_bytes1, 4 runs, 0 skips
abgr -> argb
2323320 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2317920 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2317290 dezicycles in shuffle_bytes1, 4 runs, 0 skips
abgr -> rgba
2346120 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2344740 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2343330 dezicycles in shuffle_bytes1, 4 runs, 0 skips
abgr -> bgra
2352960 dezicycles in shuffle_bytes1, 1 runs, 0 skips
2346660 dezicycles in shuffle_bytes1, 2 runs, 0 skips
2342100 dezicycles in shuffle_bytes1, 4 runs, 0 skips
abgr -> abgr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: use-general-shuffle-func.patch
Type: text/x-diff
Size: 4010 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100131/96d4074e/attachment-0001.patch>
-------------- next part --------------
argb -> argb
argb -> rgba
2681640 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2683560 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2681250 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
argb -> bgra
2679960 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2682720 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2680380 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
argb -> abgr
2678760 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2678700 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2678850 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
rgba -> argb
2681400 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2678460 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2678670 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
rgba -> rgba
rgba -> bgra
2681760 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2680920 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2680050 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
rgba -> abgr
2682480 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2680440 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2683020 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
bgra -> argb
2682720 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2679240 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2678850 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
bgra -> rgba
2955600 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2816760 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2746710 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
bgra -> bgra
bgra -> abgr
2688840 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2683440 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2679600 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
abgr -> argb
2682720 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2679360 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2676960 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
abgr -> rgba
2684040 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2679960 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2681730 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
abgr -> bgra
2686680 dezicycles in shuffle_bytes_abcd1, 1 runs, 0 skips
2685660 dezicycles in shuffle_bytes_abcd1, 2 runs, 0 skips
2681370 dezicycles in shuffle_bytes_abcd1, 4 runs, 0 skips
abgr -> abgr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: swscale-test-all-rgb32.sh
Type: application/x-sh
Size: 285 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100131/96d4074e/attachment.sh>



More information about the ffmpeg-devel mailing list