1 // Copyright (c) 2018-2021, The rav1e contributors. All rights reserved
2 //
3 // This source code is subject to the terms of the BSD 2 Clause License and
4 // the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
5 // was not distributed with this source code in the LICENSE file, you can
6 // obtain it at www.aomedia.org/license/software. If the Alliance for Open
7 // Media Patent License 1.0 was not distributed with this source code in the
8 // PATENTS file, you can obtain it at www.aomedia.org/license/patent.
9 
10 #![allow(non_upper_case_globals)]
11 
12 use crate::context::*;
13 use crate::partition::*;
14 use crate::predict::*;
15 use crate::transform::*;
16 
17 pub const PALETTE_BSIZE_CTXS: usize = 7;
18 pub const PALETTE_Y_MODE_CONTEXTS: usize = 3;
19 pub const PALETTE_UV_MODE_CONTEXTS: usize = 2;
20 const PALETTE_COLOR_INDEX_CONTEXTS: usize = 5;
21 const CDFMAX: u16 = 32768;
22 const BLOCK_SIZE_GROUPS: usize = 4;
23 const RESTORE_SWITCHABLE_TYPES: usize = 3;
24 pub const TX_SIZE_CONTEXTS: usize = 3;
25 
26 // from seg_common.h
27 const MAX_SEGMENTS: usize = 8;
28 const SPATIAL_PREDICTION_PROBS: usize = 3;
29 const SEG_TEMPORAL_PRED_CTXS: usize = 3;
30 
31 // enums.h
32 const TX_SIZE_LUMA_MIN: usize = TxSize::TX_4X4 as usize;
33 const TX_SIZE_CTX_MIN: usize = TX_SIZE_LUMA_MIN + 1;
34 pub const MAX_TX_CATS: usize = TxSize::TX_SIZES - TX_SIZE_CTX_MIN;
35 pub const BIG_TX_CATS: usize = MAX_TX_CATS - 1; // All except 8x8, which has lower max depth.
36 pub const MAX_TX_DEPTH: usize = 2;
37 pub const TXFM_PARTITION_CONTEXTS: usize = 21; // (TxSize::TX_SIZES - TxSize::TX_8X8) * 6 - 3;
38 
39 // LUTS ---------------------
40 
41 pub static default_kf_y_mode_cdf: [[[u16; INTRA_MODES]; KF_MODE_CONTEXTS];
42   KF_MODE_CONTEXTS] = [
43   [
44     cdf!(
45       15588, 17027, 19338, 20218, 20682, 21110, 21825, 23244, 24189, 28165,
46       29093, 30466
47     ),
48     cdf!(
49       12016, 18066, 19516, 20303, 20719, 21444, 21888, 23032, 24434, 28658,
50       30172, 31409
51     ),
52     cdf!(
53       10052, 10771, 22296, 22788, 23055, 23239, 24133, 25620, 26160, 29336,
54       29929, 31567
55     ),
56     cdf!(
57       14091, 15406, 16442, 18808, 19136, 19546, 19998, 22096, 24746, 29585,
58       30958, 32462
59     ),
60     cdf!(
61       12122, 13265, 15603, 16501, 18609, 20033, 22391, 25583, 26437, 30261,
62       31073, 32475
63     ),
64   ],
65   [
66     cdf!(
67       10023, 19585, 20848, 21440, 21832, 22760, 23089, 24023, 25381, 29014,
68       30482, 31436
69     ),
70     cdf!(
71       5983, 24099, 24560, 24886, 25066, 25795, 25913, 26423, 27610, 29905,
72       31276, 31794
73     ),
74     cdf!(
75       7444, 12781, 20177, 20728, 21077, 21607, 22170, 23405, 24469, 27915,
76       29090, 30492
77     ),
78     cdf!(
79       8537, 14689, 15432, 17087, 17408, 18172, 18408, 19825, 24649, 29153,
80       31096, 32210
81     ),
82     cdf!(
83       7543, 14231, 15496, 16195, 17905, 20717, 21984, 24516, 26001, 29675,
84       30981, 31994
85     ),
86   ],
87   [
88     cdf!(
89       12613, 13591, 21383, 22004, 22312, 22577, 23401, 25055, 25729, 29538,
90       30305, 32077
91     ),
92     cdf!(
93       9687, 13470, 18506, 19230, 19604, 20147, 20695, 22062, 23219, 27743,
94       29211, 30907
95     ),
96     cdf!(
97       6183, 6505, 26024, 26252, 26366, 26434, 27082, 28354, 28555, 30467,
98       30794, 32086
99     ),
100     cdf!(
101       10718, 11734, 14954, 17224, 17565, 17924, 18561, 21523, 23878, 28975,
102       30287, 32252
103     ),
104     cdf!(
105       9194, 9858, 16501, 17263, 18424, 19171, 21563, 25961, 26561, 30072,
106       30737, 32463
107     ),
108   ],
109   [
110     cdf!(
111       12602, 14399, 15488, 18381, 18778, 19315, 19724, 21419, 25060, 29696,
112       30917, 32409
113     ),
114     cdf!(
115       8203, 13821, 14524, 17105, 17439, 18131, 18404, 19468, 25225, 29485,
116       31158, 32342
117     ),
118     cdf!(
119       8451, 9731, 15004, 17643, 18012, 18425, 19070, 21538, 24605, 29118,
120       30078, 32018
121     ),
122     cdf!(
123       7714, 9048, 9516, 16667, 16817, 16994, 17153, 18767, 26743, 30389,
124       31536, 32528
125     ),
126     cdf!(
127       8843, 10280, 11496, 15317, 16652, 17943, 19108, 22718, 25769, 29953,
128       30983, 32485
129     ),
130   ],
131   [
132     cdf!(
133       12578, 13671, 15979, 16834, 19075, 20913, 22989, 25449, 26219, 30214,
134       31150, 32477
135     ),
136     cdf!(
137       9563, 13626, 15080, 15892, 17756, 20863, 22207, 24236, 25380, 29653,
138       31143, 32277
139     ),
140     cdf!(
141       8356, 8901, 17616, 18256, 19350, 20106, 22598, 25947, 26466, 29900,
142       30523, 32261
143     ),
144     cdf!(
145       10835, 11815, 13124, 16042, 17018, 18039, 18947, 22753, 24615, 29489,
146       30883, 32482
147     ),
148     cdf!(
149       7618, 8288, 9859, 10509, 15386, 18657, 22903, 28776, 29180, 31355,
150       31802, 32593
151     ),
152   ],
153 ];
154 
155 pub static default_angle_delta_cdf: [[u16; 2 * MAX_ANGLE_DELTA + 1];
156   DIRECTIONAL_MODES] = [
157   cdf!(2180, 5032, 7567, 22776, 26989, 30217),
158   cdf!(2301, 5608, 8801, 23487, 26974, 30330),
159   cdf!(3780, 11018, 13699, 19354, 23083, 31286),
160   cdf!(4581, 11226, 15147, 17138, 21834, 28397),
161   cdf!(1737, 10927, 14509, 19588, 22745, 28823),
162   cdf!(2664, 10176, 12485, 17650, 21600, 30495),
163   cdf!(2240, 11096, 15453, 20341, 22561, 28917),
164   cdf!(3605, 10428, 12459, 17676, 21244, 30655),
165 ];
166 
167 pub static default_if_y_mode_cdf: [[u16; INTRA_MODES]; BLOCK_SIZE_GROUPS] = [
168   cdf!(
169     22801, 23489, 24293, 24756, 25601, 26123, 26606, 27418, 27945, 29228,
170     29685, 30349
171   ),
172   cdf!(
173     18673, 19845, 22631, 23318, 23950, 24649, 25527, 27364, 28152, 29701,
174     29984, 30852
175   ),
176   cdf!(
177     19770, 20979, 23396, 23939, 24241, 24654, 25136, 27073, 27830, 29360,
178     29730, 30659
179   ),
180   cdf!(
181     20155, 21301, 22838, 23178, 23261, 23533, 23703, 24804, 25352, 26575,
182     27016, 28049
183   ),
184 ];
185 
186 pub static default_uv_mode_cdf: [[u16; INTRA_MODES]; INTRA_MODES] = [
187   cdf!(
188     22631, 24152, 25378, 25661, 25986, 26520, 27055, 27923, 28244, 30059,
189     30941, 31961
190   ),
191   cdf!(
192     9513, 26881, 26973, 27046, 27118, 27664, 27739, 27824, 28359, 29505,
193     29800, 31796
194   ),
195   cdf!(
196     9845, 9915, 28663, 28704, 28757, 28780, 29198, 29822, 29854, 30764, 31777,
197     32029
198   ),
199   cdf!(
200     13639, 13897, 14171, 25331, 25606, 25727, 25953, 27148, 28577, 30612,
201     31355, 32493
202   ),
203   cdf!(
204     9764, 9835, 9930, 9954, 25386, 27053, 27958, 28148, 28243, 31101, 31744,
205     32363
206   ),
207   cdf!(
208     11825, 13589, 13677, 13720, 15048, 29213, 29301, 29458, 29711, 31161,
209     31441, 32550
210   ),
211   cdf!(
212     14175, 14399, 16608, 16821, 17718, 17775, 28551, 30200, 30245, 31837,
213     32342, 32667
214   ),
215   cdf!(
216     12885, 13038, 14978, 15590, 15673, 15748, 16176, 29128, 29267, 30643,
217     31961, 32461
218   ),
219   cdf!(
220     12026, 13661, 13874, 15305, 15490, 15726, 15995, 16273, 28443, 30388,
221     30767, 32416
222   ),
223   cdf!(
224     19052, 19840, 20579, 20916, 21150, 21467, 21885, 22719, 23174, 28861,
225     30379, 32175
226   ),
227   cdf!(
228     18627, 19649, 20974, 21219, 21492, 21816, 22199, 23119, 23527, 27053,
229     31397, 32148
230   ),
231   cdf!(
232     17026, 19004, 19997, 20339, 20586, 21103, 21349, 21907, 22482, 25896,
233     26541, 31819
234   ),
235   cdf!(
236     12124, 13759, 14959, 14992, 15007, 15051, 15078, 15166, 15255, 15753,
237     16039, 16606
238   ),
239 ];
240 
241 pub static default_uv_mode_cfl_cdf: [[u16; UV_INTRA_MODES]; INTRA_MODES] = [
242   cdf!(
243     10407, 11208, 12900, 13181, 13823, 14175, 14899, 15656, 15986, 20086,
244     20995, 22455, 24212
245   ),
246   cdf!(
247     4532, 19780, 20057, 20215, 20428, 21071, 21199, 21451, 22099, 24228,
248     24693, 27032, 29472
249   ),
250   cdf!(
251     5273, 5379, 20177, 20270, 20385, 20439, 20949, 21695, 21774, 23138, 24256,
252     24703, 26679
253   ),
254   cdf!(
255     6740, 7167, 7662, 14152, 14536, 14785, 15034, 16741, 18371, 21520, 22206,
256     23389, 24182
257   ),
258   cdf!(
259     4987, 5368, 5928, 6068, 19114, 20315, 21857, 22253, 22411, 24911, 25380,
260     26027, 26376
261   ),
262   cdf!(
263     5370, 6889, 7247, 7393, 9498, 21114, 21402, 21753, 21981, 24780, 25386,
264     26517, 27176
265   ),
266   cdf!(
267     4816, 4961, 7204, 7326, 8765, 8930, 20169, 20682, 20803, 23188, 23763,
268     24455, 24940
269   ),
270   cdf!(
271     6608, 6740, 8529, 9049, 9257, 9356, 9735, 18827, 19059, 22336, 23204,
272     23964, 24793
273   ),
274   cdf!(
275     5998, 7419, 7781, 8933, 9255, 9549, 9753, 10417, 18898, 22494, 23139,
276     24764, 25989
277   ),
278   cdf!(
279     10660, 11298, 12550, 12957, 13322, 13624, 14040, 15004, 15534, 20714,
280     21789, 23443, 24861
281   ),
282   cdf!(
283     10522, 11530, 12552, 12963, 13378, 13779, 14245, 15235, 15902, 20102,
284     22696, 23774, 25838
285   ),
286   cdf!(
287     10099, 10691, 12639, 13049, 13386, 13665, 14125, 15163, 15636, 19676,
288     20474, 23519, 25208
289   ),
290   cdf!(
291     3144, 5087, 7382, 7504, 7593, 7690, 7801, 8064, 8232, 9248, 9875, 10521,
292     29048
293   ),
294 ];
295 
296 pub const default_partition_w8_cdf: [[u16; 4]; PARTITION_TYPES] = [
297   cdf!(19132, 25510, 30392),
298   cdf!(13928, 19855, 28540),
299   cdf!(12522, 23679, 28629),
300   cdf!(9896, 18783, 25853),
301 ];
302 
303 pub const default_partition_cdf: [[u16; EXT_PARTITION_TYPES];
304   3 * PARTITION_TYPES] = [
305   cdf!(15597, 20929, 24571, 26706, 27664, 28821, 29601, 30571, 31902),
306   cdf!(7925, 11043, 16785, 22470, 23971, 25043, 26651, 28701, 29834),
307   cdf!(5414, 13269, 15111, 20488, 22360, 24500, 25537, 26336, 32117),
308   cdf!(2662, 6362, 8614, 20860, 23053, 24778, 26436, 27829, 31171),
309   cdf!(18462, 20920, 23124, 27647, 28227, 29049, 29519, 30178, 31544),
310   cdf!(7689, 9060, 12056, 24992, 25660, 26182, 26951, 28041, 29052),
311   cdf!(6015, 9009, 10062, 24544, 25409, 26545, 27071, 27526, 32047),
312   cdf!(1394, 2208, 2796, 28614, 29061, 29466, 29840, 30185, 31899),
313   cdf!(20137, 21547, 23078, 29566, 29837, 30261, 30524, 30892, 31724),
314   cdf!(6732, 7490, 9497, 27944, 28250, 28515, 28969, 29630, 30104),
315   cdf!(5945, 7663, 8348, 28683, 29117, 29749, 30064, 30298, 32238),
316   cdf!(870, 1212, 1487, 31198, 31394, 31574, 31743, 31881, 32332),
317 ];
318 
319 pub const default_partition_w128_cdf: [[u16; 8]; PARTITION_TYPES] = [
320   cdf!(27899, 28219, 28529, 32484, 32539, 32619, 32639),
321   cdf!(6607, 6990, 8268, 32060, 32219, 32338, 32371),
322   cdf!(5429, 6676, 7122, 32027, 32227, 32531, 32582),
323   cdf!(711, 966, 1172, 32448, 32538, 32617, 32664),
324 ];
325 
326 pub static default_intra_tx_1_cdf: [[[u16; 7]; INTRA_MODES];
327   TX_SIZE_SQR_CONTEXTS] = [
328   [
329     cdf!(1535, 8035, 9461, 12751, 23467, 27825),
330     cdf!(564, 3335, 9709, 10870, 18143, 28094),
331     cdf!(672, 3247, 3676, 11982, 19415, 23127),
332     cdf!(5279, 13885, 15487, 18044, 23527, 30252),
333     cdf!(4423, 6074, 7985, 10416, 25693, 29298),
334     cdf!(1486, 4241, 9460, 10662, 16456, 27694),
335     cdf!(439, 2838, 3522, 6737, 18058, 23754),
336     cdf!(1190, 4233, 4855, 11670, 20281, 24377),
337     cdf!(1045, 4312, 8647, 10159, 18644, 29335),
338     cdf!(202, 3734, 4747, 7298, 17127, 24016),
339     cdf!(447, 4312, 6819, 8884, 16010, 23858),
340     cdf!(277, 4369, 5255, 8905, 16465, 22271),
341     cdf!(3409, 5436, 10599, 15599, 19687, 24040),
342   ],
343   [
344     cdf!(1870, 13742, 14530, 16498, 23770, 27698),
345     cdf!(326, 8796, 14632, 15079, 19272, 27486),
346     cdf!(484, 7576, 7712, 14443, 19159, 22591),
347     cdf!(1126, 15340, 15895, 17023, 20896, 30279),
348     cdf!(655, 4854, 5249, 5913, 22099, 27138),
349     cdf!(1299, 6458, 8885, 9290, 14851, 25497),
350     cdf!(311, 5295, 5552, 6885, 16107, 22672),
351     cdf!(883, 8059, 8270, 11258, 17289, 21549),
352     cdf!(741, 7580, 9318, 10345, 16688, 29046),
353     cdf!(110, 7406, 7915, 9195, 16041, 23329),
354     cdf!(363, 7974, 9357, 10673, 15629, 24474),
355     cdf!(153, 7647, 8112, 9936, 15307, 19996),
356     cdf!(3511, 6332, 11165, 15335, 19323, 23594),
357   ],
358   [
359     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
360     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
361     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
362     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
363     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
364     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
365     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
366     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
367     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
368     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
369     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
370     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
371     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
372   ],
373   [
374     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
375     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
376     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
377     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
378     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
379     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
380     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
381     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
382     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
383     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
384     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
385     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
386     cdf!(4681, 9362, 14043, 18725, 23406, 28087),
387   ],
388 ];
389 
390 pub static default_intra_tx_2_cdf: [[[u16; 5]; INTRA_MODES];
391   TX_SIZE_SQR_CONTEXTS] = [
392   [
393     cdf!(6554, 13107, 19661, 26214),
394     cdf!(6554, 13107, 19661, 26214),
395     cdf!(6554, 13107, 19661, 26214),
396     cdf!(6554, 13107, 19661, 26214),
397     cdf!(6554, 13107, 19661, 26214),
398     cdf!(6554, 13107, 19661, 26214),
399     cdf!(6554, 13107, 19661, 26214),
400     cdf!(6554, 13107, 19661, 26214),
401     cdf!(6554, 13107, 19661, 26214),
402     cdf!(6554, 13107, 19661, 26214),
403     cdf!(6554, 13107, 19661, 26214),
404     cdf!(6554, 13107, 19661, 26214),
405     cdf!(6554, 13107, 19661, 26214),
406   ],
407   [
408     cdf!(6554, 13107, 19661, 26214),
409     cdf!(6554, 13107, 19661, 26214),
410     cdf!(6554, 13107, 19661, 26214),
411     cdf!(6554, 13107, 19661, 26214),
412     cdf!(6554, 13107, 19661, 26214),
413     cdf!(6554, 13107, 19661, 26214),
414     cdf!(6554, 13107, 19661, 26214),
415     cdf!(6554, 13107, 19661, 26214),
416     cdf!(6554, 13107, 19661, 26214),
417     cdf!(6554, 13107, 19661, 26214),
418     cdf!(6554, 13107, 19661, 26214),
419     cdf!(6554, 13107, 19661, 26214),
420     cdf!(6554, 13107, 19661, 26214),
421   ],
422   [
423     cdf!(1127, 12814, 22772, 27483),
424     cdf!(145, 6761, 11980, 26667),
425     cdf!(362, 5887, 11678, 16725),
426     cdf!(385, 15213, 18587, 30693),
427     cdf!(25, 2914, 23134, 27903),
428     cdf!(60, 4470, 11749, 23991),
429     cdf!(37, 3332, 14511, 21448),
430     cdf!(157, 6320, 13036, 17439),
431     cdf!(119, 6719, 12906, 29396),
432     cdf!(47, 5537, 12576, 21499),
433     cdf!(269, 6076, 11258, 23115),
434     cdf!(83, 5615, 12001, 17228),
435     cdf!(1968, 5556, 12023, 18547),
436   ],
437   [
438     cdf!(6554, 13107, 19661, 26214),
439     cdf!(6554, 13107, 19661, 26214),
440     cdf!(6554, 13107, 19661, 26214),
441     cdf!(6554, 13107, 19661, 26214),
442     cdf!(6554, 13107, 19661, 26214),
443     cdf!(6554, 13107, 19661, 26214),
444     cdf!(6554, 13107, 19661, 26214),
445     cdf!(6554, 13107, 19661, 26214),
446     cdf!(6554, 13107, 19661, 26214),
447     cdf!(6554, 13107, 19661, 26214),
448     cdf!(6554, 13107, 19661, 26214),
449     cdf!(6554, 13107, 19661, 26214),
450     cdf!(6554, 13107, 19661, 26214),
451   ],
452 ];
453 
454 pub static default_inter_tx_1_cdf: [[u16; TX_TYPES]; TX_SIZE_SQR_CONTEXTS] = [
455   cdf!(
456     4458, 5560, 7695, 9709, 13330, 14789, 17537, 20266, 21504, 22848, 23934,
457     25474, 27727, 28915, 30631
458   ),
459   cdf!(
460     1645, 2573, 4778, 5711, 7807, 8622, 10522, 15357, 17674, 20408, 22517,
461     25010, 27116, 28856, 30749
462   ),
463   cdf!(
464     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
465     24576, 26624, 28672, 30720
466   ),
467   cdf!(
468     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
469     24576, 26624, 28672, 30720
470   ),
471 ];
472 
473 pub static default_inter_tx_2_cdf: [[u16; 12]; TX_SIZE_SQR_CONTEXTS] = [
474   cdf!(
475     2731, 5461, 8192, 10923, 13653, 16384, 19115, 21845, 24576, 27307, 30037
476   ),
477   cdf!(
478     2731, 5461, 8192, 10923, 13653, 16384, 19115, 21845, 24576, 27307, 30037
479   ),
480   cdf!(
481     770, 2421, 5225, 12907, 15819, 18927, 21561, 24089, 26595, 28526, 30529
482   ),
483   cdf!(
484     2731, 5461, 8192, 10923, 13653, 16384, 19115, 21845, 24576, 27307, 30037
485   ),
486 ];
487 
488 pub static default_inter_tx_3_cdf: [[u16; 2]; TX_SIZE_SQR_CONTEXTS] =
489   [cdf!(16384), cdf!(4167), cdf!(1998), cdf!(748)];
490 
491 pub static default_cfl_sign_cdf: [u16; CFL_JOINT_SIGNS] =
492   cdf!(1418, 2123, 13340, 18405, 26972, 28343, 32294);
493 
494 pub static default_cfl_alpha_cdf: [[u16; CFL_ALPHABET_SIZE];
495   CFL_ALPHA_CONTEXTS] = [
496   cdf!(
497     7637, 20719, 31401, 32481, 32657, 32688, 32692, 32696, 32700, 32704,
498     32708, 32712, 32716, 32720, 32724
499   ),
500   cdf!(
501     14365, 23603, 28135, 31168, 32167, 32395, 32487, 32573, 32620, 32647,
502     32668, 32672, 32676, 32680, 32684
503   ),
504   cdf!(
505     11532, 22380, 28445, 31360, 32349, 32523, 32584, 32649, 32673, 32677,
506     32681, 32685, 32689, 32693, 32697
507   ),
508   cdf!(
509     26990, 31402, 32282, 32571, 32692, 32696, 32700, 32704, 32708, 32712,
510     32716, 32720, 32724, 32728, 32732
511   ),
512   cdf!(
513     17248, 26058, 28904, 30608, 31305, 31877, 32126, 32321, 32394, 32464,
514     32516, 32560, 32576, 32593, 32622
515   ),
516   cdf!(
517     14738, 21678, 25779, 27901, 29024, 30302, 30980, 31843, 32144, 32413,
518     32520, 32594, 32622, 32656, 32660
519   ),
520 ];
521 
522 // This does not appear to be used in the rust project currently
523 const SWITCHABLE_FILTERS: usize = 3;
524 const SWITCHABLE_FILTER_CONTEXTS: usize = (SWITCHABLE_FILTERS + 1) * 4;
525 
526 #[allow(unused)]
527 pub static default_switchable_interp_cdf: [[u16; SWITCHABLE_FILTERS];
528   SWITCHABLE_FILTER_CONTEXTS] = [
529   cdf!(31935, 32720),
530   cdf!(5568, 32719),
531   cdf!(422, 2938),
532   cdf!(28244, 32608),
533   cdf!(31206, 31953),
534   cdf!(4862, 32121),
535   cdf!(770, 1152),
536   cdf!(20889, 25637),
537   cdf!(31910, 32724),
538   cdf!(4120, 32712),
539   cdf!(305, 2247),
540   cdf!(27403, 32636),
541   cdf!(31022, 32009),
542   cdf!(2963, 32093),
543   cdf!(601, 943),
544   cdf!(14969, 21398),
545 ];
546 
547 pub static default_newmv_cdf: [[u16; 2]; NEWMV_MODE_CONTEXTS] = [
548   cdf!(24035),
549   cdf!(16630),
550   cdf!(15339),
551   cdf!(8386),
552   cdf!(12222),
553   cdf!(4676),
554   [0; 2],
555 ];
556 
557 pub static default_zeromv_cdf: [[u16; 2]; GLOBALMV_MODE_CONTEXTS] =
558   [cdf!(2175), cdf!(1054)];
559 
560 pub static default_refmv_cdf: [[u16; 2]; REFMV_MODE_CONTEXTS] = [
561   cdf!(23974),
562   cdf!(24188),
563   cdf!(17848),
564   cdf!(28622),
565   cdf!(24312),
566   cdf!(19923),
567 ];
568 
569 pub static default_drl_cdf: [[u16; 2]; DRL_MODE_CONTEXTS] =
570   [cdf!(13104), cdf!(24560), cdf!(18945)];
571 
572 pub static default_compound_mode_cdf: [[u16; INTER_COMPOUND_MODES];
573   INTER_MODE_CONTEXTS] = [
574   cdf!(7760, 13823, 15808, 17641, 19156, 20666, 26891),
575   cdf!(10730, 19452, 21145, 22749, 24039, 25131, 28724),
576   cdf!(10664, 20221, 21588, 22906, 24295, 25387, 28436),
577   cdf!(13298, 16984, 20471, 24182, 25067, 25736, 26422),
578   cdf!(18904, 23325, 25242, 27432, 27898, 28258, 30758),
579   cdf!(10725, 17454, 20124, 22820, 24195, 25168, 26046),
580   cdf!(17125, 24273, 25814, 27492, 28214, 28704, 30592),
581   cdf!(13046, 23214, 24505, 25942, 27435, 28442, 29330),
582 ];
583 
584 #[allow(unused)]
585 pub static default_interintra_cdf: [[u16; 2]; BLOCK_SIZE_GROUPS] =
586   [cdf!(16384), cdf!(26887), cdf!(27597), cdf!(30237)];
587 
588 #[allow(unused)]
589 pub static default_interintra_mode_cdf: [[u16;
590   InterIntraMode::INTERINTRA_MODES as usize];
591   BLOCK_SIZE_GROUPS as usize] = [
592   cdf!(8192, 16384, 24576),
593   cdf!(1875, 11082, 27332),
594   cdf!(2473, 9996, 26388),
595   cdf!(4238, 11537, 25926),
596 ];
597 
598 #[allow(unused)]
599 pub static default_wedge_interintra_cdf: [[u16; 2];
600   BlockSize::BLOCK_SIZES_ALL] = [
601   cdf!(16384),
602   cdf!(16384),
603   cdf!(16384),
604   cdf!(20036),
605   cdf!(24957),
606   cdf!(26704),
607   cdf!(27530),
608   cdf!(29564),
609   cdf!(29444),
610   cdf!(26872),
611   cdf!(16384),
612   cdf!(16384),
613   cdf!(16384),
614   cdf!(16384),
615   cdf!(16384),
616   cdf!(16384),
617   cdf!(16384),
618   cdf!(16384),
619   cdf!(16384),
620   cdf!(16384),
621   cdf!(16384),
622   cdf!(16384),
623 ];
624 
625 #[allow(unused)]
626 pub static default_compound_type_cdf: [[u16;
627   CompoundType::COMPOUND_TYPES as usize - 1];
628   BlockSize::BLOCK_SIZES_ALL as usize] = [
629   cdf!(16384),
630   cdf!(16384),
631   cdf!(16384),
632   cdf!(23431),
633   cdf!(13171),
634   cdf!(11470),
635   cdf!(9770),
636   cdf!(9100),
637   cdf!(8233),
638   cdf!(6172),
639   cdf!(16384),
640   cdf!(16384),
641   cdf!(16384),
642   cdf!(16384),
643   cdf!(16384),
644   cdf!(16384),
645   cdf!(16384),
646   cdf!(16384),
647   cdf!(11820),
648   cdf!(7701),
649   cdf!(16384),
650   cdf!(16384),
651 ];
652 
653 #[allow(unused)]
654 pub static default_wedge_idx_cdf: [[u16; 16]; BlockSize::BLOCK_SIZES_ALL] = [
655   cdf!(
656     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
657     24576, 26624, 28672, 30720
658   ),
659   cdf!(
660     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
661     24576, 26624, 28672, 30720
662   ),
663   cdf!(
664     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
665     24576, 26624, 28672, 30720
666   ),
667   cdf!(
668     2438, 4440, 6599, 8663, 11005, 12874, 15751, 18094, 20359, 22362, 24127,
669     25702, 27752, 29450, 31171
670   ),
671   cdf!(
672     806, 3266, 6005, 6738, 7218, 7367, 7771, 14588, 16323, 17367, 18452,
673     19422, 22839, 26127, 29629
674   ),
675   cdf!(
676     2779, 3738, 4683, 7213, 7775, 8017, 8655, 14357, 17939, 21332, 24520,
677     27470, 29456, 30529, 31656
678   ),
679   cdf!(
680     1684, 3625, 5675, 7108, 9302, 11274, 14429, 17144, 19163, 20961, 22884,
681     24471, 26719, 28714, 30877
682   ),
683   cdf!(
684     1142, 3491, 6277, 7314, 8089, 8355, 9023, 13624, 15369, 16730, 18114,
685     19313, 22521, 26012, 29550
686   ),
687   cdf!(
688     2742, 4195, 5727, 8035, 8980, 9336, 10146, 14124, 17270, 20533, 23434,
689     25972, 27944, 29570, 31416
690   ),
691   cdf!(
692     1727, 3948, 6101, 7796, 9841, 12344, 15766, 18944, 20638, 22038, 23963,
693     25311, 26988, 28766, 31012
694   ),
695   cdf!(
696     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
697     24576, 26624, 28672, 30720
698   ),
699   cdf!(
700     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
701     24576, 26624, 28672, 30720
702   ),
703   cdf!(
704     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
705     24576, 26624, 28672, 30720
706   ),
707   cdf!(
708     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
709     24576, 26624, 28672, 30720
710   ),
711   cdf!(
712     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
713     24576, 26624, 28672, 30720
714   ),
715   cdf!(
716     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
717     24576, 26624, 28672, 30720
718   ),
719   cdf!(
720     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
721     24576, 26624, 28672, 30720
722   ),
723   cdf!(
724     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
725     24576, 26624, 28672, 30720
726   ),
727   cdf!(
728     154, 987, 1925, 2051, 2088, 2111, 2151, 23033, 23703, 24284, 24985, 25684,
729     27259, 28883, 30911
730   ),
731   cdf!(
732     1135, 1322, 1493, 2635, 2696, 2737, 2770, 21016, 22935, 25057, 27251,
733     29173, 30089, 30960, 31933
734   ),
735   cdf!(
736     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
737     24576, 26624, 28672, 30720
738   ),
739   cdf!(
740     2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528,
741     24576, 26624, 28672, 30720
742   ),
743 ];
744 
745 #[allow(unused)]
746 pub static default_motion_mode_cdf: [[u16;
747   MotionMode::MOTION_MODES as usize];
748   BlockSize::BLOCK_SIZES_ALL as usize] = [
749   cdf!(10923, 21845),
750   cdf!(10923, 21845),
751   cdf!(10923, 21845),
752   cdf!(7651, 24760),
753   cdf!(4738, 24765),
754   cdf!(5391, 25528),
755   cdf!(19419, 26810),
756   cdf!(5123, 23606),
757   cdf!(11606, 24308),
758   cdf!(26260, 29116),
759   cdf!(20360, 28062),
760   cdf!(21679, 26830),
761   cdf!(29516, 30701),
762   cdf!(28898, 30397),
763   cdf!(30878, 31335),
764   cdf!(32507, 32558),
765   cdf!(10923, 21845),
766   cdf!(10923, 21845),
767   cdf!(28799, 31390),
768   cdf!(26431, 30774),
769   cdf!(28973, 31594),
770   cdf!(29742, 31203),
771 ];
772 
773 #[allow(unused)]
774 pub static default_obmc_cdf: [[u16; 2]; BlockSize::BLOCK_SIZES_ALL] = [
775   cdf!(16384),
776   cdf!(16384),
777   cdf!(16384),
778   cdf!(10437),
779   cdf!(9371),
780   cdf!(9301),
781   cdf!(17432),
782   cdf!(14423),
783   cdf!(15142),
784   cdf!(25817),
785   cdf!(22823),
786   cdf!(22083),
787   cdf!(30128),
788   cdf!(31014),
789   cdf!(31560),
790   cdf!(32638),
791   cdf!(16384),
792   cdf!(16384),
793   cdf!(23664),
794   cdf!(20901),
795   cdf!(24008),
796   cdf!(26879),
797 ];
798 
799 pub static default_intra_inter_cdf: [[u16; 2]; INTRA_INTER_CONTEXTS] =
800   [cdf!(806), cdf!(16662), cdf!(20186), cdf!(26538)];
801 
802 pub static default_comp_mode_cdf: [[u16; 2]; COMP_INTER_CONTEXTS] =
803   [cdf!(26828), cdf!(24035), cdf!(12031), cdf!(10640), cdf!(2901)];
804 
805 pub static default_comp_ref_type_cdf: [[u16; 2]; COMP_REF_TYPE_CONTEXTS] =
806   [cdf!(1198), cdf!(2070), cdf!(9166), cdf!(7499), cdf!(22475)];
807 
808 #[allow(unused)]
809 pub static default_uni_comp_ref_cdf: [[[u16; 2]; UNIDIR_COMP_REFS - 1];
810   UNI_COMP_REF_CONTEXTS] = [
811   [cdf!(5284), cdf!(3865), cdf!(3128)],
812   [cdf!(23152), cdf!(14173), cdf!(15270)],
813   [cdf!(31774), cdf!(25120), cdf!(26710)],
814 ];
815 
816 pub static default_single_ref_cdf: [[[u16; 2]; SINGLE_REFS - 1];
817   REF_CONTEXTS] = [
818   [cdf!(4897), cdf!(1555), cdf!(4236), cdf!(8650), cdf!(904), cdf!(1444)],
819   [
820     cdf!(16973),
821     cdf!(16751),
822     cdf!(19647),
823     cdf!(24773),
824     cdf!(11014),
825     cdf!(15087),
826   ],
827   [
828     cdf!(29744),
829     cdf!(30279),
830     cdf!(31194),
831     cdf!(31895),
832     cdf!(26875),
833     cdf!(30304),
834   ],
835 ];
836 
837 pub static default_comp_ref_cdf: [[[u16; 2]; FWD_REFS - 1]; REF_CONTEXTS] = [
838   [cdf!(4946), cdf!(9468), cdf!(1503)],
839   [cdf!(19891), cdf!(22441), cdf!(15160)],
840   [cdf!(30731), cdf!(31059), cdf!(27544)],
841 ];
842 
843 pub static default_comp_bwdref_cdf: [[[u16; 2]; BWD_REFS - 1]; REF_CONTEXTS] = [
844   [cdf!(2235), cdf!(1423)],
845   [cdf!(17182), cdf!(15175)],
846   [cdf!(30606), cdf!(30489)],
847 ];
848 
849 #[allow(unused)]
850 pub static default_palette_y_size_cdf: [[u16;
851   PaletteSize::PALETTE_SIZES as usize];
852   PALETTE_BSIZE_CTXS] = [
853   cdf!(7952, 13000, 18149, 21478, 25527, 29241),
854   cdf!(7139, 11421, 16195, 19544, 23666, 28073),
855   cdf!(7788, 12741, 17325, 20500, 24315, 28530),
856   cdf!(8271, 14064, 18246, 21564, 25071, 28533),
857   cdf!(12725, 19180, 21863, 24839, 27535, 30120),
858   cdf!(9711, 14888, 16923, 21052, 25661, 27875),
859   cdf!(14940, 20797, 21678, 24186, 27033, 28999),
860 ];
861 
862 #[allow(unused)]
863 pub static default_palette_uv_size_cdf: [[u16;
864   PaletteSize::PALETTE_SIZES as usize];
865   PALETTE_BSIZE_CTXS] = [
866   cdf!(8713, 19979, 27128, 29609, 31331, 32272),
867   cdf!(5839, 15573, 23581, 26947, 29848, 31700),
868   cdf!(4426, 11260, 17999, 21483, 25863, 29430),
869   cdf!(3228, 9464, 14993, 18089, 22523, 27420),
870   cdf!(3768, 8886, 13091, 17852, 22495, 27207),
871   cdf!(2464, 8451, 12861, 21632, 25525, 28555),
872   cdf!(1269, 5435, 10433, 18963, 21700, 25865),
873 ];
874 
875 pub static default_palette_y_mode_cdfs: [[[u16; 2]; PALETTE_Y_MODE_CONTEXTS];
876   PALETTE_BSIZE_CTXS] = [
877   [cdf!(31676), cdf!(3419), cdf!(1261)],
878   [cdf!(31912), cdf!(2859), cdf!(980)],
879   [cdf!(31823), cdf!(3400), cdf!(781)],
880   [cdf!(32030), cdf!(3561), cdf!(904)],
881   [cdf!(32309), cdf!(7337), cdf!(1462)],
882   [cdf!(32265), cdf!(4015), cdf!(1521)],
883   [cdf!(32450), cdf!(7946), cdf!(129)],
884 ];
885 
886 pub static default_palette_uv_mode_cdfs: [[u16; 2]; PALETTE_UV_MODE_CONTEXTS] =
887   [cdf!(32461), cdf!(21488)];
888 
889 #[allow(unused)]
890 pub static default_palette_y_color_index_cdf: [[[u16;
891   PaletteColor::PALETTE_COLORS as usize];
892   PALETTE_COLOR_INDEX_CONTEXTS];
893   PaletteSize::PALETTE_SIZES as usize] = [
894   [
895     cdf!(28710, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
896     cdf!(16384, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
897     cdf!(10553, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
898     cdf!(27036, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
899     cdf!(31603, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
900   ],
901   [
902     cdf!(27877, 30490, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
903     cdf!(11532, 25697, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
904     cdf!(6544, 30234, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
905     cdf!(23018, 28072, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
906     cdf!(31915, 32385, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
907   ],
908   [
909     cdf!(25572, 28046, 30045, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
910     cdf!(9478, 21590, 27256, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
911     cdf!(7248, 26837, 29824, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
912     cdf!(19167, 24486, 28349, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
913     cdf!(31400, 31825, 32250, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
914   ],
915   [
916     cdf!(24779, 26955, 28576, 30282, CDFMAX, CDFMAX, CDFMAX),
917     cdf!(8669, 20364, 24073, 28093, CDFMAX, CDFMAX, CDFMAX),
918     cdf!(4255, 27565, 29377, 31067, CDFMAX, CDFMAX, CDFMAX),
919     cdf!(19864, 23674, 26716, 29530, CDFMAX, CDFMAX, CDFMAX),
920     cdf!(31646, 31893, 32147, 32426, CDFMAX, CDFMAX, CDFMAX),
921   ],
922   [
923     cdf!(23132, 25407, 26970, 28435, 30073, CDFMAX, CDFMAX),
924     cdf!(7443, 17242, 20717, 24762, 27982, CDFMAX, CDFMAX),
925     cdf!(6300, 24862, 26944, 28784, 30671, CDFMAX, CDFMAX),
926     cdf!(18916, 22895, 25267, 27435, 29652, CDFMAX, CDFMAX),
927     cdf!(31270, 31550, 31808, 32059, 32353, CDFMAX, CDFMAX),
928   ],
929   [
930     cdf!(23105, 25199, 26464, 27684, 28931, 30318, CDFMAX),
931     cdf!(6950, 15447, 18952, 22681, 25567, 28563, CDFMAX),
932     cdf!(7560, 23474, 25490, 27203, 28921, 30708, CDFMAX),
933     cdf!(18544, 22373, 24457, 26195, 28119, 30045, CDFMAX),
934     cdf!(31198, 31451, 31670, 31882, 32123, 32391, CDFMAX),
935   ],
936   [
937     cdf!(21689, 23883, 25163, 26352, 27506, 28827, 30195),
938     cdf!(6892, 15385, 17840, 21606, 24287, 26753, 29204),
939     cdf!(5651, 23182, 25042, 26518, 27982, 29392, 30900),
940     cdf!(19349, 22578, 24418, 25994, 27524, 29031, 30448),
941     cdf!(31028, 31270, 31504, 31705, 31927, 32153, 32392),
942   ],
943 ];
944 
945 #[allow(unused)]
946 pub static default_palette_uv_color_index_cdf: [[[u16;
947   PaletteColor::PALETTE_COLORS as usize];
948   PALETTE_COLOR_INDEX_CONTEXTS];
949   PaletteSize::PALETTE_SIZES as usize] = [
950   [
951     cdf!(29089, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
952     cdf!(16384, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
953     cdf!(8713, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
954     cdf!(29257, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
955     cdf!(31610, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
956   ],
957   [
958     cdf!(25257, 29145, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
959     cdf!(12287, 27293, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
960     cdf!(7033, 27960, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
961     cdf!(20145, 25405, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
962     cdf!(30608, 31639, CDFMAX, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
963   ],
964   [
965     cdf!(24210, 27175, 29903, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
966     cdf!(9888, 22386, 27214, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
967     cdf!(5901, 26053, 29293, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
968     cdf!(18318, 22152, 28333, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
969     cdf!(30459, 31136, 31926, CDFMAX, CDFMAX, CDFMAX, CDFMAX),
970   ],
971   [
972     cdf!(22980, 25479, 27781, 29986, CDFMAX, CDFMAX, CDFMAX),
973     cdf!(8413, 21408, 24859, 28874, CDFMAX, CDFMAX, CDFMAX),
974     cdf!(2257, 29449, 30594, 31598, CDFMAX, CDFMAX, CDFMAX),
975     cdf!(19189, 21202, 25915, 28620, CDFMAX, CDFMAX, CDFMAX),
976     cdf!(31844, 32044, 32281, 32518, CDFMAX, CDFMAX, CDFMAX),
977   ],
978   [
979     cdf!(22217, 24567, 26637, 28683, 30548, CDFMAX, CDFMAX),
980     cdf!(7307, 16406, 19636, 24632, 28424, CDFMAX, CDFMAX),
981     cdf!(4441, 25064, 26879, 28942, 30919, CDFMAX, CDFMAX),
982     cdf!(17210, 20528, 23319, 26750, 29582, CDFMAX, CDFMAX),
983     cdf!(30674, 30953, 31396, 31735, 32207, CDFMAX, CDFMAX),
984   ],
985   [
986     cdf!(21239, 23168, 25044, 26962, 28705, 30506, CDFMAX),
987     cdf!(6545, 15012, 18004, 21817, 25503, 28701, CDFMAX),
988     cdf!(3448, 26295, 27437, 28704, 30126, 31442, CDFMAX),
989     cdf!(15889, 18323, 21704, 24698, 26976, 29690, CDFMAX),
990     cdf!(30988, 31204, 31479, 31734, 31983, 32325, CDFMAX),
991   ],
992   [
993     cdf!(21442, 23288, 24758, 26246, 27649, 28980, 30563),
994     cdf!(5863, 14933, 17552, 20668, 23683, 26411, 29273),
995     cdf!(3415, 25810, 26877, 27990, 29223, 30394, 31618),
996     cdf!(17965, 20084, 22232, 23974, 26274, 28402, 30390),
997     cdf!(31190, 31329, 31516, 31679, 31825, 32026, 32322),
998   ],
999 ];
1000 
1001 pub static default_txfm_partition_cdf: [[u16; 2]; TXFM_PARTITION_CONTEXTS] = [
1002   cdf!(28581),
1003   cdf!(23846),
1004   cdf!(20847),
1005   cdf!(24315),
1006   cdf!(18196),
1007   cdf!(12133),
1008   cdf!(18791),
1009   cdf!(10887),
1010   cdf!(11005),
1011   cdf!(27179),
1012   cdf!(20004),
1013   cdf!(11281),
1014   cdf!(26549),
1015   cdf!(19308),
1016   cdf!(14224),
1017   cdf!(28015),
1018   cdf!(21546),
1019   cdf!(14400),
1020   cdf!(28165),
1021   cdf!(22401),
1022   cdf!(16088),
1023 ];
1024 
1025 pub static default_skip_cdfs: [[u16; 2]; SKIP_CONTEXTS] =
1026   [cdf!(31671), cdf!(16515), cdf!(4576)];
1027 
1028 #[allow(unused)]
1029 pub static default_skip_mode_cdfs: [[u16; 2]; SKIP_MODE_CONTEXTS] =
1030   [cdf!(32621), cdf!(20708), cdf!(8127)];
1031 
1032 #[allow(unused)]
1033 pub static default_compound_idx_cdfs: [[u16; 2]; COMP_INDEX_CONTEXTS] =
1034   [cdf!(18244), cdf!(12865), cdf!(7053), cdf!(13259), cdf!(9334), cdf!(4644)];
1035 
1036 #[allow(unused)]
1037 pub static default_comp_group_idx_cdfs: [[u16; 2]; COMP_GROUP_IDX_CONTEXTS] = [
1038   cdf!(26607),
1039   cdf!(22891),
1040   cdf!(18840),
1041   cdf!(24594),
1042   cdf!(19934),
1043   cdf!(22674),
1044 ];
1045 
1046 #[allow(unused)]
1047 pub static default_intrabc_cdf: [u16; 2] = cdf!(30531);
1048 
1049 #[allow(unused)]
1050 pub static default_filter_intra_mode_cdf: [u16;
1051   FilterIntraMode::FILTER_INTRA_MODES as usize] =
1052   cdf!(8949, 12776, 17211, 29558);
1053 
1054 pub static default_filter_intra_cdfs: [[u16; 2]; BlockSize::BLOCK_SIZES_ALL] = [
1055   cdf!(4621),
1056   cdf!(6743),
1057   cdf!(5893),
1058   cdf!(7866),
1059   cdf!(12551),
1060   cdf!(9394),
1061   cdf!(12408),
1062   cdf!(14301),
1063   cdf!(12756),
1064   cdf!(22343),
1065   cdf!(16384),
1066   cdf!(16384),
1067   cdf!(16384),
1068   cdf!(16384),
1069   cdf!(16384),
1070   cdf!(16384),
1071   cdf!(12770),
1072   cdf!(10368),
1073   cdf!(20229),
1074   cdf!(18101),
1075   cdf!(16384),
1076   cdf!(16384),
1077 ];
1078 
1079 pub static default_switchable_restore_cdf: [u16; RESTORE_SWITCHABLE_TYPES] =
1080   cdf!(9413, 22581);
1081 
1082 pub static default_wiener_restore_cdf: [u16; 2] = cdf!(11570);
1083 
1084 pub static default_sgrproj_restore_cdf: [u16; 2] = cdf!(16855);
1085 
1086 #[allow(unused)]
1087 pub static default_delta_q_cdf: [u16; DELTA_Q_PROBS + 1] =
1088   cdf!(28160, 32120, 32677);
1089 
1090 pub static default_delta_lf_multi_cdf: [[u16; DELTA_LF_PROBS + 1];
1091   FRAME_LF_COUNT] = [
1092   cdf!(28160, 32120, 32677),
1093   cdf!(28160, 32120, 32677),
1094   cdf!(28160, 32120, 32677),
1095   cdf!(28160, 32120, 32677),
1096 ];
1097 
1098 pub static default_delta_lf_cdf: [u16; DELTA_LF_PROBS + 1] =
1099   cdf!(28160, 32120, 32677);
1100 
1101 // FIXME(someone) need real defaults here
1102 #[allow(unused)]
1103 pub static default_seg_tree_cdf: [u16; MAX_SEGMENTS] =
1104   cdf!(4096, 8192, 12288, 16384, 20480, 24576, 28672);
1105 
1106 #[allow(unused)]
1107 pub static default_segment_pred_cdf: [[u16; 2]; SEG_TEMPORAL_PRED_CTXS] =
1108   [cdf!(128 * 128), cdf!(128 * 128), cdf!(128 * 128)];
1109 
1110 pub static default_spatial_pred_seg_tree_cdf: [[u16; MAX_SEGMENTS];
1111   SPATIAL_PREDICTION_PROBS] = [
1112   cdf!(5622, 7893, 16093, 18233, 27809, 28373, 32533),
1113   cdf!(14274, 18230, 22557, 24935, 29980, 30851, 32344),
1114   cdf!(27527, 28487, 28723, 28890, 32397, 32647, 32679),
1115 ];
1116 
1117 pub static default_tx_size_8x8_cdf: [[u16; MAX_TX_DEPTH]; TX_SIZE_CONTEXTS] =
1118   [cdf!(19968), cdf!(19968), cdf!(24320)];
1119 
1120 pub static default_tx_size_cdf: [[[u16; MAX_TX_DEPTH + 1]; TX_SIZE_CONTEXTS];
1121   BIG_TX_CATS] = [
1122   [cdf!(12272, 30172), cdf!(12272, 30172), cdf!(18677, 30848)],
1123   [cdf!(12986, 15180), cdf!(12986, 15180), cdf!(24302, 25602)],
1124   [cdf!(5782, 11475), cdf!(5782, 11475), cdf!(16803, 22759)],
1125 ];
1126