~ubuntu-branches/debian/wheezy/vlc/wheezy

« back to all changes in this revision

Viewing changes to extras/ffmpeg/libavcodec/dvdata.h

Tags: upstream-0.7.2.final
ImportĀ upstreamĀ versionĀ 0.7.2.final

Show diffs side-by-side

added added

removed removed

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