ロスレス圧縮データの制限はどれですか?(そのような制限がある場合)


14

最近、私は圧縮関連のアルゴリズムを扱ってきましたが、ロスレスデータ圧縮で達成できる最高の圧縮率はどれなのか疑問に思っていました

これまでのところ、このトピックで見つけることができた唯一のソースはウィキペディアでした。

ビデオ、デジタル化されたフィルム、オーディオなどのデジタル化されたデータのロスレス圧縮は、すべての情報を保持しますが、データの本質的なエントロピーにより、1:2圧縮よりもはるかに優れた結果を得ることできません

残念ながら、ウィキペディアの記事には、この主張を裏付ける参照や引用は含まれていません。私はデータ圧縮の専門家ではないので、この件に関して提供できる情報、またはウィキペディアよりも信頼性の高い情報源を教えていただければ幸いです。


1
Theoretical Computer Scienceがこの種の質問をするのに最適なサイトかどうかはわかりません。必要に応じて、自由に投票するか、この質問をより適切なサイトに移行してください。
オーロン

3
:これは、あなたが探しているものかもしれen.wikipedia.org/wiki/Entropy_encoding。キーワードはエントロピーです。
Hsien-Chih Chang張顯之

3
残念ながら、より適切なサイトが何であるかはわかりません。量子化誤差は、おそらく大きな圧縮比を妨げるエントロピーの供給源です。
ピーターショー

2
どの種類のデータのロスレスデータ圧縮が必要ですか?画像、音楽、音声、一般データ、...?ただし、高レベルの概要については、data-compression.com / theory.html(およびページの下部にあるリソース)を参照してください
Marzio De Biasi

2
@Vorイメージ。より具体的には、医療画像。そのページを見てみましょう。ありがとう。
オーロン

回答:


27

魔法の数が正確に1:2で、たとえば1:1.1や1:20ではないように見える理由を誰かがまだ説明しているかどうかはわかりません。

1つの理由は、多くの典型的な場合、デジタル化されたデータのほぼ半分がノイズであり、ノイズは(定義により)圧縮できないことです。

私は非常に簡単な実験をしました:

  • 私は灰色のカードを取りました。人間の目には、灰色の厚紙の無地の、中立的な部分のように見えます。特に、情報はありません

  • そして、通常のスキャナーを使用しました。これは、写真をデジタル化するために人々が使用する可能性のある種類のデバイスです。

  • 灰色のカードをスキャンしました。(実際、グレーのカードをハガキと一緒にスキャンしました。ハガキは正常性チェックのためにあり、スキャナーソフトウェアが機能のないグレーのカードを見たときに自動的にコントラストを追加するなど、奇妙なことをしないようにしました。)

  • グレーのカードの1000x1000ピクセルの部分を切り取り、グレースケール(ピクセルあたり8ビット)に変換しました。

私たちが今持っているものは、あなたが勉強するときに何が起こるかのかなり良い例でなければなりません 、晴れた空など、スキャンした白黒写真の特徴のない部分。原則として、見るべきものはまったくないはずです。

ただし、倍率を大きくすると、実際には次のようになります。

30x30の作物、10倍に拡大

はっきりと見えるパターンはありませんが、均一な灰色ではありません。その一部はグレーカードの不完全性が原因である可能性が最も高いですが、そのほとんどはスキャナーによって生成されたノイズ(センサーセル、アンプ、A / Dコンバーターなどの熱ノイズ)であると想定します。ガウスノイズによく似ています。これがヒストグラムです(対数スケール):

ヒストグラム

ここで、各ピクセルのシェードがこの分布からiid を選択したと仮定した場合、エントロピーはどれくらいありますか?私のPythonスクリプトは、ピクセルごとに最大3.3ビットのエントロピーがあることを教えてくれました。そして、それは多くのノイズです。

これが本当に当てはまる場合、使用する圧縮アルゴリズムに関係なく、1000x1000ピクセルのビットマップは、最良の場合、412500バイトのファイルに圧縮されることを意味します。そして実際に何が起こるのか:432018バイトのPNGファイルを手に入れました。


少し一般化すると、このスキャナーでスキャンする白黒写真に関係なく、次の合計が得られるようです。

  • 「有用な」情報(ある場合)、
  • ノイズ、約 ピクセルあたり3ビット。

圧縮アルゴリズムが有用な情報を1ピクセルあたり<< 1ビットに圧縮したとしても、1ピクセルあたり3ビットの非圧縮性ノイズが残っています。また、非圧縮バージョンは8ビット/ピクセルです。そのため、圧縮率は、何をしても1:2の大まかな範囲になります。


