STRUCT PISP_TILE(9)
π struct pisp_tile(9) β Raspberry Pi PiSP Back End tile configuration
okay so bestie, welcome to the Kernel API Manual β¨ this one's all about struct pisp_tile β the Raspberry Pi PiSP Back End tile configuration. it's giving "tiny rectangle of image, but make it a data structure" and honestly? iconic. π
πΈ SYNOPSIS πΈ
struct pisp_tile {
__u8 edge;
__u8 pad0[3];
__u32 input_addr_offset;
__u32 input_addr_offset2;
__u16 input_offset_x;
__u16 input_offset_y;
__u16 input_width;
__u16 input_height;
__u32 tdn_input_addr_offset;
__u32 tdn_output_addr_offset;
__u32 stitch_input_addr_offset;
__u32 stitch_output_addr_offset;
__u32 lsc_grid_offset_x;
__u32 lsc_grid_offset_y;
__u32 cac_grid_offset_x;
__u32 cac_grid_offset_y;
__u16 crop_x_start[PISP_BACK_END_NUM_OUTPUTS];
__u16 crop_x_end[PISP_BACK_END_NUM_OUTPUTS];
__u16 crop_y_start[PISP_BACK_END_NUM_OUTPUTS];
__u16 crop_y_end[PISP_BACK_END_NUM_OUTPUTS];
__u16 downscale_phase_x[3 * PISP_BACK_END_NUM_OUTPUTS];
__u16 downscale_phase_y[3 * PISP_BACK_END_NUM_OUTPUTS];
__u16 resample_in_width[PISP_BACK_END_NUM_OUTPUTS];
__u16 resample_in_height[PISP_BACK_END_NUM_OUTPUTS];
__u16 resample_phase_x[3 * PISP_BACK_END_NUM_OUTPUTS];
__u16 resample_phase_y[3 * PISP_BACK_END_NUM_OUTPUTS];
__u16 output_offset_x[PISP_BACK_END_NUM_OUTPUTS];
__u16 output_offset_y[PISP_BACK_END_NUM_OUTPUTS];
__u16 output_width[PISP_BACK_END_NUM_OUTPUTS];
__u16 output_height[PISP_BACK_END_NUM_OUTPUTS];
__u32 output_addr_offset[PISP_BACK_END_NUM_OUTPUTS];
__u32 output_addr_offset2[PISP_BACK_END_NUM_OUTPUTS];
__u32 output_hog_addr_offset;
};
like, look at all those fields. she's detailed. π
π¦ Members π¦
okay this is the part where we go field by field, no skipping, no cap:
edgeβ the edge tile flag π«Ά (yes, she's flagged as an edge tile)pad0β padding bytes, just vibing there for alignment β¨input_addr_offsetβ top-left pixel offset, in bytesinput_addr_offset2β top-left pixel offset, in bytes, but for the second/third image planesinput_offset_xβ horizontal offset in pixels of this tile in the input imageinput_offset_yβ vertical offset in pixels of this tile in the input imageinput_widthβ width in pixels of this tileinput_heightβ height in pixels of the this tile (yes, "the this", we keep it, she said what she said π)tdn_input_addr_offsetβ TDN input image offset, in bytestdn_output_addr_offsetβ TDN output image offset, in bytesstitch_input_addr_offsetβ Stitch input image offset, in bytesstitch_output_addr_offsetβ Stitch output image offset, in byteslsc_grid_offset_xβ horizontal offset in the LSC table for this tilelsc_grid_offset_yβ vertical offset in the LSC table for this tilecac_grid_offset_xβ horizontal offset in the CAC table for this tilecac_grid_offset_yβ vertical offset in the CAC table for this tilecrop_x_startβ number of pixels cropped from the left of the tilecrop_x_endβ number of pixels cropped from the right of the tilecrop_y_startβ number of pixels cropped from the top of the tilecrop_y_endβ number of pixels cropped from the bottom of the tiledownscale_phase_xβ initial horizontal phase in pixelsdownscale_phase_yβ initial vertical phase in pixelsresample_in_widthβ width in pixels of the tile entering the Resample blockresample_in_heightβ height in pixels of the tile entering the Resample blockresample_phase_xβ initial horizontal phase for the Resample blockresample_phase_yβ initial vertical phase for the Resample blockoutput_offset_xβ horizontal offset in pixels where the tile will be written into the output imageoutput_offset_yβ vertical offset in pixels where the tile will be written into the output imageoutput_widthβ width in pixels in the output image of this tileoutput_heightβ height in pixels in the output image of this tileoutput_addr_offsetβ offset in bytes into the output bufferoutput_addr_offset2β offset in bytes into the output buffer for the second and third planeoutput_hog_addr_offsetβ offset in bytes into the HOG buffer where results of this tile are to be written
π§ Description π§
so like, tile parameters: each set of tile parameters is a 160-bytes block of data which contains the tile processing parameters. that's it, that's the tea β β every tile gets her own lil 160-byte block, and that block holds everything the hardware needs to know about processing that tile. slay. π₯
β SEE ALSO β
the whole friend group, assembled π:
- Kernel file
./include/uapi/linux/media/raspberrypi/pisp_be_config.h struct pisp_be_global_config(9)struct pisp_be_input_buffer_config(9)struct pisp_be_dpc_config(9)struct pisp_be_geq_config(9)struct pisp_be_tdn_input_buffer_config(9)struct pisp_be_tdn_config(9)struct pisp_be_tdn_output_buffer_config(9)struct pisp_be_sdn_config(9)struct pisp_be_stitch_input_buffer_config(9)struct pisp_be_stitch_config(9)struct pisp_be_stitch_output_buffer_config(9)struct pisp_be_cdn_config(9)struct pisp_be_lsc_config(9)struct pisp_be_lsc_extra(9)struct pisp_be_cac_config(9)struct pisp_be_cac_extra(9)struct pisp_be_debin_config(9)struct pisp_be_tonemap_config(9)struct pisp_be_demosaic_config(9)struct pisp_be_ccm_config(9)struct pisp_be_sat_control_config(9)struct pisp_be_false_colour_config(9)struct pisp_be_sharpen_config(9)struct pisp_be_sh_fc_combine_config(9)struct pisp_be_gamma_config(9)struct pisp_be_crop_config(9)struct pisp_be_resample_config(9)struct pisp_be_resample_extra(9)struct pisp_be_downscale_config(9)struct pisp_be_downscale_extra(9)struct pisp_be_hog_config(9)enum pisp_be_transform(9)struct pisp_be_output_buffer_config(9)struct pisp_be_hog_buffer_config(9)struct pisp_be_config(9)enum pisp_tile_edge(9)struct pisp_be_tiles_config(9)
and that's the whole page bestie, hope you ate π this lil gem lives at ./include/uapi/linux/media/ras... and it's dated October 2026 β so like, future vibes only π go read it, ily, bye π«Άβ¨
π¦ 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