/* * Java port of ffmpeg mpeg1/2 decoder. * Copyright (c) 2003 Jonathan Hueber. * * Copyright (c) 2000,2001 Fabrice Bellard. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * See Credits file and Readme for details */ package net.sourceforge.jffmpeg.codecs.video.mpeg12.data; /** * */ public class Tables { public static int[] getDspIdctPermutation() { int[] y = new int[ 64 ]; for ( int i = 0; i < 64; i++ ) y[i] = i; return y; /* return new int[] { 0x00, 0x08, 0x04, 0x09, 0x01, 0x0C, 0x05, 0x0D, 0x10, 0x18, 0x14, 0x19, 0x11, 0x1C, 0x15, 0x1D, 0x20, 0x28, 0x24, 0x29, 0x21, 0x2C, 0x25, 0x2D, 0x12, 0x1A, 0x16, 0x1B, 0x13, 0x1E, 0x17, 0x1F, 0x02, 0x0A, 0x06, 0x0B, 0x03, 0x0E, 0x07, 0x0F, 0x30, 0x38, 0x34, 0x39, 0x31, 0x3C, 0x35, 0x3D, 0x22, 0x2A, 0x26, 0x2B, 0x23, 0x2E, 0x27, 0x2F, 0x32, 0x3A, 0x36, 0x3B, 0x33, 0x3E, 0x37, 0x3F, }; */ } public static int[] getMpeg1DefaultIntraMatrix() { return new int[] { 8, 16, 19, 22, 26, 27, 29, 34, 16, 16, 22, 24, 27, 29, 34, 37, 19, 22, 26, 27, 29, 34, 34, 38, 22, 22, 26, 27, 29, 34, 37, 40, 22, 26, 27, 29, 32, 35, 40, 48, 26, 27, 29, 32, 35, 40, 48, 58, 26, 27, 29, 34, 38, 46, 56, 69, 27, 29, 35, 38, 46, 56, 69, 83 }; } public static int[] getMpeg1DefaultNonIntraMatrix() { return new int[] { 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, }; } public static int[] getNonLinearQscale() { return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 22, 24, 28, 32, 36, 40, 44, 48, 52, 56, 64, 72, 80, 88, 96, 104, 112 }; } public static float[] getFrameRateTable() { return new float[] { 0, (float)24000/1001, 24, 25, (float)30000/1001, 30, 50, (float)60000/1001, 60, 15, 5, 10, 12, 15, 0 }; } public static final int MB_TYPE_INTRA = 0x01; public static final int MB_TYPE_INTER = 0x02; public static final int MB_TYPE_INTER4V = 0x04; public static final int MB_TYPE_SKIPED = 0x08; public static final int MB_IS_INTRA_MASK = 0x07; public static final int MB_TYPE_DIRECT = 0x10; public static final int MB_TYPE_FORWARD = 0x20; public static final int MB_TYPE_BACKWARD = 0x40; public static final int MB_TYPE_BIDIR = 0x80; public static final int MB_TYPE_INTRA4x4 = 0x0001; public static final int MB_TYPE_INTRA16x16 = 0x0002; //FIXME h264 specific public static final int MB_TYPE_INTRA_PCM = 0x0004; //FIXME h264 specific public static final int MB_TYPE_16x16 = 0x0008; public static final int MB_TYPE_16x8 = 0x0010; public static final int MB_TYPE_8x16 = 0x0020; public static final int MB_TYPE_8x8 = 0x0040; public static final int MB_TYPE_INTERLACED = 0x0080; public static final int MB_TYPE_DIRECT2 = 0x0100; //FIXME public static final int MB_TYPE_ACPRED = 0x0200; public static final int MB_TYPE_GMC = 0x0400; //FIXME mpeg4 specific public static final int MB_TYPE_SKIP = 0x0800; public static final int MB_TYPE_P0L0 = 0x1000; public static final int MB_TYPE_P1L0 = 0x2000; public static final int MB_TYPE_P0L1 = 0x4000; public static final int MB_TYPE_P1L1 = 0x8000; public static final int MB_TYPE_L0 = (MB_TYPE_P0L0 | MB_TYPE_P1L0); public static final int MB_TYPE_L1 = (MB_TYPE_P0L1 | MB_TYPE_P1L1); public static final int MB_TYPE_L0L1 = (MB_TYPE_L0 | MB_TYPE_L1); public static final int MB_TYPE_QUANT = 0x00010000; public static final int MB_TYPE_PAT = 0x40000000; public static final int MB_TYPE_ZERO_MV = 0x20000000; public static int[] getBType2mb_type() { return new int[] { MB_TYPE_INTRA, MB_TYPE_L1, MB_TYPE_L1 | MB_TYPE_PAT, MB_TYPE_L0, MB_TYPE_L0 | MB_TYPE_PAT, MB_TYPE_L0L1, MB_TYPE_L0L1 | MB_TYPE_PAT, MB_TYPE_QUANT | MB_TYPE_INTRA, MB_TYPE_QUANT | MB_TYPE_L1 | MB_TYPE_PAT, MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_PAT, MB_TYPE_QUANT | MB_TYPE_L0L1 | MB_TYPE_PAT, }; } public static int[] getPType2mb_type() { return new int[] { MB_TYPE_INTRA, MB_TYPE_L0 | MB_TYPE_PAT | MB_TYPE_ZERO_MV | MB_TYPE_16x16, MB_TYPE_L0, MB_TYPE_L0 | MB_TYPE_PAT, MB_TYPE_QUANT | MB_TYPE_INTRA, MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_PAT | MB_TYPE_ZERO_MV | MB_TYPE_16x16, MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_PAT, }; } }