(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-05
(54)【発明の名称】メッシュ圧縮のための頂点接続性コーディング
(51)【国際特許分類】
G06T 9/00 20060101AFI20240227BHJP
G06T 17/20 20060101ALI20240227BHJP
【FI】
G06T9/00 100
G06T17/20
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023554779
(86)(22)【出願日】2022-10-18
(85)【翻訳文提出日】2023-09-07
(86)【国際出願番号】 US2022078282
(87)【国際公開番号】W WO2023081578
(87)【国際公開日】2023-05-11
(32)【優先日】2021-11-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-10-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】ジャン,シァン
(72)【発明者】
【氏名】ティアン,ジュン
(72)【発明者】
【氏名】ホアン,チャオ
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA13
5B080AA15
5B080AA17
5B080CA01
5B080FA02
5B080GA11
5B080GA22
(57)【要約】
処理回路は、3Dメッシュを搬送するビットストリームから、3Dメッシュ内の頂点の座標を復号化する。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺を含む元の接続性とによって規定される。処理回路は、頂点の座標に従って、頂点を接続する推論される辺を含む推論される接続性を導出する。処理回路は、ビットストリームから接続差を復号化する。一例では、接続差は頂点のサブセットに関連付けられる。別の例では、接続差は、元の辺及び推論される辺のうちの1つ又は複数の辺に関連付けられる。処理回路は、推論される接続性及び接続差に従って、復元される接続性を決定し、復元される接続性に従って3Dメッシュを再構成する。
【特許請求の範囲】
【請求項1】
メッシュ解凍のための方法であって、当該方法は、
3次元(3D)メッシュを搬送するビットストリームから、前記3Dメッシュ内の頂点の座標を復号化するステップであって、前記3Dメッシュはオブジェクトの表面をポリゴンで表現し、該ポリゴンは、前記頂点と、該頂点を接続する元の辺を含む元の接続性とによって規定される、ステップと、
前記頂点の前記座標に従って、前記頂点を接続する推論される辺を含む推論される接続性を導出するステップと、
前記ビットストリームから、前記頂点のサブセットに関連付けられた接続差を復号化するステップと、
前記推論される接続性及び前記接続差に従って、復元される接続性を決定するステップと、
該復元される接続性に従って、前記3Dメッシュを再構成するステップと、を含む、
方法。
【請求項2】
前記接続差を復号化するステップは、前記ビットストリームから、前記頂点の前記サブセット内の頂点の数を示す第1の値を復号化するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記頂点の前記サブセット内の第1の頂点の第1のインデックスを復号化するステップと、
前記ビットストリームから、前記第1の頂点に関連付けられた接続性修正の数を示す第2の値を復号化するステップと、
前記第1の頂点に関連付けられた前記接続性修正にそれぞれ対応する頂点のセットを示す一連のインデックスを復号化するステップと、をさらに含む、請求項2に記載の方法。
【請求項4】
前記復元される接続性を決定するステップは、
接続性修正に対応する第2の頂点の第2のインデックスを決定するステップと、
前記推論される辺において前記第1の頂点及び前記第2の頂点を接続する第1の辺が存在することに応答して、前記復元される接続性から前記第1の辺を削除するステップと、をさらに含む、請求項3に記載の方法。
【請求項5】
前記第1の頂点及び前記第2の頂点が四角形の第1の対角頂点ペアであることに応答して、前記復元される接続性において前記四角形の第2の対角頂点ペアを接続する第2の辺を追加するステップをさらに含む、請求項4に記載の方法。
【請求項6】
前記復元される接続性を決定するステップは、
接続性修正に対応する第2の頂点の第2のインデックスを決定するステップと、
前記推論される辺において前記第1の頂点及び前記第2の頂点を接続する第1の辺が存在しないことに応答して、前記復元される接続性に前記第1の頂点及び前記第2の頂点を接続する前記第1の辺を追加するステップと、をさらに含む、請求項3に記載の方法。
【請求項7】
前記第1の頂点及び前記第2の頂点が四角形の第1の対角頂点ペアであることに応答して、前記復元される接続性から前記四角形の第2の対角頂点ペアを接続する第2の辺を除去するステップをさらに含む、請求項6に記載の方法。
【請求項8】
前記接続性修正にそれぞれ対応する前記頂点のセットを示す前記一連のインデックスを復号化するステップは、
前記ビットストリームから、第2の頂点の第2のインデックスを示す第1の信号を復号化するステップと、
前記ビットストリームから、前記第2のインデックスと、前記一連のインデックス内の第3の頂点の第3のインデックスとの間の差である第2の信号を復号化するステップと、をさらに含む、請求項3に記載の方法。
【請求項9】
前記推論される接続性を導出するステップ及び前記接続差を復号化するステップは、
第1の頂点に関して、前記推論される接続性において前記第1の頂点と接続される第1の頂点セットを導出するステップと、
前記ビットストリームから前記第1の頂点に関連付けられたフラグを復号化するステップであって、該フラグは、1つ又は複数の接続性修正が前記第1の頂点に関連付けられていることを示す、ステップと、
前記ビットストリームから、前記第1の頂点に関連付けられた前記1つ又は複数の接続性修正にそれぞれ対応する第2の頂点セットを示す一連のインデックスを復号化するステップと、をさらに含む、請求項1に記載の方法。
【請求項10】
前記接続差を復号化するステップは、
前記ビットストリームから、前記頂点の前記サブセット内の第1の頂点のインデックスを復号化するステップと、
前記ビットストリームから次数の差を復号化するステップと、
前記推論される接続性における前記第1の頂点の推論される次数及び前記次数の差を加算することによって、前記第1の頂点の復元される次数を決定するステップと、をさらに含む、請求項1に記載の方法。
【請求項11】
メッシュ解凍のための方法であって、当該方法は、
3次元(3D)メッシュを搬送するビットストリームから、前記3Dメッシュ内の頂点の座標を復号化するステップであって、前記3Dメッシュはオブジェクトの表面をポリゴンで表現し、該ポリゴンは、前記頂点と、該頂点を接続する元の辺を含む元の接続性とによって規定される、ステップと、
前記頂点の前記座標に従って、前記頂点を接続する推論される辺を含む推論される接続性を導出するステップと、
前記ビットストリームから、前記元の辺及び前記推論される辺のうちの1つ又は複数の辺に関連付けられた接続差を復号化するステップと、
前記推論される接続性及び前記接続差に従って、復元される接続性を決定するステップと、
該復元される接続性に従って、3Dメッシュを再構成するステップと、を含む、
方法。
【請求項12】
前記接続差を復号化するステップは、前記ビットストリーム内の第1の辺の第1の頂点及び第2の頂点を示す信号を復号化するステップをさらに含む、請求項11に記載の方法。
【請求項13】
前記信号を復号化するステップは、
前記第1の頂点の第1のインデックスに対応する第1の値を復号化するステップと、
前記第1のインデックスと前記第2の頂点の第2のインデックスとの間の差に対応する第2の値を復号化するステップと、を含む、請求項12に記載の方法。
【請求項14】
前記復元される接続性を決定するステップは、前記推論される辺において前記第1の頂点及び前記第2の頂点を接続する第1の辺が存在することに応答して、前記復元される接続性から前記第1の辺を削除するステップをさらに含む、請求項12に記載の方法。
【請求項15】
前記第1の頂点及び前記第2の頂点が四角形の第1の対角頂点ペアであることに応答して、前記復元される接続性において前記四角形の第2の対角頂点ペアを接続する第2の辺を追加するステップをさらに含む、請求項14に記載の方法。
【請求項16】
前記復元される接続性を決定するステップは、
前記推論される辺において前記第1の頂点及び前記第2の頂点を接続する第1の辺が存在しないことに応答して、前記復元される接続性に前記第1の頂点及び前記第2の頂点を接続する前記第1の辺を追加するステップをさらに含む、請求項12に記載の方法。
【請求項17】
前記第1の頂点及び前記第2の頂点が四角形の第1の対角頂点ペアであることに応答して、前記復元される接続性から前記四角形の第2の対角頂点ペアを接続する第2の辺を除去するステップをさらに含む、請求項16に記載の方法。
【請求項18】
前記接続差を復号化するステップは、
前記推論される辺にそれぞれ関連付けられたフラグを復号化するステップであって、フラグは、前記推論される辺が前記元の辺に存在するかどうかを示す推論される辺に関連付けられる、ステップをさらに含む、請求項16に記載の方法。
【請求項19】
処理回路を含むメッシュ解凍のための機器であって、
前記処理回路は、請求項1乃至10のいずれか一項に記載の方法、又は請求項11乃至18のいずれか一項に記載の方法を行うように構成される、
機器。
【請求項20】
命令を記憶した非一時的なコンピュータ可読記憶媒体であって、
前記命令がコンピュータによって実行されると、該コンピュータに、請求項1乃至10のいずれか一項に記載の方法、又は請求項11乃至18のいずれか一項に記載の方法を実行させる、
非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組込み
本願は、2022年10月13日に出願した、“VERTEX CONNECTIVITY CODING FOR MESH COMPRESSION”という表題の米国特許出願第17/965,611号に対する優先権の利益を主張するものであり、この出願は、2021年11月5日に出願した、“Vertex Connectivity Coding for Mesh Compression”という表題の米国仮出願第63/276,459号、及び2021年12月13日に出願した、“Vertex Connectivity Coding for Mesh Compression”という表題の米国仮出願第63/289,026号に対する優先権の利益を主張する。先行出願の全開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概して、メッシュコーディングに関連する実施形態について説明する。
【背景技術】
【0003】
本明細書に提供する背景技術の説明は、本開示の内容を概ね提示することを目的としている。現在名前が記載されている発明者の成果(work)は、この背景技術の段落に記載されている限りにおいて、出願時に先行技術として認定され得ない記載の態様と同様に、明示的にも黙示的にも、本開示に対して先行技術として認められるものではない。
【0004】
世界のオブジェクト、及び世界の環境等の世界を3次元(3D)空間で捉えて表現するために、様々な技術が開発されている。世界の3D表現により、より没入型の相互作用及びコミュニケーションが可能になる。いくつかの例では、点群及びメッシュを世界の3D表現として使用することができる。
【発明の概要】
【0005】
本開示の態様は、メッシュコーディング(例えば、圧縮及び解凍(decompression:圧縮解除))のための方法及び機器を提供する。いくつかの例では、メッシュコーディングのための機器は処理回路を含む。処理回路は、3次元(3D)メッシュを搬送するビットストリームから、3Dメッシュ内の頂点の座標を復号化する。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺を含む元の接続性とによって規定される。処理回路は、頂点の座標に従って、頂点を接続する推論(infer:推定)される辺を含む推論される接続性を導出する。処理回路は、ビットストリームから、頂点のサブセットに関連付けられた接続差を復号化し、推論される接続性及び接続差に従って復元(recovered:回復)される接続性を決定し、復元される接続性に従って、3Dメッシュを再構成する。
【0006】
いくつかの例では、接続差を復号化するために、ビットストリームから、頂点のサブセット内の頂点の数(number)を示す第1の値が復号化される。処理回路は、頂点のサブセット内の第1の頂点の第1のインデックスを復号化し、ビットストリームから、第1の頂点に関連付けられた接続性修正の数を示す第2の値を復号化する。処理回路は、第1の頂点に関連付けられた接続性修正にそれぞれ対応する頂点のセットを示す一連のインデックス(a sequence of indices)を復号化する。
【0007】
いくつかの例では、復元される接続性を決定するために、処理回路は、接続性修正に対応する第2の頂点の第2のインデックスを決定し、処理回路は、推論される辺において第1の頂点及び第2の頂点を接続する第1の辺が存在することに応答して、復元される接続性から第1の辺を削除する。さらに一例では、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、処理回路は、復元される接続性において四角形の第2の対角頂点ペアを接続する第2の辺を追加する。
【0008】
いくつかの例では、復元される接続性を決定するために、処理回路は、接続性修正に対応する第2の頂点の第2のインデックスを決定し、処理回路は、推論される辺において第1の頂点及び第2の頂点を接続する第1の辺が存在しないことに応答応答して、復元される接続性に第1の頂点及び第2の頂点を接続する第1の辺を追加する。一例では、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、処理回路は、復元される接続性から四角形の第2の対角頂点ペアを接続する第2の辺を除去する。
【0009】
いくつかの例では、接続性修正にそれぞれ対応する頂点のセットを示す一連のインデックスを復号化するために、処理回路は、ビットストリームから、第2の頂点の第2のインデックスを示す第1の信号を復号化し、ビットストリームから、第2のインデックスと、一連のインデックス内の第3の頂点の第3のインデックスとの間の差である第2の信号を復号化する。
【0010】
いくつかの例では、推論される接続性を導出し、接続差を復号化するために、処理回路は、第1の頂点に関して、推論される接続性において第1の頂点と接続される第1の頂点セットを導出する。処理回路は、ビットストリームから第1の頂点に関連付けられたフラグを復号化し、フラグは、1つ又は複数の接続性修正が第1の頂点に関連付けられているかどうかを示す。一例では、フラグは、第1の頂点に関連付けられた1つ又は複数の接続性修正を示し、処理回路は、ビットストリームから、第1の頂点に関連付けられた1つ又は複数の接続性修正にそれぞれ対応する第2の頂点セットを示す一連のインデックスを復号化する。
【0011】
いくつかの例では、接続差を復号化するために、処理回路は、ビットストリームから、頂点のサブセット内の第1の頂点のインデックスを復号化し、ビットストリームから次数(valence:価数)の差を復号化し、推論される接続性における第1の頂点の推論される次数及び次数の差を加算することによって、第1の頂点の復元される次数を決定する。
【0012】
いくつかの実施形態では、処理回路は、3次元(3D)メッシュを搬送するビットストリームから、3Dメッシュ内の頂点の座標を復号化する。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺を含む元の接続性とによって規定される。処理回路は、頂点の座標に従って、頂点を接続する推論される辺を含む推論される接続性を導出し、ビットストリームから、元の辺及び推論される辺のうちの1つ又は複数の辺に関連付けられた接続差を復号化する。処理回路は、推論される接続性及び接続差に従って復元される接続性を決定し、復元される接続性に従って3Dメッシュを再構成する。
【0013】
いくつかの例では、接続差を復号化するために、処理回路は、ビットストリーム内の第1の辺の第1の頂点及び第2の頂点を示す信号を復号化する。一例では、処理回路は、第1の頂点の第1のインデックスに対応する第1の値を復号化し、第1のインデックスと第2の頂点の第2のインデックスとの差に対応する第2の値を復号化する。
【0014】
いくつかの例では、復元される接続性を決定するために、処理回路は、推論される辺において第1の頂点及び第2の頂点を接続する第1の辺が存在することに応答して、復元される接続性から第1の辺を除去する。一例では、処理回路は、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、復元される接続性において四角形の第2の対角頂点ペアを接続する第2の辺を追加する。
【0015】
いくつかの例では、復元される接続性を決定するために、処理回路は、推論される辺において第1の頂点及び第2の頂点を接続する第1の辺が存在しないことに応答して、復元される接続性に第1の頂点及び第2の頂点を接続する第1の辺を追加する。一例では、処理回路は、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、復元される接続性から四角形の第2の対角頂点ペアを接続する第2の辺を除去する。
【0016】
いくつかの例では、接続差を復号化するために、処理回路は、推論される辺にそれぞれ関連付けられたフラグを復号化し、推論される辺に関連付けられたフラグは、推論される辺が元の辺に存在するかどうかを示す。
【0017】
本開示の態様は、命令を記憶する非一時的なコンピュータ可読媒体も提供し、命令がコンピュータによって実行されると、コンピュータに、メッシュコーディングのための方法のいずれか1つ又は組合せを実行させる。
【図面の簡単な説明】
【0018】
開示する主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになろう。
【
図1】いくつかの例における通信システムのブロック図である。
【
図2】いくつかの例におけるストリーミングシステムのブロック図である。
【
図3】いくつかの例における点群フレームを符号化するためのエンコーダのブロック図である。
【
図4】いくつかの例における点群フレームに対応する圧縮ビットストリームを復号化するためのデコーダのブロック図である。
【
図5】いくつかの例におけるビデオデコーダのブロック図である。
【
図6】いくつかの例におけるビデオエンコーダのブロック図である。
【
図7】いくつかの例における点群フレームを符号化するためのエンコーダのブロック図である。
【
図8】いくつかの例における点群フレームを搬送する圧縮ビットストリームを復号化するためのデコーダのブロック図である。
【
図9】いくつかの例におけるアトラスへのメッシュのマッピングを示す図である。
【
図10】A~Eはメッシュ圧縮のために頂点並べ替えを使用する例を示す図である。
【
図11】本開示のいくつかの実施形態によるメッシュ圧縮のフレームワークの図である。
【
図12】A~Dは本開示のいくつかの実施形態による、メッシュフレームの接続属性を明示的にコーディングする例を示す図である。
【
図13】本開示のいくつかの実施形態によるメッシュ圧縮のフレームワークの図である。
【
図14】A~Fは本開示のいくつかの実施形態による、メッシュフレームの接続差をコーディングする例を示す図である。
【
図15】いくつかの例におけるプロセス例の概要を示すフローチャートである。
【
図16】いくつかの例におけるプロセス例の概要を示すフローチャートである。
【
図17】いくつかの例におけるプロセス例の概要を示すフローチャートである。
【
図18】いくつかの例におけるプロセス例の概要を示すフローチャートである。
【
図19】いくつかの例におけるプロセス例の概要を示すフローチャートである。
【
図20】いくつかの例におけるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0019】
本開示の態様は、3次元(3D)メディア処理の分野における技術を提供する。
【0020】
3次元(3D)取り込み、3Dモデリング、及び3Dレンダリング等における進歩等の3Dメディア処理における技術開発により、いくつかのプラットフォーム及び装置に亘る3Dメディアコンテンツのユビキタスな存在が促進されている。一例では、赤ちゃんの最初の一歩をある大陸で取り込むことができ、メディア技術により、祖父母が別の大陸で赤ちゃんの様子を見て(おそらく対話し)、没入型の体験を楽しむことができる。本開示の一態様によれば、没入体験を向上させるために、3Dモデルは益々洗練されており、3Dモデルの作成及び消費は、データストレージ、データ送信リソース等のかなりの量のデータリソースを占有する。
【0021】
本開示のいくつかの態様によれば、点群及びメッシュを3Dモデルとして使用して、没入型コンテンツを表現することができる。
【0022】
点群は、一般に、3D空間内の点(point:ポイント)のセットを指すことができ、各点が、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、及び他の様々な属性等の関連する属性を有する。点群を使用すると、オブジェクト又はシーンをそのような点の構成として再構成することができる。
【0023】
オブジェクトのメッシュ(メッシュモデルとも呼ばれる)は、オブジェクトの表面を記述するポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点をポリゴンにどのように接続するかの情報とによって規定することができる。頂点同士をどのように接続するかの情報を接続性情報と呼ぶ。いくつかの例では、メッシュは、頂点に関連付けられた色、及び法線等の属性を含むこともできる。
【0024】
本開示のいくつかの態様によれば、点群圧縮(PCC)のためのいくつかのコーディングツールをメッシュ圧縮に使用することができる。例えば、メッシュを再メッシュして新しいメッシュを生成し、その新しいメッシュの接続性情報を推論することができる。新しいメッシュの頂点、及び新しいメッシュの頂点に関連付けられた属性は、点群内の点と見なすことができ、PCCコーデックを使用して圧縮することができる。
【0025】
点群を使用して、オブジェクト又はシーンを点の構成として再構成することができる。点は、様々な設定の複数のカメラ、深度センサ、又はLidarを使用して取り込むことができ、再構成したシーン又はオブジェクトをリアルに表現するために、数千から最大数十億の点で構成される。パッチは、一般に、点群によって記述された表面の連続したサブセットを指し得る。一例では、パッチには、互いからの偏差が閾値量未満である表面法線ベクトルを有する点が含まれる。
【0026】
PCCは、G-PCCと呼ばれるジオメトリベースの方式、及びV-PCCと呼ばれるビデオコーディングベースの方式等の様々な方式に従って実行することができる。本開示のいくつかの態様によれば、G-PCCは、3Dジオメトリを直接符号化し、ビデオコーディングと共有する部分があまりない純粋にジオメトリベースのアプローチであり、V-PCCは、ビデオコーディングに大きく基づいている。例えば、V-PCCは、3Dクラウドの点を2Dグリッド(画像)のピクセルにマッピングすることができる。V-PCC方式は、点群圧縮に汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)又はV-PCCコーデックであり得る。
【0027】
本開示の一態様によれば、V-PCC方式は、既存のビデオコーデックを使用して、点群のジオメトリ、占有、及びテクスチャを3つの別個のビデオシーケンスとして圧縮することができる。3つのビデオシーケンスを解釈するために必要な追加のメタデータは、個別に圧縮される。ビットストリーム全体のごく一部はメタデータであり、これは一例ではソフトウェア実装を使用して効率的に符号化/復号化することができる。情報の大部分はビデオコーデックによって処理される。
【0028】
図1は、いくつかの例における通信システム(100)のブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信することができる複数の端末装置を含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された一対の端末装置(110)及び(120)を含む。
図1の例では、第1の端末装置ペア(110)及び(120)は、点群データの一方向送信を行うことができる。例えば、端末装置(110)は、端末装置(110)に接続されたセンサ(105)によって取り込まれた点群(例えば、構造を表す点)を圧縮することができる。圧縮した点群は、例えばビットストリームの形式で、ネットワーク(150)を介して他の端末装置(120)に送信することができる。端末装置(120)は、ネットワーク(150)から圧縮した点群を受信し、ビットストリームを解凍して点群を再構成し、再構成した点群を適切に表示することができる。一方向のデータ送信は、メディアサービス提供アプリケーション等で一般的であり得る。
【0029】
図1の例では、端末装置(110)及び(120)はサーバ及びパーソナルコンピュータとして示され得るが、本発明の原理はこれに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、及び/又は専用の3次元(3D)機器への用途が見出される。ネットワーク(150)は、端末装置(110)と端末装置(120)との間で圧縮した点群を送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば有線(wired)及び/又は無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換チャネル及び/又はパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及びインターネット等が含まれる。
【0030】
図2は、いくつかの例におけるストリーミングシステム(200)のブロック図を示す。ストリーミングシステム(200)は、点群の使用アプリケーションである。開示する主題は、3Dテレプレゼンスアプリケーション、及び仮想現実アプリケーション等の他の点群対応アプリケーションにも同様に適用可能である。
【0031】
ストリーミングシステム(200)は、取込みサブシステム(213)を含むことができる。取込みサブシステム(213)は、点群ソース(201)、例えば、光検出測距(LIDAR)システム、3Dカメラ、3Dスキャナ、ソフトウェアで非圧縮の点群を生成する、例えば非圧縮の点群(202)を生成するグラフィックス生成コンポーネント等を含むことができる。一例では、点群(202)は、3Dカメラによって取り込まれた点を含む。点群(202)は、圧縮した点群(204)(圧縮した点群のビットストリーム)と比較した場合に、大量のデータ量を強調するために太線で示している。圧縮した点群(204)は、点群ソース(201)に結合されたエンコーダ(203)を含む電子装置(220)によって生成することができる。エンコーダ(203)は、以下でより詳細に説明するように、開示する主題の態様を可能にする、又は実現するためのハードウェア、ソフトウェア、又はそれらの組合せを含むことができる。圧縮した点群(204)(又は圧縮した点群(204)のビットストリーム)は、点群(202)のストリームと比較した場合にデータ量が少ないことを強調するために細線で示しており、将来の使用のためにストリーミングサーバ(205)に格納することができる。
図2のクライアントサブシステム(206)及び(208)等の1つ又は複数のストリーミングクライアントサブシステムが、ストリーミングサーバ(205)にアクセスして、圧縮した点群(204)のコピー(207)及び(209)を取得することができる。クライアントサブシステム(206)は、例えば電子装置(230)内にデコーダ(210)を含むことができる。デコーダ(210)は、圧縮した点群の入力コピー(207)を復号化し、レンダリング装置(212)でレンダリングできる再構成した点群(211)の出力ストリームを作成する。
【0032】
電子装置(220)及び(230)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子装置(220)はデコーダ(図示せず)を含むことができ、電子装置(230)はエンコーダ(図示せず)も含むことができる。
【0033】
いくつかのストリーミングシステムでは、圧縮した点群(204)、(207)、及び(209)(例えば、圧縮した点群のビットストリーム)は、特定の規格に従って圧縮することができる。いくつかの例では、点群の圧縮にビデオコーディング規格が使用される。これらの規格の例には、高効率ビデオ符号化(HEVC)、及び多用途ビデオ符号化(VVC)等が含まれる。
【0034】
図3は、いくつかの実施形態による、点群フレームを符号化するためのV-PCCエンコーダ(300)のブロック図を示す。いくつかの実施形態では、V-PCCエンコーダ(300)は、通信システム(100)及びストリーミングシステム(200)で使用することができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様の方法で構成され、動作することができる。
【0035】
V-PCCエンコーダ(300)は、点群フレームを非圧縮入力として受信し、圧縮した点群フレームに対応するビットストリームを生成する。いくつかの実施形態では、V-PCCエンコーダ(300)は、点群ソース(201)等の点群ソースから点群フレームを受信することができる。
【0036】
図3の例では、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)、パッチパッキングモジュール(308)、ジオメトリ画像生成モジュール(310)、テクスチャ画像生成モジュール(312)、パッチ情報モジュール(304)、占有マップモジュール(314)、平滑化モジュール(336)、画像パディングモジュール(316)及び(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322)、(323)及び(332)、補助パッチ情報圧縮モジュール(338)、エントロピー圧縮モジュール(334)、及びマルチプレクサ(324)を含む。
【0037】
本開示の一態様によれば、V-PCCエンコーダ(300)は、圧縮した点群を解凍した点群に変換し直すために使用されるいくつかのメタデータ(例えば、占有マップ及びパッチ情報)とともに、3D点群フレームを画像ベースの表現に変換する。いくつかの例では、V-PCCエンコーダ(300)は、3D点群フレームをジオメトリ画像、テクスチャ画像、及び占有マップに変換し、次に、ビデオコーディング技術を使用して、ジオメトリ画像、テクスチャ画像、及び占有マップをビットストリームに符号化することができる。一般に、ジオメトリ画像は、ピクセルに投影された点に関連付けられたジオメトリ値で満たされたピクセルを含む2D画像であり、ジオメトリ値で満たされたピクセルはジオメトリサンプルと呼ばれ得る。テクスチャ画像は、ピクセルに投影された点に関連付けられたテクスチャ値で満たされたピクセルを含む2D画像であり、テクスチャ値で満たされたピクセルはテクスチャサンプルと呼ばれ得る。占有マップは、パッチによって占有されているか否かを示す値で満たされたピクセルを含む2D画像である。
【0038】
パッチ生成モジュール(306)は、点群をパッチのセットにセグメント化し(例えば、パッチは、点群によって記述される表面の連続したサブセットとして規定される)、これらのパッチは、重複していても、重複していなくてもよく、各パッチは、2D空間の平面に対する深度フィールドによって記述され得る。いくつかの実施形態では、パッチ生成モジュール(306)は、再構成誤差を最小限に抑えながら、点群を滑らかな境界を有する最小数のパッチに分解することを目的とする。
【0039】
いくつかの例では、パッチ情報モジュール(304)は、パッチのサイズ及び形状を示すパッチ情報を収集することができる。いくつかの例では、パッチ情報を、画像フレームにパッキングし、次に補助パッチ情報圧縮モジュール(338)によって符号化して、圧縮した補助パッチ情報を生成することができる。
【0040】
いくつかの例では、パッチパッキングモジュール(308)は、未使用空間を最小限に抑えながら、抽出したパッチを2次元(2D)グリッドにマッピングし、グリッドの全てのM×M(例えば、16×16)ブロックが一意のパッチ関連付けられることを保証するように構成される。効率的なパッチパッキングは、未使用空間を最小限に抑えるか、又は時間的な一貫性を確保することにより、圧縮効率に直接影響を与えることができる。
【0041】
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置における点群のジオメトリに関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置における点群のテクスチャに関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)及びテクスチャ画像生成モジュール(312)は、パッキング処理中に計算された3Dから2Dへのマッピングを利用して、点群のジオメトリ及びテクスチャを画像として格納する。複数の点が同じサンプルに投影されるケースをより適切に処理するために、各パッチはレイヤーと呼ばれる2つの画像に投影される。一例では、ジオメトリ画像は、YUV420-8bit形式のW×Hのモノクロフレームで表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングした点に関連付けられる色を計算するために、再構成/平滑化したジオメトリを利用する。
【0042】
占有マップモジュール(314)は、各ユニットにおけるパディング情報を記述する占有マップを生成することができる。例えば、占有画像には、グリッドのセル毎に、そのセルが空きスペースに属しているか又は点群に属しているかを示すバイナリマップが含まれる。一例では、占有マップは、ピクセル毎にそのピクセルがパディングされているか否かを記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルのブロック毎に、ピクセルのブロックがパディングされているか否かを記述するバイナリ情報を使用する。
【0043】
占有マップモジュール(314)によって生成された占有マップは、可逆コーディング又は非可コーディングを使用して圧縮することができる。可逆コーディングを使用する場合に、エントロピー圧縮モジュール(334)は占有マップを圧縮するために使用される。非可逆コーディングを使用する場合に、ビデオ圧縮モジュール(332)は占有マップを圧縮するために使用される。
【0044】
パッチパッキングモジュール(308)は、画像フレーム内にパッキングした2Dパッチ同士の間にいくつかの空きスペースを残してもよいことに留意されたい。画像パディングモジュール(316)及び(318)は、2Dビデオ及び画像コーデックに適し得る画像フレームを生成するために、空きスペースを埋める(パディングと呼ばれる)ことができる。画像パディングは背景充填とも呼ばれ、未使用のスペースを冗長な情報で埋めることができる。いくつかの例では、背景を適切に埋めると、ビットレートの増加は最小限に抑えられる一方、パッチ境界付近に重大なコーディング歪みが発生することはない。
【0045】
ビデオ圧縮モジュール(322)、(323)、及び(332)は、HEVC、及びVVC等の適切なビデオコーディング規格に基づいて、埋め込み(padded)ジオメトリ画像、埋め込みテクスチャ画像、及び占有マップ等の2D画像を符号化することができる。一例では、ビデオ圧縮モジュール(322)、(323)、及び(332)は、別々に動作する個別のコンポーネントである。別の例では、ビデオ圧縮モジュール(322)、(323)、及び(332)を単一のコンポーネントとして実装できることに留意されたい。
【0046】
いくつかの例では、平滑化モジュール(336)は、再構成したジオメトリ画像の平滑化画像を生成するように構成される。平滑化した画像は、テクスチャ画像生成(312)に提供することができる。次に、テクスチャ画像生成(312)は、再構成したジオメトリ画像に基づいてテクスチャ画像の生成を調整することができる。例えば、パッチ形状(例えば、ジオメトリ)が符号化及び復号化中に僅かに歪んでいる場合に、パッチ形状の歪みを修正するためにテクスチャ画像を生成するときに、その歪みが考慮され得る。
【0047】
いくつかの実施形態では、グループ拡張(320)は、コーディング利得及び再構成した点群の視覚的品質を改善するために、オブジェクト境界の周囲のピクセルを冗長な低周波コンテンツでパディングするように構成される。
【0048】
マルチプレクサ(324)は、圧縮ジオメトリ画像、圧縮テクスチャ画像、圧縮占有マップ、圧縮補助パッチ情報を圧縮ビットストリームに多重化することができる。
【0049】
図4は、いくつかの例において、点群フレームに対応する圧縮ビットストリームを復号化するためのV-PCCデコーダ(400)のブロック図を示す。いくつかの例では、V-PCCデコーダ(400)は、通信システム(100)及びストリーミングシステム(200)で使用することができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様の方法で動作するように構成することができる。V-PCCデコーダ(400)は、圧縮ビットストリームを受信し、圧縮ビットストリームに基づいて再構成した点群を生成する。
【0050】
図4の例では、V-PCCデコーダ(400)は、デマルチプレクサ(432)、ビデオ解凍モジュール(434)及び(436)、占有マップ解凍モジュール(438)、補助パッチ情報解凍モジュール(442)、ジオメトリ再構成モジュール(444)、平滑化モジュール(446)、テクスチャ再構成モジュール(448)、及び色平滑化モジュール(452)を含む。
【0051】
デマルチプレクサ(432)は、圧縮ビットストリームを受け取り、圧縮したテクスチャ画像、圧縮したジオメトリ画像、圧縮した占有マップ、及び圧縮した補助パッチ情報に分離することができる。
【0052】
ビデオ解凍モジュール(434)及び(436)は、適切な規格(例えば、HEVC、VVC等)に従って圧縮画像を復号化し、解凍した画像を出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮したテクスチャ画像を復号化し、解凍したテクスチャ画像を出力する。そして、ビデオ解凍モジュール(436)は、圧縮したジオメトリ画像を復号化し、解凍したジオメトリ画像を出力する。
【0053】
占有マップ解凍モジュール(438)は、適切な規格(例えば、HEVC、VVC等)に従って圧縮した占有マップを復号化し、解凍した占有マップを出力することができる。
【0054】
補助パッチ情報解凍モジュール(442)は、適切な規格(例えば、HEVC、VVC等)に従って圧縮した補助パッチ情報を復号化し、解凍した補助パッチ情報を出力することができる。
【0055】
ジオメトリ再構成モジュール(444)は、解凍したジオメトリ画像を受信し、解凍した占有マップ及び解凍した補助パッチ情報に基づいて再構成した点群ジオメトリを生成することができる。
【0056】
平滑化モジュール(446)は、パッチのエッジにおける不一致を平滑化することができる。平滑化手順は、圧縮アーティファクトによりパッチ境界で発生し得る潜在的な不連続性を軽減することを目的としている。いくつかの実施形態では、平滑化フィルタをパッチ境界上に位置するピクセルに適用して、圧縮/解凍によって引き起こされ得る歪みを軽減することができる。
【0057】
テクスチャ再構成モジュール(448)は、解凍したテクスチャ画像及び平滑化ジオメトリに基づいて、点群内の点のテクスチャ情報を決定することができる。
【0058】
色平滑化モジュール(452)は、カラーリングの不一致を平滑化することができる。3D空間内の隣接していないパッチが、2Dビデオ内で互いに隣り合ってパッキングされることがよくある。いくつかの例では、隣接しないパッチのピクセル値がブロックベースのビデオコーデックによって混同される可能性がある。色平滑化の目的は、パッチの境界に現れる目に見えるアーティファクトを軽減することである。
【0059】
図5は、いくつかの例におけるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、V-PCCデコーダ(400)で使用することができる。例えば、ビデオ解凍モジュール(434)及び(436)、占有マップ解凍モジュール(438)は、ビデオデコーダ(510)と同様に構成することができる。
【0060】
ビデオデコーダ(510)は、符号化ビデオシーケンス等の圧縮画像からシンボル(521)を再構成するためのパーサ(520)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報が含まれる。パーサ(520)は、受信したコーディングしたビデオシーケンスを解析/エントロピー復号化することができる。コーディングしたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従って行うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性の有無にかかわらず算術コーディング等を含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループパラメータのセットをコーディングしたビデオシーケンスから抽出することができる。サブグループには、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等が含まれ得る。パーサ(520)は、変換係数、量子化パラメータ値、及び動きベクトル等の情報を符号化したビデオシーケンスから抽出することもできる。
【0061】
パーサ(520)は、バッファメモリから受信したビデオシーケンスに対してエントロピー復号化/解析動作を行って、シンボル(521)を作成することができる。
【0062】
シンボル(521)の再構成には、コーディングしたビデオピクチャ又はその一部(インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック等)のタイプ、及び他の要因に応じて、複数の異なるユニットが関与する可能性がある。どのユニットがどのように関与するかは、パーサ(520)によってコーディングしたビデオシーケンスから解析したサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示していない。
【0063】
既に述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように概念的に多数の機能ユニットに細分化することができる。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に連携し、少なくとも部分的に互いに統合することができる。しかしながら、開示する主題を説明する目的のためには、以下の機能ユニットへの概念的な細分化が適切である。
【0064】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化した変換係数と、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報とをシンボル(複数可)(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力できるサンプル値を含むブロックを出力することができる。
【0065】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングしたブロック、つまり、以前に再構成したピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成した部分からの予測情報を使用できるブロックに関係する可能性がある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチした周囲の既に再構成した情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成した現在のピクチャ及び/又は完全に再構成した現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0066】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償したブロックに関係し得る。このような場合に、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチしたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合は残差サンプル又は残差信号と呼ばれる)に追加され、出力サンプル情報を生成することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、及び参照ピクチャ成分を有し得るシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償には、サブサンプルの正確な動きベクトルが使用されている場合に参照ピクチャメモリ(557)からフェッチされるサンプル値の補間、及び動きベクトル予測メカニズム等が含まれることもある。
【0067】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術には、コーディングしたビデオシーケンス(コーディングしたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるインループ(in-loop)フィルタ技術が含まれ得るが、コーディングしたピクチャ又はコーディングしたビデオシーケンスの以前の(復号順序での)部分の復号中に取得されたメタ情報に応答することもでき、また、以前に再構成した、ループフィルタリングしたサンプル値に応答することもできる。
【0068】
ループフィルタユニット(556)の出力は、レンダリング装置に出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納することができるサンプルストリームとすることができる。
【0069】
特定のコーディングしたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応するコーディングしたピクチャが完全に再構成され、コーディングしたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部となり得、そして、次のコーディングしたピクチャの再構成を開始する前に、新しい現在のピクチャバッファを再割り当てすることができる。
【0070】
ビデオデコーダ(510)は、ITU-T Rec. H.265等の規格で所定のビデオ圧縮技術に従って復号化動作を行うことができる。コーディングしたビデオシーケンスは、コーディングしたビデオシーケンスがビデオ圧縮技術又は規格の構文とビデオ圧縮技術又は規格に文書化されたプロファイルとの両方に準拠するという意味で、使用しているビデオ圧縮技術又は規格によって指定された構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールの中から、そのプロファイルで使用できる唯一のツールとして特定のツールを選択することができる。また、準拠するためには、コーディングしたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって規定された範囲内に収まることも必要である。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、及び最大参照ピクチャサイズ等が制限される。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様及びコーディングしたビデオシーケンスで信号通知されるHRDバッファ管理のメタデータを介してさらに制限されることがある。
【0071】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、点群を圧縮するV-PCCエンコーダ(300)で使用することができる。一例では、ビデオ圧縮モジュール(322)及び(323)、並びにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0072】
ビデオエンコーダ(603)は、埋め込みジオメトリ画像、及び埋め込みテクスチャ画像等の画像を受信し、圧縮画像を生成することができる。
【0073】
一実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンス(画像)のピクチャを符号化して、リアルタイムで、又はアプリケーションの要求に応じた他の時間制約の下でコーディングしたビデオシーケンス(圧縮画像)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、結合は示していない。コントローラ(650)によって設定されるパラメータには、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、・・・)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、及び最大動きベクトル探索範囲等が含まれる。コントローラ(650)は、特定のシステム設計に最適化したビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0074】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディング・ループ内で動作するように構成される。過度に単純化した説明として、一例では、コーディング・ループは、ソースコーダ(630)(例えば、コーディングされる入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボル、及び参照ピクチャを作成する役割を担う)、及びビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(リモート)デコーダが作成するのと同様の方法でシンボルを再構成し、サンプルデータを作成する(開示する主題で考慮されるビデオ圧縮技術では、シンボルとコーディングしたビデオビットストリームとの間のあらゆる圧縮が可逆であるため)。再構成したサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号化が、デコーダの位置(ローカル又はリモート)に関係なくビット正確な結果をもたらすので、参照ピクチャメモリ(634)内の内容もローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、エンコーダの予測部分は、復号化中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」ことになる。参照ピクチャの同期性(及び、例えばチャネルエラーにより同期性が維持できない場合には結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも同様に使用される。
【0075】
「ローカル」デコーダ(633)の動作は、
図5に関連して既に詳細に説明したビデオデコーダ(510)等の「リモート」デコーダの動作と同じであってもよい。
図5も簡潔に参照する。ただし、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)によるシンボルのコーディングしたビデオシーケンスへの符号化/復号化は可逆であり得るため、ビデオデコーダ(510)のエントロピー復号化部分には、パーサ(520)がローカルデコーダ(633)に完全に実装されていない可能性がある。
【0076】
動作中に、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ又は複数の以前に符号化したピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコーディングする。
【0077】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングしたビデオデータを復号化することができる。コーディングエンジン(632)の動作は、不可逆プロセスであることが有利である。コーディングしたビデオデータがビデオデコーダ(
図6には図示せず)で復号化される場合に、再構成したビデオシーケンスは、典型的に、いくつかのエラーを含むソースビデオシーケンスのレプリカである可能性がある。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号化プロセスを複製し、再構成した参照ピクチャを参照ピクチャキャッシュ(634)に格納させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダ(送信エラーがない)によって取得される再構成した参照ピクチャとして共通の内容を有する再構成した参照ピクチャのコピーをローカルに格納することができる。
【0078】
予測器(635)は、コーディングエンジン(632)に対して予測検索を行うことができる。すなわち、コーディングされる新しいピクチャについて、予測器(635)は、サンプルデータ(候補参照ピクセルブロックとして)、又は新しいピクチャの適切な予測参照として機能し得る参照ピクチャ動きベクトル、及びブロック形状等の特定のメタデータを求めて参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロック毎にピクセルブロック毎に(sample block-by-pixcel block basis)動作することができる。場合によっては、予測器(635)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納した複数の参照ピクチャから引き出された予測参照を有し得る。
【0079】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0080】
前述の全ての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、及び算術コーディング等の技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングしたビデオシーケンスに変換する。
【0081】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コーディングピクチャに特定のコーディングピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技術に影響を与える可能性がある。例えば、多くの場合に、ピクチャは、次のピクチャタイプのいずれかとして割り当てられ得る。
【0082】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測ソースとして使用せずにコーディング及び復号化できるピクチャであり得る。一部のビデオコーデックでは、例えば、IDR(Independent Decoder Refresh)ピクチャを含む、様々なタイプのイントラピクチャが可能になる。当業者は、Iピクチャのこれらの変形と、それらのそれぞれの用途及び特徴を認識している。
【0083】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用してコーディング及び復号化され得るピクチャであり得る。
【0084】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用してコーディング及び復号化され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構成に関して、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0085】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に再分割され、ブロック毎にコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングした)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングしてもよく、又は同じピクチャの既にコーディングしたブロックを参照して予測的にコーディングしてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングした1つの参照ピクチャを参照して、空間予測又は時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つ又は2つの以前にコーディングした参照ピクチャを参照して、空間予測又は時間予測を介して予測的にコーディングされ得る。
【0086】
ビデオエンコーダ(603)は、ITU-T Rec. H.265等の所定のビデオ圧縮技術又は規格に従って復号化動作を行うことができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行うことができる。従って、コーディングしたビデオデータは、使用しているビデオコーディング技術又は規格によって指定された構文に準拠し得る。
【0087】
ビデオは、時系列に並んだ複数のソースピクチャ(画像)の形式であってもよい。イントラピクチャ予測(イントラ予測と略されることが多い)は、所与のピクチャ内の空間相関を利用し、インターピクチャ予測はピクチャ同士の間の(時間的又は他の)相関を利用する。一例では、符号化/復号化中の特定のピクチャ(現在ピクチャと呼ばれる)は、ブロックにパーティション分割される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングし、依然としてバッファされている参照ピクチャ内の参照ブロックと類似している場合に、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する3次元を有することができる。
【0088】
いくつかの実施形態では、インターピクチャ予測において双方向予測技術を使用することができる。双方向予測技術によれば、ビデオ内の現在のピクチャよりも復号化順序で前にある(ただし、表示順でそれぞれ過去と未来の可能性がある)第1の参照ピクチャ及び第2の参照ピクチャ等の2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組合せによって予測することができる。
【0089】
さらに、マージモード技術をインターピクチャ予測に使用して、コーディング効率を向上させることができる。
【0090】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロック単位で行われる。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは圧縮のためにコーディングツリーユニット(CTU)にパーティション分割され、ピクチャ内のCTUは同じサイズ(64×64ピクセル、32×32ピクセル、又は16×16ピクセル等)である。一般に、CTUには3つのコーディングツリーブロック(CTB)が含まれ、これらは1つのルマCTB及び2つのクロマCTBである。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割することができる。一例では、各CUを解析して、インター予測タイプ又はイントラ予測タイプ等のCUの予測タイプが決定される。CUは、時間的及び/又は空間的な予測可能性に応じて1つ又は複数の予測ユニット(PU)に分割される。一般に、各PUには、1つのルマ予測ブロック(PB)及び2つのクロマPBが含まれる。一実施形態では、コーディング(符号化/復号化)における予測演算は、予測ブロック単位で行われる。予測ブロックの一例としてルマ予測ブロックを使用すると、予測ブロックには、8×8ピクセル、16×16ピクセル、8×16ピクセル、及び16×8ピクセル等のピクセルの値(例えば、ルマ値)の行列が含まれる。
【0091】
図7は、いくつかの例におけるG-PCCエンコーダ(700)のブロック図を示す。G-PCCエンコーダ(700)は、点群データを受信し、その点群データを圧縮して、圧縮した点群データを搬送するビットストリームを生成するように構成することができる。一実施形態では、G-PCCエンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、8分木符号化モジュール(730)、属性転送モジュール(720)、レベルのディテール(LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、及び再構成した属性値を記憶するメモリ(790)を含むことができる。
【0092】
示されるように、入力点群(701)は、G-PCCエンコーダ(700)で受信され得る。点群(701)の位置(例えば、3D座標)は、量子化モジュール(710)に提供される。量子化モジュール(710)は、座標を量子化して量子化した位置を生成するように構成される。重複点除去モジュール(712)は、量子化した位置を受け取り、フィルタ処理を行って、重複点を特定して除去するように構成される。8分木符号化モジュール(730)は、重複点除去モジュール(712)からフィルタリングした位置を受け取り、8分木ベースの符号化プロセスを実行して、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは算術コーディングモジュール(770)に提供される。
【0093】
属性転送モジュール(720)は、入力点群の属性を受け取り、複数の属性値がそれぞれのボクセルに関連付けられている場合に、属性転送プロセスを実行して各ボクセルの属性値を決定するように構成される。属性転送プロセスは、8分木符号化モジュール(730)から出力された並べ替えられた点に対して行うことができる。転送動作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、8分木符号化モジュール(730)から出力された並べ替えられた点に対して動作し、それらの点を異なるLODに再構成するように構成される。LOD情報は属性予測モジュール(750)に供給される。
【0094】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従って点を処理する。属性予測モジュール(750)は、メモリ(790)に格納した現在点の隣接点のセットの再構成した属性に基づいて、現在点の属性予測を生成する。その後、予測残差は、属性転送モジュール(720)から受信した元の属性値及びローカルに生成した属性予測に基づいて取得することができる。候補インデックスがそれぞれの属性予測プロセスで使用される場合に、選択した予測候補に対応するインデックスが算術コーディングモジュール(770)に提供され得る。
【0095】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受け取り、量子化を実行して量子化した残差を生成するように構成される。量子化した残差は算術コーディングモジュール(770)に提供される。
【0096】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化した残差を受け取り、残差量子化モジュール(760)で実行される量子化操作の逆を実行することによって再構成した予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)から再構成した予測残差を受け取り、属性予測モジュール(750)からそれぞれの属性予測を受け取るように構成される。再構成した予測残差と属性予測を組み合わせることで、再構成した属性値が生成され、メモリ(790)に格納される。
【0097】
算術コーディングモジュール(770)は、占有コード、候補インデックス(使用される場合)、量子化した残差(生成される場合)、及び他の情報を受け取り、受け取った値又は情報をさらに圧縮するためにエントロピー符号化を行うように構成される。その結果、圧縮情報を搬送する圧縮ビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮ビットストリームを復号化するデコーダに送信又は提供してもよく、或いはストレージ装置に格納してもよい。
【0098】
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示す。G-PCCデコーダ(800)は、圧縮したビットストリームを受け取り、点群データ解凍を行ってビットストリームを解凍し、復号化した点群データを生成するように構成することができる。一実施形態では、G-PCCデコーダ(800)は、算術復号化モジュール(810)、逆残差量子化モジュール(820)、8分木復号化モジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、及び再構成した属性値を格納するメモリ(860)を含むことができる。
【0099】
示されるように、圧縮ビットストリーム(801)は、算術復号化モジュール(810)で受信することができる。算術復号化モジュール(810)は、圧縮ビットストリーム(801)を復号化して、量子化した残差(生成される場合)及び点群の占有コードを取得するように構成される。8分木復号化モジュール(830)は、占有コードに従って点群内の点の再構成した位置を決定するように構成される。LOD生成モジュール(840)は、再構成した位置に基づいて点を異なるLODに再編成し、LODに基づく順序を決定するように構成される。逆残差量子化モジュール(820)は、算術復号化モジュール(810)から受信した量子化した残差に基づいて、再構成した残差を生成するように構成される。
【0100】
属性予測モジュール(850)は、LODベースの順序に従って点の属性予測を決定する属性予測プロセスを行うように構成される。例えば、現在点の属性予測は、メモリ(860)に格納した現在点の隣接点の再構成した属性値に基づいて決定することができる。いくつかの例では、属性予測をそれぞれの再構成した残差と組み合わせて、現在の点の再構成した属性を生成することができる。
【0101】
属性予測モジュール(850)から生成された再構成した属性のシーケンスは、8分木復号化モジュール(830)から生成された再構成位置とともに、一例では、G-PCCデコーダ(800)から出力される復号化した点群(802)に対応する。さらに、再構成した属性もメモリ(860)に格納され、その後、後続の点の属性予測を導出するために使用することができる。
【0102】
様々な実施形態では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、ハードウェア、ソフトウェア、又はそれらの組合せで実装することができる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、特定用途向け集積回路(ASIC)、及びフィールドプログラマブルゲートアレイ(FPGA)等のソフトウェアの有無にかかわらず動作する1つ又は複数の集積回路(IC)等の処理回路を用いて実装することができる。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、不揮発性(又は非一時的)コンピュータ可読記憶媒体に格納された命令を含むソフトウェア又はファームウェアとして実装することができる。命令は、1つ又は複数のプロセッサ等の処理回路によって実行されると、処理回路にエンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)の機能を実行させる。
【0103】
本明細書で開示する属性予測技術を実現するように構成された属性予測モジュール(750)及び(850)は、
図7及び
図8に示されるものと同様の又は異なる構造を有し得る他のデコーダ又はエンコーダに含めることができることに留意されたい。さらに、エンコーダ(700)及びデコーダ(800)は、同じ装置に含めることができ、又は様々な例では別個の装置に含めることができる。
【0104】
本開示のいくつかの態様によれば、メッシュ圧縮は、PCCコーディングツールとは異なるコーディングツールを使用することができ、又は上記のPCC(例えば、G-PCC、V-PCC)エンコーダ、及び上記のPCC(例えば、G-PCC、V-PCC)エンコーダ等のPCCコーディングツールを使用することができる。
【0105】
オブジェクトのメッシュ(メッシュモデル、メッシュフレームとも呼ばれる)は、オブジェクトの表面を記述するポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点をポリゴンに接続する辺(edge:エッジ)とによって規定することができる。頂点がどのように接続されるかに関する情報(例えば、辺の情報)は、接続性情報と呼ばれる。いくつかの例では、オブジェクトのメッシュは、オブジェクトの表面を記述する接続された三角形によって形成される。辺を共有する2つの三角形は、接続された2つの三角形と呼ばれる。他のいくつかの例では、オブジェクトのメッシュは、接続された四角形によって形成される。辺を共有する2つの四角形は、接続された2つの四角形と呼ぶことができる。メッシュは他の適切なポリゴンによって形成できることに留意されたい。
【0106】
いくつかの例では、メッシュは、頂点に関連付けられた色、及び法線等の属性を含むこともできる。2D属性マップでメッシュをパラメータ化するマッピング情報を利用することで、属性をメッシュの表面に関連付けることができる。マッピング情報は、通常、メッシュ頂点に関連付けられたUV座標又はテクスチャ座標と呼ばれるパラメトリック座標のセットによって記述される。2D属性マップ(いくつかの例ではテクスチャマップと呼ばれる)は、テクスチャ、法線、変位等の高解像度の属性情報を格納するために使用される。このような情報は、テクスチャマッピング及びシェーディング等の様々な目的に使用することができる。
【0107】
いくつかの実施形態では、メッシュは、幾何学的情報、接続性情報、マッピング情報、頂点属性、及び属性マップと呼ばれる成分を含むことができる。いくつかの例では、幾何学的情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。一例では、(x,y,z)座標を使用して頂点の3D位置を記述することができ、3D座標とも呼ばれる。いくつかの例では、接続性情報には、頂点を接続して3D表面を作成する方法を記述する頂点インデックスのセットが含まれる。いくつかの例では、マッピング情報は、メッシュ表面を平面の2D領域にマッピングする方法を記述する。一例では、マッピング情報は、接続性情報とともにメッシュ頂点に関連付けられたUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。いくつかの例では、頂点属性には、メッシュ頂点に関連付けられたスカラ属性値又はベクトル属性値が含まれる。いくつかの例では、属性マップには、メッシュ表面に関連付けられ、且つ2D画像/ビデオとして格納される属性が含まれる。一例では、ビデオ(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって規定される。
【0108】
本開示の一態様によれば、UVマッピング又はメッシュパラメータ化と呼ばれるいくつかの技術は、3D領域のメッシュの表面を2D領域にマッピングするために使用される。いくつかの例では、メッシュは、3D領域内のパッチにパーティション分割される。パッチは、境界エッジで形成された境界を有するメッシュの連続したサブセットである。パッチの境界エッジ(辺)は、パッチの1つのポリゴンにのみ属し、且つパッチ内の2つの隣接するポリゴンによって共有されないエッジ(辺)である。いくつかの例では、パッチ内の境界エッジの頂点はパッチの境界頂点と呼ばれ、パッチ内の非境界頂点はパッチの内部頂点と呼ばれ得る。
【0109】
いくつかの例では、オブジェクトのメッシュは接続された三角形によって形成され、メッシュはパッチにパーティション分割することができ、各パッチは接続された三角形のサブセットである。パッチの境界エッジ(辺)は、パッチ内の1つの三角形にのみ属し、且つパッチ内の隣接する三角形によって共有されないエッジ(辺)である。いくつかの例では、パッチ内の境界エッジの頂点はパッチの境界頂点と呼ばれ、パッチ内の非境界頂点はパッチの内部頂点と呼ばれ得る。境界ループには一連の境界頂点(a sequence of boundary vertices)が含まれており、一連の境界頂点によって形成される境界エッジは、境界ループと呼ばれるループを形成することができる。
【0110】
本開示の一態様によれば、いくつかの例では、パッチはそれぞれ2D形状(UVパッチとも呼ばれる)にパラメータ化される。いくつかの例では、2D形状は、アトラスとも呼ばれるマップにパックする(例えば、向き合わせして配置する)ことができる。いくつかの例では、マップは、2D画像又はビデオ処理技術を使用してさらに処理することができる。
【0111】
一例では、UVマッピング技術は、3Dメッシュのパッチに対応する2DのUVアトラス(UVマップとも呼ばれる)及び1つ又は複数のテクスチャアトラス(テクスチャマップとも呼ばれる)を生成する。UVアトラスには、3Dメッシュの3D頂点の2D領域(例えば、長方形)内の2D点への割り当てが含まれる。UVアトラスは、3D表面の座標と2D領域の座標との間のマッピングである。一例では、UVアトラスの2D座標(u,v)の点は、3D領域の頂点の座標(x,y,z)によって形成される値を有する。一例では、テクスチャアトラスには3Dメッシュの色情報が含まれる。例えば、テクスチャアトラスの2D座標(u,v)の点(UVアトラスでは3D値(x,y,z)を有する)には、3D領域の(x,y,z)の点の色属性を指定する色がある。いくつかの例では、3D領域の座標(x,y,z)は3D座標又はxyz座標と呼ばれ、2D座標(u,v)はuv座標又はUV座標と呼ばれる。
【0112】
本開示のいくつかの態様によれば、メッシュ圧縮は、1つ又は複数の2Dマップ(いくつかの例では2Dアトラスとも呼ばれる)を使用してメッシュを表現し、その後、画像コーデック又はビデオコーデックを使用して2Dマップを符号化することによって実行され得る。2Dマップを生成するには、様々な技術を使用することができる。
【0113】
図9は、いくつかの例における3Dメッシュ(910)の2Dアトラス(920)へのマッピングを示す図を示す。
図9の例では、3Dメッシュ(910)は、4つのパッチA~Dを形成する4つの頂点1~4を含む。各パッチには、頂点のセットと関連する属性情報とがある。例えば、パッチAは、三角形に接続される頂点1、2、及び3によって形成される。パッチBは、三角形に接続される頂点1、3、及び4によって形成される。パッチCは、三角形に接続される頂点1、2、及び4によって形成される。パッチDは、三角形に接続される頂点2、3、及び4によって形成される。いくつかの例では、頂点1、2、3、及び4はそれぞれの属性を有することができ、頂点1、2、3、及び4によって形成される三角形はそれぞれの属性を有することができる。
【0114】
一例では、3DのパッチA、B、C、及びDは、マップ(920)とも呼ばれる2Dアトラス(920)等の2D領域にマッピングされる。例えば、パッチAはマップ(920)内の2D形状(UVパッチとも呼ばれる)A’にマッピングされ、パッチBはマップ(920)内の2D形状(UVパッチとも呼ばれる)B’にマッピングされ、パッチCはマップ(920)内の2D形状(UVパッチとも呼ばれる)C’にマッピングされ、パッチDはマップ(920)内の2D形状(UVパッチとも呼ばれる)D’にマッピングされる。いくつかの例では、3D領域の座標は(x,y,z)座標と呼ばれ、マップ(920)等の2D領域の座標はUV座標と呼ばれる。3Dメッシュ内の頂点は、マップ(920)内の対応するUV座標を有することができる。
【0115】
マップ(920)は、幾何学的情報を有するジオメトリマップであってもよく、或いは色、法線、テキスタイル、又は他の属性情報を有するテクスチャマップであってもよく、或いは占有情報を含む占有マップであってもよい。
【0116】
図9の例では各パッチを三角形で表しているが、パッチは、メッシュの連続したサブセットを形成するために接続される任意の適切な数の頂点を含むことができることに留意されたい。いくつかの例では、パッチ内の頂点が三角形に接続される。パッチ内の頂点は、他の適切な形状を使用して接続できることに留意されたい。
【0117】
一例では、頂点の幾何学形状情報を2Dジオメトリマップに格納することができる。例えば、2Dジオメトリマップには、2Dジオメトリマップ内の対応する点のサンプリング点の(x,y,z)座標が格納される。例えば、2Dジオメトリマップ内の(u,v)位置の点は、3Dメッシュ内の対応するサンプリング点のx、y、及びz値にそれぞれ対応する3つの成分のベクトル値を有する。
【0118】
本開示の一態様によれば、マップ内の領域は完全に占有されていない可能性がある。例えば、
図9では、2D形状A’、B’、C’、及びD’の外側の領域は未規定である。復号化後の2D形状A’、B’、C’、及びD’の外側の領域のサンプル値は破棄することができる。場合によっては、占有マップは、ピクセルがパッチに属しているか又は未規定であるかを識別するためのバイナリ値を格納する等、各ピクセルのいくつかの追加情報を格納するために使用される。
【0119】
本開示の一態様によれば、動的メッシュは、成分(幾何学的情報、接続性情報、マッピング情報、頂点属性及び属性マップ)のうちの少なくとも1つが時間とともに変化するメッシュである。動的メッシュは、一連のメッシュ(メッシュフレームとも呼ばれる)によって記述することができる。いくつかの例では、動的メッシュ内のメッシュフレームは、異なる時間におけるオブジェクトの表面の表現とすることができ、各メッシュフレームは、特定の時間(時間インスタンスとも呼ばれる)におけるオブジェクトの表面の表現である。動的メッシュには、時間の経過とともに変化する大量の情報が含まれる可能性があるため、動的メッシュは、大量のデータが必要になる場合がある。メッシュの圧縮技術により、メッシュ表現でのメディアコンテンツの効率的な格納及び送信が可能になる。
【0120】
いくつかの例では、動的メッシュは、一定の接続性情報、時間変化するジオメトリ、及び時間変化する頂点属性を有することができる。いくつかの例では、動的メッシュは時間とともに変化する接続性情報を有することができる。一例では、デジタルコンテンツ作成ツールは、通常、時間とともに変化する属性マップと時間とともに変化する接続性情報とを含む動的メッシュを生成する。いくつかの例では、動的メッシュを生成するために体積(volumetric)取得技術が使用される。体積取得技術は、特にリアルタイムの制約下で、時間とともに変化する接続性情報を含む動的メッシュを生成することができる。
【0121】
メッシュ圧縮にはいくつかの技術が使用される。いくつかの例では、UVアトラスサンプリング及びV-PCCをメッシュ圧縮に使用することができる。例えば、UVアトラスは通常のグリッドでサンプリングされ、通常のグリッドサンプルを含むジオメトリ画像が生成される。通常のグリッドサンプルの接続性を推論することができる。通常のグリッドサンプルは点群内の点と見なすことができるため、V-PCCコーデック等のPCCコーデックを使用してコーディングすることができる。
【0122】
他のいくつかの例では、頂点並べ替え技術がメッシュ圧縮に使用される。メッシュの頂点は、隣接する頂点の相関を高めるために特定のルールに従って並べ替えられるため、予測コーディング方法を使用してコーディング効率を高めることができる。一例では、シーケンス内の隣接する頂点の相関を高めるために頂点が並べ替えられる。別の例では、メッシュの頂点が2次元(2D)フレームに並べ替えられ、再配置されて、2Dフレームの局所領域内の隣接する頂点の相関を高め、これにより、イントラ予測技術等を使用して、2Dフレームを画像/ビデオコーデックによってより効率的にコーディングすることができる。別の例では、2Dフレーム同士の間の相関を高めるために、異なるメッシュフレームの頂点が2Dフレーム内で並べ替えられ、再配置されるため、インター予測技術等を使用して、2Dフレームをビデオコーデックによってより効率的にコーディングすることができる。
【0123】
図10A~
図10Eは、メッシュ圧縮のために頂点並べ替えを使用する例を示す。
図10Aは、入力メッシュ(1005)(例えば、元のメッシュ)の図を示す。入力メッシュ(1005)は、オブジェクトの表面を記述する接続された三角形を含む。各三角形は、頂点と、頂点を三角形に接続する辺とによって規定される。入力メッシュ(1005)は、
図10Aに示されるように三角形に接続される頂点0~8を含む。
【0124】
図10Bは、いくつかの例における頂点通過順序(vertex traversal order)(1015)の図を示す。頂点通過順序(1015)は、矢印付きの線で示されており、頂点0、頂点1、頂点2、頂点3、頂点4、頂点5、頂点6、頂点7、及び頂点8を順に通過する。
【0125】
次に、頂点の3D(ジオメトリ)座標、頂点のUV座標、及び頂点の他の属性等の頂点の属性を、頂点通過順序(1015)に従ってアレイに並べ替えることができる。例えば、頂点の3D座標を頂点通過順序(1015)で3D座標のアレイに並べ替えることができ、頂点のUV座標を頂点通過順序(1015)でUV座標のアレイに並べ替えることができる。アレイは、1Dアレイであってもよく、又は2Dアレイであってもよい。
【0126】
いくつかの例では、頂点の属性は、ラスター走査線に従って並び替えられ、2D画像を形成する2Dアレイに再成形される。2D画像は、画像コーデック又はビデオコーデック等の予測コーディング技術によってコーディングすることができる。メッシュフレームのシーケンスを含む動的メッシュの例では、動的メッシュの属性を並べ替えて、2D画像のシーケンスを形成でき、一例では2D画像のシーケンスをビデオコーデックによってコーディングすることができる。
【0127】
図10Cは、頂点の属性を2Dアレイ(1035)に再成形するために使用されるラスター走査線(1025)を示す図を示す。ラスター走査線(1025)は矢印付きの線で示される。2Dアレイ(1035)は、2Dマップ又は2D画像とも呼ばれ得る。一例では、頂点の属性は、頂点に対応する2Dアレイ(1035)のエントリに格納される。エントリは2D画像内のピクセルであり、属性値はピクセルの色情報とみなすことができる。一例では、2Dアレイ(1035)は3D座標マップであり得る。別の例では、2Dアレイ(1035)はUV座標マップであり得る。2Dアレイ(1035)は、メッシュフレームを搬送するためにビットストリームに符号化することができる。
【0128】
いくつかの例では、接続性情報(例えば、頂点を三角形の辺に接続する方法)は、メッシュフレームを搬送するためのビットストリームに明示的に符号化されない。こうして、デコーダ側では、デコーダは、例えば2Dマップから頂点の属性(例えば、3D座標、及びuv座標等)を復号化し、頂点を再構成することができる。
【0129】
図10Dは、いくつかの例における再構成した頂点0’~8’を示す図を示す。例えば、座標(例えば、3D座標、uv座標)をビットストリームから復号化し、次に、復号化した座標に従って再構成した頂点0’~8’を生成することができる。
【0130】
いくつかの例では、接続性情報はビットストリームに明示的に符号化されず、再構成した頂点0’~8’を接続する辺は接続性推論ルールに従って推論される。接続性推論ルールは、デコーダ側で復号化した3D座標(xyz座標)及び/又はUV座標(uv座標)から接続性を推論することができる。一例では、接続性推論ルールはデコーダ側で適切に確立される。全ての頂点が復号化されると、接続性推論ルールに従って隣接する頂点が接続される。デコーダは、ビットストリームから接続性情報を復号化する必要はない。
【0131】
図10Eは、再構成した頂点0’~8’を三角形に接続して再構成したメッシュ(1095)を形成することができる推論される接続性情報(辺:エッジ)を示す図を示す。
【0132】
図10A及び
図10Eに示されるように、再構成したメッシュ(1095)における頂点の接続性(辺)は、元の入力メッシュ(1005)とは異なる可能性がある。いくつかの例では、接続差により、再構成したメッシュの主観的な品質が低下する可能性がある。本開示の別の態様によれば、デコーダ側での接続性の推論には時間がかかり、複雑さの観点から計算能力を消費する可能性がある。
【0133】
本開示の態様は、メッシュフレームを搬送するビットストリーム内でメッシュフレームの接続性情報を明示的にコーディングする技術を提供する。いくつかの例では、接続性情報はポリゴン面の形式で提供される。各ポリゴン面は、ポリゴン面の辺を形成するために接続される一連の頂点によって規定される。一例では、接続性情報は三角形(三角形面とも呼ばれる)の形式で提供され、各三角形は接続されて三角形の3つの辺を形成する3つの頂点によって規定される。例えば、入力メッシュ(1005)のメッシュ接続には、「fv0v1v6」の形式で頂点0、頂点1、及び頂点6によって形成される三角形を含めることができ、ここで、「f」は面情報を示し、「v0」は頂点0のインデックスであり、「v1」は頂点1のインデックスであり、「v6」は頂点6のインデックスである。
【0134】
本開示の一態様によれば、メッシュフレームの接続性情報は、頂点のそれぞれの接続属性として再編成することができる。
【0135】
本開示の一態様によれば、頂点の接続属性は、頂点における接続性情報を表す任意の適切なメトリックとすることができる。一例では、頂点の接続属性には、頂点のエッジ(edge:辺)の数である次数(valence)値が含まれる。例えば、入力メッシュ(1005)の頂点3の次数値は3であり、入力メッシュ(1005)の頂点5の次数値は4であり、入力メッシュ(1005)の頂点8の次数値は6となり、以下同様になる。
【0136】
別の例では、EdgeBreakerアルゴリズムと呼ばれるアルゴリズムは、頂点を通過し、各頂点をパターンインデックスでマークして、頂点が他のいくつかの頂点にどのように接続できるかを記述することができる。例えば、パターンインデックスは、内部頂点、境界頂点、及び他のパターン等の接続パターンを特定することができる。次に、頂点の接続属性に、EdgeBreakerアルゴリズムによってマークされたパターンインデックスを含めることができる。
【0137】
いくつかの例では、頂点の接続属性は、頂点の他の属性として並べ替え及び再成形することができ、次に、メッシュを搬送するビットストリームに明示的にコーディングすることができる。
【0138】
図11は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワーク(1100)の図を示す。フレームワーク(1100)は、メッシュエンコーダ(1110)及びメッシュデコーダ(1150)を含む。メッシュエンコーダ(1110)は入力メッシュ(1105)(動的メッシュ処理の場合はメッシュフレーム)をビットストリーム(1145)に符号化し、メッシュデコーダ(1150)はビットストリーム(1145)を復号化して再構成したメッシュ(1195)(動的メッシュ処理の場合の再構成したメッシュフレーム)を生成する。
【0139】
メッシュエンコーダ(1110)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム装置、AR装置、及びVR等の任意の適切な装置であり得る。メッシュデコーダ(1150)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム装置、AR装置、及びVR装置等の任意の適切な装置であり得る。ビットストリーム(1145)は、任意の適切な通信ネットワーク(図示せず)を介してメッシュエンコーダ(1110)からメッシュデコーダ(1150)に送信することができる。
【0140】
図11の例では、メッシュエンコーダ(1110)は、互いに結合される頂点並べ替えモジュール(1120)、1D/2Dエンコーダ(1130)、及び補助データエンコーダ(1140)を含む。頂点並べ替えモジュール(1120)は、入力メッシュ(1105)を受け取り、並べ替えを行って並べ替えた頂点のメッシュ情報(1125)を生成する。いくつかの例では、入力メッシュ(1105)は、元の順序でのメッシュの頂点の3D位置情報、ポリゴン面の形式の接続性情報、メッシュを2D(例えば、UVアトラス)にパラメータ化するマッピング情報、及び他の2D属性マップ(例えば、2Dカラーマップ)を含む。頂点並べ替えモジュール(1120)は、頂点の頂点通過順序を決定し、頂点通過順序に従って頂点を並べ替え及び/又は再配置して、隣接頂点の相関属性(例えば、シーケンス(例えば、1Dアレイ)内の隣接頂点の相関属性、2Dアレイのローカル領域内の隣接頂点の相関属性、隣接フレームの相関属性)を増大させることができる)。
【0141】
一例では、頂点並べ替えモジュール(1120)は、頂点のそれぞれの接続属性(元の接続属性とも呼ばれる)の形式でメッシュフレームの接続性情報を再編成することができる。一例では、各頂点の接続属性は、接続圧縮のためにEdgeBreakerアルゴリズムによってマークされた接続パターンを示すパターンインデックスを含むことができる。別の例では、各頂点の接続属性には、頂点に接続される辺の数を示す次数値を含めることができる。
【0142】
頂点並べ替えモジュール(1120)は、並べ替えられた頂点のメッシュ情報(1125)を出力する。並べ替えられた頂点のメッシュ情報(1125)は、並べ替えられたシーケンス(例えば、1D)内の頂点の頂点情報を含む。例えば、各頂点の頂点情報には、メッシュ内の3D空間情報(例えば、xyz座標)、2D(例えば、uv座標)へのマッピング情報、色情報(例えば、RGB値)、及び接続属性等の様々な属性を含めることができる。
【0143】
別の例では、並べ替えられた頂点のメッシュ情報(1125)は、2D画像の形式の頂点の頂点情報を含む。例えば、並べ替えられた頂点は、(例えば、ラスター走査線等に基づいて)2Dのサンプル(ピクセル)に再配置され、並べ替えられた頂点のメッシュ情報は、頂点の3D座標の2D画像、頂点のUV座標の2D画像、及び頂点接続属性の2D画像等の1つ又は複数の2D画像を形成することができる。
【0144】
1D/2Dエンコーダ(1130)は、並べ替えられた頂点のメッシュ情報(1125)をビットストリーム(1145)に符号化するように構成される。並べ替えられた頂点のメッシュ情報(1125)に並べ替えられたシーケンス(1D)内の頂点の頂点情報が含まれる場合に、1D/2Dエンコーダ(1130)は、1D符号化技術を使用して並べ替えられたシーケンス内の頂点の頂点情報を符号化することができる。並べ替えられた頂点のメッシュ情報(1125)に2D画像が含まれる場合に、1D/2Dエンコーダ(1130)は、画像符号化及び/又はビデオ符号化技術を使用して(例えば、画像コーデック又はビデオコーデックを使用して)2D画像を符号化することができる。
【0145】
頂点並べ替えモジュール(1120)は、支援情報を含む補助データ(1127)も生成する。補助データエンコーダ(1140)は、補助データ(1127)を受信し、補助データ(1127)をビットストリーム(1145)に符号化する。例えば、頂点並べ替えモジュール(1120)は、頂点をパッチ毎に並べ替えることができる。頂点並べ替えモジュール(1120)は、補助データ(1127)内の各パッチの頂点の数を示す値を提供することができる。さらに、一例では、頂点並べ替えモジュール(1120)は、パッチ毎に、境界頂点を非境界頂点の前に並べ替えることができる。頂点並べ替えモジュール(1120)は、補助データ(1127)内の各パッチの境界頂点の数を示す値を提供することができる。別の例では、頂点並べ替えモジュール(1120)は、EdgeBreakerアルゴリズムに従って頂点を通過することができ、EdgeBreakerアルゴリズムを示す信号を補助データ(1127)に提供することができる。
【0146】
図11の例では、ビットストリーム(1145)がメッシュデコーダ(1150)に提供される。メッシュデコーダ(1150)は、
図11に示されるように互いに結合した1D/2Dデコーダ(1160)、補助データデコーダ(1170)、及びメッシュ再構成モジュール(1190)を含む。一例では、1D/2Dデコーダ(1160)は、1D/2Dエンコーダ(1130)に対応し、1D/2Dエンコーダ(1130)によって符号化したビットストリーム(1145)の一部を復号化し、復号化した情報(1165)を生成することができる。一例では、復号化した情報(1165)には、復号化した接続属性マップと、復号化した3D座標マップ、復号化したuv座標マップ、及びカラーマップ等の他の復号化した属性マップとが含まれる。
【0147】
図11の例では、補助データデコーダ(1170)は、補助データエンコーダ(1140)に対応し、補助データエンコーダ(1140)によって符号化したビットストリーム(1145)の一部を復号化し、復号化した補助データ(1175)を生成することができる。
【0148】
図11の例では、復号化した情報(1165)、復号化した補助データ(1175)がメッシュ再構成モジュール(1190)に提供される。メッシュ再構成モジュール(1190)は、復号化した情報(1165)、復号化した補助データ(1175)に基づいて、再構成したメッシュ(1195)を生成する。
【0149】
頂点並べ替えモジュール(1120)、補助データエンコーダ(1140)、及び1D/2Dエンコーダ(1130)等のメッシュエンコーダ(1110)内のコンポーネントは、それぞれ様々な技術によって実装できることに留意されたい。一例では、コンポーネントは集積回路によって実装される。別の例では、コンポーネントは、1つ又は複数のプロセッサによって実行できるソフトウェアを使用して実装される。
【0150】
1D/2Dデコーダ(1160)、補助データデコーダ(1170)、及びメッシュ再構成モジュール(1190)等のメッシュデコーダ(1150)内のコンポーネントは、それぞれ様々な技術によって実装できることに留意されたい。一例では、コンポーネントは集積回路によって実装される。別の例では、コンポーネントは、1つ又は複数のプロセッサによって実行できるソフトウェアを使用して実装される。
【0151】
図12A~
図12Dは、本開示のいくつかの実施形態による、メッシュフレームを搬送するビットストリーム内のメッシュフレームの接続属性を明示的にコーディングする例を示す。
図12Aは、入力メッシュ(1205)の図を示す。入力メッシュ(1205)は、オブジェクトの表面を記述する接続された三角形を含む。各三角形は、頂点と、頂点を三角形に接続する辺とによって規定される。入力メッシュ(1205)は、
図12Aに示されるように三角形に接続される頂点0~8を含む。
【0152】
図12Bは、頂点通過順序(1215)の図を示す。頂点通過順序(1215)は、頂点0、頂点1、頂点2、頂点3、頂点4、頂点5、頂点6、頂点7、及び頂点8を順に通過(travese)する矢印付きの線によって示される。
【0153】
次に、頂点の3D(ジオメトリ)座標、頂点のUV座標、頂点の接続属性、及び頂点の他の属性等の頂点の属性を、頂点通過順序(1215)に従ってアレイに並べ替えることができる。例えば、頂点の3D座標を頂点通過順序(1215)で3D座標のアレイに並べ替えることができ、頂点のUV座標を頂点通過順序(1215)でUV座標のアレイに並べ替えることができ、頂点の接続属性を頂点通過順序(1215)で接続属性のアレイに並べ替えることができる。アレイは、1Dアレイであってもよく、又は2Dアレイであってもよい。
【0154】
いくつかの例では、頂点の属性は、ラスター走査線に従って並べ替えられ、2D画像を形成する2Dアレイに再成形される。2D画像は、画像コーデック又はビデオコーデック等の予測コーディング技術によってコーディングすることができる。メッシュフレームのシーケンスを含む動的メッシュの例では、動的メッシュの属性を並べ替えて2D画像のシーケンスを形成することができ、一例では、2D画像のシーケンスをビデオコーデックによってコーディングすることができる。
【0155】
図12Cは、頂点の属性を2Dアレイ(1245)及び2Dアレイ(1235)等の2Dアレイに再成形するために使用されるラスター走査線(1225)を示す図を示す。ラスター走査線(1225)は矢印付きの線で示される。2Dアレイ(1235)及び(1245)は、2Dマップ又は2D画像とも呼ばれ得る。一例では、頂点の接続属性は、頂点に対応する2Dアレイ(1245)内のエントリに格納され、エントリは2D画像内のピクセルであり、接続属性はピクセルの色情報である。一例では、頂点の3D座標、及びUV座標等の別の属性は、頂点に対応する2Dアレイ(1235)内のエントリに格納され、エントリは2D画像内のピクセルであり、属性はピクセルの色情報である。一例では、2Dアレイ(1235)は3D座標マップであり得る。別の例では、2Dアレイ(1235)はUV座標マップであり得る。2Dアレイ(1235)及び2Dアレイ(1245)は、メッシュフレームを搬送するためにビットストリームに符号化することができる。
【0156】
図12Cの例では、接続性情報(例えば、頂点を三角形の辺に接続する方法)は、頂点の接続属性の形式で再編成され、頂点の接続属性は、メッシュフレームを搬送するためのビットストリームに明示的に符号化される。いくつかの例では、入力メッシュ(1205)等の元のメッシュの頂点が通過され、各頂点は、頂点の接続性情報を表すことができるパターンインデックス又は次数値のいずれかでマークされる。例えば、EdgeBreakerアルゴリズムを使用して、頂点を通過するための頂点通過順序(1215)等の頂点通過順序を決定することができ、EdgeBreakerアルゴリズムは各頂点をパターンインデックスでマークすることができる。頂点の接続属性は、頂点通過順序に従って並べ替えることができ、次に、2Dアレイ(1245)等、M
orgによって示される接続性マップとも呼ばれる2Dマップに成形することができる。接続性マップ(例えば、2Dアレイ(1245))内のピクセル位置の各値は、ピクセル位置に合わせて並べ替えられ、再成形される頂点の対応するパターンインデックス又は次数値である。頂点の他の属性は、頂点通過順序に従って並べ替えられ、次に、2Dアレイ(1235)等の他の2Dマップに成形することができる。接続性マップは、画像コーデック、及びビデオコーデック等の任意の予測コーディング方法によってコーディングすることができる。いくつかの例では、接続性マップは非可逆モードでコーディングされ得る。いくつかの例では、接続性マップは可逆モードでコーディングされ得る。
【0157】
本開示の一態様によれば、デコーダ側で、デコーダは、メッシュフレームを搬送するビットストリームから、頂点の接続属性を頂点の他の属性とともに直接復号化することができる。次に、デコーダは、頂点の接続属性及び頂点の他の属性に従ってメッシュフレームを再構成することができる。
【0158】
図12Dは、再構成したメッシュフレーム(1295)を示す図を示す。一例では、再構成した頂点0’~8’は、例えば、ビットストリームからの復号化した頂点の座標から再構成することができる。次に、再構成した頂点0’~8’は、頂点の次数又は頂点のパターンインデックス等、ビットストリームからの復号化した頂点の接続属性に従って接続することができる。一例では、EdgeBreakerアルゴリズムを使用して、頂点のパターンインデックスに従って再構成したメッシュフレーム(1295)を生成することができる。別の例では、適切なアルゴリズムを使用して、頂点の次数に従って再構成したメッシュフレーム(1295)を生成する。再構成したメッシュフレーム(1295)は、元のメッシュフレーム(1205)と同じ接続性情報(同一のエッジ(辺))を有することができる。
【0159】
いくつかの実施形態では、メッシュフレームの接続差情報は、メッシュフレームを搬送するビットストリーム内で符号化され得る。接続差情報は、入力メッシュフレーム内の元の接続性情報と、接続性推論ルールに従って推論される接続性情報との間の差である。
【0160】
図13は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワーク(1300)の図を示す。フレームワーク(1300)は、メッシュエンコーダ(1310)及びメッシュデコーダ(1350)を含む。メッシュエンコーダ(1310)は入力メッシュ(1305)(動的メッシュ処理の場合はメッシュフレーム)をビットストリーム(1345)に符号化し、メッシュデコーダ(1350)はビットストリーム(1345)を復号化して再構成したメッシュ(1395)(動的メッシュ処理の場合は再構成したメッシュフレーム)を生成する。
【0161】
メッシュエンコーダ(1310)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム装置、AR装置、及びVR装置等の任意の適切な装置であり得る。メッシュデコーダ(1350)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム装置、AR装置、及びVR装置等の任意の適切な装置であり得る。ビットストリーム(1345)は、任意の適切な通信ネットワーク(図示せず)を介してメッシュエンコーダ(1310)からメッシュデコーダ(1350)に送信することができる。
【0162】
図13の例では、メッシュエンコーダ(1310)は、互いに結合した頂点並べ替えモジュール(1320)、1D/2Dエンコーダ(1330)、補助データエンコーダ(1340)、及び接続性推論モジュール(1335)を含む。頂点並べ替えモジュール(1320)は、入力メッシュ(1305)を受け取り、並べ替えを行って、接続差を含む並べ替えられた頂点のメッシュ情報(1325)を生成する。いくつかの例では、入力メッシュ(1305)は、元の順序でのメッシュの頂点の3D位置情報、ポリゴン面の形式の接続性情報、メッシュを2D(例えば、UVアトラス)にパラメータ化するマッピング情報、及び他の2D属性マップ(例えば、2Dカラーマップ)を含む。頂点並べ替えモジュール(1320)は、頂点の頂点通過順序を決定し、頂点通過順序に従って頂点を並べ替え及び/又は再配置して、隣接する頂点の相関属性(例えば、シーケンス(例えば、1Dアレイ)内の隣接する頂点の相関属性、2Dアレイのローカル領域内の隣接頂点の相関属性、隣接フレームの相関属性))を増大させることができる。
【0163】
一例では、頂点並べ替えモジュール(1320)は、頂点のそれぞれの接続属性(元の接続属性とも呼ばれる)の形式でメッシュフレームの接続性情報を再編成することができる。一例では、各頂点の接続属性は、接続圧縮のためにEdgeBreakerアルゴリズムによってマークされた接続パターンを示すパターンインデックスを含むことができる。別の例では、各頂点の接続属性には、頂点に接続される辺の数を示す次数値を含めることができる。
【0164】
頂点並べ替えモジュール(1320)は、並べ替えられた頂点のメッシュ情報(1325)を出力する。並べ替えられた頂点のメッシュ情報(1325)は、並べ替えられたシーケンス(例えば、1D)内の頂点の頂点情報を含む。例えば、各頂点の頂点情報には、メッシュ内の3D空間情報(例えば、xyz座標)、2D(例えば、uv座標)へのマッピング情報、色情報(例えば、RGB値)、元の接続属性と接続性推論モジュール(1335)によって提供される推論される接続属性との間の接続属性差(接続差とも呼ばれる)等の様々な属性を含めることができる。
【0165】
別の例では、並べ替えられた頂点のメッシュ情報(1325)は、2D画像の形式の頂点の頂点情報を含む。例えば、並べ替えられた頂点は、(例えば、ラスター走査線等に基づいて)2Dのサンプル(ピクセル)に再配置され、並べ替えられた頂点のメッシュ情報は、頂点の3D座標の2D画像、頂点のUV座標の2D画像、及び頂点の接続属性差の2D画像等の1つ又は複数の2D画像を形成することができる。
【0166】
1D/2Dエンコーダ(1330)は、並べ替えられた頂点のメッシュ情報(1325)をビットストリーム(1345)に符号化するように構成される。並べ替えられた頂点のメッシュ情報(1325)が並べ替えられたシーケンス(1D)内の頂点の頂点情報を含む場合に、1D/2Dエンコーダ(1330)は、1D符号化技術を使用して並べ替えられたシーケンス内の頂点の頂点情報を符号化することができる。並べ替えられた頂点のメッシュ情報(1325)に2D画像が含まれる場合に、1D/2Dエンコーダ(1330)は、画像符号化及び/又はビデオ符号化技術を使用して(例えば、画像コーデック又はビデオコーデックを使用して)2D画像を符号化することができる。
【0167】
いくつかの例では、接続性推論モジュール(1335)は、元のメッシュ入力(1305)内の頂点の座標に基づいて、頂点の推論される接続属性(1336)を生成することができる。いくつかの例では、接続性推論モジュール(1335)は、頂点の符号化した座標から頂点の推論される接続属性(1336)を生成することができる。例えば、接続性推論モジュール(1335)は、1D/2Dエンコーダ(1330)から頂点の符号化した座標(1331)を受信し、頂点の符号化した座標を復号化して、復号化した頂点の座標(例えば、復号化した3D座標、復号化したUV座標)を生成し、接続性推論ルールに基づいて復号化した頂点の座標に従って、頂点の推論される接続属性(1336)を生成することができる。接続性推論モジュール(1335)は、推論される接続属性(1336)を頂点並べ替えモジュール(1320)に提供することができる。頂点並べ替えモジュール(1320)は、頂点の元の接続属性と頂点の推論される接続属性(1336)との間の頂点の接続差を決定することができる。頂点並べ替えモジュール(1320)は、頂点通過順序に従って頂点の接続差を並べ替えて、接続差の1Dアレイ又は2Dアレイを形成することができる。接続差の1Dアレイ又は2Dアレイは、ビットストリーム(1345)に符号化するために1D/2Dエンコーダに提供される。
【0168】
頂点並べ替えモジュール(1320)は、支援情報を含む補助データ(1327)も生成する。補助データエンコーダ(1340)は、補助データ(1327)を受信し、補助データ(1327)をビットストリーム(1345)に符号化する。例えば、頂点並べ替えモジュール(1320)は、パッチ毎に頂点を並べ替えることができる。頂点並べ替えモジュール(1320)は、補助データ(1327)内の各パッチ内の頂点の数を示す値を提供することができる。さらに、一例では、頂点並べ替えモジュール(1320)は、パッチ毎に、境界頂点を非境界頂点の前に並べ替えることができる。頂点並べ替えモジュール(1320)は、補助データ(1327)内の各パッチ内の境界頂点の数を示す値を提供することができる。別の例では、頂点並べ替えモジュール(1320)は、EdgeBreakerアルゴリズムに従って頂点を通過することができ、補助データ(1327)においてEdgeBreakerアルゴリズムを示す信号を提供することができる。別の例では、複数の接続性推論ルールを使用して接続属性を推論することができ、複数の接続性推論ルールからの特定の接続性推論ルールの選択を示す信号を補助データ(1327)に含めることができる。
【0169】
図13の例では、ビットストリーム(1345)がメッシュデコーダ(1350)に提供される。メッシュデコーダ(1350)は、
図13に示されるように互いに結合した1D/2Dデコーダ(1360)、補助データデコーダ(1370)、接続性決定モジュール(1380)、及びメッシュ再構成モジュール(1390)を含む。一例では、1D/2Dデコーダ(1360)は、1D/2Dエンコーダ(1330)に対応し、1D/2Dエンコーダ(1330)によって符号化したビットストリーム(1345)の一部を復号化して、復号化した情報(1365)を生成することができる。復号化した情報(1365)には、復号化した3D座標マップ、及び復号化したUV座標マップ等の復号化した座標情報、復号化した接続差(例えば、復号化した接続差マップ)、他の復号化した属性情報(例えば、復号化したカラーマップ等)が含まれる。
【0170】
図13の例では、補助データデコーダ(1370)は、補助データエンコーダ(1340)に対応し、補助データエンコーダ(1340)によって符号化したビットストリーム(1345)の一部を復号化して、復号化した補助データ(1375)を生成することができる。
【0171】
図13の例では、接続性決定モジュール(1380)は、復号化した頂点の座標(例えば、復号化した3D座標、及び復号化したuv座標等)及び復号化した頂点の接続差等の復号化した情報(1365)を受信し、復元した接続属性(1385)を生成する。一例では、接続性決定モジュール(1380)は、接続性推論モジュール(1381)を含む。接続性推論モジュール(1381)は、接続性推論モジュール(1335)と同様に動作し、接続性推論ルールに基づいて復号化した頂点の座標に従って推論される接続属性を生成することができる。一例では、同じ接続性推論ルールが接続性推論モジュール(1335)及び接続性推論モジュール(1381)で使用されることに留意されたい。接続性決定モジュール(1380)は、接続性推論モジュール(1381)から出力された頂点の推論される接続属性を、復号化した頂点の接続差と組み合わせて、頂点の復元される接続属性(1385)を生成する。
【0172】
図13の例では、復号化した情報(1365)、復号化した補助データ(1375)、及び頂点の復元される接続属性(1385)が、メッシュ再構成モジュール(1390)に提供される。メッシュ再構成モジュール(1390)は、復号化した情報(1365)、復号化した補助データ(1375)、及び頂点の復元される接続属性(1385)に基づいて、再構成したメッシュ(1395)を生成する。
【0173】
頂点並べ替えモジュール(1320)、補助データエンコーダ(1340)、1D/2Dエンコーダ(1330)、及び接続性推論モジュール(1335)等のメッシュエンコーダ(1310)内のコンポーネントは、それぞれ様々な技術によって実装することができる。一例では、コンポーネントは集積回路によって実装される。別の例では、コンポーネントは、1つ又は複数のプロセッサによって実行できるソフトウェアを使用して実装される。
【0174】
1D/2Dデコーダ(1360)、補助データデコーダ(1370)、接続性決定モジュール(1380)、及びメッシュ再構成モジュール(1390)等のメッシュデコーダ(1350)内のコンポーネントは、それぞれ様々な技術によって実装することができる。一例では、コンポーネントは集積回路によって実装される。別の例では、コンポーネントは、1つ又は複数のプロセッサによって実行できるソフトウェアを使用して実装される。
【0175】
図14A~
図14Fは、いくつかの実施形態による、メッシュフレーム内の頂点の接続差を、メッシュフレームを搬送するビットストリームにコーディングする例を示す。
図14Aは、入力メッシュ(1405)の図を示す。入力メッシュ(1405)は、オブジェクトの表面を記述する接続された三角形を含む。各三角形は、頂点と、頂点を三角形に接続する辺とによって規定される。入力メッシュ(1405)は、
図14Aに示されるように三角形に接続される頂点0~8を含む。
【0176】
図14Bは、いくつかの例における頂点通過順序(1415)の図を示す。頂点通過順序(1415)は、頂点0、頂点1、頂点2、頂点3、頂点4、頂点5、頂点6、頂点7、及び頂点8を順に通過する矢印付きの線によって示される。
【0177】
次に、頂点の3D(ジオメトリ)座標、頂点のUV座標、及び頂点の他の属性等の頂点の属性を、頂点通過順序(1415)に従ってアレイに並べ替えることができる。例えば、頂点の3D座標を頂点通過順序(1415)で3D座標のアレイに並べ替えることができ、頂点のUV座標を頂点通過順序(1415)でUV座標のアレイに並べ替えることができる。アレイは、1Dアレイであってもよく、又は2Dアレイであってもよい。
【0178】
いくつかの例では、元のメッシュフレーム(1405)の接続性情報(例えば、頂点を三角形の辺に接続する方法)は、頂点の元の接続属性の形式で再編成される。いくつかの例では、入力メッシュ(1405)等の元のメッシュの頂点が通過され、各頂点は、頂点の接続属性を表すことができるパターンインデックス又は次数値のいずれかでマークされる。例えば、EdgeBreakerアルゴリズムを使用して、頂点を通過するための頂点通過順序(1415)等の頂点通過順序を決定することができ、EdgeBreakerアルゴリズムは各頂点をパターンインデックスでマークすることができる。頂点の接続属性は、頂点通過順序に従って並べ替えることができ、次に、Morgによって示される元の接続性マップとも呼ばれる2Dマップに成形することができる。接続性マップ内のピクセル位置の各値は、そのピクセル位置に合わせて並べ替えられ、再成形される頂点の対応するパターンインデックス又は次数値である。
【0179】
エンコーダ側では、いくつかの例では、エンコーダは、接続性推論ルールに従って推論される接続属性を生成する。
【0180】
図14Cは、例えば接続性推論ルールによる頂点の位置に基づいて、頂点1~8について推論される接続性(1420)を示す。推論される接続性(1420)は、頂点の推論される接続属性の形式であり得る。いくつかの例では、頂点の推論される接続属性は、頂点通過順序に従って並べ替えられ、次に、M
inferによって示される推論される接続性マップとも呼ばれる2Dマップに成形される。推論される接続性マップ内のピクセル位置の各値は、ピクセル位置に合わせて並べ替えられ、再成形される頂点の、対応する推論パターンインデックス又は推論される次数値である。
【0181】
本開示の一態様によれば、元の接続性マップMorgと推論される接続性マップMinferとの間の差を計算して、例えばMdiff=Morg-Minferを使用して、Mdiffによって示される接続差マップを決定することができる。接続差マップMdiffにおけるピクセル位置の各値は、元の接続性マップ及び推論される接続性マップにおける同じピクセル位置におけるピクセル値同士の間の差分値である。
【0182】
いくつかの例では、頂点の属性は、ラスター走査線に従って並べ替えられ、2D画像を形成する2Dアレイに再成形される。2D画像は、画像コーデック又はビデオコーデック等の予測コーディング技術によってコーディングすることができる。メッシュフレームのシーケンスを含む動的メッシュの例では、動的メッシュの属性を並べ替えて、2D画像のシーケンスを形成することができ、一例では、2D画像のシーケンスをビデオコーデックによってコーディングすることができる。
【0183】
図14Dは、頂点の属性を2Dアレイ(1444)及び2Dアレイ(1435)等の2Dアレイに再成形するために使用されるラスター走査線(1425)を示す図を示す。ラスター走査線(1425)は矢印付きの線で示される。2Dアレイ(1435)及び(1444)は、2Dマップ又は2D画像とも呼ばれる。一例では、2Dアレイ(1444)は接続差マップM
diffである。頂点の接続差は、頂点に対応する2Dアレイ(1444)のエントリに格納され、エントリは2D画像内のピクセルであり、接続差はピクセルの色情報である。一例では、頂点の3D座標、及びUV座標等の別の属性は、頂点に対応する2Dアレイ(1435)内のエントリに格納され、エントリは2D画像内のピクセルであり、属性はピクセルの色情報である。一例では、2Dアレイ(1435)は3D座標マップであり得る。別の例では、2Dアレイ(1435)はUV座標マップであり得る。2Dアレイ(1435)及び2Dアレイ(1444)は、メッシュフレームを搬送するためにビットストリームに符号化することができる。
【0184】
図14Eは、いくつかの例における再構成した頂点0’~8’を示す図を示す。例えば、ビットストリームから座標を復号化することができ、復号化した座標に従って再構成した頂点0’~8’を生成することができる。
【0185】
いくつかの例では、再構成した頂点0’~8’を接続する辺が接続性推論ルールに従って推論される。接続性推論ルールは、デコーダ側で復号化した3D座標(xyz座標)及び/又はUV座標(uv座標)から接続性を推論することができる。本開示の一態様によれば、同じ接続性推論ルールがエンコーダ側及びデコーダ側で使用される。いくつかの例では、接続性推論ルールは、エンコーダ側で頂点の推論される接続属性(1420)を生成するために使用される。デコーダ側では、同じ接続性推論ルールを使用して、
図14Eの再構成した頂点0’~8’を接続し、そして、例えば、M’
inferで示される推論される接続性マップの形式で、頂点の推論される接続属性を生成する。推論される接続性マップM’
inferは、
図14Cの説明に従って得られた推論される接続性マップM
inferと同一であり得る。
【0186】
デコーダはまた、ビットストリームからの頂点の接続差を、例えばM’diffによって示される復号化した接続差マップの形式で復号化する。一例では、復号化した接続差マップM’diffと推論される接続性マップM’inferを加算して、頂点の復元される接続属性を含む復元される接続性マップMrecoverを取得することができる。復元される接続性マップMrecoverは、元の入力メッシュ(1405)の接続性マップMorgと同一とすることができ、メッシュを再構成するために使用することができる。
【0187】
図14Fは、再構成したメッシュ(1495)を示す図を示す。再構成したメッシュは再構成した頂点0’~8’を含み、再構成した頂点0’~8’は復元される接続性マップM
recoverに従って接続される。いくつかの例では、再構成したメッシュ(1495)は、同じ接続性を有する元の入力メッシュ(1405)と同一であり得る。
【0188】
本開示の一態様によれば、エンコーダ側で、エンコーダは、異なる接続性推論ルール(異なる接続性推論方法とも呼ばれる)を使用して、複数の接続性マップを推論することができる。次に、元の接続性マップと比較して最良の推論される接続性マップ(例えば、誤差が最小)を有する接続性推論ルールがエンコーダによって選択され、その選択を示すインデックスがビットストリームで信号通知され、デコーダに、どの接続性推論ルールが選択されているかを知らせる。
【0189】
本開示のいくつかの態様は、圧縮したメッシュを搬送するビットストリームにおいて、メッシュの元の接続性情報とメッシュの推論される接続性情報との間の接続差等、メッシュの接続性情報(メッシュフレームとも呼ばれる)をコーディングするための技術を提供する。デコーダ側では、デコーダは、接続差等の、信号通知された接続性情報をビットストリームから復号化することができる。デコーダは、エンコーダ及びデコーダが共有する合意したルールに従って推論される接続性情報を生成し、接続差を推論される接続性情報と組み合わせることができる。受信した接続性情報及び推論される接続性情報を使用することで、頂点同士の間の最終的な接続性情報を復元することができる。
【0190】
本開示のいくつかの態様によれば、接続差等の接続性情報は、頂点に関連付けて表現することができ、又は辺に関連付けて表現することもできる。
【0191】
本開示の一態様によれば、接続差等の接続性情報は、各頂点の接続される頂点をリスト化することによって表すことができる。
【0192】
いくつかの実施形態では、エンコーダ側とデコーダ側との両方で、頂点のセット全体が順序付けされ、各頂点に一意のインデックス番号が割り当てられる。エンコーダ側では、エンコーダは、元の接続性と推論される接続性(導出接続性とも呼ばれる)とを比較することができ、元の接続性と推論される接続性との間で接続性が異なる頂点のインデックスが信号通知され、その後に差分情報が送信され、この差分情報を使用して、頂点の推論される接続性情報を修正することができる。
【0193】
いくつかの例では、各頂点Vi(i=1、2、・・・)について、頂点Viが接続する頂点は、Vi(1)、Vi(2)、・・・、Vi(Ci)と呼ばれ、ここで、Ciは、頂点Viが接続する頂点の数である。頂点が異なると、Ciも異なる場合がある。一例では、各頂点が有する接続の数も信号通知することができる。
【0194】
図15は、いくつかの例における頂点に関連付けられた接続差をコーディングするためのプロセス(1500)の概要を示すフローチャートを示す。一例では、プロセス(1500)はエンコーダ側で実行され、頂点毎の接続差を信号通知する。プロセス(1500)は(S1501)で開始され、(S1510)に進む。
【0195】
(S1510)において、接続性修正を必要とする頂点の数が信号通知される。接続性修正を必要とする頂点の数はNCで表すことができる。次に、接続差のコーディングは、接続性修正が必要な頂点毎にループ処理によって実行される。各ループ処理を使用して、1つの頂点の接続差をコーディングすることができる。
【0196】
(S1520)において、ループが開始される。各ループには、(S1530)から(S1550)までの処理が含まれる。
【0197】
(S1530)において、現在のループ内の現在の頂点について、修正すべき接続性情報を有する現在の頂点のインデックスが信号通知される。
【0198】
(S1540)において、現在の頂点が行う必要がある修正の数を示す値が信号通知される。一例では、接続性修正を必要とする頂点の修正数は正であるため、信号通知する値は修正数から1を引いたものになり得る。
【0199】
(S1550)で、現在の頂点の接続差が信号通知される。いくつかの例では、接続差には、現在の頂点を(元の接続性で)接続すべきであるが、推論される接続性では接続されない頂点のインデックスの第1セットと、現在の頂点を(元の接続ではなく)接続すべきであるが、推論される接続性で接続される頂点のインデックスの第2セットとが含まれ得る場合がある。
【0200】
例えば、推論される接続性に基づいて、現在の頂点Vxはm個の異なる頂点Vi1、Vi2、Vi3、・・・、Vimに接続する(mは正の整数)。元の接続性によれば、現在の頂点Vxは頂点Vi2及びVi3に接続すべきではなく、現在の頂点VxはさらにVy(推論される接続性ではない)に接続する必要がある。頂点のインデックスの第1セットにはVyが含まれ、頂点のインデックスの第2セットにはVi2及びVi3が含まれる。こうして、一例では、現在の頂点が行うべき接続性修正の数は3である(例えば、一例では2が信号通知される)。さらに、信号通知される頂点のインデックスは、Vi2、Vi3、Vyとなり得る。
【0201】
いくつかの例では、デコーダ側で、頂点Vxの接続性を導出した後に、Vx-Vi2の第1の接続及びVx-Vi3の第2の接続を削除して、Vx及びVyの追加の接続を頂点Vxの接続性に追加する。
【0202】
(S1560)において、ループの数(ループ回数)が、修正を必要とする頂点の数と等しい場合には、プロセスは、(S1599)に進み、終了する。そうでない場合には、プロセスは(S1530)に戻り、次のループに進む。
【0203】
辺は2つの頂点を一緒に接続することによって構築されるため、修正が辺に関連する場合(辺の追加又は辺の削除)、修正は2つの頂点のうちの一方で実行できることに留意されたい。例えば、修正を(Vyに接続するために)Vxに対して行う場合に、(Vxに接続するために)Vyに対する対応する修正は必要ない。
【0204】
いくつかの例では、修正を必要とする頂点のインデックスを予測的にコーディングすることができる。例えば、(S1540)において、複数の頂点を信号通知する必要がある場合があり、第1の頂点は第1のインデックスを有しており、第2の頂点は第2のインデックスを有する。一例では、頂点のインデックスを信号通知するために、第1の頂点の第1のインデックスを信号通知した後に、第2のインデックスの絶対値を信号通知する代わりに、第2のインデックスと第1のインデックスとの差をコーディングすることができる。
【0205】
いくつかの実施形態では、頂点毎の方法(一連の頂点に対して一度に1つの頂点)で頂点の推論される接続性を導出する特定のルールが、エンコーダ側とデコーダ側との両方で使用される。現在の頂点Viの接続される頂点を導出した後に、フラグを使用して修正を行う必要があるかどうかを示すことができる。フラグがはい(行うべき修正が存在する)を示す場合に、修正する必要がある1つ又は複数の頂点のインデックスを信号通知することができる。現在の頂点Viの推論される接続性における既存の接続される頂点について、信号通知されるということは、信号通知された頂点への現在の頂点Viの接続を削除すべきであることを意味する。現在の頂点Viの推論される接続性における接続されていない頂点について、信号通知されるということは、信号通知される頂点の現在の頂点Viへの接続を、現在の頂点Viに関連付けられた接続性情報に追加すべきであることを意味する。
【0206】
いくつかの例では、四辺形は2対の対角頂点を含む。2対の対角頂点の一方を接続して、四角形を1対の三角形に分割することができるが、両方の対の対角頂点を接続することはできない。1対の対角頂点が接続される場合に、他方の対の対角頂点は接続すべきでない。従って、四角形内の1対の対角頂点の接続を修正すると、接続されていない他の1対の対角頂点を接続する必要があると推論でき、その逆も同様である。
【0207】
例えば、
図14Cでは、頂点5、6、7、及び8が四角形を形成する。
図14Cでは、推論される接続性には、四角形を2つの三角形に分割する頂点5及び頂点7の接続が含まれる。現在の頂点5について、接続差には頂点5及び頂点7の接続が含まれており、頂点7のインデックスは、行うべき修正を示すために信号通知される。現在の頂点5に対する頂点7のインデックスに応じて、頂点5及び頂点7の接続を削除することができる。さらに、頂点6及び頂点8の接続を信号通知なしで同時に追加することもできる。
【0208】
本開示の別の態様によれば、接続差は辺(エッジ)に基づいて信号通知することができる。例えば、推論される接続性に辺が含まれていない場合に、辺の頂点のペアを通知することで、頂点のペアを接続して辺を形成するための修正を示すことができる。一方、推論される接続性に辺が含まれる場合に、辺の頂点のペアを信号通知することで、辺を削除して2対の頂点を切断するという修正を示すことができる。
【0209】
例えば、
図14Cでは、頂点5、6、7、及び8が四角形を形成する。
図14Cでは、推論される接続性には、四角形を2つの三角形に分割する頂点5及び頂点7の接続によって形成される辺が含まれる。頂点5及び頂点7によって形成される辺は、元の接続性情報には存在しない。一例では、接続差には、現在接続されている頂点5及び頂点7のペアの、修正を行うように指示する信号通知が含まれ得る。デコーダ側では、現在接続されている頂点5及び頂点7のペアの信号通知に応答して、頂点5及び頂点7の辺を削除し、頂点6及び頂点8の別の辺が、他の辺に信号通知することなく同時に追加される。別の例では、接続差には、現在接続されていない頂点6及び頂点8のペアの、修正を行うように指示する信号通知が含まれ得る。デコーダ側では、現在接続されていない頂点6及び頂点8のペアの信号通知に応答して、頂点6及び頂点8の辺が追加され、頂点5及び頂点7の別の辺が、他の辺に信号通知することなく同時に削除される。
【0210】
辺の頂点のインデックスの信号通知は、予測的な方法でコーディングできることに留意されたい。例えば、辺が第1の頂点及び第2の頂点によって形成され、第1の頂点は第1のインデックスを有しており、第2の頂点は第2のインデックスを有する。一例では、第1のインデックス(例えば、第1のインデックス及び第2のインデックスのうちの小さい方)が信号通知され、第2のインデックスと第1のインデックスとの差が、辺の2つの頂点を示すために信号通知される。
【0211】
本開示の別の態様によれば、接続差等の接続性情報は、頂点の次数値に基づいて表すことができる。
【0212】
いくつかの例では、メッシュ内の全ての頂点についての次数値が与えられると、その与えられた次数値に基づいて固有の接続性マップを導出することができる。従って、全ての頂点の正しい次数(エンコーダ側の元のメッシュと同じ次数値の頂点)がデコーダ側で利用できる場合に、推論される接続性は、元のメッシュの元の接続性と同じであると導き出すことができる。
【0213】
いくつかの例では、エンコーダ側とデコーダ側との両方で、頂点のセット全体が順序付けされ、一意のインデックス番号が割り当てられる。エンコーダ側では、(DAと呼ばれる所与の接続性導出アルゴリズムを使用して)元の接続性と推論される接続性との間で異なる次数値を有する頂点のインデックスが信号通知され、その後に次数の差が信号通知され、この次数の差を使用して、頂点の次数を修正することができる。デコーダ側では、接続性導出アルゴリズムに基づいて(DAと呼ばれるエンコーダ側と同じ接続性導出アルゴリズムを使用して)、各頂点は推論される次数値を有することができる。信号通知された次数の差に従って頂点の全ての次数値を修正して、元のメッシュと同じになると、接続性情報を正しく導出することができる。
【0214】
本開示の別の態様によれば、接続差等の接続性情報は、辺(エッジ)毎に信号通知することができる。いくつかの例では、メッシュの推論される接続性における辺毎に、その辺が元のメッシュに存在するか否かを示すフラグを信号通知することができる。一例では、推論される接続性の辺を適切に順序付けることができる。例えば、各辺は、辺の2つの頂点のうちの低いインデックスを有する第1の頂点に基づいて順序付けされ、次に辺の2つの頂点のうちのより高いインデックスを有する第2の頂点に基づいて順序付けされる。推論される接続性の辺のフラグは、順序付けされた辺に従って編成されてから信号通知できるため、辺の頂点のインデックスを信号通知する必要はない。デコーダ側では、推論される接続性の辺のフラグが「はい(yes)」を示す場合に、デコーダは辺を保持することができる。そうでない場合に、辺を削除することができる。いくつかの例では、フラグは、コーディングしたビットストリームからの何らかのコンテキスト情報を用いて算術コーディングによって信号通知することができる。
【0215】
さらに、推論される接続性にはないが元のメッシュにある各辺について、デコーダが辺を復元できるように、辺は、辺の2つの頂点インデックスによって信号通知することができる。2つの頂点インデックスは、予測コーディングによっても信号通知することができる。例えば、2つの頂点インデックスのうち小さい方のインデックスが信号通知され、次に2つの頂点インデックスの間の差が信号通知される。
【0216】
図16は、本開示の一実施形態によるプロセス(1600)の概要を示すフローチャートを示す。プロセス(1600)は、メッシュの符号化プロセス中に使用することができる。様々な実施形態では、プロセス(1600)は処理回路によって実行される。いくつかの実施形態では、プロセス(1600)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するときに、処理回路はプロセス(1600)を実行する。プロセスは(S1601)から開始され、(S1610)に進む。
【0217】
(S1610)において、3Dメッシュ内の頂点の推論される接続性が、頂点の座標(例えば、3D座標及び/又はUV座標)に従って導出される。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺を含む元の接続性とによって規定される。推論される接続性には、頂点を接続する推論される辺が含まれる。
【0218】
(S1620)において、元の接続性と推論される接続性との間の接続差が決定される。接続差は、頂点のサブセットに関連付けられる。
【0219】
(S1630)において、頂点のサブセットに関連付けられた接続差は、3Dメッシュを搬送するためのビットストリームに符号化される。
【0220】
いくつかの例では、接続差を符号化するために、頂点のサブセット内の頂点の数を示す第1の値がビットストリームに符号化される。頂点のサブセット内の第1の頂点に関連付けられた接続差を符号化するために、第1の頂点の第1のインデックスがビットストリームに符号化され、第1の頂点に関連付けられた接続性修正の数を示す第2の値がビットストリームに符号化される。さらに、第1の頂点に関連付けられた接続性修正にそれぞれ対応する頂点のセットを示す一連のインデックスがビットストリームに符号化される。
【0221】
いくつかの例では、第1の頂点に関連付けられた一連のインデックスを符号化するために、第2の頂点の第2のインデックスに対応する第1の信号がビットストリーム内で符号化され、第2のインデックスと第3の頂点の第3のインデックスとの間の差に対応する第2の信号が、ビットストリームに符号化される。
【0222】
いくつかの例では、推論される接続性は頂点毎に生成される。一例では、第1の頂点に関して、推論される接続性において第1の頂点と接続される第1の頂点セットが導出される。次に、第1の頂点に関連付けられたフラグがビットストリームに符号化される。フラグは、1つ又は複数の接続性修正が第1の頂点に関連付けられているかどうかを示す。第1の頂点に関連付けられた1つ又は複数の接続性修正を示すフラグに応答して、一連のインデックスがビットストリームに符号化される。一連のインデックスは、第1の頂点に関連付けられた1つ又は複数の接続性修正にそれぞれ対応する第2の頂点セットを示す。
【0223】
いくつかの例では、頂点のサブセット内の第1の頂点の接続差を符号化するために、第1の頂点のインデックスがビットストリームに符号化され、元の接続性における第1の頂点の第1の次数と推論される接続性における第1の頂点の第2の次数との間の次数の差が、ビットストリームに符号化される。
【0224】
本開示の一態様によれば、接続性修正は一般に2つの頂点での接続性を変更するが、2つの頂点のうちの一方で行うことができる。一例では、接続性修正の場合に、2つの頂点のうちの一方が接続性修正を信号通知するために選択される。
【0225】
本開示の別の態様によれば、四角形の第1の対角頂点ペアの接続性修正は、四角形の第2の対角頂点ペアの別の接続性修正も示す。こうして、一例では、四角形の接続性修正の場合に、2対の対角頂点の2つの接続性修正のうちの一方が選択され、ビットストリームで信号通知される。
【0226】
次に、プロセスは、(S1699)に進み、終了する。
【0227】
プロセス(1600)は、適切に適応させることができる。プロセス(1600)のステップは変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0228】
図17は、本開示の一実施形態によるプロセス(1700)の概要を示すフローチャートを示す。プロセス(1700)は、メッシュの符号化プロセス中に使用することができる。様々な実施形態では、プロセス(1700)は処理回路によって実行される。いくつかの実施形態では、プロセス(1700)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するときに、処理回路はプロセス(1700)を実行する。プロセスは、(S1701)から開始され、(S1710)に進む。
【0229】
(S1710)において、3Dメッシュ内の頂点の推論される接続性が、頂点の座標(3D座標及び/又はUV座標)に従って導出される。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺を含む元の接続性とによって規定される。推論される接続性には、頂点を接続する推論される辺が含まれる。
【0230】
(S1720)において、元の接続性と推論される接続性との間の接続差が決定される。接続差は、元の辺及び推論される辺のうちの1つ又は複数の辺に関連付けられる。
【0231】
(S1730)において、1つ又は複数の辺に関連付けられた接続差は、3Dメッシュを搬送するためのビットストリームに符号化される。
【0232】
いくつかの例では、元の辺及び推論される辺における1つ又は複数の辺のうちの第1の辺を示すために、第1の辺の第1の頂点及び第2の頂点を示す信号がビットストリーム内で符号化される。一例では、第1の頂点の第1のインデックスに対応する第1の値が符号化され、第1のインデックスと第2の頂点の第2のインデックスとの間の差に対応する第2の値がビットストリームに符号化される。
【0233】
いくつかの例では、推論される辺にそれぞれ関連付けられたフラグがビットストリームに符号化される。推論される辺に関連付けられたフラグは、推論される辺が元の辺に存在するかどうかを示す。いくつかの例では、推論される辺を適切に順序付けることができ、推論される辺の順序に従ってフラグを符号化することができる。
【0234】
本開示の別の態様によれば、四角形における第1の対角頂点ペアの接続性修正は、四角形における第2の対角頂点ペアの別の接続性修正も示す。こうして、一例では、四角形の接続性修正の場合に、2対の対角頂点の2つの接続性修正のうちの一方が選択され、ビットストリームで信号通知される。
【0235】
次に、プロセスは、(S1799)に進み、終了する。
【0236】
プロセス(1700)は、適切に適応させることができる。プロセス(1700)のステップは変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0237】
図18は、本開示の一実施形態によるプロセス(1800)の概要を示すフローチャートを示す。プロセス(1800)は、メッシュの復号化プロセス中に使用することができる。様々な実施形態では、プロセス(1800)は処理回路によって実行される。いくつかの実施形態では、プロセス(1800)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するときに、処理回路はプロセス(1800)を実行する。プロセスは、(S1801)から開始され、(S1810)に進む。
【0238】
(S1810)において、3Dメッシュを搬送するビットストリームから、3Dメッシュ内の頂点の座標(例えば、3D座標及び/又はUV座標)が復号化される。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺を含む元の接続性とによって規定される。
【0239】
(S1820)において、頂点を接続する推論される辺を含む推論される接続性が、頂点の座標に従って導出される。
【0240】
(S1830)において、頂点のサブセットに関連付けられた接続差がビットストリームから復号化される。
【0241】
(S1840)において、推論される接続性及び接続差に従って、復元される接続性が決定される。
【0242】
(S1850)において、3Dメッシュは、復元される接続性に従って再構成される。
【0243】
いくつかの例では、接続差を復号化するために、頂点のサブセット内の頂点の数を示す第1の値がビットストリームから復号化される。次に、頂点のサブセット内の頂点の数に従って復号化のループが実行され、復号化の各ループは、頂点のサブセット内の頂点に関連付けられた接続差を復号化するためのものである。
【0244】
いくつかの例では、復号化のループにおいて、頂点のサブセット内の第1の頂点の第1のインデックスが復号化される。次に、第1の頂点に関連付けられた接続性修正の数を示す第2の値がビットストリームから復号化される。さらに、接続性修正にそれぞれ対応する頂点のセットを示す一連のインデックスがビットストリームから復号化される。
【0245】
いくつかの例では、復元される接続性を決定するために、接続性修正に対応する第2の頂点の第2のインデックスが決定され、推論される辺における第1の頂点及び第2の頂点を接続する第1の辺が存在することに応答して、第1の辺は復元される接続性から削除される。一例では、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、四角形の第2の対角頂点ペアを接続する第2の辺が復元される接続性に追加される。いくつかの例では、推論される辺における第1の頂点及び第2の頂点を接続する第1の辺が存在しないことに応答して、第1の頂点及び第2の頂点を接続する第1の辺が、復元される接続性に追加される。第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、四角形の第2の対角頂点ペアを接続する第2の辺が、復元される接続性から削除される。
【0246】
いくつかの例では、接続性修正のための頂点のセットを示す一連のインデックスを復号化するために、第2の頂点の第2のインデックスに対応する第1の信号が復号化され、第2のインデックスと第3の頂点の第3のインデックスとの間の差に対応する第2の信号が復号化される。
【0247】
いくつかの例では、推論される接続性を導出し、接続差を復号化するために、第1の頂点に関して、推論される接続性において第1の頂点と接続される第1の頂点セットが導出される。次に、第1の頂点に関連付けられたフラグがビットストリームから導出される。フラグは、1つ又は複数の接続性修正が第1の頂点に関連付けられているかどうかを示す。第1の頂点に関連付けられた1つ又は複数の接続性修正を示すフラグに応答して、第1の頂点に関連付けられた1つ又は複数の接続性修正にそれぞれ対応する第2の頂点セットを示す一連のインデックスがビットストリームから復号化される。
【0248】
いくつかの例では、接続差を復号化するために、頂点のサブセット内の第1の頂点のインデックスが復号化され、次数の差がビットストリームから復号化される。次に、第1の頂点の復元される次数は、第2の次数と次数の差とを加算することによって決定される。
【0249】
次に、プロセスは、(S1899)に進み、終了する。
【0250】
プロセス(1800)は、適切に適応させることができる。プロセス(1800)のステップは変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0251】
図19は、本開示の一実施形態によるプロセス(1900)の概要を示すフローチャートを示す。プロセス(1900)は、メッシュの復号化プロセス中に使用することができる。様々な実施形態では、プロセス(1900)は処理回路によって実行される。いくつかの実施形態では、プロセス(1900)はソフトウェア命令で実装され、こうして、処理回路がソフトウェア命令を実行するときに、処理回路はプロセス(1900)を実行する。プロセスは、(S1901)から開始され、(S1910)に進む。
【0252】
(S1910)において、3次元(3D)メッシュを搬送するビットストリームから、3Dメッシュ内の頂点の座標(例えば、3D座標及び/又はUV座標)が復号化される。3Dメッシュはオブジェクトの表面をポリゴンで表現し、ポリゴンは、頂点と、頂点を接続する元の辺の元の接続性とによって規定される。
【0253】
(S1920)において、頂点を接続する推論される辺を含む推論される接続性が、頂点の座標に従って導出される。
【0254】
(S1930)において、ビットストリームから接続差が復号化され、接続差は、元の辺及び推論される辺のうちの1つ又は複数の辺に関連付けられる。
【0255】
(S1940)において、推論される接続性及び接続差に従って、復元される接続性が決定される。
【0256】
(S1950)において、3Dメッシュは、復元される接続性に従って再構成される。
【0257】
いくつかの例では、接続差を復号化するために、第1の辺の第1の頂点及び第2の頂点を示す信号がビットストリームから復号化される。一例では、ビットストリームから、第1の頂点の第1のインデックスに対応する第1の値が復号化され、第1のインデックスと第2の頂点の第2のインデックスとの間の差に対応する第2の値が復号化される。
【0258】
いくつかの例では、復元される接続性を決定するために、第2の辺における第1の頂点及び第2の頂点を接続する第1の辺が存在することに応答して、第1の辺が復元される接続性から除去される。一例では、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、四角形の第2の対角頂点ペアを接続する第2の辺が、復元される接続性に追加される。
【0259】
いくつかの例では、復元される接続性を決定するために、推論される辺において第1の頂点及び第2の頂点を接続する第1の辺が存在しないことに応答して、第1の頂点及び第2の頂点を接続する第1の辺が、復元される接続性に追加される。一例では、第1の頂点及び第2の頂点が四角形の第1の対角頂点ペアであることに応答して、四角形の第2の対角頂点ペアを接続する第2の辺が、復元される接続性から除去される。
【0260】
いくつかの例では、接続差を復号化するために、推論される辺にそれぞれ関連付けられたフラグがビットストリームから復号化され、推論される辺に関連付けられたフラグは、推論される辺が元の接続性(例えば、元の辺のうちの1つ)に存在するかどうかを示す。
【0261】
次に、プロセスは、(S1999)に進み、終了する。
【0262】
プロセス(1900)は、適切に適応させることができる。プロセス(1900)のステップは変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0263】
本開示で開示する技術は、個別に使用することも、任意の順序で組み合わせて使用することもできる。さらに、技術(例えば、方法、実施形態)、エンコーダ、及びデコーダのそれぞれは、処理回路(例えば、1つ又は複数のプロセッサ又は1つ又は複数の集積回路)によって実装され得る。いくつかの例では、1つ又は複数のプロセッサは、非一時的なコンピュータ可読媒体に格納されたプログラムを実行する。
【0264】
上述の技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装することができ、1つ又は複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図20は、開示する主題の特定の実施形態を実装するのに適したコンピュータシステム(2000)を示す。
【0265】
コンピュータソフトウェアは、任意の適切な機械コード又はコンピュータ言語を使用してコーディングすることができ、アセンブリ、コンパイル、リンク、又は同様のメカニズムを受けて、命令を含むコードを作成することができ、命令は、1つ又は複数のコンピュータ中央処理装置(CPU)、及びグラフィックス処理装置(GPU)等によって直接実行することができる、又はマイクロコードの解釈を通じて実行することができる。
【0266】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、及びモノのインターネット装置等を含む、様々なタイプのコンピュータ又はそのコンポーネント上で実行することができる。
【0267】
図20に示されるコンピュータシステム(2000)のコンポーネントは、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(2000)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組合せに関連する依存性又は要件を有するものとして解釈すべきではない。
【0268】
コンピュータシステム(2000)は、特定のヒューマンインターフェイス入力装置を含むことができる。このようなヒューマンインターフェイス入力装置は、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、音声入力(音声、拍手等)、視覚入力(ジェスチャー等)、嗅覚入力(図示せず)等を介した1人又は複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェイス装置は、オーディオ(音声、音楽、環境音等)、画像(スキャン画像、静止画カメラから取得した写真画像等)、ビデオ(二次元ビデオ、立体視ビデオを含む3次元ビデオ)等、人間による意識的な入力に必ずしも直接関係しない特定のメディアを取り込むために使用することもできる。
【0269】
入力ヒューマンインターフェイス装置は、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイク(2006)、スキャナ(2007)、カメラ(2008)のうちの1つ又は複数を含むことができる(それぞれ1つのみが示される)。
【0270】
コンピュータシステム(2000)は、特定のヒューマンインターフェイス出力装置も含むこともできる。このようなヒューマンインターフェイス出力装置は、例えば、触覚出力、音、光、及び匂い/味を通じて、1人又は複数の人間のユーザの感覚を刺激することができる。このようなヒューマンインターフェイス出力装置には、触覚出力装置(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、又はジョイスティック(2005)による触覚フィードバックが含まれる場合があるが、入力装置として機能しない触覚フィードバック装置も存在し得る)、音声出力装置(スピーカ(2009)、ヘッドフォン(図示せず)等)、視覚出力装置(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーン等のスクリーン(2010)等、それぞれタッチスクリーン入力機能の有無があり、それぞれ触覚フィードバック機能の有無があり、そのうちのいくつかは、ステレオグラフィック出力;仮想現実メガネ(図示せず)ホログラフィックディスプレイ及びスモークタンク(図示せず)等の手段を通じて2次元の視覚出力又は3次元以上の出力を出力できるものもある)、及びプリンタ(図示せず)が含まれ得る。
【0271】
コンピュータシステム(2000)は、人間がアクセス可能な記憶装置及びCD/DVD又は同様の媒体(2021)を含むCD/DVD ROM/RW(2020)等の光媒体等の関連媒体、サムドライブ(2022)、リムーバブルハードドライブ又はソリッドステートドライブ(2023)、テープ及びフロッピーディスク等のレガシー磁気媒体(図示せず)、セキュリティドングル(図示せず)等の特殊なROM/ASIC/PLDベースの装置等も含むことができる。
【0272】
当業者はまた、本明細書で開示する主題に関連して使用する「コンピュータ可読媒体」という用語が、送信媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0273】
コンピュータシステム(2000)は、1つ又は複数の通信ネットワーク(2055)へのインターフェイス(2054)を含むこともできる。ネットワークは、例えば、無線、有線、光等であってもよい。さらに、ネットワークは、ローカル、広域、大都市、車両及び産業用、リアルタイム、遅延耐性等であってもよい。ネットワークの例には、イーサネット等のローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業用等が含まれる。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(2049)(例えば、コンピュータシステム(2000)のUSBポート等)に接続される外部ネットワークインターフェイスアダプタを必要とする。他のものは一般に、後述するようにシステムバスに接続することによってコンピュータシステム(2000)のコアに統合される(例えば、イーサネットインターフェイスのPCコンピュータシステムへの統合、又はセルラーネットワークインターフェイスのスマートフォンコンピュータシステムへの統合)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して他のコンピュータシステムへの、一方向、受信専用(テレビ放送等)、一方向送信専用(CANBusから特定のCANBus装置等)、又は双方向の通信にすることができる。特定のプロトコル及びプロトコルスタックは、上で説明したように、これらのネットワーク及びネットワークインターフェイスのそれぞれで使用することができる。
【0274】
前述のヒューマンインターフェイス装置、人間がアクセス可能な記憶装置、及びネットワークインターフェイスは、コンピュータシステム(2000)のコア(2040)に取り付けることができる。
【0275】
コア(2040)は、1つ又は複数の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲート領域(FPGA)(2043)の形態の特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(2044)、及びグラフィックスアダプタ(2050)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、ユーザがアクセスできない内部ハードドライブ、及びSSD等の内部大容量記憶装置(2047)とともに、システムバス(2048)を介して接続することができる。いくつかのコンピュータシステムでは、システムバス(2048)は、追加のCPU、及びGPU等による拡張を可能にするために、1つ又は複数の物理プラグの形式でアクセス可能にすることができる。周辺装置は、コアのシステムバス(2048)に直接接続することもでき、又は周辺バス(2049)を介して接続することもできる。一例では、スクリーン(2010)をグラフィックスアダプタ(2050)に接続することができる。周辺バスのアーキテクチャには、PCI、USB等が含まれる。
【0276】
CPU(2041)、GPU(2042)、FPGA(2043)、及びアクセラレータ(2044)は、組合せて、前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(2045)又はRAM(2046)に格納され得る。移行データはRAM(2046)に格納することもできるが、永続データは例えば内部大容量記憶装置(2047)に格納することができる。任意のメモリ装置への高速ストレージ及び取得は、1つ又は複数のCPU(2041)、GPU(2042)、大容量記憶装置(2047)、ROM(2045)、及びRAM(2046)等に密接に関連するキャッシュメモリの使用によって有効にすることができる。
【0277】
コンピュータ可読媒体は、コンピュータによって実施される様々な動作を行うためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又はコンピュータソフトウェア技術の当業者によく知られ利用可能な種類のものであってもよい。
【0278】
限定ではなく例として、アーキテクチャ(2000)、特にコア(2040)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、及びアクセラレータ等)が1つ又は複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行する結果として機能を提供することができる。このようなコンピュータ可読媒体は、上で紹介したようにユーザがアクセス可能な大容量記憶装置に関連付けられた媒体であってもよく、コア内部大容量記憶装置(2047)又はROM(2045)等の非一時的な性質を有するコア(2040)の特定の記憶装置であってもよい。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に格納され、コア(2040)によって実行され得る。コンピュータ可読媒体には、特定のニーズに応じて、1つ又は複数のメモリ装置又はチップを含めることができる。ソフトウェアは、コア(2040)、特にその中のプロセッサ(CPU、GPU、及びFPGA等を含む)に、RAM(2046)に格納したデータ構造の規定を含み且つソフトウェアによって規定されたプロセスに従ってそのようなデータ構造を変更する、本明細書で説明した特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて、又は代替として、コンピュータシステムは、回路にハードワイヤード又は他の方法で組み込まれたロジック(例えば、アクセラレータ(2044))の結果として機能を提供することができ、これは、本明細書で説明した特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに、又はソフトウェアと一緒に動作することができる。ソフトウェアへの参照には、必要に応じてロジックが含まれる場合もあり、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行用のソフトウェアを格納する回路(集積回路(IC)等)、実行用のロジックを具体化した回路、又はその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0279】
本開示はいくつかの例示的な実施形態について説明してきたが、本開示の範囲内に含まれる変更、置換、及び様々な代替均等物が存在する。こうして、当業者であれば、本明細書では明示的に図示又は説明していないが、本開示の原理を具体化し、こうして本開示の精神及び範囲内にある多くのシステム及び方法を想起することができることが理解されよう。
【国際調査報告】