コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

ノート:RAR

ページのコンテンツが他言語でサポートされていません。

RAR方式の圧縮技術に於ける辞書について

[編集]

参考文献 奥村晴彦・山崎敏 著 LHAとZIP 圧縮アルゴリズム×プログラミング入門 ソフトバンク パブリッシング株式会社 2003/12/6 初版

辞書圧縮方式
[編集]

出現しやすい文字列を辞書として作成する。作成した辞書を使用して圧縮したり、圧縮したファイルを復元するものである。

スライド辞書圧縮方式
[編集]

辞書圧縮方式では、予め辞書を作成しておく必要がありプログラムコードを書く手間がかかる。プログラムコードを書かずに自動でプログラムによって辞書を作成するのがスライド辞書圧縮方式である。圧縮対象ファイルに出現する文字列を頻度順に探し出して辞書として使用するものである。圧縮対象ファイルを一定のサイズづつ読み込んで辞書化していく技術なのでスライド辞書という名称になった技術である。このスライド辞書圧縮方式は、GUNが開発したものでZIP形式の圧縮技術で使用されている。スライド辞書圧縮方式は、辞書圧縮方式の改良版である。圧縮処理で自動的にプログラムによって作成された辞書は、圧縮したファイルの先頭部分に書き込む事で圧縮ファイルを作成する。従って、圧縮処理や復元処理を行うプログラム側に予め作成した辞書を用意しておく方法とは違って圧縮ファイルが大きくなるという欠点がある。 --Wupu 2012年2月15日 (水) 17:13 (UTC)[返信]

特許権等の知的財産権について
[編集]

辞書圧縮は、辞書圧縮方式とスライド辞書圧縮方式の両方とも2012年現在、既に特許権が切れていて自由に誰でも利用できる技術である。

RAR方式の辞書に関する投稿者私見
[編集]

RAR方式の辞書は、このZIPで採用しなかった辞書圧縮方式を使っているものだと思われる。 破損したファイルの修復を行う方法として考えられる方法として、辞書の文字列の中から破損箇所の文字列と思われる部分の文字列に最も近い文字列を探し出して、その探し出した文字列に書き換える事で破損したファイルの修復を行うという処理工程が考えられる。破損したファイルの修復処理工程を以上の様な処理を行うものであると考えると、予め作成した辞書が一般的にアーカイバと呼ばれる圧縮処理や復元処理を行うプログラム側に存在する必要性があるからである。RAR形式の圧縮技術では、破損ファイルの修復が圧縮ファイル無しで行えるという機能がある事から、予め作成した辞書が一般的にアーカイバと呼ばれる圧縮処理や復元処理を行うプログラム側に存在する形式の辞書圧縮方式の圧縮プログラムであると考えられる。 --Wupu 2012年2月15日 (水) 12:36 (UTC)Wupu[返信]

以上の内容を加筆したいと思いノートに記述しました。変更点などのご意見お待します。 --Wupu 2012年2月15日 (水) 13:15 (UTC)[返信]

コメント 思ったところは
  1. 辞書圧縮方式やスライド辞書圧縮方式、節で言うと「辞書圧縮方式」「スライド辞書圧縮方式」「特許権等の知的財産権について」は、圧縮技術に対する説明であってRARに特化した説明ではありません。RARという単に1つの圧縮技術に対する解説が書かれたこの記事ではなく、もっと包括的な圧縮技術に対する解説記事に加筆するほうがよいのではないかと思います。実際、辞書圧縮方式やスライド辞書圧縮方式の解説は、ZIP7-ZipLHAなどの複数の圧縮方式の解説にも共通して使えるはずです。であれば、ここのアーカイバにそれぞれ書くよりは、共通して書くほうがよいと思います。多分「可逆圧縮」あたりに加筆するがいいのではないでしょうか。
  2. 「RAR方式の辞書に関する投稿者私見」節については、≪投稿者私見≫という時点で「Wikipedia:独自研究は載せない」に抵触していると思います。
  3. RARの圧縮方式については、伸長プログラムのソースが公開されています。unrar(ダウンロード)やThe Unarchiver(公式サイト、なお、ライセンス上の疑惑についても参照)など。ソースコードのコメントや付属ドキュメントなどで圧縮方式に対する説明が行われていれば、≪考えられる≫などという曖昧な言い方ではなく、圧縮方式が明記されている可能性があります。あまりこの分野に詳しくありませんが、unrarのソースコード、unpack15.cppのLongLZ()やHuffDecode()を見る限り、(バージョンや対象データの種類によるかも知れませんが)LS法(LZSS系列の圧縮方式)とハフマン符号化を組み合わせたものだと思います。が、独自研究なので私からこの情報に基づいて加筆するつもりはありません。
  4. 破損ファイルの修復について、文献に頼らず、過去にunrarのソースを分析した記憶で語りますが、RAID 5などで用いられている方法と同じ方法の誤り訂正を用いて、あるブロック単位で1ビットの誤り訂正と2ビットの誤り検出機能を持たせたもの、という意味で破損ファイルの修復を行うのではありませんでしょうか?もしそうなら、破損ファイルの修復が可能だから、という根拠で(スライドでない)辞書圧縮方式が用いられているとは言い難いと思います。
ひとまず、≪投稿者私見≫に基づく加筆を考えているのであれば、避けるべきだと思います。--NISYAN 2012年2月15日 (水) 23:01 (UTC) リンク表記訂正、ins/del省略 --NISYAN 2012年2月16日 (木) 13:35 (UTC)[返信]
コメント もう一つ。「辞書圧縮方式」と「スライド辞書圧縮方式」の違いは、前者は1パス目に符号化される対象となる語句の出現頻度を確認して2パス目に圧縮、後者は1パスで(スライド枠内を見ながら)出現頻度を確認しながら圧縮、という違いではないでしょうか。つまり、≪予め作成した辞書≫というものが、どちらもプログラムにあるのではなく、データに含まれているのだと思いますし、それがRARの記事に書かれている≪4MBの辞書≫だと思うのですが。--NISYAN 2012年2月15日 (水) 23:54 (UTC)[返信]