2.13.4. V4L2_META_FMT_IPU3_PARAMS (‘ip3p’), V4L2_META_FMT_IPU3_3A (‘ip3s’)

2.13.4.1. 3A 統計

IPU3 ImgU 3A 統計加速器收集輸入拜耳幀的不同統計資訊。這些統計資訊從“ipu3-imgu [01] 3a stat”元資料捕獲影片節點獲得,使用 v4l2_meta_format 介面。 它們的格式由 ipu3_uapi_stats_3a 結構描述。

收集的統計資訊是 AWB(自動白平衡)RGBS(紅色、綠色、藍色和飽和度測量)單元、AWB 濾波器響應、AF(自動對焦)濾波器響應和 AE(自動曝光)直方圖。

結構體 ipu3_uapi_4a_config 儲存所有可配置的引數。

struct ipu3_uapi_stats_3a {
        struct ipu3_uapi_awb_raw_buffer awb_raw_buffer;
        struct ipu3_uapi_ae_raw_buffer_aligned ae_raw_buffer[IPU3_UAPI_MAX_STRIPES];
        struct ipu3_uapi_af_raw_buffer af_raw_buffer;
        struct ipu3_uapi_awb_fr_raw_buffer awb_fr_raw_buffer;
        struct ipu3_uapi_4a_config stats_4a_config;
        __u32 ae_join_buffers;
        __u8 padding[28];
        struct ipu3_uapi_stats_3a_bubble_info_per_stripe stats_3a_bubble_per_stripe;
        struct ipu3_uapi_ff_status stats_3a_status;
};

2.13.4.2. 流水線引數

流水線引數傳遞給“ipu3-imgu [01] parameters”元資料輸出影片節點,使用 v4l2_meta_format 介面。 它們的格式由 ipu3_uapi_params 結構描述。

此處描述的 3A 統計資訊和流水線引數都與底層相機子系統 (CSS) API 緊密相關。它們通常由專用使用者空間庫使用和生成,這些庫包含重要的調整工具,從而使開發人員無需擔心低階硬體和演算法細節。

struct ipu3_uapi_params {
        /* Flags which of the settings below are to be applied */
        struct ipu3_uapi_flags use;

        /* Accelerator cluster parameters */
        struct ipu3_uapi_acc_param acc_param;

        /* ISP vector address space parameters */
        struct ipu3_uapi_isp_lin_vmem_params lin_vmem_params;
        struct ipu3_uapi_isp_tnr3_vmem_params tnr3_vmem_params;
        struct ipu3_uapi_isp_xnr3_vmem_params xnr3_vmem_params;

        /* ISP data memory (DMEM) parameters */
        struct ipu3_uapi_isp_tnr3_params tnr3_dmem_params;
        struct ipu3_uapi_isp_xnr3_params xnr3_dmem_params;

        /* Optical black level compensation */
        struct ipu3_uapi_obgrid_param obgrid_param;
};

2.13.4.3. Intel IPU3 ImgU uAPI 資料型別

struct ipu3_uapi_grid_config

網格平面配置

定義:

struct ipu3_uapi_grid_config {
    __u8 width;
    __u8 height;
    __u16 block_width_log2:3;
    __u16 block_height_log2:3;
    __u16 height_per_slice:8;
    __u16 x_start;
    __u16 y_start;
    __u16 x_end;
    __u16 y_end;
};

成員

寬度

網格水平尺寸,以網格塊(單元格)的數量表示。對於 AWB,範圍是 (16, 80)。對於 AF/AE,範圍是 (16, 32)。

高度

網格垂直尺寸,以網格單元的數量表示。對於 AWB,範圍是 (16, 60)。對於 AF/AE,範圍是 (16, 24)。

block_width_log2

每個單元格寬度的 Log2,以畫素為單位。對於 AWB,範圍是 [3, 6]。對於 AF/AE,範圍是 [3, 7]。

block_height_log2

每個單元格高度的 Log2,以畫素為單位。對於 AWB,範圍是 [3, 6]。對於 AF/AE,範圍是 [3, 7]。

height_per_slice

每個切片垂直軸上的塊數。預設為 2。

x_start

感興趣區域 (ROI) 左上角的 X 值。

y_start

ROI 左上角的 Y 值。

x_end

ROI 右下角的 X 值。

y_end

ROI 右下角的 Y 值

描述

由於收集的資料總量的大小,大多數統計資訊會建立基於網格的輸出,然後將資料分成“切片”。

struct ipu3_uapi_awb_set_item

AWB 中每個單元格的記憶體佈局

定義:

struct ipu3_uapi_awb_set_item {
    __u8 Gr_avg;
    __u8 R_avg;
    __u8 B_avg;
    __u8 Gb_avg;
    __u8 sat_ratio;
    __u8 padding0;
    __u8 padding1;
    __u8 padding2;
};

成員

Gr_avg

單元格中紅色線的綠色平均值。

R_avg

單元格中的紅色平均值。

B_avg

單元格中的藍色平均值。

Gb_avg

單元格中藍色線的綠色平均值。

sat_ratio

超過 ipu3_uapi_awb_config_s 中指定的閾值的畫素百分比,編碼為 0 到 255。

padding0

用於填充的未使用位元組。

padding1

用於填充的未使用位元組。

padding2

用於填充的未使用位元組。

struct ipu3_uapi_awb_raw_buffer

AWB 原始緩衝區

定義:

struct ipu3_uapi_awb_raw_buffer {
    struct ipu3_uapi_awb_set_item meta_data[IPU3_UAPI_AWB_MAX_BUFFER_SIZE]  ;
};

成員

meta_data

用於儲存自動白平衡元資料的緩衝區,這些元資料是每個顏色通道的平均值。

struct ipu3_uapi_awb_config_s

AWB 配置

定義:

struct ipu3_uapi_awb_config_s {
    __u16 rgbs_thr_gr;
    __u16 rgbs_thr_r;
    __u16 rgbs_thr_gb;
    __u16 rgbs_thr_b;
    struct ipu3_uapi_grid_config grid;
};

成員

rgbs_thr_gr

gr 閾值。

rgbs_thr_r

紅色閾值。

rgbs_thr_gb

gb 閾值。

rgbs_thr_b

藍色閾值。

網格

ipu3_uapi_grid_config,預設網格解析度為 16x16 個單元格。

描述

閾值是飽和度測量範圍 [0, 8191],8191 是預設值。可以選擇拒絕超過閾值的值進行平均。

struct ipu3_uapi_awb_config

AWB 配置包裝器

定義:

struct ipu3_uapi_awb_config {
    struct ipu3_uapi_awb_config_s config  ;
};

成員

配置

自動白平衡的配置,如 ipu3_uapi_awb_config_s 所定義

struct ipu3_uapi_ae_raw_buffer

AE 全域性加權直方圖

定義:

struct ipu3_uapi_ae_raw_buffer {
    __u32 vals[IPU3_UAPI_AE_BINS * IPU3_UAPI_AE_COLORS];
};

成員

單元格中 IPU3_UAPI_AE_COLORS 的總和

描述

每個直方圖包含 IPU3_UAPI_AE_BINS 個 bin。每個 bin 都有 24 位無符號數,用於計算畫素數量。

struct ipu3_uapi_ae_raw_buffer_aligned

AE 原始緩衝區

定義:

struct ipu3_uapi_ae_raw_buffer_aligned {
    struct ipu3_uapi_ae_raw_buffer buff  ;
};

成員

buff

ipu3_uapi_ae_raw_buffer 用於儲存完整幀元資料。

struct ipu3_uapi_ae_grid_config

AE 權重網格

定義:

struct ipu3_uapi_ae_grid_config {
    __u8 width;
    __u8 height;
    __u8 block_width_log2:4;
    __u8 block_height_log2:4;
    __u8 reserved0:5;
    __u8 ae_en:1;
    __u8 rst_hist_array:1;
    __u8 done_rst_hist_array:1;
    __u16 x_start;
    __u16 y_start;
    __u16 x_end;
    __u16 y_end;
};

成員

寬度

網格水平尺寸。值:[16, 32],預設 16。

高度

網格垂直尺寸。值:[16, 24],預設 16。

block_width_log2

網格單元格寬度的 Log2,值:[3, 7]。

block_height_log2

網格單元格高度的 Log2,值:[3, 7]。預設值為 3(單元格大小 8x8),每個網格 4 個單元格。

reserved0

已保留

ae_en

0:不寫入 ipu3_uapi_ae_raw_buffer_aligned 陣列,1:正常寫入。

rst_hist_array

寫入 1 以觸發直方圖陣列重置。

done_rst_hist_array

直方圖陣列重置完成的標誌。

x_start

ROI 左上角的 X 值,預設為 0。

y_start

ROI 左上角的 Y 值,預設為 0。

x_end

ROI 右下角的 X 值。

y_end

ROI 右下角的 Y 值

描述

AE 塊在幀內定義的 ROI 上累積 4 個全域性加權直方圖(R、G、B、Y)。每個畫素對直方圖的貢獻(由 ipu3_uapi_ae_weight_elem LUT 定義)由網格索引。

struct ipu3_uapi_ae_weight_elem

AE 權重 LUT

定義:

struct ipu3_uapi_ae_weight_elem {
    __u32 cell0:4;
    __u32 cell1:4;
    __u32 cell2:4;
    __u32 cell3:4;
    __u32 cell4:4;
    __u32 cell5:4;
    __u32 cell6:4;
    __u32 cell7:4;
};

成員

cell0

加權直方圖網格值。

cell1

加權直方圖網格值。

cell2

加權直方圖網格值。

cell3

加權直方圖網格值。

cell4

加權直方圖網格值。

cell5

加權直方圖網格值。

cell6

加權直方圖網格值。

cell7

加權直方圖網格值。

描述

使用加權網格值給每個單元格不同的貢獻因子。精度 u4,範圍 [0, 15]。

struct ipu3_uapi_ae_ccm

WB 和 CCM 的 AE 係數

定義:

struct ipu3_uapi_ae_ccm {
    __u16 gain_gr;
    __u16 gain_r;
    __u16 gain_b;
    __u16 gain_gb;
    __s16 mat[16];
};

成員

gain_gr

gr 通道的 WB 增益因子。預設為 256。

gain_r

r 通道的 WB 增益因子。預設為 256。

gain_b

b 通道的 WB 增益因子。預設為 256。

gain_gb

gb 通道的 WB 增益因子。預設為 256。

將拜耳四路輸出從 WB 轉換為 RGB+Y 的 4x4 矩陣。

描述

預設

128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128,

作為原始幀預處理階段的一部分,需要應用 WB 和顏色轉換來暴露這些增益操作的影響。

struct ipu3_uapi_ae_config

AE 配置

定義:

struct ipu3_uapi_ae_config {
    struct ipu3_uapi_ae_grid_config grid_cfg  ;
    struct ipu3_uapi_ae_weight_elem weights[IPU3_UAPI_AE_WEIGHTS]  ;
    struct ipu3_uapi_ae_ccm ae_ccm  ;
};

成員

grid_cfg

自動曝光統計網格的配置。請參見結構體 ipu3_uapi_ae_grid_config,由於 Imgu 不支援輸出自動曝光統計資訊,因此使用者可以忽略此配置,而改用自動白平衡統計資訊中的 RGB 表。

權重

IPU3_UAPI_AE_WEIGHTS 基於網格中的 32x24 個塊。每個網格單元在稱為網格值的權重 LUT 中都有一個對應的值,全域性直方圖根據網格值和畫素值更新。

ae_ccm

顏色轉換矩陣預處理塊。

描述

從影像解析度計算 AE 網格,重新取樣 ae 權重。

struct ipu3_uapi_af_filter_config

用於對比度測量的 AF 2D 過濾器

定義:

struct ipu3_uapi_af_filter_config {
    struct {
        __u8 a1;
        __u8 a2;
        __u8 a3;
        __u8 a4;
    } y1_coeff_0;
    struct {
        __u8 a5;
        __u8 a6;
        __u8 a7;
        __u8 a8;
    } y1_coeff_1;
    struct {
        __u8 a9;
        __u8 a10;
        __u8 a11;
        __u8 a12;
    } y1_coeff_2;
    __u32 y1_sign_vec;
    struct {
        __u8 a1;
        __u8 a2;
        __u8 a3;
        __u8 a4;
    } y2_coeff_0;
    struct {
        __u8 a5;
        __u8 a6;
        __u8 a7;
        __u8 a8;
    } y2_coeff_1;
    struct {
        __u8 a9;
        __u8 a10;
        __u8 a11;
        __u8 a12;
    } y2_coeff_2;
    __u32 y2_sign_vec;
    struct {
        __u8 y_gen_rate_gr;
        __u8 y_gen_rate_r;
        __u8 y_gen_rate_b;
        __u8 y_gen_rate_gb;
    } y_calc;
    struct {
        __u32 reserved0:8;
        __u32 y1_nf:4;
        __u32 reserved1:4;
        __u32 y2_nf:4;
        __u32 reserved2:12;
    } nf;
};

成員

y1_coeff_0

過濾器 Y1,結構:3x11,支援對稱和反對稱型別。A12 是中心,A1-A11 是鄰居。用於分析低頻內容,用於計算 x 方向的梯度和。

y1_coeff_0.a1

過濾器 1 係數 A1,u8,預設 0。

y1_coeff_0.a2

過濾器 1 係數 A2,u8,預設 0。

y1_coeff_0.a3

過濾器 1 係數 A3,u8,預設 0。

y1_coeff_0.a4

過濾器 1 係數 A4,u8,預設 0。

y1_coeff_1

