5

複数の JPEG画像を 1 つの大きな画像としてまとめて保存すると、保存容量が減るという問題を調べています。基本的な直感として、画像にはいくつかの類似点 (同じ場所またはほぼ同じ時点で撮影されたものなど) がある傾向があり、この類似性を利用してスペースを節約できますか?

全体の流れは、JPG画像を入力→各画像をRGB画像タイルに変換→似たようなRGBタイルをまとめて再編成→再度JPGフォーマットに変換。当然、画像を取得するときは、プロセスをにする必要があります。

Y コンポーネントの DC 係数をタイル再構成の類似度として使用すると、10 個の画像で最大 8% のスペース節約が得られました。これを 100 枚の画像に対して行うと、節約額は 3% まで削減されます。

  • タイルの再編成後に節約するにはどうすればよいですか?つまり、JPEG エンコーディング プロセスのどの部分でこの画像タイルの再編成を利用するのでしょうか?

  • Y コンポーネントの DC 係数の代わりに、JPEG エンコーディングでより有効に活用できると考えられる他のメトリックはありますか?


改訂:

複数の画像を集約するときに、この種の類似性をよりうまく活用できるJPG以外の画像形式はありますか? たとえば PNG のように?

4

2 に答える 2

5

おそらく、エンコーディングにJFIFを使用しています。

この方法がどのように機能するかわかりません。私が正しく理解していれば、あなたは画像をタイルに分割し、それらを1つのメガ画像に集約し、「類似した」タイルを互いに近くに配置しています。

AFAIK、JPEG実装は、マクロブロックと呼ばれる、画像内の個々の8x8タイルごとに個別のDCTを実行します。言い換えると、JPEGは隣接するマクロブロック間のコヒーレンスを利用できません(これは、圧縮技術の基本的な前提であるように見えます)。

独自のタイルがマクロブロックよりも大きい場合、画像ヘッダースペースの節約以上の改善は見られません。

例:10個のJPG画像ヘッダーを1に置き換えると、90%のスペース節約になりますが、ヘッダーのみです。ファイル全体を見ると、ヘッダーはファイル全体のごく一部であるため、スペースの節約はわずかです。100個の画像ヘッダーを1に置き換えると、99%節約できますが、これもヘッダーのみです。どちらの場合も、すべてのマクロブロックは引き続きエンコードされ、以前とまったく同じように保存されます。

于 2013-03-07T13:27:38.887 に答える
2

メリットが見られる分野は 2 つあります。

まず、類似した領域を隣り合わせに配置すると (特に、画像のエッジが完全に一致し、不連続性がない場合 - これは非常にまれですが)、JPEG アルゴリズムの DCT (周波数空間) 部分は、大きな領域を徐々に近似することによって機能します-ish 領域 (最大サイズがわからない) を確認し、大きな領域と複数の小さな領域の近似値の間の誤差を調べて、より多くのローカリゼーションの修正を行います。

画像が非常に似ているか、非常に小さい場合を除いて、この効果は小さいと思います(そのため、領域に比例してエッジが長くなります)。

第 2に、jpeg 圧縮のハフマン コーディング部分は、同じビット パターンが複数のサブイメージに表示され、同じ (短い) トークンで圧縮されるため、利点が見られます)。

この側面は、同じ画像内にある限り、画像を圧縮する配置に依存しません。

于 2013-03-07T13:06:56.267 に答える