FFmpeg
indeo2data.h
Go to the documentation of this file.
1 /*
2  * Intel Indeo 2 codec
3  * copyright (c) 2005 Konstantin Shishkov
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 #ifndef AVCODEC_INDEO2DATA_H
23 #define AVCODEC_INDEO2DATA_H
24 
25 #include <stdint.h>
26 
27 #define IR2_CODES 143
28 static const uint8_t ir2_tab[IR2_CODES][2] = {
29  { 0x01, 3 }, { 0x02, 3 }, { 0x80, 3 }, { 0x03, 3 }, { 0x04, 5 },
30  { 0x81, 5 }, { 0x05, 5 }, { 0x06, 5 }, { 0x82, 5 }, { 0x83, 5 },
31  { 0x07, 5 }, { 0x08, 5 }, { 0x84, 6 }, { 0x09, 6 }, { 0x0A, 6 },
32  { 0x0B, 6 }, { 0x0C, 6 }, { 0x0D, 6 }, { 0x0E, 6 }, { 0x85, 6 },
33  { 0x0F, 8 }, { 0x10, 8 }, { 0x86, 8 }, { 0x87, 8 }, { 0x11, 8 },
34  { 0x12, 8 }, { 0x13, 8 }, { 0x14, 8 }, { 0x88, 8 }, { 0x15, 8 },
35  { 0x16, 8 }, { 0x89, 8 }, { 0x17, 8 }, { 0x18, 8 }, { 0x8A, 8 },
36  { 0x19, 8 }, { 0x1A, 9 }, { 0x8B, 9 }, { 0x1B, 9 }, { 0x1C, 9 },
37  { 0x8C, 9 }, { 0x1D, 9 }, { 0x1E, 9 }, { 0x8D, 9 }, { 0x1F, 9 },
38  { 0x20, 9 }, { 0x8E, 9 }, { 0x21, 9 }, { 0x22, 9 }, { 0x8F, 9 },
39  { 0x23, 9 }, { 0x24, 9 }, { 0x25, 10 }, { 0x26, 10 }, { 0x27, 10 },
40  { 0x28, 10 }, { 0x29, 10 }, { 0x2A, 10 }, { 0x2B, 10 }, { 0x2C, 10 },
41  { 0x2D, 10 }, { 0x2E, 10 }, { 0x2F, 10 }, { 0x30, 10 }, { 0x31, 10 },
42  { 0x32, 10 }, { 0x33, 10 }, { 0x34, 10 }, { 0x35, 13 }, { 0x36, 13 },
43  { 0x37, 13 }, { 0x38, 13 }, { 0x39, 13 }, { 0x3A, 13 }, { 0x3B, 13 },
44  { 0x3C, 13 }, { 0x3D, 13 }, { 0x3E, 13 }, { 0x3F, 13 }, { 0x40, 13 },
45  { 0x41, 13 }, { 0x42, 13 }, { 0x43, 13 }, { 0x44, 13 }, { 0x45, 13 },
46  { 0x46, 13 }, { 0x47, 13 }, { 0x48, 13 }, { 0x49, 13 }, { 0x4A, 13 },
47  { 0x4B, 13 }, { 0x4C, 13 }, { 0x4D, 13 }, { 0x4E, 13 }, { 0x4F, 13 },
48  { 0x50, 13 }, { 0x51, 13 }, { 0x52, 13 }, { 0x53, 13 }, { 0x54, 13 },
49  { 0x55, 13 }, { 0x56, 13 }, { 0x57, 13 }, { 0x58, 13 }, { 0x59, 13 },
50  { 0x5A, 13 }, { 0x5B, 13 }, { 0x5C, 13 }, { 0x5D, 13 }, { 0x5E, 13 },
51  { 0x5F, 13 }, { 0x60, 13 }, { 0x61, 13 }, { 0x62, 13 }, { 0x63, 13 },
52  { 0x64, 13 }, { 0x65, 13 }, { 0x66, 13 }, { 0x67, 13 }, { 0x68, 13 },
53  { 0x69, 13 }, { 0x6A, 13 }, { 0x6B, 13 }, { 0x6C, 13 }, { 0x6D, 13 },
54  { 0x6E, 13 }, { 0x6F, 13 }, { 0x70, 13 }, { 0x71, 13 }, { 0x72, 13 },
55  { 0x73, 13 }, { 0x74, 13 }, { 0x75, 14 }, { 0x76, 14 }, { 0x77, 14 },
56  { 0x78, 14 }, { 0x79, 14 }, { 0x7A, 14 }, { 0x7B, 14 }, { 0x7C, 14 },
57  { 0x7D, 14 }, { 0x7E, 14 }, { 0x7F, 14 },
58 };
59 
60 static const uint8_t ir2_delta_table[4][256] = {
61  { 0x80, 0x80, 0x84, 0x84, 0x7C, 0x7C, 0x7F, 0x85,
62  0x81, 0x7B, 0x85, 0x7F, 0x7B, 0x81, 0x8C, 0x8C,
63  0x74, 0x74, 0x83, 0x8D, 0x7D, 0x73, 0x8D, 0x83,
64  0x73, 0x7D, 0x77, 0x89, 0x89, 0x77, 0x89, 0x77,
65  0x77, 0x89, 0x8C, 0x95, 0x74, 0x6B, 0x95, 0x8C,
66  0x6B, 0x74, 0x7C, 0x90, 0x84, 0x70, 0x90, 0x7C,
67  0x70, 0x84, 0x96, 0x96, 0x6A, 0x6A, 0x82, 0x98,
68  0x7E, 0x68, 0x98, 0x82, 0x68, 0x7E, 0x97, 0xA2,
69  0x69, 0x5E, 0xA2, 0x97, 0x5E, 0x69, 0xA2, 0xA2,
70  0x5E, 0x5E, 0x8B, 0xA3, 0x75, 0x5D, 0xA3, 0x8B,
71  0x5D, 0x75, 0x71, 0x95, 0x8F, 0x6B, 0x95, 0x71,
72  0x6B, 0x8F, 0x78, 0x9D, 0x88, 0x63, 0x9D, 0x78,
73  0x63, 0x88, 0x7F, 0xA7, 0x81, 0x59, 0xA7, 0x7F,
74  0x59, 0x81, 0xA4, 0xB1, 0x5C, 0x4F, 0xB1, 0xA4,
75  0x4F, 0x5C, 0x96, 0xB1, 0x6A, 0x4F, 0xB1, 0x96,
76  0x4F, 0x6A, 0xB2, 0xB2, 0x4E, 0x4E, 0x65, 0x9B,
77  0x9B, 0x65, 0x9B, 0x65, 0x65, 0x9B, 0x89, 0xB4,
78  0x77, 0x4C, 0xB4, 0x89, 0x4C, 0x77, 0x6A, 0xA3,
79  0x96, 0x5D, 0xA3, 0x6A, 0x5D, 0x96, 0x73, 0xAC,
80  0x8D, 0x54, 0xAC, 0x73, 0x54, 0x8D, 0xB4, 0xC3,
81  0x4C, 0x3D, 0xC3, 0xB4, 0x3D, 0x4C, 0xA4, 0xC3,
82  0x5C, 0x3D, 0xC3, 0xA4, 0x3D, 0x5C, 0xC4, 0xC4,
83  0x3C, 0x3C, 0x96, 0xC6, 0x6A, 0x3A, 0xC6, 0x96,
84  0x3A, 0x6A, 0x7C, 0xBA, 0x84, 0x46, 0xBA, 0x7C,
85  0x46, 0x84, 0x5B, 0xAB, 0xA5, 0x55, 0xAB, 0x5B,
86  0x55, 0xA5, 0x63, 0xB4, 0x9D, 0x4C, 0xB4, 0x63,
87  0x4C, 0x9D, 0x86, 0xCA, 0x7A, 0x36, 0xCA, 0x86,
88  0x36, 0x7A, 0xB6, 0xD7, 0x4A, 0x29, 0xD7, 0xB6,
89  0x29, 0x4A, 0xC8, 0xD7, 0x38, 0x29, 0xD7, 0xC8,
90  0x29, 0x38, 0xA4, 0xD8, 0x5C, 0x28, 0xD8, 0xA4,
91  0x28, 0x5C, 0x6C, 0xC1, 0x94, 0x3F, 0xC1, 0x6C,
92  0x3F, 0x94, 0xD9, 0xD9, 0x27, 0x27, 0x80, 0x80, },
93  { 0x80, 0x80, 0x85, 0x85, 0x7B, 0x7B, 0x7E, 0x87,
94  0x82, 0x79, 0x87, 0x7E, 0x79, 0x82, 0x8F, 0x8F,
95  0x71, 0x71, 0x84, 0x8F, 0x7C, 0x71, 0x8F, 0x84,
96  0x71, 0x7C, 0x75, 0x8B, 0x8B, 0x75, 0x8B, 0x75,
97  0x75, 0x8B, 0x8E, 0x9A, 0x72, 0x66, 0x9A, 0x8E,
98  0x66, 0x72, 0x7B, 0x93, 0x85, 0x6D, 0x93, 0x7B,
99  0x6D, 0x85, 0x9B, 0x9B, 0x65, 0x65, 0x82, 0x9D,
100  0x7E, 0x63, 0x9D, 0x82, 0x63, 0x7E, 0x9B, 0xA8,
101  0x65, 0x58, 0xA8, 0x9B, 0x58, 0x65, 0xA9, 0xA9,
102  0x57, 0x57, 0x8D, 0xAA, 0x73, 0x56, 0xAA, 0x8D,
103  0x56, 0x73, 0x6E, 0x99, 0x92, 0x67, 0x99, 0x6E,
104  0x67, 0x92, 0x76, 0xA2, 0x8A, 0x5E, 0xA2, 0x76,
105  0x5E, 0x8A, 0x7F, 0xAF, 0x81, 0x51, 0xAF, 0x7F,
106  0x51, 0x81, 0xAB, 0xBA, 0x55, 0x46, 0xBA, 0xAB,
107  0x46, 0x55, 0x9A, 0xBB, 0x66, 0x45, 0xBB, 0x9A,
108  0x45, 0x66, 0xBB, 0xBB, 0x45, 0x45, 0x60, 0xA0,
109  0xA0, 0x60, 0xA0, 0x60, 0x60, 0xA0, 0x8B, 0xBE,
110  0x75, 0x42, 0xBE, 0x8B, 0x42, 0x75, 0x66, 0xAA,
111  0x9A, 0x56, 0xAA, 0x66, 0x56, 0x9A, 0x70, 0xB5,
112  0x90, 0x4B, 0xB5, 0x70, 0x4B, 0x90, 0xBE, 0xCF,
113  0x42, 0x31, 0xCF, 0xBE, 0x31, 0x42, 0xAB, 0xD0,
114  0x55, 0x30, 0xD0, 0xAB, 0x30, 0x55, 0xD1, 0xD1,
115  0x2F, 0x2F, 0x9A, 0xD3, 0x66, 0x2D, 0xD3, 0x9A,
116  0x2D, 0x66, 0x7B, 0xC5, 0x85, 0x3B, 0xC5, 0x7B,
117  0x3B, 0x85, 0x54, 0xB4, 0xAC, 0x4C, 0xB4, 0x54,
118  0x4C, 0xAC, 0x5E, 0xBE, 0xA2, 0x42, 0xBE, 0x5E,
119  0x42, 0xA2, 0x87, 0xD8, 0x79, 0x28, 0xD8, 0x87,
120  0x28, 0x79, 0xC0, 0xE8, 0x40, 0x18, 0xE8, 0xC0,
121  0x18, 0x40, 0xD5, 0xE8, 0x2B, 0x18, 0xE8, 0xD5,
122  0x18, 0x2B, 0xAB, 0xE9, 0x55, 0x17, 0xE9, 0xAB,
123  0x17, 0x55, 0x68, 0xCD, 0x98, 0x33, 0xCD, 0x68,
124  0x33, 0x98, 0xEA, 0xEA, 0x16, 0x16, 0x80, 0x80, },
125  { 0x80, 0x80, 0x86, 0x86, 0x7A, 0x7A, 0x7E, 0x88,
126  0x82, 0x78, 0x88, 0x7E, 0x78, 0x82, 0x92, 0x92,
127  0x6E, 0x6E, 0x85, 0x92, 0x7B, 0x6E, 0x92, 0x85,
128  0x6E, 0x7B, 0x73, 0x8D, 0x8D, 0x73, 0x8D, 0x73,
129  0x73, 0x8D, 0x91, 0x9E, 0x6F, 0x62, 0x9E, 0x91,
130  0x62, 0x6F, 0x79, 0x97, 0x87, 0x69, 0x97, 0x79,
131  0x69, 0x87, 0xA0, 0xA0, 0x60, 0x60, 0x83, 0xA2,
132  0x7D, 0x5E, 0xA2, 0x83, 0x5E, 0x7D, 0xA0, 0xB0,
133  0x60, 0x50, 0xB0, 0xA0, 0x50, 0x60, 0xB1, 0xB1,
134  0x4F, 0x4F, 0x8F, 0xB2, 0x71, 0x4E, 0xB2, 0x8F,
135  0x4E, 0x71, 0x6B, 0x9E, 0x95, 0x62, 0x9E, 0x6B,
136  0x62, 0x95, 0x74, 0xA9, 0x8C, 0x57, 0xA9, 0x74,
137  0x57, 0x8C, 0x7F, 0xB8, 0x81, 0x48, 0xB8, 0x7F,
138  0x48, 0x81, 0xB4, 0xC5, 0x4C, 0x3B, 0xC5, 0xB4,
139  0x3B, 0x4C, 0x9F, 0xC6, 0x61, 0x3A, 0xC6, 0x9F,
140  0x3A, 0x61, 0xC6, 0xC6, 0x3A, 0x3A, 0x59, 0xA7,
141  0xA7, 0x59, 0xA7, 0x59, 0x59, 0xA7, 0x8D, 0xCA,
142  0x73, 0x36, 0xCA, 0x8D, 0x36, 0x73, 0x61, 0xB2,
143  0x9F, 0x4E, 0xB2, 0x61, 0x4E, 0x9F, 0x6D, 0xBF,
144  0x93, 0x41, 0xBF, 0x6D, 0x41, 0x93, 0xCA, 0xDF,
145  0x36, 0x21, 0xDF, 0xCA, 0x21, 0x36, 0xB3, 0xDF,
146  0x4D, 0x21, 0xDF, 0xB3, 0x21, 0x4D, 0xE1, 0xE1,
147  0x1F, 0x1F, 0x9F, 0xE3, 0x61, 0x1D, 0xE3, 0x9F,
148  0x1D, 0x61, 0x7A, 0xD3, 0x86, 0x2D, 0xD3, 0x7A,
149  0x2D, 0x86, 0x4C, 0xBE, 0xB4, 0x42, 0xBE, 0x4C,
150  0x42, 0xB4, 0x57, 0xCA, 0xA9, 0x36, 0xCA, 0x57,
151  0x36, 0xA9, 0x88, 0xE9, 0x78, 0x17, 0xE9, 0x88,
152  0x17, 0x78, 0xCC, 0xFB, 0x34, 0x05, 0xFB, 0xCC,
153  0x05, 0x34, 0xE6, 0xFB, 0x1A, 0x05, 0xFB, 0xE6,
154  0x05, 0x1A, 0xB4, 0xFD, 0x4C, 0x03, 0xFD, 0xB4,
155  0x03, 0x4C, 0x63, 0xDC, 0x9D, 0x24, 0xDC, 0x63,
156  0x24, 0x9D, 0xFE, 0xFE, 0x02, 0x02, 0x80, 0x80, },
157  { 0x80, 0x80, 0x87, 0x87, 0x79, 0x79, 0x7E, 0x89,
158  0x82, 0x77, 0x89, 0x7E, 0x77, 0x82, 0x95, 0x95,
159  0x6B, 0x6B, 0x86, 0x96, 0x7A, 0x6A, 0x96, 0x86,
160  0x6A, 0x7A, 0x70, 0x90, 0x90, 0x70, 0x90, 0x70,
161  0x70, 0x90, 0x94, 0xA4, 0x6C, 0x5C, 0xA4, 0x94,
162  0x5C, 0x6C, 0x78, 0x9B, 0x88, 0x65, 0x9B, 0x78,
163  0x65, 0x88, 0xA6, 0xA6, 0x5A, 0x5A, 0x83, 0xA9,
164  0x7D, 0x57, 0xA9, 0x83, 0x57, 0x7D, 0xA6, 0xB9,
165  0x5A, 0x47, 0xB9, 0xA6, 0x47, 0x5A, 0xBA, 0xBA,
166  0x46, 0x46, 0x92, 0xBC, 0x6E, 0x44, 0xBC, 0x92,
167  0x44, 0x6E, 0x67, 0xA3, 0x99, 0x5D, 0xA3, 0x67,
168  0x5D, 0x99, 0x72, 0xB0, 0x8E, 0x50, 0xB0, 0x72,
169  0x50, 0x8E, 0x7F, 0xC3, 0x81, 0x3D, 0xC3, 0x7F,
170  0x3D, 0x81, 0xBE, 0xD2, 0x42, 0x2E, 0xD2, 0xBE,
171  0x2E, 0x42, 0xA5, 0xD4, 0x5B, 0x2C, 0xD4, 0xA5,
172  0x2C, 0x5B, 0xD4, 0xD4, 0x2C, 0x2C, 0x52, 0xAE,
173  0xAE, 0x52, 0xAE, 0x52, 0x52, 0xAE, 0x8F, 0xD8,
174  0x71, 0x28, 0xD8, 0x8F, 0x28, 0x71, 0x5B, 0xBB,
175  0xA5, 0x45, 0xBB, 0x5B, 0x45, 0xA5, 0x69, 0xCB,
176  0x97, 0x35, 0xCB, 0x69, 0x35, 0x97, 0xD8, 0xF0,
177  0x28, 0x10, 0xF0, 0xD8, 0x10, 0x28, 0xBD, 0xF1,
178  0x43, 0x0F, 0xF1, 0xBD, 0x0F, 0x43, 0xF3, 0xF3,
179  0x0D, 0x0D, 0xA5, 0xF6, 0x5B, 0x0A, 0xF6, 0xA5,
180  0x0A, 0x5B, 0x78, 0xE2, 0x88, 0x1E, 0xE2, 0x78,
181  0x1E, 0x88, 0x42, 0xC9, 0xBE, 0x37, 0xC9, 0x42,
182  0x37, 0xBE, 0x4F, 0xD8, 0xB1, 0x28, 0xD8, 0x4F,
183  0x28, 0xB1, 0x8A, 0xFD, 0x76, 0x03, 0xFD, 0x8A,
184  0x03, 0x76, 0xDB, 0xFF, 0x25, 0x01, 0xFF, 0xDB,
185  0x01, 0x25, 0xF9, 0xFF, 0x07, 0x01, 0xFF, 0xF9,
186  0x01, 0x07, 0xBE, 0xFF, 0x42, 0x01, 0xFF, 0xBE,
187  0x01, 0x42, 0x5E, 0xED, 0xA2, 0x13, 0xED, 0x5E,
188  0x13, 0xA2, 0xFF, 0xFF, 0x01, 0x01, 0x80, 0x80, },
189 };
190 
191 #endif /* AVCODEC_INDEO2DATA_H */
uint8_t
static const uint8_t ir2_tab[IR2_CODES][2]
Definition: indeo2data.h:28
#define IR2_CODES
Definition: indeo2data.h:27
static const uint8_t ir2_delta_table[4][256]
Definition: indeo2data.h:60