人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://ja.wikipedia.org/wiki/7-Zip参照。
同じファイルをzip形式で圧縮すると元ファイルの70パーセント位の容量になり、7-Zipで圧縮したら50パーセント位になりました。
どちらも可逆圧縮でありながら、なぜこんなにも圧縮率が違うのでしょうか。
原理をできるだけ、わかりやすく教えていただけますか?

●質問者: Gleam
●カテゴリ:コンピュータ インターネット
✍キーワード:7-ZIP zip パーセント ファイル 原理
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● goodvn
●25ポイント

7-Zip で使われている LZMA というアルゴリズムは,辞書式圧縮という考え方です

一度出てきたバイナリの並びを繰り返さず,辞書に対するポインタに置き換えることで,高圧縮率を実現します

類似のアルゴリズムで,LZMA の姉妹アルゴリズムとも言えず,LZ78 ですが,Wikipedia 内に概念の説明があります

http://ja.wikipedia.org/wiki/LZ78

ZIP形式は,Deflate というアルゴリズムで,これも考え方としては似ています

圧縮方式は,圧縮率の高低だけで語れないものなので,高圧縮率だから良い,というものでもありません.適材適所といえます.例えば,圧縮形式と言った場合,アーカイバ + ファイル圧縮の 2つの機能(最近では,これに暗号化を加えた 3つの機能)が内包されます

アーカイバとは,複数のファイルをまとめる機能の事で,ZIP や 7-Zip にはありますが,一方で非常にポピュラーな圧縮形式である,GZIP や BZIP2 にはありません

アーカイバでは,ファイルを格納するデータベースを持つため,このデータベースに何を格納できるか(ファイル名,パーミッション,ファイル属性など),ファイル名にどのような文字コードが使えるのか,という違いがあります

ファイル圧縮だけを見ても,圧縮と展開でどちらが得意なのか,という違いがあります.GZIP は圧縮率自体はそれほど高くないのですが,圧縮も展開もそこそこ速く,リソースも使わないため,現場ではよく使われます

他にも,ビットレベルのエラーに対する耐性,エラー訂正の性能なども違いがあります

また,技術的な要素だけでなく,アルゴリズムに対する特許権などライセンス関係の問題,開発コミュニティの違いなど,圧縮形式を選択することは,容易ではないかも知れません

◎質問者からの返答

回答ありがとうございます。


2 ● yuuku
●20ポイント

7-Zip - Wikipedia

圧縮方法は新しい方法が発見発明されていくので、新しい圧縮方法が圧縮率が高くなるようですね。

ギリシャ文字, ルーン文字, 7-Zip - faireal.net

元のデータが7-zipが圧縮しやすい形のデータだったのかもしれませんね。

◎質問者からの返答

回答ありがとうございます。


3 ● hujikojp
●35ポイント ベストアンサー

全体的に言えば、ハードウェアの進歩に合わせて調整し直したので圧縮率が高くなった、といえるのでは。

まず、前提として zipも 7kも圧縮算法は LZ77をベースにしたものといえます(これはlharcなども同じです)。

そのうえで何が違うかをさぐると、Wikipediaを読む限り主因としては2つ:

1. 後段に Huffman圧縮ではなく算術圧縮を利用した。

算術圧縮は、理論的には Huffmanより高圧縮率になることは知られていたが、圧縮時の計算量が多いので以前は用いられなかった。近年のCPU能力の向上によって実用になった。

2. LZ77の辞書を 32KiBではなく 32MiBにした。

これも近年のRAMの増加によるものですね。

それ以外にもいろいろチューンが入っているはずですが。

参考に bzip2も含めた簡単な比較が以下に:

http://blogs.reucon.com/srt/2008/02/18/compression_gzip_vs_bzip2...

◎質問者からの返答

回答ありがとうございます。

よくわかりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