【文献】
GRUNEBERG K,PROPOSED STUDY TEXT OF ISO-IEC_13818-1_2013_PDAM7,109. MPEG MEETING (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),2014年 7月 9日,NR:M34544
【文献】
GERARD MADEC,COMMENTS ON TEXT OF ISO/IEC 13818-1:2013 / PDAM 7 - CARRIAGE OF LAYERED HEVC,109. MPEG MEETING (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),2014年 7月 1日,NR:M34380
【文献】
Text of ISO/IEC 13818-1:201x/DAM 3 Carriage of Layered HEVC,ISO/IEC 13818-1:201x/DAM 3 INFORMATION TECHNOLOGY -- GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO INFORMATIONS:SYSTEMS AMENDAMENT 7,2014年10月24日,URL,https://mpeg.chiariglione.org/standards/mpeg-2/systems/text-isoiec-13818-1201xdam-3-carriage-layered-hevc
(58)【調査した分野】(Int.Cl.,DB名)
前記トランスポートストリームにおいて第2の記述子のセットを受信するステップであって、第2の記述子の前記セットが前記第2の記述子を含み、第2の記述子の前記セットの各々のそれぞれの第2の記述子が、階層記述子または階層拡張記述子のうちの1つである、ステップと、
前記第1の記述子の中の第3のシンタックス要素を復号するステップであって、前記第3のシンタックス要素がエレメンタリストリームの数を示す、ステップと、
前記第1の記述子の中の第1のシンタックス要素のセットを復号するステップと、
前記第1の記述子の中の第2のシンタックス要素のセットを復号するステップであって、
第1のシンタックス要素の前記セットの中の第1のシンタックス要素の前記数および第2のシンタックス要素の前記セットの中の第2のシンタックス要素の前記数が、前記第3のシンタックス要素の値に等しく、
第1のシンタックス要素の前記セットが前記第1のシンタックス要素を含み、
第2のシンタックス要素の前記セットが前記第2のシンタックス要素を含み、
第1のシンタックス要素の前記セットの各々のそれぞれの第1のシンタックス要素に対して、
第2のシンタックス要素の前記セットのそれぞれの第2のシンタックス要素が前記それぞれの第1のシンタックス要素に対応し、
第2の記述子の前記セットのそれぞれの第2の記述子が、前記それぞれの第2のシンタックス要素の値に等しい階層レイヤインデックス値を有し、
前記それぞれの第1のシンタックス要素の前記第1の値が、
前記それぞれの第2のシンタックス要素によって示されるエレメンタリストリームが前記エレメンタリストリームリストの中に存在しないときには前記エレメンタリストリームリストへ追加されるべきであることであって、前記それぞれの第2のシンタックス要素によって示される前記エレメンタリストリームが前記複数のエレメンタリストリームのうちの1つである、ことと、
前記それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが前記動作点の前記エレメンタリストリームリストの中に存在しないときには前記エレメンタリストリームリストへ追加されるべきであることであって、前記それぞれの第2の記述子の中の前記埋め込まれたレイヤインデックスによって示される前記エレメンタリストリームが、前記複数のエレメンタリストリームのうちの1つである、ことと
を規定する、ステップと、
前記それぞれの第1のシンタックス要素が前記第2の値を有すると決定したことに応答して、前記それぞれの第2のシンタックス要素によって示される前記それぞれのエレメンタリストリームを、前記エレメンタリストリームリストの中に存在しないときに、前記エレメンタリストリームリストへ追加するが、前記それぞれの第2の記述子の中の前記埋め込まれたレイヤインデックスによって示される前記それぞれのエレメンタリストリームを前記エレメンタリストリームリストへ追加しないステップとをさらに備える、請求項1に記載の方法。
前記第1の記述子の中のシンタックス要素のセットを復号するステップをさらに備え、シンタックス要素の前記セットの中の各々のそれぞれのシンタックス要素が、前記エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し、シンタックス要素の前記セットの各々のそれぞれのシンタックス要素が、シンタックス要素の前記セットの前記それぞれのシンタックス要素に対応する前記エレメンタリストリームが必要なレイヤであるかどうかを示し、
必要なレイヤが、出力レイヤセットと関連付けられる出力動作点の中のレイヤとして定義され、前記レイヤが、前記出力レイヤセットの出力レイヤ、または前記出力レイヤセットの出力レイヤの参照レイヤである、請求項1に記載の方法。
前記第1の記述子の中のシンタックス要素の第1のセットを復号するステップであって、シンタックス要素の前記第1のセットの中の各々のそれぞれのシンタックス要素が、前記エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し、シンタックス要素の前記第1のセットの各々のそれぞれのシンタックス要素が、シンタックス要素の前記第1のセットの前記それぞれのシンタックス要素に対応する前記エレメンタリストリームが出力レイヤであるかどうかを示す、ステップと、
前記第1の記述子の中のシンタックス要素の第2のセットを復号するステップであって、シンタックス要素の前記第2のセットの中の各々のそれぞれのシンタックス要素が、前記エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し、シンタックス要素の前記第2のセットの各々のそれぞれのシンタックス要素が、シンタックス要素の前記第2のセットの前記それぞれのシンタックス要素に対応する前記エレメンタリストリームのプロファイル、ティア、またはレベルを決定するためのインデックスを示す、ステップとをさらに備える、請求項1に記載の方法。
前記トランスポートストリームにおいて第2の記述子のセットを受信するステップであって、第2の記述子の前記セットが前記第2の記述子を含み、第2の記述子の前記セットの各々のそれぞれの第2の記述子が、階層記述子または階層拡張記述子のうちの1つである、ステップと、
前記第1の記述子の中の第2のシンタックス要素のセットを復号するステップであって、
第2のシンタックス要素の前記セットが前記第2のシンタックス要素を含み、
第2のシンタックス要素の前記セットの各々のそれぞれの第2のシンタックス要素が、第2の記述子の前記セットの記述子の中に存在する階層レイヤインデックス値を示し、
第2のシンタックス要素の前記セットが、第2のシンタックス要素の前記セットのうちの2つの第2のシンタックス要素が同じ値を有しないように制約される、
ステップとをさらに備える、請求項1に記載の方法。
第1のシンタックス要素の前記セットの各々のそれぞれの第1のシンタックス要素に対して、1つまたは複数の埋め込まれたレイヤインデックスのセットが前記それぞれの第2の記述子に含まれ、前記1つまたは複数のプロセッサが、前記それぞれの第1のシンタックス要素が前記第1の値を有することに基づいて、埋め込まれたレイヤインデックスの前記セットの値の昇順で、前記それぞれの第2のシンタックス要素によって示される前記エレメンタリストリームの直前に、前記エレメンタリストリームリストへの埋め込まれたレイヤインデックスの前記セットによって示されるエレメンタリストリームを追加するように構成される、請求項9に記載のデバイス。
前記トランスポートストリームにおいて第2の記述子のセットを受信するための手段であって、第2の記述子の前記セットが前記第2の記述子を含み、第2の記述子の前記セットの各々のそれぞれの第2の記述子が、階層記述子または階層拡張記述子のうちの1つである、手段と、
前記第1の記述子の中の第3のシンタックス要素を復号するための手段であって、前記第3のシンタックス要素がエレメンタリストリームの数を示す、手段と、
前記第1の記述子の中の第1のシンタックス要素のセットを復号するための手段と、
前記第1の記述子の中の第2のシンタックス要素のセットを復号するための手段であって、
第1のシンタックス要素の前記セットの中の第1のシンタックス要素の前記数および第2のシンタックス要素の前記セットの中の第2のシンタックス要素の前記数が、前記第3のシンタックス要素の値に等しく、
第1のシンタックス要素の前記セットが前記第1のシンタックス要素を含み、
第2のシンタックス要素の前記セットが前記第2のシンタックス要素を含み、
第1のシンタックス要素の前記セットの各々のそれぞれの第1のシンタックス要素に対して、
第2のシンタックス要素の前記セットのそれぞれの第2のシンタックス要素が前記それぞれの第1のシンタックス要素に対応し、
第2の記述子の前記セットのそれぞれの第2の記述子が、前記それぞれの第2のシンタックス要素の値に等しい階層レイヤインデックス値を有し、
前記それぞれの第1のシンタックス要素の前記第1の値が、
前記それぞれの第2のシンタックス要素によって示されるエレメンタリストリームが前記エレメンタリストリームリストの中に存在しないときには前記エレメンタリストリームリストへ追加されるべきであることであって、前記それぞれの第2のシンタックス要素によって示される前記エレメンタリストリームが前記複数のエレメンタリストリームのうちの1つである、ことと、
前記それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが前記動作点の前記エレメンタリストリームリストの中に存在しないときには前記エレメンタリストリームリストへ追加されるべきであることであって、前記それぞれの第2の記述子の中の前記埋め込まれたレイヤインデックスによって示される前記エレメンタリストリームが、前記複数のエレメンタリストリームのうちの1つである、ことと
を規定する、手段とをさらに備え、
前記それぞれの第1のシンタックス要素が前記第2の値を有すると決定したことに応答して、前記それぞれの第2のシンタックス要素によって示される前記それぞれのエレメンタリストリームを、前記エレメンタリストリームリストの中に存在しないときに、前記エレメンタリストリームリストへ追加するが、前記それぞれの第2の記述子の中の前記埋め込まれたレイヤインデックスによって示される前記それぞれのエレメンタリストリームを前記エレメンタリストリームリストへ追加しないための手段を備える、請求項15に記載のデバイス。
前記第1の記述子の中のシンタックス要素のセットを復号するための手段をさらに備え、シンタックス要素の前記セットの中の各々のそれぞれのシンタックス要素が、前記エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し、シンタックス要素の前記セットの各々のそれぞれのシンタックス要素が、シンタックス要素の前記セットの前記それぞれのシンタックス要素に対応する前記エレメンタリストリームが必要なレイヤであるかどうかを示し、
必要なレイヤが、出力レイヤセットと関連付けられる出力動作点の中のレイヤとして定義され、前記レイヤが、前記出力レイヤセットの出力レイヤ、または前記出力レイヤセットの出力レイヤの参照レイヤである、請求項15に記載のデバイス。
前記第1の記述子の中のシンタックス要素の第1のセットを復号するための手段であって、シンタックス要素の前記第1のセットの中の各々のそれぞれのシンタックス要素が、前記エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し、シンタックス要素の前記第1のセットの各々のそれぞれのシンタックス要素が、シンタックス要素の前記第1のセットの前記それぞれのシンタックス要素に対応する前記エレメンタリストリームが出力レイヤであるかどうかを示す、手段と、
前記第1の記述子の中のシンタックス要素の第2のセットを復号するための手段であって、シンタックス要素の前記第2のセットの中の各々のそれぞれのシンタックス要素が、前記エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し、シンタックス要素の前記第2のセットの各々のそれぞれのシンタックス要素が、シンタックス要素の前記第2のセットの前記それぞれのシンタックス要素に対応する前記エレメンタリストリームのプロファイル、ティア、またはレベルを決定するためのインデックスを示す、手段とをさらに備える、請求項15に記載のデバイス。
前記トランスポートストリームにおいて第2の記述子のセットを受信するための手段であって、第2の記述子の前記セットが前記第2の記述子を含み、第2の記述子の前記セットの各々のそれぞれの第2の記述子が、階層記述子または階層拡張記述子のうちの1つである、手段と、
前記第1の記述子の中の第2のシンタックス要素のセットを復号するための手段であって、
第2のシンタックス要素の前記セットが前記第2のシンタックス要素を含み、
第2のシンタックス要素の前記セットの各々のそれぞれの第2のシンタックス要素が、第2の記述子の前記セットの記述子の中に存在する階層レイヤインデックス値を示し、
第2のシンタックス要素の前記セットが、第2のシンタックス要素の前記セットのうちの2つの第2のシンタックス要素が同じ値を有しないように制約される、
手段とをさらに備える、請求項15に記載のデバイス。
前記1つまたは複数のプロセッサが、第2の記述子のセットを生成するように構成され、第2の記述子の前記セットが前記第2の記述子を含み、第2の記述子の前記セットの各々のそれぞれの第2の記述子が、階層記述子または階層拡張記述子のうちの1つであり、
前記1つまたは複数のプロセッサが、前記第1の記述子を生成することの一部として、
第3のシンタックス要素を前記第1の記述子に含め、前記第3のシンタックス要素がエレメンタリストリームの数を示し、
第1のシンタックス要素のセットを前記第1の記述子に含め、
第2のシンタックス要素のセットを前記第1の記述子に含めるように構成され、
第1のシンタックス要素の前記セットの中の第1のシンタックス要素の前記数および第2のシンタックス要素の前記セットの中の第2のシンタックス要素の前記数が、前記第3のシンタックス要素の値に等しく、
第1のシンタックス要素の前記セットが前記第1のシンタックス要素を含み、
第2のシンタックス要素の前記セットが前記第2のシンタックス要素を含み、
第1のシンタックス要素の前記セットの各々のそれぞれの第1のシンタックス要素に対して、
第2のシンタックス要素の前記セットのそれぞれの第2のシンタックス要素が前記それぞれの第1のシンタックス要素に対応し、
第2の記述子の前記セットのそれぞれの第2の記述子が、前記それぞれの第2のシンタックス要素の値に等しい階層レイヤインデックス値を有し、
前記それぞれの第1のシンタックス要素の前記第1の値が、
前記それぞれの第2のシンタックス要素によって示されるエレメンタリストリームが、前記エレメンタリストリームリストの中に存在しないときに、前記エレメンタリストリームリストへ追加されるべきであることと、
前記それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、前記動作点の前記エレメンタリストリームリストの中に存在しないときに、前記エレメンタリストリームリストへ追加されるべきであることと
を規定し、
前記それぞれの第1のシンタックス要素の前記第2の値が、前記それぞれの第2のシンタックス要素によって示される前記それぞれのエレメンタリストリームが、前記エレメンタリストリームリストの中に存在しないときに、前記エレメンタリストリームリストへ追加されるべきであるが、前記それぞれの第2の記述子の中の前記埋め込まれたレイヤインデックスによって示される前記それぞれのエレメンタリストリームは追加されるべきではないことを規定する、請求項22に記載のデバイス。
前記1つまたは複数のプロセッサがさらに、第2の記述子のセットを前記トランスポートストリームに含めるように構成され、第2の記述子の前記セットが前記第2の記述子を含み、第2の記述子の前記セットの各々のそれぞれの第2の記述子が、階層記述子または階層拡張記述子のうちの1つであり、
前記1つまたは複数のプロセッサが、前記第1の記述子を生成することの一部として、
第2のシンタックス要素のセットを前記第1の記述子に含めるように構成され、
第2のシンタックス要素の前記セットが前記第2のシンタックス要素を含み、
第2のシンタックス要素の前記セットの各々のそれぞれの第2のシンタックス要素が、第2の記述子の前記セットの記述子の中に存在する階層レイヤインデックス値を示し、
第2のシンタックス要素の前記セットが、第2のシンタックス要素の前記セットのうちの2つの第2のシンタックス要素が同じ値を有しないように制約される、請求項22に記載のデバイス。
【発明を実施するための形態】
【0016】
一般に、本開示は、メディアデータのためのMoving Picture Experts Group(MPEG)-2システムのレベルデータに関する技法について説明する。MPEG-2システム規格は全般に、2つ以上のデータストリームがどのように一緒に多重化されて単一のデータストリームを形成するかを記述する。本開示は、マルチレイヤビデオデータのためのMPEG-2システムのデータに関する技法について説明する。たとえば、本開示は、High Efficiency Video Coding(HEVC)拡張の搬送のために、MPEG-2トランスポートストリーム(TS)の中のHEVC動作点記述子の設計を潜在的に改善し得る変更について説明する。しかしながら、本開示の技法は、必ずしもMPEG-2 TSまたはHEVCには限定されない。
【0017】
説明を簡単にすることだけを目的に、本開示の技法は全般に、ビデオコーディング規格に対する拡張(たとえば、HEVCに対する拡張、ITU-T H.265とも呼ばれる)に従ってコーディングされる、ビデオデータの搬送(たとえば、トランスポート)に対して説明される。そのような拡張は、マルチビュー拡張、3次元拡張、および/またはスケーラブル拡張を含み得る。したがって、本開示の技法は、マルチビューHEVC(MV-HEVC)、3次元HEVC(3D-HEVC)、およびスケーラブルHEVC(SHVC)に適用され得る。
【0018】
マルチレイヤビデオデータ、たとえばマルチビュービデオデータおよび/または複数のスケーラブルレイヤを有するビデオデータは、指定された動作点を含み得る。一般に、動作点は、マルチレイヤビデオデータのレイヤ(たとえば、ビュー)の完全なセットのうちのレイヤのサブセットを記述する。動作点はまた、ターゲット出力レイヤ、すなわちそれについてのデータが出力されるべきレイヤも特定し得る。いくつかの事例では、レイヤのデータは、参照レイヤとして使用するためだけに動作点に含まれ得るので、そのようなレイヤはターゲット出力レイヤであると見なされない。参照レイヤは、符号化および復号のために別のレイヤによって参照のために使用されるレイヤであり得る。
【0019】
HEVC動作点は一般に、以下でより詳細に説明されるように、エレメンタリストリームへの参照を指定することによって、HEVC動作点記述子においてシグナリングされる。しかしながら、HEVC動作点記述子の一部の設計は、ターゲット動作点のためのエレメンタリストリームのリストがあるレイヤまたはエレメンタリストリームを2度含むことを許容する。また、いくつかの場合、HEVC動作点記述子の一部の設計においては、復号される必要のあるすべてのレイヤがシグナリングされるとは限らず、それは、そのようなレイヤの情報が他で入手可能であるからである。いくつかの例では、ある特定のレイヤがシグナリングされないので、そのレイヤと関連付けられるいくつかのシンタックス要素は、ビデオデコーダに対して利用可能ではないことがある。
【0020】
本開示において説明される技法は、上で説明された問題の1つまたは複数に対処し得る。しかしながら、技法が上で説明された問題に対処することは必須ではない。たとえば、本開示は、エレメンタリストリーム/レイヤが動作点のエレメンタリストリームのリストに複数回含まれないことを確実にし得る例について説明する。本開示はまた、ビデオデコーダが受信するビットストリームに、あるレイヤと関連付けられるシンタックス要素を含む情報を、そのレイヤが動作点のエレメンタリストリームのリストの中にあるものとして明示的にシグナリングされない場合であっても含める例について説明する。
【0021】
図1は、ビデオコーディング規格の拡張に従ってコーディングされるビデオデータをトランスポートするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを提供するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備え得る。いくつかの例では、ソースデバイス12および宛先デバイス14はワイヤレス通信に対応し得る。したがって、いくつかの例では、ソースデバイス12および宛先デバイス14はワイヤレス通信デバイスである。
【0022】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、マルチプレクサ21と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含む。ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどの、ソースを含み得る。しかしながら、本開示において説明される技法は、ビデオコーディング全般に適用可能であることがあり、ワイヤレスおよび/または有線の適用例に適用されることがある。
【0023】
ビデオエンコーダ20は、キャプチャされた、あらかじめキャプチャされた、またはコンピュータで生成されたビデオデータを符号化することができる。ソースデバイス12は、符号化されたビデオデータを、ソースデバイス12の出力インターフェース22を介して宛先デバイス14へ直接送信することができる。符号化されたビデオデータはさらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、記憶デバイスへ記憶され得る。符号化されたビデオ情報は次いで、出力インターフェース22によって、コンピュータ可読媒体16へと出力され得る。
【0024】
宛先デバイス14は、入力インターフェース28と、デマルチプレクサ29と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を通じて符号化されたビデオデータを受信する。リンク16を通じて通信された、または記憶デバイス33上に提供された符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体に記憶された、またはファイルサーバに記憶された、符号化されたビデオデータとともに含まれ得る。
【0025】
宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化されたビデオデータを受信することができる。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12がリアルタイムで宛先デバイス14に直接符号化されたビデオデータを送信することを可能にする通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、高周波(RF)スペクトルなどの任意のワイヤレス通信媒体もしくは有線通信媒体、または、1つまたは複数の物理的伝送線を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0026】
いくつかの例では、符号化されたデータは、出力インターフェース22から記憶デバイスに出力され得る。たとえば、ソースデバイス12は、符号化されたビデオデータを記憶するように構成される記憶デバイスを含み得る。いくつかの例では、符号化されたデータは、入力インターフェース28によって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散された、または局所的にアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス12によって生成された符号化されたビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、宛先デバイス14にその符号化されたビデオデータを送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブ、またはファイルを提供するように構成される他のサーバを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSLモデム、ケーブルモデム)、またはその両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0027】
コンピュータ可読媒体16は、ワイヤレス放送もしくは有線ネットワーク送信などの一時的媒体、または、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化されたビデオデータを受信することができ、たとえば、ネットワーク送信を介して、宛先デバイス14に符号化されたビデオデータを提供することができる。同様に、ディスクスタンプ設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信することができ、符号化されたビデオデータを含むディスクを製造することができる。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【0028】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上へ符号化されるデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの用途をサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【0029】
図1の例では、本開示によれば、ソースデバイス12のマルチプレクサ21は、ビデオコーディング規格の拡張に従ってコーディングされるビデオデータをトランスポートするための技法を適用するように構成されることがあり、一方で、デマルチプレクサ29は、処理のためにそのようなデータを受信することがあり、処理されたビデオデータを別のデバイスまたはコンポーネント、たとえばビデオデコーダ30へ転送することがある。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、一体化されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースし得る。
【0030】
図1の示されるシステム10は一例にすぎない。ビデオコーディング規格の拡張に従ってコーディングされるビデオデータをトランスポートするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、この技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。ソースデバイス12および宛先デバイス14は、単に、ソースデバイス12が宛先デバイス14に送信するためのコーディングされたビデオデータを生成するようなコーディングデバイスの例である。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化および復号コンポーネントを含むように実質的に対称的な方式で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス12、14間の一方向または双方向のビデオ送信をサポートし得る。
【0031】
宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされたユニットの特性ならびに/または処理を記述するシンタックス要素を含み、ビデオデコーダ30によっても使用される、ビデオエンコーダ20によって定義されるシンタックス情報を含み得る。
【0032】
ディスプレイデバイス32は、宛先デバイス14と一体であることがあり、または宛先デバイス14の外部にあることがある。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含むことがあり、また、外部ディスプレイデバイスとインターフェースするように構成されることがある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプの表示デバイスなどの、様々なディスプレイデバイスのうちのいずれかを備え得る。
【0033】
ビデオエンコーダ20、マルチプレクサ21、デマルチプレクサ29、およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなどの、様々な適切なエンコーダ回路またはデコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、これらのいずれもが、それぞれのデバイス内の複合エンコーダ/デコーダ(コーデック)の一部として統合されることがある。
【0034】
本開示は、全般に、ある情報をビデオデコーダ30などの別のデバイスへ「シグナリング」または「送信」するビデオエンコーダ20に言及し得る。「シグナリングすること」または「送信すること」という用語は、全般に、シンタックス要素、および/または圧縮されたビデオデータを復号するために使用される他のデータの通信を指し得る。そのような通信は、リアルタイムで、またはほぼリアルタイムで発生し得る。代替的に、そのような通信は、ある時間の範囲にわたって、たとえば、符号化の時点において符号化されたビットストリームの中のシンタックス要素をコンピュータ可読記憶媒体に記憶するときに発生することがあり、次いで、シンタックス要素が、この媒体に記憶された後の任意の時点において復号デバイスによって取り出され得る。したがって、ビデオデコーダ30がある種の情報を「受信する」と呼ばれることがあるが、情報の受信は、必ずしもリアルタイムで、またはほぼリアルタイムで発生するとは限らず、記憶後のある時点で媒体から取り出されることがある。
【0035】
その上、
図1には特に示されていないが、本開示において説明される例示的な技法のいくつかは、媒体認識ネットワーク要素(MANE:media aware network element)などの、いくつかの外部手段によって実装され得る。MANEは、ビデオエンコーダ20からビデオデータを受信し、ビデオデコーダ30が受信するビットストリームをシグナリングし得る。いくつかの例では、MANEは、トランスポートストリームを受信して処理し得る。したがって、時には、本開示がシグナリングについて説明するとき、そのようなシグナリングは、ビデオエンコーダ20またはMANEなどのいくつかの外部手段によって実行されることがある。
【0036】
ビデオエンコーダ20およびビデオデコーダ30は、ビデオコーディング規格に従って動作し得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、代替的に、MPEG-4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU-T H.264規格、またはそのような規格の拡張などの、他の独自規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例は、MPEG-2とITU-T H.263とを含む。ITU-T H.264/MPEG-4(AVC)規格は、Joint Video Team(JVT)として知られている共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU-T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示において説明される技法は一般に、H.264規格に準拠するデバイスに適用され得る。H.264規格は、本明細書においてH.264規格もしくはH.264仕様、またはH.264/AVC規格もしくは仕様と呼ばれることがある、ITU-T Study Groupによる2005年3月付のITU-T Recommendation H.264、Advanced Video Coding for generic audiovisual servicesに記載されている。Joint Video Team(JVT)は、H.264/MPEG-4 AVCへの拡張の作業を継続している。より一般的には、ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、およびそのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含むITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)を含む。
【0037】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、H.265ビデオコーディング規格とも呼ばれる、High Efficiency Video Coding(HEVC)規格などの別のビデオコーディング規格を使用して、ビデオデータを符号化して復号し得る。HEVCは、ITU-T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT-VC)によって完成された。最新のHEVCドラフト仕様は、以後HEVC WDと呼ばれる。
【0038】
加えて、HEVCに対するマルチビュー拡張、すなわちMV-HEVCも、JCT-3Vによって開発中である。SHVCという名称の、HEVCに対するスケーラブルな拡張も、JCT-VCによって開発中である。HEVC、HEVC範囲拡張、SHVCおよびMV-HEVCの仕様を含む最新の文書は、http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1013-v6.zipから入手可能である。
【0039】
HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。ピクチャの符号化された表現を生成するために、ビデオエンコーダ20が、コーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれることもある。
【0040】
コーディングされたCTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名前である。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロック、ならびにそれらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの、長方形(すなわち、正方形または非正方形)のブロックであり得る。CUの予測ユニット(PU)は、ピクチャのルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのための、予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。ビデオエンコーダ20は、PUの予測ブロックを生成するために、イントラ予測またはインター予測を使用し得る。
【0041】
ビデオエンコーダ20がCUの1つまたは複数のPUの予測ブロックを生成した後で、ビデオエンコーダ20は、CUの残差ブロックを生成し得る。CUの残差ブロック中の各サンプルは、CUのPUの予測ブロック中のサンプルとCUのコーディングブロック中の対応するサンプルとの間の差分を示し得る。さらに、ビデオエンコーダ20は、CUの残差ブロックを1つまたは複数の変換ブロックに分解し得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、1つまたは複数の変換を変換ブロックに適用して、TUの係数ブロックを生成し得る。係数ブロックを生成した後、ビデオエンコーダ20は係数ブロックを量子化し得る。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行し得る。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリームの中に出力し得る。ビットストリームはまた、エントロピー符号化されないシンタックス要素を含み得る。
【0042】
ビットストリームは、コーディングされたピクチャの表現および関連するデータを形成するビットのシーケンスを含み得る。ビットストリームは、ネットワーク抽象化レイヤ(NAL)ユニットのシーケンスを備え得る。NALユニットの各々は、NALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP)をカプセル化する。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは、0個のビットを含む。
【0043】
異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)のためのRBSPをカプセル化することがあり、第2のタイプのNALユニットはコーディングされたスライスのためのRBSPをカプセル化することがあり、第3のタイプのNALユニットは補足強化情報(SEI)のためのRBSPをカプセル化することがあり、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPではなく)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれ得る。
【0044】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得し得る。たとえば、ビデオデコーダ30は、ビットストリームを構文解析して、ビットストリームからシンタックス要素を復号し得る。ビデオデコーダ30は、ビットストリームから取得(たとえば、復号)されたシンタックス要素に少なくとも一部基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは全般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。ビデオデコーダ30は、現在のCUのPUの予測サンプルブロックのサンプルを、現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築し得る。ピクチャのCUごとにコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。
【0045】
マルチビューコーディングでは、異なる視点から同じシーンの複数のビューが存在することがある。マルチビューコーディングの文脈では、「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用され得る。したがって、ビデオデータは、経時的に発生する一連のアクセスユニットとして概念化され得る。「ビュー成分」は、単一のアクセスユニットにおけるビューのコーディングされた表現であり得る。本開示では、「ビュー」は、同じビュー識別子と関連付けられるビュー成分のシーケンスを指し得る。いくつかの例では、ビュー成分は、テクスチャビュー成分(すなわち、テクスチャピクチャ)または深度ビュー成分(すなわち、深度ピクチャ)であり得る。
【0046】
MV-HEVCおよびSHVCでは、ビデオエンコーダは、一連のNALユニットを備えるビットストリームを生成し得る。ビットストリームの異なるNALユニットは、ビットストリームの異なるレイヤと関連付けられ得る。レイヤは、同じレイヤ識別子を有するVCL NALユニットおよび関連する非VCL NALユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、異なる時間インスタンスを有する同じレイヤのすべてのビュー成分を含むことが可能である。各ビュー成分は、特定の時間インスタンスにおける特定のビューに属するビデオシーンのコーディングされたピクチャであり得る。マルチビュービデオコーディングまたは3次元ビデオコーディングのいくつかの例では、レイヤは、特定のビューのすべてのコーディングされた深度ピクチャと、特定のビューのコーディングされたテクスチャピクチャとのいずれかを含み得る。3Dビデオコーディングの他の例では、レイヤは、特定のビューのテクスチャビュー成分と深度ビュー成分の両方を含み得る。同様に、スケーラブルビデオコーディングの文脈では、レイヤは通常、他のレイヤの中のコーディングされたピクチャとは異なるビデオ特性を有する、コーディングされたピクチャに対応する。そのようなビデオ特性は通常、空間分解能および品質レベル(たとえば、信号対雑音比)を含む。HEVCおよびその拡張では、特定の時間レベルを有するピクチャのグループをサブレイヤとして定義することによって、時間スケーラビリティが1つのレイヤ内で達成され得る。
【0047】
ビットストリームの各々のそれぞれのレイヤについて、下位レイヤ中のデータは、どの上位レイヤ中のデータも参照せずに復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤ中のデータは、エンハンスメントレイヤ中のデータを参照せずに復号され得る。一般に、NALユニットは、単一のレイヤのデータをカプセル化するだけであり得る。したがって、ビットストリームの最も上位の残りのレイヤのデータをカプセル化するNALユニットは、ビットストリームの残りのレイヤ中のデータの復号可能性に影響することなく、ビットストリームから削除され得る。マルチビューコーディングでは、より高次のレイヤが追加のビュー成分を含み得る。SHVCでは、より高次のレイヤが、信号対雑音比(SNR)エンハンスメントデータ、空間エンハンスメントデータ、および/または時間エンハンスメントデータを含み得る。MV-HEVCおよびSHVCでは、ビデオデコーダがレイヤ中のピクチャをいずれの他のレイヤのデータも参照せずに復号できる場合、そのレイヤは「ベースレイヤ」と呼ばれ得る。ベースレイヤは、HEVC基本仕様(たとえば、Rec. ITU-T H.265|ISO/IEC 23008-2)に準拠し得る。
【0048】
スケーラブルビデオコーディングでは、ベースレイヤ以外のレイヤは、「エンハンスメントレイヤ」と呼ばれることがあり、ビットストリームから復号されたビデオデータの視覚的品質を向上させる情報を提供し得る。スケーラブルビデオコーディングは、空間分解能、信号対雑音比(すなわち品質)、または時間的なレートを向上させることができる。スケーラブルビデオコーディング(たとえば、SHVC)では、「レイヤ表現」は、単一のアクセスユニットにおける空間レイヤのコーディングされた表現であり得る。説明を簡単にするために、本開示は、ビュー成分および/またはレイヤ表現を「ビュー成分/レイヤ表現」または単に「ピクチャ」と呼び得る。
【0049】
マルチビューコーディングは、ビュー間予測をサポートする。ビュー間予測は、HEVCにおいて使用されるインター予測に類似しており、同じシンタックス要素を使用し得る。しかしながら、ビデオコーダが、現在のビデオユニット(PUなど)に対してビュー間予測を実行するとき、ビデオエンコーダ20は、現在のビデオユニットと同じアクセスユニットの中にあるが異なるビューの中にあるピクチャを、参照ピクチャとして使用し得る。対照的に、従来のインター予測は、単に、異なるアクセスユニットの中のピクチャを参照ピクチャとして使用する。
【0050】
マルチビューコーディングでは、ビューは、ビデオデコーダ(たとえば、ビデオデコーダ30)がビューの中のピクチャをいずれの他のビューの中のピクチャも参照せずに復号できる場合に、「ベースビュー」と呼ばれ得る。非ベースビューのうちの1つの中のピクチャをコーディングするとき、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、ピクチャを、そのピクチャが異なるビューの中にあるがビデオコーダが現在コーディングしているピクチャと同じ時間インスタンス(すなわち、アクセスユニット)内にある場合に、参照ピクチャリストに追加し得る。他のインター予測参照ピクチャのように、ビデオコーダは、参照ピクチャリストの任意の場所にビュー間予測参照ピクチャを挿入することができる。
【0051】
たとえば、NALユニットは、ヘッダ(すなわち、NALユニットヘッダ)およびペイロード(たとえば、RBSP)を含み得る。NALユニットのヘッダはnuh_reserved_zero_6bitsシンタックス要素を含むことがあり、これは「nuh_layer_id」シンタックス要素とも呼ばれることがある。異なる値を指定するnuh_layer_idシンタックス要素を有するNALユニットは、ビットストリームの異なる「レイヤ」に属する。したがって、マルチビューコーディング、MV-HEVC、SVC、またはSHVCでは、NALユニットのnuh_layer_idシンタックス要素は、NALユニットのレイヤ識別子(すなわち、レイヤID)を指定する。NALユニットのnuh_layer_idシンタックス要素は、NALユニットがマルチビューコーディング、MV-HEVC、またはSHVCにおけるベースレイヤに関係する場合に、0に等しい。ビットストリームのベースレイヤ中のデータは、ビットストリームのいずれの他のレイヤ中のデータも参照することなく復号され得る。NALユニットがマルチビューコーディング、MV-HEVC、またはSHVCにおけるベースレイヤに関係しない場合、nuh_layer_idシンタックス要素は0ではない値を有し得る。マルチビューコーディングでは、ビットストリームの異なるレイヤは異なるビューに対応し得る。SVCまたはSHVCでは、ベースレイヤ以外のレイヤは「エンハンスメントレイヤ」と呼ばれることがあり、ビットストリームから復号されるビデオデータの視覚的品質を向上させる情報を提供し得る。
【0052】
さらに、レイヤ内のいくつかのピクチャは、同じレイヤ内の他のピクチャを参照せずに復号され得る。したがって、レイヤのいくつかのピクチャのデータをカプセル化するNALユニットは、レイヤの中の他のピクチャの復号可能性に影響を与えることなく、ビットストリームから除去され得る。そのようなピクチャのデータをカプセル化するNALユニットを除去すると、ビットストリームのフレームレートが低下し得る。レイヤ内の他のピクチャを参照せずに復号され得るレイヤ内のピクチャのサブセットは、本明細書では「サブレイヤ」または「時間サブレイヤ」と呼ばれ得る。したがって、1つのタイプのスケーラブルな次元は時間次元である。
【0053】
たとえば、時間スケーラビリティでは、ビデオデータのセットが、様々なフレームレートまたは再生レート、たとえば、15フレーム毎秒(FPS)、30FPS、60FPS、および120FPSをサポートし得る。所与の時間レベルは、そのレベル以下のレベルにあるすべてのピクチャを含み得る。たとえば、前の例について続けると、0という時間レベルは15FPSに対応することがあり、1という時間レベルは時間レベル0のピクチャならびに30FPSをサポートするための時間レベル1のピクチャを含むことがあり、2という時間レベルは時間レベル0および1のピクチャならびに60FPSをサポートするための時間レベル2のピクチャを含むことがあり、以下同様である。
【0054】
時間識別子、またはTemporalIDは、ある特定のピクチャが属する時間レベルを表すものとしてシグナリングされ得る。たとえば、NALユニットは、temporal_idシンタックス要素を含み得る。NALユニットのtemporal_idシンタックス要素は、NALユニットの時間識別子を規定する。NALユニットの時間識別子は、NALユニットが関連付けられる時間サブレイヤを識別する。したがって、ビットストリームの各時間サブレイヤは、異なる時間識別子と関連付けられ得る。第1のNALユニットの時間識別子が第2のNALユニットの時間識別子よりも小さい場合、第1のNALユニットによってカプセル化されるデータは、第2のNALユニットによってカプセル化されるデータを参照せずに復号され得る。
【0055】
ビットストリームは、複数の動作点と関連付けられ得る。いくつかの例では、ビットストリームの各動作点は、レイヤ識別子のセット(すなわち、nuh_reserved_zero_6bits値またはnuh_layer_id値のセット)および時間識別子と関連付けられる。レイヤ識別子のセットはOpLayerIdSetと表記されることがあり、時間識別子はTemporalIDと表記されることがある。NALユニットのレイヤ識別子が動作点のレイヤ識別子セットの中にあり、NALユニットの時間識別子が動作点の時間識別子以下である場合、NALユニットは動作点と関連付けられる。したがって、動作点は、他のビットストリーム、目標の最高のTemporalID、およびターゲットレイヤ識別子リストを、サブビットストリーム抽出プロセスへの入力としてもつ、サブビットストリーム抽出プロセスの動作によって、別のビットストリームから作成されたビットストリームであり得る。動作点は、動作点と関連付けられる各NALユニットを含み得る。いくつかの例では、動作点は、動作点と関連付けられないVCL NALユニットを含まない。
【0056】
上で示されたように、動作点は、マルチレイヤビデオデータのレイヤ(たとえば、ビュー)の完全なセットのうちのレイヤのサブセットを記述する。動作点はまた、ターゲット出力レイヤ、すなわちそれについてのデータ(たとえば、復号されたピクチャ)が出力されるべきレイヤも特定し得る。いくつかの事例では、レイヤのデータは、参照レイヤとして使用するためだけに(たとえば、表示されるべきレイヤまたはビューのレイヤ間予測またはビュー間予測のためだけに、ここで参照レイヤまたはビューは表示されない)動作点に含まれることがあるので、そのようなレイヤはターゲット出力レイヤとは見なされない。
【0057】
HEVCおよび他のビデオコーディング規格は、プロファイル、ティア、およびレベルを指定する。プロファイル、ティア、およびレベルは、ビットストリームに対する制限、したがって、ビットストリームを復号するために必要とされる能力に対する制限を指定する。プロファイル、ティア、およびレベルはまた、個々のデコーダの実装形態の間の相互運用性のある点を示すために使用され得る。各プロファイルは、ビデオコーディング規格に存在するアルゴリズム特徴およびツールのサブセットを指定する。したがって、「プロファイル」は、適用可能なビデオコーディング規格によって指定されるビットストリームシンタックス全体の部分集合である。ビデオエンコーダは、プロファイルにおいてサポートされるすべての特徴を利用する必要はない。ティアの各レベルは、シンタックス要素および変数が有し得る値に対する制限のセットを指定し得る。したがって、「レベル」は、たとえば、デコーダメモリおよび計算などの、デコーダのリソース消費の制限に相当し、これは、ピクチャの解像度、ビットレート、およびブロック処理速度に関連する。すべてのプロファイルとともに、ティアおよびレベル定義の同じセットが使用され得るが、個々の実装形態は、サポートされるプロファイルごとに、異なるティア、およびティア内の異なるレベルをサポートし得る。所与のプロファイルの場合、ティアのレベルは一般に、特定のデコーダの処理負荷およびメモリ能力に対応し得る。ビデオデコーダの能力は、特定のプロファイル、ティア、およびレベルの制約に適合するビデオストリームを復号する能力に関して規定され得る。そのようなプロファイルごとに、そのプロファイルのためにサポートされるティアおよびレベルも表され得る。いくつかのビデオデコーダは、特定のプロファイル、ティア、またはレベルを復号することが可能ではないことがある。
【0058】
本開示は、HEVC拡張ビットストリームの搬送のために、MPEG-2トランスポートストリーム(TS)におけるHEVC動作点記述子を改善し得る技法について説明する。たとえば、本開示の技法によれば、マルチプレクサ21および/またはデマルチプレクサ29は、HEVC、ビデオコーディング規格の拡張(たとえば、SHVCまたはMV-HEVCなどのHEVC規格の拡張)、または他のまだ開発されていないビデオコーディング規格などのビデオコーディング規格に従ってコーディングされるビデオデータをトランスポートする(すなわち、ビデオデータを送信または受信する)ように構成され得る。一般に、マルチプレクサ21は、たとえばMPEG-2システムおよび本開示の技法に実質的に従って、符号化されたビデオデータをカプセル化してデータストリームを形成することができ、一方、デマルチプレクサ29は、カプセル化されたデータ、たとえばビデオコーディング規格の拡張に従って符号化されたビデオデータを、受信してカプセル化解除することができる。
【0059】
MPEG-2 TSの最新の仕様は、AVCおよびAVC拡張のサポートが提供される、ITU-T recommendation H.222.0、2012年6月である。HEVCに対するMPEG-2 TSの修正も開発されている。最新の文書である「Text of ISO/IEC 13818-1: 2013 / Final Draft Amendment 3 - Transport of HEVC video over MPEG-2 Systems」は、MPEG文書w13656、2013年7月から入手可能である。最近、MPEG-2 TS for L-HEVCと呼ばれる、レイヤードHEVCの搬送のためのMPEG-2 TSの修正が開始された。最新の文書は「Text of ISO/IEC 13818-1:2013 / DAM 3 - Carriage of Layered HEVC」であり、以後「DAM3」と呼ぶ。「レイヤードHEVC」という用語は、SHVC、MV-HEVC、および3D-HEVCなどの、複数のレイヤを使用するHEVC規格の拡張を指す。
【0060】
MPEG-2システム仕様は、デジタル送信または記憶に適した単一のデータストリームを形成するために、圧縮されたマルチメディア(ビデオおよびオーディオ)データストリームが他のデータとともにどのように多重化され得るかを記述する。MPEG-2システム仕様は、プログラム(program)(「programme」と綴られることもある)の単一のデジタル的にコーディングされた(場合によっては、MPEG圧縮された)コンポーネントである、エレメンタリストリームを記述する。たとえば、プログラムのコーディングされたビデオまたはオーディオの部分は、エレメンタリストリームであり得る。エレメンタリストリームは最初に、プログラムストリームまたはトランスポートストリームへと多重化される前に、パケット化されたエレメンタリストリーム(PES)に変換される。同じプログラム内で、stream_idシンタックス要素が、あるエレメンタリストリームに属するPESパケットを別のエレメンタリストリームに属するPESパケットと区別するために使用され得る。各PESパケットは1つまたは複数のNALユニットを含むことがあり、または、NALユニットは複数のPESパケットに分割されることがある。
【0061】
MPEG-2システム仕様では、プログラムストリームおよびトランスポートストリームは、異なる用途を対象とする二者択一のマルチプレクスである。プログラムストリームはデジタル記憶サービスからの単一のプログラムの記憶および表示に偏っており、プログラムストリームはエラーの影響を受けやすいことがあるのでエラーのない環境において使用することが意図されている。
【0062】
プログラムストリームは、プログラムストリームに属するエレメンタリストリームを含み、普通は、可変長パケットを有するパケットを含む。プログラムストリームでは、寄与するエレメンタリストリームから導出されたPESパケットは、「パック」へと編成される。パックは、パック-ヘッダ、任意選択のシステムヘッダ、および寄与するエレメンタリストリームのいずれかから取られた任意の数のPESパケットを、任意の順序で含む。システムヘッダは、最大データレート、寄与するビデオおよびオーディオエレメンタリストリームの数、ならびにさらなるタイミング情報などの、プログラムストリームの特性の概要を含む。ビデオデコーダ30は、システムヘッダに含まれる情報を使用して、ビデオデコーダ30がプログラムストリームを復号することが可能であるかどうかを決定し得る。
【0063】
トランスポートストリームは、潜在的にエラーを起こしやすいチャネルを通じたいくつかのプログラムの同時配信を目的とする。トランスポートストリームは、単一のトランスポートストリームが多くの独立したプログラムを受け入れることができるように、ブロードキャストなどのマルチプログラム用途のために考案されたマルチプレクスである。トランスポートストリームは一連のトランスポートパケットを含み、トランスポートパケットの各々は188バイトの長さである。短い固定長パケットの使用は、トランスポートストリームがプログラムストリームほどエラーの影響を受けやすくはないことを意味する。さらに、188バイト長の各トランスポートパケットは、リードソロモン符号化などの標準的なエラー保護プロセスを通じてトランスポートパケットを処理することによって、追加のエラー保護を容易に与えられる。トランスポートストリームのエラー耐性の改善は、トランスポートストリームが、たとえばブロードキャスト環境で見られるエラーを起こしやすいチャネルを切り抜ける可能性がより高いことを意味する。トランスポートストリームは明らかに、より高いエラー耐性と、多数の同時プログラムを搬送する能力とを有する、2つのマルチプレクスのうちの良い方であるように見えるかもしれない。しかしながら、トランスポートストリームは、プログラムストリームよりも高度なマルチプレクスであり、結果として、作成およびデマルチプレクスがより難しい。
【0064】
トランスポートパケットの第1のバイトは同期バイトであり、これはいくつかの事例では0x47である。単一のトランスポートストリームが、各々が多数のパケット化されたエレメンタリストリームを備える、多数の異なるプログラムを搬送し得る。パケット識別子(PID)フィールドが、あるエレメンタリストリームのデータを含むトランスポートパケットを他のエレメンタリストリームのデータを搬送するトランスポートパケットと区別するために使用される。いくつかの事例では、PIDは13ビットである。各エレメンタリストリームが一意なPID値を確実に与えられるようにすることが、マルチプレクサ21の役割であり得る。
【0065】
トランスポートパケットがどのエレメンタリストリームに属するかは、PID値に基づいて明らかであるが、ビデオデコーダ30は、どのエレメンタリストリームがどのプログラムに属するかをデコーダが知る必要があり得る。したがって、トランスポートストリームは、プログラムとコンポーネントエレメンタリストリームとの間の関係を明示的に指定するためのプログラム固有情報(PSI:program specific information)を備える。言い換えると、トランスポートストリームは、PSIを含むトランスポートパケットを含み得る。
【0066】
PSIは、プログラム関連付けテーブル(PAT:program association table)を含み得る。プログラム関連付けテーブルは、トランスポートストリームにおいて利用可能なすべてのプログラムの完全なリストを含む。いくつかの例では、PATは常にPID値0を有する。各プログラムは、プログラムのプログラムマップテーブルを含むトランスポートパケットのPID値とともに記載される。
【0067】
さらに、PSIは、1つまたは複数のプログラムマップテーブル(PMT:Program Map Table)を含み得る。トランスポートストリームにおいて搬送される各プログラムは、関連するPMTを有する。PATは、プログラムのためのPMTを含むトランスポートパケットのPID値を規定し得る。プログラムのためのPMTは、プログラムおよびプログラムを備えるエレメンタリストリームについての詳細を与える。たとえば、プログラム番号3を有するプログラムのためのPMTは、PID値33、57、および60を有するトランスポートパケットをプログラムが含むことを規定し得る。この例では、33に等しいPID値を有するトランスポートパケットは、符号化されたビデオデータを含むエレメンタリストリームを含むことがあり、57に等しいPID値を有するトランスポートパケットは、英語のオーディオデータを含むことがあり、60に等しいPID値を有するトランスポートパケットは、中国語のオーディオデータを含むことがある。PMTは、2つ以上のプログラムに関する詳細を含み得る。
【0068】
プログラムのための基本のPMTは、MPEG-2システム仕様内で規定される多くの記述子のうちのいくつかを含み得る。そのような記述子は、プログラムまたはそのコンポーネントエレメンタリストリームについてのさらなる情報を伝える。記述子は、ビデオ符号化パラメータ、オーディオ符号化パラメータ、言語識別情報、パンアンドスキャン情報、限定アクセスの詳細、著作権情報などを含み得る。ブロードキャスタまたは他のユーザは、必要であれば追加のプライベート記述子を定義することができる。
【0069】
記述子は、符号化されたビデオデータとは別個である。したがって、媒体認識ネットワーク要素(MANE)などのデバイスは、符号化されたビデオデータを復号または別様に分析することなく、トランスポートストリームおよびプログラムストリームに対して様々な機能を実行するために、記述子を使用することが可能であり得る。たとえば、HEVCを使用してビデオデータが符号化される場合、デバイスは、トランスポートストリームまたはプログラムストリームに対して特定の機能を実行するために記述子を使用するために、HEVC符号化されたビデオデータを復号するように構成される必要がない。たとえば、デバイスは、宛先デバイスに特定のプログラム要素を転送すべきかどうか、または特定のエレメンタリストリームを復号すべきかどうかを決定するためのプロセスの一部として、記述子を使用することが可能であり得る。
【0070】
ビデオ関連のコンポーネントエレメンタリストリームを有するプログラムのための記述子は、1つまたは複数の階層記述子を含み得る。階層記述子は、異なるエレメンタリストリームのサブビットストリームの階層をシグナリングするように設計される。階層記述子は、階層的にコーディングされたビデオ、オーディオ、およびプライベートストリームのコンポーネントを含むプログラム要素を識別する情報を提供する。プライベートストリームは、プログラム固有情報のストリームなどのメタデータを含み得る。一般に、プログラム要素は、プログラムに含まれるデータまたはエレメンタリストリームのうちの1つ(すなわち、プログラムのコンポーネントエレメンタリストリーム)である。MPEG-2トランスポートストリームでは、プログラム要素は通常、パケット化される。MPEG-2プログラムストリームでは、プログラム要素はパケット化されない。
【0071】
いくつかの事例では、プログラムの各々のそれぞれのレイヤの各々のそれぞれの時間サブレイヤは、プログラムの異なるプログラムコンポーネント(たとえば、エレメンタリストリーム)に対応し得る。他の事例では、プログラムの各々のそれぞれのレイヤは、異なるエレメンタリストリームに対応する。さらに、いくつかの事例では、2つ以上のエレメンタリストリームはプログラムの同じレイヤの異なる時間サブレイヤに対応し得るが、単一のエレメンタリストリームは同じプログラムの別のレイヤのすべての時間サブレイヤに対応し得る。上に示されたように、記述子は階層記述子を含み得る。各々のそれぞれの階層記述子は、対応するプログラムコンポーネント(すなわち、エレメンタリストリーム)に関する情報を提供する。たとえば、特定のエレメンタリストリームに対応する階層記述子は、特定のエレメンタリストリームのビデオデータを復号するために必要とされる別のエレメンタリストリームを規定するシンタックス要素を含み得る。一例では、特定の時間サブレイヤのためのエレメンタリストリームに対応する階層記述子は、特定の時間サブレイヤを復号するために必要とされる埋め込まれた時間サブレイヤを規定するシンタックス要素を含み得る。
【0072】
埋め込まれた時間サブレイヤは、埋め込まれた時間サブレイヤの復号が特定の時間サブレイヤの復号の成功に必要とされるという意味で、「埋め込まれ」得る。さらに、階層記述子は、階層記述子に対応する時間サブレイヤが埋め込まれた時間サブレイヤと比較して時間スケーラビリティを提供する(たとえば、フレームレートを上昇させる)かどうか、埋め込まれた時間サブレイヤと比較して空間スケーラビリティを提供する(たとえば、ピクチャ解像度を上昇させる)かどうか、埋め込まれた時間サブレイヤと比較して品質スケーラビリティを提供する(たとえば、信号対雑音の品質または忠実度を向上させる)かどうか、などを規定するシンタックス要素を含み得る。
【0073】
以下のTable 2-49(表1)は、DAM 3において定義される階層記述子のシンタックスを規定する。
【0075】
Table 2-49(表1)において、hierarchy_layer_indexは、コーディングレイヤ階層のテーブルにおける関連するプログラム要素の一意なインデックスを定義する6ビットフィールドである。インデックスは、単一のプログラム定義内で一意であるものとする。Rec. ITU-T H.265|ISO/IEC 23008-2のAnnex Fにおいて定義された1つまたは複数のプロファイルに適合するHEVCビデオストリームのビデオサブビットストリームでは、これはプログラム要素インデックスであり、プログラム要素インデックスは、同じHEVCアクセスユニットのビデオサブビットストリームの関連する依存性レイヤがhierarchy_layer_indexの昇順で再組立される場合にビットストリーム順序が正しくなるような方法で割り当てられる。言い換えると、階層記述子のhierarchy_layer_indexは、階層記述子に対応するプログラム要素(すなわち、エレメンタリストリーム)を特定する。
【0076】
さらに、Table 2-49(表1)において、hierarchy_embedded_layer_indexは、このhierarchy_descriptorと関連付けられるエレメンタリストリームの復号の前にアクセスされる必要があり復号順序の中に存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。hierarchy_embedded_layer_indexは、hierarchy_type値が15である場合は定義されない。言い換えると、階層記述子のhierarchy_embedded_layer_indexは、階層記述子に対応するエレメンタリストリームが依存するエレメンタリストリームを特定する。
【0077】
1つまたは複数の階層記述子に加えて、MPEG-2トランスポートストリームまたはプログラムストリームにおいてシグナリングされる記述子は、1つまたは複数の階層拡張記述子を含み得る。MPEG-2トランスポートストリームまたはプログラムストリームの中の各々のそれぞれの階層拡張記述子は、それぞれのエレメンタリストリームに対応し得る。各階層拡張記述子は、対応するエレメンタリストリームに関する追加の情報を提供し得る。上で示されたように、エレメンタリストリームは、1つまたは複数の時間サブレイヤに対応することがあり、またはレイヤ全体に対応することがある。言い換えると、エレメンタリストリームは、1つまたは複数の時間サブレイヤの符号化されたビデオデータを含むことがあり、またはレイヤ全体に対応することがある。したがって、階層拡張記述子は、1つまたは複数の時間サブレイヤに対応するエレメンタリストリームに対応することがあり、またはレイヤ全体に対応することがある。
【0078】
階層拡張記述子が存在するとき、階層拡張記述子は、エレメンタリストリームに対応するエレメンタリストリームの依存性を規定するために使用される。たとえば、特定のエレメンタリストリームに対応する階層拡張記述子は、その階層拡張記述子に対応するエレメンタリストリームの復号に成功するために復号されることが必要とされる複数のエレメンタリストリームを示し得る。対照的に、階層記述子は、その階層記述子に対応するエレメンタリストリームの復号の成功のために必要とされる1つのエレメンタリストリームを示すことが可能であるだけである。下のTable 2-103deciens(表2)は、DAM 3において規定される階層拡張記述子のシンタックスを示す。
【0080】
Table 2-103deciens(表2)において、hierarchy_layer_indexは、コーディングレイヤ階層のテーブルにおける関連するプログラム要素の一意なインデックスを定義する6ビットフィールドである。インデックスは、単一のプログラム定義内で一意であるものとする。Rec. ITU-T H.265|ISO/IEC 23008-2のAnnex GまたはHにおいて定義された1つまたは複数のプロファイルに適合するHEVCビデオストリームのビデオサブビットストリームでは、これはプログラム要素インデックスであり、プログラム要素インデックスは、同じアクセスユニットのビデオサブビットストリームの関連する依存性レイヤがhierarchy_layer_indexの昇順で再組立される場合にビットストリーム順序が正しくなるような方法で割り当てられる。したがって、階層拡張記述子のhierarchy_layer_indexは、階層記述子に対応するエレメンタリストリームを特定する。
【0081】
nuh_layer_idは、このHEVC_hierarchy_extension_descriptor()と関連付けられるエレメンタリストリームにおけるNALユニットの最高nuh_layer_idを規定する6ビットフィールドである。
【0082】
temporal_idは、このHEVC_hierarchy_extension_descriptor()と関連付けられるエレメンタリストリームにおけるNALユニットの最高TemporalIdを規定する3ビットフィールドである。
【0083】
num_embedded_layersは、このHEVC_hierarchy_extension_descriptor()と関連付けられるエレメンタリストリームの復号の前にアクセスされる必要があり復号順序の中に存在する必要がある直接依存プログラム要素の数を規定する6ビットフィールドである。
【0084】
hierarchy_ext_embedded_layer_indexは、このhierarchy_extension_descriptorと関連付けられるエレメンタリストリームの復号の前にアクセスされる必要があり復号順序の中に存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。このフィールドは、hierarchy_type値が15である場合は定義されない。
【0085】
階層記述子および階層拡張記述子に加えて、トランスポートストリームはHEVC動作点記述子を含み得る。HEVC動作点は、動作点の中のレイヤに対応するエレメンタリストリームへの参照を指定することによって、HEVC動作点記述子においてシグナリングされる。DAM3において記述されるように、HEVC動作点記述子は、1つまたは複数のHEVC動作点のためのプロファイルおよびレベルを示すための方法を提供する。宛先デバイス14は、復号され最終的にユーザに提示(たとえば、表示)されるべき動作点の1つを選択するために、ビットストリームに含まれる動作点記述子を使用し得る。ビューまたはレイヤのすべてのためのデータを受信するとビデオデコーダ30に渡すのではなく、宛先デバイス14は、選択された動作点のビューだけをビデオデコーダ30に送信し得る。たとえば、宛先デバイス14は、復号されないビューのデータを廃棄することができる。加えて、または代替的に、中間ネットワークデバイス(たとえば、媒体認識ネットワーク要素(MANE))は、要求される動作点に対応しないビューまたはレイヤのデータを(たとえば、帯域幅をより良く利用するために)廃棄することができる。宛先デバイス14は、ビットストリームのための動作点のうちの最高の品質がサポートされる動作点に基づいて、および/またはネットワーク帯域幅の利用可能な量に基づいて、動作点を選択することができる。
【0086】
下のTable 2-103noniens(表3)は、DAM 3において定義されるHEVC動作点記述子のシンタックスを示す。
【0088】
HEVC動作点記述子のためのDAM3における設計(すなわち、HEVC動作点記述子のシンタックス構造)には、いくつかの問題があり得る。以下の段落は、DAM3において定義されるHEVC動作点記述子の現在の設計における問題のうちの2つについて説明する。
【0089】
第1に、Table 2-103noniens(表3)において示されるように、HEVC動作点記述子はprepend_dependencies[i][j]シンタックス要素を含む。しかしながら、DAM3では、0に等しいprepend_dependencies[i][j]のセマンティクスが欠けている。さらに、DAM3の設計では、エレメンタリストリーム(たとえば、レイヤに対応するエレメンタリストリーム)がターゲット動作点のためのエレメンタリストリームのリストの中に2回含まれる可能性がある。2つ以上含まれるという問題は、以下の状況のいずれかにおいて発生し得る。
1. レイヤのES_reference[i][j]値をシグナリングすることによってレイヤが動作点の一部として明示的にシグナリングされ、それと同時に、レイヤが1に等しいprepend_dependencies[i][j]の値を有する別のレイヤの参照レイヤでもあるとき。
2. レイヤが1に等しいprepend_dependencies[i][j]をともに有する同じ動作点の中の2つの他のレイヤのための参照レイヤであるとき。
【0090】
HEVC動作点記述子のためのDAM3における設計の第2の問題は、ある動作点に対して、HEVC動作点のためにビデオデコーダ30によって復号されることが必要とされるすべてのレイヤが明示的にシグナリングされる必要があるとは限らないということであり、それは、一部のレイヤ(エレメンタリストリーム)が他のレイヤに依存することがあり、そのような情報が他の箇所に(たとえば、階層記述子または階層拡張記述子に)存在するからである。シンタックス要素prepend_dependencies[i][j]の値が1に等しいとき、j番目のレイヤが依存する他のレイヤは、i番目のHEVC動作点に対して導出されず、したがって明示的にシグナリングされないことがある。しかしながら、HEVC動作点では、導出されたレイヤは、(上のTable 2-103noniens(表3)のタグ「<EMPHASIS>」と「</EMPHASIS>」の間のテキストによって示されるような)明示的なレイヤのループの中に存在しない。したがって、現在は、導出されたレイヤのためのoutput_layer_flag[i][j]シンタックス要素およびptl_ref_idx[i][j]シンタックス要素の値を知る方法がないが、導出されたレイヤのエレメンタリストリームは、階層記述子および/または階層拡張記述子によって特定されることが可能である。言い換えると、エレメンタリストリームおよびいくつかのレイヤを参照して動作点のレイヤをシグナリングすることが、明示的にシグナリングされないが導出されるとき(シンタックス要素prepend_dependencies[i][j]の値が1であるとき)、レイヤが出力レイヤであるかどうか、ならびに、それらの導出されたレイヤのためのプロファイル、ティア、およびレベルなどの情報が、これらの導出されたレイヤに対して欠けている。
【0091】
レイヤードHEVCにおける出力動作点は、出力レイヤセットに基づいて定義される。しかしながら、レイヤが出力レイヤであるかどうかを知ることは、レイヤードHEVCにおける適合性の定義のために必要であることがあり、各々の必要なレイヤ(すなわち、出力レイヤ、または動作点内の出力レイヤによって直接もしくは間接的に参照されるレイヤ、またはこれらの両方であるレイヤ)は、MV-HEVC/SHVC規格に従ってプロファイル、ティア、およびレベル(PTL)情報のセットと関連付けられることになっている。したがって、レイヤがターゲット出力レイヤであるかどうかを知ることは必要であることがある。たとえば、output_layer_flag[i][j]シンタックス要素の値を知ることが必要であることがある。しかしながら、上のTable 2-103noniens(表3)のタグ「<EMPHASIS>」および「</EMPHASIS>」で囲まれたforループは、明示的にシグナリングされるレイヤだけに対して適用可能であり得るので、output_layer_flag[i][j]シンタックス要素も、導出されたレイヤのためのビットストリームの中に存在しないこともある。
【0092】
加えて、レイヤードHEVCは、その設計により、プロファイル、ティア、およびレベルの情報が各々の必要なレイヤ(すなわち、ターゲット出力レイヤであるレイヤ、またはターゲット出力レイヤを復号するために必要とされるレイヤ)に対して存在することを必要とする。DAM3の設計は、導出されたレイヤに対するそのような情報が欠けている。さらに、不必要なレイヤ(すなわち、必要なレイヤではないレイヤ)に対して、PTL情報がコーディング規格ごとにシグナリングされないので、トランスポートストリーム搬送の設計においては、不要なレイヤに対して常にPTLをシグナリングすることは、シグナリングされるべきそうしたレイヤのためのPTL情報がないので問題であろう。
【0093】
以下では、上の問題に対処し得る例示的な技法について説明する。しかしながら、以下で説明される技法は上の問題に対処するための要件であると見なされるべきではない。例示的な技法は、ビデオデコーダ30が最終的に受信するビットストリームを生成することの一部として、ビデオエンコーダ20、マルチプレクサ21、デマルチプレクサ29、中間デバイス(たとえば、MANE)、もしくは別のデバイスによって適用されることがあり、または、表示されるべき画像を生成するためのビデオデータの復号の一部として、ビデオデコーダ30もしくは別のデバイスによって適用されることがある。技法のいくつかは、独立に適用されてよく、それらのうちのいくつかは、組み合わせて適用されてよい。さらに、本開示はHEVC動作点記述子について説明し、そうでなければHEVCに言及するが、本開示の技法は、HEVC以外のビデオコーディング規格に適用可能であり得る。
【0094】
本開示の第1の技法によれば、HEVC動作点の中の各エレメンタリストリーム(ES)/レイヤに対して、ES/レイヤが必要なレイヤであるかどうかを示すために、フラグがシグナリングされる。本開示では、ES/レイヤまたはレイヤ/ESへの言及は、レイヤに対応するエレメンタリストリームまたはレイヤの時間サブレイヤに言及する。したがって、エレメンタリストリームを特定するデータが、対応するレイヤを特定するために使用されることがあり、その逆であることもある。たとえば、ビデオエンコーダ20、マルチプレクサ21、または中間デバイスは、動作点の中の各エレメンタリストリームまたはレイヤに対して、エレメンタリストリームまたはレイヤが必要であるかどうかを示すフラグ(たとえば、以下で説明されるnecessary_layer_flag[i][k])をビットストリームの中で出力(たとえば、シグナリング)することができる。ビデオデコーダ30は、そのようなフラグを受信し、ビットストリームの復号のためにそのフラグを利用することができる。言い換えると、ビデオデコーダ30は、受信されたフラグに基づいて動作点を復号することができる。
【0095】
本開示の第2の技法によれば、動作点のためのエレメンタリストリームのリストへとES/レイヤを含めることが、ESがリストの中にまだないときにだけ適用されることを明確にするように、prepend_dependencies[i][j]のセマンティクスが更新される。たとえば、0に等しいprepend_dependencies[i][j]のセマンティクスが追加され、レイヤ/エレメンタリストリームがターゲット動作点のためのエレメンタリストリームのリストの中にまだないときにだけ、レイヤ/エレメンタリストリームがそのリストに含められることが明確にされる。
【0096】
したがって、いくつかの例では、ビデオエンコーダ20などのデバイスは、動作点記述子などの第1の記述子を生成する。加えて、デバイスは、階層記述子または階層拡張記述子などの、第2の記述子を生成することができる。第1の記述子を生成することの一部として、デバイスは、第1のシンタックス要素および第2のシンタックス要素を第1の記述子に含めることができる。少なくともいくつかのそのような例では、エレメンタリストリームリストは動作点の一部であるエレメンタリストリームのリストであり、第2の記述子は第2のシンタックス要素の値に等しい階層レイヤインデックス値を有する。第1のシンタックス要素の第1の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることと、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることとを規定する。第1のシンタックス要素の第2の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームは追加されるべきではないことを規定する。デバイスは、第1の記述子および第2の記述子をトランスポートストリームに含めることができる。
【0097】
類似の例において、ビデオデコーダ30などのデバイスは、第1の記述子、第2の記述子、および複数のエレメンタリストリームを含むトランスポートストリームを受信する。第1の記述子は、ビデオデータの動作点の記述子であり得る。第2の記述子は、階層記述子または階層拡張記述子のうちの1つであり得る。デバイスは、第1の記述子の中の第1のシンタックス要素および第2のシンタックス要素を復号することができる。少なくともいくつかのそのような例では、エレメンタリストリームリストは動作点の一部であるトランスポートストリームのエレメンタリストリームのリストであり、第2の記述子は第2のシンタックス要素の値に等しい階層レイヤインデックス値を有する。さらにそのような例では、第1のシンタックス要素の第1の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることであって、第2のシンタックス要素によって示されるエレメンタリストリームが複数のエレメンタリストリームのうちの1つである、ことと、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることであって、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが複数のエレメンタリストリームのうちの1つである、こととを規定する。第1のシンタックス要素が第1の値とは異なる第2の値を有すると決定したことに応答して、デバイスは、第2のシンタックス要素によって示されるエレメンタリストリームを、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加することがあるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームをエレメンタリストリームリストへ追加しないことがある。
【0098】
本開示の第3の技法によれば、同じエレメンタリストリームがいずれの特定の動作点に対しても2回以上明示的にシグナリングされることがないように、ES_reference[i][j]の値に対して制約が加えられる。言い換えると、同じエレメンタリストリームがいずれの特定の動作点に対しても2回以上明示的にシグナリングされるべきではないという制約を課すことがさらに提案される。たとえば、ビデオエンコーダ20または中間デバイスは、同じエレメンタリストリームが2回以上明示的にシグナリングされないように、構成され得る。
【0099】
さらに、本開示は、上で説明された第2の問題(すなわち、出力レイヤフラグが欠けているという問題およびPTL情報の問題などの、導出されたレイヤに対していくつかのシンタックス要素の値を決定することができないという問題)を解決するいくつかの例示的な技法について説明する。第2の問題を解決するためのいくつかのそのような技法では、動作点のためのレイヤを導出する機能を保ち、導出されたレイヤに対して欠けている情報をシグナリングし、しかし不要なレイヤに対するPTLをシグナリングしないことが提案される。
【0100】
第2の問題を解決するための第1の例示的な技法では、prepend_dependencies[i][j]シンタックス要素が除去され、すべてのレイヤが常に明示的にシグナリングされる。
【0101】
第2の問題を解決するための第2の例示的な技法では、HEVC動作点記述子の中の1つの動作点のレイヤに対する2つのループが導入される。一方のループは、ES_reference[i][j]シンタックス要素と、エレメンタリストリームへの参照(ES_reference[i][j])と明示的に関連付けられるレイヤのprepend_dependencies[i][j]シンタックス要素とを含む。別のループは、すべてのレイヤのoutput_layer_flag[i][k]シンタックス要素およびptl_ref_idx[i][k]シンタックス要素を含む。ビデオエンコーダ20、マルチプレクサ21、デマルチプレクサ29、ビデオデコーダ30、中間デバイス、および/または別のデバイスは、HEVC動作点記述子を符号化または復号するために、これらの例示的なループを実装することができる。
【0102】
第2の問題を解決するための第2の例示的な技法の1つの事例では、デバイスは、第1のループを実行して、HEVC動作点記述子の中の第1のシンタックス要素(たとえば、ES_reference[i][j])の複数のインスタンス(たとえば、セット)を生成または復号するように構成され得る。第1のシンタックス要素は、動作点のエレメンタリストリームを特定する、階層記述子またはHEVC階層拡張記述子の中に存在する階層レイヤインデックス値を示す。第1のループにおいて、デバイスはまた、第2のシンタックス要素(たとえば、prepend_dependencies[i][j])の複数のインスタンスを生成または復号する。第2のシンタックス要素は、第1のループの実行の一部として、どの構造からのエレメンタリストリームが動作点のためのエレメンタリストリームのリストに含められるべきかを示す。さらに、この例では、デバイスは、第2のループを実行して、動作点のどのエレメンタリストリームが出力レイヤであるかを示す、第3のシンタックス要素(たとえば、output_layer_flag[i][k])の複数のインスタンスを生成または復号することができる。加えて、第2のループにおいて、デバイスは、動作点のエレメンタリストリームのプロファイル、ティア、またはレベルを決定するためのインデックスを示す、第4のシンタックス要素(たとえば、ptl_ref_idx[i][k])の複数のインスタンスを生成または復号することができる。いくつかの事例では、デバイスは、第1の、第2の、第3の、および第4のシンタックス要素のうちの1つまたは複数に基づいて、HEVC動作点記述子を含むトランスポートストリームを生成し、または動作点を復号することができる。
【0103】
第2の問題を解決するための第3の例示的な技法では、第2の問題を解決するための上の第2の例示的な技法における2つのループが統合されてよく、各レイヤに対するフラグが、レイヤが明示的にシグナリングされるか暗黙的にシグナリングされるかを示す。この例では、ES_reference[i][j]によって特定される階層記述子または階層拡張記述子によって導出されるレイヤがある順序を編成することが仮定されるので、第2のループにおいて順序付けられるレイヤが、明示的にシグナリングされるレイヤの各々を、第1のループにおいてシグナリングされる、または情報によって導出されるレイヤと対応付けることが可能である。
【0104】
第2の問題を解決するための第4の例示的な技法は、prepend_dependencies[i][j]シンタックス要素による機能をまだ有効にするが、適用されるときに、導出されるレイヤが出力レイヤであるかどうかがデフォルト値によって推測される。たとえば、prepend_dependencies[i][j]が1に等しいとき、デバイスは、output_layer_flag[i][j]シンタックス要素の値がデフォルト値に等しいと推測し得る。そのようなデフォルト値、たとえば0または1は、現在の動作点に対してシグナリングされ得る。導出されたレイヤのプロファイル、ティア、およびレベルは、異なる動作点において以前に明示的にシグナリングされたレイヤと同じになるように設定される。
【0105】
不要なレイヤに対してPTLをシグナリングしないようにするために、本開示は、HEVC動作点の中の各ES/レイヤに対して、ES/レイヤが必要なレイヤであるかどうかを示すためのフラグをシグナリングすることを提案する。このシグナリングは、それがなければ予備に回されるであろうビットを使用するので、追加のオーバーヘッドがもたらされることはなく、このシグナリングは、それがなければ規定される必要があり得る複雑な導出プロセスをなくす。たとえば、デバイス(たとえば、ビデオエンコーダ20、マルチプレクサ21、デマルチプレクサ29、ビデオデコーダ30、中間デバイス、または別のデバイス)は、動作点のエレメンタリストリームまたはレイヤを決定し、動作点の中の各エレメンタリストリームまたはレイヤに対するフラグ(たとえば、以下で説明されるnecessary_layer_flag[i][k])を決定し、ここでフラグはそれぞれのエレメンタリストリームまたはレイヤが必要なストリームまたはレイヤであるかどうかを示し、エレメンタリストリームおよびそれぞれのフラグを含むビットストリームを生成するように構成され得る。
【0106】
図2は、ビデオコーディング規格の拡張に従ってコーディングされるビデオデータをトランスポートするための技法を実施し得るビデオエンコーダ20の例を示すブロック図である。ビデオデータは、ベースレイヤに対する複数の(たとえば、2つ以上の)エンハンスメントレイヤを含むことがあり、ここでエンハンスメントレイヤは異なるスケーラビリティ次元に対応することがある。
【0107】
図2の例では、ビデオエンコーダ20は、ビデオデータメモリ49と、モード選択ユニット40と、復号ピクチャバッファ(DPB)64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。
【0108】
ビデオデータメモリ49は、ビデオエンコーダ20のコンポーネントによって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ49に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。DPB64は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ49およびDPB64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ49およびDPB64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ49は、ビデオエンコーダ20の他のコンポーネントとともにオンチップであることがあり、または、これらのコンポーネントに対してオフチップであることがある。
【0109】
符号化プロセスの間に、ビデオエンコーダ20は、符号化されるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間予測を行うために、1つまたは複数の参照フレームの中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は代替的に、空間予測を行うために、符号化されるべきブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する、受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックのための適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【0110】
その上、区分ユニット48は、たとえば、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初にフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、LCUをサブCUに区分することを示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
【0111】
モード選択ユニット40は、たとえば誤差結果に基づいてイントラコーディングモードまたはインターコーディングモードのうちの一方を選択することができ、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に与え、参照フレームにおいて使用するための符号化されたブロックを再構築するために加算器62に与えることができる。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に与える。
【0112】
動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動き推定ユニット42は、参照ピクチャの予測ブロックの場所とPUの場所とを比較することによって、インターコーディングされたスライスの中のビデオブロックのPUの動きベクトルを計算し得る。参照ピクチャは、その各々がDPB64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(RefPicList0)または第2の参照ピクチャリスト(RefPicList1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送信する。動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。加算器50は、以下で論じられるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスと関連付けられるシンタックス要素を生成し得る。
【0113】
イントラ予測ユニット46は、上で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。ブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。
【0114】
ビデオエンコーダ20は、モード選択ユニット40からの予測データをコーディングされる元のビデオブロックから引くことによって、残差ビデオブロックを形成し得る。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成し得る。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化し得る。量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行し得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)へ送信されるか、または、後の送信もしくは取出しのためにアーカイブされ得る。
【0115】
逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後に使用するための、ピクセル領域における残差ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、DPB64のフレームのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。加算器62は、DPB64に記憶するための再構築されたビデオブロックを生成するために、動き補償ユニット44によって生成された動き補償された予測ブロックに再構築された残差ブロックを加算し得る。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために、参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【0116】
いくつかの例では、
図2のビデオエンコーダ20は、動作点記述子などの第1の記述子を生成する。加えて、ビデオエンコーダ20は、階層記述子または階層拡張記述子などの、第2の記述子を生成し得る。第1の記述子を生成することの一部として、ビデオエンコーダ20は、第1のシンタックス要素および第2のシンタックス要素を第1の記述子に含めることができる。少なくともいくつかのそのような例では、エレメンタリストリームリストは動作点の一部であるエレメンタリストリームのリストであり、第2の記述子は第2のシンタックス要素の値に等しい階層レイヤインデックス値を有する。第1のシンタックス要素の第1の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることと、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることとを規定する。第1のシンタックス要素の第2の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームは追加されるべきではないことを規定する。ビデオエンコーダ20は、第1の記述子および第2の記述子をトランスポートストリームに含めることができる。
【0117】
図3は、ビデオコーディング規格の拡張に従ってコーディングされるビデオデータをトランスポートするための技法を実施し得るビデオデコーダ30の例を示すブロック図である。
図3の例では、ビデオデコーダ30は、ビデオデータメモリ69と、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、復号ピクチャバッファ(DPB)82と、加算器80とを含む。
【0118】
ビデオデータメモリ69は、ビデオデコーダ30のコンポーネントによって復号されるべき、符号化されたビデオビットストリームなどの符号化されたビデオデータを記憶し得る。ビデオデータメモリ69に記憶される符号化されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線ネットワーク通信もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ69は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディングピクチャバッファ(CPB:coded picture buffer)を形成し得る。DPB82は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ69およびDPB82は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ69およびDPB82は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ69は、ビデオデコーダ30の他のコンポーネントとともにオンチップであることがあり、または、これらのコンポーネントに対してオフチップであることがある。
【0119】
ビデオデータメモリ69は、ビットストリームの符号化されたビデオデータ(たとえば、NALユニット)を受信し記憶し得る。エントロピー復号ユニット70は、符号化されたビデオデータ(たとえば、NALユニット)をビデオデータメモリ69から受信することができ、NALユニットを構文解析して、シンタックス要素を復号することができる。復号プロセスの間、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化された係数と、イントラ予測モードインジケータと、他のシンタックス要素とを生成する。
【0120】
イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。動き補償ユニット72は、予測情報を使用してビデオブロックに対する予測情報を決定することができ、復号されている現在のビデオブロックに対する予測ブロックを生成することができる。
【0121】
逆量子化ユニット76は、ビットストリームにおいて提供され、エントロピー復号ユニット70によって復号された、量子化された変換係数を逆量子化し得る。逆変換ユニット78は、ピクセル領域における残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用し得る。
【0122】
動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックの予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成し得る。加算器80は、この加算演算を実行する1つまたは複数のコンポーネントを表す。次いで、所与のフレームまたはピクチャ中の復号されたビデオブロックは、DPB82に記憶され、DPB82は、後続の動き補償のために使用される参照ピクチャを記憶する。DPB82はまた、
図1のディスプレイデバイス32などのディスプレイデバイス上で後で提示するための復号されたビデオを記憶する。
【0123】
いくつかの例では、ビデオデコーダ30は、第1の記述子、第2の記述子、および複数のエレメンタリストリームを含むトランスポートストリームを受信する。第1の記述子は、ビデオデータの動作点の記述子であり得る。第2の記述子は、階層記述子または階層拡張記述子のうちの1つであり得る。ビデオデコーダ30は、第1の記述子の中の第1のシンタックス要素および第2のシンタックス要素を復号することができる。少なくともいくつかのそのような例では、エレメンタリストリームリストは動作点の一部であるトランスポートストリームのエレメンタリストリームのリストであり、第2の記述子は第2のシンタックス要素の値に等しい階層レイヤインデックス値を有する。さらにそのような例では、第1のシンタックス要素の第1の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることであって、第2のシンタックス要素によって示されるエレメンタリストリームが複数のエレメンタリストリームのうちの1つである、ことと、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることであって、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが複数のエレメンタリストリームのうちの1つである、こととを規定する。第1のシンタックス要素が第1の値とは異なる第2の値を有すると決定したことに応答して、ビデオデコーダ30は、第2のシンタックス要素によって示されるエレメンタリストリームを、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加することがあるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームをエレメンタリストリームリストへ追加しないことがある。
【0124】
図4は、本開示の技法による、トランスポートストリームを生成するデバイスの例示的な動作を示すフローチャートである。本開示のフローチャートは、動作の例として与えられる。本開示の技法による他の動作は、より多数の、少数の、または異なる活動を含むことがあり、または、異なる順序で、もしくは並列にそのような活動を実行することがある。
図4の例では、デバイスは、ソースデバイス12、またはビデオデータを処理するための別のタイプのデバイスであり得る。
図4の動作は、上で説明された第2の問題(すなわち、導出されたレイヤに対していくつかのシンタックス要素の値を決定できないという問題)に対する解決法を実施し得る。
【0125】
図4の例では、デバイスは、第1の記述子(たとえば、HEVC動作点記述子)を生成する(150)。第1の記述子は動作点の記述子である。エレメンタリストリームリスト(たとえば、OperationPointESList[i])は、動作点の一部であるトランスポートストリームのエレメンタリストリームのリストである。ストリームを受信または処理するデバイスは、エレメンタリストリームをエレメンタリストリームリストに追加することによって、エレメンタリストリームを生成し得る。さらに、デバイスは第2の記述子を生成する(152)。第2の記述子は、階層記述子または階層拡張記述子のうちの1つである。デバイスは、第1の記述子および第2の記述子をトランスポートストリームに含めることができる(154)。たとえば、デバイスは、第1の記述子および第2の記述子を表す一連のビットを、トランスポートストリームにおいて出力することができる。
【0126】
さらに、
図4の例では、第1の記述子を生成することの一部として、デバイスは、第1のシンタックス要素(たとえば、prepend_dependencies[i][j])を第1の記述子に含める(156)。加えて、第1の記述子を生成することの一部として、デバイスは、第2のシンタックス要素(たとえば、ES_reference[i][j])を第2の記述子に含める(158)。第2の記述子は、第2のシンタックス要素の値に等しい階層レイヤインデックス値(たとえば、hierarchy_layer_index)を有する。デバイスがシンタックス要素を記述子に含めるとき、デバイスは、シンタックス要素の値が記述子の一部であること、たとえばデータ構造の一部であることを示すような方法で、シンタックス要素の値をメモリに記憶し得る。
【0127】
図4の例では、第1のシンタックス要素の第1の値(たとえば、1)は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることを規定する。加えて、第1のシンタックス要素の第1の値は、第2の記述子の中の埋め込まれたレイヤインデックス(たとえば、hierarchy_embedded_layer_indexまたはhierarchy_ext_embedded_layer_index)によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることを規定する。第1のシンタックス要素の第2の値は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームは追加されるべきではないことを規定する。
【0128】
図5は、本開示の技法による、トランスポートストリームを受信するデバイスの例示的な動作を示すフローチャートである。
図5の例では、デバイスは、宛先デバイス14、MANE、またはビデオデータを処理するための別のタイプのデバイスであり得る。
図5の動作は、上で説明された第2の問題(すなわち、導出されたレイヤに対していくつかのシンタックス要素の値を決定できないという問題)に対する解決法を実施し得る。
【0129】
図5の例では、デバイスは、第1の記述子(たとえば、HEVC動作点記述子)、第2の記述子、および複数のエレメンタリストリームを含むトランスポートストリームを受信する(200)。第1の記述子は動作点の記述子である。第2の記述子は、階層記述子または階層拡張記述子のうちの1つである。いくつかの例では、入力インターフェース28はトランスポートストリームを受信する。
【0130】
さらに、デバイスは、第1の記述子の中の第1のシンタックス要素(たとえば、prepend_dependencies[i][j])を復号し得る(202)。言い換えると、デバイスは第1のシンタックス要素の値を決定し得る。シンタックス要素を復号する例示的な方法は、一連のビットからシンタックス要素を解析するステップ、エントロピー復号アルゴリズムを適用するステップ、またはシンタックス要素の値を別様に導出するステップを含み得る。加えて、デバイスは、第1の記述子の中の第2の異なるシンタックス要素(たとえば、ES_reference[i][j])を復号し得る(204)。言い換えると、デバイスは、たとえば第1の記述子のビットからの第2のシンタックス要素を解析することによって、第2のシンタックス要素の値を決定し得る。エレメンタリストリームリスト(たとえば、OperationPointESList[i])は、動作点の一部であるトランスポートストリームのエレメンタリストリームのリストである。第2の記述子は、第2のシンタックス要素の値に等しい階層レイヤインデックス値(たとえば、hierarchy_layer_index)を有する。
【0131】
図5の例では、第1のシンタックス要素の第1の値(たとえば、1)は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることを規定する。第2のシンタックス要素によって示されるエレメンタリストリームは、デバイスによって受信される複数のエレメンタリストリームのうちの1つであり得る。加えて、第1のシンタックス要素の第1の値は、第2の記述子の中の埋め込まれたレイヤインデックス(たとえば、hierarchy_embedded_layer_indexまたはhierarchy_ext_embedded_layer_index)によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることを規定する。第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームは、デバイスによって受信される複数のエレメンタリストリームのうちの1つであり得る。第1のシンタックス要素の第2の値(たとえば、0)は、第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームは追加されるべきではないことを規定する。
【0132】
したがって、
図5の例などのいくつかの事例では、デバイスは、第1のシンタックス要素が第2の値を有すると決定し得る(206)。第1のシンタックス要素が第2の値を有すると決定したことに応答して、デバイスは、第2のシンタックス要素によって示されるエレメンタリストリームを、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加することがあるが、第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームをエレメンタリストリームリストへ追加しない(208)。たとえば、デバイスは、エレメンタリストリームへの参照を、エレメンタリストリームがリストの中にあることを示すような方法でメモリの中のある位置に記憶することによって、エレメンタリストリームをリストに追加することができ、たとえば、エレメンタリストリームへの参照を、関係するリストまたはアレイに追加する。
【0133】
図5の例には示されていないが、デバイスは、動作点に対応しないレイヤに対するデータを廃棄し得る。たとえば、デバイスは、動作点に対応しないレイヤに対応するエレメンタリストリームのトランスポートパケットを廃棄し得る。デバイスは、別のデバイスまたはビデオデコーダ30などのビデオデコーダに、残りのデータ(たとえば、動作点のレイヤに対応するエレメンタリストリームのトランスポートパケット)を転送し得る。
【0134】
以下のテキストは、上で説明された態様を実施するためのいくつかの例示的な方法について説明する。実装形態の詳細が、DAM3への変更に関して説明される。これらの実装形態のテキストの変更は、タグ「<ins>」および「</ins>」によって囲まれるテキストが追加または修正され(たとえば、<ins>挿入または修正されるテキスト</ins>)、一方で、除去されるものがタグ「<dlt>」および「</dlt>」に囲まれる(たとえば、<dlt>削除されるテキスト</dlt>)。
【0135】
第1の例示的な実装形態の技法によれば、Table 1(表4)は、上で説明された第1の問題を解決するための第1の、第2の、および第3の例、ならびに上で説明された第2の問題を解決するための第2の例に対する、DAM3への詳細な修正について説明する。
【0137】
以下のテキストは、第1の例示的な実装形態の技法に従った、セマンティクスへの修正を示す。
num_ptl -この<dlt>8ビット</dlt> <ins>6ビット</ins>フィールドは、この記述子においてシグナリングされるプロファイル、ティア、およびレベルの構造の数を規定する。<ins>OperationPointESList[i]を、i番目のHEVC動作点の一部であるESのリストとする。</ins>
prepend_dependencies[i][j] - このフラグは、1に設定される場合、<ins>ES_reference[i][j]によって示されるESが、OperationPointESList[i]の中にまだ存在しないときに、OperationPointESList[i]へ追加されるものとすることと、</ins>階層記述子の中のシンタックス要素hierarchy_embedded_layer_indexに<ins>よって示される</ins><dlt>による</dlt>ES、またはHEVC階層拡張記述子の中のシンタックス要素hierarchy_ext_embedded_layer_index<ins>よって示される</ins><dlt>による</dlt>ESのすべてが、後続のシンタックス要素ES_reference[i][j]によって規定される階層レイヤインデックス値とともに、<ins>OperationPointESList[i]の中にまだ存在しないときに、関連するhierarchy_embedded_layer_indexまたはhierarchy_ext_embedded_layer_indexの値の昇順で、</ins>ES_reference[i][j]によってシグナリングされるESの<ins>直</ins>前に、<ins>OperationPointLayerList[i]</ins><dlt>ターゲット動作点のためのエレメンタリストリーム</dlt>へ追加されるものとすることとを<ins>規定する</ins><dlt>示す</dlt>。prepend_dependencies[i][j]の値が0に等しいとき、ES_reference[i][j]によって示されるESだけが、OperationPointESList[i]の中にまだ存在しないときに、OperationPointESList[i]へ追加されるものとする。ES_reference[i][m]によって示されるESは、mがnより小さいとき、ES_reference[i][n]を用いて示されるESよりも前に(すなわち、より小さいインデックスを伴って)OperationPointESList[i]へと置かれるものとする。</ins>
<ins>注意:OperationPointESList[i]におけるESの順序は、hierarchy_layer_index値の昇順でなければならない。</ins>
Es_reference[i][j] -この6ビットフィールドは、エレメンタリストリームを特定する、階層記述子またはHEVC階層拡張記述子の中に存在する階層レイヤインデックス値を示す。<ins>nに等しくないmに対するES_reference[i][m]およびES_reference[i][n]の値は、同じではないものとする。</ins>
<ins>NumESinOP[i]を、i番目のHEVC動作点の一部であるすべてのESがOperationPointESList[i]に含められた後の(すなわち、ES_reference[i][ES_count[i]-1]を解析した後の)OperationPointESList[i]の中のESの数とする。</ins>
<ins>necessary_layer_flag[i][k] - このフラグは、「1」に設定されるとき、OperationPointESList[i]の中のk番目のESが、i番目の動作点の、23008-2において定義されるような必要なレイヤであることを示す。0に等しいこのフラグは、OperationPointESList[i]の中のk番目のESが、i番目の動作点の、23008-2において定義されるような必要なレイヤではないことを示す。</ins>
output_layer_flag[i]<ins>[k]</ins> - このフラグは、「1」に設定されるとき、<ins>OperationPointESList[i]の中のk番目のES</ins><dlt>この記述子において定義されるi番目のHEVC動作点のレイヤ</dlt>が出力レイヤであることを示す。そうではなく、「0」に設定されるとき、このフラグは、<ins>OperationPointESList[i]の中のk番目のES</ins><dlt>この記述子において定義されるi番目のHEVC動作点のレイヤ</dlt>が出力レイヤではないことを示す。<ins>necessary_layer_flag[i][k]の値が0に等しいとき、output_layer_flag[i][k]の値は無視されるものとする。</ins>
ptl_ref_idx[i][k] - <ins>OperationPointESList[i]の中のk番目のES</ins><dlt>この記述子において定義されるi番目のHEVC動作点のレイヤ</dlt>に適用される、profile_tier_level_arrayのprofile_ tier_level_info[x]要素に対するインデックスxを示す、<dlt>8ビット</dlt><ins>6ビット</ins>フィールド。<ins>necessary_layer_flag[i][k]の値が0に等しいとき、ptl_ref_idx[i][k]の値は無視されるものとする。</ins>
【0138】
図6は、本開示の例示的な技法による、トランスポートストリームを生成するためのデバイスの例示的な動作を示すフローチャートである。たとえば、
図6の動作は、上で論じられた本開示の第1の例示的な実装形態の技法(すなわち、Table 1(表4)に関して上で説明された技法)に従ったものであり得る。
図6の動作は、ソースデバイス12または別のデバイスによって実行され得る。
図6の動作は、
図4の動作の拡大されたバージョンであり得る。
【0139】
図6の例では、デバイスは第2の記述子のセットを生成し得る(250)。第2の記述子のセットの各々のそれぞれの第2の記述子は、階層記述子または階層拡張記述子のうちの1つであり得る。第2の記述子のセットは、
図4に関して説明された「第2の記述子」を含み得る。
【0140】
加えて、デバイスは、第1の記述子(たとえば、HEVC動作点記述子)を生成し得る(252)。第1の記述子を生成することの一部として、デバイスは、エレメンタリストリームカウントシンタックス要素(たとえば、ES_count)を第1の記述子に含め得る(254)。エレメンタリストリームカウントシンタックス要素は、エレメンタリストリームの数を示し得る。
【0141】
さらに、第1の記述子を生成することの一部として、デバイスは、第1のシンタックス要素(たとえば、prepend_dependencies[i][j])のセットを第1の記述子に含め得る(256)。加えて、第1の記述子を生成することの一部として、デバイスは、第2のシンタックス要素(たとえば、ES_reference[i][j])のセットを第1の記述子に含め得る(258)。第1のシンタックス要素のセットの中の第1のシンタックス要素の数および第2のシンタックス要素の中の第2のシンタックス要素の数は、エレメンタリストリームカウントシンタックス要素の値に等しい。第1のシンタックス要素のセットは、
図4に関して言及された「第1のシンタックス要素」を含み得る。第2のシンタックス要素のセットは、
図4に関して言及された「第2のシンタックス要素」を含み得る。
【0142】
いくつかの例では、第2のシンタックス要素のセットは、第2のシンタックス要素のセットのうちの2つの第2のシンタックス要素が同じ値を有しないように制約される。言い換えると、上のDAM3への変更において示されたように、nに等しくないmに対するES_reference[i][m]およびES_reference[i][n]の値は、同じではないものとする。
【0143】
第1のシンタックス要素のセットの各々のそれぞれの第1のシンタックス要素に対して、第2のシンタックス要素のセットのそれぞれの第2のシンタックス要素は、それぞれの第1のシンタックス要素に対応する。たとえば、iおよびjの同じ値を有する第1のシンタックス要素および第2のシンタックス要素は、互いに対応する。第2の記述子のセットのそれぞれの第2の記述子は、それぞれの第2のシンタックス要素の値に等しい階層レイヤインデックス値(たとえば、hierarchy_layer_id)を有する。
【0144】
図6の例では、それぞれの第1のシンタックス要素の第1の値(たとえば、1)は、それぞれの第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることと、それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、動作点のエレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることとを規定する。それぞれの第1のシンタックス要素の第2の値(たとえば、0)は、それぞれの第2のシンタックス要素によって示されるそれぞれのエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであるが、それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるそれぞれのエレメンタリストリームは追加されるべきではないことを規定する。
【0145】
さらに、
図6の例では、デバイスは、必要レイヤフラグシンタックス要素(たとえば、necessary_layer_flag[i][k])のセットを第1の記述子に含め得る(260)。必要レイヤフラグシンタックス要素のセットの中の各々のそれぞれのシンタックス要素は、エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し得る。必要レイヤフラグシンタックス要素のセットの各々のそれぞれのシンタックス要素は、必要レイヤフラグシンタックス要素のセットのそれぞれのシンタックス要素に対応するエレメンタリストリームが必要なレイヤであるかどうかを示す。必要なレイヤは、出力レイヤセットと関連付けられる出力動作点の中のレイヤとして定義されることがあり、レイヤは、出力レイヤセットの出力レイヤ、または出力レイヤセットの出力レイヤの参照レイヤである。
【0146】
デバイスは、出力レイヤフラグシンタックス要素(たとえば、output_layer_flag[i][k])のセットを第1の記述子に含め得る(262)。出力シンタックス要素のセットの中の各々のそれぞれのシンタックス要素は、エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し得る。出力レイヤフラグシンタックス要素のセットの各々のそれぞれのシンタックス要素は、出力レイヤフラグシンタックス要素のセットのそれぞれのシンタックス要素に対応するエレメンタリストリームが出力レイヤであるかどうかを示し得る。
【0147】
さらに、デバイスは、PTL参照インデックスシンタックス要素(たとえば、ptl_ref_idx[i][k])のセットを第1の記述子に含め得る(264)。PTL参照インデックスシンタックス要素のセットの中の各々のそれぞれのシンタックス要素は、エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し得る。PTL参照インデックスシンタックス要素のセットの各々のそれぞれのシンタックス要素は、PTL参照インデックスシンタックス要素のセットのそれぞれのシンタックス要素に対応するエレメンタリストリームのプロファイル、ティア、またはレベルを決定するためのインデックスを示し得る。
【0148】
図6の例では、デバイスは、第1の記述子および第2の記述子をトランスポートストリームに含めることができる(266)。たとえば、デバイスは、第1の記述子および第2の記述子を含むトランスポートパケットのセットを生成することができる。トランスポートストリームはさらに、1つまたは複数のエレメンタリストリームを含み得る。他の例では、
図6の1つまたは複数の活動が省略され得る。
【0149】
図7は、開示の例示的な技法による、トランスポートストリームを受信するデバイスの例示的な動作を示すフローチャートである。たとえば、
図7の動作は、上で論じられた第1の例示的な実装形態の技法と調和するものであり得る。
図7の動作は、
図5の動作の拡大されたバージョンであり得る。
【0150】
図7の例では、デバイスは、第1の記述子(たとえば、HEVC動作点記述子)、第2の記述子のセット、および複数のエレメンタリストリームを含むトランスポートストリームを受信する(300)。第2の記述子のセットは、
図5に関して上で言及された「第2の記述子」を含み得る。第2の記述子のセットの各々のそれぞれの第2の記述子は、階層記述子または階層拡張記述子のうちの1つであり得る。
【0151】
加えて、
図7の例では、デバイスは、第1の記述子の中のエレメンタリストリームカウントシンタックス要素(たとえば、「第3のシンタックス要素」と特許請求の範囲において言及され得る、ES_count)を復号し得る。エレメンタリストリームカウントシンタックス要素は、エレメンタリストリームの数を示す。
【0152】
さらに、
図7の例では、デバイスは、第1の記述子の中の第1のシンタックス要素(たとえば、prepend_dependencies[i][j])のセットを復号し得る(302)。さらに、
図7の例では、デバイスは、第1の記述子の中の第2のシンタックス要素(たとえば、ES_reference[i][j])のセットを復号し得る(304)。第1のシンタックス要素のセットの中の第1のシンタックス要素の数および第2のシンタックス要素のセットの中の第2のシンタックス要素の数は、第3のシンタックス要素の値に等しい。第1のシンタックス要素のセットは、
図5に関して言及された「第1のシンタックス要素」を含み得る。第2のシンタックス要素のセットは、
図5に関して言及された「第2のシンタックス要素」を含み得る。
【0153】
いくつかの例では、第2のシンタックス要素のセットは、第2のシンタックス要素のセットのうちの2つの第2のシンタックス要素が同じ値を有しないように制約される。言い換えると、上のDAM3への変更において示されたように、nに等しくないmに対するES_reference[i][m]およびES_reference[i][n]の値は、同じではないものとする。
【0154】
第1のシンタックス要素のセットの各々のそれぞれの第1のシンタックス要素に対して、第2のシンタックス要素のセットのそれぞれの第2のシンタックス要素は、それぞれの第1のシンタックス要素に対応する。たとえば、iおよびjの同じ値を有する第1のシンタックス要素および第2のシンタックス要素は、互いに対応する。第2の記述子のセットのそれぞれの第2の記述子は、それぞれの第2のシンタックス要素の値に等しい階層レイヤインデックス値(たとえば、hierarchy_layer_id)を有する。
【0155】
図7の例では、それぞれの第1のシンタックス要素の第1の値(たとえば、1)は、それぞれの第2のシンタックス要素によって示されるエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることと、それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームが、動作点のエレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであることとを規定する。それぞれの第2のシンタックス要素によって示されるエレメンタリストリームは、複数のエレメンタリストリームのうちの1つであり得る。それぞれの第1のシンタックス要素の第2の値(たとえば、0)は、それぞれの第2のシンタックス要素によって示されるそれぞれのエレメンタリストリームが、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加されるべきであるが、それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるそれぞれのエレメンタリストリームは追加されるべきではないことを規定する。それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるエレメンタリストリームは、複数のエレメンタリストリームのうちの1つであり得る。
【0156】
第1のシンタックス要素のセットの各々のそれぞれの第1のシンタックス要素に対して、1つまたは複数の埋め込まれたレイヤインデックスのセットがそれぞれの第2の記述子に含まれる。さらに、
図7の例では、それぞれの第1のシンタックス要素が第1の値を有することに基づいて、デバイスは、埋め込まれたレイヤインデックスのセットの値の昇順で、それぞれの第2のシンタックス要素によって示されるエレメンタリストリームの直前に、エレメンタリストリームリストへの埋め込まれたレイヤインデックスのセットによって示されるエレメンタリストリームを追加することができる(308)。言い換えると、それぞれの第1のシンタックス要素が第2の値を有すると決定したことに応答して、デバイスは、それぞれの第2のシンタックス要素によって示されるそれぞれのエレメンタリストリームを、エレメンタリストリームリストの中に存在しないときに、エレメンタリストリームリストへ追加することがあるが、それぞれの第2の記述子の中の埋め込まれたレイヤインデックスによって示されるそれぞれのエレメンタリストリームをエレメンタリストリームリストへ追加しない。
【0157】
図7の例では、デバイスは、必要レイヤフラグシンタックス要素(たとえば、necessary_layer_flag[i][k])のセットを第1の記述子に復号し得る(310)。必要レイヤフラグシンタックス要素のセットの中の各々のそれぞれのシンタックス要素は、エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し得る。必要レイヤフラグシンタックス要素のセットの各々のそれぞれのシンタックス要素は、必要レイヤフラグシンタックス要素のセットのそれぞれのシンタックス要素に対応するエレメンタリストリームが必要なレイヤであるかどうかを示し得る。上で説明されたように、必要なレイヤは、出力レイヤセットと関連付けられる出力動作点の中のレイヤとして定義され、レイヤは、出力レイヤセットの出力レイヤ、または出力レイヤセットの出力レイヤの参照レイヤである。
【0158】
さらに、
図7の例では、デバイスは、第1の記述子の中の出力レイヤフラグシンタックス要素(たとえば、output_layer_flag[i][k])のセットを復号し得る(312)。出力レイヤフラグシンタックス要素のセットの中の各々のそれぞれのシンタックス要素は、エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し得る。出力レイヤフラグシンタックス要素のセットの各々のそれぞれのシンタックス要素は、出力レイヤフラグシンタックス要素のセットのそれぞれのシンタックス要素に対応するエレメンタリストリームが出力レイヤであるかどうかを示す。
【0159】
加えて、デバイスは、第1の記述子の中のPTL参照インデックスシンタックス要素のセットを復号し得る(314)。PTL参照インデックスシンタックス要素のセットの中の各々のそれぞれのシンタックス要素は、エレメンタリストリームリストの中のそれぞれのエレメンタリストリームに対応し得る。PTL参照インデックスシンタックス要素のセットの各々のそれぞれのシンタックス要素は、PTL参照インデックスシンタックス要素のセットのそれぞれのシンタックス要素に対応するエレメンタリストリームのプロファイル、ティア、またはレベルを決定するためのインデックスを示し得る。
【0160】
図7の例では、デバイスは、動作点の一部ではないレイヤに対するデータを廃棄し得る(316)。言い換えると、デバイスは、動作点に対応しないレイヤに対するデータを廃棄し得る。他の例では、
図7の1つまたは複数の活動が省略され得る。
【0161】
第2の例示的な実装形態の技法によれば、Table 2(表5)およびそのシンタックス要素は、上で説明された第2の問題を解決するための第3の例示的な技法に対する、DAM3への詳細な変更について説明する。
【0163】
以下のテキストは、第2の例示的な実装形態の技法に従った、セマンティクスへの修正を示す。
<ins>es_present_flag[i][j]は、ES_reference[i][j]およびprepend_dependencies[i][j]がi番目の動作点のj番目のレイヤに対して存在するかどうかを規定する。es_present_flag[i][j]が0に等しいとき、ES_reference[i][j]の値が、1に等しいes_present_flagの値および1に等しいprepend_dependenciesの値を有するi番目の動作点の中の以前にシグナリングされたレイヤの階層記述子または階層拡張記述子の中の情報に基づいて導出される。es_present_flag[i][j]が0に等しいとき、value of prepend_dependencies[i][j]の値は0であるものとして導出される。es_present_flag[i][0]の値は0に等しくないものとする。</ins>
prepend_dependencies[i][j] - このフラグは、1に設定される場合、階層記述子の中のシンタックス要素hierarchy_embedded_layer_indexによってシグナリングされるES、または、HEVC階層拡張記述子の中のシンタックス要素hierarchy_ext_embedded_layer_indexによってシグナリングされるESのすべてが、後続のシンタックス要素ES_reference[i][j]によって規定される階層レイヤインデックス値とともに、ES_reference[i][j]によってシグナリングされるESの<dlt>前</dlt><ins>後</ins>に、ターゲット動作点のためのエレメンタリストリームのリストへ追加されるものとする。
<ins>注意:ターゲット動作点のためのエレメンタリストリームのリストが埋められた後で、そのリストは、hierarchy_layer_index valueの昇順で並べ替えられるものとする。</ins>
必要なレイヤの問題、およびHEVC動作のためのESのリストにESが重複して含まれる可能性に対する解決法は、この代替形態にも適用され得ることに留意されたい。
【0164】
第3の例示的な実装形態の技法によれば、Table 3(表6)およびそのシンタックス要素は、上で説明された第2の問題を解決するための第4の例示的な技法に対する、DAM3への詳細な変更について説明する。
【0166】
以下のテキストは、第3の例示的な実装形態の技法に従った、セマンティクスへの修正を示す。
prepend_dependencies[i][j] -このフラグは、1に設定される場合、階層記述子の中のシンタックス要素hierarchy_embedded_layer_indexによってシグナリングされるES、または、HEVC階層拡張記述子の中のシンタックス要素hierarchy_ext_embedded_layer_indexによってシグナリングされるESのすべてが、後続のシンタックス要素ES_reference[i][j]によって規定される階層レイヤインデックス値とともに、ES_reference[i][j]によってシグナリングされるESの前に、ターゲット動作点のためのエレメンタリストリームのリストへ追加されるものとする。
<ins>prepend_dependencies[i][j]が1に等しいとき、階層記述子の中のシンタックス要素hierarchy_embedded_layer_indexによってシグナリングされる各エレメンタリストリームesAに対して、またはHEVC階層拡張記述子の中のシンタックス要素hierarchy_ext_embedded_layer_indexによってシグナリングされるエレメンタリストリームのすべてに対して、階層レイヤインデックス値が後続のシンタックス要素ES_reference[i][j]によって規定され、以下のことが当てはまる。
・default_output_ref_layer[i]が0に等しい場合、esAと関連付けられるレイヤはi番目のHEVC動作点の出力レイヤではなく、それ以外の場合、esAと関連付けられるレイヤはi番目のHEVC動作点の出力レイヤである。
・0からi-1の間のインデックスを有する、esAも含んでいた少なくとも1つのHEVC動作点opXがあるものとする。opXの候補が2つ以上ある場合、最高のインデックスを有するものが使用されるものとする。i番目のHEVC動作点の中のesAに適用されるprofile_tier_level_arrayのprofile_tier_level_info[x]要素のインデックスは、opXの中のesAに適用されるprofile_tier_level_arrayのprofile_tier_level_info[x]要素のインデックスに等しく設定される。</ins>
【0167】
さらに、不要に複雑にすることを避けるために、prepend_dependenciesは、レイヤレベルではなく動作点レベルにおいてシグナリングされ得る。必要なレイヤの問題、およびHEVC動作のためのESのリストにESが重複して含まれる可能性に対する解決法は、この代替形態にも適用され得る。
prepend_dependencies[i] - このフラグは、1に設定される場合、階層記述子の中のシンタックス要素hierarchy_embedded_layer_indexによってシグナリングされるES、または、HEVC階層拡張記述子の中のシンタックス要素hierarchy_ext_embedded_layer_indexによってシグナリングされるESのすべてが、後続のシンタックス要素ES_reference[i][j]によって規定される階層レイヤインデックス値とともに、<ins>i番目の動作点のES_reference[i][j]によって示される各エレメンタリストリームに対して</ins>ES_reference[i][j]によってシグナリングされるESの前に、ターゲット動作点のためのエレメンタリストリームのリストへ追加されるものとする。
<ins>prepend_dependencies[i]が1に等しいとき、階層記述子の中のシンタックス要素hierarchy_embedded_layer_indexによってシグナリングされる各エレメンタリストリームesAに対して、またはHEVC階層拡張記述子の中のシンタックス要素hierarchy_ext_embedded_layer_indexによってシグナリングされるエレメンタリストリームのすべてに対して、階層レイヤインデックス値が後続のシンタックス要素ES_reference[i][j]によって規定され、以下のことが当てはまる。
default_output_ref_layer[i]が0に等しい場合、esAと関連付けられるレイヤはi番目のHEVC動作点の出力レイヤではなく、それ以外の場合、esAと関連付けられるレイヤはi番目のHEVC動作点の出力レイヤである。
0からi-1の間のインデックスを有する、esAも含んでいた少なくとも1つのHEVC動作点opXがあるものとする。opXの候補が2つ以上ある場合、最高のインデックスを有するものが使用されるものとする。i番目のHEVC動作点の中のesAに適用されるprofile_tier_level_arrayのprofile_tier_level_info[x]要素のインデックスは、opXの中のesAに適用されるprofile_tier_level_arrayのprofile_tier_level_info[x]要素のインデックスに等しく設定される。</ins>
【0168】
上で説明されたDAM3における問題に加えて、レイヤードHEVCビットストリームが1つまたは複数の補助レイヤを含むとき、階層記述子または階層拡張記述子のいずれかにおいて補助エンハンスメントを記述するための機構がない。補助ピクチャは、主ピクチャの復号プロセスに対して規範的な影響がなく、AuxId[nuh_layer_id]が0より大きくなるようなnuh_layer_idを有するピクチャである。補助レイヤは、補助ピクチャを含むレイヤである。この問題を解決するために、Table 2-50(表7)に補助階層タイプに対する記述を、Table 2-103(表8)に補助エンハンスメントに対する記述を含めることが提案される。
【0169】
補助レイヤの処理のために、レイヤードHEVCは、ビットストリームにおける補助レイヤの存在をサポートする。補助レイヤは、たとえば、アルファチャネルまたは深度表現を含み得る。ISO/IEC 13818-1の現在のテキストである201x/DAM 3 Carriage of Layered HEVCは、補助レイヤを記述するための機構を有しない。SHVC/MV-HEVC補助レイヤを、特定のストリームタイプ(たとえば0x1E、すなわちISO/IEC 23002-3において定義されるような補助ビデオストリーム)を有するエレメンタリストリームの中で搬送することは十分な解決法ではなく、それは、このエレメンタリストリームおよび他のエレメンタリストリーム、特にプログラムにおいて補助レイヤが関連付けられるストリームの階層を記述するための方法が依然としてないからである。加えて、現在のL-HEVCバッファモデルは、0x27〜0x2A以外のストリームタイプを扱わないので、この解決法(特定のストリームタイプを使用すること)は、バッファモデルに対してさらなる修正を必要とし得る。
【0170】
上の問題を解決するために、本開示は、以下で、Table 2-50(表7)に補助階層タイプを含めること、およびTable 2-103undeciens(表8)に補助エンハンスメントを含めることについて説明する。この修正により、補助レイヤに特定のストリームタイプを割り当てるさらなる必要はなく、バッファモードを更新するさらなる必要はなく、補助レイヤは、0x27〜0x2Aの範囲の中のストリームタイプを有するエレメンタリストリームにおいて搬送されることが可能である。
【0171】
Table 2-50(表7)への提案されるテキストの変更は、次の通りである。
Table 2-50(表7)において、値8<ins>、10</ins>および15に対する記述を次のように置き換える。
【0173】
Table 2-103undeciens(表8)への提案されるテキストの変更は、次の通りである。
【0175】
以下の段落は、本開示の追加の例を提供する。
【0176】
いくつかの例では、ビデオデコーダ30は、動作点のための第1のシンタックス要素(たとえば、prepend_dependencies[i][j])を受信し、シンタックス要素の第1の値が、第2のシンタックス要素(たとえば、ES_reference[i][j])によって示されるエレメンタリストリームが、動作点リスト(たとえば、OperationPointESList[i])の中にまだ存在しないときには、動作点リストへ追加されるべきであることを規定し、シンタックス要素の第2の値が、第2のシンタックス要素によって示されるエレメンタリストリームだけが、動作点リストの中に存在しないときには、動作点リストへ追加されるべきであることを規定し、受信された第1のシンタックス要素に基づいて動作点を復号するように構成され得る。
【0177】
いくつかの例では、ビデオデコーダ30は、第1のループを実行して、動作点のエレメンタリストリームを特定する階層記述子またはHEVC階層拡張記述子の中に存在する階層レイヤインデックスを示す第1のシンタックス要素(たとえば、ES_reference[i][j])の複数のインスタンスを復号し、ならびに/または、第1のループの実行の一部として、どの構造からのエレメンタリストリームが動作点のためのエレメンタリストリームのリストに含められるべきかを示す第2のシンタックス要素(たとえば、prepend_dependencies[i][j])の複数のインスタンスを復号して、第2のループを実行し、動作点のどのエレメンタリストリームが出力レイヤであるかを示す第3のシンタックス要素(たとえば、output_layer_flag[i][k])の複数のインスタンスを復号し、および/もしくは、動作点のエレメンタリストリームのプロファイル、ティア、もしくはレベルを決定するためのインデックスを示す第4のシンタックス要素(たとえば、ptl_ref_idx[i][k])の複数のインスタンスを復号し、第1の、第2の、第3の、および第4のシンタックス要素のうちの1つまたは複数に基づいて動作点を復号するように構成され得る。
【0178】
いくつかの例では、ビデオエンコーダ20または中間デバイス(たとえば、MANE)は、本開示において説明される例示的な技法を実施するように構成され得る。たとえば、ビデオエンコーダ20または中間デバイス(または2つの組合せ)は、動作点のエレメンタリストリームまたはレイヤを決定し、動作点の中の各エレメンタリストリームまたはレイヤに対するフラグ(たとえば、以下で説明されるnecessary_layer_flag[i][k])を決定し、ここでフラグはそれぞれのエレメンタリストリームまたはレイヤが必要なストリームまたはレイヤであるかどうかを示し、エレメンタリストリームおよびそれぞれのフラグを含むビットストリームを生成するように構成され得る。
【0179】
一例では、ビデオエンコーダ20または中間デバイス(または2つの組合せ)は、動作点のための第1のシンタックス要素(たとえば、prepend_dependencies[i][j])を決定し、シンタックス要素の第1の値が、第2のシンタックス要素(たとえば、ES_reference[i][j])によって示されるエレメンタリストリームが、動作点リスト(たとえば、OperationPointESList[i])の中にまだ存在しないときには、動作点リストへ追加されるべきであることを規定し、シンタックス要素の第2の値が、第2のシンタックス要素によって示されるエレメンタリストリームだけが、動作点リストの中に存在しないときには、動作点リストへ追加されるべきであることを規定し、決定された第1のシンタックス要素を含む動作点の情報を含むビットストリームを生成するように構成され得る。
【0180】
一例では、ビデオエンコーダ20または中間デバイス(または2つの組合せ)は、第1のループを実行して、動作点のエレメンタリストリームを特定する階層記述子またはHEVC階層拡張記述子の中に存在する階層レイヤインデックス値を示す第1のシンタックス要素(たとえば、ES_reference[i][j])の複数のインスタンスを決定し、ならびに/または、第1のループの実行の一部として、どの構造からのエレメンタリストリームが動作点のためのエレメンタリストリームのリストに含められるべきかを示す第2のシンタックス要素(たとえば、prepend_dependencies[i][j])の複数のインスタンスを決定して、第2のループを実行し、動作点のどのエレメンタリストリームが出力レイヤであるかを示す第3のシンタックス要素(たとえば、output_layer_flag[i][k])の複数のインスタンスを決定し、および/もしくは、動作点のエレメンタリストリームのプロファイル、ティア、もしくはレベルを決定するためのインデックスを示す第4のシンタックス要素(たとえば、ptl_ref_idx[i][k])の複数のインスタンスを決定し、動作点のための第1の、第2の、第3の、および第4のシンタックス要素のうちの1つまたは複数を含むビットストリームを生成するように構成され得る。
【0181】
例に応じて、本明細書で説明される技法のいずれかのいくつかの行為またはイベントは異なる順序で実行されてもよく、一緒に追加され、統合され、または省略されてもよい(たとえば、説明される行為またはイベントのすべてが技法の実施のために必要とは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、順次的にではなく、たとえばマルチスレッド処理、割り込み処理またはマルチプロセッサを通じて同時に実行されることがある。
【0182】
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信されることがあり、かつハードウェアに基づく処理ユニットによって実行されることがある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明される技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品がコンピュータ可読媒体を含み得る。
【0183】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続も厳密にはコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形記憶媒体を指すことを理解されたい。ディスク(disk)およびディスク(disc)は、本明細書で使用するとき、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【0184】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくは離散論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュールの中で与えられることがあり、あるいは複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【0185】
本開示の技法は、ワイヤレス送受話器、集積回路(IC)、また1組のIC(たとえば、チップセット)を含む、様々なデバイスもしくは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的側面を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて結合されてもよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明されたような1つもしくは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供され得る。
【0186】
様々な例が説明されてきた。これらの例および他の例は以下の特許請求の範囲内に入る。