David' Scott's UNADULTERATED RLE COMPRESSIONS
files updated on 2000 September 15
My main concern is to create compression routines that are of
great use to the person who some day may want to compress data
before encryption is used. I feel very strongly that a compression
routine should be "one to one" on the previous page I give the
rules for h2com.exe; However this was
for 256 symbol adaptive huffman compression. This is an attempt
to show how one can extend the concept to RLE programs.
The first one is a change to one first used in BWTCODE.ZIP compression.
The
bwtrle.zip
contains both the old RLE and the new RLEU which
is fully bijective.
Next is an additional one for you to check out
rleexta.zip
contains
several others. A sample Batch programs to run them
are contained in the file.
The first one is based as closely as possible on the one used in
the original BZIP. Namely that for a small number of repeats
in the middle of a file "aaa.....aaa" gets changed
to "aaNa" and "caab" gets changed to "caa0b".
I then changed it to avoid the gaps that occur in the
other method.
I used the same starting conditions for files even though I think
it not the best. The only other changes are in the EOF handling.
But the result is a compression that does not have information added
to the file that the old way adds. This means the the new way will either
compress to the same file as old or a smaller file since I don't add
information that the old method does.
Example:
the file "aa1a1b" is uncompressed by UNRLE and then compressed by RLE
the file "aa3b" comes back so COMPRESS( UNCOMPRESS( X)) != X so it sucks.
when you try UNRLEU followed by RLEU you get the file you started with back. If
one can find nonempty files that my code does not have this property then mine would
fail. If anyone finds such a failure with my code please let me know.
ENTER here for MY Home Page