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

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

▶ フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ.の特許一覧

<>
  • 特開-効率的なサブピクチャ抽出 図1
  • 特開-効率的なサブピクチャ抽出 図2
  • 特開-効率的なサブピクチャ抽出 図3
  • 特開-効率的なサブピクチャ抽出 図4
  • 特開-効率的なサブピクチャ抽出 図5
  • 特開-効率的なサブピクチャ抽出 図6
  • 特開-効率的なサブピクチャ抽出 図7
  • 特開-効率的なサブピクチャ抽出 図8
  • 特開-効率的なサブピクチャ抽出 図9
  • 特開-効率的なサブピクチャ抽出 図10
  • 特開-効率的なサブピクチャ抽出 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096935
(43)【公開日】2024-07-17
(54)【発明の名称】効率的なサブピクチャ抽出
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240709BHJP
【FI】
H04N19/70
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2024066754
(22)【出願日】2024-04-17
(62)【分割の表示】P 2023011905の分割
【原出願日】2019-01-21
(31)【優先権主張番号】18153516.2
(32)【優先日】2018-01-25
(33)【優先権主張国・地域又は機関】EP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
(71)【出願人】
【識別番号】500242786
【氏名又は名称】フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ.
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】ローベルト・スクピン
(72)【発明者】
【氏名】コルネリウス・ヘルゲ
(72)【発明者】
【氏名】ヴァーレリー・ゲオルク
(72)【発明者】
【氏名】トーマス・シエル
(72)【発明者】
【氏名】ヤゴ・サンチェス・デ・ラ・フエンテ
(72)【発明者】
【氏名】カルステン・ズーリング
(72)【発明者】
【氏名】トーマス・ヴィーガント
(57)【要約】      (修正有)
【課題】効率的なサブピクチャ抽出の概念を提供する符号化方法及びエンコーダ並びに復号法及びデコーダを提供する。
【解決手段】ビデオコーディング方法は、コーディング経路22がその開始位置が位置するセグメント30の横断を開始するピクチャオンセット位置24に対して、そこから先でそのピクチャ18が、コーディング経路に沿って、それぞれのスライス26に符号化される開始位置40を示す開始位置情報42を各スライスに提供することによって、サブピクチャ抽出プロセス14の複雑さが低減される。代替または追加として、サブピクチャ抽出プロセスは、マルチレイヤデータストリームの中からの1つのレイヤを選ぶことと同様に処理される。
【選択図】図1
【特許請求の範囲】
【請求項1】
ピクチャ(18)をスライス(28)およびセグメント(30)に区分することと、
前記スライス(28)のそれぞれのスライス(26)に対応する開始位置情報(42)を含むスライスヘッダ(34)を提供することであって、前記開始位置情報(42)は、前記セグメント(30)のうちの1つのセグメント(30)のセグメントオンセット位置(44)に対する前記スライス(26)の開始位置(40)を示す、提供することと、
前記ピクチャ(18)の開始から測定された絶対アドレスを決定することであって、該決定することは、前記開始位置(40)および前記セグメントオンセット位置(44)に対応する和を実行することを含む、決定することと、
前記セグメントオンセット位置(44)、前記スライスヘッダ(34)、および前記それぞれのスライス(26)をデータストリーム(10)に符号化することと、を含む、符号化方法。
【請求項2】
前記ピクチャ(18)は、符号化相互依存せずに前記セグメント(30)に符号化される、請求項1に記載の方法。
【請求項3】
前記セグメント(30)は、1つまたは複数のタイルを含む、請求項1に記載の方法。
【請求項4】
前記セグメントオンセット位置(44)は、パラメータセット(36)によって示される、請求項1に記載の方法。
【請求項5】
請求項1~4のいずれか一項に記載の方法を実施するための命令を実行するプロセッサを備える、エンコーダ(16)。
【請求項6】
スライス(28)およびセグメント(30)に区分されるピクチャ(18)を、データストリーム(10)を介して受信することと、
前記セグメント(30)のうちの1つのセグメント(30)のセグメントオンセット位置(44)と、前記スライス(28)のそれぞれのスライス(26)に対応する開始位置情報(42)を含むスライスヘッダ(34)とを、前記データストリーム(10)から復号することと、
前記セグメントオンセット位置(44)に対する前記スライス(26)の開始位置(40)を、前記開始位置情報(42)を使用して位置特定することと、
前記ピクチャ(18)の開始から測定された絶対アドレスを決定することであって、該決定することは、前記開始位置(40)および前記セグメントオンセット位置(44)に対応する和を実行することを含む、決定することと、
を含む、復号方法。
【請求項7】
前記ピクチャ(18)は、符号化相互依存せずに前記セグメント(30)に符号化される、請求項6に記載の方法。
【請求項8】
前記セグメント(30)は、1つまたは複数のタイルを含む、請求項6に記載の方法。
【請求項9】
前記セグメントオンセット位置(44)は、パラメータセット(36)によって示される、請求項6に記載の方法。
【請求項10】
請求項6~9のいずれか一項に記載の方法を実施するための命令を実行するプロセッサを備える、デコーダ(38)。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、効率的なサブピクチャ抽出の概念に関する。
【背景技術】
【0002】
サブピクチャ抽出は、ビデオピクチャが符号化されているデータストリームが、再符号化の必要なしに、サブピクチャエリアに合わせて調整されるプロセスである。HEVC DAM3 MCTS抽出は、たとえば、互いに独立してコーディングされるタイルへとピクチャを絶えず分割し、動き補償予測すらタイルセット境界を越えないように制限されたタイルセットにそれらのタイルをグループ化することによって、たとえば動き補償予測および残差コーディングに関する限り、いかなる再符号化も必要とせずに、たとえば、元のフルピクチャデータストリームからサブピクチャ特有のデータストリームを抽出することを可能にする。このMCTS抽出は、しかしながら、運ばれるスライスヘッダのスライスセグメントアドレスを調整するために、スライスデータを運ぶ各NALユニットの調整を必要とする。
【0003】
したがって、サブピクチャ抽出プロセスが知られているが、必要とされるタスクの複雑さを低減させる概念が手元にあると好都合であろう。
【発明の概要】
【発明が解決しようとする課題】
【0004】
サブピクチャ抽出の複雑さを低減させる概念に従って、データストリーム、デコーダおよび/またはエンコーダを提供することが本発明の目的である。
【課題を解決するための手段】
【0005】
この目的は、本出願の独立請求項の主題によって達成される。
【0006】
本出願の第1の態様によれば、コーディング経路がその開始位置が位置するセグメントの横断を開始するオンセット位置に対して、そこから先でそのピクチャが、コーディング経路に沿って、それぞれのスライスに符号化される開始位置を示す開始地点情報を各スライスに提供することによって、サブピクチャ抽出の複雑さが低減される。ピクチャは、コーディング経路によってセグメント単位で連続的に横断されるセグメントに細分化され、各スライスは、セグメントの1つの断片が、または1つまたは複数のセグメントが完全に符号化されており、ピクチャは、符号化相互依存せずにセグメントに符号化される。ピクチャは、ピクチャが区分化されるスライス単位でコーディング経路に沿ってデータストリームにコーディングされる。加えて、各スライスは、開始位置が位置するセグメントを示すセグメント情報を含む。したがって、開始位置情報およびセグメント情報は共に、それぞれのスライスの開始位置がどのセグメント内に、およびこのセグメントのどこに位置するかを判定することを可能にする。符号化相互依存せずにセグメントが符号化されることにより、別のセグメントの復号可能性に影響を及ぼさずに、1個のセグメントに関する1個または複数のスライスを除去することが可能である。また、ピクチャのセグメントが、そのセグメントをシャッフルすることもしくは再配列することおよび/またはピクチャのセグメントのうちのいくつかを廃棄することによって、新しいサブピクチャをコンパイルするために使用される場合でさえ、サブピクチャを形成するセグメントを何も符号化していないスライスを廃棄し、依然として正しいセグメントを参照する、廃棄されていないスライスを採用することによって、元のデータストリームに基づいて、それぞれのサブピクチャ特有のデータストリームを形成し、相対位置指示により、それぞれのセグメント内のそれぞれのスライスの開始位置の正しい位置を示すことが可能である。したがって、本出願の第1の態様によれば、データストリームは、サブピクチャデータストリーム内のピクチャのセグメントの再配列および/またはいくつかのセグメントの除外にかかわらず、開始位置情報およびセグメント情報を訂正する必要なしに、容易なサブピクチャ抽出を可能にする。言い換えれば、開始位置情報を訂正する必要なく、残りのスライスを採用して、抽出されるべき、サブピクチャ内に含まれた任意のセグメントに関係しないスライスを単に除去するか廃棄する機会を有することによって、サブピクチャ抽出プロセスをより容易にする。
【0007】
一実施形態によれば、開始位置情報は、可変長コーディングされた開始アドレスシンタックス要素を含む。開始位置情報は、サブピクチャ抽出の間に何らかの方法で反転される必要がないため、可変長コーディングは、サブピクチャ抽出の間、何のペナルティもなしに使用され得る。
【0008】
なおさらなる実施形態によれば、データストリームは、開始位置コーディングモードフラグによって、セグメントのオンセット位置に対する、またはコーディング経路がピクチャの横断を開始するピクチャオンセット位置に絶対的に対する、それぞれのスライスの開始位置を示す開始位置情報同士の間で切り替え可能である。このオプションによれば、これまで絶対開始位置指示を使用する既存のコーデックは、本明細書で論じる相対位置指示を利用するために拡張され得る。デコーダは、開始位置情報によって提供される両方のタイプの開始位置指示またはそれらのうちの単に1つを理解することが可能であり得る。
【0009】
なおさらなる実施形態によれば、データストリームは、各セグメントに関して、ピクチャオンセット位置に対するコーディング経路に沿ったオンセット位置をアドレス指定する、それぞれのセグメントのオンセット位置のベースアドレスを定義するベースアドレスデータフィールドをさらに含む。これらのベースアドレスの伝達は、セグメントへのピクチャの単独での細分化に基づいて、ベースアドレスを計算するための計算オーバヘッドを再使用する。
【0010】
一実施形態によれば、セグメント情報は、開始位置が位置するセグメントにインデックス付けするセグメントインデックスが符号化されているセグメントシンタックス要素を含む。シンタックス要素は、固定長コードを使用して符号化され得る。データストリームは、各セグメントに対するセグメントインデックス値の関連性を定義するインデックスデータフィールドを含み得る。言い換えれば、インデックスデータフィールドは、タグ、すなわち、セグメントインデックス値をセグメントに明示的に関連付けることができ、スライスのセグメント情報は、そのタグ、またはそれぞれのスライスの開始位置が位置するセグメントに関連付けられるセグメントインデックス値に設定される。このタグ付けは、サブピクチャ抽出の間に容易に修正され得る。
【0011】
第1の態様と組み合わされてよい、本出願の別の態様は、サブピクチャ抽出プロセスをマルチレイヤデータストリームの中から1つのレイヤを選ぶことと同様に処理することによって、サブピクチャ抽出プロセスをより容易にすることである。すなわち、第2の態様によれば、抽出可能なデータストリームは、データストリームのピクチャのサイズ、およびデータストリームからピクチャを復号するために必要とされる第1のデコーダ能力レベルの指示だけでなく、少なくとも1つのサブピクチャ復号オプション、および、この少なくとも1つのサブピクチャ復号オプションに関する、低減されたピクチャサイズ、およびデータストリームの抽出バージョンからサブピクチャを復号するために必要とされる第2のデコーダ能力レベルをやはり示す、パラメータセットを含む。このサブピクチャ復号オプションは、完全なピクチャに対応する上位レイヤに対するサブレイヤと同様に処理され、サブピクチャが構成されるセグメントクラスタに対して空間的にオフセットされるセグメントが符号化されているデータストリームからスライスを取り除くかまたは廃棄することによって、データストリームの抽出バージョンがデータストリームから生じる。これらのスライスは、第1の態様に関して上記で論じたような開始位置情報およびセグメント情報を含んでよく、または含んでいなくてもよい。しかしながら、各スライスが、それぞれのスライスがカバーするセグメントを示すセグメント情報を含んでいれば十分であり得る。したがって、第2の態様によれば、サブピクチャ抽出のプロセスは、マルチレイヤデータストリームのいくつかのレイヤ間の遷移と同様であり、意図されたレイヤに関係しないスライスの除外を必要とするに過ぎず、すなわち、ここでサブピクチャ内に含まれるいずれかのセグメントをカバーしないスライスが抽出される。抽出されたデータストリーム内に採用されることになるデータストリームのスライスの「変換」または「修正」は不要である。
【0012】
有利な態様が従属請求項の主題である。本出願の好ましい実施形態について、図面に関して下で説明される。
【図面の簡単な説明】
【0013】
図1】サブピクチャ抽出プロセスを軽減するための、スライスに対する相対開始位置指示を使用して抽出可能なデータストリームの概念を示し、まだ抽出されないデータストリーム、ならびに抽出プロセスおよび抽出されたデータストリームを示し、参加エンティティが、エンコーダ、デコーダ、および任意選択で、ネットワークデバイスを含む、概略図である。
図2】データストリームが相対的なスライス開始位置指示と絶対的なスライス開始位置指示との間で切り替え可能である実施形態を示すために、データストリームのピクチャおよび断片を示す概略図である。
図3】HEVCデータストリームの変形形態として、図1に関して提示したようなデータストリームの実装形態を示す概略図である。
図4図3の実装形態で使用され得る、パラメータセット、ここでは、例示的にピクチャパラメータセット内で伝達されるコンテンツを示す疑似コードを示す図である。
図5図3に関して提供された実装形態例に関して提示された疑似コード内で使用されるパラメータと共に、ピクチャ、およびそのセグメントへのセグメント化の概略図である。
図6図3の実装形態例による、スライスヘッダ内で伝達される可能なコンテンツを示す疑似コードを示す図である。
図7図3のコーデック例を実装するために使用され得るタイリング(tiling)シンタックスを示す疑似コードを示す図である。
図8図7のタイリングシンタックスを使用した、パラメータセット、ここでは、例示的にシーケンスパラメータセットの可能なコンテンツを示す疑似コードを示す図である。
図9図7のタイリングシンタックスを使用した、パラメータセット、ここでは、例示的にピクチャパラメータセットの可能なコンテンツを示す疑似コードを示す図である。
図10】セグメントが1つまたは複数のタイルの構成であり得るという点で図6とは異なる、図3の例を実装するためのスライスヘッダの可能なコンテンツを示す疑似コードを示す図である。
図11】パラメータセットが単に完全なピクチャ復号オプションだけでなく、追加で少なくとも1つのサブピクチャ復号オプションに関する情報を伝達する可能性を示すための、ピクチャパラメータセット、ここでは、例示的にシーケンスパラメータセットの可能なコンテンツを示す疑似コードを示す図である。
【発明を実施するための形態】
【0014】
本出願の第1の実施形態について、図1を参照して説明する。図1は、データストリーム10、およびサブピクチャ抽出14によってそこから導出されるサブピクチャ特有のデータストリーム12を示す。データストリーム10は、エンコーダ16によって生成されたものであることがある。具体的には、エンコーダ16は、データストリーム10内にピクチャ18を符号化した。図1は、ビデオ20の1個のピクチャとしてピクチャ18を示すが、本出願の実施形態は、ビデオデータストリームに限定されないことに留意されたい。むしろ、本明細書で説明する実施形態は、ピクチャコーデックに容易に移行され得る。以下の説明は、しかしながら、ビデオコーディングに関する実施形態を示す。
【0015】
ピクチャ18をデータストリーム10内に符号化する際、エンコーダ16は、図1に示すように、ピクチャ18の左上隅に位置し得るピクチャオンセット位置24から、たとえば、ビデオ20の別のピクチャへ続けて横断するために、たとえば、右下隅などの反対のピクチャ隅に向かってピクチャ18を横断するコーディング経路22に従うかまたはそれを使用する。コーディング経路22に従うことまたは使用することは、たとえば、ピクチャ18の現在の部分をコーディングするために、シンタックス要素など、エンコーダ18によってそこから導出されたサンプルまたはパラメータなど、ピクチャ18の空間的に近接する部分の可用性を判定する。たとえば、エンコーダ16は、予測符号化を使用し得る。このために、エンコーダ16は、これらの近接する部分がコーディング経路22に沿って現在の部分に先行することを条件として、ピクチャ18の空間的に近接する部分に基づいて、そのサンプルコンテンツまたはそのサンプルコンテンツを記述するシンタックス要素など、現在の部分を予測し得る。追加的にまたは代替として、エンコーダ16は、ピクチャ18の近接する部分に基づいて、ピクチャ18の現在の部分を記述するシンタックス要素をコーディングするためのエントロピーコンテキストの導出など、現在の部分に対する他の空間的コーディング依存性を使用し得る。加えて、エンコーダ16は、コーディング経路22を使用して、ピクチャ18がコーディングされているデータを区分化またはパケット化する。このために、エンコーダ16は、コーディングされたデータをコーディング経路22に沿ってスライスに細分化する。したがって、ピクチャ18のデータを含むデータストリーム10内の各スライス26は、対応する部分、すなわち、ピクチャ18のスライス28をカバーするか、または符号化しており、ピクチャ18のスライス28は、スライス28をインターリーブせずに、コーディング経路22によって連続的に横断される。言い換えれば、コーディング経路22は、ピクチャ18が細分化されたスライス28の各々を一度だけ横断する。
【0016】
やはり図1に示すように、エンコーダ16は、ピクチャ18をデータストリーム10へと符号化する際に、やはりピクチャ18のセグメント30への細分化に従う。図1は、例示的に、2x2アレイに配置された4個のセグメント30へのピクチャの細分化を例示的に示す。セグメントの数は、しかしながら、重要ではなく、異なってよい。しかしながら、セグメント30へのピクチャ18の細分化は、セグメント30が行および列に配置されるようなものであってよい。セグメント30へのピクチャ18の細分化は、1つのセグメント行内のセグメントが同じ高さであり、1つのセグメント列内のセグメントが同じ幅である状態で、ピクチャ18をギャップなしに完全にカバーするようなものであってよい。しかしながら、それにより、矩形セグメント30は、セグメント列および/またはセグメント行が幅および高さの点でそれぞれ異なり得るという点で、サイズが異なってよい。ピクチャ18のセグメント30への細分化に従うことは、符号化相互依存性に関係し得る。エンコーダ16は、符号化相互依存性がセグメント境界を越えないように、ピクチャ18をデータストリーム10に符号化する。このために、ピクチャ18のセグメント30内のどの部分もこのセグメントの外部のピクチャ18の部分に依存してコーディングされない。言い換えれば、エンコーダ16は、互いに依存せずにセグメント30を符号化する。一方がスライス28で他方がセグメント30の関係が考慮される限り、スライス28は、1つまたは複数のセグメント30を完全にカバーするか、または単に1個のセグメント30内のみに存在する。単なる例示のために、図1は、各セグメント30が2個のスライス28から構成されることを示す。これは、コーディング経路22がセグメント30を連続的に横断すること、すなわち、コーディング経路22がコーディング順序で次のセグメント30を横断する前に、各セグメント30がコーディング経路22によって完全に横断されることを意味する。
【0017】
このようにして、エンコーダ16は、ピクチャ18をスライス28単位でデータストリーム10内に符号化する。データストリーム10内の各スライス26は、したがって、符号化された対応するピクチャスライス28を有する。たとえば、各スライス26は、ピクチャ18の対応するスライス部分28のコンテンツを、たとえば、イントラコーディングモードまたはインターコーディングモードを区別する予測モードなどの予測パラメータ、イントラ予測ブロックに対する動きパラメータ、イントラ予測ブロックに対するイントラ予測サブモード、ピクチャ18をブロックに細分化するための細分化情報、および、予測残差を表す変換係数などの残差データのうちの1つまたは複数の形で符号化するペイロードデータ32を有する。
【0018】
それぞれ、スライス26のスライスヘッダ34およびその構成要素またはシンタックス要素の説明に進む前に、エンコーダ16がピクチャ18をどのようにデータストリーム10内にコーディングするかの説明を短く続ける。前に述べたように、セグメント30は、互いに依存せずにコーディングされたセグメントである。しかしながら、ここまで説明は、ピクチャ18の符号化のみに重点を置く。しかしながら、ピクチャ18がビデオ20のピクチャである場合、エンコーダ16が、ビデオ20のピクチャのシーケンスに対して、セグメント30へのピクチャの細分化を採用すること、すなわち、ピクチャシーケンスのピクチャを同じように細分化する、すなわち、他のピクチャが、同じ数のセグメント30にセグメント化され、セグメント30がピクチャ間で空間的に一致するセグメント境界で等しいサイズになるようにすること、であり得る。これは、たとえば、ピクチャ18に対して先行するピクチャおよび後続のピクチャがピクチャ18と同じように、すなわち、4個のセグメント30に細分化されているとして示されている図1に示す状況である。1個のピクチャ内のコーディングセグメント30の相互的な非依存性に加えて、エンコーダ16は、ピクチャ18のそれぞれのセグメント30の符号化が、ピクチャ18のそれぞれのセグメントにコロケートされたセグメントの外部にあるかまたは空間的にオフセットされた参照ピクチャと呼ばれる別のピクチャの部分に依存しないように、ピクチャ18の各セグメントを符号化し得る。言い換えれば、ビデオ20のピクチャシーケンス内のピクチャのコロケートされたセグメント30は、その中でエンコーダ16がこれらのピクチャの別のセグメントによって形成された時空間領域とは独立して符号化を行うビデオ20内の時空間領域を形成し得る。したがって、前述のインター予測、すなわち、動き補償予測は、インター予測を使用してコーディングされたピクチャ18の1個のセグメント30内のブロックが、動きベクトルによって、現在のブロックが位置するセグメントにコロケートされた参照ピクチャのセグメントの外部にある参照ピクチャの部分を参照することにならないように制限されることになる。むしろ、エンコーダ16は、たとえば、そのブロックに対してイントラ予測を代わりに選ぶことになる。
【0019】
なおさらに、下記でより詳細に説明するスライス26のスライスヘッダ34に加えて、データストリーム10は、以下でパラメータセットと呼ばれる、より高いレベルのコーディングパラメータを含むさらなる情報を含むことに留意されたい。このパラメータセット36は、データストリーム10上に分散されてよく、範囲の点で階層的に定義され得る。言い換えれば、パラメータセット36の異なる部分は、異なる範囲を有し得る。このために、いくつかのコーディングパラメータは、ピクチャ18など、1個のピクチャのみに対して有効であり得、他のコーディングパラメータは、たとえば、ピクチャ18を含めて、ピクチャのシーケンスに対して有効なコーディングパラメータを表すことができ、さらに他のコーディングパラメータは、ビデオ20全体に有効であり得る。パラメータセット36内で定義されるコーディングパラメータは、以下でも説明するため、差し当たり短い議論で十分であろう。パラメータセット36内に含まれるコーディングパラメータは、たとえば、ビデオ20のピクチャのピクチャサイズ、セグメント30へのピクチャの細分化、データストリーム10からピクチャ18およびビデオ20をそれぞれ復号するために必要とされるデコーダ能力レベルの指示、ならびに/または復号タイムスタンプ、コーディングされたピクチャバッファ取出し時間、および/もしくはデータストリーム10を復号するために使用されることになるバッファサイズを示し得る。
【0020】
ここまで説明した詳細に加えて、エンコーダ16は、ピクチャ18など1個のピクチャに関するデータストリーム10内に含まれたスライス26が、ビデオ20の別のピクチャに関するデータストリーム10内の他のスライス26とインターリーブされないようにデータストリーム10を形成し得ることに留意されたい。むしろ、これらは、アクセスユニット36と呼ばれる、データストリーム10の連続部分を形成する。アクセスユニット36は、したがって、ピクチャ18など、1個のピクチャに関するスライス26をまとめる。1個のアクセスユニット36内に、スライス26に加えて、他のデータ、たとえば、パラメータセット36の一部分も同様に含まれてよい。1個のアクセスユニット36内のデータは、データストリーム10内のデータの順序の監視に基づいて、デコーダ38などデータストリーム10の受信側が、データストリーム10内の次のアクセスユニットの開始を認識することができるように、何らかの事前定義された順序または順序付けに関する規定を忠実に守ることができる。1個のアクセスユニット36内のスライスでさえ、コーディング経路22がピクチャ18内で対応するスライス28を横断する順序に従って相互に順序付けされ得る。
【0021】
データストリーム10のコーディングに関する一般的なフレームワークの説明を終えた後で、説明は、スライスヘッダ34およびそのコンテンツの説明に進む。具体的には、エンコーダ16は、そこから先でピクチャ18が、コーディング経路22に沿って、それぞれのスライスヘッダ34を含むそれぞれのスライス26に符号化される開始位置40を示す開始位置情報を、各スライスヘッダ34に提供する。開始位置40に関する知識は、デコーダ38が、ピクチャ18に関するいずれかの先行スライスがデータストリーム10内で欠落している場合でさえ、コーディング経路22に沿って先行するスライス部分28に関するそれぞれのスライス26内で符号化されたピクチャコンテンツ、すなわち、ピクチャ18の対応するスライス部分28に関するピクチャコンテンツを、正確に配置することを可能にするためのものである。
【0022】
しかしながら、好ましくは、開始位置情報42は、開始位置情報42が含まれるスライスヘッダ34内のスライス26の開始位置40を、例示的に図1の矢印46によって示すように、開始位置40が位置するセグメント30の横断をコーディング経路22が開始するオンセット位置44に対して示す。開始位置40の相対的な指示は、下記でさらに説明するように、サブピクチャ抽出14を軽減する。
【0023】
開始位置情報42による開始位置40の相対的な指示、およびその関連付けられるあいまいさを補償するために、スライスヘッダ34は、追加で、セグメント情報48が属する、スライス26の開始位置40が位置するセグメント30を示すセグメント情報48を含む。図1の例では、たとえば、開始位置40が矢印46によって示されているスライス28は、図1で大文字Bによってインデックス付けされたセグメント30内に位置し、それに応じて、そのスライスのセグメント情報48は、このスライス26がセグメントBに属することを示すことになる。したがって、開始位置情報42およびセグメント情報48は、一緒に、ピクチャ18内の開始位置40の絶対位置、すなわち、起点、すなわち、ピクチャオンセット位置24に対する相対位置または開始位置40を判定するために十分である。
【0024】
データストリーム10を受信するデコーダ38は、データストリーム10からそれぞれのスライス26の開始位置情報42を復号し、開始位置情報42を使用して、開始位置40が位置するセグメントのオンセット位置44に対するそれぞれのスライスの開始位置40を位置特定することができる。さらに、デコーダ38が、それに対して開始位置情報42が開始位置40を示すオンセット位置44が属するセグメント30に関して知るよう、デコーダ38は、データストリーム10から、それぞれのスライス26の対応するセグメント情報48を復号する。デコーダ38は、したがって、セグメント30へのピクチャ18の細分化を示すパラメータセット36に基づいて、オンセット位置44を位置特定し、それに応じて、オンセット位置44に対して示される開始位置40の相対位置指示を、ピクチャ18内のオンセット位置44と組み合わせることができ、この組合せは、ピクチャオンセット位置24に対するピクチャ18内の開始位置40の絶対位置をもたらす。デコーダ38に対する計算オーバヘッドを軽減するために、下記でさらに説明するより詳細な実施形態は、デコーダ38が、セグメント30のオンセット位置自体を計算するのではなく、この指示を使用することができるように、パラメータセット36、または補足的な拡張情報などデータストリーム10内のいくつかの他の部分が、各セグメント30に対するオンセット位置44を表現的に(expressively)示し得る可能性を示す。
【0025】
対応するセグメント30のオンセット位置に対する開始位置40の相対的な指示が好ましい状況であることを上記ですでに概説した。以下、これについてより詳細に論じる。具体的には、好ましい状況は、サブピクチャ抽出プロセス14を検査するときにより明らかになる。後者のプロセスは、データストリーム10を処理する何らかのエンティティによって実行され得る。たとえば、抽出プロセスは、エンコーダ16と抽出されたデータストリーム12を受信するデコーダ52との間の送信経路に接続されたネットワークデバイス50によって実行され得る。デコーダ52は、デコーダ38と同一であってよく、すなわち、完全なまたは元のデータストリーム10もやはり復号することが可能であったであろうデコーダであってよく、または、抽出されたデータストリーム12を復号することが可能であるが、たとえば、デコーダ38のデコーダ能力レベルよりも低いデコーダ能力レベルにより、完全なデータストリーム10を復号することはできないデコーダであってもよい。抽出プロセス14は、しかしながら、デコーダ52/38自体の中で実行されてもよい。
【0026】
抽出プロセス14は、ピクチャ18と比較して、ピクチャ18のセグメント30の適切なサブセットから単に構成され、かつ/または、それぞれ、ピクチャ18および54のピクチャエリア内のセグメント30の相互配置において異なる、ピクチャ54が符号化されているデータストリーム12の形成を目的とする。図1は、データストリーム12のピクチャ54が元のデータストリーム10のピクチャ18の4個のセグメント30のうちの1つ、すなわち、セグメントBから単に構成される事例を示すが、これは、単なる一例であり、ピクチャ54の矩形ピクチャエリアがもたらされる限り、ピクチャ54は、あるいは、ピクチャ18のセグメント30のうちの2つ以上から構成されてよい。
【0027】
注目すべきことに、データストリーム10内に含まれたスライス26に関して、抽出プロセス14は、ピクチャ54内に含まれないピクチャ18のセグメント30に関するスライス26の廃棄または除外を単に必要とするが、ピクチャ54の構成に寄与する任意のセグメント30に関するスライス26は、何の修正もなしに、具体的には、開始位置情報42およびセグメント情報48の何の修正もなしに、採用されるか、または抽出されたデータストリーム12内に残される。具体的には、開始位置情報42は、その開始位置がピクチャ54に寄与するセグメント30に該当するスライス26の開始位置40がそのセグメントのオンセット位置に対して示されることを示すため、この相対的な指示は、低減されたデータストリーム12内で依然として正確である。その上、セグメント情報48は、抽出されたデータストリーム12内に採用されるすべてのスライス26に関して、対応するスライス26がどのセグメントに属するか、すなわち、どのセグメント内にその開始位置があるかを示す。このセグメント情報48は、除外または廃棄されることになるスライス26を識別するために、抽出プロセス14においてやはり使用されている。
【0028】
元のデータストリーム10に関してまだ論じていない、抽出されたデータストリーム12内に存在する唯一の情報は、セグメント30の選択されたセットに基づいて抽出されたデータストリーム12のピクチャ54の修正された構成に関連付けられるコーディングパラメータである。このトピックに関しては、いくつかの可能性が存在する。第1の代替案によれば、抽出プロセス14は、抽出されたデータストリーム12内の対応するパラメータセット36'が、抽出されたビデオ56のピクチャ54の修正されたピクチャサイズ、セグメントへのピクチャ54の細分化、完全なビデオ20またはピクチャ18をデータストリーム10から復号するために必要とされるデコーダ能力レベルよりも低いことがある、抽出されたデータストリーム12を復号するために必要とされるデコーダ能力レベル、ならびに/または修正された復号タイムスタンプ、コーディングされたピクチャバッファ取出し時間および/もしくは抽出されたデータストリーム12を復号するためのバッファサイズを反映するように修正するよう、前述のパラメータセット36の修正を必要とし得る。しかしながら、代替実施形態によれば、開始位置情報42内の相対開始位置指示を使用する態様は、言い換えれば、元のデータストリーム10のパラメータセット36に両方の情報項目を提供することによって、抽出されたデータストリーム12のパラメータセット36'すら不変の状態に残され得る本出願の一態様と組み合わされる。この代替案によれば、パラメータセット36は、ピクチャ18全体をデータストリーム10から復号するためのすべてのコーディングパラメータを示すことになると同時に、ピクチャ54をデータストリーム10または12から復号するためのすべてのコーディングパラメータを示すことになる。抽出されたデータストリーム12およびそのピクチャ54に関してパラメータセット36によって示されるコーディングパラメータは、ピクチャ18をデータストリーム10から復号するためにパラメータセット36によって示されるコーディングパラメータに対して、またはそれとは異なった方法で、少なくとも部分的にパラメータセット36内に示され得る。たとえば、下記でより詳細に概説するように、パラメータセット36は、セグメント30のサイズがパラメータセット36のこの部分から明瞭であるように、セグメント30へのピクチャ18の細分化を示し得る。ピクチャ54に対するパラメータセット36のコーディングパラメータは、この知識に依存し得、どのセグメントがピクチャ54に寄与するかに関して、またピクチャ54内のこれらの寄与するセグメントのどの相互配置が適用されるかに関して単に示し得る。ピクチャ18内のオンセット位置44に関する前述のベースアドレス指示でさえ、抽出されたデータストリーム12のピクチャ54に対してデータストリーム10内でやはり繰り返されてよい。また下記でさらに説明するように、パラメータセット36は、このように、データストリーム10に対する1つの抽出オプションまたはサブピクチャ復号オプションを示すだけでなく、ピクチャ18のセグメント30に基づいて、ピクチャ54の構成の点で異なるいくつかの抽出オプションまたはサブピクチャ復号オプションであり得る。したがって、パラメータセット36'が元のデータストリーム10内のパラメータ36に対して不変の状態にとどまる代替案の場合、デコーダ52は、たとえば、ピクチャ復号、すなわち、ピクチャ18の復号が、データストリーム12上で実行されるべきか、またはサブピクチャ復号、すなわち、ピクチャ54の復号がデータストリーム12上で実行されるべきかを示す復号オプション指示58を受信することになる。未使用のスライス26が、前に実行された抽出プロセス14の一部としてすでに取り除かれている場合、この復号オプション指示は、必ず、スライスが欠落しているとして、ピクチャ復号を示してはならない。しかしながら、抽出プロセス14は、デコーダ52自体によって実行されていることがあり、デコーダ52はデコーダ38に等しいことがあることを想起されたい。このために、デコーダ52は、完全な元のデータストリーム10を受信し、次いで、復号オプション指示58に基づいて、未使用のスライス26自体を取り除く、すなわち、それを廃棄するという点で、抽出プロセス14を実行することを決定し得る。復号オプション指示は、たとえば、アプリケーションまたはユーザによって提供された外部シグナル伝達であり得る。あるいは、復号オプション指示は、デコーダ52のデコーダ能力レベルの特有の指示であり得、これは、いずれにしてもデータストリーム10の復号オプションのうちのいくつかがデコーダ52によって復号可能であることから除外する。完全なピクチャ18に対してピクチャ復号が実行されるとした場合、復号は、デコーダ38に関して論じたように行われる。サブピクチャ復号オプションが適用される場合、すなわち、デコーダ52がピクチャ54をデータストリーム12から復号する場合、復号プロセスは、以下の差異と実質的に同じである。すなわち、デコーダ52は、すなわち、ピクチャ54に対するこのサブピクチャ復号に特定のパラメータセット36'のコーディングパラメータを使用することになる。さらに、その計算がデコーダ52自体によって実行されることになる場合、デコーダ52は、ピクチャ54内のセグメント30のオンセット位置44に対して異なるベースアドレスを計算することになる。異なる計算結果は、ピクチャ54内のセグメント30の異なる配置の結果である。スライスの開始位置40の相対位置を示す開始位置情報42は、開始位置情報42によってセグメントのオンセット位置44に対して示されたものと同じである。しかしながら、セグメントのオンセット位置44がピクチャ54内のセグメントの配置に対してパラメータセット36'内に示されている場合、デコーダ52は、独自の計算の代わりに、ピクチャ54を取得するために、サブピクチャ復号に特定のこれらのベースアドレスを使用し得る。
【0029】
デコーダ38/52がインバウンドデータストリームを復号する際にどのように動作し得るか、10であり得るか12であり得るか、に関するさらなる詳細については、図11に関する説明の終わりに記載する。
【0030】
以下の説明で、上記で概説した実施形態を実装するための具体的な例について説明する。その際に、データストリームは、図1に関して説明したようなセグメントオンセット位置44に対する、スライスの開始位置40の相対開始位置指示46と、ピクチャオンセット位置24に対するスライスの開始位置40の絶対開始位置指示62との間で切り替わる開始位置コーディングモードフラグ60をパラメータセット36内に含むと仮定する。言い換えれば、フラグ60は、図1に関して概説したように、すなわち、セグメントのオンセット位置44に対して相対的に、またはピクチャオンセット位置24に対して絶対的に、データストリーム10のスライス26内の開始位置指示42が開始位置40を示すかどうかをシグナリングする。フラグ16は、下記でさらに論じるように、次いで、セグメント指示48の存在をオンに切り替えるために使用され得る。単に相対開始位置指示46の場合、セグメント指示48はスライス26内に存在し得る。
【0031】
次に説明する実施形態から明らかになるさらなる詳細は、スライス位置指示42が、実際には、フラグと条件付きでシグナリングされたスライスアドレスの組合せによってシグナリングされ得るという事実である。相対的な指示オプション46の場合、開始位置情報42によって含まれるフラグは、対応するスライスがセグメント内の第1のスライスであるかどうか、すなわち、その開始位置40が対応するセグメントのオンセット位置44に一致するかどうかを示すことになる。その場合、開始位置情報42は、何の開始アドレスシンタックス要素も含まない。そうでない場合は、しかしながら、アドレスシンタックス要素は、対応するセグメントのオンセット位置44からスライスの開始位置40を指す。絶対指示オプション62の場合、開始位置情報42のフラグは、対応するスライスがピクチャオンセット位置24において開始するかどうか、すなわち、ピクチャの第1のスライスであるかどうかを表し、そうである場合、スライス位置情報は、何のアドレスシンタックス要素も含まない。しかしながら、そうでない場合、アドレスシンタックス要素は、ピクチャオンセット位置24に対するそれぞれのスライスの開始位置40を示す。今述べた、開始位置情報42によって含まれるフラグは、絶対指示モードの場合、ユニット境界検出、すなわち、新しいアクセスユニット36の検出にアクセスするためにデコーダ38/52によって使用され得る。相対的な指示モードの場合にこの検出性を使用する能力の欠如を補償するために、エンコーダ16は、連続するアクセスユニット間の境界におけるアクセスユニットデリミタ、すなわち、いくつかのパケットの配置など、代替的なアクセスユニット境界機構を使用し得る。デコーダは、その場合、相対的な指示モードの場合、これらのデリミタを使用し得る。
【0032】
実施形態の後続のより詳細な説明を開始する前のさらなる留意点として、開始位置情報42によって開始位置40を示すための異なる可能性が存在することが注目される。たとえば、ピクチャ18は、図1のピクチャ18の左上隅に示すように、ブロックのアレイに規則正しく細分化され得る。コーディング経路22は、インターリーブなしに、これらのコーディングブロック64を連続的に横断し得、すなわち、ピクチャ18の次のコーディングブロック64に進む前に1個のコーディングブロック64が完全に横断される。開始位置情報42は、コーディング経路22に沿って、開始位置40まで、横断されたコーディングブロック64単位で測定された位置42を示し得る。相対的に示される場合46、開始位置情報42は、コーディング経路22に沿って、オンセット位置44とスライス開始位置40とを分離するコーディングブロック64の数を示すことになる。絶対的な指示オプション62の場合、開始位置情報42は、ピクチャオンセット位置24から開始したときにコーディング経路22に沿って横断されたコーディングブロック64単位で開始位置40を示す。したがって、この場合、開始位置指示42は、線形の1次元のアドレス指定領域を使用することになり、上述のセグメントのオンセット位置44のベースアドレスは、ピクチャオンセット位置24からそれぞれのセグメントオンセット位置44まで開始するときに横断されるコーディングブロック64の数で測定されてもよい。ベースアドレス44およびスライス開始位置40の和は、開始位置24から先に測定される絶対アドレスをもたらすことになる。しかしながら、開始位置情報42によって開始位置40をシグナリングする代替方法も実現可能であろう。たとえば、対応するセグメントオンセット位置44に対する開始位置40の相対位置は、オンセット位置44からスライス開始位置40までを指すベクトルのx座標およびy座標として示すことができ、成分xおよびyは、それぞれ、コーディングブロック64のサンプルまたは単位で測定される。さらに、アドレス指定は、前述のコーディングブロック64の厳密に行方向の線形アドレス指定に従って、すなわち、セグメント30へのセグメント化にかかわらず、アドレスがピクチャ内の次の行の第1のコーディングブロックで増大する前に、ピクチャ18の1個の完全な行内のコーディングブロックのアドレスが互いに従うように、実行され得る。内部的に、デコーダ38および52は、必要に応じて、異なるアドレスシステム間でまたはドメイン間で切り替えることができる。
【0033】
以下の説明から明らかになる別の可能性は、以下の通りである。符号化相互依存性がこれらの時空間領域の境界を越えない、時空間領域の可能な空間断面として、セグメント30についてここまで説明してきた。これらのセグメント30は、たとえば、ピクチャ18が細分化され得、かつ1個のピクチャ18のコーディングに関する限り、互いと独立してコーディングされる、1つまたは複数のタイルのセットとして定義され得る。したがって、セグメント30は、1個のセグメント30が1個のタイルから構成される場合、タイルであり得、後で説明する変形形態Aではこれが該当するが、変形形態Bは、セグメント30が1つまたは複数のタイルから構成され得ると仮定する。その上、後続の説明によれば、前述のコーディングブロック64は、CTU(コーディングツリーユニット)であり、これは、これらのブロック64が、エンコーダ16が使用されることになるコーディングモード、すなわち、対応するコーディングブロックのインターコーディングまたはイントラコーディングを選択する単位で、対応する選択されたコーディングモードの予測パラメータが設定される単位で、すなわち、コーディングブロックの葉ノードであり得る各予測ブロックに対して、かつ予測残差の変換が発生する単位で、すなわち、やはりコーディングブロックの葉ブロックであり得る変換ブロック単位で、コーディングブロック、予測ブロック、および/または変換ブロックにマルチツリー細分化(multi-tree subdivisioning)することによって階層的にさらに細分化されたツリールートブロックであることを意味する。コーディングユニット、予測ブロック、および変換ブロックへのCTU64の細分化は、対応するスライスペイロード32の一部としてシグナリングされ得る。
【0034】
したがって、以下では、HEVCフレームワークの考えられる修正として、図1に関して説明する実施形態の実装形態を示す。本出願の明細書の導入部分で説明したように、HEVC DAM3 MCTS抽出において、各スライスヘッダのスライスセグメントアドレスに対する調整が必要であり、これは、スライスアドレスの可変長コーディングにより、各スライスヘッダのバイトアラインメントにすら影響を及ぼし得る。特に、HEVC DAM3 MCTSを使用する場合、MCTS抽出されたデータストリーム内で採用されるスライスのスライスアドレスは、その絶対指示オプションにより補正されなければならないことになり、すなわち、これらのスライスアドレスは、ピクチャ54の新しいピクチャオンセット位置を指すために修正されなければならないことになり、これは、可変長コーディングにより、異なる長さのスライスアドレス、したがって、異なるバイトアラインメントをもたらし得る。HEVCフレームワークの後で説明する修正は、これを克服することになる。具体的には、比較的単純なMCTSサブストリーム抽出は、スライスセグメントアドレスの一部分のシグナリングにより、スライスとタイル/セグメントの暗示的または明示的な関連付けをもたらす。
【0035】
以下では、HEVCフレームワークの修正の第1の変形形態、変形形態Aについて説明する。図1に関して上記で概説したように、この変形形態によれば、スライスセグメントアドレスは、ピクチャの第1のCTUに対するスライスセグメントアドレスをシグナリングするのではなく、それぞれのタイルまたはタイルの構成の第1のCTU、すなわち、現在のセグメント30に対してシグナリングされる。「第1の」は、HEVCコーディング順序を使用するとき、一番左および一番上のCTUを意味する。
【0036】
2つの参照、すなわち、現在のセグメント30の第1のCTU、またはピクチャの第1のCTUの差異は、それぞれ、パラメータセット36および36'からのピクチャおよびタイルの命令情報をタイルまたはタイルのセットであり得るこのセグメント30に対するスライス28/26の関連付けと組み合わせることによって、デコーダ、すなわち、デコーダ38または52によって導出され、この関連付けは、下記で概説するようにデータストリーム内で明示的に送信され得る。
【0037】
CTB内のセグメントサイズおよびセグメント30ごとのスライスアドレスオフセットに関する情報を含むアレイが、デコーダサイドで判定され得る。アクセスユニット36は、それぞれ、デコーダ38または52によって実行されることになる検出を開始し、この検出は、絶対指示オプション62の場合、このフラグは、それぞれ、アクセスユニット36およびピクチャ18の第1のスライスを示すため、開始位置情報42内に含まれたフラグに基づいて実行され得、相対的な指示オプション46の場合、データストリーム10内のアクセスユニットデリミタNALユニット、すなわち、連続するアクセスユニット間の交差をシグナリングするために使用される、データストリーム10内の連続するアクセスユニットを分離する特殊パケットの使用によって行われ得る。上記で説明したように、first_slice_in_pic_flagは、開始位置情報42によって含まれ得、タイルまたはタイルの構成であり得るセグメント30の開始を示すフラグに変化し得る。
【0038】
図3は、HEVC技術体系を用いて生じる実施形態の概要を与える図である。図示するように、パラメータセット36は、範囲が異なる、ピクチャパラメータセット70、シーケンスパラメータセット72、およびビデオパラメータセット74に分散される。図3は、データストリーム10の中からの断片、すなわち、各々が、スライス情報の後に、スライスヘッダ34およびスライスペイロード32からなる対応するスライス26を含むことを示すNALUヘッダ80を含む、2個のVCL NALユニット76および78を単に示す。スライスヘッダ34は、矢印80によって示すように、対応するピクチャパラメータセット70を指し、ピクチャパラメータセット70は、矢印82に示すように、対応するシーケンスパラメータセットを指し、シーケンスパラメータセット72は、矢印84によって示されるように、対応する有効ビデオパラメータセットを指す。パラメータセット36は、たとえば、ピクチャパラメータセット70またはシーケンスパラメータセット72が、タイリングシンタックス86、すなわち、一代替形態によれば、図1において上記で論じたセグメント30を形成するタイル88へのピクチャ14の細分化を定義するシンタックスを含むことを示唆する。したがって、タイリングシンタックス86に基づいて、デコーダは、たとえば、矢印90によって示されるように、ベーススライスセグメントアドレスを計算することが可能である。開始位置情報42およびスライスヘッダ34の一部分として伝達される、ベーススライスセグメントアドレス94およびオフセットスライスセグメントアドレス96の和92は、対応するスライス26の対応するスライスセグメントアドレス98、すなわち、ピクチャオンセット位置24に対して絶対的に測定されたスライスセグメントアドレスをもたらす。図3は、実際には、以下の説明から明らかになるように、スライスヘッダ34によってもやはり含まれるこのセグメント情報48に基づいて、デコーダに対して導出可能である、タイル88のうちの1個のタイル、すなわち、タイル番号2に属するとして描かれている2個のスライス26を示す。
【0039】
具体的には、図4に示す実施形態によれば、タイリング構造またはタイリングシンタックス86は、ピクチャパラメータセット70内に含まれ得る。たとえば、ピクチャパラメータセットではなく、シーケンスパラメータセット72内にタイリングシンタックス86が存在することになる代替実施形態が同様に実現可能であろう。
【0040】
具体的には、図4に示すように、パラメータセット70の部分100は、セグメント30、ここではタイルへのピクチャ18の細分化を示す。セグメント列の数は102において示され、セグメント行の数は104において示され、フラグ106は、セグメント列の幅およびセグメント行の高さが不均一に設定されるデータストリーム内でシグナリングする機会を任意選択で提供する。存在しない場合、またはフラグ106が設定されていない場合、セグメント列の幅は、108において個々に示され、セグメント行の高さは、110において個々に示される。
【0041】
さらに、フラグslice_segment_base_addr_per_tile_enable_flag112が設定されている場合、すなわち、114において、ピクチャ18のセグメント30ごとにセグメントインデックス値tile_id_in_pps[i]を明示的にシグナリングすることによって、セグメントの明示的なタグ付けが実現される。セグメント指数は、図1において破線矢印116によって示される行方向など、セグメント30の正規のアレイの間でデフォルト順序を使用することによって、データストリーム内で、すなわち、パラメータセット70内で伝達される。
【0042】
図4のシンタックス要素のセマンティックについて、下記で詳細に概説する。
【0043】
0に等しいslice_segment_base_addr_per_tile_enable_flagは、スライスセグメントの可変CtbAddrInRsが、唯一、slice_segment_addressから導出されることを指定する。1に等しいslice_segment_base_addr_per_tile_enable_flagは、CtbAddrInRsの導出が、slice_segment_addressおよびタイル依存ベースアドレスに基づくことを指定する。slice_segment_base_addr_per_tile_enable_flagが存在しないとき、それは0に等しいと推論される。
【0044】
tile_id_in_pps[i]は、ビットストリーム順序でタイルの識別番号を指定する。tile_id_in_pps[i]の値は、0から255の範囲とし、iがjに等しくない場合、tile_id_in_pps[i]は、tile_id_in_pps[j]と同じ値を有さないものとする。tile_id_in_ppsが存在しないとき、それは0に等しいと推論される。
【0045】
slice_segment_base_addr_per_tile_enable_flagが1に等しいとき、アクセスユニットデリミタNALユニットがビットストリーム内に存在し、tiles_fixed_structure_flagは1に等しいことが、ビットストリーム整合性の制約であり得る。
【0046】
以下の疑似コードは、デコーダ38または52のようなデコーダが、たとえば、データストリーム内で利用可能な情報に基づいて、セグメント30のあるディメンションおよびセグメント30のベースアドレスをどのように計算するかについて示す。
【0047】
以下は、コーディングツリーブロックラスタおよびタイル走査変換プロセスについて説明する。
【0048】
コーディングツリーブロック(CTB)単位で第i番目のタイル列の幅を指定する、両端値を含む、0からnum_tile_columns_minus1に及ぶ範囲のiに対するリストcolWidth[i]は、以下の(疑似コード1)の通り導出される:
if(uniform_spacing_flag)
for(i=0;i<=num_tile_columns_minus1;i++ )
colWidth[i]=((i+1)*PicWidthInCtbsY)/
(num_tile_columns_minus1+1)-(i*PicWidthInCtbsY)/
(num_tile_columns_minus1+1)
else{
colWidth[num_tile_columns_minus1]=PicWidthInCtbsY
for(i=0;i<num_tile_columns_minus1;i++){
colWidth[i]=column_width_minus1[i]+1
colWidth[num_tile_columns_minus1]-=colWidth[i]
}
}
【0049】
colWidth[i]は、コーディングツリーブロックCTB64num_tile_columns_minus1内で測定された列0…num_tile_columns_minus1の中の第i番目のセグメント列の幅である。num_tile_columns_minus1は、セグメント列の数から1を差し引いたものである。
【0050】
CTB単位で第j番目のタイル行の高さを指定する、両端値を含む、0からnum_tile_rows_minus1に及ぶ範囲のjに対するリストrowHeight[j]は、以下の(疑似コード2)の通り導出される:
if(uniform_spacing_flag)
for(j=0;j<=num_tile_rows_minus1;j++)
rowHeight[j]=((j+1)*PicHeightInCtbsY)/(num_tile_rows_minus1+1)-
(j*PicHeightInCtbsY)/(num_tile_rows_minus1+1)
else{
rowHeight[num_tile_rows_minus1]=PicHeightInCtbsY
for(j= 0;j<num_tile_rows_minus1;j++){
rowHeight[j]=row_height_minus1[j]+1
rowHeight[num_tile_rows_minus1]-=rowHeight[j]
}
}
【0051】
rowHeight[i]は、コーディングツリーブロックCTB64num_tile_rows_minus1内で測定された行0…num_tile_rows_minus1内の第i番目のセグメント行の高さである。num_tile_rows_minus1は、セグメント行の数から1を差し引いたものである。
【0052】
タイル走査においてCTBアドレスからタイルIDへの変換を指定する、両端値を含む、0からPicSizeInCtbsY-1に及ぶctbAddrTsに対するリストTileId[ctbAddrTs]は、以下の(疑似コード3)の通り導出される:
for(j=0、tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++、tileIdx++)
tileIdxTileIdMap[tile_id_in_pps[tileIdx]]=tileIdx
for(y=rowBd[j];y<rowBd[j+1];y++)
for(x=colBd[i];x<colBd[i+1];x++)
TileId[ CtbAddrRsToTs[y*PicWidthInCtbsY+x]]=tileIdx
【0053】
tileIdxTileIdMap[]は、ベクトルtile_id_in_pps[]内に含まれたNのセグメントインデックス値をそのセグメントのtileIdxにマッピングすると解釈される。
tile_id_in_pps[]は、成分0…N-1を含むベクトルであり、Nはセグメント30の数であり、第i番目の成分は、ラスタ走査セグメント順序116の第i番目のセグメントに関連付けられるセグメントインデックス値を示す。
tileIdxは、ラスタ走査セグメント順序116のセグメント30にインデックス付けする。
TileId[i]は、コーディング順序で、またはコーディング経路22に沿って測定された、CTBアドレスi、すなわち、ブロック64のアドレスをこのCTBが位置するセグメント39のtileIdxにマッピングすると解釈される。
CtbAddrRsToTs[i]は、ピクチャ18のブロック64を通して行方向を導くピクチャラスタ走査順序でピクチャ18の第i番目のブロック64であるブロック64のランクiをコーディング順序22で測定されたそのアドレスにマッピングする関数である。
colBd[i]は、成分0…Nを含むベクトルであり、Nは、セグメント列の数から1を差し引いたものであり、i<Nであり、第i番目の成分は、ブロック64内で測定された左から右への第i番目のセグメント列の左側の位置を示し、第N番目の成分は、ピクチャ幅をブロックの数で示す。
【0054】
これまで疑似コードにおいて使用されたすべてのパラメータは、すなわち、ピクチャ18に対して、完全なピクチャ復号の場合にベースアドレスを判定するために使用されるとして説明されているが、これらのパラメータは、サブピクチャ54内のセグメントのオンセット位置に関するベースアドレスを判定するためにも同様に使用され得ることに留意されたい。ここで、パラメータN、colWidth[i]、num_tile_columns_minus1、rowHeight[i]、num_tile_rows_minus1、tileIdxTileIdMap[]、tile_id_in_pps[]、CtbAddrRsToTs[i]、colBd[i]は、このサブピクチャ54、ならびに、それぞれ、セグメント30によるその構成および対応するブロック64へのその細分化に対して特有である。同様に、コーディング経路22およびラスタ走査セグメント順序116に対するすべての参照は、それぞれのサブピクチャに適用される。tileIdxTileIdMap[]は、一方で、tile_id_in_pps[]のうちのいずれかを仮定するセグメントインデックス値tile_id_in_shと、他方で、サブピクチャ54のセグメントおよびラスタ走査セグメント順序116でのそれらのインデックス付け、すなわち、tileIdxの間の関連付けの維持を保証する。あまり重要でない注記として、シンタックス要素の添え字「_pps」は、PPS内のセグメント関連付けに対するセグメントインデック値を伝える例を反映するためにここで選ばれているが、すでに上記で概説したように、これは単なる例であり、シグナル伝達は、SPSまたはVPS内など、他の場所でもやはり実現され得ることに留意されたい。後者の記述に沿って、あるいは、添え字「_ps」が使用され、対応する置き換えは、当然、本実施形態にも適用可能である。同様に、以下の例は、タイルとセグメントの間の1:1の対応をあきらめることがあることを明らかにする。これは、図1を参照してやはり概説されている。したがって、対応する後続の実施形態は、名称成分「Area」もしくは「area_」または「_area」を代わりに使用し、これは、以下の説明から明らかになろう。さらに、図1の説明においてやはり述べたように、セグメントに対するタグまたはセグメントインデックス値の明示的な割当ては、たとえば、インデックス領域tileIdxを代わりに使用することによってなど、セグメント情報48内のセグメントインデックス値とサブピクチャ54内のセグメントとの間のマッピングを暗示的に導出することによって、代替実施形態において除外されてよく、この場合、ピクチャ18に対するパラメータセット36内のそのような関連付けの送信は除外されてよい。しかしながら、ピクチャ18のセグメント30に対するセグメントインデックス値の明示的な割当ては、2個の個別のデータストリームのタイルの混合を軽減する。
【0055】
CTB単位でピクチャ内の第k番目のタイルのサイズを指定する、両端値を含む、0から((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1)に及ぶ範囲のkに対するリストTileSizeInCtbsY[k]は、以下の(疑似コード4)の通り導出される。
for(j=0、k=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++、k++)
TileSizeInCtbsY[k]=colWidth[i]*rowHeight[j]
【0056】
TileSizeInCtbsY[i]は、成分0…N-1を含むベクトルであり、Nは、セグメント30の数であり、第i番目の成分は、ラスタ走査セグメント順序116の第i番目のセグメント内に含まれたブロック64の数を示す。
【0057】
ビットストリーム順序で、ピクチャ内の第k番目のタイルの第1のスライスセグメントのタイル走査においてスライスセグメントアドレスオフセットをCTB単位で指定する、両端値を含む、0から((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1)に及ぶ範囲のkに対するリストTileSliceSegBaseAddr[k]は、以下の(疑似コード5)の通り導出される。
TileSliceSegBaseAddr[0]=0
for(k=1;k<=((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1);k++)
TileSliceSegBaseAddr[k]=TileSliceSegBaseAddr[k-1]+TileSizeInCtbsY[k-1]
【0058】
TileSliceSegBaseAddr[i]は、成分0…N-1を含むベクトルであり、Nは、セグメント30の数であり、第i番目の成分は、ピクチャオンセット位置24からセグメントオンセット位置44までのコーディング経路に沿ったブロック64の数として測定された、ラスタ走査セグメント順序116の第i番目のセグメントのオンセット位置44のアドレスを示す。
【0059】
ここで、「タイル走査」は、図1に示したような走査22を示す。TileSliceSegBaseAddrは、この例によれば、タイルに等しい、セグメントのオンセット位置44の前述のベースアドレスを示す。上記で示した計算は、ベースアドレスを計算するためにデコーダ38および52によってそれぞれ使用され得る。サブピクチャ復号が適用される場合、セグメントの数およびそれらの配置は、適応可能であるものとする。
【0060】
図6は、スライスセグメントヘッダ、すなわち、前述のスライスヘッダ34がどのようになり得るかを示す。具体的には、ここで、スライスヘッダ34は、シンタックス要素slice_segment_address122と共に開始位置情報42を形成するフラグ120、すなわち、first_slice_segment_in_area_flagを含む。単にフラグ120が設定されていない場合は、slice_segment_addressが存在し、対応するセグメント/タイル30のオンセット位置44からのスライス開始位置40のオフセットを示す。後者は、単に1つのシンタックス要素124、すなわち、図4のパラメータセット70内で定義される値の領域外の値を、すなわち、シンタックス要素114によって仮定する、tile_id_in_shを含むセグメント情報48によって示される。
【0061】
特に、セマンティックは下記のように示され得る:
1に等しいfirst_slice_sement_in_area_flagは、slice_segment_base_addr_per_tile_enable_flagが0に等しいとき、スライスセグメントが、復号順でピクチャの第1のスライスセグメントであることを規定する。さもなければ、slice_segment_base_addr_per_tile_enable_flagが1に等しいとき、1に等しいfirst_slice_segment_in_area_flagは、スライスセグメントが、復号順でピクチャのタイルの第1のスライスセグメントであることを規定する。0に等しいfirst_slice_segment_in_pic_flagは、スライスセグメントが、それぞれ、復号順でピクチャまたは復号順でタイルの第1のスライスセグメントではないことを規定する。したがって、slice_segment_base_addr_per_tile_enable_flagは、図2に関して論じたフラグ60に関する一例として機能する。
【0062】
注記1。このシンタックス要素は、復号順で連続する、コーディングされたピクチャ間の境界の検出のために使用され得る。しかしながら、IDRピクチャが、復号順で連続し、同じNALユニットタイプを有するとき、IDRピクチャの第1のスライスの損失は、コーディングされたピクチャ間の境界の検出に問題を引き起こす場合がある。これは、たとえば、エラーが生じやすい環境ですべてのイントラコーディングされたビデオの送信時に発生し得る。この問題は、2個の連続するIDRピクチャに対して2つの異なるIDR NALユニットタイプ(IDR_W_RADLおよびIDR_N_LP)を交互に使用することによって軽減され得る。そのSEIメッセージはその値が復号順で連続するIRAPピクチャに対して異なるシンタックス要素irap_pic_idを含むため、時間的なサブレイヤゼロインデックスSEIメッセージの使用もやはり有用であり得る。いくつかのシステム環境は、Rec.ITU-T H.222.0|ISO/IEC13818-1システム内のプレゼンテーションタイムスタンプ、ISO/IEC 14496-12 ISOベースメディアファイルフォーマットにおけるアクセスユニットフレーミング、またはIETF RFC 3550リアルタイムトランスポートプロトコルヘッダにおけるマーカビットの使用など、ピクチャ境界検出に関しても同様に有用であり得る他の規定を有する。
【0063】
1に等しいdependent_slice_segment_flagは、存在しない各スライスセグメントヘッダシンタックス要素の値がスライスヘッダ内の対応するスライスセグメントヘッダシンタックス要素の値に等しいと推論されると規定する。存在しないとき、dependent_slice_segment_flagの値は、0に等しいと推論される。
【0064】
変数SliceAddrRsは以下の通り導出される:
- dependent_slice_segment_flagが0に等しい場合、SliceAddrRsはCtbAddrInRsに等しく設定される
- さもなければ、SliceAddrRsは、それに対するコーディングツリーブロックアドレスがCtbAddrTsToRs[CtbAddrRsToTs[CtbAddrInRs]-1]であるコーディングツリーブロックを含む、先行するスライスセグメントのSliceAddrRsに等しく設定され、この場合、変数CtbAddrInRsは、slice_segment_addressのセマンティック内に規定される。
【0065】
tile_id_in_shは、スライスセグメントが属するタイルのインデックスを規定する。area_id_in_shの値は、0から255に及ぶ範囲とする。area_id_in_shが存在しないとき、それは0に等しいと推論される。ピクチャ内の2個以上のタイルは、tile_id_in_shの同じ値を有さないものとする。
【0066】
slice_segment_addressは、(slice_segment_base_addr_per_tile_enable_flagが1に等しいとき)ピクチャのコーディングツリーブロックラスタ走査において、さもなければ、ピクチャのタイル走査において、スライスセグメント内の第1のコーディングツリーブロックのアドレスを以下のように規定する。
【0067】
変数maxNumCtbYは、(slice_segment_base_addr_per_tile_enable_flag ? TileSizeInCtbsY[tileIdxTileIdMap[tile_id_in_sh]]:PicSizeInCtbsY)と定義され、ここで、tileIdxTileIdMap[tile_id_in_sh]は、そのセグメント情報48によって含まれる、現在復号/符号化されているスライスのtile_id_in_shを正しいtileIdx上にマッピングし、すなわち、ピクチャ18または54内の正しいセグメントを参照し、TileSizeInCtbsYは、このセグメントに対して、その開始位置情報42のslice_segment_addressによって提示されることになる/表現可能であるそれぞれのスライスアドレスの最大値、すなわち、maxNumCtbsY-1をもたらす。デコーダおよびエンコーダは、疑似コード1から4を使用して、この情報を計算することができる。
【0068】
slice_segment_addressシンタックス要素の長さは、すると、Ceil(Log2(maxNumCtbsY))ビットである。slice_segment_addressの値は、両端値を含む、0からmaxNumCtbsY-1に及ぶ範囲とする。slice_segment_base_addr_per_tile_enable_flagが0に等しいとき、slice_segment_addressの値は、同じコーディングされたピクチャのいかなる他のコーディングされたスライスセグメントNALユニットのslice_segment_addressの値にも等しくないものとする。slice_segment_base_addr_per_tile_enable_flagが1に等しいとき、slice_segment_addressの値は、同じコーディングされたピクチャ内の同じタイルの属するいかなる他のコーディングされたスライスセグメントNALユニットのslice_segment_addressの値にも等しくないものとする。slice_segment_addressが存在しないとき、それは0に等しいと推論される。
【0069】
ピクチャのコーディングツリーブロックラスタ走査においてコーディングツリーブロックアドレスを規定する変数CtbAddrInRsは、CtbAddrTsToRs[slice_segment_address+(slice_segment_base_addr_per_tile_enable_flag?TileSliceSegBaseAddr[tileidxTileidMap[tile_id_in_sh]]:0)]に等しく設定される。タイル走査においてコーディングツリーブロックアドレスを規定する変数CtbAddrInTsは、CtbAddrRsToTs[CtbAddrInRs]に等しく設定される。cu_qp_delta_absを含むコーディングユニットに関するルマ量子化パラメータとその予測との間の差異を規定する変数CuQpDeltaValは、0に等しく設定される。cu_chroma_qp_offset_flagを含むコーディングユニットに関するQp'CbおよびQp'Crの量子化パラメータのそれぞれの値を判定するときに使用すべき値を規定する変数CuQpOffsetCbおよびCuQpOffsetCrは、両方とも0に等しく設定される。したがって、相対的な指示モード46の場合、tileIdxTileIdMap[tile_id_in_sh]は、そのセグメント情報48によって含まれる、現在復号/符号化されているスライスのtile_id_in_shを正しいtileIdx上にマッピングし、すなわち、ピクチャ18または54内の正しいセグメントを参照し、TileSliceSegBaseAddrは、このセグメントに対してベースアドレスをもたらし、このベースアドレスは、次いで、このスライスのアドレスをもたらすために、その開始位置情報42の相対スライスアドレスslice_segment_addressに追加される。CtbAddrTsToRsは、コーディング経路22に沿って測定されたアドレスをブロック64間でラスタ走査ブロック順序に沿って測定されたアドレスに単に変換する。デコーダおよびエンコーダは、疑似コード5を使用して、セグメントオンセット位置44のベースアドレスを計算することができるか、または以下で例示する明示的な情報の場合、単にエンコーダがこれを行い得る。
【0070】
VCL NALユニットの順序およびコーディングされたピクチャに対するそれらの関連付けについては、以下であると言えよう。
【0071】
具体的には、以下は、VCL NALユニットの順序およびコーディングされたピクチャに対するそれらの関連付けを規定する。
【0072】
各VCL NALユニットは、コーディングされたピクチャの一部分である。
【0073】
コーディングされたピクチャ内のVCL NALユニットの順序は、以下のように制約される。
- コーディングされたピクチャの第1のVCL NALユニットは、1に等しいfirst_slice_segment_in_pic_flagを有するものとする。
- sliceSegAddrAおよびsliceSegAddrBを、同じコーディングされたピクチャ内のいずれかの2個のコーディングされたスライスセグメントNALユニットAおよびBのCtbAddrTsToRs[slice_segment_address(slice_segment_base_addr_per_tile_enable_flag?TileSliceSegBaseAddr[tileidxTileidMap[tile_id_in_sh]:0)]]の値とする。以下の条件のうちのいずれかが真であるとき、コーディングされたスライスセグメントNALユニットAは、コーディングされたスライスセグメントNALユニットBに先行するものとする。
- TileId[CtbAddrRsToTs[sliceSegAddrA]]がTileId[CtbAddrRsToTs[sliceSegAddrB]]未満である。
- TileId[CtbAddrRsToTs[sliceSegAddrA]]が、TileId[CtbAddrRsToTs[sliceSegAddrB]]に等しく、CtbAddrRsToTs[sliceSegAddrA]が、CtbAddrRsToTs[sliceSegAddrB]未満である。
【0074】
デコーダ38および52は、新しいアクセスユニット36がインバウンドデータストリーム10または12内でいつ開始するかを判定するために、または何らかのNALユニットが欠落していることを判定するために、これらの条件を監視することができる。
【0075】
ここまで説明した変形形態Aは、たとえば、より容易な実装および処理を可能にするために異なる点で変更されてよい。
【0076】
たとえば、変形形態Aにおいて、図1に関して上記ですでに説明したように、セグメント30は、厳密にタイルでなくてよい。このため、スライスセグメントベースアドレス計算は、タイル粒度に対して排他的に発生しなくてよく、複数のタイルが1つのエリアに接合され、次いで、上記で提示した説明に従って、セグメント30を形成してよく、次いで、そのセグメント30に関して、スライスセグメントベースアドレスが共に定義され得、すなわち、スライスヘッダ内のスライスアドレスがビットストリーム順序でセグメント30を形成する複数のタイルの所与のエリアに属する第1のCTUに相対的に与えられる。
【0077】
さらに、追加的にまたは代替として、以下で説明する変形形態Bによれば、各セグメント30に対するスライスセグメントベースアドレスの計算の負担をクライアントサイドまたはデコーダに負わせる代わりに、スライスセグメントベースアドレスの明示的なシグナリングをデータストリーム内に提供し得ることがより明確になる。
【0078】
またさらに追加的にまたは代替として、たとえば、slice_segment_base_addess_per_tile_enable_flagが1に等しいとき、tile_fixed_structureが1に等しいことを保証すると同時に、ビデオビットストリームの各PPS内でタイル構造シグナリングを繰り返す負担は、タイリングシンタックスがSPS内またはPPS内のいずれかの中で伝えられることを可能にすることによって低減され得、タイリングシンタックスのPPSインスタンスは、SPS内で伝えられるタイリングシンタックス設定を無効にし得る。
【0079】
以下の図面は、強調表示によって、上記で説明した変形形態Aに対する変更を示す。たとえば、図7は、PPS内またはSPS内のいずれかで使用され得るタイリングシンタックス部分を示し、図7のタイリングシンタックスがPPS内で伝達されるとき、それは、対応するSPSによって提供されるタイリングシンタックスを覆し、すなわち、そのタイリングシンタックスは、より高い優位を有する。図7は、図1のパラメータセット36がベースアドレスデータフィールド130によってセグメントオンセット位置44に対するベースアドレスを伝える可能性を示す。
【0080】
セマンティックは以下の通りであり得る。
【0081】
0に等しいslice_segment_base_addr_per_area_enable_flagは、スライスセグメントの変数CtbAddrInRsが唯一slice_segment_addressから導出されることを規定する。1に等しいslice_segment_base_addr_per_area_enable_flagは、CtbAddrInRsの導出が、slice_segment_addressおよびタイル依存オフセットに基づくことを規定する。slice_segment_base_addr_per_area_enable_flagが存在しないとき、それは0に等しいと推論される。
【0082】
area_id_in_ps[i]は、ビットストリーム順序でタイルのidを規定する。area_id_in_ps[i]の値は、0から255に及ぶ範囲とし、area_id_in_ps[i]は、iがjに等しくない場合、area_id_in_ps[j]と同じ値を有さないものとする。area_id_in_shが存在しないとき、それは0に等しいと推論される。
【0083】
slice_segment_base_address[i]は、area_id_in_ps[i]の同じ値を有するエリアに属するすべてのスライスセグメントに対するタイル走査順序でベーススライスセグメントアドレスを規定する。存在しないとき、slice_segment_base_address[i]の値は、0に等しいと推論される。
【0084】
area_id_enable_flagが1に等しいとき、アクセスユニットデリミタNALユニットがビットストリーム内に存在することがビットストリーム整合の要件である。
【0085】
iのいずれの2つの値に対しても、area_id_in_ps[i]が等しい値を有さないとき、slice_segment_base_address[i-1]の値は等しくないことがビットストリーム整合の要件である。
【0086】
図8および図9は、タイリングシンタックスシグナリングに対する個々の使用可能フラグを伴うSPSシンタックスおよびPPSシンタックスに関する一例を提供する。ここで、以下のセマンティックが使用される。
【0087】
1に等しいtiles_enabled_in_sps_flagは、SPSが、CVSのデフォルト構造を記述するデフォルトタイリングシンタックスを伝えることを規定する。
【0088】
1に等しいtiles_enabled_in_pps_flagは、PPSが、PPSを参照し、参照されたSPS内のタイリングシンタックスを上書きするCVSのピクチャの実際のタイリング構造を記述するタイリングシンタックスを伝えることを規定する。
【0089】
コーディングツリーブロックラスタおよびタイリング走査変換プロセスは、この場合、以下のようになる。
【0090】
コーディングツリーブロック(CTB)単位で第i番目のタイル列の幅を規定する、両端値を含む、0からnum_tile_columns_minus1に及ぶ範囲のiに対するリストcolWidth[i]は、以下の(疑似コード1')の通り導出される。
if(uniform_spacing_flag )
for(i=0;i<=num_tile_columns_minus1;i++)
colWidth[i]=((i+1)*PicWidthInCtbsY)/(num_tile_columns_minus1+1)-(i*PicWidthInCtbsY)/(num_tile_columns_minus1+1)
else{
colWidth[ num_tile_columns_minus1]=PicWidthInCtbsY(6 3)
for(i=0;i<num_tile_columns_minus1;i++){
colWidth[i]=column_width_minus1[i]+1
colWidth[num_tile_columns_minus1]-=colWidth[i]
}
}
【0091】
CTB単位で第j番目のタイル行の高さを規定する、両端値を含む、0からnum_tile_rows_minus1に及ぶ範囲のjに対するリストrowHeight[j]は、以下の(疑似コード2')の通り導出される。
if(uniform_spacing_flag)
for(j=0;j<=num_tile_rows_minus1;j++)
rowHeight[j]=((j+1)*PicHeightInCtbsY)/(num_tile_rows_minus1+1)-
(j*PicHeightInCtbsY)/(num_tile_rows_minus1+1)
else{
rowHeight[num_tile_rows_minus1]=PicHeightInCtbsY (6 4)
for(j=0;j<num_tile_rows_minus1;j++){
rowHeight[j]=row_height_minus1[j]+1
rowHeight[num_tile_rows_minus1]-=rowHeight[j]
}
}
【0092】
タイル走査においてCTBアドレスからタイルIDへの変換を規定する、両端値を含む、0からPicSizeInCtbsY-1に及ぶ範囲のctbAddrTsに対するリストTileId[ctbAddrTs]は、以下(疑似コード3')の通り導出される。
for(j=0、tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++、tileIdx++)
for(y=rowBd[j];y<rowBd[j+1];y++)
for(x=colBd[i];x<colBd[i+1];x++)
TileId[CtbAddrRsToTs[y*PicWidthInCtbsY+x]]=tileIdx
【0093】
変数の意味は上記で教示した意味にとどまるが、Nは、しかしながら、セグメント30に対するタイルの収集により、セグメント30の数Mよりも大きくてよいタイルの数を示す。
【0094】
CTB単位でピクチャ内の第k番目のタイルのサイズを規定する、両端値を含む、0から((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1)に及ぶ範囲のkに対するリストTileSizeInCtbsY[k]は、以下の(疑似コード4')のように導出される。
for(areaId=0;areaId<=255;areaId++)
AreaSizeInCtbsY[areaId]=0
for(j=0、k=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++、k++)
if(area_id_in_ps[j*(num_tile_columns_minus1+1)+i]==areaId)
AreaSizeInCtbsY[areaId]+=(colWidth[i]*rowHeight[j])
【0095】
area_id_in_ps[]は、成分0…N-1を含むベクトルであり、Nは、タイルの数であり、第i番目の成分は、タイルラスタ走査セグメント順序で第i番目のタイルが位置するセグメントに関連付けられるセグメントインデックス値を示す。成分内に入力された値は、0…256間の値、または、言い換えれば、セグメント情報48内のセグメントインデックスに関する可能な値の領域内の値を仮定する。ピクチャ復号オプション/ターゲットへの依存性、すなわち、Nが、それぞれ、ピクチャ18またはサブピクチャ54内のタイルの数であるには、ピクチャ18内のセグメントのベースアドレスが計算されるべきか、またはサブピクチャ54内のセグメントのベースアドレスが計算されるべきか、を想起されたい。
AreaSizeInCtbsY[]は、ピクチャ18またはサブピクチャ54内で発生する各セグメントインデックス値に対して、現在の復号ターゲット/オプションが何であれ、それによってカバーされるブロック64の数を示す、セグメント情報48内のセグメントインデックスに関する可能な値の領域の各部材に対する成分を含むベクトルになると解釈される。
【0096】
AreaIdからAreaIdxへのマッピングは以下の通り導出される。
NumTilesInArea[0...255]=0;
NumAreas=1
for(k=0;k<=((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1);k++)
NumTilesInArea[area_id_in_ps[k]]+=1
If(NumTilesInArea[area_id_in_ps[k]]==1)
AreaIdToAreaIdx[area_id_in_ps[k]]=NumAreas++;
【0097】
NumTilesInArea[]は、ピクチャ18またはサブピクチャ54内で発生する各セグメントインデックス値に対して、現在の復号ターゲット/オプションが何であれ、このセグメントインデックス値を有するそれぞれのセグメントによってカバーされるタイルの数を示す、セグメント情報48内のセグメントインデックスに関する可能な値の領域の各部材に対する成分を含むベクトルになると解釈される。
AreaIdToAreaIdx[]は、ピクチャ18またはサブピクチャ54内で発生する各セグメントインデックス値に対して、現在の復号ターゲット/オプションが何であれ、左上から右下にセグメント行方向に導くラスタ走査セグメント順序に沿って割り当てまたは測定されるときのそのランクまたはインデックスを示す、セグメント情報48内のセグメントインデックスに関する可能な値の領域の各部材に対する成分を含むベクトルになると解釈される。
【0098】
ビットストリーム順序で、ピクチャ内の第k番目のエリアの第1のスライスセグメントのスライスセグメントアドレスオフセットをCTB単位で規定する、両端値を含む、0から(NumAreas-1)に及ぶ範囲のkに対するリストAreaSliceSegBaseAddr[k]は、以下の(疑似コード5')の通り導出される。
AreaSliceSegBaseAddr[0]=0
for(k=1;k<( NumAreas);k++)
AreaSliceSegBaseAddr[k]=
slice_segment_base_address [k-1]
【0099】
AreaSliceSegBaseAddr[i]は、成分0…M-1を含むベクトルになると解釈され、Mは、NumAreasに等しい、セグメント30の数であり、第i番目の成分において、ベースアドレス、すなわち、AreaIdToAreaIdxを使用するデコーダおよびエンコーダによってスライスのセグメント情報48のarea_id_in_shに関連付けられ得るAreaIdxを使用して、前述のラスタ走査セグメント順序で第i番目のセグメントに対するセグメントオンセット位置44を示す。
【0100】
したがって、サブピクチャ復号オプションに明示的な送信をやはり適用する場合、ラスタ走査セグメント順序でピクチャ18またはサブピクチャ54の第1のセグメント30に対するベースアドレスの明示的な送信は、いずれにしてもゼロになるため、除外されるが、シンタックス要素slice_segment_base_addressによって定義されるベースアドレスデータフィールド130は、各セグメント30に関して、ピクチャオンセット位置24に対するオンセット位置44をアドレス指定する、それぞれのセグメントのオンセット位置44のベースアドレスを定義することに留意されたい。ベースアドレスデータフィールドによるこのベースアドレスはゼロであるという定義は、明示的なベースアドレス送信がラスタ走査セグメント順序で第2のセグメントで開始するという規約の結果である。当然、すべてのセグメントに対して明示的なベースアドレス送信が代わりに使用される場合、代替実施形態が査定され得る。
【0101】
明示的なベースアドレスシグナル伝達を使用せず、ベースアドレスの暗示的な導出を代わりに使用する場合、同じことがデコーダまたはエンコーダによって以下の通り実行され得る。以下の計算は、明示的なベースアドレスシグナル伝達の場合でさえ、ベースアドレスの計算のためにエンコーダによって使用される。
【0102】
ビットストリーム順序で、ピクチャ内の第k番目のタイルの第1のスライスセグメントのスライスセグメントアドレスオフセットをCTB単位で指定する、両端値を含む、0から((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1)に及ぶ範囲のkに対するリストTileSliceSegBaseAddr[k]、および、ビットストリーム順序で、ピクチャ内の第k番目のエリアの第1のスライスセグメントのスライスセグメントアドレスオフセットをCTB単位で指定する、両端値を含む、0から(NumAreas-1)に及ぶ範囲のkに対するリストAreaSliceSegBaseAddr[k]は、以下の(疑似コード5")の通りに導出される。
TileSliceSegBaseAddr[0]=0
AreaSliceSegBaseAddr[area_id_in_ps[0]]=0
NumTilesInArea[0...255]=0;
NumTilesInArea[area_id_in_ps[0]]=1
AreaIdToAreaIdx[area_id_in_ps[0]]=0
NumAreas=1
for(k=1;k<=((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1);k++)
NumTilesInArea[area_id_in_ps[k]]+=1
TileSliceSegBaseAddr[k]=TileSliceSegBaseAddr[k
- 1]+TileSizeInCtbsY[k-1]
If(NumTilesInArea[area_id_in_ps[k]]==1)
AreaSliceSegBaseAddr[NumAreas]=TileSliceSegBaseAddr[k]
AreaIdToAreaIdx[area_id_in_ps[k]]=NumAreas;
NumAreas++;
【0103】
また加えて、図10は、変形形態Bによるスライスヘッダがどのようになり得るかを示し、以下は、可能なセマンティックを示す。
【0104】
1に等しいfirst_slice_segment_in_area_flagは、tiles_enabled_flagが0に等しいとき、スライスセグメントが、復号順でピクチャの第1のスライスセグメントであることを規定する。さもなければ、tiles_enabled_flagが1に等しいとき、1に等しいfirst_slice_segment_in_pic_flagは、スライスセグメントが復号順でピクチャのタイルの第1のスライスセグメントであることを規定する。0に等しいfirst_slice_segment_in_pic_flagは、復号順でピクチャの第1のスライスセグメントではないことを規定する。
【0105】
注記1。このシンタックス要素は、復号順で連続する、コーディングされたピクチャ間の境界の検出のために使用され得る。しかしながら、IDRピクチャが、復号順で連続し、同じNALユニットタイプを有するとき、IDRピクチャの第1のスライスの損失は、コーディングされたピクチャ間の境界の検出に問題を引き起こす場合がある。これは、たとえば、エラーが生じやすい環境ですべてのイントラコーディングされたビデオの送信時に発生し得る。この問題は、任意の2個の連続するIDRピクチャに対して2つの異なるIDR NALユニットタイプ(IDR_W_RADLおよびIDR_N_LP)を交互に使用することによって軽減され得る。そのSEIメッセージは、その値が復号順で連続するIRAPピクチャに対して異なるシンタックス要素irap_pic_idを含むため、時間的なサブレイヤゼロインデックスSEIメッセージの使用もやはり有用であり得る。いくつかのシステム環境は、Rec.ITU-T H.222.0|ISO/IEC13818-1システム内のプレゼンテーションタイムスタンプ、ISO/IEC 14496-12 ISOベースメディアファイルフォーマットにおけるアクセスユニットフレーミング、またはIETF RFC 3550リアルタイムトランスポートプロトコルヘッダにおけるマーカビットの使用など、ピクチャ境界検出に関しても同様に有用であり得る他の規定を有する。
【0106】
1に等しいdependent_slice_segment_flagは、存在しない各スライスセグメントヘッダシンタックス要素の値がスライスヘッダ内の対応するスライスセグメントヘッダシンタックス要素の値に等しいと推論されると規定する。存在しないとき、dependent_slice_segment_flagの値は、0に等しいと推論される。
【0107】
変数SliceAddrRsは以下の通り導出される。
- dependent_slice_segment_flagが0に等しい場合、SliceAddrRsはCtbAddrInRsに等しく設定される。
- さもなければ、SliceAddrRsは、それに対するコーディングツリーブロックアドレスがCtbAddrTsToRs[CtbAddrRsToTs[CtbAddrInRs]-1]であるコーディングツリーブロックを含む、先行するスライスセグメントのSliceAddrRsに等しく設定され、ここで、変数CtbAddrInRsは、slice_segment_addressのセマンティック内に規定される。
【0108】
area_id_in_shは、そのスライスセグメントが属するタイルのインデックスを規定する。area_id_in_shの値は、0から255に及ぶ範囲とする。area_id_in_shが存在しないとき、それは0に等しいと推論される。
【0109】
slice_segment_addressは、(slice_segment_base_addr_per_tile_enable_flagが1に等しいとき)ピクチャのコーディングツリーブロックラスタ走査において、また場合によっては、ピクチャのタイルスキャンにおいて、スライスセグメント内の第1のコーディングツリーブロックを以下のように規定する。
変数maxNumCtbYは、(slice_segment_addr_offset_per_tile_enable_flag?AreaSizeInCtbsY[area_id_in_sh]:PicSizeInCtbsY)として定義される。
【0110】
slice_segment_addressシンタックス要素の長さは、Ceil(Log2(maxNumCtbsY))ビットである。slice_segment_addressの値は、両端値を含む、0からmaxNumCtbsY-1に及ぶ範囲とする。slice_segment_addr_offset_per_tile_enable_flagが0に等しいとき、slice_segment_addressの値は、同じコーディングされたピクチャのいかなる他のコーディングされたスライスセグメントNALユニットのslice_segment_addressの値にも等しくないものとする。slice_segment_addr_offset_per_tile_enable_flagが1に等しいとき、slice_segment_addressの値は、同じコーディングされたピクチャ内の同じエリアのいかなる他のコーディングされたスライスセグメントNALユニットのslice_segment_addressの値にも等しくないものとする。slice_segment_addressが存在しないとき、それは0に等しいと推論される。
【0111】
ピクチャのコーディングツリーブロックラスタ走査においてコーディングツリーブロックアドレスを指定する変数CtbAddrInRsは、CtbAddrTsToRs[slice_segment_address+(slice_segment_addr_offset_per_tile_enable_flag?TileSliceSegBaseAddr[AreaIdToAreaIdx[area_id_in_sh]]:0)]に等しく設定される。タイル走査においてコーディングツリーブロックアドレスを指定する変数CtbAddrInTsは、CtbAddrRsToTs[CtbAddrInRs]に等しく設定される。cu_qp_delta_absを含むコーディングユニットに関するルマ量子化パラメータとその予測との間の差異を指定する変数CuQpDeltaValは、0に等しく設定される。cu_chroma_qp_offset_flagを含むコーディングユニットに対するQp'CbおよびQp'Crの量子化パラメータのそれぞれの値を判定するときに使用されることになる値を指定する変数CuQpOffsetCbおよびCuQpOffsetCrは、両方とも0に等しく設定される。
【0112】
VCL NALユニットの順序、およびコーディングされたピクチャおよびアクセスユニット36に対するそれらの関連付けに関しては、以下であると言えよう。
各VCL NALユニットは、コーディングされたピクチャの部分である。
【0113】
コーディングされたピクチャ内のVCL NALユニットの順序は、以下のように制約される。
- コーディングされたピクチャの第1のVCL NALユニットは、1に等しいfirst_slice_segment_in_pic_flagを有するものとする。
- sliceSegAddrAおよびsliceSegAddrBを同じコーディングされたピクチャ内のいずれかの2個のコーディングされたスライスセグメントNALユニットAおよびBのCtbAddrTsToRs[slice_segment_address+CtbAddrRsToTs[(slice_segment_base_addr_per_tile_enable_flag?AreaSliceSegBaseAddr[AreaIdToAreaIdx[area_id_in_sh]]:0)]]の値にする。以下の条件のうちのいずれかが真であるとき、コーディングされたスライスセグメントNALユニットAは、コーディングされたスライスセグメントNALユニットBに先行するものとする。
- TileId[CtbAddrRsToTs[sliceSegAddrA]]は、TileId[CtbAddrRsToTs[sliceSegAddrB]]未満である。
- TileId[CtbAddrRsToTs[sliceSegAddrA]]は、TileId[CtbAddrRsToTs[sliceSegAddrB]]に等しく、CtbAddrRsToTs[sliceSegAddrA]は、CtbAddrRsToTs[sliceSegAddrB]未満である。
【0114】
上記に提示した効率的なサブピクチャ抽出に対する可能なHEVCコーデック拡張の説明は、それにより、現在のセグメントのオンセット位置に対するスライスの開始位置の有利な相対表示により軽減されるだけでなく、しかしながら、加えて、ピクチャ/ビデオ全体の復号に関する情報を提供することだけでなく、抽出プロセスが、実際には、当該サブピクチャ復号オプションに従って必要とされないスライスの除外または廃棄に関する活動に単に制限され得るように、そのサブピクチャ復号オプション、または、代替として、いくつかのサブピクチャ復号オプションの復号に関する情報も提供することによって、サブピクチャ抽出プロセスが軽減される、図1に関してすでに示した態様に対して予備的に拡張される。さらに言い換えれば、上記で説明したHEVC修正のこの拡張により、単にサブピクチャを復号することに対する関心、すなわち、サブピクチャ復号オプションの選択は、元のデータストリームの完全なピクチャエリアの復号に対応するすべての対応するレイヤを選ぶことによって、マルチレイヤデータストリームのレイヤが欠落するように処理される。後で、後者の態様は、上記で論じた相対的なスライス開始点指示とは無関係に使用されてもよいことに留意されよう。
【0115】
したがって、次に説明する拡張は、パラメータセットの再書き込みを伴わない、より容易な抽出プロセスを可能にする。レイヤビットストリームの抽出プロセスにおけるように、スライスデータおよびパラメータセットを伝えるNALユニットの除去は、整合するビットストリームを作成するために十分であり、そのビットストリームを受信するデコーダは、抽出されたビットストリーム内に表現される実際の動作点を容易に判定し得る。この文脈で動作点は、タイルをセグメントとして使用する場合、少なくともセグメントグリッドまたはタイリンググリッドのサブセットによって、また任意選択で、空間分解能、時間分解能、SNRスケーラビリティなど、スケーラビリティ次元によって、費やされる空間内に存在する。
【0116】
この実施形態によれば、VPSまたはSPSなどのパラメータセットは、以下で、出力タイルセット(OTS)と呼ばれるタイリングの文脈でいくつかの動作点を定義し、それに関していくつかの特性について説明する。ここで、OTSに関するパラメータはSPS内に含まれると例示的に仮定して、いくつかの実施形態を図11に示す。
【0117】
図11に示すように、パラメータセット、ここで、例示的にSPSは、タイリングシンタックス140を使用した完全なピクチャ18(図1と比較して)の復号を示し、その一例が図7に提示されており、セグメントへのピクチャ18の細分化、それぞれ、任意選択で、これらのセグメントに対するセグメントインデックス値の関連付け、および、任意選択で、これらのセグメントのオンセット位置のベースアドレス、ならびにピクチャ18のサイズ、すなわち、142において横サイズ、および144において縦サイズ、ならびに、146において、i=0である場合、ピクチャ18を復号するためのデコーダ能力レベル、を示す。148においてシンタックス要素が送信されるnum_output_tile_formatは1より大きいため、図11のパラメータセットは、追加で、他のピクチャサイズおよびピクチャ54に対する関連付けられるデコーダ能力レベルを示すさらなるサブピクチャ復号オプションに関する情報142を146にシグナリングする。図11の例によれば、出力フォーマットに対して142および144によって示すような対応するピクチャサイズをもたらすセグメント30、ここでは、例示的にタイルの様々な構成がやはり個別にシグナリングされる。150において送信されるnum_output_tile_setsはシンタックス要素内にあり、探索構成の数を示す。各構成は、インデックス152によって出力タイルフォーマットのうちの1つに関連付けられる。それぞれのピクチャ18またはピクチャ54を構成するタイルの数は154において送信され、セグメントインデックスは156において個々のタイル構成に対して送信される。最終的に、150によって示される数の各タイル構成に関して、パラメータセットは、158において、復号に関する追加の情報、すなわち、復号タイムスタンプおよび/もしくは移動時間を伴うコーディングされたピクチャバッファならびに/またはそれぞれのセグメント構成(または、タイル構成)をデータストリームから復号するために必要とされるバッファサイズに関するパラメータを示す。
【0118】
図11の実施形態を使用するとき、デコーダ38または52内で行われる復号プロセスは、定義されたOTSのうちのどれが復号のために選択されるかを示す、ターゲット出力タイルセットと呼ばれることがある追加の入力パラメータを利用し、この入力パラメータは、図1に関して上記で論じた信号58を表す。
【0119】
パラメータTargetOutputTileSetは、様々な手段によって判定され得る。
・ ファイルフォーマット、トランスポートストリーム、SDPまたは、その他の中でのシグナリングを通したシステムレイヤによる指示などの外部手段。
・ どのタイルまたはOTSがビットストリーム内に存在するか、すなわち、そのビットストリームが受けた前の抽出プロセスの記述を示す、ビットストリーム内のSEIメッセージの存在。したがって、抽出情報は、1つまたは複数の復号可能なOTSを示すデータストリーム内に含まれ得る。
・ ビットストリームのコンテンツを用いて、定義されたOTSのうちのどれが復号可能であり得るかを判定するために、アクセスユニット内のNALユニットのスライスヘッダ内のシンタックス要素tile_id_shの値を解析する。
【0120】
たとえば、以下によって、復号されるべきOTSを判定するのを助けるために定義されたOTSに優先順位が割り当てられ得る。
・ num_output_tile_setsを介したループ内の明示的なシグナリングまたは優先権をOTSに割り当てるSEIメッセージ
・ num_output_tile_setsを介したループ内の順序単位
・ ビットストリーム内に含まれたすべてのOTSの指示を有する、存在するタイル/除去されたタイルSEIメッセージ
【0121】
したがって、パラメータセット36は、148によってシグナリングされた各復号オプションに関して、またその復号オプションに関して、150および158によって定義されたような各セグメントコレクションに対して、特定のサブピクチャ構成を定義するこのセグメントコレクションがデコーダ38および52による復号ターゲットに対して選ばれる優先順位を示す優先順位指示をそれぞれ含み得る。優先順位指示は、その数が150によってシグナリングされるセグメントコレクションオプションのすべての間で全体的に、または1つの共通サブピクチャオプション、すなわち、同じサブピクチャサイズおよび対応するデコーダ能力レベルに属するグループ間で単に個々に、優先順位を示し得る。
【0122】
TileSliceSegBaseAddr導出は、以下のように、変形形態Aに関して調整される必要がある(ターコイズによって強調されている)。
タイル走査においてCTBアドレスからタイルIDへの変換を指定する、両端値を含む、0からPicSizeInCtbsY-1に及ぶ範囲のctbAddrTsに対するリストTileId[ctbAddrTs]は、以下のように導出される。
for(j=0、tileIdx=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++、tileIdx++)
tileIdxTileIdMap[tile_id_in_pps[tileIdx]]=tileIdx
for(y=rowBd[j];y<rowBd[j+1];y++) (6 9)
for(x=colBd[i];x<colBd[i+1];x++)
TileId[CtbAddrRsToTs[y*PicWidthInCtbsY+x]]=tileIdx
【0123】
CTB単位でピクチャ内の第k番目のタイルのサイズを指定する、両端値を含む、0から((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1)に及ぶ範囲のkに対するリストTileSizeInCtbsY[k]は以下の通りに導出される。
for(j=0、k=0;j<=num_tile_rows_minus1;j++)
for(i=0;i<=num_tile_columns_minus1;i++、k++ )
TileSizeInCtbsY[k]=colWidth[i]*rowHeight[j]
【0124】
第i番目のターゲットOTSに対して、CTB単位でビットストリーム順序のピクチャ内の第k番目のタイルの第1のスライスセグメントのタイル走査においてスライスセグメントアドレスオフセットを指定する、両端値を含む、0から((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1)に及ぶ範囲のkに対するリストTileSliceSegBaseAddr[k]は、以下の通り導出される。
TileSliceSegBaseAddr[0]=0
cnt=1
for(k=1;k<=((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)-1);k++)
if(tileIdxInTargetOTS){
TileSliceSegBaseAddr[cnt]=TileSliceSegBaseAddr[cnt-1]+TileSizeInCtbsY[k-1]
cnt++
//with cnt derivable from tile_id_in_sh with a mapping table to tile_id_in_sps
}
【0125】
tileIdxInTargetOTSは、TargetOutputTileSetに属するすべてのタイルに対して真であり、さもなければ偽である。上記では、TargetOutputTileSetの復号されたピクチャ内のタイル配列は、元のビットストリーム内のタイル配列と同様の状態にとどまることに留意されよう。タイル走査変換に対するラスタおよびその逆は、targetOutputTileSet内のタイルのみを考慮して行われる。
【0126】
すでに上記で示したように、パラメータセット36およびピクチャサイズのそのシグナリング、ならびに元のピクチャ18に関するだけでなく、サブピクチャ54にやはり関する対応するデコーダ能力レベルのそのシグナリングを考慮する、図11に関して説明したばかりの拡張は、たとえば、前述のスライスの開始位置情報42が存在しないフレームワークにおいて使用され得る。たとえば、慣例により、スライスは、セグメント30内で開始せず、単にセグメントオンセット位置において開始するように制約され得る。その場合、たとえば、セグメント情報48は十分であり得る。他の例も可能であり得る。いずれの場合も、(開始位置情報42の有無にかかわらず)ストリーム10または12を受信するデコーダ38または52は、以下のように、36'に等しいパラメータセット36内の情報を使用する。具体的には、デコーダは、10または12であってよいインバウンドデータストリームからパラメータセット36を復号し、そのインバウンドデータストリーム上でピクチャ復号が実行されるべきかまたはサブピクチャ復号が実行されるべきかの、復号オプション指示58を導出する。ピクチャ復号は、データストリーム10からピクチャ18を復号するターゲット、すなわち、すべてのセグメント30の中からのピクチャ10の構成を示す。したがって、この目的を達成するために、すべてのスライス26がデータストリーム10内にある必要がある。サブピクチャ復号目的は、データストリーム12からのピクチャ54の復号のターゲットである。「ピクチャ54」は、ピクチャサイズおよび形状ならびにデコーダ能力レベルにおいて同じ差異を有する、2つ以上のサブピクチャ復号オプションがパラメータセット36内でシグナリングされ得ることを意味する。たとえば、図1の例では、隣り合う2個のセグメント30からのサブピクチャ54を形成する構成すること、2個のセグメント30から1つずつサブピクチャ54を構成すること、または1個のセグメント30のみからサブピクチャ54を構成することから、異なるサブピクチャ復号オプションが生じ得、これらの例は、たとえば、3個のセグメント30の中からサブピクチャを構成することによって拡張可能である。
【0127】
ピクチャ復号がデータストリーム上で実行されることになる場合、デコーダは、i=0の場合、142および144を介してなど、ピクチャ18のサイズをパラメータセット36から導出し、i=0の場合、146を介してなど、ピクチャ18を復号するために必要とされるデコーダ能力レベルの指示をデータストリームから導出し、デコーダは、タイリングシンタックス140からなど、符号化相互依存せずにデータストリームに符号化されるセグメント30、すなわち、すべてのセグメントの第1のセットへのピクチャ18の細分化に関する情報をパラメータセット36から導出する。さらに、デコーダは、ピクチャ18がコーディング経路22に沿って区分化されるスライス26単位でデータストリームからピクチャ18を復号する。個々のスライス26が開始位置情報を含む場合、個々のスライス26の復号されたピクチャコンテンツの配置に関しては、上記の説明を参照されたい。デコーダは、そのデコーダ能力レベルがデコーダ38によって満たされるかどうか、デコーダ能力レベルを検査することであり得る。
【0128】
しかしながら、インバウンドデータストリーム上でサブピクチャ復号が実行されることを示唆する復号オプション指示58の場合、デコーダは、サブピクチャ54のさらなるピクチャサイズ、および、i≠0の場合、142、144、および146を介してなど、データストリームからサブピクチャを復号するために必要とされるデコーダ能力レベルの指示をパラメータセット36から導出し、符号化相互依存せずにセグメントがデータストリームに符号化されるセグメントの第2のセットであって、ピクチャ18のセグメントのセットのサブセットである第2のセットへのサブピクチャ54の細分化に関する情報をパラメータセット36から導出し、サブピクチャ54が符号化されるそれらのスライス26単位でサブピクチャ54をデータストリームから復号する。ここでさえも、デコーダは、コーディング経路22'を使用するか、または従う。このときコーディング経路22'は、他のターゲット目的、すなわち、サブピクチャ54を横断する。ピクチャ18を横断するコーディング経路22のように、コーディング経路22'は、サブピクチャ54をセグメント単位で連続的に横断し、サブピクチャ54のいずれかの断片に関するスライスのうちの各スライス26は、セグメントの第2のセットの中から、サブピクチャ54の構成を形成する、セグメントの1つの断片が、または1つまたは複数のセグメントが完全に符号化されている。コーディング経路またはコーディング順序22'は、元のピクチャ18内でコーディング経路22によってサブセットが横断される順序とは異なる順序で、サブピクチャ54の構成に参加するセグメント30のサブセットを横断し得ることに留意されたい。しかしながら、セグメントコーディング非依存性はセグメント境界をこえるコーディング依存性をいずれにしても妨げるため、これは復号結果に影響を及ぼさない。しかしながら、各セグメント30内で、経路22および22'が一致し、このことは、開始位置情報42の使用に影響が及ばないとき、復号同期、およびスライスのコンテンツの配置さえも維持するために重要である。この場合も、デコーダは、そのデコーダ能力レベルがデコーダ38/52によって満たされるかどうか、サブピクチャ復号オプションに関するデコーダ能力レベルを検査し得る。
【0129】
上記で論じたように、デコーダは、様々な手段によって、復号オプション指示58を導出し得る。たとえば、デコーダ52は、インバウンドデータストリーム、すなわち、10またな12内に存在するスライスによってカバーされたセグメントを分析して、たとえば、ネットワークデバイス50によって除外によりスライスおよび対応するセグメントが除去されているかどうかを判定し、除去されている場合、どのスライスおよび対応するセグメントが除去されているかを判定することができる。さらに、追加的にまたは代替として、使用すべき復号オプションまたはターゲットを判定するために、図1において58によって示したような外部シグナル伝達がデコーダ38または52によって使用され得る。外部シグナル伝達は、使用されるべきコーディングオプションをすでに一意に識別し得るか、または使用されるべきではないか、もしくは、たとえば、中間抽出プロセス14により利用可能ではない、いくつかのコーディングオプションを単に除外し得る。その場合、この外部シグナル伝達は、ネットワークデバイス50から生じ得るか、または、さらなる情報に基づいて、その中からデコーダが1つのコーディングオプションを選択すべきコーディングオプションのセットを確実に識別し得る。さらに、追加的にまたは代替として、使用すべき復号オプションまたはターゲットを判定するために、依然として復号可能なオプションに関する明示的な情報など、インバウンドデータストリーム内の付帯情報がデコーダ38または52によって使用され得る。外部情報と同様に、後者の情報は、抽出エンティティ、すなわち、デバイス50によって含まれていることがある。さらに、デコーダは、パラメータセット54内に存在するような復号オプションに関連付けられるデコーダ能力レベルを検査して、それらがデコーダの能力と矛盾するとき、可能な復号オプション候補のリストからいくつかを除外することができる。これらのヒントのうちのいくつかまたはすべての組合せは、復号オプション指示をやはり形成し得る。何らかのあいまいさが残る場合、デコーダは、前述の優先順位を使用して、最高優先順位を有する残りの可能な復号オプション候補のうちの1つを判定することができる。
【0130】
装置の文脈でいくつかの態様について説明してきたが、ブロックまたはデバイスが方法ステップまたは方法ステップの特徴に対応する場合、これらの態様は、対応する方法の説明をやはり表すことは明らかである。同様に、方法ステップの文脈で説明した態様は、対応する装置の対応するブロックもしくは項目または特徴の説明をやはり表す。方法ステップのうちのいくつかまたはすべては、たとえば、マイクロプロセッサ、プログラマブルコンピュータまたは電子回路など、ハードウェア装置によって(または、ハードウェア装置を使用して)実行され得る。いくつかの実施形態では、最も重要な方法ステップのうちの1つまたは複数は、そのような装置によって実行され得る。
【0131】
本発明のデータストリームは、デジタル記憶媒体上に記憶されてよく、またはインターネットなどのワイヤレス送信媒体またはワイヤード送信媒体など、送信媒体上で送信されてよい。
【0132】
いくつかの実装要件に応じて、本発明の実装形態は、ハードウェアでまたはソフトウェアで実装され得る。この実装形態は、それぞれの方法が実行されるように、プログラマブルコンピュータシステムと協働する(または、協働することが可能な)電子的可読制御信号を記憶した、デジタル記憶媒体、たとえば、フロッピーディスク、DVD、Blu-Ray、CD、ROM、PROM、EPROM、EEPROM、またはFLASH(登録商標)メモリを使用して実行され得る。したがって、デジタル記憶媒体は、コンピュータ可読であり得る。
【0133】
本発明によるいくつかの実施形態は、本明細書で説明した方法のうちの1つが実行されるように、プログラマブルコンピュータシステムと協働することができる、電子的可読制御信号を有するデータキャリアを備える。
【0134】
概して、本発明の実施形態は、コンピュータプログラム製品がコンピュータ上で実行するとき、これらの方法のうちの1つを実行するために動作可能であるプログラムコードを備えたコンピュータプログラム製品として実装され得る。プログラムコードは、たとえば、機械可読キャリア上に記憶され得る。
【0135】
他の実施形態は、機械可読キャリア上に記憶された、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0136】
言い換えれば、本発明の方法の実施形態は、したがって、コンピュータプログラムがコンピュータ上で実行するとき、本明細書で説明した方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0137】
本発明のさらなる実施形態は、したがって、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを記録したデータキャリア(または、デジタル記憶媒体、もしくはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、または記録された媒体は、一般に、有形および/または非一時的である。
【0138】
本発明の方法のさらなる実施形態は、したがって、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、たとえば、データ通信接続を介して、たとえば、インターネットを介して、転送されるように構成され得る。
【0139】
さらなる実施形態は、本明細書で説明した方法のうちの1つを実行するように構成されるかまたは適合された処理手段、たとえば、コンピュータ、またはプログラマブル論理デバイスを含む。
【0140】
さらなる実施形態は、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムをインストールしたコンピュータを含む。
【0141】
本発明によるさらなる実施形態は、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを受信機に(たとえば、電子的にまたは光学的に)転送するように構成された装置またはシステムを含む。受信機は、たとえば、コンピュータ、モバイルデバイス、メモリデバイスなどであってよい。装置またはシステムは、たとえば、コンピュータプログラムを受信機に転送するためのファイルサーバを備える。
【0142】
いくつかの実施形態では、本明細書で説明した方法の機能性のうちのいくつかまたはすべてを実行するためにプログラマブル論理デバイス(たとえば、フィールドプログラマブルゲートアレイ)が使用され得る。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書で説明した方法のうちの1つを実行するために、マイクロプロセッサと協働し得る。概して、これらの方法は、好ましくは、任意のハードウェア装置によって実行される。
【0143】
本明細書で説明した装置は、ハードウェア装置を使用して、もしくはコンピュータを使用して、またはハードウェア装置とコンピュータの組合せを使用して、実装され得る。
【0144】
本明細書で説明した装置、または本明細書で説明した装置のいずれかの構成要素は、ハードウェアで、かつ/またはソフトウェアで少なくとも部分的に実装され得る。
【0145】
本明細書で説明した方法は、ハードウェア装置を使用して、もしくはコンピュータを使用して、またはハードウェア装置とコンピュータの組合せを使用して、実行され得る。
【0146】
本明細書で説明した方法、または本明細書で説明した装置のうちのいずれかの構成要素は、ハードウェアによって、かつ/またはソフトウェアによって少なくとも部分的に実行され得る。
【0147】
上記で説明した実施形態は、本発明の原理を単に例示する。本明細書で説明した配置および詳細の修正および変形形態は、他の当業者に明らかになろうことが理解される。したがって、本明細書の実施形態の記述および説明によって提示された特定の詳細によってではなく、以下の特許請求項の範囲によってのみ、限定されることが意図される。
【符号の説明】
【0148】
10 データストリーム
12 データストリーム
14 サブピクチャ抽出
16 エンコーダ
18 ピクチャ
20 ビデオ
22 コーディング経路
22' コーディング経路
24 ピクチャオンセット位置
26 スライス
28 スライス
30 セグメント
32 スライスペイロード
34 スライスヘッダ
36 パラメータセット、アクセスユニット
36' パラメータセット
38 デコーダ
40 開始位置
42 開始位置情報
44 オンセット位置
46 相対開始位置
48 セグメント情報
50 ネットワークデバイス
52 デコーダ
54 ピクチャ、サブピクチャ
54" ピクチャ
56 抽出されたビデオ
58 復号オプション指示
60 開始位置コーディングモードフラグ
62 絶対開始位置指示
64 コーディングブロック
70 ピクチャパラメータセット
72 シーケンスパラメータセット
74 ビデオパラメータセット
76 VCL NALユニット
78 VCL NALユニット
80 NALUヘッダ
86 タイリングシンタックス
88 タイル
94 ベーススライスセグメントアドレス
96 オフセットスライスセグメントアドレス
98 スライスセグメントアドレス
106 フラグ
112 開始位置コーディングモードフラグ
114 シンタックス要素、
116 ラスタ走査セグメント順序
120 フラグ
122 第1のシンタックス要素
124 第2のシンタックス要素
130 ベースアドレスデータフィールド
140 タイリングインデックス
142 サブピクチャ復号オプションに関する情報
152 インデックス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11