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

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

▶ ノキア テクノロジーズ オーユーの特許一覧

特許7437374ビデオコーディングでのタイル関連アドレス指定のための方法および装置
<>
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図1
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図2
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図3
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図4
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図5A
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図5B
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図6
  • 特許-ビデオコーディングでのタイル関連アドレス指定のための方法および装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-14
(45)【発行日】2024-02-22
(54)【発明の名称】ビデオコーディングでのタイル関連アドレス指定のための方法および装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240215BHJP
【FI】
H04N19/70
【請求項の数】 18
(21)【出願番号】P 2021500125
(86)(22)【出願日】2019-06-18
(65)【公表番号】
(43)【公表日】2021-11-11
(86)【国際出願番号】 FI2019050469
(87)【国際公開番号】W WO2020008103
(87)【国際公開日】2020-01-09
【審査請求日】2022-04-15
(31)【優先権主張番号】62/693,118
(32)【優先日】2018-07-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】315002955
【氏名又は名称】ノキア テクノロジーズ オーユー
(74)【代理人】
【識別番号】100127188
【弁理士】
【氏名又は名称】川守田 光紀
(72)【発明者】
【氏名】ハンヌクセラ ミスカ
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】特表2015-526006(JP,A)
【文献】国際公開第2012/060459(WO,A1)
【文献】国際公開第2013/150943(WO,A1)
【文献】特表2015-516756(JP,A)
【文献】特表2014-525151(JP,A)
【文献】米国特許出願公開第2015/0016503(US,A1)
【文献】国際公開第2013/150944(WO,A1)
【文献】特開2013-219806(JP,A)
【文献】特開2017-055433(JP,A)
【文献】特表2015-516747(JP,A)
【文献】MISRA, Kiran et al.,An Overview of Tiles in HEVC,IEEE Journal of Selected Topics in Signal Processing,IEEE,2013年06月27日,Vol.7, No.6,pp.969-977,[online], [retrieved on 2023-05-31], Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/document/6547985>
【文献】WANG, Ye-Kui et al.,On Slicing and Tiling in VVC,JVET-L0114 (version 1),ITU,2018年09月25日,pp.1-5,[online],[retrieved on 2023-05-31],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0114-v1.zip>,JVET-L0114-v1-SlicingTiling.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ピクチャを受信することと、
前記ピクチャを、1つ以上のスライスであって1つ以上のタイルを含むスライスにエンコードすることと、
前記1つ以上のスライスのうちの1つのスライスのスライスヘッダに、前記1つのスライスの第1のブロックを含むタイルのタイル位置を示すタイル識別子をエンコードすること、ここで、前記第1のブロックを含むタイルのタイル位置を示すタイル識別子は、前記1つのスライスの1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子に含まれる、前記エンコードすることと、
前記第1のブロックのために、前記第1のブロックを含むタイルについてのブロックインデックスを構築することと、
1つ以上のタイル識別子値の各々について、タイル位置を示すタイル識別子についてのタイル識別子値の割り当てをパラメータセットにエンコードすることと、
を含み、前記1つ以上のタイル識別子値は、タイルグリッド内におけるタイルのラスタスキャン順に割り当てられる複数の値の既定のシーケンスに含まれる、
方法。
【請求項2】
前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築することをさらに含み、
前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される、請求項1に記載の方法。
【請求項3】
前記ピクチャに対応付けられるデコーディング順序制限ファイルを構築することをさらに含み、
前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む、請求項1に記載の方法。
【請求項4】
前記1つ以上のスライスはそれぞれ前記1つ以上のタイルの左上角から始まる、請求項1に記載の方法。
【請求項5】
少なくとも1つのプロセッサと、1つ以上のプログラムのためのコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置であって、
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、
ピクチャを受信させ、
前記ピクチャを、1つ以上のスライスであって1つ以上のタイルを含むスライスにエンコードさせ、
前記1つ以上のスライスのうちの1つのスライスのスライスヘッダに、前記1つのスライスの第1のブロックを含むタイルのタイル位置を示すタイル識別子をエンコードさせ、
前記第1のブロックのために、前記第1のブロックを含むタイルについてのブロックインデックスを構築させ、
1つ以上のタイル識別子値の各々について、タイル位置を示すタイル識別子についてのタイル識別子値の1つ以上の割り当てをパラメータセットにエンコードさせる
ように構成され、ここで前記1つ以上のタイル識別子値は、タイルグリッド内におけるタイルのラスタスキャン順に割り当てられる複数の値の既定のシーケンスに含まれる、装置。
【請求項6】
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、
前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築させるように構成され、
前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される、
請求項5に記載の装置。
【請求項7】
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、
前記ピクチャに対応付けられるデコーディング順序制限ファイルを構築させるように構成され、
前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む、
請求項5に記載の装置。
【請求項8】
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、前記1つ以上のスライスはそれぞれ前記1つ以上のタイルの左上角から始まることとさせる、請求項5に記載の装置。
【請求項9】
装置の処理手段に実行されると、前記装置に、請求項1から4のいずれかに記載の方法を遂行させるように構成されるプログラム命令を備える、コンピュータプログラム。
【請求項10】
1つ以上のスライスを含むコード化されたピクチャを受信することと、
前記1つ以上のスライスのうちの1つのスライスのスライスヘッダから、前記1つのスライスの第1のブロックを含むタイルのタイル位置を示すタイル識別子をデコードすることと、
前記1つ以上のスライスのうちの前記1つのスライスの前記スライスヘッダから、前記1つのスライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子をデコードすることと、
1つ以上のタイル識別子値の各々について、タイル位置を示すタイル識別子についてのタイル識別子値の割り当てを、パラメータセットからデコードすることと、
前記第1のブロックのために、前記第1のブロックを含むタイルについてのブロックインデックスをデコードすることと、
前記スライス内の1つ以上のタイルについての1つ以上のタイル位置から始まる、デコードされたピクチャに、前記スライスのスライスデータをデコードすることと、
を含み、前記1つ以上のタイル識別子値は、タイルグリッド内におけるタイルのラスタスキャン順に割り当てられる複数の値の既定のシーケンスに含まれる、方法。
【請求項11】
前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルをデコードすることをさらに含み、
前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される、請求項10に記載の方法。
【請求項12】
前記ピクチャに対応付けられるデコーディング順序制限ファイルに従って前記1つ以上のタイルをデコードすることをさらに含み、
前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む、請求項10に記載の方法。
【請求項13】
前記1つ以上のスライスはそれぞれ前記1つ以上のタイルの左上角から始まる、請求項10に記載の方法。
【請求項14】
少なくとも1つのプロセッサと、1つ以上のプログラムのためのコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置であって、
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、
1つ以上のスライスを含むコード化されたピクチャを受信させ、
前記1つ以上のスライスのうちの1つのスライスのスライスヘッダから、前記1つのスライスの第1のブロックを含むタイルのタイル位置を示す1つ以上のタイル識別子をデコードさせ、
1つ以上のタイル識別子値の各々について、タイル位置を示すタイル識別子についてのタイル識別子値の割り当てを、パラメータセットからデコードさせ、
前記第1のブロックのために、前記第1のブロックを含むタイルについてのブロックインデックスをデコードさせ、
前記スライス内の1つ以上のタイルについての1つ以上のタイル位置から始まる、デコードされたピクチャに、前記スライスのスライスデータをデコードさせる
ように構成され、前記1つ以上のタイル識別子値は、タイルグリッド内におけるタイルのラスタスキャン順に割り当てられる複数の値の既定のシーケンスに含まれる、装置。
【請求項15】
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、
前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルをデコードさせるように構成され、
前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される、
請求項14に記載の装置。
【請求項16】
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、
前記ピクチャに対応付けられるデコーディング順序制限ファイルに従って前記1つ以上のタイルをデコードさせるように構成され、
前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む、
請求項14に記載の装置。
【請求項17】
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、前記1つ以上のスライスはそれぞれ前記1つ以上のタイルの左上角から始まることとさせる、請求項14に記載の装置。
【請求項18】
装置の処理手段に実行されると、前記装置に、請求項10から13のいずれかに記載の方法を遂行させるように構成されるプログラム命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
例示的な実施形態は、概して、ビデオエンコーディングおよびデコーディングに関する。
【背景】
【0002】
高効率ビデオコーディング(High Efficiency Video Coding:HEVC)コーデックなどの一部のビデオコーデックでは、ビデオピクチャは、ピクチャの領域をカバーする複数オンコーディングユニット(Coding Unit:CU)に分割される。CUは、CU内のサンプルに対して予測プロセスを定義する1つ以上の予測ユニット(Prediction Unit:PU)と、CUでのサンプルに対して予測誤差コーディングプロセスを定義する1つ以上の変換ユニット(Transform Unit:TU)とで構成されている。CUは、既定のセットの可能なCUサイズから選択可能なサイズを有するサンプルの正方形ブロックで構成されている。最大許容サイズを有するCUは、最大コーディングユニット(Largest Coding Unit:LCU)またはコーディングツリーユニット(Coding Tree Unit:CTU)と名付けられ得、ビデオピクチャは、非重複LCUに分割される。LCUは、例えば、LCUおよび得られたCUを繰り返し分割することによって、より小さいCUの組合せにさらに分割され得る。得られた各CUは、CUに対応付けられた少なくとも1つのPUおよび少なくとも1つのTUを有し得る。各PUおよびTUは、予測および予測誤差コーディングプロセスの粒度をそれぞれ増加させるために、より小さいPUおよびTUにさらに分割され得る。各PUは、PU内のピクセルに対して適用される予測の種類を定義する、PUに対応付けられた予測情報(例えば、インター予測PUについての動きベクトル情報およびイントラ予測PUについてのイントラ予測指向性情報)を有する。
【0003】
スライスは、1つの独立したスライスセグメント、および(もしあれば)同じアクセスユニット内の次の独立したスライスセグメントに先行する、(もしあれば)すべての後続の従属のスライスセグメントに含まれる、整数のCTUである。HEVCでは、スライスヘッダは、現在のスライスセグメントであるか、または現在の従属のスライスセグメントに先行する独立したスライスセグメントである、独立したスライスセグメントのスライスセグメントヘッダであるように定義され、スライスセグメントヘッダは、スライスセグメントで表される最初のまたはすべてのコーディングツリーユニットに関するデータ要素を含むコード化されたスライスセグメントの一部であるように定義される。CUは、タイルが使用されていない場合、複数のタイル内またはあるピクチャ内のLCUのラスタースキャン順序でスキャンされる。LCU内で、複数のCUは、特定のスキャン順序を有する。ピクチャ内のスライスの位置は、ピクチャ内のラスタースキャン順序でブロックインデックス化を介して示される。
【0004】
ピクチャ内のスライスの位置は、ピクチャ内のラスタースキャン順序でブロックインデックス化を介して示されるため、スライスの位置変更、または(ピクチャの左上のコーナーから始まるピクチャ全体のサブセット以外の)タイルもしくはスライスのサブセットの抽出は、スライスヘッダの書き換えを必要とする。スライスの位置変更は、それ自体のビットストリームについてのタイルセットの抽出、360度ビデオについてエンコードされたピクチャとは異なるデコードされたピクチャでのタイル順序またはピクチャサイズでのビューポート切り換えのときなどの様々な異なる状況で起こる。スライスヘッダ書き換えは、ストリームのビットレートに影響を及ぼし、及び/又は特別な書き換え命令を必要とし、これらすべては、さらなる計算時間およびリソースの利用を要するため、スライスの位置変更の目的のスライスヘッダの書き換えは、非効率である。
【摘要】
【0005】
一部の実施形態では、方法、装置、およびコンピュータプログラム製品は、ピクチャをコード化されたピクチャにエンコードするために、例示的な実施形態に従って提供される。例示的な一実施形態では、ピクチャを受信することを含む方法が提供される。前記方法は、前記ピクチャを1つ以上のスライスにエンコードすることをさらに含む。前記方法は、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子を、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダにエンコードすることをさらに含む。前記方法は、パラメータセットファイル内のタイル位置を示す前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをエンコードすることをさらに含む。
【0006】
そのような方法の一部の実施態様では、前記方法は、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスを前記スライスヘッダにエンコードすることをさらに含む。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記方法は、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築することをさらに含む。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記方法は、前記ピクチャに対応付けられるデコーディング順序制限ファイルを構築することをさらに含む。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0007】
別の例示的な実施形態では、少なくとも1つのプロセッサと、1つ以上のプログラムのためのコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置が提供される。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、ピクチャを受信させるように構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記ピクチャを1つ以上のスライスにエンコードさせるようにさらに構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子を、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダにエンコードさせるようにさらに構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、パラメータセットファイル内のタイル位置を示す前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをエンコードさせるようにさらに構成されている。
【0008】
そのような装置の一部の実施態様では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスを前記スライスヘッダにエンコードさせるようにさらに構成されている。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築させるようにさらに構成されている。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記ピクチャに対応付けられるデコーディング順序制限ファイルを構築させるようにさらに構成されている。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0009】
別の例示的な実施形態では、ピクチャを受信するための手段を備える装置が提供される。前記装置は、前記ピクチャを1つ以上のスライスにエンコードするための手段をさらに備える。前記装置は、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子を、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダにエンコードするための手段をさらに備える。前記装置は、パラメータセットファイル内のタイル位置を示す前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをエンコードするための手段をさらに備える。
【0010】
そのような装置の一部の実施態様では、前記装置は、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスを前記スライスヘッダにエンコードするための手段をさらに備える。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記装置は、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築するための手段をさらに備える。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記装置は、前記ピクチャに対応付けられるデコーディング順序制限ファイルを構築するための手段をさらに備える。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0011】
さらに別の例示的な実施形態では、コンピュータ実行可能プログラムコード命令が記憶された少なくとも1つの非一時的コンピュータ可読記憶媒体を含む、コンピュータプログラム製品が提供される。前記コンピュータ実行可能プログラムコード命令は、実行時に、ピクチャを受信するように構成されたプログラムコード命令を含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記ピクチャを1つ以上のスライスにエンコードするように構成されたプログラムコード命令をさらに含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子を、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダにエンコードするように構成されたプログラムコード命令をさらに含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、パラメータセットファイル内のタイル位置を示す前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをエンコードするように構成されたプログラムコード命令をさらに含む。
【0012】
そのようなコンピュータプログラム製品の一部の実施態様では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスを前記スライスヘッダにエンコードするように構成されたプログラムコード命令をさらに含む。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築するように構成されたプログラムコード命令をさらに含む。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記ピクチャに対応付けられるデコーディング順序制限ファイルを構築するように構成されたプログラムコード命令をさらに含む。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0013】
一部の実施形態では、方法、装置、およびコンピュータプログラム製品は、ピクチャ内予測有効(In-Picture-Prediction-Enabled:IPPE)タイルセットを構築するために、例示的な実施形態に従って提供される。例示的な一実施形態では、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信またはエンコードすることを含む方法が提供される。前記方法は、前記1つ以上のタイルから1つ以上の従属タイルを識別することをさらに含む。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位(logical atomic unit)を形成する。前記方法は、前記1つ以上の従属タイルを含むピクチャ内予測有効タイルセットの標示を構築することをさらに含む。前記方法は、前記ビットストリームおよび前記ピクチャ内予測有効タイルセットの前記標示を保存することをさらに含む。
【0014】
そのような方法の一部の実施態様では、前記方法は、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報(supplemental enhancement information)メッセージのうちの1つ以上で、前記ピクチャ内予測有効タイルセットの前記標示をエンコードすることをさらに含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0015】
別の例示的な実施形態では、少なくとも1つのプロセッサと、1つ以上のプログラムのためのコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置が提供される。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信またはエンコードさせるように構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、1つ以上の従属タイルを前記1つ以上のタイルから識別させるようにさらに構成されている。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記1つ以上の従属タイルを含むピクチャ内予測有効タイルセットの標示を構築させるようにさらに構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記ビットストリームおよび前記ピクチャ内予測有効タイルセットの前記標示を保存するようにさらに構成されている。
【0016】
そのような装置の一部の実施態様では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上で、前記ピクチャ内予測有効タイルセットの前記標示をエンコードさせるようにさらに構成されている。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0017】
別の例示的な実施形態では、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信またはエンコードするための手段を備える装置が提供される。前記装置は、1つ以上の従属タイルを前記1つ以上のタイルから識別するための手段をさらに備える。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記装置は、前記1つ以上の従属タイルを含むピクチャ内予測有効タイルセットの標示を構築するための手段をさらに備える。前記装置は、前記ビットストリームおよび前記ピクチャ内予測有効タイルセットの前記標示を保存するための手段をさらに備える。
【0018】
そのような装置の一部の実施態様では、前記装置は、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上で、前記ピクチャ内予測有効タイルセットの前記標示をエンコードするための手段をさらに備える。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0019】
さらに別の例示的な実施形態では、コンピュータ実行可能プログラムコード命令が記憶された少なくとも1つの非一時的コンピュータ可読記憶媒体を含む、コンピュータプログラム製品が提供される。前記コンピュータ実行可能プログラムコード命令は、実行時に、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信またはエンコードするように構成されたプログラムコード命令を含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、1つ以上の従属タイルを前記1つ以上のタイルから識別するように構成されたプログラムコード命令をさらに含む。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記1つ以上の従属タイルを含むピクチャ内予測有効タイルセットの標示を構築するように構成されたプログラムコード命令をさらに含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記ビットストリームおよび前記ピクチャ内予測有効タイルセットの前記標示を保存するように構成されたプログラムコード命令をさらに含む。
【0020】
そのようなコンピュータプログラム製品の一部の実施態様では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上で、前記ピクチャ内予測有効タイルセットの前記標示をエンコードするように構成されたプログラムコード命令をさらに含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0021】
一部の実施形態では、方法、装置、およびコンピュータプログラム製品は、コード化されたピクチャをデコードするために、例示的な実施形態に従って提供される。
【0022】
例示的な一実施形態では、1つ以上のスライスを含むコード化されたピクチャを受信することを含む方法が提供される。前記方法は、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダから、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子をデコードすることをさらに含む。前記方法は、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置から始まる、デコードされたピクチャに、前記スライスのスライスデータをデコードすることをさらに含む。
【0023】
そのような方法の一部の実施態様では、前記方法は、前記スライスヘッダから、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスをデコードすることをさらに含む。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記方法は、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルをデコードすることをさらに含む。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記方法は、パラメータセットファイルから、前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをデコードすることをさらに含む。一部の実施形態では、前記方法は、前記ピクチャに対応付けられるデコーディング順序制限ファイルに従って前記1つ以上のタイルをデコードすることをさらに含む。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0024】
別の例示的な実施形態では、少なくとも1つのプロセッサと、1つ以上のプログラムのためのコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置が提供される。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、1つ以上のスライスを含むコード化されたピクチャを受信させるように構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダから、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子をデコードさせるようにさらに構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置から始まる、デコードされたピクチャに、前記スライスのスライスデータをデコードさせるようにさらに構成されている。
【0025】
そのような装置の一部の実施態様では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記スライスヘッダから、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスをデコードさせるようにさらに構成されている。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルをデコードさせるようにさらに構成されている。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、パラメータセットファイルから、前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをデコードさせるようにさらに構成されている。一部の実施形態では、前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記ピクチャに対応付けられるデコーディング順序制限ファイルに従って前記1つ以上のタイルをデコードさせるようにさらに構成されている。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0026】
別の例示的な実施形態では、1つ以上のスライスを含むコード化されたピクチャを受信するための手段を備える装置が提供される。前記装置は、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダから、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子をデコードするための手段をさらに備える。前記装置は、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置から始まる、デコードされたピクチャに、前記スライスのスライスデータをデコードするための手段をさらに備える。
【0027】
そのような装置の一部の実施態様では、前記装置は、前記スライスヘッダから、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスをデコードするための手段をさらに備える。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記装置は、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルをデコードするための手段をさらに備える。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記装置は、パラメータセットファイルから、前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをデコードするための手段をさらに備える。一部の実施形態では、前記装置は、前記ピクチャに対応付けられるデコーディング順序制限ファイルに従って前記1つ以上のタイルをデコードするための手段をさらに備える。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0028】
別の例示的な実施形態では、コンピュータ実行可能プログラムコード命令が記憶された少なくとも1つの非一時的コンピュータ可読記憶媒体を含む、コンピュータプログラム製品が提供される。前記コンピュータ実行可能プログラムコード命令は、実行時に、1つ以上のスライスを含むコード化されたピクチャを受信するように構成されたプログラムコード命令を含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記1つ以上のスライスのうちの1つのスライスのスライスヘッダから、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置を示す1つ以上のタイル識別子をデコードするように構成されたプログラムコード命令をさらに含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記スライス内の1つ以上のタイルについての1つ以上のタイル位置から始まる、デコードされたピクチャに、前記スライスのスライスデータをデコードするように構成されたプログラムコード命令をさらに含む。
【0029】
そのようなコンピュータプログラム製品の一部の実施態様では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記スライスヘッダから、前記1つ以上のタイルののうちの1つのタイルについてのブロックインデックスをデコードするように構成されたプログラムコード命令をさらに含む。前記ブロックインデックスは、前記1つのタイル内のブロックについてのブロック位置を示すシンタックス要素を含む。一部の実施形態では、前記1つ以上のタイル識別子のうちの1つのタイル識別子は、前記スライスの既定のブロックを含むタイルを示す。一部の実施形態では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルをデコードするように構成されたプログラムコード命令をさらに含む。前記1つ以上の動きベクトルは、前記1つ以上のタイル識別子によって示される前記1つ以上のタイルについての位置を定義する1つ以上のアンカー場所識別子から導出される1つ以上のアンカー場所で適用される。一部の実施形態では、前記コンピュータ実行可能プログラムコード命令は、実行時に、パラメータセットファイルから、前記1つ以上のタイル識別子についての1つ以上のタイル識別子値の1つ以上の割り当てをデコードするように構成されたプログラムコード命令をさらに含む。一部の実施形態では、前記コンピュータ実行可能プログラムコード命令は、実行時に、前記ピクチャに対応付けられるデコーディング順序制限ファイルに従って前記1つ以上のタイルをデコードするように構成されたプログラムコード命令をさらに含む。前記デコーディング順序制限ファイルは、前記1つ以上のタイルがそのデコーダビリティに影響を及ぼすことなく並べ替えることが可能であるかどうかを示す並べ替え標示を含む。
【0030】
一部の実施形態では、方法、装置、およびコンピュータプログラム製品は、ピクチャ内予測有効(IPPE)タイルセットをデコードするために、例示的な実施形態に従って提供される。例示的な一実施形態では、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信することを含む方法が提供される。前記方法は、ピクチャ内予測有効タイルセットの標示を受信することをさらに含む。前記ピクチャ内予測有効タイルセットは、前記1つ以上のタイルから1つ以上の従属タイルを識別する。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記方法は、前記ピクチャ内予測有効タイルセットの前記標示に従って前記ビットストリームをデコードすることをさらに含む。
【0031】
そのような方法の一部の実施態様では、前記ピクチャ内予測有効タイルセットの前記標示は、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上でエンコードされる。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0032】
別の例示的な実施形態では、少なくとも1つのプロセッサと、1つ以上のプログラムのためのコンピュータプログラムコードを含む少なくとも1つのメモリと、を備える装置が提供される。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに実行されると、前記装置に少なくとも、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信させるように構成されている。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、ピクチャ内予測有効タイルセットの標示を受信させるように構成されている。前記ピクチャ内予測有効タイルセットは、前記1つ以上のタイルから1つ以上の従属タイルを識別する。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサによって、前記装置に、前記ピクチャ内予測有効タイルセットの前記標示に従って前記ビットストリームをデコードさせるように構成されている。
【0033】
そのような装置の一部の実施態様では、前記ピクチャ内予測有効タイルセットの前記標示は、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上でエンコードされる。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0034】
別の例示的な実施形態では、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信するための手段を備える装置が提供される。前記装置は、ピクチャ内予測有効タイルセットの標示を受信するための手段をさらに備える。前記ピクチャ内予測有効タイルセットは、前記1つ以上のタイルから1つ以上の従属タイルを識別する。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記装置は、前記ピクチャ内予測有効タイルセットの前記標示に従って前記ビットストリームをデコードするための手段をさらに備える。
【0035】
そのような装置の一部の実施態様では、前記ピクチャ内予測有効タイルセットの前記標示は、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上でエンコードされる。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【0036】
別の例示的な実施形態では、コンピュータ実行可能プログラムコード命令が記憶された少なくとも1つの非一時的コンピュータ可読記憶媒体を含む、コンピュータプログラム製品が提供される。前記コンピュータ実行可能プログラムコード命令は、実行時に、1つ以上のタイルを有するコード化されたピクチャを含むビットストリームを受信するように構成されたプログラムコード命令を含む。前記コンピュータ実行可能プログラムコード命令は、実行時に、ピクチャ内予測有効タイルセットの標示を受信するように構成されたプログラムコード命令をさらに含む。前記ピクチャ内予測有効タイルセットは、前記1つ以上のタイルから1つ以上の従属タイルを識別する。前記1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。前記コンピュータ実行可能プログラムコード命令は、実行時に、前記ピクチャ内予測有効タイルセットの前記標示に従って前記ビットストリームをデコードするように構成されたプログラムコード命令をさらに含む。
【0037】
そのようなコンピュータプログラム製品の一部の実施態様では、前記ピクチャ内予測有効タイルセットの前記標示は、前記ビットストリームに対応付けられるシーケンスパラメータセット、前記ビットストリームに対応付けられるピクチャパラメータセット、または前記ビットストリームに対応付けられる付加拡張情報メッセージのうちの1つ以上でエンコードされる。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットが、時間的動き制限タイルセットであるかどうかを示す。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセットの1つ以上のタイルへの予測依存性のセットであって、他の非ピクチャ内予測タイルではない1つ以上のタイルについての予測依存性のセットを示す、依存関係フォレストまたはグラフを含む。一部の実施形態では、前記標示は、前記ピクチャ内予測有効タイルセット内の従属タイルのセットのイントラブロックコピー動きベクトルのセットについてのアンカー位置のセットを含む。
【図面の簡単な説明】
【0038】
一般的な用語で本開示の特定の例示的な実施形態を記載してきたが、以下では、添付図面を参照する。これらの図面は必ずしも縮尺通りに描かれているわけではない。
【0039】
図1】本開示の例示的な実施形態に従って具体的に構成され得る装置のブロック図である。
【0040】
図2】本開示の例示的な実施形態に従って、図1の装置などによって実行される動作のセットを示すフローチャートである。
【0041】
図3】本開示の例示的な実施形態に従う、例示的な動きベクトルを示す。
【0042】
図4】本開示の例示的な実施形態に従って、図1の装置などによって実行される動作のセットを示すフローチャートである。
【0043】
図5A】本開示の例示的な実施形態に従って構築および抽出されるピクチャ内予測有効タイルセットの例を示す。
図5B】本開示の例示的な実施形態に従って構築および抽出されるピクチャ内予測有効タイルセットの例を示す。
【0044】
図6】本開示の例示的な実施形態に従って、図1の装置などによって実行される動作のセットを示すフローチャートである。
【0045】
図7】本開示の例示的な実施形態に従って、図1の装置などによって実行される動作のセットを示すフローチャートである。
【詳細説明】
【0046】
ここで、一部の実施形態は、一部であるがすべてではない本発明の実施形態が示される添付図面を参照して、より完全に以下に記載される。実際、本発明の様々な実施形態は、多くの異なる形態で具現化され得、本明細書に記載される実施形態に限定されるものとして解釈されるべきではなく、むしろ、これらの実施形態は、本開示が適用可能な法的要件を満たすように提供される。同様の参照符号は、全体を通じて同様の要素を指す。本明細書で使用される「データ」、「コンテンツ」、「情報」という用語、および類似の用語は、本発明の実施形態に従って、送信、受信、及び/又は記憶可能なデータを指すように交換可能に使用され得る。したがって、任意のそのような用語の使用は、本発明の実施形態の趣旨および範囲を限定するように理解されるべきではない。
【0047】
さらに、本明細書で使用される「回路構成」という用語は、(a)ハードウェアのみの回路実装(例えば、アナログ回路及び/又はデジタル回路での実装)、(b)本明細書に記載される1つ以上の機能を装置に実行させるように一緒に機能する、1つ以上のコンピュータ可読メモリ上に記憶されたソフトウェア及び/又はファームウェア命令を含む、回路およびコンピュータプログラム製品の組合せ、(c)ソフトウェアまたはファームウェアが物理的に存在しない場合であっても、動作のためにソフトウェアまたはファームウェアを必要とする、例えば、マイクロプロセッサまたはマイクロプロセッサの一部などの回路を指す。「回路構成」のこの定義は、任意の請求項に含まれる、本明細書でのこの用語のすべての使用に当てはまる。さらなる例として、本明細書で使用される「回路構成」という用語はまた、1つ以上のプロセッサ及び/又はその一部、さらに付随するソフトウェア及び/又はファームウェアを備える実装を含む。別の例として、本明細書で使用される「回路構成」という用語はまた、例えば、携帯電話用のベースバンド集積回路もしくはアプリケーションプロセッサ集積回路、またはサーバ、セルラーネットワークデバイス、他のネットワークデバイス、および/もしくは他のコンピューティングデバイスでの類似の集積回路を含む。
【0048】
本明細書で定義されるように、非一時的な物理記憶媒体(例えば、揮発性または不揮発性メモリデバイス)を指す「コンピュータ可読記憶媒体」は、電磁信号を指す「コンピュータ可読送信媒体」から区別され得る。
【0049】
方法、装置、およびコンピュータプログラム製品は、ビデオエンコーディングでのタイル関連アドレス指定を可能にするために、例示的な実施形態に従って提供される。方法、装置、およびコンピュータプログラム製品は、高効率ビデオコーディング規格(HEVCもしくはH.265/HEVC)または今後のバーサタイルビデオコーディング規格(Versatile Video Coding:VVC)(VVC、H.266、もしくはH.266/VVC)を含む、様々なビデオフォーマットと関連して利用され得る。例示的な実施形態は、HEVCと関連して記載されるが、本開示は、HEVCに限定されるのではなく、本開示の例示的な実施形態が部分的にまたは完全に実現され得る上での1つの可能なベースに対して説明が行われるまでである。特に、本開示は、ドラフトH.266規格で部分的にまたは完全に実現され得る。
【0050】
本開示の一部の態様は、国際標準化機構(International Standards Organization:ISO)ベースメディアファイルフォーマット(ISO/IEC 14496-12、ISOBMFFとも略される)、ムービングピクチャエキスパーツグループ(Moving Picture Experts Group:MPEG)-4ファイルフォーマット(ISO/IEC 14496-14、MP4フォーマットとしても知られている)、ネットワーク抽象化層(Network Abstraction Layer:NAL)ユニット構造化ビデオについてのファイルフォーマット(ISO/IEC 14496-15)、および第3世代パートナーシッププロジェクトについてのファイルフォーマット(3GPPファイルフォーマット)(3GPP技術仕様書26.244、3GPフォーマットとしても知られている)などのコンテナファイルフォーマットに関する。
【0051】
HEVCおよび例示的な実施形態を説明するとき、例えば、HEVCで規定されるような、算術演算子、論理演算子、関係演算子、ビット演算子、代入演算子、および範囲表記についての共通表記が使用され得る。さらに、例えば、HEVCで規定されるような共通の数学関数が使用され、例えば、HEVCで規定される演算子の共通の順序または優先度および実行順序(左から右または右から左)が使用され得る。
【0052】
HEVCおよび例示的な実施形態を説明するとき、以下の数学関数が使用され得る。Ceil(x)は、x以上の最小の整数として定義される。Log2(x)は、2を底とするxの対数として定義される。
【0053】
HEVCおよび例示的な実施形態を説明するとき、各シンタックス要素のパーシング(構文解析)プロセスを規定するために、以下の記述が使用され得る。

