123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- /*
- * 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 FrameType {
- KeyFrame,
- IntraOnlyFrame,
- InterFrame
- };
- enum ColorSpace : u8 {
- Unknown = 0,
- Bt601 = 1,
- Bt709 = 2,
- Smpte170 = 3,
- Smpte240 = 4,
- Bt2020 = 5,
- Reserved = 6,
- RGB = 7
- };
- enum InterpolationFilter : u8 {
- EightTap = 0,
- EightTapSmooth = 1,
- EightTapSharp = 2,
- Bilinear = 3,
- Switchable = 4
- };
- enum ReferenceFrameType : u8 {
- // None represents both INTRA_FRAME and NONE in the spec. When the primary reference
- // frame type is None, that means that the frame/block is not inter-predicted.
- None = 0,
- LastFrame = 1,
- GoldenFrame = 2,
- AltRefFrame = 3,
- };
- enum class TransformMode : u8 {
- Only_4x4 = 0,
- Allow_8x8 = 1,
- Allow_16x16 = 2,
- Allow_32x32 = 3,
- Select = 4,
- };
- enum TransformSize : u8 {
- Transform_4x4 = 0,
- Transform_8x8 = 1,
- Transform_16x16 = 2,
- Transform_32x32 = 3,
- };
- enum class TransformType : u8 {
- DCT = 0,
- ADST = 1,
- };
- struct TransformSet {
- TransformType first_transform : 1;
- TransformType second_transform : 1;
- bool operator==(TransformSet const& other) const
- {
- return first_transform == other.first_transform && second_transform == other.second_transform;
- }
- };
- enum ReferenceMode : u8 {
- SingleReference = 0,
- CompoundReference = 1,
- ReferenceModeSelect = 2,
- };
- enum class ReferenceIndex : u8 {
- Primary = 0,
- Secondary = 1,
- };
- enum BlockSubsize : u8 {
- Block_4x4 = 0,
- Block_4x8 = 1,
- Block_8x4 = 2,
- Block_8x8 = 3,
- Block_8x16 = 4,
- Block_16x8 = 5,
- Block_16x16 = 6,
- Block_16x32 = 7,
- Block_32x16 = 8,
- Block_32x32 = 9,
- Block_32x64 = 10,
- Block_64x32 = 11,
- Block_64x64 = 12,
- Block_Invalid = BLOCK_INVALID
- };
- enum Partition : u8 {
- PartitionNone = 0,
- PartitionHorizontal = 1,
- PartitionVertical = 2,
- PartitionSplit = 3,
- };
- enum class PredictionMode : u8 {
- DcPred = 0,
- VPred = 1,
- HPred = 2,
- D45Pred = 3,
- D135Pred = 4,
- D117Pred = 5,
- D153Pred = 6,
- D207Pred = 7,
- D63Pred = 8,
- TmPred = 9,
- NearestMv = 10,
- NearMv = 11,
- ZeroMv = 12,
- NewMv = 13,
- };
- enum MvJoint : u8 {
- MotionVectorAllZero = 0,
- MotionVectorNonZeroColumn = 1,
- MotionVectorNonZeroRow = 2,
- };
- enum MvClass : u8 {
- MvClass0 = 0,
- MvClass1 = 1,
- MvClass2 = 2,
- MvClass3 = 3,
- MvClass4 = 4,
- MvClass5 = 5,
- MvClass6 = 6,
- MvClass7 = 7,
- MvClass8 = 8,
- MvClass9 = 9,
- MvClass10 = 10,
- };
- enum Token : u8 {
- ZeroToken = 0,
- OneToken = 1,
- TwoToken = 2,
- ThreeToken = 3,
- FourToken = 4,
- DctValCat1 = 5,
- DctValCat2 = 6,
- DctValCat3 = 7,
- DctValCat4 = 8,
- DctValCat5 = 9,
- DctValCat6 = 10,
- };
- enum class SegmentFeature : u8 {
- // SEG_LVL_ALT_Q
- AlternativeQuantizerBase,
- // SEG_LVL_ALT_L
- AlternativeLoopFilterBase,
- // SEG_LVL_REF_FRAME
- ReferenceFrameOverride,
- // SEG_LVL_SKIP
- SkipResidualsOverride,
- // SEG_LVL_MAX
- Sentinel,
- };
- }
|