結構體

y1_coeff_1.a5

過濾器 1 係數 A5,u8,預設 0。

y1_coeff_1.a6

過濾器 1 係數 A6,u8,預設 0。

y1_coeff_1.a7

過濾器 1 係數 A7,u8,預設 0。

y1_coeff_1.a8

過濾器 1 係數 A8,u8,預設 0。

y1_coeff_2

結構體

y1_coeff_2.a9

過濾器 1 係數 A9,u8,預設 0。

y1_coeff_2.a10

過濾器 1 係數 A10,u8,預設 0。

y1_coeff_2.a11

過濾器 1 係數 A11,u8,預設 0。

y1_coeff_2.a12

過濾器 1 係數 A12,u8,預設 128。

y1_sign_vec

每個位對應一個係數符號位,0:正,1:負,預設 0。

y2_coeff_0

Y2,與 Y1 相同的結構。用於分析高頻內容。

y2_coeff_0.a1

過濾器 2 係數 A1,u8,預設 0。

y2_coeff_0.a2

過濾器 2 係數 A2,u8,預設 0。

y2_coeff_0.a3

過濾器 2 係數 A3,u8,預設 0。

y2_coeff_0.a4

過濾器 2 係數 A4,u8,預設 0。

y2_coeff_1

結構體

y2_coeff_1.a5

過濾器 2 係數 A5,u8,預設 0。

y2_coeff_1.a6

過濾器 2 係數 A6,u8,預設 0。

y2_coeff_1.a7

過濾器 2 係數 A7,u8,預設 0。

y2_coeff_1.a8

過濾器 2 係數 A8,u8,預設 0。

y2_coeff_2

結構體

y2_coeff_2.a9

過濾器 1 係數 A9,u8,預設 0。

y2_coeff_2.a10

過濾器 1 係數 A10,u8,預設 0。

y2_coeff_2.a11

過濾器 1 係數 A11,u8,預設 0。

y2_coeff_2.a12

過濾器 1 係數 A12,u8,預設 128。

y2_sign_vec

每個位對應一個係數符號位,0:正,1:負,預設 0。

y_calc

將拜耳四路轉換為 RGB+Y 值以用於構建直方圖的預處理。範圍 [0, 32],預設 8。

規則:y_gen_rate_gr + y_gen_rate_r + y_gen_rate_b + y_gen_rate_gb = 32 單個 Y 基於 Gr/R/B/Gb 的總和及其貢獻率計算。

y_calc.y_gen_rate_gr

Y 的貢獻率 Gr

y_calc.y_gen_rate_r

Y 的貢獻率 R

y_calc.y_gen_rate_b

Y 的貢獻率 B

y_calc.y_gen_rate_gb

Y 的貢獻率 Gb

nf

在 Y1/Y2 過濾器期間應應用的右移值,以確保所需的總記憶體為每個網格單元 2 個位元組。

nf.reserved0

已保留

nf.y1_nf

y1 卷積係數的歸一化因子,應該是濾波器係數的絕對值之和的 log2,預設 7 (2^7 = 128)。

nf.reserved1

已保留

nf.y2_nf

y2 的歸一化因子,應該是濾波器係數的絕對值之和的 log2。

nf.reserved2

已保留

struct ipu3_uapi_af_raw_buffer

AF 元資料

定義:

struct ipu3_uapi_af_raw_buffer {
    __u8 y_table[IPU3_UAPI_AF_Y_TABLE_MAX_SIZE]  ;
};

成員

y_table

每個顏色分量將分別與過濾器 1 和過濾器 2 進行卷積,結果將被求和並對每個單元格進行平均。

struct ipu3_uapi_af_config_s

AF 配置

定義:

struct ipu3_uapi_af_config_s {
    struct ipu3_uapi_af_filter_config filter_config  ;
    __u8 padding[4];
    struct ipu3_uapi_grid_config grid_cfg  ;
};

成員

filter_config

AF 使用 ipu3_uapi_af_filter_config 中配置的 Y1 和 Y2 過濾器

填充

填充

grid_cfg

請參見 ipu3_uapi_grid_config,預設解析度 16x16。對於大影像使用大網格大小,反之亦然。

struct ipu3_uapi_awb_fr_raw_buffer

AWB 濾波器響應元資料

定義:

struct ipu3_uapi_awb_fr_raw_buffer {
    __u8 meta_data[IPU3_UAPI_AWB_FR_BAYER_TABLE_MAX_SIZE]  ;
};

成員

meta_data

與 1D 過濾器卷積後在網格上輸出統計資訊。

struct ipu3_uapi_awb_fr_config_s

AWB 濾波器響應配置

定義:

struct ipu3_uapi_awb_fr_config_s {
    struct ipu3_uapi_grid_config grid_cfg;
    __u8 bayer_coeff[6];
    __u16 reserved1;
    __u32 bayer_sign;
    __u8 bayer_nf;
    __u8 reserved2[7];
};

成員

grid_cfg

網格配置,預設 16x16。

拜耳_coeff

1D 過濾器 1x11 中心對稱/反對稱。係數預設為 { 0, 0, 0, 0, 0, 128 }。透過其 11x1 鄰居的加權和單獨應用於每個拜耳通道的整個影像。

reserved1

已保留

拜耳_sign

濾波器係數的符號,預設 0。

拜耳_nf

卷積係數的歸一化因子,以確保所需的總記憶體在預定範圍內。NF 應該是濾波器係數的絕對值之和的 log2,範圍 [7, 14],預設 7。

reserved2

已保留

struct ipu3_uapi_4a_config

4A 配置

定義:

struct ipu3_uapi_4a_config {
    struct ipu3_uapi_awb_config_s awb_config  ;
    struct ipu3_uapi_ae_grid_config ae_grd_config;
    __u8 padding[20];
    struct ipu3_uapi_af_config_s af_config;
    struct ipu3_uapi_awb_fr_config_s awb_fr_config  ;
};

成員

awb_config

ipu3_uapi_awb_config_s,預設解析度 16x16

ae_grd_config

自動曝光統計 ipu3_uapi_ae_grid_config

填充

填充

af_config

自動對焦配置 ipu3_uapi_af_config_s

awb_fr_config

ipu3_uapi_awb_fr_config_s,預設解析度 16x16

struct ipu3_uapi_bubble_info

主機端除錯的 Bubble 資訊

定義:

struct ipu3_uapi_bubble_info {
    __u32 num_of_stripes  ;
    __u8 padding[28];
    __u32 num_sets;
    __u8 padding1[28];
    __u32 size_of_set;
    __u8 padding2[28];
    __u32 bubble_size;
    __u8 padding3[28];
};

成員

num_of_stripes

由於線路緩衝區記憶體的限制,單幀分為幾個稱為條帶的部分。條帶之間的分隔是垂直的。每個這樣的條帶都被 ISP 管道處理為單幀。

填充

填充位元組。

num_sets

集合數。

padding1

填充位元組。

size_of_set

集合大小。

padding2

填充位元組。

bubble_size

是以“集合”表示的 bubble 中的填充量。

padding3

填充位元組。

struct ipu3_uapi_ff_status

每個 3A 固定功能的使能位

定義:

struct ipu3_uapi_ff_status {
    __u32 awb_en  ;
    __u8 padding[28];
    __u32 ae_en;
    __u8 padding1[28];
    __u32 af_en;
    __u8 padding2[28];
    __u32 awb_fr_en;
    __u8 padding3[28];
};

成員

awb_en

自動白平衡使能

填充

填充配置

ae_en

自動曝光使能

padding1

填充配置

af_en

自動對焦使能

padding2

填充配置

awb_fr_en

awb 濾波器響應使能位

padding3

填充配置

struct ipu3_uapi_stats_3a

3A 統計

定義:

struct ipu3_uapi_stats_3a {
    struct ipu3_uapi_awb_raw_buffer awb_raw_buffer;
    struct ipu3_uapi_ae_raw_buffer_aligned ae_raw_buffer[IPU3_UAPI_MAX_STRIPES];
    struct ipu3_uapi_af_raw_buffer af_raw_buffer;
    struct ipu3_uapi_awb_fr_raw_buffer awb_fr_raw_buffer;
    struct ipu3_uapi_4a_config stats_4a_config;
    __u32 ae_join_buffers;
    __u8 padding[28];
    struct ipu3_uapi_stats_3a_bubble_info_per_stripe stats_3a_bubble_per_stripe;
    struct ipu3_uapi_ff_status stats_3a_status;
};

成員

awb_raw_buffer

自動白平衡元資料 ipu3_uapi_awb_raw_buffer

ae_raw_buffer

自動曝光原始資料 ipu3_uapi_ae_raw_buffer_aligned 當前 Imgu 不會向 ae_raw_buffer 輸出自動曝光統計資訊,3A 演算法等使用者可以使用 ipu3_uapi_awb_raw_buffer 中的 RGB 表進行自動曝光。

af_raw_buffer

ipu3_uapi_af_raw_buffer 用於自動對焦元資料

awb_fr_raw_buffer

值,由 ipu3_uapi_awb_fr_raw_buffer 指定

stats_4a_config

ipu3_uapi_4a_config 定義的 4a 統計配置。

ae_join_buffers

1 表示使用 ae_raw_buffer。

填充

填充配置

stats_3a_bubble_per_stripe

一個 ipu3_uapi_stats_3a_bubble_info_per_stripe

stats_3a_status

ipu3_uapi_ff_status 中設定的 3a 統計狀態

struct ipu3_uapi_bnr_static_config_wb_gains_config

白平衡增益

定義:

struct ipu3_uapi_bnr_static_config_wb_gains_config {
    __u16 gr;
    __u16 r;
    __u16 b;
    __u16 gb;
};

成員

gr

Gr 通道的白平衡增益。

r

R 通道的白平衡增益。

b

B 通道的白平衡增益。

gb

Gb 通道的白平衡增益。

描述

對於 BNR 引數,三個通道 [Ggr, Ggb, Gb, Gr] 的 WB 增益因子。它們的精度為 U3.13,範圍為 (0, 8),實際增益為 Gx + 1,通常為 Gx = 1。

Pout = {Pin * (1 + Gx)}。

struct ipu3_uapi_bnr_static_config_wb_gains_thr_config

閾值配置

定義:

struct ipu3_uapi_bnr_static_config_wb_gains_thr_config {
    __u8 gr;
    __u8 r;
    __u8 b;
    __u8 gb;
};

成員

gr

Gr 通道的白平衡閾值增益。

r

R 通道的白平衡閾值增益。

b

B 通道的白平衡閾值增益。

gb

Gb 通道的白平衡閾值增益。

描述

定義一個閾值,該閾值指定缺陷畫素與其相鄰畫素的差異程度(由動態缺陷畫素校正子塊使用)。精度 u4.4,範圍 [0, 8]。

struct ipu3_uapi_bnr_static_config_thr_coeffs_config

控制噪聲閾值的噪聲模型係數

定義:

struct ipu3_uapi_bnr_static_config_thr_coeffs_config {
    __u32 cf:13;
    __u32 reserved0:3;
    __u32 cg:5;
    __u32 ci:5;
    __u32 reserved1:1;
    __u32 r_nf:5;
};

成員

cf

閾值計算的自由係數,範圍 [0, 8191],預設 0。

reserved0

已保留

cg

閾值計算的增益係數,[0, 31],預設 8。

ci

閾值計算的強度係數。範圍 [0, 0x1f],預設 6。格式:u3.2(3 個最高有效位表示整數,2 個最低有效位表示小數部分,每個計數表示 0.25),例如,二進位制格式的 6 為 00110,轉換為 1.5

reserved1

已保留

r_nf

r^2 計算的歸一化移位值,範圍 [12, 20],其中 r 是畫素 [行,列] 從感測器中心到中心的半徑。預設 14。

描述

用於區分噪聲和細節的閾值。

struct ipu3_uapi_bnr_static_config_thr_ctrl_shd_config

著色配置

定義:

struct ipu3_uapi_bnr_static_config_thr_ctrl_shd_config {
    __u8 gr;
    __u8 r;
    __u8 b;
    __u8 gb;
};

成員

gr

係數定義 gr 通道的鏡頭著色增益近似

r

係數定義 r 通道的鏡頭著色增益近似

b

係數定義 b 通道的鏡頭著色增益近似

gb

係數定義 gb 通道的鏡頭著色增益近似

描述

由於著色校正,BNR 的噪聲模型 (NM) 自適應引數。以上所有引數的精度均為 u3.3,預設為 0。

struct ipu3_uapi_bnr_static_config_opt_center_config

光心配置

定義:

struct ipu3_uapi_bnr_static_config_opt_center_config {
    __s32 x_reset:13;
    __u32 reserved0:3;
    __s32 y_reset:13;
    __u32 reserved2:3;
};

成員

x_reset

X 的重置值(列開始 - X 中心)。精度 s12.0。

reserved0

已保留

y_reset

Y 的重置值(行開始 - Y 中心)。精度 s12.0。

reserved2

已保留

描述

由於著色校正,從角到光心的距離用於 NM 自適應(應基於著色表計算)

struct ipu3_uapi_bnr_static_config_lut_config

BNR 平方根查詢表

定義:

struct ipu3_uapi_bnr_static_config_lut_config {
    __u8 values[IPU3_UAPI_BNR_LUT_SIZE];
};

成員

平方根函式的預計算值。

描述

平方根運算的 LUT 實現。

struct ipu3_uapi_bnr_static_config_bp_ctrl_config

檢測壞畫素 (bp)

定義:

