source: trunk/third/jpeg/jchuff.h @ 15227

Revision 15227, 1.5 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15226, which included commits to RCS files with non-trunk default branches.
Line 
1/*
2 * jchuff.h
3 *
4 * Copyright (C) 1991-1997, 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/* The legal range of a DCT coefficient is
14 *  -1024 .. +1023  for 8-bit data;
15 * -16384 .. +16383 for 12-bit data.
16 * Hence the magnitude should always fit in 10 or 14 bits respectively.
17 */
18
19#if BITS_IN_JSAMPLE == 8
20#define MAX_COEF_BITS 10
21#else
22#define MAX_COEF_BITS 14
23#endif
24
25/* Derived data constructed for each Huffman table */
26
27typedef struct {
28  unsigned int ehufco[256];     /* code for each symbol */
29  char ehufsi[256];             /* length of code for each symbol */
30  /* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */
31} c_derived_tbl;
32
33/* Short forms of external names for systems with brain-damaged linkers. */
34
35#ifdef NEED_SHORT_EXTERNAL_NAMES
36#define jpeg_make_c_derived_tbl jMkCDerived
37#define jpeg_gen_optimal_table  jGenOptTbl
38#endif /* NEED_SHORT_EXTERNAL_NAMES */
39
40/* Expand a Huffman table definition into the derived format */
41EXTERN(void) jpeg_make_c_derived_tbl
42        JPP((j_compress_ptr cinfo, boolean isDC, int tblno,
43             c_derived_tbl ** pdtbl));
44
45/* Generate an optimal table definition given the specified counts */
46EXTERN(void) jpeg_gen_optimal_table
47        JPP((j_compress_ptr cinfo, JHUFF_TBL * htbl, long freq[]));
Note: See TracBrowser for help on using the repository browser.