FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vp9data.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Ronald S. Bultje <rsbultje gmail com>
3  * Copyright (C) 2013 Clément Bœsch <u pkh me>
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef AVCODEC_VP9DATA_H
23 #define AVCODEC_VP9DATA_H
24 
25 #include <stdint.h>
26 
27 #include "vp9.h"
28 
30  PARTITION_NONE, // [ ] <-.
31  PARTITION_H, // [-] |
32  PARTITION_V, // [|] |
33  PARTITION_SPLIT, // [+] --'
34 };
35 
36 static const int8_t vp9_partition_tree[3][2] = {
37  { -PARTITION_NONE, 1 }, // '0'
38  { -PARTITION_H, 2 }, // '10'
39  { -PARTITION_V, -PARTITION_SPLIT }, // '110', '111'
40 };
41 
42 static const uint8_t vp9_default_kf_partition_probs[4][4][3] = {
43  { /* 64x64 -> 32x32 */
44  { 174, 35, 49 } /* a/l both not split */,
45  { 68, 11, 27 } /* a split, l not split */,
46  { 57, 15, 9 } /* l split, a not split */,
47  { 12, 3, 3 } /* a/l both split */
48  }, { /* 32x32 -> 16x16 */
49  { 150, 40, 39 } /* a/l both not split */,
50  { 78, 12, 26 } /* a split, l not split */,
51  { 67, 33, 11 } /* l split, a not split */,
52  { 24, 7, 5 } /* a/l both split */,
53  }, { /* 16x16 -> 8x8 */
54  { 149, 53, 53 } /* a/l both not split */,
55  { 94, 20, 48 } /* a split, l not split */,
56  { 83, 53, 24 } /* l split, a not split */,
57  { 52, 18, 18 } /* a/l both split */,
58  }, { /* 8x8 -> 4x4 */
59  { 158, 97, 94 } /* a/l both not split */,
60  { 93, 24, 99 } /* a split, l not split */,
61  { 85, 119, 44 } /* l split, a not split */,
62  { 62, 59, 67 } /* a/l both split */,
63  },
64 };
65 
66 static const int8_t vp9_segmentation_tree[7][2] = {
67  { 1, 2 },
68  { 3, 4 },
69  { 5, 6 },
70  { -0, -1 }, // '00x'
71  { -2, -3 }, // '01x'
72  { -4, -5 }, // '10x'
73  { -6, -7 }, // '11x'
74 };
75 
76 static const int8_t vp9_intramode_tree[9][2] = {
77  { -DC_PRED, 1 }, // '0'
78  { -TM_VP8_PRED, 2 }, // '10'
79  { -VERT_PRED, 3 }, // '110'
80  { 4, 6 },
81  { -HOR_PRED, 5 }, // '11100'
82  { -DIAG_DOWN_RIGHT_PRED, -VERT_RIGHT_PRED }, // '11101x'
83  { -DIAG_DOWN_LEFT_PRED, 7 }, // '11110'
84  { -VERT_LEFT_PRED, 8 }, // '111110'
85  { -HOR_DOWN_PRED, -HOR_UP_PRED }, // '111111x'
86 };
87 
88 static const uint8_t vp9_default_kf_ymode_probs[10][10][9] = {
89  { /* above = v */
90  { 43, 46, 168, 134, 107, 128, 69, 142, 92 } /* left = v */,
91  { 44, 29, 68, 159, 201, 177, 50, 57, 77 } /* left = h */,
92  { 63, 36, 126, 146, 123, 158, 60, 90, 96 } /* left = dc */,
93  { 58, 38, 76, 114, 97, 172, 78, 133, 92 } /* left = d45 */,
94  { 46, 41, 76, 140, 63, 184, 69, 112, 57 } /* left = d135 */,
95  { 38, 32, 85, 140, 46, 112, 54, 151, 133 } /* left = d117 */,
96  { 39, 27, 61, 131, 110, 175, 44, 75, 136 } /* left = d153 */,
97  { 47, 35, 80, 100, 74, 143, 64, 163, 74 } /* left = d63 */,
98  { 52, 30, 74, 113, 130, 175, 51, 64, 58 } /* left = d27 */,
99  { 36, 61, 116, 114, 128, 162, 80, 125, 82 } /* left = tm */
100  }, { /* above = h */
101  { 55, 44, 68, 166, 179, 192, 57, 57, 108 } /* left = v */,
102  { 42, 26, 11, 199, 241, 228, 23, 15, 85 } /* left = h */,
103  { 82, 26, 26, 171, 208, 204, 44, 32, 105 } /* left = dc */,
104  { 68, 42, 19, 131, 160, 199, 55, 52, 83 } /* left = d45 */,
105  { 58, 50, 25, 139, 115, 232, 39, 52, 118 } /* left = d135 */,
106  { 50, 35, 33, 153, 104, 162, 64, 59, 131 } /* left = d117 */,
107  { 44, 24, 16, 150, 177, 202, 33, 19, 156 } /* left = d153 */,
108  { 53, 49, 21, 110, 116, 168, 59, 80, 76 } /* left = d63 */,
109  { 55, 27, 12, 153, 203, 218, 26, 27, 49 } /* left = d27 */,
110  { 38, 72, 19, 168, 203, 212, 50, 50, 107 } /* left = tm */
111  }, { /* above = dc */
112  { 92, 45, 102, 136, 116, 180, 74, 90, 100 } /* left = v */,
113  { 73, 32, 19, 187, 222, 215, 46, 34, 100 } /* left = h */,
114  { 137, 30, 42, 148, 151, 207, 70, 52, 91 } /* left = dc */,
115  { 91, 30, 32, 116, 121, 186, 93, 86, 94 } /* left = d45 */,
116  { 72, 35, 36, 149, 68, 206, 68, 63, 105 } /* left = d135 */,
117  { 73, 31, 28, 138, 57, 124, 55, 122, 151 } /* left = d117 */,
118  { 67, 23, 21, 140, 126, 197, 40, 37, 171 } /* left = d153 */,
119  { 74, 32, 27, 107, 86, 160, 63, 134, 102 } /* left = d63 */,
120  { 86, 27, 28, 128, 154, 212, 45, 43, 53 } /* left = d27 */,
121  { 59, 67, 44, 140, 161, 202, 78, 67, 119 } /* left = tm */
122  }, { /* above = d45 */
123  { 59, 38, 83, 112, 103, 162, 98, 136, 90 } /* left = v */,
124  { 62, 30, 23, 158, 200, 207, 59, 57, 50 } /* left = h */,
125  { 103, 26, 36, 129, 132, 201, 83, 80, 93 } /* left = dc */,
126  { 67, 30, 29, 84, 86, 191, 102, 91, 59 } /* left = d45 */,
127  { 60, 32, 33, 112, 71, 220, 64, 89, 104 } /* left = d135 */,
128  { 53, 26, 34, 130, 56, 149, 84, 120, 103 } /* left = d117 */,
129  { 53, 21, 23, 133, 109, 210, 56, 77, 172 } /* left = d153 */,
130  { 61, 29, 29, 93, 97, 165, 83, 175, 162 } /* left = d63 */,
131  { 77, 19, 29, 112, 142, 228, 55, 66, 36 } /* left = d27 */,
132  { 47, 47, 43, 114, 137, 181, 100, 99, 95 } /* left = tm */
133  }, { /* above = d135 */
134  { 53, 40, 55, 139, 69, 183, 61, 80, 110 } /* left = v */,
135  { 40, 29, 19, 161, 180, 207, 43, 24, 91 } /* left = h */,
136  { 69, 23, 29, 128, 83, 199, 46, 44, 101 } /* left = dc */,
137  { 60, 34, 19, 105, 61, 198, 53, 64, 89 } /* left = d45 */,
138  { 52, 31, 22, 158, 40, 209, 58, 62, 89 } /* left = d135 */,
139  { 44, 31, 29, 147, 46, 158, 56, 102, 198 } /* left = d117 */,
140  { 35, 19, 12, 135, 87, 209, 41, 45, 167 } /* left = d153 */,
141  { 51, 38, 25, 113, 58, 164, 70, 93, 97 } /* left = d63 */,
142  { 55, 25, 21, 118, 95, 215, 38, 39, 66 } /* left = d27 */,
143  { 47, 54, 34, 146, 108, 203, 72, 103, 151 } /* left = tm */
144  }, { /* above = d117 */
145  { 46, 27, 80, 150, 55, 124, 55, 121, 135 } /* left = v */,
146  { 36, 23, 27, 165, 149, 166, 54, 64, 118 } /* left = h */,
147  { 64, 19, 37, 156, 66, 138, 49, 95, 133 } /* left = dc */,
148  { 53, 21, 36, 131, 63, 163, 60, 109, 81 } /* left = d45 */,
149  { 40, 26, 35, 154, 40, 185, 51, 97, 123 } /* left = d135 */,
150  { 35, 19, 34, 179, 19, 97, 48, 129, 124 } /* left = d117 */,
151  { 36, 20, 26, 136, 62, 164, 33, 77, 154 } /* left = d153 */,
152  { 45, 26, 28, 129, 45, 129, 49, 147, 123 } /* left = d63 */,
153  { 45, 18, 32, 130, 90, 157, 40, 79, 91 } /* left = d27 */,
154  { 38, 44, 51, 136, 74, 162, 57, 97, 121 } /* left = tm */
155  }, { /* above = d153 */
156  { 56, 39, 58, 133, 117, 173, 48, 53, 187 } /* left = v */,
157  { 35, 21, 12, 161, 212, 207, 20, 23, 145 } /* left = h */,
158  { 75, 17, 22, 136, 138, 185, 32, 34, 166 } /* left = dc */,
159  { 56, 29, 19, 117, 109, 181, 55, 68, 112 } /* left = d45 */,
160  { 47, 29, 17, 153, 64, 220, 59, 51, 114 } /* left = d135 */,
161  { 46, 16, 24, 136, 76, 147, 41, 64, 172 } /* left = d117 */,
162  { 34, 17, 11, 108, 152, 187, 13, 15, 209 } /* left = d153 */,
163  { 55, 30, 18, 122, 79, 179, 44, 88, 116 } /* left = d63 */,
164  { 51, 24, 14, 115, 133, 209, 32, 26, 104 } /* left = d27 */,
165  { 37, 49, 25, 129, 168, 164, 41, 54, 148 } /* left = tm */
166  }, { /* above = d63 */
167  { 48, 34, 86, 101, 92, 146, 78, 179, 134 } /* left = v */,
168  { 47, 22, 24, 138, 187, 178, 68, 69, 59 } /* left = h */,
169  { 78, 23, 39, 111, 117, 170, 74, 124, 94 } /* left = dc */,
170  { 56, 25, 33, 105, 112, 187, 95, 177, 129 } /* left = d45 */,
171  { 48, 31, 27, 114, 63, 183, 82, 116, 56 } /* left = d135 */,
172  { 43, 28, 37, 121, 63, 123, 61, 192, 169 } /* left = d117 */,
173  { 42, 17, 24, 109, 97, 177, 56, 76, 122 } /* left = d153 */,
174  { 46, 23, 32, 74, 86, 150, 67, 183, 88 } /* left = d63 */,
175  { 58, 18, 28, 105, 139, 182, 70, 92, 63 } /* left = d27 */,
176  { 36, 38, 48, 92, 122, 165, 88, 137, 91 } /* left = tm */
177  }, { /* above = d27 */
178  { 62, 44, 61, 123, 105, 189, 48, 57, 64 } /* left = v */,
179  { 47, 25, 17, 175, 222, 220, 24, 30, 86 } /* left = h */,
180  { 82, 22, 32, 127, 143, 213, 39, 41, 70 } /* left = dc */,
181  { 68, 36, 17, 106, 102, 206, 59, 74, 74 } /* left = d45 */,
182  { 57, 39, 23, 151, 68, 216, 55, 63, 58 } /* left = d135 */,
183  { 49, 30, 35, 141, 70, 168, 82, 40, 115 } /* left = d117 */,
184  { 51, 25, 15, 136, 129, 202, 38, 35, 139 } /* left = d153 */,
185  { 59, 39, 19, 114, 75, 180, 77, 104, 42 } /* left = d63 */,
186  { 68, 26, 16, 111, 141, 215, 29, 28, 28 } /* left = d27 */,
187  { 40, 61, 26, 126, 152, 206, 61, 59, 93 } /* left = tm */
188  }, { /* above = tm */
189  { 44, 78, 115, 132, 119, 173, 71, 112, 93 } /* left = v */,
190  { 39, 38, 21, 184, 227, 206, 42, 32, 64 } /* left = h */,
191  { 65, 70, 60, 155, 159, 199, 61, 60, 81 } /* left = dc */,
192  { 58, 47, 36, 124, 137, 193, 80, 82, 78 } /* left = d45 */,
193  { 49, 50, 35, 144, 95, 205, 63, 78, 59 } /* left = d135 */,
194  { 41, 53, 52, 148, 71, 142, 65, 128, 51 } /* left = d117 */,
195  { 40, 36, 28, 143, 143, 202, 40, 55, 137 } /* left = d153 */,
196  { 42, 44, 44, 104, 105, 164, 64, 130, 80 } /* left = d63 */,
197  { 52, 34, 29, 129, 183, 227, 42, 35, 43 } /* left = d27 */,
198  { 43, 81, 53, 140, 169, 204, 68, 84, 72 } /* left = tm */
199  }
200 };
201 
202 static const uint8_t vp9_default_kf_uvmode_probs[10][9] = {
203  { 118, 15, 123, 148, 131, 101, 44, 93, 131 } /* y = v */,
204  { 113, 12, 23, 188, 226, 142, 26, 32, 125 } /* y = h */,
205  { 144, 11, 54, 157, 195, 130, 46, 58, 108 } /* y = dc */,
206  { 120, 11, 50, 123, 163, 135, 64, 77, 103 } /* y = d45 */,
207  { 113, 9, 36, 155, 111, 157, 32, 44, 161 } /* y = d135 */,
208  { 116, 9, 55, 176, 76, 96, 37, 61, 149 } /* y = d117 */,
209  { 115, 9, 28, 141, 161, 167, 21, 25, 193 } /* y = d153 */,
210  { 116, 12, 64, 120, 140, 125, 49, 115, 121 } /* y = d63 */,
211  { 120, 12, 32, 145, 195, 142, 32, 38, 86 } /* y = d27 */,
212  { 102, 19, 66, 162, 182, 122, 35, 59, 128 } /* y = tm */
213 };
214 
216  NEARESTMV = 10,
217  NEARMV = 11,
218  ZEROMV = 12,
219  NEWMV = 13,
220 };
221 
222 static const int8_t vp9_inter_mode_tree[3][2] = {
223  { -ZEROMV, 1 }, // '0'
224  { -NEARESTMV, 2 }, // '10'
225  { -NEARMV, -NEWMV }, // '11x'
226 };
227 
228 static const int8_t vp9_filter_tree[2][2] = {
229  { -0, 1 }, // '0'
230  { -1, -2 }, // '1x'
231 };
232 
233 static const enum FilterMode vp9_filter_lut[3] = {
237 };
238 
239 static const int16_t vp9_dc_qlookup[3][256] = {
240  {
241  4, 8, 8, 9, 10, 11, 12, 12,
242  13, 14, 15, 16, 17, 18, 19, 19,
243  20, 21, 22, 23, 24, 25, 26, 26,
244  27, 28, 29, 30, 31, 32, 32, 33,
245  34, 35, 36, 37, 38, 38, 39, 40,
246  41, 42, 43, 43, 44, 45, 46, 47,
247  48, 48, 49, 50, 51, 52, 53, 53,
248  54, 55, 56, 57, 57, 58, 59, 60,
249  61, 62, 62, 63, 64, 65, 66, 66,
250  67, 68, 69, 70, 70, 71, 72, 73,
251  74, 74, 75, 76, 77, 78, 78, 79,
252  80, 81, 81, 82, 83, 84, 85, 85,
253  87, 88, 90, 92, 93, 95, 96, 98,
254  99, 101, 102, 104, 105, 107, 108, 110,
255  111, 113, 114, 116, 117, 118, 120, 121,
256  123, 125, 127, 129, 131, 134, 136, 138,
257  140, 142, 144, 146, 148, 150, 152, 154,
258  156, 158, 161, 164, 166, 169, 172, 174,
259  177, 180, 182, 185, 187, 190, 192, 195,
260  199, 202, 205, 208, 211, 214, 217, 220,
261  223, 226, 230, 233, 237, 240, 243, 247,
262  250, 253, 257, 261, 265, 269, 272, 276,
263  280, 284, 288, 292, 296, 300, 304, 309,
264  313, 317, 322, 326, 330, 335, 340, 344,
265  349, 354, 359, 364, 369, 374, 379, 384,
266  389, 395, 400, 406, 411, 417, 423, 429,
267  435, 441, 447, 454, 461, 467, 475, 482,
268  489, 497, 505, 513, 522, 530, 539, 549,
269  559, 569, 579, 590, 602, 614, 626, 640,
270  654, 668, 684, 700, 717, 736, 755, 775,
271  796, 819, 843, 869, 896, 925, 955, 988,
272  1022, 1058, 1098, 1139, 1184, 1232, 1282, 1336,
273  }, {
274  4, 9, 10, 13, 15, 17, 20, 22,
275  25, 28, 31, 34, 37, 40, 43, 47,
276  50, 53, 57, 60, 64, 68, 71, 75,
277  78, 82, 86, 90, 93, 97, 101, 105,
278  109, 113, 116, 120, 124, 128, 132, 136,
279  140, 143, 147, 151, 155, 159, 163, 166,
280  170, 174, 178, 182, 185, 189, 193, 197,
281  200, 204, 208, 212, 215, 219, 223, 226,
282  230, 233, 237, 241, 244, 248, 251, 255,
283  259, 262, 266, 269, 273, 276, 280, 283,
284  287, 290, 293, 297, 300, 304, 307, 310,
285  314, 317, 321, 324, 327, 331, 334, 337,
286  343, 350, 356, 362, 369, 375, 381, 387,
287  394, 400, 406, 412, 418, 424, 430, 436,
288  442, 448, 454, 460, 466, 472, 478, 484,
289  490, 499, 507, 516, 525, 533, 542, 550,
290  559, 567, 576, 584, 592, 601, 609, 617,
291  625, 634, 644, 655, 666, 676, 687, 698,
292  708, 718, 729, 739, 749, 759, 770, 782,
293  795, 807, 819, 831, 844, 856, 868, 880,
294  891, 906, 920, 933, 947, 961, 975, 988,
295  1001, 1015, 1030, 1045, 1061, 1076, 1090, 1105,
296  1120, 1137, 1153, 1170, 1186, 1202, 1218, 1236,
297  1253, 1271, 1288, 1306, 1323, 1342, 1361, 1379,
298  1398, 1416, 1436, 1456, 1476, 1496, 1516, 1537,
299  1559, 1580, 1601, 1624, 1647, 1670, 1692, 1717,
300  1741, 1766, 1791, 1817, 1844, 1871, 1900, 1929,
301  1958, 1990, 2021, 2054, 2088, 2123, 2159, 2197,
302  2236, 2276, 2319, 2363, 2410, 2458, 2508, 2561,
303  2616, 2675, 2737, 2802, 2871, 2944, 3020, 3102,
304  3188, 3280, 3375, 3478, 3586, 3702, 3823, 3953,
305  4089, 4236, 4394, 4559, 4737, 4929, 5130, 5347,
306  }, {
307  4, 12, 18, 25, 33, 41, 50, 60,
308  70, 80, 91, 103, 115, 127, 140, 153,
309  166, 180, 194, 208, 222, 237, 251, 266,
310  281, 296, 312, 327, 343, 358, 374, 390,
311  405, 421, 437, 453, 469, 484, 500, 516,
312  532, 548, 564, 580, 596, 611, 627, 643,
313  659, 674, 690, 706, 721, 737, 752, 768,
314  783, 798, 814, 829, 844, 859, 874, 889,
315  904, 919, 934, 949, 964, 978, 993, 1008,
316  1022, 1037, 1051, 1065, 1080, 1094, 1108, 1122,
317  1136, 1151, 1165, 1179, 1192, 1206, 1220, 1234,
318  1248, 1261, 1275, 1288, 1302, 1315, 1329, 1342,
319  1368, 1393, 1419, 1444, 1469, 1494, 1519, 1544,
320  1569, 1594, 1618, 1643, 1668, 1692, 1717, 1741,
321  1765, 1789, 1814, 1838, 1862, 1885, 1909, 1933,
322  1957, 1992, 2027, 2061, 2096, 2130, 2165, 2199,
323  2233, 2267, 2300, 2334, 2367, 2400, 2434, 2467,
324  2499, 2532, 2575, 2618, 2661, 2704, 2746, 2788,
325  2830, 2872, 2913, 2954, 2995, 3036, 3076, 3127,
326  3177, 3226, 3275, 3324, 3373, 3421, 3469, 3517,
327  3565, 3621, 3677, 3733, 3788, 3843, 3897, 3951,
328  4005, 4058, 4119, 4181, 4241, 4301, 4361, 4420,
329  4479, 4546, 4612, 4677, 4742, 4807, 4871, 4942,
330  5013, 5083, 5153, 5222, 5291, 5367, 5442, 5517,
331  5591, 5665, 5745, 5825, 5905, 5984, 6063, 6149,
332  6234, 6319, 6404, 6495, 6587, 6678, 6769, 6867,
333  6966, 7064, 7163, 7269, 7376, 7483, 7599, 7715,
334  7832, 7958, 8085, 8214, 8352, 8492, 8635, 8788,
335  8945, 9104, 9275, 9450, 9639, 9832, 10031, 10245,
336  10465, 10702, 10946, 11210, 11482, 11776, 12081, 12409,
337  12750, 13118, 13501, 13913, 14343, 14807, 15290, 15812,
338  16356, 16943, 17575, 18237, 18949, 19718, 20521, 21387,
339  }
340 };
341 
342 static const int16_t vp9_ac_qlookup[3][256] = {
343  {
344  4, 8, 9, 10, 11, 12, 13, 14,
345  15, 16, 17, 18, 19, 20, 21, 22,
346  23, 24, 25, 26, 27, 28, 29, 30,
347  31, 32, 33, 34, 35, 36, 37, 38,
348  39, 40, 41, 42, 43, 44, 45, 46,
349  47, 48, 49, 50, 51, 52, 53, 54,
350  55, 56, 57, 58, 59, 60, 61, 62,
351  63, 64, 65, 66, 67, 68, 69, 70,
352  71, 72, 73, 74, 75, 76, 77, 78,
353  79, 80, 81, 82, 83, 84, 85, 86,
354  87, 88, 89, 90, 91, 92, 93, 94,
355  95, 96, 97, 98, 99, 100, 101, 102,
356  104, 106, 108, 110, 112, 114, 116, 118,
357  120, 122, 124, 126, 128, 130, 132, 134,
358  136, 138, 140, 142, 144, 146, 148, 150,
359  152, 155, 158, 161, 164, 167, 170, 173,
360  176, 179, 182, 185, 188, 191, 194, 197,
361  200, 203, 207, 211, 215, 219, 223, 227,
362  231, 235, 239, 243, 247, 251, 255, 260,
363  265, 270, 275, 280, 285, 290, 295, 300,
364  305, 311, 317, 323, 329, 335, 341, 347,
365  353, 359, 366, 373, 380, 387, 394, 401,
366  408, 416, 424, 432, 440, 448, 456, 465,
367  474, 483, 492, 501, 510, 520, 530, 540,
368  550, 560, 571, 582, 593, 604, 615, 627,
369  639, 651, 663, 676, 689, 702, 715, 729,
370  743, 757, 771, 786, 801, 816, 832, 848,
371  864, 881, 898, 915, 933, 951, 969, 988,
372  1007, 1026, 1046, 1066, 1087, 1108, 1129, 1151,
373  1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343,
374  1369, 1396, 1423, 1451, 1479, 1508, 1537, 1567,
375  1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828,
376  }, {
377  4, 9, 11, 13, 16, 18, 21, 24,
378  27, 30, 33, 37, 40, 44, 48, 51,
379  55, 59, 63, 67, 71, 75, 79, 83,
380  88, 92, 96, 100, 105, 109, 114, 118,
381  122, 127, 131, 136, 140, 145, 149, 154,
382  158, 163, 168, 172, 177, 181, 186, 190,
383  195, 199, 204, 208, 213, 217, 222, 226,
384  231, 235, 240, 244, 249, 253, 258, 262,
385  267, 271, 275, 280, 284, 289, 293, 297,
386  302, 306, 311, 315, 319, 324, 328, 332,
387  337, 341, 345, 349, 354, 358, 362, 367,
388  371, 375, 379, 384, 388, 392, 396, 401,
389  409, 417, 425, 433, 441, 449, 458, 466,
390  474, 482, 490, 498, 506, 514, 523, 531,
391  539, 547, 555, 563, 571, 579, 588, 596,
392  604, 616, 628, 640, 652, 664, 676, 688,
393  700, 713, 725, 737, 749, 761, 773, 785,
394  797, 809, 825, 841, 857, 873, 889, 905,
395  922, 938, 954, 970, 986, 1002, 1018, 1038,
396  1058, 1078, 1098, 1118, 1138, 1158, 1178, 1198,
397  1218, 1242, 1266, 1290, 1314, 1338, 1362, 1386,
398  1411, 1435, 1463, 1491, 1519, 1547, 1575, 1603,
399  1631, 1663, 1695, 1727, 1759, 1791, 1823, 1859,
400  1895, 1931, 1967, 2003, 2039, 2079, 2119, 2159,
401  2199, 2239, 2283, 2327, 2371, 2415, 2459, 2507,
402  2555, 2603, 2651, 2703, 2755, 2807, 2859, 2915,
403  2971, 3027, 3083, 3143, 3203, 3263, 3327, 3391,
404  3455, 3523, 3591, 3659, 3731, 3803, 3876, 3952,
405  4028, 4104, 4184, 4264, 4348, 4432, 4516, 4604,
406  4692, 4784, 4876, 4972, 5068, 5168, 5268, 5372,
407  5476, 5584, 5692, 5804, 5916, 6032, 6148, 6268,
408  6388, 6512, 6640, 6768, 6900, 7036, 7172, 7312,
409  }, {
410  4, 13, 19, 27, 35, 44, 54, 64,
411  75, 87, 99, 112, 126, 139, 154, 168,
412  183, 199, 214, 230, 247, 263, 280, 297,
413  314, 331, 349, 366, 384, 402, 420, 438,
414  456, 475, 493, 511, 530, 548, 567, 586,
415  604, 623, 642, 660, 679, 698, 716, 735,
416  753, 772, 791, 809, 828, 846, 865, 884,
417  902, 920, 939, 957, 976, 994, 1012, 1030,
418  1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175,
419  1193, 1211, 1229, 1246, 1264, 1282, 1299, 1317,
420  1335, 1352, 1370, 1387, 1405, 1422, 1440, 1457,
421  1474, 1491, 1509, 1526, 1543, 1560, 1577, 1595,
422  1627, 1660, 1693, 1725, 1758, 1791, 1824, 1856,
423  1889, 1922, 1954, 1987, 2020, 2052, 2085, 2118,
424  2150, 2183, 2216, 2248, 2281, 2313, 2346, 2378,
425  2411, 2459, 2508, 2556, 2605, 2653, 2701, 2750,
426  2798, 2847, 2895, 2943, 2992, 3040, 3088, 3137,
427  3185, 3234, 3298, 3362, 3426, 3491, 3555, 3619,
428  3684, 3748, 3812, 3876, 3941, 4005, 4069, 4149,
429  4230, 4310, 4390, 4470, 4550, 4631, 4711, 4791,
430  4871, 4967, 5064, 5160, 5256, 5352, 5448, 5544,
431  5641, 5737, 5849, 5961, 6073, 6185, 6297, 6410,
432  6522, 6650, 6778, 6906, 7034, 7162, 7290, 7435,
433  7579, 7723, 7867, 8011, 8155, 8315, 8475, 8635,
434  8795, 8956, 9132, 9308, 9484, 9660, 9836, 10028,
435  10220, 10412, 10604, 10812, 11020, 11228, 11437, 11661,
436  11885, 12109, 12333, 12573, 12813, 13053, 13309, 13565,
437  13821, 14093, 14365, 14637, 14925, 15213, 15502, 15806,
438  16110, 16414, 16734, 17054, 17390, 17726, 18062, 18414,
439  18766, 19134, 19502, 19886, 20270, 20670, 21070, 21486,
440  21902, 22334, 22766, 23214, 23662, 24126, 24590, 25070,
441  25551, 26047, 26559, 27071, 27599, 28143, 28687, 29247,
442  }
443 };
444 
445 static const enum TxfmType vp9_intra_txfm_type[14] = {
446  [VERT_PRED] = ADST_DCT,
447  [HOR_PRED] = DCT_ADST,
448  [DC_PRED] = DCT_DCT,
454  [HOR_UP_PRED] = DCT_ADST,
456  [NEARESTMV] = DCT_DCT,
457  [NEARMV] = DCT_DCT,
458  [ZEROMV] = DCT_DCT,
459  [NEWMV] = DCT_DCT,
460 };
461 
462 static const int16_t vp9_default_scan_4x4[16] = {
463  0, 1, 4, 5,
464  2, 8, 3, 6,
465  12, 9, 7, 10,
466  13, 11, 14, 15,
467 };
468 
469 static const int16_t vp9_col_scan_4x4[16] = {
470  0, 1, 2, 4,
471  3, 5, 6, 8,
472  7, 9, 10, 12,
473  13, 11, 14, 15,
474 };
475 
476 static const int16_t vp9_row_scan_4x4[16] = {
477  0, 4, 1, 8,
478  5, 12, 9, 2,
479  6, 13, 3, 10,
480  7, 14, 11, 15,
481 };
482 
483 static const int16_t vp9_default_scan_8x8[64] = {
484  0, 1, 8, 2, 9, 16, 10, 3,
485  17, 24, 18, 11, 4, 25, 32, 19,
486  12, 26, 5, 33, 20, 27, 40, 13,
487  34, 6, 41, 28, 21, 35, 42, 48,
488  14, 7, 36, 29, 43, 56, 49, 22,
489  15, 37, 50, 44, 57, 30, 23, 51,
490  45, 58, 38, 31, 52, 59, 39, 46,
491  53, 60, 47, 54, 61, 55, 62, 63,
492 };
493 
494 static const int16_t vp9_col_scan_8x8[64] = {
495  0, 1, 2, 8, 3, 9, 4, 10,
496  16, 5, 11, 17, 12, 18, 6, 24,
497  19, 13, 25, 7, 26, 20, 32, 14,
498  27, 21, 33, 28, 34, 15, 22, 35,
499  40, 29, 41, 36, 23, 30, 42, 37,
500  48, 43, 31, 44, 49, 38, 50, 56,
501  45, 39, 51, 57, 52, 46, 58, 53,
502  59, 47, 60, 54, 61, 55, 62, 63,
503 };
504 
505 static const int16_t vp9_row_scan_8x8[64] = {
506  0, 8, 16, 1, 9, 24, 2, 17,
507  32, 10, 25, 3, 40, 18, 11, 33,
508  26, 19, 4, 48, 41, 34, 12, 27,
509  56, 20, 5, 42, 35, 13, 49, 28,
510  6, 21, 43, 36, 14, 50, 29, 57,
511  7, 44, 22, 37, 51, 15, 58, 30,
512  23, 45, 52, 38, 59, 31, 46, 53,
513  39, 60, 47, 61, 54, 62, 55, 63,
514 };
515 
516 static const int16_t vp9_default_scan_16x16[256] = {
517  0, 1, 16, 2, 17, 32, 3, 18, 33, 48, 4, 34, 19, 49, 20, 5,
518  35, 64, 50, 36, 65, 21, 6, 51, 80, 66, 37, 22, 52, 7, 81, 67,
519  38, 82, 53, 23, 96, 68, 8, 83, 97, 54, 39, 69, 112, 24, 98, 84,
520  70, 55, 9, 40, 85, 99, 113, 128, 25, 114, 100, 71, 86, 56, 10, 41,
521  115, 101, 129, 116, 72, 87, 26, 130, 144, 102, 57, 11, 42, 117, 131, 145,
522  88, 103, 27, 73, 132, 118, 146, 58, 160, 12, 43, 133, 147, 104, 89, 119,
523  161, 74, 148, 134, 28, 162, 59, 13, 176, 120, 149, 90, 135, 105, 163, 44,
524  75, 177, 164, 29, 150, 121, 136, 178, 165, 14, 106, 60, 91, 151, 45, 179,
525  192, 137, 166, 122, 76, 180, 152, 30, 61, 15, 107, 167, 181, 193, 92, 208,
526  46, 138, 123, 153, 194, 77, 168, 182, 31, 195, 209, 183, 108, 139, 62, 154,
527  47, 196, 93, 169, 210, 197, 224, 124, 184, 211, 78, 109, 170, 155, 63, 198,
528  212, 185, 225, 240, 140, 94, 199, 125, 79, 213, 226, 171, 186, 156, 214, 200,
529  110, 227, 141, 95, 241, 215, 228, 201, 126, 242, 187, 172, 157, 229, 111, 216,
530  243, 142, 202, 230, 127, 217, 244, 173, 188, 231, 158, 203, 143, 245, 218, 232,
531  189, 246, 159, 174, 233, 247, 219, 204, 175, 190, 248, 234, 205, 220, 249, 191,
532  235, 221, 250, 206, 222, 251, 236, 207, 237, 223, 252, 238, 253, 239, 254, 255,
533 };
534 
535 static const int16_t vp9_col_scan_16x16[256] = {
536  0, 1, 2, 3, 16, 4, 17, 5, 18, 6, 19, 32, 20, 7, 33, 21,
537  34, 8, 35, 22, 48, 36, 9, 49, 23, 50, 37, 10, 38, 51, 24, 64,
538  52, 11, 65, 39, 25, 53, 66, 54, 40, 67, 12, 80, 26, 68, 55, 81,
539  41, 69, 13, 27, 82, 56, 70, 83, 42, 14, 84, 96, 71, 28, 57, 85,
540  97, 15, 72, 98, 43, 86, 58, 99, 29, 87, 100, 112, 73, 44, 101, 59,
541  30, 113, 88, 114, 74, 128, 102, 45, 31, 115, 60, 103, 89, 116, 75, 129,
542  117, 46, 104, 90, 61, 130, 118, 131, 132, 105, 76, 47, 119, 144, 91, 62,
543  133, 106, 145, 120, 146, 134, 77, 147, 121, 92, 135, 148, 63, 107, 136, 122,
544  93, 149, 160, 78, 150, 137, 108, 161, 162, 151, 123, 79, 138, 163, 152, 94,
545  164, 109, 165, 153, 124, 139, 176, 166, 95, 177, 167, 110, 154, 178, 125, 179,
546  140, 168, 155, 111, 180, 192, 181, 169, 141, 126, 182, 193, 194, 156, 183, 170,
547  195, 127, 142, 196, 184, 208, 197, 157, 171, 143, 185, 198, 209, 199, 210, 172,
548  158, 186, 211, 224, 212, 200, 240, 159, 213, 225, 187, 201, 173, 226, 214, 215,
549  227, 202, 228, 188, 241, 216, 174, 229, 242, 203, 243, 217, 230, 175, 189, 244,
550  231, 204, 218, 232, 245, 219, 246, 190, 233, 205, 191, 247, 234, 248, 220, 206,
551  249, 235, 221, 207, 250, 236, 222, 251, 223, 237, 238, 252, 239, 253, 254, 255,
552 };
553 
554 static const int16_t vp9_row_scan_16x16[256] = {
555  0, 16, 32, 1, 48, 17, 64, 33, 2, 80, 18, 49, 96, 34, 3, 65,
556  19, 112, 50, 81, 35, 4, 128, 66, 20, 97, 51, 82, 5, 144, 36, 67,
557  113, 98, 21, 52, 160, 83, 129, 37, 68, 6, 114, 176, 99, 53, 22, 84,
558  145, 38, 69, 130, 7, 115, 192, 100, 54, 23, 85, 161, 146, 131, 39, 70,
559  208, 116, 8, 101, 177, 55, 86, 24, 162, 147, 132, 71, 224, 117, 40, 102,
560  9, 148, 56, 87, 193, 163, 240, 133, 178, 25, 118, 72, 41, 103, 164, 10,
561  149, 88, 134, 209, 179, 57, 119, 194, 26, 73, 165, 150, 104, 42, 135, 11,
562  180, 120, 89, 225, 195, 58, 27, 210, 151, 181, 166, 74, 43, 105, 12, 136,
563  90, 59, 241, 121, 28, 196, 167, 211, 152, 44, 182, 137, 75, 13, 226, 106,
564  122, 60, 197, 91, 168, 29, 183, 153, 14, 76, 212, 138, 45, 107, 15, 198,
565  92, 227, 169, 30, 123, 154, 61, 242, 184, 213, 139, 46, 77, 31, 108, 170,
566  199, 185, 124, 228, 93, 155, 214, 62, 140, 243, 78, 47, 200, 109, 186, 171,
567  201, 94, 63, 215, 229, 156, 79, 125, 141, 110, 216, 187, 172, 244, 202, 230,
568  217, 95, 157, 126, 245, 111, 142, 231, 188, 127, 158, 218, 173, 232, 246, 233,
569  203, 143, 247, 174, 189, 159, 219, 204, 248, 234, 249, 175, 190, 220, 205, 250,
570  235, 191, 221, 251, 236, 206, 252, 222, 207, 237, 223, 253, 238, 254, 239, 255,
571 };
572 
573 static const int16_t vp9_default_scan_32x32[1024] = {
574  0, 1, 32, 2, 33, 64, 3, 34, 65, 4, 96, 35, 66, 5, 36, 97, 67, 128, 98, 68, 37, 6, 129, 99, 7, 160, 69, 38, 130, 100, 161, 131,
575  39, 70, 8, 101, 162, 132, 192, 71, 40, 9, 102, 163, 133, 193, 72, 224, 103, 41, 164, 10, 194, 134, 165, 73, 104, 135, 225, 42, 195, 11, 256, 166,
576  226, 196, 74, 105, 136, 43, 12, 167, 197, 227, 257, 75, 106, 137, 228, 44, 198, 168, 258, 288, 13, 229, 76, 107, 199, 138, 259, 169, 289, 45, 230, 260,
577  200, 108, 14, 170, 139, 320, 290, 77, 231, 261, 46, 201, 140, 291, 109, 232, 321, 262, 171, 78, 292, 15, 322, 202, 263, 352, 172, 293, 233, 141, 323, 110,
578  47, 203, 264, 234, 294, 353, 324, 16, 79, 204, 265, 295, 325, 173, 354, 142, 235, 384, 48, 296, 111, 266, 355, 326, 80, 17, 205, 236, 174, 356, 385, 327,
579  143, 297, 267, 357, 386, 112, 49, 328, 298, 206, 416, 237, 358, 387, 81, 175, 18, 329, 359, 388, 299, 330, 389, 113, 417, 238, 360, 50, 207, 418, 390, 331,
580  19, 448, 361, 82, 419, 391, 239, 51, 362, 420, 114, 449, 480, 421, 83, 363, 450, 422, 512, 451, 423, 115, 452, 481, 453, 482, 454, 544, 483, 455, 513, 484,
581  514, 485, 515, 486, 545, 576, 487, 546, 547, 608, 577, 578, 579, 609, 610, 611, 20, 144, 268, 392, 516, 640, 21, 52, 145, 176, 269, 300, 393, 424, 517, 548,
582  641, 672, 22, 53, 84, 146, 177, 208, 270, 301, 332, 394, 425, 456, 518, 549, 580, 642, 673, 704, 23, 54, 85, 116, 147, 178, 209, 240, 271, 302, 333, 364,
583  395, 426, 457, 488, 519, 550, 581, 612, 643, 674, 705, 736, 55, 86, 117, 179, 210, 241, 303, 334, 365, 427, 458, 489, 551, 582, 613, 675, 706, 737, 87, 118,
584  211, 242, 335, 366, 459, 490, 583, 614, 707, 738, 119, 243, 367, 491, 615, 739, 24, 148, 272, 396, 520, 644, 768, 25, 56, 149, 180, 273, 304, 397, 428, 521,
585  552, 645, 676, 769, 800, 26, 57, 88, 150, 181, 212, 274, 305, 336, 398, 429, 460, 522, 553, 584, 646, 677, 708, 770, 801, 832, 27, 58, 89, 120, 151, 182,
586  213, 244, 275, 306, 337, 368, 399, 430, 461, 492, 523, 554, 585, 616, 647, 678, 709, 740, 771, 802, 833, 864, 59, 90, 121, 183, 214, 245, 307, 338, 369, 431,
587  462, 493, 555, 586, 617, 679, 710, 741, 803, 834, 865, 91, 122, 215, 246, 339, 370, 463, 494, 587, 618, 711, 742, 835, 866, 123, 247, 371, 495, 619, 743, 867,
588  28, 152, 276, 400, 524, 648, 772, 896, 29, 60, 153, 184, 277, 308, 401, 432, 525, 556, 649, 680, 773, 804, 897, 928, 30, 61, 92, 154, 185, 216, 278, 309,
589  340, 402, 433, 464, 526, 557, 588, 650, 681, 712, 774, 805, 836, 898, 929, 960, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341, 372, 403, 434, 465, 496,
590  527, 558, 589, 620, 651, 682, 713, 744, 775, 806, 837, 868, 899, 930, 961, 992, 63, 94, 125, 187, 218, 249, 311, 342, 373, 435, 466, 497, 559, 590, 621, 683,
591  714, 745, 807, 838, 869, 931, 962, 993, 95, 126, 219, 250, 343, 374, 467, 498, 591, 622, 715, 746, 839, 870, 963, 994, 127, 251, 375, 499, 623, 747, 871, 995,
592  156, 280, 404, 528, 652, 776, 900, 157, 188, 281, 312, 405, 436, 529, 560, 653, 684, 777, 808, 901, 932, 158, 189, 220, 282, 313, 344, 406, 437, 468, 530, 561,
593  592, 654, 685, 716, 778, 809, 840, 902, 933, 964, 159, 190, 221, 252, 283, 314, 345, 376, 407, 438, 469, 500, 531, 562, 593, 624, 655, 686, 717, 748, 779, 810,
594  841, 872, 903, 934, 965, 996, 191, 222, 253, 315, 346, 377, 439, 470, 501, 563, 594, 625, 687, 718, 749, 811, 842, 873, 935, 966, 997, 223, 254, 347, 378, 471,
595  502, 595, 626, 719, 750, 843, 874, 967, 998, 255, 379, 503, 627, 751, 875, 999, 284, 408, 532, 656, 780, 904, 285, 316, 409, 440, 533, 564, 657, 688, 781, 812,
596  905, 936, 286, 317, 348, 410, 441, 472, 534, 565, 596, 658, 689, 720, 782, 813, 844, 906, 937, 968, 287, 318, 349, 380, 411, 442, 473, 504, 535, 566, 597, 628,
597  659, 690, 721, 752, 783, 814, 845, 876, 907, 938, 969, 1000, 319, 350, 381, 443, 474, 505, 567, 598, 629, 691, 722, 753, 815, 846, 877, 939, 970, 1001, 351, 382,
598  475, 506, 599, 630, 723, 754, 847, 878, 971, 1002, 383, 507, 631, 755, 879, 1003, 412, 536, 660, 784, 908, 413, 444, 537, 568, 661, 692, 785, 816, 909, 940, 414,
599  445, 476, 538, 569, 600, 662, 693, 724, 786, 817, 848, 910, 941, 972, 415, 446, 477, 508, 539, 570, 601, 632, 663, 694, 725, 756, 787, 818, 849, 880, 911, 942,
600  973, 1004, 447, 478, 509, 571, 602, 633, 695, 726, 757, 819, 850, 881, 943, 974, 1005, 479, 510, 603, 634, 727, 758, 851, 882, 975, 1006, 511, 635, 759, 883, 1007,
601  540, 664, 788, 912, 541, 572, 665, 696, 789, 820, 913, 944, 542, 573, 604, 666, 697, 728, 790, 821, 852, 914, 945, 976, 543, 574, 605, 636, 667, 698, 729, 760,
602  791, 822, 853, 884, 915, 946, 977, 1008, 575, 606, 637, 699, 730, 761, 823, 854, 885, 947, 978, 1009, 607, 638, 731, 762, 855, 886, 979, 1010, 639, 763, 887, 1011,
603  668, 792, 916, 669, 700, 793, 824, 917, 948, 670, 701, 732, 794, 825, 856, 918, 949, 980, 671, 702, 733, 764, 795, 826, 857, 888, 919, 950, 981, 1012, 703, 734,
604  765, 827, 858, 889, 951, 982, 1013, 735, 766, 859, 890, 983, 1014, 767, 891, 1015, 796, 920, 797, 828, 921, 952, 798, 829, 860, 922, 953, 984, 799, 830, 861, 892,
605  923, 954, 985, 1016, 831, 862, 893, 955, 986, 1017, 863, 894, 987, 1018, 895, 1019, 924, 925, 956, 926, 957, 988, 927, 958, 989, 1020, 959, 990, 1021, 991, 1022, 1023,
606 };
607 
608 static const int16_t * const vp9_scans[5][4] = {
609  {
612  }, {
615  }, {
618  }, {
620  vp9_default_scan_32x32, vp9_default_scan_32x32
621  }, { // lossless
623  vp9_default_scan_4x4, vp9_default_scan_4x4
624  }
625 };
626 
627 static const int16_t vp9_default_scan_4x4_nb[16][2] = {
628  { 0, 0 }, { 0, 0 }, { 4, 1 }, { 1, 1 },
629  { 4, 4 }, { 2, 2 }, { 5, 2 }, { 8, 8 },
630  { 8, 5 }, { 6, 3 }, { 9, 6 }, { 12, 9 },
631  { 10, 7 }, { 13, 10 }, { 14, 11 }, { 0, 0 },
632 };
633 
634 static const int16_t vp9_col_scan_4x4_nb[16][2] = {
635  { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 2 },
636  { 4, 4 }, { 5, 5 }, { 4, 4 }, { 6, 6 },
637  { 8, 8 }, { 9, 9 }, { 8, 8 }, { 12, 12 },
638  { 10, 10 }, { 13, 13 }, { 14, 14 }, { 0, 0 },
639 };
640 
641 static const int16_t vp9_row_scan_4x4_nb[16][2] = {
642  { 0, 0 }, { 0, 0 }, { 4, 4 }, { 1, 1 },
643  { 8, 8 }, { 5, 5 }, { 1, 1 }, { 2, 2 },
644  { 9, 9 }, { 2, 2 }, { 6, 6 }, { 3, 3 },
645  { 10, 10 }, { 7, 7 }, { 11, 11 }, { 0, 0 },
646 };
647 
648 static const int16_t vp9_default_scan_8x8_nb[64][2] = {
649  { 0, 0 }, { 0, 0 }, { 1, 1 }, { 8, 1 },
650  { 8, 8 }, { 9, 2 }, { 2, 2 }, { 16, 9 },
651  { 16, 16 }, { 17, 10 }, { 10, 3 }, { 3, 3 },
652  { 24, 17 }, { 24, 24 }, { 18, 11 }, { 11, 4 },
653  { 25, 18 }, { 4, 4 }, { 32, 25 }, { 19, 12 },
654  { 26, 19 }, { 32, 32 }, { 12, 5 }, { 33, 26 },
655  { 5, 5 }, { 40, 33 }, { 27, 20 }, { 20, 13 },
656  { 34, 27 }, { 41, 34 }, { 40, 40 }, { 13, 6 },
657  { 6, 6 }, { 35, 28 }, { 28, 21 }, { 42, 35 },
658  { 48, 48 }, { 48, 41 }, { 21, 14 }, { 14, 7 },
659  { 36, 29 }, { 49, 42 }, { 43, 36 }, { 56, 49 },
660  { 29, 22 }, { 22, 15 }, { 50, 43 }, { 44, 37 },
661  { 57, 50 }, { 37, 30 }, { 30, 23 }, { 51, 44 },
662  { 58, 51 }, { 38, 31 }, { 45, 38 }, { 52, 45 },
663  { 59, 52 }, { 46, 39 }, { 53, 46 }, { 60, 53 },
664  { 54, 47 }, { 61, 54 }, { 62, 55 }, { 0, 0 },
665 };
666 
667 static const int16_t vp9_col_scan_8x8_nb[64][2] = {
668  { 0, 0 }, { 1, 1 }, { 0, 0 }, { 2, 2 },
669  { 8, 8 }, { 3, 3 }, { 9, 9 }, { 8, 8 },
670  { 4, 4 }, { 10, 10 }, { 16, 16 }, { 11, 11 },
671  { 17, 17 }, { 5, 5 }, { 16, 16 }, { 18, 18 },
672  { 12, 12 }, { 24, 24 }, { 6, 6 }, { 25, 25 },
673  { 19, 19 }, { 24, 24 }, { 13, 13 }, { 26, 26 },
674  { 20, 20 }, { 32, 32 }, { 27, 27 }, { 33, 33 },
675  { 14, 14 }, { 21, 21 }, { 34, 34 }, { 32, 32 },
676  { 28, 28 }, { 40, 40 }, { 35, 35 }, { 22, 22 },
677  { 29, 29 }, { 41, 41 }, { 36, 36 }, { 40, 40 },
678  { 42, 42 }, { 30, 30 }, { 43, 43 }, { 48, 48 },
679  { 37, 37 }, { 49, 49 }, { 48, 48 }, { 44, 44 },
680  { 38, 38 }, { 50, 50 }, { 56, 56 }, { 51, 51 },
681  { 45, 45 }, { 57, 57 }, { 52, 52 }, { 58, 58 },
682  { 46, 46 }, { 59, 59 }, { 53, 53 }, { 60, 60 },
683  { 54, 54 }, { 61, 61 }, { 62, 62 }, { 0, 0 },
684 };
685 
686 static const int16_t vp9_row_scan_8x8_nb[64][2] = {
687  { 0, 0 }, { 8, 8 }, { 0, 0 }, { 1, 1 },
688  { 16, 16 }, { 1, 1 }, { 9, 9 }, { 24, 24 },
689  { 2, 2 }, { 17, 17 }, { 2, 2 }, { 32, 32 },
690  { 10, 10 }, { 3, 3 }, { 25, 25 }, { 18, 18 },
691  { 11, 11 }, { 3, 3 }, { 40, 40 }, { 33, 33 },
692  { 26, 26 }, { 4, 4 }, { 19, 19 }, { 48, 48 },
693  { 12, 12 }, { 4, 4 }, { 34, 34 }, { 27, 27 },
694  { 5, 5 }, { 41, 41 }, { 20, 20 }, { 5, 5 },
695  { 13, 13 }, { 35, 35 }, { 28, 28 }, { 6, 6 },
696  { 42, 42 }, { 21, 21 }, { 49, 49 }, { 6, 6 },
697  { 36, 36 }, { 14, 14 }, { 29, 29 }, { 43, 43 },
698  { 7, 7 }, { 50, 50 }, { 22, 22 }, { 15, 15 },
699  { 37, 37 }, { 44, 44 }, { 30, 30 }, { 51, 51 },
700  { 23, 23 }, { 38, 38 }, { 45, 45 }, { 31, 31 },
701  { 52, 52 }, { 39, 39 }, { 53, 53 }, { 46, 46 },
702  { 54, 54 }, { 47, 47 }, { 55, 55 }, { 0, 0 },
703 };
704 
705 static const int16_t vp9_default_scan_16x16_nb[256][2] = {
706  { 0, 0 }, { 0, 0 }, { 1, 1 }, { 16, 1 },
707  { 16, 16 }, { 2, 2 }, { 17, 2 }, { 32, 17 },
708  { 32, 32 }, { 3, 3 }, { 33, 18 }, { 18, 3 },
709  { 48, 33 }, { 19, 4 }, { 4, 4 }, { 34, 19 },
710  { 48, 48 }, { 49, 34 }, { 35, 20 }, { 64, 49 },
711  { 20, 5 }, { 5, 5 }, { 50, 35 }, { 64, 64 },
712  { 65, 50 }, { 36, 21 }, { 21, 6 }, { 51, 36 },
713  { 6, 6 }, { 80, 65 }, { 66, 51 }, { 37, 22 },
714  { 81, 66 }, { 52, 37 }, { 22, 7 }, { 80, 80 },
715  { 67, 52 }, { 7, 7 }, { 82, 67 }, { 96, 81 },
716  { 53, 38 }, { 38, 23 }, { 68, 53 }, { 96, 96 },
717  { 23, 8 }, { 97, 82 }, { 83, 68 }, { 69, 54 },
718  { 54, 39 }, { 8, 8 }, { 39, 24 }, { 84, 69 },
719  { 98, 83 }, { 112, 97 }, { 112, 112 }, { 24, 9 },
720  { 113, 98 }, { 99, 84 }, { 70, 55 }, { 85, 70 },
721  { 55, 40 }, { 9, 9 }, { 40, 25 }, { 114, 99 },
722  { 100, 85 }, { 128, 113 }, { 115, 100 }, { 71, 56 },
723  { 86, 71 }, { 25, 10 }, { 129, 114 }, { 128, 128 },
724  { 101, 86 }, { 56, 41 }, { 10, 10 }, { 41, 26 },
725  { 116, 101 }, { 130, 115 }, { 144, 129 }, { 87, 72 },
726  { 102, 87 }, { 26, 11 }, { 72, 57 }, { 131, 116 },
727  { 117, 102 }, { 145, 130 }, { 57, 42 }, { 144, 144 },
728  { 11, 11 }, { 42, 27 }, { 132, 117 }, { 146, 131 },
729  { 103, 88 }, { 88, 73 }, { 118, 103 }, { 160, 145 },
730  { 73, 58 }, { 147, 132 }, { 133, 118 }, { 27, 12 },
731  { 161, 146 }, { 58, 43 }, { 12, 12 }, { 160, 160 },
732  { 119, 104 }, { 148, 133 }, { 89, 74 }, { 134, 119 },
733  { 104, 89 }, { 162, 147 }, { 43, 28 }, { 74, 59 },
734  { 176, 161 }, { 163, 148 }, { 28, 13 }, { 149, 134 },
735  { 120, 105 }, { 135, 120 }, { 177, 162 }, { 164, 149 },
736  { 13, 13 }, { 105, 90 }, { 59, 44 }, { 90, 75 },
737  { 150, 135 }, { 44, 29 }, { 178, 163 }, { 176, 176 },
738  { 136, 121 }, { 165, 150 }, { 121, 106 }, { 75, 60 },
739  { 179, 164 }, { 151, 136 }, { 29, 14 }, { 60, 45 },
740  { 14, 14 }, { 106, 91 }, { 166, 151 }, { 180, 165 },
741  { 192, 177 }, { 91, 76 }, { 192, 192 }, { 45, 30 },
742  { 137, 122 }, { 122, 107 }, { 152, 137 }, { 193, 178 },
743  { 76, 61 }, { 167, 152 }, { 181, 166 }, { 30, 15 },
744  { 194, 179 }, { 208, 193 }, { 182, 167 }, { 107, 92 },
745  { 138, 123 }, { 61, 46 }, { 153, 138 }, { 46, 31 },
746  { 195, 180 }, { 92, 77 }, { 168, 153 }, { 209, 194 },
747  { 196, 181 }, { 208, 208 }, { 123, 108 }, { 183, 168 },
748  { 210, 195 }, { 77, 62 }, { 108, 93 }, { 169, 154 },
749  { 154, 139 }, { 62, 47 }, { 197, 182 }, { 211, 196 },
750  { 184, 169 }, { 224, 209 }, { 224, 224 }, { 139, 124 },
751  { 93, 78 }, { 198, 183 }, { 124, 109 }, { 78, 63 },
752  { 212, 197 }, { 225, 210 }, { 170, 155 }, { 185, 170 },
753  { 155, 140 }, { 213, 198 }, { 199, 184 }, { 109, 94 },
754  { 226, 211 }, { 140, 125 }, { 94, 79 }, { 240, 225 },
755  { 214, 199 }, { 227, 212 }, { 200, 185 }, { 125, 110 },
756  { 241, 226 }, { 186, 171 }, { 171, 156 }, { 156, 141 },
757  { 228, 213 }, { 110, 95 }, { 215, 200 }, { 242, 227 },
758  { 141, 126 }, { 201, 186 }, { 229, 214 }, { 126, 111 },
759  { 216, 201 }, { 243, 228 }, { 172, 157 }, { 187, 172 },
760  { 230, 215 }, { 157, 142 }, { 202, 187 }, { 142, 127 },
761  { 244, 229 }, { 217, 202 }, { 231, 216 }, { 188, 173 },
762  { 245, 230 }, { 158, 143 }, { 173, 158 }, { 232, 217 },
763  { 246, 231 }, { 218, 203 }, { 203, 188 }, { 174, 159 },
764  { 189, 174 }, { 247, 232 }, { 233, 218 }, { 204, 189 },
765  { 219, 204 }, { 248, 233 }, { 190, 175 }, { 234, 219 },
766  { 220, 205 }, { 249, 234 }, { 205, 190 }, { 221, 206 },
767  { 250, 235 }, { 235, 220 }, { 206, 191 }, { 236, 221 },
768  { 222, 207 }, { 251, 236 }, { 237, 222 }, { 252, 237 },
769  { 238, 223 }, { 253, 238 }, { 254, 239 }, { 0, 0 },
770 };
771 
772 static const int16_t vp9_col_scan_16x16_nb[256][2] = {
773  { 0, 0 }, { 1, 1 }, { 2, 2 }, { 0, 0 },
774  { 3, 3 }, { 16, 16 }, { 4, 4 }, { 17, 17 },
775  { 5, 5 }, { 18, 18 }, { 16, 16 }, { 19, 19 },
776  { 6, 6 }, { 32, 32 }, { 20, 20 }, { 33, 33 },
777  { 7, 7 }, { 34, 34 }, { 21, 21 }, { 32, 32 },
778  { 35, 35 }, { 8, 8 }, { 48, 48 }, { 22, 22 },
779  { 49, 49 }, { 36, 36 }, { 9, 9 }, { 37, 37 },
780  { 50, 50 }, { 23, 23 }, { 48, 48 }, { 51, 51 },
781  { 10, 10 }, { 64, 64 }, { 38, 38 }, { 24, 24 },
782  { 52, 52 }, { 65, 65 }, { 53, 53 }, { 39, 39 },
783  { 66, 66 }, { 11, 11 }, { 64, 64 }, { 25, 25 },
784  { 67, 67 }, { 54, 54 }, { 80, 80 }, { 40, 40 },
785  { 68, 68 }, { 12, 12 }, { 26, 26 }, { 81, 81 },
786  { 55, 55 }, { 69, 69 }, { 82, 82 }, { 41, 41 },
787  { 13, 13 }, { 83, 83 }, { 80, 80 }, { 70, 70 },
788  { 27, 27 }, { 56, 56 }, { 84, 84 }, { 96, 96 },
789  { 14, 14 }, { 71, 71 }, { 97, 97 }, { 42, 42 },
790  { 85, 85 }, { 57, 57 }, { 98, 98 }, { 28, 28 },
791  { 86, 86 }, { 99, 99 }, { 96, 96 }, { 72, 72 },
792  { 43, 43 }, { 100, 100 }, { 58, 58 }, { 29, 29 },
793  { 112, 112 }, { 87, 87 }, { 113, 113 }, { 73, 73 },
794  { 112, 112 }, { 101, 101 }, { 44, 44 }, { 30, 30 },
795  { 114, 114 }, { 59, 59 }, { 102, 102 }, { 88, 88 },
796  { 115, 115 }, { 74, 74 }, { 128, 128 }, { 116, 116 },
797  { 45, 45 }, { 103, 103 }, { 89, 89 }, { 60, 60 },
798  { 129, 129 }, { 117, 117 }, { 130, 130 }, { 131, 131 },
799  { 104, 104 }, { 75, 75 }, { 46, 46 }, { 118, 118 },
800  { 128, 128 }, { 90, 90 }, { 61, 61 }, { 132, 132 },
801  { 105, 105 }, { 144, 144 }, { 119, 119 }, { 145, 145 },
802  { 133, 133 }, { 76, 76 }, { 146, 146 }, { 120, 120 },
803  { 91, 91 }, { 134, 134 }, { 147, 147 }, { 62, 62 },
804  { 106, 106 }, { 135, 135 }, { 121, 121 }, { 92, 92 },
805  { 148, 148 }, { 144, 144 }, { 77, 77 }, { 149, 149 },
806  { 136, 136 }, { 107, 107 }, { 160, 160 }, { 161, 161 },
807  { 150, 150 }, { 122, 122 }, { 78, 78 }, { 137, 137 },
808  { 162, 162 }, { 151, 151 }, { 93, 93 }, { 163, 163 },
809  { 108, 108 }, { 164, 164 }, { 152, 152 }, { 123, 123 },
810  { 138, 138 }, { 160, 160 }, { 165, 165 }, { 94, 94 },
811  { 176, 176 }, { 166, 166 }, { 109, 109 }, { 153, 153 },
812  { 177, 177 }, { 124, 124 }, { 178, 178 }, { 139, 139 },
813  { 167, 167 }, { 154, 154 }, { 110, 110 }, { 179, 179 },
814  { 176, 176 }, { 180, 180 }, { 168, 168 }, { 140, 140 },
815  { 125, 125 }, { 181, 181 }, { 192, 192 }, { 193, 193 },
816  { 155, 155 }, { 182, 182 }, { 169, 169 }, { 194, 194 },
817  { 126, 126 }, { 141, 141 }, { 195, 195 }, { 183, 183 },
818  { 192, 192 }, { 196, 196 }, { 156, 156 }, { 170, 170 },
819  { 142, 142 }, { 184, 184 }, { 197, 197 }, { 208, 208 },
820  { 198, 198 }, { 209, 209 }, { 171, 171 }, { 157, 157 },
821  { 185, 185 }, { 210, 210 }, { 208, 208 }, { 211, 211 },
822  { 199, 199 }, { 224, 224 }, { 158, 158 }, { 212, 212 },
823  { 224, 224 }, { 186, 186 }, { 200, 200 }, { 172, 172 },
824  { 225, 225 }, { 213, 213 }, { 214, 214 }, { 226, 226 },
825  { 201, 201 }, { 227, 227 }, { 187, 187 }, { 240, 240 },
826  { 215, 215 }, { 173, 173 }, { 228, 228 }, { 241, 241 },
827  { 202, 202 }, { 242, 242 }, { 216, 216 }, { 229, 229 },
828  { 174, 174 }, { 188, 188 }, { 243, 243 }, { 230, 230 },
829  { 203, 203 }, { 217, 217 }, { 231, 231 }, { 244, 244 },
830  { 218, 218 }, { 245, 245 }, { 189, 189 }, { 232, 232 },
831  { 204, 204 }, { 190, 190 }, { 246, 246 }, { 233, 233 },
832  { 247, 247 }, { 219, 219 }, { 205, 205 }, { 248, 248 },
833  { 234, 234 }, { 220, 220 }, { 206, 206 }, { 249, 249 },
834  { 235, 235 }, { 221, 221 }, { 250, 250 }, { 222, 222 },
835  { 236, 236 }, { 237, 237 }, { 251, 251 }, { 238, 238 },
836  { 252, 252 }, { 253, 253 }, { 254, 254 }, { 0, 0 },
837 };
838 
839 static const int16_t vp9_row_scan_16x16_nb[256][2] = {
840  { 0, 0 }, { 16, 16 }, { 0, 0 }, { 32, 32 },
841  { 1, 1 }, { 48, 48 }, { 17, 17 }, { 1, 1 },
842  { 64, 64 }, { 2, 2 }, { 33, 33 }, { 80, 80 },
843  { 18, 18 }, { 2, 2 }, { 49, 49 }, { 3, 3 },
844  { 96, 96 }, { 34, 34 }, { 65, 65 }, { 19, 19 },
845  { 3, 3 }, { 112, 112 }, { 50, 50 }, { 4, 4 },
846  { 81, 81 }, { 35, 35 }, { 66, 66 }, { 4, 4 },
847  { 128, 128 }, { 20, 20 }, { 51, 51 }, { 97, 97 },
848  { 82, 82 }, { 5, 5 }, { 36, 36 }, { 144, 144 },
849  { 67, 67 }, { 113, 113 }, { 21, 21 }, { 52, 52 },
850  { 5, 5 }, { 98, 98 }, { 160, 160 }, { 83, 83 },
851  { 37, 37 }, { 6, 6 }, { 68, 68 }, { 129, 129 },
852  { 22, 22 }, { 53, 53 }, { 114, 114 }, { 6, 6 },
853  { 99, 99 }, { 176, 176 }, { 84, 84 }, { 38, 38 },
854  { 7, 7 }, { 69, 69 }, { 145, 145 }, { 130, 130 },
855  { 115, 115 }, { 23, 23 }, { 54, 54 }, { 192, 192 },
856  { 100, 100 }, { 7, 7 }, { 85, 85 }, { 161, 161 },
857  { 39, 39 }, { 70, 70 }, { 8, 8 }, { 146, 146 },
858  { 131, 131 }, { 116, 116 }, { 55, 55 }, { 208, 208 },
859  { 101, 101 }, { 24, 24 }, { 86, 86 }, { 8, 8 },
860  { 132, 132 }, { 40, 40 }, { 71, 71 }, { 177, 177 },
861  { 147, 147 }, { 224, 224 }, { 117, 117 }, { 162, 162 },
862  { 9, 9 }, { 102, 102 }, { 56, 56 }, { 25, 25 },
863  { 87, 87 }, { 148, 148 }, { 9, 9 }, { 133, 133 },
864  { 72, 72 }, { 118, 118 }, { 193, 193 }, { 163, 163 },
865  { 41, 41 }, { 103, 103 }, { 178, 178 }, { 10, 10 },
866  { 57, 57 }, { 149, 149 }, { 134, 134 }, { 88, 88 },
867  { 26, 26 }, { 119, 119 }, { 10, 10 }, { 164, 164 },
868  { 104, 104 }, { 73, 73 }, { 209, 209 }, { 179, 179 },
869  { 42, 42 }, { 11, 11 }, { 194, 194 }, { 135, 135 },
870  { 165, 165 }, { 150, 150 }, { 58, 58 }, { 27, 27 },
871  { 89, 89 }, { 11, 11 }, { 120, 120 }, { 74, 74 },
872  { 43, 43 }, { 225, 225 }, { 105, 105 }, { 12, 12 },
873  { 180, 180 }, { 151, 151 }, { 195, 195 }, { 136, 136 },
874  { 28, 28 }, { 166, 166 }, { 121, 121 }, { 59, 59 },
875  { 12, 12 }, { 210, 210 }, { 90, 90 }, { 106, 106 },
876  { 44, 44 }, { 181, 181 }, { 75, 75 }, { 152, 152 },
877  { 13, 13 }, { 167, 167 }, { 137, 137 }, { 13, 13 },
878  { 60, 60 }, { 196, 196 }, { 122, 122 }, { 29, 29 },
879  { 91, 91 }, { 14, 14 }, { 182, 182 }, { 76, 76 },
880  { 211, 211 }, { 153, 153 }, { 14, 14 }, { 107, 107 },
881  { 138, 138 }, { 45, 45 }, { 226, 226 }, { 168, 168 },
882  { 197, 197 }, { 123, 123 }, { 30, 30 }, { 61, 61 },
883  { 15, 15 }, { 92, 92 }, { 154, 154 }, { 183, 183 },
884  { 169, 169 }, { 108, 108 }, { 212, 212 }, { 77, 77 },
885  { 139, 139 }, { 198, 198 }, { 46, 46 }, { 124, 124 },
886  { 227, 227 }, { 62, 62 }, { 31, 31 }, { 184, 184 },
887  { 93, 93 }, { 170, 170 }, { 155, 155 }, { 185, 185 },
888  { 78, 78 }, { 47, 47 }, { 199, 199 }, { 213, 213 },
889  { 140, 140 }, { 63, 63 }, { 109, 109 }, { 125, 125 },
890  { 94, 94 }, { 200, 200 }, { 171, 171 }, { 156, 156 },
891  { 228, 228 }, { 186, 186 }, { 214, 214 }, { 201, 201 },
892  { 79, 79 }, { 141, 141 }, { 110, 110 }, { 229, 229 },
893  { 95, 95 }, { 126, 126 }, { 215, 215 }, { 172, 172 },
894  { 111, 111 }, { 142, 142 }, { 202, 202 }, { 157, 157 },
895  { 216, 216 }, { 230, 230 }, { 217, 217 }, { 187, 187 },
896  { 127, 127 }, { 231, 231 }, { 158, 158 }, { 173, 173 },
897  { 143, 143 }, { 203, 203 }, { 188, 188 }, { 232, 232 },
898  { 218, 218 }, { 233, 233 }, { 159, 159 }, { 174, 174 },
899  { 204, 204 }, { 189, 189 }, { 234, 234 }, { 219, 219 },
900  { 175, 175 }, { 205, 205 }, { 235, 235 }, { 220, 220 },
901  { 190, 190 }, { 236, 236 }, { 206, 206 }, { 191, 191 },
902  { 221, 221 }, { 207, 207 }, { 237, 237 }, { 222, 222 },
903  { 238, 238 }, { 223, 223 }, { 239, 239 }, { 0, 0 },
904 };
905 
906 static const int16_t vp9_default_scan_32x32_nb[1024][2] = {
907  { 0, 0 }, { 0, 0 }, { 1, 1 }, { 32, 1 },
908  { 32, 32 }, { 2, 2 }, { 33, 2 }, { 64, 33 },
909  { 3, 3 }, { 64, 64 }, { 34, 3 }, { 65, 34 },
910  { 4, 4 }, { 35, 4 }, { 96, 65 }, { 66, 35 },
911  { 96, 96 }, { 97, 66 }, { 67, 36 }, { 36, 5 },
912  { 5, 5 }, { 128, 97 }, { 98, 67 }, { 6, 6 },
913  { 128, 128 }, { 68, 37 }, { 37, 6 }, { 129, 98 },
914  { 99, 68 }, { 160, 129 }, { 130, 99 }, { 38, 7 },
915  { 69, 38 }, { 7, 7 }, { 100, 69 }, { 161, 130 },
916  { 131, 100 }, { 160, 160 }, { 70, 39 }, { 39, 8 },
917  { 8, 8 }, { 101, 70 }, { 162, 131 }, { 132, 101 },
918  { 192, 161 }, { 71, 40 }, { 192, 192 }, { 102, 71 },
919  { 40, 9 }, { 163, 132 }, { 9, 9 }, { 193, 162 },
920  { 133, 102 }, { 164, 133 }, { 72, 41 }, { 103, 72 },
921  { 134, 103 }, { 224, 193 }, { 41, 10 }, { 194, 163 },
922  { 10, 10 }, { 224, 224 }, { 165, 134 }, { 225, 194 },
923  { 195, 164 }, { 73, 42 }, { 104, 73 }, { 135, 104 },
924  { 42, 11 }, { 11, 11 }, { 166, 135 }, { 196, 165 },
925  { 226, 195 }, { 256, 225 }, { 74, 43 }, { 105, 74 },
926  { 136, 105 }, { 227, 196 }, { 43, 12 }, { 197, 166 },
927  { 167, 136 }, { 257, 226 }, { 256, 256 }, { 12, 12 },
928  { 228, 197 }, { 75, 44 }, { 106, 75 }, { 198, 167 },
929  { 137, 106 }, { 258, 227 }, { 168, 137 }, { 288, 257 },
930  { 44, 13 }, { 229, 198 }, { 259, 228 }, { 199, 168 },
931  { 107, 76 }, { 13, 13 }, { 169, 138 }, { 138, 107 },
932  { 288, 288 }, { 289, 258 }, { 76, 45 }, { 230, 199 },
933  { 260, 229 }, { 45, 14 }, { 200, 169 }, { 139, 108 },
934  { 290, 259 }, { 108, 77 }, { 231, 200 }, { 320, 289 },
935  { 261, 230 }, { 170, 139 }, { 77, 46 }, { 291, 260 },
936  { 14, 14 }, { 321, 290 }, { 201, 170 }, { 262, 231 },
937  { 320, 320 }, { 171, 140 }, { 292, 261 }, { 232, 201 },
938  { 140, 109 }, { 322, 291 }, { 109, 78 }, { 46, 15 },
939  { 202, 171 }, { 263, 232 }, { 233, 202 }, { 293, 262 },
940  { 352, 321 }, { 323, 292 }, { 15, 15 }, { 78, 47 },
941  { 203, 172 }, { 264, 233 }, { 294, 263 }, { 324, 293 },
942  { 172, 141 }, { 353, 322 }, { 141, 110 }, { 234, 203 },
943  { 352, 352 }, { 47, 16 }, { 295, 264 }, { 110, 79 },
944  { 265, 234 }, { 354, 323 }, { 325, 294 }, { 79, 48 },
945  { 16, 16 }, { 204, 173 }, { 235, 204 }, { 173, 142 },
946  { 355, 324 }, { 384, 353 }, { 326, 295 }, { 142, 111 },
947  { 296, 265 }, { 266, 235 }, { 356, 325 }, { 385, 354 },
948  { 111, 80 }, { 48, 17 }, { 327, 296 }, { 297, 266 },
949  { 205, 174 }, { 384, 384 }, { 236, 205 }, { 357, 326 },
950  { 386, 355 }, { 80, 49 }, { 174, 143 }, { 17, 17 },
951  { 328, 297 }, { 358, 327 }, { 387, 356 }, { 298, 267 },
952  { 329, 298 }, { 388, 357 }, { 112, 81 }, { 416, 385 },
953  { 237, 206 }, { 359, 328 }, { 49, 18 }, { 206, 175 },
954  { 417, 386 }, { 389, 358 }, { 330, 299 }, { 18, 18 },
955  { 416, 416 }, { 360, 329 }, { 81, 50 }, { 418, 387 },
956  { 390, 359 }, { 238, 207 }, { 50, 19 }, { 361, 330 },
957  { 419, 388 }, { 113, 82 }, { 448, 417 }, { 448, 448 },
958  { 420, 389 }, { 82, 51 }, { 362, 331 }, { 449, 418 },
959  { 421, 390 }, { 480, 480 }, { 450, 419 }, { 422, 391 },
960  { 114, 83 }, { 451, 420 }, { 480, 449 }, { 452, 421 },
961  { 481, 450 }, { 453, 422 }, { 512, 512 }, { 482, 451 },
962  { 454, 423 }, { 512, 481 }, { 483, 452 }, { 513, 482 },
963  { 484, 453 }, { 514, 483 }, { 485, 454 }, { 544, 513 },
964  { 544, 544 }, { 486, 455 }, { 545, 514 }, { 546, 515 },
965  { 576, 576 }, { 576, 545 }, { 577, 546 }, { 578, 547 },
966  { 608, 577 }, { 609, 578 }, { 610, 579 }, { 19, 19 },
967  { 143, 112 }, { 267, 236 }, { 391, 360 }, { 515, 484 },
968  { 608, 608 }, { 20, 20 }, { 51, 20 }, { 144, 113 },
969  { 175, 144 }, { 268, 237 }, { 299, 268 }, { 392, 361 },
970  { 423, 392 }, { 516, 485 }, { 547, 516 }, { 640, 609 },
971  { 640, 640 }, { 21, 21 }, { 52, 21 }, { 83, 52 },
972  { 145, 114 }, { 176, 145 }, { 207, 176 }, { 269, 238 },
973  { 300, 269 }, { 331, 300 }, { 393, 362 }, { 424, 393 },
974  { 455, 424 }, { 517, 486 }, { 548, 517 }, { 579, 548 },
975  { 641, 610 }, { 672, 641 }, { 672, 672 }, { 22, 22 },
976  { 53, 22 }, { 84, 53 }, { 115, 84 }, { 146, 115 },
977  { 177, 146 }, { 208, 177 }, { 239, 208 }, { 270, 239 },
978  { 301, 270 }, { 332, 301 }, { 363, 332 }, { 394, 363 },
979  { 425, 394 }, { 456, 425 }, { 487, 456 }, { 518, 487 },
980  { 549, 518 }, { 580, 549 }, { 611, 580 }, { 642, 611 },
981  { 673, 642 }, { 704, 673 }, { 704, 704 }, { 54, 23 },
982  { 85, 54 }, { 116, 85 }, { 178, 147 }, { 209, 178 },
983  { 240, 209 }, { 302, 271 }, { 333, 302 }, { 364, 333 },
984  { 426, 395 }, { 457, 426 }, { 488, 457 }, { 550, 519 },
985  { 581, 550 }, { 612, 581 }, { 674, 643 }, { 705, 674 },
986  { 736, 705 }, { 86, 55 }, { 117, 86 }, { 210, 179 },
987  { 241, 210 }, { 334, 303 }, { 365, 334 }, { 458, 427 },
988  { 489, 458 }, { 582, 551 }, { 613, 582 }, { 706, 675 },
989  { 737, 706 }, { 118, 87 }, { 242, 211 }, { 366, 335 },
990  { 490, 459 }, { 614, 583 }, { 738, 707 }, { 23, 23 },
991  { 147, 116 }, { 271, 240 }, { 395, 364 }, { 519, 488 },
992  { 643, 612 }, { 736, 736 }, { 24, 24 }, { 55, 24 },
993  { 148, 117 }, { 179, 148 }, { 272, 241 }, { 303, 272 },
994  { 396, 365 }, { 427, 396 }, { 520, 489 }, { 551, 520 },
995  { 644, 613 }, { 675, 644 }, { 768, 737 }, { 768, 768 },
996  { 25, 25 }, { 56, 25 }, { 87, 56 }, { 149, 118 },
997  { 180, 149 }, { 211, 180 }, { 273, 242 }, { 304, 273 },
998  { 335, 304 }, { 397, 366 }, { 428, 397 }, { 459, 428 },
999  { 521, 490 }, { 552, 521 }, { 583, 552 }, { 645, 614 },
1000  { 676, 645 }, { 707, 676 }, { 769, 738 }, { 800, 769 },
1001  { 800, 800 }, { 26, 26 }, { 57, 26 }, { 88, 57 },
1002  { 119, 88 }, { 150, 119 }, { 181, 150 }, { 212, 181 },
1003  { 243, 212 }, { 274, 243 }, { 305, 274 }, { 336, 305 },
1004  { 367, 336 }, { 398, 367 }, { 429, 398 }, { 460, 429 },
1005  { 491, 460 }, { 522, 491 }, { 553, 522 }, { 584, 553 },
1006  { 615, 584 }, { 646, 615 }, { 677, 646 }, { 708, 677 },
1007  { 739, 708 }, { 770, 739 }, { 801, 770 }, { 832, 801 },
1008  { 832, 832 }, { 58, 27 }, { 89, 58 }, { 120, 89 },
1009  { 182, 151 }, { 213, 182 }, { 244, 213 }, { 306, 275 },
1010  { 337, 306 }, { 368, 337 }, { 430, 399 }, { 461, 430 },
1011  { 492, 461 }, { 554, 523 }, { 585, 554 }, { 616, 585 },
1012  { 678, 647 }, { 709, 678 }, { 740, 709 }, { 802, 771 },
1013  { 833, 802 }, { 864, 833 }, { 90, 59 }, { 121, 90 },
1014  { 214, 183 }, { 245, 214 }, { 338, 307 }, { 369, 338 },
1015  { 462, 431 }, { 493, 462 }, { 586, 555 }, { 617, 586 },
1016  { 710, 679 }, { 741, 710 }, { 834, 803 }, { 865, 834 },
1017  { 122, 91 }, { 246, 215 }, { 370, 339 }, { 494, 463 },
1018  { 618, 587 }, { 742, 711 }, { 866, 835 }, { 27, 27 },
1019  { 151, 120 }, { 275, 244 }, { 399, 368 }, { 523, 492 },
1020  { 647, 616 }, { 771, 740 }, { 864, 864 }, { 28, 28 },
1021  { 59, 28 }, { 152, 121 }, { 183, 152 }, { 276, 245 },
1022  { 307, 276 }, { 400, 369 }, { 431, 400 }, { 524, 493 },
1023  { 555, 524 }, { 648, 617 }, { 679, 648 }, { 772, 741 },
1024  { 803, 772 }, { 896, 865 }, { 896, 896 }, { 29, 29 },
1025  { 60, 29 }, { 91, 60 }, { 153, 122 }, { 184, 153 },
1026  { 215, 184 }, { 277, 246 }, { 308, 277 }, { 339, 308 },
1027  { 401, 370 }, { 432, 401 }, { 463, 432 }, { 525, 494 },
1028  { 556, 525 }, { 587, 556 }, { 649, 618 }, { 680, 649 },
1029  { 711, 680 }, { 773, 742 }, { 804, 773 }, { 835, 804 },
1030  { 897, 866 }, { 928, 897 }, { 928, 928 }, { 30, 30 },
1031  { 61, 30 }, { 92, 61 }, { 123, 92 }, { 154, 123 },
1032  { 185, 154 }, { 216, 185 }, { 247, 216 }, { 278, 247 },
1033  { 309, 278 }, { 340, 309 }, { 371, 340 }, { 402, 371 },
1034  { 433, 402 }, { 464, 433 }, { 495, 464 }, { 526, 495 },
1035  { 557, 526 }, { 588, 557 }, { 619, 588 }, { 650, 619 },
1036  { 681, 650 }, { 712, 681 }, { 743, 712 }, { 774, 743 },
1037  { 805, 774 }, { 836, 805 }, { 867, 836 }, { 898, 867 },
1038  { 929, 898 }, { 960, 929 }, { 960, 960 }, { 62, 31 },
1039  { 93, 62 }, { 124, 93 }, { 186, 155 }, { 217, 186 },
1040  { 248, 217 }, { 310, 279 }, { 341, 310 }, { 372, 341 },
1041  { 434, 403 }, { 465, 434 }, { 496, 465 }, { 558, 527 },
1042  { 589, 558 }, { 620, 589 }, { 682, 651 }, { 713, 682 },
1043  { 744, 713 }, { 806, 775 }, { 837, 806 }, { 868, 837 },
1044  { 930, 899 }, { 961, 930 }, { 992, 961 }, { 94, 63 },
1045  { 125, 94 }, { 218, 187 }, { 249, 218 }, { 342, 311 },
1046  { 373, 342 }, { 466, 435 }, { 497, 466 }, { 590, 559 },
1047  { 621, 590 }, { 714, 683 }, { 745, 714 }, { 838, 807 },
1048  { 869, 838 }, { 962, 931 }, { 993, 962 }, { 126, 95 },
1049  { 250, 219 }, { 374, 343 }, { 498, 467 }, { 622, 591 },
1050  { 746, 715 }, { 870, 839 }, { 994, 963 }, { 155, 124 },
1051  { 279, 248 }, { 403, 372 }, { 527, 496 }, { 651, 620 },
1052  { 775, 744 }, { 899, 868 }, { 156, 125 }, { 187, 156 },
1053  { 280, 249 }, { 311, 280 }, { 404, 373 }, { 435, 404 },
1054  { 528, 497 }, { 559, 528 }, { 652, 621 }, { 683, 652 },
1055  { 776, 745 }, { 807, 776 }, { 900, 869 }, { 931, 900 },
1056  { 157, 126 }, { 188, 157 }, { 219, 188 }, { 281, 250 },
1057  { 312, 281 }, { 343, 312 }, { 405, 374 }, { 436, 405 },
1058  { 467, 436 }, { 529, 498 }, { 560, 529 }, { 591, 560 },
1059  { 653, 622 }, { 684, 653 }, { 715, 684 }, { 777, 746 },
1060  { 808, 777 }, { 839, 808 }, { 901, 870 }, { 932, 901 },
1061  { 963, 932 }, { 158, 127 }, { 189, 158 }, { 220, 189 },
1062  { 251, 220 }, { 282, 251 }, { 313, 282 }, { 344, 313 },
1063  { 375, 344 }, { 406, 375 }, { 437, 406 }, { 468, 437 },
1064  { 499, 468 }, { 530, 499 }, { 561, 530 }, { 592, 561 },
1065  { 623, 592 }, { 654, 623 }, { 685, 654 }, { 716, 685 },
1066  { 747, 716 }, { 778, 747 }, { 809, 778 }, { 840, 809 },
1067  { 871, 840 }, { 902, 871 }, { 933, 902 }, { 964, 933 },
1068  { 995, 964 }, { 190, 159 }, { 221, 190 }, { 252, 221 },
1069  { 314, 283 }, { 345, 314 }, { 376, 345 }, { 438, 407 },
1070  { 469, 438 }, { 500, 469 }, { 562, 531 }, { 593, 562 },
1071  { 624, 593 }, { 686, 655 }, { 717, 686 }, { 748, 717 },
1072  { 810, 779 }, { 841, 810 }, { 872, 841 }, { 934, 903 },
1073  { 965, 934 }, { 996, 965 }, { 222, 191 }, { 253, 222 },
1074  { 346, 315 }, { 377, 346 }, { 470, 439 }, { 501, 470 },
1075  { 594, 563 }, { 625, 594 }, { 718, 687 }, { 749, 718 },
1076  { 842, 811 }, { 873, 842 }, { 966, 935 }, { 997, 966 },
1077  { 254, 223 }, { 378, 347 }, { 502, 471 }, { 626, 595 },
1078  { 750, 719 }, { 874, 843 }, { 998, 967 }, { 283, 252 },
1079  { 407, 376 }, { 531, 500 }, { 655, 624 }, { 779, 748 },
1080  { 903, 872 }, { 284, 253 }, { 315, 284 }, { 408, 377 },
1081  { 439, 408 }, { 532, 501 }, { 563, 532 }, { 656, 625 },
1082  { 687, 656 }, { 780, 749 }, { 811, 780 }, { 904, 873 },
1083  { 935, 904 }, { 285, 254 }, { 316, 285 }, { 347, 316 },
1084  { 409, 378 }, { 440, 409 }, { 471, 440 }, { 533, 502 },
1085  { 564, 533 }, { 595, 564 }, { 657, 626 }, { 688, 657 },
1086  { 719, 688 }, { 781, 750 }, { 812, 781 }, { 843, 812 },
1087  { 905, 874 }, { 936, 905 }, { 967, 936 }, { 286, 255 },
1088  { 317, 286 }, { 348, 317 }, { 379, 348 }, { 410, 379 },
1089  { 441, 410 }, { 472, 441 }, { 503, 472 }, { 534, 503 },
1090  { 565, 534 }, { 596, 565 }, { 627, 596 }, { 658, 627 },
1091  { 689, 658 }, { 720, 689 }, { 751, 720 }, { 782, 751 },
1092  { 813, 782 }, { 844, 813 }, { 875, 844 }, { 906, 875 },
1093  { 937, 906 }, { 968, 937 }, { 999, 968 }, { 318, 287 },
1094  { 349, 318 }, { 380, 349 }, { 442, 411 }, { 473, 442 },
1095  { 504, 473 }, { 566, 535 }, { 597, 566 }, { 628, 597 },
1096  { 690, 659 }, { 721, 690 }, { 752, 721 }, { 814, 783 },
1097  { 845, 814 }, { 876, 845 }, { 938, 907 }, { 969, 938 },
1098  { 1000, 969 }, { 350, 319 }, { 381, 350 }, { 474, 443 },
1099  { 505, 474 }, { 598, 567 }, { 629, 598 }, { 722, 691 },
1100  { 753, 722 }, { 846, 815 }, { 877, 846 }, { 970, 939 },
1101  { 1001, 970 }, { 382, 351 }, { 506, 475 }, { 630, 599 },
1102  { 754, 723 }, { 878, 847 }, { 1002, 971 }, { 411, 380 },
1103  { 535, 504 }, { 659, 628 }, { 783, 752 }, { 907, 876 },
1104  { 412, 381 }, { 443, 412 }, { 536, 505 }, { 567, 536 },
1105  { 660, 629 }, { 691, 660 }, { 784, 753 }, { 815, 784 },
1106  { 908, 877 }, { 939, 908 }, { 413, 382 }, { 444, 413 },
1107  { 475, 444 }, { 537, 506 }, { 568, 537 }, { 599, 568 },
1108  { 661, 630 }, { 692, 661 }, { 723, 692 }, { 785, 754 },
1109  { 816, 785 }, { 847, 816 }, { 909, 878 }, { 940, 909 },
1110  { 971, 940 }, { 414, 383 }, { 445, 414 }, { 476, 445 },
1111  { 507, 476 }, { 538, 507 }, { 569, 538 }, { 600, 569 },
1112  { 631, 600 }, { 662, 631 }, { 693, 662 }, { 724, 693 },
1113  { 755, 724 }, { 786, 755 }, { 817, 786 }, { 848, 817 },
1114  { 879, 848 }, { 910, 879 }, { 941, 910 }, { 972, 941 },
1115  { 1003, 972 }, { 446, 415 }, { 477, 446 }, { 508, 477 },
1116  { 570, 539 }, { 601, 570 }, { 632, 601 }, { 694, 663 },
1117  { 725, 694 }, { 756, 725 }, { 818, 787 }, { 849, 818 },
1118  { 880, 849 }, { 942, 911 }, { 973, 942 }, { 1004, 973 },
1119  { 478, 447 }, { 509, 478 }, { 602, 571 }, { 633, 602 },
1120  { 726, 695 }, { 757, 726 }, { 850, 819 }, { 881, 850 },
1121  { 974, 943 }, { 1005, 974 }, { 510, 479 }, { 634, 603 },
1122  { 758, 727 }, { 882, 851 }, { 1006, 975 }, { 539, 508 },
1123  { 663, 632 }, { 787, 756 }, { 911, 880 }, { 540, 509 },
1124  { 571, 540 }, { 664, 633 }, { 695, 664 }, { 788, 757 },
1125  { 819, 788 }, { 912, 881 }, { 943, 912 }, { 541, 510 },
1126  { 572, 541 }, { 603, 572 }, { 665, 634 }, { 696, 665 },
1127  { 727, 696 }, { 789, 758 }, { 820, 789 }, { 851, 820 },
1128  { 913, 882 }, { 944, 913 }, { 975, 944 }, { 542, 511 },
1129  { 573, 542 }, { 604, 573 }, { 635, 604 }, { 666, 635 },
1130  { 697, 666 }, { 728, 697 }, { 759, 728 }, { 790, 759 },
1131  { 821, 790 }, { 852, 821 }, { 883, 852 }, { 914, 883 },
1132  { 945, 914 }, { 976, 945 }, { 1007, 976 }, { 574, 543 },
1133  { 605, 574 }, { 636, 605 }, { 698, 667 }, { 729, 698 },
1134  { 760, 729 }, { 822, 791 }, { 853, 822 }, { 884, 853 },
1135  { 946, 915 }, { 977, 946 }, { 1008, 977 }, { 606, 575 },
1136  { 637, 606 }, { 730, 699 }, { 761, 730 }, { 854, 823 },
1137  { 885, 854 }, { 978, 947 }, { 1009, 978 }, { 638, 607 },
1138  { 762, 731 }, { 886, 855 }, { 1010, 979 }, { 667, 636 },
1139  { 791, 760 }, { 915, 884 }, { 668, 637 }, { 699, 668 },
1140  { 792, 761 }, { 823, 792 }, { 916, 885 }, { 947, 916 },
1141  { 669, 638 }, { 700, 669 }, { 731, 700 }, { 793, 762 },
1142  { 824, 793 }, { 855, 824 }, { 917, 886 }, { 948, 917 },
1143  { 979, 948 }, { 670, 639 }, { 701, 670 }, { 732, 701 },
1144  { 763, 732 }, { 794, 763 }, { 825, 794 }, { 856, 825 },
1145  { 887, 856 }, { 918, 887 }, { 949, 918 }, { 980, 949 },
1146  { 1011, 980 }, { 702, 671 }, { 733, 702 }, { 764, 733 },
1147  { 826, 795 }, { 857, 826 }, { 888, 857 }, { 950, 919 },
1148  { 981, 950 }, { 1012, 981 }, { 734, 703 }, { 765, 734 },
1149  { 858, 827 }, { 889, 858 }, { 982, 951 }, { 1013, 982 },
1150  { 766, 735 }, { 890, 859 }, { 1014, 983 }, { 795, 764 },
1151  { 919, 888 }, { 796, 765 }, { 827, 796 }, { 920, 889 },
1152  { 951, 920 }, { 797, 766 }, { 828, 797 }, { 859, 828 },
1153  { 921, 890 }, { 952, 921 }, { 983, 952 }, { 798, 767 },
1154  { 829, 798 }, { 860, 829 }, { 891, 860 }, { 922, 891 },
1155  { 953, 922 }, { 984, 953 }, { 1015, 984 }, { 830, 799 },
1156  { 861, 830 }, { 892, 861 }, { 954, 923 }, { 985, 954 },
1157  { 1016, 985 }, { 862, 831 }, { 893, 862 }, { 986, 955 },
1158  { 1017, 986 }, { 894, 863 }, { 1018, 987 }, { 923, 892 },
1159  { 924, 893 }, { 955, 924 }, { 925, 894 }, { 956, 925 },
1160  { 987, 956 }, { 926, 895 }, { 957, 926 }, { 988, 957 },
1161  { 1019, 988 }, { 958, 927 }, { 989, 958 }, { 1020, 989 },
1162  { 990, 959 }, { 1021, 990 }, { 1022, 991 }, { 0, 0 },
1163 };
1164 
1165 static const int16_t (* const vp9_scans_nb[5][4])[2] = {
1166  {
1169  }, {
1172  }, {
1175  }, {
1177  vp9_default_scan_32x32_nb, vp9_default_scan_32x32_nb
1178  }, { // lossless
1180  vp9_default_scan_4x4_nb, vp9_default_scan_4x4_nb
1181  }
1182 };
1183 
1184 static const uint8_t vp9_model_pareto8[256][8] = {
1185  { 6, 86, 128, 11, 87, 42, 91, 52 },
1186  { 3, 86, 128, 6, 86, 23, 88, 29 },
1187  { 6, 86, 128, 11, 87, 42, 91, 52 },
1188  { 9, 86, 129, 17, 88, 61, 94, 76 },
1189  { 12, 86, 129, 22, 88, 77, 97, 93 },
1190  { 15, 87, 129, 28, 89, 93, 100, 110 },
1191  { 17, 87, 129, 33, 90, 105, 103, 123 },
1192  { 20, 88, 130, 38, 91, 118, 106, 136 },
1193  { 23, 88, 130, 43, 91, 128, 108, 146 },
1194  { 26, 89, 131, 48, 92, 139, 111, 156 },
1195  { 28, 89, 131, 53, 93, 147, 114, 163 },
1196  { 31, 90, 131, 58, 94, 156, 117, 171 },
1197  { 34, 90, 131, 62, 94, 163, 119, 177 },
1198  { 37, 90, 132, 66, 95, 171, 122, 184 },
1199  { 39, 90, 132, 70, 96, 177, 124, 189 },
1200  { 42, 91, 132, 75, 97, 183, 127, 194 },
1201  { 44, 91, 132, 79, 97, 188, 129, 198 },
1202  { 47, 92, 133, 83, 98, 193, 132, 202 },
1203  { 49, 92, 133, 86, 99, 197, 134, 205 },
1204  { 52, 93, 133, 90, 100, 201, 137, 208 },
1205  { 54, 93, 133, 94, 100, 204, 139, 211 },
1206  { 57, 94, 134, 98, 101, 208, 142, 214 },
1207  { 59, 94, 134, 101, 102, 211, 144, 216 },
1208  { 62, 94, 135, 105, 103, 214, 146, 218 },
1209  { 64, 94, 135, 108, 103, 216, 148, 220 },
1210  { 66, 95, 135, 111, 104, 219, 151, 222 },
1211  { 68, 95, 135, 114, 105, 221, 153, 223 },
1212  { 71, 96, 136, 117, 106, 224, 155, 225 },
1213  { 73, 96, 136, 120, 106, 225, 157, 226 },
1214  { 76, 97, 136, 123, 107, 227, 159, 228 },
1215  { 78, 97, 136, 126, 108, 229, 160, 229 },
1216  { 80, 98, 137, 129, 109, 231, 162, 231 },
1217  { 82, 98, 137, 131, 109, 232, 164, 232 },
1218  { 84, 98, 138, 134, 110, 234, 166, 233 },
1219  { 86, 98, 138, 137, 111, 235, 168, 234 },
1220  { 89, 99, 138, 140, 112, 236, 170, 235 },
1221  { 91, 99, 138, 142, 112, 237, 171, 235 },
1222  { 93, 100, 139, 145, 113, 238, 173, 236 },
1223  { 95, 100, 139, 147, 114, 239, 174, 237 },
1224  { 97, 101, 140, 149, 115, 240, 176, 238 },
1225  { 99, 101, 140, 151, 115, 241, 177, 238 },
1226  { 101, 102, 140, 154, 116, 242, 179, 239 },
1227  { 103, 102, 140, 156, 117, 242, 180, 239 },
1228  { 105, 103, 141, 158, 118, 243, 182, 240 },
1229  { 107, 103, 141, 160, 118, 243, 183, 240 },
1230  { 109, 104, 141, 162, 119, 244, 185, 241 },
1231  { 111, 104, 141, 164, 119, 244, 186, 241 },
1232  { 113, 104, 142, 166, 120, 245, 187, 242 },
1233  { 114, 104, 142, 168, 121, 245, 188, 242 },
1234  { 116, 105, 143, 170, 122, 246, 190, 243 },
1235  { 118, 105, 143, 171, 122, 246, 191, 243 },
1236  { 120, 106, 143, 173, 123, 247, 192, 244 },
1237  { 121, 106, 143, 175, 124, 247, 193, 244 },
1238  { 123, 107, 144, 177, 125, 248, 195, 244 },
1239  { 125, 107, 144, 178, 125, 248, 196, 244 },
1240  { 127, 108, 145, 180, 126, 249, 197, 245 },
1241  { 128, 108, 145, 181, 127, 249, 198, 245 },
1242  { 130, 109, 145, 183, 128, 249, 199, 245 },
1243  { 132, 109, 145, 184, 128, 249, 200, 245 },
1244  { 134, 110, 146, 186, 129, 250, 201, 246 },
1245  { 135, 110, 146, 187, 130, 250, 202, 246 },
1246  { 137, 111, 147, 189, 131, 251, 203, 246 },
1247  { 138, 111, 147, 190, 131, 251, 204, 246 },
1248  { 140, 112, 147, 192, 132, 251, 205, 247 },
1249  { 141, 112, 147, 193, 132, 251, 206, 247 },
1250  { 143, 113, 148, 194, 133, 251, 207, 247 },
1251  { 144, 113, 148, 195, 134, 251, 207, 247 },
1252  { 146, 114, 149, 197, 135, 252, 208, 248 },
1253  { 147, 114, 149, 198, 135, 252, 209, 248 },
1254  { 149, 115, 149, 199, 136, 252, 210, 248 },
1255  { 150, 115, 149, 200, 137, 252, 210, 248 },
1256  { 152, 115, 150, 201, 138, 252, 211, 248 },
1257  { 153, 115, 150, 202, 138, 252, 212, 248 },
1258  { 155, 116, 151, 204, 139, 253, 213, 249 },
1259  { 156, 116, 151, 205, 139, 253, 213, 249 },
1260  { 158, 117, 151, 206, 140, 253, 214, 249 },
1261  { 159, 117, 151, 207, 141, 253, 215, 249 },
1262  { 161, 118, 152, 208, 142, 253, 216, 249 },
1263  { 162, 118, 152, 209, 142, 253, 216, 249 },
1264  { 163, 119, 153, 210, 143, 253, 217, 249 },
1265  { 164, 119, 153, 211, 143, 253, 217, 249 },
1266  { 166, 120, 153, 212, 144, 254, 218, 250 },
1267  { 167, 120, 153, 212, 145, 254, 219, 250 },
1268  { 168, 121, 154, 213, 146, 254, 220, 250 },
1269  { 169, 121, 154, 214, 146, 254, 220, 250 },
1270  { 171, 122, 155, 215, 147, 254, 221, 250 },
1271  { 172, 122, 155, 216, 147, 254, 221, 250 },
1272  { 173, 123, 155, 217, 148, 254, 222, 250 },
1273  { 174, 123, 155, 217, 149, 254, 222, 250 },
1274  { 176, 124, 156, 218, 150, 254, 223, 250 },
1275  { 177, 124, 156, 219, 150, 254, 223, 250 },
1276  { 178, 125, 157, 220, 151, 254, 224, 251 },
1277  { 179, 125, 157, 220, 151, 254, 224, 251 },
1278  { 180, 126, 157, 221, 152, 254, 225, 251 },
1279  { 181, 126, 157, 221, 152, 254, 225, 251 },
1280  { 183, 127, 158, 222, 153, 254, 226, 251 },
1281  { 184, 127, 158, 223, 154, 254, 226, 251 },
1282  { 185, 128, 159, 224, 155, 255, 227, 251 },
1283  { 186, 128, 159, 224, 155, 255, 227, 251 },
1284  { 187, 129, 160, 225, 156, 255, 228, 251 },
1285  { 188, 130, 160, 225, 156, 255, 228, 251 },
1286  { 189, 131, 160, 226, 157, 255, 228, 251 },
1287  { 190, 131, 160, 226, 158, 255, 228, 251 },
1288  { 191, 132, 161, 227, 159, 255, 229, 251 },
1289  { 192, 132, 161, 227, 159, 255, 229, 251 },
1290  { 193, 133, 162, 228, 160, 255, 230, 252 },
1291  { 194, 133, 162, 229, 160, 255, 230, 252 },
1292  { 195, 134, 163, 230, 161, 255, 231, 252 },
1293  { 196, 134, 163, 230, 161, 255, 231, 252 },
1294  { 197, 135, 163, 231, 162, 255, 231, 252 },
1295  { 198, 135, 163, 231, 162, 255, 231, 252 },
1296  { 199, 136, 164, 232, 163, 255, 232, 252 },
1297  { 200, 136, 164, 232, 164, 255, 232, 252 },
1298  { 201, 137, 165, 233, 165, 255, 233, 252 },
1299  { 201, 137, 165, 233, 165, 255, 233, 252 },
1300  { 202, 138, 166, 233, 166, 255, 233, 252 },
1301  { 203, 138, 166, 233, 166, 255, 233, 252 },
1302  { 204, 139, 166, 234, 167, 255, 234, 252 },
1303  { 205, 139, 166, 234, 167, 255, 234, 252 },
1304  { 206, 140, 167, 235, 168, 255, 235, 252 },
1305  { 206, 140, 167, 235, 168, 255, 235, 252 },
1306  { 207, 141, 168, 236, 169, 255, 235, 252 },
1307  { 208, 141, 168, 236, 170, 255, 235, 252 },
1308  { 209, 142, 169, 237, 171, 255, 236, 252 },
1309  { 209, 143, 169, 237, 171, 255, 236, 252 },
1310  { 210, 144, 169, 237, 172, 255, 236, 252 },
1311  { 211, 144, 169, 237, 172, 255, 236, 252 },
1312  { 212, 145, 170, 238, 173, 255, 237, 252 },
1313  { 213, 145, 170, 238, 173, 255, 237, 252 },
1314  { 214, 146, 171, 239, 174, 255, 237, 253 },
1315  { 214, 146, 171, 239, 174, 255, 237, 253 },
1316  { 215, 147, 172, 240, 175, 255, 238, 253 },
1317  { 215, 147, 172, 240, 175, 255, 238, 253 },
1318  { 216, 148, 173, 240, 176, 255, 238, 253 },
1319  { 217, 148, 173, 240, 176, 255, 238, 253 },
1320  { 218, 149, 173, 241, 177, 255, 239, 253 },
1321  { 218, 149, 173, 241, 178, 255, 239, 253 },
1322  { 219, 150, 174, 241, 179, 255, 239, 253 },
1323  { 219, 151, 174, 241, 179, 255, 239, 253 },
1324  { 220, 152, 175, 242, 180, 255, 240, 253 },
1325  { 221, 152, 175, 242, 180, 255, 240, 253 },
1326  { 222, 153, 176, 242, 181, 255, 240, 253 },
1327  { 222, 153, 176, 242, 181, 255, 240, 253 },
1328  { 223, 154, 177, 243, 182, 255, 240, 253 },
1329  { 223, 154, 177, 243, 182, 255, 240, 253 },
1330  { 224, 155, 178, 244, 183, 255, 241, 253 },
1331  { 224, 155, 178, 244, 183, 255, 241, 253 },
1332  { 225, 156, 178, 244, 184, 255, 241, 253 },
1333  { 225, 157, 178, 244, 184, 255, 241, 253 },
1334  { 226, 158, 179, 244, 185, 255, 242, 253 },
1335  { 227, 158, 179, 244, 185, 255, 242, 253 },
1336  { 228, 159, 180, 245, 186, 255, 242, 253 },
1337  { 228, 159, 180, 245, 186, 255, 242, 253 },
1338  { 229, 160, 181, 245, 187, 255, 242, 253 },
1339  { 229, 160, 181, 245, 187, 255, 242, 253 },
1340  { 230, 161, 182, 246, 188, 255, 243, 253 },
1341  { 230, 162, 182, 246, 188, 255, 243, 253 },
1342  { 231, 163, 183, 246, 189, 255, 243, 253 },
1343  { 231, 163, 183, 246, 189, 255, 243, 253 },
1344  { 232, 164, 184, 247, 190, 255, 243, 253 },
1345  { 232, 164, 184, 247, 190, 255, 243, 253 },
1346  { 233, 165, 185, 247, 191, 255, 244, 253 },
1347  { 233, 165, 185, 247, 191, 255, 244, 253 },
1348  { 234, 166, 185, 247, 192, 255, 244, 253 },
1349  { 234, 167, 185, 247, 192, 255, 244, 253 },
1350  { 235, 168, 186, 248, 193, 255, 244, 253 },
1351  { 235, 168, 186, 248, 193, 255, 244, 253 },
1352  { 236, 169, 187, 248, 194, 255, 244, 253 },
1353  { 236, 169, 187, 248, 194, 255, 244, 253 },
1354  { 236, 170, 188, 248, 195, 255, 245, 253 },
1355  { 236, 170, 188, 248, 195, 255, 245, 253 },
1356  { 237, 171, 189, 249, 196, 255, 245, 254 },
1357  { 237, 172, 189, 249, 196, 255, 245, 254 },
1358  { 238, 173, 190, 249, 197, 255, 245, 254 },
1359  { 238, 173, 190, 249, 197, 255, 245, 254 },
1360  { 239, 174, 191, 249, 198, 255, 245, 254 },
1361  { 239, 174, 191, 249, 198, 255, 245, 254 },
1362  { 240, 175, 192, 249, 199, 255, 246, 254 },
1363  { 240, 176, 192, 249, 199, 255, 246, 254 },
1364  { 240, 177, 193, 250, 200, 255, 246, 254 },
1365  { 240, 177, 193, 250, 200, 255, 246, 254 },
1366  { 241, 178, 194, 250, 201, 255, 246, 254 },
1367  { 241, 178, 194, 250, 201, 255, 246, 254 },
1368  { 242, 179, 195, 250, 202, 255, 246, 254 },
1369  { 242, 180, 195, 250, 202, 255, 246, 254 },
1370  { 242, 181, 196, 250, 203, 255, 247, 254 },
1371  { 242, 181, 196, 250, 203, 255, 247, 254 },
1372  { 243, 182, 197, 251, 204, 255, 247, 254 },
1373  { 243, 183, 197, 251, 204, 255, 247, 254 },
1374  { 244, 184, 198, 251, 205, 255, 247, 254 },
1375  { 244, 184, 198, 251, 205, 255, 247, 254 },
1376  { 244, 185, 199, 251, 206, 255, 247, 254 },
1377  { 244, 185, 199, 251, 206, 255, 247, 254 },
1378  { 245, 186, 200, 251, 207, 255, 247, 254 },
1379  { 245, 187, 200, 251, 207, 255, 247, 254 },
1380  { 246, 188, 201, 252, 207, 255, 248, 254 },
1381  { 246, 188, 201, 252, 207, 255, 248, 254 },
1382  { 246, 189, 202, 252, 208, 255, 248, 254 },
1383  { 246, 190, 202, 252, 208, 255, 248, 254 },
1384  { 247, 191, 203, 252, 209, 255, 248, 254 },
1385  { 247, 191, 203, 252, 209, 255, 248, 254 },
1386  { 247, 192, 204, 252, 210, 255, 248, 254 },
1387  { 247, 193, 204, 252, 210, 255, 248, 254 },
1388  { 248, 194, 205, 252, 211, 255, 248, 254 },
1389  { 248, 194, 205, 252, 211, 255, 248, 254 },
1390  { 248, 195, 206, 252, 212, 255, 249, 254 },
1391  { 248, 196, 206, 252, 212, 255, 249, 254 },
1392  { 249, 197, 207, 253, 213, 255, 249, 254 },
1393  { 249, 197, 207, 253, 213, 255, 249, 254 },
1394  { 249, 198, 208, 253, 214, 255, 249, 254 },
1395  { 249, 199, 209, 253, 214, 255, 249, 254 },
1396  { 250, 200, 210, 253, 215, 255, 249, 254 },
1397  { 250, 200, 210, 253, 215, 255, 249, 254 },
1398  { 250, 201, 211, 253, 215, 255, 249, 254 },
1399  { 250, 202, 211, 253, 215, 255, 249, 254 },
1400  { 250, 203, 212, 253, 216, 255, 249, 254 },
1401  { 250, 203, 212, 253, 216, 255, 249, 254 },
1402  { 251, 204, 213, 253, 217, 255, 250, 254 },
1403  { 251, 205, 213, 253, 217, 255, 250, 254 },
1404  { 251, 206, 214, 254, 218, 255, 250, 254 },
1405  { 251, 206, 215, 254, 218, 255, 250, 254 },
1406  { 252, 207, 216, 254, 219, 255, 250, 254 },
1407  { 252, 208, 216, 254, 219, 255, 250, 254 },
1408  { 252, 209, 217, 254, 220, 255, 250, 254 },
1409  { 252, 210, 217, 254, 220, 255, 250, 254 },
1410  { 252, 211, 218, 254, 221, 255, 250, 254 },
1411  { 252, 212, 218, 254, 221, 255, 250, 254 },
1412  { 253, 213, 219, 254, 222, 255, 250, 254 },
1413  { 253, 213, 220, 254, 222, 255, 250, 254 },
1414  { 253, 214, 221, 254, 223, 255, 250, 254 },
1415  { 253, 215, 221, 254, 223, 255, 250, 254 },
1416  { 253, 216, 222, 254, 224, 255, 251, 254 },
1417  { 253, 217, 223, 254, 224, 255, 251, 254 },
1418  { 253, 218, 224, 254, 225, 255, 251, 254 },
1419  { 253, 219, 224, 254, 225, 255, 251, 254 },
1420  { 254, 220, 225, 254, 225, 255, 251, 254 },
1421  { 254, 221, 226, 254, 225, 255, 251, 254 },
1422  { 254, 222, 227, 255, 226, 255, 251, 254 },
1423  { 254, 223, 227, 255, 226, 255, 251, 254 },
1424  { 254, 224, 228, 255, 227, 255, 251, 254 },
1425  { 254, 225, 229, 255, 227, 255, 251, 254 },
1426  { 254, 226, 230, 255, 228, 255, 251, 254 },
1427  { 254, 227, 230, 255, 229, 255, 251, 254 },
1428  { 255, 228, 231, 255, 230, 255, 251, 254 },
1429  { 255, 229, 232, 255, 230, 255, 251, 254 },
1430  { 255, 230, 233, 255, 231, 255, 252, 254 },
1431  { 255, 231, 234, 255, 231, 255, 252, 254 },
1432  { 255, 232, 235, 255, 232, 255, 252, 254 },
1433  { 255, 233, 236, 255, 232, 255, 252, 254 },
1434  { 255, 235, 237, 255, 233, 255, 252, 254 },
1435  { 255, 236, 238, 255, 234, 255, 252, 254 },
1436  { 255, 238, 240, 255, 235, 255, 252, 255 },
1437  { 255, 239, 241, 255, 235, 255, 252, 254 },
1438  { 255, 241, 243, 255, 236, 255, 252, 254 },
1439  { 255, 243, 245, 255, 237, 255, 252, 254 },
1440  { 255, 246, 247, 255, 239, 255, 253, 255 },
1441 };
1442 
1443 typedef struct {
1444  uint8_t y_mode[4][9];
1445  uint8_t uv_mode[10][9];
1447  uint8_t mv_mode[7][3];
1448  uint8_t intra[4];
1450  uint8_t single_ref[5][2];
1451  uint8_t comp_ref[5];
1452  uint8_t tx32p[2][3];
1453  uint8_t tx16p[2][2];
1454  uint8_t tx8p[2];
1455  uint8_t skip[3];
1456  uint8_t mv_joint[3];
1457  struct {
1459  uint8_t classes[10];
1462  uint8_t class0_fp[2][3];
1466  } mv_comp[2];
1467  uint8_t partition[4][4][3];
1468 } prob_context;
1469 
1471  { /* y_mode */
1472  { 65, 32, 18, 144, 162, 194, 41, 51, 98 } /* bsize < 8x8 */,
1473  { 132, 68, 18, 165, 217, 196, 45, 40, 78 } /* bsize < 16x16 */,
1474  { 173, 80, 19, 176, 240, 193, 64, 35, 46 } /* bsize < 32x32 */,
1475  { 221, 135, 38, 194, 248, 121, 96, 85, 29 } /* bsize >= 32x32 */
1476  }, { /* uv_mode */
1477  { 48, 12, 154, 155, 139, 90, 34, 117, 119 } /* y = v */,
1478  { 67, 6, 25, 204, 243, 158, 13, 21, 96 } /* y = h */,
1479  { 120, 7, 76, 176, 208, 126, 28, 54, 103 } /* y = dc */,
1480  { 97, 5, 44, 131, 176, 139, 48, 68, 97 } /* y = d45 */,
1481  { 83, 5, 42, 156, 111, 152, 26, 49, 152 } /* y = d135 */,
1482  { 80, 5, 58, 178, 74, 83, 33, 62, 145 } /* y = d117 */,
1483  { 86, 5, 32, 154, 192, 168, 14, 22, 163 } /* y = d153 */,
1484  { 77, 7, 64, 116, 132, 122, 37, 126, 120 } /* y = d63 */,
1485  { 85, 5, 32, 156, 216, 148, 19, 29, 73 } /* y = d27 */,
1486  { 101, 21, 107, 181, 192, 103, 19, 67, 125 } /* y = tm */
1487  }, { /* filter */
1488  { 235, 162, },
1489  { 36, 255, },
1490  { 34, 3, },
1491  { 149, 144, },
1492  }, { /* mv_mode */
1493  { 2, 173, 34}, // 0 = both zero mv
1494  { 7, 145, 85}, // 1 = one zero mv + one a predicted mv
1495  { 7, 166, 63}, // 2 = two predicted mvs
1496  { 7, 94, 66}, // 3 = one predicted/zero and one new mv
1497  { 8, 64, 46}, // 4 = two new mvs
1498  { 17, 81, 31}, // 5 = one intra neighbour + x
1499  { 25, 29, 30}, // 6 = two intra neighbours
1500  }, { /* intra */
1501  9, 102, 187, 225
1502  }, { /* comp */
1503  239, 183, 119, 96, 41
1504  }, { /* single_ref */
1505  { 33, 16 },
1506  { 77, 74 },
1507  { 142, 142 },
1508  { 172, 170 },
1509  { 238, 247 }
1510  }, { /* comp_ref */
1511  50, 126, 123, 221, 226
1512  }, { /* tx32p */
1513  { 3, 136, 37, },
1514  { 5, 52, 13, },
1515  }, { /* tx16p */
1516  { 20, 152, },
1517  { 15, 101, },
1518  }, { /* tx8p */
1519  100, 66
1520  }, { /* skip */
1521  192, 128, 64
1522  }, { /* mv_joint */
1523  32, 64, 96
1524  }, {
1525  { /* mv vertical component */
1526  128, /* sign */
1527  { 224, 144, 192, 168, 192, 176, 192, 198, 198, 245 }, /* class */
1528  216, /* class0 */
1529  { 136, 140, 148, 160, 176, 192, 224, 234, 234, 240}, /* bits */
1530  { /* class0_fp */
1531  { 128, 128, 64 },
1532  { 96, 112, 64 }
1533  },
1534  { 64, 96, 64 }, /* fp */
1535  160, /* class0_hp bit */
1536  128, /* hp */
1537  }, { /* mv horizontal component */
1538  128, /* sign */
1539  { 216, 128, 176, 160, 176, 176, 192, 198, 198, 208 }, /* class */
1540  208, /* class0 */
1541  { 136, 140, 148, 160, 176, 192, 224, 234, 234, 240 }, /* bits */
1542  { /* class0_fp */
1543  { 128, 128, 64 },
1544  { 96, 112, 64 }
1545  },
1546  { 64, 96, 64 }, /* fp */
1547  160, /* class0_hp bit */
1548  128, /* hp */
1549  }
1550  }, { /* partition */
1551  { /* 64x64 -> 32x32 */
1552  { 222, 34, 30 } /* a/l both not split */,
1553  { 72, 16, 44 } /* a split, l not split */,
1554  { 58, 32, 12 } /* l split, a not split */,
1555  { 10, 7, 6 } /* a/l both split */,
1556  }, { /* 32x32 -> 16x16 */
1557  { 177, 58, 59 } /* a/l both not split */,
1558  { 68, 26, 63 } /* a split, l not split */,
1559  { 52, 79, 25 } /* l split, a not split */,
1560  { 17, 14, 12 } /* a/l both split */,
1561  }, { /* 16x16 -> 8x8 */
1562  { 174, 73, 87 } /* a/l both not split */,
1563  { 92, 41, 83 } /* a split, l not split */,
1564  { 82, 99, 50 } /* l split, a not split */,
1565  { 53, 39, 39 } /* a/l both split */,
1566  }, { /* 8x8 -> 4x4 */
1567  { 199, 122, 141 } /* a/l both not split */,
1568  { 147, 63, 159 } /* a split, l not split */,
1569  { 148, 133, 118 } /* l split, a not split */,
1570  { 121, 104, 114 } /* a/l both split */,
1571  }
1572  },
1573 };
1574 
1575 static const uint8_t vp9_default_coef_probs[4][2][2][6][6][3] = {
1576  { /* tx = 4x4 */
1577  { /* block Type 0 */
1578  { /* Intra */
1579  { /* Coeff Band 0 */
1580  { 195, 29, 183 },
1581  { 84, 49, 136 },
1582  { 8, 42, 71 }
1583  }, { /* Coeff Band 1 */
1584  { 31, 107, 169 },
1585  { 35, 99, 159 },
1586  { 17, 82, 140 },
1587  { 8, 66, 114 },
1588  { 2, 44, 76 },
1589  { 1, 19, 32 }
1590  }, { /* Coeff Band 2 */
1591  { 40, 132, 201 },
1592  { 29, 114, 187 },
1593  { 13, 91, 157 },
1594  { 7, 75, 127 },
1595  { 3, 58, 95 },
1596  { 1, 28, 47 }
1597  }, { /* Coeff Band 3 */
1598  { 69, 142, 221 },
1599  { 42, 122, 201 },
1600  { 15, 91, 159 },
1601  { 6, 67, 121 },
1602  { 1, 42, 77 },
1603  { 1, 17, 31 }
1604  }, { /* Coeff Band 4 */
1605  { 102, 148, 228 },
1606  { 67, 117, 204 },
1607  { 17, 82, 154 },
1608  { 6, 59, 114 },
1609  { 2, 39, 75 },
1610  { 1, 15, 29 }
1611  }, { /* Coeff Band 5 */
1612  { 156, 57, 233 },
1613  { 119, 57, 212 },
1614  { 58, 48, 163 },
1615  { 29, 40, 124 },
1616  { 12, 30, 81 },
1617  { 3, 12, 31 }
1618  }
1619  }, { /* Inter */
1620  { /* Coeff Band 0 */
1621  { 191, 107, 226 },
1622  { 124, 117, 204 },
1623  { 25, 99, 155 }
1624  }, { /* Coeff Band 1 */
1625  { 29, 148, 210 },
1626  { 37, 126, 194 },
1627  { 8, 93, 157 },
1628  { 2, 68, 118 },
1629  { 1, 39, 69 },
1630  { 1, 17, 33 }
1631  }, { /* Coeff Band 2 */
1632  { 41, 151, 213 },
1633  { 27, 123, 193 },
1634  { 3, 82, 144 },
1635  { 1, 58, 105 },
1636  { 1, 32, 60 },
1637  { 1, 13, 26 }
1638  }, { /* Coeff Band 3 */
1639  { 59, 159, 220 },
1640  { 23, 126, 198 },
1641  { 4, 88, 151 },
1642  { 1, 66, 114 },
1643  { 1, 38, 71 },
1644  { 1, 18, 34 }
1645  }, { /* Coeff Band 4 */
1646  { 114, 136, 232 },
1647  { 51, 114, 207 },
1648  { 11, 83, 155 },
1649  { 3, 56, 105 },
1650  { 1, 33, 65 },
1651  { 1, 17, 34 }
1652  }, { /* Coeff Band 5 */
1653  { 149, 65, 234 },
1654  { 121, 57, 215 },
1655  { 61, 49, 166 },
1656  { 28, 36, 114 },
1657  { 12, 25, 76 },
1658  { 3, 16, 42 }
1659  }
1660  }
1661  }, { /* block Type 1 */
1662  { /* Intra */
1663  { /* Coeff Band 0 */
1664  { 214, 49, 220 },
1665  { 132, 63, 188 },
1666  { 42, 65, 137 }
1667  }, { /* Coeff Band 1 */
1668  { 85, 137, 221 },
1669  { 104, 131, 216 },
1670  { 49, 111, 192 },
1671  { 21, 87, 155 },
1672  { 2, 49, 87 },
1673  { 1, 16, 28 }
1674  }, { /* Coeff Band 2 */
1675  { 89, 163, 230 },
1676  { 90, 137, 220 },
1677  { 29, 100, 183 },
1678  { 10, 70, 135 },
1679  { 2, 42, 81 },
1680  { 1, 17, 33 }
1681  }, { /* Coeff Band 3 */
1682  { 108, 167, 237 },
1683  { 55, 133, 222 },
1684  { 15, 97, 179 },
1685  { 4, 72, 135 },
1686  { 1, 45, 85 },
1687  { 1, 19, 38 }
1688  }, { /* Coeff Band 4 */
1689  { 124, 146, 240 },
1690  { 66, 124, 224 },
1691  { 17, 88, 175 },
1692  { 4, 58, 122 },
1693  { 1, 36, 75 },
1694  { 1, 18, 37 }
1695  }, { /* Coeff Band 5 */
1696  { 141, 79, 241 },
1697  { 126, 70, 227 },
1698  { 66, 58, 182 },
1699  { 30, 44, 136 },
1700  { 12, 34, 96 },
1701  { 2, 20, 47 }
1702  }
1703  }, { /* Inter */
1704  { /* Coeff Band 0 */
1705  { 229, 99, 249 },
1706  { 143, 111, 235 },
1707  { 46, 109, 192 }
1708  }, { /* Coeff Band 1 */
1709  { 82, 158, 236 },
1710  { 94, 146, 224 },
1711  { 25, 117, 191 },
1712  { 9, 87, 149 },
1713  { 3, 56, 99 },
1714  { 1, 33, 57 }
1715  }, { /* Coeff Band 2 */
1716  { 83, 167, 237 },
1717  { 68, 145, 222 },
1718  { 10, 103, 177 },
1719  { 2, 72, 131 },
1720  { 1, 41, 79 },
1721  { 1, 20, 39 }
1722  }, { /* Coeff Band 3 */
1723  { 99, 167, 239 },
1724  { 47, 141, 224 },
1725  { 10, 104, 178 },
1726  { 2, 73, 133 },
1727  { 1, 44, 85 },
1728  { 1, 22, 47 }
1729  }, { /* Coeff Band 4 */
1730  { 127, 145, 243 },
1731  { 71, 129, 228 },
1732  { 17, 93, 177 },
1733  { 3, 61, 124 },
1734  { 1, 41, 84 },
1735  { 1, 21, 52 }
1736  }, { /* Coeff Band 5 */
1737  { 157, 78, 244 },
1738  { 140, 72, 231 },
1739  { 69, 58, 184 },
1740  { 31, 44, 137 },
1741  { 14, 38, 105 },
1742  { 8, 23, 61 }
1743  }
1744  }
1745  }
1746  }, { /* tx = 8x8 */
1747  { /* block Type 0 */
1748  { /* Intra */
1749  { /* Coeff Band 0 */
1750  { 125, 34, 187 },
1751  { 52, 41, 133 },
1752  { 6, 31, 56 }
1753  }, { /* Coeff Band 1 */
1754  { 37, 109, 153 },
1755  { 51, 102, 147 },
1756  { 23, 87, 128 },
1757  { 8, 67, 101 },
1758  { 1, 41, 63 },
1759  { 1, 19, 29 }
1760  }, { /* Coeff Band 2 */
1761  { 31, 154, 185 },
1762  { 17, 127, 175 },
1763  { 6, 96, 145 },
1764  { 2, 73, 114 },
1765  { 1, 51, 82 },
1766  { 1, 28, 45 }
1767  }, { /* Coeff Band 3 */
1768  { 23, 163, 200 },
1769  { 10, 131, 185 },
1770  { 2, 93, 148 },
1771  { 1, 67, 111 },
1772  { 1, 41, 69 },
1773  { 1, 14, 24 }
1774  }, { /* Coeff Band 4 */
1775  { 29, 176, 217 },
1776  { 12, 145, 201 },
1777  { 3, 101, 156 },
1778  { 1, 69, 111 },
1779  { 1, 39, 63 },
1780  { 1, 14, 23 }
1781  }, { /* Coeff Band 5 */
1782  { 57, 192, 233 },
1783  { 25, 154, 215 },
1784  { 6, 109, 167 },
1785  { 3, 78, 118 },
1786  { 1, 48, 69 },
1787  { 1, 21, 29 }
1788  }
1789  }, { /* Inter */
1790  { /* Coeff Band 0 */
1791  { 202, 105, 245 },
1792  { 108, 106, 216 },
1793  { 18, 90, 144 }
1794  }, { /* Coeff Band 1 */
1795  { 33, 172, 219 },
1796  { 64, 149, 206 },
1797  { 14, 117, 177 },
1798  { 5, 90, 141 },
1799  { 2, 61, 95 },
1800  { 1, 37, 57 }
1801  }, { /* Coeff Band 2 */
1802  { 33, 179, 220 },
1803  { 11, 140, 198 },
1804  { 1, 89, 148 },
1805  { 1, 60, 104 },
1806  { 1, 33, 57 },
1807  { 1, 12, 21 }
1808  }, { /* Coeff Band 3 */
1809  { 30, 181, 221 },
1810  { 8, 141, 198 },
1811  { 1, 87, 145 },
1812  { 1, 58, 100 },
1813  { 1, 31, 55 },
1814  { 1, 12, 20 }
1815  }, { /* Coeff Band 4 */
1816  { 32, 186, 224 },
1817  { 7, 142, 198 },
1818  { 1, 86, 143 },
1819  { 1, 58, 100 },
1820  { 1, 31, 55 },
1821  { 1, 12, 22 }
1822  }, { /* Coeff Band 5 */
1823  { 57, 192, 227 },
1824  { 20, 143, 204 },
1825  { 3, 96, 154 },
1826  { 1, 68, 112 },
1827  { 1, 42, 69 },
1828  { 1, 19, 32 }
1829  }
1830  }
1831  }, { /* block Type 1 */
1832  { /* Intra */
1833  { /* Coeff Band 0 */
1834  { 212, 35, 215 },
1835  { 113, 47, 169 },
1836  { 29, 48, 105 }
1837  }, { /* Coeff Band 1 */
1838  { 74, 129, 203 },
1839  { 106, 120, 203 },
1840  { 49, 107, 178 },
1841  { 19, 84, 144 },
1842  { 4, 50, 84 },
1843  { 1, 15, 25 }
1844  }, { /* Coeff Band 2 */
1845  { 71, 172, 217 },
1846  { 44, 141, 209 },
1847  { 15, 102, 173 },
1848  { 6, 76, 133 },
1849  { 2, 51, 89 },
1850  { 1, 24, 42 }
1851  }, { /* Coeff Band 3 */
1852  { 64, 185, 231 },
1853  { 31, 148, 216 },
1854  { 8, 103, 175 },
1855  { 3, 74, 131 },
1856  { 1, 46, 81 },
1857  { 1, 18, 30 }
1858  }, { /* Coeff Band 4 */
1859  { 65, 196, 235 },
1860  { 25, 157, 221 },
1861  { 5, 105, 174 },
1862  { 1, 67, 120 },
1863  { 1, 38, 69 },
1864  { 1, 15, 30 }
1865  }, { /* Coeff Band 5 */
1866  { 65, 204, 238 },
1867  { 30, 156, 224 },
1868  { 7, 107, 177 },
1869  { 2, 70, 124 },
1870  { 1, 42, 73 },
1871  { 1, 18, 34 }
1872  }
1873  }, { /* Inter */
1874  { /* Coeff Band 0 */
1875  { 225, 86, 251 },
1876  { 144, 104, 235 },
1877  { 42, 99, 181 }
1878  }, { /* Coeff Band 1 */
1879  { 85, 175, 239 },
1880  { 112, 165, 229 },
1881  { 29, 136, 200 },
1882  { 12, 103, 162 },
1883  { 6, 77, 123 },
1884  { 2, 53, 84 }
1885  }, { /* Coeff Band 2 */
1886  { 75, 183, 239 },
1887  { 30, 155, 221 },
1888  { 3, 106, 171 },
1889  { 1, 74, 128 },
1890  { 1, 44, 76 },
1891  { 1, 17, 28 }
1892  }, { /* Coeff Band 3 */
1893  { 73, 185, 240 },
1894  { 27, 159, 222 },
1895  { 2, 107, 172 },
1896  { 1, 75, 127 },
1897  { 1, 42, 73 },
1898  { 1, 17, 29 }
1899  }, { /* Coeff Band 4 */
1900  { 62, 190, 238 },
1901  { 21, 159, 222 },
1902  { 2, 107, 172 },
1903  { 1, 72, 122 },
1904  { 1, 40, 71 },
1905  { 1, 18, 32 }
1906  }, { /* Coeff Band 5 */
1907  { 61, 199, 240 },
1908  { 27, 161, 226 },
1909  { 4, 113, 180 },
1910  { 1, 76, 129 },
1911  { 1, 46, 80 },
1912  { 1, 23, 41 }
1913  }
1914  }
1915  }
1916  }, { /* tx = 16x16 */
1917  { /* block Type 0 */
1918  { /* Intra */
1919  { /* Coeff Band 0 */
1920  { 7, 27, 153 },
1921  { 5, 30, 95 },
1922  { 1, 16, 30 }
1923  }, { /* Coeff Band 1 */
1924  { 50, 75, 127 },
1925  { 57, 75, 124 },
1926  { 27, 67, 108 },
1927  { 10, 54, 86 },
1928  { 1, 33, 52 },
1929  { 1, 12, 18 }
1930  }, { /* Coeff Band 2 */
1931  { 43, 125, 151 },
1932  { 26, 108, 148 },
1933  { 7, 83, 122 },
1934  { 2, 59, 89 },
1935  { 1, 38, 60 },
1936  { 1, 17, 27 }
1937  }, { /* Coeff Band 3 */
1938  { 23, 144, 163 },
1939  { 13, 112, 154 },
1940  { 2, 75, 117 },
1941  { 1, 50, 81 },
1942  { 1, 31, 51 },
1943  { 1, 14, 23 }
1944  }, { /* Coeff Band 4 */
1945  { 18, 162, 185 },
1946  { 6, 123, 171 },
1947  { 1, 78, 125 },
1948  { 1, 51, 86 },
1949  { 1, 31, 54 },
1950  { 1, 14, 23 }
1951  }, { /* Coeff Band 5 */
1952  { 15, 199, 227 },
1953  { 3, 150, 204 },
1954  { 1, 91, 146 },
1955  { 1, 55, 95 },
1956  { 1, 30, 53 },
1957  { 1, 11, 20 }
1958  }
1959  }, { /* Inter */
1960  { /* Coeff Band 0 */
1961  { 19, 55, 240 },
1962  { 19, 59, 196 },
1963  { 3, 52, 105 }
1964  }, { /* Coeff Band 1 */
1965  { 41, 166, 207 },
1966  { 104, 153, 199 },
1967  { 31, 123, 181 },
1968  { 14, 101, 152 },
1969  { 5, 72, 106 },
1970  { 1, 36, 52 }
1971  }, { /* Coeff Band 2 */
1972  { 35, 176, 211 },
1973  { 12, 131, 190 },
1974  { 2, 88, 144 },
1975  { 1, 60, 101 },
1976  { 1, 36, 60 },
1977  { 1, 16, 28 }
1978  }, { /* Coeff Band 3 */
1979  { 28, 183, 213 },
1980  { 8, 134, 191 },
1981  { 1, 86, 142 },
1982  { 1, 56, 96 },
1983  { 1, 30, 53 },
1984  { 1, 12, 20 }
1985  }, { /* Coeff Band 4 */
1986  { 20, 190, 215 },
1987  { 4, 135, 192 },
1988  { 1, 84, 139 },
1989  { 1, 53, 91 },
1990  { 1, 28, 49 },
1991  { 1, 11, 20 }
1992  }, { /* Coeff Band 5 */
1993  { 13, 196, 216 },
1994  { 2, 137, 192 },
1995  { 1, 86, 143 },
1996  { 1, 57, 99 },
1997  { 1, 32, 56 },
1998  { 1, 13, 24 }
1999  }
2000  }
2001  }, { /* block Type 1 */
2002  { /* Intra */
2003  { /* Coeff Band 0 */
2004  { 211, 29, 217 },
2005  { 96, 47, 156 },
2006  { 22, 43, 87 }
2007  }, { /* Coeff Band 1 */
2008  { 78, 120, 193 },
2009  { 111, 116, 186 },
2010  { 46, 102, 164 },
2011  { 15, 80, 128 },
2012  { 2, 49, 76 },
2013  { 1, 18, 28 }
2014  }, { /* Coeff Band 2 */
2015  { 71, 161, 203 },
2016  { 42, 132, 192 },
2017  { 10, 98, 150 },
2018  { 3, 69, 109 },
2019  { 1, 44, 70 },
2020  { 1, 18, 29 }
2021  }, { /* Coeff Band 3 */
2022  { 57, 186, 211 },
2023  { 30, 140, 196 },
2024  { 4, 93, 146 },
2025  { 1, 62, 102 },
2026  { 1, 38, 65 },
2027  { 1, 16, 27 }
2028  }, { /* Coeff Band 4 */
2029  { 47, 199, 217 },
2030  { 14, 145, 196 },
2031  { 1, 88, 142 },
2032  { 1, 57, 98 },
2033  { 1, 36, 62 },
2034  { 1, 15, 26 }
2035  }, { /* Coeff Band 5 */
2036  { 26, 219, 229 },
2037  { 5, 155, 207 },
2038  { 1, 94, 151 },
2039  { 1, 60, 104 },
2040  { 1, 36, 62 },
2041  { 1, 16, 28 }
2042  }
2043  }, { /* Inter */
2044  { /* Coeff Band 0 */
2045  { 233, 29, 248 },
2046  { 146, 47, 220 },
2047  { 43, 52, 140 }
2048  }, { /* Coeff Band 1 */
2049  { 100, 163, 232 },
2050  { 179, 161, 222 },
2051  { 63, 142, 204 },
2052  { 37, 113, 174 },
2053  { 26, 89, 137 },
2054  { 18, 68, 97 }
2055  }, { /* Coeff Band 2 */
2056  { 85, 181, 230 },
2057  { 32, 146, 209 },
2058  { 7, 100, 164 },
2059  { 3, 71, 121 },
2060  { 1, 45, 77 },
2061  { 1, 18, 30 }
2062  }, { /* Coeff Band 3 */
2063  { 65, 187, 230 },
2064  { 20, 148, 207 },
2065  { 2, 97, 159 },
2066  { 1, 68, 116 },
2067  { 1, 40, 70 },
2068  { 1, 14, 29 }
2069  }, { /* Coeff Band 4 */
2070  { 40, 194, 227 },
2071  { 8, 147, 204 },
2072  { 1, 94, 155 },
2073  { 1, 65, 112 },
2074  { 1, 39, 66 },
2075  { 1, 14, 26 }
2076  }, { /* Coeff Band 5 */
2077  { 16, 208, 228 },
2078  { 3, 151, 207 },
2079  { 1, 98, 160 },
2080  { 1, 67, 117 },
2081  { 1, 41, 74 },
2082  { 1, 17, 31 }
2083  }
2084  }
2085  }
2086  }, { /* tx = 32x32 */
2087  { /* block Type 0 */
2088  { /* Intra */
2089  { /* Coeff Band 0 */
2090  { 17, 38, 140 },
2091  { 7, 34, 80 },
2092  { 1, 17, 29 }
2093  }, { /* Coeff Band 1 */
2094  { 37, 75, 128 },
2095  { 41, 76, 128 },
2096  { 26, 66, 116 },
2097  { 12, 52, 94 },
2098  { 2, 32, 55 },
2099  { 1, 10, 16 }
2100  }, { /* Coeff Band 2 */
2101  { 50, 127, 154 },
2102  { 37, 109, 152 },
2103  { 16, 82, 121 },
2104  { 5, 59, 85 },
2105  { 1, 35, 54 },
2106  { 1, 13, 20 }
2107  }, { /* Coeff Band 3 */
2108  { 40, 142, 167 },
2109  { 17, 110, 157 },
2110  { 2, 71, 112 },
2111  { 1, 44, 72 },
2112  { 1, 27, 45 },
2113  { 1, 11, 17 }
2114  }, { /* Coeff Band 4 */
2115  { 30, 175, 188 },
2116  { 9, 124, 169 },
2117  { 1, 74, 116 },
2118  { 1, 48, 78 },
2119  { 1, 30, 49 },
2120  { 1, 11, 18 }
2121  }, { /* Coeff Band 5 */
2122  { 10, 222, 223 },
2123  { 2, 150, 194 },
2124  { 1, 83, 128 },
2125  { 1, 48, 79 },
2126  { 1, 27, 45 },
2127  { 1, 11, 17 }
2128  }
2129  }, { /* Inter */
2130  { /* Coeff Band 0 */
2131  { 36, 41, 235 },
2132  { 29, 36, 193 },
2133  { 10, 27, 111 }
2134  }, { /* Coeff Band 1 */
2135  { 85, 165, 222 },
2136  { 177, 162, 215 },
2137  { 110, 135, 195 },
2138  { 57, 113, 168 },
2139  { 23, 83, 120 },
2140  { 10, 49, 61 }
2141  }, { /* Coeff Band 2 */
2142  { 85, 190, 223 },
2143  { 36, 139, 200 },
2144  { 5, 90, 146 },
2145  { 1, 60, 103 },
2146  { 1, 38, 65 },
2147  { 1, 18, 30 }
2148  }, { /* Coeff Band 3 */
2149  { 72, 202, 223 },
2150  { 23, 141, 199 },
2151  { 2, 86, 140 },
2152  { 1, 56, 97 },
2153  { 1, 36, 61 },
2154  { 1, 16, 27 }
2155  }, { /* Coeff Band 4 */
2156  { 55, 218, 225 },
2157  { 13, 145, 200 },
2158  { 1, 86, 141 },
2159  { 1, 57, 99 },
2160  { 1, 35, 61 },
2161  { 1, 13, 22 }
2162  }, { /* Coeff Band 5 */
2163  { 15, 235, 212 },
2164  { 1, 132, 184 },
2165  { 1, 84, 139 },
2166  { 1, 57, 97 },
2167  { 1, 34, 56 },
2168  { 1, 14, 23 }
2169  }
2170  }
2171  }, { /* block Type 1 */
2172  { /* Intra */
2173  { /* Coeff Band 0 */
2174  { 181, 21, 201 },
2175  { 61, 37, 123 },
2176  { 10, 38, 71 }
2177  }, { /* Coeff Band 1 */
2178  { 47, 106, 172 },
2179  { 95, 104, 173 },
2180  { 42, 93, 159 },
2181  { 18, 77, 131 },
2182  { 4, 50, 81 },
2183  { 1, 17, 23 }
2184  }, { /* Coeff Band 2 */
2185  { 62, 147, 199 },
2186  { 44, 130, 189 },
2187  { 28, 102, 154 },
2188  { 18, 75, 115 },
2189  { 2, 44, 65 },
2190  { 1, 12, 19 }
2191  }, { /* Coeff Band 3 */
2192  { 55, 153, 210 },
2193  { 24, 130, 194 },
2194  { 3, 93, 146 },
2195  { 1, 61, 97 },
2196  { 1, 31, 50 },
2197  { 1, 10, 16 }
2198  }, { /* Coeff Band 4 */
2199  { 49, 186, 223 },
2200  { 17, 148, 204 },
2201  { 1, 96, 142 },
2202  { 1, 53, 83 },
2203  { 1, 26, 44 },
2204  { 1, 11, 17 }
2205  }, { /* Coeff Band 5 */
2206  { 13, 217, 212 },
2207  { 2, 136, 180 },
2208  { 1, 78, 124 },
2209  { 1, 50, 83 },
2210  { 1, 29, 49 },
2211  { 1, 14, 23 }
2212  }
2213  }, { /* Inter */
2214  { /* Coeff Band 0 */
2215  { 197, 13, 247 },
2216  { 82, 17, 222 },
2217  { 25, 17, 162 }
2218  }, { /* Coeff Band 1 */
2219  { 126, 186, 247 },
2220  { 234, 191, 243 },
2221  { 176, 177, 234 },
2222  { 104, 158, 220 },
2223  { 66, 128, 186 },
2224  { 55, 90, 137 }
2225  }, { /* Coeff Band 2 */
2226  { 111, 197, 242 },
2227  { 46, 158, 219 },
2228  { 9, 104, 171 },
2229  { 2, 65, 125 },
2230  { 1, 44, 80 },
2231  { 1, 17, 91 }
2232  }, { /* Coeff Band 3 */
2233  { 104, 208, 245 },
2234  { 39, 168, 224 },
2235  { 3, 109, 162 },
2236  { 1, 79, 124 },
2237  { 1, 50, 102 },
2238  { 1, 43, 102 }
2239  }, { /* Coeff Band 4 */
2240  { 84, 220, 246 },
2241  { 31, 177, 231 },
2242  { 2, 115, 180 },
2243  { 1, 79, 134 },
2244  { 1, 55, 77 },
2245  { 1, 60, 79 }
2246  }, { /* Coeff Band 5 */
2247  { 43, 243, 240 },
2248  { 8, 180, 217 },
2249  { 1, 115, 166 },
2250  { 1, 84, 121 },
2251  { 1, 51, 67 },
2252  { 1, 16, 6 }
2253  }
2254  }
2255  }
2256  }
2257 };
2258 
2259 enum MVJoint {
2264 };
2265 
2266 static const int8_t vp9_mv_joint_tree[3][2] = {
2267  { -MV_JOINT_ZERO, 1 }, // '0'
2268  { -MV_JOINT_H, 2 }, // '10'
2269  { -MV_JOINT_V, -MV_JOINT_HV }, // '11x'
2270 };
2271 
2272 static const int8_t vp9_mv_class_tree[10][2] = {
2273  { -0, 1 }, // '0'
2274  { -1, 2 }, // '10'
2275  { 3, 4 },
2276  { -2, -3 }, // '110x'
2277  { 5, 6 },
2278  { -4, -5 }, // '1110x'
2279  { -6, 7 }, // '11110'
2280  { 8, 9 },
2281  { -7, -8 }, // '111110x'
2282  { -9, -10 }, // '111111x'
2283 };
2284 
2285 static const int8_t vp9_mv_fp_tree[3][2] = {
2286  { -0, 1 }, // '0'
2287  { -1, 2 }, // '10'
2288  { -2, -3 }, // '11x'
2289 };
2290 
2291 #endif /* AVCODEC_VP9DATA_H */
BlockPartition
Definition: vp9data.h:29
Definition: vp9.h:47
InterPredMode
Definition: vp9data.h:215
static const int16_t vp9_col_scan_4x4_nb[16][2]
Definition: vp9data.h:634
static const int8_t vp9_segmentation_tree[7][2]
Definition: vp9data.h:66
static const int16_t vp9_default_scan_32x32[1024]
Definition: vp9data.h:573
static const uint8_t vp9_model_pareto8[256][8]
Definition: vp9data.h:1184
static const uint8_t vp9_default_kf_ymode_probs[10][10][9]
Definition: vp9data.h:88
static const int8_t vp9_mv_fp_tree[3][2]
Definition: vp9data.h:2285
static const int8_t vp9_intramode_tree[9][2]
Definition: vp9data.h:76
static const uint8_t vp9_default_kf_uvmode_probs[10][9]
Definition: vp9data.h:202
static const int16_t vp9_row_scan_16x16_nb[256][2]
Definition: vp9data.h:839
uint8_t class0_hp
Definition: vp9data.h:1464
static const int16_t vp9_col_scan_16x16[256]
Definition: vp9data.h:535
uint8_t bits
Definition: crc.c:295
uint8_t
TxfmType
Definition: vp9.h:37
static const int16_t vp9_row_scan_4x4_nb[16][2]
Definition: vp9data.h:641
Definition: vp9.h:46
static const int16_t vp9_row_scan_8x8[64]
Definition: vp9data.h:505
static const int16_t vp9_ac_qlookup[3][256]
Definition: vp9data.h:342
static const uint8_t vp9_default_coef_probs[4][2][2][6][6][3]
Definition: vp9data.h:1575
static const int16_t vp9_default_scan_8x8_nb[64][2]
Definition: vp9data.h:648
Definition: vp9.h:38
static const int16_t vp9_col_scan_8x8_nb[64][2]
Definition: vp9data.h:667
static const int16_t vp9_default_scan_8x8[64]
Definition: vp9data.h:483
static const int16_t vp9_default_scan_4x4[16]
Definition: vp9data.h:462
static const int8_t vp9_mv_class_tree[10][2]
Definition: vp9data.h:2272
Definition: vp9.h:39
static enum FilterMode vp9_filter_lut[3]
Definition: vp9data.h:233
Definition: vp9.h:41
static enum TxfmType vp9_intra_txfm_type[14]
Definition: vp9data.h:445
uint8_t hp
Definition: vp9data.h:1465
static const int16_t vp9_default_scan_32x32_nb[1024][2]
Definition: vp9data.h:906
static const int16_t vp9_row_scan_8x8_nb[64][2]
Definition: vp9data.h:686
static const int16_t vp9_default_scan_4x4_nb[16][2]
Definition: vp9data.h:627
static const int8_t vp9_inter_mode_tree[3][2]
Definition: vp9data.h:222
static const int16_t vp9_row_scan_4x4[16]
Definition: vp9data.h:476
static const int16_t vp9_col_scan_4x4[16]
Definition: vp9data.h:469
uint8_t sign
Definition: vp9data.h:1458
FilterMode
Definition: vp9.h:64
static const prob_context vp9_default_probs
Definition: vp9data.h:1470
Definition: vp9data.h:219
#define fp
Definition: regdef.h:44
static const int16_t *const vp9_scans[5][4]
Definition: vp9data.h:608
static const int16_t vp9_col_scan_8x8[64]
Definition: vp9data.h:494
static const int8_t vp9_filter_tree[2][2]
Definition: vp9data.h:228
static const int16_t vp9_default_scan_16x16_nb[256][2]
Definition: vp9data.h:705
static const int16_t vp9_col_scan_16x16_nb[256][2]
Definition: vp9data.h:772
Definition: vp9.h:48
MVJoint
Definition: vp9data.h:2259
static void filter(MpegAudioContext *s, int ch, const short *samples, int incr)
uint8_t class0
Definition: vp9data.h:1460
static const uint8_t vp9_default_kf_partition_probs[4][4][3]
Definition: vp9data.h:42
static const int16_t vp9_dc_qlookup[3][256]
Definition: vp9data.h:239
static const int8_t vp9_mv_joint_tree[3][2]
Definition: vp9data.h:2266
static const int16_t vp9_row_scan_16x16[256]
Definition: vp9data.h:554
static const int16_t(*const [5][4] vp9_scans_nb)[2]
Definition: vp9data.h:1165
static void comp(unsigned char *dst, int dst_stride, unsigned char *src, int src_stride, int add)
Definition: eamad.c:83
Definition: vp9.h:40
static const int16_t vp9_default_scan_16x16[256]
Definition: vp9data.h:516
static const int8_t vp9_partition_tree[3][2]
Definition: vp9data.h:36