H.264ビデオコーディングの基本的な知識

1.
   ビデオコーディングテクノロジーの開発履歴ビデオコーディングテクノロジーは、基本的に、ISO / IECによって策定されたMPEG-xとITU-Tによって策定されたH.26xの2つのシリーズのビデオコーディング国際標準の導入です。H.261ビデオコーディングの提案からH.26​​2 / 3、MPEG-1 / 2/4などに至るまで、継続的に追求される共通の目標があります。つまり、可能な限り低いビットレート(またはストレージ容量)で可能な限り多くを取得することです。良好な画質。さらに、画像伝送に対する市場の需要が高まるにつれて、異なるチャネルの伝送特性にどのように適応するかという問題がますます明らかになってきています。そのため、IEO / IECとITU-T(2つの主要な国際標準化組織)は、これらの問題を解決するために新しいビデオ標準H.264を共同で策定しました。
    H.261は、ISDNネットワーク上の会議TVおよびテレビ電話アプリケーションでのビデオコーディング技術の標準化を目的とする、最も初期のビデオコーディングの提案です。それが使用するアルゴリズムは、フレーム間予測で時間的冗長性を減らし、DCT変換で空間的冗長性を減らすことができるハイブリッドコーディング方式を組み合わせたものです。ISDNチャネルと一致して、その出力コードレートはp×64kbit / sです。pの値が小さい場合は、対面TV通話に適した低解像度の画像のみを送信できます。pの値が大きい場合(p> 6など)、より解像度の高い会議用TV画像を送信できます。H.263は、低ビットレートの画像圧縮標準を提案しています。これは、技術的にはH.261の改善と拡張であり、64kbit / s未満のビットレートのアプリケーションをサポートしています。しかし、実際にはH.263以降のH.263 +とH.263 ++は、フルビットレートのアプリケーションをサポートするために開発されました。これは、Sub-QCIF、QCIFなどの多くの画像形式をサポートしていることからもわかります。 、CIF、4CIF、さらには16CIFおよびその他のフォーマット。
    MPEG-1規格のコードレートは約1.2Mbit / sで、30フレームのCIF(352×288)品質の画像を提供でき、CD-ROMビデオの保存と再生用に設計されています。MPEG-1標準ビデオコーディング部分の基本的なアルゴリズムはH.261 / H.263に似ており、動き補償フレーム間予測、2次元DCT、VLCランレングスコーディングなどの手段も採用されています。さらに、イントラフレーム(I)、予測フレーム(P)、双方向予測フレーム(B)、DCフレーム(D)などの概念が導入され、コーディング効率がさらに向上しています。MPEG-1に基づいて、MPEG-2規格は、画像解像度とデジタルTVとの互換性の改善にいくつかの改善を加えました。たとえば、モーションベクトルの精度は、コーディング操作(モーション推定やDCTなど)で半ピクセルです。 「フレーム」と「フィールド」を区別し、空間スケーラビリティ、時間スケーラビリティ、信号対雑音比スケーラビリティなどのコーディングスケーラビリティテクノロジーを紹介します。近年導入されたMPEG-4標準は、オーディオビジュアルオブジェクト(AVO:Audio-Visual Object)に基づくコーディングを導入し、ビデオ通信のインタラクティブ機能とコーディング効率を大幅に改善しました。MPEG-4は、形状コーディング、適応型DCT、任意形状ビデオオブジェクトコーディングなどの新しいテクノロジーも採用しています。しかし、MPEG-4の基本的なビデオエンコーダーは、H.263と同様のハイブリッドエンコーダーに属しています。
    要するに、H.261勧告は古典的なビデオコーディングであり、H.263はその開発であり、実際には主に通信で使用されるように徐々に置き換えられますが、H.263の多数のオプションはユーザーを困らせることがよくあります。MPEGシリーズの規格は、ストレージメディアのアプリケーションから伝送メディアに適応するアプリケーションへと進化しました。そのコアビデオコーディングの基本フレームワークはH.261に準拠しています。MPEG-4の目を引く「オブジェクトベースのコーディング」は、技術的な障害があり、普遍的に適用することは困難です。したがって、これに基づいて開発された新しいビデオコーディング提案H.264は、2つの弱点を克服し、ハイブリッドコーディングのフレームワークの下で新しいコーディング方法を導入し、コーディング効率を向上させ、実用的なアプリケーションに直面しています。同時に、2つの主要な国際標準化組織によって共同で策定され、その適用の見通しは自明です。

