2002年1月30日(水)13:20-14:50
東京工業大学 大岡山キャンパス 北2号館6F会議室
(補記)今野浩先生は東工大を退官され,今は中央大におられます(新URL)。
青木尊之先生
オープンソース(商利用も可)
FortranやCで通常にファイルに書き込むのと同じ感覚で圧縮保存できる(はず)
いろいろな圧縮エンジンが選べる (予定)
zlib, (予測符号化), (Wavelet), ……
HDF を追い越せ!
いつの時代も CPU は I/O より速い
Run-length coding(連長符号化)
あああああいいい → あ5い3
任意の n ビットのファイルを n - 1 ビット以下に可逆に圧縮するアルゴリズムは存在しない。
[証明] n ビットのファイルは 2n 通り存在するが,n - 1 ビット以下のファイルは1 + 2 + 22 + 23 + …… + 2n-1 = 2n - 1通りしか存在しない。
Shannon (1948): A Mathematical Theory of Communication
m 個の文字がそれぞれ出現確率 p1, p2, …, pm で独立に現れるとすると,平均してΣ pi log2 (1 / pi)ビット/文字より縮めることはできない。
つまり,2k 回に1回出現する文字は,k ビットで符号化するのが最適である。
Huffman (1951): A method for the construction of minimum-redundancy codes
算術符号化 (Elias, Rissanen, Pasco, ...)
LZSSでは「マハリクマハリタ」を次のように符号化する(文字を8ビットと仮定)
フラグ (1ビット) | 文字 (8ビット) | 戻り距離 (〜12ビット) | 長さ (〜4ビット) |
---|---|---|---|
0 | マ | ||
0 | ハ | ||
0 | リ | ||
0 | ク | ||
1 | 4 | 3 | |
0 | タ |
LZW は……
LZARI: 1988年8月27日 奥村晴彦 (算術符号化を使用)
LZHUF: 1988年11月 吉崎栄泰 (Huffman符号化を使用)
フラグ (1ビット) | 文字 (8ビット) | 長さ (8ビット) | 戻り距離 (≧12ビット) |
---|---|---|---|
0 | マ | ||
0 | ハ | ||
0 | リ | ||
0 | ク | ||
1 | 3 | 4 | |
0 | タ | ||
9ビット ↓ 算術符号化 or ハフマン符号化 | ↓ 算術符号化 or ハフマン符号化 |
LHA won the October 1991 PC Magazine Editor's Choice award as the best data compression utility.
FSP'92 | LHA |
FSP'93 | WTERM |
FSP'94 | JW_CAD |
FSP'95 | - |
FSP'96 | AL-Mail |
OSP'97 | - |
OSP'98-99 | Becky! Internet Mail |
OSP2000 | 午後のこ〜だ |
OSP2001 | - |
特許 がらみの紛争多し。
ソフトウェア特許については,今野浩 『カーマーカー特許とソフトウェア――数学は特許になるか』(中公新書1278,中央公論社,1995年)参照。
画像の例: Mona Lisa
浮動小数で予測誤差(例:差分)を求めても桁数は減らない
Lossy → 整数化(量子化)してから上の方法を使う
Lossless → ビットパターンが同じ整数に変換する
たとえば IEEE 754 single はこのビットパターンを24ビット整数と見ても,大小関係は元の浮動小数点と同じ。
1 8 23 符号 指数 仮数
MSB ← 32ビット → LSB
似たデータをまとめる
データベースの column-wise compression
XML では XMill
モデル化し,予測誤差に変換
松阪大学
奥村晴彦
okumura@matsusaka-u.ac.jp
Last modified: 2002-11-12 22:49:06