STRUCT IPU3_UAPI_AF_FILTER_CONFIG(9)
π NAME
okay bestie, welcome to the Kernel API Manual page for struct ipu3_uapi_af_filter_config(9) β this icon is literally the AF 2D filter for contrast measurements. π
β¨ SYNOPSIS
here's the struct in all its glory, no cap β keep it exactly like this if you're coding along:
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;
};
π Members
these are all the little fields inside the struct, with their defaults and everything β every single one, periodt. π
y1_coeff_0β filter Y1, structure:3x11, support both symmetry and anti-symmetry type. A12 is center, A1-A11 are neighbours. for analyzing low frequency content, used to calculate sum of gradients in x direction. π¦y1_coeff_0.a1β filter1 coefficients A1,u8, default0.y1_coeff_0.a2β filter1 coefficients A2,u8, default0.y1_coeff_0.a3β filter1 coefficients A3,u8, default0.y1_coeff_0.a4β filter1 coefficients A4,u8, default0.
y1_coeff_1β Structy1_coeff_1.a5β filter1 coefficients A5,u8, default0.y1_coeff_1.a6β filter1 coefficients A6,u8, default0.y1_coeff_1.a7β filter1 coefficients A7,u8, default0.y1_coeff_1.a8β filter1 coefficients A8,u8, default0.
y1_coeff_2β Structy1_coeff_2.a9β filter1 coefficients A9,u8, default0.y1_coeff_2.a10β filter1 coefficients A10,u8, default0.y1_coeff_2.a11β filter1 coefficients A11,u8, default0.y1_coeff_2.a12β filter1 coefficients A12,u8, default128.
y1_sign_vecβ Each bit corresponds to one coefficient sign bit,0: positive,1: negative, default0.y2_coeff_0β Y2, same structure as Y1. For analyzing high frequency content.y2_coeff_0.a1β filter2 coefficients A1,u8, default0.y2_coeff_0.a2β filter2 coefficients A2,u8, default0.y2_coeff_0.a3β filter2 coefficients A3,u8, default0.y2_coeff_0.a4β filter2 coefficients A4,u8, default0.
y2_coeff_1β Structy2_coeff_1.a5β filter2 coefficients A5,u8, default0.y2_coeff_1.a6β filter2 coefficients A6,u8, default0.y2_coeff_1.a7β filter2 coefficients A7,u8, default0.y2_coeff_1.a8β filter2 coefficients A8,u8, default0.
y2_coeff_2β Structy2_coeff_2.a9β filter1 coefficients A9,u8, default0.y2_coeff_2.a10β filter1 coefficients A10,u8, default0.y2_coeff_2.a11β filter1 coefficients A11,u8, default0.y2_coeff_2.a12β filter1 coefficients A12,u8, default128.
y2_sign_vecβ Each bit corresponds to one coefficient sign bit,0: positive,1: negative, default0.y_calcβ Pre-processing that converts Bayer quad to RGB+Y values to be used for building histogram. Range[0, 32], default8.y_calc.y_gen_rate_grβ Contribution ratio Gr for Yy_calc.y_gen_rate_rβ Contribution ratio R for Yy_calc.y_gen_rate_bβ Contribution ratio B for Yy_calc.y_gen_rate_gbβ Contribution ratio Gb for Y
nfβ The shift right value that should be applied during theY1/Y2filter to make sure the total memory needed is2bytes per grid cell.nf.reserved0β reservednf.y1_nfβ Normalization factor for the convolution coeffs of y1, should belog2of the sum of the abs values of the filter coeffs, default7(2^7 = 128).nf.reserved1β reservednf.y2_nfβ Normalization factor for y2, should belog2of the sum of the abs values of the filter coeffs.nf.reserved2β reserved
πΈ Description
the rule is literally this, bestie: y_gen_rate_gr + y_gen_rate_r + y_gen_rate_b + y_gen_rate_gb = 32. A single Y is calculated based on sum of Gr/R/B/Gb based on their contribution ratio. β¨
π SEE ALSO
the whole related-struct friend group is right here β Kernel file: ./drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
- Kernel file β
./drivers/staging/media/ipu3/include/uapi/intel-ipu3.h struct ipu3_uapi_grid_config(9)struct ipu3_uapi_awb_set_item(9)struct ipu3_uapi_awb_raw_buffer(9)struct ipu3_uapi_awb_config_s(9)struct ipu3_uapi_awb_config(9)struct ipu3_uapi_ae_raw_buffer(9)struct ipu3_uapi_ae_raw_buffer_aligned(9)struct ipu3_uapi_ae_grid_config(9)struct ipu3_uapi_ae_weight_elem(9)struct ipu3_uapi_ae_ccm(9)struct ipu3_uapi_ae_config(9)struct ipu3_uapi_af_raw_buffer(9)struct ipu3_uapi_af_config_s(9)struct ipu3_uapi_awb_fr_raw_buffer(9)struct ipu3_uapi_awb_fr_config_s(9)struct ipu3_uapi_4a_config(9)struct ipu3_uapi_bubble_info(9)struct ipu3_uapi_ff_status(9)struct ipu3_uapi_stats_3a(9)struct ipu3_uapi_bnr_static_config_wb_gains_config(9)struct ipu3_uapi_bnr_static_config_wb_gains_thr_config(9)struct ipu3_uapi_bnr_static_config_thr_coeffs_config(9)struct ipu3_uapi_bnr_static_config_thr_ctrl_shd_config(9)struct ipu3_uapi_bnr_static_config_opt_center_config(9)struct ipu3_uapi_bnr_static_config_lut_config(9)struct ipu3_uapi_bnr_static_config_bp_ctrl_config(9)struct ipu3_uapi_bnr_static_config_dn_detect_ctrl_config(9)struct ipu3_uapi_bnr_static_config_opt_center_sqr_config(9)struct ipu3_uapi_bnr_static_config(9)struct ipu3_uapi_bnr_static_config_green_disparity(9)struct ipu3_uapi_dm_config(9)struct ipu3_uapi_ccm_mat_config(9)struct ipu3_uapi_gamma_corr_ctrl(9)struct ipu3_uapi_gamma_corr_lut(9)struct ipu3_uapi_gamma_config(9)struct ipu3_uapi_csc_mat_config(9)struct ipu3_uapi_cds_params(9)struct ipu3_uapi_shd_grid_config(9)struct ipu3_uapi_shd_general_config(9)struct ipu3_uapi_shd_black_level_config(9)struct ipu3_uapi_shd_config_static(9)struct ipu3_uapi_shd_lut(9)struct ipu3_uapi_shd_config(9)struct ipu3_uapi_iefd_cux2(9)struct ipu3_uapi_iefd_cux6_ed(9)struct ipu3_uapi_iefd_cux2_1(9)struct ipu3_uapi_iefd_cux4(9)struct ipu3_uapi_iefd_cux6_rad(9)struct ipu3_uapi_yuvp1_iefd_cfg_units(9)struct ipu3_uapi_yuvp1_iefd_config_s(9)struct ipu3_uapi_yuvp1_iefd_control(9)struct ipu3_uapi_sharp_cfg(9)struct ipu3_uapi_far_w(9)struct ipu3_uapi_unsharp_cfg(9)struct ipu3_uapi_yuvp1_iefd_shrp_cfg(9)struct ipu3_uapi_unsharp_coef0(9)struct ipu3_uapi_unsharp_coef1(9)struct ipu3_uapi_yuvp1_iefd_unshrp_cfg(9)struct ipu3_uapi_radial_reset_xy(9)struct ipu3_uapi_radial_reset_x2(9)struct ipu3_uapi_radial_reset_y2(9)struct ipu3_uapi_radial_cfg(9)struct ipu3_uapi_rad_far_w(9)struct ipu3_uapi_cu_cfg0(9)struct ipu3_uapi_cu_cfg1(9)struct ipu3_uapi_yuvp1_iefd_rad_cfg(9)struct ipu3_uapi_vss_lut_x(9)struct ipu3_uapi_vss_lut_y(9)struct ipu3_uapi_yuvp1_iefd_vssnlm_cfg(9)struct ipu3_uapi_yuvp1_iefd_config(9)struct ipu3_uapi_yuvp1_yds_config(9)struct ipu3_uapi_yuvp1_chnr_enable_config(9)struct ipu3_uapi_yuvp1_chnr_coring_config(9)struct ipu3_uapi_yuvp1_chnr_sense_gain_config(9)struct ipu3_uapi_yuvp1_chnr_iir_fir_config(9)struct ipu3_uapi_yuvp1_chnr_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_lpf_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_sense_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_gain_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_clip_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_frng_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_diag_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_fc_coring_config(9)struct ipu3_uapi_yuvp1_y_ee_nr_config(9)struct ipu3_uapi_yuvp2_tcc_gen_control_static_config(9)struct ipu3_uapi_yuvp2_tcc_macc_elem_static_config(9)struct ipu3_uapi_yuvp2_tcc_macc_table_static_config(9)struct ipu3_uapi_yuvp2_tcc_inv_y_lut_static_config(9)struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config(9)struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config(9)struct ipu3_uapi_yuvp2_tcc_static_config(9)struct ipu3_uapi_anr_transform_config(9)struct ipu3_uapi_anr_stitch_pyramid(9)struct ipu3_uapi_anr_stitch_config(9)struct ipu3_uapi_anr_config(9)struct ipu3_uapi_acc_param(9)struct ipu3_uapi_isp_lin_vmem_params(9)struct ipu3_uapi_isp_tnr3_vmem_params(9)struct ipu3_uapi_isp_tnr3_params(9)struct ipu3_uapi_isp_xnr3_vmem_params(9)struct ipu3_uapi_xnr3_alpha_params(9)struct ipu3_uapi_xnr3_coring_params(9)struct ipu3_uapi_xnr3_blending_params(9)struct ipu3_uapi_isp_xnr3_params(9)struct ipu3_uapi_obgrid_param(9)struct ipu3_uapi_flags(9)struct ipu3_uapi_params(9)
mwah π that's the whole page, bestie. source/version check: ./drivers/staging/media/ipu3/i..., dated October 2026, footer tag struct ipu3...ilter_config(9). stay slay π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms