54 lines
1.1 KiB
C
54 lines
1.1 KiB
C
/*
|
|
* decdefs.h
|
|
*
|
|
* Structures and definitions used by the decoder
|
|
*/
|
|
|
|
|
|
typedef enum
|
|
{
|
|
DEC_STATE_UNKNOWN,
|
|
DEC_STATE_START_NEW_BLOCK,
|
|
DEC_STATE_DECODING_DATA
|
|
} decoder_state;
|
|
|
|
|
|
/*
|
|
* Size of uncompressed data chunks
|
|
*/
|
|
#define CHUNK_SIZE 32768
|
|
|
|
|
|
/*
|
|
* Main tree decoding table parameters
|
|
*/
|
|
|
|
/* # elements in main tree */
|
|
#define MAIN_TREE_ELEMENTS (NUM_CHARS+(context->dec_num_position_slots<<NL_SHIFT))
|
|
|
|
/*
|
|
* Decoding table size allows a direct lookup on the first
|
|
* MAIN_TREE_TABLE_BITS bits of the code (max len 16).
|
|
* Any potential remaining bits are decoded using left/right.
|
|
*/
|
|
#define MAIN_TREE_TABLE_BITS 10
|
|
|
|
/*
|
|
* Secondary length tree decoding table parameters
|
|
* Decoding table size allows a direct lookup on the first
|
|
* SECONDARY_LEN_TREE_TABLE_BITS of the code (max len 16).
|
|
* Any potential remaining bits are decoded using left/right.
|
|
*/
|
|
#define SECONDARY_LEN_TREE_TABLE_BITS 8
|
|
|
|
/*
|
|
* Aligned offset tree decoding table parameters
|
|
*/
|
|
#define ALIGNED_NUM_ELEMENTS 8
|
|
|
|
/*
|
|
* Must be 7, since we do not use left/right for this tree;
|
|
* everything is decoded in one lookup.
|
|
*/
|
|
#define ALIGNED_TABLE_BITS 7
|