struct ipu3_uapi_bnr_static_config_bp_ctrl_config {
    __u32 bp_thr_gain:5;
    __u32 reserved0:2;
    __u32 defect_mode:1;
    __u32 bp_gain:6;
    __u32 reserved1:18;
    __u32 w0_coeff:4;
    __u32 reserved2:4;
    __u32 w1_coeff:4;
    __u32 reserved3:20;
};

成員

bp_thr_gain

定義一個閾值,該閾值指定缺陷畫素與其相鄰畫素的差異程度。閾值取決於演算法計算的去噪閾值。範圍 [4, 31],預設 4。

reserved0

已保留

defect_mode

定址缺陷畫素的模式,0 - 預期單個缺陷畫素,1 - 預期 2 個相鄰缺陷畫素,預設 1。

bp_gain

定義透過缺陷畫素的二階導數與透過相鄰畫素的二階導數的不同之處。u4.2,範圍 [0, 256],預設 8。

reserved1

已保留

w0_coeff

缺陷畫素校正的混合係數。精度 u4,範圍 [0, 8],預設 8。

reserved2

已保留

w1_coeff

啟用以避免不正確的缺陷畫素校正的影響。精度 u4,範圍 [1, 8],預設 8。

reserved3

已保留

struct ipu3_uapi_bnr_static_config_dn_detect_ctrl_config

去噪配置

定義:

struct ipu3_uapi_bnr_static_config_dn_detect_ctrl_config {
    __u32 alpha:4;
    __u32 beta:4;
    __u32 gamma:4;
    __u32 reserved0:4;
    __u32 max_inf:4;
    __u32 reserved1:7;
    __u32 gd_enable:1;
    __u32 bpc_enable:1;
    __u32 bnr_enable:1;
    __u32 ff_enable:1;
    __u32 reserved2:1;
};

成員

alpha

平滑濾波器的中心元素的權重。

beta

平滑濾波器的外圍元素的權重,預設 4。

伽馬

平滑濾波器的對角元素的權重,預設 4。

reserved0

已保留

max_inf

外圍元素或對角元素影響相對於預定義值的最大增加範圍:[0x5, 0xa]

reserved1

已保留

gd_enable

綠色視差使能控制,0 - 停用,1 - 啟用。

bpc_enable

壞畫素校正使能控制,0 - 停用,1 - 啟用。

bnr_enable

拜耳噪聲消除使能控制,0 - 停用,1 - 啟用。

ff_enable

固定功能使能,0 - 停用,1 - 啟用。

reserved2

已保留

描述

beta 和 gamma 引數定義噪聲消除濾波器的強度。

以上所有引數的精度均為 u0.4,範圍 [0, 0xf],格式:u0.4(無 / 零位表示整數,4 位表示小數部分,每個計數表示 0.0625),例如,0xf 轉換為 0.0625x15 = 0.9375

struct ipu3_uapi_bnr_static_config_opt_center_sqr_config

BNR 光學平方

定義:

struct ipu3_uapi_bnr_static_config_opt_center_sqr_config {
    __u32 x_sqr_reset;
    __u32 y_sqr_reset;
};

成員

x_sqr_reset

X^2 的重置值。

y_sqr_reset

Y^2 的重置值。

描述

請注意

  1. X 和 Y 參考 ipu3_uapi_bnr_static_config_opt_center_config

  2. 兩個結構都在閾值公式中用於計算 r^2,其中 r 是畫素 [行,列] 從感測器中心到中心的半徑。

struct ipu3_uapi_bnr_static_config

BNR 靜態配置

定義:

struct ipu3_uapi_bnr_static_config {
    struct ipu3_uapi_bnr_static_config_wb_gains_config wb_gains;
    struct ipu3_uapi_bnr_static_config_wb_gains_thr_config wb_gains_thr;
    struct ipu3_uapi_bnr_static_config_thr_coeffs_config thr_coeffs;
    struct ipu3_uapi_bnr_static_config_thr_ctrl_shd_config thr_ctrl_shd;
    struct ipu3_uapi_bnr_static_config_opt_center_config opt_center;
    struct ipu3_uapi_bnr_static_config_lut_config lut;
    struct ipu3_uapi_bnr_static_config_bp_ctrl_config bp_ctrl;
    struct ipu3_uapi_bnr_static_config_dn_detect_ctrl_config dn_detect_ctrl;
    __u32 column_size;
    struct ipu3_uapi_bnr_static_config_opt_center_sqr_config opt_center_sqr;
};

成員

wb_gains

白平衡增益 ipu3_uapi_bnr_static_config_wb_gains_config

wb_gains_thr

白平衡增益閾值,如 ipu3_uapi_bnr_static_config_wb_gains_thr_config 所定義

thr_coeffs

閾值的係數 ipu3_uapi_bnr_static_config_thr_coeffs_config

thr_ctrl_shd

著色閾值的控制 ipu3_uapi_bnr_static_config_thr_ctrl_shd_config

opt_center

光心 ipu3_uapi_bnr_static_config_opt_center_config

lut

查詢表 ipu3_uapi_bnr_static_config_lut_config

bp_ctrl

檢測並消除 struct ipu3_uapi_bnr_static_config_bp_ctrl_config 中定義的壞畫素

dn_detect_ctrl

檢測並消除噪聲。ipu3_uapi_bnr_static_config_dn_detect_ctrl_config

column_size

列中的畫素數。

opt_center_sqr

r^2 到光心的重置值,請參見 ipu3_uapi_bnr_static_config_opt_center_sqr_config

描述

以上引數和 opt_center_sqr 用於白平衡和著色。

struct ipu3_uapi_bnr_static_config_green_disparity

校正綠色視差

定義:

struct ipu3_uapi_bnr_static_config_green_disparity {
    __u32 gd_red:6;
    __u32 reserved0:2;
    __u32 gd_green:6;
    __u32 reserved1:2;
    __u32 gd_blue:6;
    __u32 reserved2:10;
    __u32 gd_black:14;
    __u32 reserved3:2;
    __u32 gd_shading:7;
    __u32 reserved4:1;
    __u32 gd_support:2;
    __u32 reserved5:1;
    __u32 gd_clip:1;
    __u32 gd_central_weight:4;
};

成員

gd_red

亮紅色區域中 gr 視差級別的著色增益係數。精度 u0.6,預設 4(0.0625)。

reserved0

已保留

gd_green

亮綠色區域中 gr 視差級別的著色增益係數。精度 u0.6,預設 4(0.0625)。

reserved1

已保留

gd_blue

亮藍色區域中 gr 視差級別的著色增益係數。精度 u0.6,預設 4(0.0625)。

reserved2

已保留

gd_black

黑暗區域中的最大綠色視差級別(假設更強的視差是影像細節)。精度 u14,預設 80。

reserved3

已保留

gd_shading

根據距影像中心的平方距離更改最大綠色視差級別。

reserved4

已保留

gd_support

在當前畫素鄰域中,與它的閾值差小於閾值的第二種綠色畫素的數量的下限。

reserved5

已保留

gd_clip

開啟/關閉綠色視差剪輯,[0, 1],預設 1。

gd_central_weight

在 9 畫素加權和中,中心畫素權重。

描述

紅色、綠色、藍色和黑色著色增益係數用於給定畫素的顏色值及其在影像中的座標計算閾值。

struct ipu3_uapi_dm_config

去馬賽克引數

定義:

struct ipu3_uapi_dm_config {
    __u32 dm_en:1;
    __u32 ch_ar_en:1;
    __u32 fcc_en:1;
    __u32 reserved0:13;
    __u32 frame_width:16;
    __u32 gamma_sc:5;
    __u32 reserved1:3;
    __u32 lc_ctrl:5;
    __u32 reserved2:3;
    __u32 cr_param1:5;
    __u32 reserved3:3;
    __u32 cr_param2:5;
    __u32 reserved4:3;
    __u32 coring_param:5;
    __u32 reserved5:27;
};

成員

dm_en

去馬賽克使能。

ch_ar_en

檢查器偽影移除使能標誌。預設值為 0。

fcc_en

假彩色校正 (FCC) 使能標誌。預設值為 0。

reserved0

已保留

frame_width

不關心

gamma_sc

銳化係數(Hamilton-Adams 插值中互補色的二維導數的係數)。u5,範圍 [0, 31],預設值為 8。

reserved1

已保留

lc_ctrl

引數,用於控制色度同質性度量在最終同質性度量計算中的權重。u5,範圍 [0, 31],預設值為 7。

reserved2

已保留

cr_param1

定義檢查器偽影移除功能增益的第一個引數。精度 u5,範圍 [0, 31],預設值為 8。

reserved3

已保留

cr_param2

定義檢查器偽影移除功能增益的第二個引數。精度 u5,範圍 [0, 31],預設值為 8。

reserved4

已保留

coring_param

定義假彩色校正操作的強度。低表示保留邊緣顏色,高表示保留灰色邊緣偽影。精度 u1.4,範圍 [0, 1.9375],預設值為 4 (0.25)。

reserved5

已保留

描述

demosaic 固定功能塊負責根據 demosaicing 演算法將 Bayer(馬賽克)影像轉換為彩色影像。

struct ipu3_uapi_ccm_mat_config

色彩校正矩陣

定義:

struct ipu3_uapi_ccm_mat_config {
    __s16 coeff_m11;
    __s16 coeff_m12;
    __s16 coeff_m13;
    __s16 coeff_o_r;
    __s16 coeff_m21;
    __s16 coeff_m22;
    __s16 coeff_m23;
    __s16 coeff_o_g;
    __s16 coeff_m31;
    __s16 coeff_m32;
    __s16 coeff_m33;
    __s16 coeff_o_b;
};

成員

coeff_m11

CCM 3x3 係數,範圍 [-65536, 65535]

coeff_m12

CCM 3x3 係數,範圍 [-8192, 8191]

coeff_m13

CCM 3x3 係數,範圍 [-32768, 32767]

coeff_o_r

偏差 3x1 係數,範圍 [-8191, 8181]

coeff_m21

CCM 3x3 係數,範圍 [-32767, 32767]

coeff_m22

CCM 3x3 係數,範圍 [-8192, 8191]

coeff_m23

CCM 3x3 係數,範圍 [-32768, 32767]

coeff_o_g

偏差 3x1 係數,範圍 [-8191, 8181]

coeff_m31

CCM 3x3 係數,範圍 [-32768, 32767]

coeff_m32

CCM 3x3 係數,範圍 [-8192, 8191]

coeff_m33

CCM 3x3 係數,範圍 [-32768, 32767]

coeff_o_b

偏差 3x1 係數,範圍 [-8191, 8181]

描述

透過應用 3x3 矩陣並新增偏差向量 O,將感測器特定的顏色空間轉換為標準 sRGB。該轉換基本上是 3 維顏色空間中的旋轉和平移。以下是預設值

9775, -2671, 1087, 0 -1071, 8303, 815, 0 -23, -7887, 16103, 0

struct ipu3_uapi_gamma_corr_ctrl

伽馬校正

定義:

struct ipu3_uapi_gamma_corr_ctrl {
    __u32 enable:1;
    __u32 reserved:31;
};

成員

enable

啟用伽馬校正。

已保留

已保留

struct ipu3_uapi_gamma_corr_lut

作為 LUT 實現的逐畫素色調對映。

定義:

struct ipu3_uapi_gamma_corr_lut {
    __u16 lut[IPU3_UAPI_GAMMA_CORR_LUT_ENTRIES];
};

成員

lut

伽馬函式的 256 個列表值。LUT[1].. LUT[256] 格式 u13.0,範圍 [0, 8191]。

描述

色調對映操作透過分段線性圖完成,該圖作為查詢表 (LUT) 實現。畫素分量輸入強度是圖的 X 軸,也就是表條目。

struct ipu3_uapi_gamma_config

伽馬配置

定義:

struct ipu3_uapi_gamma_config {
    struct ipu3_uapi_gamma_corr_ctrl gc_ctrl  ;
    struct ipu3_uapi_gamma_corr_lut gc_lut  ;
};

成員

gc_ctrl

伽馬校正的控制 ipu3_uapi_gamma_corr_ctrl

gc_lut

伽馬校正的查詢表 ipu3_uapi_gamma_corr_lut

struct ipu3_uapi_csc_mat_config

顏色空間轉換矩陣配置

定義:

struct ipu3_uapi_csc_mat_config {
    __s16 coeff_c11;
    __s16 coeff_c12;
    __s16 coeff_c13;
    __s16 coeff_b1;
    __s16 coeff_c21;
    __s16 coeff_c22;
    __s16 coeff_c23;
    __s16 coeff_b2;
    __s16 coeff_c31;
    __s16 coeff_c32;
    __s16 coeff_c33;
    __s16 coeff_b3;
};

成員

coeff_c11

轉換矩陣值,格式 s0.14,範圍 [-16384, 16383]。

coeff_c12

轉換矩陣值,格式 s0.14,範圍 [-8192, 8191]。

coeff_c13

轉換矩陣值,格式 s0.14,範圍 [-16384, 16383]。

coeff_b1

偏差 3x1 係數,s13.0 範圍 [-8192, 8191]。

coeff_c21

轉換矩陣值,格式 s0.14,範圍 [-16384, 16383]。

coeff_c22

轉換矩陣值,格式 s0.14,範圍 [-8192, 8191]。

coeff_c23

轉換矩陣值,格式 s0.14,範圍 [-16384, 16383]。

coeff_b2

偏差 3x1 係數,s13.0 範圍 [-8192, 8191]。

coeff_c31

轉換矩陣值,格式 s0.14,範圍 [-16384, 16383]。

coeff_c32

