STRUCT V4L2_VP9_MV_PROBS(9)
π 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
- 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