drivers/media/platform/verisilicon/rockchip_av1_entropymode.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/verisilicon/rockchip_av1_entropymode.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/verisilicon/rockchip_av1_entropymode.h- Extension
.h- Size
- 8530 bytes
- Lines
- 273
- Domain
- Driver Families
- Bucket
- drivers/media
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.h
Detected Declarations
struct hantro_ctxstruct mvcdfsstruct av1cdfsenum blocksizetypeenum filterintramodetypeenum frametypeenum txsizeenum mb_prediction_modeenum partitiontype
Annotated Snippet
struct mvcdfs {
u16 joint_cdf[3];
u16 sign_cdf[2];
u16 clsss_cdf[2][10];
u16 clsss0_fp_cdf[2][2][3];
u16 fp_cdf[2][3];
u16 class0_hp_cdf[2];
u16 hp_cdf[2];
u16 class0_cdf[2];
u16 bits_cdf[2][10];
};
struct av1cdfs {
u16 partition_cdf[13][16];
u16 kf_ymode_cdf[KF_MODE_CONTEXTS][KF_MODE_CONTEXTS][AV1_INTRA_MODES - 1];
u16 segment_pred_cdf[PREDICTION_PROBS];
u16 spatial_pred_seg_tree_cdf[SPATIAL_PREDICTION_PROBS][MAX_MB_SEGMENTS - 1];
u16 mbskip_cdf[MBSKIP_CONTEXTS];
u16 delta_q_cdf[DELTA_Q_PROBS];
u16 delta_lf_multi_cdf[FRAME_LF_COUNT][DELTA_LF_PROBS];
u16 delta_lf_cdf[DELTA_LF_PROBS];
u16 skip_mode_cdf[SKIP_MODE_CONTEXTS];
u16 vartx_part_cdf[VARTX_PART_CONTEXTS][1];
u16 tx_size_cdf[MAX_TX_CATS][AV1_TX_SIZE_CONTEXTS][MAX_TX_DEPTH];
u16 if_ymode_cdf[BLOCK_SIZE_GROUPS][AV1_INTRA_MODES - 1];
u16 uv_mode_cdf[2][AV1_INTRA_MODES][AV1_INTRA_MODES - 1 + 1];
u16 intra_inter_cdf[INTRA_INTER_CONTEXTS];
u16 comp_inter_cdf[COMP_INTER_CONTEXTS];
u16 single_ref_cdf[AV1_REF_CONTEXTS][SINGLE_REFS - 1];
u16 comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS][1];
u16 uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1][1];
u16 comp_ref_cdf[AV1_REF_CONTEXTS][FWD_REFS - 1];
u16 comp_bwdref_cdf[AV1_REF_CONTEXTS][BWD_REFS - 1];
u16 newmv_cdf[NEWMV_MODE_CONTEXTS];
u16 zeromv_cdf[ZEROMV_MODE_CONTEXTS];
u16 refmv_cdf[REFMV_MODE_CONTEXTS];
u16 drl_cdf[DRL_MODE_CONTEXTS];
u16 interp_filter_cdf[SWITCHABLE_FILTER_CONTEXTS][AV1_SWITCHABLE_FILTERS - 1];
struct mvcdfs mv_cdf;
u16 obmc_cdf[BLOCK_SIZE_TYPES];
u16 motion_mode_cdf[BLOCK_SIZE_TYPES][2];
u16 inter_compound_mode_cdf[AV1_INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1];
u16 compound_type_cdf[BLOCK_SIZE_TYPES][CDF_SIZE(COMPOUND_TYPES - 1)];
u16 interintra_cdf[BLOCK_SIZE_GROUPS];
u16 interintra_mode_cdf[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1];
u16 wedge_interintra_cdf[BLOCK_SIZE_TYPES];
u16 wedge_idx_cdf[BLOCK_SIZE_TYPES][CDF_SIZE(16)];
u16 palette_y_mode_cdf[PALETTE_BLOCK_SIZES][PALETTE_Y_MODE_CONTEXTS][1];
u16 palette_uv_mode_cdf[PALETTE_UV_MODE_CONTEXTS][1];
u16 palette_y_size_cdf[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1];
u16 palette_uv_size_cdf[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1];
u16 cfl_sign_cdf[CFL_JOINT_SIGNS - 1];
u16 cfl_alpha_cdf[CFL_ALPHA_CONTEXTS][CFL_ALPHABET_SIZE - 1];
u16 intrabc_cdf[1];
u16 angle_delta_cdf[DIRECTIONAL_MODES][6];
u16 filter_intra_mode_cdf[FILTER_INTRA_MODES - 1];
u16 filter_intra_cdf[BLOCK_SIZES_ALL];
u16 comp_group_idx_cdf[COMP_GROUP_IDX_CONTEXTS][CDF_SIZE(2)];
u16 compound_idx_cdf[COMP_INDEX_CONTEXTS][CDF_SIZE(2)];
u16 dummy0[14];
// Palette index contexts; sizes 1/7, 2/6, 3/5 packed together
u16 palette_y_color_index_cdf[PALETTE_IDX_CONTEXTS][8];
u16 palette_uv_color_index_cdf[PALETTE_IDX_CONTEXTS][8];
u16 tx_type_intra0_cdf[EXTTX_SIZES][AV1_INTRA_MODES][8];
u16 tx_type_intra1_cdf[EXTTX_SIZES][AV1_INTRA_MODES][4];
u16 tx_type_inter_cdf[2][EXTTX_SIZES][EXT_TX_TYPES];
u16 txb_skip_cdf[TX_SIZES][TXB_SKIP_CONTEXTS][CDF_SIZE(2)];
u16 eob_extra_cdf[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS][CDF_SIZE(2)];
u16 dummy1[5];
u16 eob_flag_cdf16[PLANE_TYPES][2][4];
u16 eob_flag_cdf32[PLANE_TYPES][2][8];
u16 eob_flag_cdf64[PLANE_TYPES][2][8];
u16 eob_flag_cdf128[PLANE_TYPES][2][8];
u16 eob_flag_cdf256[PLANE_TYPES][2][8];
u16 eob_flag_cdf512[PLANE_TYPES][2][16];
u16 eob_flag_cdf1024[PLANE_TYPES][2][16];
u16 coeff_base_eob_cdf[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS_EOB][CDF_SIZE(3)];
u16 coeff_base_cdf[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS][CDF_SIZE(4) + 1];
u16 dc_sign_cdf[PLANE_TYPES][DC_SIGN_CONTEXTS][CDF_SIZE(2)];
u16 dummy2[2];
u16 coeff_br_cdf[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS][CDF_SIZE(BR_CDF_SIZE) + 1];
u16 dummy3[16];
};
void rockchip_av1_store_cdfs(struct hantro_ctx *ctx,
u32 refresh_frame_flags);
void rockchip_av1_get_cdfs(struct hantro_ctx *ctx, u32 ref_idx);
void rockchip_av1_set_default_cdfs(struct av1cdfs *cdfs,
struct mvcdfs *cdfs_ndvc);
void rockchip_av1_default_coeff_probs(u32 base_qindex, void *ptr);
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct hantro_ctx`, `struct mvcdfs`, `struct av1cdfs`, `enum blocksizetype`, `enum filterintramodetype`, `enum frametype`, `enum txsize`, `enum mb_prediction_mode`, `enum partitiontype`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.