"L. Spiro Engine"
|
00001 00016 #ifndef __LSC_LZWENCODER_H__ 00017 #define __LSC_LZWENCODER_H__ 00018 00019 #include "../LSCCompressionLib.h" 00020 #include "../BitStream/LSCBitStream.h" 00021 #include "LSCLzwEncodingDict.h" 00022 00023 namespace lsc { 00024 00031 class CLzwEncoder { 00032 public : 00033 // == Various constructors. 00034 LSE_CALLCTOR CLzwEncoder(); 00035 00036 00037 // == Functions. 00043 LSVOID LSE_CALL SetAllocator( CStdAllocator * _psaAllocator ); 00044 00065 LSUINT32 LSE_CALL Encode( const LSUINT8 * _pui8Bytes, LSUINT64 _ui64Size, 00066 LSUINT32 _ui32DictionaryStartingSize, LSUINT32 _ui32MaxBits, 00067 CBitStream &_bsStream, LSBOOL _bResetDictionary = false, LSUINT32 _ui32PrevBits = 0UL, LSUINT32 _ui32MaxSize = ~0UL ); 00068 00076 LSBOOL LSE_CALL EndStream( CBitStream &_bsStream ) const; 00077 00078 00079 protected : 00080 // == Members. 00084 CLzwEncodingDict m_ledDict; 00085 }; 00086 00087 00088 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00089 // DEFINITIONS 00090 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00091 00092 00093 } // namespace lsc 00094 00095 #endif // __LSC_LZWENCODER_H__