jchuff.h (1285B)
1 /* 2 * jchuff.h 3 * 4 * Copyright (C) 1991-1995, Thomas G. Lane. 5 * This file is part of the Independent JPEG Group's software. 6 * For conditions of distribution and use, see the accompanying README file. 7 * 8 * This file contains declarations for Huffman entropy encoding routines 9 * that are shared between the sequential encoder (jchuff.c) and the 10 * progressive encoder (jcphuff.c). No other modules need to see these. 11 */ 12 13 /* Derived data constructed for each Huffman table */ 14 15 typedef struct { 16 unsigned int ehufco[256]; /* code for each symbol */ 17 char ehufsi[256]; /* length of code for each symbol */ 18 /* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */ 19 } c_derived_tbl; 20 21 /* Short forms of external names for systems with brain-damaged linkers. */ 22 23 #ifdef NEED_SHORT_EXTERNAL_NAMES 24 #define jpeg_make_c_derived_tbl jMkCDerived 25 #define jpeg_gen_optimal_table jGenOptTbl 26 #endif /* NEED_SHORT_EXTERNAL_NAMES */ 27 28 /* Expand a Huffman table definition into the derived format */ 29 EXTERN void jpeg_make_c_derived_tbl JPP((j_compress_ptr cinfo, 30 JHUFF_TBL * htbl, c_derived_tbl ** pdtbl)); 31 32 /* Generate an optimal table definition given the specified counts */ 33 EXTERN void jpeg_gen_optimal_table JPP((j_compress_ptr cinfo, 34 JHUFF_TBL * htbl, long freq[]));