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