[FFmpeg-devel] [PATCH] h264 deblocking result doesn't match with SIMD on and off.
Sat May 23 19:25:49 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
> 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
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
More information about the ffmpeg-devel