H.264フレーミング-1ビットストリーム構造学習

入門

 H.264のMPEG2 TSまたはPS仕様内のサブフレームが定義され、各フレームの先頭すなわちはAUD部、AUD 264アクセスユニットを含む単位を有するべきです。したがって、そうでない場合がスライスNAL層のみ分化することができるので、フレームを区別する方法は、ありませんが、フレームを見つけることができない、フレーミングにH.264フレーミング戦略に応じて異なります。

アウトライン

 多くの場合、ファイルに対応したメディアファイルをストリーミングH.264フレーム長を提供することができない、それが拡大し、学習ので、ポイントを識別するために、H.264標準のH.264ストリームの解析を結合することによって、メディアファイルをストリーミングのフレーム送信に応じて、解決できませんパースフレームとフレーム長、ファイルにビデオファイルを送信する目的のためのフレーム長が必要ではありません。

知識

 要約によると、我々はそれ以外の場合にのみそのサブフレームNAL層を介してではなく、H.264ビデオファイル内AUDユニットがない限り、フレーム境界を識別するために、それを知ることができます。そう深いスライス層に、比較の要素を分析することにより、スライス層は、フレーミング戦略を得ました。したがって、我々フレーミングポリシーに関連する要素を収集し、そして最終的に問題を解決するために後まで導入学習のトップダウン構造のH.264ストリーム。

1. H.264コードストリーム

 (また、裸ストリームとも呼ばれる)264コードストリームは、そこ1つのNALU組成物であり、その機能は二層に分割されている:ビデオ符号化層(VCL、ビデオ符号化層)とネットワーク抽象化層(NAL、ネットワーク抽象化レイヤ)。
 すなわち、それは、圧縮符号化された配列された映像データを表し、符号化データVCLプロセスを出力します。送信または記憶の前VCLデータ、VCLの符号化データは、マップされた、または(以下NALU、NALユニットと呼ばれる)NALユニットをカプセル化することができます。負荷(RBSP、生のバイトシーケンスペイロード)を含む各NALU生のバイトシーケンス 、 NALUヘッダ情報を符号化する映像に対応するグループ。基本的な構造はRBSPである:充填の最後に元の符号化データビットの後。ビット「1」ビット「0」の数、その結果、バイトアラインメント。構造を以下に示します。
H.264のコードストリーム

1.1 NALU

 NALU NALUはRBSPとヘッダ情報成分です。図プラスNALはRBSP NALUの形成に向かいます。NALUは構造がH.264、H.264での重要な役割は主にNALU基づいています。だから何NALUであるが、画像に関連付けられています。
画像スライス
 図では、プロセスは、ビデオ符号化プロセスを分割する処理は、実際の画像は(実際には少なくとも一つの、より多くてもよい)スライスデータを複数に分割されていることが分かります。ビデオファイルでは、このようなキャリアのスライスとして、それがNALUです。もちろん、負荷は必ずしもNALUスライスではない、それは必要十分条件ではありません。NALUはまた、等SEI(付加拡張情報)、SPS(シーケンスパラメータセット)、PPS(ピクチャパラメータセット)、他のコンテンツはカノニカル配列の映像情報に記載されているこれらの効果であってもよいです。
 原単位は、多くの場合、H.264 NALU [STARTCODE] [NALUヘッダ] [から成る NALUペイロード] 単位は「0X 00 00 00 01」または「0Xである必要があり、最初のstart_code_prefix NALUを示すために使用される3つの部分000001。 "
 アクセスユニットアクセスユニット:NALユニットのセットは、典型的には、として知られている一次符号化ピクチャを含みます。次の図のコードストリーム(バイトストリームフォーマット)でその性能は:
コードストリームにおけるNALUのパフォーマンス
 H.264ストリームは、異なる組成情報NALUのいずれかで実装されています。そして画像は、一つ以上のNALUで構成される。NALUおよび"0X 00 00 00 01"または"0X 00 00 01"でバイトストリームによって分離しました。
