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