Last Update 2003/09/04

文書データ圧縮アルゴリズム入門
ハフマン符号・算術符号・LZ符号などをCで実現

植松 友彦 著
A5判 256ページ
3.5"2DD FD付き
定価2,990円(税込)
JAN9784789836722
1994年10月15日発行
[絶版2000.4.26] 文書データ圧縮アルゴリズム入門
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 本書では,パソコン通信などでごく自然に行われている圧縮/解凍技術の基礎である,可逆(圧縮前と同じデータを復元する)圧縮アルゴリズムについて,代表的なもののほとんどを解説しました.アルゴリズムはCプログラムにインプリメントし,添付フロッピにソース/PC-9801用実行形成ファイルを収録しました.

目次

第1章 文書データ圧縮入門
1.1 データ圧縮の起源と歴史
 モールス符号からはじまったデータ圧縮/モールス符号の規則/シャノンの理論からZiv-Lempel圧縮アルゴリズムへ至る系譜
1.2 可逆圧縮と非可逆圧縮
 可逆圧縮と非可逆圧縮では,性質も用途も違う
1.3 データ圧縮=モデル化+符号化
 モデル化と符号化
1.4 静的符号化と動的符号化
 ハフマン符号とZiv-Lempel符号
1.5 実際のデータ圧縮ソフトウェア
 COMpadt,COMpress,ARC,PKZIP,ARJ,LHA,Stufflt,COMpadt Pro,…
1.6 最良のデータ圧縮アルゴリズムとは
 最適な圧縮アルゴリズムはケース・バイ・ケース

第2章 データ圧縮とその限界- シャノンの理論 -
2.1 データ圧縮の基本的な考え方
 データ圧縮=符号化,文字=記号/8ビットの各記号を7ビットで表す/圧縮率と平均符号長でデータ圧縮を評価する/FF符号-記号ごとに同じビット長の符号語を割り当てる/FV符号-記号ごとに必ずしも 同一長ではない符号語を割り当てる/さらに圧縮するには
2.2 情報の定量的な尺度
 シャノンの理論における情報量の考え方/情報量の定義
2.3 無記憶情報源とエントロピー
 情報源/圧縮の限界/情報源符号化定理
2.4 記憶をもつ情報源のモデル
 有限状態確率モデル(マルコフ情報モデル)/モデルの作成法がデータ圧縮の重要なキーになる

第3章 もっとも基本的なデータ圧縮法
 - シャノン・ファノ符号とハフマン符号 -
3.1 木による符号の表現
 符号の木
3.2 シャノン・ファノ符号
 FV符号の一つシャノン・ファノ符号/シャノン・ファノ符号の構成アルゴリズム/シャノン・ファノ符号の位置づけ
3.3 ハフマン符号
 シャノン・ファノ符号とハフマン符号の違い/ハフマン符号の構成/アルゴリズム/ハフマン符号構成の実例/ハフマン符号の性能評価/ハフマン符号の実用に向けての問題
3.4 ブロック単位での符号化とその効果
 圧縮改善のためのブロック符号化/エントロピーを使って考える
3.5 ハフマン符号のプログラミング

第4章 ハフマン符号の後継者- 算術符号 -
4.1 算術符号の基本的アイデア
 実数0と1の間の実数の区間を使う/算術符号化/算術復号/算術符号化の現状と将来
4.2 算術符号の性能と問題点
 算術符号の性能/算術符号を使うときの問題点
4.3 Jones符号
 Jones符号とは/Jones符号の手順(符号化)/Jones符号化の実例/演算精度の問題/Jones符号の復号化/Jones符号の手順(複合化)/Jones符号化の実例
4.4 Jones符号のプログラミング

第5章 ハフマン符号のオンライン化- 適応型ハフマン符号 -
5.1 ハフマン符号の適応化
 ハフマン符号を実用化するときの問題点/適応型符号の手順(符号化)/適応型符号の手順(復号化)/適応型ハフマン符号による符号化の実例
5.2 FGKアルゴリズム
 兄弟条件が,その基礎/兄弟条件/ハフマン木/FGKアルゴリズムによるハフマン木の更新手順/FGKアルゴリズムで実際にハフマン木を更新する/新しく出現した記号をFGKアルゴリズムで処理する/FGKアルゴリズムを用いた適応型ハフマン符号の性能
5.3 Vアルゴリズム
 FG0アルゴリズムの改良版-Vアルゴリズム/Vアルゴリズムの特徴/節点番号条件/節点のブロック/Vアルゴリズムによるハフマン木の更新/Vアルゴリズムで実際にハフマン木を更新する/新しく出現した記号をVアルゴリズムで処理する/FGKアルゴリズムとVアルゴリズムの結果を比較する/Vアルゴリズムを用いた適応型ハフマン符号の性能
5.4 適応型ハフマン符号のプログラミング

第6章 辞書を用いた符号化法 -LZ77符号-
6.1 辞書に基づく符号化
 語を符号語に対応させる/適応型辞書法による辞書の更新
6.2 LZ77符号
 スライド窓を辞書として利用する/LZ77符号の符号化アルゴリズム/なぜLZ77符号で圧縮できるのか/LZ77符号化の実際/LZ77符号では記号の比較回数を小さくする手法が重要/LZ77符号の復号化アルゴリズム/LZ77復号化の実際/符号化より復号化のほうが得意なLZ77符号
6.3 LZ77符号のバリエーション
 LZR符号-ポインタ指定に自由度をもたせる/LZSS符号-ポインタと記号を区別/LZSS符号の符号化アルゴリズムの手順/LZSS符号を実用化するときの注意/LZB符号-ポインタを表す符号語長を可変にする/LZH符号-圧縮ツールでよく使われている/LZBW符号-辞書の冗長性を取り除く
6.4 LZB符号のプログラミング

第7章 もっともポピュラーなユニバーサル符号 -LZ78符号-
7.1 LZ77符号の問題点
 大局的な辞書の必要性
7.2 LZ78符号の概要
 LZ78符号化の実例/中間符号語のビット列表示/トライによる辞書表現/LZ78符号の符号化アルゴリズム/LZ78符号による符号化の実際/LZ78符号の復号化アルゴリズム/LZ78符号による復号化の実際/記号列長が長くなるほど理想的な圧縮ができる
7.3 LZ78符号のバリエーション
 LZW符号-1記号からなる語をすべて辞書に前もって登録しておく/LZW符号による符号化アルゴリズム/LZ78符号とLZW符号の違い/LZW符号による符号化の実際/LZW符号の復号時に注意すべきこと/LZW符号による復号化アルゴリズム/LZW符号はARCやCompress,Stuffltで使われている/LZC符号-LZW符号の改良版/LZY符号-あらかじめすべての記号を登録した木を用意する/LZT符号-少ないメモリでも効果的な圧縮が可能/LZFG符号-現在,もっとも高性能の符号
7.4 LZW符号のプログラミング

第8章 算術符号ふたたび -適応型算術符号-
8.1 適応型算術符号
 演算符号は生起確率に応じて符号木を作りなおさなくてよい/適応型算術符号の復号/適応型算術符号の性能
8.2 適応型算術符号の拡張
 有限文脈モデル/適応型算術符号(1次の有限文脈モデル)の符号化アルゴリズム/適応型算術符号化の実際/適応型算術符号(1次の有限文脈モデル)の復号化アルゴリズム/適応型算術復号化の実際/N次の有限文脈モデルを用いた適応型算術符号
8.3 木を利用した適応型算術符号
 実用的な適応型算術符号/木を利用した適応型算術符号の符号化アルゴリズム/木を利用した適応型算術符号の実際/木を利用した適応型算術符号とLZ78では,符号化のようすが違う/木を利用した適応型算術符号の復号化アルゴリズム/木を利用した適応型算術復号の実際

第9章 各種圧縮アルゴリズムの性能評価
9.1 圧縮の尺度とテスト・ファイル
 圧縮率をどう測るか
9.2 比較する圧縮アルゴリズム
 基本アルゴリズムのグループ/LZ77のグループ-スライド窓の大きさに対する配慮/LZ78符号-辞書に登録できる記号列の数/一般に使われている圧縮ツール
9.3 圧縮率の比較
 圧縮率の計算方法/基本アルゴリズムに対する総合圧縮率の評価結果/LZ77符号系に対する総合圧縮率の評価結果/LZ78符号系に対する総合圧縮率の評価結果/圧縮ツールとの比較
9.4 処理時間,メモリ量,圧縮率の相互関係
 処理時間と圧縮率/メモリ量と圧縮率
9.5 圧縮率の収束速度
9.6 ソフトウェアでデータ圧縮を実現するときの検討点
 高速性優先か圧縮性能優先か/符号化の単位をどうするか?/どの圧縮アルゴリズムを用いる(組み合わせる)がよいか/メモリ量の制限/上位互換性