フレーム間予測 【interframe prediction】
概要
フレーム間予測(interframe prediction)とは、動画データの圧縮率を高める手法の一つで、ある瞬間の画像について直前あるいは直後の画像から予測画像を生成し、実際のその時刻の画像との差分を検出して符号化する方式。動画の多くはシーンやカットの切り替わりを除いて時間的に連続的に内容が変化するという特徴があるため、シーン冒頭の画像から時間的に変化していく様子を一定の計算手順で算出し、各フレームの予測画像とする。予測画像は実際のそのフレームの画像とはわずかに異なっているため、差分を算出してそのフレームを表す情報として符号化する。
再生時には符号化時と同じように予測画像を生成し、各フレームの補正情報を参照して修正していくことで正確に各時刻の画像を再現できる。各フレームの画像全体を符号化する場合に比べ、予測画像からのズレのみでそのフレームの内容を表現できるため、劇的にデータ量を削減することができる。
時間的に前のフレームから直後の内容を予測する方式を前方(前方向/順方向)予測、時間的に後のフレームから直前の内容を予測する方式を後方(後方向/逆方向)予測という。このうちの一方のみを利用する場合を一方向(片方向)予測と総称し、前後の両方を利用する場合は両方向(双方向)予測と呼ばれる。
MPEGの場合、予測を用いず単体で符号化された画像を「Iフレーム」(intra-coded frame)、前方予測で符号化された画像を「Pフレーム」(predicted frame)、前方・後方・双方向のいずれかで符号化された画像を「Bフレーム」(bi-directional predicted frame)という。Iフレームから次のIフレームの直前までのフレーム群のセットをGOP(Group Of Pictures)という。
動き補償 (motion compensation)
フレーム間予測技術の一種で、映像内で移動している被写体について、移動方向や速さを検知して予測画像の作成に反映させる方式。MPEG-2、MPEG-4、H.264など主要な圧縮方式のほとんどに要素技術として取り入れられている。
カメラや被写体が移動したりブレたりすると、画面に写っている内容自体はほぼ同一であるのに、単純なフレーム間予測では動いた部分の全体(カメラが動くとほぼ画面全体)が変化しているように認識してしまい、膨大な差分情報が生成されてしまう。
これを避けるため、前後のフレームで同一の被写体が写っている領域を検知して、その範囲や移動方向・速度(動きベクトル)を符号化してフレームのデータに含める。検知できる領域の大きさは圧縮方式によって異なるが、例えば16×16ピクセル、4×4ピクセルといった大きさごとに処理される。
検知できる動きの最小単位は初期の方式では1ピクセルだったが、ゆっくりした動きに対応できるよう1/2ピクセルや1/4ピクセル(数フレームごとに1ピクセル移動する)といった動きを扱える方式も登場した。