diff options
Diffstat (limited to 'pstoraster/shcgen.h')
-rw-r--r-- | pstoraster/shcgen.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pstoraster/shcgen.h b/pstoraster/shcgen.h new file mode 100644 index 000000000..dcc9f351b --- /dev/null +++ b/pstoraster/shcgen.h @@ -0,0 +1,55 @@ +/* Copyright (C) 1994 Aladdin Enterprises. All rights reserved. + + This file is part of GNU Ghostscript. + + GNU Ghostscript is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY. No author or distributor accepts responsibility to + anyone for the consequences of using it or for whether it serves any + particular purpose or works at all, unless he says so in writing. Refer to + the GNU General Public License for full details. + + Everyone is granted permission to copy, modify and redistribute GNU + Ghostscript, but only under the conditions described in the GNU General + Public License. A copy of this license is supposed to have been given to + you along with GNU Ghostscript so you can know your rights and + responsibilities. It should be in a file named COPYING. Among other + things, the copyright notice and this notice must be preserved on all + copies. + + Aladdin Enterprises is not affiliated with the Free Software Foundation or + the GNU Project. GNU Ghostscript, as distributed by Aladdin Enterprises, + does not depend on any other GNU software. +*/ + +/* shcgen.h */ +/* Interface to shcgen.c */ +/* Requires shc.h */ + +/* Compute an optimal Huffman code from an input data set. */ +/* The client must have set all the elements of *def. */ +/* The definition is guaranteed to be well-behaved. */ +int hc_compute(P3(hc_definition *def, const long *freqs, gs_memory_t *mem)); + +/* Convert a definition to a byte string. */ +/* The caller must provide the byte string, of length def->num_values. */ +/* Assume (do not check) that the definition is well-behaved. */ +/* Return the actual length of the string. */ +int hc_bytes_from_definition(P2(byte *dbytes, const hc_definition *def)); + +/* Extract num_counts and num_values from a byte string. */ +void hc_sizes_from_bytes(P3(hc_definition *def, const byte *dbytes, int num_bytes)); + +/* Convert a byte string back to a definition. */ +/* The caller must initialize *def, including allocating counts and values. */ +void hc_definition_from_bytes(P2(hc_definition *def, const byte *dbytes)); + +/* Generate the encoding table from the definition. */ +/* The size of the encode array is def->num_values. */ +void hc_make_encoding(P2(hce_code *encode, const hc_definition *def)); + +/* Calculate the size of the decoding table. */ +uint hc_sizeof_decoding(P2(const hc_definition *def, int initial_bits)); + +/* Generate the decoding tables. */ +void hc_make_decoding(P3(hcd_code *decode, const hc_definition *def, + int initial_bits)); |