(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化するためのデバイスであって、
ビデオデータを記憶するように構成されている1つまたは複数のコンピュータ可読記憶媒体と、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
前記ビデオデータの符号化された表現を含むビットストリームを生成し、前記ビットストリームは複数のレイヤを含み、
異なるレイヤ識別子を有する前記ビットストリームのネットワークアクセスレイヤ(NAL)ユニットは、前記複数のレイヤのうちの異なるレイヤに属し、
前記1つまたは複数のプロセッサは、前記ビットストリームを生成する一環として、前記1つまたは複数のプロセッサが、前記ビットストリーム内に、出力レイヤセットに対する複数の異なる分割方式を指示するシンタックス要素を含めるように構成され、前記複数の分割方式のうちの各それぞれの分割方式について、前記それぞれの分割方式は、合併することで前記出力レイヤセットを形成する非連結パーティションのそれぞれのセットであり、非連結パーティションの前記それぞれのセットの各それぞれのパーティションは1つまたは複数のレイヤを含み、
前記ビットストリームを出力するように構成されるデバイス。
【請求項２】
前記1つまたは複数のプロセッサは、前記ビットストリームを生成する一環として、前記1つまたは複数のプロセッサが、前記複数の分割方式のうちの各それぞれの分割方式の各それぞれのパーティションについて、前記ビットストリーム内に、前記それぞれのパーティションに対するプロファイル、層、およびレベルを指示するそれぞれのシンタックス要素を取得含めるように構成される請求項1に記載のデバイス。
【請求項３】
前記ビットストリームは、ピクチャ幅、ピクチャ高さ、およびサブデコードピクチャバッファ(DPB)サイズに対する限度および制限を除く、プロファイル、層、またはレベルのすべてのレベル限度および制限を、パーティション特有であるものとして指定するビデオコーディング規格に準拠する請求項1に記載のデバイス。
【請求項４】
前記出力レイヤセットは、複数の出力レイヤセットのうちの1つであり、前記1つまたは複数のプロセッサは、前記ビットストリームを生成する一環として、前記1つまたは複数のプロセッサが、前記複数の出力レイヤセットのうちの各それぞれの出力レイヤセットについて、前記それぞれの出力レイヤセットのパーティションにレイヤの1つまたは複数の分割方式をシグナリングするように構成される請求項1に記載のデバイス。
【請求項５】
前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも1つを備える請求項1に記載のデバイス。
【請求項６】
前記ビデオデータをキャプチャするように構成されているカメラをさらに備える請求項1に記載のデバイス。
【請求項７】
ビデオデータを符号化するための方法であって、
前記ビデオデータの符号化された表現を含むビットストリームを生成するステップであって、前記ビットストリームは複数のレイヤを含み、
異なるレイヤ識別子を有する前記ビットストリームのネットワークアクセスレイヤ(NAL)ユニットは、前記複数のレイヤのうちの異なるレイヤに属し、
前記ビットストリームを生成するステップは、前記ビットストリーム内に、出力レイヤセットに対する複数の異なる分割方式を指示するシンタックス要素を含めるステップを含み、前記複数の分割方式のうちの各それぞれの分割方式について、前記それぞれの分割方式は、合併することで前記出力レイヤセットを形成する非連結なパーティションのそれぞれのセットであり、非連結なパーティションの前記それぞれのセットの各それぞれのパーティションは、1つまたは複数のレイヤを含む、ステップと、
前記ビットストリームを出力するステップとを含む方法。
【請求項８】
前記ビットストリームを生成するステップは、
前記複数の分割方式のうちの各それぞれの分割方式の各それぞれのパーティションについて、前記ビットストリーム内に、前記それぞれのパーティションに対するプロファイル、層、およびレベルを指示するそれぞれのシンタックス要素を含めるステップを含む請求項7に記載の方法。
【請求項９】
前記ビットストリームは、ピクチャ幅、ピクチャ高さ、およびサブデコードピクチャバッファ(DPB)サイズに対する限度および制限を除く、プロファイル、層、またはレベルのすべてのレベル限度および制限を、パーティション特有であるものとして指定するビデオコーディング規格に準拠する請求項7に記載の方法。
【請求項１０】
前記出力レイヤセットは、複数の出力レイヤセットのうちの1つであり、前記ビットストリームを生成するステップは、前記複数の出力レイヤセットのうちの各それぞれの出力レイヤセットについて、前記それぞれの出力レイヤセットのパーティションにレイヤの1つまたは複数の分割方式をシグナリングするステップを含む請求項7に記載の方法。
【請求項１１】
命令が記憶されているコンピュータ可読記憶媒体であって、前記命令は実行されたときに、ビデオデータを符号化するためのデバイスの1つまたは複数のプロセッサに、請求項7乃至10の何れか1項に記載の方法を実施させる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2014年5月1日に出願された米国仮特許出願第61/987,463号、および2014年5月15日に出願された米国仮特許出願第61/993,980号の利益を主張し、これらの各々の内容全体が参照によって本明細書に組み込まれる。
【０００２】
本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビ、デジタル直接放送システム、ワイヤレス放送システム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれることが可能である。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、パート10、アドバンスドビデオコーディング(AVC:Advanced Video Coding)、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、開発下にあるものおよびそのような規格の拡張によって定義された規格に記載されるものなどのビデオ圧縮技術を実装する。ビデオデバイスは、そのようなビデオ圧縮技術を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することがある。
【０００４】
ビデオ圧縮技術は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部)がいくつかのブロックに分割され得る。ピクチャのイントラコード化(I)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測を用いて符号化される。ピクチャのインターコード化(PまたはB)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測、または他の参照ピクチャ内の参照サンプルに対する時間予測を使用してもよい。ピクチャは、フレームと呼ばれることがあり、参照ピクチャは、参照フレームと呼ばれることがある。
【０００５】
空間予測または時間予測は、コーディングされるべきブロックの予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、残差変換係数は、次いで量子化され得る。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために、走査されてもよく、エントロピーコーディングが、さらに多くの圧縮を達成するために適用されてもよい。
【０００６】
たとえば、複数の視点からのビューを符号化することによって、マルチビューコーディングビットストリームが生成され得る。マルチビューコーディングの態様を使用するいくつかの3次元(3D)ビデオ規格が開発されている。たとえば、異なるビューが、3Dビデオをサポートするように左右の目のビューを伝達することができる。代替的に、いくつかの3Dビデオコーディングプロセスは、いわゆるマルチビュープラス深度コーディングを適用することができる。マルチビュープラス深度コーディングでは、3Dビデオビットストリームは、テクスチャビュー構成要素だけでなく、深度ビュー構成要素をも含み得る。たとえば、各ビューは、1つのテクスチャビュー構成要素と1つの深度ビュー構成要素とを備え得る。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】「Advanced video coding for generic audiovisual services」、ITU-T勧告H.264、2010年3月
【非特許文献２】Brossら、「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、第16回会合、サンノゼ、米国、2014年1月、文書番号JCTVC-P1003_v1
【非特許文献３】http://phenix.it-sudparis.eu/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1003-v1.zip
【非特許文献４】Working Draft (WD) of MV-HEVC
【非特許文献５】http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v1.zip
【非特許文献６】Working Draft (WD) of SHVC
【非特許文献７】http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v1.zip
【非特許文献８】SHVC WD6
【非特許文献９】3D-HEVC
【非特許文献１０】MV-HEVC WD8
【非特許文献１１】H.264/AVC
【非特許文献１２】Wangら、「MV-HEVC/SHVC HLS: On level definition」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 第17回会合:バレンシア、スペイン、2014年3月27〜4月4日、文書番号JCTVC-Q0145
【非特許文献１３】JCTV3V-H1002
【非特許文献１４】Chenら、「High efficiency video coding (HEVC) scalable extensions Draft 5」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第16回会合:サンノゼ、米国、2014年1月9〜17日、文書JCTVC-P1008_v4
【非特許文献１５】Techら、「MV-HEVC Draft Text 7」、Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第7回会合:サンノゼ、米国、2014年1月11〜17日、JCT3V-G1004-v7
【発明の概要】
【課題を解決するための手段】
【０００８】
一般に、本開示では、ビットストリームパーティション(video bitstream partition)を定義するために使用されるビデオビットストリーム特性、およびそのように定義されたビデオビットストリームを復号するために必要なビデオデコーダ機能を記述する技術を説明する。
【０００９】
一例において、本開示では、ビデオデータを復号する方法について説明しており、この方法は、ビデオデータの符号化された表現を含むビットストリームを復号することを含み、ビットストリームは複数のレイヤを含み、ここにおいて、ビットストリームを復号することは、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得し、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは、それらのレイヤのうちの1つまたは複数を含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなる、ことと、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号し、特定の分割方式は1つまたは複数の分割方式のうちの1つである、こととを含む。
【００１０】
別の例において、本開示では、ビデオデータを符号化する方法について説明しており、この方法は、ビデオデータの符号化された表現を含むビットストリームを生成し、ビットストリームは複数のレイヤを含み、ここにおいて、ビットストリームを生成することは、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含めることを含み、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結なパーティションのそれぞれのセットの各それぞれのパーティションは、1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなる、ことと、ビットストリームを出力することとを含む。
【００１１】
別の例において、本開示では、ビデオデータを復号するためのデバイスについて説明しており、このデバイスは、ビデオデータを記憶するように構成されている1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のプロセッサとを備え、これらの1つまたは複数のプロセッサは、ビデオデータの符号化された表現を含むビットストリームを復号し、ビットストリームは複数のレイヤを含み、ここにおいて、1つまたは複数のプロセッサは、ビットストリームを復号する一環として、1つまたは複数のプロセッサが、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得するように構成され、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは、それらのレイヤのうちの1つまたは複数を含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなり、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号し、特定の分割方式は1つまたは複数の分割方式のうちの1つである、ように構成される。
【００１２】
別の例において、本開示では、ビデオデータを符号化するためのデバイスについて説明しており、このデバイスは、ビデオデータを記憶するように構成されている1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のプロセッサとを備え、これらの1つまたは複数のプロセッサは、ビデオデータの符号化された表現を含むビットストリームを生成し、ビットストリームは複数のレイヤを含み、ここにおいて、1つまたは複数のプロセッサは、ビットストリームを生成する一環として、1つまたは複数のプロセッサが、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含めるように構成され、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなり、ビットストリームを出力するように構成される。
【００１３】
別の例において、本開示では、ビデオデータを復号するためのデバイスについて説明しており、このデバイスは、ビデオデータの符号化された表現を含むビットストリームを復号するための手段を備え、ビットストリームは複数のレイヤを含み、ここにおいて、ビットストリームを復号するための手段は、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得するための手段であって、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは、それらのレイヤのうちの1つまたは複数を含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなる、手段と、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号するための手段であって、特定の分割方式は1つまたは複数の分割方式のうちの1つである、手段とを備える。
【００１４】
別の例において、本開示では、ビデオデータを符号化するためのデバイスについて説明しており、このデバイスは、ビデオデータの符号化された表現を含むビットストリームを生成するための手段を備え、ビットストリームは複数のレイヤを含み、ここにおいて、ビットストリームを生成するための手段は、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含めるための手段であって、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなる、手段と、ビットストリームを出力するための手段とを備える。
【００１５】
別の例において、本開示は、命令が記憶されているコンピュータ可読データ記憶媒体を説明しており、これらの命令は実行されるとデバイスにビデオデータを復号するために、ビデオデータの符号化された表現を含むビットストリームを復号することを行わせ、ビットストリームは複数のレイヤを含み、ここにおいて、デバイスにビットストリームを復号することを行わせる一環として、命令はデバイスに、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得し、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは、それらのレイヤのうちの1つまたは複数を含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなり、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号し、特定の分割方式は1つまたは複数の分割方式のうちの1つである、ことを行わせる。
【００１６】
別の例において、本開示は、命令が記憶されているコンピュータ可読データ記憶媒体を説明しており、これらの命令は実行されるとデバイスにビデオデータを符号化するために、ビデオデータの符号化された表現を含むビットストリームを生成することを行わせ、ビットストリームは複数のレイヤを含み、ここにおいて、デバイスにビットストリームを生成することを行わせる一環として、命令はデバイスに、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含め、ここにおいて、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結なパーティションのそれぞれのセットの各それぞれのパーティションは、1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなり、ビットストリームを出力することを行わせる。
【００１７】
本開示の1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】本開示で説明されている技術を利用し得る例示的なビデオコーディングシステムを示すブロック図である。
【図２】本開示の技術による、複数の単一レイヤデコーダを含むビデオデコーダの例示的な実装を示すブロック図である。
【図３】本開示で説明されている技術を実装し得る例示的なビデオエンコーダを示すブロック図である。
【図４】本開示で説明されている技術を実装し得る例示的なビデオデコーダを示すブロック図である。
【図５Ａ】本開示の技術による、ビデオエンコーダの例示的な動作を示すフローチャートである。
【図５Ｂ】本開示の技術による、ビデオデコーダの例示的な動作を示すフローチャートである。
【図６Ａ】本開示の技術による、ビデオエンコーダの例示的な動作を示すフローチャートである。
【図６Ｂ】本開示の技術による、ビデオデコーダの例示的な動作を示すフローチャートである。
【図７】本開示の技術による、ビデオデコーダの例示的な動作を示すフローチャートである。
【発明を実施するための形態】
【００１９】
ビットストリーム(すなわち、ビデオビットストリーム)は、ビデオデータの符号化された表現を含み得る。より具体的には、ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを備えることができる。NALユニットの各々は、NALユニットヘッダおよびローバイトシーケンスペイロード(RBSP)を含み得る。マルチレイヤビデオコーディングでは、NALユニットは、ビデオデータの様々なレイヤに対応し得る。スケーラブルビデオコーディングでは、レイヤは、ベースレイヤおよび1つまたは複数のエンハンスメントレイヤを含み得る。マルチビューコーディングでは、レイヤの各々は、ビデオシーンの異なるビューなどの、異なるビューに対応し得る。
【００２０】
高効率ビデオコーディング(HEVC)などのいくつかのビデオコーディング規格は、いくつかの異なるプロファイル、層、およびレベルを定義している。一般に、ビデオコーディング規格の「プロファイル」は、ビデオコーディング規格に存在する特徴およびツールのサブセットである。言い換えれば、プロファイルは、どのようなコーディングツールが使用され得るかを定義する。たとえば、ビデオエンコーダでは、プロファイルは、ビデオエンコーダが前記プロファイルに準拠するコード化ビットストリームを生成するために使用することができるコーディングツールのセットであってよい。ビデオデコーダでは、プロファイルは、前記プロファイルに準拠していると言われるビットストリームを復号することができためにビデオデコーダが有していなければならないコーディングツールのセットを意味するものとしてよい。
【００２１】
レベルは、ビデオコーディング規格のシンタックス要素および変数の取り得る値に対する制約の定義済みセットである。層は、ビットストリーム内のシンタックス要素の値または変数の値に課されるレベル制約の指定されたカテゴリであり、そこで、レベル制約は、層内にネストされ、特定の層およびレベルに準拠するデコーダは、同じ層またはそのレベルもしくはそのレベルの下の任意のレベルの下位の層に準拠するすべてのビットストリームを復号することができる。したがって、層のレベルは、ビットストリーム内のシンタックス要素の値またはビットストリームを復号する際に使用される変数に課される制約の指定されたセットである。
【００２２】
異なるビデオデコーダは、異なる機能を有し得る。たとえば、1つのビデオデコーダは、第1のプロファイルに準拠するビットストリームを復号することができるものとしてよいが、第2のプロファイルに準拠するビットストリームを復号することはできない場合がある。この例において、別のビデオデコーダは、第1のプロファイルおよび第2のプロファイルに準拠するビットストリームを復号することができるものとしてよい。たとえば、ビデオコーディングのスケーラブルレイヤ(scalable layer)の場合、達成され得るビデオ画質のレベルは、いくつかのデバイスはビデオ画質のベースレベルを復号し、提示することのみができ、他のデバイスは高められたビデオ画質を復号し、提示することができるようにレイヤにまたがってスケーリングされ得る。また、スケーラブルレイヤは、チャネル帯域幅が制限されているときにより信頼できるビデオデータ受信を可能にし得る、たとえば、制限された帯域幅のチャネルは、それでも、ベースレイヤのビデオデータ通信に十分であり得、よりロバストな帯域幅のチャネルは、ベースおよびエンハンスメントレイヤのビデオデータ通信を可能にし得る。一般に、第1のプロセッサが、第2のプロセッサによって復号され得るプロファイル、層、およびレベルのスーパーセットであるプロファイル、層、およびレベルに準拠するビットストリームを復号することができる場合、第1のプロセッサはより複雑であり、より多くの費用がかかる傾向を有する。
【００２３】
同様に、マルチビューコーディングの場合、複数のビューがいくつかのデバイスによって復号可能であり得るが、他のデバイスは、限られた数のビューを復号化する機能しか有し得ない。チャネル帯域幅制約は、また、帯域幅が制限されているときに限られた数のビューが復号可能であるようにマルチビューコーディングによってより効果的に利用されるものとしてよく、より多くのビューが、帯域幅が許す限り復号可能であるものとしてよい。
【００２４】
いくつかの場合において、ビデオデコーダは、複数のハードウェアコア(たとえば、処理ユニットまたは処理モジュール)を備える。言い換えれば、ビデオデコーダは、複数のハードウェアコアを使用して組み立てられ得る。ハードウェアコアの各々は、ビットストリームの少なくとも低水準のシンタックス要素を独立して復号することができるものとしてよい。異なるコアは、その処理機能に関して類似しているか、または異なっていてもよいが、そうであっても、複数のコアの存在は、単一コアデコーダに勝る処理上の利点をもたらし得る。いくつかの例において、複数のハードウェアコアを備えるビデオデコーダは、ビットストリームの複数の部分を並行して復号することができるものとしてよい。たとえば、いくつかの処理コアは、単一レイヤデコーダを実装し得る。単一レイヤデコーダは、スケーラブルビデオのベースレイヤまたはマルチビュービデオにおける特定のビューなどの、ビットストリームの単一レイヤを復号することができるものとしてよい。対照的に、マルチレイヤデコーダは、ビットストリームの複数のレイヤを同時に(すなわち、並行して)復号することができるものとしてよい。一例において、単一のハードウェアコアは、複数のレイヤを復号することができる。
【００２５】
ビデオデコーダの異なるハードウェアコアは、異なる機能を有し得る。たとえば、ビデオデコーダの1つのハードウェアコアは、第2のプロファイルではなく、第1のプロファイルに準拠するビットストリームを復号することができるものとしてよいが、ビデオデコーダの第2のハードウェアコアは、第1のプロファイルおよび第2のプロファイルに準拠するビットストリームを復号することができるものとしてよい。ビデオデコーダは、ビデオデコーダの意図された目的がある場合に、ビデオデコーダの全体的なコストをできる限り低く抑えるために異なる機能を有するハードウェアコアを有していてよい。
【００２６】
典型的には、ビデオデコーダが複数のハードウェアコアを備える場合において、ビデオデコーダは、ビットストリームでシグナリングされるプロファイル、層、およびレベル情報に基づき、ビデオデコーダの最も能力の高いハードウェアコアがビットストリームを復号できるかどうかを決定する。そうであれば、ビデオデコーダは、ビットストリームを復号できると決定する。このプロセスは、ビデオデコーダが、ビデオデコーダの能力の低いハードウェアコアのうちのどれかがビットストリームを復号するプロセスを支援することができるかどうかを決定することを可能にしない。その結果、能力の低いハードウェアコアは、最も能力の高いハードウェアコアがビットストリームのすべてを復号している間、アイドル状態にあり得る。しかしながら、ビデオデコーダの能力の低いハードウェアコアは、実際には、ビデオデコーダの最も能力の高いハードウェアコアと並行してビットストリームの特定のレイヤを復号することができるものとしてよい。その結果、能力の低いハードウェアコアを使用しないと、復号時間をいたずらに長引かせる可能性がある。
【００２７】
本開示にいくつかの技術は、異なる機能を持つハードウェアコアを有するビデオデコーダにおける復号時間の短縮を円滑にし得る。たとえば、本開示のいくつかの技術は、異なる機能を有する複数の単一レイヤデコーダに基づき組み立てられたビデオデコーダにおける復号時間を短縮することができる。従来からある技術に関する復号時間のこの短縮は、ハードウェアコアそれ自体を変更することなく(たとえば、ハードウェアコアの物理的構造を修正することなく)成し遂げられ得る。それに加えて、ハードウェアコアが同じ機能を有しているときに、本開示のいくつかの技術は、ビデオデコーダがより多くのレイヤを並行して復号することを可能にし得る。
【００２８】
本開示の例示的な一技術によれば、ビデオデコーダは、ビデオデータの符号化された表現を含むビットストリームを復号し得る。この例において、ビットストリームは、複数のレイヤを備える。ビットストリームを復号する一環として、ビデオデコーダは、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得し得る。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併することで出力レイヤセットを形成する非連結なパーティションのそれぞれのセットを指定する。非連結なパーティションのそれぞれのセットの各それぞれのパーティションは、レイヤのうちの1つまたは複数を含む。したがって、パーティションは、ビットストリームの特定のタイプのサブビットストリームであってよい。出力レイヤセットは、複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなるものとしてよい。さらに、ビデオデコーダは、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号することができ、特定の分割方式は1つまたは複数の分割方式のうちの1つである。
【００２９】
いくつかの例において、1つまたは複数の分割方式のうちの各それぞれの分割方式の各それぞれのパーティションについて、ビデオデコーダは、ビットストリームから、それぞれのパーティションに対するそれぞれのプロファイル、層、およびレベル(PTL)情報を指示するそれぞれのシンタックス要素を取得する。いくつかの場合において、ビデオデコーダは、分割方式のパーティションに対するPTL情報に基づき、1つまたは複数の分割方式から分割方式を選択し得る。いくつかの場合において、ビデオデコーダは、利用可能なネットワークリソースによって決定されるような特定の分割方式に従ってビットストリームを受信することができる。ビデオデコーダは、ハードウェアコアのうちのそれぞれ1つのコアを使用して特定の分割方式の各それぞれのパーティションを復号し得る。ハードウェアコアのうちの各それぞれの1つのコアは、それぞれの単一レイヤデコーダを実装し得る。いくつかの場合おいて、ビデオデコーダの1つのハードウェアコアは、複数のレイヤを復号することができるものとしてよい。
【００３０】
本開示の追加の技術は、ビットストリームパーティションを使用してビットストリーム準拠試験を行うことができる。たとえば、ビデオ処理デバイス(ビデオエンコーダ、ビデオデコーダ、または他のデバイスなど)は、ビデオデータの符号化された表現を含むビットストリームを復号し得る。ビットストリームは、複数のレイヤを含み得る。ビットストリームを復号する一環として、ビデオデコーダは、ビットストリームから、出力レイヤセットに対する1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得し得る。これらのタイプの例において、出力レイヤセットは、複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなるものとしてよい(たとえば、複数のレイヤのすべてのレイヤではなく)。さらに、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、1つまたは複数のパーティションへの出力レイヤセットの分割を指定することができる。出力レイヤセット内の各レイヤは、それぞれの分割方式においてちょうど1つのパーティションに属し得る。1つまたは複数の分割方式の各それぞれの分割方式について、ビデオデコーダは、ビットストリーム内の付加拡張情報(SEI)メッセージまたはビットストリーム内のビデオパラメータセット(VPS)内のビデオユーザビリティ情報(VUI)から、その分割方式に対する仮想参照デコーダ(HRD)パラメータセットを指示するシンタックス要素のそれぞれのセットを取得し得る。それに加えて、分割方式の各それぞれのパーティションについて、ビデオ処理デバイスは、それぞれの分割方式に対するHRDパラメータセットに基づき、MV-HEVCまたはSHVCなどの、ビデオコーディング規格への準拠に関してそれぞれのパーティションを試験することができる。
【００３１】
本開示のいくつかの技術によれば、マルチレイヤビデオデコーダは、三組みエントリのリストに基づき、マルチレイヤビデオデコーダが、マルチレイヤビデオデータの符号化された表現を含むビットストリームを復号することができる(すなわち、復号するように構成されている)かどうかを決定することができる。リスト中の三組みエントリの数は、マルチレイヤビデオデコーダ内の単一レイヤデコーダの数以下であるものとしてよい。三組みエントリのリスト内の各それぞれの三組みエントリは、マルチレイヤビデオデコーダ内のそれぞれの単一レイヤデコーダが復号することができる(すなわち、復号するように構成されている)プロファイル、層、およびレベルを指示する。マルチレイヤビデオデコーダがビットストリームを復号することができることに基づき、マルチレイヤビデオデコーダは、ビットストリームを復号することができる。いくつかの例において、ビデオ処理デバイスは、パーティションが単一レイヤデコーダのうちの少なくとも1つによって復号され得ることを分割方式の各パーティションのPTL情報が指示する分割方式をビットストリームが指定することを決定することによって、マルチレイヤデコーダがビットストリームを復号することができると決定することができる。これは、複数の単一レイヤデコーダを有するマルチレイヤビデオデコーダが、マルチレイヤビデオデコーダがビットストリームを復号することができるかどうかを決定することを可能にし得る。
【００３２】
図1は、本開示の技術を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用されているように、「ビデオコーダ」という用語は、一般的に、ビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、一般的に、ビデオ符号化またはビデオ復号を指すものとしてよい。
【００３３】
図1に示されているように、ビデオコーディングシステム10は、ソースデバイス12、宛先デバイス14、およびネットワーク要素15を含む。ソースデバイス12は、符号化ビデオデータを生成する。したがって、ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれ得る。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号することができる。したがって、宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれ得る。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例とすることができる。
【００３４】
ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノードブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマートフォン」などの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、または同様のものを含む、広範なデバイスを備え得る。
【００３５】
ネットワーク要素15は、符号化ビデオデータを受信し、処理済みの符号化ビデオデータを出力し得る。ネットワーク要素15は、メディアアウェアネットワーク要素(media aware network element)(MANE)、コンテンツデリバリネットワーク(content delivery network)(CDN)デバイス、または別のタイプのデバイス(たとえば、コンピューティングデバイス)であってよい。ネットワークデバイス15は、本開示の1つまたは複数の技術を実行し得る。たとえば、ネットワークデバイス15は、本開示の1つまたは複数の技術により、1つまたは複数のビットストリーム準拠試験を実行し得る。ネットワーク要素15、ソースデバイス12、宛先デバイス14、およびビデオデータを処理する他のタイプのデバイスは、ビデオ処理デバイスと考えることができる。
【００３６】
宛先デバイス14は、チャネル16を介してソースデバイス12から符号化ビデオデータを受信することができる。チャネル16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動することができる1つもしくは複数の媒体またはデバイスを備え得る。一例において、チャネル16は、ソースデバイス12が符号化ビデオデータを直接、宛先デバイス14にリアルタイムで送信することを可能にする1つまたは複数の通信媒体を備え得る。この例において、ソースデバイス12は、ワイヤレス通信プロトコルなどの、通信規格に従って符号化ビデオデータを変調することができ、変調ビデオデータを宛先デバイス14に送信することができる。1つまたは複数の通信媒体は、高周波(RF)スペクトルなどのワイヤレスおよび/または有線通信媒体、または1つまたは複数の物理的伝送路を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)などの、パケットベースのネットワークの一部を形成してもよい。1つまたは複数の通信媒体は、ルーター、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を円滑にする他の機器を含み得る。
【００３７】
別の例において、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例において、宛先デバイス14は、たとえば、ディスクアクセスまたはカードアクセスを介して、記憶媒体にアクセスすることができる。記憶媒体は、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の好適なデジタル記憶媒体などの、様々なローカルでアクセスされるデータ記憶媒体を含み得る。
【００３８】
さらなる例において、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間記憶装置デバイスを含み得る。この例において、宛先デバイス14は、ストリーミングまたはダウンロードを介してファイルサーバまたは他の中間記憶装置デバイスに格納されている符号化ビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、符号化ビデオデータを宛先デバイス14に送信することができるタイプのサーバとすることができる。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイト用)、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブを含む。
【００３９】
宛先デバイス14は、インターネット接続などの、標準的なデータ接続を通じて符号化ビデオデータにアクセスしてもよい。データ接続のタイプの例は、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはファイルサーバ上に記憶されている符号化ビデオデータにアクセスするのに適している両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００４０】
本開示の技術は、ワイヤレス用途または設定に限定されない。技術は、空中テレビ放送、ケーブルテレビ送信、衛星テレビ送信、たとえばインターネットを介するストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途など、様々なマルチメディア用途を支持するビデオコーディングに適用されてもよい。いくつかの例において、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどのアプリケーションをサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【００４１】
図1は単なる例であり、本開示の技術は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含まないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例において、データ(たとえば、ビデオデータ)は、ローカルメモリから取り出されるか、ネットワーク上でストリーミング配信されるか、または同様の処理がなされる。ビデオ符号化デバイスは、データ(たとえば、ビデオデータ)を符号化してメモリに記憶することができ、および/またはビデオ復号デバイスは、メモリからデータ(たとえば、ビデオデータ)を取り出して復号することができる。多くの例において、符号化と復号とは、互いに通信しないが、単に、データを符号化してメモリに入れ、および/またはメモリからデータ(たとえば、ビデオデータ)を取り出して復号するデバイスによって実行される。
【００４２】
図1の例において、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを備える。いくつかの例において、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、すでにキャプチャされているビデオデータを収めてあるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオ配信インターフェース、および/またはビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。したがって、いくつかの例において、ソースデバイス12は、ビデオデータをキャプチャするように構成されているカメラを備える。
【００４３】
ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化し得る。いくつかの例において、ソースデバイス12は、出力インターフェース22を介して符号化ビデオデータを宛先デバイス14に直接送信する。他の例において、符号化ビデオデータは、復号および/または再生のために宛先デバイス14により後からアクセスできるように記憶媒体またはファイルサーバ上にも記憶され得る。
【００４４】
図1の例において、宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。いくつかの例において、入力インターフェース28は、受信機および/またはモデムを含む。入力インターフェース28は、チャネル16上で符号化ビデオデータを受信することができる。ビデオデコーダ30は、符号化ビデオデータを復号し得る。ディスプレイデバイス32は、復号ビデオデータを表示することができる。ディスプレイデバイス32は、宛先デバイス14と一体であるか、または宛先デバイス14に外付けであってもよい。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または他のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスを備えることができる。
【００４５】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つもしくは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP:digital signal processor)、特定用途向け集積回路(ASIC: application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、ディスクリートロジック、ハードウェア、またはそれらの任意の組合せなどの、様々な適切な回路のうちのいずれかとして実装されてもよい。技術がソフトウェアで部分的に実装される場合、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技術を実行するために、1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。前記のどれか(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む)は、1つまたは複数のプロセッサであることが企図され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、これらのいずれもが、それぞれのデバイス内の複合エンコーダ/デコーダ(コーデック)の一部として統合されてもよい。
【００４６】
本開示では、一般的に、ビデオエンコーダ20がビデオデコーダ30などの別のデバイスに特定の情報を「シグナリング」すると呼ぶことがある。「シグナリング(する)」という用語は、一般的に、シンタックス要素および/または圧縮ビデオデータを復号するために使用される他のデータの通信を指すものとしてよい。そのような通信は、リアルタイムまたはほぼリアルタイムで実行され得る。代替的に、そのような通信は、ある長さの時間にわたって行われるものとしてよく、たとえば、符号化時に符号化ビットストリームでシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われ、次いで、それらの要素はこの媒体に記憶された後にいつでも復号デバイスによって取り出せる。
【００４７】
いくつかの例において、ビデオエンコーダ20およびビデオデコーダ30は、スケーラブルビデオ符号化(SVC)拡張、マルチビュービデオコーディング(MVC)拡張、MVCベース3DV拡張を含むISO/IEC MPEG-4 VisualおよびITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られている)などのビデオ圧縮規格に従って動作する。いくつかの場合において、H.264/AVCのMVCベース3DV拡張に準拠するビットストリームは、常に、H.264/AVCのMVC拡張に適合するサブビットストリームを含む。MVCの最新共同ドラフトは、「Advanced video coding for generic audiovisual services」、ITU-T勧告H.264、2010年3月において説明されている。さらに、H.264/AVCへの3次元ビデオ(3DV)コーディング拡張、すなわちAVCベース3DVを作成する取組みが進行中である。他の例において、ビデオエンコーダ20およびビデオデコーダ30は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、およびISO/IEC-4 MPEG-4 Visualに従って動作し得る。
【００４８】
他の例において、ビデオエンコーダ20およびビデオデコーダ30は、ITU-T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT-VC)によって開発された高効率ビデオコーディング(HEVC)に従って動作し得る。「HEVCドラフト仕様」と呼ばれるHEVC規格のドラフトは、Brossら、「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、第16回会合、サンノゼ、米国、2014年1月、文書番号JCTVC-P1003_v1において説明されている。HEVCのドラフト仕様は、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1003-v1.zipから入手可能である。
【００４９】
さらに、HEVCに対するスケーラブルビデオコーディング拡張を作成する取組みが進行中である。HEVCのスケーラブルビデオコーディング拡張は、SHEVCまたはSHVCと呼ばれ得る。それに加えて、VCEGおよびMPEGの3Dビデオコーディングに関する共同チーム(JCT-3C)がHEVCに基づく3DV規格を開発中である。HEVCに基づく3DV規格に対する標準化の一部は、HEVCに基づくマルチビュービデオコーデック(すなわち、MV-HEVC)の標準化を含む。HEVCに基づく3DV規格に対する標準化の一部は、HEVCに基づく3Dビデオコーデック(すなわち、3D-HEVC)の標準化を含む。3D-HEVCについては、テクスチャと深度の両方のビューに対する、コーディングユニット(CU)または予測ユニット(PU)レベルにおけるツールを含む、新しいコーディングツールが含まれ、サポートされ得る。
【００５０】
これ以降MV-HEVC WD8と呼ばれる、最近のWorking Draft (WD) of MV-HEVCは、http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v1.zipから入手可能である。SHVCという名称のHEVCへのスケーラブルな拡張も、JCT-VCによって開発中である。これ以降SHVC WD6と呼ばれる、最近のWorking Draft (WD) of SHVCは、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v1.zipから入手可能である。
【００５１】
HEVCおよび他のビデオコーディング仕様において、ビデオシーケンスは、典型的には、一連のピクチャを含む。ピクチャは、「フレーム」とも呼ばれ得る。ピクチャは、SL、SCb、およびSCrと表される、3つのサンプル配列を含み得る。SLは、ルーマサンプルの2次元配列(すなわち、ブロック)である。SCbは、Cb色度サンプルの2次元配列である。SCrは、Cr色度サンプルの2次元配列である。色度サンプルは、本明細書では「クロマ」サンプルとも呼ばれ得る。他の場合において、ピクチャは、モノクロであってもよく、またルーマサンプルの配列のみを含んでいてもよい。
【００５２】
ピクチャの符号化された表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備えるものとしてよい。モノクロピクチャまたは3つの別々の色平面を有するピクチャにおいて、CTUは、単一のコーディングツリーブロックと、コーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備えることができる。コーディングツリーブロックは、サンプルのN×Nのブロックであってよい。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)とも呼ばれ得る。HEVCのCTUは、H.264/AVCなどの、他の規格のマクロブロックに概して類似しているものとしてよい。しかしながら、CTUは、特定のサイズに必ずしも制限されず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタースキャン順に連続的に順序付けられた整数個のCTUを含み得る。
【００５３】
本開示では、「ビデオユニット」または「ビデオブロック」または「ブロック」という用語を使用して、サンプルの1つまたは複数のブロックのサンプルをコーディングするために使用される1つまたは複数のサンプルブロックとシンタックス構造とを指すものとしてよい。ビデオユニットのタイプの例は、CTU、CU、PU、変換ユニット(TU)、マクロブロック、マクロブロックパーティションなどを含み得る。いくつかの文脈において、PUの説明は、マクロブロックまたはマクロブロックパーティションの説明と入れ替えられ得る。
【００５４】
コーディングされたCTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロック上で四分木分割法を再帰的に実行して、コーディングツリーブロックをコーディングブロック、すなわち「コーディングツリーユニット」に分割することができる。コーディングブロックは、サンプルのN×Nのブロックである。CUは、ルーマサンプルのコーディングブロックを備え、またルーマサンプル配列と、Cbサンプル配列と、Crサンプル配列とを有するピクチャのクロマサンプルの2つの対応するコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える。モノクロピクチャまたは3つの別々の色平面を有するピクチャにおいて、CUは、単一のコーディングブロックと、コーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備えることができる。
【００５５】
ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに分割することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。モノクロピクチャまたは3つの別々の色平面を有するピクチャにおいて、PUは、単一の予測ブロックと、予測ブロックを予測するために使用されるシンタックス構造とを備えることができる。ビデオエンコーダ20は、CUの各PUの予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)に対する予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成し得る。
【００５６】
ビデオエンコーダ20は、イントラ予測またはインター予測を使用してPUに対する予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUを含むピクチャの復号されたサンプルに基づきPUの予測ブロックを生成し得る。
【００５７】
ビデオエンコーダ20が、CUの1つまたは複数のPUに対する予測ブロック(たとえば、ルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロック)を生成した後、ビデオエンコーダ20は、CUに対する1つまたは複数の残差ブロックを生成することができる。たとえば、ビデオエンコーダ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コーディングブロック内の対応するサンプルとの間の差を示し得る。
【００５８】
さらに、ビデオエンコーダ20は、四分木分割法を使用して、CUの残差ブロック(たとえば、ルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロック)を1つまたは複数の変換ブロック(たとえば、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック)に分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備えることができる。そこで、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックを有し得る。TUのルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。モノクロピクチャまたは3つの別々の色平面を有するピクチャにおいて、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備えることができる。
【００５９】
ビデオエンコーダ20は、1つまたは複数の変換をTUの変換ブロックに適用して、TUに対する係数ブロックを生成することができる。たとえば、ビデオエンコーダ20は、1つまたは複数の変換をTUのルーマ変換ブロックに適用して、TUに対するルーマ係数ブロックを生成することができる。係数ブロックは、変換係数の2次元配列であってよい。変換係数は、スカラー量であってよい。ビデオエンコーダ20は、1つまたは複数の変換をTUのCb変換ブロックに適用して、TUに対するCb係数ブロックを生成することができる。ビデオエンコーダ20は、1つまたは複数の変換をTUのCr変換ブロックに適用して、TUに対するCr係数ブロックを生成することができる。
【００６０】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮を提供するプロセスを指す。ビデオエンコーダ20が、係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行することができる。
【００６１】
ビデオエンコーダ20は、コーディングされたピクチャと関連データとの表現を形成するビットシーケンスを含むビットストリームを出力することができる。したがって、ビットストリームは、ビデオデータの符号化された表現を含む。ビットストリームは、ネットワーク抽象化レイヤ(NAL)ユニットのシーケンスを備えることができる。NALユニットは、NALユニット内のデータの型の指示を含むシンタックス構造とエミュレーション防止ビットとともに必要に応じて散在するローバイトシーケンスペイロード(RBSP)の形態のそのデータを含むバイトである。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニット型コードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニット型コードは、NALユニットの型を示す。RBSPは、NALユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であってよい。いくつかの場合において、RBSPはゼロ個のビットを含む。
【００６２】
異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化することができる。たとえば、異なるタイプのNALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、コーディングされたスライス、付加拡張情報(SEI)などに対して異なるRBSPをカプセル化することができる。ビデオコーディングデータに対してRBSPをカプセル化するNALユニットは(パラメータセットおよびSEIメッセージに対するRBSPとは反対に)、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれ得る。HEVC(すなわち、非マルチレイヤHEVC)では、アクセスユニットは、復号順序で連続するNALユニットのセットであってよく、ちょうど1つのコーディングされたピクチャを含み得る。コーディングされたピクチャのコーディングされたスライスNALユニットに加えて、アクセスユニットは、コーディングされたピクチャのスライスを含まない他のNALユニットも含み得る。いくつかの例において、アクセスユニットの復号の結果として、常に、復号されたピクチャをもたらす。付加拡張情報(SEI)は、VCL NALユニットからコーディングされたピクチャのサンプルを復号するために必要ではない情報を含む。SEI RBSPは、1つまたは複数のSEIメッセージを含む。
【００６３】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。それに加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも一部は基づきビデオデータのピクチャを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ20によって実行されるプロセスに相反するものとしてよい。たとえば、ビデオデコーダ30は、PUのモーションベクトルを使用して、現在のCUのPUに対する予測ブロックを決定し得る。それに加えて、ビデオデコーダ30は、現在のCUのTUの係数ブロックを逆量子化し得る。ビデオデコーダ30は、係数ブロックに対して逆変換を実行し、現在のCUのTUの変換ブロックを再構成することができる。ビデオデコーダ30は、現在のCUのPUに対する予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加えることによって現在のCUのコーディングブロックを再構成することができる。ピクチャの各CUに対してコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成することができる。
【００６４】
本開示の技術は、MV-HEVCおよび3D-HEVCを含む、マルチビューコーディングおよび/または3DV規格ならびに仕様に潜在的に適用可能である。MV-HEVCおよび3D-HEVCにおいて定義されているようなマルチビューコーディングでは、異なる視点からの同じシーンの複数のビューがあり得る。マルチビューコーディングおよびスケーラブルビデオコーディングの文脈では、「アクセスユニット」という用語は、同時インスタンスに対応するピクチャのセットを指すために使用され得る。いくつかの場合において、マルチビューコーディングおよびスケーラブルビデオコーディングの文脈では、アクセスユニットは、指定された分類規則に従って互いに関連付けられ、復号順序で連続し、同じ出力時間に関連付けられているすべてのコーディングされたピクチャのVCL NALユニットおよびその関連付けられている非VCL NALユニットを含むNALユニットのセットを含み得る。したがって、ビデオデータは、時間の経過とともに生じる一連のアクセスユニットとして概念化され得る。
【００６５】
3D-HEVCにおいて定義されているような3DVコーディングでは、「ビュー構成要素」は、単一のアクセスユニットにおけるビューのコーディングされた表現であるものとしてよい。ビュー構成要素は、深度ビュー構成要素およびテクスチャビュー構成要素を含み得る。深度ビュー構成要素は、単一のアクセスユニットにおけるビューの深度のコーディングされた表現であるものとしてよい。テクスチャビュー構成要素は、単一のアクセスユニットにおけるビューのテクスチャのコーディングされた表現であるものとしてよい。本開示では、「ビュー」は、同じビュー識別子に関連付けられているビュー構成要素のシーケンスを指すものとしてよい。
【００６６】
ビューのピクチャのセット内のテクスチャビュー構成要素および深度ビュー構成要素は、互いに対応しているものとして考えられ得る。たとえば、ビューのピクチャのセット内のテクスチャビュー構成要素は、ビューのピクチャのセット内の深度ビュー構成要素に対応していものとして考えられ、またその逆も考えられる(すなわち、深度ビュー構成要素はセット内のそのテクスチャビュー構成要素に対応し、またその逆の対応もある)。本開示で使用されているように、深度ビュー構成要素に対応するテクスチャビュー構成要素は、単一のアクセスユニットの同じビューの一部であるテクスチャビュー構成要素および深度ビュー構成要素であるものとして考えられ得る。
【００６７】
テクスチャビュー構成要素は、表示されている実際の画像コンテンツを含む。たとえば、テクスチャビュー構成要素は、ルーマ(Y)構成要素およびクロマ(CbおよびCr)構成要素を含み得る。深度ビュー構成要素は、その対応するテクスチャビュー構成要素内のピクセルの相対的深度を指示し得る。一例として、深度ビュー構成要素は、ルーマ値のみを含むグレースケール画像を含み得るが、深度ビュー構成要素内のルーマ値は、テクスチャビューのルーマ構成要素によって伝えられるピクセル強度のレベルとは反対に、ピクセルまたはピクセルのセットの深度のレベルを表し得る。言い換えれば、深度ビュー構成要素は、画像コンテンツを伝え得ず、むしろ、テクスチャビュー構成要素内のピクセルの相対的深度の尺度を与えるものとしてよい。深度を識別するためにルーマ値(たとえば、強度値)のみを使用する深度ビュー構成要素は、例示を目的として用意されており、制限するものとして考えられるべきでない。他の例において、テクスチャビュー構成要素内のピクセルの相対的深度を指示するために任意の技術が利用され得る。
【００６８】
マルチビューコーディングおよびSVCコーディングにおいて、ビットストリームは複数のレイヤを有することができる。マルチビューコーディングでは、レイヤの各々は、異なるビューに対応し得る。レイヤは、ビデオデコーダ(たとえば、ビデオデコーダ30)がレイヤ内のピクチャを他のレイヤ内のピクチャを参照することなく復号することができる場合に「ベースレイヤ」と呼ばれ得る。レイヤは、レイヤの復号が1つまたは複数の他のレイヤ内のピクチャの復号に依存する場合に「非ベースレイヤ」または「従属レイヤ」と呼ばれ得る。非ベースレイヤのうちの1つにおけるピクチャをコーディングする場合、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30など)は、ピクチャを参照ピクチャリスト内に追加することを、そのピクチャが異なるビュー内にあるが、ビデオコーダが現在コーディング中でピクチャと同じ時間インスタンス(すなわち、アクセスユニット)内にある場合に行うことができる。他のインター予測参照ピクチャと同様に、ビデオコーダは、インタービュー予測参照ピクチャを参照ピクチャリストの任意の位置に挿入することができる。
【００６９】
SVCでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれ、ビットストリームから復号されたビデオデータの表示品位を高める情報を提供することができる。SVCは、空間分解能、信号対雑音比(すなわち、品質)、または時間的速度を高めることができる。スケーラブルビデオコーディング(たとえば、SHVC)では、「レイヤ表現」は、単一のアクセスユニットにおける空間的レイヤのコーディングされた表現であるものとしてよい。説明しやすいように、本開示では、ビュー構成要素および/またはレイヤ表現を「ビュー構成要素/レイヤ表現」または、簡単に、「ピクチャ」と呼ぶことがある。
【００７０】
レイヤを実装するために、NALユニットのヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含むものとしてよく、これは「nuh_layer_id」シンタックス要素とも呼ばれ得る。異なる値を指定するnuh_reserved_zero_6bitシンタックス要素を有するNALユニットは、ビットストリームの異なるレイヤに属す。そこで、マルチビューコーディング(たとえば、MV-HEVC)、3DV(たとえば、3D-HEVC)、またはSVC(たとえば、SHVC)では、NALユニットのnuh_reserved_zero_6bitsシンタックス要素は、NALユニットのレイヤ識別子(すなわち、レイヤID)を指定する。いくつかの例において、NALユニットのnuh_reserved_zero_6bitsシンタックス要素は、NALユニットがマルチビューコーディング(たとえば、MV-HEVC)、3DVコーディング(たとえば、3D-HEVC)、またはSVC(たとえば、SHVC)におけるベースレイヤに関係する場合に0に等しい。ビットストリームのベースレイヤ内のデータは、ビットストリームの他のレイヤ内のデータを参照することなく復号され得る。NALユニットが、マルチビューコーディング、3DV、またはSVCにおけるベースレイヤに関係しない場合、nuh_reserved_zero_6bitsシンタックス要素は、非ゼロの値を有し得る。上で示されているように、マルチビューコーディングと3DVコーディングとにおいて、ビットストリームの異なるレイヤは、異なるビューに対応し得る。
【００７１】
さらに、レイヤ内のいくつかのビュー構成要素/レイヤ表現は、同じレイヤ内の他のビュー構成要素/レイヤ表現を参照することなく復号され得る。そこで、レイヤのいくつかのビュー構成要素/レイヤのデータをカプセル化するNALユニットは、レイヤ内の他のビュー構成要素/レイヤ表現の復号可能性に影響を及ぼすことなくビットストリームから取り除かれ得る。そのようなビュー構成要素/レイヤ表現のデータをカプセル化しているNALユニットを取り除くことで、ビットストリームのフレームレートを下げることができる。レイヤ内の他のビュー構成要素/レイヤ表現を参照することなく復号され得るレイヤ内のビュー構成要素/レイヤ表現のサブセットは、本明細書では「サブレイヤ」または「時間的サブレイヤ」と呼ばれ得る。
【００７２】
NALユニットは、NALユニットの時間的識別子(すなわち、TemporalIds)を指定するtemporal_idシンタックス要素を含み得る。NALユニットの時間的識別子は、NALユニットが属すサブレイヤを識別する。こうして、ビットストリームの各サブレイヤは、異なる時間的識別子を有し得る。一般に、第1のNALユニットの時間的識別子が、第2のNALユニットの時間的識別子より小さい場合、第1のNALユニットによってカプセル化されているデータは、第2のNALユニットによってカプセル化されているデータを参照することなく復号され得る。
【００７３】
上で簡単に示されているように、NALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)に対してRBSPをカプセル化することができる。VPSは、ゼロまたはそれ以上のコーディングされたビデオシーケンス(CVS)全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSは、ゼロまたはそれ以上のCVS全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSは、SPSがアクティブであるときにアクティブであるVPSを識別するシンタックス要素を含み得る。そのため、VPSのシンタックス要素は、SPSのシンタックス要素よりも一般的に適用可能であり得る。PPSは、ゼロまたはそれ以上のコーディングされたピクチャに適用されるシンタックス要素を備えるシンタックス構造である。PPSは、PPSがアクティブであるときにアクティブであるSPSを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされているときにアクティブであるPPSを示すシンタックス要素を含み得る。
【００７４】
VPS、SPS、およびPPSなどのパラメータセットは、HEVC規格の拡張に特有の拡張シンタックス構造を含み得る。たとえば、パラメータセットは、SHVC、MV-HEVC、3D-HEVC、などに特有の拡張を含み得る。拡張シンタックス構造は、HEVC規格の拡張に適用可能なシンタックス要素を含み得る。以下のTable 1(表1)は、SHVC WD6およびMV-HEVC WD8において定義されているVPS拡張の一部を示している。
【００７５】
【表１】
0006530425.tif 000002
【００７６】
上のTable 1(表1)の例、および本開示の他のシンタックスの表において、タイプ記述子ue(v)を有するシンタックス要素は、左ビットを先頭とする0次指数ゴロム(Exp-Golomb)符号化を使用して符号化された可変長符号なし整数であってよい。Table 1(表1)の例、および以下の表において、nを非負整数とする、フォームu(n)の記述子を有するシンタックス要素は、長さnの符号なし値である。
【００７７】
Table 1(表1)において定義されているVPS拡張の一部分は、1つまたは複数の出力レイヤセットを定義するシンタックス要素を含む。出力レイヤセットは、VPSで指定されているレイヤセットのうちの1つのレイヤからなるレイヤのセットであり、ここで、レイヤのセット内の1つまたは複数のレイヤは、出力レイヤであるものとして指示される。SHVC WD6において定義されているように、出力レイヤは、TargetOptLayerSetIdxが出力レイヤセットのインデックスに等しいときに出力される出力レイヤセットのレイヤである。TargetOptLayerSetIdxは、使用中の動作点のレイヤ識別子リストおよびターゲット出力レイヤのセットを指定する。動作点は、ビットストリーム内のNALユニットのサブセット(たとえば、真部分集合であるサブセット)を指すものとしてよい。さらに、SHVC WD6において定義されているように、ターゲット出力レイヤは出力されるべきレイヤであり、TargetOptLayerSetIdxがolsIdxに等しくなるようなインデックスolsIdxを有する出力レイヤセットの出力レイヤのうちの1つである。したがって、一般に、ターゲット出力レイヤセットは、出力レイヤセットのうちの特定の1つであってよい。ターゲット出力レイヤセットの各レイヤが出力される(たとえば、ビデオデコーダの出力としてもたらされる)。いくつかの場合において、ビデオデコーダ30は、ビットストリームの特定のレイヤを復号することができるが、特定のレイヤの復号されたビデオデータを出力しない。むしろ、ビデオデコーダ30は、特定のレイヤの復号されたビデオデータを使用してターゲット出力レイヤセット内にあるレイヤのビデオデータを復号することができる。
【００７８】
それに加えて、Table 1(表1)において定義されているVPS拡張の一部分は、1つまたは複数のプロファイル、層、およびレベル(PTL)シンタックス構造を定義するシンタックス要素を含む。各PTLシンタックス構造は、各コーディングされたビデオシーケンスに対するプロファイル、層、およびレベルを指定する。Table 1(表1)にさらに示されているように、VPS拡張は、それぞれの出力レイヤセットに適用可能であるPTLシンタックス構造を識別するprofile_level_tier_idxシンタックス要素を含む。このようにして、VPS拡張は、出力レイヤセットの各々に対するPTL情報を指定する。
【００７９】
一般に、「プロファイル」は、ビデオコーディング規格に存在する特徴およびツールのサブセットである(たとえば、HEVCまたはその拡張)。与えられたプロファイルによって課される範囲内で、復号されるピクチャの指定されたサイズなどのビットストリーム内のシンタックス要素のとる値に応じて、エンコーダおよびデコーダの性能に非常に大きい変動を要求することが依然として可能である。多くの用途において、特定のプロファイル内のシンタックスのすべての仮想的使用を取り扱うことができるデコーダを実装することは実用的でも経済的でもあり得ない。この問題を取り扱うために、「層」および「レベル」が、各プロファイル内で指定される。
【００８０】
いくつかの例において、レベルは、ビデオコーディング規格のシンタックス要素および変数の取り得る値に対する制約の定義済みセットである(たとえば、HEVCまたはその拡張)。さらに、いくつかの例において、層は、ビットストリーム内のシンタックス要素の値または変数の値に課されるレベル制約の指定されたカテゴリであり、ここで、レベル制約は、層内にネストされ、特定の層およびレベルに準拠するデコーダは、同じ層またはそのレベルもしくはそのレベルの下の任意のレベルの下位の層に準拠するすべてのビットストリームを復号することができる。したがって、層のレベルは、ビットストリーム内のシンタックス要素の値または変数の値に課される制約の指定されたセットである。これらの制約は、値に対する単純な制限であってもよい。あるいは、これらの制約は、値の算術的な組合せの制約の形式(たとえば、1秒あたりに復号されるピクチャの数と、ピクチャの高さと、ピクチャの幅との積)を取り得る。下位の層に対して指定されたレベルは、上位の層に対して指定されたレベルよりも強く制約される。いくつかの文脈において、「レベル」という用語は、スケーリングの前の変換係数の値を指すためにも使用され得る。
【００８１】
上のTable 1(表1)にさらに示されているように、VPS拡張はvps_vui( )シンタックス構造を含み得る。vps_vui( )シンタックス構造は、ビデオユーザビリティ情報(VUI)パラメータを含む。SHVC WD6の段落F.7.3.2.1.4では、vps_vui( )シンタックス構造のシンタックスを記述している。HEVCドラフト仕様において指定されているように、VUIパラメータは、復号プロセスによるルーマまたはクロマサンプルを構築するためには必要でない。準拠しているデコーダは、この仕様への出力順序準拠についてこの情報を処理する必要はない(出力順序準拠の指定については付録Cを参照)。いくつかのVUIパラメータは、ビットストリーム準拠および出力タイミングデコーダ準拠をチェックする必要がある。いくつかの場合において、VUIパラメータは、SPSでも指定され得る。
【００８２】
vps_vui( )シンタックス構造は、vps_vui_bsp_hrd_parameters( )シンタックス構造を含む。vps_vui_bsp_hrd_parameters( )シンタックス構造は、ビットストリームパーティションに対する仮想参照デコーダ(HRD)パラメータを指定するシンタックス要素を含む。SHVC WD6において定義されているように、ビットストリームパーティションは、分割に従ってビットストリームのサブセットである、NALユニットストリームまたはバイトストリームの形態の、ビット列である。
【００８３】
少なくともいくつかのビデオコーディング規格は、ビデオバッファリングモデルを指定する。H.264/AVCおよびHEVCにおいて、バッファリングモデルは、「仮想参照デコーダ」または「HRD」と呼ばれる。HEVCドラフト仕様において、HRDは、付録Cにおいて説明されている。HRDは、復号のためにデータがどのようにバッファリングされ、出力のために復号されたデータがどのようにバッファリングされるかを記述するものである。たとえば、HRDは、コーディングピクチャバッファ(「CPB」)、復号ピクチャバッファ(「DPB」)、およびビデオ復号プロセスの動作を記述する。CPBは、HRDによって指定された復号順序によるアクセスユニットを含む先入れ先出しバッファである。DPBは、参照、出力順序変更、またはHRDによって指定された出力遅延のための復号されたピクチャを保持するバッファである。CPBおよびDPBの挙動は、数学的に指定され得る。HRDは、タイミング、バッファサイズ、およびビットレートに制約を直接的に課すことができる。さらに、HRDは、様々なビットストリームの特性および統計量に制約を間接的に課すことができる。
【００８４】
H.264/AVCおよびHEVCにおいて、ビットストリーム準拠およびデコーダ準拠は、HRD仕様の一部として指定される。言い換えれば、HRDモデルは、ビットストリームが規格に準拠しているかどうかを決定するための試験、およびデコーダが規格に準拠しているかどうかを決定するための試験を指定する。HRDは、ある種のデコーダとして命名されているけれども、ビデオエンコーダは、典型的には、ビットストリーム準拠を保証するためにHRDを使用するが、ビデオデコーダは、典型的には、HRDを必要としない。
【００８５】
H.264/AVCおよびHEVCは、両方とも、ビットストリームまたはHRD準拠の2つのタイプ、すなわち、タイプIおよびタイプIIを指定する。タイプIのビットストリームは、ビットストリーム内のすべてのアクセスユニットに対するVCL NALユニットおよびフィラーデータNALユニットのみを含むNALユニットストリームである。少なくともいくつかの例において、NALユニットストリームは、NALユニットのシーケンスである。タイプIIのビットストリームは、ビットストリーム内のすべてのアクセスユニットに対するVCL NALユニットおよびフィラーデータNALユニットに加えて、フィラーデータNALユニット以外の追加の非VCL NALユニット、ならびにNALユニットストリームからバイトストリームを形成するすべてのleading_zero_8bits、zero_byte、start_coded_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素のうちの少なくとも1つを含むNALユニットストリームである。
【００８６】
デバイスが、ビットストリームがビデオコーディング規格に準拠しているかどうかを決定するビットストリーム準拠試験を実行するときに、デバイスは、ビットストリームの動作点を選択し得る。次いで、デバイスは、選択された動作点に適用可能なHRDパラメータのセットを決定し得る。デバイスは、選択された動作点に適用可能なHRDパラメータのセットを使用して、HRDの挙動を構成することができる。より具体的には、デバイスは、HRDパラメータの適用可能なセットを使用して、仮想ストリームスケジューラ(hypothetical stream scheduler)(HSS)、CPB、復号プロセス、DPBなどの、HRDの特定の構成要素の挙動を構成し得る。その後、HSSは、特定のスケジュールに従ってビットストリームのコーディングされたビデオデータをHRDのCPB内に注入することができる。さらに、デバイスは、CPB内のコーディングされたビデオデータを復号する復号プロセスを呼び出すことができる。復号プロセスは、復号されたピクチャをDPBに出力することができる。デバイスが、HRDを通じてデータを移動するときに、デバイスは、制約の特定のセットが満たされたままであるかどうかを決定し得る。たとえば、デバイスは、HRDが選択された動作点を復号している間にオーバーフローまたはアンダーフロー条件がCPBまたはDPBにおいて生じているかどうかを決定し得る。デバイスは、この方式でビットストリームの各動作点を選択し、処理することができる。ビットストリームの動作点が、制約に違反することを引き起こさない場合、デバイスは、ビットストリームがビデオコーディング規格に準拠していると決定し得る。
【００８７】
H.264/AVCおよびHEVCは両方とも、2つのタイプのデコーダ準拠、すなわち、出力タイミングデコーダ準拠および出力順序デコーダ準拠を指定する。特定のプロファイル、層、およびレベルへの準拠を主張するデコーダは、HEVCなどの、ビデオコーディング規格のビットストリーム準拠要求条件に準拠するすべてのビットストリームを正常に復号することができる。
【００８８】
デバイスがデコーダ準拠試験を実行して被試験デコーダ(decoder under test)(DUT)がビデオコーディング規格に準拠しているかどうかを決定するときに、デバイスは、HRDとDUTの両方に対して、ビデオコーディング規格に準拠するビットストリームを提供することができる。HRDは、ビットストリーム準拠試験に関して上で説明されている方式でビットストリームを処理することができる。デバイスは、DUTによって出力された復号されたピクチャの順序がHRDによって出力された復号されたピクチャの順序と一致する場合にDUTがビデオコーディング規格に準拠していると決定し得る。さらに、デバイスは、DUTが復号されたピクチャを出力する際のタイミングがHRDが復号されたピクチャを出力する際のタイミングと一致する場合にDUTがビデオコーディング規格に準拠していると決定し得る。
【００８９】
H.264/AVCおよびHEVC HRDモデルにおいて、復号またはCPB取出しは、アクセスユニットベースであるものとしてよい。すなわち、HRDは、一度で完全なアクセスユニットを復号し、CPBから完全なアクセスユニットを取り出すと仮定される。さらに、H.264/AVCおよびHEVC HRDモデルにおいて、ピクチャ復号は瞬時に行われると仮定される。ビデオエンコーダ20は、ピクチャタイミングSEIメッセージにおいて、アクセスユニットの復号を開始する復号時間をシグナリングすることができる。実際の用途では、準拠しているビデオデコーダが厳密にシグナリングされた復号時間に従ってアクセスユニットの復号を開始する場合、特定の復号されたピクチャを出力する可能な最も早い時間は、その特定のピクチャの復号時間にその特定のピクチャを復号するのに必要な時間を加えた時間に等しい。しかしながら、現実世界では、ピクチャを復号化するのに必要な時間はゼロに等しいことはあり得ない。
【００９０】
HRDパラメータは、HRDの様々な態様を制御し得る。言い換えれば、HRDは、HRDパラメータに依存し得る。HRDパラメータは、初期CPB取出し遅延、CPBサイズ、ビットレート、初期DPB出力遅延、およびDPBサイズを含み得る。ビデオエンコーダ20は、これらのHRDパラメータをビデオパラメータセット(VPS)および/またはシーケンスパラメータセット(SPS)において指定されているhrd_parameters( )シンタックス構造でシグナリングし得る。個別のVPSおよび/またはSPSは、HRDパラメータの異なるセットに対して複数のhrd_parameters( )シンタックス構造を含み得る。いくつかの例において、ビデオエンコーダ20は、HRDパラメータをバッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージでシグナリングし得る。
【００９１】
ビットストリームの動作点は、レイヤ識別子のセット(すなわち、nuh_layer_id値としても知られている、nuh_reserved_zero_6bits値のセット)および時間的識別子に関連付けられている。動作点は、その動作点に関連付けられている各NALユニットを含み得る。動作点は、元のビットストリームと異なるフレームレートおよび/またはビットレートを有し得る。これは、動作点がいくつかのピクチャおよび/または元のビットストリームのデータの一部を含み得ないからである。したがって、元のビットストリームを処理するときにビデオデコーダ30が特定の速度でCPBおよび/またはDPBからデータを取り出したとすれば、また動作点を処理するときにビデオデコーダ30が同じ速度でCPBおよび/またはDPBからデータを取り出したとすれば、ビデオデコーダ30がCPBおよび/またはDPBから取り出すデータが多すぎたり少なすぎたりすることがある。したがって、ビデオエンコーダ20は、異なる動作点に対してHRDパラメータの異なるセットをシグナリングし得る。たとえば、ビデオエンコーダ20は、VPS内に、異なる動作点に対するHRDパラメータを含む複数のhrd_parameters( )シンタックス構造を含み得る。
【００９２】
以下のTable 2(表2)は、HEVCにおけるhrd_parameters( )シンタックス構造に対する例示的なシンタックスである。
【００９３】
【表２】
0006530425.tif 000003
【００９４】
いくつかの例において、ビデオデコーダ30は、複数の処理コアを備えている。処理コアの各々は、ASICまたはマイクロプロセッサなどの、独立した処理ユニットを備える。処理コアの各々は、単一レイヤデコーダを実装し得る。単一レイヤデコーダは、ビットストリームの単一のレイヤに属すNALユニットを復号することができるビデオコーダである。そのような例では、ビデオデコーダ30は複数の処理コア、したがって複数の単一レイヤデコーダを備えるので、ビデオデコーダ30は、複数のレイヤを並行して復号することができるものとしてよい。いくつかの場合おいて、ビデオデコーダ30の個別のハードウェアコアは、複数のレイヤを復号することができるものとしてよい。
【００９５】
異なる処理コアは、異なる機能を有し得る。たとえば、異なる処理コアは、異なるプロファイル、層、またはレベルに属すビデオデータを復号することができるものとしてよい。たとえば、ビデオデコーダ30の第1の処理コアは、第2のレベルではなく、第1のレベルに属すビデオデータを処理することができるものとしてよい。この例において、ビデオデコーダ30の第2の処理コアは、第1のレベルおよび第2のレベルに属すビデオデータを処理することができるものとしてよい。一般に、上位のプロファイル、層、およびレベルに属すビデオデータを復号することができる処理コアは、下位のプロファイル、層、およびレベルに属すビデオデータを復号することのみができる処理コアよりも複雑であり、したがって高価である。したがって、ビデオデコーダ30のメーカーは、所望のタスクを取り扱うのに適した最も低い機能を有する処理コアをビデオデコーダ30に備えることを選択し得る。
【００９６】
Wangら、「MV-HEVC/SHVC HLS: On level definition」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 第17回会合:バレンシア、スペイン、2014年3月27〜4月4日、文書番号JCTVC-Q0145(これ以降「JCTVC-Q0145」)では、SHVCにおけるレベル定義に関係するいくつかの問題点について説明している。
【００９７】
第1に、解像度720pの4つよりも多い信号対雑音比(SNR)層(または同等の数のルーマピクセル、たとえば、空間的レイヤおよびSNRレイヤが組み合わされているより多くのレイヤ)が必要な場合、Level 5以上が使用されなければならない。その結果、CtbSizeYの値は、32または64に等しくなければならない(一般的限度の項目eにより)。720p以下の解像度では、この制限があるため、16×16などのより小さいコーディングツリーブロックサイズの使用が許されず、したがって、その結果、最適以下のコーディングがもたらされ得る。
【００９８】
第2に、現在のレベル定義により、SHVCデコーダがHEVC Level 3.1デコーダの4コアからなる仕方で実装され、720pの4つのSNRレイヤを復号することができる場合、これはLevel 4以上に準拠すると言われなければならないであろう。その結果、デコーダは、Level 4ビットストリームを復号することができる必要があり得る。しかしながら、上位レベルのシンタックス変更のみでは(すなわち、ハードウェアコアへの変更なし)、そのようなデコーダは、解像度1080pの2つのSNRレイヤを有するSHVC Level 4ビットストリームを復号化することができない。
【００９９】
第3に、SHVCデコーダが、複数の既存のHEVCデコーダコアを再利用することによって実装されないが、1080pの単一レイヤHEVCビットストリームと720pの2レイヤSHVCビットストリームの両方を復号できる仕方で実装される場合、現在のレベル定義に従って、これはLevel 3.1とラベル付けされる。しかしながら、他の機能の表現が見つからない。
【０１００】
第4に、現在のレベル定義により、SHVCデコーダがHEVC Level 3.1デコーダの4コアからなる仕方で720pの4つのSNRレイヤを復号できるように実装される場合、これはLevel 4以上に準拠すると言われるであろう。その結果、各エンハンスメントレイヤピクチャ(enhancement-layer picture)は、3つよりも多いタイル行および3つよりも多いタイル列、たとえば、5つのタイル行および5つのタイル列を有することができ、各タイルはルーマサンプル256個分の幅と、ルーマサンプル144個分の高さを有する。しかしながら、これは、Level 3.1の制限を超え、その結果、エンハンスメントレイヤを復号するためのデコーダコアは問題を抱えることになる。
【０１０１】
第5に、HEVCドラフト仕様の条項A.4.1のすべての項目は、各レイヤに適用されるように現在指定されている。しかしながら、これらの項目のうちのいくつかは、各レイヤに直接的に適用可能ではない。DPBサイズに関する項目dについて、SPSシンタックス要素は、エンハンスメントレイヤに対しては適用可能でない。それに加えて、SHVC WD6におけるDPBは、共有サブDPB設計(shared-sub-DPB design)であり、したがって、項目dは各レイヤに直接適用され得ない。CPBサイズに関する項目hおよびiについて、ビットストリーム特有のCPB操作については、パラメータは各レイヤに適用され得ない。
【０１０２】
第6に、CPBサイズに対するビットストリーム特有の制限(HEVCドラフト仕様の条項A.4.1における項目hおよびiによる)が必要である。しかしながら、HEVCドラフト仕様の条項A.4.1における項目hおよびiは、ビットストリームレベルでは直接的に適用され得ないが、それは、直接適用された場合、単一レイヤビットストリームに対する同じCPBサイズ限度は、マルチレイヤビットストリームに対する限度ともなるからである。これは、レイヤの数までスケーラブルではなく、多数のレイヤがあるときに画質の低下を許すだけである。
【０１０３】
第7に、HEVCドラフト仕様の条項A.4.2における項目b、c、d、g、h、i、およびjによる制限は、レイヤ特有であるとのみ現在指定されている。しかしながら、これらの項目によるビットストリーム特有の制限は、そのレイヤ特有の対応するものが指定されているかどうかに関係なく、指定されるべきである。
【０１０４】
JVTVC-Q0145では、レベルおよびデコーダ機能を定義するアプローチ、さらには上記の問題点を解決するための他の変更を提案していた。JCTVC-Q0145における設計は、少なくとも次の問題に関連付けられている。第1に、複数のHEVC単一レイヤデコーダが異なる機能、たとえば、異なるプロファイル、層、またはレベルを有している場合にハードウェアコアを変更することなく(たとえば、ハードウェアコアの機能を修正することなく)複数のHEVC単一レイヤデコーダに基づき各々が構築される設計は、SHVC/MV-HEVCデコーダについては最適以下である。第2に、レベルは、制限に関して定義され得る。MV-HEVC WD8およびSHVC WD6は、ビットストリームを復号するときに特定の値を有するか、または有しない、シンタックス要素もしくは変数に関してこれらの制限の多くを定義している。言い換えれば、レベル制限のいくつか(たとえば、ビットレートおよびサンプルレート)は、ビットレート特有であるものとして指定される。しながら、1つのHEVC単一レイヤデコーダを、ハードウェアコアを変更することなくSHVC/MV-HEVCデコーダの一部にすることを可能にし、レイヤのサブセット(すなわち、1つまたは複数のレイヤ、ただし、出力レイヤセットのすべてのレイヤではなく)を復号するために、そのようなレベル制限は、レイヤのサブセットに特有である必要があり得る。
【０１０５】
本開示の様々な技術による様々な特徴の概要が、以下に提示されている。本開示の1つまたは複数の例によるいくつかの詳細な実装は、本開示の後の節に提示されている。以下で指摘されている特徴のうちのいくつかは、独立して適用されてよく、また以下で指摘されている特徴のうちのいくつかは、当業者によって理解されるように組合せで適用されてよい。
【０１０６】
本開示の例示的な一技術は、各出力レイヤセットに対するパーティションへのレイヤの1つまたは複数の分割方式のシグナリングを行い、各分割方式は合併が出力レイヤセットを形成する非連結パーティションのセットを含み、また各パーティションは1つまたは複数のレイヤを含む。言い換えれば、出力レイヤの各分割方式は、出力レイヤセットのレイヤを重なり合わないパーティションに分割する異なる仕方を指定する。いくつかの例において、パーティションは、レイヤセットの代わりに出力レイヤセットに関連付けられる。
【０１０７】
いくつかの例において、分割方式およびパーティションユニットは、次のように定義される。出力レイヤセットは、1つまたは複数の分割方式を有し得る。出力レイヤセットの分割方式は、出力レイヤセット内のレイヤを1つまたは複数のパーティションに分割する。出力レイヤセット内の各レイヤは、分割方式においてちょうど1つのパーティションに属すものとする。
【０１０８】
したがって、一例において、ビデオエンコーダ20は、ビデオデータの符号化された表現を含むビットストリームを生成する。ビットストリームを生成する一環として、ビデオエンコーダ20は、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含める。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併することで出力レイヤセットを形成する非連結なパーティションのそれぞれのセットを指定する。この例において、非連結パーティションのそれぞれのセットの各それぞれのパーティションは1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなる。さらに、ビデオエンコーダ20は、ビットストリームを出力する。
【０１０９】
類似の例において、ビデオデコーダ30は、ビデオデータの符号化された表現を含むビットストリームを復号する。この例において、ビットストリームは、複数のレイヤを備える。この例においてビットストリームを復号する一環として、ビデオデコーダ30は、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得する。いくつかの例において、ビデオデコーダ30は、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号し、特定の分割方式は1つまたは複数の分割方式のうちの1つである。
【０１１０】
さらに、いくつかの例において、ビデオエンコーダ20は、ビットストリーム内に、複数の出力レイヤセットを指示するシンタックス要素を含み得る。複数の出力レイヤセットのうちの各それぞれの出力レイヤセットについて、ビデオエンコーダ20は、ビットストリーム内に、それぞれの出力レイヤセットに対する1つまたは複数の分割方式を指示するシンタックス要素を含み得る。類似の例において、ビデオデコーダ30は、ビットストリームから、複数の出力レイヤセットを指示するシンタックス要素を取得することができ、複数の出力レイヤセットは第1の出力レイヤセットを含む。この例において、複数の出力レイヤセットのうちの各それぞれの出力レイヤセットについて、ビデオデコーダ30は、ビットストリームから、それぞれの出力レイヤセットに対する1つまたは複数の分割方式を指示するシンタックス要素を取得し得る。
【０１１１】
本開示のいくつかの例によれば、「分割方式」および「パーティションユニット」という用語は、次の定義を有する。
分割方式:  出力レイヤセット内の各レイヤが分割方式のちょうど1つのパーティションに含まれ、分割方式の各パーティションが1つまたは複数のレイヤを含むような1つまたは複数のパーティションへの出力レイヤセット内のレイヤの分割。
パーティションユニット:  分割方式に従ったNALユニットのセットを含むアクセスユニットのサブセット。
【０１１２】
上で指示されているように、VPS拡張は、各それぞれの出力レイヤセットに対するそれぞれのPTL情報を指定し得る。たとえば、VPS拡張は、各それぞれの出力レイヤセットについて、それぞれの出力レイヤセットに対するPTLシンタックス構造を識別するそれぞれの出力レイヤセットに対するprofile_level_tier_idxシンタックス要素を含み得る。それぞれの出力レイヤセットに対するPTLシンタックス構造は、それぞれの出力レイヤセットについてPTL情報を指定する。
【０１１３】
ビデオデコーダ30は、出力レイヤセットのPTL情報を使用して、ビデオデコーダ30が出力レイヤセット復号することができるかどうかを決定し得るので、出力レイヤセットのPTL情報は、典型的には、全体として出力レイヤセットを復号するために必要な最低のプロファイル、層、およびレベルを指定する。しかしながら、出力レイヤセットのいくつかのパーティションのプロファイル、層、およびレベルは、全体として出力レイヤセットのプロファイル、層、およびレベルよりも低くなり得る。言い換えれば、出力レイヤセットのプロファイル、層、およびレベルは、出力レイヤセットの分割方式におけるパーティションの最高のプロファイル、層、およびレベルであってよく、ここで、出力レイヤセットのレイヤの各々は、1つのパーティションに属す。
【０１１４】
したがって、出力レイヤセットの異なるパーティションが、異なるPTL情報を有するときに、出力レイヤセットに対するPTL情報は、出力レイヤセットのパーティションのPTL情報の多様性を表現するのに十分とは言えないことがある。本開示の1つのまたは複数の技術は、各パーティションに対するプロファイル、層、およびレベルのシグナリングをもたらし得る。たとえば、ビットストリームでシグナリングされる各それぞれの分割方式の各それぞれのパーティションについて、ビデオエンコーダ20は、ビットストリーム内に、それぞれのパーティションに対するプロファイル、層、およびレベル(PTL)情報を含み得る。同様に、ビットストリームでシグナリングされる各それぞれの分割方式の各それぞれのパーティションについて、ビデオデコーダ30は、ビットストリームから、それぞれのパーティションに対するそれぞれのPTL情報を指示するそれぞれのシンタックス要素(たとえば、profile_level_tier_partition_idx)を取得することができる。
【０１１５】
いくつかの例において、ビデオデコーダ30は、分割方式のパーティションに対するPTL情報に基づき、1つまたは複数の分割方式から分割方式を決定する。さらに、いくつかの例において、分割方式は、ビットストリームをデコーダに送信するために使用されるネットワークの状態に基づき決定される。ビデオデコーダ30は、それぞれのハードウェアコアを使用して決定する分割方式の各それぞれのパーティションを復号し得る。ハードウェアコアの各々は、それぞれの単一レイヤデコーダを実装し得る。いくつかの例において、ハードウェアコアのうちの個別のハードウェアコアは、複数のレイヤを復号する(たとえば、マルチレイヤデコーダを実装する)。さらに、異なるハードウェアコアは、異なる機能を有し得る。たとえば、ビデオデコーダ30の複数のハードウェアコアのうちの少なくとも第1のハードウェアコアは、ビデオデコーダ30の複数のハードウェアコアのうちの第2のハードウェアコアからの異なるプロファイル、層、またはレベルをサポートすることができる。したがって、一例において、ビデオデコーダ30は、第1のハードウェアコアおよび第2のハードウェアコアを備え得る。この例において、第1のハードウェアコアは、レベル3デコーダ(すなわち、HEVC Level 3以下を復号することができるデコーダ)を実装することができ、第2のハードウェアコアは、レベル2デコーダ(すなわち、HEVC Level 2以下を復号することができるデコーダ)を実装することができる。この例において、第1のパーティションのPTL情報が、レベル3以上のデコーダによって第1のパーティションが復号され得ることを指示する場合、またPTL情報が、レベル2以上のデコーダによって第2のパーティションが復号され得ることを指示する場合、ビデオデコーダ30は、第1のハードウェアコアを使用して第1のパーティションを復号することができ、また第2のハードウェアコアを使用して第2のパーティションを復号することができる。いくつかの場合において、より多くのハードウェアコアのうちの1つを備えるマルチレイヤビデオデコーダがパーティションを復号し、デコーダコアのうちの少なくとも1つが指定されたスケーラブルプロファイルのうちの1つ(たとえば、Scalable MainまたはScalable Main 10)に準拠しているときに、ピクチャのリサンプリングまたはアップサンプリングを実行する機能が含まれ得る。このリサンプリング機能は、スケーラブルプロファイルを復号することができる各コアで実装されるか、またはマルチレイヤデコーダ内の共通ブロックとして実装され得る。
【０１１６】
上で簡単に説明されているように、ビデオエンコーダ20は、VPS内に、出力レイヤセットを識別するシンタックス要素を含み得る。したがって、出力レイヤセットは、VPSでシグナリングされ得る。いくつかの例において、出力レイヤセットは、外部手段によってもシグナリングされ得る。外部手段は、ビデオビットストリーム以外の何らかのメカニズムであってよい。したがって、外部手段によってシグナリングされ、ビットストリームの出力レイヤを含む出力レイヤセットは、必ずしもビットストリームでシグナリングされるわけではない。
【０１１７】
本開示の1つまたは複数の技術により、各出力レイヤセットの各それぞれの分割方式について、ビットストリームのVPS VUIまたはSEIメッセージは、それぞれの分割方式に対するHRDパラメータセットを識別し得る。したがって、本開示のいくつかの例において、VPSで、または外部手段によってシグナリングされる各出力レイヤセットに対する各分割方式に対するHRDパラメータは、VPS VUIまたはSEIメッセージでシグナリングされる。HRDパラメータセットは、各分割方式について識別されるので、ビデオデコーダ30または別のデバイスは、分割方式に従って分割されたときにそのビットストリームが準拠するビットストリームであるかどうかを試験するために分割方式に対してHRDパラメータを使用することができるものとしてよい。
【０１１８】
そのような一例において、ビデオエンコーダ20は、ビデオデータの符号化された表現を含むビットストリームを生成する。この例において、ビットストリームは、複数のレイヤを備える。この例においてビットストリームを生成する一環として、ビデオエンコーダ20は、ビットストリーム内に、出力レイヤセットに対する1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含める。この例において、出力レイヤセットは、複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなる。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、1つまたは複数のパーティションへの出力レイヤセットの分割を指定し、ここにおいて、出力レイヤセット内の各レイヤは、それぞれの分割方式においてちょうど1つのパーティションに属す。さらに、この例においてビットストリームを生成する一環として、ビデオエンコーダ20は、各それぞれの分割方式について、ビットストリーム内のSEIメッセージまたはビットストリーム内のVPS内のVUIに、それぞれの分割方式に対するHRDパラメータセットを指示するシンタックス要素のそれぞれのセットを含めることができる。ビデオエンコーダ20は、ビットストリームを出力し得る。
【０１１９】
類似の例において、ビデオエンコーダ20またはビデオデコーダ30などのビデオ処理デバイスは、ビデオデータの符号化された表現を含むビットストリームを復号し得る。この例において、ビットストリームは、複数のレイヤを備える。この例においてビットストリームを復号する一環として、ビデオ処理デバイスは、ビットストリームから、出力レイヤセットに対する1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得する。それに加えて、各それぞれの分割方式について、ビデオデコーダ30は、ビットストリーム内のSEIメッセージまたはビットストリーム内のVPS内のビデオユーザビリティ情報(VUI)から、それぞれの分割方式に対するHRDパラメータセットのそれぞれのセットを取得し得る。それぞれの分割方式の各それぞれのパーティションについて、ビデオ処理デバイスは、それぞれの分割方式に対するHRDパラメータに基づき、ビデオコーディング規格への準拠に対するそれぞれのパーティションを試験する。
【０１２０】
SHVC WD6、MV-HEVC WD8、およびHEVCドラフト仕様などの、少なくともいくつかの規格文書において、プロファイル、層、およびレベルは、レベル限度および制限に関して定義される。レベル限度は、シンタックス要素または変数の値に対して限度を指定することができる。制限は、要求条件または制約を指定し得る。たとえば、JCTV3V-H1002は、「Stereo Main」プロファイルを定義し、ほかにも制限はあるが中でもとりわけ、ビットストリームがnuh_layer_idがiに等しくViewScalExtLayerFlag[ i ]が1に等しい1つのレイヤを含むことを要求する制限を含む。SHVC WD6、MV-HEVC WD8、およびHEVCドラフト仕様において指定されているレベル限度および制限の多くは、ビットストリームに適用可能である。たとえば、MV-HEVC WD8の段落G.11.1.2では、「Stereo Main」プロファイルを説明し、強調を加えて、「Bitstreams conforming to the Stereo Main profile shall obey the following constraints...」を指定している。
【０１２１】
しかしながら、本開示のいくつかの例において、異なるビットストリームパーティションは、異なるPTL情報を有していてよい。異なるPTL情報を有する異なるビットストリームパーティションをサポートするために、レベル限度および制限の定義は、ビットストリームの代わりにパーティションに関して表現され得る。したがって、本開示のいくつかの例示的な技術によれば、自然にレイヤ特有であるピクチャ幅、ピクチャ高さ、およびサブデコードピクチャバッファ(sub-decoded picture buffer)(DPB)サイズに対する3つを除く、すべてのレベル限度および制限は、パーティション特有であるものとして指定される。たとえば、ピクチャ幅、ピクチャ高さ、およびサブDPBサイズに対する限度および制限を除く、プロファイル、層、またはレベルのすべてのレベル限度および制限は、パーティション特有であるものとして定義される。
【０１２２】
上で指摘されているように、サブDPBサイズ制限は、自然にレイヤ特有である。詳細に述べるため、DPBはサブDPBに事実上分割され得る。各レイヤのピクチャは別々のサブDPBに記憶され、各サブDPBは1つのレイヤを含む。たとえば、出力レイヤセットは2つのレイヤを含み、DPBは2つのサブDPBに分割されてよく、第1のサブDPBは第1のレイヤを含み、第2のサブDPBは第2のレイヤを含む。DPBサイズを全体として指定する代わりに、サブDPBサイズ(各レイヤに必要である)は、ビットストリームで指定される。そのような例において、レベル限度は、DPB全体のサイズにいくつかの制限を間接的に課す。
【０１２３】
本開示の1つまたは複数の技術によれば、1つまたは複数の追加の制限が導入される。たとえば、可能な制限の1つは、各出力レイヤセットについて、ただ1つのパーティションを含むただ1つの分割方式があるものとし、そのパーティションは出力レイヤセット内にすべてのレイヤを含む。各分割方式は、配信方式の柔軟性を与えている、すなわち、それらのレイヤは一緒に配信され得る。すべてのレイヤが1つのパーティション内にあるときに、異なる配信方式を有することができるただ1つの方法は、たとえば、異なるビットレートを有することによるものである。その結果、この制約は、何らかの追加のシンタックスを減らす助けとなる。
【０１２４】
別の例示的な制限において、パーティションのピクチャサイズの総和は、パーティションのレベルに対して指定された最大ルーマサンプルよりも小さくなるように制限される。この制限は、複数のレイヤを有する1つのパーティションが単一のコアによって復号される場合に、現在のコアのDPB全体のサイズを超えないことを保証し得る。さらに、この制限は、すべてのレイヤのピクチャの合計サイズが、単一レイヤデコーダによって復号可能であった可能性のある1つのレイヤのピクチャのサイズを超えないことを保証し得る。この制限は、マルチレイヤを目的とする単一レイヤコアをより容易に拡張することを可能にし得る(たとえば、潜在的に追加のメモリを加えなくてよい)。
【０１２５】
別の例示的な制限において、出力レイヤセットに関連付けられているプロファイル、層、およびレベルのシグナリングされる三組みも、出力レイヤセット内のすべてのレイヤを含むパーティションに関連付けられている。
【０１２６】
さらに、本開示の例示的ない技術によれば、デコーダの復号機能は、プロファイル、層、およびレベルの三組みのリストに準拠しているものとして表現される。いくつかの例において、リスト内のエントリの数は、マルチレイヤデコーダを構築するために使用される単一レイヤデコーダの数を指示し、プロファイル、層、およびレベルの各三組みは、単一レイヤデコーダのうちの1つのデコーダのプロファイル、層、およびレベルを指示する。
【０１２７】
したがって、一例において、ビデオデコーダ30または別のデバイスなどの、ビデオ処理デバイスは、三組みエントリのリストに基づき、マルチレイヤビデオデコーダ(たとえば、ビデオデコーダ30)が、マルチレイヤビデオデータの符号化された表現を含むビットストリームを復号することができるかどうかを決定することができる。リスト中の三組みエントリの数は、マルチレイヤビデオデコーダ内の単一レイヤデコーダの数以下であるものとしてよい。三組みエントリのリスト内の各それぞれの三組みエントリは、マルチレイヤビデオデコーダ内のそれぞれの単一レイヤデコーダに対するプロファイル、層、およびレベルを指示する。いくつかの例において、ビデオ処理デバイスは、パーティションが単一レイヤデコーダのうちの少なくとも1つによって復号され得ることを分割方式の各パーティションのPTL情報が指示する分割方式をビットストリームが指定することを決定することによって、マルチレイヤデコーダがビットストリームを復号することができると決定することができる。マルチレイヤビデオデコーダがビットストリームを復号することができることに基づき、マルチレイヤビデオデコーダは、ビットストリームを復号することができる。
【０１２８】
本開示のいくつかの例において、プロファイル、層、およびレベルの三組みのリストに準拠するデコーダは、分割方式の各パーティションについて、マルチレイヤデコーダの単一レイヤデコーダのうちの1つがテンションを復号するために割り当てられ得るという条件を満たす少なくとも1つの分割方式がある準拠する出力レイヤセットを復号することができる必要がある。単一レイヤデコーダが復号対象のパーティションを割り当てられたときに、単一レイヤデコーダは、そのパーティションを復号し得る。いくつかの例において、パーティションの各々は、単一レイヤデコーダのうちの異なる1つに割り当てられ得る。他の例において、2つまたはそれ以上のパーティションは、単一レイヤデコーダのうちの単一の1つに割り当てられ得る。さらに、いくつかの例において、デコーダによってアドバタイズされるPTL三組みの数および各三組みとコアとのそれらの関連付けは、唯一可能なものである。そのような例において、デコーダは、内部実装(たとえば、1つだけのスーパーコア)を有するが、それでも複数のPTL三組みをアドバタイズし得る。
【０１２９】
したがって、いくつかの例において、ビデオデコーダ30または別のデバイスなどの、ビデオ処理デバイスは、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得し得る。ビデオデコーダ30などの、マルチレイヤビデオデコーダが、ビットストリームを復号することができるかどうかを決定するために、ビデオ処理デバイスは、満たされる条件に基づき、マルチレイヤビデオデコーダがビットストリームを復号することができると決定し得る。この例において、その条件は、1つまたは複数の分割方式のうちに好適な分割方式があることに基づき満たされる。好適な分割方式の各それぞれのパーティションについて、マルチレイヤビデオデコーダの単一レイヤデコーダのうちの1つは、それぞれのパーティションを復号するように割り当てられ得る。
【０１３０】
本開示の別の例示的な技術によれば、ビットストリーム準拠試験は、復号されたピクチャ、およびパーティション内のレイヤのすべての直接的または間接的参照レイヤに必要な他の情報が、外部から提供されるときにベースレイヤに対する最近のSHVC/MV-HEVC仕様における現在の仕様と同様に利用可能であるものとして仮定される方法で、各パーティションの準拠を試験するように指定される。
【０１３１】
いくつかの例において、ビットストリームのパーティションに対する準拠試験が定義され、ビットストリームの準拠は、ビットストリームに対して指定された各分割方式のすべてのパーティションの準拠に基づき定義される。いくつかの例において、1つのパーティションが試験のため選択されたときに、それぞれの分割方式における他のパーティションの復号は、それらのパーティションに対して指定されたパラメータに従ってHRDによって復号されるものとして考えられる。
【０１３２】
図2は、本開示の技術による、複数の単一レイヤデコーダを含むビデオデコーダ30の例示的な実装を示すブロック図である。図2の例において、ビデオデコーダ30は、単一レイヤデコーダ50A〜50D(「単一レイヤデコーダ50」と総称する)を含む。単一レイヤデコーダ50の各々は、それぞれの別々のハードウェアコアによって実装され得る。単一レイヤデコーダ50のうちの異なる単一レイヤデコーダは、異なる機能を有し得る。たとえば、単一レイヤデコーダ50のうちの異なる単一レイヤデコーダは、異なるプロファイル、層、およびレベルに準拠するビットストリームを復号することができるものとしてよい。いくつかの例において、ビデオデコーダ30は、分割方式のパーティションに対するPTL情報に基づき、1つまたは複数の分割方式から特定の分割方式を決定し得る。ビデオデコーダ30は、単一レイヤデコーダ50のうちのそれぞれ1つの単一レイヤデコーダを使用して特定の分割方式の各それぞれのパーティションを復号し得る。
【０１３３】
図3は、本開示の技術を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図3は説明のために用意され、本開示において広範に例示され、説明されているような技術の制限であるものとみなされるべきでない。説明のために、本開示では、HEVCコーディングを背景としてビデオエンコーダ20について説明する。しかしながら、本開示の技術は、他のコーディング規格または方法に適用可能であるものとしてよい。
【０１３４】
図3の例において、ビデオエンコーダ20は、予測処理ユニット200と、残差生成ユニット202と、変換処理ユニット204と、量子化ユニット206と、逆量子化ユニット208と、逆変換処理ユニット210と、再構成ユニット212と、フィルタユニット214と、復号ピクチャバッファ216と、エントロピー符号化ユニット218とを含む。予測処理ユニット200は、インター予測処理ユニット220とイントラ予測処理ユニット226とを含む。インター予測処理ユニット220は、モーション推定ユニット222とモーション補償ユニット224とを含む。他の例において、ビデオエンコーダ20は、より多い、より少ない、または異なる機能構成要素を備えてもよい。
【０１３５】
ビデオエンコーダ20は、ビデオデータを受信し得る。ビデオデータメモリ201は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ201に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ216は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオエンコーダ20によるビデオデータの符号化で使用するための参照ビデオデータを記憶する参照ピクチャメモリであってよい。ビデオデータメモリ201および復号ピクチャバッファ216は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM（登録商標）)を含むダイナミックランダムアクセスメモリ(DRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ201および復号ピクチャバッファ216は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ201は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはこれらの構成要素に対してオフチップであり得る。
【０１３６】
ビデオエンコーダ20は、ビデオデータのピクチャのスライス内の各CTUを符号化することができる。CTUの各々は、ピクチャのサイズが等しいルーマコーディングツリーブロック(CTB)および対応するCTBを有していてよい。CTUを符号化する一環として、予測処理ユニット200は、四分木分割法を実行して、CTUのCTBを徐々に小さくなって行くいくつかのブロックに分割することができる。より小さいブロックは、CUのコーディングブロックであってよい。たとえば、予測処理ユニット200は、CTUのCTBをサイズが等しい4つのサブブロックに分割し、それらのサブブロックのうちの1つまたは複数をサイズが等しい4つのサブサブブロックに分割し、というように続けて行くことができる。
【０１３７】
ビデオエンコーダ20は、CTUのCUを符号化して、CUの符号化された表現(すなわち、コーディングされたCU)を生成することができる。CUを符号化する一環として、予測処理ユニット200は、CUのコーディングブロックをCUの1つまたは複数のPUに分割することができる。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックを有し得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。上で示されているように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し、PUのサイズは、PUのルーマ予測ブロックのサイズを指すものとしてよい。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測に対する2N×2NまたはN×NのPUサイズと、インター予測に対する2N×2N、2N×N、N×2N、N×N、または同様のものの対称的PUサイズをサポートすることができる。ビデオエンコーダ20およびビデオデコーダ30は、インター予測に対する2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対する非対称的分割もサポートし得る。
【０１３８】
インター予測処理ユニット220は、CUの各PUにインター予測を実行することによってPUに対する予測データを生成することができる。PUに対する予測データは、PUの予測ブロックとPUに対するモーション情報とを含み得る。インター予測処理ユニット220は、PUがIスライスにあるか、Pスライスにあるか、またはBスライスにあるかに応じてCUのPUに対して異なる操作を実行し得る。Iスライスでは、すべてのPUがイントラ予測される。したがって、PUがIスライス内にある場合、インター予測処理ユニット220は、PUにインター予測を実行しない。
【０１３９】
PUがPスライス内にある場合、モーション推定ユニット222は、PUに対する参照領域に対する参照ピクチャのリスト(たとえば、「RefPicList0」)内の参照ピクチャを検索することができる。PUに対する参照領域は、PUの予測ブロックに最も正確に対応するサンプルを含む、参照ピクチャ内の、一領域であるものとしてよい。モーション推定ユニット222は、PUに対する参照領域を含む参照ピクチャのRefPicList0内の位置を示す参照インデックスを生成することができる。それに加えて、モーション推定ユニット222は、PUのコーディングブロックと参照領域に関連付けられている参照配置との間の空間的変位を示すモーションベクトルを生成することができる。たとえば、モーションベクトルは、現在のピクチャ内の座標から参照ピクチャ内の座標へのオフセットを与える2次元ベクトルであるものとしてよい。モーション推定ユニット222は、参照インデックスとモーションベクトルとをPUのモーション情報として出力することができる。モーション補償ユニット224は、PUのモーションベクトルによって示される参照配置における実際の、または補間されたサンプルに基づきPUの予測ブロックを生成することができる。
【０１４０】
PUがBスライス内にある場合、モーション推定ユニット222は、PUに対する片方向予測または双予測を実行することができる。PUに対する片方向予測を実行するために、モーション推定ユニット222は、PUに対する参照領域に対するRefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを検索することができる。モーション推定ユニット222は、PUのモーション情報として、参照領域を含む参照ピクチャのRefPicList0またはRefPicList1内の位置を示す参照インデックスと、PUの予測ブロックと参照領域に関連付けられている参照配置との間の空間的変位を示すモーションベクトルと、参照ピクチャがRefPicList0内にあるかまたはRefPicList1内にあるかを示す1つまたは複数の予測方向指標とを出力することができる。モーション補償ユニット224は、PUのモーションベクトルによって示される参照配置における実際の、または補間されたサンプルに少なくとも一部は基づきPUの予測ブロックを生成することができる。
【０１４１】
PUに対する双方向インター予測を実行するために、モーション推定ユニット222は、PUに対する参照領域に対するRefPicList0内の参照ピクチャを検索し、PUに対する別の参照領域に対するRefPicList1内の参照ピクチャも検索することができる。モーション推定ユニット222は、参照領域を含む参照ピクチャのRefPicList0とRefPicList1とにおける位置を示す参照インデックスを生成することができる。それに加えて、モーション推定ユニット222は、参照領域に関連付けられている参照配置とPUの予測ブロックとの間の空間的変位を示すモーションベクトルを生成することができる。PUのモーション情報は、参照インデックスとPUのモーションベクトルとを含み得る。モーション補償ユニット224は、PUのモーションベクトルによって示される参照配置における実際の、または補間されたサンプルに少なくとも一部は基づきPUの予測ブロックを生成することができる。
【０１４２】
イントラ予測処理ユニット226は、PUにイントラ予測を実行することによってPUに対する予測データを生成することができる。PUに対する予測データは、PUに対する予測ブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット226は、Iスライスと、Pスライスと、BスライスとにおいてPUにイントラ予測を実行することができる。
【０１４３】
PUにイントラ予測を実行するために、イントラ予測処理ユニット226は、複数のイントラ予測モードを使用して、PUに対する予測ブロックの複数のセットを生成することができる。特定のイントラ予測モードを使用してイントラ予測を実行する場合、イントラ予測処理ユニット226は、隣接ブロックからのサンプルの特定のセットを使用してPUに対する予測ブロックを生成することができる。隣接ブロックは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定して、PUの予測ブロックの上、右上、左上、または左であるものとしてよい。イントラ予測処理ユニット226は、様々な数のイントラ予測モード、たとえば、33個の方向イントラ予測モードを使用することができる。いくつかの例において、イントラ予測モードの数は、PUの予測ブロックのサイズに依存し得る。
【０１４４】
予測処理ユニット200は、PUに対するインター予測処理ユニット220によって生成される予測データまたはPUに対するイントラ予測処理ユニット226によって生成される予測データのうちからCUのPUに対する予測データを選択することができる。いくつかの例において、予測処理ユニット200は、予測データのセットのレート/歪み尺度に基づきCUのPUに対する予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択予測ブロックと呼ばれ得る。
【０１４５】
残差生成ユニット202は、CUのコーディングブロックおよびCUのPUの選択された予測ブロックに基づき、CUの残差ブロックを生成することができる。たとえば、残差生成ユニット202は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックならびにCUのPUの選択された予測ルーマブロック、予測Cbブロック、および予測Crブロックに基づき、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを生成することができる。いくつかの例において、残差生成ユニット202は、残差ブロック内の各サンプルがCUのコーディングブロック内のサンプルとCUのPUの対応する選択予測ブロック内の対応するサンプルとの間の差に等しい値を有するようにCUの残差ブロックを生成することができる。
【０１４６】
変換処理ユニット204は、四分木分割法を実行して、CUの残差ブロックをCUのTUの変換ブロックに分割することができる。したがって、TUは、ルーマ変換ブロックおよび2つの対応するクロマ変換ブロックを有し得る。CUのTUの変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づくか、または基づかないものとしてもよい。
【０１４７】
変換処理ユニット204は、1つまたは複数の変換をTUの変換ブロックに適用することによってCUの各TUに対する変換係数ブロックを生成することができる。変換処理ユニット204は、様々な変換をTUの変換ブロックに適用することができる。たとえば、変換処理ユニット204は、離散コサイン変換(DCT)、方向性変換、または概念上類似している変換を変換ブロックに適用することができる。いくつかの例において、変換処理ユニット204は、変換を変換ブロックに適用しない。そのような例において、変換ブロックは、変換係数ブロックとして取り扱われ得る。
【０１４８】
量子化ユニット206は、係数ブロック内の変換係数を量子化することができる。量子化プロセスは、変換係数の一部またはすべてのビット深度を低減してもよい。たとえば、nビット変換係数は、切り捨てで量子化時にmビット変換係数に下げられるものとしてよく、ここで、nはmより大きい。量子化ユニット206は、CUに対する量子化パラメータ(QP)値に基づきCUのTUの係数ブロックを量子化し得る。ビデオエンコーダ20は、CUに対するQP値を調整することによってCUの係数ブロックに適用される量子化の程度を調整することができる。量子化は、情報の損失を持ち込み得るため、量子化された変換係数は、元の係数よりも低い精度を有し得る。
【０１４９】
逆量子化ユニット208および逆変換処理ユニット210は、逆量子化と逆変換とをそれぞれ係数ブロックに適用して、係数ブロックから残差ブロックを再構成することができる。再構成ユニット212は、再構成された残差ブロックを予測処理ユニット200によって生成された1つまたは複数の予測ブロックからの対応するサンプルに加えて、TUの再構成された変換ブロックを生成することができる。この方法でCUの各TUに対して変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコーディングブロックを再構成することができる。
【０１５０】
フィルタユニット214は、1つまたは複数のデブロッキング操作を実行して、CUのコーディングブロック内のブロッキングアーチファクトを低減することができる。復号ピクチャバッファ216は、フィルタユニット214が再構成されたコーディングブロックに1つまたは複数のデブロッキング操作を実行した後に再構成されたコーディングブロックを記憶することができる。インター予測処理ユニット220は、再構成されたコーディングブロックを含む参照ピクチャを使用して、他のピクチャのPUにインター予測を実行することができる。それに加えて、イントラ予測処理ユニット226は、復号ピクチャバッファ216内の再構成されたコーディングブロックを使用して、CUと同じピクチャ内の他のPUにイントラ予測を実行することができる。
【０１５１】
エントロピー符号化ユニット218は、ビデオエンコーダ20の他の機能コンポーネントからデータを受信することができる。たとえば、エントロピー符号化ユニット218は、量子化ユニット206から係数ブロックを受信し、予測処理ユニット200からシンタックス要素を受信することができる。エントロピー符号化ユニット218は、データに1つまたは複数のエントロピー符号化操作を実行して、エントロピー符号化されたデータを生成することができる。たとえば、エントロピー符号化ユニット218は、データに、コンテキスト適応型可変長コーディング(CAVLC)操作、CABAC操作、変数-変数(V2V)レングスコーディング操作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)操作、確率間隔区分エントロピー(PIPE)コーディング操作、指数ゴロム符号化操作、または別の種類のエントロピー符号化操作を実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット218によって生成されたエントロピー符号化データを含むビットストリームを出力することができる。
【０１５２】
本開示のいくつかの例によれば、エントロピー符号化ユニット218は、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含み得る。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併することで出力レイヤセットを形成する非連結なパーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなるものとしてよい。
【０１５３】
図4は、本開示の技術を実装し得る例示的なビデオデコーダ30を示すブロック図である。図4は説明のために用意され、本開示において広範に例示され、説明されているような技術に課される制限ではない。説明のために、本開示では、HEVCコーディングを背景としてビデオデコーダ30について説明する。しかしながら、本開示の技術は、他のコーディング規格または方法に適用可能であるものとしてよい。
【０１５４】
図4の例において、ビデオデコーダ30は、エントロピー復号ユニット250と、予測処理ユニット252と、逆量子化ユニット254と、逆変換処理ユニット256と、再構成ユニット258と、フィルタユニット260と、復号ピクチャバッファ262とを備える。予測処理ユニット252は、モーション補償ユニット264とイントラ予測処理ユニット266とを備える。他の例において、ビデオデコーダ30は、より多い、より少ない、または異なる機能構成要素を備えてもよい。
【０１５５】
コーディングピクチャバッファ(CPB)251は、ビットストリームの符号化されたビデオデータ(たとえば、NALユニット)を受信し、記憶することができる。CPB151に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえは、ビデオデータの有線もしくはワイヤレスネットワーク通信を介してカメラなどのローカルビデオソースから、または物理的データ記憶媒体にアクセスすることによって、取得され得る。CPB151は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するビデオデータメモリを形成し得る。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオデコーダ30によるビデオデータの復号で使用するための参照ビデオデータを記憶する参照ピクチャメモリであってよい。CPB151および復号ピクチャバッファ162は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM（登録商標）)を含むダイナミックランダムアクセスメモリ(DRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。CPB151および復号ピクチャバッファ162は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、CPB151は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはこれらの構成要素に対してオフチップであり得る。
【０１５６】
エントロピー復号ユニット250は、CPB251からNALユニットを受信し、NALユニットを解析して、ビットストリームからシンタックス要素を取得することができる。エントロピー復号ユニット250は、NALユニット内のエントロピー符号化されたシンタックス要素をエントロピー復号することができる。予測処理ユニット252、逆量子化ユニット254、逆変換処理ユニット256、再構成ユニット258、およびフィルタユニット260は、ビットストリームから取得されたシンタックス要素に基づき復号されたビデオデータを生成することができる。
【０１５７】
たとえば、エントロピー復号ユニット250は、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得し得る。予測処理ユニット252、逆量子化ユニット254、逆変換処理ユニット256、再構成ユニット258、およびフィルタユニット260は、特定の分割方式のパーティションを復号することができる。いくつかの例において、1つまたは複数の分割方式のうちの各それぞれの分割方式について、エントロピー復号ユニット250は、ビットストリーム内のSEIメッセージまたはビットストリーム内のVPS内のVUIから、それぞれの分割方式に対するHRDパラメータセットのそれぞれのセットを取得し得る。ビデオデコーダ30は、1つまたは複数の分割方式に対するHRDパラメータに基づき、ビデオコーディング規格への準拠について1つまたは複数の分割方式の各々の各パーティションを試験し得る。
【０１５８】
ビットストリームのNALユニットは、コーディングされたスライスNALユニットを含み得る。ビットストリームを復号する一環として、エントロピー復号ユニット250は、コーディングされたスライスNALユニットからシンタックス要素をエントロピー復号することができる。コーディングされたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含むものとしてよい。
【０１５９】
ビットストリームからシンタックス要素を取得することに加えて、ビデオデコーダ30は、CU上で復号操作を実行することができる。CU上で復号操作を実行することによって、ビデオデコーダ30は、CUのコーディングブロックを再構成することができる。
【０１６０】
CUに復号操作を実行する一環として、逆量子化ユニット254は、CUのTUの係数ブロックを逆量子化する、すなわち、デクオンタイズすることができる。逆量子化ユニット254は、TUのCUに対するQP値を使用して、量子化の程度と、同様に、逆量子化ユニット254が適用する逆量子化の程度とを決定することができる。すなわち、圧縮比、すなわち、元のシーケンスを表すために使用されるビットの数と圧縮されたシーケンスのビットとの比は、変換係数を量子化するときに使用されるQP値の値を調整することによって制御され得る。圧縮比は、採用されるエントロピーコーディングの方法にも依存し得る。
【０１６１】
逆量子化ユニット254が係数ブロックを逆量子化した後、逆変換処理ユニット256は、1つまたは複数の逆変換を係数ブロックに適用して、TUに対する残差ブロックを生成することができる。たとえば、逆変換処理ユニット256は、逆DCT、逆整数変換、逆カルーネン-レーベ変換(KLT)、逆回転変換、逆方向性変換、または別の逆変換を係数ブロックに適用することができる。
【０１６２】
PUがイントラ予測を使用して符号化される場合、イントラ予測処理ユニット266は、イントラ予測を実行して、PUに対する予測ブロックを生成することができる。たとえば、イントラ予測処理ユニット266は、イントラ予測を実行して、PUに対するルーマ、Cb、およびCr予測ブロックを生成し得る。イントラ予測処理ユニット266は、イントラ予測モードを使用して、空間的隣接PUの予測ブロックに基づきPUに対する予測ブロックを生成することができる。イントラ予測処理ユニット266は、ビットストリームから取得された1つまたは複数のシンタックス要素に基づきPUに対するイントラ予測モードを決定することができる。
【０１６３】
予測処理ユニット252は、ビットストリームから抽出されたシンタックス要素に基づき第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構成することができる。さらに、PUが、インター予測を使用して符号化される場合、エントロピー復号ユニット250は、PUに対するモーション情報を取得することができる。モーション補償ユニット264は、PUのモーション情報に基づき、PUに対する1つまたは複数の参照領域を決定することができる。モーション補償ユニット264は、PUに対する1つまたは複数の参照ブロックにおけるサンプルに基づき、PUに対する予測ブロックを生成することができる。たとえば、モーション補償ユニット264は、PUに対する1つまたは複数の参照ブロックにおけるサンプルに基づき、PUに対するルーマ、Cb、およびCr予測ブロックを生成することができる。
【０１６４】
再構成ユニット258は、CUのTUの変換ブロックおよびCUのPUの予測ブロックからの残差値を使用して、CUのコーディングブロックを再構成することができる。たとえば、再構成ユニット258は、CUのTUのルーマ、Cb、およびCr変換ブロックならびにルーマ、Cb、およびCr予測ブロックからの残差値を使用して、CUのPUのルーマ、Cb、およびCrコーディングブロックを再構成することができる。たとえば、再構成ユニット258は、変換ブロックのサンプルを予測ブロックの対応するサンプルに加えて、CUのコーディングブロックを再構成することができる。
【０１６５】
フィルタユニット260は、デブロッキング操作を実行して、CUのコーディングブロックに関連付けられているブロッキングアーチファクトを低減することができる。ビデオデコーダ30は、CUのコーディングブロックを復号ピクチャバッファ262内に記憶することができる。復号ピクチャバッファ262は、その後のモーション補償、イントラ予測、および図1の表示デバイス32などの表示デバイスへの表示のために参照ピクチャを供給することができる。たとえば、ビデオデコーダ30は、復号ピクチャバッファ262内のブロックに基づき、他のCUのPU上でイントラ予測またはインター予測操作を実行し得る。この方法で、ビデオデコーダ30は、ビットストリームから、係数ブロックの変換係数レベルを取得し、変換係数レベルを逆量子化し、変換を変換係数レベルに適用して変換ブロックを生成し、変換ブロックに少なくとも一部は基づき、コーディングブロックを生成し、表示用のコーディングブロックを出力することができる。
【０１６６】
本開示の次の節では、上で説明されている本開示の例示的な技術のうちのいくつかの実装上の詳細を説明している。次のテキストは、本開示の1つまたは複数の技術を実装するための変更を示している。下線付きテキストは、テキストが追加されたことを指示する。別々の正方形のブラケットに含まれているイタリック体のテキストは、削除されたテキストである。シンタックス要素の名前は、太字で示されている。
【０１６７】
上で指示されているように、本開示のいくつかの技術によれば、ビデオエンコーダ20は、1つまたは複数の分割方式をシグナリングし得る。分割方式の各々は、出力レイヤセットの内のレイヤを1つまたは複数のパーティションに分割する。出力レイヤセット内の各レイヤは、分割方式においてちょうど1つのパーティションに属すものとする。
【０１６８】
以下のTable 2(表3)は、SHVC WD6およびMV-HEVC WD8において定義されている分割方式をシグナリングするためのVPS拡張シンタックスへの変更を示している。
【０１６９】
【表３】
0006530425.tif 000004
【０１７０】
Table 2(表3)の例において、num_partition_schemes[i]は、i番目の出力レイヤセットに対して指定されている分割方式の数を指定する。num_partition_schemes[i]の値は、0から15(含む)までの範囲内とする。さらに、num_partitions_in_scheme_minus1[i][j]に1を加えた値で、i番目の出力レイヤセットのj番目の分割方式のパーティションの数を指定する。num_partitions_in_scheme_minus1[i][j]の値は、0からNumLayersInIdList[LayerSetIdxForOutputLayerSet[i]]-1(含む)までの範囲内とする。
【０１７１】
さらに、Table 2(表3)の例において、layer_included_in_partition_flag[i][j][k][r]が1に等しいことで、VPSで指定されているr番目のレイヤがi番目の出力レイヤセットのj番目の分割方式のk番目のパーティションに含まれることを指定する。layer_included_in_partition_flag[i][j][k][r]が0に等しいことで、VPSで指定されているr番目のレイヤがi番目の出力レイヤセットのj番目の分割方式のk番目のパーティションに含まれていないことを指定する。
【０１７２】
したがって、各それぞれの分割方式について、それぞれの分割方式の各それぞれのパーティションについて、出力レイヤセットの各それぞれのレイヤについて、ビデオデコーダ30は、ビットストリームから、それぞれのレイヤがそれぞれのパーティションに含まれるかどうかを指示するシンタックス要素(すなわち、layer_included_in_partition_flag)を取得し得る。類似の例において、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式の各それぞれのパーティションについて、出力レイヤセットの各それぞれのレイヤについて、ビデオエンコーダ20は、ビットストリーム内に、それぞれのレイヤがそれぞれのパーティションに含まれるかどうかを指示するシンタックス要素(すなわち、layer_included_in_partition_flag)を含めることができる。
【０１７３】
Table 2(表3)の例において、i番目の出力レイヤセット内でnuh_layer_idがcurrLayerIdに等しい各レイヤについて、0からnum_partitions_in_scheme_minus1[i][j](含む)までの範囲内でkの値がi番目の出力レイヤセットのインデックスjを有する各分割方式についてただ1つ存在することがビットストリーム準拠の要求条件であり、したがってlayer_included_in_partition_flag[i][j][k][LayerIdxInVps[currLayerId]]は1に等しい。
【０１７４】
上で述べたように、本開示のいくつかの例によれば、各パーティションに対して、プロファイル、層、およびレベルのシグナリングが与えられる。Table 2(表3)の例に示されているように、profile_level_tier_partition_idx[i][j][k]は、i番目の出力レイヤセットのj番目の分割方式のk番目のパーティションに適用されるprofile_tier_level( )シンタックス構造の、VPS内のprofile_tier_level( )シンタックス構造のリストへの、インデックスを指定する。profile_level_tier_partition_idx[i]シンタックス要素の長さは、Ceil(Log2(vps_num_profile_tier_level_minus1+1))ビットである。profile_level_tier_idx[0][0][0]の値は、0に等しいと推論される。profile_level_tier_partition_idx[i]の値は、0からvps_num_profile_tier_level_minus1(含む)までの範囲内とする。
【０１７５】
別の例において、Table 3(表4)に示されている変更は、分割方式をシグナリングするためにVPS拡張シンタックスに対して行われ得る。Table 3(表4)に示されている変更は、上のTable 2(表3)に関するものである。
【０１７６】
【表４】
0006530425.tif 000005
【０１７７】
Table 3(表4)の例において、次の変更は、Table 2(表3)を参照しつつ上で説明されているVPS拡張のシンタックス要素の意味に対して行われ得る。
num_partitioning_schemes_minus1[i]に1を加えた値で、i番目の出力レイヤセットに対して指定されている分割方式の数を指定する。num_partitioning_schemes_minus1[i]の値は、0から15(含む)までの範囲内とする。
num_partitions_in_scheme_minus[[1]]2[i][j]に[[1]]2を加えた値で、i番目の出力レイヤセットのj番目の分割方式のパーティションの数を指定する。num_partitions_in_scheme_minus[[1]]2[i][j]の値は、0からNumLayersInIdList[ LayerSetIdxForOutputLayerSet[i]]-1(含む)までの範囲内とする。
変数NumPartitionInScheme[i][j]の値は、次のように導出される。
NumPartitionsInScheme[i][j]=(j==0) ? 1 : num_partitions_in_scheme_minus2[i][j]+2.
[[jが0よりも大きいときに、num_partitions_in_scheme_minus1[ i ][ j ]の値が0よりも大きいことがビットストリーム準拠の要求条件である。]]
layer_included_in_partition_flag[i][j][k][r]が1に等しいことで、VPSで指定されているr番目のレイヤがi番目の出力レイヤセットのj番目の分割方式のk番目のパーティションに含まれていることを指定する。layer_included_in_partition_flag[i][j][k][r]が0に等しいことで、VPSで指定されているr番目のレイヤがi番目の出力レイヤセットのj番目の分割方式のk番目のパーティションに含まれていないことを指定する。layer_included_in_partition_flag[ i ][ 0 ][ 0 ][ r ]の値は、0からvps_max_layers_minus1(含む)までの範囲内のrに対してlayer_id_included_flag[ LayerSetIdxForOutputLayerSet[ i ] ][ r ]の値に等しいことが推論される。
注記5-i番目の出力レイヤセット内でnuh_layer_idがcurrLayerIdに等しい各レイヤについて、0から[[n]]Num[[_p]]Partitions[[_i]]In[[_s]]Scheme[[ _minus1]][ i ][ j ] [[(含む)]]までの範囲内でkの値がi番目の出力レイヤセットのインデックスjを有する各分割方式についてただ1つ存在し[[することがビットストリーム準拠の要求条件であり]]、したがってlayer_included_in_partition_flag[i][j][k][LayerIdxInVps[currLayerId]]は1に等しい。
profile_level_tier_partition_idx[i][j][k]は、i番目の出力レイヤセットのj番目の分割方式のk番目のパーティションに適用されるprofile_tier_level( )シンタックス構造の、VPS内のprofile_tier_level( )シンタックス構造のリストへの、インデックスを指定する。profile_level_tier_partition_idx[ i ][ j ][ k ]シンタックス要素の長さは、Ceil(Log2(vps_num_profile_tier_level_minus1+1))ビットである。profile_level_tier_partition_idx[0][0][0]の値は、0に等しいと推論される。profile_level_tier_partition_idx[i][0][0]の値は、1からNumOutputLayerSets  -  1(含む)までの範囲内のiについてprofile_level_tier_idx[ i ]に等しくなるように設定される。profile_level_tier_partition_idx[ i ] [ j ][ k ]の値は、0からvps_num_profile_tier_level_minus1(含む)までの範囲内とする。
【０１７８】
いくつかの例において、各出力レイヤセットに対するちょうど1つの分割方式がただ1つのパーティションを含むような制約が追加される。さらに、いくつかの例において、シンタックス要素profile_tier_level_idx[i]は、シグナリングされず、profile_tier_tier_partition_idx[i][j][k]シンタックス要素は、出力レイヤセットのすべてのレイヤを含む1つのパーティションを含む出力レイヤセットの分割方式のプロファイル、層、およびレベル指示をシグナリングするために使用される。
【０１７９】
さらに、本開示のいくつかの技術によれば、プロファイル、層、およびレベルを定義するレベル限度および制限は、パーティション特有である。次のテキストは、プロファイル、層、およびレベルに対するパーティション特有のレベル限度および制限を実装するためのMV-HEVC WD8への他の変更を示している。
G.11  プロファイル、層、およびレベル
G.11.1  プロファイル
G.11.1.2  Stereo Mainプロファイル
Stereo Mainプロファイルに準拠するレイヤのパーティションとともに出力レイヤセットを含むビットストリームは、出力レイヤセットの各々に対する導出されたサブビットストリーム上の次の制約に従うものとし、layerSetIdxは出力レイヤセットに対するレイヤセットのインデックスであり、サブビットストリームはビットストリーム、7に等しいtIdTarget、およびインデックスlayerSetIdxを有するレイヤセットのnuh_layer_id値を含むTargetDecLayerIdListを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出され、パーティションはサブビットストリーム、パーティションlistOfLayersInPartition内のレイヤのリスト、およびパーティションnumLayersInPartition内のレイヤの数を入力として条項C.6で指定されているようなビットストリームパーティションを導出するために逆多重化プロセスを呼び出すことによって導出される。
Stereo Mainプロファイルに準拠するレイヤのパーティションを有する出力レイヤセットに対するサブビットストリームに対応するビットストリームは、次の制約に従うものとする。
-  tIdTargetの任意の値およびlayerIdListTargetにおける0の値を入力とするサブビットストリーム抽出プロセスの結果として得られるサブビットストリームは、Mainプロファイルに準拠するものとする。
-  ビットストリームは、ViewScalExtLayerFlag[ i ]が1に等しく、nuh_layer_idがiに等しい1つのレイヤを含むものとする。
-  ViewScalExtLayerFlag[ i ]が1に等しいときに、inter_view_mv_vert_constraint_flagは、nuh_layer_idがiに等しいレイヤに対するアクティブなSPS RBSPのsps_multilayer_extension( )シンタックス構造内で1に等しいものとする。
-  ViewScalExtLayerFlag[ i ]が1に等しいときに、ScalabilityId[ LayerIdxInVps[ i ] ][ smIdx ]は、nuh_layer_idがiに等しいコーディングされたピクチャについて、1に等しくない、0から15(含む)までのsmIdx値について0に等しいものとする。
-  ViewScalExtLayerFlag[ i ]が1に等しいときに、num_scaled_ref_layer_offsetsは、nuh_layer_idがiに等しいレイヤに対する各アクティブなSPSにおいて0に等しいものとする。
-  ViewScalExtLayerFlag[ i ]が1に等しいときに、nuh_layer_idがiに等しいレイヤに対するアクティブなSPSにおけるpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値は、そのレイヤのすべての直接的参照レイヤに対するアクティブなSPSにおけるpic_width_in_luma_samplesおよびpic_height_in_luma_samplesの値に、それぞれ等しいものとする。
-  ビットストリームは、0に等しいnuh_layer_idと、ScalabilityId[ LayerIdxInVps[ nuhLayerIdA ] ][ smIdx ]が1に等しくない0から15(含む)までの任意のsmIdxについて0に等しいものとするnuhLayerIdAとを有する2つのレイヤからなるサブビットストリームを含むものとする。
-  VPSは0にのみ等しいavc_base_layer_flagを有するものとする。
-  VPSは、0から15(含む)までの範囲内のvps_num_rep_formats_minus1を有するものとする。
-  SPSは、0に等しいiについて、2から6,(含む)までの範囲内で、0にのみ等しいsps_extension_type_flag[ i ]を有するものとする。
-  PPSは、1から6(含む)までの範囲内のiについて、0にのみ等しいpps_extension_type_flag[ i ]を有するものとする。
この条項および条項G.11.3の残り部分において、出力レイヤセットのサブビットストリームについて、general_profile_idc、general_profile_compatibility_flag[ i ]、general_tier_flag、およびgeneral_level_idcは、それぞれ、出力レイヤセットに対するprofile_tier_level( )シンタックス構造における、general_profile_idc、general_profile_compatibility_flag[ i ]、general_tier_flag、およびgeneral_level_idcを指す。
Stereo Mainプロファイルへの出力レイヤセットのサブビットストリームの準拠は、general_profile_idcが5に等しいか、またはgeneral_profile_compatibility_flag[ 5 ]が1に等しいことによって指示される。
-  注記--general_profile_compatibility_flag[ 5 ]が1に等しいときに、1に等しいiに対するgeneral_profile_compatibility_flag[ i ]も1に等しくなっているべきである。
【０１８０】
さらに、プロファイル、層、およびレベルに対するパーティション特有のレベル限度および制限を実装するために、JCTVC-Q0145の段落G.11.2に次の変更がなされていてよく、これはそれ自体、Chenら、「High efficiency video coding (HEVC) scalable extensions Draft 5」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第16回会合:サンノゼ、米国、2014年1月9〜17日、文書JCTVC-P1008_v4の段落G.11.2を修正したものである。
G.11.2  層およびレベル
G.11.2.1  一般的な層およびレベル限度
層機能の比較のため、general_tier_flagが0に等しい層は、general_tier_flagが1に等しい層よりも下位の層であると考えられる。
レベル比較のために、特定の層の特定のレベルは、特定のレベルのgeneral_level_idcの値が他のレベルよりも小さいときに同じ層の他の何らかのレベルよりも低いレベルであると考えられる。
以下は、この条項、条項G.11.2.2、および条項G.11.3における制約を表現するために指定される。
-  アクセスユニットnを復号順でn番目のアクセスユニットとし、第1のアクセスユニットはアクセスユニット0(すなわち、0番目のアクセスユニット)である。
-  変数fRを1÷300に等しくなるように設定する。
-  変数optLsIdxをビットストリーム内に含まれる出力レイヤセットの出力レイヤセットインデックスとし、出力レイヤセットのサブビットストリームがビットストリーム、7に等しいtIdTarget、および出力レイヤセットのnuh_layer_id値を含むTargetDecLayerIdListを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出されるとする。
-  変数partitionIdxは、インデックスoptLsIdxを有する出力レイヤセットの特定のパーティションへのインデックスであるとし、パーティションはサブビットストリーム、パーティションlistOfLayersInPartition内のレイヤのリスト、およびパーティションnumLayersInPartition内のレイヤの数を入力として条項C.6で指定されているような逆多重化プロセスを呼び出すことによって導出される。
-  変数numLayersInOptLayerSetおよびnumLayersInSubBitstreamが次のように導出されるとする。
numLayersInOptLayerSet = NumLayersInIdList[ LayerSetIdxForOutputLayerSet[ optLsIdx ] ]
if(出力レイヤセット内のベースレイヤが外部手段によって提供される)
numLayersInSubBitstream = numLayersInOptLayerSet - 1 (H-63)
else
numLayersInSubBitstream = numLayersInOptLayerSet
-  変数partitionSizeInSamplesYが次のように導出されるとする。
partitionSizeInSamplesY = 0                           (H-64)
for( i = 0; i < numLayersInPartition; i++ )
partitionSizeInSamplesY  +=  パーティション内のi番目のレイヤのPicSizeInSamplesY
-  変数scaleFactorがCeil( partitionSizeInSamplesY / MaxLumaPs )に等しくなるように設定されるとし、MaxLumaPsはパーティションのレベルについてTable A-1で指定されている。
-  変数maxPartitionSliceSegsがscaleFactor * MaxSliceSegmentsPerPictureに等しくなるように設定されるとし、MaxSliceSegmentsPerPictureはパーティションの層およびレベルについてTable A-1で指定されている。
指定された層およびレベルにおいてプロファイルに準拠する各パーティションは、付録Cで指定されているように各ビットストリーム準拠試験に関して次の制約に従うものとする。
a) パーティション内の各レイヤについて、PicSizeInSamplesYはMaxLumaPs以下であるものとし、ここで、MaxLumaPsはパーティションの層およびレベルについてTable A-1で指定されている。
b) パーティション内の各レイヤについて、pic_width_in_luma_samplesの値は、Sqrt( MaxLumaPs * 8 )以下であるものとする。
c) パーティション内の各レイヤについて、pic_height_in_luma_samplesの値は、Sqrt( MaxLumaPs * 8 )以下であるものとする。
d) パーティション内のnuh_layer_idがcurrLayerIdに等しい各レイヤについて、max_vps_dec_pic_buffering_minus1[ optLsIdx ][ LayerIdxInVps[ currLayerId ] ][ HighestTid ]の値は、パーティションの層およびレベルについて、PicSizeInSamplesYがpartitionSizeInSamplesYで置き換えられている式A-2によって導出されているようにMaxDpbSize以下であるものとする。
e) レベル5およびそれ以上のレベルについて、パーティション内の各レイヤに対するCtbSizeYの値は、32または64に等しいものとする。
f) パーティション内の各ピクチャに対するNumPicTotalCurrの値は、8以下であるものとする。
g) パーティション内の各コーティングされたピクチャを復号するときに、num_tile_columns_minus1の値は、MaxTileCols未満であるものとし、num_tile_rows_minus1は、MaxTileRows未満であるものとし、ここで、MaxTileColsおよびMaxTileRowsは、パーティションの層およびレベルについてTable A-1で指定されている。
h) パーティションのVCL HRDパラメータについて、CpbSize[ i ]は、0からcpb_cnt_minus1[ HighestTid ](含む)までの範囲内のiの少なくとも1つの値に対して1000 * MaxCPB以下であるものとし、ここで、CpbSize[ i ]は、条項C.1で指定されているように選択されたパラメータに基づき条項E.3.3で指定され、MaxCPBは、1000ビットの単位で、パーティションの層およびレベルについてTable A-1で指定されている。
i) パーティションのNAL HRDパラメータについて、CpbSize[ i ]は、0からcpb_cnt_minus1[ HighestTid ](含む)までの範囲内のiの少なくとも1つの値に対して1100 * MaxCPB以下であるものとし、ここで、CpbSize[ i ]は、条項C.1で指定されているように選択されたパラメータに基づき条項E.3.3で指定され、MaxCPBは、1100ビットの単位で、パーティションの層およびレベルについてTable A-1で指定されている。
Table A-1では、各層の各レベルに対する限度を指定している。
パーティションが準拠する層およびレベルは、次のようにシンタックス要素general_tier_flagおよびgeneral_level_idcによって指示される。
-  Table A-1で指定されている層制約に従って、general_tier_flagが0に等しいことはMain層への準拠を指示し、general_tier_flagが1に等しいことはHigh層への準拠を指示する。general_tier_flagは(「-」でマークされているTable A-1内のエントリに対応する)レベル4未満のレベルについては0に等しいものとする。
-  general_level_idcは、Table A-1で指定されているレベル数の30倍の値に等しくなるように設定されるものとする。
【０１８１】
JCTVC-Q0145は、Techら、「MV-HEVC Draft Text 7」、Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、第7回会合:サンノゼ、米国、2014年1月11〜17日、JCT3V-G1004-v7への変更を記述している付属書類(JCTVC-Q0145_MvHevcText)を含む。次のテキストは、プロファイル、層、およびレベルに対するパーティション特有のレベル限度および制限を実装するためのJCTVC-Q0145_MvHevcTextへの変更を示している。簡潔にするため、JCTVC-Q0145_MvHevcTextから削除されたテキストは、以下では省略されている。
G.11.2.2  Main、Main 10、およびStereo Mainプロファイルに対するプロファイル特有のレベル限度
指定された層およびレベルにおいてStereo Mainプロファイルに準拠する各パーティションは、付録Cで指定されているように各ビットストリーム準拠試験に関して次の制約に従うものとし、ここで、「アクセスユニット」は、同じ出力時間を有する、パーティションに含まれるレイヤの、関連付けられている非VCL NALユニットを伴う、パーティションに含まれるピクチャのセットを表すために使用され、CPBは、BPBであると考えられる。
a) 条項C.2.3で指定されているような、CPBからのアクセスユニットn(nは0よりも大きい)の公称取出し時間は、AuNominalRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ]がMax( partitionSizeInSamplesY÷MaxLumaSr, fR )以上であるという制約の条件を満たすものとし、ここで、partitionSizeInSamplesYは、アクセスユニットn-1に対するpartitionSizeInSamplesYの値であり、MaxLumaSrは、パーティションの層およびレベルについてアクセスユニットn-1に適用されるTable A-2で指定された値である。
b) 条項C.3.3で指定されているような、DPBからのピクチャの連続的出力時間の差は、DpbOutputInterval[ n ]がMax( partitionSizeInSamplesY÷MaxLumaSr, fR )以上であるという制約の条件を満たすものとし、ここで、partitionSizeInSamplesYは、アクセスユニットnのpartitionSizeInSamplesYの値であり、MaxLumaSrは、パーティションの層およびレベルについてアクセスユニットnに対してTable A-2で指定された値であるが、ただし、アクセスユニットnは、出力されるピクチャを有するアクセスユニットであり、そのようなアクセスユニットのうちの最後のものではないことを条件とする。
c) アクセスユニット0の取出し時間は、アクセスユニット0内のコーディングされたスライスセグメントの数がMin( Max( numLayersInPartition, MaxSliceSegmentsPerPicture * MaxLumaSr / MaxLumaPs * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) + MaxSliceSegmentsPerPicture * partitionSizeInSamplesY / MaxLumaPs ), MaxSliceSegmentsPerPicture )以下であるという制約の条件を満たすものとし、ここで、MaxSliceSegmentsPerPicture、MaxLumaPs、およびMaxLumaSrは、パーティションの層およびレベルについてTable A-1およびTable A-2で指定されている値である。
d) アクセスユニットnおよびn-1(nは0よりも大きい)の連続的CPB取出し時間の差は、アクセスユニットn内のコーディングされたスライスセグメントの数がMin( (Max( numLayersInPartition, MaxSliceSegmentsPerPicture * MaxLumaSr / MaxLumaPs * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] ) ), MaxSliceSegmentsPerPicture )以下であるという制約の条件を満たすものとし、ここで、numLayersInPartitionは、アクセスユニットnに対する値であり、MaxSliceSegmentsPerPicture、MaxLumaPs、およびMaxLumaSrは、パーティションの層およびレベルについてアクセスユニットnに適用されるTable A-1およびTable A-2で指定されている値である。
e) パーティションに対するVCL HRDパラメータについて、BitRate[ i ]は、0からcpb_cnt_minus1[ HighestTid ](含む)までの範囲内のiの少なくとも1つの値に対してCpbBrVclFactor * MaxBR以下であるものとし、ここで、BitRate[ i ]は、条項C.1で指定されているように選択されたパラメータに基づき条項E.3.3で指定され、MaxBRは、CpbBrVclFactorビット/秒の単位で、Table A-2で指定されており、ここで、CpbBrVclFactorは、パーティションの層およびレベルについてTable A-3で指定されている。
f) パーティションに対するNAL HRDパラメータについて、BitRate[ i ]は、0からcpb_cnt_minus1[ HighestTid ](含む)までの範囲内のiの少なくとも1つの値に対してCpbBrNalFactor * MaxBR以下であるものとし、ここで、BitRate[ i ]は、条項C.1で指定されているように選択されたパラメータに基づき条項E.3.3で指定され、MaxBRは、CpbBrNalFactorビット/秒の単位で、Table A-2で指定されており、ここで、CpbBrNallFactorは、パーティションの層およびレベルについてTable A-3で指定されている。
g) アクセスユニット0に対するNumBytesInNalUnit変数の総和は、FormatCapabilityFactor * ( Max( partitionSizeInSamplesY, fR * MaxLumaSr ) + MaxLumaSr * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) ) ÷ MinCr以下であるものとし、ここで、MaxLumaSrおよびMinCrは、Table A-2で指定されている値であり、FormatCapabilityFactorは、パーティションの層およびレベルについてピクチャ0に適用されるTable A-3で指定された値である。
h) アクセスユニットn(nは0よりも大きい)に対するNumBytesInNalUnit変数の総和は、FormatCapabilityFactor * MaxLumaSr * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] )÷MinCr以下であるものとし、ここで、MaxLumaSrおよびMinCrは、Table A-2で指定されている値であり、FormatCapabilityFactorは、パーティションの層およびレベルについてピクチャnに適用されるTable A-3で指定された値である。
i) アクセスユニット0の取出し時間は、アクセスユニット0内のコーディングされたピクチャ内のタイルの数がMin( Max( numLayersInPartition, MaxTileCols * MaxTileRows * 120 * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) + MaxTileCols * MaxTileRows ), MaxTileCols * MaxTileRows )以下であるという制約の条件を満たすものとし、ここで、MaxTileColsおよびMaxTileRowsは、パーティションの層およびレベルについてTable A-1で指定されている値である。
j) アクセスユニットnおよびn-1(nは0よりも大きい)の連続的CPB取出し時間の差は、アクセスユニットn内のコーディングされたピクチャのタイルの数がMin( Max( numLayersInPartition, MaxTileCols * MaxTileRows * 120 * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] ) ), MaxTileCols * MaxTileRows )以下であるという制約の条件を満たすものとし、ここで、numLayersInPartitionは、アクセスユニットnに対する値であり、MaxTileColsおよびMaxTileRowsは、パーティションの層およびレベルについてアクセスユニットnに適用されるTable A-1で指定されている値である。
【０１８２】
さらに、本開示のいくつかの例によれば、次の変更は、段落G.11.1.2のMV-HEVC WD8のStereo Mainプロファイルに対して行われ得る。以下のテキストにおいて、変更は、本開示で上述されている段落G.11.1.2の例示的なバージョンに関連して示されている。
G.11.1.2  Stereo Mainプロファイル
パーティションがStereo Mainプロファイルに準拠している出力レイヤセットを含むビットストリームについて、
-  olsIdxを出力レイヤセットの出力レイヤセットインデックスとする。
-  layerSetIdxを出力レイヤセットのレイヤセットインデックスとする。
-  出力レイヤセットのサブビットストリームがビットストリーム、6に等しいtIdTarget、およびインデックスlayerSetIdxを有するレイヤセットに含まれ、一次ピクチャレイヤであるレイヤのnuh_layer_id値を含むlayerIdListTargetを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出されるとする。
-  ベースレイヤビットストリームはビットストリーム、6に等しいtIdTarget、および0に等しいただ1つのnuh_layer_id値を含むlayerIdListTargetを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出されるとする。
[[Stereo Mainプロファイルに準拠するレイヤのパーティションとともに出力レイヤセットを含むビットストリームは、出力レイヤセットの各々に対する導出されたサブビットストリーム上の次の制約に従うものとし、layerSetIdxは出力レイヤセットに対するレイヤセットのインデックスであり、サブビットストリームはビットストリーム、7に等しいtIdTarget、およびインデックスlayerSetIdxを有するレイヤセットのnuh_layer_id値を含むTargetDecLayerIdListを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出され、パーティションはサブビットストリーム、パーティションlistOfLayersInPartition内のレイヤのリスト、およびパーティションnumLayersInPartition内のレイヤの数を入力として条項C.6で指定されているようなビットストリームパーティションを導出するために逆多重化プロセスを呼び出すことによって導出される。]] Stereo Mainプロファイルに準拠する[[レイヤの]]パーティションを有する出力レイヤセットを含む[[に対するサブビットストリームに対応する]]ビットストリームは、次の制約に従うものとする。
-  すべてのアクティブなVPSは1にのみ等しいvps_base_layer_internal_flagを有するものとする。
-  すべてのアクティブなVPSは、0から15(含む)までの範囲内のvps_num_rep_formats_minus1を有するものとする。
-  [[Stereo Mainプロファイルに準拠する出力レイヤセットを含むビットストリームは、出力レイヤセットの各々に対する導出されたサブビットストリーム上の次の制約に従うものとし、出力レイヤセットインデックスolsIdxおよびlayerSetIdxは出力レイヤセットに対するレイヤセットであり、サブビットストリームはビットストリーム、6に等しいtIdTarget、およびインデックスlayerSetIdxを有するレイヤセットに含まれ、一次ピクチャレイヤであるレイヤのnuh_layer_id値を含むlayerIdListTargetを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出されるとする。]]
[[Stereo Mainプロファイルに準拠する出力レイヤセットを含むビットストリームは、ビットストリーム、6に等しいtIdTarget、および0に等しいただ1つのnuh_layer_id値を含むlayerIdListTargetを入力として条項F.10で指定されているようなサブビットストリーム抽出プロセスを呼び出すことによって導出されるベースレイヤビットストリーム上で次の制約に従うものとする。]]
[[Stereo Mainプロファイルに準拠するビットストリームから導出された]]ベースレイヤビットストリームは、次の制約に従うものとする。
-  ベースレイヤビットストリームは、条項A.3.2で指定されているMainプロファイルのすべての制約に従うものとする。
-  ベースレイヤ[[ビットストリーム]][[の]]に対するすべてのアクティブなSPSは、1に等しいgeneral_profile_idcまたは1に等しいgeneral_profile_compatibility_flag[ 1 ]を有するものとする。
[[Stereo Mainプロファイルに準拠する]]各出力レイヤセットの[[に対する]][[導出された]]サブビットストリームは、次の制約に従うものとする。
-  サブビットストリームに対するすべてのアクティブなSPSは1にのみ等しいchroma_format_idcを有するものとする。
-  サブビットストリーム[[の]]に対するアクティブなSPSから導出されるCtbLog2SizeYは、4から6(含む)までの範囲内にあるものとする。
-  ScalabilityId[ j ][ smIdx ]は、1に等しくない任意のsmIdx値およびサブビットストリームに対するjの任意の値について0に等しいものとする。
…
この条項および条項G.11.3の残り部分において、[[出力レイヤセット]]パーティションのサブビットストリームについて、general_profile_idc、general_profile_compatibility_flag[ i ]、general_tier_flag、およびgeneral_level_idcは、それぞれ、出力レイヤセットに対するprofile_tier_level( )シンタックス構造における、general_profile_idc、general_profile_compatibility_flag[ i ]、general_tier_flag、およびgeneral_level_idcを指す。
Stereo Mainプロファイルへの[[出力レイヤセット]]パーティションのサブビットストリームの準拠は、general_profile_idcが6[[5]]に等しいか、またはgeneral_profile_compatibility_flag[ 6 [[5]] ]が1に等しいことによって指示される。
-  注記--general_profile_compatibility_flag[ 6 [[5]] ]が1に等しいときに、[[1に等しいiに対する]]general_profile_compatibility_flag[ 1 [[i]] ]も1に等しくなっているべきである。
【０１８３】
さらに、本開示のいくつかの例において、次の変更は、MV-HEVC WD8の段落G.11.2.1に対して行われ得る。以下のテキストは、本開示で上述されている段落G.11.2.1の例示的なバージョンの一部への変更を指示している。
G.11.2.1 一般的な層およびレベル限度
条件(a)は、次のように変更される。
j) パーティションの値[[内の各レイヤについて、]]PicSizeInSamplesYはMaxLumaPs以下であるものとし、ここで、MaxLumaPsはパーティションの層およびレベルについてTable A-1で指定されている。
【０１８４】
それに加えて、本開示のいくつかの例において、次の変更は、MV-HEVC WD8の段落G.11.2.2に対して行われ得る。以下のテキストは、本開示で上述されている段落G.11.2.1の例示的なバージョンの一部への変更を指示している。
G.11.2.2 Main、Main 10、およびStereo Mainプロファイルに対するプロファイル特有のレベル限度
指定された層およびレベルにおいてStereo Mainプロファイルに準拠する各パーティションは、付録Cで指定されているように[[各ビットストリーム]]準拠試験に関して次の制約に従うものとし、ここで、「アクセスユニット」は、同じ出力時間を有する、パーティションに含まれるレイヤの、関連付けられている非VCL NALユニットを伴う、パーティションに含まれるピクチャのセットを表すために使用され、CPBは、BPBであると考えられる。
【０１８５】
さらに、別のところで説明されているように、本開示の1つまたは複数の技術により、各出力レイヤセットの各それぞれの分割方式について、ビットストリームのVPS VUIまたはSEIメッセージは、それぞれの分割方式に対するHRDパラメータセットを識別し得る。Table 4(表5)に示されている変更は、そのような例を実装するためにMV-HEVC WD8およびSHVC WD6の段落F.7.3.2.1.6において定義されているVPS VUIビットストリームパーティションHRDパラメータシンタックス構造に対して行われ得る。
【０１８６】
【表５】
0006530425.tif 000006
【０１８７】
Table 4(表5)の例によれば、次の変更は、MV-HEVC WD8およびSHVC WD6の段落F.7.4.3.1.6において定義されているようなVPS VUIビットストリームパーティションHRDパラメータの意味に対して行われ得る。
[[num_bitstream_partitions[ h ]は、インデックスhを有するレイヤセットに対してHRDパラメータが指定されているビットストリームパーティションの数を指定する。
layer_in_bsp_flag[ h ][ i ][ j ]は、インデックスjを有するレイヤがインデックスhを有するレイヤセット内のインデックスiを有するビットストリームパーティションの一部であることを指定する。]]
num_bsp_sched_combinations_minus1[ h ][ i ]に1を加えた値は、配信スケジュール、および[[インデックスhを有する]]h番目の出力レイヤセットのi番目の分割方式に対するビットストリームパーティションに指定されたhrd_parameters( )の組合せの数を指定する。
変数SchedCombCnt[ h ][ i ]は、num_bsp_sched_combinations_minus1[ h ][ i ] + 1に等しくなるように設定される。
bsp_comb_hrd_idx[ h ][ i ][ j ][ k ]は、配信スケジュール、および[[インデックスhを有する]]h番目の出力レイヤセットに対するi番目の分割方式の[[インデックスjを有する]][[ビットストリーム]]k番目のパーティションに指定されたhrd_parameters( )の[[i]]j番目の組合せで使用されるvps_vui_bsp_hrd_parameters( )シンタックス構造内のhrd_parameters( )のインデックスを指定する。
bsp_comb_sched_idx[ h ][ i ][ j ][ k ]は、配信スケジュールおよびi番目の分割方式の[[インデックスjを有する]][[ビットストリーム]]k番目のパーティションに対して、[[および]][[インデックスhを有する]]h番目の出力レイヤセットに対して指定されたhrd_parameters( )の[[i]]j番目の組合せにおいて使用されるインデックスbsp_comb_hrd_idx[ h ][ i ][ j ][ k ]を有するhrd_parameters( )シンタックス構造内の配信スケジュールのインデックスを指定する。
【０１８８】
さらに、本開示の1つまたは複数の技術により、以下のTable 5(表6)に示されている変更は、MV-HEVC WD8およびSHVC WD6の段落F.14.1.5において定義されているようなビットストリームパーティションHRDパラメータSEIメッセージシンタックスに対して行われ得る。
【０１８９】
【表６Ａ】
0006530425.tif 000007
【０１９０】
【表６Ｂ】
0006530425.tif 000008
【０１９１】
さらに、Table 5(表6)の例において、ビットストリームパーティションネスティングSEIメッセージは、SEIメッセージを出力レイヤセットのビットストリームパーティションに関連付けるためのメカニズムを提供する。Table 5(表6)の例において、ビットストリームパーティションHRDパラメータSEIメッセージの意味への次の変更は、MV-HEVC WD8およびSHVC WD6の段落F14.2.5に対して対して行われ得る。
num_sei_partitioning_schemes_minus1[olsIdx]に1を加えた値で、インデックスolsIdxを有する出力レイヤセットに対して指定されている分割方式の数を指定する。num_sei_partitioning_schemes_minus1[ olsIdx ]の値は、0から15(含む)までの範囲内とする。
num_sei_bitstream_partitions_minus2[[1]][ olsIdx ][ i ]に[[1]]2を加えた値で、HRDパラメータがインデックスolsIdxを有する出力レイヤセットのi番目の分割方式に対して指定されているのビットストリームパーティションの数を指定する。num_sei_bitstream_partitions_minus1[ olsIdx ][ i ]の値は、0からNumLayersInIdList[ LayerSetIdxForOutputLayerSet[ olsIdx ] ] - 1(含む)までの範囲内とする。num_sei_bitstream_partitions_minus1[ olsIdx ][ 0 ]の値は、0に等しいと推論される。
変数NumPartitionInScheme[i][j]の値は、次のように導出される。
NumSeiBitstreamPartitions [ olsIdx ][ i ] = ( i = = 0 ) ? 1 : num_sei_bitstream_partitions_minus2[ i ][ j ] + 2.
sei_layer_in_bsp_flag[ olsIdx ][ i ][ j ][ k ]は、インデックス[[j]]kを有するレイヤがインデックスolsIdxを有するレイヤセットのインデックスiを有する分割方式内のインデックス[[i]]jを有するビットストリームパーティションの一部であることを指定する。layer_included_in_partition_flag[ olsIdx ][ 0 ][ 0 ][ k ]の値は、0からvps_max_layers_minus1(含む)までの範囲内のkに対してlayer_id_included_flag[ LayerSetIdxForOutputLayerSet[ olsIdx ] ][ k ]の値に等しいことが推論される。
インデックス[[j]]nを有するビットストリームパーティションが、0からN[[n]]um[[_s]]Sei[[_b]]Bitstream[[_p]]Partitions [[_minus1]][ olsIdx ][ i ][[(含む)]]までの範囲内の[[i]]mおよび[[j]]nの任意の値についてインデックス[[i]]mを有するビットストリームパーティション内の任意のレイヤの直接的または間接的参照レイヤを含まないことがビットストリーム準拠の要求条件であり、したがって[[i]]mは、[[j]]nよりも小さい。
sei_num_bsp_sched_combinations_minus1[ olsIdx ][ i ]に1を加えた値は、配信スケジュール、およびインデックスolsIdxを有する出力レイヤセットのインデックスiを有する分割方式に対するビットストリームパーティションに指定されたhrd_parameters( )の組合せの数を指定する。
変数SchedCombCnt[ olsIdx ][ i ]は、sei_num_bsp_sched_combinations_minus1[ olsIdx ][ i ] + 1に等しくなるように設定される。
sei_bsp_comb_hrd_idx[ olsIdx ][ i ][ j ][ k ]は、配信スケジュール、およびインデックスolsIdxを有する出力レイヤセットに対する[[および]]インデックスiを有する分割方式のインデックス[[j]]kを有するビットストリームパーティションに指定されたhrd_parameters( )の[[i]]j番目の組合せで使用されるこのSEIメッセージ内のhrd_parameters( )のインデックスを指定する。
sei_bsp_comb_sched_idx[ olsIdx ][ i ][ j ][ k ]は、配信スケジュールおよびインデックスolsIdxを有する出力レイヤセットに対する[[および]]インデックスiを有する分割方式のインデックス[[j]]kを有するビットストリームパーティションに対して指定されたhrd_parameters( )の[[i]]j番目の組合せにおいて使用されるインデックスsei_bsp_comb_hrd_idx[ olsIdx ][ i ][ j ][ k ]を有するhrd_parameters( )シンタックス構造内の配信スケジュールのインデックスを指定する。
【０１９２】
MV-HEVC WD8およびSHVC WD6における付録Cでは、HRDについて説明している。より具体的には、MV-HEVC WD8およびSHVC WD6の段落C.1は、被試験ビットストリームと呼ばれる、ビットストリームの準拠をチェックするために複数の試験が必要になることがあることを示している。さらに、MV-HEVC WD8およびSHVC WD6の段落C.1は、ビットストリームの準拠をチェックするために適用する一連のステップを示している。
【０１９３】
本開示のいくつかの例において、MV-HEVC WD8およびSHVC WD6の段落C.1で説明されている一連のステップは、本開示の別のところで説明されている分割方式をサポートするために修正される。たとえば、次の修正は、MV-HEVC WD8およびSHVC WD6の段落C.1に対して行われ得る。
各試験について、次のステップがリストされている順序で適用される。
1. TargetOpとして表されている、被試験動作点は、ターゲット出力レイヤセットを識別するTargetOutputLayerSetIdxに対する値を選択し、ターゲットの最高のTemporalId値HighestTidを選択することによって選択される。TargetOutputLayerSetIdxの値は、0からNumOutputLayerSets - 1(含む)までの範囲内とする。HighestTidの値は、0からMaxSubLayersInLayerSetMinus1[ LayerSetIdxForOutputLayerSet [ TargetOutputLayerSetIdx ] ](含む)までの範囲内とする。次いで、変数TargetDecLayerSetIdx、TargetOptLayerIdList、およびTargetDecLayerIdListが、式8-1によって指定されているように導出される。被試験動作点は、TargetOptLayerIdListに等しいOptLayerIdList、TargetDecLayerIdListに等しいOpLayerIdList、およびHighestTidに等しいOpTidを有する。
2. 条項10において指定されているようなサブビットストリーム抽出プロセスは、被試験ビットストリーム、HighestTid、およびTargetDecLayerIdListを入力として呼び出され、出力は、BitstreamToDecodeに割り当てられる。分割方式は、選択された出力レイヤセットに対するアクティブなVPSでシグナリングされた分割方式のリストから選択される。その後、選択された分割方式について、選択された出力レイヤセットに対するVPSでシグナリングされたパーティションのリストからパーティションが選択される。
3. 選択されたパーティションが、選択された出力レイヤセットのすべてのレイヤを含む場合、ビットストリーム特有のCPB操作が選択される。他の場合には、ビットストリームパーティション特有のCPB操作が選択される。その後のステップは、被試験ビットストリームパーティションと呼ばれる、選択されたパーティションのサブビットストリームに適用され、[[両方のvps_vui_bsp_hrd_parameters( )シンタックス構造がアクティブなVPS内に存在しているときに、TargetPartitioningSchemeとして表される分割方式は、1からnum_partitioning_schemes_minus1[ TargetOutputLayerSetIdx ](含む)までの範囲内にあるTargetPartitioningSchemeIdxに対する値を選択することによって選択される。num_bitstream_partitionsnNum_pPartitions_iIn_sScheme _minus1[ TargetDecOutputLayerSetIdx ][ TargetPartitioningSchemeIdx ]が1 01よりも大きいときに、TargetPartitioningSchemeIdxが1からnum_partitioning_schemes_minus1[ TargetOutputLayerSetIdx ]までの範囲内にある選択されたTargetPartitioningSchemeのインデックスであるか、または両方のビットストリームパーティションHRDパラメータSEIメッセージが存在し、SEIメッセージが0よりも大きいシンタックス要素num_sei_bitstream_partitions_in_scheme bitstream_partitions_minus1[ TargetDecOutputLayerSetIdx ][ TargetPartitioningSchemeIdx ]を含む場合、ビットストリーム特有のCPB操作もしくはビットストリームパーティション特有のCPB操作が準拠試験のために選択され、両方のCPB操作がビットストリームの準拠をチェックするために試験されるものとする。ビットストリーム特有のCPB操作が試験されるときに、その後のステップは、被試験ビットストリームに対して適用される。ビットストリームパーティション特有のCPB操作が試験されるときに、その後のステップは、被試験ビットストリームパーティションと呼ばれる、被試験ビットストリームの各ビットストリームパーティションに適用される。ビットストリームパーティション特有のCPB操作が試験され、HRDへの入力がビットストリームであるときに、ビットストリームパーティションは]]条項C.6におけるビットストリームパーティションを導出するために逆多重化プロセスで導出される。ビットストリームパーティション特有のCPB操作が選択されたときに、選択された出力レイヤセットの同じ分割方式の他のパーティションのうちのビットストリームパーティションは、これらのパーティションのHRDパラメータに従ってスケジュールされたとおりにHRD以外の、ただしHRDに利用可能な復号機能によって復号されると仮定される。
4. TargetOpに適用可能なhrd_parameters( )シンタックス構造およびsub_layer_hrd_parameters( )シンタックス構造は次のように選択される。
-  ビットストリーム特有のCPB操作が試験される場合、以下が適用される。
-  TargetDecLayerIdListが被試験ビットストリーム内に存在するすべてのall nuh_layer_id値を含む場合、ベースレイヤに対するアクティブなSPS内の(または本明細書で指定されていない外部手段を通じて提供される)hrd_parameters( )シンタックス構造が選択される。
-  そうでない場合、TargetOpに適用されるアクティブなVPS内の(または本明細書で指定されていない何らかの外部手段を通じて提供される)hrd_parameters( )シンタックス構造が選択される。
-  そうでない場合、hrd_parameters( )シンタックス構造は、次のように選択される。
-  次の条件におけるhrd_parameters( )シンタックス構造のいずれか1つが、次の条件の両方が真である場合に、選択され得る。
-  vps_vui_bsp_hrd_parameters( )シンタックス構造は、アクティブなVPS内に存在し(または本明細書で指定されていない何らかの外部手段を通じて利用可能であり)、TargetOpに、TargetPartitioningSchemeに、および被試験ビットストリームパーティションに適用されるhrd_parameters( )シンタックス構造を含む。
-  TargetOpに適用されるスケーラブルなネスティングSEIメッセージに含まれ、TargetOpに、TargetPartitioningSchemeに、および被試験ビットストリームパーティションに適用されるhrd_parameters( )シンタックス構造を含むビットストリームパーティションHRDパラメータSEIメッセージが存在する(または本明細書で指定されていない何らかの外部手段を通じて利用可能である)。
-  そうでない場合、vps_vui_bsp_hrd_parameters( )シンタックス構造が、アクティブなVPS内に存在し(または本明細書で指定されていない何らかの外部手段を通じて利用可能であり)、TargetOpに、TargetPartitioningSchemeに、および被試験ビットストリームパーティションに適用されるhrd_parameters( )シンタックス構造を含む場合、そのhrd_parameters( )シンタックス構造が選択される。
-  そうでない場合、TargetOpおよびTargetPartitioningSchemeに適用されるスケーラブルなネスティングSEIメッセージに含まれるビットストリームパーティションHRDパラメータSEIメッセージ内の被試験ビットストリームパーティションに適用されるhrd_parameters( )シンタックス構造が存在するものとし(または本明細書で指定されていない何らかの外部手段を通じて利用可能であるものとし)、選択される。
選択されたhrd_parameters( )シンタックス構造内で、BitstreamToDecodeがタイプIビットストリームである場合、条件「if( vcl_hrd_parameters_present_flag )」の直後に来るsub_layer_hrd_parameters( HighestTid )シンタックス構造が選択され、変数NalHrdModeFlagが0に等しくなるように設定され、そうでない場合(BitstreamToDecodeがタイプIIビットストリームである)、条件「if( vcl_hrd_parameters_present_flag )」(この場合、変数NalHrdModeFlagは0に等しくなるように設定される)または条件「if( nal_hrd_parameters_present_flag )」(この場合、変数NalHrdModeFlagは1に等しくなるように設定される)のいずれかの直後に来るsub_layer_hrd_parameters( HighestTid )シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームであり、NalHrdModeFlagが0に等しいとき、フィラーデータNALユニットを除くすべての非VCL NALユニット、ならびにNALユニットストリーム(付録Bで指定されているような)からバイトストリームを形成するすべてのleading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素は、存在するとするときに、BitstreamToDecodeから破棄され、残りのビットストリームは、BitstreamToDecodeに割り当てられる。
5. TargetOpに適用可能なバッファリング期間SEIメッセージ(BitstreamToDecode内に存在するか、または本明細書で指定されていない外部手段を通じて利用可能である)に関連付けられているアクセスユニットは、HRD初期化点として選択され、アクセスユニット0と呼ばれる。適用可能なバッファリング期間SEIメッセージは、次のように、本明細書で指定されていない外部手段を通じて利用可能であるか、またはアクセスユニット0から選択される。
-  ビットストリーム特有のCPB操作が試験される場合、以下が適用される。
-  TargetDecLayerIdListが被試験ビットストリーム内に存在しているすべてのnuh_layer_id値を含む場合、ネスティングされていないバッファリング期間SEIメッセージが選択される。
-  そうでない場合、bitstream_subset_flagが1に等しくTargetOpに適用可能であるスケーラブルなネスティングSEIメッセージに含まれるバッファリング期間SEIメッセージが選択される。
-  そうでない場合、被試験ビットストリームパーティションに適用可能なビットストリームパーティションネスティングSEIメッセージに含まれるバッファリング期間SEIメッセージが選択される。
変数MultiLayerCpbOperationFlagは、次のように導出される。
-  選択されたバッファリング期間SEIメッセージが、ネスティングされていないか、またはベースレイヤのみを含むサブビットストリームにのみ適用されるスケーラブルなネスティングSEIメッセージに含まれる場合、MultiLayerCpbOperationFlagは0に等しくなるように設定される。
-  そうでない場合、MultiLayerCpbOperationFlagは1に等しくなるように設定される。
6. アクセスユニット0から始まるBitstreamToDecode内のアクセスユニットについて、アクセスユニットに関連付けられ、TargetOpに適用されるバッファリング期間SEIメッセージ(BitstreamToDecode内に存在しているか、または本明細書で指定されていない外部手段を通じて利用可能である)が選択され、アクセスユニットに関連付けられ、TargetOpに適用されるピクチャタイミング期間SEIメッセージ(BitstreamToDecode内に存在しているか、または本明細書で指定されていない外部手段を通じて利用可能である)が選択され、SubPicHrdFlagが1に等しく、sub_pic_cpb_params_in_pic_timing_sei_flagが0に等しいときに、アクセスユニット内の復号ユニットに関連付けられ、TargetOpに適用される復号ユニット情報SEIメッセージ(BitstreamToDecode内に存在しているか、または本明細書で指定されていない外部手段を通じて利用可能である)が次のように選択される。
-  ビットストリーム特有のCPB操作が試験される場合、以下が適用される。
-  TargetDecLayerIdListが被試験ビットストリーム内に存在しているすべてのnuh_layer_id値を含む場合、ネスティングされていないバッファリング期間、ピクチャタイミング、および復号ユニット情報SEIメッセージが選択される。
-  そうでない場合、bitstream_subset_flagが1に等しくTargetOpに適用可能であるスケーラブルなネスティングSEIメッセージに含まれるバッファリング期間、ピクチャタイミング、および復号ユニット情報SEIメッセージが選択される。
-  そうでない場合、ビットストリームパーティションネスティングSEIメッセージに含まれ、被試験ビットストリームパーティションに適用可能なバッファリング期間、ピクチャタイミング、および復号ユニット情報SEIメッセージが選択される。
7. SchedSelIdxの値は次のように選択される。
-  ビットストリーム特有のCPB操作が試験される場合、選択されたSchedSelIdxは、0からcpb_cnt_minus1[ HighestTid ](含む)までの範囲内にあるものとし、ここで、cpb_cnt_minus1[ HighestTid ]は上で選択されたようにsub_layer_hrd_parameters( HighestTid )シンタックス構造内に見つかる。
-  そうでない場合(ビットストリームパーティション特有のCPB操作が試験される)、SchedSelCombIdxが被試験ビットストリームについて選択され、各被試験ビットストリームパーティションに使用される。以下が適用される。
-  vps_vui_bsp_hrd_parameters( )シンタックス構造が、アクティブなVPS内に存在し(または本明細書で指定されていない何らかの外部手段を通じて利用可能にされ)、TargetOpおよび被試験ビットストリームパーティションに適用される選択されたhrd_parameters( )シンタックス構造を含む場合、選択されたSchedSelCombIdxは0からnum_bsp_sched_combinations_minus1[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ](含む)までの範囲内にあるものとし、選択されたSchedSelIdxは、bsp_comb_sched_idx[ TargetOutput[[Dec]]LayerSetIdx ] [ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ]に等しいものとし、ここで、jは被試験ビットストリームパーティションのインデックスであり、ここで、TargetPartitioningSchemeIdxは、1からnum_partitioning_schemes_minus1[ TargetOutputLayerSetIdx ]までの範囲内にある選択されたTargetPartitioningSchemeのインデックスである。
-  そうでない場合、選択されたSchedSelCombIdxは、0からsei_num_bsp_sched_combinations_minus1[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ](含む)までの範囲内にあるものとし、選択されたSchedSelIdxは、TargetOpに適用可能なビットストリームパーティションHRDパラメータSEIメッセージのsei_bsp_comb_sched_idx[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ]に等しいものとし、ここで、jは被試験ビットストリームパーティションのインデックスである。
…
HRDは次のように動作する。
-  HDRは、復号ユニット0で初期化され、CPB、DPBの各サブDPB、および各BPBは空に設定される(各サブDPBに対するサブDPBの充足量が0に等しくなるように設定されている)。
注記6-初期化後、HRDは、その後のバッファリング期間SEIメッセージによって再び初期化されることはない。
-  ビットストリーム特有のCPB操作については、指定された到着スケジュールに従ってCPBに流れ込む復号ユニットに関連付けられているデータは、HSSによって配信される。ビットストリームパーティション特有のCPB操作については、指定された到着スケジュールに従ってBPBに流れ込む復号ユニットに関連付けられているデータは、HBPSによって配信される。
-  ビットストリームパーティション特有のCPB操作が使用されるときに、インデックスjを有する各ビットストリームパーティションは、条項C.2で指定されているように処理され、その際にHSSはHPBSによって置き換えられ、SchedSelIdxは、vps_vui_bsp_hrd_parameters( )シンタックス構造がアクティブなVPS内に存在するか、もしくは本明細書で指定されていない何らかの外部手段を通じて利用可能である場合に、bsp_comb_sched_idx[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ]に等しいか、またはそうでない場合に、TargetOpに適用可能なビットストリームパーティションHRDパラメータSEIメッセージのsei_bsp_comb_sched_idx[ TargetOutput[[Dec]]LayerSetIdx ][ TargetPartitioningSchemeIdx ][ SchedSelCombIdx ][ j ]に等しい。
-  各復号ユニットに関連付けられているデータが取り出され、復号ユニットのCPB取出し時間に瞬時復号プロセスによって瞬時に復号される。
-  各復号されたピクチャは、DPB内に置かれる。
-  復号されたピクチャは、インター予測参照にもはや必要なくなり、また出力にもはや必要なくなったときにDPBから取り出される。
【０１９４】
上で示されているように、HRDが、出力レイヤセットのすべてのレイヤを必ずしも含まない1つまたは複数の分割方式のうちの特定の分割方式の選択されたパーティションに基づき、各分割方式の各パーティションを試験するときに、HRDは、パーティション特有のコーディングピクチャバッファ(CPB)操作を適用し得る。たとえば、HRDは、VUI内のビットストリームスケジューリングパラメータ(BSP)シンタックス構造から、1つまたは複数のHRDパラメータセットを取得し得る。類似の例において、HRDは、SEIメッセージ内のBSPシンタックス構造から、1つまたは複数のHRDパラメータセットを取得し得る。出力レイヤセットの1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、HRDは、BSPシンタックス構造から、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素(たとえば、bsp_comb_hrd_idx)および配信スケジュールを指定するそれぞれのシンタックス要素(たとえば、sei_bsp_comb_sched_idx)を取得し得る。
【０１９５】
対応する例において、ビデオエンコーダ20は、VUI内のBSPシンタックス構造内に、1つまたは複数のHRDパラメータセットを含める。それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、ビデオエンコーダ20は、BSPシンタックス構造内に、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素および配信スケジュールを指定するそれぞれのシンタックス要素を含めることができる。別の例において、ビデオエンコーダ20は、SEIメッセージ内のBSPシンタックス構造内に、1つまたは複数のHRDパラメータセットを含める。それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、ビデオエンコーダ20は、BSPシンタックス構造内に、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素および配信スケジュールを指定するそれぞれのシンタックス要素を含める。
【０１９６】
さらに、いくつかの例において、MV-HEVC WD8およびSHVC WD6の段落C.4は、次のように修正される。
次の文が取り除かれる。
ビットストリームは、条項C.1で指定されているように準拠についてHRDによって試験される。
次の文が追加される。
各分割方式の各パーティションのサブビットストリームは、条項C.1で指定されているように準拠についてHRDによって試験される。
【０１９７】
上で示されているように、ビデオ処理デバイスは、マルチレイヤデコーダに対して指定されたプロファイル、層、およびレベルの三組みのリストに基づきマルチレイヤビデオデコーダがビットストリームを復号することができるかどうかを決定することができるものとしてよい。次のテキストは、これがどのように実装され得るかを示す一例である。
G.11.3  デコーダ機能
qを正整数として0からq - 1(含む)までの範囲内のiについて(Pi , Ti , Li)によって表されるプロファイル、層、およびレベルの三組みのセットに準拠するデコーダは、次の条件のすべてが適用されるp個のパーティションを有する少なくとも1つの分割方式とともに出力レイヤセットのすべてのサブビットストリームを復号することができるものとする。
-  pはq以下である0からp - 1(含む)までの範囲内のjについて、変数Partition[ j ]は分割方式におけるj番目のパーティションを表すとする。
-  Partition[ 0 ]からPartition[ p- 1 ](含む)のパーティションに含まれるレイヤの合併は、出力レイヤセット内のすべてのレイヤを表す。
-  0からp - 1(含む)までの範囲内のjについて、変数PartitionAssignment[ j ]は、プロファイル、層、およびレベルの三組み(PPartitionAssignment[ j ], TPartitionAssignment[ j ], LPartitionAssignment[ j ])のPartition[ j ]への割り当てを復号することを指示するために使用される。PartitionAssignment[ j ]の値は、次のように導出される。
-  UnassignedProfileTierLevelTriplesをUnassignedProfileTierLevelTriples[ i ]が0からq - 1(含む)までの範囲内のiについて(Pi , Ti , Li)に等しいプロファイル、層、およびレベルの三組みの配列とする。
-  以下が適用される。
for( j = 0; j < p; j++ )
PartitionAssignment[ j ] = - 1
if(空でないUnassignedProfileTierLevelTriples[ x ]があり、
Partition[ j ]のgeneral_profile_idcはPxに等しいか、またはgeneral_profile_compatibility_flag[ Px ]は
Partition[ j ]に対して1に等しく、
general_tier_flag of Partition[ j ]はTx以下の層を表し、
Partition[ j ]のgeneral_level_idcはLx以下のレベルを表す) {
PartitionAssignment[ j ] = x
UnassignedProfileTierLevelTriples[ x ]を空にする
}
-  0からp - 1(含む)までの範囲内の- 1 jに等しいPartitionAssignment[ j ]内のエントリがないものとする。
【０１９８】
図5Aは、本開示の技術による、ビデオエンコーダ20の例示的な動作を示すフローチャートである。図5Aの例において、ビデオエンコーダ20は、ビデオデータの符号化された表現を含むビットストリームを生成する(300)。ビットストリームは、複数のレイヤを含む。ビットストリームを生成する一環として、ビデオエンコーダ20は、ビットストリーム内に、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含める(302)。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併が出力レイヤセットを形成する非連結パーティションのそれぞれのセットを指定し、ここにおいて、非連結パーティションのそれぞれのセットの各それぞれのパーティションは1つまたは複数のレイヤを含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなる。
【０１９９】
いくつかの例において、ビットストリームを生成する一環として、1つまたは複数の分割方式のうちの各それぞれの分割方式の各それぞれのパーティションについて、ビデオエンコーダ20は、ビットストリームにおいて、それぞれのパーティションに対するプロファイル、層、およびレベルを指示するそれぞれのシンタックス要素を指示し得る。
【０２００】
さらに、いくつかの例において、ビデオエンコーダ20は、ビットストリーム内に、複数の出力レイヤセットを指示するシンタックス要素を含めることができ、複数の出力レイヤセットは第1の出力レイヤセットを含む。複数の出力レイヤセットのうちの各それぞれの出力レイヤセットについて、ビデオエンコーダ20は、ビットストリーム内に、それぞれの出力レイヤセットに対する1つまたは複数の分割方式を指示するシンタックス要素を含み得る。
【０２０１】
いくつかの例において、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素をシグナリングする一環として、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式の各それぞれのパーティションについて、出力レイヤセットの各それぞれのレイヤについて、ビデオエンコーダ20は、ビットストリーム内に、それぞれのレイヤがそれぞれのパーティションに含まれるかどうかを指示するシンタックス要素を含めることができる。
【０２０２】
さらに、図5Aの例において、ビデオエンコーダ20は、ビットストリームを出力する(304)。たとえば、ビデオエンコーダ20は、出力インターフェース22などの、出力インターフェースにビットストリームを出力し得る。いくつかの例において、ビデオエンコーダ20は、ビットストリームを記憶のため1つまたは複数のコンピュータ可読データ記憶媒体に出力することができる。
【０２０３】
図5Bは、本開示の技術による、ビデオデコーダ30の例示的な動作を示すフローチャートである。図5Bの例において、ビデオデコーダ30は、ビデオデータの符号化された表現を含むビットストリームを復号し、ビットストリームは複数のレイヤを含む(320)。ビットストリームを復号する一環として、ビデオデコーダ30は、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得する(322)。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併することで出力レイヤセットを形成する非連結なパーティションのそれぞれのセットを指定する。非連結なパーティションのそれぞれのセットの各それぞれのパーティションは、レイヤのうちの1つまたは複数を含む。出力レイヤセットは、複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなるものとしてよい。いくつかの例において、1つまたは複数のシンタックス要素を取得する一環として、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式の各それぞれのパーティションについて、出力レイヤセットの各それぞれのレイヤについて、ビデオデコーダ30は、ビットストリームから、それぞれのレイヤがそれぞれのパーティションに含まれるかどうかを指示するシンタックス要素を取得することができる。
【０２０４】
さらに、ビットストリームを復号する一環として、ビデオデコーダ30は、複数のハードウェアコア内の異なる処理コアを使用して特定の分割方式のパーティションの各々を復号し、特定の分割方式は1つまたは複数の分割方式のうちの1つである(324)。いくつかの例において、ビットストリームを復号する一環として、ビデオデコーダ30は、1つまたは複数の分割方式のうちの各それぞれの分割方式の各それぞれのパーティションについて、ビットストリームから、それぞれのパーティションに対するそれぞれのプロファイル、層、およびレベル(PTL)情報を指示するそれぞれのシンタックス要素を取得し得る。
【０２０５】
いくつかの例において、ビデオデコーダ30は、分割方式のパーティションに対するPTL情報に基づき、1つまたは複数の分割方式から特定の分割方式を決定し得る。さらに、そのような例において、ビデオデコーダ30は、ハードウェアコアのうちのそれぞれ1つのコアを使用して特定の分割方式の各それぞれのパーティションを復号することができ、ここにおいて、ハードウェアコアのうちの各それぞれの1つのコアは、それぞれの単一レイヤデコーダを実装する。いくつかの例において、複数のハードウェアコアのうちの少なくとも第1のハードウェアコアは、複数のハードウェアコアのうちの第2のハードウェアコアからの異なるプロファイル、層、またはレベルをサポートする。他の例において、少なくとも複数のハードウェアコアのうちの第1のハードウェアコアおよび複数のハードウェアコアのうちの第2の、異なるハードウェアコアは、プロファイル、層、およびレベルの同じセットをサポートする。
【０２０６】
いくつかの例において、ビデオデコーダ30がビットストリームを復号するときに、ビデオデコーダ30は、ビットストリームから、複数の出力レイヤセットを指示するシンタックス要素を取得し、複数の出力レイヤセットは第1の出力レイヤセットを含む。そのような例において、複数の出力レイヤセットのうちの各それぞれの出力レイヤセットについて、ビデオデコーダ30は、ビットストリームから、それぞれの出力レイヤセットに対する1つまたは複数の分割方式を指示するシンタックス要素を取得し得る。
【０２０７】
図6Aは、本開示の技術による、ビデオエンコーダ20の例示的な動作を示すフローチャートである。図6Aの例において、ビデオエンコーダ20は、ビデオデータの符号化された表現を含むビットストリームを生成する(350)。ビットストリームは、複数のレイヤを含む。ビットストリームを生成する一環として、ビデオエンコーダ20は、ビットストリーム内に、出力レイヤセットに対する1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を含める(352)。図6Aの例において、出力レイヤセットは、複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなる。さらに、1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、1つまたは複数のパーティションへの出力レイヤセットの分割を指定し、ここにおいて、出力レイヤセット内の各レイヤは、それぞれの分割方式においてちょうど1つのパーティションに属す。それに加えて、ビットストリームを生成する一環として、1つまたは複数の分割方式の各それぞれの分割方式について、ビデオエンコーダ20は、ビットストリーム内のSEIメッセージまたはビットストリーム内のVPS内のVUIに、それぞれの分割方式に対するHRDパラメータセットを指示するシンタックス要素(たとえば、bsp_comb_hrd_idxシンタックス要素)のそれぞれのセットを含める(354)。ビデオエンコーダ20は、ビットストリームを出力する(356)。たとえば、ビデオエンコーダ20は、出力インターフェース22などの、出力インターフェースにビットストリームを出力し得る。いくつかの例において、ビデオエンコーダ20は、ビットストリームを記憶のため1つまたは複数のコンピュータ可読データ記憶媒体に出力することができる。
【０２０８】
いくつかの例において、1つまたは複数の分割方式の各々に対するHRDパラメータセットを指示するシンタックス要素のそれぞれのセットを含める一環として、ビデオエンコーダ20は、VUI内のビットストリームスケジューリングパラメータ(BSP)シンタックス構造内に、1つまたは複数のHRDパラメータセットを含めることができる。さらに、そのような例において、それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、ビデオエンコーダ20は、BSPシンタックス構造内に、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素および配信スケジュールを指定するそれぞれのシンタックス要素を含めることができる。
【０２０９】
いくつかの例において、1つまたは複数の分割方式の各々に対するHRDパラメータセットを指示するシンタックス要素のそれぞれのセットを含める一環として、ビデオエンコーダ20は、SEIメッセージ内のビットストリームスケジューリングパラメータ(BSP)シンタックス構造内に、1つまたは複数のHRDパラメータセットを含めることができる。さらに、そのような例において、それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、ビデオエンコーダ20は、BSPシンタックス構造内に、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素および配信スケジュールを指定するそれぞれのシンタックス要素を含めることができる。
【０２１０】
図6Bは、本開示の技術による、ビデオデコーダ30の例示的な動作を示すフローチャートである。図6Bの例において、ビデオデコーダ30は、ビデオデータの符号化された表現を含むビットストリームから、出力レイヤセットに対する1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得する(370)。図6Bの例において、出力レイヤセットは、複数のレイヤのすべてのレイヤ、または複数のレイヤの真部分集合であるサブセットからなる。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、1つまたは複数のパーティションへの出力レイヤセットの分割を指定し、ここにおいて、出力レイヤセット内の各レイヤは、それぞれの分割方式においてちょうど1つのパーティションに属す。
【０２１１】
それに加えて、図6Bの例において、1つまたは複数の分割方式の各それぞれの分割方式について、ビデオデコーダ30は、ビットストリーム内のSEIメッセージまたはビットストリーム内のVPS内のVUIから、それぞれの分割方式に対するHRDパラメータセットを指示するシンタックス要素(たとえば、bsp_comb_hrd_idxシンタックス要素)のそれぞれのセットを取得する(372)。
【０２１２】
いくつかの例において、それぞれの分割方式に対するHRDパラメータセットを指示するシンタックス要素のそれぞれのセットを取得する一環として、ビデオデコーダ30は、VUI内のビットストリームスケジューリングパラメータ(BSP)シンタックス構造から、1つまたは複数のHRDパラメータセットを取得する。そのような例において、それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、ビデオデコーダ30は、BSPシンタックス構造から、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素および配信スケジュールを指定するそれぞれのシンタックス要素を取得することができる。
【０２１３】
いくつかの例において、それぞれの分割方式に対するHRDパラメータセットを指示するシンタックス要素のそれぞれのセットを取得する一環として、ビデオデコーダ30は、SEIメッセージ内のビットストリームスケジューリングパラメータ(BSP)シンタックス構造から、1つまたは複数のHRDパラメータセットを取得する。そのような例において、それぞれの分割方式に対する1つまたは複数のスケジュール組合せのセットに含まれる各それぞれの組合せについて、それぞれの分割方式の各それぞれのパーティションについて、ビデオデコーダ30は、BSPシンタックス構造から、BSPシンタックス構造内のそれぞれのパーティションに対するHRDパラメータセットを指定するそれぞれのシンタックス要素および配信スケジュールを指定するそれぞれのシンタックス要素を取得することができる。
【０２１４】
それぞれの分割方式の各それぞれのパーティションについて、ビデオデコーダ30は、それぞれの分割方式に対するHRDパラメータに基づき、準拠に関してそれぞれのパーティションを試験する(374)。いくつかの例において、サブビットストリームを試験する一環として、ビデオデコーダ30は、出力レイヤセットのすべてのレイヤを必ずしも含まない1つまたは複数の分割方式のうちの特定の分割方式の選択されたパーティションに基づき、パーティション特有のCPB操作を適用する。いくつかの例において、特定のパーティションの準拠を試験する際に、特定のパーティションに含まれていない、パーティション内のレイヤのうちの直接的および間接的参照レイヤからの復号されたピクチャおよび他の必要な情報が、特定のパーティション内のレイヤのピクチャを復号する時点において利用可能であると仮定する。
【０２１５】
図7は、本開示の技術による、ビデオデコーダ30の例示的な動作を示すフローチャートである。図7の例において、ビデオデコーダ30は、三組みエントリのリストに基づき、ビデオデコーダ30(すなわち、マルチレイヤビデオデコーダ)が、マルチレイヤビデオデータの符号化された表現を含むビットストリームを復号することができるかどうかを決定する(400)。いくつかの例において、リスト中の三組みエントリの数は、マルチレイヤビデオデータ内の単一レイヤデコーダの数以下である。いくつかの例において、ビデオデコーダ30の単一のハードウェアコアは、複数のレイヤを復号し得る。三組みエントリのリスト内の各それぞれの三組みエントリは、マルチレイヤビデオデコーダ内のそれぞれの単一レイヤデコーダに対するプロファイル、層、およびレベルを指示する。マルチレイヤビデオデコーダがビットストリームを復号することができることに基づき、ビデオデコーダ30は、ビットストリームを復号する(402)。
【０２１６】
いくつかの例において、ビデオデコーダ30は、ビットストリームから、1つまたは複数の分割方式を指示する1つまたは複数のシンタックス要素を取得する。1つまたは複数の分割方式のうちの各それぞれの分割方式について、それぞれの分割方式は、合併することで出力レイヤセットを形成する非連結なパーティションのそれぞれのセットを指定する。非連結パーティションのそれぞれのセットの各それぞれのパーティションは、それらのレイヤのうちの1つまたは複数を含み、出力レイヤセットは複数のレイヤのすべてのレイヤまたは複数のレイヤの真部分集合であるサブセットからなる。マルチレイヤビデオデコーダが、ビットストリームを復号することができるかどうかを決定する一環として、ビデオデコーダ30は、満たされる条件に基づき、マルチレイヤビデオデコーダがビットストリームを復号することができると決定し得る。そのような例において、その条件は、1つまたは複数の分割方式のうちに好適な分割方式があることに基づき満たされる。さらに、そのような例において、好適な分割方式の各それぞれのパーティションについて、単一レイヤデコーダのうちの1つは、それぞれのパーティションを復号するように割り当てられ得る。いくつかの例において、マルチレイヤビデオデコーダがビットストリームを復号することができると決定する一環として、好適な分割方式の各それぞれのパーティションについて、次の条件が満たされることに基づき、マルチレイヤビデオデコーダは、それぞれのパーティションが単一レイヤデコーダのうちの1つに割り当てられ得ると決定し得る。条件は、単一レイヤデコーダに関連付けられているレベルがそれぞれのパーティションについてシグナリングされるレベル以上であること、単一レイヤデコーダに関連付けられている層がそれぞれのパーティションについてシグナリングされる層以上であること、およびそれぞれのパーティションに関連付けられているプロファイルが単一レイヤデコーダがプロファイルの復号をサポートするようなプロファイルであること、である。
【０２１７】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法を実装するための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０２１８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。また、任意の接続部も、厳密にはコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書において使用されるとき、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスクおよびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上述したものの組合せも、コンピュータ可読媒体の範囲内に含められるべきである。
【０２１９】
命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供されてもよく、または複合コーデックに組み込まれてもよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【０２２０】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示で説明したが、これらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。そうではなくて、上で説明されたように、様々なユニットは、コーデックハードウェアユニットの中で組み合わされてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、前述のような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０２２１】
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
【符号の説明】
【０２２２】
10  ビデオコーディングシステム
12  ソースデバイス
14  宛先デバイス
15  ネットワーク要素
16  チャネル
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
50  単一レイヤデコーダ
50A〜50D  単一レイヤデコーダ
151  CPB
162  復号ピクチャバッファ
200  予測処理ユニット
201  ビデオデータメモリ
202  残差生成ユニット
204  変換処理ユニット
206  量子化ユニット
208  逆量子化ユニット
210  逆変換処理ユニット
212  再構成ユニット
214  フィルタユニット
216  復号ピクチャバッファ
218  エントロピー符号化ユニット
220  インター予測処理ユニット
222  モーション推定ユニット
224  モーション補償ユニット
226  イントラ予測処理ユニット
250  エントロピー復号ユニット
251  コーディングピクチャバッファ(CPB)
252  予測処理ユニット
254  逆量子化ユニット
256  逆変換処理ユニット
258  再構成ユニット
260  フィルタユニット
262  復号ピクチャバッファ
264  モーション補償ユニット
266  イントラ予測処理ユニット
【図１】
0006530425.tif 000009
【図２】
0006530425.tif 000010
【図３】
0006530425.tif 000011
【図４】
0006530425.tif 000012
【図５Ａ】
0006530425.tif 000013
【図５Ｂ】
0006530425.tif 000014
【図６Ａ】
0006530425.tif 000015
【図６Ｂ】
0006530425.tif 000016
【図７】
0006530425.tif 000017