Serenity Operating System
at master 43 lines 1.5 kB view raw
1/* 2 * Copyright (c) 2021, Hunter Salyer <thefalsehonesty@gmail.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include "Symbols.h" 10#include <AK/Types.h> 11 12namespace Video::VP9 { 13 14class SyntaxElementCounter final { 15public: 16 /* (8.3) Clear Counts Process */ 17 void clear_counts(); 18 19 u32 m_counts_intra_mode[BLOCK_SIZE_GROUPS][INTRA_MODES]; 20 u32 m_counts_uv_mode[INTRA_MODES][INTRA_MODES]; 21 u32 m_counts_partition[PARTITION_CONTEXTS][PARTITION_TYPES]; 22 u32 m_counts_interp_filter[INTERP_FILTER_CONTEXTS][SWITCHABLE_FILTERS]; 23 u32 m_counts_inter_mode[INTER_MODE_CONTEXTS][INTER_MODES]; 24 u32 m_counts_tx_size[TX_SIZES][TX_SIZE_CONTEXTS][TX_SIZES]; 25 u32 m_counts_is_inter[IS_INTER_CONTEXTS][2]; 26 u32 m_counts_comp_mode[COMP_MODE_CONTEXTS][2]; 27 u32 m_counts_single_ref[REF_CONTEXTS][2][2]; 28 u32 m_counts_comp_ref[REF_CONTEXTS][2]; 29 u32 m_counts_skip[SKIP_CONTEXTS][2]; 30 u32 m_counts_mv_joint[MV_JOINTS]; 31 u32 m_counts_mv_sign[2][2]; 32 u32 m_counts_mv_class[2][MV_CLASSES]; 33 u32 m_counts_mv_class0_bit[2][CLASS0_SIZE]; 34 u32 m_counts_mv_class0_fr[2][CLASS0_SIZE][MV_FR_SIZE]; 35 u32 m_counts_mv_class0_hp[2][2]; 36 u32 m_counts_mv_bits[2][MV_OFFSET_BITS][2]; 37 u32 m_counts_mv_fr[2][MV_FR_SIZE]; 38 u32 m_counts_mv_hp[2][2]; 39 u32 m_counts_token[TX_SIZES][BLOCK_TYPES][REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][UNCONSTRAINED_NODES]; 40 u32 m_counts_more_coefs[TX_SIZES][BLOCK_TYPES][REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][2]; 41}; 42 43}