~ubuntu-branches/debian/experimental/libav/experimental

1 by Reinhard Tartler
Import upstream version 0.6.2
1
/*
2
 * Sunplus JPEG tables
3
 * Copyright (c) 2003 the ffmpeg project
4
 *
1.1.1 by Reinhard Tartler
Import upstream version 0.7~b1
5
 * This file is part of Libav.
1 by Reinhard Tartler
Import upstream version 0.6.2
6
 *
1.1.1 by Reinhard Tartler
Import upstream version 0.7~b1
7
 * Libav is free software; you can redistribute it and/or
1 by Reinhard Tartler
Import upstream version 0.6.2
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
 *
1.1.1 by Reinhard Tartler
Import upstream version 0.7~b1
12
 * Libav is distributed in the hope that it will be useful,
1 by Reinhard Tartler
Import upstream version 0.6.2
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
1.1.1 by Reinhard Tartler
Import upstream version 0.7~b1
18
 * License along with Libav; if not, write to the Free Software
1 by Reinhard Tartler
Import upstream version 0.6.2
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
 */
21
22
#ifndef AVCODEC_SP5X_H
23
#define AVCODEC_SP5X_H
24
25
#include <stdint.h>
26
27
static const uint8_t sp5x_data_sof[] =
28
{
29
    0xFF, 0xC0,       /* SOF */
30
    0x00, 0x11,       /* len */
31
    0x08,             /* bits */
32
    0x00, 0xf0,       /* height (default: 240) */
33
    0x01, 0x40,       /* width (default: 240) */
34
    0x03,             /* nb components */
35
    0x01, 0x22, 0x00, /* 21 vs 22 ? */
36
    0x02, 0x11, 0x01,
37
    0x03, 0x11, 0x01
38
};
39
40
static const uint8_t sp5x_data_sos[] =
41
{
42
    0xFF, 0xDA,       /* SOS */
43
    0x00, 0x0C,       /* len */
44
    0x03,             /* nb components */
45
    0x01, 0x00,
46
    0x02, 0x11,
47
    0x03, 0x11,
48
    0x00,             /* Ss */
49
    0x3F,             /* Se */
50
    0x00              /* Ah/Al */
51
};
52
53
static const uint8_t sp5x_data_dqt[] =
54
{
55
    0xFF, 0xDB, /* DQT */
56
    0x00, 0x84, /* len */
57
    0x00,
58
    0x05, 0x03, 0x04, 0x04, 0x04, 0x03, 0x05, 0x04,
59
    0x04, 0x04, 0x06, 0x05, 0x05, 0x06, 0x08, 0x0D,
60
    0x08, 0x08, 0x07, 0x07, 0x08, 0x10, 0x0C, 0x0C,
61
    0x0A, 0x0D, 0x14, 0x11, 0x15, 0x14, 0x13, 0x11,
62
    0x13, 0x13, 0x16, 0x18, 0x1F, 0x1A, 0x16, 0x17,
63
    0x1E, 0x17, 0x13, 0x13, 0x1B, 0x25, 0x1C, 0x1E,
64
    0x20, 0x21, 0x23, 0x23, 0x23, 0x15, 0x1A, 0x27,
65
    0x29, 0x26, 0x22, 0x29, 0x1F, 0x22, 0x23, 0x22,
66
    0x01,
67
    0x05, 0x06, 0x06, 0x08, 0x07, 0x08, 0x10, 0x08,
68
    0x08, 0x10, 0x22, 0x16, 0x13, 0x16, 0x22, 0x22,
69
    0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
70
    0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
71
    0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
72
    0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
73
    0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
74
    0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22
75
};
76
77
static const uint8_t sp5x_data_dht[] = {
78
    0xFF, 0xC4, /* DHT */
79
    0x01, 0xA2, /* len */
80
    0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01,
81
    0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82
    0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
83
    0x07, 0x08, 0x09, 0x0A, 0x0B, 0x01, 0x00, 0x03,
84
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
85
    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
86
    0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
87
    0x0A, 0x0B, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03,
88
    0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00,
89
    0x00, 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04,
90
    0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13,
91
    0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81,
92
    0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15,
93
    0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82,
94
    0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25,
95
    0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36,
96
    0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46,
97
    0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56,
98
    0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66,
99
    0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76,
100
    0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86,
101
    0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95,
102
    0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4,
103
    0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3,
104
    0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2,
105
    0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA,
106
    0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,
107
    0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
108
    0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5,
109
    0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x11, 0x00, 0x02,
110
    0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05,
111
    0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01,
112
    0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06,
113
    0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22,
114
    0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1,
115
    0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62,
116
    0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25,
117
    0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28,
118
    0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
119
    0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
120
    0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
121
    0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
122
    0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A,
123
    0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
124
    0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
125
    0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
126
    0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
127
    0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5,
128
    0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,
129
    0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3,
130
    0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2,
131
    0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA
132
};
133
134
135
static const uint8_t sp5x_quant_table[20][64]=
136
{
137
    /* index 0, Q50 */
138
    {  16, 11, 12, 14, 12, 10, 16, 14, 13, 14, 18, 17, 16, 19, 24, 40,
139
       26, 24, 22, 22, 24, 49, 35, 37, 29, 40, 58, 51, 61, 60, 57, 51,
140
       56, 55, 64, 72, 92, 78, 64, 68, 87, 69, 55, 56, 80,109, 81, 87,
141
       95, 98,103,104,103, 62, 77,113,121,112,100,120, 92,101,103, 99 },
142
    {  17, 18, 18, 24, 21, 24, 47, 26, 26, 47, 99, 66, 56, 66, 99, 99,
143
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
144
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
145
       99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 },
146
147
    /* index 1, Q70 */
148
    {  10,  7,  7,  8,  7,  6, 10,  8,  8,  8, 11, 10, 10, 11, 14, 24,
149
       16, 14, 13, 13, 14, 29, 21, 22, 17, 24, 35, 31, 37, 36, 34, 31,
150
       34, 33, 38, 43, 55, 47, 38, 41, 52, 41, 33, 34, 48, 65, 49, 52,
151
       57, 59, 62, 62, 62, 37, 46, 68, 73, 67, 60, 72, 55, 61, 62, 59 },
152
    {  10, 11, 11, 14, 13, 14, 28, 16, 16, 28, 59, 40, 34, 40, 59, 59,
153
       59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
154
       59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
155
       59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59 },
156
157
    /* index 2, Q80 */
158
    {   6,  4,  5,  6,  5,  4,  6,  6,  5,  6,  7,  7,  6,  8, 10, 16,
159
       10, 10,  9,  9, 10, 20, 14, 15, 12, 16, 23, 20, 24, 24, 23, 20,
160
       22, 22, 26, 29, 37, 31, 26, 27, 35, 28, 22, 22, 32, 44, 32, 35,
161
       38, 39, 41, 42, 41, 25, 31, 45, 48, 45, 40, 48, 37, 40, 41, 40 },
162
    {   7,  7,  7, 10,  8, 10, 19, 10, 10, 19, 40, 26, 22, 26, 40, 40,
163
       40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
164
       40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
165
       40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 },
166
167
    /* index 3, Q85 */
168
    {   5,  3,  4,  4,  4,  3,  5,  4,  4,  4,  5,  5,  5,  6,  7, 12,
169
        8,  7,  7,  7,  7, 15, 11, 11,  9, 12, 17, 15, 18, 18, 17, 15,
170
       17, 17, 19, 22, 28, 23, 19, 20, 26, 21, 17, 17, 24, 33, 24, 26,
171
       29, 29, 31, 31, 31, 19, 23, 34, 36, 34, 30, 36, 28, 30, 31, 30 },
172
    {   5,  5,  5,  7,  6,  7, 14,  8,  8, 14, 30, 20, 17, 20, 30, 30,
173
       30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
174
       30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
175
       30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 },
176
177
    /* index 4, Q90 */
178
    {   3,  2,  2,  3,  2,  2,  3,  3,  3,  3,  4,  3,  3,  4,  5,  8,
179
        5,  5,  4,  4,  5, 10,  7,  7,  6,  8, 12, 10, 12, 12, 11, 10,
180
       11, 11, 13, 14, 18, 16, 13, 14, 17, 14, 11, 11, 16, 22, 16, 17,
181
       19, 20, 21, 21, 21, 12, 15, 23, 24, 22, 20, 24, 18, 20, 21, 20 },
182
    {   3,  4,  4,  5,  4,  5,  9,  5,  5,  9, 20, 13, 11, 13, 20, 20,
183
       20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
184
       20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
185
       20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 },
186
187
    /* index 5, Q60 */
188
    {  13,  9, 10, 11, 10,  8, 13, 11, 10, 11, 14, 14, 13, 15, 19, 32,
189
       21, 19, 18, 18, 19, 39, 28, 30, 23, 32, 46, 41, 49, 48, 46, 41,
190
       45, 44, 51, 58, 74, 62, 51, 54, 70, 55, 44, 45, 64, 87, 65, 70,
191
       76, 78, 82, 83, 82, 50, 62, 90, 97, 90, 80, 96, 74, 81, 82, 79 },
192
    {  14, 14, 14, 19, 17, 19, 38, 21, 21, 38, 79, 53, 45, 53, 79, 79,
193
       79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
194
       79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
195
       79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 },
196
197
    /* index 6, Q25 */
198
    {  32, 22, 24, 28, 24, 20, 32, 28, 26, 28, 36, 34, 32, 38, 48, 80,
199
       52, 48, 44, 44, 48, 98, 70, 74, 58, 80,116,102,122,120,114,102,
200
      112,110,128,144,184,156,128,136,174,138,110,112,160,218,162,174,
201
      190,196,206,208,206,124,154,226,242,224,200,240,184,202,206,198 },
202
    {  34, 36, 36, 48, 42, 48, 94, 52, 52, 94,198,132,112,132,198,198,
203
      198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
204
      198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
205
      198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198 },
206
207
    /* index 7, Q95 */
208
    {   2,  1,  1,  1,  1,  1,  2,  1,  1,  1,  2,  2,  2,  2,  2,  4,
209
        3,  2,  2,  2,  2,  5,  4,  4,  3,  4,  6,  5,  6,  6,  6,  5,
210
        6,  6,  6,  7,  9,  8,  6,  7,  9,  7,  6,  6,  8, 11,  8,  9,
211
       10, 10, 10, 10, 10,  6,  8, 11, 12, 11, 10, 12,  9, 10, 10, 10 },
212
    {   2,  2,  2,  2,  2,  2,  5,  3,  3,  5, 10,  7,  6,  7, 10, 10,
213
       10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
214
       10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
215
       10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 },
216
217
    /* index 8, Q93 */
218
    {   2,  2,  2,  2,  2,  1,  2,  2,  2,  2,  3,  2,  2,  3,  3,  6,
219
        4,  3,  3,  3,  3,  7,  5,  5,  4,  6,  8,  7,  9,  8,  8,  7,
220
        8,  8,  9, 10, 13, 11,  9, 10, 12, 10,  8,  8, 11, 15, 11, 12,
221
       13, 14, 14, 15, 14,  9, 11, 16, 17, 16, 14, 17, 13, 14, 14, 14 },
222
    {   2,  3,  3,  3,  3,  3,  7,  4,  4,  7, 14,  9,  8,  9, 14, 14,
223
       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
224
       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
225
       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 },
226
227
    /* index 9, Q40 */
228
    {  20, 14, 15, 18, 15, 13, 20, 18, 16, 18, 23, 21, 20, 24, 30, 50,
229
       33, 30, 28, 28, 30, 61, 44, 46, 36, 50, 73, 64, 76, 75, 71, 64,
230
       70, 69, 80, 90,115, 98, 80, 85,109, 86, 69, 70,100,136,101,109,
231
      119,123,129,130,129, 78, 96,141,151,140,125,150,115,126,129,124 },
232
    {  21, 23, 23, 30, 26, 30, 59, 33, 33, 59,124, 83, 70, 83,124,124,
233
      124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
234
      124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,
235
      124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124 }
236
};
237
238
#endif /* AVCODEC_SP5X_H */