2.13.8. V4L2_META_FMT_RK_ISP1_PARAMS (‘rk1p’),V4L2_META_FMT_RK_ISP1_STAT_3A (‘rk1s’),V4L2_META_FMT_RK_ISP1_EXT_PARAMS (‘rk1e’)¶
2.13.8.1. 配置参数¶
RkISP1 ISP的配置由用户空间执行,通过使用v4l2_meta_format
接口向驱动程序提供ISP的参数。
有两种方法可以配置ISP,固定参数配置格式和可扩展参数配置格式。
2.13.8.1.1. 固定参数配置格式¶
当使用固定配置格式时,参数通过V4L2_META_FMT_RK_ISP1_PARAMS元格式传递到rkisp1_params元数据输出视频节点。
缓冲区包含C结构rkisp1_params_cfg
的单个实例,该结构在rkisp1-config.h
中定义。 因此,可以通过以下方式从缓冲区中获取该结构:
struct rkisp1_params_cfg *params = (struct rkisp1_params_cfg*) buffer;
此方法仅支持ISP功能的一个子集,新的应用程序应使用可扩展参数方法。
2.13.8.1.2. 可扩展参数配置格式¶
当使用可扩展配置格式时,参数通过V4L2_META_FMT_RK_ISP1_EXT_PARAMS元格式传递到rkisp1_params元数据输出视频节点。
缓冲区包含C结构rkisp1_ext_params_cfg
的单个实例,该结构在rkisp1-config.h
中定义。rkisp1_ext_params_cfg
结构的目的是允许用户空间仅使用它打算配置的ISP块的配置数据来填充数据缓冲区。 可扩展参数格式设计允许开发人员定义新的块类型以支持新的配置参数,并定义一个版本控制方案,以便可以在不破坏与现有应用程序的兼容性的情况下对其进行扩展和版本控制。
由于这些原因,此配置方法优于固定参数格式的替代方案。
2.13.8.2. 3A和直方图统计信息¶
ISP1设备会收集输入Bayer帧的不同统计信息。 这些统计信息是从rkisp1_stats元数据捕获视频节点获得的,使用v4l2_meta_format
接口。 缓冲区包含C结构rkisp1_stat_buffer
的单个实例,该结构在rkisp1-config.h
中定义。 因此,可以通过以下方式从缓冲区中获取该结构:
struct rkisp1_stat_buffer *stats = (struct rkisp1_stat_buffer*) buffer;
收集的统计信息是曝光、AWB(自动白平衡)、直方图和AF(自动对焦)。 有关统计信息的详细信息,请参见rkisp1_stat_buffer
。
此处描述的3A统计信息和配置参数通常由专用的用户空间库使用和生成,这些库组成了使用软件控制回路的重要调整工具。
2.13.8.2.1. rkisp1 uAPI数据类型¶
-
enum rkisp1_cif_isp_version¶
ISP变体
常量
RKISP1_V10
至少在RK3288和RK3399中使用。
RKISP1_V11
在原始供应商代码中声明,但未使用。 网格和直方图中的条目数与v10相同。
RKISP1_V12
至少在RK3326和PX30中使用。
RKISP1_V13
至少在RK1808中使用。 网格和直方图中的条目数与v12相同。
RKISP1_V_IMX8MP
至少在i.MX8MP中使用。 网格和直方图中的条目数与v10相同。
-
enum rkisp1_cif_isp_exp_ctrl_autostop¶
停止模式
常量
RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0
连续测量
RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1
在完整帧后停止测量
-
enum rkisp1_cif_isp_exp_meas_mode¶
曝光测量模式
常量
RKISP1_CIF_ISP_EXP_MEASURING_MODE_0
Y = 16 + 0.25R + 0.5G + 0.1094B
RKISP1_CIF_ISP_EXP_MEASURING_MODE_1
Y = (R + G + B) x (85/256)
-
struct rkisp1_cif_isp_window¶
测量窗口。
定义:
struct rkisp1_cif_isp_window {
__u16 h_offs;
__u16 v_offs;
__u16 h_size;
__u16 v_size;
};
成员
h_offs
窗口与帧左侧的水平偏移量,以像素为单位。
v_offs
窗口与帧顶部的垂直偏移量,以像素为单位。
h_size
窗口的水平大小,以像素为单位
v_size
窗口的垂直大小,以像素为单位。
描述
测量是在帧内的每个窗口中计算的。 此结构表示测量的窗口。
-
struct rkisp1_cif_isp_bls_fixed_val¶
BLS固定减法值
定义:
struct rkisp1_cif_isp_bls_fixed_val {
__s16 r;
__s16 gr;
__s16 gb;
__s16 b;
};
成员
r
Bayer模式R的固定(有符号!)减法值
gr
Bayer模式Gr的固定(有符号!)减法值
gb
Bayer模式Gb的固定(有符号!)减法值
b
Bayer模式B的固定(有符号!)减法值
描述
这些值将从传感器值中减去。 因此,负值表示加法而不是减法!
-
struct rkisp1_cif_isp_bls_config¶
黑电平减法使用的配置
定义:
struct rkisp1_cif_isp_bls_config {
__u8 enable_auto;
__u8 en_windows;
struct rkisp1_cif_isp_window bls_window1;
struct rkisp1_cif_isp_window bls_window2;
__u8 bls_samples;
struct rkisp1_cif_isp_bls_fixed_val fixed_val;
};
成员
enable_auto
激活自动模式表示将减去测量值。 否则,将减去固定的减法值。
en_windows
启用的窗口
bls_window1
测量窗口1大小
bls_window2
测量窗口2大小
bls_samples
将每个Bayer位置(A,B,C和D)的测量像素量设置为2^bls_samples。
fixed_val
固定的减法值
-
struct rkisp1_cif_isp_dpcc_methods_config¶
DPCC方法集配置
定义:
struct rkisp1_cif_isp_dpcc_methods_config {
__u32 method;
__u32 line_thresh;
__u32 line_mad_fac;
__u32 pg_fac;
__u32 rnd_thresh;
__u32 rg_fac;
};
成员
method
方法启用位(RKISP1_CIF_ISP_DPCC_METHODS_SET_*)
line_thresh
行阈值(RKISP1_CIF_ISP_DPCC_LINE_THRESH_*)
line_mad_fac
行平均绝对差因子(RKISP1_CIF_ISP_DPCC_LINE_MAD_FAC_*)
pg_fac
峰值梯度因子(RKISP1_CIF_ISP_DPCC_PG_FAC_*)
rnd_thresh
秩邻域差阈值(RKISP1_CIF_ISP_DPCC_RND_THRESH_*)
rg_fac
秩梯度因子(RKISP1_CIF_ISP_DPCC_RG_FAC_*)
描述
此结构存储DPCC算法的一组方法的配置。 可以在每个集合中选择多种方法(对于绿色和红色/蓝色分量独立),通过method字段,结果是所有已启用方法的逻辑与。 其余字段设置每种方法的阈值和因子。
-
struct rkisp1_cif_isp_dpcc_config¶
DPCC使用的配置
定义:
struct rkisp1_cif_isp_dpcc_config {
__u32 mode;
__u32 output_mode;
__u32 set_use;
struct rkisp1_cif_isp_dpcc_methods_config methods[RKISP1_CIF_ISP_DPCC_METHODS_MAX];
__u32 ro_limits;
__u32 rnd_offs;
};
成员
mode
DPCC模式(RKISP1_CIF_ISP_DPCC_MODE_*)
output_mode
插值输出模式(RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_*)
set_use
方法集选择(RKISP1_CIF_ISP_DPCC_SET_USE_*)
methods
方法集配置
ro_limits
秩顺序限制(RKISP1_CIF_ISP_DPCC_RO_LIMITS_*)
rnd_offs
秩邻域差的微分秩偏移量(RKISP1_CIF_ISP_DPCC_RND_OFFS_*)
描述
缺陷像素簇校正使用的配置。 可以配置三组方法,并通过set_use字段进行选择。 结果是所有已启用集合的逻辑或。
-
struct rkisp1_cif_isp_gamma_corr_curve¶
gamma曲线点定义y轴(输出)。
定义:
struct rkisp1_cif_isp_gamma_corr_curve {
__u16 gamma_y[RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE];
};
成员
gamma_y
gamma曲线点的y轴值。 每个值都是12位。
描述
重置值定义了一条线性曲线,该曲线具有与旁路相同的效果。 重置值为:gamma_y[0] = 0x0000,gamma_y[1] = 0x0100,... gamma_y[15] = 0x0f00,gamma_y[16] = 0xfff
-
struct rkisp1_cif_isp_gamma_curve_x_axis_pnts¶
反Gamma曲线定义x增量(采样点)。 gamma_dx0用于较低的样本(1-8),gamma_dx1用于较高的样本(9-16)。 这两个字段的重置值为0x44444444。 这意味着每个样本在x轴上与前一个样本相距4个单位。
定义:
struct rkisp1_cif_isp_gamma_curve_x_axis_pnts {
__u32 gamma_dx0;
__u32 gamma_dx1;
};
成员
gamma_dx0
gamma曲线采样点定义。 位0:2用于样本1。 位3未使用。 位4:6用于样本2。 位7未使用 ... 位28:30用于样本8。 位31未使用
gamma_dx1
gamma曲线采样点定义。 位0:2用于样本9。 位3未使用。 位4:6用于样本10。 位7未使用 ... 位28:30用于样本16。 位31未使用
-
struct rkisp1_cif_isp_sdg_config¶
传感器反gamma使用的配置
定义:
struct rkisp1_cif_isp_sdg_config {
struct rkisp1_cif_isp_gamma_corr_curve curve_r;
struct rkisp1_cif_isp_gamma_corr_curve curve_g;
struct rkisp1_cif_isp_gamma_corr_curve curve_b;
struct rkisp1_cif_isp_gamma_curve_x_axis_pnts xa_pnts;
};
成员
curve_r
红色gamma曲线点定义轴
curve_g
绿色gamma曲线点定义轴
curve_b
蓝色gamma曲线点定义轴
xa_pnts
x轴增量
-
struct rkisp1_cif_isp_lsc_config¶
镜头阴影校正使用的配置
定义:
struct rkisp1_cif_isp_lsc_config {
__u16 r_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u16 gr_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u16 gb_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u16 b_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
__u16 x_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
__u16 y_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
__u16 x_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
__u16 y_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
__u16 config_width;
__u16 config_height;
};
成员
r_data_tbl
采样表红色
gr_data_tbl
采样表绿色(红色)
gb_data_tbl
采样表绿色(蓝色)
b_data_tbl
采样表蓝色
x_grad_tbl
梯度表x
y_grad_tbl
梯度表y
x_size_tbl
大小表x
y_size_tbl
大小表y
config_width
目前未使用
config_height
目前未使用
-
struct rkisp1_cif_isp_ie_config¶
图像效果使用的配置
定义:
struct rkisp1_cif_isp_ie_config {
__u16 effect;
__u16 color_sel;
__u16 eff_mat_1;
__u16 eff_mat_2;
__u16 eff_mat_3;
__u16 eff_mat_4;
__u16 eff_mat_5;
__u16 eff_tint;
};
成员
effect
来自“enum v4l2_colorfx”的值。 可能的值为:V4L2_COLORFX_SEPIA,V4L2_COLORFX_SET_CBCR,V4L2_COLORFX_AQUA,V4L2_COLORFX_EMBOSS,V4L2_COLORFX_SKETCH,V4L2_COLORFX_BW,V4L2_COLORFX_NEGATIVE
color_sel
位0:2 - 颜色位掩码(001 - 蓝色,010 - 绿色,100 - 红色)。 位8:15 - 颜色选择效果的RGB颜色阈值。
eff_mat_1
浮雕效果1的3x3矩阵系数
eff_mat_2
浮雕效果2的3x3矩阵系数
eff_mat_3
浮雕3/草图1的3x3矩阵系数
eff_mat_4
草图效果2的3x3矩阵系数
eff_mat_5
草图效果3的3x3矩阵系数
eff_tint
色调的色度增量值(用于棕褐色效果)
-
struct rkisp1_cif_isp_cproc_config¶
颜色处理使用的配置
定义:
struct rkisp1_cif_isp_cproc_config {
__u8 c_out_range;
__u8 y_in_range;
__u8 y_out_range;
__u8 contrast;
__u8 brightness;
__u8 sat;
__u8 hue;
};
成员
c_out_range
输出时色度像素裁剪范围。 (0表示限制,1表示完整)
y_in_range
输出时亮度像素裁剪范围。
y_out_range
输出时亮度像素裁剪范围。
contrast
00~ff, 0.0~1.992
brightness
80~7F, -128~+127
sat
饱和度,00~FF, 0.0~1.992
hue
80~7F, -90~+87.188
-
struct rkisp1_cif_isp_awb_meas_config¶
AWB统计信息的配置
定义:
struct rkisp1_cif_isp_awb_meas_config {
struct rkisp1_cif_isp_window awb_wnd;
__u32 awb_mode;
__u8 max_y;
__u8 min_y;
__u8 max_csum;
__u8 min_c;
__u8 frames;
__u8 awb_ref_cr;
__u8 awb_ref_cb;
__u8 enable_ymax_cmp;
};
成员
awb_wnd
白平衡测量窗口(以像素为单位)
awb_mode
awb测量模式。 来自enum rkisp1_cif_isp_awb_mode_type。
max_y
只有像素值< max_y才参与awb测量,设置为0以禁用此功能
min_y
只有像素值> min_y才参与awb测量
max_csum
色度总和最大值,仅考虑Cb+Cr小于阈值的像素以进行awb测量
min_c
色度最小值,仅考虑Cb/Cr大于阈值的每个像素值以进行awb测量
frames
用于平均值计算的帧数-1(ucFrames=0表示1帧)
awb_ref_cr
AWB调节的参考Cr值,AWB的目标
awb_ref_cb
AWB调节的参考Cb值,AWB的目标
enable_ymax_cmp
启用Y_MAX比较(在RGB测量模式下无效。)
-
struct rkisp1_cif_isp_awb_gain_config¶
自动白平衡增益使用的配置
定义:
struct rkisp1_cif_isp_awb_gain_config {
__u16 gain_red;
__u16 gain_green_r;
__u16 gain_blue;
__u16 gain_green_b;
};
成员
gain_red
红色分量的增益值。
gain_green_r
红色线中绿色分量的增益值。
gain_blue
蓝色分量的增益值。
gain_green_b
蓝色线中绿色分量的增益值。
描述
此结构中的所有字段均为10位,其中:0x100h = 1,无符号整数值,范围为0到4,具有8位小数部分。
out_data_x = ( AWB_GAIN_X * in_data + 128) >> 8
-
struct rkisp1_cif_isp_flt_config¶
ISP过滤使用的配置
定义:
struct rkisp1_cif_isp_flt_config {
__u32 mode;
__u8 grn_stage1;
__u8 chr_h_mode;
__u8 chr_v_mode;
__u32 thresh_bl0;
__u32 thresh_bl1;
__u32 thresh_sh0;
__u32 thresh_sh1;
__u32 lum_weight;
__u32 fac_sh1;
__u32 fac_sh0;
__u32 fac_mid;
__u32 fac_bl0;
__u32 fac_bl1;
};
成员
mode
ISP_FILT_MODE寄存器字段(来自enum rkisp1_cif_isp_flt_mode)
grn_stage1
绿色过滤器阶段1选择(范围0x0...0x8)
chr_h_mode
色度过滤器水平模式
chr_v_mode
色度过滤器垂直模式
thresh_bl0
如果thresh_bl1 < sum_grad < thresh_bl0,则选择fac_bl0(模糊th)
thresh_bl1
如果sum_grad < thresh_bl1,则选择fac_bl1(模糊th)
thresh_sh0
如果thresh_sh0 < sum_grad < thresh_sh1,则选择thresh_sh0(锐化th)
thresh_sh1
如果thresh_sh1 < sum_grad,则选择thresh_sh1(锐化th)
lum_weight
亮度权重函数的参数。
fac_sh1
sharp1级别的过滤器因子
fac_sh0
sharp0级别的过滤器因子
fac_mid
中间级别的过滤器因子和静态过滤器模式
fac_bl0
模糊0级别的过滤器因子
fac_bl1
模糊1级别(最大模糊)的过滤器因子
描述
所有4个阈值字段(thresh_*)均为10位。 所有6个因子字段(fac_*)均为6位。
-
struct rkisp1_cif_isp_bdm_config¶
Bayer DeMosaic使用的配置
定义:
struct rkisp1_cif_isp_bdm_config {
__u8 demosaic_th;
};
成员
demosaic_th
Bayer去马赛克纹理检测的阈值
-
struct rkisp1_cif_isp_ctk_config¶
串扰校正使用的配置
定义:
struct rkisp1_cif_isp_ctk_config {
__u16 coeff[3][3];
__u16 ct_offset[3];
};
成员
coeff
颜色校正矩阵。 这些值是11位有符号定点数,其中4位整数和7位小数部分,范围从-8 (0x400) 到 +7.992 (0x3FF)。 0表示为0x000,系数1表示为0x080。
ct_offset
串扰校正矩阵的红色、绿色、蓝色偏移量
-
struct rkisp1_cif_isp_goc_config¶
Gamma输出校正使用的配置
定义:
struct rkisp1_cif_isp_goc_config {
__u32 mode;
__u16 gamma_y[RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES];
};
成员
mode
goc模式(来自enum rkisp1_cif_isp_goc_mode)
gamma_y
所有颜色分量的gamma输出曲线y轴
描述
gamma_y的条目数取决于硬件修订版本,如ioctl MEDIA_IOC_DEVICE_INFO返回的struct media_device_info的hw_revision字段报告的那样。
V10具有RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10个条目,V12具有RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12个条目。 RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES等于两者的最大值。
-
struct rkisp1_cif_isp_hst_config¶
直方图统计信息的配置
定义:
struct rkisp1_cif_isp_hst_config {
__u32 mode;
__u8 histogram_predivider;
struct rkisp1_cif_isp_window meas_window;
__u8 hist_weight[RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE];
};
成员
mode
直方图模式(来自enum rkisp1_cif_isp_histogram_mode)
histogram_predivider
处理每个stepsize像素,跳过所有其他像素
meas_window
测量窗口的坐标
hist_weight
子窗口的加权因子
描述
hist_weight的条目数取决于硬件修订版本,如ioctl MEDIA_IOC_DEVICE_INFO返回的struct media_device_info的hw_revision字段报告的那样。
V10具有RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10个条目,V12具有RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12个条目。 RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE等于两者的最大值。
-
struct rkisp1_cif_isp_aec_config¶
自动曝光统计信息的配置
定义:
struct rkisp1_cif_isp_aec_config {
__u32 mode;
__u32 autostop;
struct rkisp1_cif_isp_window meas_window;
};
成员
mode
曝光测量模式(来自
enum rkisp1_cif_isp_exp_meas_mode
)autostop
meas_window
测量窗口的坐标
-
struct rkisp1_cif_isp_afc_config¶
自动对焦统计信息的配置
定义:
struct rkisp1_cif_isp_afc_config {
__u8 num_afm_win;
struct rkisp1_cif_isp_window afm_win[RKISP1_CIF_ISP_AFM_MAX_WINDOWS];
__u32 thres;
__u32 var_shift;
};
成员
num_afm_win
最大RKISP1_CIF_ISP_AFM_MAX_WINDOWS
afm_win
测量窗口的坐标
thres
用于最小化噪声影响的阈值
var_shift
计算链末尾的移位操作的位数。
-
enum rkisp1_cif_isp_dpf_gain_usage¶
dpf增益使用
常量
RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED
在预处理阶段不使用任何增益
RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS
仅使用来自寄存器DPF_NF_GAIN_R等的噪声函数增益
RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS
仅使用来自LSC模块的增益
RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS
使用噪声函数增益和来自LSC模块的增益
RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS
仅使用来自AWB模块的增益
RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS
使用来自AWB和LSC模块的增益
RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX
上边界(仅用于内部评估)
-
enum rkisp1_cif_isp_dpf_rb_filtersize¶
红色和蓝色过滤器大小
常量
RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9
红色和蓝色过滤器内核大小13x9(表示7x5活动像素)
RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9
红色和蓝色过滤器内核大小9x9(表示5x5活动像素)
-
enum rkisp1_cif_isp_dpf_nll_scale_mode¶
dpf噪声水平比例模式
常量
RKISP1_CIF_ISP_NLL_SCALE_LINEAR
使用线性比例
RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC
使用对数比例
-
struct rkisp1_cif_isp_dpf_nll¶
噪声水平查找
定义:
struct rkisp1_cif_isp_dpf_nll {
__u16 coeff[RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS];
__u32 scale_mode;
};
成员
coeff
噪声水平查找系数
scale_mode
dpf噪声水平比例模式(来自
enum rkisp1_cif_isp_dpf_nll_scale_mode
)
-
struct rkisp1_cif_isp_dpf_rb_flt¶
红蓝过滤器配置
定义:
struct rkisp1_cif_isp_dpf_rb_flt {
__u32 fltsize;
__u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS];
__u8 r_enable;
__u8 b_enable;
};
成员
fltsize
红色和蓝色像素的过滤器大小(来自
enum rkisp1_cif_isp_dpf_rb_filtersize
)spatial_coeff
空间权重
r_enable
启用红色像素的过滤器处理
b_enable
启用蓝色像素的过滤器处理
-
struct rkisp1_cif_isp_dpf_g_flt¶
绿色过滤器配置
定义:
struct rkisp1_cif_isp_dpf_g_flt {
__u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS];
__u8 gr_enable;
__u8 gb_enable;
};
成员
spatial_coeff
空间权重
gr_enable
启用绿色/红色行中绿色像素的过滤器处理
gb_enable
启用绿色/蓝色行中绿色像素的过滤器处理
-
struct rkisp1_cif_isp_dpf_gain¶
噪声函数配置
定义:
struct rkisp1_cif_isp_dpf_gain {
__u32 mode;
__u16 nf_r_gain;
__u16 nf_b_gain;
__u16 nf_gr_gain;
__u16 nf_gb_gain;
};
成员
mode
dpf增益使用(来自
enum rkisp1_cif_isp_dpf_gain_usage
)nf_r_gain
替换红色像素的AWB增益的噪声函数增益
nf_b_gain
替换蓝色像素的AWB增益的噪声函数增益
nf_gr_gain
替换红色行中绿色像素的AWB增益的噪声函数增益
nf_gb_gain
替换蓝色行中绿色像素的AWB增益的噪声函数增益
-
struct rkisp1_cif_isp_dpf_config¶
去噪预过滤器使用的配置
定义:
struct rkisp1_cif_isp_dpf_config {
struct rkisp1_cif_isp_dpf_gain gain;
struct rkisp1_cif_isp_dpf_g_flt g_flt;
struct rkisp1_cif_isp_dpf_rb_flt rb_flt;
struct rkisp1_cif_isp_dpf_nll nll;
};
成员
gain
噪声函数增益
g_flt
绿色过滤器配置
rb_flt
红蓝过滤器配置
nll
噪声水平查找
-
struct rkisp1_cif_isp_dpf_strength_config¶
过滤器的强度
定义:
struct rkisp1_cif_isp_dpf_strength_config {
__u8 r;
__u8 g;
__u8 b;
};
成员
r
红色过滤器的过滤器强度
g
绿色过滤器的过滤器强度
b
蓝色过滤器的过滤器强度
-
struct rkisp1_cif_isp_isp_other_cfg¶
rockchip isp1中某些块的参数
定义:
struct rkisp1_cif_isp_isp_other_cfg {
struct rkisp1_cif_isp_dpcc_config dpcc_config;
struct rkisp1_cif_isp_bls_config bls_config;
struct rkisp1_cif_isp_sdg_config sdg_config;
struct rkisp1_cif_isp_lsc_config lsc_config;
struct rkisp1_cif_isp_awb_gain_config awb_gain_config;
struct rkisp1_cif_isp_flt_config flt_config;
struct rkisp1_cif_isp_bdm_config bdm_config;
struct rkisp1_cif_isp_ctk_config ctk_config;
struct rkisp1_cif_isp_goc_config goc_config;
struct rkisp1_cif_isp_dpf_config dpf_config;
struct rkisp1_cif_isp_dpf_strength_config dpf_strength_config;
struct rkisp1_cif_isp_cproc_config cproc_config;
struct rkisp1_cif_isp_ie_config ie_config;
};
成员
dpcc_config
缺陷像素簇校正配置
bls_config
黑电平减法配置
sdg_config
传感器反gamma配置
lsc_config
镜头阴影配置
awb_gain_config
自动白平衡增益配置
flt_config
滤波器配置
bdm_config
去马赛克配置
ctk_config
串扰配置
goc_config
Gamma 输出配置
dpf_config
降噪预滤波器配置
dpf_strength_config
dpf 强度配置
cproc_config
色彩处理配置
ie_config
图像效果配置
-
struct rkisp1_cif_isp_isp_meas_cfg¶
Rockchip ISP1 测量参数
定义:
struct rkisp1_cif_isp_isp_meas_cfg {
struct rkisp1_cif_isp_awb_meas_config awb_meas_config;
struct rkisp1_cif_isp_hst_config hst_config;
struct rkisp1_cif_isp_aec_config aec_config;
struct rkisp1_cif_isp_afc_config afc_config;
};
成员
awb_meas_config
自动白平衡配置
hst_config
直方图配置
aec_config
自动曝光配置
afc_config
自动对焦配置
-
struct rkisp1_params_cfg¶
Rockchip ISP1 输入参数元数据
定义:
struct rkisp1_params_cfg {
__u32 module_en_update;
__u32 module_ens;
__u32 module_cfg_update;
struct rkisp1_cif_isp_isp_meas_cfg meas;
struct rkisp1_cif_isp_isp_other_cfg others;
};
成员
module_en_update
需要更新的模块使能位的掩码
module_ens
每个模块的使能值的掩码,只更新在 module_en_update 中对应位被设置的模块
module_cfg_update
需要更新的模块配置位的掩码
meas
测量配置
others
其他配置
-
struct rkisp1_cif_isp_compand_bls_config¶
Rockchip ISP1 扩展参数 (BLS)
定义:
struct rkisp1_cif_isp_compand_bls_config {
__u32 r;
__u32 gr;
__u32 gb;
__u32 b;
};
成员
r
拜耳模式 R 的固定减法值
gr
拜耳模式 Gr 的固定减法值
gb
拜耳模式 Gb 的固定减法值
b
拜耳模式 B 的固定减法值
描述
这些值将从传感器值中减去。请注意,与专用的 BLS 块不同,扩展器中的 BLS 值为 20 位无符号。
-
struct rkisp1_cif_isp_compand_curve_config¶
Rockchip ISP1 扩展参数(扩展和压缩曲线)
定义:
struct rkisp1_cif_isp_compand_curve_config {
__u8 px[RKISP1_CIF_ISP_COMPAND_NUM_POINTS];
__u32 x[RKISP1_CIF_ISP_COMPAND_NUM_POINTS];
__u32 y[RKISP1_CIF_ISP_COMPAND_NUM_POINTS];
};
成员
px
扩展曲线 x 值。每个值存储与前一个 x 值的距离,以距离的 log2 表示,占用 5 位。
x
扩展曲线 x 值。由于缺乏硬件文档,这些参数的功能未知,但为了未来的兼容性,这里保留了这些参数。
y
扩展曲线 y 值
-
struct rkisp1_cif_isp_awb_meas¶
AWB 测量值
定义:
struct rkisp1_cif_isp_awb_meas {
__u32 cnt;
__u8 mean_y_or_g;
__u8 mean_cb_or_b;
__u8 mean_cr_or_r;
};
成员
cnt
白色像素计数,上次测量期间找到的“白色像素”数量
mean_y_or_g
窗口和帧内的 Y 平均值,如果选择了 RGB,则为绿色。
mean_cb_or_b
窗口和帧内的 Cb 平均值,如果选择了 RGB,则为蓝色。
mean_cr_or_r
窗口和帧内的 Cr 平均值,如果选择了 RGB,则为红色。
-
struct rkisp1_cif_isp_awb_stat¶
统计自动白平衡数据
定义:
struct rkisp1_cif_isp_awb_stat {
struct rkisp1_cif_isp_awb_meas awb_mean[RKISP1_CIF_ISP_AWB_MAX_GRID];
};
成员
awb_mean
平均测量数据
-
struct rkisp1_cif_isp_bls_meas_val¶
BLS 测量值
定义:
struct rkisp1_cif_isp_bls_meas_val {
__u16 meas_r;
__u16 meas_gr;
__u16 meas_gb;
__u16 meas_b;
};
成员
meas_r
拜耳模式 R 的平均测量值
meas_gr
拜耳模式 Gr 的平均测量值
meas_gb
拜耳模式 Gb 的平均测量值
meas_b
拜耳模式 B 的平均测量值
-
struct rkisp1_cif_isp_ae_stat¶
统计自动曝光数据
定义:
struct rkisp1_cif_isp_ae_stat {
__u8 exp_mean[RKISP1_CIF_ISP_AE_MEAN_MAX];
struct rkisp1_cif_isp_bls_meas_val bls_val;
};
成员
exp_mean
块 xx 的平均亮度值
bls_val
BLS 测量值
描述
exp_mean 的条目数量取决于硬件修订版本,由 ioctl MEDIA_IOC_DEVICE_INFO 返回的 struct media_device_info 的 hw_revision 字段报告。
V10 具有 RKISP1_CIF_ISP_AE_MEAN_MAX_V10 条目,V12 具有 RKISP1_CIF_ISP_AE_MEAN_MAX_V12 条目。RKISP1_CIF_ISP_AE_MEAN_MAX 等于两者的最大值。
在 V10 上,图像被分成 5x5 个块,在 V12 上,图像被分成 9x9 个块。
-
struct rkisp1_cif_isp_af_meas_val¶
AF 测量值
定义:
struct rkisp1_cif_isp_af_meas_val {
__u32 sum;
__u32 lum;
};
成员
sum
锐度值
lum
亮度值
-
struct rkisp1_cif_isp_af_stat¶
统计自动对焦数据
定义:
struct rkisp1_cif_isp_af_stat {
struct rkisp1_cif_isp_af_meas_val window[RKISP1_CIF_ISP_AFM_MAX_WINDOWS];
};
成员
window
窗口 x 的 AF 测量值
描述
该模块通过寄存器设置 (ISP_AFM_*_A/B/C) 测量 3 个可选择大小的窗口中的锐度。
-
struct rkisp1_cif_isp_hist_stat¶
统计直方图数据
定义:
struct rkisp1_cif_isp_hist_stat {
__u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX];
};
成员
hist_bins
测量的 bin 计数器。每个 bin 都是一个 20 位无符号定点类型。位 0-4 是小数部分,位 5-19 是整数部分。
描述
测量区域的窗口被分成 5x5 个子窗口(对于 V10)和 9x9 个子窗口(对于 V12)。然后独立计算每个子窗口的直方图,最终结果是所有子窗口上直方图测量的加权平均值。可以使用 struct rkisp1_cif_isp_hst_config 配置测量区域的窗口和每个子窗口的权重。
直方图在 V10 中包含 16 个 bin,在 V12 中包含 32 个 bin。
hist_bins 的条目数量取决于硬件修订版本,由 ioctl MEDIA_IOC_DEVICE_INFO 返回的 struct media_device_info 的 hw_revision 字段报告。
V10 具有 RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 条目,V12 具有 RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 条目。RKISP1_CIF_ISP_HIST_BIN_N_MAX 等于两者的最大值。
-
struct rkisp1_cif_isp_stat¶
Rockchip ISP1 统计数据
定义:
struct rkisp1_cif_isp_stat {
struct rkisp1_cif_isp_awb_stat awb;
struct rkisp1_cif_isp_ae_stat ae;
struct rkisp1_cif_isp_af_stat af;
struct rkisp1_cif_isp_hist_stat hist;
};
成员
awb
自动白平衡的统计数据
ae
自动曝光的统计数据
af
自动对焦的统计数据
hist
统计直方图数据
-
struct rkisp1_stat_buffer¶
Rockchip ISP1 统计元数据
定义:
struct rkisp1_stat_buffer {
__u32 meas_type;
__u32 frame_id;
struct rkisp1_cif_isp_stat params;
};
成员
meas_type
测量类型 (RKISP1_CIF_ISP_STAT_* 定义)
frame_id
用于同步的帧 ID
params
统计数据
-
enum rkisp1_ext_params_block_type¶
RkISP1 可扩展参数块类型
常量
RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS
黑电平减法
RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC
缺陷像素簇校正
RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG
传感器去伽马
RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_GAIN
自动白平衡增益
RKISP1_EXT_PARAMS_BLOCK_TYPE_FLT
ISP 滤波
RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM
拜耳去马赛克
RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK
串扰校正
RKISP1_EXT_PARAMS_BLOCK_TYPE_GOC
Gamma 输出校正
RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF
降噪预滤波器
RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF_STRENGTH
降噪预滤波器强度
RKISP1_EXT_PARAMS_BLOCK_TYPE_CPROC
色彩处理
RKISP1_EXT_PARAMS_BLOCK_TYPE_IE
图像效果
RKISP1_EXT_PARAMS_BLOCK_TYPE_LSC
镜头阴影校正
RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_MEAS
自动白平衡统计
RKISP1_EXT_PARAMS_BLOCK_TYPE_HST_MEAS
直方图统计
RKISP1_EXT_PARAMS_BLOCK_TYPE_AEC_MEAS
自动曝光统计
RKISP1_EXT_PARAMS_BLOCK_TYPE_AFC_MEAS
自动对焦统计
RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS
扩展块中的 BLS
RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND
扩展曲线扩展
RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS
扩展压缩曲线
-
struct rkisp1_ext_params_block_header¶
RkISP1 可扩展参数块头
定义:
struct rkisp1_ext_params_block_header {
__u16 type;
__u16 flags;
__u32 size;
};
成员
type
参数块类型,请参阅
rkisp1_ext_params_block_type
flags
块标志的位掩码
size
参数块的大小(以字节为单位),包括此标头
描述
此结构表示所有 ISP 配置块的公共部分。每个参数块应嵌入此结构类型的实例作为其第一个成员,后跟特定于块的配置数据。驱动程序检查此公共标头以识别块类型及其大小,并通过将其强制转换为正确的特定于块的类型来正确处理块内容。
type 字段是由 rkisp1_ext_params_block_type
枚举的值之一,并指定驱动程序应如何解释数据。size 字段指定参数块的大小,驱动程序使用它进行验证。
flags 字段是每个块标志 RKISP1_EXT_PARAMS_FL_* 的位掩码。
当用户空间想要配置和启用 ISP 块时,它应完全填充块配置并在 flags 字段中设置 RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE 位。
当用户空间只是想禁用 ISP 块时,应在 flags 字段中设置 RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE 位。在这种情况下,驱动程序会忽略块配置结构的其他部分。
如果要应用 ISP 块的新配置,用户空间应完全填充 ISP 块配置并忽略在 flags 字段中设置 RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE 和 RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE 位。
不允许在 flags 字段中同时设置 RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE 和 RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE 位,驱动程序也不会接受。
用户空间负责正确填充参数块头字段(type、flags 和 size)和特定于块的参数。
例如
void populate_bls(struct rkisp1_ext_params_block_header *block) {
struct rkisp1_ext_params_bls_config *bls =
(struct rkisp1_ext_params_bls_config *)block;
bls->header.type = RKISP1_EXT_PARAMS_BLOCK_ID_BLS;
bls->header.flags = RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE;
bls->header.size = sizeof(*bls);
bls->config.enable_auto = 0;
bls->config.fixed_val.r = blackLevelRed_;
bls->config.fixed_val.gr = blackLevelGreenR_;
bls->config.fixed_val.gb = blackLevelGreenB_;
bls->config.fixed_val.b = blackLevelBlue_;
}
-
struct rkisp1_ext_params_bls_config¶
RkISP1 可扩展参数 BLS 配置
定义:
struct rkisp1_ext_params_bls_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_bls_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
黑电平减法配置,请参阅
rkisp1_cif_isp_bls_config
描述
RkISP1 可扩展参数黑电平减法配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS
标识。
-
struct rkisp1_ext_params_dpcc_config¶
RkISP1 可扩展参数 DPCC 配置
定义:
struct rkisp1_ext_params_dpcc_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_dpcc_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
缺陷像素簇校正配置,请参阅
rkisp1_cif_isp_dpcc_config
描述
RkISP1 可扩展参数缺陷像素簇校正配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC
标识。
-
struct rkisp1_ext_params_sdg_config¶
RkISP1 可扩展参数 SDG 配置
定义:
struct rkisp1_ext_params_sdg_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_sdg_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
传感器去伽马配置,请参阅
rkisp1_cif_isp_sdg_config
描述
RkISP1 可扩展参数传感器去伽马配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG
标识。
-
struct rkisp1_ext_params_lsc_config¶
RkISP1 可扩展参数 LSC 配置
定义:
struct rkisp1_ext_params_lsc_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_lsc_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
镜头阴影校正配置,请参阅
rkisp1_cif_isp_lsc_config
描述
RkISP1 可扩展参数镜头阴影校正配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_LSC
标识。
-
struct rkisp1_ext_params_awb_gain_config¶
RkISP1 可扩展参数 AWB 增益配置
定义:
struct rkisp1_ext_params_awb_gain_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_awb_gain_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
自动白平衡增益配置,请参阅
rkisp1_cif_isp_awb_gain_config
描述
RkISP1 可扩展参数自动白平衡增益配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_GAIN
标识。
-
struct rkisp1_ext_params_flt_config¶
RkISP1 可扩展参数 FLT 配置
定义:
struct rkisp1_ext_params_flt_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_flt_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
滤波器配置,请参阅
rkisp1_cif_isp_flt_config
描述
RkISP1 可扩展参数滤波器配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_FLT
标识。
-
struct rkisp1_ext_params_bdm_config¶
RkISP1 可扩展参数 BDM 配置
定义:
struct rkisp1_ext_params_bdm_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_bdm_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
去马赛克配置,请参阅
rkisp1_cif_isp_bdm_config
描述
RkISP1 可扩展参数去马赛克配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM
标识。
-
struct rkisp1_ext_params_ctk_config¶
RkISP1 可扩展参数 CTK 配置
定义:
struct rkisp1_ext_params_ctk_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_ctk_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
串扰配置,请参阅
rkisp1_cif_isp_ctk_config
描述
RkISP1 可扩展参数串扰配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK
标识。
-
struct rkisp1_ext_params_goc_config¶
RkISP1 可扩展参数 GOC 配置
定义:
struct rkisp1_ext_params_goc_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_goc_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
Gamma 输出配置,请参阅
rkisp1_cif_isp_goc_config
描述
RkISP1 可扩展参数 Gamma 输出配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_GOC
标识。
-
struct rkisp1_ext_params_dpf_config¶
RkISP1 可扩展参数 DPF 配置
定义:
struct rkisp1_ext_params_dpf_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_dpf_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
降噪预滤波器配置,请参阅
rkisp1_cif_isp_dpf_config
描述
RkISP1 可扩展参数降噪预滤波器配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF
标识。
-
struct rkisp1_ext_params_dpf_strength_config¶
RkISP1 可扩展参数 DPF 强度配置
定义:
struct rkisp1_ext_params_dpf_strength_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_dpf_strength_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
降噪预滤波器强度配置,请参阅
rkisp1_cif_isp_dpf_strength_config
描述
RkISP1 可扩展参数降噪预滤波器强度配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF_STRENGTH
标识。
-
struct rkisp1_ext_params_cproc_config¶
RkISP1 可扩展参数 CPROC 配置
定义:
struct rkisp1_ext_params_cproc_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_cproc_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
色彩处理配置,请参阅
rkisp1_cif_isp_cproc_config
描述
RkISP1 可扩展参数色彩处理配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_CPROC
标识。
-
struct rkisp1_ext_params_ie_config¶
RkISP1 可扩展参数 IE 配置
定义:
struct rkisp1_ext_params_ie_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_ie_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
图像效果配置,请参阅
rkisp1_cif_isp_ie_config
描述
RkISP1 可扩展参数图像效果配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_IE
标识。
-
struct rkisp1_ext_params_awb_meas_config¶
RkISP1 可扩展参数 AWB Meas 配置
定义:
struct rkisp1_ext_params_awb_meas_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_awb_meas_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
自动白平衡测量配置,请参阅
rkisp1_cif_isp_awb_meas_config
描述
RkISP1 可扩展参数自动白平衡测量配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_MEAS
标识。
-
struct rkisp1_ext_params_hst_config¶
RkISP1 可扩展参数直方图配置
定义:
struct rkisp1_ext_params_hst_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_hst_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
直方图统计配置,请参阅
rkisp1_cif_isp_hst_config
描述
RkISP1 可扩展参数直方图统计配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_HST_MEAS
标识。
-
struct rkisp1_ext_params_aec_config¶
RkISP1 可扩展参数 AEC 配置
定义:
struct rkisp1_ext_params_aec_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_aec_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
自动曝光统计配置,请参阅
rkisp1_cif_isp_aec_config
描述
RkISP1 可扩展参数自动曝光统计配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_AEC_MEAS
标识。
-
struct rkisp1_ext_params_afc_config¶
RkISP1 可扩展参数 AFC 配置
定义:
struct rkisp1_ext_params_afc_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_afc_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
自动对焦统计配置,请参阅
rkisp1_cif_isp_afc_config
描述
RkISP1 可扩展参数自动对焦统计配置块。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_AFC_MEAS
标识。
-
struct rkisp1_ext_params_compand_bls_config¶
RkISP1 可扩展参数 Compand BLS 配置
定义:
struct rkisp1_ext_params_compand_bls_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_compand_bls_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
扩展 BLS 配置,请参阅
rkisp1_cif_isp_compand_bls_config
描述
RkISP1 可扩展参数扩展配置块(黑电平减法)。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS
标识。
-
struct rkisp1_ext_params_compand_curve_config¶
RkISP1 可扩展参数 Compand 曲线配置
定义:
struct rkisp1_ext_params_compand_curve_config {
struct rkisp1_ext_params_block_header header;
struct rkisp1_cif_isp_compand_curve_config config;
};
成员
header
RkISP1 可扩展参数头,请参阅
rkisp1_ext_params_block_header
config
扩展曲线配置,请参阅
rkisp1_cif_isp_compand_curve_config
描述
RkISP1 可扩展参数扩展配置块(扩展和压缩曲线)。由 RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND
或 RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS
标识。
-
enum rksip1_ext_param_buffer_version¶
RkISP1 可扩展参数版本
常量
RKISP1_EXT_PARAM_BUFFER_V1
RkISP1 可扩展参数的第一个版本
-
struct rkisp1_ext_params_cfg¶
RkISP1 可扩展参数配置
定义:
struct rkisp1_ext_params_cfg {
__u32 version;
__u32 data_size;
__u8 data[RKISP1_EXT_PARAMS_MAX_SIZE];
};
成员
version
RkISP1 可扩展参数缓冲区版本,请参阅
rksip1_ext_param_buffer_version
data_size
RkISP1 配置数据有效大小,不包括此标头
data
RkISP1 可扩展配置数据块
描述
此结构包含 RkISP1 ISP 算法的配置参数,由用户空间序列化为数据缓冲区。每个配置参数块由一个特定于块的结构表示,该结构包含一个 rkisp1_ext_params_block_header
条目作为第一个成员。用户空间使用它打算配置的块的配置参数填充 data 缓冲区。因此,数据缓冲区有效大小根据用户空间打算配置的 ISP 块的数量而变化,并由用户空间在 data_size 字段中设置。
参数缓冲区由 version 字段进行版本控制,以允许修改和扩展其定义。用户空间应填充 version 字段以通知驱动程序它打算使用的版本。驱动程序将根据特定于指示版本的数据布局来解析和处理 data 缓冲区,如果不支持所需的版本,则返回错误。
当前支持单个 RKISP1_EXT_PARAM_BUFFER_V1 版本。当添加新的格式版本时,将实现一种机制,使用户空间能够以只读 V4L2 控件的形式查询支持的格式版本。如果此类控件不可用,则用户空间应假定驱动程序仅支持 RKISP1_EXT_PARAM_BUFFER_V1。
对于用户空间想要配置的每个 ISP 块,一个特定于块的结构将追加到 data 缓冲区,一个接一个,之间没有间隙或重叠。用户空间应用 data_size 字段填充 data 缓冲区的有效大小(以字节为单位)。
参数缓冲区的预期内存布局是
+-------------------- struct rkisp1_ext_params_cfg -------------------+
| version = RKISP1_EXT_PARAM_BUFFER_V1; |
| data_size = sizeof(struct rkisp1_ext_params_bls_config) |
| + sizeof(struct rkisp1_ext_params_dpcc_config); |
| +------------------------- data ---------------------------------+ |
| | +------------- struct rkisp1_ext_params_bls_config -----------+ | |
| | | +-------- struct rkisp1_ext_params_block_header ---------+ | | |
| | | | type = RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS; | | | |
| | | | flags = RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE; | | | |
| | | | size = sizeof(struct rkisp1_ext_params_bls_config); | | | |
| | | +---------------------------------------------------------+ | | |
| | | +---------- struct rkisp1_cif_isp_bls_config -------------+ | | |
| | | | enable_auto = 0; | | | |
| | | | fixed_val.r = 256; | | | |
| | | | fixed_val.gr = 256; | | | |
| | | | fixed_val.gb = 256; | | | |
| | | | fixed_val.b = 256; | | | |
| | | +---------------------------------------------------------+ | | |
| | +------------ struct rkisp1_ext_params_dpcc_config -----------+ | |
| | | +-------- struct rkisp1_ext_params_block_header ---------+ | | |
| | | | type = RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC; | | | |
| | | | flags = RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE; | | | |
| | | | size = sizeof(struct rkisp1_ext_params_dpcc_config); | | | |
| | | +---------------------------------------------------------+ | | |
| | | +---------- struct rkisp1_cif_isp_dpcc_config ------------+ | | |
| | | | mode = RKISP1_CIF_ISP_DPCC_MODE_STAGE1_ENABLE; | | | |
| | | | output_mode = | | | |
| | | | RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_INCL_G_CENTER; | | | |
| | | | set_use = ... ; | | | |
| | | | ... = ... ; | | | |
| | | +---------------------------------------------------------+ | | |
| | +-------------------------------------------------------------+ | |
| +-----------------------------------------------------------------+ |
+---------------------------------------------------------------------+