動き補償は、フレーム エンコーディングの最適化にすぎません。動きベクトルについて話すと、これはウィキペディアで定義されている「ブロック動き補償」です。
ブロック動き補償は、現在のフレームを重複しないブロックに分割し、動き補償ベクトルはそれらのブロックがどこから来たかを示します (よくある誤解は、前のフレームが重複しないブロックに分割され、動き補償ベクトルがどこから来たかを示すというものです。それらのブロックはに移動します)。ソース ブロックは通常、ソース フレーム内でオーバーラップします。一部のビデオ圧縮アルゴリズムは、以前に送信されたいくつかの異なるフレームの断片から現在のフレームを組み立てます。
したがって、動きベクトルは「古いフレームからブロックを移動する」ではなく、現在のフレームのマクロブロックの(イントラ) エンコードであり、一部のブロックが古いフレームから少しシフトしてコピーされます (一部のブロックは前のフレームから数回コピーできます)。フレームを現在のフレームに変換し、ほとんどのブロックはゼロ モーション ベクトルでコピーされます)。理論的には、マクロブロックごとに新しいフレームをエンコードできますが、動き補償の助けを借りて、前のフレームから多くの画像情報を取得し、エンコードを減らすように変更できます。補正されていない画像の部分は、画像マクロブロックでエンコードされます。
「Big Buck Bunny」の無料映画のウィキペディアの他のページからの例:
モーション ベクトルが表示されたフレーム、ドットはゼロ ベクトル
符号化する動き補償後の残像
H.264 でのエンコード/デコード プロセスの適切な説明がありますが、ロシア語: http://www.compression.ru/dv/course/compr_h264.pdf ( http://www.compression.ru/video/サイトから) )
英語でのモーション補正の説明: http://inst.eecs.berkeley.edu/~ee290t/sp04/lectures/02-Motion_Compensation_girod.pdf (予測エラーがエンコードされ、完全に新しい画像がほぼ完全に誤予測されます。背景画像は情報の頻度が低く、おそらく近くの背景ブロックによって動きが補正されます。)