entropymode.c 82.1 KB
Newer Older
Jingning Han's avatar
Jingning Han committed
1
/*
Yaowu Xu's avatar
Yaowu Xu committed
2
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
Jingning Han's avatar
Jingning Han committed
3
 *
Yaowu Xu's avatar
Yaowu Xu committed
4
5
6
7
8
9
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
Jingning Han's avatar
Jingning Han committed
10
11
 */

Yaowu Xu's avatar
Yaowu Xu committed
12
#include "aom_mem/aom_mem.h"
Jingning Han's avatar
Jingning Han committed
13

14
#include "av1/common/reconinter.h"
Angie Chiang's avatar
Angie Chiang committed
15
#include "av1/common/scan.h"
16
17
#include "av1/common/onyxc_int.h"
#include "av1/common/seg_common.h"
Jingning Han's avatar
Jingning Han committed
18

19
#if CONFIG_EC_MULTISYMBOL
20
21
aom_cdf_prob av1_kf_y_mode_cdf[INTRA_MODES][INTRA_MODES]
                              [INTRA_MODES + CONFIG_EC_ADAPT];
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
#endif

#if CONFIG_ALT_INTRA

const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
  {
      // above = dc
      { 121, 30, 54, 128, 164, 158, 45, 41, 57, 91 },   // left = dc
      { 91, 38, 101, 102, 124, 141, 49, 48, 45, 73 },   // left = v
      { 66, 28, 27, 177, 225, 178, 32, 27, 52, 114 },   // left = h
      { 106, 23, 50, 101, 134, 148, 64, 50, 49, 107 },  // left = d45
      { 75, 24, 32, 118, 66, 143, 42, 28, 57, 74 },     // left = d135
      { 95, 24, 40, 142, 56, 141, 72, 121, 129, 255 },  // left = d117
      { 71, 14, 25, 126, 117, 201, 28, 21, 117, 89 },   // left = d153
      { 85, 16, 37, 110, 163, 178, 41, 28, 48, 134 },   // left = d207
      { 86, 25, 32, 83, 105, 133, 58, 81, 46, 95 },     // left = d63
      { 79, 25, 38, 75, 150, 255, 30, 49, 34, 51 },     // left = smooth
      { 68, 59, 48, 122, 193, 158, 43, 46, 46, 112 },   // left = paeth
  },
  {
      // above = v
      { 66, 21, 118, 111, 145, 107, 27, 50, 27, 54 },    // left = dc
      { 52, 25, 167, 81, 120, 101, 34, 55, 19, 32 },     // left = v
      { 56, 18, 72, 134, 208, 139, 31, 34, 27, 89 },     // left = h
      { 75, 21, 94, 88, 134, 123, 49, 57, 30, 68 },      // left = d45
      { 54, 18, 95, 96, 78, 107, 33, 49, 28, 65 },       // left = d135
      { 61, 19, 121, 131, 58, 101, 56, 143, 120, 255 },  // left = d117
      { 53, 13, 78, 103, 110, 147, 31, 41, 64, 77 },     // left = d153
      { 69, 14, 78, 93, 167, 121, 31, 39, 25, 113 },     // left = d207
      { 64, 18, 103, 79, 90, 108, 34, 73, 27, 69 },      // left = d63
      { 52, 20, 103, 61, 161, 255, 22, 42, 16, 35 },     // left = smooth
      { 50, 31, 124, 92, 161, 120, 50, 53, 23, 60 },     // left = paeth
  },
  {
      // above = h
      { 94, 29, 31, 158, 214, 178, 35, 31, 72, 111 },   // left = dc
      { 72, 37, 72, 149, 184, 177, 43, 40, 53, 105 },   // left = v
      { 53, 21, 14, 196, 242, 209, 29, 19, 55, 145 },   // left = h
      { 93, 36, 36, 104, 176, 166, 56, 37, 49, 141 },   // left = d45
      { 84, 32, 27, 124, 108, 143, 38, 36, 76, 134 },   // left = d135
      { 82, 31, 47, 142, 122, 161, 83, 73, 126, 255 },  // left = d117
      { 66, 16, 20, 133, 148, 210, 30, 17, 113, 104 },  // left = d153
      { 76, 16, 17, 129, 207, 181, 41, 20, 46, 163 },   // left = d207
      { 72, 38, 21, 100, 142, 171, 37, 70, 49, 111 },   // left = d63
      { 61, 30, 27, 115, 208, 255, 27, 31, 44, 63 },    // left = smooth
      { 53, 45, 29, 157, 222, 185, 49, 37, 55, 102 },   // left = paeth
  },
  {
      // above = d45
      { 96, 18, 37, 98, 138, 154, 68, 56, 59, 96 },    // left = dc
      { 73, 18, 92, 81, 125, 132, 75, 64, 27, 67 },    // left = v
      { 73, 17, 27, 128, 213, 154, 56, 44, 32, 105 },  // left = h
      { 101, 20, 21, 75, 138, 138, 82, 56, 23, 154 },  // left = d45
      { 71, 15, 33, 91, 70, 150, 62, 55, 38, 118 },    // left = d135
      { 80, 19, 38, 116, 69, 122, 88, 132, 92, 255 },  // left = d117
      { 68, 11, 22, 101, 116, 179, 52, 44, 85, 96 },   // left = d153
      { 101, 8, 59, 77, 151, 170, 53, 41, 35, 172 },   // left = d207
      { 82, 19, 24, 81, 172, 129, 82, 128, 43, 108 },  // left = d63
      { 66, 18, 42, 64, 143, 255, 52, 52, 25, 83 },    // left = smooth
      { 57, 24, 42, 85, 169, 145, 104, 71, 34, 86 },   // left = paeth
  },
  {
      // above = d135
      { 85, 15, 29, 113, 83, 176, 26, 29, 70, 110 },    // left = dc
      { 78, 28, 49, 111, 91, 141, 30, 42, 48, 75 },     // left = v
      { 56, 21, 16, 146, 190, 178, 23, 31, 49, 92 },    // left = h
      { 70, 19, 20, 65, 90, 173, 97, 36, 57, 98 },      // left = d45
      { 77, 14, 26, 110, 51, 156, 34, 35, 54, 74 },     // left = d135
      { 78, 18, 36, 153, 47, 131, 62, 102, 155, 255 },  // left = d117
      { 56, 11, 15, 115, 85, 196, 32, 45, 81, 96 },     // left = d153
      { 90, 18, 24, 95, 126, 159, 34, 31, 46, 136 },    // left = d207
      { 80, 23, 28, 90, 75, 141, 39, 50, 46, 87 },      // left = d63
      { 63, 22, 31, 91, 110, 255, 26, 43, 51, 51 },     // left = smooth
      { 66, 32, 31, 122, 145, 165, 40, 43, 56, 79 },    // left = paeth
  },
  {
      // above = d117
      { 81, 16, 61, 170, 74, 105, 54, 105, 113, 255 },  // left = dc
      { 74, 20, 86, 163, 64, 97, 65, 129, 101, 255 },   // left = v
      { 63, 15, 47, 168, 141, 176, 69, 77, 77, 255 },   // left = h
      { 70, 17, 59, 97, 78, 114, 74, 122, 80, 255 },    // left = d45
      { 78, 13, 50, 153, 34, 126, 75, 114, 120, 255 },  // left = d135
      { 72, 16, 69, 159, 28, 108, 63, 134, 107, 255 },  // left = d117
      { 66, 9, 47, 131, 79, 148, 41, 88, 105, 255 },    // left = d153
      { 78, 12, 60, 119, 105, 133, 47, 95, 63, 255 },   // left = d207
      { 82, 21, 58, 128, 61, 98, 64, 136, 91, 255 },    // left = d63
      { 23, 26, 28, 96, 85, 128, 51, 64, 85, 128 },     // left = smooth
      { 58, 27, 62, 162, 109, 151, 75, 106, 78, 255 },  // left = paeth
  },
  {
      // above = d153
      { 91, 18, 25, 121, 166, 173, 25, 25, 128, 102 },  // left = dc
      { 80, 27, 51, 111, 141, 147, 45, 38, 70, 85 },    // left = v
      { 53, 12, 11, 154, 197, 225, 17, 17, 74, 145 },   // left = h
      { 93, 27, 23, 111, 143, 188, 43, 39, 69, 112 },   // left = d45
      { 83, 15, 21, 118, 67, 178, 40, 33, 73, 92 },     // left = d135
      { 94, 13, 31, 132, 66, 110, 61, 82, 148, 255 },   // left = d117
      { 76, 9, 11, 96, 105, 201, 16, 13, 157, 97 },     // left = d153
      { 70, 10, 12, 100, 172, 201, 23, 17, 53, 158 },   // left = d207
      { 114, 25, 21, 104, 108, 163, 30, 47, 53, 111 },  // left = d63
      { 70, 16, 21, 80, 157, 255, 25, 30, 81, 69 },     // left = smooth
      { 87, 32, 26, 120, 191, 168, 32, 33, 70, 118 },   // left = paeth
  },
  {
      // above = d207
      { 98, 20, 39, 122, 168, 188, 38, 36, 54, 132 },   // left = dc
      { 81, 37, 62, 97, 122, 153, 38, 43, 36, 118 },    // left = v
      { 71, 21, 22, 154, 227, 183, 37, 31, 46, 140 },   // left = h
      { 90, 34, 19, 93, 144, 194, 65, 47, 41, 163 },    // left = d45
      { 78, 20, 27, 91, 93, 173, 57, 52, 49, 113 },     // left = d135
      { 79, 25, 45, 121, 101, 147, 69, 56, 122, 255 },  // left = d117
      { 73, 13, 19, 105, 122, 206, 40, 28, 91, 126 },   // left = d153
      { 101, 14, 22, 87, 153, 169, 33, 25, 26, 175 },   // left = d207
      { 81, 28, 23, 86, 115, 169, 48, 56, 41, 111 },    // left = d63
      { 70, 24, 30, 90, 180, 255, 38, 26, 36, 82 },     // left = smooth
      { 61, 37, 30, 94, 189, 163, 76, 50, 36, 127 },    // left = paeth
  },
  {
      // above = d63
      { 77, 13, 46, 86, 138, 117, 55, 88, 34, 68 },     // left = dc
      { 68, 17, 80, 64, 105, 108, 66, 115, 32, 45 },    // left = v
      { 62, 13, 37, 124, 210, 131, 46, 57, 28, 103 },   // left = h
      { 88, 15, 45, 73, 134, 145, 73, 101, 37, 87 },    // left = d45
      { 68, 16, 35, 78, 81, 133, 54, 71, 33, 67 },      // left = d135
      { 71, 16, 57, 108, 61, 135, 71, 184, 113, 255 },  // left = d117
      { 55, 10, 27, 69, 107, 158, 39, 76, 82, 95 },     // left = d153
      { 80, 9, 38, 78, 153, 145, 50, 63, 28, 123 },     // left = d207
      { 86, 12, 33, 49, 107, 135, 64, 134, 57, 89 },    // left = d63
      { 56, 19, 55, 60, 163, 255, 38, 84, 22, 36 },     // left = smooth
      { 53, 17, 60, 69, 151, 126, 73, 113, 26, 80 },    // left = paeth
  },
  {
      // above = smooth
      { 79, 16, 46, 89, 167, 255, 22, 36, 29, 42 },   // left = dc
      { 63, 22, 88, 71, 131, 255, 26, 41, 21, 35 },   // left = v
      { 51, 18, 28, 142, 232, 255, 26, 25, 25, 75 },  // left = h
      { 75, 18, 43, 70, 140, 255, 37, 49, 34, 89 },   // left = d45
      { 70, 14, 35, 87, 83, 255, 30, 36, 34, 50 },    // left = d135
      { 23, 26, 28, 96, 85, 128, 51, 64, 85, 128 },   // left = d117
      { 74, 12, 33, 83, 128, 255, 27, 33, 58, 68 },   // left = d153
      { 66, 11, 30, 77, 179, 255, 21, 27, 23, 113 },  // left = d207
      { 68, 22, 40, 65, 118, 255, 28, 61, 30, 50 },   // left = d63
      { 60, 18, 44, 69, 141, 255, 18, 32, 22, 40 },   // left = smooth
      { 52, 32, 54, 96, 194, 255, 33, 37, 25, 53 },   // left = paeth
  },
  {
      // above = paeth
      { 76, 47, 67, 123, 182, 150, 41, 52, 55, 97 },    // left = dc
      { 69, 40, 125, 102, 138, 138, 42, 55, 32, 70 },   // left = v
      { 46, 28, 27, 160, 232, 169, 34, 21, 32, 122 },   // left = h
      { 78, 35, 41, 99, 128, 124, 49, 43, 35, 111 },    // left = d45
      { 66, 28, 47, 100, 113, 145, 37, 40, 72, 93 },    // left = d135
      { 77, 37, 76, 134, 124, 124, 65, 122, 88, 255 },  // left = d117
      { 53, 23, 38, 108, 128, 204, 26, 32, 115, 114 },  // left = d153
      { 65, 20, 29, 101, 202, 186, 29, 24, 29, 188 },   // left = d207
      { 71, 24, 49, 81, 126, 151, 36, 65, 28, 93 },     // left = d63
      { 54, 36, 53, 94, 193, 255, 25, 38, 20, 64 },     // left = smooth
      { 52, 54, 60, 108, 176, 168, 47, 44, 50, 105 },   // left = paeth
  },
};

