最小のJPG圧縮可能なパターンは何ですか?(カメラの撮影布、スケール/角度/照明は異なる場合があります)


46

カメラの観点から、JPGで圧縮するのが非常に難しい布を設計しようとしています。その結果、サイズの大きなファイルが生成されます(または、ファイルサイズが固定されている場合、画質が低下します)。

布がカメラから遠く離れていたり、回転していても機能する必要があります(スケールが1倍から10倍まで変化する場合があります)。

ノイズは非常に良い(圧縮しにくい)が、遠くから見ると灰色になり、圧縮しやすくなる。良いパターンはフラクタルのようなもので、すべてのスケールで似ています。
は優れています(葉、小さな枝、小さな枝、大きな枝)が、使用する色が少なすぎます。

これが最初の試みです。 最も非圧縮性

もっと最適なパターンがあるはずです。
六角形または三角形のテッセレーションの方がパフォーマンスが良いかもしれません。

JPGはY 'Cb Cr色空間を使用しますが、Cb Crも同様の方法で生成できると思いますが、カメラが明るい領域または暗い領域を飽和させるため、Y'(明るさ)の全範囲を均一に使用しない方が良いと思います(照明は完璧ではありません)。

質問:この問題に最適な布のパターンは何ですか?


1
この質問に目を光らせておく必要があります。...興味深い回答が得られた場合、www.spoonflower.com(または同様のサービス)で生地の注文を予測できます。私のコレクションに;-)
RBerteig

興味深いパターン競争プロジェクトは次のとおりです。1)そのようなパターンの高精細画像を撮る2)回転させ、そのランダムな部分を(ランダムなスケールで)撮って、少しぼかし、少しノイズと小さなランダムな色を追加する偏差3)JPGで圧縮する4)ファイルサイズを確認し、品質低下に関するメトリックを計算し、これらのメトリックを使用して「スコア」を計算します。5)何回も繰り返してこのパターンの平均スコアに収束します6)他のパターンで繰り返してスコアを比較します
ニコラスラウル

1
損失の多いアルゴリズムは、より多くのデータを破棄することで常に圧縮できるため、高頻度の詳細に依存するパターンを使用する方が幸運だと思われます。たとえば、細い線。つまり、圧縮率は高くても、品質は非常に急速に低下します。あなたが達成したいものに依存すると思います。指紋を考えてください。これは、細部を保持する必要があるため、JPEGを介した良好な圧縮にウェーブレットが必要であった古典的なケースです。
データガイスト

@datageist:線のある布の画像(生のカメラ出力)は圧縮するのが難しいかもしれませんが、後退して別の写真を撮ってください:灰色のピクセルのみが含まれ、ほとんど損失なしで非常に簡単に圧縮できます。私が探しているパターンは、幅広いスケールで圧縮するのが難しい写真(生のカメラ出力)にならなければなりません。
ニコラスラウル

@NicolasRaoulそうですね、十分な情報を捨てれば何でも圧縮できると言っています。「圧縮するのが難しい」(つまり、楽しみのために)区別できるパターンが必要ですか、それとも、パターンを含む画像を圧縮しようとする人々を積極的に阻止しようとしていますか?
データガイスト

回答:


15

ノイズは非常に良い(圧縮しにくい)が、遠くから見ると灰色になり、圧縮しやすくなる。良いパターンはフラクタルのようなもので、すべてのスケールで似ています。

さて、フラクタルノイズがあります。私が思うにブラウンノイズは、あなたがそれにズームと同じように見て、フラクタルです。ウィキペディアは、さまざまなスケールでそれ自体にパーリンノイズを追加してフラクタルノイズを生成することについて話していますが、これはおそらく同じですが、私にはわかりません。

パーリンフラクタルノイズ

ただし、これを圧縮するのは難しいとは思いません。ノイズロスレス圧縮に困難ですが、JPEGはロスが多いため、ディテールに苦労するのではなく、ディテールを捨てるだけです。「JPEGで圧縮しにくいもの」を作成できるかどうかはわかりませんが、その品質レベルでは圧縮が困難なものはすべて無視されるからです。

無限のチェッカーボードプレーンのように、どのスケールでもハードエッジのあるものがおそらくより良いでしょう:

無限の市松模様の飛行機

また、多くの色を持つもの。フラクタルノイズではなく、実際のフラクタルを見るかもしれません。たぶんモンドリアンフラクタル?:)

モンドリアンフラクタル


1
どうもありがとう!フラクタルノイズは間違いなく私が探していた種類のものですが、テストではうまく圧縮されており、ヒートマップのような滑らかさの代わりに、より急激な遷移を使用できると思います。チェックボードの問題は、実際に布のどの部分を撮影するかによってパフォーマンスが異なることです。モンドリアンフラクタルは素晴らしく、これまでの私のテストで最高のパフォーマンスを発揮します。多分、より多くの色とわずかに異なるパラメーターを使用できます。
ニコラスラウル

