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

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

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

特許7506077映像の符号化および復号のための装置、方法、およびコンピュータプログラム
<>
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図1
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図2
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図3
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図4
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図5
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図6
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図7
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図8
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図9
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図10
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図11
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図12
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図13
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図14
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図15
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図16
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図17
  • 特許-映像の符号化および復号のための装置、方法、およびコンピュータプログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】映像の符号化および復号のための装置、方法、およびコンピュータプログラム
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240618BHJP
   H04N 19/597 20140101ALI20240618BHJP
【FI】
H04N19/70
H04N19/597
【請求項の数】 11
(21)【出願番号】P 2021538984
(86)(22)【出願日】2019-12-16
(65)【公表番号】
(43)【公表日】2022-03-15
(86)【国際出願番号】 FI2019050893
(87)【国際公開番号】W WO2020141248
(87)【国際公開日】2020-07-09
【審査請求日】2021-09-01
(31)【優先権主張番号】62/787,483
(32)【優先日】2019-01-02
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】515076873
【氏名又は名称】ノキア テクノロジーズ オサケユイチア
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(72)【発明者】
【氏名】ハヌクセラ ミスカ
(72)【発明者】
【氏名】アミンロウ アリレザ
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】米国特許出願公開第2013/0202051(US,A1)
【文献】米国特許出願公開第2018/0376126(US,A1)
【文献】国際公開第2018/222996(WO,A1)
【文献】ZHOU, Minhua,AHG4: Enable Parallel Decoding with Tiles,JCTVC-I0118 (version 2),ITU,2012年04月24日,pp.1-9,JCTVC-I0118_r1.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
VCL NAL(映像符号化ネットワーク抽象化レイヤ)ユニットまたは画像セグメントとサブピクチャまたはサブピクチャシーケンスとの復号順でのマッピングに関する情報をビットストリーム内に又はそれに沿って設定されたパラメータから復号するステップであって、前記マッピングに関する前記情報は、前記マッピングに関連するアクセスユニットに含まれる復号順の前記VCL NALユニットのためのサブピクチャシーケンス識別子のリストとしてマッピングを含むものである、ステップと、
第1のサブピクチャの符号化データを復号するステップであって、前記第1のサブピクチャが第1のピクチャに属し、前記第1のサブピクチャが第1のサブピクチャシーケンスに属する、ステップと、
第2のサブピクチャの符号化データを復号するステップであって、前記第2のサブピクチャが第1のピクチャに属し、前記第2のサブピクチャが第2のサブピクチャシーケンスに属し、前記復号が前記第1のサブピクチャの前記符号化データの前記復号から独立している、ステップと、
第3のサブピクチャの符号化データを復号するステップであって、前記第3のサブピクチャが第2のピクチャに属し、前記第3のサブピクチャが前記第1のサブピクチャシーケンスに属し、前記復号が前記第1のサブピクチャを予測の参照として使用することを含む、ステップと、
第1のサブピクチャおよび第2のサブピクチャの符号化データの復号とは別に、ピクチャ合成データを復号するステップと、
前記ピクチャ合成データに基づいて第1の復号ピクチャを合成するステップであって、前記合成が、前記復号された第1のサブピクチャおよび前記復号された第2のサブピクチャを前記第1の復号ピクチャ上に配置することを含む、ステップと、を含む、方法。
【請求項2】
映像シーケンスを符号化するための方法であって、
VCL NAL(映像符号化ネットワーク抽象化レイヤ)ユニットまたは画像セグメントとサブピクチャまたはサブピクチャシーケンスとの復号順でのマッピングに関する情報をビットストリーム内に又はそれに沿って設定されたパラメータへ符号化するステップあって、前記マッピングに関する前記情報は、前記マッピングに関連するアクセスユニットに含まれる復号順の前記VCL NALユニットのためのサブピクチャシーケンス識別子のリストとしてマッピングを含むものである、ステップと、
第1のサブピクチャのデータを符号化するステップであって、前記第1のサブピクチャが第1のピクチャに属し、前記第1のサブピクチャが第1のサブピクチャシーケンスに属する、ステップと、
第2のサブピクチャのデータを符号化するステップであって、前記第2のサブピクチャが前記第1のピクチャに属し、前記第2のサブピクチャが第2のサブピクチャシーケンスに属し、前記符号化が前記第1のサブピクチャの前記データの前記符号化から独立している、ステップと、
第3のサブピクチャのデータを符号化するステップであって、前記第3のサブピクチャが第2のピクチャに属し、前記第3のサブピクチャが前記第1のサブピクチャシーケンスに属し、前記符号化が前記第1のサブピクチャを予測の参照として使用する、ステップと、
第1のサブピクチャおよび第2のサブピクチャのデータの符号化とは別に、ピクチャ合成データを符号化するステップと、
前記ピクチャ合成データに基づいて第1の再構築ピクチャを合成するステップであって、前記合成が、前記第1のサブピクチャおよび前記第2のサブピクチャを前記第1の再構築ピクチャ上に配置することを含む、ステップと、
を含む、方法。
【請求項3】
VCL NAL(映像符号化ネットワーク抽象化レイヤ)ユニットまたは画像セグメントとサブピクチャまたはサブピクチャシーケンスとの復号順でのマッピングに関する情報をビットストリームから復号するための手段であって、前記マッピングに関する前記情報は、前記マッピングに関連するアクセスユニットに含まれる復号順の前記VCL NALユニットのためのサブピクチャシーケンス識別子のリストとしてマッピングを含むものである、手段と、
第1のサブピクチャの符号化データを復号するための手段であって、前記第1のサブピクチャが第1のピクチャに属し、前記第1のサブピクチャが第1のサブピクチャシーケンスに属する、手段と、
第2のサブピクチャの符号化データを復号するための手段であって、前記第2のサブピクチャが第1のピクチャに属し、前記第2のサブピクチャが第2のサブピクチャシーケンスに属し、前記復号が前記第1のサブピクチャの前記符号化データの前記復号から独立している、手段と、
第3のサブピクチャの符号化データを復号するための手段であって、前記第3のサブピクチャが第2のピクチャに属し、前記第3のサブピクチャが前記第1のサブピクチャシーケンスに属し、前記復号が前記第1のサブピクチャを予測の参照として使用する、手段と、
第1のサブピクチャおよび第2のサブピクチャの符号化データの復号とは別に、ピクチャ合成データを復号するための手段と、
前記ピクチャ合成データに基づいて第1の復号ピクチャを合成するための手段であって、前記合成が、前記復号された第1のサブピクチャおよび前記復号された第2のサブピクチャを前記第1の復号ピクチャ上に配置することを含む、手段と、
を備える、装置。
【請求項4】
前記ビットストリームまたは符号化映像シーケンスに関連する特性に関する情報を復号または推論するための手段をさらに備え、前記特性が、サブピクチャシーケンスについて、また復号用に提供されるすべてのサブピクチャシーケンスについて示され、前記特性が、符号化プロファイル、レベル、仮想参照デコーダパラメータ、または符号化において適用された制約のうちの1つまたは複数を含む、請求項3に記載の装置。
【請求項5】
符号化映像データユニットに関連付けられているサブピクチャシーケンス識別子を示す情報を前記ビットストリームから復号するための手段をさらに備え、符号化映像データユニットはスライスを含み、前記装置は前記符号化映像データユニットに含まれるスライスヘッダから前記サブピクチャシーケンス識別子を復号する手段を含む、請求項3に記載の装置。
【請求項6】
前記マッピングに関する前記情報が、前記マッピングに関連するアクセスユニットに含まれる復号順でのVCL NALユニットのサブピクチャシーケンス識別子のリストとしてのマッピングを含む、請求項3に記載の装置。
【請求項7】
VCL NAL(映像符号化ネットワーク抽象化レイヤ)ユニットまたは画像セグメントとサブピクチャまたはサブピクチャシーケンスとの復号順でのマッピングに関する情報をビットストリームへ符号化する手段であって、前記マッピングに関する前記情報は、前記マッピングに関連するアクセスユニットに含まれる復号順の前記VCL NALユニットのためのサブピクチャシーケンス識別子のリストとしてマッピングを含むものである手段と、
第1のサブピクチャのデータを符号化する手段であって、前記第1のサブピクチャが第1のピクチャに属し、前記第1のサブピクチャが第1のサブピクチャシーケンスに属する、手段と、
第2のサブピクチャのデータを符号化する手段であって、前記第2のサブピクチャが第1のピクチャに属し、前記第2のサブピクチャが第2のサブピクチャシーケンスに属し、前記符号化が前記第1のサブピクチャの前記データの前記符号化から独立している、手段と、
第3のサブピクチャのデータを符号化する手段であって、前記第3のサブピクチャが第2のピクチャに属し、前記第3のサブピクチャが前記第1のサブピクチャシーケンスに属し、前記符号化が前記第1のサブピクチャを予測の参照として使用する、手段と、
第1のサブピクチャおよび第2のサブピクチャのデータの符号化とは別に、ピクチャ合成データを符号化する手段と、
前記ピクチャ合成データに基づいて第1の再構築ピクチャを合成する手段であって、前記合成が、前記第1のサブピクチャおよび前記第2のサブピクチャを前記第1の再構築ピクチャ上に配置することを含む、手段と
を備える、装置。
【請求項8】
第4のサブピクチャと前記第1のサブピクチャまたは前記第3のサブピクチャとの間の空間関係に関する指示を符号化するための手段であって、前記空間関係が前記ピクチャ合成データに依存しない、手段と、
第4のサブピクチャのデータを符号化するための手段であって、前記第1のサブピクチャまたは前記第3のサブピクチャが前記空間関係による予測において前記第4のサブピクチャに空間的に関連するような方法で、前記第1のサブピクチャまたは前記第3のサブピクチャを前記予測の参照として使用する、手段と
をさらに備える、請求項に記載の装置。
【請求項9】
前記ビットストリームまたは符号化映像シーケンスに関連する特性に関する情報を前記ビットストリームへ符号化するための手段をさらに備え、前記特性が、サブピクチャシーケンスについて、またすべてのサブピクチャシーケンスについて示され、前記特性が、符号化プロファイル、レベル、仮想参照デコーダパラメータ、または符号化において適用された制約のうちの1つまたは複数を含む、請求項に記載の装置。
【請求項10】
符号化映像データユニットに関連付けられているサブピクチャシーケンス識別子を示す情報を前記ビットストリームへ符号化するための手段をさらに備え、符号化映像データユニットはスライスを含み、前記装置は前記サブピクチャシーケンス識別子を前記符号化映像データユニットに含まれるスライスヘッダの中に符号化する手段を含む、請求項に記載の装置。
【請求項11】
前記マッピングに関する前記情報が、前記マッピングに関連するアクセスユニットに含まれる復号順でのVCL NALユニットのサブピクチャシーケンス識別子のリストとしてのマッピングを含む、請求項に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像の符号化および復号(video coding and decoding)のための装置、方法、およびコンピュータプログラムに関する。
【背景技術】
【0002】
本節は、特許請求の範囲に記載されている発明の背景またはコンテキストを提供することを意図している。本明細書の説明は、追求され得る概念を含み得るが、必ずしも以前に考案または追求されたものであるとは限らない。したがって、本明細書で別段の指定がない限り、本節に記載の内容は、本出願の説明および特許請求の範囲の先行技術ではなく、本節に含まれることで先行技術であると認められるものではない。
【0003】
映像符号化システムは、入力映像を記憶/送信に適した圧縮された表現に変換するエンコーダと、圧縮された映像表現を解凍して表示可能な形式に戻すことができるデコーダとを含んでもよい。エンコーダは、映像をよりコンパクトな形式で表現するために、元の映像シーケンス内の一部の情報を破棄して、例えば、他の方法で必要とされるよりも低いビットレートで映像情報の記憶/送信を可能にすることができる。
【0004】
現在、3次元(3D)映像コンテンツを提供するための様々な技術が調査および開発されている。特に、精力的な研究として、視聴者が特定のビューポイントからのある1組のステレオ映像のみを見ることができ、また別のビューポイントからの別の組のステレオ映像を見ることができる、様々なマルチビューアプリケーションに焦点が当てられている。そのようなマルチビューアプリケーションのうち最も実行可能な手法の1つは、限られた数の入力ビュー、例えば、モノラル映像またはステレオ映像といくつかの補足データのみがデコーダ側に提供され、次いで、デコーダによって、必要なすべてのビューが局所的にレンダリング(すなわち合成)されてディスプレイに表示されるという手法であることが判明している。
【0005】
3D映像コンテンツの符号化では、先進映像符号化規格(H.264/AVC:Advanced Video Coding)、H.264/AVCのマルチビュー映像符号化(MVC:Multiview Video Coding)拡張、または高効率映像符号化(HEVC:High Efficiency Video Coding)のスケーラブル拡張などの映像圧縮システムを使用することができる。
【0006】
2次元(2D)映像コーデックは、点群符号化および360度映像などの新規な使用シナリオの基礎として使用することができる。次の課題に直面している。インター予測を容易にするために、単一の時間インスタンスに対して投影面を最適に選択することと、時間期間で投影面を一定に保つこととの間でトレードオフする必要がある場合がある。また、投影面の境界を越える動きは最適に処理されない可能性がある。投影面を2Dピクチャにパッキングするとき、ある面から別の面への意図しない予測漏れを回避するために、動き制約タイルセットなどの手法を使用しなければならない。360度映像符号化では、幾何学的パディングにより圧縮が向上することが判明しているが、中心となる符号化(復号)処理の変更が必要になる。
【発明の概要】
【0007】
ここでは、少なくとも上記の問題を軽減するために、本明細書では符号化および復号を拡張した方法を導入する。
【0008】
第1の態様による方法は、
- サブピクチャの符号化データを取得するステップであって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、ステップと、
- 操作される参照サブピクチャ(manipulated reference sub-picture)のソースとしてサブピクチャを使用すべきかどうかを判定するステップと、
- 判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、さらに、
- サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成するステップと
を含む。
【0009】
第2の態様による装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備え、メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、装置に、少なくとも
- サブピクチャの符号化データを取得することであって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、取得することと、
- 操作される参照サブピクチャのソースとしてサブピクチャを使用すべきかどうかを判定することと、
- 判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成することと
を実行させるように構成される。
【0010】
第3の態様によるコンピュータプログラム製品は、少なくとも1つのプロセッサ上で実行されると、装置またはシステムに、
- サブピクチャの符号化データを取得することであって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、取得することと、
- 操作される参照サブピクチャのソースとしてサブピクチャを使用すべきかどうかを判定することと、
- 判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成することと
を実行させるように構成されたコンピュータプログラムコードを含む。
【0011】
第4の態様によるエンコーダは、
- サブピクチャの符号化データを取得するための入力であって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、入力と、
- 操作される参照サブピクチャのソースとしてサブピクチャを使用すべきかどうかを判定するように構成された判定器と、
- 判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成するように構成されたマニピュレータと
を含む。
【0012】
第5の態様によるデコーダは、
- サブピクチャの符号化データを受け取るための入力であって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、入力と、
- 操作される参照サブピクチャのソースとしてサブピクチャを使用すべきかどうかを判定するように構成された判定器と、
- 判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成するように構成されたマニピュレータと
を含む。
【0013】
第6の態様による方法は、
- 第1のサブピクチャの符号化データを復号するステップであって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、ステップと、
- 第2のサブピクチャの符号化データを復号するステップであって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、復号が第1のサブピクチャの符号化データの復号から独立している、ステップと、
- 第3のサブピクチャの符号化データを復号するステップであって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、復号が第1のサブピクチャを予測の参照として使用する、ステップと
を含む。
【0014】
第7の態様による映像シーケンスを符号化するための方法は、
- 第1のサブピクチャのデータを符号化するステップであって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、ステップと、
- 第2のサブピクチャのデータを符号化するステップであって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、符号化が第1のサブピクチャの符号化データの符号化から独立している、ステップと、
- 第3のサブピクチャのデータを符号化するステップであって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、符号化が第1のサブピクチャを予測の参照として使用する、ステップと
を含む。
【0015】
第8の態様による装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備え、メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、装置に、少なくとも
- 第1のサブピクチャの符号化データを復号することであって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、復号することと、
- 第2のサブピクチャの符号化データを復号することであって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、復号が第1のサブピクチャの符号化データの復号から独立している、復号することと、
- 第3のサブピクチャの符号化データを復号することであって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、復号が第1のサブピクチャを予測の参照として使用する、復号することと
を実行させるように構成される。
【0016】
第9の態様による装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとを備え、メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、装置に、少なくとも
- 第1のサブピクチャのデータを符号化することであって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、符号化することと、
- 第2のサブピクチャのデータを符号化することであって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、符号化が第1のサブピクチャの符号化データの符号化から独立している、符号化することと、
- 第3のサブピクチャのデータを符号化することであって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、符号化が第1のサブピクチャを予測の参照として使用する、符号化することと
を実行させるように構成される。
【0017】
さらなる態様は、上記の方法およびそれに関連する実施形態のうちの1つまたは複数を実行するように構成された、装置、およびコードが記憶されたコンピュータ可読記憶媒体に関する。
【0018】
次に、本発明をより良く理解するために、以下の添付の図面を例として参照する。
【図面の簡単な説明】
【0019】
図1】MPEG全方向メディアフォーマット(OMAF:Omnidirectional Media Format)の一例を示す図である。
図2】画像のステッチング、投影、および領域別パッキングの一例を示す図である。
図3】画像のステッチング、投影、および領域別パッキングの別の例を示す図である。
図4】単視正距円筒図法パノラマピクチャを形成する処理の一例を示す図である。
図5】タイルベース全方向映像ストリーミングの一例を示す図である。
図6】復号処理の一例を示す図である。
図7】一実施形態による、サブピクチャシーケンス別バッファリングを示す図である。
図8】一実施形態による復号処理を示す図である。
図9】別の実施形態による復号処理を示す図である。
図10】4つのサブピクチャに分割されたピクチャの一例を示す図である。
図11】一実施形態による、符号化処理および/または復号処理に適用可能な予測を示す図である。
図12】多重解像度ビューポート非依存360度映像ストリーミングのために共有符号化サブピクチャを使用する一例を示す図である。
図13】別のサブピクチャの一部を参照フレームとして使用するサブピクチャの一例を示す図である。
図14】別のサブピクチャの一部を参照フレームとして使用するサブピクチャの別の例を示す図である。
図15】一実施形態によるパッチ生成の一例を示す図である。
図16】一実施形態による方法を示す流れ図である。
図17】別の実施形態による方法を示す流れ図である。
図18】一実施形態による装置を示す図である。
【発明を実施するための形態】
【0020】
以下では、いくつかの実施形態について、ある映像符号化構成のコンテキストで説明する。しかしながら、本発明はこの特定の構成に限定されないことに留意されたい。例えば、本発明は、ストリーミングシステム、DVD(デジタル多用途ディスク)プレーヤ、デジタルテレビ受信機、パーソナルビデオレコーダ、パーソナルコンピュータ、ハンドヘルドコンピュータおよび通信デバイス上のシステムおよびコンピュータプログラム、ならびに映像データが処理されるトランスコーダおよびクラウドコンピューティング構成などのネットワーク要素のような映像符号化システムに適用可能である場合がある。
【0021】
以下では、符号化(復号)という表現を使用していくつかの実施形態を説明しているが、これは、その実施形態が復号および/または符号化に適用できることを示す。
【0022】
先進映像符号化規格(AVCまたはH.264/AVCと略す場合がある)は、国際電気通信連合の電気通信標準化部門(ITU-T:Telecommunications Standardization Sector of International Telecommunication Union)の映像符号化専門家グループ(VCEG:Video Coding Experts Group)と、国際標準化機構(ISO:International Organization for Standardization)/国際電気標準会議(IEC:International Electrotechnical Commission)の動画専門家グループ(MPEG:Moving Picture Experts Group)との共同映像チーム(JVT:Joint Video Team)によって開発された。H.264/AVC規格は、両方の親標準化団体によって公開されており、ITU-T勧告H.264およびISO/IEC国際規格14496-10と呼ばれ、MPEG-4パート10先進映像符号化(AVC)としても知られている。H.264/AVC規格には複数のバージョンがあり、それぞれが新しい拡張または機能を仕様に統合している。これらの拡張には、スケーラブル映像符号化(SVC:Scalable Video Coding)とマルチビュー映像符号化(MVC)が含まれる。
【0023】
高効率映像符号化規格(HEVCまたはH.265/HEVCと略す場合がある)は、VCEGとMPEGとの映像符号化に関する共同チーム(JCT-VC)によって開発された。この規格は、両方の親標準化団体によって公開されており、ITU-T勧告H.265およびISO/IEC国際規格23008-2と呼ばれ、MPEG-Hパート2高効率映像符号化(HEVC)としても知られている。H.265/HEVCの拡張には、スケーラブル拡張、マルチビュー拡張、3次元拡張、および忠実度範囲の拡張が含まれ、それぞれSHVC、MV-HEVC、3D-HEVC、およびREXTと呼ばれることがある。これらの標準仕様の定義、構造、または概念を理解する目的で本明細書においてなされるH.265/HEVC、SHVC、MV-HEVC、3D-HEVC、およびREXTについての言及は、特に指定がない限り、本出願の日付より前に利用可能であったこれらの規格の最新版についての言及であると理解されるべきである。
【0024】
多用途映像符号化規格(VVC、H.266、またはH.266/VVC)は、ISO/IEC MPEGとITU-T VCEGとの間の共同である合同映像専門家チーム(JVET)が現在開発中である。
【0025】
本節では、実施形態が実装され得る映像のエンコーダ、デコーダ、符号化方法、復号方法、およびビットストリーム構造の一例として、H.264/AVCおよびHEVCの一部の重要な定義、ビットストリーム構造と符号化構造、および概念、ならびにそれらの拡張の一部について説明する。H.264/AVCの主要な定義、ビットストリーム構造と符号化構造、および概念の一部はHEVC規格と同じであり、したがって以下にまとめて説明する。様々な実施形態の態様は、H.264/AVCもしくはHEVCまたはそれらの拡張に限定されず、それに基づいて本実施形態を部分的または完全に実現し得る可能な基礎の1つとして説明されている。
【0026】
映像コーデックは、入力映像を記憶/送信に適した圧縮された表現に変換するエンコーダと、圧縮された映像表現を解凍して表示可能な形式に戻すことができるデコーダとを含んでもよい。圧縮された表現は、ビットストリームまたは映像ビットストリームと呼ばれることがある。映像エンコーダおよび/または映像デコーダは、互いに分離されてもよく、すなわち、コーデックを形成する必要はない。エンコーダは、映像をよりコンパクトな形式で(すなわち、より低いビットレートで)で表現するために、元の映像シーケンスの一部の情報を破棄することができる。
【0027】
ハイブリッド映像コーデック、例えばITU-T H.264は、映像情報を2段階で符号化することができる。最初に、例えば動き補償手段(符号化されているブロックに厳密に対応する、先に符号化済みの映像フレームうちの1つの中の領域を見出して示す手段)によって、または空間手段(指定された方法で符号化の対象となるブロックの周辺の画素値を使用する手段)によって、特定のピクチャ領域(または「ブロック」)の画素値が予測される。次いで、予測誤差、すなわち予測された画素ブロックと元の画素ブロックとの間の差分が符号化される。これは、指定された変換(例えば、離散コサイン変換(DCT:Discreet Cosine Transform)またはその変形)を使用して画素値の差分を変換し、係数を量子化し、量子化した係数をエントロピ符号化することによって行われてもよい。エンコーダは、量子化処理の忠実度を変えることによって、画素表現の正確性(ピクチャ品質)と結果として得られる符号化映像表現のサイズ(ファイルサイズまたは伝送ビットレート)と間のバランスを制御することができる。
【0028】
時間予測では、予測のソースは先に復号されたピクチャ(参照ピクチャとしても知られる)である。イントラブロックコピー(IBC、イントラブロックコピー予測または現在のピクチャ参照としても知られる)では、予測は時間予測と同様に適用されるが、参照ピクチャは現在のピクチャであり、先に復号されたサンプルのみを予測処理において参照することができる。レイヤ間予測またはビュー間予測は、時間予測と同様に適用され得るが、参照ピクチャはそれぞれ別のスケーラブルレイヤからのまたは別のビューからの復号済みのピクチャである。ある事例では、インター予測は時間予測のみを指すことがあり、他の事例では、インター予測は、時間予測、ならびに時間予測と同じ処理または同様の処理を用いて実行されるという条件の下でのイントラブロックコピー、レイヤ間予測、およびビュー間予測のいずれかをまとめて指すことがある。インター予測または時間予測は、動き補償または動き補償予測と呼ばれることがある。
【0029】
イントラ予測は、同じピクチャ内の隣接する画素が相関している可能性が高いという事実を利用する。イントラ予測は、空間ドメイン内または変換ドメイン内で実行することができる、すなわち、サンプル値または変換係数のいずれかを予測することができる。イントラ予測は通常、インター予測が適用されないイントラ符号化において活用される。
【0030】
符号化手順の結果の1つは、動きベクトルおよび量子化された変換係数などの符号化パラメータのセットである。多くのパラメータは、空間的または時間的に近接するパラメータから最初に予測される場合、より効率的にエントロピ符号化され得る。例えば、動きベクトルは、空間的に隣接する動きベクトルから予測されてもよく、動きベクトル予測子との差分のみが符号化されてもよい。符号化パラメータの予測およびイントラ予測は、ピクチャ内予測と総称されることがある。
【0031】
エントロピ符号化/復号は、多くの方法で実行されてもよい。例えば、コンテキストベースの符号化/復号が適用されてもよく、エンコーダとデコーダの両方で、先に符号化/復号された符号化パラメータに基づいて符号化パラメータのコンテキスト状態を変更する。コンテキストベースの符号化は、例えば、コンテキスト適応型2値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)またはコンテキストベース可変長符号化(CAVLC:Context-Based Variable Length Coding)または任意の同様のエントロピ符号化とすることができる。エントロピ符号化/復号は、代替としてまたは追加として、ハフマン符号化/復号または指数ゴロム符号化/復号などの可変長符号化方式を使用して実行されてもよい。エントロピ符号化されたビットストリームまたはコードワードからの符号化パラメータの復号は、構文解析と呼ばれることがある。
【0032】
映像符号化規格では、ビットストリームの構文およびセマンティクス、ならびに無誤差ビットストリームための復号処理が指定される場合がある一方で、符号化処理は指定されない場合があるが、エンコーダは、適合ビットストリームを生成することだけ必要とされる場合がある。ビットストリームとデコーダの適合性は、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)を用いて検証することができる。規格には、伝送誤差および伝送損失に対処するのに役立つ符号化ツールが含まれ得るが、符号化におけるツールの使用は任意選択である場合があり、誤差のあるビットストリームの復号処理は指定されていない可能性がある。
【0033】
構文要素は、ビットストリームで表されるデータの要素と定義されてもよい。構文構造は、指定された順序でビットストリーム内に共に存在する0個以上の構文要素と定義されてもよい。
【0034】
エンコーダへの入力およびデコーダの出力の基本単位はそれぞれ、典型的にはピクチャである。エンコーダへの入力として与えられたピクチャを、ソースピクチャと呼ぶこともあり、デコーダによって復号されたピクチャを、復号ピクチャまたは再構築ピクチャと呼ぶこともある。
【0035】
ソースピクチャおよび復号ピクチャはそれぞれ、以下のサンプル配列のセットのうちの1つなど、1つまたは複数のサンプル配列から構成される。
- 輝度(Y)のみ(モノクロ)
- 輝度および2つの色差(YCbCrまたはYCgCo)
- 緑、青、および赤(GBR、RGBとも呼ばれる)
- 他の不特定のモノクロまたは3刺激色サンプリングを表す配列(例えば、YZX、XYZとも呼ばれる)
【0036】
以下では、使用中の実際の色表現方法に関係なく、これらの配列を輝度(または、LもしくはY)および色差と呼び、2つの色差配列をCbおよびCrと呼ぶ。使用中の実際の色表現方法は、例えば、HEVCなどの映像ユーザビリティ情報(VUI)構文を使用して、例えば符号化ビットストリームにおいて示すことができる。成分は、3つのサンプル配列(輝度および2つの色差)のうちの1つからの配列もしくは単一のサンプル、またはモノクロフォーマットのピクチャを構成する配列または配列の単一のサンプルと定義されてもよい。
【0037】
ピクチャは、フレームまたはフィールドのいずれかと定義されてもよい。フレームは、輝度サンプルの行列と、場合によっては対応する色差サンプルとを含む。フィールドは、フレームの代替サンプル行のセットであり、ソース信号がインターレースされるとき、エンコーダ入力として使用されてもよい。色差サンプル配列は存在しない(したがって、モノクロサンプリングが使用されている場合がある)か、または輝度サンプル配列と比較されるとき、色差サンプル配列がサブサンプリングされる場合がある。
【0038】
いくつかの色差フォーマットは、以下のように要約することができる。
- モノクロサンプリングでは、サンプル配列が1つのみ存在し、名目上は輝度配列と見なされ得る。
- 4:2:0サンプリングでは、2つの色差配列のそれぞれが輝度配列の半分の高さおよび半分の幅を有する。
- 4:2:2サンプリングでは、2つの色差配列のそれぞれが輝度配列と同じ高さおよび半分の幅を有する。
- 4:4:4サンプリングでは、個別の色平面が使用されない場合、2つの色差配列のそれぞれが輝度配列と同じ高さおよび幅を有する。
【0039】
符号化フォーマットまたは符号化規格によって、個別の色平面としてのサンプル配列をビットストリームの中に符号化し、個別に符号化された色平面をそれぞれビットストリームから復号することが可能になる。個別の色平面が使用されている場合、その色平面はそれぞれ、モノクロサンプリングによるピクチャとして(エンコーダおよび/またはデコーダによって)個別に処理される。
【0040】
色差サブサンプリングが使用されている場合(例えば、4:2:0または4:2:2色差サンプリング)、輝度サンプルに対する色差サンプルの位置は、(例えば、前処理ステップとして、または符号化の一部として)エンコーダ側で決定されてもよい。輝度サンプル位置に対する色差サンプル位置は、例えばH.264/AVCまたはHEVCなどの符号化規格で事前定義され得るか、または例えばH.264/AVCまたはHEVCのVUIの一部としてビットストリームにおいて指定され得る。
【0041】
一般に、符号化のための入力として提供されるソース映像シーケンスは、インターレースソースコンテンツまたはプログレッシブソースコンテンツのいずれかを表す場合がある。インターレースソースコンテンツの場合、反対のパリティのフィールドが、異なる時間に取り込まれている。プログレッシブソースコンテンツは、取り込まれたフレームを含む。エンコーダは、インターレースフィールドのペアが符号化フレームに符号化され得る方法、またはフィールドが符号化フィールドとして符号化され得る方法の2つの方法で、インターレースソースコンテンツのフィールドを符号化することができる。同様に、エンコーダは、プログレッシブソースコンテンツのフレームが符号化フレームに符号化され得る方法または符号化フィールドのペアに符号化され得る方法の2つの方法で、プログレッシブソースコンテンツのフレームを符号化することができる。フィールドペアまたは相補フィールドペアは、反対のパリティ(すなわち、1つはトップフィールド、もう1つはボトムフィールド)を有するとともに、どちらも他の相補フィールドペアに属していない、復号順および/または出力順で互いに隣り合う2つのフィールドと定義されてもよい。一部の映像符号化の規格または方式では、同じ符号化映像シーケンス内で符号化フレームと符号化フィールドを混在させることが可能である。さらに、符号化および/または復号において、符号化フレーム内のフィールドから符号化フィールドを予測することおよび/または(フィールドとして符号化された)相補フィールドペアの符号化フレームを予測することが可能になる場合がある。
【0042】
パーティショニングとは、1つのセットの各要素がサブセットの厳密に1つに含まれるように、セットをサブセットに分割することと定義されてもよい。
【0043】
H.264/AVCでは、マクロブロックは、16×16ブロックの輝度サンプルと、対応する色差サンプルのブロックである。例えば、4:2:0サンプリングパターンでは、マクロブロックは、色差成分ごとに1つの8×8ブロックの色差サンプルを含む。H.264/AVCでは、ピクチャは1つまたは複数のスライスグループにパーティショニングされ、スライスグループは1つまたは複数のスライスを含む。H.264/AVCでは、スライスは整数のマクロブロックから成り、特定のスライスグループ内でラスタ走査の順で連続している。
【0044】
HEVCの符号化および/または復号の動作を説明するとき、以下の用語が使用されることがある。符号化ブロックは、符号化ツリーブロックから符号化ブロックへの分割がパーティショニングとなるような、ある特定の値Nの場合のN×Nのサンプルブロックと定義されてもよい。符号化ツリーブロック(CTB:Coding Tree Block)は、成分から符号化ツリーブロックへの分割がパーティショニングとなるような、ある特定の値Nの場合のN×Nのサンプルブロックと定義されてもよい。符号化ツリー単位(CTU:Coding Tree Unit)は、輝度サンプルの符号化ツリーブロック、3つのサンプル配列を有するピクチャの色差サンプルの2つの対応する符号化ツリーブロック、またはモノクロピクチャもしくはサンプルの符号化に使用される3つの別々の色平面および構文構造を使用して符号化されるピクチャのサンプルの符号化ツリーブロックと定義されてもよい。符号化単位(CU:Coding Unit)は、輝度サンプルの符号化ブロック、3つのサンプル配列を有するピクチャの色差サンプルの2つの対応する符号化ブロック、またはモノクロピクチャもしくはサンプルの符号化に使用される3つの別々の色平面および構文構造を使用して符号化されるピクチャのサンプルの符号化ブロックと定義されてもよい。
【0045】
高効率映像符号化(HEVC)コーデックなどのいくつかの映像コーデックでは、映像ピクチャは、ピクチャの領域をカバーする符号化単位(CU)に分割されてもよい。CUは、CU内のサンプルに対する予測処理を定義する1つまたは複数の予測単位(PU:Prediction Unit)と、前記CU内のサンプルに対する予測誤差符号化処理を定義する1つまたは複数の変換単位(TU:Transform Unit)とで構成される。CUは、可能なCUサイズの事前定義されたセットから選択可能なサイズを有する正方形のサンプルブロックで構成されてもよい。最大許容サイズのCUは、LCU(最大符号化単位:Largest Coding Unit)または符号化ツリー単位(CTU)と呼ばれることがあり、映像ピクチャは重なり合わないLCUに分割される。LCUはさらに、例えばLCUを再帰的に分割したことによるより小さいCUと、結果として生じたCUとの組合せに分割することができる。結果として得られる各CUは、少なくとも1つのPUと、それに関連付けられた少なくとも1つのTUとを有する場合がある。各PUおよびTUはさらに、予測処理および予測誤差符号化処理の粒度を高めるために、より小さいPUおよびTUにそれぞれ分割されてもよい。各PUには、どのような種類の予測をそのPU内の画素に適用すべきかを定義する予測情報(例えば、インター予測されたPUに関する動きベクトル情報、およびイントラ予測されたPUに関するイントラ予測方向性情報)が関連付けられている。
【0046】
各TUは、前記TU内のサンプルに対する予測誤差復号処理を説明する情報(例えば、DCT係数情報を含む)と関連付けられることができる。各CUに予測誤差符号化が適用されているかどうかは、CUレベルでシグナリングされてもよい。CUに関連する予測誤差の残余がない場合、前記CUに対するTUはないと見なすことができる。画像のCUへの分割ならびにCUのPUおよびTUへの分割は、ビットストリームでシグナリングされ、デコーダは、これらの単位の所与の構造を再現できるようになる。
【0047】
H.266/VVCのドラフト版では、次のパーティショニングが適用される。ここで説明する内容は、規格が最終決定されるまで、H.266/VVCのより最近のドラフト版でさらに進化する可能性があることに留意されたい。ピクチャはHEVCと同様にCTUにパーティショニングされるが、最大CTUサイズは128×128に増加している。最初に、符号化ツリー単位(CTU)が、4次木(4分木としても知られる)構造によってパーティショニングされる。次いで、4次木の葉ノードを、マルチタイプ木構造によってさらにパーティショニングすることができる。マルチタイプ木構造には、垂直2分割、水平2分割、垂直3分割、水平3分割の4つの分割タイプがある。マルチタイプ木の葉ノードは、符号化単位(CU)と呼ばれる。CUが最大変換長に対して大きすぎる場合を除いて、CU、PU、およびTUのブロックサイズは同じである。CTUのセグメント化構造は、2分割および3分割を使用する入れ子のマルチタイプ木を有する4分木であり、すなわち、最大変換長に対してサイズが大きすぎるCUに必要な場合を除いて、個別のCU、PU、およびTUの概念は使用されていない。CUの形状は、正方形または矩形の形状のいずれかとすることができる。
【0048】
デコーダは、(エンコーダによって作成され圧縮表現で記憶された動き情報または空間情報を使用して)画素ブロックの予測表現を形成するための、エンコーダと同様の予測手段と、予測誤差復号(空間画素領域内の量子化された予測誤差信号を復元する予測誤差符号化の逆演算)とを適用することによって、出力映像を再構築する。デコーダは、予測手段および予測誤差復号手段を適用した後、予測信号および予測誤差信号(画素値)を合計して出力映像フレームを形成する。デコーダ(およびエンコーダ)は、出力映像をディスプレイに渡す前および/または出力映像を映像シーケンス内の次のフレームの予測参照として記憶する前に追加のフィルタリング手段を適用して、出力映像の品質を向上させることもできる。
【0049】
フィルタリングは、例えば、次の、デブロッキング、サンプル適応オフセット(SAO:Sample Adaptive Offset)、および/または適応ループフィルタリング(ALF:Adaptive Loop Filtering)のうちの1つを含んでもよい。
【0050】
デブロッキングループフィルタは、複数のフィルタリングモードまたはフィルタリング強度を含んでもよく、これらは、量子化パラメータ値、および/またはエンコーダによってビットストリームに含まれるシグナリングなど、境界に隣接するブロックの特徴に基づいて適応的に選択されてもよい。例えば、デブロッキングループフィルタは、通常フィルタリングモードおよび強力フィルタリングモードを含んでもよく、これらは、フィルタタップの数(すなわち、境界の両側でフィルタリングされるサンプルの数)および/またはフィルタタップ値に関して異なる場合がある。例えば、境界の両側に沿った2つのサンプルのフィルタリングは、クリッピング動作による潜在的な影響を省略した場合に(3 7 9 -3)/16のインパルス応答を有するフィルタを用いて実行されてもよい。
【0051】
動き情報は、映像コーデック内の各動き補償画像ブロックに関連付けられた動きベクトルを用いて示されてもよい。これらの動きベクトルはそれぞれ、(エンコーダ側で)符号化または(デコーダ側で)復号されるピクチャ内の画像ブロックと、先に符号化または復号されたピクチャのうちの1つにおける予測ソースブロックとの変位を表す。動きベクトルを効率的に表すために、これらは、ブロック固有の予測済み動きベクトルに対して差動的に符号化されてもよい。予測済み動きベクトルは、例えば、隣接ブロックの符号化済み動きベクトルまたは復号済み動きベクトルの中央値を算出するなど、既定の方法で作成されてもよい。動きベクトル予測を作成する別の方法は、隣接ブロックおよび/または時間参照ピクチャ内の同じ場所に位置するブロックから候補予測のリストを生成し、選択された候補を動きベクトル予測子としてシグナリングすることである。動きベクトル値を予測することに加えて、先に符号化/復号されたピクチャの参照インデックスを予測することができる。参照インデックスは、隣接ブロックおよび/または時間参照ピクチャ内の同じ場所に位置するブロックから予測されてもよい。さらに、高効率映像コーデックは、しばしばマージングモード/マージモードと呼ばれる追加の動き情報符号化/復号メカニズムを採用することができ、動きベクトルおよび利用可能な各参照ピクチャリストの対応する参照ピクチャインデックスを含むすべての動きフィールド情報が予測され、変更/修正なしで使用される。同様に、動きフィールド情報を予測することは、隣接ブロックおよび/または時間参照ピクチャ内の同じ場所に位置するブロックの動きフィールド情報を使用して実行され、使用される動きフィールド情報は、利用可能な隣接ブロック/同じ場所に位置するブロックの動きフィールド情報で埋められた動きフィールド候補リストのリストの間でシグナリングされる。
【0052】
映像コーデックは、1つのソース画像(単予測)と2つのソース(双予測)からの動き補償予測をサポートすることができる。単予測の場合、単一の動きベクトルが適用されるが、双予測の場合、2つの動きベクトルがシグナリングされ、2つのソースからの動き補償予測が平均化されて、最終的なサンプル予測が作成される。重み付き予測の場合、2つの予測の相対的な重みを調整することができ、またはシグナリングされたオフセットを予測信号に追加することができる。
【0053】
ピクチャ間予測に動き補償を適用することに加えて、同様の手法をピクチャ内予測に適用することができる。この場合、変位ベクトルは、符号化または復号されるブロックの予測を形成するために、同じピクチャからどのサンプルブロックをコピーできるかを示す。この種のブロック内コピー方法は、テキストまたは他のグラフィックスなど、フレーム内に反復構造が存在する場合に、符号化効率を大幅に向上させることができる。
【0054】
動き補償またはイントラ予測後の予測残差は、最初に(DCTのような)変換カーネルで変換され、次いで符号化されてもよい。この理由は、しばしば残差間に依然として何らかの相関関係が存在し、多くの場合、変換がこの相関関係を減らすのに役立ち、より効率的な符号化を可能にするからである。
【0055】
映像エンコーダは、最適な符号化モード、例えば所望のマクロブロックモード、および関連する動きベクトルを見出すために、ラグランジュコスト関数を利用してもよい。この種のコスト関数は、重み係数λを使用して、不可逆符号化法による(正確なまたは推定された)画像歪みと、画像領域の画素値を表すために必要な(正確なまたは推定された)情報量とを結び付ける。
【0056】
C=D+λR ・・・(式1)
式中、Cは、最小化すべきラグランジュコストであり、Dは、モードおよび動きベクトルを考慮した画像歪み(例えば、平均二乗誤差)であり、Rは、デコーダにおいて画像ブロックを再構築するために必要とされるデータ(候補の動きベクトルを表すためのデータの量を含む)を表すために必要なビット数である。
【0057】
いくつかのコーデックは、ピクチャ順序カウント(POC:Picture Order Count)の概念を使用する。POCの値はピクチャごとに導出され、出力順でピクチャの位置が増加しても減少しない。したがって、POCはピクチャの出力順序を示す。POCは、例えば、動きベクトルの暗黙のスケーリングおよび参照ピクチャリストの初期化のために、復号処理において使用されてもよい。さらに、POCは、出力順序の適合性の検証に使用されてもよい。
【0058】
映像符号化規格では、準拠ビットストリームは、エンコーダの出力に概念的に接続され得るとともに少なくともプリデコーダバッファ、デコーダ、および出力/表示ユニットで構成される、仮想参照デコーダによって復号されることが可能でなければならない。この仮想のデコーダは、仮想参照デコーダ(HRD)または映像バッファリング検証器(VBV:Video Buffering Verifier)として知られている場合がある。ストリームをHRDによって、バッファオーバーフローまたは場合によってはアンダーフローなしで復号できる場合、そのストリームは準拠している。バッファオーバーフローは、バッファが一杯になっているときにさらに多くのビットがバッファ内に配置される場合に発生する。バッファアンダーフローは、復号/再生のためにバッファからビットをフェッチすべきときに、前記ビットの一部がバッファ内にない場合に発生する。HRDの動機の1つは、実際のデコーダの実装では処理できないほど大量のリソースを消費する、いわゆる悪意あるビットストリームを回避することである。
【0059】
HRDモデルは通常、瞬時復号を含むが、HRDの符号化ピクチャバッファ(CPB:Coded Picture Buffer)への入力ビットレートは、符号化データの復号レートに関するエンコーダおよびビットストリームの制約、および処理レートに関するデコーダの要件と見なすことができる。エンコーダは、符号化の際にバッファリング制約に従っていることを検証および制御するためにHRDで指定されたCPBを含んでもよい。デコーダの実装はまた、HRD用に指定されたCPBと同様にまたは同一に動作し得るが必ずしもそのように動作しないCPBを有してもよい。
【0060】
復号ピクチャバッファ(DPB:Decoded Picture Buffer)が、エンコーダおよび/またはデコーダで使用されてもよい。復号ピクチャをバッファリングする理由は2つあり、インター予測での参照のため、および復号ピクチャを出力順序に並べ替えるためである。HEVCなどのいくつかの符号化フォーマットは、参照ピクチャのマーク付けと出力並べ替えとの両方に多大な柔軟性を提供するため、参照ピクチャのバッファリングと出力ピクチャのバッファリングに別々のバッファを使用すると、メモリリソースを浪費する可能性がある。したがって、DPBは、参照ピクチャおよび出力並べ替えのための統合された復号ピクチャバッファリング処理を含んでもよい。復号ピクチャは、参照として使用されなくなり、出力される必要がなくなると、DPBから削除されてもよい。HRDも、DPBを含んでもよい。HRD実装のDPBとデコーダ実装のDPBは、同じように動作してもよいが同じように動作する必要はない。
【0061】
出力順序は、(復号ピクチャバッファから出力される復号ピクチャの場合)復号ピクチャバッファから復号ピクチャが出力される順序と定義されてもよい。
【0062】
デコーダおよび/またはHRDは、ピクチャ出力処理を含んでもよい。出力処理は、デコーダが復号済みのピクチャおよびトリミング済みのピクチャを復号処理の出力として提供する処理と見なされてもよい。出力処理は、典型的には映像符号化規格の一部、典型的には仮想参照デコーダ仕様の一部である。出力トリミングでは、トリミング矩形に従って復号ピクチャからサンプルの行および/または列を削除して、出力ピクチャを形成してもよい。トリミング済み復号ピクチャは、例えば対応する符号化ピクチャによって参照されるシーケンスパラメータセットで指定された適合トリミングウィンドウに基づいて復号ピクチャをトリミングした結果と定義されてもよい。
【0063】
映像符号化システムには、(復号された)参照ピクチャマーク付けのための1つまたは複数の構文構造が存在してもよい。エンコーダは、例えば各符号化ピクチャで構文構造のインスタンスを生成し、デコーダは、例えば各符号化ピクチャから構文構造のインスタンスを復号する。例えば、構文構造の復号によって、ピクチャに「参照に使用」または「参照に不使用」として適応的にマークすることができる。
【0064】
HEVCの参照ピクチャセット(RPS:Reference Picture Set)構文構造は、参照ピクチャマーク付けのための構文構造の一例である。ピクチャに対して有効なまたはアクティブな参照ピクチャセットには、ピクチャの参照として使用できるすべての参照ピクチャ、および復号順に後続のピクチャの「参照に使用」としてマークされたままのすべての参照ピクチャが含まれる。復号順に後続のピクチャの「参照に使用」としてマークされたままであるが、現在のピクチャまたは画像セグメントの参照ピクチャとして使用されていない参照ピクチャは、非アクティブと見なされてもよい。例えば、これらは初期参照ピクチャリストに含まれない可能性がある。
【0065】
いくつかの符号化フォーマットおよびコーデックでは、いわゆる短期間参照ピクチャと長期間参照ピクチャとが区別されることがある。この区別は、動きベクトルスケーリングなどの一部の復号処理に影響を与える可能性がある。参照ピクチャをマークするための構文構造は、ピクチャを「長期間参照に使用」または「短期間参照に使用」としてマークすることを示してもよい。
【0066】
いくつかの符号化フォーマットでは、インター予測のための参照ピクチャは、参照ピクチャリストへのインデックスによって示されてもよい。いくつかのコーデックでは、双予測(B)スライスごとに2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)が生成され、インター符号化(P)スライスごとに1つの参照ピクチャリスト(参照ピクチャリスト0)が形成される。
【0067】
参照ピクチャリスト0および参照ピクチャリスト1などの参照ピクチャリストは、2つのステップで構築されてもよい。第1に、初期参照ピクチャリストが生成される。初期参照ピクチャリストは、規格で事前定義されたアルゴリズムを使用して生成されてもよい。このようなアルゴリズムは、例えば、基礎としてPOCおよび/または時間サブレイヤを使用してもよい。アルゴリズムは、「参照に使用」などの特定のマーク付けを有する参照ピクチャを処理し、他の参照ピクチャを省略してもよい、すなわち、他の参照ピクチャを初期参照ピクチャリストに挿入しないようにしてもよい。そのような他の参照ピクチャの一例は、「参照に不使用」とマークされているが、デコーダから出力されるのを待機している復号ピクチャバッファ内に依然として存在している参照ピクチャである。第2に、初期参照ピクチャリストは、H.264/AVCの参照ピクチャリスト並べ替え(RPLR:Reference Picture List Reordering)コマンドまたはHEVCの参照ピクチャリスト変更構文構造などの特定の構文構造を通して並べ替えられてもよい。さらに、アクティブな参照ピクチャの数をリストごとに示すことができ、リスト内のアクティブなピクチャ以外のピクチャをインター予測の参照として使用することはできない。参照ピクチャリストの初期化と参照ピクチャリストの変更の一方または両方は、「参照に使用」などとしてマークされている参照ピクチャのうち、アクティブな参照ピクチャのみを処理してもよい。
【0068】
スケーラブル映像符号化とは、1つのビットストリームが異なるビットレート、解像度、またはフレームレートでコンテンツの複数の表現を含むことができる符号化構造を指す。このような場合、受信機は、その特徴(例えば、ディスプレイデバイスに最適な解像度)に応じて所望の表現を抽出することができる。代替として、サーバまたはネットワーク要素は、例えばネットワークの特徴または受信機の処理能力に応じて、受信機に送信すべきビットストリームの一部を抽出することができる。スケーラブルなビットストリームは、利用可能な最も低い品質の映像を提供する「基本レイヤ」と、下位レイヤと共に受信および復号されたときに映像品質を拡張する1つまたは複数の拡張レイヤとを含んでもよい。拡張レイヤの符号化効率を向上させるために、拡張レイヤの符号化された表現は、下位レイヤに依存することができ、例えば、拡張レイヤの動き情報およびモード情報を、下位レイヤから予測することができる。同様に、下位レイヤの画素データを使用して、拡張レイヤの予測を作成することができる。
【0069】
品質スケーラビリティ(信号対雑音比またはSNRとしても知られる)および/または空間スケーラビリティのためのスケーラブル映像コーデックは、次のように実装されてもよい。基本レイヤの場合、従来の非スケーラブル映像エンコーダおよびデコーダが使用される。基本レイヤの再構築/復号ピクチャは、拡張レイヤ用の参照ピクチャバッファに含まれる。インター予測のために参照ピクチャリストを使用するH.264/AVC、HEVC、および同様のコーデックでは、基本レイヤ復号ピクチャは、拡張レイヤの復号参照ピクチャと同様に、拡張レイヤピクチャの符号化/復号のための参照ピクチャリストに挿入されてもよい。その結果、エンコーダは、インター予測参照として基本レイヤ参照ピクチャを選択し、その使用を、例えば参照ピクチャインデックスを用いて符号化ビットストリームに示してもよい。デコーダは、ビットストリームから、例えば参照ピクチャインデックスから、基本レイヤピクチャが拡張レイヤ用のインター予測参照として使用されることを復号する。復号された基本レイヤピクチャは、拡張レイヤの予測参照として使用される場合、レイヤ間参照ピクチャと呼ばれる。
【0070】
スケーラビリティモードまたはスケーラビリティ次元には次のものが含まれるが、これらに限定されない。
・品質スケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャよりも低い品質で符号化される。この符号化は、例えば、基本レイヤで拡張レイヤよりも大きい量子化パラメータ値(すなわち、変換係数量子化のためのより大きい量子化ステップサイズ)を使用して実現されてもよい。
・空間スケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャよりも低い解像度で符号化される(すなわち、サンプルが少ない)。空間スケーラビリティおよび品質スケーラビリティは、同じタイプのスケーラビリティと見なされる場合がある。
・ビット深度スケーラビリティ:基本レイヤピクチャは、拡張レイヤピクチャ(例えば、10ビットまたは12ビット)よりも低いビット深度(例えば、8ビット)で符号化される。
・ダイナミックレンジスケーラビリティ:スケーラブルレイヤは、異なるトーンマッピング機能および/または異なる光学伝達関数を使用して取得された異なるダイナミックレンジおよび/または画像を表す。
・色差フォーマットスケーラビリティ:基本レイヤピクチャは、(例えば4:2:0色差フォーマットで符号化された)色差サンプル配列において拡張レイヤピクチャ(例えば、4:4:4フォーマット)よりも低い空間解像度を提供する。
・色域スケーラビリティ:拡張レイヤピクチャは、基本レイヤのピクチャよりも豊富な/幅広い色表現範囲を有する。例えば、拡張レイヤはUHDTV(ITU-R BT.2020)色域を有することができ、基本レイヤはITU-R BT.709色域を有することができる。
・関心領域(ROI:Region-Of-Interest)スケーラビリティ:拡張レイヤは、基本レイヤの空間サブセットを表す。拡張レイヤが空間サブセットに対してより高い主観的品質を提供するように、ROIスケーラビリティは、他のタイプのスケーラビリティ、例えば品質スケーラビリティまたは空間スケーラビリティと共に使用されてもよい。
・ビュースケーラビリティ:マルチビュー符号化と呼ばれることもある。基本レイヤは第1のビューを表し、拡張レイヤは第2のビューを表す。
・深度スケーラビリティ:深度拡張符号化と呼ばれることもある。ビットストリームの1つレイヤまたはいくつかのレイヤは、テクスチャビューを表してもよく、他の1つまたは複数のレイヤは深度ビューを表してもよい。
【0071】
上記のすべてのスケーラビリティにおいて、基本レイヤ情報を使用して拡張レイヤを符号化し、追加のビットレートオーバーヘッドを最小限に抑えることができる。
【0072】
スケーラビリティは、2つの基本的な方法で有効にすることができる。スケーラブル表現の下位レイヤから画素値または構文の予測を実行するための新しい符号化モードを導入すること、または下位レイヤピクチャを上位レイヤの参照ピクチャバッファ(復号ピクチャバッファ、DPB)に配置することのいずれかによって有効にすることができる。1つ目の手法はより柔軟性があり、したがってほとんどの場合より良好な符号化効率を提供することができる。しかしながら、2つ目の参照フレームベースのスケーラビリティ手法は、非常に効率的に実装することができ、単一レイヤコーデックへの変更を最小限に抑えると同時に、依然として利用可能な符号化効率向上の大部分を達成する。基本的に、参照フレームベースのスケーラビリティコーデックは、すべてのレイヤに同じハードウェアまたはソフトウェアの実装を利用して、外部手段によるDPB管理を処理するだけで実装することができる。
【0073】
HEVCなどの一部の符号化フォーマットのエンコーダの出力およびHEVCなどの一部の符号化フォーマットのデコーダの入力の基本単位は、ネットワーク抽象化レイヤ(NAL:Network Abstraction Layer)ユニットである。パケット指向ネットワークを介した転送または構造化ファイルへの記憶の場合、NALユニットはパケットまたは同様の構造にカプセル化されてもよい。
【0074】
NALユニットは、ヘッダとペイロードで構成される。HEVCでは、指定されたすべてのNALユニットタイプに対して2バイトのNALユニットヘッダが使用されるが、他のコーデックでは、NALユニットヘッダはHEVCでのヘッダと類似している場合がある。
【0075】
HEVCにおいて、NALユニットヘッダは、1ビットの予約ビットと、6ビットのNALユニットタイプ指示と、時間レベルまたはサブレイヤに関する3ビットのtemporal_id_plus1指示(1以上である必要がある場合がある)と、6ビットのnuh_layer_id構文要素とを含む。temporal_id_plus1構文要素はNALユニットに対する時間識別子と見なされてもよく、ゼロベースのTemporalId変数は次のTemporalId=temporal_id_plus1-1のように導出されてもよい。略語TIDは、TemporalId変数と交換可能に使用される場合がある。0に等しいTemporalIdは、最も低い時間レベルに対応する。2つのNALユニットヘッダバイトを含む開始コードエミュレーションを回避するために、temporal_id_plus1の値はゼロ以外である必要がある。選択された値以上のTemporalIdを有するすべてのVCL NALユニットを除外し他のすべてのVCL NALユニットを含めることによって作成されたビットストリームが適合するものである。したがって、tid_valueに等しいTemporalIdを有するピクチャは、tid_valueよりも大きいTemporalIdを有するピクチャをインター予測参照として使用しない。サブレイヤまたは時間サブレイヤは、時間的にスケーラブルなビットストリームの時間的にスケーラブルなレイヤ(または、時間レイヤ、TL)と定義されてもよい。そのような時間的にスケーラブルなレイヤは、TemporalId変数の特定の値を有するVCL NALユニットおよび関連する非VCL NALユニットを含んでもよい。nuh_layer_idは、スケーラビリティレイヤ識別子と理解することができる。
【0076】
NALユニットは、映像符号化レイヤ(VCL:Video Coding Layer)NALユニットと非VCLNALユニットに分類することができる。VCL NALユニットは通常、符号化されたスライスNALユニットである。HEVCでは、VCL NALユニットは、1つまたは複数のCUを表す構文要素を含む。HEVCでは、一定の範囲内のNALユニットタイプはVCL NALユニットを示し、VCL NALユニットタイプはピクチャタイプを示す。
【0077】
画像は、独立して符号化可能および復号可能な画像セグメント(例えば、スライスまたはタイルもしくはタイルグループ)に分割することができる。そのような画像セグメントは、並列処理を可能にすることができ、本明細書における「スライス」は、デフォルトの符号化順または復号順で処理される一定数の基本的な符号化ユニットから構築される画像セグメントを指す場合があり、「タイル」は、矩形の画像領域と定義されている画像セグメントを指す場合がある。タイルグループは、1つまたは複数のタイルのグループと定義されてもよい。画像セグメントは、H.264/AVCおよびHEVCにおけるVCL NALユニットなど、ビットストリーム内の個別のユニットとして符号化されてもよい。符号化された画像セグメントは、ヘッダおよびペイロードを含んでもよく、ヘッダは、ペイロードを復号するために必要なパラメータ値を含む。
【0078】
HEVC規格では、ピクチャを、矩形で整数のCTUを含むタイルにパーティショニングすることができる。HEVC規格では、タイルへのパーティション分割は、(CTU内の)タイル列幅のリストおよび(CTU内の)タイル行高さのリストを特徴とし得るグリッドを形成する。タイルは、タイルグリッドのラスタ走査順でビットストリームにおいて連続して順序付けられる。タイルは、整数のスライスを含んでもよい。
【0079】
HEVCでは、スライスは整数のCTUで構成される。CTUは、タイル内またはタイルが使用されていない場合はピクチャ内のCTUのラスタ走査順で走査される。スライスが整数のタイルを含み得るか、またはタイルにスライスを含めることができる。CTU内では、CUには特定の走査順序がある。
【0080】
HEVCにおいて、スライスは、1つの独立スライスセグメントと、同じアクセスユニット内の次の独立スライスセグメント(存在する場合)の前にあるすべての後続の従属スライスセグメント(存在する場合)とに含まれる整数の符号化ツリー単位と定義される。HEVCにおいて、スライスセグメントは、タイル走査で連続して順序付けられる、単一のNAL(ネットワーク抽象化レイヤ)ユニットに含まれる整数の符号化ツリー単位と定義される。各ピクチャのスライスセグメントへの分割は、パーティショニングである。HEVCにおいて、独立スライスセグメントは、スライスセグメントヘッダの構文要素の値が前のスライスセグメントの値から推論されないスライスセグメントと定義され、従属スライスセグメントは、スライスセグメントヘッダのいくつかの構文要素の値が、復号順で前の独立スライスセグメントの値から推論されるスライスセグメントと定義される。HEVCにおいて、スライスヘッダは、現在のスライスセグメントであるかまたは現在の従属スライスセグメントの前の独立スライスセグメントである独立スライスセグメントのスライスセグメントヘッダと定義され、スライスセグメントヘッダは、スライスセグメントで表される最初のまたはすべての符号化ツリー単位に関連するデータ要素を含む符号化スライスセグメントの一部と定義される。CUは、タイル内またはタイルが使用されていない場合はピクチャ内のLCUのラスタ走査順で走査される。LCU内では、CUは、特定の走査順序を有する。
【0081】
H.266/VVCのドラフト版では、ピクチャは、(HEVCと同様に)タイルグリッドに沿ってタイルへとパーティショニングされる。タイルは、ビットストリームにおいて、ピクチャ内のタイルラスタ走査順で順序付けられ、CTUは、ビットストリームにおいて、タイル内のラスタ走査順で順序付けられる。タイルグループは、1つまたは複数のタイル全体をビットストリーム順序(すなわち、ピクチャ内のタイルラスタ走査順序)で含み、VCL NALユニットは、1つのタイルグループを含む。スライスは、H.266/VVCのドラフト版には含まれていない。本段落で説明した内容は、規格が最終決定されるまで、H.266/VVCのより最近のドラフト版でさらに進化する可能性があることに留意されたい。
【0082】
動き制約タイルセット(MCTS:Motion-Constrained Tile Set)では、符号化時にインター予測処理が次のように制約される。動き制約タイルセットの外側のサンプル値と、動き制約タイルセットの外側の1つまたは複数のサンプルを使用して導出される部分サンプル位置にあるサンプル値とが、動き制約タイルセット内のサンプルのインター予測に使用されることはない。さらに、MCTSの符号化は、動きベクトル候補がMCTSの外側のブロックから導出されないように制約される。この制約は、HEVCの時間的動きベクトル予測をオフにすることによって、またはTMVP候補、またはMCTSの右下にある最後の境界を除くMCTSの右側タイル境界のすぐ左にあるPUのマージまたはAMVP候補リストでTMVP候補に続く任意の動きベクトル予測候補をエンコーダが使用できないようにすることによって、施行することができる。一般に、MCTSは、MCTSの外側にあるサンプル値および動きベクトルなどの符号化データから独立したタイルセットと定義されてもよい。MCTSシーケンスは、1つまたは複数の符号化映像シーケンスなどにおけるそれぞれのMCTSのシーケンスと定義されてもよい。場合によっては、MCTSは、矩形領域を形成するために必要とされることがある。コンテキストに応じて、MCTSとは、ピクチャ内のタイルセット、またはピクチャのシーケンス内のそれぞれのタイルセットを指す場合があることを理解されたい。それぞれのタイルセットは、ピクチャのシーケンス内の同一位置(collocated)にあってもよいが、一般的にはそのようにする必要はない。動き制約タイルセットは、他のタイルセットなしで復号され得るので、独立して符号化されたタイルセットと見なされてもよい。
【0083】
インター予測で使用されるサンプル位置が飽和し、その結果、本来はピクチャの外側にある位置が飽和してピクチャの対応する境界サンプルを指し示す場合があることが理解される。したがって、いくつかの使用例では、タイル境界がピクチャ境界でもある場合、サンプル位置が飽和しているので、動きベクトルがその境界を効果的に越える可能性があるか、または動きベクトルが、その境界の外側の位置を参照することになる部分サンプル補間を効果的に引き起こす可能性がある。他の使用例では、特に、ピクチャ境界に隣接する位置に符号化タイルがあるビットストリームから、ピクチャ境界に隣接しない位置にタイルがある別のビットストリームまで、符号化タイルが抽出される可能性がある場合、エンコーダは、MCTS境界と同様にピクチャ境界で動きベクトルを制約する。
【0084】
ビットストリーム内の動き制約タイルセットの存在を示すために、HEVCの時間的動き制約タイルセットSEI(付加拡張情報)メッセージを使用することができる。
【0085】
非VCL NALユニットは、例えば、次のタイプ、すなわちシーケンスパラメータセット、ピクチャパラメータセット、付加拡張情報(SEI:Supplemental Enhancement Information)NALユニット、アクセスユニットデリミタ、シーケンス終端NALユニット、ビットストリーム終端NALユニット、またはフィラーデータNALユニットのうちの1つとすることができる。パラメータセットは、復号ピクチャの再構築に必要な場合があるが、他の非VCL NALユニットの多くは、復号サンプル値の再構築に必要ない。
【0086】
いくつかの符号化フォーマットは、復号ピクチャの復号または再構築に必要なパラメータ値を保持できるパラメータセットを指定する。符号化映像シーケンスを通じて変更されないままのパラメータは、シーケンスパラメータセット(SPS:Sequence Parameter Set)に含まれてもよい。復号処理で必要となる可能性のあるパラメータに加えて、シーケンスパラメータセットは、任意選択で、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース予約にとって重要となり得るパラメータを含む映像ユーザビリティ情報(VUI:Video Usability Information)を含んでもよい。ピクチャパラメータセット(PPS:Picture Parameter Set)は、いくつかの符号化ピクチャにおいて変更されない可能性が高いパラメータを含む。ピクチャパラメータセットは、1つまたは複数の符号化ピクチャの符号化画像セグメントによって参照され得るパラメータを含んでもよい。ヘッダパラメータセット(HPS:Header Parameter Set)は、ピクチャベースで変化し得るパラメータを含むように提案されている。
【0087】
パラメータセットは、例えばその識別子を介して参照されたときにアクティブ化されてもよい。例えば、スライスヘッダなどの画像セグメントのヘッダは、画像セグメントを含む符号化ピクチャを復号するためにアクティブ化される、PPSの識別子を含んでもよい。PPSは、PPSがアクティブ化されたときにアクティブ化される、SPSの識別子を含んでもよい。特定のタイプのパラメータセットをアクティブ化すると、先にアクティブだった同じタイプのパラメータセットが非アクティブ化されてもよい。
【0088】
異なる階層レベル(例えば、シーケンスおよびピクチャ)のパラメータセットの代わりにまたはそれに加えて、映像符号化フォーマットは、シーケンスヘッダまたはピクチャヘッダなどのヘッダ構文構造を含んでもよい。シーケンスヘッダは、ビットストリーム順で符号化映像シーケンスの他のデータの前にあってもよい。ピクチャヘッダは、ビットストリーム順でピクチャの符号化映像データの前にあってもよい。
【0089】
特許請求の範囲および記載している実施形態において、(例えば、ビットストリームに沿っていることを示す)ビットストリームに沿ってまたは(例えば、符号化タイルに沿っていることを示す)ビットストリームの符号化ユニットに沿ってという語句は、「帯域外」データがそれぞれビットストリームまたは符号化ユニットに関連しているがそれらに含まれない方法での伝送、シグナリング、または記憶を指すように使用されている場合がある。ビットストリームに沿って復号するまたはビットストリームの符号化ユニットに沿って復号するなどの語句は、それぞれビットストリームまたは符号化ユニットに関連する(帯域外の伝送、シグナリング、または記憶から取得され得る)参照された帯域外データを復号することを指す場合がある。例えば、ビットストリームに沿ってという語句は、ビットストリームがISOベースメディアファイルフォーマットに準拠するファイルなどのコンテナファイルに含まれ、ビットストリームを含むトラックのサンプルエントリ内のボックス、ビットストリームを含むトラックのサンプルグループ、またはビットストリームを含むトラックに関連付けられた時限メタデータトラックなどのメタデータをビットストリームに関連付ける方法で、特定のファイルメタデータがファイル内に記憶されるときに使用される場合がある。
【0090】
符号化ピクチャは、ピクチャの符号化表現である。
【0091】
ランダムアクセスポイント(RAP:Random Access Point)ピクチャは、イントラランダムアクセスポイント(IRAP:Intra Random Access Point)ピクチャと呼ばれることもあり、イントラ符号化された画像セグメントのみを含んでもよい。さらに、RAPピクチャは、出力順序のサブシーケンスピクチャを、復号順でRAPピクチャの前にあるピクチャの復号処理を実行することなく正しく復号され得るように制約してもよい。
【0092】
アクセスユニットは、単一の時間インスタンスの符号化映像データおよび関連する他のデータを含んでもよい。HEVCでは、アクセスユニット(AU:Access Unit)は、指定された分類規則に従って相互に関連付けられ、復号順に連続し、nuh_layer_idの特定の値を有する最大で1つのピクチャを含む、NALユニットのセットと定義されてもよい。符号化ピクチャのVCL NALユニットを含むことに加えて、アクセスユニットは、非VCL NALユニットも含むことがある。前記指定された分類規則は、例えば、同じ出力時間またはピクチャ出力カウント値を有するピクチャを同じアクセスユニットに関連付けてもよい。
【0093】
符号化ピクチャがアクセスユニット内で特定の順序で出現することが必要になる場合がある。例えば、nuh_layer_idがnuhLayerIdAに等しい符号化ピクチャは、復号順に、同じアクセスユニット内でnuh_layer_idがnuhLayerIdAより大きいすべての符号化ピクチャの前にある必要がある場合がある。
【0094】
ビットストリームは、ビットのシーケンスと定義されてもよく、これらは、いくつかの符号化フォーマットまたは符号化規格において符号化ピクチャおよび1つまたは複数の符号化映像シーケンスを形成する関連データの表現を形成する、NALユニットストリームまたはバイトストリームの形式であってもよい。同じファイル内または通信プロトコルの同じ接続内などの同じ論理チャネル内で、第1のビットストリームの後に第2のビットストリームが続いてもよい。(映像符号化のコンテキストにおける)エレメンタリストリームは、1つまたは複数のビットストリームのシーケンスと定義されてもよい。いくつかの符号化フォーマットまたは符号化規格では、第1のビットストリームの終端は、特定のNALユニットによって示されてもよく、特定のNALユニットは、ビットストリーム終端(EOB:End Of Bitstream)NALユニットと呼ばれることがあり、ビットストリームの最後のNALユニットである。
【0095】
符号化映像シーケンス(CVS:Coded Video Sequence)は、独立して復号可能であるとともに後に別の符号化映像シーケンスまたはビットストリーム終端が続く、復号順の符号化ピクチャのシーケンスと定義されてもよい。
【0096】
ビットストリームまたは符号化映像シーケンスは、次のように時間的にスケーラブルになるように符号化することができる。各ピクチャは、特定の時間サブレイヤに割り当てられてもよい。時間サブレイヤは、例えば、0から上へ並べられてもよい。最も低い時間サブレイヤであるサブレイヤ0は、独立して復号されてもよい。時間サブレイヤ1にあるピクチャは、時間サブレイヤ0および1にある再構築ピクチャから予測されてもよい。時間サブレイヤ2にあるピクチャは、時間サブレイヤ0、1、および2にある再構築ピクチャから予測されてもよく、以下同様である。言い換えると、時間サブレイヤNにあるピクチャは、インター予測のための基準として、Nより大きい時間サブレイヤのピクチャを使用しない。選択したサブレイヤ値以上のすべてのピクチャを除外してピクチャを含めることによって作成されたビットストリームは、適合したままである。
【0097】
サブレイヤアクセスピクチャは、サブレイヤの復号を正しく開始できるその起点となるピクチャ、すなわち、サブレイヤのすべてのピクチャを正しく復号できるその起点となるピクチャと定義されてもよい。HEVCには、時間サブレイヤアクセス(TSA:Temporal Sub-layer Access)ピクチャタイプおよび段階別時間サブレイヤアクセス(STSA:Step-wise Temporal Sub-layer Access)ピクチャタイプの2つのピクチャタイプがあり、これらは時間サブレイヤスイッチングポイントを示すために使用することができる。TemporalIdが最大でNである時間サブレイヤがTSAまたはSTSAピクチャ(排他的)まで復号され、TSAまたはSTSAピクチャのTemporalIdがN+1に等しい場合、TSAまたはSTSAピクチャは、TemporalIdがN+1に等しい(復号順で)後続のすべてのピクチャの復号を可能にする。TSAピクチャタイプは、TSAピクチャ自体、および復号順にTSAピクチャに続く同じサブレイヤ内のすべてのピクチャに制約を課してもよい。これらのピクチャはいずれも、復号順でTSAピクチャの前にある同じサブレイヤ内のピクチャからのインター予測を使用することはできない。TSAの定義ではさらに、復号順でTSAピクチャに続く上位サブレイヤのピクチャに制約を課してもよい。これらのピクチャはいずれも、そのピクチャがTSAピクチャと同じまたは上位のサブレイヤに属している場合、復号順でTSAピクチャの前にあるピクチャを参照することはできない。TSAピクチャのTemporalIdは0より大きい。STSAは、TSAピクチャと類似しているが、復号順にSTSAピクチャに続く上位サブレイヤ内のピクチャに制約を課さず、したがってSTSAピクチャが存在するサブレイヤに対してのみアップスイッチを可能にする。
【0098】
利用可能なメディアファイルフォーマットの規格には、ISOベースメディアファイルフォーマット(ISO/IEC14496-12、ISOBMFFと略す場合がある)、MPEG-4ファイルフォーマット(ISO/IEC14496-14、MP4フォーマットとしても知られる)、NALユニット構造化映像用ファイルフォーマット(ISO/IEC14496-15)、および3GPPファイルフォーマット(3GPP TS26.244、3GPフォーマットとしても知られる)が含まれる。ISOファイルフォーマットは、上記のすべてのファイルフォーマット(ISOファイルフォーマット自体を除く)を導出するための基礎である。これらのファイルフォーマット(ISOファイルフォーマット自体を含む)は、一般にISOファミリのファイルフォーマットと呼ばれる。
【0099】
コンテナファイルフォーマットの例として、ISOBMFFのいくつかの概念、構造、および仕様を以下に説明する。これらに基づいて実施形態を実装することができる。本発明の態様は、ISOBMFFに限定されず、それに基づいて本発明を部分的または完全に実現し得る可能な基礎の1つについて説明している。
【0100】
ISOベースメディアファイルフォーマットの基本的な構築ブロックは、ボックスと呼ばれる。各ボックスは、ヘッダおよびペイロードを有する。ボックスヘッダは、ボックスのタイプおよびボックスのサイズをバイト単位で示す。ボックスは他のボックスを封入することができ、ISOファイルフォーマットは、特定のタイプのボックス内で許容されるボックスタイプを指定する。さらに、各ファイル内に、あるボックスが存在していることが必須である場合があるが、他のボックスの存在は任意である場合がある。さらに、一部のボックスタイプの場合、ファイルに2つ以上のボックスが存在することが許容されてもよい。したがって、ISOベースメディアファイルフォーマットは、ボックスの階層構造を指定すると見なすことができる。
【0101】
ISOファミリのファイルフォーマットによれば、ファイルは、ボックスにカプセル化されたメディアデータおよびメタデータを含む。各ボックスは4文字コード(4CC:four Character Code)で識別され、ボックスのタイプおよびサイズを通知するヘッダで始まる。
【0102】
ISOベースメディアファイルフォーマットに準拠するファイルでは、メディアデータは、メディアデータの「mdat」ボックスで提供され、ムービー「moov」ボックスは、メタデータを封入するために使用されてもよい。いくつかの事例では、ファイルを動作可能にするために、「mdat」ボックスと「moov」ボックスの両方が存在する必要がある場合がある。ムービーの「moov」ボックスは、1つまたは複数のトラックを含んでもよく、各トラックは、1つの対応するTrackBox(「trak」)内に存在してもよい。トラックは、メディア圧縮フォーマット(およびそのISOベースメディアファイルフォーマットへのカプセル化)に従ってフォーマットされたサンプルを参照するメディアトラックを含む、多くのタイプの1つとすることができる。トラックは、論理チャネルと見なすことができる。
【0103】
例えば、コンテンツをISOファイルに記録するとき、例えば、記録アプリケーションがクラッシュした、メモリ空間が不足している、または他の事象が発生した場合にデータが損失するのを防止するために、ムービーフラグメントを使用することができる。ムービーフラグメントがない場合、ファイルフォーマットではすべてのメタデータ、例えばムービーボックスをファイルの1つの連続した領域に書き込む必要があり得るので、データ損失が発生する可能性がある。さらに、ファイルを記録するとき、利用可能なストレージのサイズに合わせてムービーボックスをバッファリングするのに十分な量のメモリ空間(例えば、ランダムアクセスメモリRAM)がない可能性があり、ムービーが閉じているときムービーボックスのコンテンツを再計算することは、遅すぎる可能性がある。さらに、ムービーフラグメントによって、通常のISOファイルパーサを使用してファイルの記録と再生を同時に行うことが可能になる。さらに、ムービーフラグメントを使用すると、プログレッシブダウンロード、例えば、ファイルの受信と再生の同時実行に必要とされる初期バッファリングの持続時間がより短くなる可能性があり、初期ムービーボックスは、同じメディアコンテンツを有するがムービーフラグメントなしで構造化されたファイルに比べて小さくなる。
【0104】
ムービーフラグメント機能により、この機能を使用しない場合にはムービーボックス内に存在し得るメタデータを、複数の部分に分割することが可能になる。各部分は、トラックの特定の時間期間に対応してもよい。言い換えると、ムービーフラグメント機能により、ファイルメタデータとメディアデータをインターリーブすることが可能になる。その結果、ムービーボックスのサイズが制限され、上記の使用例を実現することができる。
【0105】
いくつかの例では、ムービーフラグメント用のメディアサンプルは、moovボックスと同じファイル内にある場合、mdatボックス内に存在してもよい。しかしながら、ムービーフラグメントのメタデータについては、moofボックスが提供されてもよい。moofボックスは、以前はmoovボックス内にあった再生時間の一定の持続時間の情報を含んでもよい。moovボックスは、依然としてそれ自体で有効なムービーを表すことができるが、さらにムービーフラグメントが同じファイル内で続くことを示すmvexボックスを含んでもよい。ムービーフラグメントは、時間内にmoovボックスに関連付けられているプレゼンテーションを拡張してもよい。
【0106】
ムービーフラグメント内には、トラックごとに0個以上のトラックフラグメントのセットが存在してもよい。トラックフラグメントは同様に、0個以上のトラックラン(トラックフラグメントランとしても知られる)を含んでもよく、それぞれのドキュメントは、そのトラックのサンプルの連続したランである。これらの構造内では、多くのフィールドは任意であり、デフォルトにすることができる。moofボックスに含まれ得るメタデータは、moovボックスに含まれ得るメタデータのサブセットに限定されてもよく、場合によっては異なる方法で符号化されてもよい。moofボックスに含めることができるボックスの詳細は、ISOベースメディアファイルフォーマットの仕様から見出すことができる。自己内蔵型ムービーフラグメントは、ファイル順に連続するmoofボックスおよびmdatボックスで構成されると定義され、mdatボックスは、(moofボックスがメタデータを提供する対象となる)ムービーフラグメントのサンプルを内蔵し、他のムービーフラグメント(すなわち、他のmoofボックス)のサンプルは内蔵しない。
【0107】
トラックを相互に関連付けるために、トラック参照メカニズムを使用することができる。TrackReferenceBoxはボックスを含み、各ボックスは、内蔵しているトラックから他のトラックのセットへの参照を提供する。これらの参照は、内蔵されているボックスのボックスタイプ(すなわち、ボックスの4文字コード)によってラベル付けされる。
【0108】
TrackBoxに内蔵されているTrackGroupBoxによって、各グループが特定の特徴を共有しているまたはグループ内のトラックが特定の関係にあるトラックのグループを示すことができる。ボックスは0個以上のボックスを内蔵し、特定の特徴または関係は、内蔵されているボックスのボックスタイプによって示される。内蔵されているボックスは、同じトラックグループに属するトラックを判断するために使用できる識別子を含む。TrackGroupBox内に同じタイプの内蔵されているボックスを内蔵し、これらの内蔵されているボックス内に同じ識別子値を有するトラックは、同じトラックグループに属する。
【0109】
ユニフォームリソース識別子(URI:Uniform Resource Identifier)は、リソースの名前を識別するために使用される文字列と定義されてもよい。このような識別によって、特定のプロトコルを使用して、ネットワークを介したリソースの表現との対話が可能になる。URIは、URIに関する具象構文および関連するプロトコルを指定する方式を通じて定義される。ユニフォームリソースロケータ(URL:Uniform Resource Locator)およびユニフォームリソース名(URN:Uniform Resource Name)はURIの形式である。URLは、ウェブリソースを識別するとともに、リソースの表現に対して作用する手段またはリソースの表現を取得する手段を指定し、その1次アクセスメカニズムおよびネットワークロケーションの両方を指定するURIと定義されてもよい。URNは、特定の名前空間内の名前によってリソースを識別するURIと定義されてもよい。URNは、リソースのロケーションまたはそれへのアクセス方法を暗示することなくリソースを識別するために使用されてもよい。
【0110】
近年、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)が、映像ストリーミング用途などのインターネットを介したリアルタイムマルチメディアコンテンツの配信に広く使用されている。ユーザデータグラムプロトコル(UDP:User Datagram Protocol)を介したリアルタイム転送プロトコル(RTP:Real-time Transport Protocol)の使用とは異なり、HTTPは、構成が容易であり、通常はファイアウォールおよびネットワークアドレス変換器(NAT:Network Address Translator)の通過が許可されるので、マルチメディアストリーミング用途にとって魅力的なものとなっている。
【0111】
Microsoft(R)のSmooth Streaming、Apple(R)のAdaptive HTTP Live Streaming、Adobe(R)のDynamic Streamingなど、HTTPを介した適応ストリーミング用のいくつかの商用ソリューションが発売されるとともに、標準化プロジェクトが実施されている。適応HTTPストリーミング(AHS:Adaptive HTTP Streaming)は、第3世代パートナーシッププロジェクト(3GPP:3rd Generation Partnership Project)パケット交換ストリーミング(PSS:Packet-Switched Streaming)サービスのリリース9(3GPP TS26.234リリース9:「透過的なエンドツーエンドのパケット交換ストリーミングサービス(PSS)、プロトコルおよびコーデック」)において最初に標準化された。MPEGは、3GPP AHSリリース9を、MPEG DASH規格(ISO/IEC23009-1:「HTTPを介した動的適応ストリーミング(DASH:Dynamic Adaptive Streaming Over HTTP)-パート1:メディアプレゼンテーション記述およびセグメントフォーマット」、国際規格、第2版、2014)の出発点として採用した。3GPPは、MPEGと通信する適応HTTPストリーミングに引き続き取り組み、3GP-DASH(HTTPを介した動的適応ストリーミング、3GPP TS26.247:「透過的なエンドツーエンドのパケット交換ストリーミングサービス(PSS)、HTTPを介したプログレッシブダウンロードおよび動的適応ストリーミング(3GP-DASH)」を公開した。MPEG DASHおよび3GP-DASHは技術的に互いに近いため、DASHと総称されることがある。DASHのいくつかの概念、フォーマット、および動作について、実施形態が実装され得る映像ストリーミングシステムの一例として以下に説明する。本発明の態様は、DASHに限定されず、それに基づいて本発明を部分的または完全に実現し得る可能な基礎の1つについて説明されている。
【0112】
DASHでは、マルチメディアコンテンツは、HTTPサーバに記憶され、HTTPを使用して配信されてもよい。コンテンツは、利用可能なコンテンツのマニフェスト、その様々な代替手段、それらのURLアドレス、および他の特徴を記述するメディアプレゼンテーション記述(MPD:Media Presentation Description)と、単一のファイルまたは複数のファイルにチャンクの形式で実際のマルチメディアビットストリームを含むセグメントとの2つの部分でサーバに記憶されてもよい。MDPは、HTTPを介して動的適応ストリーミングを確立するために必要な情報をクライアントに提供する。MPDは、GET Segment要求を行うための各セグメント(Segment)のHTTPユニフォームリソースロケータ(URL)などのメディアプレゼンテーションを記述する情報を含む。コンテンツを再生するために、DASHクライアントは、例えば、HTTP、電子メール、サムドライブ、ブロードキャスト、または他の伝送方法を使用して、MPDを取得してもよい。DASHクライアントは、MPDを解析することによって、プログラムのタイミング、メディアコンテンツの可用性、メディアタイプ、解像度、最小帯域幅と最大帯域幅、およびマルチメディアコンポーネントの様々な符号化代替手段、アクセシビリティ機能および必要なデジタル著作権管理(DRM:Digital Rights Management)、ネットワーク上のメディアコンポーネントの位置、ならびに他のコンテンツの特徴を認識してもよい。DASHクライアントは、この情報を使用して、適切な符号化代替手段を選択し、例えばHTTP GET要求を使用してセグメントをフェッチすることによってコンテンツのストリーミングを開始してもよい。ネットワークスループットの変化を考慮して適切なバッファリングを行った後、クライアントは、引き続き後続のセグメントのフェッチし、ネットワーク帯域幅の変動を監視することもできる。クライアントは、適切なバッファを維持するために、(より低いビットレートまたはより高いビットレートで)様々な代替手段のセグメントをフェッチすることによって、使用可能な帯域幅に適応する方法を決定してもよい。
【0113】
DASHでは、階層データモデルを使用して、メディアプレゼンテーションを次のように構築する。メディアプレゼンテーションは、1つまたは複数の周期(Period)のシーケンスで構成され、各周期は1つまたは複数のグループ(Group)を含み、各グループは1つまたは複数の適応セット(Adaptation Set)を含み、各適応セットは1つまたは複数の表現(Representation)を含み、各表現は1つまたは複数のセグメントで構成される。表現は、メディアコンテンツまたはそのサブセットの代替選択肢の1つであり、これらは通常、符号化の選択肢、例えばビットレート、解像度、言語、コーデックなどによって異なる。セグメントは、一定の持続時間のメディアデータ、および含まれているメディアコンテンツを復号して表示するためのメタデータを含む。セグメントはURIによって識別され、通常はHTTP GET要求によって要求することができる。セグメントは、HTTP-URLに関連付けられたデータの単位と定義されてもよく、必要に応じて、MPDによって指定されたバイト範囲と定義されてもよい。
【0114】
DASH MPDは、拡張マークアップ言語(XML:Extensible Markup Language)に準拠しており、したがってXMLで定義されている要素および属性によって指定される。
【0115】
DASHでは、すべての記述子要素が同じ方法で構造化され、すなわち、方式を識別するURIを提供する@schemeIdUri属性、ならびに任意選択の属性@valueおよび任意選択の属性@idを含む。要素のセマンティクスは、採用される方式に固有である。方式を識別するURIは、URNまたはURLとすることができる。
【0116】
DASHでは、独立表現は、他の表現から独立して処理できる表現と定義されてもよい。独立表現は、独立したビットストリームまたはビットストリームの独立したレイヤを含むと理解されてもよい。従属表現は、含まれるメディアコンテンツコンポーネントの表示および/または復号のためにその補完的表現からのセグメントを必要とする表現と定義されてもよい。従属表現は、例えば、スケーラブルなビットストリームの予測レイヤを含むと理解されてもよい。補完的表現は、少なくとも1つの従属表現を補完する表現と定義されてもよい。補完的表現は、独立表現または従属表現とすることができる。従属表現は、@dependencyId属性を含む表現要素によって記述されてもよい。従属表現は、復号および/または表示のために補完的表現のセットに依存することを除いて、通常の表現と見なすことができる。@dependencyIdは、すべての補完的表現、すなわちこの従属表現に含まれるメディアコンテンツコンポーネントを表示および/または復号するために必要とされる表現の@id属性の値を含む。
【0117】
ISOBMFFのトラック参照は、@associationIdで与えられたRepresentation@id値のリストに1対1でマッピングされるDASH MPDの@associationType属性の4文字コードのリストに反映することができる。これらの属性は、メディア表現をメタデータ表現にリンクするために使用されてもよい。
【0118】
DASHサービスは、オンデマンドサービスまたはライブサービスとして提供されてもよい。前者の場合、MPDは静的であり、コンテンツプロバイダがMPDを公開するとき、メディア表現のすべてのセグメントはすでに利用可能である。しかしながら、後者の場合、MPDは、MPDによって採用されているセグメントURL構築方法に応じて静的または動的である可能性があり、コンテンツプロバイダによってコンテンツが作成されてDASHクライアントに公開されると、セグメントは継続的に作成される。セグメントURL構築方法は、テンプレートベースのセグメントURL構築方法またはセグメントリストの生成方法のいずれかとすることができる。前者の場合、DASHクライアントは、セグメントを要求する前にMPDを更新せずにセグメントURLを構築することができる。後者の場合、DASHクライアントは、セグメントURLを取得するために、更新されたMPDを定期的にダウンロードしなければならない。したがって、ライブサービスの場合、テンプレートベースのセグメントURL構築方法は、セグメントリスト生成方法よりも優れている。
【0119】
初期化セグメント(Initialization Segment)は、メディアセグメント(Media Segment)にカプセル化されたメディアストリームを表示するために必要なメタデータを含むセグメントと定義されてもよい。ISOBMFFベースのセグメントフォーマットでは、初期化セグメントは、ムービーボックス(「moov」)を含むことができ、このムービーボックスは、サンプルのメタデータを含まない場合がある。すなわち、サンプルのメタデータはすべて「moof」ボックスに提供される。
【0120】
メディアセグメントは、通常の速度で再生するための一定の持続時間のメディアデータを含み、このような持続時間は、メディアセグメント持続時間またはセグメント持続時間と呼ばれる。コンテンツプロデューサまたはサービスプロバイダは、サービスの所望の特徴に従ってセグメント持続時間を選択してもよい。例えば、ライブサービスにおいて比較的短いセグメント持続時間を使用して、短期間のエンドツーエンド遅延を実現してもよい。その理由は、セグメントはDASHのメディアデータを生成する個別の単位であるため、セグメント持続時間は通常DASHクライアントによって認識されるエンドツーエンド遅延の下限であるからである。コンテンツの生成は通常、メディアデータのセグメント全体がサーバで利用可能になるように行われる。さらに、多くのクライアント実装では、GET要求の単位としてセグメントを使用する。したがって、ライブサービスの典型的な構成では、メディアセグメントの全持続時間が利用可能であるとともにセグメント内で符号化およびカプセル化される場合にのみ、DASHクライアントによってセグメントを要求することができる。オンデマンドサービスの場合、セグメント持続時間を選択する様々な戦略が使用されてもよい。
【0121】
例えば複数の部分でセグメントをダウンロードできるように、セグメントは、サブセグメント(Subsegment)にさらに分割されてもよい。サブセグメントには、完全なアクセスユニットを含める必要がある場合がある。サブセグメントは、各サブセグメントの表示時間範囲とバイト範囲をマッピングするための情報を含むセグメントインデックス(Segment Index)ボックスによってインデックス付けされてもよい。セグメントインデックスボックスはまた、セグメント内のサブセグメントおよびストリームアクセスポイントを、それらの持続時間およびバイトオフセットをシグナリングすることによって記述することもできる。DASHクライアントは、セグメントインデックスボックスから取得した情報を使用して、バイト範囲HTTP要求を用いて特定のサブセグメントを求めるHTTP GET要求を実行してもよい。比較的長いセグメント持続時間が使用される場合、サブセグメントを使用して、HTTP応答のサイズをビットレート適応のために合理的かつ柔軟に保つことができる。セグメントのインデックス付け情報は、そのセグメントの先頭にある単一のボックス内に入れるか、またはセグメント内の多数のインデックス付けボックスに分散させてもよい。階層、デイジーチェーン、ハイブリッドなどの様々な分散方法が可能である。この技法により、セグメントの先頭に大きいボックスを追加することを回避することができ、したがって起こり得る初期ダウンロードの遅延を防ぐことができる。
【0122】
(サブ)セグメント((Sub)segment)という表記は、セグメントまたはサブセグメントのいずれかを指す。セグメントインデックスボックスが存在しない場合、(サブ)セグメントという表記はセグメントを指す。セグメントインデックスボックスが存在する場合、(サブ)セグメントという表記は、例えば、クライアントがセグメントベースまたはサブセグメントベースのどちらで要求を発行するかに応じて、セグメントまたはサブセグメントを指す場合がある。
【0123】
MPEG-DASHは、ISOベースメディアファイルフォーマットとMPEG-2トランスポートストリームの両方のセグメントコンテナフォーマットを定義する。他の仕様は、他のコンテナフォーマットに基づいてセグメントフォーマット形式を指定する場合がある。例えば、Matroskaコンテナファイルフォーマットに基づくセグメントフォーマットが提案されている。
【0124】
DASHは、様々なネットワーク帯域幅に対応するように、適応セット内の異なる表現からメディアセグメントを動的に要求することによって、レート適応をサポートする。DASHクライアントが表現を上下に切り替える際、表現内の符号化依存関係が考慮されなければならない。表現の切替えは、ランダムアクセスポイント(RAP)で発生する可能性があり、これは通常、H.264/AVCなどの映像符号化技法で使用される。DASHでは、ストリームアクセスポイント(SAP:Stream Access Point)という名前のより一般的な概念が導入され、表現にアクセスし表現間で切り替えるためにコーデックに依存しない解決策が提供されている。DASHでは、SAPは表現内の位置として指定され、その位置から始まる表現データ(初期化セグメント内の初期化データがある場合はその初期化データが前にある)に含まれる情報のみを使用してメディアストリームの再生を開始することを可能にする。したがって、表現の切替えはSAPにおいて実行することができる。
【0125】
DASHでは、同じ適応セット内の表現間の自動化選択は、幅および高さ(@widthおよび@height)、フレームレート(@frameRate)、ビットレート(@bandwidth)、表現間の示された品質順(@qualityRanking)に基づいて実行されている。@qualityRankingのセマンティクスは、次のように、同じ適応セット内の他の表現と比較した表現の品質ランク付けを指定するものとして指定される。値が小さいほど、高い品質のコンテンツを表す。@qualityRankingが存在しない場合、ランク付けは定義されない。
【0126】
以下を含むいくつかのタイプのSAPが指定されている。SAPタイプ1は、一部の符号化方式で「クローズGOPランダムアクセスポイント」(すべてのピクチャが復号順に正しく復号され、正しく復号されたピクチャの途切れのない連続した時間シーケンスが得られる)として知られているものに対応し、さらに、復号順の最初のピクチャは表示順の最初のピクチャでもある。SAPタイプ2は、一部の符号化方式で「クローズGOPランダムアクセスポイント」(すべてのピクチャが復号順に正しく復号され、正しく復号されたピクチャの途切れのない連続した時間シーケンスが得られる)として知られているものに対応し、復号順の最初のピクチャは表示順の最初のピクチャではないことがある。SAPタイプ3は、一部の符号化方式で「オープンGOPランダムアクセスポイント」として知られているものに対応し、正しく復号されず、SAPに関連付けられたイントラ符号化ピクチャよりも表示時間が短い、復号順の一部のピクチャが存在することがある。
【0127】
MPEG-2などの一部の映像符号化規格では、各イントラピクチャが符号化シーケンスのランダムアクセスポイントであった。H.264/AVCおよびH.265/HEVCなどの一部の映像符号化規格ではインター予測に複数の参照ピクチャを柔軟に使用できるので、イントラピクチャがランダムアクセスには十分ではない場合がある。したがって、符号化タイプからピクチャのランダムアクセスポイントの機能を推論するのではなく、そのような機能に関してピクチャをマークする場合があり、例えば、H.264/AVC規格で指定されているIDRピクチャをランダムアクセスポイントとして使用することができる。クローズグループオブピクチャ(GOP:closed Group Gf Pictures)は、その中のすべてのピクチャを正しく復号できるようなピクチャのグループである。例えば、H.264/AVCでは、クローズGOPはIDRアクセスユニットから開始することができる。
【0128】
オープングループオブピクチャ(GOP:open Group Gf Pictures)は、出力順で初期イントラピクチャの前にあるピクチャは正しく復号できない場合があるが、出力順で初期イントラピクチャの後にあるピクチャは正しく復号できるようなピクチャのグループである。このような初期イントラピクチャは、ビットストリームで指示されてもよく、かつ/またはHEVCのCRA NALユニットタイプを使用して、ビットストリームからの指示から判断されてもよい。オープンGOPを開始する初期イントラピクチャよりも出力順で前にあり、復号順で初期イントラピクチャよりも後にあるピクチャは、先行ピクチャ(leading picture)と呼ばれる場合がある。先行ピクチャには、復号可能と復号不可の2つのタイプがある。HEVCのRADLピクチャなどの復号可能な先行ピクチャは、オープンGOPを開始する初期イントラピクチャから復号が開始される場合に正しく復号できるようなピクチャである。言い換えると、復号可能な先行ピクチャは、インター予測の参照として、初期イントラピクチャまたは復号順で後にあるピクチャのみを使用する。HEVCのRASLピクチャなどの復号不可の先行ピクチャは、オープンGOPを開始する初期イントラピクチャから復号が開始される場合に正しく復号できないようなピクチャである。
【0129】
DASH Preselectionは、単一のデコーダインスタンスによって共同で消費されると予想されるMPDのメディアコンポーネントのサブセットを定義し、消費は、復号およびレンダリングを含む場合がある。Preselectionのためのメインメディアコンポーネントを含む適応セットは、主要適応セットと呼ばれる。さらに、各Preselectionは、1つまたは複数の部分適応セットを含んでもよい。部分適応セットは、主要適応セットと組み合わせて処理される必要がある場合がある。主要適応セットおよび部分適応セットは、事前選択記述子またはPreselection要素の2つの手段のいずれかによって示されてもよい。
【0130】
仮想現実は急速に発展している技術分野であり、音声を伴うこともある画像コンテンツまたは映像コンテンツが、ユーザヘッドセット(ヘッドマウントディスプレイとしても知られる)などのユーザデバイスに提供される。知られているように、コンテンツソースからライブフィードまたは記憶されたフィードがユーザデバイスに提供されてもよく、フィードは、ユーザデバイスを介した没入型出力のための仮想空間を表す。現在、多くの仮想現実ユーザデバイスは、いわゆる3自由度(3DoF:three Degrees of Freedom)を使用しており、3DoFとは、ヨー軸、ピッチ軸、およびロール軸における頭の動きを測定し、ユーザが見ているものを特定すること、すなわちビューポートを特定することを意味する。ユーザデバイスの位置および位置の変化を考慮に入れてレンダリングすることで、没入型体験を拡張できることが知られている。したがって、3DoFに対する拡張は、6自由度(6DoF:six Degrees-of-Freedom)の仮想現実システムであり、ユーザはユークリッド空間を自由に移動し、自分の頭をヨー軸、ピッチ軸、ロール軸で回転させることができる。6自由度の仮想現実システムによって、ボリュームコンテンツの提供および消費が可能になる。ボリュームコンテンツは、すべての角度から3次元で空間および/またはオブジェクトを表すデータを含み、ユーザが空間および/またはオブジェクトの周り全体を移動して、それらを任意の角度から見ることができるようにする。このようなコンテンツは、ジオメトリ(例えば、形状、サイズ、3次元空間での位置)ならびに色、不透明度、および反射率などの属性を説明するデータによって定義されてもよい。データはまた、2次元映像でのフレームと同様に、所与の時間インスタンスでのジオメトリおよび属性の時間的変化を定義してもよい。
【0131】
360度映像または仮想現実(VR:Virtual Reality)映像という用語は、交換可能に使用される場合がある。これらは一般に、構成を表示する際に映像の一部のみが単一の時点で表示されるような広い視野(FOV:Field Of View)を提供する映像コンテンツを指す場合がある。例えば、VR映像は、例えば約100度の視野を表示することが可能であり得るヘッドマウントディスプレイ(HMD:Head-Mounted Display)上で見ることができる。表示されるVR映像コンテンツの空間サブセットは、HMDの向きに基づいて選択されてもよい。別の例では、例えば最大40度の視野を表示できるフラットパネル視聴環境が想定される。このようなディスプレイ上にワイドFOVコンテンツ(例えば、魚眼)を表示する場合、ピクチャ全体ではなく空間サブセットを表示することが好ましい場合がある。
【0132】
MPEG全方向メディアフォーマット(ISO/IEC23090-2)は、仮想現実(VR)システム規格である。OMAFは、(ISOBMFFから派生したファイルフォーマットとDASHおよびMPEGメディアトランスポートのストリーミングフォーマットとの両方を含む)メディアフォーマットを定義する。OMAFバージョン1は、360°映像、画像、および音声、ならびに関連するタイムテキストをサポートし、3自由度(3DoF)のコンテンツ消費を容易にする、すなわち、全方向コンテンツでカバーされる任意の方位角と仰角の範囲および傾斜角を用いてビューポートを選択することができるが、コンテンツは表示位置の並進変化に適合していない。以下でさらに説明するビューポート依存ストリーミングのシナリオも、3DoF用に設計されているが、異なる自由度数に適合できる可能性がある。
【0133】
OMAFについて、図1を参照して説明する。音声センサならびに複数のレンズおよびセンサを備えたカメラまたはカメラデバイスのセットによって、現実世界の視聴覚シーン(A)が取り込まれ得る。この取得の結果として、一連のデジタル画像/映像(Bi)信号および音声(Ba)信号が生成される。カメラ/レンズは、カメラセットまたはカメラデバイスの中心点の周りのすべての方向をカバーする可能性があるため、360度映像という名称になる。
【0134】
音声は、多くの異なるマイクロフォン構成を使用して取り込むことができ、チャネルベースの信号、静的または動的(すなわち、3Dシーンの中を移動する)オブジェクト信号、およびシーンベースの信号(例えば、高次アンビソニックス)を含むいくつかの異なるコンテンツフォーマットとして記憶することができる。チャネルベースの信号は、符号化非依存コードポイント(CICP:Coding-Independent Code-Points)で定義されているスピーカレイアウトのうちの1つに準拠し得る。全方向メディアアプリケーションでは、レンダリングされた没入型音声プログラムのスピーカレイアウト信号は、ヘッドホンを介したプレゼンテーションのために2値化されてもよい。
【0135】
同じ時間インスタンスの画像(Bi)は、ステッチされ、投影され、パッキング済みピクチャ(D)にマッピングされる。
【0136】
単視360度映像の場合、1つの時間インスタンスの入力画像がステッチされて、1つのビューを表す投影ピクチャが生成されてもよい。図2に、単視コンテンツの画像のステッチング、投影、および領域別パッキング処理の一例を示す。入力画像(Bi)はステッチされ、例えば単位球であり得る3次元投影構造に投影される。投影構造は、平面またはその一部などの1つまたは複数の表面を含むと見なされてもよい。投影構造は、1つまたは複数の表面からなる3次元構造と定義することができ、取り込まれたVR画像/映像コンテンツはその1つまたは複数の表面上に投影され、それぞれの投影ピクチャはその1つまたは複数の表面から形成され得る。投影構造上の画像データは、さらに2次元投影ピクチャ(C)に配置される。投影という用語は、投影ピクチャ上に入力画像のセットが投影される処理と定義されてもよい。例えば、正距円筒図法(ERP:Equirectangular Projection)フォーマットおよび立方体マップ投影(CMP:Cube Map Projection)フォーマットを含む、投影ピクチャの表現フォーマットの事前定義されたセットが存在し得る。投影ピクチャは球全体をカバーしていると見なされてもよい。
【0137】
次いで、任意選択として、領域別パッキングを適用して、投影ピクチャ(C)をパッキング済みピクチャ(D)にマッピングする。領域別パッキングが適用されない場合、パッキング済みピクチャは投影ピクチャと同一であり、このピクチャが、画像/映像符号化への入力として与えられる。それ以外の場合、投影ピクチャ(C)の領域は、パッキング済みピクチャ内の各領域の位置、形状、およびサイズを示すことによって、パッキング済みピクチャ(D)にマッピングされ、パッキング済みピクチャ(D)が、画像/映像符号化への入力として与えられる。領域別パッキングという用語は、投影ピクチャがパッキング済みピクチャにマッピングされる処理と定義されてもよい。パッキング済みピクチャという用語は、投影ピクチャの領域別パッキングから得られるピクチャと定義されてもよい。
【0138】
立体視360度映像の場合、図3の例に示すように、1つの時間インスタンスの入力画像がステッチされて、各眼に1つずつの2つのビュー(CL、CR)を表す投影ピクチャが生成されてもよい。両方のビュー(CL、CR)を、同じパッキング済みピクチャ(D)にマッピングし、従来の2D映像エンコーダによって符号化することができる。代替として、投影ピクチャの各ビューをそれ自体のパッキング済みピクチャにマッピングすることもでき、その場合、図2に示すように、画像のステッチング、投影、および領域別パッキングが実行される。左側のビューまたは右側のビューのパッキングされた一連のピクチャは、独立して符号化することができるか、またはマルチビュー映像エンコーダを使用する場合は他のビューから予測することができる。
【0139】
次に、図3に示すように、両方のビューが同じパッキング済みピクチャにマッピングされる立体視コンテンツの画像のステッチング、投影、および領域別パッキング処理の一例について詳しく説明する。入力画像(Bi)はステッチされ、各眼に1つずつの2つの3次元投影構造に投影される。各投影構造上の画像データはさらに、球全体をカバーする2次元投影ピクチャ(左眼用のCL、右眼用のCR)上に配置される。左側ビューピクチャと右側ビューピクチャを同じ投影ピクチャにパッキングするために、フレームパッキングが適用される。任意選択として、次いで、パッキング済みピクチャ上のパック投影ピクチャに領域別パッキングが適用され、パッキング済みピクチャ(D)が画像/映像符号化への入力として与えられる。領域別パッキングが適用されない場合、パッキング済みピクチャは投影ピクチャと同一であり、このピクチャが画像/映像符号化への入力として与えられる。
【0140】
画像のステッチング、投影、および領域別パッキング処理を同じソース画像に対して複数回実行して、例えば投影構造の様々な向きに対して同じコンテンツの異なるバージョンを作成することができる。同様に、領域別パッキング処理を同じ投影ピクチャから複数回実行して、符号化すべきパッキング済みピクチャの2つ以上のシーケンスを作成することができる。
【0141】
360度パノラマコンテンツ(すなわち、画像および映像)は、撮像デバイスの取込み位置の周囲の360度視野全体を水平方向にカバーする。垂直視野は変化してもよく、例えば、180度とすることができる。水平方向に360度の視野、垂直方向に180度の視野をカバーするパノラマ画像は、正距円筒図法(ERP)を使用して2次元画像平面にマッピングされた球体で表すことができる。この場合、水平座標は経度と同等と見なされてもよく、垂直座標は緯度と同等と見なされてもよく、変換もスケーリングも適用されない。図4に、単視正距円筒図法パノラマピクチャを形成する処理を示す。カメラアレイまたは複数のレンズおよびセンサを備えたカメラデバイスの魚眼画像などの1組の入力画像が、球面画像にステッチされる。球面画像はさらに(上面および下面なしで)円筒に投影される。円筒を展開して、2次元投影ピクチャを形成する。実際には、提示したステップのうちの1つまたは複数はマージされてもよい。例えば、入力画像は、球体への中間投影なしで、円筒に直接投影されてもよい。正距円筒図法パノラマの投影構造は、単一の表面を含む円筒と見なされてもよい。
【0142】
一般に、360度コンテンツを、多面体(すなわち、平らな多角形の面、直線状のエッジ、鋭い角または頂点を含む3次元ソリッドオブジェクト、例えば、立方体またはピラミッド)、円筒(正距円筒図法で前述したように球形画像を円筒に投影することによる)、円筒(最初に球体に投影せずに直接)、円錐などの様々なタイプの立体幾何学的構造にマッピングし、次いで、2次元画像平面にアンラップすることができる。
【0143】
場合によっては、水平方向の視野が360度で垂直方向の視野が180度未満のパノラマコンテンツは、球体の極領域が2次元画像平面上にマッピングされていない正距円筒図法の特殊な事例と見なされることがある。場合によっては、パノラマ画像は、水平方向の視野が360度未満、垂直方向の視野が最大180度である場合があるが、それ以外の場合は正距円筒図法投影フォーマットの特徴を有する。
【0144】
領域別パッキング情報は、ビットストリームの中にまたはビットストリームに沿ってメタデータとして符号化されてもよい。例えば、パッキング情報は、事前定義または指示されたソースフォーマットからパッキング済みピクチャフォーマットへの、例えば前述のように投影ピクチャからパッキング済みピクチャへの領域別マッピングを含んでもよい。
【0145】
矩形領域別パッキングメタデータは、以下のように記述されてもよい。
【0146】
各領域について、メタデータは、投影ピクチャ内の矩形、パッキング済みピクチャ内のそれぞれの矩形、ならびに任意選択の90度、180度、もしくは270度の回転の変換、および/または水平ミラーリングおよび/または垂直ミラーリングを定義する。矩形は、例えば、左上角と右下角の位置によって示されてもよい。マッピングは、再サンプリングを含んでもよい。それぞれの矩形のサイズは、投影ピクチャとパッキング済みピクチャとで異なる可能性があるので、メカニズムは、領域別再サンプリングを推論する。
【0147】
とりわけ、地域別パッキングは、以下の使用シナリオのシグナリングを提供する。
1)球全体でより均一になるように、異なる領域のサンプリングを高密度化することによって、ビューポート非依存投影のさらなる圧縮が実現される。例えば、ERPの上部および下部をオーバーサンプリングし、領域別パッキングを適用して、それらを水平方向にダウンサンプリングすることができる。
2)立方体マップ投影など平面ベースの投影フォーマットの面を適応的に構成する。
3)ビューポート非依存投影フォーマットを使用するビューポート依存ビットストリームを生成する。例えば、ERPの領域またはCMPの面は、異なるサンプリング密度を有することができ、基礎となる投影構造は異なる向きを有することができる。
4)エクストラクタトラックによって表されるパッキング済みピクチャの領域を示す。これは、エクストラクタトラックが様々な解像度のビットストリームからタイルを収集する場合に必要である。
【0148】
ガードバンドは、レンダリングされないが、継ぎ目などの視覚的アーチファクトを回避または軽減するために、パッキング済みピクチャのレンダリングされた部分を改善するために使用できる、パッキング済みピクチャ内の領域と定義されてもよい。
【0149】
再び図1を参照すると、OMAFによって、画像のステッチング、投影、および領域別パッキングの省略が可能になり、画像/映像データをそれらの取り込まれたフォーマットで符号化することができる。この場合、画像(D)は画像(Bi)と同じであると見なされ、時間インスタンスごとに限られた数の魚眼画像が符号化される。
【0150】
音声の場合、取り込まれる信号は本質的に没入型で全方向であるので、ステッチング処理は必要ない。
【0151】
ステッチされた画像(D)は、符号化画像(Ei)または符号化映像ビットストリーム(Ev)として符号化される。取り込まれた音声(Ba)は、音声ビットストリーム(Ea)として符号化される。次いで、符号化された画像、映像、および/または音声は、特定のメディアコンテナファイルフォーマットに従って、ファイル再生用のメディアファイル(F)またはストリーミング用の初期化セグメントおよびメディアセグメントのシーケンス(F)に合成される。本明細書では、メディアコンテナファイルフォーマットは、ISOベースメディアファイルフォーマットである。ファイルカプセル化器もまた、ファイルまたはセグメント内に、復号されたパッキング済みピクチャのレンダリングを支援する投影情報および領域別パッキング情報などのメタデータを含む。
【0152】
ファイル内のメタデータには以下が含まれる場合がある。
- 投影ピクチャの投影フォーマット
- 魚眼映像パラメータ
- パッキング済みピクチャによって覆われる球面の領域
- グローバル座標系軸に対する投影ピクチャに対応する投影構造の向き
- 領域別パッキング情報、および
- 領域別品質ランク付け(任意選択)
【0153】
領域別パッキング情報は、ビットストリームの中にまたはビットストリームに沿って、メタデータとして、例えば、領域別パッキングSEIメッセージとして、および/またはビットストリームを含むファイル内の領域別パッキングボックスとして符号化されてもよい。例えば、パッキング情報は、事前定義されたまたは指示されたソースフォーマットからパッキング済みピクチャフォーマットへの領域別マッピング、例えば、前述のように投影ピクチャからパッキング済みピクチャへの領域別マッピングを含んでもよい。領域別マッピング情報は、例えば、マッピングされた領域ごとに、投影ピクチャ内のソース矩形(投影領域としても知られる)およびパッキング済みピクチャ内の宛先矩形(パッキングされた領域としても知られる)を含んでもよく、ソース矩形内のサンプルは宛先矩形にマッピングされ、矩形は、例えば、左上角および右下角の位置によって示されてもよい。マッピングは、再サンプリングを含んでもよい。追加的としてまたは代替として、パッキング情報は、以下のもの、すなわち座標系に対する3次元投影構造の向き、どの投影フォーマットを使用するかの指示、領域間および/または第1と第2の空間領域シーケンス間のピクチャ品質ランク付けを示す領域別品質ランク付け、90度、180度、または270度の回転などの変換演算、水平ミラーリング、ならびに垂直ミラーリングのうちの1つまたは複数を含んでもよい。パッキング情報のセマンティクスは、それぞれの球面座標位置である復号ピクチャのパッキングされた領域内の各サンプル位置を示すように指定されてもよい。
【0154】
セグメント(Fs)は、配信メカニズムを使用してプレーヤに配信されてもよい。
【0155】
ファイルカプセル化器が出力するファイル(F)は、ファイルカプセル化解除器が入力するファイル(F’)と同一である。ファイルカプセル化解除器は、ファイル(F’)または受信したセグメント(F’s)を処理し、符号化ビットストリーム(E’a、E’v、および/またはE’i)を抽出し、メタデータを解析する。次いで、音声、映像、および/または画像は復号されて復号信号(オーディオの場合はB’a、画像/映像の場合はD’)になる。復号されたパッキング済みピクチャ(D’)は、現在の視聴の向きまたはビューポート、ならびにファイルから解析された投影、球形カバレッジ、投影構造の向き、および領域別パッキングメタデータに基づいて、ヘッドマウントディスプレイまたは任意の他のディスプレイデバイスの画面上に投影される。同様に、復号された音声(B’a)は、現在の視聴の向きに従って、例えばヘッドホンを介してレンダリングされる。現在の視聴の向きは、ヘッドトラッキング機能によって、場合によってはアイトラッキング機能によっても決定される。現在の視聴の向きは、復号された映像信号および音声信号の適切な部分をレンダリングするためのレンダラによって使用されることに加えて、復号の最適化のために映像デコーダおよび音声デコーダによっても使用される場合がある。
【0156】
上記の処理は、ライブおよびオンデマンドの両方の使用例に適用可能である。
【0157】
HMDまたは別のディスプレイデバイス上のアプリケーションによってレンダリングされた映像は、任意の時点で、360度映像の一部をレンダリングする。この部分は、ビューポートと定義されてもよい。ビューポートは、レンダリングディスプレイを介して表示される全方向映像で表される360度世界でのウィンドウと理解されてもよい。別の定義によれば、ビューポートは、現在表示されている球形映像の一部と定義されてもよい。ビューポートは、水平および垂直の視野(FOVまたはFoV)を特徴とする場合がある。
【0158】
ビューポイントは、ユーザがシーンを見る起点となる地点または空間と定義されてもよく、通常はカメラの位置に対応する。わずかな頭の動きは、異なるビューポイントを意味するものではない。視聴位置は、ユーザがシーンを見る起点となる視聴空間内の位置と定義されてもよい。視聴空間は、画像および映像のレンダリングが可能になり、VR体験が有効である視聴位置の3D空間と定義されてもよい。
【0159】
ボリュームコンテンツの典型的な表現フォーマットには、三角形メッシュ、点群、およびボクセルが含まれる。コンテンツに関する時間情報は、個々の取込みインスタンス、すなわちフレームまたは時間の関数としてのオブジェクトの位置を含む場合がある。
【0160】
計算リソースおよび3次元取得デバイスの進歩により、非常に詳細なボリューム表現の再構築が可能である。赤外線、レーザ、飛行時間、および構造化光技術は、そのようなコンテンツを構築できる方法の例である。ボリュームコンテンツの表現は、データをどのように使用するかによって異なる場合がある。例えば、高密度ボクセル配列を使用して、ボリューム医用画像を表すことができる。3次元グラフィックスでは、ポリゴンメッシュが広く使用されている。一方、点群は、シーンのトポロジが必ずしも2次元の表面または多様体であるとは限らない実世界のシーンの取込みなどの用途に適している。別の方法は、3次元データを一連のテクスチャマップと深度マップに符号化することである。これに密接に関連しているのは、高度マップおよびマルチレベルサーフェスマップの使用である。誤解を避けるために記すと、本明細書の実施形態は、上記の技術のいずれにも適用可能である。
【0161】
3次元世界の「ボクセル」は2次元世界の画素に対応する。ボクセルは、3次元グリッドレイアウト内に存在する。8分木は、3次元空間をパーティショニングするために使用されるツリーデータ構造である。8分木は、4分木の3次元アナログである。スパースボクセル8分木(SVO:Sparse Voxel Octree)は、様々なサイズのソリッドボクセルの集合を含む空間のボリュームを表す。ボリューム内の空の領域はツリーに存在しないため、「スパース」と呼ばれる。
【0162】
シーンの3次元ボリューム表現は、少なくとも1つのマルチカメラデバイスの入力ストリームに基づいて、複数のボクセルとして決定されてもよい。したがって、少なくとも1台であるが好ましくは複数(すなわち、2台、3台、4台、5台またはそれ以上)のマルチカメラデバイスを使用して、シーンの3D映像表現を取り込んでもよい。マルチカメラデバイスはシーンに対して様々な位置に分散され、したがって、各マルチカメラデバイスはシーンの様々な3D映像表現を取り込む。各マルチカメラデバイスによって取り込まれた3D映像表現は、シーンの3Dボリューム表現を作成するための入力ストリームとして使用されてもよく、前記3Dボリューム表現は複数のボクセルを含む。例えば、選択された3D点について、選択された3D点のうちの既定の閾値内のすべての隣接する3D点がボクセル内の3D点の最大数を超えることなくボクセルにマージされるように3D点を複数の3D点を含むボクセルにマージすることによって、取り込まれた3D点からボクセルを形成してもよい。
【0163】
ボクセルはまた、スパースボクセル8分木の構築を通して形成されてもよい。このような木の各葉は、世界空間内のソリッドボクセルを表し、木の根ノードは、世界の境界を表す。スパースボクセル8分木の構築は、次のステップを有する場合がある。1)各入力深度マップを世界空間点群にマッピングする。深度マップの各画素は、1つまたは複数の3D点にマッピングされる。2)カメラ画像および深度マップ内のソース画素の近傍を調べることによって、色および表面法線ベクトルなどのボクセル属性を決定する。3)深度マップからの深度値および深度マップの解像度に基づいてボクセルのサイズを決定する。4)ソリッドボクセルのSVOレベルを、世界境界に対するそのサイズの関数として決定する。5)世界境界に対するそのレベルでボクセル座標を決定する。6)決定されたボクセル座標に到達するまで、新しいSVOノードを作成し、かつ/または既存のSVOノードをトラバースする。7)ソリッドボクセルを木の葉として挿入する。場合によっては、それらの座標で以前から存在していたボクセルからの属性を置換またはマージする。それでもやはり、シーンの3Dボリューム表現内のボクセルのサイズは互いに異なる場合がある。したがって、3Dボリューム表現のボクセルは、シーン内の空間位置を表す。
【0164】
ボリューム映像フレームは、映像シーケンスの特定の時点で世界をモデル化する完全なスパースボクセル8分木と見なされてもよい。ボクセル属性は、色、不透明度、表面法線ベクトル、表面材料特性のような情報を含む。これらは、スパースボクセル8分木(例えば、ソリッドボクセルの色)で参照されるが、個別に記憶されることも可能である。
【0165】
点群は、ボリュームコンテンツを記憶するために一般的に使用されるデータ構造である。点群と比較すると、スパースボクセル8分木は、様々なサイズのソリッドボクセルを有する有限体積の再帰的細分化を表すが、点群は、使用される座標値の精度によってのみ制限される組織化されていない個別の点の集合を表す。
【0166】
密な点群およびボクセル配列などの技術では、数千万から数億もの点が存在する場合がある。IPネットワークを介してサーバとクライアントとの間などのエンティティ間でこのようなコンテンツを記憶および転送するには、通常、圧縮が必要である。
【0167】
ユーザの位置は、ボリューム仮想現実コンテンツ内で提供されるコンテンツに関連して検出することができ、例えばその結果、ユーザは所与の仮想現実空間内で個々のオブジェクトまたはオブジェクトのグループの周りを自由に移動することができ、現実世界での自分の頭の動き(例えば、回転および位置)に応じて様々な角度からオブジェクトを見ることができる。いくつかの例では、ユーザはまた、複数の異なる仮想現実空間を見て探索し、ある仮想現実空間から別の仮想現実空間に移動することができる。
【0168】
ヘッドマウントディスプレイなどによるレンダリング配置を通じて観察可能なまたは聞き取り可能な環境の角度範囲は、視野(FOV)と呼ばれることがある。ユーザが観察するまたは聞く実際のFOVは、瞳孔間距離、および仮想現実ヘッドセットのレンズとユーザの眼との間の距離に依存するが、ユーザが仮想現実ヘッドセットを装着しているとき、FOVは、所与のディスプレイデバイスのすべてのユーザでほぼ同じであると見なされることが可能である。
【0169】
ボリュームコンテンツを単一の視聴位置から見るとき、コンテンツの一部(多くの場合半分)は、ユーザの反対側を向いているため見られない場合がある。この部分は「背面コンテンツ」と呼ばれることもある。
【0170】
ボリューム画像/映像配信システムは、ボリュームシーンの一部を表す複数のパッチを提供することと、パッチごとに、パッチの前面が可視である方向の集合を示すパッチ可視性情報を提供することとを含んでもよい。ボリューム画像/映像配信システムは、クライアントデバイスに関連付けられた1つまたは複数の視聴位置を提供することと、1つまたは複数のパッチの前面が1つまたは複数の視聴位置から可視であることをパッチ可視性情報が示しているかどうかに応じて、1つまたは複数のパッチを処理することとをさらに含んでもよい。
【0171】
パッチ可視性情報は、ボリューム空間のどこにパッチの前面が見えるかを示すデータである。例えば、パッチ可視性情報は可視性円錐を含んでもよく、可視性円錐は、可視性円錐方向ベクトル(X,Y,Z)および開口角度(A)を含んでもよい。開口角度(A)は、パッチの前面を見ることができる一連の空間角度を定義する。別の例では、パッチ可視性メタデータは、全方向メディアフォーマット(OMAF)規格(ISO/IEC23090-2)によって指定されたものと同一または類似の境界球表面および球領域メタデータの定義を含んでもよい。境界球表面は、例えば、球の中心の3次元位置、および球の半径によって定義されてもよい。視聴位置が境界球表面と同一位置にあるとき、パッチは指定された球領域内で可視であると見なされてもよい。一般に、境界面のジオメトリは、円筒、立方体、または直方体などの球体以外のものとしてもよい。パッチ可視性メタデータの複数のセットは、半径は異なるが境界面の中心の同じ3次元位置(または3次元位置からの境界面の距離を示す情報)に対して定義されてもよい。パッチ可視性メタデータのいくつかの部分を示すことは、オクルージョンを処理するのに役立つ場合がある。
【0172】
ボリューム画像/映像配信システムは、1つまたは複数のパッチカリングモジュールを含んでもよい。あるパッチカリングモジュールは、ユーザデバイス、例えばヘッドセットのレンダリングモジュールにどのパッチを送信するかを決定するように構成されてもよい。別のパッチカリングモジュールは、どのパッチを復号するかを決定するように構成されてもよい。第3のパッチカリングモジュールは、どの復号パッチをレンダリングに渡すかを決定するように構成されてもよい。ボリューム画像/映像配信または再生システムでは、パッチカリングモジュールの任意の組合せが存在するかまたはアクティブである場合がある。パッチカリングは、パッチのパッチ可視性情報、現在の視聴位置、現在の視聴の向き、予想される将来の視聴位置、および/または予想される将来の視聴の向きを利用してもよい。
【0173】
いくつかの事例では、各ボリュームパッチは、2次元カラー(または他の形式のテクスチャ)画像、および深度マップとしても知られる対応する深度画像に投影されてもよい。この変換により、両方の画像を使用してヘッドセットのクライアントレンダリングモジュールで各パッチをボリューム形式に変換して戻すことが可能になる。
【0174】
いくつかの事例では、点群フレームなどのボリューム画像のソースボリュームが、1つまたは複数の投影面に投影されてもよい。投影面上のパッチが決定されてもよく、それらのパッチは、1つまたは複数の2次元フレーム上に配置されてもよい。上記のように、テクスチャおよび深さパッチは同様に形成されてもよい。ソースボリュームの投影面への投影、およびスパース投影の修復を示す。言い換えると、メッシュ要素、点、および/またはボクセルなどのジオメトリ基本形を含む3次元(3D)シーンモデルが、1つまたは複数の投影面に投影される。これらの投影面のジオメトリは、2D平面(通常、投影されるソースボリュームごとに2つの平面、すなわち、一方はテクスチャ用の平面、他方は深度用の平面)に「展開」されてもよい。「展開」には、パッチの決定が含まれてもよい。次いで、2D平面は、標準の2D画像または映像圧縮技術を使用して符号化されてもよい。符号化された映像ファイルと共に関連する投影ジオメトリ情報がデコーダに送信されてもよい。次いで、デコーダは、符号化画像/映像シーケンスを復号し、逆投影を実行して、例えば元のメッシュモデルデータから点群を再構築する開始フォーマットとは異なり得る任意の所望の表現フォーマットで、3Dシーンモデルオブジェクトを再生成してもよい。
【0175】
いくつかの事例では、ボリューム映像または画像の複数の点(例えば点群)が同じ画素位置に投影される。このような事例は、2つ以上の「レイヤ」を作成することによって処理されてもよい。点群圧縮などのボリューム映像のレイヤの概念はスケーラブル映像符号化のレイヤの概念とは異なる場合があることに留意されたい。したがって、PCCレイヤまたはボリューム映像レイヤなどの用語は、スケーラブル映像符号化のレイヤと区別するために使用されることがある。各ボリューム(3D)パッチは、同じ2D位置に投影された点などの視覚データの異なるレイヤを表す2つ以上の2Dパッチに投影されてもよい。パッチは、例えば、投影面までの上昇距離に基づいて編成されてもよい。より正確には、次の例示的な処理を使用して2つのレイヤを作成することができるが、H(u,v)を同じ画素(u,v)に投影される現在のパッチの点の集合として、他の数のレイヤに一般化することもできる。近傍レイヤとも呼ぶ第1のレイヤは、最も浅い深度D0の点H(u,v)を記憶する。遠方レイヤと呼ぶ第2のレイヤは、間隔[D0,D0+?]内で最も深い深度の点H(u,v)を取り込み、ここで?は、表面の厚さを表すユーザ定義のパラメータである。
【0176】
ボリューム画像/映像は、テクスチャおよび深度に加えてまたはその代替として、反射率、不透明度もしくは透明度(例えば、アルファチャネルパッチ)、表面法線、アルベド、および/または他の材料もしくは表面属性パッチを含むことができることを理解すべきである。
【0177】
2次元形式のパッチは、1つまたは複数のアトラスにパッキングされてもよい。当技術分野ではテクスチャアトラスが知られており、テクスチャアトラスは、サブ画像からなる画像を含み、この画像はグラフィックスハードウェアによって単一のユニットとして扱われ、その後の識別および解凍のために単一の画像として圧縮および送信されることが可能である。テクスチャアトラスと同様に、ジオメトリアトラスが構築されてもよい。テクスチャアトラスおよびジオメトリアトラスは、別個のピクチャとして(また、ボリューム映像の場合は別個のピクチャシーケンスとして)扱われてもよく、またはテクスチャアトラスおよびジオメトリアトラスは、フレームパッキングが従来実行されている方法と同様に、同じフレームにパッキングされてもよい。アトラスは、画像エンコーダまたは映像エンコーダを用いてフレームとして符号化されてもよい。
【0178】
また、アトラス内のサブ画像レイアウトは、パッチまたは同様の可視性情報を有するパッチのセットを他の時空間単位から独立して復号できる時空間単位に符号化できるように編成されてもよい。例えば、高効率映像符号化(HEVC)のコンテキストで理解されるように、符号化のためにタイルグリッドが選択されてもよく、アトラスは、パッチまたは同様の可視性情報を有するパッチのグループを動き制約タイルセット(MCTS)として符号化できるように編成されてもよい。
【0179】
いくつかの事例では、(セット全体ではなく)1つまたは複数の時空間単位が、ISOベースメディアファイルフォーマットのコンテキストで理解されるようにトラックとして、または同様のコンテナファイルフォーマット構造として提供および記憶されてもよい。このようなトラックは、パッチトラックと呼ばれることがある。パッチトラックは、例えば、OMAFのコンテキストで理解されるサブピクチャトラック、またはISO/IEC14496-15のコンテキストで理解されるタイルトラックとすることができる。
【0180】
いくつかの事例では、1つまたは複数のアトラスのいくつかのバージョンが符号化される。様々なバージョンとして、以下のもの、すなわち、同じ解像度の1つまたは複数のアトラスの様々なビットレートバージョン、アトラスの様々な空間解像度、および様々なランダムアクセス間隔の様々なバージョンのうちの1つまたは複数が含まれ得るが、これらに限定されず、これらには、1つまたは複数のイントラ符号化されたアトラス(すべてのピクチャにランダムにアクセスできる)が含まれる場合がある。
【0181】
いくつかの事例では、OMAFおよび/またはISO/IEC14496-15のコンテキストで理解されるように、テクスチャアトラスの異なるバージョンからのパッチの組合せが、エクストラクタトラックなどのメタデータとして規定および記述されてもよい。
【0182】
テクスチャアトラス、場合によってはそれぞれのジオメトリピクチャおよび/または他の補助ピクチャ(存在する場合)の合計サンプル数が映像コーデックのレベル制限などの制限を超える場合、制限に従う方法で規定が作成されてもよい。例えば、パッチは、主観的重要性に従って低解像度のテクスチャアトラスから選択されてもよい。この選択は、視聴位置に関係しない方法で実行されてもよい。規定には、従う制限を特徴付けるメタデータ、例えば、従うコーデックレベルが付随している場合がある。
【0183】
規定は、可視性円錐に(または一般に特定の可視性に)固有に作成されてもよく、したがって、可視性円錐内の不可視なパッチを除外する。規定を生成する対象となる可視性円錐の選択は、ある規定から別の規定への切替えが頻繁に発生することが予想されないような妥当な数に制限される場合がある。規定の可視性円錐は、2つの規定間で前後に切り替わるのを避けるように重なり合う場合がある。規定には、可視性円錐を示すメタデータ(または一般に可視性情報)が付随している場合がある。
【0184】
規定は、独立した時空間単位の特定のグリッドまたはパターンを使用してもよい。例えば、規定は一定のタイルグリッドを使用してもよく、タイル境界はMCTS境界でもある。規定には、時空間単位として適切な潜在的なソース(例えば、トラックグループ、トラック、または表現など)を示すメタデータが付随している場合がある。
【0185】
いくつかの事例では、パッチトラックは、DASHのコンテキストにおいて表現を形成する。その結果、DASH MPDの表現要素は、パッチトラックに関連するパッチ可視性メタデータなどのパッチに関するメタデータを提供することができる。クライアントは、パッチ可視性メタデータに基づいて、パッチ表現を選択し、選択した表現から(サブ)セグメントを要求してもよい。
【0186】
コレクタトラックは、他のトラックから、MCTSまたはサブピクチャの符号化映像データなどの暗黙的または明示的に符号化された映像データを抽出するトラックと定義されてもよい。コレクタトラックは、ファイルリーダなどによって解決されると、映像符号化規格または映像符号化フォーマットに準拠するビットストリームになる場合がある。コレクタトラックは、例えば、MCTSまたはサブピクチャを抽出して、MCTSまたはサブピクチャがグリッドに配置されている符号化ピクチャシーケンスを形成してもよい。例えば、コレクタトラックが2つのMCTSまたはサブピクチャを抽出するとき、それらは、MCTSまたはサブピクチャの2×1グリッドに配置されてもよい。後述するように、他のトラックからMCTSまたはサブピクチャを抽出するエクストラクタトラックは、コレクタトラックと見なされてもよい。後述するタイルベーストラックは、コレクタトラックの別の例である。コレクタトラックは、コレクショントラックと呼ばれることもある。コレクタトラックに抽出するためのソースであるトラックは、コレクションアイテムトラックと呼ばれることがある。
【0187】
H.264/AVCおよびHEVC用にISO/IEC14496-15で指定されているエクストラクタにより、参照によってNALユニットデータを抽出するトラックをコンパクトに形成することが可能になる。エクストラクタは、NALユニットのような構造である。NALユニットのような構造は、NALユニットのようにNALユニットヘッダおよびNALユニットペイロードを含むように指定されてもよいが、NALユニットのような構造では、(NALユニットに必要とされる)開始コードエミュレーションの防止に従わない場合がある。HEVCの場合、エクストラクタは、1つまたは複数の構築子を含む。サンプル構築子は、参照によって別のトラックのサンプルからNALユニットデータを抽出する。インライン構築子は、NALユニットデータを含む。インラインという用語は、例えば、含んでいる構文構造が(参照によってまたはデータポインタを介してデータユニットを含むのとは対照的に)データユニットを含むかまたは保持していることを示すためのデータユニットに関連して定義されてもよい。エクストラクタがエクストラクタを必要とするファイルリーダによって処理されると、エクストラクタは、含まれている構築子を出現順に解決したときに生成されるバイトに論理的に置き換えられる。ネストされた抽出は許可されない場合がある。例えば、サンプル構築子によって参照されるバイトには、エクストラクタが含まれてはならず、エクストラクタは、直接的または間接的に、別のエクストラクタを参照してはならない。エクストラクタは、現在のトラックから、またはタイプ「scal」のトラック参照によってエクストラクタが存在するトラックにリンクされている別のトラックからデータを抽出するための1つまたは複数の構築子を含んでもよい。解決されたエクストラクタのバイトは、1つまたは複数のNALユニット全体を表す場合がある。解決されたエクストラクタは、有効な長さフィールドおよびNALユニットヘッダで始まる。サンプル構築子のバイトは、示された「scal」トラック参照を介して参照されるトラック内の単一の指示されたサンプルからのみコピーされる。この整列は、復号の時点に行われ、すなわち時間対サンプルのテーブルのみを使用して行われ、サンプル番号のカウントされたオフセットが後に続く。エクストラクタはメディアレベルの概念であり、したがって編集リストが考慮される前に宛先トラックに適用される。(しかしながら、通常は、2つのトラック中の編集リストは同一であると予想される)。
【0188】
ビューポート適応ストリーミング(VAS:Viewport-Adaptive Streaming)またはビューポート固有ストリーミングとも呼ばれるビューポート依存ストリーミングでは、ビューポートをカバーする360度映像コンテンツのサブセット(すなわち、現在のビューの向き)が、残りの360度映像の品質および/または解像度よりも高品質および/または高解像度で伝送される。ビューポート依存全方向映像ストリーミングを実現するには、いくつかの選択肢がある。タイルベースビューポート依存ストリーミングでは、投影ピクチャは、動き制約タイルセット(MCTS)などとして符号化されたタイルにパーティショニングされる。いくつかのバージョンのコンテンツは、同じMCTSパーティショニングを使用して、異なるビットレートまたは品質で符号化される。各MCTSシーケンスは、DASH表現などとしてストリーミング用に利用可能となる。プレーヤは、MCTSに基づいて、受信するビットレートまたは品質を選択する。
【0189】
H.264/AVCはタイルの概念を含まないが、MCTSのような動作は、MCTSの符号化と同様に、領域をスライスとして垂直に配置し、符号化を制限することによって実現することができる。簡単にするために、本文書ではタイルおよびMCTSという用語が使用されているが、H.264/AVCにも限定的に適用されることを理解されたい。一般に、タイルおよびMCTSという用語は、符号化フォーマットまたは仕様の同様の概念に適用されることを理解されたい。
【0190】
タイルベースビューポート依存ストリーミング方式の1つの可能な細分化は次の通りである。
- 領域別混合品質(RWMQ:Region-Wise Mixed Quality)360°映像:コンテンツのいくつかのバージョンは、同じ解像度、同じタイルグリッド、および異なるビットレート/ピクチャ品質で符号化される。プレーヤは、ビューポート用に高品質のMCTSを選択する。
- ビューポート+360°映像:低解像度/低品質の全方向映像全体の1つまたは複数のビットレートおよび/または解像度バージョンが符号化され、ストリーミングに利用可能になる。さらに、MCTSベースの符号化が実行され、MCTSシーケンスがストリーミングに利用可能になる。プレーヤは、低解像度/低品質の全方向映像全体を受信し、ビューポートをカバーする高解像度MCTSを選択して受信する。
- 領域別混合解像度(RWMR:Region-Wise Mixed Resolution)360°映像:MCTSは複数の解像度で符号化される。プレーヤは、ビューポートをカバーする高解像度MCTSと残りの領域の低解像度MCTSとの組合せを選択する。
【0191】
タイルベースビューポート依存ストリーミング法を上記の方法以外のカテゴリに細分化する方法が他にもある可能性があることを理解する必要がある。さらに、上記の細分化は網羅的ではない可能性があり、すなわち、それらは、説明されたカテゴリのいずれにも属さないタイルベースビューポート依存ストリーミング法である可能性がある。
【0192】
上記のすべてのビューポート依存ストリーミング手法において、タイルまたはMCTS(またはタイルもしくはMCTSのガードバンド)は、前処理または符号化で選択された量だけ球体カバレッジで重なり合ってもよい。
【0193】
上記のすべてのビューポート依存ストリーミング手法は、クライアント主導型ビットストリーム書き換え(遅延バインディングとしても知られる)または作成者主導型MCTSマージ(事前バインディングとしても知られる)を用いて実現されてもよい。遅延バインディングでは、プレーヤは受信するMCTSシーケンスを選択し、受信したMCTSを単一のビットストリームに結合するために必要に応じて受信した映像データの一部を選択的に書き換え(例えば、パラメータセットおよびスライスセグメントヘッダを書き換える必要がある場合がある)、単一のビットストリームを復号する。事前バインディングとは、受信した映像データの一部を必要に応じて書き換えるために、MCTSを単一のビットストリームにマージして復号するために、場合によっては受信するMCTSシーケンスを選択するために、作成者主導型情報を使用することを指す。事前バインディングと遅延バインディングの中間の手法がある場合がある。例えば、受信するMCTSシーケンスを作成者のガイダンスなしでプレーヤに選択させ、MCTSのマージおよびヘッダの書き換えには作成者主導型手法を使用することが可能である場合がある。事前バインディング手法には、後述するエクストラクタ主導型手法およびタイルトラック手法が含まれる。
【0194】
タイルトラック手法では、ビットストリームから1つまたは複数の動き制約タイルセットシーケンスが抽出され、抽出された各動き制約タイルセットシーケンスは、タイルトラック(例えば、HEVCタイルトラック)としてファイルに記憶される。タイルベーストラック(例えば、HEVCタイルベーストラック)が生成され、ファイルに記憶されてもよい。タイルベーストラックは、タイルトラックから動き制約タイルセットを暗黙的に収集することによってビットストリームを表す。受信側では、ストリーミング対象となるタイルトラックが、視聴の向きに基づいて選択されてもよい。クライアントは、全方向コンテンツ全体をカバーするタイルトラックを受信してもよい。現在のビューポート用に、残りの360度映像をカバーする品質または解像度と比較して高品質または高解像度のタイルトラックが受信されてもよい。タイルベーストラックは、タイルトラックへのトラック参照を含んでもよく、かつ/またはタイルトラックは、タイルベーストラックへのトラック参照を含んでもよい。例えば、HEVCでは、タイルベーストラックからタイルトラックを参照するために、「sabt」トラック参照が使用され、タイルの順序は「sabt」トラック参照に含まれるタイルトラックの順序によって示される。さらに、HEVCでは、タイルトラックは、タイルベーストラックへの「tbas」トラック参照を有する。
【0195】
エクストラクタ主導型手法では、ビットストリームから1つまたは複数の動き制約タイルセットシーケンスが抽出され、抽出された各動き制約タイルセットシーケンスは、独自の準拠ビットストリーム(例えば、HEVCビットストリーム)になるように変更され、サブピクチャトラック(例えば、HEVCの場合は変換されていないサンプルエントリタイプ「hvc1」)としてファイルに記憶される。1つまたは複数のエクストラクタトラック(例えば、HEVCエクストラクトラック)が生成され、ファイルに記憶されてもよい。エクストラクタトラックは、(例えば、HEVCエクストラクタによって)サブピクチャトラックから動き制約タイルセットを明示的に抽出することによってビットストリームを表す。受信側では、ストリーミング対象となるサブピクチャトラックが、視聴の向きに基づいて選択されてもよい。クライアントは、全方向コンテンツ全体をカバーするサブピクチャトラックを受信してもよい。現在のビューポート用に、残りの360度映像をカバーする品質または解像度と比較して高品質または高解像度のサブピクチャトラックが受信されてもよい。
【0196】
タイルトラック手法およびエクストラクタ主導型手法については特にHEVCのコンテキストで詳細に説明しているが、これらは他のコーデックおよびタイルトラックまたはエクストラクタと同様の概念に適用されることを理解する必要がある。さらに、タイルトラックとエクストラクタ主導型手法の組合せまたは混合が可能である。例えば、そのような混合はタイルトラック手法に基づくことができるが、タイルベーストラックはクライアントの書き換え動作のためのガイダンスを含むことができ、例えば、タイルベーストラックは書き換えられたスライスまたはタイルグループヘッダを含むことができる。
【0197】
MCTSベースのコンテンツ符号化の代替として、タイルベースビューポート依存ストリーミング用のコンテンツ作成は、以下に説明するサブピクチャベースのコンテンツ作成によって実現されてもよい。(符号化前の)前処理は、非圧縮ピクチャをサブピクチャにパーティショニングすることを含む。同じ非圧縮サブピクチャシーケンスのいくつかのサブピクチャビットストリームが、例えば、同じ解像度であるが異なる品質およびビットレートで符号化される。符号化は、符号化サブピクチャビットストリームを、全方向映像を表す準拠ビットストリームにマージできるように制約されてもよい。例えば、ピクチャの外側のサンプル位置がインター予測処理で参照されないように動きベクトルを選択することによって、符号化の際に復号ピクチャ境界の外側のサンプルに依存することを回避してもよい。各サブピクチャビットストリームは、サブピクチャトラックとしてカプセル化されてもよく、さらに、異なるサブピクチャ位置のサブピクチャトラックをマージする1つまたは複数のエクストラクタトラックが形成されてもよい。タイルトラックベースの手法が対象となる場合、各サブピクチャビットストリームはMCTSシーケンスになるように変更され、タイルトラックとしてファイルに記憶され、タイルトラック用に1つまたは複数のタイルベーストラックが作成される。
【0198】
タイルベースビューポート依存ストリーミング手法は、例えば、プレーヤが実行しているデバイスおよびオペレーティングシステムの能力に応じて、MCTSシーケンスごとに単一のデコーダインスタンスまたは1つのデコーダインスタンス(または場合によっては、中間にあるもの、例えば、同じ解像度のMCTSごとに1つのデコーダインスタンス)を実行することによって実現されてもよい。単一のデコーダインスタンスの使用は、遅延バインディングまたは事前バインディングによって可能にされてもよい。複数のデコーダインスタンスを容易にするために、エクストラクタ主導型手法では、符号化フォーマットまたは符号化規格に準拠するサブピクチャトラックを変更なしで使用してもよい。他の手法では、クライアント側で画像セグメントヘッダ、パラメータセット、および/もしくは同様の情報を書き換えて適合ビットストリームを構築するか、または他の符号化映像データの存在なしにMCTSシーケンスを復号できるデコーダ実装を有する必要がある場合がある。
【0199】
タイルトラック手法およびエクストラクタ主導型手法ではそれぞれ、タイルトラックまたはサブピクチャトラックをカプセル化して参照するための手法が少なくとも2つある場合がある。
- タイルベーストラックまたはエクストラクタトラックからのトラック識別子を参照する。
- タイルベーストラックまたはエクストラクタトラックからのタイルグループ識別子を参照する。タイルグループ識別子によって識別されるタイルグループは、抽出の代替となる、同一位置のタイルトラックまたはサブピクチャトラックを含む。
【0200】
RWMQ法では、ピクチャサイズおよびタイルグリッドごとに1つのエクストラクタトラックで十分である。360°+ビューポート映像およびRWMR映像では、異なる視聴の向きごとに1つのエクストラクトラックが必要になる場合がある。
【0201】
次に、タイル矩形ベースの符号化およびストリーミングと呼ばれることがある、上記のタイルベースビューポート依存ストリーミング手法と同様の手法について説明する。この手法は、HEVCと同様のタイルがコーデックで使用できない場合でも、または動き制約タイルセットなどがエンコーダに実装されていない場合でも、任意の映像コーデックで使用されてもよい。タイル矩形ベースの符号化では、ソースコンテンツは、符号化前にタイル矩形シーケンスに分割される。各タイル矩形シーケンスは、パノラマコンテンツ全体などのソースコンテンツの空間領域のサブセットをカバーし、これは、例えば正距円筒図法投影フォーマットであってもよい。次いで、各タイル矩形シーケンスは、単一レイヤビットストリームとして互いに独立して符号化される。いくつかのビットストリームは、例えば異なるビットレート用に、同じタイル矩形シーケンスから符号化されてもよい。各タイル矩形ビットストリームは、独自のトラック(または同様のもの)としてファイルにカプセル化され、ストリーミング用に使用可能となってもよい。受信側では、ストリーミング対象となるトラックが、視聴の向きに基づいて選択されてもよい。クライアントは、全方向コンテンツ全体をカバーするトラックを受信してもよい。現在のビューポート用に、残りの現在不可視の映像をカバーする品質または解像度と比較して高品質または高解像度のトラックが受信されてもよい。一例では、各トラックは、別個のデコーダインスタンスで復号されてもよい。
【0202】
ビューポート適応ストリーミングでは、1次ビューポート(すなわち、現在の視聴の向き)は高品質/高解像度で送信され、残りの360度映像は低品質/低解像度で送信される。視聴の向きが変わると、例えば、ユーザがヘッドマウントディスプレイでコンテンツを視聴しているときに自分の頭を回転させると、新しい視聴の向きに一致する別のバージョンのコンテンツをストリーミングする必要がある。一般に、典型的には(サブ)セグメントと連携しているストリームアクセスポイント(SAP)から開始する新しいバージョンが要求される可能性がある。単一レイヤ映像ビットストリームでは、SAPは、ランダムアクセスピクチャに対応し、イントラ符号化されるので、レート歪み性能の点で大きな犠牲を伴う。したがって、従来の方法では通常、比較的長いSAP間隔、したがって秒単位の比較的長い(サブ)セグメント持続時間が使用される。したがって、従来の方法では、視聴の向きの変更(例えば、頭の回転)後の品質をアップグレードする際の遅延(ここではビューポート品質更新遅延と呼ぶ)は秒単位であるため、明らかに目に見えて分かり、不快なものである。
【0203】
上で説明したように、MPEG OMAFに準拠し得るビューポート依存ストリーミングでのビューポート切替えは、ストリームアクセスポイントで可能になり、これにはイントラ符号化が含まれるため、同じ品質のそれぞれのインター符号化ピクチャと比較してビットレートが高くなる。したがって、符号化構成では、ストリームアクセスポイント間隔とレート歪み性能との間の妥協点が選択される。
【0204】
MCTSを用いた同解像度HEVCビットストリームのビューポート適応ストリーミングについて、一例として以下に説明する。動き制約タイルセットを使用して、同じ全方向ソースコンテンツのいくつかのHEVCビットストリームが、同じ解像度であるが異なる品質およびビットレートで符号化されてもよい。すべてのビットストリームのMCTSグリッドは同一である。クライアントが同じタイルベーストラックを使用して、元の異なるビットストリームから受信したMCTSからビットストリームを再構築できるようにするために、各ビットストリームは独自のファイルにカプセル化され、これらすべてのファイルで、同じタイルグリッド位置の各タイルトラックに対して同じトラック識別子が使用される。HEVCタイルトラックは、各動き制約タイルセットシーケンスから形成され、タイルベーストラックが追加で形成される。クライアントは、タイルベーストラックを解析して、タイルトラックからビットストリームを暗黙的に再構築してもよい。再構築されたビットストリームは、適合したHEVCデコーダによって復号することができる。
【0205】
クライアントは、各MCTSのどのバージョンを受信するかを選択することができる。それぞれのタイルトラックで同じトラック識別子が使用されるので、異なるビットストリームからのMCTSを組み合わせるには、同じタイルベーストラックで十分である。
【0206】
図5は、同じ解像度のタイルトラックをタイルベース全方向映像ストリーミングに使用できる方法の一例を示す。4×2タイルグリッドは、動き制約タイルセットの形成に使用されている。同じソースコンテンツから発信された2つのHEVCビットストリームは、異なるピクチャ品質およびビットレートで符号化される。各ビットストリームは、独自のファイルにカプセル化されてもよく、各動き制約タイルセットシーケンスは、1つのタイルトラックに含まれてもよく、タイルベーストラックも含まれてもよい。クライアントは、視聴の向きに基づいて、各タイルトラックが受信される品質を選択してもよい。この例では、クライアントは特定の品質でタイルトラック1、2、5、および6を受信し、別の品質でタイルトラック3、4、7、および8を受信する。タイルベーストラックは、受信したタイルトラックデータを順序付けてHEVCデコーダで復号できるビットストリームにするために使用される。
【0207】
現在の映像コーデックでは、元のコンテンツの異なる部分を2Dフレームにパッキングして、従来の2D映像コーデックによって符号化する必要がある。映像符号化フォーマットは、ピクチャの空間パーティショニングに制約がある。例えば、HEVCは、CTUの単位で指定されたピクチャ幅のタイル行とピクチャ高さのタイル列のタイルグリッドを使用し、タイル列とタイル行には一定の最小幅および最小高さの制約がある。異なる部分は異なるサイズを有する可能性があり、したがって2D映像コーデックの空間パーティショニング単位に沿ったその最適なパッキングが不可能な場合がある。パッキング済みピクチャには、空き空間(元のコンテンツのどの部分によっても割り当てられていないが、それでも符号化および復号される領域)が存在する場合もある。これらの空き空間は、受信者には必要ないが、コーデックの有効画素としてカウントされるため、いずれにせよ符号化および復号されなければならない。これは非効率的なパッキングにつながる。この欠点を克服するための知られている解決策は、より柔軟かつ/またはより細かい粒度のタイリングの可能性、例えば、ピクチャ幅のタイル行とピクチャ高さのタイル列のタイルグリッドを使用する必要のないCUまたはタイルパーティショニングのタイル粒度に焦点を合わせている。
【0208】
別の欠点として、ビューポート依存360ストリーミングでは、対応するタイルを選択して、符号化された2Dピクチャに配置する必要がある。そのためには、エンコーダ出力のタイル位置が、デコーダに入力されるマージされたビットストリームのタイル位置とは異なるので、符号化データにいくつかの変更を加える必要もある。したがって、パラメータセットおよびスライスヘッダを、マージされたビットストリーム用に書き換える必要がある。ビューポート依存360度ストリーミングの抽出のこの欠点を克服するための知られている解決策は、例えば、標準化された復号動作の一部ではなくデコーダAPIおよびデコーダの実装ではサポートされていない可能性があるが、クライアント側のスライスヘッダの書き換え、またはスライスヘッダが書き換えられたエクストラクタトラックに関連しており、このスライスヘッダが書き換えられたエクストラクタトラックは、エクストラクタトラックのパラメータセットおよびスライスヘッダの書き換えに使用できるエクストラクタの設計を含むISO/IEC14496-15に関連し、タイルデータは参照によって含まれる。このような手法は、例えば、360度映像の視聴の向きの範囲ごとに1つのエクストラクタトラックなど、抽出された可能性のある組合せごとに1つのエクストラクタトラックを必要とする場合があり、結果として、選んだタイルのセットが異なることになる。
【0209】
さらに別の欠点として、(例えば、ビューポート適応ストリーミングアプリケーションまたはROI拡張レイヤにおいて動き制約タイルセット技法を使用して)コンテンツの異なる部分(例えば、異なるタイル)を独立して符号化する必要がある場合、レート歪みペナルティがある。例えば、12×8MCTSグリッドでは、タイルなしの符号化と比較した場合、14ERPテストシーケンスの平均Bjontegaardデルタビットレートが10%を超えて増加し、ピークは22.5%であることが判明している。この欠点を克服するための知られている解決策は、動き制限タイル境界の近くの動き補償フィルタを変更してMCTSツールのRD(レート歪み)ペナルティを低減すること、または予測されたブロックを変更し、MCTSモードで符号化された他のタイルへの依存関係を削除して、MCTSツールのRDペナルティを低減することに関連する。
【0210】
本実施形態は、サブピクチャベースの映像コーデック動作に関連する。特定の時間インスタンスでのビジュアルコンテンツはいくつかの部分に分割され、各部分はサブピクチャを使用して表される。異なる時間インスタンスでのそれぞれのサブピクチャは、サブピクチャシーケンスを形成し、「それぞれ」の定義はコンテキストに依存し得るが、例えば、ピクチャのシーケンス内のピクチャ領域の同じ空間部分、または同じ取得位置、向き、および投影面などの同じ設定で取得されたコンテンツとすることができる。特定の時間インスタンスのピクチャは、特定の時間インスタンスでのすべてのサブピクチャの集合体と定義されてもよい。各サブピクチャは、従来の映像エンコーダを使用して符号化され、再構築サブピクチャは、サブピクチャシーケンスに対応する再構築サブピクチャメモリに記憶される。特定のサブピクチャシーケンスでサブピクチャを予測するために、エンコーダは、予測の参照として同じサブピクチャシーケンスの再構築サブピクチャを使用することができる。符号化サブピクチャは、同じビットストリームに個別のユニット(例えば、VCL NALユニット)として含まれる。
【0211】
デコーダは、符号化映像データ(例えば、ビットストリーム)を受信する。従来の映像デコーダを使用して、サブピクチャが他のサブピクチャとは別のユニットとして復号される。復号サブピクチャは、復号ピクチャバッファリング処理を使用してバッファリングされてもよい。復号ピクチャバッファリング処理は、特定のサブピクチャシーケンスの復号サブピクチャをデコーダに提供してもよく、デコーダは、同じサブピクチャシーケンスでサブピクチャを予測するための予測の参照として復号サブピクチャを使用してもよい。
【0212】
図6は、デコーダの一例を示す。デコーダは、符号化映像データ(例えば、ビットストリーム)を受信する。復号処理610において、従来の映像デコーダを使用して、サブピクチャが他のサブピクチャとは別のユニットとして復号される。復号サブピクチャは、復号ピクチャバッファリング処理620を使用してバッファリングされてもよい。復号ピクチャバッファリング処理は、特定のサブピクチャシーケンスの復号サブピクチャを復号処理610に提供してもよく、デコーダは、同じサブピクチャシーケンスでサブピクチャを予測するための予測の参照として復号サブピクチャを使用してもよい。
【0213】
復号ピクチャバッファリング処理620は、サブピクチャシーケンス別バッファリングを含んでもよく、これは、再構築サブピクチャを「参照に使用」および「参照に不使用」としてマークすること、ならびに再構築サブピクチャがデコーダから出力されたかどうかについて追跡することを含んでもよい。サブピクチャシーケンスのバッファリングは、互いに独立していてもよく、または次の方法の一方または両方で同期されてもよい。
- 同じ時間インスタンスのすべての再構築サブピクチャの出力が、同期して実行されてもよい。
- 同じ時間インスタンスの再構築サブピクチャの参照ピクチャマーク付けが、同期して実行されてもよい。
【0214】
図7に、サブピクチャシーケンス別バッファリング730が示され得る。この例は、高さが同じで幅が異なる2つのサブピクチャシーケンスの復号を示す。サブピクチャシーケンスの数および/またはサブピクチャの寸法は異なる方法で選択されている可能性があり、これらの選択は可能な例として意図されているに過ぎないことを理解する必要がある。
【0215】
一実施形態によれば、デコーダからの出力は、異なる別個の復号サブピクチャの集合体を含む。
【0216】
別の例によれば、復号処理からの出力ピクチャは、追加としてまたは代替として復号ピクチャと呼ばれることもあり、異なる別個のサブピクチャの集合体である。別の実施形態によれば、出力ピクチャは、再構築サブピクチャを2次元(2D)ピクチャに配置することによって合成される。この実施形態は、(時間インスタンスごとの)単一の出力ピクチャの従来の設計を映像デコーダの出力として維持し、したがって、システムに統合するのに容易である可能性がある。復号サブピクチャは、復号サブピクチャバッファリングに提供される。次いで、復号処理は、バッファリングされたサブピクチャを後続のピクチャを復号するための参照として使用してもよい。復号処理は、操作されるサブピクチャを生成するためのソースとしてどの復号サブピクチャを使用すべきかについての指示または推論を取得してもよい。これらのサブピクチャは、参照サブピクチャ操作処理に提供される。次いで、操作される参照サブピクチャは、復号サブピクチャバッファリングに提供され、操作される参照サブピクチャがバッファリングされる。次いで、サブピクチャおよび操作される参照サブピクチャは、出力ピクチャ合成処理で使用されてもよく、出力ピクチャ合成処理は、ピクチャ合成データを入力として受け取り、再構築サブピクチャを出力ピクチャに配置する。エンコーダは、ピクチャ合成データをビットストリームの中にまたはビットストリームに沿って符号化し、ピクチャ合成データは、再構築サブピクチャを2Dピクチャ内にどのように配置して出力ピクチャを形成するかを示す。デコーダは、ビットストリームからまたはビットストリームに沿ってピクチャ合成データを復号し、復号したピクチャ合成データに従って、再構築サブピクチャおよび/または操作される参照サブピクチャから出力ピクチャを形成する。復号またはピクチャ合成データは、出力ピクチャ合成処理の一部として、または出力ピクチャ合成処理と動作上関連して発生する場合がある。したがって、従来の映像復号処理は、ピクチャ合成データを復号する。
【0217】
一例が図8に示されている別の実施形態によれば、出力ピクチャは、追加としてまたは代替として復号ピクチャと呼ばれることもあり、再構築サブピクチャを2次元(2D)ピクチャに配置することによって合成される。この実施形態は、(時間インスタンスごとの)単一の出力ピクチャの従来の設計を映像デコーダの出力として維持し、したがって、システムに統合するのに容易である可能性がある。エンコーダは、ピクチャ合成データをビットストリームの中にまたはビットストリームに沿って符号化し、ピクチャ合成データは、再構築サブピクチャを2Dピクチャ内にどのように配置して出力ピクチャを形成するかを示す。デコーダは、ビットストリームからまたはビットストリームに沿ってピクチャ合成データを復号し、復号したピクチャ合成データに従って、再構築サブピクチャから出力ピクチャを形成する。復号またはピクチャ合成データは、復号ピクチャバッファリング処理820の一部として、または復号ピクチャバッファリング処理820と動作上関連して発生する場合がある。したがって、従来の映像復号処理は、ピクチャ合成データを復号する必要がある。
【0218】
一実施形態によれば、ピクチャ合成データは、サブピクチャのビットストリームまたは復号順序およびサブピクチャの寸法を使用して、ビットストリームの中にまたはビットストリームに沿って符号化され、かつ/または、ビットストリームからまたはビットストリームに沿って復号される。エンコーダおよび/またはデコーダでは、ピクチャ領域内にサブピクチャを配置するためのアルゴリズムに従い、サブピクチャは、そのビットストリームまたは復号順でアルゴリズムに入力される。一実施形態では、ピクチャ領域内にサブピクチャを配置するためのアルゴリズムは以下の通りである。ピクチャが複数のサブピクチャを含み、ピクチャの符号化および/または符号化ピクチャの復号が開始されるとき、再構築ピクチャまたは復号ピクチャ内の各CTU位置が、占有されていない位置としてマークされる。ビットストリームまたは復号順のサブピクチャごとに、サブピクチャは、ピクチャ境界内にサブピクチャを収めるのに十分な大きさのピクチャ内で、CTUラスタ走査順で次のそのような占有されていない位置を取得する。
【0219】
図9は、時間整列された再構築サブピクチャを出力ピクチャ上に並べて配置するための、図8に示す実施形態のさらなる一例を示す。復号ピクチャバッファリング処理920は、ピクチャ合成データを入力として受け取り、再構築サブピクチャを出力ピクチャに配置する、出力ピクチャ合成処理940を含んでもよい。この例は、高さが同じで幅が異なる2つのサブピクチャシーケンスの復号を示す。この例では、出力ピクチャ合成処理940は、時間整列された再構築サブピクチャを出力ピクチャ上に並べて配置する。サブピクチャシーケンスの数および/またはサブピクチャの寸法は異なる方法で選択されている可能性があり、これらの選択は可能な例として意図されているに過ぎないことを理解する必要がある。
【0220】
一実施形態によれば、エンコーダは、
- デコーダが、異なる別個の復号サブピクチャの集合体を出力することを目的としているかどうか、または
- デコーダが、ピクチャ合成データに従って出力ピクチャを生成することを目的としているかどうか、または
- デコーダが上記の選択肢のいずれかを実行することを許可されているかどうか
をビットストリームの中にまたはビットストリームに沿って示す。
【0221】
一実施形態によれば、デコーダは、
- デコーダが、異なる別個の復号サブピクチャの集合体を出力することを目的としているかどうか、または
- デコーダが、ピクチャ合成データに従って出力ピクチャを生成することを目的としているかどうか、または
- デコーダが上記の選択肢のいずれかを実行することを許可されているかどうか
をビットストリームからまたはビットストリームに沿って復号する。
【0222】
デコーダは、復号される目的または許容値に適合するようにその動作を適応させる。
【0223】
一実施形態によれば、デコーダは、少なくとも、異なる別個の復号サブピクチャの集合体を出力すること、またはピクチャ合成データに従って出力ピクチャを生成することの中から選択するためのインターフェースを含む。デコーダは、インターフェースを介して示されたものに適合するようにその動作を適応させる。
【0224】
一実施形態によれば、ピクチャは、サブピクチャ、タイルグループ、およびタイルに分割される。タイルは、HEVCタイルと同様に定義されてもよく、したがって、タイルは、ピクチャの矩形領域をカバーするCTUのシーケンスと定義されてもよい。タイルグループは、サブピクチャ内のタイルラスタ走査におけるタイルのシーケンスと定義されてもよい。VCL NALユニットが厳密に1つのタイルグループを含むように、すなわち、タイルグループが厳密に1つのVCL NALユニットに含まれるように指定されてもよい。サブピクチャは、1つまたは複数のタイルグループ全体の矩形のセットと定義されてもよい。一実施形態では、ピクチャはサブピクチャに分割され、すなわち、ピクチャ全体がサブピクチャによって占有され、ピクチャ内に占有されていない領域はない。別の実施形態では、ピクチャは、サブピクチャおよび1つまたは複数の占有されていない領域を含む。
【0225】
一実施形態によれば、エンコーダは、サブピクチャの1つまたは複数のタイルパーティショニングを示す情報をビットストリームの中にまたはビットストリームに沿って符号化し、かつ/または、デコーダは、その情報をビットストリームからまたはビットストリームに沿って復号する。タイルパーティショニングは、例えば、タイル列およびタイル行のそれぞれの幅および高さとして指定されたタイルグリッドである場合がある。エンコーダは、特定のサブピクチャまたはサブピクチャシーケンスにどのタイルパーティショニングが適用されるかを、ビットストリームの中にまたはビットストリームに沿って符号化し、かつ/または、デコーダは、ビットストリームからまたはビットストリームに沿ってそれを復号する。一実施形態では、タイルパーティショニングを記述する構文要素は、ピクチャパラメータセットの中で符号化され、かつ/またはピクチャパラメータセットから復号され、PPSは、例えば、タイルグループヘッダ内のPPS識別子を介して、サブピクチャに対してアクティブ化される。各サブピクチャは、独自のPPSを参照してもよく、したがって、独自のタイルパーティショニングを有してもよい。例えば、図10は、4つのサブピクチャに分割されたピクチャを示す。各サブピクチャは、独自のタイルグリッドを有してもよい。この例では、サブピクチャ1は、同じ幅と同じ高さの3×2タイルのグリッドに分割され、サブピクチャ2は、高さ3CTUおよび5CTUの2×1タイルに分割される。サブピクチャ3および4はそれぞれ、1つのタイルのみを有する。サブピクチャ1は、それぞれ1つ、3つ、および2つのタイルを含む3つのタイルグループを有する。サブピクチャ2、3、および4はそれぞれ、1つのタイルグループを有する。
【0226】
図10はまた、ピクチャ領域内にサブピクチャを配置するための上記のアルゴリズムを示す。サブピクチャ1は復号順で1番目であり、したがってピクチャ領域の左上角に配置される。サブピクチャ2は復号順で2番目であり、したがってラスタ走査順で次の占有されていない位置に配置される。アルゴリズムは、復号順に3番目および4番目のサブピクチャ、すなわちサブピクチャ3およびサブピクチャ4に対してもそれぞれ同じように動作する。サブピクチャの復号順序は、ピクチャ境界の外側にある番号(1、2、3、4)で示されている。
【0227】
一実施形態によれば、エンコーダは、サブピクチャ内の1つまたは複数のタイル位置を示す情報を、タイルグループヘッダなどの画像セグメントヘッダにおいて、ビットストリームの中に符号化し、かつ/または、デコーダはその情報をビットストリームから復号する。例えば、画像セグメントまたはタイルグループの復号順で1番目のタイルのタイル位置が、符号化および/または復号されてもよい。一実施形態では、画像セグメントまたはタイルグループの1番目のタイルが、(例えば、タイルのラスタ走査順でタイルアドレスまたはタイルインデックスが0に等しい)サブピクチャの左上のタイルである場合、デコーダは、現在の画像セグメントまたはタイルグループがサブピクチャの1番目の画像セグメントまたはタイルグループであると判断する。一実施形態では、1番目の画像セグメントまたはタイルグループを判断することに関連して、デコーダは、新しいアクセスユニットが開始されているかどうかを判断する。一実施形態では、ピクチャ順序カウント値またはピクチャ順序カウントに関連する構文要素値(ピクチャ順序カウントの最下位ビットなど)が前のサブピクチャのものと異なる場合に、新しいアクセスが開始されていると判断する。
【0228】
一実施形態によれば、復号ピクチャバッファリングは、サブピクチャベースではなくピクチャベースで実行される。エンコーダおよび/またはデコーダは、ピクチャ合成データを使用して、同じアクセスユニットまたは時間インスタンスの復号サブピクチャから参照ピクチャを生成する。参照ピクチャの生成は、出力ピクチャを生成するための他の実施形態で説明されているものと同一または同様に実行される。参照ピクチャがサブピクチャの符号化および/または復号において参照されるとき、サブピクチャを符号化および/または復号するための参照サブピクチャは、復号ピクチャバッファ内の参照ピクチャから現在のサブピクチャと同一位置の領域を抽出することによって生成される。したがって、復号処理は、他の実施形態と同様に、復号ピクチャバッファリング処理から参照サブピクチャを取得し、復号処理は、他の実施形態と同様に動作してもよい。
【0229】
一実施形態では、エンコーダは、参照ピクチャが(ピクチャ内の)現在のサブピクチャと同じ位置にあり現在のサブピクチャと同じ寸法(幅および高さ)のサブピクチャを含むような方法で、現在のサブピクチャを予測するための参照ピクチャを選択する。参照ピクチャが(ピクチャ内の)現在のサブピクチャと同じ位置または現在のサブピクチャと同じ寸法のサブピクチャを含まない場合、エンコーダは現在のサブピクチャを予測するための参照ピクチャを選択することを回避する。一実施形態では、同じアクセスユニットまたは時間インスタンスのサブピクチャは、NALユニットタイプおよび/またはピクチャタイプに関連して前述したものと同様に定義された、ランダムアクセスサブピクチャおよび非ランダムアクセスサブピクチャなどの異なるタイプを有することができる。エンコーダは、第1の位置およびサイズのランダムアクセスサブピクチャと第2の位置およびサイズの非ランダムアクセスサブピクチャの両方を有する第1のアクセスユニット、および復号順で後続のアクセスユニットを符号化し、復号順で後続のアクセスユニットは、復号順で第1のアクセスユニットより前の参照ピクチャが回避されるように制約された第1の位置およびサイズのサブピクチャを含み、また復号順で第1のアクセスユニットの前にある参照ピクチャを予測の参照として使用する第2の位置およびサイズの別のサブピクチャを含む。
【0230】
一実施形態では、現在のサブピクチャを符号化および/または復号するために、エンコーダおよび/またはデコーダは、初期参照ピクチャリストの中に、(ピクチャ内の)現在のサブピクチャと同じ位置にあり現在のサブピクチャと同じ寸法(幅および高さ)のサブピクチャを含む参照ピクチャのみを含む。現在のサブピクチャを符号化および/または復号するための初期参照ピクチャリストを生成するために、(ピクチャ内の)現在のサブピクチャと同じ位置または現在のサブピクチャと同じ寸法(幅および高さ)のサブピクチャを含まない参照ピクチャは、スキップまたは除外される。一実施形態では、同じアクセスユニットまたは時間インスタンスのサブピクチャは、NALユニットタイプおよび/またはピクチャタイプに関連して前述したものと同様に定義された、ランダムアクセスサブピクチャおよび非ランダムアクセスサブピクチャなどの異なるタイプを有することができる。エンコーダおよび/またはデコーダにおける参照ピクチャリスト初期化処理またはアルゴリズムは、初期参照ピクチャリストに、復号順で前のランダムアクセスサブピクチャおよび後続のサブピクチャのみを含み、復号順で前のランダムアクセスサブピクチャの前にあるサブピクチャをスキップまたは除外する。
【0231】
一実施形態によれば、第1のサブピクチャシーケンスの1つまたは複数のサブピクチャから、第2のサブピクチャシーケンスにおけるサブピクチャが予測される。第1のサブピクチャシーケンスの1つまたは複数のサブピクチャに関するサブピクチャの空間関係は、エンコーダによってビットストリームの中にまたはビットストリームに沿って推論または示され、かつ/または、デコーダによってビットストリームからまたはビットストリームに沿って復号される。そのような空間関係情報(spatial relationship information)がビットストリームの中にまたはビットストリームに沿って存在しない場合、エンコーダおよび/またはデコーダは、サブピクチャが同一位置にある、すなわち予測における空間的対応関係(spatial correspondence)について厳密に重なり合っていると推論してもよい。空間関係情報は、ピクチャ合成データに依存しない。例えば、サブピクチャは、(上下のパッキング配置において)出力ピクチャ内で互いに上になるように合成され得る一方で、これらのサブピクチャは、予測のために同一位置にあると見なされる。
【0232】
図11に、符号化処理または復号処理の実施形態が示されており、第1のサブピクチャから第2のサブピクチャシーケンスへの矢印は予測を示す。図11の例では、サブピクチャは、予測のために同一位置にあると推論されてもよい。
【0233】
一実施形態によれば、エンコーダは、サブピクチャシーケンス識別子がVCL NALユニットなどの符号化映像データユニットに関連付けられる方法で、ビットストリームの中にまたはビットストリームに沿ってサブピクチャシーケンス識別子などを示す。一実施形態によれば、デコーダは、サブピクチャシーケンス識別子が符号化映像データユニットおよび/またはそれぞれの再構築サブピクチャに関連付けられる方法で、ビットストリームからまたはビットストリームに沿ってサブピクチャシーケンス識別子などを復号する。サブピクチャシーケンス識別子および関連付けメカニズムを含む構文構造は、以下のうちの1つまたは複数を含み得るが、これらに限定されない。
- NALユニットヘッダに含まれ、NALユニットに関連付けられたサブピクチャシーケンス識別子
- タイルグループヘッダやスライスヘッダなどVCL NALユニットに含まれるヘッダに含まれ、それぞれの画像セグメント(例えば、タイルグループやスライス)に関連付けられたサブピクチャシーケンス識別子
- サブピクチャデリミタ、ピクチャヘッダ、または同様の構文構造に含まれ、符号化映像データによって暗黙的に参照されるサブピクチャシーケンス識別子。サブピクチャデリミタは、例えば、新しいサブピクチャを開始する特定のNALユニットである場合がある。暗黙の参照は、例えば、復号順またはビットストリーム順で前にある構文構造(例えば、サブピクチャデリミタまたはピクチャヘッダ)が参照され得ることを意味する場合がある。
- ヘッダパラメータセット、ピクチャパラメータセット、または同様の構文構造に含まれ、符号化映像データによって明示的に参照されるサブピクチャシーケンス識別子。明示的な参照は、例えば、タイルグループヘッダまたはスライスヘッダなどの符号化映像データに参照パラメータセットの識別子が含まれることを意味する場合がある。
【0234】
一実施形態では、サブピクチャシーケンス識別子値は、ビットストリームの事前定義されたサブセット(「有効期間」または「有効サブセット」と呼ばれ得る)内で有効であり、これは、以下のうちの1つであり得るが、これらに限定されない。
- 単一のアクセスユニット、すなわち単一の時間インスタンスの符号化映像データ
- 符号化映像シーケンス
- クローズランダムアクセスのアクセスユニット(包括的)から、次のクローズランダムアクセスのアクセスユニット(排他的)またはビットストリーム終端まで。クローズランダムアクセスのアクセスユニットは、その中およびその後のすべての存在するサブピクチャシーケンスがクローズランダムアクセスサブピクチャで始まるアクセスユニットと定義されてもよい。クローズランダムアクセスサブピクチャは、イントラ符号化されたサブピクチャと定義されてもよく、その後に、同じサブピクチャシーケンス内の復号順でイントラ符号化サブピクチャの前にある任意のサブピクチャを参照するサブピクチャが、同じサブピクチャシーケンス内で復号順に続くことはない。一実施形態では、クローズランダムアクセスサブピクチャは、イントラ符号化サブピクチャ、または外部参照サブピクチャに関連付けられ外部参照サブピクチャからのみ予測されるサブピクチャ(以下でさらに説明する実施形態を参照)のいずれかとすることができ、それ以外の場合は、上記のように制約される。
- ビットストリーム全体
【0235】
一実施形態では、サブピクチャシーケンス識別子値は、ビットストリームの指示されたサブセット内で有効である。エンコーダは、例えば、ビットストリーム内に特定のNALユニットを含んでもよく、NALユニットは、サブピクチャシーケンス識別子の前の期間とは関係のないサブピクチャシーケンス識別子の新しい期間を示す。
【0236】
一実施形態では、両方のサブピクチャがサブピクチャシーケンス識別子の同じ有効期間内にある場合、特定のサブピクチャシーケンス識別子値を有するサブピクチャは、同じサブピクチャシーケンス識別子値を有する復号順で前にあるサブピクチャと同じサブピクチャシーケンス内にあると判断される。2つのピクチャがサブピクチャシーケンス識別子の異なる有効期間にあるか、または異なるサブピクチャシーケンス識別子を有する場合、それらは異なるサブピクチャシーケンスにあると判断される。
【0237】
一実施形態では、サブピクチャシーケンス識別子は、固定長コードワードである。固定長コードワードのビット数は、ビットストリームの中にまたはビットストリームに沿って、例えば映像パラメータセットまたはシーケンスパラメータセットの中に符号化されてもよく、かつ/または、ビットストリームからまたはビットストリームに沿って、例えば映像パラメータセットまたはシーケンスパラメータセットから復号されてもよい。
【0238】
一実施形態では、サブピクチャシーケンス識別子は、指数ゴロム符号などの可変長コードワードである。
【0239】
一実施形態によれば、エンコーダは、VCL NALユニットまたは画像セグメントとサブピクチャまたはサブピクチャシーケンスとの復号順でのマッピングを、ビットストリームの中にまたはビットストリームに沿って、例えば映像パラメータセット、シーケンスパラメータセット、またはピクチャパラメータセットの中に示す。同様に、一実施形態によれば、デコーダは、VCL NALユニットまたは画像セグメントとサブピクチャまたはサブピクチャシーケンスとの復号順でのマッピングを、ビットストリームからまたはビットストリームに沿って復号する。マッピングは、一度に1つの時間インスタンスまたはアクセスユニットに関係する場合がある。
【0240】
一実施形態では、例えば単一のコンテナ構文構造でいくつかのマッピングが提供され、各マッピングは、インデックス付けされるか、または例えば識別子値を用いて明示的に識別される。
【0241】
一実施形態では、エンコーダは、ビットストリームにおいて、例えば、アクセスユニットのヘッダまたはデリミタ、ピクチャパラメータセット、ヘッダパラメータセット、ピクチャヘッダ、画像セグメントのヘッダ(例えば、タイルグループまたはスライス)において、特定のアクセスユニットまたは時間インスタンスに対してどのマッピングが適用されるかを指示する。同様に、一実施形態では、デコーダは、マッピングが特定のアクセスユニットまたは時間インスタンスに適用されるビットストリームから復号する。一実施形態では、どのマッピングを適用するかの指示は、(例えば、シーケンスパラメータセットで指定される)いくつかのマッピングのリストへのインデックス、または(例えば、シーケンスパラメータセットで指定される)いくつかのマッピングのセットへの識別子である。別の実施形態では、どのマッピングを適用するかの指示は、マッピング自体を、例えばマッピングに関連付けられたアクセスユニットに含まれる復号順のVCLNALユニットのサブピクチャシーケンス識別子のリストとして含む。
【0242】
一実施形態によれば、デコーダは、VCL NALユニットまたは画像セグメントのサブピクチャまたはサブピクチャシーケンスを、以下のように判断する。
- アクセスユニットの開始が、符号化仕様で指定されているように判断されるか、または新しい時間インスタンスの開始が、パケット化またはコンテナファイル仕様で指定されているように判断される。
- 任意の前の実施形態に従って、アクセスユニットまたは時間インスタンスに適用されるマッピングが判断される。
- 復号順の各VCL NALユニットまたは画像セグメントについて、それぞれのサブピクチャシーケンスまたはサブピクチャが、マッピングから判断される。
【0243】
例示的な一実施形態を、以下の設計上の決定事項と共に以下に示す。
- マッピングは、シーケンスパラメータセットで指定される。
- マッピングは、VCL NALユニットをサブピクチャシーケンスにマッピングするように指定される。
- 特定のアクセスユニットまたはタイムインスタンスにどのマッピングを適用するかの指示は、タイルグループヘッダにおいて行う。
【0244】
他の設計上の決定事項、例えば、コンテナ構文構造、VCL NALユニットではなく画像セグメントのマッピング、およびサブピクチャシーケンスではなくサブピクチャのマッピングによる他の実施形態も同様に実現できることを理解されたい。
【0245】
【表1】
【0246】
構文要素のセマンティクスは、次のように指定されてもよい。0に等しいnum_subpic_patternsは、サブピクチャベースの復号が使用されていないことを指定する。0より大きいnum_subpic_patternsは、VCL NALユニットからサブピクチャシーケンス識別子へのマッピングの数を指定する。subpic_seq_id_len_minus1 plus 1は、subpic_seq_id[i][j]構文要素の長さをビット単位で指定する。num_vcl_nal_units_minus1[i]plus 1は、i番目のマッピングでマッピングされるVCN LALユニットの数を指定する。subpic_seq_id[i][j]は、i番目のマッピングに関連付けられたアクセスユニット内の復号順でj番目のVCL NALユニットのサブピクチャシーケンス識別子を指定する。
【0247】
【表2】
【0248】
subpic_pattern_idxのセマンティクスは、次のように指定されてもよい。subpic_pattern_idxは、VCLNALユニットからこのアクセスユニットに適用されるサブピクチャシーケンス識別子へのマッピングのインデックスを指定する。subpic_pattern_idxは、同じアクセスユニットのすべてのtile_group_header()構文構造で同じ値を有する必要がある場合がある。
【0249】
一実施形態によれば、特定のサブピクチャシーケンスのランダムアクセスサブピクチャは、他のサブピクチャシーケンス(特定のサブピクチャシーケンスを除く)の1つまたは複数の参照サブピクチャから予測されてもよい。次のうちの1つが必要になる場合があり、ランダムアクセスサブピクチャについて指示される場合がある。
【0250】
出力順でランダムアクセスサブピクチャ以降の任意のサブピクチャの予測が、復号順でランダムアクセスサブピクチャの前にある(同じサブピクチャシーケンスの)参照サブピクチャに依存しないように、ランダムアクセスサブピクチャを制約する必要がある場合がある。この事例は、オープンGOPランダムアクセスポイントに対応する。
【0251】
復号順でランダムアクセスサブピクチャ以降の任意のサブピクチャの予測が、復号順でランダムアクセスサブピクチャの前にある(同じサブピクチャシーケンスの)参照サブピクチャに依存しないように、ランダムアクセスサブピクチャを制約する必要がある場合がある。この事例は、クローズGOPランダムアクセスポイントに対応する。
【0252】
ランダムアクセスサブピクチャは他のサブピクチャシーケンスから予測され得るので、ランダムアクセスサブピクチャは、イントラ符号化されたピクチャで実現される同様のランダムアクセスサブピクチャよりもコンパクトである。
【0253】
サブピクチャシーケンスのストリームアクセスポイント(追加としてまたは代替としてサブピクチャシーケンスアクセスポイントとも呼ばれることがある)は、参照されたサブピクチャシーケンスがすでに以前に復号されていると仮定して、その位置以降の情報のみを使用してサブピクチャシーケンスの再生を可能にする、サブピクチャシーケンス(または同様のもの)内の位置と定義されてもよい。サブピクチャシーケンスのストリームアクセスポイントは、ランダムアクセスサブピクチャと一致するか、または同等である場合がある。
【0254】
一実施形態によれば、ビットストリームの復号の開始時に、すべてのサブピクチャシーケンスの復号が、復号処理において初期化されていないものとしてマークされる。サブピクチャがランダムアクセスサブピクチャとして符号化され(例えば、HEVCのIRAPピクチャのように)、サブピクチャシーケンス全体の予測が有効ではないとき、対応するサブピクチャシーケンスの復号は、初期化済みとしてマークされる。現在のサブピクチャがランダムアクセスサブピクチャとして符号化され(例えば、マルチレイヤHEVCの予測レイヤのIRAPピクチャのように)、予測の参照として使用されるすべてのサブピクチャシーケンスの復号が初期化済みとしてマークされているとき、現在のサブピクチャのサブピクチャシーケンスの復号は、初期化済みとしてマークされる。(例えば、アクセスユニットの場合)識別子のサブピクチャシーケンスのサブピクチャが時間インスタンスに1つも存在しないとき、対応するサブピクチャシーケンスの復号は、復号処理で初期化されないものとしてマークされる。現在のサブピクチャがランダムアクセスサブピクチャではなく、現在のサブピクチャのサブピクチャシーケンスの復号が初期化済みとしてマークされていないとき、現在のサブピクチャの復号は省略されてもよい。他の実施形態で説明するように、(例えば、ピクチャ合成データに基づいて)省略されたサブピクチャに対応する領域は、出力ピクチャ合成処理において占有されていない領域のように扱うことができる。
【0255】
上記のサブピクチャ別の復号の始動の結果として、例えばアプリケーションのニーズに応じて、サブピクチャの存在または不在を動的に選択することができる。
【0256】
ピクチャ合成データは、サブピクチャごとに以下の情報のうちの1つまたは複数を含む場合があるが、これらに限定されない。
- サブピクチャ内の有効領域の上、左、下、および右の座標。有効領域外のサンプルは、出力ピクチャ合成処理では使用されない。有効領域を示すことを活用する一例は、出力ピクチャ合成処理からガードバンドを除外することである。
- 出力ピクチャ内の合成領域の上、左、下、および右の座標。サブピクチャの1つの有効領域ごとに1つの合成領域が示される。サブピクチャの有効領域は、合成領域にマッピングされる。合成領域の寸法が有効領域と異なる場合、有効ピクチャ領域は、有効領域に一致するように再スケーリングまたは再サンプリングされる。
- 有効領域を合成領域にマッピングするための、例えば0度、90度、180度、または270度の回転。
- 有効領域を合成領域にマッピングするための、例えば垂直方向または水平方向のミラーリング。
【0257】
上に提示した以外の構文要素のための他の選択も同等に使用され得ることが理解される。例えば、有効領域および/または合成領域の座標および寸法は、領域の左上角、領域の幅、および領域の高さの座標によって示されてもよい。座標または範囲を示すための単位は、ビットストリームの中にまたはビットストリームに沿って推論または示され、かつ/またはビットストリームからまたはビットストリームに沿って復号され得ることを理解する必要がある。例えば、座標および/または範囲は、符号化ツリー単位の整数倍として示されてもよい。
【0258】
一実施形態によれば、z順序または重ね合せ順序は、エンコーダまたは別のエンティティによって、ビットストリームの中にまたはビットストリームに沿ってピクチャ合成データの一部として示されてもよい。一実施形態によれば、z順序または重ね合せ順序は、例えば、昇順のサブピクチャ識別子であるか、または同じ出力時間もしくは同じ出力順序のサブピクチャの復号順序と同じであると推論されてもよい。
【0259】
ピクチャ合成データは、サブピクチャシーケンス識別子などに関連付けられてもよい。ピクチャ合成データは、映像パラメータセット、シーケンスパラメータセット、またはピクチャパラメータセットに符号化され、かつ/またはそれらから復号されてもよい。
【0260】
ピクチャ合成データは、符号化、要求、送信、受信、および/または復号されていないサブピクチャまたはサブピクチャシーケンスを記述してもよい。これにより、符号化、要求、送信、受信、および/または復号のために、可能なまたは利用可能なサブピクチャもしくはサブピクチャシーケンスのサブセットを選択することが可能になる。
【0261】
一実施形態によるデコーダまたはプレーヤは、同じ出力時間または同じ出力順序を表す2つ以上の再構築サブピクチャを入力として取得することができる出力ピクチャ合成処理などを含んでもよい。出力ピクチャ合成処理は、復号ピクチャバッファリング処理の一部であってもよく、または復号ピクチャバッファリング処理に接続されてもよい。出力ピクチャ合成処理は、ピクチャを出力するためにデコーダがトリガされたときに呼び出されてもよい。このようなトリガは、例えば、出力ピクチャを正しい出力順序で合成できる場合、すなわち、出力順で次の再構築サブピクチャの前にある符号化映像データがビットストリーム内の現在の復号位置に続かない場合に発生してもよい。このようなトリガの別の例は、指示されたバッファリング時間が経過した場合である。
【0262】
出力ピクチャ合成処理では、ピクチャ合成データを適用して、同じ座標上または同じ出力ピクチャ領域上に前記2つ以上の再構築サブピクチャを配置する。一実施形態によれば、占有されていない出力ピクチャ領域は、決定された値に設定され、この値は、色成分ごとに別々に導出されてもよい。決定された値は、(例えば、符号化規格で事前定義された)デフォルト値、出力ピクチャ合成処理によって決定された任意の値、または、エンコーダによってビットストリームの中にまたはビットストリームに沿って示され、かつ/または、ビットストリームからまたはビットストリームに沿って復号された値であってもよい。同様に、前記2つ以上の再構築サブピクチャを出力ピクチャ領域の上に配置する前に、出力ピクチャ領域は、決定された値に初期化されてもよい。
【0263】
一実施形態によれば、デコーダは、出力ピクチャと共に、占有されていない領域を指示する。デコーダの出力インターフェースまたは出力ピクチャ合成処理は、出力ピクチャおよび占有されていない領域を示す情報を含んでもよい。
【0264】
一実施形態によれば、z順序でより後ろのサンプル配列がz順序でより前のサンプル配列の同一位置にあるサンプル値をカバーまたは置換する方法で、2つ以上の再構築サブピクチャの再サンプリングされた可能性のあるサンプル配列をz順序で出力ピクチャ上に配置することによって、出力ピクチャ合成処理の出力ピクチャが形成されてもよい。
【0265】
一実施形態によれば、出力ピクチャ合成処理は、前記2つ以上の再構築サブピクチャの復号表現を整列させることを含む。例えば、一方のサブピクチャがYUV4:2:0色差フォーマットで表され、z順序でより後ろにある他方のサブピクチャがYUV4:4:4色差フォーマットで表される場合、処理の一部として、最初のサブピクチャがYUV4:4:4にアップサンプリングされてもよい。同様に、あるピクチャがITU-R BT.709などの第1の色域またはフォーマットで表され、別のピクチャがITU-R BT.2020などの第2の色域またはフォーマットで表される場合、処理の一部として、最初のピクチャが第2の色域またはフォーマットに変換されてもよい。
【0266】
さらに、出力ピクチャ合成処理は、色表現フォーマットから別のフォーマットへの(または、同等に、ある原色のセットから別の原色のセットへの)1つまたは複数の変換を含んでもよい。目的の色表現フォーマットは、例えば、使用中のディスプレイに基づいて選択されてもよい。例えば、出力ピクチャ合成処理は、YUVからRGBへの変換を含んでもよい。
【0267】
最終的に、前記2つ以上の再構築サブピクチャのすべてが上記のように処理されるとき、結果として生じる出力ピクチャは、例えばビューポート用のコンテンツを生成するために、表示されるかまたは表示処理で使用されるピクチャを形成してもよい。
【0268】
出力ピクチャ合成処理は、上記のステップ以外のステップを追加として含む場合があること、また上記のステップのうちいくつかのステップがない場合があることを理解されたい。代替としてまたは追加として、出力ピクチャ合成処理の説明したステップは、上記とは別の順序で実行されてもよい。
【0269】
現在のサブピクチャと(異なるサブピクチャシーケンスからの)参照サブピクチャとの間の空間的対応関係は、以下に説明する空間関係情報を使用して、エンコーダによって指示され、かつ/またはデコーダによって復号されてもよい。
【0270】
一実施形態によれば、空間関係情報がない場合、現在のサブピクチャと参照サブピクチャが同一位置にあると推論されてもよい。
【0271】
一実施形態によれば、空間関係情報は、参照サブピクチャ内の現在のサブピクチャの左上サンプルの位置を示す。現在のサブピクチャの左上サンプルは、参照サブピクチャの外側の位置に対応する(例えば、負の水平座標および/または垂直座標を有する)ように示され得ることに留意されたい。同様に、現在のサブピクチャの下および/または右側のサンプルは、参照サブピクチャの外側に位置していることがある。現在のサブピクチャが、参照サブピクチャの外側にあるサンプルまたは復号された変数値(例えば、動きベクトル)を参照している場合、現在のサブピクチャは予測に利用できないと見なされることがある。
【0272】
一実施形態によれば、空間関係情報は、現在のサブピクチャ内の参照サブピクチャの示されたまたは推論されたサンプル位置(例えば、参照サブピクチャの左上サンプル位置)の位置を示す。参照サブピクチャの指示されたまたは推論されたサンプル位置は、現在のサブピクチャの外側の位置に対応する(例えば、負の水平座標および/または垂直座標を有する)ように示され得ることに留意されたい。同様に、参照サブピクチャのいくつかのサンプル位置、例えば下および/または右側のサンプルは、現在のサブピクチャの外側に位置していることがある。現在のサブピクチャが、参照サブピクチャの外側にあるサンプルまたは復号された変数値(例えば、動きベクトル)を参照している場合、現在のサブピクチャは予測に利用できないと見なされることがある。異なるサブピクチャシーケンスのサブピクチャは、同じまたは異なる空間関係情報を使用する予測の参照として同じ参照サブピクチャを使用できることに留意されたい。参照サブピクチャの指示されたまたは推論されたサンプル位置は、現在のサブピクチャ内の部分位置に対応するように示され得ることにも留意されたい。この場合、参照サブピクチャは、現在のサブピクチャを再サンプリングすることによって生成される。
【0273】
一実施形態によれば、空間関係情報は、参照サブピクチャ内の現在のサブピクチャの4つの角(例えば、左上、右上、左下、右下)のサンプルの位置を示す。参照サブピクチャ内の現在のピクチャの各サンプルの対応する位置は、例えば双一次補間法を使用して算出されてもよい。
【0274】
一実施形態によれば、空間的対応関係が水平方向および/もしくは垂直方向にラップアラウンド方式で適用されることが、エンコーダおよび/もしくはデコーダによって推論されるか、エンコーダによってビットストリームの中にまたはビットストリームに沿って示されるか、かつ/またはデコーダによってビットストリームからまたはビットストリームに沿って復号されてもよい。エンコーダは、例えばサブピクチャが360度のピクチャ全体をカバーし、両方のビューのサブピクチャシーケンスがビットストリームに存在する場合、このようなラップアラウンド対応を示してもよい。ラップアラウンド対応が使用されており、参照サブピクチャの境界の外側のサンプル位置が復号処理で参照される場合、参照されるサンプル位置は、参照サブピクチャの反対側に(どの境界を越えるかに応じて)水平または垂直にラップアラウンドされてもよい。
【0275】
一実施形態によれば、現在のサブピクチャと2つ以上の参照サブピクチャとの間の空間的対応関係を示すための空間関係情報の2つ以上のインスタンスを、エンコーダが生成し、かつ/またはデコーダが復号する。
【0276】
一実施形態によれば、現在のサブピクチャと(異なるサブピクチャシーケンスからの)参照サブピクチャとの間の2つ以上の空間的対応関係を示すための空間関係情報の2つ以上のインスタンスを、エンコーダが生成し、かつ/またはデコーダが復号する。上記の実施形態のいずれも、空間関係情報のインスタンスを記述するために使用されてもよい。空間関係情報のインスタンスごとに、エンコーダおよび/またはデコーダにおいて、1つまたは複数の参照ピクチャリスト内の別個の参照ピクチャインデックスが生成されてもよい。例えば、参照ピクチャリストの初期化は、参照サブピクチャが初期参照ピクチャリストに含まれる回数が参照サブピクチャに関する空間関係情報のインスタンスの数に等しくなり得ることを含めることを含む。エンコーダは、インター予測の参照を示すとき、対応する参照インデックスを使用して、空間関係情報の特定のインスタンスに関連付けられた参照サブピクチャの使用を示してもよい。それぞれ、デコーダは、インター予測の参照として使用される参照インデックスを復号し、その参照インデックスに対応する空間関係情報の特定のインスタンスを判断し、空間関係情報の判断された特定のインスタンスに関連付けられた参照サブピクチャをインター予測の参照として使用してもよい。本実施形態は、例えば、参照サブピクチャが現在のサブピクチャよりも大きく、現在のサブピクチャの異なる境界でのオブジェクトの動きが異なる方向にあるとき(空間的にその方向がサブピクチャの外側に向かっているとき)に使用されてもよい。したがって、各境界について、空間関係情報の様々なインスタンスを用いた様々な参照が役立つ可能性がある。
【0277】
一実施形態によれば、利用できないサンプルは、サブピクチャの反対側からコピーされてもよい。これは、特に360度映像で有用である可能性がある。
【0278】
一実施形態によれば、アクセスユニットは、同じ時間インスタンスのサブピクチャを含み、単一のアクセスユニットの符号化映像データは、復号順で連続しており、他のアクセスユニットの符号化データのいずれとも復号順で交互には配置されない。別の実施形態では、同じ時間インスタンスのサブピクチャは、復号順で連続している必要はない。
【0279】
別の実施形態によれば、同じ時間インスタンスのサブピクチャは、復号順で連続している必要はない。この実施形態は、例えば、以前は低いピクチャレートで復号されたが現在はより高いピクチャレートで復号されるサブピクチャシーケンスのいくつかのサブレイヤの遡及的復号に使用されてもよい。サブピクチャシーケンスのための複数のピクチャレートまたは異なる数のサブレイヤに対するこのような動作は、以下の別の実施形態でさらに説明する。
【0280】
一実施形態によれば、すべてのサブピクチャシーケンスに、同じ時間インスタンスのサブピクチャが存在する。言い換えると、1つのサブピクチャシーケンスが特定の時間インスタンスのサブピクチャを有する場合、他のすべてのサブピクチャもまた、その時間インスタンスのサブピクチャを有する。エンコーダは、すべてのサブピクチャシーケンスに同じ時間インスタンスのサブピクチャが存在するかどうかを、例えばVPS(映像処理システム)において、ビットストリームの中にまたはビットストリームに沿って示してもよく、かつ/またはデコーダは、それが存在するかどうかをビットストリームからまたはビットストリームに沿って復号してもよい。別の実施形態によれば、サブピクチャシーケンスに、時間インスタンスが少なくとも部分的に異なるサブピクチャが存在してもよい。例えば、サブピクチャシーケンスは、互いに異なるピクチャレートを有してもよい。
【0281】
一実施形態によれば、すべてのサブピクチャシーケンスが、同じ予測構造を有し、同じ時間インスタンスのサブピクチャを有し、同じ時間インスタンスのサブピクチャを参照として使用してもよい。エンコーダは、すべてのサブピクチャシーケンスが同じ予測構造を有するかどうかを、例えばVPSにおいて、ビットストリームの中にまたはビットストリームに沿って示してもよく、かつ/またはデコーダは、ビットストリームからまたはビットストリームに沿ってそれを復号してもよい。
【0282】
一実施形態によれば、サブピクチャシーケンスの参照ピクチャマーク付けは、他のサブピクチャシーケンスに依存しない。これは、例えば、異なるサブピクチャシーケンスに対して別個のSPS(シーケンスパラメータセット)およびPPS(ピクチャパラメータセット)を使用することによって実現されてもよい。
【0283】
別の実施形態によれば、すべてのサブピクチャシーケンスに対する参照ピクチャマーク付けが同期される。言い換えると、単一の時間インスタンスのすべてのサブピクチャは、すべて「参照に使用」としてマークされるか、すべて「参照に不使用」としてマークされる。一実施形態では、参照ピクチャマーク付けに影響を与える構文構造は、サブピクチャ用のVCL NALユニットなどのサブピクチャ固有のデータユニットに含まれ、かつ/またはサブピクチャ固有のデータユニットによって参照される。別の実施形態では、参照ピクチャマーク付けに影響を与える構文構造は、ピクチャヘッダ、ヘッダパラメータセットなどのピクチャ固有のデータユニットに含まれ、かつ/またはピクチャ固有のデータユニットによって参照される。
【0284】
一実施形態によれば、ビットストリームまたはCVS(符号化映像シーケンス)特性は、2つのレベルで、すなわち、サブピクチャシーケンスごとに、またすべてのサブピクチャシーケンス(すなわち、すべての符号化映像データ)に対して集合的に示される。特性には、符号化プロファイル、レベル、HRDパラメータ(例えば、CPBおよび/またはDPBサイズ)、符号化に適用された制約が含まれ得るが、これらに限定されない。サブピクチャシーケンスごとの特性は、サブピクチャシーケンスに適用される構文構造で示されてもよい。すべてのサブピクチャシーケンスに集合的に適用される特性は、CVS全体またはビットストリームに適用される構文構造で示されてもよい。
【0285】
一実施形態によれば、2つのレベル、すなわちサブピクチャシーケンスごとの、またすべてのサブピクチャシーケンス(すなわち、すべての符号化映像データ)対して集合的なビットストリームまたはCVS(符号化映像シーケンス)特性が復号される。特性には、符号化プロファイル、レベル、HRDパラメータ(例えば、CPBおよび/またはDPBサイズ)、符号化に適用された制約が含まれ得るが、これらに限定されない。デコーダまたはクライアントは、すべてのサブピクチャシーケンスに対して集合的に示された特性から、デコーダまたはクライアントがビットストリーム全体を処理できるかどうかを判定してもよい。デコーダまたはクライアントは、個々のサブピクチャシーケンスに対して示された特性から、デコーダまたはクライアントがどのサブピクチャシーケンスを処理できるかを判定してもよい。
【0286】
一実施形態によれば、
- 動きベクトルがサブピクチャ境界を越えてサンプル位置への参照を引き起こさない場合、または
- 動きベクトルがサブピクチャ境界を越えてサンプル位置への参照を引き起こす場合
について、例えばSPSにおいて、ビットストリームの中にまたはビットストリームに沿って示され、かつ/またはビットストリームからまたはビットストリームに沿って復号される。
【0287】
一実施形態によれば、サブピクチャシーケンスごとの特性および/またはすべてのサブピクチャシーケンスに対して集合的に適用される特性は、サブピクチャシーケンスおよび/またはすべてのサブピクチャシーケンスに適用可能なサンプルカウントおよび/またはサンプルレート制限に関する情報を提供する。
- 動きベクトルがサブピクチャ境界を越えてサンプル位置への参照を引き起こさないという条件の下では、サブピクチャ境界上のサンプル位置は除外される。
- 動きベクトルがサブピクチャ境界を越えてサンプル位置への参照を引き起こす可能性があるという条件の下では、参照される可能性のあるサブピクチャ境界上のサンプル位置が含まれる。
【0288】
一実施形態によれば、サブピクチャおよび/またはサブピクチャシーケンスに関連するパラメータは、ピクチャパラメータセットに符号化され、かつ/またはピクチャパラメータセットから復号される。同じピクチャ、アクセスユニット、または時間インスタンスのサブピクチャは、異なるピクチャパラメータセットを参照することができるが、必ずしも必要ではない。
【0289】
一実施形態によれば、サブピクチャの幅および高さを示す情報は、ピクチャパラメータセットに示され、かつ/またはピクチャパラメータセットから復号される。例えば、サブピクチャの幅および高さは、CTUの単位で示され、かつ/または復号されてもよい。ピクチャパラメータセットの構文構造は、次の構文要素を含んでもよい。
【0290】
【表3】
【0291】
構文要素のセマンティクスは、次のように指定されてもよい。0に等しいmultiple_subpics_enabled_flagは、ピクチャが厳密に1つのサブピクチャを含み、アクセスユニットのすべてのVCL NALユニットが同じアクティブPPSを参照することを指定する。1に等しいmultiple_subpics_enabled_flagは、ピクチャが2つ以上のサブピクチャを含む可能性があり、各サブピクチャが異なるアクティブPPSを参照する可能性があることを指定する。subpic_width_in_ctus_minus1 plus 1が存在する場合、このPPSがアクティブPPSであるサブピクチャの幅を指定する。subpic_height_in_ctus_minus1 plus 1が存在する場合、このPPSがアクティブPPSであるサブピクチャの高さを指定する。アクティブ化されたPPSに、subpic_width_in_ctus_minus1およびsubpic_height_in_ctus_minus1が存在する場合、ピクチャの寸法に関連する変数はそれらに基づいて導出され、SPSの構文要素から導出されたそれぞれの変数をオーバーライドしてもよい。
【0292】
サブピクチャの幅および高さを示す情報は、上記で詳細に説明したものとは異なる方法で実現され得ることを理解する必要がある。第1の例では、PPSは、すべてのタイル行およびタイル列のタイル行の高さおよびタイル列の幅をそれぞれ含む場合があり、サブピクチャの高さおよび幅は、それぞれすべてのタイル列の高さおよび幅の合計である。第2の例では、サブピクチャの幅および高さは、最小符号化ブロックサイズの単位で示され、かつ/または復号されてもよい。この選択肢により、最後のタイル列および最後のタイル行の粒度をより細かくすることが可能になる。
【0293】
一実施形態によれば、サブピクチャシーケンスに関連するパラメータは、サブピクチャパラメータセットに符号化され、かつ/またはサブピクチャパラメータセットから復号される。単一のサブピクチャパラメータセットは、2つ以上のサブピクチャシーケンスのサブピクチャによって使用されてもよいが、すべてのサブピクチャシーケンスによって使用される必要はない。サブピクチャパラメータセットは、例えば、HEVCなどの従来の映像符号化のためのピクチャパラメータセットに含まれるものと同様の情報を含んでもよい。例えば、サブピクチャパラメータセットは、サブピクチャパラメータセットを参照して、サブピクチャの符号化画像セグメントにおいてどの符号化ツールが有効であるかを示してもよい。同じ時間インスタンスのサブピクチャは、異なるサブピクチャパラメータセットを参照してもよい。ピクチャパラメータセットは、空間関係情報などの2つ以上のサブピクチャシーケンスまたはサブピクチャ全体に集合的に適用されるパラメータを示してもよい。
【0294】
一実施形態によれば、サブピクチャシーケンスは、コンテナファイル内のトラックとしてカプセル化される。コンテナファイルは、サブピクチャシーケンスの複数のトラックを含んでもよい。別のサブピクチャシーケンスからのサブピクチャシーケンスの予測は、トラック参照などのファイルフォーマットのメタデータを介して示されてもよい。
【0295】
一実施形態によれば、サブピクチャシーケンスの選択されたサブレイヤは、トラックとしてカプセル化される。例えば、サブレイヤ0は、トラックとしてカプセル化されてもよい。サブレイヤ別のカプセル化によって、レンダリングに必要のないトラックのサブレイヤのサブセットの要求、送信、受信、および/または復号が可能になる場合がある。
【0296】
一実施形態によれば、1つまたは複数のコレクタトラックが生成される。コレクタトラックは、どのサブピクチャトラックが一緒に消費されるのに適しているかを示す。サブピクチャトラックは、消費される代替物を含むグループにグループ化されてもよい。例えば、グループごとに1つのサブピクチャトラックを任意の時間範囲で消費することを目的としてもよい。コレクタトラックは、サブピクチャトラックおよび/またはサブピクチャトラックのグループのいずれかまたは両方を参照してもよい。コレクタトラックは、VCL NALユニットなどの符号化映像コンテンツを変更するための命令を含まない場合がある。一実施形態では、コレクタトラックの生成は、以下の情報の1つまたは複数を作成および記憶することを含むが、これらに限定されない。
- コレクタトラックが解決されたときに適用されるパラメータセットおよび/またはヘッダ。例えば、シーケンスパラメータセット、ピクチャパラメータセット、ヘッダパラメータセット、および/またはピクチャヘッダが生成されてもよい。例えば、コレクタトラックは、そのサブピクチャがランダムアクセスピクチャと非ランダムアクセスピクチャの両方に由来し得る場合に、またはランダムアクセスサブピクチャタイプと非ランダムアクセスサブピクチャタイプの両方であり得る場合にピクチャに適用されるピクチャヘッダを含んでもよい。
- ピクチャ合成データ
- コレクタトラックから解決されたサブピクチャシーケンスに集合的に適用されるビットストリームまたはCVS(符号化映像シーケンス)特性。特性には、符号化プロファイル、レベル、HRDパラメータ(例えば、CPBおよび/またはDPBサイズ)、符号化に適用された制約が含まれ得るが、これらに限定されない。
【0297】
一実施形態では、コレクタトラック内のサンプルは、関連するサブピクチャトラックの複数のサンプルに関係する。例えば、関連するサブピクチャトラックの複数のサンプルに関係するコレクタトラックのサンプル持続時間を選択することによって、同じパラメータセットおよび/もしくはヘッダ、ならびに/または同じピクチャ合成データが関連するサブピクチャトラックの時間期間に適用されることを示すことができる。
【0298】
一実施形態によれば、クライアントなどは、利用可能な1つまたは複数のコレクタトラックを識別する。
- コレクタトラックは、どのサブピクチャトラックが一緒に消費されるのに適しているかを示す。
- コレクタトラックは、サブピクチャトラックおよび/またはサブピクチャトラックのグループ(例えば、任意の時間範囲で消費するための選択対象とされている代替サブピクチャトラックを含むグループ)のいずれかまたは両方を参照してもよい。
- コレクタトラックは、VCL NALユニットなどの符号化映像コンテンツを変更するための命令を含まない場合がある。
【0299】
一実施形態では、クライアントなどは、1つまたは複数のコレクタトラック、または1つまたは複数のコレクタトラックに付随する情報から、以下の情報の1つまたは複数を解析する。
- コレクタトラックが解決されたときに適用されるパラメータセットおよび/またはヘッダ
- ピクチャ合成データ
- コレクタトラックから解決されたサブピクチャシーケンスに集合的に適用されるビットストリームまたはCVS(符号化映像シーケンス)特性。特性には、符号化プロファイル、レベル、HRDパラメータ(例えば、CPBおよび/またはDPBサイズ)、符号化に適用された制約が含まれ得るが、これらに限定されない。
【0300】
一実施形態では、クライアントなどは、消費される1つまたは複数のコレクタトラックからコレクタトラックを選択する。この選択は、上記に挙げた情報に基づいてもよいが、これらに限定されない。
【0301】
一実施形態では、クライアントなどは、コレクタトラックを解決して、復号のためのビットストリームを生成する。少なくともコレクタトラックに含まれるまたはコレクタトラックに付随する情報のサブセットが、復号のためのビットストリームに含まれてもよい。ビットストリームは、区分的に、例えばアクセスユニットごとに生成されてもよい。次いで、ビットストリームは復号されてもよく、復号は、区分的に、例えばアクセスユニットごとに実行されてもよい。
【0302】
コレクタトラックに関連して説明した実施形態は、異なる呼び方をされるが本質的に同じ性質を有するトラックに等しく適用されることを理解されたい。例えば、コレクタトラックの代わりとして、トラックに含まれる情報がVCLデータではなくパラメータまたはパラメータセットと見なされる可能性があるため、パラメータセットトラックという用語が使用される可能性がある。
【0303】
一実施形態によれば、サブピクチャシーケンスは、コンテナファイルの選択されたトラックからカプセル化解除される。選択されたトラックのサンプルは、符号化フォーマットまたは符号化規格に準拠する復号順に配置され、その後、デコーダに渡されてもよい。例えば、第1のサブピクチャから第2のサブピクチャが予測される場合、第1のサブピクチャは、復号順で第2のサブピクチャの前に配置される。
【0304】
一実施形態によれば、サブピクチャシーケンスを含む各トラックは、MPDにおいて表現を形成する。適応セットは、同一位置にあるサブピクチャシーケンストラックのグループごとに生成され、またそれ以外は、例えば単一のデコーダインスタンスで適応セットの表現間の切替えが可能であるように、同じ特性を共有する。
【0305】
一実施形態によれば、別のサブピクチャシーケンスからのサブピクチャシーケンスの予測は、DASH MPDにおける@dependencyIdなどのストリーミングマニフェストメタデータを介して示されてもよい。
【0306】
一実施形態によれば、適応セットのグループの指示は、MPDに生成され、適応セットは、サブピクチャシーケンスを保持する表現を含み、サブピクチャシーケンスは、単一のデコーダで復号できるようなものである。一実施形態によれば、クライアントは、指示されたグループから、その相補的表現も組合せに含まれる選択された従属表現の任意の組合せ、および任意の選択された独立表現または相補的表現を復号できると推論する。
【0307】
一実施形態によれば、クライアントは、例えば、上記の示されたグループ、推定スループット、使用例のニーズ(例えば、ビューポート依存ストリーミングに関する以下の実施形態を参照)に基づいて、どの表現の(サブ)セグメントから要求するかを選択する。
【0308】
一実施形態によれば、サブピクチャは、スケーラブル映像符号化の2つ以上のレイヤ上に符号化され、かつ/またはそれから復号される。一実施形態では、レイヤ間予測のための参照ピクチャは、出力ピクチャ合成処理によって生成されたピクチャを含む。別の実施形態では、レイヤ間予測は、参照レイヤの再構築サブピクチャから拡張レイヤのサブピクチャへと実行される。
【0309】
一実施形態によれば、サブピクチャシーケンスは、スケーラビリティ映像符号化のレイヤに対応する。実施形態は、例えば、品質スケーラビリティ、関心領域スケーラビリティ、またはビュースケーラビリティ(すなわち、マルチビューまたは立体視映像符号化)を実現するために使用することができる。したがって、マルチレイヤ符号化は、サブピクチャベースの符号化に置き換えられてもよい。サブピクチャベースの符号化は、スケーラブル映像符号化と比較して、多くの使用例においてより有利な場合がある。例えば、説明した多くの実施形態により、多数のサブピクチャシーケンスが可能になり、これは、例えば、パッチの生成が動的に適応される点群符号化またはボリューム映像符号化において有利な場合がある。対照的に、スケーラブル映像符号化では、従来、(例えば、HEVCのnuh_layer_id構文要素のビット数によって決定される)固定された最大レイヤ数を想定している。さらに、説明した多くの実施形態により、予測のためにサブピクチャおよび参照サブピクチャの符号化(復号)順序の動的選択が可能になる一方で、スケーラブル映像符号化では、従来、(アクセスユニット内の)レイヤの符号化(復号)順序が固定されており、また符号化映像シーケンス内で許可されるレイヤ間依存関係のセットが固定されている。
【0310】
実施形態は、サブピクチャまたはサブピクチャシーケンスを以下のいずれかとして選択(符号化)および/または復号する際に使用されてもよいが、これらに限定されない。
- 通常の単一ビュー2D映像のピクチャ全体(この場合、各ピクチャは1つのサブピクチャのみを有する)
- 映像の空間パーティショニングのパーティション。パーティションは、符号化画像セグメントに対応してもよい
- 映像の時空間パーティショニングのパーティション。時空間パーティションは、様々な使用例においてMCTSと同様に選択されてもよい
- 上記の立体視映像またはマルチビュー映像のビュー
- 上記のマルチレイヤ(スケーラブル)映像のレイヤ
- 多面360度投影(例えば、立方体マップ)の面などの360度投影の投影構造の表面
- 領域別パッキング情報によって示されるパッキング済み領域
- 映像の多重解像度パッキングの空間的に隣接する単一解像度部分(例えば、多重解像度ERPまたはCMP)
- 表面に投影された点群の一部またはパッチ(テクスチャまたは深さ)。サブピクチャシーケンスは、後続の時間インスタンスでそれぞれのパッチを含んでもよい
- 他の領域よりも高い解像度でサブピクチャとして符号化された1つまたは複数の関心領域
- 異なるソース(例えば、異なるカメラ)からの符号化映像を、1つのビットストリーム内のサブピクチャシーケンスとして集約すること。これは、例えば、多地点ビデオ会議に使用されてもよい
【0311】
以下のいくつかの例示的な実施形態では、例えば、ビューポート依存360度映像ストリーミング、スケーラブル映像、マルチビュー映像、および立体視映像の符号化、オーバーラップを伴う多面コンテンツの符号化、点群コンテンツの符号化の観点から、サブピクチャベースの符号化(復号)の使用について説明する。
【0312】
ビューポート依存360度映像ストリーミング
【0313】
一実施形態によれば、符号化サブピクチャシーケンスは、コンテナファイルのトラックにカプセル化されてもよく、トラックは、セグメントおよび/またはサブセグメントにパーティショニングされてもよく、要求を通じて(サブ)セグメントを利用可能にし、符号化サブピクチャシーケンスの特性を通知するために、ストリーミングマニフェスト(例えば、MPEG-DASH MPD)において、表現が作成されてもよい。前の文の処理は、符号化サブピクチャシーケンスのそれぞれに対して実行されてもよい。
【0314】
一実施形態によれば、クライアント装置は、複数の表現のマニフェスト情報から解析し、マニフェストから、複数の表現のそれぞれの球形領域を解析するように構成されてもよい。クライアント装置はまた、マニフェストから、球形領域の品質および/または球形領域もしくはそれらの2D投影の解像度情報を示す値を解析してもよい。クライアント装置は、どの表現がその使用に適しているかを判定する。例えば、クライアント装置は、ヘッドマウントディスプレイを使用しているときに頭の向きを検出し、ビューポートをカバーするために、他の領域に対して選択された表現よりも高品質の表現を選択するための手段を含んでもよい。選択の結果として、クライアント装置は、選択された表現の(サブ)セグメントを要求してもよい。
【0315】
一実施形態によれば、サブピクチャシーケンスを使用して、同じコンテンツが複数の解像度および/またはビットレートで符号化される。例えば、360度コンテンツの様々な部分が様々な表面に投影されてもよく、投影された面は、様々な解像度にダウンサンプリングされてもよい。例えば、現在のビューポートにない面は、低解像度にダウンサンプリングされてもよい。各面は、サブピクチャとして符号化されてもよい。
【0316】
一実施形態によれば、サブピクチャシーケンスを使用して、同じコンテンツが異なるランダムアクセス間隔で符号化される。
【0317】
一実施形態によれば、視聴の向きの変更により、表現の以前とは部分的に異なる選択が要求される。要求される新しい表現が要求されるか、またはそれらの復号が、表現で保持されるサブピクチャシーケンス内の次のランダムアクセス位置から開始されてもよい。サブピクチャシーケンスがいくつかのランダムアクセス間隔で利用可能になると、頻度が少ないランダムアクセス位置を有するそれぞれの表現から、ランダムアクセス位置を有する同様の品質の次の(サブ)セグメントが利用可能になるまで、より頻繁なランダムアクセス位置を有する表現が、視聴の向きの変更に対する応答として要求されてもよい。視聴の向きの変更に対する応答として変更する必要のない表現は、ランダムアクセス位置を有する必要はない。すでに前に説明したように、サブピクチャは異なるサブピクチャタイプまたはNALユニットタイプを有することが可能である場合がある。例えば、特定のアクセスユニットまたは時間インスタンスのサブピクチャは、ランダムアクセスタイプとすることができ、同じ特定のアクセスユニットまたは時間インスタンスの別のサブピクチャは、非ランダムアクセスタイプとすることができる。したがって、異なるランダムアクセス間隔を有するビットストリームのサブピクチャが組み合わされてもよい。
【0318】
一実施形態によれば、サブピクチャシーケンス間で、共有符号化サブピクチャが符号化される。共有符号化サブピクチャは、それらの符号化形式(例えば、VCL NALユニットが同一である)とそれらの再構築形式(再構築サブピクチャが同一である)との両方において、異なるビットレートのそれぞれのサブピクチャシーケンスで同一である。
【0319】
一実施形態によれば、共有符号化サブピクチャは、それ自体のサブピクチャシーケンスで符号化される。
【0320】
一実施形態では、共有符号化サブピクチャは、デコーダによって出力されないように(例えば、エンコーダによって)ビットストリームの中にまたはビットストリームに沿って示され、かつ/またはデコーダによって出力されないようにビットストリームからまたはビットストリームに沿って復号される。
【0321】
共有符号化サブピクチャは、個別の表現として利用可能にされてもよく、または「通常の」表現に含まれてもよい。共有符号化サブピクチャが個別の表現として利用可能になると、クライアント装置はそれらの表現を常に要求および受信することができる。
【0322】
視聴の向きに応じた上記の選択処理は、共有符号化サブピクチャが使用されている場合に適用され、異なる点として、共有符号化サブピクチャは、ランダムアクセス位置で表現を切り替える機能に加えて、その機能も提供する。
【0323】
図12は、多重解像度ビューポート依存360度映像ストリーミングのために共有符号化サブピクチャを使用する一例を示す。
【0324】
立方体マップコンテンツは再サンプリングされた後で、3つの解像度(A、B、C)に符号化される。立方体マップ投影は、実施形態を実現することができる1つの可能な選択として意図されているが、一般に、他の投影フォーマットを同様に使用できることを理解する必要がある。この例では、各解像度のコンテンツは同等の寸法のサブピクチャに分割されているが、一般に異なるサイズを使用することもできる。
【0325】
この例では、(Sという文字を含む矩形で示された)共有符号化サブピクチャが定期的に符号化されるが、共有符号化サブピクチャを符号化する様々な戦略を追加としてまたは代替として使用できることを理解する必要がある。例えば、シーンカットを検出することができ、検出されたシーンカットのために、IRAPピクチャなどを符号化することができ、共有符号化サブピクチャを符号化するための期間を、IRAPピクチャなどでリセットすることができる。
【0326】
この例では、共有符号化サブピクチャは、同じサブピクチャシーケンス内の(図では縞模様の矩形で示された)「通常の」サブピクチャで符号化されている。共有符号化サブピクチャおよびそれぞれの「通常の」サブピクチャは、例えば、異なる復号時間での、異なるピクチャ順序カウントでの、かつ/または異なるアクセスユニットに属する、ビットストリーム内の概念的に異なるユニットを表す。別の実施形態では、共有符号化サブピクチャのシーケンスは、それ自体のサブピクチャシーケンスを形成することができ、そこから、それぞれの「通常の」サブピクチャシーケンスを予測することができる。あるサブピクチャシーケンス(この例では共有符号化サブピクチャシーケンス)から別のサブピクチャシーケンスへの予測が可能である場合、共有符号化サブピクチャおよび同じ入力ピクチャからのそれぞれの「通常の」サブピクチャは、時間インスタンスに属することができる(例えば、同じアクセスユニットの一部である)。
【0327】
この例では、共有符号化サブピクチャの寸法は、それぞれの「通常の」サブピクチャと同じである。別の実施形態では、共有符号化サブピクチャの寸法は、異なる可能性がある。例えば、共有符号化サブピクチャは、立方体マップの立方体面全体またはすべての立方体面をカバーすることができ、空間関係情報を使用して、「通常の」サブピクチャが共有符号化サブピクチャに空間的にどのように関連するかを示すことができる。この手法の利点は、「通常の」サブピクチャと比較した場合に、共有符号化サブピクチャ内および共有符号化サブピクチャ間のより広い領域にわたる予測が可能になることである。
【0328】
クライアント装置は、以下を選択、要求、受信、および復号することができる。
- すべての所望の解像度の共有符号化サブピクチャA00..A95、B00..B23、およびC0..C5
- (サブピクチャベースで)選択されたビットレートの他の符号化ピクチャのサブピクチャの任意のサブセット(サブピクチャベース)
【0329】
一実施形態によれば、360度映像を表すサブピクチャシーケンスは、「基本」の忠実度または品質で符号化され、したがって、サブピクチャシーケンスは、基本サブピクチャシーケンスと呼ばれることがある。このサブピクチャシーケンスは、共有符号化サブピクチャを保持すると見なされてもよい。さらに、360度映像の時空間サブセットを表す1つまたは複数のサブピクチャシーケンスは、基本の忠実度または品質よりも高い忠実度または品質で符号化される。例えば、投影ピクチャ領域またはパッキング済みピクチャ領域は、矩形にパーティショニングされてもよく、矩形の各シーケンスは、「関心領域」サブピクチャシーケンスとして符号化されてもよい。ROIサブピクチャシーケンスは、基本サブピクチャシーケンスおよび同じROIサブピクチャシーケンスの参照サブピクチャから予測されてもよい。空間関係情報は、基本サブピクチャシーケンスとROIサブピクチャシーケンスとの空間的対応関係を示すために使用される。例えば、異なるビットレートまたは解像度に対して、同じ空間位置のいくつかのROIサブピクチャシーケンスを符号化することができる。
【0330】
一実施形態では、基本サブピクチャシーケンスは、ROIサブピクチャシーケンスと同じピクチャレートを有し、したがって、ROIサブピクチャシーケンスは、360度映像のサブセット、例えば視聴の向きの変更のために選択されたマージンを有するビューポートをカバーするように選択することができる。別の実施形態では、基本サブピクチャシーケンスは、ROIサブピクチャシーケンスよりも低いピクチャレートを有し、したがって、ROIサブピクチャシーケンスは、360度映像全体をカバーするように選択することができる。視聴の向きの変更のために選択されたマージンを有するビューポートは、球体カバレッジの残りをカバーするROIサブピクチャシーケンスよりも高品質のROIサブピクチャシーケンスから要求、送信、受信、および/または復号されるように選択できる。
【0331】
いくつかの解決策では、基本サブピクチャシーケンスが常に受信され、復号される。さらに、現在の視聴の向きに基づいて選択されたROIサブピクチャシーケンスが受信され、復号される。
【0332】
ROIサブピクチャシーケンスのランダムアクセスサブピクチャは、基本サブピクチャシーケンスから予測されてもよい。基本サブピクチャシーケンスは恒常的に受信および復号されるので、基本サブピクチャシーケンスのランダムアクセスサブピクチャ間隔(すなわち、SAP間隔)は、ROIサブピクチャシーケンスの間隔よりも長くなる可能性がある。符号化方法により、そのROIサブピクチャシーケンスのSAP位置で別のROIサブピクチャシーケンスを要求ならびに/または受信および/もしくは復号することへの切替えが容易になる。そのROIサブピクチャシーケンスの復号を開始するためにそのROIサブピクチャシーケンスにおけるイントラ符号化サブピクチャは必要とされず、その結果、従来の手法と比較して圧縮効率が向上する。
【0333】
ビューポート依存360度ストリーミングにおいて本発明を使用する利点には、以下が含まれる。
- サブピクチャシーケンスのどのセットが受信されるかまたは復号に渡されるかにかかわらず、サブピクチャシーケンスを変更なしで復号できるので、ビューポート依存ストリーミングでMCTSをマージするために、エクストラクタトラックまたはタイルベーストラックを必要としない。これにより、コンテンツ作成の負担が軽減され、クライアントの動作が簡素化される。
- サブピクチャシーケンスのどのセットが受信されるかまたは復号に渡されるかにかかわらず、サブピクチャシーケンスを変更なしで復号できるので、遅延バインディングベースのビューポート依存ストリーミングにおいて、VCL NALユニットを変更する必要がない。これにより、クライアントの実装の複雑さが軽減される。
- 画素単位のピクチャサイズは、一定である必要はない。この利点は、共有符号化サブピクチャが使用される場合に明らかになり、共有符号化サブピクチャを含む時間インスタンスでは、他の時間インスタンスよりも多くの数の画素が復号される可能性がある。
- ビューポートサイズおよび頭の動きのマージンに応じてサブピクチャの数を柔軟に選択することができる。いくつかの従来技術の方法では、サブピクチャトラックのコンテンツを単一のビットストリームにマージするためのエクストラクタトラックを作成するとき、サブピクチャトラックの数が事前定義されていた。
- 復号能力および/または受信データの可用性に応じてサブピクチャの数を柔軟に選択することができる。利用可能な復号能力、例えば、リソース共有を備えたマルチプロセスまたはマルチタスクシステムに応じて、復号サブピクチャの数を動的に選択することができる。特定の時間インスタンスの要求されたサブピクチャが受信されていない場合でも、特定の時間インスタンスの符号化データを復号に渡すことができる。したがって、サブピクチャシーケンスのサブセットのみに関する配信遅延が、他のサブピクチャシーケンスの復号および再生を停止させることはない。
- ビットレートと受信したサブピクチャの切替えは、任意の共有符号化サブピクチャおよび/またはランダムアクセスサブピクチャで行うことができる。複数のバージョンのコンテンツを、共有符号化サブピクチャおよび/またはランダムアクセスサブピクチャの異なる間隔で符号化することができる。復号されたビットストリームでは、共有符号化サブピクチャおよび/またはランダムアクセスサブピクチャをすべてのサブピクチャシーケンスで整列させる必要がなく、したがって切替えおよび/またはランダムアクセス特性が、それを必要とするサブピクチャシーケンスにのみに存在する場合に、より良好なレート歪み効率を達成することができる。
【0334】
上記のように、「サブピクチャ」という用語は、使用例に応じて、様々な使用例および/または投影のタイプを指すことがある。次に、これらの使用例のいくつかのコンテキストでのサブピクチャの符号化に関連する例について説明する。
【0335】
オーバーラップを伴う多面コンテンツの符号化
【0336】
一実施形態によれば、360度コンテンツの様々な部分が様々な表面に投影されてもよく、投影された面では、コンテンツがオーバーラップしていてもよい。別の実施形態では、コンテンツは、オーバーラップしたコンテンツを有するいくつかの領域(例えば、タイル)に分割されてもよい。各面または領域は、サブピクチャとして符号化されてもよい。2つの例について図13および図14に示すように、各サブピクチャは、他のサブピクチャの一部を参照フレームとして使用してもよく、オーバーラップしないコンテンツは、白色のボックスで示されており、オーバーラップした領域は灰色で示されており、サブピクチャ内の対応する部分は、破線の矩形で示されている。空間関係情報を使用して、サブピクチャが他のサブピクチャと空間的にどのように関連しているかを示すことができる。
【0337】
点群コンテンツの符号化
【0338】
一実施形態によれば、点群コンテンツの各部分が表面に投影されて、パッチを生成する。各パッチはサブピクチャとして符号化されてもよい。異なるパッチは、冗長なデータを有する可能性がある。各サブピクチャは、他のサブピクチャを使用してこの冗長性を補償してもよい。図15の例では、点群の様々な部分が表面1および表面2に投影されて、パッチ1およびパッチ2がそれぞれ生成されている。各パッチはサブピクチャとして符号化される。この例では、c、d、eで示される点群コンテンツの一部が2つの表面に冗長的に投影されており、したがって、パッチ1およびパッチ2では対応するコンテンツが冗長になっている。図15では、サブピクチャ1から予測され得るサブピクチャ2のその部分は、破線のボックスによって示されている。再構築サブピクチャの集合体は、出力ピクチャを形成してもよい。代替として、再構築サブピクチャを2D出力ピクチャに配置してもよい。
【0339】
符号化の実施形態によれば、第2のPCCレイヤのパッチが、第2のサブピクチャとして符号化され、第1のPCCレイヤのそれぞれのパッチの再構築サブピクチャであると予測される。同様に、復号の実施形態によれば、第2のサブピクチャが復号され、第2のサブピクチャは第2のPCCレイヤのパッチを表し、復号は、第1のPCCレイヤのそれぞれのパッチを表す再構築サブピクチャからの予測を含む。
【0340】
一実施形態によれば、サブピクチャシーケンスは意図的に、異なるピクチャレートおよび/または異なる数のサブレイヤで符号化、要求、送信、受信、および/または復号される。この実施形態は、例えば、特定の時間にレンダリングするためにコンテンツの一部のみが必要な場合に適用可能である。例えば、360度映像では、特定の時間にレンダリングするためにビューポートのみが必要であり、点群符号化およびボリューム映像では、レンダリングに必要な部分は、視聴位置および視聴の向きに依存する場合がある。(符号化、要求、送信、受信、および/または復号において)レンダリングに必要なサブピクチャシーケンスのピクチャレートおよび/またはサブレイヤの数は、レンダリングに必要ない、かつ/または(例えば、視聴の向きの変化に応答するため)すぐにレンダリングする必要がない可能性が高いサブピクチャシーケンスよりも高くなるように、選択されてもよい。説明した構成によって、必要な復号能力および電力消費を低減することができる。あるいは、例えば、リアルタイム再生よりも高速にするために、配信および/または復号の高速化を達成することができる。(例えば、視聴の向きの変化に応答するために)より多くの数のサブレイヤでサブピクチャシーケンスを復号することが望まれる場合、HEVCのTSAおよび/またはSTSAピクチャなどのサブレイヤアクセスピクチャを使用して、サブレイヤの符号化、要求、送信、受信、および/または復号を再開してもよい。
【0341】
一実施形態によれば、TSAサブピクチャなどは、他のサブピクチャシーケンスから予測されないサブピクチャシーケンスの最下位サブレイヤに符号化されることが可能である。このTSAサブピクチャは、このサブピクチャシーケンスのすべてのサブレイヤがこのTSAピクチャから開始すると予測できることを示す。一実施形態によれば、TSAサブピクチャなどは、他のサブピクチャシーケンスから予測されないサブピクチャシーケンスの最下位サブレイヤから復号される。一実施形態では、最下位サブレイヤより上の任意のサブレイヤの要求、送信、受信、および/または復号がこのTSAサブピクチャから開始できると判断され、その結果、そのような要求、送信、受信、および/または復号が行われる。
【0342】
本実施形態は、すでに上述したものに加えて、他の利点も提供する。例えば、サブピクチャ境界を越えたループフィルタリングは無効となる。したがって、(例えば、YUVからRGBへの色空間変換などを通じて)復号処理によって出力された復号サブピクチャを直ちに処理することによって、非常に低遅延な動作を達成することができる。これにより、再生に関連する処理(例えば、VCL NALユニットの受信、VCL NALユニットの復号、復号サブピクチャの後処理)のパイプライン化が可能になる。符号化側においても、同様の利点を達成することができる。分断された投影面にまたがるフィルタリングなど、連続していない画像コンテンツの境界を越えてフィルタリングすると、可視のアーチファクトが生じる可能性がある。ループフィルタを無効にすることによって、サブピクチャ境界における可視のアーチファクトが減少し、主観的品質が向上する。
【0343】
さらなる利点として、サブピクチャシーケンスが互いに独立している場合、サブピクチャを任意の順序で復号することができ、異なるピクチャのサブピクチャを並列に復号することができる。これにより、プロセッシングコア間のロードバランシングの柔軟性が高まる。
【0344】
さらなる利点として、点群またはボリューム映像のパッチのシーケンスを同じサブピクチャシーケンスの下に示すことによって、点群またはボリューム映像のパッチのシーケンスを同じまたは類似のソース(例えば、同じ投影面)のものであると示すことができる。その結果、同じソースのパッチを互いにインター予測することができる。従来、点群またはボリューム映像のパッチは、2Dピクチャ上にパッキングされており、同じまたは類似のソースのパッチは、2Dピクチャ上の空間的に同じ位置に配置されている必要があった。しかしながら、パッチの数およびサイズが異なる場合があるため、対応するパッチのこのような時間的配置は簡単ではない場合がある。
【0345】
さらなる利点として、ビットストリームのサブピクチャのサブセットを抽出する、または異なるビットストリームのサブピクチャをマージするには、ピクチャ合成データなどの高レベルの構文構造を書き換えれば十分である。サブピクチャの符号化データを変更する必要はない。これによって、ビューポート依存360度ストリーミングアプリケーションの実装が容易になる。位置および向きに依存するボリューム映像ストリーミングアプリケーションを視聴する場合も同様である。
【0346】
また、1ピクチャ当たりのサブピクチャの数または画素数は、一定ではない。
これによって、「遅延バインディング」に基づく360度および6DoFストリーミングアプリケーション、ならびに視聴の向きおよび/または視聴位置に基づく適応の実装が容易になる。ビューポートのサイズおよび/または復号能力に基づいて、受信するサブピクチャの数を選択することができる。サブピクチャが時間内に受信されない場合、ピクチャをサブピクチャなしで復号することができる。
【0347】
動きベクトルがサブピクチャ境界の外側のデータを参照することを可能にすることによって、動き制約タイルセットと比較して圧縮効率を向上させることができる。
【0348】
あるサブピクチャシーケンスから別のサブピクチャシーケンスへの予測を可能にすることによって、例えば以下の場合の圧縮効率を向上させることができる。
- 第1のサブピクチャシーケンスが第1のビューを表し、第2のサブピクチャシーケンスが第2のビューを表すときのビュー間予測。
- 適応360および6DoFストリーミングに対して、「共有サブピクチャシーケンス」からの予測を有効にすることができる。
【0349】
ピクチャの幅および高さをCTU境界(または同様のもの)に揃えないようにすることができ、またサブピクチャの復号は従来のピクチャの復号として動作するので、サブピクチャのサイズを定義する際の柔軟性が実現する。例えば、360度映像に使用されるサブピクチャサイズは、CTUの幅および高さの倍数である必要はない。画素/秒を単位とするこの復号能力をより柔軟に利用することができる。
【0350】
面の境界に不連続性があるCMPのような多面投影では、サブピクチャ符号化は、近接する面の画素を予測に使用しないことによって、面の境界におけるイントラ符号化を改善することができる。
【0351】
以下では、一実施形態による参照サブピクチャ操作処理について、より詳細に説明する。
【0352】
エンコーダは、操作される参照サブピクチャのソースとして使用できるサブピクチャを選択する。エンコーダは、識別された参照サブピクチャ操作処理を使用して、復号サブピクチャのセットから操作される参照サブピクチャのセットを生成し、操作される参照サブピクチャのうちの少なくとも1つを予測用の参照ピクチャリストに含める。
【0353】
エンコーダは、ビットストリームの中にまたはビットストリームに沿って、参照サブピクチャ操作処理の識別を含み、また、操作すべき復号サブピクチャのセット、および/または生成すべき操作される参照サブピクチャのセットを示すかまたは推論する情報をビットストリームに含んでもよい。
【0354】
デコーダは、ビットストリームからまたはビットストリームに沿って、参照サブピクチャ操作処理の識別を復号する。デコーダはまた、操作すべき復号サブピクチャのセット、および/または生成すべき操作される参照サブピクチャのセットを示すかまたは推論する情報をビットストリームから復号する。
【0355】
デコーダはまた、識別された参照サブピクチャ操作処理を使用して、復号サブピクチャのセットから操作される参照サブピクチャのセットを生成し、操作される参照サブピクチャのうちの少なくとも1つを予測用の参照ピクチャリストに含める。
【0356】
一実施形態では、参照サブピクチャ操作において入力として使用される参照サブピクチャが使用可能になったときに参照サブピクチャ操作動作を実行すべきであることを、エンコーダがビットストリームの中にまたはビットストリームに沿って示し、かつ/または、デコーダがビットストリームからまたはビットストリームに沿って復号し、かつ/または、エンコーダおよび/またはデコーダが推論する。
【0357】
一実施形態では、参照サブピクチャが利用可能になったとき(例えば、参照サブピクチャが復号された直後に)参照サブピクチャ操作のために参照サブピクチャが提供される場合、エンコーダは、制御信号をビットストリームの中にまたはビットストリームに沿って符号化し、かつ/または、デコーダは、制御信号をビットストリームからまたはビットストリームに沿って復号する。制御信号は、例えば、シーケンスパラメータセット、ピクチャパラメータセット、ヘッダパラメータセット、ピクチャヘッダ、サブピクチャデリミタもしくはヘッダ、および/または画像セグメントヘッダ(例えば、タイルグループヘッダ)に含まれてもよい。パラメータセットに含まれる場合、制御信号は、パラメータセットを参照する各サブピクチャに適用されてもよい。制御信号は、サブピクチャシーケンスに固有である場合があるか(サブピクチャシーケンス識別子を伴う場合がある)、または復号されるすべてのサブピクチャシーケンスに適用される場合がある。ヘッダに含まれる場合、制御信号は、ヘッダが適用される時空間単位に適用されてもよい。いくつかの事例では、制御信号は第1のヘッダで適用可能であり、同じ時空間単位に適用される後続のヘッダで繰り返されてもよい。例えば、制御信号は、サブピクチャの画像セグメントヘッダ(例えば、タイルグループヘッダ)に含まれ、復号サブピクチャが参照サブピクチャ操作に提供されることを示してもよい。
【0358】
一実施形態では、操作される参照サブピクチャが符号化および/もしくは復号で参照されているとき、または符号化および/もしくは復号で参照されようとしているときに参照サブピクチャ操作動作を実行すべきであることを、エンコーダがビットストリームの中にまたはビットストリームに沿って示し、かつ/または、デコーダがビットストリームからまたはビットストリームに沿って復号し、かつ/または、エンコーダおよび/またはデコーダが推論する。例えば、操作される参照サブピクチャが、現在のサブピクチャにおける予測の参照として使用され得る「アクティブな」参照サブピクチャの中の参照ピクチャリストに含まれるときに、参照サブピクチャ操作処理が実行されてもよい。
【0359】
前述のように、いくつかの実施形態では、
- 復号ピクチャバッファリングは、サブピクチャベースではなくピクチャベースで実行される。
- エンコーダおよび/またはデコーダは、ピクチャ合成データを使用して、同じアクセスユニットまたは時間インスタンスの復号サブピクチャから参照ピクチャを生成する。
- 参照ピクチャの生成は、出力ピクチャを生成するための他の実施形態で説明されているものと同一または同様に実行される。
【0360】
復号ピクチャバッファリングがピクチャベースで実行される一実施形態は、以下のことを含む。参照サブピクチャ操作処理への入力として使用される参照サブピクチャは、復号ピクチャバッファ内の参照ピクチャから領域を抽出することによって生成される。抽出は、復号ピクチャバッファリング処理の一部としてもしくは参照サブピクチャ操作処理の一部として行われるか、または復号ピクチャバッファリング処理および/もしくは参照サブピクチャ操作処理に動作可能に接続されてもよい。一実施形態では、領域は、符号化または復号されている現在のサブピクチャと同一位置にある領域である。別の実施形態では、領域は、空間関係情報を通して提供される。したがって、参照サブピクチャ操作処理は、他の実施形態と同様に、復号ピクチャバッファリング処理から参照サブピクチャを取得し、参照サブピクチャ操作処理は、他の実施形態と同様に動作してもよい。
【0361】
参照サブピクチャ操作処理の識別および付随情報のシグナリング
【0362】
上記のサブピクチャパッキングは、サブピクチャパッキングのソースとして使用され得るサブピクチャシーケンス、サブピクチャ、またはサブピクチャ内の領域に関するパッキング情報を示すことを含んでもよい。一実施形態では、パッキング情報は、ピクチャ合成データと同様であるが別個に示される。一実施形態では、エンコーダは、ピクチャ合成データがパッキング情報として再利用されることをビットストリームの中にまたはビットストリームに沿って示し、かつ/または同様に、デコーダは、ピクチャ合成データがパッキング情報として再利用されることをビットストリームからまたはビットストリームに沿って復号する。一実施形態では、パッキング情報は、OMAFの領域別パッキングSEIメッセージまたは領域別パッキングメタデータと同様に示される。
【0363】
パッキング情報は、再構築サブピクチャのセット(例えば、出力ピクチャ合成に使用されるすべてのサブピクチャ)について示され得るが、操作される参照サブピクチャは、操作される参照サブピクチャが作成されたときに利用可能である再構築サブピクチャから生成され得ることに留意されたい。例えば、第1の時間インスタンスの第3のサブピクチャの参照として使用される操作される参照サブピクチャは、復号順で第3のサブピクチャの前にある(同様に第1の時間インスタンスの)第1の再構築サブピクチャおよび第2の再構築サブピクチャから生成されてもよく、一方、操作される参照サブピクチャの生成に使用されるパッキング情報は、第1、第2、および第3のサブピクチャの情報を含んでもよい。
【0364】
サンプル位置の各値サンプルが、このサンプル位置に配置された参照サブピクチャのすべてのサンプルの平均として算出されるように、または、利用可能なサンプルおよび利用不可のサンプルの位置に対するサンプルの位置に応じた加重平均を使用して各サンプルが算出され得るように、操作される参照サブピクチャの生成の一部として混合が実行されてもよい。
【0365】
適応的解像度変更
【0366】
適応的解像度変更(ARC:Adaptive Resolution Change)とは、例えばビデオ会議の使用例において、映像ビットストリームまたは映像セッション内の解像度を動的に変更することを指す。適応的解像度変更は、例えば、伝送エラーまたは伝送損失に対するネットワーク適応および誤り耐性を向上させるために使用されてもよい。様々なコンテンツのネットワーク要件の変化により良く適応するために、品質に加えて時間解像度/空間解像度の両方を変更できることが望ましい場合がある。また、ARCによって、セッションの高速開始が可能になるか、または新しい時間位置を求めた後、最初に低解像度フレームを送信してその後に解像度を上げることによって、セッションの始動時間を短縮できる場合がある。さらに、ARCは、会議の構成で使用されてもよい。例えば、人物が話し始めたときに、その人物の対応する解像度を上げることができる。
【0367】
ARCは、従来、解像度変更が行われる位置でランダムアクセスピクチャ(例えば、HEVC IRAPピクチャ)を符号化することによって実行される場合がある。しかしながら、ランダムアクセスピクチャに適用されるイントラ符号化は、レート歪み性能において、インター符号化ピクチャよりも非効率的になる。したがって、可能なことの1つは、遅延が大幅に増加しないように、ランダムアクセスピクチャを比較的低品質で符号化して、ビット数をインター符号化ピクチャのビット数に近づけることである。しかしながら、低品質のピクチャは主観的に目立つ場合があり、それから予測されるピクチャのレート歪み性能にも悪影響を及ぼす。別の可能なことは、ランダムアクセスピクチャを比較的高品質で符号化することであるが、ビット数が比較的多いと、遅延が大きくなる可能性がある。低遅延の会話型アプリケーションでは、初期バッファリングで高遅延を補正できない場合があり、これにより、顕著なピクチャレート変動または動きの不連続性が生じる可能性がある。
【0368】
適応的解像度変更のために、参照サブピクチャ操作処理を使用することができる。
【0369】
参照サブピクチャ操作処理のために、インター予測が使用されてもよい。同じサブピクチャシーケンスの復号順で前の参照サブピクチャが、予測の参照として使用されてもよい。さらに、操作される参照サブピクチャが、予測の参照として使用されてもよい。
【0370】
この例では、特定の解像度の最後の再構築サブピクチャが再サンプリングされて、新しい解像度の操作される参照サブピクチャが生成される。このような構成は、(サブ)ピクチャの復号順序および出力順序が同じである低遅延アプリケーションに適している場合がある。これは唯一の可能な構成ではなく、新しい解像度のサブピクチャの予測の参照として使用され得る操作される参照サブピクチャを生成するために、任意の再構築サブピクチャが再サンプリングされてもよいことを理解する必要がある。さらに、新しい解像度のサブピクチャの予測の参照として使用される操作される参照サブピクチャは2つ以上存在してもよい。
【0371】
サブピクチャシーケンスは、同じ解像度のサブピクチャが同じサブピクチャシーケンス内にあるように形成されてもよい。したがって、この例では2つのサブピクチャシーケンスがある。サブピクチャシーケンスを形成するための別の選択肢は、解像度切替え点から始まる同じ解像度のサブピクチャが同じサブピクチャシーケンス内にあるというものである。したがって、この例では3つのサブピクチャシーケンスがある。
【0372】
上記の例は、例えばネットワークスループットおよび/または復号能力に適合した、ライブ符号化の可能な動作を示している。代替としてまたは追加として、上記の例は復号動作を示してもよく、その場合、復号サブピクチャは、例えば、コンテナファイル内でまたは受信したストリームの一部として復号に利用可能なサブピクチャのサブセットである。
【0373】
適応的解像度変更は、例えば次の段落で説明するように、(複数のプレーヤのための)ストリーミングにおいて容易になる場合がある。
【0374】
選択されたサブピクチャシーケンスが、比較的頻度の低いランダムアクセス間隔で符号化されてもよい。この例では、3つおきの(サブ)セグメントのランダムアクセス期間に、低解像度サブピクチャシーケンスおよび高解像度サブピクチャシーケンスが生成される。これらのサブピクチャシーケンスは、例えば、受信機バッファ占有率が十分に高く、ネットワークスループットがサブピクチャシーケンスのビットレートに対して十分かつ安定しているときなどの安定した受信状態で、受信されてもよい。
【0375】
選択されたサブピクチャシーケンスが、再サンプリングによって作成された操作される参照サブピクチャを使用して解像度を切り替えるために符号化される。この例では、任意の(サブ)セグメント境界で低解像度から高解像度に解像度を変更するために、1つのサブピクチャシーケンスが符号化される。このサブピクチャシーケンス内の各(サブ)セグメントのサブピクチャは、それらが相互に、または低解像度サブピクチャシーケンスにのみ依存するように符号化される。
【0376】
サブピクチャシーケンスは、ストリーミング用に個別に利用可能になる。例えば、サブピクチャシーケンスは、DASH MPDでは個別の表現として通知されてもよい。
【0377】
クライアントは、(サブ)セグメントに基づいて、どのサブピクチャシーケンスを受信するかを選択する。クライアントは最初に、(頻度の低いランダムアクセス間隔の)低解像度サブピクチャシーケンスの1つの(サブ)セグメントを受信する。次いで、クライアントは、より高解像度に切り替えることを決定し、低解像度のサブピクチャから生成された操作される参照サブピクチャを予測の参照として使用するサブピクチャシーケンスの2つの(サブ)セグメントを受信する。しかしながら、後者の操作される参照サブピクチャでは、第2の低解像度(サブ)セグメントを復号する必要があるので、低解像度サブピクチャシーケンスの第2の(サブ)セグメントも受信される。次いで、クライアントは、頻度の低いランダムアクセス間隔の高解像度サブピクチャシーケンスに切り替える。
【0378】
一実施形態では、操作される参照サブピクチャは、特定の時間サブレイヤ(例えば、最も低い時間サブレイヤ、例えば、HEVCにおいて0に等しいTemoralId)のみから生成される。それらの特定の時間サブレイヤは、同じサブピクチャシーケンスの他の時間サブレイヤとは別にストリーミングに利用できるようにされてもよい。例えば、それらの特定の時間サブレイヤは、第1の表現として通知されてもよく、同じサブピクチャシーケンスの他のサブレイヤは、第2の表現として利用可能にされてもよい。上に示した例示的なクライアント動作を続けると、低解像度サブピクチャシーケンスの第2の(サブ)セグメントから、特定のサブレイヤのみを受信する必要がある。特定のサブレイヤは、個別の表現またはサブ表現として使用できるようにされてもよく、したがって、これによって他のサブレイヤとは別に特定のサブレイヤを要求および受信することが可能になる。
【0379】
オープンGOPランダムアクセスピクチャでのストリーム切替え
【0380】
DASH表現のストリーミングセッション中にクライアントが異なる品質間および解像度間で切り替えるのをサポートするために、セグメント境界でランダムアクセスポイントのピクチャが符号化されてもよい。従来、DASH表現のセグメント境界では、いわゆるクローズグループオブピクチャ(GOP)予測構造を開始するランダムアクセスピクチャが使用されてきた。クローズGOPランダムアクセスピクチャと比較してオープンGOPランダムアクセスピクチャがレート歪み性能を向上させることが判明している。さらに、クローズGOPランダムアクセスピクチャと比較した場合、オープンGOPランダムアクセスピクチャは、観察可能なピクチャ品質の変動を低減することが判明している。復号がオープンGOPランダムアクセスピクチャ(例えば、HEVCのCRAピクチャ)から開始する場合、復号順でランダムアクセスピクチャの後であるが出力順でランダムアクセスピクチャの前にあるいくつかのピクチャは、復号できない可能性がある。これらのピクチャは、ランダムアクセススキップリーディング(RASL:Random Access Skipped Leading)ピクチャと呼ばれることがある。その結果、DASHのセグメント境界でオープンGOPが使用された場合、表現の切替えによって、RASLピクチャを復号できなくなり、再生時にピクチャレートの不具合が生じることになる。
【0381】
表現がオープンGOP構造を使用し、同じ解像度および他の特徴を共有するとき、すなわち、ソース表現の復号ピクチャを、ターゲット表現のピクチャを予測するための参照ピクチャなどとして使用できるとき、シームレスな表現の切替えが可能になる場合がある。しかしながら、表現は同じ特徴を共有しない可能性があり、例えば、表現は空間解像度が異なる可能性があり、シームレスな表現の切替えにはさらなる考慮が必要な場合がある。
【0382】
一実施形態によれば、エンコーダは、先行サブピクチャに関連付けられたオープンGOPランダムアクセスサブピクチャより復号順で前にある先行サブピクチャなどの参照サブピクチャに参照サブピクチャ操作が適用されることを、ビットストリームの中にまたはビットストリームに沿って示す。一実施形態によれば、デコーダは、先行サブピクチャに関連付けられたオープンGOPランダムアクセスサブピクチャより復号順で前にある先行サブピクチャなどの参照サブピクチャに参照サブピクチャ操作が適用されることを、ビットストリームからもしくはビットストリームに沿って復号するか、または推論する。例えば、オープンGOPランダムアクセスサブピクチャの解像度が、復号順で同じサブピクチャシーケンスの以前のサブピクチャと異なるとき、また、オープンGOPランダムアクセスサブピクチャが、「参照に使用」とマークされた1つまたは複数の(復号順で)前にある参照サブピクチャを保持したとき、デコーダは、参照サブピクチャ操作を推論することができる。参照サブピクチャ操作は、参照サブピクチャの解像度と、参照サブピクチャを予測の参照として使用する先行サブピクチャの解像度とを一致させるために再サンプリングしていることを、(エンコーダによって)示され、(デコーダによって)復号され、または(エンコーダおよび/またはデコーダによって)推論されてもよい。
【0383】
領域別混合解像度(RWMR)360°映像ストリーミングにおけるビューポートの変化に対応するための適応的解像度変更
【0384】
HEVCベースビューポート依存360°ストリーミングにおいて視聴の向きが変化すると、次のIRAP整列(サブ)セグメント境界において、サブピクチャ表現の新しい選択が有効になる。サブピクチャ表現は、復号のために符号化ピクチャにマージされ、したがって、VCL NALユニットタイプは、選択されたすべてのサブピクチャ表現において整列される。
【0385】
視聴の向きの変化に反応する応答時間と、視聴の向きが安定しているときのレート歪み性能との間のトレードオフを提供するために、異なるランダムアクセスピクチャ間隔(またはSAP間隔)でコンテンツの複数のバージョンを符号化することができる。
【0386】
視聴の向きはしばしば、徐々に移動することがあるので、RWMRビューポート依存ストリーミングでは、サブピクチャ位置のサブセットでのみ解像度が変化する。しかしながら、前述のように、ランダムアクセスピクチャで始まる(サブ)セグメントは、すべてのサブピクチャ位置で受信される必要がある。すべてのサブピクチャ位置をランダムアクセスピクチャで始まる(サブ)セグメントで更新することは、ストリーミングレート歪み性能の観点から非効率的である。
【0387】
さらに、レート歪み性能を向上させ、クローズGOP予測構造によって生じる可視のピクチャ品質のポンピングを回避するには、RWMR360°ストリーミングのサブピクチャ表現と共にオープンGOP予測構造を使用する能力が望ましい。
【0388】
アクセスユニットごとに複数のサブピクチャが存在するとき、適応的解像度変更を使用することもできる。例えば、立方体マップ投影が使用されてもよく、各立方体面は、1つまたは複数のサブピクチャとして符号化されてもよい。ビューポートをカバーする(場合によっては、視聴の向きの変更もカバーするためのマージンを有する)サブピクチャは、他のサブピクチャよりも高い解像度でストリーミングおよび復号されてもよい。新しいサブピクチャが以前は低解像度でストリーミングされていたが高解像度でストリーミングする必要がある方法で視聴の向きが変更された場合、またはその逆の場合、ある解像度から別の解像度への切替えは上記のように実行されてもよい。
【0389】
アクセスユニットごとに複数のサブピクチャが存在するとき、上記の実施形態によるオープンGOPランダムアクセスピクチャでの適応的解像度変更および/またはストリーム切替えを使用することもできる。
【0390】
一実施形態によれば、各サブピクチャ位置のサブピクチャシーケンスの複数のバージョンが符号化されている。例えば、サブピクチャ位置ごとに、2つの解像度および2つのランダムアクセス間隔(ここでは「短時間」および「長時間」と呼ぶ)の各組合せに対して、個別のバージョンが符号化される。オープンGOP予測構造は、少なくともサブピクチャシーケンスで使用されている。サブピクチャシーケンスは、サブピクチャトラックにカプセル化され、DASHのサブピクチャ表現として利用可能にされている。符号化サブピクチャシーケンスから形成された(サブ)セグメントのうちの少なくともいくつかは、オープンGOP予測構造で始まる。クライアントは、(サブ)セグメントの第1の範囲に対して、第1の解像度で受信するサブピクチャ位置の第1のセットと、第2の解像度で受信するサブピクチャ位置の第2のセットとを選択する。視聴の向きの変更は、クライアントによって、(サブ)セグメントの第2の範囲に対して、第1の解像度で受信するサブピクチャ位置の第3のセットと、第2の解像度で受信するサブピクチャ位置の第4のセットとを選択することによって処理される。第1のセットと第3のセットは同一ではなく、第1のセットと第3のセットの共通部分は空ではない。同様に、第2のセットと第4のセットは同一ではなく、第2のセットと第4のセットの共通部分は空ではない。(サブ)セグメントの第2の範囲が長時間ランダムアクセスバージョンのランダムアクセス位置で始まらない場合、クライアントは、解像度を変更する必要がある(すなわち、第3のセット内であるが第1のセットと第3のセットの共通部分の外側にあるか、または第4のセット内であるが第2のセットと第4のセットの共通部分の外側にある)サブピクチャ位置の短時間ランダムアクセスサブピクチャ表現の(サブ)セグメントを要求する。変更された解像度の(サブ)セグメントのRASLサブピクチャの参照サブピクチャは、オープンGOPランダムアクセスピクチャで始まり、他の実施形態で説明するように、参照サブピクチャ操作によって処理される。例えば、参照サブピクチャは、RASLサブピクチャの解像度に再サンプリングされてもよい。
【0391】
例えば、立方体マップ投影が使用されてもよく、各立方体面は、1つまたは複数のサブピクチャとして符号化されてもよい。ビューポートをカバーする(場合によっては、視聴の向きの変更もカバーするためのマージンを有する)サブピクチャは、他のサブピクチャよりも高い解像度でストリーミングおよび復号されてもよい。新しいサブピクチャが以前は低解像度でストリーミングされていたが高解像度でストリーミングする必要がある方法で視聴の向きが変更された場合、またはその逆の場合、ある解像度から別の解像度への切替えは上記のように実行されてもよい。
【0392】
インプレースでの参照サブピクチャ操作
【0393】
いくつかの実施形態では、参照サブピクチャ操作は、インプレースで行われる。言い換えると、変更されたサブシーケンスは、参照サブピクチャを変更、上書き、または置換する。コーデックまたはビットストリームは、参照サブピクチャ操作を示す以外に変更の必要はない場合がある。エンコーダおよび/またはデコーダは、インプレース操作を以下の手段のうちの1つまたは複数を介して行うと判断してもよいが、これらに限定されない。
- 例えば符号化規格において、インプレース操作は、操作される参照サブピクチャが生成されるときは常に適用されると事前定義されている場合がある。
- 例えば符号化規格において、インプレース操作は、操作処理の事前定義されたサブセットに適用されると指定されている場合がある。
- エンコーダは、インプレース操作が行われることを、ビットストリームの中にまたはビットストリームに沿って、例えばシーケンスパラメータセットの中に示し、かつ/または、デコーダは、ビットストリームからまたはビットストリームに沿ってそれを復号する。
【0394】
操作される参照サブピクチャのメモリ割り当て(例えば、ビット深度)に影響を与える寸法(すなわち、幅および/または高さ)および/または他の特性が、操作処理への入力として使用されるサブピクチャのものと異なる場合、インプレース操作は、以下を含むと理解されてもよい。
- 操作処理のソースとして使用されるサブピクチャとは別のピクチャバッファに、操作される参照サブピクチャを作成する。
- 操作処理のソースとして使用されるサブピクチャを「参照に不使用」とマークし、場合によっては、そのサブピクチャを復号ピクチャバッファから削除する。
【0395】
暗黙的な再サンプリング
【0396】
一実施形態では、参照サブピクチャ操作処理の識別は、再サンプリングを識別する。識別は、例えば、参照サブピクチャを再サンプリングする必要があり得るというシーケンスレベルの指示とすることができる。別の例では、識別はプロファイルインジケータなどであり、それにより、参照サブピクチャの再サンプリングの機能が含まれる。操作すべき復号サブピクチャのセットは、以下のように推論されてもよい:参照サブピクチャが現在のサブピクチャと異なる解像度を有する場合、参照サブピクチャは現在のサブピクチャの解像度に再サンプリングされる。一実施形態では、再サンプリングは、参照サブピクチャが任意の参照ピクチャリスト内のアクティブなピクチャの中にある場合にのみ行われる。
【0397】
一実施形態では、任意の時間インスタンスまたはアクセスユニットごとに厳密に1つの符号化サブピクチャが存在する。したがって、前述の暗黙的な再サンプリングを除いて、従来の符号化(復号)動作およびビットストリーム構文を使用することができる。このような復号動作は、例えば、上記のような適応的解像度変更に適している。
【0398】
一実施形態では、再サンプリングは、上記のように、操作される参照サブピクチャを生成するための任意の他の動作を伴うか、またはそれに置き換えられてもよい。参照サブピクチャ操作処理の識別は、参照サブピクチャが現在のサブピクチャとは異なる解像度またはフォーマット(例えば、色差フォーマットまたはビット深度)を有するときにどの動作を実行すべきかを識別する。
【0399】
操作される参照サブピクチャの明示的な管理
【0400】
一実施形態では、エンコーダは、操作される参照サブピクチャを生成するための制御動作を、ビットストリームの中に符号化し、かつ/または、デコーダは、その制御動作をビットストリームから復号する。一実施形態では、制御動作は、操作される参照サブピクチャを生成するためのソースとして使用されるサブピクチャの符号化映像データに含まれる。別の実施形態では、制御動作は、操作される参照サブピクチャを予測の参照として使用しているサブピクチャの符号化映像データに含まれる。さらに別の実施形態では、制御動作は、操作される参照サブピクチャを生成するためのソースとして使用されるサブピクチャにおける、または(復号順で)それに続く任意のサブピクチャの符号化映像データに含まれる。
【0401】
一実施形態では、操作される参照サブピクチャに(例えば、参照ピクチャセットで)「参照に使用」または「参照に不使用」とマークする際、操作される参照サブピクチャは、対応する「ソース」参照サブピクチャと対にされる。すなわち、「ソース」参照サブピクチャが「参照に不使用」とマークされている場合、対応する操作される参照サブピクチャも「参照に不使用」とマークされる。
【0402】
一実施形態では、エンコーダは、操作される参照サブピクチャを「参照に使用」もしくは「参照に不使用」としてマークするための制御動作をビットストリームの中に符号化し、かつ/または、デコーダは、その制御動作をビットストリームから復号する。制御動作は、例えば、操作される参照サブピクチャのみのための特定の参照ピクチャセットとすることができる。
【0403】
一実施形態では、参照ピクチャリストは、「参照に使用」とマークされた操作される参照サブピクチャを含むように初期化される。一実施形態では、参照ピクチャリストは、現在のサブピクチャのアクティブな参照であることが示されている操作される参照サブピクチャを含むように初期化される。
【0404】
外部参照サブピクチャ
【0405】
一実施形態では、復号処理は、「外部参照サブピクチャ」を入力するためのインターフェースを提供する。参照サブピクチャ操作処理は、インターフェースを介して、操作される参照サブピクチャを復号処理に提供してもよい。
【0406】
復号処理内では、外部参照サブピクチャは、事前定義された特性を有してもよく、かつ/もしくは推論されてもよく、かつ/または特性がインターフェースを介して提供されてもよい。これらの特性には、次のうちの1つまたは複数が含まれるが、これらに限定されない。
- ピクチャ順序カウント(POC)またはPOCの特定のビット、例えば、POC最下位ビット(LSB:Least Significant Bit)および/またはPOC最上位ビット(MSB:Most Significant Bit)。
- 「短期参照に使用」または「長期参照に使用」としてマークする。
【0407】
例えば、外部参照サブピクチャが長期参照ピクチャとして扱われること、および/または外部参照サブピクチャのピクチャ順序カウントが0に等しいことが事前定義されてもよい。
【0408】
一実施形態では、復号のために外部参照サブピクチャが取得される場合、エンコーダは、制御信号をビットストリームの中にまたはビットストリームに沿って符号化し、かつ/または、デコーダは、制御信号をビットストリームからまたはビットストリームに沿って復号する。制御信号は、例えば、シーケンスパラメータセット、ピクチャパラメータセット、ヘッダパラメータセット、ピクチャヘッダ、サブピクチャデリミタもしくはヘッダ、および/または画像セグメントヘッダ(例えば、タイルグループヘッダ)に含まれてもよい。パラメータセットに含まれる場合、パラメータセットがアクティブ化されたとき、制御信号によって、復号が外部参照サブピクチャを取得することができる。制御信号は、サブピクチャシーケンスに固有である場合があるか(サブピクチャシーケンス識別子を伴う場合がある)、または復号されるすべてのサブピクチャシーケンスに適用される場合がある。ヘッダに含まれる場合、例えばヘッダが復号されたとき、またはヘッダが適用される時空間単位の復号の開始時に、制御信号によって、復号が外部参照サブピクチャを取得することができる。例えば、制御信号が画像セグメントヘッダ(例えば、タイルグループヘッダ)に含まれる場合、外部参照サブピクチャのフェッチは、サブピクチャの第1の画像セグメントヘッダに対してのみ実行されてもよい。
【0409】
一実施形態では、外部参照サブピクチャは、他の符号化サブピクチャシーケンスから独立している符号化サブピクチャシーケンスの第1のサブピクチャに対してのみ与えられてもよい。例えば、適応的解像度変更の例示的な実施形態では、各操作される参照サブピクチャは、符号化サブピクチャシーケンスを開始してもよい。符号化ピクチャ、アクセスユニット、または時間インスタンスごとに1つのサブピクチャのみが使用されている場合、操作される参照サブピクチャは、符号化映像シーケンスを開始してもよい。
【0410】
一実施形態では、外部参照サブピクチャは、外部参照サブピクチャを生成するためのソースとして使用されるサブピクチャと同じ特性を有すると推論される。
【0411】
いくつかの実施形態では、外部参照サブピクチャの(参照に使用、または参照に不使用との)マーク付けは、参照サブピクチャ操作のための入力として使用されるサブピクチャと同期して制御される。
【0412】
一実施形態では、外部参照サブピクチャは、他の参照サブピクチャと同様に、初期参照ピクチャリストに含まれる。
【0413】
外部参照サブピクチャは、インターフェースを介して渡されるかまたは推論される識別子(例えば、ExtRefId)を伴うことができる。外部参照サブピクチャのメモリ管理(例えば、ExtRefIdインデックスが復号ピクチャバッファに保持される)は、ビットストリームの中に符号化されるか、もしくはビットストリームから復号されてもよく、またはインターフェースを介して制御されてもよい。
【0414】
シーケンス始端および/またはシーケンス終端の指示
【0415】
一実施形態によれば、限定はされないが以下のうちの1つまたは複数を含むシーケンス終端(EOS:End Of Sequence)構文構造および/またはシーケンス始端(SOS:Start Of Sequence)構文構造を、エンコーダがビットストリームの中に符号化し、かつ/またはデコーダがビットストリームから復号する。
- EOS構文構造および/またはSOS構文構造が関係するサブピクチャシーケンスの識別子
- SOS構文構造によってアクティブ化されるパラメータセットの識別子
- EOS構文構造および/またはSOS構文構造の復号が(例えば、暗黙的な再サンプリングによる)参照サブピクチャ操作動作および/または外部参照サブピクチャの取得を引き起こすかどうかを指定する制御信号。例えば、SOS構文構造が存在する場合、外部を意味することがある。
【0416】
一実施形態では、シーケンス終端(EOS)構文構造および/またはシーケンス始端(SOS)構文構造は、NALユニットタイプがシーケンス終端および/またはシーケンス始端を示すNALユニットにそれぞれ含まれる。
【0417】
ビットストリーム、シーケンス、およびサブピクチャシーケンスの始端の指示
【0418】
一実施形態によれば、エンコーダは、ビットストリーム始端の指示、符号化映像シーケンス始端の指示、および/もしくはサブピクチャシーケンス始端の指示をビットストリームの中に符号化し、かつ/または、デコーダは、それらをビットストリームから復号する。指示は、例えば、パラメータセット構文構造、ピクチャヘッダ、および/もしくはサブピクチャデリミタ内に含まれてもよく、かつ/またはそこから復号されてもよい。指示は、パラメータセットに存在する場合、パラメータセットをアクティブにするピクチャまたはサブピクチャに適用されてもよい。指示は、ピクチャヘッダ、サブピクチャデリミタ、または同様の構文構造に存在する場合、ビットストリームの順序で適用されてもよく、すなわち、構文構造もしくはアクセスユニットまたは構文構造を含む符号化ピクチャがビットストリーム、符号化映像シーケンス、またはサブピクチャシーケンスを開始することを示してもよい。
【0419】
特性の指示
【0420】
一実施形態では、ビットストリームまたはCVS特性は、2つのレベルで、すなわち、操作される参照サブピクチャの生成を除くサブピクチャシーケンスごと、および操作される参照サブピクチャの生成を含むサブピクチャシーケンスごとに示される。特性には、符号化プロファイル、レベル、HRDパラメータ(例えば、CPBおよび/またはDPBサイズ)、符号化に適用された制約が含まれ得るが、これらに限定されない。操作される参照サブピクチャの生成を除くサブピクチャシーケンスごとの特性は、シーケンスパラメータセットなどのコア復号処理に適用される構文構造で示されてもよい。操作される参照サブピクチャの生成を含むサブピクチャシーケンスごとの特性は、コア復号処理の代わりにまたはそれに加えて、操作される参照サブピクチャの生成に適用される構文構造で示されてもよい。
【0421】
参照サブピクチャ操作は、コア復号仕様の範囲外で発生する可能性があり、例えば、アプリケーション固有の規格または付録において指定される場合がある。
【0422】
映像コーデックプロファイル指示の第2のシェルが生成されてもよい。例えば、H.266の第1のシェルプロファイル=メイン10、第2のシェルプロファイル=サブピクチャパッキング、または360度幾何学的パディング、または点群、または暗黙的な適応的解像度変更。
【0423】
一実施形態では、エンコーダは、第1のシェルプロファイルインジケータおよび第2のシェルプロファイルインジケータを含むビットストリーム特性データ構造を示し、かつ/またはデコーダがそれを復号し、第1シェルプロファイルインジケータは参照サブピクチャ操作を除く特性を示し、第2のシェルプロファイルインジケータは参照サブピクチャ操作を含む特性を示す。
【0424】
一実施形態では、ビットストリームまたはCVS特性は、すべてのサブピクチャシーケンス(すなわち、すべての符号化映像データ)に対して集合的に示される。特性には、符号化プロファイル、レベル、HRDパラメータ(例えば、CPBおよび/またはDPBサイズ)、符号化に適用された制約が含まれ得るが、これらに限定されない。サブピクチャシーケンス固有特性指示と同様に、操作される参照サブピクチャの生成を除くサブピクチャシーケンスに対して、また操作される参照サブピクチャの生成を含むサブピクチャシーケンスに対して、特性の個別のセットが示され、かつ/または復号されてもよい。
【0425】
投影面を展開することによる操作される参照サブピクチャのセットの生成
【0426】
一実施形態では、操作される参照サブピクチャは、投影面の全体または一部を2D平面上に展開することによって生成される。いくつかの実施形態では、展開は、投影面の幾何学的関係に関する知識、および投影面がサブピクチャにどのようにマッピングされるかに関する知識を通じて実行される。他の実施形態では、展開動作を実現するために、サブピクチャパッキングが使用される。
【0427】
立方体マップ投影に関連する例示的な実施形態について説明するが、この実施形態は他の投影フォーマットについても同様に実現できることを理解する必要がある。例示的な実施形態では、(予測の対象となる)「メイン」立方体面に隣接する立方体面が、「メイン」立方体面の隣の2D平面上に展開される。「メイン」立方体面が現在のアクセスユニット内のサブピクチャとして符号化または復号されると仮定する。ピクチャ合成データが、エンコーダによって作成され、かつ/またはデコーダによって復号されて、立方体面に対応する再構築サブピクチャから出力を生成することができる。立方体を観察するためのビューポイントは立方体の中央にある可能性があり、したがって立方体マップは立方体の内面を表す可能性があることに留意されたい。
【0428】
予測の参照として使用されるアクセスユニットの再構築サブピクチャは、立方体の立方体面を展開することによって現在のアクセスユニットの予測対象となる立方体面の操作される参照サブピクチャを生成する際に使用され、次のように説明される:展開された立方体面は、予測対象となる立方体面に隣接する、すなわち予測対象となる立方体面と共通のエッジを共有する。展開の後、操作される参照サブピクチャのピクチャ領域がトリミングされてもよい。一実施形態では、エンコーダは、トリミング領域を示す情報をビットストリームの中にまたはビットストリームに沿って示し、デコーダは、トリミング領域を示す情報をビットストリームからまたはビットストリームに沿って復号する。別の実施形態では、エンコーダおよび/またはデコーダは、例えば、トリミング領域がインター予測の予測単位の最大サイズに比例すると推論し、これは、整数以外のサンプル位置でサンプルを補間するために必要なサンプルの最大数に比例して追加される場合がある。
【0429】
トリミング後またはトリミング前に、展開された領域の角は、角が空いたままにされ得るか、または例えば予測対象の立方体面の隣接する角サンプルによって角がパディングされ得るかのいずれかの方法で処理されてもよい。
【0430】
展開された立方体面から、角が補間されてもよい。例えば、補間は、次のいずれかで実行されてもよいが、これらに限定されない。
- 隣接する展開された立方体面からのサンプル行とサンプル列は、角領域をカバーするように再スケーリングされ、ブレンド(例えば、平均化)されてもよい。
- 角サンプルまでの距離が同じである隣接する展開された立方体面からの、サンプル行の境界サンプルとサンプル列の境界サンプルとを接続する各線セグメントに沿った内挿。内挿は、境界サンプルまでの距離の逆数に比例する加重平均として行うことができる。
- 隣接する展開された立方体面のサンプル行またはサンプル列の最も近い境界サンプルからのパディング。
【0431】
空間関係情報を使用して、現在のアクセスユニット内の予測対象となる立方体面が、操作される参照サブピクチャの中央領域に対応することを示してもよい。この配置の利点は、動きベクトルが、操作される参照サブピクチャの中央領域の外側のサンプルを参照できること、およびピクチャのコンテンツがその領域においてほぼ正しいことである。
【0432】
投影面の展開およびサンプル線別の再サンプリングによる、操作される参照サブピクチャのセットの生成
【0433】
一実施形態では、操作される参照サブピクチャは、2つのステップで生成される。
第1に、前の実施形態で説明したように、投影面の全体または一部が2D平面上に展開される。第2に、展開によって、操作される参照サブピクチャ内の占有されていないサンプル位置が生じ得るので、展開された立方体面の全体または一部などの展開された投影面のサンプル線またはサンプル列は、再サンプリングによって角の最大45度をカバーするように延長されてもよい。
【0434】
360°映像の回転補償
【0435】
360°映像符号化では、2Dピクチャを導出する前に、球体などの投影構造を回転させることができる。このような回転の理由の1つは、コンテンツの2Dバージョンを符号化ツールに合わせて調整し、レート歪み性能を向上させることであり得る。例えば、特定のイントラ予測方向のみが使用可能である場合があり、したがって、コンテンツの2Dバージョンをイントラ予測方向と一致させるために回転を適用することができる。これは、例えば、局所的な勾配を計算することによって行うことができ、投影構造を回転させることによって勾配とイントラ予測方向との間の一致を統計的に改善することができる。しかしながら、異なる回転で生成されたコンテンツの2Dピクチャ間には時間的な不一致があり、したがって、このような2Dピクチャ間の従来のインター予測は良好に機能しない可能性があり、レート歪み性能にペナルティが生じる。
【0436】
一実施形態では、参照サブピクチャは第1の回転に関連付けられ、現在のサブピクチャは第2の回転に関連付けられる。操作される参照サブピクチャが生成され、本質的に第2の回転が使用される。参照サブピクチャ操作は、例えば以下のステップを含み得る。最初に、第1の回転を使用して、参照サブピクチャが球体などの投影構造に投影されてもよい。第2の回転を使用して、投影構造上の画像データが、操作される参照サブピクチャに投影されてもよい。例えば、第2の回転を適用して球体画像を回転させ、次いで、球体画像を投影構造(例えば、立方体または円筒)に投影し、次いで、その投影構造を展開して2Dサブピクチャを形成することができる。
【0437】
点群映像の整列されていない投影面の補償
【0438】
上述したように、点群が1つまたは複数の投影面に投影されるとき、点群シーケンスが映像として符号化されてもよい。エンコーダは、時間とともに変化する方法で、投影面の特性をコンテンツに適合させることができる。投影面の特性には、3Dの位置、3Dの向き、形状、サイズ、投影フォーマット(例えば、正投影図法による投影または投影中心を有する幾何学的投影)、およびサンプリング解像度のうちの1つまたは複数が含まれ得るが、これらに限定されない。したがって、投影面のいずれかの特性が、参照ピクチャと符号化または復号されている現在のピクチャとの間で異なる場合、パッチ間の従来のインター予測は良好に機能しない可能性がある。したがって、投影面の特性を適応させると、それにより単一の時間インスタンスのレート歪み性能が向上したとしても、点群シーケンスを符号化する際のレート歪みパフォーマンスにペナルティが生じる可能性がある。
【0439】
一実施形態では、参照サブピクチャ操作は、投影間予測を含む。1つの投影からの1つまたは複数のサブピクチャ(テクスチャ画像およびジオメトリ画像)の1つまたは複数のパッチを、1つまたは複数の参照パッチを含む操作される参照サブピクチャを生成するためのソースとして使用することができる。操作される参照サブピクチャは、本質的に、符号化または復号されている現在のサブピクチャの投影面の特性を表すことができる。参照サブピクチャ操作処理では、再構築されたテクスチャサブピクチャおよびジオメトリサブピクチャに適用される投影面の特性を使用して、再構築されたテクスチャサブピクチャおよびジオメトリサブピクチャから点群を生成することができる。点群は、符号化または復号されている現在のテクスチャサブピクチャおよび/または現在のジオメトリサブピクチャに適用される投影面と同じまたは類似の特性を有し得る投影面の第2のセットに投影されてもよい。そして、この投影から、それぞれのテクスチャ予測ピクチャおよびジオメトリ予測ピクチャが形成される。
【0440】
一般化
【0441】
一実施形態では、参照サブピクチャ操作は、復号ピクチャバッファリングとは別の処理ではなく、復号ピクチャバッファリングの一部と見なされる。
【0442】
一実施形態では、参照サブピクチャ操作は、第1のビットストリームおよび第2のビットストリームからのサブピクチャにアクセスして、操作される参照サブピクチャを生成する。例えば、第1のビットストリームは、第1のビューポイントのテクスチャ映像を表してもよく、第2のビットストリームは、第1のビューポイントの深度映像または形状映像を表してもよく、操作される参照サブピクチャは、第2のビューポイントのテクスチャ映像を表してもよい。
【0443】
上記では、サブピクチャという用語に関連して実施形態について説明してきた。いくつかの事例では、時間インスタンスまたはアクセスユニットごとに1つのサブピクチャのみが存在し、したがって同様に、サブピクチャという用語の代わりにピクチャという用語に関連して実施形態について説明する可能性があることを理解する必要がある。
【0444】
上記の実施形態は、映像ベースの点群符号化、パッチベースのボリューム映像符号化、および複数の投影面を用いた360度映像符号化を含む多くの映像ベースの目的のために、コア映像符号化(復号)処理およびビットストリームフォーマットを多用途に使用するためのメカニズムおよびアーキテクチャを提供する。高度なアプリケーションに合わせた予測を可能にすることによって、単純な2D映像符号化と比較して圧縮効率が向上する可能性がある。
【0445】
上記の実施形態は、単一レイヤ2D映像コーデックを追加の機能とインターフェースするのに適している。
【0446】
一例による方法は、サブピクチャの符号化データを取得するステップを含み、サブピクチャはピクチャに属し、サブピクチャはサブピクチャシーケンスに属する。次いで、操作される参照サブピクチャのソースとしてサブピクチャを使用するかどうかが判定される。判定により、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると示された場合、そのサブピクチャは、操作される参照サブピクチャの基礎として使用される。言い換えると、操作される参照サブピクチャは、サブピクチャから生成されて、サブピクチャシーケンスの後続のサブピクチャの参照として使用される。
【0447】
操作には、例えば、サブピクチャを回転すること、サブピクチャをミラーリングすること、サブピクチャを再サンプリングすること、操作される参照サブピクチャの領域内へ配置すること、操作される参照サブピクチャの示された領域内にすでに存在するサンプルに重ね合わせるか、もしくはそれらとブレンドすること、または何らかの他の形式の操作が含まれ得る。上述の操作および/または他の操作の原理の2つ以上を使用して、操作される参照サブピクチャを生成することも可能であり得る。
【0448】
一実施形態による装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備え、メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、装置に、少なくとも
- サブピクチャの符号化データを取得することであって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、取得することと、
- 操作される参照サブピクチャのソースとしてサブピクチャを使用すべきかどうかを判定することと、
- 判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成することと
を実行させるように構成される。
【0449】
図16は、一実施形態による方法を示す流れ図である。方法は、第1のサブピクチャの符号化データを復号するステップ(1610)であって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、ステップと、第2のサブピクチャの符号化データを復号するステップ(1620)であって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、復号が第1のサブピクチャの符号化データの復号から独立している、ステップと、第3のサブピクチャの符号化データを復号するステップ(1630)であって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、復号が第1のサブピクチャを予測の参照として使用する、ステップとを含む。
【0450】
図17は、別の実施形態による方法を示す流れ図である。方法は、第1のサブピクチャのデータを符号化するステップ(1710)であって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、ステップと、第2のサブピクチャのデータを符号化するステップ(1720)であって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、符号化が第1のサブピクチャの符号化データの符号化から独立している、ステップと、第3のサブピクチャのデータを符号化するステップ(1730)であって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、符号化が第1のサブピクチャを予測の参照として使用する、ステップとを含む。
【0451】
一実施形態による装置は、第1のサブピクチャの符号化データを復号するための手段であって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、手段と、第2のサブピクチャの符号化データを復号するための手段であって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、復号が第1のサブピクチャの符号化データの復号から独立している、手段と、第3のサブピクチャの符号化データを復号するための手段であって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、復号が第1のサブピクチャを予測の参照として使用する、手段とを備える。手段は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとを含み、プロセッサは、プロセッサ回路をさらに含んでもよい。メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、装置に、様々な実施形態による図16の方法を実行させるように構成される。
【0452】
別の実施形態による装置は、第1のサブピクチャのデータを符号化するための手段であって、第1のサブピクチャが第1のピクチャに属し、第1のサブピクチャが第1のサブピクチャシーケンスに属する、手段と、第2のサブピクチャのデータを符号化するための手段であって、第2のサブピクチャが第1のピクチャに属し、第2のサブピクチャが第2のサブピクチャシーケンスに属し、符号化が第1のサブピクチャの符号化データの符号化から独立している、手段と、第3のサブピクチャのデータを符号化するための手段であって、第3のサブピクチャが第2のピクチャに属し、第3のサブピクチャが第1のサブピクチャシーケンスに属し、符号化が第1のサブピクチャを予測の参照として使用する、手段とを備える。手段は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとを含み、プロセッサは、プロセッサ回路をさらに含んでもよい。メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサによって、装置に、様々な実施形態による図17の方法を実行させるように構成される。
【0453】
装置、例えば符号化および/または復号するための装置の一例を図18に示す。装置の一般化された構造について、システムの機能ブロックに従って説明する。いくつかの機能は、単一の物理デバイスを用いて実行することができ、例えば、必要に応じて、すべての算出手順を単一のプロセッサを用いて実行することができる。図18の例による装置のデータ処理システムは、主処理ユニット100、メモリ102、記憶デバイス104、入力デバイス106、出力デバイス108、およびグラフィックサブシステム110を含み、これらはすべてデータバス112を介して互いに接続されている。
【0454】
主処理ユニット100は、データ処理システム内でデータを処理するように構成された従来の処理ユニットとすることができる。主処理ユニット100は、1つまたは複数のプロセッサもしくはプロセッサ回路を備えるかまたはそれらとして実装されてもよい。メモリ102、記憶デバイス104、入力デバイス106、および出力デバイス108は、当業者によって認識される従来の構成要素を含んでもよい。メモリ102および記憶デバイス104は、データをデータ処理システム100に記憶する。コンピュータプログラムコードは、例えば、実施形態による方法を実施するためにメモリ102内に存在する。入力デバイス106は、データをシステムに入力し、一方、出力デバイス108は、データ処理システムからそのデータを受信し、そのデータを、例えばディスプレイに転送する。データバス112は、従来のデータバスであり、単一の線として示されているが、プロセッサバス、PCIバス、グラフィカルバス、ISAバスの任意の組合せとすることができる。したがって、当業者であれば、装置が、コンピュータデバイス、パーソナルコンピュータ、サーバコンピュータ、携帯電話、スマートフォン、またはインターネットアクセスデバイス、例えばインターネットタブレットコンピュータなどの任意のデータ処理デバイスであり得ることを容易に認識する。
【0455】
メモリ内に存在して、関連する装置に方法を実行させるコンピュータプログラムコードを利用して、様々な実施形態を実装することができる。例えば、デバイスは、データを処理、受信、および送信するための回路および電子機器、メモリ内のコンピュータプログラムコード、ならびにコンピュータプログラムコードを実行するときにデバイスに実施形態の機能を実行させるプロセッサを備えてもよい。さらに、サーバのようなネットワークデバイスは、データを処理、受信、および送信するための回路および電子機器、メモリ内のコンピュータプログラムコード、ならびにコンピュータプログラムコードを実行するときにネットワークデバイスに実施形態の機能を実行させるプロセッサを備えてもよい。コンピュータプログラムコードは、1つまたは複数の動作上の特徴を含む。前記動作上の特徴は、前記プロセッサのタイプに基づく前記コンピュータによる構成によって定義されており、システムは、バスによって前記プロセッサに接続可能であり、システムのプログラム可能な動作上の特徴は、サブピクチャの符号化データを取得することであって、サブピクチャがピクチャに属し、サブピクチャがサブピクチャシーケンスに属する、取得することと、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきかどうかを判定することと、判定の結果、操作される参照サブピクチャのソースとしてサブピクチャを使用すべきであると判明した場合、さらに、サブピクチャシーケンスの後続のサブピクチャの参照として使用されるサブピクチャから、操作される参照サブピクチャを生成することを含む。
【0456】
必要に応じて、本明細書で説明した異なる機能が、異なる順序で、かつ/または他の機能と同時に実行されてもよい。さらに、必要に応じて、上記の機能および実施形態の1つまたは複数は、任意選択であるか、または組み合わされてもよい。
【0457】
独立請求項において実施形態の様々な態様が記載されているが、他の態様も、特許請求の範囲に明示的に記載されている組合せだけでなく、記載されている実施形態および/または従属請求項からの特徴と独立請求項の特徴との他の組合せを含む。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18