H.264/AVC
H.264 / AVC
ITU-TとISO/IECが共同で策定した映像圧縮規格は、それぞれH.264およびMPEG-4 AVCとして公開されており、放送、光ディスク、インターネット動画、モバイル機器、リアルタイム通信などで広く利用されている。
詳細説明
H.264は、AVC(Advanced Video Coding、高级视频编码)とも呼ばれ、ITU-Tの映像符号化専門家グループとISO/IECの動画専門家グループが共同で策定した映像圧縮規格である。両組織は2001年に合同映像チーム(Joint Video Team、JVT)を設立し、2003年に第1版規格が承認され、それぞれITU-T H.264およびISO/IEC 14496-10として公開された。このため、MPEG体系ではMPEG-4 Part 10またはMPEG-4 AVCとも呼ばれている。
H.264は、初期のMPEG-4 Visualとは異なるコーデックである。
MPEG-4 Visual は ISO/IEC 14496-2 に属し、一般的な実装例としては初期の DivX や Xvid が挙げられます。一方、AVC は ISO/IEC 14496-10 に属します。「MPEG-4 ビデオ」とだけ表記しても、この 2 つを正確に区別することはできません。
この規格は、準拠したビットストリームの構文やデコーダーによる映像の再構築方法を規定しているが、エンコーダーがどのように動きを検出するか、ビットレートを割り当てるか、あるいは予測モードを選択するかについては規定していない。H.264エンコーダは通常、まず同一フレーム内で既に再構成された隣接領域を利用してフレーム内予測を行うか、あるいは他の参照フレームから類似したコンテンツを探してフレーム間予測を行い、その後、元の画像と予測結果との間の残差に対して変換、量子化、およびエントロピー符号化を実行します。デコーダ側は、ビットストリーム内の予測情報と残差データに基づいて画像を再構築するため、予測精度、参照構造、および量子化の選択が、必要なデータ量に共同で影響を及ぼす。基本的な符号化単位はマクロブロックであり、1つのマクロブロックは通常、16×16個の輝度サンプリングおよびそれに対応する色度サンプリングをカバーする。フレーム内符号化では、16×16またはそれより小さい領域に対して、異なる方向の予測を選択することができる。High Profileでは、8×8のフレーム内予測も導入されている。フレーム間マクロブロックは、16×16、16×8、8×16、8×8に分割可能であり、後者はさらに4×4まで細分化できるため、動きの境界と局所的な変化にそれぞれ異なる動きベクトルを使用することができる。規格ではマルチリファレンスおよびサブピクセル運動補償がサポートされているが、エンコーダが広範囲の検索を行うか、いくつのリファレンスフレームを使用するか、また最適な分割をどのように判断するかは、実装戦略に属し、ビットストリーム仕様には含まれない。
予測残差は主に4×4整数変換によって処理されるが、High Profileでは8×8変換を使用できる。その演算形式は規定されており、異なるデコーダが有限の整数精度の下で一貫した結果を得られるようになっている。量子化は変換係数の精度の一部を犠牲にするものであり、可逆圧縮の主な原因である。量子化の強度は、画像、スライス、またはマクロブロック単位で調整可能である。再構成ループ内のブロック除去フィルタは、その後ブロック境界を処理します。その出力は表示に使用されるだけでなく、後続の予測における参照フレームともなるため、プレーヤーが任意に追加する画質向上機能ではありません。H.264では、CAVLCとCABACという2つの主要なエントロピー符号化方式が定義されています。CAVLCは、隣接するブロックの係数の特徴に基づいて可変長符号を選択するもので、構造は比較的単純である。一方、CABACは、まず構文要素をバイナリ記号に変換し、その後、文脈モデルに基づいて適応型算術符号化を行う。通常、これによりビットレートをさらに低減できるが、計算や状態依存性はより複雑になる。Baseline ProfileではCABACは使用されませんが、MainやHighなどのプロファイルでは使用可能です。
ビットストリームには、I、P、Bなどの異なるフレームタイプが含まれることがあります。Iフレームは同一画面内の情報のみを用いて予測されますが、PフレームおよびBフレームは他のフレームを参照することができます。なお、Bフレームが参照するフレームは、必ずしも時間的に前後の1フレームずつであるとは限りません。IDR画像は、明確なランダムアクセスと参照クリーンアップのセマンティクスを持つ即時デコードリフレッシュポイントの一種であるのに対し、通常のI画像は、その内部スライスがフレーム内符号化を採用していることを示すだけであり、すべてのビットストリーム構造において完全に同等の「キーフレーム」と見なすことはできない。
プロファイルとレベルは、2つの次元を表している。プロファイルは、使用可能な符号化ツール、ビット深度、色空間形式を規定する(例:Baseline、Main、High、およびより高いビット深度やプロフェッショナルな色空間サンプリングを対象としたHigh 10、High 10、High 4:2:2、High 4:4:4 Predictiveなど、より高いビット深度やプロフェッショナルな色差サンプリングを対象としたプロファイルが含まれる。一方、レベルは、最大フレーム数、毎秒の処理量、デコードフレームバッファ、ビットレートなどのリソースを制限する。デバイスがH.264をサポートしていると謳っているからといって、すべてのプロファイル、レベル、解像度、および参照フレームの組み合わせをデコードできるとは限らない。H.264は、プログレッシブおよびインターレース動画の両方の符号化方式を規定している。フィールド適応型画像符号化では、画像全体に対してフレームまたはフィールド構造を選択でき、マクロブロック適応型フレーム・フィールド符号化では、同一画面内のマクロブロックペアごとにフレーム符号化またはフィールド符号化を選択できる。後者は静止領域やインターレース動的領域により細かく適応できますが、エンコード時の判断やデコードへの依存度も高まります。放送や初期のHDディスクにおける1080i番組ではこれらの手法が使用される場合がありますが、プログレッシブ方式のネットワーク動画では通常、これらを必要としません。
符号化されたデータは、ネットワーク抽象化レイヤーの単位として構成され、パラメータセット、スライス、および補足的な拡張情報は、アプリケーションのニーズに応じて異なる伝送環境にマッピングすることができます。H.264自体はファイル形式ではありません。
ビットストリームは、MP4、QuickTime、Matroska、MPEG-2トランスポートストリーム、M2TS、その他のコンテナにカプセル化され、さまざまな音声や字幕と組み合わせることができます。ファイル拡張子だけでは内部のビデオ符号化方式を特定することはできず、また、この符号化規格ではチャプター、メニュー、デジタル著作権管理(DRM)については規定されていません。AVCHD、Blu-ray Disc、デジタルテレビ、ネットワークストリーミング、ビデオ会議、監視録画、モバイルデバイスなどでH.264が採用されていますが、各アプリケーションでは、許容されるプロファイル、レベル、フレームレート、ビットレートがさらに制限されます。Blu-ray上のAVCはディスクアプリケーション仕様に準拠する必要があり、単にH.264準拠のファイルをデータディレクトリに書き込んだだけでは、それを「Blu-ray Video」と呼ぶことはできません。x264、OpenH264、およびチップ内のハードウェアエンコーダーは、H.264ストリームを生成または処理するための具体的な実装であり、新しいフォーマット名ではありません。
H.264は、特定の解像度に対して唯一適切なビットレートを規定しておらず、また、H.264を採用したファイルが必ずしもMPEG-2、VC-1、または後継のコーデックよりも優れていることを保証するものでもありません。映像内容、ソース素材、前処理、エンコーダの実装、ビットレート制御、キーフレーム構造、および処理時間はすべて、圧縮結果に影響を与えます。「H.264」という表記は、デコードの構文を説明するものであり、最終的な画質の評価を示すものではありません。