轉換矩陣值,格式 s0.14,範圍 [-8192, 8191]。

coeff_c33

轉換矩陣值,格式 s0.14,範圍 [-16384, 16383]。

coeff_b3

偏差 3x1 係數,s13.0 範圍 [-8192, 8191]。

描述

透過將畫素值乘以 3x3 矩陣並新增可選的偏差 3x1 向量,將每個畫素從 RGB 轉換為 YUV(Y - 亮度/亮度,UV - 色度)。以下是矩陣的預設值

4898, 9617, 1867, 0, -2410, -4732, 7143, 0, 10076, -8437, -1638, 0,

(例如,對於實數 0.299,0.299 * 2^14 變為 4898。)

struct ipu3_uapi_cds_params

色度下采樣

定義:

struct ipu3_uapi_cds_params {
    __u32 ds_c00:2;
    __u32 ds_c01:2;
    __u32 ds_c02:2;
    __u32 ds_c03:2;
    __u32 ds_c10:2;
    __u32 ds_c11:2;
    __u32 ds_c12:2;
    __u32 ds_c13:2;
    __u32 ds_nf:5;
    __u32 reserved0:3;
    __u32 csc_en:1;
    __u32 uv_bin_output:1;
    __u32 reserved1:6;
};

成員

ds_c00

範圍 [0, 3]

ds_c01

範圍 [0, 3]

ds_c02

範圍 [0, 3]

ds_c03

範圍 [0, 3]

ds_c10

範圍 [0, 3]

ds_c11

範圍 [0, 3]

ds_c12

範圍 [0, 3]

ds_c13

範圍 [0, 3]

ds_nf

色度輸出下采樣濾波器的歸一化因子,範圍 0,4,預設值為 2。

reserved0

已保留

csc_en

顏色空間轉換使能

uv_bin_output

0:輸出 YUV 4.2.0,1:輸出 YUV 4.2.2(預設)。

reserved1

已保留

描述

如果使用者未提供,則上述 4x2 濾波器將使用以下預設值

1, 3, 3, 1, 1, 3, 3, 1,

struct ipu3_uapi_shd_grid_config

Bayer 陰影(變暗)校正

定義:

struct ipu3_uapi_shd_grid_config {
    __u8 width;
    __u8 height;
    __u8 block_width_log2:3;
    __u8 reserved0:1;
    __u8 block_height_log2:3;
    __u8 reserved1:1;
    __u8 grid_height_per_slice;
    __s16 x_start;
    __s16 y_start;
};

成員

寬度

網格水平尺寸,u8,[8, 128],預設值為 73

高度

網格垂直尺寸,u8,[8, 128],預設值為 56

block_width_log2

以畫素計數表示的網格單元寬度的 Log2,u4,[0, 15],預設值為 5。

reserved0

已保留

block_height_log2

以畫素計數表示的網格單元高度的 Log2,u4,[0, 15],預設值為 6。

reserved1

已保留

grid_height_per_slice

SHD_MAX_CELLS_PER_SET/width。(其中 SHD_MAX_CELLS_PER_SET = 146)。

x_start

感測器左上角相對於 ROI 的 X 值,s13,[-4096, 0],預設值為 0,僅負值。

y_start

感測器左上角相對於 ROI 的 Y 值,s13,[-4096, 0],預設值為 0,僅負值。

struct ipu3_uapi_shd_general_config

陰影通用配置

定義:

struct ipu3_uapi_shd_general_config {
    __u32 init_set_vrt_offst_ul:8;
    __u32 shd_enable:1;
    __u32 gain_factor:2;
    __u32 reserved:21;
};

成員

init_set_vrt_offst_ul

設定垂直偏移,y_start >> block_height_log2 % grid_height_per_slice。

shd_enable

啟用陰影。

gain_factor

增益因子。移動計算的反陰影值。精度 u2。0x0 - 增益因子 [1, 5],表示不移動插值值。0x1 - 增益因子 [1, 9],表示插值移動 1。0x2 - 增益因子 [1, 17],表示插值移動 2。

已保留

已保留

描述

校正是透過將 4 個 Bayer 通道中的每一個的增益因子乘以感測器中的畫素位置的函式來執行的。

struct ipu3_uapi_shd_black_level_config

黑電平校正

定義:

struct ipu3_uapi_shd_black_level_config {
    __s16 bl_r;
    __s16 bl_gr;
    __s16 bl_gb;
    __s16 bl_b;
};

成員

bl_r

綠色紅色的 Bios 值。s11 範圍 [-2048, 2047]。

bl_gr

綠色藍色的 Bios 值。s11 範圍 [-2048, 2047]。

bl_gb

紅色的 Bios 值。s11 範圍 [-2048, 2047]。

bl_b

藍色的 Bios 值。s11 範圍 [-2048, 2047]。

struct ipu3_uapi_shd_config_static

陰影配置靜態

定義:

struct ipu3_uapi_shd_config_static {
    struct ipu3_uapi_shd_grid_config grid;
    struct ipu3_uapi_shd_general_config general;
    struct ipu3_uapi_shd_black_level_config black_level;
};

成員

網格

陰影網格配置 ipu3_uapi_shd_grid_config

general

陰影通用配置 ipu3_uapi_shd_general_config

black_level

陰影校正的黑電平配置,由 ipu3_uapi_shd_black_level_config 定義

struct ipu3_uapi_shd_lut

陰影增益因子查詢表。

定義:

struct ipu3_uapi_shd_lut {
    struct {
        struct {
            __u16 r;
            __u16 gr;
        } r_and_gr[IPU3_UAPI_SHD_MAX_CELLS_PER_SET];
        __u8 reserved1[24];
        struct {
            __u16 gb;
            __u16 b;
        } gb_and_b[IPU3_UAPI_SHD_MAX_CELLS_PER_SET];
        __u8 reserved2[24];
    } sets[IPU3_UAPI_SHD_MAX_CFG_SETS];
};

成員

sets

array

sets.r_and_gr

紅色和綠色 R 查詢表。

sets.r_and_gr.r

紅色陰影因子。

sets.r_and_gr.gr

綠色 R 陰影因子。

sets.reserved1

已保留

sets.gb_and_b

綠色 B 和藍色查詢表。

sets.gb_and_b.gb

綠色 B 陰影因子。

sets.gb_and_b.b

藍色陰影因子。

sets.reserved2

已保留

描述

對映到陰影校正 LUT 暫存器集。

struct ipu3_uapi_shd_config

著色配置

定義:

struct ipu3_uapi_shd_config {
    struct ipu3_uapi_shd_config_static shd  ;
    struct ipu3_uapi_shd_lut shd_lut  ;
};

成員

shd

陰影靜態配置,請參見 ipu3_uapi_shd_config_static

shd_lut

陰影查詢表 ipu3_uapi_shd_lut

struct ipu3_uapi_iefd_cux2

IEFd 配置單元 2 引數

定義:

struct ipu3_uapi_iefd_cux2 {
    __u32 x0:9;
    __u32 x1:9;
    __u32 a01:9;
    __u32 b01:5;
};

成員

x0

配置單元的 X0 點,u9.0,預設值為 0。

x1

配置單元的 X1 點,u9.0,預設值為 0。

a01

配置單元的斜率 A,s4.4,預設值為 0。

b01

斜率 B,始終為 0。

描述

計算權重以混合定向和非定向降噪元素

所有 CU 輸入都是無符號的,寫入暫存器時將轉換為帶符號,即 a01 將以 s4.4 格式寫入 9 位暫存器。資料精度 s4.4 表示整數部分為 4 位,小數部分為 4 位,第一位表示正值或負值。對於使用者空間軟體(通常是成像庫),CU 斜率值的計算應基於斜率解析度 1/16(二進位制 0.0001 - 最小間隔值),斜率值範圍為 [-256, +255]。這適用於 ipu3_uapi_iefd_cux6_edipu3_uapi_iefd_cux2_1ipu3_uapi_iefd_cux2_1ipu3_uapi_iefd_cux4ipu3_uapi_iefd_cux6_rad

注意

配置單元的每個例項都需要 n 個點的 X 座標以及驅動程式基於校準引數計算的點之間的斜率 A 因子。

struct ipu3_uapi_iefd_cux6_ed

計算非定向銳化元素的強度,邊緣細節 (ED) 的配置單元 6。

定義:

struct ipu3_uapi_iefd_cux6_ed {
    __u32 x0:9;
    __u32 x1:9;
    __u32 x2:9;
    __u32 reserved0:5;
    __u32 x3:9;
    __u32 x4:9;
    __u32 x5:9;
    __u32 reserved1:5;
    __u32 a01:9;
    __u32 a12:9;
    __u32 a23:9;
    __u32 reserved2:5;
    __u32 a34:9;
    __u32 a45:9;
    __u32 reserved3:14;
    __u32 b01:9;
    __u32 b12:9;
    __u32 b23:9;
    __u32 reserved4:5;
    __u32 b34:9;
    __u32 b45:9;
    __u32 reserved5:14;
};

成員

x0

點 0 的 X 座標,u9.0,預設值為 0。

x1

點 1 的 X 座標,u9.0,預設值為 0。

x2

點 2 的 X 座標,u9.0,預設值為 0。

reserved0

已保留

x3

點 3 的 X 座標,u9.0,預設值為 0。

x4

點 4 的 X 座標,u9.0,預設值為 0。

x5

點 5 的 X 座標,u9.0,預設值為 0。

reserved1

已保留

a01

斜率 A 點 01,s4.4,預設值為 0。

a12

斜率 A 點 12,s4.4,預設值為 0。

a23

斜率 A 點 23,s4.4,預設值為 0。

reserved2

已保留

a34

斜率 A 點 34,s4.4,預設值為 0。

a45

斜率 A 點 45,s4.4,預設值為 0。

reserved3

已保留

b01

斜率 B 點 01,s4.4,預設值為 0。

b12

斜率 B 點 12,s4.4,預設值為 0。

b23

斜率 B 點 23,s4.4,預設值為 0。

reserved4

已保留

b34

斜率 B 點 34,s4.4,預設值為 0。

b45

斜率 B 點 45,s4.4,預設值為 0。

reserved5

保留。

struct ipu3_uapi_iefd_cux2_1

計算非定向降噪元素的強度應用。

定義:

struct ipu3_uapi_iefd_cux2_1 {
    __u32 x0:9;
    __u32 x1:9;
    __u32 a01:9;
    __u32 reserved1:5;
    __u32 b01:8;
    __u32 reserved2:24;
};

成員

x0

配置單元的 X0 點,u9.0,預設值為 0。

x1

配置單元的 X1 點,u9.0,預設值為 0。

a01

配置單元的斜率 A,s4.4,預設值為 0。

reserved1

已保留

b01

配置單元的偏移量 B0,u7.0,預設值為 0。

reserved2

已保留

struct ipu3_uapi_iefd_cux4

計算非定向銳化元素的強度。

定義:

struct ipu3_uapi_iefd_cux4 {
    __u32 x0:9;
    __u32 x1:9;
    __u32 x2:9;
    __u32 reserved0:5;
    __u32 x3:9;
    __u32 a01:9;
    __u32 a12:9;
    __u32 reserved1:5;
    __u32 a23:9;
    __u32 b01:8;
    __u32 b12:8;
    __u32 reserved2:7;
    __u32 b23:8;
    __u32 reserved3:24;
};

成員

x0

配置單元的 X0 點,u9.0,預設值為 0。

x1

配置單元的 X1 點,u9.0,預設值為 0。

x2

配置單元的 X2 點,u9.0,預設值為 0。

reserved0

已保留

x3

配置單元的 X3 點,u9.0,預設值為 0。

a01

配置單元的斜率 A0,s4.4,預設值為 0。

a12

配置單元的斜率 A1,s4.4,預設值為 0。

reserved1

已保留

a23

配置單元的斜率 A2,s4.4,預設值為 0。

b01

配置單元的偏移量 B0,s7.0,預設值為 0。

b12

配置單元的偏移量 B1,s7.0,預設值為 0。

reserved2

已保留

b23

配置單元的偏移量 B2,s7.0,預設值為 0。

reserved3

已保留

struct ipu3_uapi_iefd_cux6_rad

徑向配置單元 (CU)

定義:

struct ipu3_uapi_iefd_cux6_rad {
    __u32 x0:8;
    __u32 x1:8;
    __u32 x2:8;
    __u32 x3:8;
    __u32 x4:8;
    __u32 x5:8;
    __u32 reserved1:16;
    __u32 a01:16;
    __u32 a12:16;
    __u32 a23:16;
    __u32 a34:16;
    __u32 a45:16;
    __u32 reserved2:16;
    __u32 b01:10;
    __u32 b12:10;
    __u32 b23:10;
    __u32 reserved4:2;
    __u32 b34:10;
    __u32 b45:10;
    __u32 reserved5:12;
};

成員

x0

配置單元徑向的 x0 點,u8.0

x1

配置單元徑向的 x1 點,u8.0

x2

配置單元徑向的 x2 點,u8.0

x3

配置單元徑向的 x3 點,u8.0

x4

配置單元徑向的 x4 點,u8.0

x5

配置單元徑向的 x5 點,u8.0

reserved1

已保留

a01

配置單元徑向的斜率 A,s7.8

a12

配置單元徑向的斜率 A,s7.8

a23

配置單元徑向的斜率 A,s7.8

a34

配置單元徑向的斜率 A,s7.8

a45

配置單元徑向的斜率 A,s7.8

reserved2

已保留

b01

配置單元徑向的斜率 B,s9.0

b12

配置單元徑向的斜率 B,s9.0

b23

配置單元徑向的斜率 B,s9.0

