インターフレームは、1 つ以上の隣接フレームで表現されるビデオ圧縮ストリーム内のフレームです。用語の「インター」の部分は、インターフレーム予測の使用を指します。この種の予測は、隣接フレーム間の時間的冗長性を利用して、より高い圧縮率を実現します。
フレーム間予測
インターコード化されたフレームは、マクロブロックと呼ばれるブロックに分割されます。その後、エンコーダーは、各ブロックの生のピクセル値を直接エンコードする代わりに、参照フレームと呼ばれる、以前にエンコードされたフレーム上でエンコードするブロックに類似したブロックを見つけようとします。このプロセスは、ブロック マッチング アルゴリズムによって実行されます。エンコーダーが検索に成功した場合、ブロックは、参照フレームでのマッチング ブロックの位置を指す、動きベクトルと呼ばれるベクトルによってエンコードされます。動きベクトルを決定するプロセスは、動き推定と呼ばれます。
ほとんどの場合、エンコーダーは成功しますが、見つかったブロックはエンコードするブロックと完全に一致しない可能性があります。そのため、エンコーダーはそれらの違いを計算します。これらの残差値は予測誤差と呼ばれ、変換してデコーダーに送信する必要があります。
まとめると、エンコーダーが参照フレーム上で一致するブロックを見つけることに成功した場合、一致したブロックを指す動きベクトルと予測エラーを取得します。両方の要素を使用して、デコーダーはブロックの生のピクセルを復元できます。次の図は、プロセス全体をグラフィカルに示しています。

この種の予測にはいくつかの長所と短所があります。
- すべてがうまくいけば、アルゴリズムは予測誤差がほとんどない一致するブロックを見つけることができるため、変換後は、動きベクトルと予測誤差の合計サイズが生のエンコードのサイズよりも小さくなります。
- ブロック マッチング アルゴリズムが適切な一致を見つけられない場合、予測エラーはかなり大きくなります。したがって、動きベクトルと予測エラーの合計サイズは、生のエンコーディングよりも大きくなります。この場合、エンコーダーは例外を作成し、その特定のブロックの生のエンコーディングを送信します。
- 参照フレームの一致したブロックもフレーム間予測を使用してエンコードされている場合、そのエンコードで発生したエラーは次のブロックに伝播されます。すべてのフレームがこの技術を使用してエンコードされている場合、参照画像を取得できないため、デコーダーがビデオ ストリームに同期する方法はありません。
これらの欠点があるため、この技術を効率的かつ有効にするには、信頼性が高く時間周期的な参照フレームを使用する必要があります。この参照フレームはイントラフレームと呼ばれ、厳密に内部コード化されているため、追加情報なしで常にデコードできます。
ほとんどの設計では、インターフレームには P フレームと B フレームの 2 種類があります。これら 2 種類のフレームと I フレーム (イントラコード化された画像) は、通常、GOP (画像グループ) に結合します。I フレームは、デコードに追加情報を必要とせず、信頼できる参照として使用できます。この構造により、デコーダーの同期に必要な I フレームの周期性も実現できます。
フレームの種類
P フレームと B フレームの違いは、使用できる参照フレームです。
Pフレーム
P フレームは、前方予測画像を定義するために使用される用語です。予測は、主に I フレームまたは P フレームなどの以前の画像から行われるため、必要なコーディング データが少なくなります (I フレーム サイズと比較すると ≈ 50%)。
この予測を行うために必要なデータ量は、予測補正を記述する動きベクトルと変換係数で構成されます。これには動き補償の使用が含まれます。
Bフレーム
B フレームは双方向予測画像を指す用語です。この種の予測方法は、予測が前のフレームまたは後のフレーム、あるいはその両方から行われるため、一般的に P フレームよりもコーディング データが少なくなります (I フレームのサイズと比較すると ≈25%)。(B フレームは、特定のケースでは P フレームよりも効率が悪い場合もあります ( [1]例: ロスレス エンコーディング)。)
Pフレームと同様に、Bフレームは動きベクトルと変換係数として表現されます。伝播エラーの増加を回避するために、ほとんどのエンコード規格では、Bフレームはさらなる予測を行うための参照として使用されません。ただし、新しいエンコード方式(H.264 / MPEG-4 AVCやHEVCなど)では、Bフレームは時間的冗長性をより有効に活用するための参照として使用されることがあります。[2] [3]
典型的なグループオブピクチャ(GOP)構造

