データ圧縮用のユニット ハフマン符号および LZ77 符号による圧縮を行なう為のクラスが含まれている
【 概要 】
データ圧縮用のユニットです。現在 Compress ユニットには TBitStream,
THuffman, TSlideDic, TCompress, TSearchRecs, TArchiver という 6 つの
クラスが、含まれています。
TBitStream は、ビット単位のデータの入出力を行なう為のストリームクラス
です。
THuffman は、ハフマン符号によるエンコード(符号化)とデコード(復号化)を
行なう為のクラスです。
TSlideDic は、LZ77 符号(スライド辞書法)によるエンコード(符号化)と
デコード(復号化)を行なう為のクラスです。
TCompress は、データをブロック単位に分割して THuffman と TSlideDic の
両方を使ってエンコード(符号化)やデコード(復号化)を行なう為のクラスです。
TSearchRecs は、FindFirst 関数または FindNext 関数を使って検索される
検索パスのファイル情報 TSearchRec のリストを作成する為のクラスです。
TArchiver は、複数のファイルをディレクトリ構造ごと 1 つにまとめて書庫
ファイルを作成したり、それを復元する為の書庫ファイル管理用クラスです。
TBitStream は、THuffman や TSlideDic でビット単位のデータの入出力を
行なう際に必要なものですが、これ以外の様々な場合でも使えると思います。
ハフマン符号と LZ77 符号(スライド辞書法)は、LHA や ZIP でも使われている
圧縮方法です。実際には、LHA や ZIP は、最初に LZ77 符号(スライド辞書法)
で圧縮してからハフマン符号による圧縮を行なうという 2 段階の圧縮方法で
高い圧縮率を実現しています。このユニットでは TCompress でこの 2 段階の
圧縮を行なっています。LHA や ZIP には、遠く及びませんが、ソースを公開
していますので圧縮方法の理解等、何かの役に立てれば幸いです。
圧縮率では、LHA と ZIP の中間くらいの性能ですが、時間が非常にかかって
います。圧縮率をそれほど気にしないのであれば、LHA や ZIP の倍くらいの
速度で圧縮します。いずれにしても LHA と ZIP は、とてつもなくすぐれた
プログラムであるという事を再認識しています。
ソフト名: | データ圧縮用ユニット Compress |
---|---|
動作OS: | Windows 10/8/7/Vista/XP/Me/2000/NT/98/95 |
機種: | IBM-PC |
種類: | フリーソフト |
作者: | 槻 誠三 |