3
* copyright (c) 2007 Konstantin Shishkov
5
* This file is part of Libav.
7
* Libav 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
* Libav 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 Libav; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24
* RV40 VLC tables used for macroblock information decoding
27
#ifndef AVCODEC_RV40VLC2_H
28
#define AVCODEC_RV40VLC2_H
33
* codes used for the first four block types
36
#define AIC_TOP_BITS 8
37
#define AIC_TOP_SIZE 16
38
static const uint8_t rv40_aic_top_vlc_codes[AIC_TOP_SIZE] = {
39
0x01, 0x05, 0x01, 0x00, 0x03, 0x3D, 0x1D, 0x02,
40
0x04, 0x3C, 0x3F, 0x1C, 0x0D, 0x3E, 0x0C, 0x01
43
static const uint8_t rv40_aic_top_vlc_bits[AIC_TOP_SIZE] = {
44
1, 4, 5, 5, 5, 7, 6, 5, 4, 7, 7, 6, 5, 7, 5, 3
49
* codes used for determining a pair of block types
52
#define AIC_MODE2_NUM 20
53
#define AIC_MODE2_SIZE 81
54
#define AIC_MODE2_BITS 9
56
static const uint16_t aic_mode2_vlc_codes[AIC_MODE2_NUM][AIC_MODE2_SIZE] = {
57
{ 0x0001, 0x0001, 0x0005, 0x01F5, 0x0011, 0x0049, 0x0000, 0x0048, 0x004B,
58
0x0035, 0x0003, 0x0034, 0x03C9, 0x01F4, 0x00C9, 0x004A, 0x0FD9, 0x03C8,
59
0x0010, 0x0037, 0x0001, 0x00C8, 0x0075, 0x01F7, 0x00CB, 0x0074, 0x0002,
60
0x01F6, 0x00CA, 0x01F1, 0x01F0, 0x1F81, 0x07F9, 0x1F80, 0x1F83, 0x07F8,
61
0x0077, 0x00F5, 0x0036, 0x07FB, 0x0076, 0x1F82, 0x00F4, 0x00F7, 0x07FA,
62
0x0071, 0x00F6, 0x03CB, 0x03CA, 0x0FD8, 0x00F1, 0x03F5, 0x1F8D, 0x07E5,
63
0x0013, 0x0031, 0x00F0, 0x0FDB, 0x00F3, 0x07E4, 0x0030, 0x01F3, 0x07E7,
64
0x03F4, 0x07E6, 0x0070, 0x3F19, 0x01F2, 0x3F18, 0x0FDA, 0x0033, 0x07E1,
65
0x01FD, 0x01FC, 0x0073, 0x01FF, 0x0FC5, 0x0FC4, 0x0FC7, 0x03F7, 0x0072, },
66
{ 0x0005, 0x0005, 0x0005, 0x0079, 0x0005, 0x000D, 0x001D, 0x0078, 0x0069,
67
0x0004, 0x0001, 0x0007, 0x0068, 0x001C, 0x001F, 0x0004, 0x006B, 0x000C,
68
0x0004, 0x001E, 0x0006, 0x006A, 0x0015, 0x000F, 0x0014, 0x0017, 0x0007,
69
0x0016, 0x000E, 0x0011, 0x0009, 0x00D1, 0x00D0, 0x0181, 0x00D3, 0x007B,
70
0x0010, 0x0013, 0x0004, 0x00D2, 0x0007, 0x0319, 0x0008, 0x007A, 0x00DD,
71
0x0019, 0x0006, 0x000B, 0x0065, 0x00DC, 0x0012, 0x0064, 0x0180, 0x00DF,
72
0x0006, 0x0018, 0x0001, 0x00DE, 0x001D, 0x00D9, 0x001B, 0x0067, 0x000A,
73
0x00D8, 0x00DB, 0x001C, 0x0318, 0x00DA, 0x0635, 0x0183, 0x0000, 0x00C5,
74
0x0066, 0x0061, 0x0035, 0x00C4, 0x0182, 0x0634, 0x031B, 0x00C7, 0x001F, },
75
{ 0x0005, 0x0001, 0x001D, 0x01C1, 0x0035, 0x00F1, 0x006D, 0x00F0, 0x0049,
76
0x0000, 0x0004, 0x0003, 0x00F3, 0x0048, 0x0034, 0x006C, 0x01C0, 0x01C3,
77
0x0007, 0x0006, 0x0001, 0x006F, 0x0002, 0x004B, 0x006E, 0x001C, 0x0005,
78
0x0069, 0x0068, 0x006B, 0x0037, 0x01C2, 0x00F2, 0x0395, 0x01CD, 0x00FD,
79
0x006A, 0x0036, 0x0015, 0x01CC, 0x0014, 0x0394, 0x004A, 0x00FC, 0x00FF,
80
0x0017, 0x0031, 0x00FE, 0x01CF, 0x0397, 0x00F9, 0x01CE, 0x0725, 0x0396,
81
0x0016, 0x0030, 0x0075, 0x0724, 0x00F8, 0x0727, 0x0033, 0x0391, 0x0390,
82
0x0011, 0x0032, 0x001F, 0x00FB, 0x0074, 0x0726, 0x00FA, 0x001E, 0x0077,
83
0x0019, 0x0018, 0x0004, 0x0010, 0x003D, 0x0076, 0x0071, 0x0013, 0x0001, },
84
{ 0x000D, 0x0019, 0x0011, 0x0015, 0x0061, 0x0019, 0x0014, 0x01AD, 0x0060,
85
0x0018, 0x0001, 0x0005, 0x001B, 0x0010, 0x0019, 0x0005, 0x0017, 0x0018,
86
0x0016, 0x0004, 0x0004, 0x0013, 0x000C, 0x0012, 0x001A, 0x0018, 0x0005,
87
0x000F, 0x001B, 0x0004, 0x001D, 0x0011, 0x001C, 0x0010, 0x000E, 0x001B,
88
0x0013, 0x001F, 0x001A, 0x0029, 0x0005, 0x0063, 0x001E, 0x0009, 0x0062,
89
0x0008, 0x0007, 0x0007, 0x0019, 0x0004, 0x001A, 0x0018, 0x006D, 0x0007,
90
0x001B, 0x0007, 0x001A, 0x006C, 0x0006, 0x0012, 0x0005, 0x006F, 0x000B,
91
0x006E, 0x0069, 0x001D, 0x0359, 0x0028, 0x002B, 0x002A, 0x001C, 0x00D5,
92
0x0358, 0x001F, 0x0001, 0x001E, 0x0068, 0x00D4, 0x00D7, 0x0019, 0x0000, },
93
{ 0x00B9, 0x0061, 0x0060, 0x00B8, 0x02B5, 0x01AD, 0x00BB, 0x0AF5, 0x0151,
94
0x0001, 0x0001, 0x0005, 0x0000, 0x0003, 0x0005, 0x0004, 0x0063, 0x0025,
95
0x00BA, 0x0004, 0x0007, 0x0062, 0x00A5, 0x0024, 0x006D, 0x0002, 0x006C,
96
0x02B4, 0x000D, 0x006F, 0x0027, 0x00A4, 0x0026, 0x01AC, 0x0150, 0x01AF,
97
0x01AE, 0x0021, 0x006E, 0x02B7, 0x0020, 0x0153, 0x0023, 0x00A7, 0x0152,
98
0x00A6, 0x0006, 0x000C, 0x0022, 0x01A9, 0x0019, 0x002D, 0x02B6, 0x01A8,
99
0x000F, 0x0007, 0x000E, 0x00A1, 0x0069, 0x002C, 0x0001, 0x01AB, 0x00A0,
100
0x02B1, 0x00A3, 0x002F, 0x0AF4, 0x02B0, 0x0AF7, 0x02B3, 0x0068, 0x015D,
101
0x0AF6, 0x01AA, 0x0055, 0x015C, 0x02B2, 0x0579, 0x0578, 0x015F, 0x00A2, },
102
{ 0x0905, 0x013D, 0x013C, 0x0904, 0x121D, 0x049D, 0x049C, 0x243D, 0x0907,
103
0x00ED, 0x0001, 0x0015, 0x0041, 0x013F, 0x0031, 0x0014, 0x025D, 0x025C,
104
0x013E, 0x000D, 0x0000, 0x0040, 0x0139, 0x0043, 0x0030, 0x0017, 0x0033,
105
0x0906, 0x0032, 0x0042, 0x00EC, 0x025F, 0x00EF, 0x025E, 0x049F, 0x0138,
106
0x0901, 0x013B, 0x0259, 0x121C, 0x049E, 0x0900, 0x0258, 0x243C, 0x121F,
107
0x0903, 0x003D, 0x00EE, 0x025B, 0x025A, 0x004D, 0x013A, 0x0902, 0x0245,
108
0x00E9, 0x0016, 0x00E8, 0x0499, 0x0125, 0x0244, 0x004C, 0x0498, 0x090D,
109
0x00EB, 0x003C, 0x0011, 0x049B, 0x049A, 0x0485, 0x00EA, 0x003F, 0x0124,
110
0x090C, 0x003E, 0x0039, 0x0095, 0x0247, 0x0246, 0x0484, 0x0094, 0x0038, },
111
{ 0x0F09, 0x00CD, 0x01FD, 0x0791, 0x1E6D, 0x0790, 0x03D9, 0x3CD1, 0x3CD0,
112
0x0075, 0x0001, 0x0001, 0x0035, 0x00CC, 0x0011, 0x0000, 0x03D8, 0x01FC,
113
0x03DB, 0x0010, 0x0003, 0x00CF, 0x03DA, 0x00CE, 0x0074, 0x0034, 0x0077,
114
0x0793, 0x0013, 0x0076, 0x0071, 0x03C5, 0x0070, 0x01FF, 0x0792, 0x01FE,
115
0x01F9, 0x0037, 0x00C9, 0x0F08, 0x01F8, 0x03C4, 0x00C8, 0x0F0B, 0x079D,
116
0x03C7, 0x0001, 0x0012, 0x0073, 0x00CB, 0x0005, 0x0036, 0x03C6, 0x0072,
117
0x007D, 0x0002, 0x00CA, 0x079C, 0x01FB, 0x00F5, 0x0031, 0x079F, 0x0F0A,
118
0x0F35, 0x079E, 0x01FA, 0x1E6C, 0x1E6F, 0x3CD3, 0x0799, 0x03C1, 0x1E6E,
119
0x3CD2, 0x0030, 0x00F4, 0x007C, 0x03C0, 0x03C3, 0x0798, 0x01E5, 0x00F7, },
120
{ 0x01A5, 0x0001, 0x001D, 0x0021, 0x00A1, 0x000D, 0x0061, 0x06B9, 0x00A0,
121
0x0060, 0x0001, 0x0005, 0x000C, 0x0020, 0x001C, 0x0004, 0x01A4, 0x01A7,
122
0x00A3, 0x001F, 0x001E, 0x0023, 0x0022, 0x002D, 0x002C, 0x0063, 0x0062,
123
0x1A81, 0x01A6, 0x01A1, 0x06B8, 0x06BB, 0x00A2, 0x06BA, 0x0D59, 0x06A5,
124
0x01A0, 0x000F, 0x006D, 0x06A4, 0x002F, 0x00AD, 0x006C, 0x06A7, 0x00AC,
125
0x0D58, 0x000E, 0x01A3, 0x00AF, 0x00AE, 0x006F, 0x01A2, 0x0D5B, 0x00A9,
126
0x0019, 0x0001, 0x0009, 0x00A8, 0x006E, 0x002E, 0x0000, 0x01AD, 0x00AB,
127
0x00AA, 0x0355, 0x0029, 0x1A80, 0x1A83, 0x1A82, 0x0354, 0x01AC, 0x0D5A,
128
0x1A8D, 0x01AF, 0x0357, 0x0D45, 0x0D44, 0x0D47, 0x1A8C, 0x06A6, 0x06A1, },
129
{ 0x0001, 0x0011, 0x0005, 0x0775, 0x00F9, 0x00F8, 0x0031, 0x0030, 0x0049,
130
0x00FB, 0x0010, 0x0033, 0x0EC9, 0x038D, 0x038C, 0x00FA, 0x038F, 0x0774,
131
0x0048, 0x0032, 0x0000, 0x01D5, 0x00E5, 0x038E, 0x00E4, 0x0013, 0x000D,
132
0x0389, 0x0777, 0x0388, 0x038B, 0x1DF9, 0x0EC8, 0x3BC9, 0x1DF8, 0x038A,
133
0x03B5, 0x0776, 0x00E7, 0x3BC8, 0x01D4, 0x3BCB, 0x0ECB, 0x0771, 0x0ECA,
134
0x01D7, 0x03B4, 0x01D6, 0x1DFB, 0x0EF5, 0x0770, 0x0EF4, 0x3BCA, 0x0773,
135
0x00E6, 0x03B7, 0x004B, 0x1DFA, 0x03B6, 0x0EF7, 0x00E1, 0x0EF6, 0x0EF1,
136
0x03B1, 0x01D1, 0x003D, 0x0EF0, 0x0772, 0x077D, 0x077C, 0x003C, 0x01D0,
137
0x03B0, 0x01D3, 0x003F, 0x03B3, 0x01D2, 0x0EF3, 0x077F, 0x00E0, 0x004A, },
138
{ 0x0015, 0x0049, 0x0014, 0x07D1, 0x03FD, 0x03FC, 0x01C1, 0x01C0, 0x00F1,
139
0x0017, 0x0001, 0x0001, 0x01C3, 0x0048, 0x004B, 0x0016, 0x0031, 0x01C2,
140
0x004A, 0x0011, 0x0000, 0x01CD, 0x00F0, 0x01CC, 0x0075, 0x0010, 0x000D,
141
0x03FF, 0x01CF, 0x01CE, 0x07D0, 0x0F81, 0x07D3, 0x1F1D, 0x0F80, 0x07D2,
142
0x01C9, 0x03FE, 0x0074, 0x07DD, 0x00F3, 0x1F1C, 0x07DC, 0x03F9, 0x07DF,
143
0x00F2, 0x00FD, 0x0077, 0x07DE, 0x07D9, 0x01C8, 0x07D8, 0x0F83, 0x03F8,
144
0x0030, 0x0076, 0x0013, 0x0F82, 0x00FC, 0x03FB, 0x0033, 0x03FA, 0x03E5,
145
0x03E4, 0x01CB, 0x0032, 0x1F1F, 0x03E7, 0x07DB, 0x07DA, 0x003D, 0x01CA,
146
0x07C5, 0x03E6, 0x0071, 0x0F8D, 0x07C4, 0x1F1E, 0x0F8C, 0x03E1, 0x01F5, },
147
{ 0x0019, 0x0065, 0x0018, 0x0351, 0x0350, 0x0353, 0x0021, 0x0020, 0x0064,
148
0x001D, 0x0005, 0x0005, 0x01A5, 0x0023, 0x0067, 0x0005, 0x0066, 0x0022,
149
0x001B, 0x0004, 0x0001, 0x0004, 0x001C, 0x0061, 0x001A, 0x0005, 0x0004,
150
0x0007, 0x002D, 0x0006, 0x002C, 0x01A4, 0x002F, 0x0352, 0x035D, 0x0060,
151
0x0001, 0x002E, 0x001F, 0x035C, 0x0000, 0x06B1, 0x01A7, 0x0029, 0x01A6,
152
0x0028, 0x0063, 0x0062, 0x035F, 0x01A1, 0x002B, 0x06B0, 0x06B3, 0x01A0,
153
0x0003, 0x006D, 0x001E, 0x035E, 0x006C, 0x06B2, 0x0002, 0x01A3, 0x01A2,
154
0x000D, 0x0005, 0x0007, 0x01AD, 0x006F, 0x002A, 0x006E, 0x0004, 0x0004,
155
0x000C, 0x0007, 0x0006, 0x000F, 0x000E, 0x00D5, 0x0009, 0x0006, 0x0007, },
156
{ 0x0065, 0x0181, 0x0064, 0x36C9, 0x06D5, 0x0DB5, 0x0379, 0x0180, 0x0183,
157
0x00D5, 0x001D, 0x001C, 0x0DB4, 0x0182, 0x0378, 0x00D4, 0x00D7, 0x06D4,
158
0x0067, 0x001F, 0x0001, 0x00D6, 0x00D1, 0x018D, 0x0066, 0x0001, 0x0000,
159
0x037B, 0x06D7, 0x037A, 0x0DB7, 0x36C8, 0x06D6, 0x0DB6, 0x1B79, 0x0DB1,
160
0x018C, 0x0365, 0x00D0, 0x1B78, 0x00D3, 0x1B7B, 0x0364, 0x06D1, 0x06D0,
161
0x018F, 0x018E, 0x00D2, 0x36CB, 0x0367, 0x0366, 0x06D3, 0x0DB0, 0x06D2,
162
0x0361, 0x06DD, 0x0189, 0x36CA, 0x0360, 0x36F5, 0x0188, 0x0DB3, 0x36F4,
163
0x0009, 0x0008, 0x0005, 0x06DC, 0x00DD, 0x018B, 0x00DC, 0x0004, 0x000B,
164
0x018A, 0x0061, 0x0003, 0x0363, 0x00DF, 0x06DF, 0x0362, 0x000A, 0x001E, },
165
{ 0x001D, 0x0061, 0x000D, 0x0D55, 0x06B9, 0x06B8, 0x01A5, 0x0021, 0x0020,
166
0x0023, 0x000C, 0x0060, 0x0D54, 0x00AD, 0x00AC, 0x0022, 0x00AF, 0x06BB,
167
0x000F, 0x001C, 0x0001, 0x002D, 0x0063, 0x01A4, 0x000E, 0x0001, 0x0005,
168
0x01A7, 0x06BA, 0x01A6, 0x06A5, 0x0D57, 0x0D56, 0x1ABD, 0x0D51, 0x00AE,
169
0x002C, 0x00A9, 0x002F, 0x0D50, 0x01A1, 0x1ABC, 0x06A4, 0x06A7, 0x06A6,
170
0x00A8, 0x06A1, 0x01A0, 0x1ABF, 0x0D53, 0x06A0, 0x0D52, 0x1ABE, 0x06A3,
171
0x0062, 0x002E, 0x0009, 0x0D5D, 0x01A3, 0x0D5C, 0x006D, 0x00AB, 0x06A2,
172
0x006C, 0x001F, 0x0001, 0x06AD, 0x0029, 0x01A2, 0x0028, 0x0004, 0x001E,
173
0x01AD, 0x006F, 0x0000, 0x01AC, 0x01AF, 0x06AC, 0x00AA, 0x006E, 0x0019, },
174
{ 0x0019, 0x007D, 0x0018, 0x01B5, 0x000D, 0x01B4, 0x007C, 0x007F, 0x01B7,
175
0x000C, 0x001B, 0x001A, 0x01B6, 0x000F, 0x00D5, 0x0019, 0x007E, 0x00D4,
176
0x0018, 0x001B, 0x0001, 0x000E, 0x0011, 0x0009, 0x0005, 0x0005, 0x0005,
177
0x00D7, 0x01B1, 0x0008, 0x01B0, 0x0079, 0x06FD, 0x0371, 0x0370, 0x00D6,
178
0x0078, 0x01B3, 0x0010, 0x0373, 0x0013, 0x06FC, 0x007B, 0x007A, 0x00D1,
179
0x00D0, 0x00D3, 0x0065, 0x0372, 0x06FF, 0x0064, 0x06FE, 0x037D, 0x00D2,
180
0x00DD, 0x0067, 0x0004, 0x037C, 0x0012, 0x01B2, 0x0007, 0x0066, 0x01BD,
181
0x0006, 0x0061, 0x0004, 0x01BC, 0x001A, 0x0060, 0x001D, 0x0004, 0x001C,
182
0x0063, 0x0001, 0x0007, 0x000B, 0x0000, 0x0062, 0x000A, 0x0005, 0x0007, },
183
{ 0x0069, 0x0045, 0x0068, 0x04BD, 0x0255, 0x04BC, 0x00E5, 0x00E4, 0x0031,
184
0x0030, 0x0019, 0x0001, 0x0121, 0x00E7, 0x00E6, 0x0033, 0x00E1, 0x00E0,
185
0x006B, 0x0018, 0x0001, 0x0044, 0x0032, 0x0047, 0x006A, 0x001B, 0x0005,
186
0x003D, 0x0046, 0x0015, 0x0041, 0x0120, 0x0123, 0x04BF, 0x0122, 0x0040,
187
0x003C, 0x00E3, 0x0014, 0x0254, 0x0043, 0x0975, 0x012D, 0x00E2, 0x00ED,
188
0x0042, 0x00EC, 0x004D, 0x0257, 0x0256, 0x0251, 0x04BE, 0x0974, 0x0250,
189
0x00EF, 0x00EE, 0x004C, 0x04B9, 0x012C, 0x04B8, 0x004F, 0x04BB, 0x0253,
190
0x003F, 0x0017, 0x0001, 0x0252, 0x00E9, 0x00E8, 0x00EB, 0x0000, 0x0003,
191
0x0016, 0x0002, 0x0004, 0x004E, 0x003E, 0x00EA, 0x0049, 0x000D, 0x0007, },
192
{ 0x000D, 0x01BD, 0x000C, 0x0D31, 0x0D30, 0x0D33, 0x0359, 0x0358, 0x002D,
193
0x0065, 0x001D, 0x001C, 0x0D32, 0x035B, 0x035A, 0x002C, 0x01BC, 0x0345,
194
0x000F, 0x001F, 0x0001, 0x002F, 0x0064, 0x01BF, 0x0067, 0x0001, 0x0005,
195
0x0066, 0x002E, 0x0061, 0x0029, 0x0695, 0x0694, 0x0697, 0x0696, 0x0060,
196
0x01BE, 0x0D3D, 0x0028, 0x1A49, 0x0344, 0x1A48, 0x1A4B, 0x0D3C, 0x0691,
197
0x002B, 0x01B9, 0x002A, 0x0D3F, 0x0690, 0x0347, 0x0D3E, 0x1A4A, 0x0346,
198
0x00D5, 0x0341, 0x0063, 0x0D39, 0x0340, 0x0D38, 0x01B8, 0x0D3B, 0x0D3A,
199
0x00D4, 0x0062, 0x0000, 0x0693, 0x01BB, 0x0343, 0x0342, 0x001E, 0x000E,
200
0x006D, 0x0009, 0x0001, 0x006C, 0x00D7, 0x034D, 0x01BA, 0x0008, 0x0004, },
201
{ 0x0075, 0x00CD, 0x0035, 0x03C1, 0x03C0, 0x07F9, 0x03C3, 0x1F8D, 0x00CC,
202
0x0074, 0x0011, 0x0010, 0x03C2, 0x0FD9, 0x01F1, 0x00CF, 0x03CD, 0x00CE,
203
0x0034, 0x0001, 0x0001, 0x0037, 0x00C9, 0x00C8, 0x0036, 0x0000, 0x0001,
204
0x0FD8, 0x03CC, 0x00CB, 0x01F0, 0x07F8, 0x03CF, 0x07FB, 0x07FA, 0x00CA,
205
0x01F3, 0x03CE, 0x00F5, 0x0FDB, 0x00F4, 0x07E5, 0x07E4, 0x07E7, 0x01F2,
206
0x07E6, 0x03C9, 0x01FD, 0x0FDA, 0x1F8C, 0x07E1, 0x1F8F, 0x1F8E, 0x03C8,
207
0x03CB, 0x0077, 0x0076, 0x0FC5, 0x03CA, 0x07E0, 0x00F7, 0x0FC4, 0x03F5,
208
0x00F6, 0x01FC, 0x0003, 0x03F4, 0x0071, 0x03F7, 0x00F1, 0x0013, 0x0031,
209
0x0030, 0x0070, 0x0005, 0x0012, 0x0073, 0x01FF, 0x0072, 0x007D, 0x0002, },
210
{ 0x0061, 0x0055, 0x0060, 0x02C9, 0x02C8, 0x02CB, 0x0171, 0x00B5, 0x0054,
211
0x0001, 0x0001, 0x0001, 0x0057, 0x0001, 0x0063, 0x001D, 0x0062, 0x0039,
212
0x006D, 0x0000, 0x0005, 0x0038, 0x0056, 0x00B4, 0x006C, 0x0003, 0x001C,
213
0x006F, 0x003B, 0x0002, 0x003A, 0x0170, 0x00B7, 0x0173, 0x0051, 0x006E,
214
0x0025, 0x0050, 0x0069, 0x02CA, 0x0024, 0x0027, 0x0172, 0x00B6, 0x00B1,
215
0x000D, 0x000C, 0x001F, 0x017D, 0x0026, 0x0068, 0x0053, 0x017C, 0x006B,
216
0x001E, 0x000F, 0x0004, 0x017F, 0x006A, 0x02F5, 0x0019, 0x0021, 0x0052,
217
0x02F4, 0x02F7, 0x0020, 0x0BCD, 0x05E5, 0x05E4, 0x0BCC, 0x0023, 0x00B0,
218
0x02F6, 0x00B3, 0x0022, 0x02F1, 0x02F0, 0x0BCF, 0x0BCE, 0x017E, 0x005D, },
219
{ 0x00BD, 0x0025, 0x01A1, 0x0159, 0x0299, 0x00BC, 0x0024, 0x0505, 0x0504,
220
0x01A0, 0x0001, 0x001D, 0x006D, 0x001C, 0x0001, 0x0005, 0x0027, 0x01A3,
221
0x0158, 0x001F, 0x001E, 0x01A2, 0x0026, 0x0021, 0x000D, 0x0020, 0x0023,
222
0x0298, 0x006C, 0x0022, 0x00BF, 0x00BE, 0x01AD, 0x002D, 0x029B, 0x00B9,
223
0x01AC, 0x00B8, 0x01AF, 0x029A, 0x006F, 0x015B, 0x006E, 0x0285, 0x0284,
224
0x01AE, 0x0019, 0x002C, 0x01A9, 0x01A8, 0x000C, 0x000F, 0x015A, 0x00BB,
225
0x000E, 0x0000, 0x0069, 0x01AB, 0x0018, 0x01AA, 0x0004, 0x0055, 0x00BA,
226
0x0507, 0x0145, 0x0054, 0x0506, 0x00A5, 0x0501, 0x00A4, 0x0057, 0x0500,
227
0x0A05, 0x0144, 0x00A7, 0x0287, 0x0286, 0x0503, 0x0147, 0x0A04, 0x0146, },
228
{ 0x0759, 0x0041, 0x00E5, 0x03BD, 0x0E9D, 0x012D, 0x012C, 0x3A1D, 0x03BC,
229
0x012F, 0x000D, 0x0040, 0x00E4, 0x03BF, 0x0043, 0x0042, 0x0758, 0x03BE,
230
0x00E7, 0x0001, 0x0000, 0x003D, 0x00E6, 0x0015, 0x0014, 0x0017, 0x003C,
231
0x743D, 0x012E, 0x03B9, 0x03B8, 0x0E9C, 0x03BB, 0x075B, 0x3A1C, 0x0E9F,
232
0x0129, 0x00E1, 0x0128, 0x0E9E, 0x012B, 0x075A, 0x00E0, 0x0E99, 0x0745,
233
0x3A1F, 0x03BA, 0x0744, 0x0E98, 0x1D0D, 0x03A5, 0x0E9B, 0x743C, 0x0E9A,
234
0x012A, 0x004D, 0x00E3, 0x0E85, 0x01D5, 0x0E84, 0x004C, 0x0747, 0x1D0C,
235
0x01D4, 0x003F, 0x0016, 0x0746, 0x03A4, 0x0741, 0x004F, 0x003E, 0x01D7,
236
0x0740, 0x000C, 0x0011, 0x004E, 0x00E2, 0x00ED, 0x00EC, 0x0049, 0x0048, },
239
static const uint8_t aic_mode2_vlc_bits[AIC_MODE2_NUM][AIC_MODE2_SIZE] = {
240
{ 1, 5, 4, 10, 6, 8, 5, 8, 8,
241
7, 5, 7, 11, 10, 9, 8, 13, 11,
242
6, 7, 3, 9, 8, 10, 9, 8, 5,
243
10, 9, 10, 10, 14, 12, 14, 14, 12,
244
8, 9, 7, 12, 8, 14, 9, 9, 12,
245
8, 9, 11, 11, 13, 9, 11, 14, 12,
246
6, 7, 9, 13, 9, 12, 7, 10, 12,
247
11, 12, 8, 15, 10, 15, 13, 7, 12,
248
10, 10, 8, 10, 13, 13, 13, 11, 8, },
249
{ 4, 6, 5, 11, 8, 10, 7, 11, 9,
250
4, 1, 4, 9, 7, 7, 5, 9, 10,
251
6, 7, 4, 9, 9, 10, 9, 9, 6,
252
9, 10, 9, 10, 12, 12, 13, 12, 11,
253
9, 9, 8, 12, 8, 14, 10, 11, 12,
254
7, 8, 10, 11, 12, 9, 11, 13, 12,
255
6, 7, 8, 12, 9, 12, 7, 11, 10,
256
12, 12, 9, 14, 12, 15, 13, 8, 12,
257
11, 11, 10, 12, 13, 15, 14, 12, 9, },
258
{ 5, 7, 6, 12, 9, 11, 8, 11, 10,
259
7, 5, 7, 11, 10, 9, 8, 12, 12,
260
5, 5, 1, 8, 7, 10, 8, 6, 4,
261
8, 8, 8, 9, 12, 11, 13, 12, 11,
262
8, 9, 8, 12, 8, 13, 10, 11, 11,
263
8, 9, 11, 12, 13, 11, 12, 14, 13,
264
8, 9, 10, 14, 11, 14, 9, 13, 13,
265
8, 9, 6, 11, 10, 14, 11, 6, 10,
266
6, 6, 4, 8, 9, 10, 10, 8, 5, },
267
{ 11, 7, 8, 10, 12, 9, 10, 14, 12,
268
7, 1, 5, 7, 8, 6, 4, 10, 9,
269
10, 5, 4, 8, 11, 8, 7, 6, 7,
270
11, 6, 7, 8, 10, 8, 10, 11, 9,
271
10, 8, 9, 13, 9, 12, 8, 11, 12,
272
11, 4, 7, 8, 9, 6, 8, 12, 9,
273
8, 5, 8, 12, 9, 10, 6, 12, 11,
274
12, 12, 10, 15, 13, 13, 13, 10, 13,
275
15, 10, 9, 10, 12, 13, 13, 10, 9, },
276
{ 11, 8, 8, 11, 13, 10, 11, 15, 12,
277
7, 1, 4, 7, 7, 5, 4, 8, 9,
278
11, 5, 5, 8, 11, 9, 8, 7, 8,
279
13, 7, 8, 9, 11, 9, 10, 12, 10,
280
10, 9, 8, 13, 9, 12, 9, 11, 12,
281
11, 5, 7, 9, 10, 6, 9, 13, 10,
282
7, 4, 7, 11, 8, 9, 5, 10, 11,
283
13, 11, 9, 15, 13, 15, 13, 8, 12,
284
15, 10, 10, 12, 13, 14, 14, 12, 11, },
285
{ 12, 9, 9, 12, 13, 11, 11, 14, 12,
286
8, 2, 5, 7, 9, 6, 5, 10, 10,
287
9, 4, 2, 7, 9, 7, 6, 5, 6,
288
12, 6, 7, 8, 10, 8, 10, 11, 9,
289
12, 9, 10, 13, 11, 12, 10, 14, 13,
290
12, 6, 8, 10, 10, 7, 9, 12, 10,
291
8, 5, 8, 11, 9, 10, 7, 11, 12,
292
8, 6, 5, 11, 11, 11, 8, 6, 9,
293
12, 6, 6, 8, 10, 10, 11, 8, 6, },
294
{ 13, 9, 10, 12, 14, 12, 11, 15, 15,
295
8, 1, 5, 7, 9, 6, 5, 11, 10,
296
11, 6, 5, 9, 11, 9, 8, 7, 8,
297
12, 6, 8, 8, 11, 8, 10, 12, 10,
298
10, 7, 9, 13, 10, 11, 9, 13, 12,
299
11, 3, 6, 8, 9, 4, 7, 11, 8,
300
8, 5, 9, 12, 10, 9, 7, 12, 13,
301
13, 12, 10, 14, 14, 15, 12, 11, 14,
302
15, 7, 9, 8, 11, 11, 12, 10, 9, },
303
{ 10, 5, 6, 9, 11, 7, 8, 12, 11,
304
8, 1, 4, 7, 9, 6, 4, 10, 10,
305
11, 6, 6, 9, 9, 9, 9, 8, 8,
306
14, 10, 10, 12, 12, 11, 12, 13, 12,
307
10, 7, 8, 12, 9, 11, 8, 12, 11,
308
13, 7, 10, 11, 11, 8, 10, 13, 11,
309
6, 3, 7, 11, 8, 9, 5, 10, 11,
310
11, 11, 9, 14, 14, 14, 11, 10, 13,
311
14, 10, 11, 13, 13, 13, 14, 12, 12, },
312
{ 2, 5, 3, 11, 8, 8, 6, 6, 7,
313
8, 5, 6, 12, 10, 10, 8, 10, 11,
314
7, 6, 2, 9, 8, 10, 8, 5, 4,
315
10, 11, 10, 10, 13, 12, 14, 13, 10,
316
10, 11, 8, 14, 9, 14, 12, 11, 12,
317
9, 10, 9, 13, 12, 11, 12, 14, 11,
318
8, 10, 7, 13, 10, 12, 8, 12, 12,
319
10, 9, 6, 12, 11, 11, 11, 6, 9,
320
10, 9, 6, 10, 9, 12, 11, 8, 7, },
321
{ 6, 8, 6, 12, 11, 11, 10, 10, 9,
322
6, 1, 3, 10, 8, 8, 6, 7, 10,
323
8, 6, 3, 10, 9, 10, 8, 6, 5,
324
11, 10, 10, 12, 13, 12, 14, 13, 12,
325
10, 11, 8, 12, 9, 14, 12, 11, 12,
326
9, 9, 8, 12, 12, 10, 12, 13, 11,
327
7, 8, 6, 13, 9, 11, 7, 11, 11,
328
11, 10, 7, 14, 11, 12, 12, 7, 10,
329
12, 11, 8, 13, 12, 14, 13, 11, 10, },
330
{ 7, 10, 7, 13, 13, 13, 11, 11, 10,
331
8, 5, 6, 12, 11, 10, 9, 10, 11,
332
7, 5, 1, 9, 8, 10, 7, 4, 4,
333
9, 11, 9, 11, 12, 11, 13, 13, 10,
334
9, 11, 8, 13, 9, 14, 12, 11, 12,
335
11, 10, 10, 13, 12, 11, 14, 14, 12,
336
9, 10, 8, 13, 10, 14, 9, 12, 12,
337
9, 7, 4, 12, 10, 11, 10, 6, 7,
338
9, 7, 4, 9, 9, 11, 9, 7, 5, },
339
{ 7, 9, 7, 14, 11, 12, 10, 9, 9,
340
8, 5, 5, 12, 9, 10, 8, 8, 11,
341
7, 5, 2, 8, 8, 9, 7, 4, 4,
342
10, 11, 10, 12, 14, 11, 12, 13, 12,
343
9, 10, 8, 13, 8, 13, 10, 11, 11,
344
9, 9, 8, 14, 10, 10, 11, 12, 11,
345
10, 11, 9, 14, 10, 14, 9, 12, 14,
346
6, 6, 3, 11, 8, 9, 8, 3, 6,
347
9, 7, 4, 10, 8, 11, 10, 6, 5, },
348
{ 6, 8, 7, 13, 12, 12, 10, 9, 9,
349
9, 7, 8, 13, 11, 11, 9, 11, 12,
350
7, 6, 1, 9, 8, 10, 7, 5, 4,
351
10, 12, 10, 12, 13, 13, 14, 13, 11,
352
9, 11, 9, 13, 10, 14, 12, 12, 12,
353
11, 12, 10, 14, 13, 12, 13, 14, 12,
354
8, 9, 7, 13, 10, 13, 8, 11, 12,
355
8, 6, 3, 12, 9, 10, 9, 4, 6,
356
10, 8, 5, 10, 10, 12, 11, 8, 6, },
357
{ 7, 10, 7, 12, 9, 12, 10, 10, 12,
358
9, 7, 7, 12, 9, 11, 6, 10, 11,
359
6, 6, 1, 9, 8, 9, 7, 4, 5,
360
11, 12, 9, 12, 10, 14, 13, 13, 11,
361
10, 12, 8, 13, 8, 14, 10, 10, 11,
362
11, 11, 10, 13, 14, 10, 14, 13, 11,
363
11, 10, 7, 13, 8, 12, 7, 10, 12,
364
7, 10, 4, 12, 6, 10, 8, 5, 8,
365
10, 7, 4, 9, 7, 10, 9, 6, 5, },
366
{ 7, 9, 7, 13, 12, 13, 10, 10, 8,
367
8, 5, 6, 11, 10, 10, 8, 10, 10,
368
7, 5, 2, 9, 8, 9, 7, 5, 3,
369
8, 9, 7, 9, 11, 11, 13, 11, 9,
370
8, 10, 7, 12, 9, 14, 11, 10, 10,
371
9, 10, 9, 12, 12, 12, 13, 14, 12,
372
10, 10, 9, 13, 11, 13, 9, 13, 12,
373
8, 7, 4, 12, 10, 10, 10, 6, 6,
374
7, 6, 3, 9, 8, 10, 9, 6, 3, },
375
{ 7, 10, 7, 13, 13, 13, 11, 11, 9,
376
8, 6, 6, 13, 11, 11, 9, 10, 11,
377
7, 6, 1, 9, 8, 10, 8, 5, 4,
378
8, 9, 8, 9, 12, 12, 12, 12, 8,
379
10, 13, 9, 14, 11, 14, 14, 13, 12,
380
9, 10, 9, 13, 12, 11, 13, 14, 11,
381
9, 11, 8, 13, 11, 13, 10, 13, 13,
382
9, 8, 5, 12, 10, 11, 11, 6, 7,
383
8, 7, 3, 8, 9, 11, 10, 7, 4, },
384
{ 8, 9, 7, 11, 11, 12, 11, 14, 9,
385
8, 6, 6, 11, 13, 10, 9, 11, 9,
386
7, 5, 1, 7, 9, 9, 7, 5, 3,
387
13, 11, 9, 10, 12, 11, 12, 12, 9,
388
10, 11, 9, 13, 9, 12, 12, 12, 10,
389
12, 11, 10, 13, 14, 12, 14, 14, 11,
390
11, 8, 8, 13, 11, 12, 9, 13, 11,
391
9, 10, 5, 11, 8, 11, 9, 6, 7,
392
7, 8, 4, 6, 8, 10, 8, 8, 5, },
393
{ 8, 10, 8, 13, 13, 13, 12, 11, 10,
394
5, 1, 3, 10, 7, 8, 6, 8, 9,
395
8, 7, 4, 9, 10, 11, 8, 7, 6,
396
8, 9, 7, 9, 12, 11, 12, 10, 8,
397
9, 10, 8, 13, 9, 9, 12, 11, 11,
398
7, 7, 6, 12, 9, 8, 10, 12, 8,
399
6, 7, 4, 12, 8, 13, 6, 9, 10,
400
13, 13, 9, 15, 14, 14, 15, 9, 11,
401
13, 11, 9, 13, 13, 15, 15, 12, 10, },
402
{ 10, 8, 9, 11, 12, 10, 8, 13, 13,
403
9, 2, 5, 7, 5, 4, 3, 8, 9,
404
11, 5, 5, 9, 8, 8, 6, 8, 8,
405
12, 7, 8, 10, 10, 9, 8, 12, 10,
406
9, 10, 9, 12, 7, 11, 7, 12, 12,
407
9, 5, 8, 9, 9, 6, 6, 11, 10,
408
6, 4, 7, 9, 5, 9, 3, 9, 10,
409
13, 11, 9, 13, 10, 13, 10, 9, 13,
410
14, 11, 10, 12, 12, 13, 11, 14, 11, },
411
{ 11, 7, 8, 10, 12, 9, 9, 14, 10,
412
9, 4, 7, 8, 10, 7, 7, 11, 10,
413
8, 2, 2, 6, 8, 5, 5, 5, 6,
414
15, 9, 10, 10, 12, 10, 11, 14, 12,
415
9, 8, 9, 12, 9, 11, 8, 12, 11,
416
14, 10, 11, 12, 13, 10, 12, 15, 12,
417
9, 7, 8, 12, 9, 12, 7, 11, 13,
418
9, 6, 5, 11, 10, 11, 7, 6, 9,
419
11, 4, 5, 7, 8, 8, 8, 7, 7, },
424
* Codes used for determining block type
427
#define AIC_MODE1_NUM 90
428
#define AIC_MODE1_SIZE 9
429
#define AIC_MODE1_BITS 7
431
static const uint8_t aic_mode1_vlc_codes[AIC_MODE1_NUM][AIC_MODE1_SIZE] = {
432
{ 0x01, 0x01, 0x01, 0x11, 0x00, 0x09, 0x03, 0x10, 0x05,},
433
{ 0x09, 0x01, 0x01, 0x05, 0x11, 0x00, 0x03, 0x21, 0x20,},
434
{ 0x01, 0x01, 0x01, 0x11, 0x09, 0x10, 0x05, 0x00, 0x03,},
435
{ 0x01, 0x01, 0x00, 0x03, 0x21, 0x05, 0x09, 0x20, 0x11,},
436
{ 0x01, 0x09, 0x00, 0x29, 0x08, 0x15, 0x03, 0x0B, 0x28,},
437
{ 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x02,},
438
{ 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x01, 0x09, 0x08,},
439
{ 0x01, 0x01, 0x01, 0x09, 0x01, 0x08, 0x00, 0x03, 0x05,},
440
{ 0x01, 0x01, 0x01, 0x00, 0x05, 0x11, 0x09, 0x10, 0x03,},
441
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
443
{ 0x01, 0x01, 0x01, 0x05, 0x01, 0x00, 0x03, 0x09, 0x08,},
444
{ 0x09, 0x01, 0x01, 0x05, 0x11, 0x00, 0x03, 0x21, 0x20,},
445
{ 0x01, 0x01, 0x01, 0x0D, 0x05, 0x04, 0x00, 0x07, 0x0C,},
446
{ 0x01, 0x01, 0x00, 0x05, 0x11, 0x03, 0x09, 0x21, 0x20,},
447
{ 0x05, 0x01, 0x01, 0x11, 0x00, 0x09, 0x03, 0x21, 0x20,},
448
{ 0x09, 0x01, 0x01, 0x00, 0x05, 0x01, 0x03, 0x11, 0x10,},
449
{ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x03, 0x02,},
450
{ 0x01, 0x01, 0x01, 0x09, 0x00, 0x05, 0x01, 0x03, 0x08,},
451
{ 0x01, 0x01, 0x01, 0x09, 0x11, 0x05, 0x00, 0x10, 0x03,},
452
{ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
454
{ 0x01, 0x00, 0x01, 0x09, 0x08, 0x15, 0x14, 0x0B, 0x03,},
455
{ 0x0D, 0x01, 0x01, 0x05, 0x0C, 0x04, 0x01, 0x00, 0x07,},
456
{ 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x03, 0x01, 0x01,},
457
{ 0x05, 0x01, 0x01, 0x04, 0x19, 0x07, 0x18, 0x0D, 0x00,},
458
{ 0x11, 0x09, 0x01, 0x21, 0x05, 0x20, 0x01, 0x00, 0x03,},
459
{ 0x41, 0x01, 0x00, 0x05, 0x40, 0x03, 0x09, 0x21, 0x11,},
460
{ 0x29, 0x01, 0x00, 0x28, 0x09, 0x15, 0x03, 0x08, 0x0B,},
461
{ 0x01, 0x00, 0x01, 0x11, 0x09, 0x10, 0x05, 0x01, 0x03,},
462
{ 0x05, 0x01, 0x01, 0x04, 0x0D, 0x0C, 0x07, 0x00, 0x01,},
463
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
465
{ 0x01, 0x00, 0x03, 0x05, 0x11, 0x10, 0x25, 0x24, 0x13,},
466
{ 0x21, 0x01, 0x01, 0x00, 0x11, 0x03, 0x05, 0x20, 0x09,},
467
{ 0x01, 0x01, 0x01, 0x00, 0x09, 0x11, 0x10, 0x05, 0x03,},
468
{ 0x21, 0x05, 0x01, 0x01, 0x09, 0x00, 0x11, 0x20, 0x03,},
469
{ 0x05, 0x01, 0x00, 0x04, 0x01, 0x19, 0x07, 0x18, 0x0D,},
470
{ 0x11, 0x01, 0x00, 0x01, 0x09, 0x01, 0x03, 0x10, 0x05,},
471
{ 0x1D, 0x01, 0x05, 0x0D, 0x0C, 0x04, 0x00, 0x1C, 0x0F,},
472
{ 0x05, 0x19, 0x01, 0x04, 0x00, 0x18, 0x1B, 0x1A, 0x07,},
473
{ 0x09, 0x01, 0x00, 0x01, 0x05, 0x03, 0x11, 0x10, 0x01,},
474
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
476
{ 0x01, 0x00, 0x03, 0x41, 0x05, 0x40, 0x09, 0x11, 0x21,},
477
{ 0x05, 0x01, 0x01, 0x19, 0x04, 0x07, 0x00, 0x18, 0x0D,},
478
{ 0x01, 0x01, 0x01, 0x05, 0x01, 0x04, 0x01, 0x00, 0x03,},
479
{ 0x01, 0x05, 0x00, 0x0D, 0x01, 0x04, 0x07, 0x19, 0x18,},
480
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
481
{ 0x31, 0x01, 0x05, 0x19, 0x04, 0x07, 0x00, 0x30, 0x0D,},
482
{ 0x01, 0x00, 0x03, 0x11, 0x01, 0x05, 0x01, 0x09, 0x10,},
483
{ 0x01, 0x05, 0x01, 0x11, 0x01, 0x10, 0x00, 0x03, 0x09,},
484
{ 0x01, 0x09, 0x00, 0x29, 0x03, 0x08, 0x28, 0x15, 0x0B,},
485
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
487
{ 0x01, 0x01, 0x00, 0x09, 0x15, 0x03, 0x08, 0x14, 0x0B,},
488
{ 0x11, 0x01, 0x01, 0x00, 0x09, 0x01, 0x03, 0x10, 0x05,},
489
{ 0x01, 0x00, 0x03, 0x25, 0x11, 0x05, 0x10, 0x24, 0x13,},
490
{ 0x11, 0x01, 0x00, 0x01, 0x09, 0x01, 0x05, 0x10, 0x03,},
491
{ 0x05, 0x01, 0x00, 0x0D, 0x0C, 0x04, 0x0F, 0x1D, 0x1C,},
492
{ 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x02,},
493
{ 0x21, 0x01, 0x05, 0x09, 0x11, 0x00, 0x03, 0x41, 0x40,},
494
{ 0x05, 0x01, 0x00, 0x1D, 0x1C, 0x0D, 0x0C, 0x0F, 0x04,},
495
{ 0x05, 0x01, 0x00, 0x0D, 0x31, 0x04, 0x19, 0x30, 0x07,},
496
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
498
{ 0x01, 0x01, 0x00, 0x21, 0x05, 0x11, 0x03, 0x09, 0x20,},
499
{ 0x01, 0x01, 0x00, 0x11, 0x03, 0x05, 0x01, 0x09, 0x10,},
500
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
501
{ 0x05, 0x01, 0x04, 0x19, 0x07, 0x0D, 0x00, 0x31, 0x30,},
502
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
503
{ 0x05, 0x01, 0x01, 0x11, 0x09, 0x00, 0x03, 0x21, 0x20,},
504
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02,},
505
{ 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x01, 0x01, 0x02,},
506
{ 0x09, 0x01, 0x00, 0x29, 0x08, 0x15, 0x03, 0x28, 0x0B,},
507
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
509
{ 0x01, 0x01, 0x01, 0x05, 0x01, 0x04, 0x00, 0x01, 0x03,},
510
{ 0x09, 0x01, 0x00, 0x29, 0x28, 0x15, 0x08, 0x03, 0x0B,},
511
{ 0x01, 0x00, 0x01, 0x11, 0x05, 0x10, 0x09, 0x01, 0x03,},
512
{ 0x05, 0x04, 0x01, 0x1D, 0x0D, 0x0C, 0x1C, 0x00, 0x0F,},
513
{ 0x09, 0x11, 0x01, 0x41, 0x00, 0x40, 0x05, 0x03, 0x21,},
514
{ 0x0D, 0x05, 0x01, 0x1D, 0x1C, 0x0C, 0x04, 0x00, 0x0F,},
515
{ 0x41, 0x09, 0x01, 0x40, 0x00, 0x11, 0x05, 0x03, 0x21,},
516
{ 0x01, 0x01, 0x01, 0x05, 0x01, 0x04, 0x00, 0x01, 0x03,},
517
{ 0x05, 0x04, 0x01, 0x0D, 0x01, 0x0C, 0x07, 0x01, 0x00,},
518
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
520
{ 0x05, 0x04, 0x01, 0x07, 0x19, 0x31, 0x30, 0x0D, 0x00,},
521
{ 0x21, 0x01, 0x01, 0x00, 0x11, 0x09, 0x20, 0x05, 0x03,},
522
{ 0x05, 0x01, 0x01, 0x04, 0x07, 0x0D, 0x0C, 0x00, 0x01,},
523
{ 0x21, 0x09, 0x01, 0x00, 0x20, 0x05, 0x23, 0x22, 0x03,},
524
{ 0x31, 0x0D, 0x01, 0x19, 0x05, 0x30, 0x04, 0x07, 0x00,},
525
{ 0x31, 0x05, 0x01, 0x04, 0x19, 0x00, 0x0D, 0x30, 0x07,},
526
{ 0x31, 0x01, 0x00, 0x0D, 0x05, 0x19, 0x04, 0x30, 0x07,},
527
{ 0x01, 0x01, 0x01, 0x00, 0x01, 0x03, 0x02, 0x01, 0x01,},
528
{ 0x01, 0x00, 0x01, 0x01, 0x05, 0x09, 0x08, 0x03, 0x01,},
529
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
532
static const uint8_t aic_mode1_vlc_bits[AIC_MODE1_NUM][AIC_MODE1_SIZE] = {
533
{ 1, 4, 2, 7, 4, 6, 4, 7, 5,},
534
{ 5, 1, 3, 4, 6, 3, 3, 7, 7,},
535
{ 1, 4, 2, 7, 6, 7, 5, 4, 4,},
536
{ 1, 3, 3, 3, 7, 4, 5, 7, 6,},
537
{ 2, 4, 2, 6, 4, 5, 2, 4, 6,},
538
{ 7, 2, 3, 4, 7, 1, 5, 7, 7,},
539
{ 5, 1, 3, 6, 5, 5, 2, 7, 7,},
540
{ 2, 5, 1, 7, 3, 7, 5, 5, 6,},
541
{ 2, 4, 1, 4, 5, 7, 6, 7, 4,},
542
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
544
{ 2, 1, 3, 6, 5, 5, 5, 7, 7,},
545
{ 5, 1, 3, 4, 6, 3, 3, 7, 7,},
546
{ 4, 1, 2, 6, 5, 5, 4, 5, 6,},
547
{ 3, 1, 3, 4, 6, 3, 5, 7, 7,},
548
{ 4, 1, 3, 6, 3, 5, 3, 7, 7,},
549
{ 6, 1, 4, 4, 5, 2, 4, 7, 7,},
550
{ 7, 1, 5, 7, 4, 3, 2, 7, 7,},
551
{ 5, 3, 2, 7, 5, 6, 1, 5, 7,},
552
{ 4, 1, 2, 6, 7, 5, 4, 7, 4,},
553
{ 1, 0, 1, 0, 0, 0, 0, 0, 0,},
555
{ 3, 3, 1, 5, 5, 6, 6, 5, 3,},
556
{ 6, 2, 1, 5, 6, 5, 4, 4, 5,},
557
{ 6, 4, 1, 7, 6, 7, 6, 3, 2,},
558
{ 4, 3, 1, 4, 6, 4, 6, 5, 3,},
559
{ 6, 5, 1, 7, 4, 7, 3, 3, 3,},
560
{ 7, 2, 2, 3, 7, 2, 4, 6, 5,},
561
{ 6, 2, 2, 6, 4, 5, 2, 4, 4,},
562
{ 4, 4, 1, 7, 6, 7, 5, 2, 4,},
563
{ 5, 4, 1, 5, 6, 6, 5, 4, 2,},
564
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
566
{ 2, 2, 2, 3, 5, 5, 6, 6, 5,},
567
{ 7, 1, 3, 3, 6, 3, 4, 7, 5,},
568
{ 2, 4, 1, 4, 6, 7, 7, 5, 4,},
569
{ 7, 4, 3, 1, 5, 3, 6, 7, 3,},
570
{ 4, 3, 3, 4, 1, 6, 4, 6, 5,},
571
{ 7, 4, 4, 2, 6, 1, 4, 7, 5,},
572
{ 5, 2, 3, 4, 4, 3, 2, 5, 4,},
573
{ 3, 5, 2, 3, 2, 5, 5, 5, 3,},
574
{ 6, 4, 4, 2, 5, 4, 7, 7, 1,},
575
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
577
{ 2, 2, 2, 7, 3, 7, 4, 5, 6,},
578
{ 4, 1, 3, 6, 4, 4, 3, 6, 5,},
579
{ 2, 4, 1, 7, 3, 7, 6, 6, 6,},
580
{ 3, 4, 3, 5, 1, 4, 4, 6, 6,},
581
{ 4, 5, 2, 7, 1, 7, 3, 7, 7,},
582
{ 6, 2, 3, 5, 3, 3, 2, 6, 4,},
583
{ 4, 4, 4, 7, 2, 5, 1, 6, 7,},
584
{ 4, 5, 2, 7, 1, 7, 4, 4, 6,},
585
{ 2, 4, 2, 6, 2, 4, 6, 5, 4,},
586
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
588
{ 1, 3, 3, 5, 6, 3, 5, 6, 5,},
589
{ 7, 1, 4, 4, 6, 2, 4, 7, 5,},
590
{ 2, 2, 2, 6, 5, 3, 5, 6, 5,},
591
{ 7, 4, 4, 2, 6, 1, 5, 7, 4,},
592
{ 3, 2, 2, 4, 4, 3, 4, 5, 5,},
593
{ 7, 2, 5, 3, 7, 1, 4, 7, 7,},
594
{ 6, 2, 3, 4, 5, 2, 2, 7, 7,},
595
{ 3, 2, 2, 5, 5, 4, 4, 4, 3,},
596
{ 3, 2, 2, 4, 6, 3, 5, 6, 3,},
597
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
599
{ 1, 3, 3, 7, 4, 6, 3, 5, 7,},
600
{ 4, 1, 4, 7, 4, 5, 2, 6, 7,},
601
{ 2, 4, 1, 7, 5, 7, 3, 7, 7,},
602
{ 3, 2, 3, 5, 3, 4, 2, 6, 6,},
603
{ 3, 5, 4, 7, 2, 7, 1, 7, 7,},
604
{ 4, 1, 3, 6, 5, 3, 3, 7, 7,},
605
{ 4, 2, 5, 7, 3, 7, 1, 7, 7,},
606
{ 7, 4, 1, 7, 3, 7, 2, 5, 7,},
607
{ 4, 2, 2, 6, 4, 5, 2, 6, 4,},
608
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
610
{ 3, 4, 1, 7, 6, 7, 6, 2, 6,},
611
{ 4, 2, 2, 6, 6, 5, 4, 2, 4,},
612
{ 4, 4, 1, 7, 5, 7, 6, 2, 4,},
613
{ 3, 3, 2, 5, 4, 4, 5, 2, 4,},
614
{ 4, 5, 2, 7, 2, 7, 3, 2, 6,},
615
{ 4, 3, 2, 5, 5, 4, 3, 2, 4,},
616
{ 7, 4, 2, 7, 2, 5, 3, 2, 6,},
617
{ 4, 6, 2, 7, 3, 7, 6, 1, 6,},
618
{ 5, 5, 1, 6, 4, 6, 5, 2, 4,},
619
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
621
{ 3, 3, 2, 3, 5, 6, 6, 4, 2,},
622
{ 7, 1, 3, 3, 6, 5, 7, 4, 3,},
623
{ 5, 4, 1, 5, 5, 6, 6, 4, 2,},
624
{ 6, 4, 2, 2, 6, 3, 6, 6, 2,},
625
{ 6, 4, 2, 5, 3, 6, 3, 3, 2,},
626
{ 6, 3, 2, 3, 5, 2, 4, 6, 3,},
627
{ 6, 2, 2, 4, 3, 5, 3, 6, 3,},
628
{ 7, 5, 1, 7, 4, 7, 7, 3, 2,},
629
{ 5, 5, 2, 3, 6, 7, 7, 5, 1,},
630
{ 0, 0, 0, 0, 0, 0, 0, 0, 0,},
635
#define PBTYPE_ESCAPE 0xFF
637
/** tables used for P-frame macroblock type decoding */
639
#define NUM_PTYPE_VLCS 7
640
#define PTYPE_VLC_SIZE 8
641
#define PTYPE_VLC_BITS 7
643
static const uint8_t ptype_vlc_codes[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE] = {
644
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
645
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
646
{ 0x0D, 0x05, 0x01, 0x04, 0x01, 0x00, 0x07, 0x0C },
647
{ 0x09, 0x11, 0x01, 0x00, 0x05, 0x03, 0x21, 0x20 },
648
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
649
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
650
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }
653
static const uint8_t ptype_vlc_bits[NUM_PTYPE_VLCS][PTYPE_VLC_SIZE] = {
654
{ 1, 2, 3, 6, 5, 4, 7, 7 },
655
{ 3, 1, 2, 7, 6, 5, 4, 7 },
656
{ 5, 4, 1, 4, 3, 3, 4, 5 },
657
{ 4, 5, 2, 2, 3, 2, 6, 6 },
658
{ 5, 6, 1, 4, 2, 3, 7, 7 },
659
{ 5, 6, 1, 4, 3, 2, 7, 7 },
660
{ 6, 3, 2, 7, 5, 4, 1, 7 }
663
static const uint8_t ptype_vlc_syms[PTYPE_VLC_SIZE] = {
664
0, 1, 2, 3, 8, 9, 11, PBTYPE_ESCAPE
667
/** reverse of ptype_vlc_syms */
668
static const uint8_t block_num_to_ptype_vlc_num[12] = {
669
0, 1, 2, 3, 0, 0, 2, 0, 4, 5, 0, 6
673
/** tables used for P-frame macroblock type decoding */
675
#define NUM_BTYPE_VLCS 6
676
#define BTYPE_VLC_SIZE 7
677
#define BTYPE_VLC_BITS 6
679
static const uint8_t btype_vlc_codes[NUM_BTYPE_VLCS][BTYPE_VLC_SIZE] = {
680
{ 0x01, 0x05, 0x00, 0x03, 0x11, 0x09, 0x10 },
681
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
682
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
683
{ 0x09, 0x01, 0x00, 0x01, 0x05, 0x03, 0x08 },
684
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 },
685
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }
688
static const uint8_t btype_vlc_bits[NUM_BTYPE_VLCS][PTYPE_VLC_SIZE] = {
689
{ 2, 3, 2, 2, 5, 4, 5 },
690
{ 4, 1, 3, 2, 6, 5, 6 },
691
{ 6, 4, 1, 2, 5, 3, 6 },
692
{ 5, 3, 3, 1, 4, 3, 5 },
693
{ 6, 5, 3, 2, 4, 1, 6 },
694
{ 6, 5, 3, 1, 4, 2, 6 }
697
static const uint8_t btype_vlc_syms[BTYPE_VLC_SIZE] = {
698
0, 1, 4, 5, 10, 7, PBTYPE_ESCAPE
701
/** reverse of btype_vlc_syms */
702
static const uint8_t block_num_to_btype_vlc_num[12] = {
703
0, 1, 0, 0, 2, 3, 0, 5, 0, 0, 4, 0
706
#endif /* AVCODEC_RV40VLC2_H */