static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
  { 88, 16, 47, 133, 143, 150, 70, 48, 84, 122 },  // block_size < 8x8
  { 75, 26, 51, 120, 158, 157, 44, 45, 56, 102 },  // block_size < 16x16
  { 73, 24, 60, 115, 184, 164, 26, 36, 32, 63 },   // block_size < 32x32
  { 96, 27, 50, 107, 221, 148, 16, 22, 14, 39 },   // block_size >= 32x32
};

static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
  { 199, 3, 79, 179, 220, 109, 38, 50, 68, 138 },   // y = dc
  { 17, 2, 219, 136, 131, 58, 21, 106, 23, 41 },    // y = v
  { 26, 1, 5, 244, 253, 138, 16, 21, 68, 205 },     // y = h
  { 183, 3, 66, 94, 195, 97, 101, 104, 41, 178 },   // y = d45
  { 178, 2, 36, 158, 99, 175, 21, 29, 105, 77 },    // y = d135
  { 154, 3, 65, 219, 40, 48, 45, 95, 146, 255 },    // y = d117
  { 167, 1, 16, 160, 214, 187, 10, 10, 200, 155 },  // y = d153
  { 154, 2, 18, 178, 238, 132, 25, 21, 34, 221 },   // y = d207
  { 153, 4, 76, 85, 157, 90, 38, 165, 46, 104 },    // y = d63
  { 163, 3, 68, 87, 190, 255, 19, 27, 25, 46 },     // y = smooth
  { 185, 7, 113, 171, 203, 57, 18, 69, 49, 104 },   // y = paeth
};

#else

