5: 2004-10-21 (木) 15:35:21 |
6: 2004-10-21 (木) 15:35:21 |
| -常識的な議論として、圧縮率が高い形式は展開時間が長くかかります。逆に展開時間が短いものは、圧縮率があまりよくありません。それは圧縮率を上げるために高度なアルゴリズムを使っているからなので、傾向としては当然のことです。 | | -常識的な議論として、圧縮率が高い形式は展開時間が長くかかります。逆に展開時間が短いものは、圧縮率があまりよくありません。それは圧縮率を上げるために高度なアルゴリズムを使っているからなので、傾向としては当然のことです。 |
| -しかし同じくらいの圧縮率なのに展開が他のものよりも速い形式というのがあります。もしくは同じくらいの展開速度なのに圧縮率が他よりも良い形式です。そういう形式こそ、真に価値ある形式だと[[K]]は考えます。もちろん展開速度というものは展開プログラムをうまく作るかどうかで大きく左右されるものですが、どんなにうまく作っても圧縮形式(圧縮アルゴリズム)による限界があるのです。圧縮率が同程度なら、その限界速度が速い形式こそ、圧縮形式としては良い形式ではないでしょうか。 | | -しかし同じくらいの圧縮率なのに展開が他のものよりも速い形式というのがあります。もしくは同じくらいの展開速度なのに圧縮率が他よりも良い形式です。そういう形式こそ、真に価値ある形式だと[[K]]は考えます。もちろん展開速度というものは展開プログラムをうまく作るかどうかで大きく左右されるものですが、どんなにうまく作っても圧縮形式(圧縮アルゴリズム)による限界があるのです。圧縮率が同程度なら、その限界速度が速い形式こそ、圧縮形式としては良い形式ではないでしょうか。 |
- | -他の観点もあります。それは展開作業のためにたくさんのメモリを要しないことです。実用的な展開速度のためには大量の作業用メモリが必要、という形式がありますが、そういうものはメモリが少ない環境での展開が絶望的になります(メモリが少ない環境というのは、たいてい利用可能なCPUの処理能力もそれほど大きくはない)。自分だけが使う場合は問題がないのですが、不特定多数の人にファイルを渡す場合や、将来携帯用端末で使うときなどにはこれが問題になり、結果的に負の資産になる可能性もあります。 | + | -他の観点もあります。それは展開作業のためにたくさんのメモリを要しないことです。実用的な展開速度のためには大量の作業用メモリが必要、という形式がありますが、そういうものはメモリが少ない環境での展開が絶望的になります(メモリが少ない環境というのは、たいてい利用可能なCPUの処理能力もそれほど大きくはないので、展開速度が落ちるのは致命的)。自分だけが自分のPCで使う場合は問題がないのですが、不特定多数の人にファイルを渡す場合や将来携帯用端末で使うときなどにはこれが問題になり、結果的に負の資産になる可能性もあります。 |
| -もちろん、多少のエラーを自動的に修復できることや、暗号化機能を持ったもの、アーカイブファイル分割機能の有無、OSでの標準サポート、それよりなにより使いやすいツール群が揃っていることなどこそ、使いやすいアーカイブ形式に求められる条件だという観点もあります。それはそのとおりです。エラー修復や暗号化や分割機能は、sar形式でも当初より対応を検討していて、かつそのための拡張に速やかに対応できるように準備をしてあります。OSでのサポートやツールの充実は、ユーザが増えれば自然に充実していくことでしょう。 | | -もちろん、多少のエラーを自動的に修復できることや、暗号化機能を持ったもの、アーカイブファイル分割機能の有無、OSでの標準サポート、それよりなにより使いやすいツール群が揃っていることなどこそ、使いやすいアーカイブ形式に求められる条件だという観点もあります。それはそのとおりです。エラー修復や暗号化や分割機能は、sar形式でも当初より対応を検討していて、かつそのための拡張に速やかに対応できるように準備をしてあります。OSでのサポートやツールの充実は、ユーザが増えれば自然に充実していくことでしょう。 |
| -現在では実に多くのアーカイブ形式が開発されています。しかし圧縮率の割には展開速度が遅いような、そんな形式でCD-RやDVDにバックアップとして残していくべきでしょうか。今までのぶんはしょうがないと思いますが、これからはもっと積極的にどの形式が良いかを考えて、もし使いにくいという問題があれば、使いやすくなるようにツールを充実させていくべきだと[[K]]は思います。その意思の反映として、sar形式での配布を行っているというわけです。 | | -現在では実に多くのアーカイブ形式が開発されています。しかし圧縮率の割には展開速度が遅いような、そんな形式でCD-RやDVDにバックアップとして残していくべきでしょうか。今までのぶんはしょうがないと思いますが、これからはもっと積極的にどの形式が良いかを考えて、もし使いにくいという問題があれば、使いやすくなるようにツールを充実させていくべきだと[[K]]は思います。その意思の反映として、sar形式での配布を行っているというわけです。 |
| *** ベンチマーク | | *** ベンチマーク |
| -いくつかのアーカイブ形式について、圧縮能力の例を示します。 | | -いくつかのアーカイブ形式について、圧縮能力の例を示します。 |
- | | |lzh|zip|tar.gz|tar.bz2|dgc|7z|''sar''|paq| | + | | |lzh|zip|tar.gz|tar.bz2|dgc|LZMA|''sar''|PPMd|paq| |
- | |osat45i|RIGHT:532093|RIGHT:524182|RIGHT:522146|RIGHT:546988|RIGHT:529568|RIGHT:503290|RIGHT:''498125''|RIGHT:465714| | + | |osat45i|RIGHT:532093|RIGHT:524182|RIGHT:522146|RIGHT:546988|RIGHT:529568|RIGHT:503290|RIGHT:''498125''|RIGHT:527052|RIGHT:465714| |
- | |sartol0g|RIGHT:46686|RIGHT:46172|RIGHT:44175|RIGHT:43202|RIGHT:41648|RIGHT:39861|RIGHT:''39017''|RIGHT:32802| | + | |sartol0g|RIGHT:46686|RIGHT:46172|RIGHT:44175|RIGHT:43202|RIGHT:41648|RIGHT:39861|RIGHT:''39017''|RIGHT:37404|RIGHT:32802| |
- | |make46|RIGHT:438752|RIGHT:413707|RIGHT:398232|RIGHT:302464|RIGHT:248784|RIGHT:241575|RIGHT:''238116''|RIGHT:168127| | + | |make46|RIGHT:438752|RIGHT:413707|RIGHT:398232|RIGHT:302464|RIGHT:248784|RIGHT:241575|RIGHT:''238116''|RIGHT:216140|RIGHT:168127| |
| --単位はバイトです。 | | --単位はバイトです。 |
| + | --http://arc.osask.jp/osask/pcat/osat45i.lzh |
| + | --http://arc.osask.jp/osask_src/make46.lzh |
| -以下は上記の結果について、paqの結果を100として相対指標化したものです。こちらのほうが比較がしやすいです。 | | -以下は上記の結果について、paqの結果を100として相対指標化したものです。こちらのほうが比較がしやすいです。 |
- | | |lzh|zip|tar.gz|tar.bz2|dgc|7z|''sar''|paq| | + | | |lzh|zip|tar.gz|tar.bz2|dgc|LZMA|''sar''|PPMd|paq| |
- | |osat45i|114.3|112.6|112.1|117.5|113.7|108.1|''107.0''|100.0| | + | |osat45i|114.3|112.6|112.1|117.5|113.7|108.1|''107.0''|113.2|100.0| |
- | |sartol0g|142.3|140.8|134.7|131.7|127.0|121.5|''118.9''|100.0| | + | |sartol0g|142.3|140.8|134.7|131.7|127.0|121.5|''118.9''|114.0|100.0| |
- | |make46|261.0|246.1|236.9|179.9|148.0|143.7|''141.6''|100.0| | + | |make46|261.0|246.1|236.9|179.9|148.0|143.7|''141.6''|128.6|100.0| |
- | |展開作業域|8KB未満|8KB未満|8KB未満|2.3MB|不明|28KB|''32KB''|120MB| | + | |展開作業域|8KB未満|8KB未満|8KB未満|2.3MB|不明|28KB|''32KB''|194MB|120MB| |
| --sar形式ではtek5圧縮を使っています。 | | --sar形式ではtek5圧縮を使っています。 |
| --lzhはlh7形式です。 | | --lzhはlh7形式です。 |
| --dgcはDGCA 1.06です。 | | --dgcはDGCA 1.06です。 |
- | --7zはデフォルトのLZMA形式をそのまま使っています。 | + | --LZMAは7zのデフォルト形式です。 |
| + | --PPMdは7zのものを使っています。 |
| --paqはPAQAR v1.3でオプション-5を使っています(今はもっとバージョンが進んでいるようです)。 | | --paqはPAQAR v1.3でオプション-5を使っています(今はもっとバージョンが進んでいるようです)。 |
| //--PAQAR以外は展開が速すぎて時間を測れませんでした。 | | //--PAQAR以外は展開が速すぎて時間を測れませんでした。 |
| //--bz2のブロックサイズから作業域の大きさを割り出す方法がわかりません。900KBを4倍すればいいのかな?...分かりました:100KB + (ブロックサイズ x 2.5) | | //--bz2のブロックサイズから作業域の大きさを割り出す方法がわかりません。900KBを4倍すればいいのかな?...分かりました:100KB + (ブロックサイズ x 2.5) |
| --dgcの展開作業域は不明ですが、おそらくブロックソート系なので、bz2と同程度はありそうな気がします。 | | --dgcの展開作業域は不明ですが、おそらくブロックソート系なので、bz2と同程度はありそうな気がします。 |
| + | --PPMdは非常に得意不得意があるアルゴリズムで、ここでもその傾向がよく出ています(テキストに強いといわれている)。その能力を発揮させるには展開作業領域がたくさん必要になりますが、圧縮率を犠牲にすれば減らすこともできます。たとえばmake46でsar+tek5より若干劣る圧縮率にしてもいいのなら、26MBにできます。 |
| + | --個人的な見解ですが、どんな環境ででも展開できるべきだという観点から、PC向け以外にも配慮した汎用的で理想的な圧縮形式としては、作業領域は1MB未満、できれば64KB未満が好ましいと、[[K]]は考えております。 |
| | | |
| * こめんと欄 | | * こめんと欄 |
| #comment | | #comment |