[FFmpeg-devel] [PATCH] SSE dct32() [Was: r23095 - in trunk/libavcodec: ...]

Vitor Sessak vitor1001
Sat Jun 5 15:50:34 CEST 2010


On 06/05/2010 12:24 PM, M?ns Rullg?rd wrote:
> Vitor Sessak<vitor1001 at gmail.com>  writes:
>
>> Moving discussion to -devel...
>>
>> On 05/31/2010 09:59 PM, Vitor Sessak wrote:
>>> On 05/14/2010 05:52 PM, Michael Niedermayer wrote:
>>>> On Fri, May 14, 2010 at 08:39:48AM +0200, Vitor Sessak wrote:
>>>>> Michael Niedermayer wrote:
>>>>>> On Tue, May 11, 2010 at 03:56:45PM -0400, Alex Converse wrote:
>>>>>>> On Tue, May 11, 2010 at 3:52 PM, michael<subversion at mplayerhq.hu>
>>>>>>> wrote:
>>>>>>>> Author: michael
>>>>>>>> Date: Tue May 11 21:52:42 2010
>>>>>>>> New Revision: 23095
>>>>>>>>
>>>>>>>> Log:
>>>>>>>> float based mp1/mp2/mp3 decoders.
>>>>>>>>
>>>>>>> Thanks
>>>>>> :)
>>>>>> btw, any volunteers to try to hook it up to our split radix dct and or
>>>>>> simd optimize it?
>>>>>
>>>>> Without rdft or dct simd, our split radix code is slower. Ugly hack
>>>>> to test
>>>>> it attached.
>>>>
>>>> if dct32() is faster then it should be used by our generic dct code.
>>>> at least for the plain C case
>>>
>>> I've given a try at a SSE dct32(). It is much faster than current C
>>> code. The only problem is that current code in mpegaudiodec.c expect two
>>> arguments, one input (which is destructed) and one output. ITOH,
>>> ff_dct_calc() does everything in-place, what does not glue well with the
>>> current mpegaudiodec.c code. Can you (or anyone else that knows
>>> mpegaudiodec.c well) fix it?
>>
>> I've given a try of making mpegaudiodec.c use the same buffer for dct
>> input and output and it is not trivial. It is much easier (and has no
>> measurable slowdown) to make ff_dct_calc() take both an input and an
>> output pointer as in attached patch.
>
> No change needed to asm?

There is no asm for float 1D DCT.

-Vitor



More information about the ffmpeg-devel mailing list