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