Referring to https://github.com/libjpeg-turbo/libjpeg-turbo/issues/402#issuecomment-768348440 and https://github.com/libjpeg-turbo/libjpeg-turbo/issues/402#issuecomment-770221584 Ken Murchison clarified that it was his intent to release the lossless JPEG patch under the IJG License and that adding his name to the copyright headers would be sufficient to acknowledge that any derivatives are based on his work.
57 lines
1.8 KiB
C
57 lines
1.8 KiB
C
/*
|
|
* jchuff.h
|
|
*
|
|
* This file was part of the Independent JPEG Group's software:
|
|
* Copyright (C) 1991-1997, Thomas G. Lane.
|
|
* Lossless JPEG Modifications:
|
|
* Copyright (C) 1999, Ken Murchison.
|
|
* For conditions of distribution and use, see the accompanying README file.
|
|
*
|
|
* This file contains declarations for Huffman entropy encoding routines
|
|
* that are shared between the sequential encoder (jchuff.c) and the
|
|
* progressive encoder (jcphuff.c). No other modules need to see these.
|
|
*/
|
|
|
|
/* The legal range of a DCT coefficient is
|
|
* -1024 .. +1023 for 8-bit data;
|
|
* -16384 .. +16383 for 12-bit data.
|
|
* Hence the magnitude should always fit in 10 or 14 bits respectively.
|
|
*/
|
|
|
|
#if BITS_IN_JSAMPLE == 8
|
|
#define MAX_COEF_BITS 10
|
|
#else
|
|
#define MAX_COEF_BITS 14
|
|
#endif
|
|
|
|
/* The legal range of a spatial difference is
|
|
* -32767 .. +32768.
|
|
* Hence the magnitude should always fit in 16 bits.
|
|
*/
|
|
|
|
#define MAX_DIFF_BITS 16
|
|
|
|
/* Derived data constructed for each Huffman table */
|
|
|
|
typedef struct {
|
|
unsigned int ehufco[256]; /* code for each symbol */
|
|
char ehufsi[256]; /* length of code for each symbol */
|
|
/* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */
|
|
} c_derived_tbl;
|
|
|
|
/* Short forms of external names for systems with brain-damaged linkers. */
|
|
|
|
#ifdef NEED_SHORT_EXTERNAL_NAMES
|
|
#define jpeg_make_c_derived_tbl jMkCDerived
|
|
#define jpeg_gen_optimal_table jGenOptTbl
|
|
#endif /* NEED_SHORT_EXTERNAL_NAMES */
|
|
|
|
/* Expand a Huffman table definition into the derived format */
|
|
EXTERN(void) jpeg_make_c_derived_tbl
|
|
JPP((j_compress_ptr cinfo, boolean isDC, int tblno,
|
|
c_derived_tbl ** pdtbl));
|
|
|
|
/* Generate an optimal table definition given the specified counts */
|
|
EXTERN(void) jpeg_gen_optimal_table
|
|
JPP((j_compress_ptr cinfo, JHUFF_TBL * htbl, long freq[]));
|