一般的なグループ オブ ピクチャ(GOP) 構造は IBBPBBP です。I フレームは最初の P フレームを予測するために使用され、この 2 つのフレームは最初の B フレームと 2 番目の B フレームを予測するためにも使用されます。2 番目の P フレームも最初の I フレームを使用して予測されます。両方の P フレームが結合して、3 番目と 4 番目の B フレームを予測します。次の図に、このスキームを示します。
この構造は、2番目と3番目のフレーム(Bフレーム)を予測するために4番目のフレーム(Pフレーム)が必要であるため、問題を引き起こします。そのため、Bフレームの前にPフレームを送信する必要があり、送信が遅れます(Pフレームを保持する必要があります)。この構造には、次のような長所があります。
- カバーされていない領域の問題を最小限に抑えます。
- P フレームと B フレームは I フレームよりもデータ量が少ないため、送信されるデータ量も少なくなります。
しかし、弱点もあります:
- これによりデコーダーの複雑さが増し、フレームの並べ替えに必要なメモリが増え、処理能力がわずかに増加します。
- B フレームはデコード依存性を導入する可能性があり、必然的にデコード待ち時間が長くなります。
H.264 インターフレーム予測の改善
H.264技術がそれ以前の標準 (特にMPEG-2 )と比べて最も重要な改善点は次のとおりです。
- より柔軟なブロックパーティション
- 最大¼ピクセルのモーション補正解像度
- 複数の参照
- 強化されたダイレクト/スキップ マクロブロック
より柔軟なブロックパーティション
輝度ブロックの分割は 16×16 ( MPEG-2 )、16×8、8×16、8×8 です。最後のケースでは、ブロックを 4×8、8×4、または 4×4 の新しいブロックに分割できます。
コーディングするフレームは、上の図に示すように、同じサイズのブロックに分割されます。各ブロック予測は、参照画像と同じサイズのブロックで、小さな変位でオフセットされます。
最大¼ピクセルのモーション補正解像度
半ピクセル位置のピクセルは、長さ 6 のフィルターを適用することによって取得されます。
H=[1 -5 20 20 -5 1]、すなわち 半ピクセル「b」=A - 5B + 20C + 20D - 5E + F
1/4ピクセル位置のピクセルは双線形補間によって取得されます。
MPEG-2では 1/2 ピクセルの解像度が許可されていましたが、インターフレームでは最大 1/4 ピクセルの解像度が許可されます。つまり、他の参照フレームでコード化するフレーム内のブロックを検索したり、存在しないピクセルを補間して現在のブロックにさらに適したブロックを見つけたりすることができます。動きベクトルがサンプル単位の整数である場合、動きのある補正ブロックを参照画像で見つけることができることを意味します。動きベクトルが整数でない場合は、水平方向と垂直方向の補間フィルターによって補間されたピクセルから予測が取得されます。
複数の参照
動き推定への複数の参照により、合計16フレームまでを含む2つの可能なバッファ(リスト0は過去の画像、リスト1は将来の画像)から最適な参照を見つけることができます。[4] [5]ブロック予測は、参照画像からのブロックの加重合計によって行われます。これにより、平面の変化、ズーム、または新しいオブジェクトが明らかになるシーンで画質が向上します。
強化されたダイレクト/スキップ マクロブロック
スキップ モードとダイレクト モードは、特に B フレームで頻繁に使用されます。これらのモードは、コード化するビット数を大幅に削減します。これらのモードは、残差エラーやモーション ベクトルを送信せずにブロックをコード化するときに参照されます。エンコーダーは、それがスキップ マクロブロックであることのみを記録します。デコーダーは、すでにデコードされている他のブロックから、ダイレクト/スキップ モードでコード化されたブロックのモーション ベクトルを推測します。
動きを推測する方法は 2 つあります。
- 時間的
- 動きベクトルを推測するために、同じ位置にあるリスト 1 フレームのブロック動きベクトルを使用します。リスト 1 ブロックは、リスト 0 ブロックを参照として使用します。
- 空間
- 同じフレーム内の隣接するマクロブロックから動きを予測します。 考えられる基準としては、隣接するブロックから動きベクトルをコピーすることが挙げられます。 これらのモードは、動きがあまりない画像の均一な領域で使用されます。
上の図では、ピンク色のブロックはダイレクト/スキップ モードでコード化されたブロックです。ご覧のとおり、これらは主に B フレームで頻繁に使用されます。
追加情報
「フレーム」という用語は非公式な用法ではよく使用されますが、多くの場合 ( MPEGやVCEGによるビデオ コーディングの国際標準など)、「フレーム」ではなく「画像」という単語を使用することで、より一般的な概念が適用されます。ここで、画像は完全なフレームまたは単一のインターレースフィールドのいずれかです。
MPEG-2、H.264、Ogg Theoraなどのビデオコーデックは、キー フレームの後に 1 つ以上のインター フレームを配置することで、ストリーム内のデータ量を削減します。通常、これらのフレームは、画像の大部分が類似しているため、キー フレームに必要なビット レートよりも低いビット レートでエンコードできます。そのため、変更部分のみをエンコードする必要があります。
参照
参考文献
- ^ 「Doom9 のフォーラム - 単一の投稿を表示 - x264 ロスレスに関する質問」。
- ^ 「階層的 B フレームまたは B ピラミッド - ビデオ圧縮」。2017 年 6 月 15 日時点のオリジナルよりアーカイブ。2019 年 3 月 24 日閲覧。
- ^ “X264 Settings - MeWiki”. mewiki.project357.com . 2014年11月18日時点のオリジナルよりアーカイブ。 2022年1月12日閲覧。
- ^ 「AVC の B フレームに関する初心者の質問 - Doom9 のフォーラム」。
- ^ 「X264 統計出力、「ref B L1」部分」。2014 年 11 月 22 日時点のオリジナルよりアーカイブ。
- ソフトウェア H.264: http://iphome.hhi.de/suehring/tml/download/
- T.Wiegand、GJ Sullivan、G. Bjøntegaard、A.Luthra: H.264/AVC ビデオ コーディング標準の概要。IEEE Transactions on Circuits and Systems for Video Technology、Vol. 13、No. 7、2003 年 7 月
