Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ uncompact(1) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

COMPACT(1)  —  NEWS-OS Programmer’s Manual

名称

compact、uncompact、ccat − ファイルの圧縮/復元、 およびファイルの cat を行う

形式

compact [ −v ] [ name ... ]
uncompact [ −v ] [ name ... ]
ccat [ −v ] [ file ... ]

解説

compact は、Huffman コードを使って指定のファイルを圧縮します。 ファイル名が指定されないと、標準入力が圧縮されて標準出力に書き出されます。 compact はオンラインアルゴリズムとして動作します。 1バイト読み込まれるたびに、現在のプレフィックスコードに従って即座に エンコードされます。 このコードは、それまでに現れた頻度のセットに対する最適 Huffman コードです。 エンコーダとデコーダは同一の状態から始まり、 同期しているため、 圧縮したファイルに対してデコードツリーを適用する必要はありません。 また、 compact と uncompact はフィルタとして使うこともできます。 たとえば、次のコマンドは nop (ただし非常に遅い)として動作します。 ... | compact | uncompact | ... 

引数 file が与えられると、そのファイルは圧縮され、出力ファイルは file.C に書き出されます。 file はリンクされていないものです。 圧縮されたファイルの最初の 2 バイトには、 そのファイルが圧縮されているということを示すコードが入っています。 このコードは、再圧縮を禁止するために使われています。

どのくらい圧縮されるかは、圧縮されるファイルの種類によって違います。 圧縮のおおよその目安としては、通常のテキストが 38%、 Pascal のソースが43%、 C のソースが 36%、バイナリが19%程度です。 この数字は、圧縮の結果、減少したファイルバイト数の割合です。

uncompact は、 compact が圧縮したファイルから、元のファイルを復元します。 ファイル名が指定されないと、標準入力が復元されて標準出力に書き出されます。

ccat は、 compact が圧縮したファイルから元のファイルを cat しますが、 ファイルは復元しません(これは復元した出力を標準出力に書き出す、 単なるシェルスクリプトです)。

compact および、 uncompact、 ccat は通常、作業を寡黙に行います。 −v フラグを与えると、 compact は圧縮したファイルごとに圧縮率を報告し、 uncompact と ccat は、ファイルを復元するごとにそのファイルの名前を表示します。

制限

ファイル名の最後のセグメントは、 ‘.C’ を追加する余裕がある程度に短くなければなりません。

関連ファイル

∗.C compact が作成した圧縮されたファイル。uncompact によって削除されます。

関連事項

Gallager, Robert G., ‘Variation on a Theme of Huffman’, I.E.E.E. Transactions on Information Theory , vol.IT-24, no.6, November 1978, pp.668-674. 

著者

Colin L.McMaster

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026