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