別の例として、過剰に理想的な状態を見つけようとします。

  • 最も低い感度設定(最小ノイズ)を使用した最新のDSLRカメラ。
  • 灰色のカードの焦点が外れたショット(灰色のカードに目に見える情報があったとしても、それはぼやけてしまいます)。
  • コントラストを追加せずに、RAWファイルを8ビットグレースケールイメージに変換します。市販のRAWコンバーターで典型的な設定を使用しました。コンバーターは、デフォルトでノイズを削減しようとします。さらに、最終結果を8ビットファイルとして保存しています。つまり、本質的には、生のセンサー読み取り値の最下位ビットを破棄しています。

そして、最終結果は何でしたか?スキャナーから得たものよりもずっと良く見えます。ノイズはそれほど目立たず、見られるものはまったくありません。それにもかかわらず、ガウスノイズがあります。

30x30の作物、10倍に拡大 ヒストグラム

そしてエントロピー?2.7ビット/ピクセル。実際のファイルサイズは?1Mピクセルの場合、344923バイト。いくつかの不正行為を伴う、本当に最良のシナリオでは、圧縮率を1:3に押し上げました。


もちろん、これらはすべてTCSの研究とはまったく関係ありませんが、実際のデジタル化されたデータの圧縮を実際に制限するものを覚えておくことは良いことだと思います。より手の込んだ圧縮アルゴリズムと生のCPUパワーの設計の進歩は役に立たないでしょう。すべてのノイズをロスレスで保存したい場合、1:2をはるかに上回りません。


3
涼しい!ノイズがガウスの場合、最初のk個の特異ベクトル(または同様のより派手な手法)に投影すると多くのノイズが除去されると感じています。グーグルの学者による簡単な検索で、M。EladとM. Aharonによる記事が見つかりました。これは、射影法+ベイジアン統計のトリックを使用しています:ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4011956 おそらく、2006年には「最先端」でした。もちろん、それは無損失ではありませんが、Jukkaのデータは、小さなサイズを主張する場合、少なくともノイズを失う必要があることを示しています。
サショニコロフ

あなたの例は、画像のロスレス圧縮についてのみです。しぶしぶ物理センサーからのデータ(音、画像、ビデオ、ただしおそらく異なる要因)への一般化を許可しますが、圧縮が適用される(多くの?)他のフィールドがあります。 2(自然言語が頭に浮かぶ)、ノイズが少ないため。
ジェレミー

2
@Jukka:+1:美しい実験!@Sasho:医用画像の場合、従来の知恵は、たとえノイズである可能性が高いとしても、何も失うことはないということです。
ピーターショー

2
非常に素晴らしく明確な説明!
マルツィオデビアシ

2
もう1つのコメント:これは医療画像では本当に避けられません。医療画像でこのノイズのかなりの量を得るために十分な精度を使用しない場合、おそらく実際に関連するいくつかの実際の関連する詳細を失うことになります。
ピーターショー

16

シャノンのノイズのないコーディング定理についてすでに知っていますか?この定理は、ロスレス圧縮の理論的限界を確立します。他の人からのコメントのいくつかは、この定理について知っていると仮定しているように見えますが、質問から、あなたが探している答えかもしれないと思います。


私はその定理を知りませんでした。達成可能な圧縮率は圧縮されるデータのエントロピーに依存するため、Wikipediaの主張は正確には正しくないと思います。
オーロン

画像の本質的なエントロピーを決定するのは本当に難しいと思います。データが2次元ではなく線形であると、はるかに簡単です。
ピーターショー

では、ランダムに(均一な)生成されたテキストの最大圧縮率はどうなりますか?
スカン

11

圧縮は物事をエンコードするための日和見的な方法であり、「ロスレスデータ圧縮によって達成可能な最適な圧縮率」を求める場合、圧縮のコンテキストについてより具体的にする必要があります。圧縮率は圧縮のサイズと「生の」エンコーディングのサイズですが、「生の」エンコーディングのサイズはオブジェクトの仮説に依存します(つまり、そのドメインのサイズ、または「元のバッグのサイズ」) )。単純な例として、正の整数をエンコードするタスクを考えますn>0

  1. 次の場合、1ビットのみを使用できます。 n

  2. 一般的な実用的な解決策は、エンコードする整数がすべて1〜256の場合(必要に応じて16、32、64ビットに一般化する)、8ビットを使用することです。

  3. n+1nn

  4. より深刻で汎用的な整数のエンコードスキームはガンマですログ2nログ2n+1nログ2n1ログ2n2ログ2n1nlgn=最大1ログ2n

  5. 2ログ2n1

  6. KK計算できません。この概念を回避する簡単な回避策は、レビンの自己区切りプログラムによって与えられます。このプログラムでは、実行時間に制限があるプログラムのみを考慮します(たとえば、元のインスタンスの長さの一定の要因内で、各シンボルを記述する必要があるアルゴリズムの複雑さ)。

