(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-09
(45)【発行日】2024-08-20
(54)【発明の名称】メッシュ展開のための方法、装置、およびコンピュータプログラム
(51)【国際特許分類】
G06T 15/04 20110101AFI20240813BHJP
G06T 17/20 20060101ALI20240813BHJP
G06T 9/00 20060101ALI20240813BHJP
【FI】
G06T15/04
G06T17/20 500
G06T9/00 100
(21)【出願番号】P 2023555809
(86)(22)【出願日】2022-09-30
(86)【国際出願番号】 US2022077378
(87)【国際公開番号】W WO2023091818
(87)【国際公開日】2023-05-25
【審査請求日】2023-09-12
(32)【優先日】2021-11-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ジュン・ティアン
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】チャオ・フアン
(72)【発明者】
【氏名】シャン・リュウ
【審査官】鈴木 肇
(56)【参考文献】
【文献】米国特許出願公開第2021/0150802(US,A1)
【文献】米国特許出願公開第2021/0287430(US,A1)
【文献】米国特許出願公開第2018/0152688(US,A1)
【文献】米国特許出願公開第2020/0302632(US,A1)
【文献】国際公開第2021/165566(WO,A1)
【文献】米国特許出願公開第2020/0250889(US,A1)
【文献】特表2005-519382(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00- 1/40
G06T 3/00- 5/50
G06T 9/00-19/20
H04N 7/10- 7/173
H04N 7/20- 7/56
H04N 13/00-21/858
(57)【特許請求の範囲】
【請求項1】
メッシュ展開のための方法であって、
3次元(3D)メッシュフレームを搬送するビットストリームから2次元(2D)においてテクスチャマップをデコーディングするステップであって、前記3Dメッシュフレームは、ポリゴンを用いてオブジェクトの表面を表し、パッチに分割され、前記テクスチャマップは、再マップ変換パラメータに従って前記パッチの元のUV座標から変換された変換後UV座標を有する変換されたパッチを含み、前記再マップ変換パラメータは、前記変換されたパッチを生成するために実行された変換動作を示す、ステップと、
前記ビットストリームから前記パッチに関連付けられた前記再マップ変換パラメータをデコーディングするステップと、
前記再マップ変換パラメータに従って前記テクスチャマップから復元テクスチャマップを生成するステップであって、前記復元テクスチャマップ内の少なくとも第1の復元ピクセルには、前記テクスチャマップ内の第1の変換位置におけるテクスチャ値が割り当てられ、前記テクスチャマップ内の前記第1の変換位置は、前記第1の復元ピクセルのピクセル位置と、前記第1の復元ピクセルが属する第1のパッチに関連付けられた第1の再マップ変換パラメータとに従って決定される、ステップと、
前記復元テクスチャマップに従って前記3Dメッシュフレームを再構築するステップと、
を含む、方法。
【請求項2】
前記復元テクスチャマップを生成する前記ステップは、
前記第1の復元ピクセルの前記ピクセル位置を前記第1のパッチを示す第1のパッチインデックスにマッピングするインデックスマップによって、前記第1の復元ピクセルが前記第1のパッチに属することを決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記復元テクスチャマップを生成する前記ステップは、
前記第1のパッチの境界頂点に対応する第1のピクセル位置を識別するステップと、
前記第1のピクセル位置に前記第1の再マップ変換パラメータを適用することによって、前記第1のピクセル位置にそれぞれ対応する前記テクスチャマップ内の第1の変換位置を決定するステップと、
前記テクスチャマップの前記第1の変換位置における第1のテクスチャ値を、前記復元テクスチャマップ内の前記対応する第1のピクセル位置に割り当てるステップと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1のピクセル位置に従って、前記第1のパッチのパッチ内部である第2のピクセル位置を識別するステップと、
前記第2のピクセル位置に対して前記第1の再マップ変換パラメータを適用することによって、前記第2のピクセル位置に対応する前記テクスチャマップ内の第2の変換位置を決定するステップと、
前記テクスチャマップの前記第2の変換位置における第2のテクスチャ値を、前記復元テクスチャマップ内の前記対応する第2のピクセル位置に割り当てるステップと、
をさらに含む、請求項3に記載の方法。
【請求項5】
前記第1の変換位置の1つ以上の座標が整数でないことに応答して、補間によって前記テクスチャマップ内の前記第1の変換位置における前記テクスチャ値を決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項6】
前記第1の再マップ変換パラメータは、回転角度と、空間並進ベクトルと、反映動作を示す反映フラグとを含む、請求項1に記載の方法。
【請求項7】
前記第1の再マップ変換パラメータは、回転角度と空間並進ベクトルとを含み、前記回転角度の符号は、反映動作を示す、請求項1に記載の方法。
【請求項8】
前記復元テクスチャマップを生成する前記ステップは、
前記復元テクスチャマップ内の占有領域内の1つ以上の占有ピクセルに従って、前記復元テクスチャマップ内の非占有ピクセルに値を割り当てるステップであって、前記占有領域は、前記パッチに属する占有ピクセルを含み、前記非占有ピクセルは、前記占有領域の外側にある、ステップ
をさらに含む、請求項1に記載の方法。
【請求項9】
前記非占有ピクセルに前記値を割り当てる前記ステップは、
前記占有領域内の前記占有ピクセルの平均値および/または中央値のうちの少なくとも1つとして前記値を計算するステップ
をさらに含む、請求項8に記載の方法。
【請求項10】
前記非占有ピクセルに前記値を割り当てる前記ステップは、
前記復元テクスチャマップ内の境界ピクセルを決定するステップであって、前記境界ピクセルは、前記境界ピクセルの第1の近傍内に少なくとも非割り当て隣接ピクセルを有する占有ピクセルであり、前記非割り当て隣接ピクセルは、非割り当てテクスチャ値を有する、ステップと、
前記非割り当て隣接ピクセルの第2の近傍内に割り当て済み隣接ピクセルを決定するステップと、
前記第2の近傍内の前記割り当て済み隣接ピクセルに基づいて、前記非割り当て隣接ピクセルに割り当てる導出テクスチャ値を決定するステップと、
をさらに含む、請求項8に記載の方法。
【請求項11】
請求項1から10のいずれか一項に記載の方法を実施するように構成される処理回路を備えるメッシュ展開のための装置
。
【請求項12】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1から10のいずれか一項に記載の方法を行わせるように構成されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年9月28日に出願された「DECODING OF PATCH TEMPORAL ALIGNMENT FOR MESH COMPRESSION」という名称の米国特許出願第17/954,961号の優先権の利益を主張し、この米国特許出願は、2021年11月22日に出願された「Decoding of Patch Temporal Alignment for Mesh Compression」という名称の米国仮特許出願第63/264,417号の優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概してメッシュコーディングに関する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を概して提示するためのものである。本発明者らの研究は、この背景技術の項に記載されている限りにおいて、および出願時に先行技術として認められない可能性がある説明の態様は、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
3次元(3D)空間における世界のオブジェクト、世界の環境などの世界をキャプチャし表現するための種々の技術が開発されている。世界の3D表現により、より没入型のインタラクション、およびより没入型のコミュニケーションができるようになる可能性がある。一部の例では、点群およびメッシュを世界の3D表現として使用することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の態様は、メッシュコーディング(エンコーディングおよび/またはデコーディング)のための方法および装置を提供する。一部の例では、メッシュをコーディングするための装置は処理回路を含む。処理回路は、3次元(3D)メッシュフレームを搬送するビットストリームから2次元(2D)のテクスチャマップをデコーディングする。3Dメッシュフレームは、ポリゴンを用いてオブジェクトの表面を表し、パッチに分割される。テクスチャマップは、再マップ変換パラメータに従ってパッチの元のUV座標から変換された変換後UV座標を有する変換パッチを含む。再マップ変換パラメータは、変換されたパッチを生成するために実行された変換動作を示す。処理回路は、ビットストリームからパッチに関連付けられた再マップ変換パラメータをデコーディングし、再マップ変換パラメータに従ってテクスチャマップから復元テクスチャマップを生成する。復元テクスチャマップ内の少なくとも第1の復元ピクセルに、テクスチャマップ内の第1の変換位置におけるテクスチャ値が割り当てられ、テクスチャマップ内の第1の変換位置は、第1の復元ピクセルのピクセル位置と、第1の復元ピクセルが属する第1のパッチに関連付けられた第1の再マップ変換パラメータとに従って決定される。次いで、処理回路は、復元テクスチャマップに従って3Dメッシュフレームを再構築する。
【0006】
一部の実施形態では、復元テクスチャマップを生成するために、処理回路は、第1の復元ピクセルのピクセル位置を第1のパッチを示す第1のパッチインデックスにマッピングするインデックスマップに従って、第1の復元ピクセルが第1のパッチに属すると決定する。
【0007】
一部の実施形態では、復元テクスチャマップを生成するために、処理回路は、第1のパッチの境界頂点に対応する第1のピクセル位置を識別し、第1のピクセル位置に第1の再マップ変換パラメータを適用することによって、第1のピクセル位置にそれぞれ対応するテクスチャマップ内の第1の変換位置を決定する。処理回路は、テクスチャマップの第1の変換位置における第1のテクスチャ値を、復元テクスチャマップ内の対応する第1のピクセル位置に割り当てる。
【0008】
一部の例では、処理回路は、第1のピクセル位置に従って第1のパッチのパッチ内部である第2のピクセル位置を識別し、第1の再マップ変換パラメータを第2のピクセル位置に適用することによって、第2のピクセル位置に対応するテクスチャマップ中の第2の変換位置を決定する。処理回路は、テクスチャマップの第2の変換位置における第2のテクスチャ値を、復元テクスチャマップ内の対応する第2のピクセル位置に割り当てる。
【0009】
一部の例では、処理回路は、第1の変換位置の1つ以上の座標が整数でないことに応答して、補間によってテクスチャマップ内の第1の変換位置におけるテクスチャ値を決定する。
【0010】
一部の例では、第1の再マップ変換パラメータは、回転角度と、空間並進ベクトルと、反映動作を示す反映フラグとを含む。第1の再マップ変換パラメータは、回転角度および空間並進ベクトルを含み、回転角度の符号は、反映動作を示す。
【0011】
一部の例では、処理回路は、復元テクスチャマップ内の占有領域内の1つ以上の占有ピクセルに従って、復元テクスチャマップ内の非占有ピクセルに値を割り当て、占有領域は、パッチに属する占有ピクセルを含み、非占有ピクセルは、占有領域の外側にある。一例では、処理回路は、占有領域内の占有ピクセルの平均値および/または中央値のうちの少なくとも1つとして値を計算する。別の例では、処理回路は、復元テクスチャマップ内の境界ピクセルを決定し、境界ピクセルは、境界ピクセルの第1の近傍内に少なくとも非割り当て隣接ピクセルを有する占有ピクセルであり、非割り当て隣接ピクセルは、非割り当てテクスチャ値を有する。処理回路は、非割り当て隣接ピクセルの第2の近傍内の割り当て済み隣接ピクセルを決定し、第2の近傍内の割り当て済み隣接ピクセルに基づいて、非割り当て隣接ピクセルに割り当てる導出テクスチャ値を決定する。
【0012】
本開示の態様はまた、コンピュータによって実行されたとき、コンピュータに、メッシュコーディングのための方法のいずれか1つまたは組み合わせを実行させる命令を記憶した非一時的コンピュータ可読媒体を提供する。
【0013】
開示される主題のさらなる特徴、性質、および種々の利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0014】
【
図1】一部の例における通信システムのブロック図を示す。
【
図2】一部の例におけるストリーミングシステムのブロック図を示す。
【
図3】一部の例における点群フレームをエンコーディングするためのエンコーダのブロック図を示す。
【
図4】一部の例における点群フレームに対応する圧縮されたビットストリームをデコーディングするためのデコーダのブロック図を示す。
【
図5】一部の例におけるビデオデコーダのブロック図を示す。
【
図6】一部の例におけるビデオエンコーダのブロック図を示す。
【
図7】一部の例における点群フレームをエンコーディングするためのエンコーダのブロック図を示す。
【
図8】一部の例における点群フレームを搬送する圧縮されたビットストリームをデコーディングするためのデコーダのブロック図を示す。
【
図9】一部の例におけるアトラスへのメッシュのマッピングを示す図を示す。
【
図10】一例における2つの時間インスタンスにおけるテクスチャマップを示す。
【
図11】一部の例におけるプロセス例を概説するフローチャートを示す。
【
図12】一部の例におけるプロセス例を概説するフローチャートを示す。
【
図13】一部の例におけるプロセス例を概説するフローチャートを示す。
【
図14】一部の例におけるプロセス例を概説するフローチャートを示す。
【
図15】一部の例におけるプロセス例を概説するフローチャートを示す。
【
図16】一部の例におけるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0015】
本開示の態様は、3次元(3D)メディア処理の分野における技術を提供する。
【0016】
3次元(3D)キャプチャ、3Dモデリング、および3Dレンダリングなどの進歩など、3Dメディア処理における技術開発は、一部のプラットフォームおよびデバイスにわたる3Dメディアコンテンツのユビキタスな存在を促進してきた。一例では、赤ん坊の最初の一歩をある大陸でキャプチャすることができ、メディア技術は、祖父母が別の大陸で赤ん坊を見て(場合によっては相互作用して)、赤ん坊との没入型体験を楽しむということを可能にすることができる。本開示の一態様によれば、没入型体験を改善するために、3Dモデルはますます高度化されており、3Dモデルの作成および消費は、データストレージ、データ伝送リソースなどの相当量のデータリソースを占有する。
【0017】
本開示の一部の態様によれば、点群およびメッシュを3Dモデルとして使用して、没入型コンテンツを表すことができる。
【0018】
点群は、概して、3D空間内のポイントのセットを指すことができ、各ポイントは、色、材料特性、テクスチャ情報、強度属性、反映率属性、動き関連属性、モダリティ属性、および種々の他の属性などの関連する属性を有する。点群は、オブジェクトまたはシーンをかかる点の合成として再構築するために使用され得る。
【0019】
オブジェクトのメッシュ(メッシュモデルとも称される)は、オブジェクトの表面を記述するポリゴンを含み得る。各ポリゴンは、3D空間におけるポリゴンの頂点と、頂点がどのようにポリゴンに接続されるかの情報とによって定義することができる。頂点がどのように接続されるかの情報は、接続性情報と称される。一部の例では、メッシュはまた、頂点に関連付けられた、色、法線などの属性を含み得る。
【0020】
本開示の一部の態様によれば、点群圧縮(PCC)のための一部のコーディングツールが、メッシュ圧縮のために使用され得る。例えば、メッシュは、新しいメッシュの接続性情報が推論され得る新しいメッシュを生成するために再メッシュ化され得る。新しいメッシュの頂点、および新しいメッシュの頂点に関連付けられた属性は、点群内の点と見なすことができ、PCCコーデックを使用して圧縮することができる。
【0021】
点群は、点の合成としてオブジェクトまたはシーンを再構築するために使用することができる。点は、種々のセットアップで複数のカメラ、深度センサ、またはライダーを使用してキャプチャされ得、再構築されたシーンまたはオブジェクトを現実的に表すために、数千から数十億までの点から構成され得る。パッチは、概して、点群によって記述される表面の連続したサブセットを指すことができる。一例では、パッチは、互いからの偏差が閾値量未満である表面法線ベクトルを有する点を含む。
【0022】
PCCは、G-PCCと称されるジオメトリベースの方式、V-PCCと称されるビデオコーディングベースの方式など、種々の方式に従って実行され得る。本開示の一部の態様によれば、G-PCCは、3Dジオメトリを直接エンコーディングし、ビデオコーディングと多くを共有することのない純粋にジオメトリベースの手法であり、V-PCCは、ビデオコーディングに大きく基づく。例えば、V-PCCは、3Dクラウドの点を2Dグリッド(画像)のピクセルにマッピングすることができる。V-PCC方式は、点群圧縮のために汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)またはV-PCCコーデックとすることができる。
【0023】
本開示の一態様によれば、V-PCC方式は、既存のビデオコーデックを使用して、点群のジオメトリ、占有、およびテクスチャを3つの別個のビデオシーケンスとして圧縮することができる。3つのビデオシーケンスを解釈するために必要な追加のメタデータは、別々に圧縮される。ビットストリーム全体の小部分はメタデータであり、これは、一例ではソフトウェア実装形態を使って効率的にエンコーディング/デコーディングされることができる。情報の大部分は、ビデオコーデックによって処理される。
【0024】
図1は、一部の例における通信システム(100)のブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された一対の端末デバイス(110)および(120)を含む。
図1の例では、第1の対の端末デバイス(110)および(120)は、点群データの一方向送信を実行することができる。例えば、端末デバイス(110)は、端末デバイス(110)に接続されたセンサ(105)によって取り込まれた点群(例えば、構造を表す点)を圧縮することができる。圧縮点群は、例えばビットストリームの形態で、ネットワーク(150)を介して他の端末デバイス(120)に送信することができる。端末デバイス(120)は、ネットワーク(150)から圧縮点群を受信し、ビットストリームを展開して点群を再構築し、再構築された点群を適切に表示することができる。単方向データ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0025】
図1の例では、端末デバイス(110)および(120)は、サーバおよびパーソナルコンピュータとして示され得るが、本開示の原理はそのように限定されないことがある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、および/または専用3次元(3D)機器に用途を見出す。ネットワーク(150)は、端末デバイス(110)と(120)との間で圧縮点群を送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば、ワイヤライン(有線)および/またはワイヤレス通信ネットワークを含み得る。ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、インターネットなどが含まれる。
【0026】
図2は、一部の例におけるストリーミングシステム(200)のブロック図を示す。ストリーミングシステム(200)は、点群の使用アプリケーションである。開示される主題は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーションなどの他の点群対応アプリケーションに等しく適用可能であり得る。
【0027】
ストリーミングシステム(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)の出力ストリームを作成する。
【0028】
電子デバイス(220)および(230)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(220)はデコーダ(図示せず)を含むことができ、電子デバイス(230)はエンコーダ(図示せず)も含み得る。
【0029】
一部のストリーミングシステムでは、圧縮点群(204)、(207)、および(209)(例えば、圧縮点群のビットストリーム)は、一部の規格に従って圧縮され得る。一部の例では、点群の圧縮においてビデオコーディング規格が使用される。それらの規格の例は、高効率ビデオコーディング(HEVC)、汎用ビデオコーディング(VVC)などを含む。
【0030】
図3は、一部の実施形態による、点群フレームをエンコーディングするためのV-PCCエンコーダ(300)のブロック図を示す。一部の実施形態では、V-PCCエンコーダ(300)は、通信システム(100)およびストリーミングシステム(200)で使用することができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様に構成され、動作することができる。
【0031】
V-PCCエンコーダ(300)は、点群フレームを非圧縮入力として受け取り、圧縮点群フレームに対応するビットストリームを生成する。一部の実施形態では、V-PCCエンコーダ(300)は、点群ソース(201)などの点群ソースから点群フレームを受信することができる。
【0032】
図3の例では、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)、パッチパッキングモジュール(308)、ジオメトリ画像生成モジュール(310)、テクスチャ画像生成モジュール(312)、パッチ情報モジュール(304)、占有マップモジュール(314)、平滑化モジュール(336)、画像パディングモジュール(316)および(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322)、(323)および(332)、補助パッチ情報圧縮モジュール(338)、エントロピー圧縮モジュール(334)、ならびにマルチプレクサ(324)を含む。
【0033】
本開示の一態様によれば、V-PCCエンコーダ(300)は、圧縮点群を展開点群に変換して戻すために使用される何らかのメタデータ(例えば、占有マップおよびパッチ情報)とともに、3D点群フレームを画像ベースの表現に変換する。一部の例では、V-PCCエンコーダ(300)は、3D点群フレームをジオメトリ画像、テクスチャ画像、および占有マップに変換し、次いで、ビデオコーディング技術を使用して、ジオメトリ画像、テクスチャ画像、および占有マップをビットストリームにエンコーディングすることができる。概して、ジオメトリ画像は、ピクセルに投影された点に関連付けられたジオメトリ値で満たされたピクセルを有する2D画像であり、ジオメトリ値で満たされたピクセルはジオメトリサンプルと称されることがある。テクスチャ画像は、ピクセルに投影された点に関連付けられたテクスチャ値で満たされたピクセルを有する2D画像であり、テクスチャ値で満たされたピクセルは、テクスチャサンプルと称されることがある。占有マップは、パッチによって占有されているか占有されていないかを示す値で満たされたピクセルを有する2D画像である。
【0034】
パッチ生成モジュール(306)は、点群をパッチのセットにセグメント化し(例えば、パッチは、点群によって記述される表面の連続サブセットとして定義される)、これは、各パッチが2D空間内の平面に対して深度フィールドによって記述され得るように、重複していてもしていなくてもよい。一部の実施形態では、パッチ生成モジュール(306)は、点群を、滑らかな境界を有する最小数のパッチに分解するとともに、再構築誤差を最小化することを目的とする。
【0035】
一部の例では、パッチ情報モジュール(304)は、パッチのサイズおよび形状を示すパッチ情報を収集することができる。一部の例では、パッチ情報は、画像フレームにパッキングされ、次いで、補助パッチ情報圧縮モジュール(338)によってエンコーディングされて、圧縮された補助パッチ情報を生成することができる。
【0036】
一部の例では、パッチパッキングモジュール(308)は、抽出されたパッチを2次元(2D)グリッド上にマッピングする一方で、未使用の空間を最小化し、グリッドのM×M(例えば、16×16)ブロックごとに一意のパッチが関連付けられることを保証するように構成される。効率的なパッチパッキングは、未使用空間を最小化すること、または時間的一貫性を保証することのいずれかによって、圧縮効率に直接影響を及ぼすことができる。
【0037】
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置における点群のジオメトリに関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置における点群のテクスチャに関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)およびテクスチャ画像生成モジュール(312)は、パッキングプロセス中に計算された3D-2Dマッピングを利用して、点群のジオメトリおよびテクスチャを画像として記憶する。複数の点が同じサンプルに投影される場合をより良好に処理するために、各パッチは、層と称される2つの画像上に投影される。一例では、ジオメトリ画像は、YUV420-8ビットフォーマットのW×Hの単色フレームによって表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングされた点に関連付けられる色を計算するために、再構築された/平滑化されたジオメトリを利用する。
【0038】
占有マップモジュール(314)は、各ユニットにおけるパディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドの各セルについて、セルが空き空間に属するか、または点群に属するかを示すバイナリマップを含む。一例では、占有マップは、各ピクセルについて、ピクセルがパディングされるか否かを記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルのブロックがパディングされるか否かをピクセルのブロックごとに記述するバイナリ情報を使用する。
【0039】
占有マップモジュール(314)によって生成された占有マップは、可逆コーディングまたは非可逆コーディングを使用して圧縮することができる。可逆コーディングが使用されるとき、エントロピー圧縮モジュール(334)は、占有マップを圧縮するために使用される。非可逆コーディングが使用される場合、ビデオ圧縮モジュール(332)は、占有マップを圧縮するために使用される。
【0040】
パッチパッキングモジュール(308)は、画像フレーム内にパッキングされた2Dパッチ間に一部の空きスペースを残すことができることに留意されたい。画像パディングモジュール(316)および(318)は、2Dビデオおよび画像コーデックに適し得る画像フレームを生成するために、空きスペースを埋める(パディングと称される)ことができる。画像パディングは、背景充填とも称され、未使用の空間を冗長な情報で充填することができる。一部の例では、良好な背景充填は、ビットレートを最小限に増加させるが、パッチ境界の周りに著しいコーディング歪みをもたらさない。
【0041】
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVCなどの適切なビデオコーディング規格に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、および占有マップなどの2D画像をエンコーディングすることができる。一例では、ビデオ圧縮モジュール(322)、(323)、および(332)は、別々に動作する個々の構成要素である。ビデオ圧縮モジュール(322)、(323)、および(332)は、別の例では単一の構成要素として実装され得ることに留意されたい。
【0042】
一部の例では、平滑化モジュール(336)は、再構築されたジオメトリ画像の平滑化された画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成(312)に提供することができる。次いで、テクスチャ画像生成(312)は、再構築されたジオメトリ画像に基づいて、テクスチャ画像の生成を調整することができる。例えば、パッチ形状(例えば、ジオメトリ)がエンコーディングおよびデコーディング中にわずかにひずんだとき、パッチ形状における歪みを補正するためにテクスチャ画像を生成するときに歪みが考慮に入れられ得る。
【0043】
一部の実施形態では、グループ拡張(320)は、再構築された点群のコーディング利得ならびに視覚的品質を改善するために、オブジェクト境界の周りのピクセルを冗長な低周波コンテンツでパディングするように構成される。
【0044】
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を、圧縮されたビットストリームに多重化することができる。
【0045】
図4は、一部の例における、点群フレームに対応する圧縮されたビットストリームをデコーディングするためのV-PCCデコーダ(400)のブロック図を示す。一部の例では、V-PCCデコーダ(400)は、通信システム(100)およびストリーミングシステム(200)で使用することができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様に動作するように構成することができる。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームに基づいて再構築された点群を生成する。
【0046】
図4の例では、V-PCCデコーダ(400)は、デマルチプレクサ(432)と、ビデオ展開モジュール(434)および(436)と、占有マップ展開モジュール(438)と、補助パッチ情報展開モジュール(442)と、ジオメトリ再構築モジュール(444)と、平滑化モジュール(446)と、テクスチャ再構築モジュール(448)と、色平滑化モジュール(452)とを含む。
【0047】
デマルチプレクサ(432)は、圧縮されたビットストリームを受信し、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離することができる。
【0048】
ビデオ展開モジュール(434)および(436)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮画像をデコーディングし、展開画像を出力することができる。例えば、ビデオ展開モジュール(434)は、圧縮されたテクスチャ画像をデコーディングし、展開されたテクスチャ画像を出力し、ビデオ展開モジュール(436)は、圧縮されたジオメトリ画像をデコーディングし、展開されたジオメトリ画像を出力する。
【0049】
占有マップ展開モジュール(438)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された占有マップをデコーディングし、展開された占有マップを出力することができる。
【0050】
補助パッチ情報展開モジュール(442)は、適切な規格(例えば、HEVC、VVCなど)に従って圧縮された補助パッチ情報をデコーディングし、展開された補助パッチ情報を出力することができる。
【0051】
ジオメトリ再構築モジュール(444)は、展開されたジオメトリ画像を受信し、展開された占有マップおよび展開された補助パッチ情報に基づいて、再構築された点群ジオメトリを生成することができる。
【0052】
平滑化モジュール(446)は、パッチのエッジにおける不一致を平滑化することができる。平滑化手順は、圧縮アーチファクトに起因してパッチ境界で生じ得る潜在的な不連続性を軽減することを目的とする。一部の実施形態では、平滑化フィルタが、圧縮/展開によって引き起こされ得る歪みを軽減するために、パッチ境界上に位置するピクセルに適用され得る。
【0053】
テクスチャ再構築モジュール(448)は、展開されたテクスチャ画像および平滑化されたジオメトリに基づいて、点群内の点のテクスチャ情報を決定することができる。
【0054】
色平滑化モジュール(452)は、着色の不一致を平滑化することができる。3D空間内の非隣接パッチは、しばしば、2Dビデオ内で互いに隣接してパッキングされる。一部の例では、非隣接パッチからのピクセル値は、ブロックベースのビデオコーデックによって混合され得る。色平滑化の目標は、パッチ境界に現れる可視アーチファクトを低減することである。
【0055】
図5は、一部の例におけるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、V-PCCデコーダ(400)において使用することができる。例えば、ビデオ展開モジュール(434)および(436)、占有マップ展開モジュール(438)は、ビデオデコーダ(510)と同様に構成することができる。
【0056】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスなどの圧縮画像からシンボル(521)を再構築するためのパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含む。パーサ(520)は、受信されたコーディングされたビデオシーケンスを構文解析/エントロピーデコーディングすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴うまたは伴わない算術コーディングなどを含む、種々の原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに関するサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含み得る。パーサ(520)は、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出することもできる。
【0057】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリから受信されたビデオシーケンスに対してエントロピーデコーディング/構文解析動作を実行することができる。
【0058】
シンボルの再構築(521)は、コーディングされたビデオピクチャまたはその一部のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なるユニットを含み得る。どのユニットが関与するか、およびどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のかかるサブグループ制御情報の流れは、明確にするために図示されていない。
【0059】
既に述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下で説明するように、一部の機能ユニットに概念的に再分割することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示される主題を説明する目的のために、以下の機能ユニットへの概念的な再分割が適切である。
【0060】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数と、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とを、シンボル(複数可)(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0061】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに関係することができる。かかる予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構築された現在ピクチャおよび/または完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
【0062】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関連することができる。かかる場合、動き補償予測ユニット(553)は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と称される)に加算され得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Yおよび参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御されることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間、動きベクトル予測機構などを含み得る。
【0063】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも称される)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるループ内フィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に応答することもでき、前に再構築されループフィルタリングされたサンプル値に応答することもできる。
【0064】
ループフィルタユニット(556)の出力は、レンダリングデバイスに出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することができるサンプルストリームとすることができる。
【0065】
特定のコーディングされたピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構築され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングされたピクチャの再構築を開始する前に、新しい現在ピクチャバッファを再割り当てすることができる。
【0066】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行することができる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格のシンタックスとビデオ圧縮技術または規格において文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能な全てのツールから、そのプロファイルの下で使用するために利用可能な唯一のツールとして、一部のツールを選択することができる。また、準拠のために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、毎秒メガサンプル単位で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様と、コーディングされたビデオシーケンス中でシグナリングされるHRDバッファ管理のためのメタデータとを通してさらに制限され得る。
【0067】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、点群を圧縮するV-PCCエンコーダ(300)において使用することができる。一例では、ビデオ圧縮モジュール(322)および(323)、ならびにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0068】
ビデオエンコーダ(603)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像などの画像を受信し、圧縮画像を生成することができる。
【0069】
一実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャ(画像)を、リアルタイムで、またはアプリケーションによって必要とされる任意の他の時間的制約の下で、コーディングされたビデオシーケンス(圧縮画像)にコーディングおよび圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。一部の実施形態では、コントローラ(650)は、以下で説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0070】
一部の実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャと(1つ以上の)参照ピクチャ(複数可)とに基づいて、シンボルストリームなどのシンボルを作成することを担う)ソースコーダ(630)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含み得る。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構築してサンプルデータを作成する(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮は、開示される主題において考慮されるビデオ圧縮技術において可逆であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの位置(ローカルまたはリモート)とは無関係にビット精度の結果をもたらすため、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット精度である。換言すれば、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネルエラーのために同期性を維持することができない場合に結果として生じるドリフト)のこの基本原理は、一部の関連技術においても使用される。
【0071】
「ローカル」デコーダ(633)の動作は、
図5に関連して上記で既に詳細に説明したビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であり得るため、パーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)において完全には実装されないことがある。
【0072】
動作中、一部の例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照(複数可)として選択され得る参照ピクチャ(複数可)のピクセルブロックとの間の差分をコーディングする。
【0073】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングすることができる。コーディングエンジン(632)の動作は、有利には、損失の多いプロセスとすることができる。コーディングされたビデオデータがビデオデコーダ(
図6に図示せず)においてデコーディングされ得るとき、再構築されたビデオシーケンスは、概して、一部のエラーを有するソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、(送信エラーがない場合に)遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通のコンテンツを有する再構築された参照ピクチャのコピーをローカルに記憶することができる。
【0074】
予測器(635)は、コーディングエンジン(632)の予測探索を実行することができる。すなわち、コーディングされる新しいピクチャに対して、予測器(635)は、新しいピクチャに対する適切な予測参照として機能することができる、(候補参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックごとにピクセルブロック単位で動作することができる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0075】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0076】
前述した全ての機能ユニットの出力は、エントロピーエンコーダ(645)でエントロピーコーディングされる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0077】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディングの間、コントローラ(650)は、各コーディングされたピクチャに、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る特定のコーディングされたピクチャタイプを割り当てることができる。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられ得る。
【0078】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス中の他のピクチャを使用することなくコーディングおよびデコーディングされ得るものであり得る。一部のビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者であれば、Iピクチャのこれらの変形およびそれらのそれぞれの用途および特徴を認識している。
【0079】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。
【0080】
双予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために多くとも2つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。同様に、複数予測ピクチャは、単一のブロックの再構築のために2つよりも多い参照ピクチャおよび関連するメタデータを使用することができる。
【0081】
ソースピクチャは、概して、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に再分割され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされ得る。
【0082】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的冗長性および空間的冗長性を利用する予測コーディング動作を含む種々の圧縮動作を実行することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0083】
ビデオは、時間シーケンスにおける複数のソースピクチャ(画像)の形態であり得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関を利用する。一例では、現在ピクチャと称される、エンコーディング/デコーディング中の特定のピクチャが、ブロックに分割される。現在ピクチャ中のブロックが、ビデオ中の、前にコーディングされ、まだバッファされている参照ピクチャ中の参照ブロックと同様であるとき、現在ピクチャ中のブロックは、動きベクトルと称されるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ中の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0084】
一部の実施形態では、インターピクチャ予測において双予測技術が使用され得る。双予測技術によれば、ビデオ中の現在ピクチャよりもデコーディング順序が両方とも前である(ただし、表示順序がそれぞれ過去および未来であり得る)第1の参照ピクチャおよび第2の参照ピクチャなど、2つの参照ピクチャが使用される。現在ピクチャ中のブロックは、第1の参照ピクチャ中の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ中の第2の参照ブロックを指す第2の動きベクトルとによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測され得る。
【0085】
さらに、コーディング効率を向上させるために、インターピクチャ予測においてマージモード技術を使用することができる。
【0086】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス中のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ中のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなど、同じサイズを有する。概して、CTUは、1つのルーマCTBおよび2つのクロマCTBである、3つのコーディングツリーブロック(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は、ルーマ予測ブロック(PB)と、2つのクロマPBとを含む。一実施形態において、コーディング(エンコーディング/デコーディング)時の予測動作は、予測ブロック単位で行われる。予測ブロックの一例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルについての値(例えば、ルーマ値)の行列を含む。
【0087】
図7は、一部の例におけるG-PCCエンコーダ(700)のブロック図を示す。G-PCCエンコーダ(700)は、点群データを受信し、点群データを圧縮して、圧縮点群データを搬送するビットストリームを生成するように構成することができる。一実施形態では、G-PCCエンコーダ(700)は、位置量子化モジュール(710)と、重複点除去モジュール(712)と、八分木エンコーディングモジュール(730)と、属性転送モジュール(720)と、詳細レベル(LOD)生成モジュール(740)と、属性予測モジュール(750)と、残差量子化モジュール(760)と、算術コーディングモジュール(770)と、逆残差量子化モジュール(780)と、加算モジュール(781)と、再構築された属性値を記憶するためのメモリ(790)とを含み得る。
【0088】
図示のように、入力点群(701)は、G-PCCエンコーダ(700)で受信することができる。点群(701)の位置(例えば、3D座標)は、量子化モジュール(710)に提供される。量子化モジュール(710)は、座標を量子化して、量子化された位置を生成するように構成される。重複点除去モジュール(712)は、量子化された位置を受信し、重複点を識別および除去するためにフィルタプロセスを実行するように構成される。八分木エンコーディングモジュール(730)は、重複点除去モジュール(712)からフィルタリングされた位置を受信し、八分木ベースのエンコーディングプロセスを実行して、ボクセルの3Dグリッドを記述する一連の占有コードを生成するように構成される。占有コードは、算術コーディングモジュール(770)に提供される。
【0089】
属性転送モジュール(720)は、入力点群の属性を受信し、複数の属性値がそれぞれのボクセルに関連付けられているときに属性転送プロセスを実行して各ボクセルの属性値を決定するように構成される。属性転送プロセスは、八分木エンコーディングモジュール(730)から出力された並べ替えられた点に対して実行することができる。転送動作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、八分木エンコーディングモジュール(730)から出力された並べ替えられた点に対して動作し、点を異なるLODに再編成するように構成される。LOD情報は、属性予測モジュール(750)に供給される。
【0090】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従って点を処理する。属性予測モジュール(750)は、メモリ(790)に記憶された現在点の近傍点の集合の再構築された属性に基づいて、現在点についての属性予測を生成する。その後、属性転送モジュール(720)から受信した元の属性値およびローカルに生成された属性予測に基づいて、予測残差を取得することができる。候補インデックスがそれぞれの属性予測プロセスにおいて使用されるとき、選択された予測候補に対応するインデックスが算術コーディングモジュール(770)に提供され得る。
【0091】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受信し、量子化残差を生成するために量子化を実行するように構成される。量子化された残差は、算術コーディングモジュール(770)に提供される。
【0092】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化された残差を受信し、残差量子化モジュール(760)において実行された量子化演算の逆を実行することによって、再構築された予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)から再構築された予測残差を受信し、属性予測モジュール(750)からそれぞれの属性予測を受信するように構成される。再構築された予測残差と属性予測とを組み合わせることによって、再構築された属性値が生成され、メモリに記憶される(790)。
【0093】
算術コーディングモジュール(770)は、占有コード、候補インデックス(使用される場合)、量子化された残差(生成される場合)、および他の情報を受信し、受信された値または情報をさらに圧縮するためにエントロピーエンコーディングを実行するように構成される。その結果、圧縮された情報を搬送する圧縮されたビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮されたビットストリームをデコーディングするデコーダに送信されるか、もしくは別の方法で提供されてもよく、または記憶デバイスに記憶されてもよい。
【0094】
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示す。G-PCCデコーダ(800)は、圧縮されたビットストリームを受信し、点群データ展開を実行してビットストリームを展開し、デコーディングされた点群データを生成するように構成することができる。一実施形態では、G-PCCデコーダ(800)は、算術デコーディングモジュール(810)と、逆残差量子化モジュール(820)と、八分木デコーディングモジュール(830)と、LOD生成モジュール(840)と、属性予測モジュール(850)と、再構築された属性値を記憶するためのメモリ(860)とを含み得る。
【0095】
示されるように、圧縮されたビットストリーム(801)は、算術デコーディングモジュール(810)において受信され得る。算術デコーディングモジュール(810)は、圧縮されたビットストリーム(801)をデコーディングして、量子化された残差(生成された場合)と点群の占有コードとを取得するように構成される。八分木デコーディングモジュール(830)は、占有コードに従って点群内の点の再構築された位置を決定するように構成される。LOD生成モジュール(840)は、再構築された位置に基づいて点を異なるLODに再編成し、LODベースの順序を決定するように構成される。逆残差量子化モジュール(820)は、算術デコーディングモジュール(810)から受信した量子化された残差に基づいて、再構築された残差を生成するように構成される。
【0096】
属性予測モジュール(850)は、属性予測プロセスを実行して、LODに基づく順序に従って点の属性予測を決定するように構成される。例えば、現在点の属性予測は、メモリ(860)に記憶された現在点の近傍点の再構築された属性値に基づいて決定することができる。一部の例では、属性予測は、現在点についての再構築された属性を生成するために、それぞれの再構築された残差と組み合わせられ得る。
【0097】
属性予測モジュール(850)から生成された再構築された属性のシーケンスは、八分木デコーディングモジュール(830)から生成された再構築された位置とともに、一例ではG-PCCデコーダ(800)から出力されるデコーディングされた点群(802)に対応する。加えて、再構築された属性もメモリ(860)に記憶され、その後、後続の点の属性予測を導出するために使用することができる。
【0098】
種々の実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、ハードウェア、ソフトウェア、またはそれらの組み合わせを用いて実装され得る。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、ソフトウェアとともにまたはソフトウェアなしで動作する1つ以上の集積回路(IC)などの処理回路を用いて実装することができる。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、不揮発性(または非一時的)コンピュータ可読記憶媒体に記憶された命令を含むソフトウェアまたはファームウェアとして実装することができる。命令は、1つ以上のプロセッサなどの処理回路によって実行されると、処理回路に、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)の機能を実行させる。
【0099】
本明細書で開示される属性予測技術を実装するように構成された属性予測モジュール(750)および(850)は、
図7および
図8に示されているものと同様または異なる構造を有し得る他のデコーダまたはエンコーダに含まれ得ることに留意されたい。加えて、エンコーダ(700)およびデコーダ(800)は、種々の例において、同じデバイスまたは別個のデバイスに含まれ得る。
【0100】
本開示の一部の態様によれば、メッシュ圧縮は、PCCコーディングツールとは異なるコーディングツールを使用することができるか、または上記のPCC(例えば、G-PCC、V-PCC)エンコーダ、上記のPCC(例えば、G-PCC、V-PCC)デコーダなど、PCCコーディングツールを使用することができる。
【0101】
オブジェクトのメッシュ(メッシュモデル、メッシュフレームとも称される)は、オブジェクトの表面を記述するポリゴンを含み得る。各ポリゴンは、3D空間におけるポリゴンの頂点と、頂点をポリゴンに接続するエッジとによって定義することができる。頂点がどのように接続されるかの情報(例えば、エッジの情報)は、接続性情報と称される。一部の例では、オブジェクトのメッシュは、オブジェクトの表面を記述する接続された三角形によって形成される。エッジを共有する2つの三角形は、2つの接続された三角形と称される。一部の他の例では、オブジェクトのメッシュは、接続された四辺形によって形成される。辺を共有する2つの四辺形は、2つの接続された四辺形と称することができる。メッシュは、他の適切な多角形によって形成され得ることに留意されたい。
【0102】
一部の例では、メッシュはまた、頂点に関連付けられた、色、法線などの属性を含み得る。属性は、2D属性マップを用いてメッシュをパラメータ化するマッピング情報を利用することによって、メッシュの表面に関連付けることができる。マッピング情報は、通常、メッシュ頂点に関連付けられた、UV座標またはテクスチャ座標と称されるパラメトリック座標のセットによって記述される。2D属性マップ(一部の例ではテクスチャマップと称される)は、テクスチャ、法線、変位などの高解像度属性情報を記憶するために使用される。かかる情報は、テクスチャマッピングおよびシェーディングなどの種々の目的のために使用され得る。
【0103】
一部の実施形態では、メッシュは、ジオメトリ情報、接続性情報、マッピング情報、頂点属性、および属性マップと称される構成要素を含み得る。一部の例では、ジオメトリ情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。一例では、(x,y,z)座標は、頂点の3D位置を記述するために使用され得、3D座標とも称される。一部の例では、接続性情報は、3D表面を作成するために頂点をどのように接続するかを記述する頂点インデックスのセットを含む。一部の例では、マッピング情報は、メッシュ表面を平面の2D領域にマッピングする方法を記述する。一例では、マッピング情報は、接続性情報とともにメッシュ頂点に関連付けられたUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。一部の例では、頂点属性は、メッシュ頂点に関連付けられたスカラーまたはベクトル属性値を含む。一部の例では、属性マップは、メッシュ表面に関連付けられ、2D画像/ビデオとして記憶される属性を含む。一例では、ビデオ(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって定義される。
【0104】
本開示の一態様によれば、UVマッピングまたはメッシュパラメータ化と称される一部の技術が、3Dドメイン内のメッシュの表面を2Dドメインにマッピングするために使用される。一部の例では、メッシュは3Dドメイン内のパッチに分割される。パッチは、境界エッジで形成された境界を有するメッシュの連続サブセットである。パッチの境界エッジは、パッチの1つのポリゴンのみに属し、パッチ内の2つの隣接するポリゴンによって共有されないエッジである。パッチ内の境界エッジの頂点は、パッチの境界頂点と称され、パッチ内の非境界頂点は、一部の例では、パッチの内部頂点と称され得る。
【0105】
一部の例では、オブジェクトのメッシュは、接続された三角形によって形成され、メッシュはパッチに分割され得、各パッチは接続された三角形のサブセットである。パッチの境界エッジは、パッチ内の1つの三角形のみに属し、パッチ内の隣接する三角形によって共有されないエッジである。パッチ内の境界エッジの頂点は、パッチの境界頂点と称され、パッチ内の非境界頂点は、一部の例では、パッチの内部頂点と称され得る。境界ループは、境界頂点のシーケンスを含み、境界頂点のシーケンスによって形成される境界エッジは、境界ループと称されるループを形成することができる。
【0106】
本開示の一態様によれば、パッチは、一部の例では、2D形状(UVパッチとも称される)にそれぞれパラメータ化される。2D形状は、一部の例ではアトラスとも称されるマップにパック(例えば、配向および配置)され得る。一部の例では、マップは、2D画像またはビデオ処理技術を使用してさらに処理され得る。
【0107】
一例では、UVマッピング技術は、3Dメッシュのパッチに対応する2DのUVアトラス(UVマップとも称される)および1つ以上のテクスチャアトラス(テクスチャマップとも称される)を生成する。UVアトラスは、3Dメッシュの3D頂点を2Dドメイン(例えば、矩形)内の2D点に割り当てることを含む。UVアトラスは、3D表面の座標と2Dドメインの座標との間のマッピングである。一例では、2D座標(u,v)におけるUVアトラス内の点は、3Dドメイン内の頂点の座標(x,y,z)によって形成される値を有する。一例では、テクスチャアトラスは、3Dメッシュの色情報を含む。例えば、(UVアトラスにおいて(x,y,z)の3D値を有する)2D座標(u,v)におけるテクスチャアトラス内の点は、3Dドメインにおける(x,y,z)における点の色属性を指定する色を有する。一部の例では、3Dドメインにおける座標(x,y,z)は、3D座標またはxyz座標と称され、2D座標(u,v)は、uv座標またはUV座標と称される。
【0108】
本開示の一部の態様によれば、メッシュ圧縮は、(一部の例では2Dアトラスとも称される)1つ以上の2Dマップを使用してメッシュを表し、次いで、画像コーデックまたはビデオコーデックを使用して2Dマップをエンコーディングすることによって実行され得る。異なる技術を使用して、2Dマップを生成することができる。
【0109】
図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によって形成される三角形はそれぞれの属性を有することができる。
【0110】
一例では、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座標を有することができる。
【0111】
マップ(920)は、ジオメトリ情報を有するジオメトリマップとすることができ、または色、法線、布地、もしくは他の属性情報を有するテクスチャマップとすることができ、または占有情報を有する占有マップとすることができる。
【0112】
各パッチは、
図9の例では三角形によって表されているが、パッチは、メッシュの連続サブセットを形成するように接続された任意の適切な数の頂点を含むことができることに留意されたい。一部の例では、パッチ内の頂点は、三角形に接続される。パッチ内の頂点は、他の適切な形状を使用して接続することができることに留意されたい。
【0113】
一例では、頂点のジオメトリ情報は、2Dジオメトリマップに記憶され得る。例えば、2Dジオメトリマップは、2Dジオメトリマップ中の対応する点におけるサンプリング点の(x,y,z)座標を記憶する。例えば、(u,v)位置における2Dジオメトリマップ内の点は、3Dメッシュ内の対応するサンプリング点のx、y、およびz値にそれぞれ対応する3つの成分のベクトル値を有する。
【0114】
本開示の一態様によれば、マップ中のエリアは完全に占有されていないことがある。例えば、
図9において、2D形状A’、B’、C’およびD’の外側の領域は未定義である。デコーディング後の2D形状A’、B’、C’およびD’の外側にある領域のサンプル値は、破棄することができる。場合によっては、占有マップを使用して、ピクセルがパッチに属するかまたは未定義であるかを識別するためにバイナリ値を記憶するなど、ピクセルごとに何らかの追加の情報を記憶する。
【0115】
本開示の一態様によれば、動的メッシュは、構成要素(ジオメトリ情報、接続性情報、マッピング情報、頂点属性、および属性マップ)のうちの少なくとも1つが時間とともに変化するメッシュである。動的メッシュは、一連のメッシュ(メッシュフレームとも称される)によって記述することができる。一部の例では、動的メッシュ内のメッシュフレームは、異なる時間におけるオブジェクトの表面の表現とすることができ、各メッシュフレームは、特定の時間(時間インスタンスとも称される)におけるオブジェクトの表面の表現である。動的メッシュは、経時的に変化する相当量の情報を含み得るため、大量のデータを必要とし得る。メッシュの圧縮技術は、メッシュ表現におけるメディアコンテンツの効率的な記憶および送信を可能にすることができる。
【0116】
一部の例では、動的メッシュは、一定の接続性情報、時変ジオメトリ、および時変頂点属性を有することができる。一部の例では、動的メッシュは、時変接続性情報を有することができる。一例では、デジタルコンテンツ作成ツールは、通常、時変属性マップおよび時変接続性情報を有する動的メッシュを生成する。一部の例では、動的メッシュを生成するために体積取得技術が使用される。ボリュメトリック取得技術は、特にリアルタイム制約の下で、時変接続性情報を有する動的メッシュを生成することができる。
【0117】
本開示の一態様によれば、テクスチャマッピング(例えば、テクスチャマップ、属性マップ)は、メッシュ表現の大部分を消費し、テクスチャマッピングの効率的な圧縮は、メッシュ圧縮における重要なタスクのうちの1つであり得る。一部の例では、ある時間インスタンスにおけるテクスチャマッピングは、パッチに対応する2D形状からなる画像(例えば、テクスチャマップ、属性マップ)を含み、2D形状はUVパッチとも称される。各UVパッチは、時間インスタンスにおけるメッシュの表面領域のテクスチャ情報(赤、緑、および青の色値など)を表す。画像のピクセル座標は、UV座標に対応する。
【0118】
図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位置によってそれぞれのテクスチャマップ内に配置される。
【0119】
本開示の一部の態様は、パッチを時間的に整合させる、例えば、テクスチャマップ、属性マップ、ジオメトリマップなどの2Dマップ中でUVパッチを時間的に整合させるためのエンコーディング技術を提供する。例えば、2Dマップ中のUVパッチが時間的に整合されるとき、2Dマップは、例えばインター予測技術を使用して、より効率的に圧縮され得る。一部の例では、メッシュは、2Dマップを使用して表され得、本開示における「パッチ」という用語は、2DマップのコンテキストにおけるUVパッチを指し得ることに留意されたい。
【0120】
図11は、本開示の一部の実施形態によるパッチの時間的位置合わせのプロセス(1100)の図を示す。プロセス(1100)は、メッシュのエンコーディングプロセス中に使用することができる。種々の実施形態において、プロセス(1100)は、処理回路によって実行される。一部の実施形態では、プロセス(1100)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1100)を実行する。プロセスは(S1101)で開始し、パッチ解析(S1110)、パッチ分類(S1120)、再マップ解析(S1130)、および再マッピング(S1140)を含む。
【0121】
(S1110)では、パッチ解析を行う。パッチ分析は、パッチの特性を分析することができる。一部の例では、パッチ分析中に、2Dマップ(例えば、属性マップ、テクスチャマップなど)中のそれぞれのパッチの特徴点が識別される。特徴点は、スケール不変特徴変換(SIFT)、高速化ロバスト特徴(SURF)、勾配位置および方向ヒストグラム(GLOH)、方向勾配ヒストグラム(HOG)などの任意の適切な手法によって識別することができる。
【0122】
一部の例では、パッチ分析中に、各パッチのメトリックが計算される。メトリックは、スケール不変メトリック、回転不変メトリック、並進不変メトリック、またはアフィン変換不変メトリックなどとすることができる。一部のメトリック例が、以下の説明において説明される。一部の例では、メトリック例は、パッチ分析におけるメトリックとして別々に使用され得る。一部の例では、メトリック例の2つ以上のメトリックを結合して、パッチ解析における結合メトリックを形成することができる。一部の例では、パッチの同様の特性を示す他の適切なメトリックが、パッチ分析において使用され得る。
【0123】
一部の例では、パッチの3D座標の中心が、パッチのメトリックとして計算され得る。例えば、パッチの3D座標の中心は、パッチ内の点(例えば、頂点)の3D座標のサブセットの加重和によって計算することができる。一例では、パッチの3D座標の中心は、境界点(例えば、境界頂点を含む)を含むパッチ内の全ての点(例えば、頂点)の3D座標を平均することによって計算され得る。別の例では、パッチの3D座標の中心は、境界点を除く(例えば、境界頂点を除く)、パッチ内の全ての点(例えば、頂点)の3D座標を平均することによって計算される。別の例では、パッチの3D座標の中心は、パッチの全ての境界頂点の3D座標の平均として計算される。
【0124】
一部の例では、パッチのUV座標の中心が、パッチのメトリックとして計算され得る。例えば、パッチのUV座標の中心は、パッチ内の点(例えば、頂点)のUV座標のサブセットの加重和によって計算することができる。一例では、パッチのUV座標の中心は、境界点(例えば、境界頂点)を含む、パッチ内の全ての点(例えば、頂点)のUV座標を平均することによって計算され得る。別の例では、パッチのUV座標の中心は、境界点(例えば、境界頂点)を除く、パッチ内の全ての点(例えば、頂点)のUV座標を平均することによって計算される。別の例では、パッチのUV座標の中心は、パッチの全ての境界頂点のUV座標の平均を取ることによって計算される。
【0125】
一部の例では、パッチ内の点のサブセットの加重平均テクスチャまたは属性値が、パッチのメトリックとして計算され得る。一例では、加重平均テクスチャまたは属性値は、境界点(例えば、境界頂点)を含むパッチ内の全ての点(例えば、頂点)のテクスチャまたは属性値(赤、緑、および青チャネル値など)を平均することによって計算され得る。別の例では、加重平均テクスチャまたは属性値は、境界点(例えば、境界頂点)を除く、パッチ内の全ての点(例えば、頂点)のテクスチャまたは属性値(赤、緑、および青チャネル値など)を平均することによって計算される。別の例では、加重平均テクスチャまたは属性値は、パッチの全ての境界頂点のテクスチャまたは属性値(赤、緑、および青のチャネル値など)の平均を取ることによって計算される。
【0126】
(1120)において、パッチ分類が実行される。一部の例では、パッチ分類中に、所与の時間インスタンスにおけるパッチは、それらのフレーム間一貫性または任意の他の時間/空間特性に基づいて、異なるカテゴリに分類され得る。
【0127】
一部の実施形態では、所与の時間インスタンスにおける2Dマップ(例えば、ジオメトリマップ、テクスチャマップまたは属性マップ)のパッチは、クラスMおよびクラスNと称される2つのクラスに分類され得る。クラスMは、参照マッチングパッチが過去の時間インスタンスにおいて発見されるパッチを含み、クラスNは、参照マッチングパッチが過去の時間インスタンスにおいて発見されないパッチを含む。一部の例では、パッチおよびパッチのための参照マッチングパッチは、異なる時間インスタンスにおけるオブジェクトの表面の一部分の表現であり得る。例えば、パッチは、現在時間におけるオブジェクトの特定の表面部分を表し、参照マッチングパッチは、過去の時間インスタンスにおけるオブジェクトの特定の表面部分を表す。
【0128】
パッチ分類中に、一部の例では、各パッチについて、過去の時間インスタンスにおける2Dマップ(例えば、ジオメトリマップ、テクスチャマップまたは属性マップ)に対して参照マッチング技術が採用されて、参照マッチングパッチが過去の時間インスタンスにおいて発見されるかどうかを決定する。
【0129】
一部の例では、技術は、所与の時間インスタンスにおけるパッチについて、例えば、パッチと参照マッチングパッチとが十分に一致した特徴点を有するとき、特徴マッチングに基づいて、過去の時間インスタンスにおける参照マッチングパッチを決定することができる。一実施形態では、クロス特徴マッチング技術を利用することができる。例えば、抽出された特徴点に基づいて、所与の時間インスタンス(t)におけるPi,tによって示されるパッチが、過去の時間インスタンス(t-k)における全てのパッチに対してマッチングされる。過去の時間インスタンス(t-k)における全てのパッチの中で、パッチPi,tについての(例えば、一致した特徴点の数に基づく)最良マッチングパッチは、Pi0,t-kによって示される。次いで、過去の時間インスタンス(t-k)におけるパッチPi0,t-kが、時間インスタンス(t)における全てのパッチに対してマッチングされて、最良の将来のマッチングパッチが見つけられる。Pi0,t-kに対する最良の将来のマッチングパッチがPi,tであるとき、Pi0,t-kおよびPi,tは、クロス特徴マッチング技術に従ってクロスマッチする。次いで、パッチPi,tについて、参照マッチングパッチが過去の時間インスタンスに存在し、Pi,tはクラスMに分類される。そうでない場合(例えば、Pi0,t-kについての最良の将来のマッチングパッチがPi,tでない)、Pi,tはクラスNに分類される。
【0130】
一部の例では、パッチ分類中に、メトリックマッチング技術が、過去の時間インスタンスにおける2Dマップ(例えば、ジオメトリマップ、テクスチャマップまたは属性マップ)に対して採用されて、参照マッチングパッチが過去の時間インスタンスにおいて見つけられるかどうかを決定する。一例では、3D座標の中心を使用して、時間インスタンス(t)におけるパッチPi,tが、過去の時間インスタンス(t-k)における全てのパッチに対してマッチングされ、ここでkは正の数である。過去の時間インスタンス(t-k)における全てのパッチの中で、パッチPi,tに対する3D座標の中心の最小差を有するパッチ(Pi0,t-kによって示される)が、最良マッチングパッチとして選択され得る。3D座標の中心の差は、l1ノルム、l2ノルム、または任意の他の距離尺度によって測定することができる。次いで、3D座標の中心を使用して、時間インスタンス(t)における全てのパッチに対して最良マッチングパッチPi0,t-kを一致させて、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に分類される。
【0131】
一部の例では、メトリックマッチング技術において2つ以上のメトリックを使用することができる。一例では、時間インスタンス(t)におけるパッチPi,tについて、過去の時間インスタンスにおけるクロスマッチパッチPi0,t-kが3D座標の中心に従って見つけられ、2つのクロスマッチパッチの別のメトリック(例えば、平均テクスチャ値)または2つのメトリック(例えば、平均テクスチャ値、およびUV座標の中心)の差は小さく、所与の閾値(または、2つのメトリックの場合には2つの所与の閾値)よりも小さく、Pi,tは、クラスMに分類される。それ以外の場合(例えば、他のメトリック(複数可)の差が閾値以上である場合)、Pi,tはクラスNに分類される。
【0132】
一部の例では、ハウスドルフ距離がメトリックマッチングにおいて使用される。例えば、時間インスタンスtにおけるパッチPi,tは、過去の時間インスタンス(t-k)における全てのパッチに対してマッチングしており、ここで、kは、3D座標のハウスドルフ距離に従う正の数である。
【0133】
一部の例では、ハウスドルフ距離は、メトリックマッチングにおいて、計算されたメトリック(平均テクスチャ値、および/または3D座標の中心、および/またはUV座標の中心など)のうちの1つ、2つ、またはそれ以上と組み合わされる。
【0134】
上記の説明におけるパッチ分類は、所与の時間インスタンスと過去の時間インスタンスとの参照マッチングを実行するが、パッチ分類は、所与の時間インスタンスと将来の時間インスタンスとの参照マッチングを使用して適用することもできることに留意されたい。例えば、所与の時間インスタンスにおける2Dマップ(例えば、ジオメトリマップ、テクスチャマップまたは属性マップ)のパッチは、クラスMおよびクラスNと称される2つのクラスに分類される。クラスMは、参照マッチングパッチが将来の時間インスタンスにおいて発見されるパッチを含み、クラスNは、参照マッチングパッチが将来の時間インスタンスにおいて発見されないパッチを含む。
【0135】
(S1130)では、再マップ解析を行う。一部の例では、再マップ分析中に、回転パラメータ、反映パラメータ、並進パラメータなどの再マップ変換パラメータが各パッチについて計算されて、パッチを時間領域においてより良好に位置合わせさせる。
【0136】
一部の例では、再マップ変換パラメータは、一致する局所特徴点に基づいて導出され得る。
【0137】
一部の例では、クラスM内のパッチを用いて再マップ解析を開始する。クラスM内のパッチを用いて再マップ解析を完了した後、クラスN内のパッチに対して再マップ解析を実行することができる。
【0138】
一実施形態では、再マップ分析のために、パッキングされたパッチリストLが空になるように初期化される。次いで、クラスM内のパッチがサイズによって順序付けられる。サイズ順に従って、クラスM内のパッチに対して再マップ解析が実行される。例えば、クラスM内の大きなパッチは、クラスM内の小さなパッチの前に分析される。一例では、パッチサイズは、境界を含むパッチ内のピクセルの数によって計算することができる。別の例では、パッチサイズは、境界を除くパッチ内のピクセルの数によって計算され得る。別の例では、パッチサイズは、パッチを含む最小の矩形境界ボックスの面積であり得る。
【0139】
一部の例では、回転角度は、参照マッチングパッチに対する最高の類似性を達成するために、各パッチについて再マップ分析中に決定される。一部の例では、クラスMにおけるパッチPi,tは、時間インスタンス(t-k)において参照マッチングパッチを有し、kは正の数であり、参照マッチングパッチは、パッチPi0,t-kによって示される。一例では、パッチPi,tについて、回転角度ri,tが決定され、それにより、角度ri,tでパッチPi,tを回転させた後のR(Pi,t)で表される回転されたパッチは、参照Pi0,t-kに対して最も高い類似性を有する(類似性値は、第1の最も高い類似性値と称される)。一部の例では、回転角度ri,tは、0と2πとの間の値であり、0≦ri,t<2πである。一部の例では、類似性は、IoU値によって測定することができる。一部の例では、類似度は、回転されたパッチR(Pi,t)と参照マッチングパッチPi0,t-kとの間の相互相関である。
【0140】
一部の例では、パッチPi,tは、反映パッチFPi,tを生成するために水平軸に沿って反映され、回転角度fi,tは、反映パッチFPi,tが参照Pi0,t-kに対して最も高い類似度(類似度の値は、2番目に高い類似度値と称される)を有するように決定される。次に、第1の最も高い類似値と第2の最も高い類似値との類似値を比較して、パッチPi,tに対してri,tを使用するか、または反映パッチFPi,tに対してfi,tを使用するかを決定することができる。一例では、第1の類似値がより高いとき、最終回転角度はri,tであり、第2の類似値がより高いとき、最終回転角度ri,tは-fi,tとなるように設定され得る。最終回転角度ri,tの範囲は、-2π<ri,t<2πであり、負の角度は、反映がパッチPi,tに適用されることを示すことに留意されたい。
【0141】
一部の例では、反映が適用されるか否かを示すために、1ビットの反映フラグが使用される。1ビットの反映フラグでは、回転角度は0~2πの範囲となる。
【0142】
一部の例では、回転角度ri,tが決定された後、回転されたパッチR(Pi,t)についての空間並進値(ui,t,vi,t)が決定される。一例では、空間並進値(ui,t,vi,t)は、空間並進後のパッチR(Pi,t)(空間並進されたパッチと称され、T(R(Pi,t))で表される)のUV座標の中心が参照マッチングパッチPi0,t-kのUV座標の中心に等しくなるような初期値に最初に設定される。次に、空間並進パッチT(R(Pi,t))は、空間並進パッチT(R(Pi,t))がパッキングされたパッチリストL内に既に存在するパッチと重複するか否かがチェックされる。空間並進パッチT(R(Pi,t))がパッキングされたパッチリストL内の他のパッチと重複しない場合、空間並進パッチT(R(Pi,t))はパッキングされたパッチリストLに追加される。次に、クラスM内の次のパッチに対してサイズ順に再マップ解析を継続することができる。
【0143】
一部の例では、空間並進値(ui,t,vi,t)は、空間並進値のためのウィンドウにわたって回転パッチR(Pi,t)と参照マッチングパッチPi0,t-kとの間の相互相関値を計算することによって初期化される。最も高い相互相関値を与えることができるウィンドウ内の値を、空間並進値(ui,t,vi,t)の初期値として使用することができる。
【0144】
一部の例では、重複チェック中に、空間並進パッチT(R(Pi,t))は、既にパッキングされたパッチリストL内にあるパッチと重複し、次いで、空間並進値(ui,t,vi,t)は、初期値を中心とする範囲内で徐々に修正され得、重複チェックは、空間並進パッチT(R(Pi,t))がパッキングされたパッチリストL内の任意のパッチと重複するかどうかをチェックするために、修正された空間並進値を用いて空間並進パッチT(R(Pi,t))に対して実行され得る。空間並進パッチT(R(Pi,t))がパッキングされたパッチリストL内のパッチと重複していないとき、空間並進パッチT(R(Pi,t))は、パッキングされたパッチリストLに追加される。次いで、再マップ分析は、サイズ順序によってクラスM内の次のパッチに続行することができる。
【0145】
しかしながら、一例では、探索範囲内の全ての空間並進値(ui,t,vi,t)について、空間並進されたパッチT(R(Pi,t))とパッキングされたパッチリストL内のパッチのうちの一部との間で重複が発生した場合、パッチPi,tはクラスMから除去され、クラスNに追加される。次いで、サイズ順序によってクラスM内の次のパッチに再マップ分析が続く。
【0146】
クラスM内の全てのパッチの再マップ分析が完了した後、クラスN内のパッチに対する再マップ分析が継続される。
【0147】
一部の例では、クラスN内のパッチはサイズによって順序付けられる。再マップ分析は、サイズ順に従う。例えば、クラスN内の大きなパッチは、クラスN内の小さなパッチの前に再マップ解析される。一例では、パッチサイズは、境界を含むパッチ内のピクセルの数によって計算される。別の例では、パッチサイズは、境界を除くパッチ内のピクセルの数である。別の例では、パッチサイズは、パッチを含む最小の矩形境界ボックスの面積である。
【0148】
一部の例では、クラスN中のパッチPi,tについて、空間並進値(ui,t,vi,t)が決定され得る。一例では、空間並進値(ui,t,vi,t)は、最初に、空間並進がないことを示す(0,0)に設定される。次に、パッチPi,tは、パッチPi,tが既にパックされたパッチリストL にある任意のパッチと重複するかどうかがチェックされる。パッチPi,tが重複していない(例えば、パッキングされたパッチリストL内のいずれのパッチとも重複していない)場合、パッチPi,tは、パッキングされたパッチリストLに追加される。次いで、再マップ分析は、サイズ順でクラスN内の次のパッチに継続する。
【0149】
一部の例では、パッチPi,tがパッキングされたパッチリストL内のパッチと重複する場合、空間並進値(ui,t,vi,t)は、(0,0)を中心とする範囲内で徐々に修正され、重複チェックは、徐々に修正された空間並進値を有するT(Pi,t)によって表される空間並進されたパッチがパッキングされたパッチリストL内のいずれかのパッチと重複するかどうかをチェックするために実行される。T(Pi,t)によって表される空間並進されたパッチが重複していない場合、空間並進されたパッチT(Pi,t)はパッキングされたパッチリストLに追加される。次いで、再マップ分析は、サイズ順序によってクラスN内の次のパッチに継続する。
【0150】
一部の例では、探索範囲内の全ての空間並進値(ui,t,vi,t)について、T(Pi,t)とパッキングされたパッチリストL内のパッチのうちの一部との間で重複が起こる場合、再マップ分析は停止する(早期停止と称される)。早期停止は、再マップが所与の探索範囲では実現可能でないことを示す。一例では、再マッピング段階(S1140)はスキップされる。その結果、所与の時間インスタンス(t)における再マッピングは実行されない。
【0151】
一部の例では、クラスNのパッチを用いた再マッピング分析が早期停止なしに完了したとき、再マッピング(S1140)を実行することができる。
【0152】
(S1140)では、再マッピングが行われる。
【0153】
一部の例では、再マッピング中に、新しいテクスチャマップまたは新しい属性マップなどの1つ以上の新しい2Dマップが時間インスタンス(t)について生成される。一例では、元の2Dマップ(例えば、元のテクスチャマップまたは元の属性マップ)中の各ピクセルは、ピクセルがパッチに属するかどうかを決定するために検査され得る。
【0154】
ピクセルがパッチPi,tに属する場合、そのピクセルは占有ピクセルである。パッチPi,tの占有ピクセルについて、新しい2Dマップ(例えば、新しいジオメトリマップ、新しいテクスチャマップ、または新しい属性マップ)中の新しい位置が、ピクセル位置上のパッチPi,tのための回転角度および空間並進値を適用することによって決定され得る。一部の例では、パッチPi,tはクラスN中にあり、次いで、パッチPi,tの再マップ変換パラメータは回転角度パラメータを含まないことがあり、次いで、回転はピクセルに適用されないことに留意されたい。ピクセルの新しい位置を導出した後、元の2Dマップ(例えば、ジオメトリマップ、テクスチャマップまたは属性値)中のピクセル値は、新しい2Dマップ中の新しい位置における値であるように割り当てられる。次に、次のピクセルへの再マッピングが続く。
【0155】
ピクセルがいずれのパッチにも属さない場合、ピクセルは、元の2Dマップ(例えば、ジオメトリマップ、テクスチャマップ、または属性マップ)内の非占有ピクセルであり、次いで、再マッピングは、次のピクセルに継続する。
【0156】
元の2Dマップ内の全ての占有ピクセルのピクセル値が新しい2Dマップに再マッピングされた後、値を割り当てられていないピクセルが新しいマップ内に存在し得る。これらは、新しい2Dマップ内の非占有ピクセルである。
【0157】
新しい2Dマップ(例えば、新しいジオメトリマップ、新しいテクスチャマップ、または新しい属性マップ)中の非占有ピクセルについて、任意の好適な値が割り当てられ得る。一例では、コーディング効率を改善するために、非占有ピクセルは、占有された空間的/時間的近傍の値から導出され得る。別の例では、非占有ピクセルに一定値を割り当てることができ、この一定値は、全ての占有ピクセルの平均値または中央値とすることができる。別の例では、境界拡張技術が使用され、パッチの境界は、非占有ピクセルに境界値を埋めるように拡張される。別の例では、非占有ピクセルを埋めるためにミップマップ技術が使用される。
【0158】
一部の実施形態では、ジオメトリマップ、テクスチャマップ、属性画像などの各2Dマップについて、新しいジオメトリマップ、新しいテクスチャマップ、新しい属性マップなどの新しい2Dマップを生成するためにパッチ時間アライメントが適用される。しかしながら、再マップ分析中の早期停止の場合、新しい2Dマップは、元の2Dマップの正確なコピーであり得る。
【0159】
一部の例では、まさに第1の2Dマップなど、メッシュシーケンスの時間の開始時の2Dマップ(例えば、ジオメトリマップ、テクスチャマップまたは属性マップ)について、対応する新しい2Dマップは、元の2Dマップの正確なコピーであり得る。一部の例では、将来の時間インスタンスにおける2Dマップが参照フレームとして使用され、メッシュシーケンス内のまさに第1の2Dマップのために新しい2Dマップが生成され得る。
【0160】
一部の例では、新しい2Dマップシーケンスを形成するために新しい2Dマップ(例えば、新しいジオメトリマップ、新しいテクスチャマップまたは新しい属性マップ)が時間インスタンスごとに生成されると、新しい2Dマップシーケンスに圧縮が適用され得る。
【0161】
一部の例では、2Dマップ(例えば、テクスチャマップまたは属性マップ)をデコーダ側で元のUV座標に復元するために、デコーダが元の2Dマップを復元することができるように、各パッチのための再マップ変換パラメータがエンコーダとデコーダとの間で通信され得る。
【0162】
本開示の一態様によれば、再マップ変換パラメータは、種々の技術によってコーディングされ得る。一部の例では、各パッチについて、再マップ変換が非自明変換であるかどうかを示すために1ビット変換フラグがシグナリングされ得る。自明変換とは、反映がなく、回転角度が0度であり、空間並進値が(0,0)である再マップ変換である。一部の例では、回転角度は、コーディングの前に量子化され得る。一例では、回転角度の量子化は、π/2、π/4の量子化ステップ、または何らかの他の量子化ステップを用いて行われ得る。一部の例では、空間並進値は、コーディングの前に量子化され得る。空間並進値の量子化は、整数値の量子化ステップ、浮動小数点値、または何らかの他の量子化ステップを用いて行われ得る。
【0163】
一部の実施形態では、メッシュ表現(Wavefront objファイルのような3Dジオメトリ表現など)内のUV座標が更新される。例えば、ジオメトリマップは、新しいジオメトリマップに更新される。UV座標の更新後、再マップ変換パラメータをエンコーディングする必要はない。
【0164】
本開示の別の態様によれば、適応サンプリングがエンコーダ側で適用され得る。一部の例では、パッチ時間整合方法は、適応サンプリング方法とともに採用され得る。
【0165】
適応サンプリングでは、サンプリングステップが、ジオメトリマップ、テクスチャマップ、または属性マップに適応的に適用され、情報を表すために必要とされる帯域幅を低減することができる。適応サンプリングの後、ジオメトリマップ、テクスチャマップ、または属性マップなどの2Dマップ内のパッチを時間的に位置合わせすることができる。パッチは、適応サンプリング中に異なるサンプリングレートによってサンプリングされている場合があることに留意されたい。
【0166】
本開示の一部の態様によれば、エンコーダ側で、テクスチャマップおよび/または属性マップなどのテクスチャマッピングは、時間的に整合されたパッチを有することができるが、ジオメトリ情報(例えば、頂点のUV座標、接続性情報)は、メッシュの元のジオメトリ情報であり得る。時間的に整列されたテクスチャマッピングおよび元のジオメトリ情報は、エンコーダによってビットストリームにエンコーディングされ、ビットストリームは、デコーダ側に提供され得る。デコーダ側では、デコーダは、パッチ時間アライメントのデコーディングを実行することができ、元のテクスチャマップを復元することができる。
【0167】
一部の実施形態では、インデックスマップがデコーダで利用可能である。インデックスマップは、元のテクスチャマップ内の各ピクセルについて、そのピクセルがパッチに属するかどうかを示すことができる。ピクセルがパッチに属する場合、インデックスマップは、パッチを識別するパッチインデックスを示すことができる。一部の例では、インデックスマップは、エンコーダ側でビットストリームにエンコーディングされ、デコーダ側で、デコーダは、ビットストリームからインデックスマップをデコーディングすることができる。
【0168】
一部の例では、インデックスマップに基づいて、デコーダは、復元すべきテクスチャマップ(復元テクスチャマップとも称される)中のピクセルについて、そのピクセルが属するパッチを決定し、パッチの再マップ変換パラメータを使用して、ピクセルのUV座標と、デコーディングされたテクスチャマッピング(例えば、デコーディングされたテクスチャマップおよび/またはデコーディングされた属性マップ)中の変換されたピクセルの変換後UV座標との間の1対1の対応をセットアップすることができる。次いで、デコーディングされたテクスチャマッピングおよび1対1の対応に従って、復元テクスチャマップ内のピクセルに、デコーディングされたテクスチャマッピング内の変換されたピクセルのテクスチャ値を割り当てることができる。
【0169】
本開示の一態様によれば、どのパッチにも属さないピクセルについて、ピクセルのテクスチャ値に任意の値を割り当てることができる。一部の例では、テクスチャ値は、空間/時間近傍(空間/時間隣接ピクセル)のテクスチャ値から導出され得る。
【0170】
一部の実施形態では、インデックスマップはデコーダで利用可能ではない。デコーダは、インデックスマップを導出し、一部の例では元のテクスチャマッピングであり得る復元テクスチャマップを生成することができる。一部の例では、デコーダは、パッチの境界頂点を用いて復元を開始することができる。パッチの境界頂点に基づいて、デコーディングは、パッチ内部を復元し、次いで、非占有ピクセルのテクスチャ値を決定することができる。
【0171】
本開示の一態様によれば、テクスチャマッピング圧縮のためのパッチ時間整合のエンコーディング中に、再マップ変換パラメータが、テクスチャマッピング画像(例えば、テクスチャマップ、属性マップ)中の各パッチについて計算される。一部の例では、パッチのための再マップ変換パラメータは、回転角度と、反映フラグと、空間並進とを含む。空間並進はベクトルであり、UV座標におけるU座標の第1の値およびV座標の第2の値をそれぞれ含む。一部の例では、パッチのための再マップ変換パラメータは、回転角度と空間的並進とを含む。回転角度の符号は、反映動作がパッチに適用されるかどうかを示すことができる。
【0172】
図12は、一部の実施形態におけるプロセス(1200)を概説するフローチャートを示す。プロセス(1200)は、メッシュフレームのデコーディングプロセス中に使用することができる。プロセス(1200)は、メッシュフレームのエンコーディングされた元のジオメトリ情報(例えば、時間的位置合わせを伴わない頂点の元のUV座標)と、別のメッシュフレーム(過去の時間インスタンスのデコーディングされたメッシュフレームなど)へのパッチ時間的位置合わせを伴うエンコーディングされた時間的に位置合わせされたテクスチャマップとを含むビットストリームを受信することができる。時間的に位置合わせされたテクスチャマップは、エンコーダ側でパッチに関連付けられた再マップ変換パラメータに従ってメッシュフレームのパッチに対して変換動作(例えば、回転動作、反映動作、空間並進動作など)を適用することによって生成(再マッピング)されることに留意されたい。再マップ変換パラメータもビットストリームにエンコーディングされる。デコーダ側では、デコーダは、ビットストリームから、パッチに関連付けられた再マップ変換パラメータとテクスチャマップ(例えば、デコーディングされた時間的に整合されたテクスチャマップ)とをデコーディングすることができる。次いで、プロセス(1200)は、元のジオメトリ情報に対応する復元テクスチャマップを生成することができる。一部の例では、プロセス(1200)は、復元テクスチャマップ内のパッチの境界頂点のピクセルを復元し、次いで、復元テクスチャマップ内のパッチのパッチ内部のピクセルを復元し、最後に、復元テクスチャマップ内の非占有ピクセルを復元することができる。種々の実施形態において、プロセス(1200)は、処理回路によって実行される。一部の実施形態では、プロセス(1200)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1200)を実行する。プロセスは(S1201)で開始し、(S1210)に進む。
【0173】
(S1210)において、パッチの境界頂点のピクセルが識別される。一部の例では、パッチの境界頂点のジオメトリ情報(例えば、元のUV座標、接続)が、パッチの他の頂点の前にエンコーディングされ、パッチの境界頂点の数がビットストリームにエンコーディングされる。一例では、ビットストリームから、デコーダは、各パッチの境界頂点のUV座標をデコーディングすることができる。
【0174】
(S1220)において、復元テクスチャマップ内の境界頂点のピクセル値が決定される。
【0175】
例えば、復元テクスチャマップ内のピクセルpについて、ピクセルpがパッチの境界頂点である(例えば、復元テクスチャマップ内のピクセルpのUV座標がパッチの境界頂点のデコーディングされたUV座標内にある)とき、復元テクスチャマップ内のピクセルpの値は、パッチの再マップ変換パラメータと、ビットストリームからデコーディングされた時間的に整合されたテクスチャマップ(一部の例では、デコーディングされたテクスチャマップとも称される)とに従って決定され得る。
【0176】
一実施形態では、パッチの再マップ変換パラメータは、回転角度と、反映フラグと、UV座標における空間並進動作のU成分およびV成分である2つの値を含む空間並進ベクトルとを含む。
【0177】
図13は、復元テクスチャマップ内のピクセルについて、デコーディングされたテクスチャマップ内の対応する変換されたピクセルの位置を決定するためのプロセス(1300)を概説するフローチャートを示す。一例では、ピクセルpはパッチP
i,tの境界頂点であり、パッチP
i,tの再マップ変換パラメータは、回転角度r、反映フラグ、および空間並進ベクトル(u,v)を含み、次いで、デコーディングされたテクスチャマップ中の対応する変換されたピクセルの位置(例えば、対応する変換後UV座標)がプロセス(1300)によって決定され得る。プロセス(1300)は(S1301)で開始し、S(1310)に進む。
【0178】
(S1310)において、パッチPi,tの変換フラグが決定される。変換フラグが偽である場合、再マップ変換は自明であり、デコーディングされたテクスチャマップ内の対応する変換後UV座標は、復元テクスチャマップ内のピクセルpと同じであり、プロセス(1300)は(S1399)に進み、終了する。変換フラグが真である場合、プロセス(1300)は(S1320)に進む。
【0179】
(S1320)では、反映フラグに基づいて反映動作を行う。一例では、反映フラグはビットストリームからデコーディングされる。反映フラグが真であるとき、エンコーダ側でパッチPi,tに対して反映動作が適用されている。デコーダ側では、エンコーダ側と同様にパッチPi,t内のピクセルpの位置に対して横軸に沿った反映などの反映動作を適用してピクセルpの位置を更新し、反映フラグが偽の場合には、エンコーダ側ではパッチPi,tに対して反映動作を適用せず、デコーダ側ではピクセルpに対して反映動作を適用しない。
【0180】
(S1330)において、回転角度rは、デコーディングおよび逆量子化の後に再構築される。そして、ピクセルpの位置(反映フラグが真の場合には、ピクセルpの更新後の位置)に対して、回転角度rの回転動作を施し、回転動作後のピクセルの位置を回転ピクセル位置と称する。
【0181】
(S1340)において、空間並進ベクトル(u,v)は、デコーディングおよび逆量子化の後に再構築される。次に、空間並進ベクトル(u,v)を回転したピクセル位置に適用して、空間並進したピクセル位置を求める。空間並進されたピクセル位置は、復元テクスチャマップ内のピクセルpに対するデコーディングされたテクスチャマップ内の変換位置であり、変換位置は、デコーディングされたテクスチャマップ内の変換後UV座標によって指定される。そして、プロセス(1300)は、(S1399)に進んで終了する。
【0182】
別の実施形態では、再マップ変換パラメータは、回転角度と、UV座標における空間並進動作のU成分およびV成分である2つの値を含む空間並進ベクトルとを含む。
【0183】
図14は、復元テクスチャマップ内のピクセルについて、デコーディングされたテクスチャマップ内の対応する変換されたピクセルの位置を決定するためのプロセス(1400)を概説するフローチャートを示す。一例では、ピクセルpはパッチP
i,tの境界頂点であり、パッチP
i,tの再マップ変換パラメータは回転角度rおよび空間並進ベクトル(u,v)を含み、次いで、デコーディングされたテクスチャマップ中の対応する変換されたピクセルの位置(例えば、対応する変換後UV座標)がプロセス(1400)によって決定され得る。プロセス(1400)は(S1401)で開始し、S(1410)に進む。
【0184】
(S1410)において、パッチPi,tの変換フラグが決定される。変換フラグが偽である場合、再マップ変換は自明であり、デコーディングされたテクスチャマップ内の対応する変換後UV座標は、復元テクスチャマップ内のピクセルpと同じであり、プロセス(1400)は(S1499)に進み、終了する。変換フラグが真である場合、プロセス(1400)は(S1420)に進む。
【0185】
(S1420)において、回転角度rは、デコーディングおよび逆量子化の後に再構築される。回転角度rが負であるとき、エンコーダ側でパッチPi,tに対して反映動作が適用されている。デコーダ側では、エンコーダ側と同様に、パッチPi,t内のピクセルpの位置に対して、横軸に沿った反映などの反映動作を適用して、ピクセルpの位置を更新する。
【0186】
(S1430)において、回転角度rの絶対値による回転動作が、ピクセルpの位置(または、回転角度が負である場合、ピクセルpの更新された位置)に適用され、回転動作後のピクセルの位置は、回転されたピクセル位置と称される。
【0187】
(S1440)において、空間並進ベクトル(u,v)は、デコーディングおよび逆量子化の後に再構築される。次に、空間並進ベクトル(u,v)を回転したピクセル位置に適用して、空間並進したピクセル位置を求める。空間並進されたピクセル位置は、復元テクスチャマップ内のピクセルpに対するデコーディングされたテクスチャマップ内の変換位置であり、変換位置は、デコーディングされたテクスチャマップ内の変換後UV座標によって指定される。その後、プロセス(1400)は(S1499)に進み、終了する。
【0188】
デコーディングされたテクスチャマップ内の変換されたピクセルの変換後UV座標が決定された後、復元テクスチャマップ内のピクセルpに、デコーディングされたテクスチャマップ内の変換位置におけるテクスチャ値を割り当てることができる。一部の例では、デコーディングされたテクスチャマップ中の変換後UV座標の1つ以上の座標が整数値でないとき、デコーディングされたテクスチャマップ中の変換位置におけるテクスチャ値を導出するために補間が使用され得る。補間は、最近傍、双一次、双三次、Sinc、Lanczos、ボックスサンプリング、ミップマップ、フーリエ変換ベース、エッジ指向、高品質スケール(hqx)、ベクトル化、深層畳み込みニューラルネットワークベースなどの任意の好適な補間技術を使用することができる。
【0189】
図12に戻って参照すると、(S1230)において、パッチ内部のピクセルが識別される。復元テクスチャマップにおけるパッチ境界頂点ではないピクセルpについて、ピクセルpは、例えば、境界頂点によって形成される境界エッジに従って、パッチ内部または非占有として識別されることができる。ピクセルpがパッチの内部またはパッチの境界上にあるとき、ピクセルpはパッチ内部のピクセルである。
【0190】
(S1240)において、復元テクスチャマップ内のパッチ内部のピクセルのテクスチャ値が決定される。
【0191】
一部の例では、ピクセルpは、パッチPi,t内にあるか、またはパッチPi,tの境界上にあり、プロセス(1300)またはプロセス(1400)は、デコーディングされたテクスチャマップ中の対応する変換位置を導出するために実行され得、デコーディングされたテクスチャマップ中の対応する変換位置のテクスチャ値は、復元されたマップ中のピクセルpに割り当てられ得る。一部の例では、デコーディングされたテクスチャマップ中の対応する変換位置の1つ以上の座標(変換後UV座標)が整数値でないとき、デコーディングされたテクスチャマップ中の対応する変換位置におけるテクスチャ値を導出するために補間が使用され得る。補間は、最近傍、双一次、双三次、Sinc、Lanczos、ボックスサンプリング、ミップマップ、フーリエ変換ベース、エッジ指向、高品質スケール(hqx)、ベクトル化、深層畳み込みニューラルネットワークベースなどの任意の好適な補間技術を使用することができる。
【0192】
(S1250)において、復元テクスチャマップ内の非占有ピクセルが決定される。パッチ内にも、パッチの境界上にもないピクセルについては、そのピクセルは非占有ピクセルである。非占有ピクセルについては、テクスチャ値に任意の値を割り当てることができる。一部の例では、3Dメッシュレンダリング品質を改善するために、非占有ピクセルのテクスチャ値が、占有された空間的/時間的隣接ピクセルの値から導出され得る。
【0193】
一実施形態では、非占有ピクセルに一定値を割り当てることができ、一定値は、全ての占有ピクセルのテクスチャ値または属性値の平均値または中央値とすることができる。
【0194】
一部の例では、非占有ピクセルを埋めるためにパッチの境界値を拡張する境界拡張技術が使用される。一部の例では、非占有ピクセルを埋めるためにミップマップ技術が使用される。
【0195】
本開示の一態様によれば、境界拡張技術は、境界ピクセルのテクスチャ値を隣接する非占有ピクセルに拡張することができる。一例では、境界ピクセルは、そのテクスチャ値が割り当てられるが、(少なくとも)隣接ピクセルのうちの1つがテクスチャ値を割り当てられていない(または非割り当てテクスチャ値を有する)ピクセルとして定義される。
【0196】
一部の例では、復元テクスチャマップ中のパッチ境界頂点の近傍(隣接ピクセル)、パッチ内のピクセル、またはパッチの境界上のピクセルが検査されて、境界ピクセルリストが形成される。一例では、ピクセルの近傍は、ピクセルを中心とするN×Nボックスによって定義され、Nは正の整数である。一例では、Nは3に等しく、ピクセルの3×3近傍は、それぞれ、左上、上中央、右上、中左、中右、左下、下中央、および右下と称される8つの近傍を与える。ピクセルが、非割り当てテクスチャ値を有する少なくとも1つの隣接ピクセルを有する場合、このピクセルは境界ピクセルであり、そのピクセルを境界ピクセルリストに追加することができる。
【0197】
一部の例では、復元テクスチャマップ中の非占有ピクセルを埋めるために、境界拡張の1回または複数回の反復が実行され得る。境界拡張の第1の反復では、復元テクスチャマップ内の境界ピクセルが、パッチ境界頂点、パッチ内のピクセル、またはパッチの境界上のピクセルから決定され、境界ピクセルは、境界ピクセルリストに追加され得る。各境界ピクセルについて、テクスチャ値を有しない境界ピクセルの近傍は、非割り当て近傍と称される。非割り当て近傍(非割り当てピクセルとも称される)について、テクスチャ値は、非割り当て近傍の割り当て済み近傍内の割り当て済み近傍のテクスチャ値を平均することによって決定され得る。非割り当て近傍の割り当て済み近傍は、非割り当てピクセルを中心とするM×Mボックスによって定義することができ、Mは位置整数である。一部の例では、MはNと同じ正の整数値を有する。一部の例では、MはNとは異なる正の整数値を有する。
【0198】
境界ピクセルの非割り当て近傍(複数可)にテクスチャ値を割り当てた後、境界ピクセルの全ての近傍にテクスチャ値が割り当てられているため、境界ピクセルは境界ピクセルリストから除去される。
【0199】
一部の例では、境界ピクセルリスト中の全ての境界ピクセルが第1の反復において除去された後、復元テクスチャマップ中にテクスチャ値を非割り当てピクセル(符号なしテクスチャマップ値を有する非占有ピクセルなど、非割り当てピクセルとも称される)が依然として存在する場合、ピクセルに一定値を割り当てることができる。一定値は、割り当てられた全てのピクセルのテクスチャ値の平均値または中央値とすることができる。一部の例では、ミップマップ技術が、非割り当てピクセルを埋めるために使用される。
【0200】
一部の実施形態では、非割り当てピクセルにテクスチャ値を割り当てるために、境界拡張の第2の反復を実行することができる。例えば、第1の反復の後、少なくとも1つの非割り当て近傍を有する新たに割り当てられたピクセルから新たな境界ピクセルリストを形成することができる。新しい境界ピクセルリスト内の境界ピクセルに対して、各非割り当て近傍のテクスチャ値は、非割り当て近傍の割り当て済み近傍内の割り当て済み近傍のテクスチャ値を平均することによって決定することができる。境界ピクセルの近傍に全てテクスチャ値が割り当てられた後、境界ピクセルは新しい境界ピクセルリストから除去される。第2の反復は、新しい境界ピクセルリストが空になるまで継続する。
【0201】
復元テクスチャマップが非割り当てピクセルを有する場合、境界拡張のより多くの反復が実行され得ることに留意されたい。境界拡張の各反復の後、テクスチャ値が非割り当てピクセルの数が低減される。最終的に、全てのピクセルにテクスチャ値が割り当てられると、反復は停止する。
【0202】
図15は、本開示の一実施形態によるプロセス(1500)を概説するフローチャートを示す。プロセス(1500)は、メッシュフレームのメッシュシーケンスのデコーディングプロセス中に使用することができる。種々の実施形態において、プロセス(1500)は、処理回路によって実行される。一部の実施形態では、プロセス(1500)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1500)を実行する。プロセスは(S1501)で開始し、(S1510)に進む。
【0203】
(S1510)において、2Dのテクスチャマップが、3Dメッシュフレームを搬送するビットストリームからデコーディングされる。3Dメッシュフレームは、ポリゴンを用いてオブジェクトの表面を表し、パッチに分割される。テクスチャマップは、パッチに関連付けられた再マップ変換パラメータに従ってパッチの元のUV座標から変換された変換後UV座標を有する変換パッチを含む。再マップ変換パラメータは、変換されたパッチを生成するために実行された変換動作を示す。
【0204】
(S1520)において、パッチに関連付けられた再マップ変換パラメータがビットストリームからデコーディングされる。
【0205】
(S1530)において、再マップ変換パラメータに従って、テクスチャマップから復元テクスチャマップが生成される。復元テクスチャマップ内の少なくとも第1の復元ピクセルには、テクスチャマップ内の第1の変換位置におけるテクスチャ値が割り当てられる。テクスチャマップ内の第1の変換位置は、第1の復元ピクセルのピクセル位置と、第1の復元ピクセルが属する第1のパッチに関連付けられた第1の再マップ変換パラメータとに従って決定される。
【0206】
(S1540)において、3Dメッシュフレームは、復元テクスチャマップに従って再構築される。
【0207】
復元テクスチャマップを生成するために、一実施形態では、第1の復元ピクセルのピクセル位置を第1のパッチを示す第1のパッチインデックスにマッピングするインデックスマップに従って、第1の復元ピクセルが第1のパッチに属すると決定される。
【0208】
一部の実施形態では、復元テクスチャマップを生成するために、第1のパッチの境界頂点に対応する第1のピクセル位置が識別される。次いで、第1のピクセル位置に対して第1の再マップ変換パラメータを適用することによって、第1のピクセル位置にそれぞれ対応するテクスチャマップ内の第1の変換位置が決定される。さらに、テクスチャマップの第1の変換位置における第1のテクスチャ値が、復元テクスチャマップ内の対応する第1のピクセル位置に割り当てられる。
【0209】
さらに、一部の例では、第1のパッチのパッチ内部である第2のピクセル位置が、第1のピクセル位置に従って識別される。次いで、第2のピクセル位置に第1の再マップ変換パラメータを適用することによって、第2のピクセル位置に対応するテクスチャマップ内の第2の変換位置が決定される。テクスチャマップの第2の変換位置における第2のテクスチャ値は、復元テクスチャマップ内の対応する第2のピクセル位置に割り当てられる。
【0210】
一部の例では、テクスチャマップ中の第1の変換位置におけるテクスチャ値は、第1の変換位置の1つ以上の座標が整数でないことに応答して、補間によって決定される。
【0211】
一部の例では、第1の再マップ変換パラメータは、回転動作のための回転角度と、空間並進動作のための空間並進ベクトルと、反映動作が実行されるかどうかを示す反映フラグとを含む。
【0212】
一部の例では、第1の再マップ変換パラメータは、回転角度と空間並進ベクトルとを含む。回転角度の符号は、反映動作が実行されるかどうかを示す。回転角度の絶対値は、回転動作のためのものであり、空間並進ベクトルは、空間並進動作のためのものである。
【0213】
一部の例では、復元テクスチャマップを生成するために、復元テクスチャマップ中の占有領域中の1つ以上の占有ピクセルに従って、復元テクスチャマップ中の非占有ピクセルに値が割り当てられる。占有領域は、パッチに属する占有ピクセルを含み、非占有ピクセルは、占有領域の外側にある。一部の例では、値は、占有領域内の占有ピクセルの平均値および/または中央値のうちの少なくとも1つとして計算される。
【0214】
一部の例では、復元テクスチャマップ中で境界ピクセルが決定される。境界ピクセルは、境界ピクセルの第1の近傍に少なくとも非割り当て隣接ピクセルを有する占有ピクセルである。非割り当て隣接ピクセルは、非割り当てテクスチャ値を有する(例えば、テクスチャ値が割り当てられていない)。非割り当て隣接ピクセルの第2の近傍内の割り当て済み隣接ピクセルが決定され、非割り当て隣接ピクセルに割り当てるための導出されたテクスチャ値が、第2の近傍内の割り当て済み隣接ピクセルに基づいて決定される。
【0215】
そして、(S1599)へ進み、処理を終了する。
【0216】
プロセス(1500)は、適切に適合させることができる。プロセス(1500)におけるステップ(複数可)は、修正および/または省略され得る。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0217】
本開示で開示される技術は、別個に使用されるか、または任意の順序で組み合わせられ得る。さらに、技術(例えば、方法、実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装され得る。一部の例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0218】
上記で説明した技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶され得る。例えば、
図16は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(1600)を示す。
【0219】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって、直接、または解釈、マイクロコード実行などを介して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様の機構を受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0220】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、種々のタイプのコンピュータまたはその構成要素上で実行されることができる。
【0221】
コンピュータシステム(1600)について
図16に示される構成要素は、本質的に例示的であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関していかなる限定も示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(1600)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連するいかなる依存性または要件も有するものと解釈されるべきではない。
【0222】
コンピュータシステム(1600)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。かかるヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブ移動など)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して、1人以上のヒトユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスはまた、オーディオ(スピーチ、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関係しない一部の媒体をキャプチャするために使用され得る。
【0223】
入力ヒューマンインターフェースデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示せず)、ジョイスティック(1605)、マイクロフォン(1606)、スキャナ(1607)、カメラ(1608)のうちの1つ以上(各々1つのみが示されている)を含み得る。
【0224】
コンピュータシステム(1600)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。かかるヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を通して、1人以上の人間ユーザの感覚を刺激していることがある。かかるヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1610)、データグローブ(図示せず)、またはジョイスティック(1605)による触覚フィードバックであるが、入力デバイスとしての役割を果たさない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(1609)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1610)など、各々タッチスクリーン入力能力を伴う、または伴わない、各々触覚フィードバック能力を伴う、または伴わない-そのうちの一部は、立体出力などの手段を通して2次元視覚出力または3次元を上回る出力を出力することが可能であり得る)、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、および煙タンク(図示せず))、ならびにプリンタ(図示せず)を含んでもよい。
【0225】
コンピュータシステム(1600)はまた、CD/DVDなどの媒体(1621)を有するCD/DVD ROM/RW(1620)を含む光媒体、サムドライブ(1622)、取外し可能ハードドライブまたはソリッドステートドライブ(1623)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)など、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含み得る。
【0226】
当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことも理解すべきである。
【0227】
コンピュータシステム(1600)はまた、1つ以上の通信ネットワーク(1655)へのインターフェース(1654)を含み得る。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両および産業などが含まれる。特定のネットワークは、概して、特定の汎用データポートまたは周辺バス(1649)(例えば、コンピュータシステム(1600)のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、概して、以下で説明するようにシステムバスに取り付けることによってコンピュータシステム(1600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1600)は他のエンティティと通信することができる。かかる通信は、単方向受信専用(例えば、放送TV)、単方向送信専用(例えば、あるCANbusデバイスへのCANbus)、または例えば、ローカルもしくは広域デジタルネットワークを使用する他のコンピュータシステムへの双方向であることができる。あるプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェースの各々上で使用されることができる。
【0228】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(1600)のコア(1640)に取り付けることができる。
【0229】
コア(1640)は、1つ以上の中央処理ユニット(CPU)(1641)、グラフィック処理ユニット(GPU)(1642)、フィールドプログラマブルゲートエリア(FPGA)(1643)の形態の専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1644)、グラフィックアダプタ(1650)などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1647)とともに、システムバス(1648)を介して接続することができる。一部のコンピュータシステムでは、システムバス(1648)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(1648)に直接、または周辺バス(1649)を介して接続することができる。一例では、スクリーン(1610)は、グラフィックアダプタ(1650)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0230】
CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、前述のコンピュータコードを構成することができる、ある命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に記憶することができる。過渡的なデータは、RAM(1646)に格納することもでき、一方、永続的なデータは、例えば、内部大容量記憶装置(1647)に格納することができる。1つ以上のCPU(1641)、GPU(1642)、大容量記憶装置(1647)、ROM(1645)、RAM(1646)などと密接に関連付けることができるキャッシュメモリを使用することによって、任意のメモリデバイスへの高速な記憶および探索を可能にすることができる。
【0231】
コンピュータ可読媒体は、種々のコンピュータ実装動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア分野の当業者に周知であり、利用可能な種類のものであってもよい。
【0232】
限定ではなく、例として、アーキテクチャ(1600)、具体的にはコア(1640)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体内で実施されるソフトウェアを実行するプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。かかるコンピュータ可読媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置(1647)またはROM(1645)などの非一時的な性質のものであるコア(1640)の特定の記憶装置に関連付けられた媒体とすることができる。本開示の種々の実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(1640)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つ以上のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア(1640)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1646)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってかかるデータ構造を修正することを含む、本明細書に記載の特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に説明される特定のプロセスまたは特定のプロセスの特定の部分を実行するように、ソフトウェアの代わりに、またはそれとともに動作することができる、回路(例えば、アクセラレータ(1644))内にハードワイヤードまたは別様に具現化される論理の結果として、機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、または両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
【0233】
本開示は、一部の例示的な実施形態を説明したが、本開示の範囲内に入る変更、置換、および種々の代替均等物が存在する。したがって、当業者は、本明細書に明示的に図示または説明されていないが、本開示の原理を具現化し、したがって、その精神および範囲内である、多数のシステムおよび方法を考案することができるであろうことを理解されるであろう。
【符号の説明】
【0234】
100 通信システム
105 センサ
110 端末デバイス
120 端末デバイス
150 ネットワーク
200 ストリーミングシステム
201 点群ソース
202 点群
203 エンコーダ
204 圧縮点群
205 ストリーミングサーバ
206 クライアントサブシステム
207 圧縮点群のコピー
208 クライアントサブシステム
209 圧縮点群のコピー
210 デコーダ
211 点群
212 レンダリングデバイス
213 キャプチャサブシステム
220 電子デバイス
221 電子デバイス
300 V-PCCエンコーダ
304 パッチ情報モジュール
306 パッチ生成モジュール
308 パッチパッキングモジュール
310 ジオメトリ画像生成モジュール
312 テクスチャ画像生成モジュール
314 占有マップモジュール
316 画像パディングモジュール
318 画像パディングモジュール
320 グループ拡張モジュール
322 ビデオ圧縮モジュール
323 ビデオ圧縮モジュール
324 マルチプレクサ
332 ビデオ圧縮モジュール
334 エントロピー圧縮モジュール
336 平滑化モジュール
338 補助パッチ情報圧縮モジュール
400 V-PCCデコーダ
432 デマルチプレクサ
434 ビデオ展開モジュール
436 ビデオ展開モジュール
438 占有マップ展開モジュール
442 補助パッチ情報展開モジュール
444 ジオメトリ再構築モジュール
446 平滑化モジュール
448 テクスチャ再構築モジュール
452 色平滑化モジュール
510 ビデオデコーダ
520 パーサ
521 シンボル
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在ピクチャバッファ
603 ビデオエンコーダ
630 ソースコーダ
632 コーディングエンジン
633 デコーダ
634 参照ピクチャメモリ
635 予測器
645 エントロピーコーダ
650 コントローラ
700 G-PCCエンコーダ
701 入力点群
710 位置量子化モジュール
712 重複点除去モジュール
720 属性転送モジュール
730 八分木エンコーディングモジュール
740 LOD生成モジュール
750 属性予測モジュール
760 残差量子化モジュール
770 算術エンコーディングモジュール
780 逆残差量子化モジュール
781 加算モジュール
790 メモリ
800 G-PCCデコーダ
810 算術デコーディングモジュール
820 逆残差量子化モジュール
830 八分木デコーディングモジュール
840 LOD生成モジュール
850 属性予測モジュール
860 メモリ
1010 第1のテクスチャマップ
1011 UVパッチ
1020 第2のテクスチャマップ
1021 UVパッチ
1600 コンピュータシステム
1601 キーボード
1602 マウス
1603 トラックパッド
1605 ジョイスティック
1606 マイクロフォン
1607 スキャナ
1608 カメラ
1610 タッチスクリーン
1620 CD/DVD ROM/RW
1621 媒体
1622 サムドライブ
1623 ソリッドステートドライブ
1640 コア
1641 CPU
1642 GPU
1643 FPGA
1644 ハードウェアアクセラレータ
1645 ROM
1646 RAM
1647 内部大容量記憶装置
1648 システムバス
1649 周辺バス
1650 グラフィックアダプタ