フレーム間予測:動画圧縮技術の心臓部
動画圧縮において、高い圧縮効率を実現する重要な技術として「フレーム間予測」があります。これは、連続する
動画フレーム間の類似性に着目し、過去のフレームの情報を使って現在のフレームを予測することで、圧縮データ量を削減する手法です。既に撮影済みのフレームと比較することで、変化点のみを記録すれば良いので、効率的な圧縮が可能になります。
フレーム間予測の種類
フレーム間予測には、大きく分けて以下の3種類があります。
Iフレーム(イントラフレーム、キーフレーム): 過去のフレームを参照せず、そのフレーム単体で符号化されます。他のフレームを予測するための基準フレームとして機能します。
Pフレーム(予測フレーム): 一つ前のフレームを基に予測を行い、予測値との差分のみを符号化します。前方向予測と呼ばれ、圧縮効率が高いです。
*
Bフレーム(双方向予測フレーム): 前後のフレームを参照して予測を行うため、より高精度な予測と高い圧縮率が期待できます。前方向予測、後方向予測、双方向予測のいずれかの方法が選択されます。
動き補償:予測精度を高める技術
動画では、フレーム間に動きが存在します。フレーム間予測では、この動きを正確に補正することで予測精度を高める「動き補償」という技術が不可欠です。
動きベクトルと動きベクトル探索
動き補償では、まずフレーム間の動きを検出する必要があります。このために「動きベクトル探索(Motion Estimation)」が行われます。動きベクトル探索は、現在のフレームと過去のフレームを比較し、最も類似する領域を探すことで動きベクトル(Motion Vector)を算出します。この動きベクトルは、現在のフレームの各ブロックが、過去のフレームのどの位置から移動してきたかを表す情報です。
動き補償の精度と単位
動き補償の精度は、画素単位で表されます。初期の技術では1画素単位でしたが、より高精度な動き補償を実現するために、半画素、1/4画素、さらには1/8画素単位の精度が追求されてきました。精度の向上は予測画像の品質向上に繋がる一方、動きベクトルデータの量が増加し、圧縮効率の低下にも繋がります。そのため、最適な精度を見つけることが重要です。
動き補償の単位も重要です。初期は16×16画素のブロック単位でしたが、
H.264などでは4×4画素単位まで細分化され、より詳細な動きを表現できるようになりました。しかし、常に細分化すると圧縮効率が低下するため、ブロックサイズを可変とすることで最適なバランスを実現しています。
グローバル動き補償
画面全体に共通の動きがある場合(パン、チルト、ズームなど)、グローバル動き補償(Global Motion Compensation)が有効です。これは、画面全体の動きを一つの動きベクトルで表現することで、圧縮効率を向上させます。
ワーピング予測
ブロック単位の動き補償では、ブロック境界にノイズが生じることがあります。ワーピング予測は、このブロックノイズを低減するための技術です。より滑らかな動き表現を実現できます。
両方向予測
Bフレームで用いられる両方向予測は、前後のフレームを両方参照して予測を行うため、高精度な予測と高い圧縮率を実現します。ただし、処理量が増加するというデメリットもあります。
フレーム間予測技術の進化
フレーム間予測技術は、H.261、MPEG-1、MPEG-2、H.263、MPEG-4、
H.264/AVC、そして最新のH.265/HEVCといった
動画圧縮規格の進化と共に発展してきました。それぞれの規格で、動き補償の精度、動き補償単位、予測手法などが改良され、より高効率な
動画圧縮が実現されています。今後も、より高画質、高圧縮率を実現するための研究開発が続けられています。