在iMX8上使用MIPI-CSI摄像头
- 关键词:iMX8,MIPI-CSI,摄像头
- 作者:By Toradex胡珊逢
- 摘要:NXP i.MX8QM/QP 处理器能够支持 2 路 4 lane 的 MIPI CSI-2 输入,每路最高为 4K@30 分辨率。文章接下来将使用 Apalis iMX8QM 计算机模块配合 e-con 提供的 MIPI CSI-2 摄像头 AR0521 进行演示。
NXP i.MX8QM/QP 处理器能够支持 2 路 4 lane 的 MIPI CSI-2 输入,每路最高为 4K@30 分辨率。文章接下来将使用 Apalis iMX8QM 计算机模块配合 e-con 提供的 MIPI CSI-2 摄像头 AR0521 进行演示。
E-con MIPI CSI-2 摄像头 AR0521 最高像素 2592 × 1944@28fps,模组集成 ISP。摄像头可以直接连接 Ixora 底板,连接方式如下。线材的卡扣很精密,安装时请小心操作。同时接触摄像头模组前,务必释放上手的静电,如触摸接地设备的金属机壳。
Apalis iMX8QM 的 Linux BSP 对摄像头提供无缝集成,只需简单的设置即可使用。这里我们使用 Toradex 最新的 nightly image。由于摄像头需要使用 gstreamer 组件,tdx-reference-multimedia-image 参考镜像包含了常用多媒体软件,该镜像可以直接用于测试摄像头。使用 Toradex Easy Installer 进行镜像安装。
安装完毕后修改计算机模块上的 /boot/overlays.txt 文件,通过 device tree overlay 启动 AR0521。在 overlays.txt 中添加 apalis-imx8_ar0521_overlay.dtbo。
关闭 tdx-reference-multimedia-image 开机自启动的 Qt 演示程序。
重启后可以看到 AR0521 被正确识别。
l 查看摄像头支持的格式
l 预览摄像头画面
此时可能需要旋转摄像头上镜头进行对焦,直到清晰地看到拍摄物体。
l 录制摄像
可以将 test.avi 视频文件复制到电脑上,使用 mediainfo 命令查看该文件的视频信息。
Gstreamer pipeline 还可以支持 zero-copy 方式处理数据。借助 zero-copy CPU 能够使用一个 element 产生的数据而无需重新复制,从而有效降低 CPU 负荷。使用 io-mode 参数开启 zero-copy,io-mode=dmabuf 会使用硬件 DMA。更多的说明请参考 i.MX 8 GStreamer User Guide。
两种模式下 CPU 占用率从 101.7% 下降到 10.6%。
l 播放视频文件
播放上面录制的 avi 视频文件
l RTP 网络传输
Apalis iMX8QM 作为 RTP 服务器
Ubuntu 电脑作为客户端查看视频。上面的 PC_IP 为电脑的 IP 地址。
总结
本文简要地介绍了在 Apalis iMX8QM 使用 MIPI-CSI 摄像头的方法。不同的摄像头通常需要对应的驱动,并根据摄像头参数调整 gstreamer pipeline 配置,从而实现高效的采集、编解码、传输和存储。