~medibuntu-maintainers/mplayer/medibuntu.quantal

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/rv40vlc2.h

  • Committer: Gauvain Pocentek
  • Date: 2011-08-21 07:22:23 UTC
  • mfrom: (66.1.11 oneiric)
  • Revision ID: gauvain@pocentek.net-20110821072223-ummeossdz7okpb3d
* Merge from Ubuntu:
  - put back faac support
  - recommends apport-hooks-medibuntu
  - change Maintainer, Uploaders & Vcs-* fields.
* New upstream snapshot
  - update 23mplayer-debug-printf.patch
  - fixes miscompilation with gcc 4.6, Closes: #623304
  - improved internal mkv demuxer, Closes: #595452
  - Fixed segfault due to missing sanitation on playlist files,
    Closes: #591525
  - Fixed byteorder on 16-bit displays, Closes: #594093
  - tighten build depends on libav
  - --enable-largefile switch has been dropped
  - add build dependency on yasm
* Fix build dependency on libjpeg-dev, Closes: #634277
* rewrite debian/copyright in DEP5 format
* fix clean target
* don't remove snapshot_version file
* enable XVID, MP3 and X264 encoders
* simply architecture specific dependencies, Closes: #634773
* make buildlogs verbose
* unbreak building mplayer-doc package
* don't fail debian package build if not all shlibdeps information could be retrieved
* update configure flags for static libav* libraries
* fix spelling in mplayer-dbg description, Closes: #617826
* enable blueray support, Closes: #577761
* Select oss as default audio output module on kFreeBSD, Closes: #598431
* Update documentation with regard to our modifications to the upstream tarball.
* really no longer build mplayer-gui, Closes: #612473
* simplify/remove instruction to get upstream sources
* normalize debian/{control,copyright,mplayer.install} with wrap-and-sort
* bump standards version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * RealVideo 4 decoder
 
3
 * copyright (c) 2007 Konstantin Shishkov
 
4
 *
 
5
 * This file is part of Libav.
 
6
 *
 
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.
 
11
 *
 
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.
 
16
 *
 
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
 
20
 */
 
21
 
 
22
/**
 
23
 * @file
 
24
 * RV40 VLC tables used for macroblock information decoding
 
25
 */
 
26
 
 
27
#ifndef AVCODEC_RV40VLC2_H
 
28
#define AVCODEC_RV40VLC2_H
 
29
 
 
30
#include <stdint.h>
 
31
 
 
32
/**
 
33
 * codes used for the first four block types
 
34
 */
 
35
//@{
 
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
 
41
};
 
42
 
 
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
 
45
};
 
46
//@}
 
47
 
 
48
/**
 
49
 * codes used for determining a pair of block types
 
50
 */
 
51
//@{
 
52
#define AIC_MODE2_NUM  20
 
53
#define AIC_MODE2_SIZE 81
 
54
#define AIC_MODE2_BITS  9
 
55
 
 
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, },
 
237
};
 
238
 
 
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, },
 
420
};
 
421
//@}
 
422
 
 
423
/**
 
424
 * Codes used for determining block type
 
425
 */
 
426
//@{
 
427
#define AIC_MODE1_NUM  90
 
428
#define AIC_MODE1_SIZE  9
 
429
#define AIC_MODE1_BITS  7
 
430
 
 
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,},
 
442
 
 
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,},
 
453
 
 
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,},
 
464
 
 
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,},
 
475
 
 
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,},
 
486
 
 
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,},
 
497
 
 
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,},
 
508
 
 
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,},
 
519
 
 
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,},
 
530
};
 
531
 
 
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,},
 
543
 
 
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,},
 
554
 
 
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,},
 
565
 
 
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,},
 
576
 
 
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,},
 
587
 
 
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,},
 
598
 
 
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,},
 
609
 
 
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,},
 
620
 
 
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,},
 
631
};
 
632
 
 
633
//@}
 
634
 
 
635
#define PBTYPE_ESCAPE 0xFF
 
636
 
 
637
/** tables used for P-frame macroblock type decoding */
 
638
//@{
 
639
#define NUM_PTYPE_VLCS 7
 
640
#define PTYPE_VLC_SIZE 8
 
641
#define PTYPE_VLC_BITS 7
 
642
 
 
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 }
 
651
};
 
652
 
 
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 }
 
661
};
 
662
 
 
663
static const uint8_t ptype_vlc_syms[PTYPE_VLC_SIZE] = {
 
664
 0, 1, 2, 3, 8, 9, 11, PBTYPE_ESCAPE
 
665
};
 
666
 
 
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
 
670
};
 
671
//@}
 
672
 
 
673
/** tables used for P-frame macroblock type decoding */
 
674
//@{
 
675
#define NUM_BTYPE_VLCS 6
 
676
#define BTYPE_VLC_SIZE 7
 
677
#define BTYPE_VLC_BITS 6
 
678
 
 
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 }
 
686
};
 
687
 
 
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 }
 
695
};
 
696
 
 
697
static const uint8_t btype_vlc_syms[BTYPE_VLC_SIZE] = {
 
698
 0, 1, 4, 5, 10, 7, PBTYPE_ESCAPE
 
699
};
 
700
 
 
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
 
704
};
 
705
//@}
 
706
#endif /* AVCODEC_RV40VLC2_H */