IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

<>
  • 特開-レイヤのためのHRDパラメータ 図1
  • 特開-レイヤのためのHRDパラメータ 図2
  • 特開-レイヤのためのHRDパラメータ 図3
  • 特開-レイヤのためのHRDパラメータ 図4
  • 特開-レイヤのためのHRDパラメータ 図5
  • 特開-レイヤのためのHRDパラメータ 図6
  • 特開-レイヤのためのHRDパラメータ 図7
  • 特開-レイヤのためのHRDパラメータ 図8
  • 特開-レイヤのためのHRDパラメータ 図9
  • 特開-レイヤのためのHRDパラメータ 図10
  • 特開-レイヤのためのHRDパラメータ 図11
  • 特開-レイヤのためのHRDパラメータ 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024170432
(43)【公開日】2024-12-10
(54)【発明の名称】レイヤのためのHRDパラメータ
(51)【国際特許分類】
   H04N 19/70 20140101AFI20241203BHJP
   H04N 19/30 20140101ALI20241203BHJP
【FI】
H04N19/70
H04N19/30
【審査請求】有
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024135484
(22)【出願日】2024-08-14
(62)【分割の表示】P 2022518743の分割
【原出願日】2020-09-08
(31)【優先権主張番号】62/905,244
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ワン、イエ-クイ
(57)【要約】      (修正有)
【課題】コード化画像の1つまたは複数のレイヤを含むビットストリームを符号化することを含むビデオコーディング方法及びデコーダによって実施する方法を提供する。
【解決手段】ビデオシーケンスをビットストリームに符号化する方法は、コード化画像の1つまたは複数のレイヤを含むビットストリームを符号化し、複数のレイヤのすべてを、同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けることを指定する仮想参照デコーダ(HRD)パラメータのシンタックス構造をビットストリームに符号化し、CPB配信スケジュールに基づいて複数のレイヤに対してビットストリーム適合性試験のセットを実行し、デコーダに向けて通信するためのビットストリームを記憶する。
【選択図】図10
【特許請求の範囲】
【請求項1】
デコーダによって実施される方法であって、
1つ又は複数の出力レイヤセット(OLS)と、ビデオパラメータセット(VPS)と、仮想参照デコーダ(HRD)パラメータのシンタックス構造と、コード化された画像の複数のレイヤとを有するコード化されたビデオビットストリームを受信する段階であって、前記VPSが第1のシンタックス要素を含み、前記1つ又は複数のOLSの総数が前記第1のシンタックス要素に基づいて取得され、前記HRDパラメータのシンタックス構造が、代替のコード化画像バッファ(CPB)配信スケジュールの数を指定する第2のシンタックス要素を含む、段階と、
前記複数のレイヤのうちの1つから画像を復号して、復号化画像を取得する段階と、
を含む、方法。
【請求項2】
前記CPB配信スケジュールが、エンコーダ上で動作するHRDによって実行されるビットストリーム適合性試験のセットに関連付けられている、請求項1に記載の方法。
【請求項3】
前記複数のレイヤが前記1つ又は複数のOLSに編成され、ターゲットOLSの対応するCPB配信スケジュールが、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲のスケジュールインデックス(ScIdx)によって参照される、請求項1又は2に記載の方法。
【請求項4】
前記CPB配信スケジュールのそれぞれが、ネットワーク抽象化レイヤ(NAL)初期CPB除去遅延(nal_initial_cpb_removal_delay)およびNAL初期CPB除去オフセット(nal_initial_cpb_removal_offset)によって記述される、請求項1から3のいずれか一項に記載の方法。
【請求項5】
各レイヤが、前記各レイヤのnal_initial_cpb_removal_delayとnal_initial_cpb_removal_offsetとのペアの数を指定するバッファリング期間(BP)CPBカウント-1(bp_cpb_cnt_minus1)+1に関連付けられ、bp_cpb_cnt_minus1がhrd_cpb_cnt_minus1の値に等しい、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記HRDパラメータが、前記VPS内に含まれる、請求項1から5のいずれか一項に記載の方法。
【請求項7】
エンコーダによって実施される方法であって、
コード化画像の複数のレイヤを含むビデオビットストリームを符号化する段階と、
1つ又は複数の出力レイヤセット(OLS)と、ビデオパラメータセット(VPS)と、仮想参照デコーダ(HRD)パラメータのシンタックス構造とを前記ビデオビットストリーム内に符号化する段階であって、前記VPSが第1のシンタックス要素を含み、前記1つ又は複数のOLSの総数が前記第1のシンタックス要素に基づいて取得され、前記HRDパラメータのシンタックス構造が、代替のコード化画像バッファ(CPB)配信スケジュールの数を指定する第2のシンタックス要素を含む、段階と、
を含む、方法。
【請求項8】
ビットストリーム適合性試験のセットが、前記CPB配信スケジュールに基づいて前記複数のレイヤに対して実行され、前記ビットストリーム適合性試験のセットが、前記エンコーダのプロセッサ上で動作するHRDによって実行される、請求項7に記載の方法。
【請求項9】
前記複数のレイヤが前記1つ又は複数のOLSに編成され、ターゲットOLSの対応するCPB配信スケジュールが、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲のスケジュールインデックス(ScIdx)によって参照される、請求項7又は8に記載の方法。
【請求項10】
前記CPB配信スケジュールのそれぞれが、ネットワーク抽象化レイヤ(NAL)初期CPB除去遅延(nal_initial_cpb_removal_delay)およびNAL初期CPB除去オフセット(nal_initial_cpb_removal_offset)によって記述される、請求項7から9のいずれか一項に記載の方法。
【請求項11】
各レイヤが、前記各レイヤのnal_initial_cpb_removal_delayとnal_initial_cpb_removal_offsetとのペアの数を指定するバッファリング期間(BP)CPBカウント-1(bp_cpb_cnt_minus1)+1に関連付けられ、bp_cpb_cnt_minus1がhrd_cpb_cnt_minus1の値に等しい、請求項7から10のいずれか一項に記載の方法。
【請求項12】
前記HRDパラメータのシンタックス構造が、前記VPSに符号化される、請求項7から11のいずれか一項に記載の方法。
【請求項13】
プロセッサと、前記プロセッサに結合された受信機と、前記プロセッサに結合されたメモリと、前記プロセッサに結合された送信機とを備え、前記プロセッサ、前記受信機、前記メモリ、および前記送信機が、請求項1から6のいずれか一項に記載の方法を実行するように構成されている、
デコーダ。
【請求項14】
プロセッサと、前記プロセッサに結合された受信機と、前記プロセッサに結合されたメモリと、前記プロセッサに結合された送信機とを備え、前記プロセッサ、前記受信機、前記メモリ、および前記送信機が、請求項7から12のいずれか一項に記載の方法を実行するように構成されている、
エンコーダ。
【請求項15】
プロセッサに、請求項1から12のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【請求項16】
デコーダであって、
1つ又は複数の出力レイヤセット(OLS)と、前記OLSを指定するビデオパラメータセット(VPS)と、仮想参照デコーダ(HRD)パラメータのシンタックス構造と、コード化された画像の複数のレイヤとを有するコード化されたビデオビットストリームを受信するための受信手段であって、前記VPSが第1のシンタックス要素を含み、前記1つ又は複数のOLSの総数が前記第1のシンタックス要素に基づいて取得され、前記HRDパラメータのシンタックス構造が、代替のコード化画像バッファ(CPB)配信スケジュールの数を指定する第2のシンタックス要素を含む、受信手段と、
前記複数のレイヤのうちの1つから画像を復号して、復号化画像を取得するための復号手段と、
前記復号化画像を復号されたビデオシーケンスの一部として表示するために転送するための転送手段と、
を備える、デコーダ。
【請求項17】
前記デコーダが、請求項1から6のいずれか一項に記載の方法を実行するようにさらに構成されている、請求項16に記載のデコーダ。
【請求項18】
エンコーダであって、
コード化画像の複数のレイヤを有するビデオビットストリームを符号化し、
1つ又は複数の出力レイヤセット(OLS)と、前記OLSを指定するビデオパラメータセット(VPS)と、仮想参照デコーダ(HRD)パラメータのシンタックス構造とを前記ビデオビットストリーム内に符号化する、
ための符号化手段であって、前記VPSが第1のシンタックス要素を含み、前記1つ又は複数のOLSの総数が前記第1のシンタックス要素に基づいて取得され、前記HRDパラメータのシンタックス構造が、代替のコード化画像バッファ(CPB)配信スケジュールの数を指定する第2のシンタックス要素を含む、符号化手段と、
デコーダに向けて通信するための前記ビデオビットストリームを記憶するための記憶手段と、
を備える、エンコーダ。
【請求項19】
前記エンコーダが、請求項7から12のいずれか一項に記載の方法を実行するようにさらに構成されている、請求項18に記載のエンコーダ。
【請求項20】
コンピュータデバイスによって実行された場合に、請求項1から6のいずれか一項に記載の方法または請求項7から12のいずれか一項に記載の方法を前記コンピュータデバイスに実行させるプログラムコードを記憶する、非一過性コンピュータ可読記憶媒体。
【請求項21】
トランシーバユニットと、プロセッサと、メモリと、
を備え、
前記トランシーバユニットは、ネットワークを介してビデオビットストリームを通信するように構成され、前記メモリは、前記ビデオビットストリームを記憶するように構成され、前記ビデオビットストリームが、1つ又は複数の出力レイヤセット(OLS)と、ビデオパラメータセット(VPS)と、仮想参照デコーダ(HRD)パラメータのシンタックス構造と、コード化された画像の複数のレイヤとを有し、前記VPSが、第1のシンタックス要素を含み、前記1つ又は複数のOLSの総数が、前記第1のシンタックス要素に基づいて取得され、前記HRDパラメータのシンタックス構造が、代替のコード化画像バッファ(CPB)配信スケジュールの数を指定する第2のシンタックス要素を含み、前記プロセッサが、前記ビデオビットストリームを解析して、前記1つ又は複数のOLS、前記VPS、前記HRDパラメータのシンタックス構造、及びコード化された画像の前記複数のレイヤを取得し、前記1つ又は複数のOLS、前記VPS、及び前記HRDパラメータのシンタックス構造に基づいて、前記複数のレイヤのうちの1つから画像を復号して復号化画像を取得する、装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、Ye-Kui Wangによって2019年9月24日に出願された「Hypothetical Reference Decoder(HRD)for Multi-Layer Video Bitstreams」と題する米国仮特許出願第62/905,244号の利益を主張するものであり、参照により本明細書に組み込まれる。
【0002】
本開示は、一般にビデオコーディングに関し、詳細には、マルチレイヤビットストリームの効率的な符号化および/または適合性試験をサポートするための仮想参照デコーダ(HRD)パラメータ変更に関する。
【背景技術】
【0003】
比較的短いビデオであってもその描写に必要なビデオデータの量は膨大なものとなる可能性があり、このため、帯域幅容量が限られた通信ネットワークを介してデータをストリーミングまたはその他の方法で通信する際に困難が伴う場合がある。したがって、ビデオデータは、現代の電気通信ネットワークを介して通信される前に圧縮されるのが一般的である。また、ビデオをストレージ装置に保存する場合、メモリのリソースが限られている場合があるため、ビデオのサイズが問題となることもある。ビデオ圧縮装置は、しばしば、送信または保存の前にソースにおいてソフトウェアおよび/またはハードウェアを使用して、ビデオデータをコード化し、それによって、デジタルビデオイメージを表すために必要なデータの量を減少させる。その後、圧縮されたデータは、配信先において、ビデオデータを復号するビデオ伸張装置によって受信される。ネットワークリソースが限られ、ビデオの高品質化が増々求められている中で、画質をほとんどまたは全く犠牲にすることなく圧縮率を向上させる、改善された圧縮および伸長技術が望まれている。
【発明の概要】
【0004】
一実施形態では、本開示は、デコーダによって実施される方法を含み、本方法は、デコーダの受信機によって、仮想参照デコーダ(HRD)パラメータのシンタックス構造と、コード化された画像の1つまたは複数のレイヤとを含むビットストリームを、複数のレイヤのすべてがHRDパラメータのシンタックス構造によって指定されるのと同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けられるように受信する段階と、デコーダのプロセッサによって、レイヤのうちの1つから画像を復号して、復号化画像を取得する段階と、を含む。
【0005】
ビデオコーディングシステムは、ビットストリームがデコーダによって復号可能であることを保証するために様々な適合性試験を採用する。例えば、適合性チェックは、適合性についてビットストリーム全体をテストすることと、次いで適合性についてビットストリームの各レイヤをテストすることと、最後に適合性について潜在的な復号可能出力をチェックすることと、を含むことができる。適合性チェックを実施するために、対応するパラメータがビットストリームに含まれている。HRDは、パラメータを読み取り、テストを実行することができる。ビデオは、多くのレイヤおよび多くの異なる出力レイヤセット(OLS)を含むことができる。リクエストに応じて、エンコーダは、選択されたOLSの1つまたは複数のレイヤを送信する。例えば、エンコーダは、現在のネットワーク帯域幅によってサポート可能なOLSから最良のレイヤを送信することができる。ビデオコーディングシステムがビットストリームに対して適合性チェックを行う際、問題が発生することがある。ビデオは、複数のレイヤおよび/またはサブレイヤにコード化されてもよく、次いでそれらをOLSに編成することができる。各OLSの各レイヤおよび/またはサブレイヤは、配信スケジュールに従って適合性についてチェックされる。各配信スケジュールは、異なる伝送帯域幅およびシステム能力を考慮するために、異なるCPBサイズおよびCPB遅延に関連付けられる。一部のビデオコーディングシステムは、各サブレイヤが任意の数の配信スケジュールを定義することを可能にする。これにより、適合性チェックをサポートするための大量のシグナリングが生じる可能性があり、その結果、ビットストリームのコーディング効率が低下することになる。開示された実施例は、複数のレイヤを含むビデオのためのコーディング効率を向上させるためのメカニズムを含む。具体的には、すべてのレイヤおよび/またはサブレイヤは、同じ数のCPB配信スケジュールを含むように制約される。例えば、エンコーダは、任意の1つのレイヤにも使用されるCPB配信スケジュールの最大数を決定し、すべてのレイヤに対するCPB配信スケジュールの数をこの最大数に設定することができる。次いで、配信スケジュールの数は、例えば、VPSにおけるHRDパラメータの一部として、1回シグナリングされてもよい。これにより、レイヤ/サブレイヤごとにいくつかのスケジュールをシグナリングする必要がなくなる。いくつかの例では、OLSのすべてのレイヤ/サブレイヤは、同じ配信スケジュールインデックスを共有することもできる。これらの変更により、適合性チェックに関連するデータをシグナリングするために使用されるデータの量が削減される。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0006】
任意選択で、前述の態様のいずれかにおいて、CPB配信スケジュールが、エンコーダ上で動作するHRDによって実行されるビットストリーム適合性試験のセットに関連付けられる、態様の別の実施態様が提供される。
【0007】
任意選択で、前述の態様のいずれかにおいて、CPB配信スケジュールの数が、HRD CPBカウント-1(hrd_cpb_cnt_minus1)で指定され、hrd_cpb_cnt_minus1が、両端値を含めて、0~31の範囲にある、態様の別の実施態様が提供される。
【0008】
任意選択で、前述の態様のいずれかにおいて、複数のレイヤが1つまたは複数の出力レイヤセット(OLS)に編成され、ターゲットOLSの対応するCPB配信スケジュールが、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲のスケジュールインデックス(ScIdx)によって参照される、態様の別の実施態様が提供される。
【0009】
任意選択で、前述の態様のいずれかにおいて、CPB配信スケジュールのそれぞれが、ネットワーク抽象化レイヤ(NAL)初期CPB除去遅延(nal_initial_cpb_removal_delay)およびNAL初期CPB除去オフセット(nal_initial_cpb_removal_offset)によって記述される、態様の別の実施態様が提供される。
【0010】
任意選択で、前述の態様のいずれかにおいて、各レイヤが、各レイヤのnal_initial_cpb_removal_delayとnal_initial_cpb_removal_offsetとのペアの数を指定するバッファリング期間(BP)CPBカウント-1(bp_cpb_cnt_minus1)+1に関連付けられ、bp_cpb_cnt_minus1が、hrd_cpb_cnt_minus1の値に等しい、態様の別の実施態様が提供される。
【0011】
任意選択で、前述の態様のいずれかにおいて、HRDパラメータのシンタックス構造が、OLSを指定するビデオパラメータセット(VPS)内のビットストリームに含まれる、態様の別の実施態様が提供される。
【0012】
一実施形態では、本開示は、エンコーダによって実施される方法を含み、本方法は、エンコーダのプロセッサによって、コード化画像の1つまたは複数のレイヤを含むビットストリームを符号化する段階と、プロセッサによって、複数のレイヤのすべてが同じ数のCPB配信スケジュールに関連付けられることを指定するHRDパラメータのシンタックス構造をビットストリームに符号化する段階と、プロセッサによって、CPB配信スケジュールに基づいて複数のレイヤに対してビットストリーム適合性試験のセットを実行する段階と、を含む。
【0013】
ビデオコーディングシステムは、ビットストリームがデコーダによって復号可能であることを保証するために様々な適合性試験を採用する。例えば、適合性チェックは、適合性についてビットストリーム全体をテストすることと、次いで適合性についてビットストリームの各レイヤをテストすることと、最後に適合性について潜在的な復号可能出力をチェックすることと、を含むことができる。適合性チェックを実施するために、対応するパラメータがビットストリームに含まれている。HRDは、パラメータを読み取り、テストを実行することができる。ビデオは、多くのレイヤおよび多くの異なるOLSを含むことができる。リクエストに応じて、エンコーダは、選択されたOLSの1つまたは複数のレイヤを送信する。例えば、エンコーダは、現在のネットワーク帯域幅によってサポート可能なOLSから最良のレイヤを送信することができる。ビデオコーディングシステムがビットストリームに対して適合性チェックを行う際、問題が発生することがある。ビデオは、複数のレイヤおよび/またはサブレイヤにコード化されてもよく、次いでそれらをOLSに編成することができる。各OLSの各レイヤおよび/またはサブレイヤは、配信スケジュールに従って適合性についてチェックされる。各配信スケジュールは、異なる伝送帯域幅およびシステム能力を考慮するために、異なるCPBサイズおよびCPB遅延に関連付けられる。一部のビデオコーディングシステムは、各サブレイヤが任意の数の配信スケジュールを定義することを可能にする。これにより、適合性チェックをサポートするための大量のシグナリングが生じる可能性があり、その結果、ビットストリームのコーディング効率が低下することになる。開示された実施例は、複数のレイヤを含むビデオのためのコーディング効率を向上させるためのメカニズムを含む。具体的には、すべてのレイヤおよび/またはサブレイヤは、同じ数のCPB配信スケジュールを含むように制約される。例えば、エンコーダは、任意の1つのレイヤにも使用されるCPB配信スケジュールの最大数を決定し、すべてのレイヤに対するCPB配信スケジュールの数をこの最大数に設定することができる。次いで、配信スケジュールの数は、例えば、VPSにおけるHRDパラメータの一部として、1回シグナリングされてもよい。これにより、レイヤ/サブレイヤごとにいくつかのスケジュールをシグナリングする必要がなくなる。いくつかの例では、OLSのすべてのレイヤ/サブレイヤは、同じ配信スケジュールインデックスを共有することもできる。これらの変更により、適合性チェックに関連するデータをシグナリングするために使用されるデータの量が削減される。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0014】
任意選択で、前述の態様のいずれかにおいて、ビットストリーム適合性試験のセットが、プロセッサ上で動作するHRDによって実行される、態様の別の実施態様が提供される。
【0015】
任意選択で、前述の態様のいずれかにおいて、CPB配信スケジュールの数がhrd_cpb_cnt_minus1で指定され、hrd_cpb_cnt_minus1が両端値を含めて、0~31の範囲にある、態様の別の実施態様が提供される。
【0016】
任意選択で、前述の態様のいずれかにおいて、複数のレイヤが1つまたは複数のOLSに編成され、ターゲットOLSの対応するCPB配信スケジュールが、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲のScIdxによって参照される、態様の別の実施態様が提供される。
【0017】
任意選択で、前述の態様のいずれかにおいて、CPB配信スケジュールのそれぞれがnal_initial_cpb_removal_delayおよびnal_initial_cpb_removal_offsetによって記述される、態様の別の実施態様が提供される。
【0018】
任意選択で、前述の態様のいずれかにおいて、各レイヤが、各レイヤのnal_initial_cpb_removal_delayとnal_initial_cpb_removal_offsetとのペアの数を指定するbp_cpb_cnt_minus1+1に関連付けられ、bp_cpb_cnt_minus1が、hrd_cpb_cnt_minus1の値に等しい、態様の別の実施態様が提供される。
【0019】
任意選択で、前述の態様のいずれかにおいて、HRDパラメータのシンタックス構造が、OLSを指定するVPSにおいてビットストリームに符号化される、態様の別の実施態様が提供される。
【0020】
一実施形態において、本開示は、プロセッサと、プロセッサに結合された受信機と、プロセッサに結合されたメモリと、プロセッサに結合された送信機と、を備えるビデオコーディング装置であって、プロセッサ、受信機、メモリ、および送信機が前述の態様のいずれかの方法を実行するように構成されている、ビデオコーディング装置を含む。
【0021】
一実施形態では、本開示は、ビデオコーディング装置が使用するためのコンピュータプログラム製品を備える非一過性コンピュータ可読媒体を含み、コンピュータプログラム製品は、プロセッサによって実行されると、ビデオコーディング装置に前述の態様のいずれかの方法を実行させるように、非一過性コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を備える。
【0022】
一実施形態では、本開示は、HRDパラメータのシンタックス構造と、コード化された画像の1つまたは複数のレイヤとを含むビットストリームを、複数のレイヤのすべてがHRDパラメータによって指定されるのと同じ数のCPB配信スケジュールに関連付けられるように受信するための受信手段と、レイヤのうちの1つから画像を復号して復号化画像を取得するための復号手段と、復号化画像を復号ビデオシーケンスの一部として表示するために転送するための転送手段と、を備えるデコーダを含む。
【0023】
任意選択で、前述の態様のいずれかにおいて、デコーダが前述の態様のいずれかの方法を実行するようにさらに構成されている、態様の別の実施態様が提供される。
【0024】
一実施形態において、本開示は、コード化された画像の1つまたは複数のレイヤを備えるビットストリームを符号化し、複数のレイヤのすべてが同じ数のCPB配信スケジュールに関連付けられることを指定するHRDパラメータのシンタックス構造をビットストリームに符号化するための符号化手段と、CPB配信スケジュールに基づいて複数のレイヤに対してビットストリーム適合性試験のセットを行うためのHRD手段と、デコーダに向かって通信するためにビットストリームを記憶するための記憶手段と、を備えるエンコーダを含む。
【0025】
任意選択で、前述の態様のいずれかにおいて、エンコーダが前述の態様のいずれかの方法を実行するようにさらに構成されている、態様の別の実施態様が提供される。
【0026】
明確にするために、前述の実施形態のうちのいずれか1つは、本開示の範囲内の新しい実施形態を作成するために、他の前述の実施形態のうちのいずれか1つまたは複数と組み合わせられてもよい。
【0027】
これらおよび他の特徴は、添付の図面および特許請求の範囲と併せて以下の詳細な説明からより明確に理解されるであろう。
【0028】
本開示をより完全に理解するために、ここで、同様の参照番号が同様の部分を表す添付の図面および詳細な説明に関連して得られる以下の簡単な説明を参照されたい。
【図面の簡単な説明】
【0029】
図1】ビデオ信号を符号化する例示的な方法のフローチャートである。
【0030】
図2】ビデオコーディングのための例示的なコーディング・デコーディング(コーデック)システムの概略図である。
【0031】
図3】例示的なビデオエンコーダを示す概略図である。
【0032】
図4】例示的なビデオデコーダを示す概略図である。
【0033】
図5】例示的な仮想参照デコーダ(HRD)を示す概略図である。
【0034】
図6】レイヤ間予測のために構成された例示的なマルチレイヤビデオシーケンスを示す概略図である。
【0035】
図7】時間スケーラビリティのために構成された例示的なマルチレイヤビデオシーケンスを示す概略図である。
【0036】
図8】例示的なビットストリームを示す概略図である。
【0037】
図9】例示的なビデオコーディング装置の概略図である。
【0038】
図10】ビットストリーム内のすべてのレイヤが同じ数のコード化画像バッファ(CPB)配信スケジュールを有する、ビデオシーケンスをビットストリームに符号化する例示的な方法のフローチャートである。
【0039】
図11】ビットストリーム内のすべてのレイヤが同じ数のCPB配信スケジュールを有する、ビットストリームからビデオシーケンスを復号する例示的な方法のフローチャートである。
【0040】
図12】ビットストリーム内のすべてのレイヤが同じ数のコード化画像バッファ(CPB)配信スケジュールを有する、ビットストリームを使用してビデオシーケンスをコーディングするための例示的なシステムの概略図である。
【発明を実施するための形態】
【0041】
1つまたは複数の実施形態の例示的な実施態様が以下に提供されるが、開示されるシステムおよび/または方法は、現在知られているかまたは存在しているかにかかわらず、任意の数の技術を使用して実施され得ることを最初に理解されたい。本開示は、本明細書で図示および説明される例示的な設計および実施態様を含む、以下に示される例示的な実施態様、図面、および技術に決して限定されるべきではなく、添付の特許請求の範囲内で、それらの均等物の全範囲とともに修正され得る。
【0042】
以下の用語は、本明細書において反対の文脈で使用されない限り、以下のように定義される。具体的には、以下の定義は、本開示にさらなる明確性を提供することが意図されている。しかしながら、用語は、異なる文脈において異なるように説明されることがある。したがって、以下の定義は、補足として考えられるべきであり、本明細書においてこのような用語について提供される説明の任意の他の定義を限定すると考えられるべきではない。
【0043】
ビットストリームは、エンコーダとデコーダとの間で伝送するために圧縮されたビデオデータを含むビットのシーケンスである。エンコーダは、ビデオデータをビットストリームに圧縮するために符号化プロセスを採用するように構成された装置である。デコーダは、表示のためにビットストリームからビデオデータを再構成するために復号プロセスを採用するように構成された装置である。画像は、フレームまたはそのフィールドを構築するルマサンプルのアレイおよび/またはクロマサンプルのアレイである。符号化または復号されている画像は、説明を明確にするために現在の画像(current picture)と呼ばれることがある。ネットワーク抽象化レイヤ(NAL)ユニットは、未加工バイトシーケンスペイロード(RBSP)、データのタイプの表示、必要に応じて差し挟まれる(interspersed)エミュレーション防止バイトの形式のデータを含むシンタックス構造である。ビデオコーディングレイヤ(VCL)NALユニットは、画像のコード化スライスなどの、ビデオデータを含むようにコード化されたNALユニットである。非VCL NALユニットは、ビデオデータの復号、適合性チェックの実行、または他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニットである。アクセスユニット(AU)は、指定された分類規則に従って互いに関連付けられ、1つの特定の出力時間に関係するNALユニットのセットである。復号ユニット(DU)は、AUまたはAUのサブセットおよび関連付けられた非VCL NALユニットである。例えば、AUは、VCL NALユニットと、AU内のVCL NALユニットに関連付けられた任意の非VCL NALユニットとを含む。さらに、DUは、AUからのVCL NALユニットのセットまたはそのサブセット、ならびにDU内のVCL NALユニットに関連付けられた任意の非VCL NALユニットを含む。レイヤは、指定された特性(例えば、共通の解像度、フレームレート、イメージサイズなど)を共有するVCL NALユニットと、関連付けられた非VCL NALユニットとのセットである。復号順序は、シンタックス要素が復号プロセスによって処理される順序である。ビデオパラメータセット(VPS)は、ビデオ全体に関連するパラメータを含むデータユニットである。
【0044】
時間スケーラブルビットストリームは、様々な時間解像度/フレームレートを提供する複数のレイヤにおいてコード化されたビットストリームである(例えば、各レイヤは、異なるフレームレートをサポートするようにコード化される)。サブレイヤは、特定の時間識別子値を有するVCL NALユニットと、関連付けられた非VCL NALユニットとを含む時間的にスケーラブルなビットストリームの時間的にスケーラブルなレイヤである。例えば、時間サブレイヤは、指定されたフレームレートに関連付けられたビデオデータを含むレイヤである。サブレイヤ表現は、特定のサブレイヤおよび下位サブレイヤのNALユニットを含むビットストリームのサブセットである。したがって、1つまたは複数の時間サブレイヤを組み合わせて、指定されたフレームレートを有するビデオシーケンスとなるように復号することができるサブレイヤ表現を達成することができる。出力レイヤセット(OLS)は、1つまたは複数のレイヤが出力レイヤとして指定されるレイヤのセットである。出力レイヤは、(例えば、ディスプレイに)出力するために指定されるレイヤである。OLSインデックスは、対応するOLSを一意に識別するインデックスである。ゼロ番目(0番目)のOLSは、最下位レイヤ(最下位レイヤ識別子を有するレイヤ)のみを含み、したがって出力レイヤのみを含むOLSである。時間識別子(ID)は、データがビデオシーケンス内の時間位置に対応することを示すデータ要素である。サブビットストリーム抽出プロセスは、ターゲットOLSインデックスおよびターゲット最高時間IDによって決定されるターゲットセットに属さないNALユニットをビットストリームから除去するプロセスである。サブビットストリーム抽出プロセスにより、ビットストリームからターゲットセットの一部であるNALユニットを含むサブビットストリームが出力される。
【0045】
HRDは、エンコーダ上で動作するデコーダモデルであり、符号化プロセスによって生成されたビットストリームの変動性をチェックして、指定された制約との適合性を検証するものである。ビットストリーム適合性試験は、符号化されたビットストリームがVVC(Versatile Video Coding)などの規格に準拠しているかどうかを判定するためのテストである。HRDパラメータは、HRDの動作条件を初期化および/または定義するシンタックス要素である。HRDパラメータは、HRDパラメータのシンタックス構造に含めることができる。シンタックス構造は、複数の異なるパラメータを含むように構成されたデータオブジェクトである。シンタックス要素は、同じタイプの1つまたは複数のパラメータを含むデータオブジェクトである。したがって、シンタックス構造は、複数のシンタックス要素を含むことができる。シーケンスレベルのHRDパラメータは、コード化ビデオシーケンス全体に適用されるHRDパラメータである。最大HRD時間ID(hrd_max_tid[i])は、HRDパラメータがi番目のOLS HRDパラメータセットに含まれる最も高いサブレイヤ表現の時間IDを指定する。一般HRDパラメータ(general_hrd_parameters)シンタックス構造は、シーケンスレベルのHRDパラメータを含むシンタックス構造である。動作ポイント(OP)は、OLSの時間サブセットであり、OLSインデックスおよび最高時間IDによって識別される。テスト対象OP(targetOp)は、HRDにおいて適合性試験のために選択されるOPである。ターゲットOLSは、ビットストリームから抽出するために選択されるOLSである。復号ユニットHRDパラメータ存在フラグflag(decoding_unit_hrd_params_present_flag)は、対応するHRDパラメータがDUレベルとAUレベルのどちらで動作するかを示すフラグである。コード化画像バッファ(CPB)は、HRD内の先入れ先出しバッファであり、ビットストリーム適合性検証中に使用するためのコード化画像を復号順で含む。復号化画像バッファ(DPB)は、参照、出力並べ替え、および/または出力遅延のために復号化画像を保持するためのバッファである。
【0046】
補足拡張情報(SEI)メッセージは、復号化画像のサンプルの値を決定するために、復号プロセスによって必要とされない情報を伝達する、セマンティクスが指定されたシンタックス構造である。スケーラブルネスティングSEIメッセージは、1つもしくは複数のOLSまたは1つもしくは複数のレイヤに対応する複数のSEIメッセージを含むメッセージである。非スケーラブルネスト化SEIメッセージは、ネスティングされていないメッセージであり、したがって、単一のSEIメッセージを含む。バッファリング期間(BP)SEIメッセージは、CPBを管理するためにHRDを初期化するためのHRDパラメータを含むSEIメッセージである。画像タイミング(PT)SEIメッセージは、CPBおよび/またはDPBにおけるAUの配信情報を管理するためのHRDパラメータを含むSEIメッセージである。復号ユニット情報(DUI)SEIメッセージは、CPBおよび/またはDPBにおけるDUのための配信情報を管理するためのHRDパラメータを含むSEIメッセージである。
【0047】
CPB除去遅延は、対応する現在のAUが除去されてDPBに出力される前にCPBに留まることができる期間である。初期CPB除去遅延は、ビットストリーム、OLS、および/またはレイヤにおける各画像、AU、および/またはDUのデフォルトCPB除去遅延である。CPB除去オフセットは、CPBにおける対応するAUの境界を決定するために使用されるCPB内のロケーションである。初期CPB除去オフセットは、ビットストリーム、OLS、および/またはレイヤにおける各画像、AU、および/またはDUに関連付けられたデフォルトのCPB除去オフセットである。復号化画像バッファ(DPB)出力遅延情報は、対応するAUが出力前にDPBに留まることができる期間である。CPB除去遅延情報は、CPBからの対応するDUの除去に関連する情報である。配信スケジュールは、CPBおよび/またはDPBなどのメモリロケーションへのおよび/またはメモリロケーションからのビデオデータの配信のためのタイミングを指定する。VPSレイヤID(vps_layer_id)は、VPSにおいて示されるi番目のレイヤのレイヤIDを示すシンタックス要素である。出力レイヤセットの数-1(num_output_layer_sets_minus1)は、VPSによって指定されるOLSの総数を指定するシンタックス要素である。HRDコード化画像バッファカウント(hrd_cpb_cnt_minus1)は、代替のCPB配信スケジュールの数を指定するシンタックス要素である。サブレイヤCPBパラメータ存在フラグ(sublayer_cpb_params_present_flag)は、OLS HRDパラメータのセットが、指定されたサブレイヤ表現のためのHRDパラメータを含むかどうかを指定するシンタックス要素である。スケジュールインデックス(ScIdx)は、配信スケジュールを識別するインデックスである。BP CPBカウント-1(bp_cpb_cnt_minus1)は、初期CPB除去遅延とオフセットのペアの数、したがって、時間サブレイヤに利用可能な配信スケジュールの数を指定するシンタックス要素である。NALユニットヘッダレイヤ識別子(nuh_layer_id)は、NALユニットを含むレイヤの識別子を指定するシンタックス要素である。固定画像レート一般フラグ(fixed_pic_rate_general_flag)シンタックス要素は、出力順に連続する画像のHRD出力時間間の時間的距離を制約するかどうかを指定するシンタックス要素である。サブレイヤHRDパラメータ(sublayer_hrd_parameters)シンタックス構造は、対応するサブレイヤのHRDパラメータを含むシンタックス構造である。一般VCL HRDパラメータ存在フラグ(general_vcl_hrd_params_present_flag)は、一般HRDパラメータのシンタックス構造中にVCL HRDパラメータが存在するかどうかを指定するフラグである。BP最大サブレイヤ-1(bp_max_sublayers_minus1)シンタックス要素は、BP SEIメッセージにおいてCPB除去遅延およびCPB除去オフセットが示される時間サブレイヤの最大数を指定するシンタックス要素である。VPS最大サブレイヤ-1(vps_max_sublayers_minus1)シンタックス要素は、VPSによって指定されたレイヤに存在し得る時間サブレイヤの最大数を指定するシンタックス要素である。スケーラブルネスティングOLSフラグは、スケーラブルネスト化SEIメッセージが特定のOLSに適用されるのか、または特定のレイヤに適用されるのかを指定するフラグである。スケーラブルネスティングOLS数-1(num_olss_minus1)は、スケーラブルネスト化SEIメッセージが適用されるOLSの数を指定するシンタックス要素である。ネスティングOLSインデックス(NestingOlsIdx)は、スケーラブルネスト化SEIメッセージが適用されるOLSのOLSインデックスを指定するシンタックス要素である。ターゲットOLSインデックス(targetOlsIdx)は、復号対象のOLSのOLSインデックスを識別する変数である。OLSの総数-1(OLS-1)は、VPSにおいて指定されるOLSの総数を指定するシンタックス要素である。
【0048】
以下の頭字語、アクセスユニット(AU)、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、コード化レイヤビデオシーケンス(CLVS)、コード化レイヤビデオシーケンス開始(CLVSS)、コード化ビデオシーケンス(CVS)、コード化ビデオシーケンス開始(CVSS)、ジョイントビデオエキスパートチーム(JVET)、仮想参照デコーダ(HRD)、動き制約タイルセット(MCTS)、最大転送ユニット(MTU)、ネットワーク抽象化レイヤ(NAL)、出力レイヤセット(OLS)、画像順序カウント(POC)、ランダムアクセスポイント(RAP)、未加工バイトシーケンスペイロード(RBSP)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、汎用ビデオコーディング(VVC)が本明細書で使用される。
【0049】
データの損失を最小限に抑えてビデオファイルのサイズを小さくするために、多くのビデオ圧縮技術を採用することができる。例えば、ビデオ圧縮技術は、ビデオシーケンス中のデータ冗長性を低減または除去するために空間的(例えば、画像内)予測および/または時間的(例えば、画像間)予測を実行することを含むことができる。ブロックベースのビデオコーディングの場合、ビデオスライス(例えば、ビデオ画像またはビデオ画像の一部分)は、ツリーブロック、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードと呼ばれることもあるビデオブロックに分割されることがある。画像のイントラコード化(I)スライス内のビデオブロックは、同じ画像内の隣接ブロックの参照サンプルに対して空間的予測を使用してコード化される。画像のインターコード化単方向予測(P)スライスまたは双方向予測(B)スライス内のビデオブロックは、同じ画像内の隣接ブロックの参照サンプルに対する空間的予測、または他の参照画像の参照サンプルに対する時間的予測を採用することによってコード化されることがある。画像は、フレームおよび/またはイメージと呼ばれることがあり、参照画像は、参照フレームおよび/または参照イメージと呼ばれることがある。空間予測または時間予測により、イメージブロックを表す予測ブロックが得られる。残差データは、元のイメージブロックと予測ブロックとの間のピクセルの差分を表す。したがって、インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されてもよい。その結果、量子化され得る残差変換係数が得られる。量子化された変換係数は、最初に2次元アレイに配列されてもよい。量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されてもよい。さらに多くの圧縮を達成するためにエントロピーコーディングが適用されてもよい。このようなビデオ圧縮技術については、以下でより詳細に説明する。
【0050】
符号化されたビデオが正確に復号され得ることを保証するために、ビデオは、対応するビデオコーディング規格に従って符号化および復号される。ビデオコーディング規格は、国際電気通信連合(ITU)標準化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)Motion Picture Experts Group(MPEG)-1 Part2、ITU-T H.262またはISO/IEC MPEG-2 Part2、ITU-T H.263、ISO/IEC MPEG-4 Part2、ITU-T H.264またはISO/IEC MPEG-4 Part10としても知られるAdvanced Video Coding(AVC)、およびITU-T H.265またはMPEG-H Part2としても知られるHigh Efficiency Video Coding(HEVC)を含む。AVCは、Scalable Video Coding(SVC)、Multiview Video Coding(MVC)およびMultiview Video Coding plus Depth(MVC+D)、ならびに3次元(3D)AVC(3D-AVC)などの拡張を含む。HEVCは、Scalable HEVC(SHVC)、Multiview HEVC(MV-HEVC)、および3D HEVC(3D-HEVC)などの拡張を含む。ITU-TおよびISO/IECのjoint video experts team(JVET)は、Versatile Video Coding(VVC)と呼ばれるビデオ子0-ディング規格の開発を開始した。VVCは、JVET-O2001-v14を含むWorking Draft(WD)に含まれている。
【0051】
ビデオコーディングシステムは、ビットストリームがデコーダによって復号可能であることを保証するために様々な適合性試験を採用する。例えば、適合性チェックは、適合性についてビットストリーム全体をテストすることと、次いで適合性についてビットストリームの各レイヤをテストすることと、最後に適合性について潜在的な復号可能出力をチェックすることと、を含むことができる。適合性チェックを実施するために、対応するパラメータがビットストリームに含まれている。仮想参照デコーダ(HRD)は、パラメータを読み取り、テストを実行することができる。ビデオは、多くのレイヤおよび多くの異なる出力レイヤセット(OLS)を含むことができる。リクエストに応じて、エンコーダは、選択されたOLSの1つまたは複数のレイヤを送信する。例えば、エンコーダは、現在のネットワーク帯域幅によってサポート可能なOLSから最良のレイヤを送信することができる。この手法の第1の問題は、かなりの数のレイヤがテストされるが、実際にはデコーダに送信されないことである。しかしながら、このようなテストをサポートするためのパラメータは、ビットストリームに依然として含まれている場合があり、ビットストリームのサイズを不必要に増加させる。
【0052】
第1の実施例では、各OLSのみにビットストリーム適合性試験を適用するためのメカニズムが本明細書で開示される。このようにして、対応するOLSをテストする際に、ビットストリーム全体、各レイヤ、および復号可能な出力がまとめてテストされる。したがって、適合性試験の数が減り、それによってエンコーダでのプロセッサおよびメモリリソースの使用量が削減される。さらに、適合性試験の数を減らすことで、ビットストリームに含まれる関連付けられたパラメータの数を減らすことができる。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0053】
第2の問題は、いくつかのビデオコーディングシステムにおいてHRD適合性試験に使用されるHRDパラメータのシグナリングプロセスが、マルチレイヤのコンテキストにおいて複雑になる可能性があることである。例えば、HRDパラメータのセットは、各OLSのレイヤごとにシグナリングされ得る。このようなHRDパラメータは、パラメータの意図された範囲に応じて、ビットストリーム内の異なるロケーションにおいてシグナリングされ得る。その結果、より多くのレイヤおよび/またはOLSが追加されるにつれて方式がより複雑になる。さらに、異なるレイヤおよび/またはOLSのHRDパラメータは、冗長な情報を含んでいる場合がある。
【0054】
第2の実施例では、OLSおよび対応するレイヤについてのシーケンスレベルのHRDパラメータのグローバルなセットをシグナリングするためのメカニズムが本明細書で開示される。例えば、すべてのOLSおよびOLSに含まれるすべてのレイヤに適用されるすべてのシーケンスレベルのHRDパラメータは、ビデオパラメータセット(VPS)でシグナリングされる。VPSはビットストリームで1回シグナリングされ、したがって、シーケンスレベルのHRDパラメータは1回シグナリングされる。さらに、シーケンスレベルのHRDパラメータは、すべてのOLSで同一であるように制約されてもよい。このようにして、冗長なシグナリングが低減され、コーディング効率が向上する。また、この手法により、HRDプロセスが簡略化される。その結果、プロセッサ、メモリ、および/またはネットワークのシグナリングリソースの使用量がエンコーダおよびデコーダの両方において削減される。
【0055】
第3の問題は、ビデオコーディングシステムがビットストリームの適合性チェックを行う際に発生することがある。ビデオは、複数のレイヤおよび/またはサブレイヤにコード化されてもよく、次いでそれらをOLSに編成することができる。各OLSの各レイヤおよび/またはサブレイヤは、配信スケジュールに従って適合性についてチェックされる。各配信スケジュールは、異なる送信帯域幅およびシステム能力を考慮するために、異なるコード化画像バッファ(CPB)サイズおよびCPB遅延に関連付けられる。一部のビデオコーディングシステムは、各サブレイヤが任意の数の配信スケジュールを定義することを可能にする。これにより、適合性チェックをサポートするための大量のシグナリングが生じる可能性があり、その結果、ビットストリームのコーディング効率が低下することになる。
【0056】
第3の実施例では、複数のレイヤを含むビデオのコーディング効率を高めるためのメカニズムが本明細書で開示される。具体的には、すべてのレイヤおよび/またはサブレイヤは、同じ数のCPB配信スケジュールを含むように制約される。例えば、エンコーダは、任意の1つのレイヤにも使用されるCPB配信スケジュールの最大数を決定し、すべてのレイヤに対するCPB配信スケジュールの数をこの最大数に設定することができる。次いで、配信スケジュールの数は、例えば、VPSにおけるHRDパラメータの一部として、1回シグナリングされてもよい。これにより、レイヤ/サブレイヤごとにいくつかのスケジュールをシグナリングする必要がなくなる。いくつかの例では、OLSのすべてのレイヤ/サブレイヤは、同じ配信スケジュールインデックスを共有することもできる。これらの変更により、適合性チェックに関連するデータをシグナリングするために使用されるデータの量が削減される。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0057】
第4の問題は、ビデオが複数のレイヤおよび/またはサブレイヤにコード化され、次いでそれらがOLSに編成される際に発生することがある。OLSは、出力レイヤのみを含むゼロ番目(0番目)のOLSを含んでもよい。規格への適合性についてビットストリームの複数のレイヤをテストするために使用されるレイヤ/OLS固有のパラメータをHRDに通知するために、補足拡張情報(SEI)メッセージがビットストリームに含まれることがある。具体的には、OLSがビットストリームに含まれる場合、スケーラブルネスティングSEIメッセージが採用される。スケーラブルネスティングSEIメッセージは、1つもしくは複数のOLSおよび/またはOLSの1つもしくは複数のレイヤに適用されるネスティングされたSEIメッセージのグループを含む。ネスティングされたSEIメッセージはそれぞれ、対応するOLSおよび/またはレイヤとの関連付けを示すためのインジケータを含むことができる。ネスティングされたSEIメッセージは、複数のレイヤで使用するために構成されており、単一のレイヤを含む0番目のOLSに適用すると、無関係な情報が含まれる場合がある。
【0058】
第4の実施例では、0番目のOLSを含むビデオのコーディング効率を高めるためのメカニズムが本明細書で開示される。非スケーラブルネスト化SEIメッセージは、0番目のOLSに採用される。非スケーラブルネスト化SEIメッセージは、0番目のOLSのみに、したがって0番目のOLSに含まれる出力レイヤのみに適用されるように制約される。このようにして、ネスティング関係、レイヤ指示などの無関係な情報をSEIメッセージから省くことができる。非スケーラブルネスト化SEIメッセージは、バッファリング期間(BP)SEIメッセージ、画像タイミング(PT)SEIメッセージ、復号ユニット(DU)SEIメッセージ、またはそれらの組合せとして使用されてもよい。これらの変更により、0番目のOLSに適合性チェック関連情報をシグナリングするために使用されるデータの量が削減される。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0059】
第5の問題は、ビデオが複数のレイヤおよび/またはサブレイヤに分離される際に発生することもある。エンコーダは、これらのレイヤをビットストリームに符号化することができる。さらに、エンコーダは、規格との適合性についてビットストリームをチェックするために適合性試験を実行するHRDを用いることができる。エンコーダは、このような適合性試験をサポートするために、レイヤ固有のHRDパラメータをビットストリームに含めるように構成されることがある。レイヤ固有のHRDパラメータは、いくつかのビデオコーディングシステムではレイヤごとに符号化されることがある。場合によっては、レイヤ固有HRDパラメータは、レイヤごとに同じであり、その結果、ビデオ符号化のサイズを不必要に増加させる冗長な情報が生じる。
【0060】
第5の実施例では、複数のレイヤを採用するビデオについて、HRDパラメータ冗長性を低減するためのメカニズムが本明細書で開示される。エンコーダは、最上位レイヤのHRDパラメータを符号化することができる。エンコーダは、サブレイヤCPBパラメータ存在フラグ(sublayer_cpb_params_present_flag)を符号化することもできる。sublayer_cpb_params_present_flagを0に設定すると、すべての下位レイヤが最上位レイヤと同じHRDパラメータを使用すべきであることを示すことができる。本文脈では、最上位レイヤは、最大のレイヤ識別子(ID)を有し、下位レイヤは、最上位レイヤのレイヤIDよりも小さいレイヤIDを有する任意のレイヤである。このようにして、下位レイヤのHRDパラメータをビットストリームから省くことができる。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0061】
第6の問題は、ビデオ中の各ビデオシーケンスに関連するシンタックス要素を含むシーケンスパラメータセット(SPS)の使用量に関する。ビデオコーディングシステムは、レイヤおよび/またはサブレイヤでビデオをコード化することができる。ビデオシーケンスは、異なるレイヤおよび/またはサブレイヤにおいて動作が異なる場合がある。したがって、異なるレイヤは、異なるSPSを参照することがある。BP SEIメッセージは、規格への適合性がチェックされるレイヤ/サブレイヤを示すことができる。ビデオコーディングシステムによっては、BP SEIメッセージがSPSで示されたレイヤ/サブレイヤに適用されることを示すことがある。これは、異なるレイヤが異なるSPSを参照した場合、このようなSPSが矛盾する情報を含む可能性があるため、予期しないエラーが発生するという問題を引き起こすことがある。
【0062】
第6の実施例では、ビデオシーケンスに複数のレイヤを採用した場合の適合性チェックに関係するエラーに対処するためのメカニズムが本明細書で開示される。具体的には、BP SEIメッセージは、VPSに記述される任意の数のレイヤ/サブレイヤの適合性をチェックすることができることを示すように修正される。例えば、BP SEIメッセージは、BP SEIメッセージ内のデータに関連付けられたレイヤ/サブレイヤの数を示す、BP最大サブレイヤ-1(bp_max_sublayers_minus1)シンタックス要素を含むことができる。一方、VPSにおけるVPS最大サブレイヤ-1(vps_max_sublayers_minus1)シンタックス要素は、ビデオ全体におけるサブレイヤの数を示す。bp_max_sublayers_minus1シンタックス要素は、0からvps_max_sublayers_minus1シンタックス要素の値までの任意の値に設定することができる。このようにして、SPSの不整合(inconstancy)に関連するレイヤベースのシーケンス問題を回避しながら、ビデオ内の任意の数のレイヤ/サブレイヤの適合性をチェックすることができる。したがって、本開示は、レイヤベースのコーディングエラーを回避し、したがって、エンコーダおよび/またはデコーダの機能性を向上させる。さらに、本実施例は、コーディング効率を向上させることができるレイヤベースのコーディングをサポートする。したがって、本実施例は、エンコーダおよび/またはデコーダにおけるプロセッサ、メモリ、および/またはネットワークリソース使用量の削減をサポートする。
【0063】
第7の問題は、OLSに含まれるレイヤに関する。各OLSは、デコーダで表示されるように構成された少なくとも1つの出力レイヤを含む。エンコーダのHRDは、規格との適合性について各OLSをチェックすることができる。適合するOLSは、適合するデコーダで常に復号し表示することができる。HRDプロセスは、SEIメッセージによって部分的に管理されることがある。例えば、スケーラブルなネスティングSEIメッセージは、スケーラブルなネスティングされたSEIメッセージを含むことができる。各スケーラブルなネスティングされたSEIメッセージは、対応するレイヤに関連するデータを含むことができる。適合性チェックを行う際、HRDは、ターゲットOLSに対してビットストリーム抽出プロセスを行うことができる。OLS内のレイヤに関連しないデータは、一般に、各OLSを別々にチェックすることができるよう、適合性試験の前に(例えば、送信前に)除去される。ビデオコーディングシステムによっては、スケーラブルなネスティングSEIメッセージが複数のレイヤに関係するため、サブビットストリーム抽出プロセス中にそのようなメッセージを除去しないものがある。このため、スケーラブルなネスティングSEIメッセージがターゲットOLS(抽出されているOLS)のいずれのレイヤにも関連しない場合でさえ、スケーラブルネスティングSEIメッセージがサブビットストリーム抽出後にビットストリームに残ってしまうことがある。これにより、追加の機能性をなんら提供することなく、最終ビットストリームのサイズが大きくなる可能性がある。
【0064】
第7の実施例では、マルチレイヤビットストリームのサイズを低減するためのメカニズムが本明細書で開示される。サブビットストリーム抽出中に、スケーラブルなネスティングSEIメッセージは、ビットストリームから除去するために考慮され得る。スケーラブルネスティングSEIメッセージが1つまたは複数のOLSに関連する場合、スケーラブルネスティングSEIメッセージ中のスケーラブルなネスティングされたSEIメッセージがチェックされる。スケーラブルなネスティングされたSEIメッセージがターゲットOLSのいずれのレイヤにも関連しない場合、スケーラブルなネスティングSEIメッセージ全体をビットストリームから除去することができる。この結果、デコーダに送られるビットストリームのサイズが小さくなる。したがって、本実施例は、コーディング効率を高め、エンコーダおよびデコーダの両方におけるプロセッサ、メモリ、および/またはネットワークリソースの使用量を削減する。
【0065】
図1は、ビデオ信号をコーディングする例示的な動作方法100のフローチャートである。具体的には、ビデオ信号は、エンコーダで符号化される。符号化プロセスは、ビデオファイルサイズを小さくするために様々なメカニズムを採用することによってビデオ信号を圧縮する。ファイルサイズを小さくすることで、関連付けられた帯域幅オーバーヘッドを削減しながら、圧縮されたビデオファイルをユーザに向けて送信することができる。デコーダは、圧縮されたビデオファイルを復号して、エンドユーザに表示するための元のビデオ信号を再構成する。復号化プロセスは一般に、デコーダがビデオ信号を首尾一貫して再構成することができるように符号化プロセスをミラーリングする。
【0066】
ステップ101において、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号は、メモリに記憶された非圧縮のビデオファイルであってもよい。別の例として、ビデオファイルは、ビデオカメラなどのビデオキャプチャデバイスによってキャプチャされ、ビデオのライブストリーミングをサポートするために符号化されることがある。ビデオファイルは、オーディオ成分とビデオ成分の両方を含むことができる。ビデオ成分は、一連のイメージフレームを含み、これは、連続して見ると、視覚的に動きのある印象を与える。フレームは、本明細書ではルマ成分(またはルマサンプル)と呼ばれる光、およびクロマ成分(または色サンプル)と呼ばれる色に関して表されるピクセルを含む。いくつかの例では、フレームは、3次元ビューをサポートするための深度値を含むこともできる。
【0067】
ステップ103において、ビデオはブロックに分割される。分割は、各フレーム内のピクセルを圧縮のために正方形および/または長方形のブロックに再分割することを含む。例えば、高効率ビデオコーディング(HEVC)(H.265およびMPEG-H Part2としても知られている)では、フレームは最初に、あらかじめ定義されたサイズ(例えば、64ピクセル×64ピクセル)のブロックであるコーディングツリーユニット(CTU)に分割することが可能である。CTUは、ルマサンプルとクロマサンプルの両方を含む。コーディングツリーを採用して、CTUをブロックに分割し、次いで、さらなる符号化をサポートする構成が達成されるまで、ブロックを再帰的に再分割することができる。例えば、フレームのルマ成分は、個々のブロックが比較的均質な輝度値(lighting value)を含むまで再分割されてもよい。さらに、フレームのクロマ成分は、個々のブロックが比較的均一な色値を含むまで再分割されてもよい。したがって、分割メカニズムは、ビデオフレームのコンテンツに応じて変化する。
【0068】
ステップ105では、ステップ103で分割されたイメージブロックを圧縮するために様々な圧縮メカニズムが採用される。例えば、インター予測および/またはイントラ予測を採用することができる。インター予測は、オブジェクトが共通のシーン内で連続したフレーム中に現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内のオブジェクトを示すブロックを隣接フレームに繰り返し記述する必要がなくなる。具体的には、テーブルなどのオブジェクトは、複数のフレームにわたって一定の位置に留まる可能性がある。したがって、テーブルは一度記述され、隣接するフレームは参照フレームを参照することができる。パターンマッチングメカニズムを用いて、複数のフレームにわたってオブジェクトをマッチングすることができる。さらに、移動しているオブジェクトは、例えばオブジェクトの移動またはカメラの移動に起因して、複数のフレームにわたって表現されることがある。特定の例として、ビデオは、複数のフレームにわたってスクリーンを横切って移動する自動車を示すことがある。動きベクトルを用いて、このような動きを記述することができる。動きベクトルは、フレーム内のオブジェクトの座標から、参照フレーム内のオブジェクトの座標へのオフセットを提供する2次元ベクトルである。したがって、インター予測は、現在のフレーム内のイメージブロックを、参照フレーム内の対応するブロックからのオフセットを示す動きベクトルのセットとして符号化することができる。
【0069】
イントラ予測は、ブロックを共通フレーム内で符号化する。イントラ予測は、ルマ成分およびクロマ成分がフレーム内でクラスタ化する傾向があるという事実を利用する。例えば、木の一部の緑のパッチは、同じような緑のパッチに隣接して配置される傾向がある。イントラ予測は、複数の方向予測モード(例えば、HEVCでは33)と、平面モードと、直流(DC)モードとを採用する。方向モードは、現在のブロックが対応する方向の隣接ブロックのサンプルと類似している/同一であることを示す。平面モードは、行/列(例えば、平面)に沿った一連のブロックが、行のエッジにある隣接ブロックに基づいて補間され得ることを示す。平面モードは、値を変化させる際に比較的一定の傾きを用いることによって、行/列にわたって光/色の滑らかな遷移を事実上示す。DCモードは、境界平滑化のために採用され、方向予測モードの角度方向に関連付けられたすべての隣接ブロックのサンプルに関連付けられた平均値とブロックが類似している/同一であることを示す。したがって、イントラ予測ブロックは、実際の値ではなく、様々な関係予測モード(relational prediction mode)値としてイメージブロックを表現することができる。さらに、インター予測ブロックは、実際の値ではなく、動きベクトル値としてイメージブロックを表現することができる。いずれの場合も、予測ブロックは、場合によっては、イメージブロックを正確に表さないことがある。任意の差分は、残差ブロックに記憶される。残差ブロックに変換を適用して、ファイルをさらに圧縮することができる。
【0070】
ステップ107において、様々なフィルタリング技術を適用することができる。HEVCでは、ループ内フィルタリング方式に従ってフィルタが適用される。上記で説明したブロックベースの予測では、デコーダにおいてブロック状のイメージが生成されることがある。さらに、ブロックベースの予測方式は、ブロックを符号化した後、符号化されたブロックを参照ブロックとして後で使用するために再構成されることがある。ループ内フィルタリング方式は、ノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ、およびサンプル適応オフセット(SAO)フィルタをブロック/フレームに繰り返し適用する。これらのフィルタにより、このようなブロッキングアーチファクトが軽減され、その結果、符号化されたファイルを正確に再構成することができるようになる。さらに、これらのフィルタにより、再構成された参照ブロックのアーチファクトが軽減され、その結果、アーチファクトが、再構成された参照ブロックに基づいて符号化される後続のブロックに追加のアーチファクトを生成する可能性が低くなる。
【0071】
ビデオ信号が分割され、圧縮され、フィルタリングされると、ステップ109において、得られたデータがビットストリームに符号化される。ビットストリームには、上述したデータ、ならびにデコーダにおいて適切なビデオ信号再構成をサポートするために所望される任意のシグナリングデータが含まれる。例えば、このようなデータには、分割データ、予測データ、残差ブロック、および、デコーダにコーディング命令を与える様々なフラグが含まれてもよい。ビットストリームは、リクエストに応じてデコーダに向けて送信するためにメモリに記憶されてもよい。また、ビットストリームは、複数のデコーダに向けてブロードキャストおよび/またはマルチキャストされてもよい。ビットストリームの作成は、反復プロセスである。したがって、ステップ101、103、105、107、および109は、多くのフレームおよびブロックにわたって連続的におよび/または同時に行われることがある。図1に示す順序は、議論を明確にし、容易にするために提示されており、ビデオコーディングプロセスを特定の順序に限定することは意図されていない。
【0072】
デコーダは、ビットストリームを受信し、ステップ111において復号プロセスを開始する。具体的には、デコーダは、エントロピー復号方式を採用して、ビットストリームを対応するシンタックスおよびビデオデータに変換する。デコーダは、ステップ111において、ビットストリームからのシンタックスデータを用いて、フレームの分割を決定する。この分割は、ステップ103におけるブロック分割の結果と一致すべきである。次に、ステップ111で採用されるエントロピー符号化/復号化について説明する。エンコーダは、入力イメージにおける値の空間的配置に基づいて、いくつかの可能な選択肢からブロック分割方式を選択するなど、圧縮プロセス中に多くの選択を行う。正確な選択をシグナリングすることは、多数のビンを用いる可能性がある。本明細書で使用される場合、ビンは、変数として扱われるバイナリ値(例えば、文脈に応じて変化する可能性があるビット値)である。エントロピーコーディングにより、エンコーダは、特定のケースについて明らかに実行不可能ないかなるオプションも破棄し、許容されるオプションのセットを残すことができる。その後、許容される各オプションには、コードワードが割り当てられる。コードワードの長さは、許容されるオプションの数に基づく(例えば、2つのオプションに対して1つのビン、3~4つのオプションに対して2つのビンなど)。次いで、エンコーダは、選択されたオプションのコードワードを符号化する。この方式は、可能なすべてのオプションの潜在的に大きなセットからの選択を一意に示すのではなく、許容されるオプションの小さなサブセットからの選択を一意に示すためにコードワードが所望の大きさであるため、コードワードのサイズを低減する。次いで、デコーダは、エンコーダと同様に、許容されるオプションのセットを決定することによってこの選択を復号する。デコーダは、許容されるオプションのセットを決定することによって、コードワードを読み取り、エンコーダによって行われた選択を決定することができる。
【0073】
ステップ113において、デコーダは、ブロック復号を行う。具体的には、デコーダは、逆変換を用いて、残差ブロックを生成する。次いで、デコーダは、残差ブロックおよび対応する予測ブロックを用いて、分割に従ってイメージブロックを再構成する。予測ブロックは、ステップ105においてエンコーダで生成されたイントラ予測ブロックとインター予測ブロックの両方を含むことができる。次いで、ステップ111で決定された分割データに従って、再構成されたイメージブロックを再構成されたビデオ信号のフレームに配置する。ステップ113のシンタックスはまた、上記で説明したように、エントロピーコーディングを介してビットストリームでシグナリングされてもよい。
【0074】
ステップ115において、エンコーダにおけるステップ107と同様のやり方で、再構成されたビデオ信号のフレームに対してフィルタリングが行われる。例えば、ノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ、およびSAOフィルタをフレームに適用して、ブロッキングアーチファクトを除去することができる。フレームがフィルタリングされると、ビデオ信号は、ステップ117においてエンドユーザが視聴するためのディスプレイに出力され得る。
【0075】
図2は、ビデオコーディングのための例示的なコーディング・デコーディング(コーデック)システム200の概略図である。具体的には、コーデックシステム200は、動作方法100の実施をサポートする機能を提供する。コーデックシステム200は、エンコーダおよびデコーダの両方で用いられるコンポーネントを示すように一般化されている。コーデックシステム200は、動作方法100のステップ101および103に関して説明したように、ビデオ信号を受信して分割し、その結果、分割されたビデオ信号201が得られる。次いで、コーデックシステム200は、方法100のステップ105、107、および109に関して説明したように、エンコーダとして動作する場合、分割されたビデオ信号201をコード化ビットストリームに圧縮する。デコーダとして動作する場合、コーデックシステム200は、動作方法100のステップ111、113、115、および117に関して説明したように、ビットストリームから出力ビデオ信号を生成する。コーデックシステム200は、一般コーダ制御コンポーネント211と、変換スケーリングおよび量子化コンポーネント213と、イントラ画像推定コンポーネント215と、イントラ画像予測コンポーネント217と、動き補償コンポーネント219と、動き推定コンポーネント221と、スケーリングおよび逆変換コンポーネント229と、フィルタ制御分析コンポーネント227と、ループ内フィルタコンポーネント225と、復号化画像バッファコンポーネント223と、ヘッダフォーマッティングおよびコンテキスト適応型バイナリ算術コーディング(CABAC)コンポーネント231と、を含む。このようなコンポーネントは、図示するように結合されている。図2において、黒線は符号化/復号化されるデータの移動を示し、破線は他のコンポーネントの動作を制御する制御データの移動を示す。コーデックシステム200のコンポーネントはすべて、エンコーダ内に存在してもよい。デコーダは、コーデックシステム200のコンポーネントのサブセットを含むことができる。例えば、デコーダは、イントラ画像予測コンポーネント217と、動き補償コンポーネント219と、スケーリングおよび逆変換コンポーネント229と、ループ内フィルタコンポーネント225と、復号化画像バッファコンポーネント223と、を含むことができる。ここで、これらのコンポーネントについて説明する。
【0076】
分割されたビデオ信号201は、コーディングツリーによってピクセルのブロックに分割されたキャプチャされたビデオシーケンスである。コーディングツリーは、様々な分割モードを用いて、ピクセルのブロックをより小さいピクセルのブロックに再分割する。次いで、これらのブロックをより小さなブロックにさらに再分割することができる。ブロックは、コーディングツリー上のノードと呼ばれことがある。より大きな親ノードは、より小さな子ノードに分割される。ノードが再分割される回数は、ノード/コーディングツリーの深さと呼ばれる。分割されたブロックは、場合によってはコーディングユニット(CU)に含まれることもある。例えば、CUは、CUのための対応するシンタックス命令とともに、ルマブロック、赤色差クロマ(Cr)ブロック、および青色差クロマ(Cb)ブロックを含むCTUの下位部分とすることができる。分割モードは、ノードを、用いられる分割モードに応じて様々な形状の2つ、3つ、または4つの子ノードにそれぞれ分割するために採用される二分木(BT)、三分木(TT)、および四分木(QT)を含むことができる。分割されたビデオ信号201は、圧縮のために、一般コーダ制御コンポーネント211、変換スケーリングおよび量子化コンポーネント213、イントラ画像推定コンポーネント215、フィルタ制御分析コンポーネント227、および動き推定コンポーネント221に転送される。
【0077】
一般コーダ制御コンポーネント211は、アプリケーション制約に従ってビデオシーケンスのイメージをビットストリームにコーディングすることに関連する決定を行うように構成される。例えば、一般コーダ制御コンポーネント211は、再構成品質に対するビットレート/ビットストリームサイズの最適化を管理する。このような決定は、記憶空間/帯域幅利用可能性およびイメージ解像度リクエストに基づいて行うことができる。一般コーダ制御コンポーネント211はまた、伝送速度を考慮してバッファ利用率を管理し、バッファのアンダーランおよびオーバーランの問題を軽減する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによる分割、予測、およびフィルタリングを管理する。例えば、一般コーダ制御コンポーネント211は、解像度を向上させ、帯域幅使用量を増加させるために圧縮の複雑さを動的に増加させるか、または解像度および帯域幅使用量を減らすために圧縮の複雑さを減少させることができる。したがって、一般コーダ制御コンポーネント211は、コーデックシステム200の他のコンポーネントを制御して、ビデオ信号再構成品質とビットレートの関係とのバランスをとる。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを作成する。制御データはまた、ヘッダフォーマッティングおよびCABACコンポーネント231に転送され、ビットストリームに符号化されて、デコーダで復号するためのパラメータをシグナリングする。
【0078】
分割されたビデオ信号201はまた、インター予測のために動き推定コンポーネント221および動き補償コンポーネント219に送られる。分割されたビデオ信号201のフレームまたはスライスは、複数のビデオブロックに分割されてもよい。動き推定コンポーネント221および動き補償コンポーネント219は、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対して受信ビデオブロックの相対的なインター予測コーディングを行い、時間予測を提供する。コーデックシステム200は、例えば、ビデオデータの各ブロックについて適切なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
【0079】
動き推定コンポーネント221および動き補償コンポーネント219は、高度に統合されてもよいが、概念的な目的のために別々に示されている。動き推定コンポーネント221によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、予測ブロックに対するコード化オブジェクトの相対的な変位を示すことができる。予測ブロックは、ピクセル差の観点から、コーディングされるブロックと密接に一致することが見出されるブロックである。予測ブロックは、参照ブロックと呼ばれることもある。このようなピクセル差分は、差分絶対値和(SAD)、差分二乗和(SSD)、または他の差分メトリックによって決定されてもよい。HEVCは、CTUと、コーディングツリーブロック(CTB)と、CUとを含むいくつかのコード化オブジェクトを採用する。例えば、CTUをCTBに分割し、次いで、CTBを、CUに含めるためにCBに分割することができる。CUは、予測データを含む予測ユニット(PU)および/またはCUに対して変換された残差データを含む変換ユニット(TU)として符号化され得る。動き推定コンポーネント221は、レートひずみ最適化プロセスの一部としてレートひずみ分析を使用することによって、動きベクトル、PU、およびTUを生成する。例えば、動き推定コンポーネント221は、現在のブロック/フレームに対して複数の参照ブロック、複数の動きベクトルなどを決定することができ、最良のレートひずみ特性を有する参照ブロック、動きベクトルなどを選択することができる。最良のレートひずみ特性は、ビデオ再構成の品質(例えば、圧縮によるデータ損失の量)とコーディング効率(例えば、最終的な符号化のサイズ)との両方のバランスをとる。
【0080】
いくつかの例では、コーデックシステム200は、復号化画像バッファコンポーネント223に記憶された参照画像のサブ整数ピクセル位置についての値を計算することができる。例えば、ビデオコーデックシステム200は、参照画像の1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定コンポーネント221は、フルピクセル位置と分数ピクセル位置との相対的な動き探索を行い、分数ピクセル精度で動きベクトルを出力することができる。動き推定コンポーネント221は、PUの位置を予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックの参照画像のPUの動きベクトルを計算する。動き推定コンポーネント221は、計算された動きベクトルを動きデータとして、符号化のためにヘッダフォーマッティングおよびCABACコンポーネント231に出力し、動きを動き補償コンポーネント219に出力する。
【0081】
動き補償コンポーネント219によって実行される動き補償は、動き推定コンポーネント221によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含むことができる。この場合も、動き推定コンポーネント221および動き補償コンポーネント219は、いくつかの例では機能的に統合されてもよい。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルが指し示す予測ブロックの位置を特定することができる。次いで、コード化されている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックが形成される。一般に、動き推定コンポーネント221は、ルマ成分に対する動き推定を行い、動き補償コンポーネント219は、クロマ成分とルマ成分の両方に対して、ルマ成分に基づいて計算された動きベクトルを使用する。予測ブロックおよび残差ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。
【0082】
分割されたビデオ信号201は、イントラ画像推定コンポーネント215およびイントラ画像予測コンポーネント217にも送られる。動き推定コンポーネント221および動き補償コンポーネント219と同様に、イントラ画像推定コンポーネント215およびイントラ画像予測コンポーネント217は、高度に統合されてもよいが、概念的な目的のために別々に示されている。イントラ画像推定コンポーネント215およびイントラ画像予測コンポーネント217は、上記で説明したように、フレーム間で動き推定コンポーネント221および動き補償コンポーネント219によって実行されるインター予測の代替として、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。特に、イントラ画像推定コンポーネント215は、現在のブロックを符号化するために使用するイントラ予測モードを決定する。いくつかの例では、イントラ画像推定コンポーネント215は、複数のテストされたイントラ予測モードから現在のブロックを符号化するために適切なイントラ予測モードを選択する。次いで、選択されたイントラ予測モードは、符号化のためにヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【0083】
例えば、イントラ画像推定コンポーネント215は、様々なテストされたイントラ予測モードについてレートひずみ分析を用いてレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択する。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(またはエラー)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(例えば、ビット数)を決定する。イントラ画像推定コンポーネント215は、様々な符号化ブロックのひずみおよびレートから比を計算し、どのイントラ予測モードがブロックに対して最良のレートひずみ値を示すかを決定する。加えて、イントラ画像推定コンポーネント215は、レートひずみ最適化(RDO)に基づく深度モデリングモード(DMM)を使用して深度マップの深度ブロックをコード化するように構成されてもよい。
【0084】
イントラ画像予測コンポーネント217は、エンコーダ上で実施される場合、イントラ画像推定コンポーネント215によって決定された選択されたイントラ予測モードに基づいて予測ブロックから残差ブロックを生成することができ、またはデコーダ上で実施される場合、ビットストリームから残差ブロックを読み取ることができる。残差ブロックは、予測ブロックと元のブロックとの間の値の差を含み、行列として表される。次いで、残差ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。イントラ画像推定コンポーネント215およびイントラ画像予測コンポーネント217は、ルマ成分とクロマ成分の両方に対して動作することができる。
【0085】
変換スケーリングおよび量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成される。変換スケーリングおよび量子化コンポーネント213は、離散コサイン変換(DCT)、離散サイン変換(DST)、または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換を使用することもできる。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換することができる。変換スケーリングおよび量子化コンポーネント213はまた、例えば周波数に基づいて、変換された残差情報をスケーリングするように構成される。このようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように残差情報にスケールファクタを適用することを含み、これにより、再構成されたビデオの最終的な視覚品質が影響を受ける可能性がある。変換スケーリングおよび量子化コンポーネント213はまた、ビットレートをさらに低減するために変換係数を量子化するように構成される。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を減少させることができる。量子化の程度は、量子化パラメータを調整することによって修正することができる。いくつかの例では、変換スケーリングおよび量子化コンポーネント213は、次いで、量子化された変換係数を含む行列の走査を実行することができる。量子化された変換係数は、ヘッダフォーマッティングおよびCABACコンポーネント231に転送されて、ビットストリームに符号化される。
【0086】
スケーリングおよび逆変換コンポーネント229は、変換スケーリングおよび量子化コンポーネント213の逆操作を適用して、動き推定をサポートする。スケーリングおよび逆変換コンポーネント229は、例えば、別の現在のブロックのための予測ブロックになり得る参照ブロックとして後で使用するために、逆スケーリング、変換、および/または量子化を適用して、ピクセル領域において残差ブロックを再構成する。動き推定コンポーネント221および/または動き補償コンポーネント219は、後のブロック/フレームの動き推定に使用するために、残差ブロックを対応する予測ブロックに追加することによって、参照ブロックを計算することができる。再構成された参照ブロックにフィルタを適用して、スケーリング、量子化、および変換中に生成されるアーチファクトを軽減する。このようなアーチファクトは、普通ならば、後続のブロックを予測する際に不正確な予測を引き起こす(および追加のアーチファクトを生成する)ことがある。
【0087】
フィルタ制御分析コンポーネント227およびループ内フィルタコンポーネント225は、残差ブロックおよび/または再構成されたイメージブロックにフィルタを適用する。例えば、スケーリングおよび逆変換コンポーネント229からの変換された残差ブロックは、イントラ画像予測コンポーネント217および/または動き補償コンポーネント219からの対応する予測ブロックと組み合わされて、元のイメージブロックを再構成することができる。次いで、再構成されたイメージブロックにフィルタを適用することができる。いくつかの例では、代わりに残差ブロックにフィルタを適用することができる。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227およびループ内フィルタコンポーネント225は、高度に統合され、一緒に実装されてもよいが、概念的な目的のために別々に示されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、このようなフィルタがどのように適用されるかを調整するための複数のパラメータを含む。フィルタ制御分析コンポーネント227は、再構成された参照ブロックを分析して、このようなフィルタが適用される箇所を決定し、対応するパラメータを設定する。このようなデータは、符号化のためのフィルタ制御データとしてヘッダフォーマッティングおよびCABACコンポーネント231に転送される。ループ内フィルタコンポーネント225は、フィルタ制御データに基づいてこのようなフィルタを適用する。フィルタには、デブロッキングフィルタ、ノイズ抑制フィルタ、SAOフィルタ、および適応ループフィルタが含まれてもよい。このようなフィルタは、実施例に応じて、空間/ピクセル領域で(例えば、再構成されたピクセルブロックに)、または周波数領域で適用されてもよい。
【0088】
エンコーダとして動作する場合、フィルタリングされた再構成されたイメージブロック、残差ブロック、および/または予測ブロックは、上記で説明した動き推定に後で使用するために復号化画像バッファコンポーネント223に記憶される。デコーダとして動作する場合、復号化画像バッファコンポーネント223は、再構成されフィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに転送する。復号化画像バッファコンポーネント223は、予測ブロック、残差ブロック、および/または再構成されたイメージブロックを記憶することが可能な任意のメモリデバイスであってもよい。
【0089】
ヘッダフォーマッティングおよびCABACコンポーネント231は、コーデックシステム200の様々なコンポーネントからデータを受信し、デコーダに向けて送信するために、このようなデータをコード化ビットストリームに符号化する。具体的には、ヘッダフォーマッティングおよびCABACコンポーネント231は、一般制御データおよびフィルタ制御データなどの制御データを符号化するために様々なヘッダを生成する。さらに、イントラ予測および動きデータを含む予測データ、ならびに量子化された変換係数データの形態の残差データもすべて、ビットストリームに符号化される。最終的なビットストリームは、元の分割されたビデオ信号201を再構成するためにデコーダによって所望されるすべての情報を含む。このような情報には、イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、様々なブロックのための符号化コンテキストの定義、最確イントラ予測モードの指示、分割情報の指示などが含まれることもある。このようなデータは、エントロピーコーディングを用いることによって符号化することができる。例えば、情報は、コンテキスト適応型可変長コーディング(CAVLC)、CABAC、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔分割エントロピー(PIPE)符号化、または別のエントロピー符号化技術を採用することによって符号化することができる。エントロピーコーディングに続いて、コード化されたビットストリームは、別の装置(例えば、ビデオデコーダ)に送信されるか、または後で送信もしくは検索するためにアーカイブされてもよい。
【0090】
図3は、例示的なビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200の符号化機能を実施するために、ならびに/あるいは動作方法100のステップ101、103、105、107、および/または109を実施するために採用することができる。エンコーダ300は、入力ビデオ信号を分割し、分割されたビデオ信号201と実質的に同様の分割されたビデオ信号301をもたらす。次いで、分割されたビデオ信号301は、エンコーダ300のコンポーネントによって圧縮され、ビットストリームに符号化される。
【0091】
具体的には、分割されたビデオ信号301は、イントラ予測のためにイントラ画像予測コンポーネント317に転送される。イントラ画像予測コンポーネント317は、イントラ画像推定コンポーネント215およびイントラ画像予測コンポーネント217と実質的に同様であってもよい。分割されたビデオ信号301はまた、復号化画像バッファコンポーネント323内の参照ブロックに基づいてインター予測のために動き補償コンポーネント321に転送される。動き補償コンポーネント321は、動き推定コンポーネント221および動き補償コンポーネント219と実質的に同様であってもよい。イントラ画像予測コンポーネント317および動き補償コンポーネント321からの予測ブロックおよび残差ブロックは、残差ブロックの変換および量子化のために、変換および量子化コンポーネント313に転送される。変換および量子化コンポーネント313は、変換スケーリングおよび量子化コンポーネント213と実質的に同様であってもよい。変換され量子化された残差ブロックおよび対応する予測ブロックは(関連付けられた制御データとともに)、ビットストリームにコーディングするためにエントロピーコーディングコンポーネント331に転送される。エントロピーコーディングコンポーネント331は、ヘッダフォーマッティングおよびCABACコンポーネント231と実質的に同様であってもよい。
【0092】
変換され量子化された残差ブロックおよび/または対応する予測ブロックはまた、動き補償コンポーネント321が使用するための参照ブロックに再構成するために、変換および量子化コンポーネント313から逆変換および量子化コンポーネント329に転送される。逆変換および量子化コンポーネント329は、スケーリングおよび逆変換コンポーネント229と実質的に同様であってもよい。実施例に応じて、ループ内フィルタコンポーネント325のループ内フィルタも、残差ブロックおよび/または再構成された参照ブロックに適用される。ループ内フィルタコンポーネント325は、フィルタ制御分析コンポーネント227およびループ内フィルタコンポーネント225と実質的に同様であってもよい。ループ内フィルタコンポーネント325は、ループ内フィルタコンポーネント225に関して説明したような複数のフィルタを含むことができる。次いで、フィルタリングされたブロックは、動き補償コンポーネント321によって参照ブロックとして使用するために、復号化画像バッファコンポーネント323に記憶される。復号化画像バッファコンポーネント323は、復号化画像バッファコンポーネント223と実質的に同様であってもよい。
【0093】
図4は、例示的なビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200の復号機能を実施するために、ならびに/あるいは動作方法100のステップ111、113、115、および/もしくは117を実施するために採用することができる。デコーダ400は、例えばエンコーダ300からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づいて再構成された出力ビデオ信号を生成する。
【0094】
ビットストリームは、エントロピー復号化コンポーネント433によって受信される。エントロピー復号化コンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、または他のエントロピーコーディング技術などのエントロピー復号方式を実装するように構成される。例えば、エントロピー復号化コンポーネント433は、ビットストリーム中のコードワードとして符号化された追加のデータを解釈するためのコンテキストを提供するために、ヘッダ情報を採用することができる。復号された情報には、一般制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ、および残差ブロックからの量子化された変換係数などの、ビデオ信号を復号するための任意の所望の情報が含まれる。量子化された変換係数は、残差ブロックに再構成するために、逆変換および量子化コンポーネント429に転送される。逆変換および量子化コンポーネント429は、逆変換および量子化コンポーネント329と同様であってもよい。
【0095】
再構成された残差ブロックおよび/または予測ブロックは、イントラ予測動作に基づいてイメージブロックに再構成するために、イントラ画像予測コンポーネント417に転送される。イントラ画像予測コンポーネント417は、イントラ画像推定コンポーネント215およびイントラ画像予測コンポーネント217と同様であってもよい。具体的には、イントラ画像予測コンポーネント417は、予測モードを用いてフレーム内の参照ブロックの位置を特定し、その結果に残差ブロックを適用してイントラ予測イメージブロックを再構成する。再構成されたイントラ予測イメージブロックおよび/または残差ブロックならびに対応するインター予測データは、ループ内フィルタコンポーネント425を介して復号化画像バッファコンポーネント423に転送され、これらは、それぞれ、復号化画像バッファコンポーネント223およびループ内フィルタコンポーネント225と実質的に同様であってもよい。ループ内フィルタコンポーネント425は、再構成されたイメージブロック、残差ブロック、および/または予測ブロックをフィルタリングし、このような情報は、復号化画像バッファコンポーネント423に記憶される。復号化画像バッファコンポーネント423からの再構成されたイメージブロックは、インター予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は、動き推定コンポーネント221および/または動き補償コンポーネント219と実質的に同様であってもよい。具体的には、動き補償コンポーネント421は、参照ブロックからの動きベクトルを用いて予測ブロックを生成し、その結果に残差ブロックを適用してイメージブロックを再構成する。結果として得られる再構成されたブロックはまた、ループ内フィルタコンポーネント425を介して復号化画像バッファコンポーネント423に転送されてもよい。復号化画像バッファコンポーネント423は、分割情報を介してフレームに再構成することができる追加の再構成されたイメージブロックを記憶し続ける。このようなフレームは、シーケンスに配置することもできる。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【0096】
図5は、例示的なHRD500を示す概略図である。HRD500は、コーデックシステム200および/またはエンコーダ300などのエンコーダで採用することができる。HRD500は、ビットストリームがデコーダ400などのデコーダに転送される前に、方法100のステップ109で作成されたビットストリームをチェックすることができる。いくつかの例では、ビットストリームは、ビットストリームが符号化されるときに、HRD500を通して連続的に転送されてもよい。ビットストリームの一部が、関連付けられた制約に適合しない場合、HRD500は、そのような失敗をエンコーダに示して、エンコーダが異なるメカニズムでビットストリームの対応するセクションを再符号化するようにさせることができる。
【0097】
HRD500は、仮想ストリームスケジューラ(HSS)541を含む。HSS541は、仮想配信メカニズムを実行するように構成されたコンポーネントである。仮想配信メカニズムは、HRD500に入力されるビットストリーム551のタイミングおよびデータフローに関して、ビットストリームまたはデコーダの適合性をチェックするために使用される。例えば、HSS541は、エンコーダから出力されたビットストリーム551を受信し、ビットストリーム551に対する適合性試験プロセスを管理することができる。特定の例では、HSS541は、コード化画像がHRD500を通って移動するレートを制御し、ビットストリーム551が不適合のデータを含まないことを検証することができる。
【0098】
HSS541は、ビットストリーム551を所定のレートでCPB543に転送することができる。HRD500は、復号ユニット(DU)553でデータを管理することができる。DU553は、AUまたはAUのサブセット、および関連付けられた非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットである。具体的には、AUは、出力時間に関連付けられた1つまたは複数の画像を含む。例えば、AUは、単一レイヤビットストリームに単一の画像を含むことができ、マルチレイヤビットストリームに各レイヤの画像を含むことができる。AUの各画像は、対応するVCL NALユニットにそれぞれ含まれるスライスに分割することができる。したがって、DU553は、1つまたは複数の画像、画像の1つまたは複数のスライス、またはそれらの組合せを含むことができる。また、AU、画像、および/またはスライスを復号するために使用されるパラメータは、非VCL NALユニットに含めることができる。したがって、DU553には、DU553中のVCL NALユニットの復号をサポートするために必要なデータを含む非VCL NALユニットが含まれる。CPB543は、HRD500における先入れ先出しバッファである。CPB543は、ビデオデータを含むDU553を復号順に含む。CPB543は、ビットストリーム適合性検証中に使用するためのビデオデータを記憶する。
【0099】
CPB543は、DU553を復号化プロセスコンポーネント545に転送する。復号化プロセスコンポーネント545は、VVC規格に適合したコンポーネントである。例えば、復号化プロセスコンポーネント545は、エンドユーザが用いるデコーダ400をエミュレートすることができる。復号化プロセスコンポーネント545は、例示的なエンドユーザデコーダによって達成可能なレートでDU553を復号する。復号化プロセスコンポーネント545が、CPB543のオーバーフローを防止するのに十分な速さでDU553を復号することができない場合、ビットストリーム551は規格に適合しておらず、再符号化する必要がある。
【0100】
復号化プロセスコンポーネント545は、DU553を復号し、復号されたDU555を生成する。復号されたDU555は、復号化画像を含む。復号されたDU555は、DPB547に転送される。DPB547は、復号化画像バッファコンポーネント223、323、および/または423と実質的に同様であってもよい。インター予測をサポートするために、復号されたDU555から得られる参照画像556として使用するためにマークされた画像は、さらなる復号をサポートするために復号化プロセスコンポーネント545に戻される。DPB547は、復号されたビデオシーケンスを一連の画像557として出力する。画像557は、エンコーダによってビットストリーム551に符号化された画像を全体的にミラーリングした再構成された画像である。
【0101】
画像557は、出力クロッピングコンポーネント549に転送される。出力クロッピングコンポーネント549は、適合クロッピングウィンドウを画像557に適用するように構成される。これにより、クロップされた出力画像559が得られる。クロップされた出力画像559は、完全に再構成された画像である。したがって、クロップされた出力画像559は、ビットストリーム551を復号する際にエンドユーザが見ると思われるものを模倣する。このように、エンコーダは、クロップされた出力画像559をレビューして、符号化が満足できるものであることを保証することができる。
【0102】
HRD500は、ビットストリーム551内のHRDパラメータに基づいて初期化される。例えば、HRD500は、VPS、SPS、および/またはSEIメッセージからHRDパラメータを読み取ることができる。次いで、HRD500は、このようなHRDパラメータの情報に基づいてビットストリーム551に対して適合性試験動作を行うことができる。具体例として、HRD500は、HRDパラメータから1つまたは複数のCPB配信スケジュール561を決定することができる。配信スケジュールは、CPBおよび/またはDPBなどのメモリロケーションへのおよび/またはメモリロケーションからのビデオデータの配信のためのタイミングを指定する。したがって、CPB配信スケジュール561は、CPB543への/からのAU、DU553、および/または画像の配信タイミングを指定する。例えば、CPB配信スケジュール561は、CPB543のビットレートおよびバッファサイズを記述することができ、このようなビットレートおよびバッファサイズは、特定のクラスのデコーダおよび/またはネットワーク条件に対応する。したがって、CPB配信スケジュール561は、退避前にCPB543にどれだけ長くデータが留まることができるかを示すことができる。適合性試験中にHRD500においてCPB配信スケジュール561を維持できないということは、CPB配信スケジュール561に対応するデコーダが対応するビットストリームを復号することができないことを示すものである。HRD500は、CPB配信スケジュール561と同様のDPB配信スケジュールをDPB547に用いることができることに留意されたい。
【0103】
ビデオは、様々なレベルのハードウェア能力を有するデコーダによって使用するために、ならびに様々なネットワーク条件のために、異なるレイヤおよび/またはOLSにコード化されることがある。CPB配信スケジュール561は、これらの課題を反映するように選択される。したがって、上位レイヤのサブビットストリームは、最適なハードウェアおよびネットワーク条件に対して指定され、したがって、上位レイヤは、CPB543内の大量のメモリと、DPB547に向けたDU553の転送のための短い遅延とを用いる1つまたは複数のCPB配信スケジュール561を受信することができる。同様に、下位レイヤのサブビットストリームは、制限されたデコーダハードウェア能力および/または劣悪なネットワーク条件に対して指定される。したがって、下位レイヤは、CPB543内の少量のメモリと、DPB547に向けたDU553の転送のためのより長い遅延とを用いる1つまたは複数のCPB配信スケジュール561を受信することができる。次いで、OLS、レイヤ、サブレイヤ、またはそれらの組合せは、対応する配信スケジュール561に従ってテストされて、結果として得られたサブビットストリームがサブビットストリームに対して期待される条件下で正しく復号できることを保証することができる。CPB配信スケジュール561はそれぞれ、スケジュールインデックス(ScIdx)563と関連付けられている。ScIdx563は、配信スケジュールを識別するインデックスである。したがって、ビットストリーム551内のHRDパラメータは、CPB配信スケジュール561をScIdx563によって示すことができるだけでなく、HRD500がCPB配信スケジュール561を決定し、CPB配信スケジュール561を対応するOLS、レイヤ、および/またはサブレイヤに相関させることを可能にするのに十分なデータを含むことができる。
【0104】
図6は、レイヤ間予測621のために構成された例示的なマルチレイヤビデオシーケンス600を示す概略図である。マルチレイヤビデオシーケンス600は、例えば方法100に従って、コーデックシステム200および/またはエンコーダ300などのエンコーダによって符号化され、コーデックシステム200および/またはデコーダ400などのデコーダによって復号されてもよい。さらに、マルチレイヤビデオシーケンス600は、HRD500などのHRDによって規格適合性をチェックすることができる。マルチレイヤビデオシーケンス600は、コード化ビデオシーケンスにおけるレイヤの例示的なアプリケーションを示すために含まれている。マルチレイヤビデオシーケンス600は、レイヤN631およびレイヤN+1 632などの複数のレイヤを用いる任意のビデオシーケンスである。
【0105】
一例では、マルチレイヤビデオシーケンス600は、レイヤ間予測621を採用することができる。レイヤ間予測621は、異なるレイヤの画像611、612、613、および614と画像615、616、617、および618との間で適用される。図示する例では、画像611、612、613、および614は、レイヤN+1 632の一部であり、画像615、616、617、および618は、レイヤN631の一部である。レイヤN631および/またはレイヤN+1 632などのレイヤは、同様のサイズ、品質、解像度、信号対雑音比、能力など、同様の特性値にすべてが関連付けられた画像のグループである。レイヤは、VCL NALユニットおよび関連付けられた非VCL NALユニットのセットとして形式的に定義することができる。VCL NALユニットは、画像のコード化スライスなど、ビデオデータを含むようにコード化されたNALユニットである。非VCL NALユニットは、ビデオデータの復号、適合性チェックの実行、または他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニットである。
【0106】
図示する例では、レイヤN+1 632はレイヤN631よりも大きいイメージサイズに関連付けられている。したがって、本例では、レイヤN+1 632の画像611、612、613、および614は、レイヤN631の画像615、616、617、および618よりも大きな画像サイズ(例えば、より大きい高さおよび幅、したがってより多くのサンプル)を有する。しかしながら、このような画像は、他の特性によってレイヤN+1 632とレイヤN631との間で分離することができる。2つのレイヤ、レイヤN+1 632およびレイヤN631のみが示されているが、画像のセットは、関連付けられた特性に基づいて任意の数のレイヤに分離することができる。レイヤN+1 632およびレイヤN631は、レイヤIDによって表記されることもある。レイヤIDは、画像に関連付けられ、その画像が、指定されたレイヤの一部であることを表記するデータの項目である。したがって、各画像611~618は、対応するレイヤIDに関連付けられて、どちらのレイヤN+1 632またはレイヤN631が対応する画像を含むかを示すことができる。例えば、レイヤIDは、NALユニットを含む(例えば、レイヤ内の画像のスライスおよび/またはパラメータを含む)レイヤの識別子を指定するシンタックス要素であるNALユニットヘッダレイヤ識別子(nuh_layer_id)を含むことができる。レイヤN631などの、より低い品質/ビットストリームサイズに関連付けられたレイヤは、一般に、より低いレイヤIDが割り当てられ、下位レイヤと呼ばれる。さらに、レイヤN+1 632などの、より高い品質/ビットストリームサイズに関連付けられたレイヤは、一般に、より高いレイヤIDが割り当てられ、上位レイヤと呼ばれる。
【0107】
異なるレイヤ631~632の画像611~618は、択一的に表示されるように構成される。したがって、異なるレイヤ631~632の画像は、これらの画像が同じAUに含まれる限り、時間ID622を共有することができる。時間ID622は、データがビデオシーケンス内の時間位置に対応することを示すデータ要素である。AUは、指定された分類規則に従って互いに関連付けられ、1つの特定の出力時間に関連するNALユニットのセットである。例えば、AUは、画像611および画像615など、そのような画像が同じ時間ID622に関連付けられる場合、異なるレイヤに1つまたは複数の画像を含むことができる。具体例として、デコーダは、より小さい画像が所望される場合、現在の表示時間に画像615を復号および表示することができ、またはデコーダは、より大きい画像が所望される場合、現在の表示時間に画像611を復号および表示することができる。したがって、上位レイヤN+1 632の画像611~614は、(画像サイズの違いにもかかわらず)下位レイヤN631の対応する画像615~618と実質的に同じイメージデータを含む。具体的には、画像611は、画像615と実質的に同じイメージデータを含み、画像612は、画像616と実質的に同じイメージデータを含み、以下同様である。
【0108】
画像611~618は、同じレイヤN631またはN+1 632の他の画像611~618を参照することによってコード化することができる。同じレイヤの別の画像を参照して画像をコーディングすることは、結果としてインター予測623となる。インター予測623は、実線の矢印によって描かれている。例えば、画像613は、レイヤN+1 632の画像611、612、および/または614のうちの1つまたは2つを参照として用いるインター予測623を採用することによってコード化されてもよく、1つの画像は、単方向インター予測のために参照され、および/または2つの画像は、双方向インター予測のために参照される。さらに、画像617は、レイヤN531の画像615、616、および/または618のうちの1つまたは2つを参照として用いるインター予測623を採用することによってコード化されてもよく、1つの画像は、単方向インター予測のために参照され、および/または2つの画像は、双方向インター予測のために参照される。インター予測623を実行する際に、画像を同じレイヤの別の画像の参照として用いる場合、その画像は、参照画像と呼ばれることがある。例えば、画像612は、インター予測623に従って画像613をコード化するために使用される参照画像であってもよい。インター予測623は、マルチレイヤコンテキストにおいてイントラレイヤ予測と呼ばれることもある。したがって、インター予測623は、現在の画像とは異なる参照画像中の指示されたサンプルを参照することによって、現在の画像のサンプルをコーディングするメカニズムであり、参照画像と現在の画像とが同じレイヤにある。
【0109】
画像611~618は、異なるレイヤの他の画像611~618を参照することによってコード化することもできる。このプロセスは、レイヤ間予測621として知られており、破線の矢印によって描かれている。レイヤ間予測621は、参照画像中の指示されたサンプルを参照することによって現在の画像のサンプルをコーディングするメカニズムであり、現在の画像と参照画像とが異なるレイヤにあり、したがって異なるレイヤIDを有する。例えば、下位レイヤN631の画像は、上位レイヤN+1 632における対応する画像をコード化するための参照画像として使用することができる。具体例として、画像611は、レイヤ間予測621に従って画像615を参照することによってコード化することができる。このような場合、画像615は、レイヤ間参照画像として使用される。レイヤ間参照画像は、レイヤ間予測621に使用される参照画像である。ほとんどの場合、レイヤ間予測621は、画像611などの現在の画像が、同じAUに含まれる、画像615などの下位レイヤにあるレイヤ間参照画像のみを使用できるように制約される。複数のレイヤ(例えば、3つ以上)が利用可能な場合、レイヤ間予測621は、現在の画像よりも低いレベルの複数のレイヤ間参照画像に基づいて現在の画像を符号化/復号することができる。
【0110】
ビデオエンコーダは、マルチレイヤビデオシーケンス600を用いて、インター予測623とレイヤ間予測621の多くの異なる組合せおよび/または順列を介して画像611~618を符号化することができる。例えば、画像615は、イントラ予測に従ってコード化されてもよい。次いで、画像616~618は、画像615を参照画像として使用することによって、インター予測623に従ってコード化することができる。さらに、画像611は、画像615をレイヤ間参照画像として使用することによって、レイヤ間予測621に従ってコード化されてもよい。次いで、画像612~614は、画像611を参照画像として使用することによって、インター予測623に従ってコード化することができる。したがって、参照画像は、異なるコーディングメカニズムに対して、単一レイヤ参照画像とレイヤ間参照画像の両方の役割を果たすことができる。下位レイヤN631の画像に基づいて上位レイヤN+1 632の画像をコーディングすることによって、上位レイヤN+1 632は、インター予測623およびレイヤ間予測621よりもコーディング効率がはるかに低いイントラ予測を採用することを回避することができる。したがって、イントラ予測の低いコーディング効率は、最小/最低品質の画像に限定することができ、したがって、最小量のビデオデータのコーディングに限定することができる。参照画像および/またはレイヤ間参照画像として使用される画像は、参照画像リスト構造に含まれる参照画像リストのエントリに示すことができる。
【0111】
このような動作を行うために、レイヤN631およびレイヤN+1 632などのレイヤが、1つまたは複数のOLS625および626に含まれることがある。具体的には、画像611~618は、ビットストリーム600のレイヤ631~632として符号化され、次いで、画像の各レイヤ631~632がOLS625および626のうちの1つまたは複数に割り当てられる。次いで、OLS625および/または626を選択することができ、デコーダにおける能力および/またはネットワーク条件に応じて、対応するレイヤ631および/または632をデコーダに送信することができる。OLS625は、1つまたは複数のレイヤが出力レイヤとして指定されるレイヤのセットである。出力レイヤは、(例えば、ディスプレイに)出力するために指定されるレイヤである。例えば、レイヤN631は、レイヤ間予測621をサポートするためだけに含まれ、決して出力されなくてもよい。このような場合、レイヤN+1 632は、レイヤN631に基づいて復号され、出力される。このような場合、OLS625は、出力レイヤとしてレイヤN+1 632を含む。OLSが出力レイヤのみを含む場合、そのOLSは0番目のOLS626と呼ばれる。0番目のOLS626は、最下位レイヤ(最下位レイヤ識別子を有するレイヤ)のみを含むOLSであり、したがって、出力レイヤのみを含むOLSである。他の場合には、OLS625は、異なる組合せで多くのレイヤを含むことがある。例えば、OLS625の出力レイヤは、1つ、2つ、または多くの下位レイヤに基づいてレイヤ間予測621に従ってコード化することができる。さらに、OLS625は、2つ以上の出力レイヤを含むことができる。したがって、OLS625は、1つまたは複数の出力レイヤと、出力レイヤを再構成するのに必要な任意のサポートレイヤとを含むことができる。2つのOLS625および626のみが示されているが、マルチレイヤビデオシーケンス600は、それぞれがレイヤの異なる組合せを採用する多くの異なるOLS625および/または626を採用することによってコード化されてもよい。OLS625および626はそれぞれ、対応するOLS625および626を一意に識別するインデックスであるOLSインデックス629に関連付けられている。
【0112】
HRD500でマルチレイヤビデオシーケンス600の規格適合性をチェックすることは、レイヤ631~632ならびにOLS625および626の数次第では複雑になる可能性がある。HRD500は、テストのためにマルチレイヤビデオシーケンス600を一連の動作ポイント627に分離することができる。OLS625および/または626は、OLSインデックス629によって識別される。動作ポイント627は、OLS625/626の時間的なサブセットである。動作ポイント627は、対応するOLS625/626のOLSインデックス629ならびに最高時間ID622の両方によって識別することができる。具体例として、第1の動作ポイント627は、時間ID0から時間ID200までの第1のOLS625内のすべての画像を含むことができ、第2の動作ポイント627は、時間ID201から時間ID400までの第1のOLS625内のすべての画像を含むことができ、以下同様である。このような場合、第1の動作ポイント627は、第1のOLS625のOLSインデックス629と、200の時間IDによって記述される。さらに、第2の動作ポイント627は、第1のOLS625のOLSインデックス629と、400の時間IDによって記述される。指定された瞬間にテストするために選択された動作ポイント627は、テスト対象OP(targetOp)と呼ばれる。したがって、targetOpは、HRD500において適合性試験のために選択される動作ポイント627である。
【0113】
図7は、時間スケーラビリティのために構成された例示的なマルチレイヤビデオシーケンス700を示す概略図である。マルチレイヤビデオシーケンス700は、例えば方法100に従って、コーデックシステム200および/またはエンコーダ300などのエンコーダによって符号化され、コーデックシステム200および/またはデコーダ400などのデコーダによって復号され得る。さらに、マルチレイヤビデオシーケンス700は、HRD500などのHRDによって規格適合性をチェックすることができる。マルチレイヤビデオシーケンス700は、コード化ビデオシーケンスにおけるレイヤのための別の例示的な適用を示すために含まれている。例えば、マルチレイヤビデオシーケンス700は、別個の実施形態として採用されてもよく、またはマルチレイヤビデオシーケンス600に関して説明した技術と組み合わされてもよい。
【0114】
マルチレイヤビデオシーケンス700は、サブレイヤ710、720、および730を含む。サブレイヤは、特定の時間識別子値を有するVCL NALユニット(例えば、画像)ならびに関連付けられた非VCL NALユニット(例えば、サポートパラメータ)を含む時間スケーラブルビットストリームの時間スケーラブルレイヤである。例えば、レイヤN631および/またはレイヤN+1 632などのレイヤは、時間スケーラビリティをサポートするために、サブレイヤ710、720、および730にさらに分割され得る。サブレイヤ710は、ベースレイヤと呼ばれることがあり、サブレイヤ720および730は、エンハンスメントレイヤと呼ばれることがある。図示するように、サブレイヤ710は、毎秒30フレームなどの第1のフレームレートの画像711を含む。サブレイヤ710は、ベース/最低フレームレートを含むため、サブレイヤ710は、ベースレイヤである。サブレイヤ720は、サブレイヤ710の画像711から時間的にオフセットされた画像721を含む。その結果、サブレイヤ710とサブレイヤ720とを組み合わせることができ、その結果、サブレイヤ710単独のフレームレートよりも全体として高いフレームレートが得られる。例えば、サブレイヤ710および720は、合わせて毎秒60フレームのフレームレートを有することができる。したがって、サブレイヤ720は、サブレイヤ710のフレームレートを向上させる。さらに、サブレイヤ730は、やはりサブレイヤ720および710の画像721および711から時間的にオフセットされた画像731を含む。したがって、サブレイヤ730をサブレイヤ720および710と組み合わせて、サブレイヤ710をさらに強化することができる。例えば、サブレイヤ710、720、および730は、合わせて毎秒90フレームのフレームレートを有することができる。
【0115】
サブレイヤ表現740は、サブレイヤ710、720、および/または730を組み合わせることによって動的に作成することができる。サブレイヤ表現740は、特定のサブレイヤおよび下位サブレイヤのNALユニットを含むビットストリームのサブセットである。図示する例では、サブレイヤ表現740は、サブレイヤ710、720、および730の合成画像711、721、および731である画像741を含む。したがって、マルチレイヤビデオシーケンス700は、サブレイヤ710、720、および/または730の所望のセットを含むサブレイヤ表現740を選択することによって、所望のフレームレートに時間的にスケーリングされ得る。サブレイヤ表現740は、サブレイヤ710、720、および/または730をレイヤとして含むOLSを採用することによって作成されてもよい。このような場合、サブレイヤ表現740が出力レイヤとして選択される。したがって、時間スケーラビリティは、マルチレイヤメカニズムを使用して達成することができるいくつかのメカニズムのうちの1つである。
【0116】
図8は、例示的なビットストリーム800を示す概略図である。例えば、ビットストリーム800は、方法100に従ってコーデックシステム200および/またはデコーダ400によって復号するために、コーデックシステム200および/またはエンコーダ300によって生成することができる。さらに、ビットストリーム800は、マルチレイヤビデオシーケンス600および/または700を含むことができる。さらに、ビットストリーム800は、HRD500などのHRDの動作を制御するための様々なパラメータを含むことができる。このようなパラメータに基づいて、HRDは、復号のためにデコーダに向けて送信する前に、規格との適合性についてビットストリーム800をチェックすることができる。
【0117】
ビットストリーム800は、VPS811、1つまたは複数のSPS813、複数の画像パラメータセット(PPS)815、複数のスライスヘッダ817、イメージデータ820、およびSEIメッセージ819を含む。VPS811は、ビットストリーム800全体に関連するデータを含む。例えば、VPS811は、ビットストリーム800で使用されるOLS、レイヤ、および/またはサブレイヤに関連するデータを含むことができる。SPS813は、ビットストリーム800に含まれるコード化ビデオシーケンス内のすべての画像に共通のシーケンスデータを含む。例えば、各レイヤは、1つまたは複数のコード化ビデオシーケンスを含むことができ、各コード化ビデオシーケンスは、対応するパラメータについてSPS813を参照することができる。SPS813のパラメータは、画像サイジング、ビット深度、コーディングツールパラメータ、ビットレート制限などを含むことができる。各シーケンスは、SPS813を参照するが、いくつかの例では、単一のSPS813が複数のシーケンスに関するデータを含むことができることに留意されたい。PPS815は、画像全体に適用されるパラメータを含む。したがって、ビデオシーケンス内の各画像は、PPS815を参照することができる。各画像は、PPS815を参照するが、いくつかの例では、単一のPPS815が複数の画像についてのデータを含むことができることに留意されたい。例えば、複数の同様の画像は、同様のパラメータに従ってコード化されてもよい。このような場合、単一のPPS815は、このような類似画像についてのデータを含むことができる。PPS815は、対応する画像のスライスに利用可能なコーディングツール、量子化パラメータ、オフセットなどを示すことができる。
【0118】
スライスヘッダ817は、画像内の各スライスに固有のパラメータを含む。したがって、ビデオシーケンス内のスライスごとに1つのスライスヘッダ817が存在する可能性がある。スライスヘッダ817は、スライスタイプ情報、POC、参照画像リスト、予測重み、タイルエントリポイント、デブロッキングパラメータなどを含むことができる。いくつかの例では、ビットストリーム800はまた、単一の画像内のすべてのスライスに適用されるパラメータを含むシンタックス構造である画像ヘッダを含むことができることに留意されたい。このため、画像ヘッダおよびスライスヘッダ817は、いくつかの文脈では交換可能に使用されることがある。例えば、特定のパラメータは、そのようなパラメータが画像内のすべてのスライスに共通であるかどうかに応じて、スライスヘッダ817と画像ヘッダとの間で移動することができる。
【0119】
イメージデータ820は、インター予測および/またはイントラ予測に従って符号化されたビデオデータ、ならびに対応する変換されたおよび量子化された残差データを含む。例えば、イメージデータ820は、AU821、DU822、および/または画像823を含むことができる。AU821は、指定された分類規則に従って互いに関連付けられ、1つの特定の出力時間に関連するNALユニットのセットである。DU822は、AUまたはAUのサブセット、および関連付けられた非VCL NALユニットである。画像823は、フレームまたはそのフィールドを作成するルマサンプルのアレイおよび/またはクロマサンプルのアレイである。平たく言えば、AU821は、ビデオシーケンス内の指定された瞬間に表示される可能性のある様々なビデオデータ、ならびにサポートするシンタックスデータを含む。したがって、AU821は、単一レイヤビットストリームにおける単一の画像823、またはマルチレイヤビットストリームにおけるすべてが同じ瞬間に関連付けられた複数のレイヤからの複数画像を含むことができる。一方、画像823は、表示のために出力され得るか、または出力のための他の画像823のコーディングをサポートするために使用され得る、コード化されたイメージである。DU822は、1つまたは複数の画像823と、復号に必要な任意のサポートするシンタックスデータとを含むことができる。例えば、DU822およびAU821は、(例えば、AUが単一の画像を含む場合)単純なビットストリームにおいて交換可能に使用されることがある。しかしながら、より複雑なマルチレイヤビットストリームでは、DU822は、AU821からのビデオデータの一部分のみを含むことができる。例えば、AU821は、いくつかのレイヤおよび/またはサブレイヤにおいて画像823を含むことができ、画像823のうちのいくつかが異なるOLSに関連付けられている。このような場合、DU822は、指定されたOLSおよび/または指定されたレイヤ/サブレイヤからの画像823のみを含むことができる。
【0120】
画像823は、1つまたは複数のスライス825を含む。スライス825は、画像823の(例えば、タイル内の)整数個の完全なタイルまたは整数個の連続する完全なコーディングツリーユニット(CTU)行として定義されてもよく、タイルまたはCTU行は、単一のNALユニット829に排他的に含まれる。したがって、スライス825は、単一のNALユニット829にも含まれる。スライス825は、CTUおよび/またはコーディングツリーブロック(CTB)にさらに分割される。CTUは、コーディングツリーによって分割することができるあらかじめ定義されたサイズのサンプルのグループである。CTBは、CTUのサブセットであり、CTUのルマ成分またはクロマ成分を含む。CTU/CTBは、コーディングツリーに基づいてコーディングブロックにさらに分割される。その後、コーディングブロックは、予測メカニズムに従って符号化/復号化され得る。
【0121】
ビットストリーム800は、NALユニット829のシーケンスである。NALユニット829は、ビデオデータおよび/またはサポートシンタックスのためのコンテナである。NALユニット829は、VCL NALユニットまたは非VCL NALユニットとすることができる。VCL NALユニットは、コード化されたスライス825および関連付けられたスライスヘッダ817などのビデオデータを含むようにコード化されたNALユニット829である。非VCL NALユニットは、ビデオデータの復号、適合性チェックの実行、もしくは他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニット829である。例えば、非VCL NALユニットは、VPS811、SPS813、PPS815、SEIメッセージ819、または他のサポートシンタックスを含むことができる。
【0122】
SEIメッセージ819は、復号化画像のサンプルの値を決定するために、復号プロセスによって必要とされない情報を伝達する、セマンティクスが指定されたシンタックス構造である。例えば、SEIメッセージは、HRDプロセスをサポートするためのデータ、またはデコーダにおいてビットストリーム800を復号することに直接関連しない他のサポートデータを含むことができる。SEIメッセージ819は、スケーラブルネスティングSEIメッセージおよび/または非スケーラブルネスト化SEIメッセージを含むことができる。スケーラブルネスティングSEIメッセージは、1つもしくは複数のOLSまたは1つもしくは複数のレイヤに対応する複数のSEIメッセージを含むメッセージである。非スケーラブルネスト化SEIメッセージは、ネスティングされていないメッセージであり、したがって、単一のSEIメッセージを含む。SEIメッセージ819は、CPBを管理するためにHRDを初期化するためのHRDパラメータを含むBP SEIメッセージを含むことができる。SEIメッセージ819は、CPBおよび/またはDPBにおいてAU821についての配信情報を管理するためのHRDパラメータを含むPT SEIメッセージも含むことができる。SEIメッセージ819は、CPBおよび/またはDPBにおいてDU822についての配信情報を管理するためのHRDパラメータを含むDUI SEIメッセージも含むことができる。
【0123】
ビットストリーム800は、HRD500などのHRDの動作条件を初期化および/または定義するシンタックス要素であるシーケンスレベルのHRDパラメータ833の整数(i)個のセットを含む。いくつかの例では、一般HRDパラメータ(general_hrd_parameters)シンタックス構造は、VPS811によって指定されたすべてのOLSに適用されるシーケンスレベルのHRDパラメータ833を含むことができる。シーケンスレベルのHRDパラメータは、コード化ビデオシーケンス全体に適用されるHRDパラメータである。コード化ビデオシーケンスは、1つまたは複数の画像823である。一例では、エンコーダは、ビデオシーケンスをレイヤに符号化することができる。レイヤはそれぞれ、コード化されたビデオシーケンスを含むことができる。次いで、エンコーダは、シーケンスレベルのHRDパラメータ833をビットストリームに符号化して、OLS内のシーケンスに対して適合性チェックを実行するようにHRDを適切に設定することができる。HRDパラメータ833は、デコーダが配信スケジュールに従ってビットストリームを復号することができることをデコーダに示すこともできる。シーケンスレベルのHRDパラメータ833は、VPS811に含まれる。HRDを構成するために使用される追加のパラメータも、SEIメッセージ819に含まれてもよい。
【0124】
上述したように、ビデオストリームは、OLS625、レイヤN631、レイヤN+1 632、サブレイヤ710、サブレイヤ720、および/またはサブレイヤ730などの、多くのOLSおよび多くのレイヤを含むことができる。さらに、レイヤによっては、複数のOLSに含まれるものがあってもよい。各OLSの各レイヤおよび/またはサブレイヤは、配信スケジュールに従ってHRDによって適合性についてチェックされる。各配信スケジュールは、異なる伝送帯域幅およびシステム能力を考慮するために、異なるCPBサイズおよびCPB遅延に関連付けられる。一部のビデオコーディングシステムは、各サブレイヤが任意の数の配信スケジュールを定義することを可能にする。これにより、適合性チェックをサポートするための大量のシグナリングが生じる可能性があり、その結果、ビットストリームのコーディング効率が低下することになる。さらに、このような柔軟性は、著しい複雑さを生み、その結果、エンコーダにおけるプロセッサおよびメモリリソース使用量が大幅に増加する。
【0125】
本開示は、複数のレイヤを含むビデオに対してHRDシグナリングを簡略化し、コーディング効率を向上させるためのメカニズムを含む。具体的には、すべてのレイヤおよび/またはサブレイヤは、同じ数のCPB配信スケジュールを含むように制約される。例えば、エンコーダは、任意の1つのレイヤにも使用されるCPB配信スケジュールの最大数を決定し、すべてのレイヤに対するCPB配信スケジュールの数をこの最大数に設定することができる。次いで、配信スケジュールの数は、例えば、VPSにおけるHRDパラメータの一部として、1回シグナリングされてもよい。これにより、レイヤ/サブレイヤごとにいくつかのスケジュールをシグナリングする必要がなくなる。また、OLS内のすべてのレイヤ/サブレイヤは、同じ配信スケジュールインデックスを共有することもできる。これらの変更により、適合性チェックに関連するデータをシグナリングするために使用されるデータの量が削減される。これにより、ビットストリームサイズが小さくなり、したがって、エンコーダおよびデコーダの両方でプロセッサ、メモリ、および/またはネットワークリソースの利用率が削減される。
【0126】
具体的には、VPS811のHRDパラメータ833は、hrd_cpb_cnt_minus1 831として表記することができるHRD CPBカウントを含むことができる。hrd_cpb_cnt_minus1 831は、ビットストリーム800で使用されるCPB配信スケジュールの数を指定するシンタックス要素である。minus1は、hrd_cpb_cnt_minus1 831の値が指示された値よりも1小さいこと、および真の値を得るためには+1を加算する必要があることを示す。hrd_cpb_cnt_minus1 831は、両端値を含めて、0~31の範囲にあってもよい。これは、ビットストリーム800に対して1~32個のCPB配信スケジュールが指定され得ることを示す。
【0127】
SEIメッセージ819は、HRDパラメータ833に示されるCPB配信スケジュールを記述するデータを含むことができる。例えば、BP SEIメッセージは、対応するレイヤのCPB配信スケジュールを記述するために使用することができるBP CPBカウント-1(bp_cpb_cnt_minus1)835と、初期CPB除去遅延(nal_initial_cpb_removal_delay)837と、初期CPB除去オフセット(nal_initial_cpb_removal_offset)839と、を含むことができる。CPB配信スケジュールはそれぞれ、nal_initial_cpb_removal_delay837とnal_initial_cpb_removal_offset839とのペアによって記述される。nal_initial_cpb_removal_delay837は、ビットストリーム、OLS、および/またはレイヤ内の、画像、AU、ならびに/あるいはDUをチェックする際にHRDのCPBからデータユニットを除去するときに使用されるデフォルトの除去遅延である。したがって、nal_initial_cpb_removal_delay837は、CPB配信スケジュールのタイミングを記述する。nal_initial_cpb_removal_offset839は、ビットストリーム、OLS、および/またはレイヤ内の、各画像、AU、ならびに/あるいはDUに関連付けられたデフォルトのCPB除去オフセットである。例えば、オフセットは、HRDのCPBから除去されるデータユニットのサイズを示すことができる。したがって、nal_initial_cpb_removal_offset839は、CPB配信スケジュールで使用されるキャッシュサイズを記述する。したがって、HRDは、nal_initial_cpb_removal_delay837およびnal_initial_cpb_removal_offset839に基づいてCPB配信スケジュールを決定することができる。したがって、このような値のペアは、CPB配信スケジュール561などの各CPB配信スケジュールを定義するために使用される。
【0128】
bp_cpb_cnt_minus1 835は、サブレイヤ710、720、および/または730などの、対応する時間サブレイヤに使用されるnal_initial_cpb_removal_delay837とnal_initial_cpb_removal_offset839とのペアの数を指定するシンタックス要素である。したがって、bp_cpb_cnt_minus1 835は、レイヤ/サブレイヤごとに利用可能な配信スケジュールの数を指定する。bp_cpb_cnt_minus1 835の値は、hrd_cpb_cnt_minus1 831の値に等しく設定することができる。これは、各レイヤに対する配信スケジュールの数がCPB配信スケジュールの数の総数と同じであることを保証する。したがって、すべてのレイヤは、同じ数のCPB配信スケジュールを有する。すべてのレイヤが同じ数のCPB配信スケジュールを有することを保証することは、ビットストリーム800内の複雑なおよび/または冗長なシグナリングを減らし、これによりコーディング効率を高める。また、この手法により、HRDプロセスが簡略化される。その結果、プロセッサ、メモリ、および/またはネットワークのシグナリングリソースの使用量がエンコーダおよびデコーダの両方において削減される。ターゲットレイヤ/OLSの各CPB配信スケジュールは、一意のスケジュールインデックス(ScIdx)によって参照され得ることにも留意されたい。ScIdxは、両端値を含めて、0からhrd_cpb_cnt_minus1 831の値までの範囲の値を含むことができる。これは、ScIdxが、最初のCPB配信スケジュールに対する0の値から、最後のCPB配信スケジュールに対するhrd_cpb_cnt_minus1の値まで変化し得ることを示す。各レイヤ/サブレイヤは、同じ数のCPB配信スケジュールを含み、ScIdxは、任意のCPB配信スケジュールを一意に識別することができるため、OLS内のレイヤ/サブレイヤも同じScIdx値セットを共有することができる。これにより、HRDプロセスの複雑さがさらに軽減する。したがって、ビットストリーム800に関して説明したメカニズムは、エンコーダおよび/またはデコーダの機能を高めることができる。さらに、ビットストリーム800に関して説明したメカニズムは、コーディング効率の向上をサポートし、ならびに/またはエンコーダおよび/もしくはデコーダにおけるプロセッサ、メモリ、および/もしくはネットワーク通信リソースの削減をサポートすることができる。
【0129】
ここで、前述の情報を本明細書において以下でより詳細に説明する。階層化ビデオコーディングは、スケーラブルビデオコーディングまたはスケーラビリティを有するビデオ符号化とも呼ばれる。ビデオコーディングにおけるスケーラビリティは、マルチレイヤコーディング技術を使用することによってサポートされ得る。マルチレイヤビットストリームは、ベースレイヤ(BL)と1つまたは複数のエンハンスメントレイヤ(EL)とを含む。スケーラビリティの例には、空間スケーラビリティ、品質/信号対雑音比(SNR)スケーラビリティ、マルチビュースケーラビリティ、フレームレートスケーラビリティなどが含まれる。マルチレイヤコーディング技術を使用する場合、画像またはその一部は、参照画像を使用せずにコード化されてもよく(イントラ予測)、同じレイヤにある参照画像を参照することによってコード化されてもよく(インター予測)、および/または他のレイヤにある参照画像を参照することによってコード化されてもよい(レイヤ間予測)。現在の画像のレイヤ間予測に使用される参照画像は、インターレイヤ参照画像(ILRP)と呼ばれる。図6は、異なるレイヤの画像が異なる解像度を有する空間スケーラビリティのためのマルチレイヤコーディングの一例を示す。
【0130】
いくつかのビデオコーディングファミリーは、単一レイヤコーディングのためのプロファイルから分離されたプロファイルのスケーラビリティのサポートを提供する。スケーラブルビデオコーディング(SVC)は、空間スケーラビリティ、時間スケーラビリティ、および品質スケーラビリティをサポートする高度ビデオコーディング(AVC)のスケーラブルな拡張である。SVCの場合、EL画像の各マクロブロック(MB)に、EL MBが下位レイヤからのコロケーションブロックを使用して予測されるかどうかを示すフラグがシグナリングされる。コロケーションブロックからの予測は、テクスチャ、動きベクトル、および/またはコーディングモードを含むことができる。SVCの実施は、変更されていないAVCの実施を設計で直接再利用することはできない。SVC ELマクロブロックのシンタックスおよび復号プロセスは、AVCシンタックスおよび復号プロセスとは異なる。
【0131】
スケーラブルHEVC(SHVC)は、空間スケーラビリティおよび品質スケーラビリティをサポートするHEVCの拡張である。マルチビューHEVC(MV-HEVC)は、マルチビュースケーラビリティをサポートするHEVCの拡張である。3D HEVC(3D-HEVC)は、MV-HEVCよりも高度で効率的な3DビデオコーディングをサポートするHEVCの拡張である。時間スケーラビリティは、単一レイヤHEVCコーデックの一体部分として含まれていてもよい。HEVCのマルチレイヤ拡張では、レイヤ間予測に使用される復号画像は、同じAUからのもののみであり、長期参照画像(LTRP)として扱われる。このような画像は、現在のレイヤの他の時間参照画像とともに、参照画像リストの参照インデックスが割り当てられる。レイヤ間予測(ILP)は、参照画像リストのレイヤ間参照画像を参照するように参照インデックスの値を設定することによって、予測ユニット(PU)レベルにおいて達成される。空間スケーラビリティは、ILRPが符号化または復号化されている現在の画像とは異なる空間解像度を有する場合に、参照画像またはその一部を再サンプリングする。参照画像の再サンプリングは、画像レベルまたはコーディングブロックレベルのいずれかで実現することができる。
【0132】
VVCは、階層化ビデオコーディングをサポートすることもできる。VVCビットストリームは、複数のレイヤを含むことができる。レイヤはすべて互いに独立していてもよい。例えば、各レイヤは、レイヤ間予測を使用せずにコード化することができる。この場合、レイヤは、サイマルキャストレイヤとも呼ばれる。場合によっては、レイヤのうちのいくつかは、ILPを使用してコード化される。VPSのフラグは、レイヤがサイマルキャストレイヤであるかどうか、または一部のレイヤがILPを使用するかどうかを示すことができる。一部のレイヤがILPを使用する場合、レイヤ間のレイヤ依存関係もVPSでシグナリングされる。VVCは、SHVCおよびMV-HEVCとは異なり、OLSを指定しないことがある。OLSは、指定されたレイヤのセットを含み、レイヤのセットの中の1つまたは複数のレイヤは、出力レイヤであると指定される。出力レイヤは、出力されるOLSのレイヤである。VVCの一部の実施態様では、レイヤがサイマルキャストレイヤの場合、1つのレイヤのみが復号および出力のために選択されることがある。VVCの一部の実施態様では、すべてのレイヤを含むビットストリーム全体は、いずれかのレイヤがILPを使用する場合に復号されるように指定される。さらに、レイヤのうちのある特定のレイヤが出力レイヤとして指定される。出力レイヤは、最上位レイヤのみ、すべてのレイヤ、または最上位レイヤ+指示された下位レイヤのセットであると指示されてもよい。
【0133】
ビデオコーディング規格は、指定されたHRD適合性試験を通してビットストリームの適合性を検証するためのHRDを指定することができる。SHVCおよびMV-HEVCでは、ビットストリームの適合性をチェックするために、ビットストリーム適合性試験の3つのセットが採用される。ビットストリームは、ビットストリーム全体と呼ばれ、entireBitstreamと表記される。ビットストリーム適合性試験の第1のセットは、ビットストリーム全体および対応する時間サブセットの適合性をテストするためのものである。このようなテストは、ビットストリーム全体に存在するVCL NALユニットのすべてのnuh_layer_id値を含むアクティブVPSによって指定されたレイヤセットがあるかどうかにかかわらず採用される。したがって、1つまたは複数のレイヤが出力セットに含まれない場合でも、ビットストリーム全体が適合性について常にチェックされる。ビットストリーム適合性試験の第2のセットは、アクティブVPSによって指定されたレイヤセットおよび関連付けられた時間サブセットの適合性をテストするために採用される。すべてのこれらのテストについて、ベースレイヤ画像(例えば、nuh_layer_idが0に等しい画像)のみが復号され、出力される。他の画像は、復号プロセスが呼び出されたときにデコーダによって無視される。ビットストリーム適合性試験の第3のセットは、OLSおよびビットストリーム分割に基づいて、アクティブVPSのVPS拡張部分によって指定されたOLSおよび関連付けられた時間サブセットの適合性をテストするために採用される。ビットストリーム分割は、マルチレイヤビットストリームのOLSの1つまたは複数のレイヤを含む。
【0134】
前述の態様は、ある特定の問題を含む。例えば、適合性試験の最初の2つのセットは、復号されず、出力されないレイヤに適用されることがある。例えば、最下位レイヤ以外のレイヤは復号されず、出力されない。実際のアプリケーションでは、デコーダは、復号されるデータのみを受信することができる。したがって、適合性試験の最初の2つのセットを用いることは、両方ともコーデック設計を複雑にし、適合性試験をサポートするために使用されるシーケンスレベルパラメータと画像レベルパラメータの両方を搬送するためのビットが無駄になる可能性がある。適合性試験の第3のセットは、ビットストリーム分割を含む。このような分割は、マルチレイヤビットストリームのOLSの1つまたは複数のレイヤに関連することがある。代わりに、適合性試験が常にレイヤごとに別々に動作する場合、HRDは大幅に簡略化される可能性がある。
【0135】
シーケンスレベルのHRDパラメータのシグナリングは、複雑な場合がある。例えば、シーケンスレベルのHRDパラメータは、SPSとVPSの両方など、複数の場所でシグナリングされることがある。さらに、シーケンスレベルのHRDパラメータシグナリングは、冗長性を含むことがある。例えば、ビットストリーム全体について一般に同じである可能性がある情報が、各OLSの各レイヤで繰り返される可能性がある。さらに、例示的なHRD方式は、異なる配信スケジュールをレイヤごとに選択することを可能にする。このような配信スケジュールは、動作ポイントごとに各レイヤについてシグナリングされたスケジュールのリストから選択されることがあり、動作ポイントは、OLSまたはOLSの時間サブセットである。このようなシステムは複雑である。さらに、例示的なHRD方式は、不完全なAUをバッファリング期間SEIメッセージに関連付けることを可能にする。不完全なAUは、CVSに存在するすべてのレイヤについての画像がないAUである。しかしながら、このようなAUでのHRD初期化には問題がある可能性がある。例えば、HRDは、不完全なAUに存在しないレイヤアクセスユニットを有するレイヤについては適切に初期化されないことがある。加えて、レイヤビットストリームを導出するためのデマルチプレクスプロセスは、ターゲットレイヤに適用されないネスティングされたSEIメッセージを十分に効率的に除去できない場合がある。レイヤビットストリームは、ビットストリーム分割に1つのレイヤのみが含まれる場合に発生する。さらに、非スケーラブルなネスト化バッファリング期間、画像タイミング、および復号ユニット情報SEIメッセージの適用可能なOLSは、ビットストリーム全体に対して指定されることがある。しかしながら、非スケーラブルネスト化バッファリング期間は、代わりに0番目のOLSに適用可能であるべきである。
【0136】
さらに、VVCの実装によっては、sub_layer_cpb_params_present_flagが0に等しいとき、HDRパラメータを推測することに失敗することがある。このような推測は、適切なHRD動作を可能にする場合がある。加えて、bp_max_sub_layers_minus1およびpt_max_sub_layers_minus1の値は、sps_max_sub_layers_minus1の値と等しいことが必要である場合がある。しかしながら、バッファリング期間および画像タイミングSEIメッセージは、ネスティングされてもよく、複数のOLSおよび複数のOLSのそれぞれの複数のレイヤに適用可能であってもよい。このような文脈では、関与するレイヤは、複数のSPSを参照することがある。したがって、システムは、どのSPSが各レイヤに対応するSPSであるかを追跡することが困難である場合がある。したがって、これらの2つのシンタックス要素の値は、代わりにvps_max_sub_layers_minus1の値に基づいて制約されるべきである。さらに、異なるレイヤは異なる数のサブレイヤを有することができるため、これらの2つのシンタックス要素の値は、すべてのバッファリング期間および画像タイミングSEIメッセージにおいて特定の値に常に等しいとは限らない。
【0137】
また、以下の問題が、SHVC/MV-HEVCとVVCの両方においてHRD設計に関連付けられる。サブビットストリーム抽出プロセスは、ターゲットOLSに必要でないネスティングされたSEIメッセージを含むSEI NALユニットを除去しないことがある。
【0138】
一般に、本開示は、マルチレイヤビデオビットストリームにおける出力レイヤセットのためのSEIメッセージのスケーラブルなネスティングのための手法について説明する。本技術の説明は、VVCに基づいている。しかしながら、本技術は、他のビデオコーデック仕様に基づく階層化ビデオコーディングにも適用される。
【0139】
上述の問題の1つまたは複数は、以下のように解決することができる。具体的には、本開示は、SHVCおよびMV-HEVCと比較してはるかに単純なHRD動作を用いてHRDパラメータの効率的なシグナリングを可能にする、HRD設計のための方法および関連する態様を含む。以下に説明する解決策のそれぞれは、上述の問題に対応する。例えば、3セットの適合性試験を必要とする代わりに、本開示は、VPSによって指定されたOLSの適合性をテストするために1セットの適合性試験のみを採用すればよい。さらに、ビットストリーム分割に基づく設計の代わりに、開示されるHRDメカニズムは、OLSのレイヤごとに常に別々に動作することができる。さらに、すべてのOLSのすべてのレイヤおよびサブレイヤに対してグローバルであるシーケンスレベルのHRDパラメータは、例えば、VPSにおいて1回だけシグナリングされればよい。加えて、すべてのOLSのすべてのレイヤおよびサブレイヤに対して単一の数の配信スケジュールがシグナリングされればよい。OLSのすべてのレイヤに同じ配信スケジュールインデックスを適用することもできる。さらに、不完全なAUは、バッファリング期間SEIメッセージに関連付けられなくてもよい。不完全なAUとは、CVSに存在するすべてのレイヤについての画像を含まないAUである。これにより、OLSのすべてのレイヤについて、確実にHRDを常に適切に初期化することができる。また、OLSにおいてターゲットレイヤに適用されないネスティングされたSEIメッセージを効率的に除去するためのメカニズムが開示される。これは、レイヤビットストリームを導出するためのデマルチプレクスプロセスをサポートする。加えて、非スケーラブルネスト化バッファリング期間、画像タイミング、および復号ユニット情報SEIメッセージの適用可能なOLSは、0番目のOLSであると指定されてもよい。さらに、sub_layer_cpb_params_present_flagが0に等しい場合に、HDRパラメータを推測することができ、適切なHRD動作が可能になる可能性がある。bp_max_sub_layers_minus1およびpt_max_sub_layers_minus1の値は、0からvps_max_sub_layers_minus1の範囲にあることが必要であることがある。このように、このようなパラメータは、すべてのバッファリング期間および画像タイミングSEIメッセージについて特定の値である必要はない。また、サブビットストリーム抽出プロセスは、ターゲットOLSに適用されないネスティングされたSEIメッセージを含むSEI NALユニットを除去することができる。
【0140】
前述のメカニズムの例示的な実施態様は、以下の通りである。出力レイヤは、出力レイヤセットのうちの出力されるレイヤである。OLSは、指定されたレイヤのセットを含むレイヤのセットであり、レイヤのセット内の1つまたは複数のレイヤが出力レイヤであると指定される。OLSレイヤインデックスは、OLS内のレイヤの、OLS内のレイヤのリストに対するインデックスである。サブビットストリーム抽出プロセスは、ターゲットOLSインデックスおよびターゲット最高TemporalIdによって決定される、ターゲットセットに属さないビットストリーム内のNALユニットが、ビットストリームから除去される指定されたプロセスであり、出力サブビットストリームは、ターゲットセットに属するビットストリーム内のNALユニットを含む。
【0141】
例示的なビデオパラメータセットのシンタックスは、以下の通りである。
【表1】
【0142】
例示的なシーケンスパラメータセットRBSPのシンタックスは、以下の通りである。
【表2】
【0143】
例示的なDPBパラメータのシンタックスは、以下の通りである。
【表3】
【0144】
例示的な一般HRDパラメータのシンタックスは、以下の通りである。
【表4】
【0145】
例示的なビデオパラメータセットRBSPのセマンティクスは、以下の通りである。each_layer_is_an_ols_flagを1に等しく設定することで、各出力レイヤセットが1つのレイヤのみを含み、ビットストリーム中の各レイヤ自体が出力レイヤセットであり、含まれている単一のレイヤが唯一の出力レイヤであることが指定される。each_layer_is_an_ols_flagを0に等しく設定することで、出力レイヤセットが2つ以上のレイヤを含むことができることが指定される。vps_max_layers_minus1が0に等しい場合、each_layer_is_an_ols_flagの値は、1に等しいと推測される。そうではなく、vps_all_independent_layers_flagが0に等しい場合、each_layer_is_an_ols_flagの値は、0に等しいと推測される。
【0146】
ols_mode_idcを0に等しく設定することで、VPSによって指定されるOLSの総数がvps_max_layers_minus1+1に等しいことが指定され、i番目のOLSは、両端値を含めて、0~iのレイヤインデックスを有するレイヤを含み、各OLSについて、OLSの最上位レイヤのみが出力される。ols_mode_idcを1に等しく設定することで、VPSによって指定されるOLSの総数がvps_max_layers_minus1+1に等しいことが指定され、i番目のOLSは、両端値を含めて、0~iのレイヤインデックスを有するレイヤを含み、各OLSについて、OLSのすべてのレイヤが出力される。ols_mode_idcを2に等しく設定することで、VPSによって指定されるOLSの総数が明示的にシグナリングされることが指定され、各OLSについて、OLSの最上位レイヤおよび明示的にシグナリングされる下位レイヤのセットが出力される。ols_mode_idcの値は、両端値を含めて、0~2の範囲にあるものとする。ols_mode_idcの値3は、予約されている。vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合、ols_mode_idcの値は、2に等しいと推測される。num_output_layer_sets_minus1+1は、ols_mode_idcが2に等しい場合、VPSによって指定されたOLSの総数を指定する。
【0147】
VPSによって指定されるOLSの総数を指定する変数TotalNumOlssは、以下のように導出される。
【数1】
【0148】
layer_included_flag[i][j]は、ols_mode_idcが2に等しい場合、j番目のレイヤ(nuh_layer_idがvps_layer_id[j]に等しいレイヤ)をi番目のOLSに含めるかどうかを指定する。layer_included_flag[i][j]を1に等しく設定することで、j番目のレイヤをi番目のOLSに含めることを指定する。layer_included_flag[i][j]を0に等しく設定することで、j番目のレイヤをi番目のOLSに含めないことを指定する。
【0149】
i番目のOLSのレイヤ数を指定する変数NumLayersInOls[i]と、i番目のOLSのj番目のレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]とは、以下のように導出される。
【数2】
【0150】
nuh_layer_idがOlsLayeIdx[i][j]に等しいレイヤのOLSレイヤインデックスを指定する変数LayerIdInOls[i][j]は、以下のように導出される。
【数3】
【0151】
各OLSにおける最下位レイヤは、独立したレイヤであるものする。言い換えると、両端値を含めて、0からTotalNumOlss-1までの範囲の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は、1に等しいものとする。各レイヤは、VPSによって指定された少なくとも1つのOLSに含まれるものとする。言い換えると、両端値を含めて、0からvps_max_layers_minus1までの範囲のkについて、nuh_layer_id nuhLayerIdの特定の値がvps_layer_id [k]のうちの1つに等しい各レイヤについて、iとjの値のペアが少なくとも1つ存在してもよく、ここで、iは両端値を含めて、0からTotalNumOlss-1までの範囲にあり、jは両端値を含めて、NumLayersInOls[i]-1までの範囲にあり、LayerIdInOls[i][j]の値がnuhLayerIdに等しくなるようになっている。OLSの任意のレイヤは、OLSの出力レイヤ、またはOLSの出力レイヤの(直接または間接)参照レイヤであるものとする。
【0152】
vps_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、i番目のOLSのj番目のレイヤが出力されるかどうかを指定する。1に等しいvps_output_layer_flag[i]は、i番目のOLSのj番目のレイヤが出力されることを指定する。vps_output_layer_flag[i]を0に等しく設定すると、i番目のOLSのj番目のレイヤが出力されないことを指定する。vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合、vps_output_layer_flag[i]の値は1に等しいと推測される。値1が、i番目のOLSのj番目のレイヤが出力されることを指定し、値0が、i番目のOLSのj番目のレイヤが出力されないことを指定する変数OutputLayerFlag[i][j]は、以下のように導出される。
【数4】
0番目のOLSは、最下位レイヤ(vps_layer_id[0]に等しいnuh_layer_idを有するレイヤ)のみを含み、0番目のOLSについては、含まれるレイヤのみが出力される。
【0153】
vps_extension_flagを0に等しく設定すると、vps_extension_data_flagシンタックス要素がVPS RBSPシンタックス構造中に存在しないことを指定する。vps_extension_flagを1に等しく設定すると、VPS RBSPシンタックス構造中にvps_extension_data_flagシンタックス要素が存在することを指定する。vps_extension_data_flagは、任意の値を有することができる。vps_extension_data_flagの存在および値は、指定されたプロファイルに対するデコーダの適合性に影響を及ぼさない。デコーダは、すべてのvps_extension_data_flagシンタックス要素を無視するものとする。
【0154】
例示的なDPBパラメータのセマンティクスは、以下の通りである。dpb_parameters()シンタックス構造は、DPBサイズ情報と、任意選択で、最大画像並べ替え数および最大待ち時間(MRML)情報とを提供する。各SPSは、1つまたはdpb_parameters()シンタックス構造を含む。SPSの第1のdpb_parameters()シンタックス構造は、DPBサイズ情報とMRML情報の両方を含む。存在する場合、SPSの第2のdpb_parameters()シンタックス構造は、DPBサイズ情報のみを含む。SPSの第1のdpb_parameters()シンタックス構造のMRML情報は、SPSを参照するレイヤがOLSの出力レイヤであるかどうかにかかわらず、そのレイヤに適用される。SPSの第1のdpb_parameters()シンタックス構造のDPBサイズ情報は、SPSを参照するレイヤがOLSの出力レイヤである場合に、そのレイヤに適用される。SPSの第2のdpb_parameters()シンタックス構造に含まれるDPBサイズ情報は、存在する場合、SPSを参照するレイヤがOLSの非出力レイヤである場合に、そのレイヤに適用される。SPSが1つのdpb_parameters()シンタックス構造のみを含む場合、非出力レイヤとしてのレイヤについてのDPBサイズ情報は、出力レイヤとしてのレイヤについてのものと同じであると推測される。
【0155】
例示的な一般HRDパラメータのセマンティクスは、以下の通りである。general_hrd_parameters()シンタックス構造は、HRD動作で使用されるHRDパラメータを提供する。sub_layer_cpb_params_present_flagを1に等しく設定すると、i番目のlayer_level_hrd_parameters()シンタックス構造が、TemporalIdが両端値を含めて0からhrd_max_temporal_id[i]の範囲にあるサブレイヤ表現のためのHRDパラメータを含むことを指定する。sub_layer_cpb_params_present_flagを0に等しく設定すると、i番目のlayer_level_hrd_parameters()シンタックス構造が、TemporalIdがhrd_max_temporal_id[i]のみに等しいサブレイヤ表現のためのHRDパラメータを含むことを指定する。vps_max_sub_layers_minus1が0に等しい場合、sub_layer_cpb_params_present_flagの値は0に等しいと推測される。sub_layer_cpb_params_present_flagが0に等しい場合、TemporalIdが両端値を含めて0からhrd_max_temporal_id[i]-1の範囲にあるサブレイヤ表現のためのHRDパラメータは、TemporalIdがhrd_max_temporal_id[i]に等しいサブレイヤ表現のためのものと同じであると推測される。これらは、layer_level_hrd_parametersシンタックス構造においてfixed_pic_rate_general_flag[i]シンタックス要素から始まって条件文if(general_vcl_hrd_params_present_flag)の直ぐ下のsub_layer_hrd_parameters(i)シンタックス構造までのHRDパラメータを含む。num_layer_hrd_params_minus1+1は、general_hrd_parameters()シンタックス構造中に存在するlayer_level_hrd_parameters()シンタックス構造の数を指定する。num_layer_hrd_params_minus1の値は、両端値を含めて、0~63の範囲にあるものとする。hrd_cpb_cnt_minus1+1は、CVSのビットストリーム中の代替のCPB仕様の数を指定する。hrd_cpb_cnt_minus1の値は、両端値を含めて、0~31の範囲にあるものとする。hrd_max_temporal_id[i]は、HRDパラメータがi番目のlayer_level_hrd_parameters()シンタックス構造に含まれる最上位サブレイヤ表現のTemporalIdを指定する。hrd_max_temporal_id[i]の値は、両端値を含めて、0からvps_max_sub_layers_minus1までの範囲にあるものとする。vps_max_sub_layers_minus1が0に等しい場合、hrd_max_temporal_id[i]の値は0に等しいと推測される。layer_level_hrd_idx[i][j]は、i番目のOLSのj番目のレイヤに適用されるlayer_level_hrd_parameters()シンタックス構造のインデックスを指定する。layer_level_hrd_idx[[i][j]の値は、両端値を含めて、0からnum_layer_hrd_params_minus1までの範囲にあるものとする。存在しない場合、layer_level_hrd_idx[[0][0]の値は0に等しいと推測される。
【0156】
例示的なサブビットストリーム抽出プロセスは、以下の通りである。このプロセスへの入力は、ビットストリームinBitstream、ターゲットOLSインデックスtargetOlsIdx、およびターゲット最高TemporalId値tIdTargetである。このプロセスの出力は、サブビットストリームoutBitstreamである。入力ビットストリームに対するビットストリーム適合性の要件は、VPSによって指定されるOLSのリストのインデックスに等しいtargetOlsIdxと、両端値を含めて、0~6の範囲の任意の値に等しいtIdTargetとを入力とした、ビットストリームに関して本節で指定されるプロセスの出力であり、以下の条件を満たす任意の出力サブビットストリームが適合性ビットストリームであることである。出力サブビットストリームは、nuh_layer_idがLayerIdInOls[targetOlsIdx]におけるnuh_layer_id値のそれぞれに等しい少なくとも1つのVCL NALユニットを含むべきである。出力サブビットストリームは、TemporalIdがtIdTargetに等しい少なくとも1つのVCL NALユニットを含むべきである。適合性ビットストリームは、TemporalIdが0に等しい1つまたは複数のコード化スライスNALユニットを含むが、nuh_layer_idが0に等しいコード化スライスNALユニットを含む必要はない。
【0157】
出力サブビットストリームOutBitstreamは、以下のように導出される。ビットストリームoutBitstreamは、ビットストリームinBitstreamと同一となるように設定される。TemporalIdがtIdTargetよりも大きいすべてのNALユニットをoutBitstreamから除去する。nuh_layer_idがリストLayerIdInOls[targetOlsIdx]に含まれないすべてのNALユニットをoutBitstreamから除去する。nesting_ols_flagが1に等しく、かつNestingOlsIdx[i]がtargetOlsIdxと等しくなるように、iの値が両端値を含めて0からnesting_num_olss_minus1までの範囲にないスケーラブルネスティングSEIメッセージを含むすべてのSEI NALユニットをoutBitstreamから除去する。targetOlsIdxが0よりも大きい場合、payloadTypeが0(バッファリング期間)、1(画像タイミング)、または130(復号ユニット情報)に等しい非スケーラブルネスト化SEIメッセージを含むすべてのSEI NALユニットをoutBitstreamから除去する。
【0158】
例示的なHRDの一般的な態様は、以下の通りである。本セクションは、ビットストリームおよびデコーダ適合性をチェックするためのHRDおよびその使用法を指定する。ビットストリーム適合性試験のセットは、ビットストリーム全体と呼ばれるビットストリームの適合性をチェックするために用いられ、entireBitstreamと表記される。ビットストリーム適合性試験のセットは、VPSによって指定された各OLSおよび各OLSの時間サブセットの適合性をテストするためのものである。各試験について、以下の順序付けられたステップが列挙された順序で適用される。
【0159】
targetOpと表記されるテスト対象の動作ポイントは、OLSインデックスopOlsIdxおよび最高TemporalId値opTidを有するターゲットOLSを選択することによって選択される。opOlsIdxの値は、両端値を含めて、0からTotalNumOlss-1までの範囲にある。opTidの値は、両端値を含めて、0からvps_max_sub_layers_minus1までの範囲にある。opOlsIdxおよびopTidの値は、entireBitstream、opOlsIdx、およびopTidを入力としてサブビットストリーム抽出プロセスを呼び出すことによる出力であるサブビットストリームBitstreamToDecodeが以下の条件を満たすような値である。nuh_layer_idが、BitstreamToDecodeのLayerIdInOls[opOlsIdx]のnuh_layer_id値のそれぞれに等しい少なくとも1つのVCL NALユニットが存在する。TemporalIdが、BitstreamToDecodeのopTidに等しい少なくとも1つのVCL NALユニットが存在する。
【0160】
TargetOlsIdxおよびHtidの値は、targetOpのopOlsIdxおよびopTidにそれぞれ等しく設定される。ScIdxの値が選択される。選択されたScIdxは、両端値を含めて、0からhrd_cpb_cnt_minus1までの範囲にあるものとする。TargetOlsIdxに適用可能なバッファリング期間SEIメッセージに関連付けられたBitstreamToDecode内のアクセスユニット(TargetLayerBitstreamに存在するか本明細書で指定されていない外部メカニズムを通じて利用可能)は、HRD初期化点として選択され、ターゲットOLSの各レイヤに対してアクセスユニット0と呼ばれる。
【0161】
後続のステップは、ターゲットOLS内のOLSレイヤインデックスTargetOlsLayerIdxを有する各レイヤに適用される。ターゲットOLSに1つのレイヤのみがある場合、テスト対象レイヤビットストリームTargetLayerBitstreamは、BitstreamToDecodeと同一に設定される。そうでない場合、TargetLayerBitstreamは、BitstreamToDecode、TargetOlsIdx、およびTargetOlsLayerIdxを入力としてレイヤビットストリームを導出するためのデマルチプレクスプロセスを呼び出すことによって導出され、出力はTargetLayerBitstreamに割り当てられる。
【0162】
TargetLayerBitstreamに適用可能なlayer_level_hrd_parameters()シンタックス構造およびsub_layer_hrd_parameters()シンタックス構造は、以下のように選択される。VPS内の(またはユーザ入力などの外部メカニズムを通じて提供される)layer_level_hrd_idx[TargetOlsIdx][TargetOlsLayerIdx]番目のlayer_level_hrd_parameters()シンタックス構造が選択される。選択されたlayer_level_hrd_parameters()シンタックス構造において、BitstreamToDecodeがタイプIビットストリームである場合、条件if(general_vcl_hrd_params_present_flag)の直ぐ後に続くsub_layer_hrd_parameters(Htid)シンタックス構造が選択され、変数NalHrdModeFlagが0に等しく設定される。そうでない場合(BitstreamToDecodeがタイプIIビットストリームである場合)、条件if(general_vcl_hrd_params_present_flag)(この場合、変数NalHrdModeFlagは0に等しく設定される)または条件if(general_nal_hrd_params_present_flag)(この場合、変数NalHrdModeFlagは1に等しく設定される)のいずれかの直ぐ後に続くsub_layer_hrd_parameters(Htid)シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームであり、NalHrdModeFlagが0に等しい場合、フィラーデータNALユニットを除くすべての非VCL NALユニット、ならびにNALユニットストリームからバイトストリームを形成するすべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素は、存在する場合、TargetLayerBitstreamから廃棄され、残ったビットストリームがTargetLayerBitstreamに割り当てられる。
【0163】
decoding_unit_hrd_params_present_flagが1に等しい場合、CPBは、アクセスユニットレベル(この場合、変数DecodingUnitHrdFlagは0に等しく設定される)または復号ユニットレベル(この場合、変数DecodingUnitHrdFlagは1に等しく設定される)のいずれかで動作するようにスケジュールされる。そうでない場合、DecodingUnitHrdFlagは0に等しく設定され、CPBはアクセスユニットレベルで動作するようにスケジュールされる。アクセスユニット0から始まるTargetLayerBitstream内の各アクセスユニットについて、アクセスユニットに関連付けられ、TargetOlsIdxおよびTargetOlsLayerIdxに適用されるバッファリング期間SEIメッセージ(TargetLayerBitstreamに存在するか、外部メカニズムを通じて利用可能)が選択され、アクセスユニットに関連付けられ、TargetOlsIdxおよびTargetOlsLayerIdxに適用される画像タイミングSEIメッセージ(TargetLayerBitstreamに存在するか、外部メカニズムを通じて利用可能)が選択され、そしてDecodingUnitHrdFlagが1に等しく、decoding_unit_cpb_params_in_pic_timing_sei_flagが0に等しい場合、アクセスユニット内の復号ユニットに関連付けられ、TargetOlsIdxおよびTargetOlsLayerIdxに適用される復号ユニット情報SEIメッセージ(TargetLayerBitstreamに存在するか、外部メカニズムを通じて利用可能)が選択される。
【0164】
各適合性試験は、上記ステップのそれぞれにおける1つのオプションの組合せを含む。あるステップに対して2つ以上のオプションが存在する場合、任意の特定の適合性試験に対して、1つのオプションのみが選択される。すべてのステップのすべての可能な組合せが、適合性試験の全セットを形成する。テスト対象の各動作ポイントについて、実行されるビットストリーム適合性試験の数は、n0*n1*n2*n3に等しく、ここで、n0、n1、n2、およびn3の値は、次のように指定される。n1は、hrd_cpb_cnt_minus1+1に等しい。n1は、バッファリング期間SEIメッセージに関連付けられたBitstreamToDecode内のアクセスユニットの数である。n2は、次のように導出される。BitstreamToDecodeがタイプIビットストリームである場合、n0は1に等しい。そうでない場合(BitstreamToDecodeがタイプIIビットストリームである場合)、n0は2に等しい。n3は次のように導出される。decoding_unit_hrd_params_present_flagが0に等しい場合、n3は1に等しい。そうでない場合、n3は2に等しい。
【0165】
HRDは、ビットストリームデマルチプレクサ(任意選択で存在する)と、各レイヤのコード化画像バッファ(CPB)と、各レイヤの瞬時復号プロセスと、各レイヤのサブDPBを含む復号化画像バッファ(DPB)と、出力クロッピングと、を含む。
【0166】
一例では、HRDは以下のように動作する。HRDは復号ユニットで0に初期化され、DPBの各CPBおよび各サブDPBは空となるように設定される。各サブDPBのサブDPBフルネスは、0に等しく設定される。初期化後、HRDは、その後のバッファリング期間SEIメッセージによって再び初期化されることはない。指定された到着スケジュールに従って各CPBに流入した復号ユニットに関連付けられたデータは、HSSによって配信される。各復号ユニットに関連付けられたデータは、復号ユニットのCPB除去時間に瞬時復号プロセスによって除去され、瞬時に復号される。復号された各画像は、DPBに配置される。復号化画像は、インター予測参照にもはや不要となり、出力にもはや不要となったときに、DPBから除去される。
【0167】
一例では、レイヤビットストリームを導出するためのデマルチプレクスプロセスは、以下の通りである。このプロセスへの入力は、ビットストリームinBitstream、ターゲットOLSインデックスtargetOlsIdx、およびターゲットOLSレイヤインデックスtargetOlsLayerIdxである。このプロセスの出力は、レイヤビットストリームoutBitstreamである。出力レイヤビットストリームoutBitstreamは、以下のように導出される。ビットストリームoutBitstreamは、ビットストリームinBitstreamと同一となるように設定される。nuh_layer_idがLayerIdInOls[targetOlsIdx][targetOlsLayerIdx]に等しくないすべてのNALユニットをoutBitstreamから除去する。NestingOlsLayerIdx[i][j]がtargetOlsLayerIdxに等しくなるように、nesting_ols_flagが1に等しく、かつ両端値を含めて、0からnesting_num_ols_minus1まで、および両端値を含めて、0からnesting_num_olss_layers_minus1[i]までの範囲にそれぞれiおよびjの値がないスケーラブルネスティングSEIメッセージを含むすべてのSEI NALユニットをoutBitstreamから除去する。NestingOlsLayerIdx[i][j]がtargetOlsLayerIdxよりも小さくなるように、nesting_ols_flagが1に等しく、かつ両端値を含めて、0からnesting_num_olss_minus1まで、および両端値を含めて、0からnesting_num_ols_layers_minus1[i]までの範囲にそれぞれiおよびjの値があるスケーラブルネスティングSEIメッセージを含むすべてのSEI NALユニットをoutBitstreamから除去する。NestingLayerId[i]がNestingNumLayers[targetOlsIdx][targetOlsLayerIdx]に等しくなるように、nesting_ols_flagが0に等しく、かつ両端値を含めて、0からLayerIdInOls-1までの範囲にiの値がないスケーラブルネスティングSEIメッセージを含むすべてのSEI NALユニットをoutBitstreamから除去する。NestingLayerId[i]がNestingNumLayers[targetOlsIdx][targetOlsLayerIdx]よりも小さくなるように、nesting_ols_flagが0に等しく、かつス両端値を含めて、0からLayerIdInOls-1までの範囲にiの少なくとも1つの値があるスケーラブルネスティングSEIメッセージを含むすべてのSEI NALユニットをoutBitstreamから除去する。
【0168】
例示的なバッファリング期間SEIメッセージシンタックスは、以下の通りである。
【表5】
【0169】
例示的なスケーラブルネスティングSEIメッセージシンタックスは、以下の通りである。
【表6】
【0170】
例示的な一般的なSEIペイロードセマンティクスは、以下の通りである。以下は、非スケーラブルネスト化SEIメッセージの適用可能なレイヤに(OLSのコンテキストにおいて、または一般的に)適用される。非スケーラブルネスト化SEIメッセージの場合、payloadTypeが0(バッファリング期間)、1(画像タイミング)、または130(復号ユニット情報)に等しい場合、非スケーラブルネスト化SEIメッセージは、0番目のOLSのコンテキストにおいて最下位レイヤのみに適用される。非スケーラブルネスト化SEIメッセージの場合、payloadTypeがVclAssociatedSeiListの中のいずれかの値に等しい場合、非スケーラブルネスト化SEIメッセージは、VCL NALユニットのnuh_layer_idが、SEIメッセージを含むSEI NALユニットのnuh_layer_idに等しいレイヤにのみ適用される。
【0171】
例示的なバッファリング期間SEIメッセージのセマンティクスは、以下の通りである。バッファリング期間SEIメッセージは、復号順で関連付けられたアクセスユニットの位置でHRDを初期化するための初期CPB除去遅延および初期CPB除去遅延オフセット情報を提供する。バッファリング期間SEIメッセージが存在する場合、TemporalIdが0に等しく、RASLまたはRADL(random access decodable leading)画像でない画像はnotDiscardablePic画像であると言われる。現在の画像が復号順でビットストリームの最初の画像でない場合、prevNonDiscardablePicを、TemporalIdが0に等しく、RASLまたはRADL画像ではない、復号順で先行する画像であるとする。
【0172】
バッファリング期間SEIメッセージの存在は、以下のように指定される。NalHrdBpPresentFlagが1に等しいかまたはVclHrdBpPresentFlagが1に等しい場合、CVS内の各アクセスユニットに対して以下が適用される。アクセスユニットがIRAPまたはGradual Decoder Refresh(GDR)アクセスユニットである場合、動作ポイントに適用可能なバッファリング期間SEIメッセージは、アクセスユニットに関連付けられるものとする。そうでない場合、アクセスユニットがnotDiscardablePicを含む場合、動作ポイントに適用可能なバッファリング期間SEIメッセージは、アクセスユニットに関連付けられてもよく、関連付けられなくてもよい。そうでない場合、アクセスユニットは、動作ポイントに適用可能なバッファリング期間SEIメッセージに関連付けられないものとする。そうでない場合(NalHrdBpPresentFlag とVclHrdBpPresentFlagの両方が0に等しい場合)、CVS内のどのアクセスユニットも、バッファリング期間SEIメッセージに関連付けられないものとする。いくつかのアプリケーションでは、バッファリング期間SEIメッセージが頻繁に存在することが望ましい場合がある(例えば、IRAP画像もしくは非IRAP画像におけるランダムアクセスの場合、またはビットストリームスプライシングの場合)。アクセスユニットの画像がバッファリング期間SEIメッセージに関連付けられている場合、アクセスユニットは、CVSに存在するレイヤのそれぞれの画像を有するものとし、アクセスユニットの各画像は、バッファリング期間SEIメッセージに関連付けられるものとする。
【0173】
bp_max_sub_layers_minus1+1は、バッファリング期間SEIメッセージでCPB除去遅延とCBP除去オフセットが示される時間サブレイヤの最大数を指定する。bp_max_sub_layers_minus1の値は、両端値を含めて、0からvps_max_sub_layers_minus1までの範囲にあるものとする。bp_cpb_cnt_minus1+1は、bp_nal_hrd_params_present_flagが1に等しい場合のi番目の時間サブレイヤのnal_initial_cpb_removal_delay[i][j]とnal_initial_cpb_removal_offset[i][j]のシンタックス要素ペアの数を指定し、bp_vcl_hrd_params_present_flagが1に等しい場合のi番目の時間サブレイヤのvcl_initial_cpb_removal_delay[i][j]とvcl_initial_cpb_removal_offset[i][j]のシンタックス要素ペアの数を指定する。bp_cpb_cnt_minus1の値は、両端値を含めて、0~31の範囲にあるものとする。bp_cpb_cnt_minus1の値は、hrd_cpb_cnt_minus1の値に等しいものとする。
【0174】
例示的な画像タイミングSEIメッセージのセマンティクスは、以下の通りである。画像タイミングSEIメッセージは、SEIメッセージに関連付けられたアクセスユニットのCPB除去遅延およびDPB出力遅延情報を提供する。現在のアクセスユニットに適用可能なバッファリング期間SEIメッセージのbp_nal_hrd_params_present_flagまたはbp_vcl_hrd_params_present_flagが1に等しい場合、変数CpbDpbDelaysPresentFlagは1に等しく設定される。そうでない場合、CpbDpbDelaysPresentFlagは0に等しく設定される。画像タイミングSEIメッセージの存在は、以下のように指定される。CpbDpbDelaysPresentFlagが1に等しい場合、画像タイミングSEIメッセージは、現在のアクセスユニットに関連付けられるものとする。そうでない場合(CpbDpbDelaysPresentFlagが0に等しい場合)、現在のアクセスユニットに関連付けられた画像タイミングSEIメッセージは存在しないものとする。画像タイミングSEIメッセージシンタックス中のTemporalIdは、画像タイミングSEIメッセージを含むSEI NALユニットのTemporalIdである。pt_max_sub_layers_minus1+1は、CPB除去遅延情報が画像タイミングSEIメッセージに含まれる最上位サブレイヤ表現のTemporalIdを指定する。pt_max_sub_layers_minus1の値は、両端値を含めて、0からvps_max_sub_layers_minus1までの範囲にあるものとする。
【0175】
例示的なスケーラブルネスティングSEIメッセージのセマンティクスは、以下の通りである。スケーラブルネスティングSEIメッセージは、SEIメッセージを、特定のOLSのコンテキスト内の特定のレイヤ、またはOLSのコンテキスト内にない特定のレイヤと関連付けるためのメカニズムを提供する。スケーラブルネスティングSEIメッセージは、1つまたは複数のSEIメッセージを含む。スケーラブルネスティングSEIメッセージに含まれるSEIメッセージは、スケーラブルネスト化SEIメッセージとも呼ばれる。ビットストリーム適合性の要件は、スケーラブルネスティングSEIメッセージ中にSEIメッセージを含めることに対して以下の制限が適用されることである。payloadTypeが132(復号画像ハッシュ)または133(スケーラブルネスティング)に等しいSEIメッセージは、スケーラブルネスティングSEIメッセージに含まれないものとする。スケーラブルネスティングSEIメッセージが、バッファリング期間、画像タイミング、または復号ユニット情報SEIメッセージを含む場合、スケーラブルネスティングSEIメッセージは、payloadTypeが0(バッファリング期間)、1(画像タイミング)、または130(復号ユニット情報)に等しくない任意の他のSEIメッセージを含まないものとする。
【0176】
ビットストリーム適合性の要件は、スケーラブルネスティングSEIメッセージを含むSEI NALユニットのnal_unit_typeの値に対して以下の制限が適用されることである。スケーラブルネスティングSEIメッセージが、payloadTypeが0(バッファリング期間)、1(画像タイミング)、130(復号ユニット情報)、145(従属RAP指示)、または168(フレームフィールド情報)に等しいSEIメッセージを含む場合、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、nal_unit_typeがPREFIX_SEI_NUTに等しいものとする。スケーラブルネスティングSEIメッセージが、payloadTypeが132(復号化画像ハッシュ)に等しいSEIメッセージを含む場合、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、nal_unit_typeがSUFFIX_SEI_NUTに等しいものとする。
【0177】
nesting_ols_flagを1に設定して、スケーラブルネスト化SEIメッセージが特定のOLSのコンテキストで特定のレイヤに適用されることを指定する。nesting_ols_flagを0に設定して、スケーラブルネスト化SEIメッセージが一般に(OLSのコンテキストではなく)特定のレイヤに適用されることを指定する。ビットストリーム適合性の要件は、以下の制限がnesting_ols_flagの値に適用されることである。スケーラブルネスティングSEIメッセージが、payloadTypeが0(バッファリング期間)、1(画像タイミング)、または130(復号ユニット情報)に等しいSEIメッセージを含む場合、nesting_ols_flagの値は1に等しいものとする。スケーラブルネスティングSEIメッセージが、payloadTypeがVclAssociatedSeiListの値に等しいSEIメッセージを含む場合、nesting_ols_flagの値は0に等しいものとする。nesting_num_olss_minus1+1は、スケーラブルネスト化SEIメッセージが適用されるOLSの数を指定する。nesting_num_olss_minus1の値は、両端値を含めて、0からTotalNumOlss-1までの範囲にあるものとする。nesting_ols_idx_delta_minus1[i]は、nesting_ols_flagが1に等しい場合にスケーラブルネスト化SEIメッセージが適用されるi番目のOLSのOLSインデックスを指定する変数NestingOlsIdx[i]を導出するために使用される。nesting_ols_idx_delta_minus1[i]の値は、両端値を含めて、0からTotalNumOlss-2までの範囲にあるものとする。変数NestingOlsIdx[i]は、以下のように導出される。
【数5】
【0178】
nesting_num_ols_layers_minus1[ i ]+1は、NestingOlsIdx[i]番目のOLSのコンテキストにおいてスケーラブルネスト化SEIメッセージが適用されるレイヤの数を指定する。nesting_num_ols_layers_minus1[i]の値は、両端値を含めて、0からNumLayersInOls[NestingOlsIdx[i]]-1までの範囲にあるものとする。nesting_ols_layer_idx_delta_minus1[i][j]は、nesting_ols_flagが1に等しい場合に、NestingOlsIdx[i]番目のOLSのコンテキストでてスケーラブルネスト化SEIメッセージが適用されるj番目のレイヤのOLSレイヤインデックスを指定する変数NestingOlsLayerIdx[i][j]を導出するために使用される。nesting_ols_layer_idx_delta_minus1[i]の値は、両端値を含めて、0からNumLayersInOls[nestingOlsIdx[i]]-2までの範囲にあるものとする。変数NestingOlsLayerIdx[i][j]は、以下のように導出される。
【数6】
【0179】
両端値を含めて、0からnesting_num_olss_minus1までの範囲のiについてLayerIdInOls[NestingOlsIdx[i]][NestingOlsLayerIdx[i][0]]のすべての値の中で最も小さい値は、現在のSEI NALユニット(スケーラブルネスティングSEIメッセージを含むSEI NALユニット)のnuh_layer_idに等しいものとする。nesting_all_layers_flagは、スケーラブルネスト化SEIメッセージが、nuh_layer_idが現在のSEI NALユニットのnuh_layer_id以上であるすべてのレイヤに一般的に適用されることを指定するために1に設定される。nesting_all_layers_flagは、スケーラブルネスト化SEIメッセージが、nuh_layer_idが現在のSEI NALユニットのnuh_layer_id以上であるすべてのレイヤに一般的に適用されてもされなくてもよいことを指定するために、0に設定される。nesting_num_layers_minus1+1は、スケーラブルネスト化SEIメッセージが一般的に適用されるレイヤの数を指定する。nesting_num_layers_minus1の値は、両端値を含めて、0からvps_max_layers_minus1-GeneralLayerIdx[nuh_layer_id]までの範囲にあるものとし、ここで、nuh_layer_idは、現在のSEI NALユニットのnuh_layer_idである。nesting_layer_id[i]は、nesting_all_layers_flagが0に等しい場合にスケーラブルネスト化SEIメッセージが一般的に適用されるi番目のレイヤのnuh_layer_id値を指定する。nesting_layer_id[i]の値は、nuh_layer_idよりも大きいものとし、ここで、nuh_layer_idは、現在のSEI NALユニットのnuh_layer_idである。nesting_ols_flagが0に等しい場合、スケーラブルネスト化SEIメッセージが一般的に適用されるレイヤの数を指定する変数NestingNumLayersと、スケーラブルネスト化SEIメッセージが一般的に適用されるレイヤのnuh_layer_id値のリストを指定する、両端値を含めて、0からNestingNumLayers-1までの範囲のiについてのリストNestingLayerId[i]とは、以下のように導出され、ここで、nuh_layer_idは、現在のSEI NALユニットのnuh_layer_idである。
【数7】
【0180】
nesting_num_seis_minus1+1は、スケーラブルネスト化SEIメッセージの数を指定する。nesting_num_seis_minus1の値は、両端値を含めて、0~63の範囲にあるものとする。nesting_0_bitは0に等しいものとする。
【0181】
図9は、例示的なビデオコーディング装置900の概略図である。ビデオコーディング装置900は、本明細書に記載される開示された実施例/実施形態を実施するのに適している。ビデオコーディング装置900は、下流ポート920、上流ポート950、ならびに/あるいは、ネットワークを介して上流および/または下流にデータを通信するための送信機および/または受信機を含むトランシーバユニット(Tx/Rx)910を備える。ビデオコーディング装置900はまた、データを処理するための論理ユニットおよび/または中央処理ユニット(CPU)を含むプロセッサ930と、データを記憶するためのメモリ932とを含む。ビデオコーディング装置900はまた、電気、光、またはワイヤレス通信ネットワークを介したデータの通信のために上流ポート950および/または下流ポート920に結合された電気、光-電気(OE)コンポーネント、電気-光(EO)コンポーネント、および/またはワイヤレス通信コンポーネントを備えることができる。ビデオコーディング装置900はまた、ユーザとの間でデータを通信するための入力および/または出力(I/O)デバイス960を含むことができる。I/Oデバイス960は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカなどの出力デバイスを含むことができる。I/Oデバイス960はまた、キーボード、マウス、トラックボールなどの入力デバイス、および/またはこのような出力デバイスと対話するための対応するインターフェースを含むことができる。
【0182】
プロセッサ930は、ハードウェアおよびソフトウェアによって実装される。プロセッサ930は、1つまたは複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装されてもよい。プロセッサ930は、下流ポート920、Tx/Rx910、上流ポート950、およびメモリ932と通信する。プロセッサ930は、コーディングモジュール914を備える。コーディングモジュール914は、マルチレイヤビデオシーケンス600、マルチレイヤビデオシーケンス700、および/またはビットストリーム800を採用することができる方法100、1000、および1100など、本明細書に記載される開示された実施形態を実装する。コーディングモジュール914はまた、本明細書に記載される任意の他の方法/メカニズムを実装することができる。さらに、コーディングモジュール914は、コーデックシステム200、エンコーダ300、デコーダ400、および/またはHRD500を実装することができる。例えば、コーディングモジュール914は、HRDを実装するために採用されてもよい。さらに、コーディングモジュール914は、パラメータをビットストリームに符号化するために採用され、HRD適合性チェックプロセスをサポートすることができる。したがって、コーディングモジュール914は、上述の問題のうちの1つまたは複数に対処するためのメカニズムを実行するように構成されてもよい。したがって、コーディングモジュール914は、ビデオデータをコーディングする際に、ビデオコーディング装置900に追加の機能および/またはコーディング効率を提供させる。したがって、コーディングモジュール914は、ビデオコーディング装置900の機能を向上させるとともに、ビデオコーディング技術に特有の問題にも対処する。さらに、コーディングモジュール914は、ビデオコーディング装置900の異なる状態への変換をもたらす。あるいは、コーディングモジュール914は、メモリ932に記憶された、プロセッサ930によって実行される命令として(例えば、非一過性媒体に記憶されたコンピュータプログラム製品として)実装することができる。
【0183】
メモリ932は、ディスク、テープドライブ、ソリッドステートドライブ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、ターナリ連想メモリ(TCAM)、スタティックランダムアクセスメモリ(SRAM)などの1つまたは複数のメモリタイプを備える。メモリ932は、オーバーフローデータ記憶デバイスとして使用され、プログラムが実行のために選択されるとそのようなプログラムを記憶し、プログラム実行中に読み取られる命令およびデータを記憶することができる。
【0184】
図10は、ビデオシーケンスをビットストリーム800などのビットストリームに符号化する例示的な方法1000のフローチャートであり、ビットストリーム内のすべてのレイヤは、CPB配信スケジュール561などの同じ数のCPB配信スケジュールを有する。方法1000は、方法100を実行する際に、コーデックシステム200、エンコーダ300、および/またはビデオコーディング装置900などのエンコーダによって採用されてもよい。さらに、方法1000は、HRD500上で動作することができ、したがって、マルチレイヤビデオシーケンス600および/または700に対して適合性試験を実行することができる。
【0185】
方法1000は、エンコーダがビデオシーケンスを受信し、例えばユーザ入力に基づいて、そのビデオシーケンスをマルチレイヤビットストリームに符号化することを決定したときに開始することができる。ステップ1001において、エンコーダは、レイヤN631、レイヤN+1 632、サブレイヤ710、サブレイヤ720、および/またはサブレイヤ730などの、1つまたは複数のレイヤのコード化画像を含むビットストリームを符号化する。いくつかの例では、複数のレイヤは、OLS625などの1つまたは複数のOLSに編成される。
【0186】
ステップ1003において、エンコーダは、HRDパラメータのシンタックス構造をビットストリームに符号化する。HRDパラメータのシンタックス構造は、シンタックス構造内のシンタックス要素に含まれてもよい1つまたは複数のHRDパラメータを含むデータオブジェクトである。HRDシンタックス構造のHRDパラメータは、複数のレイヤのすべてが同じ数のCPB配信スケジュールに関連付けられることを指定する。一例では、CPB配信スケジュールの数は、HRD CPBカウント-1(hrd_cpb_cnt_minus1)シンタックス要素で指定される。minus1は、hrd_cpb_cnt_minus1の値が示された値よりも1小さいこと、および真の値を得るために+1が加算されるべきであることを示す。hrd_cpb_cnt_minus1は、両端値を含めて、0~31までの範囲にあってもよい。これは、1~32個のCPB配信スケジュールが指定され得ること、およびすべてのレイヤが同じ数のCPB配信スケジュールに関連付けられることを示す。HRDパラメータのシンタックス構造は、OLSを指定するVPS内のビットストリームに符号化することができる。
【0187】
いくつかの例では、ターゲットOLSの各対応するCPB配信スケジュールは、一意のスケジュールインデックス(ScIdx)によって参照することができる。ScIdxは、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲の値を含むことができる。これは、ScIdxが、最初のCPB配信スケジュールに対する0の値から、最後のCPB配信スケジュールに対するhrd_cpb_cnt_minus1の値まで変化し得ることを示す。いくつかの例では、CPB配信スケジュールはそれぞれ、初期CPB除去遅延および初期CPB除去オフセットのペアによって記述される。初期CPB除去遅延(nal_initial_cpb_removal_delay)は、ビットストリーム、OLS、および/またはレイヤ内の画像、AU、および/またはDUをチェックする際にHRDのCPBからデータユニットを除去するときに使用されるデフォルトの除去遅延である。初期CPB除去オフセット(nal_initial_cpb_removal_offset)は、ビットストリーム、OLS、および/またはレイヤ中の各画像、AU、および/またはDUに関連付けられたデフォルトのCPB除去オフセットである。レイヤはまた、BP CPBカウント-1(bp_cpb_cnt_minus1)+1シンタックス要素に関連付けられてもよい。BP CPBカウント-1は、初期CPB除去遅延と初期CPB除去オフセットとのペアの数、したがって、各レイヤ/サブレイヤに利用可能な配信スケジュールの数を指定するシンタックス要素である。bp_cpb_cnt_minus1の値は、hrd_cpb_cnt_minus1の値と等しく設定されてもよい。これは、各レイヤに対する配信スケジュールの数がCPB配信スケジュールの数の総数と同じであることを保証する。したがって、すべてのレイヤは、同じ数のCPB配信スケジュールを有する。CPB配信スケジュールを記述するシンタックス要素は、SEIメッセージに含まれてもよい。例えば、nal_initial_cpb_removal_delay、nal_initial_cpb_removal_offset、およびbp_cpb_cnt_minus1は、BP SEIメッセージに含まれてもよい。
【0188】
ステップ1005において、HRDは、HRDパラメータのシンタックス構造からHRDパラメータを取得し、CPB配信スケジュールに基づいて複数のレイヤに対してビットストリーム適合性試験のセットを実行する。例えば、HRDは、hrd_cpb_cnt_minus1を取得して、CPB配信スケジュールの数を決定することができる。HRDはまた、bp_cpb_cnt_minus1を取得して、各レイヤのCPB配信スケジュールの数を決定することができる。HRDはまた、nal_initial_cpb_removal_delayおよびnal_initial_cpb_removal_offsetを取得して、CPB配信スケジュールのそれぞれを決定することができる。次いで、HRDは、CPB配信スケジュールに基づいて複数のレイヤに対して適合性試験を実行することができる。HRDは、エンコーダと同じプロセッサ上で動作することができる。別の例では、HRDは、エンコーダと同じシャーシ内のプロセッサ上で動作することができる。別の例では、HRDは、エンコーダと同じネットワーク内のプロセッサ上で動作することができる。
【0189】
ステップ1007において、エンコーダは、デコーダに向けて通信するためのビットストリームを記憶する。
【0190】
図11は、ビットストリーム800などのビットストリームからビデオシーケンスを復号する例示的な方法1100のフローチャートであり、ビットストリーム内のすべてのレイヤは、HRD500などのHRDによって適合性についてチェックされたときと同じ数のCPB配信スケジュール、例えばCPB配信スケジュール561を有する。方法1100は、方法100を実行する際に、コーデックシステム200、デコーダ400、および/またはビデオコーディング装置900などのデコーダによって採用されてもよい。さらに、方法1100は、マルチレイヤビデオシーケンス600および/または700を含むビットストリーム上で動作してもよい。
【0191】
方法1100は、デコーダが、例えば方法1000の結果として、マルチレイヤビデオシーケンスを表すコード化データのビットストリームを受信し始めるときに開始することができる。ステップ1101で、デコーダは、ビットストリームを受信することができる。ビットストリームは、HRDパラメータのシンタックス構造を含む。HRDパラメータのシンタックス構造は、シンタックス構造内のシンタックス要素に含まれてもよい1つまたは複数のHRDパラメータを含むデータオブジェクトである。ビットストリームはまた、レイヤN631、レイヤN+1 632、サブレイヤ710、サブレイヤ720、および/またはサブレイヤ730など、コード化画像の1つまたは複数のレイヤを含むことができる。いくつかの例では、複数のレイヤは、OLS625などの1つまたは複数のOLSに編成される。HRDパラメータは、複数のレイヤのすべてが同じ数のCPB配信スケジュールに関連付けられることを指定する。CPB配信スケジュールは、エンコーダ上で動作するHRDによって実行されるビットストリーム適合性試験のセットに関連付けられてもよい。HRDパラメータは、OLSを指定するVPSに含まれてもよい。一例では、CPB配信スケジュールの数は、HRD CPBカウント-1(hrd_cpb_cnt_minus1)シンタックス要素で指定される。minus1は、hrd_cpb_cnt_minus1の値が示された値よりも1小さいこと、および真の値を得るために+1が加算されるべきであることを示す。hrd_cpb_cnt_minus1は、両端値を含めて、0~31までの範囲にあってもよい。これは、1~32個のCPB配信スケジュールが指定され得ること、およびすべてのレイヤが同じ数のCPB配信スケジュールに関連付けられることを示す。
【0192】
いくつかの例では、ターゲットOLSの各対応するCPB配信スケジュールは、一意のスケジュールインデックス(ScIdx)によって参照することができる。ScIdxは、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲の値を含むことができる。これは、ScIdxが、最初のCPB配信スケジュールに対する0の値から、最後のCPB配信スケジュールに対するhrd_cpb_cnt_minus1の値まで変化し得ることを示す。いくつかの例では、CPB配信スケジュールはそれぞれ、初期CPB除去遅延および初期CPB除去オフセットのペアによって記述される。初期CPB除去遅延(nal_initial_cpb_removal_delay)は、ビットストリーム、OLS、および/またはレイヤ内の画像、AU、および/またはDUをチェックする際にHRDのCPBからデータユニットを除去するときに使用されるデフォルトの除去遅延である。初期CPB除去オフセット(nal_initial_cpb_removal_offset)は、ビットストリーム、OLS、および/またはレイヤ中の各画像、AU、および/またはDUに関連付けられたデフォルトのCPB除去オフセットである。各レイヤはまた、BP CPBカウント-1(bp_cpb_cnt_minus1)+1シンタックス要素に関連付けられてもよい。BP CPBカウント-1は、初期CPB除去遅延と初期CPB除去オフセットとのペアの数、したがって、各レイヤ/サブレイヤに利用可能な配信スケジュールの数を指定するシンタックス要素である。bp_cpb_cnt_minus1の値は、hrd_cpb_cnt_minus1の値と等しく設定されてもよい。これは、各レイヤに対する配信スケジュールの数がCPB配信スケジュールの数の総数と同じであることを保証する。したがって、すべてのレイヤは、同じ数のCPB配信スケジュールを有する。CPB配信スケジュールを記述するシンタックス要素は、SEIメッセージに含まれてもよい。例えば、nal_initial_cpb_removal_delay、nal_initial_cpb_removal_offset、およびbp_cpb_cnt_minus1は、BP SEIメッセージに含まれてもよい。
【0193】
ステップ1103において、デコーダは、レイヤおよび/またはOLSのうちの1つから画像/コード化画像を復号して、復号化画像を取得することができる。デコーダはまた、ステップ1105において、復号化画像を復号されたビデオシーケンスの一部として表示するために転送することができる。
【0194】
図12は、ビットストリーム内のすべてのレイヤが、CPB配信スケジュール561などの、同じ数のCPB配信スケジュールを有するビットストリームを使用してビデオシーケンスをコーディングするための例示的なシステム1200の概略図である。システム1200は、コーデックシステム200、エンコーダ300、デコーダ400、および/またはビデオコーディング装置900などのエンコーダおよびデコーダによって実装されてもよい。さらに、システム1200は、HRD500を採用して、マルチレイヤビデオシーケンス600、マルチレイヤビデオシーケンス700、および/またはビットストリーム800に対して適合性試験を実行することができる。加えて、システム1200は、方法100、1000、および/または1100を実装する際に採用されてもよい。
【0195】
システム1200は、ビデオエンコーダ1202を含む。ビデオエンコーダ1202は、コード化画像の1つまたは複数のレイヤを含むビットストリームを符号化するための符号化モジュール1203を備える。符号化モジュール1203はさらに、複数のレイヤのすべてが同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けられることを指定するHRDパラメータのシンタックス構造をビットストリームに符号化するためのものである。ビデオエンコーダ1202は、CPB配信スケジュールに基づいて複数のレイヤに対してビットストリーム適合性試験のセットを実行するためのHRDモジュール1205をさらに備える。ビデオエンコーダ1202は、デコーダに向けて通信するためのビットストリームを記憶するための記憶モジュール1206をさらに備える。ビデオエンコーダ1202は、ビットストリームをビデオデコーダ1210に向けて送信するための送信モジュール1207をさらに備える。ビデオエンコーダ1202は、方法1000のステップのいずれかを実行するようにさらに構成されてもよい。
【0196】
システム1200はまた、ビデオデコーダ1210を含む。ビデオデコーダ1210は、複数のレイヤのすべてがHRDパラメータのシンタックス構造によって指定されるのと同じ数のCPB配信スケジュールに関連付けられるように、HRDパラメータのシンタックス構造とコード化画像の1つまたは複数のレイヤとを備えるビットストリームを受信するための受信モジュール1211を備える。ビデオデコーダ1210は、レイヤのうちの1つから画像を復号して、復号化画像を取得するための復号モジュール1213をさらに備える。ビデオデコーダ1210は、復号化画像を復号されたビデオシーケンスの一部として表示するために転送するための転送モジュール1215をさらに備える。ビデオデコーダ1210は、方法1100のステップのいずれかを実行するようにさらに構成されてもよい。
【0197】
第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、または別の媒体を除いて、介在するコンポーネントがない場合、第1のコンポーネントは、第2のコンポーネントに直接結合される。第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、または別の媒体以外の介在するコンポーネントが存在する場合、第1のコンポーネントは、第2のコンポーネントに間接的に結合される。用語「結合された」およびその変形は、直接結合されたものおよび間接的に結合されたものの両方を含む。用語「約」の使用は、特に明記しない限り、後続する数の±10%を含む範囲を意味する。
【0198】
本明細書に記載される例示的な方法のステップは、必ずしも記載された順序で実行される必要はないことも理解されるべきであり、このような方法のステップの順序は、単なる例示であると理解されるべきである。同様に、本開示の様々な実施形態と一致する方法において、追加のステップがそのような方法に含まれてもよく、特定のステップが省略または組み合わされてもよい。
【0199】
本開示においていくつかの実施形態が提供されているが、開示されたシステムおよび方法は、本開示の精神または範囲から逸脱することなく、多くの他の特定の形態で具現化され得ることが理解され得る。本実施例は、例示であって限定的なものではないと考えられるべきであり、本発明は、本明細書で提供された詳細に限定されるべきではない。例えば、様々な要素またはコンポーネントは、別のシステムにおいて組み合わされるか、もしくは統合されてもよく、または特定の特徴が省略されるか、もしくは実装されなくてもよい。
【0200】
加えて、離散的または別個のものとして様々な実施形態において説明および図示された技術、システム、サブシステム、および方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技術、または方法と組み合わせられるか、または統合されてもよい。変更、置換、および代替の他の例は、当業者であれば確認可能であり、本明細書に開示される精神および範囲から逸脱することなく行うことができる。他の可能な請求項
(項目1)
デコーダによって実施される方法であって、
仮想参照デコーダ(HRD)パラメータのシンタックス構造と、コード化された画像の1つまたは複数のレイヤとを備えるビットストリームを、前記複数のレイヤのすべてが前記HRDパラメータのシンタックス構造によって指定されるのと同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けられるように、前記デコーダの受信機によって受信する段階と、
前記デコーダのプロセッサによって、前記複数のレイヤのうちの1つから画像を復号して、復号化画像を取得する段階と、
を含む、方法。
(項目2)
前記CPB配信スケジュールが、エンコーダ上で動作するHRDによって実行されるビットストリーム適合性試験のセットに関連付けられている、項目1に記載の方法。
(項目3)
CPB配信スケジュールの数が、HRD CPBカウント-1(hrd_cpb_cnt_minus1)で指定され、hrd_cpb_cnt_minus1が、両端値を含めて、0~31の範囲にある、項目1または2に記載の方法。
(項目4)
前記複数のレイヤが1つまたは複数の出力レイヤセット(OLS)に編成され、ターゲットOLSの対応するCPB配信スケジュールが、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲のスケジュールインデックス(ScIdx)によって参照される、項目1から3のいずれか一項に記載の方法。
(項目5)
前記CPB配信スケジュールのそれぞれが、ネットワーク抽象化レイヤ(NAL)初期CPB除去遅延(nal_initial_cpb_removal_delay)およびNAL初期CPB除去オフセット(nal_initial_cpb_removal_offset)によって記述される、項目1から4のいずれか一項に記載の方法。
(項目6)
各レイヤが、前記各レイヤのnal_initial_cpb_removal_delayとnal_initial_cpb_removal_offsetとのペアの数を指定するバッファリング期間(BP)CPBカウント-1(bp_cpb_cnt_minus1)+1に関連付けられ、bp_cpb_cnt_minus1が前記hrd_cpb_cnt_minus1の値に等しい、項目1から5のいずれか一項に記載の方法。
(項目7)
前記HRDパラメータが、前記複数のOLSを指定するビデオパラメータセット(VPS)内の前記ビットストリームに含まれる、項目1から6のいずれか一項に記載の方法。
(項目8)
エンコーダによって実施される方法であって、
前記エンコーダのプロセッサによって、コード化画像の1つまたは複数のレイヤを含むビットストリームを符号化する段階と、
前記プロセッサによって、前記複数のレイヤのすべてが同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けられることを指定する仮想参照デコーダ(HRD)パラメータのシンタックス構造を前記ビットストリームに符号化する段階と、
前記プロセッサによって、前記CPB配信スケジュールに基づいて前記複数のレイヤに対してビットストリーム適合性試験のセットを実行する段階と、
を含む、方法。
(項目9)
ビットストリーム適合性試験の前記セットが、前記プロセッサ上で動作するHRDによって実行される、項目8に記載の方法。
(項目10)
CPB配信スケジュールの数が、HRD CPBカウント-1(hrd_cpb_cnt_minus1)で指定され、hrd_cpb_cnt_minus1が、両端値を含めて、0~31の範囲にある、項目8または9に記載の方法。
(項目11)
前記複数のレイヤが1つまたは複数の出力レイヤセット(OLS)に編成され、ターゲットOLSの対応するCPB配信スケジュールが、両端値を含めて、0からhrd_cpb_cnt_minus1の値までの範囲のスケジュールインデックス(ScIdx)によって参照される、項目8から10のいずれか一項に記載の方法。
(項目12)
前記CPB配信スケジュールのそれぞれが、ネットワーク抽象化レイヤ(NAL)初期CPB除去遅延(nal_initial_cpb_removal_delay)およびNAL初期CPB除去オフセット(nal_initial_cpb_removal_offset)によって記述される、項目8から11のいずれか一項に記載の方法。
(項目13)
各レイヤが、前記各レイヤのnal_initial_cpb_removal_delayとnal_initial_cpb_removal_offsetとのペアの数を指定するバッファリング期間(BP)CPBカウント-1(bp_cpb_cnt_minus1)+1に関連付けられ、bp_cpb_cnt_minus1が前記hrd_cpb_cnt_minus1の値に等しい、項目8から12のいずれか一項に記載の方法。
(項目14)
前記HRDパラメータのシンタックス構造が、前記複数のOLSを指定するビデオパラメータセット(VPS)において前記ビットストリームに符号化される、項目8から13のいずれか一項に記載の方法。
(項目15)
ビデオコーディング装置であって、
プロセッサと、前記プロセッサに結合された受信機と、前記プロセッサに結合されたメモリと、前記プロセッサに結合された送信機とを備え、前記プロセッサ、受信機、メモリ、および送信機が、項目1から14のいずれか一項に記載の方法を実行するように構成されている、
ビデオコーディング装置。
(項目16)
ビデオコーディング装置が使用するためのコンピュータプログラム製品を備える非一過性コンピュータ可読媒体であって、前記コンピュータプログラム製品がプロセッサによって実行されると、前記ビデオコーディング装置に項目1から14のいずれか一項に記載の方法を実行させるように、前記非一過性コンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を備える、非一過性コンピュータ可読媒体。
(項目17)
デコーダであって、
仮想参照デコーダ(HRD)パラメータのシンタックス構造と、コード化された画像の1つまたは複数のレイヤとを備えるビットストリームを受信するための受信手段であり、前記複数のレイヤのすべてが、前記HRDパラメータのシンタックス構造によって指定されるのと同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けられるようにする、受信手段と、
前記複数のレイヤのうちの1つから画像を復号して、復号化画像を取得するための復号手段と、
前記復号化画像を復号されたビデオシーケンスの一部として表示するために転送するための転送手段と、
を備える、デコーダ。
(項目18)
前記デコーダが項目1~7のいずれか一項に記載の方法を実行するようにさらに構成されている、項目17に記載のデコーダ。
(項目19)
エンコーダであって、
コード化画像の1つまたは複数のレイヤを備えるビットストリームを符号化し、
前記複数のレイヤのすべてが同じ数のコード化画像バッファ(CPB)配信スケジュールに関連付けられることを指定する仮想参照デコーダ(HRD)パラメータのシンタックス構造を前記ビットストリームに符号化する、
ための符号化手段と、
前記CPB配信スケジュールに基づいて前記複数のレイヤに対してビットストリーム適合性試験のセットを実行するためのHRD手段と、
デコーダに向けて通信するための前記ビットストリームを記憶するための記憶手段と、
を備える、エンコーダ。
(項目20)
項目8から14のいずれか一項に記載の方法を実行するようにさらに構成されている、項目19に記載のエンコーダ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】