本应用报告介绍了以下工作流程,即为原始摄像头调优 TI AM6xA 视觉处理器系列上的 ISP,以获得尽可能最佳的图像质量。本报告中提供的调优过程在 AM62A 入门套件 EVM 上结合使用 IMX219 传感器(仅 RGB)和 OX05B1S 传感器 (RGB-IR)。
Linux®is a reg TM ofLinus Torvalds.
Python®is a reg TM ofPython Software Foundation.
Microsoft® and Windows®are reg TMs ofMicrosoft Corporation.
Other TMs
AM6xA 视觉处理器具有硬件加速图像信号处理器 (ISP),也称为视觉预处理加速器 (VPAC)。VPAC 具有可配置的图像处理参数,旨在支持各种原始摄像头模块(典型的原始摄像头模块包括镜头、滤镜、原始图像传感器,有时还包括串行器)。为了在运行时获得特定原始摄像头模块的最佳图像质量,需要计算 VPAC 的参数,然后利用这些参数来逐帧处理原始传感器图像。为了实现这一点,工程师通常会在成像实验室的各种受控照明条件下准备合适的 VPAC 参数。然后在运行时,借助自动曝光 (AE)、自动白平衡 (AWB) 和动态 ISP 参数控制的软件成像算法,参考准备好的参数并通过插值来适应运行时照明环境。在成像实验室中准备合适的 VPAC 参数的过程在本应用报告中称为 ISP 调优。
本报告中所述的 ISP 调优过程适用于 AM6xA 视觉处理器系列中的所有 SoC,包括 AM62A、AM68A 和 AM69A。报告中提供了多个使用 AM62A 入门套件 EVM 的示例。
有关特定片上系统 (SoC) 上 ISP (VPAC) 的技术详细信息,请参阅该 SoC 的技术参考手册 (TRM)。
AM6xA 系列 SoC 上的 ISP (VPAC) 通过动态摄像头配置 (DCC) 二进制文件进行配置。在基于 Linux® 的应用程序中,这些二进制文件通过常用的 GStreamer 流水线提供给 VPAC。VPAC 的处理块由 GStreamer 流水线元素(tiovxisp、tiovxldc 和 tiovxmultiscaler)封装,而 VPAC 的所有可配置参数都作为属性提供。
例如,以下 GStreamer 流水线将视频从 IMX219 摄像头流式传输到高清多媒体接口 (HDMI) 显示屏,并会在发送到显示屏前使用 VPAC 处理原始图像:
gst-launch-1.0 v4l2src device=/dev/video-imx219-cam0 io-mode=dmabuf-import ! \
video/x-bayer, width=1920, height=1080, framerate=30/1, format=rggb10 ! \
tiovxisp sink_0::device=/dev/v4l-imx219-subdev0 \
sensor-name="SENSOR_SONY_IMX219_RPI" \
dcc-isp-file=/opt/imaging/imx219/dcc_viss_10b.bin \
sink_0::dcc-2a-file=/opt/imaging/imx219/dcc_2a_10b.bin format-msb=9 ! \
video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! \
kmssink driver-name=tidss sync=false
在上面的流水线中,GStreamer 元素 tiovxisp 连接 VPAC 硬件和 TI 用于 AE 和 AWB (2A) 以及 ISP 参数控制成像算法的参考软件。IMX219 的 VPAC 配置通过以下两个二进制文件提供,这两个文件属于 tiovxisp 的属性:
这些二进制文件是 ISP 调优的输出,也称为动态摄像头配置 (DCC) 配置文件。
概括而言,AM6xA ISP 调优过程包括以下步骤(以 TI 的参考成像软件和调优工具为例):
本应用手册使用 AM62A 入门套件 EVM 以及 IMX219 摄像头和 OX05B1S 摄像头来演示上述调优步骤。调优的原理和过程适用于任何定制板和原始摄像头。
对原始摄像头执行 ISP 调优所需的硬件设备包括: