C# Class BitMiracle.LibTiff.Classic.Internal.LZWCodec

Inheritance: CodecWithPredictor
Show file Open project: Core-Techs/TiffLibrary

Public Methods

Method Description
Cleanup ( ) : void

Cleanups the state of the codec.

Cleanup is called when codec is no longer needed (won't be used) and can be used for example to restore tag methods that were substituted.

Init ( ) : bool
LZWCodec ( Tiff tif, Compression scheme, string name ) : System
PostEncode ( ) : bool

Performs any actions after encoding required by the codec.

PostEncode is called after encoding and can be used to release any external resources needed during encoding.

PreDecode ( short plane ) : bool

Prepares the decoder part of the codec for a decoding.

PreDecode is called after TiffCodec.SetupDecode and before decoding.

PreEncode ( short plane ) : bool

Prepares the encoder part of the codec for a encoding.

PreEncode is called after TiffCodec.SetupEncode and before encoding.

predictor_decoderow ( byte buffer, int offset, int count, short plane ) : bool
predictor_decodestrip ( byte buffer, int offset, int count, short plane ) : bool
predictor_decodetile ( byte buffer, int offset, int count, short plane ) : bool
predictor_encoderow ( byte buffer, int offset, int count, short plane ) : bool
predictor_encodestrip ( byte buffer, int offset, int count, short plane ) : bool
predictor_encodetile ( byte buffer, int offset, int count, short plane ) : bool
predictor_setupdecode ( ) : bool
predictor_setupencode ( ) : bool

Private Methods

Method Description
GetNextCode ( short &code ) : void
GetNextCodeCompat ( short &code ) : void
LZWCleanup ( ) : void
LZWDecode ( byte buffer, int offset, int count, short plane ) : bool
LZWDecodeCompat ( byte buffer, int offset, int count, short plane ) : bool
LZWEncode ( byte buffer, int offset, int count, short plane ) : bool

Encode a chunk of pixels.

Uses an open addressing double hashing (no chaining) on the prefix code/next character combination. We do a variant of Knuth's algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime secondary probe. Here, the modular division first probe is gives way to a faster exclusive-or manipulation. Also do block compression with an adaptive reset, whereby the code table is cleared when the compression ratio decreases, but after the table fills. The variable-length output codes are re-sized at this point, and a CODE_CLEAR is generated for the decoder.

LZWPostEncode ( ) : bool
LZWPreDecode ( short s ) : bool
LZWPreEncode ( short s ) : bool
LZWSetupDecode ( ) : bool
LZWSetupEncode ( ) : bool
MAXCODE ( int n ) : int
NextCode ( short &_code, bool compat ) : void
PutNextCode ( int c ) : void
cl_hash ( ) : void
codeLoop ( ) : void

Method Details

Cleanup() public method

Cleanups the state of the codec.
Cleanup is called when codec is no longer needed (won't be used) and can be used for example to restore tag methods that were substituted.
public Cleanup ( ) : void
return void

Init() public method

public Init ( ) : bool
return bool

LZWCodec() public method

public LZWCodec ( Tiff tif, Compression scheme, string name ) : System
tif Tiff
scheme Compression
name string
return System

PostEncode() public method

Performs any actions after encoding required by the codec.
PostEncode is called after encoding and can be used to release any external resources needed during encoding.
public PostEncode ( ) : bool
return bool

PreDecode() public method

Prepares the decoder part of the codec for a decoding.
PreDecode is called after TiffCodec.SetupDecode and before decoding.
public PreDecode ( short plane ) : bool
plane short The zero-based sample plane index.
return bool

PreEncode() public method

Prepares the encoder part of the codec for a encoding.
PreEncode is called after TiffCodec.SetupEncode and before encoding.
public PreEncode ( short plane ) : bool
plane short The zero-based sample plane index.
return bool

predictor_decoderow() public method

public predictor_decoderow ( byte buffer, int offset, int count, short plane ) : bool
buffer byte
offset int
count int
plane short
return bool

predictor_decodestrip() public method

public predictor_decodestrip ( byte buffer, int offset, int count, short plane ) : bool
buffer byte
offset int
count int
plane short
return bool

predictor_decodetile() public method

public predictor_decodetile ( byte buffer, int offset, int count, short plane ) : bool
buffer byte
offset int
count int
plane short
return bool

predictor_encoderow() public method

public predictor_encoderow ( byte buffer, int offset, int count, short plane ) : bool
buffer byte
offset int
count int
plane short
return bool

predictor_encodestrip() public method

public predictor_encodestrip ( byte buffer, int offset, int count, short plane ) : bool
buffer byte
offset int
count int
plane short
return bool

predictor_encodetile() public method

public predictor_encodetile ( byte buffer, int offset, int count, short plane ) : bool
buffer byte
offset int
count int
plane short
return bool

predictor_setupdecode() public method

public predictor_setupdecode ( ) : bool
return bool

predictor_setupencode() public method

public predictor_setupencode ( ) : bool
return bool