reserved4

已保留

b34

配置單元徑向的斜率 B,s9.0

b45

配置單元徑向的斜率 B,s9.0

reserved5

已保留

struct ipu3_uapi_yuvp1_iefd_cfg_units

IEFd 配置單元引數

定義:

struct ipu3_uapi_yuvp1_iefd_cfg_units {
    struct ipu3_uapi_iefd_cux2 cu_1;
    struct ipu3_uapi_iefd_cux6_ed cu_ed;
    struct ipu3_uapi_iefd_cux2 cu_3;
    struct ipu3_uapi_iefd_cux2_1 cu_5;
    struct ipu3_uapi_iefd_cux4 cu_6;
    struct ipu3_uapi_iefd_cux2 cu_7;
    struct ipu3_uapi_iefd_cux4 cu_unsharp;
    struct ipu3_uapi_iefd_cux6_rad cu_radial;
    struct ipu3_uapi_iefd_cux2 cu_vssnlm;
};

成員

cu_1

計算權重以混合定向和非定向降噪元素。請參見 ipu3_uapi_iefd_cux2

cu_ed

計算非定向銳化元素的強度,請參見 ipu3_uapi_iefd_cux6_ed

cu_3

計算權重以混合定向和非定向降噪元素。A ipu3_uapi_iefd_cux2

cu_5

計算非定向降噪元素的強度應用,使用 ipu3_uapi_iefd_cux2_1

cu_6

計算非定向銳化元素的強度。請參見 ipu3_uapi_iefd_cux4

cu_7

計算權重以混合定向和非定向降噪元素。使用 ipu3_uapi_iefd_cux2

cu_unsharp

非銳化的配置單元 ipu3_uapi_iefd_cux4

cu_radial

徑向的配置單元 ipu3_uapi_iefd_cux6_rad

cu_vssnlm

vssnlm 的配置單元 ipu3_uapi_iefd_cux2

struct ipu3_uapi_yuvp1_iefd_config_s

IEFd 配置

定義:

struct ipu3_uapi_yuvp1_iefd_config_s {
    __u32 horver_diag_coeff:7;
    __u32 reserved0:1;
    __u32 clamp_stitch:6;
    __u32 reserved1:2;
    __u32 direct_metric_update:5;
    __u32 reserved2:3;
    __u32 ed_horver_diag_coeff:7;
    __u32 reserved3:1;
};

成員

horver_diag_coeff

梯度補償。與垂直/水平(0/90 度)相比,對角線(45/135 度)方向的係數應近似校正 1/sqrt(2)。

reserved0

已保留

clamp_stitch

鉗位邊緣值和非鉗位邊緣值之間拼接的斜率

reserved1

已保留

direct_metric_update

更新方向度量的係數

reserved2

已保留

ed_horver_diag_coeff

徑向係數,用於補償垂直/水平梯度計算和對角線梯度計算的不同距離(約 1/sqrt(2))

reserved3

已保留

struct ipu3_uapi_yuvp1_iefd_control

IEFd 控制

定義:

struct ipu3_uapi_yuvp1_iefd_control {
    __u32 iefd_en:1;
    __u32 denoise_en:1;
    __u32 direct_smooth_en:1;
    __u32 rad_en:1;
    __u32 vssnlm_en:1;
    __u32 reserved:27;
};

成員

iefd_en

啟用 IEFd

denoise_en

啟用降噪

direct_smooth_en

啟用方向平滑

rad_en

啟用徑向更新

vssnlm_en

啟用 VSSNLM 輸出濾波器

已保留

已保留

struct ipu3_uapi_sharp_cfg

銳化配置

定義:

struct ipu3_uapi_sharp_cfg {
    __u32 nega_lmt_txt:13;
    __u32 reserved0:19;
    __u32 posi_lmt_txt:13;
    __u32 reserved1:19;
    __u32 nega_lmt_dir:13;
    __u32 reserved2:19;
    __u32 posi_lmt_dir:13;
    __u32 reserved3:19;
};

成員

nega_lmt_txt

紋理的負過沖的銳化限制。

reserved0

已保留

posi_lmt_txt

紋理的正過沖的銳化限制。

reserved1

已保留

nega_lmt_dir

方向(邊緣)的負過沖的銳化限制。

reserved2

已保留

posi_lmt_dir

方向(邊緣)的正過沖的銳化限制。

reserved3

已保留

描述

定點型別 u13.0,範圍 [0, 8191]。

struct ipu3_uapi_far_w

遠子組的銳化配置

定義:

struct ipu3_uapi_far_w {
    __u32 dir_shrp:7;
    __u32 reserved0:1;
    __u32 dir_dns:7;
    __u32 reserved1:1;
    __u32 ndir_dns_powr:7;
    __u32 reserved2:9;
};

成員

dir_shrp

寬直接銳化的權重,u1.6,範圍 [0, 64],預設值為 64。

reserved0

已保留

dir_dns

寬直接降噪的權重,u1.6,範圍 [0, 64],預設值為 0。

reserved1

已保留

ndir_dns_powr

非直接降噪的強度,精度 u1.6,範圍 [0, 64],預設值為 64。

reserved2

已保留

struct ipu3_uapi_unsharp_cfg

非銳化配置

定義:

struct ipu3_uapi_unsharp_cfg {
    __u32 unsharp_weight:7;
    __u32 reserved0:1;
    __u32 unsharp_amount:9;
    __u32 reserved1:15;
};

成員

unsharp_weight

非銳化蒙版混合權重。u1.6,範圍 [0, 64],預設值為 16。0 - 已停用,64 - 僅使用非銳化。

reserved0

已保留

unsharp_amount

非銳化蒙版量,u4.5,範圍 [0, 511],預設值為 0。

reserved1

已保留

struct ipu3_uapi_yuvp1_iefd_shrp_cfg

IEFd 銳度配置

定義:

struct ipu3_uapi_yuvp1_iefd_shrp_cfg {
    struct ipu3_uapi_sharp_cfg cfg;
    struct ipu3_uapi_far_w far_w;
    struct ipu3_uapi_unsharp_cfg unshrp_cfg;
};

成員

cfg

銳度配置 ipu3_uapi_sharp_cfg

far_w

寬範圍配置,值由 ipu3_uapi_far_w 指定:5x5 環境分為 2 個子組,3x3 最近鄰(8 個畫素,稱為“近”)以及周圍的二階鄰域(16 個畫素,稱為“遠”)。

unshrp_cfg

非銳度配置。ipu3_uapi_unsharp_cfg

struct ipu3_uapi_unsharp_coef0

非銳化蒙版係數

定義:

struct ipu3_uapi_unsharp_coef0 {
    __u32 c00:9;
    __u32 c01:9;
    __u32 c02:9;
    __u32 reserved:5;
};

成員

c00

Coeff11,s0.8,範圍 [-255, 255],預設值為 1。

c01

Coeff12,s0.8,範圍 [-255, 255],預設值為 5。

c02

Coeff13,s0.8,範圍 [-255, 255],預設值為 9。

已保留

已保留

描述

通用銳化支援的可配置暫存器。

struct ipu3_uapi_unsharp_coef1

非銳化蒙版係數

定義:

struct ipu3_uapi_unsharp_coef1 {
    __u32 c11:9;
    __u32 c12:9;
    __u32 c22:9;
    __u32 reserved:5;
};

成員

c11

Coeff22,s0.8,範圍 [-255, 255],預設值為 29。

c12

Coeff23,s0.8,範圍 [-255, 255],預設值為 55。

c22

Coeff33,s0.8,範圍 [-255, 255],預設值為 96。

已保留

已保留

struct ipu3_uapi_yuvp1_iefd_unshrp_cfg

非銳化蒙版配置

定義:

struct ipu3_uapi_yuvp1_iefd_unshrp_cfg {
    struct ipu3_uapi_unsharp_coef0 unsharp_coef0;
    struct ipu3_uapi_unsharp_coef1 unsharp_coef1;
};

成員

unsharp_coef0

非銳化係數 0 配置。請參見 ipu3_uapi_unsharp_coef0

unsharp_coef1

非銳化係數 1 配置。請參見 ipu3_uapi_unsharp_coef1

struct ipu3_uapi_radial_reset_xy

徑向座標重置

定義:

struct ipu3_uapi_radial_reset_xy {
    __s32 x:13;
    __u32 reserved0:3;
    __s32 y:13;
    __u32 reserved1:3;
};

成員

x

徑向重置 x 座標。精度 s12,[-4095, 4095],預設值為 0。

reserved0

已保留

y

徑向中心 y 座標。精度 s12,[-4095, 4095],預設值為 0。

reserved1

已保留

struct ipu3_uapi_radial_reset_x2

徑向 X^2 重置

定義:

struct ipu3_uapi_radial_reset_x2 {
    __u32 x2:24;
    __u32 reserved:8;
};

成員

x2

徑向重置 x^2 座標。精度 u24,預設值為 0。

已保留

已保留

struct ipu3_uapi_radial_reset_y2

徑向 Y^2 重置

定義:

struct ipu3_uapi_radial_reset_y2 {
    __u32 y2:24;
    __u32 reserved:8;
};

成員

y2

徑向重置 y^2 座標。精度 u24,預設值為 0。

已保留

已保留

struct ipu3_uapi_radial_cfg

徑向配置

定義:

struct ipu3_uapi_radial_cfg {
    __u32 rad_nf:4;
    __u32 reserved0:4;
    __u32 rad_inv_r2:7;
    __u32 reserved1:17;
};

成員

rad_nf

徑向。R^2 歸一化因子按 2^ - (15 + scale) 縮小

reserved0

已保留

rad_inv_r2

徑向 R^-2 歸一化為 (0.5..1)。精度 u7,範圍 [0, 127]。

reserved1

已保留

struct ipu3_uapi_rad_far_w

徑向 FAR 子組

定義:

struct ipu3_uapi_rad_far_w {
    __u32 rad_dir_far_sharp_w:8;
    __u32 rad_dir_far_dns_w:8;
    __u32 rad_ndir_far_dns_power:8;
    __u32 reserved:8;
};

成員

rad_dir_far_sharp_w

寬直接銳化的權重,u1.6,範圍 [0, 64],預設值為 64。

rad_dir_far_dns_w

寬直接降噪的權重,u1.6,範圍 [0, 64],預設值為 0。

rad_ndir_far_dns_power

非直接銳化的強度,u1.6,範圍 [0, 64],預設值為 0。

已保留

已保留

struct ipu3_uapi_cu_cfg0

半徑配置單元 cfg0 暫存器

定義:

struct ipu3_uapi_cu_cfg0 {
    __u32 cu6_pow:7;
    __u32 reserved0:1;
    __u32 cu_unsharp_pow:7;
    __u32 reserved1:1;
    __u32 rad_cu6_pow:7;
    __u32 reserved2:1;
    __u32 rad_cu_unsharp_pow:6;
    __u32 reserved3:2;
};

成員

cu6_pow

CU6 的強度。非直接銳化的強度,u3.4。

reserved0

已保留

cu_unsharp_pow

非銳化蒙版的強度,u2.4。

reserved1

已保留

rad_cu6_pow

徑向/角落 CU6。定向銳化的強度,u3.4。

reserved2

已保留

rad_cu_unsharp_pow

非銳化蒙版的徑向強度,u2.4。

reserved3

已保留

struct ipu3_uapi_cu_cfg1

半徑配置單元 cfg1 暫存器

定義:

struct ipu3_uapi_cu_cfg1 {
    __u32 rad_cu6_x1:9;
    __u32 reserved0:1;
    __u32 rad_cu_unsharp_x1:9;
    __u32 reserved1:13;
};

成員

rad_cu6_x1

配置單元 6 的 X1 點,精度 u9.0。

reserved0

已保留

rad_cu_unsharp_x1

徑向/角落點的配置單元非銳化的 X1 點,精度 u9.0。

reserved1

已保留

struct ipu3_uapi_yuvp1_iefd_rad_cfg

IEFd 引數在圖片平面上沿徑向變化。

定義:

struct ipu3_uapi_yuvp1_iefd_rad_cfg {
    struct ipu3_uapi_radial_reset_xy reset_xy;
    struct ipu3_uapi_radial_reset_x2 reset_x2;
    struct ipu3_uapi_radial_reset_y2 reset_y2;
    struct ipu3_uapi_radial_cfg cfg;
    struct ipu3_uapi_rad_far_w rad_far_w;
    struct ipu3_uapi_cu_cfg0 cu_cfg0;
    struct ipu3_uapi_cu_cfg1 cu_cfg1;
};

成員

reset_xy

在徑向計算中重置 xy 值。ipu3_uapi_radial_reset_xy

reset_x2

在徑向計算中重置 x 平方值。請參見 struct ipu3_uapi_radial_reset_x2

reset_y2

在徑向計算中重置 y 平方值。請參見 struct ipu3_uapi_radial_reset_y2

cfg

徑向配置在 ipu3_uapi_radial_cfg 中定義

rad_far_w

寬範圍徑向的權重。ipu3_uapi_rad_far_w

cu_cfg0

配置單元 0。請參見 ipu3_uapi_cu_cfg0

cu_cfg1

配置單元 1。請參見 ipu3_uapi_cu_cfg1

struct ipu3_uapi_vss_lut_x

Vssnlm LUT x0/x1/x2

定義:

struct ipu3_uapi_vss_lut_x {
    __u32 vs_x0:8;
    __u32 vs_x1:8;
    __u32 vs_x2:8;
    __u32 reserved2:8;
};

成員

vs_x0

