Index

File: zip-compress-reduce.ads

Description

Subprograms & Entries

Reduce

procedure Zip.Compress.Reduce
( input, output: Zip_Streams.Zipstream_Class;
input_size_known: Boolean;
input_size: File_size_type;
-- ignored if unknown feedback: Feedback_proc;
reduction_factor: Positive;
CRC: in out Interfaces.Unsigned_32;
-- only updated here output_size: out File_size_type;
compression_ok: out Boolean -- indicates compressed <= uncompressed );
Just for fun, playing with the old Zip Reduce format... Reduce combines LZ77 with a probabilistic using a Markov chain. The format has a single block for the whole file :-(. NB: this compressor works in two passes, the first one serving to compute the exact Markov matrix for the whole data to be compressed. Hence, it is slow. However, we cache the last n=LZ_cache_size bytes compressed by LZ77. The result is optimal - within the constraints of that format: one block, poor encoding of compressed data and of the compression structure (the Markov matrix). Author: G. de Montmollin, January 2009