about summary refs log tree commit diff
path: root/converter/ppm/ppmtompeg/huff.c
blob: 565a2f0e9ab0523cbe767404ea99b48a6a2d6dc4 (plain) (blame)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/*
 * 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 };