1

一連の画像があります。それぞれは通常 (常にではありません) 前のものと似ており、3 つまたは 4 つの小さな長方形の領域が更新されています。最小限のディスク容量を使用してこれらの変更を記録する必要があります。

ソース イメージは圧縮されていませんが、デルタを圧縮したいと考えています。

画像を入力とまったく同じように再作成できる必要があります (そのため、非可逆ビデオ コーデックは適切ではありません)。

私は次のようなことを考えています:

  • 古い画像のネガと新しい画像を合成する
  • 合成された画像を、RLE を使用して圧縮できる一般的な形式 (おそらく PNG) で保存します。
  • 前のイメージとデルタを合成して、2 番目のイメージを再作成します。

画像にはアルファ チャネルがありますが、この関数では無視できます。

この機能を備えた、実装が簡単なアルゴリズムまたは無料の Java ライブラリはありますか?

4

3 に答える 3

1

長方形の数が通常少なく、長方形自体が小さい場合は、違いのある行と列を作成し、それを使用して異なる可能性のある長方形を考え出すことができます...

次のピクセル値の画像を想像してみてください...

0 0 0 1 1 1 2 2 3 3
0 0 1 1 0 0 1 1 2 2
0 0 1 1 0 0 0 1 1 2
0 0 1 1 0 0 0 1 1 2
0 1 1 0 0 3 0 0 1 1
0 1 1 0 0 3 0 0 1 1
0 0 1 1 0 0 0 1 1 2
0 0 1 1 0 0 0 1 1 2
0 0 0 1 1 1 1 1 0 2
2 2 2 2 2 1 1 2 2 2

...と...

0 0 0 1 1 1 2 2 3 3
0 1 1 1 0 0 1 1 2 2
0 1 2 4 0 0 0 1 1 2
0 1 2 3 0 0 0 1 1 2
0 1 1 0 0 3 0 0 1 1
0 1 1 0 0 3 0 0 1 1
0 0 1 1 0 3 3 2 1 2
0 0 1 1 0 3 3 2 1 2
0 0 0 1 1 2 2 2 0 2
2 2 2 2 2 1 1 2 2 2

まず、行、行、列に違いがあるピクセルのマスクを考え出します...

    0 1 1 1 0 1 1 1 0 0

0   0 0 0 0 0 0 0 0 0 0
1   0 1 0 0 0 0 0 0 0 0
1   0 1 1 1 0 0 0 0 0 0
1   0 1 1 1 0 0 0 0 0 0
0   0 0 0 0 0 0 0 0 0 0
0   0 0 0 0 0 0 0 0 0 0
1   0 0 0 0 0 1 1 1 0 0
1   0 0 0 0 0 1 1 1 0 0
1   0 0 0 0 0 1 1 1 0 0
0   0 0 0 0 0 0 0 0 0 0

行と列のデータは、長方形が存在する可能性のある場所に関するガイダンスを提供します。

    0 1 1 1 0 1 1 1 0 0

0   0 0 0 0 0 0 0 0 0 0
1   0 ? ? ? 0 ? ? ? 0 0
1   0 ? ? ? 0 ? ? ? 0 0
1   0 ? ? ? 0 ? ? ? 0 0
0   0 0 0 0 0 0 0 0 0 0
0   0 0 0 0 0 0 0 0 0 0
1   0 ? ? ? 0 ? ? ? 0 0
1   0 ? ? ? 0 ? ? ? 0 0
1   0 ? ? ? 0 ? ? ? 0 0
0   0 0 0 0 0 0 0 0 0 0

可能な長方形のそれぞれを繰り返し処理し、変更があるかどうかを判断してから、それらをエンコードします。行や列の代わりに他のハッシュ軸を追加できます。必要に応じて...画像を領域に分割し、領域に変更があるかどうかをハッシュしてから、ハッシュを使用して領域に変更が必要かどうかを判断できます。エンコードされます。任意の回数を実行でき、小さなファイルも生成する適度に高速なアルゴリズムを使用できます。

いずれにせよ、最善の策は、変更されたもののマップを作成し、ブロックが変更されたかどうかを示す集計を使用して、意思決定をガイドすることだと思います。これらを十分に収集すると、さまざまな状況で適切に機能する2つの異なるアルゴリズムを作成し、マップの特性と作成したハッシュに基づいて使用するアルゴリズムを決定する責任の連鎖にそれらを配置することもできます。

于 2010-03-31T04:09:55.873 に答える
1

変更のみで構成される画像で、既存のロスレス圧縮ツール (PNG、ロスレス JPEG など) を少し試してみてください (PNG の場合は透明な背景、または均一な色を使用できます)。これらのアルゴリズムは、ほぼ一定の画像を圧縮する場合に非常に効率的です。専門家でなければ、これらのアルゴリズムに勝るものはありません。

于 2010-03-31T03:55:58.833 に答える
0

変更が長方形のままである場合は、これらのセクションを個別に保存できます。つまり、元の画像に変更とその位置を加えたものです。

于 2010-03-31T03:00:52.937 に答える