H.264
[Wikipedia|▼Menu]
H.264では、ハフマン符号をベースとした可変長符号化 (VLC; Variable Length Coding) と、算術符号化のいずれかを選択できる。

前者はBaseline Profileで採用され、従来の3次元VLCに近いCAVLC (Context-based Adaptive VLC) と、指数ゴロム (Exponential-Golomb) 符号を用いることによって変換テーブルを用いずに符号化するUVLC (Universal VLC) が用いられる。CAVLCでは隣接MBのDCT係数の状態に依存して現在のMBの符号化に使用する符号化テーブルを切り替える。このように切り替えを行うことで、現在の画像のテクスチャに応じた符号化テーブルが使用でき、より短い符号への圧縮が期待できる。

後者はCABAC (Context-based Adaptive Binary Arithmetic Coding) と呼ばれ、Main Profileで採用されている。

H.264ではこのように複数の符号化方式が用いられている。これは、処理量は少ないが効果もそこそこのCAVLCと、処理量は大きいが効果も高いCABACではその用途が異なるため、そのことによって「符号化」という同じ目的を持ったツールが複数存在することとなった。
デブロッキングフィルタ

H.264では、かつてH.261で採用されたループ内フィルタ (In-loop Filter) と似たように、ループ内にデブロッキングフィルタ (Deblocking Filter) が設置されている。このフィルタはH.261のようなブロック全体の平滑化フィルタではなく、整数変換のブロック境界のみを平滑化してブロックノイズの発生を抑制するものである。H.261のループ内フィルタは、MPEG-2以降で採用された半画素精度動き補償が数学上同等の役割を果たすため、その意味を失った。

デブロッキングフィルタは圧縮率向上のためには効果的であるが処理量が大きいために、そのON/OFFがヘッダによって指定可能とされている。したがって、処理量に懸念がある場合にはデブロッキングフィルタを使用しないといった選択肢も可能である。
SI, SPフレーム

例えば番組のチャンネルを切り替えたり、再生の途中でプレビューを見ながら早送りしたりする場合のように、ある動画ストリームから途中で別のストリームに切り替えて再生する場合、次のストリームの再生はフレーム間予測を用いないIフレームを受信するまでできなくなる。そこでH.264では、切替用の中間フレームとして、SI, SP(SはSwitchingの意)フレームが採用されている。特にSPフレームの場合は、切替前の動画のフレームを参照画像として切替後の動画がデコードできるように符号化される。
NAL構造

H.264のビット列の規則(シンタックス)は、圧縮符号化された画像データをビット列に変換するための規則を定めたVCL (Video Coding Layer) と、VCLやヘッダ情報などのデータを分割および識別するためのNAL (Network Abstraction Layer) の2層構造を持つ。

従来技術では、シンタックスに従って1つの動画を圧縮符号化した場合、1つのビット列(エレメンタリストリーム)となる。これに対し、H.264では複数の種類のNALユニットに分割して符号化される。なお、従来のエレメンタリストリームと同様に1つのビット列として圧縮データを扱うことができるように、バイトストリームフォーマットがAnnex Bで規定されている。

NAL構造によって、MP4などのファイルフォーマットに格納したり、RTPパケットに分割して伝送したりするなど、圧縮データをさまざまな用途に柔軟に適用できるようになっている。
マルチビュー符号化

複数の視点(マルチビュー)で撮影された映像を、それぞれのビューを独立して扱うよりも効率的に圧縮することができるマルチビュー符号化 (MVC: Multiview Video Coding) が、H.264のバージョン10で追加で規格化されている。MVCではマルチビュー映像を、1個のベースビュー (base view) と、1個以上の非ベースビュー (non-base view) として符号化する。ベースビューは既存のプロファイル(現在ではハイプロファイルのベースビューのみ定義)のストリームとして符号化され、非ベースビューはMVCで新たに拡張されたプロファイルとシンタックスを用いて、他のビューや自分自身のビューに含まれるフレームを参照(ビュー間予測: inter-view prediction)して符号化される。

ビュー間予測を用いることで、ビュー間の相関が利用可能になるほか、非ベースビューでは符号量の大きいIフレームを使用しない符号化が可能となるため、より効率的に圧縮できる。通常のH.264ストリームでは、多くのアプリケーションで必要となるランダムアクセス機能(放送チャンネル切替えやチャプタージャンプのようにストリームの途中から再生する機能)のために、適切な時間間隔でIフレームを挿入しておく必要があった。放送の場合は通常0.5秒程度である。

