Eric Waters > Compress-LZW-Progressive > Compress::LZW::Progressive

Download:
Compress-LZW-Progressive-0.102.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.102   Source  

NAME ^

Compress::LZW::Progressive - Progressive LZW-like compression

SYNOPSIS ^

  use Compress::LZW::Progressive;

  my $codec = Compress::LZW::Progressive->new();

  my $compressed = $codec->compress($data);

DESCRIPTION ^

This module implements a progressive LZW-like compression technique. The progressive nature means that, in general, the more times you call $codec->compress(), the more efficient the codec will get (more highly compressed the data will be).

CUSTOM LZW ^

The codec is LZW-like because it has the following differences with Compress::LZW:

- Compressor can request the decompressor to delete a certain number of least frequently used codes - Stream will have a end_segment codeword at the end of a segment - Number of bits used is predefined, and cannot change.

USAGE ^

new (...)

Creates a new codec for compressing and/or decompressing

reset ($which)

Reset the state of the compressor/decompressor. If $which is either 'compress' or 'decompress', it'll only reset that part. Otherwise, it'll reset both.

compress ($str)

decompress ($str)

Compress or decompress the string given and return the (de)compressed data.

stats ($show_phrases)

Prints efficiency statistics: how compressed the data is, how many code words used, how many Kb the dictionary is occupying in memory. If $show_phrases is true, it'll also spit out phrase length statistics in the dictionary.

TO DO ^

For more efficiency, the codec should support outputting codes over less than two bytes. For example, a 12 bit compressed segment would be better expressed using 1.5 bytes per code, since you're not going to be using 4 bits of each output code using "pack 'S*'".

KNOWN BUGS ^

The LZW algorithim implemented here is not compatible with any other LZW implementation. It is a slight varient from that implemented in Compress::LZW, but don't expect it to work with any other LZW compressed data.

COPYRIGHT ^

Copyright (c) 2006 Eric Waters and XMission LLC (http://www.xmission.com/). All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

AUTHOR ^

Eric Waters <ewaters@uarc.com>

syntax highlighting: