* UINTX -> uintx_t INTX -> intx_t
[libav.git] / libavcodec / dvdata.h
1 /*
2 * Constants for DV codec
3 * Copyright (c) 2002 Fabrice Bellard.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20 #define NB_DV_VLC 409
21 #define AAUX_OFFSET (80*6 + 80*16*3 + 3)
22
23 static const uint16_t dv_vlc_bits[409] = {
24 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016,
25 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a,
26 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2,
27 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
28 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2,
29 0x01e3, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea,
30 0x01eb, 0x01ec, 0x01ed, 0x01ee, 0x01ef, 0x03e0, 0x03e1, 0x03e2,
31 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x07ce, 0x07cf, 0x07d0, 0x07d1,
32 0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x0fac, 0x0fad, 0x0fae, 0x0faf,
33 0x0fb0, 0x0fb1, 0x0fb2, 0x0fb3, 0x0fb4, 0x0fb5, 0x0fb6, 0x0fb7,
34 0x0fb8, 0x0fb9, 0x0fba, 0x0fbb, 0x0fbc, 0x0fbd, 0x0fbe, 0x0fbf,
35 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
36 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
37 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
38 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
39 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
40 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
41 0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
42 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbd, 0x1fbe, 0x1fbf,
43 0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, 0x7f07,
44 0x7f08, 0x7f09, 0x7f0a, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f,
45 0x7f10, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17,
46 0x7f18, 0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1e, 0x7f1f,
47 0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
48 0x7f28, 0x7f29, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f,
49 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f37,
50 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f,
51 0x7f40, 0x7f41, 0x7f42, 0x7f43, 0x7f44, 0x7f45, 0x7f46, 0x7f47,
52 0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f,
53 0x7f50, 0x7f51, 0x7f52, 0x7f53, 0x7f54, 0x7f55, 0x7f56, 0x7f57,
54 0x7f58, 0x7f59, 0x7f5a, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f5f,
55 0x7f60, 0x7f61, 0x7f62, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67,
56 0x7f68, 0x7f69, 0x7f6a, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6e, 0x7f6f,
57 0x7f70, 0x7f71, 0x7f72, 0x7f73, 0x7f74, 0x7f75, 0x7f76, 0x7f77,
58 0x7f78, 0x7f79, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7e, 0x7f7f,
59 0x7f80, 0x7f81, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87,
60 0x7f88, 0x7f89, 0x7f8a, 0x7f8b, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f,
61 0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f94, 0x7f95, 0x7f96, 0x7f97,
62 0x7f98, 0x7f99, 0x7f9a, 0x7f9b, 0x7f9c, 0x7f9d, 0x7f9e, 0x7f9f,
63 0x7fa0, 0x7fa1, 0x7fa2, 0x7fa3, 0x7fa4, 0x7fa5, 0x7fa6, 0x7fa7,
64 0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7faf,
65 0x7fb0, 0x7fb1, 0x7fb2, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7,
66 0x7fb8, 0x7fb9, 0x7fba, 0x7fbb, 0x7fbc, 0x7fbd, 0x7fbe, 0x7fbf,
67 0x7fc0, 0x7fc1, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc5, 0x7fc6, 0x7fc7,
68 0x7fc8, 0x7fc9, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fcf,
69 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd6, 0x7fd7,
70 0x7fd8, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fdf,
71 0x7fe0, 0x7fe1, 0x7fe2, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7,
72 0x7fe8, 0x7fe9, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fee, 0x7fef,
73 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7,
74 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
75 0x0006,
76 };
77
78 static const uint8_t dv_vlc_len[409] = {
79 2, 3, 4, 4, 4, 5, 5, 5,
80 5, 6, 6, 6, 6, 7, 7, 7,
81 7, 7, 7, 7, 7, 8, 8, 8,
82 8, 8, 8, 8, 8, 8, 8, 8,
83 8, 8, 8, 8, 8, 9, 9, 9,
84 9, 9, 9, 9, 9, 9, 9, 9,
85 9, 9, 9, 9, 9, 10, 10, 10,
86 10, 10, 10, 10, 11, 11, 11, 11,
87 11, 11, 11, 11, 12, 12, 12, 12,
88 12, 12, 12, 12, 12, 12, 12, 12,
89 12, 12, 12, 12, 12, 12, 12, 12,
90 13, 13, 13, 13, 13, 13, 13, 13,
91 13, 13, 13, 13, 13, 13, 13, 13,
92 13, 13, 13, 13, 13, 13, 13, 13,
93 13, 13, 13, 13, 13, 13, 13, 13,
94 13, 13, 13, 13, 13, 13, 13, 13,
95 13, 13, 13, 13, 13, 13, 13, 13,
96 13, 13, 13, 13, 13, 13, 13, 13,
97 13, 13, 13, 13, 13, 13, 13, 13,
98 15, 15, 15, 15, 15, 15, 15, 15,
99 15, 15, 15, 15, 15, 15, 15, 15,
100 15, 15, 15, 15, 15, 15, 15, 15,
101 15, 15, 15, 15, 15, 15, 15, 15,
102 15, 15, 15, 15, 15, 15, 15, 15,
103 15, 15, 15, 15, 15, 15, 15, 15,
104 15, 15, 15, 15, 15, 15, 15, 15,
105 15, 15, 15, 15, 15, 15, 15, 15,
106 15, 15, 15, 15, 15, 15, 15, 15,
107 15, 15, 15, 15, 15, 15, 15, 15,
108 15, 15, 15, 15, 15, 15, 15, 15,
109 15, 15, 15, 15, 15, 15, 15, 15,
110 15, 15, 15, 15, 15, 15, 15, 15,
111 15, 15, 15, 15, 15, 15, 15, 15,
112 15, 15, 15, 15, 15, 15, 15, 15,
113 15, 15, 15, 15, 15, 15, 15, 15,
114 15, 15, 15, 15, 15, 15, 15, 15,
115 15, 15, 15, 15, 15, 15, 15, 15,
116 15, 15, 15, 15, 15, 15, 15, 15,
117 15, 15, 15, 15, 15, 15, 15, 15,
118 15, 15, 15, 15, 15, 15, 15, 15,
119 15, 15, 15, 15, 15, 15, 15, 15,
120 15, 15, 15, 15, 15, 15, 15, 15,
121 15, 15, 15, 15, 15, 15, 15, 15,
122 15, 15, 15, 15, 15, 15, 15, 15,
123 15, 15, 15, 15, 15, 15, 15, 15,
124 15, 15, 15, 15, 15, 15, 15, 15,
125 15, 15, 15, 15, 15, 15, 15, 15,
126 15, 15, 15, 15, 15, 15, 15, 15,
127 15, 15, 15, 15, 15, 15, 15, 15,
128 15, 15, 15, 15, 15, 15, 15, 15,
129 15, 15, 15, 15, 15, 15, 15, 15,
130 4,
131 };
132
133 static const uint8_t dv_vlc_run[409] = {
134 0, 0, 1, 0, 0, 2, 1, 0,
135 0, 3, 4, 0, 0, 5, 6, 2,
136 1, 1, 0, 0, 0, 7, 8, 9,
137 10, 3, 4, 2, 1, 1, 1, 0,
138 0, 0, 0, 0, 0, 11, 12, 13,
139 14, 5, 6, 3, 4, 2, 2, 1,
140 0, 0, 0, 0, 0, 5, 3, 3,
141 2, 1, 1, 1, 0, 1, 6, 4,
142 3, 1, 1, 1, 2, 3, 4, 5,
143 7, 8, 9, 10, 7, 8, 4, 3,
144 2, 2, 2, 2, 2, 1, 1, 1,
145 0, 1, 2, 3, 4, 5, 6, 7,
146 8, 9, 10, 11, 12, 13, 14, 15,
147 16, 17, 18, 19, 20, 21, 22, 23,
148 24, 25, 26, 27, 28, 29, 30, 31,
149 32, 33, 34, 35, 36, 37, 38, 39,
150 40, 41, 42, 43, 44, 45, 46, 47,
151 48, 49, 50, 51, 52, 53, 54, 55,
152 56, 57, 58, 59, 60, 61, 62, 63,
153 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0, 0, 0, 0, 0, 0, 0,
160 0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0, 0, 0, 0, 0, 0,
162 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 0, 0, 0, 0,
164 0, 0, 0, 0, 0, 0, 0, 0,
165 0, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 0,
169 0, 0, 0, 0, 0, 0, 0, 0,
170 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, 0, 0, 0, 0, 0,
174 0, 0, 0, 0, 0, 0, 0, 0,
175 0, 0, 0, 0, 0, 0, 0, 0,
176 0, 0, 0, 0, 0, 0, 0, 0,
177 0, 0, 0, 0, 0, 0, 0, 0,
178 0, 0, 0, 0, 0, 0, 0, 0,
179 0, 0, 0, 0, 0, 0, 0, 0,
180 0, 0, 0, 0, 0, 0, 0, 0,
181 0, 0, 0, 0, 0, 0, 0, 0,
182 0, 0, 0, 0, 0, 0, 0, 0,
183 0, 0, 0, 0, 0, 0, 0, 0,
184 0, 0, 0, 0, 0, 0, 0, 0,
185 0,
186 };
187
188 static const uint8_t dv_vlc_level[409] = {
189 1, 2, 1, 3, 4, 1, 2, 5,
190 6, 1, 1, 7, 8, 1, 1, 2,
191 3, 4, 9, 10, 11, 1, 1, 1,
192 1, 2, 2, 3, 5, 6, 7, 12,
193 13, 14, 15, 16, 17, 1, 1, 1,
194 1, 2, 2, 3, 3, 4, 5, 8,
195 18, 19, 20, 21, 22, 3, 4, 5,
196 6, 9, 10, 11, 0, 0, 3, 4,
197 6, 12, 13, 14, 0, 0, 0, 0,
198 2, 2, 2, 2, 3, 3, 5, 7,
199 7, 8, 9, 10, 11, 15, 16, 17,
200 0, 0, 0, 0, 0, 0, 0, 0,
201 0, 0, 0, 0, 0, 0, 0, 0,
202 0, 0, 0, 0, 0, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0,
204 0, 0, 0, 0, 0, 0, 0, 0,
205 0, 0, 0, 0, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0,
207 0, 0, 0, 0, 0, 0, 0, 0,
208 0, 1, 2, 3, 4, 5, 6, 7,
209 8, 9, 10, 11, 12, 13, 14, 15,
210 16, 17, 18, 19, 20, 21, 22, 23,
211 24, 25, 26, 27, 28, 29, 30, 31,
212 32, 33, 34, 35, 36, 37, 38, 39,
213 40, 41, 42, 43, 44, 45, 46, 47,
214 48, 49, 50, 51, 52, 53, 54, 55,
215 56, 57, 58, 59, 60, 61, 62, 63,
216 64, 65, 66, 67, 68, 69, 70, 71,
217 72, 73, 74, 75, 76, 77, 78, 79,
218 80, 81, 82, 83, 84, 85, 86, 87,
219 88, 89, 90, 91, 92, 93, 94, 95,
220 96, 97, 98, 99, 100, 101, 102, 103,
221 104, 105, 106, 107, 108, 109, 110, 111,
222 112, 113, 114, 115, 116, 117, 118, 119,
223 120, 121, 122, 123, 124, 125, 126, 127,
224 128, 129, 130, 131, 132, 133, 134, 135,
225 136, 137, 138, 139, 140, 141, 142, 143,
226 144, 145, 146, 147, 148, 149, 150, 151,
227 152, 153, 154, 155, 156, 157, 158, 159,
228 160, 161, 162, 163, 164, 165, 166, 167,
229 168, 169, 170, 171, 172, 173, 174, 175,
230 176, 177, 178, 179, 180, 181, 182, 183,
231 184, 185, 186, 187, 188, 189, 190, 191,
232 192, 193, 194, 195, 196, 197, 198, 199,
233 200, 201, 202, 203, 204, 205, 206, 207,
234 208, 209, 210, 211, 212, 213, 214, 215,
235 216, 217, 218, 219, 220, 221, 222, 223,
236 224, 225, 226, 227, 228, 229, 230, 231,
237 232, 233, 234, 235, 236, 237, 238, 239,
238 240, 241, 242, 243, 244, 245, 246, 247,
239 248, 249, 250, 251, 252, 253, 254, 255,
240 0,
241 };
242
243 /* Specific zigzag scan for 248 idct. NOTE that unlike the
244 specification, we interleave the fields */
245 static const uint8_t dv_248_zigzag[64] = {
246 0, 8, 1, 9, 16, 24, 2, 10,
247 17, 25, 32, 40, 48, 56, 33, 41,
248 18, 26, 3, 11, 4, 12, 19, 27,
249 34, 42, 49, 57, 50, 58, 35, 43,
250 20, 28, 5, 13, 6, 14, 21, 29,
251 36, 44, 51, 59, 52, 60, 37, 45,
252 22, 30, 7, 15, 23, 31, 38, 46,
253 53, 61, 54, 62, 39, 47, 55, 63,
254 };
255
256 /* unquant tables (not used directly) */
257 static const uint8_t dv_88_areas[64] = {
258 0,0,0,1,1,1,2,2,
259 0,0,1,1,1,2,2,2,
260 0,1,1,1,2,2,2,3,
261 1,1,1,2,2,2,3,3,
262 1,1,2,2,2,3,3,3,
263 1,2,2,2,3,3,3,3,
264 2,2,2,3,3,3,3,3,
265 2,2,3,3,3,3,3,3,
266 };
267
268 static const uint8_t dv_248_areas[64] = {
269 0,0,1,1,1,2,2,3,
270 0,0,1,1,2,2,2,3,
271 0,1,1,2,2,2,3,3,
272 0,1,1,2,2,2,3,3,
273 1,1,2,2,2,3,3,3,
274 1,1,2,2,2,3,3,3,
275 1,2,2,2,3,3,3,3,
276 1,2,2,3,3,3,3,3,
277 };
278
279 static uint8_t dv_quant_shifts[22][4] = {
280 { 3,3,4,4 },
281 { 3,3,4,4 },
282 { 2,3,3,4 },
283 { 2,3,3,4 },
284 { 2,2,3,3 },
285 { 2,2,3,3 },
286 { 1,2,2,3 },
287 { 1,2,2,3 },
288 { 1,1,2,2 },
289 { 1,1,2,2 },
290 { 0,1,1,2 },
291 { 0,1,1,2 },
292 { 0,0,1,1 },
293 { 0,0,1,1 },
294 { 0,0,0,1 },
295 { 0,0,0,0 },
296 { 0,0,0,0 },
297 { 0,0,0,0 },
298 { 0,0,0,0 },
299 { 0,0,0,0 },
300 { 0,0,0,0 },
301 { 0,0,0,0 },
302 };
303
304 static const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 };
305
306 /* NOTE: I prefer hardcoding the positionning of dv blocks, it is
307 simpler :-) */
308
309 static const uint16_t dv_place_420[1620] = {
310 0x0c24, 0x2412, 0x3036, 0x0000, 0x1848,
311 0x0e24, 0x2612, 0x3236, 0x0200, 0x1a48,
312 0x1024, 0x2812, 0x3436, 0x0400, 0x1c48,
313 0x1026, 0x2814, 0x3438, 0x0402, 0x1c4a,
314 0x0e26, 0x2614, 0x3238, 0x0202, 0x1a4a,
315 0x0c26, 0x2414, 0x3038, 0x0002, 0x184a,
316 0x0c28, 0x2416, 0x303a, 0x0004, 0x184c,
317 0x0e28, 0x2616, 0x323a, 0x0204, 0x1a4c,
318 0x1028, 0x2816, 0x343a, 0x0404, 0x1c4c,
319 0x102a, 0x2818, 0x343c, 0x0406, 0x1c4e,
320 0x0e2a, 0x2618, 0x323c, 0x0206, 0x1a4e,
321 0x0c2a, 0x2418, 0x303c, 0x0006, 0x184e,
322 0x0c2c, 0x241a, 0x303e, 0x0008, 0x1850,
323 0x0e2c, 0x261a, 0x323e, 0x0208, 0x1a50,
324 0x102c, 0x281a, 0x343e, 0x0408, 0x1c50,
325 0x102e, 0x281c, 0x3440, 0x040a, 0x1c52,
326 0x0e2e, 0x261c, 0x3240, 0x020a, 0x1a52,
327 0x0c2e, 0x241c, 0x3040, 0x000a, 0x1852,
328 0x0c30, 0x241e, 0x3042, 0x000c, 0x1854,
329 0x0e30, 0x261e, 0x3242, 0x020c, 0x1a54,
330 0x1030, 0x281e, 0x3442, 0x040c, 0x1c54,
331 0x1032, 0x2820, 0x3444, 0x040e, 0x1c56,
332 0x0e32, 0x2620, 0x3244, 0x020e, 0x1a56,
333 0x0c32, 0x2420, 0x3044, 0x000e, 0x1856,
334 0x0c34, 0x2422, 0x3046, 0x0010, 0x1858,
335 0x0e34, 0x2622, 0x3246, 0x0210, 0x1a58,
336 0x1034, 0x2822, 0x3446, 0x0410, 0x1c58,
337 0x1224, 0x2a12, 0x3636, 0x0600, 0x1e48,
338 0x1424, 0x2c12, 0x3836, 0x0800, 0x2048,
339 0x1624, 0x2e12, 0x3a36, 0x0a00, 0x2248,
340 0x1626, 0x2e14, 0x3a38, 0x0a02, 0x224a,
341 0x1426, 0x2c14, 0x3838, 0x0802, 0x204a,
342 0x1226, 0x2a14, 0x3638, 0x0602, 0x1e4a,
343 0x1228, 0x2a16, 0x363a, 0x0604, 0x1e4c,
344 0x1428, 0x2c16, 0x383a, 0x0804, 0x204c,
345 0x1628, 0x2e16, 0x3a3a, 0x0a04, 0x224c,
346 0x162a, 0x2e18, 0x3a3c, 0x0a06, 0x224e,
347 0x142a, 0x2c18, 0x383c, 0x0806, 0x204e,
348 0x122a, 0x2a18, 0x363c, 0x0606, 0x1e4e,
349 0x122c, 0x2a1a, 0x363e, 0x0608, 0x1e50,
350 0x142c, 0x2c1a, 0x383e, 0x0808, 0x2050,
351 0x162c, 0x2e1a, 0x3a3e, 0x0a08, 0x2250,
352 0x162e, 0x2e1c, 0x3a40, 0x0a0a, 0x2252,
353 0x142e, 0x2c1c, 0x3840, 0x080a, 0x2052,
354 0x122e, 0x2a1c, 0x3640, 0x060a, 0x1e52,
355 0x1230, 0x2a1e, 0x3642, 0x060c, 0x1e54,
356 0x1430, 0x2c1e, 0x3842, 0x080c, 0x2054,
357 0x1630, 0x2e1e, 0x3a42, 0x0a0c, 0x2254,
358 0x1632, 0x2e20, 0x3a44, 0x0a0e, 0x2256,
359 0x1432, 0x2c20, 0x3844, 0x080e, 0x2056,
360 0x1232, 0x2a20, 0x3644, 0x060e, 0x1e56,
361 0x1234, 0x2a22, 0x3646, 0x0610, 0x1e58,
362 0x1434, 0x2c22, 0x3846, 0x0810, 0x2058,
363 0x1634, 0x2e22, 0x3a46, 0x0a10, 0x2258,
364 0x1824, 0x3012, 0x3c36, 0x0c00, 0x2448,
365 0x1a24, 0x3212, 0x3e36, 0x0e00, 0x2648,
366 0x1c24, 0x3412, 0x4036, 0x1000, 0x2848,
367 0x1c26, 0x3414, 0x4038, 0x1002, 0x284a,
368 0x1a26, 0x3214, 0x3e38, 0x0e02, 0x264a,
369 0x1826, 0x3014, 0x3c38, 0x0c02, 0x244a,
370 0x1828, 0x3016, 0x3c3a, 0x0c04, 0x244c,
371 0x1a28, 0x3216, 0x3e3a, 0x0e04, 0x264c,
372 0x1c28, 0x3416, 0x403a, 0x1004, 0x284c,
373 0x1c2a, 0x3418, 0x403c, 0x1006, 0x284e,
374 0x1a2a, 0x3218, 0x3e3c, 0x0e06, 0x264e,
375 0x182a, 0x3018, 0x3c3c, 0x0c06, 0x244e,
376 0x182c, 0x301a, 0x3c3e, 0x0c08, 0x2450,
377 0x1a2c, 0x321a, 0x3e3e, 0x0e08, 0x2650,
378 0x1c2c, 0x341a, 0x403e, 0x1008, 0x2850,
379 0x1c2e, 0x341c, 0x4040, 0x100a, 0x2852,
380 0x1a2e, 0x321c, 0x3e40, 0x0e0a, 0x2652,
381 0x182e, 0x301c, 0x3c40, 0x0c0a, 0x2452,
382 0x1830, 0x301e, 0x3c42, 0x0c0c, 0x2454,
383 0x1a30, 0x321e, 0x3e42, 0x0e0c, 0x2654,
384 0x1c30, 0x341e, 0x4042, 0x100c, 0x2854,
385 0x1c32, 0x3420, 0x4044, 0x100e, 0x2856,
386 0x1a32, 0x3220, 0x3e44, 0x0e0e, 0x2656,
387 0x1832, 0x3020, 0x3c44, 0x0c0e, 0x2456,
388 0x1834, 0x3022, 0x3c46, 0x0c10, 0x2458,
389 0x1a34, 0x3222, 0x3e46, 0x0e10, 0x2658,
390 0x1c34, 0x3422, 0x4046, 0x1010, 0x2858,
391 0x1e24, 0x3612, 0x4236, 0x1200, 0x2a48,
392 0x2024, 0x3812, 0x4436, 0x1400, 0x2c48,
393 0x2224, 0x3a12, 0x4636, 0x1600, 0x2e48,
394 0x2226, 0x3a14, 0x4638, 0x1602, 0x2e4a,
395 0x2026, 0x3814, 0x4438, 0x1402, 0x2c4a,
396 0x1e26, 0x3614, 0x4238, 0x1202, 0x2a4a,
397 0x1e28, 0x3616, 0x423a, 0x1204, 0x2a4c,
398 0x2028, 0x3816, 0x443a, 0x1404, 0x2c4c,
399 0x2228, 0x3a16, 0x463a, 0x1604, 0x2e4c,
400 0x222a, 0x3a18, 0x463c, 0x1606, 0x2e4e,
401 0x202a, 0x3818, 0x443c, 0x1406, 0x2c4e,
402 0x1e2a, 0x3618, 0x423c, 0x1206, 0x2a4e,
403 0x1e2c, 0x361a, 0x423e, 0x1208, 0x2a50,
404 0x202c, 0x381a, 0x443e, 0x1408, 0x2c50,
405 0x222c, 0x3a1a, 0x463e, 0x1608, 0x2e50,
406 0x222e, 0x3a1c, 0x4640, 0x160a, 0x2e52,
407 0x202e, 0x381c, 0x4440, 0x140a, 0x2c52,
408 0x1e2e, 0x361c, 0x4240, 0x120a, 0x2a52,
409 0x1e30, 0x361e, 0x4242, 0x120c, 0x2a54,
410 0x2030, 0x381e, 0x4442, 0x140c, 0x2c54,
411 0x2230, 0x3a1e, 0x4642, 0x160c, 0x2e54,
412 0x2232, 0x3a20, 0x4644, 0x160e, 0x2e56,
413 0x2032, 0x3820, 0x4444, 0x140e, 0x2c56,
414 0x1e32, 0x3620, 0x4244, 0x120e, 0x2a56,
415 0x1e34, 0x3622, 0x4246, 0x1210, 0x2a58,
416 0x2034, 0x3822, 0x4446, 0x1410, 0x2c58,
417 0x2234, 0x3a22, 0x4646, 0x1610, 0x2e58,
418 0x2424, 0x3c12, 0x0036, 0x1800, 0x3048,
419 0x2624, 0x3e12, 0x0236, 0x1a00, 0x3248,
420 0x2824, 0x4012, 0x0436, 0x1c00, 0x3448,
421 0x2826, 0x4014, 0x0438, 0x1c02, 0x344a,
422 0x2626, 0x3e14, 0x0238, 0x1a02, 0x324a,
423 0x2426, 0x3c14, 0x0038, 0x1802, 0x304a,
424 0x2428, 0x3c16, 0x003a, 0x1804, 0x304c,
425 0x2628, 0x3e16, 0x023a, 0x1a04, 0x324c,
426 0x2828, 0x4016, 0x043a, 0x1c04, 0x344c,
427 0x282a, 0x4018, 0x043c, 0x1c06, 0x344e,
428 0x262a, 0x3e18, 0x023c, 0x1a06, 0x324e,
429 0x242a, 0x3c18, 0x003c, 0x1806, 0x304e,
430 0x242c, 0x3c1a, 0x003e, 0x1808, 0x3050,
431 0x262c, 0x3e1a, 0x023e, 0x1a08, 0x3250,
432 0x282c, 0x401a, 0x043e, 0x1c08, 0x3450,
433 0x282e, 0x401c, 0x0440, 0x1c0a, 0x3452,
434 0x262e, 0x3e1c, 0x0240, 0x1a0a, 0x3252,
435 0x242e, 0x3c1c, 0x0040, 0x180a, 0x3052,
436 0x2430, 0x3c1e, 0x0042, 0x180c, 0x3054,
437 0x2630, 0x3e1e, 0x0242, 0x1a0c, 0x3254,
438 0x2830, 0x401e, 0x0442, 0x1c0c, 0x3454,
439 0x2832, 0x4020, 0x0444, 0x1c0e, 0x3456,
440 0x2632, 0x3e20, 0x0244, 0x1a0e, 0x3256,
441 0x2432, 0x3c20, 0x0044, 0x180e, 0x3056,
442 0x2434, 0x3c22, 0x0046, 0x1810, 0x3058,
443 0x2634, 0x3e22, 0x0246, 0x1a10, 0x3258,
444 0x2834, 0x4022, 0x0446, 0x1c10, 0x3458,
445 0x2a24, 0x4212, 0x0636, 0x1e00, 0x3648,
446 0x2c24, 0x4412, 0x0836, 0x2000, 0x3848,
447 0x2e24, 0x4612, 0x0a36, 0x2200, 0x3a48,
448 0x2e26, 0x4614, 0x0a38, 0x2202, 0x3a4a,
449 0x2c26, 0x4414, 0x0838, 0x2002, 0x384a,
450 0x2a26, 0x4214, 0x0638, 0x1e02, 0x364a,
451 0x2a28, 0x4216, 0x063a, 0x1e04, 0x364c,
452 0x2c28, 0x4416, 0x083a, 0x2004, 0x384c,
453 0x2e28, 0x4616, 0x0a3a, 0x2204, 0x3a4c,
454 0x2e2a, 0x4618, 0x0a3c, 0x2206, 0x3a4e,
455 0x2c2a, 0x4418, 0x083c, 0x2006, 0x384e,
456 0x2a2a, 0x4218, 0x063c, 0x1e06, 0x364e,
457 0x2a2c, 0x421a, 0x063e, 0x1e08, 0x3650,
458 0x2c2c, 0x441a, 0x083e, 0x2008, 0x3850,
459 0x2e2c, 0x461a, 0x0a3e, 0x2208, 0x3a50,
460 0x2e2e, 0x461c, 0x0a40, 0x220a, 0x3a52,
461 0x2c2e, 0x441c, 0x0840, 0x200a, 0x3852,
462 0x2a2e, 0x421c, 0x0640, 0x1e0a, 0x3652,
463 0x2a30, 0x421e, 0x0642, 0x1e0c, 0x3654,
464 0x2c30, 0x441e, 0x0842, 0x200c, 0x3854,
465 0x2e30, 0x461e, 0x0a42, 0x220c, 0x3a54,
466 0x2e32, 0x4620, 0x0a44, 0x220e, 0x3a56,
467 0x2c32, 0x4420, 0x0844, 0x200e, 0x3856,
468 0x2a32, 0x4220, 0x0644, 0x1e0e, 0x3656,
469 0x2a34, 0x4222, 0x0646, 0x1e10, 0x3658,
470 0x2c34, 0x4422, 0x0846, 0x2010, 0x3858,
471 0x2e34, 0x4622, 0x0a46, 0x2210, 0x3a58,
472 0x3024, 0x0012, 0x0c36, 0x2400, 0x3c48,
473 0x3224, 0x0212, 0x0e36, 0x2600, 0x3e48,
474 0x3424, 0x0412, 0x1036, 0x2800, 0x4048,
475 0x3426, 0x0414, 0x1038, 0x2802, 0x404a,
476 0x3226, 0x0214, 0x0e38, 0x2602, 0x3e4a,
477 0x3026, 0x0014, 0x0c38, 0x2402, 0x3c4a,
478 0x3028, 0x0016, 0x0c3a, 0x2404, 0x3c4c,
479 0x3228, 0x0216, 0x0e3a, 0x2604, 0x3e4c,
480 0x3428, 0x0416, 0x103a, 0x2804, 0x404c,
481 0x342a, 0x0418, 0x103c, 0x2806, 0x404e,
482 0x322a, 0x0218, 0x0e3c, 0x2606, 0x3e4e,
483 0x302a, 0x0018, 0x0c3c, 0x2406, 0x3c4e,
484 0x302c, 0x001a, 0x0c3e, 0x2408, 0x3c50,
485 0x322c, 0x021a, 0x0e3e, 0x2608, 0x3e50,
486 0x342c, 0x041a, 0x103e, 0x2808, 0x4050,
487 0x342e, 0x041c, 0x1040, 0x280a, 0x4052,
488 0x322e, 0x021c, 0x0e40, 0x260a, 0x3e52,
489 0x302e, 0x001c, 0x0c40, 0x240a, 0x3c52,
490 0x3030, 0x001e, 0x0c42, 0x240c, 0x3c54,
491 0x3230, 0x021e, 0x0e42, 0x260c, 0x3e54,
492 0x3430, 0x041e, 0x1042, 0x280c, 0x4054,
493 0x3432, 0x0420, 0x1044, 0x280e, 0x4056,
494 0x3232, 0x0220, 0x0e44, 0x260e, 0x3e56,
495 0x3032, 0x0020, 0x0c44, 0x240e, 0x3c56,
496 0x3034, 0x0022, 0x0c46, 0x2410, 0x3c58,
497 0x3234, 0x0222, 0x0e46, 0x2610, 0x3e58,
498 0x3434, 0x0422, 0x1046, 0x2810, 0x4058,
499 0x3624, 0x0612, 0x1236, 0x2a00, 0x4248,
500 0x3824, 0x0812, 0x1436, 0x2c00, 0x4448,
501 0x3a24, 0x0a12, 0x1636, 0x2e00, 0x4648,
502 0x3a26, 0x0a14, 0x1638, 0x2e02, 0x464a,
503 0x3826, 0x0814, 0x1438, 0x2c02, 0x444a,
504 0x3626, 0x0614, 0x1238, 0x2a02, 0x424a,
505 0x3628, 0x0616, 0x123a, 0x2a04, 0x424c,
506 0x3828, 0x0816, 0x143a, 0x2c04, 0x444c,
507 0x3a28, 0x0a16, 0x163a, 0x2e04, 0x464c,
508 0x3a2a, 0x0a18, 0x163c, 0x2e06, 0x464e,
509 0x382a, 0x0818, 0x143c, 0x2c06, 0x444e,
510 0x362a, 0x0618, 0x123c, 0x2a06, 0x424e,
511 0x362c, 0x061a, 0x123e, 0x2a08, 0x4250,
512 0x382c, 0x081a, 0x143e, 0x2c08, 0x4450,
513 0x3a2c, 0x0a1a, 0x163e, 0x2e08, 0x4650,
514 0x3a2e, 0x0a1c, 0x1640, 0x2e0a, 0x4652,
515 0x382e, 0x081c, 0x1440, 0x2c0a, 0x4452,
516 0x362e, 0x061c, 0x1240, 0x2a0a, 0x4252,
517 0x3630, 0x061e, 0x1242, 0x2a0c, 0x4254,
518 0x3830, 0x081e, 0x1442, 0x2c0c, 0x4454,
519 0x3a30, 0x0a1e, 0x1642, 0x2e0c, 0x4654,
520 0x3a32, 0x0a20, 0x1644, 0x2e0e, 0x4656,
521 0x3832, 0x0820, 0x1444, 0x2c0e, 0x4456,
522 0x3632, 0x0620, 0x1244, 0x2a0e, 0x4256,
523 0x3634, 0x0622, 0x1246, 0x2a10, 0x4258,
524 0x3834, 0x0822, 0x1446, 0x2c10, 0x4458,
525 0x3a34, 0x0a22, 0x1646, 0x2e10, 0x4658,
526 0x3c24, 0x0c12, 0x1836, 0x3000, 0x0048,
527 0x3e24, 0x0e12, 0x1a36, 0x3200, 0x0248,
528 0x4024, 0x1012, 0x1c36, 0x3400, 0x0448,
529 0x4026, 0x1014, 0x1c38, 0x3402, 0x044a,
530 0x3e26, 0x0e14, 0x1a38, 0x3202, 0x024a,
531 0x3c26, 0x0c14, 0x1838, 0x3002, 0x004a,
532 0x3c28, 0x0c16, 0x183a, 0x3004, 0x004c,
533 0x3e28, 0x0e16, 0x1a3a, 0x3204, 0x024c,
534 0x4028, 0x1016, 0x1c3a, 0x3404, 0x044c,
535 0x402a, 0x1018, 0x1c3c, 0x3406, 0x044e,
536 0x3e2a, 0x0e18, 0x1a3c, 0x3206, 0x024e,
537 0x3c2a, 0x0c18, 0x183c, 0x3006, 0x004e,
538 0x3c2c, 0x0c1a, 0x183e, 0x3008, 0x0050,
539 0x3e2c, 0x0e1a, 0x1a3e, 0x3208, 0x0250,
540 0x402c, 0x101a, 0x1c3e, 0x3408, 0x0450,
541 0x402e, 0x101c, 0x1c40, 0x340a, 0x0452,
542 0x3e2e, 0x0e1c, 0x1a40, 0x320a, 0x0252,
543 0x3c2e, 0x0c1c, 0x1840, 0x300a, 0x0052,
544 0x3c30, 0x0c1e, 0x1842, 0x300c, 0x0054,
545 0x3e30, 0x0e1e, 0x1a42, 0x320c, 0x0254,
546 0x4030, 0x101e, 0x1c42, 0x340c, 0x0454,
547 0x4032, 0x1020, 0x1c44, 0x340e, 0x0456,
548 0x3e32, 0x0e20, 0x1a44, 0x320e, 0x0256,
549 0x3c32, 0x0c20, 0x1844, 0x300e, 0x0056,
550 0x3c34, 0x0c22, 0x1846, 0x3010, 0x0058,
551 0x3e34, 0x0e22, 0x1a46, 0x3210, 0x0258,
552 0x4034, 0x1022, 0x1c46, 0x3410, 0x0458,
553 0x4224, 0x1212, 0x1e36, 0x3600, 0x0648,
554 0x4424, 0x1412, 0x2036, 0x3800, 0x0848,
555 0x4624, 0x1612, 0x2236, 0x3a00, 0x0a48,
556 0x4626, 0x1614, 0x2238, 0x3a02, 0x0a4a,
557 0x4426, 0x1414, 0x2038, 0x3802, 0x084a,
558 0x4226, 0x1214, 0x1e38, 0x3602, 0x064a,
559 0x4228, 0x1216, 0x1e3a, 0x3604, 0x064c,
560 0x4428, 0x1416, 0x203a, 0x3804, 0x084c,
561 0x4628, 0x1616, 0x223a, 0x3a04, 0x0a4c,
562 0x462a, 0x1618, 0x223c, 0x3a06, 0x0a4e,
563 0x442a, 0x1418, 0x203c, 0x3806, 0x084e,
564 0x422a, 0x1218, 0x1e3c, 0x3606, 0x064e,
565 0x422c, 0x121a, 0x1e3e, 0x3608, 0x0650,
566 0x442c, 0x141a, 0x203e, 0x3808, 0x0850,
567 0x462c, 0x161a, 0x223e, 0x3a08, 0x0a50,
568 0x462e, 0x161c, 0x2240, 0x3a0a, 0x0a52,
569 0x442e, 0x141c, 0x2040, 0x380a, 0x0852,
570 0x422e, 0x121c, 0x1e40, 0x360a, 0x0652,
571 0x4230, 0x121e, 0x1e42, 0x360c, 0x0654,
572 0x4430, 0x141e, 0x2042, 0x380c, 0x0854,
573 0x4630, 0x161e, 0x2242, 0x3a0c, 0x0a54,
574 0x4632, 0x1620, 0x2244, 0x3a0e, 0x0a56,
575 0x4432, 0x1420, 0x2044, 0x380e, 0x0856,
576 0x4232, 0x1220, 0x1e44, 0x360e, 0x0656,
577 0x4234, 0x1222, 0x1e46, 0x3610, 0x0658,
578 0x4434, 0x1422, 0x2046, 0x3810, 0x0858,
579 0x4634, 0x1622, 0x2246, 0x3a10, 0x0a58,
580 0x0024, 0x1812, 0x2436, 0x3c00, 0x0c48,
581 0x0224, 0x1a12, 0x2636, 0x3e00, 0x0e48,
582 0x0424, 0x1c12, 0x2836, 0x4000, 0x1048,
583 0x0426, 0x1c14, 0x2838, 0x4002, 0x104a,
584 0x0226, 0x1a14, 0x2638, 0x3e02, 0x0e4a,
585 0x0026, 0x1814, 0x2438, 0x3c02, 0x0c4a,
586 0x0028, 0x1816, 0x243a, 0x3c04, 0x0c4c,
587 0x0228, 0x1a16, 0x263a, 0x3e04, 0x0e4c,
588 0x0428, 0x1c16, 0x283a, 0x4004, 0x104c,
589 0x042a, 0x1c18, 0x283c, 0x4006, 0x104e,
590 0x022a, 0x1a18, 0x263c, 0x3e06, 0x0e4e,
591 0x002a, 0x1818, 0x243c, 0x3c06, 0x0c4e,
592 0x002c, 0x181a, 0x243e, 0x3c08, 0x0c50,
593 0x022c, 0x1a1a, 0x263e, 0x3e08, 0x0e50,
594 0x042c, 0x1c1a, 0x283e, 0x4008, 0x1050,
595 0x042e, 0x1c1c, 0x2840, 0x400a, 0x1052,
596 0x022e, 0x1a1c, 0x2640, 0x3e0a, 0x0e52,
597 0x002e, 0x181c, 0x2440, 0x3c0a, 0x0c52,
598 0x0030, 0x181e, 0x2442, 0x3c0c, 0x0c54,
599 0x0230, 0x1a1e, 0x2642, 0x3e0c, 0x0e54,
600 0x0430, 0x1c1e, 0x2842, 0x400c, 0x1054,
601 0x0432, 0x1c20, 0x2844, 0x400e, 0x1056,
602 0x0232, 0x1a20, 0x2644, 0x3e0e, 0x0e56,
603 0x0032, 0x1820, 0x2444, 0x3c0e, 0x0c56,
604 0x0034, 0x1822, 0x2446, 0x3c10, 0x0c58,
605 0x0234, 0x1a22, 0x2646, 0x3e10, 0x0e58,
606 0x0434, 0x1c22, 0x2846, 0x4010, 0x1058,
607 0x0624, 0x1e12, 0x2a36, 0x4200, 0x1248,
608 0x0824, 0x2012, 0x2c36, 0x4400, 0x1448,
609 0x0a24, 0x2212, 0x2e36, 0x4600, 0x1648,
610 0x0a26, 0x2214, 0x2e38, 0x4602, 0x164a,
611 0x0826, 0x2014, 0x2c38, 0x4402, 0x144a,
612 0x0626, 0x1e14, 0x2a38, 0x4202, 0x124a,
613 0x0628, 0x1e16, 0x2a3a, 0x4204, 0x124c,
614 0x0828, 0x2016, 0x2c3a, 0x4404, 0x144c,
615 0x0a28, 0x2216, 0x2e3a, 0x4604, 0x164c,
616 0x0a2a, 0x2218, 0x2e3c, 0x4606, 0x164e,
617 0x082a, 0x2018, 0x2c3c, 0x4406, 0x144e,
618 0x062a, 0x1e18, 0x2a3c, 0x4206, 0x124e,
619 0x062c, 0x1e1a, 0x2a3e, 0x4208, 0x1250,
620 0x082c, 0x201a, 0x2c3e, 0x4408, 0x1450,
621 0x0a2c, 0x221a, 0x2e3e, 0x4608, 0x1650,
622 0x0a2e, 0x221c, 0x2e40, 0x460a, 0x1652,
623 0x082e, 0x201c, 0x2c40, 0x440a, 0x1452,
624 0x062e, 0x1e1c, 0x2a40, 0x420a, 0x1252,
625 0x0630, 0x1e1e, 0x2a42, 0x420c, 0x1254,
626 0x0830, 0x201e, 0x2c42, 0x440c, 0x1454,
627 0x0a30, 0x221e, 0x2e42, 0x460c, 0x1654,
628 0x0a32, 0x2220, 0x2e44, 0x460e, 0x1656,
629 0x0832, 0x2020, 0x2c44, 0x440e, 0x1456,
630 0x0632, 0x1e20, 0x2a44, 0x420e, 0x1256,
631 0x0634, 0x1e22, 0x2a46, 0x4210, 0x1258,
632 0x0834, 0x2022, 0x2c46, 0x4410, 0x1458,
633 0x0a34, 0x2222, 0x2e46, 0x4610, 0x1658,
634 };
635
636 static const uint16_t dv_place_411[1350] = {
637 0x0c24, 0x2710, 0x3334, 0x0000, 0x1848,
638 0x0d24, 0x2810, 0x3434, 0x0100, 0x1948,
639 0x0e24, 0x2910, 0x3534, 0x0200, 0x1a48,
640 0x0f24, 0x2914, 0x3538, 0x0300, 0x1b48,
641 0x1024, 0x2814, 0x3438, 0x0400, 0x1c48,
642 0x1124, 0x2714, 0x3338, 0x0500, 0x1d48,
643 0x1128, 0x2614, 0x3238, 0x0504, 0x1d4c,
644 0x1028, 0x2514, 0x3138, 0x0404, 0x1c4c,
645 0x0f28, 0x2414, 0x3038, 0x0304, 0x1b4c,
646 0x0e28, 0x2418, 0x303c, 0x0204, 0x1a4c,
647 0x0d28, 0x2518, 0x313c, 0x0104, 0x194c,
648 0x0c28, 0x2618, 0x323c, 0x0004, 0x184c,
649 0x0c2c, 0x2718, 0x333c, 0x0008, 0x1850,
650 0x0d2c, 0x2818, 0x343c, 0x0108, 0x1950,
651 0x0e2c, 0x2918, 0x353c, 0x0208, 0x1a50,
652 0x0f2c, 0x291c, 0x3540, 0x0308, 0x1b50,
653 0x102c, 0x281c, 0x3440, 0x0408, 0x1c50,
654 0x112c, 0x271c, 0x3340, 0x0508, 0x1d50,
655 0x1130, 0x261c, 0x3240, 0x050c, 0x1d54,
656 0x1030, 0x251c, 0x3140, 0x040c, 0x1c54,
657 0x0f30, 0x241c, 0x3040, 0x030c, 0x1b54,
658 0x0e30, 0x2420, 0x3044, 0x020c, 0x1a54,
659 0x0d30, 0x2520, 0x3144, 0x010c, 0x1954,
660 0x0c30, 0x2620, 0x3244, 0x000c, 0x1854,
661 0x0c34, 0x2720, 0x3344, 0x0010, 0x1858,
662 0x0d34, 0x2820, 0x3444, 0x0110, 0x1a58,
663 0x0e34, 0x2920, 0x3544, 0x0210, 0x1c58,
664 0x1224, 0x2d10, 0x3934, 0x0600, 0x1e48,
665 0x1324, 0x2e10, 0x3a34, 0x0700, 0x1f48,
666 0x1424, 0x2f10, 0x3b34, 0x0800, 0x2048,
667 0x1524, 0x2f14, 0x3b38, 0x0900, 0x2148,
668 0x1624, 0x2e14, 0x3a38, 0x0a00, 0x2248,
669 0x1724, 0x2d14, 0x3938, 0x0b00, 0x2348,
670 0x1728, 0x2c14, 0x3838, 0x0b04, 0x234c,
671 0x1628, 0x2b14, 0x3738, 0x0a04, 0x224c,
672 0x1528, 0x2a14, 0x3638, 0x0904, 0x214c,
673 0x1428, 0x2a18, 0x363c, 0x0804, 0x204c,
674 0x1328, 0x2b18, 0x373c, 0x0704, 0x1f4c,
675 0x1228, 0x2c18, 0x383c, 0x0604, 0x1e4c,
676 0x122c, 0x2d18, 0x393c, 0x0608, 0x1e50,
677 0x132c, 0x2e18, 0x3a3c, 0x0708, 0x1f50,
678 0x142c, 0x2f18, 0x3b3c, 0x0808, 0x2050,
679 0x152c, 0x2f1c, 0x3b40, 0x0908, 0x2150,
680 0x162c, 0x2e1c, 0x3a40, 0x0a08, 0x2250,
681 0x172c, 0x2d1c, 0x3940, 0x0b08, 0x2350,
682 0x1730, 0x2c1c, 0x3840, 0x0b0c, 0x2354,
683 0x1630, 0x2b1c, 0x3740, 0x0a0c, 0x2254,
684 0x1530, 0x2a1c, 0x3640, 0x090c, 0x2154,
685 0x1430, 0x2a20, 0x3644, 0x080c, 0x2054,
686 0x1330, 0x2b20, 0x3744, 0x070c, 0x1f54,
687 0x1230, 0x2c20, 0x3844, 0x060c, 0x1e54,
688 0x1234, 0x2d20, 0x3944, 0x0610, 0x1e58,
689 0x1334, 0x2e20, 0x3a44, 0x0710, 0x2058,
690 0x1434, 0x2f20, 0x3b44, 0x0810, 0x2258,
691 0x1824, 0x3310, 0x0334, 0x0c00, 0x2448,
692 0x1924, 0x3410, 0x0434, 0x0d00, 0x2548,
693 0x1a24, 0x3510, 0x0534, 0x0e00, 0x2648,
694 0x1b24, 0x3514, 0x0538, 0x0f00, 0x2748,
695 0x1c24, 0x3414, 0x0438, 0x1000, 0x2848,
696 0x1d24, 0x3314, 0x0338, 0x1100, 0x2948,
697 0x1d28, 0x3214, 0x0238, 0x1104, 0x294c,
698 0x1c28, 0x3114, 0x0138, 0x1004, 0x284c,
699 0x1b28, 0x3014, 0x0038, 0x0f04, 0x274c,
700 0x1a28, 0x3018, 0x003c, 0x0e04, 0x264c,
701 0x1928, 0x3118, 0x013c, 0x0d04, 0x254c,
702 0x1828, 0x3218, 0x023c, 0x0c04, 0x244c,
703 0x182c, 0x3318, 0x033c, 0x0c08, 0x2450,
704 0x192c, 0x3418, 0x043c, 0x0d08, 0x2550,
705 0x1a2c, 0x3518, 0x053c, 0x0e08, 0x2650,
706 0x1b2c, 0x351c, 0x0540, 0x0f08, 0x2750,
707 0x1c2c, 0x341c, 0x0440, 0x1008, 0x2850,
708 0x1d2c, 0x331c, 0x0340, 0x1108, 0x2950,
709 0x1d30, 0x321c, 0x0240, 0x110c, 0x2954,
710 0x1c30, 0x311c, 0x0140, 0x100c, 0x2854,
711 0x1b30, 0x301c, 0x0040, 0x0f0c, 0x2754,
712 0x1a30, 0x3020, 0x0044, 0x0e0c, 0x2654,
713 0x1930, 0x3120, 0x0144, 0x0d0c, 0x2554,
714 0x1830, 0x3220, 0x0244, 0x0c0c, 0x2454,
715 0x1834, 0x3320, 0x0344, 0x0c10, 0x2458,
716 0x1934, 0x3420, 0x0444, 0x0d10, 0x2658,
717 0x1a34, 0x3520, 0x0544, 0x0e10, 0x2858,
718 0x1e24, 0x3910, 0x0934, 0x1200, 0x2a48,
719 0x1f24, 0x3a10, 0x0a34, 0x1300, 0x2b48,
720 0x2024, 0x3b10, 0x0b34, 0x1400, 0x2c48,
721 0x2124, 0x3b14, 0x0b38, 0x1500, 0x2d48,
722 0x2224, 0x3a14, 0x0a38, 0x1600, 0x2e48,
723 0x2324, 0x3914, 0x0938, 0x1700, 0x2f48,
724 0x2328, 0x3814, 0x0838, 0x1704, 0x2f4c,
725 0x2228, 0x3714, 0x0738, 0x1604, 0x2e4c,
726 0x2128, 0x3614, 0x0638, 0x1504, 0x2d4c,
727 0x2028, 0x3618, 0x063c, 0x1404, 0x2c4c,
728 0x1f28, 0x3718, 0x073c, 0x1304, 0x2b4c,
729 0x1e28, 0x3818, 0x083c, 0x1204, 0x2a4c,
730 0x1e2c, 0x3918, 0x093c, 0x1208, 0x2a50,
731 0x1f2c, 0x3a18, 0x0a3c, 0x1308, 0x2b50,
732 0x202c, 0x3b18, 0x0b3c, 0x1408, 0x2c50,
733 0x212c, 0x3b1c, 0x0b40, 0x1508, 0x2d50,
734 0x222c, 0x3a1c, 0x0a40, 0x1608, 0x2e50,
735 0x232c, 0x391c, 0x0940, 0x1708, 0x2f50,
736 0x2330, 0x381c, 0x0840, 0x170c, 0x2f54,
737 0x2230, 0x371c, 0x0740, 0x160c, 0x2e54,
738 0x2130, 0x361c, 0x0640, 0x150c, 0x2d54,
739 0x2030, 0x3620, 0x0644, 0x140c, 0x2c54,
740 0x1f30, 0x3720, 0x0744, 0x130c, 0x2b54,
741 0x1e30, 0x3820, 0x0844, 0x120c, 0x2a54,
742 0x1e34, 0x3920, 0x0944, 0x1210, 0x2a58,
743 0x1f34, 0x3a20, 0x0a44, 0x1310, 0x2c58,
744 0x2034, 0x3b20, 0x0b44, 0x1410, 0x2e58,
745 0x2424, 0x0310, 0x0f34, 0x1800, 0x3048,
746 0x2524, 0x0410, 0x1034, 0x1900, 0x3148,
747 0x2624, 0x0510, 0x1134, 0x1a00, 0x3248,
748 0x2724, 0x0514, 0x1138, 0x1b00, 0x3348,
749 0x2824, 0x0414, 0x1038, 0x1c00, 0x3448,
750 0x2924, 0x0314, 0x0f38, 0x1d00, 0x3548,
751 0x2928, 0x0214, 0x0e38, 0x1d04, 0x354c,
752 0x2828, 0x0114, 0x0d38, 0x1c04, 0x344c,
753 0x2728, 0x0014, 0x0c38, 0x1b04, 0x334c,
754 0x2628, 0x0018, 0x0c3c, 0x1a04, 0x324c,
755 0x2528, 0x0118, 0x0d3c, 0x1904, 0x314c,
756 0x2428, 0x0218, 0x0e3c, 0x1804, 0x304c,
757 0x242c, 0x0318, 0x0f3c, 0x1808, 0x3050,
758 0x252c, 0x0418, 0x103c, 0x1908, 0x3150,
759 0x262c, 0x0518, 0x113c, 0x1a08, 0x3250,
760 0x272c, 0x051c, 0x1140, 0x1b08, 0x3350,
761 0x282c, 0x041c, 0x1040, 0x1c08, 0x3450,
762 0x292c, 0x031c, 0x0f40, 0x1d08, 0x3550,
763 0x2930, 0x021c, 0x0e40, 0x1d0c, 0x3554,
764 0x2830, 0x011c, 0x0d40, 0x1c0c, 0x3454,
765 0x2730, 0x001c, 0x0c40, 0x1b0c, 0x3354,
766 0x2630, 0x0020, 0x0c44, 0x1a0c, 0x3254,
767 0x2530, 0x0120, 0x0d44, 0x190c, 0x3154,
768 0x2430, 0x0220, 0x0e44, 0x180c, 0x3054,
769 0x2434, 0x0320, 0x0f44, 0x1810, 0x3058,
770 0x2534, 0x0420, 0x1044, 0x1910, 0x3258,
771 0x2634, 0x0520, 0x1144, 0x1a10, 0x3458,
772 0x2a24, 0x0910, 0x1534, 0x1e00, 0x3648,
773 0x2b24, 0x0a10, 0x1634, 0x1f00, 0x3748,
774 0x2c24, 0x0b10, 0x1734, 0x2000, 0x3848,
775 0x2d24, 0x0b14, 0x1738, 0x2100, 0x3948,
776 0x2e24, 0x0a14, 0x1638, 0x2200, 0x3a48,
777 0x2f24, 0x0914, 0x1538, 0x2300, 0x3b48,
778 0x2f28, 0x0814, 0x1438, 0x2304, 0x3b4c,
779 0x2e28, 0x0714, 0x1338, 0x2204, 0x3a4c,
780 0x2d28, 0x0614, 0x1238, 0x2104, 0x394c,
781 0x2c28, 0x0618, 0x123c, 0x2004, 0x384c,
782 0x2b28, 0x0718, 0x133c, 0x1f04, 0x374c,
783 0x2a28, 0x0818, 0x143c, 0x1e04, 0x364c,
784 0x2a2c, 0x0918, 0x153c, 0x1e08, 0x3650,
785 0x2b2c, 0x0a18, 0x163c, 0x1f08, 0x3750,
786 0x2c2c, 0x0b18, 0x173c, 0x2008, 0x3850,
787 0x2d2c, 0x0b1c, 0x1740, 0x2108, 0x3950,
788 0x2e2c, 0x0a1c, 0x1640, 0x2208, 0x3a50,
789 0x2f2c, 0x091c, 0x1540, 0x2308, 0x3b50,
790 0x2f30, 0x081c, 0x1440, 0x230c, 0x3b54,
791 0x2e30, 0x071c, 0x1340, 0x220c, 0x3a54,
792 0x2d30, 0x061c, 0x1240, 0x210c, 0x3954,
793 0x2c30, 0x0620, 0x1244, 0x200c, 0x3854,
794 0x2b30, 0x0720, 0x1344, 0x1f0c, 0x3754,
795 0x2a30, 0x0820, 0x1444, 0x1e0c, 0x3654,
796 0x2a34, 0x0920, 0x1544, 0x1e10, 0x3658,
797 0x2b34, 0x0a20, 0x1644, 0x1f10, 0x3858,
798 0x2c34, 0x0b20, 0x1744, 0x2010, 0x3a58,
799 0x3024, 0x0f10, 0x1b34, 0x2400, 0x0048,
800 0x3124, 0x1010, 0x1c34, 0x2500, 0x0148,
801 0x3224, 0x1110, 0x1d34, 0x2600, 0x0248,
802 0x3324, 0x1114, 0x1d38, 0x2700, 0x0348,
803 0x3424, 0x1014, 0x1c38, 0x2800, 0x0448,
804 0x3524, 0x0f14, 0x1b38, 0x2900, 0x0548,
805 0x3528, 0x0e14, 0x1a38, 0x2904, 0x054c,
806 0x3428, 0x0d14, 0x1938, 0x2804, 0x044c,
807 0x3328, 0x0c14, 0x1838, 0x2704, 0x034c,
808 0x3228, 0x0c18, 0x183c, 0x2604, 0x024c,
809 0x3128, 0x0d18, 0x193c, 0x2504, 0x014c,
810 0x3028, 0x0e18, 0x1a3c, 0x2404, 0x004c,
811 0x302c, 0x0f18, 0x1b3c, 0x2408, 0x0050,
812 0x312c, 0x1018, 0x1c3c, 0x2508, 0x0150,
813 0x322c, 0x1118, 0x1d3c, 0x2608, 0x0250,
814 0x332c, 0x111c, 0x1d40, 0x2708, 0x0350,
815 0x342c, 0x101c, 0x1c40, 0x2808, 0x0450,
816 0x352c, 0x0f1c, 0x1b40, 0x2908, 0x0550,
817 0x3530, 0x0e1c, 0x1a40, 0x290c, 0x0554,
818 0x3430, 0x0d1c, 0x1940, 0x280c, 0x0454,
819 0x3330, 0x0c1c, 0x1840, 0x270c, 0x0354,
820 0x3230, 0x0c20, 0x1844, 0x260c, 0x0254,
821 0x3130, 0x0d20, 0x1944, 0x250c, 0x0154,
822 0x3030, 0x0e20, 0x1a44, 0x240c, 0x0054,
823 0x3034, 0x0f20, 0x1b44, 0x2410, 0x0058,
824 0x3134, 0x1020, 0x1c44, 0x2510, 0x0258,
825 0x3234, 0x1120, 0x1d44, 0x2610, 0x0458,
826 0x3624, 0x1510, 0x2134, 0x2a00, 0x0648,
827 0x3724, 0x1610, 0x2234, 0x2b00, 0x0748,
828 0x3824, 0x1710, 0x2334, 0x2c00, 0x0848,
829 0x3924, 0x1714, 0x2338, 0x2d00, 0x0948,
830 0x3a24, 0x1614, 0x2238, 0x2e00, 0x0a48,
831 0x3b24, 0x1514, 0x2138, 0x2f00, 0x0b48,
832 0x3b28, 0x1414, 0x2038, 0x2f04, 0x0b4c,
833 0x3a28, 0x1314, 0x1f38, 0x2e04, 0x0a4c,
834 0x3928, 0x1214, 0x1e38, 0x2d04, 0x094c,
835 0x3828, 0x1218, 0x1e3c, 0x2c04, 0x084c,
836 0x3728, 0x1318, 0x1f3c, 0x2b04, 0x074c,
837 0x3628, 0x1418, 0x203c, 0x2a04, 0x064c,
838 0x362c, 0x1518, 0x213c, 0x2a08, 0x0650,
839 0x372c, 0x1618, 0x223c, 0x2b08, 0x0750,
840 0x382c, 0x1718, 0x233c, 0x2c08, 0x0850,
841 0x392c, 0x171c, 0x2340, 0x2d08, 0x0950,
842 0x3a2c, 0x161c, 0x2240, 0x2e08, 0x0a50,
843 0x3b2c, 0x151c, 0x2140, 0x2f08, 0x0b50,
844 0x3b30, 0x141c, 0x2040, 0x2f0c, 0x0b54,
845 0x3a30, 0x131c, 0x1f40, 0x2e0c, 0x0a54,
846 0x3930, 0x121c, 0x1e40, 0x2d0c, 0x0954,
847 0x3830, 0x1220, 0x1e44, 0x2c0c, 0x0854,
848 0x3730, 0x1320, 0x1f44, 0x2b0c, 0x0754,
849 0x3630, 0x1420, 0x2044, 0x2a0c, 0x0654,
850 0x3634, 0x1520, 0x2144, 0x2a10, 0x0658,
851 0x3734, 0x1620, 0x2244, 0x2b10, 0x0858,
852 0x3834, 0x1720, 0x2344, 0x2c10, 0x0a58,
853 0x0024, 0x1b10, 0x2734, 0x3000, 0x0c48,
854 0x0124, 0x1c10, 0x2834, 0x3100, 0x0d48,
855 0x0224, 0x1d10, 0x2934, 0x3200, 0x0e48,
856 0x0324, 0x1d14, 0x2938, 0x3300, 0x0f48,
857 0x0424, 0x1c14, 0x2838, 0x3400, 0x1048,
858 0x0524, 0x1b14, 0x2738, 0x3500, 0x1148,
859 0x0528, 0x1a14, 0x2638, 0x3504, 0x114c,
860 0x0428, 0x1914, 0x2538, 0x3404, 0x104c,
861 0x0328, 0x1814, 0x2438, 0x3304, 0x0f4c,
862 0x0228, 0x1818, 0x243c, 0x3204, 0x0e4c,
863 0x0128, 0x1918, 0x253c, 0x3104, 0x0d4c,
864 0x0028, 0x1a18, 0x263c, 0x3004, 0x0c4c,
865 0x002c, 0x1b18, 0x273c, 0x3008, 0x0c50,
866 0x012c, 0x1c18, 0x283c, 0x3108, 0x0d50,
867 0x022c, 0x1d18, 0x293c, 0x3208, 0x0e50,
868 0x032c, 0x1d1c, 0x2940, 0x3308, 0x0f50,
869 0x042c, 0x1c1c, 0x2840, 0x3408, 0x1050,
870 0x052c, 0x1b1c, 0x2740, 0x3508, 0x1150,
871 0x0530, 0x1a1c, 0x2640, 0x350c, 0x1154,
872 0x0430, 0x191c, 0x2540, 0x340c, 0x1054,
873 0x0330, 0x181c, 0x2440, 0x330c, 0x0f54,
874 0x0230, 0x1820, 0x2444, 0x320c, 0x0e54,
875 0x0130, 0x1920, 0x2544, 0x310c, 0x0d54,
876 0x0030, 0x1a20, 0x2644, 0x300c, 0x0c54,
877 0x0034, 0x1b20, 0x2744, 0x3010, 0x0c58,
878 0x0134, 0x1c20, 0x2844, 0x3110, 0x0e58,
879 0x0234, 0x1d20, 0x2944, 0x3210, 0x1058,
880 0x0624, 0x2110, 0x2d34, 0x3600, 0x1248,
881 0x0724, 0x2210, 0x2e34, 0x3700, 0x1348,
882 0x0824, 0x2310, 0x2f34, 0x3800, 0x1448,
883 0x0924, 0x2314, 0x2f38, 0x3900, 0x1548,
884 0x0a24, 0x2214, 0x2e38, 0x3a00, 0x1648,
885 0x0b24, 0x2114, 0x2d38, 0x3b00, 0x1748,
886 0x0b28, 0x2014, 0x2c38, 0x3b04, 0x174c,
887 0x0a28, 0x1f14, 0x2b38, 0x3a04, 0x164c,
888 0x0928, 0x1e14, 0x2a38, 0x3904, 0x154c,
889 0x0828, 0x1e18, 0x2a3c, 0x3804, 0x144c,
890 0x0728, 0x1f18, 0x2b3c, 0x3704, 0x134c,
891 0x0628, 0x2018, 0x2c3c, 0x3604, 0x124c,
892 0x062c, 0x2118, 0x2d3c, 0x3608, 0x1250,
893 0x072c, 0x2218, 0x2e3c, 0x3708, 0x1350,
894 0x082c, 0x2318, 0x2f3c, 0x3808, 0x1450,
895 0x092c, 0x231c, 0x2f40, 0x3908, 0x1550,
896 0x0a2c, 0x221c, 0x2e40, 0x3a08, 0x1650,
897 0x0b2c, 0x211c, 0x2d40, 0x3b08, 0x1750,
898 0x0b30, 0x201c, 0x2c40, 0x3b0c, 0x1754,
899 0x0a30, 0x1f1c, 0x2b40, 0x3a0c, 0x1654,
900 0x0930, 0x1e1c, 0x2a40, 0x390c, 0x1554,
901 0x0830, 0x1e20, 0x2a44, 0x380c, 0x1454,
902 0x0730, 0x1f20, 0x2b44, 0x370c, 0x1354,
903 0x0630, 0x2020, 0x2c44, 0x360c, 0x1254,
904 0x0634, 0x2120, 0x2d44, 0x3610, 0x1258,
905 0x0734, 0x2220, 0x2e44, 0x3710, 0x1458,
906 0x0834, 0x2320, 0x2f44, 0x3810, 0x1658,
907 };
908
909 static const uint16_t dv_place_audio60[10][9] = {
910 { 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */
911 { 6, 36, 66, 26, 56, 86, 16, 46, 76 },
912 { 12, 42, 72, 2, 32, 62, 22, 52, 82 },
913 { 18, 48, 78, 8, 38, 68, 28, 58, 88 },
914 { 24, 54, 84, 14, 44, 74, 4, 34, 64 },
915
916 { 1, 31, 61, 21, 51, 81, 11, 41, 71 }, /* 2nd channel */
917 { 7, 37, 67, 27, 57, 87, 17, 47, 77 },
918 { 13, 43, 73, 3, 33, 63, 23, 53, 83 },
919 { 19, 49, 79, 9, 39, 69, 29, 59, 89 },
920 { 25, 55, 85, 15, 45, 75, 5, 35, 65 },
921 };
922
923 static const uint16_t dv_place_audio50[12][9] = {
924 { 0, 36, 72, 26, 62, 98, 16, 52, 88}, /* 1st channel */
925 { 6, 42, 78, 32, 68, 104, 22, 58, 94},
926 { 12, 48, 84, 2, 38, 74, 28, 64, 100},
927 { 18, 54, 90, 8, 44, 80, 34, 70, 106},
928 { 24, 60, 96, 14, 50, 86, 4, 40, 76},
929 { 30, 66, 102, 20, 56, 92, 10, 46, 82},
930
931 { 1, 37, 73, 27, 63, 99, 17, 53, 89}, /* 2nd channel */
932 { 7, 43, 79, 33, 69, 105, 23, 59, 95},
933 { 13, 49, 85, 3, 39, 75, 29, 65, 101},
934 { 19, 55, 91, 9, 45, 81, 35, 71, 107},
935 { 25, 61, 97, 15, 51, 87, 5, 41, 77},
936 { 31, 67, 103, 21, 57, 93, 11, 47, 83},
937 };
938
939 static const int dv_audio_frequency[3] = {
940 48000, 44100, 32000,
941 };
942
943 static const int dv_audio_min_samples[2][3] = {
944 { 1580, 1452, 1053 }, /* 60 fields */
945 { 1896, 1742, 1264 }, /* 50 fileds */
946 };