2、H.264の紹介
  H.264は、ITU-TのVCEG(Video Coding Expert Group)とISO / IECのMPEG(Moving Picture Coding Expert Group)の共同ビデオチーム(JVT:共同ビデオチーム)によって開発された新しいデジタルビデオコーディング標準です。これは、ITU-TのH.264およびISO / IECのMPEG-4のパート10です。ドラフトの募集は1998年1月に開始されました。最初のドラフトは1999年9月に完了しました。テストモデルTML-8は2001年5月に開発されました。H.264のFCDボードは、2002年6月のJVTの第5回会議で可決されました。 。2003年3月に正式にリリースされました。
    以前の標準と同様に、H.264もDPCMプラス変換コーディングのハイブリッドコーディングモードです。ただし、「基本に戻る」というシンプルな設計を採用しており、多くのオプションがなく、H.263 ++よりもはるかに優れた圧縮パフォーマンスが得られます。さまざまなチャネルへの適応性が強化され、「ネットワークに適した」構造と構文が採用されています。エラーやパケット損失の処理に役立ちます。さまざまな速度、さまざまな解像度、さまざまな伝送(ストレージ)のニーズに対応するための幅広いアプリケーションターゲット。その基本システムはオープンであり、著作権を使用する必要はありません。
    技術的には、H.264標準には、統一されたVLCシンボルコーディング、高精度、マルチモード変位推定、4x4ブロックに基づく整数変換、階層化されたコーディング構文など、多くのハイライトがあります。これらの対策により、H.264アルゴリズムのコーディング効率は非常に高くなり、同じ再構築された画質で、H.263よりもコードレートの約50%を節約できます。H.264のコードストリーム構造は、強力なネットワーク適応性を備え、エラー回復能力を高め、IPおよびワイヤレスネットワークアプリケーションに適切に適応できます。

3. H.264の技術的ハイライト
1.レイヤードデザイン
  H.264アルゴリズムは概念的に2つのレイヤーに分割できます。ビデオコーディングレイヤー(VCL:ビデオコーディングレイヤー)は、効率的なビデオコンテンツの表現を担当し、ネットワークアブストラクションレイヤー(NAL:ネットワークアブストラクションレイヤー)は、ネットワークが必要とする適切な方法を担当します。データをパックして送信します。パケットベースのインターフェイスはVCLとNALの間に定義され、パッケージングと対応するシグナリングはNALの一部です。このように、高いコーディング効率とネットワークフレンドリーさのタスクは、それぞれVCLとNALによって実行されます。
    VCLレイヤーには、ブロックベースの動き補償ハイブリッドコーディングといくつかの新機能が含まれています。以前のビデオコーディング標準と同様に、H.264にはドラフトに前処理や後処理などの機能が含まれていないため、標準の柔軟性を高めることができます。
    NALは、下位層ネットワークのセグメンテーションフォーマットを使用して、フレーミング、論理チャネルシグナリング、タイミング情報の利用、またはシーケンスエンドシグナルなどのデータをカプセル化します。たとえば、NALは、回線交換チャネル上のビデオの伝送フォーマットをサポートし、RTP / UDP / IPを使用したインターネット上のビデオ伝送のフォーマットをサポートしています。NALには、独自のヘッダー情報、セグメント構造情報、および実際の負荷情報、つまり上位層のVCLデータが含まれています。(データセグメンテーションテクノロジーが使用されている場合、データはいくつかの部分で構成される場合があります)。


2.高精度のマルチモードモーション推定
   H.264は、1/4または1/8ピクセル精度のモーションベクトルをサポートしています。1/4ピクセル精度では、6タップフィルターを使用して高周波ノイズを低減でき、1/8ピクセル精度のモーションベクトルでは、より複雑な8タップフィルターを使用できます。モーション推定を実行するとき、エンコーダーは「拡張」補間フィルターを選択して予測の効果を向上させることもできます。
    H.264動き予測では、図2に示すように、マクロブロック(MB)を異なるサブブロックに分割して、7つの異なるモードのブロックサイズを形成できます。このマルチモードの柔軟で詳細な分割は、画像内の実際の移動オブジェクトの形状により適しているため、モーション推定の精度が大幅に向上します。このようにして、1、2、4、8、または16個のモーションベクトルを各マクロブロックに含めることができます。
    H.264では、エンコーダーはモーション推定に複数の以前のフレームを使用できます。これは、いわゆるマルチフレーム参照テクノロジーです。たとえば、2つまたは3つのフレームが単にコード化された参照フレームである場合、エンコーダーは各ターゲットマクロブロックに対してより適切な予測フレームを選択し、各マクロブロックに対してどのフレームが予測に使用されるかを示します。


3. 4x4ブロックの整数変換
    H.264は以前の標準に似ています。残差にブロックベースの変換コーディングを使用しますが、変換は実数演算ではなく整数演算であり、そのプロセスは基本的にDCTに似ています。この方法の利点は、エンコーダーとデコーダーで同じ精度の変換と逆変換が可能であり、単純な固定小数点演算を使用すると便利なことです。つまり、「逆変換エラー」は発生しません。変換の単位は、従来一般的に使用されている8×8ブロックではなく、4×4ブロックです。変換ブロックのサイズが小さくなると、移動オブジェクトの分割がより正確になるため、変換計算量が少なくなるだけでなく、移動オブジェクトのエッジでの収束エラーも大幅に減少します。小さいサイズのブロック変換方法で、画像内のより広い滑らかな領域のブロック間にグレースケール差が生じないようにするために、フレーム内マクロブロック輝度データの16個の4×4ブロックのDC係数(各小さいブロック1つ、合計16)は、2番目の4x4ブロック変換を実行し、クロミナンスデータの4つの4x4ブロックのDC係数に対して2x2ブロック変換を実行します(各小さなブロックに1つ、合計4つ)。
    H.264のレート制御能力を改善するために、量子化ステップサイズの変更は、一定の増加ではなく、約12.5%に制御されます。変換係数の振幅の正規化は、逆量子化プロセスで処理され、計算の複雑さが軽減されます。色の忠実度を強調するために、クロミナンス係数にはより小さい量子化ステップサイズが採用されています。