Yaowu Xu's avatar
Yaowu Xu committed
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
const aom_prob av1_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = {
  {
      // above = dc
      { 137, 30, 42, 148, 151, 207, 70, 52, 91 },   // left = dc
      { 92, 45, 102, 136, 116, 180, 74, 90, 100 },  // left = v
      { 73, 32, 19, 187, 222, 215, 46, 34, 100 },   // left = h
      { 91, 30, 32, 116, 121, 186, 93, 86, 94 },    // left = d45
      { 72, 35, 36, 149, 68, 206, 68, 63, 105 },    // left = d135
      { 73, 31, 28, 138, 57, 124, 55, 122, 151 },   // left = d117
      { 67, 23, 21, 140, 126, 197, 40, 37, 171 },   // left = d153
      { 86, 27, 28, 128, 154, 212, 45, 43, 53 },    // left = d207
      { 74, 32, 27, 107, 86, 160, 63, 134, 102 },   // left = d63
      { 59, 67, 44, 140, 161, 202, 78, 67, 119 }    // left = tm
  },
  {
      // above = v
      { 63, 36, 126, 146, 123, 158, 60, 90, 96 },   // left = dc
      { 43, 46, 168, 134, 107, 128, 69, 142, 92 },  // left = v
      { 44, 29, 68, 159, 201, 177, 50, 57, 77 },    // left = h
      { 58, 38, 76, 114, 97, 172, 78, 133, 92 },    // left = d45
      { 46, 41, 76, 140, 63, 184, 69, 112, 57 },    // left = d135
      { 38, 32, 85, 140, 46, 112, 54, 151, 133 },   // left = d117
      { 39, 27, 61, 131, 110, 175, 44, 75, 136 },   // left = d153
      { 52, 30, 74, 113, 130, 175, 51, 64, 58 },    // left = d207
      { 47, 35, 80, 100, 74, 143, 64, 163, 74 },    // left = d63
      { 36, 61, 116, 114, 128, 162, 80, 125, 82 }   // left = tm
  },
  {
      // above = h
      { 82, 26, 26, 171, 208, 204, 44, 32, 105 },  // left = dc
      { 55, 44, 68, 166, 179, 192, 57, 57, 108 },  // left = v
      { 42, 26, 11, 199, 241, 228, 23, 15, 85 },   // left = h
      { 68, 42, 19, 131, 160, 199, 55, 52, 83 },   // left = d45
      { 58, 50, 25, 139, 115, 232, 39, 52, 118 },  // left = d135
      { 50, 35, 33, 153, 104, 162, 64, 59, 131 },  // left = d117
      { 44, 24, 16, 150, 177, 202, 33, 19, 156 },  // left = d153
      { 55, 27, 12, 153, 203, 218, 26, 27, 49 },   // left = d207
      { 53, 49, 21, 110, 116, 168, 59, 80, 76 },   // left = d63
      { 38, 72, 19, 168, 203, 212, 50, 50, 107 }   // left = tm
  },
  {
      // above = d45
      { 103, 26, 36, 129, 132, 201, 83, 80, 93 },  // left = dc
      { 59, 38, 83, 112, 103, 162, 98, 136, 90 },  // left = v
      { 62, 30, 23, 158, 200, 207, 59, 57, 50 },   // left = h
      { 67, 30, 29, 84, 86, 191, 102, 91, 59 },    // left = d45
      { 60, 32, 33, 112, 71, 220, 64, 89, 104 },   // left = d135
      { 53, 26, 34, 130, 56, 149, 84, 120, 103 },  // left = d117
      { 53, 21, 23, 133, 109, 210, 56, 77, 172 },  // left = d153
      { 77, 19, 29, 112, 142, 228, 55, 66, 36 },   // left = d207
      { 61, 29, 29, 93, 97, 165, 83, 175, 162 },   // left = d63
      { 47, 47, 43, 114, 137, 181, 100, 99, 95 }   // left = tm
  },
  {
      // above = d135
      { 69, 23, 29, 128, 83, 199, 46, 44, 101 },   // left = dc
      { 53, 40, 55, 139, 69, 183, 61, 80, 110 },   // left = v
      { 40, 29, 19, 161, 180, 207, 43, 24, 91 },   // left = h
      { 60, 34, 19, 105, 61, 198, 53, 64, 89 },    // left = d45
      { 52, 31, 22, 158, 40, 209, 58, 62, 89 },    // left = d135
      { 44, 31, 29, 147, 46, 158, 56, 102, 198 },  // left = d117
      { 35, 19, 12, 135, 87, 209, 41, 45, 167 },   // left = d153
      { 55, 25, 21, 118, 95, 215, 38, 39, 66 },    // left = d207
      { 51, 38, 25, 113, 58, 164, 70, 93, 97 },    // left = d63
      { 47, 54, 34, 146, 108, 203, 72, 103, 151 }  // left = tm
  },
  {
      // above = d117
      { 64, 19, 37, 156, 66, 138, 49, 95, 133 },   // left = dc
      { 46, 27, 80, 150, 55, 124, 55, 121, 135 },  // left = v
      { 36, 23, 27, 165, 149, 166, 54, 64, 118 },  // left = h
      { 53, 21, 36, 131, 63, 163, 60, 109, 81 },   // left = d45
      { 40, 26, 35, 154, 40, 185, 51, 97, 123 },   // left = d135
      { 35, 19, 34, 179, 19, 97, 48, 129, 124 },   // left = d117
      { 36, 20, 26, 136, 62, 164, 33, 77, 154 },   // left = d153
      { 45, 18, 32, 130, 90, 157, 40, 79, 91 },    // left = d207
      { 45, 26, 28, 129, 45, 129, 49, 147, 123 },  // left = d63
      { 38, 44, 51, 136, 74, 162, 57, 97, 121 }    // left = tm
  },
  {
      // above = d153
      { 75, 17, 22, 136, 138, 185, 32, 34, 166 },  // left = dc
      { 56, 39, 58, 133, 117, 173, 48, 53, 187 },  // left = v
      { 35, 21, 12, 161, 212, 207, 20, 23, 145 },  // left = h
      { 56, 29, 19, 117, 109, 181, 55, 68, 112 },  // left = d45
      { 47, 29, 17, 153, 64, 220, 59, 51, 114 },   // left = d135
      { 46, 16, 24, 136, 76, 147, 41, 64, 172 },   // left = d117
      { 34, 17, 11, 108, 152, 187, 13, 15, 209 },  // left = d153
      { 51, 24, 14, 115, 133, 209, 32, 26, 104 },  // left = d207
      { 55, 30, 18, 122, 79, 179, 44, 88, 116 },   // left = d63
      { 37, 49, 25, 129, 168, 164, 41, 54, 148 }   // left = tm
  },
  {
      // above = d207
      { 82, 22, 32, 127, 143, 213, 39, 41, 70 },   // left = dc
      { 62, 44, 61, 123, 105, 189, 48, 57, 64 },   // left = v
      { 47, 25, 17, 175, 222, 220, 24, 30, 86 },   // left = h
      { 68, 36, 17, 106, 102, 206, 59, 74, 74 },   // left = d45
      { 57, 39, 23, 151, 68, 216, 55, 63, 58 },    // left = d135
      { 49, 30, 35, 141, 70, 168, 82, 40, 115 },   // left = d117
      { 51, 25, 15, 136, 129, 202, 38, 35, 139 },  // left = d153
      { 68, 26, 16, 111, 141, 215, 29, 28, 28 },   // left = d207
      { 59, 39, 19, 114, 75, 180, 77, 104, 42 },   // left = d63
      { 40, 61, 26, 126, 152, 206, 61, 59, 93 }    // left = tm
  },
  {
      // above = d63
      { 78, 23, 39, 111, 117, 170, 74, 124, 94 },   // left = dc
      { 48, 34, 86, 101, 92, 146, 78, 179, 134 },   // left = v
      { 47, 22, 24, 138, 187, 178, 68, 69, 59 },    // left = h
      { 56, 25, 33, 105, 112, 187, 95, 177, 129 },  // left = d45
      { 48, 31, 27, 114, 63, 183, 82, 116, 56 },    // left = d135
      { 43, 28, 37, 121, 63, 123, 61, 192, 169 },   // left = d117
      { 42, 17, 24, 109, 97, 177, 56, 76, 122 },    // left = d153
      { 58, 18, 28, 105, 139, 182, 70, 92, 63 },    // left = d207
      { 46, 23, 32, 74, 86, 150, 67, 183, 88 },     // left = d63
      { 36, 38, 48, 92, 122, 165, 88, 137, 91 }     // left = tm
  },
  {
      // above = tm
      { 65, 70, 60, 155, 159, 199, 61, 60, 81 },    // left = dc
      { 44, 78, 115, 132, 119, 173, 71, 112, 93 },  // left = v
      { 39, 38, 21, 184, 227, 206, 42, 32, 64 },    // left = h
      { 58, 47, 36, 124, 137, 193, 80, 82, 78 },    // left = d45
      { 49, 50, 35, 144, 95, 205, 63, 78, 59 },     // left = d135
      { 41, 53, 52, 148, 71, 142, 65, 128, 51 },    // left = d117
      { 40, 36, 28, 143, 143, 202, 40, 55, 137 },   // left = d153
      { 52, 34, 29, 129, 183, 227, 42, 35, 43 },    // left = d207
      { 42, 44, 44, 104, 105, 164, 64, 130, 80 },   // left = d63
      { 43, 81, 53, 140, 169, 204, 68, 84, 72 }     // left = tm
  }
};

