(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-19
(54)【発明の名称】ボリュメトリックビデオビットストリーム及び没入ビデオビットストリームのためのパッキング済みビデオフレームを生成する方法、装置、及び製造品
(51)【国際特許分類】
H04N 19/597 20140101AFI20230711BHJP
H04N 19/70 20140101ALI20230711BHJP
【FI】
H04N19/597
H04N19/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022561115
(86)(22)【出願日】2020-12-26
(85)【翻訳文提出日】2022-11-14
(86)【国際出願番号】 US2020067066
(87)【国際公開番号】W WO2021257120
(87)【国際公開日】2021-12-23
(32)【優先日】2020-06-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ボイス、ジル
(72)【発明者】
【氏名】サラヒエ、バゼル
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159PP03
5C159RC11
5C159SS26
5C159UA02
5C159UA05
(57)【要約】
パッキング済みビデオフレームを生成する方法、装置、システム及び製造品が開示される。本明細書において開示されるビデオ符号化システムは、ビデオ成分が配置されることになる領域を含むパッキング済みビデオフレームレイアウトを作成する構成判断部を備える。システムは、異なる領域に配置されたビデオ成分を含むパッキング済みビデオフレームを形成するフレーム生成部も備える。符号化システムは、(i)パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)領域内に含まれるビデオ成分のタイプ、又は(iii)領域のロケーション及び次元を識別する情報、を含む、パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成するフレーム情報生成部を更に備える。符号化システムのビデオエンコーダは、フレームを符号化し、符号化済みビットストリーム内にパッキング済みビデオフレームを含むことをシグナリングするパッキング済みビデオフレーム情報を含む。
【特許請求の範囲】
【請求項1】
ボリュメトリックビデオ符号化システムであって、
パッキング済みビデオフレームレイアウトを作成する構成判断部であって、前記パッキング済みビデオフレームレイアウトは、ビデオ成分が配置されることになる領域を含む、構成判断部と、
前記パッキング済みビデオフレームレイアウトの前記領域のうちの異なる領域に配置された前記ビデオ成分を含むパッキング済みビデオフレームを形成するパッキング済みビデオフレーム生成部と、
(i)前記パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)前記領域のうちのそれぞれの領域内に含まれるビデオ成分のそれぞれのタイプ、又は(iii)前記領域のロケーション及び次元を識別する情報、のうちの少なくとも1つを含む、前記パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成するパッキング済みビデオフレーム情報生成部と、
前記パッキング済みビデオフレームを符号化済みビットストリームに符号化するビデオエンコーダであって、前記符号化済みビットストリームは、前記パッキング済みビデオフレーム情報を含み、前記パッキング済みビデオフレーム情報は、前記符号化済みビットストリーム内に前記パッキング済みビデオフレームを含むことをシグナリングする、ビデオエンコーダと
を備える、ボリュメトリックビデオ符号化システム。
【請求項2】
前記ビデオ成分のタイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、請求項1に記載のボリュメトリックビデオ符号化システム。
【請求項3】
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたビデオ成分のそれぞれのタイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、請求項1又は請求項2に記載のボリュメトリックビデオ符号化システム。
【請求項4】
同じパッキング済みビデオフレーム内のボリュメトリックビデオデータは、同じサンプリングフォーマット及びビット深度を有する、請求項1~3のいずれか1項に記載のボリュメトリックビデオ符号化システム。
【請求項5】
前記ビットストリームを復号するのに使用されることになるデコーダの数に対する制約が違反されないことを検証するデコーダ数検証部を更に備える、請求項1~4のいずれか1項に記載のボリュメトリックビデオ符号化システム。
【請求項6】
(i)独立して復号することができる前記パッキング済みビデオフレームの領域及び(ii)対応する領域識別子を識別する独立復号可能領域識別部と、
前記領域識別子を含み、前記領域識別子に対応する前記領域を独立して復号することができることを示すメッセージを生成するメッセージ生成部と、
前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する多重化部と
を更に備える、請求項1~5のいずれか1項に記載のボリュメトリックビデオ符号化システム。
【請求項7】
少なくとも1つのプロセッサに、少なくとも、
パッキング済みビデオフレームレイアウトを作成する手順であって、前記パッキング済みビデオフレームレイアウトは、ビデオ成分が配置されることになる領域を含む、手順と、
前記パッキング済みビデオフレームレイアウトの前記領域のうちの異なる領域に配置された前記ビデオ成分を含むパッキング済みビデオフレームを形成する手順と、
(i)前記パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)前記領域のうちのそれぞれの領域内に含まれるビデオ成分のそれぞれのタイプ、又は(iii)前記領域のロケーション及び次元を識別する情報、のうちの少なくとも1つを含む、前記パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成する手順と、
前記パッキング済みビデオフレームを符号化済みビットストリームに符号化する手順であって、前記符号化済みビットストリームは、前記パッキング済みビデオフレーム情報を含み、前記パッキング済みビデオフレーム情報は、前記符号化済みビットストリーム内に前記パッキング済みビデオフレームを含むことをシグナリングする、手順と
を実行させるための、コンピュータプログラム。
【請求項8】
前記ビデオ成分のタイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、請求項7に記載のコンピュータプログラム。
【請求項9】
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、請求項7又は請求項8に記載のコンピュータプログラム。
【請求項10】
同じパッキング済みビデオフレーム内に配置されるボリュメトリックビデオデータは、同じサンプリングフォーマット及びビット深度を有する、請求項7~9のいずれか1項に記載のコンピュータプログラム。
【請求項11】
前記少なくとも1つのプロセッサに、前記ビットストリームを復号するのに使用されることになるデコーダの数に対する制約が違反されないことを検証する手順を更に行わせる、請求項7~10のいずれか1項に記載のコンピュータプログラム。
【請求項12】
前記少なくとも1つのプロセッサに、
(i)独立して復号することができる前記パッキング済みビデオフレームの領域及び(ii)対応する領域識別子を識別する手順と、
前記領域識別子を含み、前記領域識別子に対応する前記領域を独立して復号することができることを示すメッセージを生成する手順と、
前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する手順と
を更に行わせる、請求項7~11のいずれか1項に記載のコンピュータプログラム。
【請求項13】
前記少なくとも1つのプロセッサに、
独立して復号することができる前記パッキング済みビデオフレームの領域を識別する手順と、
独立して復号されることになる前記パッキング済みビデオフレームの前記領域を識別するメッセージを生成する手順と、
前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する手順と
を行わせるための、請求項7~12のいずれか1項に記載のコンピュータプログラム。
【請求項14】
ボリュメトリックビデオ復号システムであって、
パッキング済みビデオフレームを含むサブビットストリームからパッキング済みビデオフレーム情報を抽出するパース部であって、前記パッキング済みビデオフレーム情報は、(i)パッキング済みビデオフレームレイアウト、(ii)前記パッキング済みビデオフレームレイアウトの領域を一意に識別する領域識別子、及び(iii)領域ロケーション及び次元情報を含む、パース部と、
前記サブビットストリームの前記パッキング済みビデオフレームを復号するビデオデコーダと、
前記パッキング済みビデオフレーム情報に基づいて、前記パッキング済みビデオフレームの前記領域を、レンダリングされることになるボリュメトリックビデオシーケンスの少なくとも一部にマッピングするマッピング部と
を備える、ボリュメトリックビデオ復号システム。
【請求項15】
前記領域のうちのそれぞれの領域は、それぞれのビデオ成分タイプを含み、前記ビデオ成分タイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、請求項14に記載のボリュメトリックビデオ復号システム。
【請求項16】
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、請求項14又は請求項15に記載のボリュメトリックビデオ復号システム。
【請求項17】
前記パース部は、前記サブビットストリームからメッセージを更に抽出し、前記メッセージは、領域識別子、独立してコード化されることになる前記領域識別子に対応する領域を有する補足強化情報を含む、請求項14~16のいずれか1項に記載のボリュメトリックビデオ復号システム。
【請求項18】
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるタイルインデックスに基づいて判断される、請求項17に記載のボリュメトリックビデオ復号システム。
【請求項19】
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるサブピクチャ識別子に基づいて判断される、請求項17に記載のボリュメトリックビデオ復号システム。
【請求項20】
ボリュメトリックビデオを復号する方法であって、
パッキング済みビデオフレームを含むサブビットストリームからパッキング済みビデオフレーム情報を抽出する段階であって、前記パッキング済みビデオフレーム情報は、(i)パッキング済みビデオフレームレイアウト、(ii)前記パッキング済みビデオフレームレイアウトの領域を一意に識別する領域識別子、及び(iii)領域ロケーション及び次元情報を含む、段階と、
前記サブビットストリームの前記パッキング済みビデオフレームを復号する段階と、
前記パッキング済みビデオフレーム情報に基づいて、前記パッキング済みビデオフレームの前記領域を、レンダリングされることになるボリュメトリックビデオシーケンスの少なくとも一部にマッピングする段階と
を備える、ボリュメトリックビデオを復号する方法。
【請求項21】
前記領域のうちのそれぞれの領域は、それぞれのビデオ成分タイプを含み、前記ビデオ成分タイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、請求項20に記載の方法。
【請求項22】
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、請求項20又は請求項21に記載の方法。
【請求項23】
パース部は、前記サブビットストリームからメッセージを更に抽出し、前記メッセージは、領域識別子、独立してコード化されることになる前記領域識別子に対応する領域を有する補足強化情報を含む、請求項20~22のいずれか1項に記載の方法。
【請求項24】
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるタイルインデックスに基づいて判断される、請求項23に記載の方法。
【請求項25】
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるサブピクチャ識別子に基づいて判断される、請求項23に記載の方法。
【請求項26】
請求項7~13のいずれか一項に記載のコンピュータプログラムを格納した1または複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本特許は、2020年6月17日に提出された米国特許出願第63/040369号の利益を主張する。米国特許出願第63/040369号は、本明細書によって、その全体が参照によって本明細書に組み込まれる。米国特許出願第63/040369号に対する優先権が、本明細書によって主張される。
【0002】
本開示は、概して、没入ビデオに関し、より具体的には、没入ビデオビットストリームのためのデータパックを生成する方法及び装置に関する。
【背景技術】
【0003】
ボリュメトリックビデオは、複数のビデオ処理ツール及びカメラを使用してキャプチャされ、結果は、3自由度においてフォーマット化される。したがって、ユーザには、ボリュメトリックビデオによって描写された仮想環境を介して別の時間/場所に没入している感覚及び視点が提供される。加えて、ユーザは、仮想環境内を動き回ることができ、ユーザが別の空間又は時間にトランスポートされたという感覚が更にもたらされる。したがって、仮想/拡張/混合現実応用を含むボリュメトリックビデオを使用する商用応用は、急速に改善しており、ボリュメトリックビデオ技術の人気及び有望性は、この分野への関心の急激な高まりを引き起こしている。
【図面の簡単な説明】
【0004】
【
図1A】本発明に係る、アトラス情報をパッキングすることができる例示の第1のパック構成の図である。
【0005】
【
図1B】アトラス情報をパッキングすることができる例示の第2のパック構成の図である。
【0006】
【
図1C】アトラス情報をパッキングすることができる例示の第3のパック構成の図である。
【0007】
【
図2】本発明に係る、例示のフレームパッキング部を有する例示のビデオエンコーダのブロック図である。
【0008】
【
図3】本発明の例示の実施形態に係る、
図2の例示のフレームパッキング部のブロック図である。
【0009】
【
図4A】パッキング済みビデオデータを表すユニットヘッダタイプを含めるためのV3Cユニットヘッダタイプに対する例示の修正を表すテーブルである。
【0010】
【
図4B】V3Cユニットがパッキング済みビデオデータを含むことをV3Cユニットヘッダが示す場合に取得及び/又は生成すべきV3Cユニット情報を識別する擬似コードである。
【0011】
【
図4C】V3Cユニットがパックビデオ及び対応するパック情報を含むときを識別するためにV3Cパラメータセットを修正することができる方法を識別する擬似コードである。
【0012】
【
図4D】MIVメインプロファイル及びMIV拡張プロファイルのためのシンタックス要素の可能な値を示すV3Cプロファイルの定義を表すテーブルである。
【0013】
【
図5】
図2及び
図3のフレームパッキング部のパック情報生成部を実装する擬似コードである。
【0014】
【
図6】
図2及び
図3の例示のフレームパッキング部の例示のパック情報生成部を実装する擬似コードである。
【0015】
【
図7】本発明に係る、例示のフレームアンパッキング部を有する例示のデコーダのブロック図である。
【0016】
【
図8】本発明の例示の実施形態に係る、
図7の例示のフレームアンパッキング部を含む
図7のデコーダの一部のブロック図である。
【0017】
【
図9】
図6及び
図7の例示のフレームアンパッキング部の少なくとも一部を実装するのに使用することができる擬似コードである。
【0018】
【
図10A】
図2及び
図3の例示のエンコーダを実装する例示のプログラムを示すフローチャートである。
【
図10B】
図2及び
図3の例示のエンコーダを実装する例示のプログラムを示すフローチャートである。
【0019】
【
図11】
図2及び
図3のフレームパッキング部、エンコーダ及び多重化部を実装する例示のプログラムを示すフローチャートである。
【0020】
【
図12】
図2及び
図3のエンコーダのデコーダ数検証部を実装する例示のプログラムを示すフローチャートである。
【0021】
【
図13】
図8の例示のデコーダ検証部を実装するのに使用することができる擬似コードである。
【0022】
【
図14】
図7及び
図8のデコーダを実装する例示のプログラムを示すフローチャートである。
【0023】
【
図15】
図7及び
図8のフレームアンパッキング部を実装する例示のプログラムを示すフローチャートである。
【0024】
【0025】
【
図17】例示のデコーダを実装するために
図14及び
図15の命令を実行するように構造化された例示の処理プラットフォームのブロック図である。
【0026】
図は縮尺どおりではない。一般に、図面及び添付の記述された明細書全体を通して、同じ又は同様の部分を参照するために同じ参照番号が使用される。本明細書において使用される場合、接続についての言及(例えば、アタッチされた、結合された、接続された、及び接合された)は、別段示されない限り、接続についての言及によって参照される要素間の中間部材及び/又はそれらの要素間の相対的な移動を含み得る。したがって、接続についての言及は、必ずしも、2つの要素が直接接続され、及び/又は互いに固定された関係にあることを推論するわけではない。
【0027】
別段の言及がない限り、「第1の」、「第2の」、「第3の」等のような記述子は、優先順位、物理的な順序、リスト内の配置、及び/又は順序付けについてのいかなる意味も決して推定する又は別様に示すことなく、本明細書において使用されるが、開示される例を理解しやすくするために要素を区別するためのラベル及び/又は任意の名称として使用されているにすぎない。幾つかの例では、「第1の」という記述子は、詳細な説明における要素を指すのに使用され得るが、同じ要素が、請求項内で、「第2の」又は「第3の」等の異なる記述子を用いて称され得る。そのような例では、そのような記述子は、例えば本来であれば同じ名称を共有し得る要素を明確に識別するために使用されているにすぎないことが理解されるべきである。
【発明を実施するための形態】
【0028】
ビジュアルボリュメトリックビデオは、ビジュアルボリュメトリックビデオコード化(V3C)フレームの集合を指す。V3Cフレームは、V3Cフレームの3次元情報を2次元画像の集合に変換することによって符号化される。その後、2次元画像は、任意のビデオ及び画像コード化仕様(例えば、ISO/IEC14492-10、ISO/IEC23008-2等のような)を使用して符号化することができる。2次元符号化画像に関連付けられたV3Cデータは、3次元ビデオを再作成するためにV3Cを再構成するのに使用することができる。
【0029】
カメラによってキャプチャされるビューは、基本ビューとして表すこともできるし、追加ビューとして表すこともできる。基本ビューは、カメラによってキャプチャされているビューに対応するビデオデータの全てを含む。対照的に、追加ビューは、基本ビューの位置に対する別のビューの再投影に対して異なるキャプチャされたビューの1つ又は複数のパッチ(部分)に対応するビデオデータを含む。それゆえ、1つ又は複数の基本ビューが取得された後に、各ビューを再構成するのに必要な情報の全てを、全体的に再送する代わりに、時点間で変化した基本ビューの部分(パッチ)に関する情報のみが送信される。
【0030】
送信されるビューの部分は、パッチと称され、アトラス内に含まれ/表される。アトラス又はアトラスタイル内で、パッチは、ビュー内の特定の位置における成分を表す。アトラスは、1つ又は複数のアトラスタイルを含む。成分は、様々なタイプのビデオデータであり、ジオメトリ、色、反射率、表面情報、テクスチャ、占有、材料、物体等に関係付けられたデータを含むことができる。アクセスユニットは、同じ時点において複数のカメラ上でキャプチャされた複数のビューに対応する、1つ又は複数のアトラスを含み、結果として、アクセスユニットは、同じ時点に全て対応するアトラスの集合を含む。
【0031】
多くの場合、ユーザにとっての高品質の没入体験を達成するために、V3Cビデオは、多くのカメラを使用してキャプチャされ、大量のビデオデータが得られる。さらに、幾つかの事例では、V3Cビデオ及び/又はMPEG没入ビデオデータに関連付けられた属性(及び他のタイプの情報)は、別個のビデオサブビットストリームにおいて明示的にシグナリングされることになる。例えば、MPEG没入(MIV)ビデオアクセスユニットは、同じ復号順序カウントを共有する全てのサブビットストリーム構成ユニットを指す。サブビットストリーム構成ユニットは、占有情報を含むサブビットストリーム構成ユニット、属性を含むサブビットストリーム構成ユニット、ジオメトリ情報を含むサブビットストリーム構成ユニット等を含むことができる。それゆえ、別個のデコーダを各々要求する多数のサブビットストリームが、符号化済みビジュアルボリュメトリックビデオ送信内に含まれ得る。
【0032】
ビットストリームの数及び大量のビデオデータに起因して、複数のデコーダインスタンス化が、典型的には、ビデオを再構成するとともにデコーダインスタンス化の動作を同期させるために要求される。パーソナルコンピュータ等のハイエンドデバイスは、概して、ビジュアルボリュメトリックビデオデータの様々なビットストリームを同期的にハンドリングするのに十分なデコーダインスタンス化を有するが、モバイル電子デバイスは、典型的には、複数のビデオデコーダインスタンス化を同期させる機能は備えていない。結果として、モバイル電子デバイスは、多くの場合、ユーザに高品質の没入ビデオ体験を提供することが不可能である。
【0033】
本明細書において開示されるシステム、方法、装置、及び製造品は、V3Cビデオデータを符号化する前にフレームパッキング技法を使用する。本明細書において開示されるフレームパッキング技法を使用することにより、より少ないビットストリームがもたらされ、それゆえ、必要とされるデコーダインスタンス化が少なくなる。フレームパッキング技法は、未加工ビデオデータから3次元画像を再構成するためにデコーダにおいて使用されることになる情報を含む1つ又は複数のパッキング済みビデオフレームをもたらす。本明細書において使用される場合、「パッキング済みビデオフレーム」は、複数の領域、個々の領域を含む、フレームパッキングされたビデオレイアウトを指す。各領域は、アトラス又はアトラスタイル(例えば、ジオメトリ、占有、属性等)に関連付けられたビデオ成分データのタイプ(本明細書において「ビデオデータタイプ」又は「ビデオデータのタイプ」とも称される)を含む。各領域は、アトラス又はアトラスタイルのジオメトリ、占有、又は属性ビデオサブビットストリームを表すことができる。各領域は、本来であれば成分データ(例えば、ジオメトリ、占有、属性等)の1つのタイプのみを含むビデオサブビットストリームによって搬送されることになるデータを表す。さらに、幾つかの例では、パッキング済みビデオフレームは、(必要な場合、例えば、符号化済み出力データをビデオコーデックに対してより扱いやすくするために)占有されていない空間のパディングが許容されるように、領域によって完全に占有される必要はない。本明細書において使用される場合、rect、矩形、reg及び領域という用語は、交換可能に使用される。本明細書において説明されるように、領域は矩形のジオメトリ形状を取ることができるが、領域は、その代わりに、任意の形状を取ることができ、決して矩形形状に限定されない。本明細書において使用される場合、変数のうちの幾つかは、「rect」を含み、そのような例では、「rect」は、領域(「reg」とも略称される)を指すために使用される。
【0034】
本明細書において開示されるフレームパッキング技法は、ボリュメトリックビデオデータの符号化済みビデオサブビットストリームが供給されるパッキング済みフレームビデオ情報を使用する。パッキング済みフレームビデオ情報は、デコーダにおいて、パッキング済みフレーム内に含まれる領域、領域のロケーション及び次元に関する情報、領域内に含まれるビデオ成分のタイプに関する情報、領域を、レンダリングすべきビデオフレームのシーケンスにマッピングすることができるマッピング情報等を識別するのに使用される。この情報の生成及び符号化済みボリュメトリックビデオデータへの供給は、パッキング済みフレームをエンコーダにおいて生成し、その後、デコーダにおいてアンパッキングすることを可能にする。さらに、幾つかの例では、独立復号可能領域を識別することができ、そのような領域の存在をシグナリングし、それらの領域をどこで特定するかに関する情報を提供するために補足強化情報(SEI:supplemental enhancement information)メッセージを生成することができる。そのような例では、複数の独立復号可能領域を、複数のデコーダによって並列に復号することができる。
【0035】
本明細書において開示されるフレームパッキング技法は、符号化済みビデオを復号するのに必要とされるデコーダインスタンス化の数を削減し、これはなぜならば、(通常であれば成分タイプを各々表す複数のサブビットストリームにおいて搬送されることになる)アトラス内に含まれる情報を、単一のデコーダを用いて復号することができる単一のパッキング済みビデオフレームに挿入することができるので、符号化済みビデオ信号を搬送するのに必要とされるビットストリームの数が低くなるためである。フレームパッキング技法が1つよりも多くのパッキング済みビデオフレームの作成をもたらす場合であっても、作成されるパッキング済みビデオフレームの数及びパッキング済みビデオフレームを復号するのに必要とされるデコーダの対応する数は、以下で更に説明されるように、符号化済みビデオがパッキング済みビデオフレームでなければ必要とされるであろうデコーダの数よりも少ない。
【0036】
図1Aは、本発明に係る、アトラス情報をパッキングすることができる例示の第1のパッキング済みビデオフレーム構成100Aの図である。
図1Aの例では、異なるアトラスのテクスチャデータ、ジオメトリデータ及び占有データに関するメタデータが、パッキング済みビデオフレーム(例えば、パック0A、パック1A、パック2A、パック3A、パック4A、及びパック5A)のセットに挿入される領域内に含まれる。
図1Aの例では、パック1Aの初期領域「r0」102Aには、第1のアトラス「a0」のテクスチャデータが装入され、パック0Aの第2の領域「r1」104Aには、アトラスa0のジオメトリデータが装入され、パック0の部分106Aは未装入である。基本ビューは占有データを含まないので、アトラスa0は、基本ビューを表すと仮定される。
【0037】
図1Aの例では、パッキング済みビデオフレーム(「パック1A」)は、3つの領域(例えば、領域r0 108A、領域r1 110A、及び領域r2 112A)内に含まれる、アトラスa0、及びアトラスa1からのデータを含む。パック1Aの領域r0は、アトラス「a1」からのテクスチャデータを含む。パック0Aの領域r1 110Aは、アトラスa0からのジオメトリデータを含む。幾つかの例では、パック1Aの領域r2 112は、アトラスa1からの占有データを含む。さらに、領域r2は、本来であれば空の領域の部分114Aを占有する。
【0038】
図1Aの例では、パック2Aの領域「r0」116Aには、アトラスa2のテクスチャデータが装入され、領域「r1」118Aには、アトラスa2のジオメトリデータが装入され、パック2Aの部分120Aは未装入である。
【0039】
図1Aの例では、パック3Aの領域r0 122Aには、アトラス「a3」のテクスチャデータが装入され、領域r1 124Aには、アトラスa3のジオメトリデータが装入される。加えて、領域r2 126Aには、アトラスa3の占有データが装入され、部分128A(領域r2が配置される)は本来であれば未装入である。
【0040】
図1Aの例では、パック4の領域r0 130Aには、アトラス「a4」のテクスチャデータが装入され、領域r1 132Aには、アトラスa4のジオメトリデータが装入され、パック4の部分134Aは未装入である。
【0041】
さらに、
図1Aの例では、パック5Aの領域r1 136Aには、アトラス「a5」のテクスチャデータが装入され、領域r1 138Aには、アトラスa5のジオメトリデータが装入される。加えて、領域r2 140Aには、アトラスa5の占有データが装入され、領域r2 140Aを含む部分142Aは本来であれば未装入である。
【0042】
それゆえ、
図1Aのフレームパック構成100Aは、6つの異なるアトラスからのデータの6つのパッキング済みビデオフレーム(パック0A、パック1A、パック2A、パック3A、パック4A及びパック5A)のシーケンスを示している。示されているように、6つのアトラスに関連付けられたデータがパッキングされ、当該アトラスのうちの3つは、データの2つのタイプ(テクスチャ及びジオメトリ)に関連付けられ、当該アトラスのうちの3つは、データの3つのタイプ(テクスチャ、ジオメトリ及び占有)に関連付けられる。
図1Aの6つのパッキング済みビデオフレーム内で表されるデータが従来の技法を使用して送信される場合、データを搬送するために15(例えば、(3*2)+(3*3)=15)個のサブビットストリームが要求されることになるとともに、データを復号するために15個の異なるデコーダが要求されることになる。
図1Aの構成100Aを使用することによって、データを搬送するために6つのビットストリームのみ(パッキング済みビデオフレームごとに1つずつ)が要求され、したがって、6つのビットストリームを復号するために6つのデコーダのみが要求される。上記で説明されたように、第1のパッキング済みビデオフレーム構成100Aは、6つのパッキング済みビデオフレーム(パック0、パック1、パック2、パック3、パック4、パック5)を含むパッキング済みビデオフレームのシーケンスの同じパッキング済みビデオフレーム内の同じアトラスの異なるビデオ成分のパッキングを示している。
【0043】
図1Aにおいて示されているように、パッキング済みビデオフレームの各々は、パック2において示されているようにビデオパックにおける特定のロケーションを有するブロックのセットから形成される。幾つかの例では、各々の各ブロックの情報は、最終的にはボリュメトリックビデオシーケンスにマッピングされる。そのようなマッピングの例が以下で説明される。ブロックは各領域に関連付けられているが、明確性のためにパック2のみにおいて示されている。
【0044】
図1Bは、複数のアトラスタイルからの情報/データをパッキングすることができる例示の第2のパッキング済みビデオフレーム構成100Bの図である。第2のパッキング済みビデオフレーム構成は、3つのパッキング済みビデオフレーム(例えば、パッキング済みビデオフレームパック0B、パッキング済みビデオフレームパック1B、及びパッキング済みビデオフレームパック2B)を含む。第2のパッキング済みビデオフレーム構成100Bでは、第1のパッキング済みビデオフレームパック0Bは、6つの領域(領域r0 102B、領域r1 104B、領域r2 106B、領域r3 108B、領域r4 110B、及び領域r5 112B)を含む。
図1Bの例示の第2の構成では、パック0Bの領域の6つ全てがテクスチャデータを含み、各領域内に含まれるテクスチャデータは、異なるアトラスタイル(例えば、それぞれ、アトラスタイルa0、アトラスタイルa1、アトラスタイルa2、アトラスタイルa3、アトラスタイルa4、及びアトラスタイルa5)に関連付けられる。
【0045】
第2のパッキング済みビデオフレーム1Bも6つの領域(領域r0 114B、領域r1 116B、領域r2 118B、領域r3 120B、領域r4 122B、及び領域r5 124B)を含む。6つの領域全てがジオメトリデータを含み、パック1Bの各領域内に含まれるジオメトリデータは、異なるアトラスタイル(例えば、それぞれ、アトラスタイルa0、アトラスタイルa1、アトラスタイルa2、アトラスタイルa3、アトラスタイルa4、及びアトラスタイルa5)に関連付けられる。第3のパッキング済みビデオフレームであるパック2Bは、3つの領域、すなわち、領域r0 126B、領域r1 128B、及び領域r3 130Bを含み、これらの各々は、異なるアトラスタイル(それぞれ、アトラスタイルa0、アトラスタイルa3、及びアトラスタイルa5)の占有データを含む。第2のフレームパッキング済みビデオフレーム構成100Bは、それゆえ、6つのアトラスタイルのアトラスデータを含み、当該6つのアトラスタイルにおいて、当該アトラスタイルのうちの3つにジオメトリ及びテクスチャデータが含まれるとともに、当該アトラスタイルのうちの3つにジオメトリ、テクスチャ及び占有データが含まれる。
【0046】
図1Cは、パック0C及びパック1Cを含む例示の第3のパッキング済みビデオフレーム構成100Cを示している。第3のパッキング済みビデオフレーム構成100Cでは、パック0Cは、6つの領域(reg r0 102C、reg r1 104C、reg r2 106C、reg r3 108C、reg r4 110C、reg r5 112C)を含む。reg r0 102C、reg r1 104C、及びreg r2 106Cは各々、パック0Cのエリアのうちの4分の1を占有する。reg r0 102C、reg r1 104C及びreg r2 106Cの各々は、それぞれ、アトラスタイルa0、アトラスタイルa2及びアトラスタイルa4に対応するテクスチャデータを含む。パック0Cは、各々がパック0Cのエリアの16分の1を占有する3つの領域(reg r3 108C、r4 110C、r5 114C)も含む。3つの領域(reg r3 108C、r4 110C、r5 114C)の各々は、それぞれ、アトラスタイルa0、アトラスタイルa2、及びアトラスタイルa4からのジオメトリデータを含む。それゆえ、パック0は、アトラスタイルa0、アトラスタイルa2及びアトラスタイルa4のテクスチャ及びジオメトリデータを含み、アトラスタイルの各々は、基本ビューを表す。パック0Cの16分の1は、いずれのデータも含まない。
【0047】
図1Cのパック1Cは、各々がパック1Cのエリアのうちの4分の1を占有する3つの領域(reg r0 116C、reg r1 118C、及びreg r2 120C)を含む。3つの領域(reg r0 116C、reg r1 118C、及びreg r2 120C)の各々は、それぞれ、アトラスタイルa1、アトラスタイルa3及びアトラスタイルa5に対応するテクスチャデータを含む。パック1Cは、各々がパック1Cのエリアのうちの16分の1を占有する3つの領域(reg r3 122C、reg r4 124C、及びreg r5 126C)も含む。3つの領域(reg r3 122C、reg r4 124C、及びreg r5 126C)の各々は、それぞれ、アトラスタイルa1、アトラスタイルa3及びアトラスタイルa5からのジオメトリデータを含む。加えて、パック1Cは、3つの領域(reg r6 126C、reg r7 128C、及びreg r8 130C)を含む。reg r6及びreg r8は各々、パック1Cのエリアの32分の1を占有し、reg r7は、パック1Cのエリアの32分の1よりも小さいエリアを占有する。3つの領域(reg r6 126C、reg r7 128C、及びreg r8 130C)の各々は、それぞれ、アトラスタイルa1、アトラスタイルa3及びアトラスタイルa5からの占有データを含む。それゆえ、
図1Cのパック1Cは、アトラス(アトラスタイルa0、アトラスタイルa2及びアトラスタイルa4)のテクスチャ及びジオメトリデータを含み、アトラス(アトラスa1、アトラスa3、及びアトラスa5)の占有データも含む。パック1Cは、データがない部分134Cを更に含む。同じパッキング済みビデオフレーム内でともにパッキングされる個々の成分は、異なるフレームレートにおいてコード化され得る(例えば、アプリケーションに依存して更なる圧縮を達成する、又は所望の特徴をサポートするために、テクスチャアトラスのパッキング済みビデオフレームは、60fpsにおいて送信することができ、一方、ジオメトリアトラスのパッキング済みビデオフレームは、送信30fpsにおいて送信され得る)ことに留意されたい。
図1A、
図1B、及び
図1Cの例示の構成は同じサイズのアトラス又はアトラスタイルに基づくと仮定されているが、アトラス又はアトラスタイルは、その代わりに、異なるサイズとすることができる。
【0048】
符号化済みビデオビットストリームは、ビデオデータの符号化済み表現を含む。より具体的には、ビットストリームは、一連のネットワーク抽象化層(NAL)ユニットを含む。NALユニットの各々は、NALユニットヘッダ及びローバイトシーケンスペイロード(RBSP)を含む。ビットストリーム内に同様に含まれる情報は、RBSPの末尾を識別するのに使用することができる。幾つかの例では、ユニットは、1つよりも多くのパッキング済みビデオフレーム(例えば、パッキング済みビデオフレームのシーケンス)を含むことができる。
【0049】
単に例示の目的で、
図1A、
図1B及び
図1Cの領域は、矩形である。実用時、領域は、領域が重ならないことを条件として任意の形状を取ることができる。
【0050】
ここで
図2を参照すると、
図2は、本開示の教示に係る簡略化された符号化システム200のブロック図である。簡略化された符号化システム200は、例示のキャプチャ済みビデオデータ及びメタデータストレージ202、例示のビデオ及びメタデータプリプロセッサ204、例示のパラメータ/アトラスデータ供給部206、例示のジオメトリビデオデータ供給部208、例示の属性ビデオデータ供給部210、例示の占有ビデオデータ供給部212、例示のビットストリームフォーマット部216、例示のフレームパッキング部218、例示のエンコーダ220、及び例示の多重化部222を備える。
【0051】
幾つかの例では、キャプチャ済みビデオデータ及びメタデータは、例示のキャプチャ済みビデオデータ及びメタデータストレージ202に記憶される。例示のビデオメタデータプリプロセッサ204は、ビデオデータ及びメタデータを検査し、メタデータ(例えば、パラメータ及びアトラスデータ)を、ビデオデータ内に含まれるビデオの異なるタイプ(例えば、ジオメトリ、属性、占有等)から分離する。さらに、ビデオ及びメタデータプリプロセッサ204は、ビデオデータの異なるタイプを(ジオメトリ、属性及び占有データを互いから)分離し、その各々を、それぞれ、ジオメトリビデオ供給部208、属性ビデオデータ供給部210、及び占有ビデオ供給部212に供給する。幾つかの例では、パラメータ及びアトラスデータは、パラメータ及びアトラスデータ供給部206に供給される。ジオメトリビデオデータ供給部208、属性ビデオデータ供給部210及び占有ビデオ供給部212は、それぞれ、ジオメトリビデオデータ、属性ビデオデータ及び占有ビデオデータを、例示のフレームパッキング部218に供給し、パラメータ/アトラスデータ供給部206は、パラメータ/アトラスデータを例示のビットストリームフォーマット部216に供給する。ビデオデータタイプは、本明細書においてビデオ成分タイプとも称される。
【0052】
幾つかの例では、ジオメトリビデオデータ、属性ビデオデータ及び占有ビデオデータは、例示のパッキング済みビデオフレームパッキング部218に供給される。加えて、パラメータ/アトラスデータは、例示のビットストリームフォーマット部216に供給される。幾つかの例では、ビットストリームフォーマット部216及びパッキング済みビデオフレームパッキング部218は、パッキング済みビデオフレームパッキング部218に供給されたジオメトリ、属性及び占有データを含む、パッキング済みビデオフレーム構成(例えば、
図1Aのパッキング済みビデオフレーム構成、
図1Bのパッキング済みビデオフレーム構成、及び/又は
図1Cのパッキング済みビデオフレーム構成)を判断するのに必要とされる情報を共有する。幾つかの例では、パッキング済みビデオフレームパッキング部218は、任意の適した符号化方法を使用して符号化するために、パッキング済みビデオフレームを例示のエンコーダ220に供給する。パッキング済みビデオフレームパッキング部218は、パッキング済みビデオフレームを生成することに加えて、レンダリングのためにボリュメトリックビデオシーケンスを生成する目的でパッキング済みビデオフレーム内に含まれるビデオの領域がどこに配置されることになるのかを判断する際にデコーダによって使用するためにパッキング済みビデオフレーム情報も生成する。
【0053】
例示のビットストリームフォーマット部216は、フレームパッキング部218によって生成されるパッキング済みビデオフレーム内に含まれるビデオデータに対応するパラメータ/アトラスデータ206のためのビットストリームフォーマットを判断する。幾つかの例では、パラメータ/アトラスデータ206は、SEIメッセージを更に含む。幾つかの例では、SEIメッセージ情報は、パッキング済みビデオフレームパッキング部218によってビットストリームフォーマット部216に供給される。幾つかの例では、ビットストリームフォーマット部216は、ビットストリームフォーマット情報を供給し、エンコーダ220は、符号化済みパッキング済みビデオフレームおよびパッキング済みビデオフレーム情報を例示の多重化部222に供給し、例示の多重化部222は、ビットストリームフォーマット情報を符号化済みパッキング済みビデオフレームと多重化するように動作する。幾つかの例では、SEIメッセージは、他の領域から独立して復号することができる、1つ又は複数のパッキング済みビデオフレームの1つ又は複数の領域を識別する。幾つかの例では、そのような領域を、それぞれのデコーダによって並列に復号することができる。
【0054】
図3は、
図2の例示のフレームパッキング部218のブロック図である。幾つかの例では、
図3のフレームパッキング部218は、例示のプロファイル/階層/レベルストレージ302、例示のパッキング済みビデオフレームフラグ設定部304、例示のパッキング済みビデオフレームパック構成判断部306、例示のアトラス/アトラスタイル識別部307、例示のジオメトリビデオ収集部308、例示の属性ビデオreg収集部生成部310、例示の占有ビデオ収集部生成部312、例示のパッキング済みビデオフレーム生成部314、例示のパッキング済みビデオフレーム情報生成部316、例示のメタデータストレージ318、例示のパッキング済みビデオフレームストレージ322、例示のメタデータ供給部324、例示のパッキング済みビデオフレーム供給部326、例示のデコーダ数検証部328、例示の評価部330、例示のパッキング済みビデオフレームフラグストレージ332、例示のパッキング済みビデオフレームフラグ設定部333、例示のパッキング済みビデオフレームフラグ加算部334、例示のパッキング済みビデオフレームチェック部336、例示のreg減算部338、及び例示の比較部340を備える。
【0055】
幾つかの例では、エンコーダ220は、プロファイルフィールド、階層フィールド及びレベルフィールドを定義するシンタックスを有するビデオ符号化規格に従って動作する。幾つかの例では、ビデオコード化規格の「プロファイル」は、いずれのコード化ツールが使用され得るかを定義する。例えば、符号化システム200について、プロファイルは、符号化システム200がコード化済みビットストリームを生成するのに使用することができるコード化ツールのセットを指定することができる。同様に、エンコーダプロファイルは、ビデオデコーダがプロファイルに関連付けられたビットストリームを復号することが可能であるために有しなければならないコード化ツールのセットを含む、ビデオエンコーダによって生成されたビデオデータを復号することができるビデオデコーダのタイプを指定することができる。幾つかの例では、レベルは、シンタックス要素によって取られ得る値及びビデオコード化規格の変数に対する制約の定義されたセットである。階層は、ビットストリーム内のシンタックス要素の値又は変数の値に対して課されるレベル制約の指定されたカテゴリである。レベル制約は、或る階層内にネスティングされ、特定の階層及びレベルに準拠するデコーダは、そのレベル又はそのレベルより下の任意のレベルの同じ階層又はそれよりも低い階層に準拠する全てのビットストリームを復号することが可能である。それゆえ、階層のレベルは、ビットストリーム内のシンタックス要素の値又はビットストリームを復号する際に使用される変数に対して課される制約の指定されたセットである。幾つかの例では、プロファイル/階層/レベルの情報は、デコーダにおいてビットストリームを復号するのに必要とされるデコーダの数に対する制約を指定する。幾つかの例では、制約は、ビットストリームを復号するのに使用することができるエンコーダの最大数量を識別し、これはなぜならば、デコーダがそれよりも少ないデコーダを有すると、ビットストリームを復号することが不可能になるためである。幾つかの例では、符号化システムは、必要とされるデコーダの数を識別するとともに、符号化システムにおいて行われる符号化がデコーダの数に対する制約に違反しないことを保証するために、プロファイル/階層/レベル情報を使用することができる。幾つかの例では、符号化システムは、適切にフォーマット化されたビットストリームを、対応するビデオ成分を用いて形成するために符号化される必要がある情報の特性に基づいてビットストリームを復号するのに必要とされることになるデコーダの数を判断することができる。
【0056】
幾つかの例では、以下で更に説明されるように、符号化済みビットストリームを復号するのに必要とされるデコーダインスタンス化の数を制限するために、プロファイル/階層/レベルシンタックス構造は、そのようなデコーダインスタンス化の最大数を示すために定義されるビットのセットを含むように修正される。幾つかの例では、プロファイル/階層/レベルシンタックスは、例えば、変数「ptl_max_decodes_idc」によって表されるビット(例えば、4)のセットを含むことができ、コード化済みビデオシーケンスが準拠するビデオデコーダインスタンス化を要求するサブビットストリームの数に対する制約を示すのに使用される。ビットストリームは、以下で指定されるように、「ptl_max_decodes_idc」の値を含む。例えば、変数「ptl_profile_codec_group_idc」の4ビットは、値0、1、2、3、4、5、6、7、8、9のうちの1つを示すことができ、そのような値のうちの各値は、デコーダインスタンス化の異なる最大数(例えば、それぞれ、1、2、3、4、6、8、12、16、24、32)に対応することができる。値10~14は、将来の使用のために確保しておくことができ、値15は制約されないものとすることができる。幾つかのデバイス(デコーダ)は多数の同時復号をサポートすることができるが、他のものは、そのような能力を有しない場合がある。結果として、異なる復号能力を有する復号デバイスによって出力ビットストリームを復号することができるように、同じコンテンツを複数のプロファイルに従って符号化することができる。それゆえ、復号の最大数に対応するプロファイル/階層/レベルの追加は、複数のプロファイルの使用が、異なる復号能力を有する復号デバイスによってビットストリームを復号することができるように同じビットストリームの複数の符号化をサポートすることを可能にする。幾つかの例では、符号化システム200によってサポートされる例示のプロファイル/階層/レベルは、例示のプロファイル/階層/レベルストレージ302に記憶される。上記で説明されたように、幾つかの例では、符号化システム200は、複数のプロファイルのうちの異なるものに各々が対応する複数のビデオビットストリームを符号化することが可能であってよく、複数のプロファイルは各々、復号能力の異なるレベルを有する復号デバイスをサポートするために(変数「max_decode_idc」によって表される)デコーダの異なる最大数を有する。
【0057】
幾つかの例では、プロファイル/階層/レベル信号ストレージに記憶される情報は、符号化システム200の製造者によって設定される。幾つかの例では、プロファイル/階層/レベル信号ストレージに記憶される情報は、符号化システム200のオペレータによって装入することができ、及び/又は、そのようなオペレータによって再設定/改定することができる。幾つかの例では、プロファイル/階層/レベル信号ストレージに記憶される情報は、
図2において含まれるエンコーダブロックのうちの別のものから受信することができる。幾つかの例では、領域のパッキング済みビデオフレームを形成するためにフレームパッキング部218によって使用されるパッキング済みフレーム構成は、パッキング済みビデオフレームの構成内に含まれる各パッキング済みビデオフレームが復号側でデコーダインスタンス化を要求するので、少なくとも部分的に、プロファイル/階層/レベル信号ストレージに記憶された情報によって左右される。それゆえ、デコーダインスタンス化の最大数を指定することによるプロファイル/階層/レベル情報は、パッキング済みビデオフレームを生成するときに使用される考慮事項とすることができる。
【0058】
幾つかの例では、ビデオのネットワーク抽象化層ユニット(例えば、NALユニット)がパッキングされることになるとき、パッキング済みビデオフレームフラグ設定部304は、パッキング済みフレームビデオフラグを設定する。幾つかの例では、パッキング済みフレームビデオフラグを設定することは、メタデータストレージ318内の1つ又は複数のビットを設定することを含む。幾つかの例では、プロファイル/階層/レベルストレージ302内の情報に基づいて、又は
図2の他のブロックのうちの任意のものによって供給される情報に基づいて、パッキング済みビデオフレーム構成判断部306は、パッキング済みビデオフレームの領域、領域の次元、領域のロケーション、領域の各々に含まれるデータのタイプ等を識別するパッキング済みビデオフレーム構成を判断する。例示のパッキング済みビデオフレーム構成は、
図1A、
図1B、及び/又は
図1Cにおいて示されている。幾つかの例では、多様なパッキング済みフレームビデオ構成のうちの任意のものを、パッキング済みビデオフレームにパッキングされることになるビデオストリームの態様/特性に基づいて判断することができる。例えば、判断されるパッキング済みビデオフレーム構成は、利用可能なビューの数、及びユースケースのための製品のデコーダインスタンス化の典型的な数に依存し得る。
【0059】
上記で説明されたように、幾つかの例では、パッキング済みビデオフレーム構成は、パッキング済みビデオフレーム内に含まれることになる領域の数、領域の各々の次元(例えば、幅、高さ)、領域内に含まれることになるデータのタイプ等を識別する情報を含む。幾つかの例では、パッキング済みビデオフレーム構成は、処理されることになる到来するジオメトリ、属性及び占有ビデオデータに関連付けられたアトラス又はアトラスタイルの数を判断するためにアトラスタイル識別部307を使用する。幾つかの例では、到来するジオメトリデータ、属性データ及び占有データは各々、情報が対応するアトラス又はアトラスタイルを識別する情報を含む。幾つかの例では、アトラスタイル識別部307は、データのタイプの各々が対応する単数若しくは複数のアトラス又はアトラスタイルを判断するために到来するジオメトリ、属性及び占有データを検査する。幾つかの例では、第1のアトラスタイルに関連付けられた全てのジオメトリ、属性及び占有データは、パッキング済みビデオフレームパッキング部218において同じ時点で(又は同じ期間内に)受信される。幾つかのそのような例では、アトラス識別部307は、到来するジオメトリ、属性及び占有データにアトラスタイル番号/タイプ(例えば、アトラスタイル識別部307、アトラスタイルをベースビュー又は追加ビューに関連付けられているとして識別する情報等)をタグ付けするか又は別様に関連付けることができる。
【0060】
幾つかの例では、例示のパッキング済みビデオフレーム生成部314は、例示のジオメトリデータ収集部308によって提供されるジオメトリデータ、例示の属性データ収集部310によって提供される属性データ、及び例示の占有データ収集部312によって提供される占有データ(存在する場合)を含む別箇の領域を有するパッキング済みビデオフレームを生成するために、パッキング済みビデオフレーム情報生成部316からのパッキング済みビデオフレーム情報を使用する。幾つかの例では、各領域は、次元(パッキング済みビデオフレーム構成判断部306によって判断される)、及び/又は、収集されるジオメトリデータの量、属性データの量、占有データの量を有する。幾つかのアトラスは、占有データを有しない場合があり、それにより、占有領域は、存在する全てのジオメトリ領域及び属性領域について常に存在するわけではないことに留意されたい。
【0061】
幾つかの例では、パッキング済みビデオフレーム生成部314は、デコーダが対応するパッキング済みビデオフレームの領域を索出するために十分なパッキング済みビデオフレーム情報が存在することを保証するために、判断されたパッキング済みビデオフレーム構成及び/又はパッキング済みビデオフレーム情報生成部316を使用する。幾つかの例では、パッキング済みビデオフレーム生成部314は、例示のパッキング済みビデオフレームストレージ322にパッキング済みビデオフレームを記憶する。加えて、パッキング済みビデオフレーム生成部314は、パッキング済みビデオフレーム情報を、対応するパッキング済みビデオフレームとともに搬送されることになるメタデータとして、又は対応するパッキング済みビデオフレームに関連付けられたメタデータ内で搬送されるものとして含む。幾つかの例では、パッキング済みビデオフレーム情報メタデータは、領域のサイズに関する次元情報、ボリュメトリックビデオフレームのシーケンス内の領域の配置、領域の各々が対応するアトラス又はアトラスタイルを識別するアトラス情報、及び、アンパッキング済みデータを3次元画像/ビューを再構成するのに使用することができるようにビデオデータのパッキング済みビデオフレームをアンパッキングするためにデコーダによって必要とされる他の任意の情報、を含むことができる。幾つかの例では、例示のパッキング済みビデオフレーム情報生成部316は、メタデータストレージ318にパッキング済みビデオフレーム情報を記憶し、メタデータ供給部324は、対応するパッキング済みビデオフレームとともに含めるために、パッキング済みビデオフレーム情報をパッキング済みビデオフレームストレージに供給する。幾つかの例では、メタデータ情報及び対応するビデオは、パッキング済みビデオフレームストレージには記憶されず、符号化のために例示のエンコーダ220に直接供給される。幾つかの例では、パッキング済みビデオフレーム及び対応するパッキング済みビデオフレームは、例示のパッキング済みビデオフレーム供給部に供給され、当該パッキング済みビデオフレーム供給部は、これらを例示のエンコーダ220に供給する。幾つかの例では、メタデータ供給部324は、パッキング済みビデオフレーム(又は複数のパッキング済みビデオフレーム)のアトラス又はアトラスタイルに対応する情報を
図2の例示のビットストリームフォーマット部に供給することができる。幾つかの例では、
図2のビットストリームフォーマット部は、対応するパッキング済みビデオフレームに関連付けられたパラメータデータ及び/又はSEIメッセージをフォーマット化する。幾つかの例では、例示のパッキング済みビデオフレーム供給部326は、(パッキング済みビデオフレームストレージ322から取得された)パッキング済みビデオフレームを、パッキング済みビデオフレームが符号化される
図2の例示の符号化システム200の例示のエンコーダ220に供給する。
【0062】
加えて、例示の多重化部222は、メタデータ/パラメータ/SEIメッセージデータのビットストリームを、復号及びレンダリングのためにデコーダにトランスポートするために対応する符号化済みデータと多重化させる。幾つかの例では、パッキング済みビデオフレーム生成部314は、パッキング済みビデオフレームそれ自体は生成せず、ビデオデータをパッキング済みビデオ情報の使用によって復号することができるように、パッキング済みビデオ情報314を、到来する収集されたビデオデータと相関させることに留意されたい。幾つかの例では、複数のパッキング済みビデオフレームが同じ時点で(又は互いの同じ期間内で)生成されるように、複数のパッキング済みビデオフレームは、同時に生成される(例えば、対応するパッキング済みビデオフレーム情報に相関される)。それゆえ、パッキング済みビデオフレームは、パッキング済みビデオフレームの存在を(受信側デコーダに)シグナリングし、パッキング済みビデオフレーム内に含まれるボリュメトリックビデオデータが、再構成されたボリュメトリックビデオビューに含めるために配置されることになる方法を更にシグナリングするパッキング済みビデオフレーム情報を含む。
【0063】
上記で簡潔に説明されたように、幾つかの例では、符号化システム200は、独立して復号することができるパッキング済みビデオフレームの領域を指定する特徴を含む。幾つかの例では、符号化システムは、これらの領域を、タイル又はサブピクチャ等の、ビデオコーデックの独立してコードされる領域と整列させる。幾つかのそのような例では、ビットストリームフォーマット部は、パッキング済みビデオフレームの独立復号可能領域との対応関係をシグナリングするためにSEIメッセージを作成する。幾つかのそのような例では、SEIメッセージは、HEVC符号化規格の時間モーション制約タイルセットにおいて使用されるもの等の、タイル行及び列の矩形領域内の左上及び右下のタイルについてのタイルインデックスをシグナリングする。幾つかの例では、SEIメッセージは、V3C符号化規格において使用されるもの等のサブピクチャIDをシグナリングする。
【0064】
上記は、メディアアウェアネットワーク要素(MANE)又はMIVデコーダがビデオビットストリームの一部を破棄することができ、その一方で残りのビットストリームの復号を可能にするユースケースを可能にする。エンコーダは、同じパッキング済みビデオフレーム内の異なる領域について異なる量子化パラメータ(QP)値を選択することを選び得る。
【0065】
図4Aは、V3Cユニットヘッダタイプのセットを示しており、
図4Bは、データのパッキング済みビデオフレームユニットに関連付けられた例示の情報を示している。幾つかの例では、ビデオ符号化規格は、パッキング済みビデオフレームユニット内に含まれるデータのタイプを識別するための情報を含む。例えば、V3C規格は、次のユニットタイプ、すなわち、V3Cパラメータセットデータ、アトラスデータ、占有ビデオデータ、属性ビデオデータ、及びパックビデオフレームデータを含む。幾つかの例では、パックビデオフレームデータに関連付けられるか又はこれに含まれるデータのユニットは、
図4Aに示されたヘッダ「V3C_PVD」を使用して識別される。幾つかの例では、符号化済みデータがV3C_PVDユニットヘッダを使用して識別される場合、パックビデオフレームデータユニットヘッダに関連付けられたメタデータは、パックビデオフレームデータユニットに関連付けられたパラメータセットのロケーションを識別する変数「vuh_v3c_parameter_set_id」によって表されるビット(例えば、4ビット)のセットを含む。(
図4Bを参照)。加えて、V3C_PVDユニットヘッダを用いて識別された符号化済みデータは、変数「vuh_pack_index」によって表されるビット(例えば、4ビット)のセットを含むメタデータに関連付けられる。「vuh_pack_index」は、パックビデオフレームデータユニットに関連付けられたパッキング済みビデオフレームに割り当てられた数を識別する。それゆえ、幾つかの例では、
図2のビットストリームフォーマット部は、パッキング済みビデオフレームデータユニットに関連付けられたメタデータ内に「vuh_v3c_parameter_set_id」のビット及び「vuh_pack_index」のビットを含むように構成されている。幾つかの例では、各パッキング済みビデオフレームサブビットストリームは、「vuh_pack_index」の区切り値に関連付けられるとともに、変数「pi_pack_codec_id」によって指定されるコーデックに関連付けられる。
【0066】
図4Cは、V3Cパラメータセットデータ、及び、様々なタイプのデータが、復号されることになるビットストリームにおいて提示されるか否かに依存して、設定されるか又は設定されないビットのセットを示している。幾つかの例では、パッキング済みビデオフレームデータユニットの処理に適応するために、V3Cパラメータセットは、「vps_pack_video_enabled_flag」402Cを含むように修正される。フラグが擬似コードライン404Cによって判断されるものとして設定される場合、復号されることになるビットストリーム(例えば、対応するビデオパックビデオフレームデータユニット)は、
図2のフレームパッキング部218によって生成されるパッキング済みビデオフレームを含む。上記で説明されたように、パッキング済みビデオフレームフラグ設定部304は、例示のビットストリームフォーマット部に供給されることになるメタデータ内に含まれるビットを生成する(又は反転する)ことによってフラグを設定する。
図8のV3Cパラメータセットによって示されているように、幾つかの例では、vps_pack_video_enabled_flagが、対応するビットストリームがパッキング済みビデオフレームデータを含むことを示す場合、ビットストリームを復号しているデコーダは、パッキング済みビデオフレームをアンパッキングするのに必要とされる情報を含むパッキング済みビデオフレーム情報を取得する(擬似コードライン406C)。幾つかの例では、パッキング済みビデオフレーム情報内に含まれる情報は、以下で説明されるように、少なくとも部分的に、パック情報生成部316によって生成される。
【0067】
図4Dを参照すると、
図4Dは、パッキング済みビデオフレームの存在を考慮するためにMIV拡張プロファイルを修正する方法を示している。幾つかの例では、MIV拡張プロファイルの「vuh unit type」は、設定されると、パッキング済みフレームビデオが対応するビデオビットストリーム内に含まれることを示す第5ビットを含むように修正される。幾つかの例では、(MIV拡張プロファイルの)プロファイルツールセットidcのシンタックス値が、パッキング済みビデオフレームが処理されているビデオストリーム内に含まれる場合に65に等しくなるように修正される。加えて、vme埋め込み占有変数が追加され、0又は1の値を取ることができ、対応するビットストリームが埋め込まれた占有データを含むか否かを示し、埋め込まれた占有データにおいて、占有情報がジオメトリ成分内に埋め込まれる。vps占有ビデオ存在フラグが追加され、0又は1の値を取ることができ、対応するビットストリームが占有ビデオデータを含むか否かを示す。vpsパッキング有効化フラグも追加され、0又は1の値を取ることができ、対応するビットストリームがパッキング済みビデオフレームを含むか否かを示す。
【0068】
図3を再び参照すると、幾つかの例では、例示のパッキング済みビデオ情報生成部306によって生成されるパッキング済みビデオフレーム情報は、パッキング済みビデオフレームに対応するV3Cパラメータセットデータのセットの識別子を提供するビット(例えば、4)のセットを含む。幾つかの例では、パッキング済みビデオフレーム情報生成部316は、生成されるパックビデオフレームごとに一意のパックビデオフレームインデックス番号を生成し、パックビデオフレームインデックス番号を、例示のビットストリームフォーマット部216への配信のためにメタデータ供給部324に供給する。幾つかの例では、情報は、その代わりに、対応する符号化済みパッキング済みビデオフレーム内に含まれるようにメタデータに変換される。
【0069】
依然として
図3を参照すると、例示のデコーダ検証部328は、フラグのセットに対応するビットを含むフラグ情報を例示のフラグストレージ332に記憶する。フラグは、パッキング済みビデオフレームユニットに関連付けられたパラメータセット内で識別される。フラグのセット内に含まれる各フラグは、ビデオデータの異なるタイプ(例えば、ジオメトリ、補助、属性、占有等)に対応し、各フラグは、ビデオデータの対応するタイプが対応するパッキング済みビデオフレームユニット内に存在しているか否かを示す。幾つかの例では、属性データは、属性データのサブカテゴリを含むことができ、属性ビデオデータ内に含まれるサブカテゴリの数は、変数「ai_attribute_count」を使用して表される。
【0070】
幾つかの例では、復号数検証部328は、パッキング済みビデオフレームユニット内に含まれるビデオデータのタイプの総数を判断するために、パッキング済みビデオフレームユニットの各アトラス/アトラスタイルに関連付けられたフラグの数を総和する例示のフラグ加算部334も備える。フラグの総和は、符号化済みビデオを受信するデコーダによって復号可能な復号の数であり、変数「NumDecodes」に等しい。フラグの総数が総和されると、例示のパックビデオフレームチェック部336は、ビデオユニットがパッキング済みビデオフレームユニットを含むことをパッキング済みビデオフレームビデオフラグが示すか否かをチェックする。ビデオユニットがパッキング済みビデオフレームを含むことをパッキング済みビデオフレームビデオフラグが示すことを条件として、パッキング済みビデオフレームごとに、例示の領域減算部338は、「NumDecodes」値から、各パッキング済みビデオフレーム内に含まれる領域の数-1を減算する。各パッキング済みビデオフレーム内に含まれる領域の数は、変数「pi_num_rect[k]-1」によって表され、ここで、変数「k」は、パッキング済みビデオフレームの総数内に含まれるパッキング済みビデオフレームの数を表す。次に、例示の比較部340は、NumDecodesの値を、受信側デコーダが復号することが可能である復号の最大数に対応する値と比較する。復号の最大数は、変数「MaxDecodes」によって表される。幾つかの例では、フレームパッキング部218は、ビデオストリームが送信され得るデコーダの様々なタイプについて、対応するMaxDecodes値を識別する情報を用いて事前プログラミングされる。幾つかの例では、復号の最大数は、プロファイル/階層/レベルシンタックス情報内に含まれる。
【0071】
例示の比較部340がNumDecodesの値がMaxDecodesの値よりも小さいか又はこれに等しいと判断する場合、フレームパッキング部218は、パッキング済みビデオフレームを生成することに進むことができる。比較部340がNumDecodesの値がMaxDecodesの値よりも小さいか又はこれに等しくないと判断した場合、例示のエンコーダ220は、対応するビデオデータを符号化しない。それゆえ、例示のデコーダ数検証部328は、符号化されているビットストリームを復号するために要求されるデコーダの数が制約MaxDecodesを超えることになるか否かを判断する。幾つかの例では、復号数検証部328は、復号システムがデコーダの十分な数を有することを保証するために復号システム内に含まれる。幾つかの例では、必要とされるデコーダの数は、
図2の符号化システムによって送信されるパラメータデータ内で提供され、
図7及び
図8の復号システムは、必要な数を利用可能な数と単純に比較し、利用可能な数が不十分である場合、到来するビットストリームを復号しない。
【0072】
図5は、パッキング済みビデオフレームのセットのためのパッキング済みビデオフレーム情報を生成するのに、パッキング済みビデオフレーム情報生成部316によって使用することができる擬似コードである。幾つかの例では、(デコーダによって使用するために)パッキング済みビデオフレーム情報生成部316によって生成されるパッキング済みビデオフレーム情報は、領域情報がシグナリングされるV3C_PVDユニットの数を指定し、変数「pi_num_packs」によって表される。パッキング済みビデオフレーム情報は、パッキング済みビデオフレームごとに、対応するパッキング済みビデオフレームを圧縮するのに使用される(
図2における符号化システム200として表される)コーデックの識別子も指定し、変数「pi_pack_codec_id[k]」によって表され、ここで、「k」は、パッキング済みビデオフレームの数を参照するインデックスである。「pi_pack_codec_id」の値は、0~255(両端を含む)の範囲である。幾つかの例では、コーデック識別子は、パッキング済みビデオフレームに関連付けられた補足強化(SEI)メッセージにおいて(例えば、成分コーデックマッピングSEIメッセージを介して)、又は他の任意の手段を介して、デコーダに送信される。
【0073】
幾つかの例では、パッキング済みビデオフレーム情報は、第kのパッキング済みビデオフレームのためのパッキング済みビデオフレームが変換される公称2Dビット深度も示し、変数「pi_pack_nominal_2d_bitdepth_minus1[k] plus 1」によって表される。幾つかの例では、「pi_pack_nominal_2d_bitdepth_minus1[k]」の値は、0~31(両端を含む)の範囲である。公称2dビット深度は、成分情報を表すのに使用されるビットの数を表す。それゆえ、例えば、パッキング済みビデオフレームのジオメトリデータは、ビットの数「A」によって表され得、同じパッキング済みビデオフレームに対応する属性データは、ビットの数「B」によって表され得る。幾つかのそのような例では、パッキング済みビデオフレーム情報生成部316は、パッキング済みビデオフレームの全ての成分がビットの同じ数(例えば、A値及びB値のうちのより大きい値)によって表されることになると判断することができ、全ての空のビット位置をパディングすることができる。
【0074】
パッキング済みビデオフレーム情報は、パッキング済みビデオフレームの各々の、それぞれ幅及び高さも示すことができる。幅及び高さは、それぞれ、変数「pi_pack_width[k]」及び「pi_pack_height[k]」によって表すことができる。パッキング済みビデオフレーム情報は、第kのパッキング済みビデオフレーム内に含まれる領域の数も指定し、変数pi_num_rect[k]によって表される。パッキング済みビデオフレーム情報は、「AtlasPatchPackingBlockSize」サンプルのユニット内の各パッキング済みビデオフレーム内に含まれる各領域の左上隅の垂直(x)位置及び水平(y)位置も指定する。変数「AtlasPatchPackingBlockSize」は、現在処理されているアトラスのパッチ内に含まれるブロックのサイズを表すユニットである。全てのパッチ、アトラス、及びアトラスタイルのサイズは、AtlasPatchPackingBlockSizeの整数倍であるので、サイズは、単一ピクセルではなくそれらのユニットにおいてより効率的に表すことができる。幾つかの例では、アトラスに対応するパッチは、オン動作されている領域のブロックに記憶されるように構成されている。垂直位置及び水平位置は、変数「pi_rect_pos_x[k][i]」及び「pi_rect_pos_y[k][i]」を使用して表すことができる。
【0075】
パッキング済みビデオフレーム情報は、「AtlasPatchPackingBlockSize」サンプルのユニット内の各パッキング済みビデオフレームの領域の、それぞれ幅及び高さも指定する。領域の幅及び高さは、それぞれ、変数「pi_rect_width[k][i]」及び「pi_rect_height[k][i]」によって表される。領域がパッキング済みビデオフレームのサイズ内に適合するように領域のロケーション及びサイズを制限するために次のような条件を適用することができる:「pi_rect_pos_x[k][i]」+「pi_rect_width[k][i]」の値は、pi_pack_width[k]よりも小さいか又はこれに等しいものとし、pi_rect_pos_y[k][i]+pi_rect_height[k][i]の値は、pi_pack_height[k]よりも小さいか又はこれに等しいものとする。
【0076】
同様に、いずれの領域も重ならないことを保証するために、フレームパッキング済みビデオフレーム218は、「m」及び「n」の全ての値について、評価されることになる次のステートメントを満たす「i」(パッキング済みビデオフレームのためのインデックス番号を表す)の最大で1の値が存在することを保証するために評価部330を備えることができる:[(pi_rect_pos_x[k][i]<=m<pi_rect_pos_x[k][i]+pi_rect_width[k][i])]&&[(pi_rect_pos_y[k][i]<=n<pi_rect_pos_y[k][i]+pi_rect_height[k][i])]。
【0077】
パッキング済みビデオフレーム情報は、第kのパッキング済みビデオフレームの第iの領域の回転(存在する場合)も識別する。回転は、変数「pi_rect_orientation[k][i]」によって表すことができる。幾つかの例では、パッキング済みビデオフレーム生成部314は、回転を行わずに達成されるであろうよりも小さいサイズを有するパッキング済みビデオフレームをもたらすように、パッキング済みビデオフレーム内に単数又は複数の領域を含めるときに、当該領域を回転させてよい。
【0078】
パッキング済みビデオフレーム情報は、第kのパッキング済みビデオフレームの第iの領域のアトラス又はアトラスタイル識別子(ID)も含むことができ、変数「pi_rect_atlas_id[k][i]」によって表される。アトラスIDは、複数のアトラスのうちのいずれが対応するrectに記憶されたデータのソースであるかを識別する。
【0079】
幾つかの例では、パッキング済みビデオフレーム情報は、複数のマップ(各々が異なる「マップインデックス」番号によって表される)のうちのいずれが第kのパッキング済みビデオフレームの第iの領域に関連付けられるかも識別する。マップを識別するのに使用されることになるマップインデックス番号は、変数「pi_rect_map_index[k][i]」によって表される。
【0080】
幾つかの例では、パッキング済みビデオフレーム情報は、第kのパッキング済みビデオフレームの第iの領域が補助ビデオデータを含むか否かを識別するフラグを含む。幾つかの例では、変数「pi_rect_auxiliary_video_flag[k][i]」は、第kのパッキング済みビデオフレームの第iの領域の補助ビデオフラグを表す。
【0081】
パッキング済みビデオフレーム情報は、第kのパッキング済みビデオフレームアトラスの第iの領域内に含まれるデータのV3Cタイプも指定する。データのV3Cタイプは、変数「pi_rect_type_id[k][i]」によって表すことができる。幾つかの例では、「i_rect_type_id[k][i]」の値は、2~4に及ぶ。幾つかの例では、領域内に含まれるデータのV3Cタイプは、占有タイプ、ジオメトリタイプ、属性タイプ等とすることができる。
【0082】
パッキング済みビデオフレーム情報において、変数「pi_rect_attr_index[k][i]」は、第kのパッキング済みビデオフレームの第iの領域の属性インデックスを指定する。属性インデックスは、属性データの複数のタイプのうちのいずれが第iの領域内に含まれるかを表す。幾つかの例では、属性データとして分類される様々なタイプのデータが存在し、当該様々なタイプは、属性のインデックス番号が第iの領域内に含まれる属性データのタイプを反映するようにインデックス内で付番される。
【0083】
「pi_rect_attr_partition_index[k][i]」は、存在する場合、第kのパッキング済みビデオフレームの第iの領域の属性パーティションインデックスを指定する。存在しない場合、「pi_rect_attr_partition_index[k][i]」の値が0に等しいことが推論される。属性パーティションインデックスは、属性タイプのサブカテゴリのセットのうちのいずれが属性内に含まれるかを識別する。
【0084】
それゆえ、上記で識別された変数は、パッキング済みビデオフレームの生成の前、最中及び/又は後に例示のパック情報生成部316によって生成されるパッキング済みビデオフレーム情報の例を表す。さらに、説明されるように、パッキング済みビデオフレーム情報は、ビットストリームフォーマット部に、そして、符号化システム200の動作を左右する規格に従って対応するパッキング済みビデオフレームと多重化するために多重化部に供給される。
【0085】
依然として
図5を参照すると、幾つかの例では、パッキング済みビデオフレーム情報生成部316は、パッキング済みビデオフレームコーデックインデックス番号、パッキング済みビデオフレーム公称2Dビット深度-1、パッキング済みビデオフレーム幅、パッキング済みビデオフレーム高さ及びパッキング済みビデオフレーム内に含まれることになる領域の数を生成することによって、複数のk個のパッキング済みビデオフレームのうちのパッキング済みビデオフレームごとにパッキング済みビデオフレーム情報を生成する。次に、各領域内に含まれる領域ごとに、パッキング済みビデオフレーム情報生成部316は、パッキング済みビデオフレーム内のx、y位置としてパッキング済みビデオフレーム内の領域の領域位置を生成する。パッキング済みビデオフレーム情報生成部316は、幅、高さ、向き、アトラスインデックス番号及び/又はアトラスタイルインデックス番号、データタイプインデックス番号、マップインデックス番号、補助データフラグ(補助データが領域内に含まれる場合に設定されることになる)、及び属性インデックス番号も生成する。次に、
図3の評価部330は、属性次元パーティションの値-1に、アトラスインデックス番号(又はアトラスタイルインデックス番号)の値を乗算し、属性インデックス番号を乗算した値がゼロよりも大きいか否かを判断するのに使用することができる。そうである場合、パッキング済みビデオフレーム情報生成部316は、属性データのために領域属性パーティションインデックス番号を生成する。パッキング済みビデオフレーム情報生成部316は、データがパッキング済みビデオフレームの全ての領域のために生成されるまで、パッキング済みビデオフレーム内に含まれる次の領域に続く。その後、パッキング済みビデオフレーム情報生成部316は、到来するジオメトリ、属性及び/又は占有データの次のセットを選択し、次のパッキング済みビデオフレームのために上記で説明されたデータを生成する。領域情報は、上記で説明された方法で次のパッキング済みビデオフレーム内に含まれる領域ごとに生成され、パッキング済みビデオフレーム情報生成部316は、到来するビデオストリーム又はビデオストリームシーケンスが符号化されるまで、この方法で継続する。
【0086】
図6は、パッキング済みビデオフレームの独立した領域のSEIメッセージが、パッキング済みビデオフレームの領域と、ビデオサブビットストリーム内の独立復号可能領域との間の対応関係を識別するのに使用されるときに、パッキング済みビデオフレーム情報生成部316によって生成されることになる情報を示している。加えて、
図6は、パッキング済みビデオフレームの領域の、ビデオサブビットストリーム内の独立復号可能領域に対する対応関係を示すためにSEIメッセージを生成するのに使用することができる擬似コードである。幾つかのそのような例では、例示のパッキング済みビデオフレーム情報生成部316は、パッキング済みビデオフレームの独立した領域のSEIメッセージ内に含まれることになるシグナリングを生成することができる。それゆえ、例示のパッキング済みビデオフレーム情報生成部316は、
図6の擬似コード内に含まれるもの等の変数のセットを生成する。幾つかの例では、変数のセットは、独立復号可能領域情報がシグナリングされるパッキング済みビデオフレームの数を表す変数「pir_num_pack」を含む。変数「pir_description_type_idc[k] equal to 0」は、(時間的モーション制約タイルセット等の)独立復号可能領域の左上のタイル及び右下のタイルのタイルインデックスが第kのパッキング済みビデオフレームの領域のためにシグナリングされることを示す。幾つかの符号化規格に基づいて、アトラスは、タイルに細分化することができ、タイル形式においてオン動作することができる。変数「pir_description_type_idc equal to 1」は、サブピクチャIDが第kのパッキング済みビデオフレームの領域のためにシグナリングされることを示す。変数「pir_description_type_idc[k]」は、0~1の範囲である。他の値(例えば、2..3の範囲の値)は、将来の使用のために確保しておくことができる。
【0087】
幾つかの例では、変数「pir_num_rect[k]」は、独立復号可能領域情報がシグナリングされる第kのパッキング済みビデオフレームの領域の数を指定する。変数「pir_top_left_tile_idx[k][i]」及び「pir_bottom_right_tile_idx[k][i]」のセットは、存在する場合、タイルラスタースキャン順序において、第kのパッキング済みビデオフレームのビデオサブビットストリームの第iの領域に対応する、それぞれ(時間的モーション制約タイルセット等の)独立復号可能領域の左上のタイル及び右下のタイルのタイルインデックスを識別する。変数「pir_subpic_id[k][i]」は、存在する場合、第kのパッキング済みビデオフレームのビデオサブビットストリームの第iの領域に対応するサブピクチャIDを識別する。
【0088】
依然として
図6を参照すると、幾つかの例では、パッキング済みビデオフレームの独立した領域(pir)を識別する情報は、
図6の擬似コードを使用してパッキング済みビデオフレーム情報生成部によって生成することができる。幾つかのそのような例では、独立復号可能領域に対応する情報がシグナリングされる複数のパッキング済みビデオフレーム「k」のうちのパッキング済みビデオフレームごとに、パッキング済みビデオフレーム情報生成部は、パッキング済みビデオフレーム情報を生成する。幾つかのそのような例では、(上記で説明されたように)0に等しい場合、(時間的モーション制約タイルセット等の)pir独立復号可能領域の左上のタイル及び右下のタイルのタイルインデックスが第kのpirパッキング済みビデオフレームの領域のためにシグナリングされることを示すpir記述タイプが取得される。次に、パッキング済みビデオフレーム情報生成部は、例えばパッキング済みビデオフレーム構成に基づいて、独立復号可能領域情報がシグナリングされることになる第kのpirパッキング済みビデオフレームの領域の数を判断する。その後、ゼロに等しいpir記述タイプを有するパッキング済みビデオフレームごとに、パッキング済みビデオフレーム情報生成部は、第kのパッキング済みビデオフレームのビデオサブビットストリームのi個の領域の各々に対応する、pir独立復号可能領域の左上のタイル及び右下のタイルのタイルインデックスを生成/判断する。変数pir_description_type_idcの値が1に等しい場合、パッキング済みビデオフレーム情報生成部は、各pirパッキング済みビデオフレームの領域ごとに、サブピクチャIDを生成する。
【0089】
図7は、例示のパッキング済みビデオフレームビデオ復号システム700の部分のブロック図である。幾つかの例では、パッキング済みビデオフレームビデオ復号システム700は、例示の多重分離部702、例示のパッキング済みビデオフレームビデオストリームパース部704、例示のフレームデコーダ708、例示のフレームアンパッキング部710、例示の再構成部712、例示のレンダリング部714、例示のメタデータ/SEIメッセージ抽出部716、及び例示のメタデータ/SEIメッセージデコーダ718を備える。
【0090】
幾つかの例では、例示の多重分離部702は、
図2のビデオ符号化システム200の多重化部から符号化済みビデオストリームを受信する。多重分離部702は、メタデータ/SEIメッセージを符号化済みビデオストリームから分離し、分離された情報を、例示のメタデータ/SEIメッセージ抽出部716に供給する。幾つかの例では、メタデータ/SEIメッセージ抽出部716は、抽出された情報内に含まれるSEIメッセージを識別するとともに、個々のデータフィールド、及びビデオストリームパース部704に対応する関連付けられたデータを識別するために、当該抽出された情報を検査する。幾つかの例では、ビデオストリームパース部704は、パッキング済みビデオフレームを含むユニットを識別するために、パッキング済みビデオフレームサブビットストリームのユニットに対応するvuhユニットヘッダ(「vuh_pack_index」)を使用する。幾つかの例では、ビデオストリームパース部704は、(変数「pi_pack_codec_id」を使用して)コーデックを識別する。幾つかの例では、変数vuh_pack_index及びpi_pack_codec_idの値は、例示のメタデータ/SEIメッセージデコーダ718によってビデオストリームパース部704に提供される。幾つかの例では、vuh_pack_index及びpi_pack_codec_id情報は、パッキング済みビデオフレームサブビットストリーム内に含めることができる。
【0091】
幾つかの例では、ビデオストリームパース部704は、パッキング済みビデオフレームに対応するサブビットストリームのユニットを識別するとともに、ユニットに対応する情報を識別するために、メタデータ/SEIメッセージデコーダ718によって供給される情報を使用する。幾つかの例では、メタデータ/SEIメッセージデコーダ718によって供給される情報は、パッキング済みビデオフレームごとに、色成分インデックス、ビット深度、パッキング済みビデオフレーム幅及びパッキング済みビデオフレーム高さを含む。加えて、メタデータ/SEIメッセージデコーダ718は、パッキング済みビデオフレームに関連付けられたマップストリームの数を供給し、必要な場合、現在オン動作されているパックフレームに関連付けられたマップカウントを取得する。
【0092】
幾つかの例では、例示のビデオストリームパース部704は、1)「decPackFrame[frameIdx][compIdx][y][x]」)、2)「decPackBitdepth[frameIdx]」、3)「decPackWidth[frameIdx]」及び4)「decPackHeight[frameIdx]」、及び5)「mapIdx」を含む復号済みパッキング済みビデオフレームに関連付けられた変数のセットに値を割り当てるために収集された/判断された情報を使用する。変数「frameIdx」によって表される値は、復号済みパッキング済みビデオフレームのインデックスであり、変数「compIdx」によって表される値は、色成分インデックスである。変数「y」は、復号済みパッキング済みビデオフレーム内の行インデックスであり、0~変数「decPackHeight[frameIdx]-1」によって表される値(両端を含む)の範囲であり、変数「x」は、復号済みフレーム内の列インデックスであり、0~「decPackWidth[frameIdx]-1」(両端を含む)の範囲である。マップインデックスの値(「mapIdx」)は、ゼロから開始し、次のステートメントが評価する値:「vps_multiple_map_streams_present_flag?vps_map_count_minus1:0」(両端を含む)に拡張する範囲内に入る。幾つかの例では、上記のステートメントは、変数「vps_multiple_map_streams_present_flag」の値が真である(又はゼロに等しくない)場合に変数「vps_mpa_count_minus 1」の値に評価し、そうではない場合、ゼロに評価する。変数「vps_map_count_minus1」は、現在のパッキング済みビデオフレームユニットが関連付けられるパッキング済みビデオフレーム内に含まれるか又はこれに別様に関連付けられるマップの数を表す値である。
【0093】
幾つかの例では、パッキング済みビデオフレーム情報は、パッキング済みビデオフレームとともに含まれ、パッキング済みビデオフレーム情報が符号化済みビデオからパースされるビデオストリームパース部704によってパースされる。符号化済みビデオは、復号のために例示のフレームデコーダ708に供給され、例示のパッキング済みビデオフレーム情報は、フレームアンパッキング部710に供給される。幾つかの例では、フレームデコーダ708は、任意のビデオ復号規格に従ってパッキング済みビデオフレームユニットを復号し、結果として得られる復号済みパッキング済みビデオフレームユニットを例示のフレームアンパッキング部710に供給する。フレームアンパッキング部710は、復号済みパッキング済みビデオフレームユニットをアンパッキングするために、復号済みパッキング済みビデオフレームに関連付けられたパッキング済みビデオフレーム情報、ビデオストリームパース部704によって識別される変数等を使用して、パッキング済みビデオフレームユニットをアンパッキングする。アンパッキング済みフレームから抽出された情報は、その後、レンダリング部714におけるレンダリングのために元の3D画像を再構成するために再構成部712に供給される。幾つかの例では、フレームアンパッキング部710は、領域、領域特性を識別するため、領域のブロック、及び/又は、レンダリング部によって表示するためにリアルタイム又は準リアルタイムにおいてブロックをボリュメトリックビデオシーケンスにマッピングするのに使用されることになるマップを識別するために、パッキング済みフレーム情報を使用するように動作する。幾つかのそのような例では、フレームアンパッキング部710は、
図8の復号システムに関して説明される動作を展開しているが、必ずしも同じ順序又は厳密に同じ方法で動作を実行する必要はない。
【0094】
図8は、例示のメタデータ/SEIメッセージデコーダ718、例示のフレームアンパッキング部710、及び例示の再構成部712(それらの全てが
図7においても示されている)のブロック図である。メタデータ/SEIメッセージデコーダ718は、上記で説明されたように、パッキング済みビデオフレームユニットを識別するのに使用される情報(アンパッキングされることになるパッキング済みビデオフレームユニットに関連付けられたパックビデオフレーム情報を含む)、パッキング済みビデオフレームユニットに対応するアトラスデータヘッダ、パッキング済みビデオフレームユニットの復号済みパッチユニット、復号済みブロック対パッチマップ等を復号する。
【0095】
幾つかの例では、例示のフレームアンパッキング部710は、例示のreg(領域)カウント部801、例示の可変値設定部802、例示のパッキング済みビデオフレームユニットフェッチ部804、例示のregタイプ判断部806、例示のreg選択部807、例示のreg抽出部808、例示のreg高さ及びreg幅インクリメント部810、例示のreg位置決め判断部812、及び例示のマッピング部814を備える。
【0096】
幾つかの例では、例示のパックビデオフレームユニットフェッチ部804は、(
図7のフレームデコーダ708から)処理されることになるパッキング済みビデオフレームユニットを受信及び/又はフェッチする。幾つかの例では、パッキング済みビデオフレームユニット内に含まれる「k」個のパッキング済みビデオフレームが存在し、k個のパッキング済みビデオフレームの各々は、以下で説明される方法でフレームアンパッキング部710のブロックによってオン動作される。幾つかの例では、パッキング済みビデオフレームユニットフェッチ部804は、フレームを受信(又はフェッチ)せず、むしろ、デコーダによって供給されるパッキング済みビデオ内のパッキング済みフレームビデオのロケーションに関する情報を受信する。
【0097】
パッキング済みビデオフレームのうちの個々のものは、第kのパッキング済みビデオフレームと称され、kの値は、パッキング済みビデオフレームがフレームアンパッキング部710によって処理されるたびに実装される。幾つかの例では、例示の領域選択部807は、第kのパッキング済みビデオフレームに関連付けられた「i」個の領域のセットのうちの1つを選択する。領域のうちの個々のものは、第iのrectと称される。次に、第kのパッキング済みビデオフレームの第iの領域に対応するアトラスインデックス番号(又はアトラスタイルインデックス番号)が識別され、第kのパッキング済みビデオフレームの第iの領域に対応するマップ識別子が識別される。上記で説明されたように、幾つかの例では、パッキング済みビデオフレーム情報は、メタデータ/SEIメッセージデコーダ718、及び/又はパッキング済みビデオフレームユニットの検査から、及び/又はフレームデコーダ708によって供給される情報から、受信され、第iの領域が選択されることになる領域を識別するのに使用される。
【0098】
幾つかの例では、選択された第iの領域内のブロックの位置は、例示の領域位置決め判断部812によって判断される。判断された位置は、変数「x,y」によって表され、ここで、xの値は、領域内のブロックの垂直位置であり、yは、領域内のブロックの水平位置である。幾つかの例では、ブロックは、ブロックの全てがともに領域を形成するように、領域内に含まれる均等なサイズの正方形に対応する。次に、現在オン動作されているパッキング済みビデオフレームユニット(例えば、第kのパッキング済みビデオフレームの第iの領域が挿入されるフレーム)のフレームインデックス番号及び成分インデックス番号が取得される。
【0099】
幾つかの例では、領域タイプ判断部806は、第kのパッキング済みビデオフレームの第iの領域内に含まれるビデオデータのタイプ(例えば、占有データ、ジオメトリデータ、属性データ等)を判断する。幾つかの例では、領域タイプ判断部806がデータタイプを判断するとき、領域タイプ判断部806は、第kのパッキング済みビデオフレームの第iの領域のx、y位置に存在するデータのタイプが領域タイプ判断部によって判断されるデータのタイプであることを示す情報も生成する。幾つかの例では、例示のフレームアンパッキング部710は、第kのパッキング済みビデオフレームの第iの領域の復号済みビデオデータ及び対応する収集された情報を出力として例示の再構成部712に供給する。幾つかの例では、再構成部712に提供される出力は、第iの領域のアトラスインデックス番号、第iの領域のマップインデックス番号、現在のパッキング済みビデオフレームユニットのフレームインデックス番号、成分インデックス番号、及びx、y位置情報を含む。例示の再構成部712は、対応する未加工ビデオデータを再構成されている画像に配置するためにこれらの情報を使用する。幾つかの例では、データのタイプが属性データであると判断されると、フレームアンパッキング部710は、上記で識別された情報、及び、多様な属性のうちのいずれが示された位置に存在するかを識別する属性インデックス番号を生成する。幾つかの例では、上記情報出力が生成された後、フレームアンパッキング部710は、次の位置(例えば、第kのパッキング済みビデオフレームの第iの領域の(x+1,y=1))における次のブロックについて同じ動作を実行する。幾つかの例では、第iの領域のブロックの全てが処理された後、次の領域(例えば、第kのパッキング済みビデオフレームの第(i+1)の領域)が上記で説明された方法において処理される。同様に、パッキング済みビデオフレームの領域の全てがオン動作されると、次のパッキング済みビデオフレーム(例えば、第(k+1)のパッキング済みビデオフレームユニット)が取得され、フレームアンパッキング部610の動作が繰り返される。幾つかの例では、パックビデオフレームユニットのパッキング済みビデオフレームの全てが処理されると、別のパッキング済みビデオフレームユニットに関連付けられたパッキング済みビデオフレームの次のセットが上記で説明されたように処理される。幾つかの例では、パッキング済みビデオフレームユニットのパッキング済みビデオフレームの全てがオン動作されると、パッキング済みビデオフレームユニットフェッチ部804は、ビデオデコーダから次のパッキング済みビデオフレームユニット及び関連付けられた情報をフェッチ又は受信することによって応答する。
【0100】
幾つかの例では、占有タイプデータを有する領域のブロックについて、フレームアンパッキング部610は、変数「decOccFrame[atlasIdx][mapIdx][frameIdx][compIdx][y][x]」、及びこれに対応する値を生成する。ジオメトリタイプデータを有する領域のブロックについて、フレームアンパッキング部610は、変数「decGeoFrame[atlasIdx][mapIdx][frameIdx][compIdx][y][x]」、及びこれに対応する変数を生成する。同様に、属性データを有する領域のブロックについて、フレームパッキング部610は、変数(「decAttrFrame[atlasIdx][attrIdx][mapIdx][partIdx][frameIdx][compIdx][y][x]」)、及びこれに対応するデータを生成する。上記で説明されたように、この情報は、パッキング済みビデオフレームユニットによって表されるビューを再構成するために再構成部712によって使用される。幾つかの例では、フレームアンパッキング部は、
図9の例示の疑似コードによって実装することができる。
【0101】
符号化システム200を実装する例示の方法が
図2及び
図3において示されているが、
図2及び
図3において示されている要素、プロセス及び/又はデバイスのうちの1つ又は複数は、組み合わせ、分割、再配置、省略、除去、及び/又は他の任意の方法において実装され得る。さらに、例示のキャプチャ済みビデオデータ及びメタデータストレージ202、例示のビデオ及びメタデータプリプロセッサ204、例示のパラメータ/アトラスデータ供給部206、例示のジオメトリビデオデータ供給部208、例示の属性ビデオデータ供給部210、例示の占有ビデオデータ供給部212、例示のビットストリームフォーマット部216、例示のフレームパッキング部218、例示のエンコーダ220及び例示の多重化部222、例示のプロファイル/階層/レベルストレージ302、例示のパッキング済みビデオフラグ設定部304、例示のパック構成選択部306、例示のアトラス識別部307、例示のジオメトリ領域生成部308、例示の属性領域生成部310、例示の占有領域生成部312、例示のパック生成部314、例示のパック情報生成部316、例示のメタデータストレージ318、例示のパックストレージ322、例示のメタデータ供給部324、例示のパック供給部326、例示のデコーダ検証部328、例示の評価部330、例示のフラグストレージ332、例示のフラグ設定部333、例示のフラグ加算部334、例示のパックビデオチェック部336、例示の領域減算部338、及び例示の比較部340、及び/又は、より一般的には、
図2及び
図3の例示の符号化システム200は、ハードウェア、ソフトウェア、ファームウェア、及び/又は、ハードウェア、ソフトウェア及び/又はファームウェアの任意の組み合わせによって実装され得る。それゆえ、例えば、例示のキャプチャ済みビデオデータ及びメタデータストレージ202、例示のビデオ及びメタデータプリプロセッサ204、例示のパラメータ/アトラスデータ供給部206、例示のジオメトリビデオデータ供給部208、例示の属性ビデオデータ供給部210、例示の占有ビデオデータ供給部212、例示のビットストリームフォーマット部216、例示のフレームパッキング部218、例示のエンコーダ220及び例示の多重化部222、例示のプロファイル/階層/レベルストレージ302、例示のパッキング済みビデオフラグ設定部304、例示のパック構成選択部306、例示のアトラス識別部307、例示のジオメトリ領域生成部308、例示の属性領域生成部310、例示の占有領域生成部312、例示のパック生成部314、例示のパック情報生成部316、例示のメタデータストレージ318、例示のパックストレージ322、例示のメタデータ供給部324、例示のパック供給部326、例示のデコーダ検証部328、例示の評価部330、例示のフラグストレージ332、例示のフラグ設定部333、例示のフラグ加算部334、例示のパックビデオチェック部336、例示の領域減算部338、例示の比較部340のうちの任意のもの、及び/又は、より一般的には、例示の符号化システム200は、1つ又は複数のアナログ又はデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)及び/又はフィールドプログラマブルロジックデバイス(FPLD)によって実装することができる。純粋にソフトウェア及び/又はファームウェアの実装を包含する本特許の装置又はシステム請求項のいずれかを読むと、例示のキャプチャ済みビデオデータ及びメタデータストレージ202、例示のビデオ及びメタデータプリプロセッサ204、例示のパラメータ/アトラスデータ供給部206、例示のジオメトリビデオデータ供給部208、例示の属性ビデオデータ供給部210、例示の占有ビデオデータ供給部212、例示のビットストリームフォーマット部216、例示のフレームパッキング部218、例示のエンコーダ220及び例示の多重化部222、例示のプロファイル/階層/レベルストレージ302、例示のパッキング済みビデオフラグ設定部304、例示のパック構成選択部306、例示のアトラス識別部307、例示のジオメトリ領域生成部308、例示の属性領域生成部310、例示の占有領域生成部312、例示のパック生成部314、例示のパック情報生成部316、例示のメタデータストレージ318、例示のパックストレージ322、例示のメタデータ供給部324、例示のパック供給部326、例示のデコーダ検証部328、例示の評価部330、例示のフラグストレージ332、例示のフラグ設定部333、例示のフラグ加算部334、例示のパックビデオチェック部336、例示の領域減算部338、及び例示の比較部340のうちの少なくとも1つは、ソフトウェア及び/又はファームウェアを含む、非一時的コンピュータ可読記憶デバイス又はストレージディスク、例えば、メモリ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、Blu-ray(登録商標)ディスク等を含むものと本明細書によって明示的に定義される。またさらに、
図2及び
図3の例示の符号化システム200は、
図2及び
図3において示されているものに加えて、又はその代わりに、1つ又は複数の要素、プロセス及び/又はデバイスを含んでよく、及び/又は、示されている要素、プロセス及びデバイスのうちのいずれか又は全てのもののうちの1つよりも多くを含んでよい。本明細書において使用される場合、「通信する(in communication)」という表現は、その変形例を含め、直接通信及び/又は1つ又は複数の介在するコンポーネントを通した間接的な通信を包含し、直接の物理的(例えば、有線の)通信及び/又は絶え間ない通信を必要とせず、むしろ追加的に周期的な間隔、スケジューリングされた間隔、非周期的間隔、及び/又は、ワンタイムイベントにおける選択的通信を含む。
【0102】
図2及び
図3の符号化システム200を実装する例示のハードウェアロジック、機械可読命令、ハードウェア実装状態機械、及び/又はこれらの任意の組み合わせを代表するフローチャートが、
図10A、
図10B、
図11、及び
図12において示されている。機械可読命令は、
図16に関連して以下で論述される例示のプロセッサプラットフォーム1600において示されるプロセッサ1600等の、コンピュータプロセッサ及び/又はプロセッサ回路によって実行するための1つ又は複数の実行可能プログラム又は実行可能プログラムの一部であってよい。プログラムは、CD-ROM、フロッピーディスク、ハードドライブ、DVD、Blu-ray(登録商標)ディスク、又はプロセッサ1612に関連付けられたメモリ等の非一時的コンピュータ可読記憶媒体上に記憶されたソフトウェアにおいて具現化されてよいが、プログラム全体及び/又はその一部は、代替的に、プロセッサ1612以外のデバイスによって実行し、及び/又はファームウェア又は専用ハードウェアにおいて具現化することができる。さらに、例示のプログラムが
図10A、
図10B、
図11、及び
図12において示されているフローチャートを参照して説明されているが、例示の符号化システム200を実装する多くの他の方法が代替的に使用されてよい。例えば、ブロックの実行順序は変更されてよく、及び/又は、説明されているブロックの一部は変更され、除去され、又は組み合わされてよい。加えて又は代替的に、これらのブロックのいずれか又は全てが、ソフトウェア又はファームウェアを実行することなく、対応する動作を実行するように構築された1つ又は複数のハードウェア回路(例えば、ディスクリート及び/又は集積アナログ及び/又はデジタル回路、FPGA、ASIC、比較部、演算増幅器(オペアンプ)、論理回路等)によって実装されてよい。プロセッサ回路は、異なるネットワークロケーションに分散され、及び/又は1つ又は複数のデバイス(例えば、単一の機械内のマルチコアプロセッサ、サーバラックにわたって分散した複数のプロセッサ等)にローカルであり得る。
【0103】
本明細書において説明されている機械可読命令は、圧縮フォーマット、暗号化フォーマット、フラグメント化フォーマット、コンパイルフォーマット、実行可能フォーマット、パッケージフォーマット等のうちの1つ又は複数において記憶されてよい。本明細書において説明されているような機械可読命令は、機械実行可能命令を作成、製造、及び/又は生成するために利用され得るデータ又はデータ構造(例えば、命令の一部、コード、コードの表現等)として記憶されてよい。例えば、機械可読命令はフラグメント化され、ネットワーク又はネットワークの集合体(例えば、クラウド内、エッジデバイス内等)の同じ又は異なるロケーションに位置する1つ又は複数のストレージデバイス及び/又はコンピューティングデバイス(例えば、サーバ)に記憶されてもよい。機械可読命令は、機械可読命令をコンピューティングデバイス及び/又は他の機械によって直接読み取り可能、解釈可能及び/又は実行可能にするために、インストール、修正、適合、更新、結合、補足、構成、解読、圧縮解除、アンパッキング、分散、再割り当て、コンパイル等のうちの1つ又は複数を必要としてよい。例えば、機械可読命令は、別個のコンピューティングデバイス上で個々に圧縮、暗号化及び記憶された複数の部分に記憶されてよく、これらの部分は、解読、解凍及び結合されると、本明細書において説明されるもの等のプログラムをともに形成し得る1つ又は複数の機能を実装する実行可能命令のセットを形成する。
【0104】
別の例では、機械可読命令は、プロセッサ回路によって読み取られ得る状態で記憶され得るが、特定のコンピューティングデバイス又は他のデバイス上で命令を実行するために、ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインターフェース(API)等の追加を必要とし得る。別の例では、機械可読命令及び/又は対応するプログラムを全体的に又は部分的に実行することができるようになる前に、機械可読命令は構成(例えば、設定の記憶、データ入力、ネットワークアドレスの記録等)される必要があり得る。それゆえ、機械可読媒体は、本明細書において使用される場合、記憶されているとき又は別様に静止状態若しくは移動中の機械可読命令及び/又はプログラムの特定のフォーマット又は状態にかかわらず、機械可読命令及び/又はプログラムを含み得る。
【0105】
本明細書において説明されている機械可読命令は、任意の過去、現在又は将来の命令言語、スクリプト言語、プログラミング言語等によって表され得る。例えば、機械可読命令は、次の言語、すなわち、C、C++、Java(登録商標)、C#、Perl、Python、JavaScript(登録商標)、ハイパーテキストマークアップ言語(HTML)、構造化クエリ言語(SQL)、Swift等のうちの任意のものを使用して表されてよい。
【0106】
上記で言及されたように、
図10A、
図10B、
図11及び
図12の例示のプロセスは、非一時的コンピュータ及び/又は機械可読媒体、例えば、ハードディスクドライブ、フラッシュメモリ、リードオンリメモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ及び/又は任意の持続時間の間(例えば、長い期間、恒久的に、短期間、一時的なバッファリングのため、及び/又は情報のキャッシュのため)情報が記憶される他の任意のストレージデバイス若しくはストレージディスクの上に記憶された実行可能命令(例えば、コンピュータ及び/又は機械可読命令)を使用して実装され得る。本明細書において使用される場合、非一時的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び/又はストレージディスクを含み、かつ伝搬信号を除外するとともに伝送媒体を除外するものとして明示的に定義される。
【0107】
「含む(including)」及び「備える(comprising)」(及びそれらの全ての形態及び時制)は本明細書においてオープンエンドの用語として使用される。それゆえ、請求項が「含む(include)」又は「備える(comprise)」の任意の形態(例えば、comprises、includes、comprising、including、having等)を、プレアンブルとして、又は任意の種類の請求項の記載内で採用するときは常に、対応する請求項又は記載の範囲外とならずに、追加の要素、用語等が存在し得ることを理解されたい。本明細書において使用される場合、「少なくとも(at least)」という表現が、例えば、請求項のプリアンブルにおいて移行部の用語として使用されるとき、これは「備える」及び「含む」という用語がオープンエンドであるのと同じように、オープンエンドである。「及び/又は(and/or)」という用語は、例えば、A、B、及び/又はC等の形態で使用される場合、例えば、(1)Aのみ、(2)Bのみ、(3)Cのみ、(4)AとB、(5)AとC、(6)BとC、及び(7)AとBとCといったように、A、B、Cの任意の組み合わせ又はサブセットを指す。構造、コンポーネント、項目、物体及び/又は物を説明する文脈において本明細書において使用される場合、「A及びBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのA及び少なくとも1つのBのいずれかを含む実装を指すことが意図されている。同様に、構造、コンポーネント、項目、物体及び/又は物を説明する文脈において本明細書において使用される場合、「A又はBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのA及び少なくとも1つのBのいずれかを含む実装を指すことが意図されている。プロセス、命令、アクション、活動及び/又は段階の実施又は実行を説明する文脈において本明細書において使用される場合、「A及びBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのA及び少なくとも1つのBのいずれかを含む実装を指すことが意図されている。同様に、本明細書においてプロセス、命令、アクション、活動及び/又は段階の実施又は実行を説明する文脈において使用される場合、「A又はBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのA及び少なくとも1つのBのうちの任意のものを含む実装を指すことが意図されている。
【0108】
本明細書において使用される場合、単数形での言及(例えば、「1つの(a)」、「1つの(an)」、「第1の(first)」、「第2の(second)」等)は、複数を除外しない。「1つの(a)」又は「1つの(an)」主体という用語は、本明細書において使用される場合、その主体の1つ又は複数を指す。「1つの(a)」(又は「1つの(an)」)、「1つ又は複数(one or more)」及び「少なくとも1つ(at least one)」という用語は、本明細書において交換可能に使用することができる。さらに、個々に列挙されているが、複数の手段、要素又は方法アクションが、例えば単一のユニット又はプロセッサによって実装されてよい。加えて、異なる例又は請求項内に個々の特徴が含まれ得るが、これらは場合によっては組み合わされ、異なる例又は請求項内にこれらが含まれることは、特徴の組み合わせが実現可能ではない、及び/又は、有利ではないことを示唆するものではない。
【0109】
デコーダ700を実装する例示の方法が
図7及び
図8において示されているが、
図7及び
図8において示されている要素、プロセス及び/又はデバイスのうちの1つ又は複数は、組み合わせ、分割、再配置、省略、除去、及び/又は他の任意の方法において実装され得る。さらに、例示の多重分離部702、例示のパッキング済みビデオストリームパース部704、例示のフレームデコーダ708、例示のフレームアンパッキング部710、例示の再構成部712、例示のレンダリング部714、例示のメタデータ/SEIメッセージ抽出部716、及び例示のメタデータ/SEIメッセージデコーダ718、例示の領域カウント部801、例示の可変値設定部802、例示のパックフレームユニットフェッチ部804、例示の領域タイプ判断部806、例示の領域選択部807、例示の領域抽出部808、例示の領域高さ及び領域幅インクリメント部810、及び例示の領域位置決め判断部812、例示のマッピング部814、及び/又は、より一般的には、
図7及び
図8の例示のデコーダ700は、ハードウェア、ソフトウェア、ファームウェア、及び/又は、ハードウェア、ソフトウェア及び/又はファームウェアの任意の組み合わせによって実装され得る。それゆえ、例えば、例示の多重分離部702、例示のパッキング済みビデオストリームパース部704、例示のフレームデコーダ708、例示のフレームアンパッキング部710、例示の再構成部712、例示のレンダリング部714、例示のメタデータ/SEIメッセージ抽出部716、及び例示のメタデータ/SEIメッセージデコーダ718、例示の領域カウント部801、例示の可変値設定部802、例示のパックフレームユニットフェッチ部804、例示の領域タイプ判断部806、例示の領域選択部807、例示の領域抽出部808、例示の領域高さ及び領域幅インクリメント部810、及び例示の領域位置決め判断部812、例示のマッピング部814のうちの任意のもの、及び/又は、より一般的には、例示のデコーダ700は、1つ又は複数のアナログ又はデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)及び/又はフィールドプログラマブルロジックデバイス(FPLD)によって実装することができる。
【0110】
純粋にソフトウェア及び/又はファームウェアの実装を包含する本特許の装置又はシステム請求項のいずれかを読むと、例示の多重分離部702、例示のパッキング済みビデオストリームパース部704、例示のフレームデコーダ708、例示のフレームアンパッキング部710、例示の再構成部712、例示のレンダリング部714、例示のメタデータ/SEIメッセージ抽出部716、及び例示のメタデータ/SEIメッセージデコーダ718、例示の領域カウント部801、例示の可変値設定部802、例示のパックフレームユニットフェッチ部804、例示の領域タイプ判断部806、例示の領域選択部807、例示の領域抽出部808、例示の領域高さ及び領域幅インクリメント部810、及び例示の領域位置決め判断部812、並びに例示のマッピング部814のうちの少なくとも1つは、ソフトウェア及び/又はファームウェアを含む、非一時的コンピュータ可読記憶デバイス又はストレージディスク、例えば、メモリ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、Blu-ray(登録商標)ディスク等を含むものと本明細書によって明示的に定義される。またさらに、
図7及び
図8の例示のデコーダ700は、
図7及び
図8において示されているものに加えて、又はその代わりに、1つ又は複数の要素、プロセス及び/又はデバイスを含んでよく、及び/又は、示されている要素、プロセス及びデバイスのうちのいずれか又は全てのもののうちの1つよりも多くを含んでよい。本明細書において使用される場合、「通信する(in communication)」という表現は、その変形例を含め、直接通信及び/又は1つ又は複数の介在するコンポーネントを通した間接的な通信を包含し、直接の物理的(例えば、有線の)通信及び/又は絶え間ない通信を必要とせず、むしろ追加的に周期的な間隔、スケジューリングされた間隔、非周期的間隔、及び/又は、ワンタイムイベントにおける選択的通信を含む。
【0111】
図7及び
図8のデコーダ700を実装する例示のハードウェアロジック、機械可読命令、ハードウェア実装状態機械、及び/又はこれらの任意の組み合わせを代表するフローチャートが、
図14及び
図15において示されている。機械可読命令は、
図17に関連して以下で論述される例示のプロセッサプラットフォーム1700において示されるプロセッサ1712等の、コンピュータプロセッサ及び/又はプロセッサ回路によって実行するための1つ又は複数の実行可能プログラム又は実行可能プログラムの一部であってよい。プログラムは、CD-ROM、フロッピーディスク、ハードドライブ、DVD、Blu-ray(登録商標)ディスク、又はプロセッサ1712に関連付けられたメモリ等の非一時的コンピュータ可読記憶媒体上に記憶されたソフトウェアにおいて具現化されてよいが、プログラム全体及び/又はその一部は、代替的に、プロセッサ1712以外のデバイスによって実行し、及び/又はファームウェア又は専用ハードウェアにおいて具現化することができる。さらに、例示のプログラムが
図14、及び
図15において示されているフローチャートを参照して説明されているが、例示のデコーダ700を実装する多くの他の方法が代替的に使用されてよい。例えば、ブロックの実行順序は変更されてよく、及び/又は、説明されたブロックの一部は変更され、除去され、又は組み合わされてよい。加えて又は代替的に、これらのブロックのいずれか又は全てが、ソフトウェア又はファームウェアを実行することなく、対応する動作を実行するように構築された1つ又は複数のハードウェア回路(例えば、ディスクリート及び/又は集積アナログ及び/又はデジタル回路、FPGA、ASIC、比較部、演算増幅器(オペアンプ)、論理回路等)によって実装されてよい。プロセッサ回路は、異なるネットワークロケーションに分散され、及び/又は1つ又は複数のデバイス(例えば、単一の機械内のマルチコアプロセッサ、サーバラックにわたって分散した複数のプロセッサ等)にローカルであり得る。
【0112】
本明細書において説明されている機械可読命令は、圧縮フォーマット、暗号化フォーマット、フラグメント化フォーマット、コンパイルフォーマット、実行可能フォーマット、パッケージフォーマット等のうちの1つ又は複数において記憶されてよい。本明細書において説明されているような機械可読命令は、機械実行可能命令を作成、製造、及び/又は生成するために利用され得るデータ又はデータ構造(例えば、命令の一部、コード、コードの表現等)として記憶されてよい。例えば、機械可読命令はフラグメント化され、ネットワーク又はネットワークの集合体(例えば、クラウド内、エッジデバイス内等)の同じ又は異なるロケーションに位置する1つ又は複数のストレージデバイス及び/又はコンピューティングデバイス(例えば、サーバ)に記憶されてもよい。機械可読命令は、機械可読命令をコンピューティングデバイス及び/又は他の機械によって直接読み取り可能、解釈可能及び/又は実行可能にするために、インストール、修正、適合、更新、結合、補足、構成、解読、圧縮解除、アンパッキング、分散、再割り当て、コンパイル等のうちの1つ又は複数を必要としてよい。例えば、機械可読命令は、別個のコンピューティングデバイス上で個々に圧縮、暗号化及び記憶された複数の部分に記憶されてよく、これらの部分は、解読、解凍及び結合されると、本明細書において説明されるもの等のプログラムをともに形成し得る1つ又は複数の機能を実装する実行可能命令のセットを形成する。
【0113】
別の例では、機械可読命令は、プロセッサ回路によって読み取られ得る状態で記憶され得るが、特定のコンピューティングデバイス又は他のデバイス上で命令を実行するために、ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインターフェース(API)等の追加を必要とし得る。別の例では、機械可読命令及び/又は対応するプログラムを全体的に又は部分的に実行することができるようになる前に、機械可読命令は構成(例えば、設定の記憶、データ入力、ネットワークアドレスの記録等)される必要があり得る。それゆえ、機械可読媒体は、本明細書において使用される場合、記憶されているとき又は別様に静止状態若しくは移動中の機械可読命令及び/又はプログラムの特定のフォーマット又は状態にかかわらず、機械可読命令及び/又はプログラムを含み得る。
【0114】
本明細書において説明されている機械可読命令は、任意の過去、現在又は将来の命令言語、スクリプト言語、プログラミング言語等によって表され得る。例えば、機械可読命令は、次の言語、すなわち、C、C++、Java(登録商標)、C#、Perl、Python、JavaScript(登録商標)、ハイパーテキストマークアップ言語(HTML)、構造化クエリ言語(SQL)、Swift等のうちの任意のものを使用して表されてよい。
【0115】
上記で言及されたように、
図14及び
図15の例示のプロセスは、非一時的コンピュータ及び/又は機械可読媒体、例えば、ハードディスクドライブ、フラッシュメモリ、リードオンリメモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ及び/又は任意の持続時間の間(例えば、長い期間、恒久的に、短期間、一時的なバッファリングのため、及び/又は情報のキャッシュのため)情報が記憶される他の記憶デバイス若しくはストレージディスクの上に記憶された実行可能命令(例えば、コンピュータ及び/又は機械可読命令)を使用して実装され得る。本明細書において使用される場合、非一時的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び/又はストレージディスクを含み、かつ伝搬信号を除外するとともに伝送媒体を除外するものとして明示的に定義される。
【0116】
図10A及び
図10Bは、
図2の例示の符号化システム200を実装するように実行することができるプログラムを示している。
図10のプログラムは、ブロック1002を含み、ブロック1002において、キャプチャ済みビデオデータ及びパラメータ/アトラスデータが例示のキャプチャ済みビデオデータ及びメタデータストレージ202に記憶される。例示のビデオ及びメタデータプリプロセッサ204は、パラメータ/アトラスデータを、ビデオデータ内に含まれるビデオの異なるタイプ(例えば、ジオメトリ、属性、占有等)から分離する(ブロック1004)。次に、ビデオデータの異なるタイプは、ビデオデータ供給部208、210、及び212を介して、パッキング済みビデオフレームパッキング部218に供給され、パラメータ及びアトラスデータは、パラメータ及びアトラスデータ供給部206を介してビットストリームフォーマット部216に供給される(ブロック1006)。
【0117】
例示のパッキング済みビデオフレームパッキング部218は、部分的に、ビデオデータ供給部208、210、212によって供給されたビデオデータのタイプ及びサイズに基づいて、又は他の多様な要因のうちのいずれかに基づいて、パッキング済みビデオフレーム構成を判断する(ブロック1008)。幾つかの例では、
図3を参照して説明されたように、例示のパッキング済みビデオフレームパッキング部218は、符号化システム200によって生成されたビットストリームを復号するのに要求される復号の数を判断する(ブロック1010)。パッキング済みビデオフレームパッキング部218は、当該復号の数が閾値を満たすことになる(例えば、復号の最大数よりも小さいか又はこれに等しくなる)か否かを判断するようにテストする(ブロック1012)。幾つかの例では、復号の最大数を超えた場合、パッキング済みビデオフレームパッキング部218は、ビデオを符号化せず、プログラムは終了する。
【0118】
復号の最大数が満たされた(例えば、復号の数が復号の最大数よりも小さいか又はこれに等しい)場合、パッキング済みビデオフレームパッキング部218は、パッキング済みビデオフレームを生成する(ブロック1014)。
【0119】
幾つかの例では、パッキング済みビデオフレームを生成するとき(又は生成する前若しくは生成した後)、例示のパッキング済みビデオフレームパッキング部218(
図2)は、パッキング済みビデオフレーム情報を生成する(ブロック1016)。幾つかの例では、パッキング済みビデオフレームは、パッキング済みビデオフレームの領域内に含まれるデータのタイプに加えて、パッキング済みビデオフレームを含む。幾つかの例では、パッキング済みビデオフレーム情報は、内部に含まれる領域、領域の各々内のビデオ成分のタイプ、及び領域の各々に対応するアトラス又はアトラスタイルを含む、パッキング済みビデオフレームに関する多様な情報のうちの任意のものを含む。ビットストリームフォーマット部216(
図2)は、パラメータ/アトラスデータ(及びパッキング済みビデオフレームに適用される任意のSEIメッセージ)をフォーマット化する(ブロック1018)。幾つかの例では、パラメータデータは、パッキング済みビデオフレームを生成するのに使用されるビデオのカメラビューに対応するパラメータデータ、及び/又は、例えば、データが収集されているカメラの数、カメラの各々に関連付けられたビュー等を識別するカメラ関連データを含むことができる。幾つかの例では、上記で説明されたように、パッキング済みビデオフレーム情報は、集合的なパッキング済みビデオフレーム、個々のパッキング済みビデオフレーム、パッキング済みビデオフレームの各々内に含まれる個々の領域、領域の次元等に関する情報を含むことができる。パッキング済みビデオフレームは、エンコーダ220において符号化され(ブロック1020)、例示の多重化部222は、ビットストリーム情報を符号化済みパッキング済みビデオフレームと多重化するように動作する(ブロック1022)。多重化済みビットストリームは、その後、デコーダに送信され(ブロック1024)、プログラムは終了する。
【0120】
図11は、
図2及び
図3の例示のパッキング済みビデオフレームパッキング部218を実装するプログラム1100である。プログラム1100は、ブロック1102において開始し、ブロック1102において、プロファイル/階層/レベル情報がプロファイル/階層/レベルストレージに記憶される。次に、例示のパッキング済みビデオフラグ設定部304は、パッキング済みビデオフレームデータが処理されることになることを示すビデオフラグを設定する(ブロック1104)。幾つかの例では、パックビデオフラグを設定することは、メタデータストレージ318内の1つ又は複数のビットを設定することを含む。幾つかの例では、プロファイル/階層/レベルストレージ302内の情報に基づいて、又は
図2の他のブロックのうちの任意のものによって供給される情報に基づいて、パッキング済みビデオフレーム構成選択部306は、ビデオフレーム構成/レイアウトを判断する(ブロック1106)。幾つかの例では、
図1A、
図1B、及び/又は
図1Cにおいて示されたパッキング済みビデオフレーム構成のうちの任意のものを選択することができる。幾つかの例では、
図1A、
図1B及び
図1の構成以外の(又はこれらの構成に加えて)多様な構成のうちの任意のものを判断することができる。
【0121】
次に、ジオメトリ領域生成部308は、ジオメトリrect/regを生成し、属性領域生成部310は、領域を生成し、例示の占有領域生成部312は、占有rectを生成する(ブロック1108)。幾つかの例では、パッキング済みビデオフレーム生成部314は、選択されたパッキング済みビデオフレーム構成と、生成済み領域とを使用して、パッキング済みビデオフレームを生成する(又は選択されたパッキング済みビデオフレーム構成に従って領域を1つ又は複数のパッキング済みビデオフレームに挿入する)(ブロック1110)。幾つかの例では、生成されたパッキング済みビデオフレームは、符号化されているボリュメトリックビデオ内の領域のロケーションを識別し、当該ロケーション(及び他の情報)を、ビットストリーム内のボリュメトリックビデオのロケーションに関連付ける。加えて、パッキング済みビデオフレーム情報生成部316は、上記で説明されたように、パッキング済みビデオフレーム生成部314によって作成される各パッキング済みビデオフレームに関するパッキング済みビデオフレーム情報を生成する(ブロック1112)。パッキング済みビデオフレーム情報は、メタデータストレージ318に記憶することができる。幾つかの例では、メタデータ供給部324は、メタデータ(パッキング済みビデオフレーム(又は複数のパッキング済みビデオフレーム)に対応するパッキング済みビデオフレーム情報、パラメータ/アトラスデータ等)を
図2の例示のビットストリームフォーマット部2016に供給する(ブロック1114)。幾つかの例では、パッキング済みビデオフレームは、符号化されることになる対応するパッキング済みビデオフレームにアタッチされるか、又は別様に関連付けられる。幾つかの例では、例示のパッキング済みビデオフレーム供給部326は、(パックストレージ322から取得された)パッキング済みビデオフレームを、パッキング済みビデオフレームが符号化される
図2の例示の符号化システム200に供給する(ブロック1116)。加えて、パッキング済みビデオフレーム情報は、符号化済みパックフレームに関連付けることができる。加えて、例示の多重化部は、復号及びレンダリングのためにデコーダにトランスポートするためにメタデータのビットストリームを対応する符号化済みデータと多重化し(ブロック1118)、多重化済みストリームは、デコーダに送信される(ブロック1120)。その後、プログラム1100は、繰り返されるか、又は終了する。
【0122】
幾つかの例では、パッキング済みビデオフレーム生成部314は、複数のパッキング済みビデオフレームが同じ時点で(又は互いの同じ期間内で)生成されるように、領域を、異なるパッキング済みビデオフレームに同時に挿入する。幾つかの例では、例示のパッキング済みビデオフレーム情報生成部316は、パッキング済みビデオフレーム情報を判断するために、パッキング済みビデオフレームストレージ322に記憶されたパッキング済みビデオフレームを検査し、幾つかの例では、パッキング済みビデオフレーム生成部314は、パッキング済みビデオフレーム情報の1つ又は複数のタイプをパッキング済みビデオフレーム情報生成部316に供給する。幾つかの例では、パッキング済みビデオフレーム情報生成部316は、ビデオ符号化規格に従ってパッキング済みビデオフレーム情報を配置する順序を判断する。
【0123】
図12は、
図3の例示のデコーダ検証部328を実装するプログラム1200である。
図10A及び
図10Bの例示のプログラム1000は、デコーダ検証部328が符号化システム200動作の文脈内で動作する方法を示している。明確性のために、デコーダ検証部328の動作は、
図11のプログラム11に反映されず、デコーダ検証部328の特異性は、
図10に反映されない。その代わりに、デコーダ検証部328の動作は、
図12のプログラム1200を参照して説明される。例示のプログラム1200がどのようにブロック1010及び1012実行するように動作するのかのより広い文脈は、
図10A及び
図10Bを参照して示されている。
【0124】
例示のプログラムは、ブロック1202を含むことができ、ブロック1202において、
図3の例示のフラグ設定部333は、例示のフラグストレージ332内のフラグを設定する。各フラグは、ビデオデータの異なるタイプに対応し、各フラグは、ビデオデータの対応するタイプが対応するパッキング済みビデオフレームビデオユニット内に存在しているか否かを示す。ビデオデータの異なるタイプは、補助ビデオデータ、占有ビデオデータ、ジオメトリビデオデータ、及び属性ビデオデータを含む。幾つかの例では、属性データは、属性データのサブカテゴリを含むことができ、属性ビデオデータ内に含まれるサブカテゴリの数は、変数「ai_attribute_count」を使用して表される。加えて、例示のフラグ加算部334は、パッキング済みビデオフレームユニット内に含まれるビデオデータのタイプの総数を判断するために、パッキング済みビデオフレームユニットの各アトラスに関連付けられたフラグの数を総和する(ブロック1204)。フラグの総和は、符号化済みビデオを受信するデコーダによって復号可能な復号の数であり、変数「NumDecodes」に等しい。全てのアトラスについてのフラグの数が総和されると、例示のパッキング済みフレームビデオチェック部336は、パッキング済みビデオフレームユニットがパッキング済みビデオフレームを含むことをパッキング済みビデオフレームフラグが示すか否かをチェックする(ブロック1206)。パッキング済みビデオフレームユニットがパックビデオフレームを含むことをパッキング済みビデオフレームビデオフラグが示さない場合、プログラム1200は終了する。パッキング済みビデオフレームビデオユニットがパッキング済みビデオフレームを含むことをパッキング済みビデオフレームビデオフラグが示すことを条件として、パッキング済みビデオフレームごとに、例示の領域減算部338は、全てのパッキング済みビデオフレームの領域が減算されるまで、NumDecodesの値から、各パッキング済みビデオフレーム内に含まれる領域の数を減算する(ブロック1208)。各パッキング済みビデオフレーム内に含まれる領域の数-1は、変数「pi_num_rect[k]-1」によって表すことができ、ここで、変数「k」は、パッキング済みビデオフレームの総数内に含まれるパッキング済みビデオフレームの数を表す。次に、例示の比較部340は、NumDecodesの値を、受信側デコーダが復号することが可能である復号の最大数に対応する値と比較する(ブロック1210)。復号の最大数は、変数「MaxDecodes」(閾値とも称される)によって表される。幾つかの例では、フレームパッキング部218は、ビデオストリームが送信され得るデコーダの様々なタイプについて、対応するMaxDecodes値を識別する情報を用いて事前プログラミングされる。
【0125】
復号の最大数(閾値とも称される)を超えた(例えば、ブロック1212において判断されるように閾値が満たされない)場合、対応するビデオは符号化されず、プログラム1200は終了する。
【0126】
閾値が(ブロック1212において判断されるように)満たされた場合、エンコーダは、パッキング済みビデオフレームの生成(ブロック1214)を進め、プログラム1200は終了する。幾つかの例では、
図13の擬似コードは、プログラム1200を実装するか、又は
図12のプログラム1200に置き換わるのに使用することができる。
図12のプログラム1200の目的は、ビットストリームを復号するのに必要とされるビデオ復号の数を判断することである。全てのアトラスについて、特定の成分タイプが存在する場合、これが追加される。その後、パッキングが使用される場合、領域の#-1を復号の総数から減算することができ、これはなぜならば、パッキング済みフレーム全体が、含む領域の数にかかわらず、1つのみのデコーダを要求するためである。
【0127】
図14は、
図6の例示のパッキング済みビデオフレームデコーダ600を実装するプログラム1400である。幾つかの例では、プログラム1400は、ブロック1402を含み、ブロック1402において、
図7の例示の多重分離部702は、
図2の符号化システム200によって生成された符号化済みビデオビットストリームストリームを受信及び多重分離する(ブロック1402)。加えて、ブロック1402において、多重分離部702は、メタデータ/SEIメッセージを符号化済みビデオサブビットストリームから分離し、メタデータ/SEIメッセージを、例示のメタデータ/SEIメッセージ抽出部716に供給する。加えて、多重分離部702は、符号化済みビデオサブビットストリーム、及びメタデータ/SEIメッセージに対応するパッキング済みビデオフレーム情報を、例示のビデオストリームパース部604に供給する。
【0128】
幾つかの例では、例示のビデオストリームパース部704は、パッキング済みビデオフレームフレームに対応するサブビットストリームのユニットを識別するとともに、パッキング済みビデオフレームフレームに対応する情報を識別するために、例示のメタデータ/SEIメッセージデコーダ718によって供給される情報を使用する。加えて、ビデオストリームパース部704は、エンコーダから受信された符号化済みパッキング済みビデオサブビットストリームからのパッキング済みビデオフレーム情報をパースする(ブロック1404)。幾つかの例では、メタデータ/SEIメッセージデコーダ718の情報は、パッキング済みビデオフレームごとに、色成分インデックス、ビット深度、パック幅及びパック高さを含む。加えて、メタデータ/SEIメッセージデコーダ718は、パッキング済みビデオフレームに関連付けられたマップストリームの数を供給し、必要な場合、現在オン動作されている1つ又は複数のパッキング済みビデオフレームに関連付けられたマップカウントを取得する。
【0129】
幾つかの例では、例示の復号プロセス1200は、ビデオストリームパース部704を使用して、ビットストリームからのパッキング済みフレームビデオ情報をパースすることを含む(ブロック1404)。
幾つかの例では、ビデオストリームパース部は、1)「decPackFrame[frameIdx][compIdx][y][x]」)、2)「decPackBitdepth[frameIdx]」、3)「decPackWidth[frameIdx]」及び4)「decPackHeight[frameIdx]」、及び5)「mapIdx」を含むパッキング済みビデオフレームを記述する変数のセットにパッキング済みビデオフレーム情報を関連付ける。変数「frameIdx」によって表される値は、復号済みパッキング済みビデオフレームのインデックスであり、変数「compIdx」によって表される値は、色成分インデックスである。変数「y」は、パッキング済みビデオフレーム内の行インデックスであり、0~変数「decPackHeight[frameIdx]-1」によって表される値(両端を含む)の範囲であり、変数「x」は、パッキング済みビデオフレーム内の列インデックスであり、0~「decPackWidth[frameIdx]-1」(両端を含む)の範囲である。マップインデックスの値(「mapIdx」)は、ゼロから開始し、次のステートメントが評価する値:「vps_multiple_map_streams_present_flag?vps_map_count_minus1:0」(両端を含む)に拡張する範囲内に入る。幾つかの例では、上記のステートメントは、変数「vps_multiple_map_streams_present_flag」の値が真である(又はゼロに等しくない)場合に変数「vps_mpa_count_minus 1」の値に評価し、そうではない場合、ゼロに評価する。変数「vps_map_count_minus1」は、現在オン動作されているパッキング済みビデオフレーム内に含まれるか又はこれに別様に関連付けられるマップの数を表す値である。
【0130】
復号済みパッキング済みビデオフレームは、例示のフレームデコーダ608に供給される。そして、復号済みパッキング済みビデオ情報は、フレームパース部に供給される。フレームデコーダ608は、任意のビデオ復号規格に従ってパッキング済みビデオフレームストリームに対して任意の復号プロセスを実行し、結果として得られる復号済みパッキング済みビデオフレームユニットを例示のフレームアンパッキング部610に供給する(ブロック1406)。パッキング済みビデオフレームアンパッキング部610は、復号済みパッキング済みビデオフレームをアンパッキングするために、復号済みパッキング済みビデオフレームに関連付けられたパッキング済みビデオフレーム情報、ビデオストリームパース部604によって識別される変数等を使用して、パッキング済みビデオフレームユニットをアンパッキングする(ブロック1408)。
【0131】
例示のフレームマッピング部は、復号済みパッキング済みビデオストリーム及びアンパッキング済みフレーム情報を使用して、復号済みパッキング済みビデオストリームの領域をボリュメトリックビデオシーケンスにマッピングする(ブロック1410)。マッピング済みビデオは、例示の再構成部712(
図7参照)へのストリームに供給され、例示の再構成部712は、この情報を使用して、例示のレンダリング部において表示する(ブロック1414)ために3次元画像を再構成するのに必要とされる任意の追加処理を実行する(ブロック1412)。
【0132】
図15は、
図8の例示のフレームアンパッキング部を実装するのに使用することができるプログラム1500である。幾つかの例では、プログラム1500は、ブロック1502において開始し、ブロック1502において、メタデータ/SEIメッセージデコーダ618は、例示のエンコーダのフレームパッキング部によって生成されたメタデータ(パッキング済みビデオフレーム情報を含む)及びSEIメッセージを復号する。メタデータ/SEIメッセージは、アンパッキングされることになるパッキング済みビデオフレームユニットに関連付けられたパッキング済みビデオフレーム情報、パッキング済みビデオフレームユニットに対応するアトラスデータヘッダ、パッキング済みビデオフレームユニットの復号済みパッチユニット、復号済みブロック対パッチマップ等を含むことができる。メタデータ/SEIメッセージデコーダ618の情報は、必要に応じて、又はフレームアンパッキング部によって要求されるときに、フレームアンパッキング部に供給することができる。
【0133】
幾つかの例では、例示のパッキング済みビデオフレームユニットフェッチ部704は、(フレームデコーダ608から)処理されることになるパッキング済みビデオフレームユニットを受信及び/又はフェッチする(ブロック1504)。幾つかの例では、
図7に関して上記で説明されたように、各パッキング済みビデオフレームの領域ごとに、各領域を説明する情報がメタデータ/SEIメッセージデコーダから収集される(ブロック1508)。各rectのブロックごとに、位置が判断され、
図7に関して上記で説明されたように、対応する情報が取得される(ブロック1510)。ブロック位置、対応するブロック情報及び未加工データが、
図7に関して上記で説明されたように画像内への配置のために再構成部に供給される(ブロック1512)。全てのパッキング済みビデオフレームの全ての領域の全てのブロックが処理されるまで、ブロック1508、1510、及び1512が繰り返される(ブロック1514)。その後、プログラム1500は終了する。幾つかの例では、プログラム1500は、
図9の擬似コードを使用して実装することができる。
【0134】
図16は、
図2及び
図3のエンコーダを実装するために
図10A、
図10B、
図11、
図12の命令を実行するように構造化された例示のプロセッサプラットフォーム1600のブロック図である。プロセッサプラットフォーム1600は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)(商標)等のタブレット)、携帯情報端末(PDA)、インターネット家電機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、Blu-ray(登録商標)プレーヤ、ゲーミングコンソール、パーソナルビデオレコーダ、セットトップボックス、ヘッドセット若しくは他のウェアラブルデバイス、又は他の任意のタイプのコンピューティングデバイスとすることができる。
【0135】
示されている例のプロセッサプラットフォーム1600は、プロセッサ1612を備える。示されている例のプロセッサ1612は、ハードウェアである。例えば、プロセッサ1612は、1つ又は複数の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、又は任意の所望のファミリ若しくは製造者からのコントローラによって実装することができる。ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)デバイスであってよい。この例では、プロセッサは、例示のビデオ及びメタデータプリプロセッサ204、例示のパラメータ/アトラスデータ供給部206、例示のジオメトリビデオデータ供給部208、例示の属性ビデオデータ供給部210、例示の占有ビデオデータ供給部212、例示のビットストリームフォーマット部216、例示のフレームパッキング部218、例示のエンコーダ220及び例示の多重化部222、例示のパッキング済みビデオフレームビデオフラグ設定部304、例示のパッキング済みビデオフレーム構成選択部306、例示のアトラス識別部307、例示のジオメトリ領域生成部308、例示の属性領域生成部310、例示の占有領域生成部312、例示のパッキング済みビデオフレーム生成部314、例示のパッキング済みビデオフレーム情報生成部316、例示のメタデータ供給部324、例示のパッキング済みビデオフレーム供給部326、例示のデコーダ検証部328、例示の評価部330、例示のフラグ設定部333、例示のフラグ加算部334、例示のパッキング済みビデオフレームビデオチェック部336、例示の領域減算部338、及び例示の比較部340、及び/又は、より一般的には、例示の符号化システム200を実装する。
【0136】
示されている例のプロセッサ1612は、ローカルメモリ1613(例えば、キャッシュ)を備える。示されている例のプロセッサ1612は、バス1618を介して、揮発性メモリ1614及び不揮発性メモリ1616を含むメインメモリと通信する。揮発性メモリ1614は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))及び/又は他の任意のタイプのランダムアクセスメモリデバイスによって実装されてよい。不揮発性メモリ1616は、フラッシュメモリ及び/又は他の任意の所望のタイプのメモリデバイスによって実装されてよい。メインメモリ1614、1616へのアクセスは、メモリコントローラによって制御される。
【0137】
示されている例のプロセッサプラットフォーム1600は、インターフェース回路1620も備える。インターフェース回路1620は、イーサネット(登録商標)インターフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インターフェース、近距離通信(NFC)インターフェース及び/又はPCIエクスプレスインターフェース等の任意のタイプのインターフェース規格によって実装されてよい。
【0138】
示されている例では、1つ又は複数の入力デバイス1622が、インターフェース回路1620に接続されている。入力デバイス1622は、ユーザがデータ及び/又はコマンドをプロセッサ1612に入力することを可能にする。入力デバイスは、例えば、オーディオセンサ、マイクロフォン、カメラ(スチール又はビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント及び/又は音声認識システムによって実装することができる。
【0139】
1つ又は複数の出力デバイス1624も、示されている例のインターフェース回路1620に接続されている。出力デバイス1624は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、ブラウン管ディスプレイ(CRT)、インプレーススイッチング(IPS)ディスプレイ、タッチスクリーン等)、触覚出力デバイス、仮想現実ヘッドセット等によって実装することができる。それゆえ、示されている例のインターフェース回路1620は、典型的には、グラフィックスドライバカード、グラフィックスドライバチップ及び/又はグラフィックスドライバプロセッサを含む。
【0140】
示されている例のインターフェース回路1620は、送信機、受信機、送受信機、モデム、住居用ゲートウェイ、ワイヤレスアクセスポイント、及び/又は、ネットワーク1626を介した外部機械(例えば、任意の種類のコンピューティングデバイス)とのデータの交換を容易にするためのネットワークインターフェース等の通信デバイスも含む。通信は、例えば、イーサネット(登録商標)接続、デジタル加入者線(DSL)接続、電話回線接続、同軸ケーブルシステム、衛星システム、見通し線ワイヤレスシステム、セルラ電話システム等を介したものとすることができる。
【0141】
示されている例のプロセッサプラットフォーム1600は、ソフトウェア及び/又はデータを記憶する1つ又は複数のマスストレージデバイス1628も備える。そのようなマスストレージデバイス1628の例としては、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Blu-ray(登録商標)ディスクドライブ、独立ディスク冗長アレイ(RAID)システム、及びデジタル多用途ディスク(DVD)ドライブが挙げられる。
【0142】
図10A、
図10B、
図11及び
図12の機械実行可能命令1632は、マスストレージデバイス1628、揮発性メモリ1614、不揮発性メモリ1616、及び/又は、CD若しくはDVD等のリムーバブル非一時的コンピュータ可読記憶媒体に記憶されてよい。
【0143】
図17は、
図7及び
図8のデコーダを実装するために
図14及び
図15の命令を実行するように構造化された例示のプロセッサプラットフォーム1700のブロック図である。プロセッサプラットフォーム1700は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)(商標)等のタブレット)、携帯情報端末(PDA)、インターネット家電機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、Blu-ray(登録商標)プレーヤ、ゲーミングコンソール、パーソナルビデオレコーダ、セットトップボックス、ヘッドセット若しくは他のウェアラブルデバイス、仮想現実システム、又は他の任意のタイプのコンピューティングデバイスとすることができる。
【0144】
示されている例のプロセッサプラットフォーム1700は、プロセッサ1712を備える。示されている例のプロセッサ1712は、ハードウェアである。例えば、プロセッサ1712は、1つ又は複数の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、又は任意の所望のファミリ若しくは製造者からのコントローラによって実装することができる。ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)デバイスであってよい。この例では、プロセッサは、例示の多重分離部702、例示のパッキング済みビデオフレームビデオストリームパース部704、例示のフレームデコーダ708、例示のフレームアンパッキング部710、例示の再構成部712、例示のレンダリング部714、例示のメタデータ/SEIメッセージ抽出部716、及び例示のメタデータ/SEIメッセージデコーダ718、例示の領域カウント部801、例示の可変値設定部802、例示のパッキング済みビデオフレームユニットフェッチ部804、例示の領域タイプ判断部806、例示の領域選択部807、例示の領域抽出部808、例示の領域高さ及び領域幅インクリメント部810、例示の領域位置決め判断部812、及び例示のマッピング部814を実装する。
【0145】
示されている例のプロセッサ1712は、ローカルメモリ1713(例えば、キャッシュ)を備える。示されている例のプロセッサ1712は、バス1718を介して、揮発性メモリ1714及び不揮発性メモリ1716を含むメインメモリと通信する。揮発性メモリ1714は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))及び/又は他の任意のタイプのランダムアクセスメモリデバイスによって実装されてよい。不揮発性メモリ1716は、フラッシュメモリ及び/又は他の任意の所望のタイプのメモリデバイスによって実装されてよい。メインメモリ1714、1716へのアクセスは、メモリコントローラによって制御される。
【0146】
示されている例のプロセッサプラットフォーム1700は、インターフェース回路1720も備える。インターフェース回路1720は、イーサネット(登録商標)インターフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インターフェース、近距離通信(NFC)インターフェース及び/又はPCIエクスプレスインターフェース等の任意のタイプのインターフェース規格によって実装されてよい。
【0147】
示されている例では、1つ又は複数の入力デバイス1722が、インターフェース回路1720に接続されている。入力デバイス1722は、ユーザがデータ及び/又はコマンドをプロセッサ1712に入力することを可能にする。入力デバイスは、例えば、オーディオセンサ、マイクロフォン、カメラ(スチール又はビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント及び/又は音声認識システムによって実装することができる。
【0148】
1つ又は複数の出力デバイス1724も、示されている例のインターフェース回路1720に接続されている。出力デバイス1724は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、ブラウン管ディスプレイ(CRT)、インプレーススイッチング(IPS)ディスプレイ、タッチスクリーン等)、触覚出力デバイス、仮想現実ヘッドセット等によって実装することができる。それゆえ、示されている例のインターフェース回路1720は、典型的には、グラフィックスドライバカード、グラフィックスドライバチップ及び/又はグラフィックスドライバプロセッサを含む。
【0149】
示されている例のインターフェース回路1720は、送信機、受信機、送受信機、モデム、住居用ゲートウェイ、ワイヤレスアクセスポイント、及び/又は、ネットワーク1726を介した外部機械(例えば、任意の種類のコンピューティングデバイス)とのデータの交換を容易にするためのネットワークインターフェース等の通信デバイスも含む。通信は、例えば、イーサネット(登録商標)接続、デジタル加入者線(DSL)接続、電話回線接続、同軸ケーブルシステム、衛星システム、見通し線ワイヤレスシステム、セルラ電話システム等を介したものとすることができる。
【0150】
示されている例のプロセッサプラットフォーム1700は、ソフトウェア及び/又はデータを記憶する1つ又は複数のマスストレージデバイス1728も備える。そのようなマスストレージデバイス1728の例としては、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Blu-ray(登録商標)ディスクドライブ、独立ディスク冗長アレイ(RAID)システム、及びデジタル多用途ディスク(DVD)ドライブが挙げられる。
【0151】
図14及び
図15の機械実行可能命令1732は、マスストレージデバイス1728、揮発性メモリ1714、不揮発性メモリ1716、及び/又は、CD若しくはDVD等のリムーバブル非一時的コンピュータ可読記憶媒体に記憶されてよい。
【0152】
上記から、没入ビデオビットストリームのためのデータパッキング済みビデオフレームを生成する例示の方法、装置及び製造品が開示されたことが理解されよう。開示された方法、装置及び製造品は、ビデオフレームを復号するのに必要とされるデコーダの数を削減し、それによって、ビデオフレームを復号することが可能なデバイスのプールを拡大することによって、コンピューティングデバイスを使用する効率性を改善する。加えて、本明細書において開示された方法、装置及び製造品は、同じ又は異なるアトラスの異なる成分を同じ「パッキング済みビデオフレーム」内に含めることも可能にし、当該成分は、アプリケーションに依存して更なる圧縮を達成する、又は所望の特徴をサポートするために、異なるフレームレートにおいてコード化され得る(例えば、テクスチャアトラスのパッキング済みビデオフレームは、60fpsにおいて送信することができ、一方、ジオメトリアトラスのパックビデオフレームは、30fpsにおいて送信され得る)。加えて、本発明は、標準的なエンコーダ又はデコーダを修正する必要なく、ボリュメトリックビデオデータ及び/又は没入データに対して動作するためのそのようなエンコーダ及びデコーダの使用を可能にする。したがって、開示された方法、装置、及び製造品は、コンピュータの機能における1つ又は複数の改善を対象とする。
【0153】
ボリュメトリックビデオビットストリーム及び没入ビデオビットストリームのためのパッキング済みビデオフレームを生成する例示の方法、装置、システム、及び製造品が本明細書において開示される。
【0154】
更なる例及びその組み合わせは、以下を含む。
【0155】
例1は、ボリュメトリックビデオ符号化システムであって、パッキング済みビデオフレームレイアウトを作成する構成判断部であって、前記パッキング済みビデオフレームレイアウトは、ビデオ成分が配置されることになる領域を含む、構成判断部と、前記パッキング済みビデオフレームレイアウトの前記領域のうちの異なる領域に配置された前記ビデオ成分を含むパッキング済みビデオフレームを形成するパッキング済みビデオフレーム生成部とを備える、ボリュメトリックビデオ符号化システムを含む。加えて、(i)前記パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)前記領域のうちのそれぞれの領域内に含まれるビデオ成分のそれぞれのタイプ、又は(iii)前記領域のロケーション及び次元を識別する情報、のうちの少なくとも1つを含む、前記パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成するパッキング済みビデオフレーム情報生成部が備えられる。ボリュメトリックビデオ符号化システムは、前記パッキング済みビデオフレームを符号化済みビットストリームに符号化するビデオエンコーダも備える。前記符号化済みビットストリームは、前記パッキング済みビデオフレーム情報を含み、前記パッキング済みビデオフレーム情報は、前記符号化済みビットストリーム内に前記パッキング済みビデオフレームを含むことをシグナリングする。
【0156】
例2は、前記ビデオ成分のタイプが、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、例1に記載のボリュメトリックビデオ符号化システムを含む。
【0157】
例3は、前記パッキング済みビデオフレームの前記領域が重ならず、前記パッキング済みビデオフレーム情報が、前記領域のうちのそれぞれの領域に関連付けられたビデオ成分のそれぞれのタイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、例1に記載のボリュメトリックビデオ符号化システムを含む。
【0158】
例4は、同じパッキング済みビデオフレーム内の前記ボリュメトリックビデオデータが、同じサンプリングフォーマット及びビット深度を有する、例1に記載のボリュメトリックビデオ符号化システムを含む。
【0159】
例5は、前記ビットストリームを復号するのに使用されることになるデコーダの数に対する制約が違反されないことを検証するデコーダ数検証部を更に備える、例1に記載のボリュメトリックビデオ符号化システムを含む。
【0160】
例6は、(i)独立して復号することができる前記パッキング済みビデオフレームの領域及び(ii)対応する領域識別子を識別する独立復号可能領域識別部と、前記領域識別子を含み、前記領域識別子に対応する前記領域を独立して復号することができることを示すメッセージを生成するメッセージ生成部と、前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する多重化部とを更に備える、例1に記載のボリュメトリックビデオ符号化システムを含む。
【0161】
例7は、命令を含む1つ又は複数の非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、少なくとも、パッキング済みビデオフレームレイアウトを作成する手順を行わせる、1つ又は複数の非一時的コンピュータ可読媒体を含む。前記パッキング済みビデオフレームレイアウトは、ビデオ成分が配置されることになる領域を含む。加えて、プロセッサは、前記パッキング済みビデオフレームレイアウトの前記領域のうちの異なる領域に配置された前記ビデオ成分を含むパッキング済みビデオフレームを形成し、(i)前記パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)前記領域のうちのそれぞれの領域内に含まれるビデオ成分のそれぞれのタイプ、又は(iii)前記領域のロケーション及び次元を識別する情報、のうちの少なくとも1つを含む、前記パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成する。プロセッサはまた、パッキング済みビデオフレームを、パッキング済みビデオフレーム情報を含む符号化済みビットストリームに符号化する。前記パッキング済みビデオフレーム情報は、前記符号化済みビットストリーム内に前記パッキング済みビデオフレームを含むことをシグナリングする。
【0162】
例8は、前記ビデオ成分のタイプが、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、例6に記載の1つ又は複数の非一時的コンピュータ可読媒体を含む。
【0163】
例9は、前記パッキング済みビデオフレームの前記領域が重ならず、前記パッキング済みビデオフレーム情報が、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、例6に記載の1つ又は複数の非一時的コンピュータ可読媒体を含む。
【0164】
例10は、同じパッキング済みビデオフレーム内に配置される前記ボリュメトリックビデオデータが、同じサンプリングフォーマット及びビット深度を有する、例6に記載の1つ又は複数の非一時的コンピュータ可読媒体を含む。
【0165】
例11は、前記ビットストリームを復号するのに使用されることになるデコーダの数に対する制約が違反されないことを検証するデコーダ数検証部を更に備える、例6に記載の1つ又は複数の非一時的コンピュータ可読媒体を含む。
【0166】
例12は、前記命令が、実行されると、前記プロセッサに、(i)独立して復号することができる前記パッキング済みビデオフレームの領域及び(ii)対応する領域識別子を識別する手順と、前記領域識別子を含み、前記領域識別子に対応する前記領域を独立して復号することができることを示すメッセージを生成する手順とを更に行わせる、例6に記載の1つ又は複数の非一時的コンピュータ可読媒体を含む。
前記命令は、前記プロセッサに、前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する手順も行わせる。
【0167】
例13は、前記命令が、実行されると、前記少なくとも1つのプロセッサに、独立して復号することができる前記パッキング済みビデオフレームの領域を識別する手順と、独立して復号されることになる前記パッキング済みビデオフレームの前記領域を識別するメッセージを生成する手順と、前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する手順とを行わせる、例6に記載の1つ又は複数の非一時媒体を含む。
【0168】
例15は、ボリュメトリックビデオ復号システムであって、パッキング済みビデオフレームを含むサブビットストリームからパッキング済みビデオフレーム情報を抽出するパース部を備える、ボリュメトリックビデオ復号システムを含む。前記パッキング済みビデオフレーム情報は、(i)パッキング済みビデオフレームレイアウト、(ii)前記パッキング済みビデオフレームレイアウトの領域を一意に識別する領域識別子、及び(iii)領域ロケーション及び次元情報を含む。また、前記サブビットストリームの前記パッキング済みビデオフレームを復号するビデオデコーダと、前記パッキング済みビデオフレーム情報に基づいて、前記パッキング済みビデオフレームの前記領域を、レンダリングされることになるボリュメトリックビデオシーケンスの少なくとも一部にマッピングするマッピング部とが備えられる。
【0169】
例16は、前記領域のうちのそれぞれの領域が、それぞれのビデオ成分タイプを含み、前記ビデオ成分タイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、例15に記載のボリュメトリックビデオ復号システムを含む。
【0170】
例17は、前記パッキング済みビデオフレームの前記領域が重ならず、前記パッキング済みビデオフレーム情報が、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、例15に記載のボリュメトリックビデオ復号システムを含む。
【0171】
例18は、前記パース部が、前記サブビットストリームからメッセージを更に抽出し、前記メッセージは、領域識別子、独立してコード化されることになる前記領域識別子に対応する領域を有する補足強化情報を含む、例15に記載のボリュメトリックビデオ復号システムを含む。
【0172】
例19は、独立してコード化されることになる領域のサイズ及びロケーションが、前記パッキング済みビデオフレーム情報内に含まれるタイルインデックスに基づいて判断される、例18に記載のボリュメトリックビデオ復号システムを含む。
【0173】
例20は、独立してコード化されることになる領域のサイズ及びロケーションが、前記パッキング済みビデオフレーム情報内に含まれるサブピクチャ識別子に基づいて判断される、例18に記載のボリュメトリックビデオ復号システムを含む。
【0174】
例21は、ボリュメトリックビデオ復号システムであって、ビデオビットストリームに関連付けられたパラメータセットをパースするビデオビットストリームパース部を備える、ボリュメトリックビデオ復号システムを含む。パラメータセットは、ビットストリームを復号するのに使用されることになるビデオデコーダの数を示す。デコーダ検証部は、前記ボリュメトリックビデオ復号システムに関連付けられたプロファイル、階層及びレベルに基づいて、前記ボリュメトリックビデオ復号システムの複数のビデオデコーダが前記パラメータセットによって示される前記デコーダの数よりも大きいか又はこれに等しいか否かを判断する。加えて、復号コントローラは、前記複数のビデオデコーダが前記パラメータセットによって示される前記デコーダの数よりも小さい場合に前記サブビットストリームの復号を停止し、前記複数のビデオデコーダが前記パラメータセットによって示される前記デコーダの数よりも大きいか又はこれに等しい場合に前記サブビットストリームの復号を続ける。
【0175】
例22は、ボリュメトリックビデオを復号する方法であって、パッキング済みビデオフレームを含むサブビットストリームからパッキング済みビデオフレーム情報を抽出する段階を備える、方法を含む。前記パッキング済みビデオフレーム情報は、(i)パッキング済みビデオフレームレイアウト、(ii)前記パッキング済みビデオフレームレイアウトの領域を一意に識別する領域識別子、及び(iii)領域ロケーション及び次元情報を含み、前記方法は、前記サブビットストリームの前記パッキング済みビデオフレームを復号する段階と、前記パッキング済みビデオフレーム情報に基づいて、前記パッキング済みビデオフレームの前記領域を、レンダリングされることになるボリュメトリックビデオシーケンスの少なくとも一部にマッピングする段階も備える。
【0176】
例23は、前記領域のうちのそれぞれの領域が、それぞれのビデオ成分タイプを含み、前記ビデオ成分タイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、例22に記載のボリュメトリックビデオ復号方法を含む。
【0177】
例24は、前記パッキング済みビデオフレームの前記領域が重ならず、前記パッキング済みビデオフレーム情報が、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、例22に記載のボリュメトリックビデオ復号方法を含む。
【0178】
例25は、前記パース部が、前記サブビットストリームからメッセージを更に抽出し、前記メッセージは、領域識別子、独立してコード化されることになる前記領域識別子に対応する領域を有する補足強化情報を含む、例22に記載のボリュメトリックビデオ復号方法を含む。
【0179】
例26は、独立してコード化されることになる領域のサイズ及びロケーションが、前記パッキング済みビデオフレーム情報内に含まれるタイルインデックスに基づいて判断される、例22に記載のボリュメトリックビデオ復号方法を含む。
【0180】
例27は、独立してコード化されることになる領域のサイズ及びロケーションが、前記パッキング済みビデオフレーム情報内に含まれるサブピクチャ識別子に基づいて判断される、例22に記載のボリュメトリックビデオ復号方法を含む。
【0181】
例28は、例2~6のうちのいずれか1つを含む例1である。
【0182】
例29は、例8~13のうちのいずれか1つを含む例7である。
【0183】
例30は、例16~17、19、及び20のうちのいずれか1つを含む例15である。
【0184】
例31は、例21を含み、例22~27のうちのいずれか1つを更に含む。
【0185】
例32は、実行されると、プロセッサに、例22~27のうちのいずれか1つの方法を実行させる命令を含む1つ又は複数の非一時媒体を含む。
【0186】
特定の例示の方法、装置及び製造品が本明細書において開示されたが、本特許の包含範囲はこれに限定されない。反対に、本特許は、本特許の特許請求の範囲に公平に属する全ての方法、装置及び製造品を包含する。
【0187】
以下の特許請求の範囲は、本明細書によってこの参照によって本詳細な説明に組み込まれ、各請求項は本開示の別個の実施形態として独立している。
[他の可能な項目]
[項目1]
ボリュメトリックビデオ符号化システムであって、
パッキング済みビデオフレームレイアウトを作成する構成判断部であって、前記パッキング済みビデオフレームレイアウトは、ビデオ成分が配置されることになる領域を含む、構成判断部と、
前記パッキング済みビデオフレームレイアウトの前記領域のうちの異なる領域に配置された前記ビデオ成分を含むパッキング済みビデオフレームを形成するパッキング済みビデオフレーム生成部と、
(i)前記パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)前記領域のうちのそれぞれの領域内に含まれるビデオ成分のそれぞれのタイプ、又は(iii)前記領域のロケーション及び次元を識別する情報、のうちの少なくとも1つを含む、前記パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成するパッキング済みビデオフレーム情報生成部と、
前記パッキング済みビデオフレームを符号化済みビットストリームに符号化するビデオエンコーダであって、前記符号化済みビットストリームは、前記パッキング済みビデオフレーム情報を含み、前記パッキング済みビデオフレーム情報は、前記符号化済みビットストリーム内に前記パッキング済みビデオフレームを含むことをシグナリングする、ビデオエンコーダと
を備える、ボリュメトリックビデオ符号化システム。
[項目2]
前記ビデオ成分のタイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、項目1に記載のボリュメトリックビデオ符号化システム。
[項目3]
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたビデオ成分のそれぞれのタイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、項目1に記載のボリュメトリックビデオ符号化システム。
[項目4]
同じパッキング済みビデオフレーム内の前記ボリュメトリックビデオデータは、同じサンプリングフォーマット及びビット深度を有する、項目1に記載のボリュメトリックビデオ符号化システム。
[項目5]
前記ビットストリームを復号するのに使用されることになるデコーダの数に対する制約が違反されないことを検証するデコーダ数検証部を更に備える、項目1に記載のボリュメトリックビデオ符号化システム。
[項目6]
(i)独立して復号することができる前記パッキング済みビデオフレームの領域及び(ii)対応する領域識別子を識別する独立復号可能領域識別部と、
前記領域識別子を含み、前記領域識別子に対応する前記領域を独立して復号することができることを示すメッセージを生成するメッセージ生成部と、
前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する多重化部と
を更に備える、項目1に記載のボリュメトリックビデオ符号化システム。
[項目7]
命令を含む1つ又は複数の非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、少なくとも、
パッキング済みビデオフレームレイアウトを作成する手順であって、前記パッキング済みビデオフレームレイアウトは、ビデオ成分が配置されることになる領域を含む、手順と、
前記パッキング済みビデオフレームレイアウトの前記領域のうちの異なる領域に配置された前記ビデオ成分を含むパッキング済みビデオフレームを形成する手順と、
(i)前記パッキング済みビデオフレームレイアウト内に含まれる領域のアイデンティティ、(ii)前記領域のうちのそれぞれの領域内に含まれるビデオ成分のそれぞれのタイプ、又は(iii)前記領域のロケーション及び次元を識別する情報、のうちの少なくとも1つを含む、前記パッキング済みビデオフレームの特性を識別するパッキング済みビデオフレーム情報を生成する手順と、
前記パッキング済みビデオフレームを符号化済みビットストリームに符号化する手順であって、前記符号化済みビットストリームは、前記パッキング済みビデオフレーム情報を含み、前記パッキング済みビデオフレーム情報は、前記符号化済みビットストリーム内に前記パッキング済みビデオフレームを含むことをシグナリングする、手順と
を行わせる、1つ又は複数の非一時的コンピュータ可読媒体。
[項目8]
前記ビデオ成分のタイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、項目6に記載の1つ又は複数の非一時的コンピュータ可読媒体。
[項目9]
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、項目6に記載の1つ又は複数の非一時的コンピュータ可読媒体。
[項目10]
同じパッキング済みビデオフレーム内に配置される前記ボリュメトリックビデオデータは、同じサンプリングフォーマット及びビット深度を有する、項目6に記載の1つ又は複数の非一時的コンピュータ可読媒体。
[項目11]
前記ビットストリームを復号するのに使用されることになるデコーダの数に対する制約が違反されないことを検証するデコーダ数検証部を更に備える、項目6に記載の1つ又は複数の非一時的コンピュータ可読媒体。
[項目12]
前記命令は、実行されると、前記プロセッサに、
(i)独立して復号することができる前記パッキング済みビデオフレームの領域及び(ii)対応する領域識別子を識別する手順と、
前記領域識別子を含み、前記領域識別子に対応する前記領域を独立して復号することができることを示すメッセージを生成する手順と、
前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する手順と
を更に行わせる、項目6に記載の1つ又は複数の非一時的コンピュータ可読媒体。
[項目13]
前記命令は、実行されると、前記少なくとも1つのプロセッサに、
独立して復号することができる前記パッキング済みビデオフレームの領域を識別する手順と、
独立して復号されることになる前記パッキング済みビデオフレームの前記領域を識別するメッセージを生成する手順と、
前記メッセージを、デコーダへの送信のために前記符号化済みビットストリームと多重化する手順と
を行わせる、項目6に記載の1つ又は複数の非一時媒体。
[項目15]
ボリュメトリックビデオ復号システムであって、
パッキング済みビデオフレームを含むサブビットストリームからパッキング済みビデオフレーム情報を抽出するパース部であって、前記パッキング済みビデオフレーム情報は、(i)パッキング済みビデオフレームレイアウト、(ii)前記パッキング済みビデオフレームレイアウトの領域を一意に識別する領域識別子、及び(iii)領域ロケーション及び次元情報を含む、パース部と、
前記サブビットストリームの前記パッキング済みビデオフレームを復号するビデオデコーダと、
前記パッキング済みビデオフレーム情報に基づいて、前記パッキング済みビデオフレームの前記領域を、レンダリングされることになるボリュメトリックビデオシーケンスの少なくとも一部にマッピングするマッピング部と
を備える、ボリュメトリックビデオ復号システム。
[項目16]
前記領域のうちのそれぞれの領域は、それぞれのビデオ成分タイプを含み、前記ビデオ成分タイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、項目15に記載のボリュメトリックビデオ復号システム。
[項目17]
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、項目15に記載のボリュメトリックビデオ復号システム。
[項目18]
前記パース部は、前記サブビットストリームからメッセージを更に抽出し、前記メッセージは、領域識別子、独立してコード化されることになる前記領域識別子に対応する領域を有する補足強化情報を含む、項目15に記載のボリュメトリックビデオ復号システム。
[項目19]
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるタイルインデックスに基づいて判断される、項目18に記載のボリュメトリックビデオ復号システム。
[項目20]
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるサブピクチャ識別子に基づいて判断される、項目18に記載のボリュメトリックビデオ復号システム。
[項目21]
ボリュメトリックビデオ復号システムであって、
ビデオビットストリームに関連付けられたパラメータセットをパースするビデオビットストリームパース部であって、前記パラメータセットは、前記ビットストリームを復号するのに使用されることになるビデオデコーダの数を示す、ビデオビットストリームパース部と、
前記ボリュメトリックビデオ復号システムに関連付けられたプロファイル、階層及びレベルに基づいて、前記ボリュメトリックビデオ復号システムの複数のビデオデコーダが前記パラメータセットによって示される前記デコーダの数よりも大きいか又はこれに等しいか否かを判断するデコーダ検証部と、
前記複数のビデオデコーダが前記パラメータセットによって示される前記デコーダの数よりも小さい場合に前記サブビットストリームの復号を停止し、前記複数のビデオデコーダが前記パラメータセットによって示される前記デコーダの数よりも大きいか又はこれに等しい場合に前記サブビットストリームの復号を続ける復号コントローラと
を備える、ボリュメトリックビデオ復号システム。
[項目22]
ボリュメトリックビデオを復号する方法であって、
パッキング済みビデオフレームを含むサブビットストリームからパッキング済みビデオフレーム情報を抽出する段階であって、前記パッキング済みビデオフレーム情報は、(i)パッキング済みビデオフレームレイアウト、(ii)前記パッキング済みビデオフレームレイアウトの領域を一意に識別する領域識別子、及び(iii)領域ロケーション及び次元情報を含む、段階と、
前記サブビットストリームの前記パッキング済みビデオフレームを復号する段階と、
前記パッキング済みビデオフレーム情報に基づいて、前記パッキング済みビデオフレームの前記領域を、レンダリングされることになるボリュメトリックビデオシーケンスの少なくとも一部にマッピングする段階と
を備える、ボリュメトリックビデオを復号する方法。
[項目23]
前記領域のうちのそれぞれの領域は、それぞれのビデオ成分タイプを含み、前記ビデオ成分タイプは、補助データ、属性データ、ジオメトリデータ、又は占有データのうちの少なくとも1つを含む、項目22に記載のボリュメトリックビデオ復号方法。
[項目24]
前記パッキング済みビデオフレームの前記領域は重ならず、前記パッキング済みビデオフレーム情報は、前記領域のうちのそれぞれの領域に関連付けられたそれぞれのビデオ成分タイプを識別する情報と、アトラス識別子又はアトラスタイル識別子のうちの少なくとも1つとを更に含む、項目22に記載のボリュメトリックビデオ復号方法。
[項目25]
前記パース部は、前記サブビットストリームからメッセージを更に抽出し、前記メッセージは、領域識別子、独立してコード化されることになる前記領域識別子に対応する領域を有する補足強化情報を含む、項目22に記載のボリュメトリックビデオ復号方法。
[項目26]
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるタイルインデックスに基づいて判断される、項目22に記載のボリュメトリックビデオ復号方法。
[項目27]
独立してコード化されることになる領域のサイズ及びロケーションは、前記パッキング済みビデオフレーム情報内に含まれるサブピクチャ識別子に基づいて判断される、項目22に記載のボリュメトリックビデオ復号方法。
【国際調査報告】