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
Ffmpeg decoding command: ffmpeg -i CAMASL3_Sony_B.jsv -pix_fmt yuv420p output_ffmpeg.yuv
Md5sum command:
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:
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
Solved! Go to Solution.
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
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
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 :
Ctrl+c:
Ffmpeg:
The video file is shown in the attachment. Thank you very much!
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
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
MD5 failed:
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!
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: