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

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

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

特許7263550点群の情報をコーディングする方法及び装置、及びコンピュータプログラム
<>
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図1
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図2
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図3
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図4
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図5
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図6
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図7
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図8
  • 特許-点群の情報をコーディングする方法及び装置、及びコンピュータプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-14
(45)【発行日】2023-04-24
(54)【発明の名称】点群の情報をコーディングする方法及び装置、及びコンピュータプログラム
(51)【国際特許分類】
   G06T 9/40 20060101AFI20230417BHJP
   G06T 17/00 20060101ALI20230417BHJP
【FI】
G06T9/40
G06T17/00 500
【請求項の数】 20
(21)【出願番号】P 2021560895
(86)(22)【出願日】2021-02-15
(65)【公表番号】
(43)【公表日】2022-07-06
(86)【国際出願番号】 US2021018103
(87)【国際公開番号】W WO2021202002
(87)【国際公開日】2021-10-07
【審査請求日】2021-10-13
(31)【優先権主張番号】63/002,314
(32)【優先日】2020-03-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/083,912
(32)【優先日】2020-10-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】橋爪 正樹
(56)【参考文献】
【文献】国際公開第2020/013249(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00- 9/40
G06T 17/00-17/30
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
点群の情報をコーディングする方法であり、少なくとも1つのプロセッサによって実行される方法であって、
三次元空間で、点の集合を含む前記点群を取得するステップと、
前記点の集合内の現在のノードが、孤立しているか否かを決定するステップと、
前記現在のノードが孤立しているとの決定に基づいて、孤立モードで前記現在のノードをコーディングし、前記現在のノードが孤立していないとの決定に基づいて、非孤立モードで前記現在のノードをコーディングするステップとを備えている、方法。
【請求項2】
さらに、前記孤立モードの場合に、前記現在のノードが重複ノードであるか否かを決定するステップを備えている、請求項1記載の方法。
【請求項3】
前記現在のノードが重複ノードであるとの決定に基づいて、前記現在のノードについて重複番号をコーディングするステップと、前記現在のノードの幾何学的位置をコーディングするステップとをさらに備えている、請求項2記載の方法。
【請求項4】
前記現在のノードの前記幾何学的位置をコーディングするステップは、前記重複番号がコーディングされた後に行われる、請求項3記載の方法。
【請求項5】
前記現在のノードが重複ノードでないとの決定に基づいて、前記現在のノードについて重複番号をコーディングせずに、孤立した前記現在のノードの幾何学的位置をコーディングするステップをさらに備えている、請求項2又は3記載の方法。
【請求項6】
さらに、前記非孤立モードの場合に、前記現在のノードがリーフノードであるか否かを決定するステップを備えている、請求項1又は2記載の方法。
【請求項7】
前記現在のノードがリーフノードであるとの決定に基づいて、前記現在のノードについて重複番号をコーディングするステップと、リー分割を終了するステップとをさらに備えている、請求項6記載の方法。
【請求項8】
前記現在のノードがリーフノードでないとの決定に基づいて、子ノードの占有情報をコーディングするステップと、ての占有された子ノードを先入先出リストに挿入するステップとをさらに備えている、請求項6又は7記載の方法。
【請求項9】
点群の情報をコーディングする装置であり、
コンピュータプログラムコードを記憶する少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスするように構成され、前記コンピュータプログラムコードによって指示されたように動作するように構成されている少なくとも1つのプロセッサとを備えている装置であって、
前記コンピュータプログラムコードは、
三次元空間で、点の集合を含む前記点群を取得することを、少なくとも1つの前記プロセッサに行わせるように構成されている取得コードと、
前記点の集合内の現在のノードが、孤立しているか否かを決定することを、少なくとも1つの前記プロセッサに行わせるように構成されている孤立決定コードと、
前記現在のノードが孤立しているとの決定に基づいて、孤立モードで前記現在のノードをコーディングし、前記現在のノードが孤立していないとの決定に基づいて、非孤立モードで前記現在のノードをコーディングすることを、少なくとも1つの前記プロセッサに行わせるように構成されているエンコード用コードとを備えている、装置。
【請求項10】
前記孤立モードの場合に、前記コンピュータプログラムコードはさらに重複決定コードを含み、前記重複決定コードは、少なくとも1つの前記プロセッサに、前記現在のノードが重複ノードであるか否かを決定させるように構成されている、請求項9記載の装置。
【請求項11】
前記重複決定コードはさらに、少なくとも1つの前記プロセッサに、前記現在のノードが重複ノードであるとの決定に基づいて、前記現在のノードについて重複番号コーディングさせ記現在のノードの幾何学的位置をコーディングさせるように構成されている、請求項10記載の装置。
【請求項12】
前記現在のノードの前記幾何学的位置をコーディングすることは、前記重複番号がコーディングされた後に行われる、請求項11記載の装置。
【請求項13】
前記重複決定コードはさらに、少なくとも1つの前記プロセッサに、前記現在のノードが重複ノードでないとの決定に基づいて、前記現在のノードについて重複番号をコーディングせずに、孤立した前記現在のノードの幾何学的位置コーディングさせるように構成されている、請求項10又は11記載の装置。
【請求項14】
前記非孤立モードの場合に、前記コンピュータプログラムコードはさらにリーフ決定コードを含み、前記リーフ決定コードは、少なくとも1つの前記プロセッサに、前記現在のノードがリーフノードであるか否かを決定させるように構成されている、請求項9又は10記載の装置。
【請求項15】
前記リーフ決定コードはさらに、少なくとも1つの前記プロセッサに、前記現在のノードがリーフノードであるとの決定に基づいて、前記現在のノードについて重複番号コーディングさせリー分割を終了させるように構成されている、請求項14記載の装置。
【請求項16】
前記リーフ決定コードはさらに、少なくとも1つの前記プロセッサに、前記現在のノードがリーフノードでないとの決定に基づいて、子ノードの占有情報コーディングさせての占有された子ノードを先入先出リストに挿入させるように構成されている、請求項14又は15記載の装置。
【請求項17】
少なくとも1つのプロセッサによって実行されたときに、前記プロセッサに点群の情報のコーディングを行わせる、コンピュータプログラムであって、
三次元空間で、点の集合を含む前記点群を取得するステップと、
前記点の集合内の現在のノードが、孤立しているか否かを決定するステップと、
前記現在のノードが孤立しているとの決定に基づいて、孤立モードで前記現在のノードをコーディングし、前記現在のノードが孤立していないとの決定に基づいて、非孤立モードで前記現在のノードをコーディングするステップとを備える方法によって、前記プロセッサに点群の情報のコーディングを行わせる、コンピュータプログラム。
【請求項18】
前記方法はさらに、前記孤立モードの場合に、前記現在のノードが重複ノードであるか否かを決定するステップを備えている、請求項17記載のコンピュータプログラム。
【請求項19】
前記方法は、
前記現在のノードが重複ノードであるとの決定に基づいて、前記現在のノードについて重複番号をコーディングし、記現在のノードの幾何学的位置をコーディングするステップと、
前記現在のノードが重複ノードでないとの決定に基づいて、前記現在のノードについて重複番号をコーディングせずに、孤立した前記現在のノードの幾何学的位置をコーディングするステップとをさらに備えている、請求項18記載のコンピュータプログラム。
【請求項20】
前記現在のノードの幾何学的位置をコーディングするステップは、前記重複番号がコーディングされた後に行われる、請求項19記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年3月30日に出願された米国仮特許出願第63/002,314号、及び2020年10月29日に出願された米国特許出願第17/083,912号の優先権を主張し、それらの全体が本明細書に組み込まれる。
【0002】
本発明は、点群コーディングのための重複点及び孤立点をコーディングする方法に関する。
【背景技術】
【0003】
近年、点群モデリング(point cloud modeling)が広く用いられている。例えば、物体の探知・位置確認のための自律運転車両、地図作成のための地理情報システム(GIS)、文化遺産の物品及びコレクションの視覚化及びアーカイブ化のための文化遺産プロジェクトなどに使用されている。
【0004】
点群は、通常、三次元(3D)の高次元点の集合を含み、それぞれは、3D位置情報と、色、反射率などの追加属性とを含む。高次元点は、複数のカメラ、及び/又は深さセンサを使用して、様々なセットアップで光検出及び測距(LIDAR)を介して捕捉することができ、数千から数十億の点で構成することができ、それによって、オリジナルシーンの現実的な表現を可能にする。
【0005】
さらに高速な転送及び/又はストレージ削減のために、点群を表すのに必要なデータ量を減らすために、圧縮技術が必要とされる。非特許文献1ないし4に記載されているように、国際標準化機構(ISO)と国際電気標準会議(IEC)とのワーキンググループであるMoving Picture Experts Group(MPEG)は、静的及び/又は動的な点群の圧縮技術を標準化するために、合同技術委員会(JTC1/SC29/WG11)とアドホックグループ(MPEG-PCC)とを設立している。
【先行技術文献】
【非特許文献】
【0006】
【文献】Use Cases for Point Cloud Compression, ISO/IEC JTC1/SC29 WG11 Doc. N16331, Geneva, CH, June 2016.
【文献】Requirements for Point Cloud Compression, ISO/IEC JTC1/SC29 WG11 Doc. N16330, Geneva, CH, June 2016.
【文献】G-PCC Codec description, ISO/IEC JTC1/SC29/WG11, Doc. M18673, July 2019.
【文献】Text of ISO/IEC CD 23090-9 Geometry-based Point Cloud Compression, ISO/IEC JTC1/SC29 WG11 Doc. N18478, Geneva, July 2019.
【発明の概要】
【0007】
本開示は、点群コーディング(PCC,点群符号化)を対象とし、より詳細には、改善された点群圧縮を提供する目的のために、重複点及び孤立点をコーディングする方法、装置及びシステムを対象とする。
【0008】
本開示の1つの態様によれば、点群の情報をコーディングする方法が提供される。方法は少なくとも1つのプロセッサによって実行され、三次元空間で、点の集合を含む点群を取得するステップと;点の集合内の現在のノードが、孤立しているか否かを決定するステップと;現在のノードが孤立しているとの決定に基づいて、孤立モードで現在のノードをコーディングし、現在のノードが孤立していないとの決定に基づいて、非孤立モードで現在のノードをコーディングするステップとを備えている。
【0009】
方法は、さらに、孤立モードの場合に、現在のノードが重複ノードであるか否かを決定するステップを備えてよい。
【0010】
方法は、重複番号をコーディングするステップと、現在のノードが重複ノードであるとの決定に基づいて、現在のノードの幾何学的位置をコーディングするステップとをさらに備えてよい。
【0011】
現在のノードの幾何学的位置をコーディングするステップは、重複番号がコーディングされた後に、行われてよい。
【0012】
方法は、現在のノードが重複ノードでないとの決定に基づいて、重複番号をコーディングせずに、孤立した現在のノードの幾何学的位置をコーディングするステップをさらに備えてよい。
【0013】
方法は、さらに、非孤立モードの場合に、現在のノードがリーフノードであるか否かを決定するステップを備えてよい。
【0014】
方法は、重複番号をコーディングするステップと、現在のノードがリーフノードであるとの決定に基づいてツリー分割を終了させるステップとをさらに備えてよい。
【0015】
方法は、占有情報をコーディングするステップと、現在のノードがリーフノードでないとの決定に基づいて、全ての占有された子ノードを先入先出リストに挿入するステップとをさらに備えてよい。
【0016】
本開示の別の態様によれば、点群の情報をコーディングする装置が提供される。装置は、1つ以上の命令を記憶するメモリと、1つ以上の命令を実行するように構成されているプロセッサとを備え、1つ以上の命令は、三次元空間で、点の集合を含む点群を取得することと;点の集合内の現在のノードが、孤立しているか否かを決定することと;現在のノードが孤立しているとの決定に基づいて、孤立モードで現在のノードをコーディングし、現在のノードが孤立していないとの決定に基づいて、非孤立モードで現在のノードをコーディングすることとの命令である。
【0017】
本開示の別の態様によれば、点群の情報をコーディングする方法が記憶されている非一時的なコンピュータ可読な媒体が提供される。方法は少なくとも1つのプロセッサによって実行され、三次元空間で、点の集合を含む点群を取得するステップと;点の集合内の現在のノードが、孤立しているか否かを決定するステップと;現在のノードが孤立しているとの決定に基づいて、孤立モードで現在のノードをコーディングし、現在のノードが孤立していないとの決定に基づいて、非孤立モードで現在のノードをコーディングするステップとを備えている。
【図面の簡単な説明】
【0018】
図1】実施形態に係る三次元空間における八分木パーティションの例示である。
図2】実施形態に係る八分木パーティション及びツリー構造の例示である。
図3】例示的な実施形態に係り、孤立点及び重複点をコーディングするフレームワークの例示である。
図4】点群の情報をコーディングする方法の例である。
図5】点群の情報をコーディングする方法の例である。
図6】点群の情報をコーディングする方法の例である。
図7】本明細書に記載されるシステム及び/又は方法が実施できる例示的な環境の図である。
図8図7の1つ以上のデバイスの例示的な構成要素の図である。
図9】例示的な実施形態に係り、孤立点及び重複点をコーディングする方法のフローチャートである。
【発明を実施するための形態】
【0019】
[MPEGでのテストモデル13(TMC13)における点群圧縮]
非特許文献3及び非特許文献4に記載されているように、MPEGによって公布されたテストモデル13(TMC13)コーデックにおいては、点群の点の幾何学情報と、色又は反射率のような関連する属性とが、それぞれに圧縮されている。幾何学的情報、例えば、点の3D座標は、占有情報を持つ八分木分割によってコーディングされる。次いで、予測、リフティング及び領域適応階層変換技法を用いて、再構成された幾何学に基づいて、属性が圧縮される。八分木分割及び占有エンコードプロセスは、以下にさらに詳細に説明する。
【0020】
[八分木分割]
TMC13では、八分木幾何コーデックが使用される場合、幾何学エンコードは次のように進む。最初に、立方体軸に整列した境界ボックスBが、2点(0,0,0)及び(2M-1,2M-1,2M-1)によって定義される。ここで2M-1は、Bのサイズを定義し、Mは、ビットストリームで指定される。
【0021】
次いで、再帰的にBを細分することで、八分木構造が構築される。各段階では、立方体を8つのサブ立方体に細分する。8ビットのコード、即ち占有コードは、各サブ立方体に1ビットの値を関連付けることによって生成され、それが点を含むか(即ち、それが満杯であり、値が1であるかどうか)否か(即ち、それが空であり、値が0であるかどうか)を示す。1より大きいサイズ(即ち、非ボクセル)を持つ完全なサブ立方体のみが、さらに細分される。図1は、3D空間における八分木パーティションの例示を示す。
【0022】
2レベルの八分木パーティションの例と、対応する占有コードとが、図2に示され、ここで、暗くした表示の立方体とノードとは、それらが点によって占有されていることを示す。
【0023】
[占有コードのエンコード]
各ノードの占有コードは、次に、算術エンコーダによって圧縮される。占有コードは、8ビット整数であるSとして示され、Sの各ビットは、各子ノードの占有状態を示す。占有コードのための2つのエンコード方法がTMC13に存在する。ビット単位のエンコードとバイト単位のエンコードとである。ビット単位のエンコードは、デフォルトで可能にされている。両者の方法はともに、占有コードをエンコードするためにコンテキストモデリングを用いて算術コーディングを実行し、コンテキストステータスはコーディングプロセスの開始時に初期化され、コーディングプロセスの間に更新される。
【0024】
ビット単位のエンコードの場合には、隣接ノードと隣接ノードの子ノードとの占有状態を参照することによって、各ビンがエンコードされる特定の順序で、Sの中の8つのビンがエンコードされ、隣接ノードは現在のノードの同じレベルにある。
【0025】
バイト単位のエンコードの場合には、Sは、以下を参照してエンコードされる。
・N個(例えば、32個)の最も頻繁な占有コードを追跡する適応ルックアップテーブル(A-LUT)、及び
・最後に観測された異なるM個(例えば、16個)の占有コードのトラックを保持するキャッシュ。
【0026】
SがA-LUTの中にあるか否かを示すバイナリフラグが、エンコードされる。SがA-LUTの中にある場合、A-LUTの中のインデックスは、バイナリ算術エンコーダを使用することによってエンコードされる。SがA-LUTの中にない場合は、Sがキャッシュの中にあるか否かを示すバイナリフラグがエンコードされる。Sがキャッシュ内にある場合、そのインデックスのバイナリ表現が、バイナリ算術エンコーダを使用してエンコードされる。それ以外の場合、Sがキャッシュにない場合、バイナリ算術エンコーダを使用してSのバイナリ表現をエンコードする。
【0027】
復号化プロセスは、ビットストリームから境界ボックスBの次元を解析することによって開始される。次に、復号化された占有コードに従ってBを細分することによって、同じ八分木構造が構築される。
【0028】
上述のコーデックスキームでは、重複点は、同じ幾何学的位置を有する八分木構造内の点を示してよい(may refer to)が、それらの属性は異なり得る。例示的な実施形態によれば、属性は、色、反射率、又は同じ幾何学的位置に関連する他の特徴であってよい。しかし、本開示は、異なる属性に限定されない。このように、別の例示的な実施形態によれば、重複点は、同じ幾何学的位置を有する八分木構造内の点を示してよく、同じ属性を有してよい。ある場合には、エンコーダは、幾何量子化が実行されるときでさえ、圧縮後に点の数を不変に保つ必要があることがある。これは、多くの点が同じ位置に量子化され、多くの重複点を生じる状況を導くことがある。
【0029】
一方、孤立点は、八分木ノード内での同一の幾何学的位置を有する単一点である点である。例えば、点群に1点しか含まれていない場合、この点はルート八分木ノードの孤立点になる。例えば、特定のノードに占有されている子ノードが1つだけの場合、その特定のノードは孤立したノードとなる。
【0030】
例示的な実施形態によれば、孤立点は、それらが八分木ノード内で同一で唯一の幾何学的位置を有する限り、1つ又は複数の点を有してよい。言い換えれば、孤立点が重複している可能性がある。
【0031】
本開示の1つ以上の態様によれば、重複点及び孤立点のコーディングは、全体的なコーディング性能を改善する。例えば、重複点及び/又は孤立点をコーディングする方法は、コーディングに使用されるビット数を減少させ、それによって、改善されたビットレートをもたらす。さらに、エンコード及び復号化に使用されるメモリは、減少されてよく、重複点及び孤立点のコーディングに起因して、エンコード及び復号化の速度が増加されてよい。本開示では、重複点及び孤立点をコーディングする方法が詳述される。
【0032】
本開示によれば、提案される方法、装置及びシステムは、別々に、又は任意の順序で組み合わせて使用してよい。さらに、方法(又は実施形態)、エンコーダ及び復号化器のそれぞれは、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実施されてよい。一例では、1つ以上のプロセッサは、一時的でないコンピュータ可読な媒体に記憶されたプログラムを実行する。さらに、本明細書における開示は、TMC13ソフトウェア又はMPEG-PCC標準に関連する使用に限定されない。
【0033】
[孤立点及び重複点のコーディングの枠組み]
図3は、全体的なコーディング方法の例示的な実施形態を示す。八分木ノードは、予め定義された順序でコーディングされてよく、この場合、幅優先のコーディング順序が使用され、先入先出(FIFO)データ構造(又はFIFOリスト)が適用される。各八分木ノードに対して、現在のノードが孤立しているか否かを決定するために、種々の基準が適用される。孤立している場合、孤立モードで現在のノードがコーディングされ、孤立点の重複番号(duplicate number)と幾何学的位置とがコーディングされる。さもなければ、現在のノードは次のようにコーディングされる。現在のノードがリーフノードである場合には、重複番号がノードに対してコーディングされてよく、ツリー分割が終了する。一方、現在のノードがリーフノードでない場合は、占有コードがコーディングされ、全ての占有された子ノードがFIFOに挿入される。
【0034】
[重複モードのコーディング]
図3に示すように、重複モードは、リーフノード又は孤立点に適用できる。例示的な実施形態によれば、重複モードでは、重複点の数を信号伝達することが必要なことがある。最小の重複点の数は1であるため、コーディング前に1ずつ減算される。数をコーディングするために、コンテキストとエントロピーコーディングとで先頭ビットをコーディングしてよい。
【0035】
例示的な実施形態によれば、num_duplicate_pointsの構文テーブルは、図4に示すようであってよい。図4において、「num_duplicated_points_is_one」はnum_duplicated_pointsが1に等しいかどうかを指定する。「num_duplicated_points_is_2」はnum_duplicated_pointsが2に等しいかどうかを指定する。「num_duplicated_points_minus_three」はnum_duplicate_pointsを次のように指定する。
num_duplicate_points = num_duplicated_points_minus_three + 3.
【0036】
例えば、コーディング操作は、現在のノードのための重複点の数を決定してよい。ここで、コーディング操作は、重複点の数が1であるか否かを決定してよい。なお、重複点の数が1である場合には、「num_duplicated_points_is_one」ということを指定してよい。例示的な実施形態によれば、方法は、フラグを指定又は設定することにより、「num_duplicated_points_is_one」を指定することを含んでよい。
【0037】
重複点の数が1でない場合、コーディング操作により、重複点の数が2であるかどうかを決定してよい。重複点の数が2の場合に、コードは「num_duplicated_points_is_2」ということを指定してよい。しかし、もし重複点の数が2でない場合に、コーディング操作はnum_duplicated_points = num_duplicated_points_minus_three + 3ということを指定してよい。
【0038】
例示的な実施形態によれば、図4に示すプロセスを実施することによって、最適なコーディング効率が達成できる。
【0039】
例示的な実施形態によれば、復号化プロセスが、図4に示されるように指定される重複点の数を使用して、逆に実施されてよい。
【0040】
別の例示的な実施形態によれば、num_duplicate_pointsの構文テーブルは図5に図示が可能である。図5において、「num_duplicated_points_is_one」はnum_duplicated_points_2が1に等しいかどうかを指定し、「num_duplicated_points_minus_two」はnum_duplicate_pointsを次のように指定する。
num_duplicate_points = num_duplicated_points_minus_two + 2.
【0041】
[孤立モードのコーディング]
本開示の一態様によれば、孤立モードが適格であるかどうかを判断するために、種々の基準を使用してよい。例示的な実施形態によれば、孤立モードは、現在のパーティションの深さが閾値よりも小さい場合にのみ適格である。例示的な実施形態によれば、閾値は、シーケンスパラメータセット、幾何学的パラメータセット、又はスライスヘッダなどのような高レベル構文によって固定されてよく、又は指定されてよい。別の例示的な実施形態では、パーティションの深さのチェックに加えて、この方法は、現在のノードが八分木構造において兄弟(sibling)を有さないかどうかのチェックを含んでよい。現在のノードが少なくとも1人の兄弟を持っている場合、孤立モードは適格ではない。
【0042】
例示的な実施形態によれば、孤立モードが適格である場合、現在のノードが孤立点を有するか否かを示すためにフラグが信号伝達される。このフラグはエントロピーコーディングの有無にかかわらずコーディングされてよく、異なるコンテキストを使用してコーディング効率を改善してよい。一実施形態では、フラグは、1つのコンテキストを伴ってエントロピーコーディングによってコーディングされる。次に、孤立しているフラグが真である場合、重複点が許されるならば、重複モードが適用されてよい。最後に、孤立した位置は信号伝達され、この位置はエントロピーコーディングの有無にかかわらずコーディングされてよく、複数のコンテキストを適用してよい。例示的な実施形態によれば、孤立位置はエントロピーコーディングなしでバイパスコーディングされる。
【0043】
例示的な実施形態によれば、孤立モードを含む構文テーブルは、図6に示すようであってよい。
【0044】
例えば、コーディング操作は最初に、孤立モードが適格であるか否かを決定してよい。例示的な実施形態によれば、孤立モードは、現在のパーティションの深さが閾値より小さい場合(即ち、「if(geomIsolatedModeFlag && depth <= geomIsolatedModeMaxDepth)」)にのみ適格である。しかし、本開示はこれに限定されず、他の例示的な実施形態によれば、現在のパーティションの深さに基づく孤立モードの適格性のチェックは省略してよい。別の実施形態によれば、孤立モードの適格性についてのチェックは、異なる基準に基づいてよい。
【0045】
次に、コーディング操作は、現在のノードが孤立したノードである(即ち、「geom_isolated_flag」が設定される)かどうかを決定してよい。現在のノードが孤立したノードであるとの決定に基づいて、現在のノードの幾何学的位置がコーディングされる(即ち、isolated_position_x, isolated_position_y, isolated_position_z)。
【0046】
例示的な実施形態によれば、コーディング操作はさらに、現在のノードが重複ノードであるかどうか(即ち、「!geomRemoveDuplicateFlag」)を決定することを含んでよい。この場合、重複点の数もコーディングされる。例示的な実施形態によれば、重複点の数は、図4又は図5に示す方法を使用してコーディングされてよい。しかしながら、本開示は、それに限定されず、ノードをコーディングする他の方法が実施されてよい。
【0047】
図6において、geomIsolatedModeFlag及びgeomIsolatedModeMaxDepthは、孤立モードの適格性を決定するために、高レベル構文で指定される。depthは、現在の八分木ノードのパーティションの深さを示す。この場合、geomIsolatedModeFlagが真であり、depthがgeomIsolatedModeMaxDepth以下の場合にのみ、孤立モードは適格となる。geom_select_flagは、孤立モードで現在のノードがコーディングされているかどうかを指定する。geomRemoveDuplicateFlagは、重複モードの適格性を示す高レベル構文で指定される。num_duplicate_pointsは、上記のように現在のノードの重複点の数を指定する。isolated_position_x, isolated_position_y,及びisolated_position_zは、孤立した位置を指定する。
【0048】
例示的な実施形態によれば、復号化プロセスが、図6に示されるように指定される重複点の数を使用して、逆に実施されてよい。
【0049】
例示的な実施形態によれば、重複点及び/又は孤立点をコーディングする図6に示す方法は、コーディングに使用されるビット数を減らし、それによって改善されたビットレートをもたらす。さらに、エンコード及び復号化に使用されるメモリは、少なくでき、重複点及び孤立点のコーディングのために、エンコード及び復号化の速度が大きくできる。
【0050】
図7は、本明細書に記載されたシステム及び/又は方法が実施できる、例示的な通信システム700の図である。図7に示すように、通信システム700は、ユーザデバイス710と、プラットフォーム720と、ネットワーク730とを含んでよい。通信システム700のデバイスは、有線接続、無線接続、又は有線及び無線接続の組み合わせによって相互接続してよい。
【0051】
通信システム700は、データの一方向送信をサポートしてよい。例えば、第1ユーザデバイス710は、ネットワーク730を介して第2ユーザデバイス710に送信するために、ローカル位置のビデオデータをコーディングしてよい。第2ユーザデバイス710は、ネットワーク730から第1ユーザデバイス710のコーディングされたビデオデータを受信し、コーディングされたデータを復号化し、復元されたビデオデータを表示してよい。一方向性データ伝送は、媒体提供アプリケーション等において一般的なものであってよい。
【0052】
通信システム700は、データの双方向伝送をサポートしてよい。例えば、通信システム700は、例えば、テレビ会議中に発生し得るコーディングされたビデオの双方向伝送をサポートしてよい。データの双方向伝送のために、各ユーザデバイス710は、ネットワーク730を介して他方のユーザデバイス710に伝送するために、ローカル位置で捕捉されたビデオデータをコーディングしてよい。各ユーザデバイス710はまた、他方のユーザデバイス710によって送信されたコーディングされたビデオデータを受信してよく、コーディングされたデータを復号化してよく、復元されたビデオデータをローカルディスプレイデバイスに表示してよい。
【0053】
ユーザデバイス710は、プラットフォーム720に関連する情報を受信、生成、記憶、処理、及び/又は提供することが可能な1つ以上のデバイスを含む。例えば、ユーザデバイス710は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、1つのスマートグラス又はスマートウオッチ)、又は類似のデバイスを含んでよい。いくつかの実施では、ユーザデバイス710は、プラットフォーム720との間で情報を受信、及び/又は情報を送信してよい。
【0054】
本明細書の他の箇所に記載されるように、プラットフォーム720は、ユーザデバイス710に情報を提供することができる1つ以上のデバイスを含む。いくつかの実施では、プラットフォーム720は、クラウドサーバ又はクラウドサーバの群を含んでよい。いくつかの実施では、プラットフォーム720は、特定のニーズに応じて、特定のソフトウェア構成要素を交換することができるように、モジュール式に設計してよい。そのようなものとして、プラットフォーム720は、異なる使用のために、容易に及び/又は迅速に再構成されてよい。
【0055】
図示のように、いくつかの実施では、プラットフォーム720は、クラウドコンピューティング環境722でホストされてよい。特に、本明細書に記載される実施は、プラットフォーム720を、クラウドコンピューティング環境722でホストされるものとして説明しているが、一部の実施では、プラットフォーム720は、クラウドベースではなく(即ち、クラウドコンピューティング環境の外部で実施されてよい)、又は部分的にクラウドベースであってよい。
【0056】
クラウドコンピューティング環境722は、プラットフォーム720をホストする環境を含む。プラットフォーム720をホストするシステム及び/又はデバイスの物理的な位置と構成とに関するエンドユーザ(例えば、ユーザデバイス710)の知識を必要としない、コンピューティング、ソフトウェア、データアクセス、ストレージなどのサービスを、クラウドコンピューティング環境722は提供してよい。図示のように、クラウドコンピューティング環境722は、一群のコンピューティングリソース724(「(複数の)コンピューティングリソース724」と総称し、個々には「コンピューティングリソース724」と称する)を含んでよい。
【0057】
コンピューティングリソース724は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他のタイプのコンピューティング及び/又は通信デバイスを含む。いくつかの実施では、コンピューティングリソース724は、プラットフォーム720をホストしてよい。クラウドリソースは、コンピューティングリソース724において実行されるコンピューティングインスタンスと、コンピューティングリソース724において提供されるストレージデバイスと、コンピューティングリソース724によって提供されるデータ転送デバイスなどを含んでよい。いくつかの実施では、コンピューティングリソース724は、有線接続、無線接続、又は有線及び無線接続の組み合わせによって、他のコンピューティングリソース724と通信してよい。
【0058】
図7にさらに示すように、コンピューティングリソース724は、1つ以上のアプリケーション(「APP」)724-1、1つ以上の仮想マシン(「VM」)724-2、仮想化ストレージ(「VS」)724-3、1つ以上のハイパーバイザ(「HYP」)724-4などの、クラウドリソースの群を含む。
【0059】
アプリケーション724-1は、ユーザデバイス710に提供できるか、又はユーザデバイス710によってアクセスできる1つ以上のソフトウェアアプリケーションを含む。アプリケーション724-1は、ユーザデバイス710上にソフトウェアアプリケーションをインストール及び実行する必要をなくしてよい。例えば、プラットフォーム720に関連するソフトウェア、及び/又はクラウドコンピューティング環境722を介して提供可能な他の任意のソフトウェアを、アプリケーション724-1は含んでよい。いくつかの実施では、1つのアプリケーション724-1は、仮想マシン724-2を介して、1つ以上の他のアプリケーション724-1との間で情報を送受信してよい。
【0060】
仮想マシン724-2は、物理マシンのようなプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実施を含む。仮想マシン724-2は、仮想マシン724-2による任意の実マシンへの使用と対応の程度とに応じて、システム仮想マシン又はプロセス仮想マシンのいずれでもあってよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供してよい。プロセス仮想マシンは、単一のプログラムを実行してよく、単一のプロセスをサポートしてよい。いくつかの実施では、仮想マシン724-2は、ユーザ(例えば、ユーザデバイス710)に代わって実行してよく、データ管理、同期化、又は長時間データ転送のようなクラウドコンピューティング環境722のインフラストラクチャーを管理してよい。
【0061】
仮想化ストレージ724-3は、コンピューティングリソース724のストレージシステム又はデバイス内で仮想化技術を使用する、1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。いくつかの実施では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化とファイル仮想化とを含んでよい。物理ストレージ又は異種構造に関係なくストレージシステムにアクセスできるように、ブロック仮想化は、物理ストレージからの論理ストレージの抽象化(又は分離)を示してよい(may refer to)。この分離により、ストレージシステムの管理者は、管理者がエンドユーザのためにストレージを管理する方法に柔軟性を持たせてよい。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶される場所との間の依存関係が排除できる。これにより、ストレージの使用、サーバの統合、及び/又は継続的なファイル移行のパフォーマンスの最適化が可能になれる。
【0062】
コンピューティングリソース724のように、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、ホストコンピュータ上で同時に実行できるようにするハードウェア仮想化技術を、ハイパーバイザ724-4は提供してよい。ハイパーバイザ724-4は、ゲストオペレーティングシステムに対して仮想オペレーティングプラットフォームを提示し、ゲストオペレーティングシステムの実行を管理してよい。さまざまなオペレーティングシステムの複数のインスタンスは、仮想化されたハードウェアリソースを共有してよい。
【0063】
ネットワーク730は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク730は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体ネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、大都市エリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話ネットワーク(PSTN))、私的ネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、及び/又はこれらの又は他のタイプのネットワークの組み合わせを含んでよい。
【0064】
図7に示すデバイス及びネットワークの数と配置とは、一例として提供される。実際には、図7に示すものよりも、追加のデバイス及び/又はネットワーク、さらに少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は異なる配置のデバイス及び/又はネットワークが存在してよい。さらに、図7に示す2つ以上のデバイスは、単一のデバイス内に実施されてよく、又は図7に示す単一のデバイスは、複数の分散デバイスとして実施されてよい。これに加えて、又はこれに代えて、環境700のデバイスのセット(例えば、1つ以上のデバイス)は、環境700のデバイスの別のセットによって実行されるものとして説明される1つ以上の機能を実行してよい。
【0065】
図8は、デバイス800の例示的な構成要素の図である。デバイス800は、ユーザデバイス710及び/又はプラットフォーム720に対応してよい。図8に示すように、デバイス800は、バス810と、プロセッサ820と、メモリ830と、ストレージ構成要素840と、入力構成要素850と、出力構成要素860と、通信インターフェース870とを含んでよい。
【0066】
バス810は、デバイス800の構成要素間の通信を可能にする構成要素を含む。プロセッサ820は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実施される。プロセッサ820は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理構成要素である。いくつかの実施では、プロセッサ820は、機能を実行するようにプログラムされ得る1つ以上のプロセッサを含む。メモリ830は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、及び/又は、プロセッサ820による使用のための情報及び/又は命令を記憶する別のタイプのダイナミック又はスタティックストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は、光メモリ)を含む。
【0067】
ストレージ構成要素840は、デバイス800の操作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、対応するドライブとともに、ストレージ構成要素840は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又は固体ディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は他のタイプの非一時的なコンピュータ可読な媒体を含んでよい。
【0068】
入力構成要素850は、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロホン)を介して情報をデバイス800が受信することを可能にする構成要素を含む。これに加えて、又はこれに代えて、入力構成要素850は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでよい。出力構成要素860は、デバイス800(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))からの出力情報を提供する構成要素を含む。
【0069】
通信インターフェース870は、有線接続、無線接続、又は有線及び無線接続の組み合わせなどを介してデバイス800が他のデバイスと通信することを可能にするトランシーバ的な構成要素(例えば、トランシーバ及び/又は別個の受信機及び送信機)を含む。通信インターフェース870は、デバイス800が他のデバイスから情報を受信し、及び/又は他のデバイスに情報を提供することを許容してよい。例えば、通信インターフェース870は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでよい。
【0070】
例示的な実施形態によれば、デバイス800は、本明細書に記載された1つ以上のプロセスを実行してよい。メモリ830及び/又はストレージ構成要素840などの、非一時的なコンピュータ可読な媒体に記憶されたソフトウェア命令をプロセッサ820が実行することに応答して、デバイス800はこれらのプロセスを実行してよい。コンピュータ可読な媒体は、本明細書では、非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリスペース、又は複数の物理ストレージデバイスに分散されたメモリスペースを含む。
【0071】
ソフトウェア命令は、別のコンピュータ可読な媒体から、又は通信インターフェース870を介して別のデバイスから、メモリ830及び/又はストレージ構成要素840に読んでよい。メモリ830及び/又はストレージ構成要素840に記憶されたソフトウェア命令は、実行された場合に、プロセッサ820に、本明細書に記載される1つ以上のプロセスを実行させてよい。
【0072】
これに加えて、又はこれに代えて、ハードワイヤード回路を、本明細書に記載される1つ以上のプロセスを実行するために、ソフトウェア命令の代わりに、又はそれと組み合わせて使用してよい。従って、本明細書に記載する実施形態は、ハードウェア回路とソフトウェアのいずれの特定の組み合わせにも限定されない。
【0073】
図8に示す構成要素の数及び配置は、一例として提供される。実際には、デバイス800は、図8に示される構成要素と比べて、追加の構成要素、さらに少ない構成要素、異なる構成要素、又は異なって配置された構成要素を含んでよい。これに加えて、又はこれに代えて、デバイス800の構成要素のセット(例えば、1つ以上の構成要素)は、デバイス800の構成要素の別のセットによって実行されるものとして説明される1つ以上の機能を実行してよい。
【0074】
図9は、点群の孤立点及び重複点をコーディングする例示的なプロセス900のフローチャートである。いくつかの実施では、図9の1つ以上のプロセスブロックは、ユーザデバイス710によって実行されてよい。いくつかの実施では、別のデバイスによって、又はプラットフォーム720のような、ユーザデバイス710から離れた、又はユーザデバイス710を含むデバイス群によって、図9の1つ以上のプロセスブロックが実行されてよい。
【0075】
図9に示すように、動作910では、三次元空間で、点の集合を含む点群を取得してよい。動作920では、点の集合内の現在のノードが、孤立したノードである(即ち、ノードが孤立している)か否かを決定する。動作930では、現在のノードが孤立している場合には、孤立モードで現在のノードがコーディングされ、現在のノードが孤立していない場合には、非孤立モードで現在のノードがコーディングされる。
【0076】
孤立モードでは、現在のノードが重複ノードかどうかが決定される。現在のノードが重複ノードの場合は、重複番号をコーディングし、その後、孤立した現在のノードの幾何学的位置をコーディングする。現在のノードが重複ノードでない場合、孤立した現在のノードの幾何学的位置は、重複番号のコーディングへの演算を行うことなくコーディングされる。
【0077】
非孤立モードでは、現在のノードは次のようにコーディングされる。現在のノードがリーフノードの場合、ノードについて重複番号をコーディングしてよく、ツリー分割を終了する。一方、現在のノードがリーフノードでない場合は、占有コードがコーディングされ、全ての占有された子ノードがFIFOリストに挿入される。
【0078】
前述の開示は、例示及び説明を提供するが、網羅的であることを意図するものではなく、また、開示された正確な形態に実施を限定することを意図するものでもない。改変及び変形は、上記の開示に照らして可能であり、又は実施形態の実施から取得されてよい。
【0079】
本明細書で使用される場合、用語「構成要素」は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせとして広く解釈されることを意図している。
【0080】
本明細書に記載したシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせの異なる形態で実施できることは明らかであろう。これらのシステム及び/又は方法を実施するために使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実施を制限しない。従って、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載され、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実施するように設計されてよいことが理解される。
【0081】
特徴の特定の組み合わせが請求項に記載され、かつ/又は明細書に開示されているとしても、これらの組み合わせは、可能な実施の開示を制限することを意図しない。それどころか、これらの特徴の多くは、請求項に具体的に記載されない、及び/又は明細書に開示されない方法で組み合わせてよい。以下に列挙される各従属請求項は、1つの請求項のみに直接従属することができるが、可能な実施の開示は、各従属請求項を、請求項のセット中の他の全ての請求項と組み合わせて含む。
【0082】
本明細書中で使用されるいかなる要素、行為、又は命令も、明示的に記述されない限り、重要又は必須と解釈されないものとする。また、本明細書で使用される「a」及び「an」という用語は、1つ以上の項目を含むことを意図し、「1つ以上」と互換的に使用されてよい。さらに、本明細書で使用される「セット(集合)」という用語は、1つ以上の項目(item)(例えば、関連項目、非関連項目、関連項目と非関連項目との組み合わせなど)を含むことを意図し、「1つ以上」と互換的に使用されてよい。1つの項目のみが意図される場合、用語「1つ」又は類似の用語法が使用される。また、本明細書で使用されるような、用語「持つ」、「有する」、「持った」などは、オープンエンド型の用語であることを意図する。さらに、「に基づく」という用語は、特に明記しない限り、「少なくとも部分的に基づく」ことを意味することが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9