コルモゴロフの複雑さとその変形について作業しているコミュニティ全体があり、ロスレス圧縮に取り組んでいる別のコミュニティ(私が使用した整数の例は他の多くのデータタイプと同等です) (コルモゴロフは本当に私の専門ではありません)、しかし、これはあなたがあなたの質問を明確にするのに役立つことを願っています。


7

(私のコメントの単なる延長)

(ジョーの答えで指摘したように)シャノン-1948年の論文で、「コミュニケーションの数学理論」はデータ圧縮の理論を定式化し、ロスレスデータ圧縮には根本的な限界があることを確立しました。エントロピー率と呼ばれるこの制限は、Hで示されます。Hの正確な値は、情報ソース、より具体的にはソースの統計的性質に依存します。Hに近い圧縮率でソースをロスレス方式で圧縮することは可能です。Hより良くすることは数学的に不可能です。

ただし、コントラストの高いエッジがなく、滑らかなレベル遷移を持つ画像の一部のクラス(医療用グレースケール画像など)は圧縮できます(それほど効率的ではありません)。

JPEG-LSJPEG2000は、医療画像のロスレスストレージの標準のようです。圧縮率の比較については、この表を参照してください(JPEG-LSはわずかに優れた圧縮を実現します)。

「ロスレス医療画像圧縮」を使用して、次の記事が見つかりました。

医療画像圧縮技術に関する最近(2011年)の調査:2次元医療画像圧縮技術-調査

...このペーパーでは、DCT、DWT、ROI、および2次元(2D)静止画像用のニューラルネットワークに基づくさまざまな圧縮技術の概要を示します。

2つの標準ロスレス圧縮アルゴリズムの詳細なプレゼンテーション:ロスレスモードでのJPEG-LSおよびJPG2000:グレースケール医療画像のロスレス圧縮-伝統的および最先端のアプローチの有効性

...複数の解剖学的領域、モダリティ、およびベンダーからの3,000、679(3,679)シングルフレームグレースケールイメージがテストされました。...

別の調査:現代の医療画像圧縮技術の調査

編集

おそらく、「イメージのエントロピーとは一体何なのか?」... OK、それは画像に含まれる情報です...しかしそれをよりよく理解するために、あなたは通常画像圧縮で使用される3つの段階について何かを読むべきです:

  • 変換(たとえば、離散ウェーブレット変換)
  • 量子化
  • エントロピーエンコーディング

Googleを使用して、画像圧縮に関するチュートリアルや本を検索したり(クイックチュートリアルなど)、オンラインテクニカルビデオ(講義16-画像とビデオコーディングの概要など)を視聴したりできます。


7

ファイルを文字列と考えてください。

ストリングのコルモゴロフの複雑さよりも良いことはできません(これは、コモゴロフの複雑さの定義によるものです)。

文字列の長さを修正します。そのため、現在は長さnの文字列のみを見ています。

このようなすべての文字列の半分は、最大で1ビット圧縮できます。すべての文字列の1/4は、最大2ビットで圧縮できます。このようなすべての文字列の1/8は、最大3ビットで圧縮できます。

そのため、2:1の比率で圧縮できる文字列(画像、ファイルなど)の割合は、ごくわずかです。では、なぜ圧縮が機能するのでしょうか?実際の人々が実際に圧縮しようとしているデータのほとんどすべてが高度に構造化されているため、ランダムなファイルのようには見えません。データがランダムに見えるほど、圧縮が難しくなります。彼らは手をつないで行きます。ほとんどの文字列はランダムに見えます。

これを実際に見るには、ランダムプロセスを使用してランダムファイルを生成します。本当にランダムなファイルを意味します。ここで、お気に入りの圧縮アルゴリズムを使用して圧縮してみてください。ほとんど常に、同じサイズのままになるか、大きくなります。

反対に、非常に圧縮可能な文字列があります。次の文字列を取ります:100000..000(1の後に100万個のゼロが続きます)。その説明は前の文に収まり、コンピューターはその説明(または非常によく似た説明)から再構成できます。しかし、その説明は長さ百万桁近くにはありません。

実際、そのプロパティを持つ文字列(圧縮率が高い)は、考えられるすべての文字列の中で非常にまれです。2番目の事実は、人間が生成したデータのほとんどが、非常に構造化されているため、非常に圧縮しやすいことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.