Vssnlm LUT x0,精度 u8,範圍 [0, 255],預設值為 16。

vs_x1

Vssnlm LUT x1,精度 u8,範圍 [0, 255],預設值為 32。

vs_x2

Vssnlm LUT x2,精度 u8,範圍 [0, 255],預設值為 64。

reserved2

已保留

struct ipu3_uapi_vss_lut_y

Vssnlm LUT y0/y1/y2

定義:

struct ipu3_uapi_vss_lut_y {
    __u32 vs_y1:4;
    __u32 reserved0:4;
    __u32 vs_y2:4;
    __u32 reserved1:4;
    __u32 vs_y3:4;
    __u32 reserved2:12;
};

成員

vs_y1

Vssnlm LUT y1,精度 u4,範圍 [0, 8],預設值為 1。

reserved0

已保留

vs_y2

Vssnlm LUT y2,精度 u4,範圍 [0, 8],預設值為 3。

reserved1

已保留

vs_y3

Vssnlm LUT y3,精度 u4,範圍 [0, 8],預設值為 8。

reserved2

已保留

struct ipu3_uapi_yuvp1_iefd_vssnlm_cfg

IEFd Vssnlm 查詢表

定義:

struct ipu3_uapi_yuvp1_iefd_vssnlm_cfg {
    struct ipu3_uapi_vss_lut_x vss_lut_x;
    struct ipu3_uapi_vss_lut_y vss_lut_y;
};

成員

vss_lut_x

vss 查詢表。請參見 ipu3_uapi_vss_lut_x 說明

vss_lut_y

vss 查詢表。請參見 ipu3_uapi_vss_lut_y 說明

struct ipu3_uapi_yuvp1_iefd_config

IEFd 配置

定義:

struct ipu3_uapi_yuvp1_iefd_config {
    struct ipu3_uapi_yuvp1_iefd_cfg_units units;
    struct ipu3_uapi_yuvp1_iefd_config_s config;
    struct ipu3_uapi_yuvp1_iefd_control control;
    struct ipu3_uapi_yuvp1_iefd_shrp_cfg sharp;
    struct ipu3_uapi_yuvp1_iefd_unshrp_cfg unsharp;
    struct ipu3_uapi_yuvp1_iefd_rad_cfg rad;
    struct ipu3_uapi_yuvp1_iefd_vssnlm_cfg vsslnm;
};

成員

units

配置單元設定,ipu3_uapi_yuvp1_iefd_cfg_units

配置

configuration,由 ipu3_uapi_yuvp1_iefd_config_s 定義

control

控制設定,由 ipu3_uapi_yuvp1_iefd_control 定義

sharp

銳度設定,由 ipu3_uapi_yuvp1_iefd_shrp_cfg 定義

unsharp

非銳度設定,由 ipu3_uapi_yuvp1_iefd_unshrp_cfg 定義

rad

徑向設定,由 ipu3_uapi_yuvp1_iefd_rad_cfg 定義

vsslnm

vsslnm 設定,由 ipu3_uapi_yuvp1_iefd_vssnlm_cfg 定義

struct ipu3_uapi_yuvp1_yds_config

Y 下采樣配置

定義:

struct ipu3_uapi_yuvp1_yds_config {
    __u32 c00:2;
    __u32 c01:2;
    __u32 c02:2;
    __u32 c03:2;
    __u32 c10:2;
    __u32 c11:2;
    __u32 c12:2;
    __u32 c13:2;
    __u32 norm_factor:5;
    __u32 reserved0:4;
    __u32 bin_output:1;
    __u32 reserved1:6;
};

成員

c00

範圍 [0, 3],預設值為 0x0

c01

範圍 [0, 3],預設值為 0x1

c02

範圍 [0, 3],預設值為 0x1

c03

範圍 [0, 3],預設值為 0x0

c10

範圍 [0, 3],預設值為 0x0

c11

範圍 [0, 3],預設值為 0x1

c12

範圍 [0, 3],預設值為 0x1

c13

範圍 [0, 3],預設值為 0x0

norm_factor

歸一化因子,範圍 [0, 4],預設值為 2 0 - 除以 1 1 - 除以 2 2 - 除以 4 3 - 除以 8 4 - 除以 16

reserved0

已保留

bin_output

兩個可選模式中的亮度通道下采樣 0 - 二進位制輸出 4.2.0(預設),1 輸出 4.2.2。

reserved1

已保留

描述

以上是色度輸出下采樣的 4x2 濾波器係數。

struct ipu3_uapi_yuvp1_chnr_enable_config

色度降噪使能

定義:

struct ipu3_uapi_yuvp1_chnr_enable_config {
    __u32 enable:1;
    __u32 yuv_mode:1;
    __u32 reserved0:14;
    __u32 col_size:12;
    __u32 reserved1:4;
};

成員

enable

啟用/停用色度降噪

yuv_mode

0 - YUV420, 1 - YUV422

reserved0

已保留

col_size

幀中的列數,最大寬度為 2560

reserved1

已保留

struct ipu3_uapi_yuvp1_chnr_coring_config

UV 的 Coring 閾值

定義:

struct ipu3_uapi_yuvp1_chnr_coring_config {
    __u32 u:13;
    __u32 reserved0:3;
    __u32 v:13;
    __u32 reserved1:3;
};

成員

u

U coring 電平,u0.13,範圍 [0.0, 1.0],預設值為 0.0

reserved0

已保留

v

V coring 電平,u0.13,範圍 [0.0, 1.0],預設值為 0.0

reserved1

已保留

struct ipu3_uapi_yuvp1_chnr_sense_gain_config

色度降噪增益

定義:

struct ipu3_uapi_yuvp1_chnr_sense_gain_config {
    __u32 vy:8;
    __u32 vu:8;
    __u32 vv:8;
    __u32 reserved0:8;
    __u32 hy:8;
    __u32 hu:8;
    __u32 hv:8;
    __u32 reserved1:8;
};

成員

vy

Y 的水平邊緣的靈敏度,預設值為 100

vu

U 的水平邊緣的靈敏度,預設值為 100

vv

V 的水平邊緣的靈敏度,預設值為 100

reserved0

已保留

hy

Y 的垂直邊緣的靈敏度,預設值為 50

hu

U 的垂直邊緣的靈敏度,預設值為 50

hv

V 的垂直邊緣的靈敏度,預設值為 50

reserved1

已保留

描述

所有靈敏度增益引數的精度為 u13.0,範圍 [0, 8191]。

struct ipu3_uapi_yuvp1_chnr_iir_fir_config

色度 IIR/FIR 濾波器配置

定義:

struct ipu3_uapi_yuvp1_chnr_iir_fir_config {
    __u32 fir_0h:6;
    __u32 reserved0:2;
    __u32 fir_1h:6;
    __u32 reserved1:2;
    __u32 fir_2h:6;
    __u32 dalpha_clip_val:9;
    __u32 reserved2:1;
};

成員

fir_0h

水平 FIR 中中心抽頭的值,範圍 [0, 32],預設值為 8。

reserved0

已保留

fir_1h

水平 FIR 中距離 1 的值,範圍 [0, 32],預設值為 12。

reserved1

已保留

fir_2h

水平 FIR 中距離 2 抽頭的值,範圍 [0, 32],預設值為 0。

dalpha_clip_val

IIR 中前一行的權重,範圍 [1, 256],預設值為 0。

reserved2

已保留

struct ipu3_uapi_yuvp1_chnr_config

色度降噪配置

定義:

struct ipu3_uapi_yuvp1_chnr_config {
    struct ipu3_uapi_yuvp1_chnr_enable_config enable;
    struct ipu3_uapi_yuvp1_chnr_coring_config coring;
    struct ipu3_uapi_yuvp1_chnr_sense_gain_config sense_gain;
    struct ipu3_uapi_yuvp1_chnr_iir_fir_config iir_fir;
};

成員

enable

色度降噪使能,請參見 ipu3_uapi_yuvp1_chnr_enable_config

coring

色度降噪的 coring 配置,請參見 ipu3_uapi_yuvp1_chnr_coring_config

sense_gain

色度降噪的靈敏度配置,請參見 ipu3_uapi_yuvp1_chnr_sense_gain_config

iir_fir

色度降噪的 iir 和 fir 配置,請參見 ipu3_uapi_yuvp1_chnr_iir_fir_config

struct ipu3_uapi_yuvp1_y_ee_nr_lpf_config

亮度 (Y) 邊緣增強低通濾波器係數

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_lpf_config {
    __u32 a_diag:5;
    __u32 reserved0:3;
    __u32 a_periph:5;
    __u32 reserved1:3;
    __u32 a_cent:5;
    __u32 reserved2:9;
    __u32 enable:1;
};

成員

a_diag

平滑對角線係數,u5.0。

reserved0

已保留

a_periph

影像平滑外圍,u5.0。

reserved1

已保留

a_cent

影像平滑中心繫數,u5.0。

reserved2

已保留

enable

0:停用 Y_EE_NR,輸出 = 輸入;1:啟用 Y_EE_NR。

struct ipu3_uapi_yuvp1_y_ee_nr_sense_config

亮度 (Y) 邊緣增強降噪靈敏度增益

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_sense_config {
    __u32 edge_sense_0:13;
    __u32 reserved0:3;
    __u32 delta_edge_sense:13;
    __u32 reserved1:3;
    __u32 corner_sense_0:13;
    __u32 reserved2:3;
    __u32 delta_corner_sense:13;
    __u32 reserved3:3;
};

成員

edge_sense_0

黑暗區域中邊緣的靈敏度。u13.0,預設值為 8191。

reserved0

已保留

delta_edge_sense

明亮和黑暗區域之間邊緣靈敏度的差異。 u13.0,預設值為 0。

reserved1

已保留

corner_sense_0

黑暗區域中角落的靈敏度。 u13.0,預設值為 0。

reserved2

已保留

delta_corner_sense

明亮和黑暗區域之間角落靈敏度的差異。 u13.0,預設值為 8191。

reserved3

已保留

struct ipu3_uapi_yuvp1_y_ee_nr_gain_config

亮度 (Y) 邊緣增強降噪增益配置

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_gain_config {
    __u32 gain_pos_0:5;
    __u32 reserved0:3;
    __u32 delta_gain_posi:5;
    __u32 reserved1:3;
    __u32 gain_neg_0:5;
    __u32 reserved2:3;
    __u32 delta_gain_neg:5;
    __u32 reserved3:3;
};

成員

gain_pos_0

黑暗區域中正邊緣的增益。 u5.0, [0, 16], 預設值 2。

reserved0

已保留

delta_gain_posi

明亮和黑暗區域之間正邊緣的增益差異。 u5.0, [0, 16], 預設值 0。

reserved1

已保留

gain_neg_0

黑暗區域中負邊緣的增益。 u5.0, [0, 16], 預設值 8。

reserved2

已保留

delta_gain_neg

明亮和黑暗區域之間負邊緣的增益差異。 u5.0, [0, 16], 預設值 0。

reserved3

已保留

struct ipu3_uapi_yuvp1_y_ee_nr_clip_config

亮度 (Y) 邊緣增強降噪剪裁配置

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_clip_config {
    __u32 clip_pos_0:5;
    __u32 reserved0:3;
    __u32 delta_clip_posi:5;
    __u32 reserved1:3;
    __u32 clip_neg_0:5;
    __u32 reserved2:3;
    __u32 delta_clip_neg:5;
    __u32 reserved3:3;
};

成員

clip_pos_0

黑暗區域中正邊緣的限制 u5,值 [0, 16],預設值 8。

reserved0

已保留

delta_clip_posi

明亮和黑暗區域之間正邊緣的限制差異。 u5,值 [0, 16],預設值 8。

reserved1

已保留

clip_neg_0

黑暗區域中負邊緣的限制 u5,值 [0, 16],預設值 8。

reserved2

已保留

delta_clip_neg

明亮和黑暗區域之間負邊緣的限制差異。 u5,值 [0, 16],預設值 8。

reserved3

已保留

struct ipu3_uapi_yuvp1_y_ee_nr_frng_config

亮度 (Y) 邊緣增強降噪邊緣配置

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_frng_config {
    __u32 gain_exp:4;
    __u32 reserved0:28;
    __u32 min_edge:13;
    __u32 reserved1:3;
    __u32 lin_seg_param:4;
    __u32 reserved2:4;
    __u32 t1:1;
    __u32 t2:1;
    __u32 reserved3:6;
};

成員

gain_exp

增益的公共指數,u4,[0, 8],預設值 2。

reserved0

已保留

min_edge

邊緣和平滑拼接的閾值,u13。

reserved1

已保留

lin_seg_param

LinSeg 的冪,u4。

reserved2

已保留

t1

啟用/停用邊緣增強的引數,u1.0,[0, 1],預設值 1。

t2

啟用/停用平滑的引數,u1.0,[0, 1],預設值 1。

reserved3

已保留

struct ipu3_uapi_yuvp1_y_ee_nr_diag_config

亮度 (Y) 邊緣增強降噪對角線配置

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_diag_config {
    __u32 diag_disc_g:4;
    __u32 reserved0:4;
    __u32 hvw_hor:4;
    __u32 dw_hor:4;
    __u32 hvw_diag:4;
    __u32 dw_diag:4;
    __u32 reserved1:8;
};

成員

diag_disc_g

優先考慮水平或垂直方向的對角線邊緣以進行最終增強的係數。 u4.0, [1, 15], 預設值 1。

reserved0

已保留

hvw_hor

水平/垂直邊緣的水平/垂直邊緣增強的權重。 u2.2, [1, 15], 預設值 4。

dw_hor

