H.264/AVC には多数の符号化ツールがあるが、全てのアプリケーションで全てのツールが必要とされている訳ではない。
例えば、 洗練されたエラー resilience toolはデータのロスや破壊が非常に少ないネットワークでは重要ではない。
全てのアプリケーションに全ツールのサポートを強制した場合、 無意味に複雑なアプリケーションが出て来てしまうだろう。
このため、符号化ツールのサブセットが定義されており、 これを「プロファイル」と呼ぶ。
デコーダでサポートするサブセット(プロファイル)は、 どれか一つでも複数でも全部であっても、自由にサポートさせることが可能。
AVC/H.264最初の規格では、 以下の三つのプロファイルが定義され、最新版でもそのまま残っている。:
Table 2 にそれぞれがサポートする符号化ツールの概要をまとめた。
Coding Tools | Baseline | Main | Extended | x264 | Apple-H.264(QT7) |
I and P Slices | X | X | X | X | X |
CAVLC | X | X | X | X(nocabac) | X |
CABAC | X | X | ?Bond氏によれば非対応 | ||
B Slices | X | X | X | X(.mov書き出し時のみ。"フレーム並べ替え"にて) | |
Interlaced Coding (PicAFF, MBAFF) | X | 非対応(宣言済) | ? | ||
Enh. Error Resil. (FMO, ASO, RS) | X | X | ? | X?( iChat, streamingタブ ) | |
Further Enh. Error Resil (DP) | X | ? | X?( iChat, streamingタブ ) | ||
SP and SI Slices | X | ? | X?( iChat, streamingタブ ) |
*参考:Video-iPod(初代)はBaselineとされる。
FRExt 改正により、以下4のprofileが追加定義された:
全て前記Main profileのデザインの上に構築され、4つとも以下の符号化効率改善を含む。:
一般的な4:2:0 videoに加え、これらのプロファイル全てが、monochrome coded video sequencesもサポートする。 新プロファイル間の違いは主にサポートするサンプリングビット深度と色差信号(*chroma*)のフォーマットだ。 しかしながら、High 4:4:4 profile はさらに、residual(*残りの*) color transform と predictive(*予測*) lossless coding の機能を持つ。これは他のプロファイルには存在しない。詳細は以下。
Coding Tools | High | High 10 | High 4:2:2 | High 4:4:4 | x264 |
Main Profile Tools | X | X | X | X | X |
4:2:0 Chroma Format | X | X | X | X | X? |
8 Bit Sample Bit Depth | X | X | X | X | ? |
8x8 vs. 4x4 Transform Adaptivity | X | X | X | X | X(8x8dct,i8x8) |
Quantization Scaling Matrices | X | X | X | X | X(cqm) |
Separate Cb and Cr QP control | X | X | X | X | X(cqm4ic, cqm4iy,cqm4pc, cqm4py,cqm8iy, cqm8py) |
Monochrome video format | X | X | X | X | ? |
9 and 10 Bit Sample Bit Depth | X | X | X | ? | |
4:2:2 Chroma Format | X | X | ? | ||
11 and 12 Bit Sample Bit Depth | X | ? | |||
4:4:4 Chroma Format | X | ? | |||
Residual Color Transform | X | ? | |||
Predictive(*予測*)Lossless Coding | X | qp_constant? |
表にあるとおり、高位のプロファイルの機能は下位プロファイルを包含する。
規格上も高位のプロファイルに対応するものは下位プロファイルのビットストリームは全てデコード可能である事を求めている。 本稿執筆時点(2004/08月)では、High profile は、放送などのエンターテインメント品質のアプリケーションで Main profileに取って代わりつつあり、High 4:2:2 はスタジオ環境での利用が進むと期待されている。 High profileが短期間に極めて大きな関心を集めている理由は、実装上の複雑さがMain profileに比べて非常に小さく(ほとんど無い)、その一方で圧縮能力は主観的(*人間の感性*)にも客観的(*数値化できる特性*)にも向上(特にquantization scaling matrices とtransform block-size switching)し、エンコーダ制御の自由度も増すためだ(separate quantization parameters for the two chroma componentsによる)。
実装(*implementation*)の上ではプロセシング・パワーとメモリ・サイズの制約は重要だ。
これらに影響する最大の要素は「ピクチャ・サイズ(*解像度*)」と「フレームレート」だ。
Table 5で示すように、 H.264/AVC では主にピクチャ・サイズとフレームレートに基づいて、16 種類のLevelを定義している。
Levelはまた、
レファレンス・ピクチャ(*参照フレーム*)数と、利用可能な最大ビットレートも規定する。
※例:エンコーディングを要す場合などについて
フレームサイズの大きさ や ビットレートの高さによっては、
Levelの値についても相応の数値へ変更しなければならない。
"1b"のように示したLevelはFRExt改正で追加されたもので、主に3G wireless環境の要請に応えるためのものだ。
FRExt profileはより忠実度の高いアプリケーションの為の定義なので、ビットレートの許容範囲もTable 4のように拡大した。ここで定義されたmultiplier(*乗数、乗算器*)はTable 5の4番目の列で使われるものだ。
Note:規格上、Levelが規定する最大フレームサイズとは、pixel/frameの合計数だけだ。
水平・垂直それぞれの最大サイズは、Sqrt(maximum frame size * 8)以下でなければならない事を除けば規格には無い。
Horizontal and Vertical maximum sizes are not specified except for constraints that horizontal and vertical sizes can not be more than Sqrt(maximum frame size * 8).
もし、ある特定のレベルで、ピクチャ・サイズが表のサイズより小さく、これに対して、、、以下不明
If, at a particular level, the picture size is less than the one in the table, then a correspondingly larger number of reference pictures (up to 16 frames) can be used for motion estimation and compensation. Similarly, instead of specifying a maximum frame rate at each level, a maximum sample (pixel) rate, in terms of macroblocks per second, is specified. Thus if the picture size is smaller than the typical pictures size in Table 5, then the frame rate can be higher than that in Table 5, all the way up to a maximum of 172 frames/sec.
従って、もしピクチャ・サイズがTable 5の一般的なサイズより小さい場合、フレームレートはTable 5にある値よりも大きくとり得る。最大は172fps。
FRExt Profile | Bit Rate Multiplier |
High | 1.25 |
High 10 | 3 |
High 4:2:2 | 4 |
High 4:4:4 | 4 |
整数レベルは主に解像度による大分類。少数レベルは小分類。主に通信ネゴシエーションなどに関わる。
level_idc, x264cliの--level <integer>, ffmpegX0.0.9vのx264 H.264 optionsなどが相当する模様。
Level Number | Typical Picture Size | Typical frame rate | Maximum compressed bit rate (for VCL) in Non-FRExt profiles | Maximum number of reference frames for typical picture size | 備考 |
1 | QCIF | 15 | 64 kbps | 4 | 主にQCIF |
---|---|---|---|---|---|
1b | QCIF | 15 | 128 kbps | 4 | (FRExt以降) |
1.1 | CIF or QCIF | 7.5 (CIF) / 30 (QCIF) | 192 kbps | 2 (CIF) / 9 (QCIF) | |
1.2 | CIF | 15 | 384 kbps | 6 | |
1.3 | CIF | 30 | 768 kbps | 6 | ↑iPod |
2 | CIF | 30 | 2 Mbps | 6 | 主にCIF |
2.1 | HHR(480i or 576i) | 30 / 25 | 4 Mbps | 6 | カジュアル↓ |
2.2 | SD | 15 | 4 Mbps | 5 | |
3 | SD | 30 / 25 | 10 Mbps | 5 | 主にSDTV |
3.1 | 1280x720p | 30 | 14 Mbps | 5 | |
3.2 | 1280x720p | 60 | 20 Mbps | 4 | |
4 | HD Formats(720p or1080i) | 60p / 30i | 20 Mbps | 4 | 主にHDTV |
4.1 | HD Formats(720p or1080i) | 60p / 30i | 50 Mbps | 4 | |
4.2 | 1920x1080p | 60p | 50 Mbps | 4 | |
5 | kx1k | 72 | 135 Mbps | 5 | 将来のスーパーHDTVやデジタルシネマ用 |
5.1 | 2kx1k or 4kx2k | 120 / 30 | 240 Mbps | 5 |
*参考;CIF=NTSC-PAL-secam間通信(TV会議・電話)用の中間解像度
QCIF | 176×144 | 30fps | Quarter Common Intermediate Format |
CIF | 352×288 | 30fps | Common Intermediate Format |
4CIF | 704×576 | 30fps | |
16CIF | 1408×1152 | 30fps | |
Sub-QCIF(SQCIF) | 128×96 | 30fps |