IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7583171メッシュ展開のための方法、装置及びプログラム
<>
  • 特許-メッシュ展開のための方法、装置及びプログラム 図1
  • 特許-メッシュ展開のための方法、装置及びプログラム 図2
  • 特許-メッシュ展開のための方法、装置及びプログラム 図3
  • 特許-メッシュ展開のための方法、装置及びプログラム 図4
  • 特許-メッシュ展開のための方法、装置及びプログラム 図5
  • 特許-メッシュ展開のための方法、装置及びプログラム 図6
  • 特許-メッシュ展開のための方法、装置及びプログラム 図7
  • 特許-メッシュ展開のための方法、装置及びプログラム 図8
  • 特許-メッシュ展開のための方法、装置及びプログラム 図9
  • 特許-メッシュ展開のための方法、装置及びプログラム 図10
  • 特許-メッシュ展開のための方法、装置及びプログラム 図11
  • 特許-メッシュ展開のための方法、装置及びプログラム 図12
  • 特許-メッシュ展開のための方法、装置及びプログラム 図13
  • 特許-メッシュ展開のための方法、装置及びプログラム 図14
  • 特許-メッシュ展開のための方法、装置及びプログラム 図15
  • 特許-メッシュ展開のための方法、装置及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】メッシュ展開のための方法、装置及びプログラム
(51)【国際特許分類】
   H04N 19/597 20140101AFI20241106BHJP
   H04N 19/59 20140101ALI20241106BHJP
   G06T 9/00 20060101ALI20241106BHJP