水平/垂直邊緣的對角線邊緣增強的權重。 u2.2, [1, 15], 預設值 1。

hvw_diag

對角線邊緣的水平/垂直邊緣增強的權重。 u2.2, [1, 15], 預設值 1。

dw_diag

對角線邊緣的對角線邊緣增強的權重。 u2.2, [1, 15], 預設值 4。

reserved1

已保留

struct ipu3_uapi_yuvp1_y_ee_nr_fc_coring_config

亮度 (Y) 邊緣增強降噪偽彩色校正 (FCC) 核心配置

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_fc_coring_config {
    __u32 pos_0:13;
    __u32 reserved0:3;
    __u32 pos_delta:13;
    __u32 reserved1:3;
    __u32 neg_0:13;
    __u32 reserved2:3;
    __u32 neg_delta:13;
    __u32 reserved3:3;
};

成員

pos_0

黑暗區域中正邊緣的增益,u13.0,[0, 16],預設值 0。

reserved0

已保留

pos_delta

明亮區域中正邊緣的增益,值:pos_0 + pos_delta <=16 u13.0,預設值 0。

reserved1

已保留

neg_0

黑暗區域中負邊緣的增益,u13.0,範圍 [0, 16],預設值 0。

reserved2

已保留

neg_delta

明亮區域中負邊緣的增益。 neg_0 + neg_delta <=16 u13.0,預設值 0。

reserved3

已保留

描述

核心是一種簡單的軟閾值技術。

struct ipu3_uapi_yuvp1_y_ee_nr_config

邊緣增強和降噪

定義:

struct ipu3_uapi_yuvp1_y_ee_nr_config {
    struct ipu3_uapi_yuvp1_y_ee_nr_lpf_config lpf;
    struct ipu3_uapi_yuvp1_y_ee_nr_sense_config sense;
    struct ipu3_uapi_yuvp1_y_ee_nr_gain_config gain;
    struct ipu3_uapi_yuvp1_y_ee_nr_clip_config clip;
    struct ipu3_uapi_yuvp1_y_ee_nr_frng_config frng;
    struct ipu3_uapi_yuvp1_y_ee_nr_diag_config diag;
    struct ipu3_uapi_yuvp1_y_ee_nr_fc_coring_config fc_coring;
};

成員

lpf

低通濾波器配置。請參閱 ipu3_uapi_yuvp1_y_ee_nr_lpf_config

sense

靈敏度配置。請參閱 ipu3_uapi_yuvp1_y_ee_nr_sense_config

gain

增益配置,如 ipu3_uapi_yuvp1_y_ee_nr_gain_config 中定義

clip

剪裁配置,如 ipu3_uapi_yuvp1_y_ee_nr_clip_config 中定義

frng

邊緣配置,如 ipu3_uapi_yuvp1_y_ee_nr_frng_config 中定義

diag

對角線邊緣配置。請參閱 ipu3_uapi_yuvp1_y_ee_nr_diag_config

fc_coring

邊緣控制的核心配置。請參閱 ipu3_uapi_yuvp1_y_ee_nr_fc_coring_config

struct ipu3_uapi_yuvp2_tcc_gen_control_static_config

總色彩校正通用控制配置

定義:

struct ipu3_uapi_yuvp2_tcc_gen_control_static_config {
    __u32 en:1;
    __u32 blend_shift:3;
    __u32 gain_according_to_y_only:1;
    __u32 reserved0:11;
    __s32 gamma:5;
    __u32 reserved1:3;
    __s32 delta:5;
    __u32 reserved2:3;
};

成員

en

0 - TCC 已停用。輸出 = 輸入 1 - TCC 已啟用。

blend_shift

混合偏移,範圍 [3, 4],預設 NA。

gain_according_to_y_only

0:增益根據 YUV 計算,1:增益僅根據 Y 計算

reserved0

已保留

伽馬

最終混合係數。值 [-16, 16],預設 NA。

reserved1

已保留

delta

最終混合係數。值 [-16, 16],預設 NA。

reserved2

已保留

struct ipu3_uapi_yuvp2_tcc_macc_elem_static_config

總色彩校正多軸色彩控制 (MACC) 配置

定義:

struct ipu3_uapi_yuvp2_tcc_macc_elem_static_config {
    __s32 a:12;
    __u32 reserved0:4;
    __s32 b:12;
    __u32 reserved1:4;
    __s32 c:12;
    __u32 reserved2:4;
    __s32 d:12;
    __u32 reserved3:4;
};

成員

a

2x2 MACC 轉換矩陣的 a 係數。

reserved0

已保留

b

b 係數 2x2 MACC 轉換矩陣。

reserved1

已保留

c

2x2 MACC 轉換矩陣的 c 係數。

reserved2

已保留

d

2x2 MACC 轉換矩陣的 d 係數。

reserved3

已保留

struct ipu3_uapi_yuvp2_tcc_macc_table_static_config

總色彩校正多軸色彩控制 (MACC) 表格陣列

定義:

struct ipu3_uapi_yuvp2_tcc_macc_table_static_config {
    struct ipu3_uapi_yuvp2_tcc_macc_elem_static_config entries[IPU3_UAPI_YUVP2_TCC_MACC_TABLE_ELEMENTS];
};

成員

entries

多軸色彩校正的配置,如 ipu3_uapi_yuvp2_tcc_macc_elem_static_config 中指定

struct ipu3_uapi_yuvp2_tcc_inv_y_lut_static_config

總色彩校正反 Y 查詢表

定義:

struct ipu3_uapi_yuvp2_tcc_inv_y_lut_static_config {
    __u16 entries[IPU3_UAPI_YUVP2_TCC_INV_Y_LUT_ELEMENTS];
};

成員

entries

用於反 Y 估計的查詢表,並使用它來估計亮度和色度之間的比率。色度透過近似色度平面上半徑的絕對值 (R = sqrt(u^2+v^2) ) 來獲得,亮度透過近似 1/Y 來獲得。

struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config

PCWL 總色彩校正查詢表

定義:

struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config {
    __u16 entries[IPU3_UAPI_YUVP2_TCC_GAIN_PCWL_LUT_ELEMENTS];
};

成員

entries

用於增益分段線性變換 (PCWL) 的查詢表

struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config

R 平方根的總色彩校正查詢表

定義:

struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config {
    __s16 entries[IPU3_UAPI_YUVP2_TCC_R_SQR_LUT_ELEMENTS];
};

成員

entries

用於 R 平方根估計的查詢表

struct ipu3_uapi_yuvp2_tcc_static_config

總色彩校正靜態

定義:

struct ipu3_uapi_yuvp2_tcc_static_config {
    struct ipu3_uapi_yuvp2_tcc_gen_control_static_config gen_control;
    struct ipu3_uapi_yuvp2_tcc_macc_table_static_config macc_table;
    struct ipu3_uapi_yuvp2_tcc_inv_y_lut_static_config inv_y_lut;
    struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config gain_pcwl;
    struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config r_sqr_lut;
};

成員

gen_control

總色彩校正的通用配置

macc_table

多軸色彩校正的配置

inv_y_lut

反 Y 估計的查詢表

gain_pcwl

增益 PCWL 的查詢表

r_sqr_lut

R 平方根估計的查詢表。

struct ipu3_uapi_anr_transform_config

高階降噪變換

定義:

struct ipu3_uapi_anr_transform_config {
    __u32 enable:1;
    __u32 adaptive_treshhold_en:1;
    __u32 reserved1:30;
    __u8 reserved2[44];
    struct ipu3_uapi_anr_alpha alpha[3];
    struct ipu3_uapi_anr_beta beta[3];
    struct ipu3_uapi_anr_plane_color color[3];
    __u16 sqrt_lut[IPU3_UAPI_ANR_LUT_SIZE];
    __s16 xreset:13;
    __u16 reserved3:3;
    __s16 yreset:13;
    __u16 reserved4:3;
    __u32 x_sqr_reset:24;
    __u32 r_normfactor:5;
    __u32 reserved5:3;
    __u32 y_sqr_reset:24;
    __u32 gain_scale:8;
};

成員

enable

啟用高階降噪。

adaptive_treshhold_en

在 IPU3 上,始終啟用自適應閾值。

reserved1

已保留

reserved2

已保留

alpha

使用以下預設值:13, 13, 13, 13, 0, 0, 0, 0 11, 11, 11, 11, 0, 0, 0, 0 14, 14, 14, 14, 0, 0, 0, 0

beta

使用以下預設值:24, 24, 24, 24 21, 20, 20, 21 25, 25, 25, 25

color

使用 driver/media/pci/intel/ipu3-tables.c 中定義的預設值

sqrt_lut

每個元素 11 位,值 = [724 768 810 849 887 923 958 991 1024 1056 1116 1145 1173 1201 1086 1228 1254 1280 1305 1330 1355 1379 1402 1425 1448]

xreset

r^2 計算的 X 重置值。 值:col_start-X_center 約束:Xreset + FrameWdith=4095 Xreset= -4095,預設值 -1632。

reserved3

已保留

yreset

r^2 計算的 Y 重置值。 值:row_start-Y_center 約束:Yreset + FrameHeight=4095 Yreset= -4095,預設值 -1224。

reserved4

已保留

x_sqr_reset

X^2 的重置值用於 r^2 計算 值 = (Xreset)^2

r_normfactor

R 的歸一化因子。預設值 14。

reserved5

已保留

y_sqr_reset

Y^2 的重置值用於 r^2 計算 值 = (Yreset)^2

gain_scale

描述陰影增益作為距影像中心距離的函式的引數。每個幀的單個值,由驅動程式載入。預設值 115。

struct ipu3_uapi_anr_stitch_pyramid

ANR 拼接金字塔

定義:

struct ipu3_uapi_anr_stitch_pyramid {
    __u32 entry0:6;
    __u32 entry1:6;
    __u32 entry2:6;
    __u32 reserved:14;
};

成員

entry0

金字塔 LUT 條目 0,範圍 [0x0, 0x3f]

entry1

金字塔 LUT 條目 1,範圍 [0x0, 0x3f]

entry2

金字塔 LUT 條目 2,範圍 [0x0, 0x3f]

已保留

已保留

struct ipu3_uapi_anr_stitch_config

ANR 拼接配置

定義:

struct ipu3_uapi_anr_stitch_config {
    __u32 anr_stitch_en;
    __u8 reserved[44];
    struct ipu3_uapi_anr_stitch_pyramid pyramid[IPU3_UAPI_ANR_PYRAMID_SIZE];
};

成員

anr_stitch_en

啟用拼接。用 1 啟用。

已保留

已保留

pyramid

金字塔表,由 ipu3_uapi_anr_stitch_pyramid 定義預設值:{ 1, 3, 5 }, { 7, 7, 5 }, { 3, 1, 3 }, { 9, 15, 21 }, { 21, 15, 9 }, { 3, 5, 15 }, { 25, 35, 35 }, { 25, 15, 5 }, { 7, 21, 35 }, { 49, 49, 35 }, { 21, 7, 7 }, { 21, 35, 49 }, { 49, 35, 21 }, { 7, 5, 15 }, { 25, 35, 35 }, { 25, 15, 5 }, { 3, 9, 15 }, { 21, 21, 15 }, { 9, 3, 1 }, { 3, 5, 7 }, { 7, 5, 3}, { 1 }

struct ipu3_uapi_anr_config

ANR 配置

定義:

struct ipu3_uapi_anr_config {
    struct ipu3_uapi_anr_transform_config transform  ;
    struct ipu3_uapi_anr_stitch_config stitch  ;
};

成員

transform

高階降噪變換配置,如 ipu3_uapi_anr_transform_config 中指定

stitch

從周圍的 4 個 8x8 圖塊建立 4x4 圖塊。

struct ipu3_uapi_acc_param

加速器叢集引數

定義:

struct ipu3_uapi_acc_param {
    struct ipu3_uapi_bnr_static_config bnr;
    struct ipu3_uapi_bnr_static_config_green_disparity green_disparity  ;
    struct ipu3_uapi_dm_config dm  ;
    struct ipu3_uapi_ccm_mat_config ccm  ;
    struct ipu3_uapi_gamma_config gamma  ;
    struct ipu3_uapi_csc_mat_config csc  ;
    struct ipu3_uapi_cds_params cds  ;
    struct ipu3_uapi_shd_config shd  ;
    struct ipu3_uapi_yuvp1_iefd_config iefd  ;
    struct ipu3_uapi_yuvp1_yds_config yds_c0  ;
    struct ipu3_uapi_yuvp1_chnr_config chnr_c0  ;
    struct ipu3_uapi_yuvp1_y_ee_nr_config y_ee_nr  ;
    struct ipu3_uapi_yuvp1_yds_config yds  ;
    struct ipu3_uapi_yuvp1_chnr_config chnr  ;
    struct ipu3_uapi_yuvp1_yds_config yds2  ;
    struct ipu3_uapi_yuvp2_tcc_static_config tcc  ;
    struct ipu3_uapi_anr_config anr;
    struct ipu3_uapi_awb_fr_config_s awb_fr;
    struct ipu3_uapi_ae_config ae;
    struct ipu3_uapi_af_config_s af;
    struct ipu3_uapi_awb_config awb;
};

成員

bnr

用於拜耳降噪靜態配置的引數。請參閱 ipu3_uapi_bnr_static_config

green_disparity

gr 和 gb 通道之間的視差靜態配置。請參閱 ipu3_uapi_bnr_static_config_green_disparity

dm

去馬賽克配置。請參閱 ipu3_uapi_dm_config

ccm

色彩校正矩陣。請參閱 ipu3_uapi_ccm_mat_config

