-
Notifications
You must be signed in to change notification settings - Fork 1
/
edge264_unit_tests.c
263 lines (246 loc) · 72.1 KB
/
edge264_unit_tests.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
/**
* This file contains a few independent programs that were used to validate
* decoding routines. Don't expect to compile it directly since the definitions
* may have changed since. However the code may be salvaged and repurposed.
*/
// Remains from precomputed 16-bit unit tests
#define test(str, ...) intra_test(4, 4, 0, 1, str, #str , (uint16_t[]){__VA_ARGS__})
test(VERTICAL_4x4_16_BIT, 16322, 16326, 16330, 16334, 16322, 16326, 16330, 16334, 16322, 16326, 16330, 16334, 16322, 16326, 16330, 16334);
test(HORIZONTAL_4x4_16_BIT, 16314, 16314, 16314, 16314, 16310, 16310, 16310, 16310, 16306, 16306, 16306, 16306, 16302, 16302, 16302, 16302);
test(DC_4x4_16_BIT, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318);
test(DC_4x4_A_16_BIT, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328, 16328);
test(DC_4x4_B_16_BIT, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308);
test(DC_4x4_AB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(DIAGONAL_DOWN_LEFT_4x4_16_BIT, 16326, 16330, 16334, 16338, 16330, 16334, 16338, 16342, 16334, 16338, 16342, 16346, 16338, 16342, 16346, 16349);
test(DIAGONAL_DOWN_LEFT_4x4_C_16_BIT, 16326, 16330, 16333, 16334, 16330, 16333, 16334, 16334, 16333, 16334, 16334, 16334, 16334, 16334, 16334, 16334);
test(DIAGONAL_DOWN_RIGHT_4x4_16_BIT, 16318, 16322, 16326, 16330, 16314, 16318, 16322, 16326, 16310, 16314, 16318, 16322, 16306, 16310, 16314, 16318);
test(VERTICAL_RIGHT_4x4_16_BIT, 16320, 16324, 16328, 16332, 16318, 16322, 16326, 16330, 16314, 16320, 16324, 16328, 16310, 16318, 16322, 16326);
test(HORIZONTAL_DOWN_4x4_16_BIT, 16316, 16318, 16322, 16326, 16312, 16314, 16316, 16318, 16308, 16310, 16312, 16314, 16304, 16306, 16308, 16310);
test(VERTICAL_LEFT_4x4_16_BIT, 16324, 16328, 16332, 16336, 16326, 16330, 16334, 16338, 16328, 16332, 16336, 16340, 16330, 16334, 16338, 16342);
test(VERTICAL_LEFT_4x4_C_16_BIT, 16324, 16328, 16332, 16334, 16326, 16330, 16333, 16334, 16328, 16332, 16334, 16334, 16330, 16333, 16334, 16334);
test(HORIZONTAL_UP_4x4_16_BIT, 16312, 16310, 16308, 16306, 16308, 16306, 16304, 16303, 16304, 16303, 16302, 16302, 16302, 16302, 16302, 16302);
putchar('\n');
#undef test
#define test(str, ...) intra_test(8, 8, 0, 1, str, #str , (uint16_t[]){__VA_ARGS__})
test(VERTICAL_8x8_16_BIT, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350);
test(VERTICAL_8x8_C_16_BIT, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16349);
test(VERTICAL_8x8_D_16_BIT, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16350);
test(VERTICAL_8x8_CD_16_BIT, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16323, 16326, 16330, 16334, 16338, 16342, 16346, 16349);
test(HORIZONTAL_8x8_16_BIT, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287);
test(HORIZONTAL_8x8_D_16_BIT, 16313, 16313, 16313, 16313, 16313, 16313, 16313, 16313, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287);
test(DC_8x8_16_BIT, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318);
test(DC_8x8_C_16_BIT, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318);
test(DC_8x8_D_16_BIT, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318);
test(DC_8x8_CD_16_BIT, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318);
test(DC_8x8_A_16_BIT, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336);
test(DC_8x8_AC_16_BIT, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336);
test(DC_8x8_AD_16_BIT, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336);
test(DC_8x8_ACD_16_BIT, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336, 16336);
test(DC_8x8_B_16_BIT, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300);
test(DC_8x8_BD_16_BIT, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300, 16300);
test(DC_8x8_AB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(DIAGONAL_DOWN_LEFT_8x8_16_BIT, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16380);
test(DIAGONAL_DOWN_LEFT_8x8_C_16_BIT, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16350, 16342, 16346, 16349, 16350, 16350, 16350, 16350, 16350, 16346, 16349, 16350, 16350, 16350, 16350, 16350, 16350, 16349, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350);
test(DIAGONAL_DOWN_LEFT_8x8_D_16_BIT, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16380);
test(DIAGONAL_DOWN_LEFT_8x8_CD_16_BIT, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16350, 16342, 16346, 16349, 16350, 16350, 16350, 16350, 16350, 16346, 16349, 16350, 16350, 16350, 16350, 16350, 16350, 16349, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350, 16350);
test(DIAGONAL_DOWN_RIGHT_8x8_16_BIT, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318);
test(DIAGONAL_DOWN_RIGHT_8x8_C_16_BIT, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318);
test(VERTICAL_RIGHT_8x8_16_BIT, 16320, 16324, 16328, 16332, 16336, 16340, 16344, 16348, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16314, 16320, 16324, 16328, 16332, 16336, 16340, 16344, 16310, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16306, 16314, 16320, 16324, 16328, 16332, 16336, 16340, 16302, 16310, 16318, 16322, 16326, 16330, 16334, 16338, 16298, 16306, 16314, 16320, 16324, 16328, 16332, 16336, 16294, 16302, 16310, 16318, 16322, 16326, 16330, 16334);
test(VERTICAL_RIGHT_8x8_C_16_BIT, 16320, 16324, 16328, 16332, 16336, 16340, 16344, 16348, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16314, 16320, 16324, 16328, 16332, 16336, 16340, 16344, 16310, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16306, 16314, 16320, 16324, 16328, 16332, 16336, 16340, 16302, 16310, 16318, 16322, 16326, 16330, 16334, 16338, 16298, 16306, 16314, 16320, 16324, 16328, 16332, 16336, 16294, 16302, 16310, 16318, 16322, 16326, 16330, 16334);
test(HORIZONTAL_DOWN_8x8_16_BIT, 16316, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16312, 16314, 16316, 16318, 16322, 16326, 16330, 16334, 16308, 16310, 16312, 16314, 16316, 16318, 16322, 16326, 16304, 16306, 16308, 16310, 16312, 16314, 16316, 16318, 16300, 16302, 16304, 16306, 16308, 16310, 16312, 16314, 16296, 16298, 16300, 16302, 16304, 16306, 16308, 16310, 16292, 16294, 16296, 16298, 16300, 16302, 16304, 16306, 16289, 16290, 16292, 16294, 16296, 16298, 16300, 16302);
test(VERTICAL_LEFT_8x8_16_BIT, 16324, 16328, 16332, 16336, 16340, 16344, 16348, 16352, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16328, 16332, 16336, 16340, 16344, 16348, 16352, 16356, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16332, 16336, 16340, 16344, 16348, 16352, 16356, 16360, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16336, 16340, 16344, 16348, 16352, 16356, 16360, 16364, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366);
test(VERTICAL_LEFT_8x8_C_16_BIT, 16324, 16328, 16332, 16336, 16340, 16344, 16348, 16350, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16328, 16332, 16336, 16340, 16344, 16348, 16350, 16350, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16332, 16336, 16340, 16344, 16348, 16350, 16350, 16350, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16336, 16340, 16344, 16348, 16350, 16350, 16350, 16350, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16350);
test(VERTICAL_LEFT_8x8_D_16_BIT, 16325, 16328, 16332, 16336, 16340, 16344, 16348, 16352, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16328, 16332, 16336, 16340, 16344, 16348, 16352, 16356, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16332, 16336, 16340, 16344, 16348, 16352, 16356, 16360, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16336, 16340, 16344, 16348, 16352, 16356, 16360, 16364, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366);
test(VERTICAL_LEFT_8x8_CD_16_BIT, 16325, 16328, 16332, 16336, 16340, 16344, 16348, 16350, 16326, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16328, 16332, 16336, 16340, 16344, 16348, 16350, 16350, 16330, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16332, 16336, 16340, 16344, 16348, 16350, 16350, 16350, 16334, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16336, 16340, 16344, 16348, 16350, 16350, 16350, 16350, 16338, 16342, 16346, 16349, 16350, 16350, 16350, 16350);
test(HORIZONTAL_UP_8x8_16_BIT, 16312, 16310, 16308, 16306, 16304, 16302, 16300, 16298, 16308, 16306, 16304, 16302, 16300, 16298, 16296, 16294, 16304, 16302, 16300, 16298, 16296, 16294, 16292, 16290, 16300, 16298, 16296, 16294, 16292, 16290, 16289, 16288, 16296, 16294, 16292, 16290, 16289, 16288, 16287, 16287, 16292, 16290, 16289, 16288, 16287, 16287, 16287, 16287, 16289, 16288, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287, 16287);
putchar('\n');
#undef test
#define test(str, ...) intra_test(16, 16, 1, 1, str, #str , (uint16_t[]){__VA_ARGS__})
test(VERTICAL_16x16_16_BIT, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16382);
test(HORIZONTAL_16x16_16_BIT, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254);
test(DC_16x16_16_BIT, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318, 16318);
test(DC_16x16_A_16_BIT, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352);
test(DC_16x16_B_16_BIT, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284, 16284);
test(DC_16x16_AB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(PLANE_16x16_16_BIT, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16378, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16374, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16370, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16366, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16270, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16266, 16270, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16262, 16266, 16270, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16258, 16262, 16266, 16270, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318);
putchar('\n');
#undef test
#define test(str, ...) intra_test(8, 8, 1, 1, str, #str , (uint16_t[]){__VA_ARGS__})
test(DC_CHROMA_8x8_16_BIT, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318);
test(DC_CHROMA_8x8_Ab_16_BIT, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344);
test(DC_CHROMA_8x8_At_16_BIT, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318);
test(DC_CHROMA_8x8_A_16_BIT, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344);
test(DC_CHROMA_8x8_B_16_BIT, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292);
test(DC_CHROMA_8x8_AbB_16_BIT, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(DC_CHROMA_8x8_AtB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292);
test(DC_CHROMA_8x8_AB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(VERTICAL_CHROMA_8x8_16_BIT, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350);
test(HORIZONTAL_CHROMA_8x8_16_BIT, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286);
test(PLANE_CHROMA_8x8_16_BIT, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318);
putchar('\n');
#undef test
#define test(str, ...) intra_test(8, 16, 1, 1, str, #str , (uint16_t[]){__VA_ARGS__})
ctx->plane_offsets_v[1] = ctx->plane_offsets_v[2];
test(DC_CHROMA_8x16_16_BIT, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302);
test(DC_CHROMA_8x16_Ab_16_BIT, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16318, 16318, 16318, 16318, 16344, 16344, 16344, 16344, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16292, 16292, 16292, 16292, 16318, 16318, 16318, 16318, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344);
test(DC_CHROMA_8x16_At_16_BIT, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16276, 16276, 16276, 16276, 16310, 16310, 16310, 16310, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302, 16260, 16260, 16260, 16260, 16302, 16302, 16302, 16302);
test(DC_CHROMA_8x16_A_16_BIT, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344, 16328, 16328, 16328, 16328, 16344, 16344, 16344, 16344);
test(DC_CHROMA_8x16_B_16_BIT, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260);
test(DC_CHROMA_8x16_AbB_16_BIT, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16308, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 16292, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(DC_CHROMA_8x16_AtB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16276, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260, 16260);
test(DC_CHROMA_8x16_AB_16_BIT, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192);
test(VERTICAL_CHROMA_8x16_16_BIT, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16350);
test(HORIZONTAL_CHROMA_8x16_16_BIT, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16314, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16310, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16306, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16302, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16298, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16294, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16290, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16286, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16282, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16278, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16274, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16270, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16266, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16262, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16258, 16254, 16254, 16254, 16254, 16254, 16254, 16254, 16254);
test(PLANE_CHROMA_8x16_16_BIT, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16346, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16342, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16338, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16334, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16330, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16306, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16302, 16270, 16274, 16278, 16282, 16286, 16290, 16294, 16298, 16266, 16270, 16274, 16278, 16282, 16286, 16290, 16294, 16262, 16266, 16270, 16274, 16278, 16282, 16286, 16290, 16258, 16262, 16266, 16270, 16274, 16278, 16282, 16286);
putchar('\n');
#undef test
// Testing NEON Intra (nov 2024)
static void test_intra4x4_8bit(int mode, const char *name, uint8_t *p, const uint8_t *result) {
test_decode_intra4x4(mode, p, 32, (i16x8){255, 255, 255, 255, 255, 255, 255, 255});
int pass = 1;
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++)
pass &= result[y * 4 + x] == p[y * 32 + x];
}
printf("%s: %s\n", name, pass ? GREEN "PASS" RESET : RED "FAIL" RESET);
if (!pass) {
for (int y = -1; y < 4; y++) {
for (int x = -1; x < 4; x++)
printf("%3d ", p[y * 32 + x]);
putchar('\n');
}
exit(0);
}
}
static void test_intra8x8_8bit(int mode, const char *name, uint8_t *p, const uint8_t *result) {
test_decode_intra8x8(mode, p, 32, (i16x8){255, 255, 255, 255, 255, 255, 255, 255});
int pass = 1;
for (int y = 0; y < 8; y++) {
for (int x = 0; x < 8; x++)
pass &= result[y * 8 + x] == p[y * 32 + x];
}
printf("%s: %s\n", name, pass ? GREEN "PASS" RESET : RED "FAIL" RESET);
if (!pass) {
for (int y = -1; y < 8; y++) {
for (int x = -1; x < 8; x++)
printf("%3d ", p[y * 32 + x]);
putchar('\n');
}
exit(0);
}
}
static void test_intra16x16_8bit(int mode, const char *name, uint8_t *p, const uint8_t *result) {
test_decode_intra16x16(mode, p, 32, (i16x8){255, 255, 255, 255, 255, 255, 255, 255});
int pass = 1;
for (int y = 0; y < 16; y++) {
for (int x = 0; x < 16; x++)
pass &= result[y * 16 + x] == p[y * 32 + x];
}
printf("%s: %s\n", name, pass ? GREEN "PASS" RESET : RED "FAIL" RESET);
if (!pass) {
for (int y = -1; y < 16; y++) {
for (int x = -1; x < 16; x++)
printf("%3d ", p[y * 32 + x]);
putchar('\n');
}
exit(0);
}
}
static void test_intraChroma_8bit(int mode, const char *name, uint8_t *p, const uint8_t *result) {
test_decode_intraChroma(mode, p, 32, (i8x16){255, 255, 255, 255, 255, 255, 255, 255});
int pass = 1;
for (int y = 0; y < 16; y++) {
for (int x = 0; x < 8; x++)
pass &= result[y * 8 + x] == p[y * 32 + x];
}
printf("%s: %s\n", name, pass ? GREEN "PASS" RESET : RED "FAIL" RESET);
if (!pass) {
for (int y = -2; y < 16; y++) {
for (int x = -1; x < 8; x++)
printf("%3d ", p[y * 32 + x]);
putchar('\n');
}
exit(0);
}
}
int main() {
uint8_t *p = malloc(32 * 18) + 80;
for (int x = -1; x < 16; x++) {
p[x - 32] = 194 + x * 4;
p[x - 64] = 198 + x * 4;
}
for (int y = 0; y < 16; y++)
p[y * 32 - 1] = 186 - y * 4;
#define test(str, ...) test_intra4x4_8bit(str, #str , p, (uint8_t[]){__VA_ARGS__})
test(I4x4_V_8, 194, 198, 202, 206, 194, 198, 202, 206, 194, 198, 202, 206, 194, 198, 202, 206);
test(I4x4_H_8, 186, 186, 186, 186, 182, 182, 182, 182, 178, 178, 178, 178, 174, 174, 174, 174);
test(I4x4_DC_8, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190);
test(I4x4_DCA_8, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200);
test(I4x4_DCB_8, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180);
test(I4x4_DCAB_8, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128);
test(I4x4_DDL_8, 198, 202, 206, 210, 202, 206, 210, 214, 206, 210, 214, 218, 210, 214, 218, 221);
test(I4x4_DDLC_8, 198, 202, 205, 206, 202, 205, 206, 206, 205, 206, 206, 206, 206, 206, 206, 206);
test(I4x4_DDR_8, 190, 194, 198, 202, 186, 190, 194, 198, 182, 186, 190, 194, 178, 182, 186, 190);
test(I4x4_VR_8, 192, 196, 200, 204, 190, 194, 198, 202, 186, 192, 196, 200, 182, 190, 194, 198);
test(I4x4_HD_8, 188, 190, 194, 198, 184, 186, 188, 190, 180, 182, 184, 186, 176, 178, 180, 182);
test(I4x4_VL_8, 196, 200, 204, 208, 198, 202, 206, 210, 200, 204, 208, 212, 202, 206, 210, 214);
test(I4x4_VLC_8, 196, 200, 204, 206, 198, 202, 205, 206, 200, 204, 206, 206, 202, 205, 206, 206);
test(I4x4_HU_8, 184, 182, 180, 178, 180, 178, 176, 175, 176, 175, 174, 174, 174, 174, 174, 174);
putchar('\n');
#undef test
#define test(str, ...) test_intra8x8_8bit(str, #str , p, (uint8_t[]){__VA_ARGS__})
test(I8x8_V_8, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222, 194, 198, 202, 206, 210, 214, 218, 222);
test(I8x8_V_C_8, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221, 194, 198, 202, 206, 210, 214, 218, 221);
test(I8x8_V_D_8, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222, 195, 198, 202, 206, 210, 214, 218, 222);
test(I8x8_V_CD_8, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221, 195, 198, 202, 206, 210, 214, 218, 221);
test(I8x8_H_8, 186, 186, 186, 186, 186, 186, 186, 186, 182, 182, 182, 182, 182, 182, 182, 182, 178, 178, 178, 178, 178, 178, 178, 178, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 166, 166, 166, 166, 166, 166, 166, 166, 162, 162, 162, 162, 162, 162, 162, 162, 159, 159, 159, 159, 159, 159, 159, 159);
test(I8x8_H_D_8, 185, 185, 185, 185, 185, 185, 185, 185, 182, 182, 182, 182, 182, 182, 182, 182, 178, 178, 178, 178, 178, 178, 178, 178, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 166, 166, 166, 166, 166, 166, 166, 166, 162, 162, 162, 162, 162, 162, 162, 162, 159, 159, 159, 159, 159, 159, 159, 159);
test(I8x8_DC_8, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190);
test(I8x8_DC_C_8, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190);
test(I8x8_DC_D_8, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190);
test(I8x8_DC_CD_8, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190);
test(I8x8_DC_A_8, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208);
test(I8x8_DC_AC_8, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208);
test(I8x8_DC_AD_8, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208);
test(I8x8_DC_ACD_8, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208);
test(I8x8_DC_B_8, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172);
test(I8x8_DC_BD_8, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172);
test(I8x8_DC_AB_8, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128);
test(I8x8_DDL_8, 198, 202, 206, 210, 214, 218, 222, 226, 202, 206, 210, 214, 218, 222, 226, 230, 206, 210, 214, 218, 222, 226, 230, 234, 210, 214, 218, 222, 226, 230, 234, 238, 214, 218, 222, 226, 230, 234, 238, 242, 218, 222, 226, 230, 234, 238, 242, 246, 222, 226, 230, 234, 238, 242, 246, 250, 226, 230, 234, 238, 242, 246, 250, 252);
test(I8x8_DDL_C_8, 198, 202, 206, 210, 214, 218, 221, 222, 202, 206, 210, 214, 218, 221, 222, 222, 206, 210, 214, 218, 221, 222, 222, 222, 210, 214, 218, 221, 222, 222, 222, 222, 214, 218, 221, 222, 222, 222, 222, 222, 218, 221, 222, 222, 222, 222, 222, 222, 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222);
test(I8x8_DDL_D_8, 198, 202, 206, 210, 214, 218, 222, 226, 202, 206, 210, 214, 218, 222, 226, 230, 206, 210, 214, 218, 222, 226, 230, 234, 210, 214, 218, 222, 226, 230, 234, 238, 214, 218, 222, 226, 230, 234, 238, 242, 218, 222, 226, 230, 234, 238, 242, 246, 222, 226, 230, 234, 238, 242, 246, 250, 226, 230, 234, 238, 242, 246, 250, 252);
test(I8x8_DDL_CD_8, 198, 202, 206, 210, 214, 218, 221, 222, 202, 206, 210, 214, 218, 221, 222, 222, 206, 210, 214, 218, 221, 222, 222, 222, 210, 214, 218, 221, 222, 222, 222, 222, 214, 218, 221, 222, 222, 222, 222, 222, 218, 221, 222, 222, 222, 222, 222, 222, 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222);
test(I8x8_DDR_8, 190, 194, 198, 202, 206, 210, 214, 218, 186, 190, 194, 198, 202, 206, 210, 214, 182, 186, 190, 194, 198, 202, 206, 210, 178, 182, 186, 190, 194, 198, 202, 206, 174, 178, 182, 186, 190, 194, 198, 202, 170, 174, 178, 182, 186, 190, 194, 198, 166, 170, 174, 178, 182, 186, 190, 194, 162, 166, 170, 174, 178, 182, 186, 190);
test(I8x8_DDR_C_8, 190, 194, 198, 202, 206, 210, 214, 218, 186, 190, 194, 198, 202, 206, 210, 214, 182, 186, 190, 194, 198, 202, 206, 210, 178, 182, 186, 190, 194, 198, 202, 206, 174, 178, 182, 186, 190, 194, 198, 202, 170, 174, 178, 182, 186, 190, 194, 198, 166, 170, 174, 178, 182, 186, 190, 194, 162, 166, 170, 174, 178, 182, 186, 190);
test(I8x8_VR_8, 192, 196, 200, 204, 208, 212, 216, 220, 190, 194, 198, 202, 206, 210, 214, 218, 186, 192, 196, 200, 204, 208, 212, 216, 182, 190, 194, 198, 202, 206, 210, 214, 178, 186, 192, 196, 200, 204, 208, 212, 174, 182, 190, 194, 198, 202, 206, 210, 170, 178, 186, 192, 196, 200, 204, 208, 166, 174, 182, 190, 194, 198, 202, 206);
test(I8x8_VR_C_8, 192, 196, 200, 204, 208, 212, 216, 220, 190, 194, 198, 202, 206, 210, 214, 218, 186, 192, 196, 200, 204, 208, 212, 216, 182, 190, 194, 198, 202, 206, 210, 214, 178, 186, 192, 196, 200, 204, 208, 212, 174, 182, 190, 194, 198, 202, 206, 210, 170, 178, 186, 192, 196, 200, 204, 208, 166, 174, 182, 190, 194, 198, 202, 206);
test(I8x8_HD_8, 188, 190, 194, 198, 202, 206, 210, 214, 184, 186, 188, 190, 194, 198, 202, 206, 180, 182, 184, 186, 188, 190, 194, 198, 176, 178, 180, 182, 184, 186, 188, 190, 172, 174, 176, 178, 180, 182, 184, 186, 168, 170, 172, 174, 176, 178, 180, 182, 164, 166, 168, 170, 172, 174, 176, 178, 161, 162, 164, 166, 168, 170, 172, 174);
test(I8x8_VL_8, 196, 200, 204, 208, 212, 216, 220, 224, 198, 202, 206, 210, 214, 218, 222, 226, 200, 204, 208, 212, 216, 220, 224, 228, 202, 206, 210, 214, 218, 222, 226, 230, 204, 208, 212, 216, 220, 224, 228, 232, 206, 210, 214, 218, 222, 226, 230, 234, 208, 212, 216, 220, 224, 228, 232, 236, 210, 214, 218, 222, 226, 230, 234, 238);
test(I8x8_VL_C_8, 196, 200, 204, 208, 212, 216, 220, 222, 198, 202, 206, 210, 214, 218, 221, 222, 200, 204, 208, 212, 216, 220, 222, 222, 202, 206, 210, 214, 218, 221, 222, 222, 204, 208, 212, 216, 220, 222, 222, 222, 206, 210, 214, 218, 221, 222, 222, 222, 208, 212, 216, 220, 222, 222, 222, 222, 210, 214, 218, 221, 222, 222, 222, 222);
test(I8x8_VL_D_8, 197, 200, 204, 208, 212, 216, 220, 224, 198, 202, 206, 210, 214, 218, 222, 226, 200, 204, 208, 212, 216, 220, 224, 228, 202, 206, 210, 214, 218, 222, 226, 230, 204, 208, 212, 216, 220, 224, 228, 232, 206, 210, 214, 218, 222, 226, 230, 234, 208, 212, 216, 220, 224, 228, 232, 236, 210, 214, 218, 222, 226, 230, 234, 238);
test(I8x8_VL_CD_8, 197, 200, 204, 208, 212, 216, 220, 222, 198, 202, 206, 210, 214, 218, 221, 222, 200, 204, 208, 212, 216, 220, 222, 222, 202, 206, 210, 214, 218, 221, 222, 222, 204, 208, 212, 216, 220, 222, 222, 222, 206, 210, 214, 218, 221, 222, 222, 222, 208, 212, 216, 220, 222, 222, 222, 222, 210, 214, 218, 221, 222, 222, 222, 222);
test(I8x8_HU_8, 184, 182, 180, 178, 176, 174, 172, 170, 180, 178, 176, 174, 172, 170, 168, 166, 176, 174, 172, 170, 168, 166, 164, 162, 172, 170, 168, 166, 164, 162, 161, 160, 168, 166, 164, 162, 161, 160, 159, 159, 164, 162, 161, 160, 159, 159, 159, 159, 161, 160, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159);
putchar('\n');
#undef test
#define test(str, ...) test_intra16x16_8bit(str, #str , p, (uint8_t[]){__VA_ARGS__})
test(I16x16_V_8, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 254);
test(I16x16_H_8, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126);
test(I16x16_DC_8, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190);
test(I16x16_DCA_8, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224);
test(I16x16_DCB_8, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156);
test(I16x16_DCAB_8, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128);
test(I16x16_P_8, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 130, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190);
putchar('\n');
#undef test
#define test(str, ...) test_intraChroma_8bit(str, #str , p, (uint8_t[]){__VA_ARGS__})
test(IC8x8_DC_8, 189, 189, 189, 189, 220, 220, 220, 220, 185, 185, 185, 185, 216, 216, 216, 216, 189, 189, 189, 189, 220, 220, 220, 220, 185, 185, 185, 185, 216, 216, 216, 216, 189, 189, 189, 189, 220, 220, 220, 220, 185, 185, 185, 185, 216, 216, 216, 216, 189, 189, 189, 189, 220, 220, 220, 220, 185, 185, 185, 185, 216, 216, 216, 216, 142, 142, 142, 142, 181, 181, 181, 181, 138, 138, 138, 138, 177, 177, 177, 177, 142, 142, 142, 142, 181, 181, 181, 181, 138, 138, 138, 138, 177, 177, 177, 177, 142, 142, 142, 142, 181, 181, 181, 181, 138, 138, 138, 138, 177, 177, 177, 177, 142, 142, 142, 142, 181, 181, 181, 181, 138, 138, 138, 138, 177, 177, 177, 177);
test(IC8x8_DCA_8, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216, 204, 204, 204, 204, 220, 220, 220, 220, 200, 200, 200, 200, 216, 216, 216, 216);
test(IC8x8_DCB_8, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 142, 142, 142, 142, 142, 142, 142, 142, 138, 138, 138, 138, 138, 138, 138, 138, 142, 142, 142, 142, 142, 142, 142, 142, 138, 138, 138, 138, 138, 138, 138, 138, 142, 142, 142, 142, 142, 142, 142, 142, 138, 138, 138, 138, 138, 138, 138, 138, 142, 142, 142, 142, 142, 142, 142, 142, 138, 138, 138, 138, 138, 138, 138, 138);
test(IC8x8_DCAB_8, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128);
test(IC8x8_H_8, 186, 186, 186, 186, 186, 186, 186, 186, 182, 182, 182, 182, 182, 182, 182, 182, 178, 178, 178, 178, 178, 178, 178, 178, 174, 174, 174, 174, 174, 174, 174, 174, 170, 170, 170, 170, 170, 170, 170, 170, 166, 166, 166, 166, 166, 166, 166, 166, 162, 162, 162, 162, 162, 162, 162, 162, 158, 158, 158, 158, 158, 158, 158, 158, 154, 154, 154, 154, 154, 154, 154, 154, 150, 150, 150, 150, 150, 150, 150, 150, 146, 146, 146, 146, 146, 146, 146, 146, 142, 142, 142, 142, 142, 142, 142, 142, 138, 138, 138, 138, 138, 138, 138, 138, 134, 134, 134, 134, 134, 134, 134, 134, 130, 130, 130, 130, 130, 130, 130, 130, 126, 126, 126, 126, 126, 126, 126, 126);
test(IC8x8_V_8, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222, 198, 202, 206, 210, 214, 218, 222, 226, 194, 198, 202, 206, 210, 214, 218, 222);
test(IC8x8_P_8, 190, 194, 198, 202, 206, 210, 214, 218, 186, 190, 194, 198, 202, 206, 210, 214, 182, 186, 190, 194, 198, 202, 206, 210, 178, 182, 186, 190, 194, 198, 202, 206, 174, 178, 182, 186, 190, 194, 198, 202, 170, 174, 178, 182, 186, 190, 194, 198, 166, 170, 174, 178, 182, 186, 190, 194, 162, 166, 170, 174, 178, 182, 186, 190, 158, 162, 166, 170, 174, 178, 182, 186, 154, 158, 162, 166, 170, 174, 178, 182, 150, 154, 158, 162, 166, 170, 174, 178, 146, 150, 154, 158, 162, 166, 170, 174, 142, 146, 150, 154, 158, 162, 166, 170, 138, 142, 146, 150, 154, 158, 162, 166, 134, 138, 142, 146, 150, 154, 158, 162, 130, 134, 138, 142, 146, 150, 154, 158);
putchar('\n');
#undef test
return 0;
}