ビデオコーディングにおいて、ピクチャのグループ(GOP構造)は、イントラフレームとインターフレームの配置順序を指定します。GOPは、符号化されたビデオストリーム内の連続するピクチャの集合です。各符号化ビデオストリームは連続するGOPで構成され、そこから表示可能なフレームが生成されます。圧縮されたビデオストリームで新しいGOPに遭遇すると、デコーダーは次のフレームをデコードするために前のフレームを必要とせず、ビデオを高速にシークできるようになります。
GOP には次の画像タイプを含めることができます。
IフレームはGOPの開始を示します。その後に複数のPフレームとBフレームが続きます。古い設計では、許容される順序付けと参照構造は比較的制限されていました。[ 4 ]
Iフレームには完全な画像が含まれており、再構成に追加情報は必要ありません。通常、エンコーダは各Iフレームを「クリーンなランダムアクセスポイント」とするGOP構造を採用しています。これにより、デコードはIフレームからクリーンに開始され、GOP構造内のエラーは正しいIフレームを処理した後に修正されます。
H.264/MPEG-4 AVCおよびHEVCに見られる新しい設計では、エンコーダの参照構造に関する柔軟性が大幅に向上しています。以前の設計で使用されていたのと同じ参照構造を使用することも、より多くの画像を参照として使用したり、表示順序に対する符号化順序のより柔軟な順序付けを使用したりできます。また、他の (B または P) フレームを符号化する際に、B フレームを参照として使用することもできます。この柔軟性の向上により圧縮効率が向上しますが、一部のデータが失われたり破損したりすると、エラーが伝播する可能性があります。新しい設計で使用される一般的な構造の 1 つは、B フレームの階層構造の使用です。階層型 B フレームは非常に優れた圧縮効率を実現できるだけでなく、階層構造によってデータ破損問題の影響を受ける画像の数が厳密に制限されるため、エラーの伝播も制限できます。[ 5 ]
一般的に、ビデオストリームに含まれるIフレームの数が多いほど、編集可能性が高まります。ただし、Iフレームの数が増えると、ビデオのコーディングに必要なビットレートが大幅に増加します。
GOP構造は、例えばM =3、N =12のように、2つの数字で表現されることが多い。最初の数字は、2つのアンカーフレーム(IまたはP)間の距離、つまり「ミニGOP」の長さを表す。[ 6 ] 2番目の数字は、2つのフルイメージ(Iフレーム)間の距離、つまりGOPのサイズを表す。[ 7 ] Mパラメータの代わりに、連続する2つのアンカーフレーム間のBフレームの最大数を使用することもできる。これはffmpeg で使用されている手法である。[ 8 ]
例:
GOP構造はエンコード中も固定されている必要はありません。シーンチェンジ時にNを変化させてIフレームを挿入することはよく知られた手法です。[ 9 ]新しい手法では、ビデオの動きの量に応じてMを変化させることもあります。 [ 10 ]
H.264以降の設計では、非常に柔軟な参照構造が認められており、あるGOP内のBフレームは、特にIフレームよりも前であっても、別のGOP内のフレームを参照することができるため、Iフレームは非IDR(キーフレームではない)となる。[ 2 ]このような外部参照フレームを含むGOPは「オープンGOP」と呼ばれる。その逆は自己完結型GOPで、「クローズドGOP」と呼ばれる。[ 6 ] プレゼンテーション順序において、GOPはBフレームで始まることはできるが、Bフレームで終わることはできない。オープンGOPはBフレームで始まり、Iフレームで始まると最後にPフレームを追加する必要があるため、より効率的である(GOPはBフレームで終わることはできない)。[ 11 ]
bf integer (encoding,video) 非 B フレーム間の B フレームの最大数を設定します。