[x264-devel] Bug found in --intra-refresh

Alain Champenois achampen at matrox.com
Tue Jul 23 01:44:13 CEST 2013


The current --intra-refresh implementation in x264 has a hole which allow
corruption to subsist even after a full 'frame refresh'. This problem can 
in some case leave important visual artifact (after a corruption of the 
stream occurred). 

I've included an example of the visual corruption that can subsist after a 
full 'frame refresh'. In this example, from the same x264 stream, the image 
to the left is the result of a normal decode, and the image to the right is 
the same frame decoded after the first IDR of the stream has been corrupted 
(and one full 'frame refresh' has completed).

The hole is related to dct8x8 not being handled properly. In intra_refresh 
mode, the Intra column stop corruption from propagating from right to left 
because the 'top-right' Intra modes are disabled for the Intra columns. 
However in Intra 8x8 (with dct8x8 enabled), some top-right pixels are still 
used for the Intra prediction and therefore corruption to the right can 
propagate left, in and over the Intra columns.


The suggestions I have for --intra-refresh:

  (1) To fix the issue, disable dct8x8 in the right-most Intra column. 
      Alternatively the --no-dct8x8 option can be use to hidee this issue 
      but it will have a big negative impact on compression.

  (2) To increase compression ratio, only disable top-right intra mode on 
      the rigth-most Intra column. Currently, all Intra column have top-right 
      Intra mode disabled even if this is not needed. If a 'right-most' column
      flag is implemented to fix the bug, then this will be straightforward to 
      implement.


Since this issue can be handle in multiple ways, I don't have one patch to 
suggest. If needed, I can provide more info for my example.

   Regards
   Alain
-------------- next part --------------
A non-text attachment was scrubbed...
Name: intrarefresh_bug.jpg
Type: image/jpeg
Size: 51254 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/x264-devel/attachments/20130722/db0e9c48/attachment-0001.jpg>


More information about the x264-devel mailing list