RkAiq模块是一个用于图像质量优化和处理的库,通常用于图像信号处理(ISP)框架中,特别是在摄像头应用中。RkAiq代表"Rockchip AI Image Quality",它由Rockchip开发,旨在利用人工智能和先进的算法来提升图像质量。
概述
ISP30 包含了一系列的图像处理算法模块,主要包括:暗电流矫正、坏点矫正、3A、HDR、镜头阴影矫
正、镜头畸变矫正、3DLUT、去噪(包括RAW域去噪,多帧降噪,颜色去噪等)、锐化等。
ISP30包括硬件算法实现及软件逻辑控制部分,RkAiq即为软件逻辑控制部分的实现。
RkAiq软件模块主要实现的功能为:从ISP驱动获取图像统计,结合IQ Tuning参数,使用一系列算法计
算出新的ISP、Sensor等硬件参数,不断迭代该过程,最终达到最优的图像效果。
功能描述
ISP30总体软硬件框图如图1-1所示。Sensor输出数据流给ISP HW,ISP HW再输出经过一系列图像处理
算法后的图像。RkAiq不断从ISP HW获取统计数据,并经过3A等算法生成新的参数反馈给各硬件模块。
Tuning tool可在线实时调试参数,调试好后可保存生成新的iq参数文件。
RkAiq架构
ISP30 RkAiq软件设计思路如图1-2所示。主要分成以下四个部分:
1. RkAiq lib 动态库。该库包含了主要的逻辑部分,负责从驱动获取统计,并传送给各个 算法库。
2. Integrated algo libs。Rk提供的静态算法库,已默认注册到RkAiq lib动态库。
3. customer 3A libs。客户可根据算法库接口定义实现自己的3A算法库,或者其他算法库。将自定义
算法库注册给RkAiq lib动态库后,可根据提供的接口选择跑自定义库还是跑Rk库。
4. IQ fie。iq tuning结果文件,保存的是算法相关参数以及CIS等一些系统静态参数
软件架构
ISP30 软件框图如图1-3所示。主要分成以下三层:
1. kernel layer。该层包含所有Camera系统的硬件驱动,主要有ISP驱动、sensor驱动、vcm驱动、
flashlight驱动、IrCutter驱动等等。驱动都基于V4L2及Media框架实现。
2. framework layer。该层为RkAiq lib的集成层,Rkaiq lib有两种集成方式:
IspServer 方式
该方式Rkaiq lib跑在 IspServer独立进程,客户端通过dbus与之通信。此外,该方方式可为v4l-ctl等
现有第三方应用,在不修改源码的情况下,提供具有ISP调试效果的图像。
直接集成方式
RkAiq lib可直接集成进应用。
3. user layer。用户应用层。
软件流程
图1-4 流程图
RkAiq接口调用流程如图1-4所示。图中虚线框部分为可选部分,蓝色字体部分为应用需要配合RkAiq流
程所作的配置。
configure media pipeline。可选项,配置ISP30 pipeline,如sensor输出分辨率等等,驱动已有
默认配置。
rk_aiq_uapi2_sysctl_init。初始化RkAiq,包括IQ tuning参数及各算法库初始化。
other Aiq or algo params uapis。可选项,可通过各算法提供的API接口配置需要的参数,以及注
册第三方算法库等等。
rk_aiq_uapi2_sysctl_prepare。准备各算法库及各硬件模块的初始化参数,并设置到驱动。
video capture start。该流程为应用端ISP数据流的开启,该流程需要在
rk_aiq_uapi2_sysctl_prepare后调用。
rk_aiq_uapi2_sysctl_start。启动RkAiq内部流程,该接口调用成功后,sensor开始输出数据,ISP
开始处理数据,并输出处理后的图像。
Rkaiq running。RkAiq不断从ISP驱动获取统计数据,调用3A等算法计算新参数,并应用新参数到
驱动。
PC Online Tuning Tool。PC端可通过Tuning Tool在线调整参数。
video capture stop。停止RkAiq流程前需要先停止数据流部分。
rk_aiq_uapi2_sysctl_stop。停止 RkAiq running 流程。可调整参数后再启动或者直接再启动。
rk_aiq_uapi2_sysctl_deinit。反初始化RkAiq。
标签:lib,Auto,Image,ISP,算法,参数,RkAiq,驱动 From: https://blog.csdn.net/qq_54089476/article/details/140665032