Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
3c715383
Commit
3c715383
authored
Mar 06, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vc1: Move init code shared between decoder and parser to common code file.
This fixes standalone compilation of the VC-1 parser.
parent
1e9d55e4
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
375 additions
and
369 deletions
+375
-369
vc1.c
libavcodec/vc1.c
+362
-0
vc1.h
libavcodec/vc1.h
+2
-0
vc1acdata.h
libavcodec/vc1acdata.h
+1
-226
vc1data.c
libavcodec/vc1data.c
+4
-0
vc1data.h
libavcodec/vc1data.h
+5
-0
vc1dec.c
libavcodec/vc1dec.c
+1
-143
No files found.
libavcodec/vc1.c
View file @
3c715383
...
...
@@ -1239,3 +1239,365 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
}
return
0
;
}
static
const
uint32_t
vc1_ac_tables
[
AC_MODES
][
186
][
2
]
=
{
{
{
0x0001
,
2
},
{
0x0005
,
3
},
{
0x000D
,
4
},
{
0x0012
,
5
},
{
0x000E
,
6
},
{
0x0015
,
7
},
{
0x0013
,
8
},
{
0x003F
,
8
},
{
0x004B
,
9
},
{
0x011F
,
9
},
{
0x00B8
,
10
},
{
0x03E3
,
10
},
{
0x0172
,
11
},
{
0x024D
,
12
},
{
0x03DA
,
12
},
{
0x02DD
,
13
},
{
0x1F55
,
13
},
{
0x05B9
,
14
},
{
0x3EAE
,
14
},
{
0x0000
,
4
},
{
0x0010
,
5
},
{
0x0008
,
7
},
{
0x0020
,
8
},
{
0x0029
,
9
},
{
0x01F4
,
9
},
{
0x0233
,
10
},
{
0x01E0
,
11
},
{
0x012A
,
12
},
{
0x03DD
,
12
},
{
0x050A
,
13
},
{
0x1F29
,
13
},
{
0x0A42
,
14
},
{
0x1272
,
15
},
{
0x1737
,
15
},
{
0x0003
,
5
},
{
0x0011
,
7
},
{
0x00C4
,
8
},
{
0x004B
,
10
},
{
0x00B4
,
11
},
{
0x07D4
,
11
},
{
0x0345
,
12
},
{
0x02D7
,
13
},
{
0x07BF
,
13
},
{
0x0938
,
14
},
{
0x0BBB
,
14
},
{
0x095E
,
15
},
{
0x0013
,
5
},
{
0x0078
,
7
},
{
0x0069
,
9
},
{
0x0232
,
10
},
{
0x0461
,
11
},
{
0x03EC
,
12
},
{
0x0520
,
13
},
{
0x1F2A
,
13
},
{
0x3E50
,
14
},
{
0x3E51
,
14
},
{
0x1486
,
15
},
{
0x000C
,
6
},
{
0x0024
,
9
},
{
0x0094
,
11
},
{
0x08C0
,
12
},
{
0x0F09
,
14
},
{
0x1EF0
,
15
},
{
0x003D
,
6
},
{
0x0053
,
9
},
{
0x01A0
,
11
},
{
0x02D6
,
13
},
{
0x0F08
,
14
},
{
0x0013
,
7
},
{
0x007C
,
9
},
{
0x07C1
,
11
},
{
0x04AC
,
14
},
{
0x001B
,
7
},
{
0x00A0
,
10
},
{
0x0344
,
12
},
{
0x0F79
,
14
},
{
0x0079
,
7
},
{
0x03E1
,
10
},
{
0x02D4
,
13
},
{
0x2306
,
14
},
{
0x0021
,
8
},
{
0x023C
,
10
},
{
0x0FAE
,
12
},
{
0x23DE
,
14
},
{
0x0035
,
8
},
{
0x0175
,
11
},
{
0x07B3
,
13
},
{
0x00C5
,
8
},
{
0x0174
,
11
},
{
0x0785
,
13
},
{
0x0048
,
9
},
{
0x01A3
,
11
},
{
0x049E
,
13
},
{
0x002C
,
9
},
{
0x00FA
,
10
},
{
0x07D6
,
11
},
{
0x0092
,
10
},
{
0x05CC
,
13
},
{
0x1EF1
,
15
},
{
0x00A3
,
10
},
{
0x03ED
,
12
},
{
0x093E
,
14
},
{
0x01E2
,
11
},
{
0x1273
,
15
},
{
0x07C4
,
11
},
{
0x1487
,
15
},
{
0x0291
,
12
},
{
0x0293
,
12
},
{
0x0F8A
,
12
},
{
0x0509
,
13
},
{
0x0508
,
13
},
{
0x078D
,
13
},
{
0x07BE
,
13
},
{
0x078C
,
13
},
{
0x04AE
,
14
},
{
0x0BBA
,
14
},
{
0x2307
,
14
},
{
0x0B9A
,
14
},
{
0x1736
,
15
},
{
0x000E
,
4
},
{
0x0045
,
7
},
{
0x01F3
,
9
},
{
0x047A
,
11
},
{
0x05DC
,
13
},
{
0x23DF
,
14
},
{
0x0019
,
5
},
{
0x0028
,
9
},
{
0x0176
,
11
},
{
0x049D
,
13
},
{
0x23DD
,
14
},
{
0x0030
,
6
},
{
0x00A2
,
10
},
{
0x02EF
,
12
},
{
0x05B8
,
14
},
{
0x003F
,
6
},
{
0x00A5
,
10
},
{
0x03DB
,
12
},
{
0x093F
,
14
},
{
0x0044
,
7
},
{
0x07CB
,
11
},
{
0x095F
,
15
},
{
0x0063
,
7
},
{
0x03C3
,
12
},
{
0x0015
,
8
},
{
0x08F6
,
12
},
{
0x0017
,
8
},
{
0x0498
,
13
},
{
0x002C
,
8
},
{
0x07B2
,
13
},
{
0x002F
,
8
},
{
0x1F54
,
13
},
{
0x008D
,
8
},
{
0x07BD
,
13
},
{
0x008E
,
8
},
{
0x1182
,
13
},
{
0x00FB
,
8
},
{
0x050B
,
13
},
{
0x002D
,
8
},
{
0x07C0
,
11
},
{
0x0079
,
9
},
{
0x1F5F
,
13
},
{
0x007A
,
9
},
{
0x1F56
,
13
},
{
0x0231
,
10
},
{
0x03E4
,
10
},
{
0x01A1
,
11
},
{
0x0143
,
11
},
{
0x01F7
,
11
},
{
0x016F
,
12
},
{
0x0292
,
12
},
{
0x02E7
,
12
},
{
0x016C
,
12
},
{
0x016D
,
12
},
{
0x03DC
,
12
},
{
0x0F8B
,
12
},
{
0x0499
,
13
},
{
0x03D8
,
12
},
{
0x078E
,
13
},
{
0x02D5
,
13
},
{
0x1F5E
,
13
},
{
0x1F2B
,
13
},
{
0x078F
,
13
},
{
0x04AD
,
14
},
{
0x3EAF
,
14
},
{
0x23DC
,
14
},
{
0x004A
,
9
}
},
{
{
0x0000
,
3
},
{
0x0003
,
4
},
{
0x000B
,
5
},
{
0x0014
,
6
},
{
0x003F
,
6
},
{
0x005D
,
7
},
{
0x00A2
,
8
},
{
0x00AC
,
9
},
{
0x016E
,
9
},
{
0x020A
,
10
},
{
0x02E2
,
10
},
{
0x0432
,
11
},
{
0x05C9
,
11
},
{
0x0827
,
12
},
{
0x0B54
,
12
},
{
0x04E6
,
13
},
{
0x105F
,
13
},
{
0x172A
,
13
},
{
0x20B2
,
14
},
{
0x2D4E
,
14
},
{
0x39F0
,
14
},
{
0x4175
,
15
},
{
0x5A9E
,
15
},
{
0x0004
,
4
},
{
0x001E
,
5
},
{
0x0042
,
7
},
{
0x00B6
,
8
},
{
0x0173
,
9
},
{
0x0395
,
10
},
{
0x072E
,
11
},
{
0x0B94
,
12
},
{
0x16A4
,
13
},
{
0x20B3
,
14
},
{
0x2E45
,
14
},
{
0x0005
,
5
},
{
0x0040
,
7
},
{
0x0049
,
9
},
{
0x028F
,
10
},
{
0x05CB
,
11
},
{
0x048A
,
13
},
{
0x09DD
,
14
},
{
0x73E2
,
15
},
{
0x0018
,
5
},
{
0x0025
,
8
},
{
0x008A
,
10
},
{
0x051B
,
11
},
{
0x0E5F
,
12
},
{
0x09C9
,
14
},
{
0x139C
,
15
},
{
0x0029
,
6
},
{
0x004F
,
9
},
{
0x0412
,
11
},
{
0x048D
,
13
},
{
0x2E41
,
14
},
{
0x0038
,
6
},
{
0x010E
,
9
},
{
0x05A8
,
11
},
{
0x105C
,
13
},
{
0x39F2
,
14
},
{
0x0058
,
7
},
{
0x021F
,
10
},
{
0x0E7E
,
12
},
{
0x39FF
,
14
},
{
0x0023
,
8
},
{
0x02E3
,
10
},
{
0x04E5
,
13
},
{
0x2E40
,
14
},
{
0x00A1
,
8
},
{
0x05BE
,
11
},
{
0x09C8
,
14
},
{
0x0083
,
8
},
{
0x013A
,
11
},
{
0x1721
,
13
},
{
0x0044
,
9
},
{
0x0276
,
12
},
{
0x39F6
,
14
},
{
0x008B
,
10
},
{
0x04EF
,
13
},
{
0x5A9B
,
15
},
{
0x0208
,
10
},
{
0x1CFE
,
13
},
{
0x0399
,
10
},
{
0x1CB4
,
13
},
{
0x039E
,
10
},
{
0x39F3
,
14
},
{
0x05AB
,
11
},
{
0x73E3
,
15
},
{
0x0737
,
11
},
{
0x5A9F
,
15
},
{
0x082D
,
12
},
{
0x0E69
,
12
},
{
0x0E68
,
12
},
{
0x0433
,
11
},
{
0x0B7B
,
12
},
{
0x2DF8
,
14
},
{
0x2E56
,
14
},
{
0x2E57
,
14
},
{
0x39F7
,
14
},
{
0x51A5
,
15
},
{
0x0003
,
3
},
{
0x002A
,
6
},
{
0x00E4
,
8
},
{
0x028E
,
10
},
{
0x0735
,
11
},
{
0x1058
,
13
},
{
0x1CFA
,
13
},
{
0x2DF9
,
14
},
{
0x4174
,
15
},
{
0x0009
,
4
},
{
0x0054
,
8
},
{
0x0398
,
10
},
{
0x048B
,
13
},
{
0x139D
,
15
},
{
0x000D
,
4
},
{
0x00AD
,
9
},
{
0x0826
,
12
},
{
0x2D4C
,
14
},
{
0x0011
,
5
},
{
0x016B
,
9
},
{
0x0B7F
,
12
},
{
0x51A4
,
15
},
{
0x0019
,
5
},
{
0x021B
,
10
},
{
0x16FD
,
13
},
{
0x001D
,
5
},
{
0x0394
,
10
},
{
0x28D3
,
14
},
{
0x002B
,
6
},
{
0x05BC
,
11
},
{
0x5A9A
,
15
},
{
0x002F
,
6
},
{
0x0247
,
12
},
{
0x0010
,
7
},
{
0x0A35
,
12
},
{
0x003E
,
6
},
{
0x0B7A
,
12
},
{
0x0059
,
7
},
{
0x105E
,
13
},
{
0x0026
,
8
},
{
0x09CF
,
14
},
{
0x0055
,
8
},
{
0x1CB5
,
13
},
{
0x0057
,
8
},
{
0x0E5B
,
12
},
{
0x00A0
,
8
},
{
0x1468
,
13
},
{
0x0170
,
9
},
{
0x0090
,
10
},
{
0x01CE
,
9
},
{
0x021A
,
10
},
{
0x0218
,
10
},
{
0x0168
,
9
},
{
0x021E
,
10
},
{
0x0244
,
12
},
{
0x0736
,
11
},
{
0x0138
,
11
},
{
0x0519
,
11
},
{
0x0E5E
,
12
},
{
0x072C
,
11
},
{
0x0B55
,
12
},
{
0x09DC
,
14
},
{
0x20BB
,
14
},
{
0x048C
,
13
},
{
0x1723
,
13
},
{
0x2E44
,
14
},
{
0x16A5
,
13
},
{
0x0518
,
11
},
{
0x39FE
,
14
},
{
0x0169
,
9
}
},
{
{
0x0001
,
2
},
{
0x0006
,
3
},
{
0x000F
,
4
},
{
0x0016
,
5
},
{
0x0020
,
6
},
{
0x0018
,
7
},
{
0x0008
,
8
},
{
0x009A
,
8
},
{
0x0056
,
9
},
{
0x013E
,
9
},
{
0x00F0
,
10
},
{
0x03A5
,
10
},
{
0x0077
,
11
},
{
0x01EF
,
11
},
{
0x009A
,
12
},
{
0x005D
,
13
},
{
0x0001
,
4
},
{
0x0011
,
5
},
{
0x0002
,
7
},
{
0x000B
,
8
},
{
0x0012
,
9
},
{
0x01D6
,
9
},
{
0x027E
,
10
},
{
0x0191
,
11
},
{
0x00EA
,
12
},
{
0x03DC
,
12
},
{
0x013B
,
13
},
{
0x0004
,
5
},
{
0x0014
,
7
},
{
0x009E
,
8
},
{
0x0009
,
10
},
{
0x01AC
,
11
},
{
0x01E2
,
11
},
{
0x03CA
,
12
},
{
0x005F
,
13
},
{
0x0017
,
5
},
{
0x004E
,
7
},
{
0x005E
,
9
},
{
0x00F3
,
10
},
{
0x01AD
,
11
},
{
0x00EC
,
12
},
{
0x05F0
,
13
},
{
0x000E
,
6
},
{
0x00E1
,
8
},
{
0x03A4
,
10
},
{
0x009C
,
12
},
{
0x013D
,
13
},
{
0x003B
,
6
},
{
0x001C
,
9
},
{
0x0014
,
11
},
{
0x09BE
,
12
},
{
0x0006
,
7
},
{
0x007A
,
9
},
{
0x0190
,
11
},
{
0x0137
,
13
},
{
0x001B
,
7
},
{
0x0008
,
10
},
{
0x075C
,
11
},
{
0x0071
,
7
},
{
0x00D7
,
10
},
{
0x09BF
,
12
},
{
0x0007
,
8
},
{
0x00AF
,
10
},
{
0x04CC
,
11
},
{
0x0034
,
8
},
{
0x0265
,
10
},
{
0x009F
,
12
},
{
0x00E0
,
8
},
{
0x0016
,
11
},
{
0x0327
,
12
},
{
0x0015
,
9
},
{
0x017D
,
11
},
{
0x0EBB
,
12
},
{
0x0014
,
9
},
{
0x00F6
,
10
},
{
0x01E4
,
11
},
{
0x00CB
,
10
},
{
0x099D
,
12
},
{
0x00CA
,
10
},
{
0x02FC
,
12
},
{
0x017F
,
11
},
{
0x04CD
,
11
},
{
0x02FD
,
12
},
{
0x04FE
,
11
},
{
0x013A
,
13
},
{
0x000A
,
4
},
{
0x0042
,
7
},
{
0x01D3
,
9
},
{
0x04DD
,
11
},
{
0x0012
,
5
},
{
0x00E8
,
8
},
{
0x004C
,
11
},
{
0x0136
,
13
},
{
0x0039
,
6
},
{
0x0264
,
10
},
{
0x0EBA
,
12
},
{
0x0000
,
7
},
{
0x00AE
,
10
},
{
0x099C
,
12
},
{
0x001F
,
7
},
{
0x04DE
,
11
},
{
0x0043
,
7
},
{
0x04DC
,
11
},
{
0x0003
,
8
},
{
0x03CB
,
12
},
{
0x0006
,
8
},
{
0x099E
,
12
},
{
0x002A
,
8
},
{
0x05F1
,
13
},
{
0x000F
,
8
},
{
0x09FE
,
12
},
{
0x0033
,
8
},
{
0x09FF
,
12
},
{
0x0098
,
8
},
{
0x099F
,
12
},
{
0x00EA
,
8
},
{
0x013C
,
13
},
{
0x002E
,
8
},
{
0x0192
,
11
},
{
0x0136
,
9
},
{
0x006A
,
9
},
{
0x0015
,
11
},
{
0x03AF
,
10
},
{
0x01E3
,
11
},
{
0x0074
,
11
},
{
0x00EB
,
12
},
{
0x02F9
,
12
},
{
0x005C
,
13
},
{
0x00ED
,
12
},
{
0x03DD
,
12
},
{
0x0326
,
12
},
{
0x005E
,
13
},
{
0x0016
,
7
}
},
{
{
0x0004
,
3
},
{
0x0014
,
5
},
{
0x0017
,
7
},
{
0x007F
,
8
},
{
0x0154
,
9
},
{
0x01F2
,
10
},
{
0x00BF
,
11
},
{
0x0065
,
12
},
{
0x0AAA
,
12
},
{
0x0630
,
13
},
{
0x1597
,
13
},
{
0x03B7
,
14
},
{
0x2B22
,
14
},
{
0x0BE6
,
15
},
{
0x000B
,
4
},
{
0x0037
,
7
},
{
0x0062
,
9
},
{
0x0007
,
11
},
{
0x0166
,
12
},
{
0x00CE
,
13
},
{
0x1590
,
13
},
{
0x05F6
,
14
},
{
0x0BE7
,
15
},
{
0x0007
,
5
},
{
0x006D
,
8
},
{
0x0003
,
11
},
{
0x031F
,
12
},
{
0x05F2
,
14
},
{
0x0002
,
6
},
{
0x0061
,
9
},
{
0x0055
,
12
},
{
0x01DF
,
14
},
{
0x001A
,
6
},
{
0x001E
,
10
},
{
0x0AC9
,
12
},
{
0x2B23
,
14
},
{
0x001E
,
6
},
{
0x001F
,
10
},
{
0x0AC3
,
12
},
{
0x2B2B
,
14
},
{
0x0006
,
7
},
{
0x0004
,
11
},
{
0x02F8
,
13
},
{
0x0019
,
7
},
{
0x0006
,
11
},
{
0x063D
,
13
},
{
0x0057
,
7
},
{
0x0182
,
11
},
{
0x2AA2
,
14
},
{
0x0004
,
8
},
{
0x0180
,
11
},
{
0x059C
,
14
},
{
0x007D
,
8
},
{
0x0164
,
12
},
{
0x076D
,
15
},
{
0x0002
,
9
},
{
0x018D
,
11
},
{
0x1581
,
13
},
{
0x00AD
,
8
},
{
0x0060
,
12
},
{
0x0C67
,
14
},
{
0x001C
,
9
},
{
0x00EE
,
13
},
{
0x0003
,
9
},
{
0x02CF
,
13
},
{
0x00D9
,
9
},
{
0x1580
,
13
},
{
0x0002
,
11
},
{
0x0183
,
11
},
{
0x0057
,
12
},
{
0x0061
,
12
},
{
0x0031
,
11
},
{
0x0066
,
12
},
{
0x0631
,
13
},
{
0x0632
,
13
},
{
0x00AC
,
13
},
{
0x031D
,
12
},
{
0x0076
,
12
},
{
0x003A
,
11
},
{
0x0165
,
12
},
{
0x0C66
,
14
},
{
0x0003
,
2
},
{
0x0054
,
7
},
{
0x02AB
,
10
},
{
0x0016
,
13
},
{
0x05F7
,
14
},
{
0x0005
,
4
},
{
0x00F8
,
9
},
{
0x0AA9
,
12
},
{
0x005F
,
15
},
{
0x0004
,
4
},
{
0x001C
,
10
},
{
0x1550
,
13
},
{
0x0004
,
5
},
{
0x0077
,
11
},
{
0x076C
,
15
},
{
0x000E
,
5
},
{
0x000A
,
12
},
{
0x000C
,
5
},
{
0x0562
,
11
},
{
0x0004
,
6
},
{
0x031C
,
12
},
{
0x0006
,
6
},
{
0x00C8
,
13
},
{
0x000D
,
6
},
{
0x01DA
,
13
},
{
0x0007
,
6
},
{
0x00C9
,
13
},
{
0x0001
,
7
},
{
0x002E
,
14
},
{
0x0014
,
7
},
{
0x1596
,
13
},
{
0x000A
,
7
},
{
0x0AC2
,
12
},
{
0x0016
,
7
},
{
0x015B
,
14
},
{
0x0015
,
7
},
{
0x015A
,
14
},
{
0x000F
,
8
},
{
0x005E
,
15
},
{
0x007E
,
8
},
{
0x00AB
,
8
},
{
0x002D
,
9
},
{
0x00D8
,
9
},
{
0x000B
,
9
},
{
0x0014
,
10
},
{
0x02B3
,
10
},
{
0x01F3
,
10
},
{
0x003A
,
10
},
{
0x0000
,
10
},
{
0x0058
,
10
},
{
0x002E
,
9
},
{
0x005E
,
10
},
{
0x0563
,
11
},
{
0x00EC
,
12
},
{
0x0054
,
12
},
{
0x0AC1
,
12
},
{
0x1556
,
13
},
{
0x02FA
,
13
},
{
0x0181
,
11
},
{
0x1557
,
13
},
{
0x059D
,
14
},
{
0x2AA3
,
14
},
{
0x2B2A
,
14
},
{
0x01DE
,
14
},
{
0x063C
,
13
},
{
0x00CF
,
13
},
{
0x1594
,
13
},
{
0x000D
,
9
}
},
{
{
0x0002
,
2
},
{
0x0006
,
3
},
{
0x000F
,
4
},
{
0x000D
,
5
},
{
0x000C
,
5
},
{
0x0015
,
6
},
{
0x0013
,
6
},
{
0x0012
,
6
},
{
0x0017
,
7
},
{
0x001F
,
8
},
{
0x001E
,
8
},
{
0x001D
,
8
},
{
0x0025
,
9
},
{
0x0024
,
9
},
{
0x0023
,
9
},
{
0x0021
,
9
},
{
0x0021
,
10
},
{
0x0020
,
10
},
{
0x000F
,
10
},
{
0x000E
,
10
},
{
0x0007
,
11
},
{
0x0006
,
11
},
{
0x0020
,
11
},
{
0x0021
,
11
},
{
0x0050
,
12
},
{
0x0051
,
12
},
{
0x0052
,
12
},
{
0x000E
,
4
},
{
0x0014
,
6
},
{
0x0016
,
7
},
{
0x001C
,
8
},
{
0x0020
,
9
},
{
0x001F
,
9
},
{
0x000D
,
10
},
{
0x0022
,
11
},
{
0x0053
,
12
},
{
0x0055
,
12
},
{
0x000B
,
5
},
{
0x0015
,
7
},
{
0x001E
,
9
},
{
0x000C
,
10
},
{
0x0056
,
12
},
{
0x0011
,
6
},
{
0x001B
,
8
},
{
0x001D
,
9
},
{
0x000B
,
10
},
{
0x0010
,
6
},
{
0x0022
,
9
},
{
0x000A
,
10
},
{
0x000D
,
6
},
{
0x001C
,
9
},
{
0x0008
,
10
},
{
0x0012
,
7
},
{
0x001B
,
9
},
{
0x0054
,
12
},
{
0x0014
,
7
},
{
0x001A
,
9
},
{
0x0057
,
12
},
{
0x0019
,
8
},
{
0x0009
,
10
},
{
0x0018
,
8
},
{
0x0023
,
11
},
{
0x0017
,
8
},
{
0x0019
,
9
},
{
0x0018
,
9
},
{
0x0007
,
10
},
{
0x0058
,
12
},
{
0x0007
,
4
},
{
0x000C
,
6
},
{
0x0016
,
8
},
{
0x0017
,
9
},
{
0x0006
,
10
},
{
0x0005
,
11
},
{
0x0004
,
11
},
{
0x0059
,
12
},
{
0x000F
,
6
},
{
0x0016
,
9
},
{
0x0005
,
10
},
{
0x000E
,
6
},
{
0x0004
,
10
},
{
0x0011
,
7
},
{
0x0024
,
11
},
{
0x0010
,
7
},
{
0x0025
,
11
},
{
0x0013
,
7
},
{
0x005A
,
12
},
{
0x0015
,
8
},
{
0x005B
,
12
},
{
0x0014
,
8
},
{
0x0013
,
8
},
{
0x001A
,
8
},
{
0x0015
,
9
},
{
0x0014
,
9
},
{
0x0013
,
9
},
{
0x0012
,
9
},
{
0x0011
,
9
},
{
0x0026
,
11
},
{
0x0027
,
11
},
{
0x005C
,
12
},
{
0x005D
,
12
},
{
0x005E
,
12
},
{
0x005F
,
12
},
{
0x0003
,
7
}
},
{
{
0x0002
,
2
},
{
0x000F
,
4
},
{
0x0015
,
6
},
{
0x0017
,
7
},
{
0x001F
,
8
},
{
0x0025
,
9
},
{
0x0024
,
9
},
{
0x0021
,
10
},
{
0x0020
,
10
},
{
0x0007
,
11
},
{
0x0006
,
11
},
{
0x0020
,
11
},
{
0x0006
,
3
},
{
0x0014
,
6
},
{
0x001E
,
8
},
{
0x000F
,
10
},
{
0x0021
,
11
},
{
0x0050
,
12
},
{
0x000E
,
4
},
{
0x001D
,
8
},
{
0x000E
,
10
},
{
0x0051
,
12
},
{
0x000D
,
5
},
{
0x0023
,
9
},
{
0x000D
,
10
},
{
0x000C
,
5
},
{
0x0022
,
9
},
{
0x0052
,
12
},
{
0x000B
,
5
},
{
0x000C
,
10
},
{
0x0053
,
12
},
{
0x0013
,
6
},
{
0x000B
,
10
},
{
0x0054
,
12
},
{
0x0012
,
6
},
{
0x000A
,
10
},
{
0x0011
,
6
},
{
0x0009
,
10
},
{
0x0010
,
6
},
{
0x0008
,
10
},
{
0x0016
,
7
},
{
0x0055
,
12
},
{
0x0015
,
7
},
{
0x0014
,
7
},
{
0x001C
,
8
},
{
0x001B
,
8
},
{
0x0021
,
9
},
{
0x0020
,
9
},
{
0x001F
,
9
},
{
0x001E
,
9
},
{
0x001D
,
9
},
{
0x001C
,
9
},
{
0x001B
,
9
},
{
0x001A
,
9
},
{
0x0022
,
11
},
{
0x0023
,
11
},
{
0x0056
,
12
},
{
0x0057
,
12
},
{
0x0007
,
4
},
{
0x0019
,
9
},
{
0x0005
,
11
},
{
0x000F
,
6
},
{
0x0004
,
11
},
{
0x000E
,
6
},
{
0x000D
,
6
},
{
0x000C
,
6
},
{
0x0013
,
7
},
{
0x0012
,
7
},
{
0x0011
,
7
},
{
0x0010
,
7
},
{
0x001A
,
8
},
{
0x0019
,
8
},
{
0x0018
,
8
},
{
0x0017
,
8
},
{
0x0016
,
8
},
{
0x0015
,
8
},
{
0x0014
,
8
},
{
0x0013
,
8
},
{
0x0018
,
9
},
{
0x0017
,
9
},
{
0x0016
,
9
},
{
0x0015
,
9
},
{
0x0014
,
9
},
{
0x0013
,
9
},
{
0x0012
,
9
},
{
0x0011
,
9
},
{
0x0007
,
10
},
{
0x0006
,
10
},
{
0x0005
,
10
},
{
0x0004
,
10
},
{
0x0024
,
11
},
{
0x0025
,
11
},
{
0x0026
,
11
},
{
0x0027
,
11
},
{
0x0058
,
12
},
{
0x0059
,
12
},
{
0x005A
,
12
},
{
0x005B
,
12
},
{
0x005C
,
12
},
{
0x005D
,
12
},
{
0x005E
,
12
},
{
0x005F
,
12
},
{
0x0003
,
7
}
},
{
{
0x0000
,
2
},
{
0x0003
,
3
},
{
0x000D
,
4
},
{
0x0005
,
4
},
{
0x001C
,
5
},
{
0x0016
,
5
},
{
0x003F
,
6
},
{
0x003A
,
6
},
{
0x002E
,
6
},
{
0x0022
,
6
},
{
0x007B
,
7
},
{
0x0067
,
7
},
{
0x005F
,
7
},
{
0x0047
,
7
},
{
0x0026
,
7
},
{
0x00EF
,
8
},
{
0x00CD
,
8
},
{
0x00C1
,
8
},
{
0x00A9
,
8
},
{
0x004F
,
8
},
{
0x01F2
,
9
},
{
0x01DD
,
9
},
{
0x0199
,
9
},
{
0x0185
,
9
},
{
0x015D
,
9
},
{
0x011B
,
9
},
{
0x03EF
,
10
},
{
0x03E1
,
10
},
{
0x03C8
,
10
},
{
0x0331
,
10
},
{
0x0303
,
10
},
{
0x02F1
,
10
},
{
0x02A0
,
10
},
{
0x0233
,
10
},
{
0x0126
,
10
},
{
0x07C0
,
11
},
{
0x076F
,
11
},
{
0x076C
,
11
},
{
0x0661
,
11
},
{
0x0604
,
11
},
{
0x0572
,
11
},
{
0x0551
,
11
},
{
0x046A
,
11
},
{
0x0274
,
11
},
{
0x0F27
,
12
},
{
0x0F24
,
12
},
{
0x0EDB
,
12
},
{
0x0C8E
,
12
},
{
0x0C0B
,
12
},
{
0x0C0A
,
12
},
{
0x0AE3
,
12
},
{
0x08D6
,
12
},
{
0x0490
,
12
},
{
0x0495
,
12
},
{
0x1F19
,
13
},
{
0x1DB5
,
13
},
{
0x0009
,
4
},
{
0x0010
,
5
},
{
0x0029
,
6
},
{
0x0062
,
7
},
{
0x00F3
,
8
},
{
0x00AD
,
8
},
{
0x01E5
,
9
},
{
0x0179
,
9
},
{
0x009C
,
9
},
{
0x03B1
,
10
},
{
0x02AE
,
10
},
{
0x0127
,
10
},
{
0x076E
,
11
},
{
0x0570
,
11
},
{
0x0275
,
11
},
{
0x0F25
,
12
},
{
0x0EC0
,
12
},
{
0x0AA0
,
12
},
{
0x08D7
,
12
},
{
0x1E4C
,
13
},
{
0x0008
,
5
},
{
0x0063
,
7
},
{
0x00AF
,
8
},
{
0x017B
,
9
},
{
0x03B3
,
10
},
{
0x07DD
,
11
},
{
0x0640
,
11
},
{
0x0F8D
,
12
},
{
0x0BC1
,
12
},
{
0x0491
,
12
},
{
0x0028
,
6
},
{
0x00C3
,
8
},
{
0x0151
,
9
},
{
0x02A1
,
10
},
{
0x0573
,
11
},
{
0x0EC3
,
12
},
{
0x1F35
,
13
},
{
0x0065
,
7
},
{
0x01DA
,
9
},
{
0x02AF
,
10
},
{
0x0277
,
11
},
{
0x08C9
,
12
},
{
0x1781
,
13
},
{
0x0025
,
7
},
{
0x0118
,
9
},
{
0x0646
,
11
},
{
0x0AA6
,
12
},
{
0x1780
,
13
},
{
0x00C9
,
8
},
{
0x0321
,
10
},
{
0x0F9B
,
12
},
{
0x191E
,
13
},
{
0x0048
,
8
},
{
0x07CC
,
11
},
{
0x0AA1
,
12
},
{
0x0180
,
9
},
{
0x0465
,
11
},
{
0x1905
,
13
},
{
0x03E2
,
10
},
{
0x0EC1
,
12
},
{
0x3C9B
,
14
},
{
0x02F4
,
10
},
{
0x08C8
,
12
},
{
0x07C1
,
11
},
{
0x0928
,
13
},
{
0x05E1
,
11
},
{
0x320D
,
14
},
{
0x0EC2
,
12
},
{
0x6418
,
15
},
{
0x1F34
,
13
},
{
0x0078
,
7
},
{
0x0155
,
9
},
{
0x0552
,
11
},
{
0x191F
,
13
},
{
0x00FA
,
8
},
{
0x07DC
,
11
},
{
0x1907
,
13
},
{
0x00AC
,
8
},
{
0x0249
,
11
},
{
0x13B1
,
14
},
{
0x01F6
,
9
},
{
0x0AE2
,
12
},
{
0x01DC
,
9
},
{
0x04ED
,
12
},
{
0x0184
,
9
},
{
0x1904
,
13
},
{
0x0156
,
9
},
{
0x09D9
,
13
},
{
0x03E7
,
10
},
{
0x0929
,
13
},
{
0x03B2
,
10
},
{
0x3B68
,
14
},
{
0x02F5
,
10
},
{
0x13B0
,
14
},
{
0x0322
,
10
},
{
0x3B69
,
14
},
{
0x0234
,
10
},
{
0x7935
,
15
},
{
0x07C7
,
11
},
{
0xC833
,
16
},
{
0x0660
,
11
},
{
0x7934
,
15
},
{
0x024B
,
11
},
{
0xC832
,
16
},
{
0x0AA7
,
12
},
{
0x1F18
,
13
},
{
0x007A
,
7
}
},
{
{
0x0002
,
2
},
{
0x0000
,
3
},
{
0x001E
,
5
},
{
0x0004
,
5
},
{
0x0012
,
6
},
{
0x0070
,
7
},
{
0x001A
,
7
},
{
0x005F
,
8
},
{
0x0047
,
8
},
{
0x01D3
,
9
},
{
0x00B5
,
9
},
{
0x0057
,
9
},
{
0x03B5
,
10
},
{
0x016D
,
10
},
{
0x0162
,
10
},
{
0x07CE
,
11
},
{
0x0719
,
11
},
{
0x0691
,
11
},
{
0x02C6
,
11
},
{
0x0156
,
11
},
{
0x0F92
,
12
},
{
0x0D2E
,
12
},
{
0x0D20
,
12
},
{
0x059E
,
12
},
{
0x0468
,
12
},
{
0x02A6
,
12
},
{
0x1DA2
,
13
},
{
0x1C60
,
13
},
{
0x1A43
,
13
},
{
0x0B1D
,
13
},
{
0x08C0
,
13
},
{
0x055D
,
13
},
{
0x0003
,
3
},
{
0x000A
,
5
},
{
0x0077
,
7
},
{
0x00E5
,
8
},
{
0x01D9
,
9
},
{
0x03E5
,
10
},
{
0x0166
,
10
},
{
0x0694
,
11
},
{
0x0152
,
11
},
{
0x059F
,
12
},
{
0x1F3C
,
13
},
{
0x1A4B
,
13
},
{
0x055E
,
13
},
{
0x000C
,
4
},
{
0x007D
,
7
},
{
0x0044
,
8
},
{
0x03E0
,
10
},
{
0x0769
,
11
},
{
0x0E31
,
12
},
{
0x1F26
,
13
},
{
0x055C
,
13
},
{
0x001B
,
5
},
{
0x00E2
,
8
},
{
0x03A5
,
10
},
{
0x02C9
,
11
},
{
0x1F23
,
13
},
{
0x3B47
,
14
},
{
0x0007
,
5
},
{
0x01D8
,
9
},
{
0x02D8
,
11
},
{
0x1F27
,
13
},
{
0x3494
,
14
},
{
0x0035
,
6
},
{
0x03E1
,
10
},
{
0x059C
,
12
},
{
0x38C3
,
14
},
{
0x000C
,
6
},
{
0x0165
,
10
},
{
0x1D23
,
13
},
{
0x1638
,
14
},
{
0x0068
,
7
},
{
0x0693
,
11
},
{
0x3A45
,
14
},
{
0x0020
,
7
},
{
0x0F90
,
12
},
{
0x7CF6
,
15
},
{
0x00E8
,
8
},
{
0x058F
,
12
},
{
0x2CEF
,
15
},
{
0x0045
,
8
},
{
0x0B3A
,
13
},
{
0x01F1
,
9
},
{
0x3B46
,
14
},
{
0x01A7
,
9
},
{
0x1676
,
14
},
{
0x0056
,
9
},
{
0x692A
,
15
},
{
0x038D
,
10
},
{
0xE309
,
16
},
{
0x00AA
,
10
},
{
0x1C611
,
17
},
{
0x02DF
,
11
},
{
0xB3B9
,
17
},
{
0x02C8
,
11
},
{
0x38C20
,
18
},
{
0x01B0
,
11
},
{
0x16390
,
18
},
{
0x0F9F
,
12
},
{
0x16771
,
18
},
{
0x0ED0
,
12
},
{
0x71843
,
19
},
{
0x0D2A
,
12
},
{
0xF9E8C
,
20
},
{
0x0461
,
12
},
{
0xF9E8E
,
20
},
{
0x0B67
,
13
},
{
0x055F
,
13
},
{
0x003F
,
6
},
{
0x006D
,
9
},
{
0x0E90
,
12
},
{
0x054E
,
13
},
{
0x0013
,
6
},
{
0x0119
,
10
},
{
0x0B66
,
13
},
{
0x000B
,
6
},
{
0x0235
,
11
},
{
0x7CF5
,
15
},
{
0x0075
,
7
},
{
0x0D24
,
12
},
{
0xF9E9
,
16
},
{
0x002E
,
7
},
{
0x1F22
,
13
},
{
0x0021
,
7
},
{
0x054F
,
13
},
{
0x0014
,
7
},
{
0x3A44
,
14
},
{
0x00E4
,
8
},
{
0x7CF7
,
15
},
{
0x005E
,
8
},
{
0x7185
,
15
},
{
0x0037
,
8
},
{
0x2C73
,
15
},
{
0x01DB
,
9
},
{
0x59DD
,
16
},
{
0x01C7
,
9
},
{
0x692B
,
15
},
{
0x01A6
,
9
},
{
0x58E5
,
16
},
{
0x00B4
,
9
},
{
0x1F3D0
,
17
},
{
0x00B0
,
9
},
{
0xB1C9
,
17
},
{
0x03E6
,
10
},
{
0x16770
,
18
},
{
0x016E
,
10
},
{
0x3E7A2
,
18
},
{
0x011B
,
10
},
{
0xF9E8D
,
20
},
{
0x00D9
,
10
},
{
0xF9E8F
,
20
},
{
0x00A8
,
10
},
{
0x2C723
,
19
},
{
0x0749
,
11
},
{
0xE3084
,
20
},
{
0x0696
,
11
},
{
0x58E45
,
20
},
{
0x02DE
,
11
},
{
0xB1C88
,
21
},
{
0x0231
,
11
},
{
0x1C610A
,
21
},
{
0x01B1
,
11
},
{
0x71842D
,
23
},
{
0x0D2B
,
12
},
{
0x38C217
,
22
},
{
0x0D2F
,
12
},
{
0x163913
,
22
},
{
0x05B2
,
12
},
{
0x163912
,
22
},
{
0x0469
,
12
},
{
0x71842C
,
23
},
{
0x1A42
,
13
},
{
0x08C1
,
13
},
{
0x0073
,
7
}
}
};
static
const
uint16_t
vlc_offs
[]
=
{
0
,
520
,
552
,
616
,
1128
,
1160
,
1224
,
1740
,
1772
,
1836
,
1900
,
2436
,
2986
,
3050
,
3610
,
4154
,
4218
,
4746
,
5326
,
5390
,
5902
,
6554
,
7658
,
8342
,
9304
,
9988
,
10630
,
11234
,
12174
,
13006
,
13560
,
14232
,
14786
,
15432
,
16350
,
17522
,
20372
,
21818
,
22330
,
22394
,
23166
,
23678
,
23742
,
24820
,
25332
,
25396
,
26460
,
26980
,
27048
,
27592
,
27600
,
27608
,
27616
,
27624
,
28224
,
28258
,
28290
,
28802
,
28834
,
28866
,
29378
,
29412
,
29444
,
29960
,
29994
,
30026
,
30538
,
30572
,
30604
,
31120
,
31154
,
31186
,
31714
,
31746
,
31778
,
32306
,
32340
,
32372
};
/**
* Init VC-1 specific tables and VC1Context members
* @param v The VC1Context to initialize
* @return Status
*/
int
ff_vc1_init_common
(
VC1Context
*
v
)
{
static
int
done
=
0
;
int
i
=
0
;
static
VLC_TYPE
vlc_table
[
32372
][
2
];
v
->
hrd_rate
=
v
->
hrd_buffer
=
NULL
;
/* VLC tables */
if
(
!
done
)
{
INIT_VLC_STATIC
(
&
ff_vc1_bfraction_vlc
,
VC1_BFRACTION_VLC_BITS
,
23
,
ff_vc1_bfraction_bits
,
1
,
1
,
ff_vc1_bfraction_codes
,
1
,
1
,
1
<<
VC1_BFRACTION_VLC_BITS
);
INIT_VLC_STATIC
(
&
ff_vc1_norm2_vlc
,
VC1_NORM2_VLC_BITS
,
4
,
ff_vc1_norm2_bits
,
1
,
1
,
ff_vc1_norm2_codes
,
1
,
1
,
1
<<
VC1_NORM2_VLC_BITS
);
INIT_VLC_STATIC
(
&
ff_vc1_norm6_vlc
,
VC1_NORM6_VLC_BITS
,
64
,
ff_vc1_norm6_bits
,
1
,
1
,
ff_vc1_norm6_codes
,
2
,
2
,
556
);
INIT_VLC_STATIC
(
&
ff_vc1_imode_vlc
,
VC1_IMODE_VLC_BITS
,
7
,
ff_vc1_imode_bits
,
1
,
1
,
ff_vc1_imode_codes
,
1
,
1
,
1
<<
VC1_IMODE_VLC_BITS
);
for
(
i
=
0
;
i
<
3
;
i
++
)
{
ff_vc1_ttmb_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
0
]];
ff_vc1_ttmb_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
1
]
-
vlc_offs
[
i
*
3
+
0
];
init_vlc
(
&
ff_vc1_ttmb_vlc
[
i
],
VC1_TTMB_VLC_BITS
,
16
,
ff_vc1_ttmb_bits
[
i
],
1
,
1
,
ff_vc1_ttmb_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_ttblk_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
1
]];
ff_vc1_ttblk_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
2
]
-
vlc_offs
[
i
*
3
+
1
];
init_vlc
(
&
ff_vc1_ttblk_vlc
[
i
],
VC1_TTBLK_VLC_BITS
,
8
,
ff_vc1_ttblk_bits
[
i
],
1
,
1
,
ff_vc1_ttblk_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_subblkpat_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
2
]];
ff_vc1_subblkpat_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
3
]
-
vlc_offs
[
i
*
3
+
2
];
init_vlc
(
&
ff_vc1_subblkpat_vlc
[
i
],
VC1_SUBBLKPAT_VLC_BITS
,
15
,
ff_vc1_subblkpat_bits
[
i
],
1
,
1
,
ff_vc1_subblkpat_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
4
;
i
++
)
{
ff_vc1_4mv_block_pattern_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
9
]];
ff_vc1_4mv_block_pattern_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
10
]
-
vlc_offs
[
i
*
3
+
9
];
init_vlc
(
&
ff_vc1_4mv_block_pattern_vlc
[
i
],
VC1_4MV_BLOCK_PATTERN_VLC_BITS
,
16
,
ff_vc1_4mv_block_pattern_bits
[
i
],
1
,
1
,
ff_vc1_4mv_block_pattern_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_cbpcy_p_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
10
]];
ff_vc1_cbpcy_p_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
11
]
-
vlc_offs
[
i
*
3
+
10
];
init_vlc
(
&
ff_vc1_cbpcy_p_vlc
[
i
],
VC1_CBPCY_P_VLC_BITS
,
64
,
ff_vc1_cbpcy_p_bits
[
i
],
1
,
1
,
ff_vc1_cbpcy_p_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_mv_diff_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
11
]];
ff_vc1_mv_diff_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
12
]
-
vlc_offs
[
i
*
3
+
11
];
init_vlc
(
&
ff_vc1_mv_diff_vlc
[
i
],
VC1_MV_DIFF_VLC_BITS
,
73
,
ff_vc1_mv_diff_bits
[
i
],
1
,
1
,
ff_vc1_mv_diff_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
8
;
i
++
)
{
ff_vc1_ac_coeff_table
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
2
+
21
]];
ff_vc1_ac_coeff_table
[
i
].
table_allocated
=
vlc_offs
[
i
*
2
+
22
]
-
vlc_offs
[
i
*
2
+
21
];
init_vlc
(
&
ff_vc1_ac_coeff_table
[
i
],
AC_VLC_BITS
,
ff_vc1_ac_sizes
[
i
],
&
vc1_ac_tables
[
i
][
0
][
1
],
8
,
4
,
&
vc1_ac_tables
[
i
][
0
][
0
],
8
,
4
,
INIT_VLC_USE_NEW_STATIC
);
/* initialize interlaced MVDATA tables (2-Ref) */
ff_vc1_2ref_mvdata_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
2
+
22
]];
ff_vc1_2ref_mvdata_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
2
+
23
]
-
vlc_offs
[
i
*
2
+
22
];
init_vlc
(
&
ff_vc1_2ref_mvdata_vlc
[
i
],
VC1_2REF_MVDATA_VLC_BITS
,
126
,
ff_vc1_2ref_mvdata_bits
[
i
],
1
,
1
,
ff_vc1_2ref_mvdata_codes
[
i
],
4
,
4
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
4
;
i
++
)
{
/* initialize 4MV MBMODE VLC tables for interlaced frame P picture */
ff_vc1_intfr_4mv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
37
]];
ff_vc1_intfr_4mv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
38
]
-
vlc_offs
[
i
*
3
+
37
];
init_vlc
(
&
ff_vc1_intfr_4mv_mbmode_vlc
[
i
],
VC1_INTFR_4MV_MBMODE_VLC_BITS
,
15
,
ff_vc1_intfr_4mv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_intfr_4mv_mbmode_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
/* initialize NON-4MV MBMODE VLC tables for the same */
ff_vc1_intfr_non4mv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
38
]];
ff_vc1_intfr_non4mv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
39
]
-
vlc_offs
[
i
*
3
+
38
];
init_vlc
(
&
ff_vc1_intfr_non4mv_mbmode_vlc
[
i
],
VC1_INTFR_NON4MV_MBMODE_VLC_BITS
,
9
,
ff_vc1_intfr_non4mv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_intfr_non4mv_mbmode_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
/* initialize interlaced MVDATA tables (1-Ref) */
ff_vc1_1ref_mvdata_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
39
]];
ff_vc1_1ref_mvdata_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
40
]
-
vlc_offs
[
i
*
3
+
39
];
init_vlc
(
&
ff_vc1_1ref_mvdata_vlc
[
i
],
VC1_1REF_MVDATA_VLC_BITS
,
72
,
ff_vc1_1ref_mvdata_bits
[
i
],
1
,
1
,
ff_vc1_1ref_mvdata_codes
[
i
],
4
,
4
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
4
;
i
++
)
{
/* Initialize 2MV Block pattern VLC tables */
ff_vc1_2mv_block_pattern_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
+
49
]];
ff_vc1_2mv_block_pattern_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
+
50
]
-
vlc_offs
[
i
+
49
];
init_vlc
(
&
ff_vc1_2mv_block_pattern_vlc
[
i
],
VC1_2MV_BLOCK_PATTERN_VLC_BITS
,
4
,
ff_vc1_2mv_block_pattern_bits
[
i
],
1
,
1
,
ff_vc1_2mv_block_pattern_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* Initialize interlaced CBPCY VLC tables (Table 124 - Table 131) */
ff_vc1_icbpcy_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
53
]];
ff_vc1_icbpcy_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
54
]
-
vlc_offs
[
i
*
3
+
53
];
init_vlc
(
&
ff_vc1_icbpcy_vlc
[
i
],
VC1_ICBPCY_VLC_BITS
,
63
,
ff_vc1_icbpcy_p_bits
[
i
],
1
,
1
,
ff_vc1_icbpcy_p_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
/* Initialize interlaced field picture MBMODE VLC tables */
ff_vc1_if_mmv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
54
]];
ff_vc1_if_mmv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
55
]
-
vlc_offs
[
i
*
3
+
54
];
init_vlc
(
&
ff_vc1_if_mmv_mbmode_vlc
[
i
],
VC1_IF_MMV_MBMODE_VLC_BITS
,
8
,
ff_vc1_if_mmv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_if_mmv_mbmode_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_if_1mv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
55
]];
ff_vc1_if_1mv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
56
]
-
vlc_offs
[
i
*
3
+
55
];
init_vlc
(
&
ff_vc1_if_1mv_mbmode_vlc
[
i
],
VC1_IF_1MV_MBMODE_VLC_BITS
,
6
,
ff_vc1_if_1mv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_if_1mv_mbmode_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
}
done
=
1
;
}
/* Other defaults */
v
->
pq
=
-
1
;
v
->
mvrange
=
0
;
/* 7.1.1.18, p80 */
return
0
;
}
libavcodec/vc1.h
View file @
3c715383
...
...
@@ -28,6 +28,8 @@
#include "intrax8.h"
#include "vc1dsp.h"
#define AC_VLC_BITS 9
/** Markers used in VC-1 AP frame data */
//@{
enum
VC1Code
{
...
...
libavcodec/vc1acdata.h
View file @
3c715383
...
...
@@ -24,232 +24,7 @@
#include <stdint.h>
#define AC_MODES 8
static
const
int
vc1_ac_sizes
[
AC_MODES
]
=
{
186
,
169
,
133
,
149
,
103
,
103
,
163
,
175
};
static
const
uint32_t
vc1_ac_tables
[
AC_MODES
][
186
][
2
]
=
{
{
{
0x0001
,
2
},
{
0x0005
,
3
},
{
0x000D
,
4
},
{
0x0012
,
5
},
{
0x000E
,
6
},
{
0x0015
,
7
},
{
0x0013
,
8
},
{
0x003F
,
8
},
{
0x004B
,
9
},
{
0x011F
,
9
},
{
0x00B8
,
10
},
{
0x03E3
,
10
},
{
0x0172
,
11
},
{
0x024D
,
12
},
{
0x03DA
,
12
},
{
0x02DD
,
13
},
{
0x1F55
,
13
},
{
0x05B9
,
14
},
{
0x3EAE
,
14
},
{
0x0000
,
4
},
{
0x0010
,
5
},
{
0x0008
,
7
},
{
0x0020
,
8
},
{
0x0029
,
9
},
{
0x01F4
,
9
},
{
0x0233
,
10
},
{
0x01E0
,
11
},
{
0x012A
,
12
},
{
0x03DD
,
12
},
{
0x050A
,
13
},
{
0x1F29
,
13
},
{
0x0A42
,
14
},
{
0x1272
,
15
},
{
0x1737
,
15
},
{
0x0003
,
5
},
{
0x0011
,
7
},
{
0x00C4
,
8
},
{
0x004B
,
10
},
{
0x00B4
,
11
},
{
0x07D4
,
11
},
{
0x0345
,
12
},
{
0x02D7
,
13
},
{
0x07BF
,
13
},
{
0x0938
,
14
},
{
0x0BBB
,
14
},
{
0x095E
,
15
},
{
0x0013
,
5
},
{
0x0078
,
7
},
{
0x0069
,
9
},
{
0x0232
,
10
},
{
0x0461
,
11
},
{
0x03EC
,
12
},
{
0x0520
,
13
},
{
0x1F2A
,
13
},
{
0x3E50
,
14
},
{
0x3E51
,
14
},
{
0x1486
,
15
},
{
0x000C
,
6
},
{
0x0024
,
9
},
{
0x0094
,
11
},
{
0x08C0
,
12
},
{
0x0F09
,
14
},
{
0x1EF0
,
15
},
{
0x003D
,
6
},
{
0x0053
,
9
},
{
0x01A0
,
11
},
{
0x02D6
,
13
},
{
0x0F08
,
14
},
{
0x0013
,
7
},
{
0x007C
,
9
},
{
0x07C1
,
11
},
{
0x04AC
,
14
},
{
0x001B
,
7
},
{
0x00A0
,
10
},
{
0x0344
,
12
},
{
0x0F79
,
14
},
{
0x0079
,
7
},
{
0x03E1
,
10
},
{
0x02D4
,
13
},
{
0x2306
,
14
},
{
0x0021
,
8
},
{
0x023C
,
10
},
{
0x0FAE
,
12
},
{
0x23DE
,
14
},
{
0x0035
,
8
},
{
0x0175
,
11
},
{
0x07B3
,
13
},
{
0x00C5
,
8
},
{
0x0174
,
11
},
{
0x0785
,
13
},
{
0x0048
,
9
},
{
0x01A3
,
11
},
{
0x049E
,
13
},
{
0x002C
,
9
},
{
0x00FA
,
10
},
{
0x07D6
,
11
},
{
0x0092
,
10
},
{
0x05CC
,
13
},
{
0x1EF1
,
15
},
{
0x00A3
,
10
},
{
0x03ED
,
12
},
{
0x093E
,
14
},
{
0x01E2
,
11
},
{
0x1273
,
15
},
{
0x07C4
,
11
},
{
0x1487
,
15
},
{
0x0291
,
12
},
{
0x0293
,
12
},
{
0x0F8A
,
12
},
{
0x0509
,
13
},
{
0x0508
,
13
},
{
0x078D
,
13
},
{
0x07BE
,
13
},
{
0x078C
,
13
},
{
0x04AE
,
14
},
{
0x0BBA
,
14
},
{
0x2307
,
14
},
{
0x0B9A
,
14
},
{
0x1736
,
15
},
{
0x000E
,
4
},
{
0x0045
,
7
},
{
0x01F3
,
9
},
{
0x047A
,
11
},
{
0x05DC
,
13
},
{
0x23DF
,
14
},
{
0x0019
,
5
},
{
0x0028
,
9
},
{
0x0176
,
11
},
{
0x049D
,
13
},
{
0x23DD
,
14
},
{
0x0030
,
6
},
{
0x00A2
,
10
},
{
0x02EF
,
12
},
{
0x05B8
,
14
},
{
0x003F
,
6
},
{
0x00A5
,
10
},
{
0x03DB
,
12
},
{
0x093F
,
14
},
{
0x0044
,
7
},
{
0x07CB
,
11
},
{
0x095F
,
15
},
{
0x0063
,
7
},
{
0x03C3
,
12
},
{
0x0015
,
8
},
{
0x08F6
,
12
},
{
0x0017
,
8
},
{
0x0498
,
13
},
{
0x002C
,
8
},
{
0x07B2
,
13
},
{
0x002F
,
8
},
{
0x1F54
,
13
},
{
0x008D
,
8
},
{
0x07BD
,
13
},
{
0x008E
,
8
},
{
0x1182
,
13
},
{
0x00FB
,
8
},
{
0x050B
,
13
},
{
0x002D
,
8
},
{
0x07C0
,
11
},
{
0x0079
,
9
},
{
0x1F5F
,
13
},
{
0x007A
,
9
},
{
0x1F56
,
13
},
{
0x0231
,
10
},
{
0x03E4
,
10
},
{
0x01A1
,
11
},
{
0x0143
,
11
},
{
0x01F7
,
11
},
{
0x016F
,
12
},
{
0x0292
,
12
},
{
0x02E7
,
12
},
{
0x016C
,
12
},
{
0x016D
,
12
},
{
0x03DC
,
12
},
{
0x0F8B
,
12
},
{
0x0499
,
13
},
{
0x03D8
,
12
},
{
0x078E
,
13
},
{
0x02D5
,
13
},
{
0x1F5E
,
13
},
{
0x1F2B
,
13
},
{
0x078F
,
13
},
{
0x04AD
,
14
},
{
0x3EAF
,
14
},
{
0x23DC
,
14
},
{
0x004A
,
9
}
},
{
{
0x0000
,
3
},
{
0x0003
,
4
},
{
0x000B
,
5
},
{
0x0014
,
6
},
{
0x003F
,
6
},
{
0x005D
,
7
},
{
0x00A2
,
8
},
{
0x00AC
,
9
},
{
0x016E
,
9
},
{
0x020A
,
10
},
{
0x02E2
,
10
},
{
0x0432
,
11
},
{
0x05C9
,
11
},
{
0x0827
,
12
},
{
0x0B54
,
12
},
{
0x04E6
,
13
},
{
0x105F
,
13
},
{
0x172A
,
13
},
{
0x20B2
,
14
},
{
0x2D4E
,
14
},
{
0x39F0
,
14
},
{
0x4175
,
15
},
{
0x5A9E
,
15
},
{
0x0004
,
4
},
{
0x001E
,
5
},
{
0x0042
,
7
},
{
0x00B6
,
8
},
{
0x0173
,
9
},
{
0x0395
,
10
},
{
0x072E
,
11
},
{
0x0B94
,
12
},
{
0x16A4
,
13
},
{
0x20B3
,
14
},
{
0x2E45
,
14
},
{
0x0005
,
5
},
{
0x0040
,
7
},
{
0x0049
,
9
},
{
0x028F
,
10
},
{
0x05CB
,
11
},
{
0x048A
,
13
},
{
0x09DD
,
14
},
{
0x73E2
,
15
},
{
0x0018
,
5
},
{
0x0025
,
8
},
{
0x008A
,
10
},
{
0x051B
,
11
},
{
0x0E5F
,
12
},
{
0x09C9
,
14
},
{
0x139C
,
15
},
{
0x0029
,
6
},
{
0x004F
,
9
},
{
0x0412
,
11
},
{
0x048D
,
13
},
{
0x2E41
,
14
},
{
0x0038
,
6
},
{
0x010E
,
9
},
{
0x05A8
,
11
},
{
0x105C
,
13
},
{
0x39F2
,
14
},
{
0x0058
,
7
},
{
0x021F
,
10
},
{
0x0E7E
,
12
},
{
0x39FF
,
14
},
{
0x0023
,
8
},
{
0x02E3
,
10
},
{
0x04E5
,
13
},
{
0x2E40
,
14
},
{
0x00A1
,
8
},
{
0x05BE
,
11
},
{
0x09C8
,
14
},
{
0x0083
,
8
},
{
0x013A
,
11
},
{
0x1721
,
13
},
{
0x0044
,
9
},
{
0x0276
,
12
},
{
0x39F6
,
14
},
{
0x008B
,
10
},
{
0x04EF
,
13
},
{
0x5A9B
,
15
},
{
0x0208
,
10
},
{
0x1CFE
,
13
},
{
0x0399
,
10
},
{
0x1CB4
,
13
},
{
0x039E
,
10
},
{
0x39F3
,
14
},
{
0x05AB
,
11
},
{
0x73E3
,
15
},
{
0x0737
,
11
},
{
0x5A9F
,
15
},
{
0x082D
,
12
},
{
0x0E69
,
12
},
{
0x0E68
,
12
},
{
0x0433
,
11
},
{
0x0B7B
,
12
},
{
0x2DF8
,
14
},
{
0x2E56
,
14
},
{
0x2E57
,
14
},
{
0x39F7
,
14
},
{
0x51A5
,
15
},
{
0x0003
,
3
},
{
0x002A
,
6
},
{
0x00E4
,
8
},
{
0x028E
,
10
},
{
0x0735
,
11
},
{
0x1058
,
13
},
{
0x1CFA
,
13
},
{
0x2DF9
,
14
},
{
0x4174
,
15
},
{
0x0009
,
4
},
{
0x0054
,
8
},
{
0x0398
,
10
},
{
0x048B
,
13
},
{
0x139D
,
15
},
{
0x000D
,
4
},
{
0x00AD
,
9
},
{
0x0826
,
12
},
{
0x2D4C
,
14
},
{
0x0011
,
5
},
{
0x016B
,
9
},
{
0x0B7F
,
12
},
{
0x51A4
,
15
},
{
0x0019
,
5
},
{
0x021B
,
10
},
{
0x16FD
,
13
},
{
0x001D
,
5
},
{
0x0394
,
10
},
{
0x28D3
,
14
},
{
0x002B
,
6
},
{
0x05BC
,
11
},
{
0x5A9A
,
15
},
{
0x002F
,
6
},
{
0x0247
,
12
},
{
0x0010
,
7
},
{
0x0A35
,
12
},
{
0x003E
,
6
},
{
0x0B7A
,
12
},
{
0x0059
,
7
},
{
0x105E
,
13
},
{
0x0026
,
8
},
{
0x09CF
,
14
},
{
0x0055
,
8
},
{
0x1CB5
,
13
},
{
0x0057
,
8
},
{
0x0E5B
,
12
},
{
0x00A0
,
8
},
{
0x1468
,
13
},
{
0x0170
,
9
},
{
0x0090
,
10
},
{
0x01CE
,
9
},
{
0x021A
,
10
},
{
0x0218
,
10
},
{
0x0168
,
9
},
{
0x021E
,
10
},
{
0x0244
,
12
},
{
0x0736
,
11
},
{
0x0138
,
11
},
{
0x0519
,
11
},
{
0x0E5E
,
12
},
{
0x072C
,
11
},
{
0x0B55
,
12
},
{
0x09DC
,
14
},
{
0x20BB
,
14
},
{
0x048C
,
13
},
{
0x1723
,
13
},
{
0x2E44
,
14
},
{
0x16A5
,
13
},
{
0x0518
,
11
},
{
0x39FE
,
14
},
{
0x0169
,
9
}
},
{
{
0x0001
,
2
},
{
0x0006
,
3
},
{
0x000F
,
4
},
{
0x0016
,
5
},
{
0x0020
,
6
},
{
0x0018
,
7
},
{
0x0008
,
8
},
{
0x009A
,
8
},
{
0x0056
,
9
},
{
0x013E
,
9
},
{
0x00F0
,
10
},
{
0x03A5
,
10
},
{
0x0077
,
11
},
{
0x01EF
,
11
},
{
0x009A
,
12
},
{
0x005D
,
13
},
{
0x0001
,
4
},
{
0x0011
,
5
},
{
0x0002
,
7
},
{
0x000B
,
8
},
{
0x0012
,
9
},
{
0x01D6
,
9
},
{
0x027E
,
10
},
{
0x0191
,
11
},
{
0x00EA
,
12
},
{
0x03DC
,
12
},
{
0x013B
,
13
},
{
0x0004
,
5
},
{
0x0014
,
7
},
{
0x009E
,
8
},
{
0x0009
,
10
},
{
0x01AC
,
11
},
{
0x01E2
,
11
},
{
0x03CA
,
12
},
{
0x005F
,
13
},
{
0x0017
,
5
},
{
0x004E
,
7
},
{
0x005E
,
9
},
{
0x00F3
,
10
},
{
0x01AD
,
11
},
{
0x00EC
,
12
},
{
0x05F0
,
13
},
{
0x000E
,
6
},
{
0x00E1
,
8
},
{
0x03A4
,
10
},
{
0x009C
,
12
},
{
0x013D
,
13
},
{
0x003B
,
6
},
{
0x001C
,
9
},
{
0x0014
,
11
},
{
0x09BE
,
12
},
{
0x0006
,
7
},
{
0x007A
,
9
},
{
0x0190
,
11
},
{
0x0137
,
13
},
{
0x001B
,
7
},
{
0x0008
,
10
},
{
0x075C
,
11
},
{
0x0071
,
7
},
{
0x00D7
,
10
},
{
0x09BF
,
12
},
{
0x0007
,
8
},
{
0x00AF
,
10
},
{
0x04CC
,
11
},
{
0x0034
,
8
},
{
0x0265
,
10
},
{
0x009F
,
12
},
{
0x00E0
,
8
},
{
0x0016
,
11
},
{
0x0327
,
12
},
{
0x0015
,
9
},
{
0x017D
,
11
},
{
0x0EBB
,
12
},
{
0x0014
,
9
},
{
0x00F6
,
10
},
{
0x01E4
,
11
},
{
0x00CB
,
10
},
{
0x099D
,
12
},
{
0x00CA
,
10
},
{
0x02FC
,
12
},
{
0x017F
,
11
},
{
0x04CD
,
11
},
{
0x02FD
,
12
},
{
0x04FE
,
11
},
{
0x013A
,
13
},
{
0x000A
,
4
},
{
0x0042
,
7
},
{
0x01D3
,
9
},
{
0x04DD
,
11
},
{
0x0012
,
5
},
{
0x00E8
,
8
},
{
0x004C
,
11
},
{
0x0136
,
13
},
{
0x0039
,
6
},
{
0x0264
,
10
},
{
0x0EBA
,
12
},
{
0x0000
,
7
},
{
0x00AE
,
10
},
{
0x099C
,
12
},
{
0x001F
,
7
},
{
0x04DE
,
11
},
{
0x0043
,
7
},
{
0x04DC
,
11
},
{
0x0003
,
8
},
{
0x03CB
,
12
},
{
0x0006
,
8
},
{
0x099E
,
12
},
{
0x002A
,
8
},
{
0x05F1
,
13
},
{
0x000F
,
8
},
{
0x09FE
,
12
},
{
0x0033
,
8
},
{
0x09FF
,
12
},
{
0x0098
,
8
},
{
0x099F
,
12
},
{
0x00EA
,
8
},
{
0x013C
,
13
},
{
0x002E
,
8
},
{
0x0192
,
11
},
{
0x0136
,
9
},
{
0x006A
,
9
},
{
0x0015
,
11
},
{
0x03AF
,
10
},
{
0x01E3
,
11
},
{
0x0074
,
11
},
{
0x00EB
,
12
},
{
0x02F9
,
12
},
{
0x005C
,
13
},
{
0x00ED
,
12
},
{
0x03DD
,
12
},
{
0x0326
,
12
},
{
0x005E
,
13
},
{
0x0016
,
7
}
},
{
{
0x0004
,
3
},
{
0x0014
,
5
},
{
0x0017
,
7
},
{
0x007F
,
8
},
{
0x0154
,
9
},
{
0x01F2
,
10
},
{
0x00BF
,
11
},
{
0x0065
,
12
},
{
0x0AAA
,
12
},
{
0x0630
,
13
},
{
0x1597
,
13
},
{
0x03B7
,
14
},
{
0x2B22
,
14
},
{
0x0BE6
,
15
},
{
0x000B
,
4
},
{
0x0037
,
7
},
{
0x0062
,
9
},
{
0x0007
,
11
},
{
0x0166
,
12
},
{
0x00CE
,
13
},
{
0x1590
,
13
},
{
0x05F6
,
14
},
{
0x0BE7
,
15
},
{
0x0007
,
5
},
{
0x006D
,
8
},
{
0x0003
,
11
},
{
0x031F
,
12
},
{
0x05F2
,
14
},
{
0x0002
,
6
},
{
0x0061
,
9
},
{
0x0055
,
12
},
{
0x01DF
,
14
},
{
0x001A
,
6
},
{
0x001E
,
10
},
{
0x0AC9
,
12
},
{
0x2B23
,
14
},
{
0x001E
,
6
},
{
0x001F
,
10
},
{
0x0AC3
,
12
},
{
0x2B2B
,
14
},
{
0x0006
,
7
},
{
0x0004
,
11
},
{
0x02F8
,
13
},
{
0x0019
,
7
},
{
0x0006
,
11
},
{
0x063D
,
13
},
{
0x0057
,
7
},
{
0x0182
,
11
},
{
0x2AA2
,
14
},
{
0x0004
,
8
},
{
0x0180
,
11
},
{
0x059C
,
14
},
{
0x007D
,
8
},
{
0x0164
,
12
},
{
0x076D
,
15
},
{
0x0002
,
9
},
{
0x018D
,
11
},
{
0x1581
,
13
},
{
0x00AD
,
8
},
{
0x0060
,
12
},
{
0x0C67
,
14
},
{
0x001C
,
9
},
{
0x00EE
,
13
},
{
0x0003
,
9
},
{
0x02CF
,
13
},
{
0x00D9
,
9
},
{
0x1580
,
13
},
{
0x0002
,
11
},
{
0x0183
,
11
},
{
0x0057
,
12
},
{
0x0061
,
12
},
{
0x0031
,
11
},
{
0x0066
,
12
},
{
0x0631
,
13
},
{
0x0632
,
13
},
{
0x00AC
,
13
},
{
0x031D
,
12
},
{
0x0076
,
12
},
{
0x003A
,
11
},
{
0x0165
,
12
},
{
0x0C66
,
14
},
{
0x0003
,
2
},
{
0x0054
,
7
},
{
0x02AB
,
10
},
{
0x0016
,
13
},
{
0x05F7
,
14
},
{
0x0005
,
4
},
{
0x00F8
,
9
},
{
0x0AA9
,
12
},
{
0x005F
,
15
},
{
0x0004
,
4
},
{
0x001C
,
10
},
{
0x1550
,
13
},
{
0x0004
,
5
},
{
0x0077
,
11
},
{
0x076C
,
15
},
{
0x000E
,
5
},
{
0x000A
,
12
},
{
0x000C
,
5
},
{
0x0562
,
11
},
{
0x0004
,
6
},
{
0x031C
,
12
},
{
0x0006
,
6
},
{
0x00C8
,
13
},
{
0x000D
,
6
},
{
0x01DA
,
13
},
{
0x0007
,
6
},
{
0x00C9
,
13
},
{
0x0001
,
7
},
{
0x002E
,
14
},
{
0x0014
,
7
},
{
0x1596
,
13
},
{
0x000A
,
7
},
{
0x0AC2
,
12
},
{
0x0016
,
7
},
{
0x015B
,
14
},
{
0x0015
,
7
},
{
0x015A
,
14
},
{
0x000F
,
8
},
{
0x005E
,
15
},
{
0x007E
,
8
},
{
0x00AB
,
8
},
{
0x002D
,
9
},
{
0x00D8
,
9
},
{
0x000B
,
9
},
{
0x0014
,
10
},
{
0x02B3
,
10
},
{
0x01F3
,
10
},
{
0x003A
,
10
},
{
0x0000
,
10
},
{
0x0058
,
10
},
{
0x002E
,
9
},
{
0x005E
,
10
},
{
0x0563
,
11
},
{
0x00EC
,
12
},
{
0x0054
,
12
},
{
0x0AC1
,
12
},
{
0x1556
,
13
},
{
0x02FA
,
13
},
{
0x0181
,
11
},
{
0x1557
,
13
},
{
0x059D
,
14
},
{
0x2AA3
,
14
},
{
0x2B2A
,
14
},
{
0x01DE
,
14
},
{
0x063C
,
13
},
{
0x00CF
,
13
},
{
0x1594
,
13
},
{
0x000D
,
9
}
},
{
{
0x0002
,
2
},
{
0x0006
,
3
},
{
0x000F
,
4
},
{
0x000D
,
5
},
{
0x000C
,
5
},
{
0x0015
,
6
},
{
0x0013
,
6
},
{
0x0012
,
6
},
{
0x0017
,
7
},
{
0x001F
,
8
},
{
0x001E
,
8
},
{
0x001D
,
8
},
{
0x0025
,
9
},
{
0x0024
,
9
},
{
0x0023
,
9
},
{
0x0021
,
9
},
{
0x0021
,
10
},
{
0x0020
,
10
},
{
0x000F
,
10
},
{
0x000E
,
10
},
{
0x0007
,
11
},
{
0x0006
,
11
},
{
0x0020
,
11
},
{
0x0021
,
11
},
{
0x0050
,
12
},
{
0x0051
,
12
},
{
0x0052
,
12
},
{
0x000E
,
4
},
{
0x0014
,
6
},
{
0x0016
,
7
},
{
0x001C
,
8
},
{
0x0020
,
9
},
{
0x001F
,
9
},
{
0x000D
,
10
},
{
0x0022
,
11
},
{
0x0053
,
12
},
{
0x0055
,
12
},
{
0x000B
,
5
},
{
0x0015
,
7
},
{
0x001E
,
9
},
{
0x000C
,
10
},
{
0x0056
,
12
},
{
0x0011
,
6
},
{
0x001B
,
8
},
{
0x001D
,
9
},
{
0x000B
,
10
},
{
0x0010
,
6
},
{
0x0022
,
9
},
{
0x000A
,
10
},
{
0x000D
,
6
},
{
0x001C
,
9
},
{
0x0008
,
10
},
{
0x0012
,
7
},
{
0x001B
,
9
},
{
0x0054
,
12
},
{
0x0014
,
7
},
{
0x001A
,
9
},
{
0x0057
,
12
},
{
0x0019
,
8
},
{
0x0009
,
10
},
{
0x0018
,
8
},
{
0x0023
,
11
},
{
0x0017
,
8
},
{
0x0019
,
9
},
{
0x0018
,
9
},
{
0x0007
,
10
},
{
0x0058
,
12
},
{
0x0007
,
4
},
{
0x000C
,
6
},
{
0x0016
,
8
},
{
0x0017
,
9
},
{
0x0006
,
10
},
{
0x0005
,
11
},
{
0x0004
,
11
},
{
0x0059
,
12
},
{
0x000F
,
6
},
{
0x0016
,
9
},
{
0x0005
,
10
},
{
0x000E
,
6
},
{
0x0004
,
10
},
{
0x0011
,
7
},
{
0x0024
,
11
},
{
0x0010
,
7
},
{
0x0025
,
11
},
{
0x0013
,
7
},
{
0x005A
,
12
},
{
0x0015
,
8
},
{
0x005B
,
12
},
{
0x0014
,
8
},
{
0x0013
,
8
},
{
0x001A
,
8
},
{
0x0015
,
9
},
{
0x0014
,
9
},
{
0x0013
,
9
},
{
0x0012
,
9
},
{
0x0011
,
9
},
{
0x0026
,
11
},
{
0x0027
,
11
},
{
0x005C
,
12
},
{
0x005D
,
12
},
{
0x005E
,
12
},
{
0x005F
,
12
},
{
0x0003
,
7
}
},
{
{
0x0002
,
2
},
{
0x000F
,
4
},
{
0x0015
,
6
},
{
0x0017
,
7
},
{
0x001F
,
8
},
{
0x0025
,
9
},
{
0x0024
,
9
},
{
0x0021
,
10
},
{
0x0020
,
10
},
{
0x0007
,
11
},
{
0x0006
,
11
},
{
0x0020
,
11
},
{
0x0006
,
3
},
{
0x0014
,
6
},
{
0x001E
,
8
},
{
0x000F
,
10
},
{
0x0021
,
11
},
{
0x0050
,
12
},
{
0x000E
,
4
},
{
0x001D
,
8
},
{
0x000E
,
10
},
{
0x0051
,
12
},
{
0x000D
,
5
},
{
0x0023
,
9
},
{
0x000D
,
10
},
{
0x000C
,
5
},
{
0x0022
,
9
},
{
0x0052
,
12
},
{
0x000B
,
5
},
{
0x000C
,
10
},
{
0x0053
,
12
},
{
0x0013
,
6
},
{
0x000B
,
10
},
{
0x0054
,
12
},
{
0x0012
,
6
},
{
0x000A
,
10
},
{
0x0011
,
6
},
{
0x0009
,
10
},
{
0x0010
,
6
},
{
0x0008
,
10
},
{
0x0016
,
7
},
{
0x0055
,
12
},
{
0x0015
,
7
},
{
0x0014
,
7
},
{
0x001C
,
8
},
{
0x001B
,
8
},
{
0x0021
,
9
},
{
0x0020
,
9
},
{
0x001F
,
9
},
{
0x001E
,
9
},
{
0x001D
,
9
},
{
0x001C
,
9
},
{
0x001B
,
9
},
{
0x001A
,
9
},
{
0x0022
,
11
},
{
0x0023
,
11
},
{
0x0056
,
12
},
{
0x0057
,
12
},
{
0x0007
,
4
},
{
0x0019
,
9
},
{
0x0005
,
11
},
{
0x000F
,
6
},
{
0x0004
,
11
},
{
0x000E
,
6
},
{
0x000D
,
6
},
{
0x000C
,
6
},
{
0x0013
,
7
},
{
0x0012
,
7
},
{
0x0011
,
7
},
{
0x0010
,
7
},
{
0x001A
,
8
},
{
0x0019
,
8
},
{
0x0018
,
8
},
{
0x0017
,
8
},
{
0x0016
,
8
},
{
0x0015
,
8
},
{
0x0014
,
8
},
{
0x0013
,
8
},
{
0x0018
,
9
},
{
0x0017
,
9
},
{
0x0016
,
9
},
{
0x0015
,
9
},
{
0x0014
,
9
},
{
0x0013
,
9
},
{
0x0012
,
9
},
{
0x0011
,
9
},
{
0x0007
,
10
},
{
0x0006
,
10
},
{
0x0005
,
10
},
{
0x0004
,
10
},
{
0x0024
,
11
},
{
0x0025
,
11
},
{
0x0026
,
11
},
{
0x0027
,
11
},
{
0x0058
,
12
},
{
0x0059
,
12
},
{
0x005A
,
12
},
{
0x005B
,
12
},
{
0x005C
,
12
},
{
0x005D
,
12
},
{
0x005E
,
12
},
{
0x005F
,
12
},
{
0x0003
,
7
}
},
{
{
0x0000
,
2
},
{
0x0003
,
3
},
{
0x000D
,
4
},
{
0x0005
,
4
},
{
0x001C
,
5
},
{
0x0016
,
5
},
{
0x003F
,
6
},
{
0x003A
,
6
},
{
0x002E
,
6
},
{
0x0022
,
6
},
{
0x007B
,
7
},
{
0x0067
,
7
},
{
0x005F
,
7
},
{
0x0047
,
7
},
{
0x0026
,
7
},
{
0x00EF
,
8
},
{
0x00CD
,
8
},
{
0x00C1
,
8
},
{
0x00A9
,
8
},
{
0x004F
,
8
},
{
0x01F2
,
9
},
{
0x01DD
,
9
},
{
0x0199
,
9
},
{
0x0185
,
9
},
{
0x015D
,
9
},
{
0x011B
,
9
},
{
0x03EF
,
10
},
{
0x03E1
,
10
},
{
0x03C8
,
10
},
{
0x0331
,
10
},
{
0x0303
,
10
},
{
0x02F1
,
10
},
{
0x02A0
,
10
},
{
0x0233
,
10
},
{
0x0126
,
10
},
{
0x07C0
,
11
},
{
0x076F
,
11
},
{
0x076C
,
11
},
{
0x0661
,
11
},
{
0x0604
,
11
},
{
0x0572
,
11
},
{
0x0551
,
11
},
{
0x046A
,
11
},
{
0x0274
,
11
},
{
0x0F27
,
12
},
{
0x0F24
,
12
},
{
0x0EDB
,
12
},
{
0x0C8E
,
12
},
{
0x0C0B
,
12
},
{
0x0C0A
,
12
},
{
0x0AE3
,
12
},
{
0x08D6
,
12
},
{
0x0490
,
12
},
{
0x0495
,
12
},
{
0x1F19
,
13
},
{
0x1DB5
,
13
},
{
0x0009
,
4
},
{
0x0010
,
5
},
{
0x0029
,
6
},
{
0x0062
,
7
},
{
0x00F3
,
8
},
{
0x00AD
,
8
},
{
0x01E5
,
9
},
{
0x0179
,
9
},
{
0x009C
,
9
},
{
0x03B1
,
10
},
{
0x02AE
,
10
},
{
0x0127
,
10
},
{
0x076E
,
11
},
{
0x0570
,
11
},
{
0x0275
,
11
},
{
0x0F25
,
12
},
{
0x0EC0
,
12
},
{
0x0AA0
,
12
},
{
0x08D7
,
12
},
{
0x1E4C
,
13
},
{
0x0008
,
5
},
{
0x0063
,
7
},
{
0x00AF
,
8
},
{
0x017B
,
9
},
{
0x03B3
,
10
},
{
0x07DD
,
11
},
{
0x0640
,
11
},
{
0x0F8D
,
12
},
{
0x0BC1
,
12
},
{
0x0491
,
12
},
{
0x0028
,
6
},
{
0x00C3
,
8
},
{
0x0151
,
9
},
{
0x02A1
,
10
},
{
0x0573
,
11
},
{
0x0EC3
,
12
},
{
0x1F35
,
13
},
{
0x0065
,
7
},
{
0x01DA
,
9
},
{
0x02AF
,
10
},
{
0x0277
,
11
},
{
0x08C9
,
12
},
{
0x1781
,
13
},
{
0x0025
,
7
},
{
0x0118
,
9
},
{
0x0646
,
11
},
{
0x0AA6
,
12
},
{
0x1780
,
13
},
{
0x00C9
,
8
},
{
0x0321
,
10
},
{
0x0F9B
,
12
},
{
0x191E
,
13
},
{
0x0048
,
8
},
{
0x07CC
,
11
},
{
0x0AA1
,
12
},
{
0x0180
,
9
},
{
0x0465
,
11
},
{
0x1905
,
13
},
{
0x03E2
,
10
},
{
0x0EC1
,
12
},
{
0x3C9B
,
14
},
{
0x02F4
,
10
},
{
0x08C8
,
12
},
{
0x07C1
,
11
},
{
0x0928
,
13
},
{
0x05E1
,
11
},
{
0x320D
,
14
},
{
0x0EC2
,
12
},
{
0x6418
,
15
},
{
0x1F34
,
13
},
{
0x0078
,
7
},
{
0x0155
,
9
},
{
0x0552
,
11
},
{
0x191F
,
13
},
{
0x00FA
,
8
},
{
0x07DC
,
11
},
{
0x1907
,
13
},
{
0x00AC
,
8
},
{
0x0249
,
11
},
{
0x13B1
,
14
},
{
0x01F6
,
9
},
{
0x0AE2
,
12
},
{
0x01DC
,
9
},
{
0x04ED
,
12
},
{
0x0184
,
9
},
{
0x1904
,
13
},
{
0x0156
,
9
},
{
0x09D9
,
13
},
{
0x03E7
,
10
},
{
0x0929
,
13
},
{
0x03B2
,
10
},
{
0x3B68
,
14
},
{
0x02F5
,
10
},
{
0x13B0
,
14
},
{
0x0322
,
10
},
{
0x3B69
,
14
},
{
0x0234
,
10
},
{
0x7935
,
15
},
{
0x07C7
,
11
},
{
0xC833
,
16
},
{
0x0660
,
11
},
{
0x7934
,
15
},
{
0x024B
,
11
},
{
0xC832
,
16
},
{
0x0AA7
,
12
},
{
0x1F18
,
13
},
{
0x007A
,
7
}
},
{
{
0x0002
,
2
},
{
0x0000
,
3
},
{
0x001E
,
5
},
{
0x0004
,
5
},
{
0x0012
,
6
},
{
0x0070
,
7
},
{
0x001A
,
7
},
{
0x005F
,
8
},
{
0x0047
,
8
},
{
0x01D3
,
9
},
{
0x00B5
,
9
},
{
0x0057
,
9
},
{
0x03B5
,
10
},
{
0x016D
,
10
},
{
0x0162
,
10
},
{
0x07CE
,
11
},
{
0x0719
,
11
},
{
0x0691
,
11
},
{
0x02C6
,
11
},
{
0x0156
,
11
},
{
0x0F92
,
12
},
{
0x0D2E
,
12
},
{
0x0D20
,
12
},
{
0x059E
,
12
},
{
0x0468
,
12
},
{
0x02A6
,
12
},
{
0x1DA2
,
13
},
{
0x1C60
,
13
},
{
0x1A43
,
13
},
{
0x0B1D
,
13
},
{
0x08C0
,
13
},
{
0x055D
,
13
},
{
0x0003
,
3
},
{
0x000A
,
5
},
{
0x0077
,
7
},
{
0x00E5
,
8
},
{
0x01D9
,
9
},
{
0x03E5
,
10
},
{
0x0166
,
10
},
{
0x0694
,
11
},
{
0x0152
,
11
},
{
0x059F
,
12
},
{
0x1F3C
,
13
},
{
0x1A4B
,
13
},
{
0x055E
,
13
},
{
0x000C
,
4
},
{
0x007D
,
7
},
{
0x0044
,
8
},
{
0x03E0
,
10
},
{
0x0769
,
11
},
{
0x0E31
,
12
},
{
0x1F26
,
13
},
{
0x055C
,
13
},
{
0x001B
,
5
},
{
0x00E2
,
8
},
{
0x03A5
,
10
},
{
0x02C9
,
11
},
{
0x1F23
,
13
},
{
0x3B47
,
14
},
{
0x0007
,
5
},
{
0x01D8
,
9
},
{
0x02D8
,
11
},
{
0x1F27
,
13
},
{
0x3494
,
14
},
{
0x0035
,
6
},
{
0x03E1
,
10
},
{
0x059C
,
12
},
{
0x38C3
,
14
},
{
0x000C
,
6
},
{
0x0165
,
10
},
{
0x1D23
,
13
},
{
0x1638
,
14
},
{
0x0068
,
7
},
{
0x0693
,
11
},
{
0x3A45
,
14
},
{
0x0020
,
7
},
{
0x0F90
,
12
},
{
0x7CF6
,
15
},
{
0x00E8
,
8
},
{
0x058F
,
12
},
{
0x2CEF
,
15
},
{
0x0045
,
8
},
{
0x0B3A
,
13
},
{
0x01F1
,
9
},
{
0x3B46
,
14
},
{
0x01A7
,
9
},
{
0x1676
,
14
},
{
0x0056
,
9
},
{
0x692A
,
15
},
{
0x038D
,
10
},
{
0xE309
,
16
},
{
0x00AA
,
10
},
{
0x1C611
,
17
},
{
0x02DF
,
11
},
{
0xB3B9
,
17
},
{
0x02C8
,
11
},
{
0x38C20
,
18
},
{
0x01B0
,
11
},
{
0x16390
,
18
},
{
0x0F9F
,
12
},
{
0x16771
,
18
},
{
0x0ED0
,
12
},
{
0x71843
,
19
},
{
0x0D2A
,
12
},
{
0xF9E8C
,
20
},
{
0x0461
,
12
},
{
0xF9E8E
,
20
},
{
0x0B67
,
13
},
{
0x055F
,
13
},
{
0x003F
,
6
},
{
0x006D
,
9
},
{
0x0E90
,
12
},
{
0x054E
,
13
},
{
0x0013
,
6
},
{
0x0119
,
10
},
{
0x0B66
,
13
},
{
0x000B
,
6
},
{
0x0235
,
11
},
{
0x7CF5
,
15
},
{
0x0075
,
7
},
{
0x0D24
,
12
},
{
0xF9E9
,
16
},
{
0x002E
,
7
},
{
0x1F22
,
13
},
{
0x0021
,
7
},
{
0x054F
,
13
},
{
0x0014
,
7
},
{
0x3A44
,
14
},
{
0x00E4
,
8
},
{
0x7CF7
,
15
},
{
0x005E
,
8
},
{
0x7185
,
15
},
{
0x0037
,
8
},
{
0x2C73
,
15
},
{
0x01DB
,
9
},
{
0x59DD
,
16
},
{
0x01C7
,
9
},
{
0x692B
,
15
},
{
0x01A6
,
9
},
{
0x58E5
,
16
},
{
0x00B4
,
9
},
{
0x1F3D0
,
17
},
{
0x00B0
,
9
},
{
0xB1C9
,
17
},
{
0x03E6
,
10
},
{
0x16770
,
18
},
{
0x016E
,
10
},
{
0x3E7A2
,
18
},
{
0x011B
,
10
},
{
0xF9E8D
,
20
},
{
0x00D9
,
10
},
{
0xF9E8F
,
20
},
{
0x00A8
,
10
},
{
0x2C723
,
19
},
{
0x0749
,
11
},
{
0xE3084
,
20
},
{
0x0696
,
11
},
{
0x58E45
,
20
},
{
0x02DE
,
11
},
{
0xB1C88
,
21
},
{
0x0231
,
11
},
{
0x1C610A
,
21
},
{
0x01B1
,
11
},
{
0x71842D
,
23
},
{
0x0D2B
,
12
},
{
0x38C217
,
22
},
{
0x0D2F
,
12
},
{
0x163913
,
22
},
{
0x05B2
,
12
},
{
0x163912
,
22
},
{
0x0469
,
12
},
{
0x71842C
,
23
},
{
0x1A42
,
13
},
{
0x08C1
,
13
},
{
0x0073
,
7
}
}
};
#include "vc1data.h"
/* which indexes point to last=1 entries in tables */
static
const
int
vc1_last_decode_table
[
AC_MODES
]
=
{
...
...
libavcodec/vc1data.c
View file @
3c715383
...
...
@@ -1129,3 +1129,7 @@ const uint16_t ff_vc1_b_field_mvpred_scales[7][4] = {
{
26
,
17
,
12
,
10
},
// ZONE1OFFSET_X
{
7
,
4
,
3
,
3
}
// ZONE1OFFSET_Y
};
const
int
ff_vc1_ac_sizes
[
AC_MODES
]
=
{
186
,
169
,
133
,
149
,
103
,
103
,
163
,
175
};
libavcodec/vc1data.h
View file @
3c715383
...
...
@@ -200,4 +200,9 @@ extern const int32_t ff_vc1_dqscale[63];
extern
const
uint16_t
ff_vc1_field_mvpred_scales
[
2
][
7
][
4
];
/* B Interlaced field picture backward MV predictor scaling values for first field (Table 115) */
extern
const
uint16_t
ff_vc1_b_field_mvpred_scales
[
7
][
4
];
#define AC_MODES 8
extern
const
int
ff_vc1_ac_sizes
[
AC_MODES
];
#endif
/* AVCODEC_VC1DATA_H */
libavcodec/vc1dec.c
View file @
3c715383
...
...
@@ -45,154 +45,12 @@
#define MB_INTRA_VLC_BITS 9
#define DC_VLC_BITS 9
#define AC_VLC_BITS 9
static
const
uint16_t
vlc_offs
[]
=
{
0
,
520
,
552
,
616
,
1128
,
1160
,
1224
,
1740
,
1772
,
1836
,
1900
,
2436
,
2986
,
3050
,
3610
,
4154
,
4218
,
4746
,
5326
,
5390
,
5902
,
6554
,
7658
,
8342
,
9304
,
9988
,
10630
,
11234
,
12174
,
13006
,
13560
,
14232
,
14786
,
15432
,
16350
,
17522
,
20372
,
21818
,
22330
,
22394
,
23166
,
23678
,
23742
,
24820
,
25332
,
25396
,
26460
,
26980
,
27048
,
27592
,
27600
,
27608
,
27616
,
27624
,
28224
,
28258
,
28290
,
28802
,
28834
,
28866
,
29378
,
29412
,
29444
,
29960
,
29994
,
30026
,
30538
,
30572
,
30604
,
31120
,
31154
,
31186
,
31714
,
31746
,
31778
,
32306
,
32340
,
32372
};
// offset tables for interlaced picture MVDATA decoding
static
const
int
offset_table1
[
9
]
=
{
0
,
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
};
static
const
int
offset_table2
[
9
]
=
{
0
,
1
,
3
,
7
,
15
,
31
,
63
,
127
,
255
};
/**
* Init VC-1 specific tables and VC1Context members
* @param v The VC1Context to initialize
* @return Status
*/
int
ff_vc1_init_common
(
VC1Context
*
v
)
{
static
int
done
=
0
;
int
i
=
0
;
static
VLC_TYPE
vlc_table
[
32372
][
2
];
v
->
hrd_rate
=
v
->
hrd_buffer
=
NULL
;
/* VLC tables */
if
(
!
done
)
{
INIT_VLC_STATIC
(
&
ff_vc1_bfraction_vlc
,
VC1_BFRACTION_VLC_BITS
,
23
,
ff_vc1_bfraction_bits
,
1
,
1
,
ff_vc1_bfraction_codes
,
1
,
1
,
1
<<
VC1_BFRACTION_VLC_BITS
);
INIT_VLC_STATIC
(
&
ff_vc1_norm2_vlc
,
VC1_NORM2_VLC_BITS
,
4
,
ff_vc1_norm2_bits
,
1
,
1
,
ff_vc1_norm2_codes
,
1
,
1
,
1
<<
VC1_NORM2_VLC_BITS
);
INIT_VLC_STATIC
(
&
ff_vc1_norm6_vlc
,
VC1_NORM6_VLC_BITS
,
64
,
ff_vc1_norm6_bits
,
1
,
1
,
ff_vc1_norm6_codes
,
2
,
2
,
556
);
INIT_VLC_STATIC
(
&
ff_vc1_imode_vlc
,
VC1_IMODE_VLC_BITS
,
7
,
ff_vc1_imode_bits
,
1
,
1
,
ff_vc1_imode_codes
,
1
,
1
,
1
<<
VC1_IMODE_VLC_BITS
);
for
(
i
=
0
;
i
<
3
;
i
++
)
{
ff_vc1_ttmb_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
0
]];
ff_vc1_ttmb_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
1
]
-
vlc_offs
[
i
*
3
+
0
];
init_vlc
(
&
ff_vc1_ttmb_vlc
[
i
],
VC1_TTMB_VLC_BITS
,
16
,
ff_vc1_ttmb_bits
[
i
],
1
,
1
,
ff_vc1_ttmb_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_ttblk_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
1
]];
ff_vc1_ttblk_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
2
]
-
vlc_offs
[
i
*
3
+
1
];
init_vlc
(
&
ff_vc1_ttblk_vlc
[
i
],
VC1_TTBLK_VLC_BITS
,
8
,
ff_vc1_ttblk_bits
[
i
],
1
,
1
,
ff_vc1_ttblk_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_subblkpat_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
2
]];
ff_vc1_subblkpat_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
3
]
-
vlc_offs
[
i
*
3
+
2
];
init_vlc
(
&
ff_vc1_subblkpat_vlc
[
i
],
VC1_SUBBLKPAT_VLC_BITS
,
15
,
ff_vc1_subblkpat_bits
[
i
],
1
,
1
,
ff_vc1_subblkpat_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
4
;
i
++
)
{
ff_vc1_4mv_block_pattern_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
9
]];
ff_vc1_4mv_block_pattern_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
10
]
-
vlc_offs
[
i
*
3
+
9
];
init_vlc
(
&
ff_vc1_4mv_block_pattern_vlc
[
i
],
VC1_4MV_BLOCK_PATTERN_VLC_BITS
,
16
,
ff_vc1_4mv_block_pattern_bits
[
i
],
1
,
1
,
ff_vc1_4mv_block_pattern_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_cbpcy_p_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
10
]];
ff_vc1_cbpcy_p_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
11
]
-
vlc_offs
[
i
*
3
+
10
];
init_vlc
(
&
ff_vc1_cbpcy_p_vlc
[
i
],
VC1_CBPCY_P_VLC_BITS
,
64
,
ff_vc1_cbpcy_p_bits
[
i
],
1
,
1
,
ff_vc1_cbpcy_p_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_mv_diff_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
11
]];
ff_vc1_mv_diff_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
12
]
-
vlc_offs
[
i
*
3
+
11
];
init_vlc
(
&
ff_vc1_mv_diff_vlc
[
i
],
VC1_MV_DIFF_VLC_BITS
,
73
,
ff_vc1_mv_diff_bits
[
i
],
1
,
1
,
ff_vc1_mv_diff_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
8
;
i
++
)
{
ff_vc1_ac_coeff_table
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
2
+
21
]];
ff_vc1_ac_coeff_table
[
i
].
table_allocated
=
vlc_offs
[
i
*
2
+
22
]
-
vlc_offs
[
i
*
2
+
21
];
init_vlc
(
&
ff_vc1_ac_coeff_table
[
i
],
AC_VLC_BITS
,
vc1_ac_sizes
[
i
],
&
vc1_ac_tables
[
i
][
0
][
1
],
8
,
4
,
&
vc1_ac_tables
[
i
][
0
][
0
],
8
,
4
,
INIT_VLC_USE_NEW_STATIC
);
/* initialize interlaced MVDATA tables (2-Ref) */
ff_vc1_2ref_mvdata_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
2
+
22
]];
ff_vc1_2ref_mvdata_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
2
+
23
]
-
vlc_offs
[
i
*
2
+
22
];
init_vlc
(
&
ff_vc1_2ref_mvdata_vlc
[
i
],
VC1_2REF_MVDATA_VLC_BITS
,
126
,
ff_vc1_2ref_mvdata_bits
[
i
],
1
,
1
,
ff_vc1_2ref_mvdata_codes
[
i
],
4
,
4
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
4
;
i
++
)
{
/* initialize 4MV MBMODE VLC tables for interlaced frame P picture */
ff_vc1_intfr_4mv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
37
]];
ff_vc1_intfr_4mv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
38
]
-
vlc_offs
[
i
*
3
+
37
];
init_vlc
(
&
ff_vc1_intfr_4mv_mbmode_vlc
[
i
],
VC1_INTFR_4MV_MBMODE_VLC_BITS
,
15
,
ff_vc1_intfr_4mv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_intfr_4mv_mbmode_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
/* initialize NON-4MV MBMODE VLC tables for the same */
ff_vc1_intfr_non4mv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
38
]];
ff_vc1_intfr_non4mv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
39
]
-
vlc_offs
[
i
*
3
+
38
];
init_vlc
(
&
ff_vc1_intfr_non4mv_mbmode_vlc
[
i
],
VC1_INTFR_NON4MV_MBMODE_VLC_BITS
,
9
,
ff_vc1_intfr_non4mv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_intfr_non4mv_mbmode_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
/* initialize interlaced MVDATA tables (1-Ref) */
ff_vc1_1ref_mvdata_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
39
]];
ff_vc1_1ref_mvdata_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
40
]
-
vlc_offs
[
i
*
3
+
39
];
init_vlc
(
&
ff_vc1_1ref_mvdata_vlc
[
i
],
VC1_1REF_MVDATA_VLC_BITS
,
72
,
ff_vc1_1ref_mvdata_bits
[
i
],
1
,
1
,
ff_vc1_1ref_mvdata_codes
[
i
],
4
,
4
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
4
;
i
++
)
{
/* Initialize 2MV Block pattern VLC tables */
ff_vc1_2mv_block_pattern_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
+
49
]];
ff_vc1_2mv_block_pattern_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
+
50
]
-
vlc_offs
[
i
+
49
];
init_vlc
(
&
ff_vc1_2mv_block_pattern_vlc
[
i
],
VC1_2MV_BLOCK_PATTERN_VLC_BITS
,
4
,
ff_vc1_2mv_block_pattern_bits
[
i
],
1
,
1
,
ff_vc1_2mv_block_pattern_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
}
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* Initialize interlaced CBPCY VLC tables (Table 124 - Table 131) */
ff_vc1_icbpcy_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
53
]];
ff_vc1_icbpcy_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
54
]
-
vlc_offs
[
i
*
3
+
53
];
init_vlc
(
&
ff_vc1_icbpcy_vlc
[
i
],
VC1_ICBPCY_VLC_BITS
,
63
,
ff_vc1_icbpcy_p_bits
[
i
],
1
,
1
,
ff_vc1_icbpcy_p_codes
[
i
],
2
,
2
,
INIT_VLC_USE_NEW_STATIC
);
/* Initialize interlaced field picture MBMODE VLC tables */
ff_vc1_if_mmv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
54
]];
ff_vc1_if_mmv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
55
]
-
vlc_offs
[
i
*
3
+
54
];
init_vlc
(
&
ff_vc1_if_mmv_mbmode_vlc
[
i
],
VC1_IF_MMV_MBMODE_VLC_BITS
,
8
,
ff_vc1_if_mmv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_if_mmv_mbmode_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
ff_vc1_if_1mv_mbmode_vlc
[
i
].
table
=
&
vlc_table
[
vlc_offs
[
i
*
3
+
55
]];
ff_vc1_if_1mv_mbmode_vlc
[
i
].
table_allocated
=
vlc_offs
[
i
*
3
+
56
]
-
vlc_offs
[
i
*
3
+
55
];
init_vlc
(
&
ff_vc1_if_1mv_mbmode_vlc
[
i
],
VC1_IF_1MV_MBMODE_VLC_BITS
,
6
,
ff_vc1_if_1mv_mbmode_bits
[
i
],
1
,
1
,
ff_vc1_if_1mv_mbmode_codes
[
i
],
1
,
1
,
INIT_VLC_USE_NEW_STATIC
);
}
done
=
1
;
}
/* Other defaults */
v
->
pq
=
-
1
;
v
->
mvrange
=
0
;
/* 7.1.1.18, p80 */
return
0
;
}
/***********************************************************************/
/**
* @name VC-1 Bitplane decoding
...
...
@@ -2620,7 +2478,7 @@ static void vc1_decode_ac_coeff(VC1Context *v, int *last, int *skip,
int
index
,
escape
,
run
=
0
,
level
=
0
,
lst
=
0
;
index
=
get_vlc2
(
gb
,
ff_vc1_ac_coeff_table
[
codingset
].
table
,
AC_VLC_BITS
,
3
);
if
(
index
!=
vc1_ac_sizes
[
codingset
]
-
1
)
{
if
(
index
!=
ff_
vc1_ac_sizes
[
codingset
]
-
1
)
{
run
=
vc1_index_decode_table
[
codingset
][
index
][
0
];
level
=
vc1_index_decode_table
[
codingset
][
index
][
1
];
lst
=
index
>=
vc1_last_decode_table
[
codingset
]
||
get_bits_left
(
gb
)
<
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment