annotate h263data.h @ 3733:d1b5acd0b680 libavcodec

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