Metropoli BBS
VIEWER: pk.doc MODE: TEXT (ASCII)
PK/UPK -- Object packer, & fastest available unpacker.

Date: Sunday, October 2, 1994
From: mheiskan@hut.fi
  Re: PK/UPK

--> S/SX/G/GX

[Note: PK was "obsoleted" by BZ, but since UPK unpacks PK'd objects
slightly faster than UBZ unpacks BZ'd objects, I've included it on
this disk for programmers who wish to include packed objects in
software and who need the *fastest* possible unpacking.  -jkh-]

PK is an LZ class compressor. The main difference to RF is that PK
uses 3-nibble offsets to matches instead of 2 and PK also uses a
speedup method for finding matches.

Effects:
  - PK is clearly faster
  - RF _probably_ works better for short objects because short offsets
    tend to dominate.
  - PK _probably_ works better for long objects because the number of
    long matches at larger distances increases.

Name:	PK
Stack:	( ob %speed --> $ )
Desc:	Compress object. %speed determines max look-back range for LZSS
	compression as follows:
		 0 -->	#FF
		15 --> #FFF
	If lots of RAM is available %speed will be ignored and an even
	faster algorithm will be used.

	When PK finishes, the object size (in bytes) of the original
	and of the compressed object are displayed at the top of the
	screen, as well as the %CH (percent of change). If the %CH is
	a positive number, the original "grew" instead of shrinking,
	and should be DROP'ed.

Name:	UPK
Stack:	( $ --> ob )
Desc:	Uncompress PK'ed object.  Requires no extra memory.
[ RETURN TO DIRECTORY ]