最良の答え
「最良」とは圧縮率を意味する場合、大きなテキスト圧縮ベンチマークはCMIXです。唯一の問題は、それを実行するために32GBのメモリを備えたコンピュータが必要なことです。そして、1GBのテキストを圧縮または解凍するのに4日かかります。
トップランクのプログラムのほとんどと同様に、CMIXは辞書の前処理とPAQスタイルのコンテキストミキシングを使用します。プリプロセッサは、単語を辞書の1〜3ビットの記号に置き換え、大文字を特殊記号と対応する小文字の記号に置き換えるなどの他の処理を行います。また、一般的な接頭辞と接尾辞を解析する場合もあります。
コンテキストモデルは、コンテキスト(たとえば、最後のnビット)を取得し、確率を推測します p スパン>次のビットは0または1になります。結果は算術コーダーに送られます。算術コーダーは、log2 1 / p <のシャノン制限に非常に近いビットをコーディングします。 / span>ビット。したがって、圧縮率は、 p がどれだけ適切に推定されるかに完全に依存します。コンテキストミキシングアルゴリズムは、多くの独立したモデルの予測を組み合わせることにより、非常に正確な予測を行います。 CMIXは数百のモデルを使用するため、多くの時間とメモリが必要になります。モデルが非常に多い理由は、考えられるコンテキストが多数あり、コンテキストを予測に変換する方法が多く、モデルを更新する方法が多く、他のモデルの予測を適応的に組み合わせて、を使用して最適なモデルを選択する方法が多数あるためです。ミキサーの階層。実用的なコンテキストミキサーは2〜20のモデルを使用する場合があり、単純さと使いやすさのために圧縮をいくらか犠牲にします。
最高のコンプレッサーは実際に理解に近づきます。テキスト。それらは、言語の語彙的、意味論的、および文法的構造をモデル化します。たとえば、辞書は、母と父などの関連する単語をグループ化することで構成されています。および月曜日と火曜日。これにより、下位ビットのみが異なる辞書コードが生成されます。次に、一部のコンテキストモデルは下位ビットを削除し、コンプレッサーが月曜日に父に会ったを火曜日に母に会いました。
技術的な詳細はかなり複雑になる可能性があります。詳細については、データ圧縮の説明をご覧ください。
回答
可逆圧縮について話していると仮定します。圧縮(たとえば、テキストはSMS言語で不可逆圧縮される可能性があります)、「任意の」バイナリファイルを可逆圧縮できないことはよく知られています。つまり、一部のファイルのサイズが大きくなります。これは、コーダーヘッダーファイルと、[0、…、N]と[0、…、N-1]の間の不可能な全単射の基本的な計算、またはディリクレ鳩の巣原理(Schubfachprinzip)によるものです。 http://en.wikipedia.org/wiki/Pigeonhole\_principle
を参照してください。
前述のように、「最良」とは一般に、@ Sam-Jpの平均圧縮率を指します。テキストの文字セット(例:ASCII 7ビットまたは8ビットが重要)とそのタイプも重要です。一部の形式ではすでに圧縮がカプセル化されているため、純粋な人間の言語で書かれたテキストファイルの「最適な圧縮」は、プリンタのポストスクリプト、rtf、doc、またはテキストを含むpdfファイルでの動作が異なります。したがって、圧縮率の「最良」は、@ Igor-Carronリンクで与えられている英語のテキスト圧縮に見られるように、データベースの内容、テキストファイルの均質性、および類型に依存します:http://www.maximumcompression.com/data/text.php
Speed @ Jonathan-Hseuも非常に重要です。アプリケーションに応じて(アーカイブからデータベースの相互作用@ Daniel-Lemireまで)、圧縮または解凍(通常は1回圧縮、多数解凍)速度、またはその両方に焦点を当てます。
ただし、他の機能は次のように評価できます。特に、巨大なデータセットと多様な取得システムの出現により、-圧縮ファイルでのランダムアクセスパフォーマンスまたは検索機能-エラー回復力(破損したビットに対する耐性)-オンライン機能、つまり、データストリームを効率的に圧縮できるようになりました-ラスター順だけでなく、ツリー、グラフで構造化されたテキストの圧縮-コーダー、デコーダー、またはその両方の複雑さやエネルギー効率が低い-並列化の可能性-分散コーディングの可能性(ネットワークの異なるノードで共有される圧縮作業)
最終的には、テキストの場合でも、ロスレスボックスから考えることができます。そして、前に引用したSMSに戻ります。ここでは、意味は重要ですが、正しいスペルではない可能性があります。たとえば、Kaufman&Klein、半可逆圧縮http://www.computer.org/portal/web/csdl/doi/10.1109/DCC.2004.1281520
通常どおり、「最良」の質問をすることで、実際の目的の質問を洗練し、追加の定義を行うことができます。 「あなたの」最高の@ Alex-Kamilを定義するための、品質のメトリックとそれらのメトリックの適切な重み付け。次のソースのトピックは刺激的です:
*情報理論に関するIEEEトランザクションhttp://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=18 *情報理論に関するIREトランザクションhttp://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=4547527 *データ圧縮会議pages.cs.brandeis.edu/~dcc /
最後に、ロスレス圧縮のスペシャリストではなくアマチュアである私は、最近、Deplump(http://www.deplump.com/index.html)いくつかの長い英語のテキストファイルといくつかのバイナリファイル(他の回答で引用されている私のお気に入りのrar、Bzip2、7zipと比較して)。オンラインで短いファイルをテストできます。詳細については、F。Woodetal。を参照してください。シーケンスメモ化、2011(http://www.sequencememoizer.com/を参照)またはFranckWoodのWebページhttp://www.stat.columbia.edu/~fwood/