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

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

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

特許7419507OLSのためのスケーラブルネスティングSEIメッセージ
<>
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図1
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図2
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図3
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図4
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図5
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図6
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図7
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図8
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図9
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図10
  • 特許-OLSのためのスケーラブルネスティングSEIメッセージ 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-12
(45)【発行日】2024-01-22
(54)【発明の名称】OLSのためのスケーラブルネスティングSEIメッセージ
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240115BHJP
   H04N 19/30 20140101ALI20240115BHJP
【FI】
H04N19/70
H04N19/30
【請求項の数】 9
(21)【出願番号】P 2022518838
(86)(22)【出願日】2020-09-11
(65)【公表番号】
(43)【公表日】2022-12-05
(86)【国際出願番号】 US2020050395
(87)【国際公開番号】W WO2021061428
(87)【国際公開日】2021-04-01
【審査請求日】2022-04-25
(31)【優先権主張番号】62/905,143
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ワン、イエ-クイ
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】米国特許出願公開第2015/0264404(US,A1)
【文献】米国特許出願公開第2019/0253726(US,A1)
【文献】特表2017-525215(JP,A)
【文献】国際公開第2015/137432(WO,A1)
【文献】CHEN, Jianle et al.,Preliminary Version of High Efficiency Video Coding (HEVC) Scalable Extension Draft 7,JCTVC-R1008 (version 1),ITU,2014年07月10日,pp.145-147, 156,JCTVC-R1008_v1.docx
【文献】WANG, Ye-Kui,AHG8: Scalability - Output Layer Sets,JVET-P0115 (version 1),ITU,2019年09月25日,pp.431, 432, 442, 443,[online],[retrieved on 2023-06-21],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0115-v1.zip>,JVET-P0115-v1_SpecText.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーダによって実装される方法であって、
前記デコーダの受信機によって、1つまたは複数のレイヤおよびスケーラブルネスティング補足拡張情報(SEI)メッセージを含むビットストリームを受信する段階であって、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、受信する段階と、
前記デコーダのプロセッサによって、前記スケーラブルネスティングされたSEIメッセージに基づいて、前記1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成する段階と
を備え
前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSに適用されることを指定する場合、1に設定され、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のレイヤに適用されることを指定する場合、0に設定され、前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に設定される場合、スケーラブルネスティングOLS数マイナス1(num_olss_minus1)シンタックス要素を含み、前記スケーラブルネスティングnum_olss_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定し、前記スケーラブルネスティングnum_olss_minus1シンタックス要素の値は、0~OLSの総数(TotalNumOlss)-1(両端を含む)の範囲内にあり、前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に等しい場合、前記スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用されるスケーラブルネスティングOLSデルタマイナス1(ols_idx_delta_minus1[i])シンタックス要素を含み、前記スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値は、0~前記TotalNumOlss-2まで(両端を含む)の範囲内にある、方法。
【請求項2】
前記スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報であるSEIメッセージを含む場合、前記スケーラブルネスティングOLSフラグは、1に設定される、請求項1に記載の方法。
【請求項3】
以下のようにNestingOlsIdx[i]を導出する段階をさらに含む、
【数11】
請求項1または2に記載の方法。
【請求項4】
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが0に設定される場合、スケーラブルネスティングレイヤマイナスnum_layers_minus1)ンタックス要素を含み、前記スケーラブルネスティングnum_layers_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定する、請求項1~のいずれか一項に記載の方法。
【請求項5】
プロセッサと、前記プロセッサに結合された受信機と、前記プロセッサに結合されたメモリと、前記プロセッサに結合された送信機とを備え、前記プロセッサ、前記受信機、前記メモリ、および前記送信機は、請求項1~のいずれか一項に記載の方法を実行するように構成される、ビデオコーディングデバイス。
【請求項6】
ビデオコーディングデバイスによる使用のための実行可能命令を含む非一時的コンピュータ可読媒体であって、プロセッサによって実行された場合、前記ビデオコーディングデバイスに請求項1~のいずれか一項に記載の方法を実行させるように、前記実行可能命令が前記非一時的コンピュータ可読媒体に記憶された、非一時的コンピュータ可読媒体。
【請求項7】
1つまたは複数のレイヤおよびスケーラブルネスティング補足拡張情報(SEI)メッセージを含むビットストリームを受信する受信手段であって、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、受信手段と、
前記スケーラブルネスティングされたSEIメッセージに基づいて、前記1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成するデコード手段と、
デコードされたビデオシーケンスの一部として表示するために前記デコードされたピクチャを転送する転送手段と
を備え
前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSに適用されることを指定する場合、1に設定され、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のレイヤに適用されることを指定する場合、0に設定され、前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に設定される場合、スケーラブルネスティングOLS数マイナス1(num_olss_minus1)シンタックス要素を含み、前記スケーラブルネスティングnum_olss_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定し、前記スケーラブルネスティングnum_olss_minus1シンタックス要素の値は、0~OLSの総数(TotalNumOlss)-1(両端を含む)の範囲内にあり、前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に等しい場合、前記スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用されるスケーラブルネスティングOLSデルタマイナス1(ols_idx_delta_minus1[i])シンタックス要素を含み、前記スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値は、0~前記TotalNumOlss-2まで(両端を含む)の範囲内にある、デコーダ。
【請求項8】
前記デコーダは、請求項のいずれか一項に記載の方法を実行するようにさらに構成される、請求項に記載のデコーダ。
【請求項9】
請求項1~のいずれか一項に記載の方法をコンピュータに実行させるように構成された媒体に記憶されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、参照により本明細書に組み込まれる、Ye-Kui Wangによって2019年9月24日に出願され、「Scalable Nesting of SEI Messages for Output Layer Sets」と題する、米国仮特許出願第62/905,143号の利益を主張する。
【0002】
本開示は、一般に、ビデオコーディングに関し、具体的には、マルチレイヤビットストリームにおける出力レイヤセット(OLS)へのエンコードレイヤを支持するために使用されるスケーラブルネスティング補足拡張情報(SEI)メッセージに関する。
【背景技術】
【0003】
比較的短いビデオであっても描写するのに必要なビデオデータの量は、かなり多くなる可能性があり、これは、データが限られた帯域幅容量を有する通信ネットワークを介してストリーミングまたは通信される場合に困難をもたらす可能性がある。したがって、ビデオデータは、一般に、今日の電気通信ネットワークを介して通信される前に圧縮される。メモリリソースが制限される可能性があるため、ビデオが記憶デバイスに記憶される場合、ビデオのサイズも問題になる可能性がある。ビデオ圧縮デバイスは、送信または記憶の前にビデオデータをコーディングするためにソースでソフトウェアおよび/またはハードウェアを使用することが多く、それによって、デジタルビデオ画像を表すために必要なデータの量を減少させる。次いで、圧縮データは、ビデオデータをデコードするビデオ解凍デバイスによって宛先で受信される。ネットワークリソースが限られており、高いビデオ品質への要求がますます高まっているため、画質をほとんどまたはまったく犠牲にすることなく圧縮率を改善する、改善された圧縮および解凍技術が望ましい。
【発明の概要】
【課題を解決するための手段】
【0004】
一実施形態では、本開示は、デコーダによって実装される方法であって、デコーダの受信機によって、1つまたは複数のレイヤおよびスケーラブルネスティング補足拡張情報(SEI)メッセージを含むビットストリームを受信する段階であって、スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、受信する段階と、デコーダのプロセッサによって、スケーラブルネスティングされたSEIメッセージに基づいて、1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成する段階と、を含む、方法を含む。
【0005】
いくつかのビデオコーディングシステムは、SEIメッセージを使用する。SEIメッセージは、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を含む。例えば、SEIメッセージは、標準に適合しているかどうかについてビットストリームをチェックするために使用されるパラメータを含み得る。仮想参照デコーダ(HRD)は、標準適合性についてビットストリームをチェックする方法を決定するためにSEIメッセージを読み取り得る。このようなシステムは、レイヤに関連するデータと、レイヤを含むOLSに関連するデータとのために、別々のタイプのSEIメッセージを使用し得る。これは、複雑かつ冗長なシステムをもたらす場合がある。本例は、レイヤまたはOLSのいずれかに関連するパラメータを含むように構成されたスケーラブルネスティングSEIメッセージを含む。例えば、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含み得、これは、スケーラブルネスティングSEIメッセージがレイヤに関連するパラメータを含む、またはOLSに関連するパラメータを含むかどうかを示すように設定され得る。スケーラブルネスティングSEIメッセージはまた、レイヤまたはOLSに関連する1つまたは複数のスケーラブルネスティングされたSEIメッセージを含み得る。スケーラブルネスティングSEIメッセージがOLSに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたOLSの数を指示するフラグと、OLSをスケーラブルネスティングされたSEIメッセージに関連付けるためのOLSインデックスを指示するフラグとを含む。スケーラブルネスティングSEIメッセージがレイヤに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたレイヤの数を指示するフラグと、レイヤをスケーラブルネスティングされたSEIメッセージに関連付けるためのレイヤ識別子(ID)を指示するフラグとを含む。このようにして、SEIメッセージタイプの数を低減することができ、これは複雑度を減少させ、メッセージタイプの総数を減少させる。これにより、各タイプのメッセージを識別するために使用されるメッセージIDデータの長さが低減される。その結果、コーディング効率が向上し、エンコーダおよびデコーダの両方でのプロセッサ、メモリ、および/またはネットワークシグナリングリソースの使用は低減される。
【0006】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージが特定のOLSに適用されることを指定する場合、1に設定され、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージが特定のレイヤに適用されることを指定する場合、0に設定されることを提供する。
【0007】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報であるSEIメッセージを含む場合、スケーラブルネスティングOLSフラグが、1に設定されることを提供する。
【0008】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、スケーラブルネスティングOLSフラグが1に設定される場合、OLSのスケーラブルネスティング数から1を引いた数(num_olss_minus1)のシンタックス要素を含み、スケーラブルネスティングnum_olss_minus1シンタックス要素が、スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定し、スケーラブルネスティングnum_olss_minus1シンタックス要素の値が、0~OLSの総数(TotalNumOlss)-1(両端を含む)の範囲内にあることを提供する。
【0009】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、スケーラブルネスティングOLSフラグが1に等しい場合、スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用されるスケーラブルネスティングOLSデルタから1を引いた数(ols_idx_delta_minus1[i])のシンタックス要素を含み、スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値が、0~TotalNumOlss-2(両端を含む)までの範囲内にあることを提供する。
【0010】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、以下のようにNestingOlsIdx[i]を導出する段階をさらに含むことを提供する。
【数1】
【0011】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、スケーラブルネスティングOLSフラグが0に設定される場合、レイヤのスケーラブルネスティング数から1を引いた数(num_layers_minus1)のシンタックス要素を含み、スケーラブルネスティングnum_layers_minus1シンタックス要素が、スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定することを提供する。
【0012】
一実施形態では、本開示は、エンコーダによって実装される方法であって、エンコーダのプロセッサによって、1つまたは複数のレイヤを含むビットストリームをエンコードする段階と、プロセッサによって、スケーラブルネスティングSEIメッセージをビットストリームにエンコードする段階であって、スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティングOLSフラグを含み、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、エンコードする段階と、プロセッサによって、スケーラブルネスティングSEIメッセージに基づいて、ビットストリーム適合性試験のセットを実行する段階と、プロセッサに結合されたメモリによって、デコーダに向けて通信するためのビットストリームを記憶する段階と、を含む、方法を含む。
【0013】
いくつかのビデオコーディングシステムは、SEIメッセージを使用する。SEIメッセージは、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を含む。例えば、SEIメッセージは、標準に適合しているかどうかについてビットストリームをチェックするために使用されるパラメータを含み得る。HRDは、標準適合性についてビットストリームをチェックする方法を決定するためにSEIメッセージを読み取り得る。このようなシステムは、レイヤに関連するデータと、レイヤを含むOLSに関連するデータとのために、別々のタイプのSEIメッセージを使用し得る。これは、複雑かつ冗長なシステムをもたらす場合がある。本例は、レイヤまたはOLSのいずれかに関連するパラメータを含むように構成されたスケーラブルネスティングSEIメッセージを含む。例えば、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含み得、これは、スケーラブルネスティングSEIメッセージがレイヤに関連するパラメータを含む、またはOLSに関連するパラメータを含むかどうかを示すように設定され得る。スケーラブルネスティングSEIメッセージはまた、レイヤまたはOLSに関連する1つまたは複数のスケーラブルネスティングされたSEIメッセージを含み得る。スケーラブルネスティングSEIメッセージがOLSに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたOLSの数を指示するフラグと、OLSをスケーラブルネスティングされたSEIメッセージに関連付けるためのOLSインデックスを指示するフラグとを含む。スケーラブルネスティングSEIメッセージがレイヤに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたレイヤの数を指示するフラグと、レイヤをスケーラブルネスティングされたSEIメッセージに関連付けるためのレイヤIDを指示するフラグとを含む。このようにして、SEIメッセージタイプの数を低減することができ、これは複雑度を減少させ、メッセージタイプの総数を減少させる。これにより、各タイプのメッセージを識別するために使用されるメッセージIDデータの長さが低減される。その結果、コーディング効率が向上し、エンコーダおよびデコーダの両方でのプロセッサ、メモリ、および/またはネットワークシグナリングリソースの使用は低減される。
【0014】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージが特定のOLSに適用されることを指定する場合、1に設定され、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージが特定のレイヤに適用されることを指定する場合、0に設定されることを提供する。
【0015】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報であるSEIメッセージを含む場合、スケーラブルネスティングOLSフラグが、1に設定されることを提供する。
【0016】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、スケーラブルネスティングOLSフラグが1に設定される場合、スケーラブルネスティングnum_olss_minus1シンタックス要素を含み、スケーラブルネスティングnum_olss_minus1シンタックス要素が、スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定し、スケーラブルネスティングnum_olss_minus1シンタックス要素の値が、0~TotalNumOlss-1(両端を含む)の範囲内にあることを提供する。
【0017】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、スケーラブルネスティングOLSフラグが1に等しい場合、スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するNestingOlsIdx[i]を導出するために使用されるスケーラブルネスティングols_idx_delta_minus1[i]のシンタックス要素を含み、スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値が、0~TotalNumOlss-2(両端を含む)までの範囲内にあることを提供する。
【0018】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、以下のようにNestingOlsIdx[i]を導出する段階をさらに含むことを提供する。
【数2】
【0019】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、スケーラブルネスティングSEIメッセージが、スケーラブルネスティングOLSフラグが0に設定される場合、スケーラブルネスティングnum_layers_minus1のシンタックス要素を含み、スケーラブルネスティングnum_layers_minus1シンタックス要素が、スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定することを提供する。
【0020】
一実施形態では、本開示は、プロセッサと、プロセッサに結合された受信機と、プロセッサに結合されたメモリと、プロセッサに結合された送信機とを備え、プロセッサ、受信機、メモリ、および送信機は、前述の態様のいずれかに記載の方法を実行するように構成される、ビデオコーディングデバイスを含む。
【0021】
一実施形態では、本開示は、ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を含む非一時的コンピュータ可読媒体であって、プロセッサによって実行された場合、ビデオコーディングデバイスに前述の態様のいずれかに記載の方法を実行させるように、コンピュータプログラム製品は、非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体を含む。
【0022】
一実施形態では、本開示は、1つまたは複数のレイヤおよびスケーラブルネスティングSEIメッセージを含むビットストリームを受信する受信手段であって、スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティングOLSフラグを含み、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、受信手段と、スケーラブルネスティングされたSEIメッセージに基づいて、1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成するデコード手段と、デコードされたビデオシーケンスの一部として表示するためにデコードされたピクチャを転送する転送手段とを備えるデコーダを含む。
【0023】
いくつかのビデオコーディングシステムは、SEIメッセージを使用する。SEIメッセージは、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を含む。例えば、SEIメッセージは、標準に適合しているかどうかについてビットストリームをチェックするために使用されるパラメータを含み得る。HRDは、標準適合性についてビットストリームをチェックする方法を決定するためにSEIメッセージを読み取り得る。このようなシステムは、レイヤに関連するデータと、レイヤを含むOLSに関連するデータとのために、別々のタイプのSEIメッセージを使用し得る。これは、複雑かつ冗長なシステムをもたらす場合がある。本例は、レイヤまたはOLSのいずれかに関連するパラメータを含むように構成されたスケーラブルネスティングSEIメッセージを含む。例えば、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含み得、これは、スケーラブルネスティングSEIメッセージがレイヤに関連するパラメータを含む、またはOLSに関連するパラメータを含むかどうかを示すように設定され得る。スケーラブルネスティングSEIメッセージはまた、レイヤまたはOLSに関連する1つまたは複数のスケーラブルネスティングされたSEIメッセージを含み得る。スケーラブルネスティングSEIメッセージがOLSに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたOLSの数を指示するフラグと、OLSをスケーラブルネスティングされたSEIメッセージに関連付けるためのOLSインデックスを指示するフラグとを含む。スケーラブルネスティングSEIメッセージがレイヤに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたレイヤの数を指示するフラグと、レイヤをスケーラブルネスティングされたSEIメッセージに関連付けるためのレイヤIDを指示するフラグとを含む。このようにして、SEIメッセージタイプの数を低減することができ、これは複雑度を減少させ、メッセージタイプの総数を減少させる。これにより、各タイプのメッセージを識別するために使用されるメッセージIDデータの長さが低減される。その結果、コーディング効率が向上し、エンコーダおよびデコーダの両方でのプロセッサ、メモリ、および/またはネットワークシグナリングリソースの使用は低減される。
【0024】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、デコーダが、前述した態様のいずれかの方法を実行するようにさらに構成されることを提供する。
【0025】
一実施形態では、本開示は、エンコード手段であって、1つまたは複数のレイヤを含むビットストリームをエンコードする段階と、スケーラブルネスティングSEIメッセージをビットストリームにエンコードする段階であって、スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティングOLSフラグを含み、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、エンコードする段階と、のためのエンコード手段と、スケーラブルネスティングSEIメッセージに基づいて、ビットストリーム適合性試験のセットを実行するHRD手段と、デコーダに向けて通信するためのビットストリームを記憶する記憶手段と、を含む、エンコーダを含む。
【0026】
いくつかのビデオコーディングシステムは、SEIメッセージを使用する。SEIメッセージは、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を含む。例えば、SEIメッセージは、標準に適合しているかどうかについてビットストリームをチェックするために使用されるパラメータを含み得る。HRDは、標準適合性についてビットストリームをチェックする方法を決定するためにSEIメッセージを読み取り得る。このようなシステムは、レイヤに関連するデータと、レイヤを含むOLSに関連するデータとのために、別々のタイプのSEIメッセージを使用し得る。これは、複雑かつ冗長なシステムをもたらす場合がある。本例は、レイヤまたはOLSのいずれかに関連するパラメータを含むように構成されたスケーラブルネスティングSEIメッセージを含む。例えば、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含み得、これは、スケーラブルネスティングSEIメッセージがレイヤに関連するパラメータを含む、またはOLSに関連するパラメータを含むかどうかを示すように設定され得る。スケーラブルネスティングSEIメッセージはまた、レイヤまたはOLSに関連する1つまたは複数のスケーラブルネスティングされたSEIメッセージを含み得る。スケーラブルネスティングSEIメッセージがOLSに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたOLSの数を指示するフラグと、OLSをスケーラブルネスティングされたSEIメッセージに関連付けるためのOLSインデックスを指示するフラグとを含む。スケーラブルネスティングSEIメッセージがレイヤに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたレイヤの数を指示するフラグと、レイヤをスケーラブルネスティングされたSEIメッセージに関連付けるためのレイヤIDを指示するフラグとを含む。このようにして、SEIメッセージタイプの数を低減することができ、これは複雑度を減少させ、メッセージタイプの総数を減少させる。これにより、各タイプのメッセージを識別するために使用されるメッセージIDデータの長さが低減される。その結果、コーディング効率が向上し、エンコーダおよびデコーダの両方でのプロセッサ、メモリ、および/またはネットワークシグナリングリソースの使用は低減される。
【0027】
任意に、前述した態様のいずれかにおいて、態様の別の実装は、エンコーダが、前述した態様のいずれかの方法を実行するようにさらに構成されることを提供する。
【0028】
明確にするために、前述の実施形態のいずれか1つを他の前述の実施形態のうちいずれか1つまたは複数と組み合わせて、本開示の範囲内の新しい実施形態を作成することができる。
【0029】
これらおよび他の特徴は、添付の図面および特許請求の範囲と併せて以下の詳細な説明からより明確に理解されるであろう。
【図面の簡単な説明】
【0030】
本開示をより完全に理解するために、添付の図面および詳細な説明に関連して以下の簡単な説明を参照するが、同様の参照番号は同様の部分を表す。
【0031】
図1】ビデオ信号をコーディングする例示的な方法のフローチャートである。
【0032】
図2】ビデオコーディングのための例示的なコーディングおよびデコード(コーデック)システムの概略図である。
【0033】
図3】例示的なビデオエンコーダを示す概略図である。
【0034】
図4】例示的なビデオデコーダを示す概略図である。
【0035】
図5】例示的な仮想参照デコーダ(HRD)を示す概略図である。
【0036】
図6】レイヤ間予測のために構成された例示的なマルチレイヤビデオシーケンスを示す概略図である。
【0037】
図7】例示的なビットストリームを示す概略図である。
【0038】
図8】例示的なビデオコーディングデバイスを示す概略図である。
【0039】
図9】スケーラブルネスティングSEIメッセージを含むビットストリームにビデオシーケンスをエンコードする例示的な方法のフローチャートである。
【0040】
図10】スケーラブルネスティングSEIメッセージを含むビットストリームからビデオシーケンスをデコードする例示的な方法のフローチャートである。
【0041】
図11】スケーラブルネスティングSEIメッセージを含むビットストリームを使用して、ビデオシーケンスをコーディングする例示的なシステムの概略図である。
【発明を実施するための形態】
【0042】
最初に、1つまたは複数の実施形態の例示的な実装が以下に提供されるが、開示されたシステムおよび/または方法は、現在知られているかまたは存在しているかにかかわらず、任意の数の技術を使用して実装され得ることを理解されたい。本開示は、本明細書に示され説明される例示的な設計および実装を含む、以下に示される例示的な実装、図面、および技術に決して限定されるべきではなく、それらの均等物の全範囲と共に添付の特許請求の範囲内で修正することができる。
【0043】
以下の用語は、本明細書で反対の文脈で使用されない限り、以下のように定義される。具体的には、以下の定義は、本開示をさらに明確にすることを意図している。しかしながら、用語は、異なる文脈において異なって記載され得る。したがって、以下の定義は、補足と見なされるべきであり、本明細書においてそのような用語について提供される説明の任意の他の定義を限定すると見なされるべきではない。
【0044】
ビットストリームは、エンコーダとデコーダとの間の送信のために圧縮されたビデオデータを含む一連のビットである。エンコーダは、エンコード処理を使用して、ビデオデータをビットストリームに圧縮するように構成されたデバイスである。デコーダは、デコード処理を使用して、表示用のビットストリームからビデオデータを再構成するように構成されたデバイスである。ピクチャは、フレームまたはそのフィールドを生成する輝度サンプルのアレイおよび/または彩度サンプルのアレイである。説明を明確にするために、エンコードまたはデコードされているピクチャを現在のピクチャと呼ぶことができる。コーディングされたピクチャは、アクセスユニット(AU)内のNALユニットヘッダレイヤ識別子(nuh_layer_id)の特定の値を有するビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを備え、ピクチャのすべてのコーディングツリーユニット(CTU)を含むピクチャのコーディングされた表現である。デコードされたピクチャは、コーディングされたピクチャにデコード処理を適用することによって生成されたピクチャである。NALユニットは、生バイトシーケンスペイロード(RBSP)、データのタイプの指示の形式のデータを含むシンタックス構造であり、エミュレーション防止バイトを用いて必要に応じて散在する。VCL NALユニットは、ピクチャのコーディングされたスライスなどのビデオデータを含むようにコーディングされたNALユニットである。非VCL NALユニットは、ビデオデータのデコード、適合性チェックの実行、または他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニットである。レイヤは、レイヤ識別子(ID)によって示されるように、指定された特性(例えば、共通解像度、フレームレート、画像サイズなど)および関連付けられた非VCL NALユニットを共有するVCL NALユニットのセットである。NALユニットヘッダレイヤ識別子(nuh_layer_id)は、NALユニットを含むレイヤの識別子を指定するシンタックス要素である。ビデオパラメータセット(VPS)は、ビデオ全体に関するパラメータを含むデータユニットである。コーディングされたビデオシーケンスは、1つまたは複数のコーディングされたピクチャのセットである。デコードされたビデオシーケンスは、1つまたは複数のデコードされたピクチャのセットである。
【0045】
出力レイヤセット(OLS)は、1つまたは複数のレイヤが出力レイヤとして指定されるレイヤのセットである。出力レイヤは、出力(例えば、ディスプレイに)のために指定されるレイヤである。OLSインデックスは、対応するOLSを一意に識別するインデックスである。仮想参照デコーダ(HRD)は、エンコード処理によって生成されたビットストリームの変動性をチェックして指定された制約との適合性を検証するエンコーダ上で動作するデコーダモデルである。ビットストリーム適合性試験は、エンコードビットストリームが多用途ビデオコーディング(Versatile Video Coding、VVC)などの標準に準拠しているかどうかを決定するための試験である。HRDパラメータは、HRDの動作条件を初期化および/または定義するシンタックス要素である。HRDパラメータは、補足拡張情報(SEI)メッセージに含まれ得る。SEIメッセージは、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を伝達する指定されたセマンティクスを有するシンタックス構造である。スケーラブルネスティングSEIメッセージは、1つもしくは複数のOLSまたは1つもしくは複数のレイヤに対応する複数のSEIメッセージを含むメッセージである。バッファリング期間(BP)SEIメッセージは、コーディングされたピクチャバッファ(CPB)を管理するためにHRDを初期化するためのHRDパラメータを含むSEIメッセージである。ピクチャタイミング(PT)SEIメッセージは、CPBおよび/またはデコードされたピクチャバッファ(DPB)におけるアクセスユニット(AU)のための配信情報を管理するためのHRDパラメータを含むSEIメッセージである。デコードユニット情報(DUI)SEIメッセージは、CPBおよび/またはDPBにおけるDUのための配信情報を管理するためのHRDパラメータを含むSEIメッセージである。
【0046】
スケーラブルネスティングSEIメッセージは、スケーラブルネスティングされたSEIメッセージのセットを含む。スケーラブルネスティングされたSEIメッセージは、スケーラブルネスティングSEIメッセージ内にネスティングされたSEIメッセージである。フラグは、2つの可能な値:0および1のうちの1つをとることができる変数またはシングルビットシンタックス要素である。スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが、特定のOLSまたは特定のレイヤに適用されるかどうかを指定するフラグである。OLSのスケーラブルネスティング数から1を引いた数(num_olss_minus1)は、スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定するシンタックス要素である。OLSの総数から1を引いた数(TotalNumOlss-1)は、VPSで指定されたOLSの総数を指定するシンタックス要素である。スケーラブルネスティングOLSデルタから1を引いた数(ols_idx_delta_minus1[i])は、ネスティングOLSインデックスを導出するのに十分なデータを含むシンタックス要素である。ネスティングOLSインデックス(NestingOlsIdx)は、スケーラブルネスティングされたSEIメッセージが適用されるOLSのOLSインデックスを指定するシンタックス要素である。レイヤのスケーラブルネスティング数から1を引いた数(num_layers_minus1)は、スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定するシンタックス要素である。スケーラブルネスティングレイヤid(layer_id[i])は、スケーラブルネスティングされたSEIメッセージが適用されるi番目のレイヤのnuh_layer_id値を指定するシンタックス要素である。
【0047】
本明細書では、以下の頭字語、つまり、アクセスユニット(AU)、コーディングツリーブロック(Coding Tree Block、CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、コーディングレイヤビデオシーケンス(CLVS)、コーディングレイヤビデオシーケンス開始(CLVSS)、コーディングされたビデオシーケンス(CVS)、コーディングされたビデオシーケンス開始(CVSS)、ジョイントビデオエキスパートチーム(JVET)、動き制約タイルセット(MCTS)、最大転送ユニット(MTU)、ネットワーク抽象化レイヤ(NAL)、出力レイヤセット(OLS)、ピクチャ順序カウント(POC)、ランダムアクセスポイント(RAP)、生バイトシーケンスペイロード(RBSP)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、多用途ビデオコーディング(VVC)が使用される。
【0048】
データの損失を最小限に抑えながらビデオファイルのサイズを縮小するために、多くのビデオ圧縮技術を使用することができる。例えば、ビデオ圧縮技術は、ビデオシーケンスにおけるデータ冗長性を低減または除去するために、空間(例えば、イントラピクチャ)予測および/または時間(例えば、インターピクチャ)予測を実行することを含み得る。ブロックベースビデオコーディングの場合、ビデオスライス(例えば、ビデオピクチャまたはビデオピクチャの一部)は、ビデオブロックに分割され得、これは、ツリーブロック、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードとも呼ばれ得る。ピクチャのイントラコーディングされた(I)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測を使用してコーディングされる。ピクチャのインターコーディングされた一方向予測(P)または双方向予測(B)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測または他の参照ピクチャ内の参照サンプルに対する時間予測を使用することによってコーディングされ得る。ピクチャは、フレームおよび/または画像と呼ばれる場合があり、参照ピクチャは、参照フレームおよび/または参照画像と呼ばれる場合がある。空間または時間予測は、画像ブロックを表す予測ブロックをもたらす。残差データは、元の画像ブロックと予測ブロックとの間の画素差を表す。したがって、インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックおよびコーディングされたブロックと予測ブロックとの間の差を示す残差データを指す動きベクトルに従ってエンコードされる。イントラコーディングされたブロックは、イントラコーディングモードおよび残差データに従ってエンコードされる。さらなる圧縮のために、残差データは、画素ドメインから変換ドメインに変換され得る。これらは、量子化され得る残差変換係数をもたらす。量子化された変換係数は、最初に2次元アレイに配置されてもよい。量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査され得る。エントロピーコーディングは、さらに多くの圧縮を達成するために適用され得る。そのようなビデオ圧縮技術は、以下により詳細に説明される。
【0049】
エンコードされたビデオを正確にデコードできるようにするために、ビデオは、対応するビデオコーディング標準に従ってエンコードおよびデコードされる。ビデオコーディング標準には、国際電気通信連合(ITU)標準化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)Motion Picture Experts Group(MPEG)-1 Part 2、ITU-T H.262またはISO/IEC MPEG-2 Part 2、ITU-T H.263、ISO/IEC MPEG-4 Part 2、ITU-T H.264またはISO/IEC MPEG-4 Part 10としても知られる高度ビデオコーディング(AVC)、およびITU-T H.265またはMPEG-H Part 2としても知られる高効率ビデオコーディング(HEVC)が含まれる。AVCは、スケーラブルビデオコーディング(Scalable Video Coding、SVC)、マルチビュービデオコーディング(Multiview Video Coding、MVC)およびマルチビュービデオコーディングプラス深度(Multiview Video Coding plus Depth、MVC+D)、ならびに3次元(3D)AVC(3D-AVC)などの拡張を含む。HEVCは、スケーラブルHEVC(SHVC)、マルチビューHEVC(MV-HEVC)、および3D HEVC(3D-HEVC)などの拡張を含む。ITU-TおよびISO/IECのjoint video experts team(JVET)は、多用途ビデオコーディング(VVC)と呼ばれるビデオコーディング標準の開発を開始した。VVCは、JVET-O2001-v14を含むワーキングドラフト(Working Draft、WD)に含まれる。
【0050】
いくつかのビデオコーディングシステムは、補足拡張情報(SEI)メッセージを用いる。SEIメッセージは、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を含む。例えば、SEIメッセージは、標準に適合しているかどうかについてビットストリームをチェックするために使用されるパラメータを含み得る。仮想参照デコーダ(HRD)は、標準適合性についてビットストリームをチェックする方法を決定するためにSEIメッセージを読み取り得る。このようなシステムは、レイヤに関連するデータと、レイヤを含む出力レイヤセット(OLS)に関連するデータとのために、別々のタイプのSEIメッセージを使用し得る。これは、複雑かつ冗長なシステムをもたらす場合がある。
【0051】
本明細書では、レイヤまたはOLSのいずれかに関連するパラメータを含むように構成されたスケーラブルネスティングSEIメッセージが開示される。例えば、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含み得、これは、スケーラブルネスティングSEIメッセージがレイヤに関連するパラメータを含む、またはOLSに関連するパラメータを含むかどうかを示すように設定され得る。スケーラブルネスティングSEIメッセージはまた、レイヤまたはOLSに関連する1つまたは複数のスケーラブルネスティングされたSEIメッセージを含み得る。本明細書で使用される場合、1つまたは複数は、1つまたは複数のそのような項目を含む、対応する項目の任意の正数を示す。スケーラブルネスティングSEIメッセージがOLSに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたOLSの数を指示するフラグと、OLSをスケーラブルネスティングされたSEIメッセージに関連付けるためのOLSインデックスを指示するフラグとを含む。スケーラブルネスティングSEIメッセージがレイヤに関する場合、スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングSEIメッセージに関連付けられたレイヤの数を指示するフラグと、レイヤをスケーラブルネスティングされたSEIメッセージに関連付けるためのレイヤ識別子(ID)を指示するフラグとを含む。このようにして、SEIメッセージタイプの数を低減することができ、これは複雑度を減少させ、メッセージタイプの総数を減少させる。これにより、各タイプのメッセージを識別するために使用されるメッセージIDデータの長さが低減される。その結果、コーディング効率が向上し、エンコーダおよびデコーダの両方でのプロセッサ、メモリ、および/またはネットワークシグナリングリソースの使用は低減される。
【0052】
図1は、ビデオ信号をコーディングする例示的な動作方法100のフローチャートである。具体的には、ビデオ信号は、エンコーダでエンコードされる。エンコード処理は、様々なメカニズムを使用することによって、ビデオ信号を圧縮し、ビデオファイルサイズを縮小する。より小さいファイルサイズは、関連する帯域幅オーバーヘッドを低減しながら、圧縮されたビデオファイルをユーザに向けて送信することを可能にする。次いで、デコーダは、圧縮されたビデオファイルをデコードして、エンドユーザに表示するための元のビデオ信号を再構成する。デコード処理は、一般に、デコーダがビデオ信号を一貫して再構成することを可能にするためにエンコード処理をミラーリングする。
【0053】
段階101において、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号は、メモリに記憶された非圧縮のビデオファイルであってもよい。別の例として、ビデオファイルは、ビデオカメラなどのビデオキャプチャデバイスによってキャプチャされ、ビデオのライブストリーミングをサポートするためにエンコードされ得る。ビデオファイルは、オーディオコンポーネントおよびビデオコンポーネントの両方を含み得る。ビデオコンポーネントは、シーケンスで見たときに動きの視覚的印象を与える一連の画像フレームを含む。フレームは、本明細書では輝度成分(または輝度サンプル)と呼ばれる光、および彩度成分(または色サンプル)と呼ばれる色に関して表現される画素を含む。いくつかの例では、フレームはまた、3次元表示をサポートするための深度値を含み得る。
【0054】
段階103において、ビデオがブロックに分割される。分割は、各フレーム内の画素を圧縮のために正方形および/または長方形のブロックに細分することを含む。例えば、高効率ビデオコーディング(HEVC)(H.265およびMPEG-H Part 2としても知られる)において、フレームは、最初に、所定のサイズ(例えば、64画素×64画素)のブロックであるコーディングツリーユニット(CTU)に分割され得る。CTUは、輝度サンプルおよび彩度サンプルの両方を含む。コーディングツリーを使用して、CTUをブロックに分割し、次いで、さらなるエンコードをサポートする構成が達成されるまでブロックを再帰的に細分することができる。例えば、フレームの輝度成分は、個々のブロックが比較的均一な照明値を含むまで細分され得る。さらに、フレームの彩度成分は、個々のブロックが比較的均一な色値を含むまで細分され得る。したがって、分割メカニズムは、ビデオフレームのコンテンツに応じて変化する。
【0055】
段階105において、段階103において分割された画像ブロックを圧縮するために様々な圧縮メカニズムが使用される。例えば、インター予測および/またはイントラ予測が使用され得る。インター予測は、共通のシーン内の物体が連続するフレームに現れる傾向があるという事実を利用するように設計される。したがって、参照フレーム内の物体を描写するブロックは、隣接するフレーム内で繰り返し記述される必要はない。具体的には、テーブルなどの物体は、複数のフレームにわたって一定の位置に留まり得る。したがって、テーブルは一度記述され、隣接するフレームは参照フレームを参照することができる。パターンマッチングメカニズムを使用して、複数のフレームにわたって物体をマッチングすることができる。さらに、移動する物体は、例えば、物体の移動またはカメラの移動に起因して、複数のフレームにわたって表され得る。特定の例として、ビデオは、複数のフレームにわたって画面を横切って移動する自動車を示し得る。動きベクトルを使用して、そのような動きを記述することができる。動きベクトルは、フレーム内の物体の座標から参照フレーム内の物体の座標へのオフセットを提供する2次元ベクトルである。このように、インター予測は、現在のフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す動きベクトルのセットとしてエンコードすることができる。
【0056】
イントラ予測は、共通フレーム内のブロックをエンコードする。イントラ予測は、輝度成分および彩度成分がフレーム内でクラスタ化する傾向があるという事実を利用する。例えば、ツリーの一部の緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。イントラ予測は、複数の指向性予測モード(例えば、HEVCでは33)、平面モード、および直流(DC)モードを使用する。指向性モードは、現在のブロックが、対応する方向において隣接ブロックのサンプルと同様/同じであることを示す。平面モードは、行/列に沿った一連のブロック(例えば、平面)が、行の端部にある隣接ブロックに基づいて補間され得ることを示す。平面モードは、実際には、変化する値に比較的一定の傾きを採用することによって、行/列にわたる光/色の滑らかな遷移を示す。DCモードは、境界平滑化に使用され、ブロックが、指向性予測モードの角度方向に関連付けられたすべての隣接ブロックのサンプルに関連付けられた平均値と同様/同じであることを示す。したがって、イントラ予測ブロックは、実際の値ではなく、様々な関係予測モード値として画像ブロックを表すことができる。さらに、インター予測ブロックは、実際の値ではなく、動きベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては、画像ブロックを正確に表さないことがある。いかなる差分も、残差ブロックに記憶される。ファイルをさらに圧縮するために、変換が残差ブロックに適用され得る。
【0057】
段階107において、様々なフィルタリング技術を適用することができる。HEVCでは、フィルタは、インループフィルタリングスキームに従って適用される。上述したブロックベースの予測は、デコーダにおいてブロック状画像の生成をもたらし得る。さらに、ブロックベースの予測スキームは、ブロックをエンコードし、次いで、エンコードされたブロックを参照ブロックとして後で使用するために再構築することができる。インループフィルタリングスキームは、ノイズ抑制フィルタ、デブロックフィルタ、適応ループフィルタ、およびサンプル適応オフセット(sample adaptive offset、SAO)フィルタをブロック/フレームに繰り返し適用する。これらのフィルタは、エンコードされたファイルを正確に再構成することができるように、そのようなブロッキングアーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロックにおけるアーチファクトを緩和し、その結果、アーチファクトは、再構成された参照ブロックに基づいてエンコードされる後続のブロックにおいて追加のアーチファクトを生成する可能性が低くなる。
【0058】
ビデオ信号が分割、圧縮、およびフィルタリングされると、段階109において、結果として得られるデータがビットストリームにエンコードされる。ビットストリームは、上述したデータ、および、デコーダにおいて適切なビデオ信号再構成をサポートすることが望まれるあらゆるシグナリングデータを含む。例えば、そのようなデータは、デコーダにコーディング命令を提供する、分割データ、予測データ、残差ブロック、および様々なフラグを含み得る。ビットストリームは、要求に応じて、デコーダに向けて送信するためにメモリに記憶されてもよい。ビットストリームはまた、複数のデコーダに向けてブロードキャストおよび/またはマルチキャストされてもよい。ビットストリームの作成は、反復処理である。したがって、段階101、103、105、107、および109は、多くのフレームおよびブロックにわたって連続的におよび/または同時に行われ得る。図1に示す順序は、説明を明確かつ容易にするために提示されており、ビデオコーディング処理を特定の順序に限定することを意図していない。
【0059】
デコーダは、ビットストリームを受信し、段階111においてデコード処理を開始する。具体的には、デコーダは、エントロピーデコードスキームを使用して、ビットストリームを対応するシンタックスおよびビデオデータに変換する。デコーダは、段階111において、ビットストリームからのシンタックスデータを使用して、フレームの分割を決定する。分割は、段階103におけるブロック分割の結果と一致すべきである。ここで、段階111で使用されるエントロピーエンコード/デコードについて説明する。エンコーダは、圧縮処理中に、入力画像内の値の空間的位置に基づいていくつかの可能な選択からブロック分割スキームを選択するなど、多くの選択を行う。正確な選択をシグナリングするには、多数のビンを使用し得る。本明細書で使用される場合、ビンは、変数(例えば、文脈に応じて変わり得るビット値)として扱われるバイナリ値である。エントロピーコーディングは、エンコーダが、特定のケースのために実行可能ではないことが明らかである任意のオプションを廃棄し、許容可能なオプションのセットを残すことを可能にする。次いで、各許容可能なオプションにコードワードが割り当てられる。コードワードの長さは、許容可能なオプションの数に基づく(例えば、2つのオプション用の1つのビン、3~4つのオプション用の2つのビンなど)。次いで、エンコーダは、選択されたオプションのコードワードをエンコードする。このスキームは、すべての可能なオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すために、コードワードが所望されるくらいの大きさなので、コードワードのサイズを小さくする。次いで、デコーダは、エンコーダと同様の方式で許容可能なオプションのセットを決定することによって選択をデコードする。許容可能なオプションのセットを決定することにより、デコーダは、コードワードを読み取り、エンコーダによって行われた選択を決定し得る。
【0060】
段階113において、デコーダは、ブロックのデコードを実行する。具体的には、デコーダは、残差ブロックを生成するために逆変換を使用する。次いで、デコーダは、分割に従って画像ブロックを再構成するために、残差ブロックおよび対応する予測ブロックを使用する。予測ブロックは、段階105においてエンコーダで生成されるようなイントラ予測ブロックおよびインター予測ブロックの両方を含み得る。次いで、再構成された画像ブロックは、段階111で決定された分割データに従って再構成されたビデオ信号のフレームに配置される。段階113のシンタックスはまた、上述のように、エントロピーコーディングを介してビットストリーム内でシグナリングされ得る。
【0061】
段階115において、エンコーダにおける段階107と同様の方式で、再構成されたビデオ信号のフレームに対してフィルタリングが実行される。例えば、ブロッキングアーチファクトを除去するために、ノイズ抑制フィルタ、デブロックフィルタ、適応ループフィルタ、およびSAOフィルタをフレームに適用することができる。フレームがフィルタリングされると、ビデオ信号は、エンドユーザが見るために段階117でディスプレイに出力することができる。
【0062】
図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を含み得る。次に、これらのコンポーネントについて説明する。
【0063】
分割されたビデオ信号201は、コーディングツリーによって画素のブロックに分割されたキャプチャされたビデオシーケンスである。コーディングツリーは、画素のブロックをより小さい画素のブロックに細分するために様々なスプリットモードを使用する。次いで、これらのブロックをより小さいブロックにさらに細分することができる。ブロックは、コーディングツリー上のノードと呼ばれる場合がある。より大きな親ノードは、より小さな子ノードへ分割される。ノードが細分される回数は、ノード/コーディングツリーの深度と呼ばれる。分割されたブロックは、場合によっては、コーディングユニット(CU)に含まれ得る。例えば、CUは、CUのための対応するシンタックス命令と共に、輝度ブロック、赤色差分彩度(Cr)ブロック、および青色差分彩度(Cb)ブロックを含むCTUの下位部分であり得る。スプリットモードには、使用されるスプリットモードに応じて様々な形状のノードをそれぞれ2つ、3つ、または4つの子ノードに分割するために使用されるバイナリツリー(BT)、トリプルツリー(TT)、およびクワッドツリー(QT)が含まれ得る。分割されたビデオ信号201は、圧縮のために、汎用コーダ制御コンポーネント211、変換スケーリングおよび量子化コンポーネント213、イントラピクチャ推定コンポーネント215、フィルタ制御解析コンポーネント227、ならびに動き推定コンポーネント221に転送される。
【0064】
汎用コーダ制御コンポーネント211は、アプリケーション制約に従って、ビデオシーケンスの画像のビットストリームへのコーディングに関する決定を行うように構成される。例えば、汎用コーダ制御コンポーネント211は、ビットレート/ビットストリームサイズ対再構成品質の最適化を管理する。そのような決定は、記憶空間/帯域幅の可用性および画像解像度要求に基づいて行うことができる。汎用コーダ制御コンポーネント211はまた、バッファのアンダーランおよびオーバーランの問題を緩和するために、送信速度に照らしてバッファ利用を管理する。これらの問題を管理するために、汎用コーダ制御コンポーネント211は、他のコンポーネントによる分割、予測、およびフィルタリングを管理する。例えば、汎用コーダ制御コンポーネント211は、圧縮複雑度を動的に増加させて解像度を高めて帯域幅使用量を増加させ、または圧縮複雑度を減少させて解像度および帯域幅使用量を減少させ得る。したがって、汎用コーダ制御コンポーネント211は、ビデオ信号再構成品質とビットレートの懸念とのバランスをとるために、コーデックシステム200の他のコンポーネントを制御する。汎用コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを作成する。制御データはまた、デコーダでデコードするための信号パラメータにビットストリームでエンコードされるようにヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【0065】
分割されたビデオ信号201はまた、インター予測のために動き推定コンポーネント221および動き補償コンポーネント219に送信される。分割されたビデオ信号201のフレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定コンポーネント221および動き補償コンポーネント219は、時間予測を提供するために、受信されたビデオブロックの、1つまたは複数の参照フレームにおける1つまたは複数のブロックに対するインター予測コーディングを実行する。コーデックシステム200は、例えば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【0066】
動き推定コンポーネント221および動き補償コンポーネント219は、高度に統合されてもよいが、概念的な目的のために別々に示されている。動き推定コンポーネント221によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、予測ブロックに対するコーディングされた物体の変位を示し得る。予測ブロックは、画素差に関して、コーディングされるべきブロックと厳密に一致することが見出されるブロックである。予測ブロックはまた、参照ブロックと呼ばれることもある。そのような画素差は、絶対差の和(sum of absolute difference、SAD)、二乗差の和(sum of square difference、SSD)、または他の差メトリックによって決定され得る。HEVCは、CTU、コーディングツリーブロック(CTB)、およびCUを含むいくつかのコーディングされたオブジェクトを使用する。例えば、CTUはCTBに分割することができ、次いで、CUに含めるためにCBに分割され得る。CUは、予測データを含む予測ユニット(prediction unit、PU)および/またはCU用の変換された残差データを含む変換ユニット(transform unit、TU)としてエンコードすることができる。動き推定コンポーネント221は、レート歪み最適化処理の一部としてレート歪み解析を使用することによって、動きベクトル、PU、およびTUを生成する。例えば、動き推定コンポーネント221は、現在のブロック/フレームについて複数の参照ブロック、複数の動きベクトルなどを決定することができ、最良のレート歪み特性を有する参照ブロック、動きベクトルなどを選択することができる。最良のレート歪み特性は、ビデオ再構成(例えば、圧縮によるデータ損失の量)の品質およびコーディング効率(例えば、最終エンコードのサイズ)の両方のバランスをとる。
【0067】
いくつかの例では、コーデックシステム200は、デコードされたピクチャバッファコンポーネント223に記憶された参照ピクチャのサブ整数画素位置の値を計算することができる。例えば、ビデオコーデックシステム200は、参照ピクチャの1/4画素位置、1/8画素位置、または他の小数画素位置の値を補間し得る。したがって、動き推定コンポーネント221は、全画素位置および小数画素位置に対して動き探索を実行し、小数画素精度で動きベクトルを出力することができる。動き推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングスライス内のビデオブロックのPUに対する動きベクトルを計算する。動き推定コンポーネント221は、計算された動きベクトルを動きデータとしてヘッダフォーマッティングに出力し、エンコードおよび動きのためのCABACコンポーネント231を動き補償コンポーネント219に出力する。
【0068】
動き補償コンポーネント219によって実行される動き補償は、動き推定コンポーネント221によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを含み得る。ここでも、いくつかの例では、動き推定コンポーネント221および動き補償コンポーネント219は、機能的に統合されてもよい。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルが指し示す予測ブロックに位置し得る。次いで、エンコードされている現在のビデオブロックの画素値から予測ブロックの画素値を減算して画素差値を形成することによって、残差ビデオブロックが形成される。一般に、動き推定コンポーネント221は、輝度成分に対する動き推定を実行し、動き補償コンポーネント219は、彩度成分および輝度成分の両方について輝度成分に基づいて計算された動きベクトルを使用する。予測ブロックおよび残差ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。
【0069】
分割されたビデオ信号201はまた、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217にも送信される。動き推定コンポーネント221および動き補償コンポーネント219と同様に、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217は、高度に統合されてもよいが、概念的な目的のために別々に示されている。イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217は、上述したように、フレーム間で動き推定コンポーネント221および動き補償コンポーネント219によって実行されるインター予測の代替として、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。特に、イントラピクチャ推定コンポーネント215は、現在のブロックをエンコードするために使用するイントラ予測モードを決定する。いくつかの例では、イントラピクチャ推定コンポーネント215は、複数の試験されたイントラ予測モードから現在のブロックをエンコードするために適切なイントラ予測モードを選択する。次いで、選択されたイントラ予測モードは、エンコードのためにヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【0070】
例えば、イントラピクチャ推定コンポーネント215は、様々な試験されたイントラ予測モードのレート歪み解析を使用してレート歪み値を計算し、試験されたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み解析は、一般に、エンコードされたブロックとエンコードされたブロックを生成するためにエンコードされた元のエンコードされていないブロックとの間の歪み(またはエラー)の量、およびエンコードされたブロックを生成するために使用されるビットレート(例えば、ビット数)を決定する。イントラピクチャ推定コンポーネント215は、様々なエンコードされたブロックの歪みおよびレートから比率を計算して、どのイントラ予測モードがブロックの最良のレート歪み値を示すかを決定する。加えて、イントラピクチャ推定コンポーネント215は、レート歪み最適化(rate-distortion optimization、RDO)に基づく深度モデリングモード(depth modeling mode、DMM)を使用して、深度マップの深度ブロックをコーディングするように構成され得る。
【0071】
イントラピクチャ予測コンポーネント217は、エンコーダ上で実装された場合、イントラピクチャ推定コンポーネント215によって決定された選択されたイントラ予測モードに基づいて予測ブロックから残差ブロックを生成し得る、またはデコーダ上で実装された場合、ビットストリームから残差ブロックを読み出し得る。残差ブロックは、行列として表される、予測ブロックと元のブロックとの間の値の差を含む。次いで、残差ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217は、輝度成分および彩度成分の両方で動作し得る。
【0072】
変換スケーリングおよび量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成される。変換スケーリングおよび量子化コンポーネント213は、離散コサイン変換(discrete cosine transform、DCT)、離散サイン変換(discrete sine transform、DST)、または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用することができる。変換は、残差情報を画素値ドメインから周波数ドメインなどの変換ドメインに変換することができる。変換スケーリングおよび量子化コンポーネント213はまた、例えば、周波数に基づいて、変換された残差情報をスケーリングするように構成される。そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように残差情報にスケールファクタを適用することを含み、これは、再構成されたビデオの最終的な視覚的品質に影響を及ぼし得る。変換スケーリングおよび量子化コンポーネント213はまた、ビットレートをさらに低減するために、変換係数を量子化するように構成される。量子化処理は、係数の一部または全部に関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって変更することができる。いくつかの例では、変換スケーリングおよび量子化コンポーネント213は、次いで、量子化された変換係数を含む行列のスキャンを実行することができる。量子化された変換係数は、ビットストリーム内でエンコードされるようにヘッダフォーマッティングおよびCABACコンポーネント231に転送される。
【0073】
スケーリングおよび逆変換コンポーネント229は、動き推定をサポートするために、変換スケーリングおよび量子化コンポーネント213の逆演算を適用する。スケーリングおよび逆変換コンポーネント229は、例えば、別の現在のブロックの予測ブロックになり得る参照ブロックとして後で使用するために、逆スケーリング、変換、および/または量子化を適用して、画素ドメイン内の残差ブロックを再構成する。動き推定コンポーネント221および/または動き補償コンポーネント219は、後のブロック/フレームの動き推定に使用するために、残差ブロックを対応する予測ブロックに加算し戻すことによって、参照ブロックを計算することができる。フィルタは、再構成された参照ブロックに適用され、スケーリング、量子化、および変換中に生成されるアーチファクトを軽減する。そうでなければ、このようなアーチファクトは、後続のブロックが予測されるときに不正確な予測を引き起こす(および追加のアーチファクトを生成する)場合がある。
【0074】
フィルタ制御解析コンポーネント227およびインループフィルタコンポーネント225は、フィルタを、残差ブロックおよび/または再構成された画像ブロックに適用する。例えば、スケーリングおよび逆変換コンポーネント229からの変換された残差ブロックは、イントラピクチャ予測コンポーネント217および/または動き補償コンポーネント219からの対応する予測ブロックと組み合わされて、元の画像ブロックを再構成することができる。次いで、フィルタを再構成された画像ブロックに適用することができる。いくつかの例では、フィルタは、代わりに、残差ブロックに適用されてもよい。図2の他のコンポーネントと同様に、フィルタ制御解析コンポーネント227およびインループフィルタコンポーネント225は、高度に統合されており、一緒に実装することができるが、概念的な目的のために別々に示されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するための複数のパラメータを含む。フィルタ制御解析コンポーネント227は、再構成された参照ブロックを解析して、そのようなフィルタが適用されるべき場所を決定し、対応するパラメータを設定する。そのようなデータは、エンコードのためのフィルタ制御データとしてヘッダフォーマッティングおよびCABACコンポーネント231に転送される。インループフィルタコンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、SAOフィルタ、および適応ループフィルタを含み得る。そのようなフィルタは、例に応じて、空間/画素ドメイン(例えば、再構成された画素ブロック上)または周波数ドメインに適用することができる。
【0075】
エンコーダとして動作するとき、フィルタリングされた再構成された画像ブロック、残差ブロック、および/または予測ブロックは、上述のように、動き推定に後で使用するためにデコードされたピクチャバッファコンポーネント223に記憶される。デコーダとして動作するとき、デコードされたピクチャバッファコンポーネント223は、再構成およびフィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。デコードされたピクチャバッファコンポーネント223は、予測ブロック、残差ブロック、および/または再構成された画像ブロックを記憶することができる任意のメモリデバイスとすることができる。
【0076】
ヘッダフォーマッティングおよびCABACコンポーネント231は、コーデックシステム200の様々なコンポーネントからデータを受信し、デコーダに向けて送信するためにそのようなデータをコーディングビットストリームにエンコードする。具体的には、ヘッダフォーマッティングおよびCABACコンポーネント231は、一般的な制御データおよびフィルタ制御データなどの制御データをエンコードするための様々なヘッダを生成する。さらに、イントラ予測および動きデータを含む予測データ、ならびに量子化された変換係数データの形態の残差データは、すべてビットストリーム内でエンコードされる。最終ビットストリームは、元の分割されたビデオ信号201を再構成するためにデコーダによって所望されるすべての情報を含む。そのような情報はまた、イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、様々なブロックのためのエンコードコンテキストの定義、最も可能性の高いイントラ予測モードの指示、分割情報の指示などを含み得る。そのようなデータは、エントロピーコーディングを適用することによって、エンコードされ得る。例えば、情報は、コンテキスト適応可変長コーディング(context adaptive variable length coding、CAVLC)、CABAC、シンタックスベースのコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)、確率区間分割エントロピー(probability interval partitioning entropy、PIPE)コーディング、または別のエントロピーコーディング技術を使用することによって、エンコードされ得る。エントロピーコーディングに続いて、コーディングされたビットストリームは、別のデバイス(例えば、ビデオデコーダ)へ送信され得る、または、後の送信または取得のためにアーカイブされ得る。
【0077】
図3は、例示的なビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200のエンコード機能を実装するために、ならびに/または動作方法100の段階101、103、105、107、および/もしくは109を実装するために使用され得る。エンコーダ300は、入力ビデオ信号を分割し、分割されたビデオ信号201と実質的に同様の分割されたビデオ信号301をもたらす。分割されたビデオ信号301は、次いで、エンコーダ300のコンポーネントによって圧縮され、ビットストリームにエンコードされる。
【0078】
具体的には、分割されたビデオ信号301は、イントラ予測のためにイントラピクチャ予測コンポーネント317に転送される。イントラピクチャ予測コンポーネント317は、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217と実質的に同様であってもよい。分割されたビデオ信号301はまた、デコードされたピクチャバッファコンポーネント323内の参照ブロックに基づいて、インター予測のために動き補償コンポーネント321に転送される。動き補償コンポーネント321は、動き推定コンポーネント221および動き補償コンポーネント219と実質的に同様であってもよい。イントラピクチャ予測コンポーネント317および動き補償コンポーネント321からの予測ブロックおよび残差ブロックは、残差ブロックの変換および量子化のために変換および量子化コンポーネント313に転送される。変換および量子化コンポーネント313は、変換スケーリングおよび量子化コンポーネント213と実質的に同様であってもよい。変換および量子化された残差ブロックならびに対応する予測ブロック(関連する制御データと共に)は、ビットストリームへのコーディングのためにエントロピーコーディングコンポーネント331に転送される。エントロピーコーディングコンポーネント331は、ヘッダフォーマッティングおよびCABACコンポーネント231と実質的に同様であってもよい。
【0079】
変換および量子化された残差ブロックならびに/または対応する予測ブロックはまた、動き補償コンポーネント321による使用のために参照ブロックへの再構成のために、変換および量子化コンポーネント313から逆変換および量子化コンポーネント329に転送される。逆変換および量子化コンポーネント329は、スケーリングおよび逆変換コンポーネント229と実質的に同様であってもよい。インループフィルタコンポーネント325内のインループフィルタはまた、例に応じて、残差ブロックおよび/または再構成された参照ブロックに適用される。インループフィルタコンポーネント325は、フィルタ制御解析コンポーネント227およびインループフィルタコンポーネント225と実質的に同様であってもよい。インループフィルタコンポーネント325は、インループフィルタコンポーネント225に関して説明したように、複数のフィルタを含み得る。次いで、フィルタリングされたブロックは、動き補償コンポーネント321によって参照ブロックとして使用するために、デコードされたピクチャバッファコンポーネント323に記憶される。デコードされたピクチャバッファコンポーネント323は、デコードされたピクチャバッファコンポーネント223と実質的に同様であってもよい。
【0080】
図4は、例示的なビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200のデコード機能を実装するために、ならびに/または動作方法100の段階111、113、115、および/もしくは117を実装するために使用され得る。デコーダ400は、例えば、エンコーダ300からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づいて再構成された出力ビデオ信号を生成する。
【0081】
ビットストリームは、エントロピーデコードコンポーネント433によって受信される。エントロピーデコードコンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、または他のエントロピーコーディング技術などのエントロピーデコードスキームを実装するように構成される。例えば、エントロピーデコードコンポーネント433は、ヘッダ情報を使用して、ビットストリーム内のコードワードとしてエンコードされた追加のデータを解釈するためのコンテキストを提供することができる。デコードされた情報は、汎用制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ、および残差ブロックからの量子化された変換係数など、ビデオ信号をデコードするための任意の所望の情報を含む。量子化された変換係数は、残差ブロックへの再構成のために、逆変換および量子化コンポーネント429に転送される。逆変換および量子化コンポーネント429は、逆変換および量子化コンポーネント329と同様であってもよい。
【0082】
再構成された残差ブロックおよび/または予測ブロックは、イントラ予測演算に基づいて画像ブロックに再構成するために、イントラピクチャ予測コンポーネント417に転送される。イントラピクチャ予測コンポーネント417は、イントラピクチャ推定コンポーネント215およびイントラピクチャ予測コンポーネント217と同様であってもよい。具体的には、イントラピクチャ予測コンポーネント417は、予測モードを使用してフレーム内の参照ブロックを特定し、残差ブロックを適用して、その結果、イントラ予測画像ブロックを再構成する。再構成されたイントラ予測画像ブロックおよび/または残差ブロックおよび対応するインター予測データは、それぞれ、デコードされたピクチャバッファコンポーネント223およびインループフィルタコンポーネント225と実質的に同様であり得る、インループフィルタコンポーネント425を介してデコードされたピクチャバッファコンポーネント423に転送される。インループフィルタコンポーネント425は、再構成された画像ブロック、残差ブロック、および/または予測ブロックをフィルタリングし、そのような情報は、デコードされたピクチャバッファコンポーネント423に記憶される。デコードされたピクチャバッファコンポーネント423からの再構成された画像ブロックは、インター予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は、動き推定コンポーネント221および/または動き補償コンポーネント219と実質的に同様であってもよい。具体的には、動き補償コンポーネント421は、参照ブロックからの動きベクトルを用いて予測ブロックを生成し、残差ブロックを結果に適用して画像ブロックを再構成する。結果として得られる再構成されたブロックはまた、インループフィルタコンポーネント425を介してデコードされたピクチャバッファコンポーネント423に転送されてもよい。デコードされたピクチャバッファコンポーネント423は、分割情報を介してフレームに再構成することができる追加の再構成された画像ブロックを記憶し続ける。そのようなフレームはまた、シーケンス内に配置されてもよい。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【0083】
図5は、例示的なHRD500を示す概略図である。HRD500は、例えば、コーデックシステム200および/またはエンコーダ300のようなエンコーダにおいて適用され得る。HRD500は、ビットストリームがデコーダ400などのデコーダに転送される前に、方法100の段階109で作成されたビットストリームをチェックすることができる。いくつかの例では、ビットストリームは、ビットストリームがエンコードされるときにHRD500を介して連続的に転送され得る。ビットストリームの一部が関連する制約に適合しない場合、HRD500は、そのような失敗をエンコーダに示して、エンコーダに異なるメカニズムでビットストリームの対応するセクションを再エンコードさせることができる。
【0084】
HRD500は、仮想ストリームスケジューラ(hypothetical stream scheduler、HSS)541を含む。HSS541は、仮想配信メカニズムを実行するように構成されたコンポーネントである。仮想配信メカニズムは、HRD500に入力されるビットストリーム551のタイミングおよびデータフローに関して、ビットストリームまたはデコーダの適合性をチェックするために使用される。例えば、HSS541は、エンコーダから出力されたビットストリーム551を受信し、ビットストリーム551に対する適合性試験処理を管理することができる。特定の例では、HSS541は、コーディングされたピクチャがHRD500を移動するレートを制御し、ビットストリーム551が不適合なデータを含まないことを検証することができる。
【0085】
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は、ビットストリーム適合性検証中に使用するためのビデオデータを記憶する。
【0086】
CPB543は、DU553をデコード処理コンポーネント545に転送する。デコード処理コンポーネント545は、VVC標準に準拠したコンポーネントである。例えば、デコード処理コンポーネント545は、エンドユーザによって使用されるデコーダ400をエミュレートすることができる。デコード処理コンポーネント545は、例示的なエンドユーザデコーダによって達成され得るレートでDU553をデコードする。デコード処理コンポーネント545が、CPB543のオーバーフローを防止するのに十分な速さでDU553をデコードすることができない場合、ビットストリーム551は、標準に準拠せず、再エンコードされるべきである。
【0087】
デコード処理コンポーネント545は、DU553をデコードし、デコードされたDU555を作成する。デコードされたDU555は、デコードされたピクチャを含む。デコードされたDU555は、DPB547に転送される。DPB547は、デコードされたピクチャバッファコンポーネント223、323、および/または423と実質的に同様であってもよい。インター予測をサポートするために、デコードされたDU555から取得された参照ピクチャ556として使用するためにマークされたピクチャは、さらなるデコードをサポートするためにデコード処理コンポーネント545に戻される。DPB547は、デコードされたビデオシーケンスを一連のピクチャ557として出力する。ピクチャ557は、エンコーダによってビットストリーム551にエンコードされたピクチャを概してミラーリングする再構成されたピクチャである。
【0088】
ピクチャ557は、出力クロッピングコンポーネント549に転送される。出力クロッピングコンポーネント549は、適合性クロッピングウィンドウをピクチャ557に適用するように構成される。これにより、出力トリミングピクチャ559が得られる。出力トリミングピクチャ559は、完全に再構成されたピクチャである。したがって、出力トリミングピクチャ559は、エンドユーザがビットストリーム551をデコードするときに見るであろうものを模倣する。このように、エンコーダは、出力トリミングピクチャ559をレビューして、エンコードが満足のいくものであることを保証することができる。
【0089】
HRD500は、ビットストリーム551内のHRDパラメータに基づいて初期化される。例えば、HRD500は、VPS、SPS、および/またはSEIメッセージからHRDパラメータを読み取ることができる。次いで、HRD500は、そのようなHRDパラメータ内の情報に基づいてビットストリーム551に対して適合性試験動作を実行することができる。具体例として、HRD500は、HRDパラメータから1つまたは複数のCPB配信スケジュールを決定し得る。配信スケジュールは、CPBおよび/またはDPBなどのメモリ場所との間のビデオデータの配信のタイミングを指定する。したがって、CPB配信スケジュールは、CPB543との間のAU、DU553、および/またはピクチャの配信のタイミングを指定する。HRD500は、CPB配信スケジュールと同様のDPB547のDPB配信スケジュールを使用することができることに留意されたい。
【0090】
ビデオは、様々なレベルのハードウェア能力を有するデコーダによって使用するために、および様々なネットワーク条件のために、異なるレイヤおよび/またはOLSにコーディングされ得る。CPB配信スケジュールは、これらの問題を反映するように選択される。したがって、上位レイヤサブビットストリームは、最適なハードウェアおよびネットワーク条件に指定され、したがって、上位レイヤは、CPB543内の大量のメモリおよびDPB547に向かうDU553の転送のための短い遅延を使用する1つまたは複数のCPB配信スケジュールを受信し得る。同様に、下位レイヤサブビットストリームは、限られたデコーダハードウェア能力および/または劣悪なネットワーク条件に対して指定される。したがって、下位レイヤは、CPB543内の少量のメモリおよびDPB547に向かうDU553の転送のためのより長い遅延を使用する1つまたは複数のCPB配信スケジュールを受信し得る。次いで、OLS、レイヤ、サブレイヤ、またはそれらの組み合わせを、対応する配信スケジュールに従って試験して、結果として得られるサブビットストリームが、サブビットストリームに対して期待される条件下で正しくデコードされ得ることを保証することができる。したがって、ビットストリーム551内のHRDパラメータは、CPB配信スケジュールを示し得、ならびにHRD500がCPB配信スケジュールを決定し、CPB配信スケジュールを対応するOLS、レイヤ、および/またはサブレイヤに相関させるのに十分なデータを含み得る。
【0091】
図6は、レイヤ間予測621のために構成された例示的なマルチレイヤビデオシーケンス600を示す概略図である。マルチレイヤビデオシーケンス600は、例えば、方法100に従って、コーデックシステム200および/またはエンコーダ300などのエンコーダによってエンコードされ、コーデックシステム200および/またはデコーダ400などのデコーダによってデコードされ得る。さらに、マルチレイヤビデオシーケンス600は、HRD500などのHRDによって標準適合性についてチェックされ得る。マルチレイヤビデオシーケンス600は、コーディングされたビデオシーケンス内のレイヤの例示的なアプリケーションを示すために含まれる。マルチレイヤビデオシーケンス600は、レイヤN 631およびレイヤN+1 632などの複数のレイヤを使用する任意のビデオシーケンスである。
【0092】
一例では、マルチレイヤビデオシーケンス600は、レイヤ間予測621を使用し得る。レイヤ間予測621は、ピクチャ611、612、613、および614と異なるレイヤのピクチャ615、616、617、および618との間に適用される。示されている例では、ピクチャ611、612、613、および614はレイヤN+1 632の一部であり、ピクチャ615、616、617、および618はレイヤN 631の一部である。レイヤN 631および/またはレイヤN+1 632などのレイヤは、すべて、同様のサイズ、品質、解像度、信号対雑音比、能力などの特性の同様の値に関連付けられたピクチャのグループである。レイヤは、形式的に、VCL NALユニットおよび関連する非VCL NALユニットのセットとして定義され得る。VCL NALユニットは、ピクチャのコーディングされたスライスなどのビデオデータを含むようにコーディングされたNALユニットである。非VCL NALユニットは、ビデオデータのデコード、適合性チェックの実行、または他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニットである。
【0093】
示されている例では、レイヤN+1 632は、レイヤN 631よりも大きい画像サイズに関連付けられている。したがって、この例では、レイヤN+1 632のピクチャ611、612、613、および614のピクチャサイズは、レイヤN 631のピクチャ615、616、617、および618のピクチャサイズよりも大きい(例えば、より大きな高さおよび幅、したがって、より多くのサンプル)。しかしながら、そのようなピクチャは、他の特性によって、レイヤN+1 632とレイヤN 631との間で分離され得る。レイヤN+1 632およびレイヤN 631の2つのレイヤのみが示されているが、ピクチャのセットは、関連する特性に基づいて、任意の数のレイヤに分離され得る。レイヤN+1 632およびレイヤN 631はまた、レイヤIDによって示され得る。レイヤIDは、ピクチャに関連付けられたデータの項目であり、ピクチャが指示されたレイヤの一部であることを示す。したがって、各ピクチャ611~618は、どのレイヤN+1 632またはレイヤN 631が対応するピクチャを含むかを示すために、対応するレイヤIDに関連付けられ得る。例えば、レイヤIDは、(例えば、レイヤ内のピクチャのスライスおよび/またはパラメータを含む)NALユニットを含むレイヤの識別子を指定するシンタックス要素であるNALユニットヘッダレイヤ識別子(nuh_layer_id)を含み得る。レイヤN 631など、低品質/ビットストリームサイズに関連付けられたレイヤは、一般に、下位レイヤIDを割り当てられ、下位レイヤと呼ばれる。さらに、レイヤN+1 632など、高品質/ビットストリームサイズに関連付けられたレイヤは、一般に、上位レイヤIDを割り当てられ、上位レイヤと呼ばれる。
【0094】
異なるレイヤ631~632内のピクチャ611~618は、代替形態で表示されるように構成される。このように、異なるレイヤ631~632のピクチャは、時間IDを共有し得、同じAUに含まれ得る。時間IDは、データがビデオシーケンス内の時間的場所に対応することを示すデータ要素である。AUは、指定された分類規則に従って互いに関連付けられ、1つの特定の出力時間に関するNALユニットのセットである。例えば、AUは、ピクチャ611およびピクチャ615が同じ時間IDに関連付けられている場合、そのようなピクチャなどの異なるレイヤ内の1つまたは複数のピクチャを含み得る。具体例として、デコーダは、より小さいピクチャが望まれる場合、現在の表示時間においてピクチャ615をデコードおよび表示してもよく、または、デコーダは、より大きいピクチャが望まれる場合、現在の表示時間においてピクチャ611をデコードおよび表示してもよい。このように、上位レイヤN+1 632におけるピクチャ611~614は、(ピクチャサイズの違いにかかわらず)下位レイヤN 631における対応するピクチャ615~618と実質的に同じ画像データを含む。具体的には、ピクチャ611はピクチャ615と実質的に同じ画像データを含み、ピクチャ612はピクチャ616と実質的に同じ画像データを含む、などである。
【0095】
ピクチャ611~618は、同じレイヤN 631またはN+1 632内の他のピクチャ611~618を参照することによってコーディングされ得る。同じレイヤ内の別のピクチャを参照してピクチャをコーディングすると、インター予測623が得られる。インター予測623は、実線矢印で示される。例えば、ピクチャ613は、レイヤN+1 632内のピクチャ611、612、および/または614のうちの1つまたは2つを参照として使用するインター予測623を使用することによってコーディングされ得、1つのピクチャは、一方向インター予測のために参照され、および/または2つのピクチャは、双方向インター予測のために参照される。さらに、ピクチャ617は、レイヤN 631内のピクチャ615、616、および/または618のうちの1つまたは2つを参照として使用するインター予測623を使用することによってコーディングされ得、1つのピクチャは、一方向インター予測のために参照され、および/または2つのピクチャは、双方向インター予測のために参照される。インター予測623を実行する場合において、あるピクチャが同じレイヤ内の別のピクチャの参照として使用されるときは、そのピクチャは参照ピクチャと呼ばれ得る。例えば、ピクチャ612は、インター予測623に従ってピクチャ613をコーディングするために使用される参照ピクチャであり得る。インター予測623はまた、マルチレイヤコンテキストにおけるイントラレイヤ予測とも呼ばれ得る。このように、インター予測623は、参照ピクチャと現在のピクチャとが同じレイヤ内にある現在のピクチャとは異なる参照ピクチャ内の指示されたサンプルを参照することによって、現在のピクチャのサンプルをコーディングするメカニズムである。
【0096】
ピクチャ611~618はまた、異なるレイヤ内の他のピクチャ611~618を参照することによってコーディングされ得る。この処理はレイヤ間予測621として知られており、破線矢印で示される。レイヤ間予測621は、現在のピクチャと参照ピクチャとが異なるレイヤ内にあり、したがって、異なるレイヤIDを有する参照ピクチャ内の指示されたサンプルを参照することによって、現在のピクチャのサンプルをコーディングするメカニズムである。例えば、下位レイヤN 631内のピクチャを参照ピクチャとして使用して、上位レイヤN+1 632の対応するピクチャをコーディングすることができる。具体例として、ピクチャ611は、レイヤ間予測621に従ってピクチャ615を参照することによってコーディングされ得る。そのような場合、ピクチャ615がレイヤ間参照ピクチャとして使用される。レイヤ間参照ピクチャは、レイヤ間予測621に使用される参照ピクチャである。ほとんどの場合、レイヤ間予測621は、ピクチャ611などの現在のピクチャが、同じAUに含まれ、ピクチャ615などの下位レイヤにあるレイヤ間参照ピクチャのみを使用できるように制約される。複数のレイヤ(例えば、2を超える)が利用可能である場合、レイヤ間予測621は、現在のピクチャよりも低いレベルにある複数のレイヤ間参照ピクチャに基づいて、現在のピクチャをエンコード/デコードすることができる。
【0097】
ビデオエンコーダは、マルチレイヤビデオシーケンス600を使用して、インター予測623およびレイヤ間予測621の多くの異なる組み合わせおよび/または順列を介してピクチャ611~618をエンコードすることができる。例えば、ピクチャ615は、イントラ予測に従ってコーディングされ得る。次いで、ピクチャ616~618は、ピクチャ615を参照ピクチャとして使用することによって、インター予測623に従ってコーディングされ得る。さらに、ピクチャ611は、ピクチャ615をレイヤ間参照ピクチャとして使用することによって、レイヤ間予測621に従ってコーディングされ得る。次いで、ピクチャ612~614は、ピクチャ611を参照ピクチャとして使用することによって、インター予測623に従ってコーディングされ得る。このように、参照ピクチャは、異なるエンコードメカニズムのための単一のレイヤ参照ピクチャおよびレイヤ間参照ピクチャの両方として機能し得る。下位レイヤN 631のピクチャに基づいて上位レイヤN+1 632ピクチャをコーディングすることにより、上位レイヤN+1 632は、インター予測623およびレイヤ間予測621よりもはるかに低いコーディング効率を有するイントラ予測を使用することを回避することができる。このように、イントラ予測の劣悪なコーディング効率は、最小/最低品質のピクチャに制限され、したがって、最小量のビデオデータをコーディングすることに制限され得る。参照ピクチャおよび/またはレイヤ間参照ピクチャとして使用されるピクチャは、参照ピクチャリスト構造に含まれる参照ピクチャリストのエントリで示され得る。
【0098】
そのような動作を実行するために、レイヤN 631およびレイヤN+1 632などのレイヤは、OLS625に含まれ得る。OLS625は、1つまたは複数のレイヤが出力レイヤとして指定されるレイヤのセットである。出力レイヤは、出力(例えば、ディスプレイに)のために指定されるレイヤである。例えば、レイヤN 631は、レイヤ間予測621をサポートするためだけに含まれてもよく、決して出力されなくてもよい。そのような場合、レイヤN+1 632は、レイヤN 631に基づいてデコードされ、出力される。そのような場合、OLS625は、出力レイヤとして、レイヤN+1 632を含む。場合によっては、OLS625は、サイマルキャストレイヤと呼ばれる出力レイヤのみを含む。他の場合には、OLS625は、異なる組み合わせで多くのレイヤを含み得る。例えば、OLS625内の出力レイヤは、1つ、2つ、または多数の下位レイヤに基づくレイヤ間予測621に従ってコーディングされ得る。さらに、OLS625は、2つ以上の出力レイヤを含み得る。したがって、OLS625は、1つまたは複数の出力レイヤと、出力レイヤを再構成するのに必要な任意の支持レイヤとを含み得る。マルチレイヤビデオシーケンス600は、各々がレイヤの異なる組み合わせを使用する多くの異なるOLS625を使用することによってコーディングされ得る。OLS625は、各々が、対応するOLS625を一意に識別するインデックスであるOLSインデックスに関連付けられている。
【0099】
HRD500における標準適合性についてのマルチレイヤビデオシーケンス600のチェックは、レイヤ631~632およびOLS625の数に応じて複雑になる場合がある。スケーラブルネスティングSEIメッセージを使用して、レイヤ631~632およびOLS625を標準適合性についてチェックするのに必要なパラメータを示し得る。
【0100】
図7は、例示的なビットストリーム700を示す概略図である。例えば、ビットストリーム700は、方法100に従って、コーデックシステム200および/またはデコーダ400によってデコードするために、コーデックシステム200および/またはエンコーダ300によって生成され得る。さらに、ビットストリーム700は、マルチレイヤビデオシーケンス600を含み得る。加えて、ビットストリーム700は、HRD500などのHRDの動作を制御するための様々なパラメータを含み得る。そのようなパラメータに基づいて、HRDは、デコードのためにデコーダに向けて送信する前に、標準に適合しているかどうかについてビットストリーム700をチェックすることができる。
【0101】
ビットストリーム700は、VPS711と、1つまたは複数のSPS713と、複数のピクチャパラメータセット(picture parameter set、PPS)715と、複数のスライスヘッダ717と、画像データ720と、SEIメッセージ719とを含む。VPS711は、ビットストリーム700全体に関するデータを含む。例えば、VPS711は、ビットストリーム700で使用されるデータ関連OLS、レイヤ、および/またはサブレイヤを含み得る。SPS713は、ビットストリーム700に含まれるコーディングされたビデオシーケンス内のすべてのピクチャに共通のシーケンスデータを含む。例えば、各レイヤは、1つまたは複数のコーディングされたビデオシーケンスを含み得、各コーディングされたビデオシーケンスは、対応するパラメータについてSPS713を参照し得る。SPS713内のパラメータは、ピクチャサイジング、ビット深度、コーディングツールパラメータ、ビットレート制限などを含むことができる。各シーケンスはSPS713を指すが、いくつかの例では、単一のSPS713は、複数のシーケンスのデータを含むことができることに留意されたい。PPS715は、ピクチャ全体に適用されるパラメータを含む。したがって、ビデオシーケンスにおける各ピクチャは、PPS715を称し得る。各ピクチャはPPS715を指すが、いくつかの例では、単一のPPS715は、複数のピクチャのデータを含むことができることに留意されたい。例えば、複数の同様したピクチャが、同様したパラメータに従ってコーディングされ得る。そのような場合、単一のPPS715は、そのような同様ピクチャのためのデータを含み得る。PPS715は、対応するピクチャ内のスライスに利用可能なコーディングツール、量子化パラメータ、オフセットなどを示し得る。
【0102】
スライスヘッダ717は、ピクチャ内の各スライスに固有のパラメータを含む。したがって、ビデオシーケンス内のスライスごとに1つのスライスヘッダ717が存在し得る。スライスヘッダ717は、スライスタイプ情報、POC、参照ピクチャリスト、予測重み、タイルエントリポイント、デブロッキングパラメータなどを含み得る。いくつかの例では、ビットストリーム700はまた、単一のピクチャ内のすべてのスライスに適用されるパラメータを含むシンタックス構造である、ピクチャヘッダも含み得ることに留意されたい。このため、ピクチャヘッダおよびスライスヘッダ717は、いくつかのコンテキストにおいて交換可能に使用され得る。例えば、特定のパラメータは、そのようなパラメータがピクチャ内のすべてのスライスに共通であるかどうかに応じて、スライスヘッダ717とピクチャヘッダとの間で移動され得る。
【0103】
画像データ720は、インター予測および/またはイントラ予測に従ってエンコードされたビデオデータ、ならびに対応する変換および量子化された残差データを含む。例えば、画像データ720は、OLS721、レイヤ723、ピクチャ725、および/またはスライス727を含み得る。OLS721は、1つまたは複数のレイヤが出力レイヤとして指定されるレイヤ723のセットである。OLS721は、OLS625と実質的に同様であってもよい。レイヤ723は、nuh_layer_idなどのレイヤIDによって示されるように、指定された特性(例えば、共通解像度、フレームレート、画像サイズなど)および関連付けられた非VCL NALユニットを共有するVCL NALユニットのセットである。例えば、レイヤ723は、同じnuh_layer_idを共有するピクチャ725のセットを含み得る。レイヤ723は、レイヤ631および/または632と実質的に同様であってもよい。ピクチャ725は、フレームまたはそのフィールドを生成する輝度サンプルのアレイおよび/または彩度サンプルのアレイである。例えば、ピクチャ725は、表示のために出力され得る、または出力のために他のピクチャ725のコーディングを支持するために使用され得るコーディングされた画像である。ピクチャ725は、1つまたは複数のスライス727を含む。スライス727は、整数個の完全なタイルまたは整数個の単一のNALユニットに排他的に含まれるピクチャ725の連続する完全なコーディングツリーユニット(CTU)行(例えば、タイル内)として定義されてもよい。スライス727は、CTUおよび/またはコーディングツリーブロック(CTB)にさらに分割される。CTUは、コーディングツリーによって分割され得る所定のサイズのサンプルのグループである。CTBは、CTUのサブセットであり、CTUの輝度成分または彩度成分を含む。CTU/CTBは、コーディングツリーに基づいてコーディングブロックにさらに分割される。次いで、コーディングブロックは、予測メカニズムに従ってエンコード/デコードされ得る。
【0104】
ビットストリーム700は、一連のNALユニットとしてコーディングされ得る。NALユニットは、ビデオデータおよび/または支持シンタックスのためのコンテナである。NALユニットは、VCL NALユニットまたは非VCL NALユニットであり得る。VCL NALユニットは、画像データ720および関連付けられたスライスヘッダ717などのビデオデータを含むようにコーディングされたNALユニットである。非VCL NALユニットは、ビデオデータのデコード、適合性チェックの実行、または他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニットである。例えば、非VCL NALユニットは、VPS711、SPS713、PPS715、SEIメッセージ719、または他の支持シンタックスを含み得る。
【0105】
SEIメッセージ719は、デコードされたピクチャ内のサンプルの値を決定するためにデコード処理によって必要とされない情報を伝達する指定されたセマンティクスを有するシンタックス構造である。例えば、SEIメッセージ719は、HRD処理を支持するためのデータ、またはデコーダにおけるビットストリーム700のデコードに直接関連しない他の支持データを含み得る。SEIメッセージ719は、スケーラブルネスティングSEIメッセージであり得る。スケーラブルネスティングSEIメッセージは、1つもしくは複数のOLS721または1つもしくは複数のレイヤ723に対応する複数のスケーラブルネスティングされたSEIメッセージを含むメッセージである。したがって、スケーラブルネスティングSEIメッセージは、同じタイプのスケーラブルネスティングされたSEIメッセージのセットを含むSEIメッセージ719である。SEIメッセージ719は、CPBを管理するためにHRDを初期化するためのHRDパラメータを含むBP SEIメッセージを含み得る。SEIメッセージ719はまた、CPBおよび/またはDPBにおけるAUのための配信情報を管理するためのHRDパラメータを含むPT SEIメッセージを含み得る。SEIメッセージ719はまた、CPBおよび/またはDPBにおけるDUのための配信情報を管理するためのHRDパラメータを含むDUI SEIメッセージを含み得る。
【0106】
ビットストリーム700は、SEIメッセージ719の構成をシグナリングするための様々なフラグを含む。例えば、SEIメッセージ719は、SEIメッセージ719がスケーラブルネスティングSEIメッセージである場合、スケーラブルネスティング(SN)OLSフラグ731、OLSのスケーラブルネスティング数から1を引いた数(num_olss_minus1)733、スケーラブルネスティングOLSデルタから1を引いた数(ols_idx_delta_minus1[i])735、レイヤのスケーラブルネスティング数から1を引いた数(num_layers_minus1)737、および/またはスケーラブルネスティングレイヤID(layer_id[i])739を含み得る。
【0107】
スケーラブルネスティングOLSフラグ731は、スケーラブルネスティングSEIメッセージ内のスケーラブルネスティングされたSEIメッセージが、特定のOLS721に適用されるか、または特定のレイヤ723に適用されるかを指定するシンタックス要素である。例えば、スケーラブルネスティングOLSフラグ731は、スケーラブルネスティングされたSEIメッセージが(レイヤではなく)特定のOLS721に適用される場合に、1に設定され得る。さらに、スケーラブルネスティングOLSフラグ731は、スケーラブルネスティングされたSEIメッセージが(OLSではなく)特定のレイヤ723に適用される場合に、0に設定され得る。したがって、HRDは、SEIメッセージ719内のスケーラブルネスティングOLSフラグ731を読み取り、その中に含まれるすべてのスケーラブルネスティングされたSEIメッセージがOLS721またはレイヤ723を記述しているかどうかを決定し得る。
【0108】
スケーラブルネスティングnum_olss_minus1 733は、スケーラブルネスティングOLSフラグ731によって示されるように、SEIメッセージ719がOLS721に関連する場合に使用される。スケーラブルネスティングnum_olss_minus1 733は、スケーラブルネスティングSEIメッセージ内のスケーラブルネスティングされたSEIメッセージが適用されるOLS721の数を指定するシンタックス要素である。スケーラブルネスティングnum_olss_minus1 733は、マイナス1のフォーマットを使用し、したがって、実際の値よりも1小さいものを含む。例えば、スケーラブルネスティングSEIメッセージが5つのOLS721に関連するスケーラブルネスティングされたSEIメッセージを含む場合、スケーラブルネスティングnum_olss_minus1 733は、4の値に設定される。
【0109】
スケーラブルネスティングols_idx_delta_minus1[i]735は、スケーラブルネスティングOLSフラグ731によって示されるように、SEIメッセージ719がOLS721に関連する場合に使用される。スケーラブルネスティングols_idx_delta_minus1[i]735は、ネスティングOLSインデックスを導出するのに十分なデータを含むシンタックス要素である。具体的には、スケーラブルネスティングols_idx_delta_minus1[i]735は、スケーラブルネスティングSEIメッセージ内の各スケーラブルネスティングされたSEIメッセージのOLSインデックスを含む。このように、スケーラブルネスティングols_idx_delta_minus1[i]735を使用して、スケーラブルネスティングされたSEIメッセージをOLS721に相関付けることができる。具体例では、ols_idx_delta_minus1[i]735を使用して、各スケーラブルネスティングされたSEIメッセージのネスティングOLSインデックス(NestingOlsIdx)を決定し得る。NestingOlsIdxは、対応するスケーラブルネスティングされたSEIメッセージが適用されるOLS721のOLSインデックスを指定するシンタックス要素である。一例では、変数NestingOlsIdx[i]は、以下のように導出される。
【数3】
【0110】
スケーラブルネスティングnum_layers_minus1 737は、スケーラブルネスティングOLSフラグ731によって示されるように、SEIメッセージ719がレイヤ723に関連する場合に使用される。スケーラブルネスティングnum_layers_minus1 737は、スケーラブルネスティングSEIメッセージ内のスケーラブルネスティングされたSEIメッセージが適用されるレイヤ723の数を指定するシンタックス要素である。スケーラブルネスティングnum_layers_minus1 737は、マイナス1のフォーマットを使用し、したがって、実際の値よりも1小さいものを含む。例えば、スケーラブルネスティングSEIメッセージが5つのレイヤ723に関連するスケーラブルネスティングされたSEIメッセージを含む場合、スケーラブルネスティングnum_layers_minus1 737は、4の値に設定される。
【0111】
layer_id[i]739は、スケーラブルネスティングOLSフラグ731によって示されるように、SEIメッセージ719がレイヤ723に関連する場合に使用される。layer_id[i]739は、スケーラブルネスティングされたSEIメッセージが適用されるi番目のレイヤのnuh_layer_id値を指定するシンタックス要素である。このように、layer_id[i]739を使用して、スケーラブルネスティングされたSEIメッセージの各々を対応するレイヤ723に関連付けることができる。
【0112】
したがって、ビットストリーム700に記述されるフラグは、HRDおよび/またはデコーダが、SEIメッセージ719の構成を迅速に決定することを可能にする。HRD/デコーダは、スケーラブルネスティングされたメッセージのセットがOLS721またはレイヤ723に関連するかどうかを決定するために、スケーラブルネスティングOLSフラグ731を使用し得る。次いで、HRD/デコーダは、スケーラブルネスティングnum_olss_minus1 733を使用して対応するOLS721の数、およびスケーラブルネスティングols_idx_delta_minus1[i]735を使用して各対応するOLS721のインデックスを決定して、スケーラブルネスティングされたメッセージがOLS721に関連する場合、スケーラブルネスティングされたメッセージをどのように適用するかを決定できる。さらに、HRD/デコーダは、スケーラブルネスティングnum_layers_minus1 737を使用して対応するレイヤ723の数、およびlayer_id[i]739を使用して各対応するレイヤ723のインデックスを決定して、スケーラブルネスティングされたメッセージがレイヤ723に関連する場合、スケーラブルネスティングされたメッセージをどのように適用するかを決定できる。この手法は、SEIメッセージ719タイプの数を低減する。これは、複雑度を低減し、メッセージタイプの総数を低減する。これにより、各タイプのメッセージを識別するために使用されるメッセージIDデータの長さが低減される。その結果、コーディング効率が向上し、エンコーダおよびデコーダの両方でのプロセッサ、メモリ、および/またはネットワークシグナリングリソースの使用は低減される。
【0113】
ここで、前述の情報を以下でより詳細に説明する。レイヤ化されたビデオコーディングはまた、スケーラブルビデオコーディングまたはスケーラビリティを有するビデオコーディングとも呼ばれる。ビデオコーディングにおけるスケーラビリティは、マルチレイヤコーディング技術を使用することによってサポートされ得る。マルチレイヤビットストリームは、ベースレイヤ(base layer、BL)および1つまたは複数の拡張レイヤ(enhancement layer、EL)を備える。スケーラビリティの例は、空間スケーラビリティ、品質/信号対雑音比(signal to noise ratio、SNR)スケーラビリティ、マルチビュースケーラビリティ、フレームレートスケーラビリティなどを含む。マルチレイヤコーディング技術が使用される場合、ピクチャまたはその一部は、参照ピクチャを使用せずにコーディングされてもよく(イントラ予測)、同じレイヤ内の参照ピクチャを参照することによってコーディングされてもよく(インター予測)、および/または他のレイヤ内の参照ピクチャを参照することによってコーディングされてもよい(レイヤ間予測)。現在のピクチャのレイヤ間予測に使用される参照ピクチャは、レイヤ間参照ピクチャ(inter-layer reference picture、ILRP)と呼ばれる。図6は、異なるレイヤのピクチャが異なる解像度を有する空間スケーラビリティのためのマルチレイヤコーディングの例を示す。
【0114】
いくつかのビデオコーディングファミリーは、単一レイヤコーディングのためのプロファイルから分離されたプロファイルにおけるスケーラビリティの支持を提供する。スケーラブルビデオコーディング(SVC)は、空間、時間、および品質のスケーラビリティの支持を提供する高度なビデオコーディング(AVC)のスケーラブル拡張である。SVCの場合、下位レイヤからのコロケートブロックを使用してEL MBが予測されるかどうかを示すために、ELピクチャ内の各マクロブロック(MB)においてフラグがシグナリングされる。コロケートブロックからの予測は、テクスチャ、動きベクトル、および/またはコーディングモードを含み得る。SVCの実装は、それらの設計において修正されていないAVC実装を直接再利用しない場合がある。SVC ELマクロブロックシンタックスおよびデコード処理は、AVCシンタックスおよびデコード処理とは異なる。
【0115】
スケーラブルHEVC(SHVC)は、空間および品質のスケーラビリティの支持を提供するHEVCの拡張である。マルチビューHEVC(MV-HEVC)は、マルチビュースケーラビリティの支持を提供するHEVCの拡張である。3D HEVC(3D-HEVC)は、MV-HEVCよりも高度で効率的な3Dビデオコーディングの支持を提供するHEVCの拡張である。時間スケーラビリティは、単一レイヤHEVCコーデックの不可欠な部分として含まれ得る。HEVCのマルチレイヤ拡張では、レイヤ間予測に使用されるデコードされたピクチャは、同じAUのみから来て、ロングターム参照ピクチャ(long-term reference picture、LTRP)として扱われる。そのようなピクチャには、現在のレイヤ内の他の時間参照ピクチャと共に、参照ピクチャリスト内の参照インデックスが割り当てられる。レイヤ間予測(Inter-layer prediction、ILP)は、参照ピクチャリスト内のレイヤ間参照ピクチャを参照するための参照インデックスの値を設定することにより、予測ユニット(PU)レベルで達成される。空間スケーラビリティは、ILRPがエンコードまたはデコードされている現在のピクチャとは異なる空間解像度を有する場合、参照ピクチャまたはその一部をリサンプルする。参照ピクチャのリサンプリングは、ピクチャレベルまたはコーディングブロックレベルのいずれかで実現され得る。
【0116】
VVCはまた、レイヤ化されたビデオコーディングを支持し得る。VVCビットストリームは、複数のレイヤを含み得る。レイヤは、すべて互いに独立していてもよい。例えば、レイヤ間予測を使用せずに、各レイヤをコーディングし得る。この場合、レイヤはまた、サイマルキャストレイヤとも呼ばれる。場合によっては、レイヤの一部は、ILPを使用してコーディングされる。VPS内のフラグは、レイヤがサイマルキャストレイヤであるか、またはいくつかのレイヤがILPを使用するか、を示し得る。いくつかのレイヤがILPを使用する場合、レイヤ間のレイヤ依存関係はまた、VPSでシグナリングされる。SHVCおよびMV-HEVCとは異なり、VVCは、OLSを指定しない場合がある。OLSは、指定されたレイヤのセットを含み、レイヤのセット内の1つまたは複数のレイヤが出力レイヤであるように指定される。出力レイヤは、出力されるOLSのレイヤである。VVCのいくつかの実装形態では、レイヤがサイマルキャストレイヤである場合、デコードおよび出力のために1つのレイヤのみが選択され得る。VVCのいくつかの実装形態では、任意のレイヤがILPを使用するとき、すべてのレイヤを含むビットストリーム全体がデコードされるように指定される。さらに、レイヤのうち、特定のレイヤを出力レイヤと指定する。出力レイヤは、最高レイヤのみ、すべてのレイヤ、または最高レイヤに示された下位レイヤのセットを加えたものであると示され得る。
【0117】
前述の態様は、特定の問題を含む。スケーラブル拡張SHVCおよびMV-HEVCを含むHEVCは、SEIメッセージを様々な動作点に対応するビットストリームサブセットまたは特定のレイヤもしくはサブレイヤと関連付けるために、スケーラブルネスティングSEIメッセージを使用し得る。HEVCはまた、SEIメッセージをOLSにおけるビットストリーム分割と関連付けるためにビットストリーム分割ネスティングを使用し得る。ビットストリーム分割は、マルチレイヤビットストリームの1つまたは複数のレイヤを含む。各ビットストリーム分割ネスティングSEIメッセージは、スケーラブルネスティングSEIメッセージ内に含まれ得る。OLSのためのSEIメッセージのためのこの2レベルネスティングスキームは複雑である。
【0118】
一般に、本開示は、マルチレイヤビデオビットストリームにおける出力レイヤセットのためのSEIメッセージのスケーラブルネスティングのための手法を記載する。技術の説明は、VVCに基づく。しかしながら、技術はまた、他のビデオコーデック仕様に基づく、レイヤ化されたビデオコーディングにも適用される。
【0119】
上記の問題のうち1つまたは複数は、以下のように解決することができる。具体的には、本開示は、マルチレイヤビデオビットストリームにおけるOLSのためのSEIメッセージの単純かつ効率的なスケーラブルネスティングのための方法を含む。2レベルネスティングスキームを使用する代わりに、1つのネスティングSEIメッセージのみが、OLS内の1つまたは複数のレイヤに適用されるネスティングSEIメッセージを直接含むように定義される。
【0120】
前述のメカニズムの例示的な実装形態は、以下の通りである。例示的なスケーラブルネスティングSEIメッセージシンタックスは、以下の通りである。
【表1-1】
【表1-2】
【0121】
代替例では、nesting_ols_flagが1に等しいときにフラグが追加され得る。このフラグは、スケーラブルネスティングされたSEIメッセージが、すべてのOLSに適用され、各OLS内のすべてのレイヤに適用可能であることを示すために、1に等しく設定され得る。このフラグが1に等しく設定された場合、このフラグの後からnesting_num_seis_minus1までのすべてのシンタックス要素は、シグナリングされない。別の代替例では、フラグが使用され、スケーラブルネスティングされたSEIメッセージが、すべてのOLSに適用されることを示すために、1に等しく設定され得る。このフラグが1に等しい場合、シンタックス要素nesting_num_olss_minus1およびシンタックス要素nesting_ols_idx_delta_minus1[i]のリストは、シグナリングされない。別の代替例では、シンタックス要素nesting_ols_idx_delta_minus1[i]によってシグナリングされるネスティングOLSインデックス値は、デルタコーディングされる代わりに直接コーディングされる。別の代替例では、フラグが使用され、スケーラブルネスティングされたSEIメッセージが、OLSのすべてのレイヤに適用されることを示すために、1に等しく設定され得る。このフラグが1に等しい場合、シンタックス要素nesting_num_ols_layers_minus1[i]およびnesting_ols_layer_idx_delta_minus1[i][j]のリストは、シグナリングされない。別の代替例では、シンタックス要素nesting_ols_layer_idx_delta_minus1[i][j]によってシグナリングされるネスティングOLSレイヤインデックス値は、デルタコーディングされる代わりに直接コーディングされる。
【0122】
例示的なスケーラブルネスティングSEIメッセージセマンティクスは、以下の通りである。
【0123】
スケーラブルネスティングSEIメッセージは、SEIメッセージを、特定のOLSのコンテキストにおける特定のレイヤに、またはOLSのコンテキストにはない特定のレイヤに関連付けるためのメカニズムを提供する。スケーラブルネスティングSEIメッセージは、1つまたは複数のSEIメッセージを含む。スケーラブルネスティングSEIメッセージに含まれるSEIメッセージはまた、スケーラブルネスティングされたSEIメッセージとも呼ばれる。ビットストリーム適合性は、スケーラブルネスティングSEIメッセージ内にSEIメッセージを含める場合に以下の制限を適用することを要求し得る。
【0124】
132(デコードされたピクチャハッシュ)または133(スケーラブルネスティング)に等しいpayloadTypeを有するSEIメッセージは、スケーラブルネスティングSEIメッセージに含まれないべきである。スケーラブルネスティングSEIメッセージが、バッファリング期間、ピクチャタイミング、またはデコードユニット情報SEIメッセージを含む場合、スケーラブルネスティングSEIメッセージは、payloadTypeが0(バッファリング期間)、1(ピクチャタイミング)、または130(デコードユニット情報)に等しくない任意の他のSEIメッセージを含まないべきである。
【0125】
ビットストリーム適合性はまた、スケーラブルネスティングSEIメッセージを含むSEI NALユニットのnal_unit_typeの値に以下の制限を適用することを要求し得る。スケーラブルネスティングSEIメッセージが、payloadTypeが0(バッファリング期間)、1(ピクチャタイミング)、130(デコードユニット情報)、145(従属RAP指示)、または168(フレームフィールド情報)に等しいSEIメッセージを含む場合、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、PREFIX_SEI_NUTに等しいnal_unit_typeセットを有するべきである。スケーラブルネスティングSEIメッセージが、132(デコードされたピクチャハッシュ)に等しいpayloadTypeを有するSEIメッセージを含む場合、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、SUFFIX_SEI_NUTに等しいnal_unit_typeセットを有するべきである。
【0126】
nesting_ols_flagは、スケーラブルネスティングされたSEIメッセージが特定のOLSのコンテキストにおける特定のレイヤに適用されることを指定するために、1に等しく設定され得る。nesting_ols_flagは、スケーラブルネスティングされたSEIメッセージが、一般に、特定のレイヤに適用される(例えば、OLSのコンテキストにはない)ことを指定するために、0に等しく設定され得る。
【0127】
ビットストリーム適合性は、nesting_ols_flagの値に以下の制限を適用することを要求し得る。スケーラブルネスティングSEIメッセージが、payloadTypeが0(バッファリング期間)、1(ピクチャタイミング)、または130(デコードユニット情報)に等しいSEIメッセージを含む場合、nesting_ols_flagの値は、1に等しいべきである。スケーラブルネスティングSEIメッセージが、payloadTypeがVclAssociatedSeiList内の値に等しいSEIメッセージを含む場合、nesting_ols_flagの値は、0に等しいべきである。
【0128】
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]は、以下のように導出され得る。
【数4】
【0129】
nesting_num_ols_layers_minus1[i]に1を加えた数は、NestingOlsIdx[i]番目のOLSのコンテキストにおいて、スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定する。nesting_num_ols_layers_minus1[i]の値は、0~NumLayersInOls[NestingOlsIdx[i]]-1(両端を含む)の範囲内であるべきである。
【0130】
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(両端を含む)の範囲内であるべきである。
【0131】
変数NestingOlsLayerIdx[i][j]は、以下のように導出され得る。
【数5】
【0132】
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メッセージが、一般に、現在のSEI NALユニットのnuh_layer_idよりも大きいかまたはそれに等しいnuh_layer_idを有するすべてのレイヤに適用されることを指定するために、1に等しく設定され得る。nesting_all_layers_flagは、スケーラブルネスティングされたSEIメッセージが、一般に、現在のSEI NALユニットのnuh_layer_idよりも大きいかまたはそれに等しいnuh_layer_idを有するすべてのレイヤに適用されても適用されなくてもよいことを指定するために、0に等しく設定され得る。
【0133】
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である。
【0134】
nesting_ols_flagが1に等しい場合、スケーラブルネスティングされたSEIメッセージが一般に適用されるレイヤの数を指定する変数NestingNumLayersと、スケーラブルネスティングされたSEIメッセージが一般に適用されるレイヤのnuh_layer_id値のリストを指定する、0~NestingNumLayersー1(両端を含む)の範囲内のiについてのリストNestingLayerId[i]とは、以下のように導出され、ここで、nuh_layer_idは、現在のSEI NALユニットのnuh_layer_idである。
【数6】
【0135】
nesting_num_seis_minus1に1を加えた数は、スケーラブルネスティングされたSEIメッセージの数を指定する。nesting_num_seis_minus1の値は、0~63(両端を含む)の範囲内であるべきである。nesting_zero_bitは、0に等しく設定されるべきである。
【0136】
図8は、例示的なビデオコーディングデバイス800を示す概略図である。ビデオコーディングデバイス800は、本明細書に記載の開示された例/実施形態を実装するのに好適である。ビデオコーディングデバイス800は、ネットワークを介して上流および/または下流でデータを通信するための送信機および/または受信機を含む、下流ポート820、上流ポート850、および/またはトランシーバユニット(Tx/Rx)810を備える。ビデオコーディングデバイス800はまた、データを処理するための論理ユニットおよび/または中央処理デバイス(central processing unit、CPU)を含むプロセッサ830と、データを記憶するためのメモリ832とを含む。ビデオコーディングデバイス800はまた、電気、光、または無線通信ネットワークを介したデータの通信のために、上流ポート850および/または下流ポート820に結合された、電気、光-電気(OE)コンポーネント、電気-光(EO)コンポーネント、および/または無線通信コンポーネントを備え得る。ビデオコーディングデバイス800はまた、ユーザとの間でデータを通信するための入力および/または出力(I/O)デバイス860を含み得る。I/Oデバイス860は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカなどの出力デバイスを含み得る。I/Oデバイス860はまた、キーボード、マウス、トラックボールなどの入力デバイス、および/またはそのような出力デバイスと対話するための対応するインターフェースを含み得る。
【0137】
プロセッサ830は、ハードウェアおよびソフトウェアにより実装される。プロセッサ830は、1つまたは複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ830は、下流ポート820、Tx/Rx810、上流ポート850、およびメモリ832と通信する。プロセッサ830は、コーディングモジュール814を備える。コーディングモジュール814は、マルチレイヤビデオシーケンス600、および/またはビットストリーム700を使用し得る方法100、900、および1000など、本明細書に記載された開示された実施形態を実装する。コーディングモジュール814はまた、本明細書に記載された任意の他の方法/メカニズムを実装し得る。さらに、コーディングモジュール814は、コーデックシステム200、エンコーダ300、デコーダ400、および/またはHRD500を実装し得る。例えば、コーディングモジュール814は、HRDを実装するために使用され得る。さらに、コーディングモジュール814を使用して、スケーラブルネスティングSEIメッセージ内のスケーラブルネスティングされたSEIメッセージの明瞭かつ簡潔なシグナリングを支持するために、対応するフラグを有するスケーラブルネスティングSEIメッセージをエンコードし得る。したがって、コーディングモジュール814は、上述した問題のうち1つまたは複数に対処するためのメカニズムを実行するように構成され得る。したがって、コーディングモジュール814は、ビデオデータをコーディングするときに、ビデオコーディングデバイス800に追加の機能性および/またはコーディング効率を提供させる。このように、コーディングモジュール814は、ビデオコーディングデバイス800の機能性を改善し、ビデオコーディング技術に特有の問題に対処する。さらに、コーディングモジュール814は、ビデオコーディングデバイス800を異なる状態に変換する。あるいは、コーディングモジュール814は、(例えば、非一時的媒体に記憶されたコンピュータプログラム製品として)メモリ832に記憶され、プロセッサ830によって実行される命令として実装することができる。
【0138】
メモリ832は、ディスク、テープドライブ、ソリッドステートドライブ、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、三元連想メモリ(TCAM)、スタティックランダムアクセスメモリ(SRAM)などの1つまたは複数のメモリタイプを含む。メモリ832は、オーバーフローデータ記憶デバイスとして使用され、そのようなプログラムが実行のために選択されたときにプログラムを記憶し、プログラム実行中に読み出される命令およびデータを記憶することができる。
【0139】
図9は、スケーラブルネスティングSEIメッセージを含むビットストリーム700などのビットストリームにビデオシーケンスをエンコードする例示的な方法900のフローチャートである。方法900は、方法100を実行するときに、コーデックシステム200、エンコーダ300、および/またはビデオコーディングデバイス800などのエンコーダによって使用され得る。さらに、方法900は、HRD500上で動作し得、したがって、マルチレイヤビデオシーケンス600に対して適合性試験を実行することができる。
【0140】
方法900は、エンコーダがビデオシーケンスを受信し、例えば、ユーザ入力に基づいて、そのビデオシーケンスをマルチレイヤビットストリームにエンコードすることを決定したときに開始することができる。段階901において、エンコーダは、ビデオシーケンスを1つまたは複数のレイヤにエンコードし、レイヤをマルチレイヤビットストリームにエンコードする。レイヤは、同じレイヤIDおよび関連付けられた非VCL NALユニットを有するVCL NALユニットのセットを含み得る。例えば、レイヤは、エンコードされたピクチャのビデオデータを含むVCL NALユニットのセットと、そのようなピクチャをコーディングするために使用される任意のパラメータセットとを含み得る。レイヤは、OLSに含まれ得る。例えば、OLSは、出力レイヤと、レイヤ間予測に従って出力レイヤをデコードするために使用され得る任意の支持レイヤとを含み得る。このように、OLSは、例えば、対応する画像サイズ、SNR、フレームレートなどでビデオシーケンスの表現をデコードするのに十分なデータを含み得る。ビデオシーケンスはいくつかの表現にコーディングされ得るので、ビデオシーケンスは、必要に応じていくつかのOLSに編成されるいくつかのレイヤを含み得る。このようにして、エンコーダは、要求に応じて、デコーダに送信するために、対応するレイヤを有するOLSを選択し得る。
【0141】
段階903において、エンコーダは、SEIメッセージをビットストリームにエンコードする。SEIメッセージは、デコードに使用されないデータを含むシンタックス構造である。例えば、SEIメッセージは、ビットストリームが標準に適合していることを保証するために適合性試験を支持するためのデータを含み得る。マルチレイヤビットストリームと共に使用されるときに簡略化されたシグナリングを支持するために、SEIメッセージは、スケーラブルネスティングSEIメッセージとしてエンコードされる。スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージのセットを含む。スケーラブルネスティングされたSEIメッセージは、OLSのうち1つまたは複数および/またはレイヤのうち1つまたは複数にそれぞれ適用され得る。簡略化されたシグナリングを支持するために、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含む。スケーラブルネスティングOLSフラグは、スケーラブルネスティングSEIメッセージ内のスケーラブルネスティングされたSEIメッセージが、特定のOLSに適用されるか、または特定のレイヤに適用されるかを指定するように設定され得る。例えば、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが(例えば、レイヤではなく)特定の/対応するOLSに適用されることを指定する場合に、1に設定され得る。別の例として、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが(例えば、OLSではなく)特定の/対応するレイヤに適用されることを指定する場合に、0に設定され得る。スケーラブルネスティングSEIメッセージは、いくつかのタイプのスケーラブルネスティングされたSEIメッセージを含み得る。具体例として、スケーラブルネスティングされたSEIメッセージは、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、および/またはデコードユニット情報SEIメッセージを含み得る。スケーラブルネスティングOLSフラグは、スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報である任意のSEIメッセージを含む場合、スケーラブルネスティングされたSEIメッセージが(例えば、レイヤではなく)特定のOLSに適用されることを示すために、1に設定され得る。
【0142】
スケーラブルネスティングSEIメッセージは、対応するスケーラブルネスティングされたSEIメッセージがエンコーダにおいてHRDによってどのように使用されるべきかを示すための他のデータを含み得る。例えば、スケーラブルネスティングSEIメッセージは、対応するスケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定するスケーラブルネスティングnum_olss_minus1シンタックス要素を含み得る。スケーラブルネスティングnum_olss_minus1シンタックス要素は、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがOLSに適用されることを示すために1に設定される場合に使用され得る。スケーラブルネスティングnum_olss_minus1シンタックス要素の値は、0~TotalNumOlss-1(両端を含む)の範囲内に留まるように制約され得る。同様の方式で、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがレイヤに適用されることを示すために0に設定される場合、対応するスケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定するスケーラブルネスティングnum_layers_minus1を含み得る。
【0143】
スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素を含み得、これは、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがOLSに適用されることを示すために1に等しい場合、スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用される。具体的には、スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素を使用して、各スケーラブルネスティングされたSEIメッセージに対応するOLSを指定し得る。このように、スケーラブルネスティングnum_olss_minus1を使用して、スケーラブルネスティングSEIメッセージによって参照されるOLSの数を決定し得、スケーラブルネスティングols_idx_delta_minus1[i]を使用して、各スケーラブルネスティングされたSEIメッセージを対応するOLSに相関付けることができる。スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値は、0~TotalNumOlss-2(両端を含む)の範囲内に留まるように制約され得る。具体例では、NestingOlsIdx[i]は、以下のように導出される。
【数7】
【0144】
同様の方式で、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがレイヤに適用されることを示すために0に等しい場合、スケーラブルネスティングlayer_id[i]を含み得る。スケーラブルネスティングlayer_id[i]は、スケーラブルネスティングされたSEIメッセージが適用されるi番目のレイヤのレイヤID(例えば、nuh_layer_id)値を指定する。
【0145】
段階905において、エンコーダにおいて動作するHRDは、スケーラブルネスティングSEIメッセージに基づいて、ビットストリーム適合性試験のセットを実行することができる。例えば、HRDは、スケーラブルネスティングSEIメッセージ内のフラグを読み出して、スケーラブルネスティングSEIメッセージに含まれるスケーラブルネスティングされたSEIメッセージをどのように解釈すべきかを決定し得る。次いで、HRDは、スケーラブルネスティングされたSEIメッセージを読み出して、OLSおよび/またはレイヤが標準に適合しているかどうかをチェックする方法を決定し得る。次いで、HRDは、スケーラブルネスティングされたSEIメッセージおよび/またはスケーラブルネスティングSEIメッセージ内の対応するフラグに基づいて、OLSおよび/またはレイヤに対する適合性試験を実行することができる。段階907において、エンコーダは、要求に応じて、デコーダに向けて通信するためにビットストリームを記憶し得る。
【0146】
図10は、スケーラブルネスティングSEIメッセージを含むビットストリーム700などのビットストリームからビデオシーケンスをデコードする例示的な方法1000のフローチャートである。方法1000は、方法100を実行するときに、コーデックシステム200、デコーダ400、および/またはビデオコーディングデバイス800などのデコーダによって使用され得る。さらに、方法1000は、HRD500などのHRDによって適合性がチェックされたマルチレイヤビデオシーケンス600上で使用され得る。
【0147】
方法1000は、デコーダが、例えば、方法900の結果として、マルチレイヤビデオシーケンスを表すコーディングされたデータのビットストリームを受信し始めるときに開始し得る。段階1001において、デコーダは、1つまたは複数のレイヤを含むビットストリームを受信する。レイヤは、同じレイヤIDおよび関連付けられた非VCL NALユニットを有するVCL NALユニットのセットを含み得る。例えば、レイヤは、エンコードされたピクチャのビデオデータを含むVCL NALユニットのセットと、そのようなピクチャをコーディングするために使用される任意のパラメータセットとを含み得る。レイヤは、OLSに含まれ得る。例えば、OLSは、出力レイヤと、レイヤ間予測に従って出力レイヤをデコードするために使用され得る任意の支持レイヤとを含み得る。このように、OLSは、例えば、対応する画像サイズ、SNR、フレームレートなどでビデオシーケンスの表現をデコードするのに十分なデータを含み得る。ビデオシーケンスはいくつかの表現にコーディングされ得るので、ビデオシーケンスは、必要に応じていくつかのOLSに編成されるいくつかのレイヤを含み得る。このようにして、デコーダは、ビデオシーケンスの特定の表現をデコードおよび表示するために、必要に応じて対応するレイヤを有する指定されたOLSを要求および受信し得る。
【0148】
ビットストリームはまた、1つまたは複数のスケーラブルネスティングSEIメッセージを含む。SEIメッセージは、デコードに使用されないデータを含むシンタックス構造である。例えば、SEIメッセージは、ビットストリームが標準に適合していることを保証するために適合性試験を支持するためのデータを含み得る。マルチレイヤビットストリームと共に使用されるときに簡略化されたシグナリングを支持するために、SEIメッセージは、スケーラブルネスティングSEIメッセージにおいてコーディングされる。スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージのセットを含む。スケーラブルネスティングされたSEIメッセージは、OLSのうち1つまたは複数および/またはレイヤのうち1つまたは複数にそれぞれ適用され得る。簡略化されたシグナリングを支持するために、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグを含む。スケーラブルネスティングOLSフラグは、スケーラブルネスティングSEIメッセージ内のスケーラブルネスティングされたSEIメッセージが、特定のOLSに適用されるか、または特定のレイヤに適用されるかを指定するように設定され得る。例えば、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが(例えば、レイヤではなく)特定の/対応するOLSに適用されることを指定する場合に、1に設定され得る。別の例として、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが(例えば、OLSではなく)特定の/対応するレイヤに適用されることを指定する場合に、0に設定され得る。スケーラブルネスティングSEIメッセージは、いくつかのタイプのスケーラブルネスティングされたSEIメッセージを含み得る。具体例として、スケーラブルネスティングされたSEIメッセージは、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、および/またはデコードユニット情報SEIメッセージを含み得る。スケーラブルネスティングOLSフラグは、スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報である任意のSEIメッセージを含む場合、スケーラブルネスティングされたSEIメッセージが(例えば、レイヤではなく)特定のOLSに適用されることを示すために、1に設定され得る。
【0149】
スケーラブルネスティングSEIメッセージは、対応するスケーラブルネスティングされたSEIメッセージがエンコーダにおいてHRDによってどのように使用されるべきかを示すための他のデータを含み得る。例えば、スケーラブルネスティングSEIメッセージは、対応するスケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定するスケーラブルネスティングnum_olss_minus1シンタックス要素を含み得る。スケーラブルネスティングnum_olss_minus1シンタックス要素は、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがOLSに適用されることを示すために1に設定される場合に使用され得る。スケーラブルネスティングnum_olss_minus1シンタックス要素の値は、0~TotalNumOlss-1(両端を含む)の範囲内に留まるように制約され得る。同様の方式で、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがレイヤに適用されることを示すために0に設定される場合、対応するスケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定するスケーラブルネスティングnum_layers_minus1を含み得る。
【0150】
スケーラブルネスティングSEIメッセージはまた、スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素を含み得、これは、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがOLSに適用されることを示すために1に等しい場合、スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用される。具体的には、スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素を使用して、各スケーラブルネスティングされたSEIメッセージに対応するOLSを指定し得る。このように、スケーラブルネスティングnum_olss_minus1を使用して、スケーラブルネスティングSEIメッセージによって参照されるOLSの数を決定し得、スケーラブルネスティングols_idx_delta_minus1[i]を使用して、各スケーラブルネスティングされたSEIメッセージを対応するOLSに相関付けることができる。スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値は、0~TotalNumOlss-2(両端を含む)の範囲内に留まるように制約され得る。具体例では、NestingOlsIdx[i]は、以下のように導出される。
【数8】
【0151】
同様の方式で、スケーラブルネスティングSEIメッセージは、スケーラブルネスティングOLSフラグが、スケーラブルネスティングされたSEIメッセージがレイヤに適用されることを示すために0に等しい場合、スケーラブルネスティングlayer_id[i]を含み得る。スケーラブルネスティングlayer_id[i]は、スケーラブルネスティングされたSEIメッセージが適用されるi番目のレイヤのレイヤID(例えば、nuh_layer_id)値を指定する。
【0152】
段階1003において、デコーダは、スケーラブルネスティングされたSEIメッセージに基づいて、1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成し得る。例えば、スケーラブルネスティングSEIメッセージの存在は、ビットストリームがエンコーダにおいてHRDによってチェックされており、したがって、標準に適合していることを示し得る。したがって、スケーラブルネスティングSEIメッセージの存在は、ビットストリームがデコードされ得ることを示す。段階1005において、デコーダは、デコードされたビデオシーケンスの一部として表示するためにデコードされたピクチャを転送し得る。
【0153】
図11は、スケーラブルネスティングSEIメッセージを含むビットストリームを使用して、ビデオシーケンスをコーディングする例示的なシステム1100の概略図である。システム1100は、コーデックシステム200、エンコーダ300、デコーダ400、および/またはビデオコーディングデバイス800などのエンコーダおよびデコーダによって実装され得る。さらに、システム1100は、HRD500を使用して、マルチレイヤビデオシーケンス600、および/またはビットストリーム700に対して適合性試験を実行することができる。加えて、システム1100は、方法100、900、および/または1000を実装するときに使用され得る。
【0154】
システム1100は、ビデオエンコーダ1102を含む。ビデオエンコーダ1102は、1つまたは複数のレイヤを備えるビットストリームをエンコードするためのエンコードモジュール1103を備える。エンコードモジュール1103はさらに、スケーラブルネスティング補足拡張情報(SEI)メッセージをビットストリームにエンコードするためのものであり、スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される。ビデオエンコーダ1102は、スケーラブルネスティングSEIメッセージに基づいて、ビットストリーム適合性試験のセットを実行するHRDモジュール1105をさらに含む。ビデオエンコーダ1102はさらに、デコーダに向けて通信するためにビットストリームを記憶するための記憶モジュール1106を備える。ビデオエンコーダ1102はさらに、ビットストリームをビデオデコーダ1110に向けて送信するための送信モジュール1107を備える。ビデオエンコーダ1102はさらに、方法900の段階のうちのいずれかを実行するように構成され得る。
【0155】
システム1100はまた、ビデオデコーダ1110を含む。ビデオデコーダ1110は、1つまたは複数のレイヤおよびスケーラブルネスティング補足拡張情報(SEI)メッセージを含むビットストリームを受信する受信モジュール1111を含み、スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、スケーラブルネスティングOLSフラグは、スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される。ビデオデコーダ1110はさらに、スケーラブルネスティングされたSEIメッセージに基づいて、1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成するデコードモジュール1113を含む。ビデオデコーダ1110はさらに、デコードされたビデオシーケンスの一部として表示するためにデコードされたピクチャを転送するための転送モジュール1115を備える。ビデオデコーダ1110はさらに、方法1000の段階のうちのいずれかを実行するように構成され得る。
【0156】
第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、または別の媒体を除いて、介在するコンポーネントがない場合、第1のコンポーネントは第2のコンポーネントに直接結合される。第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、または別の媒体以外の介在するコンポーネントがある場合、第1のコンポーネントは第2のコンポーネントに間接的に結合される。「結合された」という用語およびその変形は、直接結合されたものおよび間接的に結合されたものの両方を含む。「約」という用語の使用は、特に明記しない限り、後続の数の±10%を含む範囲を意味する。
【0157】
本明細書に記載の例示的な方法の段階は、必ずしも記載された順序で実行される必要はなく、そのような方法の段階の順序は、単なる例示であると理解されるべきであることも理解されたい。同様に、本開示の様々な実施形態と一致する方法では、そのような方法に追加の段階を含めることができ、特定の段階を省略または組み合わせることができる。
【0158】
本開示ではいくつかの実施形態が提供されたが、開示されたシステムおよび方法は、本開示の趣旨または範囲から逸脱することなく、多くの他の特定の形態で具現化され得ることが理解されよう。本実施例は、例示的であり、限定的ではないと考えられるべきであり、その意図は本明細書に与えられた詳細に限定されるべきではない。例えば、様々な要素またはコンポーネントは、別のシステムに組み合わされ、もしくは統合されてもよく、または特定の特徴は、省略され、もしくは実装されなくてもよい。
【0159】
加えて、本開示の範囲から逸脱することなく、様々な実施形態において個別のまたは別個のものとして説明および図示された技術、システム、サブシステム、および方法は、他のシステム、コンポーネント、技術、または方法と組み合わされても、または統合されてもよい。変更、置換、および変更の他の例は、当業者によって確認可能であり、本明細書に開示された趣旨および範囲から逸脱することなく行うことができる。
[他の考えられる項目]
(項目1)
デコーダによって実装される方法であって、
前記デコーダの受信機によって、1つまたは複数のレイヤおよびスケーラブルネスティング補足拡張情報(SEI)メッセージを含むビットストリームを受信する段階であって、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、受信する段階と、
前記デコーダのプロセッサによって、前記スケーラブルネスティングされたSEIメッセージに基づいて、前記1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成する段階と
を備える方法。
(項目2)
前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSに適用されることを指定する場合、1に設定され、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のレイヤに適用されることを指定する場合、0に設定される、項目1に記載の方法。
(項目3)
前記スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報であるSEIメッセージを含む場合、前記スケーラブルネスティングOLSフラグは、1に設定される、項目1または2に記載の方法。
(項目4)
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に設定される場合、OLSのスケーラブルネスティング数から1を引いた数(num_olss_minus1)のシンタックス要素を含み、前記スケーラブルネスティングnum_olss_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定し、前記スケーラブルネスティングnum_olss_minus1シンタックス要素の値は、0~OLSの総数(TotalNumOlss)-1(両端を含む)の範囲内にある、項目1~3のいずれかに記載の方法。
(項目5)
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に等しい場合、前記スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用されるスケーラブルネスティングOLSデルタから1を引いた数(ols_idx_delta_minus1[i])のシンタックス要素を含み、前記スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値は、0~前記TotalNumOlss-2(両端を含む)までの範囲内にある、項目1~4のいずれかに記載の方法。
(項目6)
以下のようにNestingOlsIdx[i]を導出する段階をさらに含む、項目1~5のいずれかに記載の方法:
【数9】
(項目7)
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが0に設定される場合、レイヤのスケーラブルネスティング数から1を引いた数(num_layers_minus1)のシンタックス要素を含み、前記スケーラブルネスティングnum_layers_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定する、項目1~6のいずれかに記載の方法。
(項目8)
エンコーダによって実装される方法であって、
前記エンコーダのプロセッサによって、1つまたは複数のレイヤを含むビットストリームをエンコードする段階と、
前記プロセッサによって、スケーラブルネスティング補足拡張情報(SEI)メッセージを前記ビットストリームにエンコードする段階であって、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、エンコードする段階と、
前記プロセッサによって、前記スケーラブルネスティングSEIメッセージに基づいて、ビットストリーム適合性試験のセットを実行する段階と、
前記プロセッサに結合されたメモリによって、デコーダに向けて通信するための前記ビットストリームを記憶する段階と、
を含む、方法。
(項目9)
前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSに適用されることを指定する場合、1に設定され、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のレイヤに適用されることを指定する場合、0に設定される、項目8に記載の方法。
(項目10)
前記スケーラブルネスティングSEIメッセージが、ペイロードタイプがバッファリング期間、ピクチャタイミング、またはデコードユニット情報であるSEIメッセージを含む場合、前記スケーラブルネスティングOLSフラグは、1に設定される、項目8または9に記載の方法。
(項目11)
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に設定される場合、OLSのスケーラブルネスティング数から1を引いた数(num_olss_minus1)のシンタックス要素を含み、前記スケーラブルネスティングnum_olss_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるOLSの数を指定し、前記スケーラブルネスティングnum_olss_minus1シンタックス要素の値は、0~OLSの総数(TotalNumOlss)-1(両端を含む)の範囲内にある、項目8~10のいずれかに記載の方法。
(項目12)
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが1に等しい場合、前記スケーラブルネスティングされたSEIメッセージが適用されるi番目のOLSのOLSインデックスを指定するネスティングOLSインデックス(NestingOlsIdx[i])を導出するために使用されるスケーラブルネスティングOLSデルタから1を引いた数(ols_idx_delta_minus1[i])のシンタックス要素を含み、前記スケーラブルネスティングols_idx_delta_minus1[i]シンタックス要素の値は、0~前記TotalNumOlss-2(両端を含む)までの範囲内にある、項目8~11のいずれかに記載の方法。
(項目13)
以下のようにNestingOlsIdx[i]を導出する段階をさらに含む、項目8~12のいずれかに記載の方法:
【数10】
(項目14)
前記スケーラブルネスティングSEIメッセージは、前記スケーラブルネスティングOLSフラグが0に設定される場合、レイヤのスケーラブルネスティング数から1を引いた数(num_layers_minus1)のシンタックス要素を含み、前記スケーラブルネスティングnum_layers_minus1シンタックス要素は、前記スケーラブルネスティングされたSEIメッセージが適用されるレイヤの数を指定する、項目8~13のいずれかに記載の方法。
(項目15)
ビデオコーディングデバイスであって、
プロセッサと、前記プロセッサに結合された受信機と、前記プロセッサに結合されたメモリと、前記プロセッサに結合された送信機とを備え、前記プロセッサ、前記受信機、前記メモリ、および前記送信機は、項目1~14のいずれかに記載の方法を実行するように構成される、ビデオコーディングデバイス。
(項目16)
ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を含む非一時的コンピュータ可読媒体であって、プロセッサによって実行された場合、前記ビデオコーディングデバイスに項目1~14のいずれかに記載の方法を実行させるように、前記コンピュータプログラム製品は、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体。
(項目17)
1つまたは複数のレイヤおよびスケーラブルネスティング補足拡張情報(SEI)メッセージを含むビットストリームを受信する受信手段であって、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、受信手段と、
前記スケーラブルネスティングされたSEIメッセージに基づいて、前記1つまたは複数のレイヤからのコーディングされたピクチャをデコードして、デコードされたピクチャを生成するデコード手段と、
デコードされたビデオシーケンスの一部として表示するために前記デコードされたピクチャを転送する転送手段と
を備えるデコーダ。
(項目18)
前記デコーダは、項目1~7のいずれかに記載の方法を実行するようにさらに構成される、項目17に記載のデコーダ。
(項目19)
エンコーダであって、
エンコード手段であって、
1つまたは複数のレイヤを含むビットストリームをエンコードする段階と、
スケーラブルネスティング補足拡張情報(SEI)メッセージを前記ビットストリームにエンコードする段階であって、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のスケーラブルネスティングされたSEIメッセージおよびスケーラブルネスティング出力レイヤセット(OLS)フラグを含み、前記スケーラブルネスティングOLSフラグは、前記スケーラブルネスティングされたSEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するように設定される、エンコードする段階と、
のためのエンコード手段と、
前記スケーラブルネスティングSEIメッセージに基づいて、ビットストリーム適合性試験のセットを実行する仮想参照デコーダ(HRD)手段と、
デコーダに向けて通信するための前記ビットストリームを記憶する記憶手段と、
を含む、エンコーダ。
(項目20)
前記エンコーダは、項目8~14のいずれかに記載の方法を実行するようにさらに構成される、項目19に記載のエンコーダ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11