STRUCT MALI_C55_AE_5BIN_HIST(9)
β¨ struct mali_c55_ae_5bin_hist β¨
okay bestie so this is from the Kernel API Manual (section 9, kernel API pages, iykyk) and it's literally just a struct but she's an icon π
π NAME π
struct mali_c55_ae_5bin_hist β Auto Exposure 5-bin histogram statistics. that's the whole vibe. it holds stats. about histograms. with five bins. and auto exposure. slay π
π¦ SYNOPSIS π¦
struct mali_c55_ae_5bin_hist {
__u16 hist0;
__u16 hist1;
__u16 hist3;
__u16 hist4;
};
not me pointing out that there is no hist2 in here π that's not a typo, that's the whole plot twist, keep reading bestie π«Ά
πΈ Members πΈ
hist0β 16-bit normalised pixel count for the 0th intensity bin. she's number zero and she's thriving β¨hist1β 16-bit normalised pixel count for the 1st intensity bin. cutie. does her job πhist3β 16-bit normalised pixel count for the 3rd intensity bin. yes we skipped 2. no we will not be taking questions. it's giving mysterious πhist4β 16-bit normalised pixel count for the 4th intensity bin. the last one, the final girl, the main character energy π
fr fr there's no member for the centre bin. that's not an accident, that's β¨by designβ¨
π Description π
so the ISP generates a 5-bin histogram of normalised pixel counts within bins of pixel intensity, for each of 225 possible zones within a frame. 225 zones!! that's so many zones, she's been booked and busy π
here's the gag tho: the centre bin of the histogram for each zone is not available from the hardware. nope. the hardware said "not my problem" π
so you, yes you, have to calculate it yourself by subtracting the values of hist0, hist1, hist3 and hist4 from 0xffff, exactly like this equation:
hist2 = 0xffff - (hist0 + hist1 + hist3 + hist4)
write that down, put it on a sticky note, tape it to your monitor π that's the whole reason hist2 isn't in the struct β you build it yourself, you're the CEO of bin 2, periodt π₯
π SEE ALSO π
the Kernel file ./include/uapi/linux/media/arm/mali-c55-config.h and honestly a whole friend group of structs and enums, all linked below, all iconic:
struct mali_c55_ae_1024bin_hist(9)struct mali_c55_awb_average_ratios(9)struct mali_c55_af_statistics(9)struct mali_c55_stats_buffer(9)enum mali_c55_param_block_type(9)struct mali_c55_params_sensor_off_preshading(9)enum mali_c55_aexp_hist_tap_points(9)enum mali_c55_aexp_skip_x(9)enum mali_c55_aexp_skip_y(9)enum mali_c55_aexp_row_column_offset(9)enum mali_c55_aexp_hist_plane_mode(9)struct mali_c55_params_aexp_hist(9)struct mali_c55_params_aexp_weights(9)struct mali_c55_params_digital_gain(9)enum mali_c55_awb_stats_mode(9)struct mali_c55_params_awb_gains(9)enum mali_c55_params_awb_tap_points(9)struct mali_c55_params_awb_config(9)struct mali_c55_params_mesh_shading_config(9)struct mali_c55_params_mesh_shading_selection(9)struct mali_c55_params_ccm(9)struct mali_c55_params_gamma(9)MALI_C55_PARAMS_MAX_SIZE(9)
like. every single one. we stan a complete cross-reference list π
and that's the page!! source lives at ./include/uapi/linux/media/arm, this edition dropped October 2026, and the whole thing is filed under struct mali_...ae_5bin_hist(9) in section 9 π§ stan a histogram struct that knows exactly what she is πβ¨π¦
π¦ 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