u(n):nビットを使用する符号なしの整数。nがシンタックス表で「v」であるとき、ビット数は、他のシンタックス要素の値に依存する形で変化する。この記述子(Descriptor)についてのパーシングプロセスは、最上位ビットが先頭に書き込まれる符号なしの整数のバイナリ表現として解釈されるビットストリームからの次のnビットによって規定される。

ue(v):左ビットが先頭の符号なしの整数のExponential-Golomb符号化シンタックス要素
【0054】
Exponential-Golombビットストリングは、例えば、以下の表を使用してコード数(codeNum)に変換され得る。
【0055】
HEVCおよび例示的な実施形態を説明するとき、シンタックス構造の関連部分のみが、シンタックスおよびセマンティクスの記述に含まれ得る。3つのドット(「...」)は、他のシンタックス要素がそのシンタックス構造に含まれ得ることを示すために使用され得る。シンタックス要素の異なる順序および名称によっても同様に実施形態が実現され得ることを理解されたい。
【0056】
HEVCおよび例示的な実施形態を説明するとき、シンタックス構造、シンタックス要素のセマンティクス、およびデコーディングプロセスは、以下のように規定され得る。ビットストリームでのシンタックス要素は、太字で表される。各シンタックス要素は、そのコード化された表現の方法のために、その名称(下線符号を伴いすべて小文字)、任意でその1つまたは2つのシンタックスカテゴリ、および1つまたは2つの記述子(Descriptor)によって記載される。デコーディングプロセスは、シンタックス要素の値および以前デコードされたシンタックス要素の値に従って動作する。シンタックス要素の値が、シンタックス表またはテキストで使用されるとき、いかなる下線符号もなく、小文字および大文字の混合によって名付けられる。大文字で始まる変数は、現在のシンタックス構造およびすべての従属シンタックス構造のデコーディングに対して導出される。大文字で始まる変数は、この変数の源であるシンタックス構造に言及することなく、後のシンタックス構造についてのデコーディングプロセスで使用され得る。小文字で始まる変数は、それらが導出されるコンテキスト内で使用されるだけである。いくつかの場合、シンタックス要素値または変数値についての「ニーモニック」の名称は、それらの数値と交換可能に使用される。「ニーモニック」の名称は、対応付けられたいかなる数値もなく使用される場合もある。値および名称の対応付けは、テキストで規定される。名称は、下線符号によって分離される文字の1つ以上のグループから構築されている。各グループは、大文字1字で始まり、さらに多くの大文字を含み得る。
【0057】
例示的な実施形態を説明するとき、用語「ファイル」は、シンタックス構造のシノニムまたはシンタックス構造のインスタンスとして使用される場合もある。例えば、フレーズパラメータセットファイルは、パラメータセットシンタックス構造、または(そのシンタックス要素の特定の値を有する)パラメータセットのインスタンスを意味するように使用され得る。他のコンテキストでは、用語「ファイル」は、コンピュータファイル、すなわち、記憶装置中でスタンドアロンユニットを形成するリソースを意味するように使用され得る。
【0058】
HEVCおよび例示的な実施形態を説明するとき、シンタックス構造は、以下を使用して規定され得る。波括弧で囲まれるステートメントのグループは、複合ステートメントであり、単一のステートメントとして機能的に扱われる。「while」構造は、ある条件が真であるかどうかのテストを規定し、真である場合、条件が真でなくなるまでステートメント(または複合ステートメント)の繰り返しの評価を規定する。「do...while」構造は、ある条件が真であるかどうかのテストが後に続く、あるステートメントの一度の評価を規定し、真である場合、条件が真でなくなるまで当該ステートメントの繰り返しの評価を規定する。「if...else」構造は、ある条件が真であるかどうかのテストを規定し、条件が真である場合、プライマリステートメントの評価を規定し、そうでない場合、代替的なステートメントの評価を規定する。この構造の「else」部分および対応付けられた代替的なステートメントは、代替的なステートメント評価が必要とされない場合は省略される。「for」構造は、ある条件のテストが後に続く、最初のステートメントの評価を規定し、条件が真である場合、条件が真でなくなるまで、後続のステートメントが後に続くプライマリステートメントの繰り返しの評価を規定する。
【0059】
ビデオコーデックは、入力ビデオを記憶/送信に好適な圧縮表現に変換するエンコーダと、圧縮ビデオ表現を閲覧可能な形態に展開可能なデコーダと、を備える。ビデオエンコーダ及び/又はビデオデコーダはまた、別々であってもよく、すなわち、コーデックを形成する必要はない。典型的には、エンコーダは、よりコンパクトな形態で(すなわち、より低いビットレートで)ビデオを表現するために、元のビデオシーケンスでのいくつかの情報を破棄する。
【0060】
多くのハイブリッドビデオエンコーダは、2段階でビデオ情報をエンコードする。まず、特定のピクチャ領域(または「ブロック」)でのピクセル値は、例えば、(コード化されているブロックに密に対応する、以前のコード化されたビデオフレームのうちの1つでの領域を発見して示す)動き補償手段によって、または(規定された方法でコード化されるブロックの周囲のピクセル値を使用する)空間的手段によって予測される。次に、予測誤差、すなわち、ピクセルの予測されたブロックと、ピクセルの元のブロックとの差がコード化される。これは、典型的には、規定された変換(例えば、離散コサイン変換(Discrete Cosine Transform:DCT)またはその変形)を使用する、ピクセル値の差の変換、係数の量子化、および量子化された係数のエントロピーコーディングによって行われる。量子化プロセスの忠実度を変えることによって、エンコーダは、ピクセル表現の精度(画質)と、結果として得られたコード化されたビデオ表現のサイズ(ファイルサイズまたは送信ビットレート)との間のバランスを制御可能である。
【0061】
時間的予測では、予測のソースは、(参照ピクチャとしても知られている)以前にデコードされたピクチャである。(「イントラブロックコピー予測」としても知られている)イントラブロックコピー(Intra Block Copy:IBC)予測は、時間的予測に同様に適用されるが、参照ピクチャは、現在のピクチャであり、以前にデコードされたサンプルのみが、予測プロセスで参照可能である。インターレイヤーまたはインタービュー予測は、時間的予測に同様に適用され得るが、参照ピクチャは、それぞれ、別のスケーラブルレイヤーからの、または別のビューからのデコードされたピクチャである。いくつかの場合、インター予測は、時間的予測のみを指し得るが、他の場合、インター予測は、時間的予測、および時間的予測と同一または類似のプロセスで実行される条件での、イントラブロックコピー、インターレイヤー予測、およびインタービュー予測のうちのいずれかを集合的に指し得る。インター予測または時間的予測は、動き補償または動き補償予測と称されることもある。
【0062】
時間的予測、動き補償、または動き補償予測とも称され得るインター予測は、時間的冗長性を低減する。インター予測では、予測のソースは、以前にデコードされたピクチャである。イントラ予測は、同じピクチャ内の隣接するピクセルが相互に関連している可能性が高いという事実を利用する。イントラ予測は、空間的または変換領域で実行可能であり、すなわち、サンプル値または変換係数のいずれかが予測可能である。空間的領域で適用されるとき、隣接する近隣のブロックのサンプル値は、現在のブロックのサンプル値の予測で使用される。イントラ予測は、インター予測が適用されないイントラコーディングで典型的に活用される。
【0063】
コーディング手順の1つの結果は、動きベクトルおよび量子化された変換係数などのコーディングパラメータのセットである。多くのパラメータは、空間的にまたは時間的に近隣のパラメータから最初に予測される場合、より効率的にエントロピーコード化することができる。例えば、動きベクトルは、空間的に隣接する動きベクトルから予測され、動きベクトル予測器についての差のみがコード化され得る。
【0064】
動きベクトルは、エンコードされているかまたはデコードされている現在の予測ユニットなどの、予測されているブロックの位置についての参照ピクチャ内の予測ブロックの位置を示すためのインター予測のために使用される2次元ユークリッドベクトルと見なされ得る。動きベクトルは、分数サンプル位置を指し、その場合、予測ブロックのサンプル値は、参照ピクチャのサンプル値から補間され得る。
【0065】
ピクチャ内予測は、以下のこと、すなわち、コーディングパラメータの空間的予測(例えば、空間的動きベクトル予測)、イントラ予測、イントラブロックコピー予測、ブロック間のループ内フィルタリング、コンテキスト適応型エントロピーコーディングでのブロック間のコンテキスト状態の更新のうちの1つ以上を集合的に含むが、それらに必ずしも限定されないように定義され得る。ピクチャ内予測の定義は、用語を参照するコンテキストに応じて調整され得る。
【0066】
デコーダは、(エンコーダによって生成され、圧縮表現で記憶される、動きまたは空間的情報を使用する)ピクセルブロックの予測された表現を形成するための、エンコーダに類似の予測手段、および予測誤差デコーディング(空間的ピクセル領域での量子化された予測誤差信号を戻す予測誤差コーディングの逆の動作)を適用することによって、出力ビデオを再構築する。予測および予測誤差デコーディング手段を適用した後、デコーダは、予測および予測誤差信号(ピクセル値)をまとめて、出力ビデオフレームを形成する。デコーダ(およびエンコーダ)はまた、出力ビデオをディスプレイのために通し、さらに/あるいはビデオシーケンスでの今度のフレームについての予測参照として記憶する前に、さらなるフィルタリング手段を適用して、出力ビデオの品質を改善し得る。フィルタリングは、例えば、デブロッキング、サンプル適応型オフセット(Sample Adaptive Offset:SAO)、及び/又は適応型ループフィルタリング(Adaptive Loop Filtering:ALF)のうちの1つ以上を含み得る。
【0067】
典型的なビデオコーデックでは、動き情報は、予測ユニットなどの、各動き補償画像ブロックに対応付けられた動きベクトルで示される。これらの動きベクトルの各々は、(エンコーダ側では)コード化され、(デコーダ側では)デコードされるピクチャでの画像ブロック、および以前にコード化またはデコードされたピクチャのうちの1つでの予測ソースブロックの変位を表す。動きベクトルを効率的に表すために、それらは、典型的には、ブロック固有の予測された動きベクトルに関して区別してコード化される。典型的なビデオコーデックでは、予測された動きベクトルは、例えば、隣接するブロックのエンコードまたはデコードされた動きベクトルの中央を計算して、既定の方法で生成される。動きベクトル予測を生成するための別の方法は、時間的参照ピクチャでの隣接するブロック及び/又は同位置のブロックから候補予測のリストを生成し、動きベクトル予測器として選択された候補をシグナリングすることである。動きベクトル値の予測に加えて、どの参照ピクチャが動き補償予測のために使用されるかが予測され、この予測情報は、例えば、以前にコード化/デコードされたピクチャの参照インデックスによって表され得る。参照インデックスは、典型的には、時間的参照ピクチャでの隣接するブロック及び/又は同位置のブロックから予測される。さらに、典型的な高効率ビデオコーデックは、多くの場合マージング/マージモードと呼ばれる、さらなる動き情報コーディング/デコーディングメカニズムを採用する。ここで、各利用可能な参照ピクチャリストに対して、動きベクトルおよび対応する参照ピクチャインデックスを含む、すべての動きフィールド情報は、いかなる修正/補正もなく予測および使用される。同様に、動きフィールド情報の予測は、時間的参照ピクチャでの隣接するブロック及び/又は同位置のブロックの動きフィールド情報を使用して実行され、使用された動きフィールド情報は、利用可能な隣接する/同位置のブロックの動きフィールド情報で満たされた動きフィールド候補リストのリスト間でシグナリングされる。
【0068】
典型的なビデオコーデックでは、動き補償の後の予測残差は、(DCTのような)変換カーネルで最初に変換され、次いでコード化される。この理由は、多くの場合、依然として残差間にいくつかの相関が存在し、変換は、多くの場合、この相関を低減し、より効率的なコーディングを提供するのに役立ち得るためである。
【0069】
動きベクトルおよび量子化された変換係数などのコーディングパラメータは、無損失でビットストリームにエンコードされる。この無損失エンコーディングは、エントロピーコーディングまたはエントロピーエンコーディングと称され得る。ビットストリームをコーディングパラメータにデコードする逆の動作は、エントロピーデコーディングと称され得る。エントロピーコーディング/デコーディングは、様々な方法で実行され得る。例えば、コンテキストベースのコーディング/デコーディングが適用され得る。ここで、エンコーダおよびデコーダの両方で、以前にコード化/デコードされたコーディングパラメータに基づいてコーディングパラメータのコンテキスト状態を修正する。コンテキストベースのコーディングは、例えば、コンテキスト適応型バイナリ算術コーディング(Context Adaptive Binary Arithmetic Coding:CABAC)もしくはコンテキストベースの可変長コーディング(Context-Based Variable Length Coding:CAVLC)、または任意の類似のエントロピーコーディングであり得る。エントロピーコーディング/デコーディングは、代替的にまたは追加的に、ハフマンコーディング/デコーディングまたはExponential-Golombコーディング/デコーディングなどの可変長コーディングスキームを使用して実行され得る。エントロピーコード化ビットストリームまたはコードワードからのコーディングパラメータのデコーディングは、パーシングと称され得る。
【0070】
パーティショニングは、セットの各要素がサブセットのうちのちょうど1つにあるような、複数のサブセットへのセットの分割として定義され得る。
【0071】
HEVCでは、ビデオピクチャは、ピクチャの領域をカバーするコーディングユニット(CU)に分割される。CUは、CU内のサンプルに対して予測プロセスを定義する1つ以上の予測ユニット(PU)、およびCUでのサンプルに対して予測誤差コーディングプロセスを定義する1つ以上の変換ユニット(TU)で構成されている。CUは、既定のセットの可能なCUサイズから選択可能なサイズを有するサンプルの正方形ブロックで構成されている。最大許容サイズを有するCUは、最大コーディングユニット(LCU)またはコーディングツリーユニット(CTU)と名付けられ得、ビデオピクチャは、非重複LCUに分割される。LCUは、例えば、LCUおよび得られたCUを繰り返し分割することによって、より小さいCUの組合せにさらに分割され得る。得られた各CUは、CUに対応付けられた少なくとも1つのPUおよび少なくとも1つのTUを有し得る。各PUおよびTUは、予測および予測誤差コーディングプロセスの粒度をそれぞれ増加させるために、より小さいPUおよびTUにさらに分割され得る。各PUは、どの種類の予測が当該PU内のピクセルに対して適用されるかを定義する、PUに対応付けられた予測情報(例えば、インター予測PUについての動きベクトル情報およびイントラ予測PUについてのイントラ予測指向性情報)を有する。
【0072】
コーディングブロックは、複数のコーディングブロックへのコーディングツリーブロック(Coding Tree Block:CTB)の分割がパーティショニングであるような、ある値のNについてのサンプルのN×Nブロックとして定義され得る。コーディングツリーブロック(CTB)は、コーディングツリーブロックへのコンポーネントの分割がパーティショニングであるような、ある値のNについてのサンプルのN×Nブロックとして定義され得る。コーディングツリーユニット(CTU)は、ルーマサンプルのコーディングツリーブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディングツリーブロック、またはモノクロームピクチャ、もしくはサンプルをコード化するために使用される3つの分離したカラープレーンおよびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングツリーブロックとして定義され得る。コーディングユニット(CU)は、ルーマサンプルのコーディングブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディングブロック、またはモノクロームピクチャ、もしくはサンプルをコード化するために使用される3つの分離したカラープレーンおよびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングブロックとして定義され得る。
【0073】
各TUは、(例えば、離散コサイン変換係数情報を含む)前記TU内のサンプルについての予測誤差デコーディングプロセスを記載する情報に対応付けられ得る。予測誤差コーディングが各CUに対して適用されるかどうかは、CUレベルでシグナリングされる。CUに対応付けられる予測誤差残差がない場合、CUについてのTUがないと考えられ得る。CUへの画像の分割、PUおよびTUへのCUの分割は、デコーダがこれらのユニットの意図された構造を再生することを可能にするように、ビットストリームでシグナリングされ得る。
【0074】
HEVC規格では、ピクチャは、複数のタイルにパーティショニングされ得る。このタイルは、矩形であり、整数のCTUを含む。HEVC規格では、タイルへのパーティショニングは、(CTUでの)タイル列幅のリストおよび(CTUでの)タイル行高さのリストによって特徴付けられ得るグリッドを形成する。タイルは、タイルグリッドのラスタースキャン順序で連続してビットストリームで順序付けられる。1つのタイルは、整数のスライスを含み得る。イントラ予測、イントラブロックコピー予測、およびエントロピーコーディングについてのコンテキスト状態予測などのピクチャ内予測の特定のタイプは、複数のタイル間で無効にされる。エンコーダは、デブロッキングフィルタリングなどのループ内フィルタリングが複数のタイル間で適用されるかどうかをビットストリームで制御して示し得る。
【0075】
ビデオコーディング規格および仕様は、エンコーダがコード化されたピクチャをコード化された複数のスライスなどに分割することを可能にし得る。ピクチャ内予測は、典型的には、スライス境界を超えると無効にされる。したがって、スライスは、コード化されたピクチャを独立でデコード可能な複数のピースに分割するための方法と見なされ得る。HEVCでは、ピクチャ内予測は、スライス境界を超えると無効にされ得る。したがって、スライスは、コード化されたピクチャを独立でデコード可能なピースに分割するための方法と見なされ得、したがって、スライスは、送信のための基本ユニットと見なされることが多い。多くの場合、エンコーダは、どのタイプのピクチャ内予測がスライス境界を超えるとオフにされるかをビットストリームで示し得、デコーダ動作は、例えば、どの予測ソースが利用可能であるかを結論付けるときに、この情報を考慮に入れる。例えば、近隣のCUからのサンプルは、近隣のCUが異なるスライスにある場合、イントラ予測に対して利用可能でないと見なされ得る。
【0076】
HEVCでは、スライスは、整数のCTUで構成されている。CTUは、タイルが使用されていない場合、複数のタイル内またはあるピクチャ内のCTUのラスタースキャン順序でスキャンされる。スライスは、整数のタイルを含み得るか、またはスライスは、タイルに含まれ得る。CTU内で、複数のCUは、特定のスキャン順序を有する。
【0077】
HEVCでは、スライスは、1つの独立したスライスセグメント、および(もしあれば)同じアクセスユニット内の次の独立したスライスセグメントに先行する、(もしあれば)すべての後続の従属のスライスセグメントに含まれる、整数のコーディングツリーユニットであるように定義される。HEVCでは、スライスセグメントは、タイルスキャンで連続して順序付けられ、かつ単一のNALユニットに含まれる、整数のコーディングツリーユニットであるように定義される。スライスセグメントへの各ピクチャの分割は、パーティショニングである。HEVCでは、独立したスライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が、先行のスライスセグメントについての値から推測されない、スライスセグメントであるように定義される。従属のスライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値が、デコーディング順序で先行の独立したスライスセグメントについての値から推測される、スライスセグメントであるように定義される。HEVCでは、スライスヘッダは、現在のスライスセグメントであるか、または現在の従属のスライスセグメントに先行する独立したスライスセグメントである、独立したスライスセグメントのスライスセグメントヘッダであるように定義され、スライスセグメントヘッダは、スライスセグメントで表される最初のまたはすべてのコーディングツリーユニットに関するデータ要素を含むコード化されたスライスセグメントの一部であるように定義される。CUは、タイルが使用されていない場合、複数のタイル内またはあるピクチャ内のLCUのラスタースキャン順序でスキャンされる。LCU内で、複数のCUは、特定のスキャン順序を有する。
【0078】
動き制限タイルセット(Motion-Constrained Tile Set:MCTS)は、この動き制限タイルセット内の任意のサンプルのインター予測のために使用される、動き制限タイルセット外のサンプル値、および動き制限タイルセット外の1つ以上のサンプル値を使用して導出される分数サンプル位置でのサンプル値がないような形で、インター予測プロセスがエンコーディングで制限されるものである。さらに、MCTSのエンコーディングは、MCTSのデコーディングで使用される、MCTS外のシンタックス要素または変数がない形に制限される。例えば、MCTSのエンコーディングは、動きベクトル候補がMCTS外のブロックから導出されない形に制限される。これは、HEVCの時間的動きベクトル予測(Temporal Motion Vector Prediction:TMVP)をオフにすることによって、またはエンコーダが、TMVP候補、もしくはMCTSの右下の最後のものを除いて、MCTSの右のタイル境界のすぐ左に配置されたPUについてのマージもしくは高度動きベクトル予測(Advanced Motion Vector Prediction:AMVP)候補リストでのTMVP候補に続く、任意の動きベクトル予測候補を使用することを許可しないことによって、強制され得る。一般に、MCTSは、MCTS外である動きベクトルなどのあらゆるサンプル値およびコード化されたデータから独立しているタイルセットであるように定義され得る。いくつかの場合、MCTSは、矩形領域を形成するように要求され得る。コンテキストに応じて、MCTSは、あるピクチャ内のタイルセット、または複数のピクチャのシーケンスにおけるそれぞれのタイルセットを指し得ることを理解されたい。それぞれのタイルセットは、ピクチャのシーケンスで対応する同位置であり(collocate)得るが、一般にそうである必要はない。
【0079】
インター予測で使用されるサンプル位置は、エンコーディング及び/又はデコーディングプロセスによって飽和し得、それでなければピクチャの外側となるであろう場所がピクチャの対応する境界サンプルを指すように飽和することに留意されたい。したがって、タイル境界もピクチャ境界である場合、いくつかの使用ケースでは、サンプル位置が境界上で飽和しているため、エンコーダは、動きベクトルが、その境界と効果的に交差することを可能にするか、または動きベクトルが、その境界の外側の場所を指す分数サンプル補間を効果的に実現することを可能にし得る。他の使用ケースでは、具体的には、コード化されたタイルが、ピクチャ境界に隣接する位置に配置されたビットストリームから、タイルがピクチャ境界に隣接しない位置に配置された別のビットストリームに抽出され得る場合、エンコーダは、任意のMCTS境界と同様にピクチャ境界で動きベクトルを制限し得る。
【0080】
HEVCの時間的動き制限タイルセット付加拡張情報(Supplemental Enhancement Information:SEI)メッセージは、ビットストリームで動き制限タイルセットの存在を示すために使用され得る。
【0081】
いくつかの例および実施形態がMCTSに関して記載されているとしても、それらは、独立でデコード可能な時空的単位の他の類似のコンセプトで同様に実現され得ることを理解されたい。さらに、そのような時空的単位についての動き制限は、前記のMCTSの方法と同様に規定され得る。そのような時空的単位の例は、動き制限スライスおよび動き制限ピクチャを含むが、それらに限定されない。動き制限スライスは、この動き制限スライス内の任意のサンプルのインター予測のために使用される、動き制限スライス外のシンタックスまたは導出された変数、動き制限スライス外のサンプル値、および動き制限スライス外の1つ以上のサンプル値を使用して導出される、分数サンプル位置でのサンプル値がないような形で、インター予測プロセスがエンコーディングで制限されるものである。フレーズ時空的単位が、単一の時間インスタンスのコンテキストで使用されるとき、それは、コード化されたピクチャの特定のサブセットに対応し、デコードされるとき、デコードされたピクチャエリアの特定のサブセットに対応する、空間的ユニットと考えられ得る。
【0082】
HEVCエンコーダの出力およびHEVCデコーダの入力についての基本ユニットは、ネットワーク抽象化層(NAL)ユニットである。パケット指向ネットワークを介した伝送または構造化ファイルへの保存のために、NALユニットは、パケットまたは類似の構造に組み込まれ得る。HEVCでは、バイトストリームフォーマットが、フレーミング構造を提供しない送信または記憶環境のために規定されている。バイトストリームフォーマットは、各NALユニットの前方で開始コードを付けることによって、互いにNALユニットを分離する。NALユニット境界の偽の検出を回避するために、エンコーダは、バイト指向開始コードエミュレーション防止アルゴリズムを実行する。このアルゴリズムは、開始コードが別の方法で生じた場合に、エミュレーション防止バイトをNALユニットペイロードに追加する。パケットおよびストリーム指向システム間の直接のゲートウェイ動作を可能にするために、開始コードエミュレーション防止は、バイトストリームフォーマットが使用されているかどうかに関わらず、常に実行され得る。NALユニットは、これに続くデータのタイプ、およびエミュレーション防止バイトで必要に応じて散在される生バイトシーケンスペイロード(Raw Byte Sequence Payload:RBSP)の形態でそのデータを含むバイトの標示を含む、シンタックス構造として定義され得る。RBSPは、NALユニットに組み込まれる整数のバイトを含むシンタックス構造として定義され得る。RBSPは、空であるか、またはRBSP停止ビット、および0に等しいゼロ以上の後続のビットが続くシンタックス要素を含む、データビットのストリングの形態を有する。
【0083】
NALユニットは、ヘッダおよびペイロードで構成されている。HEVCでは、2バイトNALユニットヘッダは、すべての指定されたNALユニットタイプのために使用される。NALユニットヘッダは、1つの予約ビット、6ビットNALユニットタイプ標示、(1以上であることが要求され得る)時間的レベルについての3ビットnuh_temporal_id_plus1標示、および6ビットnuh_layer_idシンタックス要素を含む。temporal_id_plus1シンタックス要素は、NALユニットについての時間的識別子と見なされ、ゼロベースのTemporalId変数は、以下のように導出され得る。

