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