iMX6DL IPU 1080p green lines

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

iMX6DL IPU 1080p green lines

2,479 次查看
chrisroed
Contributor IV

I have a program that will capture camera frames at 1080p UYVY, use the IPU to convert to YUV420.

I have noticed that if I have the IPU output 1080p, there are green lines in the image.  If I use the IPU to do color conversion AND I downscale the image to 720p, there are no green lines.

See attached image for an example of the 1080p green lines.  There's one right in the middle and one way down at the bottom.

pastedImage_1.png

Any suggestions on how to fix this would be appreciated.

0 项奖励
回复
5 回复数

2,139 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Chris

for camera capture and conversion examples one can look at below links which

may be helpful:

ipu-examples release notes - v0.1 

iMX6DQ ISL79985/79987 MIPI CSI2 CVBS camera surround view solution for Linux BSP 

mxc_v4l2_test\test - imx-test - i.MX Driver Test Application Software 

sect.7.3.15 Video conversion attached Linux Guide from Linux L4.14.98_2.0.0 Documentation

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复

2,139 次查看
chrisroed
Contributor IV

Thank you for the response.  I recently discussed this with a colleague who informed me that he had adjusted the calculations in the linux/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c folder.    I reverted the changes back to the orignal code but ended up with a different green bar.  

Also, I took the ipu examples you linked above and modified the csc to do my color conversion at 1080p and 720p.  You can see that there is a green bar on the right side of my 1080p image which is not present in the 720p image.  Since this green bar was in a different orientation with the the modified ipu_calc_stripes_sizes.c code, I'm left with the assumption that the stripe sizes aren't calculated correctly for 1080p.

1080p

pastedImage_1.jpg

720p

pastedImage_2.jpg

For the record, I captured the image using gstreamer

$GST_DEBUG=2 gst-launch-1.0 imxv4l2src num-buffers=1 ! filesink location="/home/root/test.uyvy422"

I will also attach the modified csc example that I used to do this conversion.

EDIT:  Also worth noting, when I use gstreamer to capture a video at 1080p there are no green bars

$gst-launch-1.0 imxv4l2src num-buffers=30 ! queue ! imxvideoconvert_ipu ! vpuenc_h264 ! queue ! flvmux ! filesink location="encoded.mp4"

0 项奖励
回复

2,139 次查看
igorpadykov
NXP Employee
NXP Employee

if issue appears only for 1080p, this may point to processor

internal buses bandwidth limitation, one can try to decrease fps or change

IPU QoS with i.MX6Q IOMUXC_GPR6, also check About MMDC Profiling Tool for i.MX6 

Best regards
igor

0 项奖励
回复

2,139 次查看
chrisroed
Contributor IV

Regarding the imx internal bandwidth limitation... When I use gstreamer as outlined above, I get a perfect video.  Also, the tests that modified only converts 1 frame, so I don't believe that lowering the FPS will affect it.

0 项奖励
回复

2,139 次查看
chrisroed
Contributor IV

Made a discovery:  gstreamer prefers the NV12 color format over the I420 color format.  When I force gstreamer to do I420 the green bars are back. 

I modified my csc_ex2 code to output NV12 and the green bar is gone.  There seems to be an error in the IPU conversion for YUV420 at 1080p.

0 项奖励
回复