[FFmpeg-devel] [PATCH] h264 deblocking result doesn't match with SIMD on and off.

Michael Niedermayer michaelni
Sat May 23 21:01:50 CEST 2009


On Sat, May 23, 2009 at 01:39:50PM -0400, David Conrad wrote:
> On May 23, 2009, at 1:25 PM, Michael Niedermayer wrote:
>
>> On Sun, May 24, 2009 at 12:40:18AM +0900, Haruhiko Yamagata wrote:
>>> In h264 decoder, deblocking result doesn't match with SIMD on and off.
>>>
>>> In h264_loop_filter* (dsputil.c), there are several
>>>
>>>   if( FFABS( p0 - q0 ) < alpha &&
>>>       FFABS( p1 - p0 ) < beta &&
>>>       FFABS( q1 - q0 ) < beta )
>>>
>>> In SIMD optimized functions, this is done in H264_DEBLOCK_MASK
>>> (h264dsp_mmx.c).
>>>
>>>   if (!(FFABS( p0 - q0 ) > (uint8_t)(alpha -1) ||
>>>         FFABS( p1 - p0 ) > (uint8_t)(beta  -1) ||   // beta == 0 ? Oops :
>>> ...
>>>         FFABS( q1 - q0 ) > (uint8_t)(beta  -1) ))
>>>
>>> So the SIMD optimized functions expect alpha and beta not to be zero.
>>> OK, let them assume it for performance.
>>> The attached patch fixes this issue.
>>>
>>> The errors are usually invisible, but after a long chain of reference,
>>> the errors accumulate and eventually get visible.
>>
>> could you provide a h264 file that decodes differently?
>>
>> all reference streams that we claim to support decode binary identical
>> as far as i remember
>
> This fixes issue 776

so can you confirm that mmx&c matches the reference decoder output exactly
with that patch?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Complexity theory is the science of finding the exact solution to an
approximation. Benchmarking OTOH is finding an approximation of the exact
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090523/5db3aea6/attachment.pgp>



More information about the ffmpeg-devel mailing list