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

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

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

特許75535923Dジオメトリを構築するための方法、装置およびプログラム
<>
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図1
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図2
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図3A
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図3B
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図4
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図5
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図6
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図7
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図8
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図9
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図10
  • 特許-3Dジオメトリを構築するための方法、装置およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】3Dジオメトリを構築するための方法、装置およびプログラム
(51)【国際特許分類】
   G06T 9/00 20060101AFI20240910BHJP
【FI】
G06T9/00
【請求項の数】 10
(21)【出願番号】P 2022560507
(86)(22)【出願日】2021-10-18
(65)【公表番号】
(43)【公表日】2023-05-17
(86)【国際出願番号】 US2021055406
(87)【国際公開番号】W WO2022186861
(87)【国際公開日】2022-09-09
【審査請求日】2022-10-04
(31)【優先権主張番号】63/157,519
(32)【優先日】2021-03-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/501,779
(32)【優先日】2021-10-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】ウェン・ガオ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2020/0413096(US,A1)
【文献】米国特許出願公開第2019/0385355(US,A1)
【文献】米国特許出願公開第2019/0197739(US,A1)
【文献】Yi Xu, Yuzhang Wu, and Hui Zhou,Multi-scale Voxel Hashing and Efficient 3D Representation for Mobile Augmented Reality,2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops,IEEE,2018年,pp.1586 - 1593
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00 - 9/40
(57)【特許請求の範囲】
【請求項1】
点群の複数の点のうちの現在点に関連する情報を符号化するステップであって、前記複数の点が複数のバウンディングボックスに分割される、ステップと、
前記複数のバウンディングボックスのうち1つのバウンディングボックスに対応する第1のハッシュテーブルのサイズが所定の最大ハッシュテーブルサイズ以上であるかを判定するステップと、
前記第1のハッシュテーブルのサイズが前記所定の最大ハッシュテーブルサイズ以上であることに基づいて、前記第1のハッシュテーブルから、前記複数の点のうち前記1つのバウンディングボックス内の非境界点に関連する情報を除去するステップと、
前記現在点に関連する前記符号化された情報を前記第1のハッシュテーブルに記憶するステップと
を含む、点群圧縮のための方法。
【請求項2】
除去する前記ステップが、
前記現在点のチェックポイントが保存されたチェックポイントと等しいかどうかを判定するステップであって、前記現在点の前記チェックポイントが、前記複数のバウンディングボックスの各々の境界サイズおよび前記現在点の位置に基づいて生成される、ステップであって、前記境界サイズが前記バウンディングボックスの1つの次元のサイズを表す、ステップと、
前記保存されたチェックポイントとは異なる前記現在点の前記チェックポイントに基づいて、前記第1のハッシュテーブルから前記複数のバウンディングボックス内の前記非境界点に関連する前記情報を除去するステップと、
前記現在点の前記チェックポイントに基づいて、前記保存されたチェックポイントを修正するステップと、
を含む、請求項1に記載の方法。
【請求項3】
前記第1のハッシュテーブルから前記複数のバウンディングボックス内の前記非境界点に関連する前記情報を除去するステップ後の前記第1のハッシュテーブルのサイズが前記第1のハッシュテーブルの前記所定の最大ハッシュテーブルサイズ以上であるかを判定するステップと、
前記第1のハッシュテーブルから前記複数のバウンディングボックス内の前記非境界点に関連する前記情報を除去するステップ後の第2のハッシュテーブルのサイズが前記第2のハッシュテーブルの所定の最大ハッシュテーブルサイズ以上であることに基づいて、前記複数のバウンディングボックス内の残りのすべての点に関連する情報を前記第2のハッシュテーブルから除去するステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記第1のハッシュテーブルから前記複数のバウンディングボックス内の残りのすべての点と関連する情報を除去するステップをさらに含む、
請求項1に記載の方法。
【請求項5】
前記所定の最大ハッシュテーブルサイズ、または前記複数のバウンディングボックスの各々の境界サイズのうちの少なくとも1つをビットストリームに符号化するステップであって、前記境界サイズが前記バウンディングボックスの1つの次元のサイズを表す、ステップをさらに含む、
請求項1に記載の方法。
【請求項6】
モードインデックスをビットストリームに符号化するステップであって、前記モードインデックスは、複数のハッシュテーブル縮小モードのうちの1つを示す、ステップをさらに含む、
請求項1に記載の方法。
【請求項7】
前記モードインデックスに基づいて、前記所定の最大ハッシュテーブルサイズ、または前記複数のバウンディングボックスの各々の境界サイズのうちの少なくとも1つを符号化するステップであって、前記境界サイズが前記バウンディングボックスの1つの次元のサイズを表す、ステップをさらに含む、
請求項6に記載の方法。
【請求項8】
前記現在点に関連する前記情報は、現在のブロックに関連するジオメトリ情報または属性情報のうちの1つを含む、請求項1に記載の方法。
【請求項9】
請求項1から8のいずれか一項に記載の方法を実行するように構成された、処理回路
を備える、装置。
【請求項10】
少なくとも1つのプロセッサにより実行されるときに、前記少なくとも1つのプロセッサに、請求項1から4のいずれか一項に記載の方法を実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は、2021年3月5日に出願された米国仮出願第63/157,519号「UPDATES ON HASH SHRINKING FOR POINT CLOUD CODING」に対する優先権の利益を主張する、2021年10月14日に出願された米国特許出願公開第17/501,779号「METHOD AND APPARATUS FOR CONSTRUCTING A 3D GEOMETRY」に対する優先権の利益を主張する。先行する出願の開示が完全な状態で本出願で参照により援用される。
【0002】
本開示は、ハッシュ縮小方法を含む、点群コーディング(PCC)に概して関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、この研究がこの背景技術の項で説明されている限りにおいて、および出願時に従来技術と見なされ得ない説明の態様は、本開示に対する従来技術として明示的にも暗示的にも認められない。
【0004】
点群は、近年広く利用されている。例えば、点群は、オブジェクト検出および位置特定を行うために自動運転車両で、マッピングを行うために地理情報システム(geographic information systems:GIS)で、また文化遺産のオブジェやコレクションを視覚化したり、保管したりするために、文化遺産で、等々使用され得る。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の態様は、点群圧縮のための装置を提供する。装置は、点群の複数の点の現在点に関連する情報を符号化する処理回路を含む。複数の点は、複数のバウンディングボックスに分割される。処理回路は、第1のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であるかを判定する。処理回路は、第1のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であることに基づいて、複数のバウンディングボックス内の非境界点に関連する情報をハッシュテーブルから除去する。処理回路は、現在点に関する符号化された情報をハッシュテーブルに記憶する。
【0006】
実施形態では、処理回路は、現在点のチェックポイントが、保存されたチェックポイントと等しいかどうかを判定する。現在点のチェックポイントは、複数のバウンディングボックスのそれぞれの境界サイズと現在点の位置とに基づいて生成される。処理回路は、現在点のチェックポイントが保存されたチェックポイントと等しくないことに基づいて、ハッシュテーブルから複数のバウンディングボックス内の非境界点に関連する情報を削除する。処理回路は、現在点のチェックポイントに基づいて保存されたチェックポイントを修正する。
【0007】
実施形態では、処理回路は、第2のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であるかを判定する。処理回路は、第2のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であることに基づいて、複数のバウンディングボックス内の残りのすべての点に関連する情報をハッシュテーブルから除去する。
【0008】
実施形態では、処理回路は、ハッシュテーブルから複数のバウンディングボックス内の残りのすべての点に関連する情報を削除する。
【0009】
実施形態では、処理回路は、ハッシュテーブルの所定の最大サイズまたは複数のバウンディングボックスのそれぞれの境界サイズの少なくとも一方を、ビットストリームに符号化する。
【0010】
実施形態では、処理回路は、モードインデックスをビットストリームに符号化し、モードインデックスは、複数のハッシュテーブル縮小モードのうちの1つを示す。
【0011】
実施形態では、処理回路は、モードインデックスに基づいて、ハッシュテーブルの所定の最大サイズまたは複数のバウンディングボックスのそれぞれの境界サイズの少なくとも一方を符号化する。
【0012】
実施形態では、現在点に関連する情報は、現在のブロックに関連するジオメトリ情報または属性情報のうちの1つを含む。
【0013】
本開示の態様は、点群圧縮のための方法を提供する。方法は、点群圧縮のために装置によって実行される処理のいずれか1つまたは組み合わせを実行することができる。この方法では、点群の複数の点のうちの現在点に関する情報が符号化される。複数の点は、複数のバウンディングボックスに分割される。第1のハッシュテーブルのサイズが、ハッシュテーブルの所定の最大サイズ以上であるかが判定される。複数のバウンディングボックス内の非境界点に関連する情報は、第1のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であることに基づいて、ハッシュテーブルから除去される。現在点に関する符号化された情報は、ハッシュテーブルに記憶される。
【0014】
本開示の態様はまた、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、点群圧縮のための方法の任意の1つまたは組み合わせを実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0015】
本開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明、および添付の図面でより明らかになるであろう。
【図面の簡単な説明】
【0016】
図1】本開示の実施形態によるリフティングベースの属性コーディングにおける例示的な順変換を示す。
図2】本開示の実施形態によるリフティングベースの属性コーディングにおける例示的な逆変換を示す。
図3A】本開示の実施形態による、領域適合型階層変換ベースの属性コーディングにおける例示的な順変換を示す。
図3B】本開示の実施形態による、領域適合型階層変換ベースの属性コーディングにおける例示的な逆変換を示す。
図4】本開示の実施形態によるバウンディングボックスの例示的な二次元図を示す。
図5】本開示の実施形態による例示的なハッシュ縮小アルゴリズムを示す。
図6】本開示の実施形態による別の例示的なハッシュ縮小アルゴリズムを示す。
図7】本開示の実施形態による別の例示的なハッシュ縮小アルゴリズムを示す。
図8】本開示の実施形態による別の例示的なハッシュ縮小アルゴリズムを示す。
図9】本開示の実施形態による例示的なフローチャートを示す。
図10】本開示の実施形態による別の例示的なフローチャートを示す。
図11】本開示の実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0017】
I.点群圧縮
点群は、3次元(3D)の点などの高次元の点のセットを含むことができる。各3D点は、3D位置情報と、色、反射率などの追加の属性とを含むことができる。情報は、様々な設定で、複数のカメラおよび深度センサ、またはLidarを使用して取り込むことができ、また元の情景をリアルに表すべく数千から数十億もの点で構成することができる。
【0018】
より高速な送信、またはストレージの低減を目的として、点群を表すために要するデータ量を削減するために、圧縮技術が必要とされている。国際標準化機構/国際電気標準会議(ISO/IEC)動画専門家グループ(MPEG)は、静的または動的なクラウドのための圧縮技術を標準化するためのアドホックグループ(MPEG-PCC)を作成した。
【0019】
MPEGにおけるテストモデル13(TMC13)などのいくつかの関連する例では、ジオメトリ情報と、色または反射率情報などの関連する属性とが別々に圧縮される。点群の3D座標の値であるジオメトリ情報は、関連する占有率情報を伴ったオクツリー分割を使用することで、コード化される。次いで、属性は、予測ベースの属性コーディング技術、リフティングベースの属性コーディング技術、または領域適応型階層変換(RAHT)ベースの属性コーディング技術などの別個の属性コーディング技術を使用して、再構築されたジオメトリに基づいて圧縮される。
【0020】
以下の説明では、点群の表現の例として、1つの詳細レベル(LoD)のみが使用される。
【0021】
予測ベース属性コーディングでは、(Pi=1...Nは点群内の点と関連付けられた位置の集合であり、(Mi=1...Nは(Pi=1...Nと関連付けられたモートンコードである。まず、関連付けられたモートンコードに従って点を昇順にソートする。Iを、このプロセスに従って順序付けられた点のインデックスの配列とする。エンコーダ(またはデコーダ)は、Iによって定められた順序に従って各点を圧縮(または解凍)する。各反復iにおいて、点Pが選択される。Pからs(例えば、s=64)個の前の点までの距離が解析され、Pのk(例えば、k=3である)個の最近傍が予測に使用されるように選択される。より正確には、属性値(ai∈0...k-1は、点iの最近傍の距離に基づく線形補間プロセスを使用することによって予測される。
【数1】
を現在点iのk最近傍集合とし、
【数2】
をそれらの復号(または再構築)された属性値とし、
【数3】
を現在点までのそれらの距離とする。予測属性値
【数4】
が以下によって得られる。
【数5】
【0022】
リフティングベースの属性コーディングは、予測ベースの属性コーディングに基づく。予測ベースの属性コーディングと比較した主な違いは、リフティングベースの属性コーディングに2つの追加のステップが導入されていることである。第1のステップは更新演算子を導入することであり、第2のステップは適合する量子化戦略を使用することである。図1および図2は、本開示の実施形態によるリフティングベースの属性コーディングにおける例示的な順変換および例示的な逆変換をそれぞれ示す。
【0023】
図3Aおよび図3Bは、本開示の実施形態によるRAHTベースの属性コーディングにおける例示的な順変換および例示的な逆変換をそれぞれ示す。図3A図3B
【数6】
および
【数7】
において、wは入力係数Fl+1、2nの重みの表記であり、対してwはFl+1、2n+1の重みの表記である。
【0024】
II.点群のハッシュベースの圧縮
本開示の態様によれば、ハッシュベースの隣接情報アクセス方法は、点群圧縮におけるジオメトリコーディングおよび属性コーディングに使用することができる。
【0025】
コード化されたジオメトリ(または属性)情報は、ハッシュテーブルに保存され、後のコード化されたノードの予測子として取得され得る。ハッシュテーブルは、再構築されたジオメトリ(または属性)値を格納するために使用することができる。例えば、ハッシュテーブルHが維持され、ハッシュテーブルの鍵は、点の3D座標のMortonコード、すなわち、M=Morton(x,y,z)とすることができ、(x,y,z)は、i番目の点の3D座標である。モートンコードMをキーとして使用して、再構築されたジオメトリ(または属性)値をハッシュテーブルH内で直接アクセスすることができる。H(M)がNULLの場合、位置(x,y,z)は占有されておらず、位置(x,y,z)に関連付けられたジオメトリ(または属性)値が存在しないか、または、位置(x,y,z)に関連付けられたジオメトリ(または属性)値がまだコード化されていないことを示す。
【0026】
現在点のジオメトリ(または属性)値をコーディング(またはデコーディング)するとき、現在点に隣接している点の以前コーディングされたジオメトリ(または属性)値をハッシュテーブルHから取得し、現在点の予測子として使用することができる。現在点のジオメトリ(または属性)値をコーディング(またはデコーディング)した後、現在点の再構築されたジオメトリ(または属性)値はハッシュテーブルHに格納される。
【0027】
本開示の態様によれば、ハッシュテーブルのサイズは、ハッシュ縮小技術に基づいて低減され得る。ハッシュテーブルのサイズがハッシュテーブルの最大サイズを超える場合、ハッシュ縮小技術を使用することができる。点群の点は複数のバウンディングボックスに分割することができるため、コーディング効率を維持しながらハッシュテーブルのサイズを縮小するために、特定の点を除去することができる。1つの方法では、点群の複数のバウンディングボックスの境界にないすべての点を除去し、境界点を保持することができる。
【0028】
いくつかの実施形態では、複数の境界点が、1つ以上の条件下で最大ハッシュテーブルサイズを超えることを許容し得る。例えば、点群がジオメトリにおいて密な分布を有する(例えば、点群内の点が密集して分布している)場合、境界の点の数は最大ハッシュテーブルサイズよりも大きくなり得る。この場合、ハッシュテーブルの実際のサイズは最大ハッシュテーブルサイズを超える可能性があるため、最大ハッシュテーブルサイズは、ハード閾値ではなくソフト閾値とすることができる。
【0029】
本開示は、実際のハッシュテーブルサイズをさらに低減するためのハッシュ縮小戦略を含む。いくつかの縮小戦略は、コーディング効率の損失をもたらす可能性がある。ハッシュ縮小戦略は、PCCアプリケーションにおけるジオメトリコーディングおよび属性コーディングの一方または両方に適用できることに留意されたい。
【0030】
ハッシュ縮小戦略は、MPEGにおけるTMC13ソフトウェアまたはPCC、またはオーディオビデオコーディング規格(AVS)におけるPCCに限定されないことに留意されたい。ハッシュ縮小戦略は、PCCシステムのための一般的な解決策であり得る。
【0031】
いくつかの実施形態では、ハッシュ縮小方法に少なくとも1つのパラメータを導入することができる。第1のパラメータは最大ハッシュテーブルサイズとすることができ、第2のパラメータは点群の複数のバウンディングボックスの各々の境界サイズとすることができる。最大ハッシュテーブルサイズは、log2のスケールで定めることができる。例えば、パラメータKは、ハッシュテーブルの最大サイズを2と定める。境界サイズも、log2のスケールで定めることができる。例えば、Mは、3D空間における(2,2,2)のバウンディングボックスを定める。これらの2つのパラメータは、すべての場合に固定され得るか、または場合によって異なるように構成され、シーケンスパラメータセット、ジオメトリパラメータセット、スライスヘッダなどの高レベルのシンタックスの一部としてビットストリームで送信され得ることに留意されたい。ハッシュテーブルが最大容量に達すると、ハッシュテーブル内の一部または全部の要素を除去することによって、ハッシュテーブルを縮小することができる。どの要素が除去されるべきかに関する規則は、異なる状況において異なり得る。
【0032】
本開示の態様によれば、ハッシュテーブルが最大容量に達したときに、点群内の非境界点の情報を記憶する要素をハッシュテーブルから除去することができる。
【0033】
図4は、本開示の実施形態によるバウンディングボックス(401)~(404)の例示的な二次元の図を示し、バウンディングボックス(401)~(403)は符号化されているが、バウンディングボックス(404)はまだ符号化されていない。各バウンディングボックスにおいて、斜線の領域は境界点を表す。例えば、斜線領域(411)はバウンディングボックス(401)の境界点を表し、領域(412)はバウンディングボックス(401)の非境界点を表す。境界点は、バウンディングボックスの2次元表現の下側および/または右側に位置することに限定されないことに留意されたい。他の場合には、境界点は、バウンディングボックスの2次元表現の左側および/または上側など、サイドの1つまたは複数の他の組み合わせに配置することができる。
【0034】
図5は、本開示の実施形態によるハッシュ縮小アルゴリズムを示す。このハッシュ縮小アルゴリズムでは、バウンディングボックスの非境界点の情報を記憶するハッシュテーブル内の要素が、ハッシュテーブルから除去される。例えば、各バウンディングボックスが3D空間において(2,2,2)のサイズを有する場合、境界点の少なくとも1つの位置座標は2i*M-1(i=1,2,3,...)に等しい。本実施形態では、境界点の情報を記憶するすべてのハッシュ要素を保持し、残りの要素をハッシュテーブルから削除することができる。
【0035】
図6は、本開示の実施形態による別のハッシュ縮小アルゴリズムを示す。このハッシュ縮小アルゴリズムでは、コーディング効率損失を制限するために、現在点pが新しいバウンディングボックスに到達したときにのみ縮小動作を適用することができる。例えば、入力されている点群内の点がモートンオーダーなどの特定の順序でソートされていると仮定する。チェックポイントを使用して、現在点pが新しいバウンディングボックスに到達するかどうかを調べることができる。現在点pのチェックポイントの座標は、(p.x>>M,p.y>>M,p.z>>M)として定めることができ、ここで、2は境界サイズである。現在点pのチェックポイントが、保存されたチェックポイントと異なる場合、それは、現在点が、保存されたチェックポイントを含まない新しいバウンディングボックスに到達したということを示し、次に縮小動作を適用することができ、保存されたチェックポイントを現在点のチェックポイントとして更新することができる。例として図4を使用すると、初期チェックポイントは、バウンディングボックス(401)において(0,0,0)として設定することができ、M=4で、各バウンディングボックスの境界サイズが16になる。現在点pが(20,20,20)にある場合、現在点pのチェックポイントは(20>>4,20>>4,20>>4)=(1,1,1)であり、これは初期チェックポイント(0,0,0)とは異なる。これは、現在点pがバウンディングボックス(402)に到達することを意味し、したがって、ハッシュテーブルのサイズが最大ハッシュテーブルサイズを超える場合、縮小操作を適用することができる。
【0036】
図7は、本開示の実施形態による別の縮小アルゴリズムを示す。この縮小アルゴリズムでは、図6に示すように非境界点を除去することによってハッシュテーブルを縮小した後、ハッシュテーブルサイズが依然として定義された閾値(例えば、最大ハッシュテーブルサイズ)より大きい場合、ハッシュテーブル内の追加の点を除去することができる。実施形態では、ハッシュテーブル内のすべての点を除去することができる。実施形態では、図6に示すように非境界点を除去することによってハッシュテーブルを縮小した後、ハッシュテーブルサイズが依然として定義された閾値より大きい場合、ハッシュテーブル内のすべての点を除去する代わりに、特定の規則に基づいて特定の点を除去することができる。例えば、特定の規則に基づいて、ハッシュテーブルに最初に追加された点を削除することができ、ハッシュテーブル内のより小さいモートンコードの点を削除することができる、などである。
【0037】
図8は、本開示の実施形態による別の縮小アルゴリズムを示す。この縮小アルゴリズムでは、Kによって定められる最大ハッシュサイズは、ハード閾値である。すなわち、ハッシュテーブルサイズがハード閾値を超えると、ハッシュテーブルを空にすることができる。実施形態では、ハッシュテーブルは、すべての点を除去することによって空にされる。この場合、縮小条件はもはや境界サイズMに依存しないため、境界サイズMを省略することができる。
【0038】
いくつかの実施形態では、K=maxHashSizeLog2やM=hashBoundarySizeLog2などのハッシュ縮小アルゴリズムにおける所定のパラメータをシグナリングすることができる。いくつかの実施形態では、所定のパラメータを高いレベルのシンタックスでシグナリングすることができる。さらに、縮小モードインデックスをシグナリングして、異なる縮小方針間で切り替えることができる。例えば、これらのパラメータは、ビットストリームのシーケンスヘッダ、スライスヘッダ、ジオメトリパラメータセット(GPS)、またはアトリビュートパラメータセット(APS)において指定され得る。これらの縮小戦略はジオメトリコーディングと属性コーディングの両方に使用できるため、パラメータはジオメトリコーディングと属性コーディングとで異なるように構成できる。したがって、2セットのパラメータを、それぞれGPSおよびAPSでシグナリングすることができる。
【0039】
一実施形態では、表1に示すように、KおよびMは、GPSにおけるジオメトリコーディングのためにシグナリングされる。シンタックス要素gps_hash_max_size_log2は、ジオメトリコーディングのための最大ハッシュテーブルサイズをlog2、すなわちK=gps_hash_max_size_log2で定義する。シンタックス要素gps_hash_boundary_size_log2は、ジオメトリコーディングのため、境界サイズをlog2、すなわちM=gps_hash_boundary_size_log2で定義する。シンタックス要素gps_hash_shrink_modeは、ジオメトリコーディングのための異なるハッシュ縮小戦略を指定する。
【0040】
【表1】
【0041】
一実施形態では、表2に示すように、KおよびMは、APSにおける属性コーディングのためにシグナリングされる。シンタックス要素aps_hash_max_size_log2は、属性コーディングのため、log2における最大ハッシュテーブルサイズ、すなわちK=aps_hash_max_size_log2を定義する。シンタックス要素gps_hash_boundary_size_log2は、属性コーディングのための境界サイズをlog2、すなわちM=gps_hash_boundary_size_log2で定義する。シンタックス要素aps_hash_shrink_modeは、属性コーディングのための異なるハッシュ縮小戦略を指定する。
【0042】
【表2】
【0043】
いくつかの実施形態では、異なる縮小戦略は、異なるパラメータセットを有することができる。表3は、APSにおける異なるパラメータセットを示しているが、GPSにおいても同じシグナリング方法を適用することができる。シンタックス要素aps_hash_mode0_param0およびaps_hash_mode0_param1は、シンタックス要素aps_hash_shrink_modeが0に等しいときの例示的なパラメータである。例えば、シンタックス要素aps_hash_mode0_param0およびaps_hash_mode0_param1は、それぞれ第1の最大ハッシュテーブルサイズの値および第1の境界サイズの値とすることができる。シンタックス要素aps_hash_mode1_param0およびaps_hash_mode1_param1は、シンタックス要素aps_hash_shrink_modeが1に等しいときの例示的なパラメータである。例えば、シンタックス要素aps_hash_mode1_param0およびaps_hash_mode1_param1は、それぞれ第2の最大ハッシュテーブルサイズの値および第2の境界サイズの値とすることができる。
【0044】
【表3】
【0045】
III.フローチャート
図9は、本開示の一実施形態による例示的なプロセス(900)の概要を示すフローチャートを示す。様々な実施形態で、プロセス(900)は、図11に示す処理回路などの処理回路によって、実行される。いくつかの実施形態では、プロセス(900)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(900)を実行する。
【0046】
プロセス(900)は、一般に、ステップ(S910)で開始することができ、プロセス(900)は、点群の複数の点の現在点に関連する情報を符号化する。複数の点は、複数のバウンディングボックスに分割される。次いで、プロセス(900)は、ステップ(S920)に進む。
【0047】
ステップ(S920)において、プロセス(900)は、第1のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であるかを判定する。次いで、プロセス(900)は、ステップ(S930)に進む。
【0048】
ステップ(S930)において、プロセス(900)は、第1のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であることに基づいて、複数のバウンディングボックス内の非境界点に関連する情報をハッシュテーブルから除去する。次いで、プロセス(900)は、ステップ(S940)に進む。
【0049】
ステップ(S940)において、プロセス(900)は、現在点に関する符号化された情報をハッシュテーブルに格納する。次に、プロセス(900)が終了する。
【0050】
実施形態では、プロセス(900)は、現在点のチェックポイントが、保存されたチェックポイントと等しいかどうかを判定する。現在点のチェックポイントは、複数のバウンディングボックスの各々の境界サイズに基づいて判定される。プロセス(900)は、現在点のチェックポイントが保存されたチェックポイントと等しくないことに基づいて、ハッシュテーブルから複数のバウンディングボックス内の非境界点に関連する情報を削除する。プロセス(900)は、現在点のチェックポイントに基づいて保存されたチェックポイントを修正する。
【0051】
実施形態では、プロセス(900)は、第2のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であるかを判定する。プロセス(900)は、第2のハッシュテーブルのサイズがハッシュテーブルの所定の最大サイズ以上であることに基づいて、複数のバウンディングボックス内の残りのすべての点に関連する情報をハッシュテーブルから除去する。
【0052】
実施形態では、プロセス(900)は、ハッシュテーブルから複数のバウンディングボックス内の残りのすべての点に関連する情報を削除する。
【0053】
実施形態では、プロセス(900)は、ハッシュテーブルの所定の最大サイズまたは複数のバウンディングボックスのそれぞれの境界サイズの少なくとも一方を、ビットストリームに符号化する。
【0054】
実施形態では、プロセス(900)は、モードインデックスをビットストリームに符号化し、モードインデックスは、複数のハッシュテーブル縮小モードのうちの1つを示す。
【0055】
実施形態では、プロセス(900)は、モードインデックスに基づいて、ハッシュテーブルの所定の最大サイズまたは複数のバウンディングボックスのそれぞれの境界サイズの少なくとも一方を符号化する。
【0056】
実施形態では、現在点に関連する情報は、現在のブロックに関連するジオメトリ情報または属性情報のうちの1つを含む。
【0057】
図10は、本開示の一実施形態による例示的なプロセス(1000)の概要を示す別のフローチャートを示す。様々な実施形態で、プロセス(1000)は、図11に示す処理回路などの処理回路によって、実行される。いくつかの実施形態では、プロセス(1000)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1000)を実行する。
【0058】
プロセス(1000)は、一般に、ステップ(S1010)で開始することができ、プロセス(1000)は、点群の第1の点のサブセットに関連するコード化情報を記憶するハッシュテーブルを含むビットストリームを受信する。点群の第2の点のサブセットは、第1の点のサブセット内の点の数に基づいてハッシュテーブルから省かれるか、そうでなければ除去され、第2の点のサブセットは、所定の最大ハッシュテーブルサイズよりも大きい。点群の点は複数のバウンディングボックスに分割され、第2の点のサブセットは複数のバウンディングボックスの非境界点を含む。その後、プロセス(1000)はステップ(S1020)に進む。
【0059】
ステップ(S1020)において、プロセス(1000)は、点群の第1の点のサブセットと関連付けられたコード化情報をデコードする。その後、プロセス(1000)はステップ(S1030)に進む。
【0060】
ステップ(S1030)において、プロセス(1000)は、点群の第1の点のサブセットと関連付けられたデコード情報に基づいて、点群を再構築する。次に、プロセス(1000)は終了する。
【0061】
IV.コンピュータシステム
上記で説明された技術は、1つ以上のコンピュータ可読媒体に物理的に記憶された、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施され得る。例えば、図11は、開示されている主題の特定の実施形態を実施するのに適したコンピュータシステム(1100)を示す。
【0062】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU:central processing unit)およびグラフィック処理装置(GPU:Graphics Processing Unit)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムを受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコード化され得る。
【0063】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0064】
コンピュータシステム(1100)に関して図11に示されている構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。また、構成要素の構成は、コンピュータシステム(1100)の例示的な実施形態に示す構成要素のいずれか1つまたは組み合わせに関連する依存性または要件を有すると解釈されるべきではない。
【0065】
コンピュータシステム(1100)は、特定のヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0066】
入力ヒューマンインターフェースデバイスは、キーボード(1101)、マウス(1102)、トラックパッド(1103)、タッチスクリーン(1110)、データグローブ(図示せず)、ジョイスティック(1105)、マイクロフォン(1106)、スキャナ(1107)、およびカメラ(1108)(それぞれの1つのみが示されている)のうちの1つ以上を含み得る。
【0067】
コンピュータシステム(1100)はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通して、1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1110)、データグローブ(図示せず)、またはジョイスティック(1105)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(1109)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含むスクリーン(1110)などであって、それぞれタッチスクリーン入力機能の有無にかかわらず、触覚フィードバック機能の有無にかかわらず、その一部は、2次元の視覚出力または立体出力などの手段による3次元以上の出力を出力することが可能であり得る、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、スモークタンク(図示せず))、ならびにプリンタ(図示せず)を含むことができる。これらの視覚出力デバイス(スクリーン(1110)など)は、グラフィックアダプタ(1150)を介してシステムバス(1148)に接続され得る。
【0068】
コンピュータシステム(1100)はまた、CD/DVDなどの媒体(1121)を備えたCD/DVD ROM/RW(1120)を含む光学媒体、サムドライブ(1122)、リムーバブルハードドライブまたはソリッドステートドライブ(1123)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能な記憶装置およびその関連媒体を含むことができる。
【0069】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0070】
コンピュータシステム(1100)はまた、1つ以上の通信ネットワーク(1155)へのネットワークインターフェース(1154)を含み得る。1つ以上の通信ネットワーク(1155)は、例えば、無線、有線、光であり得る。1つ以上の通信ネットワーク(1155)はさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業、リアルタイム、ならびに遅延耐性などであり得る。1つ以上の通信ネットワーク(1155)の例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、およびLTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含む有線または無線TVワイドエリアデジタルネットワーク、ならびにCANBusを含む車両および産業用のものなどを含む。特定のネットワークは通常、特定の汎用データポートまたはペリフェラルバス(1149)(例えば、コンピュータシステム(1100)のUSBポート)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは、一般に、以下に説明するようにシステムバスに接続することによってコンピュータシステム(1100)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1100)は他のエンティティと通信することができる。このような通信は、単一方向、受信のみ(例えば、テレビ放送)、単一方向の送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、または双方向、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムに対して行うことができる。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0071】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1100)のコア(1140)に取り付けることができる。
【0072】
コア(1140)は、1つ以上の中央処理装置(CPU)(1141)、グラフィック処理装置(GPU)(1142)、フィールドプログラマブルゲート領域(FPGA:Field Programmable Gate Area)(1143)の形式の専用のプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1144)、およびグラフィックアダプタ(1150)などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM:Read-only memory)(1145)、ランダムアクセスメモリ(1146)、ユーザアクセス不可能な内蔵ハードドライブおよびSSDなどの内部大容量記憶装置(1147)と共に、システムバス(1148)を介して接続され得る。一部のコンピュータシステムでは、システムバス(1148)に1つまたは複数の物理プラグの形態でアクセスして、追加のCPU、GPUなどによる拡張を可能にすることができる。周辺装置は、コアのシステムバス(1148)に直接接続することも、ペリフェラルバス(1149)を介して接続することもできる。一例では、スクリーン(1110)はグラフィックアダプタ(1150)に接続され得る。周辺バスのアーキテクチャは、PCIおよびUSBなどを含む。
【0073】
CPU(1141)、GPU(1142)、FPGA(1143)、およびアクセラレータ(1144)は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1145)またはRAM(1146)に格納され得る。移行データはRAM(1146)に格納することもできるが、永続データは、例えば内部大容量記憶装置(1147)に格納することができる。メモリデバイスのいずれかへの高速な格納および読み出しは、1つまたは複数のCPU(1141)、GPU(1142)、大容量記憶装置(1147)、ROM(1145)、RAM(1146)などに密接に関連するキャッシュメモリを使用することで可能になり得る。
【0074】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであり得るし、またはそれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであり得る。
【0075】
一例として、限定するものではないが、アーキテクチャを有するコンピュータシステム(1100)、具体的にはコア(1140)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が、1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果として、機能性を提供することができる。このようなコンピュータ可読媒体は、上記で紹介したユーザアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置(1147)またはROM(1145)などの非一時的な性質のコア(1140)の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに格納され、コア(1140)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1140)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1146)に格納されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1144))にハードワイヤードまたはその他の方法で具現化されたロジックの結果として機能性を提供することができ、それは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと共に動作することができる。必要に応じて、ソフトウェアへの言及にはロジックを含めることができ、その逆も可能である。適切な場合には、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC:integrated circuit)など)、実行のための論理を具現化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0076】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0077】
401 バウンディングボックス
402 バウンディングボックス
403 バウンディングボックス
404 バウンディングボックス
411 斜線領域
412 領域
900 プロセス
1000 プロセス
1100 コンピュータシステム
1101 キーボード
1102 マウス
1103 トラックパッド
1105 ジョイスティック
1106 マイクロフォン
1107 スキャナ
1108 カメラ
1109 オーディオ出力デバイススピーカ
1110 タッチスクリーン、視覚出力デバイススクリーン
1120 CD/DVD ROM/RW
1121 媒体
1122 サムドライブ
1123 ソリッドステートドライブ
1140 コア
1141 中央処理装置(CPU)
1142 グラフィック処理装置(GPU)
1143 フィールドプログラマブルゲート領域(FPGA)
1144 ハードウェアアクセラレータ
1145 読み出し専用メモリ(ROM)
1146 ランダムアクセスメモリ
1147 内部大容量記憶装置
1148 システムバス
1149 ペリフェラルバス
1150 グラフィックアダプタ
1154 ネットワークインターフェース
1155 通信ネットワーク
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11