[x264-devel] Bug in X264: Intra-refresh uses non-refreshed pixels

Chris Brien chris.brien at tandberg.com
Mon Sep 13 18:46:07 CEST 2010


When decoding from a GDR recovery point, the stripe of intra macroblocks 
X264 generates as the refresh boundary is supposed to be pristine, using 
only pixel data from the left of the good/bad boundary in order to 
ensure that (prior to deblocking) the pixels to the left of the boundary 
are all known and correct.

I4x4 macroblocks using vertical-left or diagonal-down-left prediction in 
the top-right 4x4 block use the C neighbour pixel. This means that there 
is a dependency on unknown pixels which can propagate down-left through 
the frame, and will not be cleared-up. These modes should be disabled 
for these blocks.

Attached is a bitstream demonstrating the problem. It contains an IDR 
frame, and the same GDR sequence repeated - it was generated by 
splitting an X264-encoded stream at recovery points, and concatenating 
the results. The pixels should be identical at the end of both GDR 
sequences; with the JM decoder they are not.

Chris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0-1-1.264
Type: application/octet-stream
Size: 62416 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/x264-devel/attachments/20100913/7557df21/attachment-0001.obj>


More information about the x264-devel mailing list