RK3588 MIPIRX接收RGB888/RGB565/RGB666调试

这篇文章分享一下使用RK3588平台,通过MIPI接口接收RGB数据的调试经验。

(1)前言

RK3588的MIPIRX一般用于MIPI摄像头的场景,但也有HDMIIN或者DPIN等需求,可以使用转接芯片将HDMI转成MIPI或者DP信号转化成MIPI给RK3588的MIPIRX接口,实现HDMIIN的功能,在camera的场景比较常用的是RAW数据输入或者YUV422的输入,转接芯片场景一般使用YUV422的格式,但是如果源端的图像是RGB888,转接芯片将其转换成YUV422给到RK3588,存在下采样的过程,有可能会造成UV颜色的丢失,导致一些色偏的问题,对一些色彩画质要求比较高的应用不太友好,因此需要考虑RGB源端输入给转接芯片,转接芯片直接BYPASS给到RK3588,RK3588是否可以接收图像数据。

(2)RK3588 MIPIRX支持能力

RK3588的VICAP模块支持图像存储,因为不是raw数据,无需经过ISP处理,因此直接使用VICAP模块存储图像数据即可,VICAP规格支持如下所示:

从上述可以看到RK3588的VICAP不支持RGB888的输入,但是在软件处理上,可以将其当做RAW8来接收存储,只是输出上也就只能BYPASS,不可以做转换或者reorder的操作。

(3)驱动适配和DTS配置

①转接芯片驱动适配

转接芯片或者sensor的驱动,可以参考其他的sensor驱动,基于V4L2的框架实现,主要关注重点:

1)格式配置

图像格式配置如下,RGB888需要配置成MEDIA_BUS_FMT_RGB888_1X24,这里注意的是CSI格式一般是BGR,DSI才是RGB。

2)lane数配置:

3)MIPI CLK配置:

②MIPI-CSI配置

这里需要注意的是RK3588的MIPI-CSI HOST自带了DSI的功能,因此支持接收DSI的数据,因此需要区分是DSI还是CSI的模式。不同的模式需要设置不同的配置:

③VICAP配置

1)data type

VICAP驱动配置中,主要需要注意DSI或者CSI,DSI 对应的data type需要进行区分配置,在VICAP驱动如下进行配置:

2)buf大小,虚宽等配置:

按照RAW8来配置:

(3)抓图调试

调试命令,使用如下调试命令可以抓取RGB888 的图像,可以使用7YUV等软件进行预览。

v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat='RGB3' --stream-mmap=4

猜你喜欢

转载自blog.csdn.net/qq_34341546/article/details/132740761