[FFmpeg-devel] [PATCH] mmx implementation of vc-1 inverse transformations

Kostya kostya.shishkov
Tue Jul 29 10:33:04 CEST 2008


On Mon, Jul 28, 2008 at 09:27:24PM +0200, Victor Pollex wrote:
[...]
> >  
> 
> changed the other scantables aswell, though i haven't tested the 8x4 and 
> 4x8 for the advanced profile, as I haven't found a progressive video 
> encoded with the advanced profile.

try http://samples.mplayerhq.hu/evob/sample.evo or
http://samples.mplayerhq.hu/evob/sample-long.evo

also please use -f crc to make sure output is the same

[...]
> 00_constants.patch:
> changes the ff_pw_4 and ff_pw_64 constants to be able to use them with sse2
> 
> 01_dsputil_mmx.patch:
> adds an parameter to the LOAD4 / STORE4 macros to specify a mov mnemonic 
> suffix
> 
> 02_vc1dsp.patch:
> the new "transposed" scantables and altered code to use them
> 
> 03_vc1dsp_mmx.patch:
> adds a new header file with macros for the transformations and adds an 
> mmx version for the transformations
> 
> 04_vc1dsp_sse2.path:
> adds an sse2/mmx version for the transformations and uses a bit of sse 
> instructions. I hope this is acceptable.
> someone should benchmark the 4x8 and 8x4 versions, as for me the former 
> was slower and the latter a bit faster compared to the mmx versions
 
Hmm, I'm ok with transposed scantables if that does not change decoded frames.
As for the rest - I'm not a maintainer but your files did not compile on Core2.
Here's a snippet (same for vc1dsp_mmx.c):

libavcodec/i386/vc1dsp_sse2.c: Assembler messages:
libavcodec/i386/vc1dsp_sse2.c:299: Error: suffix or operands invalid for `add'
libavcodec/i386/vc1dsp_sse2.c:305: Error: suffix or operands invalid for `add'
libavcodec/i386/vc1dsp_sse2.c:311: Error: suffix or operands invalid for `add'
libavcodec/i386/vc1dsp_sse2.c:232: Error: `(%rdi,%eax)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:236: Error: `(%rdi,%eax)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:237: Error: `(%rdi,%esi,4)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:241: Error: `(%rdi,%esi,4)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:242: Error: suffix or operands invalid for `add'
libavcodec/i386/vc1dsp_sse2.c:243: Error: `(%rdi,%eax,2)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:247: Error: `(%rdi,%eax,2)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:331: Error: `(%rdi,%esi)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:335: Error: `(%rdi,%esi)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:336: Error: `(%rdi,%esi,4)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:340: Error: `(%rdi,%esi,4)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:341: Error: suffix or operands invalid for `add'
libavcodec/i386/vc1dsp_sse2.c:342: Error: `(%rdi,%esi,4)' is not a valid base/index expression
libavcodec/i386/vc1dsp_sse2.c:346: Error: `(%rdi,%esi,4)' is not a valid base/index expression
make: *** [libavcodec/i386/vc1dsp_sse2.o] Error 1 




More information about the ffmpeg-devel mailing list