@NicolasRaoul:うーん。付きのシェルピンスキーのカーペットかな?これはすでに一般的なキルトパターンです。
エンドリス

シェルピンスキーの三角形または正方形のテッセレーションは本当に素晴らしいかもしれません!
ニコラスラウル

14

コンピューターで生成された画像について話している場合、ノイズが適切なアプローチです。しかし、ここにはカメラキャプチャのステップがあります。

フラクタルビットがあるため、スケール不変性の問題が非常に重要です。ただし、実際にフラクタルである必要はありませんが、その人が撮影される距離範囲が限られていることを考慮した場合です。つまり、布を着ている人が写真の背景にいる場合、とにかく大きな影響はありません...

JPEGエンコーダーをだます最良の方法は、量子化=多くの詳細と鋭いエッジを生き残る非常に高い高周波係数を持つブロックを持つことだと思います。したがって、係数シーケンス全体を明示的に記述する必要があります(15番目の係数などのEOBの代わりに)。チェッカーボードパターンは、それを達成するための良い方法です。唯一の欠点は、レンズの低解像度+カメラのアンチエイリアシングフィルターがぼやける可能性が高いことです!JPEGはマクロスケールではあまり機能しないため、すべてが8x8ブロック(またはクロマごとに16x16ブロック)内で発生するはずです。レンズがどれだけぼやけていても、8x8ブロックをできるだけ乱雑にしなければなりません。

提案は次のとおりです。

スケール不変、ハードJPEG圧縮パターン

コントラストの低いブロックがここで何をしているのか不思議に思うかもしれませんが、それらはズームアウトされたときにコントラストのゾーンを維持するのに役立ちます。ここでの課題は、表示スケールに関係なく、対照的なパターンを持つものを作成することです。

私はこれを正式に評価していません。最良の方法は、画像を取得し、さまざまなパラメーターで多数のトリミング/サイズ変更/ブラーを適用し、JPEGの合計サイズを吐き出すスクリプトを作成することです。


どうもありがとう!私の質問の写真のコンセプトと非常によく似ていますが、実際ははるかに優れています。「フラクタル性」が要因4である特定の理由は何ですか?ファクター2よりも良いですか?
ニコラスラウル

理由はありませんが、私はそれをより多くの色合いできれいに見せようとしたので、4x4の正方形から始めました。
-pichenettes

三角形ではなく正方形を選択する理由は何ですか?今トライしているのは、三角形がたくさんの鋭いエッジを作ることです。これは良い考えだと思います。ハイブリッドの三角形→菱形→六角形→三角形のアプローチで、低い「フラクタル性」に到達できます。低解像度は、カメラが解像度の限界まで鋭い形状を検出する可能性を高めるため、良いことだと思います。
ニコラスラウル

Squaresはコーディングが最も簡単なものでした。他の形状が正方形よりも「エッジ密度」が優れているかどうかはわかりません。
-pichenettes

11

利用可能なJPEGとTransform Compressibleには違いがあります。

たとえば、テレビの白い粒子の粗いノイズを考えてみましょう。

一般的なホワイトノイズは周波数内で最大に広がっているため、変換ドメインコーディング手法では圧縮できないホワイトノイズほど良い例はありません。このようなノイズを取り、DCT(または必要に応じてDFT)を使用すると、周波数領域も広く広がり、すべての係数が重要になることがわかります。

ただし、クオンタイズから積極的になることを妨げるものはまだありません。これにより、高周波数領域から大量の廃棄を行うことができます。その結果、平均二乗誤差が大きくなります。ただし、知覚的には依然としてノイズです。ただし、かなりぼやけている場合があります。

一方、今ではシャープなエッジがある画像を撮影します。

シャープなエッジは、より高い周波数でも広がります(ただし、前の場合より少し小さい場合があります)。ただし、それを圧縮して高周波数を落とそうとすると、視覚的に重大な障害が生じます。そのような画像の帯域幅の広がりは可能な限り最高ではありませんが、JPEGまたはそのような同等の圧縮の場合、そのような画像を知覚的に同等の品質に保つことは困難です。

非可逆圧縮の場合、タフでシンプルなのは、許容される歪みの量と種類に依存します。


私のファブリックがランダムな黒/白ピクセルの10 ^ 8x10 ^ 8テーブルであるとしましょう。カメラは、ファブリックの10x10ピクセルの写真を撮ります。統計的に、この10x10の画像はすべてのピクセルが非常に似たグレーになり、均一性の低い画像よりも歪みが少なく(種類を問わず)圧縮しやすいのではないでしょうか?
ニコラスラウル

10

以下の構成は、パターンのフラクタルの種類の構造を示しています。次のすべての画像は、前の画像の各2x2ピクセルブロックで平均化した結果です。パターンの文字全体は同じままですが、画像のコントラストは徐々に低下しています。前に言ったように、ズームアウトすると画像が灰色になります。

スケーリング動作

