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

Chris Brien chris.brien at tandberg.com
Tue Sep 14 11:18:00 CEST 2010


On 14.09.2010 00:19, Jason Garrett-Glaser wrote:
> On Mon, Sep 13, 2010 at 9:46 AM, Chris Brien<chris.brien at tandberg.com>  wrote:
>> 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.
>
> Can you confirm that disabling these modes actually fixes it?  Here's a patch.
>
> Dark Shikari

After applying the patch, it would appear to be fixed. I can now decode 
the X264 encoded stream from any recovery point and eventually get 
pixel-exact results, both with the JM decoder, and ours.

Thanks!

Chris


More information about the x264-devel mailing list