annotate h263data.h @ 4964:9fb6d2125500 libavcodec

split msmpeg4 data to easily share some of it with vc1.c
author aurel
date Thu, 10 May 2007 10:03:16 +0000
parents 85e1f5ceb97e
children 4394344397d8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
1 /*
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
2 * copyright (c) 2000,2001 Fabrice Bellard
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
3 * H263+ support
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
4 * copyright (c) 2001 Juan J. Sierralta P.
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
5 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
6 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
7 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
8 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
9 * FFmpeg is free software; you can redistribute it and/or
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
10 * modify it under the terms of the GNU Lesser General Public
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
11 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
12 * version 2.1 of the License, or (at your option) any later version.
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
13 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
14 * FFmpeg is distributed in the hope that it will be useful,
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
17 * Lesser General Public License for more details.
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
18 *
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
19 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
20 * License along with FFmpeg; if not, write to the Free Software
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
22 */
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3187
diff changeset
23
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
24 /**
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
25 * @file h263data.h
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
26 * H.263 tables.
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
27 */
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
28
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
29
986e461dc072 Initial revision
glantau
parents:
diff changeset
30 /* intra MCBPC, mb_type = (intra), then (intraq) */
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
31 const uint8_t intra_MCBPC_code[9] = { 1, 1, 2, 3, 1, 1, 2, 3, 1 };
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
32 const uint8_t intra_MCBPC_bits[9] = { 1, 3, 3, 3, 4, 6, 6, 6, 9 };
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
33
986e461dc072 Initial revision
glantau
parents:
diff changeset
34 /* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
161
7ce36cf13055 - Added support to Inter4V+Q MBs to H.263 decoder.
pulento
parents: 144
diff changeset
35 /* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
36 const uint8_t inter_MCBPC_code[28] = {
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
37 1, 3, 2, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
38 3, 4, 3, 3,
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
39 3, 7, 6, 5,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
40 4, 4, 3, 2,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
41 2, 5, 4, 5,
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
42 1, 0, 0, 0, /* Stuffing */
161
7ce36cf13055 - Added support to Inter4V+Q MBs to H.263 decoder.
pulento
parents: 144
diff changeset
43 2, 12, 14, 15,
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
44 };
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
45 const uint8_t inter_MCBPC_bits[28] = {
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
46 1, 4, 4, 6, /* inter */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
47 5, 8, 8, 7, /* intra */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
48 3, 7, 7, 9, /* interQ */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
49 6, 9, 9, 9, /* intraQ */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
50 3, 7, 7, 8, /* inter4 */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
51 9, 0, 0, 0, /* Stuffing */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
52 11, 13, 13, 13,/* inter4Q*/
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
53 };
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
54
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
55 static const uint8_t h263_mbtype_b_tab[15][2] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
56 {1, 1},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
57 {3, 3},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
58 {1, 5},
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
59 {4, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
60 {5, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
61 {6, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
62 {2, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
63 {3, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
64 {7, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
65 {4, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
66 {5, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
67 {1, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
68 {1,10},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
69 {1, 7},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
70 {1, 8},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
71 };
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
72
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
73 static const int h263_mb_type_b_map[15]= {
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
74 MB_TYPE_DIRECT2 | MB_TYPE_L0L1,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
75 MB_TYPE_DIRECT2 | MB_TYPE_L0L1 | MB_TYPE_CBP,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
76 MB_TYPE_DIRECT2 | MB_TYPE_L0L1 | MB_TYPE_CBP | MB_TYPE_QUANT,
1701
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
77 MB_TYPE_L0 | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
78 MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
79 MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_QUANT | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
80 MB_TYPE_L1 | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
81 MB_TYPE_L1 | MB_TYPE_CBP | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
82 MB_TYPE_L1 | MB_TYPE_CBP | MB_TYPE_QUANT | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
83 MB_TYPE_L0L1 | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
84 MB_TYPE_L0L1 | MB_TYPE_CBP | MB_TYPE_16x16,
95b7ac3344df rv20 / h263 b frame fix
michael
parents: 1655
diff changeset
85 MB_TYPE_L0L1 | MB_TYPE_CBP | MB_TYPE_QUANT | MB_TYPE_16x16,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
86 0, //stuffing
1708
dea5b2946999 interlaced motion estimation
michael
parents: 1701
diff changeset
87 MB_TYPE_INTRA4x4 | MB_TYPE_CBP,
dea5b2946999 interlaced motion estimation
michael
parents: 1701
diff changeset
88 MB_TYPE_INTRA4x4 | MB_TYPE_CBP | MB_TYPE_QUANT,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
89 };
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
90
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
91 static const uint8_t cbpc_b_tab[4][2] = {
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
92 {0, 1},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
93 {2, 2},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
94 {7, 3},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
95 {6, 3},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
96 };
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
97
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
98 const uint8_t cbpy_tab[16][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 {3,4}, {5,5}, {4,5}, {9,4}, {3,5}, {7,4}, {2,6}, {11,4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 {2,5}, {3,6}, {5,4}, {10,4}, {4,4}, {8,4}, {6,4}, {3,2}
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
103
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
104 const uint8_t mvtab[33][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 {1,1}, {1,2}, {1,3}, {1,4}, {3,6}, {5,7}, {4,7}, {3,7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
107 {11,9}, {10,9}, {9,9}, {17,10}, {16,10}, {15,10}, {14,10}, {13,10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
108 {12,10}, {11,10}, {10,10}, {9,10}, {8,10}, {7,10}, {6,10}, {5,10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 {4,10}, {7,11}, {6,11}, {5,11}, {4,11}, {3,11}, {2,11}, {3,12},
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 {2,12}
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
112
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 /* third non intra table */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
114 const uint16_t inter_vlc[103][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 { 0x2, 2 },{ 0xf, 4 },{ 0x15, 6 },{ 0x17, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 { 0x1f, 8 },{ 0x25, 9 },{ 0x24, 9 },{ 0x21, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 { 0x20, 10 },{ 0x7, 11 },{ 0x6, 11 },{ 0x20, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 { 0x6, 3 },{ 0x14, 6 },{ 0x1e, 8 },{ 0xf, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
119 { 0x21, 11 },{ 0x50, 12 },{ 0xe, 4 },{ 0x1d, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 { 0xe, 10 },{ 0x51, 12 },{ 0xd, 5 },{ 0x23, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 { 0xd, 10 },{ 0xc, 5 },{ 0x22, 9 },{ 0x52, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 { 0xb, 5 },{ 0xc, 10 },{ 0x53, 12 },{ 0x13, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
123 { 0xb, 10 },{ 0x54, 12 },{ 0x12, 6 },{ 0xa, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
124 { 0x11, 6 },{ 0x9, 10 },{ 0x10, 6 },{ 0x8, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
125 { 0x16, 7 },{ 0x55, 12 },{ 0x15, 7 },{ 0x14, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
126 { 0x1c, 8 },{ 0x1b, 8 },{ 0x21, 9 },{ 0x20, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 { 0x1f, 9 },{ 0x1e, 9 },{ 0x1d, 9 },{ 0x1c, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 { 0x1b, 9 },{ 0x1a, 9 },{ 0x22, 11 },{ 0x23, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
129 { 0x56, 12 },{ 0x57, 12 },{ 0x7, 4 },{ 0x19, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
130 { 0x5, 11 },{ 0xf, 6 },{ 0x4, 11 },{ 0xe, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 { 0xd, 6 },{ 0xc, 6 },{ 0x13, 7 },{ 0x12, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 { 0x11, 7 },{ 0x10, 7 },{ 0x1a, 8 },{ 0x19, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 { 0x18, 8 },{ 0x17, 8 },{ 0x16, 8 },{ 0x15, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 { 0x14, 8 },{ 0x13, 8 },{ 0x18, 9 },{ 0x17, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
135 { 0x16, 9 },{ 0x15, 9 },{ 0x14, 9 },{ 0x13, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 { 0x12, 9 },{ 0x11, 9 },{ 0x7, 10 },{ 0x6, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 { 0x5, 10 },{ 0x4, 10 },{ 0x24, 11 },{ 0x25, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 { 0x26, 11 },{ 0x27, 11 },{ 0x58, 12 },{ 0x59, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
139 { 0x5a, 12 },{ 0x5b, 12 },{ 0x5c, 12 },{ 0x5d, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 { 0x5e, 12 },{ 0x5f, 12 },{ 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
142
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
143 const int8_t inter_level[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
145 9, 10, 11, 12, 1, 2, 3, 4,
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 5, 6, 1, 2, 3, 4, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
147 3, 1, 2, 3, 1, 2, 3, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 2, 3, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
149 1, 2, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
151 1, 1, 1, 2, 3, 1, 2, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
152 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
153 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
154 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
155 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
156 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
157 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
158
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
159 const int8_t inter_run[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
160 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
161 0, 0, 0, 0, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
162 1, 1, 2, 2, 2, 2, 3, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
163 3, 4, 4, 4, 5, 5, 5, 6,
986e461dc072 Initial revision
glantau
parents:
diff changeset
164 6, 6, 7, 7, 8, 8, 9, 9,
986e461dc072 Initial revision
glantau
parents:
diff changeset
165 10, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
166 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
167 25, 26, 0, 0, 0, 1, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
168 3, 4, 5, 6, 7, 8, 9, 10,
986e461dc072 Initial revision
glantau
parents:
diff changeset
169 11, 12, 13, 14, 15, 16, 17, 18,
986e461dc072 Initial revision
glantau
parents:
diff changeset
170 19, 20, 21, 22, 23, 24, 25, 26,
986e461dc072 Initial revision
glantau
parents:
diff changeset
171 27, 28, 29, 30, 31, 32, 33, 34,
986e461dc072 Initial revision
glantau
parents:
diff changeset
172 35, 36, 37, 38, 39, 40,
986e461dc072 Initial revision
glantau
parents:
diff changeset
173 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
174
986e461dc072 Initial revision
glantau
parents:
diff changeset
175 static RLTable rl_inter = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
176 102,
986e461dc072 Initial revision
glantau
parents:
diff changeset
177 58,
986e461dc072 Initial revision
glantau
parents:
diff changeset
178 inter_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
179 inter_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
180 inter_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
181 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
182
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
183 static const uint16_t intra_vlc_aic[103][2] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
184 { 0x2, 2 }, { 0x6, 3 }, { 0xe, 4 }, { 0xc, 5 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
185 { 0xd, 5 }, { 0x10, 6 }, { 0x11, 6 }, { 0x12, 6 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
186 { 0x16, 7 }, { 0x1b, 8 }, { 0x20, 9 }, { 0x21, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
187 { 0x1a, 9 }, { 0x1b, 9 }, { 0x1c, 9 }, { 0x1d, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
188 { 0x1e, 9 }, { 0x1f, 9 }, { 0x23, 11 }, { 0x22, 11 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
189 { 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
190 { 0x53, 12 }, { 0xf, 4 }, { 0x14, 6 }, { 0x14, 7 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
191 { 0x1e, 8 }, { 0xf, 10 }, { 0x21, 11 }, { 0x50, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
192 { 0xb, 5 }, { 0x15, 7 }, { 0xe, 10 }, { 0x9, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
193 { 0x15, 6 }, { 0x1d, 8 }, { 0xd, 10 }, { 0x51, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
194 { 0x13, 6 }, { 0x23, 9 }, { 0x7, 11 }, { 0x17, 7 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
195 { 0x22, 9 }, { 0x52, 12 }, { 0x1c, 8 }, { 0xc, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
196 { 0x1f, 8 }, { 0xb, 10 }, { 0x25, 9 }, { 0xa, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
197 { 0x24, 9 }, { 0x6, 11 }, { 0x21, 10 }, { 0x20, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
198 { 0x8, 10 }, { 0x20, 11 }, { 0x7, 4 }, { 0xc, 6 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
199 { 0x10, 7 }, { 0x13, 8 }, { 0x11, 9 }, { 0x12, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
200 { 0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
201 { 0xf, 6 }, { 0x13, 9 }, { 0x5, 10 }, { 0x25, 11 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
202 { 0xe, 6 }, { 0x14, 9 }, { 0x24, 11 }, { 0xd, 6 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
203 { 0x6, 10 }, { 0x5e, 12 }, { 0x11, 7 }, { 0x7, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
204 { 0x13, 7 }, { 0x5d, 12 }, { 0x12, 7 }, { 0x5c, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
205 { 0x14, 8 }, { 0x5b, 12 }, { 0x15, 8 }, { 0x1a, 8 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
206 { 0x19, 8 }, { 0x18, 8 }, { 0x17, 8 }, { 0x16, 8 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
207 { 0x19, 9 }, { 0x15, 9 }, { 0x16, 9 }, { 0x18, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
208 { 0x17, 9 }, { 0x4, 11 }, { 0x5, 11 }, { 0x58, 12 },
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
209 { 0x59, 12 }, { 0x5a, 12 }, { 0x3, 7 },
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
210 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
211
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
212 static const int8_t intra_run_aic[102] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
213 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
214 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
215 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
216 0, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
217 2, 2, 2, 2, 3, 3, 3, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
218 4, 4, 4, 5, 5, 5, 6, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
219 7, 7, 8, 8, 9, 9, 10, 11,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
220 12, 13, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
221 0, 0, 0, 0, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
222 2, 2, 2, 3, 3, 3, 4, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
223 5, 5, 6, 6, 7, 7, 8, 9,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
224 10, 11, 12, 13, 14, 15, 16, 17,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
225 18, 19, 20, 21, 22, 23,
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
226 };
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
227
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
228 static const int8_t intra_level_aic[102] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
229 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
230 9, 10, 11, 12, 13, 14, 15, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
231 17, 18, 19, 20, 21, 22, 23, 24,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
232 25, 1, 2, 3, 4, 5, 6, 7,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
233 1, 2, 3, 4, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
234 1, 2, 3, 1, 2, 3, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
235 1, 2, 1, 2, 1, 2, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
236 1, 1, 1, 2, 3, 4, 5, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
237 7, 8, 9, 10, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
238 1, 2, 3, 1, 2, 3, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
239 1, 2, 1, 2, 1, 2, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
240 1, 1, 1, 1, 1, 1, 1, 1,
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
241 1, 1, 1, 1, 1, 1,
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
242 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
243
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
244 static RLTable rl_intra_aic = {
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
245 102,
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
246 58,
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
247 intra_vlc_aic,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
248 intra_run_aic,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
249 intra_level_aic,
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
250 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
251
1638
michael
parents: 1482
diff changeset
252 static const uint8_t wrong_run[102] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
253 1, 2, 3, 5, 4, 10, 9, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
254 11, 15, 17, 16, 23, 22, 21, 20,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
255 19, 18, 25, 24, 27, 26, 11, 7,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
256 6, 1, 2, 13, 2, 2, 2, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
257 6, 12, 3, 9, 1, 3, 4, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
258 7, 4, 1, 1, 5, 5, 14, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
259 1, 7, 1, 8, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
260 10, 1, 1, 5, 9, 17, 25, 24,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
261 29, 33, 32, 41, 2, 23, 28, 31,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
262 3, 22, 30, 4, 27, 40, 8, 26,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
263 6, 39, 7, 38, 16, 37, 15, 10,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
264 11, 12, 13, 14, 1, 21, 20, 18,
1638
michael
parents: 1482
diff changeset
265 19, 2, 1, 34, 35, 36
michael
parents: 1482
diff changeset
266 };
michael
parents: 1482
diff changeset
267
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
268 static const uint16_t h263_format[8][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
269 { 0, 0 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
270 { 128, 96 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
271 { 176, 144 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
272 { 352, 288 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
273 { 704, 576 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
274 { 1408, 1152 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
275 };
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
276
2753
ba8ecddf5598 adding a few const
michael
parents: 1708
diff changeset
277 const uint8_t ff_aic_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
278 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
279 0, 2, 4, 6, 8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
280 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
281
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
282 static const uint8_t modified_quant_tab[2][32]={
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
283 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
284 {
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
285 0, 3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9,10,11,12,13,14,15,16,17,18,18,19,20,21,22,23,24,25,26,27,28
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
286 },{
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
287 0, 2, 3, 4, 5, 6, 7, 8, 9,10,11,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,31,31,26
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
288 }
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
289 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
290
1644
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
291 const uint8_t ff_h263_chroma_qscale_table[32]={
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
292 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
293 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9,10,10,11,11,12,12,12,13,13,13,14,14,14,14,14,15,15,15,15,15
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
294 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
295
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
296 const uint16_t ff_mba_max[6]={
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
297 47, 98, 395,1583,6335,9215
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
298 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
299
3187
204080942ce2 out of array read fix
michael
parents: 2967
diff changeset
300 const uint8_t ff_mba_length[7]={
204080942ce2 out of array read fix
michael
parents: 2967
diff changeset
301 6, 7, 9, 11, 13, 14, 14
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
302 };
1644
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
303
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
304 const uint8_t ff_h263_loop_filter_strength[32]={
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
305 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
306 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9,10,10,10,11,11,11,12,12,12
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
307 };
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
308