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_0Y = 16 + 0.25R + 0.5G + 0.1094B
RKISP1_CIF_ISP_EXP_MEASURING_MODE_1Y = (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;
};
成員
rBayer模式R的固定(有符號!)減法值
grBayer模式Gr的固定(有符號!)減法值
gbBayer模式Gb的固定(有符號!)減法值
bBayer模式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;
};
成員
modeDPCC模式(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_ygamma曲線點的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_dx0gamma曲線取樣點定義。 位0:2用於樣本1。 位3未使用。 位4:6用於樣本2。 位7未使用 ... 位28:30用於樣本8。 位31未使用
gamma_dx1gamma曲線取樣點定義。 位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_pntsx軸增量
-
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輸出時亮度畫素裁剪範圍。
contrast00~ff, 0.0~1.992
brightness80~7F, -128~+127
sat飽和度,00~FF, 0.0~1.992
hue80~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_modeawb測量模式。 來自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_crAWB調節的參考Cr值,AWB的目標
awb_ref_cbAWB調節的參考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;
};
成員
modeISP_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_sh1sharp1級別的過濾器因子
fac_sh0sharp0級別的過濾器因子
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_thBayer去馬賽克紋理檢測的閾值
-
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];
};
成員
modegoc模式(來自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)autostopmeas_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_modedpf噪聲水平比例模式(來自
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;
};
成員
modedpf增益使用(來自
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_configGamma 輸出配置
dpf_config降噪預濾波器配置
dpf_strength_configdpf 強度配置
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_valBLS 測量值
描述
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_FLTISP 濾波
RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM拜耳去馬賽克
RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK串擾校正
RKISP1_EXT_PARAMS_BLOCK_TYPE_GOCGamma 輸出校正
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_typeflags塊標誌的位掩碼
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig黑電平減法配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig缺陷畫素簇校正配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig感測器去伽馬配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig鏡頭陰影校正配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig自動白平衡增益配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig濾波器配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig去馬賽克配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig串擾配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfigGamma 輸出配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig降噪預濾波器配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig降噪預濾波器強度配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig色彩處理配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig影像效果配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig自動白平衡測量配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig直方圖統計配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig自動曝光統計配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig自動對焦統計配置,請參閱
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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig擴充套件 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;
};
成員
headerRkISP1 可擴充套件引數頭,請參閱
rkisp1_ext_params_block_headerconfig擴充套件曲線配置,請參閱
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_V1RkISP1 可擴充套件引數的第一個版本
-
struct rkisp1_ext_params_cfg¶
RkISP1 可擴充套件引數配置
定義:
struct rkisp1_ext_params_cfg {
__u32 version;
__u32 data_size;
__u8 data[RKISP1_EXT_PARAMS_MAX_SIZE];
};
成員
versionRkISP1 可擴充套件引數緩衝區版本,請參閱
rksip1_ext_param_buffer_versiondata_sizeRkISP1 配置資料有效大小,不包括此標頭
dataRkISP1 可擴充套件配置資料塊
描述
此結構包含 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 = ... ; | | | |
| | | | ... = ... ; | | | |
| | | +---------------------------------------------------------+ | | |
| | +-------------------------------------------------------------+ | |
| +-----------------------------------------------------------------+ |
+---------------------------------------------------------------------+