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

停止模式(來自enum rkisp1_cif_isp_exp_ctrl_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 位,驅動程式也不會接受。

使用者空間負責正確填充引數塊頭欄位(typeflagssize)和特定於塊的引數。

例如

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_EXPANDRKISP1_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 = ... ;                                         | | | |
| | | | ...  = ... ;                                            | | | |
| | | +---------------------------------------------------------+ | | |
| | +-------------------------------------------------------------+ | |
| +-----------------------------------------------------------------+ |
+---------------------------------------------------------------------+