[FFmpeg-devel] Extend/optimize RGB to RGB conversions funcsintorgb2rgb.c

yann.lepetitcorps at free.fr yann.lepetitcorps at free.fr
Tue Sep 11 01:32:23 CEST 2012


> > If you are willing to add SSE optims or similar, you should check
> > libswscale/x86/rgb2rgb_template.c and related files. It's likely they
> > already exist.
> >
> > Also, it's hard to follow the thread when you are top posting.
> >
> > Regards,
> >
> > --
> > Clément B.
>
> Thanks for your feedback,
>
> I have first wanted to accellerate the current **C standard** versions of
> rgb24to32() and rgb32to24() but alls versions that I have found seem run at
> the
> best on the same speed as the FFMPEG versions
>
> => the "C standardized" FFMPEG's versions of rgb2rgba() and  rgba2rgb() seem
> now
> to me near optimals (with only using a standard C coding of course ...)
>
> So it's why now I begin to take a look at the level of MMX/SSE ways :)
>
> ==> I will now go for a ride on the side of libswscale/x86/rgb2rgb_template.c
> :)
>
>
> @+
> Yannoo

A lot of thanks for the libswscale/x86/rgb2rgb_template.c info :)

I have tested the rgb24to32_mmx version by this give the same problem such a lot
of anothers rgb2rgba() funcs, the blue and red components are swapped :(

    R components of entry 0 aren't the sames (50 vs 56) :(
    B components of entry 0 aren't the sames (56 vs 50) :(
    R components of entry 1 aren't the sames (121 vs 203) :(
    B components of entry 1 aren't the sames (203 vs 121) :(
    R components of entry 2 aren't the sames (182 vs 78) :(
    B components of entry 2 aren't the sames (78 vs 182) :(
    R components of entry 3 aren't the sames (73 vs 210) :(
    B components of entry 3 aren't the sames (210 vs 73) :(
    R components of entry 4 aren't the sames (99 vs 8) :(
    B components of entry 4 aren't the sames (8 vs 99) :(
    R components of entry 5 aren't the sames (74 vs 211) :(
    B components of entry 5 aren't the sames (211 vs 74) :(

But on other side, this is **VERY VERY** more speed :)

    Test original rgb24to32() func : 458 ms
    Test new rgb24to32() func (MMX version) : 102 ms

@+
Yannoo




More information about the ffmpeg-devel mailing list