Log in

View Full Version : Huffyuv and SSE/SSE2


morsa
6th September 2004, 14:10
Well, here it comes, (don't blame me for asking):)
Seeing we have really a bunch of very advanced and skillful programmers here, Wouldn't be possible to update Huffyuv adding to it SSE optimizations? (I don't know if Huffy is a good candidate to gain speed with SSE, but would like knowing it at least)
Thank you

P.S(or VBLE seeing it supports YV12)

fccHandler
6th September 2004, 23:46
Honestly I don't think it will help much. From what I remember of the code, it's mostly table based (read a byte here, use that byte to index a byte here, and so on). Thus any bottlenecks are probably due to memory latency instead of CPU speed, and I suspect its methods would be difficult to translate to SIMD.

morsa
7th September 2004, 04:03
Oh, thanks.
I was thinking about the predictor portion of it....
I mean the color space transforms and the predictor computations...

fccHandler
7th September 2004, 06:03
Well, the color space transform can probably be improved. But in my opinion, if you are asking Huffyuv to transform the color space while encoding or decoding, then you're not making the most efficient use of the codec. Color space transform is often lossy, and the whole idea of Huffyuv is to avoid loss.

morsa
7th September 2004, 07:31
but huffy for RGB uses R-G, G, G-B, that is indeed a transformation, or not?
Also what about the calculation for the predictor and the rest?

fccHandler
7th September 2004, 16:15
Sorry, I thought you were talking about RGB <-> YUV transforms. I'm not really familiar with the predictor code.

metaller
9th September 2004, 10:53
IIRC Huffyuv uses integer numbers so you need MMX, not SSE

morsa
10th September 2004, 02:06
So what is iSSE for????

BBugsBunny
10th September 2004, 20:47
What I am wondering is what happened to "HuffYUV revisited" 2.2.0?
http://forum.doom9.org/showthread.php?s=&threadid=67121
The site of sh0dan where the codec was available for download is down and I think the RGB issue did not get fixed.

If the codec can't take advantage of SSE than perhaps a multithreaded version would be possible to give a performance boost on dual cpu and future dual core systems.

Other codecs like the Mainconcept DV codec defenitely take advantage of 2 CPUs.