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