TemporalId=temporal_id_plus1-1

略語TIDがTemporalId変数と交換可能に使用され得る。0に等しいTemporalIdは、最も低い時間的レベルに対応する。temporal_id_plus1の値は、2NALユニットヘッダバイトを含む開始コードエミュレーションを回避するために非ゼロであることが要求される。選択された値以上のTemporalIdを有するすべてのビデオコーディングレイヤー(Video Coding Layer:VCL)NALユニットを除外し、すべての他のVCL NALユニットを含むことによって生成されるビットストリームは、適合したままである。その結果、tid_valueに等しいTemporalIdを有するピクチャは、インター予測参照としてtid_valueよりも大きいTemporalIdを有するいかなるピクチャも使用しない。サブレイヤーまたは時間的サブレイヤーは、TemporalId変数の特定の値を有するVCL NALユニット、および対応付けられた非VCL NALユニットで構成された、時間的スケーラブルビットストリームの時間的スケーラブルレイヤー(または時間的レイヤー(Temporal Layer:TL))であるように定義され得る。nuh_layer_idは、スケーラビリティレイヤー識別子として理解され得る。
【0084】
NALユニットは、ビデオコーディングレイヤー(VCL)NALユニットおよび非VCL NALユニットに分類され得る。VCL NALユニットは、典型的には、コード化されたスライスNALユニットである。HEVCでは、VCL NALユニットは、1つ以上のCUを表すシンタックス要素を含む。HEVCでは、特定の範囲内のNALユニットタイプは、VCL NALユニットを示し、VCL NALユニットタイプは、ピクチャタイプを示す。
【0085】
非VCL NALユニットは、例えば、シーケンスパラメータセット、ピクチャパラメータセット、付加拡張情報(SEI)NALユニット、アクセスユニットデリミタ、シーケンスの終端NALユニット、ビットストリームの終端(End of Bitstream:EOB)NALユニット、またはフィラーデータNALユニットのうちの1つであり得る。パラメータセットは、デコードされたピクチャの再構築のために必要とされ得るが、一方、他の非VCL NALユニットの多くは、デコードされたサンプル値の再構築に必要ではない。
【0086】
コード化されたビデオシーケンスを介して不変のままであるパラメータが、シーケンスパラメータセットに含まれ得る。デコーディングプロセスによって必要とされ得るパラメータに加えて、シーケンスパラメータセットは、任意でビデオユーザビリティ情報(Video Usability Information:VUI)を含み得、この情報は、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース予約に重要であり得るパラメータを含む。HEVCでは、シーケンスパラメータセットRBSPは、1つ以上のピクチャパラメータセットRBSP、またはバッファリングピリオドSEIメッセージを含む1つ以上のSEI NALユニットによって参照され得るパラメータを含む。ピクチャパラメータセットは、いくつかのコード化されたピクチャにおいて不変である可能性が高いパラメータを含む。ピクチャパラメータセットRBSPは、1つ以上のコード化されたピクチャのコード化されたスライスNALユニットによって参照され得るパラメータを含み得る。
【0087】
HEVCでは、ビデオパラメータセット(Video Parameter Set:VPS)は、各スライスセグメントヘッダで見出されるシンタックス要素によって参照される、ピクチャパラメータセット(Picture Parameter Set:PPS)で見出されるシンタックス要素によって参照される、シーケンスパラメータセット(Sequence Parameter Set:SPS)で見出されるシンタックス要素のコンテンツによって決定されるような、ゼロ以上の全体のコード化されたビデオシーケンスに適用されるシンタックス要素を含む、シンタックス構造として定義され得る。
【0088】
ビデオパラメータセットRBSPは、1つ以上のシーケンスパラメータセットRBSPによって参照され得るパラメータを含み得る。
【0089】
ビデオパラメータセット(VPS)、SPS、およびPPS間の関係および階層は、以下のように記載され得る。VPSは、パラメータセット階層で、ならびにスケーラビリティ及び/又は3Dビデオのコンテキストで、SPSよりも上の1つのレベルにある。VPSは、全体のコード化されたビデオシーケンスですべての(スケーラビリティまたはビュー)レイヤー間ですべてのスライスに共通であるパラメータを含み得る。SPSは、全体のコード化されたビデオシーケンスで特定の(スケーラビリティまたはビュー)レイヤーですべてのスライスに共通であるパラメータを含み、複数の(スケーラビリティまたはビュー)レイヤーによって共有され得る。PPSは、特定のレイヤー表現(1つのアクセスユニットでの1つのスケーラビリティまたはビューレイヤーの表現)ですべてのスライスに共通であるパラメータを含み、複数のレイヤー表現ですべてのスライスによって共有される可能性が高い。
【0090】
VPSは、ビットストリームでの複数のレイヤーの依存関係に関する情報、および全体のコード化されたビデオシーケンスでのすべての(スケーラビリティまたはビュー)レイヤー間ですべてのスライスに適用可能である多くの他の情報を提供し得る。VPSは、ベースVPSおよびVPS拡張子の2つの部分を含むと考えられ得る。VPS拡張子の存在は任意である。
【0091】
帯域外送信、シグナリング、または保存は、追加的にまたは代替的に、アクセスまたはセッションネゴシエーションの容易さなどの、送信誤差についての公差以外の目的のために使用され得る。例えば、ISOベースメディアファイルフォーマットに従うファイルでのトラックのサンプル入力は、パラメータセットを含み得るが、ビットストリームでのコード化されたデータは、ファイルまたは別のファイルでのどこか他の場所に記憶される。(例えば、ビットストリームに沿って示す)ビットストリーム、または(例えば、コード化されたタイルに沿って示す)ビットストリームのコード化されたユニットに沿ったフレーズは、帯域外データが、ビットストリームまたはコード化されたユニットにそれぞれ対応付けられる方法で、帯域外送信、シグナリング、または保存されたデータを指すように、請求項で使用され、実施形態で記載され得る。ビットストリームまたはビットストリームのコード化されたユニットなどに沿ったフレーズデコーディングは、ビットストリームまたはコード化されたユニットにそれぞれ対応付けられる(帯域外送信、シグナリング、または保存されたデータから取得され得る)参照された帯域外データのデコーディングを指し得る。
【0092】
SEI NALユニットは、1つ以上のSEIメッセージを含み、それは、出力ピクチャのデコーディングには要求されないが、ピクチャ出力タイミング、レンダリング、エラー検出、エラーコンシールメント、およびリソース予約などの関連プロセスを補助し得る。一部のSEIメッセージは、HEVCで規定され、ユーザデータSEIメッセージは、組織および会社が自身の使用のためにSEIメッセージを規定することを可能にする。HEVCは、規定されたSEIメッセージについてのシンタックスおよびセマンティクスを含むが、受信側でメッセージを処理するために定義されるプロセスはない。その結果、エンコーダは、SEIメッセージを生成するとき、HEVC規格に従うように要求され、HEVC規格に従うデコーダは、出力順序準拠についてのSEIメッセージを処理するように要求されない。HEVCでSEIメッセージのシンタックスおよびセマンティクスを含む理由の1つは、異なるシステム仕様が、補足情報を同様に解釈し、したがって相互運用することを可能にすることである。システム仕様は、エンコーディング側およびデコーディング側の両方で、特定のSEIメッセージの使用を要求し得、さらに、受信側で特定のSEIメッセージを処理するためのプロセスが規定され得ることが意図される。
【0093】
HEVCで、互いに異なるnal_unit_type値を有する、2つのタイプのSEI NALユニット、すなわち、サフィックスSEI NALユニットおよびプレフィックスSEI NALユニットがある。サフィックスSEI NALユニットに含まれるSEIメッセージは、デコーディング順序でサフィックスSEI NALユニットに先行するVCL NALユニットに対応付けられる。プレフィックスSEI NALユニットに含まれるSEIメッセージは、デコーディング順序でプレフィックスSEI NALユニットに続くVCL NALユニットに対応付けられる。
【0094】
コード化されたピクチャは、ピクチャのコード化された表現である。ビットストリームは、コード化されたピクチャ、および1つ以上のコード化されたビデオシーケンスを形成する対応付けられたデータの表現を形成する、NALユニットストリームまたはバイトストリームの形態での複数のビットのシーケンスとして定義され得る。第1のビットストリームの後、同じファイルまたはある通信プロトコルの同じ接続などで、同じ論理チャネルで第2のビットストリームが続き得る。(ビデオコーディングのコンテキストでの)基本ストリームは、1つ以上のビットストリームのシーケンスとして定義され得る。最初のビットストリームの終端は、ビットストリームの終端(EOB)NALユニットと称され、かつ当該ビットストリームの最後のNALユニットである、特定のNALユニットによって示され得る。
【0095】
コード化されたビデオシーケンスは、独立でデコード可能であり、かつ別のコード化されたビデオシーケンスまたはビットストリームの終端もしくはシーケンスの終端NALユニットが後に続く、デコーディング順序でのコード化されたピクチャのシーケンスとして定義され得る。
【0096】
HEVCの多くのコーディングモードまたは他のコーデックでは、インター予測についての参照ピクチャは、参照ピクチャリストについてのインデックスで示される。インデックスは、可変長コーディングでコード化され得、それは、通常、より小さいインデックスに、対応するシンタックス要素についてのより短い値を持たせる。HEVCでは、2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)は、各双予測(B)スライスに対して生成され、1つの参照ピクチャリスト(参照ピクチャリスト0)は、各インターコード化(P)スライスに対して形成される。
【0097】
参照ピクチャリスト0および参照ピクチャリスト1などの参照ピクチャリストは、2つのステップで構築され得る。まず、最初の参照ピクチャリストが生成される。最初の参照ピクチャリストは、例えば、frame_num、POC、temporal_id、もしくはGOP構造などの予測階層での情報、またはそれらの任意の組合せに基づいて生成され得る。次に、最初の参照ピクチャリストは、スライスヘッダに含まれ得る参照ピクチャリスト修正シンタックス構造としても知られている、参照ピクチャリスト並べ替え(Reference Picture List Reordering:RPLR)シンタックスによって並べ替えられ得る。最初の参照ピクチャリストは、参照ピクチャリスト修正シンタックス構造を介して修正され得る。ここで、最初の参照ピクチャリスト内のピクチャは、リストについての入力インデックスを介して識別され得る。
【0098】
HEVCを含む多くのコーディング規格は、複数の参照ピクチャのうちのどれが特定のブロックについてのインター予測のために使用されるかを示すために使用され得る参照ピクチャリストについての参照ピクチャインデックスを導出するために、デコーディングプロセスを有し得る。参照ピクチャインデックスは、エンコーダによって、いくつかのインターコーディングモードでのビットストリームにコード化され得るか、または、例えば、いくつかの他のインターコーディングモードでの近隣のブロックを使用して(エンコーダおよびデコーダによって)導出され得る。
【0099】
いくつかの候補動きベクトルは、単一の予測ユニットに対して導出され得る。例えば、動きベクトル予測HEVCは、2つの動きベクトル予測スキーム、すなわち、AMVPおよびマージモードを含む。AMVPまたはマージモードでは、動きベクトル候補のリストは、PUに対して導出される。2種類の候補、すなわち、空間的候補および時間的候補がある。ここで、時間的候補は、TMVP候補とも称され得る。
【0100】
候補リスト導出は、例えば、以下のように実行され得るが、候補リスト導出には他の方法もあり得ることを理解されたい。候補リストの占有が最大でない場合、空間的候補は、利用可能であり、かつ候補リストに既に存在しない場合に、候補リストに最初に含まれる。その後、候補リストの占有がまだ最大でない場合、時間的候補は、候補リストに含まれる。候補の数が依然として最大許容数に達していない場合、組み合わされた(Bスライスについての)双予測候補およびゼロ動きベクトルが追加される。候補リストが構築された後、エンコーダは、例えば、レート歪み最適化(Rate-Distortion Optimization:RDO)決定に基づいて候補から最後の動き情報を決定し、選択された候補のインデックスをビットストリームにエンコードする。同様に、デコーダは、選択された候補のインデックスをビットストリームからデコードし、候補リストを構築し、デコードされたインデックスを使用して、候補リストから動きベクトル予測器を選択する。
【0101】
HEVCでは、AMVPおよびマージモードは、以下のように特徴付けられ得る。AMVPでは、エンコーダは、単予測が使用されるか双予測が使用されるか、およびどの参照ピクチャが使用されるかを示し、さらに動きベクトル差をエンコードする。マージモードでは、候補リストから選択された候補のみが、ビットストリームにエンコードされ、現在の予測ユニットが、示された予測器のものと同じ動き情報を有することを示す。したがって、マージモードは、各領域に対して一度シグナリングされるだけである、同じ動き情報を共有する近隣の予測ブロックで構成された領域を生成する。
【0102】
高度動きベクトル予測の動作の例は、以下で提供されるが、例えば、異なる候補位置セットおよび候補位置セットを有する候補場所で、高度動きベクトル予測の他の類似の実現も可能である。また、マージモードなどの他の予測モードが同様に動作し得ることを理解されたい。2つの空間的動きベクトル予測器(Motion Vector Predictor:MVP)が導出され、時間的動きベクトル予測器が導出され得る。それらは、位置、すなわち、現在の予測ブロック(B、B、B)の上方に配置された3つの空間的動きベクトル予測器候補位置、および左の2つ(A、A)の間で選択され得る。各候補位置セット(B、B、B)または(A、A)の既定の順序で利用可能である(例えば、同じスライスにある、インターコード化されるなど)第1の動きベクトル予測器は、動きベクトル競合でその予測方向(上または左)を表すように選択され得る。時間的動きベクトル予測器についての参照インデックスは、(例えば、collocated_ref_idxシンタックス要素として)スライスヘッダでエンコーダによって示され得る。潜在的な時間的候補場所の既定の順序、例えば、順序(C、C)で利用可能である(例えば、インターコード化される)第1の動きベクトル予測器は、時間的動きベクトル予測器についてのソースとして選択され得る。同位置のピクチャで最初の利用可能な候補場所から取得される動きベクトルは、時間的動きベクトル予測器の参照ピクチャ、同位置のピクチャ、および現在のピクチャのピクチャ順序カウント差の割合に従って拡大縮小され得る。さらに、冗長性チェックは、同じ候補を除去するために候補間で実行され、それは、候補リストにゼロ動きベクトルを含めることにつながり得る。動きベクトル予測器は、例えば、空間的動きベクトル予測器の方向(上もしくは左)または時間的動きベクトル予測器候補の選択を示すことによって、ビットストリームで示され得る。同位置のピクチャはまた、同位置のピクチャ、動きベクトル予測についてのソース、または動きベクトル予測についてのソースピクチャと称され得る。
【0103】
動きパラメータタイプまたは動き情報は、以下のタイプのうちの1つ以上を含み得るが、それらに限定されない。
・ 予測タイプ(例えば、イントラ予測、単予測、双予測)、及び/又は参照ピクチャの数の標示、
・ インター(時間的としても知られている)予測、インターレイヤー予測、インタービュー予測、ビュー合成予測(View Synthesis Prediction:VSP)、および(参照ピクチャごとおよび/もしくは予測タイプごとに示され、一部の実施形態では、インタービューおよびビュー合成予測が、共同で、1つの予測方向と考えられ得る)インターコンポーネント予測などの予測方向の標示、ならびに/または
・ 短期参照ピクチャおよび/もしくは長期参照ピクチャおよび/もしくは(例えば、参照ピクチャごとに示され得る)インターレイヤー参照ピクチャなどの参照ピクチャタイプの標示、
・ 参照ピクチャリストについての参照インデックス、ならびに/または(例えば、参照ピクチャごとに示され、そのタイプが、予測方向および/もしくは参照ピクチャタイプに依存し、参照インデックスを適用する参照ピクチャリストなどの情報の他の関連する部分を伴い得る)参照ピクチャの任意の他の識別子、
・ (例えば、予測ブロックごと、または参照インデックスごとなどで示され得る)水平動きベクトルコンポーネント、
・ (例えば、予測ブロックごと、または参照インデックスごとなどで示され得る)垂直動きベクトルコンポーネント、
・ 1つ以上の動きベクトル予測プロセスで水平動きベクトルコンポーネント及び/又は垂直動きベクトルコンポーネントのスケーリングのために使用され得る、動きパラメータを含むかまたはそれに対応付けられるピクチャとその参照ピクチャとの間のピクチャ順序カウント差及び/又は関連カメラ分離などの1つ以上のパラメータ(この1つ以上のパラメータは、例えば、各参照ピクチャ、または各参照インデックスなどで示され得る)、
・ 動きパラメータ及び/又は動き情報を適用するブロックの座標、例えば、ルーマサンプルユニットでのブロックの左上のサンプルの座標、
・ 動きパラメータ及び/又は動き情報を適用するブロックの範囲(例えば、幅および高さ)。
【0104】
一般に、例として前記で提示される動きベクトル予測メカニズムなどの動きベクトル予測メカニズムは、特定の既定のまたは示された動きパラメータの予測または引継ぎを含み得る。
【0105】
ピクチャに対応付けられる動きフィールドは、ピクチャのすべてのコード化されたブロックに対して生成される動き情報のセットで構成されていると考えられ得る。動きフィールドは、例えば、ブロックの座標によってアクセス可能であり得る。動きフィールドは、例えば、TMVPまたは任意の他の動き予測メカニズムで使用され得、ここで、現在のコード化(デコード)されたピクチャ以外の予測についてのソースまたは参照が使用される。
【0106】
ピクチャ内のスライスの位置は、ピクチャ内のラスタースキャン順序でブロックインデックス化を介して示される。HEVCでは、slice_segment_header( )のシンタックス要素slice_segment_addressは、ピクチャのコーディングツリーブロックラスタースキャンでスライスセグメント内の最初のコーディングツリーブロックのアドレスを指定する。
【0107】
動きベクトルアンカー位置は、動きベクトルが適用される領域についてのピクチャエリア内の位置(例えば、水平および垂直座標)である。動きベクトルアンカー位置は、動きベクトルについての最初のポイントと見なされ得る。従来、動きベクトルアンカー位置は、予測されているブロックの位置と同じであると推測されていたが、動きベクトルアンカー位置に適応させるための水平オフセットおよび垂直オフセットが、ビットストリームにエンコードされ、及び/又はビットストリームからデコードされることが提案されている。アンカー位置についての水平オフセットおよび垂直オフセットは、スライスヘッダ、スライスパラメータセット、タイルヘッダ、タイルパラメータセットなどで与えられ得る。
【0108】
動きベクトルアンカー位置を利用する例示的なエンコーディング方法は、
入力ピクチャをコード化された構成ピクチャにエンコードすることと、
コード化された構成ピクチャに対応するデコードされた構成ピクチャを前記エンコードすることの一部として再構築することと、
空間的領域をコード化されたタイルにエンコードすることと、を含み、
前記エンコードすることは、
デコードされた構成ピクチャ内の空間的領域の領域ごとのアンカー位置を示す、水平オフセットおよび垂直オフセットを決定することと、
水平オフセットおよび垂直オフセットをエンコードすることと、
コード化されたタイルの、それぞれ空間的領域内の水平および垂直座標である第1の水平座標および第1の垂直座標の位置での予測ユニットが、領域ごとのアンカー位置に対して予測されることを決定することと、
予測ユニットが、領域ごとのアンカー位置についての予測ユニットアンカー位置に対して予測されることを示すことと、
それぞれ、第1の水平座標および水平オフセット、ならびに第1の垂直座標および垂直オフセットの合計に等しい、予測ユニットアンカー位置を導出することと、
予測ユニットについての動きベクトルを決定することと、
予測ブロックを取得するために、予測ユニットアンカー位置についての動きベクトルを適用することと、を含む。
【0109】
動きベクトルアンカー位置が使用される、例示的なデコーディング方法は、
コード化されたタイルをデコードされたタイルにデコードすることを含み、
前記デコードすることは、
水平オフセットおよび垂直オフセットをデコードすることと、
コード化されたタイルの第1の水平座標および第1の垂直座標の位置での予測ユニットが、水平および垂直オフセットについての予測ユニットアンカー位置に対して予測される標示をデコードすることと、
それぞれ、第1の水平座標および水平オフセット、ならびに第1の垂直座標および垂直オフセットの合計に等しい、予測ユニットアンカー位置を導出することと、
予測ユニットについての動きベクトルを決定することと、
予測ブロックを取得するために、予測ユニットアンカー位置についての動きベクトルを適用することと、を含む。
【0110】
構成ピクチャは、全体の入力ピクチャの表現に対応する、囲い込むコード化(デコード)されたピクチャの一部として定義され得る。構成ピクチャに加えて、囲い込むコード化(デコード)されたピクチャは、別の構成ピクチャなどの他のデータを含み得る。
【0111】
フレームパッキングは、(入力)構成フレームまたは構成ピクチャと称され得る、2つ以上の入力ピクチャを1つの出力ピクチャに配置することを含むように定義され得る。一般に、フレームパッキングは、いかなる特定のタイプの構成フレームにも限定されず、または構成フレームは、互いに特定の関係を有する必要がない。多くの場合、フレームパッキングは、立体映像のビデオクリップの構成フレームを単一のピクチャシーケンスに配置するために使用される。この配置は、出力ピクチャ内の空間的に非重複の領域で入力ピクチャを配置することを含み得る。例えば、並んだ配置では、2つの入力ピクチャが、互いに隣接して水平に1つの出力ピクチャ内に配置される。この配置はまた、1つ以上の入力ピクチャの、2つ以上の構成フレームパーティションへのパーティショニングと、出力ピクチャ内の空間的に非重複の領域に構成フレームパーティションを配置することと、を含み得る。出力ピクチャまたはフレームパッキングされた出力ピクチャのシーケンスは、例えば、ビデオエンコーダによって、ビットストリームにエンコードされ得る。ビットストリームは、例えば、ビデオデコーダによってデコードされ得る。デコーダまたはデコーディングの後の後処理動作は、例えば、ディスプレイのために、デコードされたピクチャ(複数可)から、デコードされた構成フレームを抽出し得る。
【0112】
ストリーミングビットレートを低減するための360°ビデオストリーミングでの最近の傾向は、ビューポート依存ストリーミングまたはビューポート適応型ストリーミングと呼ばれ、以下のように簡潔に記載され得る。プライマリビューポート(すなわち、現在のビュー指向)をカバーする360度ビデオコンテンツのサブセットは、最良の品質/解像度で送信されるが、360度ビデオの残りは、より低い品質/解像度で送信される。ビューポート適応型ストリーミングは、タイルベースのエンコーディングおよびストリーミングアプローチを介して実現され得る。タイルベースのエンコーディングおよびストリーミングの1つのアプローチでは、エンコーディングは、得られたビットストリームが動き制限タイルセットを含む方法で実行される。同じソースコンテンツのいくつかのビットストリームは、動き制限タイルセットを使用してエンコードされる。1つ以上の動き制限タイルセット(MCTS)シーケンスは、ビットストリームから抽出され、抽出された各動き制限タイルセットシーケンスは、ファイルでトラック(例えば、HEVCタイルトラックまたはサブピクチャトラック)として記憶される。クライアントは、残りの現在不可視のビューポートをカバーする品質または解像度と比較して、より良い品質またはより高い解像度のMCTSトラックが現在のビューポートに対して受信され得る方法で、トラックを選択的に受信する。クライアントは、受信されたトラックのコンテンツをマージする、すなわち、受信されたMCTSを、デコードされるビットストリームにマージする。ビューイング指向が、時間が経つにつれて変化する可能性があるため、選択されたトラックおよびMCTSも、時間が経つにつれて変化し、さらに、マージされたピクチャ内のそれぞれのMCTSの位置は、マージされたあるピクチャから別のピクチャに変化し得る。
【0113】
多くの場合、スライス/タイルの位置を変えるか、またはスライス/タイルのサブセットを抽出することが望ましい。ある典型的なインスタンスでは、別のストリームを生成するために、既存のストリームからタイルセットを抽出し得る状況が挙げられる。例えば、それ自体のビットストリームに対して、あるビットストリームから動き制限タイルセットを抽出し得る。別の典型的なインスタンスは、360°ビデオのビューポート依存ストリーミングでのビューポート切り換えである。スライス/タイルが、スライスまたはタイルコンテンツを変更することなくデコードされるビットストリームで位置を変更され得るとき、位置変更は、暗号化されたストリームに対しても行うことができる。
【0114】
ピクチャ内のスライスの位置は、ピクチャ内のラスタースキャン順序でブロックインデックス化を介して示されるため、従来から、スライスの位置変更、または(ピクチャの左上のコーナーから始まるピクチャ全体のサブセット以外の)複数のタイルもしくはスライスのサブセットの抽出は、(1つまたは複数の)スライスヘッダの書き換えを必要とする。同様に、動きベクトルアンカー位置が使用されているとき、tile_ref_xおよびtile_ref_yなどの場所を示すシンタックス要素は、スライス/タイルの位置を変更するときに、またはタイルもしくはスライスのサブセットをそれら自体のビットストリームに抽出するときに、書き換えられる必要がある。スライスヘッダ書き換えは、ストリームのビットレートに影響を及ぼし、及び/又は特別な書き換え命令を必要とするため、スライスの位置変更の目的のスライスヘッダの書き換えは、非効率である。
【0115】
本明細書に記載される例示的な実施形態は、ビットストリームに対応付けられるパラメータセットでタイルグリッド内のタイルのラスタースキャン順序でタイルを示すタイル識別子をエンコードすることによって、スライスヘッダを書き換えることなく、ビットストリームでタイルの位置を変更することを可能にする。
【0116】
ビデオビットストリームのファイルフォーマットに関わらず、例示的な実施形態の装置は、例えば、ビデオエンコーダ、コンピュータワークステーション、サーバなどを含む、多彩なコンピューティングデバイスのうちのいずれかによって、または、モバイル端末、例えば、スマートフォン、タブレットコンピュータ、ビデオゲームプレイヤーなどの様々なモバイルコンピューティングデバイスのうちのいずれかによって提供され得る。
【0117】
図1に示すように、装置を具現化するコンピューティングデバイスに関わらず、例示的な実施形態の装置10は、処理回路構成12、メモリ14、通信インターフェース16、および任意で、ユーザインターフェース18を含み、それらに対応付けられ、またはそうでない場合、それらと通信する。
【0118】
処理回路構成12は、装置10の構成要素間で情報を通過させるためのバスを介して、メモリデバイス14と通信し得る。メモリデバイスは、非一時的であり、例えば、1つ以上の揮発性及び/又は不揮発性メモリを含み得る。言い換えると、例えば、メモリデバイスは、機械(例えば、処理回路構成のようなコンピューティングデバイス)によって検索可能であり得るデータ(例えば、ビット)を記憶するように構成されたゲートを備える電子ストレージデバイス(例えば、コンピュータ可読記憶媒体)であり得る。メモリデバイスは、装置が本開示の例示的な実施形態に従って様々な機能を実行することを可能にするために、情報、データ、コンテンツ、アプリケーション、命令などを記憶するように構成され得る。例えば、メモリデバイスは、処理回路構成によって、処理のために入力データをバッファリングするように構成され得る。追加的にまたは代替的に、メモリデバイスは、処理回路構成によって、実行のために命令を記憶するように構成され得る。
【0119】
装置10は、一部の実施形態では、上述のような様々なコンピューティングデバイスで具現化され得る。しかしながら、一部の実施形態では、装置は、チップまたはチップセットとして具現化され得る。言い換えると、装置は、構造アセンブリ(例えば、ベースボード)で、材料、構成要素、及び/又はワイヤーを含む、1つ以上の物理パッケージ(例えば、チップ)を備え得る。構造アセンブリは、そこに含まれる構成要素回路構成に対して、物理強度、サイズの維持、及び/又は電気相互作用の制限を提供し得る。したがって、装置は、いくつかの場合、単一のチップで、または単一の「システムオンチップ」として、本開示の実施形態を実装するように構成され得る。したがって、いくつかの場合、チップまたはチップセットは、本明細書に記載される機能を提供するための1つ以上の動作を実行するための手段を構成し得る。
【0120】
処理回路構成12は、多数の異なる方法で具現化され得る。例えば、処理回路構成は、コプロセッサ、マイクロプロセッサ、コントローラ、デジタル信号プロセッサ(Digital Signal Processor:DSP)、付随のDSPを有するか、もしくは有しない処理要素、または、例えば、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)、マイクロコントローラユニット(MicroController Unit:MCU)、ハードウェアアクセラレータ、特殊目的のコンピュータチップなどの集積回路を含む、様々な他の回路構成などの様々なハードウェア処理手段のうちの1つ以上として具現化され得る。したがって、一部の実施形態では、処理回路構成は、独立で実行するように構成された1つ以上の処理コアを含み得る。マルチコア処理回路構成は、単一の物理パッケージ内のマルチ処理を可能にし得る。追加的にまたは代替的に、処理回路構成は、命令、パイプライン処理、及び/又はマルチスレッディングの独立した実行を可能にするために、バスを介してタンデムに構成された1つ以上のプロセッサを含み得る。
【0121】
例示的な実施形態では、処理回路構成12は、メモリデバイス14に記憶された命令を実行するように、またはそうでない場合、処理回路構成にアクセス可能であるように構成され得る。追加的にまたは代替的に、処理回路構成は、ハードコード化機能を実行するように構成され得る。したがって、ハードウェアもしくはソフトウェア方法によって構成されていようと、またはそれらの組合せによって構成されていようと、処理回路構成は、本開示の実施形態に従って動作を実行することができ、それに従って構成された、(例えば、回路構成で物理的に具現化される)エンティティを表し得る。したがって、例えば、処理回路が、ASIC、FPGAなどとして具現化されるとき、処理回路構成は、本明細書に記載される動作を行うために具体的に構成されたハードウェアであり得る。あるいは、別の例として、処理回路構成が、命令の実行器として具現化されるとき、命令は、実行されるときに、本明細書に記載されるアルゴリズム及び/又は動作を実行するようにプロセッサを具体的に構成し得る。しかしながら、いくつかの場合、処理回路構成は、本明細書に記載されるアルゴリズム及び/又は動作を実行するための命令による処理回路構成のさらなる構成によって、本発明の実施形態を採用するように構成された特定のデバイス(例えば、画像またはビデオ処理システム)のプロセッサであり得る。処理回路構成は、とりわけ、処理回路構成の動作をサポートするように構成されたクロック、算術論理ユニット(Arithmetic Logic Unit:ALU)、および論理ゲートを含み得る。
【0122】
通信インターフェース16は、ビデオビットストリームを含むデータを受信及び/又は送信するように構成されたハードウェアまたはハードウェアおよびソフトウェアの組合せで具現化されるデバイスまたは回路などの任意の手段であり得る。この点で、通信インターフェースは、例えば、無線通信ネットワークとの通信を可能にするためのアンテナ(または複数のアンテナ)ならびに対応するハードウェア及び/又はソフトウェアを含み得る。追加的にまたは代替的に、通信インターフェースは、アンテナ(複数可)を介した信号の送信を実現するか、またはアンテナを介して受信される信号の受信を処理するためにこれらのアンテナと相互作用するための回路構成を含み得る。いくつかの環境では、通信インターフェースは、代替的にまたはさらに、有線通信をサポートし得る。したがって、例えば、通信インターフェースは、ケーブル、デジタル加入者線(Digital Subscriber Line:DSL)、ユニバーサルシリアルバス(Universal Serial Bus:USB)、または他の機構を介した通信をサポートするための通信モデム及び/又は他のハードウェア/ソフトウェアを含み得る。
【0123】
一部の実施形態では、装置10がビデオビットストリームをエンコードするように構成されたインスタンスなどで、装置10は、任意でユーザインターフェース18を含み得る。このインターフェースは、処理回路構成12と通信して、エンコードされたビデオビットストリームを出力することなどによって、出力をユーザに提供して、一部の実施形態では、ユーザ入力の標示を受信し得る。したがって、ユーザインターフェースは、ディスプレイを含み、一部の実施形態では、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイクロフォン、スピーカー、または他の入力/出力機構も含み得る。代替的にまたは追加的に、処理回路構成は、ディスプレイ、一部の実施形態では、スピーカー、リンガー、マイクロフォンなどの1つ以上のユーザインターフェース要素の少なくともいくつかの機能を制御するように構成された、ユーザインターフェース回路構成を備え得る。処理回路構成及び/又は処理回路構成を備えるユーザインターフェース回路構成は、処理回路構成にアクセス可能なメモリ(例えば、メモリデバイス14など)に記憶されたコンピュータプログラム命令(例えば、ソフトウェア及び/又はファームウェア)を介して、1つ以上のユーザインターフェース要素の1つ以上の機能を制御するように構成され得る。
【0124】
ここで、図2を参照して、ピクチャを、コード化されたピクチャにエンコードするために、図1の装置10によってなどで実行される動作が示される。このコード化されたピクチャは、例示的な実施形態に従って2つ以上のタイルにパーティショニングされる。ブロック20に示すように、装置は、ピクチャを受信するための、処理回路構成12、通信インターフェース16などの手段を含む。ピクチャは、1つ以上のスライスを含むコード化されたピクチャにエンコードされる。このピクチャは、1つ以上のタイルにパーティショニングされる。コード化されたピクチャは、ビットストリームの一部であってもよい。ビットストリームは、HEVC、H.266/VVC、または上述の任意のファイルフォーマットに従ってフォーマットされたビットストリームであってもよい。
【0125】
ブロック22に示すように、装置10は、以下の目的の任意のセットについての1つ以上のタイル識別子をスライスのスライスヘッダにエンコードするための、処理回路構成12などの手段を含む。
・ スライス場所情報。タイル識別子は、スライスの最初のブロックなどの、スライスの既定のまたは示されたブロックを含むタイルを示す。ブロックは、例えば、コーディングツリーブロックまたはコーディングツリーユニットなどであり得る。
・ 動きベクトルについてのアンカー位置を決定するための水平および垂直オフセット導出。タイル識別子は、水平および垂直オフセットを導出するために使用されるタイル位置を示す。
・ TMVPまたは同様の動作で、示されたピクチャから動きベクトル候補を取得するためにアンカー位置を決定するための水平および垂直オフセット導出。
【0126】
スライス場所情報についてのタイル識別子をエンコードするための実施形態では、スライスセグメントヘッダのシンタックスは、以下のようである。
【0127】
slice_pic_parameter_set_idは、使用中にピクチャパラメータセットを指定する。例えば、ピクチャパラメータセットシンタックスが、PPSの識別子を提供するpps_pic_parameter_set_idを含むとき、slice_pic_parameter_set_idは、使用中にPPSについてのpps_pic_parameter_set_idの値を指定する。slice_tile_idは、スライスセグメント内の最初のコーディングツリーブロックが、slice_tile_id値によって識別されるタイルの左上のコーディングツリーブロックであることを指定する。slice_tile_idシンタックス要素の長さは、使用中にPPSによって決定される。あるいは、別の実施形態では、タイプue(v)のslice_tile_id、したがってその長さは、使用中にPPSによって決定されるのではなく暗に示される。
【0128】
実施形態では、様々な実施形態ではslice_tile_idなどの固定長タイル識別子コードワードの長さは、例えば、使用中にPPSによって示されるように、ピクチャ内のタイルの数によって推測される。一部の実施形態では、ピクチャ内の推測されたタイルの数は、NumTilesInPicに等しくなるように設定され、タイル識別子コードワードの長さは、Ceil(Log2(NumTilesInPic))ビットであるように決定される。例えば、使用中のPPSは、タイル行および列の数を示し、NumTilesInPicは、タイル列の数をタイル行の数に掛けることによって取得され得る。
【0129】
実施形態では、様々な実施形態ではslice_tile_idなどの固定長タイル識別子コードワードの長さは、ピクチャパラメータセットまたはシーケンスパラメータセットなどの高レベルのシンタックス構造で(エンコーダによって)示され、(デコーダによって)デコードされる。スライスヘッダなどでのタイル識別子の長さは、タイルグリッドまたはピクチャサイズから独立した状態になり、スライスヘッダ修正を必要としないか、またはより少ないスライスヘッダ修正で、タイルのサブセットをそれら自体のビットストリームに抽出することを可能にするため、本実施形態は、いくつかの使用ケースで有利であり得る。例えば、ピクチャパラメータセットの以下のシンタックスが使用され得る。
【0130】
前記のシンタックス要素のセマンティクスは、以下のように規定され得る。tiles_enabled_flagは、PPSを参照する各ピクチャで2つ以上のタイルがあるかどうかを示す。tiles_enbabled_flagが1に等しい場合、PPSを参照する各ピクチャで2つ以上のタイルがある。tiles_enabled_flagが0に等しい場合、PPSを参照する各ピクチャで1つのタイルのみがある。tile_id_len_minus1+1は、様々な実施形態ではslice_tile_idなどのタイル識別子シンタックス要素(複数可)のビットでの長さを指定する。
【0131】
別の例示的な実施形態では、ピクチャパラメータセットの以下のシンタックスが使用され得る。
【0132】
一部の実施形態では、上記のシンタックス要素のセマンティクスは、以下のように規定され得る。tiles_enabled_flagは、PPSを参照する各ピクチャで2つ以上のタイルがあるかどうかを指定する。tiles_enabled_flagが1に等しい場合、PPSを参照する各ピクチャで2つ以上のタイルがある。tiles_enabled_flagが0に等しい場合、PPSを参照する各ピクチャで1つのタイルのみがある。num_tile_columns_minus1は、ピクチャをパーティショニングするタイル列の数-1を指定する。num_tile_rows_minus1は、ピクチャを分割するタイル行の数-1を指定する。一部の実施形態では、NumTilesInPicは、(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)に等しくなるように設定される。一部の実施形態では、導出された変数MinBitsTileIdが導入され、Ceil(Log2(NumTilesInPic))ビットシンタックス要素に等しくなるように設定される。rel_tile_id_lenは、タイル識別子シンタックス要素(複数可)のために使用されるMinBitsTileIdに加えてさらなるビットの数を指定する。様々な実施形態ではslice_tile_idなどの識別子シンタックス要素のビットでの長さは、MinBitsTileId+rel_tile_id_lenに等しい。
【0133】
実施形態では、タイル識別子が導出される2つのシンタックス要素を、エンコーダがエンコードし、及び/又はデコーダがデコードする。シンタックス要素は、乗数および加法因子と称され得る。実施形態では、タイル識別子は、タイルグリッド幅に乗数を掛け、加法因子を加算することによって導出される。別の実施形態では、タイル識別子は、タイルグリッド高さに乗数を掛け、加法因子を加算することによって導出される。シンタックス要素の可変長コーディングが、特にピクチャの最初のスライスおよびタイル行またはタイル列の始めで位置合わせされるスライスのために使用されるときに、このアプローチは有益であり得る。以下のシンタックスなどは、本実施形態のために使用され得る。実施形態は、以下のシンタックス構造でのシンタックス要素の任意の順序で同様に実現され得ることに留意されたい。
【0134】
slice_tile_mulおよびslice_tile_addは、スライスセグメント内の最初のコーディングツリーブロックは、slice_tile_mul×(num_tile_columns_minus1+1)+slice_tile_addによって識別されるタイルの左上のコーディングツリーブロックであることを指定する。slice_pic_parameter_set_idは、使用中のピクチャパラメータセットを指定する。例えば、ピクチャパラメータセットシンタックスが、PPSの識別子を提供するpps_pic_parameter_set_idを含むとき、slice_pic_parameter_set_idは、使用中のPPSについてのpps_pic_parameter_set_idの値を指定する。一部の実施形態では、固定長コーディング、すなわち、u(v)は、slice_tile_mulおよびslice_tile_addの一方または両方のために使用され得る。
【0135】
実施形態では、タイルまたはスライス位置を示すグリッドまたはパーティショニングは、タイルグリッドから別々に示されるかまたはデコードされる。例えば、以下のシンタックスが使用され得る。
【0136】
num_slice_tile_id_columns_minus1は、ピクチャをパーティショニングする列の数-1を指定する。num_slice_tile_id_rows_minus1は、ピクチャをパーティショニングする行の数-1を指定する。id_column_width_minus1[i]は、コーディングツリーブロックのユニットでの第i番目の列の幅-1を指定する。id_row_height_minus1[i]は、コーディングツリーブロックのユニットでの第i番目の行の高さ-1を指定する。タイル識別子値(例えば、slice_tile_id)は、これらのシンタックス要素で規定されるグリッドに沿って空間的場所に対応付けられる。「タイルグリッド」という用語が、様々な実施形態で使用されるとき、それらの実施形態は、以下で識別子グリッドと称されるこれらのシンタックス要素などによって指定されるグリッドで同様に実現され得る。slice_tile_idのセマンティクスは、スライスセグメント内の最初のコーディングツリーブロックが、slice_tile_id値によって識別される(識別子グリッドの)グリッドセルの左上のコーディングツリーブロックであるように規定され得る。
【0137】
実施形態では、タイルグリッドの交点は、交点識別子グリッドと同位置であるが、よりまばらであり得る。タイルグリッドの交点は、識別子グリッドに対して示され、すなわち、識別子グリッドのどの交点が、タイルグリッドの交点でもあるかが示され得る。例えば、以下のシンタックスが使用され得る。
【0138】
tile_column_flag[i]は、識別子グリッド内の第i番目(右側)の列境界がタイル列境界であるかどうかを指定する。tile_column_flag[i]が1に等しい場合、識別子グリッド内の第i番目(右側)の列境界は、タイル列境界である。tile_row_flag[i]が0に等しい場合、識別子グリッド内の(第i番目の行よりも下の)第i番目の行境界は、タイル行境界でない。tile_column_flag[i]は、識別子グリッド内の第i番目の行境界がタイル行境界であるかどうかを指定する。tile_column_flag[i]が1に等しい場合、識別子グリッド内の第i番目の行境界は、タイル行境界である。
【0139】
識別子グリッドの使用は、いくつかの使用ケースで、動き制限スライスおよびMCTSの混合使用を容易にする。
【0140】
一部の実施形態では、タイル識別子は、タイルグリッド内のタイルのラスタースキャン順序でタイル位置に割り当てられる。一部の実施形態では、タイル識別子は、tile_idシンタックス要素などの形態を取る。tile_id値は、タイルグリッド内のタイルのラスタースキャン順序で、既定の形、例えば、0、1、2、3、...で割り当てられ得る。
【0141】
実施形態では、タイル識別子値(すなわち、tile_id値など)は、タイルグリッド内のタイルのラスタースキャン順序で、例えば、タイル識別子値のリストとして、例えば、ピクチャパラメータセットで、ビットストリームでまたはそれに沿ってタイル位置に明示的に割り当てられる。示された識別子がないとき、既定のインデックス化スキームが利用され得る。
【0142】
実施形態では、タイル識別子値が既定の形で割り当てられるか、またはビットストリームでもしくはそれに沿って明示的に割り当てられる場合、例えば、シーケンスパラメータセットまたはピクチャパラメータセットで、ビットストリームでまたはそれに沿って示される。
【0143】
ブロック24に示すように、装置10は、パラメータセットファイル内のタイル位置へのタイル識別子値の割り当てを任意でエンコードするための、処理回路構成12などの手段をさらに含み得る。例示的なパラメータセットファイルは、ピクチャパラメータセットファイル、シーケンスパラメータセットファイル、ビデオパラメータセットファイルなどを含む。
【0144】
例示的な実施形態では、ピクチャパラメータセットの以下のシンタックスが使用され得る。
【0145】
tile_enabled_flagは、上述のように規定され、上記の他のシンタックス要素のセマンティクスは、以下のように規定され得る。0に等しいexplicit_tile_id_order_flagは、タイル識別子値が、タイルグリッド内のタイルのラスタースキャン順序で、既定の形、例えば、0、1、2、3、...でタイル位置に割り当てられることを示す。explicit_tile_id_order_flagは、このPPSが使用中であるピクチャのタイルについてのタイル識別子順序が、tile_id[i]シンタックス要素によって指定されるかどうかを規定する。explicit_tile_id_order_flagが1に等しい場合、このPPSが使用中であるピクチャのタイルについてのタイル識別子順序は、tile_id[i]シンタックス要素によって指定される。tile_id[i]は、タイルグリッド内のタイルのラスタースキャン順序で第i番目のタイルのタイル識別子を指定する。
【0146】
装置はまた、タイルに対してブロックインデックスを構築し得る。一部の実施形態では、ブロックインデックスは、タイル内のブロックについてのブロック位置を示すシンタックス要素を含む。例えば、ブロックインデックスは、単一のシンタックス要素、例えば、block_index_wrt_tile_idシンタックス要素、または2つのシンタックス要素、例えば、first_slice_segment_in_tile_flagおよびblock_index_wrt_tile_idで示され得る。first_slice_segment_in_tile_flagは、スライスアドレスが、タイルの左上のブロックに一致するかどうかを示す。block_index_wrt_tile_idは、タイル内のブロック位置を示す。一部の実施形態では、スライスアドレスについてのブロックインデックスの存在は、ピクチャパラメータセットで制御される。
【0147】
例示的な実施形態では、以下のピクチャパラメータセットおよびスライスセグメントヘッダシンタックス構造が使用される。
【0148】
tiles_enabled_flag、slice_pic_parameter_set_id、およびslice_tile_idのセマンティクスが上述されている。tile_aligned_slices_flagは、すべてのスライス(またはすべての独立したスライスセグメント)が、タイルの左上のコーナーから始まるかどうか、すなわち、各スライスの最初のCTUがタイルの左上のCTUであることを指定する。tile_aligned_slices_flagが0に等しい場合、スライス(または独立したスライスセグメント)は、タイルの左上のコーナーから始まっても始まらなくてもよく、すなわち、スライスの最初のCTUは、タイルの左上のCTUであってもそうでなくてもよい。tile_aligned_slices_flagが1に等しい場合、すべてのスライス(またはすべての独立したスライスセグメント)は、タイルの左上のコーナーから始まる。dependent_slice_segment_flagは、存在しない各スライスセグメントヘッダシンタックス要素の値が、スライスヘッダ内の対応するスライスセグメントヘッダシンタックス要素の値に等しいことが推測されるかどうかを指定する。dependent_slice_segment_flagが1に等しい場合、存在しない各スライスセグメントヘッダシンタックス要素の値は、スライスヘッダ内の対応するスライスセグメントヘッダシンタックス要素の値に等しいことが推測される。block_index_wrt_tile_idは、slice_tile_idによって識別されるタイルのコーディングツリーブロックラスタースキャンで、スライスセグメント内の最初のコーディングツリーブロックのアドレスを指定する。slice_segment_addressシンタックス要素の長さは、Ceil(Log2(TileSizeInCtbsY))ビットであり、ここで、TileSizeInCtbsYは、タイルのルーマコーディングツリーブロックの数である。別の実施形態では、block_index_wrt_tile_idは、u(v)の代わりにタイプue(v)を有する。
【0149】
実施形態では、タイルについてのブロックインデックスは、2つのシンタックス要素で示される。1つは、タイル内のブロックの水平位置を示し、もう1つは、タイル内のブロックの垂直位置を示す。2つのシンタックス要素のタイプは、例えば、ue(v)またはu(v)であり得る。u(v)が使用されるとき、シンタックス要素の長さは、ブロック行の数およびブロック列の数によって決定され得る。
【0150】
一部の実施形態では、装置10は、1つ以上のタイルで1つ以上のコーディングユニット内の1つ以上の予測ユニットに対応付けられる1つ以上の動きベクトルを構築するための、処理回路構成12などの手段をさらに備える。1つ以上の動きベクトルは、1つ以上のアンカー場所識別子を含み、各々、1つ以上のタイル識別子によって示される1つ以上のタイルについての位置を定義する。動きベクトルは、水平および垂直オフセットとそれぞれ称される、tile_ref_xおよびtile_ref_yなどの既定の位置を示すシンタックス要素の形態でアンカー識別子を含む。上述のように、水平および垂直オフセットは、予測ブロックを取得するために動きベクトルを適用するためのアンカー位置を決定するために使用される。図3に示す例では、アンカー識別子は、360度ビデオのために使用され、ここで、ベース品質の共有のコード化されたピクチャおよび向上させた品質のタイルは、同じコード化されたピクチャ内でコード化され、同じコード化されたピクチャの共有のコード化されたピクチャおよび品質を向上させたタイルは、同じ360度ピクチャから生じる。図3では、品質を向上させたタイルについてのアンカー識別子は、共有の構成ピクチャ内の場所を示す。
【0151】
一部の実施形態では、動きベクトルについてのアンカー位置は、ピクチャについてのxおよびyサンプル座標ではなく、tile_id値などのタイル識別子(複数可)を介して示される。動きベクトルアンカー位置は、タイル識別子(例えば、tile_id値)によって識別されるタイルの左上のコーナーなどのタイル識別子(例えば、tile_id値)によって識別されるタイルについての既定の場所であるように導出される。
【0152】
コード化されたタイルをデコードされたタイルにデコードするための実施形態は、
動きベクトルアンカー位置を導出することが意図されるタイル識別子をデコードすることと、
タイル識別子からタイル位置を導出することと、
タイル位置から水平オフセットおよび垂直オフセットを導出することと、
コード化されたタイルの第1の水平座標および第1の垂直座標の位置での予測ユニットが、水平および垂直オフセットについての予測ユニットアンカー位置に対して予測される標示をデコードすることと、
それぞれ、第1の水平座標および水平オフセット、ならびに第1の垂直座標および垂直オフセットの合計に等しい、予測ユニットアンカー位置を導出することと、
予測ユニットについての動きベクトルを決定することと、
予測ブロックを取得するために、予測ユニットアンカー位置についての動きベクトルを適用することと、を含む。
【0153】
動きベクトルアンカー位置を利用するエンコーディングのための実施形態は、
入力ピクチャをコード化された構成ピクチャにエンコードすることと、
コード化された構成ピクチャに対応するデコードされた構成ピクチャを前記エンコードすることの一部として再構築することと、
空間的領域をコード化されたタイルにエンコードすることと、を含む。
前記エンコードすることは、
・ コード化された構成ピクチャ内のタイル位置であって、デコードされた構成ピクチャ内の空間的領域の領域ごとのアンカー位置を示す、水平オフセットおよび垂直オフセットを示すタイル位置を決定することと、
・ タイル位置を示すタイル識別子をエンコードすることと、
・ コード化されたタイルの、それぞれ空間的領域内の水平および垂直座標である第1の水平座標および第1の垂直座標の位置での予測ユニットが、領域ごとのアンカー位置に対して予測されることを決定することと、
・ 予測ユニットが、領域ごとのアンカー位置についての予測ユニットアンカー位置に対して予測されることを示すことと、
・ それぞれ、第1の水平座標および水平オフセット、ならびに第1の垂直座標および垂直オフセットの合計に等しい、予測ユニットアンカー位置を導出することと、
・ 予測ユニットについての動きベクトルを決定することと、
・ 予測ブロックを取得するために、予測ユニットアンカー位置についての動きベクトルを適用することと、を含む。
【0154】
実施形態では、動きベクトルアンカー位置を導出することが意図されるタイル識別子は、スライス場所情報についてのタイル識別子と同じであることが推測される。上述の実施形態は、以下のように適用される。(予測ユニットを含む)コード化されたタイルのタイル識別子がtileIdAと表される特定の値に等しいとき、動きベクトルアンカー位置を導出することが意図されるタイル識別子は、tileIdAに等しいことが推測され、動きベクトルについての参照ピクチャでtileIdAに等しいタイル識別子を有するタイルのタイル位置は、動きベクトルアンカー位置導出で使用される。本実施形態は、同じタイル識別子値に基づいてピクチャ間のタイル対応を確立する。エンコーディングのための実施形態では、動きベクトルアンカー位置を導出することが意図されるタイル識別子は、スライス場所情報についてのタイル識別子と同じであることが推測されることが、ビットストリームでまたはそれに沿って(例えば、PPS、SPS、またはVPSで)示される。実施形態では、動きベクトルアンカー位置を導出することが意図されるタイル識別子は、スライス場所情報についてのタイル識別子と同じであることが推測されることが、ビットストリームから、またはそれに沿って(例えば、PPS、SPS、またはVPSから)デコードされる。標示は、タイル識別子の示されたセットに固有であり得るか、またはすべてのタイル識別子に適用され得る。例えば、以下のシンタックスなどは、すべてのタイル識別子に適用される標示のために使用され得る。
【0155】
tile_id_relative_motion_flagは、動きベクトルアンカー位置を導出するための水平および垂直オフセットが使用されていないかどうかを指定する。0に等しいtile_id_relative_motion_flagは、動きベクトルアンカー位置を導出するための水平および垂直オフセットが使用されていないことを示す。1に等しいtile_id_relative_motion_flagは、上述のように、動きベクトルアンカー位置を導出するための水平および垂直オフセットが使用されており、コード化されたタイルのタイル識別子から導出されることを示す。
【0156】
一部の実施形態では、動きベクトルアンカー位置を導出することが意図されるタイル識別子は、ブロックインデックスを伴う。このブロックインデックスは、タイル内のブロックについてのブロック位置を示すシンタックス要素を含む。例えば、ブロックインデックスは、単一のシンタックス要素、例えば、block_index_wrt_tile_idシンタックス要素、または2つのシンタックス要素、例えば、first_block_in_tile_flagおよびblock_index_wrt_tile_idで示され得る。first_block_in_tile_flagは、水平および垂直オフセットがタイルの左上のコーナーに一致するかどうかを示す。block_index_wrt_tile_idは、タイル内のブロック位置を示し、水平および垂直オフセットは、ブロック位置から既定の形、例えば、ブロック位置の左上のコーナーから導出される。一部の実施形態では、動きベクトルアンカー位置を導出するためのブロックインデックスの存在は、ピクチャパラメータセットで制御される。スライス場所情報を示すタイル識別子についてのブロックインデックスに関連する実施形態は、動きベクトルアンカー位置を導出することが意図されるタイル識別子についてのブロックインデックスに同様に適用される。
【0157】
一部の実施形態では、動きベクトルアンカー位置を導出するための参照タイル識別子は、参照ピクチャリスト内の示されたピクチャに対して(例えば、スライスヘッダで)提供され得る。例えば、参照ピクチャリスト内の現在のピクチャの各存在に対して、スライスヘッダは、条件動きベクトルアンカー位置がその参照インデックスに対して使用されているかどうかを示すフラグを含み得、その場合、スライスヘッダはまた、動きベクトルアンカー位置を示すその参照インデックスについてのtile_idを含む。
【0158】
例示的な実施形態では、スライスセグメントヘッダのシンタックスは、以下のようなものであり、それは、動きベクトルアンカー位置の導出についてのタイル識別子値を示すために、本明細書でref_pic_anchor_offsets( )と称されるシンタックス構造を含む。
【0159】
num_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_l0_active_minus1がPおよびBスライスに対して存在するかどうか、およびシンタックス要素num_ref_idx_l1_active_minus1がBスライスに対して存在することを指定する。num_ref_idx_active_override_flagが1に等しい場合、シンタックス要素num_ref_idx_l0_active_minus1は、PおよびBスライスに対して存在し、シンタックス要素num_ref_idx_l1_active_minus1は、Bスライスに対して存在する。num_ref_idx_active_override_flagが0に等しい場合、シンタックス要素num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1は存在しない。num_ref_idx_l0_active_minus1は、スライスをデコードするために使用され得る参照ピクチャリスト0に対して最大参照インデックスを指定する。現在のスライスがPまたはBスライスであり、num_ref_idx_l0_active_minus1が存在しないとき、num_ref_idx_l0_active_minus1は、PPSで提供される(代替的な設計では、SPSまたはVPS内にあり得る)num_ref_idx_l0_default_active_minus1に等しいことが推測される。num_ref_idx_l1_active_minus1は、スライスをデコードするために使用され得る参照ピクチャリスト1についての最大参照インデックスを指定する。num_ref_idx_l1_active_minus1が存在しないとき、num_ref_idx_l1_active_minus1は、PPSで提供される(代替的な設計では、SPSまたはVPS内にあり得る)num_ref_idx_l1_default_active_minus1に等しいことが推測される。
【0160】
IsCurrPic(picInp)は、picInpがエンコードまたはデコードされている現在のピクチャでないときに0を返し、picInpがエンコードまたはデコードされている現在のピクチャであるときに1を返す関数である。以下では、Xは、参照ピクチャリスト0または1に対してそれぞれ0または1に等しい。mv_anchor_pos_lX_flag[i]は、動きベクトルアンカー位置がこの参照ピクチャについてのインター予測で使用されているかどうかを指定する。0に等しいmv_anchor_pos_lX_flag[i]は、動きベクトルアンカー位置がこの参照ピクチャについてのインター予測で使用されていないことを示す。1に等しいmv_anchor_pos_lX_flag[i]は、動きベクトルアンカー位置がこの参照ピクチャについてのインター予測で使用されていることを示す。0に等しいanchor_tile_id_lX[i]は、他の実施形態で記載されるように動きベクトルアンカー位置を導出するためにタイル位置が取得される際に基づくタイル識別子を示す。
【0161】
一部の実施形態では、参照tile_id識別子は、(例えば、スライスヘッダで)提供されるか、または参照ピクチャリスト内のピクチャに対して推測され得る。例えば、タイル識別子は、参照ピクチャリスト内の現在のピクチャの各インスタンスに対して(例えば、スライスヘッダで)提供され得る。時間的参照ピクチャに対して、または現在のピクチャ以外の参照ピクチャに対して、参照tile_id識別子は、現在のtile_id識別子に等しいことが推測され得るか、または動きベクトルアンカー位置は、使用されていないことが推測され得る。
【0162】
一部の実施形態では、タイル識別子に加えて、動きベクトルアンカー位置についての水平および垂直オフセットは、タイルの左上のコーナーなどのタイル識別子によって示されるタイルの既定の位置についてのブロック位置を示すブロックインデックスによって示され得る。
【0163】
一部の実施形態では、タイル識別子に加えて、動きベクトルアンカー位置についての水平および垂直オフセットは、タイルの左上のコーナーなどのタイル識別子によって示されるタイルの既定の位置についてのxおよびyピクセル座標で示され得る。
【0164】
一部の実施形態では、アンカー位置は、TMVP動作または類似の動作で、同位置のピクチャについての同位置のブロックを決定するときに適用されるように構成されている。アンカー位置は、例えば、既定の条件が真であるときか、またはエンコーダによって示されるときに、条件付きで適用され得る。アンカー位置は、様々な実施形態で動きベクトル導出についてのアンカー位置が導出される方法と同じかまたは同様に導出され得る。
【0165】
一部の実施形態では、TMVPに対して同位置のピクチャが、現在のピクチャであるように示されるとき、動きベクトルアンカー位置は、同位置のブロックを発見するために適用され、すなわち、同位置のブロックは、(tile_x+rel_x,tile_y+rel_y)に基づいて選択される。ここで、tile_xおよびtile_yは、参照tile_idを介して取得され得る。参照tile_idは、タイル識別子ベースの動きベクトルアンカー位置に対して上述のように示され得る。あるいは、参照tile_idは、例えば、同位置のピクチャが現在のピクチャであるように示されるときにスライスヘッダで、条件付きで提供され得る。
【0166】
HEVCスライスヘッダシンタックスは、first_slice_segment_in_pic_flagを含む。1に等しいとき、それは、スライスセグメントが、デコーディング順序でピクチャの最初のスライスセグメントであることを指定する。0に等しいfirst_slice_segment_in_pic_flagは、スライスセグメントが、デコーディング順序でピクチャの最初のスライスセグメントでないことを指定する。このシンタックス要素は、デコーディング順序で連続するコード化されたピクチャ間の境界の検出のために使用され得る。スライスが並べ替えられるか、またはスライスのサブセットが抽出される場合、first_slice_segment_in_pic_flag(または類似の定義を有する任意のシンタックス要素)は、書き換えられる必要があり得る。あるアプローチでは、first_slice_segment_in_pic_flagなどは、スライスヘッダシンタックスに含まれないが、むしろ異なる開始コードが、ピクチャの他のスライスセグメントのためよりもピクチャの最初のスライスセグメントのために使用される。別のアプローチでは、first_slice_segment_in_pic_flagなどは、スライスヘッダシンタックスに含まれないが、むしろピクチャ順序カウントなどの異なるシンタックス要素が、ピクチャの最初のスライスセグメントの決定で使用される。実施形態では、first_slice_segment_in_pic_flagなどは、スライスヘッダシンタックスに含まれないが、むしろタイル識別子は、ピクチャの最初のスライスセグメントの決定で使用される。タイル識別子が、タイル位置に暗に割り当てられるとき、0(例えば、0に等しいslice_tile_id)などの特定のタイル識別子値を有するスライスセグメントが、ピクチャの最初のスライスセグメントであることが結論付けられる。タイル識別子が、他の実施形態で記載されるようにタイル位置に明示的に割り当てられるとき、特定の明示的に示されたタイル識別子値を有するスライスセグメントが、ピクチャの最初のセグメントであることが結論付けられる。例えば、タイル位置についてのタイル識別子割り当て順序は、前述のようにPPSで示され得、PPSで与えられるリスト内の最初のタイル識別子に等しいタイル識別子を有するスライスセグメントは、ピクチャの最初のスライスセグメントであることが結論付けられる。
【0167】
一部の実施形態では、装置10は、タイルが、その各々のデコーダビリティに影響を及ぼすことなく並べ替えられるかどうかを示す並べ替え標示を含むビットストリームで、またはそれに沿って、ビットストリームに対応付けられるデコーディング順序制限ファイルをエンコードするための、処理回路構成12などの手段をさらに備える。例えば、並べ替え標示は、特定のタイルセット内のタイルが、それらのデコーダビリティに影響を及ぼすことなく(それらの依存順序が守られる限り)並べ替えされても並べ替えされなくてもよいことを示し得る。あるいは、並べ替え標示は、タイル、または動き制限タイルセットなどの示されたタイルセットもしくは推測されたタイルセットが、それらのデコーダビリティに影響を及ぼすことなく並べられても並べられなくてもよいことを示し得る。
【0168】
並べ替え標示は、以下のことのうちの1つ、いずれか、または両方を示し得る。
・ タイルは、修正された順序が、例えば、上述のようなタイル識別子値のリストとして明示的に提供される限り、タイルの各々のデコーダビリティに影響を及ぼすことなく並べ替えられる。
・ タイルは、ビットストリームで、またはそれに沿って修正することなく、タイルの各々のデコーダビリティに影響を及ぼすことなく並べ替えられる。後者のケースでは、タイルは、(例えば、CTU内の幅および高さの点で)同じサイズであることが必要とされ得る。
【0169】
一部の実施形態では、エンコーダは、例えば、上述の標示に基づいて、示されたタイルグリッドまたは推測されたタイルグリッドに従う任意のタイルデコーディング順序が使用され得ることを結論付け得る。エンコーダは、例えば、シーケンスパラメータセットまたはSEIメッセージで、示されたタイルグリッドまたは推測されたタイルグリッドに従う任意のタイルデコーディング順序が使用され得る特定の標示を示し得る。
【0170】
一部の実施形態では、示されたタイルグリッドまたは推測されたタイルグリッドに従う任意のタイルデコーディング順序が、ビットストリームで、またはそれに沿って修正することなく使用され得ることが結論付けられたとき、エンコーダは、明示的なtile_idリストなどのエンコーディングを省略し、さらに/あるいはデコーダは、デコーディング順序もしくはタイルを示す、明示的なtile_idリストなどのデコーディングを省略し得る。
【0171】
一部の実施形態では、デコーダは、例えば、上述の標示に基づいて、示されたタイルグリッドまたは推測されたタイルグリッドに従う任意のタイルデコーディング順序が使用され得ることを結論付け得る。例えば、ビットストリームで、またはそれに沿って、各タイルが、動き制限タイルセットを形成することが示され、デコーダは、そのこと、およびタイル関連アドレス指定の使用に基づいて、任意のタイルデコーディング順序が使用され得ることを結論付け得る。例えば、すべてのタイルが等しいサイズである場合、デコーダは、タイルのエンコーディング順序と同じである必要がない任意の順序でピクチャのタイルをデコードし得る。例えば、デコーダは、受信順にタイルをデコードし得る。タイル識別子を利用することによって、タイルセットの抽出は、例えば、パラメータセット修正のみによって、またはより直接のスライスヘッダ修正で、スライスヘッダ書き換えなしに行うことができる。さらに、タイルの並べ替えは、例えば、パラメータセット修正のみによって、またはより直接のスライスヘッダ変更で、スライスヘッダ書き換えなしに行うことができる。さらに、スライスヘッダは、より短くなる。例えば、8192×4096ピクチャ内の16×8タイルグリッドに対して、64×64CTU、HEVCでの固定長コーディング、スライスセグメントアドレスは、13ビットコードワードを利用する。タイル識別子を利用することによってピクチャごとに節約されるビットの数は468であり、それは、60ヘルツのビデオで毎秒約28キロビットに対応する。
【0172】
ここで、図4を参照して、例示的な実施形態に従ってピクチャ内予測有効(In-Picture-Prediction-Enabled:IPPE)タイルセットを構築するために、図1の装置10によってなどで実行される動作が示される。ブロック40に示すように、装置は、1つ以上のタイルを含むコード化されたピクチャを含むビットストリームを受信するための、処理回路構成12、通信インターフェース16などの手段を含む。あるいは、装置は、1つ以上のタイルを含むコード化されたピクチャを含むビットストリームをエンコードするための、処理回路構成12などの手段を含む。エンコーディングは、入力として、例えば、非圧縮ピクチャシーケンスを取り得る。ビットストリームは、HEVC、H.266/VVC、または上述の任意のファイルフォーマットに従ってフォーマットされたビットストリームであり得る。
【0173】
ブロック42に示すように、装置10は、1つ以上のタイルから1つ以上の従属タイルを識別するための、処理回路構成12などの手段を含む。一部の実施形態では、装置は、エンコーディングで使用される、構成セットアップ、またはそのようなタイル依存情報として受信する。一部の実施形態では、装置は、コーディングの一部としてタイル依存性を決定し、例えば、第2のビューのタイルは、第1のビューのそれぞれのタイルに依存し得る。ここで、第1および第2のビューは、フレームパッキングされる。一部の実施形態では、装置は、動きベクトルアンカー位置導出についてのタイル識別子などの、ビットストリームでタイルの各々に対応付けられるメタデータファイルを分析することによって、1つ以上の従属タイルを識別する。一部の実施形態では、装置は、タイルの各々の依存性を決定する。1つ以上の従属タイルの各々は、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。
【0174】
ブロック44に示すように、装置10は、1つ以上の従属タイルを含むピクチャ内予測有効タイルセットの標示を構築するための、処理回路構成12などの手段を含む。一部の実施形態では、IPPEタイルセット内のタイルは、ピクチャ内予測についてのIPPEタイルセット外のいかなるタイルにも依存しない。一部の実施形態では、特定のIPPEタイルセット外のタイルは、IPPEタイルセット内のいかなるタイルにも依存しないことがさらに示され得る。
【0175】
ブロック46に示すように、装置10は、ビットストリーム及びピクチャ内予測有効タイルセットの標示を保存するための、処理回路構成12などの手段を含む。IPPEタイルセットは、ビットストリームと共に、またはビットストリーム内に記憶され得る。IPPEタイルセットの標示は、例えば、シーケンスパラメータセットファイル、ピクチャパラメータセットファイル、付加拡張情報メッセージファイルなどにあり得る。
【0176】
一部の実施形態では、IPPEタイルセットはまた、標示によってか、またはそうでない場合、(例えば、時間的動き制限タイルセットSEIメッセージを使用することによって、)時間的動き制限タイルセットであることが示され得る。IPPEタイルセットおよび時間的動き制限タイルセットの両方であるタイルセットは、空間的/時間的ランダムアクセスおよび抽出のために使用され得る。空間的ランダムアクセスは、タイルのサブセットのみがレンダリングのために必要とされ、タイルのサブセットの正しいデコーディングのためにどのタイルが必要とされるかを結論付けるために、標示が利用され得る状況である。抽出では、標示は、どのタイルが他のタイルから独立して抽出およびデコードできるかを結論付けるために利用され得る。
【0177】
一部の実施形態では、ピクチャ内予測(例えば、イントラブロックコピー)は、IPPEタイルセットのタイル間で有効にされ得る。実施形態では、IPPEタイルセットのタイル間で有効にされるピクチャ内予測は、イントラ予測、イントラブロックコピー予測、参照タイルのブロックから同じIPPEタイルセットの現在のタイル内のそれぞれのブロックへの動きベクトル候補導出、同じIPPEタイルセットの隣接するタイル間のデブロッキングフィルタリングなどのループ内フィルタリング、コンテキスト適応型エントロピーコーディングでのタイル間のコンテキスト状態の更新および利用のうちの1つ以上を含む。実施形態では、スライスは、スライス開始位置及び/又はスライス終了位置がタイル境界で位置合わせされないときであっても、IPPEタイルセット内のタイル境界をまたぐことが可能である。実施形態では、既定のまたは示されたタイプのピクチャ内予測が、IPPEタイルセット内のスライスまたはビデオコーディングレイヤー(VCL)NALユニット境界で無効にされ得る。例えば、VCL NALユニット境界を超えたエントロピーコーディング状態の伝搬は無効にされ得、それは、VCL NALユニットのパラレルエントロピーエンコーディングおよびデコーディングを有効にする。
【0178】
一部の実施形態では、ピクチャ内予測は、スライス境界を超えると有効にされ、スライスのピクチャ内予測有効セットは、IPPEタイルセットと同様に示され得る。同様に、ピクチャ内予測が有効にされるスライスおよびタイルの混合が示され、IPPEセットと称され得る。
【0179】
例示的な実施形態では、以下のシンタックスなどは、1つ以上のIPPEセットを示すために使用される。シンタックスは、例えば、VPS、SPS、PPS、及び/又はSEIメッセージのシンタックス構造に条件付きで含まれ得る。包含構造でのippe_sets( )シンタックスがない場合、IPPEセットがないことを示し得る。
【0180】
each_grid_cell_one_ippe_set_flagは、ピクチャ内の識別子グリッドまたはタイルグリッド(どちらも、他の実施形態に従って適用可能である)内の1つ1つのグリッドセルが、IPPEセットに含まれるかどうかを指定する。each_grid_cell_one_ippe_set_flagが1に等しい場合、ピクチャ内の識別子グリッドまたはタイルグリッド内の1つ1つのグリッドセルは、IPPEセットに含まれる。each_grid_cell_one_ippe_set_flagが0に等しい場合、そのような制限が適用されない場合があることを示す。num_sets_minus1は、このシンタックス構造で識別されるIPPEセットの数-1を指定する。ippe_set_id[i]は、第i番目のIPPEセットの識別子を指定する。num_cell_rects_in_set_minus1[i]は、第i番目のIPPEセットで(どちらも、他の実施形態に従って適用可能である、識別子グリッドまたはタイルグリッドの)グリッドセルの矩形領域の数-1を指定する。top_left_cell_index[i][j]およびbottom_right_cell_index[i][j]は、(どちらも、他の実施形態に従って適用可能である、識別子グリッドまたはタイルグリッドの)タイルラスタースキャン順序で、第i番目の識別されたIPPEセットの矩形領域内の左上のセルのグリッドセル位置および右下のセルのグリッドセル位置をそれぞれ識別する。
【0181】
実施形態では、タイル及び/又はスライスの動き制限セットは、例えば、VPS、SPS、PPS、及び/又はSEIメッセージのシンタックス構造で、ビットストリームで、またはそれに沿って示される。包含構造での動き制限標示シンタックスがない場合、動き制限のタイル及び/又はスライスセットがないことを示し得る。例えば、以下のシンタックスが使用され得る。
【0182】
each_grid_cell_one_mc_set_flagは、ピクチャ内の識別子グリッドまたはタイルグリッド(どちらも、他の実施形態に従って適用可能である)内の1つ1つのグリッドセルが、タイルまたはスライスの動き制限セットに含まれるかどうかを指定する。1に等しいeach_grid_cell_one_mc_set_flagは、ピクチャ内の識別子グリッドまたはタイルグリッド(どちらも、他の実施形態に従って適用可能である)内の1つ1つのグリッドセルが、タイルまたはスライスの動き制限セットに含まれることを示す。0に等しいeach_grid_cell_one_mc_set_flagは、そのような制限が適用されない場合があることを示す。num_sets_minus1は、このシンタックス構造で識別されるタイルまたはスライスの動き制限セットの数-1を指定する。mc_set_id[i]は、タイルまたはスライスの第i番目の動き制限セットの識別子を指定する。1プラスのnum_cell_rects_in_set_minus1[i]は、第i番目の動き制限セットで(どちらも、他の実施形態に従って適用可能である、識別子グリッドまたはタイルグリッドの)グリッドセルの矩形領域の数を指定する。top_left_cell_index[i][j]およびbottom_right_cell_index[i][j]は、(どちらも、他の実施形態に従って適用可能である、識別子グリッドまたはタイルグリッドの)タイルラスタースキャン順序で、第i番目の識別された動き制限セットの矩形領域内の左上のセルのグリッドセル位置および右下のセルのグリッドセル位置をそれぞれ識別する。
【0183】
実施形態では、タイルまたはスライスの動き制限セットの境界が、ピクチャ境界のように扱われる場合、エンコーダは、ビットストリームで、またはそれに沿って(例えば、VPSもしくはSPSで)示し、さらに/あるいはデコーダは、ビットストリームから、またはそれに沿って(例えば、VPSもしくはSPSから)デコードする。そのような標示は、シンタックスで存在し得るか、またはそのような標示は、タイルまたはスライスの動き制限セットが、必ずしも限定されないが、コード化されたビデオシーケンス全体を通じて同じ矩形形状および同じサイズであるなどのような、特定の制限を満たすときにのみ有効であることが示されることが可能であり得、コード化されたビデオシーケンスのピクチャ内の同じ空間的場所にあるか、またはタイルもしくはスライスが、これら各々のデコーダビリティに影響を及ぼすことなく並べ替えられることを示す、並べ替え標示である。タイルまたはスライスの動き制限セットの境界をピクチャ境界として扱うことは、動き制限セット内にあるようにインター予測で参照されるサンプル位置を飽和させること、例えば、様々な予測プロセスで、タイルまたはスライスの動き制限セット外のブロックのシンタックス要素および導出された変数(例えば、動きベクトル)への参照を、利用可能でないデータへの参照として扱うことのうちの1つ以上を含み得るが、必ずしもそれらに限定されない。タイルまたはスライスの動き制限セットの境界のそのような取り扱いは、動きベクトルが境界を介してサンプル位置を参照することを効果的に可能にする。ここで、境界でのサンプル値は、境界を介して参照されたサンプル位置についてのサンプル値として使用される。一部の実施形態では、IPPEセットの標示はまた、他のタイルから予測される、非ピクチャ内1つ以上のタイル、および同じIPPEタイルセットの他のタイルへの予測依存性を示す、依存関係フォレストまたはグラフを含む。
【0184】
一部の実施形態では、IPPEタイルセット内の従属タイルのイントラブロックコピー動きベクトルについてのアンカー位置は、同じIPPEタイルセット内の識別された参照タイルに対してであることを示されるか、または推測される。一部の実施形態では、アンカー位置は、現在のピクチャが選択された参照ピクチャであれば(例えば、イントラブロックコピーが使用されているとき)適用され、そうでなければ適用されなくてもよい。前述のようなタイル識別子は、アンカー位置を示すために使用され得る。
【0185】
(密なライトフィールドとしても知られている)プレノプティックまたはマルチビュービデオをコーディングするための例示的な実施形態では、一度のインスタンスのすべてのビューからのプレノプティック画像またはピクチャが、1つのコード化されたピクチャ、サブ開口像ごとの1つのタイルもしくはタイルセット、または1つのビューとしてエンコードされる。さらに、ピクチャ内予測は、選択されたタイルまたはタイルセット間で有効にされ得る。エンコーダは、例えば、そこから予測される他のタイルまたはタイルセットがない各「リーフ」タイルまたはタイルセットについてのIPPEタイルセットを示す。
【0186】
投影された点群のビデオコーディングなどのパッチベースのビデオを含む例示的な実施形態では、処理回路構成12などの装置10は、1つ以上の全体のパッチがタイルセットを形成する方法で、1つのコード化されたピクチャとして、異なるタイプ(例えば、テクスチャ、デプス、第2のレイヤーテクスチャ、第2のレイヤーデプス、反射率など)のパッチをエンコードし得る。この装置は、異なるタイプの同位置のパッチのタイルセットなどの関連タイルセットを含むようにIPPEタイルセットを選択して示し得る。ピクチャ内予測は、IPPEタイルセットのタイル間で有効にされ得る。例えば、イントラブロックコピー予測は、第1のレイヤーテクスチャタイルから、同位置の第2のレイヤーテクスチャタイルまで有効にされ得るか、または他の実施形態で記載されるような動きベクトル予測は、第1のタイプ(例えば、テクスチャ)のタイルから、第2のタイプ(例えば、デプス)の同位置のタイルまで有効にされ得る。
【0187】
ここで、図5Aを参照して、一例としてのN×Mタイルグリッド50が、プレノプティック画像/ビデオ、タイルごとの1つのサブ開口像をコーディングするために使用される(N=M=5)。ピクチャ内予測は、ピクチャのタイル内で使用され得る。IPPEタイルセット52および54は、タイルグリッドに対応付けられるビットストリームで、またはそれに沿って示され得る。動き制限タイルセット(MCTS)、例えば、タイルごとの1つのMCTSは、ビットストリームで、またはそれに沿ってエンコードされて示され得る。タイルグリッド50内の各タイルは、それに割り当てられるタイル識別子を有する。タイル識別子は、タイルグリッド内のタイルのラスタースキャン順序を示す。以下のtile_id割り当ては、ビットストリームで、またはそれに沿って示され得る。