ノート:
 データパケットがNALUその大きさ(長さ)の情報が含まれていないあなたはどこのパケットの終わりを知らないので、パケットNALUストリームへの接続を確立するために開始するために別のパケットを許可されていません。(PS:パケットの送信、のNALUに対応するパケット、境界の問題を検討する必要はありませんが、ストリーミングが必要です)
 付属書Bの、すなわち各NALUプリフィックスコードに、この問題を解決するためのスタートコードでフォーマット(バイトストリームフォーマット):0x00の2又は3、一緒に後部が0x01との、例えば:または0x000001のは0x00000001。
 4バイトの開始符号タイプなぜなら、例えば、バイト分割されたデータストリームと整列するように、連続データ伝送に非常に有用である:データストリームにアクセスするための31の連続するビット1のビット0が分割された後、容易です。こうしてコードストリームは、典型的には、4バイトの形で存在します。
 NALストリーミングにも適し両方パケット指向伝送のための共通の所定のフォーマット、。実際には、パケットの送信及びフロント送信開始コードプレフィックスの付加ことを除いて、同様にストリーミングします。

1.2スライス

 データスライス画像分割が存在するように、一般的に見を参照してください。このセクションでは、スライスの詳細。
 スライス、またバンドとして知られているにも知られている作品は、(三つのスライスを参照、後述)、H.264に提案された新しい概念は、効率的な方法での統合の概念を介してスライスした後のピクチャで符号化されますビデオ画像は、一つ以上のスライスに符号化することができます。
 スライスの主な役割は、マクロブロック(マクロブロック)の担体として使用されます。スライスが作成された理由は、主な目的は、スプレッドや伝送エラーを制限することです。各スライスの予測はスライスがないスライス内の他のマクロブロックに互いに独立して(チップ間(スライス)と予測されたシート(スライス)予測)を送信すべきである、(NALUに格納されている)(マクロブロック)参照画像。
 特定の構成のスライスが、
スライス構造
 図1の構成が簡単にスライスからなるスライスヘッダとスライスデータによって、表示すること、データスライスはまた、マクロブロック数(1以上)を含みます。

1.3マクロ

 それはすべての画素の輝度とクロミナンス情報が含まれているため、マクロブロックは、ビデオ情報の主要な担体です。メインジョブを復号するビデオコードストリームからマクロブロック画素アレイを取得するための効率的な方法を提供することです。
 成分:マクロブロックは、16×16の輝度画素と、追加の8×8のCbとし、カラー画素、8×8のCrブロックからなります。各画像において、マクロブロックは、シートの形で配置されています。以下に示すようにマクロブロック構造:
マクロブロック構造
 サブフレームと下層の知識を使用する必要性の結果は、マクロブロック層、マクロブロック層と一時的に綿密な研究ように、マクロブロックに関連付けられていません。

H.264学習のまとめ

 全体の構図からコードストリーム研究の小さな部品にトップダウン、。これは、コードストリームの全体の階層構造は、図1の264文書で表すことができる表します。
図ストリームの階層
 上記の概念を検討した後、構造体は、データはデータヘッダとそのデータ本体によって格納され、264で見ることができます。ヘッダは、対応するデータの詳細な説明を含んでいます。
 バックサブフレームとフレーム長の最初に解決すべき問題点を取得し、それが唯一のNALUのスライスを含むことが見出され、スライスは直接画像を直接開始区切りコードNALU 0X 00によって決定することができる場合を示しました00 00 01バイト・ストリームの位置との差に応じて、フレームとフレームの長さを得るために分。そして関連情報及び上記と組み合わせて、知識発見へのアクセスは、実際のコードストリームはまた、スライスの複数からなる画像があります。したがって、唯一のNALUの境界を見つけることによって、それがこのケースでは解決できません。我々は、より詳細な分析にNALUデータを必要とするようにします。

公開された60元の記事 ウォン称賛18 ビュー20000 +

おすすめ

転載: blog.csdn.net/BadAyase/article/details/103487096