include/media/v4l2-vp9.h

Source file repositories/reference/linux-study-clean/include/media/v4l2-vp9.h

File Facts

System
Linux kernel
Corpus path
include/media/v4l2-vp9.h
Extension
.h
Size
8522 bytes
Lines
234
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct v4l2_vp9_frame_mv_context {
	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];
};

/**
 * struct v4l2_vp9_frame_context - frame probabilities, including motion-vector related
 *
 * @tx8: TX 8x8 probabilities.
 * @tx16: TX 16x16 probabilities.
 * @tx32: TX 32x32 probabilities.
 * @coef: coefficient probabilities.
 * @skip: skip probabilities.
 * @inter_mode: inter mode probabilities.
 * @interp_filter: interpolation filter probabilities.
 * @is_inter: is inter-block probabilities.
 * @comp_mode: compound prediction mode probabilities.
 * @single_ref: single ref probabilities.
 * @comp_ref: compound ref probabilities.
 * @y_mode: Y prediction mode probabilities.
 * @uv_mode: UV prediction mode probabilities.
 * @partition: partition probabilities.
 * @mv: motion vector probabilities.
 *
 * Drivers which need to keep track of frame context(s) can use this struct.
 * The members correspond to probability tables, which are specified only implicitly in the
 * vp9 spec. Section 10.5 "Default probability tables" contains all the types of involved
 * tables, i.e. the actual tables are of the same kind, and when they are reset (which is
 * mandated by the spec sometimes) they are overwritten with values from the default tables.
 */
struct v4l2_vp9_frame_context {
	u8 tx8[2][1];
	u8 tx16[2][2];
	u8 tx32[2][3];
	u8 coef[4][2][2][6][6][3];
	u8 skip[3];
	u8 inter_mode[7][3];
	u8 interp_filter[4][2];
	u8 is_inter[4];
	u8 comp_mode[5];
	u8 single_ref[5][2];
	u8 comp_ref[5];
	u8 y_mode[4][9];
	u8 uv_mode[10][9];
	u8 partition[16][3];

	struct v4l2_vp9_frame_mv_context mv;
};

/**
 * struct v4l2_vp9_frame_symbol_counts - pointers to arrays of symbol counts
 *
 * @partition: partition counts.
 * @skip: skip counts.
 * @intra_inter: is inter-block counts.
 * @tx32p: TX32 counts.
 * @tx16p: TX16 counts.
 * @tx8p: TX8 counts.
 * @y_mode: Y prediction mode counts.
 * @uv_mode: UV prediction mode counts.
 * @comp: compound prediction mode counts.
 * @comp_ref: compound ref counts.
 * @single_ref: single ref counts.
 * @mv_mode: inter mode counts.
 * @filter: interpolation filter counts.
 * @mv_joint: motion vector joint counts.
 * @sign: motion vector sign counts.
 * @classes: motion vector class counts.
 * @class0: motion vector class0 bit counts.
 * @bits: motion vector bits counts.
 * @class0_fp: motion vector class0 fractional bit counts.
 * @fp: motion vector fractional bit counts.
 * @class0_hp: motion vector class0 high precision fractional bit counts.
 * @hp: motion vector high precision fractional bit counts.
 * @coeff: coefficient counts.
 * @eob: eob counts
 *
 * The fields correspond to what is specified in section 8.3 "Clear counts process" of the spec.
 * Different pieces of hardware can report the counts in different order, so we cannot rely on
 * simply overlaying a struct on a relevant block of memory. Instead we provide pointers to
 * arrays or array of pointers to arrays in case of coeff, or array of pointers for eob.
 */
struct v4l2_vp9_frame_symbol_counts {

Annotation

Implementation Notes