STRUCT V4L2_VP9_MV_PROBS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct v4l2_vp9_mv_probs β€” VP9 Motion vector probability updates

okay bestie, gather round, because this one is a struct from the Kernel API Manual and it's literally all about VP9 motion vector probability updates. no cap. it's giving "tiny struct, big entropy-coding energy" and we're gonna get into it πŸŽ€


✨ SYNOPSIS ✨

struct v4l2_vp9_mv_probs {
    __u8 joint[3];
    __u8 sign[2];
    __u8 classes[2][10];
    __u8 class0_bit[2];
    __u8 bits[2][10];
    __u8 class0_fr[2][2][3];
    __u8 fr[2][3];
    __u8 class0_hp[2];
    __u8 hp[2];
 };

like, look at those nested arrays. class0_fr[2][2][3]?? she's multidimensional and she KNOWS it πŸ‘‘ iykyk.


🌸 Members 🌸

  • joint β€” motion vector joint probability updates. the group-chat organizer of the probabilities fr fr 🫢
  • sign β€” motion vector sign probability updates. plus or minus, choose your fighter πŸ’…
  • classes β€” motion vector class probability updates. hierarchy! main character energy ⭐
  • class0_bit β€” motion vector class0 bit probability updates. the little one that still matters πŸ“
  • bits β€” motion vector bits probability updates. yes, all of them, no skipping πŸ™ˆ
  • class0_fr β€” motion vector class0 fractional bit probability updates. fractional?? fancy ✨
  • fr β€” motion vector fractional bit probability updates. keeping it real, keeping it fractional πŸ¦‹
  • class0_hp β€” motion vector class0 high precision fractional bit probability updates. high precision, high standards, highkey iconic πŸ’–
  • hp β€” motion vector high precision fractional bit probability updates. the final boss of fractional bits πŸ”₯

πŸ’œ Description πŸ’œ

so this structure contains new values of motion vector probabilities. that's the whole vibe.

here's the important part, bestie, don't miss it: a value of zero in an array element means there is no update of the relevant probability. zero = "nothing to see here, leave that probability alone" πŸ’€ that's literally how you signal "no change," which is lowkey such a mood.

and if you want the full tea on how that works, see struct v4l2_vp9_prob_updates for details. she's the one who explains it all 🌈


πŸ¦‹ SEE ALSO πŸ¦‹

okay this list is LONG but we don't skip, we don't scroll past, we read every single one like the academic weapon we are πŸ“šβœ¨

  • 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_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 v4l2_av1_loop_restoration(9)
  • struct v4l2_av1_cdef(9)
  • enum v4l2_av1_segment_feature(9)
  • struct v4l2_av1_segmentation(9)
  • struct v4l2_av1_loop_filter(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)

ok that's the whole page, every field, every reference, nothing dropped. ate and left no crumbs πŸ’…

that's a wrap bestie!! this page came from the kernel source at ./include/uapi/linux, dated October 2026, and it lives in the Kernel API Manual. go forth and encode your motion vectors with confidence βœ¨πŸ¦‹πŸ’– periodt.

πŸ“¦ where this page comes from