0

2つの画像を比較して、次のような一致しないピクセルの配列を取得しています

rgb(12, 54, 69) 1 4
rgb(19, 54, 98) 4 8
rgb(12, 54, 69) 2 9
rgb(86, 85, 10) 9 7

これをネットワーク経由で送信する必要があります。圧縮するために私はそれを作ることができます

rgb(12, 54, 69) (1, 4), (2, 9)
rgb(19, 54, 98) (4, 8)
rgb(86, 85, 10) (9, 7)

ただし、この単純な圧縮が大きな違いの場合にはあまり利益をもたらさないとは思えません。私はまだテストを実行していません。

画像全体が変更されると、新しい画像の通常の JPEG 圧縮はサイズがはるかに小さくなります。ただし、わずかな違いについては、この方法の方がバイト オーバーヘッドが小さくなります。また、各画像を上から下にループせずに変化量を知る方法はありません。

同じことを行う標準的な方法はありますか? 私はprotobufまたはブーストシリアライゼーションとQtの上にC++で実装します

4

1 に答える 1

0

最初に画像を jpeg に圧縮し、この新しい jpeg ファイルのサイズを関数に渡します。関数を反復処理するときに、渡されたサイズを超えるとすぐに失敗を返し、jpeg を送信するだけです。この方法では、関数の最後に到達する必要はありません。

ただし、最初に現在のコードのプロファイルを作成します。めったにないケースですが、実際にこのコードがボトルネックになっている場合は、このトラバーサルを行うためのネイティブ/C モジュールを作成した方がよいでしょう。

もちろん、これは、関数にかかる時間が平均して JPEG 作成時間を超えていることを前提としています。いつものように、プロファイル、プロファイル、最適化前のプロファイル。

于 2012-07-02T08:11:16.160 に答える