Iフレーム:デカイ・キレイ・画質の素
Iフレームとは普通の一枚絵の事。PやBフレームはIフレームとの差分なの
で、Iは全ての空
間軸画質(一時停止したときの奇麗さ)の土台になる。あるフレームを別フレームとの差分で済ませる事を時間軸圧縮と言うのだけれど、要するにアニメの口
パクだ。
差分で済ませるとは、元になるフレームが無ければちゃんとした絵にならないと言う事だ。こうしたフレーム間の依存関係を「参照、reference」と
呼
び、Iフレームと、それに依存
するフレームの軍団をGOP(Group of Pictures)と呼ぶ。
下図は最も単純な時間軸圧縮の例。ここでは各Pは直前フレームのみを参照してると思って欲しい。
時間軸圧縮を使った動画は、だいたいこのGOPの連続でできている。
Iフレームの特徴は、ますP/Bに比べるとデータサイズが大きい事。これは
もう圧倒的だから、Iは場面転換の先頭にあるのがいちばん効率がいい。次
に、シーク(早送り・巻き戻し・スキップ・頭
出しなどの総称)は基本的にIフ
レームが基準となる。上図のPフレームだけ頭出ししてもまともな絵にはならないよね。最後は少しややこしいのだけど、依存関係にあるフレームの処理(エン
コード・デ
コード)
が完了するまで、参照元のフレームはデコーダ・バッファ・メモリに置いて
おく必要がある。
ようするに、
Iはデカイ・キレイ・画質の素。
IDRフレーム:Iとシークとマルチレフ
H.264/AVC規格で新しく追加されたフレーム。Iフレームとしても
機
能する。おそらくはIフレームに特定のフラグを付けたもの。
特定のフラグとは次のようなものだ。
H.264は時間軸圧縮にMultiple reference pictures
(*マルチプル・レファレン
ス、複数参照、自分的には不等距離参照*)を使う。例えば、旧規格のPフレームは直前のフレームしか参照できなかったが、
H.264ではもっと前のフレームを参照できる。具体的な効果は、通過する車が建物の向こうに一旦隠れて反対側に出る、といった場面に現れ
る。こういう場面で車の前半分くらいを自分より前のフレームからの"引用"で済ませる事を動き補償と言うのだけれど、当然、直前よりはもっと前から
パクって
きた方が効率が良い。
しかしいくら効率が良いと言っても無限に参照関係を作るとキリがないし(映画のエンドロールが冒頭のフレームを参照するとなると、映画一本まるまる
バッファに置いておく必要
がある)、間違って全然関係無いシーンを参照してしまうと画質が悪い上に"差分"のデータ量も膨大になる。
従って、マルチプル・レファレンスにはなん
らかの参照関係の区切り、ストッパー
役
が必要になる。シーンチェンジ検出機構をこの参照関係の区切り役に使うのがkeyint関連。常識的な立場(デコーダに積める程度のバッファ)から
参
照関係に区切りを付けるのがframeref(-r,--ref)だ。
なお、規格上の参照関係は前後を問わないがx264ではPは前、Bは前後各1を使うようだ。
■参考記事
- GOP
関連をおろそかにしたx264はXvidにも劣る
- Frame
-type_01_GOP関連
スポンサーサイト