339
340
341
// Default probabilities for signaling Intra mode for Y plane -- used only for
// inter frames. ('av1_kf_y_mode_prob' is used for intra-only frames).
// Context used: block size group.
Yaowu Xu's avatar
Yaowu Xu committed
342
static const aom_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
clang-format's avatar
clang-format committed
343
344
345
346
  { 65, 32, 18, 144, 162, 194, 41, 51, 98 },   // block_size < 8x8
  { 132, 68, 18, 165, 217, 196, 45, 40, 78 },  // block_size < 16x16
  { 173, 80, 19, 176, 240, 193, 64, 35, 46 },  // block_size < 32x32
  { 221, 135, 38, 194, 248, 121, 96, 85, 29 }  // block_size >= 32x32
Jingning Han's avatar
Jingning Han committed
347
348
};

349
350
351
// Default probabilities for signaling Intra mode for UV plane -- common for
// both intra and inter frames.
// Context used: Intra mode used by Y plane of the same block.
Yaowu Xu's avatar
Yaowu Xu committed
352
static const aom_prob default_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
clang-format's avatar
clang-format committed
353
354
355
356
357
358
359
360
361
362
  { 120, 7, 76, 176, 208, 126, 28, 54, 103 },   // y = dc
  { 48, 12, 154, 155, 139, 90, 34, 117, 119 },  // y = v
  { 67, 6, 25, 204, 243, 158, 13, 21, 96 },     // y = h
  { 97, 5, 44, 131, 176, 139, 48, 68, 97 },     // y = d45
  { 83, 5, 42, 156, 111, 152, 26, 49, 152 },    // y = d135
  { 80, 5, 58, 178, 74, 83, 33, 62, 145 },      // y = d117
  { 86, 5, 32, 154, 192, 168, 14, 22, 163 },    // y = d153
  { 85, 5, 32, 156, 216, 148, 19, 29, 73 },     // y = d207
  { 77, 7, 64, 116, 132, 122, 37, 126, 120 },   // y = d63
  { 101, 21, 107, 181, 192, 103, 19, 67, 125 }  // y = tm
Jingning Han's avatar
Jingning Han committed
363
364
};

365
366
#endif  // CONFIG_ALT_INTRA

367
#if CONFIG_EXT_PARTITION_TYPES
Yaowu Xu's avatar
Yaowu Xu committed
368
static const aom_prob
clang-format's avatar
clang-format committed
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
    default_partition_probs[PARTITION_CONTEXTS][EXT_PARTITION_TYPES - 1] = {
      // 8x8 -> 4x4
      { 199, 122, 141, 128, 128, 128, 128 },  // a/l both not split
      { 147, 63, 159, 128, 128, 128, 128 },   // a split, l not split
      { 148, 133, 118, 128, 128, 128, 128 },  // l split, a not split
      { 121, 104, 114, 128, 128, 128, 128 },  // a/l both split
      // 16x16 -> 8x8
      { 174, 73, 87, 128, 128, 128, 128 },  // a/l both not split
      { 92, 41, 83, 128, 128, 128, 128 },   // a split, l not split
      { 82, 99, 50, 128, 128, 128, 128 },   // l split, a not split
      { 53, 39, 39, 128, 128, 128, 128 },   // a/l both split
      // 32x32 -> 16x16
      { 177, 58, 59, 128, 128, 128, 128 },  // a/l both not split
      { 68, 26, 63, 128, 128, 128, 128 },   // a split, l not split
      { 52, 79, 25, 128, 128, 128, 128 },   // l split, a not split
      { 17, 14, 12, 128, 128, 128, 128 },   // a/l both split
      // 64x64 -> 32x32
      { 222, 34, 30, 128, 128, 128, 128 },  // a/l both not split
      { 72, 16, 44, 128, 128, 128, 128 },   // a split, l not split
      { 58, 32, 12, 128, 128, 128, 128 },   // l split, a not split
      { 10, 7, 6, 128, 128, 128, 128 },     // a/l both split
390
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
391
392
393
394
395
396
      // 128x128 -> 64x64
      { 222, 34, 30, 128, 128, 128, 128 },  // a/l both not split
      { 72, 16, 44, 128, 128, 128, 128 },   // a split, l not split
      { 58, 32, 12, 128, 128, 128, 128 },   // l split, a not split
      { 10, 7, 6, 128, 128, 128, 128 },     // a/l both split
#endif                                      // CONFIG_EXT_PARTITION
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
#if CONFIG_UNPOISON_PARTITION_CTX
      { 0, 0, 141, 0, 0, 0, 0 },  // 8x8 -> 4x4
      { 0, 0, 87, 0, 0, 0, 0 },   // 16x16 -> 8x8
      { 0, 0, 59, 0, 0, 0, 0 },   // 32x32 -> 16x16
      { 0, 0, 30, 0, 0, 0, 0 },   // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 0, 30, 0, 0, 0, 0 },   // 128x128 -> 64x64
#endif                            // CONFIG_EXT_PARTITION
      { 0, 122, 0, 0, 0, 0, 0 },  // 8x8 -> 4x4
      { 0, 73, 0, 0, 0, 0, 0 },   // 16x16 -> 8x8
      { 0, 58, 0, 0, 0, 0, 0 },   // 32x32 -> 16x16
      { 0, 34, 0, 0, 0, 0, 0 },   // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 34, 0, 0, 0, 0, 0 },  // 128x128 -> 64x64
#endif                           // CONFIG_EXT_PARTITION
#endif                           // CONFIG_UNPOISON_PARTITION_CTX
clang-format's avatar
clang-format committed
413
    };
414
#else
Yaowu Xu's avatar
Yaowu Xu committed
415
static const aom_prob
clang-format's avatar
clang-format committed
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
    default_partition_probs[PARTITION_CONTEXTS][PARTITION_TYPES - 1] = {
      // 8x8 -> 4x4
      { 199, 122, 141 },  // a/l both not split
      { 147, 63, 159 },   // a split, l not split
      { 148, 133, 118 },  // l split, a not split
      { 121, 104, 114 },  // a/l both split
      // 16x16 -> 8x8
      { 174, 73, 87 },  // a/l both not split
      { 92, 41, 83 },   // a split, l not split
      { 82, 99, 50 },   // l split, a not split
      { 53, 39, 39 },   // a/l both split
      // 32x32 -> 16x16
      { 177, 58, 59 },  // a/l both not split
      { 68, 26, 63 },   // a split, l not split
      { 52, 79, 25 },   // l split, a not split
      { 17, 14, 12 },   // a/l both split
      // 64x64 -> 32x32
      { 222, 34, 30 },  // a/l both not split
      { 72, 16, 44 },   // a split, l not split
      { 58, 32, 12 },   // l split, a not split
      { 10, 7, 6 },     // a/l both split
437
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
438
439
440
441
442
      // 128x128 -> 64x64
      { 222, 34, 30 },  // a/l both not split
      { 72, 16, 44 },   // a split, l not split
      { 58, 32, 12 },   // l split, a not split
      { 10, 7, 6 },     // a/l both split
443
#endif  // CONFIG_EXT_PARTITION
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
#if CONFIG_UNPOISON_PARTITION_CTX
      { 0, 0, 141 },    // 8x8 -> 4x4
      { 0, 0, 87 },     // 16x16 -> 8x8
      { 0, 0, 59 },     // 32x32 -> 16x16
      { 0, 0, 30 },     // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 0, 30 },     // 128x128 -> 64x64
#endif  // CONFIG_EXT_PARTITION
      { 0, 122, 0 },    // 8x8 -> 4x4
      { 0, 73, 0 },     // 16x16 -> 8x8
      { 0, 58, 0 },     // 32x32 -> 16x16
      { 0, 34, 0 },     // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 34, 0 },     // 128x128 -> 64x64
#endif  // CONFIG_EXT_PARTITION
#endif  // CONFIG_UNPOISON_PARTITION_CTX
clang-format's avatar
clang-format committed
460
    };
461
#endif  // CONFIG_EXT_PARTITION_TYPES
Jingning Han's avatar
Jingning Han committed
462

