[MPlayer-dev-eng] [PATCH] SSE2 optimizations for libmpeg2
Alexander Strange
astrange at ithinksw.com
Thu Apr 3 02:42:01 CEST 2008
On Apr 2, 2008, at 7:48 PM, Diego Biurrun wrote:
> On Wed, Apr 02, 2008 at 07:18:39PM -0400, Alexander Strange wrote:
>>
>> On Apr 2, 2008, at 7:15 PM, Diego Biurrun wrote:
>>> On Wed, Apr 02, 2008 at 05:39:57AM -0400, Alexander Strange wrote:
>>>>
>>>> On Apr 1, 2008, at 2:27 PM, Diego Biurrun wrote:
>>>>> On Tue, Mar 11, 2008 at 11:34:44AM +0800, Zuxy Meng wrote:
>>>>>>
>>>>>> 2008/2/19, Diego Biurrun <diego at biurrun.de>:
>>>>>>>
>>>>>>> And here is a version without the (apparently ineffectual)
>>>>>>> motion
>>>>>>> compensation bits.
>>>>>>
>>>>>> Are u going to apply this?
>>>>>
>>>>> I'm not at all sure. According to Christophe Massiot on libmpeg2-
>>>>> devel the output of this IDCT differs from the MMXEXT one even
>>>>> though
>>>>> they use the same algorithm. Thus I'm not sure if it will ever be
>>>>> acceptable upstream.
>>>>>
>>>>> There must still be a bug lurking in there. Maybe you can find
>>>>> it?
>>>>
>>>> This should be rounder_sse2 (0):
>>>> static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder (0);
>>>>
>>>> Attached patch fixes that and builds with the last change to
>>>> libmpeg2.
>>>
>>> You also make the following changes respective to the patch I
>>> posted:
>>>
>>> diff -u libmpeg2/idct_mmx.c libmpeg2/idct_mmx.c
>>> --- libmpeg2/idct_mmx.c (working copy)
>>> +++ libmpeg2/idct_mmx.c (working copy)
>>> @@ -869,7 +869,7 @@
>>>
>>> -static inline void idct (int16_t * const block)
>>> +void idct (int16_t * const block)
>>> {
>>> @@ -902,7 +902,7 @@
>>>
>>> -static inline void sse2_idct (int16_t * const block)
>>> +void sse2_idct (int16_t * const block)
>>>
>>> Is this on purpose?
>>
>> That's accidentally left over from testing it. I only meant to change
>> rounder(0) and the idct init function.
>
> IOW, I should just apply the following change to my patch, right?
>
> -+ static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder
> (0);
> ++ static const int32_t rounder4_128[] ATTR_ALIGN(16) =
> rounder_sse2 (0);
Yes.
> Or what do you mean by the "idct init function"?
Your r26314 made the patch not apply to idct.c/mpeg2_idct_init, since
the #ifdefs changed.
More information about the MPlayer-dev-eng
mailing list