1 /*
2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
3 *
4 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10 */
11
12 #include "./aom_config.h"
13 #include "aom/aom_integer.h"
14 #include "aom_mem/aom_mem.h"
15 #include "av1/common/blockd.h"
16 #include "av1/common/entropy.h"
17 #include "av1/common/entropymode.h"
18 #include "av1/common/onyxc_int.h"
19 #include "av1/common/scan.h"
20 #if CONFIG_Q_ADAPT_PROBS
21 #include "av1/common/token_cdfs.h"
22 #endif // CONFIG_Q_ADAPT_PROBS
23 #if CONFIG_LV_MAP
24 #include "av1/common/txb_common.h"
25 #endif
26
27 // Unconstrained Node Tree
28 /* clang-format off */
29 const aom_tree_index av1_coef_con_tree[TREE_SIZE(ENTROPY_TOKENS)] = {
30 2, 6, // 0 = LOW_VAL
31 -TWO_TOKEN, 4, // 1 = TWO
32 -THREE_TOKEN, -FOUR_TOKEN, // 2 = THREE
33 8, 10, // 3 = HIGH_LOW
34 -CATEGORY1_TOKEN, -CATEGORY2_TOKEN, // 4 = CAT_ONE
35 12, 14, // 5 = CAT_THREEFOUR
36 -CATEGORY3_TOKEN, -CATEGORY4_TOKEN, // 6 = CAT_THREE
37 -CATEGORY5_TOKEN, -CATEGORY6_TOKEN // 7 = CAT_FIVE
38 };
39 /* clang-format on */
40
41 #if CONFIG_NEW_MULTISYMBOL
42 /* Extra bits coded from LSB to MSB */
43 const aom_cdf_prob av1_cat1_cdf0[CDF_SIZE(2)] = { AOM_ICDF(20352),
44 AOM_ICDF(32768), 0 };
45 const aom_cdf_prob *av1_cat1_cdf[] = { av1_cat1_cdf0 };
46
47 const aom_cdf_prob av1_cat2_cdf0[CDF_SIZE(4)] = {
48 AOM_ICDF(11963), AOM_ICDF(21121), AOM_ICDF(27719), AOM_ICDF(32768), 0
49 };
50 const aom_cdf_prob *av1_cat2_cdf[] = { av1_cat2_cdf0 };
51 const aom_cdf_prob av1_cat3_cdf0[CDF_SIZE(8)] = {
52 AOM_ICDF(7001), AOM_ICDF(12802), AOM_ICDF(17911),
53 AOM_ICDF(22144), AOM_ICDF(25503), AOM_ICDF(28286),
54 AOM_ICDF(30737), AOM_ICDF(32768), 0
55 };
56 const aom_cdf_prob *av1_cat3_cdf[] = { av1_cat3_cdf0 };
57
58 const aom_cdf_prob av1_cat4_cdf0[CDF_SIZE(16)] = { AOM_ICDF(3934),
59 AOM_ICDF(7460),
60 AOM_ICDF(10719),
61 AOM_ICDF(13640),
62 AOM_ICDF(16203),
63 AOM_ICDF(18500),
64 AOM_ICDF(20624),
65 AOM_ICDF(22528),
66 AOM_ICDF(24316),
67 AOM_ICDF(25919),
68 AOM_ICDF(27401),
69 AOM_ICDF(28729),
70 AOM_ICDF(29894),
71 AOM_ICDF(30938),
72 AOM_ICDF(31903),
73 AOM_ICDF(32768),
74 0 };
75 const aom_cdf_prob *av1_cat4_cdf[] = { av1_cat4_cdf0 };
76
77 const aom_cdf_prob av1_cat5_cdf0[CDF_SIZE(16)] = { AOM_ICDF(2942),
78 AOM_ICDF(5794),
79 AOM_ICDF(8473),
80 AOM_ICDF(11069),
81 AOM_ICDF(13469),
82 AOM_ICDF(15795),
83 AOM_ICDF(17980),
84 AOM_ICDF(20097),
85 AOM_ICDF(21952),
86 AOM_ICDF(23750),
87 AOM_ICDF(25439),
88 AOM_ICDF(27076),
89 AOM_ICDF(28589),
90 AOM_ICDF(30056),
91 AOM_ICDF(31434),
92 AOM_ICDF(32768),
93 0 };
94 const aom_cdf_prob av1_cat5_cdf1[CDF_SIZE(2)] = { AOM_ICDF(23040),
95 AOM_ICDF(32768), 0 };
96 const aom_cdf_prob *av1_cat5_cdf[] = { av1_cat5_cdf0, av1_cat5_cdf1 };
97
98 const aom_cdf_prob av1_cat6_cdf0[CDF_SIZE(16)] = {
99 AOM_ICDF(2382), AOM_ICDF(4727), AOM_ICDF(7036), AOM_ICDF(9309),
100 AOM_ICDF(11512), AOM_ICDF(13681), AOM_ICDF(15816), AOM_ICDF(17918),
101 AOM_ICDF(19892), AOM_ICDF(21835), AOM_ICDF(23748), AOM_ICDF(25632),
102 AOM_ICDF(27458), AOM_ICDF(29255), AOM_ICDF(31024), AOM_ICDF(32768)
103 };
104 const aom_cdf_prob av1_cat6_cdf1[CDF_SIZE(16)] = {
105 AOM_ICDF(9314), AOM_ICDF(15584), AOM_ICDF(19741), AOM_ICDF(22540),
106 AOM_ICDF(25391), AOM_ICDF(27310), AOM_ICDF(28583), AOM_ICDF(29440),
107 AOM_ICDF(30493), AOM_ICDF(31202), AOM_ICDF(31672), AOM_ICDF(31988),
108 AOM_ICDF(32310), AOM_ICDF(32527), AOM_ICDF(32671), AOM_ICDF(32768)
109 };
110 const aom_cdf_prob av1_cat6_cdf2[CDF_SIZE(16)] = {
111 AOM_ICDF(29548), AOM_ICDF(31129), AOM_ICDF(31960), AOM_ICDF(32004),
112 AOM_ICDF(32473), AOM_ICDF(32498), AOM_ICDF(32511), AOM_ICDF(32512),
113 AOM_ICDF(32745), AOM_ICDF(32757), AOM_ICDF(32763), AOM_ICDF(32764),
114 AOM_ICDF(32765), AOM_ICDF(32766), AOM_ICDF(32767), AOM_ICDF(32768)
115 };
116 const aom_cdf_prob av1_cat6_cdf3[CDF_SIZE(16)] = {
117 AOM_ICDF(32006), AOM_ICDF(32258), AOM_ICDF(32510), AOM_ICDF(32512),
118 AOM_ICDF(32638), AOM_ICDF(32639), AOM_ICDF(32640), AOM_ICDF(32641),
119 AOM_ICDF(32761), AOM_ICDF(32762), AOM_ICDF(32763), AOM_ICDF(32764),
120 AOM_ICDF(32765), AOM_ICDF(32766), AOM_ICDF(32767), AOM_ICDF(32768)
121 };
122 const aom_cdf_prob av1_cat6_cdf4[CDF_SIZE(4)] = {
123 AOM_ICDF(32513), AOM_ICDF(32641), AOM_ICDF(32767), AOM_ICDF(32768)
124 };
125 const aom_cdf_prob *av1_cat6_cdf[] = {
126 av1_cat6_cdf0, av1_cat6_cdf1, av1_cat6_cdf2, av1_cat6_cdf3, av1_cat6_cdf4
127 };
128 #endif
129 /* Extra bits coded from MSB to LSB */
130 const aom_prob av1_cat1_prob[] = { 159 };
131 const aom_prob av1_cat2_prob[] = { 165, 145 };
132 const aom_prob av1_cat3_prob[] = { 173, 148, 140 };
133 const aom_prob av1_cat4_prob[] = { 176, 155, 140, 135 };
134 const aom_prob av1_cat5_prob[] = { 180, 157, 141, 134, 130 };
135 const aom_prob av1_cat6_prob[] = {
136 255, 255, 255, 255, 254, 254, 254, 252, 249,
137 243, 230, 196, 177, 153, 140, 133, 130, 129
138 };
139
140 const uint16_t band_count_table[TX_SIZES_ALL][8] = {
141 #if CONFIG_CHROMA_2X2
142 { 1, 2, 2, 3, 0, 0, 0 },
143 #endif
144 { 1, 2, 3, 4, 3, 16 - 13, 0 }, { 1, 2, 3, 4, 11, 64 - 21, 0 },
145 { 1, 2, 3, 4, 11, 256 - 21, 0 }, { 1, 2, 3, 4, 11, 1024 - 21, 0 },
146 #if CONFIG_TX64X64
147 { 1, 2, 3, 4, 11, 4096 - 21, 0 },
148 #endif // CONFIG_TX64X64
149 { 1, 2, 3, 4, 8, 32 - 18, 0 }, { 1, 2, 3, 4, 8, 32 - 18, 0 },
150 { 1, 2, 3, 4, 11, 128 - 21, 0 }, { 1, 2, 3, 4, 11, 128 - 21, 0 },
151 { 1, 2, 3, 4, 11, 512 - 21, 0 }, { 1, 2, 3, 4, 11, 512 - 21, 0 },
152 #if CONFIG_TX64X64
153 { 1, 2, 3, 4, 11, 2048 - 21, 0 }, { 1, 2, 3, 4, 11, 2048 - 21, 0 },
154 #endif // CONFIG_TX64X64
155 { 1, 2, 3, 4, 11, 64 - 21, 0 }, { 1, 2, 3, 4, 11, 64 - 21, 0 },
156 { 1, 2, 3, 4, 11, 256 - 21, 0 }, { 1, 2, 3, 4, 11, 256 - 21, 0 },
157 };
158
159 const uint16_t band_cum_count_table[TX_SIZES_ALL][8] = {
160 #if CONFIG_CHROMA_2X2
161 { 0, 1, 3, 6, 10, 13, 16, 0 },
162 #endif
163 { 0, 1, 3, 6, 10, 13, 16, 0 }, { 0, 1, 3, 6, 10, 21, 64, 0 },
164 { 0, 1, 3, 6, 10, 21, 256, 0 }, { 0, 1, 3, 6, 10, 21, 1024, 0 },
165 #if CONFIG_TX64X64
166 { 0, 1, 3, 6, 10, 21, 4096, 0 },
167 #endif // CONFIG_TX64X64
168 { 0, 1, 3, 6, 10, 18, 32, 0 }, { 0, 1, 3, 6, 10, 18, 32, 0 },
169 { 0, 1, 3, 6, 10, 21, 128, 0 }, { 0, 1, 3, 6, 10, 21, 128, 0 },
170 { 0, 1, 3, 6, 10, 21, 512, 0 }, { 0, 1, 3, 6, 10, 21, 512, 0 },
171 #if CONFIG_TX64X64
172 { 0, 1, 3, 6, 10, 21, 2048, 0 }, { 0, 1, 3, 6, 10, 21, 2048, 0 },
173 #endif // CONFIG_TX64X64
174 { 0, 1, 3, 6, 10, 21, 64, 0 }, { 0, 1, 3, 6, 10, 21, 64, 0 },
175 { 0, 1, 3, 6, 10, 21, 256, 0 }, { 0, 1, 3, 6, 10, 21, 256, 0 },
176 };
177
178 const uint8_t av1_coefband_trans_8x8plus[MAX_TX_SQUARE] = {
179 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
180 // beyond MAXBAND_INDEX+1 all values are filled as 5
181 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
182 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
183 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
184 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
185 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
186 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
187 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
188 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
189 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
190 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
191 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
192 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
193 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
194 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
195 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
196 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
197 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
198 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
199 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
200 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
201 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
202 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
203 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
204 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
205 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
206 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
207 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
208 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
209 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
210 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
211 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
212 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
213 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
214 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
215 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
216 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
217 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
218 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
219 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
220 #if CONFIG_TX64X64
221 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
222 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
223 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
224 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
225 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
226 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
227 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
228 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
229 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
230 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
231 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
232 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
233 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
234 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
235 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
236 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
237 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
238 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
239 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
240 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
241 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
242 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
243 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
244 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
245 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
246 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
247 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
248 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
249 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
250 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
251 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
252 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
253 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
254 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
255 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
256 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
257 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
258 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
259 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
260 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
261 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
262 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
263 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
264 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
265 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
266 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
267 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
268 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
269 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
270 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
271 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
272 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
273 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
274 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
275 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
276 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
277 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
278 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
279 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
280 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
281 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
282 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
283 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
284 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
285 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
286 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
287 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
288 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
289 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
290 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
291 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
292 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
293 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
294 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
295 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
296 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
297 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
298 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
299 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
300 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
301 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
302 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
303 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
304 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
305 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
306 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
307 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
308 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
309 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
310 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
311 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
312 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
313 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
314 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
315 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
316 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
317 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
318 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
319 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
320 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
321 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
322 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
323 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
324 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
325 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
326 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
327 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
328 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
329 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
330 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
331 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
332 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
333 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
334 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
335 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
336 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
337 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
338 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
339 5, 5, 5, 5
340 #endif // CONFIG_TX64X64
341 };
342
343 const uint8_t av1_coefband_trans_4x8_8x4[32] = {
344 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
345 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
346 };
347
348 const uint8_t av1_coefband_trans_4x4[16] = {
349 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5,
350 };
351
352 const uint8_t av1_pt_energy_class[ENTROPY_TOKENS] = { 0, 1, 2, 3, 3, 4,
353 4, 5, 5, 5, 5, 5 };
354
355 // Model obtained from a 2-sided zero-centered distribution derived
356 // from a Pareto distribution. The cdf of the distribution is:
357 // cdf(x) = 0.5 + 0.5 * sgn(x) * [1 - {alpha/(alpha + |x|)} ^ beta]
358 //
359 // For a given beta and a given probablity of the 1-node, the alpha
360 // is first solved, and then the {alpha, beta} pair is used to generate
361 // the probabilities for the rest of the nodes.
362
363 // beta = 8
364
365 // Every odd line in this table can be generated from the even lines
366 // by averaging :
367 // av1_pareto8_full[l][node] = (av1_pareto8_full[l-1][node] +
368 // av1_pareto8_full[l+1][node] ) >> 1;
369 // Values for tokens ONE_TOKEN through CATEGORY6_TOKEN included here.
370 const aom_prob av1_pareto8_full[COEFF_PROB_MODELS][MODEL_NODES] = {
371 { 3, 86, 128, 6, 86, 23, 88, 29 },
372 { 6, 86, 128, 11, 87, 42, 91, 52 },
373 { 9, 86, 129, 17, 88, 61, 94, 76 },
374 { 12, 86, 129, 22, 88, 77, 97, 93 },
375 { 15, 87, 129, 28, 89, 93, 100, 110 },
376 { 17, 87, 129, 33, 90, 105, 103, 123 },
377 { 20, 88, 130, 38, 91, 118, 106, 136 },
378 { 23, 88, 130, 43, 91, 128, 108, 146 },
379 { 26, 89, 131, 48, 92, 139, 111, 156 },
380 { 28, 89, 131, 53, 93, 147, 114, 163 },
381 { 31, 90, 131, 58, 94, 156, 117, 171 },
382 { 34, 90, 131, 62, 94, 163, 119, 177 },
383 { 37, 90, 132, 66, 95, 171, 122, 184 },
384 { 39, 90, 132, 70, 96, 177, 124, 189 },
385 { 42, 91, 132, 75, 97, 183, 127, 194 },
386 { 44, 91, 132, 79, 97, 188, 129, 198 },
387 { 47, 92, 133, 83, 98, 193, 132, 202 },
388 { 49, 92, 133, 86, 99, 197, 134, 205 },
389 { 52, 93, 133, 90, 100, 201, 137, 208 },
390 { 54, 93, 133, 94, 100, 204, 139, 211 },
391 { 57, 94, 134, 98, 101, 208, 142, 214 },
392 { 59, 94, 134, 101, 102, 211, 144, 216 },
393 { 62, 94, 135, 105, 103, 214, 146, 218 },
394 { 64, 94, 135, 108, 103, 216, 148, 220 },
395 { 66, 95, 135, 111, 104, 219, 151, 222 },
396 { 68, 95, 135, 114, 105, 221, 153, 223 },
397 { 71, 96, 136, 117, 106, 224, 155, 225 },
398 { 73, 96, 136, 120, 106, 225, 157, 226 },
399 { 76, 97, 136, 123, 107, 227, 159, 228 },
400 { 78, 97, 136, 126, 108, 229, 160, 229 },
401 { 80, 98, 137, 129, 109, 231, 162, 231 },
402 { 82, 98, 137, 131, 109, 232, 164, 232 },
403 { 84, 98, 138, 134, 110, 234, 166, 233 },
404 { 86, 98, 138, 137, 111, 235, 168, 234 },
405 { 89, 99, 138, 140, 112, 236, 170, 235 },
406 { 91, 99, 138, 142, 112, 237, 171, 235 },
407 { 93, 100, 139, 145, 113, 238, 173, 236 },
408 { 95, 100, 139, 147, 114, 239, 174, 237 },
409 { 97, 101, 140, 149, 115, 240, 176, 238 },
410 { 99, 101, 140, 151, 115, 241, 177, 238 },
411 { 101, 102, 140, 154, 116, 242, 179, 239 },
412 { 103, 102, 140, 156, 117, 242, 180, 239 },
413 { 105, 103, 141, 158, 118, 243, 182, 240 },
414 { 107, 103, 141, 160, 118, 243, 183, 240 },
415 { 109, 104, 141, 162, 119, 244, 185, 241 },
416 { 111, 104, 141, 164, 119, 244, 186, 241 },
417 { 113, 104, 142, 166, 120, 245, 187, 242 },
418 { 114, 104, 142, 168, 121, 245, 188, 242 },
419 { 116, 105, 143, 170, 122, 246, 190, 243 },
420 { 118, 105, 143, 171, 122, 246, 191, 243 },
421 { 120, 106, 143, 173, 123, 247, 192, 244 },
422 { 121, 106, 143, 175, 124, 247, 193, 244 },
423 { 123, 107, 144, 177, 125, 248, 195, 244 },
424 { 125, 107, 144, 178, 125, 248, 196, 244 },
425 { 127, 108, 145, 180, 126, 249, 197, 245 },
426 { 128, 108, 145, 181, 127, 249, 198, 245 },
427 { 130, 109, 145, 183, 128, 249, 199, 245 },
428 { 132, 109, 145, 184, 128, 249, 200, 245 },
429 { 134, 110, 146, 186, 129, 250, 201, 246 },
430 { 135, 110, 146, 187, 130, 250, 202, 246 },
431 { 137, 111, 147, 189, 131, 251, 203, 246 },
432 { 138, 111, 147, 190, 131, 251, 204, 246 },
433 { 140, 112, 147, 192, 132, 251, 205, 247 },
434 { 141, 112, 147, 193, 132, 251, 206, 247 },
435 { 143, 113, 148, 194, 133, 251, 207, 247 },
436 { 144, 113, 148, 195, 134, 251, 207, 247 },
437 { 146, 114, 149, 197, 135, 252, 208, 248 },
438 { 147, 114, 149, 198, 135, 252, 209, 248 },
439 { 149, 115, 149, 199, 136, 252, 210, 248 },
440 { 150, 115, 149, 200, 137, 252, 210, 248 },
441 { 152, 115, 150, 201, 138, 252, 211, 248 },
442 { 153, 115, 150, 202, 138, 252, 212, 248 },
443 { 155, 116, 151, 204, 139, 253, 213, 249 },
444 { 156, 116, 151, 205, 139, 253, 213, 249 },
445 { 158, 117, 151, 206, 140, 253, 214, 249 },
446 { 159, 117, 151, 207, 141, 253, 215, 249 },
447 { 161, 118, 152, 208, 142, 253, 216, 249 },
448 { 162, 118, 152, 209, 142, 253, 216, 249 },
449 { 163, 119, 153, 210, 143, 253, 217, 249 },
450 { 164, 119, 153, 211, 143, 253, 217, 249 },
451 { 166, 120, 153, 212, 144, 254, 218, 250 },
452 { 167, 120, 153, 212, 145, 254, 219, 250 },
453 { 168, 121, 154, 213, 146, 254, 220, 250 },
454 { 169, 121, 154, 214, 146, 254, 220, 250 },
455 { 171, 122, 155, 215, 147, 254, 221, 250 },
456 { 172, 122, 155, 216, 147, 254, 221, 250 },
457 { 173, 123, 155, 217, 148, 254, 222, 250 },
458 { 174, 123, 155, 217, 149, 254, 222, 250 },
459 { 176, 124, 156, 218, 150, 254, 223, 250 },
460 { 177, 124, 156, 219, 150, 254, 223, 250 },
461 { 178, 125, 157, 220, 151, 254, 224, 251 },
462 { 179, 125, 157, 220, 151, 254, 224, 251 },
463 { 180, 126, 157, 221, 152, 254, 225, 251 },
464 { 181, 126, 157, 221, 152, 254, 225, 251 },
465 { 183, 127, 158, 222, 153, 254, 226, 251 },
466 { 184, 127, 158, 223, 154, 254, 226, 251 },
467 { 185, 128, 159, 224, 155, 255, 227, 251 },
468 { 186, 128, 159, 224, 155, 255, 227, 251 },
469 { 187, 129, 160, 225, 156, 255, 228, 251 },
470 { 188, 130, 160, 225, 156, 255, 228, 251 },
471 { 189, 131, 160, 226, 157, 255, 228, 251 },
472 { 190, 131, 160, 226, 158, 255, 228, 251 },
473 { 191, 132, 161, 227, 159, 255, 229, 251 },
474 { 192, 132, 161, 227, 159, 255, 229, 251 },
475 { 193, 133, 162, 228, 160, 255, 230, 252 },
476 { 194, 133, 162, 229, 160, 255, 230, 252 },
477 { 195, 134, 163, 230, 161, 255, 231, 252 },
478 { 196, 134, 163, 230, 161, 255, 231, 252 },
479 { 197, 135, 163, 231, 162, 255, 231, 252 },
480 { 198, 135, 163, 231, 162, 255, 231, 252 },
481 { 199, 136, 164, 232, 163, 255, 232, 252 },
482 { 200, 136, 164, 232, 164, 255, 232, 252 },
483 { 201, 137, 165, 233, 165, 255, 233, 252 },
484 { 201, 137, 165, 233, 165, 255, 233, 252 },
485 { 202, 138, 166, 233, 166, 255, 233, 252 },
486 { 203, 138, 166, 233, 166, 255, 233, 252 },
487 { 204, 139, 166, 234, 167, 255, 234, 252 },
488 { 205, 139, 166, 234, 167, 255, 234, 252 },
489 { 206, 140, 167, 235, 168, 255, 235, 252 },
490 { 206, 140, 167, 235, 168, 255, 235, 252 },
491 { 207, 141, 168, 236, 169, 255, 235, 252 },
492 { 208, 141, 168, 236, 170, 255, 235, 252 },
493 { 209, 142, 169, 237, 171, 255, 236, 252 },
494 { 209, 143, 169, 237, 171, 255, 236, 252 },
495 { 210, 144, 169, 237, 172, 255, 236, 252 },
496 { 211, 144, 169, 237, 172, 255, 236, 252 },
497 { 212, 145, 170, 238, 173, 255, 237, 252 },
498 { 213, 145, 170, 238, 173, 255, 237, 252 },
499 { 214, 146, 171, 239, 174, 255, 237, 253 },
500 { 214, 146, 171, 239, 174, 255, 237, 253 },
501 { 215, 147, 172, 240, 175, 255, 238, 253 },
502 { 215, 147, 172, 240, 175, 255, 238, 253 },
503 { 216, 148, 173, 240, 176, 255, 238, 253 },
504 { 217, 148, 173, 240, 176, 255, 238, 253 },
505 { 218, 149, 173, 241, 177, 255, 239, 253 },
506 { 218, 149, 173, 241, 178, 255, 239, 253 },
507 { 219, 150, 174, 241, 179, 255, 239, 253 },
508 { 219, 151, 174, 241, 179, 255, 239, 253 },
509 { 220, 152, 175, 242, 180, 255, 240, 253 },
510 { 221, 152, 175, 242, 180, 255, 240, 253 },
511 { 222, 153, 176, 242, 181, 255, 240, 253 },
512 { 222, 153, 176, 242, 181, 255, 240, 253 },
513 { 223, 154, 177, 243, 182, 255, 240, 253 },
514 { 223, 154, 177, 243, 182, 255, 240, 253 },
515 { 224, 155, 178, 244, 183, 255, 241, 253 },
516 { 224, 155, 178, 244, 183, 255, 241, 253 },
517 { 225, 156, 178, 244, 184, 255, 241, 253 },
518 { 225, 157, 178, 244, 184, 255, 241, 253 },
519 { 226, 158, 179, 244, 185, 255, 242, 253 },
520 { 227, 158, 179, 244, 185, 255, 242, 253 },
521 { 228, 159, 180, 245, 186, 255, 242, 253 },
522 { 228, 159, 180, 245, 186, 255, 242, 253 },
523 { 229, 160, 181, 245, 187, 255, 242, 253 },
524 { 229, 160, 181, 245, 187, 255, 242, 253 },
525 { 230, 161, 182, 246, 188, 255, 243, 253 },
526 { 230, 162, 182, 246, 188, 255, 243, 253 },
527 { 231, 163, 183, 246, 189, 255, 243, 253 },
528 { 231, 163, 183, 246, 189, 255, 243, 253 },
529 { 232, 164, 184, 247, 190, 255, 243, 253 },
530 { 232, 164, 184, 247, 190, 255, 243, 253 },
531 { 233, 165, 185, 247, 191, 255, 244, 253 },
532 { 233, 165, 185, 247, 191, 255, 244, 253 },
533 { 234, 166, 185, 247, 192, 255, 244, 253 },
534 { 234, 167, 185, 247, 192, 255, 244, 253 },
535 { 235, 168, 186, 248, 193, 255, 244, 253 },
536 { 235, 168, 186, 248, 193, 255, 244, 253 },
537 { 236, 169, 187, 248, 194, 255, 244, 253 },
538 { 236, 169, 187, 248, 194, 255, 244, 253 },
539 { 236, 170, 188, 248, 195, 255, 245, 253 },
540 { 236, 170, 188, 248, 195, 255, 245, 253 },
541 { 237, 171, 189, 249, 196, 255, 245, 254 },
542 { 237, 172, 189, 249, 196, 255, 245, 254 },
543 { 238, 173, 190, 249, 197, 255, 245, 254 },
544 { 238, 173, 190, 249, 197, 255, 245, 254 },
545 { 239, 174, 191, 249, 198, 255, 245, 254 },
546 { 239, 174, 191, 249, 198, 255, 245, 254 },
547 { 240, 175, 192, 249, 199, 255, 246, 254 },
548 { 240, 176, 192, 249, 199, 255, 246, 254 },
549 { 240, 177, 193, 250, 200, 255, 246, 254 },
550 { 240, 177, 193, 250, 200, 255, 246, 254 },
551 { 241, 178, 194, 250, 201, 255, 246, 254 },
552 { 241, 178, 194, 250, 201, 255, 246, 254 },
553 { 242, 179, 195, 250, 202, 255, 246, 254 },
554 { 242, 180, 195, 250, 202, 255, 246, 254 },
555 { 242, 181, 196, 250, 203, 255, 247, 254 },
556 { 242, 181, 196, 250, 203, 255, 247, 254 },
557 { 243, 182, 197, 251, 204, 255, 247, 254 },
558 { 243, 183, 197, 251, 204, 255, 247, 254 },
559 { 244, 184, 198, 251, 205, 255, 247, 254 },
560 { 244, 184, 198, 251, 205, 255, 247, 254 },
561 { 244, 185, 199, 251, 206, 255, 247, 254 },
562 { 244, 185, 199, 251, 206, 255, 247, 254 },
563 { 245, 186, 200, 251, 207, 255, 247, 254 },
564 { 245, 187, 200, 251, 207, 255, 247, 254 },
565 { 246, 188, 201, 252, 207, 255, 248, 254 },
566 { 246, 188, 201, 252, 207, 255, 248, 254 },
567 { 246, 189, 202, 252, 208, 255, 248, 254 },
568 { 246, 190, 202, 252, 208, 255, 248, 254 },
569 { 247, 191, 203, 252, 209, 255, 248, 254 },
570 { 247, 191, 203, 252, 209, 255, 248, 254 },
571 { 247, 192, 204, 252, 210, 255, 248, 254 },
572 { 247, 193, 204, 252, 210, 255, 248, 254 },
573 { 248, 194, 205, 252, 211, 255, 248, 254 },
574 { 248, 194, 205, 252, 211, 255, 248, 254 },
575 { 248, 195, 206, 252, 212, 255, 249, 254 },
576 { 248, 196, 206, 252, 212, 255, 249, 254 },
577 { 249, 197, 207, 253, 213, 255, 249, 254 },
578 { 249, 197, 207, 253, 213, 255, 249, 254 },
579 { 249, 198, 208, 253, 214, 255, 249, 254 },
580 { 249, 199, 209, 253, 214, 255, 249, 254 },
581 { 250, 200, 210, 253, 215, 255, 249, 254 },
582 { 250, 200, 210, 253, 215, 255, 249, 254 },
583 { 250, 201, 211, 253, 215, 255, 249, 254 },
584 { 250, 202, 211, 253, 215, 255, 249, 254 },
585 { 250, 203, 212, 253, 216, 255, 249, 254 },
586 { 250, 203, 212, 253, 216, 255, 249, 254 },
587 { 251, 204, 213, 253, 217, 255, 250, 254 },
588 { 251, 205, 213, 253, 217, 255, 250, 254 },
589 { 251, 206, 214, 254, 218, 255, 250, 254 },
590 { 251, 206, 215, 254, 218, 255, 250, 254 },
591 { 252, 207, 216, 254, 219, 255, 250, 254 },
592 { 252, 208, 216, 254, 219, 255, 250, 254 },
593 { 252, 209, 217, 254, 220, 255, 250, 254 },
594 { 252, 210, 217, 254, 220, 255, 250, 254 },
595 { 252, 211, 218, 254, 221, 255, 250, 254 },
596 { 252, 212, 218, 254, 221, 255, 250, 254 },
597 { 253, 213, 219, 254, 222, 255, 250, 254 },
598 { 253, 213, 220, 254, 222, 255, 250, 254 },
599 { 253, 214, 221, 254, 223, 255, 250, 254 },
600 { 253, 215, 221, 254, 223, 255, 250, 254 },
601 { 253, 216, 222, 254, 224, 255, 251, 254 },
602 { 253, 217, 223, 254, 224, 255, 251, 254 },
603 { 253, 218, 224, 254, 225, 255, 251, 254 },
604 { 253, 219, 224, 254, 225, 255, 251, 254 },
605 { 254, 220, 225, 254, 225, 255, 251, 254 },
606 { 254, 221, 226, 254, 225, 255, 251, 254 },
607 { 254, 222, 227, 255, 226, 255, 251, 254 },
608 { 254, 223, 227, 255, 226, 255, 251, 254 },
609 { 254, 224, 228, 255, 227, 255, 251, 254 },
610 { 254, 225, 229, 255, 227, 255, 251, 254 },
611 { 254, 226, 230, 255, 228, 255, 251, 254 },
612 { 254, 227, 230, 255, 229, 255, 251, 254 },
613 { 255, 228, 231, 255, 230, 255, 251, 254 },
614 { 255, 229, 232, 255, 230, 255, 251, 254 },
615 { 255, 230, 233, 255, 231, 255, 252, 254 },
616 { 255, 231, 234, 255, 231, 255, 252, 254 },
617 { 255, 232, 235, 255, 232, 255, 252, 254 },
618 { 255, 233, 236, 255, 232, 255, 252, 254 },
619 { 255, 235, 237, 255, 233, 255, 252, 254 },
620 { 255, 236, 238, 255, 234, 255, 252, 254 },
621 { 255, 238, 240, 255, 235, 255, 252, 255 },
622 { 255, 239, 241, 255, 235, 255, 252, 254 },
623 { 255, 241, 243, 255, 236, 255, 252, 254 },
624 { 255, 243, 245, 255, 237, 255, 252, 254 },
625 { 255, 246, 247, 255, 239, 255, 253, 255 },
626 };
627
628 // Model obtained from a 2-sided zero-centered distribution derived
629 // from a Pareto distribution. The cdf of the distribution is:
630 // cdf(x) = 0.5 + 0.5 * sgn(x) * [1 - {alpha/(alpha + |x|)} ^ beta]
631 //
632 // For a given beta and a given probability of the 1-node, the alpha
633 // is first solved, and then the {alpha, beta} pair is used to generate
634 // the probabilities for the rest of the nodes.
635 //
636 // The full source code of the generating program is available in:
637 // tools/gen_constrained_tokenset.py
638 //
639 // Values for tokens TWO_TOKEN through CATEGORY6_TOKEN included
640 // in the table here : the ONE_TOKEN probability is
641 // removed and the probabilities rescaled.
642 //
643 // ZERO_TOKEN and ONE_TOKEN are coded as one CDF,
644 // and EOB_TOKEN is coded as flags outside this coder.
645 const aom_cdf_prob av1_pareto8_tail_probs[COEFF_PROB_MODELS][TAIL_NODES] = {
646 { 128, 127, 127, 252, 497, 969, 1839, 3318, 25511 },
647 { 256, 254, 251, 496, 966, 1834, 3308, 5408, 19995 },
648 { 383, 378, 373, 732, 1408, 2605, 4470, 6646, 15773 },
649 { 511, 502, 493, 961, 1824, 3289, 5373, 7298, 12517 },
650 { 638, 625, 611, 1182, 2215, 3894, 6064, 7548, 9991 },
651 { 766, 746, 726, 1396, 2582, 4428, 6578, 7529, 8017 },
652 { 893, 866, 839, 1603, 2927, 4896, 6945, 7332, 6467 },
653 { 1020, 984, 950, 1803, 3250, 5305, 7191, 7022, 5243 },
654 { 1147, 1102, 1059, 1996, 3552, 5659, 7338, 6646, 4269 },
655 { 1274, 1218, 1166, 2183, 3835, 5963, 7403, 6234, 3492 },
656 { 1400, 1334, 1270, 2363, 4099, 6223, 7401, 5809, 2869 },
657 { 1527, 1447, 1372, 2537, 4345, 6442, 7346, 5386, 2366 },
658 { 1654, 1560, 1473, 2704, 4574, 6624, 7247, 4973, 1959 },
659 { 1780, 1672, 1571, 2866, 4787, 6771, 7114, 4579, 1628 },
660 { 1906, 1782, 1667, 3022, 4984, 6889, 6954, 4206, 1358 },
661 { 2032, 1891, 1762, 3172, 5167, 6979, 6773, 3856, 1136 },
662 { 2158, 2000, 1854, 3316, 5335, 7044, 6577, 3530, 954 },
663 { 2284, 2106, 1944, 3455, 5490, 7087, 6370, 3229, 803 },
664 { 2410, 2212, 2032, 3588, 5632, 7109, 6155, 2951, 679 },
665 { 2535, 2317, 2119, 3717, 5761, 7113, 5936, 2695, 575 },
666 { 2661, 2420, 2203, 3840, 5880, 7101, 5714, 2461, 488 },
667 { 2786, 2522, 2286, 3958, 5987, 7074, 5493, 2246, 416 },
668 { 2911, 2624, 2367, 4072, 6083, 7033, 5273, 2050, 355 },
669 { 3037, 2724, 2446, 4180, 6170, 6981, 5055, 1871, 304 },
670 { 3162, 2822, 2523, 4284, 6247, 6919, 4842, 1708, 261 },
671 { 3286, 2920, 2599, 4384, 6315, 6848, 4633, 1559, 224 },
672 { 3411, 3017, 2672, 4478, 6374, 6768, 4430, 1424, 194 },
673 { 3536, 3112, 2745, 4569, 6426, 6681, 4232, 1300, 167 },
674 { 3660, 3207, 2815, 4656, 6469, 6588, 4040, 1188, 145 },
675 { 3785, 3300, 2883, 4738, 6505, 6490, 3855, 1086, 126 },
676 { 3909, 3392, 2950, 4817, 6534, 6387, 3677, 993, 109 },
677 { 4033, 3483, 3015, 4891, 6557, 6281, 3505, 908, 95 },
678 { 4157, 3573, 3079, 4962, 6573, 6170, 3340, 831, 83 },
679 { 4281, 3662, 3141, 5029, 6584, 6058, 3181, 760, 72 },
680 { 4405, 3750, 3201, 5093, 6588, 5943, 3029, 696, 63 },
681 { 4529, 3837, 3260, 5152, 6587, 5826, 2883, 638, 56 },
682 { 4652, 3922, 3317, 5209, 6582, 5709, 2744, 584, 49 },
683 { 4775, 4007, 3373, 5262, 6572, 5590, 2610, 536, 43 },
684 { 4899, 4090, 3427, 5312, 6557, 5470, 2483, 492, 38 },
685 { 5022, 4173, 3480, 5359, 6538, 5351, 2361, 451, 33 },
686 { 5145, 4254, 3531, 5403, 6515, 5231, 2246, 414, 29 },
687 { 5268, 4334, 3581, 5443, 6489, 5112, 2135, 380, 26 },
688 { 5391, 4414, 3629, 5481, 6458, 4993, 2029, 350, 23 },
689 { 5514, 4492, 3676, 5515, 6425, 4875, 1929, 321, 21 },
690 { 5637, 4569, 3721, 5548, 6388, 4758, 1833, 296, 18 },
691 { 5759, 4645, 3766, 5577, 6349, 4642, 1742, 272, 16 },
692 { 5881, 4720, 3808, 5604, 6307, 4528, 1656, 250, 14 },
693 { 6004, 4794, 3849, 5628, 6262, 4414, 1573, 231, 13 },
694 { 6126, 4867, 3890, 5649, 6215, 4302, 1495, 213, 11 },
695 { 6248, 4939, 3928, 5669, 6166, 4192, 1420, 196, 10 },
696 { 6370, 5010, 3966, 5686, 6114, 4083, 1349, 181, 9 },
697 { 6492, 5080, 4002, 5700, 6061, 3976, 1282, 167, 8 },
698 { 6614, 5149, 4037, 5712, 6006, 3871, 1218, 154, 7 },
699 { 6735, 5217, 4070, 5723, 5950, 3767, 1157, 142, 7 },
700 { 6857, 5284, 4103, 5731, 5891, 3666, 1099, 131, 6 },
701 { 6978, 5351, 4134, 5737, 5832, 3566, 1044, 121, 5 },
702 { 7099, 5415, 4164, 5741, 5771, 3469, 992, 112, 5 },
703 { 7221, 5479, 4192, 5743, 5709, 3373, 943, 104, 4 },
704 { 7342, 5542, 4220, 5743, 5646, 3279, 896, 96, 4 },
705 { 7462, 5604, 4246, 5742, 5583, 3187, 851, 89, 4 },
706 { 7584, 5665, 4272, 5739, 5518, 3097, 808, 82, 3 },
707 { 7704, 5725, 4296, 5734, 5453, 3009, 768, 76, 3 },
708 { 7825, 5784, 4318, 5727, 5386, 2924, 730, 71, 3 },
709 { 7945, 5843, 4341, 5719, 5320, 2840, 693, 65, 2 },
710 { 8066, 5900, 4361, 5709, 5252, 2758, 659, 61, 2 },
711 { 8186, 5956, 4381, 5698, 5185, 2678, 626, 56, 2 },
712 { 8306, 6011, 4400, 5685, 5117, 2600, 595, 52, 2 },
713 { 8426, 6066, 4418, 5671, 5049, 2523, 565, 48, 2 },
714 { 8547, 6119, 4434, 5655, 4981, 2449, 537, 45, 1 },
715 { 8666, 6171, 4450, 5638, 4912, 2377, 511, 42, 1 },
716 { 8786, 6223, 4465, 5620, 4843, 2306, 485, 39, 1 },
717 { 8906, 6274, 4478, 5600, 4775, 2237, 461, 36, 1 },
718 { 9025, 6323, 4491, 5580, 4706, 2170, 438, 34, 1 },
719 { 9144, 6372, 4503, 5558, 4637, 2105, 417, 31, 1 },
720 { 9264, 6420, 4514, 5535, 4568, 2041, 396, 29, 1 },
721 { 9383, 6467, 4524, 5511, 4500, 1979, 376, 27, 1 },
722 { 9502, 6513, 4532, 5486, 4432, 1919, 358, 25, 1 },
723 { 9621, 6558, 4541, 5460, 4364, 1860, 340, 23, 1 },
724 { 9740, 6602, 4548, 5433, 4296, 1803, 323, 22, 1 },
725 { 9859, 6645, 4554, 5405, 4229, 1748, 307, 20, 1 },
726 { 9978, 6688, 4559, 5376, 4161, 1694, 292, 19, 1 },
727 { 10096, 6729, 4564, 5347, 4094, 1641, 278, 18, 1 },
728 { 10215, 6770, 4568, 5316, 4028, 1590, 264, 16, 1 },
729 { 10333, 6809, 4571, 5285, 3962, 1541, 251, 15, 1 },
730 { 10452, 6848, 4573, 5253, 3896, 1492, 239, 14, 1 },
731 { 10570, 6886, 4574, 5220, 3831, 1446, 227, 13, 1 },
732 { 10688, 6923, 4575, 5186, 3767, 1400, 216, 12, 1 },
733 { 10806, 6959, 4575, 5152, 3702, 1356, 205, 12, 1 },
734 { 10924, 6994, 4574, 5117, 3639, 1313, 195, 11, 1 },
735 { 11041, 7029, 4572, 5082, 3576, 1271, 186, 10, 1 },
736 { 11159, 7062, 4570, 5046, 3513, 1231, 177, 9, 1 },
737 { 11277, 7095, 4566, 5009, 3451, 1192, 168, 9, 1 },
738 { 11394, 7127, 4563, 4972, 3390, 1153, 160, 8, 1 },
739 { 11512, 7158, 4558, 4934, 3329, 1116, 152, 8, 1 },
740 { 11629, 7188, 4553, 4896, 3269, 1080, 145, 7, 1 },
741 { 11746, 7217, 4547, 4857, 3210, 1045, 138, 7, 1 },
742 { 11864, 7245, 4540, 4818, 3151, 1012, 131, 6, 1 },
743 { 11980, 7273, 4533, 4779, 3093, 979, 124, 6, 1 },
744 { 12097, 7300, 4525, 4739, 3035, 947, 118, 6, 1 },
745 { 12215, 7326, 4516, 4698, 2978, 916, 113, 5, 1 },
746 { 12331, 7351, 4507, 4658, 2922, 886, 107, 5, 1 },
747 { 12448, 7375, 4497, 4617, 2866, 857, 102, 5, 1 },
748 { 12564, 7398, 4487, 4576, 2812, 829, 97, 4, 1 },
749 { 12681, 7421, 4476, 4534, 2757, 802, 92, 4, 1 },
750 { 12797, 7443, 4464, 4492, 2704, 775, 88, 4, 1 },
751 { 12914, 7464, 4452, 4450, 2651, 749, 84, 3, 1 },
752 { 13030, 7484, 4439, 4408, 2599, 725, 79, 3, 1 },
753 { 13147, 7503, 4426, 4365, 2547, 700, 76, 3, 1 },
754 { 13262, 7522, 4412, 4322, 2497, 677, 72, 3, 1 },
755 { 13378, 7539, 4398, 4280, 2447, 654, 68, 3, 1 },
756 { 13494, 7556, 4383, 4237, 2397, 632, 65, 3, 1 },
757 { 13610, 7573, 4368, 4193, 2348, 611, 62, 2, 1 },
758 { 13726, 7588, 4352, 4150, 2300, 590, 59, 2, 1 },
759 { 13841, 7602, 4335, 4107, 2253, 571, 56, 2, 1 },
760 { 13957, 7616, 4318, 4063, 2207, 551, 53, 2, 1 },
761 { 14072, 7629, 4301, 4019, 2161, 532, 51, 2, 1 },
762 { 14188, 7641, 4283, 3976, 2115, 514, 48, 2, 1 },
763 { 14302, 7652, 4265, 3932, 2071, 497, 46, 2, 1 },
764 { 14418, 7663, 4246, 3888, 2027, 480, 44, 1, 1 },
765 { 14533, 7673, 4227, 3844, 1984, 463, 42, 1, 1 },
766 { 14649, 7682, 4207, 3800, 1941, 447, 40, 1, 1 },
767 { 14763, 7690, 4187, 3757, 1899, 432, 38, 1, 1 },
768 { 14878, 7698, 4166, 3713, 1858, 417, 36, 1, 1 },
769 { 14993, 7705, 4146, 3669, 1817, 402, 34, 1, 1 },
770 { 15109, 7711, 4124, 3625, 1777, 388, 32, 1, 1 },
771 { 15223, 7715, 4103, 3581, 1738, 375, 31, 1, 1 },
772 { 15337, 7720, 4081, 3538, 1699, 362, 29, 1, 1 },
773 { 15452, 7724, 4058, 3494, 1661, 349, 28, 1, 1 },
774 { 15567, 7727, 4035, 3450, 1624, 337, 26, 1, 1 },
775 { 15681, 7729, 4012, 3407, 1587, 325, 25, 1, 1 },
776 { 15795, 7730, 3989, 3364, 1551, 313, 24, 1, 1 },
777 { 15909, 7731, 3965, 3320, 1516, 302, 23, 1, 1 },
778 { 16024, 7731, 3940, 3277, 1481, 291, 22, 1, 1 },
779 { 16138, 7730, 3916, 3234, 1446, 281, 21, 1, 1 },
780 { 16252, 7728, 3891, 3191, 1413, 271, 20, 1, 1 },
781 { 16366, 7726, 3866, 3148, 1380, 261, 19, 1, 1 },
782 { 16480, 7723, 3840, 3106, 1347, 252, 18, 1, 1 },
783 { 16594, 7720, 3814, 3063, 1315, 243, 17, 1, 1 },
784 { 16708, 7715, 3788, 3021, 1284, 234, 16, 1, 1 },
785 { 16822, 7710, 3762, 2979, 1253, 225, 15, 1, 1 },
786 { 16936, 7704, 3735, 2937, 1223, 217, 14, 1, 1 },
787 { 17050, 7697, 3708, 2895, 1193, 209, 14, 1, 1 },
788 { 17162, 7690, 3681, 2854, 1164, 202, 13, 1, 1 },
789 { 17276, 7682, 3654, 2812, 1136, 194, 12, 1, 1 },
790 { 17389, 7673, 3626, 2771, 1108, 187, 12, 1, 1 },
791 { 17504, 7663, 3598, 2730, 1080, 180, 11, 1, 1 },
792 { 17617, 7653, 3570, 2689, 1053, 173, 11, 1, 1 },
793 { 17730, 7642, 3541, 2649, 1027, 167, 10, 1, 1 },
794 { 17843, 7630, 3513, 2608, 1001, 161, 10, 1, 1 },
795 { 17957, 7618, 3484, 2569, 975, 154, 9, 1, 1 },
796 { 18069, 7605, 3455, 2529, 950, 149, 9, 1, 1 },
797 { 18183, 7591, 3426, 2489, 926, 143, 8, 1, 1 },
798 { 18296, 7576, 3396, 2450, 902, 138, 8, 1, 1 },
799 { 18410, 7562, 3366, 2411, 878, 132, 7, 1, 1 },
800 { 18523, 7545, 3337, 2372, 855, 127, 7, 1, 1 },
801 { 18636, 7529, 3306, 2333, 833, 122, 7, 1, 1 },
802 { 18749, 7511, 3276, 2295, 811, 118, 6, 1, 1 },
803 { 18862, 7493, 3246, 2257, 789, 113, 6, 1, 1 },
804 { 18975, 7474, 3215, 2219, 768, 109, 6, 1, 1 },
805 { 19088, 7455, 3185, 2182, 747, 104, 5, 1, 1 },
806 { 19201, 7435, 3154, 2144, 727, 100, 5, 1, 1 },
807 { 19314, 7414, 3123, 2107, 707, 96, 5, 1, 1 },
808 { 19427, 7392, 3092, 2071, 687, 92, 5, 1, 1 },
809 { 19541, 7370, 3060, 2034, 668, 89, 4, 1, 1 },
810 { 19654, 7347, 3029, 1998, 649, 85, 4, 1, 1 },
811 { 19766, 7323, 2997, 1963, 631, 82, 4, 1, 1 },
812 { 19878, 7299, 2966, 1927, 613, 79, 4, 1, 1 },
813 { 19991, 7274, 2934, 1892, 596, 75, 4, 1, 1 },
814 { 20105, 7248, 2902, 1857, 579, 72, 3, 1, 1 },
815 { 20218, 7222, 2870, 1822, 562, 69, 3, 1, 1 },
816 { 20331, 7195, 2838, 1788, 545, 66, 3, 1, 1 },
817 { 20443, 7167, 2806, 1754, 529, 64, 3, 1, 1 },
818 { 20556, 7138, 2774, 1720, 514, 61, 3, 1, 1 },
819 { 20670, 7109, 2741, 1687, 498, 58, 3, 1, 1 },
820 { 20783, 7079, 2709, 1654, 483, 56, 2, 1, 1 },
821 { 20895, 7049, 2676, 1621, 469, 54, 2, 1, 1 },
822 { 21008, 7017, 2644, 1589, 455, 51, 2, 1, 1 },
823 { 21121, 6985, 2611, 1557, 441, 49, 2, 1, 1 },
824 { 21234, 6953, 2578, 1525, 427, 47, 2, 1, 1 },
825 { 21347, 6919, 2545, 1494, 414, 45, 2, 1, 1 },
826 { 21460, 6885, 2513, 1462, 401, 43, 2, 1, 1 },
827 { 21573, 6850, 2480, 1432, 388, 41, 2, 1, 1 },
828 { 21687, 6815, 2447, 1401, 375, 39, 2, 1, 1 },
829 { 21801, 6778, 2414, 1371, 363, 38, 1, 1, 1 },
830 { 21914, 6741, 2381, 1341, 352, 36, 1, 1, 1 },
831 { 22028, 6704, 2348, 1311, 340, 34, 1, 1, 1 },
832 { 22141, 6665, 2315, 1282, 329, 33, 1, 1, 1 },
833 { 22255, 6626, 2282, 1253, 318, 31, 1, 1, 1 },
834 { 22368, 6586, 2249, 1225, 307, 30, 1, 1, 1 },
835 { 22482, 6546, 2216, 1196, 297, 28, 1, 1, 1 },
836 { 22595, 6505, 2183, 1169, 286, 27, 1, 1, 1 },
837 { 22709, 6463, 2149, 1141, 277, 26, 1, 1, 1 },
838 { 22823, 6420, 2116, 1114, 267, 25, 1, 1, 1 },
839 { 22938, 6377, 2083, 1087, 257, 23, 1, 1, 1 },
840 { 23053, 6332, 2050, 1060, 248, 22, 1, 1, 1 },
841 { 23167, 6287, 2017, 1034, 239, 21, 1, 1, 1 },
842 { 23280, 6242, 1984, 1008, 231, 20, 1, 1, 1 },
843 { 23396, 6195, 1951, 982, 222, 19, 1, 1, 1 },
844 { 23510, 6148, 1918, 957, 214, 18, 1, 1, 1 },
845 { 23625, 6100, 1885, 932, 206, 17, 1, 1, 1 },
846 { 23741, 6051, 1852, 907, 198, 16, 1, 1, 1 },
847 { 23855, 6002, 1819, 883, 190, 16, 1, 1, 1 },
848 { 23971, 5951, 1786, 859, 183, 15, 1, 1, 1 },
849 { 24087, 5900, 1753, 835, 176, 14, 1, 1, 1 },
850 { 24203, 5848, 1720, 812, 169, 13, 1, 1, 1 },
851 { 24318, 5796, 1687, 789, 162, 13, 1, 1, 1 },
852 { 24435, 5742, 1655, 766, 155, 12, 1, 1, 1 },
853 { 24552, 5688, 1622, 743, 149, 11, 1, 1, 1 },
854 { 24669, 5632, 1589, 721, 143, 11, 1, 1, 1 },
855 { 24786, 5576, 1557, 699, 137, 10, 1, 1, 1 },
856 { 24903, 5519, 1524, 678, 131, 10, 1, 1, 1 },
857 { 25021, 5462, 1491, 657, 125, 9, 1, 1, 1 },
858 { 25139, 5403, 1459, 636, 120, 8, 1, 1, 1 },
859 { 25258, 5343, 1427, 615, 114, 8, 1, 1, 1 },
860 { 25376, 5283, 1394, 595, 109, 8, 1, 1, 1 },
861 { 25496, 5221, 1362, 575, 104, 7, 1, 1, 1 },
862 { 25614, 5159, 1330, 556, 99, 7, 1, 1, 1 },
863 { 25735, 5096, 1298, 536, 94, 6, 1, 1, 1 },
864 { 25856, 5031, 1265, 517, 90, 6, 1, 1, 1 },
865 { 25977, 4966, 1233, 499, 85, 5, 1, 1, 1 },
866 { 26098, 4899, 1202, 480, 81, 5, 1, 1, 1 },
867 { 26220, 4831, 1170, 462, 77, 5, 1, 1, 1 },
868 { 26343, 4763, 1138, 444, 73, 4, 1, 1, 1 },
869 { 26466, 4693, 1106, 427, 69, 4, 1, 1, 1 },
870 { 26589, 4622, 1075, 410, 65, 4, 1, 1, 1 },
871 { 26713, 4550, 1043, 393, 62, 4, 1, 1, 1 },
872 { 26840, 4476, 1012, 376, 58, 3, 1, 1, 1 },
873 { 26966, 4401, 980, 360, 55, 3, 1, 1, 1 },
874 { 27092, 4325, 949, 344, 52, 3, 1, 1, 1 },
875 { 27220, 4248, 918, 328, 48, 3, 1, 1, 1 },
876 { 27350, 4169, 886, 313, 45, 2, 1, 1, 1 },
877 { 27480, 4088, 855, 298, 42, 2, 1, 1, 1 },
878 { 27610, 4006, 824, 283, 40, 2, 1, 1, 1 },
879 { 27743, 3922, 793, 268, 37, 2, 1, 1, 1 },
880 { 27876, 3837, 762, 254, 34, 2, 1, 1, 1 },
881 { 28011, 3749, 731, 240, 32, 2, 1, 1, 1 },
882 { 28147, 3659, 701, 227, 30, 1, 1, 1, 1 },
883 { 28286, 3568, 670, 213, 27, 1, 1, 1, 1 },
884 { 28426, 3474, 639, 200, 25, 1, 1, 1, 1 },
885 { 28569, 3377, 608, 187, 23, 1, 1, 1, 1 },
886 { 28714, 3278, 577, 174, 21, 1, 1, 1, 1 },
887 { 28860, 3176, 547, 162, 19, 1, 1, 1, 1 },
888 { 29010, 3071, 516, 150, 17, 1, 1, 1, 1 },
889 { 29163, 2962, 485, 138, 16, 1, 1, 1, 1 },
890 { 29320, 2849, 454, 127, 14, 1, 1, 1, 1 },
891 { 29483, 2731, 423, 115, 12, 1, 1, 1, 1 },
892 { 29650, 2608, 391, 104, 11, 1, 1, 1, 1 },
893 { 29823, 2479, 360, 93, 9, 1, 1, 1, 1 },
894 { 30002, 2343, 328, 83, 8, 1, 1, 1, 1 },
895 { 30192, 2198, 295, 72, 7, 1, 1, 1, 1 },
896 { 30393, 2041, 262, 62, 6, 1, 1, 1, 1 },
897 { 30612, 1869, 227, 52, 4, 1, 1, 1, 1 },
898 { 30853, 1676, 191, 41, 3, 1, 1, 1, 1 },
899 { 31131, 1448, 152, 31, 2, 1, 1, 1, 1 },
900 { 31486, 1150, 107, 20, 1, 1, 1, 1, 1 },
901 };
902
903 #if !CONFIG_Q_ADAPT_PROBS
904 static const coeff_cdf_model default_coef_head_cdf_4x4[PLANE_TYPES] = {
905 { // Y plane
906 { // Intra
907 { // Band 0
908 { AOM_ICDF(25024), AOM_ICDF(25863), AOM_ICDF(27361), AOM_ICDF(29796),
909 AOM_ICDF(30374), AOM_ICDF(32768) },
910 { AOM_ICDF(10816), AOM_ICDF(14127), AOM_ICDF(17116), AOM_ICDF(23516),
911 AOM_ICDF(24999), AOM_ICDF(32768) },
912 { AOM_ICDF(1088), AOM_ICDF(6358), AOM_ICDF(8428), AOM_ICDF(16648),
913 AOM_ICDF(18276), AOM_ICDF(32768) } },
914 { // Band 1
915 { AOM_ICDF(14529), AOM_ICDF(18769), AOM_ICDF(29100), AOM_ICDF(29634),
916 AOM_ICDF(32768) },
917 { AOM_ICDF(12993), AOM_ICDF(17117), AOM_ICDF(28404), AOM_ICDF(28988),
918 AOM_ICDF(32768) },
919 { AOM_ICDF(11201), AOM_ICDF(14084), AOM_ICDF(25818), AOM_ICDF(26504),
920 AOM_ICDF(32768) },
921 { AOM_ICDF(9793), AOM_ICDF(11267), AOM_ICDF(21775), AOM_ICDF(22451),
922 AOM_ICDF(32768) },
923 { AOM_ICDF(7105), AOM_ICDF(7562), AOM_ICDF(15777), AOM_ICDF(16225),
924 AOM_ICDF(32768) },
925 { AOM_ICDF(3905), AOM_ICDF(3966), AOM_ICDF(8359), AOM_ICDF(8526),
926 AOM_ICDF(32768) } },
927 { // Band 2
928 { AOM_ICDF(20033), AOM_ICDF(23643), AOM_ICDF(31102), AOM_ICDF(31374),
929 AOM_ICDF(32768) },
930 { AOM_ICDF(16321), AOM_ICDF(20350), AOM_ICDF(30167), AOM_ICDF(30546),
931 AOM_ICDF(32768) },
932 { AOM_ICDF(12993), AOM_ICDF(15512), AOM_ICDF(26859), AOM_ICDF(27396),
933 AOM_ICDF(32768) },
934 { AOM_ICDF(10305), AOM_ICDF(11659), AOM_ICDF(21669), AOM_ICDF(22330),
935 AOM_ICDF(32768) },
936 { AOM_ICDF(7361), AOM_ICDF(7819), AOM_ICDF(15450), AOM_ICDF(15940),
937 AOM_ICDF(32768) },
938 { AOM_ICDF(3521), AOM_ICDF(3580), AOM_ICDF(7805), AOM_ICDF(7976),
939 AOM_ICDF(32768) } },
940 { // Band 3
941 { AOM_ICDF(21057), AOM_ICDF(25460), AOM_ICDF(31740), AOM_ICDF(31952),
942 AOM_ICDF(32768) },
943 { AOM_ICDF(16449), AOM_ICDF(21173), AOM_ICDF(30761), AOM_ICDF(31092),
944 AOM_ICDF(32768) },
945 { AOM_ICDF(11841), AOM_ICDF(14615), AOM_ICDF(26188), AOM_ICDF(26824),
946 AOM_ICDF(32768) },
947 { AOM_ICDF(7745), AOM_ICDF(8991), AOM_ICDF(18937), AOM_ICDF(19707),
948 AOM_ICDF(32768) },
949 { AOM_ICDF(4417), AOM_ICDF(4706), AOM_ICDF(10342), AOM_ICDF(10890),
950 AOM_ICDF(32768) },
951 { AOM_ICDF(7617), AOM_ICDF(8392), AOM_ICDF(17295), AOM_ICDF(17915),
952 AOM_ICDF(32768) } },
953 { // Band 4
954 { AOM_ICDF(20417), AOM_ICDF(26452), AOM_ICDF(32166), AOM_ICDF(32321),
955 AOM_ICDF(32768) },
956 { AOM_ICDF(15809), AOM_ICDF(21634), AOM_ICDF(30947), AOM_ICDF(31298),
957 AOM_ICDF(32768) },
958 { AOM_ICDF(10049), AOM_ICDF(12176), AOM_ICDF(23495), AOM_ICDF(24229),
959 AOM_ICDF(32768) },
960 { AOM_ICDF(5953), AOM_ICDF(6731), AOM_ICDF(16166), AOM_ICDF(16798),
961 AOM_ICDF(32768) },
962 { AOM_ICDF(6081), AOM_ICDF(6188), AOM_ICDF(8114), AOM_ICDF(8764),
963 AOM_ICDF(32768) },
964 { AOM_ICDF(2113), AOM_ICDF(2291), AOM_ICDF(4448), AOM_ICDF(5527),
965 AOM_ICDF(32768) } },
966 { // Band 5
967 { AOM_ICDF(9153), AOM_ICDF(25905), AOM_ICDF(31431), AOM_ICDF(31934),
968 AOM_ICDF(32768) },
969 { AOM_ICDF(9025), AOM_ICDF(23345), AOM_ICDF(30033), AOM_ICDF(30965),
970 AOM_ICDF(32768) },
971 { AOM_ICDF(5953), AOM_ICDF(13835), AOM_ICDF(22032), AOM_ICDF(24664),
972 AOM_ICDF(32768) },
973 { AOM_ICDF(6337), AOM_ICDF(11435), AOM_ICDF(18366), AOM_ICDF(21418),
974 AOM_ICDF(32768) },
975 { AOM_ICDF(3137), AOM_ICDF(4871), AOM_ICDF(8519), AOM_ICDF(12426),
976 AOM_ICDF(32768) },
977 { AOM_ICDF(1857), AOM_ICDF(2727), AOM_ICDF(5540), AOM_ICDF(8757),
978 AOM_ICDF(32768) } } },
979 { // Intra
980 { // Band 0
981 { AOM_ICDF(24512), AOM_ICDF(26673), AOM_ICDF(28962), AOM_ICDF(31929),
982 AOM_ICDF(32126), AOM_ICDF(32768) },
983 { AOM_ICDF(15936), AOM_ICDF(21711), AOM_ICDF(25569), AOM_ICDF(30899),
984 AOM_ICDF(31305), AOM_ICDF(32768) },
985 { AOM_ICDF(3264), AOM_ICDF(14756), AOM_ICDF(20107), AOM_ICDF(29407),
986 AOM_ICDF(30032), AOM_ICDF(32768) } },
987 { // Band 1
988 { AOM_ICDF(21313), AOM_ICDF(26020), AOM_ICDF(32523), AOM_ICDF(32575),
989 AOM_ICDF(32768) },
990 { AOM_ICDF(18369), AOM_ICDF(24215), AOM_ICDF(32291), AOM_ICDF(32391),
991 AOM_ICDF(32768) },
992 { AOM_ICDF(15297), AOM_ICDF(19637), AOM_ICDF(30414), AOM_ICDF(30752),
993 AOM_ICDF(32768) },
994 { AOM_ICDF(11713), AOM_ICDF(14040), AOM_ICDF(25408), AOM_ICDF(26033),
995 AOM_ICDF(32768) },
996 { AOM_ICDF(9537), AOM_ICDF(10173), AOM_ICDF(18839), AOM_ICDF(19315),
997 AOM_ICDF(32768) },
998 { AOM_ICDF(9025), AOM_ICDF(9093), AOM_ICDF(13987), AOM_ICDF(14115),
999 AOM_ICDF(32768) } },
1000 { // Band 2
1001 { AOM_ICDF(22721), AOM_ICDF(27599), AOM_ICDF(32592), AOM_ICDF(32636),
1002 AOM_ICDF(32768) },
1003 { AOM_ICDF(19009), AOM_ICDF(24676), AOM_ICDF(32258), AOM_ICDF(32367),
1004 AOM_ICDF(32768) },
1005 { AOM_ICDF(12737), AOM_ICDF(16769), AOM_ICDF(28739), AOM_ICDF(29247),
1006 AOM_ICDF(32768) },
1007 { AOM_ICDF(8769), AOM_ICDF(10956), AOM_ICDF(21941), AOM_ICDF(22840),
1008 AOM_ICDF(32768) },
1009 { AOM_ICDF(6721), AOM_ICDF(7678), AOM_ICDF(15319), AOM_ICDF(16290),
1010 AOM_ICDF(32768) },
1011 { AOM_ICDF(4417), AOM_ICDF(4430), AOM_ICDF(4583), AOM_ICDF(5712),
1012 AOM_ICDF(32768) } },
1013 { // Band 3
1014 { AOM_ICDF(22849), AOM_ICDF(28333), AOM_ICDF(32633), AOM_ICDF(32671),
1015 AOM_ICDF(32768) },
1016 { AOM_ICDF(18497), AOM_ICDF(24619), AOM_ICDF(32184), AOM_ICDF(32315),
1017 AOM_ICDF(32768) },
1018 { AOM_ICDF(11841), AOM_ICDF(14640), AOM_ICDF(27251), AOM_ICDF(27752),
1019 AOM_ICDF(32768) },
1020 { AOM_ICDF(8385), AOM_ICDF(10154), AOM_ICDF(18339), AOM_ICDF(19621),
1021 AOM_ICDF(32768) },
1022 { AOM_ICDF(5697), AOM_ICDF(6977), AOM_ICDF(13787), AOM_ICDF(15289),
1023 AOM_ICDF(32768) },
1024 { AOM_ICDF(193), AOM_ICDF(194), AOM_ICDF(384), AOM_ICDF(479),
1025 AOM_ICDF(32768) } },
1026 { // Band 4
1027 { AOM_ICDF(20417), AOM_ICDF(28167), AOM_ICDF(32552), AOM_ICDF(32621),
1028 AOM_ICDF(32768) },
1029 { AOM_ICDF(16833), AOM_ICDF(23968), AOM_ICDF(31991), AOM_ICDF(32174),
1030 AOM_ICDF(32768) },
1031 { AOM_ICDF(10433), AOM_ICDF(13387), AOM_ICDF(26356), AOM_ICDF(26951),
1032 AOM_ICDF(32768) },
1033 { AOM_ICDF(5057), AOM_ICDF(6823), AOM_ICDF(18967), AOM_ICDF(19843),
1034 AOM_ICDF(32768) },
1035 { AOM_ICDF(5697), AOM_ICDF(6479), AOM_ICDF(11672), AOM_ICDF(13052),
1036 AOM_ICDF(32768) },
1037 { AOM_ICDF(2241), AOM_ICDF(2265), AOM_ICDF(6355), AOM_ICDF(6432),
1038 AOM_ICDF(32768) } },
1039 { // Band 5
1040 { AOM_ICDF(12097), AOM_ICDF(28717), AOM_ICDF(32406), AOM_ICDF(32555),
1041 AOM_ICDF(32768) },
1042 { AOM_ICDF(10433), AOM_ICDF(26113), AOM_ICDF(31504), AOM_ICDF(31975),
1043 AOM_ICDF(32768) },
1044 { AOM_ICDF(5825), AOM_ICDF(14284), AOM_ICDF(21349), AOM_ICDF(24461),
1045 AOM_ICDF(32768) },
1046 { AOM_ICDF(4545), AOM_ICDF(8454), AOM_ICDF(12648), AOM_ICDF(17501),
1047 AOM_ICDF(32768) },
1048 { AOM_ICDF(193), AOM_ICDF(7173), AOM_ICDF(15272), AOM_ICDF(19322),
1049 AOM_ICDF(32768) },
1050 { AOM_ICDF(2113), AOM_ICDF(2183), AOM_ICDF(7202), AOM_ICDF(7377),
1051 AOM_ICDF(32768) } } } },
1052 { // UV plane
1053 { // Inter
1054 { // Band 0
1055 { AOM_ICDF(27456), AOM_ICDF(28244), AOM_ICDF(31289), AOM_ICDF(32358),
1056 AOM_ICDF(32534), AOM_ICDF(32768) },
1057 { AOM_ICDF(16960), AOM_ICDF(21207), AOM_ICDF(26511), AOM_ICDF(30539),
1058 AOM_ICDF(31190), AOM_ICDF(32768) },
1059 { AOM_ICDF(5440), AOM_ICDF(13412), AOM_ICDF(18469), AOM_ICDF(26423),
1060 AOM_ICDF(27669), AOM_ICDF(32768) } },
1061 { // Band 1
1062 { AOM_ICDF(17857), AOM_ICDF(26327), AOM_ICDF(31983), AOM_ICDF(32219),
1063 AOM_ICDF(32768) },
1064 { AOM_ICDF(16065), AOM_ICDF(24198), AOM_ICDF(31431), AOM_ICDF(31785),
1065 AOM_ICDF(32768) },
1066 { AOM_ICDF(12865), AOM_ICDF(18011), AOM_ICDF(28454), AOM_ICDF(29166),
1067 AOM_ICDF(32768) },
1068 { AOM_ICDF(9665), AOM_ICDF(12501), AOM_ICDF(24331), AOM_ICDF(25147),
1069 AOM_ICDF(32768) },
1070 { AOM_ICDF(2753), AOM_ICDF(3121), AOM_ICDF(12661), AOM_ICDF(13034),
1071 AOM_ICDF(32768) },
1072 { AOM_ICDF(4033), AOM_ICDF(4140), AOM_ICDF(11834), AOM_ICDF(11977),
1073 AOM_ICDF(32768) } },
1074 { // Band 2
1075 { AOM_ICDF(21185), AOM_ICDF(28338), AOM_ICDF(32249), AOM_ICDF(32417),
1076 AOM_ICDF(32768) },
1077 { AOM_ICDF(18497), AOM_ICDF(25227), AOM_ICDF(31905), AOM_ICDF(32122),
1078 AOM_ICDF(32768) },
1079 { AOM_ICDF(12097), AOM_ICDF(16516), AOM_ICDF(28610), AOM_ICDF(29166),
1080 AOM_ICDF(32768) },
1081 { AOM_ICDF(9281), AOM_ICDF(11157), AOM_ICDF(21438), AOM_ICDF(22312),
1082 AOM_ICDF(32768) },
1083 { AOM_ICDF(5697), AOM_ICDF(6566), AOM_ICDF(15585), AOM_ICDF(16340),
1084 AOM_ICDF(32768) },
1085 { AOM_ICDF(9409), AOM_ICDF(9659), AOM_ICDF(11827), AOM_ICDF(12911),
1086 AOM_ICDF(32768) } },
1087 { // Band 3
1088 { AOM_ICDF(22337), AOM_ICDF(29459), AOM_ICDF(32382), AOM_ICDF(32519),
1089 AOM_ICDF(32768) },
1090 { AOM_ICDF(16961), AOM_ICDF(25262), AOM_ICDF(31874), AOM_ICDF(32123),
1091 AOM_ICDF(32768) },
1092 { AOM_ICDF(12353), AOM_ICDF(17748), AOM_ICDF(29300), AOM_ICDF(29852),
1093 AOM_ICDF(32768) },
1094 { AOM_ICDF(9025), AOM_ICDF(11528), AOM_ICDF(24468), AOM_ICDF(25141),
1095 AOM_ICDF(32768) },
1096 { AOM_ICDF(6209), AOM_ICDF(6565), AOM_ICDF(15806), AOM_ICDF(16121),
1097 AOM_ICDF(32768) },
1098 { AOM_ICDF(2497), AOM_ICDF(2524), AOM_ICDF(7050), AOM_ICDF(7125),
1099 AOM_ICDF(32768) } },
1100 { // Band 4
1101 { AOM_ICDF(20417), AOM_ICDF(29779), AOM_ICDF(32552), AOM_ICDF(32636),
1102 AOM_ICDF(32768) },
1103 { AOM_ICDF(15553), AOM_ICDF(26420), AOM_ICDF(32063), AOM_ICDF(32295),
1104 AOM_ICDF(32768) },
1105 { AOM_ICDF(9665), AOM_ICDF(17946), AOM_ICDF(29385), AOM_ICDF(30096),
1106 AOM_ICDF(32768) },
1107 { AOM_ICDF(5569), AOM_ICDF(10207), AOM_ICDF(22410), AOM_ICDF(23836),
1108 AOM_ICDF(32768) },
1109 { AOM_ICDF(16449), AOM_ICDF(16450), AOM_ICDF(16545), AOM_ICDF(16593),
1110 AOM_ICDF(32768) },
1111 { AOM_ICDF(2369), AOM_ICDF(2395), AOM_ICDF(6822), AOM_ICDF(6898),
1112 AOM_ICDF(32768) } },
1113 { // Band 5
1114 { AOM_ICDF(10177), AOM_ICDF(30567), AOM_ICDF(32725), AOM_ICDF(32745),
1115 AOM_ICDF(32768) },
1116 { AOM_ICDF(9537), AOM_ICDF(28243), AOM_ICDF(32179), AOM_ICDF(32423),
1117 AOM_ICDF(32768) },
1118 { AOM_ICDF(13377), AOM_ICDF(23187), AOM_ICDF(29322), AOM_ICDF(30382),
1119 AOM_ICDF(32768) },
1120 { AOM_ICDF(13121), AOM_ICDF(21346), AOM_ICDF(29507), AOM_ICDF(30326),
1121 AOM_ICDF(32768) },
1122 { AOM_ICDF(4417), AOM_ICDF(4939), AOM_ICDF(15104), AOM_ICDF(15535),
1123 AOM_ICDF(32768) },
1124 { AOM_ICDF(2625), AOM_ICDF(2680), AOM_ICDF(8218), AOM_ICDF(8338),
1125 AOM_ICDF(32768) } } },
1126 { // Inter
1127 { // Band 0
1128 { AOM_ICDF(29376), AOM_ICDF(30098), AOM_ICDF(32421), AOM_ICDF(32766),
1129 AOM_ICDF(32767), AOM_ICDF(32768) },
1130 { AOM_ICDF(18368), AOM_ICDF(22916), AOM_ICDF(30116), AOM_ICDF(32541),
1131 AOM_ICDF(32650), AOM_ICDF(32768) },
1132 { AOM_ICDF(5952), AOM_ICDF(16505), AOM_ICDF(25955), AOM_ICDF(32163),
1133 AOM_ICDF(32365), AOM_ICDF(32768) } },
1134 { // Band 1
1135 { AOM_ICDF(19649), AOM_ICDF(30160), AOM_ICDF(32743), AOM_ICDF(32753),
1136 AOM_ICDF(32768) },
1137 { AOM_ICDF(18881), AOM_ICDF(28724), AOM_ICDF(32688), AOM_ICDF(32717),
1138 AOM_ICDF(32768) },
1139 { AOM_ICDF(16833), AOM_ICDF(23053), AOM_ICDF(31244), AOM_ICDF(31573),
1140 AOM_ICDF(32768) },
1141 { AOM_ICDF(14657), AOM_ICDF(17714), AOM_ICDF(26083), AOM_ICDF(26978),
1142 AOM_ICDF(32768) },
1143 { AOM_ICDF(14657), AOM_ICDF(16618), AOM_ICDF(24597), AOM_ICDF(25403),
1144 AOM_ICDF(32768) },
1145 { AOM_ICDF(4289), AOM_ICDF(4326), AOM_ICDF(10686), AOM_ICDF(10751),
1146 AOM_ICDF(32768) } },
1147 { // Band 2
1148 { AOM_ICDF(21953), AOM_ICDF(30956), AOM_ICDF(32748), AOM_ICDF(32757),
1149 AOM_ICDF(32768) },
1150 { AOM_ICDF(20929), AOM_ICDF(29412), AOM_ICDF(32700), AOM_ICDF(32725),
1151 AOM_ICDF(32768) },
1152 { AOM_ICDF(13377), AOM_ICDF(21495), AOM_ICDF(31216), AOM_ICDF(31569),
1153 AOM_ICDF(32768) },
1154 { AOM_ICDF(9153), AOM_ICDF(15097), AOM_ICDF(28295), AOM_ICDF(28990),
1155 AOM_ICDF(32768) },
1156 { AOM_ICDF(5313), AOM_ICDF(5363), AOM_ICDF(13839), AOM_ICDF(13894),
1157 AOM_ICDF(32768) },
1158 { AOM_ICDF(2625), AOM_ICDF(2652), AOM_ICDF(7276), AOM_ICDF(7351),
1159 AOM_ICDF(32768) } },
1160 { // Band 3
1161 { AOM_ICDF(20289), AOM_ICDF(31164), AOM_ICDF(32745), AOM_ICDF(32755),
1162 AOM_ICDF(32768) },
1163 { AOM_ICDF(17601), AOM_ICDF(29635), AOM_ICDF(32739), AOM_ICDF(32751),
1164 AOM_ICDF(32768) },
1165 { AOM_ICDF(18241), AOM_ICDF(24284), AOM_ICDF(32116), AOM_ICDF(32258),
1166 AOM_ICDF(32768) },
1167 { AOM_ICDF(32705), AOM_ICDF(32706), AOM_ICDF(32739), AOM_ICDF(32740),
1168 AOM_ICDF(32768) },
1169 { AOM_ICDF(5697), AOM_ICDF(5750), AOM_ICDF(14739), AOM_ICDF(14792),
1170 AOM_ICDF(32768) },
1171 { AOM_ICDF(2881), AOM_ICDF(2913), AOM_ICDF(8427), AOM_ICDF(8498),
1172 AOM_ICDF(32768) } },
1173 { // Band 4
1174 { AOM_ICDF(19009), AOM_ICDF(31481), AOM_ICDF(32742), AOM_ICDF(32754),
1175 AOM_ICDF(32768) },
1176 { AOM_ICDF(15809), AOM_ICDF(30521), AOM_ICDF(32736), AOM_ICDF(32750),
1177 AOM_ICDF(32768) },
1178 { AOM_ICDF(16449), AOM_ICDF(32705), AOM_ICDF(32737), AOM_ICDF(32753),
1179 AOM_ICDF(32768) },
1180 { AOM_ICDF(7873), AOM_ICDF(8039), AOM_ICDF(19981), AOM_ICDF(20068),
1181 AOM_ICDF(32768) },
1182 { AOM_ICDF(5313), AOM_ICDF(5366), AOM_ICDF(14376), AOM_ICDF(14430),
1183 AOM_ICDF(32768) },
1184 { AOM_ICDF(2753), AOM_ICDF(2789), AOM_ICDF(8909), AOM_ICDF(8979),
1185 AOM_ICDF(32768) } },
1186 { // Band 5
1187 { AOM_ICDF(11841), AOM_ICDF(32116), AOM_ICDF(32728), AOM_ICDF(32748),
1188 AOM_ICDF(32768) },
1189 { AOM_ICDF(12353), AOM_ICDF(32132), AOM_ICDF(32729), AOM_ICDF(32748),
1190 AOM_ICDF(32768) },
1191 { AOM_ICDF(7489), AOM_ICDF(12435), AOM_ICDF(25708), AOM_ICDF(26666),
1192 AOM_ICDF(32768) },
1193 { AOM_ICDF(5697), AOM_ICDF(7486), AOM_ICDF(20238), AOM_ICDF(21009),
1194 AOM_ICDF(32768) },
1195 { AOM_ICDF(4929), AOM_ICDF(5579), AOM_ICDF(16402), AOM_ICDF(16866),
1196 AOM_ICDF(32768) },
1197 { AOM_ICDF(3009), AOM_ICDF(3246), AOM_ICDF(10158), AOM_ICDF(10533),
1198 AOM_ICDF(32768) } } } }
1199 };
1200 static const coeff_cdf_model default_coef_head_cdf_8x8[PLANE_TYPES] = {
1201 { // Y plane
1202 { // Intra
1203 { // Band 0
1204 { AOM_ICDF(16064), AOM_ICDF(18127), AOM_ICDF(22153), AOM_ICDF(27289),
1205 AOM_ICDF(28507), AOM_ICDF(32768) },
1206 { AOM_ICDF(6720), AOM_ICDF(10545), AOM_ICDF(13491), AOM_ICDF(20948),
1207 AOM_ICDF(22631), AOM_ICDF(32768) },
1208 { AOM_ICDF(832), AOM_ICDF(5270), AOM_ICDF(5918), AOM_ICDF(12645),
1209 AOM_ICDF(13532), AOM_ICDF(32768) } },
1210 { // Band 1
1211 { AOM_ICDF(14017), AOM_ICDF(16139), AOM_ICDF(26799), AOM_ICDF(27295),
1212 AOM_ICDF(32768) },
1213 { AOM_ICDF(12737), AOM_ICDF(15136), AOM_ICDF(26235), AOM_ICDF(26816),
1214 AOM_ICDF(32768) },
1215 { AOM_ICDF(10817), AOM_ICDF(12445), AOM_ICDF(23637), AOM_ICDF(24217),
1216 AOM_ICDF(32768) },
1217 { AOM_ICDF(8897), AOM_ICDF(9702), AOM_ICDF(20040), AOM_ICDF(20500),
1218 AOM_ICDF(32768) },
1219 { AOM_ICDF(5953), AOM_ICDF(6156), AOM_ICDF(13966), AOM_ICDF(14205),
1220 AOM_ICDF(32768) },
1221 { AOM_ICDF(2497), AOM_ICDF(2519), AOM_ICDF(6222), AOM_ICDF(6300),
1222 AOM_ICDF(32768) } },
1223 { // Band 2
1224 { AOM_ICDF(19777), AOM_ICDF(21403), AOM_ICDF(30054), AOM_ICDF(30269),
1225 AOM_ICDF(32768) },
1226 { AOM_ICDF(16193), AOM_ICDF(17913), AOM_ICDF(28593), AOM_ICDF(28883),
1227 AOM_ICDF(32768) },
1228 { AOM_ICDF(12609), AOM_ICDF(13572), AOM_ICDF(25248), AOM_ICDF(25534),
1229 AOM_ICDF(32768) },
1230 { AOM_ICDF(9665), AOM_ICDF(10118), AOM_ICDF(20721), AOM_ICDF(20968),
1231 AOM_ICDF(32768) },
1232 { AOM_ICDF(6849), AOM_ICDF(7028), AOM_ICDF(15202), AOM_ICDF(15391),
1233 AOM_ICDF(32768) },
1234 { AOM_ICDF(3009), AOM_ICDF(3036), AOM_ICDF(7601), AOM_ICDF(7675),
1235 AOM_ICDF(32768) } },
1236 { // Band 3
1237 { AOM_ICDF(22593), AOM_ICDF(23915), AOM_ICDF(31159), AOM_ICDF(31283),
1238 AOM_ICDF(32768) },
1239 { AOM_ICDF(17345), AOM_ICDF(18690), AOM_ICDF(29425), AOM_ICDF(29611),
1240 AOM_ICDF(32768) },
1241 { AOM_ICDF(11969), AOM_ICDF(12540), AOM_ICDF(24685), AOM_ICDF(24867),
1242 AOM_ICDF(32768) },
1243 { AOM_ICDF(8129), AOM_ICDF(8355), AOM_ICDF(18668), AOM_ICDF(18819),
1244 AOM_ICDF(32768) },
1245 { AOM_ICDF(4673), AOM_ICDF(4714), AOM_ICDF(11752), AOM_ICDF(11814),
1246 AOM_ICDF(32768) },
1247 { AOM_ICDF(1857), AOM_ICDF(1876), AOM_ICDF(5057), AOM_ICDF(5138),
1248 AOM_ICDF(32768) } },
1249 { // Band 4
1250 { AOM_ICDF(24513), AOM_ICDF(25718), AOM_ICDF(31947), AOM_ICDF(32014),
1251 AOM_ICDF(32768) },
1252 { AOM_ICDF(18881), AOM_ICDF(20029), AOM_ICDF(30409), AOM_ICDF(30527),
1253 AOM_ICDF(32768) },
1254 { AOM_ICDF(12481), AOM_ICDF(12953), AOM_ICDF(25201), AOM_ICDF(25341),
1255 AOM_ICDF(32768) },
1256 { AOM_ICDF(8385), AOM_ICDF(8528), AOM_ICDF(18815), AOM_ICDF(18910),
1257 AOM_ICDF(32768) },
1258 { AOM_ICDF(4289), AOM_ICDF(4327), AOM_ICDF(10797), AOM_ICDF(10861),
1259 AOM_ICDF(32768) },
1260 { AOM_ICDF(1857), AOM_ICDF(1872), AOM_ICDF(4332), AOM_ICDF(4415),
1261 AOM_ICDF(32768) } },
1262 { // Band 5
1263 { AOM_ICDF(26049), AOM_ICDF(27752), AOM_ICDF(32415), AOM_ICDF(32462),
1264 AOM_ICDF(32768) },
1265 { AOM_ICDF(20417), AOM_ICDF(22100), AOM_ICDF(31056), AOM_ICDF(31192),
1266 AOM_ICDF(32768) },
1267 { AOM_ICDF(12481), AOM_ICDF(13075), AOM_ICDF(24646), AOM_ICDF(24844),
1268 AOM_ICDF(32768) },
1269 { AOM_ICDF(7489), AOM_ICDF(7696), AOM_ICDF(17117), AOM_ICDF(17285),
1270 AOM_ICDF(32768) },
1271 { AOM_ICDF(3777), AOM_ICDF(3814), AOM_ICDF(10062), AOM_ICDF(10129),
1272 AOM_ICDF(32768) },
1273 { AOM_ICDF(1473), AOM_ICDF(1486), AOM_ICDF(3735), AOM_ICDF(3820),
1274 AOM_ICDF(32768) } } },
1275 { // Intra
1276 { // Band 0
1277 { AOM_ICDF(25920), AOM_ICDF(27743), AOM_ICDF(29455), AOM_ICDF(32147),
1278 AOM_ICDF(32280), AOM_ICDF(32768) },
1279 { AOM_ICDF(13888), AOM_ICDF(19845), AOM_ICDF(23350), AOM_ICDF(30219),
1280 AOM_ICDF(30660), AOM_ICDF(32768) },
1281 { AOM_ICDF(2368), AOM_ICDF(12781), AOM_ICDF(16196), AOM_ICDF(27232),
1282 AOM_ICDF(27894), AOM_ICDF(32768) } },
1283 { // Band 1
1284 { AOM_ICDF(21697), AOM_ICDF(24758), AOM_ICDF(32358), AOM_ICDF(32417),
1285 AOM_ICDF(32768) },
1286 { AOM_ICDF(20289), AOM_ICDF(23960), AOM_ICDF(32111), AOM_ICDF(32213),
1287 AOM_ICDF(32768) },
1288 { AOM_ICDF(17345), AOM_ICDF(19966), AOM_ICDF(30630), AOM_ICDF(30841),
1289 AOM_ICDF(32768) },
1290 { AOM_ICDF(14529), AOM_ICDF(16070), AOM_ICDF(27461), AOM_ICDF(27777),
1291 AOM_ICDF(32768) },
1292 { AOM_ICDF(9793), AOM_ICDF(10613), AOM_ICDF(21146), AOM_ICDF(21566),
1293 AOM_ICDF(32768) },
1294 { AOM_ICDF(6977), AOM_ICDF(7162), AOM_ICDF(15591), AOM_ICDF(15776),
1295 AOM_ICDF(32768) } },
1296 { // Band 2
1297 { AOM_ICDF(23617), AOM_ICDF(26783), AOM_ICDF(32572), AOM_ICDF(32607),
1298 AOM_ICDF(32768) },
1299 { AOM_ICDF(20801), AOM_ICDF(24292), AOM_ICDF(32185), AOM_ICDF(32275),
1300 AOM_ICDF(32768) },
1301 { AOM_ICDF(15169), AOM_ICDF(17905), AOM_ICDF(29916), AOM_ICDF(30181),
1302 AOM_ICDF(32768) },
1303 { AOM_ICDF(10945), AOM_ICDF(12972), AOM_ICDF(25565), AOM_ICDF(26064),
1304 AOM_ICDF(32768) },
1305 { AOM_ICDF(6849), AOM_ICDF(8334), AOM_ICDF(18543), AOM_ICDF(19446),
1306 AOM_ICDF(32768) },
1307 { AOM_ICDF(3649), AOM_ICDF(4346), AOM_ICDF(12351), AOM_ICDF(13169),
1308 AOM_ICDF(32768) } },
1309 { // Band 3
1310 { AOM_ICDF(25281), AOM_ICDF(28440), AOM_ICDF(32667), AOM_ICDF(32689),
1311 AOM_ICDF(32768) },
1312 { AOM_ICDF(22081), AOM_ICDF(25694), AOM_ICDF(32414), AOM_ICDF(32476),
1313 AOM_ICDF(32768) },
1314 { AOM_ICDF(15297), AOM_ICDF(18341), AOM_ICDF(30141), AOM_ICDF(30410),
1315 AOM_ICDF(32768) },
1316 { AOM_ICDF(10305), AOM_ICDF(12381), AOM_ICDF(24477), AOM_ICDF(25084),
1317 AOM_ICDF(32768) },
1318 { AOM_ICDF(5697), AOM_ICDF(6673), AOM_ICDF(16325), AOM_ICDF(17080),
1319 AOM_ICDF(32768) },
1320 { AOM_ICDF(2369), AOM_ICDF(2393), AOM_ICDF(6466), AOM_ICDF(6543),
1321 AOM_ICDF(32768) } },
1322 { // Band 4
1323 { AOM_ICDF(25921), AOM_ICDF(29445), AOM_ICDF(32729), AOM_ICDF(32739),
1324 AOM_ICDF(32768) },
1325 { AOM_ICDF(22465), AOM_ICDF(26834), AOM_ICDF(32588), AOM_ICDF(32627),
1326 AOM_ICDF(32768) },
1327 { AOM_ICDF(16449), AOM_ICDF(20062), AOM_ICDF(31016), AOM_ICDF(31233),
1328 AOM_ICDF(32768) },
1329 { AOM_ICDF(11073), AOM_ICDF(13165), AOM_ICDF(25353), AOM_ICDF(25896),
1330 AOM_ICDF(32768) },
1331 { AOM_ICDF(11713), AOM_ICDF(13837), AOM_ICDF(20144), AOM_ICDF(21734),
1332 AOM_ICDF(32768) },
1333 { AOM_ICDF(2241), AOM_ICDF(2265), AOM_ICDF(6355), AOM_ICDF(6432),
1334 AOM_ICDF(32768) } },
1335 { // Band 5
1336 { AOM_ICDF(26177), AOM_ICDF(29403), AOM_ICDF(32705), AOM_ICDF(32721),
1337 AOM_ICDF(32768) },
1338 { AOM_ICDF(22337), AOM_ICDF(26344), AOM_ICDF(32545), AOM_ICDF(32589),
1339 AOM_ICDF(32768) },
1340 { AOM_ICDF(19009), AOM_ICDF(21527), AOM_ICDF(31775), AOM_ICDF(31873),
1341 AOM_ICDF(32768) },
1342 { AOM_ICDF(11585), AOM_ICDF(12685), AOM_ICDF(22632), AOM_ICDF(23137),
1343 AOM_ICDF(32768) },
1344 { AOM_ICDF(8257), AOM_ICDF(8305), AOM_ICDF(16444), AOM_ICDF(16492),
1345 AOM_ICDF(32768) },
1346 { AOM_ICDF(2113), AOM_ICDF(2183), AOM_ICDF(7202), AOM_ICDF(7377),
1347 AOM_ICDF(32768) } } } },
1348 { // UV plane
1349 { // Inter
1350 { // Band 0
1351 { AOM_ICDF(27200), AOM_ICDF(27981), AOM_ICDF(31389), AOM_ICDF(32444),
1352 AOM_ICDF(32592), AOM_ICDF(32768) },
1353 { AOM_ICDF(14528), AOM_ICDF(19068), AOM_ICDF(24887), AOM_ICDF(29901),
1354 AOM_ICDF(30688), AOM_ICDF(32768) },
1355 { AOM_ICDF(3776), AOM_ICDF(11778), AOM_ICDF(14700), AOM_ICDF(23745),
1356 AOM_ICDF(24854), AOM_ICDF(32768) } },
1357 { // Band 1
1358 { AOM_ICDF(20289), AOM_ICDF(25202), AOM_ICDF(31672), AOM_ICDF(31909),
1359 AOM_ICDF(32768) },
1360 { AOM_ICDF(18369), AOM_ICDF(23493), AOM_ICDF(31166), AOM_ICDF(31487),
1361 AOM_ICDF(32768) },
1362 { AOM_ICDF(15425), AOM_ICDF(18619), AOM_ICDF(28941), AOM_ICDF(29393),
1363 AOM_ICDF(32768) },
1364 { AOM_ICDF(10945), AOM_ICDF(12535), AOM_ICDF(24287), AOM_ICDF(24792),
1365 AOM_ICDF(32768) },
1366 { AOM_ICDF(6465), AOM_ICDF(6810), AOM_ICDF(15764), AOM_ICDF(16080),
1367 AOM_ICDF(32768) },
1368 { AOM_ICDF(2113), AOM_ICDF(2137), AOM_ICDF(6125), AOM_ICDF(6203),
1369 AOM_ICDF(32768) } },
1370 { // Band 2
1371 { AOM_ICDF(23745), AOM_ICDF(27041), AOM_ICDF(31976), AOM_ICDF(32135),
1372 AOM_ICDF(32768) },
1373 { AOM_ICDF(19521), AOM_ICDF(22766), AOM_ICDF(31139), AOM_ICDF(31367),
1374 AOM_ICDF(32768) },
1375 { AOM_ICDF(14273), AOM_ICDF(15834), AOM_ICDF(27820), AOM_ICDF(28105),
1376 AOM_ICDF(32768) },
1377 { AOM_ICDF(9537), AOM_ICDF(10445), AOM_ICDF(22106), AOM_ICDF(22491),
1378 AOM_ICDF(32768) },
1379 { AOM_ICDF(7233), AOM_ICDF(7386), AOM_ICDF(15961), AOM_ICDF(16109),
1380 AOM_ICDF(32768) },
1381 { AOM_ICDF(2369), AOM_ICDF(2401), AOM_ICDF(7891), AOM_ICDF(7964),
1382 AOM_ICDF(32768) } },
1383 { // Band 3
1384 { AOM_ICDF(26305), AOM_ICDF(28703), AOM_ICDF(32352), AOM_ICDF(32435),
1385 AOM_ICDF(32768) },
1386 { AOM_ICDF(20673), AOM_ICDF(23490), AOM_ICDF(31517), AOM_ICDF(31680),
1387 AOM_ICDF(32768) },
1388 { AOM_ICDF(14017), AOM_ICDF(15251), AOM_ICDF(27458), AOM_ICDF(27702),
1389 AOM_ICDF(32768) },
1390 { AOM_ICDF(10945), AOM_ICDF(11374), AOM_ICDF(22496), AOM_ICDF(22687),
1391 AOM_ICDF(32768) },
1392 { AOM_ICDF(9153), AOM_ICDF(9435), AOM_ICDF(22299), AOM_ICDF(22411),
1393 AOM_ICDF(32768) },
1394 { AOM_ICDF(193), AOM_ICDF(269), AOM_ICDF(13236), AOM_ICDF(13293),
1395 AOM_ICDF(32768) } },
1396 { // Band 4
1397 { AOM_ICDF(27713), AOM_ICDF(29770), AOM_ICDF(32522), AOM_ICDF(32575),
1398 AOM_ICDF(32768) },
1399 { AOM_ICDF(21569), AOM_ICDF(24342), AOM_ICDF(31785), AOM_ICDF(31919),
1400 AOM_ICDF(32768) },
1401 { AOM_ICDF(15297), AOM_ICDF(16497), AOM_ICDF(28367), AOM_ICDF(28569),
1402 AOM_ICDF(32768) },
1403 { AOM_ICDF(17601), AOM_ICDF(17828), AOM_ICDF(24444), AOM_ICDF(24582),
1404 AOM_ICDF(32768) },
1405 { AOM_ICDF(6977), AOM_ICDF(7035), AOM_ICDF(16901), AOM_ICDF(16947),
1406 AOM_ICDF(32768) },
1407 { AOM_ICDF(193), AOM_ICDF(384), AOM_ICDF(32706), AOM_ICDF(32707),
1408 AOM_ICDF(32768) } },
1409 { // Band 5
1410 { AOM_ICDF(28737), AOM_ICDF(30879), AOM_ICDF(32667), AOM_ICDF(32695),
1411 AOM_ICDF(32768) },
1412 { AOM_ICDF(22593), AOM_ICDF(26241), AOM_ICDF(32073), AOM_ICDF(32207),
1413 AOM_ICDF(32768) },
1414 { AOM_ICDF(16577), AOM_ICDF(19148), AOM_ICDF(28436), AOM_ICDF(28906),
1415 AOM_ICDF(32768) },
1416 { AOM_ICDF(12993), AOM_ICDF(14005), AOM_ICDF(23151), AOM_ICDF(23630),
1417 AOM_ICDF(32768) },
1418 { AOM_ICDF(7617), AOM_ICDF(9188), AOM_ICDF(22797), AOM_ICDF(23313),
1419 AOM_ICDF(32768) },
1420 { AOM_ICDF(2625), AOM_ICDF(2680), AOM_ICDF(8218), AOM_ICDF(8338),
1421 AOM_ICDF(32768) } } },
1422 { // Inter
1423 { // Band 0
1424 { AOM_ICDF(28864), AOM_ICDF(29988), AOM_ICDF(32423), AOM_ICDF(32766),
1425 AOM_ICDF(32767), AOM_ICDF(32768) },
1426 { AOM_ICDF(18496), AOM_ICDF(24572), AOM_ICDF(30167), AOM_ICDF(32687),
1427 AOM_ICDF(32737), AOM_ICDF(32768) },
1428 { AOM_ICDF(5440), AOM_ICDF(19618), AOM_ICDF(25332), AOM_ICDF(32393),
1429 AOM_ICDF(32491), AOM_ICDF(32768) } },
1430 { // Band 1
1431 { AOM_ICDF(23745), AOM_ICDF(29427), AOM_ICDF(32751), AOM_ICDF(32757),
1432 AOM_ICDF(32768) },
1433 { AOM_ICDF(23745), AOM_ICDF(28704), AOM_ICDF(32716), AOM_ICDF(32731),
1434 AOM_ICDF(32768) },
1435 { AOM_ICDF(23105), AOM_ICDF(27943), AOM_ICDF(32524), AOM_ICDF(32587),
1436 AOM_ICDF(32768) },
1437 { AOM_ICDF(21057), AOM_ICDF(24773), AOM_ICDF(29589), AOM_ICDF(30282),
1438 AOM_ICDF(32768) },
1439 { AOM_ICDF(12609), AOM_ICDF(14823), AOM_ICDF(23831), AOM_ICDF(24713),
1440 AOM_ICDF(32768) },
1441 { AOM_ICDF(16449), AOM_ICDF(16450), AOM_ICDF(16545), AOM_ICDF(16593),
1442 AOM_ICDF(32768) } },
1443 { // Band 2
1444 { AOM_ICDF(25025), AOM_ICDF(30203), AOM_ICDF(32754), AOM_ICDF(32759),
1445 AOM_ICDF(32768) },
1446 { AOM_ICDF(23617), AOM_ICDF(28361), AOM_ICDF(32715), AOM_ICDF(32729),
1447 AOM_ICDF(32768) },
1448 { AOM_ICDF(17985), AOM_ICDF(21562), AOM_ICDF(31354), AOM_ICDF(31543),
1449 AOM_ICDF(32768) },
1450 { AOM_ICDF(12353), AOM_ICDF(18915), AOM_ICDF(28742), AOM_ICDF(29548),
1451 AOM_ICDF(32768) },
1452 { AOM_ICDF(193), AOM_ICDF(289), AOM_ICDF(16545), AOM_ICDF(16593),
1453 AOM_ICDF(32768) },
1454 { AOM_ICDF(2625), AOM_ICDF(2652), AOM_ICDF(7276), AOM_ICDF(7351),
1455 AOM_ICDF(32768) } },
1456 { // Band 3
1457 { AOM_ICDF(26433), AOM_ICDF(30892), AOM_ICDF(32757), AOM_ICDF(32761),
1458 AOM_ICDF(32768) },
1459 { AOM_ICDF(24513), AOM_ICDF(29274), AOM_ICDF(32721), AOM_ICDF(32735),
1460 AOM_ICDF(32768) },
1461 { AOM_ICDF(20161), AOM_ICDF(24040), AOM_ICDF(32055), AOM_ICDF(32171),
1462 AOM_ICDF(32768) },
1463 { AOM_ICDF(21953), AOM_ICDF(24678), AOM_ICDF(27382), AOM_ICDF(28734),
1464 AOM_ICDF(32768) },
1465 { AOM_ICDF(5697), AOM_ICDF(5750), AOM_ICDF(14739), AOM_ICDF(14792),
1466 AOM_ICDF(32768) },
1467 { AOM_ICDF(2881), AOM_ICDF(2913), AOM_ICDF(8427), AOM_ICDF(8498),
1468 AOM_ICDF(32768) } },
1469 { // Band 4
1470 { AOM_ICDF(27457), AOM_ICDF(31485), AOM_ICDF(32759), AOM_ICDF(32763),
1471 AOM_ICDF(32768) },
1472 { AOM_ICDF(24129), AOM_ICDF(29502), AOM_ICDF(32752), AOM_ICDF(32757),
1473 AOM_ICDF(32768) },
1474 { AOM_ICDF(19009), AOM_ICDF(25452), AOM_ICDF(32473), AOM_ICDF(32544),
1475 AOM_ICDF(32768) },
1476 { AOM_ICDF(32705), AOM_ICDF(32706), AOM_ICDF(32737), AOM_ICDF(32738),
1477 AOM_ICDF(32768) },
1478 { AOM_ICDF(5313), AOM_ICDF(5366), AOM_ICDF(14376), AOM_ICDF(14430),
1479 AOM_ICDF(32768) },
1480 { AOM_ICDF(2753), AOM_ICDF(2789), AOM_ICDF(8909), AOM_ICDF(8979),
1481 AOM_ICDF(32768) } },
1482 { // Band 5
1483 { AOM_ICDF(27841), AOM_ICDF(32288), AOM_ICDF(32759), AOM_ICDF(32764),
1484 AOM_ICDF(32768) },
1485 { AOM_ICDF(19137), AOM_ICDF(30271), AOM_ICDF(32742), AOM_ICDF(32753),
1486 AOM_ICDF(32768) },
1487 { AOM_ICDF(18625), AOM_ICDF(27739), AOM_ICDF(29979), AOM_ICDF(31099),
1488 AOM_ICDF(32768) },
1489 { AOM_ICDF(5697), AOM_ICDF(7486), AOM_ICDF(20238), AOM_ICDF(21009),
1490 AOM_ICDF(32768) },
1491 { AOM_ICDF(4929), AOM_ICDF(5579), AOM_ICDF(16402), AOM_ICDF(16866),
1492 AOM_ICDF(32768) },
1493 { AOM_ICDF(3009), AOM_ICDF(3246), AOM_ICDF(10158), AOM_ICDF(10533),
1494 AOM_ICDF(32768) } } } }
1495 };
1496 static const coeff_cdf_model default_coef_head_cdf_16x16[PLANE_TYPES] = {
1497 { // Y plane
1498 { // Intra
1499 { // Band 0
1500 { AOM_ICDF(960), AOM_ICDF(4882), AOM_ICDF(9467), AOM_ICDF(17710),
1501 AOM_ICDF(20412), AOM_ICDF(32768) },
1502 { AOM_ICDF(704), AOM_ICDF(4657), AOM_ICDF(6561), AOM_ICDF(14507),
1503 AOM_ICDF(16279), AOM_ICDF(32768) },
1504 { AOM_ICDF(192), AOM_ICDF(3443), AOM_ICDF(3759), AOM_ICDF(9011),
1505 AOM_ICDF(9685), AOM_ICDF(32768) } },
1506 { // Band 1
1507 { AOM_ICDF(12481), AOM_ICDF(13958), AOM_ICDF(24487), AOM_ICDF(24997),
1508 AOM_ICDF(32768) },
1509 { AOM_ICDF(11457), AOM_ICDF(13075), AOM_ICDF(23820), AOM_ICDF(24406),
1510 AOM_ICDF(32768) },
1511 { AOM_ICDF(9793), AOM_ICDF(11127), AOM_ICDF(21775), AOM_ICDF(22387),
1512 AOM_ICDF(32768) },
1513 { AOM_ICDF(7745), AOM_ICDF(8457), AOM_ICDF(18155), AOM_ICDF(18655),
1514 AOM_ICDF(32768) },
1515 { AOM_ICDF(5441), AOM_ICDF(5668), AOM_ICDF(13180), AOM_ICDF(13467),
1516 AOM_ICDF(32768) },
1517 { AOM_ICDF(2497), AOM_ICDF(2520), AOM_ICDF(6340), AOM_ICDF(6417),
1518 AOM_ICDF(32768) } },
1519 { // Band 2
1520 { AOM_ICDF(19521), AOM_ICDF(20572), AOM_ICDF(28965), AOM_ICDF(29177),
1521 AOM_ICDF(32768) },
1522 { AOM_ICDF(15425), AOM_ICDF(16741), AOM_ICDF(27247), AOM_ICDF(27554),
1523 AOM_ICDF(32768) },
1524 { AOM_ICDF(11969), AOM_ICDF(12690), AOM_ICDF(23872), AOM_ICDF(24141),
1525 AOM_ICDF(32768) },
1526 { AOM_ICDF(9281), AOM_ICDF(9678), AOM_ICDF(19970), AOM_ICDF(20207),
1527 AOM_ICDF(32768) },
1528 { AOM_ICDF(6081), AOM_ICDF(6266), AOM_ICDF(14682), AOM_ICDF(14876),
1529 AOM_ICDF(32768) },
1530 { AOM_ICDF(2753), AOM_ICDF(2779), AOM_ICDF(7150), AOM_ICDF(7225),
1531 AOM_ICDF(32768) } },
1532 { // Band 3
1533 { AOM_ICDF(22337), AOM_ICDF(23293), AOM_ICDF(30630), AOM_ICDF(30753),
1534 AOM_ICDF(32768) },
1535 { AOM_ICDF(16321), AOM_ICDF(17427), AOM_ICDF(28368), AOM_ICDF(28570),
1536 AOM_ICDF(32768) },
1537 { AOM_ICDF(11457), AOM_ICDF(11907), AOM_ICDF(23570), AOM_ICDF(23741),
1538 AOM_ICDF(32768) },
1539 { AOM_ICDF(7233), AOM_ICDF(7331), AOM_ICDF(17258), AOM_ICDF(17334),
1540 AOM_ICDF(32768) },
1541 { AOM_ICDF(4033), AOM_ICDF(4070), AOM_ICDF(10375), AOM_ICDF(10441),
1542 AOM_ICDF(32768) },
1543 { AOM_ICDF(1601), AOM_ICDF(1619), AOM_ICDF(4706), AOM_ICDF(4788),
1544 AOM_ICDF(32768) } },
1545 { // Band 4
1546 { AOM_ICDF(24769), AOM_ICDF(25536), AOM_ICDF(31660), AOM_ICDF(31722),
1547 AOM_ICDF(32768) },
1548 { AOM_ICDF(18113), AOM_ICDF(18886), AOM_ICDF(29420), AOM_ICDF(29534),
1549 AOM_ICDF(32768) },
1550 { AOM_ICDF(11201), AOM_ICDF(11412), AOM_ICDF(23207), AOM_ICDF(23291),
1551 AOM_ICDF(32768) },
1552 { AOM_ICDF(6977), AOM_ICDF(7033), AOM_ICDF(16599), AOM_ICDF(16646),
1553 AOM_ICDF(32768) },
1554 { AOM_ICDF(4033), AOM_ICDF(4070), AOM_ICDF(10375), AOM_ICDF(10441),
1555 AOM_ICDF(32768) },
1556 { AOM_ICDF(1601), AOM_ICDF(1620), AOM_ICDF(4827), AOM_ICDF(4909),
1557 AOM_ICDF(32768) } },
1558 { // Band 5
1559 { AOM_ICDF(28353), AOM_ICDF(28831), AOM_ICDF(32502), AOM_ICDF(32517),
1560 AOM_ICDF(32768) },
1561 { AOM_ICDF(21441), AOM_ICDF(21869), AOM_ICDF(30977), AOM_ICDF(31017),
1562 AOM_ICDF(32768) },
1563 { AOM_ICDF(11969), AOM_ICDF(12088), AOM_ICDF(24116), AOM_ICDF(24158),
1564 AOM_ICDF(32768) },
1565 { AOM_ICDF(7489), AOM_ICDF(7547), AOM_ICDF(17413), AOM_ICDF(17458),
1566 AOM_ICDF(32768) },
1567 { AOM_ICDF(4545), AOM_ICDF(4585), AOM_ICDF(11325), AOM_ICDF(11388),
1568 AOM_ICDF(32768) },
1569 { AOM_ICDF(2113), AOM_ICDF(2133), AOM_ICDF(5526), AOM_ICDF(5606),
1570 AOM_ICDF(32768) } } },
1571 { // Intra
1572 { // Band 0
1573 { AOM_ICDF(2496), AOM_ICDF(8717), AOM_ICDF(17280), AOM_ICDF(28922),
1574 AOM_ICDF(29751), AOM_ICDF(32768) },
1575 { AOM_ICDF(2496), AOM_ICDF(9665), AOM_ICDF(15235), AOM_ICDF(26542),
1576 AOM_ICDF(27580), AOM_ICDF(32768) },
1577 { AOM_ICDF(448), AOM_ICDF(9240), AOM_ICDF(11886), AOM_ICDF(24124),
1578 AOM_ICDF(24898), AOM_ICDF(32768) } },
1579 { // Band 1
1580 { AOM_ICDF(21057), AOM_ICDF(22896), AOM_ICDF(31877), AOM_ICDF(31953),
1581 AOM_ICDF(32768) },
1582 { AOM_ICDF(20673), AOM_ICDF(23151), AOM_ICDF(31706), AOM_ICDF(31825),
1583 AOM_ICDF(32768) },
1584 { AOM_ICDF(18753), AOM_ICDF(20519), AOM_ICDF(30497), AOM_ICDF(30668),
1585 AOM_ICDF(32768) },
1586 { AOM_ICDF(15425), AOM_ICDF(16608), AOM_ICDF(27789), AOM_ICDF(28027),
1587 AOM_ICDF(32768) },
1588 { AOM_ICDF(10305), AOM_ICDF(10977), AOM_ICDF(21405), AOM_ICDF(21749),
1589 AOM_ICDF(32768) },
1590 { AOM_ICDF(3649), AOM_ICDF(3812), AOM_ICDF(11213), AOM_ICDF(11445),
1591 AOM_ICDF(32768) } },
1592 { // Band 2
1593 { AOM_ICDF(24001), AOM_ICDF(25899), AOM_ICDF(32307), AOM_ICDF(32360),
1594 AOM_ICDF(32768) },
1595 { AOM_ICDF(20929), AOM_ICDF(22941), AOM_ICDF(31775), AOM_ICDF(31867),
1596 AOM_ICDF(32768) },
1597 { AOM_ICDF(15169), AOM_ICDF(16734), AOM_ICDF(29228), AOM_ICDF(29425),
1598 AOM_ICDF(32768) },
1599 { AOM_ICDF(10561), AOM_ICDF(12047), AOM_ICDF(24918), AOM_ICDF(25324),
1600 AOM_ICDF(32768) },
1601 { AOM_ICDF(6977), AOM_ICDF(7929), AOM_ICDF(18311), AOM_ICDF(18918),
1602 AOM_ICDF(32768) },
1603 { AOM_ICDF(3649), AOM_ICDF(3760), AOM_ICDF(9962), AOM_ICDF(10162),
1604 AOM_ICDF(32768) } },
1605 { // Band 3
1606 { AOM_ICDF(25793), AOM_ICDF(27526), AOM_ICDF(32565), AOM_ICDF(32591),
1607 AOM_ICDF(32768) },
1608 { AOM_ICDF(21825), AOM_ICDF(23885), AOM_ICDF(32064), AOM_ICDF(32135),
1609 AOM_ICDF(32768) },
1610 { AOM_ICDF(15041), AOM_ICDF(16286), AOM_ICDF(29203), AOM_ICDF(29360),
1611 AOM_ICDF(32768) },
1612 { AOM_ICDF(10433), AOM_ICDF(11058), AOM_ICDF(24349), AOM_ICDF(24538),
1613 AOM_ICDF(32768) },
1614 { AOM_ICDF(5569), AOM_ICDF(6016), AOM_ICDF(16460), AOM_ICDF(16794),
1615 AOM_ICDF(32768) },
1616 { AOM_ICDF(193), AOM_ICDF(194), AOM_ICDF(384), AOM_ICDF(479),
1617 AOM_ICDF(32768) } },
1618 { // Band 4
1619 { AOM_ICDF(26433), AOM_ICDF(28398), AOM_ICDF(32682), AOM_ICDF(32696),
1620 AOM_ICDF(32768) },
1621 { AOM_ICDF(22977), AOM_ICDF(25086), AOM_ICDF(32367), AOM_ICDF(32412),
1622 AOM_ICDF(32768) },
1623 { AOM_ICDF(16577), AOM_ICDF(17928), AOM_ICDF(30144), AOM_ICDF(30275),
1624 AOM_ICDF(32768) },
1625 { AOM_ICDF(12481), AOM_ICDF(13352), AOM_ICDF(25993), AOM_ICDF(26211),
1626 AOM_ICDF(32768) },
1627 { AOM_ICDF(7745), AOM_ICDF(8069), AOM_ICDF(20501), AOM_ICDF(20657),
1628 AOM_ICDF(32768) },
1629 { AOM_ICDF(16449), AOM_ICDF(16450), AOM_ICDF(16545), AOM_ICDF(16593),
1630 AOM_ICDF(32768) } },
1631 { // Band 5
1632 { AOM_ICDF(27841), AOM_ICDF(29700), AOM_ICDF(32721), AOM_ICDF(32730),
1633 AOM_ICDF(32768) },
1634 { AOM_ICDF(23873), AOM_ICDF(26202), AOM_ICDF(32578), AOM_ICDF(32604),
1635 AOM_ICDF(32768) },
1636 { AOM_ICDF(17729), AOM_ICDF(19046), AOM_ICDF(30448), AOM_ICDF(30568),
1637 AOM_ICDF(32768) },
1638 { AOM_ICDF(13505), AOM_ICDF(14508), AOM_ICDF(26034), AOM_ICDF(26304),
1639 AOM_ICDF(32768) },
1640 { AOM_ICDF(10049), AOM_ICDF(10494), AOM_ICDF(19945), AOM_ICDF(20233),
1641 AOM_ICDF(32768) },
1642 { AOM_ICDF(2113), AOM_ICDF(2183), AOM_ICDF(7202), AOM_ICDF(7377),
1643 AOM_ICDF(32768) } } } },
1644 { // UV plane
1645 { // Inter
1646 { // Band 0
1647 { AOM_ICDF(27072), AOM_ICDF(27916), AOM_ICDF(31095), AOM_ICDF(32400),
1648 AOM_ICDF(32553), AOM_ICDF(32768) },
1649 { AOM_ICDF(12352), AOM_ICDF(16792), AOM_ICDF(22516), AOM_ICDF(28853),
1650 AOM_ICDF(29797), AOM_ICDF(32768) },
1651 { AOM_ICDF(2880), AOM_ICDF(9023), AOM_ICDF(11126), AOM_ICDF(20602),
1652 AOM_ICDF(21713), AOM_ICDF(32768) } },
1653 { // Band 1
1654 { AOM_ICDF(20161), AOM_ICDF(24785), AOM_ICDF(31070), AOM_ICDF(31430),
1655 AOM_ICDF(32768) },
1656 { AOM_ICDF(17985), AOM_ICDF(22773), AOM_ICDF(30430), AOM_ICDF(30880),
1657 AOM_ICDF(32768) },
1658 { AOM_ICDF(15937), AOM_ICDF(18802), AOM_ICDF(28265), AOM_ICDF(28788),
1659 AOM_ICDF(32768) },
1660 { AOM_ICDF(11841), AOM_ICDF(13587), AOM_ICDF(24798), AOM_ICDF(25335),
1661 AOM_ICDF(32768) },
1662 { AOM_ICDF(8769), AOM_ICDF(9160), AOM_ICDF(19316), AOM_ICDF(19566),
1663 AOM_ICDF(32768) },
1664 { AOM_ICDF(5313), AOM_ICDF(5357), AOM_ICDF(12874), AOM_ICDF(12932),
1665 AOM_ICDF(32768) } },
1666 { // Band 2
1667 { AOM_ICDF(24129), AOM_ICDF(26501), AOM_ICDF(31672), AOM_ICDF(31844),
1668 AOM_ICDF(32768) },
1669 { AOM_ICDF(19649), AOM_ICDF(21553), AOM_ICDF(30130), AOM_ICDF(30370),
1670 AOM_ICDF(32768) },
1671 { AOM_ICDF(11713), AOM_ICDF(13134), AOM_ICDF(25983), AOM_ICDF(26321),
1672 AOM_ICDF(32768) },
1673 { AOM_ICDF(9409), AOM_ICDF(9948), AOM_ICDF(21408), AOM_ICDF(21663),
1674 AOM_ICDF(32768) },
1675 { AOM_ICDF(5569), AOM_ICDF(5757), AOM_ICDF(14335), AOM_ICDF(14533),
1676 AOM_ICDF(32768) },
1677 { AOM_ICDF(2241), AOM_ICDF(2305), AOM_ICDF(13152), AOM_ICDF(13209),
1678 AOM_ICDF(32768) } },
1679 { // Band 3
1680 { AOM_ICDF(26817), AOM_ICDF(28135), AOM_ICDF(32130), AOM_ICDF(32209),
1681 AOM_ICDF(32768) },
1682 { AOM_ICDF(20161), AOM_ICDF(21412), AOM_ICDF(30331), AOM_ICDF(30481),
1683 AOM_ICDF(32768) },
1684 { AOM_ICDF(13377), AOM_ICDF(13798), AOM_ICDF(26065), AOM_ICDF(26176),
1685 AOM_ICDF(32768) },
1686 { AOM_ICDF(8129), AOM_ICDF(8290), AOM_ICDF(19920), AOM_ICDF(20008),
1687 AOM_ICDF(32768) },
1688 { AOM_ICDF(5697), AOM_ICDF(5751), AOM_ICDF(14950), AOM_ICDF(15002),
1689 AOM_ICDF(32768) },
1690 { AOM_ICDF(5569), AOM_ICDF(5601), AOM_ICDF(11041), AOM_ICDF(11105),
1691 AOM_ICDF(32768) } },
1692 { // Band 4
1693 { AOM_ICDF(28225), AOM_ICDF(29079), AOM_ICDF(32387), AOM_ICDF(32426),
1694 AOM_ICDF(32768) },
1695 { AOM_ICDF(21185), AOM_ICDF(22046), AOM_ICDF(30982), AOM_ICDF(31061),
1696 AOM_ICDF(32768) },
1697 { AOM_ICDF(13377), AOM_ICDF(13595), AOM_ICDF(25762), AOM_ICDF(25824),
1698 AOM_ICDF(32768) },
1699 { AOM_ICDF(8001), AOM_ICDF(8123), AOM_ICDF(20530), AOM_ICDF(20590),
1700 AOM_ICDF(32768) },
1701 { AOM_ICDF(4289), AOM_ICDF(4322), AOM_ICDF(9907), AOM_ICDF(9974),
1702 AOM_ICDF(32768) },
1703 { AOM_ICDF(3393), AOM_ICDF(3412), AOM_ICDF(6663), AOM_ICDF(6739),
1704 AOM_ICDF(32768) } },
1705 { // Band 5
1706 { AOM_ICDF(30529), AOM_ICDF(31014), AOM_ICDF(32651), AOM_ICDF(32664),
1707 AOM_ICDF(32768) },
1708 { AOM_ICDF(23489), AOM_ICDF(24268), AOM_ICDF(31627), AOM_ICDF(31682),
1709 AOM_ICDF(32768) },
1710 { AOM_ICDF(14017), AOM_ICDF(14239), AOM_ICDF(26653), AOM_ICDF(26707),
1711 AOM_ICDF(32768) },
1712 { AOM_ICDF(11201), AOM_ICDF(11317), AOM_ICDF(23122), AOM_ICDF(23169),
1713 AOM_ICDF(32768) },
1714 { AOM_ICDF(6721), AOM_ICDF(6768), AOM_ICDF(14810), AOM_ICDF(14863),
1715 AOM_ICDF(32768) },
1716 { AOM_ICDF(6593), AOM_ICDF(6632), AOM_ICDF(13188), AOM_ICDF(13245),
1717 AOM_ICDF(32768) } } },
1718 { // Inter
1719 { // Band 0
1720 { AOM_ICDF(29888), AOM_ICDF(30492), AOM_ICDF(32500), AOM_ICDF(32766),
1721 AOM_ICDF(32767), AOM_ICDF(32768) },
1722 { AOM_ICDF(18752), AOM_ICDF(23235), AOM_ICDF(29846), AOM_ICDF(32214),
1723 AOM_ICDF(32442), AOM_ICDF(32768) },
1724 { AOM_ICDF(5568), AOM_ICDF(17762), AOM_ICDF(25039), AOM_ICDF(31213),
1725 AOM_ICDF(31651), AOM_ICDF(32768) } },
1726 { // Band 1
1727 { AOM_ICDF(26433), AOM_ICDF(29681), AOM_ICDF(32757), AOM_ICDF(32760),
1728 AOM_ICDF(32768) },
1729 { AOM_ICDF(24769), AOM_ICDF(28761), AOM_ICDF(32722), AOM_ICDF(32734),
1730 AOM_ICDF(32768) },
1731 { AOM_ICDF(22209), AOM_ICDF(26975), AOM_ICDF(32418), AOM_ICDF(32500),
1732 AOM_ICDF(32768) },
1733 { AOM_ICDF(16321), AOM_ICDF(21333), AOM_ICDF(28368), AOM_ICDF(29283),
1734 AOM_ICDF(32768) },
1735 { AOM_ICDF(12865), AOM_ICDF(14775), AOM_ICDF(22545), AOM_ICDF(23553),
1736 AOM_ICDF(32768) },
1737 { AOM_ICDF(12353), AOM_ICDF(12354), AOM_ICDF(12473), AOM_ICDF(12532),
1738 AOM_ICDF(32768) } },
1739 { // Band 2
1740 { AOM_ICDF(27457), AOM_ICDF(30005), AOM_ICDF(32738), AOM_ICDF(32745),
1741 AOM_ICDF(32768) },
1742 { AOM_ICDF(24897), AOM_ICDF(27541), AOM_ICDF(32723), AOM_ICDF(32731),
1743 AOM_ICDF(32768) },
1744 { AOM_ICDF(15297), AOM_ICDF(19106), AOM_ICDF(30414), AOM_ICDF(30711),
1745 AOM_ICDF(32768) },
1746 { AOM_ICDF(6593), AOM_ICDF(8826), AOM_ICDF(19732), AOM_ICDF(20840),
1747 AOM_ICDF(32768) },
1748 { AOM_ICDF(4161), AOM_ICDF(4233), AOM_ICDF(16509), AOM_ICDF(16557),
1749 AOM_ICDF(32768) },
1750 { AOM_ICDF(2625), AOM_ICDF(2652), AOM_ICDF(7276), AOM_ICDF(7351),
1751 AOM_ICDF(32768) } },
1752 { // Band 3
1753 { AOM_ICDF(28609), AOM_ICDF(30482), AOM_ICDF(32761), AOM_ICDF(32763),
1754 AOM_ICDF(32768) },
1755 { AOM_ICDF(25665), AOM_ICDF(27830), AOM_ICDF(32727), AOM_ICDF(32733),
1756 AOM_ICDF(32768) },
1757 { AOM_ICDF(21057), AOM_ICDF(23803), AOM_ICDF(30367), AOM_ICDF(30721),
1758 AOM_ICDF(32768) },
1759 { AOM_ICDF(10945), AOM_ICDF(21878), AOM_ICDF(32726), AOM_ICDF(32737),
1760 AOM_ICDF(32768) },
1761 { AOM_ICDF(5697), AOM_ICDF(5750), AOM_ICDF(14739), AOM_ICDF(14792),
1762 AOM_ICDF(32768) },
1763 { AOM_ICDF(2881), AOM_ICDF(2913), AOM_ICDF(8427), AOM_ICDF(8498),
1764 AOM_ICDF(32768) } },
1765 { // Band 4
1766 { AOM_ICDF(28993), AOM_ICDF(30944), AOM_ICDF(32762), AOM_ICDF(32764),
1767 AOM_ICDF(32768) },
1768 { AOM_ICDF(26561), AOM_ICDF(28695), AOM_ICDF(32733), AOM_ICDF(32739),
1769 AOM_ICDF(32768) },
1770 { AOM_ICDF(17985), AOM_ICDF(19028), AOM_ICDF(31008), AOM_ICDF(31079),
1771 AOM_ICDF(32768) },
1772 { AOM_ICDF(7873), AOM_ICDF(8039), AOM_ICDF(19981), AOM_ICDF(20068),
1773 AOM_ICDF(32768) },
1774 { AOM_ICDF(5313), AOM_ICDF(5366), AOM_ICDF(14376), AOM_ICDF(14430),
1775 AOM_ICDF(32768) },
1776 { AOM_ICDF(2753), AOM_ICDF(2789), AOM_ICDF(8909), AOM_ICDF(8979),
1777 AOM_ICDF(32768) } },
1778 { // Band 5
1779 { AOM_ICDF(30273), AOM_ICDF(32029), AOM_ICDF(32764), AOM_ICDF(32766),
1780 AOM_ICDF(32768) },
1781 { AOM_ICDF(28609), AOM_ICDF(30847), AOM_ICDF(32745), AOM_ICDF(32751),
1782 AOM_ICDF(32768) },
1783 { AOM_ICDF(21313), AOM_ICDF(24377), AOM_ICDF(31986), AOM_ICDF(32098),
1784 AOM_ICDF(32768) },
1785 { AOM_ICDF(32705), AOM_ICDF(32709), AOM_ICDF(32739), AOM_ICDF(32741),
1786 AOM_ICDF(32768) },
1787 { AOM_ICDF(4929), AOM_ICDF(5579), AOM_ICDF(16402), AOM_ICDF(16866),
1788 AOM_ICDF(32768) },
1789 { AOM_ICDF(3009), AOM_ICDF(3246), AOM_ICDF(10158), AOM_ICDF(10533),
1790 AOM_ICDF(32768) } } } }
1791 };
1792 static const coeff_cdf_model default_coef_head_cdf_32x32[PLANE_TYPES] = {
1793 { // Y plane
1794 { // Intra
1795 { // Band 0
1796 { AOM_ICDF(2240), AOM_ICDF(5407), AOM_ICDF(18304), AOM_ICDF(25601),
1797 AOM_ICDF(27911), AOM_ICDF(32768) },
1798 { AOM_ICDF(960), AOM_ICDF(4633), AOM_ICDF(8197), AOM_ICDF(16254),
1799 AOM_ICDF(18796), AOM_ICDF(32768) },
1800 { AOM_ICDF(192), AOM_ICDF(3061), AOM_ICDF(3557), AOM_ICDF(8701),
1801 AOM_ICDF(9762), AOM_ICDF(32768) } },
1802 { // Band 1
1803 { AOM_ICDF(11969), AOM_ICDF(15846), AOM_ICDF(25660), AOM_ICDF(26667),
1804 AOM_ICDF(32768) },
1805 { AOM_ICDF(11713), AOM_ICDF(15794), AOM_ICDF(25737), AOM_ICDF(26760),
1806 AOM_ICDF(32768) },
1807 { AOM_ICDF(9281), AOM_ICDF(12675), AOM_ICDF(23181), AOM_ICDF(24351),
1808 AOM_ICDF(32768) },
1809 { AOM_ICDF(7105), AOM_ICDF(8757), AOM_ICDF(18383), AOM_ICDF(19437),
1810 AOM_ICDF(32768) },
1811 { AOM_ICDF(4289), AOM_ICDF(4579), AOM_ICDF(11353), AOM_ICDF(11792),
1812 AOM_ICDF(32768) },
1813 { AOM_ICDF(1857), AOM_ICDF(1874), AOM_ICDF(4695), AOM_ICDF(4777),
1814 AOM_ICDF(32768) } },
1815 { // Band 2
1816 { AOM_ICDF(20929), AOM_ICDF(22297), AOM_ICDF(29370), AOM_ICDF(29646),
1817 AOM_ICDF(32768) },
1818 { AOM_ICDF(17473), AOM_ICDF(18985), AOM_ICDF(28079), AOM_ICDF(28413),
1819 AOM_ICDF(32768) },
1820 { AOM_ICDF(13121), AOM_ICDF(14064), AOM_ICDF(24902), AOM_ICDF(25217),
1821 AOM_ICDF(32768) },
1822 { AOM_ICDF(9793), AOM_ICDF(10214), AOM_ICDF(20069), AOM_ICDF(20329),
1823 AOM_ICDF(32768) },
1824 { AOM_ICDF(5825), AOM_ICDF(5987), AOM_ICDF(13350), AOM_ICDF(13559),
1825 AOM_ICDF(32768) },
1826 { AOM_ICDF(2241), AOM_ICDF(2260), AOM_ICDF(5520), AOM_ICDF(5600),
1827 AOM_ICDF(32768) } },
1828 { // Band 3
1829 { AOM_ICDF(25921), AOM_ICDF(26891), AOM_ICDF(31632), AOM_ICDF(31729),
1830 AOM_ICDF(32768) },
1831 { AOM_ICDF(18241), AOM_ICDF(19463), AOM_ICDF(29222), AOM_ICDF(29419),
1832 AOM_ICDF(32768) },
1833 { AOM_ICDF(11585), AOM_ICDF(12065), AOM_ICDF(23294), AOM_ICDF(23488),
1834 AOM_ICDF(32768) },
1835 { AOM_ICDF(6593), AOM_ICDF(6686), AOM_ICDF(16153), AOM_ICDF(16234),
1836 AOM_ICDF(32768) },
1837 { AOM_ICDF(3137), AOM_ICDF(3170), AOM_ICDF(8751), AOM_ICDF(8821),
1838 AOM_ICDF(32768) },
1839 { AOM_ICDF(1345), AOM_ICDF(1359), AOM_ICDF(3739), AOM_ICDF(3824),
1840 AOM_ICDF(32768) } },
1841 { // Band 4
1842 { AOM_ICDF(27713), AOM_ICDF(28504), AOM_ICDF(32068), AOM_ICDF(32132),
1843 AOM_ICDF(32768) },
1844 { AOM_ICDF(19265), AOM_ICDF(20354), AOM_ICDF(29789), AOM_ICDF(29943),
1845 AOM_ICDF(32768) },
1846 { AOM_ICDF(11201), AOM_ICDF(11538), AOM_ICDF(22701), AOM_ICDF(22848),
1847 AOM_ICDF(32768) },
1848 { AOM_ICDF(6337), AOM_ICDF(6424), AOM_ICDF(15268), AOM_ICDF(15353),
1849 AOM_ICDF(32768) },
1850 { AOM_ICDF(3649), AOM_ICDF(3681), AOM_ICDF(9052), AOM_ICDF(9121),
1851 AOM_ICDF(32768) },
1852 { AOM_ICDF(1601), AOM_ICDF(1618), AOM_ICDF(4584), AOM_ICDF(4667),
1853 AOM_ICDF(32768) } },
1854 { // Band 5
1855 { AOM_ICDF(30913), AOM_ICDF(31044), AOM_ICDF(32635), AOM_ICDF(32640),
1856 AOM_ICDF(32768) },
1857 { AOM_ICDF(22081), AOM_ICDF(22261), AOM_ICDF(30452), AOM_ICDF(30477),
1858 AOM_ICDF(32768) },
1859 { AOM_ICDF(10561), AOM_ICDF(10625), AOM_ICDF(21535), AOM_ICDF(21568),
1860 AOM_ICDF(32768) },
1861 { AOM_ICDF(6081), AOM_ICDF(6130), AOM_ICDF(14369), AOM_ICDF(14423),
1862 AOM_ICDF(32768) },
1863 { AOM_ICDF(3777), AOM_ICDF(3809), AOM_ICDF(9156), AOM_ICDF(9225),
1864 AOM_ICDF(32768) },
1865 { AOM_ICDF(1857), AOM_ICDF(1875), AOM_ICDF(4936), AOM_ICDF(5018),
1866 AOM_ICDF(32768) } } },
1867 { // Intra
1868 { // Band 0
1869 { AOM_ICDF(4672), AOM_ICDF(6927), AOM_ICDF(23534), AOM_ICDF(29846),
1870 AOM_ICDF(30928), AOM_ICDF(32768) },
1871 { AOM_ICDF(3776), AOM_ICDF(6784), AOM_ICDF(18075), AOM_ICDF(25863),
1872 AOM_ICDF(27926), AOM_ICDF(32768) },
1873 { AOM_ICDF(1344), AOM_ICDF(5588), AOM_ICDF(12166), AOM_ICDF(20966),
1874 AOM_ICDF(23504), AOM_ICDF(32768) } },
1875 { // Band 1
1876 { AOM_ICDF(19393), AOM_ICDF(22016), AOM_ICDF(31280), AOM_ICDF(31444),
1877 AOM_ICDF(32768) },
1878 { AOM_ICDF(21185), AOM_ICDF(24329), AOM_ICDF(31706), AOM_ICDF(31865),
1879 AOM_ICDF(32768) },
1880 { AOM_ICDF(20673), AOM_ICDF(23240), AOM_ICDF(31186), AOM_ICDF(31379),
1881 AOM_ICDF(32768) },
1882 { AOM_ICDF(17857), AOM_ICDF(20035), AOM_ICDF(29594), AOM_ICDF(29889),
1883 AOM_ICDF(32768) },
1884 { AOM_ICDF(13633), AOM_ICDF(14929), AOM_ICDF(24883), AOM_ICDF(25337),
1885 AOM_ICDF(32768) },
1886 { AOM_ICDF(7873), AOM_ICDF(8416), AOM_ICDF(17452), AOM_ICDF(17886),
1887 AOM_ICDF(32768) } },
1888 { // Band 2
1889 { AOM_ICDF(25665), AOM_ICDF(27145), AOM_ICDF(32256), AOM_ICDF(32314),
1890 AOM_ICDF(32768) },
1891 { AOM_ICDF(21057), AOM_ICDF(22826), AOM_ICDF(31465), AOM_ICDF(31576),
1892 AOM_ICDF(32768) },
1893 { AOM_ICDF(13633), AOM_ICDF(14885), AOM_ICDF(27873), AOM_ICDF(28088),
1894 AOM_ICDF(32768) },
1895 { AOM_ICDF(8769), AOM_ICDF(9515), AOM_ICDF(21941), AOM_ICDF(22248),
1896 AOM_ICDF(32768) },
1897 { AOM_ICDF(6209), AOM_ICDF(6594), AOM_ICDF(15598), AOM_ICDF(15950),
1898 AOM_ICDF(32768) },
1899 { AOM_ICDF(1985), AOM_ICDF(2014), AOM_ICDF(6855), AOM_ICDF(6931),
1900 AOM_ICDF(32768) } },
1901 { // Band 3
1902 { AOM_ICDF(26817), AOM_ICDF(27824), AOM_ICDF(32362), AOM_ICDF(32399),
1903 AOM_ICDF(32768) },
1904 { AOM_ICDF(21185), AOM_ICDF(22321), AOM_ICDF(31389), AOM_ICDF(31466),
1905 AOM_ICDF(32768) },
1906 { AOM_ICDF(13761), AOM_ICDF(14154), AOM_ICDF(27163), AOM_ICDF(27245),
1907 AOM_ICDF(32768) },
1908 { AOM_ICDF(8897), AOM_ICDF(9011), AOM_ICDF(20600), AOM_ICDF(20659),
1909 AOM_ICDF(32768) },
1910 { AOM_ICDF(4673), AOM_ICDF(4774), AOM_ICDF(15044), AOM_ICDF(15131),
1911 AOM_ICDF(32768) },
1912 { AOM_ICDF(193), AOM_ICDF(194), AOM_ICDF(384), AOM_ICDF(479),
1913 AOM_ICDF(32768) } },
1914 { // Band 4
1915 { AOM_ICDF(28865), AOM_ICDF(29687), AOM_ICDF(32655), AOM_ICDF(32667),
1916 AOM_ICDF(32768) },
1917 { AOM_ICDF(23233), AOM_ICDF(24218), AOM_ICDF(32080), AOM_ICDF(32118),
1918 AOM_ICDF(32768) },
1919 { AOM_ICDF(15041), AOM_ICDF(15444), AOM_ICDF(28787), AOM_ICDF(28845),
1920 AOM_ICDF(32768) },
1921 { AOM_ICDF(9921), AOM_ICDF(10248), AOM_ICDF(22818), AOM_ICDF(22944),
1922 AOM_ICDF(32768) },
1923 { AOM_ICDF(7745), AOM_ICDF(7866), AOM_ICDF(16591), AOM_ICDF(16702),
1924 AOM_ICDF(32768) },
1925 { AOM_ICDF(193), AOM_ICDF(194), AOM_ICDF(384), AOM_ICDF(479),
1926 AOM_ICDF(32768) } },
1927 { // Band 5
1928 { AOM_ICDF(31169), AOM_ICDF(31559), AOM_ICDF(32741), AOM_ICDF(32744),
1929 AOM_ICDF(32768) },
1930 { AOM_ICDF(24769), AOM_ICDF(25583), AOM_ICDF(32347), AOM_ICDF(32370),
1931 AOM_ICDF(32768) },
1932 { AOM_ICDF(15937), AOM_ICDF(16169), AOM_ICDF(29120), AOM_ICDF(29152),
1933 AOM_ICDF(32768) },
1934 { AOM_ICDF(7489), AOM_ICDF(7578), AOM_ICDF(22647), AOM_ICDF(22677),
1935 AOM_ICDF(32768) },
1936 { AOM_ICDF(7617), AOM_ICDF(7689), AOM_ICDF(19849), AOM_ICDF(19887),
1937 AOM_ICDF(32768) },
1938 { AOM_ICDF(2113), AOM_ICDF(2183), AOM_ICDF(7202), AOM_ICDF(7377),
1939 AOM_ICDF(32768) } } } },
1940 { // UV plane
1941 { // Inter
1942 { // Band 0
1943 { AOM_ICDF(23232), AOM_ICDF(24301), AOM_ICDF(30231), AOM_ICDF(31582),
1944 AOM_ICDF(32091), AOM_ICDF(32768) },
1945 { AOM_ICDF(7872), AOM_ICDF(11041), AOM_ICDF(22542), AOM_ICDF(27086),
1946 AOM_ICDF(29145), AOM_ICDF(32768) },
1947 { AOM_ICDF(1344), AOM_ICDF(3989), AOM_ICDF(18125), AOM_ICDF(25340),
1948 AOM_ICDF(27820), AOM_ICDF(32768) } },
1949 { // Band 1
1950 { AOM_ICDF(15937), AOM_ICDF(29000), AOM_ICDF(32210), AOM_ICDF(32434),
1951 AOM_ICDF(32768) },
1952 { AOM_ICDF(12353), AOM_ICDF(26626), AOM_ICDF(31533), AOM_ICDF(31993),
1953 AOM_ICDF(32768) },
1954 { AOM_ICDF(11457), AOM_ICDF(29187), AOM_ICDF(30896), AOM_ICDF(31750),
1955 AOM_ICDF(32768) },
1956 { AOM_ICDF(5697), AOM_ICDF(21278), AOM_ICDF(28169), AOM_ICDF(29764),
1957 AOM_ICDF(32768) },
1958 { AOM_ICDF(7489), AOM_ICDF(8855), AOM_ICDF(13365), AOM_ICDF(15620),
1959 AOM_ICDF(32768) },
1960 { AOM_ICDF(4289), AOM_ICDF(4833), AOM_ICDF(8572), AOM_ICDF(10108),
1961 AOM_ICDF(32768) } },
1962 { // Band 2
1963 { AOM_ICDF(25025), AOM_ICDF(30783), AOM_ICDF(32603), AOM_ICDF(32666),
1964 AOM_ICDF(32768) },
1965 { AOM_ICDF(24385), AOM_ICDF(29586), AOM_ICDF(31803), AOM_ICDF(32142),
1966 AOM_ICDF(32768) },
1967 { AOM_ICDF(22337), AOM_ICDF(23002), AOM_ICDF(27573), AOM_ICDF(27903),
1968 AOM_ICDF(32768) },
1969 { AOM_ICDF(10945), AOM_ICDF(12336), AOM_ICDF(21900), AOM_ICDF(22590),
1970 AOM_ICDF(32768) },
1971 { AOM_ICDF(8257), AOM_ICDF(8830), AOM_ICDF(19986), AOM_ICDF(20298),
1972 AOM_ICDF(32768) },
1973 { AOM_ICDF(10945), AOM_ICDF(10990), AOM_ICDF(18660), AOM_ICDF(18701),
1974 AOM_ICDF(32768) } },
1975 { // Band 3
1976 { AOM_ICDF(29761), AOM_ICDF(31473), AOM_ICDF(32693), AOM_ICDF(32715),
1977 AOM_ICDF(32768) },
1978 { AOM_ICDF(20417), AOM_ICDF(24512), AOM_ICDF(31394), AOM_ICDF(31650),
1979 AOM_ICDF(32768) },
1980 { AOM_ICDF(11713), AOM_ICDF(13283), AOM_ICDF(25819), AOM_ICDF(26206),
1981 AOM_ICDF(32768) },
1982 { AOM_ICDF(13121), AOM_ICDF(14099), AOM_ICDF(21909), AOM_ICDF(22514),
1983 AOM_ICDF(32768) },
1984 { AOM_ICDF(193), AOM_ICDF(248), AOM_ICDF(9546), AOM_ICDF(9614),
1985 AOM_ICDF(32768) },
1986 { AOM_ICDF(2497), AOM_ICDF(2524), AOM_ICDF(7050), AOM_ICDF(7125),
1987 AOM_ICDF(32768) } },
1988 { // Band 4
1989 { AOM_ICDF(30657), AOM_ICDF(31885), AOM_ICDF(32691), AOM_ICDF(32715),
1990 AOM_ICDF(32768) },
1991 { AOM_ICDF(19393), AOM_ICDF(26050), AOM_ICDF(31698), AOM_ICDF(31988),
1992 AOM_ICDF(32768) },
1993 { AOM_ICDF(15809), AOM_ICDF(15863), AOM_ICDF(24985), AOM_ICDF(25008),
1994 AOM_ICDF(32768) },
1995 { AOM_ICDF(23489), AOM_ICDF(28138), AOM_ICDF(32751), AOM_ICDF(32756),
1996 AOM_ICDF(32768) },
1997 { AOM_ICDF(16449), AOM_ICDF(16450), AOM_ICDF(16545), AOM_ICDF(16593),
1998 AOM_ICDF(32768) },
1999 { AOM_ICDF(2369), AOM_ICDF(2395), AOM_ICDF(6822), AOM_ICDF(6898),
2000 AOM_ICDF(32768) } },
2001 { // Band 5
2002 { AOM_ICDF(32705), AOM_ICDF(32744), AOM_ICDF(32766), AOM_ICDF(32767),
2003 AOM_ICDF(32768) },
2004 { AOM_ICDF(21953), AOM_ICDF(24962), AOM_ICDF(32156), AOM_ICDF(32246),
2005 AOM_ICDF(32768) },
2006 { AOM_ICDF(13121), AOM_ICDF(15358), AOM_ICDF(26284), AOM_ICDF(26835),
2007 AOM_ICDF(32768) },
2008 { AOM_ICDF(5697), AOM_ICDF(7417), AOM_ICDF(20132), AOM_ICDF(20885),
2009 AOM_ICDF(32768) },
2010 { AOM_ICDF(4417), AOM_ICDF(4939), AOM_ICDF(15104), AOM_ICDF(15535),
2011 AOM_ICDF(32768) },
2012 { AOM_ICDF(2625), AOM_ICDF(2680), AOM_ICDF(8218), AOM_ICDF(8338),
2013 AOM_ICDF(32768) } } },
2014 { // Inter
2015 { // Band 0
2016 { AOM_ICDF(25280), AOM_ICDF(25678), AOM_ICDF(32446), AOM_ICDF(32622),
2017 AOM_ICDF(32724), AOM_ICDF(32768) },
2018 { AOM_ICDF(10560), AOM_ICDF(11822), AOM_ICDF(28682), AOM_ICDF(29919),
2019 AOM_ICDF(31276), AOM_ICDF(32768) },
2020 { AOM_ICDF(3264), AOM_ICDF(5170), AOM_ICDF(21779), AOM_ICDF(24026),
2021 AOM_ICDF(27905), AOM_ICDF(32768) } },
2022 { // Band 1
2023 { AOM_ICDF(24257), AOM_ICDF(30554), AOM_ICDF(32719), AOM_ICDF(32738),
2024 AOM_ICDF(32768) },
2025 { AOM_ICDF(17217), AOM_ICDF(27413), AOM_ICDF(32617), AOM_ICDF(32667),
2026 AOM_ICDF(32768) },
2027 { AOM_ICDF(22977), AOM_ICDF(27600), AOM_ICDF(32482), AOM_ICDF(32552),
2028 AOM_ICDF(32768) },
2029 { AOM_ICDF(16833), AOM_ICDF(24360), AOM_ICDF(30746), AOM_ICDF(31293),
2030 AOM_ICDF(32768) },
2031 { AOM_ICDF(17089), AOM_ICDF(20060), AOM_ICDF(28880), AOM_ICDF(29370),
2032 AOM_ICDF(32768) },
2033 { AOM_ICDF(10945), AOM_ICDF(11009), AOM_ICDF(21900), AOM_ICDF(21932),
2034 AOM_ICDF(32768) } },
2035 { // Band 2
2036 { AOM_ICDF(27201), AOM_ICDF(30217), AOM_ICDF(32736), AOM_ICDF(32745),
2037 AOM_ICDF(32768) },
2038 { AOM_ICDF(22721), AOM_ICDF(27676), AOM_ICDF(32749), AOM_ICDF(32754),
2039 AOM_ICDF(32768) },
2040 { AOM_ICDF(5057), AOM_ICDF(12431), AOM_ICDF(25246), AOM_ICDF(26620),
2041 AOM_ICDF(32768) },
2042 { AOM_ICDF(193), AOM_ICDF(321), AOM_ICDF(22016), AOM_ICDF(22048),
2043 AOM_ICDF(32768) },
2044 { AOM_ICDF(5313), AOM_ICDF(5363), AOM_ICDF(13839), AOM_ICDF(13894),
2045 AOM_ICDF(32768) },
2046 { AOM_ICDF(2625), AOM_ICDF(2652), AOM_ICDF(7276), AOM_ICDF(7351),
2047 AOM_ICDF(32768) } },
2048 { // Band 3
2049 { AOM_ICDF(27713), AOM_ICDF(30739), AOM_ICDF(32759), AOM_ICDF(32762),
2050 AOM_ICDF(32768) },
2051 { AOM_ICDF(26177), AOM_ICDF(30430), AOM_ICDF(32756), AOM_ICDF(32760),
2052 AOM_ICDF(32768) },
2053 { AOM_ICDF(193), AOM_ICDF(384), AOM_ICDF(32706), AOM_ICDF(32707),
2054 AOM_ICDF(32768) },
2055 { AOM_ICDF(9409), AOM_ICDF(9528), AOM_ICDF(21591), AOM_ICDF(21646),
2056 AOM_ICDF(32768) },
2057 { AOM_ICDF(193), AOM_ICDF(194), AOM_ICDF(384), AOM_ICDF(479),
2058 AOM_ICDF(32768) },
2059 { AOM_ICDF(2881), AOM_ICDF(2913), AOM_ICDF(8427), AOM_ICDF(8498),
2060 AOM_ICDF(32768) } },
2061 { // Band 4
2062 { AOM_ICDF(28993), AOM_ICDF(31156), AOM_ICDF(32747), AOM_ICDF(32753),
2063 AOM_ICDF(32768) },
2064 { AOM_ICDF(25153), AOM_ICDF(28701), AOM_ICDF(32754), AOM_ICDF(32758),
2065 AOM_ICDF(32768) },
2066 { AOM_ICDF(16449), AOM_ICDF(16544), AOM_ICDF(32737), AOM_ICDF(32738),
2067 AOM_ICDF(32768) },
2068 { AOM_ICDF(193), AOM_ICDF(321), AOM_ICDF(22016), AOM_ICDF(22048),
2069 AOM_ICDF(32768) },
2070 { AOM_ICDF(193), AOM_ICDF(194), AOM_ICDF(384), AOM_ICDF(479),
2071 AOM_ICDF(32768) },
2072 { AOM_ICDF(2753), AOM_ICDF(2789), AOM_ICDF(8909), AOM_ICDF(8979),
2073 AOM_ICDF(32768) } },
2074 { // Band 5
2075 { AOM_ICDF(30785), AOM_ICDF(32088), AOM_ICDF(32765), AOM_ICDF(32766),
2076 AOM_ICDF(32768) },
2077 { AOM_ICDF(22977), AOM_ICDF(26623), AOM_ICDF(32750), AOM_ICDF(32754),
2078 AOM_ICDF(32768) },
2079 { AOM_ICDF(21953), AOM_ICDF(21954), AOM_ICDF(22017), AOM_ICDF(22049),
2080 AOM_ICDF(32768) },
2081 { AOM_ICDF(5697), AOM_ICDF(7486), AOM_ICDF(20238), AOM_ICDF(21009),
2082 AOM_ICDF(32768) },
2083 { AOM_ICDF(4929), AOM_ICDF(5579), AOM_ICDF(16402), AOM_ICDF(16866),
2084 AOM_ICDF(32768) },
2085 { AOM_ICDF(3009), AOM_ICDF(3246), AOM_ICDF(10158), AOM_ICDF(10533),
2086 AOM_ICDF(32768) } } } }
2087 };
2088
2089 /* clang-format on */
2090 #endif // !CONFIG_Q_ADAPT_PROBS
2091
build_tail_cdfs(aom_cdf_prob cdf_tail[CDF_SIZE (ENTROPY_TOKENS)],aom_cdf_prob cdf_head[CDF_SIZE (ENTROPY_TOKENS)],int band_zero)2092 static void build_tail_cdfs(aom_cdf_prob cdf_tail[CDF_SIZE(ENTROPY_TOKENS)],
2093 aom_cdf_prob cdf_head[CDF_SIZE(ENTROPY_TOKENS)],
2094 int band_zero) {
2095 int probNZ, prob1, prob_idx, i;
2096 int phead[HEAD_TOKENS + 1], sum;
2097 const int is_dc = !!band_zero;
2098 aom_cdf_prob prev_cdf;
2099 prev_cdf = 0;
2100 for (i = 0; i < HEAD_TOKENS + is_dc; ++i) {
2101 phead[i] = AOM_ICDF(cdf_head[i]) - prev_cdf;
2102 prev_cdf = AOM_ICDF(cdf_head[i]);
2103 }
2104 // Do the tail
2105 probNZ = CDF_PROB_TOP - phead[ZERO_TOKEN + is_dc] - (is_dc ? phead[0] : 0);
2106 prob1 = phead[is_dc + ONE_TOKEN_EOB] + phead[is_dc + ONE_TOKEN_NEOB];
2107 prob_idx =
2108 AOMMIN(COEFF_PROB_MODELS - 1, AOMMAX(0, ((256 * prob1) / probNZ) - 1));
2109
2110 sum = 0;
2111 for (i = 0; i < TAIL_TOKENS; ++i) {
2112 sum += av1_pareto8_tail_probs[prob_idx][i];
2113 cdf_tail[i] = AOM_ICDF(sum);
2114 }
2115 }
2116
2117 #if !CONFIG_Q_ADAPT_PROBS
2118 // FIXME. Optimize for TX_2X2 and TX_64X64.
av1_default_coef_cdfs(FRAME_CONTEXT * fc)2119 static void av1_default_coef_cdfs(FRAME_CONTEXT *fc) {
2120 #if CONFIG_CHROMA_2X2
2121 av1_copy(fc->coef_head_cdfs[TX_2X2], default_coef_head_cdf_4x4);
2122 #endif // CONFIG_CHROMA_2X2
2123 av1_copy(fc->coef_head_cdfs[TX_4X4], default_coef_head_cdf_4x4);
2124 av1_copy(fc->coef_head_cdfs[TX_8X8], default_coef_head_cdf_8x8);
2125 av1_copy(fc->coef_head_cdfs[TX_16X16], default_coef_head_cdf_16x16);
2126 av1_copy(fc->coef_head_cdfs[TX_32X32], default_coef_head_cdf_32x32);
2127 #if CONFIG_TX64X64
2128 av1_copy(fc->coef_head_cdfs[TX_64X64], default_coef_head_cdf_32x32);
2129 #endif // CONFIG_TX64X64
2130 }
2131 #endif // !CONFIG_Q_ADAPT_PROBS
2132
av1_coef_pareto_cdfs(FRAME_CONTEXT * fc)2133 void av1_coef_pareto_cdfs(FRAME_CONTEXT *fc) {
2134 /* Build the tail based on a Pareto distribution */
2135 TX_SIZE t;
2136 int i, j, k, l;
2137 for (t = 0; t < TX_SIZES; ++t)
2138 for (i = 0; i < PLANE_TYPES; ++i)
2139 for (j = 0; j < REF_TYPES; ++j)
2140 for (k = 0; k < COEF_BANDS; ++k)
2141 for (l = 0; l < BAND_COEFF_CONTEXTS(k); ++l)
2142 build_tail_cdfs(fc->coef_tail_cdfs[t][i][j][k][l],
2143 fc->coef_head_cdfs[t][i][j][k][l], k == 0);
2144 }
2145
av1_default_coef_probs(AV1_COMMON * cm)2146 void av1_default_coef_probs(AV1_COMMON *cm) {
2147 #if CONFIG_Q_ADAPT_PROBS
2148 const int index = AOMMIN(TOKEN_CDF_Q_CTXS - 1, cm->base_qindex / 64);
2149 #if CONFIG_CHROMA_2X2
2150 av1_copy(cm->fc->coef_head_cdfs[TX_2X2],
2151 (*av1_default_qctx_coef_cdfs[index])[TX_4X4]);
2152 #endif // CONFIG_CHROMA_2X2
2153 av1_copy(cm->fc->coef_head_cdfs[TX_4X4],
2154 (*av1_default_qctx_coef_cdfs[index])[TX_4X4]);
2155 av1_copy(cm->fc->coef_head_cdfs[TX_8X8],
2156 (*av1_default_qctx_coef_cdfs[index])[TX_8X8]);
2157 av1_copy(cm->fc->coef_head_cdfs[TX_16X16],
2158 (*av1_default_qctx_coef_cdfs[index])[TX_16X16]);
2159 av1_copy(cm->fc->coef_head_cdfs[TX_32X32],
2160 (*av1_default_qctx_coef_cdfs[index])[TX_32X32]);
2161 #if CONFIG_TX64X64
2162 av1_copy(cm->fc->coef_head_cdfs[TX_64X64],
2163 (*av1_default_qctx_coef_cdfs[index])[TX_32X32]);
2164 #endif // CONFIG_TX64X64
2165 #else
2166 /* Load the head tokens */
2167 av1_default_coef_cdfs(cm->fc);
2168 #endif // CONFIG_Q_ADAPT_PROBS
2169 av1_coef_pareto_cdfs(cm->fc);
2170 }
2171
2172 #if CONFIG_LV_MAP
av1_adapt_coef_probs(AV1_COMMON * cm)2173 void av1_adapt_coef_probs(AV1_COMMON *cm) {
2174 unsigned int count_sat, update_factor;
2175 if (!frame_is_intra_only(cm) && cm->last_frame_type == KEY_FRAME) {
2176 update_factor = COEF_MAX_UPDATE_FACTOR_AFTER_KEY; /* adapt quickly */
2177 count_sat = COEF_COUNT_SAT_AFTER_KEY;
2178 } else {
2179 update_factor = COEF_MAX_UPDATE_FACTOR;
2180 count_sat = COEF_COUNT_SAT;
2181 }
2182 av1_adapt_txb_probs(cm, count_sat, update_factor);
2183 }
2184 #endif // CONFIG_LV_MAP
2185
av1_average_cdf(aom_cdf_prob * cdf_ptr[],aom_cdf_prob * fc_cdf_ptr,int cdf_size,const int num_tiles)2186 static void av1_average_cdf(aom_cdf_prob *cdf_ptr[], aom_cdf_prob *fc_cdf_ptr,
2187 int cdf_size, const int num_tiles) {
2188 int i;
2189 for (i = 0; i < cdf_size;) {
2190 do {
2191 int sum = 0;
2192 int j;
2193 assert(i < cdf_size);
2194 for (j = 0; j < num_tiles; ++j) sum += AOM_ICDF(cdf_ptr[j][i]);
2195 fc_cdf_ptr[i] = AOM_ICDF(sum / num_tiles);
2196 } while (fc_cdf_ptr[i++] != AOM_ICDF(CDF_PROB_TOP));
2197 // Zero symbol counts for the next frame
2198 assert(i < cdf_size);
2199 fc_cdf_ptr[i++] = 0;
2200 // Skip trailing zeros until the start of the next CDF.
2201 for (; i < cdf_size && fc_cdf_ptr[i] == 0; ++i) {
2202 }
2203 }
2204 }
2205
2206 #define AVERAGE_TILE_CDFS(cname) \
2207 for (i = 0; i < num_tiles; ++i) \
2208 cdf_ptr[i] = (aom_cdf_prob *)&ec_ctxs[i]->cname; \
2209 fc_cdf_ptr = (aom_cdf_prob *)&fc->cname; \
2210 cdf_size = (int)sizeof(fc->cname) / sizeof(aom_cdf_prob); \
2211 av1_average_cdf(cdf_ptr, fc_cdf_ptr, cdf_size, num_tiles);
2212
av1_average_tile_coef_cdfs(FRAME_CONTEXT * fc,FRAME_CONTEXT * ec_ctxs[],aom_cdf_prob * cdf_ptr[],int num_tiles)2213 void av1_average_tile_coef_cdfs(FRAME_CONTEXT *fc, FRAME_CONTEXT *ec_ctxs[],
2214 aom_cdf_prob *cdf_ptr[], int num_tiles) {
2215 int i, cdf_size;
2216
2217 aom_cdf_prob *fc_cdf_ptr;
2218
2219 #if CONFIG_LV_MAP
2220 AVERAGE_TILE_CDFS(txb_skip_cdf)
2221 AVERAGE_TILE_CDFS(nz_map_cdf)
2222 AVERAGE_TILE_CDFS(eob_flag_cdf)
2223 AVERAGE_TILE_CDFS(dc_sign_cdf)
2224 AVERAGE_TILE_CDFS(coeff_base_cdf)
2225 AVERAGE_TILE_CDFS(coeff_lps_cdf)
2226 #if BR_NODE
2227 AVERAGE_TILE_CDFS(coeff_br_cdf)
2228 #endif
2229 #if CONFIG_CTX1D
2230 AVERAGE_TILE_CDFS(eob_mode_cdf)
2231 AVERAGE_TILE_CDFS(empty_line_cdf)
2232 AVERAGE_TILE_CDFS(hv_eob_cdf)
2233 #endif
2234 #else
2235 AVERAGE_TILE_CDFS(coef_head_cdfs)
2236 AVERAGE_TILE_CDFS(coef_tail_cdfs)
2237 #endif
2238 }
2239
av1_average_tile_mv_cdfs(FRAME_CONTEXT * fc,FRAME_CONTEXT * ec_ctxs[],aom_cdf_prob * cdf_ptr[],int num_tiles)2240 void av1_average_tile_mv_cdfs(FRAME_CONTEXT *fc, FRAME_CONTEXT *ec_ctxs[],
2241 aom_cdf_prob *cdf_ptr[], int num_tiles) {
2242 int i, k, cdf_size;
2243
2244 aom_cdf_prob *fc_cdf_ptr;
2245
2246 int j;
2247 for (j = 0; j < NMV_CONTEXTS; ++j) {
2248 AVERAGE_TILE_CDFS(nmvc[j].joint_cdf)
2249
2250 for (k = 0; k < 2; ++k) {
2251 AVERAGE_TILE_CDFS(nmvc[j].comps[k].class_cdf)
2252 AVERAGE_TILE_CDFS(nmvc[j].comps[k].class0_fp_cdf)
2253 AVERAGE_TILE_CDFS(nmvc[j].comps[k].fp_cdf)
2254 #if CONFIG_NEW_MULTISYMBOL
2255 AVERAGE_TILE_CDFS(nmvc[j].comps[k].hp_cdf)
2256 AVERAGE_TILE_CDFS(nmvc[j].comps[k].class0_hp_cdf)
2257 AVERAGE_TILE_CDFS(nmvc[j].comps[k].class0_cdf)
2258 AVERAGE_TILE_CDFS(nmvc[j].comps[k].bits_cdf)
2259 #endif
2260 }
2261 }
2262 }
2263
av1_average_tile_intra_cdfs(FRAME_CONTEXT * fc,FRAME_CONTEXT * ec_ctxs[],aom_cdf_prob * cdf_ptr[],int num_tiles)2264 void av1_average_tile_intra_cdfs(FRAME_CONTEXT *fc, FRAME_CONTEXT *ec_ctxs[],
2265 aom_cdf_prob *cdf_ptr[], int num_tiles) {
2266 int i, cdf_size;
2267
2268 aom_cdf_prob *fc_cdf_ptr;
2269
2270 AVERAGE_TILE_CDFS(tx_size_cdf)
2271
2272 AVERAGE_TILE_CDFS(intra_ext_tx_cdf)
2273 AVERAGE_TILE_CDFS(inter_ext_tx_cdf)
2274
2275 AVERAGE_TILE_CDFS(seg.tree_cdf)
2276 #if CONFIG_NEW_MULTISYMBOL
2277 AVERAGE_TILE_CDFS(seg.pred_cdf)
2278 #endif
2279 AVERAGE_TILE_CDFS(uv_mode_cdf)
2280
2281 #if CONFIG_CFL
2282 AVERAGE_TILE_CDFS(cfl_sign_cdf)
2283 AVERAGE_TILE_CDFS(cfl_alpha_cdf)
2284 #endif
2285
2286 AVERAGE_TILE_CDFS(partition_cdf)
2287
2288 AVERAGE_TILE_CDFS(delta_q_cdf)
2289 #if CONFIG_EXT_DELTA_Q
2290 AVERAGE_TILE_CDFS(delta_lf_cdf)
2291 #endif
2292 #if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
2293 AVERAGE_TILE_CDFS(intra_filter_cdf)
2294 #endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
2295
2296 #if CONFIG_NEW_MULTISYMBOL
2297 AVERAGE_TILE_CDFS(skip_cdfs)
2298 #if CONFIG_VAR_TX
2299 AVERAGE_TILE_CDFS(txfm_partition_cdf)
2300 #endif
2301 #endif // CONFIG_NEW_MULTISYMBOL
2302 AVERAGE_TILE_CDFS(palette_y_size_cdf)
2303 AVERAGE_TILE_CDFS(palette_uv_size_cdf)
2304 AVERAGE_TILE_CDFS(palette_y_color_index_cdf)
2305 AVERAGE_TILE_CDFS(palette_uv_color_index_cdf)
2306 #if CONFIG_MRC_TX
2307 AVERAGE_TILE_CDFS(mrc_mask_intra_cdf)
2308 #endif // CONFIG_MRC_TX
2309 #if CONFIG_NEW_MULTISYMBOL
2310 AVERAGE_TILE_CDFS(palette_y_mode_cdf)
2311 AVERAGE_TILE_CDFS(palette_uv_mode_cdf)
2312 #if CONFIG_RECT_TX_EXT && (CONFIG_EXT_TX || CONFIG_VAR_TX)
2313 AVERAGE_TILE_CDFS(quarter_tx_size_cdf)
2314 #endif
2315 #endif
2316 #if CONFIG_LPF_SB
2317 AVERAGE_TILE_CDFS(lpf_reuse_cdf);
2318 AVERAGE_TILE_CDFS(lpf_delta_cdf);
2319 AVERAGE_TILE_CDFS(lpf_sign_cdf);
2320 #endif // CONFIG_LPF_SB
2321 }
2322
av1_average_tile_inter_cdfs(AV1_COMMON * cm,FRAME_CONTEXT * fc,FRAME_CONTEXT * ec_ctxs[],aom_cdf_prob * cdf_ptr[],int num_tiles)2323 void av1_average_tile_inter_cdfs(AV1_COMMON *cm, FRAME_CONTEXT *fc,
2324 FRAME_CONTEXT *ec_ctxs[],
2325 aom_cdf_prob *cdf_ptr[], int num_tiles) {
2326 int i, cdf_size;
2327
2328 aom_cdf_prob *fc_cdf_ptr;
2329
2330 #if CONFIG_NEW_MULTISYMBOL
2331 AVERAGE_TILE_CDFS(comp_inter_cdf)
2332 #if CONFIG_EXT_REFS
2333 AVERAGE_TILE_CDFS(comp_ref_cdf)
2334 AVERAGE_TILE_CDFS(comp_bwdref_cdf)
2335 #endif
2336 #endif
2337
2338 #if CONFIG_NEW_MULTISYMBOL
2339 AVERAGE_TILE_CDFS(single_ref_cdf)
2340
2341 AVERAGE_TILE_CDFS(newmv_cdf)
2342 AVERAGE_TILE_CDFS(zeromv_cdf)
2343 AVERAGE_TILE_CDFS(refmv_cdf)
2344 AVERAGE_TILE_CDFS(drl_cdf)
2345 #if CONFIG_EXT_COMP_REFS
2346 AVERAGE_TILE_CDFS(uni_comp_ref_cdf)
2347 AVERAGE_TILE_CDFS(comp_ref_type_cdf)
2348 #endif
2349 #endif
2350
2351 // FIXME: cdfs not defined for super_tx
2352
2353 AVERAGE_TILE_CDFS(inter_compound_mode_cdf)
2354
2355 #if CONFIG_WEDGE || CONFIG_COMPOUND_SEGMENT
2356 AVERAGE_TILE_CDFS(compound_type_cdf)
2357 #endif // CONFIG_WEDGE || CONFIG_COMPOUND_SEGMENT
2358 #if CONFIG_COMPOUND_SINGLEREF
2359 AVERAGE_TILE_CDFS(inter_singleref_comp_mode_cdf)
2360 #endif
2361
2362 #if CONFIG_INTERINTRA
2363 #if CONFIG_NEW_MULTISYMBOL
2364 AVERAGE_TILE_CDFS(interintra_cdf)
2365 AVERAGE_TILE_CDFS(wedge_interintra_cdf)
2366 #endif
2367 AVERAGE_TILE_CDFS(interintra_mode_cdf)
2368 #endif
2369
2370 /* NB: kf_y_cdf is discarded after use, so no need
2371 for backwards update */
2372 AVERAGE_TILE_CDFS(y_mode_cdf)
2373
2374 if (cm->interp_filter == SWITCHABLE) {
2375 AVERAGE_TILE_CDFS(switchable_interp_cdf)
2376 }
2377 #if CONFIG_NEW_MULTISYMBOL
2378 AVERAGE_TILE_CDFS(intra_inter_cdf)
2379 #if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
2380 AVERAGE_TILE_CDFS(motion_mode_cdf)
2381 #if CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
2382 AVERAGE_TILE_CDFS(obmc_cdf)
2383 #endif
2384 #endif
2385 #endif
2386 #if CONFIG_MRC_TX
2387 AVERAGE_TILE_CDFS(mrc_mask_inter_cdf)
2388 #endif // CONFIG_MRC_TX
2389 #if CONFIG_LPF_SB
2390 AVERAGE_TILE_CDFS(lpf_reuse_cdf);
2391 AVERAGE_TILE_CDFS(lpf_delta_cdf);
2392 AVERAGE_TILE_CDFS(lpf_sign_cdf);
2393 #endif // CONFIG_LPF_SB
2394 }
2395
2396 #if CONFIG_PVQ
2397 // Averaging PVQ's expected values for symbol coding
av1_average_pvq_ex(int * cxt_ptr[],int * fc_cxt_ptr,int cxt_size,const int num_tiles)2398 static void av1_average_pvq_ex(int *cxt_ptr[], int *fc_cxt_ptr, int cxt_size,
2399 const int num_tiles) {
2400 int i, j;
2401 for (i = 0; i < cxt_size; ++i) {
2402 int sum = 0;
2403 for (j = 0; j < num_tiles; ++j) sum += cxt_ptr[j][i];
2404 fc_cxt_ptr[i] = sum / num_tiles;
2405 }
2406 }
2407
2408 #define AVERAGE_TILE_PVQ_EX(cname) \
2409 for (i = 0; i < num_tiles; ++i) cxt_ptr[i] = (int *)&ec_ctxs[i]->cname; \
2410 fc_cxt_ptr = (int *)&fc->cname; \
2411 cxt_size = (int)sizeof(fc->cname) / sizeof(int); \
2412 av1_average_pvq_ex(cxt_ptr, fc_cxt_ptr, cxt_size, num_tiles);
2413
av1_default_pvq_probs(AV1_COMMON * cm)2414 void av1_default_pvq_probs(AV1_COMMON *cm) {
2415 od_adapt_ctx *adapt = &cm->fc->pvq_context;
2416
2417 // Init with flat probabilities.
2418 od_adapt_ctx_reset(adapt, 0);
2419
2420 // TODO(yushin): Prepare offline cdf and context table for PVQ,
2421 // i.e. od_adapt_ctx, then load them from table,
2422 // for example od_adapt_ctx default_pvq_context.
2423 // Then do sth like this:
2424 // av1_copy(cm->fc->pvq_context, default_pvq_context);
2425 }
2426
av1_average_tile_pvq_cdfs(FRAME_CONTEXT * fc,FRAME_CONTEXT * ec_ctxs[],const int num_tiles)2427 void av1_average_tile_pvq_cdfs(FRAME_CONTEXT *fc, FRAME_CONTEXT *ec_ctxs[],
2428 const int num_tiles) {
2429 int i, j, cdf_size, cxt_size;
2430
2431 aom_cdf_prob *cdf_ptr[MAX_TILE_ROWS * MAX_TILE_COLS];
2432 aom_cdf_prob *fc_cdf_ptr;
2433 int *cxt_ptr[MAX_TILE_ROWS * MAX_TILE_COLS];
2434 int *fc_cxt_ptr;
2435
2436 AVERAGE_TILE_PVQ_EX(pvq_context.ex_dc)
2437 AVERAGE_TILE_PVQ_EX(pvq_context.ex_g)
2438
2439 for (j = 0; j < OD_NPLANES_MAX; j++) {
2440 AVERAGE_TILE_CDFS(pvq_context.model_dc[j].cdf)
2441 }
2442
2443 AVERAGE_TILE_CDFS(pvq_context.skip_cdf)
2444
2445 AVERAGE_TILE_PVQ_EX(pvq_context.pvq.pvq_codeword_ctx.pvq_adapt)
2446 AVERAGE_TILE_CDFS(pvq_context.pvq.pvq_codeword_ctx.pvq_k1_cdf)
2447 AVERAGE_TILE_CDFS(pvq_context.pvq.pvq_codeword_ctx.pvq_split_cdf)
2448
2449 for (j = 0; j < 3; j++) {
2450 AVERAGE_TILE_CDFS(pvq_context.pvq.pvq_param_model[j].cdf)
2451 }
2452
2453 AVERAGE_TILE_PVQ_EX(pvq_context.pvq.pvq_ext)
2454 AVERAGE_TILE_PVQ_EX(pvq_context.pvq.pvq_exg)
2455 AVERAGE_TILE_CDFS(pvq_context.pvq.pvq_gaintheta_cdf)
2456 AVERAGE_TILE_CDFS(pvq_context.pvq.pvq_skip_dir_cdf)
2457 }
2458 #endif // CONFIG_PVQ
2459