2.13.7. 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.7.1. 配置参数¶
RkISP1 ISP 的配置由用户空间执行,通过使用 v4l2_meta_format
接口向驱动程序提供 ISP 的参数。
有两种方法可以配置 ISP,固定参数配置格式和可扩展参数配置格式。
2.13.7.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.7.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.7.2. 3A 和直方图统计信息¶
ISP1 设备收集输入拜耳帧的不同统计信息。这些统计信息通过使用 v4l2_meta_format
接口从 rkisp1_stats 元数据捕获视频节点获得。缓冲区包含 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.7.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
拜耳模式 R 的固定(有符号!)减法值
gr
拜耳模式 Gr 的固定(有符号!)减法值
gb
拜耳模式 Gb 的固定(有符号!)减法值
b
拜耳模式 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
为每个拜耳位置(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 字段,结果是所有启用方法的逻辑 AND。其余字段设置每个方法的阈值和因子。
-
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 字段配置和选择三组方法。结果是所有启用集的逻辑 OR。
-
struct rkisp1_cif_isp_gamma_corr_curve¶
伽马曲线点定义 y 轴(输出)。
定义:
struct rkisp1_cif_isp_gamma_corr_curve {
__u16 gamma_y[RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE];
};
成员
gamma_y
伽马曲线点的 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¶
De-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¶
传感器去伽马校正使用的配置
定义:
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
红色伽马曲线点定义轴
curve_g
绿色伽马曲线点定义轴
curve_b
蓝色伽马曲线点定义轴
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(模糊阈值)
thresh_bl1
如果 sum_grad < thresh_bl1,则选择 fac_bl1(模糊阈值)
thresh_sh0
如果 thresh_sh0 < sum_grad < thresh_sh1,则选择 thresh_sh0(锐化阈值)
thresh_sh1
如果 sum_grad < thresh_sh1,则选择 thresh_sh1(锐化阈值)
lum_weight
亮度权重函数的参数。
fac_sh1
锐化 1 级别的滤波因子
fac_sh0
锐化 0 级别的滤波因子
fac_mid
中间级别和静态滤波器模式的滤波因子
fac_bl0
模糊 0 级别的滤波因子
fac_bl1
模糊 1 级别的滤波因子(最大模糊)
描述
所有 4 个阈值字段 (thresh_*) 均为 10 位。所有 6 个因子字段 (fac_*) 均为 6 位。
-
struct rkisp1_cif_isp_bdm_config¶
拜耳去马赛克使用的配置
定义:
struct rkisp1_cif_isp_bdm_config {
__u8 demosaic_th;
};
成员
demosaic_th
用于拜耳去马赛克纹理检测的阈值
-
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¶
伽马输出校正使用的配置
定义:
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
所有颜色分量的伽马输出曲线 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
处理每一步的像素,跳过所有其他像素
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
传感器去伽玛配置
lsc_config
镜头阴影配置
awb_gain_config
自动白平衡增益配置
flt_config
滤波器配置
bdm_config
去马赛克配置
ctk_config
串扰配置
goc_config
伽玛输出配置
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 是整数部分。
描述
测量区域的窗口在 V10 中划分为 5x5 子窗口,在 V12 中划分为 9x9 子窗口。然后,独立地计算每个子窗口的直方图,最终结果是对所有子窗口上的直方图测量的加权平均值。可以使用结构体 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
伽马输出校正
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
伽马输出配置,请参阅
rkisp1_cif_isp_goc_config
描述
RkISP1 可扩展参数伽马输出配置块。由 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 测量配置
定义:
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
Companding BLS 配置,请参考
rkisp1_cif_isp_compand_bls_config
描述
RkISP1 可扩展参数 Companding 配置块(黑电平减法)。由 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
Companding 曲线配置,请参考
rkisp1_cif_isp_compand_curve_config
描述
RkISP1 可扩展参数 Companding 配置块(扩展和压缩曲线)。由 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];
};
成员
版本
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 缓冲区的有效大小(以字节为单位)填充 data_size 字段。
参数缓冲区的预期内存布局是
+-------------------- struct rkisp1_ext_params_cfg -------------------+
| version = RKISP_EXT_PARAMS_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 = ... ; | | | |
| | | | ... = ... ; | | | |
| | | +---------------------------------------------------------+ | | |
| | +-------------------------------------------------------------+ | |
| +-----------------------------------------------------------------+ |
+---------------------------------------------------------------------+