/*
 * Copyright (c) 1995 The Regents of the University of California.
 * All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose, without fee, and without written agreement is
 * hereby granted, provided that the above copyright notice and the following
 * two paragraphs appear in all copies of this software.
 *
 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 */

/*
 *  $Header: /n/charlie-brown/project/mm/mpeg/mpeg_dist/mpeg_encode/RCS/huff.c,v 1.6 1995/01/19 23:07:39 eyhung Exp $
 */

/*
 *  THIS FILE WAS ORIGINALLY MACHINE GENERATED
 */
#include "general.h"
#include "mtypes.h"
#include "huff.h"

int huff_maxlevel[32] = { 41, 19, 6, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3,
                           3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
                           2, 2, 2 };

uint32 huff_table0[41] = { 0x0, 0x6, 0x8, 0xa, 0xc, 0x4c, 0x42, 0x14,
                           0x3a, 0x30, 0x26, 0x20, 0x34, 0x32, 0x30,
                           0x2e, 0x3e, 0x3c, 0x3a, 0x38, 0x36, 0x34,
                           0x32, 0x30, 0x2e, 0x2c, 0x2a, 0x28, 0x26,
                           0x24, 0x22, 0x20, 0x30, 0x2e, 0x2c, 0x2a,
                           0x28, 0x26, 0x24, 0x22, 0x20 };

int huff_bits0[41] = { 0, 3, 5, 6, 8, 9, 9, 11, 13, 13, 13, 13, 14, 14,
                      14, 14, 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 };

uint32 huff_table1[19] = { 0x0, 0x6, 0xc, 0x4a, 0x18, 0x36, 0x2c,
                          0x2a, 0x3e, 0x3c, 0x3a, 0x38, 0x36, 0x34,
                          0x32, 0x26, 0x24, 0x22, 0x20 };

int huff_bits1[19] = { 0, 4, 7, 9, 11, 13, 14, 14, 16, 16, 16, 16, 16,
                      16, 16, 17, 17, 17, 17 };

uint32 huff_table2[6] = { 0x0, 0xa, 0x8, 0x16, 0x28, 0x28 };
int huff_bits2[6] = { 0, 5, 8, 11, 13, 14 };

uint32 huff_table3[5] = { 0x0, 0xe, 0x48, 0x38, 0x26 };
int huff_bits3[5] = { 0, 6, 9, 13, 14 };

uint32 huff_table4[4] = { 0x0, 0xc, 0x1e, 0x24 };
int huff_bits4[4] = { 0, 6, 11, 13 };

uint32 huff_table5[4] = { 0x0, 0xe, 0x12, 0x24 };
int huff_bits5[4] = { 0, 7, 11, 14 };

uint32 huff_table6[4] = { 0x0, 0xa, 0x3c, 0x28 };
int huff_bits6[4] = { 0, 7, 13, 17 };

uint32 huff_table7[3] = { 0x0, 0x8, 0x2a };
int huff_bits7[3] = { 0, 7, 13 };

uint32 huff_table8[3] = { 0x0, 0xe, 0x22 };
int huff_bits8[3] = { 0, 8, 13 };

uint32 huff_table9[3] = { 0x0, 0xa, 0x22 };
int huff_bits9[3] = { 0, 8, 14 };

uint32 huff_table10[3] = { 0x0, 0x4e, 0x20 };
int huff_bits10[3] = { 0, 9, 14 };

uint32 huff_table11[3] = { 0x0, 0x46, 0x34 };
int huff_bits11[3] = { 0, 9, 17 };

uint32 huff_table12[3] = { 0x0, 0x44, 0x32 };
int huff_bits12[3] = { 0, 9, 17 };

uint32 huff_table13[3] = { 0x0, 0x40, 0x30 };
int huff_bits13[3] = { 0, 9, 17 };

uint32 huff_table14[3] = { 0x0, 0x1c, 0x2e };
int huff_bits14[3] = { 0, 11, 17 };

uint32 huff_table15[3] = { 0x0, 0x1a, 0x2c };
int huff_bits15[3] = { 0, 11, 17 };

uint32 huff_table16[3] = { 0x0, 0x10, 0x2a };
int huff_bits16[3] = { 0, 11, 17 };

uint32 huff_table17[2] = { 0x0, 0x3e };
int huff_bits17[2] = { 0, 13 };

uint32 huff_table18[2] = { 0x0, 0x34 };
int huff_bits18[2] = { 0, 13 };

uint32 huff_table19[2] = { 0x0, 0x32 };
int huff_bits19[2] = { 0, 13 };

uint32 huff_table20[2] = { 0x0, 0x2e };
int huff_bits20[2] = { 0, 13 };

uint32 huff_table21[2] = { 0x0, 0x2c };
int huff_bits21[2] = { 0, 13 };

uint32 huff_table22[2] = { 0x0, 0x3e };
int huff_bits22[2] = { 0, 14 };

uint32 huff_table23[2] = { 0x0, 0x3c };
int huff_bits23[2] = { 0, 14 };

uint32 huff_table24[2] = { 0x0, 0x3a };
int huff_bits24[2] = { 0, 14 };

uint32 huff_table25[2] = { 0x0, 0x38 };
int huff_bits25[2] = { 0, 14 };

uint32 huff_table26[2] = { 0x0, 0x36 };
int huff_bits26[2] = { 0, 14 };

uint32 huff_table27[2] = { 0x0, 0x3e };
int huff_bits27[2] = { 0, 17 };

uint32 huff_table28[2] = { 0x0, 0x3c };
int huff_bits28[2] = { 0, 17 };

uint32 huff_table29[2] = { 0x0, 0x3a };
int huff_bits29[2] = { 0, 17 };

uint32 huff_table30[2] = { 0x0, 0x38 };
int huff_bits30[2] = { 0, 17 };

uint32 huff_table31[2] = { 0x0, 0x36 };
int huff_bits31[2] = { 0, 17 };

uint32 *huff_table[32] = { huff_table0, huff_table1, huff_table2,
    huff_table3, huff_table4, huff_table5, huff_table6, huff_table7,
    huff_table8, huff_table9, huff_table10, huff_table11, huff_table12,
    huff_table13, huff_table14, huff_table15, huff_table16, huff_table17,
    huff_table18, huff_table19, huff_table20, huff_table21, huff_table22,
    huff_table23, huff_table24, huff_table25, huff_table26, huff_table27,
    huff_table28, huff_table29, huff_table30, huff_table31 };

int *huff_bits[32] = { huff_bits0, huff_bits1, huff_bits2, huff_bits3,
    huff_bits4, huff_bits5, huff_bits6, huff_bits7, huff_bits8, huff_bits9,
    huff_bits10, huff_bits11, huff_bits12, huff_bits13, huff_bits14,
    huff_bits15, huff_bits16, huff_bits17, huff_bits18, huff_bits19,
    huff_bits20, huff_bits21, huff_bits22, huff_bits23, huff_bits24,
    huff_bits25, huff_bits26, huff_bits27, huff_bits28, huff_bits29,
    huff_bits30, huff_bits31 };
