[x265] Issue #546: Periodic Intra Refresh (PIR) - poor error recovery after NAL unit erasure (multicoreware/x265)

Guy Dorman issues-reply at bitbucket.org
Mon May 4 16:16:34 CEST 2020


New issue 546: Periodic Intra Refresh (PIR) - poor error recovery after NAL unit erasure
https://bitbucket.org/multicoreware/x265/issues/546/periodic-intra-refresh-pir-poor-error

Guy Dorman:

Hello,

I am working with periodic intra refresh mode \(--intra-refresh\). I am testing the error recovery of the encoded bit stream after erasing a single NAL unit and I try to decode the erroneous bit stream. I tried several H.265 decoders and all have a problem to recover from the missing NAL unit in reasonable time \(I expect recovery to be complete after a PIR cycle but it takes much longer\). I made some debug and I think I understand the problems \(at the encoder\):

1. On the vertical intra refresh bar, the encoder allows to use intra prediction modes larger than 26 \(vertical prediction\). This means that for these CU’s, the encoder takes pixels for intra prediction which are from top-right of the current CU – at the decoder side, these pixels might be “dirty” \(different from the encoder\) due to the missing NAL unit.
2. Inter predicted CU’s to the left side of the refresh intra bar should not do motion search and use pixels from the refresh intra bar \(since these pixels might be dirty\). Using a video analyzer, I do see CU’s adjacent to the intra refresh bar and that have MV’s pointing to the left \(this means they use dirty pixels as prediction\).

Is there a way to limit the encoder as follows:?

For CU’s on the intra refresh bar, limit the PM’s to be lower than 27.

For CU’s on the left side of the intra refresh bar, limit motion search such that it wont pickup prediction pixels from the refresh bar \(I noticed that the encoder includes this limitation in Search::setSearchRange\(\) but effectively, using a video analyzer, I see it has no effect\).

Thanks,

Guy




More information about the x265-devel mailing list