24,20,9,13,21,
19,8,1,5,14,
12,4,0,2,10,
18,7,3,6,15,
23,17,11,16,22
【0188】
IPPEタイルセット52などのIPPEタイルセットが抽出され得る。図5Bは、抽出されたIPPEセット52を示す。
【0189】
抽出されたビットストリームに対して、以下のtile_id割り当ては、(タイルグリッド内のタイルのラスタースキャン順序でtile_id順序を示す)ビットストリームで、またはそれに沿って示され得る。

0,2,10,
3,6,15,
11,16,22
【0190】
前述のように、タイル位置へのタイル識別子値の割り当ては、例えば、ピクチャパラメータセットで示され得る。前述のように、ISOBMFFトラックのサンプル入力は、パラメータセットを含み得る。したがって、抽出されたビットストリームは、所望のスライス及び/又はタイルのVCL NALユニットを抽出することによって、さらにパラメータセット(複数可)内のタイル識別子値の割り当てを修正することによって構築され得る。修正されたパラメータセットは、トラックについてのサンプル入力で提供され得、そのサンプルは、抽出されたVCL NALユニットを含む。
【0191】
例示的な実施形態をスライスヘッダに関連して上述した。他の実施形態は、スライスセグメントヘッダまたはタイルヘッダなどの、ピクチャをパーティショニングする単位についてのヘッダの任意の他のタイプにも等しく適用されることを理解されたい。
【0192】
特定の例示的な実施形態をタイルに関連して上述した。他の実施形態は、スライスまたはスライスグループなどの、ピクチャをパーティショニングする単位または時空的単位の任意の他のタイプにも等しく適用されることを理解されたい。タイルおよびスライスは、整数の全体のコーディングツリーユニットを含むように上述されている。タイルおよびスライスは、それらの境界でよりきめ細かくなり得ることを理解されたい。例えば、タイル幅および高さは、8×8コーディングユニットなどの特定の幅および高さのコーディングユニットの点で規定され得る。別の例では、スライスは、整数のコーディングユニットを含むことが可能であり得るが、整数の全体のコーディングツリーユニットを有することは要求されなくてもよい。
【0193】
特定の例示的な実施形態を、タイルグリッド内のタイル位置を示すタイルグリッドおよびタイル識別子に関連して上述した。他の実施形態は、特定の例示的な実施形態で記載される識別子グリッドおよび他のピクチャをパーティショニングする単位(例えば、MCTSグリッド)のグリッドにも等しく適用されることを理解されたい。同様に、実施形態は、使用におけるグリッド内の位置の割り当てを導出可能な任意の識別子に適用される。
【0194】
実施形態はまた、グリッド以外のピクチャパーティショニング手段の他のタイプに適用される。例えば、実施形態では、ラスタースキャン順序で隣接するどのグリッドセルが識別子割り当てで1つのセルを形成するためにマージされるかが示され得る。そのようなマージングは、例えば、スライスヘッダ内のより短いタイル識別子コードワードに達するために有益であり得る。
【0195】
例示的な実施形態がエンコーダを参照して説明されている上記では、得られたビットストリームおよびデコーダは、それらにおける対応する要素を有し得ることを理解されたい。例えば、図6に示すように、ブロック60で、デコーダは、ピクチャを受信するための手段を備え得る。ここで、ピクチャは、1つ以上のスライスを含む。ブロック62に示すように、デコーダは、スライスのスライスヘッダから、タイル位置を示すタイル識別子をデコードするための手段をさらに備える。タイル識別子は、スライス場所を示すために、及び/又は動きベクトルについてのアンカー位置を決定するために、及び/又は動きベクトル候補を取得するべくアンカー位置を決定するために、使用され得る。ブロック64に示すように、デコーダは、パラメータセットファイル内のタイル位置へのタイル識別子値の割り当てをデコードするための手段をさらに備え得る。
【0196】
同様に、図7に示すように、ブロック70で、デコーダは、コード化されたピクチャを含むビットストリームを受信するための手段を備え得る。コード化されたピクチャは、1つ以上のタイルを含む。ブロック72に示すように、デコーダは、ピクチャ内予測有効タイルセットの標示を受信するための手段をさらに含み得る。ピクチャ内予測有効タイルセットは、1つ以上のタイルから1つ以上の従属タイルを識別する。1つ以上の従属タイルは、コード化されたピクチャ内の別の従属タイルに従属するか、または別の従属タイルと論理原子単位を形成する。ブロック74に示すように、デコーダは、ピクチャ内予測有効タイルセットの標示に従ってビットストリームをデコードするための手段をさらに含み得る。
【0197】
同様に、例示的な実施形態が、デコーダを参照して記載されている場合、エンコーダは、当該デコーダによってデコードされるビットストリームを生成するための構造及び/又はコンピュータプログラムを有し得ることを理解されたい。
【0198】
例示的な実施形態が、シンタックスおよびセマンティクスを参照して記載されている上記では、実施形態は、当該シンタックスおよびセマンティクスに従ってビットストリーム部分を出力するエンコーダを同様にカバーすることを理解されたい。同様に、実施形態は、当該シンタックスおよびセマンティクスに従ってビットストリーム部分をデコードするデコーダを同様にカバーする。
【0199】
上述の本発明の実施形態は、関係するプロセスの理解を助けるために、別々のエンコーダおよびデコーダ装置としてコーデックを説明する。しかしながら、装置、構造、および動作は、単一のエンコーダデコーダ装置/構造/動作として実施され得ることを理解されたい。さらに、コーダおよびデコーダは、一部のまたはすべての共通要素を共有し得ることが可能である。
【0200】
上述の例は、装置内のコーデックは、装置内のコーデック内で動作する本発明の実施形態を記載するが、請求項で定義されるような本発明は、任意のビデオコーデックの一部として実施され得ることを理解されたい。したがって、例えば、本発明の実施形態は、固定または有線通信経路を介してビデオコーディングを実施し得るビデオコーデックで実施され得る。
【0201】
本明細書で記載される本発明の多くの変形例および他の実施形態は、前述の説明および対応付けられた図面に提示された教示の恩恵を受けて、これらの発明が属する技術分野の当業者が想達するあろう。したがって、本発明は、開示される特定の実施形態に限定されず、変形例および他の実施形態は、添付の特許請求の範囲内に含まれるように意図されることが理解されるべきである。さらに、前述の説明および対応付けられた図面は、要素及び/又は機能の特定の例示的な組合せの文脈で例示的な実施形態を記載するが、要素及び/又は機能の異なる組合せが、添付の特許請求の範囲から逸脱することなく代替的な実施形態によって提供され得ることが理解されるべきである。この点で、例えば、明示的に上述されたものとは異なる要素及び/又は機能の組合せも、添付の請求項のうちのいくつかで記載され得るように企図される。特定の用語が本明細書で採用されるが、それらは、一般的で記述的な意味でのみ使用され、限定する目的で使用されない。
図1
図2
図3
図4
図5A
図5B
図6
図7