4.ユニファイドVLC
    H.264エントロピーコーディングには2つの方法があります。1つは、コード化するすべてのシンボルにユニファイドVLC(UVLC:Universal VLC)を使用する方法で、もう1つは、コンテンツ適応型バイナリ算術コーディング( CABAC:Context-Adaptive Binary Arithmetic Coding)。CABACはオプションであり、そのコーディングパフォーマンスはUVLCよりもわずかに優れていますが、計算の複雑さも高くなります。UVLCは無制限の長さのコードワードセットを使用し、設計構造は非常に規則的で、異なるオブジェクトを同じコードテーブルでコーディングできます。このメソッドはコードワードを簡単に生成でき、デコーダーはコードワードのプレフィックスを簡単に識別でき、UVLCはビットエラーが発生したときに再同期をすばやく取得できます。


5.フレーム内予測
    は、以前のH.26xシリーズおよびMPEG-xシリーズ標準におけるフレーム予測の方法です。H.264では、イントラ画像のエンコード時にフレーム内予測を利用できます。各4×4ブロック(エッジブロックの特別な扱いを除く)について、以前にエンコードされた17個の最も近いピクセル(一部の重みは0である場合があります)の異なる重み付けされた合計で各ピクセルを予測できます。つまり、このピクセルブロックの左上隅の17ピクセル。明らかに、この種のフレーム内予測は間に合わず、空間ドメインで実行される予測コーディングアルゴリズムです。これにより、隣接するブロック間の空間的な冗長性を取り除き、より効果的な圧縮を実現できます。
    
6. IPおよびワイヤレス環境用の
    H.264ドラフトは、エラーを排除するツールが含まれており、モバイルチャネルやIPチャネルでの伝送の堅牢性など、エラーやパケット損失が頻繁に発生する環境で圧縮ビデオの伝送を容易にします。
    伝送エラーに抵抗するために、H.264ビデオストリームの時間同期は、フレーム内の画像更新を使用して実行できます。空間同期は、スライス構造化コーディングによってサポートされています。同時に、ビットエラー後の再同期を容易にするために、特定の再同期ポイントも画像のビデオデータに提供されます。さらに、フレーム内マクロブロックの更新と複数の参照マクロブロックにより、エンコーダーは、マクロブロックモードを決定するときに、コーディング効率だけでなく、伝送チャネルの特性も考慮することができます。
    量子化ステップサイズの変更を使用してチャネルコードレートに適応することに加えて、H.264では、データセグメンテーションの方法を使用してチャネルコードレートの変更に対処することがよくあります。一般的に言えば、データセグメンテーションの概念は、ネットワークでサービスのQoSをサポートするために、エンコーダーで異なる優先度のビデオデータを生成することです。たとえば、構文ベースのデータ分割方法を採用して、各フレームのデータをその重要度に応じていくつかの部分に分割します。これにより、バッファがオーバーフローしたときに重要度の低い情報を破棄できます。同様の時間データ分割方法を使用することもできます。これは、PおよびBフレームで複数の参照フレームを使用することによって実現されます。
    無線通信のアプリケーションでは、各フレームの量子化精度または空間/時間分解能を変更することにより、無線チャネルの大きなビットレート変更に対応できます。ただし、マルチキャストの場合、さまざまなビットレートに応答するようにエンコーダに要求することは不可能です。したがって、MPEG-4で使用されているFGS(Fine Granular Scalability)方式(効率が低い)とは異なり、H.264は階層コーディングの代わりにストリームスイッチングSPフレームを使用します。

第4に、H.264パフォーマンスの比較
    TML-8はH.264のテストモードです。これを使用して、H.264のビデオコーディング効率を比較およびテストします。テスト結果が提供するPSNRは、MPEG-4(ASP:Advanced Simple Profile)およびH.263 ++(HLP:High Latency Profile)のパフォーマンスと比較して、H.264の結果が明らかに有利であることを示しています。
    H.264のPSNRは、MPEG-4(ASP)およびH.263 ++(HLP)よりも明らかに優れています。6つのレートの比較テストでは、H.264のPSNRは、平均でMPEG-4(ASP)より2dB高くなっています。平均でH.263(HLP)より3dB高くなっています。6つのテストレートと関連する条件は、32 kbit / sレート、10f / sフレームレートとQCIFフォーマット、64 kbit / sレート、15f / sフレームレートとQCIFフォーマット、128kbit / sレート、15f / sです。フレームレートとCIFフォーマット、256kbit / sレート、15f / sフレームレートとQCIFフォーマット、512 kbit / sレート、30f / sフレームレートとCIFフォーマット、1024 kbit / sレート、30f / sフレームレートとCIFフォーマット。

おすすめ

転載: blog.csdn.net/ccsss22/article/details/108740767