【FI】
H04N19/597
H04N19/59
G06T9/00 100
【請求項の数】 11
(21)【出願番号】P 2023531691
(86)(22)【出願日】2022-09-07
(65)【公表番号】
(43)【公表日】2023-12-14
(86)【国際出願番号】 US2022076014
(87)【国際公開番号】W WO2023039397
(87)【国際公開日】2023-03-16
【審査請求日】2023-05-24
(31)【優先権主張番号】63/241,478
(32)【優先日】2021-09-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/903,634
(32)【優先日】2022-09-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】チャオ・フアン
(72)【発明者】
【氏名】ジュン・ティアン
【審査官】岩井 健二
(56)【参考文献】
【文献】特表2021-502033(JP,A)
【文献】米国特許出願公開第2020/0314435(US,A1)
【文献】国際公開第2021/116838(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
G06T 9/00 ー 9/40
(57)【特許請求の範囲】
【請求項1】
複数の3次元(3D)メッシュフレームを搬送するビットストリームから2次元の複数の初期マップを復号するステップと、
前記複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートを決定するステップと、
複数の復元されたマップを取得するために、前記複数の初期マップの前記異なる部分に関連付けられた前記少なくとも2つのサンプリングレートに基づいて、前記複数の初期マップから復元するステップであって、前記複数の初期マップの第1の部分は、前記第1の部分に関連付けられた前記少なくとも2つのサンプリングレートのうちの第1のサンプリングレートに基づいて復元され、前記複数の初期マップの第2の部分は、前記第2の部分に関連付けられた前記少なくとも2つのサンプリングレートのうちの第2のサンプリングレートに基づいて復元される、ステップと、
前記複数の復元されたマップに基づいて、前記3Dメッシュフレームを再構築するステップと、
含み、さらに
第1の3Dメッシュフレームの第1のパッチに関連付けられた前記第1のサンプリングレートに基づいて、前記第1の3Dメッシュフレームに関連付けられた第1のマップを復元するステップと、
前記第1のサンプリングレートに従って第2の3Dメッシュフレーム内の第2のパッチに関連付けられた対応するサンプリングレートを決定するステップであって、前記第2の3Dメッシュフレーム内の前記第2のパッチが、前記第1の3Dメッシュフレームの前記第1のパッチに対応するパッチである、ステップと、を含む、コンピュータによって実行される、メッシュ展開のための方法。
【請求項2】
前記少なくとも2つのサンプリングレートを決定する前記ステップは、
第1のマップタイプの第1の初期マップに関連付けられた、前記第1のサンプリングレートを決定するステップと、
第2のマップタイプの第2の初期マップに関連付けられた、前記第2のサンプリングレートを決定するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記少なくとも2つのサンプリングレートを決定する前記ステップは、
第1の初期マップ内の第1のサブ領域に関連付けられた、前記第1のサンプリングレートを決定するステップと、
前記第1の初期マップ内の第2のサブ領域に関連付けられた、前記第2のサンプリングレートを決定するステップと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1のサブ領域は、
複数の画素行、
複数の画素列、
サンプリングされたコーディング・ツリー・ユニット(CTU)ライン、
サンプリングされたスライス、
サンプリングされたタイル
サンプリングされたタイル群、および/または、
サンプリングされたCTU、
のうちの少なくとも1つを含む、請求項3に記載の方法。
【請求項5】
前記少なくとも2つのサンプリングレートを決定する前記ステップは、
第1の初期マップ内の第1のパッチと関連付けられた、前記第1のサンプリングレートを決定するステップと、
前記第1の初期マップ内の第2のパッチと関連付けられた、前記第2のサンプリングレートを決定するステップと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記少なくとも2つのサンプリングレートを決定する、前記ステップは、
前記複数の初期マップの前記第1の部分に関連付けられた第1のフラグを、前記ビットストリームから復号するステップであって、前記第1のフラグは、前記第1の部分に関連付けられた前記第1のサンプリングレートが、デフォルト・サンプリング・レートと異なるかどうかを示す、ステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
前記第1のフラグは、前記第1のサンプリングレートが前記デフォルト・サンプリング・レートと異なることを示し、前記方法は、
前記ビットストリームから前記第1のサンプリングレートを復号するステップ、および/または、
前記第1のサンプリングレートと前記ビットストリームからの前記デフォルト・サンプリング・レートとの差分を復号するステップ、
のうちの少なくとも1つをさらに含む、請求項6に記載の方法。
【請求項8】
前記少なくとも2つのサンプリングレートを決定する前記ステップは、
前記複数の初期マップの部分と関連付けられたサンプリングレートとして、所定のサンプリングレートのセットからの選択を示すインデックスを、前記ビットストリームから復号するステップ
をさらに含む、請求項1に記載の方法。
【請求項9】
前記第1の3Dメッシュフレームは、ピクチャグループ(GOP)のキーフレームであり、前記対応するサンプリングレートが、前記第1のサンプリングレートに等しい、請求項に記載の方法。
【請求項10】
請求項1からのいずれか一項に記載の方法を実行するように構成される処理回路を備える、装置。
【請求項11】
コンピュータによって実行されると、コンピュータに請求項1からのいずれか一項に記載の方法を実行させる命令を備えた、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月7日に出願された米国仮出願第63/241,478号「3Dメッシュ圧縮における2Dアトラス適応サンプリング」に対する優先権の利益を主張する、2022年9月6日に出願された米国特許出願第17/903,634号「3Dメッシュ圧縮における2Dアトラス適応サンプリング」に対する優先権の利益を主張する。先行出願の開示は、それらの全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、メッシュ符号化に関する実施形態を説明する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を大まかに提示することを目的としている。ここに記名された発明者の仕事は、その仕事がこの背景技術セクションに記載されている程度まで、ならびにさもなければ出願時に従来技術として適格ではない可能性がある説明の態様は、本開示に対する従来技術として、明示的にも黙示的にも認められていない。
【0004】
3次元(3D)空間における世界のオブジェクト、世界の環境などの世界をキャプチャし表現するための様々な技術が開発されている。世界の3D表現により、より没入型のインタラクション、およびより没入型のコミュニケーションが可能になる可能性がある。いくつかの例では、点群およびメッシュを世界の3D表現として使用することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の態様は、メッシュ符号化(例えば、圧縮および展開)のための方法および装置を提供する。いくつかの例では、メッシュ符号化のための装置は処理回路を含む。処理回路は、3次元(3D)メッシュフレームを搬送するビットストリームから2次元の複数の初期マップを復号する。処理回路は、複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートを決定し、複数の初期マップから、複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートに基づいて復元して、複数の復元されたマップを取得する。複数の初期マップの第1の部分は、第1の部分に関連付けられた少なくとも2つのサンプリングレートの第1のサンプリングレートに基づいて復元され、複数の初期マップの第2の部分は、第2の部分に関連付けられた少なくとも2つのサンプリングレートの第2のサンプリングレートに基づいて復元される。処理回路は、複数の復元されたマップに基づいて、3Dメッシュフレームを再構築する。
【0006】
いくつかの例では、処理回路は、第1のマップタイプの第1の初期マップに関連付けられた第1のサンプリングレートを決定し、第2のマップタイプの第2の初期マップに関連付けられた第2のサンプリングレートを決定する。
【0007】
いくつかの例では、処理回路は、第1の初期マップ内の第1のサブ領域に関連付けられた第1のサンプリングレートを決定し、第1の初期マップ内の第2のサブ領域に関連付けられた第2のサンプリングレートを決定する。第1のサブ領域または第2のサブ領域は、複数の画素行、複数の画素列、サンプリングされたコーディング・ツリー・ユニット(CTU)ライン、サンプリングされたスライス、サンプリングされたタイル、サンプリングされたタイル群、および/またはサンプリングされたCTU、のうちの少なくとも1つを含むことができる。
【0008】
いくつかの例では、処理回路は、第1の初期マップ内の第1のパッチに関連付けられた第1のサンプリングレートを決定し、第1の初期マップ内の第2のパッチに関連付けられた第2のサンプリングレートを決定する。
【0009】
いくつかの例では、処理回路は、複数の初期マップの第1の部分に関連付けられた第1のフラグを、ビットストリームから復号する。第1のフラグは、第1の部分に関連付けられた第1のサンプリングレートがデフォルト・サンプリング・レートと異なるかどうかを示す。第1のフラグが、第1のサンプリングレートがデフォルト・サンプリング・レートと異なることを示すとき、一例では、処理回路は、ビットストリームから第1のサンプリングレートを復号する。別の例では、処理回路は、第1のサンプリングレートとビットストリームからのデフォルト・サンプリング・レートとの間の差を、復号する。
【0010】
いくつかの例では、処理回路は、複数の初期マップの部分に関連付けられたサンプリングレートとして、所定のサンプリングレートのセットからの選択を示すインデックスを、ビットストリームから復号する。
【0011】
いくつかの例では、ビットストリームは、複数の3Dメッシュフレームを搬送する。処理回路は、第1の3Dメッシュフレームの第1のパッチに関連付けられた第1のサンプリングレートに基づいて、第1の3Dメッシュフレームに関連付けられた第1のマップを復元し、第1のサンプリングレートに従って、第2の3Dメッシュフレーム内の第2のパッチに関連付けられた対応するサンプリングレートを決定する。第2の3Dメッシュフレーム内の第2のパッチは、第1の3Dメッシュフレームの第1のパッチに対応するパッチである。一例では、第1の3Dメッシュフレームは、ピクチャグループ(GOP)のキーフレームであり、対応するサンプリングレートは第1のサンプリングレートに等しい。
【0012】
本開示の態様はまた、コンピュータによって実行されると、メッシュ符号化のための方法のいずれか1つまたは組み合わせをコンピュータに実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0013】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0014】
図1】いくつかの例における通信システムのブロック図を示す。
図2】いくつかの例におけるストリーミングシステムのブロック図を示す。
図3】いくつかの例における点群フレームを符号化するためのエンコーダのブロック図を示す。
図4】いくつかの例における点群フレームに対応する圧縮ビットストリームを復号するためのデコーダのブロック図を示す。
図5】いくつかの例におけるビデオデコーダのブロック図を示す。
図6】いくつかの例におけるビデオエンコーダのブロック図を示す。
図7】いくつかの例における点群フレームを符号化するためのエンコーダのブロック図を示す。
図8】いくつかの例における点群フレームを搬送する圧縮ビットストリームを復号するためのデコーダのブロック図を示す。
図9】いくつかの例におけるアトラスへのメッシュのマッピングを示す図を示す。
図10】いくつかの例におけるダウンサンプリングを示す図を示す。
図11】本開示のいくつかの実施形態による、メッシュ圧縮のためのフレームワークの図を示す。
図12】いくつかの例における適応サンプリングの図を示す。
図13】いくつかの例における適応サンプリングの図を示す。
図14】いくつかの例における処理例の概要を示すフローチャートを示す。
図15】いくつかの例における処理例の概要を示すフローチャートを示す。
図16】いくつかの例におけるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0015】
本開示の態様は、3次元(3D)メディア処理の分野における技術を提供する。
【0016】
3次元(3D)キャプチャ、3Dモデリング、および3Dレンダリングなどの進歩などの3Dメディア処理における技術開発は、いくつかのプラットフォームおよびデバイスにわたって3Dメディアコンテンツの普遍的な存在を促進している。一例では、赤ん坊の最初の一歩が1つの大陸でキャプチャされ、メディア技術は、祖父母が別の大陸で赤ん坊との没入体験を、眺め、(そして、おそらく対話し)、そして楽しむ、ことを可能にできる。本開示の一態様によれば、没入体験を改善するために、3Dモデルはますます洗練されてきており、3Dモデルの作成および消費は、データストレージ、データ送信リソースなどのかなりの量のデータリソースを占有する。
【0017】
本開示のいくつかの態様によれば、点群およびメッシュを3Dモデルとして使用して、没入型コンテンツを表現できる。
【0018】
点群は一般に、3D空間内の点のセットを指してもよく、点の各々が、例えば、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および様々な他の属性などの関連付けられた属性を有する。点群は、このような点の構成としてオブジェクトまたはシーンを再構築するために使用され得る。
【0019】
オブジェクトのメッシュ(メッシュモデルとも呼ばれる)は、オブジェクトの表面を記述するポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点がポリゴンにどのように接続されているかの情報と、によって定義することができる。頂点がどのように接続されているかの情報を、接続性情報と呼ぶ。いくつかの例では、メッシュはまた、頂点に関連付けられた色、法線などの属性を含むことができる。
【0020】
本開示のいくつかの態様によれば、点群圧縮(PCC)のためのいくつかのコーディングツールが、メッシュ圧縮のために使用され得る。例えば、メッシュを再メッシュ化して、新しいメッシュの接続性情報を推測できる新しいメッシュを生成することができる。新しいメッシュの頂点、および新しいメッシュの頂点に関連付けられた属性は、点群内の点とみなすことができ、PCCコーデックを使用して圧縮することができる。
【0021】
点群を使用して、点の構成として、オブジェクトまたはシーンを再構築することができる。点は、様々な設定において、複数のカメラ、深度センサ、またはLidarを使用してキャプチャすることができ、再構築されたシーンまたはオブジェクトを現実的に表現するために数千から最大数十億の点で構成することができる。パッチは、一般に、点群によって説明される表面の連続したサブセットを指してもよい。一例では、パッチは、閾値量未満で互いにずれた表面法線ベクトルを有する点を含む。
【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の例では、端末デバイス(110)および(120)の第1の対は、点群データの単方向送信を実行することができる。例えば、端末デバイス(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)は、以下でより詳細に説明するように、開示された主題の態様を可能にするため、または実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。点群(202)のストリームと比較してより低いデータ量を強調するために細い線として図示されている、圧縮された点群(204)(または圧縮された点群(204)のビットストリーム)は、将来の使用のためにストリーミングサーバ(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(High Efficiency Video Coding)(HEVC)や、VVC(Versatile Video Coding)(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ビットフォーマットのWxHの単色フレームによって表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングされた点に関連付けられる色を計算するために、再構築されたジオメトリ/平滑化されたジオメトリを利用する。
【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)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受け取る。スケーラ/逆変換ユニット(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:Hypothetical Reference Decoder)の仕様、およびコーディングされたビデオシーケンスでシグナリングされる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)は、符号化ループで動作するように構成される。単純化し過ぎた説明として、一例では、コーディングループは、(例えば、コード化される入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成することに関与する)ソースコーダ(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つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよび復号され得るピクチャであり得る。同様に、複数予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【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は3つのコーディング・ツリー・ブロック(CTB)を含み、それらは1つの輝度CTBおよび2つの彩度CTBである。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、または4つの32×32画素のCU、または16個の16×16画素のCUに分割することができる。一例では、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために、各CUが分析される。CUは、時間および/または空間の予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、1つの輝度予測ブロック(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空間内のポリゴンの頂点と、頂点がポリゴンにどのように接続されているかの情報と、によって定義することができる。頂点がどのように接続されているかの情報を、接続性情報と呼ぶ。いくつかの例では、メッシュはまた、頂点に関連付けられた色、法線などの属性を含むことができる。属性は、メッシュを2D属性マップでパラメータ化するマッピング情報を利用することによって、メッシュの表面に関連付けることができる。マッピング情報は、通常、メッシュ頂点に関連付けられたUV座標またはテクスチャ座標と呼ばれる、パラメトリック座標のセットによって記述される。2D属性マップ(いくつかの例ではテクスチャマップと呼ばれる)は、テクスチャ、法線、変位などの高解像度属性情報を格納するために使用される。そのような情報は、テクスチャマッピングおよびシェーディングなどの様々な目的に使用することができる。
【0102】
いくつかの実施形態では、メッシュは、ジオメトリ情報、接続性情報、マッピング情報、頂点属性、および属性マップと呼ばれる構成要素を含むことができる。いくつかの例では、ジオメトリ情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。一例では、(x,y,z)座標を使用して頂点の3D位置を記述することができる。いくつかの例では、接続性情報は、3D表面を作成するために頂点をどのように接続するかを記述する頂点インデックスのセットを含む。いくつかの例では、マッピング情報は、メッシュ表面を平面の2D領域にマッピングする方法を記述する。一例では、マッピング情報は、接続性情報とともにメッシュ頂点に関連付けられたUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。いくつかの例では、頂点属性は、メッシュ頂点に関連付けられたスカラーまたはベクトル属性値を含む。いくつかの例では、属性マップは、メッシュ表面に関連付けられ、2D画像/ビデオとして格納される属性を含む。一例では、映像(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって定義される。
【0103】
本開示の一態様によれば、UVマッピングまたはメッシュパラメータ化と呼ばれるいくつかの技術が、3Dドメイン内のメッシュの表面を2Dドメインにマッピングするために使用される。いくつかの例では、メッシュは3Dドメインでパッチに分割される。パッチは、メッシュの連続したサブセットである。次いで、いくつかの例では、パッチはそれぞれ2D形状(UVパッチとも呼ばれる)にパラメータ化される。2D形状は、いくつかの例ではアトラスとも呼ばれるマップに(例えば、配向され、配置される)パックすることができる。いくつかの例では、マップは、2D画像またはビデオ処理技術を使用してさらに処理することができる。
【0104】
一例では、UVマッピング技術は、3Dメッシュのパッチに対応する2DのUVアトラス(UVマップとも呼ばれる)および1つまたは複数のテクスチャアトラス(テクスチャマップとも呼ばれる)を生成する。UVアトラスは、2Dドメイン(例えば、長方形)内の2D点への3Dメッシュの3D頂点の割り当てを含む。UVアトラスは、3D表面の座標と2Dドメインの座標との間のマッピングである。一例では、2D座標(u,v)におけるUVアトラス内の点は、3Dドメイン内の頂点の座標(x、y、z)によって形成される値を有する。一例では、テクスチャアトラスは3Dメッシュの色情報を含む。例えば、2D座標(u,v)(UVアトラス内の(x,y,z)の3D値を有する)のテクスチャアトラス内の点は、3Dドメインの(x、y、z)の点の色属性を指定する色を有する。
【0105】
本開示の一態様によれば、動的メッシュは、構成要素(ジオメトリ情報、接続性情報、マッピング情報、頂点属性、属性マップ)の少なくとも1つが時間とともに変化するメッシュである。動的メッシュは、のメッシュのシーケンス(メッシュフレームとも呼ばれる)によって記述することができる。動的メッシュは、経時的に変化するかなりの量の情報を含む可能性があるため、動的メッシュは大量のデータを必要とする場合がある。メッシュの圧縮技術は、メッシュ表現における媒体コンテンツの効率的な記憶および送信を可能にすることができる。
【0106】
いくつかの例では、動的メッシュは、一定の接続性情報、時変ジオメトリ、および時変頂点属性を有することができる。いくつかの例では、動的メッシュは時変接続性情報を有することができる。一例では、デジタルコンテンツ作成ツールは、通常、時変属性マップおよび時変接続性情報を有する動的メッシュを生成する。いくつかの例では、体積測定の取得技術が使用され、動的メッシュを生成する。体積取得技術は、特にリアルタイム制約下で、時変接続性情報を有する動的メッシュを生成することができる。
【0107】
本開示のいくつかの態様によれば、1つまたは複数の2Dマップ(いくつかの例では2Dアトラスとも呼ばれる)を使用してメッシュを表現し、次いで、画像またはビデオコーデックを使用して2Dマップを符号化することによって、メッシュ圧縮を実行することができる。
【0108】
図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によって形成される三角形はそれぞれの属性を有することができる。
【0109】
一例では、3DのパッチA、B、C、およびDは、マップ(920)とも呼ばれる2Dアトラス(920)などの2Dドメインにマッピングされる。例えば、パッチAはマップ(920)内の2D形状(UVパッチとも呼ばれる)A’にマッピングされ、パッチBはマップ(920)内の2D形状(UVパッチとも呼ばれる)B’にマッピングされ、パッチCはマップ(920)内の2D形状(UVパッチとも呼ばれる)C’にマッピングされ、パッチDはマップ(920)内の2D形状(UVパッチとも呼ばれる)D’にマッピングされる。いくつかの例では、3Dドメイン内の座標は(x、y、z)座標と呼ばれ、マップ(920)などの2Dドメイン内の座標はUV座標と呼ばれる。3Dメッシュ内の頂点は、マップ(920)内に対応するUV座標を有することができる。
【0110】
マップ(920)は、ジオメトリ情報を有するジオメトリマップとすることもでき、色、テキスタイル、または他の属性情報を有するテクスチャマップとすることもでき、占有情報を有する占有マップとすることもできる。
【0111】
一例では、頂点のジオメトリ情報を2Dのジオメトリマップに格納することができる。例えば、ジオメトリマップは、対応する画素におけるサンプリング点の(x、y、z)座標を格納する。(u,v)位置のジオメトリマップ内の画素は、3Dメッシュ内の対応するサンプリング点のx、y、およびz値に、それぞれ対応する3成分のベクトル値を有する。
【0112】
本開示の一態様によれば、マップ内の領域は、完全に占有されていなくてもよい。例えば、図9では、2D形状A’、B’、C’、およびD’の外側の領域は未定義である。復号後の2D形状A’、B’、C’およびD’の外側にある領域のサンプル値は、破棄することができる。場合によっては、占有マップは、画素がパッチに属するか、または未定義であるかを識別するためにバイナリ値を格納するなど、画素ごとに何らかの追加情報を格納するために使用される。
【0113】
本開示のいくつかの態様によれば、3Dメッシュ情報を効率的に圧縮するために、ジオメトリマップ、テクスチャマップ、占有マップなどの2Dマップは、符号化される前にダウンサンプリングされ得る。
【0114】
図10は、いくつかの例におけるダウンサンプリングを示す図である。図10では、水平方向、垂直方向ともにマップ(1020)が2倍にダウンサンプリングされ、ダウンサンプリングされたマップ(1030)が生成されている。ダウンサンプリングされたマップ(1030)の幅(例えば、水平方向の画素数)は、マップ(1020)の幅(例えば、水平方向の画素数)の1/2であり、ダウンサンプリングされたマップ(1030)の高さ(例えば、垂直方向の画素数)は、マップ(1020)の高さ(例えば、垂直方向の画素数)の1/2である。
【0115】
図10では、マップ(1020)は、2D形状(UVパッチとも呼ばれる)A’、B’、C’、およびD’を含み、ダウンサンプリングされたマップ(1030)は、2D形状A’、B’、C’、およびD’にそれぞれ対応するサンプリングされた2D形状A’’、B’’、C’’、およびD’’を含む。ダウンサンプリングされたマップ(1030)は、いくつかの例では、メッシュエンコーダ側の画像またはビデオエンコーダによって符号化される。
【0116】
いくつかの例では、メッシュデコーダ側で、ダウンサンプリングされたマップが復号される。ダウンサンプリングされたマップの復号後、ダウンサンプリングされたマップは、3Dメッシュを再構築するために元の解像度(例えば、垂直方向の元の画素数および水平方向の元の画素数)に復元される。
【0117】
一般に、動的メッシュシーケンスは経時的に変化するかなりの量の情報から構成され得るので、動的メッシュシーケンスは大量のデータを必要とする。2Dマップに適用されるサンプリングステップ(例えば、ジオメトリマップ、属性マップ)は、メッシュ情報を表すのに必要な帯域幅を低減するのに役立つことができる。しかしながら、サンプリングステップはまた、ダウンサンプリング中に3Dメッシュの何らかの重要なジオメトリ形状などの重要な情報を除去する可能性がある。
【0118】
本開示の態様は、あまり重要な情報を失うことなく、2Dアトラス(2Dのマップとも呼ばれる)を処理するための適応サンプリング技術を提供する。適応サンプリング技術は、静的メッシュ(1つのメッシュフレームまたはメッシュコンテンツは経時的に変化しない)圧縮、および動的メッシュ圧縮に使用することができる。様々な適応サンプリング技術は、個別にまたは任意の形態の組み合わせによって適用することができる。以下の説明では、適応サンプリング方法は、ジオメトリマップもしくは属性(テクスチャ)マップ、またはその両方であり得る、2Dアトラス(例えば、2Dのマップ)に適用される。
【0119】
図11は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワーク(1100)の図を示す。フレームワーク(1100)は、メッシュエンコーダ(1110)およびメッシュデコーダ(1150)を含む。メッシュエンコーダ(1110)は、入力メッシュ(1105)(動的メッシュ処理の場合はメッシュフレーム)をビットストリーム(1145)に符号化し、メッシュデコーダ(1150)は、ビットストリーム(1145)を復号して再構築されたメッシュ(1195)(動的メッシュ処理の場合は再構築されたメッシュフレーム)を生成する。
【0120】
メッシュエンコーダ(1110)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスなどの任意の適切な装置とすることができる。メッシュデコーダ(1150)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイスなどの任意の適切な装置とすることができる。ビットストリーム(1145)は、任意の適切な通信ネットワーク(図示せず)を介してメッシュエンコーダ(1110)からメッシュデコーダ(1150)に送信することができる。
【0121】
図11の例では、メッシュエンコーダ(1110)は、互いに結合された適応サンプリングモジュール(1120)、ビデオエンコーダ(1130)、および補助データエンコーダ(1140)を含む。ビデオエンコーダ(1130)は、3Dメッシュの表現内の2Dマップなどの画像またはビデオデータを符号化するように構成される。適応サンプリングモジュール(1120)は、入力メッシュ(1105)を受信し、適応サンプリングを実行して適応的にサンプリングされたマップ(1125)を生成する。いくつかの例では、入力メッシュ(1105)は、3Dメッシュを表すために2Dのマップを含む。適応サンプリングモジュール(1120)は、マップ内の情報密度を検出し、情報密度に基づいてマップをサンプリングするための異なるサンプリングレートを決定することができる。次いで、異なるサンプリングレートに従って2Dマップをサンプリングし、適応的にサンプリングされたマップ(1125)を生成することができる。
【0122】
ビデオエンコーダ(1130)は、画像符号化および/またはビデオ符号化技術を使用して、適応的にサンプリングされたマップ(1125)をビットストリーム(1145)に符号化することができる。
【0123】
適応サンプリングモジュール(1120)はまた、適応サンプリングに使用される支援情報を示す補助データ(1127)を生成する。補助データエンコーダ(1140)は、補助データ(1127)を受信し、補助データ(1127)をビットストリーム(1145)に符号化する。
【0124】
適応サンプリングモジュール(1120)および補助データエンコーダ(1140)の動作は、本開示でさらに説明される。
【0125】
図11の例では、ビットストリーム(1145)は、メッシュデコーダ(1150)に提供される。メッシュデコーダ(1150)は、図11に示すように互いに結合されたビデオデコーダ(1160)、補助データデコーダ(1170)、復元モジュール(1180)、およびメッシュ再構築モジュール(1190)を含む。一例では、ビデオデコーダ(1160)はビデオエンコーダ(1130)に対応し、ビデオエンコーダ(1130)によって符号化されたビットストリーム(1145)の部分を復号し、復号された情報(1165)(例えば、初期復号マップ)を生成することができる。
【0126】
図11の例では、補助データデコーダ(1170)は補助データエンコーダ(1140)に対応し、補助データエンコーダ(1140)によって符号化されたビットストリーム(1145)の部分を復号し、復号された補助データ(1175)を生成することができる。
【0127】
図11の例では、復号された情報(1165)および復号された補助データ(1175)が復元モジュール(1180)に提供される。復元モジュール(1180)は、元の解像度(例えば、垂直方向と水平方向とで同じ画素数)の復元されたマップ(1185)を、入力メッシュ(1105)内のマップとして形成することができる。メッシュ再構築モジュール(1190)は、復元されたマップ(1185)に基づいて再構築されたメッシュ(1195)を生成する。補助データデコーダ(1170)および復元モジュール(1180)の動作は、本開示においてさらに説明される。
【0128】
セグメント化モジュール(1120)、ビデオエンコーダ(1130)、および補助データエンコーダ(1140)などのメッシュエンコーダ(1110)内の構成要素は、それぞれ様々な技術によって実装することができることに留意されたい。一例では、構成要素は集積回路によって実装される。別の例では、構成要素は、1つまたは複数のプロセッサによって実行することができるソフトウェアを使用して実装される。
【0129】
ビデオデコーダ(1160)、補助データデコーダ(1170)、復元モジュール(1180)、およびメッシュ再構築モジュール(1190)などのメッシュデコーダ(1150)内の構成要素は、それぞれ様々な技術によって実施することができることに留意されたい。一例では、構成要素は集積回路によって実装される。別の例では、構成要素は、1つまたは複数のプロセッサによって実行することができるソフトウェアを使用して実装される。
【0130】
いくつかの実施形態では、サンプリング適応はマップタイプに基づくことができる。いくつかの例では、適応サンプリングモジュール(1120)は、異なるタイプのマップに異なるサンプリングレートを適用することができる。例えば、ジオメトリマップと属性マップとに異なるサンプリングレートを適用することができる。一例では、メッシュは、規則的な形状および豊富なテクスチャを有するオブジェクトのモデルである。例えば、オブジェクトは長方形であるが、豊富な色を有する。したがって、ジオメトリマップの情報密度は比較的低い。一例では、適応サンプリングモジュール(1120)は、ジオメトリマップ上に(垂直方向と水平方向の両方に)2:1の第1のサンプリングレートを適用し、テクスチャマップ上に(垂直方向と水平方向の両方に)1:1の第2のサンプリングレートを適用する。
【0131】
いくつかの例では、ある方向のA:Bのサンプリングレートは、その方向の元のマップ内のA画素からBサンプルを生成することを示す。例えば、水平方向の2:1のサンプリングレートは、水平方向の元のマップ内の2つの画素ごとに1つのサンプルを生成することを示す。垂直方向の2:1のサンプリングレートは、垂直方向の元のマップ内の2つの画素ごとに1つのサンプルを生成することを示す。いくつかの例では、サンプリングレートを示すためにサンプリングステップが使用される。方向のサンプリングステップは、サンプルを生成するステップとしての画素数を示す。例えば、水平方向に2のサンプリングステップは、水平方向に2画素ごとにサンプルを生成することを示す。垂直方向に2のサンプリングステップは、垂直方向に2画素ごとにサンプルを生成することを示す。
【0132】
いくつかの実施形態では、サンプリング適応は、マップ内のサブ領域に基づく。異なるサンプリングレートをマップの異なる部分に適用することができる。いくつかの例では、画素のいくつかの行は保存される情報が少なく、これらの行に沿ってより大きなサンプリングステップを適用することができ、結果として符号化されるサンプル行の数が少なくなる。いくつかの例では、画素のいくつかの列は保存される情報が少なく、これらの列に沿ってより大きなサンプリングステップを適用することができ、結果として符号化されるサンプル列の数が少なくなる。他の領域では、サンプリング後に情報の損失を最小限に抑えるために、より小さいサンプリングステップが適用される。
【0133】
図12は、いくつかの例における適応サンプリングの図を示す。マップ(1220)はいくつかのブロック行に分割され、各ブロック行は固定数のサンプル(画素)行を含む。異なるサンプリングレートが垂直方向のブロック行に適用され、適応的にサンプリングされたマップ(1230)を生成する。例えば、各ブロック行はCTU行(CTUラインとも呼ばれる)であり、64行のサンプル(画素とも呼ばれる)を含む。図12の例では、マップ(1220)内のブロック行0およびブロック行6に対して、2:1の第1のサンプリングレートが垂直方向に適用されると、結果として、サンプリング後の適応的にサンプリングされたマップ(1230)内のブロック行0およびブロック行6の各々に対して32行のサンプルが得られる。マップ(1220)内のブロック行1から5に対して、1:1の第2のサンプリングレートが垂直方向に適用されると、結果として、適応的にサンプリングされたマップ(1230)内のブロック行1から5の各々に対して64行のサンプルが得られる。
【0134】
いくつかの例では、適応的にサンプリングされたマップ(1230)は、ビデオエンコーダ(1130)などの画像またはビデオエンコーダによって符号化される。デコーダ側では、一例では、適応的にサンプリングされたマップ(1230)が復号される。復号後、上位32行のサンプルは、64行のサンプルなどの元の解像度に復元(アップサンプリング)される。下位32行のサンプルは、例えば復元モジュール(1180)によって、64行のサンプルなどの元の解像度に復元(アップサンプリング)される。
【0135】
いくつかの他の例では、3Dメッシュの2D表現内の符号化対象マップは、いくつかのサブ領域に分割することができる。このようなマップ内の分割(例えば、写真)としては、例えば、スライス、タイル、タイル群、コーディング・ツリー・ユニットなどが挙げられる。いくつかの例では、異なるサンプリングレートを異なるサブ領域に適用することができる。一例では、異なるサブ領域に関連付けられた異なるサンプリングレートは、3Dメッシュを搬送するビットストリームでシグナリングすることができる。デコーダ側では、適応的にサンプリングされたマップの復号後、例えば復元モジュール(1180)によって、サブ領域に関連付けられたサンプリングレートに従って、各サブ領域が元の解像度に復元される。
【0136】
いくつかの例では、適応的にサンプリングされたマップを元の解像度に復元する処理は、復元されたマップを生成する逆サンプリング処理と呼ばれる。逆サンプリング処理からの復元後、2Dアトラスの形態の復元されたマップの出力は、3Dメッシュ再構築に使用することができる。
【0137】
図12の例では、垂直方向の異なるブロック行に対する適応サンプリングを示しているが、水平方向の異なる列に対しても同様の適応サンプリングを適用してもよく、垂直方向および水平方向の両方に適用してもよい。
【0138】
いくつかの実施形態では、サンプリング適応はパッチに基づく。いくつかの例では、マップ内の異なるパッチは、異なるサンプリングレートを有することができる。
【0139】
図13は、いくつかの例における適応サンプリングの図を示す。高解像度の2Dアトラスなどのマップ(1320)は、第1の2D形状A’および第2の2D形状B’などの、3Dメッシュ内のパッチに対応するUVパッチとも呼ばれる複数の2D形状を含む。図13の例では、2:1の第1のサンプリングレートが、垂直方向および水平方向の両方で第1の2D形状A’に適用されて、第1のサンプリングされた2D形状A’’を生成する。1:1の第2のサンプリングレートが、第2の2D形状B’に垂直方向および水平方向の両方に適用されて、第2のサンプリングされた2D形状B’’を生成する。第1のサンプリングされた2D形状A’’、および第2のサンプリングされた2D形状B’’は、適応的にサンプリングされたマップ(1330)と呼ばれる新しいマップに配置される。
【0140】
図13の例では、第1のサンプリングされた2D形状A’’は、第1の2D形状A’よりも小さく、第2のサンプリングされた2D形状B’’は、第2の2D形状B’と同じサイズである。適応的にサンプリングされたマップ(1330)は、ビデオエンコーダ(1130)などの画像またはビデオエンコーダによって、3Dメッシュを搬送するビットストリームに符号化される。いくつかの例では、サンプリングされた2D形状に関連付けられたサンプリングレートは、例えば補助データエンコーダ(1140)によって、3Dメッシュを搬送するビットストリームに符号化される。
【0141】
いくつかの例では、デコーダ側で、ビデオデコーダ(1160)などの画像/ビデオデコーダは、ビットストリームから適応的にサンプリングされたマップ(1330)などの初期マップを復号する。さらに、サンプリングされた2D形状に関連付けられたサンプリングレートは、例えば補助データデコーダ(1170)によってビットストリームから復号される。サンプリングされた2D形状に関連付けられたサンプリングレートに従って、適応的にサンプリングされたマップ(1330)内のサンプリングされた2D形状は、元のサイズ(例えば、垂直方向と水平方向とで同じ画素数)に復元され、例えば、復元モジュール(1180)によって復元されたマップを生成する。次いで、復元されたマップは、3Dメッシュ再構築に使用される。
【0142】
本開示の一態様によれば、異なるマップタイプのサンプリングレート、異なるサブ領域のサンプリングレート、異なるパッチのサンプリングレートなどの適応サンプリング情報が、メッシュエンコーダ側およびメッシュデコーダ側で知られている。いくつかの例では、適応サンプリング情報は、3Dメッシュを搬送するビットストリームに適切に符号化される。したがって、メッシュデコーダおよびメッシュエンコーダは、同じ適応サンプリング情報に基づいて動作することができる。メッシュデコーダは、マップを正しいサイズに復元することができる。
【0143】
いくつかの例では、メッシュエンコーダとメッシュデコーダの両方によってデフォルト・サンプリング・レートが想定される。いくつかの他の例では、デフォルト・サンプリング・レートが、フレームレベルまたはシーケンスレベルでシグナリングされる。一例では、マップタイプの場合、マップタイプのサンプリングレートがデフォルト・サンプリング・レートと異なるかどうかを示すためにフラグが使用される。マップタイプのサンプリングレートがデフォルト・サンプリング・レートと異なる場合、新しいサンプリングレート(またはデフォルト・サンプリング・レートとの差)がシグナリングされる。
【0144】
別の例では、マップのサブ領域(ブロック行、ブロック列、CTUライン、スライス、タイル、タイル群、CTUなど)について、サブ領域のサンプリングレートがデフォルト・サンプリング・レートと異なるかどうかを示すためにフラグが使用される。サブ領域のサンプリングレートがデフォルト・サンプリング・レートと異なる場合、新しいサンプリングレート(またはデフォルト・サンプリング・レートとの差)がシグナリングされる。
【0145】
別の例では、マップ内のパッチ(例えば、UVパッチ、2D形状)について、パッチのサンプリングレートがデフォルト・サンプリング・レートと異なるかどうかを示すためにフラグが使用される。パッチのサンプリングレートがデフォルト・サンプリング・レートと異なる場合、新しいサンプリングレート(またはデフォルト・サンプリング・レートに対する差)がシグナリングされる。
【0146】
いくつかの例では、フレームまたはシーケンスで使用されるサンプリングレートのセットは、ビットストリームでシグナリングされるか、またはメッシュエンコーダとメッシュデコーダの両方によって合意される。そのようなサンプリングレートの例には、2:1、4:1、8:1などが含まれる。マップタイプ、サブ領域、またはパッチに対して特定のサンプリングレートが選択された場合、セット内のサンプリングレートのインデックスを使用して、サンプリングレート自体をシグナリングする代わりに、選択を示すことができる。
【0147】
いくつかの例では、異なるメッシュフレーム内のパッチは、同じ位置にない場合がある。経時的に、メッシュフレーム内のパッチは、別のメッシュフレーム内の対応するパッチ(例えば、メッシュの同じまたは類似の部分を覆う一対のパッチ)を有する。前のメッシュフレーム内の1つのパッチに適用された(例えば、前のメッシュフレームを表すためのマップ内の対応するUVパッチに適用され、前のメッシュフレームを表すためのマップ内の対応する2D形状に適用された)サンプリングレートは、現在のメッシュフレーム内の対応するパッチに適用され(例えば、現在のメッシュフレームを表すためのマップ内の対応するUVパッチに適用され、現在のメッシュフレームを表すためのマップ内の対応する2D形状に適用され)得る。いくつかの例では、メッシュフレームのシーケンスは、ピクチャグループ(GOP)とすることができる。一例では、サンプリングレートは、GOPのキーメッシュフレーム(例えば、第1のフレーム)内のパッチまたはサブ領域またはCTUラインに対してシグナリングされる。GOP内の他のメッシュフレーム内のパッチまたは領域またはラインの場合、それらのサンプリングレートは、キーメッシュフレーム内の対応するものを参照することができる。
【0148】
図14は、本開示の一実施形態による処理(1400)の概要を示すフローチャートを示す。処理(1400)は、メッシュの符号化処理中に使用することができる。様々な実施形態において、処理(1400)は、処理回路によって実行される。いくつかの実施形態では、処理(1400)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路が処理(1400)を実行する。処理は(S1401)から始まり、(S1410)に進む。
【0149】
(S1410)において、2Dの複数のマップの異なる部分に関連付けられた少なくとも2つのサンプリングレートが決定される。複数のマップは、3次元(3D)メッシュフレームの表現である。一例では、適応サンプリングモジュール(1120)は、2Dの複数のマップの異なる部分に関連付けられた少なくとも2つのサンプリングレートを決定する。
【0150】
(S1420)において、複数のマップは、少なくとも2つのサンプリングレートに基づいてサンプリングされ、複数のサンプリングされたマップを生成する。一例では、適応サンプリングモジュール(1120)は、複数のサンプリングされたマップを生成するために、複数のマップの異なる部分に少なくとも2つのサンプリングレートを適用する。例えば、複数のマップの第1の部分は、第1のサンプリングレートに基づいてダウンサンプリングされ、複数のマップの第2の部分は、第2のサンプリングレートに基づいてダウンサンプリングされる。
【0151】
(S1430)において、複数のサンプリングされたマップは、ビットストリームに符号化される。一例では、ビデオエンコーダ(1130)は、複数のサンプリングされたマップをビットストリーム(1145)に符号化する。
【0152】
少なくとも2つのサンプリングレートを決定するために、いくつかの例では、第1のマップタイプの第1のマップに関連付けられた第1のサンプリングレートが決定され、第2のマップタイプの第2のマップに関連付けられた第2のサンプリングレートが決定される。複数のマップは、第1のマップと第2のマップとを含む。例えば、第1のマップはジオメトリマップであり、第2のマップはテクスチャマップである。
【0153】
少なくとも2つのサンプリングレートを決定するために、いくつかの例では、第1のマップ内の第1のサブ領域に関連付けられた第1のサンプリングレートが決定され、第1のマップ内の第2のサブ領域に関連付けられた第2のサンプリングレートが決定される。一例では、第1のサブ領域および第2のサブ領域の各々は、複数の画素行(例えば、ブロック行)を含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、複数の画素列を含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、コーディング・ツリー・ユニット(CTU)ラインを含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、スライスを含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、タイルを含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、タイル群を含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、CTUを含む。
【0154】
少なくとも2つのサンプリングレートを決定するために、いくつかの例では、第1のマップ内の第1のパッチ(例えば、第1のUVパッチ、第1の2D形状)に関連付けられた第1のサンプリングレートが決定され、第1のマップ内の第2のパッチ(例えば、第2のUVパッチ、第2の2D形状)に関連付けられた第2のサンプリングレートが決定される。
【0155】
いくつかの例では、第1のフラグは、複数のサンプリングされたマップの第1の部分に関連付けられた第1のサンプリングレートと、デフォルト・サンプリング・レートとの比較に基づいて決定される。サンプリングされた複数のマップの第1の部分に関連付けられた第1のフラグは、例えば補助データエンコーダ(1140)によってビットストリームに符号化される。一例では、第1のサンプリングレートは、第1のサンプリングレートがデフォルト・サンプリング・レートと異なることに応答して、例えば補助データエンコーダ(1140)によってビットストリームに符号化される。別の例では、第1のサンプリングレートとデフォルト・サンプリング・レートとの差は、第1のサンプリングレートがデフォルト・サンプリング・レートと異なることに応答して、例えば補助データエンコーダ(1140)によってビットストリームに符号化される。
【0156】
いくつかの例では、第1のサンプリングレートは、複数のマップの第1の部分について、所定のサンプリングレートのセットから選択される。次いで、インデックスは、例えば補助データエンコーダ(1140)によってビットストリームに符号化される。インデックスは、所定のサンプリングレートのセットからの第1のサンプリングレートの選択を示す。
【0157】
いくつかの例では、ビットストリームは、複数の3Dメッシュフレームを搬送する。一例では、第1の3Dメッシュフレームの第1のパッチに関連付けられた第1のサンプリングレートが、第1の3Dメッシュフレームの符号化中に適用される。次いで、第2の3Dメッシュフレーム内の第2のパッチに関連付けられた第2のサンプリングレートが、第1のサンプリングレートに従って決定される。第2の3Dメッシュフレーム内の第2のパッチは、第1の3Dメッシュフレームの第1のパッチに対応するパッチである。一例では、第1の3Dメッシュフレームはピクチャグループ(GOP)のキーメッシュフレームであり、第2のサンプリングレートは第1のサンプリングレートに等しい。
【0158】
次いで、処理は(S1499)に進み、終了する。
【0159】
処理(1400)は、適切に適合させることができる。処理(1400)の(1つまたは複数の)ステップは、修正および/または省略することができる。(1つまたは複数の)追加のステップを追加することができる。任意の適切な実施順序を使用することができる。
【0160】
図15は、本開示の一実施形態に係る処理(1500)の概要を示すフローチャートを示す。処理(1500)は、メッシュの復号処理中に使用することができる。様々な実施形態において、処理(1500)は、処理回路によって実行される。いくつかの実施形態では、処理(1500)がソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路が処理(1500)を実行する。処理は(S1501)から開始されて(S1510)に進む。
【0161】
(S1510)において、2Dの複数の初期マップが、3Dメッシュフレームを搬送するビットストリームから復号される。一例では、ビデオデコーダ(1160)は、ビットストリーム(1145)から2Dの複数の初期マップを復号する。
【0162】
(S1520)において、複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートが決定される。一例では、補助データデコーダ(1170)は、複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートを決定する。
【0163】
(S1530)において、複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートに基づいて、複数の初期マップから複数の復元マップが取得される。一例では、復元モジュール(1180)は、複数の初期マップの異なる部分に関連付けられた少なくとも2つのサンプリングレートに基づいて、複数の初期マップから複数の復元マップを生成する。例えば、複数の初期マップの第1の部分は、第1の部分に関連付けられた少なくとも2つのサンプリングレートの第1のサンプリングレートに基づいて復元され(例えば、アップサンプリングされる)、複数の初期マップの第2の部分は、第2の部分に関連付けられた少なくとも2つのサンプリングレートの第2のサンプリングレートに基づいて復元される(例えば、アップサンプリングされる)。
【0164】
(S1540)において、3Dメッシュフレームは、複数の復元されたマップに基づいて再構築される。一例では、メッシュ再構築モジュール(1190)は、3Dメッシュフレームを再構築する。
【0165】
少なくとも2つのサンプリングレートを決定するために、いくつかの例では、第1のマップタイプの第1の初期マップに関連付けられた第1のサンプリングレートが決定され、第2のマップタイプの第2の初期マップに関連付けられた第2のサンプリングレートが決定される。
【0166】
少なくとも2つのサンプリングレートを決定するために、いくつかの例では、第1の初期マップ内の第1のサブ領域に関連付けられた第1のサンプリングレートが決定される。第1の初期マップ内の第2の部分領域に関連付けられた第2のサンプリングレートが決定される。一例では、第1のサブ領域および第2のサブ領域の各々は、複数の画素列(例えば、サンプリングされたブロック行)を含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、複数の画素列を含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、サンプリングされたコーディング・ツリー・ユニット(CTU)ラインに対応する。別の例では、第1のサブ領域および第2のサブ領域の各々は、サンプリングされたスライスを含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、サンプリングされたタイルを含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、サンプリングされたタイル群を含む。別の例では、第1のサブ領域および第2のサブ領域の各々は、サンプリングされたCTUを含む。
【0167】
少なくとも2つのサンプリングレートを決定するために、いくつかの例では、第1の初期マップ内の第1のパッチ(例えば、第1のUVパッチ、第1の2D形状)に関連付けられた第1のサンプリングレートが決定される。第1の初期マップ内の第2のパッチ(例えば、第2のUVパッチ、第2の2D形状)に関連付けられた第2のサンプリングレートが決定される。
【0168】
いくつかの例では、複数の初期マップの第1の部分に関連付けられた第1のフラグが、ビットストリームから復号される。第1のフラグは、第1の部分に関連付けられた第1のサンプリングレートがデフォルト・サンプリング・レートと異なるかどうかを示す。一例では、第1のフラグは、第1のサンプリングレートがデフォルト・サンプリング・レートと異なることを示し、次いで、第1のサンプリングレートがビットストリームから復号される。別の例では、第1のフラグは、第1のサンプリングレートがデフォルト・サンプリング・レートと異なることを示し、次いで、第1のサンプリングレートとデフォルト・サンプリング・レートとの差がビットストリームから復号される。
【0169】
いくつかの例では、インデックスはビットストリームから復号され、インデックスは、複数の初期マップの部分に関連付けられたサンプリングレートとして所定のサンプリングレートのセットからの選択を示す。
【0170】
いくつかの例では、ビットストリームは、複数の3Dメッシュフレームを搬送する。第1の3Dメッシュフレームに関連付けられた第1のマップは、第1の3Dメッシュフレームの第1のパッチに関連付けられた第1のサンプリングレートに基づいて復元される。次いで、第2の3Dメッシュフレーム内の第2のパッチに関連付けられた対応するサンプリングレートが、第1のサンプリングレートに従って決定される。第2の3Dメッシュフレーム内の第2のパッチは、第1の3Dメッシュフレームの第1のパッチに対応するパッチである。一例では、第1の3Dメッシュフレームはピクチャグループ(GOP)のキーメッシュフレームであり、対応するサンプリングレートは第1のサンプリングレートに等しい。
【0171】
次いで、処理は(S1599)に進み、終了する。
【0172】
処理(1500)は、適切に適合させることができる。処理(1500)の(1つまたは複数の)ステップは、修正および/または省略することができる。(1つまたは複数の)追加のステップを追加することができる。任意の適切な実施順序を使用することができる。
【0173】
本開示で開示された技術は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、技術(例えば、方法、実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つ以上の集積回路)によって実装されてもよい。いくつかの例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0174】
上記で説明した技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、図16は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(1600)を示す。
【0175】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU:central processing unit)およびグラフィック処理装置(GPU:Graphics Processing Unit)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムを受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコード化され得る。
【0176】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0177】
コンピュータシステム(1600)に関して図16に示されている構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。また、構成要素の構成も、コンピュータシステム(1600)の例示的な実施形態に示されている構成要素のいずれの1つまたは組み合わせに関するいかなる依存性または要件も有するものとして解釈されるべきではない。
【0178】
コンピュータシステム(1600)は、ある特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に応答し得る。ヒューマン・インターフェース・デバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0179】
入力ヒューマン・インターフェース・デバイスは、(それぞれの1つだけが描かれている)キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(示されていない)、ジョイスティック(1605)、マイク(1606)、スキャナ(1607)、カメラ(1608)のうちの1または複数を含み得る。
【0180】
コンピュータシステム(1600)は、ある特定のヒューマンインターフェース出力デバイスも含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激し得る。こうしたヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1610)、データグローブ(示されていない)、またはジョイスティック(1605)による触覚フィードバックであるが、入力デバイスとしての機能を果たさない触覚フィードバックデバイスも存在することができる)、オーディオ出力デバイス(スピーカ(1609)、ヘッドホン(描かれていない)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1610)などであって、それぞれタッチスクリーン入力機能を有するかまたは有さず、それぞれ触覚フィードバック機能を有するかまたは有さず、いくつかは2次元視覚出力を、または立体出力などの手段、すなわち、バーチャル・リアリティ・グラス(描かれていない)、ホログラフィックディスプレイおよびスモークタンク(描かれていない)、を通じて、3次元を超える出力を、出力することが可能であり得る)、およびプリンタ(描かれていない)を含み得る。
【0181】
コンピュータシステム(1600)は、CD/DVDまたは類似のメディアを伴ったCD/DVD ROM/RW(1620)を含む光学メディア(1621)、サムドライブ(1622)、リムーバブル・ハード・ドライブまたはソリッド・ステート・ドライブ(1623)、テープおよびフロッピディスク(描かれていない)などのレガシ磁気メディア、セキュリティドングル(描かれていない)などの専用のROM/ASIC/PLDベースのデバイス、などの、人間がアクセス可能なストレージデバイスおよびそれらの関連メディアも含むことができる。
【0182】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0183】
また、コンピュータシステム(1600)は、1つ以上の通信ネットワーク(1655)へのインターフェース(1654)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネットと、無線LANと、GSM、3G、4G、5G、LTEなどを含むセルラネットワークと、ケーブルテレビ、衛星テレビ、および地上波放送テレビを含むテレビ有線または無線ワイド・エリア・デジタル・ネットワークと、CANBusを含む車両用および産業用と、その他いろいろと、などのローカルエリアネットワークを含む。ある特定のネットワークは、一般に、ある特定の汎用データポートまたは周辺機器用バス(1649)(例えば、コンピュータシステム(1600)のUSBポートなど)に取り付けられた外部ネットワーク・インターフェース・アダプタを必要とし、他のものは一般に、以下に説明するようにシステムバスへの取付けによって、コンピュータシステム(1600)のコアに統合される(例えば、イーサネットインターフェースがPCコンピュータシステムへ、またはセルラ・ネットワーク・インターフェースがスマートフォン・コンピュータ・システムへ)。これらのネットワークのいずれかを使用して、コンピュータシステム(1600)は、他のエンティティと通信し得る。そのような通信は、例えば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向で受信のみ(例えば、放送TV)、単方向で送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0184】
前述のヒューマン・インターフェース・デバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースが、コンピュータシステム(1600)のコア(1640)に取り付けられることができる。
【0185】
コア(1640)は、1つ以上の中央処理装置(CPU)(1641)、グラフィック処理装置(GPU)(1642)、フィールド・プログラマブル・ゲートアレイ(FPGA)(1643)の形式の専用のプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1644)、およびグラフィックアダプタ(1650)などを含み得る。これらのデバイスは、リードオンリーメモリ(Read-only memory:ROM)(1645)、ランダムアクセスメモリ(1646)、ユーザがアクセス可能でない内部ハードドライブ、SSDなどの内部大容量記憶装置(1647)とともに、システムバス(1648)を介して接続され得る。いくつかのコンピュータシステムでは、追加のCPU、GPUなどによる拡張を可能にするために、システムバス(1648)は1または複数の物理的プラグの形式でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス(1648)に直接取り付けることも、周辺機器用バス(1649)を介して取り付けることもできる。一例では、スクリーン(1610)はグラフィックアダプタ(1650)に接続され得る。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0186】
CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、前述のコンピュータコードを構成することができるある特定の命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に格納され得る。過渡的データはまた、RAM(1646)に格納され得、一方、永続データは、例えば内部大容量記憶装置(1647)に、格納され得る。1または複数のCPU(1641)、GPU(1642)、大容量記憶装置(1647)、ROM(1645)、RAM(1646)などと密接に関連付けられることができるキャッシュメモリの使用を通じて、メモリデバイスのいずれへの高速ストレージおよび取り出しも可能とされることができる。
【0187】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであり得るし、またはそれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであり得る。
【0188】
限定の目的ではなく例として、アーキテクチャを有するコンピュータシステム(1600)、および具体的にはコア(1640)は、1または複数の有形のコンピュータ可読メディアで具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能性を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザがアクセス可能な大容量記憶装置、および、コア内部大容量記憶装置(1647)またはROM(1645)などの持続性な性質のコア(1640)の特定の記憶装置に関連付けられた媒体とし得る。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに記憶され、コア(1640)によって実行し得る。コンピュータ可読媒体は、特定の必要性に応じて、1つ以上のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア(1640)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に、本明細書に記載の特定処理または特定処理の特定部分を実行させ得る。処理には、RAM(1646)に記憶されたデータ構造を定義すること、および、ソフトウェアによって定義された処理に従ってそのようなデータ構造を修正することを含む。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ(1644))に具現化された論理回路の結果として、機能を提供することができ、ソフトウェアの代わりに、またはソフトウェアとともに動作して、本明細書に記載の特定処理または特定処理の特定部分を実行し得る。ソフトウェアへの参照は、論理回路を包含することができ、適切な場合には逆もまた同様である。必要に応じて、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC:integrated circuit)など)、実行のためのロジックを具体化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0189】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがって、その趣旨および範囲内にある多数のシステムおよび方法を考案できることが諒解されよう。
【符号の説明】
【0190】
100 通信システム
105 センサ
110 端末デバイス
120 端末デバイス
150 ネットワーク
200 ストリーミングシステム
201 点群源
202 点群
203 エンコーダ
204 圧縮された点群
205 ストリーミングサーバ
206 クライアントサブシステム
207 コピー
208 クライアントサブシステム
209 コピー
210 デコーダ
211 点群
212 レンダリングデバイス
213 キャプチャサブシステム
220 電子デバイス
230 電子デバイス
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 点群
702 ビットストリーム
710 位置量子化モジュール
712 重複点除去モジュール
720 属性転送モジュール
730 八分木符号化モジュール
740 詳細レベル(LOD)生成モジュール
750 属性予測モジュール
760 残差量子化モジュール
770 算術符号化モジュール
780 逆残差量子化モジュール
781 加算モジュール
790 メモリ
800 G-PCCデコーダ
801 ビットストリーム
802 復号された点群
810 算術復号モジュール
820 逆残差量子化モジュール
830 八分木復号モジュール
840 LOD生成モジュール
850 属性予測モジュール
860 メモリ
910 3次元(3D)メッシュ
920 2Dアトラス、マップ
1020 マップ
1030 ダウンサンプリングされたマップ
1100 フレームワーク
1105 入力メッシュ
1110 メッシュエンコーダ
1120 適応サンプリングモジュール
1125 適応的にサンプリングされたマップ
1127 補助データ
1130 ビデオエンコーダ
1140 補助データエンコーダ
1145 ビットストリーム
1150 メッシュデコーダ
1160 ビデオデコーダ
1165 復号された情報
1170 補助データデコーダ
1175 復号された補助データ
1180 復元モジュール
1185 復元されたマップ
1190 メッシュ再構築モジュール
1195 再構築されたメッシュ
1220 マップ
1230 適応的にサンプリングされたマップ
1320 マップ
1330 適応的にサンプリングされたマップ
1400 処理
1500 処理
1600 コンピュータシステム
1601 キーボード
1602 マウス
1603 トラックパッド
1605 ジョイスティック
1606 マイク
1607 スキャナ
1608 カメラ
1609 スピーカ
1610 タッチスクリーン
1620 CD/DVD ROM/RW
1621 光学メディア
1622 サムドライブ
1623 ソリッド・ステート・ドライブ
1640 コア
1641 中央処理装置(CPU)
1642 グラフィック処理装置(GPU)
1643 フィールド・プログラマブル・ゲートアレイ(FPGA)
1644 ハードウェアアクセラレータ
1645 リードオンリーメモリ(ROM)
1646 ランダムアクセスメモリ
1647 内部大容量記憶装置
1648 システムバス
1649 周辺機器用バス
1650 グラフィックアダプタ
1654 インターフェース
1655 通信ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16