HEVC ネットワーク アダプテーション レイヤーの概要

h265の階層構造

階層の目的

○ ネットワークにはさまざまな種類があり、異なるネットワーク環境には異なる特性があり、そこでの圧縮ビデオの送信は必然的に影響を受けます。たとえば、異なるネットワークの MTU は異なります。 ○ 異なるアプリケーション シナリオには、ビデオに対する異なる要件があります
。ビデオ サービスは異なる伝送プロトコルを使用することを好みます。

階層化の重要性

○ エントロピー コーディング後、コード ストリーム内のバイナリ シンボルは、実際の値に単純に対応しなくなりました。深刻な場合、シンボルの損失またはエラーにより、後続のデータが正しくデコードされなくなります。 ○ この非常に複雑な圧縮ビデオの送信を最適化します。この場合
、さまざまなデータの重要性を理解するには、コード ストリームの詳細な分析またはデコードを実行する必要がありますが、詳細な分析やコード ストリームのデコードさえも計算量が多すぎます。一般的なネットワーク機器でサポートされる高さ。
ここに画像の説明を挿入

VCLとNAL

○ H.265/HEVC は、さまざまなネットワーク環境やビデオ アプリケーションに適応するために、ビデオ コーディング層 (VCL) とネットワーク アダプテーション層 (ネットワーク アブストラクト層、NAL) の 2 層アーキテクチャも採用しています。ネットワーク アダプテーション層の主なタスクは、複雑で変化しやすいネットワーク環境に適切に適応できるように、圧縮されたビデオ データを分割してカプセル化し、必要な識別を実行することです。

NALの作用機序

○ 一連の画像から構成される原映像を圧縮符号化(VCL)した後、圧縮映像ビットストリームの内容特性に応じて複数のデータセグメントに分割し、各データセグメントをカプセル化して識別することでNALUを生成します。 NALUヘッダ情報には特性情報が格納される。
ここに画像の説明を挿入

NALと人物

○ NAL のサイズは、ネットワークの MTU (最大送信単位) サイズと必ずしも同じではないため、ネットワーク グループと NALU にはいくつかの組み合わせがあります。1 つのネットワーク グループには 1 つの NALU が含まれ、1 つのネットワーク グループには複数の NALU が含まれます。 、複数の NALU が 1 つのネットワーク グループに結合され、複数のネットワーク グループに 1 つの NALU が含まれます。つまり、1 つの NALU が複数のネットワーク グループに分割されます。
○ ネットワーク伝送中、ネットワークデバイスは、NALU のヘッダー情報を通じて NALU によって伝送されるビデオデータのコンテンツ特性を直接取得し、これに基づいてビデオストリームの伝送を最適化できます。

h265画像タイプ

  1. すべての圧縮ビデオ データは、さまざまな NALU のペイロードにカプセル化され、VPS、SPS、PPS およびその他の情報を伝送することに加えて、NALU は主にビデオ スライスの圧縮データを伝送します。
  2. 圧縮ビデオデータを搬送する NALU は VCLU (VCL NALU) と呼ばれ、その他の情報を搬送する NALU は非 VCLU (非 VCL NALU) と呼ばれます。
  3. ランダム アクセス ポイント IRAP
    ○ IRAP (Intra Random Access Point) を起点として、後続のビデオ ストリームは、IRAP 前のビデオ情報を参照することなく、独立して正しくデコードできます IRAP 後の最初のデコードされた画像を IRAP イメージと呼びます ○ 再生に応じて
    その他の画像は順に先頭(Leading)画像と末尾(Trailing)画像に分けることができる; 先頭画像は RADL 画像と RASL 画像に分けることができる ○ h265 では IDR 画像、CRA 画像の 3 種類の IRAP 画像
    規定、BLA 画像;
    ○ IRAP 画像は、ビデオ ストリームを複数の相対的に対向する領域に分割し、各領域は CVS (Coded Video Sequence) と呼ばれ、CVS は、このビデオ ストリームの 2 つの隣接する IRAP 画像 (および NoRas1OutputFlag=1) 間の距離として定義されます。 ;
  4. TSA/STSA
    ○ h265 の新しいイメージ タイプ。タイム ドメイン サブレイヤのスイッチング ポイントを識別するために使用されます。
    ここに画像の説明を挿入