463
#if CONFIG_REF_MV
Yaowu Xu's avatar
Yaowu Xu committed
464
static const aom_prob default_newmv_prob[NEWMV_MODE_CONTEXTS] = {
clang-format's avatar
clang-format committed
465
  200, 180, 150, 150, 110, 70, 60,
466
467
};

Yaowu Xu's avatar
Yaowu Xu committed
468
static const aom_prob default_zeromv_prob[ZEROMV_MODE_CONTEXTS] = {
clang-format's avatar
clang-format committed
469
  192, 64,
470
471
};

Yaowu Xu's avatar
Yaowu Xu committed
472
static const aom_prob default_refmv_prob[REFMV_MODE_CONTEXTS] = {
clang-format's avatar
clang-format committed
473
  220, 220, 200, 200, 180, 128, 30, 220, 30,
474
};
Yue Chen's avatar
Yue Chen committed
475

Yaowu Xu's avatar
Yaowu Xu committed
476
static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = { 128, 160, 180,
clang-format's avatar
clang-format committed
477
                                                              128, 160 };
478

Yue Chen's avatar
Yue Chen committed
479
#if CONFIG_EXT_INTER
Yaowu Xu's avatar
Yaowu Xu committed
480
static const aom_prob default_new2mv_prob = 180;
481
482
#endif  // CONFIG_EXT_INTER
#endif  // CONFIG_REF_MV
483

Yaowu Xu's avatar
Yaowu Xu committed
484
static const aom_prob
clang-format's avatar
clang-format committed
485
    default_inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1] = {
Yue Chen's avatar
Yue Chen committed
486
#if CONFIG_EXT_INTER
clang-format's avatar
clang-format committed
487
488
489
490
491
492
493
494
      // TODO(zoeliu): To adjust the initial default probs
      { 2, 173, 34, 173 },  // 0 = both zero mv
      { 7, 145, 85, 145 },  // 1 = one zero mv + one a predicted mv
      { 7, 166, 63, 166 },  // 2 = two predicted mvs
      { 7, 94, 66, 128 },   // 3 = one predicted/zero and one new mv
      { 8, 64, 46, 128 },   // 4 = two new mvs
      { 17, 81, 31, 128 },  // 5 = one intra neighbour + x
      { 25, 29, 30, 96 },   // 6 = two intra neighbours
Yue Chen's avatar
Yue Chen committed
495
#else
clang-format's avatar
clang-format committed
496
497
498
499
500
501
502
      { 2, 173, 34 },  // 0 = both zero mv
      { 7, 145, 85 },  // 1 = one zero mv + one a predicted mv
      { 7, 166, 63 },  // 2 = two predicted mvs
      { 7, 94, 66 },   // 3 = one predicted/zero and one new mv
      { 8, 64, 46 },   // 4 = two new mvs
      { 17, 81, 31 },  // 5 = one intra neighbour + x
      { 25, 29, 30 },  // 6 = two intra neighbours
Yue Chen's avatar
Yue Chen committed
503
#endif  // CONFIG_EXT_INTER
clang-format's avatar
clang-format committed
504
    };
Jingning Han's avatar
Jingning Han committed
505

506
#if CONFIG_EXT_INTER
Yaowu Xu's avatar
Yaowu Xu committed
507
static const aom_prob default_inter_compound_mode_probs
clang-format's avatar
clang-format committed
508
509
510
511
512
513
514
515
516
    [INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1] = {
      { 2, 173, 68, 192, 64, 192, 128, 180, 180 },   // 0 = both zero mv
      { 7, 145, 160, 192, 64, 192, 128, 180, 180 },  // 1 = 1 zero + 1 predicted
      { 7, 166, 126, 192, 64, 192, 128, 180, 180 },  // 2 = two predicted mvs
      { 7, 94, 132, 192, 64, 192, 128, 180, 180 },   // 3 = 1 pred/zero, 1 new
      { 8, 64, 64, 192, 64, 192, 128, 180, 180 },    // 4 = two new mvs
      { 17, 81, 52, 192, 64, 192, 128, 180, 180 },   // 5 = one intra neighbour
      { 25, 29, 50, 192, 64, 192, 128, 180, 180 },   // 6 = two intra neighbours
    };
517

518
519
520
#if CONFIG_COMPOUND_SEGMENT
static const aom_prob
    default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
521
522
523
#if CONFIG_CB4X4
      { 255, 255 }, { 255, 255 }, { 255, 255 },
#endif
524
525
526
527
528
529
530
531
      { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 },
      { 208, 200 }, { 216, 200 }, { 216, 200 }, { 216, 200 }, { 224, 200 },
      { 224, 200 }, { 240, 200 }, { 240, 200 },
#if CONFIG_EXT_PARTITION
      { 255, 200 }, { 255, 200 }, { 255, 200 },
#endif  // CONFIG_EXT_PARTITION
    };
#else  // !CONFIG_COMPOUND_SEGMENT
clang-format's avatar
clang-format committed
532
533
static const aom_prob
    default_compound_type_probs[BLOCK_SIZES][COMPOUND_TYPES - 1] = {
534
#if CONFIG_CB4X4
clang-format's avatar
clang-format committed
535
      { 208 }, { 208 }, { 208 },
536
#endif
clang-format's avatar
clang-format committed
537
538
      { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 208 }, { 216 },
      { 216 }, { 216 }, { 224 }, { 224 }, { 240 }, { 240 },
539
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
540
      { 255 }, { 255 }, { 255 },
541
#endif  // CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
542
    };
543
#endif  // CONFIG_COMPOUND_SEGMENT
544

Yaowu Xu's avatar
Yaowu Xu committed
545
static const aom_prob default_interintra_prob[BLOCK_SIZE_GROUPS] = {
546
547
548
  208, 208, 208, 208,
};

Yaowu Xu's avatar
Yaowu Xu committed
549
static const aom_prob
550
    default_interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1] = {
clang-format's avatar
clang-format committed
551
552
553
554
555
      { 65, 32, 18, 144, 162, 194, 41, 51, 98 },   // block_size < 8x8
      { 132, 68, 18, 165, 217, 196, 45, 40, 78 },  // block_size < 16x16
      { 173, 80, 19, 176, 240, 193, 64, 35, 46 },  // block_size < 32x32
      { 221, 135, 38, 194, 248, 121, 96, 85, 29 }  // block_size >= 32x32
    };
556

Yaowu Xu's avatar
Yaowu Xu committed
557
static const aom_prob default_wedge_interintra_prob[BLOCK_SIZES] = {
558
559
560
#if CONFIG_CB4X4
  208, 208, 208,
#endif
561
  208, 208, 208, 208, 208, 208, 216, 216, 216, 224, 224, 224, 240,
562
#if CONFIG_EXT_PARTITION
563
  208, 208, 208
564
#endif  // CONFIG_EXT_PARTITION
565
};
566
567
#endif  // CONFIG_EXT_INTER

568
// Change this section appropriately once warped motion is supported
Yue Chen's avatar
Yue Chen committed
569
570
#if CONFIG_MOTION_VAR && !CONFIG_WARPED_MOTION
const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
571
572
  -SIMPLE_TRANSLATION, -OBMC_CAUSAL
};
clang-format's avatar
clang-format committed
573
574
static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
    {
575
#if CONFIG_CB4X4
clang-format's avatar
clang-format committed
576
      { 255 }, { 255 }, { 255 },
577
#endif
clang-format's avatar
clang-format committed
578
579
      { 255 }, { 255 }, { 255 }, { 151 }, { 153 }, { 144 }, { 178 },
      { 165 }, { 160 }, { 207 }, { 195 }, { 168 }, { 244 },
580
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
581
      { 252 }, { 252 }, { 252 },
582
#endif  // CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
583
    };
584

Yue Chen's avatar
Yue Chen committed
585
#elif !CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
586

Yue Chen's avatar
Yue Chen committed
587
const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
588
589
  -SIMPLE_TRANSLATION, -WARPED_CAUSAL
};
Yue Chen's avatar
Yue Chen committed
590

