私は地球の衛星画像の大規模なアーカイブを扱っています。それぞれが同じ領域で15分間隔で撮影されているため、それらは互いに非常に似ています。 2つの隣接するものは次のようになります。
ビデオアルゴリズムは、複数の類似した画像を非常によく圧縮します。ただし、この画像はビデオには大きすぎ(10848x10848)、ビデオエンコーダーを使用すると画像のメタデータが削除されるため、ビデオエンコーダーでこのような大きな画像を処理しても、それらを抽出してメタデータを復元するのは面倒です。
いくつかのテストを行うために、1日の96個の画像を1080x1080ピクセル、合計40.1MBに削減し、次の結果でさまざまな圧縮を試みます。
最後の3つは、コンテキストをはるかに活用し、実際の動作は従来の圧縮よりも優れていると思われますが、圧縮率は、MP4ビデオと比較してかなり低く、15 MB以下にして、画質を維持することができます。
ただし、これらの圧縮ユーティリティで使用されるアルゴリズムは、ビデオ圧縮のように画像の類似性を利用していないようです。実際、各画像を個別に圧縮する packJPG を使用すると、セット全体が32.9 MBになり、fp8とpaq8pxdに非常に近くなりますが、画像間の類似性をまったく利用しません(各画像は個別に圧縮)。
別の実験では、上記の2つの画像の差をMatlabで計算すると、次のようになります。
Fp8で両方の元の画像(219.5 + 217.0 = 436.5 kB)を圧縮すると、それらは350.0 kB(80%)になりますが、それらの1つと差分画像(同じ品質のjpgとして122.5 kBを使用)を圧縮すると、結果は270.8 kB(62%)のファイルなので、再度(mp4とpackJPGの比較から明らかなように)、fp8は類似点をあまり活用していないようです。 rarで圧縮した場合でも、元の画像では、1つの画像とその差の合計がfp8よりも優れています。その場合、rarはそれを333.6 kB(76%)に下げます。
多くのアプリケーションを想定できるので、この問題には適切な圧縮ソリューションが必要だと思います。私の特定のケースのほかに、多くのプロの写真家は、連続撮影やタイムラプス画像などのために多くの類似のショットを持っていると思います。このような圧縮の恩恵を受けるすべてのケース。
また、少なくとも画像データは必要ありません(メタデータは保持する必要があります)。
それで...圧縮された画像間の類似性を利用する圧縮方法はありますか?
これを行う特定のソフトウェアは知りませんが、この問題についていくつかの調査があります。たとえば、記事 類似画像のセットの圧縮 によるSamy Ait-Aoudia、Abdelhalim Gabis、Amina Naimi、および ハイブリッド圧縮モデルを使用した類似画像のセットの圧縮 Jiann-によるDer Lee、Shu-Yen Wan、Chemg-Min Ma、Rui-Feng Wu。
より実用的なレベルでは、たとえば ImageMagick を使用して連続する画像間の差異を計算し、結果をjpeg(または、圧縮されたpngロスレスにしたい)。 1つの基本イメージと、はるかに小さいはずの圧縮された「デルタ」イメージのセットを取得します。 ImageMagickを使用して差を計算するには:
convert image2.png image1.png -compose MinusSrc -composite -depth 24 -define png:compression-filter=2 -define png:compression-level=9 -define png:compression-strategy=1 difference-2-1.png
追加して再計算するには:
convert image1.png difference-2-1.png -compose Plus -composite image2-reconstructed.png
(代わりにjpgを使用して同じことを行うことができ、多くのスペースを節約できます)。