特許第6549145号(P6549145)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許6549145マルチレイヤコーデックのためのHEVC SEIメッセージの汎用的な使用
<>
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000004
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000005
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000006
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000007
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000008
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000009
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000010
  • 特許6549145-マルチレイヤコーデックのためのHEVC  SEIメッセージの汎用的な使用 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6549145
(24)【登録日】2019年7月5日
(45)【発行日】2019年7月24日
(54)【発明の名称】マルチレイヤコーデックのためのHEVC SEIメッセージの汎用的な使用
(51)【国際特許分類】
   H04N 19/70 20140101AFI20190711BHJP
   H04N 19/30 20140101ALI20190711BHJP
   H04N 19/597 20140101ALI20190711BHJP
【FI】
   H04N19/70
   H04N19/30
   H04N19/597
【請求項の数】20
【全頁数】60
(21)【出願番号】特願2016-558403(P2016-558403)
(86)(22)【出願日】2015年3月24日
(65)【公表番号】特表2017-510198(P2017-510198A)
(43)【公表日】2017年4月6日
(86)【国際出願番号】US2015022297
(87)【国際公開番号】WO2015148545
(87)【国際公開日】20151001
【審査請求日】2018年2月27日
(31)【優先権主張番号】61/969,797
(32)【優先日】2014年3月24日
(33)【優先権主張国】US
(31)【優先権主張番号】14/665,953
(32)【優先日】2015年3月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ワン、イェ−クイ
(72)【発明者】
【氏名】ラマスブラモニアン、アダルシュ・クリシュナン
(72)【発明者】
【氏名】ヘンドリー、フヌ
【審査官】 坂東 大五郎
(56)【参考文献】
【文献】 Ye-Kui Wang, et al.,MV-HEVC/SHVC HLS: SEI message cleanups,Joint Collaborative Team on Video Coding on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 8th Meeting: Valencia, ES, 29 March - 4 April 2014,http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H0082-v1.zip,2014年 3月25日,JCTVC-Q0183_JCT3V-H0082.doc,pp. 1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
High Efficiency Video Coding(HEVC)規格またはHEVC規格の拡張にしたがってビデオデータを復号する方法であって、
単一の時間インスタンスに対応する複数のピクチャを有する1つまたは複数のアクセスユニットを含む、ビデオデータのマルチレイヤビットストリームの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを復号することと、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するスケーラブルネスティングSEIメッセージを含み、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記スケーラブルネスティングSEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス要素の1つまたは複数のシンタックス値を決定することと、ここにおいて、前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージのbitstream_subset_flagが0に等しいと決定することを備え、0に等しいbitstream_subset_flagは、前記スケーラブルネスティングSEIメッセージに含まれる前記1つまたは複数のSEIメッセージが特定のレイヤまたはサブレイヤに適用されることを指定し、1に等しいbitstream_subset_flagは、前記スケーラブルネスティングSEIメッセージに含まれる前記1つまたは複数のSEIメッセージがサブビットストリーム抽出処理から生じる1つまたは複数のサブビットストリームに適用されることを指定する、
を備える、方法。
【請求項2】
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの前記第1のセットに含まれていることに基づいて、前記スケーラブルネスティングSEIメッセージを含む前記1つまたは複数の非VCL NALユニットが、0に等しいTemporalIdと、iのすべての値に対するTemporalIdの最大の値に等しいmaxTemporalId[i]とを有すると決定することをさらに備える、請求項1に記載の方法。
【請求項4】
前記マルチレイヤビットストリームの前記bitstream_subset_flagシンタックス要素を復号することと、
前記bitstream_subset_flagが1に等しいことと、両端を含めて0から前記SEIメッセージを含む前記非VCL NALユニットのレイヤ識別子の範囲にあるレイヤ識別子を含む前記マルチレイヤビットストリームのビデオパラメータセット(VPS)によって指定されるレイヤセットがないこととに基づいて、前記マルチレイヤビットストリームのdefault_op_flagシンタックス要素の値が0の値であると決定することと
をさらに備える、請求項1に記載の方法。
【請求項5】
前記マルチレイヤビットストリームのnesting_op_flagと前記マルチレイヤビットストリームのall_layers_flagとを復号することと、
前記nesting_op_flagが0という値を有することと前記all_layers_flagが1という値を有することとに基づいて、前記マルチレイヤビットストリームのmaxTemporalId[0]シンタックス要素の値がTemporalIdの最大の値に等しいと決定することと
をさらに備える、請求項1に記載の方法。
【請求項6】
前記マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素と前記マルチレイヤビットストリームのnesting_op_flagシンタックス要素とを復号することと、
前記bitstream_subset_flagシンタックス要素が1という値を有することと、前記nesting_op_flagシンタックス要素が0という値を有することとに基づいて、前記マルチレイヤビットストリームのnestingLayerIdList[0]が前記マルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むと決定することと
をさらに備える、請求項1に記載の方法。
【請求項7】
符号化されたビットストリームから前記マルチレイヤビットストリームのレイヤのビデオデータのための変換係数を取得することと、
残差データを生成するために逆変換を前記変換係数に適用することと、
前記生成された残差データに基づいて前記ビデオデータを決定することと
をさらに備える、請求項1に記載の方法。
【請求項8】
実行されると、1つまたは複数のプロセッサに、請求項1〜のいずれか一項に記載の方法を行わせる、命令を記憶したコンピュータ可読記憶媒体。
【請求項9】
High Efficiency Video Coding(HEVC)規格またはHEVC規格の拡張にしたがってビデオデータを符号化する方法であって、
単一の時間インスタンスに対応する複数のピクチャを有する1つまたは複数のアクセスユニットを含む、ビデオデータのマルチレイヤビットストリームの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを符号化することと、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するスケーラブルネスティングSEIメッセージを含み、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記スケーラブルネスティングSEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス要素の1つまたは複数のシンタックス値を決定することと、ここにおいて、前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージのbitstream_subset_flagが0に等しいと決定することを備え、0に等しいbitstream_subset_flagは、前記スケーラブルネスティングSEIメッセージに含まれる前記1つまたは複数のSEIメッセージが特定のレイヤまたはサブレイヤに適用されることを指定し、1に等しいbitstream_subset_flagは、前記スケーラブルネスティングSEIメッセージに含まれる前記1つまたは複数のSEIメッセージがサブビットストリーム抽出処理から生じる1つまたは複数のサブビットストリームに適用されることを指定する、
を備える、方法。
【請求項10】
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、請求項に記載の方法。
【請求項11】
前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの前記第1のセットに含まれていることに基づいて、前記スケーラブルネスティングSEIメッセージを含む前記1つまたは複数の非VCL NALユニットが、0に等しいTemporalIdと、iのすべての値に対するTemporalIdの最大の値に等しいmaxTemporalId[i]とを有すると決定することをさらに備える、請求項に記載の方法。
【請求項12】
前記マルチレイヤビットストリームの前記bitstream_subset_flagシンタックス要素を符号化することと、
前記bitstream_subset_flagが1に等しいことと、両端を含めて0から前記SEIメッセージを含む前記非VCL NALユニットのレイヤ識別子の範囲にあるレイヤ識別子を含む前記マルチレイヤビットストリームのビデオパラメータセット(VPS)によって指定されるレイヤセットがないこととに基づいて、前記マルチレイヤビットストリームのdefault_op_flagシンタックス要素の値が0の値であると決定することと
をさらに備える、請求項に記載の方法。
【請求項13】
前記マルチレイヤビットストリームのnesting_op_flagと前記マルチレイヤビットストリームのall_layers_flagとを符号化することと、
前記nesting_op_flagが0という値を有することと前記all_layers_flagが1という値を有することとに基づいて、前記マルチレイヤビットストリームのmaxTemporalId[0]シンタックス要素の値がTemporalIdの最大の値に等しいと決定することと
をさらに備える、請求項に記載の方法。
【請求項14】
前記マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素と前記マルチレイヤビットストリームのnesting_op_flagシンタックス要素とを符号化することと、
前記bitstream_subset_flagシンタックス要素が1という値を有することと、前記nesting_op_flagシンタックス要素が0という値を有することとに基づいて、前記マルチレイヤビットストリームのnestingLayerIdList[0]が前記マルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むと決定することと
をさらに備える、請求項に記載の方法。
【請求項15】
予測データとビデオデータとの差を示す、前記マルチレイヤビットストリームのレイヤの前記ビデオデータための残差データを生成することと、
変換係数を生成するために前記残差データに変換を適用することと、
前記変換係数の指示を含むビットストリームを生成することと
をさらに備える、請求項に記載の方法。
【請求項16】
実行されると、1つまたは複数のプロセッサに、請求項15のいずれか一項に記載の方法を行わせる、命令を記憶したコンピュータ可読記憶媒体。
【請求項17】
High Efficiency Video Coding(HEVC)規格またはHEVC規格の拡張にしたがってビデオデータをコーディングするための装置であって、
単一の時間インスタンスに対応する複数のピクチャを有する1つまたは複数のアクセスユニットを含む、ビデオデータのマルチレイヤビットストリームの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングするための手段と、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するスケーラブルネスティングSEIメッセージを含み、前記スケーラブルネスティングSEIメッセージは、1つまたは複数のSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記スケーラブルネスティングSEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス要素の1つまたは複数のシンタックス値を決定するための手段と、ここにおいて、前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージのbitstream_subset_flagが0に等しいと決定することを備え、0に等しいbitstream_subset_flagは、前記スケーラブルネスティングSEIメッセージに含まれる前記1つまたは複数のSEIメッセージが特定のレイヤまたはサブレイヤに適用されることを指定し、1に等しいbitstream_subset_flagは、前記スケーラブルネスティングSEIメッセージに含まれる前記1つまたは複数のSEIメッセージがサブビットストリーム抽出処理から生じる1つまたは複数のサブビットストリームに適用されることを指定する、
を備える、装置。
【請求項18】
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、請求項17に記載の装置。
【請求項19】
前記1つまたは複数のシンタックス値を決定するための前記手段が、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれていることに基づいて、前記スケーラブルネスティングSEIメッセージを含む前記1つまたは複数の非VCL NALユニットが、0に等しいTemporalIdと、iのすべての値に対するTemporalIdの最大の値に等しいmaxTemporalId[i]とを有すると決定するための手段を備える、請求項17に記載の装置。
【請求項20】
前記装置が、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス
の少なくとも1つを備える、請求項17に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、2014年3月24日に出願された米国仮出願第61/969,797号の利益を主張する。
【0002】
[0002]本開示は、ビデオコーディングと、ビデオ圧縮と、ビットストリーム中の圧縮されたビデオと関連付けられるデータのシグナリングとに関する。
【背景技術】
【0003】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータもしくはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話もしくは衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)、High Efficiency Video Coding(HEVC)規格によって定義された規格、およびそのような規格の拡張に記述されているビデオ圧縮技法などのビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報を効率的に送信し、受信し、符号化し、復号し、および/または記憶し得る。
【0004】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部)はビデオブロックに区分されてよく、これらのビデオブロックは、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもある。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【0005】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コーディングされたブロックと予測ブロックとの間の差分を示す。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数が、次いで量子化され得る。最初に2次元アレイで構成される量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
【発明の概要】
【0006】
[0006]本開示の態様は、マルチレイヤの状況においてHigh Efficiency Video Coding(HEVC)規格において定義される補足強化レイヤ(SEI)メッセージを適用するための技法を対象とする。たとえば、本開示の技法は、たとえば、HEVCに対するマルチビュービデオコーディング拡張(MV−HEVC)またはHEVCに対するスケーラブルビデオコーディング(SVC)拡張(SHVC)のようなHEVC規格に対する拡張を使用した、マルチレイヤビデオコーディングにおいて適用されるべきHEVCに記載される種々のSEIメッセージのシンタックスに対する変更および/または制約を含み得る。いくつかの事例では、本技法は、そのようなマルチレイヤコーデックの計算効率性および/または誤り耐性を改善することができる。
【0007】
[0007]ある例では、ビデオデータをコーディングする方法は、ビデオデータのマルチレイヤビットストリームのアクセスユニットおよび第1のレイヤの1つまたは複数のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを取得することと、アクセスユニット内でビットストリームが第1のレイヤのVCL NALユニットと第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットとの間のマルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャをも含まないように、第1のレイヤのVCL NALユニットとともに、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットだけをコーディングすることとを含む。
【0008】
[0008]別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータのマルチレイヤビットストリームの少なくとも一部分を記憶するように構成されるメモリと、ビデオデータのマルチレイヤビットストリームのアクセスユニットおよび第1のレイヤの1つまたは複数のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを取得し、アクセスユニット内でビットストリームが第1のレイヤのVCL NALユニットと第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットとの間のマルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャも含まないように、第1のレイヤのVCL NALユニットとともに、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットだけをコーディングするように構成される1つまたは複数のプロセッサとを含む。
【0009】
[0009]別の例では、ビデオデータをコーディングするための装置は、ビデオデータのマルチレイヤビットストリームのアクセスユニットおよび第1のレイヤの1つまたは複数のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを取得するための手段と、アクセスユニット内でビットストリームが第1のレイヤのVCL NALユニットと第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットとの間のマルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャも含まないように、第1のレイヤのVCL NALユニットとともに、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットだけをコーディングするための手段とを含む。
【0010】
[0010]別の例では、非一時的コンピュータ可読媒体は、実行されると、1つまたは複数のプロセッサに、ビデオデータのマルチレイヤビットストリームのアクセスユニットおよび第1のレイヤの1つまたは複数のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットを取得させ、アクセスユニット内でビットストリームが第1のレイヤのVCL NALユニットと第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットとの間のマルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャも含まないように、第1のレイヤのVCL NALユニットとともに、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットだけをコーディングさせる、命令を記憶している。
【0011】
[0011]別の例では、ビデオデータをコーディングする方法は、マルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、1つまたは複数の非VCL NALユニットは復号ピクチャハッシュSEIメッセージを含む、復号ピクチャハッシュSEIメッセージを含む1つまたは複数の非VCL NALユニットのレイヤ識別子に基づいて、復号ピクチャハッシュSEIメッセージが適用可能なマルチレイヤビットストリームのレイヤのセットを決定することとを含む。
【0012】
[0012]別の例では、ビデオデータをコーディングするためのデバイスは、マルチレイヤビットストリームの少なくとも一部分を記憶するように構成されるメモリと、マルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、1つまたは複数の非VCL NALユニットは復号ピクチャハッシュSEIメッセージを含む、復号ピクチャハッシュSEIメッセージを含む1つまたは複数の非VCL NALユニットのレイヤ識別子に基づいて、復号ピクチャハッシュSEIメッセージが適用可能なマルチレイヤビットストリームのレイヤのセットを決定することとを行わせるように構成される1つまたは複数のプロセッサとを含む。
【0013】
[0013]別の例では、ビデオデータをコーディングするための装置は、マルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングするための手段と、ここにおいて、1つまたは複数の非VCL NALユニットは復号ピクチャハッシュSEIメッセージを含む、復号ピクチャハッシュSEIメッセージを含む1つまたは複数の非VCL NALユニットのレイヤ識別子に基づいて、復号ピクチャハッシュSEIメッセージが適用可能なマルチレイヤビットストリームのレイヤのセットを決定するための手段とを含む。
【0014】
[0014]別の例では、非一時的コンピュータ可読媒体は、実行されると、1つまたは複数のプロセッサに、マルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、1つまたは複数の非VCL NALユニットは復号ピクチャハッシュSEIメッセージを含む、復号ピクチャハッシュSEIメッセージを含む1つまたは複数の非VCL NALユニットのレイヤ識別子に基づいて、復号ピクチャハッシュSEIメッセージが適用可能なマルチレイヤビットストリームのレイヤのセットを決定することとを行わせる、命令を記憶している。
【0015】
[0015]別の例では、ビデオデータをコーディングする方法は、ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、1つまたは複数の非VCL NALユニットはSEIペイロードタイプを有するSEIメッセージを含む、SEIペイロードタイプに基づいて、SEIメッセージが適用されるマルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することとを含む。
【0016】
[0016]別の例では、ビデオデータをコーディングするためのデバイスは、マルチレイヤビットストリームのレイヤを記憶するように構成されるメモリと、ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、1つまたは複数の非VCL NALユニットはSEIペイロードタイプを有するSEIメッセージを含む、SEIペイロードタイプに基づいて、SEIメッセージが適用されるマルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することとを行わせるように構成される1つまたは複数のプロセッサとを含む。
【0017】
[0017]別の例では、ビデオデータをコーディングするための装置は、ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングするための手段と、ここにおいて、1つまたは複数の非VCL NALユニットはSEIペイロードタイプを有するSEIメッセージを含む、SEIペイロードタイプに基づいて、SEIメッセージが適用されるマルチレイヤビットストリームの1つまたは複数のシンタックス値を決定するための手段とを含む。
【0018】
[0018]別の例では、非一時的コンピュータ可読媒体は、実行されると、1つまたは複数のプロセッサに、ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、1つまたは複数の非VCL NALユニットはSEIペイロードタイプを有するSEIメッセージを含む、SEIペイロードタイプに基づいて、SEIメッセージが適用されるマルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することとを行わせる、命令を記憶している。
【0019】
[0019]本開示の1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0020】
図1】[0020]本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
図2】[0021]本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
図3】[0022]本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。
図4】[0023]本開示の1つまたは複数の態様が実装され得るカプセル化ユニットの一例を示すブロック図。
図5】[0024]本開示の1つまたは複数の態様が実装され得る1つの例示的なネットワークを示すブロック図。
図6】[0025]本開示で説明される技法の様々な態様による、SEIメッセージをコーディングするように構成されるビデオ処理デバイスの例示的な動作を示す流れ図。
図7】[0026]本開示で説明される技法の様々な態様による、SEIメッセージをコーディングするように構成されるビデオ処理デバイスの別の例示的な動作を示す流れ図。
図8】[0027]本開示で説明される技法の様々な態様による、SEIメッセージをコーディングするように構成されるビデオ処理デバイスの別の例示的な動作を示す流れ図。
【発明を実施するための形態】
【0021】
[0028]本開示は、マルチレイヤの状況においてHigh Efficiency Video Coding(HEVC)規格において定義される補足強化レイヤ(SEI)メッセージを適用するための技法を含む。いくつかの事例では、以下で述べられるように、本技法は、HEVCに対するマルチビュービデオコーディング拡張(MV−HEVC)またはHEVCに対するスケーラブルビデオコーディング(SVC)拡張(SHVC)のような、HEVC規格に対するマルチレイヤ拡張とともに実行され得る。しかしながら、本開示の技法は、いかなる特定のビデオコーディング規格にも限定されず、同じくまたは代替的に、HEVCに対する他の拡張、他のマルチビューコーディング規格および/または他のマルチレイヤビデオ規格とともに使用され得る。加えて、本開示の技法は、以下で説明されるように、単独でまたは組み合わせて適用され得る。
【0022】
[0029]ビデオデータの「レイヤ」は一般に、ビュー、フレームレート、解像度などのような少なくとも1つの共通の特性を有するピクチャのシーケンスを指し得る。たとえば、レイヤは、マルチビュービデオデータの特定のビュー(たとえば、視点)と関連付けられるビデオデータを含み得る。別の例として、レイヤは、スケーラブルビデオデータの特定のレイヤと関連付けられるビデオデータを含み得る。したがって、本開示は、ビデオデータのレイヤおよびビューを互換的に指すことがある。すなわち、ビデオデータのビューはビデオデータのレイヤと呼ばれることがあり、またはその逆のこともあり、複数のビューまたは複数のスケーラブルレイヤは、同じように、たとえばマルチレイヤコーディングシステムでは複数のレイヤと呼ばれることがある。加えて、(マルチレイヤビデオコーダまたはマルチレイヤエンコーダ−デコーダとも呼ばれる)マルチレイヤコーデックは、マルチビューコーデックまたはスケーラブルコーデック(たとえば、MV−HEVC、SHVC、または別のマルチレイヤコーディング技法を使用してビデオデータを符号化および/または復号するように構成されたコーデック)を指すことがある。
【0023】
[0030]マルチレイヤビットストリームは、たとえばSHVCではベースレイヤと1つまたは複数の非ベースレイヤを含むことがあり、またはたとえばMV−HEVCでは複数のビューを含むことがある。スケーラブルビットストリームでは、ベースレイヤは通常、0に等しいレイヤ識別子を有し得る。非ベースレイヤは、0よりも大きなレイヤ識別子を有してよく、ベースレイヤに含まれない追加のビデオデータを提供することができる。たとえば、マルチビュービデオデータの非ベースレイヤは、ビデオデータの追加のビューを含み得る。スケーラブルビデオデータの非ベースレイヤは、スケーラブルビデオデータの追加のレイヤを含み得る。非ベースレイヤは、交換可能にエンハンスメントレイヤと呼ばれ得る。
【0024】
[0031]マルチレイヤビットストリームのアクセスユニット(AUと省略されることがある)は、一般に、共通の時間インスタンスのためのすべてのレイヤ成分(たとえば、すべてのネットワーク抽象化レイヤ(NAL)ユニット)を含むデータのユニットである。アクセスユニットのレイヤ成分は通常、一緒に出力される(すなわち、実質的に同時に出力される)ことが意図されており、ここで、ピクチャを出力することは一般に、復号ピクチャバッファ(DPB)からピクチャを転送すること(たとえば、DPBから外部メモリにピクチャを記憶すること、DPBからディスプレイへピクチャを送ることなど)を伴う。
【0025】
[0032]ビデオデータの符号化された表現を含むビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを含み得る。NALユニットは、NALユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在しているローバイトシーケンスペイロード(RBSP)の形態でそのデータを含むバイトとを含む、シンタックス構造であり得る。NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含み得る。VCL NALユニットは、ピクチャのコーディングされたスライスを含み得る。非VCL NALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、1つまたは複数の補足強化情報(SEI)メッセージ、または他のタイプのデータをカプセル化し得る。
【0026】
[0033]ビットストリームのNALユニットは、ビットストリームの様々なレイヤと関連付けられ得る。SHVCでは、上で述べられたように、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれてよく、ビデオデータの再生の品質を改善するデータを含み得る。MV−HEVCのようなマルチビューコーディングおよび3次元ビデオ(3DV)コーディングでは、レイヤは、異なるビューと関連付けられるデータを含み得る。ビットストリームの各レイヤは、異なるレイヤ識別子と関連付けられる。
【0027】
[0034]さらに、NALユニットは時間識別子を含み得る。ビットストリームの各動作点は、レイヤ識別子のセットと時間識別子とを有する。NALユニットが、ある動作点のためのレイヤ識別子のセット中のレイヤ識別子を指定し、NALユニットの時間識別子が動作点の時間識別子以下である場合、NALユニットは、その動作点と関連付けられる。
【0028】
[0035]H.264/AVCとHEVCの両方でサポートされるSEI機構により、ビデオエンコーダは、出力ピクチャのサンプル値のビデオデコーダまたは他のデバイスによる正しい復号のために必要とされないが、ピクチャ出力タイミング、表示、ならびに損失の検出および補償のような様々な他の目的で使用され得るようなメタデータをビットストリームに含めることが可能になる。1つまたは複数のSEIメッセージをカプセル化するNALユニットは、本明細書ではSEI NALユニットと呼ばれる。1つのタイプのSEIメッセージは、スケーラブルネスティングSEIメッセージである。スケーラブルネスティングSEIメッセージは、1つまたは複数の追加SEIメッセージを含むSEIメッセージである。スケーラブルネスティングSEIメッセージは、SEIメッセージがマルチレイヤビットストリームの特定のレイヤに適用されるかまたは時間サブレイヤに適用されるかを示すために使用され得る。スケーラブルネスティングSEIメッセージ中に含まれないSEIメッセージは、本明細書では、ネストされていないSEIメッセージと呼ばれる。
【0029】
[0036]ある特定のタイプのSEIメッセージは、特定の動作点にのみ適用可能な情報を含む。ビットストリームの動作点は、レイヤ識別子のセットおよび時間識別子と関連付けられる。動作点の表現は、動作点と関連付けられる各NALユニットを含み得る。動作点の表現は、元のビットストリームとは異なるフレームレートおよび/またはビットレートを有することがある。これは、動作点の表現が元のビットストリームのいくつかのピクチャおよび/またはいくつかのデータを含まないことがあるからである。
【0030】
[0037]バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、および復号ユニットSEIメッセージは、特定の動作点にのみ適用可能であり得る。したがって、そのようなSEIメッセージ中の情報を使用するために、ビデオプロセッサは、どの動作点がSEIメッセージに適用可能であるかを決定し得る。他のタイプのSEIメッセージは、特定のレイヤにのみ適用可能である。したがって、そのようなSEIメッセージ中の情報を使用するために、ビデオプロセッサは、どのレイヤがSEIメッセージに適用可能であるかを決定し得る。
【0031】
[0038]マルチレイヤコーディングの状況におけるHEVC SEIメッセージの汎用的な使用は、いくつかの課題をもたらし得る。たとえば、以下でより詳細に説明されるように、HEVCにおいて規定されるSEIメッセージを複数のレイヤに適用すると、複雑さが増し、シンタックスの矛盾が生じ、および/または、マルチレイヤビデオコーデックを誤動作させる他のエラーが生じ得る。
【0032】
[0039]いくつかの例では、本開示の技法は、HEVC SEIメッセージの汎用的な使用に関する種々の問題を解決するための解決法を提供し得る。たとえば、本技法は、ビデオエンコーダまたはビデオデコーダがマルチレイヤビットストリームの特性に基づいていくつかのシンタックス要素の値を自動的にコーディングする(またはコーディングを伴わずに自動的に決定する)ように、それらのいくつかのシンタックス要素に対して制約を適用することを含み得る。
【0033】
[0040]図1は、本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
【0034】
[0041]宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化されたビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、高周波(RF)スペクトルまたは1つもしくは複数の物理伝送線路のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークのようなパケットベースのネットワーク、またはインターネットのようなグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0035】
[0042]代替的に、符号化されたデータは出力インターフェース22から記憶デバイス32に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイス32からアクセスされ得る。記憶デバイス32は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または、符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス32は、ソースデバイス12によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス32から、記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶することと、その符号化されたビデオデータを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワークアタッチストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準的なデータ接続を通じて符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、両方の組合せを含み得る。記憶デバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【0036】
[0043]本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例のような、種々のマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオ電話のような適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0037】
[0044]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、カプセル化ユニット21と、出力インターフェース22とを含む。いくつかの場合、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのようなソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、本開示で説明される技法は、ビデオコーディング全般に適用可能であることがあり、ワイヤレスおよび/または有線の適用例に適用され得る。
【0038】
[0045]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。カプセル化ユニット21は、マルチメディアコンテンツの1つまたは複数の表現を形成することができ、ここで、表現の各々は1つまたは複数のレイヤを含み得る。いくつかの例では、ビデオエンコーダ20は、たとえば、異なるフレームレート、異なるビットレート、異なる解像度、または他のそのような違いを伴う、異なる方法で各レイヤを符号化し得る。したがって、カプセル化ユニット21は、様々な特性、たとえば、ビットレート、フレームレート、解像度などを有する様々な表現を形成し得る。
【0039】
[0046]表現の各々は、宛先デバイス14によって取り出され得るそれぞれのビットストリームに対応し得る。カプセル化ユニット21は、たとえば、マルチメディアコンテンツに対するmedia presentation description(MPD)データ構造内で、各表現に含まれるビューのビュー識別子(view_id)の範囲の指示を与え得る。たとえば、カプセル化ユニット21は、表現のビューに対する最大ビュー識別子と最小ビュー識別子との指示を与え得る。MPDはさらに、マルチメディアコンテンツの複数の表現の各々に対する出力を対象とするビューの最大の数の指示を与え得る。MPDまたはそのデータは、いくつかの例では、(1つまたは複数の)表現に対するマニフェストに記憶され得る。
【0040】
[0047]符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、記憶デバイス32に記憶され得る。
【0041】
[0048]宛先デバイス14は、入力インターフェース28と、カプセル化解除ユニット29と、ビデオデコーダ30と、ディスプレイデバイス31とを含む。いくつかの場合、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を通じて符号化されたビデオデータを受信する。リンク16を通じて通信された、または記憶デバイス32に提供された、符号化されたビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30のようなビデオデコーダが使用するための、ビデオエンコーダ20によって生成された種々のシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体に記憶される、またはファイルサーバに記憶される、符号化されたビデオデータとともに含まれ得る。
【0042】
[0049]宛先デバイス14のカプセル化解除ユニット29は、ビットストリーム(またはマルチレイヤコーディングの状況では「動作点」と呼ばれるビットストリームのサブセット)からのSEIメッセージをカプセル化解除するユニットを表し得る。カプセル化解除ユニット29は、カプセル化ユニット21によって実行される動作とは逆の順序で動作を実行して、SEIメッセージのようなカプセル化された符号化されたビットストリームからのデータをカプセル化解除することができる。
【0043】
[0050]ディスプレイデバイス31は、宛先デバイス14と一体であってよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースするように構成されてよい。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス31は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、種々のディスプレイデバイスのいずれかを備え得る。
【0044】
[0051]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せのような、種々の好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0045】
[0052]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を扱うために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータプロトコル(UDP)のような他のプロトコルに準拠し得る。
【0046】
[0053]本開示は全般に、ビデオエンコーダ20が、ある情報をビデオデコーダ30のような別のデバイスに「シグナリング」することに言及することがある。「シグナリング」という用語は、全般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムで発生し得る。代替的に、そのような通信は、符号化の時に符号化されたビットストリームの中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに発生し得るなど、ある時間の長さにわたって発生することがあり、これらの要素は次いで、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
【0047】
[0054]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、そのスケーラブルビデオコーディング(SVC)拡張と、マルチビュービデオコーディング(MVC)拡張と、MVCベースの3DV拡張とを含む、ISO/IEC MPEG−4 Visualおよび(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264のようなビデオ圧縮規格に従って動作する。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、Joint Collaboration Team on Video Coding (JCT−VC) of ITU−T Video Coding Experts Group (VCEG) and ISO/IEC Motion Picture Experts Group (MPEG)によって開発されたHigh Efficiency Video Coding(HEVC)に従って動作し得る。HEVC規格のドラフトは、ITU−T H.265、High Efficiency Video Coding、2014年4月、および、HEVCバージョン1の第3の欠陥報告を提供する、Wang他、「High Efficiency Video Coding (HEVC) defect report 3」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、文書JCTVC−P1003_v1、第16回会合、サンノゼ、2014年1月、Wang他、「High Efficiency Video Coding (HEVC) defect report 3」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、文書JCTVC−P1003_v1、第16回会合、サンノゼ、2014年1月に記載されている。
【0048】
[0055]さらに、HEVCのためのスケーラブルビデオコーディング拡張と、マルチビューコーディング拡張と、3DV拡張とを作成する作業が進行中である。HEVCのスケーラブルビデオコーディング拡張は、SHEVCと呼ばれることがある。SHVCの最近のワーキングドラフト(WD)(以後、SHVC WD5または現在のSHVC WDと呼ばれる)は、Chen他、「High Efficiency Video Coding (HEVC) scalable extension draft 5」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、文書JCTVC−P1008_v4、第16回会合、サンノゼ、2014年1月に記載されている。MV−HEVCの最近のワーキングドラフト(WD)(以後、MV−HEVC WD7または現在のMV−HEVC WDと呼ばれる)は、Tech他、「MV−HEVC Draft Text 7」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、文書JCTVC−G1004_v7、第16回会合、サンノゼ、2014年1月に記載されている。
【0049】
[0056]HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは一般に、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、SL、SCbおよびSCrと表される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャは、モノクロームであってよく、ルーマサンプルのアレイのみを含み得る。
【0050】
[0057]ビデオエンコーダ20は、ピクチャの符号化された表現を生成するために、コーディングツリーユニット(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々のカラープレーンを有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックは、サンプルのNxNのブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれることもある。HEVCのCTUは、H.264/AVCのような他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタースキャン順序で連続的に順序付けられた整数個のCTUを含み得る。
【0051】
[0058]コーディングされたCTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するために、CTUのコーディングツリーブロックに対して4分木区分を再帰的に実行することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのNxNのブロックであり得る。CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々のカラープレーンを有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【0052】
[0059]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、PUは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのための、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
【0053】
[0060]ビデオエンコーダ20は、PUの予測ブロックを生成するためにイントラ予測またはインター予測を使用することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたピクチャの復号されたサンプルに基づいてPUの予測ブロックを生成することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられるピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
【0054】
[0061]ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、ビデオエンコーダ20は、CUのためのルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックの1つの中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ20は、CUのためのCb残差ブロックを生成することができる。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックの1つの中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差を示し得る。ビデオエンコーダ20は、CUのためのCr残差ブロックを生成することもできる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックの1つの中のCrサンプルと、CUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【0055】
[0062]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解するために、4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2個の対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックと関連付けられ得る。TUと関連付けられるルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【0056】
[0063]ビデオエンコーダ20は、TUのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回または複数回の変換を適用することができる。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であってよい。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1回または複数回の変換を適用することができる。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1回または複数回の変換を適用することができる。
【0057】
[0064]ビデオエンコーダ20は、係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、係数ブロックを量子化することができる。量子化は一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されさらなる圧縮を実現する、処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行し得る。
【0058】
[0065]ビデオエンコーダ20は、コーディングされたピクチャおよび関連するデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを備え得る。NALユニットは、NALユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在しているローバイトシーケンスペイロード(RBSP)の形態でそのデータを含むバイトとを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを指示するシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの例では、RBSPは0ビットを含む。
【0059】
[0066]異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)のためのRBSPをカプセル化することができ、第2のタイプのNALユニットはコーディングされたスライスのためのRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIのためのRBSPをカプセル化することができ、以下同様である。ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれることがある。
【0060】
[0067]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するために、ビットストリームを構文解析し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも一部基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するための処理は全般に、ビデオエンコーダ20によって実行される処理の逆であり得る。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在のCUのTUと関連付けられる変換ブロックを再構築するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在のCUのPUのための予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに追加することによって、現在のCUのコーディングブロックを再構築することができる。ピクチャの各CUのためのコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築することができる。
【0061】
[0068]マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューが存在することがある。上で述べられたように、アクセスユニットは、同じ時間インスタンスに対応するピクチャのセットを含む。したがって、ビデオデータは、時間とともに生じる一連のアクセスユニットとして概念化され得る。「ビュー成分」は、単一のアクセスユニット中のビューのコーディングされた表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられる一連のビュー成分を指し得る。例示的なタイプのビュー成分は、テクスチャビュー成分と深度ビュー成分とを含み得る。
【0062】
[0069]マルチビューコーディングは、ビュー間予測をサポートする。ビュー間予測は、HEVCにおいて使用されるインター予測と同様であり、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが現在のビデオユニット(PUのような)に対してビュー間予測を実行するとき、ビデオエンコーダ20は、参照ピクチャとして、その現在のビデオユニットと同じアクセスユニット中にあるが異なるビューの中にあるピクチャを使用し得る。対照的に、従来のインター予測は、参照ピクチャとして異なるアクセスユニット内のピクチャのみを使用する。
【0063】
[0070]マルチビューコーディングでは、ビデオデコーダ(たとえば、ビデオデコーダ30)が、あるビュー中のピクチャを、任意の他のビュー中のピクチャを参照せずに復号することができる場合、そのビューは「ベースビュー」と呼ばれ得る。非ベースビューの1つの中のピクチャをコーディングするとき、あるピクチャが異なるビュー中にあるが、ビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス(すなわち、アクセスユニット)内にある場合、(ビデオエンコーダ20またはビデオデコーダ30のような)ビデオコーダは、参照ピクチャリストにそのピクチャを追加することができる。他のインター予測参照ピクチャと同様に、ビデオコーダは、参照ピクチャリストの任意の位置にビュー間予測参照ピクチャを挿入することができる。
【0064】
[0071]H.264/AVCとHEVCの両方においてサポートされるSEI機構は、ビデオエンコーダ(たとえば、ビデオエンコーダ20)が、出力ピクチャのサンプル値の正確な復号のためには要求されないが、ピクチャ出力タイミング、表示、ならびに損失の検出および補償のような他の様々な目的で使用され得るようなメタデータをビットストリームに含めることを可能にする。ビデオエンコーダ20は、ピクチャのサンプル値の正確な復号に必要ではないメタデータをビットストリームに含めるために、SEIメッセージを使用することができる。しかしながら、ビデオデコーダ30または他のデバイスは、SEIメッセージに含まれるメタデータを様々な他の目的で使用することができる。たとえば、ビデオデコーダ30または別のデバイスは、ピクチャ出力タイミング、ピクチャ表示、損失検出、および誤り補償のために、SEIメッセージ中のメタデータを使用することができる。
【0065】
[0072]ビデオエンコーダ20は、アクセスユニットに1つまたは複数のSEI NALユニットを含めることができる。言い換えれば、任意の数のSEI NALユニットがアクセスユニットと関連付けられることがある。さらに、各SEI NALユニットは、1つまたは複数のSEIメッセージを含み得る。つまり、ビデオエンコーダは、任意の数のSEI NALユニットをアクセスユニットに含めることができ、各SEI NALユニットは、1つまたは複数のSEIメッセージを含み得る。SEI NALユニットは、NALユニットヘッダとペイロードとを含み得る。SEI NALユニットのNALユニットヘッダは、少なくとも第1のシンタックス要素と第2のシンタックス要素とを含む。第1のシンタックス要素は、SEI NALユニットのレイヤ識別子を指定する。第2のシンタックス要素は、SEI NALユニットの時間識別子を指定する。
【0066】
[0073]ネストされたSEIメッセージは、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージを指す。ネストされていないSEIメッセージは、スケーラブルネスティングSEIメッセージに含まれないSEIメッセージを指す。SEI NALユニットのペイロードは、ネストされたSEIメッセージまたはネストされていないSEIメッセージを備え得る。
【0067】
[0074]HEVC規格は、様々なタイプのSEIメッセージのためのシンタックスとセマンティクスとを記述する。しかしながら、SEIメッセージが規範となる復号処理に影響を及ぼさないので、HEVC規格はSEIメッセージの扱いを記述しない。HEVC規格にSEIメッセージを有する1つの理由は、補足データがHEVCを使用する様々なシステムにおいて同じように解釈されることを可能にするためである。HEVCを使用する規格およびシステムは、ビデオエンコーダに、いくつかのSEIメッセージを生成するように要求することがあり、または特定のタイプの受信されたSEIメッセージの固有の扱いを定義することがある。
【0068】
[0075]以下の表1は、HEVCにおいて規定されるSEIメッセージを列挙し、それらの目的を簡潔に記述している。
【0069】
【表1】
【0070】
[0076]マルチレイヤの状況においてHEVC SEIメッセージを使用することの1つの潜在的な問題は、第1のレイヤ(例としてlayerIdA)に等しいレイヤ識別子(たとえば、ビットストリームのnuh_layer_idシンタックス要素として識別されるような)を伴うレイヤに適用されるSEIメッセージを含むSEI NALユニットが、それらのレイヤのピクチャを含むアクセスユニット(AU)内で、第1のレイヤ(layerIdA)よりも大きなレイヤ識別子(nuh_layer_id)を伴うピクチャのVCL NALユニットに後続することが許容されるということである。たとえば、SEIメッセージが、SEIメッセージを使用するピクチャからビットストリームにおいて分離され得る。
【0071】
[0077]説明を目的とする例では、アクセスユニットは、マルチレイヤビットストリームの第1のレイヤの第1のピクチャと、マルチレイヤビットストリームの第2のレイヤの第2のピクチャとを含み得る。いくつかの事例では、第1のレイヤの第1のピクチャに適用可能なSEIメッセージは、第2のレイヤと関連付けられるNALユニットとともに含まれ得る。SEI NALユニットがビデオデータの他のレイヤとともに含まれることが許容される場合、ビデオエンコーダ20および/またはビデオデコーダ30は、他のレイヤからSEI NALユニットを抽出し、アクセスユニットをコーディングする前にメッセージを記憶しなければならないことがある。
【0072】
[0078]本開示の第1の態様によれば、第1のレイヤ(layerIdA)に等しいレイヤ識別子(nuh_layer_id)を伴うレイヤに適用されるSEIメッセージを含むSEI NALユニットは、アクセスユニット内の第1のレイヤ(layerIdA)よりも大きなレイヤ識別子(nuh_layer_id)を伴うピクチャの任意のVCL NALユニットならびにその関連する非VCL NALユニットに後続することが許可されない。たとえば、本開示の態様によれば、SEI NALユニットの配置は、マルチレイヤビットストリームにおいてSEI NALユニットが適用されるレイヤ(または複数のレイヤ)と一緒にSEI NALユニットが存在するように、制約され得る。
【0073】
[0079]上の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、第1のレイヤのVCL NALユニットとともに、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む1つまたは複数の非VCL NALユニットだけをコーディングする(たとえば、SEI NALユニットとVCL NALユニットとを連続的にコーディングする)ことができるので、ビットストリームは、第1のレイヤのVCL NALユニットと、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む非VCL NALユニットとの間に、マルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャも含まない。いくつかの事例では、マルチレイヤビットストリームにおいて、SEI NALユニットが適用されるレイヤ中のピクチャと一緒にSEI NALユニットを有することは、たとえば、関連するNALユニットを一緒に記憶して送信するときの記憶または送信のオーバーヘッドを最小にする際に、有益であり得る。たとえば、非VCL NALユニットと、非VCL NALユニットが適用されるVCL NALユニットとを一緒にビットストリーム中に維持することによって、ビデオエンコーダ20および/またはビデオデコーダ30は、VCL NALユニットをコーディングする前にメモリから非VCL NALユニットを探してフェッチしなくてもよいことがある。
【0074】
[0080]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第2の潜在的な問題は、マルチレイヤビットストリームツーウィッチ復号ピクチャハッシュSEIメッセージの適用可能なレイヤのセットがHEVC規格において明確に規定されないということである。復号ピクチャハッシュSEIメッセージは、復号されたピクチャのサンプル値から導出されるチェックサムを提供する。復号ピクチャハッシュメッセージは、ピクチャが正しく受信され復号されたかどうかを検出するために使用され得る。
【0075】
[0081]本開示の第2の態様によれば、復号ピクチャハッシュSEIメッセージの適用可能なレイヤのセットは、SEIメッセージを含むSEI NALユニットのレイヤ識別子(nuh_layer_id)に等しいレイヤ識別子(nuh_layer_id)を伴うレイヤであると指定されてよく、復号ピクチャハッシュSEIはネストされることが許可されない。たとえば、本開示の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、SEI NALユニット中の1つの復号ピクチャハッシュSEIメッセージをネストされていないSEIメッセージとしてコーディングできるだけであり、復号ピクチャハッシュSEIメッセージは、SEIメッセージを含むSEI NALユニットの同じレイヤ識別子(nuh_layer_id)を有するレイヤに適用されるだけである。
【0076】
[0082]上の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、復号ピクチャハッシュSEIメッセージを含む1つまたは複数の非VCL NALユニット(たとえば、 SEI NALユニット)をコーディングし、復号ピクチャハッシュSEIメッセージを含む1つまたは複数の非VCL NALユニットのレイヤ識別子に基づいて、復号ピクチャハッシュSEIメッセージが適用可能なマルチレイヤビットストリームのレイヤのセットを決定することができる。ビデオエンコーダ20および/またはビデオデコーダ30は、レイヤのセットを決定することがシンタックス要素に基づくように、nuh_layer_idシンタックス要素のようなSEI NALユニットのためのレイヤ識別子を示す1つまたは複数のシンタックス要素をコーディングすることができる。本技法は、いくつかの事例では、誤り耐性を高め、および/またはマルチレイヤコーディングにおいて復号ピクチャハッシュSEIメッセージと関連付けられる記憶のオーバーヘッドを減らすことができる。
【0077】
[0083]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第3の潜在的な問題は、有効パラメータセットSEIメッセージの適用可能なレイヤのセットがHEVC規格において明確に規定されないということである。有効パラメータセットSEIメッセージは、SEIメッセージと関連付けられるアクセスユニットのVCL NALユニットに対して有効である。SEIメッセージはまた、SEIメッセージと関連付けられるアクセスユニットのVCL NALユニットに対してどのSPSが有効であるかについての情報と、パラメータセットに関する他の情報とを提供し得る。たとえば、SEIメッセージは、完全にランダムなアクセシビリティがサポートされるかどうか(たとえば、サポートされるとき、復号順序においてより前にあるすべてのアクセスユニットを完全に廃棄することによって現在のコーディングされたビデオシーケンスの初めからランダムアクセスするときにビットストリームの残りのピクチャの復号のために必要とされるすべてのパラメータセットが残りのビットストリームに存在し、残りのビットストリーム中のすべてのコーディングされたピクチャが正しく復号され得る)の指示、または、復号順序において先行する同じタイプの別のパラメータセットを更新する(たとえば、パラメータセットの更新は、同じパラメータセットの識別子を使用するが一部の他のパラメータが変更されていることを指す)現在のコーディングされたビデオシーケンス内のパラメータセットがないかどうかの指示を含み得る。
【0078】
[0084]本開示の第3の態様によれば、有効パラメータセットSEIメッセージは、ビットストリーム中のすべてのレイヤに適用されるように定義される。加えて、有効パラメータセットSEIメッセージは、ネストされることが制約される。この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、有効パラメータセットSEIメッセージを含むマルチレイヤビットストリームの1つまたは複数の非VCL NALユニットをコーディングし、有効パラメータセットSEIメッセージを含む1つまたは複数の非VCL NALユニットに基づいて、有効パラメータセットSEIメッセージがマルチレイヤビットストリームのすべてのレイヤに適用可能であると決定することができる。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、有効パラメータセットSEIメッセージをコーディングすることによって、マルチレイヤビットストリームのすべてのレイヤに有効パラメータセットSEIメッセージが適用されることを自動的に導出することができる。いくつかの事例では、本技法は、マルチレイヤコーディングにおける有効パラメータセットSEIメッセージと関連付けられる複雑さを低減し得る。
【0079】
[0085]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第4の潜在的な問題は、frame_field_info_present_flagシンタックス要素がネストされたまたはネストされていないピクチャタイミング情報SEIメッセージに対して1に等しいとき、適用可能なレイヤのセットがシンタックス要素pic_struct、source_scan_type、およびduplicate_flagにおいて搬送されるフレームフィールド情報に対して明確に規定されないということである。たとえば、1に等しいframe_field_info_present_flagシンタックス要素は、ピクチャタイミングSEIメッセージがあらゆるピクチャに対して存在し、pic_structシンタックス要素と、source_scan_typeシンタックス要素と、duplicate_flagシンタックス要素とを含むことを指定する。一般に、pic_structシンタックス要素は、ピクチャがフレームとして表示されるべきかまたは1つもしくは複数のフィールドとして表示されるべきかを示し、source_scan_typeシンタックス要素はスキャンタイプ(たとえば、プログレッシブ、インターレース、または不明)を示し、duplicate_flagシンタックス要素は、現在のピクチャが出力順序において前にあるピクチャの複製であるものとして示されることを示す。
【0080】
[0086]本開示の第4の態様によれば、frame_field_info_present_flagシンタックス要素がネストされたまたはネストされていないピクチャタイミング情報SEIメッセージに対して1に等しいとき、ビデオエンコーダ20および/またはビデオデコーダ30は、シンタックス要素pic_struct、source_scan_type、およびduplicate_flagにおいて搬送されるフレームフィールド情報が、ピクチャタイミングSEIメッセージが適用される動作点のすべての中のレイヤに適用されると自動的に決定することができる。このようにして、いくつかの事例では、本技法は、マルチレイヤコーディングにおいてframe_field_info_present_flagシンタックス要素を使用するとき、複雑さを減らし、および/または誤り耐性を高めることができる。
【0081】
[0087]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第5の潜在的な問題は、有効パラメータセットSEIメッセージがHEVCにおいてネストされることを許可されるということである。しかしながら、上で述べられたように、有効パラメータセットSEIメッセージはすべてのレイヤに適用可能である。したがって、(たとえば、ネスティングSEIメッセージを使用して)マルチレイヤビットストリームの特定のレイヤに適用されるべき有効パラメータセットSEIメッセージに柔軟性をもたらすことは、ビデオエンコーダ20および/またはビデオデコーダ30の複雑さを不必要に高めることがある。たとえば、スケーラブルネスティングSEIメッセージを受信し復号すると、ビデオデコーダ30は、スケーラブルネスティングSEIメッセージのための適用可能なレイヤを決定するために、(たとえば、ネストされていないSEIメッセージと対比して)追加の動作を実行しなければならないことがある。
【0082】
[0088]本開示の第5の態様によれば、有効パラメータセットSEIメッセージは、スケーラブルネスティングSEIメッセージにおいてネストされることが許可されない。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、スケーラブルネスティングSEIメッセージではなく、ネストされていないSEIメッセージだけにおいて、マルチレイヤビットストリームの有効パラメータセットSEIメッセージをコーディングするように制約され得る。本技法は、有効パラメータセットSEIメッセージをコーディングして使用することと関連付けられる計算的な複雑さを低減することができる。たとえば、上の例に戻ると、ビデオデコーダ30は、スケーラブルネスティングSEIメッセージと関連付けられる追加の動作を実行することなく、有効パラメータセットSEIメッセージをコーディングして使用することができる。
【0083】
[0089]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第6の潜在的な問題は、1に等しいbitstream_subset_flagシンタックス要素と、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeとを有するネストされたSEIメッセージ(たとえば、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つ)のセマンティクスが明確ではないということである。HEVCでは、bitstream_subset_flagは、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージがマルチレイヤビットストリームの特定のレイヤまたはサブレイヤに適用されるかどうかを示す。たとえば、0に等しいbitstream_subset_flagは、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージが、特定のレイヤまたはサブレイヤに適用されることを指定する。1に等しいbitstream_subset_flagは、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージがサブビットストリーム抽出処理から生じる1つまたは複数のサブビットストリームに適用されることを指定する。よって、HEVCは、特定のレイヤセット(たとえば、サブビットストリーム)がマルチレイヤビットストリームから抽出されるときに特定のSEIメッセージ(上で特定されたペイロードタイプを有する)が扱われる方式を明確に指定せず、これは、マルチレイヤコーディングの間の誤りおよび/または非効率性を生み出し得る。
【0084】
[0090]payloadTypeが2、3、6、9、15、16、17、19、22、23、45、47、128、129、131、132、または134に等しいとき、SEIメッセージは、それぞれ、出力ピクチャのピクチャアスペクト比とは異なるピクチャアスペクト比での表示と関連付けられるデータを含むパンスキャン方形SEIメッセージ、特定の制約を満たすようにビットレートを調整するためのデータを含むフィラーペイロードSEIメッセージ、クリーンランダムアクセスまたは漸次復号リフレッシュについての情報を含む復元点SEIメッセージ、シーン変化および遷移と関連付けられる情報を含むシーン情報SEIメッセージ、関連する復号されたピクチャをビデオコンテンツの静止画像スナップショットとして標識するための指示を含むピクチャスナップショットSEIメッセージ、動画シーンではなくピクチャの品質の漸進的な精緻化を表す連続的なピクチャのセグメントの開始と関連付けられる情報を含む漸進的精緻化セグメント開始SEIメッセージ、連続的なピクチャのセグメントの終了と関連付けられる情報を含む漸進的精緻化セグメント終了SEIメッセージ、合成フィルムグレイン効果と関連付けられる情報を含むフィルムグレイン特性SEIメッセージ、提案されたポストフィルタ係数と関連付けられる情報またはポストフィルタ設計についての相関情報を含むポストフィルタヒントSEIメッセージ、符号化において使用され、または想定されるものとは別の色空間への再マッピングと関連付けられる情報を含むトーンマッピング情報SEIメッセージ、ビットストリームへの立体視ビデオのパックと関連付けられる情報を含むフレームパッキング配置SEIメッセージ、出力ピクチャが表示されるときに出力ピクチャに適用されるべきフリップおよび/または回転を指定する情報を含む表示方向SEIメッセージ、ビットストリームの時間的なインター予測構造を記述する情報を含むピクチャ情報SEIメッセージの構造、時間的サブレイヤ0インデックスを示す時間的サブレイヤ0インデックスSEIメッセージ、復号されたピクチャはSEIメッセージを有する、または、現在のSEIメッセージと関連付けられるスライスセグメントが現在のピクチャ中のリフレッシュされた領域に属すかどうかを示す領域リフレッシュ情報SEIメッセージの1つである。
【0085】
[0091]payloadTypeが0、1、4、5、130、および133に等しいとき、SEIメッセージは、それぞれ、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、ユーザ登録済SEIメッセージ、ユーザ未登録SEIメッセージ、復号ユニット情報SEIメッセージ、またはスケーラブルネスティングSEIメッセージの1つである。
【0086】
[0092]本開示の第6の態様によれば、スケーラブルネスティングSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有するSEIメッセージを含む(たとえば、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つである)とき、スケーラブルネスティングSEIメッセージのシンタックス要素bitstream_subset_flagの値は0に等しいことが要求される。たとえば、本開示の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、SEIメッセージのペイロードタイプがSEIメッセージの所定のセットに含まれていることに基づいて、シンタックス要素bitstream_subset_flagを自動的に決定および/またはコーディングすることができる。SEIメッセージの所定のセットは、単一のレイヤに適用されるSEIメッセージであり得る。このようにして、ビデオエンコーダ20および/またはビデオデコーダ30は、上で特定されたセットフロムビーイングアプライドに含まれるSEIメッセージをマルチレイヤビットストリーム中の2つ以上のレイヤに適用することが制約され、これによって、マルチレイヤコーディングの間の誤りおよび/または非効率性が減る可能性がある。
【0087】
[0093]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第7の問題は、ネストされていないバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含むSEI NALユニットに対して、レイヤ識別子の値(nuh_layer_id)が何であるべきかが不明確であるということである。バッファリング期間SEIメッセージは、復号順序での関連するアクセスユニットの位置におけるHRDの初期化のための初期コーディングピクチャバッファ(CPB)削除遅延および初期CPB削除遅延オフセットの情報を提供する。ピクチャタイミングSEIメッセージは、HRD動作のためのピクチャ出力時間とピクチャ/サブピクチャ削除時間、ならびにピクチャ構造関連の情報を提供する。復号ユニット情報SEIメッセージは、復号ユニットのためのCPB削除遅延情報を提供する。このメッセージは、超低遅延バッファリング動作において使用され得る。したがって、上で述べられたSEIメッセージは、HRDによって必要とされる情報を提供し、SEIメッセージはレイヤセットに適用可能である(たとえば、自己完結型のレイヤのセットもサブビットストリームと呼ばれる)。そのようなSEIメッセージがネストされておらず、レイヤ識別子が0ではない場合、メッセージがどのレイヤセットに適用されるかが不明確であり、これはマルチレイヤコーディングの間に誤りを生み出し得る。
【0088】
[0094]本開示の第7の態様によれば、ネストされていないバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含むSEI NALユニットのためのレイヤ識別子(nuh_layer_id)の値は、0に等しいことが要求される。たとえば、本開示の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、ネストされていないバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含むSEIメッセージを含む1つまたは複数の非VCL NALユニットに基づいて、レイヤのレイヤ識別子が0の値であると自動的に決定する(および/またはレイヤ識別子シンタックス要素に対して0の値をコーディングする)ことができる。このようにして、本技法は、マルチレイヤコーディングの間の誤りおよび/または非効率性を潜在的に減らし得る。
【0089】
[0095]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第8の潜在的な問題は、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有するネストされていないSEIメッセージ(すなわち、0、1、129、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つ)に対してレイヤ識別子シンタックス要素(nuh_layer_id)の値が何であるべきかが不明確であるということである。たとえば、HEVCは、特定のSEIメッセージ(上で特定されたペイロードタイプを有する)がマルチレイヤビットストリームの特定のレイヤ(特定のレイヤ識別子を有する)のために扱われる方式を明確に指定せず、これは、マルチレイヤコーディングの間の誤りおよび/または非効率性を生み出し得る。
【0090】
[0096]本開示の第8の態様によれば、ネストされていないSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有する(すなわち、0、1、129、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つである)とき、ネストされていないSEIメッセージを含むSEI NALユニットのためのレイヤ識別子(nuh_layer_id)の値は、SEI NALユニットの関連するVCL NALユニットのレイヤ識別子(nuh_layer_id)に等しいことが要求される。すなわち、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、SEIペイロードタイプがペイロードタイプの第1のセット(たとえば、上で特定されたペイロードタイプ)に含まれていることに基づいて、SEIメッセージを含む非VCL NALユニットのためのレイヤ識別子シンタックス要素がSEIメッセージと関連付けられるVCL NALユニットのレイヤ識別子シンタックス要素に等しいと自動的に決定することができる。
【0091】
[0097]マルチレイヤの状況においてHEVC SEIを使用することの第9の潜在的な問題は、HEVCにおいては、アクセスユニットの2つのVCL NALユニットの間に同じタイプのプレフィックスSEIメッセージがある例では、プレフィックスSEIメッセージが存在してアクセスユニットの最初のVCL NALユニットに先行することが要求されることである。たとえば、プレフィックスSEIメッセージは通常、SEIメッセージが適用されるVCL NALユニットよりも前にビットストリームに含まれる。HEVCでは、プレフィックスSEIメッセージの配置に対する制約は、アクセスユニットベースであり、これは、複数のレイヤ成分(たとえば、複数のレイヤからのピクチャを有するアクセスユニット)を有するアクセスユニットでは問題となり得る。すなわち、一部のプレフィックスSEIメッセージは、複数のレイヤ成分を有するアクセスユニット中の適切な位置(たとえば、SEIメッセージが適用されるVCL NALユニットよりも前)に位置しないことがある。
【0092】
[0098]本開示の第9の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、プレフィックスSEIメッセージがコーディングされる方式を、(たとえば、上で述べられたアクセスユニットベースの技法とは対照的に)プレフィックスSEIメッセージが適用されるピクチャに基づいて制御することができる。たとえば、本開示の態様によれば、同じタイプでありピクチャの2つのVCL NALユニットの間に存在するレイヤ(たとえば、layerA)に適用されるプレフィックスSEIメッセージがある例では、ピクチャを含むレイヤ(たとえば、layerA)に適用されるプレフィックスSEIメッセージが存在してピクチャの最初のVCL NALユニットに先行することが要求される。
【0093】
[0099]たとえば、少なくとも第1のピクチャと第2のピクチャとを含むアクセスユニットに対して、ビデオエンコーダ20および/またはビデオデコーダ30は、第1のピクチャのVCL NALユニットに適用可能な第1のプレフィックスSEIメッセージを含む1つまたは複数の非VCL NALユニットと、ビットストリームにおいて第1のピクチャに後続する第2のピクチャのVCL NALユニットに適用可能な第2のプレフィックスSEIメッセージを含む1つまたは複数の非VCL NALユニットとをコーディングするように制約され得る。このようにして、ビデオエンコーダ20および/またはビデオデコーダ30は、アクセスユニットの他の位置にあるプレフィックスSEIメッセージをコーディングすることを制約され、これにより、マルチレイヤコーディングにおいて効率が上がり、記憶のオーバーヘッドが減り得る。
【0094】
[0100]マルチレイヤの状況においてHEVC SEIを使用することの第10の潜在的な問題は、HEVCにおいては、アクセスユニットの2つのVCL NALユニットの間に同じタイプのサフィックスSEIメッセージがあるときに、サフィックスSEIメッセージが存在してアクセスユニットの最後のVCL NALユニットの後を追う(それに後続する)ことが要求されることである。たとえば、サフィックスSEIメッセージは通常、SEIメッセージが適用されるVCL NALユニットの後にビットストリームに含まれる。HEVCでは、サフィックスSEIメッセージの配置に対する制約は、アクセスユニットベースであり、これは、複数のレイヤ成分(たとえば、マルチレイヤビットストリームのアクセスユニット)を有するアクセスユニットでは問題となり得る。すなわち、一部のサフィックスSEIメッセージは、複数のレイヤ成分を有するアクセスユニット中の適切な位置(たとえば、SEIメッセージが適用されるVCL NALユニットよりも後)に位置しないことがある。
【0095】
[0101]本開示の第10の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、サフィックスSEIメッセージがコーディングされる方式を、(たとえば、上で述べられたアクセスユニットベースの技法とは対照的に)サフィックスSEIメッセージが適用されるピクチャに基づいて制御することができる。たとえば、本開示の態様によれば、同じタイプでありピクチャの2つのVCL NALユニットの間に存在するレイヤ(たとえば、layerA)に適用されるサフィックスSEIメッセージがあるとき、ピクチャを含むレイヤ(たとえば、layerA)に適用されるサフィックスSEIメッセージが存在してピクチャの最後のVCL NALユニットの後を追う(それに後続する)ことが要求される。
【0096】
[0102]たとえば、少なくとも第1のピクチャと第2のピクチャとを含むアクセスユニットに対して、ビデオエンコーダ20および/またはビデオデコーダ30は、第1のピクチャに後続する第1のピクチャのVCL NALユニットに適用可能な第1のサフィックスSEIメッセージを含む1つまたは複数の非VCL NALユニットと、ビットストリームにおいて第2のピクチャに後続する第2のピクチャのVCL NALユニットに適用可能な第2のプレフィックスSEIメッセージを含む1つまたは複数の非VCL NALユニットとをコーディングするように制約され得る。このようにして、ビデオエンコーダ20および/またはビデオデコーダ30は、アクセスユニットの他の位置にあるサフィックスSEIメッセージをコーディングすることを制約され、これにより、マルチレイヤコーディングにおいて効率が上がり、記憶のオーバーヘッドが減り得る。
【0097】
[0103]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第11の潜在的な問題は、HEVCでは、SEIメッセージが繰り返すことが許可される回数がアクセスユニットごとに指定されるということである。たとえば、いくつかの事例では、SEIメッセージはピクチャをコーディングするときに繰り返され得る。説明を目的とする例では、各スライスが固有のVCL NALユニットと関連付けられる8つのスライスを有するピクチャについて、ビデオエンコーダ20および/またはビデオデコーダ30は、各VCL NALユニットのためにある特定のSEIメッセージを繰り返すことができる。しかしながら、SEIメッセージが繰り返され得る回数に対するアクセスユニットベースの制約は、マルチレイヤビデオコーディングでは問題となることがあり、それは、複数のレイヤ成分を有するアクセスユニットは、単一のレイヤ成分(たとえば、単一のピクチャ)を有するアクセスユニットよりも多くのスライスを潜在的に有し得るからである。この例では、誤りの性能(および/またはSEIメッセージの影響を受ける他の機能)が悪影響を受け得る。
【0098】
[0104]本開示の第11の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、SEIメッセージが繰り返され得る回数をピクチャごとに指定することができる。この状況では、ピクチャは、コーディングされるピクチャのVCL NALユニットと、それらのVCL NALユニットと関連付けられる非VCL NALユニットとを含むものとして定義され得る。よって、本開示の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、あるピクチャのVCL NALユニットとそのピクチャの関連する非VCL NALユニットとを含むピクチャに基づいて、SEIメッセージのための最大繰り返しパラメータ(たとえば、SEIメッセージが繰り返され得る最大の回数)を決定することができる。いくつかの事例では、本技法は、マルチレイヤコーディングにおける誤り耐性を高め得る。
【0099】
[0105]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第12の潜在的な問題は、default_op_flagシンタックス要素が1に等しく、bitstream_subset_flagシンタックス要素が1に等しいが、両端を含めて0から現在のSEI NALユニットのnuh_layer_idの範囲にあるレイヤ識別子の値(nuh_layer_id)を有するレイヤだけを含むビットストリームに対してVPSによって指定されるレイヤセットがない例において、競合が生じ得ることである。たとえば、1に等しいdefault_op_flagシンタックス要素は、maxTemporalId[0]が現在のSEI NALユニットのnuh_temporal_id_plus1から1を引いたものに等しいことと、nestingLayerIdList[0]が値の昇順で両端を含めて0から現在のSEI NALユニットのnuh_layer_idの範囲にあるすべての整数値を含むこととを指定する。上で述べられたように、1に等しいbitstream_subset_flagシンタックス要素は、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージがサブビットストリーム抽出処理から生じる1つまたは複数のサブビットストリームに適用されることを指定する。言い換えると、マルチレイヤビットストリームのデフォルトのレイヤセットが示されるが、VPSがデフォルトのレイヤセットに対応する特定のレイヤセットを指定しない例では、競合が生じ得る。
【0100】
[0106]本開示の第12の態様によれば、bitstream_subset_flagシンタックス要素が1に等しく、VPSによって指定されるレイヤセットの中に、両端を含めて0から現在のSEI NALユニットのnuh_layer_idの範囲にあるnuh_layer_idの値を有するレイヤだけを含むものがないとき、default_op_flagシンタックス要素の値は0に等しいことが要求される。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素をコーディングし、bitstream_subset_flagが1に等しいことと、両端を含めて0からSEIメッセージを含む非VCL NALユニットのレイヤ識別子の範囲にあるレイヤ識別子を含むマルチレイヤビットストリームのVPSによって指定されるレイヤセットがないこととに基づいて、マルチレイヤビットストリームのdefault_op_flagシンタックス要素の値は0の値であると決定することができる。本技法は、マルチレイヤコーディングにおいてdefault_op_flagシンタックス要素を使用するときに、誤り耐性を高めることができる。
【0101】
[0107]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第13の潜在的な問題は、nesting_op_flagシンタックス要素が0に等しくall_layers_flagシンタックス要素が1に等しいときに、変数maxTemporalId[0]の値がHEVCでは指定されないということである。0に等しいnesting_op_flagシンタックス要素は、リストnestingLayerIdList[0]がall_layers_flagシンタックス要素によって、および存在するときには、両端を含めて0からnesting_num_layers_minus1の範囲にあるすべてのiの値に対するnesting_layer_id[i]によって指定されることと、変数maxTemporalId[0]がnesting_no_op_max_temporal_id_plus1によって指定されることとを指定する。言い換えると、HEVCは、ネストされるSEIメッセージがマルチレイヤビットストリームの時間的サブレイヤとともに使用されるとき、適用可能なサブレイヤ(たとえば、maxTemporalId[0]変数を使用して識別されるような)を特定せず、これは、不必要な混乱を引き起こし得る。
【0102】
[0108]本開示の第13の態様によれば、nesting_op_flagシンタックス要素が0に等しく、all_layers_flagシンタックス要素が1に等しいとき、ビデオエンコーダ20およびビデオデコーダ30は、6という値を有するようにmaxTemporalId[0]シンタックス要素を自動的にコーディングすることができ、6という値はTemporalIdシンタックス要素に対して最大の可能な値である。すなわち、本開示の態様によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、含まれるサブレイヤの数とは無関係に、ビデオデータのレイヤに含まれるすべてのサブレイヤにSEIメッセージを適用するように構成され得る。このようにして、本技法は、マルチレイヤコーディングと関連付けられる複雑さを減らし得る。
【0103】
[0109]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第14の潜在的な問題は、ネストされたSEIメッセージが2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有し(たとえば、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つであり)、SEIメッセージがレイヤのセットに適用されるときに、レイヤのセットがビットストリーム中のTemporalIdの最大の値未満のmaxTemporalId[i]の値と関連付けられ得ることである。しかしながら、これらのSEIメッセージのセマンティクスは、サブレイヤを考慮することなく記述されており、その結果、上記の状況が発生したときにスケーラブルネスティングSEIメッセージのセマンティクスと矛盾する。この矛盾は、マルチレイヤコーディングを不必要に複雑にし得る。
【0104】
[0110]本開示の第14の態様によれば、ネストされたSEIメッセージが2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有する(たとえば、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つである)とき、スケーラブルネスティングSEIメッセージを含むSEI NALユニットは、0に等しいTemporalIdシンタックス要素と、すべてのiに対して6に等しいmaxTemporalId[i]シンタックス要素とを有することが要求され、6という値はTemporalIdシンタックス要素に対して最大の可能な値である。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、0に等しいTemporalIdシンタックス要素の値と、すべてのiに対する6に等しいmaxTemporalId[i]シンタックス要素の値とを、SEIメッセージがペイロードタイプの所定のセット中のペイロードタイプ(たとえば、上で特定されたタイプ)を有することに基づいて自動的に決定するように構成され得る。このようにして、本技法は、マルチレイヤコーディングと関連付けられる複雑さを減らし得る。
【0105】
[0111]マルチレイヤの状況においてHEVC SEIメッセージを使用することの第15の潜在的な問題は、bitstream_subset_flagシンタックス要素が1に等しく、nesting_op_flagシンタックス要素が0に等しいときに、nestingLayerIdList[0]シンタックス要素がマルチレイヤビットストリームのためにVPSによって指定されないレイヤセットに対応することをHEVC規格が許容するということである。
【0106】
[0112]本開示の第15の態様によれば、bitstream_subset_flagシンタックス要素が1に等しく、nesting_op_flagシンタックス要素が0に等しいとき、ビデオエンコーダ20および/またはビデオデコーダ30は、VPSによって指定されるレイヤセットの1つのnuh_layer_idの値だけを含むようにnestingLayerIdList[0]シンタックス要素をコーディングするように構成され得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素とマルチレイヤビットストリームのnesting_op_flagシンタックス要素とをコーディングし、bitstream_subset_flagシンタックス要素が1という値を有することと、nesting_op_flagシンタックス要素が0という値を有することとに基づいて、マルチレイヤビットストリームのnestingLayerIdList[0]がマルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むと決定するように構成され得る。このようにして、本技法は、マルチレイヤコーディングと関連付けられる複雑さを減らし得る。
【0107】
[0113]上で説明された技法は、独立に適用されることがあり、または組み合わせて適用されることがある。本開示に従った詳細な例が以下に記載される。上で説明された技法のいくつかのための、上で述べられたSHVC規格に対するテキストの変更が、挿入される項目を識別するための下線と、削除される項目を示すための二重括弧([[削除:]])とを使用して以下で示される。
第3項の以下の定義を次のように変更する。
3.X アクセスユニット:指定される分類規則に従って互いに関連付けられ、復号順序において連続的であり、同じ出力時間および関連する非VCL NALユニットと関連付けられるすべてのコーディングされるピクチャのVCL NALユニットを含む、NALユニットのセット。
注−同じアクセスユニット中のピクチャは同じピクチャ順序カウントと関連付けられる。
第3項に以下の定義を追加する。
3.X ベースビットストリーム区分:それ自体が適合するビットストリームでもあるビットストリーム区分。
3.X ビットストリーム区分:区分に従ったビットストリームのサブセットである、NALユニットストリームまたはバイトストリームの形態のビットのシーケンス。
3.X 出力レイヤ:TargetOptLayerSetIdxが出力レイヤセットのインデックスに等しいときに出力される出力レイヤセットのレイヤ。
3.X 出力レイヤセット:指定されるレイヤセットの1つのレイヤからなるレイヤのセット、ここでレイヤのセット中の1つまたは複数のレイヤは出力レイヤとして示される。
3.X 出力動作点:入力として別のビットストリーム、ターゲット最高TemporalId、およびターゲットレイヤ識別子リストを伴うサブビットストリーム抽出処理の動作によって別のビットストリームから作成され、ターゲット出力レイヤのセットと関連付けられるビットストリーム。
3.X ピクチャユニット:指定される分類規則に従って互いに関連付けられ、復号順序において連続的であり、コーディングされたピクチャのVCL NALユニットおよびそれらの関連する非VCL NALユニットを含む、NALユニットのセット。
3.X ターゲット出力レイヤ:出力されるべきであり、TargetOptLayerSetIdxがolsIdxに等しくなるようなインデックスolsIdxを伴う出力レイヤセットの出力レイヤの1つであるレイヤ。
3.X ターゲット出力レイヤセット:使用されている出力動作点のレイヤ識別子リストとターゲット出力レイヤのセットとを指定する変数TargetOptLayerSetIdxと関連付けられる出力レイヤセット。
[[削除:3.X 動作点:入力として別のビットストリーム、ターゲット最高TemporalId、およびターゲットレイヤ識別子リストを伴うサブビットストリーム抽出処理の動作によって別のビットストリームから作成され、ターゲット出力レイヤのセットと関連付けられるビットストリーム。
注14−動作点のターゲット最高TemporalIdが、ターゲットレイヤ識別リストと関連付けられるレイヤセット中のTemporalIdの最大値に等しい場合、動作点はレイヤセットと同一である。それ以外の場合、それはレイヤセットのサブセットである。]]
C.1 概要
この付属書類は、仮想参照デコーダ(HRD)と、ビットストリームおよびデコーダの適合性を検査するためのその使用法とを規定する。
・・・
ビットストリームの適合性を検査するために、複数の試験が必要とされることがあり、このビットストリームは、試験対象のビットストリームと呼ばれる。試験ごとに、以下のステップが列挙された順序で適用される。
1.TargetOpとして示される試験対象の出力動作点が、TargetOptLayerSetIdxによって識別されるターゲット出力レイヤを選択し、ターゲット最高TemporalIdの値であるHighestTidを選択することによって選択される。TargetOutputLayerSetIdxの値は、両端を含めて、0からNumOutputLayerSets−1の範囲にあるものとする。HighestTidの値は、両端を含めて、0からvps_max_sub_layers_minus1の範囲にあるものとする。次いで、変数TargetDecLayerSetIdx、TargetOptLayerIdList、およびTargetDecLayerIdListが、式8−1によって指定されるように導出される。試験対象の出力動作点は、TargetOptLayerIdListに等しいOptLayerIdListと、TargetDecLayerIdListに等しいOpLayerIdListと、HighestTidに等しいOpTidとを有する。
・・・
ビットストリーム固有のCPB動作が試験されるときの試験対象の出力動作点ごとに、実行されるべきビットストリーム適合性試験の数は、n0*n1*(n2*2+n3)*n4に等しく、ここで、n0、n1、n2、n3、およびn4の値は次のように指定される。
・・・
[[削除:SEI NALユニットまたはSEIメッセージのprevVclNalUnitInAuを、同じアクセスユニット中の、もしあれば復号順序において先行するVCL NALユニットとし、SEI NALユニットまたはSEIメッセージのnextVclNalUnitInAuを、同じアクセスユニット中の、もしあれば復号順序において次のVCL NALユニットとする。]]
以下の制約がSEI NALユニットへSEIメッセージを含めることに対して適用されることが、ビットストリームの適合性の要件である。
−有効パラメータセットSEIメッセージを含むSEI NALユニットは、1つだけの有効パラメータセットSEIメッセージを含むものとし、他のSEIメッセージを含まないものとする。
[[削除:有効パラメータセットSEIメッセージを含むSEI NALユニットがアクセスユニット中に存在するとき、そのSEI NALユニットは、SEI NALユニットのprevVclNalUnitInAuに後続しSEI NALユニットのnextVclNalUnitInAuに先行する最初のSEI NALユニットであるものとする。]]
−SEI NALユニットが、ネストされていないバッファリング期間SEIメッセージ、ネストされていないピクチャタイミングSEIメッセージ、またはネストされていない復号ユニット情報SEIメッセージを含むとき、SEI NALユニットは、0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しくないpayloadTypeを伴う他のSEIメッセージを含まないものとする。
−SEI NALユニットが、ネストされたバッファリング期間SEIメッセージ、ネストされたピクチャタイミングSEIメッセージ、またはネストされた復号ユニット情報SEIメッセージを含むとき、SEI NALユニットは、0(バッファリング期間)、1(ピクチャタイミング)、130(復号ユニット情報)、または133(スケーラブルネスティング)に等しくないpayloadTypeを伴う他のSEIメッセージを含まないものとする。
SEI NALユニットまたはSEIメッセージのprevVclNalUnitInAuを、同じアクセスユニット中の、もしあれば復号順序において先行するVCL NALユニットとし、SEI NALユニットまたはSEIメッセージのnextVclNalUnitInAuを、同じアクセスユニット中の、もしあれば復号順序において次のVCL NALユニットとする。以下の制約が適用されることが、ビットストリームの適合性の要件である。
以下の制約がSEIメッセージの順序に対して適用されることが、ビットストリームの適合性の要件である。
−有効パラメータセットSEIメッセージを含むSEI NALユニットがアクセスユニットに存在するとき、そのSEI NALユニットは、SEI NALユニットのprevVclNalUnitInAuに後続しSEI NALユニットのnextVclNalUnitInAuに先行する第1のSEI NALユニットであるものとする。
−ネストされていないバッファリング期間SEIメッセージがアクセスユニットに存在するとき、そのネストされていないバッファリング期間SEIメッセージは、バッファリング期間SEIメッセージのprevVclNalUnitInAuに後続しバッファリング期間SEIメッセージのnextVclNalUnitInAuに先行する、有効パラメータセットSEIメッセージ以外のあらゆる他のSEIメッセージに後続しないものとする。
−ネストされていないピクチャタイミングSEIメッセージがアクセスユニットに存在するとき、そのネストされていないピクチャタイミングSEIメッセージは、ピクチャタイミングSEIメッセージのprevVclNalUnitInAuに後続しピクチャタイミングSEIメッセージのnextVclNalUnitInAuに先行する、有効パラメータセットSEIメッセージまたはネストされていないバッファリング期間SEIメッセージ以外のあらゆる他のSEIメッセージに後続しないものとする。
−ネストされていない復号ユニット情報SEIメッセージがアクセスユニットに存在するとき、そのネストされていない復号ユニット情報SEIメッセージは、復号ユニット情報SEIメッセージのprevVclNalUnitInAuに後続し復号ユニット情報SEIメッセージのnextVclNalUnitInAuに先行する、有効パラメータセットSEIメッセージ、ネストされていないバッファリング期間SEIメッセージ、またはネストされていないピクチャタイミングSEIメッセージ以外のあらゆる他のSEIメッセージに後続しないものとする。
−ネストされたバッファリング期間SEIメッセージ、ネストされたピクチャタイミングSEIメッセージ、またはネストされた復号ユニット情報SEIメッセージがアクセスユニット中のスケーラブルネスティングSEIメッセージに含まれるとき、そのスケーラブルネスティングSEIメッセージは、スケーラブルネスティングSEIメッセージのprevVclNalUnitInAuに後続しスケーラブルネスティングSEIメッセージのnextVclNalUnitInAuに先行する、有効パラメータセットSEIメッセージ、ネストされていないバッファリング期間SEIメッセージ、ネストされていないピクチャタイミングSEIメッセージ、ネストされていない復号ユニット情報SEIメッセージ、または、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含む別のスケーラブルネスティングSEIメッセージ以外の、あらゆる他のSEIメッセージに後続しないものとする。
payloadTypeが、アクセスユニット内のネストされているまたはネストされていないSEIメッセージに対して、0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しいとき、SEIメッセージを含むSEI NALユニットは、highestAppLayerIdよりも高いnuh_layer_idを有するあらゆるピクチャのすべてのNALユニットに先行するものとし、ここでhighestAppLayerIdは、SEIメッセージが適用されるすべての動作点におけるすべてのレイヤのnuh_layer_idの最高の値である。
payloadTypeが、アクセスユニット内のネストされているまたはネストされていないSEIメッセージに対して、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しい(すなわち、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つである)とき、SEIメッセージを含むSEI NALユニットは、highestAppLayerIdよりも高いnuh_layer_idを有するあらゆるピクチャユニットのすべてのNALユニットに先行するものとし、ここでhighestAppLayerIdは、SEIメッセージが適用されるすべてのレイヤのnuh_layer_idの最高の値である。
[[削除:ネストされていないSEIメッセージに対して、payloadTypeの値tに応じて]]以下のことがSEIメッセージの適用可能な動作点またはレイヤに対して適用される。
ネストされていないSEIメッセージに対して、payloadTypeが0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しいとき[[削除:場合]]、ネストされていないSEIメッセージは、ビットストリーム中のすべてのVCL NALユニットの中で最大の値のnuh_temporal_id_plus1に等しいOpTidを有し、ビットストリーム中のすべてのVCLユニット中のnuh_layer_idのすべての値を含むOpLayerIdListを有する、動作点に適用される。
ネストされていないSEIメッセージに対して、[[削除:そうではなく、]]payloadTypeが2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しい(すなわち、0、1、4、5、[[削除:または]]130、および133のいずれにも等しくないpayloadTypeを有する[[削除:およびネストされたSEIメッセージであることが許容される]]SEIメッセージの1つである)とき、ネストされていないSEIメッセージは、SEIメッセージを含むSEI NALユニットのnuh_layer_idに等しいnuh_layer_idをVCL NALユニットが有するレイヤに適用される。
ネスティードではあり得ない有効パラメータセットSEIメッセージが、ビットストリーム中のすべてのレイヤに適用される。
−frame_field_info_present_flagが、ネストされたまたはネストされていないピクチャタイミング情報SEIメッセージに対して1に等しいとき、シンタックス要素pic_struct、source_scan_type、およびduplicate_flagにおいて搬送されるフレームフィールド情報が、ピクチャタイミングSEIメッセージが適用されるすべての動作点においてすべてのレイヤに適用される。
以下の制約がSEIメッセージのネスティングに対して適用されることが、ビットストリームの適合性の要件である。
129(有効パラメータセット)、132(復号ピクチャハッシュ)、および133(スケーラブルネスティングを有するSEIメッセージ[[削除:)SEIメッセージ]]は、スケーラブルネスティングSEIメッセージにおいてネストされないものとする。
−スケーラブルネスティングSEIメッセージが、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含むとき、スケーラブルネスティングSEIメッセージは、0(バッファリング期間)、1(ピクチャタイミング)、または130(復号ユニット情報)に等しくないpayloadTypeを伴う他のSEIメッセージを含まないものとする。
スケーラブルネスティングSEIメッセージが、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含むとき、スケーラブルネスティングSEIメッセージのbitstream_subset_flagの値は、1に等しいものとする。
−スケーラブルネスティングSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有するSEIメッセージを含む(すなわち、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つである)とき、スケーラブルネスティングSEIメッセージのbitstream_subset_flagの値は0に等しいものとする。
以下の制約がSEI NALユニットのnuh_layer_idおよびTemporalIdの値に対して適用されることが、ビットストリームの適合性の要件である。
−ネストされていないSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有する(すなわち、0、1、4、5、129、[[削除:または]]130、および133いずれにも等しくないpayloadTypeを有する[[削除:ネストされたSEIメッセージであることが許容される]]SEIメッセージの1つである)とき、ネストされていないSEIメッセージを含むSEI NALユニットは、SEI NALユニットを含むアクセスユニットのTemporalIdに等しいTemporalIdを有するものとする。
ネストされていないSEIメッセージが、0、1、129、または130に等しいpayloadTypeを有するとき、ネストされていないSEIメッセージを含むSEI NALユニットは、0に等しいnuh_layer_idを有するものとする。
ネストされていないSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadTypeを有する(すなわち、0、1、129、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つである)とき、ネストされていないSEIメッセージを含むSEI NALユニットは、SEI NALユニットの関連するVCL NALユニットのnuh_layer_idに等しいnuh_layer_idを有するものとする。
注4−スケーラブルネスティングSEIメッセージを含むSEI NALユニットに対して、TemporalIdおよびnuh_layer_idの値は、それぞれ、ネストされたSEIメッセージが適用されるすべてサブレイヤまたは動作点のTemporalIdおよびnuh_layer_idの最低の値に等しく設定されるものとする。
以下の制約がピクチャ[[削除:アクセスユニット]]の2つのVCL NALユニットの間のSEIメッセージの存在に対して適用されることが、ビットストリームの適合性の要件である。
−復号順序においてピクチャ[[削除:アクセスユニット]]の2つのVCL NALユニットの間に存在するレイヤlayerAのピクチャに適用され、0、1、2、3、6、9、15、16、17、19、22、23、45、47、128、129、または131に等しいpayloadTypeを有する、プレフィックスSEIメッセージ(すなわち、Rec.ITU−T T.35 SEIメッセージ、ユーザデータ未登録SEIメッセージ、復号ユニット情報SEIメッセージ、スケーラブルネスティングSEIメッセージ、または領域リフレッシュ情報SEIメッセージによって登録されるユーザデータではないプレフィックスSEIメッセージの1つ)があるとき、ピクチャ[[削除:アクセスユニット]]の最初のVCL NALユニットに先行する同じアクセスユニットに存在するレイヤlayerAに適用される、同じタイプであるプレフィックスSEIメッセージが存在するものとする。
−復号順序においてピクチャ[[削除:アクセスユニット]]の2つのVCL NALユニットの間に存在するレイヤlayerAのピクチャに適用され、3(フィラーペイロード)、17(漸進的精緻化セグメント終了)、22(ポストフィルタヒント)、または132(復号ピクチャハッシュ)に等しいpayloadTypeを有する、サフィックスSEIメッセージがあるとき、ピクチャ[[削除:アクセスユニット]]の最後のVCL NALユニットの後を追う同じアクセスユニットに存在するレイヤlayerAに適用される、同じタイプであるサフィックスSEIメッセージが存在するものとする。
以下の制約がSEIメッセージの繰り返しに対して適用されることが、ビットストリームの適合性の要件である。
−以下のpayloadTypeの値の各々に対して、ピクチャユニット[[削除:アクセスユニット]]内の8つ以下の同一のsei_payload()シンタックス構造が存在するものとする:0、1、2、6、9、15、16、17、19、22、23、45、47、128、129、131、132、および133。
−復号ユニット内の130に等しいpayloadTypeを伴う8つ以下の同一のsei_payload()シンタックス構造が存在するものとする。
ピクチャユニット[[削除:アクセスユニット]]中の134に等しいpayloadTypeを伴う同一のsei_payload()シンタックス構造の数は、ピクチャユニット[[削除:アクセスユニット]]中のスライスセグメントの数以下であるものとする。
D.3.23項を次のように修正する。
スケーラブルネスティングSEIメッセージは、SEIメッセージを、様々な動作点に対応するビットストリームサブセットまたは特定のレイヤもしくはサブレイヤと関連付けるための機構を提供する。
スケーラブルネスティングSEIメッセージは、1つまたは複数のSEIメッセージを含む。
0に等しいbitstream_subset_flagは、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージが特定のレイヤまたはサブレイヤに適用されることを指定する。1に等しいbitstream_subset_flagは、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージが、以下で規定されるようなスケーラブルネスティングSEIメッセージのシンタックス要素に基づく入力を伴う10項において規定されるようなサブビットストリーム抽出処理により生じる1つまたは複数のサブビットストリームに適用されることを指定する。
[[削除:バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージがスケーラブルネスティングSEIメッセージに含まれるとき、bitstream_subset_flagは1に等しいものとする。]]
bitstream_subset_flagの値に応じて、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージが適用されるレイヤもしくはサブレイヤ、または動作点は、以下で規定されるようなシンタックス要素の値に基づいて、リストnestingLayerIdList[i]と変数maxTemporalId[i]とを導出することによって指定される。
0に等しいnesting_op_flagは、リストnestingLayerIdList[0]がall_layers_flagによって、および存在するときには両端を含めて0からnesting_num_layers_minus1の範囲にあるすべてのiの値に対するnesting_layer_id[i]によって指定されることと、変数maxTemporalId[0]がnesting_no_op_max_temporal_id_plus1によって指定されることとを指定する。1に等しいnesting_op_flagは、リストnestingLayerIdList[i]および変数maxTemporalId[i]が、nesting_num_ops_minus1と、default_op_flagと、存在するときにはnesting_max_temporal_id_plus1[i]と、存在するときにはnesting_op_idx[i]とによって指定されることを指定する。
1に等しいdefault_op_flagは、maxTemporalId[0]が現在のSEI NALユニットのnuh_temporal_id_plus1から1を引いたものに等しいことと、nestingLayerIdList[0]が値の昇順で両端を含めて0から現在のSEI NALユニットのnuh_layer_idの範囲にあるすべての整数値を含むこととを指定する。
bitstream_subset_flagが1に等しく、VPSによって指定されるレイヤセットの中に、両端を含めて0から現在のSEI NALユニットのnuh_layer_idの範囲にあるnuh_layer_idの値を有するレイヤだけを含むものがないとき、default_op_flagの値は0に等しいものとする。
nesting_num_ops_minus1に1を足してdefault_op_flagを引いたものは、後続するnesting_op_idx[i]シンタックス要素の数を指定する。nesting_num_ops_minus1の値は、両端を含めて0から1023の範囲にあるものとする。
nesting_op_flagが0に等しい場合、変数nestingNumOpsは1に等しく設定される。それ以外の場合、変数nestingNumOpsは、nesting_num_ops_minus1+1に等しく設定される。
nesting_max_temporal_id_plus1[i]は、変数maxTemporalId[i]を指定するために使用される。nesting_max_temporal_id_plus1[i]の値は、現在のSEI NALユニットのnuh_temporal_id_plus1以上であるものとする。変数maxTemporalId[i]は、nesting_max_temporal_id_plus1[i]−1に等しく設定される。
nesting_op_idx[i]は、リストnestingLayerIdList[i]を指定するために使用される。nesting_op_idx[i]の値は、両端を含めて0から1023の範囲にあるものとする。
リストnestingLayerIdList[i]は、有効VPSによって指定されるnesting_op_idx[i]番目のレイヤセットのOpLayerIdLlistに等しく設定される。
0に等しいall_layers_flagは、リストnestingLayerIdList[0]が、両端を含めて0からnesting_num_layers_minus1の範囲にあるすべてのiの値に対するnesting_layer_id[i]によって指定されることを指定する。1に等しいall_layers_flagは、リストnestingLayerIdList[0]が、値の昇順で、現在のSEI NALユニットのnuh_layer_id以上である現在のアクセスユニットに存在するnuh_layer_idのすべての値からなることを指定する。
注:スケーラブルネスティングSEIメッセージを含むSEI NALユニットのnuh_layer_idが0より大きいとき、bitstream_subset_flagおよびall_layers_flagはともに1に等しくはなり得ない。それは、この場合、ネストされたSEIメッセージの適用可能な動作点がベースレイヤを含まず、その結果、適用可能な動作点に対応するサブビットストリームが適合しないビットストリームとなるからである。
nesting_op_flagが0に等しくall_layers_flagが1に等しいとき、maxTemporalId[0]は6に等しく設定される。
nesting_no_op_max_temporal_id_plus1から1を引いたものは、nesting_op_flagが0に等しくall_layers_flagが0に等しいときのmaxTemporalId[0]の値を指定する。nesting_no_op_max_temporal_id_plus1の値は0に等しくないものとする。
nesting_num_layers_minus1に1を足したものは、後続するnesting_layer_id[i]シンタックス要素の数を指定する。nesting_num_layers_minus1の値は、両端を含めて0から63の範囲にあるものとする。
nesting_layer_id[i]は、リストnestingLayerIdList[0]に含まれるi番目のnuh_layer_idの値を指定する。
両端を含めて0からnesting_num_layers_minus1の範囲にあり、iがjより小さい任意のiおよびjに対して、nesting_layer_id[i]はnesting_layer_id[j]より小さいものとする。
リストnestingLayerIdList[0]は、iの値の昇順で、両端を含めて0からnesting_num_layers_minus1の範囲にあるすべてのiの値に対するnesting_layer_id[i]からなるように設定される。
bitstream_subset_flagが0に等しいとき、以下のことが当てはまる
−スケーラブルネスティングSEIメッセージに含まれるSEIメッセージは、両端を含めて0からnestingNumOps−1の範囲にあるすべてのiの値に対するレイヤまたはサブレイヤのセットsubLayerSet[i]に適用され、ここで、各セットsubLayerSet[i]の中のレイヤまたはサブレイヤのVCL NALユニットは、リストnestingLayerIdListSet[i]に含まれるnuh_layer_idの値と、両端を含めて現在のSEI NALユニットのTemporalIdからmaxTemporalId[i]の範囲にあるTemporalIdの値とを有する。
ネストされたSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadType(すなわち、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つ)を有するとき、スケーラブルネスティングSEIメッセージを含むSEI NALユニットのnuh_layer_idは0に等しいTemporalIdを有するものとし、すべてのiに対するmaxTemporalId[i]は6に等しいものとする。
ネストされたSEIメッセージが、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、または134に等しいpayloadType(すなわち、0、1、4、5、130、および133のいずれにも等しくないpayloadTypeを有するSEIメッセージの1つ)を有し、nestingNumOpsの値が0より大きいとき、ネストされるSEIメッセージは、iが両端を含めて0からnestingNumOps−1の範囲にあるリストnestingLayerIdList[i]の少なくとも1つに各nuh_layer_idが含まれる、すべてのレイヤに対して適用される。
bitstream_subset_flagが1に等しいとき、スケーラブルネスティングSEIメッセージに含まれるSEIメッセージは、両端を含めて0からnestingNumOps−1の範囲にあるすべてのiの値に対するサブビットストリームsubBitstream[i]に対応する動作点に適用され、ここで各サブビットストリームsubBitstream[i]は、入力として、ビットストリーム、maxTemporalId[i]、およびnestingLayerIdList[i]を伴う10項のサブビットストリーム抽出処理の出力である。
bitstream_subset_flagが1に等しく、nesting_op_flagが0に等しいとき、nestingLayeridList[0]は、VPSによって指定されるレイヤセットの1つのnuh_layer_idの値だけを含むものとする。
nesting_zero_bitは0に等しいものとする。
F.3 定義
この付属書類では、3項の定義に加えて以下の定義が適用される。これらの定義は、3項には存在しないか、または3項の定義を置き換えるかのいずれかである。
[[削除:
F.3.1 アクセスユニット:指定される分類規則に従って互いに関連付けられ、復号順序において連続的であり、同じ出力時間および関連する非VCL NALユニットと関連付けられるすべてのコーディングされるピクチャのVCL NALユニットを含む、NALユニットのセット。
F.3.2 注1−同じアクセスユニット中のピクチャは同じピクチャ順序カウントと関連付けられる。]]
F.3.1 代替的な出力レイヤ:出力レイヤの直接の参照レイヤまたは間接的な参照レイヤであり、出力レイヤのピクチャがピクチャを含むアクセスユニットに存在しないときに出力され得るピクチャを含み得る、レイヤ。
F.7.4.3.1 ビデオパラメータセットRBSPセマンティクス
7.4.3.1項における規定は、以下の修正および追加を適用する。
−layerSetLayerIdListはLayerSetLayerIdListにより置き換えられる。
−numLayersInIdListはNumLayersInIdListにより置き換えられる。
−「各動作点が、nuh_layer_idの値の昇順の、動作点に含まれるすべてのNALユニットのnuh_layer_idの値のリストからなるOpLayerIdListとして示される関連するレイヤ識別子リストによって、および、動作点に含まれるすべてのNALユニットの最高のTemporalIdに等しい変数OpTidによって識別される。」を、「各動作点が、nuh_layer_idの値の昇順の、動作点に含まれるすべてのNALユニットのnuh_layer_idの値のリストからなるOpLayerIdListとして示される関連するレイヤ識別子リストによって、および、動作点に含まれるすべてのNALユニットの最高のTemporalIdに等しい変数OpTidによって識別される。出力動作点は、動作点と関連付けられ、OpLayerIdListとして示されるnuh_layer_idの値の昇順の出力されるべきすべてのピクチャのnuh_layer_idの値のリストによって、および関連する動作点の[[削除:変数]]OpTidによって識別される。出力動作点と関連付けられる動作点のOpLayerIdListは、出力動作点のOpLayerIdListとも呼ばれる[[削除:、これは動作点に含まれるすべてのNALユニットの最高のTemporalIdに等しい。OpLayerIdListとして示される、リストOptLayerIdListと関連付けられるレイヤ識別子リストは、nuh_layer_id値の昇順の、動作点に含まれるすべてのNALユニットのnuh_layer_idの値のリストからなる。」。]]によって置き換える。
【0108】
[0114]図2は、本開示で説明される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図2は、説明のために与えられており、本開示で広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示は、HEVCコーディングの状況においてビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
【0109】
[0115]ビデオエンコーダ20は、本開示で説明される技法を実装し得る別の例示的なデバイスである後処理エンティティ27にビデオを出力するように構成され得る。後処理エンティティ27は、メディア認識ネットワーク要素(MANE)、分割/編集デバイスまたは他の中間デバイスのような、ビデオエンコーダ20からの符号化されたビデオデータを処理し得るビデオエンティティの例を表すものとする。いくつかの事例では、後処理エンティティ27はネットワークエンティティの例であってよい。いくつかのビデオ符号化システムでは、後処理エンティティ27およびビデオエンコーダ20は別個のデバイスの部分であってよく、他の事例では、後処理エンティティ27に関して説明される機能は、ビデオエンコーダ20を備える同じデバイスによって実行されてよい。
【0110】
[0116]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)のようなインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【0111】
[0117]図2の例では、ビデオエンコーダ20は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロックの再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタのような、1つまたは複数のループフィルタを表すことが意図されている。図2では、フィルタユニット63はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット63はループ後フィルタとして実装され得る。
【0112】
[0118]図2に示されるように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分は、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロックの区分も含み得る。ビデオエンコーダ20は一般に、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを示す。スライスは、複数のビデオブロック(場合によってはタイルと呼ばれるビデオブロックのセット)に分割され得る。予測処理ユニット41は、誤差結果(たとえばコーディングレートおよびひずみレベル)に基づいて現在のビデオブロックについて、複数のイントラコーディングモードの1つ、または複数のインターコーディングモードの1つのような、複数の可能なコーディングモードの1つを選択し得る。予測処理ユニット41は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器62に与え得る。
【0113】
[0119]予測処理ユニット41内のイントラ予測処理ユニット46は、空間的圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実行する。
【0114】
[0120]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスとして指定することができる。動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
【0115】
[0121]予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分の尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUに厳密に一致することが判明しているブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【0116】
[0122]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0117】
[0123]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマとクロマの両方の差分成分を含み得る。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックおよびビデオスライスと関連付けられるシンタックス要素を生成し得る。
【0118】
[0124]イントラ予測処理ユニット46は、上で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、試験されたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々な試験されたイントラ予測モードに対するレートひずみ分析を使用してレートひずみ値を計算し、試験されたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されたビットレート(すなわち、ビットの数)を決定する。イントラ予測処理ユニット46は、符号化された様々なブロックのひずみおよびレートから比を計算し、どのイントラ予測モードがブロックの最良のレートひずみ値を示すかを決定し得る。
【0119】
[0125]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリームに含め得る。
【0120】
[0126]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域からの周波数領域などの変換領域に変換し得る。
【0121】
[0127]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化処理は、係数の一部またはすべてと関連付けられるビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が、走査を実行し得る。
【0122】
[0128]量子化の後、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化されたビットストリームは、ビデオデコーダ30に送信され、またはビデオデコーダ30による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化することができる。
【0123】
[0129]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築する。動き補償ユニット44は、残差ブロックを参照ピクチャリストの1つの中の参照ピクチャの1つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット44はまた、再構築された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0124】
[0130]本開示の態様によれば、ビデオエンコーダ20は、マルチレイヤコーデックのためのSEIメッセージを含む、上で説明されたSEIメッセージと関連付けられるシンタックス要素のような、いくつかのシンタックス要素を生成するように構成され得る。たとえば、ビデオエンコーダ20は、図1に関して上で説明された15個の態様の任意の組合せに従ってシンタックス要素を生成するように構成され得る。いくつかの事例では、ビデオエンコーダ20は、エントロピー符号化ユニット56、またはデータを符号化し符号化されたビットストリームを生成することを担う別のユニットを使用して、そのようなシンタックス要素を符号化することができる。さらに、図2の後処理エンティティ27は、マルチレイヤコーデックのためのSEIメッセージを含む、SEIメッセージに関して本開示で説明される技法を実施し得る別の例示的なデバイスである。
【0125】
[0131]図3は、本開示で説明される技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図3は、説明のために与えられており、本開示で広く例示され説明される技法に対する限定ではない。説明のために、本開示は、HEVCコーディングの状況においてビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコーディング規格またはコーディング方法に適用可能であり得る。
【0126】
[0132]図3の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、参照ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ20に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
【0127】
[0133]復号処理の間、ビデオデコーダ30は、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化されたビデオビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30は、ネットワークエンティティ78から符号化されたビデオビットストリームを受信し得る。ネットワークエンティティ78は、たとえば、上で説明された技法の1つまたは複数を実装するように構成されたサーバ、MANE、ビデオエディタ/スプライサ、または他のそのようなデバイスであり得る。ネットワークエンティティ78は、ビデオエンコーダ20のようなビデオエンコーダを含んでもよく、または含まなくてもよい。本開示で説明される技法のいくつかは、ネットワークエンティティ78が符号化されたビデオビットストリームをビデオデコーダ30に送信するよりも前に、ネットワークエンティティ78によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ78およびビデオデコーダ30は別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ78に関して説明される機能は、ビデオデコーダ30を備える同じデバイスによって実行され得る。
【0128】
[0134]ビデオデコーダ30のエントロピー復号ユニット80は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信することができる。
【0129】
[0135]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされる(すなわち、BまたはP)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の、参照ピクチャの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築することができる。
【0130】
[0136]動き補償ユニット82は、動きベクトルと他のシンタックス要素とを構文解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストの1つまたは複数のための構築情報と、スライスの各々のインター符号化されたビデオブロックのための動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0131】
[0137]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化の間にビデオエンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間された値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0132】
[0138]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化された変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化処理は、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用する。
【0133】
[0139]動き補償ユニット82が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ピクセル移行を平滑化するために、または別様にビデオ品質を向上させるために、(コーディングループの中とコーディングループの後のいずれかの)ループフィルタも使用され得る。
【0134】
[0140]フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタのような、1つまたは複数のループフィルタを表すことが意図されている。図3では、フィルタユニット91はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット91はループ後フィルタとして実装され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、図1のディスプレイデバイス31のようなディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【0135】
[0141]本開示の態様によれば、ビデオデコーダ30は、マルチレイヤコーデックのためのSEIメッセージを含む、上で説明されたSEIメッセージと関連付けられるシンタックス要素のような、いくつかのシンタックス要素を構文解析して復号するように構成され得る。たとえば、ビデオデコーダ30は、図1に関して上で説明された15個の態様の任意の組合せに従ってシンタックス要素を構文解析して復号するように構成され得る。いくつかの事例では、ビデオデコーダ30は、エントロピー復号ユニット80、または符号化されたビットストリームからデータを復号することを担う別のユニットを使用して、そのようなシンタックス要素を復号することができる。さらに、図3のネットワークエンティティ78(メディア認識ネットワーク要素であり得る)は、マルチレイヤコーデックのためのSEIメッセージを含む、SEIメッセージに関して本開示で説明される技法を実施し得る別の例示的なデバイスである。
【0136】
[0142]図4は、カプセル化ユニット21をより詳しく示すブロック図である。図4の例では、カプセル化ユニット21は、ビデオ入力インターフェース100と、オーディオ入力インターフェース102と、ビデオファイル作成ユニット104と、ビデオファイル出力インターフェース106とを含む。ビデオファイル作成ユニット104は、この例では、補足強化情報(SEI)メッセージ生成ユニット108と、ビュー識別子(ID)割当てユニット110と、表現作成ユニット112と、動作点作成ユニット114とを含む。
【0137】
[0143]ビデオ入力インターフェース100およびオーディオ入力インターフェース102は、それぞれ符号化されたビデオデータと符号化されたオーディオデータとを受信する。図1の例には示されないが、ソースデバイス12はまた、それぞれオーディオデータを生成しオーディオデータを符号化するための、オーディオソースとオーディオエンコーダとを含み得る。カプセル化ユニット21は次いで、符号化されたオーディオデータと符号化されたビデオデータとをカプセル化して、ビデオファイルを形成することができる。ビデオ入力インターフェース100およびオーディオ入力インターフェース102は、データが符号化されると、符号化されたビデオデータと符号化されたオーディオデータとを受信することができ、または、符号化されたビデオデータと符号化されたオーディオデータとをコンピュータ可読媒体から取り出すことができる。符号化されたビデオデータと符号化されたオーディオデータとを受信すると、ビデオ入力インターフェース100およびオーディオ入力インターフェース102は、ビデオファイルへと組み立てるために符号化されたビデオデータと符号化されたオーディオデータとをビデオファイル作成ユニット104に渡す。
【0138】
[0144]ビデオファイル作成ユニット104は、機能と、機能に起因する手順とを実行するように構成された、ハードウェア、ソフトウェア、および/またはファームウェアを含む制御ユニットに対応し得る。制御ユニットは一般に、カプセル化ユニット21に起因する機能をさらに実行し得る。ビデオファイル作成ユニット104がソフトウェアおよび/またはファームウェアで具現化される例では、カプセル化ユニット21は、ビデオファイル作成ユニット104のための命令を備えるコンピュータ可読媒体と、命令を実行するための処理ユニットとを含み得る。ビデオファイル作成ユニット104のサブユニット(この例では、SEIメッセージ生成ユニット108、ビューID割当てユニット110、表現作成ユニット112、および動作点作成ユニット114)の各々は、個々のハードウェアユニットおよび/またはソフトウェアモジュールとして実装されてよく、機能的に統合され、または追加のサブユニットへとさらに分離されてよい。
【0139】
[0145]ビデオファイル作成ユニット104は、たとえば、1つまたは複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組合せのような、任意の好適な処理ユニットまたは処理回路に対応し得る。ビデオファイル作成ユニット104は、SEIメッセージ生成ユニット108、ビューID割当てユニット110、表現作成ユニット112、および動作点作成ユニット114のいずれかまたはすべてのための命令を記憶する非一時的コンピュータ可読媒体、ならびに命令を実行するためのプロセッサをさらに含み得る。
【0140】
[0146]一般に、ビデオファイル作成ユニット104は、受信されたオーディオとビデオデータとを含む1つまたは複数のビデオファイルを作成し得る。ビデオファイル作成ユニット104は、2つ以上のビューを含むマルチメディアコンテンツのためのmedia presentation description(MPD)を構築し得る。他の例では、ビデオファイル作成ユニット104は、マルチメディアコンテンツのためのMPDのデータと同様のデータを記憶するマニフェストを作成し得る。
【0141】
[0147]SEIメッセージ生成ユニット108は、SEIメッセージを生成するユニットを表し得る。本開示で説明される技法によれば、SEIメッセージ生成ユニット108は、マルチレイヤコーデックのためのSEIメッセージを含む、上で説明されたSEIメッセージと関連付けられるシンタックス要素のような、いくつかのシンタックス要素を生成するように構成され得る。たとえば、SEIメッセージ生成ユニット108は、図1に関して上で説明された15個の態様の任意の組合せに従ってシンタックス要素を生成するように構成され得る。
【0142】
[0148]ビューID割当てユニット110は、マルチメディアコンテンツのビューの各々にビュー識別子を割り当てることができる。表現作成ユニット112は、マルチメディアコンテンツのための1つまたは複数の表現を構築することができ、それらの表現の各々は、マルチメディアコンテンツのためのビューの1つまたは複数を含み得る。いくつかの例では、ビューID割当てユニット110は、表現に含まれるビューのビュー識別子の最大値と最小値とを示すデータをMPDおよび/または表現(たとえば、表現のためのヘッダデータ)に含め得る。さらに、表現作成ユニット112は、より大きいビューIDが、より小さいビューIDを有するビューに対するカメラ視点の右側のカメラ視点を有するビューに対応するか、または左側のカメラ視点を有するビューに対応するかを示す情報を、MPDにおいて与え得る。
【0143】
[0149]いくつかの例では、異なるフレームレート、異なるビットレート、異なる符号化方式、または他の違いのような、様々な符号化特性を使用して同じレイヤが符号化され得る。表現作成ユニット112は、共通の表現に含まれる各レイヤが同じ符号化特性に従って符号化されることを保証し得る。このようにして、表現のためのMPDおよび/またはヘッダデータは、表現中のすべてのレイヤに適用される、表現の特性(または属性)のセットをシグナリングし得る。その上、表現作成ユニット112は、符号化特性が潜在的に異なろうとも、同じレイヤを含む複数の表現を作成し得る。いくつかの例では、表現作成ユニット112は、マルチメディアコンテンツの各レイヤを個々の表現にカプセル化し得る。そのような例において、2つ以上のレイヤを出力するために、宛先デバイス14はマルチメディアコンテンツの2つ以上の表現を要求し得る。
【0144】
[0150]動作点作成ユニット114は、マルチメディアコンテンツの1つまたは複数の表現のための動作点を作成し得る。一般に、動作点は、出力のターゲットにされる表現中のビューのサブセットに対応し、その場合、ビューの各々は共通の時間レベルを共有する。一例として、動作点は、ターゲット時間レベルを表すtemporal_id値、およびターゲット出力ビューを表すview_id値のセットによって識別され得る。1つの動作点は、ターゲット出力ビュー、およびターゲット出力ビューが依存するすべての他のビューからなる、ビットストリームサブセットと関連付けられ得る。
【0145】
[0151]ビデオファイル出力インターフェース106は、作成されたビデオファイルを出力することができる。たとえば、ビデオファイル出力インターフェース106は、図1に関して上で説明されたように、作成されたビデオファイルを出力インターフェース22に提供するように構成され得る。
【0146】
[0152]図4の技法は例示を目的にカプセル化ユニット21とともに説明されたが、同様の技法は、カプセル化解除ユニット29(図1)、ビデオエンコーダ20、またはビデオデコーダ30のような他のビデオ処理ユニットによって実行され得ることを理解されたい。たとえば、カプセル化解除ユニット29は、マルチレイヤビットストリームを受信し、マルチレイヤビットストリームから上で述べられたシンタックスを構文解析/復号するように構成され得る。
【0147】
[0153]図5は、ネットワーク120の一部を形成するデバイスの例示的なセットを示すブロック図である。この例では、ネットワーク120は、ルーティングデバイス124A、124B(ルーティングデバイス124)と、トランスコーディングデバイス126とを含む。ルーティングデバイス124およびトランスコーディングデバイス126は、ネットワーク120の一部を形成し得る少数のデバイスを表すことが意図される。スイッチ、ハブ、ゲートウェイ、ファイアウォール、ブリッジ、および他のそのようなデバイスのような、他のネットワークデバイスも、ネットワーク120に含まれ得る。その上、サーバデバイス122とクライアントデバイス128との間のネットワーク経路に沿って追加のネットワークデバイスが設けられ得る。いくつかの例では、サーバデバイス122はソースデバイス12(図1)に対応し得るが、クライアントデバイス128は宛先デバイス14(図1)に対応し得る。
【0148】
[0154]一般に、ルーティングデバイス124は、ネットワーク120を通じてネットワークデータを交換するための1つまたは複数のルーティングプロトコルを実装する。いくつかの例では、ルーティングデバイス124は、プロキシまたはキャッシュ動作を実行するように構成され得る。したがって、いくつかの例では、ルーティングデバイス124はプロキシデバイスと呼ばれることがある。一般に、ルーティングデバイス124は、ネットワーク120を通じたルートを発見するためにルーティングプロトコルを実行する。そのようなルーティングプロトコルを実行することによって、ルーティングデバイス124Bは、それ自体からサーバデバイス122へのルーティングデバイス124Aを介したネットワークルートを発見し得る。ルーティングデバイス124の1つまたは複数は、本開示の1つまたは複数の態様を使用するMANEを備え得る。
【0149】
[0155]本開示の技法は、ルーティングデバイス124およびトランスコーディングデバイス126のようなネットワークデバイスによって実施され得るが、クライアントデバイス128によっても実施され得る。このように、ルーティングデバイス124、トランスコーディングデバイス126、およびクライアントデバイス128は、本開示の技法を実行するように構成されるデバイスの例を表す。その上、図1のデバイス、ならびに図2に示されるエンコーダ20および図3に示されるデコーダ30も、本開示の技法を実行するように構成され得る例示的なデバイスである。
【0150】
[0156]図6は、本開示で説明される技法の様々な態様による、SEIメッセージをコーディングするように構成されるビデオ処理デバイスの例示的な動作を示す流れ図である。図6の例では、ビデオエンコーダ20、カプセル化ユニット21、カプセル化解除ユニット29、後処理エンティティ27、ネットワークエンティティ78のようなビデオ処理デバイスは、マルチレイヤビットストリームの第1のレイヤの1つまたは複数のVCL NALユニットを取得する(140)。たとえば、ビデオ処理デバイスがビデオエンコーダまたはビデオデコーダである例では、ビデオ処理デバイスは、マルチレイヤビットストリーム中のVCL NALユニットを符号化し、または、マルチレイヤビットストリームからVCL NALユニットを復号することができる。ビデオ処理デバイスがそのようなVCL NALユニットを符号化または復号するように構成されない例では、ビデオ処理デバイスは、マルチレイヤビットストリームからのVCL NALユニットを構文解析して取得することができる。
【0151】
[0157]ビデオ処理デバイスはまた、マルチレイヤビットストリーム中の第1のレイヤと一緒にあるべき第1のレイヤのVCL NALユニットに適用可能なSEIメッセージをコーディング(たとえば、符号化または復号)する(142)。たとえば、本開示の態様によれば、ビデオ処理デバイスは、第1のレイヤのVCLNALユニットとともに、第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む非VCL NALユニットだけをコーディングし、マルチレイヤビットストリームの他のレイヤを伴うSEIメッセージを含まない。たとえば、本開示の態様によれば、マルチレイヤビットストリームは、第1のレイヤのVCL NALユニットと第1のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む非VCL NALユニットとの間のマルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャも含まない。このように、SEIメッセージは、複数のレイヤ成分を有するアクセスユニットに対して、SEIメッセージが適用されるレイヤと一緒に存在するままである。いくつかの例では、ビデオ処理デバイスは、マルチレイヤビットストリームにおいて、メッセージが適用されるVCL NALユニットに直接隣り合うようにSEIメッセージをコーディングすることができる。
【0152】
[0158]いくつかの例では、第1のレイヤのVCL NALユニットは、第1のレイヤの第1のピクチャのVCL NALユニットであり、SEIメッセージは、第1のレイヤの第1のピクチャに適用可能なプレフィックスSEIメッセージである。そのような例では、VCL NALユニットとともに、プレフィックスSEIメッセージを含む非VCL NALユニットだけをコーディングすることは、ビットストリームにおいてVCL NALユニットに先行する非VCL NALユニットだけをコーディングすることを含み得る。すなわち、ビデオ処理デバイスは、マルチレイヤビットストリーム中の第1のピクチャのVCL NALユニットの直前に位置するように、SEIメッセージを含む非VCL NALユニットをコーディングすることができる。
【0153】
[0159]いくつかの例では、第1のレイヤのVCL NALユニットは、第1のレイヤの第1のピクチャのVCL NALユニットであり、SEIメッセージは、第1のレイヤの第1のピクチャに適用可能なサフィックスSEIメッセージである。そのような例では、VCL NALユニットとともに、サフィックスSEIメッセージを含む非VCL NALユニットだけをコーディングすることは、ビットストリームにおいてVCL NALユニットに後続する非VCL NALユニットだけをコーディングすることを含み得る。すなわち、ビデオ処理デバイスは、マルチレイヤビットストリーム中の第1のピクチャのVCL NALユニットの直後に位置するように、SEIメッセージを含む非VCL NALユニットをコーディングすることができる。
【0154】
[0160]図6の例では、ビデオ処理デバイスはまた、マルチレイヤビットストリームの第2のレイヤのVCL NALユニットを取得する(144)。たとえば、ビデオ処理デバイスは、マルチレイヤビットストリームの第2のレイヤのピクチャのスライスをコーディングする(すなわち、符号化または復号する)ことができる。ビデオ処理デバイスはまた、第2のレイヤのVCL NALユニットとともに存在するように、第2のレイヤのVCL NALユニットに適用可能なSEIメッセージをコーディングする(146)。たとえば、上で説明されたように、ビデオ処理デバイスは、ビットストリームが第2のレイヤのVCL NALユニットと第2のレイヤのVCL NALユニットに適用可能なSEIメッセージを含む非VCL NALユニットとの間のマルチレイヤビットストリームの任意の他のレイヤのいずれのコーディングされたピクチャも含まないように、マルチレイヤビットストリームをコーディングすることができる。このように、SEIメッセージは、複数のレイヤ成分を有するアクセスユニットに対して、SEIメッセージが適用されるレイヤと一緒に存在するままである。
【0155】
[0161]やはり、いくつかの例では、ビデオ処理デバイスは、ビットストリーム中の第1のピクチャに後続する第2のピクチャのVCL NALユニットに適用可能な第2のプレフィックスSEIメッセージを含む1つまたは複数の非VCL NALユニットをコーディングすることができる。ビデオ処理デバイスはまた、ビットストリーム中の第2のピクチャに後続する第2のピクチャのVCL NALユニットに適用可能な第2のサフィックスSEIメッセージを含む1つまたは複数の非VCL NALユニットをコーディングすることができる。
【0156】
[0162]いくつかの事例では、ビデオ処理デバイスはまた、第1のレイヤの第1のピクチャのVCL NALユニットと第1のピクチャの関連する非VCL NALユニットとを含むピクチャユニットに基づいて、SEIメッセージのための最大繰り返しパラメータを決定することができる。
【0157】
[0163]また、図6に関して示され説明されるステップは一例として与えられたものにすぎないことを理解されたい。すなわち、図6の例に示されるステップは必ずしも図6に示される順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。その上、本技法はビデオ処理デバイスに関して上で全般に説明されたが、本技法は、ビデオエンコーダ20、カプセル化ユニット21、カプセル化解除ユニット29、後処理エンティティ27、ネットワークエンティティ78、または他の処理ユニットのような、種々のビデオ処理デバイスによって実施され得る。
【0158】
[0164]図7は、本開示で説明される技法の様々な態様による、SEIメッセージをコーディングするように構成されるビデオ処理デバイスの別の例示的な動作を示す流れ図である。図7の例では、ビデオエンコーダ20、カプセル化ユニット21、カプセル化解除ユニット29、後処理エンティティ27、ネットワークエンティティ78のようなビデオ処理デバイスは、復号ピクチャハッシュSEIメッセージを含むマルチレイヤビットストリームのレイヤの1つまたは複数の非VCL NALユニットをコーディングする(150)。上で述べられたように、復号ピクチャハッシュメッセージは、復号されたピクチャのサンプル値から導出されるチェックサムを提供することができる。復号ピクチャハッシュメッセージは、ピクチャが正しく受信され復号されたかどうかを検出するために、たとえばビデオデコーダ30のようなビデオデコーダによって使用され得る。
【0159】
[0165]ビデオ処理デバイスはまた、非VCL NALユニットと関連付けられるレイヤ識別子を決定する(152)。ビデオ処理デバイスはまた、復号ピクチャハッシュSEIメッセージを含む非VCL NALユニットのレイヤ識別子に基づいて、復号ピクチャハッシュSEIメッセージが適用可能であるマルチレイヤビットストリームのレイヤのセットを決定する(154)。本開示の態様によれば、復号ピクチャハッシュSEIメッセージの適用可能なレイヤのセットは、SEIメッセージを含むSEI NALユニットのレイヤ識別子(nuh_layer_id)に等しいレイヤ識別子(nuh_layer_id)を伴うレイヤであると指定され得る。すなわち、復号ピクチャハッシュSEIメッセージは、SEIメッセージを含むSEI NALユニットの同じレイヤ識別子(nuh_layer_id)を有するレイヤだけに適用される。いくつかの事例では、復号ピクチャハッシュSEIメッセージは、ネストされていないSEIメッセージでしかないことがある。
【0160】
[0166]いくつかの例では、追加でまたは代替的に、ビデオ処理デバイスはまた、マルチレイヤビットストリームの1つまたは複数の第2の非VCL NALユニットをコーディングすることができる。第2の非VCL NALユニットは、ビデオデータの特定の部分に対して有効であるパラメータセットを示す有効パラメータセットSEIメッセージを含み得る。ビデオ処理デバイスはまた、有効パラメータセットSEIメッセージを含む1つまたは複数の第2の非VCL NALユニットに基づいて、有効パラメータセットSEIメッセージがマルチレイヤビットストリームのすべてのレイヤに適用可能であると決定することができる。すなわち、ビデオ処理デバイスは、SEIメッセージが有効パラメータセットSEIメッセージであることによって、有効パラメータセットSEIメッセージがマルチレイヤビットストリームのすべてのレイヤに適用可能であると決定することができる。いくつかの例では、ビデオ処理デバイスはさらに、有効パラメータセットSEIメッセージがマルチレイヤビットストリームのすべてのレイヤに適用可能であることを示す1つまたは複数のシンタックス要素をコーディングすることができる。いくつかの例では、ビデオ処理デバイスは、有効パラメータセットSEIメッセージをネストされていないSEIメッセージとしてコーディングするだけであり得る。
【0161】
[0167]いくつかの例では、追加でまたは代替的に、ビデオ処理デバイスは、フレームフィールド情報がマルチレイヤビットストリームのピクチャタイミングSEIメッセージに存在することを示す1つまたは複数のシンタックス要素をコーディングすることができる。ビデオ処理デバイスはまた、ピクチャタイミングSEIメッセージが適用されるマルチレイヤビットストリームのすべての動作点の中のすべてのレイヤにフレームフィールド情報を適用することができる。
【0162】
[0168]また、図7に関して示され説明されるステップは一例として与えられたものにすぎないことを理解されたい。すなわち、図7の例に示されるステップは必ずしも図7に示される順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。その上、本技法はビデオ処理デバイスに関して上で全般に説明されたが、本技法は、ビデオエンコーダ20、カプセル化ユニット21、カプセル化解除ユニット29、後処理エンティティ27、ネットワークエンティティ78、または他の処理デバイスのような、種々のビデオ処理デバイスによって実施され得る。
【0163】
[0169]図8は、本開示で説明される技法の様々な態様による、SEIメッセージをコーディングするように構成されるビデオ処理デバイスの別の例示的な動作を示す流れ図である。図8の例では、ビデオエンコーダ20、カプセル化ユニット21、カプセル化解除ユニット29、後処理エンティティ27、ネットワークエンティティ78のようなビデオ処理デバイスは、SEIペイロードタイプを有するSEIメッセージを含むマルチレイヤビットストリームのレイヤの1つまたは複数の非VCL NALユニットをコーディングすることができる(160)。ビデオ処理デバイスメイはまた、ペイロードタイプに基づいて、SEIメッセージが適用されるマルチレイヤビットストリームのシンタックスを決定する(162)。たとえば、ビデオ処理デバイスは、SEIペイロードタイプに基づいて、SEIメッセージが適用されるマルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することができる。
【0164】
[0170]たとえば、本開示の態様によれば、SEIメッセージは、スケーラブルネスティングSEIメッセージを含み得る。この例では、ビデオ処理デバイスは、SEIペイロードタイプがペイロードタイプの第1のセットに含まれていることに基づいて、スケーラブルネスティングSEIメッセージのbitstream_subset_flagシンタックス要素が0の値であると決定することができる。ある例では、ペイロードタイプの第1のセットは、図1に関して上で説明されたように、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含むが、このセットはこの例において特定されたものよりも多数または少数のものを含んでよい。
【0165】
[0171]別の例では、SEIメッセージは、ネストされていないSEIメッセージであり得る。この例では、ビデオ処理デバイスは、SEIペイロードタイプがペイロードタイプの第1のセットに含まれていることに基づいて、SEIメッセージを含む非VCL NALユニットのためのレイヤ識別子シンタックス要素がSEIメッセージと関連付けられるVCL NALユニットのレイヤ識別子シンタックス要素に等しいと決定することができる。ある例では、ペイロードタイプの第1のセットは、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含むが、このセットは特定されたものよりも多数または少数のものを含んでよい。
【0166】
[0172]さらに別の例では、SEIメッセージは、スケーラブルネスティングSEIメッセージであり得る。この例では、ビデオ処理デバイスは、SEIペイロードタイプがペイロードタイプの第1のセットに含まれていることに基づいて、スケーラブルネスティングSEIメッセージを含む1つまたは複数の非VCL NALユニットが、0に等しいTemporalIdと、iのすべての値に対して7に等しいmaxTemporalId[i]とを有すると、決定することができる。ある例では、ペイロードタイプの第1のセットは、2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含むが、このセットはこの例において特定されたものよりも多数または少数のものを含み得る。
【0167】
[0173]本開示の態様によれば、追加でまたは代替的に、ビデオ処理デバイスは、スケーラブルネスティングSEIメッセージではなく、ネストされていないSEIメッセージだけにおいて、マルチレイヤビットストリームの有効パラメータセットSEIメッセージをコーディングすることができる。
【0168】
[0174]追加でまたは代替的に、ビデオ処理デバイスは、SEIメッセージがネストされていないバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含むことに基づいて、マルチレイヤビデオデータのレイヤのレイヤ識別子が0の値であると決定することができる。いくつかの例では、ビデオ処理デバイスはまた、0の値を有するようにレイヤ識別子シンタックス要素をコーディングすることができる。
【0169】
[0175]追加でまたは代替的に、ビデオ処理デバイスは、マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素をコーディングすることができる。ビデオコーディングデバイスは、bitstream_subset_flagシンタックス要素が1に等しいことと、両端を含めて0からSEIメッセージを含む非VCL NALユニットのレイヤ識別子の範囲にあるレイヤ識別子を含むマルチレイヤビットストリームのビデオパラメータセット(VPS)によって指定されるレイヤセットがないこととに基づいて、マルチレイヤビットストリームのdefault_op_flagシンタックス要素の値は0の値であると決定することができる。いくつかの例では、ビデオ処理デバイスはまた、0の値を有するようにdefault_op_flagシンタックス要素をコーディングすることができる。
【0170】
[0176]本開示の追加の態様によれば、追加でまたは代替的に、ビデオ処理デバイスは、マルチレイヤビットストリームのnesting_op_flagとマルチレイヤビットストリームのall_layers_flagとをコーディングすることができる。ビデオ処理デバイスは、nesting_op_flagが0という値を有することとall_layers_flagが1という値を有することとに基づいて、マルチレイヤビットストリームのmaxTemporalId[0]シンタックス要素の値が7に等しいと決定することができる。いくつかの例では、ビデオ処理デバイスはまた、7という値を有するようにmaxTemporalId[0]シンタックス要素をコーディングすることができる。
【0171】
[0177]追加でまたは代替的に、ビデオ処理デバイスは、マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素と、マルチレイヤビットストリームのnesting_op_flagシンタックス要素とをコーディングすることができる。ビデオ処理デバイスは、bitstream_subset_flagシンタックス要素が1という値を有することと、nesting_op_flagシンタックス要素が0という値を有することとに基づいて、マルチレイヤビットストリームのnestingLayerIdList[0]がマルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むと決定することができる。いくつかの例では、ビデオ処理デバイスはまた、マルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むように、nestingLayerIdList[0]シンタックス要素をコーディングすることができる。
【0172】
[0178]また、図8に関して示され説明されるステップは一例として与えられたものにすぎないことを理解されたい。すなわち、図8の例に示されるステップは必ずしも図8に示される順序で実行される必要があるとは限らず、より少数の、追加の、または代替のステップが実行され得る。その上、本技法はビデオ処理デバイスに関して上で全般に説明されたが、本技法は、ビデオエンコーダ20、カプセル化ユニット21、カプセル化解除ユニット29、後処理エンティティ27、ネットワークエンティティ78、または他の処理ユニットのような、種々のビデオ処理デバイスによって実施され得る。
【0173】
[0179]1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体または(2)信号または搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明される技法の実装のために命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0174】
[0180]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令またはデータ構造の形式で所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【0175】
[0181]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上述の構造または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内で与えられ、または複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【0176】
[0182]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてよく、または相互動作するハードウェアユニットの集合によって与えられてよい。
【0177】
[0183]様々な例が説明されてきた。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記SEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することとを備える、方法。
[C2]
前記SEIメッセージがスケーラブルネスティングSEIメッセージを備え、前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージのbitstream_subset_flagが0の値であると決定することを備える、C1に記載の方法。
[C3]
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、C2に記載の方法。
[C4]
前記SEIメッセージがネストされていないSEIメッセージであり、前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれていることに基づいて、前記SEIメッセージを含む前記非VCL NALユニットのためのレイヤ識別子シンタックス要素が、前記SEIメッセージと関連付けられるVCL NALユニットのレイヤ識別子シンタックス要素に等しいと決定することを備える、C1に記載の方法。
[C5]
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、C4に記載の方法。
[C6]
前記SEIメッセージがスケーラブルネスティングSEIメッセージであり、前記1つまたは複数のシンタックス値を決定することが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージを含む前記1つまたは複数の非VCL NALユニットが、0に等しいTemporalIdと、iのすべての値に対するTemporalIdの最大の値に等しいmaxTemporalId[i]とを有すると決定することを備える、C1に記載の方法。
[C7]
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、C6に記載の方法。
[C8]
スケーラブルネスティングSEIメッセージではなく、ネストされていないSEIメッセージだけにおいて、前記マルチレイヤビットストリームの有効パラメータセットSEIメッセージをコーディングすることをさらに備える、C1に記載の方法。
[C9]
前記1つまたは複数の非VCL NALユニットが、ネストされていないバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含む前記SEIメッセージを含むことに基づいて、前記レイヤのレイヤ識別子が0の値であると決定することをさらに備える、C1に記載の方法。
[C10]
前記マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素をコーディングすることと、
前記bitstream_subset_flagが1に等しいことと、両端を含めて0から前記SEIメッセージを含む前記非VCL NALユニットのレイヤ識別子の範囲にあるレイヤ識別子を含む前記マルチレイヤビットストリームのビデオパラメータセット(VPS)によって指定されるレイヤセットがないこととに基づいて、前記マルチレイヤビットストリームのdefault_op_flagシンタックス要素の値は0の値であると決定することとをさらに備える、C1に記載の方法。
[C11]
前記マルチレイヤビットストリームのnesting_op_flagと前記マルチレイヤビットストリームのall_layers_flagとをコーディングすることと、
前記nesting_op_flagが0という値を有することと前記all_layers_flagが1という値を有することとに基づいて、前記マルチレイヤビットストリームのmaxTemporalId[0]シンタックス要素の値がTemporalIdの最大の値に等しいと決定することとをさらに備える、C1に記載の方法。
[C12]
前記マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素と前記マルチレイヤビットストリームのnesting_op_flagシンタックス要素とをコーディングすることと、
前記bitstream_subset_flagシンタックス要素が1という値を有することと、前記nesting_op_flagシンタックス要素が0という値を有することとに基づいて、前記マルチレイヤビットストリームのnestingLayerIdList[0]が前記マルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むと決定することとをさらに備える、C1に記載の方法。
[C13]
コーディングすることが符号化することを備え、前記方法が、
予測データと前記レイヤのビデオデータとの差を示す、前記レイヤの前記ビデオデータための残差データを生成することと、
前記残差データザジェネレート変換係数に変換を適用することと、
前記変換係数の指示を含むビットストリームを生成することとをさらに備える、C1に記載の方法。
[C14]
コーディングすることが復号することを備え、前記方法が、
符号化されたビットストリームから前記レイヤのビデオデータのための変換係数を取得することと、
残差データを生成するために逆変換を前記変換係数に適用することと、
前記生成された残差データに基づいて前記ビデオデータを決定することとをさらに備える、C1に記載の方法。
[C15]
ビデオデータをコーディングするためのデバイスであって、
マルチレイヤビットストリームのレイヤを記憶するように構成されるメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記SEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することと
を行うように構成される、デバイス。
[C16]
前記SEIメッセージがスケーラブルネスティングSEIメッセージを備え、前記1つまたは複数のシンタックス値を決定するために、前記1つまたは複数のプロセッサが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージのbitstream_subset_flagが0の値であると決定するように構成される、C15に記載のデバイス。
[C17]
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、C16に記載のデバイス。
[C18]
前記SEIメッセージがネストされていないSEIメッセージであり、前記1つまたは複数のシンタックス値を決定するために、前記1つまたは複数のプロセッサが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれていることに基づいて、前記SEIメッセージを含む前記非VCL NALユニットのためのレイヤ識別子シンタックス要素が、前記SEIメッセージと関連付けられるVCL NALユニットのレイヤ識別子シンタックス要素に等しいと決定するように構成される、C15に記載のデバイス。
[C19]
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、C18に記載のデバイス。
[C20]
前記SEIメッセージがスケーラブルネスティングSEIメッセージであり、前記1つまたは複数のシンタックス値を決定するために、前記1つまたは複数のプロセッサが、前記SEIペイロードタイプがペイロードタイプの第1のセットに含まれることに基づいて、前記スケーラブルネスティングSEIメッセージを含む前記1つまたは複数の非VCL NALユニットが、0に等しいTemporalIdと、iのすべての値に対するTemporalIdの最大の値に等しいmaxTemporalId[i]とを有すると決定するように構成される、C15に記載のデバイス。
[C21]
ペイロードタイプの前記第1のセットが、ペイロードタイプ2、3、6、9、15、16、17、19、22、23、45、47、128、131、132、および134を含む、C20に記載のデバイス。
[C22]
前記1つまたは複数のプロセッサがさらに、スケーラブルネスティングSEIメッセージではなく、ネストされていないSEIメッセージだけにおいて、前記マルチレイヤビットストリームの有効パラメータセットSEIメッセージをコーディングするように構成される、C15に記載のデバイス。
[C23]
前記1つまたは複数のプロセッサがさらに、
前記1つまたは複数の非VCL NALユニットが、ネストされていないバッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、または復号ユニット情報SEIメッセージを含む前記SEIメッセージを含むことに基づいて、前記レイヤのレイヤ識別子が0の値であると決定するように構成される、C15に記載のデバイス。
[C24]
前記1つまたは複数のプロセッサがさらに、
前記マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素をコーディングし、
前記bitstream_subset_flagが1に等しいことと、両端を含めて0から前記SEIメッセージを含む前記非VCL NALユニットのレイヤ識別子の範囲にあるレイヤ識別子を含む前記マルチレイヤビットストリームのビデオパラメータセット(VPS)によって指定されるレイヤセットがないこととに基づいて、前記マルチレイヤビットストリームのdefault_op_flagシンタックス要素の値は0の値であると決定するように構成される、C15に記載のデバイス。
[C25]
前記1つまたは複数のプロセッサがさらに、
前記マルチレイヤビットストリームのnesting_op_flagと前記マルチレイヤビットストリームのall_layers_flagとをコーディングし、
前記nesting_op_flagが0という値を有することと前記all_layers_flagが1という値を有することとに基づいて、前記マルチレイヤビットストリームのmaxTemporalId[0]シンタックス要素の値がTemporalIdの最大の値に等しいと決定するように構成される、C15に記載のデバイス。
[C26]
前記1つまたは複数のプロセッサがさらに、
前記マルチレイヤビットストリームのbitstream_subset_flagシンタックス要素と前記マルチレイヤビットストリームのnesting_op_flagシンタックス要素とをコーディングし、
前記bitstream_subset_flagシンタックス要素が1という値を有することと、前記nesting_op_flagシンタックス要素が0という値を有することとに基づいて、前記マルチレイヤビットストリームのnestingLayerIdList[0]が前記マルチレイヤビットストリームのVPSにおいて指定されるレイヤセットのレイヤ識別子の値だけを含むと決定するように構成される、C15に記載のデバイス。
[C27]
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスの少なくとも1つを備える、C15に記載のデバイス。
[C28]
ビデオデータをコーディングするための装置であって、
ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングするための手段と、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記SEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス値を決定するための手段とを備える、装置。
[C29]
実行されると、1つまたは複数のプロセッサに、
ビデオデータのマルチレイヤビットストリームのレイヤの1つまたは複数の非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットをコーディングすることと、ここにおいて、前記1つまたは複数の非VCL NALユニットは、SEIペイロードタイプを有するSEIメッセージを含む、
前記SEIペイロードタイプに基づいて、前記SEIメッセージが適用される前記マルチレイヤビットストリームの1つまたは複数のシンタックス値を決定することとを行わせる、命令を記憶した非一時的コンピュータ可読媒体。
図1
図2
図3
図4
図5
図6
図7
図8