00001
00006
00007 #define RECT_SHAPE 0
00008 #define BIN_SHAPE 1
00009 #define BIN_ONLY_SHAPE 2
00010 #define GRAY_SHAPE 3
00011
00012 #define SIMPLE_VO_TYPE 1
00013 #define CORE_VO_TYPE 3
00014 #define MAIN_VO_TYPE 4
00015 #define NBIT_VO_TYPE 5
00016 #define ARTS_VO_TYPE 10
00017 #define ACE_VO_TYPE 12
00018 #define ADV_SIMPLE_VO_TYPE 17
00019
00020
00021 #define EXTENDED_PAR 15
00022
00023
00024 #define STATIC_SPRITE 1
00025 #define GMC_SPRITE 2
00026
00027 #define MOTION_MARKER 0x1F001
00028 #define DC_MARKER 0x6B001
00029
00030 static const int mb_type_b_map[4]= {
00031 MB_TYPE_DIRECT2 | MB_TYPE_L0L1,
00032 MB_TYPE_L0L1 | MB_TYPE_16x16,
00033 MB_TYPE_L1 | MB_TYPE_16x16,
00034 MB_TYPE_L0 | MB_TYPE_16x16,
00035 };
00036
00037 #define VOS_STARTCODE 0x1B0
00038 #define USER_DATA_STARTCODE 0x1B2
00039 #define GOP_STARTCODE 0x1B3
00040 #define VISUAL_OBJ_STARTCODE 0x1B5
00041 #define VOP_STARTCODE 0x1B6
00042
00043
00044 const uint8_t DCtab_lum[13][2] =
00045 {
00046 {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
00047 {1,8}, {1,9}, {1,10}, {1,11},
00048 };
00049
00050 const uint8_t DCtab_chrom[13][2] =
00051 {
00052 {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
00053 {1,9}, {1,10}, {1,11}, {1,12},
00054 };
00055
00056 const uint16_t intra_vlc[103][2] = {
00057 { 0x2, 2 },
00058 { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
00059 { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
00060 { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
00061 { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
00062 { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
00063 { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
00064 { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
00065 { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
00066 { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
00067 { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
00068 { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
00069 { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
00070 { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
00071 { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
00072 { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
00073 { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
00074 { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
00075 { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
00076 { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
00077 { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
00078 { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
00079 { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
00080 { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
00081 { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
00082 { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
00083 { 0x5f, 12 },{ 0x3, 7 },
00084 };
00085
00086 const int8_t intra_level[102] = {
00087 1, 2, 3, 4, 5, 6, 7, 8,
00088 9, 10, 11, 12, 13, 14, 15, 16,
00089 17, 18, 19, 20, 21, 22, 23, 24,
00090 25, 26, 27, 1, 2, 3, 4, 5,
00091 6, 7, 8, 9, 10, 1, 2, 3,
00092 4, 5, 1, 2, 3, 4, 1, 2,
00093 3, 1, 2, 3, 1, 2, 3, 1,
00094 2, 3, 1, 2, 1, 2, 1, 1,
00095 1, 1, 1, 1, 2, 3, 4, 5,
00096 6, 7, 8, 1, 2, 3, 1, 2,
00097 1, 2, 1, 2, 1, 2, 1, 2,
00098 1, 1, 1, 1, 1, 1, 1, 1,
00099 1, 1, 1, 1, 1, 1,
00100 };
00101
00102 const int8_t intra_run[102] = {
00103 0, 0, 0, 0, 0, 0, 0, 0,
00104 0, 0, 0, 0, 0, 0, 0, 0,
00105 0, 0, 0, 0, 0, 0, 0, 0,
00106 0, 0, 0, 1, 1, 1, 1, 1,
00107 1, 1, 1, 1, 1, 2, 2, 2,
00108 2, 2, 3, 3, 3, 3, 4, 4,
00109 4, 5, 5, 5, 6, 6, 6, 7,
00110 7, 7, 8, 8, 9, 9, 10, 11,
00111 12, 13, 14, 0, 0, 0, 0, 0,
00112 0, 0, 0, 1, 1, 1, 2, 2,
00113 3, 3, 4, 4, 5, 5, 6, 6,
00114 7, 8, 9, 10, 11, 12, 13, 14,
00115 15, 16, 17, 18, 19, 20,
00116 };
00117
00118 static RLTable rl_intra = {
00119 102,
00120 67,
00121 intra_vlc,
00122 intra_run,
00123 intra_level,
00124 };
00125
00126 static const uint16_t inter_rvlc[170][2]={
00127 {0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7},
00128 {0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10},
00129 {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
00130 {0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
00131 {0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3},
00132 {0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10},
00133 {0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
00134 {0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9},
00135 {0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
00136 {0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12},
00137 {0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5},
00138 {0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
00139 {0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13},
00140 {0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
00141 {0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
00142 {0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7},
00143 {0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11},
00144 {0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13},
00145 {0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14},
00146 {0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14},
00147 {0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
00148 {0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
00149 {0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
00150 {0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
00151 {0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
00152 {0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
00153 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
00154 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
00155 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
00156 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
00157 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
00158 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
00159 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
00160 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
00161 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
00162 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
00163 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
00164 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
00165 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
00166 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
00167 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
00168 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
00169 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
00170 };
00171
00172 static const uint8_t inter_rvlc_run[169]={
00173 0, 0, 0, 0, 0, 0, 0, 0,
00174 0, 0, 0, 0, 0, 0, 0, 0,
00175 0, 0, 0, 1, 1, 1, 1, 1,
00176 1, 1, 1, 1, 1, 2, 2, 2,
00177 2, 2, 2, 2, 3, 3, 3, 3,
00178 3, 3, 3, 4, 4, 4, 4, 4,
00179 5, 5, 5, 5, 6, 6, 6, 6,
00180 7, 7, 7, 7, 8, 8, 8, 9,
00181 9, 9, 10, 10, 11, 11, 12, 12,
00182 13, 13, 14, 14, 15, 15, 16, 16,
00183 17, 17, 18, 19, 20, 21, 22, 23,
00184 24, 25, 26, 27, 28, 29, 30, 31,
00185 32, 33, 34, 35, 36, 37, 38,
00186 0, 0, 0, 0, 0, 1, 1, 1,
00187 1, 1, 2, 2, 2, 3, 3, 4,
00188 4, 5, 5, 6, 6, 7, 7, 8,
00189 8, 9, 9, 10, 10, 11, 11, 12,
00190 12, 13, 13, 14, 15, 16, 17, 18,
00191 19, 20, 21, 22, 23, 24, 25, 26,
00192 27, 28, 29, 30, 31, 32, 33, 34,
00193 35, 36, 37, 38, 39, 40, 41, 42,
00194 43, 44,
00195 };
00196
00197 static const uint8_t inter_rvlc_level[169]={
00198 1, 2, 3, 4, 5, 6, 7, 8,
00199 9, 10, 11, 12, 13, 14, 15, 16,
00200 17, 18, 19, 1, 2, 3, 4, 5,
00201 6, 7, 8, 9, 10, 1, 2, 3,
00202 4, 5, 6, 7, 1, 2, 3, 4,
00203 5, 6, 7, 1, 2, 3, 4, 5,
00204 1, 2, 3, 4, 1, 2, 3, 4,
00205 1, 2, 3, 4, 1, 2, 3, 1,
00206 2, 3, 1, 2, 1, 2, 1, 2,
00207 1, 2, 1, 2, 1, 2, 1, 2,
00208 1, 2, 1, 1, 1, 1, 1, 1,
00209 1, 1, 1, 1, 1, 1, 1, 1,
00210 1, 1, 1, 1, 1, 1, 1,
00211 1, 2, 3, 4, 5, 1, 2, 3,
00212 4, 5, 1, 2, 3, 1, 2, 1,
00213 2, 1, 2, 1, 2, 1, 2, 1,
00214 2, 1, 2, 1, 2, 1, 2, 1,
00215 2, 1, 2, 1, 1, 1, 1, 1,
00216 1, 1, 1, 1, 1, 1, 1, 1,
00217 1, 1, 1, 1, 1, 1, 1, 1,
00218 1, 1, 1, 1, 1, 1, 1, 1,
00219 1, 1,
00220 };
00221
00222 static RLTable rvlc_rl_inter = {
00223 169,
00224 103,
00225 inter_rvlc,
00226 inter_rvlc_run,
00227 inter_rvlc_level,
00228 };
00229
00230 static const uint16_t intra_rvlc[170][2]={
00231 {0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5},
00232 {0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8},
00233 {0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10},
00234 {0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
00235 {0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
00236 {0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
00237 {0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4},
00238 {0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8},
00239 {0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
00240 {0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
00241 {0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10},
00242 {0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
00243 {0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5},
00244 {0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12},
00245 {0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
00246 {0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12},
00247 {0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9},
00248 {0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
00249 {0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
00250 {0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11},
00251 {0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10},
00252 {0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11},
00253 {0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12},
00254 {0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
00255 {0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
00256 {0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
00257 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
00258 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
00259 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
00260 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
00261 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
00262 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
00263 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
00264 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
00265 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
00266 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
00267 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
00268 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
00269 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
00270 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
00271 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
00272 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
00273 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
00274 };
00275
00276 static const uint8_t intra_rvlc_run[169]={
00277 0, 0, 0, 0, 0, 0, 0, 0,
00278 0, 0, 0, 0, 0, 0, 0, 0,
00279 0, 0, 0, 0, 0, 0, 0, 0,
00280 0, 0, 0, 1, 1, 1, 1, 1,
00281 1, 1, 1, 1, 1, 1, 1, 1,
00282 2, 2, 2, 2, 2, 2, 2, 2,
00283 2, 2, 2, 3, 3, 3, 3, 3,
00284 3, 3, 3, 3, 4, 4, 4, 4,
00285 4, 4, 5, 5, 5, 5, 5, 5,
00286 6, 6, 6, 6, 6, 7, 7, 7,
00287 7, 7, 8, 8, 8, 8, 9, 9,
00288 9, 9, 10, 10, 11, 11, 12, 12,
00289 13, 14, 15, 16, 17, 18, 19,
00290 0, 0, 0, 0, 0, 1, 1, 1,
00291 1, 1, 2, 2, 2, 3, 3, 4,
00292 4, 5, 5, 6, 6, 7, 7, 8,
00293 8, 9, 9, 10, 10, 11, 11, 12,
00294 12, 13, 13, 14, 15, 16, 17, 18,
00295 19, 20, 21, 22, 23, 24, 25, 26,
00296 27, 28, 29, 30, 31, 32, 33, 34,
00297 35, 36, 37, 38, 39, 40, 41, 42,
00298 43, 44,
00299 };
00300
00301 static const uint8_t intra_rvlc_level[169]={
00302 1, 2, 3, 4, 5, 6, 7, 8,
00303 9, 10, 11, 12, 13, 14, 15, 16,
00304 17, 18, 19, 20, 21, 22, 23, 24,
00305 25, 26, 27, 1, 2, 3, 4, 5,
00306 6, 7, 8, 9, 10, 11, 12, 13,
00307 1, 2, 3, 4, 5, 6, 7, 8,
00308 9, 10, 11, 1, 2, 3, 4, 5,
00309 6, 7, 8, 9, 1, 2, 3, 4,
00310 5, 6, 1, 2, 3, 4, 5, 6,
00311 1, 2, 3, 4, 5, 1, 2, 3,
00312 4, 5, 1, 2, 3, 4, 1, 2,
00313 3, 4, 1, 2, 1, 2, 1, 2,
00314 1, 1, 1, 1, 1, 1, 1,
00315 1, 2, 3, 4, 5, 1, 2, 3,
00316 4, 5, 1, 2, 3, 1, 2, 1,
00317 2, 1, 2, 1, 2, 1, 2, 1,
00318 2, 1, 2, 1, 2, 1, 2, 1,
00319 2, 1, 2, 1, 1, 1, 1, 1,
00320 1, 1, 1, 1, 1, 1, 1, 1,
00321 1, 1, 1, 1, 1, 1, 1, 1,
00322 1, 1, 1, 1, 1, 1, 1, 1,
00323 1, 1,
00324 };
00325
00326 static RLTable rvlc_rl_intra = {
00327 169,
00328 103,
00329 intra_rvlc,
00330 intra_rvlc_run,
00331 intra_rvlc_level,
00332 };
00333
00334 static const uint16_t sprite_trajectory_tab[15][2] = {
00335 {0x00, 2}, {0x02, 3}, {0x03, 3}, {0x04, 3}, {0x05, 3}, {0x06, 3},
00336 {0x0E, 4}, {0x1E, 5}, {0x3E, 6}, {0x7E, 7}, {0xFE, 8},
00337 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
00338 };
00339
00340 static const uint8_t mb_type_b_tab[4][2] = {
00341 {1, 1}, {1, 2}, {1, 3}, {1, 4},
00342 };
00343
00344 static const AVRational pixel_aspect[16]={
00345 {0, 1},
00346 {1, 1},
00347 {12, 11},
00348 {10, 11},
00349 {16, 11},
00350 {40, 33},
00351 {0, 1},
00352 {0, 1},
00353 {0, 1},
00354 {0, 1},
00355 {0, 1},
00356 {0, 1},
00357 {0, 1},
00358 {0, 1},
00359 {0, 1},
00360 {0, 1},
00361 };
00362
00363
00364 const int16_t ff_mpeg4_default_intra_matrix[64] = {
00365 8, 17, 18, 19, 21, 23, 25, 27,
00366 17, 18, 19, 21, 23, 25, 27, 28,
00367 20, 21, 22, 23, 24, 26, 28, 30,
00368 21, 22, 23, 24, 26, 28, 30, 32,
00369 22, 23, 24, 26, 28, 30, 32, 35,
00370 23, 24, 26, 28, 30, 32, 35, 38,
00371 25, 26, 28, 30, 32, 35, 38, 41,
00372 27, 28, 30, 32, 35, 38, 41, 45,
00373 };
00374
00375 const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
00376 16, 17, 18, 19, 20, 21, 22, 23,
00377 17, 18, 19, 20, 21, 22, 23, 24,
00378 18, 19, 20, 21, 22, 23, 24, 25,
00379 19, 20, 21, 22, 23, 24, 26, 27,
00380 20, 21, 22, 23, 25, 26, 27, 28,
00381 21, 22, 23, 24, 26, 27, 28, 30,
00382 22, 23, 24, 26, 27, 28, 30, 31,
00383 23, 24, 25, 27, 28, 30, 31, 33,
00384 };
00385
00386 const uint8_t ff_mpeg4_y_dc_scale_table[32]={
00387
00388 0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,38,40,42,44,46
00389 };
00390 const uint8_t ff_mpeg4_c_dc_scale_table[32]={
00391
00392 0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,20,21,22,23,24,25
00393 };
00394
00395 const uint16_t ff_mpeg4_resync_prefix[8]={
00396 0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
00397 };
00398
00399 static const uint8_t mpeg4_dc_threshold[8]={
00400 99, 13, 15, 17, 19, 21, 23, 0
00401 };