clang-format's avatar
clang-format committed
591
592
static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
    {
593
#if CONFIG_CB4X4
clang-format's avatar
clang-format committed
594
      { 255 }, { 255 }, { 255 },
595
#endif
clang-format's avatar
clang-format committed
596
597
      { 255 }, { 255 }, { 255 }, { 151 }, { 153 }, { 144 }, { 178 },
      { 165 }, { 160 }, { 207 }, { 195 }, { 168 }, { 244 },
598
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
599
      { 252 }, { 252 }, { 252 },
600
#endif  // CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
601
    };
602

Yue Chen's avatar
Yue Chen committed
603
#elif CONFIG_MOTION_VAR && CONFIG_WARPED_MOTION
604

Yue Chen's avatar
Yue Chen committed
605
const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
clang-format's avatar
clang-format committed
606
  -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL,
607
};
Yue Chen's avatar
Yue Chen committed
608
static const aom_prob default_motion_mode_prob[BLOCK_SIZES][MOTION_MODES - 1] =
clang-format's avatar
clang-format committed
609
    {
610
611
612
#if CONFIG_CB4X4
      { 255, 200 }, { 255, 200 }, { 255, 200 },
#endif
clang-format's avatar
clang-format committed
613
614
615
      { 255, 200 }, { 255, 200 }, { 255, 200 }, { 151, 200 }, { 153, 200 },
      { 144, 200 }, { 178, 200 }, { 165, 200 }, { 160, 200 }, { 207, 200 },
      { 195, 200 }, { 168, 200 }, { 244, 200 },
616
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
617
      { 252, 200 }, { 252, 200 }, { 252, 200 },
618
#endif  // CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
619
    };
Yue Chen's avatar
Yue Chen committed
620
621
622

// Probability for the case that only 1 additional motion mode is allowed
static const aom_prob default_obmc_prob[BLOCK_SIZES] = {
623
624
625
#if CONFIG_CB4X4
  255, 255, 255,
#endif
Yue Chen's avatar
Yue Chen committed
626
627
628
629
630
631
  255, 255, 255, 151, 153, 144, 178, 165, 160, 207, 195, 168, 244,
#if CONFIG_EXT_PARTITION
  252, 252, 252,
#endif  // CONFIG_EXT_PARTITION
};
#endif
632

633
634
635
636
#if CONFIG_DELTA_Q
static const aom_prob default_delta_q_probs[DELTA_Q_CONTEXTS] = { 220, 220,
                                                                  220 };
#endif
637
#if CONFIG_EC_MULTISYMBOL
638
639
int av1_intra_mode_ind[INTRA_MODES];
int av1_intra_mode_inv[INTRA_MODES];
640
641
int av1_inter_mode_ind[INTER_MODES];
int av1_inter_mode_inv[INTER_MODES];
642
#endif
643

Jingning Han's avatar
Jingning Han committed
644
/* Array indices are identical to previously-existing INTRAMODECONTEXTNODES. */
645
646
647
648
649
650
651
652
653
654
655
656
657
658
#if CONFIG_ALT_INTRA
const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
  -DC_PRED,   2,            /* 0 = DC_NODE */
  -TM_PRED,   4,            /* 1 = TM_NODE */
  -V_PRED,    6,            /* 2 = V_NODE */
  8,          12,           /* 3 = COM_NODE */
  -H_PRED,    10,           /* 4 = H_NODE */
  -D135_PRED, -D117_PRED,   /* 5 = D135_NODE */
  -D45_PRED,  14,           /* 6 = D45_NODE */
  -D63_PRED,  16,           /* 7 = D63_NODE */
  -D153_PRED, 18,           /* 8 = D153_NODE */
  -D207_PRED, -SMOOTH_PRED, /* 9 = D207_NODE */
};
#else
Yaowu Xu's avatar
Yaowu Xu committed
659
const aom_tree_index av1_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
clang-format's avatar
clang-format committed
660
661
662
663
664
665
666
667
668
  -DC_PRED,   2,          /* 0 = DC_NODE */
  -TM_PRED,   4,          /* 1 = TM_NODE */
  -V_PRED,    6,          /* 2 = V_NODE */
  8,          12,         /* 3 = COM_NODE */
  -H_PRED,    10,         /* 4 = H_NODE */
  -D135_PRED, -D117_PRED, /* 5 = D135_NODE */
  -D45_PRED,  14,         /* 6 = D45_NODE */
  -D63_PRED,  16,         /* 7 = D63_NODE */
  -D153_PRED, -D207_PRED  /* 8 = D153_NODE */
Jingning Han's avatar
Jingning Han committed
669
};
670
#endif  // CONFIG_ALT_INTRA
Jingning Han's avatar
Jingning Han committed
671

Yaowu Xu's avatar
Yaowu Xu committed
672
const aom_tree_index av1_inter_mode_tree[TREE_SIZE(INTER_MODES)] = {
clang-format's avatar
clang-format committed
673
  -INTER_OFFSET(ZEROMV),    2,
Jingning Han's avatar
Jingning Han committed
674
  -INTER_OFFSET(NEARESTMV), 4,
Yue Chen's avatar
Yue Chen committed
675
#if CONFIG_EXT_INTER
clang-format's avatar
clang-format committed
676
677
  -INTER_OFFSET(NEARMV),    6,
  -INTER_OFFSET(NEWMV),     -INTER_OFFSET(NEWFROMNEARMV)
Yue Chen's avatar
Yue Chen committed
678
#else
clang-format's avatar
clang-format committed
679
  -INTER_OFFSET(NEARMV),    -INTER_OFFSET(NEWMV)
Yue Chen's avatar
Yue Chen committed
680
#endif  // CONFIG_EXT_INTER
Jingning Han's avatar
Jingning Han committed
681
682
};

683
#if CONFIG_EXT_INTER
clang-format's avatar
clang-format committed
684
/* clang-format off */
Yaowu Xu's avatar
Yaowu Xu committed
685
const aom_tree_index av1_interintra_mode_tree[TREE_SIZE(INTERINTRA_MODES)] = {
686
687
688
689
690
691
692
693
694
695
696
  -II_DC_PRED, 2,                   /* 0 = II_DC_NODE     */
  -II_TM_PRED, 4,                   /* 1 = II_TM_NODE     */
  -II_V_PRED, 6,                    /* 2 = II_V_NODE      */
  8, 12,                            /* 3 = II_COM_NODE    */
  -II_H_PRED, 10,                   /* 4 = II_H_NODE      */
  -II_D135_PRED, -II_D117_PRED,     /* 5 = II_D135_NODE   */
  -II_D45_PRED, 14,                 /* 6 = II_D45_NODE    */
  -II_D63_PRED, 16,                 /* 7 = II_D63_NODE    */
  -II_D153_PRED, -II_D207_PRED      /* 8 = II_D153_NODE   */
};

Yaowu Xu's avatar
Yaowu Xu committed
697
const aom_tree_index av1_inter_compound_mode_tree
clang-format's avatar
clang-format committed
698
    [TREE_SIZE(INTER_COMPOUND_MODES)] = {
699
700
701
  -INTER_COMPOUND_OFFSET(ZERO_ZEROMV), 2,
  -INTER_COMPOUND_OFFSET(NEAREST_NEARESTMV), 4,
  6, -INTER_COMPOUND_OFFSET(NEW_NEWMV),
702
703
  8, 12,
  -INTER_COMPOUND_OFFSET(NEAR_NEARMV), 10,
704
  -INTER_COMPOUND_OFFSET(NEAREST_NEARMV),
705
706
      -INTER_COMPOUND_OFFSET(NEAR_NEARESTMV),
  14, 16,
707
708
709
  -INTER_COMPOUND_OFFSET(NEAREST_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARESTMV),
  -INTER_COMPOUND_OFFSET(NEAR_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARMV)
};
710

711
712
713
714
715
#if CONFIG_COMPOUND_SEGMENT
const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
  -COMPOUND_AVERAGE, 2, -COMPOUND_WEDGE, -COMPOUND_SEG
};
#else  // !CONFIG_COMPOUND_SEGMENT
716
717
718
const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
  -COMPOUND_AVERAGE, -COMPOUND_WEDGE
};
719
#endif  // CONFIG_COMPOUND_SEGMENT
clang-format's avatar
clang-format committed
720
/* clang-format on */
721
722
#endif  // CONFIG_EXT_INTER

Yaowu Xu's avatar
Yaowu Xu committed
723
const aom_tree_index av1_partition_tree[TREE_SIZE(PARTITION_TYPES)] = {
clang-format's avatar
clang-format committed
724
  -PARTITION_NONE, 2, -PARTITION_HORZ, 4, -PARTITION_VERT, -PARTITION_SPLIT
Jingning Han's avatar
Jingning Han committed
725
726
};

727
#if CONFIG_EXT_PARTITION_TYPES
clang-format's avatar
clang-format committed
728
/* clang-format off */
Yaowu Xu's avatar
Yaowu Xu committed
729
const aom_tree_index av1_ext_partition_tree[TREE_SIZE(EXT_PARTITION_TYPES)] = {
730
731
732
733
734
735
736
737
  -PARTITION_NONE, 2,
  6, 4,
  8, -PARTITION_SPLIT,
  -PARTITION_HORZ, 10,
  -PARTITION_VERT, 12,
  -PARTITION_HORZ_A, -PARTITION_HORZ_B,
  -PARTITION_VERT_A, -PARTITION_VERT_B
};
clang-format's avatar
clang-format committed
738
/* clang-format on */
739
740
#endif  // CONFIG_EXT_PARTITION_TYPES

Yaowu Xu's avatar
Yaowu Xu committed
741
static const aom_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = {
Jingning Han's avatar
Jingning Han committed
742
743
744
  9, 102, 187, 225
};

Yaowu Xu's avatar
Yaowu Xu committed
745
static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
clang-format's avatar
clang-format committed
746
  239, 183, 119, 96, 41
Jingning Han's avatar
Jingning Han committed
747
748
};

749
#if CONFIG_EXT_REFS
Yaowu Xu's avatar
Yaowu Xu committed
750
static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = {
751
  // TODO(zoeliu): To adjust the initial prob values.
clang-format's avatar
clang-format committed
752
753
  { 33, 16, 16 },
  { 77, 74, 74 },
754
755
756
  { 142, 142, 142 },
  { 172, 170, 170 },
  { 238, 247, 247 }
757
};
Yaowu Xu's avatar
Yaowu Xu committed
758
static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
759
760
  { 16 }, { 74 }, { 142 }, { 170 }, { 247 }
};
761
#else
Yaowu Xu's avatar
Yaowu Xu committed
762
static const aom_prob default_comp_ref_p[REF_CONTEXTS][COMP_REFS - 1] = {
763
  { 50 }, { 126 }, { 123 }, { 221 }, { 226 }
Jingning Han's avatar
Jingning Han committed
764
};
765
#endif  // CONFIG_EXT_REFS
Jingning Han's avatar
Jingning Han committed
766

Yaowu Xu's avatar
Yaowu Xu committed
767
static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
768
#if CONFIG_EXT_REFS
clang-format's avatar
clang-format committed
769
770
  { 33, 16, 16, 16, 16 },
  { 77, 74, 74, 74, 74 },
771
772
773
  { 142, 142, 142, 142, 142 },
  { 172, 170, 170, 170, 170 },
  { 238, 247, 247, 247, 247 }
774
#else
clang-format's avatar
clang-format committed
775
  { 33, 16 }, { 77, 74 }, { 142, 142 }, { 172, 170 }, { 238, 247 }
776
#endif  // CONFIG_EXT_REFS
Jingning Han's avatar
Jingning Han committed
777
778
};

779
#if CONFIG_PALETTE
780
781
782

// Tree to code palette size (number of colors in a palette) and the
// corresponding probabilities for Y and UV planes.
Yaowu Xu's avatar
Yaowu Xu committed
783
const aom_tree_index av1_palette_size_tree[TREE_SIZE(PALETTE_SIZES)] = {
clang-format's avatar
clang-format committed
784
785
  -TWO_COLORS,  2, -THREE_COLORS, 4,  -FOUR_COLORS,  6,
  -FIVE_COLORS, 8, -SIX_COLORS,   10, -SEVEN_COLORS, -EIGHT_COLORS,
hui su's avatar
hui su committed
786
787
788
};

// TODO(huisu): tune these probs
Yaowu Xu's avatar
Yaowu Xu committed
789
790
const aom_prob
    av1_default_palette_y_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
clang-format's avatar
clang-format committed
791
792
793
794
795
      { 96, 89, 100, 64, 77, 130 },   { 22, 15, 44, 16, 34, 82 },
      { 30, 19, 57, 18, 38, 86 },     { 94, 36, 104, 23, 43, 92 },
      { 116, 76, 107, 46, 65, 105 },  { 112, 82, 94, 40, 70, 112 },
      { 147, 124, 123, 58, 69, 103 }, { 180, 113, 136, 49, 45, 114 },
      { 107, 70, 87, 49, 154, 156 },  { 98, 105, 142, 63, 64, 152 },
796
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
797
798
      { 98, 105, 142, 63, 64, 152 },  { 98, 105, 142, 63, 64, 152 },
      { 98, 105, 142, 63, 64, 152 },
799
#endif  // CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
800
    };
hui su's avatar
hui su committed
801

Yaowu Xu's avatar
Yaowu Xu committed
802
803
804
805
806
807
808
const aom_prob
    av1_default_palette_uv_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
      { 160, 196, 228, 213, 175, 230 }, { 87, 148, 208, 141, 166, 163 },
      { 72, 151, 204, 139, 155, 161 },  { 78, 135, 171, 104, 120, 173 },
      { 59, 92, 131, 78, 92, 142 },     { 75, 118, 149, 84, 90, 128 },
      { 89, 87, 92, 66, 66, 128 },      { 67, 53, 54, 55, 66, 93 },
      { 120, 130, 83, 171, 75, 214 },   { 72, 55, 66, 68, 79, 107 },
809
#if CONFIG_EXT_PARTITION
Yaowu Xu's avatar
Yaowu Xu committed
810
811
      { 72, 55, 66, 68, 79, 107 },      { 72, 55, 66, 68, 79, 107 },
      { 72, 55, 66, 68, 79, 107 },
812
#endif  // CONFIG_EXT_PARTITION
Yaowu Xu's avatar
Yaowu Xu committed
813
    };
clang-format's avatar
clang-format committed
814

