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