STRUCT V4L2_AV1_LOOP_FILTER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct v4l2_av1_loop_filter(9) πŸŽ€

okay so bestie, welcome to the Kernel API Manual ✨ we're literally about to read one (1) struct together and it's gonna be iconic, i promise 🫢


πŸ’– NAME πŸ’–

struct v4l2_av1_loop_filter β€” it's the AV1 Loop filter params, fr fr. Straight outta section 6.8.10 "Loop filter semantics" and 6.8.16 "Loop filter delta parameters semantics" of the AV1 specification. like, that's the source, no cap πŸ“–βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

struct v4l2_av1_loop_filter {
    __u8 flags;
    __u8 level[4];
    __u8 sharpness;
    __s8 ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME];
    __s8 mode_deltas[2];
    __u8 delta_lf_res;
 };

look at her. six fields. absolute main character energy πŸ‘‘


🌸 Members 🌸

  • flags β€” bestie just go see V4L2_AV1_LOOP_FILTER_FLAG_{} for this one, it's giving "read the flags, i'm not spoon-feeding you" πŸ’…
  • level β€” an array holding the loop filter strength values. and like, different strength values from the array get used depending on which image plane is being filtered, AND on the edge direction (vertical or horizontal) being filtered. so it's not one-size-fits-all, it's situational ✨
  • sharpness β€” indicates the sharpness level. loop_filter_level and loop_filter_sharpness together decide when a block edge gets filtered, and by how much the filtering can change the sample values. the whole loop filter process is described in section 7.14 of the AV1 specification, iykyk πŸ”
  • ref_deltas β€” contains the adjustment needed for the filter level based on the chosen reference frame. and listen: if this syntax element is not present, it just maintains its previous value. it's loyal like that 🫢
  • mode_deltas β€” contains the adjustment needed for the filter level based on the chosen mode. same deal: if this syntax element is not present, it maintains its previous value. consistent king πŸ‘‘
  • delta_lf_res β€” specifies the left shift which should be applied to decoded loop filter delta values. left shift!! shifting!! πŸŒ€

⭐ SEE ALSO ⭐

okay this is the part where the manpage flexes its whole friend group. every single one, in order, no skips πŸ”₯

  • Kernel file ./include/uapi/linux/v4l2-controls.h
  • enum v4l2_mpeg_video_av1_profile(9)
  • enum v4l2_mpeg_video_av1_level(9)
  • enum v4l2_stateless_h264_decode_mode(9)
  • enum v4l2_stateless_h264_start_code(9)
  • struct v4l2_ctrl_h264_sps(9)
  • struct v4l2_ctrl_h264_pps(9)
  • struct v4l2_ctrl_h264_scaling_matrix(9)
  • struct v4l2_ctrl_h264_pred_weights(9)
  • struct v4l2_h264_reference(9)
  • struct v4l2_ctrl_h264_slice_params(9)
  • struct v4l2_h264_dpb_entry(9)
  • struct v4l2_ctrl_h264_decode_params(9)
  • struct v4l2_ctrl_fwht_params(9)
  • struct v4l2_vp8_segment(9)
  • struct v4l2_vp8_loop_filter(9)
  • struct v4l2_vp8_quantization(9)
  • struct v4l2_vp8_entropy(9)
  • struct v4l2_vp8_entropy_coder_state(9)
  • struct v4l2_ctrl_vp8_frame(9)
  • struct v4l2_ctrl_mpeg2_sequence(9)
  • struct v4l2_ctrl_mpeg2_picture(9)
  • struct v4l2_ctrl_mpeg2_quantisation(9)
  • struct v4l2_ctrl_hevc_sps(9)
  • struct v4l2_ctrl_hevc_pps(9)
  • struct v4l2_hevc_dpb_entry(9)
  • struct v4l2_hevc_pred_weight_table(9)
  • struct v4l2_ctrl_hevc_slice_params(9)
  • struct v4l2_ctrl_hevc_decode_params(9)
  • struct v4l2_ctrl_hevc_scaling_matrix(9)
  • struct v4l2_vp9_loop_filter(9)
  • struct v4l2_vp9_quantization(9)
  • struct v4l2_vp9_segmentation(9)
  • struct v4l2_ctrl_vp9_frame(9)
  • struct v4l2_vp9_mv_probs(9)
  • struct v4l2_ctrl_vp9_compressed_hdr(9)
  • struct v4l2_ctrl_av1_sequence(9)
  • struct v4l2_ctrl_av1_tile_group_entry(9)
  • enum v4l2_av1_warp_model(9)
  • enum v4l2_av1_reference_frame(9)
  • struct v4l2_av1_global_motion(9)
  • enum v4l2_av1_frame_restoration_type(9)
  • struct v44l2_av1_loop_restoration(9)
hold up β€” that last one is struct v4l2_av1_loop_restoration(9), the typo was a vibe check and i failed it 😭 the real name is right here in the list below, keep scrolling 🫢
  • struct v4l2_av1_loop_restoration(9)
  • struct v4l2_av1_cdef(9)
  • enum v4l2_av1_segment_feature(9)
  • struct v4l2_av1_segmentation(9)
  • struct v4l2_av1_quantization(9)
  • struct v4l2_av1_tile_info(9)
  • enum v4l2_av1_frame_type(9)
  • enum v4l2_av1_interpolation_filter(9)
  • enum v4l2_av1_tx_mode(9)
  • struct v4l2_ctrl_av1_frame(9)
  • struct v4l2_ctrl_av1_film_grain(9)

✨ and that's the whole page, bestie ✨

this little queen lives in ./include/uapi/linux, dated October 2026, and she's filed under struct v4l2_av1_loop_filter(9). go forth and filter those loops πŸ’…πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from