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

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

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

特表2022-521891ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム
<>
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図1A
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図1B
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図1C
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図2
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図3
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図4A
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図4B
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図4C
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図5
  • 特表-ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-13
(54)【発明の名称】ポイントクラウドコーディング向けのジオメトリマージモードに関する方法、装置、及びコンピュータプログラム
(51)【国際特許分類】
   G06T 17/00 20060101AFI20220406BHJP
   G06T 9/40 20060101ALI20220406BHJP
【FI】
G06T17/00 500
G06T9/40
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021546771
(86)(22)【出願日】2020-07-10
(85)【翻訳文提出日】2021-08-10
(86)【国際出願番号】 US2020041572
(87)【国際公開番号】W WO2021011363
(87)【国際公開日】2021-01-21
(31)【優先権主張番号】62/873,676
(32)【優先日】2019-07-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/923,609
(32)【優先日】2020-07-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5B057
5B080
【Fターム(参考)】
5B057CA01
5B057CA08
5B057CA13
5B057CA16
5B057CE06
5B057CG07
5B057CH07
5B057CH09
5B057DB03
5B057DB06
5B057DB09
5B080AA17
5B080BA00
5B080CA00
5B080FA02
5B080GA00
(57)【要約】
ポイントクラウドコーディング(PCC)向けのジオメトリマージモードの方法は、少なくとも1つのプロセッサによって実行され、当該方法は、ポイントクラウドのオクツリー分割の現在ノードについて、オクツリー分割の候補ノードを取得することを含み、現在ノードは現在符号化されており、候補ノードは先に符号化されている。当該方法は更に、取得した候補ノードの占有コードを取得し、候補ノードの取得した占有コードを含む候補リストを構築し、構築した候補リストに基づいて現在ノードの占有コードを取得し、そして、現在ノードの取得した占有コードに基づいてPCCを実行することを含む。
【特許請求の範囲】
【請求項1】
ポイントクラウドコーディング(PCC)向けのジオメトリマージモードの方法であって、当該方法は、少なくとも1つのプロセッサによって実行され、当該方法は、
ポイントクラウドのオクツリー分割の現在ノードについて、前記オクツリー分割の候補ノードを取得するステップであり、前記現在ノードは現在符号化されており、前記候補ノードは先に符号化されている、ステップと、
前記取得した候補ノードの占有コードを取得するステップと、
前記候補ノードの前記取得した占有コードを有する候補リストを構築するステップと、
前記構築した候補リストに基づいて前記現在ノードの占有コードを取得するステップと、
前記現在ノードの前記取得した占有コードに基づいて前記PCCを実行するステップと、
を有する、方法。
【請求項2】
前記候補ノードは、前記現在ノードに空間的に隣接し、且つ前記オクツリー分割のうちの前記現在ノードと同じ深さにある、請求項1に記載の方法。
【請求項3】
前記候補ノードは、予め決められており、前記現在ノードに空間的に隣接せず、且つ前記オクツリー分割のうちの前記現在ノードと同じ深さにある、請求項1に記載の方法。
【請求項4】
前記候補ノードは、前記現在ノードの親ノード又は祖父母ノードである、請求項1に記載の方法。
【請求項5】
前記候補ノードは、前記現在ノードを含む現在符号化されているフレームの前の、先に符号化されたフレーム内にある、請求項1に記載の方法。
【請求項6】
前記候補ノードは、所定のテーブルから取得される、請求項1に記載の方法。
【請求項7】
当該方法は更に、前記ジオメトリマージモードが有効にされることをフラグが指し示しているかを決定するステップを有し、
前記候補ノードは、前記ジオメトリマージモードが有効にされることを前記フラグが指し示していると決定されたことに基づいて取得される、
請求項1に記載の方法。
【請求項8】
前記候補リストは、所定の最大サイズを有するように構築され、
前記ジオメトリマージモードは、前記オクツリー分割のうちの1つ以上の所定の深さに対して有効にされる、
請求項7に記載の方法。
【請求項9】
当該方法は更に、
前記現在ノードの前記取得した占有コードと前記現在ノードの最終的な占有コードとの間の差がイネーブルであることをフラグが指し示しているかを決定するステップと、
前記差がイネーブルであることを前記フラグが指し示していると決定されたことに基づいて、前記現在ノードの前記取得した占有コードを修正するステップと、
を有し、
前記PCCは、前記現在ノードの前記修正した占有コードに基づいて実行される、
請求項1に記載の方法。
【請求項10】
ポイントクラウドコーディング(PCC)向けのジオメトリマージモードに関する装置であって、当該装置は、
プログラムコードを格納するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み出し、前記プログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサと、
を有し、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、ポイントクラウドのオクツリー分割の現在ノードについて、前記オクツリー分割の候補ノードを取得させるように構成された第1の取得コードであり、前記現在ノードは現在符号化されており、前記候補ノードは先に符号化されている、第1の取得コードと、
前記少なくとも1つのプロセッサに、前記取得した候補ノードの占有コードを取得させるように構成された第2の取得コードと、
前記少なくとも1つのプロセッサに、前記候補ノードの前記取得した占有コードを有する候補リストを構築させるように構成された構築コードと、
前記少なくとも1つのプロセッサに、前記構築した候補リストに基づいて前記現在ノードの占有コードを取得させるように構成された第3の取得コードと、
前記少なくとも1つのプロセッサに、前記現在ノードの前記取得した占有コードに基づいて前記PCCを実行させるように構成された実行コードと、
を有する、
装置。
【請求項11】
前記候補ノードは、前記現在ノードに空間的に隣接し、且つ前記オクツリー分割のうちの前記現在ノードと同じ深さにある、請求項10に記載の装置。
【請求項12】
前記候補ノードは、予め決められており、前記現在ノードに空間的に隣接せず、且つ前記オクツリー分割のうちの前記現在ノードと同じ深さにある、請求項10に記載の装置。
【請求項13】
前記候補ノードは、前記現在ノードの親ノード又は祖父母ノードである、請求項10に記載の装置。
【請求項14】
前記候補ノードは、前記現在ノードを含む現在符号化されているフレームの前の、先に符号化されたフレーム内にある、請求項10に記載の装置。
【請求項15】
前記候補ノードは、所定のテーブルから取得される、請求項10に記載の装置。
【請求項16】
前記プログラムコードは更に、
前記少なくとも1つのプロセッサに、前記ジオメトリマージモードが有効にされることをフラグが指し示しているかを決定させるように構成された決定コード、
を有し、
前記候補ノードは、前記ジオメトリマージモードが有効にされることを前記フラグが指し示していると決定されたことに基づいて取得される、
請求項10に記載の装置。
【請求項17】
前記候補リストは、所定の最大サイズを有するように構築され、
前記ジオメトリマージモードは、前記オクツリー分割のうちの1つ以上の所定の深さに対して有効にされる、
請求項16に記載の装置。
【請求項18】
前記プログラムコードは更に、
前記少なくとも1つのプロセッサに、前記現在ノードの前記取得した占有コードと前記現在ノードの最終的な占有コードとの間の差がイネーブルであることをフラグが指し示しているかを決定させるように構成された決定コードと、
前記少なくとも1つのプロセッサに、前記差がイネーブルであることを前記フラグが指し示していると決定されたことに基づいて、前記現在ノードの前記取得した占有コードを修正させるように構成された修正コードと、
を有し、
前記PCCは、前記現在ノードの前記修正した占有コードに基づいて実行される、
請求項10に記載の装置。
【請求項19】
コンピュータに請求項1乃至9のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、米国特許商標庁に、2019年7月12日に出願された米国仮特許出願第62/873,676号、及び2020年7月8日に出願された米国特許出願第16/923,609号からの優先権を主張するものであり、それらの開示をそれらの全体にてここに援用する。
【背景技術】
【0002】
近年、ポイントクラウドが広く使用されている。例えば、それは、物体の検出及び位置特定のための自律運転車両で使用され、地図作製のために地理情報システム(geographic information system;GIS)で使用され、また、文化遺産の物体やコレクションを視覚化及びアーカイブするために文化遺産で使用される。
【0003】
ポイントクラウドは、例えば三次元(3D)ポイントといった高次元ポイントの集合を含み、各ポイントが、3D位置情報と、例えば色、反射率などの追加の属性とを含む。高次元ポイントは、様々なセットアップにある複数のカメラ及び深さセンサ又はライダー(Lidar)を使用して捕捉されることができ、元のシーンを現実のもののように表現するために数千から数十億もの点で構成され得る。
【0004】
より高速な伝送又はストレージの低減のために、ポイントクラウドを表現するのに使用されるデータの量を減らすべく、圧縮技術が使用される。ISO(国際標準化機構)/IEC(国際電気技術委員会) MPEG (ムービングピクチャエキスパートグループ)(JTC1/SC29/WG11)は、静的又は動的なクラウド向けの圧縮技術を標準化するために、アドホックグループMPEG-PCC(ポイントクラウドコーディング)を作り出した。
【0005】
MPEGにおけるテストモデル13(TMC13)でのポイントクラウド圧縮
TMC13モデルでは、ジオメトリ情報と、例えば色及び反射率などの関連付けられた属性とが、別々に圧縮される。ポイントクラウドの3D座標を含むものであるジオメトリ情報は、その占有情報を用いたオクツリー(八分木)分割によって符号化される。そして、属性は、予測、リフティング及び領域適応階層変換技法を用いて、再構成されたジオメトリに基づいて圧縮される。オクツリー分割及び占有符号化プロセスを以下に詳述する。
【0006】
オクツリー分割
図1Aは、3D空間におけるオクツリー分割の図である。
【0007】
図1Aを参照するに、TMC13では、オクツリージオメトリコーデックが使用される場合、ジオメトリ符号化は以下のように進む。先ず、立方軸アライメントされた境界ボックスBが2つのポイント(0,0,0)及び(2,2,2)によって規定され、ここで、2がBのサイズを定め、dはビットストリームにエンコードされる。
【0008】
次いで、Bを再帰的に細分化することによって、オクツリー構造が構築される。各段階で、立方体が8個のサブ立方体に細分化される。そして、各サブキューブに、それがポイントを含むか(すなわち、フルであり、値1を持つ)又は含まないか(すなわち、エンプティであり、値0を持つ)を指し示す1ビット値を関連付けることによって、占有コードという名の8ビットコードが生成される。1よりも大きいサイズ(すなわち、非ボクセル)を持つフルのサブキューブのみが更に細分化される。
【0009】
図1Bは、オクツリー分割及びそのツリー構造の図である。
【0010】
図1Bを参照するに、2階層のオクツリー分割及び対応する占有コードの一例が示されている。陰影を付けられた立方体及びノードは、それらがポイントによって占有されていることを指し示す。
【0011】
占有コードの符号化
そして、算術エンコーダによって各ノードについて占有コードが圧縮される。占有コードは、8ビット整数であるSとして表記されることができ、Sの各ビットが、各子ノードの占有状態を指し示す。TMC13には、占有コードに関する2つの符号化方法、すなわち、ビットごとの符号化及びバイトごとの符号化が存在し、デフォルトではビットごとの符号化が有効にされる。
【0012】
ビットごとの符号化では、Sの8つのビンが、現在ノードの同一階層内にある隣接ノードと隣接ノードの子ノードとの占有状態を参照することによって各ビンが符号化される順序で符号化される。
【0013】
バイトごとの符号化では、N個(例えば、32個)の最も頻繁な占有コードを追跡するものである適応ルックアップテーブル(adaptive look up table;A-LUT)と、最後に観測されたM個(例えば、16個)の占有コードを追跡するキャッシュとを参照することによって、Sが符号化される。
【0014】
SがA-LUT内にあるか否かを指し示すバイナリ情報が符号化される。SがA-LUT内にある場合、A-LUTにおけるインデックスが、バイナリ算術エンコーダを用いて符号化される。SがA-LUT内にない場合、Sがキャッシュ内にあるか否かを指し示すバイナリ情報が符号化される。Sがキャッシュ内にある場合、そのインデックスのバイナリ表現がバイナリ算術エンコーダを用いて符号化される。そうでなく、Sがキャッシュ内にない場合、Sのバイナリ表現がバイナリ算術エンコーダを用いて符号化される。
【0015】
復号プロセスは、ビットストリームから境界ボックスBの寸法を構文解析することによって開始する。次いで、復号された占有コードに従ってBを細分化することによって、同じオクツリー構造が構築される。
【0016】
現行のTMC13設計において、占有コードSは、デフォルトでビットごとの符号化によって符号化され、Sの各ビンが別々に符号化される。Sの各ビンを符号化するときに、隣接する符号化ノードの占有状態がコンテキストモデリングのために使用されるが、隣接する符号化ノードの構造情報は完全には利用されていない。
【0017】
図1Cは、占有コードの反復パターンを二次元(2D)で作成する反復ライン構造の図である。
【0018】
図1Cを参照するに、3つの対角線方向の破線が2D空間で観察され、表すポイントはこれらの線に沿って位置する。結果として、ノードの占有状態は、占有コードが空間を横切って繰り返しとなる明確な構造を示す。しかしながら、現行のTMC13は、占有コードにおけるこの構造的類似性を十分に利用していない。
【発明の概要】
【0019】
実施形態によれば、ポイントクラウドコーディング(PCC)向けのジオメトリマージモードの方法は、少なくとも1つのプロセッサによって実行され、当該方法は、ポイントクラウドのオクツリー分割の現在ノードについて、オクツリー分割の候補ノードを取得することを含み、現在ノードは現在符号化されており、候補ノードは先に符号化されている。当該方法は更に、取得した候補ノードの占有コードを取得し、候補ノードの取得した占有コードを含む候補リストを構築し、構築した候補リストに基づいて現在ノードの占有コードを取得し、そして、現在ノードの取得した占有コードに基づいてPCCを実行することを含む。
【0020】
実施形態によれば、ポイントクラウドコーディング(PCC)向けのジオメトリマージモードに関する装置は、プログラムコードを格納するように構成された少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサに、ポイントクラウドのオクツリー分割の現在ノードについて、オクツリー分割の候補ノードを取得させるように構成された第1の取得コードを含み、現在ノードは現在符号化されており、候補ノードは先に符号化されている。プログラムコードは更に、少なくとも1つのプロセッサに、取得した候補ノードの占有コードを取得させるように構成された第2の取得コードと、少なくとも1つのプロセッサに、候補ノードの取得した占有コードを含む候補リストを構築させるように構成された構築コードと、少なくとも1つのプロセッサに、構築した候補リストに基づいて現在ノードの占有コードを取得させるように構成された第3の取得コードと、少なくとも1つのプロセッサに、現在ノードの取得した占有コードに基づいてPCCを実行させるように構成された実行コードとを含む。
【0021】
実施形態によれば、非一時的なコンピュータ読み取り可能媒体は命令を格納し、該命令は、ポイントクラウドコーディング(PCC)向けのジオメトリマージモードに関する装置の少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、ポイントクラウドのオクツリー分割の現在ノードについて、オクツリー分割の候補ノードを取得させ、現在ノードは現在符号化されており、候補ノードは先に符号化されている。命令は更に、少なくとも1つのプロセッサに、取得した候補ノードの占有コードを取得させ、候補ノードの取得した占有コードを含む候補リストを構築させ、構築した候補リストに基づいて現在ノードの占有コードを取得させ、現在ノードの取得した占有コードに基づいてPCCを実行させる。
【図面の簡単な説明】
【0022】
図1A】3D空間におけるオクツリー分割の図である。
図1B】オクツリー分割及びそのツリー構造の図である。
図1C】占有コードの反復パターンを2Dで作成する反復ライン構造の図である。
図2】実施形態に従った、ここに記載される方法、装置、及びシステムが実装され得る環境の図である。
図3図2の1つ以上の装置のコンポーネント例のブロック図である。
図4A】実施形態に従ったG-PCC圧縮器の機能ブロック図である。
図4B】実施形態に従ったG-PCC解凍器の機能ブロック図である。
図4C】実施形態に従った、同じ深さにある隣接及び非隣接候補ノードの図である。
図5】実施形態に従った、PCC向けのジオメトリマージモードの方法のフローチャートである。
図6】実施形態に従った、PCC向けのジオメトリマージモードに関する装置の方法のブロック図である。
【発明を実施するための形態】
【0023】
本開示は、PCCにおけるジオメトリ圧縮に関する。方法において、現在ノードの占有コードが、既に符号化されたノードから導出又は予測され得る。符号化モードのシグナリング(信号伝達)についても、この開示にて詳述する。
【0024】
詳細には、新しい占有コード符号化方法(すなわち、マージモード)を提示する。現在ノードの占有コードを、既に符号化されたノードから導出又は予測することができる。構築された候補リストへのインデックスをシグナリングすることにより、各ビンを符号化することなく、現在ノードの占有コードを候補リストから直接導出することができる。あるいは、現在ノードの占有コードと参照された占有コードとの間の差を更にシグナリングすることができる。候補リスト構築方法及びマージモード信号伝達方法を、以下にて詳述する。
【0025】
図2は、実施形態に従った、ここに記載される方法、装置及びシステムが実装され得る環境200の図である。図2に示すように、環境200は、ユーザ装置210、プラットフォーム220、及びネットワーク230を含み得る。環境200の装置は、有線接続、無線接続、又は有線接続と無線接続との組み合わせ、を介して相互接続し得る。
【0026】
ユーザ装置210は、プラットフォーム220に関連する情報を受信、生成、格納、処理、及び/又は提供することができる1つ以上の装置を含む。例えば、ユーザ装置210は、コンピューティング装置(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブル装置(例えば、一対のスマートグラス又はスマートウォッチ)、又は類似の装置を含み得る。一部の実装において、ユーザ装置210は、プラットフォーム220から情報を受信し及び/又はプラットフォーム220に情報を送信し得る。
【0027】
プラットフォーム220は、この中の別の箇所で説明されるような1つ以上の装置を含む。一部の実装において、プラットフォーム220は、クラウドサーバ又は一群のクラウドサーバを含み得る。一部の実装において、プラットフォーム220は、ソフトウェアコンポーネントがスワップイン又はスワップアウトされ得るよう、モジュール式であるように設計され得る。そのようなものとして、プラットフォーム220は、異なる使用のために容易に且つ/或いは迅速に再構成されることができる。
【0028】
一部の実装において、図示のように、プラットフォーム220は、クラウドコンピューティング環境222内でホストされ得る。特に、ここに記載される実装は、プラットフォーム220をクラウドコンピューティング環境222内でホストされるものとして記述するが、一部の実装では、プラットフォーム220は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外で実装されてもよく)、あるいは、部分的にクラウドベースであってもよい。
【0029】
クラウドコンピューティング環境222は、プラットフォーム220をホストする環境を含む。クラウドコンピューティング環境222は、プラットフォーム220をホストするシステム及び/又は装置の物理的な位置及び構成に関するエンドユーザ(例えば、ユーザ装置210)知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供し得る。図示のように、クラウドコンピューティング環境222は、一群の計算リソース224(まとめて“計算リソース群224”と称し、個々に“計算リソース224”と称する)を含み得る。
【0030】
計算リソース224は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバ装置、又は他の種類の計算及び/又は通信装置を含む。一部の実装において、計算リソース224はプラットフォーム220をホストし得る。クラウドリソースは、計算リソース224において実行される計算インスタンス、計算リソース224内で提供されるストレージ装置、計算リソース224によって提供されるデータ転送装置などを含み得る。一部の実装において、計算リソース224は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して、他の計算リソース224と通信し得る。
【0031】
図2に更に示すように、計算リソース224は、例えば、1つ以上のアプリケーション(“APP”)224-1、1つ以上の仮想マシン(“VM”)224-2、仮想化ストレージ(“VS”)224-3、1つ以上のハイパーバイザ(“HYP”)224-4、又はこれらに類するものなどの、一群のクラウドリソースを含む。
【0032】
アプリケーション224-1は、ユーザ装置210及び/又はプラットフォーム220に提供され又はそれらによってアクセスされ得る1つ以上のソフトウェアアプリケーションを含む。アプリケーション224-1は、ユーザ装置210上にソフトウェアアプリケーションをインストールして実行する必要をなくし得る。例えば、アプリケーション224-1は、プラットフォーム220に関連するソフトウェア、及び/又はクラウドコンピューティング環境222を介して提供されることが可能な任意の他のソフトウェアを含み得る。一部の実装において、1つのアプリケーション224-1が、仮想マシン224-2を介して、1つ以上の他のアプリケーション224-1に/から情報を送信/受信し得る。
【0033】
仮想マシン224-2は、物理的なマシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン224-2は、仮想マシン224-2による何らかの実マシンへの対応の程度及び用途に応じて、システム仮想マシン又はプロセス仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(“OS”)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは、単一のプログラムを実行することができ、単一のプロセスをサポートし得る。一部の実装において、仮想マシン224-2は、ユーザ(例えば、ユーザ装置210)の代わりに実行を行うことができ、例えばデータ管理、同期、又は長時間データ転送など、クラウドコンピューティング環境222のインフラストラクチャを管理することができる。
【0034】
仮想化ストレージ224-3は、計算リソース224のストレージシステム又は装置の中で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上の装置を含む。一部の実装において、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化は、物理的なストレージ又は異種構造に関係なくストレージシステムがアクセスされ得るようにする、論理ストレージの物理ストレージからの抽象化(又は分離)を指すとし得る。この分離は、管理者がエンドユーザのためにストレージを管理する方法における柔軟性をストレージシステムの管理者に許すことができる。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に格納される場所との間の依存関係を排除し得る。これは、ストレージ使用の最適化、サーバ統合、及び/又は中断のないファイル移動の実行を可能にし得る。
【0035】
ハイパーバイザ224-4は、例えば計算リソース224などのホストコンピュータ上で複数のオペレーティングシステム(例えば、“ゲストオペレーティングシステム”)が同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ224-4は、ゲストオペレーティングシステムに対して仮想オペレーティングプラットフォームを提示することができ、ゲストオペレーティングシステムの実行を管理することができる。多様なオペレーティングシステムの複数のインスタンスが、仮想化ハードウェアリソースを共有し得る。
【0036】
ネットワーク230は、1つ以上の有線ネットワーク及び/又は無線ネットワークを含み得る。例えば、ネットワーク230は、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話ネットワーク(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、若しくはこれらに類するもの、及び/又はこれら若しくは他のタイプのネットワークの組み合わせを含み得る。
【0037】
図2に示した装置及びネットワークの数及び構成は、一例として提供されている。実際には、図2に示したものに対して、追加の装置及び/又はネットワーク、より少ない装置及び/又はネットワーク、異なる装置及び/又はネットワーク、又は異なる構成の装置及び/又はネットワークが存在し得る。また、図2に示した2つ以上の装置が単一の装置内に実装されてもよいし、あるいは、図2に示した単一の装置が複数の分散された装置として実装されてもよい。加えて、あるいは代わりに、環境200の装置のセット(例えば、1つ以上の装置)が、環境200の装置の別のセットによって実行されるとして記載された1つ以上の機能を実行してもよい。
【0038】
図3は、図2の1つ以上の装置のコンポーネント例のブロック図である。装置300は、ユーザ装置210及び/又はプラットフォーム220に対応し得る。図3に示すように、装置300は、バス310、プロセッサ320、メモリ330、ストレージコンポーネント340、入力コンポーネント350、出力コンポーネント360、及び通信インタフェース370を含み得る。
【0039】
バス310は、装置300のコンポーネント間での通信を可能にするコンポーネントを含む。プロセッサ320は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ320は、中央演算処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、アクセラレーテッドプロセッシングユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他のタイプの処理コンポーネントである。一部の実装において、プロセッサ320は、機能を実行するようにプログラムされることが可能な1つ以上のプロセッサを含む。メモリ330は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、及び/又は、プロセッサ320による使用のための情報及び/又は命令を格納する他のタイプの動的又は静的な記憶デバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光メモリ)を含む。
【0040】
ストレージコンポーネント340は、装置300の動作及び使用に関係する情報及び/又はソフトウェアを格納する。例えば、ストレージコンポーネント340は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク(登録商標)、カートリッジ、磁気テープ、及び/又は他のタイプの非一時的なコンピュータ読み取り可能媒体を、対応するドライブと共に含み得る。
【0041】
入力コンポーネント350は、装置300が、例えばユーザ入力を介してなどで、情報を受信することを可能にするコンポーネントを含む(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)。加えて、あるいは代わりに、入力コンポーネント350は、情報をセンシングするセンサ(例えば、グローバルポジショニングシステム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでもよい。出力コンポーネント360は、装置300からの出力情報を提供するコンポーネントを含む(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))。
【0042】
通信インタフェース370は、装置300が、例えば有線接続、無線接続、又は有線接続と無線接続との組み合わせを介してなどで、他の装置と通信することを可能にするトランシーバのようなコンポーネント(例えば、トランシーバ及び/又は別個の受信器と送信器)を含む。通信インタフェース370は、装置300が他の装置から情報を受信すること及び/又は他の装置に情報を提供することを可能にする。例えば、通信インタフェース370は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラネットワークインタフェース、又はこれらに類するものを含み得る。
【0043】
装置300は、ここに記載される1つ以上のプロセスを実行し得る。装置300は、それらのプロセスを、例えばメモリ330及び/又はストレージコンポーネント340などの非一時的なコンピュータ読み取り可能媒体によって格納されたソフトウェア命令をプロセッサ320が実行することに応答して実行し得る。コンピュータ読み取り可能媒体は、ここでは、非一時的なメモリ装置として定義される。メモリ装置は、単一の物理的記憶装置内の記憶空間を含み、又は複数の物理的記憶装置にわたって広がった記憶空間を含む。
【0044】
ソフトウェア命令が、メモリ330及び/又はストレージコンポーネント340に、他のコンピュータ読み取り可能媒体から又は通信インタフェース370を介して他の装置から読み込まれ得る。メモリ330及び/又はストレージコンポーネント340に格納されたソフトウェア命令は、実行されるときに、プロセッサ320に、ここに記載される1つ以上のプロセスを実行させ得る。加えて、あるいは代わりに、ここに記載される1つ以上のプロセスを実行するために、ソフトウェア命令の代わりに又はそれと組み合わせてハードワイヤード回路が使用されてもよい。従って、ここに記載される実装、ハードウェア回路とソフトウェアとの如何なる特定の組み合わせにも限定されるものではない。
【0045】
図3に示したコンポーネントの数及び構成は、一例として提供されている。実際には、装置300は、図3に示したものに対して、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる構成のコンポーネントを含み得る。加えて、あるいは代わりに、装置300のコンポーネントのセット(例えば、1つ以上のコンポーネント)が、装置300のコンポーネントの別のセットによって実行されるとして記載された1つ以上の機能を実行してもよい。
【0046】
図4は、実施形態に従ったG-PCC圧縮器400の機能ブロック図である。
【0047】
図4Aに示すように、G-PCC圧縮器400は、量子化器405、ポイント除去モジュール410、オクツリー(八分木)エンコーダ415、属性転送モジュール420、LoD生成器425、予測モジュール430、量子化器435、及び算術コーダ440を含む。
【0048】
量子化器405は、入力ポイントクラウド内のポイントの位置を受信する。位置は(x,y,z)座標とし得る。量子化器405は更に、例えばスケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した位置を量子化する。
【0049】
ポイント除去モジュール410は、量子化器405から量子化された位置を受信し、受信した量子化された位置から重複する位置を除去又はフィルタリングする。
【0050】
オクツリーエンコーダ415は、ポイント除去モジュール410からフィルタリングされた位置を受信し、受信したフィルタリングされた位置を、八分木符号化アルゴリズムを用いて、入力ポイントクラウドを表す八分木の占有シンボルへと符号化する。八分木に対応する入力ポイントクラウドの境界ボックスは、任意の3D形状、例えば立方体、とし得る。
【0051】
オクツリーエンコーダ415は更に、受信したフィルタリングされた位置を、フィルタリングされた位置の符号化に基づいて並べ替える。
【0052】
属性転送モジュール420は、入力ポイントクラウド内のポイントの属性を受信する。属性は、例えば、各ポイントの色若しくはRGB値及び/又は反射率を含み得る。属性転送モジュール420は更に、オクツリーエンコーダ415から、並べ替えられた位置を受信する。
【0053】
属性転送モジュール420は更に、受信した並べ替えられた位置に基づいて、受信した属性を更新する。例えば、属性転送モジュール420は、受信した属性に対して、数ある前処理アルゴリズムのうち1つ以上を実行することができ、前処理アルゴリズムは、例えば、受信した属性の重み付け及び平均化、並びに受信した属性からの追加の属性の補間を含む。属性転送モジュール420は更に、更新した属性を予測モジュール430に転送する。
【0054】
LoD生成器425は、オクツリーエンコーダ415から並べ替えられた位置を受信し、受信した並べ替えられた位置に対応するポイントの各々のLoDを取得する。各LoDは一群のポイントであると見なすことができ、それらのポイントの各々の距離に基づいて取得され得る。例えば、ポイントP0、P5、P4及びP2は、LOD0なるLoD内にあるとすることができ、ポイントP0、P5、P4、P2、P1、P6及びP3は、LOD1なるLoD内にあるとすることができ、ポイントP0、P5、P4、P2、P1、P6、P3、P9、P8及びP7は、LOD2なるLoD内にあるとすることができる。
【0055】
予測モジュール430は、属性転送モジュール420から転送された属性を受信するとともに、LoD生成器425から、ポイントの各々の取得されたLoDを受信する。予測モジュール430は、ポイントの各々の受信したLoDに基づく順序で、受信した属性に予測アルゴリズムを適用することにより、受信した属性それぞれの予測残差(値)を取得する。予測アルゴリズムは、例えば、補間、加重平均計算、最近接アルゴリズム及びRDOなどの様々な予測アルゴリズムのうちのいずれかを含み得る。
【0056】
例えば、LOD0なるLoDに含まれるポイントP0、P5、P4及びP2の受信した属性それぞれの予測残差が、LOD1及びLOD2なるLoDに含まれるポイントP1、P6、P3、P9、P8及びP7の受信した属性それぞれの予測残差に先立って、最初に取得され得る。ポイントP2の受信した属性の予測残差は、ポイントP0、P5及びP4の加重平均に基づく距離を計算することによって取得され得る。
【0057】
量子化器435は、予測モジュール430から、取得された予測残差を受信し、例えばスケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した予測残差を量子化する。
【0058】
算術コーダ440は、オクツリーエンコーダ415から占有シンボルを受信するとともに、量子化器435から、量子化された予測残差を受信する。算術コーダ440は、受信した占有シンボル及び量子化された予測残差に対して算術符号化を実行して、圧縮されたビットストリームを得る。算術符号化は、例えば、コンテキスト適応バイナリ算術符号化などの様々なエントロピー符号化アルゴリズムのうちのいずれかを含み得る。
【0059】
図4Bは、実施形態に従ったG-PCC解凍器450の機能ブロック図である。
【0060】
図4Bに示すように、G-PCC解凍器450は、算術デコーダ455、オクツリーデコーダ460、逆量子化器465、LoD生成器470、逆量子化器475、及び逆予測モジュール480を含む。
【0061】
算術デコーダ455は、G-PCC圧縮器400から、圧縮されたビットストリームを受信し、受信した圧縮ビットストリームに対して算術復号を実行して、占有シンボル及び量子化された予測残差を取得する。算術復号は、例えば、コンテキスト適応バイナリ算術復号などの様々なのエントロピー復号アルゴリズムのうちのいずれかを含み得る。
【0062】
オクツリーデコーダ460は、算術デコーダ455から、取得された占有シンボルを受信し、オクツリー復号アルゴリズムを用いて、受信した占有シンボルを量子化された位置へと復号する。
【0063】
逆量子化器465は、オクツリーデコーダ460から量子化された位置を受信し、例えばスケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した量子化された位置を逆量子化して、入力ポイントクラウド内のポイントの再構成された位置を取得する。
【0064】
LoD生成器470は、オクツリーデコーダ460から量子化された位置を受信し、受信した量子化された位置に対応するポイントの各々のLoDを取得する。
【0065】
逆量子化器475は、取得された量子化された予測残差を受信し、例えばスケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した量子化された予測残差を逆量子化して、再構成された予測残差を取得する。
【0066】
逆予測モジュール480は、逆量子化器475から、取得された再構成された予測残差を受信するとともに、LoD生成器470から、ポイントの各々の取得されたLoDを受信する。逆予測モジュール480は、ポイントの各々の受信したLoDに基づく順序で、受信した再構成された予測残差に予測アルゴリズムを適用することにより、受信した再構成された予測残差それぞれの再構成された属性を取得する。予測アルゴリズムは、例えば、補間、加重平均計算、最近接アルゴリズム及びRDOなどの様々な予測アルゴリズムのうちのいずれかを含み得る。再構成された属性は、入力ポイントクラウド内のポイントのものである。
【0067】
次に、PCC向けのジオメトリマージモードに関する方法及び装置を詳細に説明する。この開示は、TMC13ソフトウェア又はMPEG G-PCC標準に限定されず、大抵のPCCシステムに対するソリューションとなり得る。以下の説明において、下線付きの全てのテキストは、最新のMPEG G-PCC標準の仕様における取り得る変更を指し示す。
【0068】
I. マージモード向けの候補リスト構築
このセクションでは、マージモード向けの候補リスト構築方法を提示する。これらの方法は、不一致を回避するよう、エンコーダ(例えば、G-PCC圧縮器400)及びデコーダ(例えば、G-PCC解凍器450)に対して正確に同じように行われ得る。
【0069】
マージモードを有効にするために、現在符号化されているノード(現在符号化ノード)について、候補リストが構築される。候補リストは、既に符号化されたノード又はデフォルトテーブルから導出される利用可能な占有コードで構成される。既に符号化されたノードは、現在のポイントクラウドフレーム(空間参照)内のノードと、先に符号化されたフレーム(時間参照)内のノードとを含む。候補ノードは、現在ノードと同じ分割深さ、又は現在ノードよりも低い分割深さ(すなわち、親ノード及び祖父母ノード)にあることができる。CandList={S,S,…,S}を、既に符号化されたノードから導出されたN個の異なる占有コードを含む構築された候補リストであるとする。1つの候補Siがリストに追加されようとしているとき、Siが既にリスト内にある要素とは異なることを確認するために、すなわち、i≠jの場合にSi≠Sjであることを確認するために、ユニークチェックが実行される。
【0070】
候補リストを埋めるために、占有コードは、現在ノードの前に符号化された全てのノードから導出され得る。以下のセクションにて、実施形態をリストアップする。
【0071】
A. 同じ深さにある空間的に隣接する符号化ノード
候補ノードは、同じ分割深さ内で現在ノードに空間的に隣接する符号化ノードとし得る。候補ノード及び現在ノードは、同じ親ノードからであってもよいし、異なる親ノードからであってもよい。利用可能な候補ノードの位置は、オクツリーノードの符号化順序に依存する。
【0072】
図4Cは、実施形態に従った、同じ深さにある隣接及び非隣接候補ノードの図である。
【0073】
図4Cを参照するに、現在符号化ノードに対する隣接候補ノードは、上で隣接するもの及び左で隣接するものである。
【0074】
一実施形態において、オクツリーノードは、図1Aに示すようなモートン符号によって指定される幅優先順で符号化される。利用可能な候補ノードは、現在ノードの左、下、及び前の隣接ノードを含み、それらの占有コードを、候補リスト、すなわち、CandListに追加することができる。
【0075】
他の一実施形態において、オクツリーノードは、逆モートン符号によって指定される幅優先順で符号化される。利用可能な候補ノードは、現在ノードの右、上及び後ろの隣接ノードを含み、それらの占有コードを、候補リスト、すなわち、CandListに追加することができる。
【0076】
B. 同じ深さにある空間的に隣接しない符号化ノード
候補ノードは、同じ分割深さ内で現在ノードに空間的に隣接しない符号化ノードであってもよい。
【0077】
一実施形態において、最後に観察された異なる占有コードを記録するようにキャッシュが維持される。キャッシュ内の全ての占有コードを、候補リスト、すなわち、CandListに追加することができる。この場合、候補ノードは、現在ノードに対して、隣接していてもよいし、隣接していなくてもよいし、あるいは、遠く離れていてもよい。キャッシュの最大サイズは、固定される、又はビットストリームのヘッダ内で指定される、のいずれかとすることができる。
【0078】
他の一実施形態において、候補ノードは、現在ノードに対して固定された非隣接位置からである。2Dでの図示が図4Cに示されており、非隣接候補ノードからの占有コードを候補リスト、すなわち、CandListに追加することができる。
【0079】
C. 親ノード及び祖父母ノード
候補ノードは、現在ノードの親ノード又は祖父母ノード、すなわち、現在ノードを含むが、より小さい深さを持つノード、であってもよい。
【0080】
一実施形態において、現在ノードの親ノードの占有コードを、候補リスト、すなわち、CandListに追加することができる。
【0081】
他の一実施形態において、現在ノードの親ノード及び祖父母ノードの双方の占有コードを、候補リスト、すなわち、CandListに追加することができる。
【0082】
D. 先行符号化フレーム内のノード
候補ノードは、先行符号化フレーム内であってもよい。先行符号化フレームは、現在フレームに隣接していてもよいし、現在フレームに隣接していなくてもよい。異なるフレーム間参照構造に依存して、先行符号化フレームは、現在フレームよりも小さいタイムスタンプを有することもあるし、大きいタイムスタンプを有することもあり、すなわち、それらは、表示順序に関して現在フレームの前であることもあるし、後ろであることもある。先行符号化フレーム内の全ての占有コードを、候補リスト、すなわち、CandListに追加することができる。
【0083】
一実施形態において、先行符号化フレーム内のコロケートノードの占有コードのみを、候補リスト、すなわち、CandListに追加してもよい。先行符号化フレーム内のコロケートノードは、現在符号化ノードと同じ深さにあり且つ同じモートン符号を持つ。
【0084】
他の一実施形態において、コロケートノードに加えて、先行符号化フレーム内のコロケートノードの隣接ノードの占有コードを、候補リスト、すなわち、CandListに追加してもよい。これら隣接ノードは、先行符号化フレーム内でコロケートノードに隣接していてもよいし、隣接していなくてもよい。
【0085】
他の一実施形態において、コロケートノードに加えて、先行符号化フレーム内のコロケートノードの隣接ノード及び親ノードの占有コードを、候補リスト、すなわち、CandListに追加してもよい。他の一実施形態では、先行符号化フレーム内のコロケートノードの祖父母ノードも候補リストに含めてもよい。
【0086】
他の一実施形態において、ポイントクラウドフレーム同士の間で動き補償が適用される。この場合、現在ノードと同じ深さを持つ先行符号化フレーム内の動きベクトルによって指し示されるノードを、候補リスト、すなわちCandListに追加することができる。
【0087】
E. デフォルト占有コード
デフォルトの占有コードを候補リストに追加することができる。全てのデフォルト占有コードを含むテーブルを維持することができる。
【0088】
一実施形態において、テーブルは、予め定められて固定である。テーブル内の占有コードが、固定順序で候補リストに追加される。
【0089】
他の一実施形態において、テーブルは、各占有コードの頻度に従ってソートされる。従って、占有コードが観察されると常に、テーブルが適応的に更新される。その都度、最も高い頻度を持つ占有コードが候補リストに追加される。
【0090】
以上の実施形態で説明した候補ノードが、候補リストに、該リストがいっぱいになるまで、何らかの順序で追加され得る。構築後、より高い発生確率を持つ占有コードが、より低い確率を持つものの前となることを確保するために、候補リストは発生頻度によって更にソートされ得る。
【0091】
II. マージモードのシグナリング
このセクションでは、マージモードのシグナリング方法を説明する。
【0092】
A. 高水準構文におけるマージモード用シグナリングパラメータ
マージモードで使用されることになるパラメータを、高水準構文でシグナリングすることができる。以下に例を示すが、本開示はこれらの例に限定されるものではなく、他のパラメータも同様にシグナリングすることができる。それらは、ビットストリームのシーケンスヘッダ、スライスヘッダ、又はジオメトリパラメータセット内に規定され得る。
【0093】
第一に、マージモードが有効にされるか、それとも無効にされるかを指し示すフラグをシグナリングすることができる。
【0094】
一実施形態において、TMC13におけるジオメトリパラメータセット内で、表1においてのように、フラグが規定される。
【表1】
【0095】
1に等しいgps_merge_mode_flagは、シーケンス又はスライスに対してマージモードが有効にされることを規定する。0に等しいgps_merge_mode_flagは、シーケンス又はスライスに対してマージモードが無効にされることを規定する。
【0096】
第二に、候補リストの最大サイズすなわちNは、固定である又は構文によって規定されるのいずれかである。
【0097】
一実施形態において、候補リストの最大サイズすなわちNは、表2においてのように、TMC13におけるジオメトリパラメータセット内のmerge_list_max_size_minus_oneによって規定される。
【表2】
【0098】
merge_list_max_size_minus_oneは、式1に示すように候補リストの最大サイズを規定する:
MergeListMaxSize=merge_list_max_size_minus_one+1 (1)
【0099】
他の一実施形態において、候補リストの最大サイズすなわちNは、表3においてのように、TMC13におけるジオメトリパラメータセット内のmerge_list_max_sizeによって規定される。
【表3】
【0100】
merge_list_max_sizeは、式2に示すように候補リストの最大サイズを規定する:
MergeListMaxSize=merge_list_max_size (2)
【0101】
この場合、gps_merge_mode_flagはシグナリングされないが、merge_list_max_sizeの値から推定されることができる。merge_list_max_sizeが0に等しい場合、gps_merge_mode_flagは0であると推定され、そうでない場合には、gps_merge_mode_flagは1であると推定される。
【0102】
第三に、マージモードは、オクツリー分割の特定の深さでのみ有効にされてもよい。従って、1つ又は2つのパラメータを、固定にするか、あるいは、マージモードを可能にする最小及び最大の深さを指し示すためにシグナリングするか、のいずれかとすることができる。
【0103】
一実施形態において、マージモードの最小及び最大の深さは、表4においてのように、TMC13におけるジオメトリパラメータセット内でシグナリングされる。
【表4】
【0104】
merge_min_depthは、マージモードを有効にする最小オクツリー分割深さを規定する。merge_max_depthは、マージモードを有効にする最大オクツリー分割深さを規定する。マージモードは、オクツリー分割深さが規定された範囲内にあるときにのみ有効にされる。
【0105】
他の一実施形態では、表5においてのように、マージモードの最小深さのみが、TMC13におけるジオメトリパラメータセット内でシグナリングされる。
【表5】
【0106】
他の一実施形態では、表6においてのように、マージモードの最大深さのみが、TMC13におけるジオメトリパラメータセット内でシグナリングされる。
【表6】
【0107】
他の一実施形態において、マージモードは、特定のオクツリー分割深さでのみ許される。従って、表7においてのように、深さ数が、TMC13におけるジオメトリパラメータセット内でシグナリングされる。
【表7】
【0108】
merge_present_depthは、マージモードが有効にされるオクツリー分割深さを規定する。
【0109】
第四に、現在ノードの占有コードと候補リストから導出されたものとの間の差を符号化することが有効にされるかを指し示すために、1つのフラグをシグナリングすることができる。
【0110】
一実施形態において、表8においてのように、TMC13におけるジオメトリパラメータセット内でフラグがシグナリングされる。
【表8】
【0111】
gps_merge_signal_diff_flagは、現在ノードの占有コードと候補リストから導出されたものとの差をシグナリングすることが有効にされるかを規定する。
【0112】
B. 差をシグナリングしないでマージモードをシグナリングする
マージモードでは、現在符号化ノードに対してマージモードが有効にされるか、条件がチェックされる。それが有効にされる場合、先ず、現在ノードにマージモードが適用されるかを指し示すための1つのフラグがシグナリングされる。適用される場合、次いで、構築された候補リスト内の、現在ノードの占有コードとして推測される占有コード、を指す1つのインデックスがシグナリングされる。そうでない場合には、バイトごとの符号化方法又はビットごとの符号化方法によって、現在ノードの占有コードがシグナリング及び符号化される。
【0113】
以下の実施形態において、TMC13における構文テーブルへの変更は、表9においてのとおりである。
【表9】
【0114】
1に等しいmerge_mode_flagは、現在ノードにマージモードが適用されることを規定し、候補リストから占有コードが導出される。0に等しいmerge_mode_flagは、現在ノードにマージモードが適用されないことを規定し、占有コードはビットストリーム内に直接符号化される。
【0115】
merge_mode_idxは、候補リストへのインデックスを規定し、故に、現在ノードの占有コードは、Smerge_mode_idxとして推定されることができる。merge_mode_idxは、merge_mode_flagが1であり、且つ候補リストの最大サイズすなわちMergeListMaxSizeが1より大きい場合にのみシグナリングされる。merge_mode_idxは、様々な手法で2値化及び符号化され得る。一実施形態において、それは以下のように符号化される。すなわち、先ず、merge_mode_idxが0に等しいかを指し示す1つのフラグが符号化される。そうでない場合、merge_mode_idxが1に等しいかを指し示す別のフラグが符号化される。そうでない場合、merge_mode_idx-2がExp-Golombコードによって符号化される。
【0116】
変数MergeModeFlagPresentは、現在ノードに対してマージモードが有効にされるかを決める。以下の実施形態のように、異なる条件を設定することができる。
【0117】
一実施形態において、変数MergeModeFlagPresentは、次のように、高水準構文で規定されるgps_merge_mode_flag、merge_min_depth及びmerge_max_depthに依存する:
if(gps_merge_mode_flag && depth>=merge_min_depth && depth<=merge_max_depth)
MergeModeFlagPresent=1
Else
MergeModeFlagPresent=0
【0118】
他の一実施形態において、変数MergeModeFlagPresentは、次のように、高水準構文で規定されるgps_merge_mode_flag及びmerge_min_depthに依存する:
if(gps_merge_mode_flag && depth>=merge_min_depth)
MergeModeFlagPresent=1
else
MergeModeFlagPresent=0
【0119】
他の一実施形態において、変数MergeModeFlagPresentは、次のように、高水準構文で規定されるgps_merge_mode_flag及びmerge_max_depthに依存する:
if(gps_merge_mode_flag && depth<=merge_max_depth)
MergeModeFlagPresent=1
Else
MergeModeFlagPresent=0
【0120】
他の一実施形態において、変数MergeModeFlagPresentは、次のように、高水準構文で規定されるmerge_list_max_sizeに依存する:
if(merge_list_max_size>0)
MergeModeFlagPresent=1
else
MergeModeFlagPresent=0
【0121】
他の一実施形態において、変数MergeModeFlagPresentは、次のように、高水準構文で規定されるgps_merge_mode_flag及びmerge_present_depthに依存する:
if(gps_merge_mode_flag && depth==merge_present_depth)
MergeModeFlagPresent=1
else
MergeModeFlagPresent=0
【0122】
他の一実施形態において、上のパラメータはいずれも規定されず、故に、MergeModeFlagPresentは常に1である。
【0123】
MergeModeFlagPresentの値を決定することには、他の条件及びパラメータが設定されてもよく、上の実施形態に限定されない。
【0124】
C. 差をシグナリングしてマージモードをシグナリングする
加えて、有効にされる場合には、現在ノードの占有コードと候補リスト内のものとの間の差を更にシグナリングすることができる。差をシグナリングするための条件及び制約が設定され得る。
【0125】
一実施形態において、現在ノードの占有コードと候補リスト内のものとの間には、1ビットの差のみが許され、故に、差が生じていることのビットインデックスがシグナリングされる。TMC13における構文テーブルは、表10においてのとおりである。
【表10】
【0126】
merge_signal_diff_flagは、gps_merge_signal_diff_flagが1である場合にシグナリングされる。1に等しいmerge_signal_diff_flagは、現在ノードに1ビット差シグナリングが適用されることを指し示す。0に等しいmerge_signal_diff_flagは、現在ノードに1ビット差シグナリングが適用されないことを指し示す。merge_signal_diff_flagが1である場合、merge_diff_idxがシグナリングされる。
【0127】
merge_diff_idxは、候補リスト内の占有コードからビットが反転されるビット位置を規定する。Smerge_mode_idxがbとして8ビットバイナリ形式で表現されることができる場合、現在ノードの占有コードは、merge_diff_idxによって規定される位置の1ビットだけ修正され、すなわち、bmerge_diff_idx=!bmerge_diff_idxとされる。
【0128】
他の一実施形態において、候補リスト内の導出された占有コードから2ビットを反転させることができる。TMC13における構文テーブルは、表11においてのとおりである。
【表11】
【0129】
merge_diff_idx_oneは、占有コード内の第1の異なるビット位置を規定する。1に等しいmerge_signal_second_diff_flagは、第2のビット差が存在することを規定する。0に等しいmerge_signal_second_diff_flagは、第2番目のビット差が存在しないことを規定する。merge_signal_second_diff_flagが1に等しい場合、merge_diff_idx_twoが、占有コード内の第2の異なるビット位置を規定する。Smerge_mode_idxがbとして8ビットバイナリ形式で表現されることができる場合、現在ノードの占有コードは、merge_diff_idx_one及びmerge_diff_idx_twoによって規定される位置の1ビット又は2ビットだけ修正され、すなわち、bmerge_diff_idx_one=!bmerge_difff_idx_one、bmerge_diff_idx_two=!bmerge_diff_idx_twoとされる。
【0130】
図5は、実施形態に従った、PCC向けのジオメトリマージモードの方法500のフローチャートである。一部の実装において、図5の1つ以上のプロセスブロックは、プラットフォーム220によって実行され得る。一部の実装において、図5の1つ以上のプロセスブロックは、例えばユーザ装置210などの、プラットフォーム220とは別個の又はそれを含んだ別の装置又は装置群によって実行されてもよい。
【0131】
図5に示すように、動作510にて、方法500は、ジオメトリマージモードが有効にされることをフラグが指し示しているかを決定することを含む。ジオメトリマージモードが有効にされることをフラグが指し示していると決定されたことに基づいて、方法500は動作520に続く。そうでなければ、方法500は終了する。
【0132】
動作520にて、方法500は、ポイントクラウドのオクツリー分割の現在ノードについて、オクツリー分割の候補ノードを取得することを含み、現在ノードは現在符号化されており、候補ノードは先に符号化されている。
【0133】
動作530にて、方法500は、取得した候補ノードの占有コードを取得することを含む。
【0134】
動作540にて、方法500は、候補ノードの取得した占有コードを含む候補リストを構築することを含む。
【0135】
動作550にて、方法500は、構築した候補リストに基づいて現在ノードの占有コードを取得することを含む。
【0136】
動作560にて、方法500は、現在ノードの取得した占有コードに基づいてPCCを実行することを含む。
【0137】
候補ノードは、現在ノードに空間的に隣接していてもよく、且つオクツリー分割のうちの現在ノードと同じ深さにある。
【0138】
候補ノードは、予め決められていてもよく、現在ノードに空間的に隣接せず、且つオクツリー分割のうちの現在ノードと同じ深さにある。
【0139】
候補ノードは、現在ノードの親ノード又は祖父母ノードとし得る。
【0140】
候補ノードは、現在ノードを含む現在符号化されているフレームの前の、先に符号化されたフレーム内にあるとしてもよい。
【0141】
候補ノードは、所定のテーブルから取得され得る。
【0142】
候補リストは、所定の最大サイズを有するように構築されることができ、ジオメトリマージモードは、オクツリー分割のうちの1つ以上の所定の深さに対して有効にされ得る。
【0143】
方法500は更に、現在ノードの取得した占有コードと現在ノードの最終的な占有コードとの間の差がイネーブルであることをフラグが指し示しているかを決定することと、差がイネーブルであることをフラグが指し示していると決定されたことに基づいて、現在ノードの取得した占有コードを修正することとを含み得る。PCCは、現在ノードの修正された占有コードに基づいて実行され得る。
【0144】
図5は、方法500のブロック例を示しているが、一部の実装において、方法500は、図5に示されたものに対して、追加のブロック、より少ないブロック、異なるブロック、又は異なるように編成されたブロックを含んでもよい。加えて、あるいは代わりに、方法500のブロックのうちの2つ以上が並行して実行されてもよい。
【0145】
図6は、実施形態に従った、PCC向けのジオメトリマージモードに関する装置600の図である。図6に示すように、装置600は、第1の取得コード610、第2の取得コード620、構築コード630、第3の取得コード640、及び実行コード650を含む。
【0146】
第1の取得コード610は、少なくとも1つのプロセッサに、ポイントクラウドのオクツリー分割の現在ノードについて、オクツリー分割の候補ノードを取得させるように構成され、現在ノードは現在符号化されており、候補ノードは先に符号化されている。
【0147】
第2の取得コード620は、上記少なくとも1つのプロセッサに、取得した候補ノードの占有コードを取得させるように構成される。
【0148】
構築コード630は、上記少なくとも1つのプロセッサに、候補ノードの取得した占有コードを含む候補リストを構築させるように構成される。
【0149】
第3の取得コード640は、上記少なくとも1つのプロセッサに、構築した候補リストに基づいて現在ノードの占有コードを取得させるように構成される。
【0150】
実行コード650は、上記少なくとも1つのプロセッサに、現在ノードの取得した占有コードに基づいてPCCを実行させるように構成される。
【0151】
候補ノードは、現在ノードに空間的に隣接していてもよく、且つオクツリー分割のうちの現在ノードと同じ深さにある。
【0152】
候補ノードは、予め決められていてもよく、現在ノードに空間的に隣接せず、且つオクツリー分割のうちの現在ノードと同じ深さにある。
【0153】
候補ノードは、現在ノードの親ノード又は祖父母ノードとし得る。
【0154】
候補ノードは、現在ノードを含む現在符号化されているフレームの前の、先に符号化されたフレーム内にあるとしてもよい。
【0155】
候補ノードは、所定のテーブルから取得され得る。
【0156】
装置600は更に、上記少なくとも1つのプロセッサに、ジオメトリマージモードが有効にされることをフラグが指し示しているかを決定させるように構成された決定コード660、を含み得る。候補ノードは、ジオメトリマージモードが有効にされることをフラグが指し示していると決定されたことに基づいて取得され得る。
【0157】
候補リストは、所定の最大サイズを有するように構築されることができ、ジオメトリマージモードは、オクツリー分割のうちの1つ以上の所定の深さに対して有効にされ得る。
【0158】
決定コード660は更に、上記少なくとも1つのプロセッサに、現在ノードの取得した占有コードと現在ノードの最終的な占有コードとの間の差がイネーブルであることをフラグが指し示しているかを決定させるように構成されてもよい。装置600は更に、上記少なくとも1つのプロセッサに、差がイネーブルであることをフラグが指し示していると決定されたことに基づいて、現在ノードの取得した占有コードを修正させるように構成された修正コード670を含み得る。PCCは、現在ノードの修正された占有コードに基づいて実行され得る。
【0159】
以上の開示は、例示及び説明を提供するものであり、網羅的であること、又は開示されたままの形態に実装を限定することを意図するものではない。変更及び変形が、以上の開示に照らして可能であり、又は実装の実施から習得され得る。
【0160】
ここで使用されるとき、コンポーネントなる用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせとして広く解釈されることが意図される。
【0161】
明らかになることには、ここに記載されたシステム及び/又は方法は、様々な形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装され得る。これらのシステム及び/又は方法を実装するのに使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実装の限定となるものではない。従って、ここでは、システム及び/又は方法の動作及び挙動を、特定のソフトウェアコードを参照することなく記述しており、理解されることには、ここでの記載に基づくシステム及び/又は方法を実装するように、ソフトウェア及びハードウェアが設計され得る。
【0162】
複数の機構の組み合わせが請求項に記載され且つ/或いは明細書に開示されているとしても、それらの組み合わせは、可能な実装の開示を限定することを意図するものではない。実際、それらの機構のうち多くは、具体的には請求項に記載され且つ/或いは明細書に開示されたものではないように組み合わされることができる。以下に挙げられる各従属請求項は1つのクレームのみに直接的に従属することがあるが、可能な実装の開示は、各従属請求項を、請求項セット内のあらゆる他のクレームとの組み合わせで含む。
【0163】
ここで使用される如何なる要素、行為、又は命令も、そのように明示的に記載されない限り、重要又は必須であるとして解釈されないとし得る。また、ここで使用されるとき、冠詞“a”及び“an”は、1つ以上のアイテムを含むことを意図しており、“1つ以上の”と交換可能に使用され得る。さらに、ここで使用されるとき、用語“セット”は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムとの組み合わせなど)を含むことを意図しており、“1つ以上”と交換可能に使用され得る。1つのアイテムのみが意図される場合には、用語“1つの”又は類似の言葉が使用される。また、ここで使用されるとき、用語“持つ”、“有する”、“持っている”などは、オープンエンドの用語であることを意図している。さらに、“に基づく”という言い回しは、明示的に別の断りがない限り、“少なくとも部分的に基づく”を意味することを意図している。
図1A
図1B
図1C
図2
図3
図4A
図4B
図4C
図5
図6
【国際調査報告】