Bフレームの表示不都合
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/11/15 16:49 UTC 版)
「Audio Video Interleave」の記事における「Bフレームの表示不都合」の解説
AVIコンテナに格納されたストリームデータは、再生時に一定間隔で先頭から順に取り出される。Bフレームがフレーム間予測において前方フレームを参照して符号化されていた場合、参照するPフレームが処理されて初めて復号可能となる。このため、BフレームをAVIコンテナに格納する際に、このフレーム間の参照関係を考慮しPフレームと順序を入れ替えて格納することになる。こうして格納されたデータは、データを復号し、復号された画像を表示するという作業を特定のタイミングで繰り返すことで動画として再生される事になるが、データの復号と表示の間隔はフレームレートから計算するため同一のタイミングとなる。その結果、復号した画像がそのままの順序で表示される事になり、部分的に逆再生を行っているかのような動画となってしまう(たとえば、MP4コンテナではデータ復号・復号画像の合成・表示のタイミングを個別に指定できるためこの問題は発生しない)。 しかし、近年のデコーダは入力されたデータに対し本来の表示順序通りにフレームを出力するよう改良されているため、利用上の問題はなくなっている。ただし、この方法を用いたデコーダでは最初のIフレームが他のフレームの2倍の表示時間となり、最終フレームは表示されないという副作用が発生する。この副作用についても、Packed-bitstreamと呼ばれる特殊なストリームフォーマットを用いることで解消した例がある(Xvid、DivXがサポートしている)。以上の様に、コーデック側の工夫によってBフレームは問題なく利用可能となっているが、AVIコンテナ自体にBフレームを正確に扱う為の情報が不足しているため、今後も新しい映像圧縮技術をAVIで扱えるかどうかはコーデック側に委ねられたことになる。
※この「Bフレームの表示不都合」の解説は、「Audio Video Interleave」の解説の一部です。
「Bフレームの表示不都合」を含む「Audio Video Interleave」の記事については、「Audio Video Interleave」の概要を参照ください。
- Bフレームの表示不都合のページへのリンク