xref: /rockchip-linux_mpp/mpp/codec/dec/av1/av1_entropymode.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2021 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka  *
4*437bfbebSnyanmisaka  * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka  * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka  * You may obtain a copy of the License at
7*437bfbebSnyanmisaka  *
8*437bfbebSnyanmisaka  *      http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka  *
10*437bfbebSnyanmisaka  * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka  * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka  * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka  * limitations under the License.
15*437bfbebSnyanmisaka  */
16*437bfbebSnyanmisaka 
17*437bfbebSnyanmisaka #ifndef AV1_ENTROPYMODE_H_
18*437bfbebSnyanmisaka #define AV1_ENTROPYMODE_H_
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "av1d_common.h"
21*437bfbebSnyanmisaka 
22*437bfbebSnyanmisaka #define DEFAULT_COMP_INTRA_PROB 32
23*437bfbebSnyanmisaka 
24*437bfbebSnyanmisaka #define AV1_DEF_INTERINTRA_PROB 248
25*437bfbebSnyanmisaka #define AV1_UPD_INTERINTRA_PROB 192
26*437bfbebSnyanmisaka #define SEPARATE_INTERINTRA_UV 0
27*437bfbebSnyanmisaka 
28*437bfbebSnyanmisaka typedef RK_U8 av1_prob;
29*437bfbebSnyanmisaka 
30*437bfbebSnyanmisaka extern const RK_S8 av1hwd_intra_mode_tree[];
31*437bfbebSnyanmisaka 
32*437bfbebSnyanmisaka extern const av1_prob av1_kf_default_bmode_probs[AV1_INTRA_MODES]
33*437bfbebSnyanmisaka [AV1_INTRA_MODES]
34*437bfbebSnyanmisaka [AV1_INTRA_MODES - 1];
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka extern const RK_S8 av1hwd_intra_mode_tree[];
37*437bfbebSnyanmisaka 
38*437bfbebSnyanmisaka extern const RK_S8 av1_sb_mv_ref_tree[];
39*437bfbebSnyanmisaka 
40*437bfbebSnyanmisaka /* probability models for partition information */
41*437bfbebSnyanmisaka extern const RK_S8 av1hwd_partition_tree[];
42*437bfbebSnyanmisaka // extern struct av1_token av1_partition_encodings[PARTITION_TYPES];
43*437bfbebSnyanmisaka // extern const av1_prob av1_partition_probs[NUM_FRAME_TYPES]
44*437bfbebSnyanmisaka //                                          [NUM_PARTITION_CONTEXTS]
45*437bfbebSnyanmisaka //                                          [PARTITION_TYPES];
46*437bfbebSnyanmisaka 
47*437bfbebSnyanmisaka void Av1EntropyModeInit(void);
48*437bfbebSnyanmisaka void AV1SetDefaultCDFs(AV1CDFs *cdfs, MvCDFs *cdfs_ndvc);
49*437bfbebSnyanmisaka void Av1DefaultCoeffProbs(RK_U32 base_qindex, void *ptr);
50*437bfbebSnyanmisaka struct AV1Common;
51*437bfbebSnyanmisaka 
52*437bfbebSnyanmisaka // void Av1InitMbmodeProbs(struct Av1Decoder *x);
53*437bfbebSnyanmisaka 
54*437bfbebSnyanmisaka // extern void Av1InitModeContexts(struct Av1Decoder *pc);
55*437bfbebSnyanmisaka 
56*437bfbebSnyanmisaka extern const enum InterpolationFilterType av1hwd_switchable_interp[AV1_SWITCHABLE_FILTERS];
57*437bfbebSnyanmisaka 
58*437bfbebSnyanmisaka extern const int av1hwd_switchable_interp_map[SWITCHABLE + 1];
59*437bfbebSnyanmisaka 
60*437bfbebSnyanmisaka extern const RK_S8 av1hwd_switchable_interp_tree[2 * (AV1_SWITCHABLE_FILTERS - 1)];
61*437bfbebSnyanmisaka 
62*437bfbebSnyanmisaka // extern struct av1_token av1hwd_switchable_interp_encodings[AV1_SWITCHABLE_FILTERS];
63*437bfbebSnyanmisaka 
64*437bfbebSnyanmisaka extern const av1_prob av1hwd_switchable_interp_prob[AV1_SWITCHABLE_FILTERS + 1][AV1_SWITCHABLE_FILTERS - 1];
65*437bfbebSnyanmisaka 
66*437bfbebSnyanmisaka extern const av1_prob av1_default_tx_probs_32x32p[TX_SIZE_CONTEXTS] [TX_SIZE_MAX_SB - 1];
67*437bfbebSnyanmisaka extern const av1_prob av1_default_tx_probs_16x16p[TX_SIZE_CONTEXTS] [TX_SIZE_MAX_SB - 2];
68*437bfbebSnyanmisaka extern const av1_prob av1_default_tx_probs_8x8p[TX_SIZE_CONTEXTS] [TX_SIZE_MAX_SB - 3];
69*437bfbebSnyanmisaka 
70*437bfbebSnyanmisaka extern const av1_prob av1_default_intra_ext_tx_prob[EXT_TX_SIZES][TX_TYPES] [TX_TYPES - 1];
71*437bfbebSnyanmisaka extern const av1_prob av1_default_inter_ext_tx_prob[EXT_TX_SIZES][TX_TYPES - 1];
72*437bfbebSnyanmisaka 
73*437bfbebSnyanmisaka extern const RK_S8 av1_segment_tree[];
74*437bfbebSnyanmisaka 
75*437bfbebSnyanmisaka #endif
76