(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】メッシュ圧縮のための境界UV2XYZインデックスのコーディングの改善
(51)【国際特許分類】
H04N 19/93 20140101AFI20241024BHJP
H04N 19/597 20140101ALI20241024BHJP
H04N 19/20 20140101ALI20241024BHJP
【FI】
H04N19/93
H04N19/597
H04N19/20
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024527229
(86)(22)【出願日】2023-03-30
(85)【翻訳文提出日】2024-05-08
(86)【国際出願番号】 US2023016830
(87)【国際公開番号】W WO2023200599
(87)【国際公開日】2023-10-19
(32)【優先日】2022-04-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-03-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】チャオ・フアン
(72)【発明者】
【氏名】ジュン・ティアン
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MB18
5C159ME01
5C159PP03
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
デコーダにおいて実施される方法は、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップを含む。方法は、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングするステップをさらに含む。2D-3Dインデックス配列内の各タプルがランの開始インデックスを指定する第1のパラメータ、ランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされた、2D-3Dインデックス配列。
【特許請求の範囲】
【請求項1】
デコーダ内の少なくとも1つのプロセッサによって実施される方法であって、
(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップと、
前記2D-3Dインデックス配列を使用して前記3Dメッシュを再構築し、前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内の前記それぞれの頂点にマッピングするステップと
を含み、
前記2D-3Dインデックス配列は、前記2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、前記ランの長さを指定する第2のパラメータ、および前記ランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、
方法。
【請求項2】
前記ランの前記開始インデックスを指定する前記第1のパラメータは、固定長コーディングによってコーディングされ、前記固定長コーディングにおける符号語のビット長は、前記3Dメッシュ内の一意の3D境界頂点の数に基づく、請求項1に記載の方法。
【請求項3】
前記ランの前記長さを指定する前記第2のパラメータは、固定長コーディングによってコーディングされる、請求項1に記載の方法。
【請求項4】
前記固定長コーディングにおける符号語のビット長は、前記1つまたは複数の2Dメッシュ内の2D境界頂点の数に基づく、請求項3に記載の方法。
【請求項5】
前記2D境界頂点の数は、前記コーディングされたビデオビットストリームにおいてシグナリングされる、請求項4に記載の方法。
【請求項6】
前記固定長コーディングにおける符号語のビット長は、前記2D-3Dインデックス配列にまだ追加されていない前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、請求項3に記載の方法。
【請求項7】
前記ランの前記方向を指定する前記第3のパラメータは、1ビットのバイパスコーディングまたはコンテキストを用いた算術コーディングのうちの1つによってコーディングされる、請求項1に記載の方法。
【請求項8】
前記ランの前記長さを指定する前記第2のパラメータは、可変長コーディングによってコーディングされる、請求項1に記載の方法。
【請求項9】
前記可変長コーディングにおける符号語のビット長は、前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の数に基づく、請求項8に記載の方法。
【請求項10】
前記可変長コーディングにおける符号語のビット長は、前記2D-3Dインデックス配列にまだ追加されていない前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、請求項8に記載の方法。
【請求項11】
前記ランの前記長さを指定する前記第2のパラメータは、前のランの長さに基づいて予測される、請求項1に記載の方法。
【請求項12】
前記2D-3Dインデックス配列は、最長ラン長を有する複数のタプルのうちのタプルが前記2D-3Dインデックス配列の前にあるように順序付けられる、請求項1に記載の方法。
【請求項13】
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み出し、前記プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサであって、前記プログラムコードは、
前記少なくとも1つのプロセッサに、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信させるように構成された受信コードと、
前記少なくとも1つのプロセッサに、前記2D-3Dインデックス配列を使用して前記3Dメッシュを再構築し、前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内の前記それぞれの頂点にマッピングさせるように構成された再構築コードと
を含む少なくとも1つのプロセッサと
を備え、
前記2D-3Dインデックス配列は、前記2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、前記ランの長さを指定する第2のパラメータ、および前記ランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、
デコーダ。
【請求項14】
前記ランの前記開始インデックスを指定する前記第1のパラメータは、固定長コーディングによってコーディングされ、前記固定長コーディングにおける符号語のビット長は、前記3Dメッシュ内の一意の3D境界頂点の数に基づく、請求項13に記載のデコーダ。
【請求項15】
前記ランの前記長さを指定する前記第2のパラメータは、固定長コーディングによってコーディングされる、請求項13に記載のデコーダ。
【請求項16】
前記固定長コーディングにおける符号語のビット長は、前記1つまたは複数の2Dメッシュ内の2D境界頂点の数に基づく、請求項13に記載のデコーダ。
【請求項17】
前記2D境界頂点の数は、前記コーディングされたビデオビットストリームにおいてシグナリングされる、請求項16に記載のデコーダ。
【請求項18】
前記固定長コーディングにおける符号語のビット長は、前記2D-3Dインデックス配列にまだ追加されていない前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、請求項15に記載のデコーダ。
【請求項19】
前記ランの前記方向を指定する前記第3のパラメータは、1ビットのバイパスコーディングまたはコンテキストを用いた算術コーディングのうちの1つによってコーディングされる、請求項13に記載のデコーダ。
【請求項20】
デコーダ内のプロセッサによって実行されると、前記プロセッサに、
(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップと、
前記2D-3Dインデックス配列を使用して前記3Dメッシュを再構築し、前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュにマッピングするステップと
を実行させる命令が記憶された非一時的コンピュータ可読媒体であって、
前記2D-3Dインデックス配列は、前記2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、前記ランの長さを指定する第2のパラメータ、および前記ランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年4月15日に出願された米国仮特許出願第63/331,699号および2023年3月28日に出願された米国特許出願第18/191,457号の優先権を主張し、これらの開示はその全体が参照により本明細書に組み込まれる。
【0002】
本開示は、高度なビデオコーディング技術のセットを対象とする。より具体的には、本開示は、効率的なメッシュ圧縮のための境界頂点のUV2XYZインデックスのコーディング方法を含むビデオベースのメッシュ圧縮を対象とする。
【背景技術】
【0003】
世界の高度な3次元(3D)表現により、さらに没入型の相互作用および通信が可能になっている。3D表現の臨場感を実現するために、3Dモデルは、これまで以上に洗練されてきており、かなりの量のデータがこれらの3Dモデルの作成および消費に結び付けられる。3Dメッシュが、3Dモデル没入型コンテンツに広く使用されている。
【0004】
3Dメッシュは、ボリュームオブジェクトの表面を記述するいくつかのポリゴンで構成され得る。動的メッシュシーケンスは、メッシュシーケンスが経時的に変化するかなりの量の情報を有し得るので、大量のデータを必要とし得る。したがって、そのようなコンテンツを記憶および送信するために効率的な圧縮技術が必要とされる。
【0005】
メッシュ圧縮規格IC、MESHGRID、FAMCは、常時接続性および時変ジオメトリおよび頂点属性を有する動的メッシュに対処するために以前に開発された。しかし、これらの規格は、時変属性マップおよび接続性情報を考慮に入れない。
【0006】
さらに、特にリアルタイム制約下で、ボリューム取得技法が常時接続性動的メッシュを生成することも困難である。このタイプの動的メッシュコンテンツは、既存の規格によってサポートされていない。
【発明の概要】
【課題を解決するための手段】
【0007】
1つまたは複数の実施形態によれば、デコーダ内の少なくとも1つのプロセッサによって実施される方法は、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップを含む。方法は、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングするステップをさらに含む。2D-3Dインデックス配列は、2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、ランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる。
【0008】
1つまたは複数の実施形態によれば、デコーダは、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサとを備える。プログラムコードは、少なくとも1つのプロセッサに、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信させるように構成された受信コードを含む。プログラムコードは、少なくとも1つのプロセッサに、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングさせるように構成された再構築コードを含む。2D-3Dインデックス配列は、2D-3Dインデックス配列内の各タプルがランの開始インデックスを指定する第1のパラメータ、連続する整数のランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる。
【0009】
1つまたは複数の実施形態によれば、デコーダ内のプロセッサによって実行されると、プロセッサに、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップと、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングするステップとを実行させる命令が記憶された非一時的コンピュータ可読媒体。2D-3Dインデックス配列は、2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、ランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる。
【0010】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】本開示の実施形態による、通信システムのブロック図の概略図である。
【
図2】本開示の実施形態による、ストリーミングシステムのブロック図の概略図である。
【
図3】本開示の実施形態による、ビデオエンコーダおよびビデオデコーダのブロック図の概略図である。
【
図4】本開示の実施形態による、3Dメッシュセグメントから2Dチャート上へのUVパラメータ化マッピングの一例を示す図である。
【
図5】3Dメッシュセグメントが複数の別々のチャートにマッピングされる異なるUVパラメータ化の一例を示す図である。
【
図6】本開示の実施形態による、複数のチャートを有する例示的な2D UVアトラスを示す図である。
【
図7】本開示の実施形態による、2Dパッチにおける境界頂点の一例を示す図である。
【
図8】本開示の実施形態による、ビデオビットストリームをエンコーディングするための例示的なフローチャートである。
【
図9】本開示の実施形態による、コーディングされたビデオビットストリームをデコーディングするための例示的なフローチャートである。
【
図10】本開示の実施形態を実装するのに適したコンピュータシステムの図である。
【発明を実施するための形態】
【0012】
例示的な実施形態の以下の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じまたは同様の要素を識別し得る。
【0013】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を開示される厳密な形態に限定することも意図されていない。修正および変形が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。さらに、一実施形態の1つまたは複数の特徴または構成要素は、別の実施形態(または別の実施形態の1つまたは複数の特徴)に組み込まれるか、または組み合わされてもよい。加えて、以下に提供される動作のフローチャートおよび説明では、1つまたは複数の動作が省略されてもよく、1つまたは複数の動作が追加されてもよく、1つまたは複数の動作が同時に(少なくとも部分的に)実施されてもよく、1つまたは複数の動作の順序が入れ替えられてもよいことが理解される。
【0014】
本明細書に記載されるシステムおよび/または方法は、異なる形態のハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0015】
特徴の特定の組み合わせが特許請求の範囲に記載され、かつ/または本明細書に開示されているが、これらの組み合わせは、可能な実装形態の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されておらず、かつ/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙されている各従属請求項は1つの請求項のみに直接従属し得るが、可能な実装形態の開示は、請求項セット内の他のすべての請求項との組み合わせにおいて各従属請求項を含む。
【0016】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図されており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図される場合、「1つ」という用語または同様の文言が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」、「含む(include)」、「含む(including)」などの用語は、オープンエンド用語であることが意図されている。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。さらに、「[A]および[B]のうちの少なくとも1つ」または「[A]または[B]のうちの少なくとも1つ」などの表現は、Aのみ、Bのみ、またはAとBの両方を含むものとして理解されるべきである。
【0017】
本明細書全体を通して、「一実施形態」、「ある実施形態」、または同様の文言への言及は、示された実施形態に関連して説明される特定の特徴、構造、または特性が、本解決策の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して「一実施形態では」、「ある実施形態では」という語句、および同様の文言は、必ずとは限らないが、すべて同じ実施形態を指し得る。
【0018】
さらに、本開示の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方式で組み合わされてもよい。当業者であれば、本明細書の説明に照らして、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本開示を実践することができることを認識するであろう。他の例では、本開示のすべての実施形態に存在するとは限らない特定の実施形態において、追加の特徴および利点が認識され得る。
【0019】
本開示の実施形態は、メッシュを圧縮することを対象とする。メッシュは、ボリュームオブジェクトの表面を記述するいくつかのポリゴンで構成され得る。3D空間内のメッシュの頂点および頂点がどのように接続されているかの情報は各ポリゴンを定義し、接続性情報と呼ばれ得る。任意選択で、色、法線などの頂点属性をメッシュ頂点と関連付けることができる。属性はまた、2D属性マップでメッシュをパラメータ化するマッピング情報を利用することによって、メッシュの表面と関連付けられてもよい。そのようなマッピングは、UV座標またはテクスチャ座標と呼ばれ、メッシュ頂点に関連するパラメトリック座標のセットを使用して定義され得る。テクスチャ、法線、変位などの高解像度属性情報を記憶するために2D属性マップが使用され得る。高解像度属性情報は、テクスチャマッピングやシェーディングなどの様々な目的に使用され得る。
【0020】
上記のように、3Dメッシュまたは動的メッシュは、経時的に変化するかなりの量の情報からなり得るので、大量のデータを必要とし得る。既存の規格は、時変属性マップおよび接続性情報を考慮していない。既存の規格はまた、特にリアルタイム条件下で、常時接続性動的メッシュを生成するボリューム取得技法もサポートしていない。
【0021】
したがって、時変接続性情報および任意選択で時変属性マップを有する動的メッシュを直接扱うための新しいメッシュ圧縮規格が必要である。本開示の実施形態は、そのような動的メッシュを記憶および送信するための効率的な圧縮技術を可能にする。本開示の実施形態は、リアルタイム通信、記憶、自由視点ビデオ、ARおよびVRなどの様々な用途のための不可逆圧縮および/または可逆圧縮を可能にする。
【0022】
本開示の1つまたは複数の実施形態によれば、動的メッシュ圧縮のための方法、システム、および非一時的記憶媒体が提供される。本開示の実施形態はまた、メッシュのただ1つのフレームまたはメッシュコンテンツが経時的に変化しない静的メッシュにも適用され得る。
【0023】
図1から
図2を参照すると、本開示のエンコーディングおよびデコーディングの構造を実装するための本開示の1つまたは複数の実施形態が記載されている。
【0024】
図1は、本開示の一実施形態による通信システム100の簡略ブロック図を示している。システム100は、ネットワーク150を介して相互接続された少なくとも2つの端末110、120を含むことができる。データの単方向送信の場合、第1の端末110は、ネットワーク150を介して他方の端末120に送信するために、ローカルロケーションでメッシュデータを含み得るビデオデータをコーディングすることができる。第2の端末120は、ネットワーク150から他方の端末のコーディングされたビデオデータを受信し、コーディングされたデータをデコーディングし、復元されたビデオデータを表示し得る。単方向データ送信は、メディアサービング用途などにおいて一般的であり得る。
【0025】
図1は、例えば、ビデオ会議中に発生し得るコーディングされたビデオの双方向送信をサポートするために設けられた端末130、140の第2のペアを示している。データの双方向送信の場合、各端末130、140は、ネットワーク150を介して他方の端末に送信するために、ローカルロケーションでキャプチャされたビデオデータをコーディングすることができる。各端末130、140はまた、他方の端末によって送信されたコーディングされたビデオデータを受信し、コーディングされたデータをデコーディングし、ローカルディスプレイデバイスに復元されたビデオデータを表示し得る。
【0026】
図1において、端末110~140は、例えば、サーバ、パーソナルコンピュータ、およびスマートフォン、ならびに/または任意の他のタイプの端末であってもよい。例えば、端末(110~140)は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器であってもよい。ネットワーク150は、例えば、有線および/または無線の通信ネットワークを含む端末110~140の間で、コーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク150は、回線交換および/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本考察の目的では、ネットワーク150のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0027】
図2は、開示された主題についての用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ対応用途で使用されてもよい。
【0028】
図2に示されるように、ストリーミングシステム200は、ビデオソース201およびエンコーダ203を含むキャプチャサブシステム213を含み得る。ストリーミングシステム200は、少なくとも1つのストリーミングサーバ205および/または少なくとも1つのストリーミングクライアント206をさらに含んでもよい。
【0029】
ビデオソース201は、例えば、3Dメッシュ、および3Dメッシュに関連するメタデータを含むストリーム202を作成することができる。3Dメッシュは、ボリュームオブジェクトの表面を記述するいくつかのポリゴンで構成され得る。例えば、3Dメッシュは、各頂点が3D座標(例えば、x、y、z)と関連付けられる3D空間内の複数の頂点を含むことができる。ビデオソース201は、例えば、3Dセンサ(例えば、深度センサ)または3D撮像技術(例えば、デジタルカメラ)と、3Dセンサから受信されたデータまたは3D撮像技術を使用して3Dメッシュを生成するように構成されたコンピューティングデバイスとを含んでもよい。サンプルストリーム202は、エンコーディングされたビデオビットストリームと比較して高いデータ量を有する可能性があり、ビデオソース201に結合されたエンコーダ203によって処理され得る。エンコーダ203は、以下でより詳細に説明されるように、開示された主題の態様を可能にするかまたは実装するハードウェア、ソフトウェア、またはそれらの組み合わせを含んでもよい。エンコーダ203はまた、エンコーディングされたビデオビットストリーム204を生成し得る。エンコーディングされたビデオビットストリーム204は、圧縮されていないストリーム202と比較して低いデータ量を有する可能性があり、後で使用するためにストリーミングサーバ205上に記憶され得る。1つまたは複数のストリーミングクライアント206は、ストリーミングサーバ205にアクセスし、エンコーディングされたビデオビットストリーム204のコピーであり得るビデオビットストリーム209を取り出すことができる。
【0030】
ストリーミングクライアント206は、ビデオデコーダ210と、ディスプレイ212とを含み得る。ビデオデコーダ210は、例えば、入力されるエンコーディングされたビデオビットストリーム204のコピーであるビデオビットストリーム209をデコーディングし、ディスプレイ212または別のレンダリングデバイス(図示せず)上にレンダリングされ得る出力されるビデオサンプルストリーム211を作成してもよい。一部のストリーミングシステムでは、ビデオビットストリーム204、209は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。
【0031】
図3は、エンコーダおよびデコーダを使用した動的メッシュ圧縮およびメッシュ再構築のためのフレームワーク300の例示的な図である。
【0032】
図3に見られるように、フレームワーク300は、エンコーダ301と、デコーダ351とを含み得る。エンコーダ301は、1つまたは複数の入力メッシュ305、UVアトラスを有する1つまたは複数のメッシュ310、占有マップ315、ジオメトリマップ320、属性マップ325、およびメタデータ330を含むことができる。デコーダ351は、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、デコーディングされた属性マップ345、デコーディングされたメタデータ350、および再構築されたメッシュ360を含むことができる。
【0033】
本開示の1つまたは複数の実施形態によれば、入力メッシュ305は、1つまたは複数のフレームを含んでもよく、1つまたは複数のフレームの各々は、一連の動作によって前処理され、UVアトラスを有するメッシュ310を生成するために使用され得る。一例として、前処理動作は、トラッキング、パラメータ化、再メッシュ化、ボクセル化などを含み得るが、これらに限定されなくてもよい。いくつかの実施形態では、前処理動作は、エンコーダ側でのみ実施され、デコーダ側では実施されなくてもよい。
【0034】
UVアトラスを有するメッシュ310は、2Dメッシュとすることができる。2Dメッシュは、2D空間内の座標(例えば、2D座標)と各々関連付けられた頂点のチャートであり得る。2Dメッシュ内の各頂点は、3Dメッシュ内の対応する頂点と関連付けられてもよく、3Dメッシュ内の頂点は、3D空間内の座標と関連付けられている。圧縮された2Dメッシュは、圧縮されていない2Dメッシュと比較して情報が減少した2Dメッシュのバージョンであり得る。例えば、2Dメッシュドは、圧縮された2Dメッシュがサンプリング点を含むサンプリングレートでサンプリングされてもよい。UVアトラスを有する2Dメッシュは、メッシュの各頂点が2Dアトラス上のUV座標と関連付けられ得るメッシュであり得る。例えば、2Dアトラスは、3D空間内の各3D座標が2D平面内の2D座標に割り当てられ得る2次元平面であってもよい。接続された2D座標は、2Dチャートまたはパッチと呼ばれ得る。UVアトラスを有するメッシュ310は、サンプリングに基づいて処理され、複数のマップに変換され得る。一例として、UVアトラス310は、UVアトラスを有する2Dメッシュのサンプリングに基づいて処理され、占有マップ、ジオメトリマップ、および属性マップに変換されてもよい。生成された占有マップ335、ジオメトリマップ340、および属性マップ345は、適切なコーデック(例えば、HVEC、VVC、AV1、AVS3など)を使用してエンコーディングされ、デコーダに送信され得る。いくつかの実施形態では、メタデータ(例えば、接続性情報など)もデコーダに送信され得る。
【0035】
いくつかの実施形態では、デコーダ側で、デコーディングされた2Dマップからメッシュが再構築され得る。再構築されたメッシュに対して、後処理およびフィルタリングも適用され得る。いくつかの例では、メタデータは、3Dメッシュ再構築を目的としてデコーダ側にシグナリングされてもよい。占有マップは、各パッチの境界頂点がシグナリングされる場合にデコーダ側から推測され得る。
【0036】
一態様によれば、デコーダ351は、エンコーダからエンコーディングされた占有マップ、ジオメトリマップ、および属性マップを受信し得る。デコーダ315は、本明細書に記載される実施形態に加えて、適切な技法および方法を使用して、占有マップ、ジオメトリマップ、および属性マップをデコーディングしてもよい。いくつかの実施形態では、デコーダ351は、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、デコーディングされた属性マップ345、およびデコーディングされたメタデータ350を生成し得る。入力メッシュ305は、1つまたは複数の再構築フィルタおよび技法を使用して、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、デコーディングされた属性マップ345、およびデコーディングされたメタデータ350に基づいて再構築されたメッシュ360に再構築され得る。いくつかの実施形態では、メタデータ330はデコーダ351に直接送信されてもよく、デコーダ351は、メタデータを使用して、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、およびデコーディングされた属性マップ345に基づいて再構築されたメッシュ360を生成してもよい。再メッシュ化、パラメータ化、トラッキング、ボクセル化などを含むがこれらに限定されないポストフィルタリング技法もまた、再構築されたメッシュ360に対して適用され得る。
【0037】
いくつかの実施形態によれば、3Dメッシュは、いくつかのセグメント(またはパッチ/チャート)に分割され得る。各セグメントは、それらのジオメトリ、属性、および接続性情報に関連する接続頂点のセットで構成され得る。
図4に示されるように、UVパラメータ化プロセスは、メッシュセグメント400を2D UVアトラス内の2Dチャート(402、404)上にマッピングする。メッシュセグメント内の各頂点には、2D UVアトラス内の2D UV座標が割り当てられてもよい。2Dチャート(例えば、2Dメッシュ)内の頂点は、それらの3D対応物として接続構成要素を形成し得る。各頂点のジオメトリ、属性、および接続性情報もまた、同様にそれらの3D対応物から継承され得る。
【0038】
いくつかの実施形態によれば、3Dメッシュセグメントはまた、複数の別々の2Dチャートにもマッピングされ得る。3Dメッシュセグメントが別々の2Dチャートにマッピングされる場合、3Dメッシュセグメント内の頂点は、2D UVアトラス内の複数の頂点に対応してもよい。
図5に示されるように、3Dメッシュセグメント400に対応し得る3Dメッシュセグメント500は、2D UVアトラスにおいて、単一のチャートの代わりに、2つの2Dチャート(502A、502B)にマッピングされてもよい。
図5に示されるように、3D頂点v
1およびv
4は、それぞれ2つの2D対応頂点v
1’およびv
4’を有する。
【0039】
図6は、複数のチャートを含む3Dメッシュの一般的な2D UVアトラス600の一例を示しており、各チャートは、それらの3Dジオメトリ、属性、および接続性情報に関連する複数の(例えば、3つ以上の)頂点を含み得る。
【0040】
境界頂点は、2D UV空間内で定義され得る。
図7に示すように、塗りつぶされた頂点は、接続構成要素(パッチ/チャート)の境界エッジ上にあるため、境界頂点である。境界エッジは、そのエッジが1つの三角形にのみ現れるかどうかをチェックすることによって決定され得る。ジオメトリ情報(例えば、3D xyz座標)および2D UV座標は、ビットストリームにおいてシグナリングされ得る。
【0041】
1つまたは複数の例では、3Dメッシュ内の境界頂点が2D UVアトラス内の複数の頂点に対応するとき、
図5に示すように、3D XYZ座標から2D UV座標へのマッピングは1対複数であり得る。したがって、UV-XYZ(例えば、UV2XYZと呼ばれる)インデックスは、マッピング関数を示すためにシグナリングされ得る。UV2XYZは、各2D UV頂点を3D XYZ頂点にマッピングすることに対応するインデックスの1D配列であってもよい。
【0042】
動的メッシュシーケンスは、メッシュシーケンスが経時的に変化するかなりの量の情報からなり得るので、大量のデータを必要とし得る。特に、境界情報は、メッシュ全体のかなりの部分を表す。したがって、境界情報を効率的に圧縮するためには効率的な圧縮技術が必要である。
【0043】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0044】
1つまたは複数の実施形態によれば、メッシュ圧縮における境界のUV2XYZ(UV-XYZ)インデックス配列のコーディングのための多数の方法が提案される。方法は、個々に適用することも、任意の形態の組み合わせで適用することもできる。方法は、メッシュのただ1つのフレームがあるか、またはメッシュコンテンツが経時的に変化しない静的メッシュに適用されてもよい。
【0045】
1つまたは複数の例では、境界頂点の総数はNであり、一意のxyz座標を有する境界頂点の数はM(M≦N)である。UV2XYZは、Nの長さを有する1D配列であってもよく、配列内の各要素は、一意のXYZ座標に対するインデックスを示してもよい。例えば、i=0,1,...,N-1の場合、UV2XYZ[i]∈{0,1,...,M-1}である。
【0046】
1つまたは複数の例では、UV2XYZは、各セグメントがチャートのUV2XYZインデックスを含むセグメントに分離されてもよい。いくつかの実施形態によれば、可逆的にUV2XYZの配列をコーディングする複数の方法が存在する。
【0047】
1つまたは複数の実施形態によれば、頂点記憶の性質により、近傍の頂点のインデックスをUV2XYZ配列に割り当てるとき、近傍のUV2XYZ値は、1だけのインデックス差を有することができる。例えば、特定の範囲では、単調な増加または減少傾向があり得る。したがって、UV2XYZ配列は、一般的な方式として以下の形式で表すことができる:
(a,a+1,a+2,...,a+na)(b,b-1,b-2,....,b-nb)(c,c+1,c+2,....,c+nc)、...
これは、いくつかのサブシーケンスに分離することができる。各シーケンスは、+1または-1のステップを有する連続インデックスを含むことができる。
【0048】
したがって、1つまたは複数の例では、UV2XYZ配列は、ランレングス方向のタプルとして表現およびコーディングされてもよい:
(a,na,1)、(b、nb、-1)、(c,nc,1)、...
【0049】
1つまたは複数の例では、UV2XYZ配列は、以下のように指定されてもよい:
{100,101,102,99,98,97,96,103,104}
【0050】
上記の例では、この配列は、同等に、(100,2,1)、(99,3,-1)、(103,1,1)のようなタプルフォーマットで書かれてもよい。例えば、タプルフォーマットにおける配列は、以下のように指定することができる:
{100,2,1,99,3,-1,103,1,1}
【0051】
いくつかの実施形態によれば、(RUN、LEN、DIR)のタプルは、以下のパラメータを含むことができる:(1)RUNはランにおける開始インデックスであり得る、(2)LENはランの長さマイナス1であり得る、および(3)DIRはランの方向(増加については1、減少については-1)である。ランは、増加または減少している1つまたは複数の連続する整数のセットを示すことができる。
【0052】
いくつかの実施形態によれば、タプルは、異なる方法でコーディングされてもよい。もう1つの例では、RUNパラメータは、固定長コーディングによってコーディングされてもよく、符号語のビット長は、一意のXYZ境界頂点Mの数(例えば、[log2 M])によって決定される。1つまたは複数の例では、LENパラメータは、固定長コーディングによってコーディングされてもよく、符号語のビット長は、現在のチャート内のUV境界頂点の数によって決定されてもよい。例えば、ビット長は、[log2 Nj]として決定されてもよく、Njは、j番目のチャート内のUV境界頂点の数である。Njの値はまた、ビットストリームでコーディングされてもよい。
【0053】
1つまたは複数の例では、パラメータLENは、固定長コーディングによってコーディングされてもよく、符号語のビット長は、現在のチャート内のUV境界頂点の残りの数によって決定されてもよい。例えば、ビット長は、
【数1】
として決定されてもよく、n
kは、j番目のチャート内のk番目のランレングス方向タプルのLENであり、インデックスiは、現在のコーディングされたタプルのインデックスである。1つまたは複数の例では、パラメータDIRは、1ビットのバイパスコーディングによってコーディングされてもよい。1つまたは複数の例では、パラメータDIRは、コンテキストを用いた算術コーディングによってコーディングされてもよい。
【0054】
いくつかの実施形態によれば、パラメータLENは、切り捨てられたバイナリコーディングなどの可変長コーディングによってコーディングされてもよい。1つまたは複数の例では、可変長コーディングにおける符号語のビット長は、現在のチャート内のUV境界頂点の数によって決定されてもよい。例えば、ビット長は、[log2 Nj]として決定されてもよく、Njは、j番目のチャート内のUV境界頂点の数である。1つまたは複数の例では、Njはまた、ビットストリームでコーディングされてもよい。
【0055】
1つまたは複数の例では、パラメータLENは、可変長コーディングによってコーディングされてもよく、符号語のビット長は、現在のチャート内のUV境界頂点の残りの数によって決定されてもよい。例えば、ビット長は、
【数2】
として決定されてもよく、n
kは、j番目のチャート内のk番目のランレングス方向タプルのLENであり、インデックスiは、現在のコーディングされたタプルのインデックスである。
【0056】
1つまたは複数の実施形態では、パラメータLENは、予測子として以前のランの長さを使用してコーディングされてもよく、残差は、エントロピーコーディングされてもよい。1つまたは複数の実施形態では、残差の符号は、1ビットフラグを使用してコーディングされてもよい。残差の絶対値は、指数ゴロムコーディングを使用してコーディングされてもよい。
【0057】
1つまたは複数の実施形態によれば、(RUN、LEN、DIR)のタプルについて、1つまたは複数の2値化符号語は、コンテキストコーディングされてもよく、一方で1つまたは複数の他の2値化符号語は、いかなるコンテキストも使用せずにバイパスコーディングされてもよい。
【0058】
1つまたは複数の例では、ビットをさらに保存するために、エンコーダは、チャート内の第1のランレングス方向タプルが最も長くなる(例えば、i=1,2,....の場合、n0≧ni)ように、チャート内の境界頂点を(例えば、UV2XYZインデックスを回転させることによって)並べ替えることができる。この場合、境界UVおよび境界XYZは、新しいUV2XYZインデックスに従って並べ替えられてもよい。
【0059】
図8は、1つまたは複数の実施形態による、3Dメッシュをコーディングし、ビデオビットストリームを生成するためのプロセス800を示している。プロセス800は、エンコーダ301によって実施されてもよい。プロセスは、3Dメッシュが1つまたは複数の2Dメッシュに変換される動作S802で開始することができる。例えば、
図5に示されるように、3Dメッシュ500は、UVパラメータ化を介して2Dメッシュ502Aおよび502Bに変換される。
【0060】
プロセスは動作S804に進み、2D-3Dインデックス配列が生成される。2D-3Dインデックス配列は、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内の頂点にマッピングするUV2XYZ配列であってもよい。例えば、2D-3Dインデックス配列は、1つまたは複数の2Dメッシュ内の各2D座標を3Dメッシュ内の一意のXYZ座標にマッピングすることができる。2D-3Dインデックスは、上述した3Dタプルフォーマットに従ってフォーマットすることができる。
【0061】
プロセスは動作S806に進み、コーディングされたビデオビットストリームが生成される。コーディングされたビデオビットストリームは、動作S802において生成された1つまたは複数の2Dメッシュと、2D-3Dインデックスとを含むことができる。
【0062】
図9は、1つまたは複数の実施形態による、コーディングされたビデオビットストリームをデコーディングするためのプロセス900を示している。プロセス900は、デコーダ351によって実施されてもよい。プロセスは、コーディングされたビデオビットストリームが受信される動作S900で開始することができる。コーディングされたビデオビットストリームは、3Dメッシュに対応する1つまたは複数の2Dメッシュを含むことができる。コーディングされたビデオビットストリームは、UV2XYZ配列などの2D-3Dインデックス配列をさらに含むことができる。プロセスは動作S904に進み、3Dメッシュが2D-3Dインデックス配列および1つまたは複数の2Dメッシュを使用して再構築される。例えば、
図5を参照すると、3Dメッシュセグメントは、2Dメッシュセグメント502Aおよび502Bならびに2D-3Dインデックス配列を使用して再構築することができる。
【0063】
上述の技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装し、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図10は、本開示の特定の実施形態を実施するのに適したコンピュータシステム1000を示す。
【0064】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して実行され得る命令を含むコードを作成するためにアセンブリ、コンパイル、リンクなどの機構を受けることができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0065】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行され得る。
【0066】
コンピュータシステム1000について
図10に示す構成要素は、例であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図するものではない。構成要素の構成は、コンピュータシステム1000の非限定的な実施形態に例示される構成要素のいずれか1つまたは組み合わせに関連するいかなる依存性も要件も有すると解釈されるべきではない。
【0067】
コンピュータシステム1000は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスはまた、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像静止画像カメラから取得するなど)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用されてもよい。
【0068】
入力ヒューマンインターフェースデバイスは、キーボード1001、マウス1002、トラックパッド1003、タッチスクリーン1010、データグローブ、ジョイスティック1005、マイクロフォン1006、スキャナ1007、カメラ1008のうちの1つまたは複数(各々の1つのみを図示)を含んでもよい。
【0069】
コンピュータシステム1000はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を介して1人または複数の人間ユーザの感覚を刺激してもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン1010、データグローブ、またはジョイスティック1005による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスがあってもよい)を含んでもよい。例えば、そのようなデバイスは、オーディオ出力デバイス(スピーカ1009、ヘッドフォン(図示せず)など)、視覚出力デバイス(各々タッチスクリーン入力能力を有するかまたは有さず、各々触覚フィードバック能力を有するかまたは有さず、その一部は2次元視覚出力または立体出力などの手段による3次元を超える出力を出力することが可能であり得る、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン1010、仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)など)、ならびにプリンタ(図示せず)であってもよい。
【0070】
コンピュータシステム1000はまた、CD/DVDまたは同様の媒体1021を有するCD/DVD ROM/RW1020を含む光媒体、サムドライブ1022、リムーバブルハードドライブまたはソリッドステートドライブ1023、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含んでもよい。
【0071】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことも理解すべきである。
【0072】
コンピュータシステム1000はまた、1つまたは複数の通信ネットワークへのインターフェースを含んでもよい。ネットワークは、無線、有線、光であってもよい。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などであってもよい。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、ならびにCANBusを含む車両用および産業用などが挙げられる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス1049(例えば、コンピュータシステム1000のUSBポートなどに取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下で説明されるように、システムバスへの取り付けによってコンピュータシステム1000のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム1000は、他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、放送TV)であっても、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)であっても、例えばローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向であってもよい。そのような通信は、クラウドコンピューティング環境1055への通信を含んでもよい。特定のプロトコルおよびプロトコルスタックは、上述したようにそれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0073】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェース1054は、コンピュータシステム1000のコア1040に取り付けられてもよい。
【0074】
コア1040は、1つまたは複数の中央処理装置(CPU)1041、グラフィック処理装置(GPU)1042、フィールドプログラマブルゲートエリア(FPGA)1043の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ1044などを含んでもよい。これらのデバイスは、読み出し専用メモリ(ROM)1045、ランダムアクセスメモリ1046、内部のユーザがアクセスできないハードドライブ、SSDなどの内部大容量ストレージ1047と共に、システムバス1048を介して接続され得る。いくつかのコンピュータシステムでは、システムバス1048は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス1048に直接取り付けられても、周辺バス1049を介して取り付けられてもよい。周辺バス用のアーキテクチャは、PCI、USBなどを含む。グラフィックアダプタ1050が、コア1040に含まれてもよい。
【0075】
CPU1041、GPU1042、FPGA1043、およびアクセラレータ1044は、組み合わせて前述のコンピュータコードを構成し得る特定の命令を実行し得る。そのコンピュータコードは、ROM1045またはRAM1046に記憶されてもよい。RAM1046には暫定的なデータも記憶され得るが、永続データは、例えば、内部大容量ストレージ1047に記憶され得る。メモリデバイスのいずれかへの高速記憶および取り出しは、1つまたは複数のCPU1041、GPU1042、大容量ストレージ1047、ROM1045、RAM1046などと密接に関連付けられ得るキャッシュメモリの使用によって可能にされてもよい。
【0076】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実施するためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよいし、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0077】
限定ではなく例として、アーキテクチャを有するコンピュータシステム1000、具体的にはコア1040は、(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが、1つまたは複数の有形のコンピュータ可読媒体において具現化されたソフトウェアを実行した結果として機能を提供してもよい。そのようなコンピュータ可読媒体は、上記で紹介されたようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ1047またはROM1045などの非一時的な性質のものであるコア1040の特定のストレージと関連付けられた媒体であってもよい。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに記憶され、コア1040によって実行されてもよい。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含んでもよい。ソフトウェアは、コア1040、具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM1046に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ1044)にハードワイヤードされるかまたは他の方法で具現化された論理の結果として機能を提供することができ、この回路はソフトウェアの代わりに、またはソフトウェアと共に動作し、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行してもよい。ソフトウェアへの言及は、必要に応じて、論理を包含する場合もあり、逆もまた同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0078】
本開示は、いくつかの非限定的な実施形態を説明してきたが、本開示の範囲内に入る変更、並び替え、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【0079】
上記の開示は、以下に列挙される実施形態も包含する。
【0080】
(1)デコーダ内の少なくとも1つのプロセッサによって実施される方法であって、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップと、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングするステップとを含み、2D-3Dインデックス配列は、2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、ランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、方法。
【0081】
(2)ランの開始インデックスを指定する第1のパラメータは、固定長コーディングによってコーディングされ、固定長コーディングにおける符号語のビット長は、3Dメッシュ内の一意の3D境界頂点の数に基づく、特徴(1)に記載の方法。
【0082】
(3)ランの長さを指定する第2のパラメータは、固定長コーディングによってコーディングされる、特徴(1)または(2)に記載の方法。
【0083】
(4)固定長コーディングにおける符号語のビット長は、1つまたは複数の2Dメッシュ内の2D境界頂点の数に基づく、特徴(3)に記載の方法。
【0084】
(5)2D境界頂点の数は、コーディングされたビデオビットストリームにおいてシグナリングされる、特徴(4)に記載の方法。
【0085】
(6)固定長コーディングにおける符号語のビット長は、2D-3Dインデックス配列にまだ追加されていない1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、特徴(3)に記載の方法。
【0086】
(7)ランの方向を指定する第3のパラメータは、1ビットのバイパスコーディングまたはコンテキストを用いた算術コーディングのうちの1つによってコーディングされる、特徴(1)から(6)のいずれか1つに記載の方法。
【0087】
(8)ランの長さを指定する第2のパラメータは、可変長コーディングによってコーディングされる、特徴(1)から(7)のいずれか1つに記載の方法。
【0088】
(9)可変長コーディングにおける符号語のビット長は、1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の数に基づく、特徴(8)に記載の方法。
【0089】
(10)可変長コーディングにおける符号語のビット長は、2D-3Dインデックス配列にまだ追加されていない1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、特徴(8)に記載の方法。
【0090】
(11)ランの長さを指定する第2のパラメータは、前のランの長さに基づいて予測される、特徴(1)から(10)のいずれか1つに記載の方法。
【0091】
(12)2D-3Dインデックス配列は、最長ラン長を有する複数のタプルのうちのタプルが2D-3Dインデックス配列の前にあるように順序付けられる、特徴(1)から(11)のいずれか1つに記載の方法。
【0092】
(13)プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサであって、プログラムコードは、少なくとも1つのプロセッサに、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信させるように構成された受信コードと、少なくとも1つのプロセッサに、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングさせるように構成された再構築コードとを含む少なくとも1つのプロセッサとを備え、2D-3Dインデックス配列は、2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、ランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、デコーダ。
【0093】
(14)ランの開始インデックスを指定する第1のパラメータは、固定長コーディングによってコーディングされ、固定長コーディングにおける符号語のビット長は、3Dメッシュ内の一意の3D境界頂点の数に基づく、特徴(13)に記載のデコーダ。
【0094】
(15)ランの長さを指定する第2のパラメータは、固定長コーディングによってコーディングされる、特徴(13)または(14)に記載のデコーダ。
【0095】
(16)固定長コーディングにおける符号語のビット長は、1つまたは複数の2Dメッシュ内の2D境界頂点の数に基づく、特徴(13)から(15)のいずれか1つに記載のデコーダ。
【0096】
(17)2D境界頂点の数は、コーディングされたビデオビットストリームにおいてシグナリングされる、特徴(16)に記載のデコーダ。
【0097】
(18)固定長コーディングにおける符号語のビット長は、2D-3Dインデックス配列にまだ追加されていない1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、特徴(15)に記載のデコーダ。
【0098】
(19)ランの方向を指定する第3のパラメータは、1ビットのバイパスコーディングまたはコンテキストを用いた算術コーディングのうちの1つによってコーディングされる、特徴(13)から(18)のいずれか1つに記載のデコーダ。
【0099】
(20)デコーダ内のプロセッサによって実行されると、プロセッサに、(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップと、2D-3Dインデックス配列を使用して3Dメッシュを再構築し、1つまたは複数の2Dメッシュ内の各頂点を3Dメッシュにマッピングするステップとを実行させる命令が記憶された非一時的コンピュータ可読媒体であって、2D-3Dインデックス配列は、2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、ランの長さを指定する第2のパラメータ、およびランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、非一時的コンピュータ可読媒体。
【符号の説明】
【0100】
100 通信システム、110 端末、第1の端末、120 端末、第2の端末、130 端末、140 端末、150 通信ネットワーク、200 ストリーミングシステム、201 ビデオソース、202 サンプルストリーム、203 エンコーダ、204 エンコーディングされたビデオビットストリーム、205 ストリーミングサーバ、206 ストリーミングクライアント、209 ビデオビットストリーム、210 ビデオデコーダ、211 ビデオサンプルストリーム、212 ディスプレイ、213 キャプチャサブシステム、300 フレームワーク、301 エンコーダ、305 入力メッシュ、310 UVアトラスを有するメッシュ、315 占有マップ、320 ジオメトリマップ、325 属性マップ、330 メタデータ、335 デコーディングされた占有マップ、340 デコーディングされたジオメトリマップ、345 デコーディングされた属性マップ、350 デコーディングされたメタデータ、351 デコーダ、360 再構築されたメッシュ、400 3Dメッシュセグメント、402 2Dチャート、404 2Dチャート、500 3Dメッシュセグメント、502A 2Dメッシュセグメント、502B 2Dメッシュセグメント、600 UVアトラス、800 プロセス、S802 動作、S804 動作、S806 動作、900 プロセス、S902 動作、S904 動作、1000 コンピュータシステム、1001 キーボード、1002 マウス、1003 トラックパッド、1005 ジョイスティック、1006 マイクロフォン、1007 スキャナ、1008 カメラ、1009 スピーカ、1010 タッチスクリーン、1020 CD/DVD ROM/RW、1021 CD/DVD/同様の媒体、1022 サムドライブ、1023 リムーバブルハードドライブまたはソリッドステートドライブ、1040 コア、1041 中央処理装置(CPU)、1042 グラフィック処理装置(GPU)、1043 フィールドプログラマブルゲートエリア(FPGA)、1044 ハードウェアアクセラレータ、1045 読み出し専用メモリ(ROM)、1046 ランダムアクセスメモリ、1047 内部大容量ストレージ、1048 システムバス、1049 周辺バス、1050 グラフィックアダプタ、1054 ネットワークインターフェース、1055 クラウドコンピューティング環境
【手続補正書】
【提出日】2024-05-08
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0036
【補正方法】変更
【補正の内容】
【0036】
一態様によれば、デコーダ351は、エンコーダからエンコーディングされた占有マップ、ジオメトリマップ、および属性マップを受信し得る。デコーダ351は、本明細書に記載される実施形態に加えて、適切な技法および方法を使用して、占有マップ、ジオメトリマップ、および属性マップをデコーディングしてもよい。いくつかの実施形態では、デコーダ351は、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、デコーディングされた属性マップ345、およびデコーディングされたメタデータ350を生成し得る。入力メッシュ305は、1つまたは複数の再構築フィルタおよび技法を使用して、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、デコーディングされた属性マップ345、およびデコーディングされたメタデータ350に基づいて再構築されたメッシュ360に再構築され得る。いくつかの実施形態では、メタデータ330はデコーダ351に直接送信されてもよく、デコーダ351は、メタデータを使用して、デコーディングされた占有マップ335、デコーディングされたジオメトリマップ340、およびデコーディングされた属性マップ345に基づいて再構築されたメッシュ360を生成してもよい。再メッシュ化、パラメータ化、トラッキング、ボクセル化などを含むがこれらに限定されないポストフィルタリング技法もまた、再構築されたメッシュ360に対して適用され得る。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダ内の少なくとも1つのプロセッサ
が実施
する方法であって、
(i)3次元(3D)メッシュに対応する1つまたは複数の2次元(2D)メッシュ、および(ii)前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内のそれぞれの頂点にマッピングする2D-3Dインデックス配列を含むコーディングされたビデオビットストリームを受信するステップと、
前記2D-3Dインデックス配列を使用して前記3Dメッシュを再構築し、前記1つまたは複数の2Dメッシュ内の各頂点を前記3Dメッシュ内の前記それぞれの頂点にマッピングするステップと
を含み、
前記2D-3Dインデックス配列は、前記2D-3Dインデックス配列内の各タプルが連続する整数のランの開始インデックスを指定する第1のパラメータ、前記ランの長さを指定する第2のパラメータ、および前記ランの方向を指定する第3のパラメータを含むタプルフォーマットでエンコーディングされる、
方法。
【請求項2】
前記ランの前記開始インデックスを指定する前記第1のパラメータは、固定長コーディングによってコーディングされ、前記固定長コーディングにおける符号語のビット長は、前記3Dメッシュ内の一意の3D境界頂点の数に基づく、請求項1に記載の方法。
【請求項3】
前記ランの前記長さを指定する前記第2のパラメータは、固定長コーディングによってコーディングされる、請求項1に記載の方法。
【請求項4】
前記固定長コーディングにおける符号語のビット長は、前記1つまたは複数の2Dメッシュ内の2D境界頂点の数に基づく、請求項3に記載の方法。
【請求項5】
前記2D境界頂点の数は、前記コーディングされたビデオビットストリームにおいてシグナリングされる、請求項4に記載の方法。
【請求項6】
前記固定長コーディングにおける符号語のビット長は、前記2D-3Dインデックス配列にまだ追加されていない前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、請求項3に記載の方法。
【請求項7】
前記ランの前記方向を指定する前記第3のパラメータは、1ビットのバイパスコーディングまたはコンテキストを用いた算術コーディングのうちの1つによってコーディングされる、請求項1に記載の方法。
【請求項8】
前記ランの前記長さを指定する前記第2のパラメータは、可変長コーディングによってコーディングされる、請求項1に記載の方法。
【請求項9】
前記可変長コーディングにおける符号語のビット長は、前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の数に基づく、請求項8に記載の方法。
【請求項10】
前記可変長コーディングにおける符号語のビット長は、前記2D-3Dインデックス配列にまだ追加されていない前記1つまたは複数の2Dメッシュの現在の2Dメッシュ内の2D境界頂点の残りの数に基づく、請求項8に記載の方法。
【請求項11】
前記ランの前記長さを指定する前記第2のパラメータは、前のランの長さに基づいて予測される、請求項1に記載の方法。
【請求項12】
前記2D-3Dインデックス配列は、最長ラン長を有する複数のタプルのうちのタプルが前記2D-3Dインデックス配列の前にあるように順序付けられる、請求項1に記載の方法。
【請求項13】
請求項1~12のいずれか一項に記載の方法を行うように構成された装置。
【請求項14】
プロセッサに、請求項1~12のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【国際調査報告】