The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Compress::LZW::Compressor - Scaling LZW compressor class

VERSION

version 0.03

SYNOPSIS

 use Compress::LZW::Compressor;
  
 my $c   = Compress::LZW::Compressor->new();
 my $lzw = $c->compress( $some_data );

ATTRIBUTES

block_mode

Default: 1

Block mode is a feature added to LZW by compress(1). Once the maximum code size has been reached, if the compression ratio falls (NYI) the code table and code size can be reset, and a code indicating this reset is embedded in the output stream.

May be 0 or 1.

lsb_first

Default: Detected through Config.pm / byteorder

True if bit 0 is the least significant in this environment. Not well-tested, but intended to change some internal behavior to match compress(1) output on MSB-zero platforms.

May be 0 or 1.

max_code_size

Default: 16

Maximum size in bits that code output may scale up to. This value is stored in byte 3 of the compressed output so the decompressor can also stop at the same size automatically. Maximum code size implies a maximum code table size of 2 ** max_code_size, which can be emptied and restarted mid-stream in "block_mode".

May be between 9 and 31, inclusive. The default of 16 is the largest supported by compress(1), but Compress::LZW can handle up to 31 bits.

init_code_size

Default: 9

After the first three header bytes, all output codes begin at this size. This is not stored in the resulting stream, so if you alter this from default you must supply the same value to the decompressor, and you lose compatibility with compress(1), which only allowed specifying "max_code_size".

May be between 9 and "max_code_size", inclusive.

METHODS

compress ( $input )

Compresses $input with the current settings and returns the result.

reset ()

Resets the compressor state for another round of compression. Automatically called at the beginning of compress().

Resets the following internal state: Code table, next code number, code size, output buffer, buffer position

AUTHOR

Meredith Howard <mhoward@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Meredith Howard.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.