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

UMC::H264Decoder problem (corrupted images) in IPP 7.0

scandinaf
Beginner
549 Views
Hi,

Recently our company decided to upgrade IPP library used in our project from 6.1.5 to 7.0.2 version. In most cases we were able to resolve code conflicts and other troubles, but we still have one headache: H264 decoder. We use it for decompression video frames coming from IP and analog cameras which provide video frames in H264 format. We don't have any problems with our IP cameras, i.e. images look correct. But it seems that H264 frames coming from analog cameras cannot be decoded correctly. We didn't change anything in our system except to IPP library codes and binaries. At the same time everything works fine with IPP 6.1 compared to IPP 7.0 where might be problems with H264. We also have noticed that h264 UMC decoder has been significantly changed since IPP 6.1.

Our video stream is displayed in the following way:
- sometimes correct image is shown (i.e. decoding seems to be correct)
- in most cases image with many gray rectangles is shown (see attachments)

Has anybody faced the same problem?

P.S. Attached archive contains H264 720x576 image sequence that we get from camera. Attached images show how corrupted frames look like. There is also example of correct image that appears from time to time.
0 Kudos
9 Replies
Chao_Y_Intel
Moderator
549 Views

Hello,

Could you please provide some more information on the problem, does the problem happen on
Winddows or Linux?
32 bit, or Intel 64 bit?

Also, for the attached H264_720x576_Frames.zIP, is this a raw H.264 video? I could not open it with some decoders?

Have you tried to use simpleplayer application to decoder the video, and see any problem?

Thanks,
Chao

0 Kudos
scandinaf
Beginner
549 Views
Hi,

The platform is Windows and we use 32 bit version of Intel IPP library.

It seems that we deal with raw H264 (Baseline) frames. I will try to compile and use simple player and give you more information a little bit later on.
Baseline
0 Kudos
scandinaf
Beginner
549 Views
Additional information: the problem exists just for 720x576 resolution. There are no problems with smaller resolutions.
0 Kudos
scandinaf
Beginner
549 Views
Hi,

Actually I do the same things but simple_player gives just empty output file and does not print any errors. It just prints information about h264 stream (see previous messages). I tried to use simple_player app on Windows 7 (64 bit) and WinXP (32 bit), but no success. Also one more thing: umc_h264_decoder.. application fails with error: "Video Decoder creation failed" with any h264 bit stream. What is worng with these test applications?

By the way, bitstream.h264 file contains about 100 frames. Have you been able to decode all of them? It seems that you just decoded one frame. As I said in previous messages there are no problems with intra frames, but P frames are not decoded correctly. So it makes sense to decode whole h264 bit stream and get video track which duration may be 10 seconds if frame rate is set to 10 fps.
0 Kudos
Chao_Y_Intel
Moderator
549 Views

Hi,

I can decode 95 frames. I also attached simpleplayer applicatin there:

http://software.intel.com/file/35628

see if it works for your there. It looks that the video contains some invalid data.

Some data is ignored by the decoder. I also run with FFMPEG, and many errors report at the beginning of the video stream:

>ffmpeg.exe -i bitstream.h264 out.yuv

FFmpeg version SVN-r15625, Copyright (c) 2000-2008 Fabrice Bellard, et al.

configuration: --enable-memalign-hack --enable-postproc --enable-swscale --en

ble-gpl --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame -

enable-libvorbis --enable-libtheora --enable-libx264 --enable-libxvid --disable

ffserver --disable-vhook --enable-avisynth --enable-pthreads

libavutil 49.12. 0 / 49.12. 0

libavcodec 52. 0. 0 / 52. 0. 0

libavformat 52.22. 1 / 52.22. 1

libavdevice 52. 1. 0 / 52. 1. 0

libswscale 0. 6. 1 / 0. 6. 1

libpostproc 51. 2. 0 / 51. 2. 0

built on Oct 16 2008 05:40:02, gcc: 4.2.4 (TDM-1 for MinGW)

[h264 @ 003FB810]non-existing PPS referenced

[h264 @ 003FB810]decode_slice_header error

[h264 @ 003FB810]no frame!

[h264 @ 003FB810]non-existing PPS referenced

[h264 @ 003FB810]decode_slice_header error

[h264 @ 003FB810]no frame!

[h264 @ 003FB810]non-existing PPS referenced

[h264 @ 003FB810]decode_slice_header error

[h264 @ 003FB810]no frame!

[h264 @ 003FB810]non-existing PPS referenced

[h264 @ 003FB810]decode_slice_header error

[h264 @ 003FB810]no frame!

.....

Thanks,

Chao

0 Kudos
scandinaf
Beginner
549 Views
Hi,

Yes, it works for me and decodes h264 bit stream correctly. Is my understanding correct that you have attached simple_player application based on IPP 7.0.2 codes and UMC samples?

Yes, I also saw error messages from FFMpeg. But actually nothing has changed in terms of images source - we use the same capture card as we used to do. IPP 6.1.5 library and samples were able to cope with these errors.
0 Kudos
Chao_Y_Intel
Moderator
549 Views

Hi,

I used the latest 7.0.3 sample code. If possible, can you check the latest release sample, and see how it works?

I also run the simpleplayer in 6.x sample, it also decoded 95 frames. For the bitstream that contains the error data, the decoder will try to decode as much as possible, it may pass some unknown/invalid data.

Thanks,

Chao

0 Kudos
scandinaf
Beginner
549 Views
Thank you. We have rebuilt simple_player based on IPP 7.0.3 and it also works correctly. It seems that something is wrong in our codes - I mean h264 decoder adjustment. So, I need to investigate it more deeply.
0 Kudos
scandinaf
Beginner
549 Views
Thank you. We have rebuilt simple_player based on IPP 7.0.3 and it also works correctly. It seems that something is wrong in our codes - I mean h264 decoder adjustment. So, I need to investigate it more deeply.
0 Kudos
Reply