H.264 UMC decoder problem

H.264 UMC decoder problem

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.

11 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Thanks, we will look at it. Just to be clear, did you try the latest version of IPP for yout test?

Regards,
Vladimir

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

That might the root cause. UMC expect correctly formed stream.

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.

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

Attachments: 

AttachmentSize
Download out.txt16.09 KB

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

Hi Vladimir, Chao

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

Thanks,
-Purvin

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

Purvin,

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

Thanks,
Chao

Purvin,

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

Regards,
Chao

Login to leave a comment.