blob: ac1a41834244c643512e0471943f4bf0ad3c49c4 [file] [log] [blame]
Yaowu Xuc27fc142016-08-22 16:08:15 -07001/*
Yaowu Xu2ab7ff02016-09-02 12:04:54 -07002 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
Yaowu Xuc27fc142016-08-22 16:08:15 -07003 *
Yaowu Xu2ab7ff02016-09-02 12:04:54 -07004 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
Yaowu Xuc27fc142016-08-22 16:08:15 -070010 */
11
Yaowu Xuf883b422016-08-30 14:01:10 -070012#include "aom_mem/aom_mem.h"
Yaowu Xuc27fc142016-08-22 16:08:15 -070013
14#include "av1/common/reconinter.h"
Angie Chianged8cd9a2016-10-21 16:44:47 -070015#include "av1/common/scan.h"
Yaowu Xuc27fc142016-08-22 16:08:15 -070016#include "av1/common/onyxc_int.h"
17#include "av1/common/seg_common.h"
18
Angie Chiangbabf3e72017-03-20 15:32:24 -070019#if CONFIG_LV_MAP
20const aom_prob default_txb_skip[TX_SIZES][TXB_SKIP_CONTEXTS] = {
Jingning Han480ee022017-04-03 20:31:08 -070021#if CONFIG_CB4X4
22 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
23#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -070024 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
25 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
26 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
27 { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
28};
29const aom_prob default_dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS] = {
30 { 125, 102, 147 }, { 119, 101, 135 },
31};
32
33const aom_prob default_coeff_base
34 [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
Jingning Han480ee022017-04-03 20:31:08 -070035#if CONFIG_CB4X4
36 { // TX_2X2
37 {
38 { 73, 128, 131, 204, 165, 226, 169, 236, 18, 128, 51,
39 153, 97, 179, 123, 201, 145, 226, 20, 128, 59, 153,
40 107, 181, 129, 201, 142, 226, 3, 128, 19, 99, 46,
41 135, 92, 166, 129, 190, 157, 217, 128, 128 },
42
43 { 128, 128, 178, 218, 192, 236, 186, 243, 55, 128, 110,
44 183, 151, 205, 168, 221, 180, 238, 65, 128, 116, 178,
45 157, 206, 172, 222, 183, 238, 24, 128, 65, 127, 104,
46 164, 154, 195, 187, 216, 205, 230, 128, 128 },
47 },
48 {
49 { 73, 128, 131, 204, 165, 226, 169, 236, 18, 128, 51,
50 153, 97, 179, 123, 201, 145, 226, 20, 128, 59, 153,
51 107, 181, 129, 201, 142, 226, 3, 128, 19, 99, 46,
52 135, 92, 166, 129, 190, 157, 217, 128, 128 },
53
54 { 128, 128, 178, 218, 192, 236, 186, 243, 55, 128, 110,
55 183, 151, 205, 168, 221, 180, 238, 65, 128, 116, 178,
56 157, 206, 172, 222, 183, 238, 24, 128, 65, 127, 104,
57 164, 154, 195, 187, 216, 205, 230, 128, 128 },
58 } },
59#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -070060 { // TX_4X4
61 {
62 // PLANE_Y
63 { 73, 128, 131, 204, 165, 226, 169, 236, 18, 128, 51,
64 153, 97, 179, 123, 201, 145, 226, 20, 128, 59, 153,
65 107, 181, 129, 201, 142, 226, 3, 128, 19, 99, 46,
66 135, 92, 166, 129, 190, 157, 217, 128, 128 },
67
68 { 128, 128, 178, 218, 192, 236, 186, 243, 55, 128, 110,
69 183, 151, 205, 168, 221, 180, 238, 65, 128, 116, 178,
70 157, 206, 172, 222, 183, 238, 24, 128, 65, 127, 104,
71 164, 154, 195, 187, 216, 205, 230, 128, 128 },
72 },
73 {
74 // PLANE_UV
75 { 47, 128, 100, 176, 140, 207, 150, 223, 11, 128, 35,
76 133, 79, 165, 115, 186, 129, 210, 8, 128, 30, 114,
77 80, 159, 116, 187, 146, 214, 2, 128, 9, 59, 28,
78 86, 71, 131, 117, 165, 149, 188, 128, 128 },
79
80 { 83, 128, 152, 205, 168, 227, 192, 238, 42, 128, 92,
81 169, 138, 193, 165, 209, 128, 206, 36, 128, 86, 159,
82 141, 198, 181, 213, 102, 223, 18, 128, 50, 132, 90,
83 144, 141, 169, 180, 191, 128, 217, 128, 128 },
84 } },
Angie Chiangbabf3e72017-03-20 15:32:24 -070085 {
86 // TX_8X8
87 {
88 // PLANE_Y
89 { 82, 128, 143, 203, 177, 225, 186, 237, 7, 128, 37,
90 109, 78, 151, 110, 182, 139, 213, 25, 128, 51, 115,
91 86, 146, 111, 175, 125, 205, 3, 128, 12, 55, 32,
92 78, 63, 111, 96, 148, 123, 185, 146, 206 },
93
94 { 136, 128, 182, 220, 201, 236, 205, 243, 46, 128, 101,
95 164, 147, 194, 170, 218, 177, 234, 62, 128, 104, 146,
96 143, 183, 165, 207, 183, 228, 30, 128, 60, 95, 95,
97 128, 135, 163, 166, 196, 175, 219, 192, 231 },
98 },
99 {
100 // PLANE_UV
101 { 47, 128, 112, 189, 164, 202, 163, 218, 8, 128, 32,
102 110, 68, 151, 102, 179, 134, 195, 5, 128, 22, 76,
103 54, 103, 80, 146, 101, 182, 1, 128, 5, 39, 17,
104 53, 46, 93, 79, 127, 112, 161, 64, 195 },
105
106 { 90, 128, 156, 210, 183, 225, 128, 236, 39, 128, 98,
107 164, 146, 201, 209, 219, 171, 208, 32, 128, 68, 123,
108 119, 169, 154, 184, 128, 213, 15, 128, 38, 111, 83,
109 112, 120, 163, 180, 170, 154, 213, 128, 205 },
110 },
111 },
112
113 {
114 // TX_16X16
115 {
116 // PLANE_Y
117 { 96, 128, 169, 218, 208, 233, 187, 244, 10, 128, 34,
118 101, 82, 153, 113, 184, 137, 212, 6, 128, 34, 104,
119 81, 145, 109, 176, 147, 202, 1, 128, 3, 43, 15,
120 53, 43, 89, 79, 129, 108, 168, 110, 194 },
121
122 { 156, 128, 206, 232, 218, 240, 128, 251, 39, 128, 108,
123 161, 156, 202, 187, 216, 179, 234, 40, 128, 103, 152,
124 144, 185, 159, 208, 205, 227, 14, 128, 39, 84, 76,
125 110, 121, 151, 157, 187, 201, 206, 64, 216 },
126 },
127 {
128 // PLANE_UV
129 { 42, 128, 139, 211, 180, 230, 199, 238, 3, 128, 32,
130 96, 69, 145, 102, 186, 117, 212, 4, 128, 25, 72,
131 55, 111, 81, 159, 116, 198, 1, 128, 4, 22, 16,
132 34, 35, 68, 63, 116, 89, 165, 102, 199 },
133
134 { 135, 128, 193, 227, 182, 239, 128, 246, 42, 128, 115,
135 156, 146, 203, 188, 216, 128, 229, 32, 128, 82, 127,
136 120, 178, 165, 203, 213, 229, 11, 128, 32, 73, 79,
137 111, 129, 158, 162, 187, 156, 209, 85, 222 },
138 },
139 },
140
141 {
142 // TX_32X32
143 {
144 // PLANE_Y
145 { 97, 128, 163, 232, 191, 246, 219, 252, 3, 128, 41,
146 108, 91, 147, 104, 183, 118, 225, 6, 128, 45, 91,
147 83, 125, 92, 160, 99, 215, 1, 128, 11, 36, 28,
148 46, 43, 59, 57, 86, 73, 145, 91, 210 },
149
150 { 127, 128, 201, 239, 247, 248, 128, 254, 40, 128, 103,
151 152, 158, 199, 186, 225, 181, 242, 38, 128, 92, 112,
152 146, 189, 162, 217, 112, 239, 17, 128, 30, 47, 63,
153 89, 113, 146, 147, 187, 168, 217, 150, 233 },
154 },
155 {
156 // PLANE_UV
157 { 65, 128, 155, 223, 166, 235, 154, 244, 15, 128, 57,
158 154, 110, 199, 159, 224, 149, 239, 9, 128, 57, 140,
159 97, 185, 148, 218, 176, 236, 1, 128, 3, 43, 19,
160 42, 64, 98, 117, 167, 154, 199, 128, 158 },
161
162 { 130, 128, 189, 231, 171, 247, 128, 246, 63, 128, 132,
163 222, 186, 224, 199, 244, 128, 247, 55, 128, 113, 211,
164 164, 230, 225, 243, 128, 239, 7, 128, 31, 102, 106,
165 138, 147, 183, 171, 223, 171, 224, 128, 128 },
166 },
167 },
168 };
169
170const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = {
Jingning Han480ee022017-04-03 20:31:08 -0700171#if CONFIG_CB4X4
172 {
173 { 34, 103, 61, 106, 62, 160, 112, 54, 173, 121,
174 75, 157, 92, 75, 157, 129, 94, 65, 52, 37 },
175 { 52, 124, 84, 136, 107, 197, 161, 82, 183, 151,
176 109, 153, 140, 103, 152, 134, 109, 81, 69, 50 },
177 },
178#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -0700179 {
180 { 34, 103, 61, 106, 62, 160, 112, 54, 173, 121,
181 75, 157, 92, 75, 157, 129, 94, 65, 52, 37 },
182 { 52, 124, 84, 136, 107, 197, 161, 82, 183, 151,
183 109, 153, 140, 103, 152, 134, 109, 81, 69, 50 },
184 },
185 {
186 { 34, 127, 74, 124, 74, 204, 153, 76, 226, 162,
187 92, 207, 126, 91, 227, 192, 149, 108, 85, 55 },
188 { 43, 136, 115, 158, 130, 212, 187, 112, 231, 180,
189 130, 202, 164, 130, 236, 204, 168, 139, 112, 114 },
190 },
191 {
192 { 25, 117, 70, 120, 77, 215, 171, 102, 234, 156,
193 105, 235, 155, 109, 247, 220, 176, 127, 92, 72 },
194 { 24, 88, 49, 100, 62, 202, 148, 62, 237, 178,
195 102, 233, 168, 105, 244, 198, 162, 127, 103, 71 },
196 },
197 {
198 { 11, 54, 17, 69, 26, 128, 125, 56, 232, 130,
199 60, 237, 121, 66, 250, 168, 134, 114, 93, 53 },
200 { 21, 52, 32, 95, 64, 171, 152, 70, 247, 159,
201 81, 252, 177, 100, 252, 221, 192, 143, 195, 146 },
202 },
203};
Jingning Han480ee022017-04-03 20:31:08 -0700204
Angie Chiangbabf3e72017-03-20 15:32:24 -0700205const aom_prob default_eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
Jingning Han480ee022017-04-03 20:31:08 -0700206#if CONFIG_CB4X4
207 {
208 { 229, 236, 231, 222, 239, 236, 214, 201, 236, 226, 195, 134, 228,
209 210, 150, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
210 { 182, 186, 172, 176, 207, 213, 152, 122, 187, 171, 131, 65, 170,
211 134, 101, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
212 },
213#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -0700214 {
215 { 229, 236, 231, 222, 239, 236, 214, 201, 236, 226, 195, 134, 228,
216 210, 150, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
217 { 182, 186, 172, 176, 207, 213, 152, 122, 187, 171, 131, 65, 170,
218 134, 101, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
219 },
220 {
221 { 225, 234, 244, 236, 205, 242, 246, 247, 246, 234, 191, 242, 237,
222 215, 142, 224, 206, 142, 73, 128, 128, 128, 128, 128, 128 },
223 { 154, 171, 187, 175, 62, 199, 202, 206, 215, 200, 111, 197, 199,
224 174, 100, 135, 105, 104, 45, 128, 128, 128, 128, 128, 128 },
225 },
226 {
227 { 180, 213, 216, 229, 233, 232, 240, 235, 220, 178, 239, 238, 225,
228 187, 229, 214, 226, 200, 183, 141, 158, 179, 128, 128, 128 },
229 { 190, 225, 234, 248, 249, 248, 253, 251, 232, 110, 254, 252, 236,
230 57, 253, 248, 232, 85, 244, 189, 112, 64, 128, 128, 128 },
231 },
232 {
233 { 248, 224, 246, 244, 239, 245, 251, 246, 251, 255, 255, 255, 249,
234 255, 255, 255, 229, 255, 255, 255, 228, 255, 255, 247, 137 },
235 { 204, 207, 233, 215, 193, 228, 239, 221, 227, 250, 236, 207, 135,
236 236, 186, 182, 57, 209, 140, 128, 85, 184, 110, 128, 128 },
237 },
238};
Jingning Han480ee022017-04-03 20:31:08 -0700239
Angie Chiangbabf3e72017-03-20 15:32:24 -0700240const aom_prob default_coeff_lps[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS] = {
Jingning Han480ee022017-04-03 20:31:08 -0700241#if CONFIG_CB4X4
242 {
243 { 164, 128, 134, 165, 128, 137, 168, 128, 97, 136, 167, 128,
244 182, 205, 143, 172, 200, 145, 173, 193, 103, 137, 170, 191,
245 198, 214, 162, 187, 209, 162, 187, 207, 128, 156, 183, 201,
246 219, 230, 204, 210, 225, 201, 209, 225, 187, 190, 203, 214 },
247 { 106, 128, 98, 126, 128, 87, 122, 128, 54, 89, 131, 128,
248 142, 180, 123, 154, 189, 115, 149, 175, 79, 115, 157, 182,
249 175, 197, 147, 174, 199, 145, 174, 201, 89, 135, 173, 194,
250 212, 222, 206, 203, 223, 188, 201, 220, 128, 144, 202, 206 },
251 },
252#endif
Angie Chiangbabf3e72017-03-20 15:32:24 -0700253 {
254 { 164, 128, 134, 165, 128, 137, 168, 128, 97, 136, 167, 128,
255 182, 205, 143, 172, 200, 145, 173, 193, 103, 137, 170, 191,
256 198, 214, 162, 187, 209, 162, 187, 207, 128, 156, 183, 201,
257 219, 230, 204, 210, 225, 201, 209, 225, 187, 190, 203, 214 },
258 { 106, 128, 98, 126, 128, 87, 122, 128, 54, 89, 131, 128,
259 142, 180, 123, 154, 189, 115, 149, 175, 79, 115, 157, 182,
260 175, 197, 147, 174, 199, 145, 174, 201, 89, 135, 173, 194,
261 212, 222, 206, 203, 223, 188, 201, 220, 128, 144, 202, 206 },
262 },
263 {
264 { 171, 128, 123, 169, 128, 121, 165, 128, 82, 125, 168, 128,
265 191, 213, 143, 177, 199, 136, 170, 194, 95, 135, 171, 195,
266 206, 222, 166, 191, 212, 154, 184, 207, 115, 149, 180, 204,
267 223, 237, 196, 215, 231, 186, 209, 228, 158, 178, 201, 222 },
268 { 115, 128, 115, 146, 128, 91, 147, 128, 55, 93, 139, 128,
269 147, 190, 141, 176, 201, 123, 156, 173, 68, 114, 156, 195,
270 186, 205, 153, 191, 214, 141, 179, 205, 107, 132, 166, 184,
271 215, 225, 200, 212, 230, 102, 207, 222, 128, 119, 200, 212 },
272 },
273 {
274 { 185, 128, 134, 198, 128, 128, 195, 128, 58, 110, 162, 128,
275 208, 227, 154, 196, 206, 144, 188, 209, 83, 130, 168, 198,
276 219, 232, 167, 205, 222, 158, 196, 216, 107, 143, 178, 204,
277 233, 244, 202, 226, 238, 191, 217, 234, 153, 178, 200, 223 },
278 { 160, 128, 154, 197, 128, 129, 178, 128, 53, 112, 157, 128,
279 185, 214, 169, 196, 221, 134, 179, 186, 82, 131, 168, 194,
280 204, 220, 176, 209, 221, 173, 194, 209, 107, 154, 181, 203,
281 230, 241, 202, 226, 237, 185, 223, 234, 162, 187, 203, 222 },
282 },
283 {
284 { 177, 128, 165, 226, 128, 152, 219, 128, 45, 129, 188, 128,
285 198, 218, 179, 220, 228, 163, 214, 220, 72, 134, 181, 206,
286 216, 225, 177, 218, 231, 158, 213, 223, 112, 150, 185, 210,
287 245, 251, 204, 234, 247, 195, 231, 243, 163, 186, 213, 235 },
288 { 161, 128, 174, 205, 128, 146, 182, 128, 59, 125, 179, 128,
289 183, 208, 199, 220, 239, 184, 213, 217, 71, 141, 196, 217,
290 213, 219, 215, 230, 237, 171, 224, 238, 112, 173, 193, 221,
291 239, 246, 168, 243, 249, 93, 241, 247, 128, 195, 216, 233 },
292 },
293};
294#endif // CONFIG_LV_MAP
295
Urvang Joshi6be4a542016-11-03 15:24:05 -0700296#if CONFIG_ALT_INTRA
297
298const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
299 {
300 // above = dc
301 { 121, 30, 54, 128, 164, 158, 45, 41, 57, 91 }, // left = dc
302 { 91, 38, 101, 102, 124, 141, 49, 48, 45, 73 }, // left = v
303 { 66, 28, 27, 177, 225, 178, 32, 27, 52, 114 }, // left = h
304 { 106, 23, 50, 101, 134, 148, 64, 50, 49, 107 }, // left = d45
305 { 75, 24, 32, 118, 66, 143, 42, 28, 57, 74 }, // left = d135
306 { 95, 24, 40, 142, 56, 141, 72, 121, 129, 255 }, // left = d117
307 { 71, 14, 25, 126, 117, 201, 28, 21, 117, 89 }, // left = d153
308 { 85, 16, 37, 110, 163, 178, 41, 28, 48, 134 }, // left = d207
309 { 86, 25, 32, 83, 105, 133, 58, 81, 46, 95 }, // left = d63
310 { 79, 25, 38, 75, 150, 255, 30, 49, 34, 51 }, // left = smooth
311 { 68, 59, 48, 122, 193, 158, 43, 46, 46, 112 }, // left = paeth
312 },
313 {
314 // above = v
315 { 66, 21, 118, 111, 145, 107, 27, 50, 27, 54 }, // left = dc
316 { 52, 25, 167, 81, 120, 101, 34, 55, 19, 32 }, // left = v
317 { 56, 18, 72, 134, 208, 139, 31, 34, 27, 89 }, // left = h
318 { 75, 21, 94, 88, 134, 123, 49, 57, 30, 68 }, // left = d45
319 { 54, 18, 95, 96, 78, 107, 33, 49, 28, 65 }, // left = d135
320 { 61, 19, 121, 131, 58, 101, 56, 143, 120, 255 }, // left = d117
321 { 53, 13, 78, 103, 110, 147, 31, 41, 64, 77 }, // left = d153
322 { 69, 14, 78, 93, 167, 121, 31, 39, 25, 113 }, // left = d207
323 { 64, 18, 103, 79, 90, 108, 34, 73, 27, 69 }, // left = d63
324 { 52, 20, 103, 61, 161, 255, 22, 42, 16, 35 }, // left = smooth
325 { 50, 31, 124, 92, 161, 120, 50, 53, 23, 60 }, // left = paeth
326 },
327 {
328 // above = h
329 { 94, 29, 31, 158, 214, 178, 35, 31, 72, 111 }, // left = dc
330 { 72, 37, 72, 149, 184, 177, 43, 40, 53, 105 }, // left = v
331 { 53, 21, 14, 196, 242, 209, 29, 19, 55, 145 }, // left = h
332 { 93, 36, 36, 104, 176, 166, 56, 37, 49, 141 }, // left = d45
333 { 84, 32, 27, 124, 108, 143, 38, 36, 76, 134 }, // left = d135
334 { 82, 31, 47, 142, 122, 161, 83, 73, 126, 255 }, // left = d117
335 { 66, 16, 20, 133, 148, 210, 30, 17, 113, 104 }, // left = d153
336 { 76, 16, 17, 129, 207, 181, 41, 20, 46, 163 }, // left = d207
337 { 72, 38, 21, 100, 142, 171, 37, 70, 49, 111 }, // left = d63
338 { 61, 30, 27, 115, 208, 255, 27, 31, 44, 63 }, // left = smooth
339 { 53, 45, 29, 157, 222, 185, 49, 37, 55, 102 }, // left = paeth
340 },
341 {
342 // above = d45
343 { 96, 18, 37, 98, 138, 154, 68, 56, 59, 96 }, // left = dc
344 { 73, 18, 92, 81, 125, 132, 75, 64, 27, 67 }, // left = v
345 { 73, 17, 27, 128, 213, 154, 56, 44, 32, 105 }, // left = h
346 { 101, 20, 21, 75, 138, 138, 82, 56, 23, 154 }, // left = d45
347 { 71, 15, 33, 91, 70, 150, 62, 55, 38, 118 }, // left = d135
348 { 80, 19, 38, 116, 69, 122, 88, 132, 92, 255 }, // left = d117
349 { 68, 11, 22, 101, 116, 179, 52, 44, 85, 96 }, // left = d153
350 { 101, 8, 59, 77, 151, 170, 53, 41, 35, 172 }, // left = d207
351 { 82, 19, 24, 81, 172, 129, 82, 128, 43, 108 }, // left = d63
352 { 66, 18, 42, 64, 143, 255, 52, 52, 25, 83 }, // left = smooth
353 { 57, 24, 42, 85, 169, 145, 104, 71, 34, 86 }, // left = paeth
354 },
355 {
356 // above = d135
357 { 85, 15, 29, 113, 83, 176, 26, 29, 70, 110 }, // left = dc
358 { 78, 28, 49, 111, 91, 141, 30, 42, 48, 75 }, // left = v
359 { 56, 21, 16, 146, 190, 178, 23, 31, 49, 92 }, // left = h
360 { 70, 19, 20, 65, 90, 173, 97, 36, 57, 98 }, // left = d45
361 { 77, 14, 26, 110, 51, 156, 34, 35, 54, 74 }, // left = d135
362 { 78, 18, 36, 153, 47, 131, 62, 102, 155, 255 }, // left = d117
363 { 56, 11, 15, 115, 85, 196, 32, 45, 81, 96 }, // left = d153
364 { 90, 18, 24, 95, 126, 159, 34, 31, 46, 136 }, // left = d207
365 { 80, 23, 28, 90, 75, 141, 39, 50, 46, 87 }, // left = d63
366 { 63, 22, 31, 91, 110, 255, 26, 43, 51, 51 }, // left = smooth
367 { 66, 32, 31, 122, 145, 165, 40, 43, 56, 79 }, // left = paeth
368 },
369 {
370 // above = d117
371 { 81, 16, 61, 170, 74, 105, 54, 105, 113, 255 }, // left = dc
372 { 74, 20, 86, 163, 64, 97, 65, 129, 101, 255 }, // left = v
373 { 63, 15, 47, 168, 141, 176, 69, 77, 77, 255 }, // left = h
374 { 70, 17, 59, 97, 78, 114, 74, 122, 80, 255 }, // left = d45
375 { 78, 13, 50, 153, 34, 126, 75, 114, 120, 255 }, // left = d135
376 { 72, 16, 69, 159, 28, 108, 63, 134, 107, 255 }, // left = d117
377 { 66, 9, 47, 131, 79, 148, 41, 88, 105, 255 }, // left = d153
378 { 78, 12, 60, 119, 105, 133, 47, 95, 63, 255 }, // left = d207
379 { 82, 21, 58, 128, 61, 98, 64, 136, 91, 255 }, // left = d63
380 { 23, 26, 28, 96, 85, 128, 51, 64, 85, 128 }, // left = smooth
381 { 58, 27, 62, 162, 109, 151, 75, 106, 78, 255 }, // left = paeth
382 },
383 {
384 // above = d153
385 { 91, 18, 25, 121, 166, 173, 25, 25, 128, 102 }, // left = dc
386 { 80, 27, 51, 111, 141, 147, 45, 38, 70, 85 }, // left = v
387 { 53, 12, 11, 154, 197, 225, 17, 17, 74, 145 }, // left = h
388 { 93, 27, 23, 111, 143, 188, 43, 39, 69, 112 }, // left = d45
389 { 83, 15, 21, 118, 67, 178, 40, 33, 73, 92 }, // left = d135
390 { 94, 13, 31, 132, 66, 110, 61, 82, 148, 255 }, // left = d117
391 { 76, 9, 11, 96, 105, 201, 16, 13, 157, 97 }, // left = d153
392 { 70, 10, 12, 100, 172, 201, 23, 17, 53, 158 }, // left = d207
393 { 114, 25, 21, 104, 108, 163, 30, 47, 53, 111 }, // left = d63
394 { 70, 16, 21, 80, 157, 255, 25, 30, 81, 69 }, // left = smooth
395 { 87, 32, 26, 120, 191, 168, 32, 33, 70, 118 }, // left = paeth
396 },
397 {
398 // above = d207
399 { 98, 20, 39, 122, 168, 188, 38, 36, 54, 132 }, // left = dc
400 { 81, 37, 62, 97, 122, 153, 38, 43, 36, 118 }, // left = v
401 { 71, 21, 22, 154, 227, 183, 37, 31, 46, 140 }, // left = h
402 { 90, 34, 19, 93, 144, 194, 65, 47, 41, 163 }, // left = d45
403 { 78, 20, 27, 91, 93, 173, 57, 52, 49, 113 }, // left = d135
404 { 79, 25, 45, 121, 101, 147, 69, 56, 122, 255 }, // left = d117
405 { 73, 13, 19, 105, 122, 206, 40, 28, 91, 126 }, // left = d153
406 { 101, 14, 22, 87, 153, 169, 33, 25, 26, 175 }, // left = d207
407 { 81, 28, 23, 86, 115, 169, 48, 56, 41, 111 }, // left = d63
408 { 70, 24, 30, 90, 180, 255, 38, 26, 36, 82 }, // left = smooth
409 { 61, 37, 30, 94, 189, 163, 76, 50, 36, 127 }, // left = paeth
410 },
411 {
412 // above = d63
413 { 77, 13, 46, 86, 138, 117, 55, 88, 34, 68 }, // left = dc
414 { 68, 17, 80, 64, 105, 108, 66, 115, 32, 45 }, // left = v
415 { 62, 13, 37, 124, 210, 131, 46, 57, 28, 103 }, // left = h
416 { 88, 15, 45, 73, 134, 145, 73, 101, 37, 87 }, // left = d45
417 { 68, 16, 35, 78, 81, 133, 54, 71, 33, 67 }, // left = d135
418 { 71, 16, 57, 108, 61, 135, 71, 184, 113, 255 }, // left = d117
419 { 55, 10, 27, 69, 107, 158, 39, 76, 82, 95 }, // left = d153
420 { 80, 9, 38, 78, 153, 145, 50, 63, 28, 123 }, // left = d207
421 { 86, 12, 33, 49, 107, 135, 64, 134, 57, 89 }, // left = d63
422 { 56, 19, 55, 60, 163, 255, 38, 84, 22, 36 }, // left = smooth
423 { 53, 17, 60, 69, 151, 126, 73, 113, 26, 80 }, // left = paeth
424 },
425 {
426 // above = smooth
427 { 79, 16, 46, 89, 167, 255, 22, 36, 29, 42 }, // left = dc
428 { 63, 22, 88, 71, 131, 255, 26, 41, 21, 35 }, // left = v
429 { 51, 18, 28, 142, 232, 255, 26, 25, 25, 75 }, // left = h
430 { 75, 18, 43, 70, 140, 255, 37, 49, 34, 89 }, // left = d45
431 { 70, 14, 35, 87, 83, 255, 30, 36, 34, 50 }, // left = d135
432 { 23, 26, 28, 96, 85, 128, 51, 64, 85, 128 }, // left = d117
433 { 74, 12, 33, 83, 128, 255, 27, 33, 58, 68 }, // left = d153
434 { 66, 11, 30, 77, 179, 255, 21, 27, 23, 113 }, // left = d207
435 { 68, 22, 40, 65, 118, 255, 28, 61, 30, 50 }, // left = d63
436 { 60, 18, 44, 69, 141, 255, 18, 32, 22, 40 }, // left = smooth
437 { 52, 32, 54, 96, 194, 255, 33, 37, 25, 53 }, // left = paeth
438 },
439 {
440 // above = paeth
441 { 76, 47, 67, 123, 182, 150, 41, 52, 55, 97 }, // left = dc
442 { 69, 40, 125, 102, 138, 138, 42, 55, 32, 70 }, // left = v
443 { 46, 28, 27, 160, 232, 169, 34, 21, 32, 122 }, // left = h
444 { 78, 35, 41, 99, 128, 124, 49, 43, 35, 111 }, // left = d45
445 { 66, 28, 47, 100, 113, 145, 37, 40, 72, 93 }, // left = d135
446 { 77, 37, 76, 134, 124, 124, 65, 122, 88, 255 }, // left = d117
447 { 53, 23, 38, 108, 128, 204, 26, 32, 115, 114 }, // left = d153
448 { 65, 20, 29, 101, 202, 186, 29, 24, 29, 188 }, // left = d207
449 { 71, 24, 49, 81, 126, 151, 36, 65, 28, 93 }, // left = d63
450 { 54, 36, 53, 94, 193, 255, 25, 38, 20, 64 }, // left = smooth
451 { 52, 54, 60, 108, 176, 168, 47, 44, 50, 105 }, // left = paeth
452 },
453};
454
455static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
456 { 88, 16, 47, 133, 143, 150, 70, 48, 84, 122 }, // block_size < 8x8
457 { 75, 26, 51, 120, 158, 157, 44, 45, 56, 102 }, // block_size < 16x16
458 { 73, 24, 60, 115, 184, 164, 26, 36, 32, 63 }, // block_size < 32x32
459 { 96, 27, 50, 107, 221, 148, 16, 22, 14, 39 }, // block_size >= 32x32
460};
461
462static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
463 { 199, 3, 79, 179, 220, 109, 38, 50, 68, 138 }, // y = dc
464 { 17, 2, 219, 136, 131, 58, 21, 106, 23, 41 }, // y = v
465 { 26, 1, 5, 244, 253, 138, 16, 21, 68, 205 }, // y = h
466 { 183, 3, 66, 94, 195, 97, 101, 104, 41, 178 }, // y = d45
467 { 178, 2, 36, 158, 99, 175, 21, 29, 105, 77 }, // y = d135
468 { 154, 3, 65, 219, 40, 48, 45, 95, 146, 255 }, // y = d117
469 { 167, 1, 16, 160, 214, 187, 10, 10, 200, 155 }, // y = d153
470 { 154, 2, 18, 178, 238, 132, 25, 21, 34, 221 }, // y = d207
471 { 153, 4, 76, 85, 157, 90, 38, 165, 46, 104 }, // y = d63
472 { 163, 3, 68, 87, 190, 255, 19, 27, 25, 46 }, // y = smooth
473 { 185, 7, 113, 171, 203, 57, 18, 69, 49, 104 }, // y = paeth
474};
475
476#else
477
Yaowu Xuf883b422016-08-30 14:01:10 -0700478const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
479 {
480 // above = dc
481 { 137, 30, 42, 148, 151, 207, 70, 52, 91 }, // left = dc
482 { 92, 45, 102, 136, 116, 180, 74, 90, 100 }, // left = v
483 { 73, 32, 19, 187, 222, 215, 46, 34, 100 }, // left = h
484 { 91, 30, 32, 116, 121, 186, 93, 86, 94 }, // left = d45
485 { 72, 35, 36, 149, 68, 206, 68, 63, 105 }, // left = d135
486 { 73, 31, 28, 138, 57, 124, 55, 122, 151 }, // left = d117
487 { 67, 23, 21, 140, 126, 197, 40, 37, 171 }, // left = d153
488 { 86, 27, 28, 128, 154, 212, 45, 43, 53 }, // left = d207
489 { 74, 32, 27, 107, 86, 160, 63, 134, 102 }, // left = d63
490 { 59, 67, 44, 140, 161, 202, 78, 67, 119 } // left = tm
491 },
492 {
493 // above = v
494 { 63, 36, 126, 146, 123, 158, 60, 90, 96 }, // left = dc
495 { 43, 46, 168, 134, 107, 128, 69, 142, 92 }, // left = v
496 { 44, 29, 68, 159, 201, 177, 50, 57, 77 }, // left = h
497 { 58, 38, 76, 114, 97, 172, 78, 133, 92 }, // left = d45
498 { 46, 41, 76, 140, 63, 184, 69, 112, 57 }, // left = d135
499 { 38, 32, 85, 140, 46, 112, 54, 151, 133 }, // left = d117
500 { 39, 27, 61, 131, 110, 175, 44, 75, 136 }, // left = d153
501 { 52, 30, 74, 113, 130, 175, 51, 64, 58 }, // left = d207
502 { 47, 35, 80, 100, 74, 143, 64, 163, 74 }, // left = d63
503 { 36, 61, 116, 114, 128, 162, 80, 125, 82 } // left = tm
504 },
505 {
506 // above = h
507 { 82, 26, 26, 171, 208, 204, 44, 32, 105 }, // left = dc
508 { 55, 44, 68, 166, 179, 192, 57, 57, 108 }, // left = v
509 { 42, 26, 11, 199, 241, 228, 23, 15, 85 }, // left = h
510 { 68, 42, 19, 131, 160, 199, 55, 52, 83 }, // left = d45
511 { 58, 50, 25, 139, 115, 232, 39, 52, 118 }, // left = d135
512 { 50, 35, 33, 153, 104, 162, 64, 59, 131 }, // left = d117
513 { 44, 24, 16, 150, 177, 202, 33, 19, 156 }, // left = d153
514 { 55, 27, 12, 153, 203, 218, 26, 27, 49 }, // left = d207
515 { 53, 49, 21, 110, 116, 168, 59, 80, 76 }, // left = d63
516 { 38, 72, 19, 168, 203, 212, 50, 50, 107 } // left = tm
517 },
518 {
519 // above = d45
520 { 103, 26, 36, 129, 132, 201, 83, 80, 93 }, // left = dc
521 { 59, 38, 83, 112, 103, 162, 98, 136, 90 }, // left = v
522 { 62, 30, 23, 158, 200, 207, 59, 57, 50 }, // left = h
523 { 67, 30, 29, 84, 86, 191, 102, 91, 59 }, // left = d45
524 { 60, 32, 33, 112, 71, 220, 64, 89, 104 }, // left = d135
525 { 53, 26, 34, 130, 56, 149, 84, 120, 103 }, // left = d117
526 { 53, 21, 23, 133, 109, 210, 56, 77, 172 }, // left = d153
527 { 77, 19, 29, 112, 142, 228, 55, 66, 36 }, // left = d207
528 { 61, 29, 29, 93, 97, 165, 83, 175, 162 }, // left = d63
529 { 47, 47, 43, 114, 137, 181, 100, 99, 95 } // left = tm
530 },
531 {
532 // above = d135
533 { 69, 23, 29, 128, 83, 199, 46, 44, 101 }, // left = dc
534 { 53, 40, 55, 139, 69, 183, 61, 80, 110 }, // left = v
535 { 40, 29, 19, 161, 180, 207, 43, 24, 91 }, // left = h
536 { 60, 34, 19, 105, 61, 198, 53, 64, 89 }, // left = d45
537 { 52, 31, 22, 158, 40, 209, 58, 62, 89 }, // left = d135
538 { 44, 31, 29, 147, 46, 158, 56, 102, 198 }, // left = d117
539 { 35, 19, 12, 135, 87, 209, 41, 45, 167 }, // left = d153
540 { 55, 25, 21, 118, 95, 215, 38, 39, 66 }, // left = d207
541 { 51, 38, 25, 113, 58, 164, 70, 93, 97 }, // left = d63
542 { 47, 54, 34, 146, 108, 203, 72, 103, 151 } // left = tm
543 },
544 {
545 // above = d117
546 { 64, 19, 37, 156, 66, 138, 49, 95, 133 }, // left = dc
547 { 46, 27, 80, 150, 55, 124, 55, 121, 135 }, // left = v
548 { 36, 23, 27, 165, 149, 166, 54, 64, 118 }, // left = h
549 { 53, 21, 36, 131, 63, 163, 60, 109, 81 }, // left = d45
550 { 40, 26, 35, 154, 40, 185, 51, 97, 123 }, // left = d135
551 { 35, 19, 34, 179, 19, 97, 48, 129, 124 }, // left = d117
552 { 36, 20, 26, 136, 62, 164, 33, 77, 154 }, // left = d153
553 { 45, 18, 32, 130, 90, 157, 40, 79, 91 }, // left = d207
554 { 45, 26, 28, 129, 45, 129, 49, 147, 123 }, // left = d63
555 { 38, 44, 51, 136, 74, 162, 57, 97, 121 } // left = tm
556 },
557 {
558 // above = d153
559 { 75, 17, 22, 136, 138, 185, 32, 34, 166 }, // left = dc
560 { 56, 39, 58, 133, 117, 173, 48, 53, 187 }, // left = v
561 { 35, 21, 12, 161, 212, 207, 20, 23, 145 }, // left = h
562 { 56, 29, 19, 117, 109, 181, 55, 68, 112 }, // left = d45
563 { 47, 29, 17, 153, 64, 220, 59, 51, 114 }, // left = d135
564 { 46, 16, 24, 136, 76, 147, 41, 64, 172 }, // left = d117
565 { 34, 17, 11, 108, 152, 187, 13, 15, 209 }, // left = d153
566 { 51, 24, 14, 115, 133, 209, 32, 26, 104 }, // left = d207
567 { 55, 30, 18, 122, 79, 179, 44, 88, 116 }, // left = d63
568 { 37, 49, 25, 129, 168, 164, 41, 54, 148 } // left = tm
569 },
570 {
571 // above = d207
572 { 82, 22, 32, 127, 143, 213, 39, 41, 70 }, // left = dc
573 { 62, 44, 61, 123, 105, 189, 48, 57, 64 }, // left = v
574 { 47, 25, 17, 175, 222, 220, 24, 30, 86 }, // left = h
575 { 68, 36, 17, 106, 102, 206, 59, 74, 74 }, // left = d45
576 { 57, 39, 23, 151, 68, 216, 55, 63, 58 }, // left = d135
577 { 49, 30, 35, 141, 70, 168, 82, 40, 115 }, // left = d117
578 { 51, 25, 15, 136, 129, 202, 38, 35, 139 }, // left = d153
579 { 68, 26, 16, 111, 141, 215, 29, 28, 28 }, // left = d207
580 { 59, 39, 19, 114, 75, 180, 77, 104, 42 }, // left = d63
581 { 40, 61, 26, 126, 152, 206, 61, 59, 93 } // left = tm
582 },
583 {
584 // above = d63
585 { 78, 23, 39, 111, 117, 170, 74, 124, 94 }, // left = dc
586 { 48, 34, 86, 101, 92, 146, 78, 179, 134 }, // left = v
587 { 47, 22, 24, 138, 187, 178, 68, 69, 59 }, // left = h
588 { 56, 25, 33, 105, 112, 187, 95, 177, 129 }, // left = d45
589 { 48, 31, 27, 114, 63, 183, 82, 116, 56 }, // left = d135
590 { 43, 28, 37, 121, 63, 123, 61, 192, 169 }, // left = d117
591 { 42, 17, 24, 109, 97, 177, 56, 76, 122 }, // left = d153
592 { 58, 18, 28, 105, 139, 182, 70, 92, 63 }, // left = d207
593 { 46, 23, 32, 74, 86, 150, 67, 183, 88 }, // left = d63
594 { 36, 38, 48, 92, 122, 165, 88, 137, 91 } // left = tm
595 },
596 {
597 // above = tm
598 { 65, 70, 60, 155, 159, 199, 61, 60, 81 }, // left = dc
599 { 44, 78, 115, 132, 119, 173, 71, 112, 93 }, // left = v
600 { 39, 38, 21, 184, 227, 206, 42, 32, 64 }, // left = h
601 { 58, 47, 36, 124, 137, 193, 80, 82, 78 }, // left = d45
602 { 49, 50, 35, 144, 95, 205, 63, 78, 59 }, // left = d135
603 { 41, 53, 52, 148, 71, 142, 65, 128, 51 }, // left = d117
604 { 40, 36, 28, 143, 143, 202, 40, 55, 137 }, // left = d153
605 { 52, 34, 29, 129, 183, 227, 42, 35, 43 }, // left = d207
606 { 42, 44, 44, 104, 105, 164, 64, 130, 80 }, // left = d63
607 { 43, 81, 53, 140, 169, 204, 68, 84, 72 } // left = tm
608 }
609};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700610
Urvang Joshi92b90f32017-02-07 17:06:31 -0800611// Default probabilities for signaling Intra mode for Y plane -- used only for
612// inter frames. ('av1_kf_y_mode_prob' is used for intra-only frames).
613// Context used: block size group.
Yaowu Xuf883b422016-08-30 14:01:10 -0700614static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700615 { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8
616 { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16
617 { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32
618 { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32
619};
620
Urvang Joshi92b90f32017-02-07 17:06:31 -0800621// Default probabilities for signaling Intra mode for UV plane -- common for
622// both intra and inter frames.
623// Context used: Intra mode used by Y plane of the same block.
Yaowu Xuf883b422016-08-30 14:01:10 -0700624static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700625 { 120, 7, 76, 176, 208, 126, 28, 54, 103 }, // y = dc
626 { 48, 12, 154, 155, 139, 90, 34, 117, 119 }, // y = v
627 { 67, 6, 25, 204, 243, 158, 13, 21, 96 }, // y = h
628 { 97, 5, 44, 131, 176, 139, 48, 68, 97 }, // y = d45
629 { 83, 5, 42, 156, 111, 152, 26, 49, 152 }, // y = d135
630 { 80, 5, 58, 178, 74, 83, 33, 62, 145 }, // y = d117
631 { 86, 5, 32, 154, 192, 168, 14, 22, 163 }, // y = d153
632 { 85, 5, 32, 156, 216, 148, 19, 29, 73 }, // y = d207
633 { 77, 7, 64, 116, 132, 122, 37, 126, 120 }, // y = d63
634 { 101, 21, 107, 181, 192, 103, 19, 67, 125 } // y = tm
635};
636
Urvang Joshi6be4a542016-11-03 15:24:05 -0700637#endif // CONFIG_ALT_INTRA
638
Yaowu Xuc27fc142016-08-22 16:08:15 -0700639#if CONFIG_EXT_PARTITION_TYPES
Yaowu Xuf883b422016-08-30 14:01:10 -0700640static const aom_prob
Yaowu Xuc27fc142016-08-22 16:08:15 -0700641 default_partition_probs[PARTITION_CONTEXTS][EXT_PARTITION_TYPES - 1] = {
642 // 8x8 -> 4x4
643 { 199, 122, 141, 128, 128, 128, 128 }, // a/l both not split
644 { 147, 63, 159, 128, 128, 128, 128 }, // a split, l not split
645 { 148, 133, 118, 128, 128, 128, 128 }, // l split, a not split
646 { 121, 104, 114, 128, 128, 128, 128 }, // a/l both split
647 // 16x16 -> 8x8
648 { 174, 73, 87, 128, 128, 128, 128 }, // a/l both not split
649 { 92, 41, 83, 128, 128, 128, 128 }, // a split, l not split
650 { 82, 99, 50, 128, 128, 128, 128 }, // l split, a not split
651 { 53, 39, 39, 128, 128, 128, 128 }, // a/l both split
652 // 32x32 -> 16x16
653 { 177, 58, 59, 128, 128, 128, 128 }, // a/l both not split
654 { 68, 26, 63, 128, 128, 128, 128 }, // a split, l not split
655 { 52, 79, 25, 128, 128, 128, 128 }, // l split, a not split
656 { 17, 14, 12, 128, 128, 128, 128 }, // a/l both split
657 // 64x64 -> 32x32
658 { 222, 34, 30, 128, 128, 128, 128 }, // a/l both not split
659 { 72, 16, 44, 128, 128, 128, 128 }, // a split, l not split
660 { 58, 32, 12, 128, 128, 128, 128 }, // l split, a not split
661 { 10, 7, 6, 128, 128, 128, 128 }, // a/l both split
662#if CONFIG_EXT_PARTITION
663 // 128x128 -> 64x64
664 { 222, 34, 30, 128, 128, 128, 128 }, // a/l both not split
665 { 72, 16, 44, 128, 128, 128, 128 }, // a split, l not split
666 { 58, 32, 12, 128, 128, 128, 128 }, // l split, a not split
667 { 10, 7, 6, 128, 128, 128, 128 }, // a/l both split
668#endif // CONFIG_EXT_PARTITION
Alex Converse55c6bde2017-01-12 15:55:31 -0800669#if CONFIG_UNPOISON_PARTITION_CTX
670 { 0, 0, 141, 0, 0, 0, 0 }, // 8x8 -> 4x4
671 { 0, 0, 87, 0, 0, 0, 0 }, // 16x16 -> 8x8
672 { 0, 0, 59, 0, 0, 0, 0 }, // 32x32 -> 16x16
673 { 0, 0, 30, 0, 0, 0, 0 }, // 64x64 -> 32x32
674#if CONFIG_EXT_PARTITION
675 { 0, 0, 30, 0, 0, 0, 0 }, // 128x128 -> 64x64
676#endif // CONFIG_EXT_PARTITION
677 { 0, 122, 0, 0, 0, 0, 0 }, // 8x8 -> 4x4
678 { 0, 73, 0, 0, 0, 0, 0 }, // 16x16 -> 8x8
679 { 0, 58, 0, 0, 0, 0, 0 }, // 32x32 -> 16x16
680 { 0, 34, 0, 0, 0, 0, 0 }, // 64x64 -> 32x32
681#if CONFIG_EXT_PARTITION
682 { 0, 34, 0, 0, 0, 0, 0 }, // 128x128 -> 64x64
683#endif // CONFIG_EXT_PARTITION
684#endif // CONFIG_UNPOISON_PARTITION_CTX
Yaowu Xuc27fc142016-08-22 16:08:15 -0700685 };
686#else
Yaowu Xuf883b422016-08-30 14:01:10 -0700687static const aom_prob
Yaowu Xuc27fc142016-08-22 16:08:15 -0700688 default_partition_probs[PARTITION_CONTEXTS][PARTITION_TYPES - 1] = {
689 // 8x8 -> 4x4
690 { 199, 122, 141 }, // a/l both not split
691 { 147, 63, 159 }, // a split, l not split
692 { 148, 133, 118 }, // l split, a not split
693 { 121, 104, 114 }, // a/l both split
694 // 16x16 -> 8x8
695 { 174, 73, 87 }, // a/l both not split
696 { 92, 41, 83 }, // a split, l not split
697 { 82, 99, 50 }, // l split, a not split
698 { 53, 39, 39 }, // a/l both split
699 // 32x32 -> 16x16
700 { 177, 58, 59 }, // a/l both not split
701 { 68, 26, 63 }, // a split, l not split
702 { 52, 79, 25 }, // l split, a not split
703 { 17, 14, 12 }, // a/l both split
704 // 64x64 -> 32x32
705 { 222, 34, 30 }, // a/l both not split
706 { 72, 16, 44 }, // a split, l not split
707 { 58, 32, 12 }, // l split, a not split
708 { 10, 7, 6 }, // a/l both split
709#if CONFIG_EXT_PARTITION
710 // 128x128 -> 64x64
711 { 222, 34, 30 }, // a/l both not split
712 { 72, 16, 44 }, // a split, l not split
713 { 58, 32, 12 }, // l split, a not split
714 { 10, 7, 6 }, // a/l both split
715#endif // CONFIG_EXT_PARTITION
Alex Converse55c6bde2017-01-12 15:55:31 -0800716#if CONFIG_UNPOISON_PARTITION_CTX
717 { 0, 0, 141 }, // 8x8 -> 4x4
718 { 0, 0, 87 }, // 16x16 -> 8x8
719 { 0, 0, 59 }, // 32x32 -> 16x16
720 { 0, 0, 30 }, // 64x64 -> 32x32
721#if CONFIG_EXT_PARTITION
722 { 0, 0, 30 }, // 128x128 -> 64x64
723#endif // CONFIG_EXT_PARTITION
724 { 0, 122, 0 }, // 8x8 -> 4x4
725 { 0, 73, 0 }, // 16x16 -> 8x8
726 { 0, 58, 0 }, // 32x32 -> 16x16
727 { 0, 34, 0 }, // 64x64 -> 32x32
728#if CONFIG_EXT_PARTITION
729 { 0, 34, 0 }, // 128x128 -> 64x64
730#endif // CONFIG_EXT_PARTITION
731#endif // CONFIG_UNPOISON_PARTITION_CTX
Yaowu Xuc27fc142016-08-22 16:08:15 -0700732 };
733#endif // CONFIG_EXT_PARTITION_TYPES
734
735#if CONFIG_REF_MV
Yaowu Xuf883b422016-08-30 14:01:10 -0700736static const aom_prob default_newmv_prob[NEWMV_MODE_CONTEXTS] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700737 200, 180, 150, 150, 110, 70, 60,
738};
739
Yaowu Xuf883b422016-08-30 14:01:10 -0700740static const aom_prob default_zeromv_prob[ZEROMV_MODE_CONTEXTS] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700741 192, 64,
742};
743
Yaowu Xuf883b422016-08-30 14:01:10 -0700744static const aom_prob default_refmv_prob[REFMV_MODE_CONTEXTS] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700745 220, 220, 200, 200, 180, 128, 30, 220, 30,
746};
747
Yaowu Xuf883b422016-08-30 14:01:10 -0700748static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = { 128, 160, 180,
Yaowu Xuc27fc142016-08-22 16:08:15 -0700749 128, 160 };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700750#endif // CONFIG_REF_MV
751
Yaowu Xuf883b422016-08-30 14:01:10 -0700752static const aom_prob
Yaowu Xuc27fc142016-08-22 16:08:15 -0700753 default_inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700754 { 2, 173, 34 }, // 0 = both zero mv
755 { 7, 145, 85 }, // 1 = one zero mv + one a predicted mv
756 { 7, 166, 63 }, // 2 = two predicted mvs
757 { 7, 94, 66 }, // 3 = one predicted/zero and one new mv
758 { 8, 64, 46 }, // 4 = two new mvs
759 { 17, 81, 31 }, // 5 = one intra neighbour + x
760 { 25, 29, 30 }, // 6 = two intra neighbours
Yaowu Xuc27fc142016-08-22 16:08:15 -0700761 };
762
763#if CONFIG_EXT_INTER
Yaowu Xuf883b422016-08-30 14:01:10 -0700764static const aom_prob default_inter_compound_mode_probs
Yaowu Xuc27fc142016-08-22 16:08:15 -0700765 [INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1] = {
766 { 2, 173, 68, 192, 64, 192, 128, 180, 180 }, // 0 = both zero mv
767 { 7, 145, 160, 192, 64, 192, 128, 180, 180 }, // 1 = 1 zero + 1 predicted
768 { 7, 166, 126, 192, 64, 192, 128, 180, 180 }, // 2 = two predicted mvs
769 { 7, 94, 132, 192, 64, 192, 128, 180, 180 }, // 3 = 1 pred/zero, 1 new
770 { 8, 64, 64, 192, 64, 192, 128, 180, 180 }, // 4 = two new mvs
771 { 17, 81, 52, 192, 64, 192, 128, 180, 180 }, // 5 = one intra neighbour
772 { 25, 29, 50, 192, 64, 192, 128, 180, 180 }, // 6 = two intra neighbours
773 };
774
Zoe Liu239f06b2017-04-20 13:10:55 -0700775#if CONFIG_COMPOUND_SINGLEREF
776// TODO(zoeliu): Default values to be further adjusted based on the collected
777// stats.
778static const aom_prob default_inter_singleref_comp_mode_probs
779 [INTER_MODE_CONTEXTS][INTER_SINGLEREF_COMP_MODES - 1] = {
780 { 2, 173, 68, 180 }, // 0 = both zero mv
781 { 7, 145, 160, 180 }, // 1 = 1 zero + 1 predicted
782 { 7, 166, 126, 180 }, // 2 = two predicted mvs
783 { 7, 94, 132, 180 }, // 3 = 1 pred/zero, 1 new
784 { 8, 64, 64, 180 }, // 4 = two new mvs
785 { 17, 81, 52, 180 }, // 5 = one intra neighbour
786 { 25, 29, 50, 180 }, // 6 = two intra neighbours
787 };
788#endif // CONFIG_COMPOUND_SINGLEREF
789
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +0000790#if CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
Sarah Parker2f6ce752016-12-08 15:26:46 -0800791static const aom_prob
792 default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
Yue Chen4415b6c2017-01-31 11:59:38 -0800793#if CONFIG_CB4X4
794 { 255, 255 }, { 255, 255 }, { 255, 255 },
795#endif
Sarah Parker2f6ce752016-12-08 15:26:46 -0800796 { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 },
797 { 208, 200 }, { 216, 200 }, { 216, 200 }, { 216, 200 }, { 224, 200 },
798 { 224, 200 }, { 240, 200 }, { 240, 200 },
799#if CONFIG_EXT_PARTITION
800 { 255, 200 }, { 255, 200 }, { 255, 200 },
801#endif // CONFIG_EXT_PARTITION
802 };
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +0000803#elif !CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
clang-format55ce9e02017-02-15 22:27:12 -0800804static const aom_prob
805 default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
Jingning Han61418bb2017-01-23 17:12:48 -0800806#if CONFIG_CB4X4
clang-format55ce9e02017-02-15 22:27:12 -0800807 { 208 }, { 208 }, { 208 },
Jingning Han61418bb2017-01-23 17:12:48 -0800808#endif
clang-format55ce9e02017-02-15 22:27:12 -0800809 { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 216 },
810 { 216 }, { 216 }, { 224 }, { 224 }, { 240 }, { 240 },
Sarah Parker6fddd182016-11-10 20:57:20 -0800811#if CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -0800812 { 255 }, { 255 }, { 255 },
Sarah Parker6fddd182016-11-10 20:57:20 -0800813#endif // CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -0800814 };
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +0000815#elif CONFIG_COMPOUND_SEGMENT && !CONFIG_WEDGE
816static const aom_prob
817 default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
818#if CONFIG_CB4X4
819 { 208 }, { 208 }, { 208 },
820#endif
821 { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 216 },
822 { 216 }, { 216 }, { 224 }, { 224 }, { 240 }, { 240 },
823#if CONFIG_EXT_PARTITION
824 { 255 }, { 255 }, { 255 },
825#endif // CONFIG_EXT_PARTITION
826 };
827#else
828static const aom_prob default_compound_type_probs[BLOCK_SIZES]
829 [COMPOUND_TYPES - 1];
830#endif // CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
Sarah Parker6fddd182016-11-10 20:57:20 -0800831
Yaowu Xuf883b422016-08-30 14:01:10 -0700832static const aom_prob default_interintra_prob[BLOCK_SIZE_GROUPS] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700833 208, 208, 208, 208,
834};
835
Yaowu Xuf883b422016-08-30 14:01:10 -0700836static const aom_prob
Yaowu Xuc27fc142016-08-22 16:08:15 -0700837 default_interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1] = {
838 { 65, 32, 18, 144, 162, 194, 41, 51, 98 }, // block_size < 8x8
839 { 132, 68, 18, 165, 217, 196, 45, 40, 78 }, // block_size < 16x16
840 { 173, 80, 19, 176, 240, 193, 64, 35, 46 }, // block_size < 32x32
841 { 221, 135, 38, 194, 248, 121, 96, 85, 29 } // block_size >= 32x32
842 };
843
Yaowu Xuf883b422016-08-30 14:01:10 -0700844static const aom_prob default_wedge_interintra_prob[BLOCK_SIZES] = {
Jingning Han61418bb2017-01-23 17:12:48 -0800845#if CONFIG_CB4X4
846 208, 208, 208,
847#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -0700848 208, 208, 208, 208, 208, 208, 216, 216, 216, 224, 224, 224, 240,
849#if CONFIG_EXT_PARTITION
850 208, 208, 208
851#endif // CONFIG_EXT_PARTITION
852};
Yaowu Xuc27fc142016-08-22 16:08:15 -0700853#endif // CONFIG_EXT_INTER
854
855// Change this section appropriately once warped motion is supported
Yue Chencb60b182016-10-13 15:18:22 -0700856#if CONFIG_MOTION_VAR && !CONFIG_WARPED_MOTION
857const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700858 -SIMPLE_TRANSLATION, -OBMC_CAUSAL
859};
clang-format55ce9e02017-02-15 22:27:12 -0800860static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
861 {
Jingning Hanb3044dd2017-01-18 16:14:56 -0800862#if CONFIG_CB4X4
clang-format55ce9e02017-02-15 22:27:12 -0800863 { 255 }, { 255 }, { 255 },
Jingning Hanb3044dd2017-01-18 16:14:56 -0800864#endif
clang-format55ce9e02017-02-15 22:27:12 -0800865 { 255 }, { 255 }, { 255 }, { 151 }, { 153 }, { 144 }, { 178 },
866 { 165 }, { 160 }, { 207 }, { 195 }, { 168 }, { 244 },
Yaowu Xuc27fc142016-08-22 16:08:15 -0700867#if CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -0800868 { 252 }, { 252 }, { 252 },
Yaowu Xuc27fc142016-08-22 16:08:15 -0700869#endif // CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -0800870 };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700871
Yue Chencb60b182016-10-13 15:18:22 -0700872#elif !CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
Yaowu Xuc27fc142016-08-22 16:08:15 -0700873
Yue Chencb60b182016-10-13 15:18:22 -0700874const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700875 -SIMPLE_TRANSLATION, -WARPED_CAUSAL
876};
Yue Chen69f18e12016-09-08 14:48:15 -0700877
clang-format55ce9e02017-02-15 22:27:12 -0800878static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
879 {
Jingning Han71bf3ee2017-01-18 17:23:27 -0800880#if CONFIG_CB4X4
clang-format55ce9e02017-02-15 22:27:12 -0800881 { 255 }, { 255 }, { 255 },
Jingning Han71bf3ee2017-01-18 17:23:27 -0800882#endif
clang-format55ce9e02017-02-15 22:27:12 -0800883 { 255 }, { 255 }, { 255 }, { 151 }, { 153 }, { 144 }, { 178 },
884 { 165 }, { 160 }, { 207 }, { 195 }, { 168 }, { 244 },
Yaowu Xuc27fc142016-08-22 16:08:15 -0700885#if CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -0800886 { 252 }, { 252 }, { 252 },
Yaowu Xuc27fc142016-08-22 16:08:15 -0700887#endif // CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -0800888 };
Yaowu Xuc27fc142016-08-22 16:08:15 -0700889
Yue Chencb60b182016-10-13 15:18:22 -0700890#elif CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
Yaowu Xuc27fc142016-08-22 16:08:15 -0700891
Yue Chencb60b182016-10-13 15:18:22 -0700892const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700893 -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL,
894};
Yue Chencb60b182016-10-13 15:18:22 -0700895static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
Yaowu Xuc27fc142016-08-22 16:08:15 -0700896 {
Jingning Han71bf3ee2017-01-18 17:23:27 -0800897#if CONFIG_CB4X4
898 { 255, 200 }, { 255, 200 }, { 255, 200 },
899#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -0700900 { 255, 200 }, { 255, 200 }, { 255, 200 }, { 151, 200 }, { 153, 200 },
901 { 144, 200 }, { 178, 200 }, { 165, 200 }, { 160, 200 }, { 207, 200 },
902 { 195, 200 }, { 168, 200 }, { 244, 200 },
903#if CONFIG_EXT_PARTITION
904 { 252, 200 }, { 252, 200 }, { 252, 200 },
905#endif // CONFIG_EXT_PARTITION
906 };
Yue Chen69f18e12016-09-08 14:48:15 -0700907
908// Probability for the case that only 1 additional motion mode is allowed
909static const aom_prob default_obmc_prob[BLOCK_SIZES] = {
Jingning Han71bf3ee2017-01-18 17:23:27 -0800910#if CONFIG_CB4X4
911 255, 255, 255,
912#endif
Yue Chen69f18e12016-09-08 14:48:15 -0700913 255, 255, 255, 151, 153, 144, 178, 165, 160, 207, 195, 168, 244,
914#if CONFIG_EXT_PARTITION
915 252, 252, 252,
916#endif // CONFIG_EXT_PARTITION
917};
918#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -0700919
Thomas Daviesf6936102016-09-05 16:51:31 +0100920#if CONFIG_DELTA_Q
Thomas Davies665cd702017-03-02 10:20:30 +0000921static const aom_prob default_delta_q_probs[DELTA_Q_PROBS] = { 220, 220, 220 };
Thomas Daviesd6ee8a82017-03-02 14:42:50 +0000922#if CONFIG_EC_MULTISYMBOL
923static const aom_cdf_prob default_delta_q_cdf[CDF_SIZE(DELTA_Q_PROBS + 1)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -0700924 AOM_ICDF(28160), AOM_ICDF(32120), AOM_ICDF(32677), AOM_ICDF(32768), 0
Thomas Daviesd6ee8a82017-03-02 14:42:50 +0000925};
926#endif
Fangwen Fu231fe422017-04-24 17:52:29 -0700927#if CONFIG_EXT_DELTA_Q
928static const aom_prob default_delta_lf_probs[DELTA_LF_PROBS] = { 220, 220,
929 220 };
930#if CONFIG_EC_MULTISYMBOL
931static const aom_cdf_prob default_delta_lf_cdf[CDF_SIZE(DELTA_LF_PROBS + 1)] = {
932 28160, 32120, 32677, 32768, 0
933};
934#endif
935#endif
Thomas Daviesf6936102016-09-05 16:51:31 +0100936#endif
Nathan E. Eggeecc21ec2016-11-16 09:44:26 -0500937#if CONFIG_EC_MULTISYMBOL
Nathan E. Egge3ef926e2016-09-07 18:20:41 -0400938int av1_intra_mode_ind[INTRA_MODES];
939int av1_intra_mode_inv[INTRA_MODES];
Nathan E. Egge6ec4d102016-09-08 10:41:20 -0400940int av1_inter_mode_ind[INTER_MODES];
941int av1_inter_mode_inv[INTER_MODES];
Thomas Daviesb1bedf52017-03-17 14:03:28 +0000942#if CONFIG_EXT_TX
943int av1_ext_tx_intra_ind[EXT_TX_SETS_INTRA][TX_TYPES];
944int av1_ext_tx_intra_inv[EXT_TX_SETS_INTRA][TX_TYPES];
945int av1_ext_tx_inter_ind[EXT_TX_SETS_INTER][TX_TYPES];
946int av1_ext_tx_inter_inv[EXT_TX_SETS_INTER][TX_TYPES];
947#endif
Nathan E. Eggea59b23d2016-11-16 09:44:26 -0500948#endif
Thomas Daviesf6936102016-09-05 16:51:31 +0100949
Urvang Joshi6be4a542016-11-03 15:24:05 -0700950#if CONFIG_ALT_INTRA
951const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
952 -DC_PRED, 2, /* 0 = DC_NODE */
953 -TM_PRED, 4, /* 1 = TM_NODE */
954 -V_PRED, 6, /* 2 = V_NODE */
955 8, 12, /* 3 = COM_NODE */
956 -H_PRED, 10, /* 4 = H_NODE */
957 -D135_PRED, -D117_PRED, /* 5 = D135_NODE */
958 -D45_PRED, 14, /* 6 = D45_NODE */
959 -D63_PRED, 16, /* 7 = D63_NODE */
960 -D153_PRED, 18, /* 8 = D153_NODE */
961 -D207_PRED, -SMOOTH_PRED, /* 9 = D207_NODE */
962};
963#else
Yaowu Xuf883b422016-08-30 14:01:10 -0700964const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700965 -DC_PRED, 2, /* 0 = DC_NODE */
966 -TM_PRED, 4, /* 1 = TM_NODE */
967 -V_PRED, 6, /* 2 = V_NODE */
968 8, 12, /* 3 = COM_NODE */
969 -H_PRED, 10, /* 4 = H_NODE */
970 -D135_PRED, -D117_PRED, /* 5 = D135_NODE */
971 -D45_PRED, 14, /* 6 = D45_NODE */
972 -D63_PRED, 16, /* 7 = D63_NODE */
973 -D153_PRED, -D207_PRED /* 8 = D153_NODE */
974};
Urvang Joshi6be4a542016-11-03 15:24:05 -0700975#endif // CONFIG_ALT_INTRA
Yaowu Xuc27fc142016-08-22 16:08:15 -0700976
Yaowu Xuf883b422016-08-30 14:01:10 -0700977const aom_tree_index av1_inter_mode_tree[TREE_SIZE(INTER_MODES)] = {
Zoe Liu7f24e1b2017-03-17 17:42:05 -0700978 -INTER_OFFSET(ZEROMV), 2, -INTER_OFFSET(NEARESTMV), 4, -INTER_OFFSET(NEARMV),
979 -INTER_OFFSET(NEWMV)
Yaowu Xuc27fc142016-08-22 16:08:15 -0700980};
981
982#if CONFIG_EXT_INTER
983/* clang-format off */
Yaowu Xuf883b422016-08-30 14:01:10 -0700984const aom_tree_index av1_interintra_mode_tree[TREE_SIZE(INTERINTRA_MODES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -0700985 -II_DC_PRED, 2, /* 0 = II_DC_NODE */
986 -II_TM_PRED, 4, /* 1 = II_TM_NODE */
987 -II_V_PRED, 6, /* 2 = II_V_NODE */
988 8, 12, /* 3 = II_COM_NODE */
989 -II_H_PRED, 10, /* 4 = II_H_NODE */
990 -II_D135_PRED, -II_D117_PRED, /* 5 = II_D135_NODE */
991 -II_D45_PRED, 14, /* 6 = II_D45_NODE */
992 -II_D63_PRED, 16, /* 7 = II_D63_NODE */
993 -II_D153_PRED, -II_D207_PRED /* 8 = II_D153_NODE */
994};
995
Yaowu Xuf883b422016-08-30 14:01:10 -0700996const aom_tree_index av1_inter_compound_mode_tree
Yaowu Xuc27fc142016-08-22 16:08:15 -0700997 [TREE_SIZE(INTER_COMPOUND_MODES)] = {
998 -INTER_COMPOUND_OFFSET(ZERO_ZEROMV), 2,
999 -INTER_COMPOUND_OFFSET(NEAREST_NEARESTMV), 4,
1000 6, -INTER_COMPOUND_OFFSET(NEW_NEWMV),
1001 8, 12,
1002 -INTER_COMPOUND_OFFSET(NEAR_NEARMV), 10,
1003 -INTER_COMPOUND_OFFSET(NEAREST_NEARMV),
1004 -INTER_COMPOUND_OFFSET(NEAR_NEARESTMV),
1005 14, 16,
1006 -INTER_COMPOUND_OFFSET(NEAREST_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARESTMV),
1007 -INTER_COMPOUND_OFFSET(NEAR_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARMV)
1008};
Sarah Parker6fddd182016-11-10 20:57:20 -08001009
Zoe Liu239f06b2017-04-20 13:10:55 -07001010#if CONFIG_COMPOUND_SINGLEREF
1011const aom_tree_index av1_inter_singleref_comp_mode_tree
1012 [TREE_SIZE(INTER_SINGLEREF_COMP_MODES)] = {
1013 -INTER_SINGLEREF_COMP_OFFSET(SR_ZERO_NEWMV), 2,
1014 -INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEARMV), 4,
1015 6, -INTER_SINGLEREF_COMP_OFFSET(SR_NEW_NEWMV),
1016 -INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEWMV),
1017 -INTER_SINGLEREF_COMP_OFFSET(SR_NEAR_NEWMV)
1018};
1019#endif // CONFIG_COMPOUND_SINGLEREF
1020
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +00001021#if CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
Sarah Parker2f6ce752016-12-08 15:26:46 -08001022const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
1023 -COMPOUND_AVERAGE, 2, -COMPOUND_WEDGE, -COMPOUND_SEG
1024};
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +00001025#elif !CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
Sarah Parker6fddd182016-11-10 20:57:20 -08001026const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
1027 -COMPOUND_AVERAGE, -COMPOUND_WEDGE
1028};
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +00001029#elif CONFIG_COMPOUND_SEGMENT && !CONFIG_WEDGE
1030const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
1031 -COMPOUND_AVERAGE, -COMPOUND_SEG
1032};
1033#else
1034const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {};
1035#endif // CONFIG_COMPOUND_SEGMENT && CONFIG_WEDGE
Yaowu Xuc27fc142016-08-22 16:08:15 -07001036/* clang-format on */
1037#endif // CONFIG_EXT_INTER
1038
Yaowu Xuf883b422016-08-30 14:01:10 -07001039const aom_tree_index av1_partition_tree[TREE_SIZE(PARTITION_TYPES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001040 -PARTITION_NONE, 2, -PARTITION_HORZ, 4, -PARTITION_VERT, -PARTITION_SPLIT
1041};
1042
1043#if CONFIG_EXT_PARTITION_TYPES
1044/* clang-format off */
Yaowu Xuf883b422016-08-30 14:01:10 -07001045const aom_tree_index av1_ext_partition_tree[TREE_SIZE(EXT_PARTITION_TYPES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001046 -PARTITION_NONE, 2,
1047 6, 4,
1048 8, -PARTITION_SPLIT,
1049 -PARTITION_HORZ, 10,
1050 -PARTITION_VERT, 12,
1051 -PARTITION_HORZ_A, -PARTITION_HORZ_B,
1052 -PARTITION_VERT_A, -PARTITION_VERT_B
1053};
1054/* clang-format on */
1055#endif // CONFIG_EXT_PARTITION_TYPES
1056
Yaowu Xuf883b422016-08-30 14:01:10 -07001057static const aom_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001058 9, 102, 187, 225
1059};
1060
Yaowu Xuf883b422016-08-30 14:01:10 -07001061static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001062 239, 183, 119, 96, 41
1063};
1064
1065#if CONFIG_EXT_REFS
Yaowu Xuf883b422016-08-30 14:01:10 -07001066static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001067 // TODO(zoeliu): To adjust the initial prob values.
1068 { 33, 16, 16 },
1069 { 77, 74, 74 },
1070 { 142, 142, 142 },
1071 { 172, 170, 170 },
1072 { 238, 247, 247 }
1073};
Yaowu Xuf883b422016-08-30 14:01:10 -07001074static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001075 { 16 }, { 74 }, { 142 }, { 170 }, { 247 }
1076};
1077#else
Yaowu Xuf883b422016-08-30 14:01:10 -07001078static const aom_prob default_comp_ref_p[REF_CONTEXTS][COMP_REFS - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001079 { 50 }, { 126 }, { 123 }, { 221 }, { 226 }
1080};
1081#endif // CONFIG_EXT_REFS
1082
Yaowu Xuf883b422016-08-30 14:01:10 -07001083static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001084#if CONFIG_EXT_REFS
1085 { 33, 16, 16, 16, 16 },
1086 { 77, 74, 74, 74, 74 },
1087 { 142, 142, 142, 142, 142 },
1088 { 172, 170, 170, 170, 170 },
1089 { 238, 247, 247, 247, 247 }
1090#else
1091 { 33, 16 }, { 77, 74 }, { 142, 142 }, { 172, 170 }, { 238, 247 }
1092#endif // CONFIG_EXT_REFS
1093};
1094
Zoe Liu239f06b2017-04-20 13:10:55 -07001095#if CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
1096// TODO(zoeliu): Default values to be further adjusted based on the collected
1097// stats.
1098static const aom_prob default_comp_inter_mode_p[COMP_INTER_MODE_CONTEXTS] = {
1099 41, 119, 187, 225
1100};
1101#endif // CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
1102
Urvang Joshib100db72016-10-12 16:28:56 -07001103#if CONFIG_PALETTE
Urvang Joshi23a61112017-01-30 14:59:27 -08001104
1105// Tree to code palette size (number of colors in a palette) and the
1106// corresponding probabilities for Y and UV planes.
Yaowu Xuf883b422016-08-30 14:01:10 -07001107const aom_tree_index av1_palette_size_tree[TREE_SIZE(PALETTE_SIZES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001108 -TWO_COLORS, 2, -THREE_COLORS, 4, -FOUR_COLORS, 6,
1109 -FIVE_COLORS, 8, -SIX_COLORS, 10, -SEVEN_COLORS, -EIGHT_COLORS,
1110};
1111
1112// TODO(huisu): tune these probs
Yaowu Xuf883b422016-08-30 14:01:10 -07001113const aom_prob
1114 av1_default_palette_y_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001115 { 96, 89, 100, 64, 77, 130 }, { 22, 15, 44, 16, 34, 82 },
1116 { 30, 19, 57, 18, 38, 86 }, { 94, 36, 104, 23, 43, 92 },
1117 { 116, 76, 107, 46, 65, 105 }, { 112, 82, 94, 40, 70, 112 },
1118 { 147, 124, 123, 58, 69, 103 }, { 180, 113, 136, 49, 45, 114 },
1119 { 107, 70, 87, 49, 154, 156 }, { 98, 105, 142, 63, 64, 152 },
1120#if CONFIG_EXT_PARTITION
1121 { 98, 105, 142, 63, 64, 152 }, { 98, 105, 142, 63, 64, 152 },
1122 { 98, 105, 142, 63, 64, 152 },
1123#endif // CONFIG_EXT_PARTITION
1124 };
1125
Yaowu Xuf883b422016-08-30 14:01:10 -07001126const aom_prob
1127 av1_default_palette_uv_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
1128 { 160, 196, 228, 213, 175, 230 }, { 87, 148, 208, 141, 166, 163 },
1129 { 72, 151, 204, 139, 155, 161 }, { 78, 135, 171, 104, 120, 173 },
1130 { 59, 92, 131, 78, 92, 142 }, { 75, 118, 149, 84, 90, 128 },
1131 { 89, 87, 92, 66, 66, 128 }, { 67, 53, 54, 55, 66, 93 },
1132 { 120, 130, 83, 171, 75, 214 }, { 72, 55, 66, 68, 79, 107 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001133#if CONFIG_EXT_PARTITION
Yaowu Xuf883b422016-08-30 14:01:10 -07001134 { 72, 55, 66, 68, 79, 107 }, { 72, 55, 66, 68, 79, 107 },
1135 { 72, 55, 66, 68, 79, 107 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001136#endif // CONFIG_EXT_PARTITION
Yaowu Xuf883b422016-08-30 14:01:10 -07001137 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001138
Urvang Joshi23a61112017-01-30 14:59:27 -08001139// When palette mode is enabled, following probability tables indicate the
1140// probabilities to code the "is_palette" bit (i.e. the bit that indicates
1141// if this block uses palette mode or DC_PRED mode).
clang-format55ce9e02017-02-15 22:27:12 -08001142const aom_prob av1_default_palette_y_mode_prob
1143 [PALETTE_BLOCK_SIZES][PALETTE_Y_MODE_CONTEXTS] = {
1144 { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
1145 { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
1146 { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
1147 { 240, 180, 100 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001148#if CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -08001149 { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001150#endif // CONFIG_EXT_PARTITION
clang-format55ce9e02017-02-15 22:27:12 -08001151 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001152
Urvang Joshi23a61112017-01-30 14:59:27 -08001153const aom_prob av1_default_palette_uv_mode_prob[PALETTE_UV_MODE_CONTEXTS] = {
1154 253, 229
1155};
Yaowu Xuc27fc142016-08-22 16:08:15 -07001156
Urvang Joshi23a61112017-01-30 14:59:27 -08001157// Trees to code palette color indices (for various palette sizes), and the
1158// corresponding probability tables for Y and UV planes.
Yaowu Xuf883b422016-08-30 14:01:10 -07001159const aom_tree_index
Alex Converse92109812017-02-22 10:21:40 -08001160 av1_palette_color_index_tree[PALETTE_SIZES][TREE_SIZE(PALETTE_COLORS)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001161 { // 2 colors
1162 -PALETTE_COLOR_ONE, -PALETTE_COLOR_TWO },
1163 { // 3 colors
1164 -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, -PALETTE_COLOR_THREE },
1165 { // 4 colors
1166 -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE,
1167 -PALETTE_COLOR_FOUR },
1168 { // 5 colors
1169 -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
1170 -PALETTE_COLOR_FOUR, -PALETTE_COLOR_FIVE },
1171 { // 6 colors
1172 -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
1173 -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, -PALETTE_COLOR_SIX },
1174 { // 7 colors
1175 -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
1176 -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, 10, -PALETTE_COLOR_SIX,
1177 -PALETTE_COLOR_SEVEN },
1178 { // 8 colors
1179 -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
1180 -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, 10, -PALETTE_COLOR_SIX, 12,
1181 -PALETTE_COLOR_SEVEN, -PALETTE_COLOR_EIGHT },
1182 };
1183
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001184// Note: Has to be non-zero to avoid any asserts triggering.
1185#define UNUSED_PROB 128
Yaowu Xuc27fc142016-08-22 16:08:15 -07001186
Urvang Joshi23a61112017-01-30 14:59:27 -08001187const aom_prob av1_default_palette_y_color_index_prob
Alex Converse92109812017-02-22 10:21:40 -08001188 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001189 {
1190 // 2 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001191 { 231, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001192 UNUSED_PROB, UNUSED_PROB },
1193 { UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1194 UNUSED_PROB, UNUSED_PROB },
Urvang Joshi199a2f42017-01-23 15:02:07 -08001195 { 69, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001196 UNUSED_PROB },
Urvang Joshi199a2f42017-01-23 15:02:07 -08001197 { 224, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001198 UNUSED_PROB, UNUSED_PROB },
1199 { 249, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1200 UNUSED_PROB, UNUSED_PROB },
1201 },
1202 {
1203 // 3 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001204 { 219, 124, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001205 UNUSED_PROB },
Urvang Joshi199a2f42017-01-23 15:02:07 -08001206 { 91, 191, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001207 UNUSED_PROB },
Urvang Joshi199a2f42017-01-23 15:02:07 -08001208 { 34, 237, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001209 UNUSED_PROB },
Urvang Joshi199a2f42017-01-23 15:02:07 -08001210 { 184, 118, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001211 UNUSED_PROB },
Urvang Joshi199a2f42017-01-23 15:02:07 -08001212 { 252, 124, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001213 UNUSED_PROB },
1214 },
1215 {
1216 // 4 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001217 { 204, 87, 97, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1218 { 74, 144, 129, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1219 { 52, 191, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1220 { 151, 85, 147, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1221 { 248, 60, 115, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001222 },
1223 {
1224 // 5 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001225 { 218, 69, 62, 106, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1226 { 76, 143, 89, 127, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1227 { 21, 233, 94, 131, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1228 { 172, 72, 89, 112, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1229 { 253, 66, 65, 128, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001230 },
1231 {
1232 // 6 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001233 { 190, 60, 47, 54, 74, UNUSED_PROB, UNUSED_PROB },
1234 { 62, 106, 51, 95, 110, UNUSED_PROB, UNUSED_PROB },
1235 { 52, 180, 69, 72, 107, UNUSED_PROB, UNUSED_PROB },
1236 { 156, 83, 72, 83, 101, UNUSED_PROB, UNUSED_PROB },
1237 { 245, 45, 37, 52, 91, UNUSED_PROB, UNUSED_PROB },
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001238 },
1239 {
1240 // 7 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001241 { 206, 56, 42, 42, 53, 85, UNUSED_PROB },
1242 { 70, 100, 45, 68, 77, 94, UNUSED_PROB },
1243 { 57, 169, 51, 62, 74, 119, UNUSED_PROB },
1244 { 172, 76, 71, 40, 59, 76, UNUSED_PROB },
1245 { 248, 47, 36, 53, 61, 110, UNUSED_PROB },
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001246 },
1247 {
1248 // 8 colors
Urvang Joshi199a2f42017-01-23 15:02:07 -08001249 { 208, 52, 38, 34, 34, 44, 66 },
1250 { 52, 107, 34, 73, 69, 82, 87 },
1251 { 28, 208, 53, 43, 62, 70, 102 },
1252 { 184, 64, 45, 37, 37, 69, 105 },
1253 { 251, 18, 31, 45, 47, 61, 104 },
1254 },
1255 };
1256
Urvang Joshi23a61112017-01-30 14:59:27 -08001257const aom_prob av1_default_palette_uv_color_index_prob
Alex Converse92109812017-02-22 10:21:40 -08001258 [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
Urvang Joshi199a2f42017-01-23 15:02:07 -08001259 {
1260 // 2 colors
1261 { 233, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1262 UNUSED_PROB, UNUSED_PROB },
1263 { UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1264 UNUSED_PROB, UNUSED_PROB },
1265 { 69, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1266 UNUSED_PROB },
1267 { 240, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1268 UNUSED_PROB, UNUSED_PROB },
1269 { 248, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1270 UNUSED_PROB, UNUSED_PROB },
1271 },
1272 {
1273 // 3 colors
1274 { 216, 128, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1275 UNUSED_PROB },
1276 { 110, 171, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1277 UNUSED_PROB },
1278 { 40, 239, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1279 UNUSED_PROB },
1280 { 191, 104, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1281 UNUSED_PROB },
1282 { 247, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
1283 UNUSED_PROB },
1284 },
1285 {
1286 // 4 colors
1287 { 202, 89, 132, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1288 { 90, 132, 136, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1289 { 63, 195, 149, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1290 { 152, 84, 152, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1291 { 241, 87, 136, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1292 },
1293 {
1294 // 5 colors
1295 { 209, 54, 82, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1296 { 94, 173, 180, 93, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1297 { 10, 251, 127, 84, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1298 { 183, 20, 150, 47, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1299 { 252, 73, 111, 150, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
1300 },
1301 {
1302 // 6 colors
1303 { 192, 67, 59, 46, 184, UNUSED_PROB, UNUSED_PROB },
1304 { 59, 92, 61, 100, 130, UNUSED_PROB, UNUSED_PROB },
1305 { 49, 162, 68, 91, 150, UNUSED_PROB, UNUSED_PROB },
1306 { 133, 29, 36, 153, 101, UNUSED_PROB, UNUSED_PROB },
1307 { 247, 71, 44, 90, 129, UNUSED_PROB, UNUSED_PROB },
1308 },
1309 {
1310 // 7 colors
1311 { 182, 62, 80, 78, 46, 116, UNUSED_PROB },
1312 { 59, 62, 39, 81, 65, 99, UNUSED_PROB },
1313 { 54, 177, 48, 58, 93, 104, UNUSED_PROB },
1314 { 137, 79, 54, 55, 44, 134, UNUSED_PROB },
1315 { 239, 82, 79, 44, 69, 71, UNUSED_PROB },
1316 },
1317 {
1318 // 8 colors
1319 { 172, 53, 27, 67, 30, 79, 113 },
1320 { 63, 57, 45, 81, 62, 35, 47 },
1321 { 51, 200, 36, 47, 82, 165, 129 },
1322 { 141, 100, 47, 29, 33, 37, 129 },
1323 { 236, 42, 50, 91, 24, 154, 65 },
1324 },
Urvang Joshieb54e0c2016-11-01 15:25:57 -07001325 };
1326
1327#undef UNUSED_PROB
Yaowu Xuc27fc142016-08-22 16:08:15 -07001328
Urvang Joshicdbe7082017-01-26 13:06:49 -08001329#define MAX_COLOR_CONTEXT_HASH 8
1330// Negative values are invalid
Urvang Joshi23a61112017-01-30 14:59:27 -08001331static const int palette_color_index_context_lookup[MAX_COLOR_CONTEXT_HASH +
1332 1] = { -1, -1, 0, -1, -1,
1333 4, 3, 2, 1 };
Urvang Joshicdbe7082017-01-26 13:06:49 -08001334
Urvang Joshib100db72016-10-12 16:28:56 -07001335#endif // CONFIG_PALETTE
Yaowu Xuc27fc142016-08-22 16:08:15 -07001336
Jingning Hanb4329a22016-11-22 16:20:13 -08001337// The transform size is coded as an offset to the smallest transform
1338// block size.
Jingning Han607fa6a2016-10-26 10:46:28 -07001339const aom_tree_index av1_tx_size_tree[MAX_TX_DEPTH][TREE_SIZE(TX_SIZES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001340 {
1341 // Max tx_size is 8X8
Jingning Hanb4329a22016-11-22 16:20:13 -08001342 -0, -1,
Yaowu Xuc27fc142016-08-22 16:08:15 -07001343 },
1344 {
1345 // Max tx_size is 16X16
Jingning Hanb4329a22016-11-22 16:20:13 -08001346 -0, 2, -1, -2,
Yaowu Xuc27fc142016-08-22 16:08:15 -07001347 },
1348 {
1349 // Max tx_size is 32X32
Jingning Hanb4329a22016-11-22 16:20:13 -08001350 -0, 2, -1, 4, -2, -3,
Yaowu Xuc27fc142016-08-22 16:08:15 -07001351 },
Debargha Mukherjee18d38f62016-11-17 20:30:16 -08001352#if CONFIG_TX64X64
Debargha Mukherjee25ed5302016-11-22 12:13:41 -08001353 {
1354 // Max tx_size is 64X64
Jingning Hanb4329a22016-11-22 16:20:13 -08001355 -0, 2, -1, 4, -2, 6, -3, -4,
Debargha Mukherjee25ed5302016-11-22 12:13:41 -08001356 },
Debargha Mukherjee18d38f62016-11-17 20:30:16 -08001357#endif // CONFIG_TX64X64
Yaowu Xuc27fc142016-08-22 16:08:15 -07001358};
1359
Jingning Hanaae72a62016-10-25 15:35:29 -07001360static const aom_prob default_tx_size_prob[MAX_TX_DEPTH][TX_SIZE_CONTEXTS]
1361 [MAX_TX_DEPTH] = {
clang-format67948d32016-09-07 22:40:40 -07001362 {
1363 // Max tx_size is 8X8
1364 { 100 },
1365 { 66 },
1366 },
1367 {
1368 // Max tx_size is 16X16
1369 { 20, 152 },
1370 { 15, 101 },
1371 },
1372 {
1373 // Max tx_size is 32X32
1374 { 3, 136, 37 },
1375 { 5, 52, 13 },
1376 },
Debargha Mukherjee18d38f62016-11-17 20:30:16 -08001377#if CONFIG_TX64X64
1378 {
1379 // Max tx_size is 64X64
1380 { 1, 64, 136, 127 },
1381 { 1, 32, 52, 67 },
1382 },
1383#endif // CONFIG_TX64X64
clang-format67948d32016-09-07 22:40:40 -07001384 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001385
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07001386#if CONFIG_LOOP_RESTORATION
Debargha Mukherjeeb3c43bc2017-02-01 13:09:03 -08001387const aom_tree_index
1388 av1_switchable_restore_tree[TREE_SIZE(RESTORE_SWITCHABLE_TYPES)] = {
1389 -RESTORE_NONE, 2, -RESTORE_WIENER, -RESTORE_SGRPROJ,
1390 };
1391
1392static const aom_prob
1393 default_switchable_restore_prob[RESTORE_SWITCHABLE_TYPES - 1] = {
1394 32, 128,
1395 };
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07001396#endif // CONFIG_LOOP_RESTORATION
1397
Urvang Joshib100db72016-10-12 16:28:56 -07001398#if CONFIG_PALETTE
Urvang Joshi23a61112017-01-30 14:59:27 -08001399#define NUM_PALETTE_NEIGHBORS 3 // left, top-left and top.
1400int av1_get_palette_color_index_context(const uint8_t *color_map, int stride,
1401 int r, int c, int palette_size,
1402 uint8_t *color_order, int *color_idx) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001403 int i;
1404 // The +10 below should not be needed. But we get a warning "array subscript
1405 // is above array bounds [-Werror=array-bounds]" without it, possibly due to
1406 // this (or similar) bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
Yaowu Xuc27fc142016-08-22 16:08:15 -07001407 int scores[PALETTE_MAX_SIZE + 10];
Urvang Joshicdbe7082017-01-26 13:06:49 -08001408 const int weights[NUM_PALETTE_NEIGHBORS] = { 2, 1, 2 };
1409 const int hash_multipliers[NUM_PALETTE_NEIGHBORS] = { 1, 2, 2 };
Urvang Joshi23a61112017-01-30 14:59:27 -08001410 int color_index_ctx_hash;
1411 int color_index_ctx;
Urvang Joshicdbe7082017-01-26 13:06:49 -08001412 int color_neighbors[NUM_PALETTE_NEIGHBORS];
Urvang Joshi967ff392016-09-07 14:57:49 -07001413 int inverse_color_order[PALETTE_MAX_SIZE];
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001414 assert(palette_size <= PALETTE_MAX_SIZE);
Urvang Joshicdbe7082017-01-26 13:06:49 -08001415 assert(r > 0 || c > 0);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001416
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001417 // Get color indices of neighbors.
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001418 color_neighbors[0] = (c - 1 >= 0) ? color_map[r * stride + c - 1] : -1;
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001419 color_neighbors[1] =
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001420 (c - 1 >= 0 && r - 1 >= 0) ? color_map[(r - 1) * stride + c - 1] : -1;
1421 color_neighbors[2] = (r - 1 >= 0) ? color_map[(r - 1) * stride + c] : -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001422
Urvang Joshi967ff392016-09-07 14:57:49 -07001423 for (i = 0; i < PALETTE_MAX_SIZE; ++i) {
1424 color_order[i] = i;
1425 inverse_color_order[i] = i;
1426 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001427 memset(scores, 0, PALETTE_MAX_SIZE * sizeof(scores[0]));
Urvang Joshicdbe7082017-01-26 13:06:49 -08001428 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001429 if (color_neighbors[i] >= 0) {
1430 scores[color_neighbors[i]] += weights[i];
1431 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001432 }
1433
Urvang Joshicdbe7082017-01-26 13:06:49 -08001434 // Get the top NUM_PALETTE_NEIGHBORS scores (sorted from large to small).
1435 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi4f4b68e2016-10-24 17:11:10 -07001436 int max = scores[i];
1437 int max_idx = i;
1438 int j;
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001439 for (j = i + 1; j < palette_size; ++j) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001440 if (scores[j] > max) {
1441 max = scores[j];
1442 max_idx = j;
1443 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001444 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07001445 if (max_idx != i) {
Urvang Joshif1c06a72017-01-09 14:46:51 -08001446 // Move the score at index 'max_idx' to index 'i', and shift the scores
1447 // from 'i' to 'max_idx - 1' by 1.
1448 const int max_score = scores[max_idx];
1449 const uint8_t max_color_order = color_order[max_idx];
1450 int k;
1451 for (k = max_idx; k > i; --k) {
1452 scores[k] = scores[k - 1];
1453 color_order[k] = color_order[k - 1];
1454 inverse_color_order[color_order[k]] = k;
1455 }
1456 scores[i] = max_score;
1457 color_order[i] = max_color_order;
Urvang Joshi967ff392016-09-07 14:57:49 -07001458 inverse_color_order[color_order[i]] = i;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001459 }
1460 }
1461
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001462 // Get hash value of context.
Urvang Joshi23a61112017-01-30 14:59:27 -08001463 color_index_ctx_hash = 0;
Urvang Joshicdbe7082017-01-26 13:06:49 -08001464 for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
Urvang Joshi23a61112017-01-30 14:59:27 -08001465 color_index_ctx_hash += scores[i] * hash_multipliers[i];
Urvang Joshicdbe7082017-01-26 13:06:49 -08001466 }
Urvang Joshi23a61112017-01-30 14:59:27 -08001467 assert(color_index_ctx_hash > 0);
1468 assert(color_index_ctx_hash <= MAX_COLOR_CONTEXT_HASH);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001469
Urvang Joshi79f4fc42016-10-26 09:40:35 -07001470 // Lookup context from hash.
Urvang Joshi23a61112017-01-30 14:59:27 -08001471 color_index_ctx = palette_color_index_context_lookup[color_index_ctx_hash];
1472 assert(color_index_ctx >= 0);
1473 assert(color_index_ctx < PALETTE_COLOR_INDEX_CONTEXTS);
Yaowu Xuc27fc142016-08-22 16:08:15 -07001474
Urvang Joshi967ff392016-09-07 14:57:49 -07001475 if (color_idx != NULL) {
Urvang Joshi56ba91b2017-01-10 13:22:09 -08001476 *color_idx = inverse_color_order[color_map[r * stride + c]];
Urvang Joshi967ff392016-09-07 14:57:49 -07001477 }
Urvang Joshi23a61112017-01-30 14:59:27 -08001478 return color_index_ctx;
Yaowu Xuc27fc142016-08-22 16:08:15 -07001479}
Urvang Joshicdbe7082017-01-26 13:06:49 -08001480#undef NUM_PALETTE_NEIGHBORS
1481#undef MAX_COLOR_CONTEXT_HASH
1482
Urvang Joshib100db72016-10-12 16:28:56 -07001483#endif // CONFIG_PALETTE
Yaowu Xuc27fc142016-08-22 16:08:15 -07001484
1485#if CONFIG_VAR_TX
Yaowu Xuf883b422016-08-30 14:01:10 -07001486static const aom_prob default_txfm_partition_probs[TXFM_PARTITION_CONTEXTS] = {
Jingning Hanc8b89362016-11-01 10:28:53 -07001487 250, 231, 212, 241, 166, 66, 241, 230, 135, 243, 154, 64, 248, 161, 63, 128,
Yaowu Xuc27fc142016-08-22 16:08:15 -07001488};
1489#endif
1490
Yaowu Xuf883b422016-08-30 14:01:10 -07001491static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001492
Angie Chiang1733f6b2017-01-05 09:52:20 -08001493#if CONFIG_DUAL_FILTER
clang-format55ce9e02017-02-15 22:27:12 -08001494static const aom_prob default_switchable_interp_prob
1495 [SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = {
1496 { 235, 192, 128 }, { 36, 243, 48 }, { 34, 16, 128 },
1497 { 34, 16, 128 }, { 149, 160, 128 }, { 235, 192, 128 },
1498 { 36, 243, 48 }, { 34, 16, 128 }, { 34, 16, 128 },
1499 { 149, 160, 128 }, { 235, 192, 128 }, { 36, 243, 48 },
1500 { 34, 16, 128 }, { 34, 16, 128 }, { 149, 160, 128 },
1501 { 235, 192, 128 }, { 36, 243, 48 }, { 34, 16, 128 },
1502 { 34, 16, 128 }, { 149, 160, 128 },
1503 };
Angie Chiang1733f6b2017-01-05 09:52:20 -08001504#else // CONFIG_DUAL_FILTER
clang-format67948d32016-09-07 22:40:40 -07001505static const aom_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
1506 [SWITCHABLE_FILTERS - 1] = {
1507 { 235, 162 },
1508 { 36, 255 },
1509 { 34, 3 },
1510 { 149, 144 },
1511 };
Angie Chiang1733f6b2017-01-05 09:52:20 -08001512#endif // CONFIG_DUAL_FILTER
Yaowu Xuc27fc142016-08-22 16:08:15 -07001513
1514#if CONFIG_EXT_TX
1515/* clang-format off */
Yaowu Xuf883b422016-08-30 14:01:10 -07001516const aom_tree_index av1_ext_tx_inter_tree[EXT_TX_SETS_INTER]
Yaowu Xuc27fc142016-08-22 16:08:15 -07001517 [TREE_SIZE(TX_TYPES)] = {
1518 { // ToDo(yaowu): remove used entry 0.
1519 0
1520 }, {
1521 -IDTX, 2,
1522 4, 14,
1523 6, 8,
1524 -V_DCT, -H_DCT,
1525 10, 12,
1526 -V_ADST, -H_ADST,
1527 -V_FLIPADST, -H_FLIPADST,
1528 -DCT_DCT, 16,
1529 18, 24,
1530 20, 22,
1531 -ADST_DCT, -DCT_ADST,
1532 -FLIPADST_DCT, -DCT_FLIPADST,
1533 26, 28,
1534 -ADST_ADST, -FLIPADST_FLIPADST,
1535 -ADST_FLIPADST, -FLIPADST_ADST
1536 }, {
1537 -IDTX, 2,
1538 4, 6,
1539 -V_DCT, -H_DCT,
1540 -DCT_DCT, 8,
1541 10, 16,
1542 12, 14,
1543 -ADST_DCT, -DCT_ADST,
1544 -FLIPADST_DCT, -DCT_FLIPADST,
1545 18, 20,
1546 -ADST_ADST, -FLIPADST_FLIPADST,
1547 -ADST_FLIPADST, -FLIPADST_ADST
1548 }, {
1549 -IDTX, -DCT_DCT,
1550 }
1551};
1552
Yaowu Xuf883b422016-08-30 14:01:10 -07001553const aom_tree_index av1_ext_tx_intra_tree[EXT_TX_SETS_INTRA]
Yaowu Xuc27fc142016-08-22 16:08:15 -07001554 [TREE_SIZE(TX_TYPES)] = {
1555 { // ToDo(yaowu): remove unused entry 0.
1556 0
1557 }, {
1558 -IDTX, 2,
1559 -DCT_DCT, 4,
1560 6, 8,
1561 -V_DCT, -H_DCT,
1562 -ADST_ADST, 10,
1563 -ADST_DCT, -DCT_ADST,
1564 }, {
1565 -IDTX, 2,
1566 -DCT_DCT, 4,
1567 -ADST_ADST, 6,
1568 -ADST_DCT, -DCT_ADST,
1569 }
1570};
1571/* clang-format on */
1572
Yaowu Xuf883b422016-08-30 14:01:10 -07001573static const aom_prob
Yaowu Xuc27fc142016-08-22 16:08:15 -07001574 default_inter_ext_tx_prob[EXT_TX_SETS_INTER][EXT_TX_SIZES][TX_TYPES - 1] = {
1575 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001576// ToDo(yaowu): remove unused entry 0.
1577#if CONFIG_CB4X4
1578 { 0 },
1579#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -07001580 { 0 },
1581 { 0 },
1582 { 0 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001583 { 0 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001584 },
1585 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001586#if CONFIG_CB4X4
1587 { 0 },
1588#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -07001589 { 10, 24, 30, 128, 128, 128, 128, 112, 160, 128, 128, 128, 128, 128,
1590 128 },
1591 { 10, 24, 30, 128, 128, 128, 128, 112, 160, 128, 128, 128, 128, 128,
1592 128 },
1593 { 10, 24, 30, 128, 128, 128, 128, 112, 160, 128, 128, 128, 128, 128,
1594 128 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001595 { 10, 24, 30, 128, 128, 128, 128, 112, 160, 128, 128, 128, 128, 128,
1596 128 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001597 },
1598 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001599#if CONFIG_CB4X4
1600 { 0 },
1601#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -07001602 { 10, 30, 128, 112, 160, 128, 128, 128, 128, 128, 128 },
1603 { 10, 30, 128, 112, 160, 128, 128, 128, 128, 128, 128 },
1604 { 10, 30, 128, 112, 160, 128, 128, 128, 128, 128, 128 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001605 { 10, 30, 128, 112, 160, 128, 128, 128, 128, 128, 128 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001606 },
1607 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001608#if CONFIG_CB4X4
1609 { 0 },
1610#endif
1611 { 12 },
1612 { 12 },
1613 { 12 },
1614 { 12 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001615 }
1616 };
1617
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001618// TODO(urvang): 3rd context should be tx_type instead of intra mode just like
1619// the baseline.
clang-format67948d32016-09-07 22:40:40 -07001620static const aom_prob
1621 default_intra_ext_tx_prob[EXT_TX_SETS_INTRA][EXT_TX_SIZES][INTRA_MODES]
1622 [TX_TYPES - 1] = {
1623 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001624// ToDo(yaowu): remove unused entry 0.
1625#if CONFIG_CB4X4
1626 {
1627 { 0 },
1628 },
1629#endif
clang-format67948d32016-09-07 22:40:40 -07001630 {
1631 { 0 },
1632 { 0 },
1633 { 0 },
1634 { 0 },
1635 { 0 },
1636 { 0 },
1637 { 0 },
1638 { 0 },
1639 { 0 },
1640 { 0 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001641#if CONFIG_ALT_INTRA
1642 { 0 },
1643#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001644 },
1645 {
1646 { 0 },
1647 { 0 },
1648 { 0 },
1649 { 0 },
1650 { 0 },
1651 { 0 },
1652 { 0 },
1653 { 0 },
1654 { 0 },
1655 { 0 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001656#if CONFIG_ALT_INTRA
1657 { 0 },
1658#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001659 },
1660 {
1661 { 0 },
1662 { 0 },
1663 { 0 },
1664 { 0 },
1665 { 0 },
1666 { 0 },
1667 { 0 },
1668 { 0 },
1669 { 0 },
1670 { 0 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001671#if CONFIG_ALT_INTRA
1672 { 0 },
1673#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001674 },
1675 {
1676 { 0 },
1677 { 0 },
1678 { 0 },
1679 { 0 },
1680 { 0 },
1681 { 0 },
1682 { 0 },
1683 { 0 },
1684 { 0 },
1685 { 0 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001686#if CONFIG_ALT_INTRA
1687 { 0 },
1688#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001689 },
1690 },
1691 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001692#if CONFIG_CB4X4
1693 {
1694 { 0 },
1695 },
1696#endif
clang-format67948d32016-09-07 22:40:40 -07001697 {
1698 { 8, 224, 32, 128, 64, 128 },
1699 { 10, 32, 32, 128, 16, 192 },
1700 { 10, 32, 32, 128, 16, 64 },
1701 { 9, 200, 32, 128, 64, 128 },
1702 { 8, 8, 32, 128, 224, 128 },
1703 { 10, 32, 32, 128, 16, 192 },
1704 { 10, 32, 32, 128, 16, 64 },
1705 { 10, 23, 32, 128, 80, 176 },
1706 { 10, 23, 32, 128, 80, 176 },
1707 { 10, 32, 32, 128, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001708#if CONFIG_ALT_INTRA
1709 { 10, 32, 32, 128, 16, 64 },
1710#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001711 },
1712 {
1713 { 8, 224, 32, 128, 64, 128 },
1714 { 10, 32, 32, 128, 16, 192 },
1715 { 10, 32, 32, 128, 16, 64 },
1716 { 9, 200, 32, 128, 64, 128 },
1717 { 8, 8, 32, 128, 224, 128 },
1718 { 10, 32, 32, 128, 16, 192 },
1719 { 10, 32, 32, 128, 16, 64 },
1720 { 10, 23, 32, 128, 80, 176 },
1721 { 10, 23, 32, 128, 80, 176 },
1722 { 10, 32, 32, 128, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001723#if CONFIG_ALT_INTRA
1724 { 10, 32, 32, 128, 16, 64 },
1725#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001726 },
1727 {
1728 { 8, 224, 32, 128, 64, 128 },
1729 { 10, 32, 32, 128, 16, 192 },
1730 { 10, 32, 32, 128, 16, 64 },
1731 { 9, 200, 32, 128, 64, 128 },
1732 { 8, 8, 32, 128, 224, 128 },
1733 { 10, 32, 32, 128, 16, 192 },
1734 { 10, 32, 32, 128, 16, 64 },
1735 { 10, 23, 32, 128, 80, 176 },
1736 { 10, 23, 32, 128, 80, 176 },
1737 { 10, 32, 32, 128, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001738#if CONFIG_ALT_INTRA
1739 { 10, 32, 32, 128, 16, 64 },
1740#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001741 },
1742 {
1743 { 8, 224, 32, 128, 64, 128 },
1744 { 10, 32, 32, 128, 16, 192 },
1745 { 10, 32, 32, 128, 16, 64 },
1746 { 9, 200, 32, 128, 64, 128 },
1747 { 8, 8, 32, 128, 224, 128 },
1748 { 10, 32, 32, 128, 16, 192 },
1749 { 10, 32, 32, 128, 16, 64 },
1750 { 10, 23, 32, 128, 80, 176 },
1751 { 10, 23, 32, 128, 80, 176 },
1752 { 10, 32, 32, 128, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001753#if CONFIG_ALT_INTRA
1754 { 10, 32, 32, 128, 16, 64 },
1755#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001756 },
1757 },
1758 {
Jingning Han1a00cff2016-12-28 14:53:14 -08001759#if CONFIG_CB4X4
1760 {
1761 { 0 },
1762 },
1763#endif
clang-format67948d32016-09-07 22:40:40 -07001764 {
1765 { 8, 224, 64, 128 },
1766 { 10, 32, 16, 192 },
1767 { 10, 32, 16, 64 },
1768 { 9, 200, 64, 128 },
1769 { 8, 8, 224, 128 },
1770 { 10, 32, 16, 192 },
1771 { 10, 32, 16, 64 },
1772 { 10, 23, 80, 176 },
1773 { 10, 23, 80, 176 },
1774 { 10, 32, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001775#if CONFIG_ALT_INTRA
1776 { 10, 32, 16, 64 },
1777#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001778 },
1779 {
1780 { 8, 224, 64, 128 },
1781 { 10, 32, 16, 192 },
1782 { 10, 32, 16, 64 },
1783 { 9, 200, 64, 128 },
1784 { 8, 8, 224, 128 },
1785 { 10, 32, 16, 192 },
1786 { 10, 32, 16, 64 },
1787 { 10, 23, 80, 176 },
1788 { 10, 23, 80, 176 },
1789 { 10, 32, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001790#if CONFIG_ALT_INTRA
1791 { 10, 32, 16, 64 },
1792#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001793 },
1794 {
1795 { 8, 224, 64, 128 },
1796 { 10, 32, 16, 192 },
1797 { 10, 32, 16, 64 },
1798 { 9, 200, 64, 128 },
1799 { 8, 8, 224, 128 },
1800 { 10, 32, 16, 192 },
1801 { 10, 32, 16, 64 },
1802 { 10, 23, 80, 176 },
1803 { 10, 23, 80, 176 },
1804 { 10, 32, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001805#if CONFIG_ALT_INTRA
1806 { 10, 32, 16, 64 },
1807#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001808 },
1809 {
1810 { 8, 224, 64, 128 },
1811 { 10, 32, 16, 192 },
1812 { 10, 32, 16, 64 },
1813 { 9, 200, 64, 128 },
1814 { 8, 8, 224, 128 },
1815 { 10, 32, 16, 192 },
1816 { 10, 32, 16, 64 },
1817 { 10, 23, 80, 176 },
1818 { 10, 23, 80, 176 },
1819 { 10, 32, 16, 64 },
Urvang Joshi3a9a5272017-03-10 14:40:36 -08001820#if CONFIG_ALT_INTRA
1821 { 10, 32, 16, 64 },
1822#endif // CONFIG_ALT_INTRA
clang-format67948d32016-09-07 22:40:40 -07001823 },
1824 },
1825 };
Zoe Liu7f24e1b2017-03-17 17:42:05 -07001826#else // !CONFIG_EXT_TX
Yaowu Xuc27fc142016-08-22 16:08:15 -07001827
1828/* clang-format off */
Yaowu Xuf883b422016-08-30 14:01:10 -07001829const aom_tree_index av1_ext_tx_tree[TREE_SIZE(TX_TYPES)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001830 -DCT_DCT, 2,
1831 -ADST_ADST, 4,
1832 -ADST_DCT, -DCT_ADST
1833};
1834/* clang-format on */
1835
Nathan E. Egge7c5b4c12016-04-26 12:31:14 -04001836int av1_ext_tx_ind[TX_TYPES];
1837int av1_ext_tx_inv[TX_TYPES];
1838
Yaowu Xuf883b422016-08-30 14:01:10 -07001839static const aom_prob
Yaowu Xuc27fc142016-08-22 16:08:15 -07001840 default_intra_ext_tx_prob[EXT_TX_SIZES][TX_TYPES][TX_TYPES - 1] = {
Jingning Han607fa6a2016-10-26 10:46:28 -07001841#if CONFIG_CB4X4
1842 { { 240, 85, 128 }, { 4, 1, 248 }, { 4, 1, 8 }, { 4, 248, 128 } },
1843#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -07001844 { { 240, 85, 128 }, { 4, 1, 248 }, { 4, 1, 8 }, { 4, 248, 128 } },
1845 { { 244, 85, 128 }, { 8, 2, 248 }, { 8, 2, 8 }, { 8, 248, 128 } },
1846 { { 248, 85, 128 }, { 16, 4, 248 }, { 16, 4, 8 }, { 16, 248, 128 } },
1847 };
1848
Yaowu Xuf883b422016-08-30 14:01:10 -07001849static const aom_prob default_inter_ext_tx_prob[EXT_TX_SIZES][TX_TYPES - 1] = {
Jingning Han607fa6a2016-10-26 10:46:28 -07001850#if CONFIG_CB4X4
1851 { 160, 85, 128 },
1852#endif
1853 { 160, 85, 128 },
1854 { 176, 85, 128 },
1855 { 192, 85, 128 },
Yaowu Xuc27fc142016-08-22 16:08:15 -07001856};
1857#endif // CONFIG_EXT_TX
1858
hui sub4e25d22017-03-09 15:32:30 -08001859#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
clang-format55ce9e02017-02-15 22:27:12 -08001860static const aom_prob
1861 default_intra_filter_probs[INTRA_FILTERS + 1][INTRA_FILTERS - 1] = {
1862 { 98, 63, 60 }, { 98, 82, 80 }, { 94, 65, 103 },
1863 { 49, 25, 24 }, { 72, 38, 50 },
1864 };
Yaowu Xuf883b422016-08-30 14:01:10 -07001865const aom_tree_index av1_intra_filter_tree[TREE_SIZE(INTRA_FILTERS)] = {
Yaowu Xuc27fc142016-08-22 16:08:15 -07001866 -INTRA_FILTER_LINEAR, 2, -INTRA_FILTER_8TAP, 4, -INTRA_FILTER_8TAP_SHARP,
1867 -INTRA_FILTER_8TAP_SMOOTH,
1868};
hui sub4e25d22017-03-09 15:32:30 -08001869#if CONFIG_EC_MULTISYMBOL
1870int av1_intra_filter_ind[INTRA_FILTERS];
1871int av1_intra_filter_inv[INTRA_FILTERS];
1872#endif // CONFIG_EC_MULTISYMBOL
1873#endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
Yaowu Xuc27fc142016-08-22 16:08:15 -07001874
hui su5db97432016-10-14 16:10:14 -07001875#if CONFIG_FILTER_INTRA
1876static const aom_prob default_filter_intra_probs[2] = { 230, 230 };
1877#endif // CONFIG_FILTER_INTRA
1878
Yaowu Xuc27fc142016-08-22 16:08:15 -07001879#if CONFIG_SUPERTX
clang-format55ce9e02017-02-15 22:27:12 -08001880static const aom_prob
1881 default_supertx_prob[PARTITION_SUPERTX_CONTEXTS][TX_SIZES] = {
Jingning Hanfeb517c2016-12-21 16:02:07 -08001882#if CONFIG_CB4X4
1883#if CONFIG_TX64X64
clang-format55ce9e02017-02-15 22:27:12 -08001884 { 1, 1, 160, 160, 170, 180 }, { 1, 1, 200, 200, 210, 220 },
Jingning Hanfeb517c2016-12-21 16:02:07 -08001885#else
clang-format55ce9e02017-02-15 22:27:12 -08001886 { 1, 1, 160, 160, 170 }, { 1, 1, 200, 200, 210 },
Jingning Hanfeb517c2016-12-21 16:02:07 -08001887#endif // CONFIG_TX64X64
1888#else
Debargha Mukherjee5a488a62016-11-22 22:24:10 -08001889#if CONFIG_TX64X64
clang-format55ce9e02017-02-15 22:27:12 -08001890 { 1, 160, 160, 170, 180 }, { 1, 200, 200, 210, 220 },
Debargha Mukherjee5a488a62016-11-22 22:24:10 -08001891#else
clang-format55ce9e02017-02-15 22:27:12 -08001892 { 1, 160, 160, 170 }, { 1, 200, 200, 210 },
Jingning Hanfeb517c2016-12-21 16:02:07 -08001893#endif // CONFIG_CB4X4
Debargha Mukherjee5a488a62016-11-22 22:24:10 -08001894#endif // CONFIG_TX64X64
clang-format55ce9e02017-02-15 22:27:12 -08001895 };
Yaowu Xuc27fc142016-08-22 16:08:15 -07001896#endif // CONFIG_SUPERTX
1897
1898// FIXME(someone) need real defaults here
Nathan E. Eggef627e582016-08-19 20:06:51 -04001899static const aom_prob default_segment_tree_probs[SEG_TREE_PROBS] = {
1900 128, 128, 128, 128, 128, 128, 128
Yaowu Xuc27fc142016-08-22 16:08:15 -07001901};
Nathan E. Eggef627e582016-08-19 20:06:51 -04001902// clang-format off
1903static const aom_prob default_segment_pred_probs[PREDICTION_PROBS] = {
1904 128, 128, 128
1905};
1906// clang-format on
Yaowu Xuc27fc142016-08-22 16:08:15 -07001907
Thomas Davies1d7db722017-02-22 11:15:00 +00001908#if CONFIG_EC_MULTISYMBOL
Thomas Davies4ba27d02017-04-05 11:43:36 +01001909#if CONFIG_DUAL_FILTER
1910static const aom_cdf_prob
1911 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
1912 SWITCHABLE_FILTERS)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001913 { AOM_ICDF(30080), AOM_ICDF(31088), AOM_ICDF(32096), AOM_ICDF(32768), 0 },
1914 { AOM_ICDF(4608), AOM_ICDF(9620), AOM_ICDF(31338), AOM_ICDF(32768), 0 },
1915 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1916 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1917 { AOM_ICDF(19072), AOM_ICDF(23352), AOM_ICDF(27632), AOM_ICDF(32768), 0 },
1918 { AOM_ICDF(30080), AOM_ICDF(31088), AOM_ICDF(32096), AOM_ICDF(32768), 0 },
1919 { AOM_ICDF(4608), AOM_ICDF(9620), AOM_ICDF(31338), AOM_ICDF(32768), 0 },
1920 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1921 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1922 { AOM_ICDF(19072), AOM_ICDF(23352), AOM_ICDF(27632), AOM_ICDF(32768), 0 },
1923 { AOM_ICDF(30080), AOM_ICDF(31088), AOM_ICDF(32096), AOM_ICDF(32768), 0 },
1924 { AOM_ICDF(4608), AOM_ICDF(9620), AOM_ICDF(31338), AOM_ICDF(32768), 0 },
1925 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1926 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1927 { AOM_ICDF(19072), AOM_ICDF(23352), AOM_ICDF(27632), AOM_ICDF(32768), 0 },
1928 { AOM_ICDF(30080), AOM_ICDF(31088), AOM_ICDF(32096), AOM_ICDF(32768), 0 },
1929 { AOM_ICDF(4608), AOM_ICDF(9620), AOM_ICDF(31338), AOM_ICDF(32768), 0 },
1930 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1931 { AOM_ICDF(4352), AOM_ICDF(5240), AOM_ICDF(6128), AOM_ICDF(32768), 0 },
1932 { AOM_ICDF(19072), AOM_ICDF(23352), AOM_ICDF(27632), AOM_ICDF(32768), 0 }
Thomas Davies4ba27d02017-04-05 11:43:36 +01001933 };
1934#else
Thomas Davies1d7db722017-02-22 11:15:00 +00001935static const aom_cdf_prob
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001936 default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
1937 SWITCHABLE_FILTERS)] = {
1938 { AOM_ICDF(30080), AOM_ICDF(31781), AOM_ICDF(32768), 0 },
1939 { AOM_ICDF(4608), AOM_ICDF(32658), AOM_ICDF(32768), 0 },
1940 { AOM_ICDF(4352), AOM_ICDF(4685), AOM_ICDF(32768), 0 },
1941 { AOM_ICDF(19072), AOM_ICDF(26776), AOM_ICDF(32768), 0 },
1942 };
Thomas Davies4ba27d02017-04-05 11:43:36 +01001943#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00001944
1945static const aom_cdf_prob default_seg_tree_cdf[CDF_SIZE(MAX_SEGMENTS)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001946 AOM_ICDF(4096), AOM_ICDF(8192), AOM_ICDF(12288),
1947 AOM_ICDF(16384), AOM_ICDF(20480), AOM_ICDF(24576),
1948 AOM_ICDF(28672), AOM_ICDF(32768), 0
Thomas Davies1d7db722017-02-22 11:15:00 +00001949};
1950
1951static const aom_cdf_prob
1952 default_tx_size_cdf[MAX_TX_DEPTH][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
1953 1)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001954 { { AOM_ICDF(12800), AOM_ICDF(32768), 0 },
1955 { AOM_ICDF(8448), AOM_ICDF(32768), 0 } },
1956 { { AOM_ICDF(2560), AOM_ICDF(20496), AOM_ICDF(32768), 0 },
1957 { AOM_ICDF(1920), AOM_ICDF(14091), AOM_ICDF(32768), 0 } },
1958 { { AOM_ICDF(384), AOM_ICDF(17588), AOM_ICDF(19782), AOM_ICDF(32768), 0 },
1959 { AOM_ICDF(640), AOM_ICDF(7166), AOM_ICDF(8466), AOM_ICDF(32768), 0 } },
Thomas Davies1d7db722017-02-22 11:15:00 +00001960#if CONFIG_TX64X64
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001961 { { AOM_ICDF(128), AOM_ICDF(8288), AOM_ICDF(21293), AOM_ICDF(26986),
1962 AOM_ICDF(32768), 0 },
1963 { AOM_ICDF(128), AOM_ICDF(4208), AOM_ICDF(10009), AOM_ICDF(15965),
1964 AOM_ICDF(32768), 0 } },
Thomas Davies1d7db722017-02-22 11:15:00 +00001965#endif
1966 };
1967
Urvang Joshi63234542017-03-10 12:04:03 -08001968#if CONFIG_ALT_INTRA
1969static const aom_cdf_prob
1970 default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001971 { AOM_ICDF(11264), AOM_ICDF(12608), AOM_ICDF(16309), AOM_ICDF(21086),
1972 AOM_ICDF(23297), AOM_ICDF(24860), AOM_ICDF(27022), AOM_ICDF(28099),
1973 AOM_ICDF(29631), AOM_ICDF(31126), AOM_ICDF(32768), 0 },
1974 { AOM_ICDF(9600), AOM_ICDF(11953), AOM_ICDF(16100), AOM_ICDF(20922),
1975 AOM_ICDF(22756), AOM_ICDF(23913), AOM_ICDF(25435), AOM_ICDF(26724),
1976 AOM_ICDF(28046), AOM_ICDF(29927), AOM_ICDF(32768), 0 },
1977 { AOM_ICDF(9344), AOM_ICDF(11540), AOM_ICDF(16515), AOM_ICDF(21763),
1978 AOM_ICDF(23078), AOM_ICDF(23816), AOM_ICDF(24725), AOM_ICDF(25856),
1979 AOM_ICDF(26720), AOM_ICDF(28208), AOM_ICDF(32768), 0 },
1980 { AOM_ICDF(12288), AOM_ICDF(14448), AOM_ICDF(18026), AOM_ICDF(23346),
1981 AOM_ICDF(23833), AOM_ICDF(24188), AOM_ICDF(24724), AOM_ICDF(25415),
1982 AOM_ICDF(25817), AOM_ICDF(26876), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08001983 };
1984
1985static const aom_cdf_prob
1986 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07001987 { AOM_ICDF(25472), AOM_ICDF(25558), AOM_ICDF(27783), AOM_ICDF(30779),
1988 AOM_ICDF(30988), AOM_ICDF(31269), AOM_ICDF(31492), AOM_ICDF(31741),
1989 AOM_ICDF(32014), AOM_ICDF(32420), AOM_ICDF(32768), 0 },
1990 { AOM_ICDF(2176), AOM_ICDF(2415), AOM_ICDF(28381), AOM_ICDF(29574),
1991 AOM_ICDF(29832), AOM_ICDF(30712), AOM_ICDF(30881), AOM_ICDF(31662),
1992 AOM_ICDF(31761), AOM_ICDF(31922), AOM_ICDF(32768), 0 },
1993 { AOM_ICDF(3328), AOM_ICDF(3443), AOM_ICDF(4016), AOM_ICDF(31099),
1994 AOM_ICDF(31272), AOM_ICDF(31420), AOM_ICDF(31504), AOM_ICDF(31608),
1995 AOM_ICDF(31916), AOM_ICDF(32598), AOM_ICDF(32768), 0 },
1996 { AOM_ICDF(23424), AOM_ICDF(23534), AOM_ICDF(25915), AOM_ICDF(27831),
1997 AOM_ICDF(28058), AOM_ICDF(28431), AOM_ICDF(30142), AOM_ICDF(31209),
1998 AOM_ICDF(31459), AOM_ICDF(32369), AOM_ICDF(32768), 0 },
1999 { AOM_ICDF(22784), AOM_ICDF(22862), AOM_ICDF(24255), AOM_ICDF(26287),
2000 AOM_ICDF(28490), AOM_ICDF(29509), AOM_ICDF(29776), AOM_ICDF(30115),
2001 AOM_ICDF(31203), AOM_ICDF(31674), AOM_ICDF(32768), 0 },
2002 { AOM_ICDF(19712), AOM_ICDF(19865), AOM_ICDF(23141), AOM_ICDF(24428),
2003 AOM_ICDF(25731), AOM_ICDF(31377), AOM_ICDF(31622), AOM_ICDF(32047),
2004 AOM_ICDF(32458), AOM_ICDF(32767), AOM_ICDF(32768), 0 },
2005 { AOM_ICDF(21376), AOM_ICDF(21421), AOM_ICDF(22130), AOM_ICDF(27688),
2006 AOM_ICDF(28485), AOM_ICDF(28779), AOM_ICDF(28935), AOM_ICDF(29085),
2007 AOM_ICDF(31962), AOM_ICDF(32450), AOM_ICDF(32768), 0 },
2008 { AOM_ICDF(19712), AOM_ICDF(19814), AOM_ICDF(20725), AOM_ICDF(28510),
2009 AOM_ICDF(28814), AOM_ICDF(29099), AOM_ICDF(29457), AOM_ICDF(29729),
2010 AOM_ICDF(30133), AOM_ICDF(32408), AOM_ICDF(32768), 0 },
2011 { AOM_ICDF(19584), AOM_ICDF(19790), AOM_ICDF(23643), AOM_ICDF(25501),
2012 AOM_ICDF(25913), AOM_ICDF(26673), AOM_ICDF(27578), AOM_ICDF(30923),
2013 AOM_ICDF(31255), AOM_ICDF(31870), AOM_ICDF(32768), 0 },
2014 { AOM_ICDF(20864), AOM_ICDF(21004), AOM_ICDF(24129), AOM_ICDF(26308),
2015 AOM_ICDF(27062), AOM_ICDF(27065), AOM_ICDF(27488), AOM_ICDF(28045),
2016 AOM_ICDF(28506), AOM_ICDF(29272), AOM_ICDF(32768), 0 },
2017 { AOM_ICDF(23680), AOM_ICDF(23929), AOM_ICDF(27831), AOM_ICDF(30446),
2018 AOM_ICDF(30598), AOM_ICDF(31129), AOM_ICDF(31244), AOM_ICDF(31655),
2019 AOM_ICDF(31868), AOM_ICDF(32234), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002020 };
Zoe Liu7f24e1b2017-03-17 17:42:05 -07002021#else // !CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002022static const aom_cdf_prob
2023 default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)] = {
2024 { AOM_ICDF(8320), AOM_ICDF(11376), AOM_ICDF(12880), AOM_ICDF(19959),
2025 AOM_ICDF(23072), AOM_ICDF(24067), AOM_ICDF(25461), AOM_ICDF(26917),
2026 AOM_ICDF(29157), AOM_ICDF(32768), 0 },
2027 { AOM_ICDF(16896), AOM_ICDF(21112), AOM_ICDF(21932), AOM_ICDF(27852),
2028 AOM_ICDF(28667), AOM_ICDF(28916), AOM_ICDF(29593), AOM_ICDF(30089),
2029 AOM_ICDF(30905), AOM_ICDF(32768), 0 },
2030 { AOM_ICDF(22144), AOM_ICDF(25464), AOM_ICDF(26006), AOM_ICDF(30364),
2031 AOM_ICDF(30583), AOM_ICDF(30655), AOM_ICDF(31183), AOM_ICDF(31400),
2032 AOM_ICDF(31646), AOM_ICDF(32768), 0 },
2033 { AOM_ICDF(28288), AOM_ICDF(30650), AOM_ICDF(30964), AOM_ICDF(32288),
2034 AOM_ICDF(32308), AOM_ICDF(32331), AOM_ICDF(32495), AOM_ICDF(32586),
2035 AOM_ICDF(32607), AOM_ICDF(32768), 0 },
2036 };
Thomas Davies1d7db722017-02-22 11:15:00 +00002037
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002038static const aom_cdf_prob
2039 default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
2040 { AOM_ICDF(15360), AOM_ICDF(15836), AOM_ICDF(20863), AOM_ICDF(27513),
2041 AOM_ICDF(28269), AOM_ICDF(29048), AOM_ICDF(29455), AOM_ICDF(30154),
2042 AOM_ICDF(31206), AOM_ICDF(32768), 0 },
2043 { AOM_ICDF(6144), AOM_ICDF(7392), AOM_ICDF(22657), AOM_ICDF(25981),
2044 AOM_ICDF(26965), AOM_ICDF(28779), AOM_ICDF(29309), AOM_ICDF(30890),
2045 AOM_ICDF(31763), AOM_ICDF(32768), 0 },
2046 { AOM_ICDF(8576), AOM_ICDF(9143), AOM_ICDF(11450), AOM_ICDF(27575),
2047 AOM_ICDF(28108), AOM_ICDF(28438), AOM_ICDF(28658), AOM_ICDF(28995),
2048 AOM_ICDF(30410), AOM_ICDF(32768), 0 },
2049 { AOM_ICDF(12416), AOM_ICDF(12814), AOM_ICDF(16244), AOM_ICDF(22057),
2050 AOM_ICDF(23492), AOM_ICDF(24700), AOM_ICDF(26213), AOM_ICDF(27954),
2051 AOM_ICDF(29778), AOM_ICDF(32768), 0 },
2052 { AOM_ICDF(10624), AOM_ICDF(11057), AOM_ICDF(14619), AOM_ICDF(19415),
2053 AOM_ICDF(23134), AOM_ICDF(25679), AOM_ICDF(26399), AOM_ICDF(27618),
2054 AOM_ICDF(30676), AOM_ICDF(32768), 0 },
2055 { AOM_ICDF(10240), AOM_ICDF(10680), AOM_ICDF(15684), AOM_ICDF(19118),
2056 AOM_ICDF(21856), AOM_ICDF(27563), AOM_ICDF(28234), AOM_ICDF(29332),
2057 AOM_ICDF(31278), AOM_ICDF(32768), 0 },
2058 { AOM_ICDF(11008), AOM_ICDF(11433), AOM_ICDF(14100), AOM_ICDF(22522),
2059 AOM_ICDF(24365), AOM_ICDF(25330), AOM_ICDF(25737), AOM_ICDF(26341),
2060 AOM_ICDF(30433), AOM_ICDF(32768), 0 },
2061 { AOM_ICDF(10880), AOM_ICDF(11308), AOM_ICDF(13991), AOM_ICDF(23645),
2062 AOM_ICDF(24679), AOM_ICDF(25433), AOM_ICDF(25977), AOM_ICDF(26746),
2063 AOM_ICDF(28463), AOM_ICDF(32768), 0 },
2064 { AOM_ICDF(9856), AOM_ICDF(10483), AOM_ICDF(16054), AOM_ICDF(19959),
2065 AOM_ICDF(21708), AOM_ICDF(23628), AOM_ICDF(24949), AOM_ICDF(28797),
2066 AOM_ICDF(30658), AOM_ICDF(32768), 0 },
2067 { AOM_ICDF(12928), AOM_ICDF(14556), AOM_ICDF(22168), AOM_ICDF(27789),
2068 AOM_ICDF(28543), AOM_ICDF(29663), AOM_ICDF(29893), AOM_ICDF(30645),
2069 AOM_ICDF(31682), AOM_ICDF(32768), 0 },
2070 };
Urvang Joshi63234542017-03-10 12:04:03 -08002071#endif // CONFIG_ALT_INTRA
Thomas Davies1d7db722017-02-22 11:15:00 +00002072
Alex Converse57795a42017-03-14 12:18:25 -07002073#if CONFIG_EXT_PARTITION_TYPES
2074static const aom_cdf_prob
2075 default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(EXT_PARTITION_TYPES)] = {
2076 // 8x8 -> 4x4 only supports the four legacy partition types
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002077 { AOM_ICDF(25472), AOM_ICDF(28949), AOM_ICDF(31052), AOM_ICDF(32768), 0,
2078 0, 0, 0, 0 },
2079 { AOM_ICDF(18816), AOM_ICDF(22250), AOM_ICDF(28783), AOM_ICDF(32768), 0,
2080 0, 0, 0, 0 },
2081 { AOM_ICDF(18944), AOM_ICDF(26126), AOM_ICDF(29188), AOM_ICDF(32768), 0,
2082 0, 0, 0, 0 },
2083 { AOM_ICDF(15488), AOM_ICDF(22508), AOM_ICDF(27077), AOM_ICDF(32768), 0,
2084 0, 0, 0, 0 },
2085 { AOM_ICDF(22272), AOM_ICDF(23768), AOM_ICDF(25043), AOM_ICDF(29996),
2086 AOM_ICDF(30744), AOM_ICDF(31493), AOM_ICDF(32130), AOM_ICDF(32768), 0 },
2087 { AOM_ICDF(11776), AOM_ICDF(13457), AOM_ICDF(16315), AOM_ICDF(28229),
2088 AOM_ICDF(29069), AOM_ICDF(29910), AOM_ICDF(31339), AOM_ICDF(32768), 0 },
2089 { AOM_ICDF(10496), AOM_ICDF(14802), AOM_ICDF(16136), AOM_ICDF(27127),
2090 AOM_ICDF(29280), AOM_ICDF(31434), AOM_ICDF(32101), AOM_ICDF(32768), 0 },
2091 { AOM_ICDF(6784), AOM_ICDF(8763), AOM_ICDF(10440), AOM_ICDF(29110),
2092 AOM_ICDF(30100), AOM_ICDF(31090), AOM_ICDF(31929), AOM_ICDF(32768), 0 },
2093 { AOM_ICDF(22656), AOM_ICDF(23801), AOM_ICDF(24702), AOM_ICDF(30721),
2094 AOM_ICDF(31294), AOM_ICDF(31867), AOM_ICDF(32317), AOM_ICDF(32768), 0 },
2095 { AOM_ICDF(8704), AOM_ICDF(9926), AOM_ICDF(12586), AOM_ICDF(28885),
2096 AOM_ICDF(29496), AOM_ICDF(30107), AOM_ICDF(31437), AOM_ICDF(32768), 0 },
2097 { AOM_ICDF(6656), AOM_ICDF(10685), AOM_ICDF(11566), AOM_ICDF(27857),
2098 AOM_ICDF(29871), AOM_ICDF(31886), AOM_ICDF(32327), AOM_ICDF(32768), 0 },
2099 { AOM_ICDF(2176), AOM_ICDF(3012), AOM_ICDF(3690), AOM_ICDF(31253),
2100 AOM_ICDF(31671), AOM_ICDF(32090), AOM_ICDF(32429), AOM_ICDF(32768), 0 },
2101 { AOM_ICDF(28416), AOM_ICDF(28705), AOM_ICDF(28926), AOM_ICDF(32258),
2102 AOM_ICDF(32402), AOM_ICDF(32547), AOM_ICDF(32657), AOM_ICDF(32768), 0 },
2103 { AOM_ICDF(9216), AOM_ICDF(9952), AOM_ICDF(11849), AOM_ICDF(30134),
2104 AOM_ICDF(30502), AOM_ICDF(30870), AOM_ICDF(31819), AOM_ICDF(32768), 0 },
2105 { AOM_ICDF(7424), AOM_ICDF(9008), AOM_ICDF(9528), AOM_ICDF(30664),
2106 AOM_ICDF(31456), AOM_ICDF(32248), AOM_ICDF(32508), AOM_ICDF(32768), 0 },
2107 { AOM_ICDF(1280), AOM_ICDF(1710), AOM_ICDF(2069), AOM_ICDF(31978),
2108 AOM_ICDF(32193), AOM_ICDF(32409), AOM_ICDF(32588), AOM_ICDF(32768), 0 },
Alex Converse57795a42017-03-14 12:18:25 -07002109#if CONFIG_EXT_PARTITION
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002110 { AOM_ICDF(28416), AOM_ICDF(28705), AOM_ICDF(28926), AOM_ICDF(32258),
2111 AOM_ICDF(32402), AOM_ICDF(32547), AOM_ICDF(32657), AOM_ICDF(32768), 0 },
2112 { AOM_ICDF(9216), AOM_ICDF(9952), AOM_ICDF(11849), AOM_ICDF(30134),
2113 AOM_ICDF(30502), AOM_ICDF(30870), AOM_ICDF(31819), AOM_ICDF(32768), 0 },
2114 { AOM_ICDF(7424), AOM_ICDF(9008), AOM_ICDF(9528), AOM_ICDF(30664),
2115 AOM_ICDF(31456), AOM_ICDF(32248), AOM_ICDF(32508), AOM_ICDF(32768), 0 },
2116 { AOM_ICDF(1280), AOM_ICDF(1710), AOM_ICDF(2069), AOM_ICDF(31978),
2117 AOM_ICDF(32193), AOM_ICDF(32409), AOM_ICDF(32588), AOM_ICDF(32768), 0 },
Alex Converse57795a42017-03-14 12:18:25 -07002118#endif
2119 };
2120#else
Thomas Davies1d7db722017-02-22 11:15:00 +00002121static const aom_cdf_prob
2122 default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(PARTITION_TYPES)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002123 { AOM_ICDF(25472), AOM_ICDF(28949), AOM_ICDF(31052), AOM_ICDF(32768), 0 },
2124 { AOM_ICDF(18816), AOM_ICDF(22250), AOM_ICDF(28783), AOM_ICDF(32768), 0 },
2125 { AOM_ICDF(18944), AOM_ICDF(26126), AOM_ICDF(29188), AOM_ICDF(32768), 0 },
2126 { AOM_ICDF(15488), AOM_ICDF(22508), AOM_ICDF(27077), AOM_ICDF(32768), 0 },
2127 { AOM_ICDF(22272), AOM_ICDF(25265), AOM_ICDF(27815), AOM_ICDF(32768), 0 },
2128 { AOM_ICDF(11776), AOM_ICDF(15138), AOM_ICDF(20854), AOM_ICDF(32768), 0 },
2129 { AOM_ICDF(10496), AOM_ICDF(19109), AOM_ICDF(21777), AOM_ICDF(32768), 0 },
2130 { AOM_ICDF(6784), AOM_ICDF(10743), AOM_ICDF(14098), AOM_ICDF(32768), 0 },
2131 { AOM_ICDF(22656), AOM_ICDF(24947), AOM_ICDF(26749), AOM_ICDF(32768), 0 },
2132 { AOM_ICDF(8704), AOM_ICDF(11148), AOM_ICDF(16469), AOM_ICDF(32768), 0 },
2133 { AOM_ICDF(6656), AOM_ICDF(14714), AOM_ICDF(16477), AOM_ICDF(32768), 0 },
2134 { AOM_ICDF(2176), AOM_ICDF(3849), AOM_ICDF(5205), AOM_ICDF(32768), 0 },
2135 { AOM_ICDF(28416), AOM_ICDF(28994), AOM_ICDF(29436), AOM_ICDF(32768), 0 },
2136 { AOM_ICDF(9216), AOM_ICDF(10688), AOM_ICDF(14483), AOM_ICDF(32768), 0 },
2137 { AOM_ICDF(7424), AOM_ICDF(10592), AOM_ICDF(11632), AOM_ICDF(32768), 0 },
2138 { AOM_ICDF(1280), AOM_ICDF(2141), AOM_ICDF(2859), AOM_ICDF(32768), 0 },
Alex Converse57795a42017-03-14 12:18:25 -07002139#if CONFIG_EXT_PARTITION
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002140 { AOM_ICDF(28416), AOM_ICDF(28994), AOM_ICDF(29436), AOM_ICDF(32768), 0 },
2141 { AOM_ICDF(9216), AOM_ICDF(10688), AOM_ICDF(14483), AOM_ICDF(32768), 0 },
2142 { AOM_ICDF(7424), AOM_ICDF(10592), AOM_ICDF(11632), AOM_ICDF(32768), 0 },
2143 { AOM_ICDF(1280), AOM_ICDF(2141), AOM_ICDF(2859), AOM_ICDF(32768), 0 },
Alex Converse57795a42017-03-14 12:18:25 -07002144#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00002145 };
Alex Converse57795a42017-03-14 12:18:25 -07002146#endif
Thomas Davies1d7db722017-02-22 11:15:00 +00002147
2148static const aom_cdf_prob
2149 default_inter_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(INTER_MODES)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002150 { AOM_ICDF(256), AOM_ICDF(22227), AOM_ICDF(23627), AOM_ICDF(32768), 0 },
2151 { AOM_ICDF(896), AOM_ICDF(18948), AOM_ICDF(23537), AOM_ICDF(32768), 0 },
2152 { AOM_ICDF(896), AOM_ICDF(21563), AOM_ICDF(24320), AOM_ICDF(32768), 0 },
2153 { AOM_ICDF(896), AOM_ICDF(12599), AOM_ICDF(17799), AOM_ICDF(32768), 0 },
2154 { AOM_ICDF(1024), AOM_ICDF(8960), AOM_ICDF(13238), AOM_ICDF(32768), 0 },
2155 { AOM_ICDF(2176), AOM_ICDF(11856), AOM_ICDF(14388), AOM_ICDF(32768), 0 },
2156 { AOM_ICDF(3200), AOM_ICDF(6550), AOM_ICDF(9622), AOM_ICDF(32768), 0 },
Thomas Davies1d7db722017-02-22 11:15:00 +00002157 };
2158
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002159#if CONFIG_EXT_TX
2160static const aom_cdf_prob default_intra_ext_tx_cdf
2161 [EXT_TX_SETS_INTRA][EXT_TX_SIZES][INTRA_MODES][CDF_SIZE(TX_TYPES)] = {
2162 {
2163// FIXME: unused zero positions, from uncoded trivial transform set
2164#if CONFIG_CB4X4
2165 {
2166 { 0 },
2167 },
2168#endif
2169 { { 0 },
2170 { 0 },
2171 { 0 },
2172 { 0 },
2173 { 0 },
2174 { 0 },
2175 { 0 },
2176 { 0 },
2177 { 0 },
2178 { 0 },
2179#if CONFIG_ALT_INTRA
2180 { 0 }
2181#endif
2182 },
2183 { { 0 },
2184 { 0 },
2185 { 0 },
2186 { 0 },
2187 { 0 },
2188 { 0 },
2189 { 0 },
2190 { 0 },
2191 { 0 },
2192 { 0 },
2193#if CONFIG_ALT_INTRA
2194 { 0 }
2195#endif
2196 },
2197 { { 0 },
2198 { 0 },
2199 { 0 },
2200 { 0 },
2201 { 0 },
2202 { 0 },
2203 { 0 },
2204 { 0 },
2205 { 0 },
2206 { 0 },
2207#if CONFIG_ALT_INTRA
2208 { 0 }
2209#endif
2210 },
2211 { { 0 },
2212 { 0 },
2213 { 0 },
2214 { 0 },
2215 { 0 },
2216 { 0 },
2217 { 0 },
2218 { 0 },
2219 { 0 },
2220 { 0 },
2221#if CONFIG_ALT_INTRA
2222 { 0 }
2223#endif
2224 },
2225 },
2226 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002227 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29048), AOM_ICDF(29296),
2228 AOM_ICDF(30164), AOM_ICDF(31466), AOM_ICDF(32768), 0 },
2229 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2230 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2231 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2232 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2233 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(26284), AOM_ICDF(26717),
2234 AOM_ICDF(28230), AOM_ICDF(30499), AOM_ICDF(32768), 0 },
2235 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(3938), AOM_ICDF(5860),
2236 AOM_ICDF(29404), AOM_ICDF(31086), AOM_ICDF(32768), 0 },
2237 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2238 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2239 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2240 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2241 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2242 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2243 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2244 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2245 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2246 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002247#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002248 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2249 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002250#endif
2251 },
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002252 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29048), AOM_ICDF(29296),
2253 AOM_ICDF(30164), AOM_ICDF(31466), AOM_ICDF(32768), 0 },
2254 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2255 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2256 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2257 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2258 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(26284), AOM_ICDF(26717),
2259 AOM_ICDF(28230), AOM_ICDF(30499), AOM_ICDF(32768), 0 },
2260 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(3938), AOM_ICDF(5860),
2261 AOM_ICDF(29404), AOM_ICDF(31086), AOM_ICDF(32768), 0 },
2262 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2263 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2264 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2265 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2266 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2267 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2268 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2269 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2270 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2271 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002272#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002273 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2274 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002275#endif
2276 },
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002277 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29048), AOM_ICDF(29296),
2278 AOM_ICDF(30164), AOM_ICDF(31466), AOM_ICDF(32768), 0 },
2279 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2280 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2281 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2282 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2283 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(26284), AOM_ICDF(26717),
2284 AOM_ICDF(28230), AOM_ICDF(30499), AOM_ICDF(32768), 0 },
2285 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(3938), AOM_ICDF(5860),
2286 AOM_ICDF(29404), AOM_ICDF(31086), AOM_ICDF(32768), 0 },
2287 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2288 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2289 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2290 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2291 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2292 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2293 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2294 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2295 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2296 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002297#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002298 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2299 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002300#endif
2301 },
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002302 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29048), AOM_ICDF(29296),
2303 AOM_ICDF(30164), AOM_ICDF(31466), AOM_ICDF(32768), 0 },
2304 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2305 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2306 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2307 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2308 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(26284), AOM_ICDF(26717),
2309 AOM_ICDF(28230), AOM_ICDF(30499), AOM_ICDF(32768), 0 },
2310 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(3938), AOM_ICDF(5860),
2311 AOM_ICDF(29404), AOM_ICDF(31086), AOM_ICDF(32768), 0 },
2312 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2313 AOM_ICDF(10167), AOM_ICDF(27118), AOM_ICDF(32768), 0 },
2314 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2315 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
2316 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2317 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2318 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(5900), AOM_ICDF(7691),
2319 AOM_ICDF(15528), AOM_ICDF(27380), AOM_ICDF(32768), 0 },
2320 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2321 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002322#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002323 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(8660),
2324 AOM_ICDF(10167), AOM_ICDF(15817), AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002325#endif
2326 },
2327 },
2328 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002329 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29792), AOM_ICDF(31280),
2330 AOM_ICDF(32768), 0 },
2331 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2332 AOM_ICDF(32768), 0 },
2333 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2334 AOM_ICDF(32768), 0 },
2335 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(27581), AOM_ICDF(30174),
2336 AOM_ICDF(32768), 0 },
2337 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(28924), AOM_ICDF(30846),
2338 AOM_ICDF(32768), 0 },
2339 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2340 AOM_ICDF(32768), 0 },
2341 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2342 AOM_ICDF(32768), 0 },
2343 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2344 AOM_ICDF(32768), 0 },
2345 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2346 AOM_ICDF(32768), 0 },
2347 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2348 AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002349#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002350 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2351 AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002352#endif
2353 },
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002354 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29792), AOM_ICDF(31280),
2355 AOM_ICDF(32768), 0 },
2356 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2357 AOM_ICDF(32768), 0 },
2358 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2359 AOM_ICDF(32768), 0 },
2360 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(27581), AOM_ICDF(30174),
2361 AOM_ICDF(32768), 0 },
2362 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(28924), AOM_ICDF(30846),
2363 AOM_ICDF(32768), 0 },
2364 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2365 AOM_ICDF(32768), 0 },
2366 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2367 AOM_ICDF(32768), 0 },
2368 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2369 AOM_ICDF(32768), 0 },
2370 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2371 AOM_ICDF(32768), 0 },
2372 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2373 AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002374#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002375 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2376 AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002377#endif
2378 },
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002379 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29792), AOM_ICDF(31280),
2380 AOM_ICDF(32768), 0 },
2381 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2382 AOM_ICDF(32768), 0 },
2383 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2384 AOM_ICDF(32768), 0 },
2385 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(27581), AOM_ICDF(30174),
2386 AOM_ICDF(32768), 0 },
2387 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(28924), AOM_ICDF(30846),
2388 AOM_ICDF(32768), 0 },
2389 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2390 AOM_ICDF(32768), 0 },
2391 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2392 AOM_ICDF(32768), 0 },
2393 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2394 AOM_ICDF(32768), 0 },
2395 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2396 AOM_ICDF(32768), 0 },
2397 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2398 AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002399#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002400 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2401 AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002402#endif
2403 },
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002404 { { AOM_ICDF(1024), AOM_ICDF(28800), AOM_ICDF(29792), AOM_ICDF(31280),
2405 AOM_ICDF(32768), 0 },
2406 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2407 AOM_ICDF(32768), 0 },
2408 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2409 AOM_ICDF(32768), 0 },
2410 { AOM_ICDF(1152), AOM_ICDF(25852), AOM_ICDF(27581), AOM_ICDF(30174),
2411 AOM_ICDF(32768), 0 },
2412 { AOM_ICDF(1024), AOM_ICDF(2016), AOM_ICDF(28924), AOM_ICDF(30846),
2413 AOM_ICDF(32768), 0 },
2414 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(26310),
2415 AOM_ICDF(32768), 0 },
2416 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2417 AOM_ICDF(32768), 0 },
2418 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2419 AOM_ICDF(32768), 0 },
2420 { AOM_ICDF(1280), AOM_ICDF(4109), AOM_ICDF(13065), AOM_ICDF(26611),
2421 AOM_ICDF(32768), 0 },
2422 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2423 AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002424#if CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002425 { AOM_ICDF(1280), AOM_ICDF(5216), AOM_ICDF(6938), AOM_ICDF(13396),
2426 AOM_ICDF(32768), 0 }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002427#endif
2428 },
2429 }
2430 };
2431static const aom_cdf_prob
2432 default_inter_ext_tx_cdf[EXT_TX_SETS_INTER][EXT_TX_SIZES][CDF_SIZE(
2433 TX_TYPES)] = {
2434 {
2435#if CONFIG_CB4X4
2436 { 0 },
2437#endif
2438 { 0 },
2439 { 0 },
2440 { 0 },
2441 { 0 } },
2442 {
2443#if CONFIG_CB4X4
2444 { 0 },
2445#endif
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002446 { AOM_ICDF(1280), AOM_ICDF(1453), AOM_ICDF(1626), AOM_ICDF(2277),
2447 AOM_ICDF(2929), AOM_ICDF(3580), AOM_ICDF(4232), AOM_ICDF(16717),
2448 AOM_ICDF(19225), AOM_ICDF(21733), AOM_ICDF(24241), AOM_ICDF(26749),
2449 AOM_ICDF(28253), AOM_ICDF(29758), AOM_ICDF(31263), AOM_ICDF(32768),
2450 0 },
2451 { AOM_ICDF(1280), AOM_ICDF(1453), AOM_ICDF(1626), AOM_ICDF(2277),
2452 AOM_ICDF(2929), AOM_ICDF(3580), AOM_ICDF(4232), AOM_ICDF(16717),
2453 AOM_ICDF(19225), AOM_ICDF(21733), AOM_ICDF(24241), AOM_ICDF(26749),
2454 AOM_ICDF(28253), AOM_ICDF(29758), AOM_ICDF(31263), AOM_ICDF(32768),
2455 0 },
2456 { AOM_ICDF(1280), AOM_ICDF(1453), AOM_ICDF(1626), AOM_ICDF(2277),
2457 AOM_ICDF(2929), AOM_ICDF(3580), AOM_ICDF(4232), AOM_ICDF(16717),
2458 AOM_ICDF(19225), AOM_ICDF(21733), AOM_ICDF(24241), AOM_ICDF(26749),
2459 AOM_ICDF(28253), AOM_ICDF(29758), AOM_ICDF(31263), AOM_ICDF(32768),
2460 0 },
2461 { AOM_ICDF(1280), AOM_ICDF(1453), AOM_ICDF(1626), AOM_ICDF(2277),
2462 AOM_ICDF(2929), AOM_ICDF(3580), AOM_ICDF(4232), AOM_ICDF(16717),
2463 AOM_ICDF(19225), AOM_ICDF(21733), AOM_ICDF(24241), AOM_ICDF(26749),
2464 AOM_ICDF(28253), AOM_ICDF(29758), AOM_ICDF(31263), AOM_ICDF(32768),
2465 0 } },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002466 {
2467#if CONFIG_CB4X4
2468 { 0 },
2469#endif
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002470 { AOM_ICDF(1280), AOM_ICDF(3125), AOM_ICDF(4970), AOM_ICDF(17132),
2471 AOM_ICDF(19575), AOM_ICDF(22018), AOM_ICDF(24461), AOM_ICDF(26904),
2472 AOM_ICDF(28370), AOM_ICDF(29836), AOM_ICDF(31302), AOM_ICDF(32768),
2473 0 },
2474 { AOM_ICDF(1280), AOM_ICDF(3125), AOM_ICDF(4970), AOM_ICDF(17132),
2475 AOM_ICDF(19575), AOM_ICDF(22018), AOM_ICDF(24461), AOM_ICDF(26904),
2476 AOM_ICDF(28370), AOM_ICDF(29836), AOM_ICDF(31302), AOM_ICDF(32768),
2477 0 },
2478 { AOM_ICDF(1280), AOM_ICDF(3125), AOM_ICDF(4970), AOM_ICDF(17132),
2479 AOM_ICDF(19575), AOM_ICDF(22018), AOM_ICDF(24461), AOM_ICDF(26904),
2480 AOM_ICDF(28370), AOM_ICDF(29836), AOM_ICDF(31302), AOM_ICDF(32768),
2481 0 },
2482 { AOM_ICDF(1280), AOM_ICDF(3125), AOM_ICDF(4970), AOM_ICDF(17132),
2483 AOM_ICDF(19575), AOM_ICDF(22018), AOM_ICDF(24461), AOM_ICDF(26904),
2484 AOM_ICDF(28370), AOM_ICDF(29836), AOM_ICDF(31302), AOM_ICDF(32768),
2485 0 } },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002486 {
2487#if CONFIG_CB4X4
2488 { 0 },
2489#endif
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002490 { AOM_ICDF(1536), AOM_ICDF(32768), 0 },
2491 { AOM_ICDF(1536), AOM_ICDF(32768), 0 },
2492 { AOM_ICDF(1536), AOM_ICDF(32768), 0 },
2493 { AOM_ICDF(1536), AOM_ICDF(32768), 0 } }
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002494 };
2495#else
Thomas Davies1d7db722017-02-22 11:15:00 +00002496static const aom_cdf_prob
2497 default_intra_ext_tx_cdf[EXT_TX_SIZES][TX_TYPES][CDF_SIZE(TX_TYPES)] = {
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002498#if CONFIG_CB4X4
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002499 { { AOM_ICDF(30720), AOM_ICDF(31400), AOM_ICDF(32084), AOM_ICDF(32768),
2500 0 },
2501 { AOM_ICDF(512), AOM_ICDF(638), AOM_ICDF(31764), AOM_ICDF(32768), 0 },
2502 { AOM_ICDF(512), AOM_ICDF(638), AOM_ICDF(1642), AOM_ICDF(32768), 0 },
2503 { AOM_ICDF(512), AOM_ICDF(31760), AOM_ICDF(32264), AOM_ICDF(32768),
2504 0 } },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002505#endif
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002506 { { AOM_ICDF(30720), AOM_ICDF(31400), AOM_ICDF(32084), AOM_ICDF(32768),
2507 0 },
2508 { AOM_ICDF(512), AOM_ICDF(638), AOM_ICDF(31764), AOM_ICDF(32768), 0 },
2509 { AOM_ICDF(512), AOM_ICDF(638), AOM_ICDF(1642), AOM_ICDF(32768), 0 },
2510 { AOM_ICDF(512), AOM_ICDF(31760), AOM_ICDF(32264), AOM_ICDF(32768),
2511 0 } },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002512
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002513 { { AOM_ICDF(31232), AOM_ICDF(31742), AOM_ICDF(32255), AOM_ICDF(32768),
2514 0 },
2515 { AOM_ICDF(1024), AOM_ICDF(1272), AOM_ICDF(31784), AOM_ICDF(32768), 0 },
2516 { AOM_ICDF(1024), AOM_ICDF(1272), AOM_ICDF(2256), AOM_ICDF(32768), 0 },
2517 { AOM_ICDF(1024), AOM_ICDF(31776), AOM_ICDF(32272), AOM_ICDF(32768),
2518 0 } },
2519 { { AOM_ICDF(31744), AOM_ICDF(32084), AOM_ICDF(32426), AOM_ICDF(32768),
2520 0 },
2521 { AOM_ICDF(2048), AOM_ICDF(2528), AOM_ICDF(31823), AOM_ICDF(32768), 0 },
2522 { AOM_ICDF(2048), AOM_ICDF(2528), AOM_ICDF(3473), AOM_ICDF(32768), 0 },
2523 { AOM_ICDF(2048), AOM_ICDF(31808), AOM_ICDF(32288), AOM_ICDF(32768),
2524 0 } },
Thomas Davies1d7db722017-02-22 11:15:00 +00002525 };
2526
2527static const aom_cdf_prob
2528 default_inter_ext_tx_cdf[EXT_TX_SIZES][CDF_SIZE(TX_TYPES)] = {
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002529#if CONFIG_CB4X4
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002530 { AOM_ICDF(20480), AOM_ICDF(24560), AOM_ICDF(28664), AOM_ICDF(32768), 0 },
Thomas Daviesb1bedf52017-03-17 14:03:28 +00002531#endif
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002532 { AOM_ICDF(20480), AOM_ICDF(24560), AOM_ICDF(28664), AOM_ICDF(32768), 0 },
2533 { AOM_ICDF(22528), AOM_ICDF(25928), AOM_ICDF(29348), AOM_ICDF(32768), 0 },
2534 { AOM_ICDF(24576), AOM_ICDF(27296), AOM_ICDF(30032), AOM_ICDF(32768), 0 },
Thomas Davies1d7db722017-02-22 11:15:00 +00002535 };
hui sub4e25d22017-03-09 15:32:30 -08002536#endif // !CONFIG_EXT_TX
2537
2538#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
2539static const aom_cdf_prob
2540 default_intra_filter_cdf[INTRA_FILTERS + 1][CDF_SIZE(INTRA_FILTERS)] = {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002541 { AOM_ICDF(12544), AOM_ICDF(17521), AOM_ICDF(21095), AOM_ICDF(32768), 0 },
2542 { AOM_ICDF(12544), AOM_ICDF(19022), AOM_ICDF(23318), AOM_ICDF(32768), 0 },
2543 { AOM_ICDF(12032), AOM_ICDF(17297), AOM_ICDF(23522), AOM_ICDF(32768), 0 },
2544 { AOM_ICDF(6272), AOM_ICDF(8860), AOM_ICDF(11101), AOM_ICDF(32768), 0 },
2545 { AOM_ICDF(9216), AOM_ICDF(12712), AOM_ICDF(16629), AOM_ICDF(32768), 0 },
hui sub4e25d22017-03-09 15:32:30 -08002546 };
2547#endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
Thomas Davies1d7db722017-02-22 11:15:00 +00002548
2549// CDF version of 'av1_kf_y_mode_prob'.
Urvang Joshi63234542017-03-10 12:04:03 -08002550const aom_cdf_prob
2551 av1_kf_y_mode_cdf[INTRA_MODES][INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
2552#if CONFIG_ALT_INTRA
2553 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002554 { AOM_ICDF(15488), AOM_ICDF(17513), AOM_ICDF(20731), AOM_ICDF(24586),
2555 AOM_ICDF(25921), AOM_ICDF(26749), AOM_ICDF(27807), AOM_ICDF(28602),
2556 AOM_ICDF(29530), AOM_ICDF(30681), AOM_ICDF(32768), 0 },
2557 { AOM_ICDF(11648), AOM_ICDF(14783), AOM_ICDF(21879), AOM_ICDF(23981),
2558 AOM_ICDF(25213), AOM_ICDF(26218), AOM_ICDF(27472), AOM_ICDF(28465),
2559 AOM_ICDF(29221), AOM_ICDF(30232), AOM_ICDF(32768), 0 },
2560 { AOM_ICDF(8448), AOM_ICDF(11108), AOM_ICDF(13392), AOM_ICDF(25167),
2561 AOM_ICDF(26295), AOM_ICDF(26789), AOM_ICDF(27536), AOM_ICDF(28088),
2562 AOM_ICDF(29039), AOM_ICDF(30700), AOM_ICDF(32768), 0 },
2563 { AOM_ICDF(13568), AOM_ICDF(15293), AOM_ICDF(18706), AOM_ICDF(21610),
2564 AOM_ICDF(23139), AOM_ICDF(24254), AOM_ICDF(26383), AOM_ICDF(27630),
2565 AOM_ICDF(28613), AOM_ICDF(30350), AOM_ICDF(32768), 0 },
2566 { AOM_ICDF(9600), AOM_ICDF(11772), AOM_ICDF(14397), AOM_ICDF(16580),
2567 AOM_ICDF(20091), AOM_ICDF(22865), AOM_ICDF(24490), AOM_ICDF(25395),
2568 AOM_ICDF(27037), AOM_ICDF(28694), AOM_ICDF(32768), 0 },
2569 { AOM_ICDF(12160), AOM_ICDF(14092), AOM_ICDF(17010), AOM_ICDF(18922),
2570 AOM_ICDF(22683), AOM_ICDF(25751), AOM_ICDF(27725), AOM_ICDF(30109),
2571 AOM_ICDF(31449), AOM_ICDF(32763), AOM_ICDF(32768), 0 },
2572 { AOM_ICDF(9088), AOM_ICDF(10383), AOM_ICDF(12569), AOM_ICDF(17113),
2573 AOM_ICDF(21351), AOM_ICDF(22511), AOM_ICDF(23633), AOM_ICDF(24382),
2574 AOM_ICDF(28215), AOM_ICDF(29798), AOM_ICDF(32768), 0 },
2575 { AOM_ICDF(10880), AOM_ICDF(12248), AOM_ICDF(15214), AOM_ICDF(20017),
2576 AOM_ICDF(21922), AOM_ICDF(22757), AOM_ICDF(24360), AOM_ICDF(25280),
2577 AOM_ICDF(26684), AOM_ICDF(29869), AOM_ICDF(32768), 0 },
2578 { AOM_ICDF(11008), AOM_ICDF(13133), AOM_ICDF(15587), AOM_ICDF(17872),
2579 AOM_ICDF(19579), AOM_ICDF(21157), AOM_ICDF(23788), AOM_ICDF(26629),
2580 AOM_ICDF(27732), AOM_ICDF(29601), AOM_ICDF(32768), 0 },
2581 { AOM_ICDF(10112), AOM_ICDF(12325), AOM_ICDF(15360), AOM_ICDF(18348),
2582 AOM_ICDF(20452), AOM_ICDF(20460), AOM_ICDF(21902), AOM_ICDF(23982),
2583 AOM_ICDF(25149), AOM_ICDF(26667), AOM_ICDF(32768), 0 },
2584 { AOM_ICDF(8704), AOM_ICDF(14250), AOM_ICDF(17722), AOM_ICDF(23128),
2585 AOM_ICDF(24217), AOM_ICDF(24892), AOM_ICDF(26215), AOM_ICDF(27392),
2586 AOM_ICDF(28358), AOM_ICDF(30287), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002587 },
2588 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002589 { AOM_ICDF(8448), AOM_ICDF(10443), AOM_ICDF(20733), AOM_ICDF(23689),
2590 AOM_ICDF(24634), AOM_ICDF(25951), AOM_ICDF(26670), AOM_ICDF(27861),
2591 AOM_ICDF(28379), AOM_ICDF(29305), AOM_ICDF(32768), 0 },
2592 { AOM_ICDF(6656), AOM_ICDF(9206), AOM_ICDF(24577), AOM_ICDF(25792),
2593 AOM_ICDF(26335), AOM_ICDF(27169), AOM_ICDF(27913), AOM_ICDF(28956),
2594 AOM_ICDF(29239), AOM_ICDF(29680), AOM_ICDF(32768), 0 },
2595 { AOM_ICDF(7168), AOM_ICDF(8968), AOM_ICDF(15662), AOM_ICDF(22937),
2596 AOM_ICDF(23849), AOM_ICDF(24616), AOM_ICDF(25603), AOM_ICDF(26555),
2597 AOM_ICDF(27210), AOM_ICDF(29142), AOM_ICDF(32768), 0 },
2598 { AOM_ICDF(9600), AOM_ICDF(11501), AOM_ICDF(19310), AOM_ICDF(21731),
2599 AOM_ICDF(22790), AOM_ICDF(23936), AOM_ICDF(25627), AOM_ICDF(27217),
2600 AOM_ICDF(27868), AOM_ICDF(29170), AOM_ICDF(32768), 0 },
2601 { AOM_ICDF(6912), AOM_ICDF(8730), AOM_ICDF(17650), AOM_ICDF(19377),
2602 AOM_ICDF(21025), AOM_ICDF(23319), AOM_ICDF(24537), AOM_ICDF(26112),
2603 AOM_ICDF(26840), AOM_ICDF(28345), AOM_ICDF(32768), 0 },
2604 { AOM_ICDF(7808), AOM_ICDF(9661), AOM_ICDF(20583), AOM_ICDF(21996),
2605 AOM_ICDF(23898), AOM_ICDF(26818), AOM_ICDF(28120), AOM_ICDF(30716),
2606 AOM_ICDF(31678), AOM_ICDF(32764), AOM_ICDF(32768), 0 },
2607 { AOM_ICDF(6784), AOM_ICDF(8104), AOM_ICDF(15619), AOM_ICDF(18584),
2608 AOM_ICDF(20844), AOM_ICDF(22519), AOM_ICDF(23760), AOM_ICDF(25203),
2609 AOM_ICDF(27094), AOM_ICDF(28801), AOM_ICDF(32768), 0 },
2610 { AOM_ICDF(8832), AOM_ICDF(10141), AOM_ICDF(17035), AOM_ICDF(20764),
2611 AOM_ICDF(21703), AOM_ICDF(22751), AOM_ICDF(23964), AOM_ICDF(25305),
2612 AOM_ICDF(26034), AOM_ICDF(29006), AOM_ICDF(32768), 0 },
2613 { AOM_ICDF(8192), AOM_ICDF(9920), AOM_ICDF(19113), AOM_ICDF(20594),
2614 AOM_ICDF(21747), AOM_ICDF(23327), AOM_ICDF(24581), AOM_ICDF(26916),
2615 AOM_ICDF(27533), AOM_ICDF(28944), AOM_ICDF(32768), 0 },
2616 { AOM_ICDF(6656), AOM_ICDF(8696), AOM_ICDF(18381), AOM_ICDF(20537),
2617 AOM_ICDF(21804), AOM_ICDF(21809), AOM_ICDF(22751), AOM_ICDF(24394),
2618 AOM_ICDF(24917), AOM_ICDF(25990), AOM_ICDF(32768), 0 },
2619 { AOM_ICDF(6400), AOM_ICDF(9593), AOM_ICDF(20818), AOM_ICDF(23519),
2620 AOM_ICDF(24266), AOM_ICDF(25113), AOM_ICDF(26608), AOM_ICDF(27883),
2621 AOM_ICDF(28322), AOM_ICDF(29364), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002622 },
2623 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002624 { AOM_ICDF(12032), AOM_ICDF(14381), AOM_ICDF(16608), AOM_ICDF(24946),
2625 AOM_ICDF(26084), AOM_ICDF(26582), AOM_ICDF(27428), AOM_ICDF(28075),
2626 AOM_ICDF(29395), AOM_ICDF(30858), AOM_ICDF(32768), 0 },
2627 { AOM_ICDF(9216), AOM_ICDF(12620), AOM_ICDF(18287), AOM_ICDF(24345),
2628 AOM_ICDF(25984), AOM_ICDF(26715), AOM_ICDF(27732), AOM_ICDF(28519),
2629 AOM_ICDF(29399), AOM_ICDF(30781), AOM_ICDF(32768), 0 },
2630 { AOM_ICDF(6784), AOM_ICDF(8916), AOM_ICDF(10220), AOM_ICDF(26539),
2631 AOM_ICDF(27310), AOM_ICDF(27483), AOM_ICDF(28082), AOM_ICDF(28430),
2632 AOM_ICDF(29362), AOM_ICDF(31291), AOM_ICDF(32768), 0 },
2633 { AOM_ICDF(11904), AOM_ICDF(14838), AOM_ICDF(17359), AOM_ICDF(21663),
2634 AOM_ICDF(22931), AOM_ICDF(23619), AOM_ICDF(25620), AOM_ICDF(26653),
2635 AOM_ICDF(27823), AOM_ICDF(30547), AOM_ICDF(32768), 0 },
2636 { AOM_ICDF(10752), AOM_ICDF(13504), AOM_ICDF(15536), AOM_ICDF(19057),
2637 AOM_ICDF(21753), AOM_ICDF(23883), AOM_ICDF(25202), AOM_ICDF(26266),
2638 AOM_ICDF(28196), AOM_ICDF(30589), AOM_ICDF(32768), 0 },
2639 { AOM_ICDF(10496), AOM_ICDF(13193), AOM_ICDF(16787), AOM_ICDF(21011),
2640 AOM_ICDF(23929), AOM_ICDF(25651), AOM_ICDF(27958), AOM_ICDF(29330),
2641 AOM_ICDF(31022), AOM_ICDF(32761), AOM_ICDF(32768), 0 },
2642 { AOM_ICDF(8448), AOM_ICDF(9968), AOM_ICDF(11749), AOM_ICDF(18062),
2643 AOM_ICDF(21841), AOM_ICDF(22669), AOM_ICDF(23852), AOM_ICDF(24444),
2644 AOM_ICDF(28118), AOM_ICDF(30007), AOM_ICDF(32768), 0 },
2645 { AOM_ICDF(9728), AOM_ICDF(11168), AOM_ICDF(12602), AOM_ICDF(20819),
2646 AOM_ICDF(22194), AOM_ICDF(22764), AOM_ICDF(24366), AOM_ICDF(25022),
2647 AOM_ICDF(26414), AOM_ICDF(30460), AOM_ICDF(32768), 0 },
2648 { AOM_ICDF(9216), AOM_ICDF(12712), AOM_ICDF(14357), AOM_ICDF(18346),
2649 AOM_ICDF(20486), AOM_ICDF(21549), AOM_ICDF(23170), AOM_ICDF(25794),
2650 AOM_ICDF(27129), AOM_ICDF(29574), AOM_ICDF(32768), 0 },
2651 { AOM_ICDF(7808), AOM_ICDF(10733), AOM_ICDF(13057), AOM_ICDF(20252),
2652 AOM_ICDF(21906), AOM_ICDF(21912), AOM_ICDF(23057), AOM_ICDF(24233),
2653 AOM_ICDF(25700), AOM_ICDF(27439), AOM_ICDF(32768), 0 },
2654 { AOM_ICDF(6784), AOM_ICDF(11352), AOM_ICDF(13778), AOM_ICDF(23877),
2655 AOM_ICDF(24995), AOM_ICDF(25424), AOM_ICDF(26830), AOM_ICDF(27688),
2656 AOM_ICDF(28779), AOM_ICDF(30368), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002657 },
2658 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002659 { AOM_ICDF(12288), AOM_ICDF(13728), AOM_ICDF(16480), AOM_ICDF(19841),
2660 AOM_ICDF(21570), AOM_ICDF(22715), AOM_ICDF(25385), AOM_ICDF(27000),
2661 AOM_ICDF(28329), AOM_ICDF(29994), AOM_ICDF(32768), 0 },
2662 { AOM_ICDF(9344), AOM_ICDF(10991), AOM_ICDF(18817), AOM_ICDF(20972),
2663 AOM_ICDF(22137), AOM_ICDF(23231), AOM_ICDF(26025), AOM_ICDF(27711),
2664 AOM_ICDF(28244), AOM_ICDF(29428), AOM_ICDF(32768), 0 },
2665 { AOM_ICDF(9344), AOM_ICDF(10900), AOM_ICDF(13206), AOM_ICDF(21344),
2666 AOM_ICDF(22332), AOM_ICDF(22987), AOM_ICDF(25127), AOM_ICDF(26440),
2667 AOM_ICDF(27231), AOM_ICDF(29502), AOM_ICDF(32768), 0 },
2668 { AOM_ICDF(12928), AOM_ICDF(14478), AOM_ICDF(15978), AOM_ICDF(18630),
2669 AOM_ICDF(19852), AOM_ICDF(20897), AOM_ICDF(24699), AOM_ICDF(26464),
2670 AOM_ICDF(27030), AOM_ICDF(30482), AOM_ICDF(32768), 0 },
2671 { AOM_ICDF(9088), AOM_ICDF(10476), AOM_ICDF(13350), AOM_ICDF(15237),
2672 AOM_ICDF(18175), AOM_ICDF(20252), AOM_ICDF(23283), AOM_ICDF(25321),
2673 AOM_ICDF(26426), AOM_ICDF(29349), AOM_ICDF(32768), 0 },
2674 { AOM_ICDF(10240), AOM_ICDF(11912), AOM_ICDF(15008), AOM_ICDF(17177),
2675 AOM_ICDF(19979), AOM_ICDF(23056), AOM_ICDF(26395), AOM_ICDF(29681),
2676 AOM_ICDF(30790), AOM_ICDF(32760), AOM_ICDF(32768), 0 },
2677 { AOM_ICDF(8704), AOM_ICDF(9738), AOM_ICDF(11717), AOM_ICDF(15480),
2678 AOM_ICDF(18656), AOM_ICDF(20022), AOM_ICDF(22611), AOM_ICDF(24357),
2679 AOM_ICDF(27150), AOM_ICDF(29257), AOM_ICDF(32768), 0 },
2680 { AOM_ICDF(12928), AOM_ICDF(13548), AOM_ICDF(17978), AOM_ICDF(20602),
2681 AOM_ICDF(21814), AOM_ICDF(22427), AOM_ICDF(24568), AOM_ICDF(25881),
2682 AOM_ICDF(26823), AOM_ICDF(30817), AOM_ICDF(32768), 0 },
2683 { AOM_ICDF(10496), AOM_ICDF(12149), AOM_ICDF(14082), AOM_ICDF(18054),
2684 AOM_ICDF(19032), AOM_ICDF(19994), AOM_ICDF(24086), AOM_ICDF(28427),
2685 AOM_ICDF(29156), AOM_ICDF(30680), AOM_ICDF(32768), 0 },
2686 { AOM_ICDF(8448), AOM_ICDF(10158), AOM_ICDF(13867), AOM_ICDF(16506),
2687 AOM_ICDF(18584), AOM_ICDF(18592), AOM_ICDF(21472), AOM_ICDF(23767),
2688 AOM_ICDF(24646), AOM_ICDF(27279), AOM_ICDF(32768), 0 },
2689 { AOM_ICDF(7296), AOM_ICDF(9684), AOM_ICDF(13471), AOM_ICDF(17701),
2690 AOM_ICDF(18934), AOM_ICDF(19878), AOM_ICDF(25115), AOM_ICDF(27238),
2691 AOM_ICDF(27972), AOM_ICDF(29583), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002692 },
2693 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002694 { AOM_ICDF(10880), AOM_ICDF(12163), AOM_ICDF(14497), AOM_ICDF(17112),
2695 AOM_ICDF(20859), AOM_ICDF(22562), AOM_ICDF(23599), AOM_ICDF(24638),
2696 AOM_ICDF(26861), AOM_ICDF(29399), AOM_ICDF(32768), 0 },
2697 { AOM_ICDF(9984), AOM_ICDF(12476), AOM_ICDF(16360), AOM_ICDF(18889),
2698 AOM_ICDF(21414), AOM_ICDF(23474), AOM_ICDF(24563), AOM_ICDF(25909),
2699 AOM_ICDF(27195), AOM_ICDF(28828), AOM_ICDF(32768), 0 },
2700 { AOM_ICDF(7168), AOM_ICDF(9268), AOM_ICDF(10737), AOM_ICDF(20063),
2701 AOM_ICDF(22315), AOM_ICDF(23302), AOM_ICDF(24152), AOM_ICDF(25195),
2702 AOM_ICDF(26645), AOM_ICDF(28845), AOM_ICDF(32768), 0 },
2703 { AOM_ICDF(8960), AOM_ICDF(10727), AOM_ICDF(12449), AOM_ICDF(14263),
2704 AOM_ICDF(16523), AOM_ICDF(17608), AOM_ICDF(23352), AOM_ICDF(24676),
2705 AOM_ICDF(26478), AOM_ICDF(28886), AOM_ICDF(32768), 0 },
2706 { AOM_ICDF(9856), AOM_ICDF(11109), AOM_ICDF(13309), AOM_ICDF(14975),
2707 AOM_ICDF(19055), AOM_ICDF(21670), AOM_ICDF(23144), AOM_ICDF(24460),
2708 AOM_ICDF(26212), AOM_ICDF(28107), AOM_ICDF(32768), 0 },
2709 { AOM_ICDF(9984), AOM_ICDF(11586), AOM_ICDF(14565), AOM_ICDF(16562),
2710 AOM_ICDF(21107), AOM_ICDF(25444), AOM_ICDF(27218), AOM_ICDF(29429),
2711 AOM_ICDF(31451), AOM_ICDF(32763), AOM_ICDF(32768), 0 },
2712 { AOM_ICDF(7168), AOM_ICDF(8268), AOM_ICDF(9704), AOM_ICDF(13144),
2713 AOM_ICDF(18443), AOM_ICDF(20065), AOM_ICDF(21653), AOM_ICDF(23607),
2714 AOM_ICDF(26506), AOM_ICDF(28854), AOM_ICDF(32768), 0 },
2715 { AOM_ICDF(11520), AOM_ICDF(13014), AOM_ICDF(14866), AOM_ICDF(18136),
2716 AOM_ICDF(20231), AOM_ICDF(21509), AOM_ICDF(23004), AOM_ICDF(24186),
2717 AOM_ICDF(25728), AOM_ICDF(29468), AOM_ICDF(32768), 0 },
2718 { AOM_ICDF(10240), AOM_ICDF(12264), AOM_ICDF(14507), AOM_ICDF(16388),
2719 AOM_ICDF(18888), AOM_ICDF(20927), AOM_ICDF(22731), AOM_ICDF(24691),
2720 AOM_ICDF(26142), AOM_ICDF(28394), AOM_ICDF(32768), 0 },
2721 { AOM_ICDF(8064), AOM_ICDF(10187), AOM_ICDF(12921), AOM_ICDF(15952),
2722 AOM_ICDF(19960), AOM_ICDF(19976), AOM_ICDF(21275), AOM_ICDF(23205),
2723 AOM_ICDF(25110), AOM_ICDF(26636), AOM_ICDF(32768), 0 },
2724 { AOM_ICDF(8448), AOM_ICDF(11488), AOM_ICDF(14065), AOM_ICDF(19113),
2725 AOM_ICDF(21604), AOM_ICDF(22978), AOM_ICDF(24508), AOM_ICDF(25895),
2726 AOM_ICDF(27398), AOM_ICDF(29055), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002727 },
2728 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002729 { AOM_ICDF(10368), AOM_ICDF(11768), AOM_ICDF(16772), AOM_ICDF(19842),
2730 AOM_ICDF(22940), AOM_ICDF(27394), AOM_ICDF(28528), AOM_ICDF(30267),
2731 AOM_ICDF(31371), AOM_ICDF(32763), AOM_ICDF(32768), 0 },
2732 { AOM_ICDF(9472), AOM_ICDF(11292), AOM_ICDF(18507), AOM_ICDF(20777),
2733 AOM_ICDF(23357), AOM_ICDF(27587), AOM_ICDF(28902), AOM_ICDF(30850),
2734 AOM_ICDF(31607), AOM_ICDF(32763), AOM_ICDF(32768), 0 },
2735 { AOM_ICDF(8064), AOM_ICDF(9512), AOM_ICDF(13782), AOM_ICDF(20645),
2736 AOM_ICDF(24493), AOM_ICDF(26242), AOM_ICDF(28001), AOM_ICDF(29435),
2737 AOM_ICDF(30438), AOM_ICDF(32759), AOM_ICDF(32768), 0 },
2738 { AOM_ICDF(8960), AOM_ICDF(10541), AOM_ICDF(15664), AOM_ICDF(17639),
2739 AOM_ICDF(19646), AOM_ICDF(22145), AOM_ICDF(25216), AOM_ICDF(28815),
2740 AOM_ICDF(30050), AOM_ICDF(32757), AOM_ICDF(32768), 0 },
2741 { AOM_ICDF(9984), AOM_ICDF(11141), AOM_ICDF(15365), AOM_ICDF(16746),
2742 AOM_ICDF(21186), AOM_ICDF(25766), AOM_ICDF(27817), AOM_ICDF(30022),
2743 AOM_ICDF(31309), AOM_ICDF(32762), AOM_ICDF(32768), 0 },
2744 { AOM_ICDF(9216), AOM_ICDF(10688), AOM_ICDF(16639), AOM_ICDF(17735),
2745 AOM_ICDF(21499), AOM_ICDF(26657), AOM_ICDF(28161), AOM_ICDF(30572),
2746 AOM_ICDF(31490), AOM_ICDF(32763), AOM_ICDF(32768), 0 },
2747 { AOM_ICDF(8448), AOM_ICDF(9303), AOM_ICDF(13611), AOM_ICDF(16636),
2748 AOM_ICDF(20555), AOM_ICDF(23414), AOM_ICDF(24912), AOM_ICDF(27613),
2749 AOM_ICDF(29727), AOM_ICDF(32756), AOM_ICDF(32768), 0 },
2750 { AOM_ICDF(9984), AOM_ICDF(11052), AOM_ICDF(16142), AOM_ICDF(19312),
2751 AOM_ICDF(21680), AOM_ICDF(23870), AOM_ICDF(25504), AOM_ICDF(28200),
2752 AOM_ICDF(29324), AOM_ICDF(32755), AOM_ICDF(32768), 0 },
2753 { AOM_ICDF(10496), AOM_ICDF(12323), AOM_ICDF(16955), AOM_ICDF(18839),
2754 AOM_ICDF(21144), AOM_ICDF(24861), AOM_ICDF(26838), AOM_ICDF(29988),
2755 AOM_ICDF(30976), AOM_ICDF(32761), AOM_ICDF(32768), 0 },
2756 { AOM_ICDF(2944), AOM_ICDF(5973), AOM_ICDF(8904), AOM_ICDF(11875),
2757 AOM_ICDF(14864), AOM_ICDF(17853), AOM_ICDF(20824), AOM_ICDF(23810),
2758 AOM_ICDF(26784), AOM_ICDF(29776), AOM_ICDF(32768), 0 },
2759 { AOM_ICDF(7424), AOM_ICDF(10097), AOM_ICDF(15588), AOM_ICDF(20217),
2760 AOM_ICDF(23899), AOM_ICDF(26460), AOM_ICDF(28308), AOM_ICDF(30155),
2761 AOM_ICDF(30951), AOM_ICDF(32761), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002762 },
2763 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002764 { AOM_ICDF(11648), AOM_ICDF(13133), AOM_ICDF(15050), AOM_ICDF(20481),
2765 AOM_ICDF(22470), AOM_ICDF(23425), AOM_ICDF(24337), AOM_ICDF(25160),
2766 AOM_ICDF(28964), AOM_ICDF(30480), AOM_ICDF(32768), 0 },
2767 { AOM_ICDF(10240), AOM_ICDF(12616), AOM_ICDF(16631), AOM_ICDF(20485),
2768 AOM_ICDF(22290), AOM_ICDF(23628), AOM_ICDF(25235), AOM_ICDF(26353),
2769 AOM_ICDF(28107), AOM_ICDF(29655), AOM_ICDF(32768), 0 },
2770 { AOM_ICDF(6784), AOM_ICDF(8002), AOM_ICDF(9066), AOM_ICDF(20038),
2771 AOM_ICDF(22926), AOM_ICDF(23324), AOM_ICDF(23951), AOM_ICDF(24537),
2772 AOM_ICDF(26916), AOM_ICDF(30231), AOM_ICDF(32768), 0 },
2773 { AOM_ICDF(11904), AOM_ICDF(14105), AOM_ICDF(15782), AOM_ICDF(19896),
2774 AOM_ICDF(22283), AOM_ICDF(23147), AOM_ICDF(24763), AOM_ICDF(25983),
2775 AOM_ICDF(27812), AOM_ICDF(29980), AOM_ICDF(32768), 0 },
2776 { AOM_ICDF(10624), AOM_ICDF(11922), AOM_ICDF(13632), AOM_ICDF(15941),
2777 AOM_ICDF(20469), AOM_ICDF(22453), AOM_ICDF(24065), AOM_ICDF(25187),
2778 AOM_ICDF(27349), AOM_ICDF(29296), AOM_ICDF(32768), 0 },
2779 { AOM_ICDF(12032), AOM_ICDF(13085), AOM_ICDF(15468), AOM_ICDF(17768),
2780 AOM_ICDF(20613), AOM_ICDF(24388), AOM_ICDF(26385), AOM_ICDF(28430),
2781 AOM_ICDF(30938), AOM_ICDF(32761), AOM_ICDF(32768), 0 },
2782 { AOM_ICDF(9728), AOM_ICDF(10538), AOM_ICDF(11493), AOM_ICDF(14765),
2783 AOM_ICDF(18460), AOM_ICDF(19471), AOM_ICDF(20302), AOM_ICDF(20935),
2784 AOM_ICDF(28192), AOM_ICDF(29926), AOM_ICDF(32768), 0 },
2785 { AOM_ICDF(8960), AOM_ICDF(9890), AOM_ICDF(10962), AOM_ICDF(16685),
2786 AOM_ICDF(18880), AOM_ICDF(19480), AOM_ICDF(20674), AOM_ICDF(21477),
2787 AOM_ICDF(23815), AOM_ICDF(29341), AOM_ICDF(32768), 0 },
2788 { AOM_ICDF(14592), AOM_ICDF(16367), AOM_ICDF(17712), AOM_ICDF(20293),
2789 AOM_ICDF(22544), AOM_ICDF(23829), AOM_ICDF(24877), AOM_ICDF(26326),
2790 AOM_ICDF(27660), AOM_ICDF(29875), AOM_ICDF(32768), 0 },
2791 { AOM_ICDF(8960), AOM_ICDF(10448), AOM_ICDF(12279), AOM_ICDF(16206),
2792 AOM_ICDF(18672), AOM_ICDF(18682), AOM_ICDF(20058), AOM_ICDF(21547),
2793 AOM_ICDF(25097), AOM_ICDF(27165), AOM_ICDF(32768), 0 },
2794 { AOM_ICDF(11136), AOM_ICDF(13840), AOM_ICDF(15762), AOM_ICDF(21710),
2795 AOM_ICDF(23038), AOM_ICDF(23734), AOM_ICDF(24863), AOM_ICDF(25882),
2796 AOM_ICDF(27765), AOM_ICDF(30071), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002797 },
2798 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002799 { AOM_ICDF(12544), AOM_ICDF(14124), AOM_ICDF(16964), AOM_ICDF(21907),
2800 AOM_ICDF(23808), AOM_ICDF(24496), AOM_ICDF(25724), AOM_ICDF(26715),
2801 AOM_ICDF(27992), AOM_ICDF(30455), AOM_ICDF(32768), 0 },
2802 { AOM_ICDF(10368), AOM_ICDF(13606), AOM_ICDF(18247), AOM_ICDF(20869),
2803 AOM_ICDF(22590), AOM_ICDF(23749), AOM_ICDF(25088), AOM_ICDF(26378),
2804 AOM_ICDF(27277), AOM_ICDF(29808), AOM_ICDF(32768), 0 },
2805 { AOM_ICDF(9088), AOM_ICDF(11031), AOM_ICDF(12899), AOM_ICDF(23497),
2806 AOM_ICDF(24465), AOM_ICDF(24851), AOM_ICDF(25995), AOM_ICDF(26815),
2807 AOM_ICDF(27885), AOM_ICDF(30555), AOM_ICDF(32768), 0 },
2808 { AOM_ICDF(11520), AOM_ICDF(14342), AOM_ICDF(15710), AOM_ICDF(19196),
2809 AOM_ICDF(21250), AOM_ICDF(21907), AOM_ICDF(24665), AOM_ICDF(26153),
2810 AOM_ICDF(27212), AOM_ICDF(30750), AOM_ICDF(32768), 0 },
2811 { AOM_ICDF(9984), AOM_ICDF(11764), AOM_ICDF(13979), AOM_ICDF(16405),
2812 AOM_ICDF(19279), AOM_ICDF(20658), AOM_ICDF(23354), AOM_ICDF(25266),
2813 AOM_ICDF(26702), AOM_ICDF(29380), AOM_ICDF(32768), 0 },
2814 { AOM_ICDF(10112), AOM_ICDF(12325), AOM_ICDF(15918), AOM_ICDF(19060),
2815 AOM_ICDF(21829), AOM_ICDF(23882), AOM_ICDF(26277), AOM_ICDF(27697),
2816 AOM_ICDF(30114), AOM_ICDF(32758), AOM_ICDF(32768), 0 },
2817 { AOM_ICDF(9344), AOM_ICDF(10534), AOM_ICDF(12184), AOM_ICDF(16208),
2818 AOM_ICDF(19764), AOM_ICDF(20627), AOM_ICDF(22524), AOM_ICDF(23644),
2819 AOM_ICDF(26887), AOM_ICDF(29782), AOM_ICDF(32768), 0 },
2820 { AOM_ICDF(12928), AOM_ICDF(14013), AOM_ICDF(15625), AOM_ICDF(19107),
2821 AOM_ICDF(20654), AOM_ICDF(21451), AOM_ICDF(22910), AOM_ICDF(23873),
2822 AOM_ICDF(24776), AOM_ICDF(30239), AOM_ICDF(32768), 0 },
2823 { AOM_ICDF(10368), AOM_ICDF(12818), AOM_ICDF(14610), AOM_ICDF(17350),
2824 AOM_ICDF(19568), AOM_ICDF(20710), AOM_ICDF(22971), AOM_ICDF(25114),
2825 AOM_ICDF(26340), AOM_ICDF(29127), AOM_ICDF(32768), 0 },
2826 { AOM_ICDF(8960), AOM_ICDF(11192), AOM_ICDF(13720), AOM_ICDF(18429),
2827 AOM_ICDF(20409), AOM_ICDF(20417), AOM_ICDF(22250), AOM_ICDF(23318),
2828 AOM_ICDF(24647), AOM_ICDF(27248), AOM_ICDF(32768), 0 },
2829 { AOM_ICDF(7808), AOM_ICDF(11416), AOM_ICDF(13918), AOM_ICDF(19028),
2830 AOM_ICDF(20181), AOM_ICDF(20839), AOM_ICDF(24380), AOM_ICDF(26018),
2831 AOM_ICDF(26967), AOM_ICDF(29845), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002832 },
2833 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002834 { AOM_ICDF(9856), AOM_ICDF(11020), AOM_ICDF(14928), AOM_ICDF(18159),
2835 AOM_ICDF(19421), AOM_ICDF(20921), AOM_ICDF(23466), AOM_ICDF(26664),
2836 AOM_ICDF(27475), AOM_ICDF(28881), AOM_ICDF(32768), 0 },
2837 { AOM_ICDF(8704), AOM_ICDF(10302), AOM_ICDF(17323), AOM_ICDF(18907),
2838 AOM_ICDF(19868), AOM_ICDF(21184), AOM_ICDF(24171), AOM_ICDF(28033),
2839 AOM_ICDF(28625), AOM_ICDF(29353), AOM_ICDF(32768), 0 },
2840 { AOM_ICDF(7936), AOM_ICDF(9197), AOM_ICDF(12604), AOM_ICDF(20616),
2841 AOM_ICDF(21514), AOM_ICDF(22371), AOM_ICDF(24239), AOM_ICDF(26138),
2842 AOM_ICDF(26863), AOM_ICDF(29239), AOM_ICDF(32768), 0 },
2843 { AOM_ICDF(11264), AOM_ICDF(12524), AOM_ICDF(16083), AOM_ICDF(18574),
2844 AOM_ICDF(19858), AOM_ICDF(20841), AOM_ICDF(24242), AOM_ICDF(27606),
2845 AOM_ICDF(28352), AOM_ICDF(29853), AOM_ICDF(32768), 0 },
2846 { AOM_ICDF(8704), AOM_ICDF(10208), AOM_ICDF(13292), AOM_ICDF(15170),
2847 AOM_ICDF(17277), AOM_ICDF(19226), AOM_ICDF(22083), AOM_ICDF(25046),
2848 AOM_ICDF(26041), AOM_ICDF(27802), AOM_ICDF(32768), 0 },
2849 { AOM_ICDF(9088), AOM_ICDF(10568), AOM_ICDF(15511), AOM_ICDF(17246),
2850 AOM_ICDF(20170), AOM_ICDF(22791), AOM_ICDF(25558), AOM_ICDF(30740),
2851 AOM_ICDF(31635), AOM_ICDF(32764), AOM_ICDF(32768), 0 },
2852 { AOM_ICDF(7040), AOM_ICDF(8045), AOM_ICDF(10653), AOM_ICDF(13145),
2853 AOM_ICDF(15286), AOM_ICDF(16614), AOM_ICDF(19075), AOM_ICDF(23140),
2854 AOM_ICDF(26224), AOM_ICDF(28652), AOM_ICDF(32768), 0 },
2855 { AOM_ICDF(10240), AOM_ICDF(11032), AOM_ICDF(14258), AOM_ICDF(17629),
2856 AOM_ICDF(18914), AOM_ICDF(19898), AOM_ICDF(22412), AOM_ICDF(24961),
2857 AOM_ICDF(25815), AOM_ICDF(29156), AOM_ICDF(32768), 0 },
2858 { AOM_ICDF(11008), AOM_ICDF(12028), AOM_ICDF(14702), AOM_ICDF(16147),
2859 AOM_ICDF(17209), AOM_ICDF(18160), AOM_ICDF(21812), AOM_ICDF(27547),
2860 AOM_ICDF(28709), AOM_ICDF(30120), AOM_ICDF(32768), 0 },
2861 { AOM_ICDF(7168), AOM_ICDF(9068), AOM_ICDF(14160), AOM_ICDF(16937),
2862 AOM_ICDF(18515), AOM_ICDF(18521), AOM_ICDF(20636), AOM_ICDF(24617),
2863 AOM_ICDF(25317), AOM_ICDF(26365), AOM_ICDF(32768), 0 },
2864 { AOM_ICDF(6784), AOM_ICDF(8510), AOM_ICDF(14195), AOM_ICDF(17148),
2865 AOM_ICDF(18158), AOM_ICDF(19201), AOM_ICDF(23070), AOM_ICDF(27351),
2866 AOM_ICDF(27901), AOM_ICDF(29422), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002867 },
2868 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002869 { AOM_ICDF(10112), AOM_ICDF(11528), AOM_ICDF(15345), AOM_ICDF(19296),
2870 AOM_ICDF(21394), AOM_ICDF(21402), AOM_ICDF(22379), AOM_ICDF(23840),
2871 AOM_ICDF(24851), AOM_ICDF(26150), AOM_ICDF(32768), 0 },
2872 { AOM_ICDF(8064), AOM_ICDF(10187), AOM_ICDF(17949), AOM_ICDF(20052),
2873 AOM_ICDF(22051), AOM_ICDF(22059), AOM_ICDF(23147), AOM_ICDF(24688),
2874 AOM_ICDF(25351), AOM_ICDF(26365), AOM_ICDF(32768), 0 },
2875 { AOM_ICDF(6528), AOM_ICDF(8373), AOM_ICDF(11041), AOM_ICDF(21963),
2876 AOM_ICDF(23089), AOM_ICDF(23093), AOM_ICDF(24076), AOM_ICDF(24925),
2877 AOM_ICDF(25691), AOM_ICDF(27764), AOM_ICDF(32768), 0 },
2878 { AOM_ICDF(9600), AOM_ICDF(11229), AOM_ICDF(14847), AOM_ICDF(17527),
2879 AOM_ICDF(19738), AOM_ICDF(19747), AOM_ICDF(21629), AOM_ICDF(23761),
2880 AOM_ICDF(24957), AOM_ICDF(27673), AOM_ICDF(32768), 0 },
2881 { AOM_ICDF(8960), AOM_ICDF(10262), AOM_ICDF(13339), AOM_ICDF(15480),
2882 AOM_ICDF(19925), AOM_ICDF(19942), AOM_ICDF(21445), AOM_ICDF(23037),
2883 AOM_ICDF(24329), AOM_ICDF(25977), AOM_ICDF(32768), 0 },
2884 { AOM_ICDF(2944), AOM_ICDF(5973), AOM_ICDF(8904), AOM_ICDF(11875),
2885 AOM_ICDF(14864), AOM_ICDF(17853), AOM_ICDF(20824), AOM_ICDF(23810),
2886 AOM_ICDF(26784), AOM_ICDF(29776), AOM_ICDF(32768), 0 },
2887 { AOM_ICDF(9472), AOM_ICDF(10564), AOM_ICDF(13426), AOM_ICDF(16561),
2888 AOM_ICDF(19685), AOM_ICDF(19697), AOM_ICDF(21076), AOM_ICDF(22583),
2889 AOM_ICDF(24891), AOM_ICDF(26983), AOM_ICDF(32768), 0 },
2890 { AOM_ICDF(8448), AOM_ICDF(9493), AOM_ICDF(12221), AOM_ICDF(16542),
2891 AOM_ICDF(18394), AOM_ICDF(18401), AOM_ICDF(19580), AOM_ICDF(20971),
2892 AOM_ICDF(22031), AOM_ICDF(26770), AOM_ICDF(32768), 0 },
2893 { AOM_ICDF(8704), AOM_ICDF(10772), AOM_ICDF(14209), AOM_ICDF(16381),
2894 AOM_ICDF(18911), AOM_ICDF(18921), AOM_ICDF(20436), AOM_ICDF(23374),
2895 AOM_ICDF(24475), AOM_ICDF(26095), AOM_ICDF(32768), 0 },
2896 { AOM_ICDF(7680), AOM_ICDF(9444), AOM_ICDF(13453), AOM_ICDF(16320),
2897 AOM_ICDF(18650), AOM_ICDF(18659), AOM_ICDF(19651), AOM_ICDF(21291),
2898 AOM_ICDF(22277), AOM_ICDF(23916), AOM_ICDF(32768), 0 },
2899 { AOM_ICDF(6656), AOM_ICDF(9920), AOM_ICDF(14740), AOM_ICDF(19864),
2900 AOM_ICDF(21495), AOM_ICDF(21501), AOM_ICDF(22953), AOM_ICDF(24372),
2901 AOM_ICDF(25192), AOM_ICDF(26760), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002902 },
2903 {
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002904 { AOM_ICDF(9728), AOM_ICDF(13958), AOM_ICDF(18881), AOM_ICDF(23624),
2905 AOM_ICDF(24754), AOM_ICDF(25553), AOM_ICDF(26709), AOM_ICDF(27940),
2906 AOM_ICDF(28977), AOM_ICDF(30413), AOM_ICDF(32768), 0 },
2907 { AOM_ICDF(8832), AOM_ICDF(12572), AOM_ICDF(22433), AOM_ICDF(24653),
2908 AOM_ICDF(25676), AOM_ICDF(26551), AOM_ICDF(27571), AOM_ICDF(28688),
2909 AOM_ICDF(29198), AOM_ICDF(30174), AOM_ICDF(32768), 0 },
2910 { AOM_ICDF(5888), AOM_ICDF(8828), AOM_ICDF(11353), AOM_ICDF(23482),
2911 AOM_ICDF(24310), AOM_ICDF(24737), AOM_ICDF(25804), AOM_ICDF(26375),
2912 AOM_ICDF(27174), AOM_ICDF(29840), AOM_ICDF(32768), 0 },
2913 { AOM_ICDF(9984), AOM_ICDF(13099), AOM_ICDF(16249), AOM_ICDF(19443),
2914 AOM_ICDF(20990), AOM_ICDF(22637), AOM_ICDF(24576), AOM_ICDF(25952),
2915 AOM_ICDF(26884), AOM_ICDF(29435), AOM_ICDF(32768), 0 },
2916 { AOM_ICDF(8448), AOM_ICDF(11108), AOM_ICDF(15085), AOM_ICDF(18134),
2917 AOM_ICDF(20319), AOM_ICDF(21992), AOM_ICDF(23549), AOM_ICDF(24989),
2918 AOM_ICDF(27177), AOM_ICDF(29208), AOM_ICDF(32768), 0 },
2919 { AOM_ICDF(9856), AOM_ICDF(13168), AOM_ICDF(18987), AOM_ICDF(22481),
2920 AOM_ICDF(24282), AOM_ICDF(26200), AOM_ICDF(27868), AOM_ICDF(30203),
2921 AOM_ICDF(31085), AOM_ICDF(32761), AOM_ICDF(32768), 0 },
2922 { AOM_ICDF(6784), AOM_ICDF(9119), AOM_ICDF(12629), AOM_ICDF(16877),
2923 AOM_ICDF(20262), AOM_ICDF(21125), AOM_ICDF(22307), AOM_ICDF(23615),
2924 AOM_ICDF(27727), AOM_ICDF(29972), AOM_ICDF(32768), 0 },
2925 { AOM_ICDF(8320), AOM_ICDF(10230), AOM_ICDF(12783), AOM_ICDF(19005),
2926 AOM_ICDF(20213), AOM_ICDF(20668), AOM_ICDF(22039), AOM_ICDF(23045),
2927 AOM_ICDF(24146), AOM_ICDF(30478), AOM_ICDF(32768), 0 },
2928 { AOM_ICDF(9088), AOM_ICDF(11308), AOM_ICDF(15416), AOM_ICDF(18118),
2929 AOM_ICDF(19762), AOM_ICDF(20906), AOM_ICDF(22574), AOM_ICDF(25162),
2930 AOM_ICDF(25994), AOM_ICDF(28455), AOM_ICDF(32768), 0 },
2931 { AOM_ICDF(6912), AOM_ICDF(10548), AOM_ICDF(15148), AOM_ICDF(20026),
2932 AOM_ICDF(21612), AOM_ICDF(21618), AOM_ICDF(22707), AOM_ICDF(24200),
2933 AOM_ICDF(24869), AOM_ICDF(26844), AOM_ICDF(32768), 0 },
2934 { AOM_ICDF(6656), AOM_ICDF(12164), AOM_ICDF(16993), AOM_ICDF(21568),
2935 AOM_ICDF(22933), AOM_ICDF(23648), AOM_ICDF(25322), AOM_ICDF(26602),
2936 AOM_ICDF(27806), AOM_ICDF(29841), AOM_ICDF(32768), 0 },
Urvang Joshi63234542017-03-10 12:04:03 -08002937 },
Zoe Liu7f24e1b2017-03-17 17:42:05 -07002938#else // !CONFIG_ALT_INTRA
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07002939 { { AOM_ICDF(17536), AOM_ICDF(19321), AOM_ICDF(21527), AOM_ICDF(25360),
2940 AOM_ICDF(27516), AOM_ICDF(28026), AOM_ICDF(29323), AOM_ICDF(30023),
2941 AOM_ICDF(30999), AOM_ICDF(32768), 0 },
2942 { AOM_ICDF(11776), AOM_ICDF(15466), AOM_ICDF(22360), AOM_ICDF(24865),
2943 AOM_ICDF(26991), AOM_ICDF(27889), AOM_ICDF(29299), AOM_ICDF(30519),
2944 AOM_ICDF(31398), AOM_ICDF(32768), 0 },
2945 { AOM_ICDF(9344), AOM_ICDF(12272), AOM_ICDF(13793), AOM_ICDF(25813),
2946 AOM_ICDF(27359), AOM_ICDF(27654), AOM_ICDF(28573), AOM_ICDF(29130),
2947 AOM_ICDF(30551), AOM_ICDF(32768), 0 },
2948 { AOM_ICDF(11648), AOM_ICDF(14123), AOM_ICDF(16454), AOM_ICDF(19948),
2949 AOM_ICDF(22780), AOM_ICDF(23846), AOM_ICDF(27087), AOM_ICDF(28995),
2950 AOM_ICDF(30380), AOM_ICDF(32768), 0 },
2951 { AOM_ICDF(9216), AOM_ICDF(12436), AOM_ICDF(15295), AOM_ICDF(17996),
2952 AOM_ICDF(24006), AOM_ICDF(25465), AOM_ICDF(27405), AOM_ICDF(28725),
2953 AOM_ICDF(30383), AOM_ICDF(32768), 0 },
2954 { AOM_ICDF(9344), AOM_ICDF(12181), AOM_ICDF(14433), AOM_ICDF(16634),
2955 AOM_ICDF(20355), AOM_ICDF(24317), AOM_ICDF(26133), AOM_ICDF(29295),
2956 AOM_ICDF(31344), AOM_ICDF(32768), 0 },
2957 { AOM_ICDF(8576), AOM_ICDF(10750), AOM_ICDF(12556), AOM_ICDF(17996),
2958 AOM_ICDF(22315), AOM_ICDF(23609), AOM_ICDF(25040), AOM_ICDF(26157),
2959 AOM_ICDF(30573), AOM_ICDF(32768), 0 },
2960 { AOM_ICDF(11008), AOM_ICDF(13303), AOM_ICDF(15432), AOM_ICDF(20646),
2961 AOM_ICDF(23506), AOM_ICDF(24100), AOM_ICDF(25624), AOM_ICDF(26824),
2962 AOM_ICDF(28055), AOM_ICDF(32768), 0 },
2963 { AOM_ICDF(9472), AOM_ICDF(12384), AOM_ICDF(14534), AOM_ICDF(17094),
2964 AOM_ICDF(20257), AOM_ICDF(22155), AOM_ICDF(24767), AOM_ICDF(28955),
2965 AOM_ICDF(30474), AOM_ICDF(32768), 0 },
2966 { AOM_ICDF(7552), AOM_ICDF(14152), AOM_ICDF(17352), AOM_ICDF(22654),
2967 AOM_ICDF(25123), AOM_ICDF(25783), AOM_ICDF(27911), AOM_ICDF(29182),
2968 AOM_ICDF(30849), AOM_ICDF(32768), 0 } },
2969 { { AOM_ICDF(8064), AOM_ICDF(11538), AOM_ICDF(21987), AOM_ICDF(24941),
2970 AOM_ICDF(26913), AOM_ICDF(28136), AOM_ICDF(29222), AOM_ICDF(30469),
2971 AOM_ICDF(31331), AOM_ICDF(32768), 0 },
2972 { AOM_ICDF(5504), AOM_ICDF(10403), AOM_ICDF(25080), AOM_ICDF(26762),
2973 AOM_ICDF(27933), AOM_ICDF(29104), AOM_ICDF(30092), AOM_ICDF(31576),
2974 AOM_ICDF(32004), AOM_ICDF(32768), 0 },
2975 { AOM_ICDF(5632), AOM_ICDF(8706), AOM_ICDF(15097), AOM_ICDF(23714),
2976 AOM_ICDF(25344), AOM_ICDF(26072), AOM_ICDF(27380), AOM_ICDF(28580),
2977 AOM_ICDF(29840), AOM_ICDF(32768), 0 },
2978 { AOM_ICDF(7424), AOM_ICDF(11186), AOM_ICDF(17593), AOM_ICDF(20154),
2979 AOM_ICDF(22974), AOM_ICDF(24351), AOM_ICDF(26916), AOM_ICDF(29956),
2980 AOM_ICDF(30967), AOM_ICDF(32768), 0 },
2981 { AOM_ICDF(5888), AOM_ICDF(10193), AOM_ICDF(16895), AOM_ICDF(19031),
2982 AOM_ICDF(23735), AOM_ICDF(25576), AOM_ICDF(27514), AOM_ICDF(29813),
2983 AOM_ICDF(30471), AOM_ICDF(32768), 0 },
2984 { AOM_ICDF(4864), AOM_ICDF(8352), AOM_ICDF(16459), AOM_ICDF(18062),
2985 AOM_ICDF(21263), AOM_ICDF(25378), AOM_ICDF(26937), AOM_ICDF(30376),
2986 AOM_ICDF(31619), AOM_ICDF(32768), 0 },
2987 { AOM_ICDF(4992), AOM_ICDF(7922), AOM_ICDF(13842), AOM_ICDF(18004),
2988 AOM_ICDF(21779), AOM_ICDF(23527), AOM_ICDF(25115), AOM_ICDF(27357),
2989 AOM_ICDF(30232), AOM_ICDF(32768), 0 },
2990 { AOM_ICDF(6656), AOM_ICDF(9716), AOM_ICDF(16379), AOM_ICDF(20053),
2991 AOM_ICDF(22487), AOM_ICDF(23613), AOM_ICDF(25437), AOM_ICDF(27270),
2992 AOM_ICDF(28516), AOM_ICDF(32768), 0 },
2993 { AOM_ICDF(6016), AOM_ICDF(9674), AOM_ICDF(16891), AOM_ICDF(18684),
2994 AOM_ICDF(21147), AOM_ICDF(23093), AOM_ICDF(25512), AOM_ICDF(30132),
2995 AOM_ICDF(30894), AOM_ICDF(32768), 0 },
2996 { AOM_ICDF(4608), AOM_ICDF(11318), AOM_ICDF(21038), AOM_ICDF(23650),
2997 AOM_ICDF(25303), AOM_ICDF(26262), AOM_ICDF(28295), AOM_ICDF(30479),
2998 AOM_ICDF(31212), AOM_ICDF(32768), 0 } },
2999 { { AOM_ICDF(10496), AOM_ICDF(12758), AOM_ICDF(14790), AOM_ICDF(24547),
3000 AOM_ICDF(26342), AOM_ICDF(26799), AOM_ICDF(27825), AOM_ICDF(28443),
3001 AOM_ICDF(30217), AOM_ICDF(32768), 0 },
3002 { AOM_ICDF(7040), AOM_ICDF(11462), AOM_ICDF(17121), AOM_ICDF(24215),
3003 AOM_ICDF(26504), AOM_ICDF(27267), AOM_ICDF(28492), AOM_ICDF(29444),
3004 AOM_ICDF(30846), AOM_ICDF(32768), 0 },
3005 { AOM_ICDF(5376), AOM_ICDF(8158), AOM_ICDF(9215), AOM_ICDF(26451),
3006 AOM_ICDF(27407), AOM_ICDF(27524), AOM_ICDF(27995), AOM_ICDF(28275),
3007 AOM_ICDF(29767), AOM_ICDF(32768), 0 },
3008 { AOM_ICDF(8704), AOM_ICDF(12652), AOM_ICDF(14145), AOM_ICDF(20101),
3009 AOM_ICDF(22879), AOM_ICDF(23675), AOM_ICDF(25629), AOM_ICDF(27079),
3010 AOM_ICDF(28923), AOM_ICDF(32768), 0 },
3011 { AOM_ICDF(7424), AOM_ICDF(12374), AOM_ICDF(14366), AOM_ICDF(18855),
3012 AOM_ICDF(23842), AOM_ICDF(24358), AOM_ICDF(25639), AOM_ICDF(27087),
3013 AOM_ICDF(29706), AOM_ICDF(32768), 0 },
3014 { AOM_ICDF(6400), AOM_ICDF(10005), AOM_ICDF(12939), AOM_ICDF(17753),
3015 AOM_ICDF(22206), AOM_ICDF(24790), AOM_ICDF(26785), AOM_ICDF(28164),
3016 AOM_ICDF(30520), AOM_ICDF(32768), 0 },
3017 { AOM_ICDF(5632), AOM_ICDF(8176), AOM_ICDF(9713), AOM_ICDF(19053),
3018 AOM_ICDF(22343), AOM_ICDF(23222), AOM_ICDF(24453), AOM_ICDF(25070),
3019 AOM_ICDF(29761), AOM_ICDF(32768), 0 },
3020 { AOM_ICDF(7040), AOM_ICDF(9754), AOM_ICDF(10833), AOM_ICDF(21229),
3021 AOM_ICDF(23540), AOM_ICDF(23943), AOM_ICDF(24839), AOM_ICDF(25675),
3022 AOM_ICDF(27033), AOM_ICDF(32768), 0 },
3023 { AOM_ICDF(6784), AOM_ICDF(11758), AOM_ICDF(13481), AOM_ICDF(17236),
3024 AOM_ICDF(20210), AOM_ICDF(21768), AOM_ICDF(24303), AOM_ICDF(26948),
3025 AOM_ICDF(28676), AOM_ICDF(32768), 0 },
3026 { AOM_ICDF(4864), AOM_ICDF(12712), AOM_ICDF(14201), AOM_ICDF(23863),
3027 AOM_ICDF(25952), AOM_ICDF(26386), AOM_ICDF(27632), AOM_ICDF(28635),
3028 AOM_ICDF(30362), AOM_ICDF(32768), 0 } },
3029 { { AOM_ICDF(13184), AOM_ICDF(15173), AOM_ICDF(17647), AOM_ICDF(21576),
3030 AOM_ICDF(24474), AOM_ICDF(25267), AOM_ICDF(27699), AOM_ICDF(29283),
3031 AOM_ICDF(30549), AOM_ICDF(32768), 0 },
3032 { AOM_ICDF(7552), AOM_ICDF(11295), AOM_ICDF(18257), AOM_ICDF(20811),
3033 AOM_ICDF(23213), AOM_ICDF(24606), AOM_ICDF(27731), AOM_ICDF(30407),
3034 AOM_ICDF(31237), AOM_ICDF(32768), 0 },
3035 { AOM_ICDF(7936), AOM_ICDF(10846), AOM_ICDF(12816), AOM_ICDF(22436),
3036 AOM_ICDF(24614), AOM_ICDF(25130), AOM_ICDF(26890), AOM_ICDF(28199),
3037 AOM_ICDF(29091), AOM_ICDF(32768), 0 },
3038 { AOM_ICDF(8576), AOM_ICDF(11411), AOM_ICDF(13830), AOM_ICDF(15918),
3039 AOM_ICDF(18996), AOM_ICDF(20044), AOM_ICDF(25114), AOM_ICDF(27835),
3040 AOM_ICDF(28972), AOM_ICDF(32768), 0 },
3041 { AOM_ICDF(7680), AOM_ICDF(10816), AOM_ICDF(13646), AOM_ICDF(15966),
3042 AOM_ICDF(21162), AOM_ICDF(22012), AOM_ICDF(24701), AOM_ICDF(27506),
3043 AOM_ICDF(29644), AOM_ICDF(32768), 0 },
3044 { AOM_ICDF(6784), AOM_ICDF(9423), AOM_ICDF(12524), AOM_ICDF(14773),
3045 AOM_ICDF(19447), AOM_ICDF(22804), AOM_ICDF(26073), AOM_ICDF(29211),
3046 AOM_ICDF(30642), AOM_ICDF(32768), 0 },
3047 { AOM_ICDF(6784), AOM_ICDF(8916), AOM_ICDF(11059), AOM_ICDF(15861),
3048 AOM_ICDF(21174), AOM_ICDF(22338), AOM_ICDF(24620), AOM_ICDF(27071),
3049 AOM_ICDF(30899), AOM_ICDF(32768), 0 },
3050 { AOM_ICDF(9856), AOM_ICDF(11557), AOM_ICDF(13960), AOM_ICDF(18525),
3051 AOM_ICDF(21788), AOM_ICDF(22189), AOM_ICDF(24462), AOM_ICDF(26603),
3052 AOM_ICDF(27470), AOM_ICDF(32768), 0 },
3053 { AOM_ICDF(7808), AOM_ICDF(10636), AOM_ICDF(13143), AOM_ICDF(15844),
3054 AOM_ICDF(18698), AOM_ICDF(20272), AOM_ICDF(24323), AOM_ICDF(30096),
3055 AOM_ICDF(31787), AOM_ICDF(32768), 0 },
3056 { AOM_ICDF(6016), AOM_ICDF(10928), AOM_ICDF(14596), AOM_ICDF(18926),
3057 AOM_ICDF(21586), AOM_ICDF(22688), AOM_ICDF(26626), AOM_ICDF(29001),
3058 AOM_ICDF(30399), AOM_ICDF(32768), 0 } },
3059 { { AOM_ICDF(8832), AOM_ICDF(10983), AOM_ICDF(13451), AOM_ICDF(16582),
3060 AOM_ICDF(21656), AOM_ICDF(23109), AOM_ICDF(24845), AOM_ICDF(26207),
3061 AOM_ICDF(28796), AOM_ICDF(32768), 0 },
3062 { AOM_ICDF(6784), AOM_ICDF(10844), AOM_ICDF(15554), AOM_ICDF(18073),
3063 AOM_ICDF(22954), AOM_ICDF(24901), AOM_ICDF(26776), AOM_ICDF(28649),
3064 AOM_ICDF(30419), AOM_ICDF(32768), 0 },
3065 { AOM_ICDF(5120), AOM_ICDF(8252), AOM_ICDF(10072), AOM_ICDF(20108),
3066 AOM_ICDF(23535), AOM_ICDF(24346), AOM_ICDF(25761), AOM_ICDF(26418),
3067 AOM_ICDF(28675), AOM_ICDF(32768), 0 },
3068 { AOM_ICDF(7680), AOM_ICDF(11012), AOM_ICDF(12627), AOM_ICDF(14595),
3069 AOM_ICDF(19462), AOM_ICDF(20888), AOM_ICDF(23348), AOM_ICDF(25703),
3070 AOM_ICDF(28159), AOM_ICDF(32768), 0 },
3071 { AOM_ICDF(6656), AOM_ICDF(9818), AOM_ICDF(11790), AOM_ICDF(13813),
3072 AOM_ICDF(22731), AOM_ICDF(24737), AOM_ICDF(26557), AOM_ICDF(28061),
3073 AOM_ICDF(29697), AOM_ICDF(32768), 0 },
3074 { AOM_ICDF(5632), AOM_ICDF(8918), AOM_ICDF(11620), AOM_ICDF(13802),
3075 AOM_ICDF(19950), AOM_ICDF(23764), AOM_ICDF(25734), AOM_ICDF(28537),
3076 AOM_ICDF(31809), AOM_ICDF(32768), 0 },
3077 { AOM_ICDF(4480), AOM_ICDF(6580), AOM_ICDF(7808), AOM_ICDF(12281),
3078 AOM_ICDF(19375), AOM_ICDF(20970), AOM_ICDF(22860), AOM_ICDF(24602),
3079 AOM_ICDF(29929), AOM_ICDF(32768), 0 },
3080 { AOM_ICDF(7040), AOM_ICDF(9553), AOM_ICDF(11457), AOM_ICDF(15102),
3081 AOM_ICDF(20291), AOM_ICDF(21280), AOM_ICDF(22985), AOM_ICDF(24475),
3082 AOM_ICDF(26613), AOM_ICDF(32768), 0 },
Jonathan Matthewsb28b78c2017-04-19 08:47:01 +01003083 { AOM_ICDF(6528), AOM_ICDF(10423), AOM_ICDF(12605), AOM_ICDF(14621),
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07003084 AOM_ICDF(19031), AOM_ICDF(21505), AOM_ICDF(24585), AOM_ICDF(27558),
3085 AOM_ICDF(29532), AOM_ICDF(32768), 0 },
3086 { AOM_ICDF(6016), AOM_ICDF(11659), AOM_ICDF(14463), AOM_ICDF(18867),
3087 AOM_ICDF(23653), AOM_ICDF(24903), AOM_ICDF(27115), AOM_ICDF(29389),
3088 AOM_ICDF(31382), AOM_ICDF(32768), 0 } },
3089 { { AOM_ICDF(8192), AOM_ICDF(10016), AOM_ICDF(13304), AOM_ICDF(16362),
3090 AOM_ICDF(21107), AOM_ICDF(25165), AOM_ICDF(26620), AOM_ICDF(28901),
3091 AOM_ICDF(30910), AOM_ICDF(32768), 0 },
3092 { AOM_ICDF(5888), AOM_ICDF(8723), AOM_ICDF(16237), AOM_ICDF(18318),
3093 AOM_ICDF(22002), AOM_ICDF(25923), AOM_ICDF(27394), AOM_ICDF(29934),
3094 AOM_ICDF(31428), AOM_ICDF(32768), 0 },
3095 { AOM_ICDF(4608), AOM_ICDF(7138), AOM_ICDF(9841), AOM_ICDF(18442),
3096 AOM_ICDF(22447), AOM_ICDF(24618), AOM_ICDF(26337), AOM_ICDF(27945),
3097 AOM_ICDF(30168), AOM_ICDF(32768), 0 },
3098 { AOM_ICDF(6784), AOM_ICDF(8916), AOM_ICDF(12270), AOM_ICDF(14851),
3099 AOM_ICDF(19886), AOM_ICDF(22759), AOM_ICDF(25105), AOM_ICDF(28368),
3100 AOM_ICDF(29760), AOM_ICDF(32768), 0 },
3101 { AOM_ICDF(5120), AOM_ICDF(7928), AOM_ICDF(11324), AOM_ICDF(13340),
3102 AOM_ICDF(21205), AOM_ICDF(24224), AOM_ICDF(25926), AOM_ICDF(28518),
3103 AOM_ICDF(30560), AOM_ICDF(32768), 0 },
3104 { AOM_ICDF(4480), AOM_ICDF(6580), AOM_ICDF(10058), AOM_ICDF(11237),
3105 AOM_ICDF(16807), AOM_ICDF(25937), AOM_ICDF(27218), AOM_ICDF(30015),
3106 AOM_ICDF(31348), AOM_ICDF(32768), 0 },
3107 { AOM_ICDF(4608), AOM_ICDF(6808), AOM_ICDF(9445), AOM_ICDF(12446),
3108 AOM_ICDF(18461), AOM_ICDF(21835), AOM_ICDF(23244), AOM_ICDF(26109),
3109 AOM_ICDF(30115), AOM_ICDF(32768), 0 },
3110 { AOM_ICDF(5760), AOM_ICDF(7659), AOM_ICDF(10798), AOM_ICDF(14720),
3111 AOM_ICDF(19157), AOM_ICDF(21955), AOM_ICDF(23645), AOM_ICDF(26460),
3112 AOM_ICDF(28702), AOM_ICDF(32768), 0 },
3113 { AOM_ICDF(5760), AOM_ICDF(8503), AOM_ICDF(11157), AOM_ICDF(13071),
3114 AOM_ICDF(17594), AOM_ICDF(22047), AOM_ICDF(24099), AOM_ICDF(29077),
3115 AOM_ICDF(30850), AOM_ICDF(32768), 0 },
3116 { AOM_ICDF(4864), AOM_ICDF(9660), AOM_ICDF(14264), AOM_ICDF(17105),
3117 AOM_ICDF(21528), AOM_ICDF(24094), AOM_ICDF(26025), AOM_ICDF(28580),
3118 AOM_ICDF(30559), AOM_ICDF(32768), 0 } },
3119 { { AOM_ICDF(9600), AOM_ICDF(11139), AOM_ICDF(12998), AOM_ICDF(18660),
3120 AOM_ICDF(22158), AOM_ICDF(23501), AOM_ICDF(24659), AOM_ICDF(25736),
3121 AOM_ICDF(30296), AOM_ICDF(32768), 0 },
3122 { AOM_ICDF(7168), AOM_ICDF(11068), AOM_ICDF(15984), AOM_ICDF(19969),
3123 AOM_ICDF(23169), AOM_ICDF(24704), AOM_ICDF(26216), AOM_ICDF(27572),
3124 AOM_ICDF(31368), AOM_ICDF(32768), 0 },
3125 { AOM_ICDF(4480), AOM_ICDF(6801), AOM_ICDF(8018), AOM_ICDF(20908),
3126 AOM_ICDF(23071), AOM_ICDF(23583), AOM_ICDF(24301), AOM_ICDF(25062),
3127 AOM_ICDF(29427), AOM_ICDF(32768), 0 },
3128 { AOM_ICDF(7168), AOM_ICDF(10068), AOM_ICDF(11753), AOM_ICDF(15843),
3129 AOM_ICDF(19742), AOM_ICDF(21358), AOM_ICDF(23809), AOM_ICDF(26189),
3130 AOM_ICDF(29067), AOM_ICDF(32768), 0 },
3131 { AOM_ICDF(6016), AOM_ICDF(9047), AOM_ICDF(10622), AOM_ICDF(13931),
3132 AOM_ICDF(22462), AOM_ICDF(23858), AOM_ICDF(25911), AOM_ICDF(27277),
3133 AOM_ICDF(29722), AOM_ICDF(32768), 0 },
3134 { AOM_ICDF(5888), AOM_ICDF(7568), AOM_ICDF(9931), AOM_ICDF(13533),
3135 AOM_ICDF(18431), AOM_ICDF(22063), AOM_ICDF(23777), AOM_ICDF(26025),
3136 AOM_ICDF(30555), AOM_ICDF(32768), 0 },
3137 { AOM_ICDF(4352), AOM_ICDF(6239), AOM_ICDF(7379), AOM_ICDF(13739),
3138 AOM_ICDF(16917), AOM_ICDF(18090), AOM_ICDF(18835), AOM_ICDF(19651),
3139 AOM_ICDF(30360), AOM_ICDF(32768), 0 },
3140 { AOM_ICDF(6528), AOM_ICDF(8988), AOM_ICDF(10288), AOM_ICDF(15534),
3141 AOM_ICDF(19495), AOM_ICDF(20386), AOM_ICDF(21934), AOM_ICDF(23034),
3142 AOM_ICDF(26988), AOM_ICDF(32768), 0 },
3143 { AOM_ICDF(7040), AOM_ICDF(10055), AOM_ICDF(11652), AOM_ICDF(14757),
3144 AOM_ICDF(19622), AOM_ICDF(21715), AOM_ICDF(23615), AOM_ICDF(26761),
3145 AOM_ICDF(29483), AOM_ICDF(32768), 0 },
3146 { AOM_ICDF(4736), AOM_ICDF(10102), AOM_ICDF(12315), AOM_ICDF(19078),
3147 AOM_ICDF(21348), AOM_ICDF(22621), AOM_ICDF(24246), AOM_ICDF(26044),
3148 AOM_ICDF(29931), AOM_ICDF(32768), 0 } },
3149 { { AOM_ICDF(10496), AOM_ICDF(12410), AOM_ICDF(14955), AOM_ICDF(19891),
3150 AOM_ICDF(23137), AOM_ICDF(23792), AOM_ICDF(25159), AOM_ICDF(26378),
3151 AOM_ICDF(28125), AOM_ICDF(32768), 0 },
3152 { AOM_ICDF(7936), AOM_ICDF(12204), AOM_ICDF(17104), AOM_ICDF(20191),
3153 AOM_ICDF(23468), AOM_ICDF(24630), AOM_ICDF(26156), AOM_ICDF(27628),
3154 AOM_ICDF(28913), AOM_ICDF(32768), 0 },
3155 { AOM_ICDF(6016), AOM_ICDF(8629), AOM_ICDF(10232), AOM_ICDF(23591),
3156 AOM_ICDF(25349), AOM_ICDF(25637), AOM_ICDF(26306), AOM_ICDF(27063),
3157 AOM_ICDF(28980), AOM_ICDF(32768), 0 },
3158 { AOM_ICDF(8704), AOM_ICDF(12088), AOM_ICDF(13461), AOM_ICDF(16646),
3159 AOM_ICDF(20516), AOM_ICDF(21455), AOM_ICDF(24062), AOM_ICDF(26579),
3160 AOM_ICDF(28368), AOM_ICDF(32768), 0 },
3161 { AOM_ICDF(7296), AOM_ICDF(11177), AOM_ICDF(13117), AOM_ICDF(16196),
3162 AOM_ICDF(23378), AOM_ICDF(24708), AOM_ICDF(26440), AOM_ICDF(27997),
3163 AOM_ICDF(29078), AOM_ICDF(32768), 0 },
3164 { AOM_ICDF(6272), AOM_ICDF(9377), AOM_ICDF(12575), AOM_ICDF(15616),
3165 AOM_ICDF(20919), AOM_ICDF(23697), AOM_ICDF(26603), AOM_ICDF(27566),
3166 AOM_ICDF(29903), AOM_ICDF(32768), 0 },
3167 { AOM_ICDF(6528), AOM_ICDF(9091), AOM_ICDF(10478), AOM_ICDF(16445),
3168 AOM_ICDF(21081), AOM_ICDF(22320), AOM_ICDF(23871), AOM_ICDF(25087),
3169 AOM_ICDF(29258), AOM_ICDF(32768), 0 },
3170 { AOM_ICDF(8704), AOM_ICDF(11148), AOM_ICDF(12499), AOM_ICDF(17340),
3171 AOM_ICDF(20656), AOM_ICDF(21288), AOM_ICDF(22588), AOM_ICDF(23701),
3172 AOM_ICDF(24693), AOM_ICDF(32768), 0 },
3173 { AOM_ICDF(7552), AOM_ICDF(11394), AOM_ICDF(12980), AOM_ICDF(15562),
3174 AOM_ICDF(19942), AOM_ICDF(21792), AOM_ICDF(25093), AOM_ICDF(28211),
3175 AOM_ICDF(28959), AOM_ICDF(32768), 0 },
3176 { AOM_ICDF(5120), AOM_ICDF(11708), AOM_ICDF(13847), AOM_ICDF(19377),
3177 AOM_ICDF(22421), AOM_ICDF(23160), AOM_ICDF(25449), AOM_ICDF(27136),
3178 AOM_ICDF(29182), AOM_ICDF(32768), 0 } },
3179 { { AOM_ICDF(9984), AOM_ICDF(12031), AOM_ICDF(15190), AOM_ICDF(18673),
3180 AOM_ICDF(21422), AOM_ICDF(22812), AOM_ICDF(25690), AOM_ICDF(29118),
3181 AOM_ICDF(30458), AOM_ICDF(32768), 0 },
3182 { AOM_ICDF(6144), AOM_ICDF(9680), AOM_ICDF(17436), AOM_ICDF(19610),
3183 AOM_ICDF(21820), AOM_ICDF(23485), AOM_ICDF(26313), AOM_ICDF(30826),
3184 AOM_ICDF(31843), AOM_ICDF(32768), 0 },
3185 { AOM_ICDF(6016), AOM_ICDF(8315), AOM_ICDF(10607), AOM_ICDF(19333),
3186 AOM_ICDF(21572), AOM_ICDF(22553), AOM_ICDF(25266), AOM_ICDF(27288),
3187 AOM_ICDF(28551), AOM_ICDF(32768), 0 },
3188 { AOM_ICDF(7168), AOM_ICDF(9668), AOM_ICDF(12646), AOM_ICDF(16257),
3189 AOM_ICDF(19648), AOM_ICDF(20899), AOM_ICDF(25304), AOM_ICDF(30465),
3190 AOM_ICDF(31625), AOM_ICDF(32768), 0 },
3191 { AOM_ICDF(6144), AOM_ICDF(9368), AOM_ICDF(11836), AOM_ICDF(14130),
3192 AOM_ICDF(19153), AOM_ICDF(21157), AOM_ICDF(24876), AOM_ICDF(28452),
3193 AOM_ICDF(29396), AOM_ICDF(32768), 0 },
3194 { AOM_ICDF(5504), AOM_ICDF(8486), AOM_ICDF(11996), AOM_ICDF(14412),
3195 AOM_ICDF(17968), AOM_ICDF(21814), AOM_ICDF(24424), AOM_ICDF(30682),
3196 AOM_ICDF(32059), AOM_ICDF(32768), 0 },
3197 { AOM_ICDF(5376), AOM_ICDF(7195), AOM_ICDF(9592), AOM_ICDF(13331),
3198 AOM_ICDF(17569), AOM_ICDF(19460), AOM_ICDF(22371), AOM_ICDF(25458),
3199 AOM_ICDF(28942), AOM_ICDF(32768), 0 },
3200 { AOM_ICDF(7424), AOM_ICDF(9206), AOM_ICDF(11783), AOM_ICDF(16456),
3201 AOM_ICDF(19253), AOM_ICDF(20390), AOM_ICDF(23775), AOM_ICDF(27007),
3202 AOM_ICDF(28425), AOM_ICDF(32768), 0 },
3203 { AOM_ICDF(5888), AOM_ICDF(8303), AOM_ICDF(11361), AOM_ICDF(13440),
3204 AOM_ICDF(15848), AOM_ICDF(17549), AOM_ICDF(21532), AOM_ICDF(29564),
3205 AOM_ICDF(30665), AOM_ICDF(32768), 0 },
3206 { AOM_ICDF(4608), AOM_ICDF(8788), AOM_ICDF(13284), AOM_ICDF(16621),
3207 AOM_ICDF(18983), AOM_ICDF(20286), AOM_ICDF(24577), AOM_ICDF(28960),
3208 AOM_ICDF(30314), AOM_ICDF(32768), 0 } },
3209 { { AOM_ICDF(8320), AOM_ICDF(15005), AOM_ICDF(19168), AOM_ICDF(24282),
3210 AOM_ICDF(26707), AOM_ICDF(27402), AOM_ICDF(28681), AOM_ICDF(29639),
3211 AOM_ICDF(30629), AOM_ICDF(32768), 0 },
3212 { AOM_ICDF(5632), AOM_ICDF(13900), AOM_ICDF(22376), AOM_ICDF(24867),
3213 AOM_ICDF(26804), AOM_ICDF(27734), AOM_ICDF(29130), AOM_ICDF(30722),
3214 AOM_ICDF(31465), AOM_ICDF(32768), 0 },
3215 { AOM_ICDF(4992), AOM_ICDF(9115), AOM_ICDF(11055), AOM_ICDF(24893),
3216 AOM_ICDF(26316), AOM_ICDF(26661), AOM_ICDF(27663), AOM_ICDF(28301),
3217 AOM_ICDF(29418), AOM_ICDF(32768), 0 },
3218 { AOM_ICDF(7424), AOM_ICDF(12077), AOM_ICDF(14987), AOM_ICDF(19596),
3219 AOM_ICDF(22615), AOM_ICDF(23600), AOM_ICDF(26465), AOM_ICDF(28484),
3220 AOM_ICDF(29789), AOM_ICDF(32768), 0 },
3221 { AOM_ICDF(6272), AOM_ICDF(11447), AOM_ICDF(14362), AOM_ICDF(18204),
3222 AOM_ICDF(23418), AOM_ICDF(24715), AOM_ICDF(26697), AOM_ICDF(28547),
3223 AOM_ICDF(29520), AOM_ICDF(32768), 0 },
3224 { AOM_ICDF(5248), AOM_ICDF(10946), AOM_ICDF(15379), AOM_ICDF(18167),
3225 AOM_ICDF(22197), AOM_ICDF(25432), AOM_ICDF(27295), AOM_ICDF(30031),
3226 AOM_ICDF(30576), AOM_ICDF(32768), 0 },
3227 { AOM_ICDF(5120), AOM_ICDF(9008), AOM_ICDF(11607), AOM_ICDF(18210),
3228 AOM_ICDF(22327), AOM_ICDF(23427), AOM_ICDF(24887), AOM_ICDF(26580),
3229 AOM_ICDF(29892), AOM_ICDF(32768), 0 },
3230 { AOM_ICDF(6656), AOM_ICDF(10124), AOM_ICDF(12689), AOM_ICDF(19922),
3231 AOM_ICDF(22480), AOM_ICDF(22807), AOM_ICDF(24441), AOM_ICDF(25579),
3232 AOM_ICDF(26787), AOM_ICDF(32768), 0 },
3233 { AOM_ICDF(5376), AOM_ICDF(10084), AOM_ICDF(13983), AOM_ICDF(17113),
3234 AOM_ICDF(19996), AOM_ICDF(21614), AOM_ICDF(24403), AOM_ICDF(28651),
3235 AOM_ICDF(29938), AOM_ICDF(32768), 0 },
3236 { AOM_ICDF(5504), AOM_ICDF(14131), AOM_ICDF(17989), AOM_ICDF(23324),
3237 AOM_ICDF(25513), AOM_ICDF(26071), AOM_ICDF(27850), AOM_ICDF(29464),
3238 AOM_ICDF(30393), AOM_ICDF(32768), 0 } },
Urvang Joshi63234542017-03-10 12:04:03 -08003239#endif // CONFIG_ALT_INTRA
3240 };
Thomas Davies1d7db722017-02-22 11:15:00 +00003241#endif // CONFIG_EC_MULTISYMBOL
3242
Yaowu Xuc27fc142016-08-22 16:08:15 -07003243static void init_mode_probs(FRAME_CONTEXT *fc) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003244 av1_copy(fc->uv_mode_prob, default_uv_probs);
3245 av1_copy(fc->y_mode_prob, default_if_y_probs);
3246 av1_copy(fc->switchable_interp_prob, default_switchable_interp_prob);
3247 av1_copy(fc->partition_prob, default_partition_probs);
3248 av1_copy(fc->intra_inter_prob, default_intra_inter_p);
3249 av1_copy(fc->comp_inter_prob, default_comp_inter_p);
3250 av1_copy(fc->comp_ref_prob, default_comp_ref_p);
Angie Chiangbabf3e72017-03-20 15:32:24 -07003251#if CONFIG_LV_MAP
3252 av1_copy(fc->txb_skip, default_txb_skip);
3253 av1_copy(fc->nz_map, default_nz_map);
3254 av1_copy(fc->eob_flag, default_eob_flag);
3255 av1_copy(fc->dc_sign, default_dc_sign);
3256 av1_copy(fc->coeff_base, default_coeff_base);
3257 av1_copy(fc->coeff_lps, default_coeff_lps);
3258#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -07003259#if CONFIG_EXT_REFS
Yaowu Xuf883b422016-08-30 14:01:10 -07003260 av1_copy(fc->comp_bwdref_prob, default_comp_bwdref_p);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003261#endif // CONFIG_EXT_REFS
Yaowu Xuf883b422016-08-30 14:01:10 -07003262 av1_copy(fc->single_ref_prob, default_single_ref_p);
Zoe Liu239f06b2017-04-20 13:10:55 -07003263#if CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
3264 av1_copy(fc->comp_inter_mode_prob, default_comp_inter_mode_p);
3265#endif // CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
Yaowu Xuf883b422016-08-30 14:01:10 -07003266 av1_copy(fc->tx_size_probs, default_tx_size_prob);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003267#if CONFIG_VAR_TX
Yaowu Xuf883b422016-08-30 14:01:10 -07003268 av1_copy(fc->txfm_partition_prob, default_txfm_partition_probs);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003269#endif
Yaowu Xuf883b422016-08-30 14:01:10 -07003270 av1_copy(fc->skip_probs, default_skip_probs);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003271#if CONFIG_REF_MV
Yaowu Xuf883b422016-08-30 14:01:10 -07003272 av1_copy(fc->newmv_prob, default_newmv_prob);
3273 av1_copy(fc->zeromv_prob, default_zeromv_prob);
3274 av1_copy(fc->refmv_prob, default_refmv_prob);
3275 av1_copy(fc->drl_prob, default_drl_prob);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003276#endif // CONFIG_REF_MV
Yaowu Xuf883b422016-08-30 14:01:10 -07003277 av1_copy(fc->inter_mode_probs, default_inter_mode_probs);
Yue Chencb60b182016-10-13 15:18:22 -07003278#if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
3279 av1_copy(fc->motion_mode_prob, default_motion_mode_prob);
Yue Chen69f18e12016-09-08 14:48:15 -07003280#if CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
3281 av1_copy(fc->obmc_prob, default_obmc_prob);
3282#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
Yue Chencb60b182016-10-13 15:18:22 -07003283#endif // CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
Yaowu Xuc27fc142016-08-22 16:08:15 -07003284#if CONFIG_EXT_INTER
Yaowu Xuf883b422016-08-30 14:01:10 -07003285 av1_copy(fc->inter_compound_mode_probs, default_inter_compound_mode_probs);
Zoe Liu239f06b2017-04-20 13:10:55 -07003286#if CONFIG_COMPOUND_SINGLEREF
3287 av1_copy(fc->inter_singleref_comp_mode_probs,
3288 default_inter_singleref_comp_mode_probs);
3289#endif // CONFIG_COMPOUND_SINGLEREF
Sarah Parker6fddd182016-11-10 20:57:20 -08003290 av1_copy(fc->compound_type_prob, default_compound_type_probs);
Yaowu Xuf883b422016-08-30 14:01:10 -07003291 av1_copy(fc->interintra_prob, default_interintra_prob);
3292 av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob);
3293 av1_copy(fc->wedge_interintra_prob, default_wedge_interintra_prob);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003294#endif // CONFIG_EXT_INTER
3295#if CONFIG_SUPERTX
Yaowu Xuf883b422016-08-30 14:01:10 -07003296 av1_copy(fc->supertx_prob, default_supertx_prob);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003297#endif // CONFIG_SUPERTX
Nathan E. Eggef627e582016-08-19 20:06:51 -04003298 av1_copy(fc->seg.tree_probs, default_segment_tree_probs);
3299 av1_copy(fc->seg.pred_probs, default_segment_pred_probs);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003300#if CONFIG_EXT_INTRA
hui sueda3d762016-12-06 16:58:23 -08003301#if CONFIG_INTRA_INTERP
Yaowu Xuf883b422016-08-30 14:01:10 -07003302 av1_copy(fc->intra_filter_probs, default_intra_filter_probs);
hui sueda3d762016-12-06 16:58:23 -08003303#endif // CONFIG_INTRA_INTERP
Yaowu Xuc27fc142016-08-22 16:08:15 -07003304#endif // CONFIG_EXT_INTRA
hui su5db97432016-10-14 16:10:14 -07003305#if CONFIG_FILTER_INTRA
3306 av1_copy(fc->filter_intra_probs, default_filter_intra_probs);
3307#endif // CONFIG_FILTER_INTRA
Yaowu Xuf883b422016-08-30 14:01:10 -07003308 av1_copy(fc->inter_ext_tx_prob, default_inter_ext_tx_prob);
3309 av1_copy(fc->intra_ext_tx_prob, default_intra_ext_tx_prob);
Debargha Mukherjee5cd2ab92016-09-08 15:15:17 -07003310#if CONFIG_LOOP_RESTORATION
3311 av1_copy(fc->switchable_restore_prob, default_switchable_restore_prob);
3312#endif // CONFIG_LOOP_RESTORATION
Nathan E. Egge31296062016-11-16 09:44:26 -05003313#if CONFIG_EC_MULTISYMBOL
Thomas Davies1d7db722017-02-22 11:15:00 +00003314 av1_copy(fc->y_mode_cdf, default_if_y_mode_cdf);
3315 av1_copy(fc->uv_mode_cdf, default_uv_mode_cdf);
3316 av1_copy(fc->switchable_interp_cdf, default_switchable_interp_cdf);
3317 av1_copy(fc->partition_cdf, default_partition_cdf);
3318 av1_copy(fc->inter_mode_cdf, default_inter_mode_cdf);
Thomas Davies1d7db722017-02-22 11:15:00 +00003319 av1_copy(fc->intra_ext_tx_cdf, default_intra_ext_tx_cdf);
3320 av1_copy(fc->inter_ext_tx_cdf, default_inter_ext_tx_cdf);
hui sub4e25d22017-03-09 15:32:30 -08003321#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
3322 av1_copy(fc->intra_filter_cdf, default_intra_filter_cdf);
3323#endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
Thomas Davies1d7db722017-02-22 11:15:00 +00003324 av1_copy(fc->seg.tree_cdf, default_seg_tree_cdf);
3325 av1_copy(fc->tx_size_cdf, default_tx_size_cdf);
hui sub4e25d22017-03-09 15:32:30 -08003326#endif // CONFIG_EC_MULTISYMBOL
Thomas Daviesf6936102016-09-05 16:51:31 +01003327#if CONFIG_DELTA_Q
3328 av1_copy(fc->delta_q_prob, default_delta_q_probs);
Thomas Daviesd6ee8a82017-03-02 14:42:50 +00003329#if CONFIG_EC_MULTISYMBOL
3330 av1_copy(fc->delta_q_cdf, default_delta_q_cdf);
hui sub4e25d22017-03-09 15:32:30 -08003331#endif // CONFIG_EC_MULTISYMBOL
Fangwen Fu231fe422017-04-24 17:52:29 -07003332#if CONFIG_EXT_DELTA_Q
3333 av1_copy(fc->delta_lf_prob, default_delta_lf_probs);
3334#if CONFIG_EC_MULTISYMBOL
3335 av1_copy(fc->delta_lf_cdf, default_delta_lf_cdf);
3336#endif // CONFIG_EC_MULTISYMBOL
3337#endif
hui sub4e25d22017-03-09 15:32:30 -08003338#endif // CONFIG_DELTA_Q
Yaowu Xuc27fc142016-08-22 16:08:15 -07003339}
3340
Nathan E. Egge00b33312016-11-16 09:44:26 -05003341#if CONFIG_EC_MULTISYMBOL
Nathan E. Egge4947c292016-04-26 11:37:06 -04003342int av1_switchable_interp_ind[SWITCHABLE_FILTERS];
3343int av1_switchable_interp_inv[SWITCHABLE_FILTERS];
Thomas Davies6519beb2016-10-19 14:46:07 +01003344
Thomas Davies028b57f2017-02-22 16:42:11 +00003345#if !CONFIG_EC_ADAPT
Thomas Davies6519beb2016-10-19 14:46:07 +01003346void av1_set_mode_cdfs(struct AV1Common *cm) {
3347 FRAME_CONTEXT *fc = cm->fc;
3348 int i, j;
3349 if (cm->seg.enabled && cm->seg.update_map) {
3350 av1_tree_to_cdf(av1_segment_tree, cm->fc->seg.tree_probs,
3351 cm->fc->seg.tree_cdf);
3352 }
Thomas Davies6519beb2016-10-19 14:46:07 +01003353
Nathan E. Eggedd28aed2016-11-16 09:44:26 -05003354 for (i = 0; i < INTRA_MODES; ++i)
3355 av1_tree_to_cdf(av1_intra_mode_tree, fc->uv_mode_prob[i],
3356 fc->uv_mode_cdf[i]);
Thomas Davies028b57f2017-02-22 16:42:11 +00003357#if CONFIG_EXT_PARTITION_TYPES
Alex Converse57795a42017-03-14 12:18:25 -07003358 for (i = 0; i < PARTITION_PLOFFSET; ++i)
3359 av1_tree_to_cdf(av1_partition_tree, fc->partition_prob[i],
3360 fc->partition_cdf[i]);
3361 // Logical index (enum value) to inorder index (tree_to_cdf order)
3362 aom_cdf_prob inorder_partition_cdf[CDF_SIZE(EXT_PARTITION_TYPES)] = {};
3363 // TODO(aconverse): Generate this dynamically. The assumptions that
3364 // av1_indices_from_tree() makes don't hold for this tree.
3365 static const uint8_t av1_ext_partition_index_map[EXT_PARTITION_TYPES] = {
3366 0, 1, 4, 7, 2, 3, 5, 6,
3367 };
3368 for (; i < PARTITION_CONTEXTS; ++i) {
3369 av1_tree_to_cdf(av1_ext_partition_tree, fc->partition_prob[i],
3370 inorder_partition_cdf);
3371 aom_cdf_prob cum_prob = 0;
3372 for (j = 0; j < EXT_PARTITION_TYPES; ++j) {
3373 int inorder_idx = av1_ext_partition_index_map[j];
3374 aom_cdf_prob prob =
Timothy B. Terriberryf6c807c2017-03-25 16:09:29 -07003375 AOM_ICDF(inorder_partition_cdf[inorder_idx]) -
3376 (inorder_idx > 0 ? AOM_ICDF(inorder_partition_cdf[inorder_idx - 1])
3377 : 0);
3378 cum_prob += prob;
3379 fc->partition_cdf[i][j] = AOM_ICDF(cum_prob);
Alex Converse57795a42017-03-14 12:18:25 -07003380 }
3381 assert(cum_prob == CDF_PROB_TOP);
3382 }
Thomas Davies028b57f2017-02-22 16:42:11 +00003383#else
Thomas Davies6519beb2016-10-19 14:46:07 +01003384 for (i = 0; i < PARTITION_CONTEXTS; ++i)
3385 av1_tree_to_cdf(av1_partition_tree, fc->partition_prob[i],
3386 fc->partition_cdf[i]);
Thomas Davies028b57f2017-02-22 16:42:11 +00003387#endif
Nathan E. Eggedfa33f22016-11-16 09:44:26 -05003388
Nathan E. Egge10ba2be2016-11-16 09:44:26 -05003389 for (i = 0; i < INTRA_MODES; ++i)
3390 for (j = 0; j < INTRA_MODES; ++j)
3391 av1_tree_to_cdf(av1_intra_mode_tree, cm->kf_y_prob[i][j],
Thomas Davies1bfb5ed2017-01-11 15:28:11 +00003392 cm->fc->kf_y_cdf[i][j]);
Nathan E. Egge10ba2be2016-11-16 09:44:26 -05003393
Nathan E. Egge00b33312016-11-16 09:44:26 -05003394 for (j = 0; j < SWITCHABLE_FILTER_CONTEXTS; ++j)
3395 av1_tree_to_cdf(av1_switchable_interp_tree, fc->switchable_interp_prob[j],
3396 fc->switchable_interp_cdf[j]);
3397
Nathan E. Eggea59b23d2016-11-16 09:44:26 -05003398 for (i = 0; i < INTER_MODE_CONTEXTS; ++i)
3399 av1_tree_to_cdf(av1_inter_mode_tree, fc->inter_mode_probs[i],
3400 fc->inter_mode_cdf[i]);
3401
Nathan E. Eggeecc21ec2016-11-16 09:44:26 -05003402 for (i = 0; i < BLOCK_SIZE_GROUPS; ++i)
3403 av1_tree_to_cdf(av1_intra_mode_tree, fc->y_mode_prob[i], fc->y_mode_cdf[i]);
3404
Thomas Daviesb1bedf52017-03-17 14:03:28 +00003405#if CONFIG_EXT_TX
3406 int s;
3407 for (s = 0; s < EXT_TX_SETS_INTRA; ++s)
3408 for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
3409 for (j = 0; j < INTRA_MODES; ++j)
3410 av1_tree_to_cdf(av1_ext_tx_intra_tree[s],
3411 fc->intra_ext_tx_prob[s][i][j],
3412 fc->intra_ext_tx_cdf[s][i][j]);
3413
3414 for (s = 0; s < EXT_TX_SETS_INTER; ++s)
3415 for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
3416 av1_tree_to_cdf(av1_ext_tx_inter_tree[s], fc->inter_ext_tx_prob[s][i],
3417 fc->inter_ext_tx_cdf[s][i]);
3418#else
Nathan E. Eggedfa33f22016-11-16 09:44:26 -05003419 for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
Nathan E. Egge29ccee02016-11-16 09:44:26 -05003420 for (j = 0; j < TX_TYPES; ++j)
3421 av1_tree_to_cdf(av1_ext_tx_tree, fc->intra_ext_tx_prob[i][j],
3422 fc->intra_ext_tx_cdf[i][j]);
3423
3424 for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
Nathan E. Eggedfa33f22016-11-16 09:44:26 -05003425 av1_tree_to_cdf(av1_ext_tx_tree, fc->inter_ext_tx_prob[i],
3426 fc->inter_ext_tx_cdf[i]);
3427#endif
Nathan E. Egge2ea519e2017-02-16 18:18:15 -05003428 for (i = 0; i < MAX_TX_DEPTH; i++) {
3429 for (j = 0; j < TX_SIZE_CONTEXTS; j++) {
3430 av1_tree_to_cdf(av1_tx_size_tree[i], fc->tx_size_probs[i][j],
3431 fc->tx_size_cdf[i][j]);
3432 }
3433 }
hui sub4e25d22017-03-09 15:32:30 -08003434#if CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
3435 for (i = 0; i < INTRA_FILTERS + 1; ++i) {
3436 av1_tree_to_cdf(av1_intra_filter_tree, fc->intra_filter_probs[i],
3437 fc->intra_filter_cdf[i]);
3438 }
3439#endif // CONFIG_EXT_INTRA && CONFIG_INTRA_INTERP
Thomas Davies6519beb2016-10-19 14:46:07 +01003440}
Thomas Davies028b57f2017-02-22 16:42:11 +00003441#endif // !CONFIG_EC_ADAPT
hui sub4e25d22017-03-09 15:32:30 -08003442#endif // CONFIG_EC_MULTISYMBOL
Nathan E. Egge4947c292016-04-26 11:37:06 -04003443
Angie Chiang1733f6b2017-01-05 09:52:20 -08003444#if CONFIG_DUAL_FILTER
Yaowu Xuf883b422016-08-30 14:01:10 -07003445const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
3446 {
Angie Chiangd91ab372016-11-21 18:16:49 -08003447 -EIGHTTAP_REGULAR, 2, 4, -MULTITAP_SHARP, -EIGHTTAP_SMOOTH,
Yaowu Xuc27fc142016-08-22 16:08:15 -07003448 -EIGHTTAP_SMOOTH2,
Yaowu Xuc27fc142016-08-22 16:08:15 -07003449 };
3450#else
Yaowu Xuf883b422016-08-30 14:01:10 -07003451const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
3452 { -EIGHTTAP_REGULAR, 2, -EIGHTTAP_SMOOTH, -MULTITAP_SHARP };
Angie Chiang1733f6b2017-01-05 09:52:20 -08003453#endif // CONFIG_DUAL_FILTER
Yaowu Xuc27fc142016-08-22 16:08:15 -07003454
Yaowu Xuf883b422016-08-30 14:01:10 -07003455void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003456 int i, j;
3457 FRAME_CONTEXT *fc = cm->fc;
Thomas Daede10e1da92017-04-26 13:22:21 -07003458 const FRAME_CONTEXT *pre_fc = cm->pre_fc;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003459 const FRAME_COUNTS *counts = &cm->counts;
3460
3461 for (i = 0; i < INTRA_INTER_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003462 fc->intra_inter_prob[i] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003463 pre_fc->intra_inter_prob[i], counts->intra_inter[i]);
Zoe Liu239f06b2017-04-20 13:10:55 -07003464
Yaowu Xuc27fc142016-08-22 16:08:15 -07003465 for (i = 0; i < COMP_INTER_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003466 fc->comp_inter_prob[i] = av1_mode_mv_merge_probs(pre_fc->comp_inter_prob[i],
3467 counts->comp_inter[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003468
3469#if CONFIG_EXT_REFS
3470 for (i = 0; i < REF_CONTEXTS; i++)
3471 for (j = 0; j < (FWD_REFS - 1); j++)
3472 fc->comp_ref_prob[i][j] = mode_mv_merge_probs(pre_fc->comp_ref_prob[i][j],
3473 counts->comp_ref[i][j]);
3474 for (i = 0; i < REF_CONTEXTS; i++)
3475 for (j = 0; j < (BWD_REFS - 1); j++)
3476 fc->comp_bwdref_prob[i][j] = mode_mv_merge_probs(
3477 pre_fc->comp_bwdref_prob[i][j], counts->comp_bwdref[i][j]);
3478#else
3479 for (i = 0; i < REF_CONTEXTS; i++)
3480 for (j = 0; j < (COMP_REFS - 1); j++)
3481 fc->comp_ref_prob[i][j] = mode_mv_merge_probs(pre_fc->comp_ref_prob[i][j],
3482 counts->comp_ref[i][j]);
3483#endif // CONFIG_EXT_REFS
3484
3485 for (i = 0; i < REF_CONTEXTS; i++)
3486 for (j = 0; j < (SINGLE_REFS - 1); j++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003487 fc->single_ref_prob[i][j] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003488 pre_fc->single_ref_prob[i][j], counts->single_ref[i][j]);
3489
Zoe Liu239f06b2017-04-20 13:10:55 -07003490#if CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
3491 for (i = 0; i < COMP_INTER_MODE_CONTEXTS; i++)
3492 fc->comp_inter_mode_prob[i] = av1_mode_mv_merge_probs(
3493 pre_fc->comp_inter_mode_prob[i], counts->comp_inter_mode[i]);
3494
3495#endif // CONFIG_EXT_INTER && CONFIG_COMPOUND_SINGLEREF
3496
Yaowu Xuc27fc142016-08-22 16:08:15 -07003497#if CONFIG_REF_MV
3498 for (i = 0; i < NEWMV_MODE_CONTEXTS; ++i)
3499 fc->newmv_prob[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003500 av1_mode_mv_merge_probs(pre_fc->newmv_prob[i], counts->newmv_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003501 for (i = 0; i < ZEROMV_MODE_CONTEXTS; ++i)
Yaowu Xuf883b422016-08-30 14:01:10 -07003502 fc->zeromv_prob[i] =
3503 av1_mode_mv_merge_probs(pre_fc->zeromv_prob[i], counts->zeromv_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003504 for (i = 0; i < REFMV_MODE_CONTEXTS; ++i)
3505 fc->refmv_prob[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003506 av1_mode_mv_merge_probs(pre_fc->refmv_prob[i], counts->refmv_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003507
3508 for (i = 0; i < DRL_MODE_CONTEXTS; ++i)
3509 fc->drl_prob[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003510 av1_mode_mv_merge_probs(pre_fc->drl_prob[i], counts->drl_mode[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003511#else
3512 for (i = 0; i < INTER_MODE_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003513 aom_tree_merge_probs(av1_inter_mode_tree, pre_fc->inter_mode_probs[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003514 counts->inter_mode[i], fc->inter_mode_probs[i]);
3515#endif
3516
Yue Chencb60b182016-10-13 15:18:22 -07003517#if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
Yaowu Xuc27fc142016-08-22 16:08:15 -07003518 for (i = BLOCK_8X8; i < BLOCK_SIZES; ++i)
Yue Chencb60b182016-10-13 15:18:22 -07003519 aom_tree_merge_probs(av1_motion_mode_tree, pre_fc->motion_mode_prob[i],
3520 counts->motion_mode[i], fc->motion_mode_prob[i]);
Yue Chen69f18e12016-09-08 14:48:15 -07003521#if CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
3522 for (i = BLOCK_8X8; i < BLOCK_SIZES; ++i)
3523 fc->obmc_prob[i] =
3524 av1_mode_mv_merge_probs(pre_fc->obmc_prob[i], counts->obmc[i]);
3525#endif // CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
Yue Chencb60b182016-10-13 15:18:22 -07003526#endif // CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
Yaowu Xuc27fc142016-08-22 16:08:15 -07003527
3528#if CONFIG_SUPERTX
3529 for (i = 0; i < PARTITION_SUPERTX_CONTEXTS; ++i) {
Jingning Han93531242016-12-20 11:54:36 -08003530 for (j = TX_8X8; j < TX_SIZES; ++j) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003531 fc->supertx_prob[i][j] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003532 pre_fc->supertx_prob[i][j], counts->supertx[i][j]);
3533 }
3534 }
3535#endif // CONFIG_SUPERTX
3536
3537#if CONFIG_EXT_INTER
3538 for (i = 0; i < INTER_MODE_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003539 aom_tree_merge_probs(
3540 av1_inter_compound_mode_tree, pre_fc->inter_compound_mode_probs[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003541 counts->inter_compound_mode[i], fc->inter_compound_mode_probs[i]);
Zoe Liu239f06b2017-04-20 13:10:55 -07003542#if CONFIG_COMPOUND_SINGLEREF
3543 for (i = 0; i < INTER_MODE_CONTEXTS; i++)
3544 aom_tree_merge_probs(av1_inter_singleref_comp_mode_tree,
3545 pre_fc->inter_singleref_comp_mode_probs[i],
3546 counts->inter_singleref_comp_mode[i],
3547 fc->inter_singleref_comp_mode_probs[i]);
3548#endif // CONFIG_COMPOUND_SINGLEREF
Yaowu Xuc27fc142016-08-22 16:08:15 -07003549 for (i = 0; i < BLOCK_SIZE_GROUPS; ++i) {
3550 if (is_interintra_allowed_bsize_group(i))
Yaowu Xuf883b422016-08-30 14:01:10 -07003551 fc->interintra_prob[i] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003552 pre_fc->interintra_prob[i], counts->interintra[i]);
3553 }
3554 for (i = 0; i < BLOCK_SIZE_GROUPS; i++) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003555 aom_tree_merge_probs(
3556 av1_interintra_mode_tree, pre_fc->interintra_mode_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003557 counts->interintra_mode[i], fc->interintra_mode_prob[i]);
3558 }
3559 for (i = 0; i < BLOCK_SIZES; ++i) {
3560 if (is_interintra_allowed_bsize(i) && is_interintra_wedge_used(i))
Yaowu Xuf883b422016-08-30 14:01:10 -07003561 fc->wedge_interintra_prob[i] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003562 pre_fc->wedge_interintra_prob[i], counts->wedge_interintra[i]);
3563 }
Sarah Parker6fddd182016-11-10 20:57:20 -08003564
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +00003565#if CONFIG_COMPOUND_SEGMENT || CONFIG_WEDGE
Yaowu Xuc27fc142016-08-22 16:08:15 -07003566 for (i = 0; i < BLOCK_SIZES; ++i) {
Sarah Parker6fdc8532016-11-16 17:47:13 -08003567 aom_tree_merge_probs(av1_compound_type_tree, pre_fc->compound_type_prob[i],
3568 counts->compound_interinter[i],
3569 fc->compound_type_prob[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003570 }
Debargha Mukherjeec5f735f2017-04-26 03:25:28 +00003571#endif // CONFIG_COMPOUND_SEGMENT || CONFIG_WEDGE
Yaowu Xuc27fc142016-08-22 16:08:15 -07003572#endif // CONFIG_EXT_INTER
3573
3574 for (i = 0; i < BLOCK_SIZE_GROUPS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003575 aom_tree_merge_probs(av1_intra_mode_tree, pre_fc->y_mode_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003576 counts->y_mode[i], fc->y_mode_prob[i]);
3577
3578 if (cm->interp_filter == SWITCHABLE) {
3579 for (i = 0; i < SWITCHABLE_FILTER_CONTEXTS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003580 aom_tree_merge_probs(
3581 av1_switchable_interp_tree, pre_fc->switchable_interp_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003582 counts->switchable_interp[i], fc->switchable_interp_prob[i]);
3583 }
3584}
3585
Yaowu Xuf883b422016-08-30 14:01:10 -07003586void av1_adapt_intra_frame_probs(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003587 int i, j;
3588 FRAME_CONTEXT *fc = cm->fc;
Thomas Daede10e1da92017-04-26 13:22:21 -07003589 const FRAME_CONTEXT *pre_fc = cm->pre_fc;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003590 const FRAME_COUNTS *counts = &cm->counts;
3591
3592 if (cm->tx_mode == TX_MODE_SELECT) {
Jingning Hanaae72a62016-10-25 15:35:29 -07003593 for (i = 0; i < MAX_TX_DEPTH; ++i) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003594 for (j = 0; j < TX_SIZE_CONTEXTS; ++j)
Yaowu Xuf883b422016-08-30 14:01:10 -07003595 aom_tree_merge_probs(av1_tx_size_tree[i], pre_fc->tx_size_probs[i][j],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003596 counts->tx_size[i][j], fc->tx_size_probs[i][j]);
3597 }
3598 }
3599
3600#if CONFIG_VAR_TX
Yue Chena1e48dc2016-08-29 17:29:33 -07003601 if (cm->tx_mode == TX_MODE_SELECT) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003602 for (i = 0; i < TXFM_PARTITION_CONTEXTS; ++i)
Yaowu Xuf883b422016-08-30 14:01:10 -07003603 fc->txfm_partition_prob[i] = av1_mode_mv_merge_probs(
Yaowu Xuc27fc142016-08-22 16:08:15 -07003604 pre_fc->txfm_partition_prob[i], counts->txfm_partition[i]);
Yue Chena1e48dc2016-08-29 17:29:33 -07003605 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07003606#endif
3607
3608 for (i = 0; i < SKIP_CONTEXTS; ++i)
3609 fc->skip_probs[i] =
Yaowu Xuf883b422016-08-30 14:01:10 -07003610 av1_mode_mv_merge_probs(pre_fc->skip_probs[i], counts->skip[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003611
3612#if CONFIG_EXT_TX
3613 for (i = TX_4X4; i < EXT_TX_SIZES; ++i) {
3614 int s;
3615 for (s = 1; s < EXT_TX_SETS_INTER; ++s) {
3616 if (use_inter_ext_tx_for_txsize[s][i]) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003617 aom_tree_merge_probs(
3618 av1_ext_tx_inter_tree[s], pre_fc->inter_ext_tx_prob[s][i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003619 counts->inter_ext_tx[s][i], fc->inter_ext_tx_prob[s][i]);
3620 }
3621 }
3622 for (s = 1; s < EXT_TX_SETS_INTRA; ++s) {
3623 if (use_intra_ext_tx_for_txsize[s][i]) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003624 for (j = 0; j < INTRA_MODES; ++j)
Yaowu Xuf883b422016-08-30 14:01:10 -07003625 aom_tree_merge_probs(
3626 av1_ext_tx_intra_tree[s], pre_fc->intra_ext_tx_prob[s][i][j],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003627 counts->intra_ext_tx[s][i][j], fc->intra_ext_tx_prob[s][i][j]);
3628 }
3629 }
3630 }
3631#else
3632 for (i = TX_4X4; i < EXT_TX_SIZES; ++i) {
Nathan E. Egge7c5b4c12016-04-26 12:31:14 -04003633 for (j = 0; j < TX_TYPES; ++j) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003634 aom_tree_merge_probs(av1_ext_tx_tree, pre_fc->intra_ext_tx_prob[i][j],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003635 counts->intra_ext_tx[i][j],
3636 fc->intra_ext_tx_prob[i][j]);
Nathan E. Egge7c5b4c12016-04-26 12:31:14 -04003637 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07003638 }
3639 for (i = TX_4X4; i < EXT_TX_SIZES; ++i) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003640 aom_tree_merge_probs(av1_ext_tx_tree, pre_fc->inter_ext_tx_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003641 counts->inter_ext_tx[i], fc->inter_ext_tx_prob[i]);
3642 }
3643#endif // CONFIG_EXT_TX
3644
3645 if (cm->seg.temporal_update) {
3646 for (i = 0; i < PREDICTION_PROBS; i++)
Yaowu Xuf883b422016-08-30 14:01:10 -07003647 fc->seg.pred_probs[i] = av1_mode_mv_merge_probs(pre_fc->seg.pred_probs[i],
3648 counts->seg.pred[i]);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003649
Yaowu Xuf883b422016-08-30 14:01:10 -07003650 aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
Yaowu Xuc27fc142016-08-22 16:08:15 -07003651 counts->seg.tree_mispred, fc->seg.tree_probs);
3652 } else {
Yaowu Xuf883b422016-08-30 14:01:10 -07003653 aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
Yaowu Xuc27fc142016-08-22 16:08:15 -07003654 counts->seg.tree_total, fc->seg.tree_probs);
3655 }
3656
3657 for (i = 0; i < INTRA_MODES; ++i)
Yaowu Xuf883b422016-08-30 14:01:10 -07003658 aom_tree_merge_probs(av1_intra_mode_tree, pre_fc->uv_mode_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003659 counts->uv_mode[i], fc->uv_mode_prob[i]);
3660
3661#if CONFIG_EXT_PARTITION_TYPES
Alex Converse4e18d402017-03-14 15:36:38 -07003662 for (i = 0; i < PARTITION_PLOFFSET; ++i)
3663 aom_tree_merge_probs(av1_partition_tree, pre_fc->partition_prob[i],
3664 counts->partition[i], fc->partition_prob[i]);
3665 for (; i < PARTITION_CONTEXTS_PRIMARY; ++i)
Yaowu Xuf883b422016-08-30 14:01:10 -07003666 aom_tree_merge_probs(av1_ext_partition_tree, pre_fc->partition_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003667 counts->partition[i], fc->partition_prob[i]);
3668#else
Alex Converse4e18d402017-03-14 15:36:38 -07003669 for (i = 0; i < PARTITION_CONTEXTS_PRIMARY; ++i) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003670 aom_tree_merge_probs(av1_partition_tree, pre_fc->partition_prob[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003671 counts->partition[i], fc->partition_prob[i]);
Nathan E. Eggefba2be62016-05-03 09:48:54 -04003672 }
Yaowu Xuc27fc142016-08-22 16:08:15 -07003673#endif // CONFIG_EXT_PARTITION_TYPES
Alex Converse55c6bde2017-01-12 15:55:31 -08003674#if CONFIG_UNPOISON_PARTITION_CTX
3675 for (i = PARTITION_CONTEXTS_PRIMARY;
3676 i < PARTITION_CONTEXTS_PRIMARY + PARTITION_BLOCK_SIZES; ++i) {
3677 unsigned int ct[2] = { counts->partition[i][PARTITION_VERT],
3678 counts->partition[i][PARTITION_SPLIT] };
3679 assert(counts->partition[i][PARTITION_NONE] == 0);
3680 assert(counts->partition[i][PARTITION_HORZ] == 0);
3681 assert(fc->partition_prob[i][PARTITION_NONE] == 0);
3682 assert(fc->partition_prob[i][PARTITION_HORZ] == 0);
3683 fc->partition_prob[i][PARTITION_VERT] =
3684 av1_mode_mv_merge_probs(pre_fc->partition_prob[i][PARTITION_VERT], ct);
3685 }
3686 for (i = PARTITION_CONTEXTS_PRIMARY + PARTITION_BLOCK_SIZES;
3687 i < PARTITION_CONTEXTS_PRIMARY + 2 * PARTITION_BLOCK_SIZES; ++i) {
3688 unsigned int ct[2] = { counts->partition[i][PARTITION_HORZ],
3689 counts->partition[i][PARTITION_SPLIT] };
3690 assert(counts->partition[i][PARTITION_NONE] == 0);
3691 assert(counts->partition[i][PARTITION_VERT] == 0);
3692 assert(fc->partition_prob[i][PARTITION_NONE] == 0);
3693 assert(fc->partition_prob[i][PARTITION_VERT] == 0);
3694 fc->partition_prob[i][PARTITION_HORZ] =
3695 av1_mode_mv_merge_probs(pre_fc->partition_prob[i][PARTITION_HORZ], ct);
3696 }
3697#endif
Thomas Daviesf6936102016-09-05 16:51:31 +01003698#if CONFIG_DELTA_Q
Thomas Davies665cd702017-03-02 10:20:30 +00003699 for (i = 0; i < DELTA_Q_PROBS; ++i)
Thomas Daviesf6936102016-09-05 16:51:31 +01003700 fc->delta_q_prob[i] =
3701 mode_mv_merge_probs(pre_fc->delta_q_prob[i], counts->delta_q[i]);
Fangwen Fu231fe422017-04-24 17:52:29 -07003702#if CONFIG_EXT_DELTA_Q
3703 for (i = 0; i < DELTA_LF_PROBS; ++i)
3704 fc->delta_lf_prob[i] =
3705 mode_mv_merge_probs(pre_fc->delta_lf_prob[i], counts->delta_lf[i]);
3706#endif // CONFIG_EXT_DELTA_Q
Thomas Daviesf6936102016-09-05 16:51:31 +01003707#endif
Yaowu Xuc27fc142016-08-22 16:08:15 -07003708#if CONFIG_EXT_INTRA
hui sueda3d762016-12-06 16:58:23 -08003709#if CONFIG_INTRA_INTERP
hui su5db97432016-10-14 16:10:14 -07003710 for (i = 0; i < INTRA_FILTERS + 1; ++i) {
Yaowu Xuf883b422016-08-30 14:01:10 -07003711 aom_tree_merge_probs(av1_intra_filter_tree, pre_fc->intra_filter_probs[i],
Yaowu Xuc27fc142016-08-22 16:08:15 -07003712 counts->intra_filter[i], fc->intra_filter_probs[i]);
hui su5db97432016-10-14 16:10:14 -07003713 }
hui sueda3d762016-12-06 16:58:23 -08003714#endif // CONFIG_INTRA_INTERP
Yaowu Xuc27fc142016-08-22 16:08:15 -07003715#endif // CONFIG_EXT_INTRA
hui su5db97432016-10-14 16:10:14 -07003716#if CONFIG_FILTER_INTRA
3717 for (i = 0; i < PLANE_TYPES; ++i) {
3718 fc->filter_intra_probs[i] = av1_mode_mv_merge_probs(
3719 pre_fc->filter_intra_probs[i], counts->filter_intra[i]);
3720 }
3721#endif // CONFIG_FILTER_INTRA
Yaowu Xuc27fc142016-08-22 16:08:15 -07003722}
3723
3724static void set_default_lf_deltas(struct loopfilter *lf) {
3725 lf->mode_ref_delta_enabled = 1;
3726 lf->mode_ref_delta_update = 1;
3727
3728 lf->ref_deltas[INTRA_FRAME] = 1;
3729 lf->ref_deltas[LAST_FRAME] = 0;
3730#if CONFIG_EXT_REFS
3731 lf->ref_deltas[LAST2_FRAME] = lf->ref_deltas[LAST_FRAME];
3732 lf->ref_deltas[LAST3_FRAME] = lf->ref_deltas[LAST_FRAME];
3733 lf->ref_deltas[BWDREF_FRAME] = lf->ref_deltas[LAST_FRAME];
3734#endif // CONFIG_EXT_REFS
3735 lf->ref_deltas[GOLDEN_FRAME] = -1;
3736 lf->ref_deltas[ALTREF_FRAME] = -1;
3737
3738 lf->mode_deltas[0] = 0;
3739 lf->mode_deltas[1] = 0;
3740}
3741
Yaowu Xuf883b422016-08-30 14:01:10 -07003742void av1_setup_past_independence(AV1_COMMON *cm) {
Yaowu Xuc27fc142016-08-22 16:08:15 -07003743 // Reset the segment feature data to the default stats:
3744 // Features disabled, 0, with delta coding (Default state).
3745 struct loopfilter *const lf = &cm->lf;
3746
3747 int i;
Yaowu Xuf883b422016-08-30 14:01:10 -07003748 av1_clearall_segfeatures(&cm->seg);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003749 cm->seg.abs_delta = SEGMENT_DELTADATA;
3750
3751 if (cm->last_frame_seg_map && !cm->frame_parallel_decode)
3752 memset(cm->last_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));
3753
3754 if (cm->current_frame_seg_map)
3755 memset(cm->current_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));
3756
3757 // Reset the mode ref deltas for loop filter
Yaowu Xuf883b422016-08-30 14:01:10 -07003758 av1_zero(lf->last_ref_deltas);
3759 av1_zero(lf->last_mode_deltas);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003760 set_default_lf_deltas(lf);
3761
3762 // To force update of the sharpness
3763 lf->last_sharpness_level = -1;
Yaowu Xuc27fc142016-08-22 16:08:15 -07003764
Yaowu Xuf883b422016-08-30 14:01:10 -07003765 av1_default_coef_probs(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003766 init_mode_probs(cm->fc);
Yaowu Xuf883b422016-08-30 14:01:10 -07003767 av1_init_mv_probs(cm);
Yushin Chob188ea12017-03-13 13:45:23 -07003768#if CONFIG_PVQ
3769 av1_default_pvq_probs(cm);
3770#endif // CONFIG_PVQ
Angie Chianged8cd9a2016-10-21 16:44:47 -07003771#if CONFIG_ADAPT_SCAN
3772 av1_init_scan_order(cm);
3773#endif
Angie Chiang0a2c0cb2017-02-23 14:19:15 -08003774 av1_convolve_init(cm);
Yaowu Xuc27fc142016-08-22 16:08:15 -07003775 cm->fc->initialized = 1;
3776
3777 if (cm->frame_type == KEY_FRAME || cm->error_resilient_mode ||
3778 cm->reset_frame_context == RESET_FRAME_CONTEXT_ALL) {
3779 // Reset all frame contexts.
3780 for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
3781 } else if (cm->reset_frame_context == RESET_FRAME_CONTEXT_CURRENT) {
3782 // Reset only the frame context specified in the frame header.
3783 cm->frame_contexts[cm->frame_context_idx] = *cm->fc;
3784 }
3785
3786 // prev_mip will only be allocated in encoder.
3787 if (frame_is_intra_only(cm) && cm->prev_mip && !cm->frame_parallel_decode)
3788 memset(cm->prev_mip, 0,
3789 cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->prev_mip));
3790
3791 cm->frame_context_idx = 0;
3792}