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

Michael Niedermayer michaelni
Sat May 23 22:24:15 CEST 2009


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.
>
> Best regards,
> Haruhiko Yamagata
> ffdshow-tryouts
>

>  h264.c |    4 ++++
>  1 file changed, 4 insertions(+)
> 089aea8ce540d5087b27de54b2a67b7b11e8d707  dont_deblock_if_beta_is_0.patch

This patch adds the checks so they are also done for the C code
this seems wastefull unless there is some advantage in it?

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

Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- 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/17b9f88f/attachment.pgp>



More information about the ffmpeg-devel mailing list