annotate h263data.h @ 1644:835cf346975e libavcodec

h263 loop filter fixed h263 modified quantization CODEC_FLAG_OBMC
author michael
date Mon, 01 Dec 2003 15:23:14 +0000
parents 3e2b774edce4
children c92147a61d97
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
1 /**
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
2 * @file h263data.h
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
3 * H.263 tables.
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
4 */
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
5
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
6
986e461dc072 Initial revision
glantau
parents:
diff changeset
7 /* intra MCBPC, mb_type = (intra), then (intraq) */
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
8 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
9 const uint8_t intra_MCBPC_bits[9] = { 1, 3, 3, 3, 4, 6, 6, 6, 9 };
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
10
986e461dc072 Initial revision
glantau
parents:
diff changeset
11 /* 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
12 /* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
13 const uint8_t inter_MCBPC_code[28] = {
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
14 1, 3, 2, 5,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
15 3, 4, 3, 3,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
16 3, 7, 6, 5,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
17 4, 4, 3, 2,
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
18 2, 5, 4, 5,
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
19 1, 0, 0, 0, /* Stuffing */
161
7ce36cf13055 - Added support to Inter4V+Q MBs to H.263 decoder.
pulento
parents: 144
diff changeset
20 2, 12, 14, 15,
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
21 };
1482
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
22 const uint8_t inter_MCBPC_bits[28] = {
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
23 1, 4, 4, 6, /* inter */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
24 5, 8, 8, 7, /* intra */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
25 3, 7, 7, 9, /* interQ */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
26 6, 9, 9, 9, /* intraQ */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
27 3, 7, 7, 8, /* inter4 */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
28 9, 0, 0, 0, /* Stuffing */
b372ecde32a8 h263 stuffing decode fix
michaelni
parents: 1106
diff changeset
29 11, 13, 13, 13,/* inter4Q*/
144
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
30 };
cb5dabd00ba2 - Bug fix on inter MCBPC table for inter+q.
pulento
parents: 0
diff changeset
31
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
32 const uint8_t cbpy_tab[16][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
33 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
34 {3,4}, {5,5}, {4,5}, {9,4}, {3,5}, {7,4}, {2,6}, {11,4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
35 {2,5}, {3,6}, {5,4}, {10,4}, {4,4}, {8,4}, {6,4}, {3,2}
986e461dc072 Initial revision
glantau
parents:
diff changeset
36 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
37
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
38 const uint8_t mvtab[33][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
39 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
40 {1,1}, {1,2}, {1,3}, {1,4}, {3,6}, {5,7}, {4,7}, {3,7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
41 {11,9}, {10,9}, {9,9}, {17,10}, {16,10}, {15,10}, {14,10}, {13,10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
42 {12,10}, {11,10}, {10,10}, {9,10}, {8,10}, {7,10}, {6,10}, {5,10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
43 {4,10}, {7,11}, {6,11}, {5,11}, {4,11}, {3,11}, {2,11}, {3,12},
986e461dc072 Initial revision
glantau
parents:
diff changeset
44 {2,12}
986e461dc072 Initial revision
glantau
parents:
diff changeset
45 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
46
986e461dc072 Initial revision
glantau
parents:
diff changeset
47 /* third non intra table */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
48 const uint16_t inter_vlc[103][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
49 { 0x2, 2 },{ 0xf, 4 },{ 0x15, 6 },{ 0x17, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
50 { 0x1f, 8 },{ 0x25, 9 },{ 0x24, 9 },{ 0x21, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
51 { 0x20, 10 },{ 0x7, 11 },{ 0x6, 11 },{ 0x20, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
52 { 0x6, 3 },{ 0x14, 6 },{ 0x1e, 8 },{ 0xf, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
53 { 0x21, 11 },{ 0x50, 12 },{ 0xe, 4 },{ 0x1d, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
54 { 0xe, 10 },{ 0x51, 12 },{ 0xd, 5 },{ 0x23, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
55 { 0xd, 10 },{ 0xc, 5 },{ 0x22, 9 },{ 0x52, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
56 { 0xb, 5 },{ 0xc, 10 },{ 0x53, 12 },{ 0x13, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
57 { 0xb, 10 },{ 0x54, 12 },{ 0x12, 6 },{ 0xa, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
58 { 0x11, 6 },{ 0x9, 10 },{ 0x10, 6 },{ 0x8, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
59 { 0x16, 7 },{ 0x55, 12 },{ 0x15, 7 },{ 0x14, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
60 { 0x1c, 8 },{ 0x1b, 8 },{ 0x21, 9 },{ 0x20, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
61 { 0x1f, 9 },{ 0x1e, 9 },{ 0x1d, 9 },{ 0x1c, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
62 { 0x1b, 9 },{ 0x1a, 9 },{ 0x22, 11 },{ 0x23, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
63 { 0x56, 12 },{ 0x57, 12 },{ 0x7, 4 },{ 0x19, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
64 { 0x5, 11 },{ 0xf, 6 },{ 0x4, 11 },{ 0xe, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 { 0xd, 6 },{ 0xc, 6 },{ 0x13, 7 },{ 0x12, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
66 { 0x11, 7 },{ 0x10, 7 },{ 0x1a, 8 },{ 0x19, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
67 { 0x18, 8 },{ 0x17, 8 },{ 0x16, 8 },{ 0x15, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
68 { 0x14, 8 },{ 0x13, 8 },{ 0x18, 9 },{ 0x17, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
69 { 0x16, 9 },{ 0x15, 9 },{ 0x14, 9 },{ 0x13, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
70 { 0x12, 9 },{ 0x11, 9 },{ 0x7, 10 },{ 0x6, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
71 { 0x5, 10 },{ 0x4, 10 },{ 0x24, 11 },{ 0x25, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
72 { 0x26, 11 },{ 0x27, 11 },{ 0x58, 12 },{ 0x59, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 { 0x5a, 12 },{ 0x5b, 12 },{ 0x5c, 12 },{ 0x5d, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
74 { 0x5e, 12 },{ 0x5f, 12 },{ 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
75 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
76
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
77 const int8_t inter_level[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
78 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
79 9, 10, 11, 12, 1, 2, 3, 4,
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 5, 6, 1, 2, 3, 4, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
81 3, 1, 2, 3, 1, 2, 3, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
82 2, 3, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
83 1, 2, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
84 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 1, 1, 1, 2, 3, 1, 2, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
91 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
92
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
93 const int8_t inter_run[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 0, 0, 0, 0, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 1, 1, 2, 2, 2, 2, 3, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 3, 4, 4, 4, 5, 5, 5, 6,
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 6, 6, 7, 7, 8, 8, 9, 9,
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 10, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 25, 26, 0, 0, 0, 1, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 3, 4, 5, 6, 7, 8, 9, 10,
986e461dc072 Initial revision
glantau
parents:
diff changeset
103 11, 12, 13, 14, 15, 16, 17, 18,
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 19, 20, 21, 22, 23, 24, 25, 26,
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 27, 28, 29, 30, 31, 32, 33, 34,
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 35, 36, 37, 38, 39, 40,
986e461dc072 Initial revision
glantau
parents:
diff changeset
107 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
108
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 static RLTable rl_inter = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 102,
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 58,
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 inter_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 inter_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
114 inter_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
116
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
117 const uint16_t intra_vlc_aic[103][2] = {
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
118 { 0x2, 2 }, { 0x6, 3 }, { 0xe, 4 }, { 0xc, 5 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
119 { 0xd, 5 }, { 0x10, 6 }, { 0x11, 6 }, { 0x12, 6 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
120 { 0x16, 7 }, { 0x1b, 8 }, { 0x20, 9 }, { 0x21, 9 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
121 { 0x1a, 9 }, { 0x1b, 9 }, { 0x1c, 9 }, { 0x1d, 9 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
122 { 0x1e, 9 }, { 0x1f, 9 }, { 0x23, 11 }, { 0x22, 11 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
123 { 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
124 { 0x53, 12 }, { 0xf, 4 }, { 0x14, 6 }, { 0x14, 7 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
125 { 0x1e, 8 }, { 0xf, 10 }, { 0x21, 11 }, { 0x50, 12 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
126 { 0xb, 5 }, { 0x15, 7 }, { 0xe, 10 }, { 0x9, 10 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
127 { 0x15, 6 }, { 0x1d, 8 }, { 0xd, 10 }, { 0x51, 12 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
128 { 0x13, 6 }, { 0x23, 9 }, { 0x7, 11 }, { 0x17, 7 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
129 { 0x22, 9 }, { 0x52, 12 }, { 0x1c, 8 }, { 0xc, 10 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
130 { 0x1f, 8 }, { 0xb, 10 }, { 0x25, 9 }, { 0xa, 10 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
131 { 0x24, 9 }, { 0x6, 11 }, { 0x21, 10 }, { 0x20, 10 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
132 { 0x8, 10 }, { 0x20, 11 }, { 0x7, 4 }, { 0xc, 6 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
133 { 0x10, 7 }, { 0x13, 8 }, { 0x11, 9 }, { 0x12, 9 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
134 { 0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
135 { 0xf, 6 }, { 0x13, 9 }, { 0x5, 10 }, { 0x25, 11 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
136 { 0xe, 6 }, { 0x14, 9 }, { 0x24, 11 }, { 0xd, 6 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
137 { 0x6, 10 }, { 0x5e, 12 }, { 0x11, 7 }, { 0x7, 10 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
138 { 0x13, 7 }, { 0x5d, 12 }, { 0x12, 7 }, { 0x5c, 12 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
139 { 0x14, 8 }, { 0x5b, 12 }, { 0x15, 8 }, { 0x1a, 8 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
140 { 0x19, 8 }, { 0x18, 8 }, { 0x17, 8 }, { 0x16, 8 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
141 { 0x19, 9 }, { 0x15, 9 }, { 0x16, 9 }, { 0x18, 9 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
142 { 0x17, 9 }, { 0x4, 11 }, { 0x5, 11 }, { 0x58, 12 },
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
143 { 0x59, 12 }, { 0x5a, 12 }, { 0x3, 7 },
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
144 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
145
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
146 const int8_t intra_run_aic[102] = {
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
147 0, 0, 0, 0, 0, 0, 0, 0,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
148 0, 0, 0, 0, 0, 0, 0, 0,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
149 0, 0, 0, 0, 0, 0, 0, 0,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
150 0, 1, 1, 1, 1, 1, 1, 1,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
151 2, 2, 2, 2, 3, 3, 3, 3,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
152 4, 4, 4, 5, 5, 5, 6, 6,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
153 7, 7, 8, 8, 9, 9, 10, 11,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
154 12, 13, 0, 0, 0, 0, 0, 0,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
155 0, 0, 0, 0, 1, 1, 1, 1,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
156 2, 2, 2, 3, 3, 3, 4, 4,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
157 5, 5, 6, 6, 7, 7, 8, 9,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
158 10, 11, 12, 13, 14, 15, 16, 17,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
159 18, 19, 20, 21, 22, 23,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
160 };
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
161
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
162 const int8_t intra_level_aic[102] = {
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
163 1, 2, 3, 4, 5, 6, 7, 8,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
164 9, 10, 11, 12, 13, 14, 15, 16,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
165 17, 18, 19, 20, 21, 22, 23, 24,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
166 25, 1, 2, 3, 4, 5, 6, 7,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
167 1, 2, 3, 4, 1, 2, 3, 4,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
168 1, 2, 3, 1, 2, 3, 1, 2,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
169 1, 2, 1, 2, 1, 2, 1, 1,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
170 1, 1, 1, 2, 3, 4, 5, 6,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
171 7, 8, 9, 10, 1, 2, 3, 4,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
172 1, 2, 3, 1, 2, 3, 1, 2,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
173 1, 2, 1, 2, 1, 2, 1, 1,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
174 1, 1, 1, 1, 1, 1, 1, 1,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
175 1, 1, 1, 1, 1, 1,
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
176 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
177
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
178 static RLTable rl_intra_aic = {
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
179 102,
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
180 58,
350
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
181 intra_vlc_aic,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
182 intra_run_aic,
6ebbecc10063 - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now.
pulento
parents: 307
diff changeset
183 intra_level_aic,
248
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
184 };
56ee684c48bb - H.263+ decoder support for Advanded INTRA Coding (buggy)
pulento
parents: 161
diff changeset
185
1638
michael
parents: 1482
diff changeset
186 static const uint8_t wrong_run[102] = {
michael
parents: 1482
diff changeset
187 1, 2, 3, 5, 4, 10, 9, 8,
michael
parents: 1482
diff changeset
188 11, 15, 17, 16, 23, 22, 21, 20,
michael
parents: 1482
diff changeset
189 19, 18, 25, 24, 27, 26, 11, 7,
michael
parents: 1482
diff changeset
190 6, 1, 2, 13, 2, 2, 2, 2,
michael
parents: 1482
diff changeset
191 6, 12, 3, 9, 1, 3, 4, 3,
michael
parents: 1482
diff changeset
192 7, 4, 1, 1, 5, 5, 14, 6,
michael
parents: 1482
diff changeset
193 1, 7, 1, 8, 1, 1, 1, 1,
michael
parents: 1482
diff changeset
194 10, 1, 1, 5, 9, 17, 25, 24,
michael
parents: 1482
diff changeset
195 29, 33, 32, 41, 2, 23, 28, 31,
michael
parents: 1482
diff changeset
196 3, 22, 30, 4, 27, 40, 8, 26,
michael
parents: 1482
diff changeset
197 6, 39, 7, 38, 16, 37, 15, 10,
michael
parents: 1482
diff changeset
198 11, 12, 13, 14, 1, 21, 20, 18,
michael
parents: 1482
diff changeset
199 19, 2, 1, 34, 35, 36
michael
parents: 1482
diff changeset
200 };
michael
parents: 1482
diff changeset
201
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 498
diff changeset
202 static const uint16_t h263_format[8][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
203 { 0, 0 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
204 { 128, 96 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
205 { 176, 144 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
206 { 352, 288 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
207 { 704, 576 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
208 { 1408, 1152 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
209 };
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
210
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
211 uint8_t ff_aic_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
212 // 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
213 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
214 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 457
diff changeset
215
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
216 static const uint8_t modified_quant_tab[2][32]={
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
217 // 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
218 {
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
219 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
220 },{
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
221 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
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
222 }
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
223 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
224
1644
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
225 const uint8_t ff_h263_chroma_qscale_table[32]={
1639
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
226 // 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
227 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
228 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
229
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
230 const uint16_t ff_mba_max[6]={
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
231 47, 98, 395,1583,6335,9215
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
232 };
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
233
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
234 const uint8_t ff_mba_length[6]={
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
235 6, 7, 9, 11, 13, 14
3e2b774edce4 rv20 decoder
michael
parents: 1638
diff changeset
236 };
1644
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
237
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
238 const uint8_t ff_h263_loop_filter_strength[32]={
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
239 // 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
240 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
241 };
835cf346975e h263 loop filter
michael
parents: 1639
diff changeset
242