Periodic Intra Refresh (PIR) - poor error recovery after NAL unit erasure

Issue #546 new
Guy Dorman created an issue

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

Comments (0)

  1. Log in to comment