45 lines
1.7 KiB
C
45 lines
1.7 KiB
C
|
|
// defdata.h
|
|
|
|
// Data specific to deflate
|
|
|
|
// BUGBUG Some of these USHORTs could be made into ULONGs for speed-of-access. The disadvantage would
|
|
// be greater memory/cache usage. g_StaticDistanceTreeCode[] could be made into a BYTE array,
|
|
// since the codes are 5 bits. Changes of this nature will require various code changes elsewhere.
|
|
|
|
#ifdef DECLARE_DATA
|
|
|
|
// lookup tables for finding the slot number of a match length or distance
|
|
BYTE g_LengthLookup[256];
|
|
BYTE g_DistLookup[512];
|
|
|
|
// literal codes for static blocks
|
|
BYTE g_StaticLiteralTreeLength[MAX_LITERAL_TREE_ELEMENTS];
|
|
USHORT g_StaticLiteralTreeCode[MAX_LITERAL_TREE_ELEMENTS];
|
|
|
|
// distance codes for static blocks
|
|
// note: g_StaticDistanceTreeLength == 5 for all distances, which is why we don't have a table for that
|
|
USHORT g_StaticDistanceTreeCode[MAX_DIST_TREE_ELEMENTS];
|
|
|
|
// cached tree structure output for fast encoder
|
|
BYTE g_FastEncoderTreeStructureData[MAX_TREE_DATA_SIZE];
|
|
int g_FastEncoderTreeLength; // # bytes in g_FastEncoderTreeStructureData
|
|
ULONG g_FastEncoderPostTreeBitbuf; // final value of bitbuf
|
|
int g_FastEncoderPostTreeBitcount; // final value of bitcount
|
|
|
|
#else /* !DECLARE_DATA */
|
|
|
|
extern BYTE g_LengthLookup[256];
|
|
extern BYTE g_DistLookup[512];
|
|
|
|
extern BYTE g_StaticLiteralTreeLength[MAX_LITERAL_TREE_ELEMENTS];
|
|
extern USHORT g_StaticLiteralTreeCode[MAX_LITERAL_TREE_ELEMENTS];
|
|
extern USHORT g_StaticDistanceTreeCode[MAX_DIST_TREE_ELEMENTS];
|
|
|
|
extern BYTE g_FastEncoderTreeStructureData[MAX_TREE_DATA_SIZE];
|
|
extern int g_FastEncoderTreeLength;
|
|
extern ULONG g_FastEncoderPostTreeBitbuf;
|
|
extern int g_FastEncoderPostTreeBitcount;
|
|
|
|
#endif /* !DECLARE_DATA */
|