ネットワーク アダプテーション レイヤ ユニット NALU

  1. 各 NALU には、NALU ヘッダー (ヘッダー) と NALU ロード (ペイロード) の 2 つの部分が含まれています。
  2. SODB
    ○ ビデオエンコードの過程で、異なる内容を含む圧縮データビットストリームの断片が出力されますが、このビットストリームの断片をSODB(String Of Data Bits)と呼び、SODBはバイト内のビットを並べた最も効率的な保存形式です。左から右、高いものから低いものの順に並べます。
  3. RBSP
    ○ SODB (String Of Data Bits) の後に RBSP trailing_bits (rbsp trailing_bits) を追加して、元のバイト シーケンス ペイロード (Raw Byte Sequence Payload、RBSP) を生成します; RBSP テールは、RBSP ストップ ビットと呼ばれる 1 ビットとそれに続く 0 ビット以上で構成されます0の。RBSP は整数バイトの SODB であり、RBSP のデータ型は SODB のデータ型です。
  4. EBSP
    ○ H265 では、バイトストリームフラグメントと NALU の開始コードおよび終了コードとの競合を避けるために、RBSP のバイトストリームに対して競合処理 0x3 を行う必要があります。つまり、EBSP は Encapsulated Byte Sequence Payload (Encapsulated Byte Sequence Payload)バイト シーケンス ペイロード)、処理された RBSP は NALU の負荷情報として直接使用でき、ディスクに保存してネットワーク経由で送信できます。
    ○ したがって、実際の最終的な NALU = ヘッダー + EBSP;
    ここに画像の説明を挿入
  5. NALU 構文
    ここに画像の説明を挿入

NALUヘッダー

  1. h264 と比較すると、h265 には NALU のコンテンツ特性を表す固定の 2 バイトのヘッダーがあります。
  2. これは 4 つの固定長部分で構成されます:forbidden_​​zero_bit、nal_unit_type、nuh_layer_id、nuh_temporal_id_plus1;
    ○forbidden_​​zero_bit は 1 ビットを占有し、MPEG-2 システムの開始ビットとの競合を防ぐために値は 0 に設定する必要があります; ○ nal_unit_type は
    6 ビットを占有します、現在の NALU 負荷を識別する 情報のコンテンツ特性は NALU タイプと呼ばれます;
    ○ nuh_layer_id は 6 ビットを占め、現在のバージョンは値 0 をとり、将来ビデオまたは 3D ビデオをスケーリングする勇気があるかもしれません ○
    nuh_temporal_id_plus1時間ドメイン識別子の 3 ビットを占め、値から 1 を引いた値は、NALU が配置されている時間ドメインを示します。レイヤーの TemporalId は 0 にはできません。
    ここに画像の説明を挿入

フレームタイプ分析

  1. h264 の &01f と異なり、h265 の判定方法は
    ○ int type = (code & 0x7E ) >> 1; // 0x7E のバイナリの下位 8 ビットは 0111 1110

  2. VPS: 00 00 00 01 40 01 の nuh_unit_type 値は 32
    ○ 40 & 0x7E = (バイナリ) 01000000 & 01111110 = 01000000
    ○ 01000000 >> 1 = 00100000
    ○ (10 進数) 00100000 = 2^ 5 = 32

  3. SPS: 00 00 00 01 42 01 の nuh_unit_type 値は 33
    ○ 42 & 0x7E = (2 進数) 01000010 & 01111110 = 01000010 ○
    01000010 >> 1 = 00100001 ○
    (10 進数) 00100001 = 2 ^0 + 2^5 = 33

  4. PPS: 00 00 00 01 44 01 の nuh_unit_type 値は 34
    ○ 44 & 0x7E = (2 進数) 01000100 & 01111110 = 01000100
    ○ 01000100 >> 1 = 00100010 ○ (
    10 進数) 00100010 = 2 ^1 + 2^5 = 34

  5. SEI: 00 00 00 01 4E 01 の nuh_unit_type 値は 39
    ○ 4E & 0x7E = (2 進数) 01001110 & 0111110 = 01001110
    ○ 01001110 >> 1 = 00100111
    ○ (10 進数変換) 00100111 = 2 0 +2 1+2 2+ 2 5 = 1+2+4+32 = 39

  6. IDR: 00 00 00 01 26 01 の nuh_unit_type 値は 19 です

  7. 参照画像 (P フレームまたは B フレーム): 00 00 00 01 02 01 の nuh_unit_type 値は 1

アクセスユニット


○ h264 では、アクセス ユニット (Access Unit、AU) の概念が導入され、復号順に配置された複数の NALU として定義され、これらの NALU が復号されて正確に 1 つの画像が生成されます ○ AU は、圧縮されたビデオ ビットの基本単位と見なすことができますストリーム、圧縮 ビデオ ストリームは、連続して配置された複数の AU で構成されます。
ここに画像の説明を挿入

参考

  1. 新世代高効率ビデオコーディング H.265HEVC の原則、標準、実装 [Wan Shuai、Yang Fuzheng 編集] 2014 年版。
  2. T-REC-H.265-202108-I。

おすすめ

転載: blog.csdn.net/yanceyxin/article/details/131944714