Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6704 Discussions

is there any error concealment algoriths available for Mpeg 1/2/ & h264 decoders in ipp sample code

mehrotra_kk
Beginner
297 Views
Hi,
I am using intel ipp sample code and libraries to decode a mpeg1 clip which has error. I found that ipp decoder decodes it with corruptions. I checked the same clip with other players like VLC version 1.1.7 and it can play well. it looks like thevlc which uses ffmpeg decoder has anerror concealment algorithm whichmakes decoded o/p look good even though input has a corrupted bitstream. Do you have any plans to integrate the error concealment algo into ipp decoders.


regards
abhishek
0 Kudos
6 Replies
mehrotra_kk
Beginner
297 Views
I would really appreciate a quick info on above query.


thanks
abhishek
0 Kudos
Chao_Y_Intel
Moderator
297 Views

Hi abhishek,

Basically, the decoder will try to find some error at bitstream, and also tries to substitute invalid area by copying from reference frame. But it does not have sophisticated error concealment algorithm on it.

We tracked this request on futureimprovement, but at this moment, still no schedule on when to add the feature.

Thanks,
Chao

0 Kudos
mehrotra_kk
Beginner
297 Views
Hi chao,
thanks for the quick one. really appreciate the help


abhishek
0 Kudos
mehrotra_kk
Beginner
297 Views
Hi chao,
can you please tell me the piece of code where this error checking and error MB replacement in done in mpeg 1 / 2 decoder code.

regards
Abhishek
0 Kudos
mehrotra_kk
Beginner
297 Views
anyone there with an answer for my query above??

regards
abhishek
0 Kudos
Chao_Y_Intel
Moderator
297 Views

Hi abhishek,

Most of the recovery code are actually related to h.264 decoder. You can find the following function in H.264 decoder, and related function calls to this functions.

RestoreErrorRect(Ipp32s startMb, Ipp32s endMb, H264Slice * pSlice).

For MPEG2/1, no similar work. If you want to work on some improvement, I think you can start from the MPEG2VideoDecoderBase::DecodePicture() funciton, and if the decoder find some error, you can add some recovery code.

Thanks,
Chao

0 Kudos
Reply