[comp.compression] LZJU90 and ARJ

robjung@world.std.com (Robert K Jung) (05/02/91)

 
In reference to the post concerning LZJU90, LZJU90 is NOT a compression
standard or specification, it is an UNCOMPRESSION specification.  It is
not a compression algorithm, so it should not be compared to LHARC,
COMPRESS, etc.  LZJU90 is NOT dependent on a specific compression
algorithm.
 
LZJU90 is a specification for the representation of the output of any
(almost any) LZ77-class compression algorithm.  It defines a specific set
of parameters so that a single decompressor can decode files produced by
a range of different compressors.
 
It appears that some in the comp.compression community are looking only
at the compression side of LZJU90.  There might have been less
misunderstanding if we completely left out the compression code and only
published the LZJU90 compliant UNCOMPRESSOR.
 
The compression code is only intended to be an example of a compressor
that generates output data that is compliant with the LZJU90
UNCOMPRESSOR specifications.  For example, it is possible to build a
LZJU90 compliant compressor using the new LZRW1 algorithm.
 
Designing LZJU90 as an UNCOMPRESSOR specification provides the
flexibility for communications needs and for future compression
improvements.  Already, there are faster and more compressive compressors
that are still LZJU90 compliant.
 
Credit for the binary tree portion of the example compressor should go
to Haruhiko Okumura (published in COMP.ZIP) and to Robert K Jung for an
algorithm change that produces up to an order of magnitude speed
increase over the original work by Okumura.
 
Concerning ARJ derivations, the ARJ documentation credits H. Okumura for
providing the ideas that spawned ARJ 1.00.  The ideas came from AR001
and AR002 and not from LHA directly.  The ARJ 2.00 compressor contains
a new algorithm not derived from any published work.
 
Robert K Jung (robjung@world.std.com)