使用imx8m plus驱动smartsens sc130gs raw格式摄像头

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

使用imx8m plus驱动smartsens sc130gs raw格式摄像头

Jump to solution
1,865 Views
Versenkt
Contributor II

各位好

在开发相机驱动时,我遇到了如下问题:

相机cmos配置为raw 8bit 320x240 10fps mipi csi 1lane 144M速率(时钟信号频率72M)

imx8mp配置为csi_1 ->isi_1,BSP版本为6.1.55。

一开始,由于和CMOS厂家沟通问题,以为传感器输出的是RGB 8bit格式,于是在驱动程序中,将link freq设为72M,pixel rate计算为72M * 2 / 24 * 1,格式设置为MEDIA_BUS_FMT_RBG888_1X24。

预览图像使用gst-launch-1.0 v4l2src device=/dev/video2 ! 'video/x-raw,format=YUY2,width=320,height=240,framerate=10/1' ! autovideosink,结果输出的是上方缩小的,重复了三次的图像,而下方是全绿色。

Versenkt_0-1715843094704.png

 

后来得知是RAW数据格式后,在社区中看到了这篇帖子:https://community.nxp.com/t5/i-MX-Processors/%E5%85%B3%E4%BA%8E%E5%87%BA%E6%B5%81/m-p/1724275

我按照patch的内容,手动修改了部分isi驱动的源码,并将传感器驱动修改为:pixel rate计算为72M * 2 / 8 * 1,格式设置为MEDIA_BUS_FMT_SBGGR8_1X8。但这样修改之后,预览输出变成了全是绿色,没有有效图像,且使用gstreamer预览命令经常卡住,不出现正常输出时的时间进度,预览界面也没有出现。

卡住时的命令行(请无视分辨率,我尝试将本该消隐的部分显示出来,正常设置为320x240时也一样):

Versenkt_1-1715843663289.png

有输出时的命令行:

Versenkt_2-1715843757351.png

 

请问这可能是那里的问题?最新的BSP要支持RAW格式,还需要做哪些工作?

比较疑惑的地方是,raw8格式被以rgb8格式解码后,会变成图1那样的现象吗?我针对RGB8和RAW8计算的pixel rate是否正确?

@Zhiming_Liu 看到您在链接的帖子中的答复,请问针对我的问题您是否有相关经验?

Tags (1)
0 Kudos
Reply
1 Solution
1,817 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @Versenkt 

请把 imx8-mipi-csi2-sam.c的修改也加上去,再试试。不要忽略那个补丁的内容,默认这个文件就是会被编译进去的。

Zhiming_Liu_0-1716195175647.png

 

View solution in original post

0 Kudos
Reply
2 Replies
1,818 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @Versenkt 

请把 imx8-mipi-csi2-sam.c的修改也加上去,再试试。不要忽略那个补丁的内容,默认这个文件就是会被编译进去的。

Zhiming_Liu_0-1716195175647.png

 

0 Kudos
Reply
1,815 Views
Versenkt
Contributor II
感谢回复,实际上我似乎已经能够用修改后的驱动取得正确的图像了:v4l2-ctl --stream-mmap --stream-count=1 -d /dev/video2 --set-fmt-video=width=320,height=240,pixelformat='BA81' --stream-to=output22.yuv,然后使用yuv7软件设置为8bpp格式,得到了正常的,不重复扭曲且完整的一帧图像,之前我pixelformat还是填的YUYV。请问gstreamer是否能够实时预览raw8的视频流?我直接使用gst-launch-1.0 v4l2src device=/dev/video2 ! 'video/x-raw,width=320,height=240,framerate=10/1' ! autovideosink来预览的话,会输出input format rgb4, output fmt YUYV,然后卡住没了动静
0 Kudos
Reply