|
▼ H.264 の解説を表示▼
{{Infobox file format
| name = H.264
| icon =
| extension = .mp4 .m4v .m2t .m2ts .mov
| mime =
| type code =
| uniform type =
| owner =
| genre = [[動画]]
| container for =
| contained by = [[MP4]], MPEG-2 TS, [[QuickTime]]
| extended from =
| extended to =
| standard = [[国際標準化機構|ISO]]/[[国際電気標準会議|IEC]], [[ITU-T]]
}}
'''H.264'''(えいちにーろくよん)は、[[2003年]]初めに[[ITU-T]](国際電気通信連合電気通信標準化部門)によって勧告された、少へんデータ量で効率よう動画を伝送するための動画圧縮規格。従来方式である[[MPEG-2]]やらなんやらの2倍以上の[[データ圧縮比|圧縮効率]]を実現するとされておる。[[携帯電話]]やらなんやらの低[[ビット毎秒|ビットレート]]用途から、[[高精細度テレビジョン放送|HDTV]]クラスの高ビットレート用途に至るまで幅広く利用されることを想定しておる。[[国際標準化機構|ISO]]/[[国際電気標準会議|IEC]]では、ISO/IEC 14496-10「[[MPEG-4]] Part 10 Advanced Video Coding(通称:'''MPEG-4 AVC''')」としたかて規定されており、どちらも技術的には同一のもんであるんや。H.264はITU-TとISO/IECが共同で策定したため、両者の呼称を「H.264/AVC」「H.264/MPEG-4 AVC」「MPEG-4 AVC/H.264」と併記するっちうことが多い。
==技術おーまかなトコ==
圧縮理屈の原理は、従来方式の[[MPEG-1]]、[[MPEG-2]]、[[H.261]]、[[H.263]]、[[MPEG-4]]やらなんやらと基本的には同様で、空間変換や[[フレーム間予測]]、[[量子化]]、[[エントロピー符号|エントロピー符号化]]を採用しておる。H.264ではこれらのツールに対してどエライ多数の改良が施されており、[[算術符号|算術符号化]]やフィルタやらなんやらのツールも追加されておる。さらに、画像特徴に応じて多彩なモードを適応的に使い分けることで、従来方式を遥かに凌ぐ圧縮効率を達成しておる。
===整数変換===
従来規格のMPEG-1、MPEG-2やH.261では16×16画素、H.263、MPEG-4では8×8画素のブロック(マクロブロック)を単位として、原画像へんしフレーム間予測の予測誤差画像の[[離散コサイン変換]](DCT)係数を求め、その係数を量子化しておる。このとき、[[三角関数|コサイン関数]]を用おるため、実数精度の演算が必要となる。これに対し H.264では、16ビット整数精度で演算が可能な整数変換を採用しておる。この整数変換は、加減算とビットシフトのみによって演算可能となるように設計されておるため、[[ソフトウェア]]、[[ハードウェア]]いずれの場合でも[[実装]]がどエライ容易となる。
演算がずぅぇえええぇぇええんぶ整数精度で行われることで、実数演算の実装差による「デコーダごとの演算結果の差分」を生じさせることなく[[エンコード]]するっちうことが可能となりよったちうわけや。こら、エンコード時の局部復号器の結果とずぅぇえええぇぇええんぶのデコーダでの出力結果がまるっきし同一になることを意味しておる。エンコード時の局部復号器の結果とデコーダの出力結果が異なる場合、エンコーダが作成する再構成画像とデコーダが作成する再構成画像が異なることとなるため、フレームが経過するごとに画像にノイズが蓄積してまう。これを回避するため従来技術ではそのDCT演算誤差の帳消しのために定期的にイントラマクロブロックを挿入する必要があったちうわけや。H.264では整数変換を用いており誤差の問題が生じへんため、定期的にイントラマクロブロックを挿入する必要があらへん。
デコーダの実装差による出力結果の違いが生じへんことは、デコーダの規格適合性を検証する上でも有利となる。H.264 の関連規格である H.264.1 は H.264規格適合性の検証手法を定めるもさかい、H.264 で符号化済の試験用ビットストリームとそのデコード結果の組が多数オマケしておる。開発中のデコーダに試験用ビットストリームを入力し、その出力結果とH.264.1オマケのデコード結果が厳密に一致しておるかどうかを確かめることで、規格適合性の判断を行うことができる。
当初、H.264で使用可能な整数変換のブロックサイズは4×4画素のみやったちうわけや。このサイズでは、低解像度の動画の圧縮では比較的好適な画質を示すが、[[高精細度テレビジョン放送|HDTV]]やらなんやらへんな高解像度の動画において画質の再現性に弱いゆう問題点があったため、後に導入されたプロファイル群においては、これを克服するために8×8サイズの整数変換が導入されておる。これらのプロファイルでは、フレーム内で4×4変換と8×8変換を適応的に切り替えて使用するっちうことができる。
===フレーム間予測===
====複数参照フレーム====
従来技術では、[[フレーム間予測]]において参照フレームとして指定できるフレームは、Pフレームについては直前のI, Pフレーム、Bフレームについては直前および直後のI, Pフレームに固定されておる。
H.264では、複数の参照フレームを持つことによちう、例うたらシーンチェンジや移動物体を考慮してより前のフレームを参照フレームとして指定するっちうことが可能となっておる。また、Bフレームについては未来方向のフレームを使わんと過去の2フレームを参照フレームとして指定したり、別のBフレームを参照フレームとして指定するっちうことが可能となっておる。
複数参照フレームの導入に伴いIフレームより前のフレームも参照可能となっておる。この場合、Iフレームから再生を開始したろおもてしたかて、後続のフレームが、再生を開始したろおもてするIフレームより前のフレームの情報を必要とするっちうことがあるんや。そやから、H.264ではIフレームから再生を開始するっちうことができるとは限らへん。この問題を解決するため、参照フレームが格納されておるバッファのクリアを行うことでそのフレームから再生が可能であることを保証する、IDR(Instantaneous Decoder Refresh)フレームが導入されておる。すなわち、P, BフレームはIDRフレームをまたいで参照フレームを指定するっちうことができへんように定められておる。
====可変ブロックサイズ====
従来技術では、動き補償の単位は16×16画素のマクロブロックが基本なんやし、[[H.263]]および[[MPEG-4]]においては8×8画素ブロック単位の動き補償も利用できたちうわけや。
H.264ではさらに単位ブロックサイズを追加し、16×16, 16×8, 8×16, 8×8の4種類から選択可能となっておる。さらに、8×8画素ブロックについては、8×8, 8×4, 4×8, 4×4の4種類のサブブロック分割も指定できる。
こへんな風に多数のブロックサイズを利用するっちうことで、形状や動きに適したブロックから予測が可能であるんや。こら、原理的には符号化効率が上がることとなる。せやけど、サブブロックを指定するっちうことは余分なヘッダが付加されることになり、これがオーバーヘッドとなって符号化効率に影響を与える可能性もあるんや。シーンに適した動き補償ブロックサイズを選択するっちうことが、エンコーダには求められはる。
====重み付け予測====
H.264では、従来方式では画質向上が困難やった、[[フェード]]や[[ディゾルブ]]やらなんやらの特殊効果が用いられておる動画の画質向上のため、参照フレームの予測誤差に重み付け係数を掛けてデコードする、重み付け予測(Weighted Prediction)が採用されておる。フェードやディゾルブは、前フレームと現フレームで一定のオフセットがかかったような画像であるため、そのことで予測差分に大きな値が生じることとなり、MPEG-4やらなんやらでは画質劣化の原因として問題となっとったちうわけや。
====1/4画素精度動き補償====
動き補償の精度としては、MPEG-4 ASPで導入された1/4画素精度(クォーターペル精度)動き補償を使用しておる。ゆっくり動くパンやらなんやらで特に効果的であるんや。
1/2画素精度動き補償では6tapフィルターを用いて高周波まで再現を行っており、MPEG-4で使用された線形補間よりも再現性が良うなっておる。1/4画素の生成は、再現性の高い1/2画素を用いてその線形補間で作成を行う。
===イントラ予測===
H.264では、フレーム間予測を用おらへんマクロブロックに対して、上や左翼やらなんやらに隣接するマクロブロックの隣接画素から補間によって予測画像を生成し、その予測画像との差分を符号化する、イントラ予測(Intra prediction)が採用されておる。予測画像の生成単位となるブロックサイズは、輝度(Y)成分については4×4および16×16画素の2種類なんやし、色差(Cb, Cr)成分の8×8画素については8×8画素単位の1種類であるんや。また、予測画像生成における補間パターンは、輝度成分の4×4単位の場合は9種類、輝度成分の16×16単位および色差成分の場合は4種類が利用できる。
さらに、ハイプロファイル以上のプロファイル(後述)では、8×8画素単位のイントラ予測も利用可能であるんや。補間パターンは4×4の場合と同様の9種類が利用できる。なお、8×8、4×4の場合は、整数変換も同じ行列サイズに固定される。
MPEG-4で導入されておるAC/DC予測では、予測する係数がDCT係数の行列のうちの最上列へんし最左翼行の係数に限られておるため、縦方向へんし横方向の画素変身に対してしか予測効率を高めることができへん。これに対して、H.264のイントラ予測ではDCT係数やのうて画素レベルでの予測を行い、かつ縦・横方向以外にも斜め方向の画素予測パターンも利用できるため、予測効率が大幅に向上しておる。
===エントロピー符号化===
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]]やらなんやらのファイルフォーマットに格納したり、[[w:Real-time_Transport_Protocol|RTP]][[パケット]]に分割して伝送したりするやらなんやら、圧縮データをさまざまな用途に柔軟に適用できるようになっておる。
==プロファイルとレベル==
MPEG-2やらなんやらと同様、目的用途別に定義された機能の集合を表す'''プロファイル'''と、処理の負荷や使用メモリ量(これらは画面解像度やフレームレートに影響する)を表す'''レベル'''が定義がされる。H.264に準拠する機器(又はビットストリームそのもん)はこのプロファイルとレベルによって性能(又はビットストリームをデコードするんに必要な性能)を表示するっちうことが多い。
===プロファイル===
以下の7種類が定義されておる。
*'''ベースラインプロファイル'''(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 Profile): ハイ4:2:2プロファイルにYCbCr 4:4:4色空間や12ビット画像フォーマット、YCbCr以外への色空間への変換、[[可逆圧縮]]やらなんやら多数の機能を追加したもわ。
ハイ、ハイ10、ハイ4:2:2、ハイ4:4:4の4つのプロファイルは、当初Fidelity Range Extensions (FRExt)と呼ばれとった、HDTVにおける画質再現性を向上させるための機能を備えたもんであるんや。これらは[[2005年]][[12月]]にISO/IECによって承認され、MPEG-4 AVCバージョン3として統合されておる。
===レベル===
'''レベル1''' から '''レベル5.1''' まで、16段階が定義されておる。それぞれのレベルにおいて、処理の負荷や使用メモリ量等を表すパラメータの上限が定められ、画面解像度やフレームレートの上限を決定しておる。各パラメータの詳細は[http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels 英語版]を参照のこと。
== 利用例 ==
H.264は下記の放送・規格で採用されておる。なお、[[地上デジタルテレビジョン放送]]では[[MPEG-2]]が採用されておるが、H.264はISDB-T方式を改良した[[ブラジル]]のSBTVD方式の他、[[DVB-T]]方式の一部で採用されておる。
=== [[デジタル放送]]方式 ===
*[[DVB-T]]
*DVB-S2
**[[スカパー!|スカパー!HD]]
*[[ISDB]]
**SBTVD
**[[ワンセグ]]
*[[DMB]]
**[[モバHO!]]([[2009年]]3月終了・精算決定)
=== マルチメディア規格 ===
*[[QuickTime]] 7 - QuickTime 7 PlayerではH.264の再生、QuickTime 7 ProではH.264への変換が出来よる
*Adobe Flash Player 9 - 2007年8月21日、H.264対応版発表
*[[ユニバーサル・メディア・ディスク]](UMD)
*[[AVCHD]]
*[[AVCREC]]
*HD Rec
また、下記の規格においても映像[[コーデック]]のひとつとして採用されており、今後の普及が見込まれる。
*Blu-ray Disc
*HD DVD - [[東芝]]の事業撤退に伴い、対応製品の販売終了
=== 動画コンテンツ ===
*[[Wii]]([[みんなのニンテンドーチャンネル]])
*[[アクトビラ]]
=== 動画投稿サイト ===
*zoome - 3,000kbpsまで(音声込みの上限値)のH.264動画を完全タダで投稿可能。2007年12月20日より。やまと国内の動画投稿サイトで真っ先にH.264対応したちうわけや。
*Any6 ViewLine - ビットレート無制限のH.264動画を投稿可能(タダ)。zoomeとほぼいっぺん期にH.264に対応したちうわけや。
*[[どないかして動画]] - 1,200kbpsまでのH.264動画を投稿可能(タダ)。
*[[YouTube]] - iPhoneやiPod touchに標準搭載されておるYouTubeプレーヤーはH.264(音声[[AAC]])に対応しておる。パソコンからのアクセスは通常は[[H.263]](音声[[MP3]])やけどアドレスの後ろに「&fmt=18」と入力するとH.264(音声AAC)のデータが再生される。さらに「&fmt=22」と入力すると、1280x720やらなんやらでアップロードした動画はさらに高画質で再生される。
*[[ニコニコ動画]] - 2008年7月5日より600kbpsまでのH.264動画を一般会員も投稿可能。有料会員は1,000kbpsまで投稿可。
*eyeVio - H.264によるハイビジョン動画配信・eyeVio HD PROを2008年7月より開始したちうわけや。
*Wuapi - イギリスの動画共有サイト
==競合方式==
H.264と同様に、MPEG-2の2倍以上の圧縮効率を実現する方式としては、[[マイクロソフト]]が開発した[[VC-1]](Windows Media Video 9)やらなんやらがよう知られておる。また、H.264とVC-1は同一ビットレートで同等の画質性能を示す。
2003年、[[マイクロソフト]]は米国映画テレビ技術者協会([[SMPTE]])に、WMV9の基本理屈にインタレース映像への対応を加えた仕様をVC-9として提出した(後に名称がVC-1に改められはった)。このVC-1がH.264と同様にHD DVDとBlu-ray Discに採用されておる。
H.264はどエライ多数の複雑な符号化ツールで構成されており、VC-1に比べてエンコーダもデコーダも処理負荷が高なる傾向があるんや。せやけど、H.264はITU-TおよびISO/IECといった国際標準化団体の規格であるため、世界中のようけの企業が支持を表明しておる。
==関連項目==
=== ハードウェア ===
*iPod
*Apple TV
*[[プレイステーション・ポータブル|PSP]]
=== ソフトウェア ===
*[[DivX|DivX7]]
*x264
*ffdshow
*[[QuickTime]]
*Flash Player
=== 関連団体 ===
*[[ITU-T]]
*ISO/IEC JTC 1
=== その他 ===
*[[動画]]
*[[データ圧縮]]
*[[高精細度テレビジョン放送|HDTV]]
==外部リンク==
*再生関連
**[http://www.apple.com/jp/quicktime/ アップル - QuickTime]
**[http://www.gomplayer.jp/ GOM PLAYER]
**[http://www.videolan.org/vlc/ VLC media player]
**[http://sourceforge.net/project/showfiles.php?group_id=173941 sourceforge ffdshow-tryouts]
*作成関連
**[http://www.nurs.or.jp/~calcium/3gpp/ 携帯動画変換君]
**[http://meetingpoint.jp/Hoppysoft/ QTConverter]
**[http://www.h264tscutter.de/ H264TS_Cutter]
*解説サイト
**[http://bb.watch.impress.co.jp/cda/bbword/15964.html 槻ノ木隆の「BBっとWORDS」 / その98「H.264・MPEG-4 AVCの特徴」]
**[http://www.mpeg.co.jp/libraries/mpeg_labo/winPC_20.html MPEGラボ『DVD並みの映像をネットで送るMPEG-4の新方式「AVC(H.264)」とは?』]
**[http://www.tenchi.ne.jp/~yoko/aviutl/index.php?H.264%2FAVC AviUtl実験室「H.264/AVC」]
**[http://getonebyone.googlepages.com/media_h264 MPEG4 AVC H.264 Standard & Papers]
*テクノロジーベンダーサイト
**[http://www.tmath.co.jp/ 株式会社テクノマセマティカル]
**[http://www.human-monitoring.com/ Human Monitoring, Ltd.] [http://www.human-monitoring.jp/ (やまと語サイト)]
*規格関連
**[http://iphome.hhi.de/suehring/tml/ リファレンスソフトウェア]
**[http://www.itu.int/rec/T-REC-H.264/e 規格書]
{{圧縮フォーマット}}
[[Category:コーデック|H.264]]
[[category:ITU]]
[[Category:MPEG|H.264/MPEG-4 AVC]]
[[ar:أتش 264]]
[[bg:H.264]]
[[ca:H.264/MPEG-4 AVC]]
[[de:H.264]]
[[en:H.264/MPEG-4 AVC]]
[[es:H.264/MPEG-4 AVC]]
[[et:H.264/MPEG-4 AVC]]
[[fi:H.264]]
[[fr:H.264]]
[[he:H.264]]
[[it:H.264]]
[[ko:H.264/AVC]]
[[ms:H.264/MPEG-4 AVC]]
[[nl:H.264]]
[[no:H.264]]
[[pam:H.264/MPEG-4 AVC]]
[[pl:H.264/MPEG-4 AVC]]
[[pt:H.264]]
[[ro:H.264]]
[[ru:H.264]]
[[sk:H.264/MPEG-4 AVC]]
[[sr:H.264]]
[[sv:H.264]]
[[tr:H.264/MPEG-4 AVC]]
[[uk:H.264]]
[[zh:H.264/MPEG-4 AVC]]
出典: フリー百科事典『ウィキペディア(Wikipedia)』 Text is available under GNU Free Documentation License.
page1 page2 page3 page4 page5
|