【文献】
Jill Boyce,VPS syntax for scalable and 3D extensions,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,11th Meeting: Shanghai, CN,2012年10月,JCTVC-K0204,pp.1-6
【文献】
Byeongdoo Choi et al.,Video parameter set design,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,12th Meeting: Geneva, CH,2013年 1月,JCTVC-L0132,pp.1-5
【文献】
Thomas Rusert,Inter-layer SPS prediction for HEVC extensions,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,12th Meeting: Geneva, CH,2013年 1月,JCTVC-L0137,pp.1-8
【文献】
Benjamin Bross et al.,High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call),Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,12th Meeting: Geneva, CH,2013年 3月,JCTVC-L1003_v34,p.279
【文献】
Jianle Chen et al.,SHVC Draft Text 1,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,12th Meeting: Geneva, CH,2013年 3月,JCTVC-L1008,pp.7-11,16
【文献】
Ye-Kui Wang, Ying Chen and Adarsh K. Ramasubramonian,AHG9: On VPS and SPS in HEVC 3DV and scalable extensions,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,13th Meeting: Incheon, KR,2013年 4月,JCTVC-M0268_v2,pp.1-25
【文献】
Adarsh K. Ramasubramonian et al.,MV-HEVC/SHVC HLS: Representation format information in VPS,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,14th Meeting: Vienna, AT,2013年 7月,JCTVC-N0092r1,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
output_layer_set_idx_minus1[i]が、ベースレイヤの上方のレイヤのレイヤセットのインデックスを示すために使用され、output_layer_set_idx_minus1[i]プラス1は、i番目の出力レイヤセットのレイヤセットに関するインデックスを指定する、請求項1に記載の方法。
前記ビデオデコーダにより、前記符号化されたビデオストリームからVPS拡張シンタックスにおけるエントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を受信するステップと、
前記第1の出力レイヤセットと前記第2の出力レイヤセットとを含む複数の出力レイヤセットの各々に関して前記プロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照するステップと、
をさらに含み、
前記第1の出力レイヤセットまたは前記第2の出力レイヤセットのうち少なくとも一方に関する前記符号化されたビデオデータを復号するステップは、前記ビデオデコーダにより、前記第1の出力レイヤセットまたは前記第2の出力レイヤセットの夫々の出力レイヤセットに関して参照された前記プロファイル、ティア、またはレベルシンタックス構造のうち1つまたは複数からの情報に基づいて前記第1の出力レイヤセットまたは前記第2の出力レイヤセットのうちの少なくとも一方の前記符号化されたビデオデータを前記ビデオデコーダにより復号するステップを含む、
請求項1に記載の方法。
output_layer_set_idx_minus1[i]が、ベースレイヤの上方のレイヤのレイヤセットのインデックスを示すために使用され、output_layer_set_idx_minus1[i]プラス1は、i番目の出力レイヤセットのレイヤセットに関するインデックスを指定する、請求項7に記載の方法。
前記ビデオエンコーダにより、ビデオパラメータセット(VPS)拡張シンタックスにおけるエントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を前記符号化されたビデオビットストリームに符号化するステップと、
前記第1の出力レイヤセットと前記第2の出力レイヤセットとを含む複数の出力レイヤセットの各々に関して前記プロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照するステップと、
をさらに含み、
前記第1の出力レイヤセットまたは前記第2の出力レイヤセットのうち少なくとも一方に関する前記符号化されたビデオデータを符号化するステップは、前記ビデオエンコーダにより、前記第1の出力レイヤセットまたは前記第2の出力レイヤセットの夫々の出力レイヤセットに関して参照された前記プロファイル、ティア、またはレベルシンタックス構造のうち1つまたは複数からの情報に基づいて前記第1の出力レイヤセットまたは前記第2の出力レイヤセットのうちの少なくとも一方の前記ビデオデータを符号化するステップを含む、請求項7に記載の方法。
output_layer_set_idx_minus1[i]が、ベースレイヤの上方のレイヤのレイヤセットのインデックスを示すために使用され、output_layer_set_idx_minus1[i]プラス1は、i番目の出力レイヤセットのレイヤセットに関するインデックスを指定する、請求項13に記載の装置。
【発明を実施するための形態】
【0024】
本開示は概して、ビデオコーディングおよび圧縮の分野に関する。一例として、本開示は、現在開発中の高効率ビデオコーディング(HEVC)規格に関する。「コーディング」という用語は、符号化および復号を指し、この技法は符号化、復号、または符号化と復号の両方に適用されてよい。より詳細に説明するように、この技法は、ピクチャ内のブロックが同じピクチャ内の別のブロックまたは複数のブロックに対して予想される(すなわち、空間予測)イントラコーディング(たとえば、イントラ予測)に関連し得る。
【0025】
前述のビデオコーディングシステムでは、レイヤセットのプロファイル、ティア、およびレベルにアクセスするにはエントロピー復号が必要である。同様に、レイヤ依存情報はエントロピー復号なしではアクセスできない。出力レイヤセットのシグナリングでも問題が生じ効率が悪くなることがある。
【0026】
本明細書で説明するシステム、方法、およびデバイスの一例は、ビデオパラメータセット(VPS)拡張シンタックスなどのパラメータセット拡張シンタックス内の、場合によっては、エントロピー符号化なしで(すなわち、拡張シンタックス内のエントロピー符号化された要素より前に)ならびに/あるいは低減または限定されたある程度のエントロピー符号化を用いてアクセスすることのできる拡張シンタックス内の位置にある、1組のprofile_tier_level()シンタックス構造をシグナリングするのを可能にする。VPS拡張シンタックスについて、例として本開示全体にわたって説明する。一例では、VPSは、各スライスセグメントヘッダにあるシンタックス要素によって参照されるPPS内にあるシンタックス要素によって参照されるSPS内にあるシンタックス要素のコンテンツによって決定されるような0個以上のコーディング済みビデオシーケンス(CVS)全体に適用されるシンタックス要素を含むシンタックス構造である。一例では、CVSは、NoRaslOutputFlagが1に等しいIRAPアクセスユニットと、その後に、NoRaslOutputFlagが1に等しいIRAPアクセス可能ユニットではなく、NoRaslOutputFlagが1に等しいIRAPアクセスユニットである以後のアクセスユニットまで(NoRaslOutputFlagが1に等しいIRAPアクセスユニットを含まない)のすべての以後のアクセスユニットを含む、0個以上のアクセスユニットとを復号順に含むアクセスユニットのシーケンスである。さらに、profile_tier_level()シンタックス構造はレイヤセットではなく出力レイヤセットに関連付けられてよい。その理由は、レイヤセットは、複数の出力レイヤセットに対応してもよく、1つのレイヤセットに対応する様々な出力レイヤセットが様々なレベルに適合してもよいからである。
【0027】
profile_tier_level()シンタックス構造は、プロファイル、ティア、およびレベルに関連するシンタックス情報を与えるシンタックス構造である。プロファイル、ティア、およびレベルは、HEVC規格またはHEVC拡張規格を、同様の機能要件を有し得る様々なアプリケーション全体にわたって相互運用できるように実施するための様々な適合点を指定する。いくつかの例では、プロファイルは、適合ビットストリームを生成する際に使用し得る1組のコーディングツールまたはアルゴリズムを定義してよい。いくつかの例では、ティアおよびレベルは、ビットストリームのパラメータのいくつかに制約を課してもよい。いくつかの例では、これらのパラメータは、デコーダ処理負荷およびデコーダメモリ機能に対応してよい。レベル情報は、データの処理に対する制約を確立してよい。たとえば、レベル情報は、最大サンプルレート、最大ピクチャサイズ、最大ビットレート、最小圧縮比を含んでよい。レベル情報は、復号済みピクチャバッファ(DPB)およびコーディング済みピクチャバッファ(CPB)の機能を含んでもよい。CPBは、圧縮データをデータフロー管理を目的として復号する前に保持する。DPBは、復号済みピクチャデータを保持する。
【0028】
本明細書において説明するシステム、方法、およびデバイスの別の例は、ビデオデータのレイヤを含むマルチレイヤビデオデータをコーディングするのを可能にする。これらのシステム、方法、およびデバイスは、VPS拡張シンタックスなどのパラメータセット拡張シンタックス内の、エントロピー符号化された拡張のシンタックス要素の前の位置にある、非エントロピー符号化レイヤ依存性情報を送受信することを含んでよい。さらに、これらのシステム、方法、およびデバイスは、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを復号することを含んでよい。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示す。VPS拡張シンタックスについて、例として本開示全体にわたって再び説明する。
【0029】
以下でより詳細に説明するように、一例では、1つのレイヤセットに関して複数の出力レイヤセットをシグナリングしてよい。たとえば、本明細書で説明するように、シンタックス要素output_layer_flag[lsIdx][j]がoutput_layer_flag[i][j]に変更されてよく、関連するセマンティクスがそれに応じて変更されてよい。
【0030】
以下にさらに詳しく説明するように、別の例では、プロファイル情報、ティア情報、およびレベル情報が、エントロピー復号なしにアクセスできるようにVPS内でシグナリングされてよい。このことは、ue(v)(ue(V)はエントロピー符号化を示す)以外の記述子を有するパラメータを含む以下の表のうちの1つまたは複数に示されている。たとえば、記述子は、固定長コーディング、たとえばu(n)を示すことができ、この場合、nは整数1以上である。
【0031】
以下にさらに詳しく説明するように、別の例では、レイヤ依存情報が、エントロピーなしにアクセスできるようにVPS内でシグナリングされてよい。このことは、ue(v)以外の記述子を有するパラメータを含む以下の表のうちの1つまたは複数に示されている。たとえば、記述子は、固定長コーディング、たとえばu(n)を示すことができ、この場合、nは整数1以上である。
【0032】
以下にさらに詳しく説明するように、別の例では、表現フォーマットが、エントロピー復号または低減もしくは限定されたある程度のエントロピー符号化なしにアクセスできるようにVPS内でシグナリングされてよい。たとえば、chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_luma_minus8
、およびbit_depth_vps_chroma_minus8などの表現フォーマットパラメータが、VPS内でシグナリングされ、いくつかの例ではエントロピー符号化されない。このことは、ue(v)以外の記述子を有するパラメータを含む以下の表のうちの1つまたは複数に示されている。これらの表現フォーマットパラメータは、特定のパラメータが固定長コーディング、たとえば、u(n)であることを示す記述子を有してよく、この場合、nは整数1以上である。場合によっては、「_vps」は様々なパラメータ名から除去されており、たとえば、chroma_format_vps_idcはchroma_format_idcと呼ばれ、separate_colour_plane_ vps_flagはseparate_colour_plane_flagと呼ばれ、pic_width_vps_in_luma_samplesはpic_width_in_luma_samplesと呼ばれ、pic_height_in_luma_samplesはpic_height_in_luma_samplesと呼ばれ、bit_depth_vps_luma_minus8はbit_depth_luma_minus8と呼ばれ、bit_depth_vps_chroma_minus8はbit_depth_chroma_minus8と呼ばれ、他のパラメータについても同様である。
【0033】
以下でより詳細に説明するように、別の例では、video_format、video_full_range_flag、colour_primaries、transfer_characteristics、またはmatrix_coeffsなどの視覚的信号情報が、VPS内でレイヤごとにシグナリングされてよい。本明細書で説明するように、video_format、video_full_range_flag、colour_primari、transfer_characteristics、またはmatrix_coeffsなどの視覚的信号情報は、たとえばHEVC規格の付属書類Eに明記されたようにビデオ活用性情報(VUI)パラメータのサブセットであってよい。VUI、したがって視覚的信号情報は、VPSに含まれ、VPS内でレイヤごとにシグナリングされてよい。
【0034】
以下でより詳細に説明するように、別の例では、それぞれに異なる空間解像度、ビット深度、またはカラーフォーマットを有するレイヤによってシーケンスパラメータセット(SPS)共有が実行されてよい。一例では、SPSは、各スライスセグメントヘッダにあるシンタックス要素によって参照されるPPS内にあるシンタックス要素のコンテンツによって決定されるような0個以上のCVS全体に適用されるシンタックス要素を含むシンタックス構造である。いくつかの例では、マルチレイヤビデオデータを復号する方法は、ビデオパラメータセットおよび第1のシーケンスパラメータセットを受信することを含んでよい。この方法は、第1のシーケンスパラメータセットを参照する第1のレイヤを受信することと、空間解像度、ビット深度、およびカラーフォーマットのうちの少なくとも1つについて第1のレイヤとは異なる値を有し、第1のシーケンスパラメータセットを参照する第2のレイヤを受信することとを含んでもよい。さらに、この例示的な方法は、ビデオパラメータセットおよび第1のシーケンスパラメータセットからの情報に基づいて第1および第2のレイヤのビデオデータを復号することを含んでよい。
【0035】
以下でより詳細に説明するように、別の例では、レイヤID(nuh_layer_id)が0よりも大きいSPSのVUIにおいてタイミング情報はコーディングされない。いくつかの例では、レイヤIDが0よりも大きいSPSを参照するレイヤには、VPS内でシグナリングされるタイミング情報が使用される。
【0036】
以下でより詳細に説明するように、別の例では、デフォルトの出力レイヤセットに目標出力レイヤの明示的なシグナリングは使用されない。たとえば、multiple_output_layer_sets_in_layer_set_flagが0に等しいことは、VPSによってレイヤごとに1つの出力レイヤのみが指定され、最上位レイヤが唯一の目標出力レイヤであることを明示するので、デフォルトの出力レイヤセットに関する目標出力レイヤの明示的なシグナリングは必要とされない。たとえば、multiple_output_layer_sets_in_layer_set_flagが0に等しいときには、各レイヤセットの出力レイヤは1つだけであり、最上位レイヤが唯一の目標出力レイヤであるので、どのレイヤを出力すべきかをシグナリングする必要はない。
【0037】
以下でより詳細に説明するように、別の例では、sps_max_sub_layers_minus1およびsps_temporal_id_nesting_flagはSPS内でシグナリングされない。場合によっては、nuh_layer_id_>0であるときにSPS内でこのシグナリングは行われない。
【0038】
以下でより詳細に説明するように、別の例では、シンタックス要素output_layer_set_idx[i]がoutput_layer_set_idx_minus1[i]に変更されてよい。この理由は、0に等しいoutput_layer_set_idx[i]が使用されるシンタックス要素layer_id_included_flag[i][j]がレイヤセット0のシンタックス要素であり、一方、レイヤセット0にはlayer_id_included_flag[i][j]が定義されないからである。さらに、レイヤセット0の目標出力レイヤは常にレイヤ0である(ベースレイヤ)。
【0039】
上記の様々な例は、エントロピー符号化されない様々なデータ、パラメータなどを有する態様を含んでよい。このことに起因して、データ、パラメータなどには、エントロピー符号化を行うエントロピーコーダを有さないデバイスからアクセス可能であってよい。たとえば、場合によっては、メディアアウェアネットワークエンティティ(MANE)はエントロピー符号化デバイスを有さないことがあるが、一般に、データ、パラメータなどの非エントロピー符号化情報をコーディングする(たとえば、復号する)ことができる。
【0040】
「HEVC作業草案10」または「WD10」と呼ばれるHEVC規格の最近の草案が、JCTVC-L1003v34、Brossら、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 12th Meeting:スイス、ジュネーブ、14-23、2013年1月という文献に記載されており、2013年10月15日現在で以下のサイトからダウンロード可能である。
http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip
【0041】
「HEVC作業草案6」または「WD6」と呼ばれるHEVCの別の最近の作業草案(WD)が、JCTVC-H1003、Brossら、「High-Efficiency Video Coding (HEVC) text specification draft 6」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 8th Meeting:米国カリフォルニア州サンホセ、2012年2月という文献に記載されており、2013年10月15日現在で以下のサイトからダウンロード可能である。
http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip
【0042】
「HEVC作業草案8」または「WD8」と呼ばれるHEVCの別の最近の作業草案(WD)が、JCTVC-J1003、Brossら、「High-Efficiency Video Coding (HEVC) text specification draft 8」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting:スウェーデン、ストックホルム、11-20、2012年7月という文献に記載されており、2013年10月15日現在で以下のサイトからダウンロード可能である。
http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip
【0043】
HEVC範囲拡張は、JCTVC-N1005_v3、Flynnら、「High-Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 4」、Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 13th Meeting:大韓民国、仁川、18-26、2013年4月という文献に記載されており、2013年10月15日現在で以下のサイトからダウンロード可能である。
http://phenix.it-sudparis.eu/jct/doc_end_user/current-document.php?id=8139
【0044】
図1は、本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示すように、システム10は、後でビデオデコーダ30によって復号すべき符号化ビデオデータを生成するビデオエンコーダ20を含む。送信元デバイス12および宛先デバイス14は、デスクトップコンピュータ、ノート(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちの任意のデバイスを備えてよい。場合によっては、送信元デバイス12および宛先デバイス14はワイヤレス通信が可能であってよい。
【0045】
宛先デバイス14は、復号すべき符号化ビデオデータをリンク16を介して受信してよい。リンク16は、符号化ビデオデータをビデオエンコーダ20からビデオデコーダ30に移動させることができる任意の種類の媒体またはデバイスを備えてよい。一例では、リンク16は、ビデオエンコーダ20が符号化ビデオデータをリアルタイムに直接ビデオデコーダ30に送信するのを可能にする通信媒体を備えてよい。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調されてよく、宛先デバイス14に送信されてよい。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路などの任意のワイヤレス通信媒体または有線通信媒体を備えてよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成してよい。通信媒体は、ルータ、スイッチ、基地局、または送信元デバイス12から宛先デバイス14への通信を容易にするうえで有用であり得る任意の他の機器を含んでよい。
【0046】
代替的に、符号化データは出力インターフェース22から記憶デバイス34に出力されてよい。同様に、入力インターフェース28は記憶デバイス34から符号化データにアクセスしてよい。記憶デバイス34は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの様々な分散されるかまたはローカルにアクセスされるデータ記憶媒体のうちの任意の記憶媒体を含んでよい。さらなる一例では、記憶デバイス34は、ビデオエンコーダ20によって生成された符号化ビデオを保持することのできるファイルサーバまたは別の中間記憶デバイスに対応してよい。宛先デバイス14は、記憶デバイス34の記憶されたビデオデータにストリーミングを介してアクセスするかまたは記憶されたビデオデータを入力インターフェース28を介してダウンロードしてよい。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータをビデオデコーダ30に送信することのできる任意の種類のサーバであってよい。ファイルサーバの例には、(たとえば、ウェブサイトの)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。ビデオデコーダ30は、インターネット接続を含む、任意の標準的なデータ接続を介して符号化ビデオデータにアクセスしてよい。これには、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適したワイヤレスチャネルと有線接続の組合せを含めてよい。記憶デバイス34からの符号化ビデオデータの送信は、ストリーミング送信であっても、またはダウンロード送信であっても、またはそれらの組合せであってもよい。
【0047】
本開示の技法は、必ずしもワイヤレスアプリケーションまたはワイヤレス設定に限定されるとは限らない。本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体上に記憶されたデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションなどの様々なマルチメディアアプリケーションのうちの任意のマルチメディアアプリケーションのサポートとしてビデオコーディングに適用されてよい。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオテレフォニーなどのアプリケーションをサポートするために一方向または双方向ビデオ送信をサポートするように構成されてよい。
【0048】
図1の例では、送信元デバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含んでよい。ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、あらかじめキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィクスデータを生成するためのコンピュータグラフィクスシステムなどのソース、あるいはそのようなソースの組合せを含んでよい。一例として、ビデオソース18がビデオカメラである場合、送信元デバイス12および宛先デバイス14はいわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成してよい。しかし、本開示に記載された技法は、ビデオコーディング全般に適用可能であってよく、ワイヤレスアプリケーションおよび/または有線アプリケーションに適用されてよい。
【0049】
ビデオエンコーダ20は、ビデオソース18から受信されたキャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータによって生成されたビデオを符号化する。キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータによって生成されたビデオは、4:2:0サンプルフォーマット、4:2:2サンプルフォーマット、または4:4:4サンプルフォーマットを含む上述のサンプルフォーマットのうちのいずれかに従ってフォーマットされてよい。ビデオエンコーダ20は、4:2:0サンプルフォーマット、4:2:2サンプルフォーマット、または4:4:4サンプルフォーマットのうちのいずれかに従ってフォーマットされたビデオに対してビデオコーディングを実行してよい。場合によっては、ビデオエンコーダ20は、コーディングプロセスの一部として、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータによって生成されたビデオをアップサンプリングまたはダウンサンプリングしてよい。たとえば、キャプチャされたビデオは、4:4:4サンプルフォーマットに従ってフォーマットされてよく、ビデオエンコーダ20は、キャプチャされたビデオを4:2:2フォーマットにダウンサンプリングし、ダウンサンプリングしたビデオにビデオエンコーディングを実行してよい。符号化されたビデオデータは、送信元デバイス12の出力インターフェース22を介して宛先デバイス14に直接送信されてよい。符号化されたビデオデータはさらに(または代替として)、以後の宛先デバイス14またはその他の装置によるアクセス、復号、および/または再生が可能なように記憶デバイス34上に記憶されてよい。
【0050】
宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含んでよい。宛先デバイス14の入力インターフェース28は、符号化ビデオデータをリンク16を介して受信する。リンク16を介して伝達されるかまたは記憶デバイス34上に供給される符号化ビデオデータは、ビデオデコーダ30などのビデオデコーダによってビデオデータを復号する際に使用できる、ビデオエンコーダ20によって生成された様々なシンタックス要素を含んでよい。そのようなシンタックス要素は、通信媒体上で送信される符号化ビデオデータ、記憶媒体上に記憶される符号化ビデオデータ、またはファイルサーバ上に記憶される符号化ビデオデータに含められてよい。
【0051】
ディスプレイデバイス32は、宛先デバイス14と一体であってもよく、または宛先デバイス14の外部に設けられてもよい。いくつかの例では、宛先デバイス14は、集積ディスプレイデバイスを含み、さらに外部ディスプレイデバイスとインターフェースするように構成されてよい。他の例では、宛先デバイス14はディスプレイデバイスであってよい。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別の種類のディスプレイデバイスなどの様々な種類のディスプレイデバイスのうちの任意のディスプレイデバイスを備えてよい。
【0052】
ビデオエンコーダ20およびビデオデコーダ30は、現在策定中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができ、概して現在のHEVCテストモデル(HM)または将来のHMに適合することができる。
【0053】
代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part 10と呼ばれるITU-T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の改訂もしくは拡張などの、他の独自規格または業界規格に従って動作してよい。本開示の技法は、HEVC拡張に適用可能であるように記載されているが、必ずしも任意の特定のコーディング規格に限定されるとは限らない。ビデオ圧縮規格の他の例にはMPEG-2およびITU-T H.263が含まれる。
【0054】
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダを組み込んでよく、共通のデータストリームまたは別々のデータストリーム内のオーディオとビデオの両方の符号化に対処するために適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでよい。MUX-DEMUXユニットは、適用可能な場合、いくつかの例において、ITU H.223マルチプレクサプロトコル、またはユーザデータプロトコル(UDP)などの他のプロトコルに適合してよい。
【0055】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せのような、種々の適切なエンコーダ回路のいずれかとして、実装され得る。本開示の技法がソフトウェアに部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を適切な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用して命令をハードウェアにおいて実行して本開示の技法を実施してよい。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのいずれもが、それぞれのデバイスにおいて、結合されたビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0056】
図1に示された例では、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を送信または受信してよい。たとえば、ビデオエンコーダ20は、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を送信してよく、ビデオデコーダ30は、たとえばビデオエンコーダ20から送られたエントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を受信してよい。
【0057】
エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造は、VPS拡張内の、エントロピー符号化されたVPS拡張の他のシンタックス要素の前の位置に存在してよい。ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、複数の出力レイヤセットの各々に関するプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照し、出力レイヤセット関して参照されたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいてその出力レイヤセットのうちの1つのビデオデータを復号してよい。たとえば、ビデオエンコーダ20は、複数の出力レイヤセットの各々に関するプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照し、出力レイヤセットに関して参照されたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいてその出力レイヤセットのうちの1つビデオデータを符号化してよい。ビデオデコーダ30は、複数の出力レイヤセットの各々に関するプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照し、出力レイヤセットに関して参照されたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいてその出力レイヤセットのうちの1つのビデオデータを復号してよい。
【0058】
いくつかの例では、ビデオコーダは、nuh_layer_idが0に等しいシーケンスパラメータセット(SPS)をさらに送信または受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。nuh_layer_idは、特定のレイヤを示すために使用されてよい。レイヤは、すべてが特定の値のnuh_layer_idを有するビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットと、関連する非VCL NALユニットとの組、または階層的関係を有する1組の構文的構造の1つであってよい。nuh_layer_idは、1つのレイヤのみを含むビットストリームにおいて0に等しいものとする。他の値のnuh_layer_idは、複数のレイヤを含むビットストリームに現れ得る。一例では、NALユニットは、後続のデータの種類の表示と、必要に応じてエミュレーション防止バイトが交ぜられたローバイトシーケンスペイロード(RBSP)の形をしたデータを含むバイトとを含むシンタックス構造である。一例では、RBSPは、NALユニット内にカプセル化され、空であるかまたはシンタックス要素を含むデータビットのストリング、その後に続くRBSPストップビットおよびそれに続く、0に等しい0個以上のビットの形を有する整数個のバイトを含むシンタックス構造である。
【0059】
ビデオエンコーダ20は、nuh_layer_idが0に等しいSPSをさらに送信または受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。ビデオデコーダ30は、nuh_layer_idが0に等しいSPSを受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。
【0060】
いくつかの例では、nuh_layer_idが0よりも大きいレイヤがSPSを参照するとき、ビデオデコーダは、SPSのプロファイル、ティア、およびレベルシンタックス構造を使用したnuh_layer_idが0よりも大きいレイヤのビデオデータの復号を行わないことがある。いくつかの例では、プロファイル、ティア、およびレベルシンタックス構造を出力レイヤセットのそれぞれにリンクしてよい。したがって、1つまたは複数の特定のプロファイル、ティア、およびレベルシンタックス構造は、1つまたは複数の特定の出力レイヤセットの符号化および/または復号を行うのに使用できるように1つまたは複数の特定の出力レイヤセットに接続されてよい。リンクすることは、プロファイル、ティア、およびレベルシンタックス構造のインデックスを表すシンタックス要素に基づいて、プロファイル、ティア、およびレベルシンタックス構造の各々がリンクされる出力レイヤセットの各々を識別することを含んでよい。ビデオデータを復号することは、それぞれの出力レイヤセットにリンクされたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいて、1つまたは複数の出力レイヤセットのビデオデータを復号することを含んでよい。
【0061】
複数のレイヤを含む例では、すべてのレイヤのビットストリームが複数の適合ビットストリームに分割され、たとえば、レイヤセットごとに1つのビットストリームに分割されてよい。これらの複数の適合ビットストリームの各々はレイヤセットと呼ばれてもよい。レイヤセットは、特定のレイヤおよびその特定のレイヤが復号のために依存する任意の参照レイヤの参照を含んでよい。この場合、特定のレイヤが依存する参照レイヤがあると仮定する。したがって、レイヤセットは特定のレイヤに関連するNALユニットと特定のレイヤを復号するのに必要なあらゆる参照レイヤに関するNALユニットとを含んでよい適合ビットストリームである。
【0062】
出力レイヤセットは、目標出力レイヤのリストが指定されたレイヤセットである。レイヤセットについては、目標出力レイヤのリストは指定されない。出力レイヤセットは、表示のために出力されることが意図された1つまたは複数の特定のレイヤの出力レイヤセットであってよい。いくつかの例では、1つのレイヤセットに関して複数の出力レイヤセットをシグナリングしてよい。
【0063】
いくつかの例では、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を必要に応じて送信または受信してよい。たとえば、ビデオエンコーダ20は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。ビデオデコーダ30は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。
【0064】
ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、出力レイヤフラグ[i][j]が1に等しいことに対応するレイヤを目標出力レイヤの関連するリストとして指定することによって、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを生成してもよい。たとえば、ビデオエンコーダ20は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを符号化してよい。ビデオデコーダ30は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを復号してよい。
図1に示された例では、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、ビデオデータのレイヤを含むマルチレイヤビデオデータをコーディングしてよい。
【0065】
ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置にある、非エントロピー符号化レイヤ依存情報を送信または受信してよい。これによって、たとえば、MANEなどの、エントロピーコーダを含まないデバイスによってレイヤ依存情報を符号化または復号することが可能になる。さらに、レイヤ依存情報をより早くコーディングすることも可能になる。たとえば、レイヤ依存情報を復号プロセスにおいてより早く復号することができる。たとえば、ビデオエンコーダ20は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置において、非エントロピー符号化レイヤ依存情報を送信してよい。ビデオデコーダ30は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置において、非エントロピー符号化レイヤ依存情報を受信してよい。
【0066】
ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータをコーディングしてよい。たとえば、ビデオエンコーダ20は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを符号化してよい。ビデオデコーダ30は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを復号してよい。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示す。
【0067】
いくつかの例では、レイヤ依存情報は、0に等しいときに、インデックスjを有するレイヤがインデックスIを有するレイヤの直接参照レイヤではないことを明示し、1に等しいときに、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤになり得ることを明示するdirect_dependency_flag[i][j]を含む。
【0068】
本明細書で説明するシステム、方法、およびデバイスの一例は、1組のprofile_tier_level()シンタックス構造をVPS拡張シンタックス内でシグナリングするのを可能にする。いくつかの例では、1組のprofile_tier_level()シンタックス構造は、VPS拡張シンタックス内の、エントロピー符号化なしでアクセス可能である位置、すなわち、VPS拡張シンタックス内のエントロピー符号化要素の前の位置においてシグナリングされる。
【0069】
いくつかの例では、VPS拡張シンタックスのエントロピー符号化要素の前にプロファイル、ティア、およびレベルシンタックス構造を存在させる。これらのシンタックス構造は、出力レイヤセットにリンクされてよい。いくつかの例では、シンタックス要素 vps_num_layer_sets_minus1 plus 1は、VPSによって指定されたレイヤセットの数を指定する。レイヤセットは、あるレイヤとそのレイヤが依存する任意の(0個以上の)他のレイヤとを含むセットであってよい。たとえば、スケーラブルビデオコーディングにおけるレイヤ2のレイヤセットは、レイヤ0、レイヤ1、およびレイヤ2を含んでよい。レイヤセットごとに、1つまたは複数の出力レイヤセットが指定されてよい。各出力レイヤセットは、プロファイル、レベル、およびティアを有するように指定される。
【0070】
本開示の一例では、VPSシンタックスの一部は、Table 1(表1)に示す通りであってよい。
【0072】
上記でTable 1(表1)の例に示すように、vps_num_layer_sets_minus1は、VPS内ではue(v)記述子によって示されるようにエントロピー符号化され、VPS内のvps_num_layer_sets_minus1の前に他のエントロピー符号化シンタックス要素がある。いくつかの例では、エントロピー復号が望ましくないことがある。このことは、スプライシングまたはストリーム適応(たとえば、時間率、品質、空間適応)を実行することのできる中間ネットワークデバイスに特に当てはまる。デコーダ(たとえば、ビデオデコーダ30)は一般に、エントロピーデコーダを有する。しかし、多くの場合、中間ネットワークデバイスがエントロピーデコーダを有さないことが望ましい。これによって中間デバイスが簡略化され、場合によってはコストが削減され電力消費量が低減する。さらに、いずれの場合も、エントロピー復号を実行する必要なしにプロファイル情報、ティア情報、およびレベル情報に迅速にアクセスすることが望ましいことがある。
【0073】
プロファイル、ティア、およびレベルシンタックス構造(profile_tier_level()シンタックス)をエントロピー復号するのを避けるために、いくつかの例では、本開示は、VPS拡張シンタックス内のエントロピー符号化要素の前に、エントロピー符号化されたvps_num_layer_sets_minus1シンタックス要素を解析せずにアクセス可能なプロファイル、ティア、およびレベルシンタックス構造を存在させてよい。場合によっては、HEVCビデオコーディング規格などのビデオコーディング規格に関して拡張規格が策定されてよい。このような拡張規格は、ビデオコーディング規格では実現されずまたは必要とされない追加の機能を実現してよい。拡張シンタックスは、ビデオコーディング規格のこのような拡張規格のうちの1つに関するシンタックスである。たとえば、VPS拡張シンタックスは、HEVCビデオコーディング規格の拡張規格に使用されるメッセージのシンタックスを含んでよい。従来、このようなシンタックスは、各レイヤがアクセスされるときにアクセスされると考えられている。現在、本明細書で説明する概念のうちの1つまたは複数を実施するシステム、方法、または装置は、すべてのシンタックスに前もってアクセスし、後でそれらをリンクすることができる。
【0075】
Table 2(表2)で使用されているように、vps_num_profile_tier_level_minus1 plus 1は、VPS内のprofile_tier_level()シンタックス構造の数を指定する。vps_profile_present_flag[i]が1に等しい場合は、プロファイル情報およびティア情報がi番目のprofile_tier_level()シンタックス構造に存在することを明示する。vps_profile_present_flag[lsIdx]が0に等しい場合は、プロファイル情報およびティア情報が、i番目のprofile_tier_level()シンタックス構造に存在せず、i番目のprofile_tier_level()シンタックス構造に関して推定できることを明示する。
【0076】
シンタックス要素profile_ref_minus1[i]は、i番目のprofile_tier_level()シンタックス構造に関するプロファイル情報およびティア情報が、(profile_ref_minus1[i]+1)番目のprofile_tier_level()シンタックス構造に関するプロファイル情報およびティア情報と等しいと推定できることを明示する。profile_ref_minus1[i]+1の値はi未満であってよい。
【0077】
Table 2(表2)に示すように、上記のシンタックスでは、デコーダまたは中間ネットワークデバイスは、エントロピー符号化が必要なシンタックスの要素を解析する前に1組のprofile_tier_level ()シンタックス構造をループしてそれらのシンタックス構造にアクセスする(後にVPS拡張シンタックス内で)。シンタックス構造は、別のルーピングプロセスによって対応するレイヤセットにリンクされてもよい。特に、profile_level_tier_idx[i]は、i番目の出力レイヤセットに適用されるprofile_tier_level()シンタックス構造の、VPS内の1組のprofile_tier_level()シンタックス構造のインデックスを指定する。
【0078】
別の例示的な態様では、本明細書で説明する1つまたは複数の例を実施するシステム、方法、およびデバイスは、output_layer_set_idx_minus1[i]を使用してレイヤ0(ベースレイヤ)の上方のレイヤのレイヤセットのインデックスを示してよい。
【0079】
output_layer_set_idx_minus1[i]プラス1は、i番目の出力レイヤセットのレイヤセットに関するインデックス(lsIdx)を指定する。一例では、output_layer_set_idx_minus1[i]の値は、0からvps_num_layer_sets_minus1-1の範囲(両端値を含む)内であってよい。output_layer_set_idx_minus1[i]シンタックス要素の長さは、Ceil(Log2(vps_num_layer_sets_minus1))ビットである。
【0080】
本明細書において説明するシステム、方法、およびデバイスの別の例は、ビデオデータのレイヤを含むマルチレイヤビデオデータをコーディングするのを可能にする。これらのシステム、方法、およびデバイスは、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置において、非エントロピー符号化レイヤ依存情報を送信または受信することを含む動作を実行するように構成されてよい。さらに、これらのシステム、方法、およびデバイスは、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを復号することを含んでよい。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示す。
【0081】
一例によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、本開示の技法に従って1つのレイヤセットの複数の出力レイヤセットをコーディングしてよい。たとえば、ビデオエンコーダ20は1つのレイヤセットの複数の出力レイヤセットを符号化してよい。符号化された出力レイヤセットは、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。符号化出力レイヤセットはビデオデコーダ30によって復号されてよい。
【0082】
別の例によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、VPS内のすべてのプロファイル情報、ティア情報、および/またはレベル情報を、場合によっては本開示の技法に従ってエントロピー復号なしでアクセスできるようにコーディングしてよい。たとえば、ビデオエンコーダ20は、VPS内のすべてのプロファイル情報、ティア情報、および/またはレベル情報を、場合によっては、エントロピー復号なしで、すなわち、プロファイル情報、ティア情報、および/またはレベル情報をエントロピー符号化することなくアクセスできるように符号化してよい。VPS内の符号化されたプロファイル情報、ティア情報、および/またはレベル情報は、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。VPS内の符号化されたプロファイル情報、ティア情報、および/またはレベル情報は、MANEなどの、エントロピーデコーダを含まないデバイスであってよいビデオデコーダ30によって復号されてよい。いくつかの例では、VPS内のプロファイル情報、ティア情報、およびレベル情報に低減または限定されたエントロピー符号化を使用してよい。たとえば、場合によっては、VPS内の一部のプロファイル、ティア、レベル情報がエントロピー符号化され、一方、VPS内の他のプロファイル、ティア、レベル情報はエントロピー符号化されない。
【0083】
別の例によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、VPS内のレイヤ依存情報を、本開示の技法に従ってエントロピー復号なしでアクセスできるようにコーディングしてよい。たとえば、ビデオエンコーダ20は、VPS内のレイヤ依存情報を、場合によっては、エントロピー復号なしで、すなわち、レイヤ依存情報をエントロピー符号化することなくアクセスできるように符号化してよい。VPS内の符号化されたレイヤ依存情報は、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。VPS内の符号化レイヤ依存情報は、MANEなどの、エントロピーデコーダを含まないデバイスであってよいビデオデコーダ30によって復号されてよい。
【0084】
別の例によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、VPS内の表現フォーマットを、場合によっては本開示の技法に従ってエントロピー復号なしでアクセスできるようにコーディングしてよく、各レイヤは、特定の表現フォーマットに関連付けられてよい。たとえば、ビデオエンコーダ20は、VPS内の表現フォーマットを、場合によっては、エントロピー復号なしで、すなわち、VPS内の表現フォーマットをエントロピー符号化することなくアクセスできるように符号化してよい。VPS内の符号化された表現フォーマットは、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。VPS内の符号化された表現フォーマットは、MANEなどの、エントロピーデコーダを含まないデバイスであってよいビデオデコーダ30によって復号されてよい。いくつかの例では、VPS内のプロファイル情報、ティア情報、およびレベル情報に低減または限定されたエントロピー復号を使用してよい。たとえば、場合によっては、VPS内の一部のプロファイル、ティア、レベル情報がエントロピー復号され、一方、VPS内の他のプロファイル、ティア、レベル情報はエントロピー復号されない(その理由は、たとえば、VPS内の一部のプロファイル、ティア、レベル情報がエントロピー符号化され、一方、VPS内の他のプロファイル、ティア、レベル情報はエントロピー符号化されなかったことである)。
【0085】
別の例によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、視覚的信号情報(video_format、video_full_range_flag、colour_primaries、transfer_characteristics、matrix_coeffs)を本開示の技法に従ってVPS内のレイヤごとにコーディングしてよい。たとえば、ビデオエンコーダ20は、VPS内のレイヤごとに視覚的信号情報を符号化してよい。符号化された視覚的信号情報は、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。VPS内のレイヤごとの符号化された視覚的信号情報はビデオデコーダ30によって復号されてよい。いくつかの例では、video_formatパラメータは、コーディングすべきピクチャの表現のフォーマットを示す。video_full_range_flagパラメータは、黒レベルならびにルーマ信号およびクロマ信号の範囲を示す。colour_primariesパラメータは、ソース原色の色度座標を示す。transfer_characteristicsパラメータは、ソースピクチャの光電子伝達特性を示す。matrix_coeffsは、緑、青、および赤の原色からルーマ信号およびクロマ信号を導くうえで使用されるマトリックス係数を表す。
【0086】
別の例によれば、SPSは、本開示の技法に従って様々な空間解像度、ビット深度、またはカラーフォーマットを有するレイヤによって共有されてよい。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダはSPSをコーディングしてよい。たとえば、ビデオエンコーダ20はSPSを符号化してよい。符号化されたSPSは、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。符号化されたSPSはビデオデコーダ30によって復号されてよい。
【0087】
別の例によれば、本開示の技法に従ってレイヤIDが0よりも大きいSPSのVUIにはタイミング情報が含められない。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、VUIにタイミング情報を含めない、レイヤIDが0よりも大きいSPSをコーディングしてよい。たとえば、ビデオエンコーダ20はSPSを符号化してよい。符号化されたSPSは、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。符号化されたSPSはビデオデコーダ30によって復号されてよい。
【0088】
別の例によれば、本開示の技法に従ってデフォルトの出力レイヤセットには目標出力レイヤの明示的なシグナリングは行われない。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、デフォルトの出力レイヤセットの目標出力レイヤの明示的なシグナリングを含まないデフォルトの出力レイヤセットをコーディングしてよい。たとえば、ビデオエンコーダ20はデフォルトの出力レイヤセットを符号化する。符号化されたデフォルト出力レイヤセットは、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。符号化されたデフォルト出力レイヤセットはビデオデコーダ30によって復号されてよい。
【0089】
別の例によれば、存在し得る時間的サブレイヤの最大数(sps_max_sub_layers_minus1)およびインター予測が追加的に制限されるかどうか(sps_temporal_id_nesting_flag)のシグナリングは、レイヤID(nuh_layer_id)が0よりも大きいSPSには存在しない。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、レイヤIDが0よりも大きいSPSにおいて、SPSを参照する各CVSに存在し得る時間的サブレイヤの最大数をコーディングせず、かつSPSを参照するCVSに関してインター予測が追加的に制限されるかどうかをコーディングせずに、ビデオデータをコーディングしてよい。たとえば、ビデオエンコーダ20は、レイヤIDが0よりも大きいSPSにおける、SPSを参照する各CVSに存在し得る時間的サブレイヤの最大数、およびSPSを参照するCVSに関してインター予測が追加的に制限されるかどうかをコーディングせずに、ビデオデータを符号化してよい。符号化された情報は、出力インターフェース22によってリンク16を介すかまたは記憶デバイス34を使用してシグナリングされるか、送信されるか、またはその他の方法で転送され、入力インターフェース28によって受信されてよい。符号化された情報はビデオデコーダ30によって復号されてよい。
【0090】
別の例によれば、本開示の技法に従ってシンタックス要素output_layer_set_idx[i]がoutput_layer_set_idx_minus1[i]に変更されてよい。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、output_layer_set_idx_minus1[i]を、出力レイヤセットに対応するレイヤセットのインデックスを示すようにコーディングしてよい。
【0091】
図2は、本開示で説明する技法を実施し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行してよい。イントラコーディングは、空間的予測に依存して所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減させるかまたは除去する。インターコーディングは、時間的予測またはインターレイヤに依存して、同じレイヤにおいてまたはビデオシーケンスのそれぞれに異なるレイヤ全体にわたって互いに隣接するフレームまたはピクチャ内のビデオの時間的冗長性またはレイヤ間冗長性を低減させるかまたは除去する。イントラモード(Iモード)は、空間ベースのいくつかの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、時間ベースのいくつかの圧縮モードのいずれかを指すことがある。
【0092】
図2の例では、ビデオエンコーダ20は、ビデオデータメモリ40と、予測処理ユニット41と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化処理ユニット54と、エントロピー符号化処理ユニット56とを含む。予測処理ユニット41は、動き推定処理ユニット42と、動き補償処理ユニット44と、イントラ予測処理ユニット46とを含む。ビデオエンコーダ20は、ビデオブロック再構成に関して、逆量子化処理ユニット58と、逆変換処理ユニット60と、加算器62も含む。ブロック境界をフィルタリングして再構成されたビデオからブロッキネスアーティファクトを除去するためにデブロッキングフィルタ(
図2には示されていない)が含まれてもよい。デブロッキングフィルタは通常、必要に応じて、加算器62の出力をフィルタリングする。デブロッキングフィルタに加えて追加的なループフィルタ(インループまたはポストループ)が使用されてもよい。
【0093】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化すべきビデオデータを記憶してよい。ビデオデータメモリ40に記憶されるビデオデータは、たとえば、ビデオソース18から得られてよい。復号済みピクチャバッファ(DPB)は、ビデオエンコーダ20によってビデオデータを、たとえば、イントラコーディングモードまたはインターコーディングモードで符号化する際に使用できる参照ビデオデータを記憶する参照ピクチャメモリ64であってよい。ビデオデータメモリ40およびDPB(たとえば、参照ピクチャメモリ64)は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他の種類のメモリデバイスなどの様々なメモリデバイスのうちのいずれかによって形成されてよい。ビデオデータメモリ40およびDPB(たとえば、参照ピクチャメモリ64)は、同じメモリデバイスによって実現されてもまたは別々のメモリデバイスによって実現されてもよい。様々な例では、ビデオデータメモリ101は、ビデオエンコーダ20の他の構成要素とともにオンチップであっても、またはそのような構成要素に対してオフチップであってもよい。
【0094】
図2に示すように、ビデオエンコーダ20はビデオデータを受信し、予測処理ユニット41はデータをビデオブロックに区分する。場合によっては、予測処理ユニット41は、レートひずみ分析に基づいてビデオデータを区分してよい。受信されたビデオデータは、上述のサンプルフォーマットのうちのいずれかに従ってフォーマットされてよい。たとえば、ビデオデータは4:2:2サンプルフォーマットに従ってフォーマットされてよい。区分することは、ビデオデータをスライス、タイル、またはより大きい他のユニットに区分することと、たとえばLCUおよびCUの4分木構造に従ったビデオブロック区分を含んでよい。
【0095】
ビデオエンコーダ20は概して、符号化すべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロック(場合によってはタイルと呼ばれるビデオブロックの組)に分割されてよい。予測処理ユニット41は、現在のビデオブロックに関して、エラー結果(たとえば、コーディングレートおよびひずみレベル)に基づいて、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択してよい。予測処理ユニット41は、得られたイントラコーディング済みブロックまたはインターコーディング済みブロックを加算器50に供給して残差ブロックを生成し、かつ加算器62に供給して参照ピクチャとして使用できる符号化ブロックを再構成する。
【0096】
予測処理ユニット41内のイントラ予測処理ユニット46は、コーディングすべき現在のブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実行して空間的圧縮を実施してよい。予測処理ユニット41内の動き推定処理ユニット42および動き補償処理ユニット44は、1つまたは複数の参照ピクチャ内の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実行して時間的圧縮を実施してよい。
【0097】
動き推定処理ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのインター予測モードを判定するように構成されてよい。所定のパターンは、シーケンス内のビデオスライスをPスライスまたはBスライスとして指定してよい。動き推定処理ユニット42および動き補償処理ユニット44は、高度に集積されてよいが、概念的な目的のために別々に図示されている。動き推定は、動き推定処理ユニット42によって実行され、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示してよい。
【0098】
予測ブロックは、インターコーディングの場合、絶対差の和(SAD)によって、2乗差の和(SSD)によって、または他の差分メトリックによって求めることができるピクセル差分に関して、コーディングすべきビデオブロックのPUに厳密に一致するブロックとして見つけられるブロックであってよい。代替として、予測ブロックは、イントラコーディングの場合、1つまたは複数の隣接ブロックから得られるピクセル値に対する空間的予測に基づいて形成されるブロックであってよい。いくつかの例では、インター予測の場合、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を算出してよい。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間してよい。したがって、動き推定処理ユニット42は、全ピクセル位置および分数ピクセル位置に対して動き探索を実行し分数ピクセル精度を有する動きベクトルを出力してよい。
【0099】
動き推定処理ユニット42は、PUの位置と参照ピクチャの予測ブロックの位置を比較することによってインターコーディング済みスライス内のビデオブロックのPUに関する動きベクトルを算出する。参照ピクチャは、各々が、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよい。動き推定処理ユニット42は、算出された動きベクトルをエントロピー符号化処理ユニット56および動き補償処理ユニット44に送る。
【0100】
動き補償は、動き補償処理ユニット44によって実行され、動き推定によって判定される動きベクトルに基づいて予測ブロックを取り込むかまたは生成し、場合によってはサブピクセル精度の補間を実行することを含んでよい。動き補償処理ユニット44は、現在のビデオブロックのPUに関する動きベクトルを受信すると、動きベクトルが参照ピクチャリストのうちの1つのリスト内で指し示す予測ブロックを見つけることができる。
【0101】
ビデオエンコーダ20は、インターコーディングまたはイントラコーディングの場合に、コーディング中の現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、ピクセル差分値を形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分構成要素とクロマ差分構成要素の両方を含んでよい。加算器50は、この減算演算を実行する構成要素を表す。動き補償処理ユニット44は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用されるビデオブロックおよびビデオスライスに関連するシンタックス要素を生成してもよい。
【0102】
イントラ予測処理ユニット46は、上述のように動き推定処理ユニット42および動き補償処理ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測してよい。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを判定してよい。いくつかの例では、イントラ予測処理ユニット46は、たとえば別々の符号化パス時に、様々なイントラ予測モードを使用して現在のブロックを符号化してよく、イントラ予測処理ユニット46(またはいくつかの例では、モード選択処理ユニット)は、試験されたモードから使用すべき適切なイントラ予測モードを選択してよい。
【0103】
たとえば、イントラ予測処理ユニット46は、様々な試験されたイントラ予測モードにレートひずみ分析を使用してレートひずみ値を算出し、試験されたモードのうちで最良のレートひずみ特性を有するイントラ予測モードを選択してよい。レートひずみ分析は概して、符号化されたブロックと符号化されたブロックを生成するために符号化された符号化されていない元のブロックとの間のひずみ(またはエラー)の量、ならびに符号化されたブロックを生成するために使用されたビットレート(すなわち、ビットの数)を求める。イントラ予測処理ユニット46は、符号化された様々なブロックのひずみおよびレートから比を算出し、どのイントラ予測モードがブロックの最良のレートひずみ値を示すかを判定してよい。レートひずみ分析が色成分の組合せに対して実行されてよいことに留意されたい。
【0104】
いずれの場合も、イントラ予測処理ユニット46は、ブロックのイントラ予測モードを選択した後、ブロックの選択されたイントラ予測モードを示す情報をエントロピー符号化処理ユニット56に供給してよい。エントロピー符号化処理ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化してよい。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含んでよい送信されるビットストリーム構成データ内に、様々なブロックの符号化コンテキストの定義、ならびにコンテキストの各々に使用すべき最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの表示を含んでよい。ビットストリームはさらに(または代替として)、以後の宛先デバイス14またはその他の装置によるアクセス、復号、および/または再生が可能なように記憶デバイス34上に記憶されてよい。
【0105】
予測処理ユニット41がインター予測またはイントラ予測を介して現在のビデオブロックの予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数の変換ユニット(TU)に含められ、変換処理ユニット52に適用されてよい。変換処理ユニット52がビデオエンコーダ20の構成要素、モジュール、プロセッサ、または機能ユニットを指し、変換処理ユニット52を、変換および量子化プロセスに関するデータの基本ユニットであるTUと混同すべきではないことに留意されたい。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換してよい。変換処理ユニット52は、得られた変換係数を量子化処理ユニット54に送ってよい。
【0106】
図2に示す例では、ビデオエンコーダ20は、複数の出力レイヤセットの各々に関するプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照し、出力レイヤセットのうちの1つに関して参照されたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいてその出力レイヤセットのビデオデータを符号化してよい。
【0107】
ビデオエンコーダ20は、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を送信してよい。エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置に配置されてよく、それによって、中間ネットワーキングデバイス、スプライシングエンジン、メディアアウェアネットワーク要素、またはデコーダは、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造をエントロピー符号化の必要なしに解析することができる。
【0108】
いくつかの例では、ビデオエンコーダ20は、nuh_layer_idが0に等しいSPSを送信または受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。たとえば、ビデオエンコーダ20は、nuh_layer_idが0に等しいSPSを送ってよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。
【0109】
ビデオデコーダ20は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを符号化してよい。ビデオデコーダ20は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してもよい。
【0110】
ビデオエンコーダ20は、ビデオデータのレイヤのうちの1つまたは複数のレイヤにおける一部のビデオデータを非エントロピー符号化してよい。非エントロピー符号化されたビデオデータはレイヤ依存情報を含んでよい。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示してよい。いくつかの例では、レイヤ依存情報は、0に等しいときに、インデックスjを有するレイヤがインデックスIを有するレイヤの直接参照レイヤではないことを明示し、1に等しいときに、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤになり得ることを明示するdirect_dependency_flag[i][j]を含む。
【0111】
ビデオデコーダ20は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置にある非エントロピー符号化レイヤ依存情報を送信してよい。
【0112】
一例によれば、ビデオエンコーダ20は1つのレイヤセットの複数の出力レイヤセットを符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実施され得る。
【0113】
別の例によれば、ビデオエンコーダ20は、VPS内のすべてのプロファイル情報、ティア情報、および/またはレベル情報を、場合によっては、エントロピー符号化なしで、すなわち、プロファイル情報、ティア情報、および/またはレベル情報をエントロピー復号することなくアクセスできるように符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実行されるが、エントロピー符号化なしで実施され得る。したがって、エントロピー符号化処理ユニットは、エントロピー符号化に加えて他の種類の符号化を実施してよい。
【0114】
別の例によれば、ビデオエンコーダ20は、VPS内のレイヤ依存情報を、エントロピー復号なしで、すなわち、レイヤ依存情報をエントロピー符号化することなくアクセスできるように符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実行されるが、エントロピー符号化なしで実施され得る。したがって、エントロピー符号化処理ユニットは、エントロピー符号化に加えて他の種類の符号化を実施してよい。
【0115】
別の例によれば、ビデオエンコーダ20は、VPS内の表現フォーマットを、場合によっては、エントロピー復号なしで、すなわち、VPS内の表現フォーマットをエントロピー符号化することなくアクセスできるように符号化してよい。いくつかの例では、各レイヤは特定の表現フォーマットに関連付けられてよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実行されるが、エントロピー符号化なしで実施され得る。したがって、エントロピー符号化処理ユニットは、エントロピー符号化に加えて他の種類の符号化を実施してよい。ビデオエンコーダ20は、VPS内の表現フォーマットを、場合によっては本開示の技法に従ってエントロピー復号なしでアクセスできるように符号化してよく、各レイヤは、特定の表現フォーマットに関連付けられてよい。
【0116】
別の例によれば、ビデオエンコーダ20は、視覚的信号情報(video_format、video_full_range_flag、colour_primaries、transfer_characteristics、matrix_coeffs)を本開示の技法に従ってVPS内のレイヤごとにコーディングしてよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実施され得る。
【0117】
別の例によれば、SPSは、本開示の技法に従って様々な空間解像度、ビット深度、またはカラーフォーマットを有するレイヤによって共有されてよい。ビデオエンコーダ20はSPSを符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実施され得る。
【0118】
別の例によれば、本開示の技法に従ってレイヤIDが0よりも大きいSPSのVUIにはタイミング情報が含められない。ビデオエンコーダ20はSPSを符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実施され得る。
【0119】
別の例によれば、本開示の技法に従ってデフォルトの出力レイヤセットには目標出力レイヤの明示的なシグナリングは行われない。ビデオエンコーダ20は、デフォルトの出力レイヤセットを符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理システム56によって実施され得る。
【0120】
別の例によれば、存在し得る時間的サブレイヤの最大数(sps_max_sub_layers_minus1)およびインター予測が追加的に制限されるかどうか(sps_temporal_id_nesting_flag)のシグナリングは、nuh_layer_idが0に等しいときにのみSPS内で行われ、すなわち、レイヤIDが0よりも大きいSPSではシグナリングは行われない。ビデオエンコーダ20は、レイヤIDが0よりも大きいSPSにおける、SPSを参照する各CVSに存在し得る時間的サブレイヤの最大数、およびSPSを参照するCVSに関してインター予測が追加的に制限されるかどうかをコーディングせずに、ビデオデータを符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実施され得る。
【0121】
別の例によれば、本開示の技法に従ってシンタックス要素output_layer_set_idx[i]がoutput_layer_set_idx_minus1[i]に変更されてよい。ビデオエンコーダ20は、シンタックス要素output_layer_set_idx_minus1[i]を、VPSによって指定されたi番目の出力レイヤセットに対応するレイヤセットのインデックスを示すように符号化してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット56によって実施され得る。
【0122】
図3は、本開示で説明する技法を実施し得る例示的なビデオデコーダ30を示すブロック図である。
図3の例では、ビデオデコーダ30は、ビデオデータメモリ78と、エントロピー復号処理ユニット80と、予測処理ユニット81と、逆量子化処理ユニット86と、逆変換処理ユニット88と、加算器90と、参照ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償処理ユニット82とイントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、
図2においてビデオエンコーダ20に関して説明した符号化パスを概ね反転させた復号パスを実行してよい。
【0123】
ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号すべき、符号化ビデオビットストリームなどのビデオデータを記憶してよい。ビデオデータメモリ78に記憶されるビデオデータは、たとえばコンピュータ可読媒体から、またはたとえばカメラなどのローカルビデオソースから、またはビデオデータの有線ネットワーク通信もしくはワイヤレス通信を介して、または物理データ記憶媒体にアクセスすることによって得られてよい。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコーディング済みピクチャバッファ(CPB)を形成してよい。復号済みピクチャバッファ(DPB)は、ビデオデコーダ30によってビデオデータを、たとえば、イントラコーディングモードまたはインターコーディングモードで復号する際に使用できる参照ビデオデータを記憶する参照ピクチャメモリ92であってよい。ビデオデータメモリ78およびDPBは、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他の種類のメモリデバイスなどの様々なメモリデバイスのうちのいずれかによって形成されてよい。ビデオデータメモリ78およびDPBは、同じメモリデバイスによって実現されてもまたは別々のメモリデバイスによって実現されてもよい。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであっても、またはそのような構成要素に対してオフチップであってもよい。
【0124】
復号プロセスの間、ビデオデコーダ30は、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号処理ユニット80は、ビットストリームをエントロピー復号して量子化係数、動きベクトル、およびその他のシンタックス要素を生成する。エントロピー復号処理ユニット80は、動きベクトルおよびその他のシンタックス要素を予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルのシンタックス要素を受信してよい。
【0125】
ビデオスライスがイントラコーディング(I)済みスライスとしてコーディングされているとき、予測処理ユニット81のイントラ予測処理ユニット84は、あらかじめ復号されたブロックからのシグナリングされたイントラ予測モードおよび前に復号された現在のフレームまたはピクチャのブロックのデータに基づいて現在のビデオスライスのビデオブロックに関する予測データを生成してよい。ビデオフレームがインターコーディング済み(すなわち、BまたはP)スライスとしてコーディングされているとき、予測処理ユニット81の動き補償処理ユニット82は、エントロピー復号処理ユニット80から受信された動きベクトルおよびその他のシンタックス要素に基づいて現在のビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、1つの参照ピクチャリスト内の参照ピクチャのうちの1つから生成されてよい。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づくデフォルトの構成技法を使用して参照フレームリストのリスト0およびリスト1を構成してよい。
【0126】
動き補償処理ユニット82は、動きベクトルおよびその他のシンタックス要素を解析することによって現在のビデオスライスのビデオブロックに関する予測情報を判定し、予測情報を使用して復号中の現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償処理ユニット82は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするのに使用される予測モード(たとえば、複数のインター予測モードのうちの1つ)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライスの参照ピクチャリストのうちの1つまたは複数の参照ピクチャリストに関する構成情報、スライスの各インター符号化済みビデオブロックの動きベクトル、スライスの各インターコーディング済みビデオブロックのインター予測ステータス、および現在のビデオスライス内のビデオブロックを復号するためのその他の情報を判定する。
【0127】
動き補償処理ユニット82は、補間フィルタに基づいて補間を実行してもよい。動き補償処理ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されるような補間フィルタを使用して参照ブロックのサブ整数ピクセルの補間された値を算出してよい。この場合、動き補償処理ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを判定し、この補間フィルタを使用して予測ブロックを生成してよい。
【0128】
逆量子化処理ユニット86は、ビットストリームに含められエントロピー復号処理ユニット80によって復号された量子化変換係数を逆量子化(すなわち、非量子化)する。逆量子化プロセスは、ビデオエンコーダ20によって算出された量子化パラメータをビデオスライス内のビデオブロックごとに使用して、適用すべき量子化の程度を求め、同様に、適用すべき逆量子化の程度を求めることを含んでよい。
【0129】
逆変換処理ユニット88は、変換係数を受信し、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用してピクセル領域内に残差ブロックを生成する。いくつかの例では、逆変換処理ユニット88は、変換ユニット区分技法に基づいてビデオエンコーダによって生成された変換係数を受信してよい。
【0130】
動き補償処理ユニット82またはイントラ予測処理ユニット84が動きベクトルおよびその他のシンタックス要素に基づく現在のビデオブロックの予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックと動き補償処理ユニット82によって生成された対応する予測ブロックを合計することによって復号ビデオブロックを形成する。加算器90は、この加算演算を実行する構成要素を表す。
【0131】
必要に応じて、デブロッキングフィルタを適用して復号ブロックをフィルタリングしブロッキネスアーティファクトを除去してもよい。(コーディングループ内またはコーディングループ後の)他のループフィルタを使用してピクセル遷移を平滑化するか、または場合によってはビデオ品質を向上させてもよい。次いで、所与のフレームまたはピクチャ内の復号ビデオブロックが、以後の動き補償に使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、復号ビデオを
図1のディスプレイデバイス32などのディスプレイデバイス上に後で表示できるように記憶する。
【0132】
図3に示された例では、ビデオデコーダ30は、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を受信してよい。
【0133】
ビデオデコーダ30は、複数の出力レイヤセットの各々に関するプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照し、出力レイヤセットのうちの1つに関して参照されたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいてその出力レイヤセットのビデオデータを復号してよい。
【0134】
いくつかの例では、ビデオコーダは、nuh_layer_idが0に等しいSPSを送信または受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。ビデオデコーダ30は、nuh_layer_idが0に等しいSPSを受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。
【0135】
いくつかの例では、nuh_layer_idが0よりも大きいレイヤがSPSを参照するとき、ビデオデコーダ30は、SPSのプロファイル、ティア、およびレベルシンタックス構造を使用したnuh_layer_idが0よりも大きいレイヤのビデオデータの復号を行わないことがある。
【0136】
ビデオデコーダ30は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。
【0137】
ビデオデコーダ30は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを生成してもよい。
【0138】
図3に示された例では、ビデオデコーダ30は、ビデオデータのレイヤを含むマルチレイヤビデオデータを復号してよい。
【0139】
ビデオデコーダ30は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置にある非エントロピー符号化レイヤ依存情報を受信してよい。
【0140】
ビデオデコーダ30は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを復号してよい。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示す。
【0141】
いくつかの例では、レイヤ依存情報は、0に等しいときに、インデックスjを有するレイヤがインデックスIを有するレイヤの直接参照レイヤではないことを明示し、1に等しいときに、インデックスjを有するレイヤがインデックスIを有するレイヤの直接参照レイヤになり得ることを明示するdirect_dependency_flag[i][j]を含む。
【0142】
いくつかの例では、本開示は、出力レイヤセットに関するプロファイル、ティア、およびレベル情報のシグナリング、出力レイヤセットのシグナリング、およびレイヤ依存性のシグナリングの変更を含む、HEVC拡張シンタックスに関するVPSおよびSPSの設計を向上させるための方法について説明する。いくつかの例では、本開示は、表現フォーマットに関する情報(セッション交渉のためのVPS(拡張シンタックス)における空間解像度、カラーフォーマット、およびビット深度)のシグナリングの変更、ならびに様々な範疇の個々の制御によるSPSパラメータの効率的なシグナリングを含む、HEVC拡張シンタックスに関するVPSおよびSPSの設計を向上させるための方法についても説明する。
【0143】
いくつかの例では、現在のVPS設計およびSPS設計は少なくとも以下の問題を伴うことがある。(1)シンタックス要素vps_num_layer_sets_minus1がue(v)コーディングされ、このシンタックス要素の前に他のue(v)コーディング済みシンタックス要素もあるので、現在、レイヤセットのプロファイル、ティア、およびレベルにアクセスするにはエントロピー符号化が必要である。(2)同様に、エントロピー復号なしではレイヤ依存情報にアクセスできず、(3)出力レイヤセットのシグナリングには問題があり効率的ではない。理由は以下の通りである。(a)0に等しいoutput_layer_set_idx[i]に使用されるシンタックス要素layer_id_included_flag[][]はレイヤセット0に関するシンタックス要素であり、一方、レイヤセット0に関しては、HEVCバージョン1(すなわち、HEVC WD10)ではlayer_id_included_flag[][]は定義されておらず、(b)レイヤセット0の目標出力レイヤがレイヤ0(ベースレイヤ)であることは明らかであり、(c)現在、レイヤセットごとにシグナリングできる出力レイヤセットは1つ以下であり、(d)現在、シンタックスでは、0からVPS内の最大のレイヤIDまでのレイヤIDのループを使用しているが、これは複雑である。
【0144】
マルチビューシナリオでは、多くの場合、1つのレイヤセットがそれぞれに異なる目標出力レイヤの複数の組に関連付けられる。したがって、シンタックス要素output_layer_flag[lsIdx][j]がoutput_layer_flag[i][j]に変更され、それに応じて関連するセマンティクスが変更され、上記の項目(d)において述べたように、現在、シンタックスでは、0からVPS内の最大のレイヤIDまでのレイヤIDのループを使用しているが、これは複雑である。レイヤセット内の最上レイヤは確実に目標出力レイヤであるので、このレイヤを除くレイヤセット内の各レイヤのループを使用する方がずっと簡単である。
【0145】
一例によれば、ビデオデコーダ30は1つのレイヤセットの複数の出力レイヤセットを復号してよい。いくつかの例では、復号は、エントロピー復号処理システム80によって実施され得る。
【0146】
別の例によれば、ビデオデコーダ30は、VPS内のすべてのプロファイル情報、ティア情報、および/またはレベル情報を、場合によっては、エントロピー復号の必要なしにアクセスできるように復号してよい。いくつかの例では、復号は、エントロピー復号処理ユニット80によって実行されるが、エントロピー復号なしで実施され得る。したがって、復号はエントロピーデコーダを有さないデバイスによって実行されてよい。
【0147】
別の例によれば、ビデオデコーダ30は、VPS内のレイヤ依存情報を、エントロピー復号なしでアクセスできるように復号してよい。いくつかの例では、復号は、エントロピー復号処理ユニット80によって実行されるが、エントロピー符号化なしで実施され得る。したがって、復号はエントロピーデコーダを有さないデバイスによって実行されてよい。
【0148】
別の例によれば、ビデオデコーダ30は、VPS内の表現フォーマットを、場合によっては、エントロピー復号なしで、すなわち、VPS内の表現フォーマットをエントロピー符号化することなくアクセスできるように復号してよい。いくつかの例では、復号は、エントロピー復号処理ユニット80によって実行されるが、エントロピー復号なしで実施され得る。したがって、復号はエントロピーデコーダを有さないデバイスによって実行されてよい。ビデオデコーダ30は、VPS内の表現フォーマットを、場合によっては本開示の技法に従ってエントロピー復号なしで復号してよく、各レイヤは、特定の表現フォーマットに関連付けられてよい。
【0149】
別の例によれば、ビデオデコーダ30は、視覚的信号情報(video_format、video_full_range_flag、colour_primaries、transfer_characteristics、matrix_coeffs)を本開示の技法に従ってVPS内のレイヤごとに復号してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット80によって実施され得る。いくつかの例では、video_formatパラメータは、コーディングすべきピクチャの表現のフォーマットを示す。video_full_range_flagパラメータは、黒レベルならびにルーマ信号およびクロマ信号の範囲を示す。colour_primariesパラメータは、ソース原色の色度座標を示す。transfer_characteristicパラメータは、ソースピクチャの光電子伝達特性を示す。matrix_coeffsパラメータは、緑、青、および赤の原色からルーマ信号およびクロマ信号を導くうえで使用されるマトリックス係数を表す。
【0150】
別の例によれば、SPSは、本開示の技法に従って様々な空間解像度、ビット深度、またはカラーフォーマットを有するレイヤによって共有されてよい。ビデオデコーダ30はSPSを復号してよい。いくつかの例では、符号化は、エントロピー符号化処理ユニット80によって実施され得る。
【0151】
別の例によれば、本開示の技法に従ってレイヤIDが0よりも大きいSPSのVUIにはタイミング情報が含められない。ビデオデコーダ30はSPSを復号してよい。いくつかの例では、復号は、エントロピー復号処理ユニット80によって実施され得る。
【0152】
別の例によれば、本開示の技法に従ってデフォルトの出力レイヤセットには目標出力レイヤの明示的なシグナリングは行われない。ビデオデコーダ30は、デフォルトの出力レイヤセットを復号してよい。いくつかの例では、復号は、エントロピー復号処理ユニット80によって実施され得る。
【0153】
別の例によれば、存在し得る時間的サブレイヤの最大数(sps_max_sub_layers_minus1)およびインター予測が追加的に制限されるかどうか(sps_temporal_id_nesting_flag)のシグナリングは、レイヤID(nuh_layer_id)が0に等しいSPSで行われる。ビデオデコーダ30は、レイヤIDが0よりも大きいSPSにおける、SPSを参照する各CVSに存在し得る時間的サブレイヤの最大数、およびSPSを参照するCVSに関してインター予測が追加的に制限されるかどうかをコーディングせずに、ビデオデータを復号してよい。いくつかの例では、復号は、エントロピー復号処理ユニット80によって実施され得る。
【0154】
別の例によれば、本開示の技法に従ってシンタックス要素output_layer_set_idx[i]がoutput_layer_set_idx_minus1[i]に変更されてよい。ビデオデコーダ30は、シンタックス要素output_layer_set_idx_minus1[i]を、VPSによって指定されたi番目の出力レイヤセットに対応するレイヤセットのインデックスを示すように復号してよい。
【0155】
以下の例では、括弧付きのラベル(たとえば、[開始例A]および[終了例A])は、示される例に関連する記述を示すために使用される。2013年4月2日現在で、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1008-v1.zipからダウンロード可能なSHVCの現在のバージョンまたは2013年4月2日現在でhttp://phenix.int-sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V-C1004-v4.zipからダウンロード可能なMV-HEVC規格に関して変更が示されることがある。
【0156】
レイヤセット、出力レイヤセットのシグナリング、およびレイヤ依存性のシグナリングに関するプロファイル、ティア、およびレベル情報のシグナリングに対するいくつかの変更は、本開示の態様による、本明細書に含まれる例Aを示すためにこの提案において使用される[開始例A]および[終了例A]によって示される。
【0157】
シンタックス要素vps_num_layer_sets_minus1がue(v)コーディングされ(すなわち、エントロピー符号化され)、このシンタックス要素の前に他のue(v)コーディング済みシンタックス要素もあるので、現在、レイヤセットのプロファイル、ティア、およびレベルにアクセスするにはエントロピー復号が必要である。エントロピー復号なしでこの情報にアクセスできるようにするには、エントロピー復号なしでアクセスできる位置でprofile_tier_level()シンタックス構造の組をシグナリングすればよい。次いで、profile_tier_level()シンタックス構造の組を出力レイヤセットにリンクできるように参照してよい。同じレイヤセットの複数の出力レイヤセットが、それぞれに異なるDPBサイズを必要とすることがあり、したがって、様々なレベルに適合してよい。
【0158】
いくつかの例では、後述のように、シンタックス要素output_layer_set_idx[i]がoutput_layer_set_idx_minus1[i]に変更されてよい。nuh_layer_idが0に等しいSPSがnuh_layer_idが0よりも大きいレイヤによって参照されるとき、SPS内のprofile_tier_level()シンタックス構造はそのレイヤには適用されない。上記と同様の理由で、レイヤ依存性のシグナリングはエントロピー復号なしでアクセスできるように上位に移される。シンタックス要素output_layer_set_idx[i]をoutput_layer_set_idx_minus1[i]に変更するのは以下の理由による。0に等しいoutput_layer_set_idx[i]に使用されるシンタックス要素layer_id_included_flag[][]はレイヤセット0のシンタックス要素であり、一方、レイヤセット0にはlayer_id_included_flag[][]が定義されない。レイヤセット0の目標出力レイヤがレイヤ0(ベースレイヤ)であることは明確である。
【0159】
したがって、上記からわかるように、各レイヤはSPSを参照する必要がある。従来、空間解像度、ビット深度、またはカラーフォーマットの値が異なる任意の2つのレイヤは、これらの表現フォーマットパラメータがSPS内でシグナリングされるので2つの異なるSPSを参照する必要がある。しかし、nuh_layer_idが0に等しいSPSを除くすべてのSPSに関するこれらのパラメータがVPSに移され、nuh_layer_idが0よりも大きいレイヤによって参照されるnuh_layer_idが0に等しいSPS内の表現フォーマットパラメータを無視することが規定されるとき、空間解像度、ビット深度、またはカラーフォーマットの値が異なる各レイヤは同じSPSを参照することが可能である。言い換えれば、本開示のいくつかの実装形態では、空間解像度、ビット深度、またはカラーフォーマットの値が異なる各レイヤが他のSPSである限り、同じSPSを共有することができる。
【0160】
本明細書で説明するいくつかの例では、出力レイヤセットシグナリングのためにシンタックスおよびセマンティクスを変更する。場合によっては、これによって、以下の問題のうちの1つまたは複数を解決することができ、まず、現在レイヤセットごとにシグナリングできる出力レイヤセットは1つ以下である。マルチビューシナリオでは、多くの場合、1つのレイヤセットがそれぞれに異なる目標出力レイヤの複数の組に関連付けられる。したがって、シンタックス要素output_layer_flag[lsIdx][j]がoutput_layer_flag[i][j]に変更されてよく、関連するセマンティクスがそれに応じて変更されてよい。したがって、1つのレイヤセットに関して複数の出力レイヤセットをシグナリングしてよい。第2に、現在、シンタックスでは、0からVPS内の最大のレイヤIDまでのレイヤIDのループを使用しているが、これは複雑である。むしろ、レイヤセット内の最上位レイヤを除くレイヤセット内の各レイヤのループを使用する方がずっと簡単である。その理由は、レイヤセット内の最上レイヤが確実に目標出力レイヤであることである。
【0161】
例Bを示すためにこの提案で使用される、括弧付きのラベル[開始例B]および[終了例B]を使用して変更が示される、表現フォーマットに関する情報(セッション交渉のためのVPS(拡張シンタックス)における空間解像度、カラーフォーマット、およびビット深度)のシグナリング。表現フォーマットは、そのような情報のリストのインデックスによって、ベースレイヤを含むレイヤごとにシグナリングされ、profile_tier_level()シンタックス構造の場合と同様に、nuh_layer_idが0よりも大きいSPSではシグナリングされない。したがって、これによって、nuh_layer_idが0よりも大きい様々なSPS内の同じ表現フォーマット情報を重複して送ることも少なくなる。nuh_layer_idが0に等しいSPSがnuh_layer_idが0よりも大きいレイヤによって参照されるとき、シンタックス要素chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_chroma_minus8、およびbit_depth_chroma_minus8の値はそのレイヤには適用されない。
【0162】
様々な範疇を個々に制御するSPSパラメータを効率的にシグナリングする際、SPSに含めることのできるパラメータは以下の6つの範疇に分類されてよい。(1) Cat1:すでにスケーラブルHEVCビデオコーディング(SHVC)WD1およびマルチビューHEVC(MV-HEVC)WD3および上記で対処されているプロファイル-ティア-レベル情報、(2) Cat2:上記で対処されている表現フォーマット情報、(3) Cat3:サブレイヤ情報(sps_max_sub_layers_minus1、sps_temporal_id_nesting_flag、sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]、およびsps_max_latency_increase_plus1[i])(これらの変更は、Cat3とも呼ばれる例Cを示すためにこの提案で使用される[開始例C]および[終了例C]という括弧付きラベルによって示される)、(4) Cat4:短期参照ピクチャセット(RPS)候補(このための変更は、Cat4とも呼ばれる例Dを示すためにこの提案で使用される[開始例D]および[終了例D]という括弧付きラベルによって示される)、(5) Cat5:ビデオ活用性情報(VUI)パラメータ(このための変更は、Cat5とも呼ばれる例Eを示すためにこの提案で使用される[開始例E]および[終了例E]という括弧付きラベルによって示される)、および(6) Cat6:他のSPSパラメータ、このための変更および共通の変更は、Cat6とも呼ばれる例Fを示すためにこの提案で使用される[開始例F]および[終了例F]という括弧付きラベルによって示される。
【0163】
拡張レイヤを含む拡張レイヤまたはレイヤセットの場合、範疇3〜6の情報はアクティブなVPSから継承されるかまたはSPS内で直接シグナリングされてよく、一方、範疇1および2の情報は、セッション交渉に重要であるのでVPS内でシグナリングする必要がある。nuh_layer_idが0よりも大きいSPSでは、VPS ID、SPS ID、および(範疇3〜6(Cat3〜Cat6)のデータがSPSに存在するかそれともアクティブなVPSから継承されるかを示すための)フラグをシグナリングするための、最小限の3つのシンタックス要素のみが存在する。そのようなダミーSPSの役割は、アクティブVPS IDをピクチャパラメータセット(PPS)に渡し、次いで間接的にビデオコーディングレイヤ(VCL)ネットワークアブストラクションレイヤ(NAL)ユニットに渡すことである。
【0164】
以下の変更は、MV-HEVC WD3およびSHVC WD1に基づいており、上述のように、それぞれに異なるカラーコードによって識別され、すなわち、それぞれに異なる色で強調されており、削除事項には取り消し線が施されている。言及されていない部分はMV-HEVC WD3およびSHVC WD1と同じである。
【0165】
以下のTable 3(表3)には、ローバイトシーケンスペイロード(RBSP)シンタックスおよびセマンティクスのビデオパラメータセット(VPS)に関する例示的なシンタックスが示されている。これはSHVC WD1およびMV-HEVC WD3と同じである。便宜上、このシンタックスを以下に(Table 3(表3))コピーする。
【0167】
Table 4(表4)は、ビデオパラメータセット拡張シンタックスおよびセマンティクスの例を示す。
【0171】
[開始例A]パラメータvps_num_profile_tier_level_minus1 plus 1は、VPS内のprofile_tier_level()シンタックス構造の数を指定する。Vps_profile_present_flag[i]が1に等しい場合は、プロファイル情報およびティア情報がi番目のprofile_tier_level()シンタックス構造に存在することを明示する。Vps_profile_present_flag[lsIdx]が0に等しい場合は、プロファイル情報およびティア情報が、i番目のprofile_tier_level()シンタックス構造に存在せず、i番目のprofile_tier_level()シンタックス構造に関して推定できることを明示する。
【0172】
パラメータprofile_ref_minus1[i]は、i番目のprofile_tier_level()シンタックス構造に関するプロファイル情報およびティア情報が、(profile_ref_minus1[i]+1)番目のprofile_tier_level()シンタックス構造に関するプロファイル情報およびティア情報と等しいと推定できることを明示する。profile_ref_minus1[i]+1の値はi未満であってよい。
【0173】
パラメータdirect_dependency_flag[i][j]が0に等しい場合は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤではないことを明示する。direct_dependency_flag[i][j]が1に等しい場合は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤであり得ることを明示する。direct_dependency_flag[i][j]は、0からvps_max_layers_minus1の範囲でiおよびjに関して存在しないときには0に等しいと推定されてよい。
【0174】
変数NumDirectRefLayers[i]およびRefLayerId[i][j]は次のように導出されてよい。
for(i=1; i <= vps_max_layers_minus1; i++)
for(j=0, NumDirectRefLayers[i] = 0; j<i; j++)
if(direct_dependency_flag[i][j] == 1)
RefLayerId[i][NumDirectRefLayers[i]++] =レイヤ_ID_in_nuh[j][終了例A]
【0175】
[開始例B]パラメータvps_num_rep_formatsは、VPS内の後続のrep_format()シンタックス構造の数を指定する。vps_rep_format_idx[i]は、nuh_layer_idがレイヤ_ID_in_nuh[i]に等しいレイヤに適用されるrep_format()シンタックス構造の、VPS内のrep_format()シンタックス構造の組に対するインデックスを指定する。iが0に等しいかまたはvps_num_rep_formatsが1に等しいとき、vps_rep_format_idx[i]は0に等しいと推定されてよい。vps_rep_format_idx[i]の値は、0からvps_num_rep_formats-1の範囲(両端値を含む)内であってよい。[終了例B]
【0176】
[開始例C]max_sub_layers_vps_predict_flag[i]が1に等しい場合は、max_sub_layers_vps_minus1[i]がmax_sub_layers_vps_minus1[i-1]に等しいと推定されてよく、かつsub_layer_vps_ordering_predict_flag[i]が存在することを明示する。max_sub_layers_vps_predict_flag[i]が0に等しい場合は、max_sub_layers_vps_minus1[i]が明示的にシグナリングされることを明示する。max_sub_layers_vps_predict_flag[0]の値は0に等しいと推定されてよい。
【0177】
パラメータmax_sub_layers_vps_minus1[i]は、SPSシンタックス要素sps_max_sub_layers_minus1の推定に使用される。max_sub_layers_vps_predict_flag[i]が1に等しいとき、max_sub_layers_vps_minus1[i]はmax_sub_layers_vps_minus1に等しいと推定されてよい。max_sub_layers_vps_minus1[i]の値はvps_max_sub_layers_minus1に等しいと推定されてよい。[終了例C][開始例A]multiple_output_layer_sets_in_layer_set_flagが1に等しい場合は、VPSによってレイヤセットごとに複数の出力レイヤセットが指定されてよいことを明示する。multiple_output_layer_sets_in_layer_set_flagが0に等しい場合は、VPSによってレイヤセットごとに1つの出力レイヤセットのみが指定され、最上位レイヤが唯一の目標出力レイヤであることを明示する。したがって、multiple_output_layer_sets_in_layer_set_flagが0に等しい場合は、VPSによってレイヤごとに1つの出力レイヤのみが指定され、最上位レイヤが唯一の目標出力レイヤであることを明示するので、デフォルトの出力レイヤセットに関する目標出力レイヤの明示的なシグナリングは必要とされない。たとえば、各レイヤセットの出力レイヤは1つだけであるので、どのレイヤを出力すべきかをシグナリングする必要はない。
【0178】
パラメータnum_output_layer_sets_minus1 plus 1は、VPSによって指定される出力レイヤセットの数を指定する。num_output_layer_sets_minus1 の値は、0から1023の範囲(両端値を含む)内であってよい。[終了例A]
【0179】
代替的に、num_output_layer_sets_minus1の代わりに、vps_num_layers_sets_minus1+1に加えて出力レイヤセットの数を示すnum_addn_output_layer_setsがシグナリングされてよい。
【0180】
[開始例A]パラメータoutput_layer_set_idx_minus1[i]plus 1は、i番目の出力レイヤセットのレイヤセットのインデックスを指定する。output_layer_set_idx_minus1[i]の値は、0からvps_num_layers_sets_minus1-1の範囲(両端値を含む)内であってよい。output_layer_set_idx_minus1[i]シンタックス要素の長さは、Ceil(Log2(vps_num_layers_sets_minus1))ビットである。
【0181】
output_layer_flag[i][j]が1に等しい場合は、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、output_layer_flag[i][j]が0に等しい場合は、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する。
【0182】
output_layer_flag[i][NumLayersInIdList[lsIdx]-1]の値は1に等しいと推定されてよく、その場合、lsIdxはoutput_layer_set_idx_minus1[i]+1に等しい。[終了例A]
【0183】
代替的に、output_layer_flag[i][NumLayersInIdList[lsIdx]-1]の値は1に等しいと推定されてよく、その場合、lsIdxはoutput_layer_set_idx_minus1[i]+1に等しく、iは0からvps_num_layers_sets_minus1の範囲(両端値を含む)内であり、output_layer_flag[i][j]の値は、iが0からvps_num_layers_sets_minus1の範囲(両端値を含む)内であり、jが0からNumLayersInIdList[lsIdx]-2の範囲(両端値を含む)内である場合に0に等しいと推定されてよく、lsIdxはoutput_layer_set_idx_minus1[i]+1に等しい。
【0184】
[開始例A]パラメータprofile_level_tier_idx[i]は、i番目の出力レイヤセットに適用されるprofile_tier_level()シンタックス構造の、VPS内のprofile_tier_level()シンタックス構造の組のインデックスを指定する。profile_level_tier_idx[i]シンタックス要素の長さは、Ceil(Log2(vps_num_profile_tier_level_minus1+1))ビットである。profile_level_tier_idx[0]の値は0に等しいと推定されてよい。profile_level_tier_idx[i]の値は、0からvps_num_profile_tier_level_minus1の範囲(両端値を含む)内であってよい。[終了例A]
【0185】
[開始例F]パラメータvps_num_other_sps_paramsは、VPS内の後続のother_sps_parameters()シンタックス構造の数を指定する。vps_num_other_sps_paramsの値は、0から15の範囲(両端値を含む)内であってよい。[終了例F]
【0186】
[開始例D]パラメータvps_num_st_rps_candidatesは、VPS内の後続のshort_term_rps_candidates()シンタックス構造の数を指定する。vps_num_st_rps_candidatesの値は、0から15の範囲(両端値を含む)内であってよい。[終了例D]
【0187】
[開始例E]パラメータvps_num_vui_paramsは、VPS内の後続のvui_parameters()シンタックス構造の数を指定する。vps_num_vui_paramsの値は、0から15の範囲(両端値を含む)内であってよい。[終了例E]
【0188】
[開始例F]vps_other_sps_params_idx[i]は、nuh_layer_idがlayer_id_in_nuh[i]に等しいレイヤに適用されるother_sps_parameters()シンタックス構造の、VPS内のother_sps_parameters()シンタックス構造の組のインデックスを指定する。vps_other_sps_params_idx[i]シンタックス要素の長さは、Ceil(Log2(vps_num_other_sps_params))ビットであってよい。Vps_num_other_sps_paramsが1に等しいとき、vps_other_sps_params_idx[i]は0に等しいと推定されてよい。vps_other_sps_params_idx[i]の値は、0からvps_num_other_sps_params-1の範囲(両端値を含む)内であってよい。[終了例F]
【0189】
[開始例D]パラメータvps_st_rps_idx[i]は、nuh_layer_idがlayer_id_in_nuh[i]に等しいレイヤに適用されるshort_term_rps_candidates()シンタックス構造の、VPS内のshort_term_rps_candidates()シンタックス構造の組のインデックスを指定する。vps_st_rps_idx[i]シンタックス要素の長さは、Ceil(Log2(vps_num_st_rps_candidates))ビットであってよい。vps_num_st_rps_candidatesが1に等しいとき、vps_st_rps_idx[i]は0に等しいと推定されてよい。vps_st_rps_idx[i]の値は、0からvps_num_st_rps_candidates-1の範囲(両端値を含む)内であってよい。[終了例D]
【0190】
[開始例E]パラメータvps_vui_params_idx[i]は、nuh_layer_idがlayer_id_in_nuh[i]に等しいレイヤに適用されるvui_parameters()シンタックス構造の、VPS内のvui_parameters()シンタックス構造の組のインデックスを指定する。vps_vui_params_idx[i]シンタックス要素の長さは、Ceil(Log2(vps_num_vui_params))ビットであってよい。vps_num_vui_paramsが1に等しいとき、vps_vui_params_idx[i]の値は0に等しいと推定されてよい。vps_vui_params_idx[i]の値は、0からvps_num_vui_params-1の範囲(両端値を含む)内であってよい。[終了例E]
【0191】
[開始例C]0からnum_output_layer_sets-1の範囲(両端値を含む)内のsetIdの変数MaxSubLayers[setId]は次のように導出される。
for(setId = 0; setId <num_output_layer_sets; setId++){
lsIdx =output_layer_set_idx_minus1[setId]+1//レイヤセットインデックス
highestLayerId = LayerSetLayerIdList[lsIdx][NumLayersInIdList[lsIdx]-1]
MaxSubLayers[setId] = (max_sub_layers_vps_minus1[highestLayerId]+1)
}
【0192】
max_sub_layers_vps_predict_flag[i]が1に等しい場合は、max_sub_layers_vps_minus1[i]がmax_sub_layers_vps_minus1[i]に等しいと推定されてよく、かつsub_layer_vps_ordering_predict_flag[i]が存在することを明示する。max_sub_layers_vps_predict_flag[i]が0に等しい場合は、max_sub_layers_vps_minus1[i]が明示的にシグナリングされることを明示する。max_sub_layers_vps_predict_flag[0]の値は0に等しいと推定されてよい。
【0193】
sub_layer_vps_buf_info_predict_flag[i]が1に等しい場合は、max_vps_dec_pic_buffering_minus1[i][j]が、jの各値についてmax_vps_dec_pic_buffering_minus1[i-1][j]に等しいと推定されてよい。sub_layer_vps_buf_info_predict_flag[i]が0に等しい場合は、jの少なくとも1つの値についてのmax_vps_dec_pic_buffering_minus1[i][j]が明示的にシグナリングされることを明示する。
【0194】
パラメータsub_layer_vps_buf_info_present_flag[i]が1に等しい場合は、MaxSubLayers[i]個のサブレイヤに関してmax_vps_dec_pic_buffering_minus1[i][j]が存在することを明示する。sub_layer_vps_buf_info_present_flag[i]が0に等しい場合は、max_vps_dec_pic_buffering_minus1[i][MaxSubLayers[i]-1]の値がすべてのサブレイヤに適用されることを明示する。
【0195】
パラメータmax_vps_dec_pic_buffering_minus1[i][j]はSPSシンタックス要素sps_max_dec_pic_buffering_minus1[j]の値を推定するために使用される。max_vps_dec_pic_buffering_minus1[i][j]は、sub_layer_vps_buf_info_present_flag[i]が0に等しいことに起因してiが0からMaxSubLayers[i]-2の範囲(両端値を含む)内である場合に存在しないとき、max_vps_dec_pic_buffering_minus1[i][MaxSubLayers[i]-1]に等しいと推定されてよい。
【0196】
jの各値についてのmax_vps_dec_pic_buffering_minus1[0][j]はvps_max_dec_pic_buffering_minus1[j]に等しいと推定されてよい。
【0197】
パラメータsub_layer_vps_ordering_info_predict_flag[i]が1に等しい場合は、シンタックス要素sub_layer_vps_ordering_info_present_flag[i]、max_vps_num_reorder_pics[i][j]、およびmax_vps_latency_increase_plus1[i][j]がそれぞれ、sub_layer_vps_ordering_info_present_flag[i-1]、max_vps_num_reorder_pics[i-1][j]、およびmax_vps_latency_increase_plus1[i-1][j]に等しいと推定される。sub_layer_vps_ordering_info_predict_flag[i]が0に等しい場合は、sub_layer_vps_ordering_info_present_flag[i]、max_vps_num_reorder_pics[i][j]、およびmax_vps_latency_increase_plus1[i][j]シンタックス要素が明示的にシグナリングされる。sub_layer_vps_ordering_info_predict_flag[i]が存在しないとき、その値は0に等しく設定される。
【0198】
パラメータsub_layer_vps_ordering_info_present_flag[i]が1に等しい場合は、max_sub_layers_vps_minus1+1個のサブ_レイヤに関してmax_vps_num_reorder_pics[i][j]およびmax_vps_latency_increase_plus1[i][j]が存在することを明示する。sub_layer_vps_ordering_info_present_flag[i]が0に等しい場合は、max_vps_num_reorder_pics[i][vps_max_sub_layers_minus1]およびmax_vps_latency_increase_plus1[i][max_sub_layers_vps_minus1]がすべてのサブレイヤに適用されることを明示する。
【0199】
パラメータmax_vps_num_reorder_pics[i][j]はSPSシンタックス要素sps_max_num_reorder_pics[j]の値を推定するために使用される。max_vps_num_reorder_pics[i][j]は、sub_layer_vps_ordering_info_present_flag[i]が0に等しいことに起因してiが0からmax_sub_layers_vps_minus1[i]-1の範囲(両端値を含む)内である場合に存在しないとき、max_vps_num_reorder_pics[i][max_sub_layers_vps_minus1[i]]に等しいと推定されてよい。
【0200】
パラメータmax_vps_latency_increase_plus1[i][j]はSPSシンタックス要素sps_max_latency_increase_plus1[j]の値を推定するために使用される。max_vps_latency_increase_plus1[i][j]は、sub_layer_vps_ordering_info_present_flag[i]が0に等しいことに起因してiが0からmax_sub_layers_vps_minus1[i]-1の範囲(両端値を含む)内である場合に存在しないとき、max_vps_latency_increase_plus1[i][max_sub_layers_vps_minus1[i]]に等しいと推定されてよい。[終了例C]
【0202】
Table 5(表5)は、代表的なフォーマットおよびセマンティクスの例を示す。
【0204】
パラメータchroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_chroma_minus8、およびbit_depth_vps_chroma_minus8はそれぞれ、VPSを参照するSPSごとに、SPSシンタックス要素chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8、およびbit_depth_chroma_minus8の値を推定するために使用されてよい。これらのシンタックス要素の各々に関しても、対応するSPSシンタックス要素の値に適用される制約がある場合には、それらの制約のすべてが適用される。[終了例B]表現フォーマット情報は概して、たとえば、シーケンスのビット深度、クロマサンプリングフォーマット、解像度を含んでよい。Table 5(表5)の例に示すように、表現フォーマットは、chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_chroma_minus8、およびbit_depth_vps_chroma_minus8を含んでよい。さらに、Table 5(表5)に示すように、VPS内の表現フォーマットのシグナリングは、表現フォーマット、たとえば、chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_chroma_minus8、およびbit_depth_vps_chroma_minus8がエントロピー復号なしでアクセスできるように実行されてよい。言い換えれば、Table 5(表5)に示すように、chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_chroma_minus8、およびbit_depth_vps_chroma_minus8はエントロピー符号化されず、すなわち、記述子はue(v)ではない。いくつかの例では、各レイヤは特定の表現フォーマットに関連付けられてよい。
【0205】
[開始例F]Table 6(表6)は、他のSPSパラメータシンタックスおよびセマンティクスの例を示す。
【0207】
以下のシンタックス要素の各々に関しても、対応するSPSシンタックス要素の値に適用される制約がある場合には、それらの制約のすべてが適用される。conformance_window_vps_flag、conf_win_vps_left_offset、conf_win_vps_right_offset、conf_win_vps_top_offset、conf_win_vps_bottom_offset、log2_vps_max_pic_order_cnt_lsb_minus4、log2_vps_min_luma_coding_block_size_minus3、log2_vps_diff_max_min_luma_coding_block_size、log2_vps_min_transform_block_size_minus2、log2_vps_diff_max_min_transform_block_size、max_vps_transform_hierarchy_depth_inter、max_vps_transform_hierarchy_depth_intra、scaling_list_enabled_vps_flag、scaling_list_enabled_vps_flag、amp_enabled_vps_flag、sample_adaptive_offset_enabled_vps_flag、pcm_enabled_vps_flag、pcm_vps_sample_bit_depth_luma_minus1、pcm_vps_sample_bit_depth_chroma_minus1、log2_vps_min_pcm_luma_coding_block_size_minus3、log2_vps_diff_max_min_pcm_luma_coding_block_size、pcm_vps_loop_filter_disabled_flag、long_term_ref_pics_present_vps_flag、num_long_term_ref_pics_vps、lt_ref_pic_poc_lsb_vps[i]、used_by_curr_pic_lt_vps_flag[i]、temporal_mvp_enabled_vps_flag、およびstrong_
intra_smoothing_enabled_vps_flagはそれぞれ、シンタックス要素conformance_window_flag、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset、conf_win_bottom_offset、log2_max_pic_order_cnt_lsb_minus4、log2_min_luma_coding_block_size_minus3、log2_diff_max_min_luma_coding_block_size、log2_min_transform_block_size_minus2、log2_diff_max_min_transform_block_size、max_transform_hierarchy_depth_inter、max_transform_hierarchy_depth_intra、scaling_list_enabled_flag、sps_scaling_list_data_present_flag、amp_enabled_flag、sample_adaptive_offset_enabled_flag、pcm_enabled_flag、pcm_sample_bit_depth_luma_minus1、pcm_sample_bit_depth_chroma_minus1、log2_min_pcm_luma_coding_block_size_minus3、log2_diff_max_min_pcm_luma_coding_block_size、pcm_loop_filter_disabled_flag、long_term_ref_pics_present_flag、num_long_term_ref_pics_sps、lt_ref_pic_poc_lsb_sps[i]、used_by_curr_pic_lt_flag[i]、sps_temporal_mvp_enabled_flag、およびstrong_intra_smoothing_enabled_flagの値を推定するために使用されてよい。
[終了例F]
【0208】
[開始例D]Table 7(表7)は、短期RPS候補シンタックスおよびセマンティクスの例を示す。
【0210】
パラメータnum_short_term_ref_pic_setsは、後続のshort_term_ref_pic_set()シンタックス構造の数を指定する。num_short_term_ref_pic_setsの値は、0から64の範囲(両端値を含む)内であってよい。
【0211】
注1-現在のピクチャのスライスヘッダには直接シグナリングされるshort_term_ref_pic_set()シンタックス構造があり得るので、デコーダは、num_short_term_ref_pic_sets+1short_term_ref_pic_set()シンタックス構造の総数にメモリを割り振るべきである。現在のピクチャのスライスヘッダにおいて直接シグナリングされるshort_term_ref_pic_set()シンタックス構造は、num_short_term_ref_pic_setsに等しいインデックスを有する。
【0212】
パラメータpred_st_rps_cand_idx_plus1 minus 1は、現在のshort_term_rps_candidates()シンタックス構造の少なくとも1つのshort_term_ref_pic_set()シンタックス構造を推定するのに使用されるshort_term_rps_candidates()シンタックス構造の、VPS内のshort_term_rps_candidates()シンタックス構造の組のインデックスを指定する。pred_st_rps_cand_idx_plus1は、存在しないとき、0に等しいと推定されてよい。pred_st_rps_cand_idx_plus1の値は、1からvps_num_st_rps_candidates-1の範囲(両端値を含む)内であってよい。
【0213】
pred_from_rps_cand_list_flag[i]が1に等しい場合、現在のshort_term_rps_candidates()シンタックス構造のi番目のshort_term_ref_pic_set()シンタックス構造は、存在せず、別のshort_term_rps_candidates()シンタックス構造に存在するshort_term_ref_pic_set()シンタックス構造のうちの1つであるように設定されることを明示する。pred_from_rps_cand_list_flag[i]が0に等しい場合、現在のshort_term_rps_candidates()シンタックス構造のi番目のshort_term_ref_pic_set()シンタックス構造が存在することを明示する。pred_from_rps_cand_list_flag[i]が存在しないとき、その値は0に等しいと推定されてよい。[終了例D]
【0214】
代替的に、pred_from_rps_cand_list_flag[i]が1に等しい場合、i番目のshort_term_ref_pic_set()に対応する変数DeltaPocS0、DeltaPocS1、UsedByCurrPicS1、UsedByCurrPicS0、NumPositivePics、NumNegativePics、およびNumDeltaPocsがそれぞれ、別のshort_term_rps_candidates()構造に対応する変数DeltaPocS0、DeltaPocS1、UsedByCurrPicS1、UsedByCurrPicS0、NumPositivePics、NumNegativePics、およびNumDeltaPocsに等しくなるように導出されることを明示する。
【0215】
[開始例D]パラメータidx_in_rps_cand[i]は、現在のshort_term_rps_candidates()のi番目のshort_term_ref_pic_set()シンタックス構造と同一のshort_term_ref_pic_set()シンタックス構造の、VPS内の(pred_st_rps_cand_idx_plus1-1)番目のshort_term_rps_candidates()シンタックス構造のshort_term_ref_pic_set()シンタックス構造の組のインデックスを指定する。
【0216】
pred_from_rps_cand_list_flag[i]が1に等しい場合、現在のshort_term_rps_candidates()シンタックス構造内のi番目のshort_term_ref_pic_set()シンタックス構造は、VPS内の(pred_st_rps_cand_idx_plus1-1)番目のshort_term_rps_candidates()シンタックス構造のidx_in_rps_cand[i]番目のshort_term_ref_pic_set()シンタックス構造と同じに設定される。[終了例D]
【0217】
代替的に、pred_from_rps_cand_list_flag[i]が1に等しい場合、現在のshort_term_rps_candidates()シンタックス構造内のi番目のshort_term_ref_pic_set()シンタックス構造に対応する変数DeltaPocS0、DeltaPocS1、UsedByCurrPicS1、UsedByCurrPicS0、NumPositivePics、NumNegativePics、およびNumDeltaPocsがそれぞれ、VPS内の(pred_st_rps_cand_idx_plus1-1)番目のshort_term_rps_candidates()シンタックス構造のidx_in_rps_cand[i]番目のshort_term_ref_pic_set()シンタックス構造に対応する変数DeltaPocS0、DeltaPocS1、UsedByCurrPicS1、UsedByCurrPicS0、NumPositivePics、NumNegativePics、およびNumDeltaPocsに等しく設定されることを明示する。Table 8(表8)は、VUIパラメータシンタックスおよびセマンティクスの例を示す。
【0220】
[開始例E]timingParamsPresentFlagが0に等しいときには、以下のことが適用される。vui_timing_info_present_flag、vui_num_units_in_tick、vui_time_scale、vui_poc_proportional_to_timing_flag、およびvui_num_ticks_poc_diff_one_minus1の値はそれぞれ、vps_timing_info_present_flag、vps_num_units_in_tick、vps_time_scale、vps_poc_proportional_to_timing_flag、およびvps_num_ticks_poc_diff_one_minus1に等しいと推定される。vui_hrd_parameters_present_flagの値は、0に等しいと推定されてよい。
【0221】
パラメータvui_parameters_present_flagが1に等しい場合、vui_parameters()シンタックス構造内にシンタックス要素がまだあることを明示する。パラメータvui_parameters_present_flagが0に等しい場合、vui_parameters()シンタックス構造内にはもはやシンタックス要素がないことを明示する。[終了例E]
【0222】
一例では、Table 8(表8)を見るとわかるように、視覚的信号情報(たとえば、video_format、video_full_range_flag、colour_primaries、transfer_characteristics、matrix_coeffs)はVUIパラメータのサブセットである。さらに、Table 4(表4)の例に示すように、VUI、したがって、視覚的信号情報は、VPSに含まれる。Table 4(表4)およびTable 8(表8)から得られる情報を組み合わせることによって、視覚的信号情報がVPS内のレイヤごとにシグナリングされることがわかる。
【0223】
Table 9(表9)は、例示的なシーケンスパラメータセットRBSPシンタックスおよびセマンティクスを示す。
【0228】
SPSのnuh_layer_idが0に等しいとき、chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8、およびbit_depth_chroma_minus8の値はそれぞれ、アクティブなVPS内の0番目のrep_format()シンタックス構造のchroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_chroma_minus8、およびbit_depth_vps_chroma_minus8に等しくてよい。
【0229】
SPSを参照するnuh_layer_idが0よりも大きい各レイヤについて、layerIdxを、layer_id_in_nuh[layerIdx]がレイヤのnuh_layer_idに等しくなる値に等しく設定すると、以下のことが適用される。[終了例B]
【0230】
[開始例A]SPSのnuh_layer_idが0に等しいとき、SPS内のprofile_tier_level()シンタックス構造は無視される。[終了例A]
【0231】
Table 8(表8)およびTable 9(表9)に示すように、SPS VUIにおいて、たとえば0よりも大きいレイヤに関してタイミング情報はシグナリングされない。
【0232】
-[開始例B]chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8、およびbit_depth_chroma_minus8の値はそれぞれ、chroma_format_vps_idc、separate_colour_plane_vps_flag、pic_width_vps_in_luma_samples、pic_height_vps_in_luma_samples、bit_depth_vps_chroma_minus8、およびbit_depth_vps_chroma_minus8がVPSに存在するかどうかにかかわらず、アクティブなVPS内のvps_rep_format_idx[layerIdx]番目のrep_format()シンタックス構造のこれらのシンタックス要素に等しいと推定される。[終了例B]
【0233】
[開始例F]パラメータinherit_sps_params_from_vps_flagが1に等しい場合は、SPS RBSPに関して、sps_video_parameter_set_idおよびシンタックス要素sps_seq_parameter_set_id以外の、sps_extension_flagまでのすべてのシンタックス要素およびシンタックス構造の値が、アクティブなVPSから継承されてよいことを明示する。inherit_sps_params_from_vps_flagが0に等しい場合は、これらの値がアクティブなVPSから継承されないことを明示する。inherit_sps_params_from_vps_flagが存在しないとき、その値は0に等しいと推定されてよい。vps_num_rep_fromats、vps_num_other_sps_params、vps_num_st_rps_candidates、またはvps_num_vui_paramsが0に等しいとき、inherit_sps_params_from_vps_flagの値は0に等しくてよい。inherit_sps_params_from_vps_flaが1に等しいときには、以下のことが適用される。[終了例F]
【0234】
[開始例C]SPSを参照するレイヤごとのsps_max_sub_layers_minus1の値は、max_sub_layers_vps_minus1[layerIdx]に等しいと推定されてよく、この場合、layerIdxは、layer_id_in_nuh[layerIdx]がレイヤのnuh_layer_idに等しくなる値に等しい。
【0235】
SPSを参照するレイヤごとのsps_max_dec_pic_buffering_minus1[i]の値は、iが0からMaxSubLayers[lxIdx]-1の範囲(両端値を含む)内ではmax_vps_dec_pic_buffering_minus1[lsIdx][i]に等しいと推定されてよく、この場合、lsIdxは、0からvps_num_layers_sets_minus1の範囲(両端値を含む)内であり、レイヤが最上位レイヤでかつ唯一の目標出力レイヤである出力レイヤセットの、各出力レイヤセットのうちのVPSによって指定されるセットのインデックスを示す。
【0236】
SPSを参照するレイヤごとのsps_max_num_reorder_pics[i]およびsps_max_latency_increase_plus1[i]の値は、max_vps_num_reorder_pics[layerIdx][i]およびmax_vps_latency_increase_plus1[layerIdx]に等しいと推定され、この場合、layerIdxは、iが0からsps_max_sub_layers_minus1の範囲(両端値を含む)内において、layer_id_in_nuh[layerIdx]がレイヤのnuh_layer_idに等しくなる値に等しい。SPSを参照するレイヤごとのsps_temporal_id_nesting_flagの値は、vps_temporal_id_nesting_flagに等しいと推定されてよい。[終了例C]
【0237】
上記の説明およびTable 9(表9)からわかるように、いくつかの例では、nuh_layer_id_>0であるときsps_max_sub_layers_minus1およびsps_temporal_id_nesting_flagをシグナリングしない。
【0238】
[開始例F]SPSを参照するレイヤごとのconformance_window_flag、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset、conf_win_bottom_offset、log2_max_pic_order_cnt_lsb_minus4、log2_min_luma_coding_block_size_minus3、log2_diff_max_min_luma_coding_block_size、log2_min_transform_block_size_minus2、log2_diff_max_min_transform_block_size、max_transform_hierarchy_depth_inter、max_transform_hierarchy_depth_intra、scaling_list_enabled_flag、sps_scaling_list_data_present_flag、amp_enabled_flag、sample_adaptive_offset_enabled_flag、pcm_enabled_flag、pcm_sample_bit_depth_luma_minus1、pcm_sample_bit_depth_chroma_minus1、log2_min_pcm_luma_coding_block_size_minus3、log2_diff_max_min_pcm_luma_coding_block_size、pcm_loop_filter_disabled_flag、long_term_ref_pics_present_flag、num_long_term_ref_pics_sps、lt_ref_pic_poc_lsb_sps[i]、used_by_curr_pic_lt_flag[i]、sps_temporal_mvp_enabled_flag、およびstrong_intra_smoothing_enabled_flagの値はそれぞれ、アクティブなVPS内のvps_other_sps_params_idx[layerIdx]番目のother_sps_parameters()シンタックス構造のconformance_window_vps_flag、conf_win_vps_left_offset、conf_win_vps_right_offset、conf_win_vps_top_offset、conf_win_vps_bottom_offset、log2_vps_max_pic_order_cnt_lsb_minus4、log2_vps_min_luma_coding_block_size_minus3、log2_vps_diff_max_min_luma_coding_block_size、log2_vps_min_transform_block_size_minus2、log2_vps_diff_max_min_transform_block_size、max_vps_transform_hierarchy_depth_inter、max_vps_transform_hierarchy_depth_intra、scaling_list_enabled_vps_flag、scaling_list_enabled_vps_flag、amp_enabled_vps_flag、sample_adaptive_offset_enabled_vps_flag、pcm_enabled_vps_flag、pcm_vps_sample_bit_depth_luma_minus1、pcm_vps_sample_bit_depth_chroma_minus1、log2_vps_min_pcm_luma_coding_block_size_minus3、log2_vps_diff_max_min_pcm_luma_coding_block_size、pcm_vps_loop_filter_disabled_flag、long_term_ref_pics_present_vps_flag、num_long_term_ref_pics_vps、lt_ref_pic_poc_lsb_vps、used_by_curr_pic_lt_vps_flag[i]、temporal_mvp_enabled_vps_flag、およびstrong_intra_smoothing_enabled_vps_flagに等しいと推定され、この場合、layerIdxは、layer_id_in_nuh[layerIdx]がレイヤのnuh_layer_idに等しくなる値に等しい。
【0239】
scaling_list_enabled_vps_flagが1に等しいとき、SPSを参照するレイヤごとのシンタックス構造scaling_list_data()の値は、アクティブなVPS内のvps_other_sps_params_idx[layerIdx]番目のother_sps_parameters()シンタックス構造におけるシンタックス構造scaling_list_data()に等しいと推定されてよい。[終了例F]
【0240】
[開始例D]SPSを参照するレイヤごとのシンタックス構造short_term_rps_candidates()の値は、アクティブなVPS内のvps_st_rps_idx[layerIdx]番目のshort_term_rps_candidates()に等しいと推定されてよく、この場合、layerIdxは、layer_id_in_nuh[layerIdx]がレイヤのnuh_layer_idに等しくなる値に等しい。[終了例D]
【0241】
[開始例E]SPSを参照するレイヤごとのシンタックス構造vui_parameters()の値は、アクティブなVPS内のvps_vui_params_idx[layerIdx]番目のvui_parameters()シンタックス構造に等しいと推定されてよく、この場合、layerIdxは、layer_id_in_nuh[layerIdx]がレイヤのnuh_layer_idに等しくなる値に等しい。[終了例E]
【0243】
パラメータconf_win_left_offset、conf_win_right_offset、conf_win_top_offset、およびconf_win_bottom_offsetは、出力対象としてピクチャ座標で指定された矩形領域として、復号プロセスから出力されるコーディング済みビデオストリーム(CVS)内のピクチャのサンプルを指定する。[開始例F]inherit_sps_params_from_vps_flagが0に等しく[終了例F]conformance_window_flagが0に等しいとき、conf_win_left_offset、conf_win_right_offset、conf_win_top_offset、およびconf_win_bottom_offsetの値は0に等しいと推定されてよい。
【0244】
適合クロッピングウィンドウは、水平ピクチャ座標がSubWidthC*conf_win_left_offsetからpic_width_in_luma_samples(SubWidthC*適合_ウィンドウ_オフセット+1)まで(両端値を含む)で、垂直方向ピクチャ座標がSubHeightC*conf_win_top_offsetからpic_height_in_luma_samples(SubHeightC*conf_win_bottom_offset+1)まで(両端値を含む)のルーマサンプルを含む。
【0245】
SubWidthC*(conf_win_left_offset+conf_win_right_offset)の値はpic_width_in_luma_samplesよりも小さくてよく、SubHeightC*(conf_win_top_offset+conf_win_bottom_offset)の値はpic_height_in_luma_samplesよりも小さくてよい。
【0246】
ChromaArrayTypeが0に等しくないとき、2つのクロマアレイの対応する指定されるサンプルは、ピクチャ座標(x/SubWidthC, y/SubHeightC)を有するサンプルであり、この場合、(x, y)は指定されたルーマサンプルのピクチャ座標である。
【0247】
注3-適合クロッピングウィンドウオフセットパラメータは出力にのみ適用される。すべての内部復号プロセスは、クロッピングされていないピクチャサイズに適用される。
【0249】
inherit_sps_params_from_vps_flagが0、[終了例C]に等しいときにパラメータsps_sub_layer_ordering_info_present_flagが1[開始例C]に等しい場合は、sps_max_sub_layers_minus1+1に関してsps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]、およびsps_max_latency_increase_plus1[i]が存在することを明示する。inherit_sps_params_from_vps_flagが0、[終了例C]に等しいときにsps_sub_layer_ordering_info_present_flagが0、[開始例C]に等しい場合は、sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]、sps_max_num_reorder_pics[sps_max_sub_layers_minus1]、およびsps_max_latency_increase_plus1[sps_max_sub_layers_minus1]がすべてのサブレイヤに適用されることを明示する。
【0250】
パラメータsps_max_dec_pic_buffering_minus1[i] plus 1は、HighestTidがiに等しいときのピクチャ記憶バッファの単位でのCVSの復号済みピクチャバッファの最大必要サイズを指定する。いくつかの例では、sps_max_dec_pic_buffering_minus1[i]の値は0から(A.4節に指定されているような)MaxDpbSize-1の範囲(両端値を含む)内であってよい。iが0よりも大きいとき、sps_max_dec_pic_buffering_minus1[i]は、sps_max_dec_pic_buffering_minus1[i-1]以上であってよい。sps_max_dec_pic_buffering_minus1[i]は、iの各値についてvps_max_dec_pic_buffering_minus1[i]以下であってよい。[開始例C]sps_max_dec_pic_buffering_minus1が0に等しく、iが0からsps_max_sub_layers_minus1-1の範囲(両端値を含む)内である場合に、sps_sub_layer_ordering_info_present_flagが0に等しいことに起因して、[終了例C]sps_max_dec_pic_buffering_minus1[i]が存在しないとき、sps_max_dec_pic_buffering_minus1[i]は、sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]に等しいと推定される。
【0251】
パラメータsps_max_num_reorder_pics[i]は、HighestTidがiに等しいときに、CVS内の任意のピクチャよりも前に位置するピクチャの最大許容数を復号順に示し、そのピクチャよりも後に位置するピクチャの最大許容数を出力順に示す。sps_max_num_reorder_pics[i]の値は、0からsps_max_dec_pic_buffering_minus1[i]の範囲(両端値を含む)内であってよい。iが0よりも大きいとき、sps_max_num_reorder_pics[i]はsps_max_num_reorder_pics[i-1]以上であってよい。Sps_max_num_reorder_pics[i]は、iの各値についてvps__max_num_reorder_pics[i]以下であってよい。[開始例C]inherit_sps_params_from_vps_flagが0に等しく、iが0からsps_max_sub_layers_minus1-1の範囲(両端値を含む)内である場合に、sps_sub_layer_ordering_info_present_flagが0に等しいことに起因して、[終了例C]sps_max_num_reorder_pics[i]が存在しないとき、sps_max_num_reorder_pics[i]はsps_max_num_reorder_pics[sps_max_sub_layers_minus1]に等しいと推定される。
【0252】
パラメータsps_max_latency_increase_plus1[i]が0に等しくない場合は、HighestTidがiに等しいときに、CVS内の任意のピクチャよりも前に位置するピクチャの最大許容数を出力順に明示し、そのピクチャよりも後に位置するピクチャの最大許容数を復号順に明示するSpsMaxLatencyPictures[i]の値を算出するのに使用される。
【0253】
sps_max_latency_increase_plus1[i]が0に等しくないとき、SpsMaxLatencyPictures[i]の値は次のように指定される。SpsMaxLatencyPictures[i]=sps_max_num_reorder_pics[i]+ (7-9)
sps_max_latency_increase_plus1[i]-1
【0254】
sps_max_latency_increase_plus1[i]が0に等しいとき、対応する限界は表現されない。いくつかの例では、sps_max_latency_increase_plus1[i]の値は、0から232-2の範囲(両端値を含む)内であってよい。いくつかの例では、vps_max_latency_increase_plus1[i]が0に等しくないとき、sps_max_latency_increase_plus1[i]の値は、0に等しくなくてよく、iの各値についてvps_max_latency_increase_plus1[i]以下であってよい。[開始例C]inherit_sps_params_from_vps_flagが0に等しく、iが0からsps_max_sub_layers_minus1-1の範囲(両端値を含む)内である場合に、sps_sub_layer_ordering_info_present_flagが0に等しいことに起因して、[終了例C]sps_max_latency_increase_plus1[i]が存在しないとき、vps_max_latency_increase_plus1[i]はsps_max_latency_increase_plus1[sps_max_sub_layers_minus1]に等しいと推定される。
【0256】
パラメータsps_scaling_list_data_present_flagが1に等しい場合は、スケーリングリストデータは、SPS[開始例F]に存在するかまたはアクティブなVPS[終了例F]から継承されることを明示する。いくつかの例では、sps_scaling_list_data_present_flagが0に等しい場合は、スケーリングリストデータは、SPS[開始例F]には存在せず、かつアクティブなVPS[終了例F]から継承されないことを明示する。[開始例F]inherit_sps_params_from_vps_flagが0に等しく、sps_scaling_list_data_present_flag[終了例F]が存在しないとき、sps_scaling_list_data_present_flagの値は0に等しいと推定されてよい。scaling_list_enabled_flagが1に等しく、sps_scaling_list_data_present_flagが0に等しいとき、デフォルトのスケーリングリストデータが、HEVC規格の7.4.5節に指定されたスケーリングリストデータセマンティクスに記載されたようなアレイスケーリングファクタを導くのに使用される。
【0257】
パラメータpcm_loop_filter_disabled_flagは、次のようにpcm_flagが1に等しいコーディングユニット内の再構成されたサンプルに対してループフィルタプロセスを無効化するかどうかを指定する。pcm_loop_filter_disabled_flagが1に等しい場合、pcm_flagが無効化されたコーディングユニット内の再構成されたサンプルに対するデブロッキングフィルタおよびサンプル適応オフセットフィルタプロセスが無効化される。他の場合(pcm_loop_filter_disabled_flag値が0に等しい場合)には、pcm_flagが1に等しいコーディングユニット内の再構成されたサンプルに対するデブロッキングフィルタおよびサンプル適応オフセットフィルタプロセスは無効化されない。
【0258】
[開始例F]inherit_sps_params_from_vps_flagが0に等しく、[終了例F]pcm_loop_filter_disabled_flagが存在しないとき、pcm_loop_filter_disabled_flagは0に等しいと推定されてよい。
【0259】
[開始例D]num_short_term_ref_pic_setsは、SPSに含まれるshort_term_ref_pic_set()シンタックス構造の数を特定する。num_short_term_ref_pic_setsの値は、0から64の範囲(両端値を含む)内であってよい。
【0260】
注5-現在のピクチャのスライスヘッダには直接シグナリングされるshort_term_ref_pic_set()シンタックス構造があり得るので、メモリデコーダは、num_short_term_ref_pic_sets+1short_term_ref_pic_set()シンタックス構造の総数にメモリを割り振るべきである。現在のピクチャのスライスヘッダにおいて直接シグナリングされるshort_term_ref_pic_set()シンタックス構造は、num_short_term_ref_pic_setsに等しいインデックスを有する。[終了例D]
【0262】
パラメータlt_ref_pic_poc_lsb_sps[i]は、i番目の候補長期参照ピクチャ指定[開始例F]by[終了例F]SPSのピクチャ順序カウントモジュロMaxPicOrderCntLsbsbを指定する。lt_ref_pic_poc_lsb_sps[i]を表すのに使用されるビットの数はlog2_max_pic_order_cnt_lsb_minus4+4に等しい。
【0263】
パラメータused_by_curr_pic_lt_sps_flag[i]が0に等しい場合は、i番目の候補長期参照ピクチャ指定[開始例F]by[終了例F]SPSが、i番目の候補長期参照ピクチャ指定[開始例F]by[終了例F]SPSを長期RPSに含むピクチャによる参照には使用されないことを明示する。
【0265】
[開始例E]1に等しいvui_parameters_present_flagは、付属書類Eに明記されたvui_parameters( )シンタックス構造が存在することを明示する。0に等しいvui_parameters_present_flagは、付属書類Eに明記されたvui_parameters( )シンタックス構造が存在しないことを明示する。[終了例E]
【0266】
図4は、本明細書で説明するシステムおよび方法によるビデオデータを復号するための例示的な方法を示すフローチャートである。
図4に示された例では、ビデオデコーダ30は、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を受信してよい(402)。エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置に存在してよい。
【0267】
ビデオデコーダ30は、複数の出力レイヤセット(404)の各々に関するプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照し、出力レイヤセットのうちの1つに関して参照されたプロファイル、ティア、およびレベルシンタックス構造からの情報に基づいてその出力レイヤセットのビデオデータを復号してよい(406)。たとえば、ビデオデコーダ30は、出力レイヤセットのビットストリームのプロファイル、ティア、およびレベルが、デコーダのプロファイル、ティア、およびレベルによって示されるようなビデオデコーダ30の復号機能よりも高い機能がビットストリームの復号に必要であることを示す場合には出力レイヤセットを無視してよい。出力レイヤセットのビットストリームのプロファイル、ティア、およびレベルによって示されるような必要な復号機能がビデオデコーダ30の復号機能よりも低いときは、ビデオデコーダ30は、ビットストリームのプロファイル、ティア、およびレベルによって示されるような必要な復号プロセスを使用して出力レイヤセットのビットストリームを復号する。
【0268】
いくつかの例では、ビデオデコーダ30は、nuh_layer_idが0に等しいSPSを受信してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。
【0269】
いくつかの例では、ビデオデコーダ30は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を受信してよい。たとえば、ビデオエンコーダ20は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。ビデオデコーダ30は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。
【0270】
ビデオデコーダ30は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを生成してもよい。たとえば、ビデオエンコーダ20は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを符号化してもよい。
【0271】
図5は、本明細書で説明するシステムおよび方法によるビデオデータを符号化するための例示的な方法を示すフローチャートである。
図5に示す例では、ビデオエンコーダ20は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを生成してよい。たとえば、ビデオエンコーダ20は、複数の出力レイヤセットの各々に関してプロファイル、ティア、およびレベルシンタックス構造のうちの1つを参照してよい(502)。ビデオエンコーダ20は、出力レイヤフラグ[i][j]に基づいて出力レイヤセットを符号化してもよい(504)。
【0272】
ビデオエンコーダ20は、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を有するVPS拡張シンタックスを含むVPSを符号化してよい(506)。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造を有するVPSおよびVPS拡張シンタックスを送信しても、または記憶しても、または記憶させてもよい。エントロピー符号化されない1組のプロファイル、ティア、およびレベルシンタックス構造は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置に存在してよい。たとえば、ビデオエンコーダ20は、選択されたプロファイル、ティア、およびレベルに従ってビデオデータを符号化してよい。ビデオエンコーダ20は、デコーダによって使用されるVPS内のプロファイル、ティア、およびレベルシンタックスを符号化してもよい。
【0273】
いくつかの例では、ビデオエンコーダ20は、nuh_layer_idが0に等しいSPSを符号化してよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。たとえば、ビデオエンコーダ20は、nuh_layer_idが0に等しいSPSを送ってよく、この場合、SPSは、ビデオデータのレイヤに関するプロファイル、ティア、およびレベルシンタックス構造を含む。nuh_layer_idが0に等しいSPSがnuh_layer_idが0よりも大きいレイヤによって参照されるとき、SPS内のprofile_tier_level()シンタックス構造はそのレイヤには適用されない。
【0274】
したがって、上記からわかるように、各レイヤはSPSを参照する必要がある。従来、空間解像度、ビット深度、またはカラーフォーマットの値が異なる任意の2つのレイヤは、これらの表現フォーマットパラメータがSPS内でシグナリングされるので2つの異なるSPSを参照する必要がある。しかし、nuh_layer_idが0に等しいSPSを除くすべてのSPSに関するこれらのパラメータがVPSに移され、nuh_layer_idが0よりも大きいレイヤによって参照されるnuh_layer_idが0に等しいSPS内の表現フォーマットパラメータを無視することが規定されるとき、空間解像度、ビット深度、またはカラーフォーマットの値が異なる各レイヤは同じSPSを参照することが可能である。言い換えれば、本開示のいくつかの実装形態では、空間解像度、ビット深度、またはカラーフォーマットの値が異なる各レイヤは、レイヤに必要な他のSPSパラメータが同じである限り、同じSPSを共有することができる。
【0275】
いくつかの例では、ビデオエンコーダ20は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。たとえば、ビデオエンコーダ20は、1に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤであることを明示し、0に等しいときに、レイヤセット内のj番目のレイヤがi番目の出力レイヤセットの目標出力レイヤではないことを明示する出力レイヤフラグ[i][j]を送信してよい。
【0276】
図6は、本明細書で説明するシステムおよび方法によるビデオデータを復号するための例示的な方法を示すフローチャートである。
図6に示す例では、ビデオデコーダ30は、VPS拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置にある非エントロピー符号化レイヤ依存情報を受信してよい(602)。
【0277】
ビデオデコーダ30は、エントロピー符号化シンタックス要素の前の非エントロピー符号化レイヤ依存情報を復号してよい(604)。一例では、ビデオデコーダ30は、任意のエントロピー符号化シンタックス要素の前の非エントロピー符号化レイヤ依存情報を復号してよい。
【0278】
ビデオデコーダ30は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを復号してよい(606)。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示してよい。いくつかの例では、レイヤ依存情報は、1つのレイヤが別のレイヤの直接参照レイヤであるかどうかを示すときに、どの1つのレイヤが別のレイヤの直接参照レイヤであるかを示してもよい。言い換えれば、レイヤ依存情報は、1つのレイヤが別のレイヤの直接参照レイヤであるかどうかを示し、別のレイヤの直接参照レイヤである1つのレイヤを特定してよい。いくつかの例では、レイヤ依存情報は、0に等しいときに、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤではないことを明示し、1に等しいときに、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤであり得ることを明示する直接_依存_フラグ[i][j]を含む。ビデオデコーダ30は、ピクチャを復号する際、情報の中でも特にレイヤ依存情報に基づいてレイヤ間参照ピクチャセットを導出してよく、情報の中でも特にレイヤ間参照ピクチャセットに基づいて参照ピクチャセットをさらに導出してよく、次いで、直接参照レイヤ内のピクチャによるレイヤ間予測を使用してピクチャを復号してよい。
【0279】
図7は、本明細書で説明するシステムおよび方法によるビデオデータを符号化するための例示的な方法を示すフローチャートである。ビデオエンコーダ20は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを符号化してよい(702)。ビデオエンコーダ20は、ビデオパラメータセット(VPS)拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置にある非エントロピー符号化レイヤ依存情報を符号化してよい(704)。たとえば、ビデオエンコーダ20は、非エントロピー符号化レイヤ依存情報に基づいてビデオデータのレイヤのうちの1つまたは複数のレイヤのビデオデータを符号化してよい。レイヤ依存情報は、レイヤの1つが別のレイヤの直接参照レイヤであるかどうかを示してよい。いくつかの例では、ビデオエンコーダ20は、ビデオパラメータセット(VPS)拡張内の、エントロピー符号化されたVPS拡張のシンタックス要素の前の位置にある非エントロピー符号化レイヤ依存情報を送信しても、または記憶しても、記憶させてもよい。
【0280】
いくつかの例では、レイヤ依存情報は、0に等しいときに、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤではないことを明示し、1に等しいときに、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤになり得ることを明示する直接_依存_フラグ[i][j]を含む。
【0281】
図8は、本明細書で説明するシステムおよび方法によるビデオデータを復号するための例示的な方法を示すフローチャートである。
図8の例では、1つのレイヤセットに関して複数の出力レイヤセットをシグナリングしてよい。したがって、1つのレイヤセットに関して複数の出力レイヤセットをシグナリングする場合、ビデオデコーダ30は、たとえば、入力インターフェース28を介して、レイヤセットの第1の出力レイヤセットを受信してよい(802)。ビデオデコーダ30は、レイヤセットの第2の出力レイヤセットを受信してもよい(804)。さらに、
図8の例は、1つのレイヤセットの2つの出力レイヤセットを示すが、レイヤセットに関して3つもしくは4つの出力レイヤセット、または場合によっては5つ以上の出力レイヤセットをシグナリングしてもよいことが理解されよう。ビデオデコーダ30は、第1の出力レイヤセットおよび第2の出力レイヤセットの少なくとも一方のビデオデータを復号してよい(806)。
【0282】
図9は、本明細書で説明するシステムおよび方法によるビデオデータを符号化するための例示的な方法を示すフローチャートである。
図9の例では、1つのレイヤセットに関して複数の出力レイヤセットをシグナリングしてよい。したがって、ビデオエンコーダ20は、第1の出力レイヤセットおよび第2の出力レイヤセットの少なくとも一方のビデオデータを符号化してよい(902)。したがって、出力インターフェース22はビデオエンコーダ20から符号化データを送信してよい。送信されるデータは、レイヤセットの第1の出力レイヤセット(904)とレイヤセットの第2の出力レイヤセット(906)とを含んでよい。いくつかの例では、出力インターフェース22は入力インターフェース28にデータを送信してよい。他の例では、出力インターフェース22はデータを記憶するために記憶デバイス34に送信してよい。
【0283】
図10は、本明細書で説明するシステムおよび方法によるビデオデータを復号するための例示的な方法を示すフローチャートである。
図10の例は、VPS内の表現フォーマットを、場合によってはエントロピー復号なしでアクセスできるようにシグナリングすることを示す。言い換えれば、VPS内の表現フォーマットはエントロピー符号化されない。VPS内の表現フォーマットは、たとえば固定長コーディングされる。したがって、ビデオデコーダ30は、VPS内の非エントロピー符号化された表現フォーマットを、たとえば入力インターフェース28を介して受信してよい(1002)。表現フォーマットには、クロマフォーマット、それぞれに異なるカラープレーンを別々にコーディングするかどうか、ピクチャ幅、ピクチャ高さ、ルーマビット深度、およびクロマビット深度のうちの1つまたは複数を含めてよい。ビデオデコーダ30は、VPS内の非エントロピー符号化表現フォーマットに基づいてビデオデータを復号してもよい(1004)。表現フォーマットは、場合によってはエントロピー復号デバイスなしでアクセスできるようにVPS内に位置するので、エントロピー符号化を実行しないデバイスが表現フォーマットにアクセスしてよく、たとえば、場合によっては、メディアアウェアネットワークエンティティ(MANE)はエントロピー符号化デバイスを有さないことがある。ビデオデコーダ30は、VPS内の表現フォーマットを、場合によっては本開示の技法に従ってエントロピー復号なしで復号してよく、各レイヤは、特定の表現フォーマットに関連付けられてよい。
【0284】
図11は、本明細書で説明するシステムおよび方法によるビデオデータを符号化するための例示的な方法を示すフローチャートである。
図11の例は、VPS内の表現フォーマットを、場合によってはエントロピー復号なしでアクセスできるようにシグナリングすることを示す。言い換えれば、VPS内の表現フォーマットはエントロピー符号化されない。VPS内の表現フォーマットは、たとえば固定長コーディングされる。したがって、ビデオエンコーダ20は、VPS内の非エントロピー符号化表現フォーマットに基づいてビデオデータを符号化してもよい(1102)。表現フォーマットには、クロマフォーマット、それぞれに異なるカラープレーンを別々にコーディングするかどうか、ピクチャ幅、ピクチャ高さ、ルーマビット深度、およびクロマビット深度のうちの1つまたは複数を含めてよい。ビデオエンコーダ20は、VPS内の非エントロピー符号化表現フォーマットを送信してよい(1104)。ビデオエンコーダ20は、VPS内の表現フォーマットを、本開示の技法に従ってエントロピー復号なしでアクセスできるように符号化してよく、各レイヤは、特定の表現フォーマットに関連付けられてよい。
【0285】
図12は、本明細書で説明するシステムおよび方法によるビデオデータを符号化するための例示的な方法を示すフローチャートである。
図12の例は、VPS内のレイヤごとの視覚的信号情報、たとえば、video_format、video_full_range_flag、colour_primaries、transfer_characteristics、matrix_coeffsのシグナリングを示す。したがって、ビデオデコーダ30は、各レイヤが視覚的信号情報を含む一連のレイヤを含むVPSを受信してよい(1002)。ビデオデコーダ30は、VPS内のレイヤごとにシグナリングされ受信された視覚的信号情報に基づいてビデオデータを復号してもよい。
【0286】
図13は、本明細書で説明するシステムおよび方法によるビデオデータを符号化するための例示的な方法を示すフローチャートである。
図13の例は、VPS内のレイヤごとの視覚的信号情報、たとえば、video_format、video_full_range_flag、colour_primaries、transfer_characteristics、matrix_coeffのシグナリングを示す。したがって、ビデオエンコーダ20は、VPS内のレイヤごとにシグナリングされ受信された視覚的信号情報に基づいてビデオデータを符号化してよい(1302)。ビデオエンコーダ20は、各レイヤが一連のレイヤの各々の視覚的信号情報を含む一連のレイヤを含むVPSを送信してよい(1304)。
【0287】
1つまたは複数の例において、前述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアに実装される場合、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され、あるいはコンピュータ可読媒体を介して送信されてよく、かつハードウェアに基づく処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する任意の媒体を含む通信媒体に相当する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、(1)非一時的な有形コンピュータ可読記憶媒体または(2)信号波もしくは搬送波のような通信媒体に相当し得る。データ記憶媒体は、本開示で説明される技法を実装するための、命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0288】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、当然、あらゆる接続がコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形記憶媒体を指すことを理解されたい。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は通常、磁気的にデータを再生し、ディスク(disc)はレーザーで光学的にデータを再生する。前述の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0289】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される用語「プロセッサ」は、前述の構造、または、本明細書で説明される技法の実装に適した任意の他の構造の、いずれをも指し得る。加えて、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成された、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供されてよく、または、組み合わされたコーデックに組み込まれてよい。また、技法は、1つまたは複数の回路素子または論理素子において完全に実装されてもよい。
【0290】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多様なデバイスまたは装置において実装され得る。様々なコンポーネント、モジュール、またはユニットが、開示される技法を実行するように構成されるデバイスの機能的な側面を強調するために、本開示において説明されるが、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ上で説明されたように、様々なユニットは、コーデックハードウェアユニットへと結合されてよく、または、適切なソフトウェアおよび/またはファームウェアとともに、上で説明されたような1つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合体によって与えられてよい。
【0291】
様々な例について説明した。これらの例および他の例は、以下の特許請求の範囲内に入る。