comparison h263data.h @ 10828:d0657e337f91 libavcodec

Split H263 encoder and decoder from common code.
author michael
date Sat, 09 Jan 2010 14:59:06 +0000
parents 514dc1c87b2e
children 34739b965809
comparison
equal deleted inserted replaced
10827:3d011a01a6a0 10828:d0657e337f91
55 3, 7, 7, 8, /* inter4 */ 55 3, 7, 7, 8, /* inter4 */
56 9, 0, 0, 0, /* Stuffing */ 56 9, 0, 0, 0, /* Stuffing */
57 11, 13, 13, 13,/* inter4Q*/ 57 11, 13, 13, 13,/* inter4Q*/
58 }; 58 };
59 59
60 static const uint8_t h263_mbtype_b_tab[15][2] = { 60 const uint8_t h263_mbtype_b_tab[15][2] = {
61 {1, 1}, 61 {1, 1},
62 {3, 3}, 62 {3, 3},
63 {1, 5}, 63 {1, 5},
64 {4, 4}, 64 {4, 4},
65 {5, 4}, 65 {5, 4},
73 {1,10}, 73 {1,10},
74 {1, 7}, 74 {1, 7},
75 {1, 8}, 75 {1, 8},
76 }; 76 };
77 77
78 static const int h263_mb_type_b_map[15]= { 78 const uint8_t cbpc_b_tab[4][2] = {
79 MB_TYPE_DIRECT2 | MB_TYPE_L0L1,
80 MB_TYPE_DIRECT2 | MB_TYPE_L0L1 | MB_TYPE_CBP,
81 MB_TYPE_DIRECT2 | MB_TYPE_L0L1 | MB_TYPE_CBP | MB_TYPE_QUANT,
82 MB_TYPE_L0 | MB_TYPE_16x16,
83 MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_16x16,
84 MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_QUANT | MB_TYPE_16x16,
85 MB_TYPE_L1 | MB_TYPE_16x16,
86 MB_TYPE_L1 | MB_TYPE_CBP | MB_TYPE_16x16,
87 MB_TYPE_L1 | MB_TYPE_CBP | MB_TYPE_QUANT | MB_TYPE_16x16,
88 MB_TYPE_L0L1 | MB_TYPE_16x16,
89 MB_TYPE_L0L1 | MB_TYPE_CBP | MB_TYPE_16x16,
90 MB_TYPE_L0L1 | MB_TYPE_CBP | MB_TYPE_QUANT | MB_TYPE_16x16,
91 0, //stuffing
92 MB_TYPE_INTRA4x4 | MB_TYPE_CBP,
93 MB_TYPE_INTRA4x4 | MB_TYPE_CBP | MB_TYPE_QUANT,
94 };
95
96 static const uint8_t cbpc_b_tab[4][2] = {
97 {0, 1}, 79 {0, 1},
98 {2, 2}, 80 {2, 2},
99 {7, 3}, 81 {7, 3},
100 {6, 3}, 82 {6, 3},
101 }; 83 };
244 1, 2, 1, 2, 1, 2, 1, 1, 226 1, 2, 1, 2, 1, 2, 1, 1,
245 1, 1, 1, 1, 1, 1, 1, 1, 227 1, 1, 1, 1, 1, 1, 1, 1,
246 1, 1, 1, 1, 1, 1, 228 1, 1, 1, 1, 1, 1,
247 }; 229 };
248 230
249 static RLTable rl_intra_aic = { 231 RLTable rl_intra_aic = {
250 102, 232 102,
251 58, 233 58,
252 intra_vlc_aic, 234 intra_vlc_aic,
253 intra_run_aic, 235 intra_run_aic,
254 intra_level_aic, 236 intra_level_aic,
255 }; 237 };
256 238
257 #if CONFIG_ENCODERS 239 const uint16_t h263_format[8][2] = {
258 static const uint8_t wrong_run[102] = {
259 1, 2, 3, 5, 4, 10, 9, 8,
260 11, 15, 17, 16, 23, 22, 21, 20,
261 19, 18, 25, 24, 27, 26, 11, 7,
262 6, 1, 2, 13, 2, 2, 2, 2,
263 6, 12, 3, 9, 1, 3, 4, 3,
264 7, 4, 1, 1, 5, 5, 14, 6,
265 1, 7, 1, 8, 1, 1, 1, 1,
266 10, 1, 1, 5, 9, 17, 25, 24,
267 29, 33, 32, 41, 2, 23, 28, 31,
268 3, 22, 30, 4, 27, 40, 8, 26,
269 6, 39, 7, 38, 16, 37, 15, 10,
270 11, 12, 13, 14, 1, 21, 20, 18,
271 19, 2, 1, 34, 35, 36
272 };
273 #endif
274
275 static const uint16_t h263_format[8][2] = {
276 { 0, 0 }, 240 { 0, 0 },
277 { 128, 96 }, 241 { 128, 96 },
278 { 176, 144 }, 242 { 176, 144 },
279 { 352, 288 }, 243 { 352, 288 },
280 { 704, 576 }, 244 { 704, 576 },
284 const uint8_t ff_aic_dc_scale_table[32]={ 248 const uint8_t ff_aic_dc_scale_table[32]={
285 // 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 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
286 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 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
287 }; 251 };
288 252
289 static const uint8_t modified_quant_tab[2][32]={ 253 const uint8_t modified_quant_tab[2][32]={
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 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
291 { 255 {
292 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 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
293 },{ 257 },{
294 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 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
298 const uint8_t ff_h263_chroma_qscale_table[32]={ 262 const uint8_t ff_h263_chroma_qscale_table[32]={
299 // 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 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
300 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 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
301 }; 265 };
302 266
303 const uint16_t ff_mba_max[6]={ 267 uint16_t ff_mba_max[6]={
304 47, 98, 395,1583,6335,9215 268 47, 98, 395,1583,6335,9215
305 }; 269 };
306 270
307 const uint8_t ff_mba_length[7]={ 271 uint8_t ff_mba_length[7]={
308 6, 7, 9, 11, 13, 14, 14 272 6, 7, 9, 11, 13, 14, 14
309 }; 273 };
310 274
311 const uint8_t ff_h263_loop_filter_strength[32]={ 275 const uint8_t ff_h263_loop_filter_strength[32]={
312 // 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 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