815
816
817
// When palette mode is enabled, following probability tables indicate the
// probabilities to code the "is_palette" bit (i.e. the bit that indicates
// if this block uses palette mode or DC_PRED mode).
clang-format's avatar
clang-format committed
818
819
820
821
822
823
const aom_prob av1_default_palette_y_mode_prob
    [PALETTE_BLOCK_SIZES][PALETTE_Y_MODE_CONTEXTS] = {
      { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
      { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
      { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
      { 240, 180, 100 },
824
#if CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
825
      { 240, 180, 100 }, { 240, 180, 100 }, { 240, 180, 100 },
826
#endif  // CONFIG_EXT_PARTITION
clang-format's avatar
clang-format committed
827
    };
hui su's avatar
hui su committed
828

829
830
831
const aom_prob av1_default_palette_uv_mode_prob[PALETTE_UV_MODE_CONTEXTS] = {
  253, 229
};
hui su's avatar
hui su committed
832

833
834
// Trees to code palette color indices (for various palette sizes), and the
// corresponding probability tables for Y and UV planes.
Yaowu Xu's avatar
Yaowu Xu committed
835
const aom_tree_index
836
    av1_palette_color_index_tree[PALETTE_SIZES][TREE_SIZE(PALETTE_COLORS)] = {
clang-format's avatar
clang-format committed
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
      { // 2 colors
        -PALETTE_COLOR_ONE, -PALETTE_COLOR_TWO },
      { // 3 colors
        -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, -PALETTE_COLOR_THREE },
      { // 4 colors
        -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE,
        -PALETTE_COLOR_FOUR },
      { // 5 colors
        -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
        -PALETTE_COLOR_FOUR, -PALETTE_COLOR_FIVE },
      { // 6 colors
        -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
        -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, -PALETTE_COLOR_SIX },
      { // 7 colors
        -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
        -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, 10, -PALETTE_COLOR_SIX,
        -PALETTE_COLOR_SEVEN },
      { // 8 colors
        -PALETTE_COLOR_ONE, 2, -PALETTE_COLOR_TWO, 4, -PALETTE_COLOR_THREE, 6,
        -PALETTE_COLOR_FOUR, 8, -PALETTE_COLOR_FIVE, 10, -PALETTE_COLOR_SIX, 12,
        -PALETTE_COLOR_SEVEN, -PALETTE_COLOR_EIGHT },
    };
hui su's avatar
hui su committed
859

860
861
862
// Note: Has to be non-zero to avoid any asserts triggering.
#define UNUSED_PROB 128

863
const aom_prob av1_default_palette_y_color_index_prob
864
    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
865
866
      {
          // 2 colors
867
          { 231, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
868
869
870
            UNUSED_PROB, UNUSED_PROB },
          { UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
            UNUSED_PROB, UNUSED_PROB },
871
          { 69, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
872
            UNUSED_PROB },
873
          { 224, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
874
            UNUSED_PROB, UNUSED_PROB },
875
          { 249, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
876
877
878
879
            UNUSED_PROB, UNUSED_PROB },
      },
      {
          // 3 colors
880
          { 219, 124, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
881
            UNUSED_PROB },
882
          { 91, 191, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
883
            UNUSED_PROB },
884
          { 34, 237, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
885
            UNUSED_PROB },
886
          { 184, 118, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
887
            UNUSED_PROB },
888
          { 252, 124, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
889
890
891
892
            UNUSED_PROB },
      },
      {
          // 4 colors
893
894
895
896
897
          { 204, 87, 97, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 74, 144, 129, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 52, 191, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 151, 85, 147, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 248, 60, 115, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
898
899
900
      },
      {
          // 5 colors
901
902
903
904
905
          { 218, 69, 62, 106, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 76, 143, 89, 127, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 21, 233, 94, 131, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 172, 72, 89, 112, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 253, 66, 65, 128, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
906
907
908
      },
      {
          // 6 colors
909
910
911
912
913
          { 190, 60, 47, 54, 74, UNUSED_PROB, UNUSED_PROB },
          { 62, 106, 51, 95, 110, UNUSED_PROB, UNUSED_PROB },
          { 52, 180, 69, 72, 107, UNUSED_PROB, UNUSED_PROB },
          { 156, 83, 72, 83, 101, UNUSED_PROB, UNUSED_PROB },
          { 245, 45, 37, 52, 91, UNUSED_PROB, UNUSED_PROB },
914
915
916
      },
      {
          // 7 colors
917
918
919
920
921
          { 206, 56, 42, 42, 53, 85, UNUSED_PROB },
          { 70, 100, 45, 68, 77, 94, UNUSED_PROB },
          { 57, 169, 51, 62, 74, 119, UNUSED_PROB },
          { 172, 76, 71, 40, 59, 76, UNUSED_PROB },
          { 248, 47, 36, 53, 61, 110, UNUSED_PROB },
922
923
924
      },
      {
          // 8 colors
925
926
927
928
929
930
          { 208, 52, 38, 34, 34, 44, 66 },
          { 52, 107, 34, 73, 69, 82, 87 },
          { 28, 208, 53, 43, 62, 70, 102 },
          { 184, 64, 45, 37, 37, 69, 105 },
          { 251, 18, 31, 45, 47, 61, 104 },
      },
931
    };
hui su's avatar
hui su committed
932

933
const aom_prob av1_default_palette_uv_color_index_prob
934
    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
935
936
      {
          // 2 colors
937
          { 233, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
938
939
940
            UNUSED_PROB, UNUSED_PROB },
          { UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
            UNUSED_PROB, UNUSED_PROB },
941
          { 69, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
942
            UNUSED_PROB },
943
          { 240, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
944
            UNUSED_PROB, UNUSED_PROB },
945
          { 248, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
946
947
948
949
            UNUSED_PROB, UNUSED_PROB },
      },
      {
          // 3 colors
950
          { 216, 128, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
951
            UNUSED_PROB },
952
          { 110, 171, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
953
            UNUSED_PROB },
954
          { 40, 239, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
955
            UNUSED_PROB },
956
          { 191, 104, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
957
            UNUSED_PROB },
958
          { 247, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB,
959
960
961
962
            UNUSED_PROB },
      },
      {
          // 4 colors
963
964
965
966
967
          { 202, 89, 132, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 90, 132, 136, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 63, 195, 149, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 152, 84, 152, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 241, 87, 136, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
968
969
970
      },
      {
          // 5 colors
971
972
973
974
975
          { 209, 54, 82, 134, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 94, 173, 180, 93, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 10, 251, 127, 84, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 183, 20, 150, 47, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
          { 252, 73, 111, 150, UNUSED_PROB, UNUSED_PROB, UNUSED_PROB },
976
977
978
      },
      {
          // 6 colors
979
980
981
982
983
          { 192, 67, 59, 46, 184, UNUSED_PROB, UNUSED_PROB },
          { 59, 92, 61, 100, 130, UNUSED_PROB, UNUSED_PROB },
          { 49, 162, 68, 91, 150, UNUSED_PROB, UNUSED_PROB },
          { 133, 29, 36, 153, 101, UNUSED_PROB, UNUSED_PROB },
          { 247, 71, 44, 90, 129, UNUSED_PROB, UNUSED_PROB },
984
985
986
      },
      {
          // 7 colors
987
988
989
990
991
          { 182, 62, 80, 78, 46, 116, UNUSED_PROB },
          { 59, 62, 39, 81, 65, 99, UNUSED_PROB },
          { 54, 177, 48, 58, 93, 104, UNUSED_PROB },
          { 137, 79, 54, 55, 44, 134, UNUSED_PROB },
          { 239, 82, 79, 44, 69, 71, UNUSED_PROB },
992
993
994
      },
      {
          // 8 colors
995
996
997
998
999
1000
          { 172, 53, 27, 67, 30, 79, 113 },
          { 63, 57, 45, 81, 62, 35, 47 },
          { 51, 200, 36, 47, 82, 165, 129 },
          { 141, 100, 47, 29, 33, 37, 129 },
          { 236, 42, 50, 91, 24, 154, 65 },
      },
1001
1002
1003
    };

#undef UNUSED_PROB
hui su's avatar
hui su committed
1004

1005
1006
#define MAX_COLOR_CONTEXT_HASH 8
// Negative values are invalid
1007
1008
1009
static const int palette_color_index_context_lookup[MAX_COLOR_CONTEXT_HASH +
                                                    1] = { -1, -1, 0, -1, -1,
                                                           4,  3,  2, 1 };
1010

1011
#endif  // CONFIG_PALETTE
hui su's avatar
hui su committed
1012

1013
1014
// The transform size is coded as an offset to the smallest transform
// block size.
1015
const aom_tree_index av1_tx_size_tree[MAX_TX_DEPTH][TREE_SIZE(TX_SIZES)] = {
clang-format's avatar
clang-format committed
1016
1017
  {
      // Max tx_size is 8X8
1018
      -0, -1,
clang-format's avatar
clang-format committed
1019
1020
1021
  },
  {
      // Max tx_size is 16X16
1022
      -0, 2, -1, -2,
clang-format's avatar
clang-format committed
1023
1024
1025
  },
  {
      // Max tx_size is 32X32
1026
      -0, 2, -1, 4, -2, -3,
clang-format's avatar
clang-format committed
1027
  },
1028
#if CONFIG_TX64X64
1029
1030
  {
      // Max tx_size is 64X64
1031
      -0, 2, -1, 4, -2, 6, -3, -4,
1032
  },
1033
#endif  // CONFIG_TX64X64
1034
1035
};

Jingning Han's avatar
Jingning Han committed
1036
1037
static const aom_prob default_tx_size_prob[MAX_TX_DEPTH][TX_SIZE_CONTEXTS]
                                          [MAX_TX_DEPTH] = {
clang-format's avatar
clang-format committed
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
                                            {
                                                // Max tx_size is 8X8
                                                { 100 },
                                                { 66 },
                                            },
                                            {
                                                // Max tx_size is 16X16
                                                { 20, 152 },
                                                { 15, 101 },
                                            },
                                            {
                                                // Max tx_size is 32X32
                                                { 3, 136, 37 },