3 * copyright (c) 2005 Konstantin Shishkov
5 * This file is part of FFmpeg.
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.
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.
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
22 #ifndef AVCODEC_INDEO2DATA_H
23 #define AVCODEC_INDEO2DATA_H
28 static const uint16_t ir2_codes[IR2_CODES][2] = {
29 #ifdef BITSTREAM_READER_LE
30 {0x0000, 3}, {0x0004, 3}, {0x0006, 3}, {0x0001, 5},
31 {0x0009, 5}, {0x0019, 5}, {0x000D, 5}, {0x001D, 5},
32 {0x0023, 6}, {0x0013, 6}, {0x0033, 6}, {0x000B, 6},
33 {0x002B, 6}, {0x001B, 6}, {0x0007, 8}, {0x0087, 8},
34 {0x0027, 8}, {0x00A7, 8}, {0x0067, 8}, {0x00E7, 8},
35 {0x0097, 8}, {0x0057, 8}, {0x0037, 8}, {0x00B7, 8},
36 {0x00F7, 8}, {0x000F, 9}, {0x008F, 9}, {0x018F, 9},
37 {0x014F, 9}, {0x00CF, 9}, {0x002F, 9}, {0x012F, 9},
38 {0x01AF, 9}, {0x006F, 9}, {0x00EF, 9}, {0x01EF, 9},
39 {0x001F, 10}, {0x021F, 10}, {0x011F, 10}, {0x031F, 10},
40 {0x009F, 10}, {0x029F, 10}, {0x019F, 10}, {0x039F, 10},
41 {0x005F, 10}, {0x025F, 10}, {0x015F, 10}, {0x035F, 10},
42 {0x00DF, 10}, {0x02DF, 10}, {0x01DF, 10}, {0x03DF, 10},
43 {0x003F, 13}, {0x103F, 13}, {0x083F, 13}, {0x183F, 13},
44 {0x043F, 13}, {0x143F, 13}, {0x0C3F, 13}, {0x1C3F, 13},
45 {0x023F, 13}, {0x123F, 13}, {0x0A3F, 13}, {0x1A3F, 13},
46 {0x063F, 13}, {0x163F, 13}, {0x0E3F, 13}, {0x1E3F, 13},
47 {0x013F, 13}, {0x113F, 13}, {0x093F, 13}, {0x193F, 13},
48 {0x053F, 13}, {0x153F, 13}, {0x0D3F, 13}, {0x1D3F, 13},
49 {0x033F, 13}, {0x133F, 13}, {0x0B3F, 13}, {0x1B3F, 13},
50 {0x073F, 13}, {0x173F, 13}, {0x0F3F, 13}, {0x1F3F, 13},
51 {0x00BF, 13}, {0x10BF, 13}, {0x08BF, 13}, {0x18BF, 13},
52 {0x04BF, 13}, {0x14BF, 13}, {0x0CBF, 13}, {0x1CBF, 13},
53 {0x02BF, 13}, {0x12BF, 13}, {0x0ABF, 13}, {0x1ABF, 13},
54 {0x06BF, 13}, {0x16BF, 13}, {0x0EBF, 13}, {0x1EBF, 13},
55 {0x01BF, 13}, {0x11BF, 13}, {0x09BF, 13}, {0x19BF, 13},
56 {0x05BF, 13}, {0x15BF, 13}, {0x0DBF, 13}, {0x1DBF, 13},
57 {0x03BF, 13}, {0x13BF, 13}, {0x0BBF, 13}, {0x1BBF, 13},
58 {0x07BF, 13}, {0x17BF, 13}, {0x0FBF, 13}, {0x1FBF, 13},
59 {0x007F, 14}, {0x207F, 14}, {0x107F, 14}, {0x307F, 14},
60 {0x087F, 14}, {0x287F, 14}, {0x187F, 14}, {0x387F, 14},
61 {0x047F, 14}, {0x247F, 14}, {0x147F, 14}, {0x0002, 3},
62 {0x0011, 5}, {0x0005, 5}, {0x0015, 5}, {0x0003, 6},
63 {0x003B, 6}, {0x0047, 8}, {0x00C7, 8}, {0x0017, 8},
64 {0x00D7, 8}, {0x0077, 8}, {0x010F, 9}, {0x004F, 9},
65 {0x01CF, 9}, {0x00AF, 9}, {0x016F, 9},
67 {0x0000, 3}, {0x0001, 3}, {0x0003, 3}, {0x0010, 5},
68 {0x0012, 5}, {0x0013, 5}, {0x0016, 5}, {0x0017, 5},
69 {0x0031, 6}, {0x0032, 6}, {0x0033, 6}, {0x0034, 6},
70 {0x0035, 6}, {0x0036, 6}, {0x00E0, 8}, {0x00E1, 8},
71 {0x00E4, 8}, {0x00E5, 8}, {0x00E6, 8}, {0x00E7, 8},
72 {0x00E9, 8}, {0x00EA, 8}, {0x00EC, 8}, {0x00ED, 8},
73 {0x00EF, 8}, {0x01E0, 9}, {0x01E2, 9}, {0x01E3, 9},
74 {0x01E5, 9}, {0x01E6, 9}, {0x01E8, 9}, {0x01E9, 9},
75 {0x01EB, 9}, {0x01EC, 9}, {0x01EE, 9}, {0x01EF, 9},
76 {0x03E0, 10}, {0x03E1, 10}, {0x03E2, 10}, {0x03E3, 10},
77 {0x03E4, 10}, {0x03E5, 10}, {0x03E6, 10}, {0x03E7, 10},
78 {0x03E8, 10}, {0x03E9, 10}, {0x03EA, 10}, {0x03EB, 10},
79 {0x03EC, 10}, {0x03ED, 10}, {0x03EE, 10}, {0x03EF, 10},
80 {0x1F80, 13}, {0x1F81, 13}, {0x1F82, 13}, {0x1F83, 13},
81 {0x1F84, 13}, {0x1F85, 13}, {0x1F86, 13}, {0x1F87, 13},
82 {0x1F88, 13}, {0x1F89, 13}, {0x1F8A, 13}, {0x1F8B, 13},
83 {0x1F8C, 13}, {0x1F8D, 13}, {0x1F8E, 13}, {0x1F8F, 13},
84 {0x1F90, 13}, {0x1F91, 13}, {0x1F92, 13}, {0x1F93, 13},
85 {0x1F94, 13}, {0x1F95, 13}, {0x1F96, 13}, {0x1F97, 13},
86 {0x1F98, 13}, {0x1F99, 13}, {0x1F9A, 13}, {0x1F9B, 13},
87 {0x1F9C, 13}, {0x1F9D, 13}, {0x1F9E, 13}, {0x1F9F, 13},
88 {0x1FA0, 13}, {0x1FA1, 13}, {0x1FA2, 13}, {0x1FA3, 13},
89 {0x1FA4, 13}, {0x1FA5, 13}, {0x1FA6, 13}, {0x1FA7, 13},
90 {0x1FA8, 13}, {0x1FA9, 13}, {0x1FAA, 13}, {0x1FAB, 13},
91 {0x1FAC, 13}, {0x1FAD, 13}, {0x1FAE, 13}, {0x1FAF, 13},
92 {0x1FB0, 13}, {0x1FB1, 13}, {0x1FB2, 13}, {0x1FB3, 13},
93 {0x1FB4, 13}, {0x1FB5, 13}, {0x1FB6, 13}, {0x1FB7, 13},
94 {0x1FB8, 13}, {0x1FB9, 13}, {0x1FBA, 13}, {0x1FBB, 13},
95 {0x1FBC, 13}, {0x1FBD, 13}, {0x1FBE, 13}, {0x1FBF, 13},
96 {0x3F80, 14}, {0x3F81, 14}, {0x3F82, 14}, {0x3F83, 14},
97 {0x3F84, 14}, {0x3F85, 14}, {0x3F86, 14}, {0x3F87, 14},
98 {0x3F88, 14}, {0x3F89, 14}, {0x3F8A, 14}, {0x0002, 3},
99 {0x0011, 5}, {0x0014, 5}, {0x0015, 5}, {0x0030, 6},
100 {0x0037, 6}, {0x00E2, 8}, {0x00E3, 8}, {0x00E8, 8},
101 {0x00EB, 8}, {0x00EE, 8}, {0x01E1, 9}, {0x01E4, 9},
102 {0x01E7, 9}, {0x01EA, 9}, {0x01ED, 9}
106 static const uint8_t ir2_luma_table[256] = {
107 0x80, 0x80, 0x84, 0x84, 0x7C, 0x7C, 0x7F, 0x85,
108 0x81, 0x7B, 0x85, 0x7F, 0x7B, 0x81, 0x8C, 0x8C,
109 0x74, 0x74, 0x83, 0x8D, 0x7D, 0x73, 0x8D, 0x83,
110 0x73, 0x7D, 0x77, 0x89, 0x89, 0x77, 0x89, 0x77,
111 0x77, 0x89, 0x8C, 0x95, 0x74, 0x6B, 0x95, 0x8C,
112 0x6B, 0x74, 0x7C, 0x90, 0x84, 0x70, 0x90, 0x7C,
113 0x70, 0x84, 0x96, 0x96, 0x6A, 0x6A, 0x82, 0x98,
114 0x7E, 0x68, 0x98, 0x82, 0x68, 0x7E, 0x97, 0xA2,
115 0x69, 0x5E, 0xA2, 0x97, 0x5E, 0x69, 0xA2, 0xA2,
116 0x5E, 0x5E, 0x8B, 0xA3, 0x75, 0x5D, 0xA3, 0x8B,
117 0x5D, 0x75, 0x71, 0x95, 0x8F, 0x6B, 0x95, 0x71,
118 0x6B, 0x8F, 0x78, 0x9D, 0x88, 0x63, 0x9D, 0x78,
119 0x63, 0x88, 0x7F, 0xA7, 0x81, 0x59, 0xA7, 0x7F,
120 0x59, 0x81, 0xA4, 0xB1, 0x5C, 0x4F, 0xB1, 0xA4,
121 0x4F, 0x5C, 0x96, 0xB1, 0x6A, 0x4F, 0xB1, 0x96,
122 0x4F, 0x6A, 0xB2, 0xB2, 0x4E, 0x4E, 0x65, 0x9B,
123 0x9B, 0x65, 0x9B, 0x65, 0x65, 0x9B, 0x89, 0xB4,
124 0x77, 0x4C, 0xB4, 0x89, 0x4C, 0x77, 0x6A, 0xA3,
125 0x96, 0x5D, 0xA3, 0x6A, 0x5D, 0x96, 0x73, 0xAC,
126 0x8D, 0x54, 0xAC, 0x73, 0x54, 0x8D, 0xB4, 0xC3,
127 0x4C, 0x3D, 0xC3, 0xB4, 0x3D, 0x4C, 0xA4, 0xC3,
128 0x5C, 0x3D, 0xC3, 0xA4, 0x3D, 0x5C, 0xC4, 0xC4,
129 0x3C, 0x3C, 0x96, 0xC6, 0x6A, 0x3A, 0xC6, 0x96,
130 0x3A, 0x6A, 0x7C, 0xBA, 0x84, 0x46, 0xBA, 0x7C,
131 0x46, 0x84, 0x5B, 0xAB, 0xA5, 0x55, 0xAB, 0x5B,
132 0x55, 0xA5, 0x63, 0xB4, 0x9D, 0x4C, 0xB4, 0x63,
133 0x4C, 0x9D, 0x86, 0xCA, 0x7A, 0x36, 0xCA, 0x86,
134 0x36, 0x7A, 0xB6, 0xD7, 0x4A, 0x29, 0xD7, 0xB6,
135 0x29, 0x4A, 0xC8, 0xD7, 0x38, 0x29, 0xD7, 0xC8,
136 0x29, 0x38, 0xA4, 0xD8, 0x5C, 0x28, 0xD8, 0xA4,
137 0x28, 0x5C, 0x6C, 0xC1, 0x94, 0x3F, 0xC1, 0x6C,
138 0x3F, 0x94, 0xD9, 0xD9, 0x27, 0x27, 0x80, 0x80
141 #endif /* AVCODEC_INDEO2DATA_H */