annotate h263data.h @ 11300:1f512abdf680 libavcodec

Simplify code to set cbp_* this seems 1 cpu cycle slower even though we practically just remove code. Speed loss seems caused by the merge of if(left_type), iam commiting this anyway as i cant imagine this to be anything but compiler messup.
author michael
date Fri, 26 Feb 2010 09:13:40 +0000
parents 94982978af3b
children 7dd2a45249a9
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
8629
04423b2f6e0b cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 7760
diff changeset
4 * copyright (c) 2001 Juan J. Sierralta P
3699
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 /**
8718
e9d9d946f213 Use full internal pathname in doxygen @file directives.
diego
parents: 8629
diff changeset
25 * @file libavcodec/h263data.h
1106
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
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
29 #ifndef AVCODEC_H263DATA_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
30 #define AVCODEC_H263DATA_H
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
31
5162
4394344397d8 include all prerequisites in header files
mru
parents: 4180
diff changeset
32 #include <stdint.h>
4394344397d8 include all prerequisites in header files
mru
parents: 4180
diff changeset
33 #include "mpegvideo.h"
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
34
986e461dc072 Initial revision
glantau
parents:
diff changeset
35 /* intra MCBPC, mb_type = (intra), then (intraq) */
10818
514dc1c87b2e Rename most non static h263 tables so their name contains h263.
michael
parents: 10803
diff changeset
36 const uint8_t ff_h263_intra_MCBPC_code[9] = { 1, 1, 2, 3, 1, 1, 2, 3, 1 };
514dc1c87b2e Rename most non static h263 tables so their name contains h263.
michael
parents: 10803
diff changeset
37 const uint8_t ff_h263_intra_MCBPC_bits[9] = { 1, 3, 3, 3, 4, 6, 6, 6, 9 };
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
38
986e461dc072 Initial revision
glantau
parents:
diff changeset
39 /* 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
40 /* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
10818
514dc1c87b2e Rename most non static h263 tables so their name contains h263.
michael
parents: 10803
diff changeset
41 const uint8_t ff_h263_inter_MCBPC_code[28] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
42 1, 3, 2, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
43 3, 4, 3, 3,
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
44 3, 7, 6, 5,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
45 4, 4, 3, 2,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
46 2, 5, 4, 5,
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
47 1, 0, 0, 0, /* Stuffing */
161
7ce36cf13055 - Added support to Inter4V+Q MBs to H.263 decoder.
pulento
parents: 144
diff changeset
48 2, 12, 14, 15,
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
49 };
10818
514dc1c87b2e Rename most non static h263 tables so their name contains h263.
michael
parents: 10803
diff changeset
50 const uint8_t ff_h263_inter_MCBPC_bits[28] = {
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
51 1, 4, 4, 6, /* inter */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
52 5, 8, 8, 7, /* intra */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
53 3, 7, 7, 9, /* interQ */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
54 6, 9, 9, 9, /* intraQ */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
55 3, 7, 7, 8, /* inter4 */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
56 9, 0, 0, 0, /* Stuffing */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
57 11, 13, 13, 13,/* inter4Q*/
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
58 };
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
59
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
60 const uint8_t h263_mbtype_b_tab[15][2] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
61 {1, 1},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
62 {3, 3},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
63 {1, 5},
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
64 {4, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
65 {5, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
66 {6, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
67 {2, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
68 {3, 4},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
69 {7, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
70 {4, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
71 {5, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
72 {1, 6},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
73 {1,10},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
74 {1, 7},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
75 {1, 8},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
76 };
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
77
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
78 const uint8_t cbpc_b_tab[4][2] = {
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
79 {0, 1},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
80 {2, 2},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
81 {7, 3},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
82 {6, 3},
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
83 };
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1644
diff changeset
84
10818
514dc1c87b2e Rename most non static h263 tables so their name contains h263.
michael
parents: 10803
diff changeset
85 const uint8_t ff_h263_cbpy_tab[16][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 {3,4}, {5,5}, {4,5}, {9,4}, {3,5}, {7,4}, {2,6}, {11,4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 {2,5}, {3,6}, {5,4}, {10,4}, {4,4}, {8,4}, {6,4}, {3,2}
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
90
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
91 const uint8_t mvtab[33][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
92 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 {1,1}, {1,2}, {1,3}, {1,4}, {3,6}, {5,7}, {4,7}, {3,7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 {11,9}, {10,9}, {9,9}, {17,10}, {16,10}, {15,10}, {14,10}, {13,10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 {12,10}, {11,10}, {10,10}, {9,10}, {8,10}, {7,10}, {6,10}, {5,10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 {4,10}, {7,11}, {6,11}, {5,11}, {4,11}, {3,11}, {2,11}, {3,12},
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 {2,12}
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
99
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 /* third non intra table */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
101 const uint16_t inter_vlc[103][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 { 0x2, 2 },{ 0xf, 4 },{ 0x15, 6 },{ 0x17, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
103 { 0x1f, 8 },{ 0x25, 9 },{ 0x24, 9 },{ 0x21, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 { 0x20, 10 },{ 0x7, 11 },{ 0x6, 11 },{ 0x20, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 { 0x6, 3 },{ 0x14, 6 },{ 0x1e, 8 },{ 0xf, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 { 0x21, 11 },{ 0x50, 12 },{ 0xe, 4 },{ 0x1d, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
107 { 0xe, 10 },{ 0x51, 12 },{ 0xd, 5 },{ 0x23, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
108 { 0xd, 10 },{ 0xc, 5 },{ 0x22, 9 },{ 0x52, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 { 0xb, 5 },{ 0xc, 10 },{ 0x53, 12 },{ 0x13, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 { 0xb, 10 },{ 0x54, 12 },{ 0x12, 6 },{ 0xa, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 { 0x11, 6 },{ 0x9, 10 },{ 0x10, 6 },{ 0x8, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 { 0x16, 7 },{ 0x55, 12 },{ 0x15, 7 },{ 0x14, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 { 0x1c, 8 },{ 0x1b, 8 },{ 0x21, 9 },{ 0x20, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
114 { 0x1f, 9 },{ 0x1e, 9 },{ 0x1d, 9 },{ 0x1c, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 { 0x1b, 9 },{ 0x1a, 9 },{ 0x22, 11 },{ 0x23, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 { 0x56, 12 },{ 0x57, 12 },{ 0x7, 4 },{ 0x19, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 { 0x5, 11 },{ 0xf, 6 },{ 0x4, 11 },{ 0xe, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 { 0xd, 6 },{ 0xc, 6 },{ 0x13, 7 },{ 0x12, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
119 { 0x11, 7 },{ 0x10, 7 },{ 0x1a, 8 },{ 0x19, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 { 0x18, 8 },{ 0x17, 8 },{ 0x16, 8 },{ 0x15, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 { 0x14, 8 },{ 0x13, 8 },{ 0x18, 9 },{ 0x17, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 { 0x16, 9 },{ 0x15, 9 },{ 0x14, 9 },{ 0x13, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
123 { 0x12, 9 },{ 0x11, 9 },{ 0x7, 10 },{ 0x6, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
124 { 0x5, 10 },{ 0x4, 10 },{ 0x24, 11 },{ 0x25, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
125 { 0x26, 11 },{ 0x27, 11 },{ 0x58, 12 },{ 0x59, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
126 { 0x5a, 12 },{ 0x5b, 12 },{ 0x5c, 12 },{ 0x5d, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 { 0x5e, 12 },{ 0x5f, 12 },{ 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
129
10831
94982978af3b Make inter_level/run global again, msmpeg4 uses them.
michael
parents: 10830
diff changeset
130 const int8_t inter_level[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 9, 10, 11, 12, 1, 2, 3, 4,
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 5, 6, 1, 2, 3, 4, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 3, 1, 2, 3, 1, 2, 3, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
135 2, 3, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 1, 2, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 1, 1, 1, 2, 3, 1, 2, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
139 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
145
10831
94982978af3b Make inter_level/run global again, msmpeg4 uses them.
michael
parents: 10830
diff changeset
146 const int8_t inter_run[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
147 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 0, 0, 0, 0, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
149 1, 1, 2, 2, 2, 2, 3, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 3, 4, 4, 4, 5, 5, 5, 6,
986e461dc072 Initial revision
glantau
parents:
diff changeset
151 6, 6, 7, 7, 8, 8, 9, 9,
986e461dc072 Initial revision
glantau
parents:
diff changeset
152 10, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
153 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
154 25, 26, 0, 0, 0, 1, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
155 3, 4, 5, 6, 7, 8, 9, 10,
986e461dc072 Initial revision
glantau
parents:
diff changeset
156 11, 12, 13, 14, 15, 16, 17, 18,
986e461dc072 Initial revision
glantau
parents:
diff changeset
157 19, 20, 21, 22, 23, 24, 25, 26,
986e461dc072 Initial revision
glantau
parents:
diff changeset
158 27, 28, 29, 30, 31, 32, 33, 34,
986e461dc072 Initial revision
glantau
parents:
diff changeset
159 35, 36, 37, 38, 39, 40,
986e461dc072 Initial revision
glantau
parents:
diff changeset
160 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
161
10818
514dc1c87b2e Rename most non static h263 tables so their name contains h263.
michael
parents: 10803
diff changeset
162 RLTable ff_h263_rl_inter = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
163 102,
986e461dc072 Initial revision
glantau
parents:
diff changeset
164 58,
986e461dc072 Initial revision
glantau
parents:
diff changeset
165 inter_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
166 inter_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
167 inter_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
168 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
169
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
170 static const uint16_t intra_vlc_aic[103][2] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
171 { 0x2, 2 }, { 0x6, 3 }, { 0xe, 4 }, { 0xc, 5 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
172 { 0xd, 5 }, { 0x10, 6 }, { 0x11, 6 }, { 0x12, 6 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
173 { 0x16, 7 }, { 0x1b, 8 }, { 0x20, 9 }, { 0x21, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
174 { 0x1a, 9 }, { 0x1b, 9 }, { 0x1c, 9 }, { 0x1d, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
175 { 0x1e, 9 }, { 0x1f, 9 }, { 0x23, 11 }, { 0x22, 11 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
176 { 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
177 { 0x53, 12 }, { 0xf, 4 }, { 0x14, 6 }, { 0x14, 7 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
178 { 0x1e, 8 }, { 0xf, 10 }, { 0x21, 11 }, { 0x50, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
179 { 0xb, 5 }, { 0x15, 7 }, { 0xe, 10 }, { 0x9, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
180 { 0x15, 6 }, { 0x1d, 8 }, { 0xd, 10 }, { 0x51, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
181 { 0x13, 6 }, { 0x23, 9 }, { 0x7, 11 }, { 0x17, 7 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
182 { 0x22, 9 }, { 0x52, 12 }, { 0x1c, 8 }, { 0xc, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
183 { 0x1f, 8 }, { 0xb, 10 }, { 0x25, 9 }, { 0xa, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
184 { 0x24, 9 }, { 0x6, 11 }, { 0x21, 10 }, { 0x20, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
185 { 0x8, 10 }, { 0x20, 11 }, { 0x7, 4 }, { 0xc, 6 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
186 { 0x10, 7 }, { 0x13, 8 }, { 0x11, 9 }, { 0x12, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
187 { 0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
188 { 0xf, 6 }, { 0x13, 9 }, { 0x5, 10 }, { 0x25, 11 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
189 { 0xe, 6 }, { 0x14, 9 }, { 0x24, 11 }, { 0xd, 6 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
190 { 0x6, 10 }, { 0x5e, 12 }, { 0x11, 7 }, { 0x7, 10 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
191 { 0x13, 7 }, { 0x5d, 12 }, { 0x12, 7 }, { 0x5c, 12 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
192 { 0x14, 8 }, { 0x5b, 12 }, { 0x15, 8 }, { 0x1a, 8 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
193 { 0x19, 8 }, { 0x18, 8 }, { 0x17, 8 }, { 0x16, 8 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
194 { 0x19, 9 }, { 0x15, 9 }, { 0x16, 9 }, { 0x18, 9 },
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
195 { 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
196 { 0x59, 12 }, { 0x5a, 12 }, { 0x3, 7 },
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
197 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
198
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
199 static const int8_t intra_run_aic[102] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
200 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
201 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
202 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
203 0, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
204 2, 2, 2, 2, 3, 3, 3, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
205 4, 4, 4, 5, 5, 5, 6, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
206 7, 7, 8, 8, 9, 9, 10, 11,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
207 12, 13, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
208 0, 0, 0, 0, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
209 2, 2, 2, 3, 3, 3, 4, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
210 5, 5, 6, 6, 7, 7, 8, 9,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
211 10, 11, 12, 13, 14, 15, 16, 17,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
212 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
213 };
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
214
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
215 static const int8_t intra_level_aic[102] = {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
216 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
217 9, 10, 11, 12, 13, 14, 15, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
218 17, 18, 19, 20, 21, 22, 23, 24,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
219 25, 1, 2, 3, 4, 5, 6, 7,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
220 1, 2, 3, 4, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
221 1, 2, 3, 1, 2, 3, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
222 1, 2, 1, 2, 1, 2, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
223 1, 1, 1, 2, 3, 4, 5, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
224 7, 8, 9, 10, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
225 1, 2, 3, 1, 2, 3, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
226 1, 2, 1, 2, 1, 2, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
227 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
228 1, 1, 1, 1, 1, 1,
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
229 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
230
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
231 RLTable rl_intra_aic = {
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
232 102,
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
233 58,
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
234 intra_vlc_aic,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
235 intra_run_aic,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
236 intra_level_aic,
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
237 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
238
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
239 const uint16_t h263_format[8][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
240 { 0, 0 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
241 { 128, 96 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
242 { 176, 144 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
243 { 352, 288 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
244 { 704, 576 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
245 { 1408, 1152 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
246 };
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
247
2753
ba8ecddf5598 adding a few const
michael
parents: 1708
diff changeset
248 const uint8_t ff_aic_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
249 // 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
250 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
251 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
252
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
253 const uint8_t modified_quant_tab[2][32]={
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
254 // 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
255 {
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
256 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
257 },{
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
258 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
259 }
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
260 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
261
1644
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
262 const uint8_t ff_h263_chroma_qscale_table[32]={
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
263 // 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
264 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
265 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
266
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
267 uint16_t ff_mba_max[6]={
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
268 47, 98, 395,1583,6335,9215
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
269 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
270
10828
d0657e337f91 Split H263 encoder and decoder from common code.
michael
parents: 10818
diff changeset
271 uint8_t ff_mba_length[7]={
3187
204080942ce2 out of array read fix
michael
parents: 2967
diff changeset
272 6, 7, 9, 11, 13, 14, 14
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
273 };
1644
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
274
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
275 const uint8_t ff_h263_loop_filter_strength[32]={
835cf346975e h263 loop filter
michael
parents: 1639
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
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
277 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
278 };
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
279
10803
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
280 const AVRational ff_h263_pixel_aspect[16]={
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
281 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
282 {1, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
283 {12, 11},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
284 {10, 11},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
285 {16, 11},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
286 {40, 33},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
287 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
288 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
289 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
290 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
291 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
292 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
293 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
294 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
295 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
296 {0, 1},
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
297 };
4605bd2fdb7f Split the mpeg4 encoder and decoder off h263.c
michael
parents: 10768
diff changeset
298
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
299 #endif /* AVCODEC_H263DATA_H */