MVCでもベースビューではそれが当てはまるが、非ベースビューのフレームについては、ベースビューのみを参照するP/Bフレームだけで構成すれば、ベースビューがランダムアクセス可能である限り、その非ベースビューもランダムアクセス可能である。なお、そのように符号化された非ベースビューのみを参照する形で、別の非ベースビューを符号化してもやはりランダムアクセスは可能である。

MVCに対応しない従来のデコーダでもベースビューのプロファイルとレベルを満足すれば、ベースビューのみの再生は可能であり、後方互換性が維持される。非ベースビューについても、使用されている圧縮のツール(アルゴリズム)についてはビュー間予測が可能という点を除き従来のI/P/Bピクチャと同じものを使用するため、デコーダをMVC対応とするのに必要な機能拡張は少ない。ただし、複数のビューをデコードするために、必要な処理速度は単一ビューに比べ増大する。

MVCを使用した場合の圧縮の効率は、2視点のステレオ映像の場合、1視点に比べ50%程度のデータ量の増加で圧縮可能とされている。なお、50%程度という数字はBlu-ray Disc Associationが2009年12月17日に発表したものである。
プロファイルとレベル

MPEG-2などと同様、目的用途別に定義された機能の集合を表すプロファイルと、処理の負荷や使用メモリ量を表すレベルが定義がされる。これらは画面解像度やフレームレートに影響する。

H.264に準拠する機器またはビットストリームそのものは、このプロファイルとレベルによって、機器の性能やビットストリームをデコードするのに必要な性能を表示することが多い。
プロファイル

H.264規格では当初ベースラインプロファイル、メインプロファイル、拡張プロファイルのみだった。その後、規格の拡張に伴い種類が増加している。以下では主なものを挙げる。

制約付きベースラインプロファイル(Constrained Baseline Profile)
ローコストアプリケーションのためのプロファイル。ビデオ会議やモバイルアプリ等で使用される。

ベースラインプロファイル(Baseline Profile)
I, Pフレームのみ、エントロピー符号化はCAVLC+UVLCのみ。

メインプロファイル(Main Profile)
ベースラインプロファイルにBフレーム、CABAC、重み付け予測などを追加。

拡張プロファイル(Extended Profile)
ベースラインプロファイルにSI, SPフレームなどを追加。

ハイプロファイル(High Profile)
メインプロファイルに8×8画素整数変換、量子化マトリックス等を加えたもの。また、YCbCr 4:0:0色空間(
グレースケール)にも対応している。

ハイ 10 プロファイル(High 10 Profile)
ハイプロファイルに10ビット画像フォーマットへの対応を追加したもの。

ハイ 4:2:2 プロファイル(High 4:2:2 Profile)
ハイ10プロファイルにYCbCr 4:2:2色空間への対応を追加したもの。

ハイ 4:4:4 プロファイル(High 4:4:4 Predictive Profile)
ハイ4:2:2プロファイルにYCbCr 4:4:4色空間や12ビット画像フォーマット、YCbCr以外への色空間への変換、可逆圧縮など多数の機能を追加したもの。

マルチビューハイプロファイル(Multiview High Profile)
MVC拡張規格の策定に伴い定義されたプロファイル。ベースビューはハイプロファイルと互換のある符号化を行い、非ベースビューはマルチビュー拡張で定義されたシンタックスで符号化する。最大1024個のビューを符号化できるが、インターレース符号化をサポートしない。

ステレオハイプロファイル(Stereo High Profile)
ステレオ(2視点)映像を想定しており、MVCにおいて、ビューの数を2個以下に制限し、インターレース符号化をサポートするMVC拡張用プロファイル。Blu-ray Discの3D拡張版に採用されている。

プロファイルごとの機能一覧表FeatureCBPBPXPMPHiPHi10PHi422PHi444PP
I and P スライス○○○○○○○○
YCbCr色空間4:2:04:2:04:2:04:2:04:2:04:2:04:2:0/4:2:24:2:0/4:2:2/4:4:4
色深度 (bits)888888 ? 108 ? 108 ? 14
Flexible macroblock ordering (FMO)×○○×××××
任意順序スライス (ASO)×○○×××××
冗長スライス (RS)×○○×××××
データ分割××○×××××
SI and SP slices××○×××××
B スライス××○○○○○○
インターレースコード (PicAFF, MBAFF)××○○○○○○


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:56 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef