i. MX8QXP VPU decoding H.264 to YUV video format failed! MD5 checksum error!

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i. MX8QXP VPU decoding H.264 to YUV video format failed! MD5 checksum error!

Jump to solution
1,933 Views
DRAVE
Contributor IV

Hi NXP,

    We attempted to convert the h.264 video format to YUV420 video format using the mxc-v4l2-vpu_dec.out tool on i.MX8QXP Linux. Then use md5sum to verify if the conversion is correct.

    We have found that some md5sum values are incorrect, indicating a problem with the conversion format. We can obtain the correct MD5 checksum by using ffmpeg soft decoding.

VPU decoding command: /unit_tests/V4L2_VPU/mxc_v4l2_vpu_dec.out ifile CAMASL3_Sony_B.jsv ifmt 1 ofmt 1 o file output_vpu.yuv

DRAVE_0-1729845562758.png

Ffmpeg decoding command: ffmpeg -i CAMASL3_Sony_B.jsv -pix_fmt yuv420p output_ffmpeg.yuv

DRAVE_1-1729845640988.png

Md5sum command: 

DRAVE_2-1729845859416.png

CAMASL3_Sony_B.yuv is the official correct conversion success file provided. The verification value of the converted yuv file needs to be the same as the CAMASL3_Sony_B.yuv verification value to be correct. Therefore, we can see that VPU decoding fails, while ffmpeg decoding is correct. 

We need to use VPU hard decoding to implement this h.264 to yuv conversion function. Can you help me see what the reason is? Does the VPU driver need to be modified?

Of course, VPU decoding errors are just an isolated case. The correct decoding is shown in the following figure:

DRAVE_3-1729846843218.png

We have some test reports as attached! We found that only the MD5 checksum converted from the scan types of progressive scan is correct for H.264 videos. Can you help me see what problem is causing it? thank you!

h. 264 video source website: https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/AVCv1/

Software version: Yocto Project LF5.15.32_2.0.0

 

 

 

 

0 Kudos
Reply
1 Solution
1,856 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

CAMASL3_Sony_B.jsv is interlace stream;  After decoding,  need some convert  to save correct YUV to file.

And  you used unit test cmd(mxc_v4l2_vpu_dec.out) is very old should use  below application(mxc_v4l2_vpu_enc.out):

 

mxc_v4l2_vpu_enc.out \

    parser --key 0 --name CAMASL3_Sony_B.jsv --fmt h264 \

    decoder --key 1 --source 0 \

    convert --key 2 --source 1 --fmt I420 \

    ofile --key 3 --source 2 --name output.dec.yuv 

 

And MD5 result is correct as expected.

Regards

View solution in original post

0 Kudos
Reply
7 Replies
1,932 Views
DRAVE
Contributor IV

The test document is shown in the attachment

Tags (1)
0 Kudos
Reply
1,857 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

CAMASL3_Sony_B.jsv is interlace stream;  After decoding,  need some convert  to save correct YUV to file.

And  you used unit test cmd(mxc_v4l2_vpu_dec.out) is very old should use  below application(mxc_v4l2_vpu_enc.out):

 

mxc_v4l2_vpu_enc.out \

    parser --key 0 --name CAMASL3_Sony_B.jsv --fmt h264 \

    decoder --key 1 --source 0 \

    convert --key 2 --source 1 --fmt I420 \

    ofile --key 3 --source 2 --name output.dec.yuv 

 

And MD5 result is correct as expected.

Regards

0 Kudos
Reply
1,847 Views
DRAVE
Contributor IV

HI @Bio_TICFSL 

Thank you for your reply! I can successfully complete the conversion of CAMASL3_Sony_B.jsv using mxc_v4l2_vpu_enc.out. Now I have encountered a new problem, can you help me analyze it? I have failed to convert FM_2SVA_C.264 and FM1_BT_SB.h264 using mxc-v4l2-vpu-enc.out and ffmpeg.

mxc_v4l2_vpu_enc.out :

DRAVE_2-1730345869309.png

Ctrl+c:

DRAVE_3-1730345983770.png

Ffmpeg:

DRAVE_1-1730345103790.png

The video file is shown in the attachment.  Thank you very much!  

 

0 Kudos
Reply
1,815 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi,

That FM2_SVA_C.264 and FM1_BT_B.h264 is base profile, and using FMO.

And 8QXP decoder support is "H.264 AVC Constrained Baseline, Main and High profile".

So 8QXP decoder not support "FMO" which belong to base profile feature.

Regards

0 Kudos
Reply
1,528 Views
DRAVE
Contributor IV

Hi @Bio_TICFSL 

All log files are attached.

Tags (1)
0 Kudos
Reply
1,531 Views
DRAVE
Contributor IV

Hi @Bio_TICFSL 

We have encountered several more failures using the md5sum tool. We used the mxc_v4l2_vpu_enc.out tool to decode successfully, but the MD5 check failed!

mxc_v4l2_vpu_enc.out decode successfully:

/unit_tests/V4L2_VPU/mxc_v4l2_vpu_enc.out \

 parser --key 0 --name sp2_bt_b.h264 --fmt h264 \

decoder --key 1 --source 0 \

 convert --key 2 --source 1 --fmt I420 \

ofile --key 3 --source 2 --name output.dec.yuv

DRAVE_0-1732602171597.png

MD5 failed:

DRAVE_1-1732602288607.png

The following videos all have the same problem:

sp2_bt_b.zip
SP1_BT_A.zip

MR4_TANDBERG_C.zip

MR5_TANDBERG_C.zip

FM1_FT_E.zip

CVFC1_Sony_C.zip

h. 264 video source website: https://www.itu.int/wftp3/av-arch/jvt-site/draft_conformance/AVCv1/

Software version: Yocto Project LF5.15.32_2.0.0

Could you please help me see the cause of the problem?  Thank you very much!

 

Tags (1)
0 Kudos
Reply
1,510 Views
DRAVE
Contributor IV

Hi @Bio_TICFSL 

I found that the profile for SP1_BT_A.zip and sp2_bt_b.zip are Extended profile. this is SOC not supported.

But MR5_TANDBERG_C.zip, MR5_TANDBERG_C.zip, FM1_FT_E.zip are Baseline profile. Is SOC supported?

And CVFC1_Sony_C.zip is the Constrained Baseline Profile, which is supported by this SOC.

The configuration is shown in the following figure:

DRAVE_0-1732611115368.pngDRAVE_1-1732611237164.png