[FFmpeg-devel] FATE gradfun
ubitux at gmail.com
Fri Dec 7 00:49:25 CET 2012
On Wed, Dec 05, 2012 at 08:59:06PM +0100, Reimar Döffinger wrote:
> On Wed, Dec 05, 2012 at 08:17:43PM +0100, Clément Bœsch wrote:
> > Now in the SSSE3 version, the operation
> > m = (m * m * delta) >> 14
> > is done with the rounding of pmulhrsw, which is equivalent to
> > m = (((((m*m)<<1) * delta) >> 14) + 1) >> 1
> What is the point of doing it like this?
> I haven't checked in detail, but it seems to me like it only adds
> something like 1.5 bits of precision and the cost of mismatching
Yes there is not really any benefit for such precision.
> the MMX code and requiring SSSE3 instead of just SSE2.
Not only; there is also a pabsw which seemed to appear in SSSE3.
> > Concerning the MMX version, it seems there is a difference in the
> > dithering: while the C and SSSE3 versions seem to use whole 8B line of
> > dither, the MMX one will only use the first 4 (2 times). I'm not sure
> > about how to solve that issue.
> Put the second 4 into mm3, unroll the loop once?
Yep good idea, done. Patchset sent.
> > Any comment?
> You could always use a bitexact flag to disable or modify some
> of the code.
Well, it was worth trying to understand the issue. I found 2 bugs in MMX,
and one in the C version.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 490 bytes
Desc: not available
More information about the ffmpeg-devel