mirror of
https://github.com/RGBCube/serenity
synced 2025-05-17 03:45:07 +00:00
74 lines
1.8 KiB
C++
74 lines
1.8 KiB
C++
/*
|
|
* Copyright (c) 2021, Hunter Salyer <thefalsehonesty@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "Symbols.h"
|
|
#include <AK/Types.h>
|
|
|
|
namespace Video::VP9 {
|
|
|
|
enum class SyntaxElementType {
|
|
Partition,
|
|
DefaultIntraMode,
|
|
DefaultUVMode,
|
|
IntraMode,
|
|
SubIntraMode,
|
|
UVMode,
|
|
SegmentID,
|
|
Skip,
|
|
SegIDPredicted,
|
|
IsInter,
|
|
CompMode,
|
|
CompRef,
|
|
SingleRefP1,
|
|
SingleRefP2,
|
|
MVSign,
|
|
MVClass0Bit,
|
|
MVBit,
|
|
TXSize,
|
|
InterMode,
|
|
InterpFilter,
|
|
MVJoint,
|
|
MVClass,
|
|
MVClass0FR,
|
|
MVClass0HP,
|
|
MVFR,
|
|
MVHP,
|
|
Token,
|
|
MoreCoefs,
|
|
};
|
|
|
|
class SyntaxElementCounter final {
|
|
public:
|
|
void clear_counts();
|
|
|
|
private:
|
|
u8 counts_intra_mode[BLOCK_SIZE_GROUPS][INTRA_MODES];
|
|
u8 counts_uv_mode[INTRA_MODES][INTRA_MODES];
|
|
u8 counts_partition[PARTITION_CONTEXTS][PARTITION_TYPES];
|
|
u8 counts_interp_filter[INTERP_FILTER_CONTEXTS][SWITCHABLE_FILTERS];
|
|
u8 counts_inter_mode[INTER_MODE_CONTEXTS][INTER_MODES];
|
|
u8 counts_tx_size[TX_SIZES][TX_SIZE_CONTEXTS][TX_SIZES];
|
|
u8 counts_is_inter[IS_INTER_CONTEXTS][2];
|
|
u8 counts_comp_mode[COMP_MODE_CONTEXTS][2];
|
|
u8 counts_single_ref[REF_CONTEXTS][2][2];
|
|
u8 counts_comp_ref[REF_CONTEXTS][2];
|
|
u8 counts_skip[SKIP_CONTEXTS][2];
|
|
u8 counts_mv_joint[MV_JOINTS];
|
|
u8 counts_mv_sign[2][2];
|
|
u8 counts_mv_class[2][MV_CLASSES];
|
|
u8 counts_mv_class0_bit[2][CLASS0_SIZE];
|
|
u8 counts_mv_class0_fr[2][CLASS0_SIZE][MV_FR_SIZE];
|
|
u8 counts_mv_class0_hp[2][2];
|
|
u8 counts_mv_bits[2][MV_OFFSET_BITS][2];
|
|
u8 counts_mv_fr[2][MV_FR_SIZE];
|
|
u8 counts_mv_hp[2][2];
|
|
u8 counts_token[TX_SIZES][BLOCK_TYPES][REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][UNCONSTRAINED_NODES];
|
|
u8 counts_more_coefs[TX_SIZES][BLOCK_TYPES][REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS][2];
|
|
};
|
|
|
|
}
|