(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-21
(54)【発明の名称】メッシュ圧縮のためのパッチ時間的位置合わせの符号化
(51)【国際特許分類】
H04N 19/503 20140101AFI20240313BHJP
H04N 19/597 20140101ALI20240313BHJP
H04N 19/85 20140101ALI20240313BHJP
G06T 9/00 20060101ALI20240313BHJP
H04N 19/20 20140101ALI20240313BHJP
【FI】
H04N19/503
H04N19/597
H04N19/85
G06T9/00
H04N19/20
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023555501
(86)(22)【出願日】2022-09-27
(85)【翻訳文提出日】2023-09-11
(86)【国際出願番号】 US2022077117
(87)【国際公開番号】W WO2023091814
(87)【国際公開日】2023-05-25
(32)【優先日】2021-11-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ティアン,ジュン
(72)【発明者】
【氏名】ジャン,シァン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】ホアン,チャオ
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LA00
5C159MA05
5C159MB18
5C159NN36
5C159PP03
5C159RC12
(57)【要約】
幾つかの例では、処理回路は、少なくとも第1時間インスタンスに関連付けられた第1メッシュフレームと、第2時間インスタンスに関連付けられた第2メッシュフレームを受け取る。第1メッシュフレームには、3次元(3D)情報が2Dにマップされた第1パッチを持つ第12次元(2D)マップが含まれる。第2メッシュフレームには、3D情報が2Dにマップされた第2パッチを持つ第2の2Dマップが含まれる。処理回路は、第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることを識別する。さらに、処理回路は、第2パッチの第1パッチへの時間的位置合わせのための第1再マップ変換パラメータを決定し、第1再マップ変換パラメータに従って第2パッチから変換される変換された第2パッチを含む新しい第2の2Dマップを生成する。
【特許請求の範囲】
【請求項1】
メッシュ符号化の方法であって、
少なくとも、第1時間インスタンスに関連付けられた第1メッシュフレームと第2時間インスタンスに関連付けられた第2メッシュフレームを受信するステップであって、前記第1メッシュフレームと前記第2メッシュフレームは多角形を持つオブジェクトの表面を表し、前記第1メッシュフレームは、2次元(2D)にマッピングされた3次元(3D)情報を有する第1パッチを有する第1の2Dマップを含み、前記第2メッシュフレームは、2Dにマッピングされた3D情報を有する第2パッチを有する第2の2Dマップを含む、ステップと、
前記第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることを識別するステップと、
前記第1の2Dマップの前記第1パッチに対する前記第2パッチの時間的位置合わせのために、第1再マップ変換パラメータを決定するステップと、
前記第2の2Dマップに対応する新しい第2の2Dマップを生成するステップであって、前記新しい第2の2Dマップは、前記第1再マップ変換パラメータに従い、前記第2パッチから変換される変換された第2パッチを有する、ステップと、
を含む方法。
【請求項2】
前記第1パッチが前記第2パッチに対する前記参照一致パッチであることを識別するステップは、さらに、
前記第1パッチに対して各々前記第2パッチの第1一致メトリックを決定するステップと、
前記第1一致メトリックに従って、前記第1パッチから最も一致するパッチとして前記第1パッチを選択するステップと、
を含む、請求項1に記載の方法。
【請求項3】
前記第2パッチに対する各々の前記第1パッチの第2一致メトリックを決定するステップと、
前記第2一致メトリックに従って、前記第2パッチが最も一致するパッチであることに応答して、前記第1パッチが前記第2パッチの前記参照一致パッチであることを決定するステップと、
をさらに含む請求項2に記載の方法。
【請求項4】
前記第1パッチに対する各々の前記第2パッチの前記第1一致メトリックを決定するステップは、さらに、
前記第2パッチと特定のパッチの一致する特徴点に従って、前記第1パッチの前記特定のパッチに対する前記第2パッチの一致メトリックを決定するステップと、
前記第2パッチの3D座標の中心と前記特定のパッチの3D座標の中心の違いに従って、前記第1パッチの特定のパッチに対する前記第2パッチの一致メトリックを決定するステップと、
前記第2パッチと前記特定のパッチの間の3D座標のハウスドルフ距離に従って、前記第1パッチの特定のパッチに対する前記第2パッチの一致メトリックを決定するステップと、
のうちの少なくとも1つを含む、請求項2に記載の方法。
【請求項5】
前記第1パッチへの前記第2パッチの時間的位置合わせのための前記第1再マップ変換パラメータを決定するステップは、
回転パラメータ、反射パラメータ及び空間的並進パラメータの少なくとも1つを決定するステップをさらに含む、請求項1に記載の方法。
【請求項6】
前記第2パッチに対する前記第1再マップ変換パラメータを、少なくとも前記第1メッシュフレーム及び前記第2メッシュフレームを伝送するビットストリームに符号化するステップ、
をさらに含む請求項1に記載の方法。
【請求項7】
前記第1再マップ変換パラメータに従って、前記第2メッシュフレームのジオメトリ2Dマップを更新するステップ、をさらに含む請求項1に記載の方法。
【請求項8】
前記第2パッチを第1クラスと第2クラスに分類するステップであって、前記第1クラスは、前記第1パッチで識別される対応する参照一致パッチを持つ前記第2パッチの第1サブセットを含み、前記第2クラスは、前記第1パッチで識別される参照一致パッチを持たない前記第2パッチの第2サブセットを含む、ステップ、をさらに含む請求項1に記載の方法。
【請求項9】
前記第2パッチの前記第1サブセットをサイズにより並べ替えて、サイズ順の第1パッチシーケンスにするステップと、
前記第1パッチシーケンスに従って、前記第2パッチの前記第1サブセットの各々の再マップ変換パラメータを決定するステップと、
をさらに含む請求項8に記載の方法。
【請求項10】
前記第1パッチシーケンスのパッチに対する各々の前記再マップ変換パラメータを決定するステップが、さらに、
前記サイズ順に従って前記第1パッチシーケンスから前記第2パッチを選択するステップであって、前記第1パッチシーケンスは前記第2パッチよりもサイズが大きい少なくとも第3パッチを含み、前記第3パッチに対する第2再マップ変換パラメータが決定され、前記第2再マップ変換パラメータに従って変換された第3パッチが、パックされたパッチリストに追加される、ステップと、
前記第1パッチとの類似性が最も高い回転された第2パッチを生成するための第1回転角を決定するステップと、
前記パックされたパッチリスト内の変換されたパッチとの重複を避けるために前記回転された第2パッチを移動するための第1空間的並進値を決定するステップと、
を含む、請求項9に記載の方法。
【請求項11】
前記第1回転角及び前記第1空間的並進値に従って前記第2パッチの変換された第2パッチを決定するステップと、
前記変換された第2パッチを前記パックされたパッチリストに追加するステップと、
をさらに含む請求項10に記載の方法。
【請求項12】
前記第2パッチを反映するかどうかを、最も高い類似性と、反映された第2パッチ及び前記第1パッチの第2最高類似性との類似性比較に基づいて決定するステップ、をさらに含む請求項10に記載の方法。
【請求項13】
事前定義されたウィンドウ内の空間的並進値が重複がないことを可能にすることに応答して、前記第2パッチを前記第2クラスに再分類することを決定するステップ、をさらに含む請求項10に記載の方法。
【請求項14】
前記第2パッチの前記第2サブセットをサイズにより並べ替えて、サイズ順の第2パッチシーケンスにするステップと、
前記第2パッチシーケンスに従って、前記第2パッチの前記第2サブセットの各々の再マップ変換パラメータを決定するステップと、
をさらに含む請求項9に記載の方法。
【請求項15】
パッチの境界を含む前記パッチ内のピクセルの数、
前記パッチの境界を除く前記パッチ内のピクセルの数、
前記パッチを含む最小の長方形の境界ボックスの面積、
のうちの少なくとも1つに従って、前記パッチのサイズを決定するステップ、をさらに含む請求項9に記載の方法。
【請求項16】
メッシュ処理の機器であって、処理回路を含み、前記処理回路は、
少なくとも、第1時間インスタンスに関連付けられた第1メッシュフレームと第2時間インスタンスに関連付けられた第2メッシュフレームを受信し、前記第1メッシュフレームと前記第2メッシュフレームは多角形を持つオブジェクトの表面を表し、前記第1メッシュフレームは、2次元(2D)にマッピングされた3次元(3D)情報を有する第1パッチを有する第1の2Dマップを含み、前記第2メッシュフレームは、2Dにマッピングされた3D情報を有する第2パッチを有する第2の2Dマップを含み、
前記第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることを識別し、
前記第1の2Dマップの前記第1パッチに対して前記第2パッチを位置合わせする第1再マップ変換パラメータを決定し、
前記第1再マップ変換パラメータに従い、前記第2パッチから変換される変換された第2パッチを有する新しい第2の2Dマップを生成する、
よう構成される、機器。
【請求項17】
前記処理回路は、
前記第1パッチに対する各々の前記第2パッチの第1一致メトリックを決定し、
前記第1一致メトリックに従って、前記第1パッチから最も一致するパッチとして前記第1パッチを選択し、
前記第2パッチに対する各々の前記第1パッチの第2一致メトリックを決定し、
前記第2一致メトリックに従って、前記第2パッチが最も一致するパッチであることに応答して、前記第1パッチが前記第2パッチの前記参照一致パッチであることを決定する、
ように構成されている、請求項16に記載の機器。
【請求項18】
前記処理回路は、
前記第2パッチを第1クラスと第2クラスに分類し、前記第1クラスは、前記第1パッチで識別される対応する参照一致パッチを持つ前記第2パッチの第1サブセットを含み、前記第2クラスは、前記第1パッチで識別される参照一致パッチを持たない前記第2パッチの第2サブセットを含む、
ように構成されている、請求項16に記載の機器。
【請求項19】
前記処理回路は、
前記第2パッチの前記第1サブセットをサイズにより並べ替えて、サイズ順の第1パッチシーケンスにし、
前記第1パッチシーケンスに従って、前記第2パッチの前記第1サブセットの各々の再マップ変換パラメータを決定する、
ように構成されている、請求項18に記載の機器。
【請求項20】
前記処理回路は、
前記サイズ順に従って前記第1パッチシーケンスから前記第2パッチを選択し、前記第1パッチシーケンスは前記第2パッチよりもサイズが大きい少なくとも第3パッチを含み、前記第3パッチに対する第2再マップ変換パラメータが決定され、前記第2再マップ変換パラメータに従って変換された第3パッチが、パックされたパッチリストに追加され、
前記第1パッチとの類似性が最も高い回転された第2パッチを生成するための第1回転角を決定し、
前記パックされたパッチリスト内の変換されたパッチとの重複を避けるために前記回転された第2パッチを移動するための第1空間的並進値を決定する、
ように構成されている、請求項19に記載の機器。
【請求項21】
メッシュ復号の方法であって、
少なくとも、第1時間インスタンスに関連付けられた第1メッシュフレームと第2時間インスタンスに関連付けられた第2メッシュフレームを決定するステップであって、前記第1メッシュフレームと前記第2メッシュフレームは多角形を持つオブジェクトの表面を表し、前記第1メッシュフレームは、2次元(2D)にマッピングされた3次元(3D)情報を有する第1パッチを有する第1の2Dマップを含み、前記第2メッシュフレームは、2Dにマッピングされた3D情報を有する第2パッチを有する第2の2Dマップを含む、ステップと、
前記第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることを識別するステップと、
前記第1の2Dマップの前記第1パッチに対する前記第2パッチの時間的位置合わせのために、第1再マップ変換パラメータを決定するステップと、
前記第2の2Dマップに対応する新しい第2の2Dマップを生成するステップであって、前記新しい第2の2Dマップは、前記第1再マップ変換パラメータに従い、前記第2パッチから変換される変換された第2パッチを有する、ステップと、
を含む方法。
【請求項22】
メッシュ処理の機器であって、処理回路を含み、前記処理回路は、
少なくとも、第1時間インスタンスに関連付けられた第1メッシュフレームと第2時間インスタンスに関連付けられた第2メッシュフレームを決定し、前記第1メッシュフレームと前記第2メッシュフレームは多角形を持つオブジェクトの表面を表し、前記第1メッシュフレームは、2次元(2D)にマッピングされた3次元(3D)情報を有する第1パッチを有する第1の2Dマップを含み、前記第2メッシュフレームは、2Dにマッピングされた3D情報を有する第2パッチを有する第2の2Dマップを含み、
前記第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることを識別し、
前記第1の2Dマップの前記第1パッチに対して前記第2パッチを位置合わせする第1再マップ変換パラメータを決定し、
前記第1再マップ変換パラメータに従い、前記第2パッチから変換される変換された第2パッチを有する新しい第2の2Dマップを生成する、
よう構成される、機器。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、米国仮特許出願番号第63/264,421号、「Encoding of Patch Temporal Alignment for Mesh Compression」、2021年11月22日出願、の優先権の利益を主張する米国特許出願番号第17/951,942号、「ENCODING OF PATCH TEMPORAL ALIGNMENT FOR MESH COMPRESSION」、2022年9月23日出願の優先権の利益を主張する。前述の出願の開示は、それらの全体が参照によりここに組み込まれる。
【0002】
[技術分野]
本開示は、概して、メッシュコーディングに関連する実施形態を記載する。
【背景技術】
【0003】
ここに提供される背景の説明は、本開示のコンテキストの概要を提示するためである。現在名前の挙げられた発明者の研究は、この背景の章に記載された研究の範囲で、出願時に従来技術として見なされない可能性のある記載の態様と同様に、本開示に対する従来技術として明示的に又は暗示的にも認められるものではない。
【0004】
世界の中の物体、世界の中の環境、及び3次元(3D)空間における同様のものなど、世界を捉え表現するための様々な技術が開発されている。世界の3D表現は、より没入感のある相互作用や通信を可能にする。幾つかの例では、ポイントクラウドやメッシュを世界の3D表現として使用することができる。
【発明の概要】
【0005】
本開示の態様は、メッシュコーディング(符号化及び/又は復号)のための方法及び機器を提供する。幾つかの例では、メッシュをコーディングするのための機器は、処理回路を含む。処理回路は、少なくとも第1時間インスタンスに関連付けられた第1メッシュフレームと、第2時間インスタンスに関連付けられた第2メッシュフレームを受け取る。第1メッシュフレームと第2メッシュフレームは、多角形を有するオブジェクトの表面を表す。第1メッシュフレームには、3次元(3D)情報が2Dにマップされた第1パッチを持つ第12次元(2D)マップが含まれる。第2メッシュフレームには、3D情報が2Dにマップされた第2パッチを持つ第2の2Dマップが含まれる。処理回路は、第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることを識別する。さらに、処理回路は、第1の2Dマップ内の第1パッチに対する第2パッチの時間的位置合わせのための第1再マップ変換パラメータを決定し、第2の2Dマップに対応する新しい第2の2Dマップを生成する。新しい2Dマップには、第1再マップ変換パラメータに従って第2パッチから変換される、変換された第2パッチが含まれる。
【0006】
第1パッチが第2パッチに対する前記参照一致パッチであることを識別するために、幾つかの例では、処理回路は、
第1パッチに対して各々第2パッチの第1一致メトリックを決定し、
第1一致メトリックに従って、第1パッチから最も一致するパッチとして第1パッチを選択する。さらに、例では、処理回路は、
第2パッチに対する各々の第1パッチの第2一致メトリックを決定し、
第2一致メトリックに従って、第2パッチが最も一致するパッチであることに応答して、第1パッチが第2パッチの参照一致パッチであることを決定する。
【0007】
第1パッチに対する各々の第2パッチの第1一致メトリックを決定するために、例では、処理回路は、第2パッチと特定のパッチの一致した特徴点に応じて、第1パッチの特定のパッチに対する第2パッチの一致メトリックを決定する。別の例では、処理回路は、第2パッチの3D座標の中心と特定のパッチの3D座標の中心の違いに応じて、第1パッチの特定のパッチに対する第2パッチの一致メトリックを決定する。別の例では、処理回路は、第2パッチと特定のパッチの間の3D座標のハウスドルフ(Hausdorff)距離に応じて、第1パッチの特定のパッチに対する第2パッチの一致メトリックを決定する。
【0008】
幾つかの例では、第1パッチに対する第2パッチの時間的位置合わせの第1再マップ変換パラメータを決定するために、処理回路は、回転パラメータ、反射パラメータ、及び空間的並進パラメータの少なくとも1つを決定する。
【0009】
幾つかの例では、処理回路は、第2パッチの第1再マップ変換パラメータを、少なくとも第1メッシュフレームと第2メッシュフレームを伝送するビットストリームに符号化する。幾つかの例では、処理回路は、第1再マップ変換パラメータに従って、第2メッシュフレームのジオメトリ2Dマップを更新する。
【0010】
幾つかの実施形態では、処理回路は、第2パッチを第1クラスと第2クラスに分類する。第1クラスには、第1パッチで識別された対応する参照一致パッチを持つ第2パッチの第1サブセットが含まれ、第2クラスには、第1パッチで識別された参照一致パッチを持たない第2パッチの第2サブセットが含まれる。
【0011】
幾つかの例では、処理回路は、第2パッチの第1サブセットをサイズによりサイズ順の第1パッチシーケンスに並べ替え、第1パッチシーケンスに従って第2パッチの第1サブセットの各々の再マップ変換パラメータを決定する。
【0012】
幾つかの例では、第1パッチシーケンスのパッチの各々の再マップ変換パラメータを決定するために、処理回路は、サイズ順に従って第1パッチシーケンスから第2パッチを選択する。第1パッチシーケンスは、サイズによって第2パッチよりも大きい少なくとも第3パッチを含み、第3パッチの第2再マップ変換パラメータが決定され、第2再マップ変換パラメータに従って変換された第3パッチがパックされたパッチリストに追加される。処理回路は、第1パッチと最も類似性の高い回転された第2パッチを生成するための第1回転角を決定する。次に、処理回路は、パックされたパッチリスト内の変換されたパッチとの重複を避けるために、回転された第2パッチを移動するための第1空間的並進値を決定する。例では、処理回路は、第1回転角と第1空間的並進値に従って、第2パッチの変換された第2パッチを生成し、変換された第2パッチをパックされたパッチリストに追加する。例では、処理回路は、最も高い類似性と、反射された第2パッチと第1パッチの第2最高類似性との類似性比較に基づいて、第2パッチを反映するかどうかも決定する。
【0013】
幾つかの例では、処理回路は、事前定義されたウィンドウ内の空間変換値が重複しないことを可能にすることに応答して、第2パッチを第2クラスに再分類することを決定する。
【0014】
幾つかの例では、処理回路は、第2パッチの第2サブセットサイズによりサイズ順の第2パッチシーケンスに並べ替え、第2パッチシーケンスに従って、第2パッチの第2サブセットの各々の再マップ変換パラメータを決定する。
【0015】
例えば、パッチのサイズは、パッチの境界を含むパッチ内のピクセル数に基づいて決定される。別の例では、パッチのサイズは、パッチの境界を除外したパッチ内のピクセル数に基づいて決定される。別の例では、パッチのサイズは、パッチを構成する最小の長方形の境界ボックスの領域に基づいて決定される。
【0016】
本開示の態様は、コンピュータにより実行されると該コンピュータにメッシュコーディングのための方法のうちのいずれか1つ又はその組合せを実行させる命令を格納する非一時的コンピュータ可読媒体も提供する。
【図面の簡単な説明】
【0017】
開示の主題の更なる特徴、特性、及び種々の利点は、以下の詳細な説明及び添付の図面から一層明らかになるだろう。
【0018】
【
図1】幾つかの例における通信システムのブロック図を示す。
【0019】
【
図2】幾つかの例による、ストリーミングシステムのブロック図を示す。
【0020】
【
図3】幾つかの例におけるポイントクラウドフレームを符号化するエンコーダのブロック図を示す。
【0021】
【
図4】幾つかの例におけるポイントクラウドフレームに対応する圧縮されたビットストリームを復号するデコーダのブロック図を示す。
【0022】
【
図5】幾つかの例による、ビデオデコーダのブロック図を示す。
【0023】
【
図6】幾つかの例による、ビデオエンコーダのブロック図を示す。
【0024】
【
図7】幾つかの例におけるポイントクラウドフレームを符号化するエンコーダのブロック図を示す。
【0025】
【
図8】幾つかの例におけるポイントクラウドフレームを運ぶ圧縮されたビットストリームを復号するデコーダのブロック図を示す。
【0026】
【
図9】幾つかの例におけるメッシュのアトラスへのマッピングを示す図を示す。
【0027】
【
図10】例における2つの時間インスタンスにおけるテクスチャマップを示す。
【0028】
【
図11】幾つかの例における処理例の概要を示すフローチャートを示す。
【0029】
【
図12】幾つかの例における処理例の概要を示すフローチャートを示す。
【0030】
【
図13】幾つかの例におけるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0031】
本開示の態様は、3次元(3D)メディア処理の分野における技術を提供する。
【0032】
3次元(3D)キャプチャ、3Dモデリング、及び3Dレンダリングの進歩など、3Dメディア処理における技術の発展は、幾つかのプラットフォーム及び装置にわたって3Dメディアコンテンツのユビキタスな存在を促進した。一例として、ある大陸では赤ちゃんの第1歩をキャプチャすることができ、メディア技術は祖父母が別の大陸で赤ちゃんとの没入体験を視聴(及び場合によっては交流)して楽しむことを可能にする。本開示の態様によると、没入体験を向上させるために、3Dモデルはますます洗練されてきており、3Dモデルの作成と消費は、データストレージ、データ伝送リソースなど、かなりの量のデータリソースを占めている。
【0033】
本開示の幾つかの態様によると、ポイントクラウドとメッシュを3Dモデルとして使用して、没入コンテンツを表現することができる。
【0034】
ポイントクラウドは一般に、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、及びその他の様々な属性などの関連属性を持つ、3D空間内の点の集合を指すことがある。ポイントクラウドは、そのような点の構成としてオブジェクト又はシーンを再構成するために使用できる。
【0035】
オブジェクトのメッシュ(メッシュモデルとも呼ばれる)には、オブジェクトの表面を記述する多角形を含めることができる。各多角形は、3D空間内の多角形の頂点と、頂点が多角形にどのように接続されているかの情報によって定義できる。頂点がどのように接続されているかの情報は、接続性情報と呼ばれる。幾つかの例では、メッシュには、頂点に関連付けられた色、法線などの属性も含めることができる。
【0036】
本開示の幾つかの態様によると、ポイントクラウド圧縮(point cloud compression (PCC))のための幾つかのコーディングツールをメッシュ圧縮に使用することができる。例えば、メッシュを再メッシュして新しいメッシュを生成し、新しいメッシュの接続性情報を推定することができる。新しいメッシュの頂点、及び新しいメッシュの頂点に関連付けられた属性は、ポイントクラウド内のポイントと見なすことができ、PCCコーデックを使用して圧縮できる。
【0037】
ポイントクラウドは、点(ポイント)の構成としてオブジェクト又はシーンを再構成するために使用できる。ポイントは、複数のカメラ、奥行きセンサ、あるいは様々な設定でライダー(Lidar)を使って撮影することができ、シーン又はオブジェクトを現実的に表現するために数千から数十億のポイントで構成される場合がある。パッチは一般に、ポイントクラウドによって記述される表面の連続したサブセットを指す場合がある。例では、パッチには、閾値よりも小さい値で互いに逸脱する表面法線ベクトルを持つポイントが含まれる。
【0038】
PCCは、G-PCCと呼ばれるジオメトリに基づく方式、V-PCCと呼ばれるビデオコーディングに基づく方式など、様々な方式に従って実行できる。本開示の幾つかの態様によると、G-PCCは3Dジオメトリを直接符号化し、ビデオコーディングと共有することのあまりない純粋なジオメトリに基づくアプローチであり、V-PCCはビデオコーディングに大きく基づいている。例えば、V-PCCは3Dクラウドの点を2Dグリッド(画像)のピクセルにマップすることができる。V-PCC方式はポイントクラウド圧縮のために汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)又はV-PCCコーデックとすることができる。
【0039】
本開示の態様によれば、V-PCC方式は、既存のビデオコーデックを使用して、ポイントクラウドのジオメトリ、占有、及びテクスチャを3つの別個のビデオシーケンスとして圧縮することができる。3つのビデオシーケンスを解釈するために必要な追加のメタデータは、個別に圧縮される。全体的なビットストリームのごく一部はメタデータであり、例ではソフトウェア実装を使用して効率的に符号化/復号することができた。情報の大部分はビデオコーデックによって処理される。
【0040】
図1は、幾つかの例における通信システム(100)のブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信できる複数の端末装置を含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された端末装置(110)及び(120)のペアを含む。
図1の例では、端末装置(110)及び(120)の第1ペアは、ポイントクラウドデータの単方向伝送を実行してよい。例えば、端末装置(110)は、端末装置(110)に接続されたセンサ(105)によってキャプチャされたポイントクラウド(例えば、構造を表す点)を圧縮することができる。圧縮されたポイントクラウドは、例えばビットストリームの形で、ネットワーク(150)を介して他の端末装置(120)に送信することができる。端末装置(120)は、ネットワーク(150)から圧縮されたポイントクラウドを受信し、ポイントクラウドを再構成するためにビットストリームを伸長し、再構成されたポイントクラウドを適切に表示することができる。単方向データ伝送は、メディアサービングアプリケーション等で共通であってよい。
【0041】
図1の例では、端末装置(110)及び(120)は、サーバ及びパーソナルコンピュータとして示されてよいが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレイヤ、及び/又は専用の3次元(3D)機器による適用がある。ネットワーク(150)は、端末装置(110)と(120)の間で圧縮されたポイントクラウドを送信する任意の数のネットワークを表す。ネットワーク(150)は、例えばワイヤ線(有線)及び/又は無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換及び/又はパケット交換チャネルでデータを交換してよい。代表的なネットワークは、電子通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、インターネット等を含む。
【0042】
図2は、幾つかの例におけるストリーミングシステム(200)のブロック図を示す。ストリーミングシステム(200)は、ポイントクラウドの使用アプリケーションである。開示された主題は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーションなど、他のポイントクラウド対応アプリケーションにも同様に適用できる。
【0043】
ストリーミングシステム(200)には、キャプチャサブシステム(213)を含めることができる。キャプチャサブシステム(213)には、ポイントクラウドソース(201)、例えば光検出及び測距(light detection and ranging (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)の送出するストリームを作成する。
【0044】
電子装置(220)及び(230)は他のコンポーネント(図示しない)を含み得ることに留意する。例えば、電子装置(220)は、デコーダ(図示しない)を含むことができ、電子装置(230)もエンコーダ(図示しない)を含むことができる。
【0045】
一部のストリーミングシステムでは、圧縮されたポイントクラウド(204)、(207)、及び(209)(例えば、圧縮されたポイントクラウドのビットストリーム)を特定の標準に従って圧縮できる。幾つかの例では、ポイントクラウドの圧縮にビデオコーディング規格が使用される。これらの規格の例には、High Efficiency Video Coding(HEVC)、Versatile Video Coding (VVC)などがある。
【0046】
図3は、幾つかの実施形態による、ポイントクラウドフレームを符号化するV-PCCエンコーダのブロック図を示す。幾つかの実施形態では、V-PCCエンコーダ(300)を通信システム(100)及びストリーミングシステム(200)で使用することができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様の方法で構成及び動作することができる。
【0047】
V-PCCエンコーダ(300)は、ポイントクラウドフレームを非圧縮の入力として受け取り、圧縮されたポイントクラウドフレームに対応するビットストリームを生成する。幾つかの実施形態では、V-PCCエンコーダ(300)は、ポイントクラウドソース(201)などのポイントクラウドソースからポイントクラウドフレームを受け取ることができる。
【0048】
図3の例では、V-PCCエンコーダ(300)には、パッチ生成モジュール(306)、パッチパッキングモジュール(308)、ジオメトリ画像生成モジュール(310)、テクスチャ画像生成モジュール(312)、パッチ情報モジュール(304)、占有マップモジュール(314)、平滑化モジュール(336)、画像パディングモジュール(316)及び(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322)、(323)及び(332)、補助パッチ情報圧縮モジュール(338)、エントロピー圧縮モジュール(334)、マルチプレクサ(324)が含まれている。
【0049】
開示の態様によると、V-PCCエンコーダ(300)は、圧縮されたポイントクラウドを伸長されたポイントクラウドに戻すために使用される幾つかのメタデータ(例えば、占有マップとパッチ情報)とともに、3Dポイントクラウドフレームを画像に基づく表現に変換する。幾つかの例では、V-PCCエンコーダ(300)は、3Dポイントクラウドフレームをジオメトリ画像、テクスチャ画像及び占有マップに変換でき、次に、ビデオコーディング技術を使用して、ジオメトリ画像、テクスチャ画像及び占有マップをビットストリームに符号化することができる。一般に、ジオメトリ画像は、ピクセルに投影されたポイントに関連付けられたジオメトリ値で満たされたピクセルを持つ2D画像であり、ジオメトリ値で満たされたピクセルをジオメトリサンプルと呼ぶことができる。テクスチャ画像は、ピクセルに投影されたポイントに関連付けられたテクスチャ値で満たされたピクセルを持つ2D画像であり、テクスチャ値で満たされたピクセルをテクスチャサンプルと呼ぶことができる。占有マップは、パッチによって占有されている又は占有されていないことを示す値で満たされたピクセルを持つ2D画像である。
【0050】
パッチ生成モジュール(306)は、ポイントクラウドをパッチのセット(例えば、パッチはポイントクラウドによって記述される表面の連続したサブセットとして定義される)にセグメント化する。これは、重複しているかどうかに関係なく、各パッチが2D空間内の平面に対する深度フィールドによって記述されるようにする。幾つかの実施形態では、パッチ生成モジュール(306)は、再構成エラーを最小限に抑えながら、スムーズな境界を持つ最小数のパッチにポイントクラウドを分解することを目的としている。
【0051】
幾つかの例では、パッチ情報モジュール(304)は、パッチのサイズと形状を示すパッチ情報を収集できる。幾つかの例では、パッチ情報を画像フレームにパックし、次に補助パッチ情報圧縮モジュール(338)によって符号化して、圧縮された補助パッチ情報を生成できる。
【0052】
幾つかの例では、パッチパッキングモジュール(308)は、未使用空間を最小限に抑え、グリッドの各々のM×M(例えば、16x16)ブロックが一意のパッチに関連付けられることを保証しながら、抽出されたパッチを2次元(2D)グリッドにマッピングするように構成される。効率的なパッチパッキングは、未使用空間を最小限に抑えるか、時間的一貫性を確保することによって、圧縮効率に直接影響を与えることができる。
【0053】
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置でポイントクラウドのジオメトリに関連付けられた2Dジオメトリ画像を生成できる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置でポイントクラウドのテクスチャに関連付けられた2Dテクスチャ画像を生成できる。ジオメトリ画像生成モジュール(310)とテクスチャ画像生成モジュール(312)は、パッキング処理中に計算された3Dから2Dへのマッピングを利用して、ポイントクラウドのジオメトリとテクスチャを画像として格納する。複数の点が同じサンプルに投影される場合をより適切に処理するために、各パッチはレイヤと呼ばれる2つの画像に投影される。例では、ジオメトリ画像はYUV420-8ビット形式のW×Hの単色フレームで表される。テクスチャ画像を生成するために、再サンプリングされたポイントに関連付けられる色を計算するために、テクスチャ生成手順は再構成/平滑化されたジオメトリを利用する。
【0054】
占有マップモジュール(314)は、各ユニットのパディング情報を記述する占有マップを生成できる。例えば、占有画像には、グリッドのセル毎に、セルが空の空間に属しているかポイントクラウドに属しているかを示すバイナリマップが含まれている。例では、占有マップは、ピクセルがパディングされているかどうかをピクセル毎に記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルのブロックがパディングされているかどうかをピクセルのブロック毎に記述するバイナリ情報を使用する。
【0055】
占有マップモジュール(314)によって生成された占有マップは、可逆符号化又は不可逆コーディングを使用して圧縮できる。可逆コーディングを使用する場合、エントロピー圧縮モジュール(334)を使用して占有マップを圧縮する。不可逆コーディングを使用する場合、ビデオ圧縮モジュール(332)を使用して占有マップを圧縮する。
【0056】
なお、パッチパッキングモジュール(308)は、画像フレームにパックされた2Dパッチの間に幾つかの空の空間を残すことがある。画像パディングモジュール(316)及び(318)は、2Dビデオ及び画像コーデックに適した画像フレームを生成するために、空の空間を埋めることができる(パディングと呼ばれる)。画像パディングは、冗長な情報で未使用の空間を満たすことができる背景フィリングとも呼ばれる。幾つかの例では、良好な背景フィリングはビットレートの増加を最小限に抑えるが、パッチ境界付近に重大なコーディングの歪みを導入しない。
【0057】
ビデオ圧縮モジュール(322)、(323)、(332)は、HEVC、VVCなどの適切なビデオコーディング標準に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、占有マップなどの2D画像を符号化できる。例では、ビデオ圧縮モジュール(322)、(323)、(332)は個別に動作する個々のコンポーネントである。なお、別の例では、ビデオ圧縮モジュール(322)、(323)、(332)を単一のコンポーネントとして実装できる。
【0058】
幾つかの例では、再構成されたジオメトリ画像の平滑化された画像を生成するように平滑化モジュール(336)が設定されている。平滑化された画像は、テクスチャ画像生成(312)に提供できる。次に、テクスチャ画像生成(312)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整できる。例えば、符号化及び復号の間にパッチ形状(例えばジオメトリ)がわずかに歪んでいる場合、パッチ形状の歪みを補正するために、テクスチャ画像を生成するときに歪みを考慮することがある。
【0059】
幾つかの実施形態では、グループ拡張(320)は、再構成されたポイントクラウドの視覚的品質だけでなくコーディング利得を向上させるために、冗長な低周波コンテンツでオブジェクト境界の周囲のピクセルをパディングするように構成されている。
【0060】
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を圧縮されたビットストリームに多重化できる。
【0061】
図4は、幾つかの例におけるポイントクラウドフレームに対応する圧縮されたビットストリームを復号するV-PCCデコーダ(400)のブロック図を示す。幾つかの例では、V-PCCエンコーダ(400)を通信システム(100)及びストリーミングシステム(200)で使用することができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様の方法で構成及び動作することができる。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームに基づいて再構成されたポイントクラウドを生成する。
【0062】
図4の例では、V-PCCデコーダ(400)は、デマルチプレクサ(432)、ビデオ伸長モジュール(434)及び(436)、占有マップ伸長モジュール(438)、補助パッチ情報伸長モジュール(442)、ジオメトリ再構成モジュール(444)、平滑化モジュール(446)、テクスチャ再構成モジュール(448)、及びカラー平滑化モジュール(452)を含む。
【0063】
デマルチプレクサ(432)は、圧縮されたビットストリームを受信し、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、及び圧縮された補助パッチ情報に分離することができる。
【0064】
ビデオ圧縮モジュール(434)及び(436)は、適切な標準(例えば、HEVC、VVCなど)に従って圧縮された画像を復号し、伸長された画像を出力できる。例えば、ビデオ伸長モジュール(434)は、圧縮されたテクスチャ画像を復号し、伸長されたテクスチャ画像を出力する。ビデオ伸長モジュール(436)は、圧縮されたジオメトリ画像を復号し、伸長されたジオメトリ画像を出力する。
【0065】
[占有マップ圧縮モジュール(438)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された占有マップを復号し、伸長された占有マップを出力できる。
【0066】
補助パッチ情報伸長モジュール(442)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された補助パッチ情報を復号し、伸長された補助パッチ情報を出力できる。
【0067】
ジオメトリ再構成モジュール(444)は、伸長されたジオメトリ画像を受信し、伸長された占有マップと伸長された補助パッチ情報に基づいて再構成されたポイントクラウドジオメトリを生成できる。
【0068】
平滑化モジュール(446)は、パッチのエッジで不一致を平滑化できる。平滑化手順は、圧縮アーチファクトによってパッチ境界で発生する可能性のある潜在的な不連続性を緩和することを目的としている。幾つかの実施形態では、圧縮/伸長によって発生する可能性のある歪みを緩和するために、パッチ境界に位置するピクセルに平滑化フィルタを適用することができる。
【0069】
テクスチャ再構成モジュール(448)は、伸長されたテクスチャ画像と平滑化ジオメトリに基づいて、ポイントクラウド内のポイントのテクスチャ情報を決定できる。
【0070】
カラー平滑化モジュール(452)は、カラーリングの不一致を平滑化できる。3D空間の隣接しないパッチは、2Dビデオでは互いに隣接してパックされることがよくある。例によっては、隣接しないパッチのピクセル値がブロックベースのビデオコーデックによって混同されることがある。カラー平滑化の目的は、パッチ境界に現れる目に見えるアーチファクトを減らすことである。
【0071】
図5は、幾つかの例による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、V-PCC(400)内で使用できる。例えば、ビデオ伸長モジュール(434)と(436)、占有マップ伸長モジュール(438)は、ビデオデコーダ(510)として同様に構成できる。
【0072】
ビデオデコーダ(510)は、コーディングビデオシーケンスのような圧縮された画像からシンボル(521)を再構成するために、パーサ(520)を含んでよい。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報が含まれる。パーサ(520)は、受信されたコーディングビデオシーケンスをパース/エントロピー復号してよい。コーディングビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性を有する又は有しない算術コーディング、等を含む、種々の原理に従うことができる。パーサ(520)は、コーディングビデオシーケンスから、ビデオデコーダの中のピクセルのサブグループのうちの少なくとも1つについて、該グループに対応する少なくとも1つのパラメータに基づき、サブグループパラメータのセットを抽出してよい。サブグループは、GOP(Groups of Picture)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units:CU)、ブロック、変換ユニット(Transform Units:TU)、予測ユニット(Prediction Units:PU)、等を含み得る。パーサ(520)は、符号化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル、等のような情報も抽出してよい。
【0073】
パーサ(520)は、バッファメモリから受信したビデオシーケンスに対してエントロピー復号/パース動作を実行して、シンボル(521)を生成してよい。
【0074】
シンボル(521)の再構成は、コーディングビデオピクチャ又はその部分の種類(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットを含み得る。どのユニットがどのように含まれるかは、パーサ(520)によりコーディングビデオシーケンスからパースされたサブグループ制御情報により制御できる。パーサ(520)と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、明確さのために示されない。
【0075】
既に言及した機能ブロックを超えて、ビデオデコーダ(510)は、後述のように、多数の機能ユニットに概念的に細分化できる。商用的制約の下で動作する実際の実装では、これらのユニットの多くは、互いに密に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示の主題を説明する目的で、機能ユニットへの以下の概念的細分化は適切である。
【0076】
第1ユニットは、スケーラ/逆変換ユニット551である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、及び、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリングマトリクス、等を含む制御情報を、パーサ(520)からのシンボル(521)として受信する。スケーラ/逆変換ユニット(551)はアグリゲータ(555)に入力され得るサンプル値を含むブロックを出力できる。
【0077】
幾つかの例では、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングブロック、つまり、前に再構成されたピクチャからの予測情報を使用しないが現在ピクチャの前に再構成された部分からの予測情報を使用可能なブロック、に属することができる。このような予測情報は、イントラピクチャ予測ユニット(552)により提供できる。幾つかの場合には、イントラピクチャ予測ユニット(552)は、再構成中のブロックと同じサイズ及び形状のブロックを、現在ピクチャバッファ(558)からフェッチした周囲の既に再構成された情報を用いて、生成する。現在ピクチャバッファ(558)は、例えば、再構成された現在ピクチャを部分的に及び/又は再構成された現在ピクチャを完全にバッファリングする。アグリゲータ(555)は、幾つかの場合には、サンプル毎に、イントラ予測ユニット(552)の生成した予測情報を、スケーラ/逆変換ユニット(551)により提供された出力サンプル情報に追加する。
【0078】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、場合によっては動き補償されたブロックに関連し得る。このような場合には、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測ために使用されるサンプルをフェッチできる。ブロックに関連するシンボル(521)に従いフェッチしたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)により、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(551)の出力に追加され得る(この場合、残差サンプル又は残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Y及び参照ピクチャコンポーネントを有し得るシンボル(521)の形式で、動き補償予測ユニット(553)の利用可能な動きベクトルにより制御できる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるとき参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズム、等を含み得る。
【0079】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において種々のループフィルタリング技術を受け得る。ビデオ圧縮技術は、コーディングビデオシーケンス(コーディングビデオビットストリームとも呼ばれる)に含まれ且つパーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされたパラメータにより制御されるが、コーディングピクチャ又はコーディングビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報にも応答し、前に再構成されループフィルタリングされたサンプル値にも応答し得るインループフィルタ技術を含み得る。
【0080】
ループフィルタユニット(556)の出力は、レンダー装置へと出力でき及び将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納され得るサンプルストリームであり得る。
【0081】
特定のコーディングピクチャは、一旦完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応するコーディングピクチャが完全に再構成され、コーディングピクチャが(例えばパーサ(520)により)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、後続のコーディングピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファを再割り当てできる。
【0082】
ビデオデコーダ(510)は、ITU-T Rec.H.265のような標準の所定のビデオ圧縮技術に従い復号動作を実行してよい。コーディングビデオシーケンスがビデオ圧縮技術又は規格、及びビデオ圧縮技術又は規格において文書化されたプロファイルの両方に従うという意味で、コーディングビデオシーケンスは、使用中のビデオ圧縮技術又は規格により指定されたシンタックスに従ってよい。具体的に、プロファイルは、ビデオ圧縮技術又は標準において利用可能な全部のツールから、プロファイルの下でのみ使用可能なツールとして、特定のツールを選択できる。また、遵守のために必要なことは、コーディングビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルにより定められる限界の範囲内であることであり得る。幾つかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えばメガサンプル/秒で測定される)、最大参照ピクチャサイズ、等を制限する。レベルにより設定される限界は、幾つかの場合には、HRD(Hypothetical Reference Decoder)仕様及びコーディングビデオシーケンスの中でシグナリングされるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
【0083】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオデコーダ(603)は、ポイントクラウドを圧縮するV-PCCエンコーダ(300)内で使用できる。例では、ビデオ圧縮モジュール(322)と(323)、及びビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に設定されている。
【0084】
ビデオエンコーダ(603)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像などの画像を受信し、圧縮された画像を生成できる。
【0085】
実施形態によると、ビデオエンコーダ(603)は、ソースビデオシーケンス(画像)のピクチャを、コーディングビデオシーケンス(圧縮された画像)へと、リアルタイムに又はアプリケーションにより要求される任意の他の時間制約の下でコーディングし圧縮してよい。適切なコーディング速度の実施は、制御部(650)の1つの機能である。幾つかの実施形態では、制御部(650)は、後述する他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確さのために図示されない。制御部(650)により設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、GOP(group of pictures)レイアウト、最大動きベクトル探索範囲、等を含み得る。制御部(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するよう構成され得る。
【0086】
幾つかの実施形態では、ビデオエンコーダ(603)は、コーディングループの中で動作するよう構成される。非常に簡略化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、シンボルストリームのようなシンボルを、コーディングされるべき入力ピクチャ及び参照ピクチャに基づき生成することを担う)、及びビデオエンコーダ(603)に内蔵された(ローカル)デコーダ(633)を含み得る。デコーダ(633)は、(シンボルとコーディングビットストリームとの間の任意の圧縮が、開示の主題において検討されるビデオ圧縮技術において無損失であるとき)(遠隔にある)デコーダが生成するのと同様の方法で、シンボルを再構成して、サンプルデータを生成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号が、デコーダ位置(ローカル又はリモート)と独立にビット正確な結果をもたらすとき、参照ピクチャメモリ(634)の内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分が、復号中に予測を用いるときデコーダが「見る」のと正確に同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えばチャネルエラーのために同期生が維持できない場合には、結果として生じるドリフト)は、幾つかの関連技術で同様に使用される。
【0087】
「ローカル」デコーダ(633)の動作は、
図5と関連して以上に詳述したビデオデコーダ(510)のような「リモート」デコーダのものと同じであり得る。簡単に
図5も参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)による符号化ビデオシーケンスへのシンボルの符号化/復号が無損失であり得るので、パーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(633)に完全に実装されなくてよい。
【0088】
動作中、幾つかの例では、ソースコーダ(630)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする。この方法では、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測基準として選択されてよい参照ピクチャのピクセルブロックとの間の差分をコーディングする。
【0089】
ローカルビデオデコーダ(633)は、ソースコーダ(630)により生成されたシンボルに基づき、参照ピクチャとして指定されてよいピクチャのコーディングビデオデータを復号してよい。コーディングエンジン(632)の動作は、有利なことに、損失処理であってよい。コーディングビデオデータがビデオデコーダ(
図6に図示されない)において復号され得るとき、再構成ビデオシーケンスは、標準的に、幾つかのエラーを有するソースビデオシーケンスの複製であってよい。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダにより実行され得る復号処理を複製し、参照ピクチャキャッシュ(634)に格納されるべき再構成参照ピクチャを生じ得る。このように、ビデオエンコーダ(603)は、(伝送誤りが無ければ)遠端ビデオデコーダにより取得される再構成参照ピクチャと共通の内容を有する再構成参照ピクチャのコピーを格納してよい。
【0090】
予測器(635)は、コーディングエンジン(632)のために予測探索を実行してよい。つまり、符号化されるべき新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測基準として機能し得る(候補参照ピクセルブロックのような)サンプルデータ又は参照ピクチャ動きベクトル、ブロック形状、等のような特定のメタデータについて、参照ピクチャメモリ(634)を検索してよい。予測器(635)は、適切な予測基準を見付けるために、サンプルブロック-ピクセルブロック毎に動作してよい。幾つかの例では、予測器(635)により取得された検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測基準を有してよい。
【0091】
制御部(650)は、例えば、ビデオデータの符号化のために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理してよい。
【0092】
全ての前述の機能ユニットの出力は、エントロピーコーダ(645)におけるエントロピーコーディングを受けてよい。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング、等のような技術に従いシンボルを無損失圧縮することにより、種々の機能ユニットにより生成されたシンボルを、コーディングビデオシーケンスへと変換する。
【0093】
制御部(650)は、ビデオエンコーダ(603)の動作を管理してよい。コーディング中、制御部(650)は、各々のピクチャに適用され得るコーディング技術に影響し得る特定のコーディングピクチャタイプを、各コーディングピクチャに割り当ててよい。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられてよい。
【0094】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用せずにコーディング及び復号され得るピクチャであってよい。幾つかのビデオコーデックは、例えばIDR(Independent Decoder Refresh)ピクチャを含む異なる種類のイントラピクチャを許容する。当業者は、Iピクチャの変形、及びそれらの個々の適用及び特徴を認識する。
【0095】
予測ピクチャ(Pピクチャ)は、殆どの場合、各ブロックのサンプル値を予測するために1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測を用いてコーディング及び復号され得るピクチャであってよい。
【0096】
双方向予測ピクチャ(Bピクチャ、Bi-directionally Predictive Picture (B Picture))は、各ブロックのサンプル値を予測するために最大で2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測を用いてコーディング及び復号され得るピクチャであってよい。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連付けられたメタデータを使用できる。
【0097】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、又は16×16個のサンプルのブロック)に空間的に細分化され、ブロック毎にコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されるコーディング割り当てにより決定される他の(既にコーディングされた)ブロックへの参照により予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、又はそれらは同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的にコーディングされてよい。
【0098】
ビデオエンコーダ(603)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従いコーディング動作を実行してよい。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスの中の時間的及び空間的冗長性を利用する予測コーディング動作を含む種々の圧縮動作を実行してよい。コーディングビデオデータは、従って、使用されているビデオコーディング技術又は規格により指定されたシンタックスに従ってよい。
【0099】
ビデオは、時系列の中の複数のソースピクチャ(画像)の形式であってよい。イントラピクチャ予測(イントラ予測と省略されることがある)は、所与のピクチャの中の空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、符号化/復号中の特定のピクチャは、現在ピクチャと呼ばれ、ブロックにパーティションされる。現在ピクチャの中のブロックが、ビデオの中の前に符号化され且つ未だバッファリングされている参照ピクチャの中の参照ブロックと同様であるとき、現在ピクチャの中のブロックは、動きベクトルと呼ばれるベクトルにより符号化できる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用中である場合には、参照ピクチャを識別する第3次元を有することができる。
【0100】
幾つかの実施形態では、双予測(bi-prediction)技術が、インターピクチャ予測で使用できる。双予測技術によると、両方とも復号順序でビデオの中の現在ピクチャより前にある(が、各々表示順序で過去及び未来にあってよい)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトル、及び第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルによりコーディングできる。ブロックは、第1参照ブロック及び第2参照ブロックの結合により予測できる。
【0101】
さらに、コーディング効率を向上するために、インターピクチャ予測においてマージモード技術が使用できる。
【0102】
本開示の幾つかの実施形態によると、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックのユニットの中で実行される。例えば、HEVC規格によると、ビデオピクチャシーケンスの中のピクチャは、圧縮のためにコーディングツリーユニット(coding tree unit:CTU)にパーティションされる。ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような、同じサイズを有する。通常、CTUは、3個のコーディングツリーブロック(coding tree blocks:CTB)、つまり1個のルマCTB及び2個のクロマCTB、を含む。各CTUは、1又は複数の符号化ユニット(coding unit:CU)に再帰的に4分木分割できる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、又は32×32ピクセルの4個のCU、又は16×16ピクセルの16個のCUに分割できる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのようなCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測性に依存して、1つ以上の予測ユニット(prediction unit:PU)に分割される。通常、各PUは、ルマ予測ブロック(prediction block:PB)、及び2個のクロマPBを含む。一実施形態では、コーディング(符号化/復号)における予測演算が、予測ブロックのユニットの中で実行される。ルマ予測ブロックを予測ブロックの一例として用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、等のようなピクセルについて値(例えば、ルマ値)のマトリクスを含む。
【0103】
図7は、幾つかの例による、G-PCCエンコーダ(700)のブロック図を示す。G-PCCエンコーダ(700)は、ポイントクラウドデータを受信し、ポイントクラウドデータを圧縮して、圧縮されたポイントクラウドデータを伝送するビットストリームを生成するように設定できる。実施形態では、G-PCCエンコーダ(700)は、位置量子化モジュール(710)、重複ポイント除去モジュール(712)、8分木符号化モジュール(730)、属性転送モジュール(720)、詳細レベル(LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、及び再構成された属性値を格納するメモリ(790)を含むことができる。
【0104】
図のように、G-PCCエンコーダ(700)で入力ポイントクラウド(701)を受信できる。ポイントクラウド(701)の位置(例えば、3D座標)は量子化モジュール(710)に提供される。量子化モジュール(710)は、量子化された位置を生成するために座標を量子化するように構成される。重複ポイント除去モジュール(712)は、量子化された位置を受け取り、重複ポイントを識別して除去するためのフィルタ処理を実行するように構成される。8分木符号化モジュール(730)は、重複ポイント除去モジュール(712)からフィルタリングされた位置を受け取り、8分木に基づく符号化処理を実行して、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは、算術コーディングモジュール(770)に提供される。
【0105】
属性転送モジュール(720)は、入力ポイントクラウドの属性を受信し、複数の属性値が各々のボクセルに関連付けられている場合に、各ボクセルの属性値を決定するための属性転送処理を実行するように構成されている。属性転送処理は、8分木符号化モジュール(730)から出力された並べ替えられたポイントに対して実行できる。転送操作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、8分木符号化モジュール(730)から出力された並べ替えられたポイントで動作し、ポイントを異なるLODに再編成するように構成されている。LOD情報は、属性予測モジュール(750)に提供される。
【0106】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODに基づく順序に従ってポイントを処理する。属性予測モジュール(750)は、メモリ(790)に格納された現在ポイントの隣接するポイントの集合の再構成された属性に基づいて、現在ポイントの属性予測を生成する。予測残差は、その後、属性転送モジュール(720)から受け取った元の属性値と、ローカルに生成された属性予測に基づいて取得することができる。候補インデックスが各々の属性予測処理で使用される場合、選択された予測候補に対応するインデックスを算術コーディングモジュール(770)に提供することができる。
【0107】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受け取り、量子化を実行して量子化された残差を生成するように構成される。量子化された残差は、算術コーディングモジュール(770)に提供される。
【0108】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化された残差を受け取り、残差量子化モジュール(760)で実行される量子化操作の逆を実行することによって再構成された予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)から再構成された予測残差を受け取り、属性予測モジュール(750)から各々の属性予測を受け取るように構成される。再構成された予測残差と属性予測を組み合わせることで、再構成された属性値が生成され、メモリ(790)に格納される。
【0109】
算術コーディングモジュール(770)は、占有コード、候補インデックス(使用されている場合)、量子化された残差(生成されている場合)、及びその他の情報を受信し、受信した値又は情報をさらに圧縮するためにエントロピー符号化を実行するように構成される。その結果、圧縮された情報を運ぶ圧縮されたビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮されたビットストリームを復号するデコーダに送信されるか又は提供されるか、又はストレージ装置に格納される場合がある。
【0110】
図8は、実施形態による、G-PCC(800)のブロック図を示す。G-PCCデコーダ(800)は、圧縮されたビットストリームを受信し、ポイントクラウドデータの伸長を実行してビットストリームを伸長し、復号されたポイントクラウドデータを生成するように設定できる。実施形態では、G-PCCデコーダ(800)は、算術復号モジュール(810)、逆残差量子化モジュール(820)、8分木復号モジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、及び再構成された属性値を格納するメモリ(860)を含めることができる。
【0111】
図示のように、圧縮されたビットストリーム(801)は算術復号モジュール(810)で受信できる。算術復号モジュール(810)は、圧縮されたビットストリーム(801)を復号して、量子化された残差(生成された場合)とポイントクラウドの占有コードを取得するように構成されている。8分木復号モジュール(830)は、占有コードに従ってポイントクラウド内のポイントの再構成される位置を決定するように構成されている。LOD生成モジュール(840)は、再構成された位置に基づいてポイントを異なるLODに再編成し、LODに基づく順序を決定するように構成されている。逆残差量子化モジュール(820)は、算術復号モジュール(810)から受信した量子化された残差に基づいて再構成された残差を生成するように構成されている。
【0112】
属性予測モジュール(850)は、LODに基づく順序に従ってポイントの属性予測を決定する属性予測処理を実行するように構成されている。例えば、現在ポイントの属性予測は、メモリ(860)に格納された現在ポイントの隣接ポイントの再構成された属性値に基づいて決定することができる。幾つかの例では、属性予測を各々の再構成された残差と組み合わせて、現在ポイントの再構成された属性を生成することができる。
【0113】
属性予測モジュール(850)から生成された再構成された属性のシーケンスは、8分木復号モジュール(830)から生成された再構成された位置とともに、一例ではG-PCCデコーダ(800)から出力される復号されたポイントクラウド(802)に対応する。さらに、再構成された属性もメモリ(860)に格納され、その後、後続のポイントの属性予測を導出するために使用することができる。
【0114】
様々な実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装することができる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、ソフトウェアの有無にかかわらず動作する1つ以上の集積回路(IC)などの処理回路で実装することができる。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、不揮発性(又は非一時的)コンピュータ可読記憶媒体に格納された命令を含むソフトウェア又はファームウェアとして実装することができる。命令は、1つ以上のプロセッサなどの処理回路によって実行されると、処理回路にエンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)の機能を実行させる。
【0115】
ここで開示されている属性予測技術を実装するように構成された属性予測モジュール(750)及び(850)は、
図7及び
図8に示されているものと類似又は異なる構造を持つ可能性のある他のデコーダ又はエンコーダに含めることができることに留意されたい。さらに、エンコーダ(700)及びデコーダ(800)は、同じ装置に含めることも、様々な例で別々の装置に含めることもできる。
【0116】
開示の幾つかの態様によると、メッシュ圧縮はPCCコーディングツールとは異なるコーディングツールを使用することも、上記のPCC(例えば、G-PCC、V-PCC)エンコーダ、上記のPCC(例えば、G-PCC、V-PCC)デコーダなどのPCCコーディングツールを使用することもできる。
【0117】
オブジェクトのメッシュ(メッシュモデル、メッシュフレームとも呼ばれる)には、オブジェクトの表面を記述する多角形を含めることができる。各多角形は、3D空間内の多角形の頂点と、頂点を多角形に接続するエッジによって定義できる。頂点がどのように接続されているかの情報(例えば、エッジの情報)は、接続性情報と呼ばれる。幾つかの例では、オブジェクトのメッシュは、オブジェクトの表面を記述する接続された三角形によって形成される。エッジを共有する2つの三角形は、2つの接続された三角形と呼ばれる。他の幾つかの例では、オブジェクトのメッシュは、接続された四角形によって形成される。エッジを共有する2つの四角形は、2つの接続された四角形と呼ぶことができる。メッシュは、他の適切な多角形によって形成できることに注意する。
【0118】
幾つかの例では、メッシュには、頂点に関連付けられた色、法線(normal)などの属性も含めることができる。2D属性マップでメッシュをパラメータ化するマッピング情報を利用することで、属性をメッシュの表面に関連付けることができる。マッピング情報は通常、メッシュの頂点に関連付けられたUV座標又はテクスチャ座標と呼ばれる一連のパラメータ座標によって記述される。2D属性マップ(例によってはテクスチャマップと呼ばれる)は、テクスチャ、法線、変位などの高解像度の属性情報を格納するために使用される。このような情報はテクスチャマッピングやシェーディングなどの様々な目的に使用できる。
【0119】
幾つかの実施形態では、メッシュには、ジオメトリ情報、接続性情報、マッピング情報、頂点属性、及び属性マップと呼ばれるコンポーネントを含めることができる。幾つかの例では、ジオメトリ情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。例では、(x,y,z)座標を使用して頂点の3D位置を記述でき、3D座標とも呼ばれる。幾つかの例では、接続性情報に、頂点を接続して3D表面を作成する方法を記述する頂点インデックスのセットが含まれている。幾つかの例では、マッピング情報に、メッシュ表面を平面の2D領域にマッピングする方法が記述されている。例では、マッピング情報は、接続性情報とともに、メッシュ頂点に関連付けられたUVパラメータ/テクスチャ座標(u,v)のセットによって記述される。幾つかの例では、頂点属性には、メッシュ頂点に関連付けられたスカラ又はベクトル属性値が含まれる。一部の例では、属性マップにメッシュ表面に関連付けられた属性が含まれ、2D画像/ビデオとして保存される。例では、ビデオ(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって定義される。
【0120】
開示の態様によると、3Dドメイン内のメッシュの表面を2Dドメインにマッピングするために、UVマッピング又はメッシュパラメータ化と呼ばれる幾つかの手法が使用される。幾つかの例では、メッシュは3Dドメイン内のパッチにパーティションされる。パッチは、境界エッジで形成された境界を持つメッシュの連続したサブセットである。パッチの境界エッジは、パッチの1つの多角形のみに属し、パッチ内の隣接する2つの多角形によって共有されないエッジである。パッチ内の境界エッジの頂点は、パッチの境界頂点と呼ばれ、パッチ内の非境界頂点は、例によってはパッチの内部頂点と呼ばれることがある。
【0121】
幾つかの例では、オブジェクトのメッシュは接続された三角形によって形成され、メッシュはパッチにパーティションでき、各パッチは接続された三角形のサブセットである。パッチの境界エッジは、パッチ内の1つの三角形のみに属し、パッチ内の隣接する三角形によって共有されないエッジである。パッチ内の境界エッジの頂点は、パッチの境界頂点と呼ばれ、パッチ内の非境界頂点は、例によってはパッチの内部頂点と呼ばれることがある。境界ループには境界頂点のシーケンスが含まれ、境界頂点のシーケンスによって形成される境界エッジは、境界ループと呼ばれるループを形成できる。
【0122】
開示の態様によると、幾つかの例では、パッチは各々2D形状(UVパッチとも呼ばれる)にパラメータ化される。2D形状は、幾つかの例ではアトラスとも呼ばれるマップにパック(例えば、方向付けられ、配置される)することができる。幾つかの例では、2D画像又はビデオ処理技術を使用してマップをさらに処理できる。
【0123】
例では、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アトラスで(x,y,z)の3D値を持つ)には、3Dドメインの(x,y,z)にあるポイントの色属性を指定する色がある。例によっては、3D領域の座標(x,y,z)はD座標又はxyz座標と呼ばれ、2D座標(u,v)はUV座標又はUV座標と呼ばれることがある。
【0124】
開示の幾つかの態様によると、メッシュ圧縮は、1つ以上の2Dマップ(幾つかの例では2Dアトラスとも呼ばれる)を使用してメッシュを表現し、次に画像又はビデオコーデックを使用して2Dマップを符号化することによって実行できる。2Dマップの生成には、様々な手法を使用できる。
【0125】
図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によって形成される三角形は各々の属性を持つことができる。
【0126】
例では、3DのパッチA、B、C、Dは、UVアトラス(920)又はマップ(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座標を持つことができる。
【0127】
マップ(920)は、ジオメトリ情報を含むジオメトリマップにすることも、カラー、法線、テキスタイル、又はその他の属性情報を含むテクスチャマップにすることも、占有情報を有する占有マップにすることもできる。
【0128】
図9の例では、各パッチは三角形で表されるが、パッチには、メッシュの連続したサブセットを形成するために接続されている任意の適切な数の頂点を含めることができることに注意する。幾つかの例では、パッチ内の頂点が三角形に接続されている。パッチ内の頂点は、他の適切な形状を使用して接続できることに注意する。
【0129】
例では、頂点のジオメトリ情報を2Dジオメトリマップに格納できる。例えば、2Dジオメトリマップは、2Dジオメトリマップ内の対応するポイントにおけるサンプリングポイントの(x,y,z)座標を格納する。例えば、(u,v)位置にある2Dジオメトリマップ内のポイントは、3Dメッシュ内の対応するサンプリングポイントのx、y、zの値に各々対応する3つのコンポーネントのベクトル値である。
【0130】
開示の態様によると、マップ内の領域が完全に占有されていない場合がある。例えば、
図9では、2D形状A’、B’、C’、D’の外側の領域は未定義である。復号後の2D形状A'、B'、C'、D'の外側の領域のサンプル値は破棄できる。場合によっては、占有マップを使用して、ピクセルがパッチに属しているかどうか、又は未定義であるかどうかを識別するバイナリ値を格納するなど、ピクセル毎に何らかの追加情報を格納する。
【0131】
開示の態様によると、動的メッシュは、コンポーネント(ジオメトリ情報、接続性情報、マッピング情報、頂点属性、属性マップ)の少なくとも1つが時間によって変化するメッシュである。動的メッシュは、一連のメッシュ(メッシュフレームとも呼ばれる)によって記述できる。幾つかの例では、動的メッシュのメッシュフレームは異なる時間のオブジェクトの表面の表現であり、各メッシュフレームは特定の時間のオブジェクトの表面の表現である(時間インスタンスとも呼ばれる)。動的メッシュには、時間の経過とともに変化する大量の情報が含まれる場合があるため、大量のデータが必要になることがある。メッシュの圧縮技術は、メッシュ表現でメディアコンテンツを効率的に保存及び送信することを可能にする。
【0132】
幾つかの例では、動的メッシュは、一定の接続性情報、時変ジオメトリ、及び時変頂点属性を持つことができる。幾つかの例では、動的メッシュは、時変接続性情報を持つことができる。例では、デジタルコンテンツ作成ツールは通常、時変属性マップと時変接続性情報を持つ動的メッシュを生成する。幾つかの例では、動的メッシュの生成にボリューム(volumetric)取得技術が使用されている。ボリューム取得技術は、特にリアルタイムの制約の下で、時変接続性情報を持つ動的メッシュを生成できる。
【0133】
開示の態様によると、テクスチャマッピング(例えば、テクスチャマップ、属性マップ)はメッシュ表現の大部分を消費し、テクスチャマッピングの効率的な圧縮はメッシュ圧縮における重要なタスクの1つになり得る。幾つかの例では、時間インスタンスでのテクスチャマッピングは、パッチに対応する2D形状で構成される画像(例えば、テクスチャマップ、属性マップ)を含み、2D形状はUVパッチとも呼ばれる。各UVパッチは、時間インスタンスでのメッシュの表面領域のテクスチャ情報(赤、緑、青のカラー値など)を表す。画像のピクセル座標はUV座標に対応する。
【0134】
図10は、例における2つの時間インスタンスにおけるテクスチャマップを示す。幾つかの例では、異なる時間インスタンスにおけるテクスチャマッピングが独立して生成される場合があり、異なる時間インスタンスのテクスチャマップにおける関連するUVパッチは、異なる方法で配置することができる。
図10は、第1時間t
0におけるの第1テクスチャマップ(1010)と、第2時間t
1における第2テクスチャマップ(1020)を示している。第1テクスチャマップ(1010)と第2テクスチャマップ(1020)の関連するUVパッチは、異なるように配置される。例えば、第1テクスチャマップ(1010)には、第1時間t
0の人物の顔に対応するUVパッチ(1011)が含まれ、第2テクスチャマップ(1020)には、第2時間t
1の人物の顔に対応するUVパッチ(1021)が含まれる。UVパッチ(1011)とUVパッチ(1021)は関連している。
図10に見られるように、UVパッチ(1011)とUVパッチ(1021)は、異なる方向と異なるUV位置によって各々のテクスチャマップに配置されている。
【0135】
開示の幾つかの態様は、パッチを時間的に位置合わせするための符号化技術を提供し、例えば、テクスチャマップ、属性マップ、ジオメトリマップなどの2Dマップ内のUVパッチを時間的に位置合わせする。例えば、2Dマップ内のUVパッチが時間的に位置合わせされる場合、2Dマップは、例えば、インター予測技術を使用して、より効率的に圧縮することができる。幾つかの例では、メッシュは2Dマップを使用して表現することができ、本開示における用語「パッチ」は、2Dマップの文脈におけるUVパッチを指す場合があることに注意されたい。
【0136】
図11は、本開示の幾つかの実施形態によるパッチの時間的位置合わせの処理(1100)の図を示す。処理(1100)は、メッシュの符号化処理中に使用できる。様々な実施形態では、処理(1100)は処理回路によって実行される。幾つかの実施形態では、処理(1100)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路が処理(1100)を実行する。処理は(S1101)から始まり、パッチ解析の(S1110)、パッチ分類の(S1120)、再マップ解析の(S1130)、再マッピングの(S1140)を含む。
【0137】
(S1110)でパッチ解析を行う。パッチ解析はパッチの特性を解析できる。例によっては、パッチ解析中に2Dマップ(例えば、属性マップ、テクスチャマップなど)の各パッチの特徴点を特定する。特徴点は、スケール不変特徴変換(scale-invariant feature transform (SIFT))、高速化ロバスト特徴(speedup robust features (SURF))、勾配の位置と方向のヒストグラム(gradient location and orientation histogram (GLOH))、方向付き勾配のヒストグラム(histogram of oriented gradients (HOG))など、任意の適切な手法によって特定することができる。
【0138】
幾つかの例では、パッチ解析中に各パッチのメトリックが計算される。メトリックは、スケール不変メトリック、回転不変メトリック、並進不変メトリック、アフィン変換不変メトリックなどである。以下の説明では、幾つかのメトリックの例について説明する。幾つかの例では、メトリックの例は、パッチ解析のメトリックとして個別に使用できる。幾つかの例では、メトリックの例の2つ以上のメトリックを組み合わせて、パッチ解析の複合メトリックを形成できる。幾つかの例では、パッチの類似した特性を示す他の適切なメトリックをパッチ解析で使用できる。
【0139】
幾つかの例では、パッチの3D座標の中心をパッチのメトリックとして計算できる。例えば、パッチの3D座標の中心は、パッチ内の点(例えば頂点)の3D座標のサブセットの加重和によって計算できる。例では、パッチの3D座標の中心は、境界点(例えば、境界頂点を含む)を含むパッチ内のすべての点(例えば頂点)の3D座標を平均化することによって計算できる。別の例では、パッチの3D座標の中心は、境界点を除く(例えば、境界頂点を除く)パッチ内のすべての点(例えば頂点)の3D座標を平均化することによって計算される。別の例では、パッチの3D座標の中心は、パッチのすべての境界頂点の3D座標の平均として計算される。
【0140】
幾つかの例では、パッチのUV座標の中心をパッチのメトリックとして計算できる。例えば、パッチのUV座標の中心は、パッチ内の点(例えば頂点)のUV座標のサブセットの加重和によって計算できる。例では、パッチのUV座標の中心は、境界点(例えば、境界頂点)を含むパッチ内のすべての点(例えば頂点)のUV座標を平均化することによって計算できる。別の例では、パッチのUV座標の中心は、境界点(例えば、境界頂点)を除くパッチ内のすべての点(例えば頂点)のUV座標を平均化することによって計算される。別の例では、パッチのUV座標の中心は、パッチのすべての境界頂点のUV座標の平均を取ることにより計算される。
【0141】
幾つかの例では、パッチ内のポイントのサブセットの加重平均テクスチャ又は属性値をパッチのメトリックとして計算できる。例では、加重平均テクスチャ又は属性値は、境界ポイント(例えば、境界頂点)を含むパッチ内のすべてのポイント(例えば頂点)のテクスチャ又は属性値(赤、緑、青のチャネル値など)を平均することによって計算できる。別の例では、加重平均テクスチャ又は属性値は、境界ポイント(例えば、境界頂点)を除くパッチ内のすべてのポイント(例えば頂点)のテクスチャ又は属性値(赤、緑、青のチャネル値など)を平均することによって計算される。別の例では、加重平均テクスチャ又は属性値は、パッチのすべての境界頂点のテクスチャ又は属性値(赤、緑、青のチャネル値など)の平均を取ることによって計算される。
【0142】
(1120)では、パッチ分類が実行される。幾つかの例では、パッチ分類中に、所与の時間インスタンスにおけるパッチを、フレーム間の一貫性又はその他の時間的/空間的特性に基づいて異なるカテゴリに分類できる。
【0143】
幾つかの実施形態では、所与の時間インスタンスの2Dマップ(例えば、ジオメトリマップ、テクスチャマップ又は属性マップ)のパッチを、クラスMとクラスNと呼ばれる2つのクラスに分類できる。クラスMには、過去の時間インスタンスで参照一致パッチが見つかったパッチが含まれ、クラスNには、過去の時間インスタンスで参照一致パッチが見つからなかったパッチが含まれる。幾つかの例では、パッチとパッチの参照一致パッチは、異なる時間インスタンスでオブジェクトの表面の一部の表現である。例えば、パッチは現在時間でのオブジェクトの特定の表面部分を表し、参照一致パッチは過去の時間インスタンスでのオブジェクトの特定の表面部分を表す。
【0144】
パッチ分類の間、幾つかの例では、各パッチに対して、過去の時間インスタンスの2Dマップ(例えば、ジオメトリマップ、テクスチャマップ、属性マップ)に対して参照一致技術が利用されて、過去の時間インスタンスで参照一致パッチが見つるかどうかが決定される。
【0145】
幾つかの例では、技術は、例えばパッチと参照一致パッチが十分に一致する特徴点を持っている場合など、特徴一致に基づいて、所与の時間インスタンスのパッチについて、過去の時間インスタンスの参照一致パッチを決定することができる。実施形態では、クロス特徴一致技術を利用することができる。例えば、抽出された特徴点に基づいて、所与の時間インスタンス(t)におけるPi,tで示されるパッチを、過去の時間インスタンス(t-k)におけるすべてのパッチと照合する。過去の時間インスタンス(t-k)におけるすべてのパッチのうち、パッチPi,tに最も一致するパッチは(例えば、一致した特徴点の数に基づいて)PPi0,t-kで示される。次に、過去の時間インスタンス(t-k)におけるパッチPi0,t-kは、時間インスタンス(t)におけるすべてのパッチと一致し、将来の最も一致するパッチを見つける。Pi0,t-kに対する将来の最も一致するパッチがPi,tであるとき、Pi0,t-k及びPi,tは、クロス特徴一致技術に従ってクロスマッチ(cross-match)である。そして、パッチPi,tに対して、過去の時間インスタンスにおける参照一致パッチが存在し、Pi,tはクラスMに分類される。それ以外の場合(例えば、Pi0,t-kの最適な将来の一致がPi,tではない)、Pi,tはクラスNに分類される。
【0146】
幾つかの例では、パッチ分類中に、過去の時間インスタンスにおける2Dマップ(例えば、ジオメトリマップ、テクスチャマップ、属性マップ)に対してメトリック一致技術が利用され、過去の時間インスタンスで参照一致パッチが見つかったかどうかが決定される。例では、3D座標の中心を使用して、時間インスタンス(t)におけるパッチPi,tが過去の時間インスタンス(t-k)のすべてのパッチと照合される。ここで、kは正の数である。過去の時間インスタンス(t-k)のすべてのパッチの中で、パッチPi,tに対する3D座標の中心の差が最も小さいパッチ(Pi0,t-kで表される)を最も一致するパッチとして選択できる。3D座標の中心の差は、l1ノルム、l2ノルム、又はその他の任意の距離指標で測定できる。次に、3D座標の中心を使用して、最も一致するパッチPi0,t-kを時間インスタンス(t)のすべてのパッチと照合し、Pi0,t-kについて将来の最も一致するパッチを見つける。パッチPi0,t-kが過去の時間インスタンス(t-k)のパッチの中でパッチPi,tに対する3D座標の中心の差が最も小さく、さらにパッチPi,tが時間インスタンス(t)のパッチの中でパッチPi0,t-kに対する3D座標の中心の差が最も小さい(例えば、パッチPi,tはPi0,t-kに将来最も一致する)場合、Pi0,t-kとPi,tは3D座標の中心のクロスマッチングによりクロスマッチし、Pi,tはクラスMに分類される。それ以外の場合(例えば、Pi0,t-kの最適な将来の一致がPi,tではない)、Pi,tはクラスNに分類される。
【0147】
幾つかの例では、1つより多くのメトリックがメトリック一致技術で使用できる。例では、時間インスタンス(t)のパッチPi,t、過去の時間インスタンスのクロスマッチパッチPi0,t-kは、3D座標の中心に従って検出され、2つのクロスマッチパッチの別のメトリック(例えば平均テクスチャ値)又は2つのメトリック(例えば、テクスチャの平均値、UV座標の中心)の差は、所与の閾値(又は2つのメトリックの場合は所与の2つの閾値)未満のように小さいものであり、Pi,tはクラスMに分類される。それ以外の場合(例えば、他のメトリックの差が閾値以上である)、Pi,tはクラスNに分類される。
【0148】
幾つかの例では、メトリック一致でハウスドルフ(Hausdorff)距離が使用される。例えば、時間インスタンスtのパッチPi,tは、過去の時間インスタンス(t-k)のすべてのパッチと一致する。ここで、kは3D座標のハウスドルフ距離に従った正の数である。
【0149】
幾つかの例では、ハウスドルフ距離は、メトリックマッチングで1つ、2つ、又はそれ以上の計算されたメトリック(例えば、平均テクスチャ値、及び/又は3D座標の中心、及び/又はUV座標の中心などである)と組み合わされる。
【0150】
上記の説明のパッチ分類は、過去の時間インスタンスに対する所与の時間インスタンスの参照一致を実行するが、パッチ分類は、未来の時間インスタンスに対する所与の時間インスタンスの参照一致を使用して適用することもできる。例えば、所与の時間インスタンスにおける2Dマップ(例えば、ジオメトリマップ、テクスチャマップ、又は属性マップ)のパッチは、クラスMとクラスNと呼ばれる2つのクラスに分類される。クラスMには、将来の時間インスタンスで参照一致パッチが見つかったパッチが含まれ、クラスNには、将来の時間インスタンスで参照一致パッチが見つからなかったパッチが含まれる。
【0151】
(S1130)で再マップ解析を行う。例によっては、再マップ解析の際に、パッチごとに回転パラメータ、反射パラメータ、平行移動パラメータなどの再マップ変換パラメータを計算し、時間領域でパッチをより良く位置合わせさせる。
【0152】
幾つかの例では、一致するローカル特徴点に基づいて再マップ変換パラメータを導出できる。
【0153】
幾つかの例では、再マップ解析は、クラスMのパッチからが開始される。クラスMのパッチで再マップ解析が完了した後、クラスNのパッチで再マップ解析を実行できる。
【0154】
実施形態では、再マップ解析のために、パックされたパッチリストLは空に初期化される。その後、クラスMのパッチはサイズにより並べられる。サイズ順に従って、クラスMのパッチに対して再マップ解析が実行される。例えば、クラスMの大きなパッチがクラスMの小さなパッチの前に解析される。例では、パッチサイズは、境界を含むパッチ内のピクセル数によって計算できる。別の例では、パッチサイズは、境界を除くパッチ内のピクセル数によって計算できる。別の例では、パッチサイズは、パッチを含む最小の長方形の境界ボックスの面積にすることができる。
【0155】
幾つかの例では、各パッチの再マップ解析中に回転角が決定され、参照一致パッチとの最も高い類似性に達する。幾つかの例では、クラスMのパッチPi,tは、時間インスタンス(t-k)で参照一致パッチを持ち、kは正の数であり、参照一致パッチはパッチPi0,t-kで示される。一例では、パッチについて、角度ri,tを持つパッチPi,tの回転の後のR(Pi,t)で示される回転パッチが、基準Pi0,t-kに対して最も高い類似性(類似性の値を第1最高類似性値と呼ぶ)を持つように、回転角ri,tを決定する。幾つかの例では、回転角ri,tは、0と2π間の値であり、0≦ri,t<2πである。幾つかの例では、IoU(intersection over union)値によって類似性を測定できる。幾つかの例では、回転したパッチR(Pi,t)と参照一致パッチPi0,t-kの間の相互相関が類似性の指標になる。
【0156】
幾つかの例では、パッチPi,tが水平軸に沿って反射されて反射パッチFPi,tが生成され、反射パッチFPi,tに対する回転角fi,tが、基準Pi0,t-kに対して最も高い類似性(類似性の値を第2最高類似性値と呼ぶ)を持つように決定される。そして、第1最高類似性値と第2最高類似性値を比較して、パッチPi,tにri,tを使用するか、反射パッチFPi,tにri,tを使用するかを決定できる。一例では、第1類似性値の方が高い場合、最終回転角はri,tとなり、第2類似性値の方が高い場合、最終回転角ri,tは-fi,tに設定できる。なお、最終回転角ri,tの範囲は-2π<ri,t<2πであり、負の角度はパッチPi,tに反射が加えられていることを示す。
【0157】
一部の例では、1ビットの反射フラグを使用して、反射が適用されているかどうかを示す。1ビットの反射フラグを使用すると、回転角は0と2πの範囲になる。
【0158】
幾つかの例では、回転角ri,tを決定した後、回転したパッチR(Pi,t)の空間的な並進値(ui,t,vi,t)を求める。例えば、空間的な並進値(ui,t,vi,t)は、空間的な並進後のパッチR(Pi,t)のUV座標の中心(空間的に並進されたパッチと呼ばれ、T(R(Pi,t)により表す)が、参照一致パッチPi0,t-kのUV座標の中心と等しくなるような初期値で初期設定される。そして、空間的に並進されたパッチT(R(Pi,t))は、空間的に並進されたパッチT(R(Pi,t))が、パックされたパッチリストLにすでにあるパッチと重複していないかどうかをチェックされる。空間的に並進されたパッチT(R(Pi,t))が、パックされたパッチリストL内の他のパッチと重複していない場合、空間的に並進されたパッチT(R(Pi,t))は、パックされたパッチリストLに追加される。その後、サイズ順にクラスM内の次のパッチへと、再マップ解析を続行できる。
【0159】
幾つかの例では、空間的並進値(ui,t,vi,t)は、空間的並進値のウィンドウ上で、回転したパッチR(Pi,t)と参照一致パッチPi0,t-kとの相互相関値を計算することによって初期化される。最も高い相互相関値を与えることができるウィンドウ内の値は、空間的並進値(ui,t,vi,t)の初期化値として使用できる。
【0160】
幾つかの例では、重複チェック中に、空間的並進パッチT(R(Pi,t))がすでにパックされたパッチリストLにあるパッチと重複し、その後、空間的並進値(ui,t,vi,t)を初期化値を中心とした範囲で徐々に修正し、空間的並進パッチT(R(Pi,t))に対して修正した空間的並進値との重複チェックを実行して、空間的並進パッチT(R(Pi,t))がパックされたパッチリストL内のいずれかのパッチと重複しているかどうかをチェックできる。空間的並進パッチT(R(Pi,t))がパックされたパッチリストL内のパッチと重複していない場合、空間的並進パッチT(R(Pi,t))はパックされたパッチリストLに追加される。その後、サイズ順にクラスM内の次のパッチへと、再マップ解析を続行する。
【0161】
ただし、例では、検索範囲内のすべての空間的並進値(ui,t,vi,t)について、空間的並進パッチTT(R(Pi,t))と、パックされたパッチリストL内の一部のパッチとの間に重複が生じる場合、パッチPi,tがクラスMから削除され、クラスNに追加される。その後、サイズ順にクラスM内の次のパッチへと、再マップ解析を続行する。
【0162】
クラスM内のすべてのパッチの再マップ解析が完了すると、クラスN内のパッチに対して再マップ解析が続行する。
【0163】
幾つかの例では、クラスNのパッチはサイズ順に並べられている。再マップ解析はサイズ順に従う。例えば、クラスNの大きなパッチは、クラスNの小さなパッチの前に再マップ解析される。例では、パッチサイズは、境界を含むパッチ内のピクセル数によって計算される。別の例では、パッチサイズは、境界を除くパッチ内のピクセル数によって計算できる。別の例では、パッチサイズは、パッチを含む最小の長方形の境界ボックスの面積にする。
【0164】
幾つかの例では、クラスNのパッチPi,tについて、空間的並進値(ui,t,vi,t)を決定できる。例では、空間的並進値(ui,t,vi,t)は、空間的並進がないことを示す(0,0)に初期設定される。次に、パッチPi,tがパックされたパッチリストLに既に存在するパッチと重複するかどうかについて、パッチPi,tをチェックする。パッチPi,tが重複していない(例えば、はパックされたパッチリストLのどのパッチとも重複していない)場合は、パッチPi,tがパックされたパッチリストLに追加される。その後、サイズ順にクラスNの次のパッチへと再マップ解析が続行される。
【0165】
幾つかの例では、パッチPi,tがパックされたパッチリストLのパッチと重複している場合、空間的並進値(ui,t,vi,t)は、(0,0)を中心とした範囲で徐々に修正され、重複チェックを行って、徐々に修正された空間的並進値を持つT(Pi,t)で示される空間的に並進されたパッチがパックされたパッチリストLのいずれかのパッチと重複していないかをチェックする。T(Pi,t)で示される空間的に並進されたパッチが重複していない場合、空間的に並進されたパッチT(Pi,t)がパックされたパッチリストLに追加される。その後、サイズ順にクラスNの次のパッチへと再マップ解析が続行される。
【0166】
幾つかの例では、検索範囲内のすべての空間的並進値(ui,t,vi,t)について、T(Pi,t)とパックされたパッチリストL内の一部のパッチとの間で重複が発生した場合、再マップ解析は停止する(早期停止と呼ばれる)。早期停止は、所与の検索範囲で再マップが実行不可能であることを示す。例では、再マッピング段階(S1140)はスキップされる。その結果、所与の時間インスタンス(t)での再マッピングは実行されない。
【0167】
一部の例では、クラスNのパッチによる再マップ解析が早期停止せずに完了した場合、再マッピング(S1140)を実行できる。
【0168】
(S1140)で再マップ解析を行う。
【0169】
例によっては、再マッピング中に、新しいテクスチャマップや新しい属性マップなどの1つ以上の新しい2Dマップが時間インスタンス(t)に対して生成される。例では、元の2Dマップ(例えば、オリジナルのテクスチャマップやオリジナルの属性マップ)の各ピクセルをチェックして、そのピクセルがパッチに属しているかどうかを決定できる。
【0170】
ピクセルがパッチPi,tに属している場合、そのピクセルは占有ピクセルである。パッチPi,tの占有ピクセルについては、ピクセルの位置にパッチPi,tの回転角と空間的並進値を適用することによって、新しい2Dマップ内の新しい位置(例えば、新しいジオメトリマップ、新しいテクスチャマップ、又は新しい属性マップ)を決定できる。幾つかの例では、パッチPi,tはクラスNにあり、従って、パッチPi,tの再マップ変換パラメータは、tに回転角パラメータを含まない場合があり、従って、ピクセルに回転が適用されないことに注意する。ピクセルの新しい位置を導出した後、元の2Dマップのピクセル値(例えば、ジオメトリマップ、テクスチャマップ、属性値)が新しい2Dマップの新しい位置の値に割り当てられる。その後、再マッピングは次のピクセルへと続行する。
【0171】
ピクセルがどのパッチにも属していない場合、そのピクセルは元の2Dマップ(例えば、ジオメトリマップ、テクスチャマップ、属性マップ)では占有されていないピクセルであり、再マッピングは次のピクセルへと続行する。
【0172】
元の2Dマップで占有されているすべてのピクセルのピクセル値が新しい2Dマップに再マッピングされた後、新しいマップに値が割り当てられていないピクセルが存在する場合がある。これらは、新しい2Dマップの占有されていないピクセルである。
【0173】
新しい2Dマップ(例えば、新しいジオメトリマップ、新しいテクスチャマップ、新しい属性マップ)の占有されていないピクセルについて、任意の適切な値を割り当てることができる。例では、コーディング効率を向上させるために、占有された空間的/時間的近隣の値から占有されていないピクセルを導出できる。別の例では、占有されていないピクセルに定数値を割り当てることができ、その定数値はすべての占有されたピクセルの平均値又は中央値にすることができる。別の例では、境界拡張技術を使用して、パッチの境界を拡張し、占有されていないピクセルを境界値で満たす。別の例では、ミップマップ技術を使用して、占有されていないピクセルを満たす。
【0174】
幾つかの実施形態では、ジオメトリマップ、テクスチャマップ、属性画像などの各2Dマップに対して、パッチの時間的位置合わせを適用して、新しいジオメトリマップ、新しいテクスチャマップ、新しい属性マップなどの新しい2Dマップを生成する。ただし、再マップ解析中の早期停止の場合、新しい2Dマップは元の2Dマップの正確なコピーになる可能性がある。
【0175】
幾つかの例では、正に第1の2Dマップなど、メッシュシーケンスの開始時の2Dマップ(例えば、ジオメトリマップ、テクスチャマップ又は属性マップ)の場合、対応する新しい2Dマップは元の2Dマップの正確なコピーにすることができる。幾つかの例では、将来の時間インスタンスの2Dマップが参照フレームとして使用され、メッシュシーケンスの正に第1の2Dマップに対して新しい2Dマップを生成できる。
【0176】
幾つかの例では、新しい2Dマップシーケンスを形成するためにすべての時間インスタンスに対して新しい2Dマップ(例えば、新しいジオメトリマップ、新しいテクスチャマップ、新しい属性マップ)が生成され、新しい2Dマップシーケンスに圧縮を適用できる。
【0177】
幾つかの例では、デコーダ側で2Dマップ(例えば、テクスチャマップ又は属性マップ)を元のUV座標に復元するために、各パッチの再マップ変換パラメータをエンコーダとデコーダ間で通信し、デコーダが元の2Dマップを復元できるようにする。
【0178】
開示の一態様によれば、再マップ変換パラメータは様々な技術によってコーディングすることができる。幾つかの例では、各パッチについて、再マップ変換が自明でない変換であるかどうかを示すために、1ビットの変換フラグをシグナリングすることができる。自明な変換は、反射がなく、回転角が0度であり、空間的並進値が(0.0)である再マップ変換である。幾つかの例では、コーディングの前に回転角を量子化できる。例では、回転角の量子化は、π/2、π/4、又はその他の量子化ステップで行うことができる。幾つかの例では、コーディングの前に空間的並進値を量子化できる。空間的並進値の量子化は、整数値、浮動小数点値、又はその他の量子化ステップの量子化ステップで行うことができる。
【0179】
幾つかの実施形態では、メッシュ表現(Wavefront objファイルのような3Dジオメトリ表現など)のUV座標が更新される。例えば、ジオメトリマップは新しいジオメトリマップに更新される。UV座標が更新された後は、再マップ変換パラメータを符号化する必要はない。
【0180】
開示の別の態様によると、適応サンプリングはエンコーダ側で適用される場合がある。幾つかの例では、パッチの時間的位置合わせ方法を適応サンプリング方法と共に利用することができる。
【0181】
適応サンプリングでは、情報を表現するために必要な帯域幅を減らすことができるジオメトリマップ、テクスチャマップ、又は属性マップに、サンプリングステップを適応的に適用する。適応サンプリングの後、ジオメトリマップ、テクスチャマップ、又は属性マップなどの2Dマップのパッチを時間的に位置合わせすることができる。パッチは、適応サンプリング中に異なるサンプリングレートでサンプリングされている場合があることに注意する。
【0182】
図12は、本開示の一実施形態による、処理(1200)の概要を示すフローチャートを示す。処理(1200)は、メッシュの符号化処理中に使用できる。様々な実施形態では、処理(1200)は処理回路によって実行される。幾つかの実施形態では、処理(1200)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路が処理(1200)を実行する。処理は(S1201)で開始し、(S1210)に進む。
【0183】
(S1210)で、少なくとも第1時間インスタンスに関連付けられた第1メッシュフレームと、第2時間インスタンスに関連付けられた第2メッシュフレームが受信される。第1メッシュフレームと第2メッシュフレームは、多角形を有するオブジェクトの表面を表す。第1メッシュフレームには、第1時間インスタンスにおいて3D情報が2Dにマップされた第1パッチを持つ第1の2Dマップが含まれる。第2メッシュフレームには、第2時間インスタンスにおいて3D情報が2Dにマップされた第2パッチを持つ第2の2Dマップが含まれる。
【0184】
(S1220)で、第1パッチのうちの1つの第1パッチが、第2パッチのうちの1つの第2パッチの参照一致パッチであることが識別される。
【0185】
(S1230)で、第1の2Dマップの第1パッチに対する第2パッチの時間的位置合わせのための第1再マップ変換パラメータが決定される。
【0186】
(S1240)で、第2の2Dマップに対応する新しい第2の2Dマップが生成される。新しい2Dマップには、第1再マップ変換パラメータに従って第2パッチから変換される、変換された第2パッチが含まれる。
【0187】
幾つかの例では、第1パッチが第2パッチの参照一致パッチであることを識別するために、クロスマッチ技術が使用される。例では、第1パッチに対して各々第2パッチの第1一致メトリックが決定される。第1パッチは、第1一致メトリックに従って、第1パッチから最も一致するパッチとして選択される。次に、第2パッチに対して各々第1パッチの第2一致メトリックが決定される。第1パッチは、第2一致メトリックに従って、第2パッチが最も一致するパッチであることに応答して、第2パッチの参照一致パッチであると決定される。
【0188】
例では、第1パッチの特定のパッチに対する第2パッチの一致メトリックは、第2パッチと特定のパッチの一致する特徴点に従って決定される。別の例では、第2パッチの3D座標の中心と特定のパッチの3D座標の中心の違いに応じて、第1パッチの特定のパッチに対する第2パッチの一致メトリックが決定される。別の例では、第2パッチと特定のパッチの間の3D座標のハウスドルフ(Hausdorff)距離に応じて、第1パッチの特定のパッチに対する第2パッチの一致メトリックが決定される。
【0189】
幾つかの例では、時間的位置合わせのための第1再マップ変換パラメータには、回転パラメータ、反射パラメータ、及び空間的並進パラメータの少なくとも1つが含まれる。
【0190】
幾つかの実施形態では、第2パッチの第1再マップ変換パラメータは、少なくとも第1メッシュフレームと第2メッシュフレームを伝送するビットストリームに符号化される。
【0191】
幾つかの実施形態では、第2メッシュフレームのジオメトリ2Dマップは、第1再マップ変換パラメータに従って更新される。
【0192】
幾つかの実施形態では、第2パッチは第1クラスと第2クラスに分類される。第1クラスには、第1パッチで識別された対応する参照一致パッチを持つ第2パッチの第1サブセットが含まれ、第2クラスには、第1パッチで識別された参照一致パッチを持たない第2パッチの第2サブセットが含まれる。
【0193】
幾つかの例では、第2パッチの第1サブセットは、サイズによりサイズ順の第1パッチシーケンスに並べ替えられ、第1パッチシーケンスに従って第2パッチの第1サブセットの各々の再マップ変換パラメータが決定される。例では、第2パッチがサイズ順に従って第1パッチシーケンスから選択される。第1パッチシーケンスには、第2パッチよりもサイズが大きい少なくとも第3パッチが含まれている。第3パッチの第2再マップ変換パラメータが決定され、第2再マップ変換パラメータに従って変換された第3パッチは、パックされたパッチリストに追加される。第1パッチと最も類似性の高い回転した第2パッチを生成するための第1回転角が決定される。そして、パックされたパッチリスト内の変換されたパッチとの重複を避けるために、回転した第2パッチを移動するための第1空間的並進値が決定される。第2パッチは、第1回転角と第1空間的並進値に従って、変換された第2パッチを生成するように変換される。変換された第2パッチは、パックされたパッチリストに追加される。
【0194】
幾つかの例では、第2パッチを反映するかどうかは、反映された第2パッチと第1パッチとの第2最高類似性との最高類似性との類似性比較に基づいて決定される。
【0195】
幾つかの例では、事前定義されたウィンドウに重複がないことを可能にする空間的並進値がないことに応答して、第2パッチが第1クラスから削除され、第2クラスに追加される(例えば、第2類に分類される)。
【0196】
幾つかの例では、第2パッチの第2サブセットがサイズ順の第2パッチシーケンスにサイズにより並べられている。次に、第2パッチの第2サブセットの各々の再マップ変換パラメータが、第2パッチシーケンスに従って決定される。
【0197】
次に、処理は(S1299)に進み終了する。
【0198】
処理(1200)は、適切に適応させることができる。処理(1200)のステップは変更及び/又は省略できる。追加のステップを追加できる。任意の適切な実装順序を使用できる。
【0199】
本開示で開示された技術は、別個に使用され又は任意の順序で結合されてよい。さらに、技術(例えば、方法、実施形態)、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装されてもよい。幾つかの例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0200】
上述の技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実装でき、1つ以上のコンピュータ可読媒体に物理的に格納でる。例えば、
図13は、本開示の主題の特定の実施形態を実装するのに適するコンピュータシステム(1300)を示す。
【0201】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク等のメカニズムにより処理されて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、等により直接又はインタープリット、マイクロコード実行、等を通じて実行可能な命令を含むコードを生成し得る、任意の適切な機械コード又はコンピュータ言語を用いてコーディングできる。
【0202】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、等を含む種々のコンピュータ又はそのコンポーネントで実行できる。
【0203】
コンピュータシステム(1300)の
図13に示すコンポーネントは、本来例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に対するようないかなる限定も示唆しない。さらに、コンポーネントの構成も、コンピュータシステム(1300)の例示的な実施形態に示されたコンポーネントのうちのいずれか又は組み合わせに関連する任意の依存性又は要件を有すると解釈されるべきではない。
【0204】
コンピュータシステム(1300)は、特定のヒューマンインタフェース入力装置を含んでよい。このようなヒューマンインタフェース入力装置は、例えば感覚入力(例えば、キーストローク、スワイプ、データグラブ動作)、音声入力(例えば、音声、クラッピング)、視覚的入力(例えば、ジェスチャ)、嗅覚入力(示されない)を通じた1人以上の人間のユーザによる入力に応答してよい。ヒューマンインタフェース装置は、必ずしも人間による意識的入力に直接関連する必要のない特定の媒体、例えば音声(例えば、会話、音楽、環境音)、画像(例えば、スキャンされた画像、デジタルカメラから取得された写真画像)、ビデオ(例えば、2次元ビデオ、3次元ビデオ、立体ビデオを含む)をキャプチャするためにも使用できる。
【0205】
入力ヒューマンインタフェース装置は、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグラブ(図示しない)、ジョイスティック(1505)、マイクロフォン(1306)、スキャナ(1307)、カメラ(1308)、のうちの1つ以上を含んでよい(そのうちの1つのみが示される)。
【0206】
コンピュータシステム(1300)は、特定のヒューマンインタフェース出力装置も含んでよい。このようなヒューマンインタフェース出力装置は、例えば感覚出力、音声、光、及び匂い/味を通じて1人以上の人間のユーザの感覚を刺激してよい。このようなヒューマンインタフェース出力装置は、感覚出力装置を含んでよい(例えば、タッチスクリーン(1310)、データグラブ(図示しない)、又はジョイスティック(1305)による感覚フィードバック、しかし入力装置として機能しない感覚フィードバック装置も存在し得る)、音声出力装置(例えば、スピーカ(1309)、ヘッドフォン(図示しない)、視覚的出力装置(例えば、スクリーン(1310)、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、各々タッチスクリーン入力能力を有し又は有さず、各々感覚フィードバック能力を有し又は有さず、これらのうちの幾つかは例えば立体出力、仮想現実眼鏡(図示しない)、ホログラフィックディスプレイ、及び発煙剤タンク(図示しない)、及びプリンタ(図示しない)のような手段を通じて2次元視覚出力又は3次元以上の出力を出力可能であってよい))。
【0207】
コンピュータシステム(1300)は、人間のアクセス可能な記憶装置、及び、例えばCD/DVD等の媒体(1321)を備えるCD/DVD ROM/RW(1320)を含む光学媒体、サムドライブ(1322)、取り外し可能ハードドライブ又は固体ドライブ(1323)、テープ及びフロッピディスク(図示しない)のようなレガシー磁気媒体、セキュリティドングル(図示しない)等のような専用ROM/ASIC/PLDに基づく装置のような関連する媒体も含み得る。
【0208】
当業者は、本開示の主題と関連して使用される用語「コンピュータ可読媒体」が伝送媒体、搬送波、又は他の一時的信号を包含しないことも理解すべきである。
【0209】
コンピュータシステム(1300)は、1つ以上の通信ネットワーク(1355)へのインタフェース(1354)も含み得る。ネットワークは、例えば無線、有線、光であり得る。ネットワークへは、更に、ローカル、広域、都市域、車両及び産業、リアルタイム、耐遅延性、等であり得る。ネットワークの例は、イーサネットのようなローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業、等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺機器バス(1349)(例えば、コンピュータシステム(1300)のUSBポート)に取り付けられる外部ネットワークインタフェースを必要とする。他のものは、一般に、後述するようなシステムバスへの取り付けによりコンピュータシステム(1300)のコアに統合される(例えば、イーサネットインタフェースをPCコンピュータシステムへ、又はセルラネットワークインタフェースをスマートフォンコンピュータシステムへ)。これらのネットワークを用いて、コンピュータシステム(1300)は、他のエンティティと通信できる。このような通信は、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbus装置へのCANbus)、又は例えばローカル又は広域デジタルネットワークを用いて他のコンピュータシステムへの双方向であり得る。特定のプロトコル及びプロトコルスタックが、上述のネットワーク及びネットワークインタフェースの各々で使用され得る。
【0210】
前述のヒューマンインタフェース装置、人間のアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム(1300)のコア(1340)に取り付け可能である。
【0211】
コア(1340)は、1つ以上の中央処理ユニット(CPU)(1341)、グラフィック処理ユニット(GPU)(1342)、FPGAの形式の専用プログラマブル処理ユニット(1343)、特定タスクのためのハードウェアアクセラレータ(1344)、グラフィックアダプタ(1350)、等を含み得る。これらの装置は、読み出し専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、内部のユーザアクセス不可能なハードドライブ、SSD、等のような内蔵大容量記憶装置(1347)と共に、システムバス(1348)を通じて接続されてよい。幾つかのコンピュータシステムでは、追加CPU、GPU、等による拡張を可能にするために、システムバス(1348)は、1つ以上の物理プラグの形式でアクセス可能である。周辺機器は、コアのシステムバス(1348)に直接に、又は周辺機器バス(1349)を通じて、取り付け可能である。例では、スクリーン(1310)は、グラフィックアダプタ(1350)に接続できる。周辺機器バスのアーキテクチャは、PCI、USB等を含む。
【0212】
CPU(1341)、GPU(1342)、FPGA(1343)、及びアクセラレータ(1344)は、結合されて前述のコンピュータコードを生成可能な特定の命令を実行できる。該コンピュータコードは、ROM(1345)又はRAM(1346)に格納できる。一時的データもRAM(1346)に格納でき、一方で、永久的データは例えば内蔵大容量記憶装置(1347)に格納できる。メモリ装置のうちのいずれかへの高速記憶及び読み出しは、CPU(1341)、GPU(1342)、大容量記憶装置(1347)、ROM(1345)、RAM(1346)等のうちの1つ以上に密接に関連付けられ得るキャッシュメモリの使用を通じて可能にできる。
【0213】
コンピュータ可読媒体は、種々のコンピュータにより実施される動作を実行するためのコンピュータコードを有し得る。媒体及びコンピュータコードは、本開示の目的のために特別に設計され構成されたものであり得、又は、コンピュータソフトウェア分野の当業者によく知られ利用可能な種類のものであり得る。
【0214】
例として及び限定ではなく、アーキテクチャを有するコンピュータシステム(1300)、及び具体的にはコア(1340)は、プロセッサ(CPU、GPU、FPGA、アクセラレータ、等を含む)が1つ以上の有形コンピュータ可読媒体内に具現化されたソフトウェアを実行した結果として、機能を提供できる。このようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(1347)又はROM(1345)のような非一時的特性のコア(1340)の特定の記憶装置、及び上述のようなユーザアクセス可能な大容量記憶装置と関連付けられた媒体であり得る。本開示の種々の実施形態を実装するソフトウェアは、このような装置に格納されコア(1340)により実行できる。コンピュータ可読媒体は、特定の必要に従い、1つ以上のメモリ装置又はチップを含み得る。ソフトウェアは、コア(1340)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA、等を含む)に、ソフトウェアにより定義された処理に従うRAM(1346)に格納されたデータ構造の定義及び該データ構造の変更を含む、ここに記載した特定の処理又は特定の処理の特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、ここに記載の特定の処理又は特定の処理の特定の部分を実行するためにソフトウェアと一緒に又はそれに代わって動作可能な論理ハードワイヤド又は他の回路内の実装(例えば、アクセラレータ(1344))の結果として機能を提供できる。ソフトウェアへの言及は、ロジックを含み、適切な場合にはその逆も同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためにソフトウェアを格納する(集積回路(IC)のような)回路、実行のためにロジックを実装する回路、又はそれらの両方を含み得る。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを含む。
【0215】
本開示は、幾つかの例示的な実施形態を記載したが、代替、置換、及び種々の代用の均等物が存在し、それらは本開示の範囲に包含される。当業者に明らかなことに、ここに明示的に示され又は説明されないが、本開示の原理を実施し、従って、本開示の精神及び範囲に含まれる多数のシステム及び方法を考案可能である。
【国際調査報告】