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

H.264 UMC decoder problem

Purvin_Pandit
Beginner
714 Views
I have a H.264 bitstream generated by an encoder which canot be decoded by UMC decoder. I am not sure exactly why its failing. I can decode the bitstream with ffmpeg, vlc, JM decoder andVega analyzer.

I have attached the ES. I have also attached the debug trace from the UMC decoder.
0 Kudos
10 Replies
Vladimir_Dudnik
Employee
714 Views
Thanks, we will look at it. Just to be clear, did you try the latest version of IPP for yout test?

Regards,
Vladimir
0 Kudos
Purvin_Pandit
Beginner
714 Views

Yes I have the latest IPP. Also the bitstream isa network capture so initially it will not start with IDR or SPS, PPS etc.

0 Kudos
Vladimir_Dudnik
Employee
714 Views
That might the root cause. UMC expect correctly formed stream.
0 Kudos
Purvin_Pandit
Beginner
714 Views
I dont think that is the problem. I have other bitstreams which do not start with IDR, SPS, PPS and UMC can decode them just fine.
0 Kudos
Chao_Y_Intel
Moderator
714 Views

Hello,

From the error log, it showed that you are using a MPEG TS splitter. The attached file looks to be a raw H.264 file. Anything missed here?

Also I tried with FFMPEG, it looks this stream contains many invalid data. See attached file.

Thanks,
Chao

0 Kudos
Purvin_Pandit
Beginner
714 Views
Hi Chao

(1) The error log is from the same bitstream I have attached and not from a MPEG-2 TS. I enableddebugging in UMC and that is the debug log message I see.

(2) Yes there are many error messages from ffmepeg but it can eventually start decoding. As I mentioned, this is a network capture so a decoder is bound to receive some invalid data initiallly until it can find an SPS/PPS/IDR. And UMC does decode some of my network captures correctly in other cases.

Did you try to decode the attachedbitstream with UMC?

Thanks,
-Purvin
0 Kudos
Purvin_Pandit
Beginner
714 Views
Hi Vladimir, Chao

Any update? Did any of you have a chance to try the bitstream?

Thanks,
-Purvin
0 Kudos
Purvin_Pandit
Beginner
714 Views
Ok I think I have found the problem.

The problem is that the UMC decoder (for some reason)allowsonly the 1st 14 (0- 13)values for the aspec ratio as specified in Table E-1 of the spec:

const Ipp16u H264ParsingCore::AspectRatio[14][2] = {

{ 1, 1}, { 1, 1}, {12, 11}, {10, 11}, {16, 11}, {40, 33}, { 24, 11},

{20, 11}, {32, 11}, {80, 33}, {18, 11}, {15, 11}, {64, 33}, {160, 99},

};

The bitstream that I have attached has the syntax set to 14 which is considered an invalid bitstream by UMC decoder. I do not know why the values 14, 15 and 16 are not supported but simply extending the array and setting the right values as below fixes the problem.

const Ipp16u H264ParsingCore::AspectRatio[17][2] = {

{ 1, 1}, { 1, 1}, {12, 11}, {10, 11}, {16, 11}, {40, 33}, { 24, 11},

{20, 11}, {32, 11}, {80, 33}, {18, 11}, {15, 11}, {64, 33}, {160, 99},

{4, 3}, {3, 2}, {2, 1}

};

Thanks,
-Purvin

0 Kudos
Chao_Y_Intel
Moderator
714 Views

Purvin,

Thanks for the update. I escalated the owner for the fix in the future release.

Thanks,
Chao

0 Kudos
Chao_Y_Intel
Moderator
713 Views

Purvin,

The fix has been included into 7.0.2 release. thanks for your report.

Regards,
Chao

0 Kudos
Reply