伽馬

伽瑪校正配置。請參閱 ipu3_uapi_gamma_config

csc

色彩空間轉換矩陣。請參閱 ipu3_uapi_csc_mat_config

cds

顏色下采樣配置。請參閱 ipu3_uapi_cds_params

shd

鏡頭陰影校正配置。請參閱 ipu3_uapi_shd_config

iefd

影像增強濾波器和降噪配置。ipu3_uapi_yuvp1_iefd_config

yds_c0

Y 向下縮放器配置。ipu3_uapi_yuvp1_yds_config

chnr_c0

色度降噪配置。ipu3_uapi_yuvp1_chnr_config

y_ee_nr

Y 邊緣增強和降噪配置。ipu3_uapi_yuvp1_y_ee_nr_config

yds

Y 向下縮放器配置。請參閱 ipu3_uapi_yuvp1_yds_config

chnr

色度降噪配置。請參閱 ipu3_uapi_yuvp1_chnr_config

yds2

Y 通道向下縮放器配置。請參閱 ipu3_uapi_yuvp1_yds_config

tcc

總色彩校正配置,如 struct ipu3_uapi_yuvp2_tcc_static_config 中定義

anr

高階降噪配置。請參閱 ipu3_uapi_anr_config

awb_fr

AWB 濾波器響應配置。請參閱 ipu3_uapi_awb_fr_config

ae

自動曝光配置,如 ipu3_uapi_ae_config 中指定

af

自動對焦配置。如 ipu3_uapi_af_config 中指定

awb

自動白平衡配置。如 ipu3_uapi_awb_config 中指定

描述

ACC 是指包含所有固定功能 (FF) 的硬體叢集。每個 FF 實現一個特定的演算法。

struct ipu3_uapi_isp_lin_vmem_params

線性化引數

定義:

struct ipu3_uapi_isp_lin_vmem_params {
    __s16 lin_lutlow_gr[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutlow_r[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutlow_b[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutlow_gb[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutdif_gr[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutdif_r[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutdif_b[IPU3_UAPI_LIN_LUT_SIZE];
    __s16 lin_lutdif_gb[IPU3_UAPI_LIN_LUT_SIZE];
};

成員

lin_lutlow_gr

用於 GR 通道插值的線性化查詢表。

lin_lutlow_r

用於 R 通道插值的線性化查詢表。

lin_lutlow_b

用於 B 通道插值的線性化查詢表。

lin_lutlow_gb

用於 GB 通道插值的線性化查詢表。 lin_lutlow_gr / lin_lutlow_r / lin_lutlow_b / lin_lutlow_gb <= LIN_MAX_VALUE - 1。

lin_lutdif_gr

lin_lutlow_gr[i+1] - lin_lutlow_gr[i]。

lin_lutdif_r

lin_lutlow_r[i+1] - lin_lutlow_r[i]。

lin_lutdif_b

lin_lutlow_b[i+1] - lin_lutlow_b[i]。

lin_lutdif_gb

lin_lutlow_gb[i+1] - lin_lutlow_gb[i]。

struct ipu3_uapi_isp_tnr3_vmem_params

時域降噪向量記憶體引數

定義:

struct ipu3_uapi_isp_tnr3_vmem_params {
    __u16 slope[IPU3_UAPI_ISP_TNR3_VMEM_LEN];
    __u16 reserved1[IPU3_UAPI_ISP_VEC_ELEMS - IPU3_UAPI_ISP_TNR3_VMEM_LEN];
    __u16 sigma[IPU3_UAPI_ISP_TNR3_VMEM_LEN];
    __u16 reserved2[IPU3_UAPI_ISP_VEC_ELEMS - IPU3_UAPI_ISP_TNR3_VMEM_LEN];
};

成員

slope

時域降噪插值曲線中的斜率設定。

reserved1

已保留

sigma

時域降噪插值曲線中的轉折點設定。

reserved2

已保留

struct ipu3_uapi_isp_tnr3_params

時域降噪 v3 引數

定義:

struct ipu3_uapi_isp_tnr3_params {
    __u32 knee_y1;
    __u32 knee_y2;
    __u32 maxfb_y;
    __u32 maxfb_u;
    __u32 maxfb_v;
    __u32 round_adj_y;
    __u32 round_adj_u;
    __u32 round_adj_v;
    __u32 ref_buf_select;
};

成員

knee_y1

轉折點 TNR3 假設 Y、U 和 V 在 Y1 處的標準偏差為 TnrY1_Sigma_Y、U 和 V。

knee_y2

轉折點 TNR3 假設 Y、U 和 V 在 Y2 處的標準偏差為 TnrY2_Sigma_Y、U 和 V。

maxfb_y

Y 的最大反饋增益

maxfb_u

U 的最大反饋增益

maxfb_v

V 的最大反饋增益

round_adj_y

Y 的舍入調整

round_adj_u

U 的舍入調整

round_adj_v

V 的舍入調整

ref_buf_select

要使用的參考幀緩衝區的選擇。

struct ipu3_uapi_isp_xnr3_vmem_params

極限降噪 v3 向量記憶體引數

定義:

struct ipu3_uapi_isp_xnr3_vmem_params {
    __u16 x[IPU3_UAPI_ISP_VEC_ELEMS];
    __u16 a[IPU3_UAPI_ISP_VEC_ELEMS];
    __u16 b[IPU3_UAPI_ISP_VEC_ELEMS];
    __u16 c[IPU3_UAPI_ISP_VEC_ELEMS];
};

成員

x

xnr3 引數。

a

xnr3 引數。

b

xnr3 引數。

c

xnr3 引數。

struct ipu3_uapi_xnr3_alpha_params

極限降噪 v3 alpha 調整引數

定義:

struct ipu3_uapi_xnr3_alpha_params {
    __u32 y0;
    __u32 u0;
    __u32 v0;
    __u32 ydiff;
    __u32 udiff;
    __u32 vdiff;
};

成員

y0

黑暗區域中 Y 範圍相似性的 Sigma。

u0

黑暗區域中 U 範圍相似性的 Sigma。

v0

黑暗區域中 V 範圍相似性的 Sigma。

ydiff

明亮區域和黑暗區域之間 Y 的 Sigma 差異。

udiff

明亮區域和黑暗區域之間 U 的 Sigma 差異。

vdiff

明亮區域和黑暗區域之間 V 的 Sigma 差異。

struct ipu3_uapi_xnr3_coring_params

極限降噪 v3 核心引數

定義:

struct ipu3_uapi_xnr3_coring_params {
    __u32 u0;
    __u32 v0;
    __u32 udiff;
    __u32 vdiff;
};

成員

u0

黑暗區域中 U 通道的核心閾值。

v0

黑暗區域中 V 通道的核心閾值。

udiff

明亮區域和黑暗區域之間 U 通道的閾值差異。

vdiff

明亮區域和黑暗區域之間 V 通道的閾值差異。

struct ipu3_uapi_xnr3_blending_params

混合因子

定義:

struct ipu3_uapi_xnr3_blending_params {
    __u32 strength;
};

成員

strength

用於將輸出與輸入混合的因子。這是調整引數。值越高,XNR 操作越積極。

struct ipu3_uapi_isp_xnr3_params

極限降噪 v3 引數

定義:

struct ipu3_uapi_isp_xnr3_params {
    struct ipu3_uapi_xnr3_alpha_params alpha;
    struct ipu3_uapi_xnr3_coring_params coring;
    struct ipu3_uapi_xnr3_blending_params blending;
};

成員

alpha

xnr3 alpha 的引數。請參閱 ipu3_uapi_xnr3_alpha_params

coring

xnr3 核心的引數。請參閱 ipu3_uapi_xnr3_coring_params

blending

xnr3 混合的引數。請參閱 ipu3_uapi_xnr3_blending_params

struct ipu3_uapi_obgrid_param

光學黑電平補償引數

定義:

struct ipu3_uapi_obgrid_param {
    __u16 gr;
    __u16 r;
    __u16 b;
    __u16 gb;
};

成員

gr

顏色 GR 的網格表值

r

顏色 R 的網格表值

b

顏色 B 的網格表值

gb

顏色 GB 的網格表值

描述

紅色、綠色和藍色通道的黑電平不同。因此,每個通道的黑電平補償也不同。

struct ipu3_uapi_flags

指示哪些流水線需要更新的位

定義:

struct ipu3_uapi_flags {
    __u32 gdc:1;
    __u32 obgrid:1;
    __u32 reserved1:30;
    __u32 acc_bnr:1;
    __u32 acc_green_disparity:1;
    __u32 acc_dm:1;
    __u32 acc_ccm:1;
    __u32 acc_gamma:1;
    __u32 acc_csc:1;
    __u32 acc_cds:1;
    __u32 acc_shd:1;
    __u32 reserved2:2;
    __u32 acc_iefd:1;
    __u32 acc_yds_c0:1;
    __u32 acc_chnr_c0:1;
    __u32 acc_y_ee_nr:1;
    __u32 acc_yds:1;
    __u32 acc_chnr:1;
    __u32 acc_ytm:1;
    __u32 acc_yds2:1;
    __u32 acc_tcc:1;
    __u32 acc_dpc:1;
    __u32 acc_bds:1;
    __u32 acc_anr:1;
    __u32 acc_awb_fr:1;
    __u32 acc_ae:1;
    __u32 acc_af:1;
    __u32 acc_awb:1;
    __u32 reserved3:4;
    __u32 lin_vmem_params:1;
    __u32 tnr3_vmem_params:1;
    __u32 xnr3_vmem_params:1;
    __u32 tnr3_dmem_params:1;
    __u32 xnr3_dmem_params:1;
    __u32 reserved4:1;
    __u32 obgrid_param:1;
    __u32 reserved5:25;
};

成員

gdc

0 = 無更新,1 = 更新。

obgrid

0 = 無更新,1 = 更新。

reserved1

未使用。

acc_bnr

0 = 無更新,1 = 更新。

acc_green_disparity

0 = 無更新,1 = 更新。

acc_dm

0 = 無更新,1 = 更新。

acc_ccm

0 = 無更新,1 = 更新。

acc_gamma

0 = 無更新,1 = 更新。

acc_csc

0 = 無更新,1 = 更新。

acc_cds

0 = 無更新,1 = 更新。

acc_shd

0 = 無更新,1 = 更新。

reserved2

未使用。

acc_iefd

0 = 無更新,1 = 更新。

acc_yds_c0

0 = 無更新,1 = 更新。

acc_chnr_c0

0 = 無更新,1 = 更新。

acc_y_ee_nr

0 = 無更新,1 = 更新。

acc_yds

0 = 無更新,1 = 更新。

acc_chnr

0 = 無更新,1 = 更新。

acc_ytm

0 = 無更新,1 = 更新。

acc_yds2

0 = 無更新,1 = 更新。

acc_tcc

0 = 無更新,1 = 更新。

acc_dpc

0 = 無更新,1 = 更新。

acc_bds

0 = 無更新,1 = 更新。

acc_anr

0 = 無更新,1 = 更新。

acc_awb_fr

0 = 無更新,1 = 更新。

acc_ae

0 = 無更新,1 = 更新。

acc_af

0 = 無更新,1 = 更新。

acc_awb

0 = 無更新,1 = 更新。

reserved3

未使用。

lin_vmem_params

0 = 無更新,1 = 更新。

tnr3_vmem_params

0 = 無更新,1 = 更新。

xnr3_vmem_params

0 = 無更新,1 = 更新。

tnr3_dmem_params

0 = 無更新,1 = 更新。

xnr3_dmem_params

0 = 無更新,1 = 更新。

reserved4

未使用。

obgrid_param

0 = 無更新,1 = 更新。

reserved5

未使用。

struct ipu3_uapi_params

V4L2_META_FMT_IPU3_PARAMS

定義:

struct ipu3_uapi_params {
    struct ipu3_uapi_flags use  ;
    struct ipu3_uapi_acc_param acc_param;
    struct ipu3_uapi_isp_lin_vmem_params lin_vmem_params;
    struct ipu3_uapi_isp_tnr3_vmem_params tnr3_vmem_params;
    struct ipu3_uapi_isp_xnr3_vmem_params xnr3_vmem_params;
    struct ipu3_uapi_isp_tnr3_params tnr3_dmem_params;
    struct ipu3_uapi_isp_xnr3_params xnr3_dmem_params;
    struct ipu3_uapi_obgrid_param obgrid_param;
};

成員

use

選擇要應用的引數,請參閱 ipu3_uapi_flags

acc_param

ACC 引數,如 ipu3_uapi_acc_param 中指定

lin_vmem_params

線性化 VMEM,如 ipu3_uapi_isp_lin_vmem_params 中指定

tnr3_vmem_params

tnr3 VMEM,如 ipu3_uapi_isp_tnr3_vmem_params 中指定

xnr3_vmem_params

xnr3 VMEM,如 ipu3_uapi_isp_xnr3_vmem_params 中指定

tnr3_dmem_params

tnr3 DMEM,如 ipu3_uapi_isp_tnr3_params 中指定

xnr3_dmem_params

xnr3 DMEM,如 ipu3_uapi_isp_xnr3_params 中指定

obgrid_param

obgrid 引數,如 ipu3_uapi_obgrid_param 中指定

描述

影片佇列“parameters”的格式為 V4L2_META_FMT_IPU3_PARAMS。這是使用 V4L2_BUF_TYPE_META_OUTPUT 的“單平面”v4l2_meta_format。

下面定義的 struct ipu3_uapi_params 包含許多引數,ipu3_uapi_flags 選擇要應用的引數。