1/* 2 * copyright (c) 2000,2001 Fabrice Bellard 3 * H.263+ support 4 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> 5 * 6 * This file is part of FFmpeg. 7 * 8 * FFmpeg is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Lesser General Public 10 * License as published by the Free Software Foundation; either 11 * version 2.1 of the License, or (at your option) any later version. 12 * 13 * FFmpeg is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public 19 * License along with FFmpeg; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 */ 22 23/** 24 * @file 25 * MPEG-4 tables. 26 */ 27 28#ifndef AVCODEC_MPEG4DATA_H 29#define AVCODEC_MPEG4DATA_H 30 31#include "mpeg4videodata.h" 32 33/* dc encoding for MPEG-4 */ 34const uint8_t ff_mpeg4_DCtab_lum[13][2] = 35{ 36 {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, 37 {1,8}, {1,9}, {1,10}, {1,11}, 38}; 39 40const uint8_t ff_mpeg4_DCtab_chrom[13][2] = 41{ 42 {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8}, 43 {1,9}, {1,10}, {1,11}, {1,12}, 44}; 45 46const uint16_t ff_mpeg4_intra_vlc[103][2] = { 47{ 0x2, 2 }, 48{ 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 }, 49{ 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 }, 50{ 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 }, 51{ 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 }, 52{ 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 }, 53{ 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 }, 54{ 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 }, 55{ 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 }, 56{ 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 }, 57{ 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 }, 58{ 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 }, 59{ 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 }, 60{ 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 }, 61{ 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 }, 62{ 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 }, 63{ 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 }, 64{ 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 }, 65{ 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 }, 66{ 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 }, 67{ 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 }, 68{ 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 }, 69{ 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 }, 70{ 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 }, 71{ 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 }, 72{ 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 }, 73{ 0x5f, 12 },{ 0x3, 7 }, 74}; 75 76const int8_t ff_mpeg4_intra_level[102] = { 77 1, 2, 3, 4, 5, 6, 7, 8, 78 9, 10, 11, 12, 13, 14, 15, 16, 79 17, 18, 19, 20, 21, 22, 23, 24, 80 25, 26, 27, 1, 2, 3, 4, 5, 81 6, 7, 8, 9, 10, 1, 2, 3, 82 4, 5, 1, 2, 3, 4, 1, 2, 83 3, 1, 2, 3, 1, 2, 3, 1, 84 2, 3, 1, 2, 1, 2, 1, 1, 85 1, 1, 1, 1, 2, 3, 4, 5, 86 6, 7, 8, 1, 2, 3, 1, 2, 87 1, 2, 1, 2, 1, 2, 1, 2, 88 1, 1, 1, 1, 1, 1, 1, 1, 89 1, 1, 1, 1, 1, 1, 90}; 91 92const int8_t ff_mpeg4_intra_run[102] = { 93 0, 0, 0, 0, 0, 0, 0, 0, 94 0, 0, 0, 0, 0, 0, 0, 0, 95 0, 0, 0, 0, 0, 0, 0, 0, 96 0, 0, 0, 1, 1, 1, 1, 1, 97 1, 1, 1, 1, 1, 2, 2, 2, 98 2, 2, 3, 3, 3, 3, 4, 4, 99 4, 5, 5, 5, 6, 6, 6, 7, 100 7, 7, 8, 8, 9, 9, 10, 11, 101 12, 13, 14, 0, 0, 0, 0, 0, 102 0, 0, 0, 1, 1, 1, 2, 2, 103 3, 3, 4, 4, 5, 5, 6, 6, 104 7, 8, 9, 10, 11, 12, 13, 14, 105 15, 16, 17, 18, 19, 20, 106}; 107 108RLTable ff_mpeg4_rl_intra = { 109 102, 110 67, 111 ff_mpeg4_intra_vlc, 112 ff_mpeg4_intra_run, 113 ff_mpeg4_intra_level, 114}; 115 116/* Note this is identical to the intra rvlc except that it is reordered. */ 117static const uint16_t inter_rvlc[170][2]={ 118{0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7}, 119{0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10}, 120{0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12}, 121{0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13}, 122{0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3}, 123{0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10}, 124{0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14}, 125{0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9}, 126{0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14}, 127{0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12}, 128{0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5}, 129{0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15}, 130{0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13}, 131{0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14}, 132{0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15}, 133{0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7}, 134{0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11}, 135{0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13}, 136{0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14}, 137{0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14}, 138{0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10}, 139{0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11}, 140{0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12}, 141{0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13}, 142{0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14}, 143{0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15}, 144{0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13}, 145{0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12}, 146{0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11}, 147{0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6}, 148{0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6}, 149{0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7}, 150{0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7}, 151{0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8}, 152{0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8}, 153{0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9}, 154{0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10}, 155{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11}, 156{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12}, 157{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12}, 158{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14}, 159{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15}, 160{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4} 161}; 162 163static const int8_t inter_rvlc_run[169]={ 164 0, 0, 0, 0, 0, 0, 0, 0, 165 0, 0, 0, 0, 0, 0, 0, 0, 166 0, 0, 0, 1, 1, 1, 1, 1, 167 1, 1, 1, 1, 1, 2, 2, 2, 168 2, 2, 2, 2, 3, 3, 3, 3, 169 3, 3, 3, 4, 4, 4, 4, 4, 170 5, 5, 5, 5, 6, 6, 6, 6, 171 7, 7, 7, 7, 8, 8, 8, 9, 172 9, 9, 10, 10, 11, 11, 12, 12, 17313, 13, 14, 14, 15, 15, 16, 16, 17417, 17, 18, 19, 20, 21, 22, 23, 17524, 25, 26, 27, 28, 29, 30, 31, 17632, 33, 34, 35, 36, 37, 38, 177 0, 0, 0, 0, 0, 1, 1, 1, 178 1, 1, 2, 2, 2, 3, 3, 4, 179 4, 5, 5, 6, 6, 7, 7, 8, 180 8, 9, 9, 10, 10, 11, 11, 12, 18112, 13, 13, 14, 15, 16, 17, 18, 18219, 20, 21, 22, 23, 24, 25, 26, 18327, 28, 29, 30, 31, 32, 33, 34, 18435, 36, 37, 38, 39, 40, 41, 42, 18543, 44, 186}; 187 188static const int8_t inter_rvlc_level[169]={ 189 1, 2, 3, 4, 5, 6, 7, 8, 190 9, 10, 11, 12, 13, 14, 15, 16, 19117, 18, 19, 1, 2, 3, 4, 5, 192 6, 7, 8, 9, 10, 1, 2, 3, 193 4, 5, 6, 7, 1, 2, 3, 4, 194 5, 6, 7, 1, 2, 3, 4, 5, 195 1, 2, 3, 4, 1, 2, 3, 4, 196 1, 2, 3, 4, 1, 2, 3, 1, 197 2, 3, 1, 2, 1, 2, 1, 2, 198 1, 2, 1, 2, 1, 2, 1, 2, 199 1, 2, 1, 1, 1, 1, 1, 1, 200 1, 1, 1, 1, 1, 1, 1, 1, 201 1, 1, 1, 1, 1, 1, 1, 202 1, 2, 3, 4, 5, 1, 2, 3, 203 4, 5, 1, 2, 3, 1, 2, 1, 204 2, 1, 2, 1, 2, 1, 2, 1, 205 2, 1, 2, 1, 2, 1, 2, 1, 206 2, 1, 2, 1, 1, 1, 1, 1, 207 1, 1, 1, 1, 1, 1, 1, 1, 208 1, 1, 1, 1, 1, 1, 1, 1, 209 1, 1, 1, 1, 1, 1, 1, 1, 210 1, 1, 211}; 212 213RLTable ff_rvlc_rl_inter = { 214 169, 215 103, 216 inter_rvlc, 217 inter_rvlc_run, 218 inter_rvlc_level, 219}; 220 221static const uint16_t intra_rvlc[170][2]={ 222{0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5}, 223{0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8}, 224{0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10}, 225{0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11}, 226{0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13}, 227{0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14}, 228{0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4}, 229{0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8}, 230{0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11}, 231{0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14}, 232{0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10}, 233{0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13}, 234{0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5}, 235{0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12}, 236{0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15}, 237{0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12}, 238{0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9}, 239{0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14}, 240{0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12}, 241{0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11}, 242{0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10}, 243{0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11}, 244{0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12}, 245{0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15}, 246{0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14}, 247{0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15}, 248{0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13}, 249{0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12}, 250{0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11}, 251{0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6}, 252{0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6}, 253{0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7}, 254{0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7}, 255{0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8}, 256{0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8}, 257{0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9}, 258{0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10}, 259{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11}, 260{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12}, 261{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12}, 262{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14}, 263{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15}, 264{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4} 265}; 266 267static const int8_t intra_rvlc_run[169]={ 268 0, 0, 0, 0, 0, 0, 0, 0, 269 0, 0, 0, 0, 0, 0, 0, 0, 270 0, 0, 0, 0, 0, 0, 0, 0, 271 0, 0, 0, 1, 1, 1, 1, 1, 272 1, 1, 1, 1, 1, 1, 1, 1, 273 2, 2, 2, 2, 2, 2, 2, 2, 274 2, 2, 2, 3, 3, 3, 3, 3, 275 3, 3, 3, 3, 4, 4, 4, 4, 276 4, 4, 5, 5, 5, 5, 5, 5, 277 6, 6, 6, 6, 6, 7, 7, 7, 278 7, 7, 8, 8, 8, 8, 9, 9, 279 9, 9, 10, 10, 11, 11, 12, 12, 28013, 14, 15, 16, 17, 18, 19, 281 0, 0, 0, 0, 0, 1, 1, 1, 282 1, 1, 2, 2, 2, 3, 3, 4, 283 4, 5, 5, 6, 6, 7, 7, 8, 284 8, 9, 9, 10, 10, 11, 11, 12, 28512, 13, 13, 14, 15, 16, 17, 18, 28619, 20, 21, 22, 23, 24, 25, 26, 28727, 28, 29, 30, 31, 32, 33, 34, 28835, 36, 37, 38, 39, 40, 41, 42, 28943, 44, 290}; 291 292static const int8_t intra_rvlc_level[169]={ 293 1, 2, 3, 4, 5, 6, 7, 8, 294 9, 10, 11, 12, 13, 14, 15, 16, 29517, 18, 19, 20, 21, 22, 23, 24, 29625, 26, 27, 1, 2, 3, 4, 5, 297 6, 7, 8, 9, 10, 11, 12, 13, 298 1, 2, 3, 4, 5, 6, 7, 8, 299 9, 10, 11, 1, 2, 3, 4, 5, 300 6, 7, 8, 9, 1, 2, 3, 4, 301 5, 6, 1, 2, 3, 4, 5, 6, 302 1, 2, 3, 4, 5, 1, 2, 3, 303 4, 5, 1, 2, 3, 4, 1, 2, 304 3, 4, 1, 2, 1, 2, 1, 2, 305 1, 1, 1, 1, 1, 1, 1, 306 1, 2, 3, 4, 5, 1, 2, 3, 307 4, 5, 1, 2, 3, 1, 2, 1, 308 2, 1, 2, 1, 2, 1, 2, 1, 309 2, 1, 2, 1, 2, 1, 2, 1, 310 2, 1, 2, 1, 1, 1, 1, 1, 311 1, 1, 1, 1, 1, 1, 1, 1, 312 1, 1, 1, 1, 1, 1, 1, 1, 313 1, 1, 1, 1, 1, 1, 1, 1, 314 1, 1, 315}; 316 317RLTable ff_rvlc_rl_intra = { 318 169, 319 103, 320 intra_rvlc, 321 intra_rvlc_run, 322 intra_rvlc_level, 323}; 324 325const uint8_t ff_sprite_trajectory_lens[15] = { 326 2, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 327}; 328 329const uint8_t ff_mb_type_b_tab[4][2] = { 330 {1, 1}, {1, 2}, {1, 3}, {1, 4}, 331}; 332 333/* these matrixes will be permuted for the idct */ 334const int16_t ff_mpeg4_default_intra_matrix[64] = { 335 8, 17, 18, 19, 21, 23, 25, 27, 336 17, 18, 19, 21, 23, 25, 27, 28, 337 20, 21, 22, 23, 24, 26, 28, 30, 338 21, 22, 23, 24, 26, 28, 30, 32, 339 22, 23, 24, 26, 28, 30, 32, 35, 340 23, 24, 26, 28, 30, 32, 35, 38, 341 25, 26, 28, 30, 32, 35, 38, 41, 342 27, 28, 30, 32, 35, 38, 41, 45, 343}; 344 345const int16_t ff_mpeg4_default_non_intra_matrix[64] = { 346 16, 17, 18, 19, 20, 21, 22, 23, 347 17, 18, 19, 20, 21, 22, 23, 24, 348 18, 19, 20, 21, 22, 23, 24, 25, 349 19, 20, 21, 22, 23, 24, 26, 27, 350 20, 21, 22, 23, 25, 26, 27, 28, 351 21, 22, 23, 24, 26, 27, 28, 30, 352 22, 23, 24, 26, 27, 28, 30, 31, 353 23, 24, 25, 27, 28, 30, 31, 33, 354}; 355 356const uint8_t ff_mpeg4_y_dc_scale_table[32]={ 357// 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 358 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 359}; 360const uint8_t ff_mpeg4_c_dc_scale_table[32]={ 361// 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 362 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 363}; 364 365const uint16_t ff_mpeg4_resync_prefix[8]={ 366 0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000 367}; 368 369const uint8_t ff_mpeg4_dc_threshold[8]={ 370 99, 13, 15, 17, 19, 21, 23, 0 371}; 372 373/* Note these are different in studio mode */ 374const uint8_t ff_mpeg4_studio_dc_luma[19][2] = { 375 { 2, 4 }, { 10, 4 }, { 3, 4 }, { 1, 5 }, { 0, 6 }, { 11, 7 }, 376 { 12, 8 }, { 13, 9 }, { 14, 10 }, { 15, 11 }, { 16, 12 }, { 17, 13 }, 377 { 18, 13 }, { 7, 3 }, { 6, 3 }, { 8, 3 }, { 5, 3 }, { 9, 3 }, 378 { 4, 3 }, 379}; 380 381const uint8_t ff_mpeg4_studio_dc_chroma[19][2] = { 382 { 0, 4 }, { 8, 4 }, { 1, 4 }, { 9, 5 }, { 10, 6 }, { 11, 7 }, 383 { 12, 8 }, { 13, 9 }, { 14, 10 }, { 15, 11 }, { 16, 12 }, { 17, 13 }, 384 { 18, 13 }, { 5, 3 }, { 4, 3 }, { 6, 3 }, { 3, 3 }, { 7, 3 }, 385 { 2, 3 }, 386}; 387 388const uint8_t ff_mpeg4_studio_intra[12][24][2] = { 389 { 390 { 0, -6 }, { 21, 13 }, { 6, 13 }, { 5, 12 }, { 4, 11 }, { 20, 10 }, 391 { 3, 9 }, { 12, 8 }, { 11, 7 }, { 10, 7 }, { 2, 7 }, { 19, 6 }, 392 { 18, 6 }, { 9, 6 }, { 8, 5 }, { 17, 4 }, { 7, 4 }, { 1, 4 }, 393 { 0, 4 }, { 16, 3 }, { 15, 3 }, { 14, 3 }, { 13, 2 }, 394 }, 395 { 396 { 0, -6 }, { 21, 8 }, { 20, 8 }, { 19, 7 }, { 18, 5 }, { 17, 4 }, 397 { 16, 3 }, { 15, 2 }, { 14, 1 }, 398 }, 399 { 400 { 0, -6 }, { 0,-15 }, { 20, 15 }, { 19, 14 }, { 6, 14 }, { 5, 14 }, 401 { 21, 13 }, { 18, 13 }, { 17, 11 }, { 12, 10 }, { 4, 9 }, { 16, 8 }, 402 { 3, 7 }, { 15, 6 }, { 11, 6 }, { 2, 5 }, { 1, 5 }, { 10, 4 }, 403 { 9, 4 }, { 14, 3 }, { 8, 3 }, { 7, 3 }, { 0, 3 }, { 13, 2 }, 404 }, 405 { 406 { 0, -6 }, { 20, 13 }, { 12, 13 }, { 6, 13 }, { 5, 13 }, { 21, 12 }, 407 { 19, 12 }, { 18, 10 }, { 4, 9 }, { 11, 8 }, { 17, 7 }, { 16, 6 }, 408 { 3, 6 }, { 15, 5 }, { 10, 5 }, { 2, 5 }, { 0, 5 }, { 9, 4 }, 409 { 8, 4 }, { 1, 4 }, { 7, 3 }, { 14, 2 }, { 13, 2 }, 410 }, 411 { 412 { 0, -6 }, { 0,-15 }, { 12, 15 }, { 6, 14 }, { 21, 13 }, { 20, 13 }, 413 { 5, 13 }, { 19, 11 }, { 11, 10 }, { 4, 9 }, { 18, 8 }, { 10, 7 }, 414 { 3, 7 }, { 0, 7 }, { 17, 6 }, { 16, 6 }, { 9, 6 }, { 2, 5 }, 415 { 8, 4 }, { 1, 4 }, { 15, 3 }, { 7, 3 }, { 14, 2 }, { 13, 2 }, 416 }, 417 { 418 { 0, -6 }, { 0,-15 }, { 20, 15 }, { 12, 14 }, { 11, 13 }, { 6, 13 }, 419 { 5, 13 }, { 21, 12 }, { 4, 12 }, { 19, 11 }, { 10, 11 }, { 3, 10 }, 420 { 0, 10 }, { 9, 8 }, { 18, 7 }, { 8, 7 }, { 2, 7 }, { 17, 6 }, 421 { 7, 5 }, { 1, 5 }, { 16, 3 }, { 15, 2 }, { 14, 2 }, { 13, 2 }, 422 }, 423 { 424 { 0, -6 }, { 0,-15 }, { 12, 15 }, { 11, 14 }, { 6, 14 }, { 5, 14 }, 425 { 21, 12 }, { 20, 12 }, { 10, 12 }, { 4, 11 }, { 0, 11 }, { 9, 10 }, 426 { 3, 10 }, { 19, 8 }, { 8, 8 }, { 2, 8 }, { 18, 6 }, { 7, 6 }, 427 { 1, 4 }, { 17, 3 }, { 14, 3 }, { 13, 3 }, { 16, 2 }, { 15, 2 }, 428 }, 429 { 430 { 0, -6 }, { 12, 12 }, { 6, 12 }, { 21, 11 }, { 11, 11 }, { 5, 11 }, 431 { 20, 10 }, { 10, 10 }, { 9, 9 }, { 0, 9 }, { 8, 8 }, { 2, 8 }, 432 { 19, 7 }, { 7, 7 }, { 4, 7 }, { 3, 7 }, { 18, 5 }, { 1, 5 }, 433 { 14, 4 }, { 13, 4 }, { 17, 2 }, { 16, 2 }, { 15, 2 }, 434 }, 435 { 436 { 0, -6 }, { 12, 13 }, { 6, 13 }, { 21, 12 }, { 11, 12 }, { 5, 12 }, 437 { 20, 11 }, { 3, 11 }, { 10, 10 }, { 9, 10 }, { 2, 10 }, { 0, 10 }, 438 { 8, 9 }, { 7, 8 }, { 4, 8 }, { 19, 6 }, { 1, 6 }, { 13, 4 }, 439 { 18, 3 }, { 15, 3 }, { 14, 3 }, { 17, 2 }, { 16, 2 }, 440 }, 441 { 442 { 0, -6 }, { 12, 12 }, { 11, 12 }, { 6, 12 }, { 0, 12 }, { 21, 10 }, 443 { 10, 10 }, { 5, 10 }, { 20, 8 }, { 9, 8 }, { 2, 8 }, { 8, 7 }, 444 { 7, 7 }, { 4, 6 }, { 3, 6 }, { 1, 6 }, { 13, 5 }, { 19, 4 }, 445 { 14, 4 }, { 16, 3 }, { 15, 3 }, { 18, 2 }, { 17, 2 }, 446 }, 447 { 448 { 0, -6 }, { 12, 13 }, { 6, 13 }, { 5, 13 }, { 0, 13 }, { 4, 11 }, 449 { 11, 10 }, { 21, 9 }, { 10, 9 }, { 9, 9 }, { 8, 8 }, { 2, 8 }, 450 { 7, 7 }, { 1, 7 }, { 20, 6 }, { 14, 5 }, { 13, 5 }, { 15, 4 }, 451 { 3, 4 }, { 17, 3 }, { 16, 3 }, { 19, 2 }, { 18, 2 }, 452 }, 453 { 454 { 0, -6 }, { 6, 11 }, { 5, 11 }, { 12, 10 }, { 11, 10 }, { 0, 10 }, 455 { 21, 9 }, { 10, 9 }, { 4, 9 }, { 3, 9 }, { 9, 8 }, { 8, 6 }, 456 { 2, 6 }, { 7, 5 }, { 1, 5 }, { 18, 4 }, { 17, 4 }, { 16, 4 }, 457 { 15, 4 }, { 19, 3 }, { 14, 3 }, { 13, 3 }, { 20, 2 }, 458 }, 459}; 460 461#endif /* AVCODEC_MPEG4DATA_H */ 462