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

Yuriy Kaminskiy yumkam
Thu Sep 30 18:13:41 CEST 2010


Hello!

I've noticed old and forgotten patch series by Victor Pollex
(http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2008-July/050503.html),
forward-ported it to current ffmpeg, it seems gives 12%-20% faster decoding
(benchmarked with ffmpeg [...] -f yuv4mpeg /dev/null, verified with -f framecrc).

Well, not everything good, as sse2 variant (at least on my machine - amd
x2-4850e/i386/gcc-4.1.2; note that x264 thinks this is SSE2_Slow) is not faster,
or even slightly slower than mmx, so, maybe, 40_*.patch should be skipped for
now (strangely, with START|STOP_TIMER, it looks slightly faster with sse2; but
according to `time ./ffmpeg [...] /dev/null` it is actually slightly slower;
maybe, i-cache effects?).

time ./ffmpeg -i file.mkv -f yuv4mpegpipe /dev/null
(faster-in-three-run)
unpatched:41.903
c:        41.599
sse2_all: 34.202
sse2:     34.198
mmx:      33.946

Original series also altered _c version for transposed variant, but as there are
already optimized ppc/altivec variant, and (!res_fasttx) branch was broken by
original series (used wrong offset in vc1_decode_p_block), so I've considered to
be easier to drop that and just use _transposed flags.
I've also fixed problematic asm arguments: s/(0x\d\d)%0/$1(%0)/.

PS note, that (profile != PROFILE_ADVANCED && res_fasttx == 0) path is *not*
affected by this patch, so *some* wmv3 files should show same speed as before.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 00_vc1dsp-5.patch
Type: text/x-diff
Size: 8467 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100930/86af21ab/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20_dsputil_mmx-2.patch
Type: text/x-diff
Size: 1274 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100930/86af21ab/attachment-0001.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 30_vc1dsp_mmx-4.patch
Type: text/x-diff
Size: 33242 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100930/86af21ab/attachment-0002.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 40_vc1dsp_sse2-2.patch
Type: text/x-diff
Size: 9370 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100930/86af21ab/attachment-0003.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 50-noapply-getenv-hack.patch
Type: text/x-diff
Size: 1994 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100930/86af21ab/attachment-0004.patch>



More information about the ffmpeg-devel mailing list