STRUCT RPPX1_HIST_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay bestie, welcome to the Kernel API Manual page for struct rppx1_hist_params(9) β€” it's literally the Histogram measurement configuration struct, and it's iconic. this is where the histogram measurement setup lives πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

       struct rppx1_hist_params {
           struct v4l2_isp_params_block_header header;
           struct rppx1_window wnd;
           __u32 last_line;
           __u32 v_stepsize;
           __u32 h_step_inc;
           __u32 sample_offs;
           __u8 mode;
           __u8 channel_sel;
           __u8 weights[RPPX1_HIST_WEIGHT_GRIDS_SIZE];
           __u8 coeff[3];
           __u8 sample_shift;
           __u8 reserved;
        };

πŸŽ€ Members πŸŽ€

  • header β€” block header (type = RPPX1_PARAMS_BLOCK_TYPE_HIST_PRE1, type = RPPX1_PARAMS_BLOCK_TYPE_HIST_PRE2 or type = RPPX1_PARAMS_BLOCK_TYPE_HIST_POST). the little label that says which histogram block this is ✨
  • wnd β€” measurement window coordinates. where the measuring happens, bestie πŸŽ€
  • last_line β€” line number for which the histogram measurement completes. the finish line, fr fr 🏁
  • v_stepsize β€” vertical subsampling divider, 7 bits.
  • h_step_inc β€” horizontal subsampling step counter, 17 bits.
  • sample_offs β€” sample offset, 24 bits.
  • mode β€” histogram measurement mode (from enum rppx1_hist_mode). mode vibes 🌈
  • channel_sel β€” histogram measurement point (see enum rppx1_meas_chan). pick your measurement point πŸ¦‹
  • weights β€” weighting factors for each sub-window (5x5 grid). yes, a whole 5x5 grid ✨
  • coeff β€” R-G-B coefficients, 8 bits unsigned Q1.7.
  • sample_shift β€” sample shift, 4 bits.
  • reserved β€” padding.

πŸ’œ Description πŸ’œ

okay so, the RPP-X1 Histogram measurement unit is available on the PRE1, PRE2 and MAIN_POST pipes. Userspace selects which pipe to operate by setting the header.type field to RPPX1_PARAMS_BLOCK_TYPE_HIST_PRE1, RPPX1_PARAMS_BLOCK_TYPE_HIST_PRE2 or RPPX1_PARAMS_BLOCK_TYPE_HIST_POST πŸ’…

The histogram measurement point is selected using the channel field while histogram measurement mode is selected using the mode field. iykyk πŸ‘‘

Histogram measurement is performed by programming subsampling factors using the v_stepsize and h_step_inc fields and by weighted windowing, by programming the size of the measurement window wnd with weights associated to each cell of the 5x5 measurement grid. Weights are represented as 5 bits integer values ranging from 0 to 16. numbers bestie, exact numbers πŸ”₯

The last_line field controls when the histogram measurement completes. It is usually programmed to the value of (wnd.v_offs + wnd.v_size - 1). that's the little formula right there πŸŽ€

Histogram values are calculated by applying a per-color channel coefficient represented as an 8 bits unsigned Q1.7 integer value. The sample_offs and sample_shift fields allow to reduce the color dynamic range on which histogram data are produced. dynamic range says hi 🌸


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/uapi/linux/media/dreamchip/rppx1-config.h
  • struct rppx1_window(9)
  • enum rppx1_meas_chan(9)
  • enum rppx1_params_block_type(9)
  • enum rppx1_wbmeas_mode(9)
  • struct rppx1_wbmeas_params(9)
  • struct rppx1_awbg_params(9)
  • enum rppx1_exm_mode(9)
  • struct rppx1_exm_params(9)
  • enum rppx1_hist_mode(9)
  • struct rppx1_bls_fixed(9)
  • enum rppx1_bls_mode(9)
  • enum rppx1_bls_win_en(9)
  • struct rppx1_bls_params(9)
  • struct rppx1_ccor_params(9)
  • struct rppx1_lsc_params(9)
  • enum rppx1_ga_seg_mode(9)
  • struct rppx1_ga_params(9)
  • struct rppx1_lin_params(9)
  • RPPX1_PARAMS_MAX_SIZE(9)
  • enum rppx1_stats_block_type(9)
  • struct rppx1_wbmeas_stats(9)
  • struct rppx1_exm_stats(9)
  • struct rppx1_hist_stats(9)
  • RPPX1_STATS_MAX_SIZE(9)

xoxo, your kernel bestie 🫢 β€” source/version ./include/uapi/linux/media/dre..., dated October 2026, for the Kernel API Manual page struct rppx1_hist_params(9) πŸ’…

πŸ“¦ where this page comes from