• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

libavcodec/mpeg4data.h

Go to the documentation of this file.
00001 /*
00002  * copyright (c) 2000,2001 Fabrice Bellard
00003  * H263+ support
00004  * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
00005  *
00006  * This file is part of FFmpeg.
00007  *
00008  * FFmpeg is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2.1 of the License, or (at your option) any later version.
00012  *
00013  * FFmpeg is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with FFmpeg; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00021  */
00022 
00028 #ifndef AVCODEC_MPEG4DATA_H
00029 #define AVCODEC_MPEG4DATA_H
00030 
00031 #include <stdint.h>
00032 #include "mpegvideo.h"
00033 
00034 // shapes
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 // aspect_ratio_info
00049 #define EXTENDED_PAR 15
00050 
00051 //vol_sprite_usage / sprite_enable
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 /* dc encoding for mpeg4 */
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 /* Note this is identical to the intra rvlc except that it is reordered. */
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 /* these matrixes will be permuted for the idct */
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 //  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
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 //  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
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 /* AVCODEC_MPEG4DATA_H */

Generated on Tue Nov 4 2014 12:59:22 for ffmpeg by  doxygen 1.7.1