Revision 10249a5f

View differences:

libavcodec/dv.c
44 44
#include "put_bits.h"
45 45
#include "simple_idct.h"
46 46
#include "dvdata.h"
47
#include "dv_vlc_data.h"
47 48

  
48 49
//#undef NDEBUG
49 50
//#include <assert.h>
libavcodec/dv_vlc_data.h
1
/*
2
 * VLC constants for DV codec
3
 * Copyright (c) 2002 Fabrice Bellard
4
 *
5
 * This file is part of FFmpeg.
6
 *
7
 * FFmpeg is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
12
 * FFmpeg is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with FFmpeg; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
 */
21

  
22
/**
23
 * @file libavcodec/dv_vlc_data.h
24
 * VLC constants for DV codec.
25
 */
26

  
27
#ifndef AVCODEC_DV_VLC_DATA_H
28
#define AVCODEC_DV_VLC_DATA_H
29

  
30
#include <stdint.h>
31

  
32
#define NB_DV_VLC 409
33

  
34
/*
35
 * There's a catch about the following three tables: the mapping they establish
36
 * between (run, level) and vlc is not 1-1. So you have to watch out for that
37
 * when building misc. tables. E.g. (1, 0) can be either 0x7cf or 0x1f82.
38
 */
39
static const uint16_t dv_vlc_bits[409] = {
40
 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016,
41
 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a,
42
 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2,
43
 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
44
 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2,
45
 0x01e3, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea,
46
 0x01eb, 0x01ec, 0x01ed, 0x01ee, 0x01ef, 0x03e0, 0x03e1, 0x03e2,
47
 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x07ce, 0x07cf, 0x07d0, 0x07d1,
48
 0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x0fac, 0x0fad, 0x0fae, 0x0faf,
49
 0x0fb0, 0x0fb1, 0x0fb2, 0x0fb3, 0x0fb4, 0x0fb5, 0x0fb6, 0x0fb7,
50
 0x0fb8, 0x0fb9, 0x0fba, 0x0fbb, 0x0fbc, 0x0fbd, 0x0fbe, 0x0fbf,
51
 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
52
 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
53
 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
54
 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
55
 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
56
 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
57
 0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
58
 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbd, 0x1fbe, 0x1fbf,
59
 0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, 0x7f07,
60
 0x7f08, 0x7f09, 0x7f0a, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f,
61
 0x7f10, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17,
62
 0x7f18, 0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1e, 0x7f1f,
63
 0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
64
 0x7f28, 0x7f29, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f,
65
 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f37,
66
 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f,
67
 0x7f40, 0x7f41, 0x7f42, 0x7f43, 0x7f44, 0x7f45, 0x7f46, 0x7f47,
68
 0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f,
69
 0x7f50, 0x7f51, 0x7f52, 0x7f53, 0x7f54, 0x7f55, 0x7f56, 0x7f57,
70
 0x7f58, 0x7f59, 0x7f5a, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f5f,
71
 0x7f60, 0x7f61, 0x7f62, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67,
72
 0x7f68, 0x7f69, 0x7f6a, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6e, 0x7f6f,
73
 0x7f70, 0x7f71, 0x7f72, 0x7f73, 0x7f74, 0x7f75, 0x7f76, 0x7f77,
74
 0x7f78, 0x7f79, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7e, 0x7f7f,
75
 0x7f80, 0x7f81, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87,
76
 0x7f88, 0x7f89, 0x7f8a, 0x7f8b, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f,
77
 0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f94, 0x7f95, 0x7f96, 0x7f97,
78
 0x7f98, 0x7f99, 0x7f9a, 0x7f9b, 0x7f9c, 0x7f9d, 0x7f9e, 0x7f9f,
79
 0x7fa0, 0x7fa1, 0x7fa2, 0x7fa3, 0x7fa4, 0x7fa5, 0x7fa6, 0x7fa7,
80
 0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7faf,
81
 0x7fb0, 0x7fb1, 0x7fb2, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7,
82
 0x7fb8, 0x7fb9, 0x7fba, 0x7fbb, 0x7fbc, 0x7fbd, 0x7fbe, 0x7fbf,
83
 0x7fc0, 0x7fc1, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc5, 0x7fc6, 0x7fc7,
84
 0x7fc8, 0x7fc9, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fcf,
85
 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd6, 0x7fd7,
86
 0x7fd8, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fdf,
87
 0x7fe0, 0x7fe1, 0x7fe2, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7,
88
 0x7fe8, 0x7fe9, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fee, 0x7fef,
89
 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7,
90
 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
91
 0x0006,
92
};
93

  
94
static const uint8_t dv_vlc_len[409] = {
95
  2,  3,  4,  4,  4,  5,  5,  5,
96
  5,  6,  6,  6,  6,  7,  7,  7,
97
  7,  7,  7,  7,  7,  8,  8,  8,
98
  8,  8,  8,  8,  8,  8,  8,  8,
99
  8,  8,  8,  8,  8,  9,  9,  9,
100
  9,  9,  9,  9,  9,  9,  9,  9,
101
  9,  9,  9,  9,  9, 10, 10, 10,
102
 10, 10, 10, 10, 11, 11, 11, 11,
103
 11, 11, 11, 11, 12, 12, 12, 12,
104
 12, 12, 12, 12, 12, 12, 12, 12,
105
 12, 12, 12, 12, 12, 12, 12, 12,
106
 13, 13, 13, 13, 13, 13, 13, 13,
107
 13, 13, 13, 13, 13, 13, 13, 13,
108
 13, 13, 13, 13, 13, 13, 13, 13,
109
 13, 13, 13, 13, 13, 13, 13, 13,
110
 13, 13, 13, 13, 13, 13, 13, 13,
111
 13, 13, 13, 13, 13, 13, 13, 13,
112
 13, 13, 13, 13, 13, 13, 13, 13,
113
 13, 13, 13, 13, 13, 13, 13, 13,
114
 15, 15, 15, 15, 15, 15, 15, 15,
115
 15, 15, 15, 15, 15, 15, 15, 15,
116
 15, 15, 15, 15, 15, 15, 15, 15,
117
 15, 15, 15, 15, 15, 15, 15, 15,
118
 15, 15, 15, 15, 15, 15, 15, 15,
119
 15, 15, 15, 15, 15, 15, 15, 15,
120
 15, 15, 15, 15, 15, 15, 15, 15,
121
 15, 15, 15, 15, 15, 15, 15, 15,
122
 15, 15, 15, 15, 15, 15, 15, 15,
123
 15, 15, 15, 15, 15, 15, 15, 15,
124
 15, 15, 15, 15, 15, 15, 15, 15,
125
 15, 15, 15, 15, 15, 15, 15, 15,
126
 15, 15, 15, 15, 15, 15, 15, 15,
127
 15, 15, 15, 15, 15, 15, 15, 15,
128
 15, 15, 15, 15, 15, 15, 15, 15,
129
 15, 15, 15, 15, 15, 15, 15, 15,
130
 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
  4,
147
};
148

  
149
static const uint8_t dv_vlc_run[409] = {
150
  0,  0,  1,  0,  0,  2,  1,  0,
151
  0,  3,  4,  0,  0,  5,  6,  2,
152
  1,  1,  0,  0,  0,  7,  8,  9,
153
 10,  3,  4,  2,  1,  1,  1,  0,
154
  0,  0,  0,  0,  0, 11, 12, 13,
155
 14,  5,  6,  3,  4,  2,  2,  1,
156
  0,  0,  0,  0,  0,  5,  3,  3,
157
  2,  1,  1,  1,  0,  1,  6,  4,
158
  3,  1,  1,  1,  2,  3,  4,  5,
159
  7,  8,  9, 10,  7,  8,  4,  3,
160
  2,  2,  2,  2,  2,  1,  1,  1,
161
  0,  1,  2,  3,  4,  5,  6,  7,
162
  8,  9, 10, 11, 12, 13, 14, 15,
163
 16, 17, 18, 19, 20, 21, 22, 23,
164
 24, 25, 26, 27, 28, 29, 30, 31,
165
 32, 33, 34, 35, 36, 37, 38, 39,
166
 40, 41, 42, 43, 44, 45, 46, 47,
167
 48, 49, 50, 51, 52, 53, 54, 55,
168
 56, 57, 58, 59, 60, 61, 62, 63,
169
  0,  0,  0,  0,  0,  0,  0,  0,
170
  0,  0,  0,  0,  0,  0,  0,  0,
171
  0,  0,  0,  0,  0,  0,  0,  0,
172
  0,  0,  0,  0,  0,  0,  0,  0,
173
  0,  0,  0,  0,  0,  0,  0,  0,
174
  0,  0,  0,  0,  0,  0,  0,  0,
175
  0,  0,  0,  0,  0,  0,  0,  0,
176
  0,  0,  0,  0,  0,  0,  0,  0,
177
  0,  0,  0,  0,  0,  0,  0,  0,
178
  0,  0,  0,  0,  0,  0,  0,  0,
179
  0,  0,  0,  0,  0,  0,  0,  0,
180
  0,  0,  0,  0,  0,  0,  0,  0,
181
  0,  0,  0,  0,  0,  0,  0,  0,
182
  0,  0,  0,  0,  0,  0,  0,  0,
183
  0,  0,  0,  0,  0,  0,  0,  0,
184
  0,  0,  0,  0,  0,  0,  0,  0,
185
  0,  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
127,
202
};
203

  
204
static const uint8_t dv_vlc_level[409] = {
205
   1,   2,   1,   3,   4,   1,   2,   5,
206
   6,   1,   1,   7,   8,   1,   1,   2,
207
   3,   4,   9,  10,  11,   1,   1,   1,
208
   1,   2,   2,   3,   5,   6,   7,  12,
209
  13,  14,  15,  16,  17,   1,   1,   1,
210
   1,   2,   2,   3,   3,   4,   5,   8,
211
  18,  19,  20,  21,  22,   3,   4,   5,
212
   6,   9,  10,  11,   0,   0,   3,   4,
213
   6,  12,  13,  14,   0,   0,   0,   0,
214
   2,   2,   2,   2,   3,   3,   5,   7,
215
   7,   8,   9,  10,  11,  15,  16,  17,
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
   0,   0,   0,   0,   0,   0,   0,   0,
222
   0,   0,   0,   0,   0,   0,   0,   0,
223
   0,   0,   0,   0,   0,   0,   0,   0,
224
   0,   1,   2,   3,   4,   5,   6,   7,
225
   8,   9,  10,  11,  12,  13,  14,  15,
226
  16,  17,  18,  19,  20,  21,  22,  23,
227
  24,  25,  26,  27,  28,  29,  30,  31,
228
  32,  33,  34,  35,  36,  37,  38,  39,
229
  40,  41,  42,  43,  44,  45,  46,  47,
230
  48,  49,  50,  51,  52,  53,  54,  55,
231
  56,  57,  58,  59,  60,  61,  62,  63,
232
  64,  65,  66,  67,  68,  69,  70,  71,
233
  72,  73,  74,  75,  76,  77,  78,  79,
234
  80,  81,  82,  83,  84,  85,  86,  87,
235
  88,  89,  90,  91,  92,  93,  94,  95,
236
  96,  97,  98,  99, 100, 101, 102, 103,
237
 104, 105, 106, 107, 108, 109, 110, 111,
238
 112, 113, 114, 115, 116, 117, 118, 119,
239
 120, 121, 122, 123, 124, 125, 126, 127,
240
 128, 129, 130, 131, 132, 133, 134, 135,
241
 136, 137, 138, 139, 140, 141, 142, 143,
242
 144, 145, 146, 147, 148, 149, 150, 151,
243
 152, 153, 154, 155, 156, 157, 158, 159,
244
 160, 161, 162, 163, 164, 165, 166, 167,
245
 168, 169, 170, 171, 172, 173, 174, 175,
246
 176, 177, 178, 179, 180, 181, 182, 183,
247
 184, 185, 186, 187, 188, 189, 190, 191,
248
 192, 193, 194, 195, 196, 197, 198, 199,
249
 200, 201, 202, 203, 204, 205, 206, 207,
250
 208, 209, 210, 211, 212, 213, 214, 215,
251
 216, 217, 218, 219, 220, 221, 222, 223,
252
 224, 225, 226, 227, 228, 229, 230, 231,
253
 232, 233, 234, 235, 236, 237, 238, 239,
254
 240, 241, 242, 243, 244, 245, 246, 247,
255
 248, 249, 250, 251, 252, 253, 254, 255,
256
   0,
257
};
258

  
259
#endif /* AVCODEC_DV_VLC_DATA_H */
libavcodec/dvdata.h
65 65
    const uint8_t  (*audio_shuffle)[9];     /* PCM shuffling table */
