Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 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 
26
 
27
#define IR2_CODES 143
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},
66
#else
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}
103
#endif
104
};
105
 
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
139
};
140
 
141
#endif /* AVCODEC_INDEO2DATA_H */