長方形の数が通常少なく、長方形自体が小さい場合は、違いのある行と列を作成し、それを使用して異なる可能性のある長方形を考え出すことができます...
次のピクセル値の画像を想像してみてください...
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つの異なるアルゴリズムを作成し、マップの特性と作成したハッシュに基づいて使用するアルゴリズムを決定する責任の連鎖にそれらを配置することもできます。