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