(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-24
(45)【発行日】2023-04-03
(54)【発明の名称】点群コーディングのための方法、装置、およびコンピュータプログラム
(51)【国際特許分類】
G06T 9/40 20060101AFI20230327BHJP
H04N 19/85 20140101ALI20230327BHJP
G06T 17/00 20060101ALI20230327BHJP
H04N 19/597 20140101ALI20230327BHJP
【FI】
G06T9/40
H04N19/85
G06T17/00 500
H04N19/597
(21)【出願番号】P 2021557976
(86)(22)【出願日】2020-11-12
(86)【国際出願番号】 US2020060218
(87)【国際公開番号】W WO2021113053
(87)【国際公開日】2021-06-10
【審査請求日】2021-09-28
(32)【優先日】2019-12-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】ウェン・ガオ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特開2015-201192(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00- 9/40
G06T 17/00-17/30
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサによって、
再構成された点群の再構成された位置に
対応する元の点群の中の1つまたは複数の元の点を決定するステップであって、
前記再構成された位置は、前記1つまたは複数の元の点の位置
を、ジオメトリ量子化によ
り再構成
した結果である、ステップと、
前記プロセッサによって、前記1つまたは複数の元の点の属性情報に基づいて、前記再構成された位置の属性値を決定するステップと、
前記プロセッサによって、前記決定された属性値を有する前記再構成された位置を用いて前記点群のテクスチャをエンコードするステップと
を含む、点群コーディングのための方法。
【請求項2】
前記ジオメトリ量子化により、前記1つまたは複数の元の点を前記再構成された位置に関連付けるデータ構造を格納するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記プロセッサによって、前記点群の空間をボクセルに分割する8分木パーティションを実行するステップと、
前記プロセッサによって、ボクセルの中に位置する前記1つまたは複数の元の点を、前記ボクセルを表すために前記再構成された位置と関連付けるステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記再構成された位置に基づいて前記データ構造にアクセスして、前記再構成された位置に関連付けられた前記1つまたは複数の元の点を取り出すステップをさらに含む、請求項2に記載の方法。
【請求項5】
前記プロセッサによって、複数の元の点が前記再構成された位置に関連付けられていることに応じて、前記複数の元の点の属性値の平均を、前記再構成された位置の前記決定された属性値として計算するステップをさらに含む、請求項1から4のうちいずれか一項に記載の方法。
【請求項6】
前記プロセッサによって、前記複数の元の点の前記属性値の加重平均を、前記再構成された位置の前記決定された属性値として計算するステップをさらに含む、請求項5に記載の方法。
【請求項7】
前記プロセッサによって、元の点と前記再構成された位置との距離の逆数に基づいて、前記複数の元の点のうちの前記元の点の属性値を重み付けするステップをさらに含む、請求項6に記載の方法。
【請求項8】
前記プロセッサによって、複数の元の点が前記再構成された位置に関連付けられていることに応じて、前記複数の元の点のうちの
、前記再構成された位置に対して最も近い点の特定の属性値を、前記再構成された位置の前記決定された属性値となるように割り当てるステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記プロセッサによって、前記複数の元の点のうちの最も近い点が前記再構成された位置まで同じ最短距離を有することに応じて、前記最も近い点についての属性値の中の中央属性値を選択するステップをさらに含む、請求項8に記載の方法。
【請求項10】
前記プロセッサによって、前記複数の元の点のうちの最も近い点が前記再構成された位置まで同じ最短距離を有することに応じて、前記最も近い点についての属性値の平均属性値を計算するステップをさらに含む、請求項8に記載の方法。
【請求項11】
請求項1から10のいずれか一項に記載の方法を行うように構成された点群コーディングのための装置。
【請求項12】
点群コーディングのための装置のコンピュータに、請求項1から10のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2019年12月2日に出願された米国仮出願第62/942,536号「点群コーディングのための高速再着色」に基づく優先権の利益を主張する、2020年10月6日に出願された米国特許出願第17/064,029号「点群コーディングのための方法および装置」に基づく優先権の利益を主張する。先行出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、一般に点群コーディングに関する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。現在名前の挙げられている発明者らの研究は、この背景技術の欄に記載されている限りにおいて、ならびにさもなければ出願時における先行技術として認められてはならない説明の態様は、明示的にも暗示的にも本開示に対する先行技術として自認されるものではない。
【0004】
世界のオブジェクト、世界の環境などの世界を3次元(3D)空間でキャプチャし表現するための様々な技術が開発されている。世界の3D表現は、より没入型のインタラクションおよびコミュニケーションを可能にすることができる。点群は、世界の3D表現として使用されうる。点群は、3D空間の点の集合であり、各々が、例えば色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および様々な他の属性などの関連付けられた属性を伴う。そのような点群は、大量のデータを含む可能性があり、格納および送信するためにコストがかかり、時間がかかる可能性がある。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の態様は、点群の圧縮および解凍のための方法および装置を提供する。いくつかの例では、点群圧縮/解凍のための装置は処理回路を含む。いくつかの実施形態では、処理回路は、再構成された位置に関連付けられた、点群の中の1つまたは複数の元の点を決定する。1つまたは複数の元の点の位置は、ジオメトリ量子化により、再構成された位置へ再構成されうる。次いで、処理回路は、1つまたは複数の元の点の属性情報に基づいて再構成された位置の属性値を決定し、決定された属性値を有する再構成された位置を用いて点群のテクスチャをエンコードする。
【0006】
いくつかの実施形態では、装置は、1つまたは複数の元の点を再構成された位置と関連付けるデータ構造を格納するメモリを含む。データ構造は、再構成された位置に基づいてアクセスされ、再構成された位置に関連付けられた1つまたは複数の元の点を取り出す。
【0007】
いくつかの実施形態では、処理回路は、ジオメトリ量子化中に点群の空間をボクセルに分割し、ボクセルを表すためにボクセルの中に位置する1つまたは複数の元の点を再構成された位置と関連付ける8分木パーティションを実行する。一例では、連関関係は、適切なデータ構造を使用して格納される。
【0008】
いくつかの実施形態では、処理回路は、複数の元の点が再構成された位置に関連付けられていることに応じて、複数の元の点の属性値の平均を再構成された位置の決定された属性値として計算する。いくつかの例では、処理回路は、複数の元の点の属性値の加重平均を再構成された位置の決定された属性値として計算する。一例では、処理回路は、元の点と再構成された位置との距離の逆数に基づいて、複数の元の点のうちの元の点の属性値に重み付けする。
【0009】
いくつかの実施形態では、処理回路は、複数の元の点が再構成された位置に関連付けられていることに応じて、複数の元の点の最も近い点の特定の属性値を、再構成された点について決定された属性値であるように割り当てる。一例では、処理回路は、再構成された位置まで同じ最短距離を有する複数の元の点の最も近い点に応じて、最も近い点の属性値の中から中央属性値を選択する。別の例では、処理回路は、再構成された位置まで同じ最短距離を有する複数の元の点の最も近い点に応じて、最も近い点の属性値の平均属性値を計算する。
【0010】
本開示の態様はまた、点群のエンコード/デコードのためにコンピュータによって実行されると、点群のエンコード/デコード化のための方法のいずれか1つまたは組み合わせをコンピュータに実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0011】
開示された主題のさらなる特徴、性質、および様々な利点は、次の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】一実施形態による通信システムの簡略化されたブロック図の概略図である。
【
図2】一実施形態によるストリーミングシステムの簡略化されたブロック図の概略図である。
【
図3】いくつかの実施形態による、点群フレームをエンコードするためのエンコーダのブロック図である。
【
図4】いくつかの実施形態による、点群フレームに対応する圧縮されたビットストリームをデコードするためのデコーダのブロック図である。
【
図5】一実施形態によるビデオデコーダの簡略化されたブロック図の概略図である。
【
図6】一実施形態によるビデオエンコーダの簡略化されたブロック図の概略図である。
【
図7】いくつかの実施形態による、点群フレームをエンコードするためのエンコーダのブロック図である。
【
図8】いくつかの実施形態による、点群フレームに対応する圧縮されたビットストリームをデコードするためのデコーダのブロック図である。
【
図9】本開示のいくつかの実施形態による、8分木パーティション技術に基づくキューブのパーティションを示す図である。
【
図10】本開示のいくつかの実施形態による、8分木パーティションおよび8分木パーティションに対応する8分木構造の一例を示す図である。
【
図11】本開示のいくつかの実施形態による導出技法を示す図である。
【
図12】いくつかの実施形態によるプロセス例の概要を示すフローチャートである。
【
図13】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0013】
本開示の態様は、点群コーディング(PCC)技術を提供する。PCCは、G-PCCと呼ばれるジオメトリベースの方式、V-PCCと呼ばれるビデオコーディングベースの方式など、様々な方式により行われうる。本開示のいくつかの態様によれば、G-PCCは、3Dジオメトリを直接エンコードし、ビデオコーディングとあまり共有することなく純粋にジオメトリベースの手法であり、V-PCCはビデオコーディングに大部分基づいている。例えば、V-PCCは、3D群の点を2Dグリッド(画像)のピクセルにマッピングすることができる。V-PCC方式は、点群圧縮のために汎用ビデオコーデックを利用することができる。ピクチャ専門家グループ(MPEG)は、それぞれG-PCC方式とV-PCC方式を使用したG-PCC規格とV-PCC規格に取り組んでいる。
【0014】
本開示の態様は、G-PCC方式およびV-PCC方式などのPCC方式のための再着色技術を提供する。再着色技術は、点群のコーディング速度を改善することができる。
【0015】
点群は、多くの用途で広く使用されうる。例えば、点群は、オブジェクト検出および位置特定のために自動運転車両で使用されることができ、点群は、マッピングのための地理情報システム(GIS)で使用されることができ、ならびに文化遺産のオブジェクトおよびコレクションなどを視覚化およびアーカイブするために文化遺産において使用することができる。
【0016】
以下、点群は、一般に、3D空間の点の集合を指すことができ、各点は、例えば色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および様々な他の属性などの関連属性を伴う位置情報によって定義されうる。点群は、そのような点を合成したものとしてオブジェクトまたはシーンを再構成するために使用されうる。点は、様々な設定で複数のカメラ、深度センサ、またはLIDARを使用してキャプチャされうるもので、再構成されたシーンを現実的に表現するために数千から最大数十億の点で構成されうる。パッチは、一般に、点群によって記述される表面の連続した部分集合を指しうる。一例では、パッチは、閾値量未満だけ互いにずれた表面法線ベクトルを伴う点を含む。
【0017】
圧縮技術は、より高速な伝送またはストレージの削減のために点群を表すために必要なデータ量を削減することができる。したがって、リアルタイム通信および6自由度(6 DoF)仮想現実で使用するための点群の非可逆圧縮のための技術が必要とされている。加えて、自動運転および文化的伝統の用途などのための動的マッピングの文脈において、可逆点群圧縮のための技術が求められている。
【0018】
本開示の一態様によれば、V-PCCの背後にある主な考え方は、既存のビデオコーデックを活用して、動的点群のジオメトリ、占有率、およびテクスチャを3つの別々のビデオシーケンスとして圧縮することである。3つのビデオシーケンスを解釈するために必要な追加のメタデータは、別々に圧縮される。ビットストリーム全体の少しの部分がメタデータであり、ソフトウェア実装を用いて効率的にエンコード/デコードされうる。情報の大部分はビデオコーデックによって処理される。
【0019】
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示している。通信システム(100)は、例えばネットワーク(150)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続されたペアの端末デバイス(110)および(120)を含む。
図1の例では、端末デバイス(110)および(120)の第1のペアは、点群データの単方向の伝送を実行することができる。例えば、端末デバイス(110)は、端末デバイス(110)に接続されたセンサ(105)によってキャプチャされた点群(例えば、構造を表す点)を圧縮することができる。圧縮された点群は、例えばビットストリームの形態で、ネットワーク(150)を介して他の端末デバイス(120)に送信されうる。端末デバイス(120)は、ネットワーク(150)から圧縮された点群を受信し、ビットストリームを解凍して点群を再構成し、再構成された点群を適切に表示することができる。単方向データ伝送は、メディアサービングアプリケーションなどで一般的でありうる。
【0020】
図1の例では、端末デバイス(110)および(120)は、サーバ、およびパーソナルコンピュータとして示される場合があるが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、および/または専用3次元(3D)機器による用途であることが分かる。ネットワーク(150)は、端末デバイス(110)と端末デバイス(120)との間で圧縮された点群を送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば、有線(有線配線)および/または無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本解説の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0021】
図2は、一実施形態によるストリーミングシステム(200)の簡略化されたブロック図を示している。
図2の例は、点群の開示された主題の用途である。開示された主題は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーションなどの他の点群対応アプリケーションにも等しく適用可能でありうる。
【0022】
ストリーミングシステム(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)の出ていくストリームを生成する。
【0023】
電子デバイス(220)および(230)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(220)はデコーダ(図示せず)を含むことができ、電子デバイス(230)はエンコーダ(図示せず)も含むことができる。
【0024】
いくつかのストリーミングシステムでは、圧縮された点群(204)、(207)、および(209)(例えば、圧縮された点群のビットストリーム)は、特定の規格により圧縮されうる。いくつかの例では、点群の圧縮にビデオコーディング規格が使用される。そのような規格としては、例えば、HEVC(High Efficiency Video Coding)、VVC(Versatile Video Coding)などがある。
【0025】
図3は、いくつかの実施形態による、点群フレームをエンコードするためのV-PCCエンコーダ(300)のブロック図を示す。いくつかの実施形態では、V-PCCエンコーダ(300)は、通信システム(100)およびストリーミングシステム(200)で使用されうる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様に構成され、動作されうる。
【0026】
V-PCCエンコーダ(300)は、非圧縮入力として点群フレームを受信し、圧縮された点群フレームに対応するビットストリームを生成する。いくつかの実施形態では、V-PCCエンコーダ(300)は、点群ソース(201)などの点群ソースから点群フレームを受信することができる。
【0027】
図3の例では、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)と、パッチパッキングモジュール(308)と、ジオメトリ画像生成モジュール(310)と、テクスチャ画像生成モジュール(312)と、パッチ情報モジュール(304)と、占有マップモジュール(314)と、平滑化モジュール(336)と、画像パディングモジュール(316)および(318)と、グループ拡張モジュール(320)と、ビデオ圧縮モジュール(322)、(323)および(332)と、補助パッチ情報圧縮モジュール(338)と、エントロピー圧縮モジュール(334)と、マルチプレクサ(324)とを含む。
【0028】
本開示の一態様によれば、V-PCCエンコーダ(300)は、圧縮された点群を解凍された点群に変換するために使用されるいくつかのメタデータ(例えば、占有マップおよびパッチ情報)と共に、3D点群フレームを画像ベースの表現に変換する。いくつかの例では、V-PCCエンコーダ(300)は、3D点群フレームをジオメトリ画像、テクスチャ画像および占有マップに変換し、次いでビデオコーディング技術を使用してジオメトリ画像、テクスチャ画像および占有マップをビットストリームにエンコードすることができる。一般に、ジオメトリ画像は、ピクセルに投影された点に関連付けられたジオメトリ値で満たされたピクセルをもつ2D画像であり、ジオメトリ値で満たされたピクセルは、ジオメトリサンプルと呼ばれうる。テクスチャ画像は、ピクセルに投影された点に関連付けられたテクスチャ値で満たされたピクセルをもつ2D画像であり、テクスチャ値で満たされたピクセルは、テクスチャサンプルと呼ばれうる。占有マップは、パッチによって占有されているか占有されていないかを示す値で満たされたピクセルをもつ2D画像である。
【0029】
パッチ生成モジュール(306)は、各パッチが2D空間の平面に対する深度場によって記述されうるように、点群を、重なり合っていてもいなくてもよいパッチの集合(例えば、パッチは、点群によって記述される表面の連続した部分集合として定義される)にセグメント化する。いくつかの実施形態では、パッチ生成モジュール(306)は、再構成エラーを最小化しながら、点群を滑らかな境界をもつ最小数のパッチに分解することを目的とする。
【0030】
パッチ情報モジュール(304)は、パッチのサイズおよび形状を示すパッチ情報を収集することができる。いくつかの例では、パッチ情報は画像フレームにパックされ、次いで補助パッチ情報圧縮モジュール(338)によってエンコードされ、圧縮された補助パッチ情報を生成することができる。
【0031】
パッチパッキングモジュール(308)は、抽出されたパッチを2次元(2D)グリッド上にマッピングすると同時に、未使用空間を最小限に抑え、グリッドのすべてのM×M(例えば、16×16)ブロックが固有のパッチと関連付けられることを保証するように構成される。効率的なパッチパッキングは、未使用の空間を最小化するか、または時間的一貫性を確保することのいずれかによって、圧縮効率に直接影響を与えうる。
【0032】
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置での点群のジオメトリに関連付けられた2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置での点群のテクスチャに関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)およびテクスチャ画像生成モジュール(312)は、パッキングプロセス中に計算された3Dから2Dへのマッピングを利用して、点群のジオメトリおよびテクスチャを画像として格納する。複数の点が同じサンプルに投影される場合をより良好に処理するために、各パッチは、レイヤと呼ばれる2つの画像に投影される。一例では、ジオメトリ画像は、YUV420-8ビットフォーマットのWxHの単色フレームによって表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングされた点に関連付けられる色を計算するために、再構成/平滑化されたジオメトリを利用する。
【0033】
占有マップモジュール(314)は、各単位におけるパディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドの各セルについて、セルが空の空間に属するか点群に属するかを示すバイナリマップを含む。一例では、占有マップは、ピクセルがパディングされているかどうかをピクセルごとに記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルのブロックがパディングされるかどうかをピクセルのブロックごとに記述するバイナリ情報を使用する。
【0034】
占有マップモジュール(314)によって生成された占有マップは、可逆コーディングまたは非可逆コーディングを用いて圧縮されうる。可逆コーディングが用いられるとき、占有マップを圧縮するために、エントロピー圧縮モジュール(334)が使用される。非可逆コーディングが用いられる場合、占有マップを圧縮するために、ビデオ圧縮モジュール(332)が使用される。
【0035】
パッチパッキングモジュール(308)は、画像フレームにパッキングされた2Dパッチ間にいくつかの空き空間を残すことができることに留意されたい。画像パディングモジュール(316)および(318)は、2Dビデオおよび画像コーデックに適しうる画像フレームを生成するために、空き空間(パディングと呼ばれる)を埋めることができる。画像パディングは、未使用の空間を冗長な情報で埋めることができる背景充填とも呼ばれる。いくつかの例では、良好な背景充填はビットレートを最小限に増加させるが、パッチ境界の周りに著しいコーディング歪みを導入しない。
【0036】
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVCなどの適切なビデオコーディング規格に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、および占有マップなどの2D画像をエンコードすることができる。一例では、ビデオ圧縮モジュール(322)、(323)、および(332)は、別々に動作する個々のコンポーネントである。別の例では、ビデオ圧縮モジュール(322)、(323)、および(332)を単一のコンポーネントとして実装できることに留意されたい。
【0037】
いくつかの例では、平滑化モジュール(336)は、再構成されたジオメトリ画像の平滑化画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成(312)に提供されうる。次に、テクスチャ画像生成(312)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整することができる。例えば、エンコードやデコード中にパッチ形状(例えば、ジオメトリ)がわずかに歪んだときには、テクスチャ画像を生成する際にその歪みを考慮して、パッチ形状の歪みを補正するようにしてもよい。
【0038】
いくつかの実施形態では、グループ拡張(320)は、コーディング利得ならびに再構成された点群の視覚的品質を改善するために、冗長な低周波数コンテンツでオブジェクト境界の周りにピクセルをパディングするように構成される。
【0039】
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を圧縮されたビットストリームに多重化することができる。
【0040】
図4は、いくつかの実施形態による、点群フレームに対応する圧縮されたビットストリームをデコードするためのV-PCCデコーダ(400)のブロック図を示している。いくつかの実施形態では、V-PCCデコーダ(400)は、通信システム(100)およびストリーミングシステム(200)で使用されうる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様に動作するように構成されうる。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームに基づいて再構成された点群を生成する。
【0041】
図4の例では、V-PCCデコーダ(400)は、デマルチプレクサ(432)と、ビデオ解凍モジュール(434)および(436)と、占有マップ解凍モジュール(438)と、補助パッチ情報解凍モジュール(442)と、ジオメトリ再構成モジュール(444)と、平滑化モジュール(446)と、テクスチャ再構成モジュール(448)と、色平滑化モジュール(452)とを含む。
【0042】
デマルチプレクサ(432)は、圧縮されたビットストリームを受信し、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離することができる。
【0043】
ビデオ解凍モジュール(434)および(436)は、適切な規格(例えば、HEVC、VVCなど)により圧縮された画像をデコードし、解凍された画像を出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮されたテクスチャ画像をデコードして、解凍されたテクスチャ画像を出力し、ビデオ解凍モジュール(436)は、圧縮されたジオメトリ画像をデコードし、解凍されたジオメトリ画像を出力する。
【0044】
占有マップ解凍モジュール(438)は、適切な規格(例えば、HEVC、VVCなど)により圧縮された占有マップをデコードし、解凍された占有マップを出力することができる。
【0045】
補助パッチ情報解凍モジュール(442)は、適切な規格(例えば、HEVC、VVCなど)により圧縮された補助パッチ情報をデコードし、解凍された補助パッチ情報を出力することができる。
【0046】
ジオメトリ再構成モジュール(444)は、解凍されたジオメトリ画像を受信し、解凍された占有マップおよび解凍された補助パッチ情報に基づいて再構成された点群ジオメトリを生成することができる。
【0047】
平滑化モジュール(446)は、パッチのエッジでの不一致を平滑化することができる。平滑化手順は、圧縮アーチファクトに起因してパッチ境界で生じうる潜在的な不連続性を緩和することを目的とする。いくつかの実施形態では、パッチ境界上に配置されるピクセルに平滑化フィルタが適用され、圧縮/解凍によって生じうる歪みを緩和することができる。
【0048】
テクスチャ再構成モジュール(448)は、解凍されたテクスチャ画像および平滑化ジオメトリに基づいて点群の点についてテクスチャ情報を決定することができる。
【0049】
色平滑化モジュール(452)は、色の不一致を平滑化することができる。3D空間の隣接していないパッチは、2Dビデオで互いに隣接してパックされることが多い。いくつかの例では、隣接していないパッチからのピクセル値は、ブロックベースのビデオコーデックによって混合されうる。色平滑化の目的は、パッチ境界に現れる可視アーチファクトを低減することである。
【0050】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、V-PCCデコーダ(400)で使用されうる。例えば、ビデオ解凍モジュール(434)および(436)、占有マップ解凍モジュール(438)は、ビデオデコーダ(510)と同様に構成されうる。
【0051】
ビデオデコーダ(510)は、例えばコーディングされたビデオシーケンスのような、圧縮された画像からシンボル(521)を再構成するためのパーサ(520)を含みうる。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含む。パーサ(520)は、受信されたコーディングされたビデオシーケンスを解析/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存の有無にかかわらず算術コーディングなどを含む様々な原則に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダのピクセルのサブグループの少なくとも1つのサブグループパラメータの集合を抽出することができる。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含みうる。パーサ(520)はまた、変換係数、量子化パラメータ値、動きベクトルなどのようなコーディングされたビデオシーケンス情報から抽出することができる。
【0052】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリから受信したビデオシーケンスに対してエントロピーデコード/構文解析動作を実行することができる。
【0053】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその一部のタイプ(例えば、ピクチャ間およびピクチャ内、ブロック間およびブロック内)、および他の要因に応じて、複数の異なるユニットを含みうる。どのユニットが、どのように関与するかは、パーサ(520)によって、コード化されたビデオシーケンスから解析されたサブグループ制御情報によって制御されうる。パーサ(520)と以下の複数のユニットとのそのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0054】
すでに言及した機能ブロックを超えて、ビデオデコーダ(510)は、以下で説明されるように、概念的にいくつかの機能ユニットに細分されうる。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合されうる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
【0055】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)からシンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されうるサンプル値を含むブロックを出力できる。
【0056】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロックに関係する場合があり、すなわち、それは、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用できるブロックである。そのような予測情報は、ピクチャ内予測ユニット(552)によって提供されうる。場合によっては、ピクチャ内予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0057】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係する場合がある。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)によりフェッチされたサンプルを動き補償した後、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加され得(この場合、残差サンプルまたは残差信号と呼ばれる)、出力サンプル情報を生成する。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Y、および参照ピクチャコンポーネントを有することができるシンボル(521)の形式で動き補償予測ユニット(553)が利用できる、動きベクトルによって制御されうる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0058】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)で様々なループフィルタリング技術に依存する場合がある。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの前の(デコード順序の)部分のデコード中に取得されたメタ情報に応答することもできるほか、以前に再構成およびループフィルタリングされたサンプル値に応答することもできる。
【0059】
ループフィルタユニット(556)の出力は、レンダリングデバイスに出力されうるほか、将来のピクチャ間予測で使用するために参照ピクチャメモリ(557)にも格納されうるサンプルストリームでありうる。
【0060】
特定のコーディングされたピクチャは、十分に再構成されると、将来の予測のための参照ピクチャとして使用されうる。現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが参照画像として識別されると(例えば、パーサ(520)によって)、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングされたピクチャの再構成を開始する前に、新しい現在のピクチャバッファは再割り当てされうる。
【0061】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格の所定のビデオ圧縮技術により復号動作を実行することができる。ビデオ圧縮技術または規格で文書化されているように、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文とプロファイルの両方に準拠しているという意味で、コーディングされたビデオシーケンスは、ビデオ圧縮技術または使用されている規格で指定された構文に準拠しうる。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、そのプロファイルの下で使用のために利用可能な唯一のツールとして特定のツールを選択することができる。また、コンプライアンスのために必要なのは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることでありうる。場合によっては、レベルが、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプル数で測定)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンスで通知されるHRDバッファ管理のメタデータによってさらに制限される場合がある。
【0062】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、点群を圧縮するV-PCCエンコーダ(300)において使用されうる。一例では、ビデオ圧縮モジュール(322)および(323)、ならびにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0063】
ビデオエンコーダ(603)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像などの画像を受信し、圧縮された画像を生成することができる。
【0064】
一実施形態によれば、エンコーダ(603)は、リアルタイムで、またはアプリケーションによって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャ(画像)をコーディングし、コーディングされたビデオシーケンス(圧縮された画像)に圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連のパラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値など)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含みうる。コントローラ(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成されうる。
【0065】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされる入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することを担当する)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構成する(開示された主題で考慮されるビデオ圧縮技術では、シンボルとコーディングされたビデオビットストリームとの任意の圧縮が可逆的であるため)。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確になる。言い換えると、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネルエラーのために同期性を維持できない場合に生じるドリフト)のこの基本原理は、いくつかの関連技術でも同様に使用されている。
【0066】
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得、これは、
図5に関連してすでに上記において詳述されている。しかしながら、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコード/デコード化は可逆でありうるため、およびパーサ(520)を含む、ビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)に十分実装されていない場合がある。
【0067】
現時点で行うことができる観察は、デコーダに存在する解析/エントロピーデコード以外のデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在する必要があるということである。このため、開示された主題は、デコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略されうる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0068】
動作中、いくつかの例では、ソースコーダ(630)は、動き補償予測コーディングを実行することができ、これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力への予測参照として選択されうる参照ピクチャのピクセルブロックとの差異をコーディングする。
【0069】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャのコーディングされたビデオデータをデコードすることができる。コーディングエンジン(632)の動作は、有利には、非可逆プロセスでありうる。コーディングされたビデオデータがビデオデコーダ(
図6には示されていない)で復号されうるとき、再構成されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカでありうる。ローカルビデオデコーダ(633)は、参照ピクチャ上でビデオデコーダによって実行されうるデコードプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させうる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される(伝送エラーがない)再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに格納することができる。
【0070】
予測器(635)は、コーディングエンジン(632)の予測探索を実行することができる。すなわち、コーディングされる新しいピクチャについて、予測器(635)は、参照ピクチャメモリ(634)を探索して、サンプルデータ(候補参照ピクセルブロックとして)または参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを探すことができ、それは新しいピクチャの適切な予測参照として機能しうる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロック上で動作することができる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有することができる。
【0071】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0072】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングを受けさせうる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどのテクノロジによりシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0073】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用されうるコーディング技術に影響を及ぼしうる。例えば、ピクチャは多くの場合、次のピクチャタイプのいずれかとして割り当てられうる。
【0074】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンスの他のピクチャを使用せずにコーディングおよびデコードされうるものでありうる。いくつかのビデオコーデックでは、例えば独立デコーダリフレッシュ(IDR)ピクチャなど、様々なタイプのイントラピクチャを使用できる。当業者は、Iピクチャのそれらの変形およびそれらのそれぞれの用途および特徴に気付いている。
【0075】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされうるものでありうる。
【0076】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされうるものでありうる。同様に、複数の予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連するメタデータを使用できる。
【0077】
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば、それぞれ4x4、8x8、4x8、または16x16サンプルのブロック)に細分され、ブロックごとにコーディングされうる。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされうる。例えば、Iピクチャのブロックは、非予測的にコーディングされうるか、またはそれらは、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされうる(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、空間予測を介して、または以前にコーディングされた1つの参照ピクチャを参照する時間予測を介して、予測的にコーディングされうる。Bピクチャのピクセルブロックは、空間予測を介して、または以前にコーディングされた1つまたは2つの参照ピクチャを参照する時間予測を介して、予測的にコーディングされうる。
【0078】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格によりコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスでの時間的および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠しうる。
【0079】
ビデオは、時間的シーケンスにおける複数のソースピクチャ(画像)の形態であってもよい。ピクチャ内予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、ピクチャ間予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、エンコード/デコード化中の特定のピクチャがブロックに分割される。現在のピクチャのブロックがビデオの以前にコーディングされてまだバッファされている参照ピクチャの参照ブロックに類似しているとき、現在のピクチャのブロックは、動きベクトルと呼ばれるベクトルによってコーディングされうる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0080】
いくつかの実施形態では、ピクチャ間予測に双予測技術が使用されうる。双予測技術によれば、両方ともビデオの現在のピクチャの復号順より前にある(しかし、表示順序では、それぞれ、過去および将来のものであってもよい)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャのブロックは、第1の参照ピクチャの第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャの第2の参照ブロックを指す第2の動きベクトルによってコーディングされうる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されうる。
【0081】
さらに、コーディング効率を改善するために、ピクチャ間予測にマージモード技術が使用されうる。
【0082】
本開示のいくつかの実施形態によれば、ピクチャ間予測およびピクチャ内予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンスのピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャのCTUは、64x64ピクセル、32x32ピクセル、または16x16ピクセルなどの同じサイズを有する。一般に、CTUは、1つのルマCTBおよび2つのクロマCTBである、3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に4分木分割されうる。例えば、64x64ピクセルのCTUは、64x64ピクセルの1つのCU、または32x32ピクセルの4つのCU、または16x16ピクセルの16個のCUに分割されうる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために分析される。CUは、時間的および/または空間的な予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、ルマ予測ブロック(PB)と、2つのクロマPBとを含む。一実施形態では、コーディング(エンコード/デコード化)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルの値の行列(例えば、輝度値)を含む。
【0083】
図7は、一実施形態によるG-PPCエンコーダ(700)のブロック図を示している。エンコーダ(700)は、点群データを受信し、点群データを圧縮して、圧縮された点群データを搬送するビットストリームを生成するように構成されうる。一実施形態では、エンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、8分木エンコーディングモジュール(730)、属性転送モジュール(720)、詳細レベル(LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、および再構成された属性値を格納するためのメモリ(790)を含むことができる。
【0084】
示されるように、入力点群(701)はエンコーダ(700)で受信されうる。点群(701)の位置(例えば、3D座標)が量子化モジュール(710)に提供される。量子化モジュール(710)は、座標を量子化して量子化された位置を生成するように構成される。重複点除去モジュール(712)は、量子化された位置を受信し、フィルタ処理を実行して重複点を識別および除去するように構成される。8分木エンコーディングモジュール(730)は、重複点除去モジュール(712)からフィルタリングされた位置を受信し、8分木ベースのエンコーディングプロセスを実行して、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは算術コーディングモジュール(770)に提供される。
【0085】
属性転送モジュール(720)は、入力点群の属性を受信し、複数の属性値がそれぞれのボクセルに関連付けられているときに、各ボクセルの属性値を決定するための属性転送プロセスを実行するように構成される。属性転送プロセスは、8分木エンコーディングモジュール(730)から出力された並べ替えられた点に対して実行されうる。転送動作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、8分木エンコーディングモジュール(730)から出力された並べ替えられた点に対して動作し、点を異なるLODに再編成するように構成される。LOD情報は属性予測モジュール(750)に供給される。
【0086】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序により点を処理する。属性予測モジュール(750)は、メモリ(790)に格納された現在点の隣接点の集合の再構成された属性に基づいて、現在点の属性予測を生成する。続いて、属性転送モジュール(720)から受信した元の属性値およびローカルに生成された属性予測に基づいて予測残差が取得されうる。候補インデックスがそれぞれの属性予測プロセスで使用されるとき、選択された予測候補に対応するインデックスが算術コーディングモジュール(770)に提供されうる。
【0087】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受信し、量子化を実行して量子化された残差を生成するように構成される。量子化された残差は算術コーディングモジュール(770)に提供される。
【0088】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化された残差を受信し、残差量子化モジュール(760)で実行された量子化演算の逆を実行することによって再構成された予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)からの再構成された予測残差、および属性予測モジュール(750)からのそれぞれの属性予測を受信するように構成される。再構成された予測残差と属性予測とを組み合わせることによって、再構成された属性値が生成され、メモリ(790)に格納される。
【0089】
算術コーディングモジュール(770)は、占有コード、候補インデックス(もし使用されるならば)、量子化された残差(もし生成されるならば)、および他の情報を受信し、受信した値または情報をさらに圧縮するためにエントロピー符号化を実行するように構成される。これにより、圧縮された情報を搬送する圧縮されたビットストリーム(702)が生成されうる。ビットストリーム(702)は、圧縮されたビットストリームをデコードするデコーダに送信されるか、あるいは提供されてもよく、またはストレージデバイスに格納されてもよい。
【0090】
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示している。デコーダ(800)は、圧縮されたビットストリームを受信し、点群データ解凍を実行してビットストリームを解凍し、デコードされた点群データを生成するように構成されうる。一実施形態では、デコーダ(800)は、算術復号モジュール(810)、逆残差量子化モジュール(820)、8分木復号モジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、および再構成された属性値を格納するためのメモリ(860)を含むことができる。
【0091】
示されるように、圧縮されたビットストリーム(801)は、算術復号モジュール(810)で受信されうる。算術復号モジュール(810)は、圧縮されたビットストリーム(801)をデコードして、量子化された残差(生成された場合)および点群の占有コードを取得するように構成される。8分木復号モジュール(830)は、占有コードにより点群の点の再構成された位置を決定するように構成される。LOD生成モジュール(840)は、再構成された位置に基づいて点を異なるLODに再編成し、LODベースの順序を決定するように構成される。逆残差量子化モジュール(820)は、算術復号モジュール(810)から受信した量子化された残差に基づいて再構成された残差を生成するように構成される。
【0092】
属性予測モジュール(850)は、LODベースの順序により点の属性予測を決定するための属性予測プロセスを実行するように構成される。例えば、現在点の属性予測は、メモリ(860)に格納された現在点の隣接点の再構成された属性値に基づいて決定されうる。属性予測モジュール(850)は、属性予測をそれぞれの再構成された残差と組み合わせて、現在点の再構成された属性を生成することができる。
【0093】
属性予測モジュール(850)から生成された再構成された属性のシーケンスは、8分木復号モジュール(830)から生成された再構成された位置と共に、一例では、デコーダ(800)から出力されるデコードされた点群(802)に対応する。加えて、再構成された属性もメモリ(860)に格納され、その後の点の属性予測を導出するためにその後使用されうる。
【0094】
様々な実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されうる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などのソフトウェアを用いても、用いなくても動作する1つまたは複数の集積回路(IC)などの処理回路を用いて実装されうる。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、不揮発性(または非一時的)コンピュータ可読ストレージ媒体に格納された命令を含むソフトウェアまたはファームウェアとして実装されうる。命令は、1つまたは複数のプロセッサなどの処理回路によって実行されると、処理回路に、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)の機能を実行させる。
【0095】
本明細書で開示された属性予測技術を実装するよう構成された属性予測モジュール(750)および(850)は、
図7および
図8に示されたものと同様または異なる構造を有しうる他のデコーダまたはエンコーダに含まれうることに留意されたい。加えて、エンコーダ(700)およびデコーダ(800)は、同じデバイス、または様々な例では別個のデバイスに含まれうる。
【0096】
本開示のいくつかの態様によれば、いくつかの関連する例(例えば、TMC13モデルの現在のバージョン)では、ジオメトリが量子化され、複製された位置がマージされるときに、エンコーダ側で再着色プロセスが適用される。再着色プロセスは比較的複雑である。例えば、再着色プロセスは、最近傍を探索するためにk-dツリー(例えば、3次元ツリー)データ構造に依存する。k-dツリーに基づく探索は複雑で時間がかかる場合がある。
【0097】
関連する例(例えば、TMC13モデルのバージョン)では、再着色アルゴリズムへの入力は、点群の元の点の元の位置、元の位置に関連付けられた属性、および再構成された位置(例えば、ジオメトリ量子化および重複位置のマージの結果)を含むことができる。再着色アルゴリズムは、元の位置に関連付けられた属性を、再構成された位置に関連付けられた属性、例えば最小化された属性の歪みに転送することができる。再構成された位置に関連付けられた属性は、再構成された点群の再構成された点を形成することができる。再着色アルゴリズムは、色、材料特性、テクスチャ情報、強度属性、反射率属性、動き関連属性、モダリティ属性、および様々な他の属性などの任意の適切な属性を転送することができることに留意されたい。一例では、再着色アルゴリズムは、以下の説明で詳細に説明される5つのステップを含む。
【0098】
第1のステップでは、点群の点の元の位置、元の位置に関連付けられる属性、および再構成された位置が受信される。一例では、(X
i)
i=0...N-1は、元の点群における元の点の元の位置を示し、Nは、元の点群における点の数を示し、
【数1】
は、再構成された位置を示し、N
recは、再構成された位置の数を示す。重複点が存在し、マージされる場合には、N
rec<Nであり、そうでない場合、N
rec=Nである。
【0099】
第2のステップでは、再構成された点群の各位置
【数2】
について、元の点群の最近傍である
【数3】
を決定するために、例えばk-dツリー探索に基づいて、探索プロセスが実行され、
【数4】
は元の点群の最近傍に関連付けられた属性値を示す。
【0100】
第3のステップでは、再構成された点群の各位置
【数5】
について、探索プロセスが、例えばk-dツリー探索に基づいて実行されて、
【数6】
で示される元の点群の元の位置の集合を決定し、元の位置の集合は、再構成された点群のそれらの最近傍として
【数7】
を共有する。H(i)は
【数8】
の要素の数を表し、
【数9】
は
【数10】
の要素のうちの1つを表す。
【数11】
は空であってもよく、または1つもしくは複数の要素を有してもよいことに留意されたい。
【0101】
第4のステップでは、
【数12】
がチェックされる。
【数13】
が空である場合、位置
【数14】
に関連付けられた属性値
【数15】
は
【数16】
に設定される。
【0102】
第5のステップでは、
【数17】
が空でない場合、位置
【数18】
に関連付けられた属性値
【数19】
は、例えば、以下の(式1)に基づいて計算されうる。
【数20】
【0103】
関連する例において、k-dツリー(例えば、3次元ツリー)探索などの探索は、最近傍を探索するために使用される。k-dツリーに基づく探索は複雑で時間がかかる場合がある。本開示は、複雑さを低減し、処理速度を改善するための再着色技術を提供する。例えば、最近傍の探索は、ジオメトリ量子化および重複点のマージ中に格納された情報に基づいて決定されうる。
【0104】
提案された方法は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つまたは複数のプロセッサあるいは1つまたは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0105】
本開示のいくつかの態様によれば、ジオメトリ情報と、色、反射率などの点群の関連する属性とは別々に圧縮されうる(例えば、テストモデル13(TMC13)モデル)。いくつかの実施形態では、点群の点の3D座標を含む点群のジオメトリ情報は、重複プロセスの量子化およびマージにより処理されうる。いくつかの例では、重複プロセスの量子化およびマージは、8分木パーティションに基づくことができ、ジオメトリ情報は、パーティションの占有情報を伴う8分木パーティションによってコーディングされうる。属性は、例えば、予測、リフティングおよび領域適応型階層変換技術を使用して、再構成されたジオメトリに基づいて圧縮されうる。例えば、コーディングされたジオメトリ情報は逆量子化され、再構成された位置などの点群のジオメトリ情報を再構成することができる。元の点の属性は、再構成された位置に転送され、次いでエンコードされる。
【0106】
本開示のいくつかの態様によれば、3次元空間は、8分木パーティションを使用して分割されうる。8分木は、2次元空間における4分木の3次元類似体である。8分木パーティション技術とは、3次元空間を8つの8分円に再帰的に細分化する分割技術を指し、8分木構造とは、パーティションを表すツリー構造を指す。一例では、8分木構造の各ノードは3次元空間に対応し、ノードは、エンドノード(パーティションなし、いくつかの例ではリーフノードとも呼ばれる)またはさらなるパーティションをもつノードとすることができる。ノードでのパーティションは、ノードによって表される3次元空間を8つの8分円に分割することができる。いくつかの例では、特定のノードのパーティションに対応するノードは、特定のノードの子ノードと呼ばれうる。
【0107】
図9は、本開示のいくつかの実施形態による、8分木パーティション技術に基づく3Dキューブ(900)のパーティション(ノードに対応する)を描写する図を示している。パーティションは、
図9に示されるように、3Dキューブ(900)を8つのより小さい等しいサイズのキューブ0~7に分割することができる。
【0108】
8分木パーティション技術(例えば、TMC13では)は、元の3D空間をより小さい単位に再帰的に分割することができ、すべてのサブ空間の占有情報はエンコードされジオメトリ位置を表すことができる。
【0109】
いくつかの実施形態(例えば、TMC13)では、8分木ジオメトリコーデックが使用される。8分木ジオメトリコーデックは、ジオメトリエンコードを実行することができる。いくつかの例では、ジオメトリエンコードは立方体ボックス上で実行される。例えば、立方体ボックスは、2つの点(0、0、0)および(2M-1、2M-1、2M-1)によって定義される軸に整列した境界ボックスBとすることができ、2M-1は境界ボックスBのサイズを定義し、Mはビットストリームで指定されうる。
【0110】
次いで、立方体ボックスを再帰的に細分化して8分木構造が構築される。例えば、2点(0、0、0)および(2M-1、2M-1、2M-1)によって定義される立方体ボックスは、8個のサブ立方体ボックスに分割され、次いで占有コードと呼ばれる8ビットコードが生成される。占有コードの各ビットは、サブ立方体ボックスに関連付けられ、ビットの値は、関連するサブ立方体ボックスが点群の任意の点を含むかどうかを示すために使用される。例えば、ビットの値1は、ビットに関連付けられたサブ立方体ボックスが点群の1つまたは複数の点を含むことを示し、ビットの値0は、ビットに関連付けられたサブ立方体ボックスが点群の点を含まないことを示す。
【0111】
さらに、空のサブ立方体ボックス(例えば、サブ立方体ボックスに関連付けられたビットの値は0である)の場合、それ以上の分割はサブ立方体ボックスに適用されない。サブ立方体ボックスが点群の1つまたは複数の点を有する場合(例えば、サブ立方体ボックスに関連付けられたビットの値は1である)、サブ立方体ボックスは8つのより小さいサブ立方体ボックスにさらに分割され、サブ立方体ボックスについて占有コードが生成され、より小さいサブ立方体ボックスの占有を示すことができる。いくつかの例では、サブ立方体ボックスのサイズが1であるなどの所定の閾値に等しくなるまで、空でないサブ立方体ボックスに対して再分割演算が繰り返し実行されうる。いくつかの例では、サイズが1(単位サイズ)のサブ立方体ボックスはボクセルと呼ばれ、ボクセルよりも大きいサイズを有するサブ立方体ボックスは非ボクセルと呼ばれることがある。
【0112】
図10は、本開示のいくつかの実施形態による、8分木パーティション(1010)および8分木パーティション(1010)に対応する8分木構造(1020)の一例を示している。
図10は、8分木パーティション(1010)における2つのレベルのパーティションを示す。8分木構造(1020)は、8分木パーティション(1010)のための立方体ボックスに対応するノード(N0)を含む。第1のレベルでは、立方体ボックスは、
図9に示される番号付け技術により0~7の番号が付けられた8つのサブ立方体ボックスに分割される。ノードN0のパーティションの占有コードはバイナリで「10000001」であり、これは、ノードN0-0によって表される第1のサブ立方体ボックスおよびノードN0-7によって表される第8のサブ立方体ボックスが点群の点を含み、他のサブ立方体ボックスが空であることを示す。
【0113】
次に、第2のレベルのパーティションでは、第1のサブ立方体ボックス(ノードN0-0によって表される)および第8のサブ立方体ボックス(ノードN0-7によって表される)は、それぞれ8つの8分円にさらに細分される。例えば、第1のサブ立方体ボックス(ノードN0-0によって表される)は、
図9に示される番号付け技術により0~7の番号が付けられた8つのより小さいサブ立方体ボックスに分割される。ノードN0-0のパーティションの占有コードはバイナリで「00011000」であり、これは第4のより小さいサブ立方体ボックス(ノードN0-0-3によって表される)および第5のより小さいサブ立方体ボックス(ノードN0-0-4によって表される)が点群の点を含み、他のより小さいサブ立方体ボックスが空であることを示す。第2のレベルでは、第7のサブ立方体ボックス(ノードN0-7によって表される)は、
図10に示されるように、8つのより小さいサブ立方体ボックスに同様に分割される。
【0114】
図10の例では、空でない立方体空間(例えば、立方体ボックス、サブ立方体ボックス、より小さいサブ立方体ボックスなど)に対応するノードは灰色に着色され、陰影付きノードと呼ばれる。
【0115】
いくつかの実施形態では、単位サイズの立方体ボックスのボクセルについて、単位サイズの立方体ボックスの点は、例えば、単位サイズの立方体ボックスの中心位置に量子化されうる。単位サイズの立方体ボックスに複数の点が存在する場合、それらの点は単位サイズの立方体ボックスの中心位置にマージされる。ボクセルの中心位置は、再構成された点群の中の再構成された点についての再構成された位置を形成しうる。
【0116】
本開示のいくつかの態様によれば、適切なデータ構造(ルックアップテーブル、リストなど)が使用され、ボクセルの元の点をボクセルの再構成された位置(例えば、中心位置)に関連付けることができる。例えば、ルックアップテーブルのエントリは、ボクセルのインデックスをボクセルの元の点のインデックスと関連付けることができる。データ構造は格納されうる。したがって、ボクセルの中心点である再構成された点群の各位置について、中心位置にマージされたボクセルの元の点は、データ構造に基づいて決定されうる。
【0117】
本開示の一態様によれば、点群のジオメトリはスカラ量子化によって量子化され、いくつかの例ではスカラ量子化がジオメトリ的歪みの唯一のソースである。いくつかの実施形態では、8分木パーティションがジオメトリ量子化に使用される場合、ボクセルは、各々が点群の1つまたは複数の元の点を含む単位サイズの立方体ボックスであり、1つまたは複数の元の点はボクセルの中心点に量子化される。したがって、ボクセルの1つまたは複数の元の点は、ボクセルの(再構成された点群の)同じ中心点を最近傍として共有し、再構成された点群の各位置の集合
【数21】
は空ではない。したがって、再着色アルゴリズムの第4のステップは必要とされない。
【0118】
図11は、ジオメトリ量子化中に再構成された位置
【数22】
を共有する点の集合を決定するために3次元(3D)で使用されうる導出技法を示すための1次元(1D)の図を示している。ひし形の点1~8は元の点であり、丸い黒い点R1~R3は再構成された点(いくつかの例では量子化された点とも呼ばれる)の再構成された位置である。
【0119】
一例では、量子化ステップはqであるため、範囲
【数23】
のすべての点は、n=0、±1、±2、....に対して位置nqに量子化されうる。例えば、元の点1~3は、[-3q/2、-q/2)の範囲内にあり、再構成された位置R1に量子化され、元の点4~5は、[-q/2、q/2)の範囲にあり、再構成された位置R2に量子化され、元の点6~8は、[q/2、3q/2)の範囲にあり、再構成された位置R3に量子化される。したがって、再構成された点群における元の点の最近傍は再構成された位置である。言い換えれば、各再構成された位置の集合
【数24】
は、再構成された位置に量子化された元の点である。したがって、いくつかの実施形態では、再構成された位置に関連付けられた集合
【数25】
を格納するために、適切なデータ構造が使用される。次いで、データ構造に基づいて、再構成された位置について、追加のk-dツリー探索なしで集合
【数26】
が迅速に決定されうる。
【0120】
適切なデータ構造に格納された量子化結果に基づいて、再着色アルゴリズムが単純化されうる。例えば、各量子化された位置の属性値は、その量子化された位置に量子化された元の位置での属性値に基づいて割り当てられる。具体的には、いくつかの例では、再着色アルゴリズムは、以下の説明で詳細に説明される3つのステップを含むことができる。
【0121】
第1のステップでは、点群の点の元の位置、元の位置に関連付けられる属性、および再構成された位置が受信される。一例では、(X
i)
i=0...N-1は、元の点群における点の元の位置を示し、Nは、元の点群における点の数を示し、
【数27】
は、再構成された点群の再構成された位置を示し、N
recは、再構成された点群における再構成された位置の数を示す。重複点が存在し、マージされる場合には、N
rec<Nであり、そうでない場合、N
rec=Nである。
【0122】
第2のステップでは、再構成された点群内の各再構成された位置
【数28】
について、各再構成された位置に関連する元の位置の集合を格納するデータ構造は、再構成された位置に基づいてアクセスされ、元の位置の集合
【数29】
を決定することができ、集合の元の位置は量子化され、
【数30】
に逆量子化される。H(i)は
【数31】
の要素の数を表し、(X
i(h)は、
【数32】
の要素のうちの1つを表す。
【数33】
はジオメトリ量子化プロセス中に取得されうる。
【0123】
第3のステップでは、再構成された位置
【数34】
に関連付けられた属性値
【数35】
は、集合
【数36】
における元の位置に関連付けられた属性値から取得されうる。
【0124】
属性値
【数37】
を計算するために様々な技法が使用されうる。
【0125】
一実施形態では、属性値の平均は、再構成された位置の属性値
【数38】
として計算される。一例では、a
i(h)は、X
i(h)に関連付けられた属性値を表し、再構成された点
【数39】
に関連付けられた属性値
【数40】
は、以下の(式2)を使用して計算されうる。
【数41】
【0126】
別の実施形態では、
【数42】
は、以下の(式3)などを使用して、属性の加重平均によって計算される。
【数43】
【数44】
で、w
i(h)≧0であり、元の位置X
i(h)と再構成された位置
【数45】
との距離に反比例しうる、対応する位置での属性の重みを示す。元の位置X
i(h)と再構成された位置
【数46】
との距離は、任意の適切な距離尺度によって評価されうる。一例では、距離は、ユークリッド距離などの空間距離である。
【0127】
別の実施形態では、
【数47】
は、
【数48】
における最も近い元の位置の属性値によって再構成された位置
【数49】
に割り当てられる。複数の元の位置が再構成された位置
【数50】
からの同じ最も近い距離を有するとき、複数の元の位置の中央属性値または平均属性値が
【数51】
に割り当てられうる。元の位置X
i(h)と再構成された位置
【数52】
との距離は、任意の他の距離尺度によって評価されうる。一例では、距離は、ユークリッド距離などの空間距離である。
【0128】
図12は、本開示の一実施形態によるプロセス(1200)の概要を示すフローチャートを示している。プロセス(1200)は、点群のコーディングプロセス中に使用されうる。様々な実施形態では、プロセス(1200)は、端末デバイス(110)の処理回路、エンコーダ(203)および/またはデコーダ(201)の機能を実行する処理回路、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1200)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1200)を実行する。(S1201)から処理が開始され、(S1210)に進む。
【0129】
(S1210)では、再構成された位置に関連付けられた点群の1つまたは複数の元の点が決定される。1つまたは複数の元の点の位置は、ジオメトリ量子化により、再構成された位置へ再構成される。
【0130】
いくつかの例では、ジオメトリ情報をコーディングするために8分木パーティションが実行されうる。8分木パーティションは、点群の空間をボクセルに分割することができる。1つまたは複数の元の点は、ボクセルにあり、ボクセルを表すために再構成された位置に関連付けられる。1つまたは複数の元の点のジオメトリ情報は、再構成された位置へ再構成(例えば、量子化および逆量子化)されうる。一実施形態では、1つまたは複数の元の点を再構成された位置に関連付けるデータ構造が格納される。再構成された位置に基づいてデータ構造にアクセスされ、再構成された位置に関連付けられた1つまたは複数の元の点を取り出すことができる。
【0131】
(S1220)では、1つまたは複数の元の点の属性情報に基づいて、再構成された位置の属性値が決定される。
【0132】
一実施形態では、複数の元の点が再構成された位置に関連付けられている場合、複数の元の点の属性値の平均が再構成された位置の決定された属性値として計算される。
【0133】
いくつかの例では、複数の元の点のうちの元の点の属性値は、元の点と再構成された位置との距離の逆数に基づいて重み付けされうる。
【0134】
別の実施形態では、複数の元の点の属性値の加重平均が、再構成された位置の決定された属性値として計算される。一例では、複数の元の点のうちの元の点の属性値は、元の点と再構成された位置との距離の逆数に基づいて重み付けされる。
【0135】
別の実施形態では、複数の元の点が再構成された位置に関連付けられていることに応じて、複数の元の点の最も近い点の特定の属性値が、再構成された位置について決定された属性値に割り当てられる。一例では、再構成された位置まで同じ最短距離を有する複数の最も近い点の存在に応じて、最も近い点の属性値の中の中央属性値が選択される。別の例では、再構成された位置まで同じ最短距離を有する複数の最も近い点の存在に応じて、最も近い点の属性値の平均属性値が計算される。
【0136】
(S1230)では、点群のテクスチャは、決定された属性値を有する再構成された位置を用いてエンコードされる。一例では、再構成された位置の属性値は圧縮され、点群のテクスチャ情報として点群のコーディングされたビットストリームに含まれる。次いで、処理は(S1299)に進み、終了する。
【0137】
上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして実装されうる。例えば、
図13は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1300)を示している。
【0138】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、または同様のメカニズムに依存しうる任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングされ、1つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接、または解釈、マイクロコード実行などを通して実行されうる命令を含むコードを作成することができる。
【0139】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されうる。
【0140】
コンピュータシステム(1300)について
図13に示されるコンポーネントは、事実上例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能に関する制限を示唆することを意図するものではない。コンポーネントの構成も、コンピュータシステム(1300)の例示的な実施形態に示されるコンポーネントのいずれか1つまたは組み合わせに関連する依存関係または要件を有すると解釈されるべきではない。
【0141】
コンピュータシステム(1300)は、特定のヒューマンインターフェース入力デバイスを含みうる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を介して、1人または複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、周囲の音など)、画像(スキャン画像、静止画カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関連しない特定の媒体をキャプチャするためにも使用されうる。
【0142】
入力ヒューマンインターフェースデバイスは、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグローブ(図示せず)、ジョイスティック(1305)、マイク(1306)、スキャナ(1307)、カメラ(1308)の1つまたは複数(それぞれの1つのみを図示)を含みうる。
【0143】
コンピュータシステム(1300)は、特定のヒューマンインターフェース出力デバイスも含みうる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通して、1人または複数の人間のユーザの感覚を刺激しうる。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1310)、データグローブ(図示せず)、またはジョイスティック(1305)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもありうる)、音声出力デバイス(スピーカ(1309)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1310)など、それぞれタッチスクリーン入力機能の有無にかかわらず、それぞれ触覚フィードバック機能の有無にかかわらず、そのいくつかはステレオグラフィック出力などの手段を通して、2次元視覚出力または3次元を超える出力を出力できるものもある、仮想現実グラス(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず))、およびプリンタ(図示せず)を含みうる。
【0144】
コンピュータシステム(1300)は、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体、例えば、CD/DVDなどの媒体(1321)を伴うCD/DVD ROM/RWを含む光学媒体(1320)、サムドライブ(1322)、リムーバブルハードドライブまたはソリッドステートドライブ(1323)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどを含みうる。
【0145】
当業者は、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を含まないことも理解されたい。
【0146】
コンピュータシステム(1300)は、1つまたは複数の通信ネットワークへのインターフェースを含むこともできる。ネットワークは、例えば、無線、有線、光でありうる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業、リアルタイム、遅延耐性などにしうる。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、およびCANBusを含む車両および産業用などを含む。特定のネットワークは一般に、特定の汎用データポートまたは周辺バス(1349)に接続された外部ネットワークインターフェースアダプタを必要とする(例えば、コンピュータシステム(1300)のUSBポートなど、他のものは一般に、以下に説明するようにシステムバスへの接続によってコンピュータシステム(1300)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、TVの放送)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステム向けでありうる。上述のように、特定のプロトコルとプロトコルスタックはそれらのネットワークとネットワークインターフェースのそれぞれで使用されうる。
【0147】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1300)のコア(1340)に接続されうる。
【0148】
コア(1340)は、1つまたは複数の中央処理ユニット(CPU)(1341)、グラフィックス処理ユニット(GPU)(1342)、フィールドプログラマブルゲートエリア(FPGA)(1343)の形式の特殊なプログラム可能な処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1344)などを含みうる。これらのデバイスは、読み取り専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1347)と共に、システムバス(1348)を通して接続されうる。いくつかのコンピュータシステムでは、システムバス(1348)は、1つまたは複数の物理プラグの形でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(1348)に直接接続されることも、周辺バス(1349)を介して接続されることもできる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0149】
CPU(1341)、GPU(1342)、FPGA(1343)、およびアクセラレータ(1344)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1345)またはRAM(1346)に格納されうる。移行データはまた、RAM(1346)に格納されうるが、永久データは、例えば、内部大容量ストレージ(1347)に格納されうる。1つまたは複数のCPU(1341)、GPU(1342)、大容量ストレージ(1347)、ROM(1345)、RAM(1346)などと密接に関連付けられうるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速ストレージおよび取り出しが有効にされうる。
【0150】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをその上に有しうる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものでありうるか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に良く知られ、利用可能な種類のものでありうる。
【0151】
一例として、限定としてではなく、アーキテクチャ(1300)、具体的にはコア(1340)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体で具体化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述したようにユーザがアクセス可能な大容量ストレージのほか、コア内部大容量ストレージ(1347)またはROM(1345)などの非一時的性質のコア(1340)の特定のストレージにも関連する媒体でありうる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(1340)によって実行されうる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含みうる。ソフトウェアは、コア(1340)、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1346)に格納されたデータ構造の定義およびソフトウェアによって定義されたプロセスによる、そのようなデータ構造の変更を含む、本明細書に記載の特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載の特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(1344))に配線されたまたはそうでなければ具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの参照にはロジックを含めることができ、必要に応じてその逆も可能である。コンピュータ可読媒体への参照は、必要に応じて、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0152】
本開示は、いくつかの例示的な実施形態を説明しているが、本開示の範囲内にある変更、順列、および様々な代替の同等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0153】
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 ビデオ圧縮モジュール
332 ビデオ圧縮モジュール
324 マルチプレクサ
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 エンコーダ
701 入力点群
702 圧縮されたビットストリーム
710 位置量子化モジュール
712 重複点除去モジュール
720 属性転送モジュール
730 8分木コーディングモジュール
740 詳細レベル生成モジュール
750 属性予測モジュール
760 残差量子化モジュール
770 算術コーディングモジュール
780 逆残差量子化モジュール
781 加算モジュール
790 メモリ
800 G-PCCデコーダ
801 圧縮されたビットストリーム
802 デコードされた点群
810 算術復号モジュール
820 逆残差量子化モジュール
830 8分木復号モジュール
840 詳細レベル生成モジュール
850 属性予測モジュール
860 メモリ
900 3Dキューブ
1010 8分木パーティション
1020 8分木構造
1300 コンピュータシステム
1301 キーボード
1302 マウス
1303 トラックパッド
1305 ジョイスティック
1306 マイク
1307 スキャナ
1308 カメラ
1309 スピーカ
1310 タッチスクリーン
1320 CD/DVD ROM/RWを含む光学媒体
1321 CD/DVDなどの媒体
1322 サムドライブ
1323 リムーバブルハードドライブまたはソリッドステートドライブ
1340 コア
1341 中央処理ユニット(CPU)
1342 グラフィックス処理ユニット(GPU)
1343 フィールドプログラマブルゲートエリア(FPGA)
1344 ハードウェアアクセラレータ
1345 読み取り専用メモリ(ROM)
1346 ランダムアクセスメモリ
1347 内部大容量ストレージ
1348 システムバス
1349 周辺バス