⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dcahuff.h

📁 ffmpeg移植到symbian的全部源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * DCA compatible decoder - huffman tables * Copyright (C) 2004 Gildas Bazin * Copyright (C) 2007 Konstantin Shishkov * * This file is part of FFmpeg. * * FFmpeg 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.1 of the License, or (at your option) any later version. * * FFmpeg 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 FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */#ifndef FFMPEG_DCAHUFF_H#define FFMPEG_DCAHUFF_H#include <stdint.h>#include <stdlib.h>#define TMODE_COUNT 4static const uint8_t tmode_vlc_bits[TMODE_COUNT] = { 3, 3, 3, 2 };static const uint16_t tmode_codes[TMODE_COUNT][4] = {  { 0x0000, 0x0002, 0x0006, 0x0007 },  { 0x0002, 0x0006, 0x0007, 0x0000 },  { 0x0006, 0x0007, 0x0000, 0x0002 },  { 0x0000, 0x0001, 0x0002, 0x0003 }};static const uint8_t tmode_bits[TMODE_COUNT][4] = {  {  1,  2,  3,  3 },  {  2,  3,  3,  1 },  {  3,  3,  1,  2 },  {  2,  2,  2,  2 }};#define BITALLOC_12_COUNT 5#define BITALLOC_12_VLC_BITS 9static const uint8_t bitalloc_12_vlc_bits[BITALLOC_12_COUNT] = {  9, 7, 7, 9, 9};static const uint16_t bitalloc_12_codes[BITALLOC_12_COUNT][12] = {  {    0x0000, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E, 0x00FF, 0x00FE,    0x01FB, 0x01FA, 0x01F9, 0x01F8,  },  {    0x0001, 0x0000, 0x0002, 0x000F, 0x000C, 0x001D, 0x0039, 0x0038,    0x0037, 0x0036, 0x0035, 0x0034,  },  {    0x0000, 0x0007, 0x0005, 0x0004, 0x0002, 0x000D, 0x000C, 0x0006,    0x000F, 0x001D, 0x0039, 0x0038,  },  {    0x0003, 0x0002, 0x0000, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E,    0x007E, 0x00FE, 0x01FF, 0x01FE,  },  {    0x0001, 0x0000, 0x0002, 0x0006, 0x000E, 0x003F, 0x003D, 0x007C,    0x0079, 0x0078, 0x00FB, 0x00FA,  }};static const uint8_t bitalloc_12_bits[BITALLOC_12_COUNT][12] = {  { 1,  2,  3,  4,  5,  6,  8,  8,  9,  9,  9,  9 },  { 1,  2,  3,  5,  5,  6,  7,  7,  7,  7,  7,  7 },  { 2,  3,  3,  3,  3,  4,  4,  4,  5,  6,  7,  7 },  { 2,  2,  2,  3,  4,  5,  6,  7,  8,  9, 10, 10 },  { 1,  2,  3,  4,  5,  7,  7,  8,  8,  8,  9,  9 }};#define SCALES_COUNT 5#define SCALES_VLC_BITS 9static const uint16_t scales_codes[SCALES_COUNT][129] = {  {    0x3AB0, 0x3AB2, 0x3AB4, 0x3AB6, 0x3AB8, 0x3ABA, 0x3ABC, 0x3ABE,    0x3AC0, 0x3AC2, 0x3AC4, 0x3AC6, 0x3AC8, 0x3ACA, 0x3ACC, 0x3ACE,    0x3AD0, 0x3AD2, 0x3AD4, 0x3AD6, 0x3AD8, 0x3ADA, 0x3ADC, 0x3ADE,    0x3AE0, 0x3AE2, 0x3AE4, 0x3AE6, 0x3AE8, 0x3AEA, 0x3AEC, 0x3AEE,    0x3AF0, 0x3AF2, 0x3AF4, 0x3AF6, 0x3AF8, 0x3AFA, 0x3AFC, 0x3AFE,    0x0540, 0x0542, 0x0544, 0x0546, 0x0548, 0x054A, 0x054C, 0x054E,    0x0558, 0x055E, 0x02AD, 0x0154, 0x0754, 0x03A8, 0x0056, 0x0028,    0x00E8, 0x004A, 0x000B, 0x003B, 0x0013, 0x0003, 0x000F, 0x0005,    0x0001, 0x0006, 0x0000, 0x0008, 0x001C, 0x0004, 0x0024, 0x004B,    0x00E9, 0x0029, 0x0057, 0x03A9, 0x0755, 0x0155, 0x02AE, 0x055F,    0x0559, 0x054F, 0x054D, 0x054B, 0x0549, 0x0547, 0x0545, 0x0543,    0x0541, 0x3AFF, 0x3AFD, 0x3AFB, 0x3AF9, 0x3AF7, 0x3AF5, 0x3AF3,    0x3AF1, 0x3AEF, 0x3AED, 0x3AEB, 0x3AE9, 0x3AE7, 0x3AE5, 0x3AE3,    0x3AE1, 0x3ADF, 0x3ADD, 0x3ADB, 0x3AD9, 0x3AD7, 0x3AD5, 0x3AD3,    0x3AD1, 0x3ACF, 0x3ACD, 0x3ACB, 0x3AC9, 0x3AC7, 0x3AC5, 0x3AC3,    0x3AC1, 0x3ABF, 0x3ABD, 0x3ABB, 0x3AB9, 0x3AB7, 0x3AB5, 0x3AB3,    0x3AB1,  },  {    0x0F60, 0x0F62, 0x0F64, 0x0F66, 0x0F68, 0x0F6A, 0x0F6C, 0x0F6E,    0x0F70, 0x0F72, 0x0F74, 0x0F76, 0x0F78, 0x0F7A, 0x0F7C, 0x0F7E,    0x0F80, 0x0F82, 0x0F84, 0x0F86, 0x0F88, 0x0F8A, 0x0F8C, 0x0F8E,    0x0F90, 0x0F92, 0x0F94, 0x0F96, 0x0F98, 0x0F9A, 0x0F9C, 0x0F9E,    0x0FA0, 0x0FA2, 0x0FA4, 0x0FA6, 0x0FA8, 0x0FAA, 0x0FAC, 0x0FAE,    0x0FB0, 0x0FB2, 0x0FB4, 0x0FB6, 0x0FB8, 0x0FBA, 0x0FBC, 0x0FBE,    0x07A0, 0x07A2, 0x03D2, 0x01EA, 0x00FC, 0x007F, 0x001C, 0x000C,    0x0004, 0x0034, 0x0010, 0x001B, 0x0009, 0x000B, 0x000E, 0x0001,    0x0003, 0x0002, 0x000F, 0x000C, 0x000A, 0x0000, 0x0011, 0x0035,    0x0005, 0x000D, 0x001D, 0x003C, 0x00FD, 0x01EB, 0x03D3, 0x07A3,    0x07A1, 0x0FBF, 0x0FBD, 0x0FBB, 0x0FB9, 0x0FB7, 0x0FB5, 0x0FB3,    0x0FB1, 0x0FAF, 0x0FAD, 0x0FAB, 0x0FA9, 0x0FA7, 0x0FA5, 0x0FA3,    0x0FA1, 0x0F9F, 0x0F9D, 0x0F9B, 0x0F99, 0x0F97, 0x0F95, 0x0F93,    0x0F91, 0x0F8F, 0x0F8D, 0x0F8B, 0x0F89, 0x0F87, 0x0F85, 0x0F83,    0x0F81, 0x0F7F, 0x0F7D, 0x0F7B, 0x0F79, 0x0F77, 0x0F75, 0x0F73,    0x0F71, 0x0F6F, 0x0F6D, 0x0F6B, 0x0F69, 0x0F67, 0x0F65, 0x0F63,    0x0F61,  },  {    0x51D0, 0x51D2, 0x51D4, 0x51D6, 0x51D8, 0x51DA, 0x51DC, 0x51DE,    0x51E0, 0x51E2, 0x51E4, 0x51E6, 0x51E8, 0x51EA, 0x51EC, 0x51EE,    0x51F0, 0x51F2, 0x51F4, 0x51F6, 0x51F8, 0x51FA, 0x51FC, 0x51FE,    0x70C0, 0x70C2, 0x70C4, 0x70C6, 0x70C8, 0x70CA, 0x70CC, 0x70CE,    0x70EC, 0x10EA, 0x3868, 0x3877, 0x0876, 0x1C35, 0x0434, 0x0A34,    0x0E1B, 0x021B, 0x051B, 0x070F, 0x010F, 0x0380, 0x0080, 0x0140,    0x01C1, 0x0041, 0x00A1, 0x00E2, 0x0022, 0x0052, 0x0072, 0x0012,    0x002A, 0x003A, 0x000A, 0x0016, 0x001E, 0x0006, 0x000C, 0x0000,    0x0004, 0x0001, 0x000D, 0x0007, 0x001F, 0x0017, 0x000B, 0x003B,    0x002B, 0x0013, 0x0073, 0x0053, 0x0023, 0x00E3, 0x00A2, 0x0042,    0x01C2, 0x0141, 0x0081, 0x0381, 0x028C, 0x010C, 0x051C, 0x021C,    0x0E1C, 0x0A35, 0x0435, 0x1C3A, 0x0877, 0x0874, 0x3869, 0x10EB,    0x70ED, 0x70CF, 0x70CD, 0x70CB, 0x70C9, 0x70C7, 0x70C5, 0x70C3,    0x70C1, 0x51FF, 0x51FD, 0x51FB, 0x51F9, 0x51F7, 0x51F5, 0x51F3,    0x51F1, 0x51EF, 0x51ED, 0x51EB, 0x51E9, 0x51E7, 0x51E5, 0x51E3,    0x51E1, 0x51DF, 0x51DD, 0x51DB, 0x51D9, 0x51D7, 0x51D5, 0x51D3,    0x51D1,  },  {    0x6F64, 0x6F66, 0x6F68, 0x6F6A, 0x6F6C, 0x6F6E, 0x6F70, 0x6F72,    0x6F74, 0x6F76, 0x6F78, 0x6F7A, 0x6F7C, 0x6F7E, 0x6F80, 0x6F82,    0x6F84, 0x6F86, 0x6F88, 0x6F8A, 0x6F8C, 0x6F8E, 0x6F90, 0x6F92,    0x6F94, 0x6F96, 0x6F98, 0x6F9A, 0x6F9C, 0x6F9E, 0x6FA0, 0x6FA2,    0x6FA4, 0x6FA6, 0x6FA8, 0x6FAA, 0x6FAC, 0x6FAE, 0x6FB0, 0x6FB2,    0x6FB4, 0x6FB6, 0x17B4, 0x37DC, 0x0BDB, 0x1BEF, 0x05EE, 0x0DF8,    0x02F8, 0x06FD, 0x017D, 0x037F, 0x00BF, 0x0040, 0x00C0, 0x0021,    0x0061, 0x0011, 0x0031, 0x0009, 0x0019, 0x0006, 0x000E, 0x0004,    0x0000, 0x0005, 0x000F, 0x0007, 0x001A, 0x000A, 0x0036, 0x0016,    0x006E, 0x002E, 0x00C1, 0x0041, 0x01BC, 0x00BC, 0x037A, 0x017A,    0x02F9, 0x0DF9, 0x05EF, 0x05EC, 0x1BD8, 0x37DD, 0x17B5, 0x6FB7,    0x6FB5, 0x6FB3, 0x6FB1, 0x6FAF, 0x6FAD, 0x6FAB, 0x6FA9, 0x6FA7,    0x6FA5, 0x6FA3, 0x6FA1, 0x6F9F, 0x6F9D, 0x6F9B, 0x6F99, 0x6F97,    0x6F95, 0x6F93, 0x6F91, 0x6F8F, 0x6F8D, 0x6F8B, 0x6F89, 0x6F87,    0x6F85, 0x6F83, 0x6F81, 0x6F7F, 0x6F7D, 0x6F7B, 0x6F79, 0x6F77,    0x6F75, 0x6F73, 0x6F71, 0x6F6F, 0x6F6D, 0x6F6B, 0x6F69, 0x6F67,    0x6F65,  },  {    0xDF54, 0xDF56, 0xDFC8, 0xDFCA, 0xDFCC, 0xDFCE, 0xDFD0, 0xDFD2,    0xDFD4, 0xDFD6, 0xDFD8, 0xDFDA, 0xDFDC, 0xDFDE, 0xDFE0, 0xDFE2,    0x0FE8, 0x2FEA, 0x6FA8, 0x6FF6, 0x07F5, 0x07F7, 0x37D2, 0x37F9,    0x03F8, 0x0BF8, 0x0BFB, 0x1BEB, 0x01FA, 0x05FA, 0x09FA, 0x0DFA,    0x0DFF, 0x00FF, 0x02FF, 0x06FB, 0x007C, 0x017C, 0x027C, 0x027F,    0x003C, 0x00BC, 0x013C, 0x01BC, 0x001C, 0x005C, 0x009C, 0x00DC,    0x000C, 0x002C, 0x004C, 0x006C, 0x0004, 0x0014, 0x0024, 0x0034,    0x0000, 0x0008, 0x0010, 0x0018, 0x001E, 0x0002, 0x0006, 0x000A,    0x000E, 0x000B, 0x0007, 0x0003, 0x001F, 0x0019, 0x0011, 0x0009,    0x0001, 0x0035, 0x0025, 0x0015, 0x0005, 0x006D, 0x004D, 0x002D,    0x000D, 0x00DD, 0x009D, 0x005D, 0x001D, 0x01BD, 0x013D, 0x00BD,    0x003D, 0x037C, 0x027D, 0x017D, 0x007D, 0x06FC, 0x04FC, 0x02FC,    0x00FC, 0x0DFB, 0x09FB, 0x05FB, 0x01FB, 0x1BF8, 0x1BE8, 0x0BF9,    0x03F9, 0x37FA, 0x37D3, 0x17F4, 0x07F6, 0x6FF7, 0x6FA9, 0x2FEB,    0x0FE9, 0xDFE3, 0xDFE1, 0xDFDF, 0xDFDD, 0xDFDB, 0xDFD9, 0xDFD7,    0xDFD5, 0xDFD3, 0xDFD1, 0xDFCF, 0xDFCD, 0xDFCB, 0xDFC9, 0xDF57,    0xDF55,  }};static const uint8_t scales_bits[SCALES_COUNT][129] = {  {    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    13, 13, 13, 13, 13, 13, 13, 13,    13, 13, 12, 11, 11, 10,  9,  8,     8,  7,  6,  6,  5,  4,  4,  3,     2,  3,  3,  4,  5,  5,  6,  7,     8,  8,  9, 10, 11, 11, 12, 13,    13, 13, 13, 13, 13, 13, 13, 13,    13, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14, 14, 14, 14, 14, 14, 14, 14,    14,  },  {    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    14, 14, 13, 12, 11, 10,  8,  7,     6,  6,  5,  5,  4,  4,  4,  3,     3,  3,  4,  4,  4,  4,  5,  6,     6,  7,  8,  9, 11, 12, 13, 14,    14, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15,  },  {    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 14, 14, 14, 13, 13, 12, 12,    12, 11, 11, 11, 10, 10,  9,  9,     9,  8,  8,  8,  7,  7,  7,  6,     6,  6,  5,  5,  5,  4,  4,  3,     3,  3,  4,  4,  5,  5,  5,  6,     6,  6,  7,  7,  7,  8,  8,  8,     9,  9,  9, 10, 10, 10, 11, 11,    12, 12, 12, 13, 13, 13, 14, 14,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15,  },  {    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 14, 14, 13, 13, 12, 12,    11, 11, 10, 10,  9,  8,  8,  7,     7,  6,  6,  5,  5,  4,  4,  3,     2,  3,  4,  4,  5,  5,  6,  6,     7,  7,  8,  8,  9,  9, 10, 10,    11, 12, 12, 12, 13, 14, 14, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15, 15, 15, 15, 15, 15, 15, 15,    15,  },  {    16, 16, 16, 16, 16, 16, 16, 16,    16, 16, 16, 16, 16, 16, 16, 16,    15, 15, 15, 15, 14, 14, 14, 14,    13, 13, 13, 13, 12, 12, 12, 12,    12, 11, 11, 11, 10, 10, 10, 10,     9,  9,  9,  9,  8,  8,  8,  8,     7,  7,  7,  7,  6,  6,  6,  6,     5,  5,  5,  5,  5,  4,  4,  4,     4,  4,  4,  4,  5,  5,  5,  5,     5,  6,  6,  6,  6,  7,  7,  7,     7,  8,  8,  8,  8,  9,  9,  9,     9, 10, 10, 10, 10, 11, 11, 11,    11, 12, 12, 12, 12, 13, 13, 13,    13, 14, 14, 14, 14, 15, 15, 15,    15, 16, 16, 16, 16, 16, 16, 16,    16, 16, 16, 16, 16, 16, 16, 16,    16,  }};static const uint16_t bitalloc_3_codes[3] ={    0x0003, 0x0000, 0x0002,};static const uint8_t bitalloc_3_bits[3] ={     2,  1,  2,};static const uint16_t bitalloc_5_codes_a[5] ={    0x000F, 0x0006, 0x0000, 0x0002, 0x000E,};static const uint16_t bitalloc_5_codes_b[5] ={    0x0007, 0x0001, 0x0002, 0x0000, 0x0006,};static const uint16_t bitalloc_5_codes_c[5] ={    0x0007, 0x0005, 0x0000, 0x0004, 0x0006,};static const uint8_t bitalloc_5_bits_a[5] ={     4,  3,  1,  2,  4,};static const uint8_t bitalloc_5_bits_b[5] ={     3,  2,  2,  2,  3,};static const uint8_t bitalloc_5_bits_c[5] ={     3,  3,  1,  3,  3,};static const uint16_t bitalloc_7_codes_a[7] ={    0x001E, 0x000E, 0x0005, 0x0000, 0x0006, 0x0004, 0x001F,};static const uint16_t bitalloc_7_codes_b[7] ={    0x0014, 0x000B, 0x0000, 0x0003, 0x0001, 0x0004, 0x0015,};static const uint16_t bitalloc_7_codes_c[7] ={    0x0000, 0x0002, 0x0001, 0x0003, 0x0002, 0x0003, 0x0001,};static const uint8_t bitalloc_7_bits_a[7] ={     5,  4,  3,  1,  3,  3,  5,};static const uint8_t bitalloc_7_bits_b[7] ={     5,  4,  2,  2,  2,  3,  5,};static const uint8_t bitalloc_7_bits_c[7] ={     4,  4,  2,  2,  2,  4,  4,};static const uint16_t bitalloc_9_codes_a[9] ={    0x0030, 0x0019, 0x0009, 0x0005, 0x0000, 0x0007, 0x000D, 0x0008,    0x0031,};static const uint16_t bitalloc_9_codes_b[9] ={    0x0018, 0x001A, 0x0002, 0x0007, 0x0002, 0x0000, 0x0003, 0x001B,    0x0019,};static const uint16_t bitalloc_9_codes_c[9] ={    0x001C, 0x000F, 0x0002, 0x0007, 0x0002, 0x0000, 0x0006, 0x0006,    0x001D,};static const uint8_t bitalloc_9_bits_a[9] ={     6,  5,  4,  3,  1,  3,  4,  4,  6,};static const uint8_t bitalloc_9_bits_b[9] ={     5,  5,  3,  3,  2,  2,  3,  5,  5,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -