OFFIS DCMTK
Version 3.6.0
Main Page
Related Pages
Classes
Files
File List
File Members
dcmjpeg
libijg8
jchuff8.h
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
/* The legal range of a spatial difference is
26
* -32767 .. +32768.
27
* Hence the magnitude should always fit in 16 bits.
28
*/
29
30
#define MAX_DIFF_BITS 16
31
32
/* Derived data constructed for each Huffman table */
33
34
typedef
struct
{
35
unsigned
int
ehufco[256];
/* code for each symbol */
36
char
ehufsi[256];
/* length of code for each symbol */
37
/* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */
38
}
c_derived_tbl
;
39
40
/* Short forms of external names for systems with brain-damaged linkers. */
41
42
#ifdef NEED_SHORT_EXTERNAL_NAMES
43
#define jpeg_make_c_derived_tbl jpeg8_make_c_derived_tbl
44
#define jpeg_gen_optimal_table jpeg8_gen_optimal_table
45
#endif
/* NEED_SHORT_EXTERNAL_NAMES */
46
47
/* Expand a Huffman table definition into the derived format */
48
EXTERN(
void
) jpeg_make_c_derived_tbl
49
JPP((
j_compress_ptr
cinfo,
boolean
isDC,
int
tblno,
50
c_derived_tbl
** pdtbl));
51
52
/* Generate an optimal table definition given the specified counts */
53
EXTERN(
void
) jpeg_gen_optimal_table
54
JPP((
j_compress_ptr
cinfo,
JHUFF_TBL
* htbl,
long
freq[]));
Generated on Thu Dec 20 2012 for
OFFIS DCMTK
Version 3.6.0 by
Doxygen
1.8.2