しかし、フラクタルプロパティを使用すると、さまざまな解像度の複数のパターンを重ね合わせて、画像のコントラストを目的の範囲内で安定させることができます。以下は、4層パターン(512x512 GIF)の例です。この結果は、ブラウンノイズにより近く、JPEG圧縮もほとんどできません。

4層の組み合わせ


5

私の推測では、最悪の圧縮可能なパターンはホワイトノイズ(均一な分布)です。さまざまな解像度でノイズが多いように見える必要があるため、スケール空間でノイズの多い画像を作成し、それらを組み合わせることができます。

I=inNiGi

ここで、は最終的な布の画像、はホワイトノイズ(ごとに異なる)で満たされた画像、はサイズガウスカーネルです。畳み込みを表します。N I I G I I σ *INiiGiiσ

そのような画像を構築するより良い方法は、周波数領域で直接動作することです。

  1. ホワイトノイズで満たされた画像を作成します。
  2. 画像に対して8x8ブロックのIDCT(逆離散コサイン変換)を実行します。

結果は、DCTドメインで最高のエントロピーを持つため、JPEGの最悪の圧縮可能パターンになります。しかし、さまざまな解像度でこれがどのように動作するかはわかりません。


5

IIRC、JPEG解凍アルゴリズムが指定されていますが、正確な圧縮アルゴリズムは指定されていません。さまざまなアルゴリズムで合法なJPEGファイルを作成できます。そのため、選択したイメージコンプレッサーでこれをテストする必要があります。

JPEGなどの損失の多いコンプレッサーでは、何でも同じ量で圧縮できます。固定圧縮レベルでは、画像によって圧縮の品質が異なる場合があります(圧縮解除された結果のノイズまたはエラーが増加します)。したがって、圧縮解除された結果に最大量のノイズを追加するものが必要です。このため、高周波マクロブロック係数を削除し、係数を量子化するために最大誤差が必要です。

これはおそらく、さまざまな高周波ピケット、および特定の設定で特定のコンプレッサーの可能な量子化レベルの間にあるグレーとカラースケールの変動を意味します。

これをどのような照明でも任意の距離で機能させるため、ピケットの周波数(おそらくフラクタル、またはランダムな周波数変調で傾斜させる)と色とグレーレベル(非コヒーレント、たとえば色とレベルは独立して)。色相の分散は距離にあまり依存しないので、選択した量子化器の最悪のケースになるようにそれらを選択する必要があります。カラーパターンの平均サイズは、輝度パターンのサイズの2倍にして、4:1:1(面積)YUVマクロブロック構成に一致させることができます。

私は、フラクタルに重ね合わせたりパッチを当てたりする、非常に多様なスケールの非常に色の付いたモアレパターンの束から始めます。


2

非常に平坦なスペクトル(ホワイトノイズなど)を持つパターンを共有しましょう。したがって、このパターンをJPGで圧縮するのは非常に困難です。下のサンプル画像は4倍に拡大されています。

パターン自体は規則的ですが、非周期的であり、決定論的アルゴリズムによって簡単に生成できます。また、フラクタル特性があります。

準白色雑音スペクトルをもつ非周期的パターン

遠くから見た: 元の 遠い


2

ランダムノイズの圧縮率は非常に低くなっています。独立したR、G、Bの値を生成することにより、カラーで生成できます。

遠くから見ると、確かに(ローパスフィルタリングによって)ノイズが一掃されます。異なる解像度でノイズ画像を生成する、つまり、ますます大きなピクセルを使用し、それらを重ね合わせることで、それを回避できます。

画像を追加するとき、値の範囲の問題に直面します。これは、画像の数に応じて増加します。Nとしましょう。平均化するだけで、ノイズの振幅は1 / Nに減少します。

無相関の均一ノイズを選択すると、重ね合わせにより√N標準偏差の準ガウス分布が得られるため、Nで除算する代わりに、√Nで除算(適切な再センタリングを行う)して振幅の減少を制限できます。

最後に、飽和した値は大きな均一な領域を形成するため、値を飽和させるよりもラップアラウンドさせる方が良いと思います。


2

RGBブラウンノイズ(4096x4096 GIF)を得る別のアプローチを次に示します。 RGBブラウンノイズ


0

素晴らしい質問です!概念的には、ホワイトノイズは、時間を調整しても変化しない信号です。同様に、サイズがスケーリングされてもフラクタルは変化しません。非可逆圧縮プロセスは、スペクトル(時間またはサイズ)のすべてではなく、最も重要なもののみを使用するため、フラクタルやノイズはクッキーのような匂いがします。したがって、布地の色とパターンを試してください。それらはフラクタルでなければならず、フラクタル動作はランダムに生成された白でなければなりません。写真では黒(CMY色空間)に見えるが、実際にはカラフルなパターンのファブリックを取得する必要があります。

幸運を!、そしてもしあなたがanwserを手に入れたらそれを投稿してください!!!。


「写真で黒く見える布地を手に入れるべきです」<-その場合、簡単に圧縮できないでしょうか?
ニコラスラウル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.