66 66
} DVprofile;
67 67

  
68
#define NB_DV_VLC 409
69

  
70
/*
71
 * There's a catch about the following three tables: the mapping they establish
72
 * between (run, level) and vlc is not 1-1. So you have to watch out for that
73
 * when building misc. tables. E.g. (1, 0) can be either 0x7cf or 0x1f82.
74
 */
75
static const uint16_t dv_vlc_bits[409] = {
76
 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016,
77
 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a,
78
 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2,
79
 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
80
 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2,
81
 0x01e3, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea,
82
 0x01eb, 0x01ec, 0x01ed, 0x01ee, 0x01ef, 0x03e0, 0x03e1, 0x03e2,
83
 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x07ce, 0x07cf, 0x07d0, 0x07d1,
84
 0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x0fac, 0x0fad, 0x0fae, 0x0faf,
85
 0x0fb0, 0x0fb1, 0x0fb2, 0x0fb3, 0x0fb4, 0x0fb5, 0x0fb6, 0x0fb7,
86
 0x0fb8, 0x0fb9, 0x0fba, 0x0fbb, 0x0fbc, 0x0fbd, 0x0fbe, 0x0fbf,
87
 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
88
 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
89
 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
90
 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
91
 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
92
 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
93
 0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
94
 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbd, 0x1fbe, 0x1fbf,
95
 0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, 0x7f07,
96
 0x7f08, 0x7f09, 0x7f0a, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f,
97
 0x7f10, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17,
98
 0x7f18, 0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1e, 0x7f1f,
99
 0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
100
 0x7f28, 0x7f29, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f,
101
 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f37,
102
 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f,
103
 0x7f40, 0x7f41, 0x7f42, 0x7f43, 0x7f44, 0x7f45, 0x7f46, 0x7f47,
104
 0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f,
105
 0x7f50, 0x7f51, 0x7f52, 0x7f53, 0x7f54, 0x7f55, 0x7f56, 0x7f57,
106
 0x7f58, 0x7f59, 0x7f5a, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f5f,
107
 0x7f60, 0x7f61, 0x7f62, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67,
108
 0x7f68, 0x7f69, 0x7f6a, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6e, 0x7f6f,
109
 0x7f70, 0x7f71, 0x7f72, 0x7f73, 0x7f74, 0x7f75, 0x7f76, 0x7f77,
110
 0x7f78, 0x7f79, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7e, 0x7f7f,
111
 0x7f80, 0x7f81, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87,
112
 0x7f88, 0x7f89, 0x7f8a, 0x7f8b, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f,
113
 0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f94, 0x7f95, 0x7f96, 0x7f97,
114
 0x7f98, 0x7f99, 0x7f9a, 0x7f9b, 0x7f9c, 0x7f9d, 0x7f9e, 0x7f9f,
115
 0x7fa0, 0x7fa1, 0x7fa2, 0x7fa3, 0x7fa4, 0x7fa5, 0x7fa6, 0x7fa7,
116
 0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7faf,
117
 0x7fb0, 0x7fb1, 0x7fb2, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7,
118
 0x7fb8, 0x7fb9, 0x7fba, 0x7fbb, 0x7fbc, 0x7fbd, 0x7fbe, 0x7fbf,
119
 0x7fc0, 0x7fc1, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc5, 0x7fc6, 0x7fc7,
120
 0x7fc8, 0x7fc9, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fcf,
121
 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd6, 0x7fd7,
122
 0x7fd8, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fdf,
123
 0x7fe0, 0x7fe1, 0x7fe2, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7,
124
 0x7fe8, 0x7fe9, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fee, 0x7fef,
125
 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7,
126
 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
127
 0x0006,
128
};
129

  
130
static const uint8_t dv_vlc_len[409] = {
131
  2,  3,  4,  4,  4,  5,  5,  5,
132
  5,  6,  6,  6,  6,  7,  7,  7,
133
  7,  7,  7,  7,  7,  8,  8,  8,
134
  8,  8,  8,  8,  8,  8,  8,  8,
135
  8,  8,  8,  8,  8,  9,  9,  9,
136
  9,  9,  9,  9,  9,  9,  9,  9,
137
  9,  9,  9,  9,  9, 10, 10, 10,
138
 10, 10, 10, 10, 11, 11, 11, 11,
139
 11, 11, 11, 11, 12, 12, 12, 12,
140
 12, 12, 12, 12, 12, 12, 12, 12,
141
 12, 12, 12, 12, 12, 12, 12, 12,
142
 13, 13, 13, 13, 13, 13, 13, 13,
143
 13, 13, 13, 13, 13, 13, 13, 13,
144
 13, 13, 13, 13, 13, 13, 13, 13,
145
 13, 13, 13, 13, 13, 13, 13, 13,
146
 13, 13, 13, 13, 13, 13, 13, 13,
147
 13, 13, 13, 13, 13, 13, 13, 13,
148
 13, 13, 13, 13, 13, 13, 13, 13,
149
 13, 13, 13, 13, 13, 13, 13, 13,
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
 15, 15, 15, 15, 15, 15, 15, 15,
167
 15, 15, 15, 15, 15, 15, 15, 15,
168
 15, 15, 15, 15, 15, 15, 15, 15,
169
 15, 15, 15, 15, 15, 15, 15, 15,
170
 15, 15, 15, 15, 15, 15, 15, 15,
171
 15, 15, 15, 15, 15, 15, 15, 15,
172
 15, 15, 15, 15, 15, 15, 15, 15,
173
 15, 15, 15, 15, 15, 15, 15, 15,
174
 15, 15, 15, 15, 15, 15, 15, 15,
175
 15, 15, 15, 15, 15, 15, 15, 15,
176
 15, 15, 15, 15, 15, 15, 15, 15,
177
 15, 15, 15, 15, 15, 15, 15, 15,
178
 15, 15, 15, 15, 15, 15, 15, 15,
179
 15, 15, 15, 15, 15, 15, 15, 15,
180
 15, 15, 15, 15, 15, 15, 15, 15,
181
 15, 15, 15, 15, 15, 15, 15, 15,
182
  4,
183
};
184

  
185
static const uint8_t dv_vlc_run[409] = {
186
  0,  0,  1,  0,  0,  2,  1,  0,
187
  0,  3,  4,  0,  0,  5,  6,  2,
188
  1,  1,  0,  0,  0,  7,  8,  9,
189
 10,  3,  4,  2,  1,  1,  1,  0,
190
  0,  0,  0,  0,  0, 11, 12, 13,
191
 14,  5,  6,  3,  4,  2,  2,  1,
192
  0,  0,  0,  0,  0,  5,  3,  3,
193
  2,  1,  1,  1,  0,  1,  6,  4,
194
  3,  1,  1,  1,  2,  3,  4,  5,
195
  7,  8,  9, 10,  7,  8,  4,  3,
196
  2,  2,  2,  2,  2,  1,  1,  1,
197
  0,  1,  2,  3,  4,  5,  6,  7,
198
  8,  9, 10, 11, 12, 13, 14, 15,
199
 16, 17, 18, 19, 20, 21, 22, 23,
200
 24, 25, 26, 27, 28, 29, 30, 31,
201
 32, 33, 34, 35, 36, 37, 38, 39,
202
 40, 41, 42, 43, 44, 45, 46, 47,
203
 48, 49, 50, 51, 52, 53, 54, 55,
204
 56, 57, 58, 59, 60, 61, 62, 63,
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
  0,  0,  0,  0,  0,  0,  0,  0,
222
  0,  0,  0,  0,  0,  0,  0,  0,
223
  0,  0,  0,  0,  0,  0,  0,  0,
224
  0,  0,  0,  0,  0,  0,  0,  0,
225
  0,  0,  0,  0,  0,  0,  0,  0,
226
  0,  0,  0,  0,  0,  0,  0,  0,
227
  0,  0,  0,  0,  0,  0,  0,  0,
228
  0,  0,  0,  0,  0,  0,  0,  0,
229
  0,  0,  0,  0,  0,  0,  0,  0,
230
  0,  0,  0,  0,  0,  0,  0,  0,
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
127,
238
};
239

  
240
static const uint8_t dv_vlc_level[409] = {
241
   1,   2,   1,   3,   4,   1,   2,   5,
242
   6,   1,   1,   7,   8,   1,   1,   2,
243
   3,   4,   9,  10,  11,   1,   1,   1,
244
   1,   2,   2,   3,   5,   6,   7,  12,
245
  13,  14,  15,  16,  17,   1,   1,   1,
246
   1,   2,   2,   3,   3,   4,   5,   8,
247
  18,  19,  20,  21,  22,   3,   4,   5,
248
   6,   9,  10,  11,   0,   0,   3,   4,
249
   6,  12,  13,  14,   0,   0,   0,   0,
250
   2,   2,   2,   2,   3,   3,   5,   7,
251
   7,   8,   9,  10,  11,  15,  16,  17,
252
   0,   0,   0,   0,   0,   0,   0,   0,
253
   0,   0,   0,   0,   0,   0,   0,   0,
254
   0,   0,   0,   0,   0,   0,   0,   0,
255
   0,   0,   0,   0,   0,   0,   0,   0,
256
   0,   0,   0,   0,   0,   0,   0,   0,
257
   0,   0,   0,   0,   0,   0,   0,   0,
258
   0,   0,   0,   0,   0,   0,   0,   0,
259
   0,   0,   0,   0,   0,   0,   0,   0,
260
   0,   1,   2,   3,   4,   5,   6,   7,
261
   8,   9,  10,  11,  12,  13,  14,  15,
262
  16,  17,  18,  19,  20,  21,  22,  23,
263
  24,  25,  26,  27,  28,  29,  30,  31,
264
  32,  33,  34,  35,  36,  37,  38,  39,
265
  40,  41,  42,  43,  44,  45,  46,  47,
266
  48,  49,  50,  51,  52,  53,  54,  55,
267
  56,  57,  58,  59,  60,  61,  62,  63,
268
  64,  65,  66,  67,  68,  69,  70,  71,
269
  72,  73,  74,  75,  76,  77,  78,  79,
270
  80,  81,  82,  83,  84,  85,  86,  87,
271
  88,  89,  90,  91,  92,  93,  94,  95,
272
  96,  97,  98,  99, 100, 101, 102, 103,
273
 104, 105, 106, 107, 108, 109, 110, 111,
274
 112, 113, 114, 115, 116, 117, 118, 119,
275
 120, 121, 122, 123, 124, 125, 126, 127,
276
 128, 129, 130, 131, 132, 133, 134, 135,
277
 136, 137, 138, 139, 140, 141, 142, 143,
278
 144, 145, 146, 147, 148, 149, 150, 151,
279
 152, 153, 154, 155, 156, 157, 158, 159,
280
 160, 161, 162, 163, 164, 165, 166, 167,
281
 168, 169, 170, 171, 172, 173, 174, 175,
282
 176, 177, 178, 179, 180, 181, 182, 183,
283
 184, 185, 186, 187, 188, 189, 190, 191,
284
 192, 193, 194, 195, 196, 197, 198, 199,
285
 200, 201, 202, 203, 204, 205, 206, 207,
286
 208, 209, 210, 211, 212, 213, 214, 215,
287
 216, 217, 218, 219, 220, 221, 222, 223,
288
 224, 225, 226, 227, 228, 229, 230, 231,
289
 232, 233, 234, 235, 236, 237, 238, 239,
290
 240, 241, 242, 243, 244, 245, 246, 247,
291
 248, 249, 250, 251, 252, 253, 254, 255,
292
   0,
293
};
294

  
295 68
/* unquant tables (not used directly) */
296 69
static const uint8_t dv_quant_shifts[22][4] = {
297 70
  { 3,3,4,4 },

Also available in: Unified diff