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

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

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

特開2024-99515ビデオコーディングにおけるサブレイヤのためのエラー軽減
<>
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図1
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図2
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図3
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図4
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図5
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図6
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図7
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図8
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図9
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図10
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図11
  • 特開-ビデオコーディングにおけるサブレイヤのためのエラー軽減 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024099515
(43)【公開日】2024-07-25
(54)【発明の名称】ビデオコーディングにおけるサブレイヤのためのエラー軽減
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240718BHJP
   H04N 19/31 20140101ALI20240718BHJP
【FI】
H04N19/70
H04N19/31
【審査請求】有
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024039214
(22)【出願日】2024-03-13
(62)【分割の表示】P 2022518742の分割
【原出願日】2020-09-08
(31)【優先権主張番号】62/905,244
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ワン、イエ-クイ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA03
5C159MA04
5C159MA17
5C159MA33
5C159MC11
5C159ME11
5C159PP04
5C159RB09
5C159RC12
5C159UA02
5C159UA05
(57)【要約】      (修正有)
【課題】仮想リファレンスデコーダ(HRD)のパラメータ変更に関する装置及び方法を提供する。
【解決手段】ビットストリームを記憶するための方法は、ビデオパラメータセット(VPS)811と1または複数のサブレイヤとを含むビットストリーム800を符号化することを含む。バッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)831を含むBP補助強化情報(SEI)メッセージ819もビットストリームに符号化される。bp_max_sublayers_minus1は、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定される。仮想リファレンスデコーダは、BP SEIメッセージに基づいて初期化される。ビットストリーム適合性試験のセットが、サブレイヤに対して実行される。ビットストリームは、デコーダへの通信のために記憶される。
【選択図】図8
【特許請求の範囲】
【請求項1】
ビットストリームを記憶するための装置であって、
1または複数の記憶媒体および受信機
を備え、
前記受信機が前記ビットストリームを受信するように構成され、
前記ビットストリームが、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から前記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含み、
前記1または複数の記憶媒体が、前記ビットストリームを記憶するように構成される、
装置。
【請求項2】
前記bp_max_sublayers_minus1が、バッファリング期間補助強化情報(SEI)メッセージに含まれ、前記BP SEIメッセージが、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられたパラメータを含む、請求項1に記載の装置。
【請求項3】
前記BP SEIメッセージ中の前記パラメータが、初期コード化ピクチャバッファ(CPB)除去遅延と初期CPB除去オフセットとを含む、請求項2に記載の装置。
【請求項4】
前記VPS中で示されるサブレイヤの前記最大数が、VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)に含まれる、請求項1~3のいずれか一項に記載の装置。
【請求項5】
前記BP SEIメッセージが、復号順序において、関連するアクセスユニット(AU)の位置における仮想リファレンスデコーダ(HRD)の初期化のためのものである、請求項1~4のいずれか一項に記載の装置。
【請求項6】
前記ビットストリームが、時間スケーラブルビットストリームであり、前記1または複数のサブレイヤが、前記ビットストリームの時間スケーラブルレイヤであり、各サブレイヤが、ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットと、テンポラル識別子(TemporalId)変数の値が同じである関連する非VCL NALユニットとを含む、請求項1~5のいずれか一項に記載の装置。
【請求項7】
ビットストリームを記憶するための方法であって、
受信機を通して前記ビットストリームを受信する段階と、
1または複数の記憶媒体に前記ビットストリームを記憶する段階と、
を備え、
前記ビットストリームが、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から前記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含む、
方法。
【請求項8】
前記bp_max_sublayers_minus1が、バッファリング期間補助強化情報(SEI)メッセージに含まれ、前記BP SEIメッセージが、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられたパラメータを含む、請求項7に記載の方法。
【請求項9】
前記BP SEIメッセージ中の前記パラメータが、初期コード化ピクチャバッファ(CPB)除去遅延と初期CPB除去オフセットとを含む、請求項7または8に記載の方法。
【請求項10】
前記VPS中で示されるサブレイヤの前記最大数が、VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)に含まれる、請求項7~9のいずれか一項に記載の方法。
【請求項11】
前記ビットストリームが、時間スケーラブルビットストリームであり、前記1または複数のサブレイヤが、前記ビットストリームの時間スケーラブルレイヤであり、各サブレイヤが、ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットと、テンポラル識別子(TemporalId)変数の値が同じである関連する非VCL NALユニットとを含む、請求項7~10のいずれか一項に記載の方法。
【請求項12】
ビットストリームを送信するためのデバイスであって、前記デバイスが、
前記ビットストリームを記憶するように構成された少なくとも1つの記憶媒体であって、前記ビットストリームが、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から前記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含む、少なくとも1つの記憶媒体と、
前記少なくとも1つの記憶媒体の1つから1または複数のビットストリームを取得するように構成される少なくとも1つのプロセッサと、
前記1または複数のビットストリームを別のデバイスへ送信するように構成された送信機と、
を備える、
デバイス。
【請求項13】
ビットストリームを送信する方法であって、前記方法が、
少なくとも1つの記憶媒体から前記ビットストリームを取得する段階であって、前記少なくとも1つの記憶媒体が少なくとも1つのビットストリームを記憶しており、前記ビットストリームが、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から前記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含む、取得する段階と、
前記ビットストリームを別のデバイスへ送信する段階と、
を備える、
方法。
【請求項14】
ビットストリームを処理するシステムであって、
符号化デバイスと、1または複数の記憶デバイスと、復号デバイスと、
を備え、
前記符号化デバイスが、ビデオ信号を取得し、前記ビデオ信号を符号化して前記ビットストリームを取得するように構成され、
前記ビットストリームが、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から前記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含み、
前記復号デバイスが、前記ビットストリームを復号するために使用される、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、参照により本明細書に組み込まれる、Ye-Kui Wangによって2019年9月24日に出願された「Hypothetical Reference Decoder(HRD)for Multi-Layer Video Bitstreams」と題する米国仮特許出願第62/905,244号の利益を主張する。
【0002】
本開示は、概してビデオコーディングに関し、詳細には、マルチレイヤビットストリームの効率的な符号化および/または適合性試験をサポートするための仮想リファレンスデコーダ(HRD)パラメータ変更に関する。
【背景技術】
【0003】
比較的短いビデオであっても、その描写に必要なビデオデータ量は膨大なものとなり、帯域の限られた通信ネットワークでデータのストリーミングなどの通信を行う場合には、困難が伴う場合がある。そのため、現代の通信ネットワークでは、ビデオデータを圧縮して通信するのが一般的である。また、ビデオがストレージデバイスに記憶されるとき、メモリリソースに制限があるため、ビデオのサイズが問題になる可能性がある。ビデオ圧縮デバイスは、多くの場合、送信または記憶の前に、ソースにおいてソフトウェアおよび/またはハードウェアを使用してビデオデータをコーディングし、それによってデジタルビデオ画像を表現するために必要とされるデータの量を減少させる。圧縮後、圧縮されたデータは、配信先でビデオ復元デバイスによって受信され、ビデオデータが復号される。ネットワークリソースが限られ、ビデオの高画質化がますます求められる中、画質をほとんどまたは全く犠牲にすることなく圧縮比を向上させる圧縮復元技術の向上が望まれている。
【発明の概要】
【0004】
一実施形態では、本開示は、デコーダによって実装される方法を含み、方法は、デコーダの受信機によって、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含むビットストリームを受信することと、デコーダのプロセッサによって、1または複数のサブレイヤからピクチャを復号することと、を含む。
【0005】
ビデオコーディングシステムは、ビットストリームがデコーダによって復号可能であることを保証するために種々の適合性試験を採用している。例えば、適合性検査には、適合性についてビットストリーム全体を試験することと、次いで適合性についてビットストリームの各レイヤを試験することと、最後に適合性について潜在的な復号可能出力を検査することと、が含まれ得る。適合性検査を実装するために、対応するパラメータがビットストリームに含まれる。仮想リファレンスデコーダ(HRD)は、パラメータを読み出し、試験を実行することができる。ビデオは、多くのレイヤおよび多くの異なる出力レイヤセット(OLS)を含み得る。要求に応じて、エンコーダは、選択されたOLSの1または複数のレイヤを送信する。例えば、エンコーダは、現在のネットワーク帯域幅によってサポートされ得るOLSから最良のレイヤ(複数可)を送信することができる。問題は、ビデオ中の各ビデオシーケンスに関連するシンタックス要素を含めるためのシーケンスパラメータセット(SPS)の使用量に関する。ビデオコーディングシステムは、レイヤおよび/またはサブレイヤにおいてビデオをコーディングし得る。ビデオシーケンスは、異なるレイヤおよび/またはサブレイヤにおいて異なるように動作し得る。したがって、異なるレイヤは、異なるSPSを参照し得る。BP SEIメッセージは、規格への適合性について検査されるレイヤ/サブレイヤを示し得る。一部のビデオコーディングシステムは、BP SEIメッセージがSPS中で示されるレイヤ/サブレイヤに適用されることを示す場合がある。これは、異なるレイヤが異なるSPSを参照した場合、かかるSPSに矛盾する情報が含まれる可能性があり、予期せぬエラーが発生するという問題がある。開示される例は、ビデオシーケンスにおいて複数のレイヤが採用される際の適合性検査に関連するエラーに対処するためのメカニズムを含む。具体的には、BP SEIメッセージは、VPSにおいて記述される任意の数のレイヤ/サブレイヤが適合性について検査され得ることを示すように修正される。例えば、BP SEIメッセージは、BP SEIメッセージ中のデータに関連するレイヤ/サブレイヤの数を示すbp_max_sublayers_minus1シンタックス要素を含み得る。一方、VPSにおけるVPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)シンタックス要素は、ビデオ全体におけるサブレイヤの数を示す。bp_max_sublayers_minus1シンタックス要素は、0からvps_max_sublayers_minus1シンタックス要素の値までの任意の値に設定され得る。このようにして、ビデオ内の任意の数のレイヤ/サブレイヤの適合性を検査することができ、SPSの不整合に関連するレイヤベースのシーケンスの問題を回避することができる。したがって、本開示は、レイヤベースのコーディングエラーを回避し、それにより、エンコーダおよび/またはデコーダの機能を向上させる。さらに、本例はコーディング効率を増加させ得るレイヤベースコーディングをサポートする。したがって、本例は、エンコーダおよび/またはデコーダにおけるプロセッサ、メモリ、および/またはネットワークリソース使用量の削減をサポートする。
【0006】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、bp_max_sublayers_minus1が、バッファリング期間補助強化情報(SEI)メッセージに含まれ、BP SEIメッセージが、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられたパラメータを含むことを提供する。
【0007】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、BP SEIメッセージ中のパラメータが、初期コード化ピクチャバッファ(CPB)除去遅延と初期CPB除去オフセットとを含むことを提供する。
【0008】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、VPS中で示されるサブレイヤの最大数が、VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)に含まれることを提供する。
【0009】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、vps_max_sublayers_minus1が、VPSに含まれることを提供する。
【0010】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、BP SEIメッセージが、復号順序において、関連するアクセスユニット(AU)の位置における仮想リファレンスデコーダ(HRD)の初期化のためのものであることを提供する。
【0011】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、ビットストリームが、時間スケーラブルビットストリームであり、1または複数のサブレイヤが、ビットストリームの時間スケーラブルレイヤであり、各サブレイヤが、ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットと、テンポラル識別子(TemporalId)変数の値が同じである関連する非VCL NALユニットとを含むことを提供する。
【0012】
一実施形態では、本開示は、エンコーダによって実装される方法を含み、方法は、エンコーダのプロセッサによって、VPSと1または複数のサブレイヤとを含むビットストリームを符号化することと、プロセッサによって、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたbp_max_sublayers_minus1を含むBP SEIメッセージをビットストリームに符号化することと、プロセッサによって、BP SEIメッセージに基づいてHRDを初期化することと、プロセッサによって、HRDを用いて、サブレイヤに対してビットストリーム適合性試験のセットを実行することと、を含む。
【0013】
ビデオコーディングシステムは、ビットストリームがデコーダによって復号可能であることを保証するために種々の適合性試験を採用している。例えば、適合性検査には、適合性についてビットストリーム全体を試験することと、次いで適合性についてビットストリームの各レイヤを試験することと、最後に適合性について潜在的な復号可能出力を検査することと、が含まれ得る。適合性検査を実装するために、対応するパラメータがビットストリームに含まれる。HRDは、パラメータを読み出し、試験を実行することができる。ビデオは、多くのレイヤおよび多くの異なるOLSを含み得る。要求に応じて、エンコーダは、選択されたOLSの1または複数のレイヤを送信する。例えば、エンコーダは、現在のネットワーク帯域幅によってサポートされ得るOLSから最良のレイヤ(複数可)を送信することができる。問題は、ビデオ中の各ビデオシーケンスに関連するシンタックス要素を含めるためのSPSの使用量に関する。ビデオコーディングシステムは、レイヤおよび/またはサブレイヤにおいてビデオをコーディングし得る。ビデオシーケンスは、異なるレイヤおよび/またはサブレイヤにおいて異なるように動作し得る。したがって、異なるレイヤは、異なるSPSを参照し得る。BP SEIメッセージは、規格への適合性について検査されるレイヤ/サブレイヤを示し得る。一部のビデオコーディングシステムは、BP SEIメッセージがSPS中で示されるレイヤ/サブレイヤに適用されることを示す場合がある。これは、異なるレイヤが異なるSPSを参照した場合、かかるSPSに矛盾する情報が含まれる可能性があり、予期せぬエラーが発生するという問題がある。開示される例は、ビデオシーケンスにおいて複数のレイヤが採用される際の適合性検査に関連するエラーに対処するためのメカニズムを含む。具体的には、BP SEIメッセージは、VPSにおいて記述される任意の数のレイヤ/サブレイヤが適合性について検査され得ることを示すように修正される。例えば、BP SEIメッセージは、BP SEIメッセージ中のデータに関連するレイヤ/サブレイヤの数を示すbp_max_sublayers_minus1シンタックス要素を含み得る。一方、VPSにおけるvps_max_sublayers_minus1シンタックス要素は、ビデオ全体におけるサブレイヤの数を示す。bp_max_sublayers_minus1シンタックス要素は、0からvps_max_sublayers_minus1シンタックス要素の値までの任意の値に設定され得る。このようにして、ビデオ内の任意の数のレイヤ/サブレイヤの適合性を検査することができ、SPSの不整合に関連するレイヤベースのシーケンスの問題を回避することができる。したがって、本開示は、レイヤベースのコーディングエラーを回避し、それにより、エンコーダおよび/またはデコーダの機能を向上させる。さらに、本例はコーディング効率を増加させ得るレイヤベースコーディングをサポートする。したがって、本例は、エンコーダおよび/またはデコーダにおけるプロセッサ、メモリ、および/またはネットワークリソース使用量の削減をサポートする。
【0014】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、BP SEIメッセージが、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられたパラメータを含むことを提供する。
【0015】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、BP SEIメッセージ中のパラメータが、初期CPB除去遅延と初期CPB除去オフセットとを含むことを提供する。
【0016】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、VPS中で示されるサブレイヤの最大数が、vps_max_sublayers_minus1に含まれることを提供する。
【0017】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、vps_max_sublayers_minus1が、VPSに含まれることを提供する。
【0018】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、HRDが、BP SEIメッセージに基づいて、復号順序において、関連するAUの位置において初期化されることを提供する。
【0019】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、ビットストリームが、時間スケーラブルビットストリームであり、1または複数のサブレイヤが、ビットストリームの時間スケーラブルレイヤであり、各サブレイヤが、VCL NALユニットと、TemporalId変数の値が同じである関連する非VCL NALユニットとを含むことを提供する。
【0020】
一実施形態では、本開示は、プロセッサと、プロセッサに結合された受信機と、プロセッサに結合されたメモリと、プロセッサに結合された送信機とを含むビデオコーディングデバイスを含み、プロセッサ、受信機、メモリ、および送信機は、前述の態様のいずれかの方法を実行するように構成される。
【0021】
一実施形態では、本開示は、ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体を含み、コンピュータプログラム製品は、プロセッサによって実行されたときにビデオコーディングデバイスに前述の態様のいずれかの方法を実行させるように、非一時的コンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を含む。
【0022】
一実施形態では、本開示は、デコーダを含み、デコーダは、VPSと、1または複数のサブレイヤと、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたbp_max_sublayers_minus1とを含むビットストリームを受信するための受信手段と、1または複数のサブレイヤからピクチャを復号するための復号手段と、復号済みビデオシーケンスの一部として表示するためにピクチャを転送するための転送手段と、を備える。
【0023】
所望により、前述の態様のいずれかにおいて、態様の別の実装形態は、デコーダが、前述の態様のいずれかの方法を実行するようにさらに構成されることを提供する。
【0024】
一実施形態では、本開示は、エンコーダを含み、エンコーダは、VPSと1または複数のサブレイヤとを含むビットストリームを符号化することと、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたbp_max_sublayers_minus1を含むBP SEIメッセージをビットストリームに符号化することと、を行うための符号化手段と、BP SEIメッセージに基づいてHRDを初期化するための初期化手段と、サブレイヤに対してビットストリーム適合性試験のセットを実行するための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】HRDによるビットストリーム適合性試験のための最大サブレイヤを直接参照するBP SEIメッセージを含めることによってビデオシーケンスをビットストリームに符号化する例示的な方法のフローチャートである。
【0039】
図11】HRDによるビットストリーム適合性試験のための最大サブレイヤを直接参照するBP SEIメッセージを含むビットストリームからビデオシーケンスを復号する例示的な方法のフローチャートである。
【0040】
図12】HRDによるビットストリーム適合性試験のための最大サブレイヤを直接参照するBP SEIメッセージを含むビットストリーム中のビデオシーケンスをコーディングするための例示的なシステムの概略図である。
【発明を実施するための形態】
【0041】
1または複数の実施形態の例示的な実装形態が以下に提供されるが、開示されるシステムおよび/または方法は、現在知られているかまたは存在しているかにかかわらず、任意の数の技術を使用して実装され得ることを最初に理解されたい。本開示は、本明細書で図示および説明される例示的な設計および実装形態を含む、以下に示される例示的な実装形態、図面、および技術に決して限定されるべきではなく、添付の特許請求の範囲内で、それらの均等物の全範囲とともに修正され得る。
【0042】
以下の用語は、本明細書において反対の文脈で使用されない限り、以下のように定義される。具体的には、以下の定義は、本開示にさらなる明確性を提供することを意図する。しかしながら、用語は、異なる文脈において異なるように説明される場合がある。したがって、以下の定義は、補足として考慮されるべきであり、本明細書においてかかる用語について提供される説明の任意の他の定義を限定すると考慮されるべきではない。
【0043】
ビットストリームは、エンコーダとデコーダとの間の送信のために圧縮されたビデオデータを含むビットのシーケンスである。エンコーダは、ビデオデータをビットストリームに圧縮するために符号化プロセスを採用するように構成されたデバイスである。デコーダは、表示のためにビットストリームからビデオデータを再構成するために復号プロセスを採用するように構成されたデバイスである。ピクチャは、フレームまたはそのフィールドを作成する輝度サンプルのアレイおよび/または彩度サンプルのアレイである。符号化または復号されているピクチャは、説明を明確にするために、カレントピクチャと称されることがある。ネットワーク抽象化レイヤ(NAL)ユニットは、ローバイトシーケンスペイロード(RBSP)の形式のデータと、データのタイプの指示と、エミュレーション防止バイトとを含むシンタックス構造であり、これらは所望に応じて散在される。ビデオコーディングレイヤ(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(0番目)のOLSは、最下位レイヤ(最下位レイヤ識別子を有するレイヤ)のみを含むOLSであり、出力レイヤのみを含むOLSである。テンポラル識別子(ID)は、データがビデオシーケンス内の時間位置に対応することを示すデータ要素である。サブビットストリーム抽出プロセスは、ターゲットOLSインデックスおよびターゲット最上位テンポラルIDによって決定されるターゲットセットに属さないNALユニットをビットストリームから除去するプロセスである。サブビットストリーム抽出プロセスは、ターゲットセットの一部であるビットストリームからのNALユニットを含む出力サブビットストリームをもたらす。
【0045】
HRDは、エンコーダ上で動作するデコーダモデルであり、符号化プロセスによって生成されるビットストリームの変動を検査して、指定された制約との適合性を検証する。ビットストリーム適合性試験は、符号化されたビットストリームが汎用ビデオコーディング(VVC)などの規格に準拠するかどうかを判定するための試験である。HRDパラメータは、HRDの動作条件を初期化および/または定義するシンタックス要素である。HRDパラメータは、HRDパラメータシンタックス構造に含めることができる。シンタックス構造は、複数の異なるパラメータを含むように構成されたデータオブジェクトである。シンタックス要素は、同じタイプの1または複数のパラメータを含むデータオブジェクトである。したがって、シンタックス構造は複数のシンタックス要素を含み得る。シーケンスレベルHRDパラメータは、コード化ビデオシーケンス全体に適用されるHRDパラメータである。最大HRDテンポラルID(hrd_max_tid[i])は、HRDパラメータがOLS HRDパラメータのi番目のセットに含まれる最上位サブレイヤ表現のテンポラルIDを指定する。一般HRDパラメータ(general_hrd_parameters)シンタックス構造は、シーケンスレベルHRDパラメータを含むシンタックス構造である。オペレーションポイント(OP)は、OLSインデックスおよび最上位テンポラルIDによって識別されるOLSの時間サブセットである。試験対象OP(targetOp)は、HRDにおいて適合性試験のために選択されるOPである。ターゲットOLSは、ビットストリームからの抽出のために選択されるOLSである。復号ユニットHRDパラメータ存在フラグ(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を示すシンタックス要素である。出力レイヤセットの数マイナスワン(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最大サブレイヤマイナスワン(bp_max_sublayers_minus1)シンタックス要素は、CPB除去遅延およびCPB除去オフセットがBP SEIメッセージ中で示される時間サブレイヤの最大数を指定するシンタックス要素である。VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)シンタックス要素は、VPSによって指定されたレイヤ中に存在し得る時間サブレイヤの最大数を指定するシンタックス要素である。スケーラブルネスティングOLSフラグは、スケーラブルネスト化SEIメッセージが特定のOLSまたは特定のレイヤに適用されるかどうかを指定するフラグである。OLSのスケーラブルネスティング数マイナスワン(num_olss_minus1)は、スケーラブルネスト化SEIメッセージが適用されるOLSの数を指定するシンタックス要素である。ネスティングOLSインデックス(NestingOlsIdx)は、スケーラブルネスト化SEIメッセージが適用されるOLSのOLSインデックスを指定するシンタックス要素である。ターゲットOLSインデックス(targetOlsIdx)は、復号対象のOLSのOLSインデックスを識別する変数である。OLSの総数マイナスワン(TotalNumOlss-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)モーションピクチャエキスパーツグループ(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としても知られるアドバンストビデオコーディング(AVC)、およびITU-T H.265またはMPEG-H Part2としても知られる高効率ビデオコーディング(HEVC)が含まれる。AVCには、スケーラブルビデオコーディング(SVC)、マルチビュービデオコーディング(MVC)およびマルチビュービデオコーディングプラス深さ(MVC+D)、ならびに3次元(3D)AVC(3D-AVC)などの拡張機能が含まれる。HEVCには、スケーラブルHEVC(SHVC)、マルチビューHEVC(MV-HEVC)、および3D HEVC(3D-HEVC)などの拡張機能が含まれる。ITU-TおよびISO/IECのジョイントビデオエキスパートチーム(JVET)は、汎用ビデオコーディング(VVC)と称されるビデオコーディング規格の開発を開始している。VVCは、JVET-O2001-v14を含むワーキングドラフト(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(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最大サブレイヤマイナスワン(bp_max_sublayers_minus1)シンタックス要素を含み得る。一方、VPSにおけるVPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)シンタックス要素は、ビデオ全体におけるサブレイヤの数を示す。bp_max_sublayers_minus1シンタックス要素は、0からvps_max_sublayers_minus1シンタックス要素の値までの任意の値に設定され得る。このようにして、ビデオ内の任意の数のレイヤ/サブレイヤの適合性を検査することができ、SPSの不整合に関連するレイヤベースのシーケンスの問題を回避することができる。したがって、本開示は、レイヤベースのコーディングエラーを回避し、それにより、エンコーダおよび/またはデコーダの機能を向上させる。さらに、本例はコーディング効率を増加させ得るレイヤベースコーディングをサポートする。したがって、本例は、エンコーダおよび/またはデコーダにおけるプロセッサ、メモリ、および/またはネットワークリソース使用量の削減をサポートする。
【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をブロックに分割し、次いで、さらなる符号化をサポートする構成が達成されるまで、ブロックを再帰的に細分化することができる。例えば、フレームの輝度成分は、個々のブロックが比較的均一な明度値を含むまで細分化されてもよい。さらに、フレームの彩度成分は、個々のブロックが比較的均一な色値を含むまで細分化されてもよい。このように、分割メカニズムは、ビデオフレームのコンテンツに応じて変化する。
【0068】
ステップ105では、ステップ103で分割された画像ブロックを圧縮するために種々の圧縮メカニズムが採用される。例えば、インター予測および/またはイントラ予測が採用されてもよい。インター予測は、共通シーン中のオブジェクトが連続フレーム中に現れる傾向があるという事実を利用するように設計される。これにより、参照フレーム内のオブジェクトを示すブロックを隣接フレーム間で重複して記述する必要がなくなる。具体的には、テーブルなどのオブジェクトは、複数のフレームにわたって一定の位置に留まることができる。したがって、テーブルを一度記述すれば、隣接するフレームは参照フレームを参照することができる。パターンマッチングメカニズムを採用して、複数のフレームにわたってオブジェクトをマッチングすることができる。さらに、移動するオブジェクトは、例えばオブジェクトの移動またはカメラの移動に起因して、複数のフレームにわたって表現することができる。特定の例として、ビデオは、複数のフレームにわたってスクリーンを横切って移動する自動車を示すことができる。動きベクトルを採用して、かかる移動を記述することができる。動きベクトルは、フレーム内のオブジェクトの座標から基準フレーム内のオブジェクトの座標へのオフセットを提供する2次元ベクトルである。このように、インター予測は、現在のフレーム中の画像ブロックを、参照フレーム中の対応するブロックからのオフセットを示す動きベクトルのセットとして符号化することができる。
【0069】
イントラ予測は、共通フレーム内のブロックを符号化する。イントラ予測は、輝度成分および彩度成分がフレーム内でクラスタ化する傾向があるという事実を利用する。例えば、ツリーの一部分における緑のパッチは、同様の緑のパッチに隣接して配置される傾向がある。イントラ予測は、複数の方向予測モード(例えば、HEVCでは33方向)と、平面モードと、直接カレント(DC)モードとを採用している。方向モードは、現在のブロックが該当方向の隣接ブロックのサンプルと類似/同一であることを示す。平面モードは、行/列(例えば、平面)に沿った一連のブロックが、行の縁部における隣接ブロックに基づいて補間され得ることを示す。平面モードは、実際に、値を変化させる際に比較的一定の傾きを採用することによって、行/列にわたる光/色の遷移を滑らかにする。DCモードは、境界平滑化のために採用され、ブロックが、方向予測モードの角度方向に関連付けられた全ての隣接ブロックのサンプルに関連付けられた平均値と類似/同一であることを示す。このように、イントラ予測ブロックは、実際の値の代わりに種々の関係予測モード値として画像ブロックを表すことができる。さらに、インター予測ブロックは、実際の値の代わりに動きベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては、画像ブロックを正確に表さないことがある。差分は、残差ブロックに記憶される。ファイルをさらに圧縮するために、残差ブロックに変換を適用することもできる。
【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の下位部分であってもよい。分割モードは、二分木(BT)、三分木(TT)、および四分木(QT)を含み得、これらは、採用される分割モードに応じて種々の形状の2つ、3つ、または4つの子ノードにノードをそれぞれ分割するために採用される。分割ビデオ信号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への/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は、レイヤN 631およびレイヤ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はレイヤN 631の一部である。レイヤN 631および/またはレイヤN+1 632などのレイヤは、同様のサイズ、品質、解像度、信号対雑音比、能力などの特性の同様の値に全て関連付けられたピクチャのグループである。レイヤは、VCL NALユニットおよび関連する非VCL NALユニットのセットとして形式的に定義され得る。VCL NALユニットは、ピクチャのコード化スライスなど、ビデオデータを含むようにコーディングされたNALユニットである。非VCL NALユニットは、ビデオデータの復号、適合性検査の実行、または他の動作をサポートするシンタックスおよび/またはパラメータなどの非ビデオデータを含むNALユニットである。
【0106】
図示の例では、レイヤN+1 632はレイヤN 631よりも大きい画像サイズに関連付けられている。したがって、この例では、レイヤN+1 632中のピクチャ611、612、613、および614は、レイヤN 631中のピクチャ615、616、617、および618よりも大きいピクチャサイズ(例えば、より大きな高さおよび幅、したがって、より多くのサンプル)を有する。しかしながら、かかるピクチャは、他の特性によってレイヤN+1 632とレイヤN 631との間で分離され得る。2つのレイヤ、レイヤN+1 632およびレイヤN 631のみが示されているが、ピクチャのセットは、関連する特性に基づいて任意の数のレイヤに分離され得る。レイヤN+1 632およびレイヤN 631はまた、レイヤIDによって示され得る。レイヤIDは、ピクチャに関連付けられたデータのアイテムであり、ピクチャが示されたレイヤの一部であることを示している。したがって、各ピクチャ611~618は、対応するレイヤIDに関連付けられて、どのレイヤN+1 632またはレイヤN 631が対応するピクチャを含むかを示すことができる。例えば、レイヤIDは、NALユニットヘッダレイヤ識別子(nuh_layer_id)を含んでもよく、これは、NALユニットを含む(例えば、レイヤ中のピクチャのスライスおよび/またはパラメータを含む)レイヤの識別子を指定するシンタックス要素である。レイヤN 631など、より低い品質/ビットストリームサイズに関連付けられたレイヤは、概して、下位レイヤIDが割り当てられ、下位レイヤと称される。さらに、レイヤN+1 632など、より高い品質/ビットストリームサイズに関連するレイヤは、概して、上位レイヤIDが割り当てられ、上位レイヤと称される。
【0107】
異なるレイヤ631~632におけるピクチャ611~618は、択一的に表示されるように構成される。したがって、異なるレイヤ631~632中のピクチャは、それらのピクチャが同じAU中に含まれる限り、テンポラルID622を共有することができる。テンポラルID622は、データがビデオシーケンス内の時間位置に対応することを示すデータ要素である。AUは、指定された分類規則に従って互いに関連付けられ、1つの特定の出力時間に関連するNALユニットのセットである。例えば、AUは、かかるピクチャが同じテンポラルID622に関連付けられるとき、ピクチャ611およびピクチャ615など、異なるレイヤ中の1または複数のピクチャを含んでもよい。特定の例として、デコーダは、より小さいピクチャが所望される場合、現在の表示時間においてピクチャ615を復号および表示することができ、またはデコーダは、より大きいピクチャが所望される場合、現在の表示時間においてピクチャ611を復号および表示することができる。したがって、上位レイヤN+1 632におけるピクチャ611~614は、(ピクチャサイズの違いにもかかわらず)下位レイヤN 631における対応するピクチャ615~618と実質的に同じ画像データを含む。具体的には、ピクチャ611はピクチャ615と実質的に同じ画像データを含み、ピクチャ612はピクチャ616と実質的に同じ画像データを含み、以下同様である。
【0108】
ピクチャ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 531中のピクチャ615、616、および/または618のうちの1つまたは2つを参照として使用するインター予測623を採用することによってコーディングされてもよく、ここで、1つのピクチャは、単方向インター予測のために参照され、かつ/または2つのピクチャは、双方向インター予測のために参照される。ピクチャが、インター予測623を実行する際に同じレイヤ中の別のピクチャのための参照として使用される場合、ピクチャは参照ピクチャと称されることがある。例えば、ピクチャ612は、インター予測623に従ってピクチャ613をコーディングするために使用される参照ピクチャであってもよい。インター予測623は、マルチレイヤコンテキストにおいてイントラレイヤ予測と称されることもある。したがって、インター予測623は、参照ピクチャとカレントピクチャとが同じレイヤ中にある場合に、カレントピクチャとは異なる参照ピクチャ中の示されたサンプルを参照することによってカレントピクチャのサンプルをコーディングするメカニズムである。
【0109】
ピクチャ611~618はまた、異なるレイヤ中の他のピクチャ611~618を参照することによってコーディングされ得る。このプロセスは、インターレイヤ予測621として知られており、破線矢印によって示されている。インターレイヤ予測621は、カレントピクチャと参照ピクチャとが異なるレイヤ中にあり、それにより異なるレイヤIDを有する場合に、参照ピクチャ中の示されたサンプルを参照することによってカレントピクチャのサンプルをコーディングするメカニズムである。例えば、下位レイヤN 631中のピクチャは、上位レイヤ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に従ってコーディングされ得る。したがって、参照ピクチャは、異なるコーディングメカニズムのためのシングルレイヤ参照ピクチャとインターレイヤ参照ピクチャとの両方として機能し得る。下位レイヤN 631ピクチャに基づいて上位レイヤN+1 632ピクチャをコーディングすることによって、上位レイヤN+1 632は、インター予測623およびインターレイヤ予測621よりもコーディング効率が極めて低いイントラ予測を採用することを回避することができる。したがって、イントラ予測の低いコーディング効率は、最小/最低品質のピクチャに限定され得、それにより、最小量のビデオデータをコーディングすることに限定することができる。参照ピクチャおよび/またはインターレイヤ参照ピクチャとして使用されるピクチャは、参照ピクチャリスト構造に含まれる参照ピクチャリスト(複数可)のエントリ中で示され得る。
【0111】
かかる動作を実行するために、レイヤN 631およびレイヤN+1 632などのレイヤが、1または複数のOLS625および626に含まれ得る。具体的には、ピクチャ611~618は、ビットストリーム600においてレイヤ631~632として符号化され、次いで、ピクチャの各レイヤ631~632は、OLS625および626のうち1または複数に割り当てられる。次いで、OLS625および/または626を選択することができ、デコーダにおける能力および/またはネットワーク条件に応じて、対応するレイヤ631および/または632をデコーダに送信することができる。OLS625は、1または複数のレイヤが出力レイヤとして指定されるレイヤのセットである。出力レイヤは、(例えば、ディスプレイへの)出力のために指定されるレイヤである。例えば、レイヤN 631は、インターレイヤ予測621をサポートするためだけに含まれてもよく、決して出力されなくてもよい。かかる場合、レイヤN+1 632は、レイヤN 631に基づいて復号され、出力される。かかる場合、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およびテンポラルID200によって記述される。さらに、第2のオペレーションポイント627は、第1のOLS625のOLSインデックス629およびテンポラルID400によって記述される。指定された瞬間に試験するために選択されたオペレーションポイント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ユニット(例えば、サポートパラメータ)とを含む時間スケーラブルビットストリームの時間スケーラブルレイヤである。例えば、レイヤN 631および/またはレイヤ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、およびBP 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、BP SEIメッセージ819、または他のサポートシンタックスを含んでもよい。
【0122】
SEIメッセージは、復号済みピクチャ中のサンプルの値を決定するために復号プロセスによって必要とされない情報を伝達する、指定されたセマンティクスを有するシンタックス構造である。例えば、SEIメッセージは、HRDプロセスをサポートするためのデータ、またはデコーダにおいてビットストリーム800を復号することに直接関連しない他のサポートデータを含んでもよい。ビットストリーム800において使用されるSEIメッセージは、スケーラブルネスティングSEIメッセージおよび/または非スケーラブルネスト化SEIメッセージを含み得る。スケーラブルネスティングSEIメッセージは、1または複数のOLSまたは1または複数のレイヤに対応する複数のSEIメッセージを含むメッセージである。非スケーラブルネスト化SEIメッセージは、ネスト化されていないメッセージであり、したがって、単一のSEIメッセージを含んでいる。BP SEIメッセージ819は、CPBを管理するためにHRDを初期化するためのHRDパラメータを含むSEIメッセージである。SEIメッセージはまた、CPBおよび/またはDPBにおけるAU821のための配信情報を管理するためのHRDパラメータを含むPT SEIメッセージを含み得る。SEIメッセージはまた、CPBおよび/またはDPBにおいてDU822についての配信情報を管理するためのHRDパラメータを含むDUI SEIメッセージを含み得る。
【0123】
BP SEIメッセージ819は、CPB配信スケジュール561などのCPB配信スケジュールを記述するデータを含み得、CPB配信スケジュール561は、ビットストリーム800に対して適合性試験を実行する際に採用され得る。配信スケジュールは、配信スケジュールのタイミング(例えば、データを除去する頻度)を記述し、転送されるデータの量(例えば、各発生において除去するデータの量)を記述するペアの値によって記述することができる。BP SEIメッセージ819は、適合性検査の開始点となるべきAUまたはDU(例えば、AU821またはDU822)と、各データユニットのために使用されるデフォルトスケジュールを示すデータペアとを示している。特定の例では、BP SEIメッセージ819は、初期CPB除去遅延835と初期CPB除去オフセット837とを含み得る。初期CPB除去遅延835は、ビットストリーム、OLS、および/またはレイヤ中の各ピクチャ、AU、および/またはDUについてのデフォルトCPB除去遅延である。初期CPB除去オフセット837は、ビットストリーム、OLS、および/またはレイヤ中の各ピクチャ、AU、および/またはDUに関連するデフォルトCPB除去オフセットである。初期CPB除去遅延835と初期CPB除去オフセット837とのペアを採用することによって、HRDは、適合性試験中にCPBからデータユニット(AUまたはDU)を除去するときに使用されるCPB配信スケジュールを決定することができる。
【0124】
上述のように、ビデオストリームは、OLS625、レイヤN 631、レイヤN+1 632、サブレイヤ710、サブレイヤ720、および/またはサブレイヤ730など、多くのOLSおよび多くのレイヤを含み得る。さらに、一部のレイヤは、複数のOLSに含まれ得る。したがって、マルチレイヤビデオシーケンス600および/または700などのマルチレイヤビデオシーケンスは、極めて複雑になり得る。その結果、HRDにおけるビットストリーム適合性検査プロセスが複雑になる可能性がある。一部のビデオコーディングシステムは、BP SEIメッセージ819をSPS813に相関させ得る。例えば、かかるシステムは、BP SEIメッセージ819がSPS813によって記述されたレイヤ/サブレイヤに適用されることを示してもよい。しかしながら、ビットストリーム800は、多くの異なるSPS813を含み得る。例えば、異なるレイヤは、異なってコーディングされる場合があり、したがって、ビットストリーム800中の異なる相対的なポイントにおいて異なるSPS813を採用する場合がある。これは、異なるレイヤが異なるSPS813を参照した場合、かかるSPS813が矛盾する情報を含み得るので、問題を引き起こす場合がある。例えば、システムは、どのレイヤがBP SEIメッセージ819に関連付けられるかを最初に判定しなければ、どのSPS813がBP SEIメッセージ819に関連付けられるかを判定することが不可能である場合がある。さらに、システムは、どのSPS813がBP SEIメッセージ819に関連付けられるかを最初に判定しなければ、どのレイヤがBP SEIメッセージ819に関連付けられるかを判定することが不可能である場合がある。かかるシステムは、この問題を解決することができず、予期しないエラーを返す可能性がある。例えば、かかるシステムは、一部のシナリオではHRDを適切に初期化することができない場合がある。
【0125】
本開示は、ビデオシーケンスにおいて複数のレイヤが採用される際の適合性検査に関連するエラーに対処するためのメカニズムを含む。具体的には、BP SEIメッセージ819は、VPS811において記述される任意の数のレイヤ/サブレイヤが適合性について検査され得ることを示すように修正される。例えば、BP SEIメッセージ819は、BP最大サブレイヤマイナスワン(bp_max_sublayers_minus1)831シンタックス要素を含むように修正されてもよい。bp_max_sublayers_minus1 831は、初期CPB除去遅延835および初期CPB除去オフセット837がBP SEIメッセージ819中で示される時間サブレイヤの最大数を指定するシンタックス要素である。したがって、bp_max_sublayers_minus1 831は、BP SEIメッセージ819中のデータに関連付けられるレイヤ/サブレイヤの数を示している。HRDは、bp_max_sublayers_minus1 831の値を採用して、BP SEIメッセージ819に関連付けられたレイヤ/サブレイヤの正しいセットを決定することができる。HRDは、次いで、初期CPB除去遅延835および初期CPB除去オフセット837を使用して、bp_max_sublayers_minus1 831によって示されるレイヤ/サブレイヤに対して適合性検査を適切に実行するためのCPB配信スケジュールを決定することができる。
【0126】
さらに、VPS811は、VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)833シンタックス要素を含み得る。vps_max_sublayers_minus1 833は、VPS811によって指定されたレイヤ中に存在し得る時間サブレイヤの最大数を指定するシンタックス要素である。したがって、vps_max_sublayers_minus1 833は、ビデオ全体におけるサブレイヤの数を示し得る。bp_max_sublayers_minus1 831は、0からvps_max_sublayers_minus1 833の値までの任意の値に設定され得る。このようにして、ビデオ内の任意の数のレイヤ/サブレイヤの適合性を検査することができ、SPS813の不整合に関連するレイヤベースのシーケンスの問題を回避することができる。したがって、本開示は、レイヤベースのコーディングエラーを回避し、それにより、エンコーダおよび/またはデコーダの機能を向上させる。さらに、本例はコーディング効率を増加させ得るレイヤベースコーディングをサポートする。したがって、本例は、エンコーダおよび/またはデコーダにおけるプロセッサ、メモリ、および/またはネットワークリソース使用量の削減をサポートする。
【0127】
ここで、前述の情報を以下でより詳細に説明する。階層化ビデオコーディングは、スケーラブルビデオコーディングまたはスケーラビリティを有するビデオコーディングとも称される。ビデオコーディングにおけるスケーラビリティは、マルチレイヤコーディング技術を使用することによってサポートされ得る。マルチレイヤビットストリームは、ベースレイヤ(BL)と1または複数のエンハンスメントレイヤ(EL)とを含む。スケーラビリティの例として、空間スケーラビリティ、品質/信号対雑音比(SNR)スケーラビリティ、マルチビュースケーラビリティ、フレームレートスケーラビリティなどが挙げられる。マルチレイヤコーディング技術が使用される場合、ピクチャまたはその一部は、参照ピクチャを使用せずにコーディングされてもよく(イントラ予測)、同じレイヤ中にある参照ピクチャを参照することによってコーディングされてもよく(インター予測)、かつ/または他のレイヤ(複数可)中にある参照ピクチャを参照することによってコーディングされてもよい(インターレイヤ予測)。カレントピクチャのインターレイヤ予測に使用される参照ピクチャを、インターレイヤ参照ピクチャ(ILRP)と言う。図6は、異なるレイヤ中のピクチャが異なる解像度を有する空間スケーラビリティのためのマルチレイヤコーディングの一例を示している。
【0128】
一部のビデオコーディングファミリは、単一レイヤコーディングのためのプロファイル(複数可)から分離されたプロファイル(複数可)におけるスケーラビリティのサポートを提供する。スケーラブルビデオコーディング(SVC)は、空間スケーラビリティ、時間スケーラビリティ、および品質スケーラビリティに対するサポートを提供する高度ビデオコーディング(AVC)のスケーラブル拡張機能である。SVCの場合、EL MBが下位レイヤからのコロケートブロックを使用して予測されるかどうかを示すために、ELピクチャ中の各マクロブロック(MB)中でフラグがシグナリングされる。コロケートされたブロックからの予測は、テクスチャ、動きベクトル、および/またはコーディングモードを含み得る。SVCの実装形態は、それらの設計において、修正されていないAVC実装形態を直接再使用しない場合がある。SVC ELマクロブロックシンタックスおよび復号プロセスは、AVCシンタックスおよび復号プロセスとは異なる。
【0129】
スケーラブルHEVC(SHVC)は、空間スケーラビリティおよび品質スケーラビリティのサポートを提供するHEVCの拡張機能である。マルチビューHEVC(MV-HEVC)は、マルチビュースケーラビリティのサポートを提供するHEVCの拡張機能である。3D HEVC(3D-HEVC)は、MV-HEVCより高度で効率的な3Dビデオコーディングのためのサポートを提供するHEVCの拡張機能である。時間スケーラビリティは、シングルレイヤHEVCコーデックの一体部分として含まれ得る。HEVCのマルチレイヤ拡張機能では、インターレイヤ予測のために使用される復号済みピクチャは、同じAUからのみ取得され、長期参照ピクチャ(LTRP)として扱われる。かかるピクチャは、現在のレイヤ中の他の時間参照ピクチャとともに、参照ピクチャリスト(複数可)中の参照インデックスを割り当てられる。インターレイヤ予測(ILP)は、参照ピクチャリスト(複数可)中のインターレイヤ参照ピクチャ(複数可)を参照するように参照インデックスの値を設定することによって、予測ユニット(PU)レベルで達成される。空間スケーラビリティは、ILRPが符号化または復号されているカレントピクチャとは異なる空間解像度を有するときに、参照ピクチャまたはその一部をリサンプリングする。参照ピクチャのリサンプリングは、ピクチャレベルまたはコーディングブロックレベルのいずれかで実現することができる。
【0130】
VVCはまた、階層化ビデオコーディングをサポートし得る。VVCビットストリームは、複数のレイヤを含み得る。レイヤは全て互いに独立していてもよい。例えば、各レイヤは、インターレイヤ予測を使用せずにコーディングされてもよい。この場合、レイヤはサイマルキャストレイヤとも称される。場合によっては、レイヤのうちの一部は、ILPを使用してコーディングされる。VPS中のフラグは、レイヤがサイマルキャストレイヤであるかどうか、または一部のレイヤがILPを使用するかどうかを示すことができる。一部のレイヤがILPを使用する場合、レイヤ間のレイヤ依存関係もVPS中でシグナリングされる。SHVCおよびMV-HEVCとは異なり、VVCはOLSを指定しない場合がある。OLSは、指定されたレイヤのセットを含み、レイヤのセット内の1または複数のレイヤは、出力レイヤであると指定される。出力レイヤは、出力されるOLSのレイヤである。VVCの一部の実装形態では、レイヤがサイマルキャストレイヤである場合、1つのレイヤのみが復号および出力のために選択され得る。VVCの一部の実装形態では、全てのレイヤを含むビットストリーム全体が、いずれかのレイヤがILPを使用する場合に復号されるように指定される。さらに、レイヤのうちの特定のレイヤが出力レイヤとして指定される。出力レイヤは、最上位レイヤのみ、全てのレイヤ、または最上位レイヤと示された下位レイヤとのセットとして示され得る。
【0131】
ビデオコーディング規格は、指定されたHRD適合性試験を通してビットストリームの適合性を検証するためのHRDを指定することができる。SHVCおよびMV-HEVCでは、ビットストリームの適合性を検査するために、ビットストリーム適合性試験の3つのセットが採用される。ビットストリームは、ビットストリーム全体と称され、entireBitstreamとして示される。ビットストリーム適合性試験の第1のセットは、ビットストリーム全体および対応する時間サブセットの適合性を試験するためのものである。かかる試験は、ビットストリーム全体中に存在するVCL NALユニットの全てのnuh_layer_id値を含むアクティブVPSによって指定されたレイヤセットがあるかどうかにかかわらず採用される。したがって、1または複数のレイヤが出力セットに含まれない場合でも、ビットストリーム全体が適合性について常に検査される。ビットストリーム適合性試験の第2のセットは、アクティブVPSおよび関連する時間サブセットによって指定されたレイヤセットの適合性を試験するために採用される。全てのこれらの試験について、ベースレイヤピクチャ(例えば、0に等しいnuh_layer_idを有するピクチャ)のみが復号され、出力される。他のピクチャは、復号プロセスが呼び出されたときにデコーダによって無視される。ビットストリーム適合性試験の第3のセットは、OLSおよびビットストリームパーティションに基づいて、アクティブVPSのVPS拡張部分によって指定されたOLSおよび関連する時間サブセットの適合性を試験するために採用される。ビットストリームパーティションは、マルチレイヤビットストリームのOLSの1または複数のレイヤを含む。
【0132】
前述の態様は、特定の問題を含んでいる。例えば、適合性試験の第1の2つのセットは、復号されず、出力されないレイヤに適用される場合がある。例えば、最下位レイヤ以外のレイヤは復号されず、出力されない場合がある。実際のアプリケーションでは、デコーダは復号されるデータのみを受信する場合がある。したがって、適合性試験の第1の2つのセットを採用することで、コーデック設計が複雑となり、適合性試験をサポートするために使用されるシーケンスレベルパラメータとピクチャレベルパラメータの両方を搬送するためのビットが無駄になる可能性がある。適合性試験の第3のセットは、ビットストリームパーティションを伴う。かかるパーティションは、マルチレイヤビットストリームのOLSの1または複数のレイヤに関連し得る。その代わりに、適合性試験が常にレイヤごとに別々に動作する場合、HRDは大幅に簡略化される可能性がある。
【0133】
シーケンスレベル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に適用する必要がある。
【0134】
さらに、一部の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メッセージにおいて特定の値に常に等しいとは限らない。
【0135】
また、以下の問題が、SHVC/MV-HEVCとVVCの両方におけるHRD設計に関連付けられる。サブビットストリーム抽出プロセスは、ターゲットOLSのために必要とされないネスト化SEIメッセージを含むSEI NALユニットを除去しない場合がある。
【0136】
概して、本開示は、マルチレイヤビデオビットストリーム中の出力レイヤセットのためのSEIメッセージのスケーラブルネスティングのための手法について説明する。本技術の説明は、VVCに基づいている。しかしながら、本技術は、他のビデオコーデック仕様に基づく階層化ビデオコーディングにも適用される。
【0137】
上述の問題のうち1または複数は、以下のように解決することができる。具体的には、本開示は、SHVCおよびMV-HEVCと比較してはるかに単純なHRD動作を用いてHRDパラメータの効率的なシグナリングを可能にする、HRD設計のための方法および関連する態様を含む。以下に説明する解決策の各々は、上述の問題に対応する。例えば、3セットの適合性試験を必要とする代わりに、本開示は、VPSによって指定されたOLSの適合性を試験するための1セットの適合性試験のみを採用することができる。さらに、ビットストリームパーティションに基づく設計の代わりに、開示されるHRDメカニズムは、OLSのレイヤごとに常に別々に動作することができる。さらに、全てのOLSの全てのレイヤおよびサブレイヤに対してグローバルであるシーケンスレベルHRDパラメータは、例えば、VPS中で1回のみシグナリングされ得る。さらに、単一の数の配信スケジュールが、全てのOLSの全てのレイヤおよびサブレイヤに対してシグナリングされ得る。OLS内の全てのレイヤに同じ配信スケジュールインデックスを適用することもできる。さらに、不完全なAUは、バッファリング期間SEIメッセージに関連付けられなくてもよい。不完全なAUは、CVS中に存在する全てのレイヤについてのピクチャを含まないAUである。これにより、HRDがOLS中の全てのレイヤについて常に適切に初期化され得ることが保証される。また、OLS中のターゲットレイヤに適用されないネスト化SEIメッセージを効率的に除去するためのメカニズムが開示される。これは、レイヤビットストリームを導出するための逆多重化プロセスをサポートする。加えて、非スケーラブルネスト化バッファリング期間、ピクチャタイミング、および復号ユニット情報SEIメッセージの適用可能なOLSは、0番目のOLSであると指定され得る。さらに、HDRパラメータは、sub_layer_cpb_params_present_flagが0に等しい場合に推論され得、それにより、適切なHRD動作が可能となり得る。bp_max_sub_layers_minus1およびpt_max_sub_layers_minus1の値は、0~vps_max_sub_layers_minus1の範囲内にあることが必要とされ得る。このように、かかるパラメータは、全てのバッファリング期間およびピクチャタイミングSEIメッセージについて特定の値である必要はない。また、サブビットストリーム抽出プロセスは、ターゲットOLSに適用されないネスト化SEIメッセージを含むSEI NALユニットを除去することができる。
【0138】
前述のメカニズムの例示的な実装形態は、以下の通りである。出力レイヤは、出力される出力レイヤセットのレイヤである。OLSは、指定されたレイヤのセットを含むレイヤのセットであり、レイヤのセット内の1または複数のレイヤは、出力レイヤであると指定される。OLSレイヤインデックスは、OLS内のレイヤの、OLS内のレイヤのリストに対するインデックスである。サブビットストリーム抽出プロセスは、ターゲットOLSインデックスおよびターゲット最上位TemporalIdによって決定される、ターゲットセットに属さないビットストリーム中のNALユニットがビットストリームから除去される指定されたプロセスであり、出力サブビットストリームは、ターゲットセットに属するビットストリーム中のNALユニットを含む。
【0139】
例示的なビデオパラメータセットシンタックスは、以下の通りである。
【表1】
【0140】
例示的なシーケンスパラメータセットRBSPシンタックスは、以下の通りである。
【表2】
【0141】
例示的なDPBパラメータシンタックスは、以下の通りである。
【表3】
【0142】
例示的な一般HRDパラメータシンタックスは、以下の通りである。
【表4】
【0143】
例示的なビデオパラメータセットRBSPセマンティクスは、以下の通りである。each_layer_is_an_ols_flagは、各出力レイヤセットが1つのレイヤのみを含み、ビットストリーム中の各レイヤ自体が出力レイヤセットであり、単一の含まれるレイヤが唯一の出力レイヤであることを指定するために、1に等しく設定される。each_layer_is_an_ols_flagは、出力レイヤセットが2つ以上のレイヤを含み得ることを指定するために、0に等しく設定される。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に等しいと推論される。
【0144】
ols_mode_idcは、VPSによって指定されるOLSの総数がvps_max_layers_minus1+1に等しいことを指定するために、0に等しく設定され、i番目のOLSは、両端値を含む0からiのレイヤインデックスを有するレイヤを含み、各OLSについて、OLS中の最上位レイヤのみが出力される。ols_mode_idcは、VPSによって指定されるOLSの総数がvps_max_layers_minus1+1に等しいことを指定するために、1に等しく設定され、i番目のOLSは、両端値を含む0からiのレイヤインデックスを有するレイヤを含み、各OLSについて、OLS中の全てのレイヤが出力される。ols_mode_idcは、VPSによって指定されたOLSの総数が明示的にシグナリングされることを指定するために、2に等しく設定され、各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の総数を指定する。
【0145】
VPSによって指定されるOLSの総数を指定する変数TotalNumOlssは、以下のように導出される。
【数1】
【0146】
layer_included_flag[i][j]は、ols_mode_idcが2に等しい場合、j番目のレイヤ(vps_layer_id[j]に等しいnuh_layer_idを有するレイヤ)がi番目のOLSに含まれるかどうかを指定する。layer_included_flag[i][j]は、j番目のレイヤがi番目のOLSに含まれることを指定するために、1に等しく設定される。layer_included_flag[i][j]は、j番目のレイヤがi番目のOLSに含まれないことを指定するために、0に等しく設定される。
【0147】
i番目のOLSにおけるレイヤの数を指定する変数NumLayersInOls[i]と、i番目のOLSにおけるj番目のレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]とは、以下のように導出される。
【数2】
【0148】
OlsLayeIdx[i][j]に等しいnuh_layer_idを有するレイヤのOLSレイヤインデックスを指定する変数LayerIdInOls[i][j]は、以下のように導出される。
【数3】
【0149】
各OLSにおける最下位レイヤは、独立したレイヤとする。換言すれば、両端値を含む0~TotalNumOlss-1の範囲内の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は、1に等しいものとする。各レイヤは、VPSによって指定された少なくとも1つのOLSに含まれるものとする。換言すれば、両端値を含む0~vps_max_layers_minus1の範囲内のkについてvps_layer_id[k]のうちの1つに等しいnuh_layer_id nuhLayerIdの特定の値を有する各レイヤについて、iは両端値を含む0~TotalNumOlss-1の範囲内にあり、jは両端値を含むNumLayersInOls[i]-1の範囲内にあり、LayerIdInOls[i][j]の値がnuhLayerIdに等しいようなiおよびjの値の少なくとも1つのペアが存在するものとする。OLS内の任意のレイヤは、OLSの出力レイヤ、またはOLSの出力レイヤの(直接または間接)参照レイヤであるものとする。
【0150】
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]は、i番目のOLSにおけるj番目のレイヤが出力されないことを指定するために、0に等しく設定される。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については、含まれるレイヤのみが出力される。
【0151】
vps_extension_flagは、VPS RBSPシンタックス構造中にvps_extension_data_flagシンタックス要素が存在しないことを指定するために、0に等しく設定される。vps_extension_flagは、VPS RBSPシンタックス構造中にvps_extension_data_flagシンタックス要素が存在することを指定するために、1に等しく設定される。vps_extension_data_flagは、任意の値を有し得る。vps_extension_data_flagの存在および値は、指定されたプロファイルに対するデコーダの適合性に影響を及ぼさない。デコーダは、全てのvps_extension_data_flagシンタックス要素を無視するものとする。
【0152】
例示的な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情報は、レイヤがOLS内の出力レイヤであるかどうかにかかわらず、SPSを参照するレイヤに適用される。SPS内の第1のdpb_parameters()シンタックス構造内のDPBサイズ情報は、レイヤがOLSの出力レイヤであるとき、SPSを参照するレイヤに適用される。SPS中の第2のdpb_parameters()シンタックス構造中に含まれるDPBサイズ情報は、存在する場合、レイヤがOLSの非出力レイヤであるとき、SPSを参照するレイヤに適用される。SPSが1つのdpb_parameters()シンタックス構造のみを含むとき、非出力レイヤとしてのレイヤについてのDPBサイズ情報は、出力レイヤとしてのレイヤについてのDPBサイズ情報と同じであると推論される。
【0153】
例示的な一般HRDパラメータセマンティクスは、以下の通りである。general_hrd_parameters()シンタックス構造は、HRD動作において使用されるHRDパラメータを提供する。sub_layer_cpb_params_present_flagは、i番目のlayer_level_hrd_parameters()シンタックス構造が、両端値を含む0~hrd_max_temporal_id[i]の範囲内のTemporalIdを有するサブレイヤ表現のためのHRDパラメータを含むことを指定するために、1に等しく設定される。sub_layer_cpb_params_present_flagは、i番目のlayer_level_hrd_parameters()シンタックス構造が、hrd_max_temporal_id[i]のみに等しいTemporalIdを有するサブレイヤ表現のためのHRDパラメータを含むことを指定するために、0に等しく設定される。vps_max_sub_layers_minus1が0に等しい場合、sub_layer_cpb_params_present_flagの値は0に等しいと推論される。sub_layer_cpb_params_present_flagが0に等しい場合、両端値を含む0~hrd_max_temporal_id[i]-1の範囲内のTemporalIdを有するサブレイヤ表現のためのHRDパラメータは、hrd_max_temporal_id[i]に等しいTemporalIdを有するサブレイヤ表現のためのHRDパラメータと同じであると推論される。これらは、fixed_pic_rate_general_flag[i]シンタックス要素から、layer_level_hrd_parametersシンタックス構造における条件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に等しいと推論される。
【0154】
例示的なサブビットストリーム抽出プロセスは、以下の通りである。このプロセスへの入力は、ビットストリームinBitstream、ターゲットOLSインデックスtargetOlsIdx、およびターゲット最上位TemporalId値tIdTargetである。このプロセスの出力は、サブビットストリームoutBitstreamである。入力として、ビットストリーム、VPSによって指定されるOLSのリストへのインデックスに等しいtargetOlsIdx、および両端値を含む0~6の範囲内の任意の値に等しいtIdTargetを用いてこの節で指定されるプロセスの出力であり、以下の条件を満たす任意の出力サブビットストリームが適合ビットストリームであることが、入力ビットストリームに対するビットストリーム適合性の要件である。出力サブビットストリームは、LayerIdInOls[targetOlsIdx]におけるnuh_layer_id値の各々に等しいnuh_layer_idを有する少なくとも1つのVCL NALユニットを含む必要がある。出力サブビットストリームは、tIdTargetに等しいTemporalIdを有する少なくとも1つのVCL NALユニットを含む必要がある。適合ビットストリームは、0に等しいTemporalIdを有する1または複数のコード化スライスNALユニットを含むが、0に等しいnuh_layer_idを有するコード化スライスNALユニットを含む必要はない。
【0155】
出力サブビットストリームOutBitstreamは、以下のように導出される。ビットストリームoutBitstreamは、ビットストリームinBitstreamと同一に設定される。tIdTargetよりも大きいTemporalIdを有する全てのNALユニットをoutBitstreamから除去する。outBitstreamから、リストLayerIdInOls[targetOlsIdx]に含まれないnuh_layer_idを有する全てのNALユニットを除去する。NestingOlsIdx[i]がtargetOlsIdxに等しくなるように、1に等しいnesting_ols_flagを有し、両端値を含む0~nesting_num_olss_minus1の範囲内にiの値がないスケーラブルネスティングSEIメッセージを含む全てのSEI NALユニットをoutBitstreamから除去する。targetOlsIdxが0より大きい場合、0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しいpayloadTypeを有する非スケーラブルネスト化SEIメッセージを含む全てのSEI NALユニットをoutBitstreamから除去する。
【0156】
例示的なHRDの一般的な態様は、以下の通りである。このセクションは、ビットストリームおよびデコーダ適合性を検査するためのHRDおよびその使用法を指定する。ビットストリーム適合性試験のセットは、ビットストリーム全体と称されるビットストリームの適合性を検査するために採用され、entireBitstreamとして示される。ビットストリーム適合性試験のセットは、VPSによって指定された各OLSおよび各OLSの時間サブセットの適合性を試験するためのものである。各試験について、以下の順序付けられたステップが列挙された順序で適用される。
【0157】
targetOpとして示される試験対象オペレーションポイントは、OLSインデックスopOlsIdxおよび最上位TemporalId値opTidを有するターゲットOLSを選択することによって選択される。opOlsIdxの値は、両端値を含む0~TotalNumOlss-1の範囲内にある。opTidの値は、両端値を含む0~vps_max_sub_layers_minus1の範囲内にある。opOlsIdxおよびopTidの値は、entireBitstream、opOlsIdx、およびopTidを入力としてサブビットストリーム抽出プロセスを呼び出すことによる出力であるサブビットストリームBitstreamToDecodeが、以下の条件を満たすような値である。BitstreamToDecode内のLayerIdInOls[opOlsIdx]におけるnuh_layer_id値の各々に等しいnuh_layer_idを有する少なくとも1つのVCL NALユニットが存在する。BitstreamToDecode中にopTidに等しいTemporalIdを有する少なくとも1つのVCL NALユニットが存在する。
【0158】
TargetOlsIdxおよびHtidの値は、それぞれ、targetOpのopOlsIdxおよびopTidに等しく設定される。ScIdxの値が選択される。選択されたScIdxは、両端値を含む0~hrd_cpb_cnt_minus1の範囲内にあるものとする。TargetOlsIdxに適用可能なバッファリング期間SEIメッセージに関連付けられたBitstreamToDecode内のアクセスユニット(TargetLayerBitstreamに存在するか、または本明細書で指定されていない外部メカニズムを通じて利用可能)は、HRD初期化点として選択され、ターゲットOLS内のレイヤごとにアクセスユニット0と称される。
【0159】
後続のステップは、ターゲットOLS内のOLSレイヤインデックスTargetOlsLayerIdxを有する各レイヤに適用される。ターゲットOLS中に1つのレイヤのみが存在する場合、試験対象レイヤビットストリームTargetLayerBitstreamは、BitstreamToDecodeと同一に設定される。そうでない場合、TargetLayerBitstreamは、入力としてBitstreamToDecode、TargetOlsIdx、およびTargetOlsLayerIdxを有するレイヤビットストリームを導出するための逆多重化プロセスを呼び出すことによって導出され、出力はTargetLayerBitstreamに割り当てられる。
【0160】
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に割り当てられる。
【0161】
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に存在するか、外部メカニズムを介して利用可能)が選択される。
【0162】
各適合性試験は、上記ステップの各々における1つのオプションの組み合わせを含む。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に等しい。
【0163】
HRDは、ビットストリームデマルチプレクサ(所望により存在する)と、レイヤごとのコード化ピクチャバッファ(CPB)と、レイヤごとの瞬時復号プロセスと、レイヤごとのサブDPBを含む復号済みピクチャバッファ(DPB)と、出力クロッピングとを含む。
【0164】
一例では、HRDは以下のように動作する。HRDは復号ユニット0において初期化され、DPBの各CPBおよび各サブDPBは空に設定される。各サブDPBのためのサブDPBフルネスは、0に等しく設定される。初期化後、HRDは、後続のバッファリング期間SEIメッセージによって再び初期化されない。指定された到着スケジュールに従って各CPBに流れ込む復号ユニットに関連するデータは、HSSによって配信される。各復号ユニットに関連付けられたデータは、復号ユニットのCPB除去時間における瞬時復号プロセスによって除去され、瞬時に復号される。各復号済みピクチャは、DPBに配置される。復号済みピクチャは、インター予測参照のために不要となり、出力のために不要となった時点で、DPBから除去される。
【0165】
一例では、レイヤビットストリームを導出するための逆多重化プロセスは、以下の通りである。このプロセスへの入力は、ビットストリームinBitstream、ターゲットOLSインデックスtargetOlsIdx、およびターゲットOLSレイヤインデックスtargetOlsLayerIdxである。このプロセスの出力は、レイヤビットストリームoutBitstreamである。出力レイヤビットストリームoutBitstreamは、以下のように導出される。ビットストリームoutBitstreamは、ビットストリームinBitstreamと同一に設定される。LayerIdInOls[targetOlsIdx][targetOlsLayerIdx]に等しくないnuh_layer_idを有する全てのNALユニットをoutBitstreamから除去する。NestingOlsLayerIdx[i][j]がtargetOlsLayerIdxに等しくなるように、1に等しいnesting_ols_flagを有し、iおよびjの値がそれぞれ、両端値を含む0~nesting_num_ols_minus1、および両端値を含む0~nesting_num_ols_layers_minus1[i]の範囲内にないスケーラブルネスティングSEIメッセージを含む全てのSEI NALユニットをoutBitstreamから除去する。NestingOlsLayerIdx[i][j]がtargetOlsLayerIdxよりも小さくなるように、1に等しいnesting_ols_flagを有し、iおよびjの値がそれぞれ、両端値を含む0~nesting_num_ols_minus1、および両端値を含む0~nesting_num_ols_layers_minus1[i]の範囲内にあるスケーラブルネスティングSEIメッセージを含む全てのSEI NALユニットをoutBitstreamから除去する。NestingLayerId[i]がNestingNumLayers[targetOlsIdx][targetOlsLayerIdx]に等しくなるように、0に等しいnesting_ols_flagを有し、iの値が両端値を含む0~LayerIdInOls-1の範囲内にないスケーラブルネスティングSEIメッセージを含む全てのSEI NALユニットをoutBitstreamから除去する。NestingLayerId[i]がNestingNumLayers[targetOlsIdx][targetOlsLayerIdx]よりも小さくなるように、0に等しいnesting_ols_flagを有し、iの少なくとも1つの値が両端値を含む0~LayerIdInOls-1の範囲内にあるスケーラブルネスティングSEIメッセージを含む全てのSEI NALユニットをoutBitstreamから除去する。
【0166】
例示的なバッファリング期間SEIメッセージシンタックスは、以下の通りである。
【表5】
【0167】
例示的なスケーラブルネスティングSEIメッセージシンタックスは、以下の通りである。
【表6】
【0168】
例示的な一般的なSEIペイロードセマンティクスは、以下の通りである。以下は、非スケーラブルネスト化SEIメッセージの適用可能なレイヤ(OLSのコンテキストにおいて、または概して)に適用される。非スケーラブルネスト化SEIメッセージの場合、payloadTypeが0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しい場合、非スケーラブルネスト化SEIメッセージは、0番目のOLSのコンテキストにおける最下位レイヤのみに適用される。非スケーラブルネスト化SEIメッセージについて、payloadTypeがVclAssociatedSeiListの中の任意の値に等しい場合、非スケーラブルネスト化SEIメッセージは、VCL NALユニットがSEIメッセージを含むSEI NALユニットのnuh_layer_idに等しいnuh_layer_idを有するレイヤにのみ適用される。
【0169】
例示的なバッファリング期間SEIメッセージセマンティクスは、以下の通りである。バッファリング期間SEIメッセージは、復号順序における関連するアクセスユニットの位置におけるHRDの初期化のための初期CPB除去遅延および初期CPB除去遅延オフセット情報を提供する。バッファリング期間SEIメッセージが存在する場合、0に等しいTemporalIdを有し、RASLまたはランダムアクセス復号可能リーディング(RADL)ピクチャではないピクチャは、notDiscardablePicピクチャであると言われる。カレントピクチャが復号順序でビットストリーム内の第1のピクチャでない場合、RASLまたはRADLピクチャではない、0に等しいTemporalIdを有する復号順序で先行するピクチャをprevNonDiscardablePicとする。
【0170】
バッファリング期間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メッセージを有するものとする。
【0171】
bp_max_sub_layers_minus1プラス1は、CPB除去遅延およびCBP除去オフセットがバッファリング期間SEIメッセージ中で示される時間サブレイヤの最大数を指定する。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の値に等しいものとする。
【0172】
例示的なピクチャタイミング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の範囲内にあるものとする。
【0173】
例示的なスケーラブルネスティングSEIメッセージセマンティクスは、以下の通りである。スケーラブルネスティングSEIメッセージは、SEIメッセージを、特定のOLSのコンテキストにおける特定のレイヤと、またはOLSのコンテキストではない特定のレイヤと関連付けるためのメカニズムを提供する。スケーラブルネスティングSEIメッセージは、1または複数のSEIメッセージを含む。スケーラブルネスティングSEIメッセージに含まれるSEIメッセージは、スケーラブルネスト化SEIメッセージとも称される。スケーラブルネスティングSEIメッセージにSEIメッセージを含める場合は、ビットストリーム適合性の要件として以下の制限が適用される。132(復号済みピクチャハッシュ)または133(スケーラブルネスティング)に等しいpayloadTypeを有するSEIメッセージは、スケーラブルネスティングSEIメッセージに含まれないものとする。スケーラブルネスティングSEIメッセージがバッファリング期間、ピクチャタイミング、または復号ユニット情報SEIメッセージを含む場合、スケーラブルネスティングSEIメッセージは、0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しくないpayloadTypeを有する他のSEIメッセージを含まないものとする。
【0174】
スケーラブルネスティングSEIメッセージを含むSEI NALユニットのnal_unit_typeの値に、以下の制限が適用されることがビットストリーム適合性の要件である。スケーラブルネスティングSEIメッセージが、0(バッファリング期間)、1(ピクチャタイミング)、130(復号ユニット情報)、145(従属RAP指示)、または168(フレームフィールド情報)に等しいpayloadTypeを有するSEIメッセージを含む場合、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、PREFIX_SEI_NUTに等しいnal_unit_typeを有するものとする。スケーラブルネスティングSEIメッセージが、132(復号済みピクチャハッシュ)に等しいpayloadTypeを有するSEIメッセージを含むとき、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、SUFFIX_SEI_NUTに等しいnal_unit_typeを有するものとする。
【0175】
nesting_ols_flagは、スケーラブルネスト化SEIメッセージが特定のOLSのコンテキストにおいて特定のレイヤに適用されることを指定するために、1に設定される。nesting_ols_flagは、スケーラブルネスト化SEIメッセージが概して(OLSのコンテキストではなく)特定のレイヤに適用されることを指定するために、0に設定される。nesting_ols_flagの値に以下の制限が適用されることがビットストリーム適合性の要件である。スケーラブルネスティングSEIメッセージが、0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しいpayloadTypeを有するSEIメッセージを含む場合、nesting_ols_flagの値は1に等しいものとする。スケーラブルネスティングSEIメッセージが、VclAssociatedSeiListにおける値に等しいpayloadTypeを有する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】
【0176】
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】
【0177】
両端値を含む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に設定される。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】
【0178】
nesting_num_seis_minus1プラス1は、スケーラブルネスト化SEIメッセージの数を指定する。nesting_num_seis_minus1の値は、両端値を含む0~63の範囲内にあるものとする。nesting_0_bitは0に等しいものとする。
【0179】
図9は、例示的なビデオコーディングデバイス900の概略図である。ビデオコーディングデバイス900は、本明細書に記載される開示された例/実施形態を実装するのに適している。ビデオコーディングデバイス900は、ダウンストリームポート920、アップストリームポート950、および/またはトランシーバユニット(Tx/Rx)910を含み、トランシーバユニット(Tx/Rx)910は、ネットワークを介してアップストリームおよび/またはダウンストリームでデータを通信するための送信機および/または受信機を含む。ビデオコーディングデバイス900はまた、データを処理するための論理ユニットおよび/または中央処理ユニット(CPU)を含むプロセッサ930と、データを記憶するためのメモリ932とを含む。ビデオコーディングデバイス900はまた、電気、光、または無線通信ネットワークを介したデータの通信のためにアップストリームポート950および/またはダウンストリームポート920に結合された電気、光-電気(OE)コンポーネント、電気-光(EO)コンポーネント、および/または無線通信コンポーネントを含み得る。ビデオコーディングデバイス900はまた、ユーザとの間でデータを通信するための入力および/または出力(I/O)デバイス960を含み得る。I/Oデバイス960は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカなどの出力デバイスを含み得る。I/Oデバイス960はまた、キーボード、マウス、トラックボールなどの入力デバイス、および/またはかかる出力デバイスと対話するための対応するインターフェースを含み得る。
【0180】
プロセッサ930は、ハードウェアおよびソフトウェアによって実装される。プロセッサ930は、1または複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ930は、ダウンストリームポート920、Tx/Rx910、アップストリームポート950、およびメモリ932と通信する。プロセッサ930は、コーディングモジュール914を含む。コーディングモジュール914は、本明細書で説明する開示される実施形態、例えば方法100、1000、および1100を実装し、これらは、マルチレイヤビデオシーケンス600、マルチレイヤビデオシーケンス700、および/またはビットストリーム800を採用することができる。コーディングモジュール914はまた、本明細書で説明される任意の他の方法/メカニズムを実装し得る。さらに、コーディングモジュール914は、コーデックシステム200、エンコーダ300、デコーダ400、および/またはHRD500を実装することができる。例えば、コーディングモジュール914は、HRDを実装するために採用されてもよい。さらに、コーディングモジュール914は、HRD適合性検査プロセスをサポートするためにパラメータをビットストリームに符号化するために採用されてもよい。したがって、コーディングモジュール914は、上述の問題のうち1または複数に対処するためのメカニズムを実行するように構成され得る。したがって、コーディングモジュール914は、ビデオコーディングデバイス900に、ビデオデータをコーディングするときに追加の機能および/またはコーディング効率を提供させる。したがって、コーディングモジュール914は、ビデオコーディングデバイス900の機能を改善するとともに、ビデオコーディング技術に特有の問題に対処する。さらに、コーディングモジュール914は、ビデオコーディングデバイス900の異なる状態への変換をもたらす。代替的に、コーディングモジュール914は、メモリ932に記憶され、プロセッサ930によって実行される命令として(例えば、非一時的媒体に記憶されたコンピュータプログラム製品として)実装され得る。
【0181】
メモリ932は、ディスク、テープドライブ、ソリッドステートドライブ、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、ターナリ連想メモリ(TCAM)、スタティックランダムアクセスメモリ(SRAM)などの1または複数のメモリタイプを含む。メモリ932は、プログラムが実行のために選択されたときにかかるプログラムを記憶し、プログラム実行中に読み出される命令およびデータを記憶するために、オーバーフローデータストレージデバイスとして使用され得る。
【0182】
図10は、HRDによるビットストリーム適合性試験のための最大サブレイヤを直接参照するBP SEIメッセージを含めることによってビデオシーケンスをビットストリームに符号化する例示的な方法1000のフローチャートである。方法1000は、方法100を実行する際に、コーデックシステム200、エンコーダ300、および/またはビデオコーディングデバイス900などのエンコーダによって採用され得る。さらに、方法1000は、HRD500に対して動作することができ、それにより、マルチレイヤビデオシーケンス600、マルチレイヤビデオシーケンス700、および/またはビットストリーム800に対して適合性試験を実行することができる。
【0183】
方法1000は、エンコーダがビデオシーケンスを受信し、例えばユーザ入力に基づいて、そのビデオシーケンスをマルチレイヤビットストリームに符号化することを決定するときに開始し得る。ステップ1001において、エンコーダはビットストリームを符号化することができる。例えば、ビットストリームは、サブレイヤ710、720、および/または730など、1または複数のサブレイヤに編成されたピクチャを含んでもよい。例えば、ビットストリームは、マルチレイヤビデオシーケンス700などのマルチレイヤビデオシーケンスから符号化された時間スケーラブルビットストリームであってもよい。かかる場合、ビットストリーム中のサブレイヤは、時間スケーラブルレイヤ/サブレイヤと称される。各サブレイヤは、VCL NALユニット(例えば、ピクチャスライス)と、TemporalId変数の同じ値を有する関連する非VCL NALユニット(例えば、パラメータ)とを含むデータのセットである。
【0184】
エンコーダはまた、VPS811などのVPSをビットストリームに符号化することができる。VPSは、ビットストリーム全体に関連するデータを含み得る。例えば、VPSは、vps_max_sublayers_minus1シンタックス要素を含んでもよい。vps_max_sublayers_minus1シンタックス要素は、レイヤ、OLS、および/またはビットストリームのためのVPSによって指定されるサブレイヤの最大数を示し得る。エンコーダは、BP SEIメッセージをビットストリームに符号化することもできる。BP SEIメッセージは、bp_max_sublayers_minus1シンタックス要素を含む。bp_max_sublayers_minus1シンタックス要素は、初期CPB除去遅延および初期CPB除去オフセットがBP SEIメッセージ中で示される時間サブレイヤの最大数を指定するシンタックス要素である。bp_max_sublayers_minus1シンタックス要素は、両端値を含む0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定され得る。例えば、bp_max_sublayers_minus1シンタックス要素の値は、両端値を含む0からvps_max_sublayers_minus1までの任意の値に設定されてもよい。このようにして、BP SEIメッセージは、VPSによって指定されるようなビットストリーム中の任意の数のサブレイヤに関連付けられ得る。
【0185】
BP SEIメッセージはまた、それぞれnal_initial_cpb_removal_delayおよびnal_initial_cpb_removal_offsetとして示され得る、初期CPB除去遅延と初期CPB除去オフセットとの1または複数のペアを含む。これらの値は、BP SEIメッセージに含まれるパラメータであり、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられる。
【0186】
ステップ1003において、エンコーダは、BP SEIメッセージに基づいてHRDを初期化することができる。例えば、HRDは、BP SEIメッセージ中のbp_max_sublayers_minus1の値によって示されるレイヤ/サブレイヤごとの復号順序で、関連するAUまたはDUの位置にあってもよい。例えば、HRDは、関連する初期CPB除去遅延および初期CPB除去オフセットのペアの値に基づいて、かかるレイヤ/サブレイヤごとのCPB配信スケジュールを決定することができる。
【0187】
ステップ1005において、HRDは、対応するCPB配信スケジュールに基づいてサブレイヤに対してビットストリーム適合性試験のセットを実行することができる。次いで、ステップ1007において、ビットストリームは、デコーダへの通信のために記憶され得る。
【0188】
図11は、HRD500などのHRDによるビットストリーム適合性試験のための最大サブレイヤを直接参照するBP SEIメッセージを含むビットストリームからビデオシーケンスを復号する例示的な方法1100のフローチャートである。方法1100は、方法100を実行する際に、コーデックシステム200、デコーダ400、および/またはビデオコーディングデバイス900などのデコーダによって採用され得る。さらに、方法1100は、マルチレイヤビデオシーケンス600および/またはマルチレイヤビデオシーケンス700を含む、ビットストリーム800などのビットストリームに対して動作し得る。
【0189】
方法1100は、デコーダが、例えば方法1000の結果として、マルチレイヤビデオシーケンスを表すコード化データのビットストリームを受信し始めるときに開始し得る。ステップ1101において、デコーダは、1または複数のサブレイヤを含むビットストリームを受信する。例えば、ビットストリームは、サブレイヤ710、720、および/または730など、1または複数のサブレイヤに編成されたピクチャを含んでもよい。例えば、ビットストリームは、マルチレイヤビデオシーケンス700など、コード化マルチレイヤビデオシーケンスを含む時間スケーラブルビットストリームであってもよい。かかる場合、ビットストリーム中のサブレイヤは、時間スケーラブルレイヤ/サブレイヤと称される。各サブレイヤは、VCL NALユニット(例えば、ピクチャスライス)と、TemporalId変数の同じ値を有する関連する非VCL NALユニット(例えば、パラメータ)とを含むデータのセットである。
【0190】
ビットストリームはまた、VPS811などのVPSを含む。VPSは、ビットストリーム全体に関連するデータを含み得る。例えば、VPSは、vps_max_sublayers_minus1シンタックス要素を含んでもよい。vps_max_sublayers_minus1シンタックス要素は、レイヤ、OLS、および/またはビットストリームのためのVPSによって指定されるサブレイヤの最大数を示し得る。ビットストリームはまた、BP SEIメッセージを含む。BP SEIメッセージは、bp_max_sublayers_minus1シンタックス要素を含む。bp_max_sublayers_minus1シンタックス要素は、初期CPB除去遅延および初期CPB除去オフセットがBP SEIメッセージ中で示される時間サブレイヤの最大数を指定するシンタックス要素である。bp_max_sublayers_minus1シンタックス要素は、両端値を含む0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定され得る。例えば、bp_max_sublayers_minus1シンタックス要素の値は、両端値を含む0からvps_max_sublayers_minus1までの任意の値に設定されてもよい。このようにして、BP SEIメッセージは、VPSによって指定されるようなビットストリーム中の任意の数のサブレイヤに関連付けられ得る。
【0191】
BP SEIメッセージはまた、それぞれnal_initial_cpb_removal_delayおよびnal_initial_cpb_removal_offsetとして示され得る、初期CPB除去遅延と初期CPB除去オフセットとの1または複数のペアを含む。これらの値は、BP SEIメッセージに含まれるパラメータであり、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられる。BP SEIメッセージおよび関連するデータは、HRDにおけるビットストリーム規格適合性試験プロセス中に、復号順序において、関連するAUまたはDUの位置におけるHRDの初期化のために採用される。
【0192】
ステップ1103において、デコーダは、1または複数のサブレイヤからピクチャを復号することができる。例えば、デコーダは、サブレイヤのうち1または複数を復号し、ユーザに提示するために、かかるサブレイヤをサブレイヤ表現740などのサブレイヤ表現に組み合わせることができる。ステップ1107において、デコーダは、復号済みビデオシーケンスの一部として表示するために復号済みピクチャを転送することができる。
【0193】
図12は、HRDによるビットストリーム適合性試験のための最大サブレイヤを直接参照するBP SEIメッセージを含むビットストリーム中のビデオシーケンスをコーディングするための例示的なシステム1200の概略図である。システム1200は、コーデックシステム200、エンコーダ300、デコーダ400、および/またはビデオコーディングデバイス900などのエンコーダおよびデコーダによって実装され得る。さらに、システム1200は、HRD500を採用して、マルチレイヤビデオシーケンス600、マルチレイヤビデオシーケンス700、および/またはビットストリーム800に対して適合性試験を実行することができる。加えて、システム1200は、方法100、1000、および/または1100を実装するときに採用され得る。
【0194】
システム1200は、ビデオエンコーダ1202を含む。ビデオエンコーダ1202は、VPSおよび1または複数のサブレイヤを含むビットストリームを符号化するための符号化モジュール1203を含む。符号化モジュール1203はさらに、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたbp_max_sublayers_minus1シンタックス要素を含むBP SEIメッセージをビットストリームに符号化するためのものである。ビデオエンコーダ1202は、BP SEIメッセージに基づいてHRDを初期化するための初期化モジュール1204をさらに含む。ビデオエンコーダ1202は、サブレイヤに対してビットストリーム適合性試験のセットを実行するためのHRDモジュール1205をさらに含む。ビデオエンコーダ1202は、デコーダへの通信のためにビットストリームを記憶するための記憶モジュール1206をさらに含む。ビデオエンコーダ1202は、ビットストリームをビデオデコーダ1210に向けて送信するための送信モジュール1207をさらに含む。ビデオエンコーダ1202は、方法1000のステップのいずれかを実行するようにさらに構成され得る。
【0195】
システム1200はまた、ビデオデコーダ1210を含む。ビデオデコーダ1210は、VPSと、1または複数のサブレイヤと、0からVPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたbp_max_sublayers_minus1)シンタックス要素と、を含むビットストリームを受信するための受信モジュール1211を含む。ビデオデコーダ1210は、1または複数のサブレイヤからピクチャを復号するための復号モジュール1213をさらに含む。ビデオデコーダ1210は、復号済みビデオシーケンスの一部として表示するためにピクチャを転送するための転送モジュール1215をさらに含む。ビデオデコーダ1210は、方法1100のステップのいずれかを実行するようにさらに構成され得る。
【0196】
第1の構成要素と第2の構成要素との間に線、トレース、または別の媒体を除いて、介在するコンポーネントがない場合、第1の構成要素は第2の構成要素に直接結合される。第1の構成要素と第2の構成要素との間に線、トレース、または別の媒体以外の介在コンポーネントが存在する場合、第1の構成要素は第2の構成要素に間接結合される。「結合された」およびその変形は、直接結合されたものおよび間接結合されたものの両方を含む。用語「約」の使用は、特に明記しない限り、その後の数の±10%を含む範囲を意味する。
【0197】
本明細書に記載される例示的な方法のステップは、必ずしも記載された順序で実行される必要はなく、かかる方法のステップの順序は単なる例示であると理解されるべきであることも理解されるべきである。同様に、本開示の種々の実施形態と一致する方法において、追加のステップがかかる方法に含まれてもよく、特定のステップが省略または組み合わされてもよい。
【0198】
本開示において複数の実施形態が提供されているが、開示されたシステムおよび方法は、本開示の精神または範囲から逸脱することなく、多くの他の特定の形態で具現化され得ることが理解され得る。本実施例は、例示的であって限定的ではないと見なされるべきであり、本発明は、本明細書に与えられた詳細に限定されるべきではない。例えば、種々の要素または構成要素は、別のシステムにおいて組み合わされるか、もしくは統合されてもよく、または特定の特徴が省略されるか、もしくは実装されなくてもよい。
【0199】
加えて、離散的または別個のものとして種々の実施形態において説明および図示される技術、システム、サブシステム、および方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技術、または方法と組み合わせられるか、または統合され得る。変更、置換、および代替の他の例は、当業者によって確認可能であり、本明細書に開示される精神および範囲から逸脱することなく行われ得る。
[他の考えられる項目]
[項目1]
デコーダによって実装される方法であって、上記方法が、
上記デコーダの受信機によって、ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から上記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含むビットストリームを受信する段階と、
上記デコーダのプロセッサによって、上記1または複数のサブレイヤからピクチャを復号する段階と、
を備える、方法。
[項目2]
上記bp_max_sublayers_minus1が、バッファリング期間補助強化情報(SEI)メッセージに含まれ、上記BP SEIメッセージが、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられたパラメータを含む、項目1に記載の方法。
[項目3]
上記BP SEIメッセージ中の上記パラメータが、初期コード化ピクチャバッファ(CPB)除去遅延と初期CPB除去オフセットとを含む、項目1または2に記載の方法。
[項目4]
上記VPS中で示されるサブレイヤの上記最大数が、VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)に含まれる、項目1~3のいずれか一項に記載の方法。
[項目5]
上記vps_max_sublayers_minus1が、上記VPSに含まれる、項目1~4のいずれか一項に記載の方法。
[項目6]
上記BP SEIメッセージが、復号順序において、関連するアクセスユニット(AU)の位置における仮想リファレンスデコーダ(HRD)の初期化のためのものである、項目1~5のいずれか一項に記載の方法。
[項目7]
上記ビットストリームが、時間スケーラブルビットストリームであり、上記1または複数のサブレイヤが、上記ビットストリームの時間スケーラブルレイヤであり、各サブレイヤが、ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットと、テンポラル識別子(TemporalId)変数の値が同じである関連する非VCL NALユニットとを含む、項目1~6のいずれか一項に記載の方法。
[項目8]
エンコーダによって実装される方法であって、上記方法が、
上記エンコーダのプロセッサによって、ビデオパラメータセット(VPS)と1または複数のサブレイヤとを含むビットストリームを符号化する段階と、
上記プロセッサによって、0から上記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)を含むBP補助強化情報(SEI)メッセージを上記ビットストリームに符号化する段階と、
上記プロセッサによって、上記BP SEIメッセージに基づいて仮想リファレンスデコーダ(HRD)を初期化する段階と、
上記プロセッサによって、上記HRDを用いて、上記サブレイヤに対してビットストリーム適合性試験のセットを実行する段階と、
を備える、方法。
[項目9]
上記BP SEIメッセージが、bp_max_sublayers_minus1によって指定される時間サブレイヤの最大数に関連付けられたパラメータを含む、項目8に記載の方法。
[項目10]
上記BP SEIメッセージ中の上記パラメータが、初期コード化ピクチャバッファ(CPB)除去遅延と初期CPB除去オフセットとを含む、項目8または9に記載の方法。
[項目11]
上記VPS中で示されるサブレイヤの上記最大数が、VPS最大サブレイヤマイナスワン(vps_max_sublayers_minus1)に含まれる、項目8~10のいずれか一項に記載の方法。
[項目12]
上記vps_max_sublayers_minus1が、上記VPSに含まれる、項目8~11のいずれか一項に記載の方法。
[項目13]
上記HRDが、上記BP SEIメッセージに基づいて、復号順序において、関連するアクセスユニット(AU)の位置において初期化される、項目8~12のいずれか一項に記載の方法。
[項目14]
上記ビットストリームが、時間スケーラブルビットストリームであり、上記1または複数のサブレイヤが、上記ビットストリームの時間スケーラブルレイヤであり、各サブレイヤが、ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットと、テンポラル識別子(TemporalId)変数の値が同じである関連する非VCL NALユニットとを含む、項目8~13のいずれか一項に記載の方法。
[項目15]
プロセッサと、上記プロセッサに結合された受信機と、上記プロセッサに結合されたメモリと、上記プロセッサに結合された送信機と、を備え、上記プロセッサ、受信機、メモリ、および送信機が、項目1~14のいずれか一項に記載の方法を実行するように構成されている、
ビデオコーディングデバイス。
[項目16]
ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を備える非一時的コンピュータ可読媒体であって、上記コンピュータプログラム製品が、プロセッサによって実行されたときに上記ビデオコーディングデバイスに項目1~14のいずれか一項に記載の方法を実行させるように、上記非一時的コンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を有する、非一時的コンピュータ可読媒体。
[項目17]
デコーダであって、
ビデオパラメータセット(VPS)と、1または複数のサブレイヤと、0から上記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)とを含むビットストリームを受信するための受信手段と、
上記1または複数のサブレイヤからピクチャを復号するための復号手段と、
復号済みビデオシーケンスの一部として表示するために上記ピクチャを転送するための転送手段と、
を備える、デコーダ。
[項目18]
上記デコーダが、項目1~7のいずれか一項に記載の方法を実行するようにさらに構成されている、項目17に記載のデコーダ。
[項目19]
エンコーダであって、
符号化手段であって、
ビデオパラメータセット(VPS)と1または複数のサブレイヤとを含むビットストリームを符号化することと、
0から上記VPS中で示されるサブレイヤの最大数までの範囲内の値に設定されたバッファリング期間(BP)最大サブレイヤマイナスワン(bp_max_sublayers_minus1)を含むBP補助強化情報(SEI)メッセージを上記ビットストリームに符号化することと、
を行うための符号化手段と、
上記BP SEIメッセージに基づいて仮想リファレンスデコーダ(HRD)を初期化するための初期化手段と、
上記サブレイヤに対してビットストリーム適合性試験のセットを実行するためのHRD手段と、
デコーダへの通信のために上記ビットストリームを記憶するための記憶手段と、
を備える、エンコーダ。
[項目20]
上記エンコーダが、項目8~14のいずれか一項に記載の方法を実行するようにさらに構成されている、項目19に記載のエンコーダ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】