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

📄 hufftables.c

📁 MPEG-4编解码的实现(包括MPEG4视音频编解码)
💻 C
📖 第 1 页 / 共 5 页
字号:
/*
 * FAAD - Freeware Advanced Audio Decoder
 * Copyright (C) 2001 Menno Bakker
 *
 * 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.1 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
 *
 * $Id: hufftables.c,v 1.6 2002/01/09 22:25:41 wmay Exp $
 */

#include "all.h"

Huffman book1[] = {
      /* idx             codeword   len  codew   x   y   v   w */
    { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
    { /*   1:              1 0000 */  5,    16,  1,  0,  0,  0 },
    { /*   2:              1 0001 */  5,    17, -1,  0,  0,  0 },
    { /*   3:              1 0010 */  5,    18,  0,  0,  0, -1 },
    { /*   4:              1 0011 */  5,    19,  0,  1,  0,  0 },
    { /*   5:              1 0100 */  5,    20,  0,  0,  0,  1 },
    { /*   6:              1 0101 */  5,    21,  0,  0, -1,  0 },
    { /*   7:              1 0110 */  5,    22,  0,  0,  1,  0 },
    { /*   8:              1 0111 */  5,    23,  0, -1,  0,  0 },
    { /*   9:            110 0000 */  7,    96,  1, -1,  0,  0 },
    { /*  10:            110 0001 */  7,    97, -1,  1,  0,  0 },
    { /*  11:            110 0010 */  7,    98,  0,  0, -1,  1 },
    { /*  12:            110 0011 */  7,    99,  0,  1, -1,  0 },
    { /*  13:            110 0100 */  7,   100,  0, -1,  1,  0 },
    { /*  14:            110 0101 */  7,   101,  0,  0,  1, -1 },
    { /*  15:            110 0110 */  7,   102,  1,  1,  0,  0 },
    { /*  16:            110 0111 */  7,   103,  0,  0, -1, -1 },
    { /*  17:            110 1000 */  7,   104, -1, -1,  0,  0 },
    { /*  18:            110 1001 */  7,   105,  0, -1, -1,  0 },
    { /*  19:            110 1010 */  7,   106,  1,  0, -1,  0 },
    { /*  20:            110 1011 */  7,   107,  0,  1,  0, -1 },
    { /*  21:            110 1100 */  7,   108, -1,  0,  1,  0 },
    { /*  22:            110 1101 */  7,   109,  0,  0,  1,  1 },
    { /*  23:            110 1110 */  7,   110,  1,  0,  1,  0 },
    { /*  24:            110 1111 */  7,   111,  0, -1,  0,  1 },
    { /*  25:            111 0000 */  7,   112,  0,  1,  1,  0 },
    { /*  26:            111 0001 */  7,   113,  0,  1,  0,  1 },
    { /*  27:            111 0010 */  7,   114, -1,  0, -1,  0 },
    { /*  28:            111 0011 */  7,   115,  1,  0,  0,  1 },
    { /*  29:            111 0100 */  7,   116, -1,  0,  0, -1 },
    { /*  30:            111 0101 */  7,   117,  1,  0,  0, -1 },
    { /*  31:            111 0110 */  7,   118, -1,  0,  0,  1 },
    { /*  32:            111 0111 */  7,   119,  0, -1,  0, -1 },
    { /*  33:         1 1110 0000 */  9,   480,  1,  1, -1,  0 },
    { /*  34:         1 1110 0001 */  9,   481, -1,  1, -1,  0 },
    { /*  35:         1 1110 0010 */  9,   482,  1, -1,  1,  0 },
    { /*  36:         1 1110 0011 */  9,   483,  0,  1,  1, -1 },
    { /*  37:         1 1110 0100 */  9,   484,  0,  1, -1,  1 },
    { /*  38:         1 1110 0101 */  9,   485,  0, -1,  1,  1 },
    { /*  39:         1 1110 0110 */  9,   486,  0, -1,  1, -1 },
    { /*  40:         1 1110 0111 */  9,   487,  1, -1, -1,  0 },
    { /*  41:         1 1110 1000 */  9,   488,  1,  0, -1,  1 },
    { /*  42:         1 1110 1001 */  9,   489,  0,  1, -1, -1 },
    { /*  43:         1 1110 1010 */  9,   490, -1,  1,  1,  0 },
    { /*  44:         1 1110 1011 */  9,   491, -1,  0,  1, -1 },
    { /*  45:         1 1110 1100 */  9,   492, -1, -1,  1,  0 },
    { /*  46:         1 1110 1101 */  9,   493,  0, -1, -1,  1 },
    { /*  47:         1 1110 1110 */  9,   494,  1, -1,  0,  1 },
    { /*  48:         1 1110 1111 */  9,   495,  1, -1,  0, -1 },
    { /*  49:         1 1111 0000 */  9,   496, -1,  1,  0, -1 },
    { /*  50:         1 1111 0001 */  9,   497, -1, -1, -1,  0 },
    { /*  51:         1 1111 0010 */  9,   498,  0, -1, -1, -1 },
    { /*  52:         1 1111 0011 */  9,   499,  0,  1,  1,  1 },
    { /*  53:         1 1111 0100 */  9,   500,  1,  0,  1, -1 },
    { /*  54:         1 1111 0101 */  9,   501,  1,  1,  0,  1 },
    { /*  55:         1 1111 0110 */  9,   502, -1,  1,  0,  1 },
    { /*  56:         1 1111 0111 */  9,   503,  1,  1,  1,  0 },
    { /*  57:        11 1111 0000 */ 10,  1008, -1, -1,  0,  1 },
    { /*  58:        11 1111 0001 */ 10,  1009, -1,  0, -1, -1 },
    { /*  59:        11 1111 0010 */ 10,  1010,  1,  1,  0, -1 },
    { /*  60:        11 1111 0011 */ 10,  1011,  1,  0, -1, -1 },
    { /*  61:        11 1111 0100 */ 10,  1012, -1,  0, -1,  1 },
    { /*  62:        11 1111 0101 */ 10,  1013, -1, -1,  0, -1 },
    { /*  63:        11 1111 0110 */ 10,  1014, -1,  0,  1,  1 },
    { /*  64:        11 1111 0111 */ 10,  1015,  1,  0,  1,  1 },
    { /*  65:       111 1111 0000 */ 11,  2032,  1, -1,  1, -1 },
    { /*  66:       111 1111 0001 */ 11,  2033, -1,  1, -1,  1 },
    { /*  67:       111 1111 0010 */ 11,  2034, -1,  1,  1, -1 },
    { /*  68:       111 1111 0011 */ 11,  2035,  1, -1, -1,  1 },
    { /*  69:       111 1111 0100 */ 11,  2036,  1,  1,  1,  1 },
    { /*  70:       111 1111 0101 */ 11,  2037, -1, -1,  1,  1 },
    { /*  71:       111 1111 0110 */ 11,  2038,  1,  1, -1, -1 },
    { /*  72:       111 1111 0111 */ 11,  2039, -1, -1,  1, -1 },
    { /*  73:       111 1111 1000 */ 11,  2040, -1, -1, -1, -1 },
    { /*  74:       111 1111 1001 */ 11,  2041,  1,  1, -1,  1 },
    { /*  75:       111 1111 1010 */ 11,  2042,  1, -1,  1,  1 },
    { /*  76:       111 1111 1011 */ 11,  2043, -1,  1,  1,  1 },
    { /*  77:       111 1111 1100 */ 11,  2044, -1,  1, -1, -1 },
    { /*  78:       111 1111 1101 */ 11,  2045, -1, -1, -1,  1 },
    { /*  79:       111 1111 1110 */ 11,  2046,  1, -1, -1, -1 },
    { /*  80:       111 1111 1111 */ 11,  2047,  1,  1,  1, -1 }
};

Huffman book2[] = {
      /* idx             codeword   len  codew   x   y   v   w */
    { /*   0:                 000 */  3,     0,  0,  0,  0,  0 },
    { /*   1:                0010 */  4,     2,  1,  0,  0,  0 },
    { /*   2:              0 0110 */  5,     6, -1,  0,  0,  0 },
    { /*   3:              0 0111 */  5,     7,  0,  0,  0,  1 },
    { /*   4:              0 1000 */  5,     8,  0,  0, -1,  0 },
    { /*   5:              0 1001 */  5,     9,  0,  0,  0, -1 },
    { /*   6:              0 1010 */  5,    10,  0, -1,  0,  0 },
    { /*   7:              0 1011 */  5,    11,  0,  0,  1,  0 },
    { /*   8:              0 1100 */  5,    12,  0,  1,  0,  0 },
    { /*   9:             01 1010 */  6,    26,  0, -1,  1,  0 },
    { /*  10:             01 1011 */  6,    27, -1,  1,  0,  0 },
    { /*  11:             01 1100 */  6,    28,  0,  1, -1,  0 },
    { /*  12:             01 1101 */  6,    29,  0,  0,  1, -1 },
    { /*  13:             01 1110 */  6,    30,  0,  1,  0, -1 },
    { /*  14:             01 1111 */  6,    31,  0,  0, -1,  1 },
    { /*  15:             10 0000 */  6,    32, -1,  0,  0, -1 },
    { /*  16:             10 0001 */  6,    33,  1, -1,  0,  0 },
    { /*  17:             10 0010 */  6,    34,  1,  0, -1,  0 },
    { /*  18:             10 0011 */  6,    35, -1, -1,  0,  0 },
    { /*  19:             10 0100 */  6,    36,  0,  0, -1, -1 },
    { /*  20:             10 0101 */  6,    37,  1,  0,  1,  0 },
    { /*  21:             10 0110 */  6,    38,  1,  0,  0,  1 },
    { /*  22:             10 0111 */  6,    39,  0, -1,  0,  1 },
    { /*  23:             10 1000 */  6,    40, -1,  0,  1,  0 },
    { /*  24:             10 1001 */  6,    41,  0,  1,  0,  1 },
    { /*  25:             10 1010 */  6,    42,  0, -1, -1,  0 },
    { /*  26:             10 1011 */  6,    43, -1,  0,  0,  1 },
    { /*  27:             10 1100 */  6,    44,  0, -1,  0, -1 },
    { /*  28:             10 1101 */  6,    45, -1,  0, -1,  0 },
    { /*  29:             10 1110 */  6,    46,  1,  1,  0,  0 },
    { /*  30:             10 1111 */  6,    47,  0,  1,  1,  0 },
    { /*  31:             11 0000 */  6,    48,  0,  0,  1,  1 },
    { /*  32:             11 0001 */  6,    49,  1,  0,  0, -1 },
    { /*  33:            110 0100 */  7,   100,  0,  1, -1,  1 },
    { /*  34:            110 0101 */  7,   101,  1,  0, -1,  1 },
    { /*  35:            110 0110 */  7,   102, -1,  1, -1,  0 },
    { /*  36:            110 0111 */  7,   103,  0, -1,  1, -1 },
    { /*  37:            110 1000 */  7,   104,  1, -1,  1,  0 },
    { /*  38:            110 1001 */  7,   105,  1,  1,  0, -1 },
    { /*  39:            110 1010 */  7,   106,  1,  0,  1,  1 },
    { /*  40:            110 1011 */  7,   107, -1,  1,  1,  0 },
    { /*  41:            110 1100 */  7,   108,  0, -1, -1,  1 },
    { /*  42:            110 1101 */  7,   109,  1,  1,  1,  0 },
    { /*  43:            110 1110 */  7,   110, -1,  0,  1, -1 },
    { /*  44:            110 1111 */  7,   111, -1, -1, -1,  0 },
    { /*  45:            111 0000 */  7,   112, -1,  0, -1,  1 },
    { /*  46:            111 0001 */  7,   113,  1, -1, -1,  0 },
    { /*  47:            111 0010 */  7,   114,  1,  1, -1,  0 },
    { /*  48:           1110 0110 */  8,   230,  1, -1,  0,  1 },
    { /*  49:           1110 0111 */  8,   231, -1,  1,  0, -1 },
    { /*  50:           1110 1000 */  8,   232, -1, -1,  1,  0 },
    { /*  51:           1110 1001 */  8,   233, -1,  0,  1,  1 },
    { /*  52:           1110 1010 */  8,   234, -1, -1,  0,  1 },
    { /*  53:           1110 1011 */  8,   235, -1, -1,  0, -1 },
    { /*  54:           1110 1100 */  8,   236,  0, -1, -1, -1 },
    { /*  55:           1110 1101 */  8,   237,  1,  0,  1, -1 },
    { /*  56:           1110 1110 */  8,   238,  1,  0, -1, -1 },
    { /*  57:           1110 1111 */  8,   239,  0,  1, -1, -1 },
    { /*  58:           1111 0000 */  8,   240,  0,  1,  1,  1 },
    { /*  59:           1111 0001 */  8,   241, -1,  1,  0,  1 },
    { /*  60:           1111 0010 */  8,   242, -1,  0, -1, -1 },
    { /*  61:           1111 0011 */  8,   243,  0,  1,  1, -1 },
    { /*  62:           1111 0100 */  8,   244,  1, -1,  0, -1 },
    { /*  63:           1111 0101 */  8,   245,  0, -1,  1,  1 },
    { /*  64:           1111 0110 */  8,   246,  1,  1,  0,  1 },
    { /*  65:           1111 0111 */  8,   247,  1, -1,  1, -1 },
    { /*  66:           1111 1000 */  8,   248, -1,  1, -1,  1 },
    { /*  67:         1 1111 0010 */  9,   498,  1, -1, -1,  1 },
    { /*  68:         1 1111 0011 */  9,   499, -1, -1, -1, -1 },
    { /*  69:         1 1111 0100 */  9,   500, -1,  1,  1, -1 },
    { /*  70:         1 1111 0101 */  9,   501, -1,  1,  1,  1 },
    { /*  71:         1 1111 0110 */  9,   502,  1,  1,  1,  1 },
    { /*  72:         1 1111 0111 */  9,   503, -1, -1,  1, -1 },
    { /*  73:         1 1111 1000 */  9,   504,  1, -1,  1,  1 },
    { /*  74:         1 1111 1001 */  9,   505, -1,  1, -1, -1 },
    { /*  75:         1 1111 1010 */  9,   506, -1, -1,  1,  1 },
    { /*  76:         1 1111 1011 */  9,   507,  1,  1, -1, -1 },
    { /*  77:         1 1111 1100 */  9,   508,  1, -1, -1, -1 },
    { /*  78:         1 1111 1101 */  9,   509, -1, -1, -1,  1 },
    { /*  79:         1 1111 1110 */  9,   510,  1,  1, -1,  1 },
    { /*  80:         1 1111 1111 */  9,   511,  1,  1,  1, -1 }
};

Huffman book3[] = {
      /* idx             codeword   len  codew   x   y   v   w */
    { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
    { /*   1:                1000 */  4,     8,  1,  0,  0,  0 },
    { /*   2:                1001 */  4,     9,  0,  0,  0,  1 },
    { /*   3:                1010 */  4,    10,  0,  1,  0,  0 },
    { /*   4:                1011 */  4,    11,  0,  0,  1,  0 },
    { /*   5:              1 1000 */  5,    24,  1,  1,  0,  0 },
    { /*   6:              1 1001 */  5,    25,  0,  0,  1,  1 },
    { /*   7:             11 0100 */  6,    52,  0,  1,  1,  0 },

⌨️ 快捷键说明

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