(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-16
(45)【発行日】2023-03-27
(54)【発明の名称】点群圧縮のための変換係数のアルファベットパーティションコーディングの方法及び装置並びにプログラム
(51)【国際特許分類】
G06T 9/00 20060101AFI20230317BHJP
H03M 7/40 20060101ALI20230317BHJP
H04N 19/13 20140101ALI20230317BHJP
H04N 19/597 20140101ALI20230317BHJP
【FI】
G06T9/00 100
H03M7/40
H04N19/13
H04N19/597
(21)【出願番号】P 2021557680
(86)(22)【出願日】2021-01-07
(86)【国際出願番号】 US2021012527
(87)【国際公開番号】W WO2021142141
(87)【国際公開日】2021-07-15
【審査請求日】2021-09-27
(32)【優先日】2020-01-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-12-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イエア,セフーン
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特表2019-521417(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00- 9/40
H04N 19/00-19/98
H03M 7/40- 7/44
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される、点群係数コーディングの方法であって、
点群データに関連する変換係数をセットインデックス値及びシンボルインデックス値に分解するステップであって、前記シンボルインデックス値は変換係数の位置を特定する、ステップと、
分解された前記変換係数を、前記セットインデックス値及び前記シンボルインデックス値に基づいて、1つ以上のセットに区画化するステップと、
区画化された前記変換係数の前記セットインデックス値をエントロピーコーディングするステップと、
区画化された前記変換係数の前記シンボルインデックス値をバイパスコーディングするステップと、
エントロピーコーディングされた前記セットインデックス値及びバイパスコーディングされたシンボルインデックス値に基づいて、前記点群データを圧縮するステップと、
を含む方法。
【請求項2】
前記シンボルインデックス値及び前記セットインデックス値は、シグナリングされており、エンコーダとデコーダとの間で共有されている1つ以上のアルファベットパーティションタイプに基づ
いて関連する境界値を有するアルファベットパーティションを示す、
請求項1
記載の方法。
【請求項3】
前記1つ以上のアルファベットパーティションタイプは、前記変換係数に対応する1つ以上の詳細レベル層に使用される、
請求項
2記載の方法。
【請求項4】
前記1つ以上のアルファベットパーティションタイプは、前記変換係数の量子化に基づく1つ以上の量子化パラメータに使用される、
請求項
2記載の方法。
【請求項5】
前記1つ以上のアルファベットパーティションタイプは、前記変換係数間の相関に基づく、信号対雑音比スケーラブルコーディングのために
スケーラビリティ
の異なる層に使用される、
請求項
2記載の方法。
【請求項6】
前記セットインデックス値は、マルチシンボル算術コーディングによってコーディングされる、
請求項1乃至
5いずれか1項記載の方法。
【請求項7】
点群係数コーディングのための装置であって、
コンピュータプログラムコードを格納するように構成された少なくとも1つのメモリと、
前記少なくとも1つのメモリにアクセスし、前記コンピュータプログラムコードにしたがって動作するように構成された少なくとも1つのプロセッサと、
を備える装置であって、
前記コンピュータプログラム
コードは、
請求項1乃至
6いずれか1項記載の方法を実行するように構成されている、装置。
【請求項8】
命令を含むコンピュータプログラムであって、前記命令は少なくとも1つのプロセッサに、
請求項1乃至
6いずれか1項記載の方法を実行させる、ように構成されている、
プログラム。
【請求項9】
少なくとも1つのプロセッサによって実行される、点群係数デコーディングの方法であって、
コーディングされた点群係数をデコードするステップを含み、
前記コーディングされた点群係数
において:
‐ 点群データに関連する変換係数がセットインデックス値及びシンボルインデックス値に分解されており、前記シンボルインデックス値
が変換係数の位置を特定し
ており;
‐ 分解された前記変換係数
が、前記セットインデックス値及び前記シンボルインデックス値に基づいて、1つ以上のセットに区画化されており
;
‐ 区画化された前記変換係数の前記セットインデックス値
がエントロピーコーディングされており
;
‐ 区画化された前記変換係数の前記シンボルインデックス値
がバイパスコーディングされており
;
‐ エントロピーコーディングされた前記セットインデックス値及びバイパスコーディングされたシンボルインデックス値に基づいて、前記点群データ
が圧縮されている、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、米国特許商標庁に、2020年1月9日に出願された米国仮特許出願第62/958,839号及び62/958,846号、並びに2020年12月3日に出願された米国特許出願第17/110,691号に基づく優先権を主張し、
その全体を本明細書に参照援用する。
【背景技術】
【0002】
1.分野
実施形態と一致する方法及び装置は、グラフベースの点群圧縮(G-PCC)、より詳細には、点群係数コーディングのための方法及び装置に関する。
【0003】
2.関連技術の説明
世界の高度な三次元(3D)表現は、インタラクションとコミュニケーションをより夢中にさせる形態で可能にし、また、機械が我々の世界を理解し、インタープリトし、ナビゲートすることを可能にしている。3D点群は、かかる情報の可能な表現として出現した。点群データに関連する多くの使用事例が同定され、点群の表現と圧縮に対応する要件が開発された。例えば、点群は、物体の検出及び位置決めのために、自律運転において使用することができる。点群は、地図作成のために地理情報システム(GIS)において、文化遺産のオブジェクトやコレクションを視覚化し、アーカイブするために文化遺産においても使用され得る。
【0004】
点群とは、3D空間内の点のセット又は集合(set)であり、色、材料特性等、それぞれに関連する属性を有する。点群は、オブジェクト又はシーンをかかる複数の点の合成として再構築するために使用されることができる。これらは、様々な設定で複数のカメラ、奥行きセンサー又はライダーセンサーを使用して捕捉されることができ、現実的に再構成されたシーンを表現するために、数千から数十億までの点で構成され得る。
【0005】
圧縮技術は、点群を表すデータ量を減らすために必要とされている。このように、リアルタイム通信と6自由度(6DoF)のバーチャルリアリティで使用するために、点群の非可逆圧縮のための技術が必要である。また、自律運転及び文化遺産アプリケーション等の動的マッピングの観点から、可逆的点群圧縮(lossless point cloud compression)技術が求められている。Moving Picture Experts Group(MPEG)は、ジオメトリ及び色や反射率などの属性の圧縮、スケーラブル/プログレッシブコーディング、時間の経過とともに捕捉された点群のシーケンスのコーディング、点群のサブセットへのランダムアクセスに対処するための標準の作業を開始した。
【0006】
図1Aは、G-PCCにおける詳細レベル(LoD)を生成する方法を示す図である。
【0007】
図1Aを参照すると、現在のG-PCC属性コーディングでは、各3D点(例えば、P0-P9)のLoD (すなわち、グループ)が各3D点の距離に基づいて生成され、その後、各LoDにおける3D点の属性値が、3D点の元の順序105の代わりにLoDに基づく順序110で予測を適用することによってエンコードされる。例えば、3D点P2の属性値は、3D点P2の前にエンコード又はデコードされた3D点P0、P5及びP4の距離に基づく重みつき平均値を計算することによって予測される。
【0008】
G-PCCにおける電流アンカー方法は以下のように進行する。
【0009】
まず、3D隣接点の変動性(variability of a neighborhood of a 3D point )を計算して、近傍値がどのように異なるかをチェックし、変動性が閾値より低い場合は、距離に基づく重みつき平均の計算は、属性値
を、現在点iの最も近い隣接点の距離に基づく線形補間プロセスを用いて予測することによって行われる。
を、現在点iのkの最も近い隣接点の集合とし、
を、デコード/再構成された属性値とし、
を現在点iまでの距離とする。
【0010】
予測された属性値aiは、
【数1】
によって与えられる。
【0011】
属性がコーディングされている場合、すべての点群の幾何学的位置がすでに利用可能であることに留意されたい。さらに、隣接点は、それらの再構成された属性値と共に、k次元ツリー構造としてエンコーダとデコーダの両方で利用可能であり、これは、同一の方法で各点に対する最も近い隣接点の探索を容易にするために使用される。
【0012】
次に、変動性が閾値よりも高い場合には、レート歪み最適化(rate-distortion optimized:RDO)予測子を選択する。複数の予測子候補又は候補予測値が、LoDを生成する際に隣接点探索の結果に基づいて作成される。例えば、予測を用いて3D点P2の属性値をエンコードする場合、3D点P2から3D点P0、P5、P4それぞれまでの距離の重みづけ平均値が、0に等しい予測子インデックスに設定される。その後、3D点P2から最も近い隣接点P4までの距離は、1に等しい予測子インデックスに設定される。さらに、下記表1に示すように、3D点P2から次に最も近い隣接点(next nearest neighbor points)P5及びP0までの距離は、それぞれ、2及び3に等しい予測子インデックスに設定される。
【表1】
【0013】
予測子候補を作製した後に、最良の予測子はレート歪み最適化手順を適用することによって選択され、その後、選択された予測子インデックスは短縮単項(truncated unary :TU)コードにマッピングされ、それのビンは算術的にエンコードされる。表1では、より短いTUコードがより小さな予測子インデックスに割り当てられることに留意されたい。
【0014】
予測子候補の最大数(maximum number of predictor candidates )MaxNumCandが定義され、属性ヘッダーにエンコードされる。現在の実装では、予測子候補の最大数MaxNumCandは、numberOfNearestNeighborsInPrediction+1に等しく設定され、短縮単項二値化で予測子インデックスをエンコードし、デコードするのに使用される。
【0015】
G-PCCにおける属性コーディングのためのリフティング変換は、上述の予測変換のトップに(on top)構築される。予測スキームとリフティングスキームとの間の主な違いは、更新オペレータの導入である。
【0016】
図1Bは、G-PCCにおけるP/U(予測/更新)リフティングのためのアーキテクチャの図である。リフティングにおける予測と更新のステップを容易にするために、分解(decomposition)の各段階で信号を2高相関の2セットに分割し(split)なければならない。G-PCCにおけるリフティング方式では、このようなレベル間の高い相関が期待されるLoD構造を利用して分割が行われ、各レベルを最も近い隣接探索によって構築し、不均一点群を構造化されたデータに編成する。レベルNでのP/U分解ステップは、詳細信号D(N-1)と近似信号A(N-1)をもたらし、これはさらにD(N-2)とA(N-2)に分解される。このステップは、ベース層近似信号A(1)が得られるまで繰り返し適用される。
【0017】
その結果、LOD(N),...,LOD(1)からなる入力属性信号自体をコーディングする代わりに、リフティングスキームにおいて、1つの属性信号はD(N-1),D(N-2),...,D(1),A(1)をコーディングする。効率的なP/Uステップの適用は、しばしば、D(N-1),...,D(1)における疎なサブバンド「係数」をもたらし、それによって変換符号化利得の利点を提供することに留意されたい。
【0018】
現在、G‐PCCにおけるアンカー方法として、リフティングにおける予測ステップに、予測変換のために上述した距離に基づく重みづけ平均予測を使用している。
【0019】
G‐PCCにおける属性コーディングの予測及びリフティングにおいて、隣接する属性サンプルの利用可能性は、隣接する属性サンプルが多いほどより良い予測を提供できるので、圧縮効率のために重要である。
予測のために十分な隣接がない場合は、圧縮効率が低下する可能性がある。
【0020】
G‐PCCにおける属性コーディングのための別のタイプの変換は、領域適応階層変換(Region Adaptive Hierarchical Transform:RAHT)であり得る。RAHT及び逆RAHTは、ボクセル位置のモートンコードによって定義される階層に関して実行され得る。dビット非負整数座標x、y及びzのモートンコードは、x、y及びzのビットをインターリーブすることによって得られる3dビット非負整数であり得る。非負のdビット整数座標のモートンコードM=morton(x、y、z)は、
【数2】
である。ここで、
は、l=1(高次)からl=d(低次)までのx、y及びzのビットであり得、は、非負の3dビット整数であり、
【数3】
ここで、
は、l’=1(高次)からl’=3d(低次)までのMのビットであり得る。
【0021】
は、Mのl’ビットプレフィックスを意味し得る。mはかかるプレフィックスであり得る。レベルl’におけるブロックは、プレフィックスmで定義することができ、
である、すべての点(x,y,z)の集合となる。レベルl’における2つのブロックは、もしそれらが同じ(l’-1)ビットプレフィックスを有するならば、兄弟ブロック(sibling blocks)であり得る。レベルl’における2つの兄弟ブロックの結合は、レベル(l’-1)における親ブロックと称されるブロックであり得る。
【0022】
シーケンスA
n,n=1,…,Nの領域適応ハール変換(Region Adaptive Haar Transform)とその逆変換は、基本ケースと再帰関数を含み得る。基本ケースでは、A
nはポイントの属性であり得、T
nはその変換であり得、ここでT
n=A
nである。再帰関数では、2つの同胞ブロックとそれらの親ブロックがあり得る。(A
01,A
02、…,A
0w0)及び(A
11,A
12、…,A
1w1)は、モートン順序の昇順でリストされた兄弟ブロック内の点(x
n,y
n,z
n)の属性であり得、(T
01,T
02,…,T
0w0)及び(T
11,T
12、…,T
1w1)はそれぞれの変換であり得る。同様に、(A
1,A
2,…,A
w0+w1)は、モートン順序の昇順でリストされた親ブロック内の全ての点(x
n,y
n,z
n)の属性であり得、(T
1,T
2,…,T
w0+w1)はそれぞれの変換であり得る。してみると、
【数4】
【数5】
及び
【数6】
ここで、
【数7】
【0023】
親ブロックの変換は2つの兄弟ブロックの連結とすることができ、ただし、2つの兄弟ブロックの変換の最初の(DC)成分は、重みつき和と差で置き換えることができ、2つの兄弟ブロックの変換の逆は、親ブロックの変換の最初と最後の部分からコピーすることができ、ただし、2つの兄弟ブロックの変換のDC成分をそれらの重みつき差と和で置き換え得るという例外を伴う(with the exception)。
【数8】
及び
【数9】
【0024】
変換された属性係数を効率的にコーディングするために、N個(例えば、32個)の最も頻度の高い係数シンボル(most frequent coefficient symbols)の追跡を維持し得る適応ルックアップテーブル(A-LUT)と、最後に観測された異なるM個(例えば、16個)の係数シンボルの追跡を維持し得るキャッシュとが使用され得る。A-LUTは、ユーザによって提供されるN個のシンボルで初期化されるか、又は類似のクラスの点群の統計に基づいてオフラインで計算され得る。キャッシュは、ユーザによって提供されるM個のシンボルで初期化されるか、又は類似のクラスの点群の統計に基づいてオフラインで計算され得る。シンボルSがエンコードされるとき、SがA-LUTであるか否かを示すバイナリ情報が符号化され得る。SがA-LUTの中にある場合、A-LUTの中のSのインデックスは、バイナリ算術エンコーダを使用することによってエンコードされ得る。A-LUTの中のシンボルSの出現回数は、1増加し得る。SがA-LUTでない場合、Sがキャッシュの中にあるかどうかを示すバイナリ情報がエンコードされ得る。Sがキャッシュ内にある場合、そのインデックスのバイナリ表現は、バイナリ算術エンコーダを使用してエンコードされ得る。Sがキャッシュ内にない場合、Sのバイナリ表現は、バイナリ算術エンコーダを使用してエンコードされ得る。シンボルSをキャッシュに追加し、キャッシュ内の最も古いシンボルを削除し得る。
【発明の概要】
【0025】
一実施形態によれば、点群係数コーディングの方法は、少なくとも1つのプロセッサによって実行される方法であって、点群データ(point cloud data)に関連する変換係数をセットインデックス値及びシンボルインデックス値に分解するステップであって、シンボルインデックス値は変換係数の位置を特定するステップを含む。分解された変換係数は、セットインデックス値及びシンボルインデックス値に基づいて、1つ以上のセットに区画化(partitioned)され得る。区画化された変換係数のセットインデックス値はエントロピーコーディングされ、区画化された変換係数のシンボルインデックス値はバイパスコーディングされ得る。点群データは、エントロピーコーディングされたセットインデックス値及びバイパスコーディングされたシンボルインデックス値に基づいて、圧縮され得る。
【0026】
一実施形態によれば、点群係数コーディングのための装置は、コンピュータプログラムコードを格納するように構成された少なくとも1つのメモリと、少なくとも1つのメモリにアクセスし、コンピュータプログラムコードに従って動作するように構成された少なくとも1つのプロセッサと、を備える。コンピュータプログラムは、少なくとも1つのプロセッサに、点群データに関連する変換係数をセットインデックス値及びシンボルインデックス値に分解するステップであって、シンボルインデックス値は変換係数の位置を特定するステップを含み得る方法を実行させるように構成されたコードを含む。分解された変換係数は、セットインデックス値及びシンボルインデックス値に基づいて、1つ以上のセットに区画化され得る。区画化された変換係数のセットインデックス値はエントロピーコーディングされ、区画化された変換係数のシンボルインデックス値はバイパスコーディングされ得る。点群データは、エントロピーコーディングされたセットインデックス値及びバイパスコーディングされたシンボルインデックス値に基づいて、圧縮され得る。
【0027】
一実施形態によれば、命令を格納する非一時的コンピュータ読み出し可能格納媒体であって、命令は少なくとも1つのプロセッサに、点群データに関連する変換係数をセットインデックス値及びシンボルインデックス値に分解させ、シンボルインデックス値は変換係数の位置を特定する。分解された変換係数は、セットインデックス値及びシンボルインデックス値に基づいて、1つ以上のセットに区画化され得る。区画化された変換係数のセットインデックス値はエントロピーコーディングされ、区画化された変換係数のシンボルインデックス値はバイパスコーディングされ得る。点群データは、エントロピーコード化されたセットインデックス値及びバイパスコード化されたシンボルインデックス値に基づいて、圧縮される。
【図面の簡単な説明】
【0028】
【
図1A】
図1Aは、G-PCCにおいてLoDを生成する方法を示す図である。
【
図1B】
図1Bは、G-PCCにおけるP/Uリフティングのためのアーキテクチャの図である。
【
図2】
図2は、実施形態による通信システムのブロック図である。
【
図3】
図3は、実施形態による環境におけるG-PCC圧縮器及びG-PCC解凍器の配置図である。
【
図4】
図4は、実施形態によるG-PCC圧縮器の機能ブロック図である。
【
図5】
図5は、実施形態によるG-PCC解凍器の機能ブロック図である。
【
図6】
図6は、実施形態による点群係数コーディングの方法を示すフローチャートである。
【
図7】
図7は、実施形態による点群係数コーディングのための装置のブロック図である。
【
図8】
図8は、実施形態を実施するのに適したコンピュータシステムの図である。
【発明を実施するための形態】
【0029】
本明細書に記載される実施形態は、点群係数コーディングのための方法及び装置を提供する。詳細には、リフティング(Lifting)、予測変換(Predicting-Transform)、及びRAHTからの変換係数のコーディングは、頻度ソートルックアップテーブルインデックスコーディング、キャッシュインデックスコーディング、及びシンボル値の直接コーディングによって実行され得る。実際には、これらは、1バイトコードワードをカバーするために、多数の(典型的には、32から、可能であれば、256までの)エントリを持つ複数のキャッシュとルックアップテーブルとを必要とし得る。これらのルックアップテーブル及びキャッシュは、さらに定期的な更新を必要とし、その頻度は、計算要件及びコーディング効率の点で異なるトレードオフを意味し得る。したがって、G-PCCにおける属性に対する変換係数のコーディングを、アルファベットパーティション及びアルファベットパーティション情報のコーディングを通して、複雑性/メモリ及び圧縮効率のトレードオフの観点から改善することは有利であり得る。
【0030】
図2は、実施形態に係る通信システム200のブロック図である。通信システム200は、ネットワーク250を介して相互接続された少なくとも2つの端子210及び220を含み得る。データの一方向伝送のために、第1端末210は、ネットワーク250を介して第2端末220に伝送するために、ローカル位置で点群データをコーディングし得る。第2端子220は、ネットワーク250から第1端子210のコード化された点群データを受信し、コード化された点群データをデコードし、デコードされた点群データを表示し得る。一方向性データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0031】
図2は、さらに、例えば、ビデオ会議中に発生し得るコード化点群データの双方向伝送をサポートするために提供される端末230及び240の第2対を示す。データの双方向伝送のために、各端末230又は240は、ネットワーク250を介して他方の端末に伝送するために、ローカル位置で捕捉された点群データをコーディングし得る。各端末230又は240はまた、他の端末によって送信されたコード化点群データを受信することができ、コード化点群データをデコードすることができ、デコードされた点群データをローカル表示装置に表示することができる。
【0032】
図2において、端末210~240は、サーバ、パーソナルコンピュータ、スマートフォンとして図示され得るが、実施形態の原理は限定されない。実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器への適用を見出す。ネットワーク250は、例えば有線及び/又は無線通信ネットワークの例を含む、端末デバイス210~240の間でコーディングされた点群データを搬送する任意の数のネットワークを表す。通信ネットワーク250は、回線交換及び/又はパケット交換チャネル内のデータを交換することができる。代表的なネットワークには、テレコミュニケーションネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本説明の目的のためには、以下に説明しない限り、ネットワーク250のアーキテクチャ及びトポロジーは本発明の動作には重要ではない。
【0033】
図3は、実施形態による環境におけるG-PCC圧縮器303及びG-PCC解凍器310の配置図である。開示された主題は、例えば、ビデオ会議、デジタルTVや、CD、DVD、メモリースティック等を含むデジタルメディアへの圧縮点群データの保存等を含む、他の点群対応アプリケーションに等しく適用することができる。
【0034】
ストリーミングシステム300は、例えばデジタルカメラのような点群ソース301を含むことができ、例えば非圧縮点群データ302を生成する捕捉サブシステム313を含むことができる。より大きなデータボリュームを有する点群データ302は、点群ソース301に結合されたG-PCC圧縮器303によって処理することができる。G-PCC圧縮器303は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下により詳細に説明されるように、開示された主題の態様を可能にし、又は実施することができる。より低いデータボリュームを有するエンコードされた点群データ304は、将来の使用のためにストリーミングサーバ305に格納されることができる。1つ以上のストリーミングクライアント306及び308は、エンコードされた点群データ304のコピー307及び309を検索するためにストリーミングサーバ305にアクセスすることができる。クライアント306は、G-PCC解凍器310を含むことができ、G-PCC解凍器310は、エンコードされた点群データの入力コピー307をデコードし、ディスプレイ312又は他のレンダリングデバイス(図示せず)上でレンダリング可能な出力点群データ311を生成する。いくつかのストリーミングシステムでは、エンコードされた点群データ304、307、及び309は、ビデオコーディング/圧縮標準にしたがってエンコードされることができる。これらの標準の例としては、MPEG for G-PCCによって開発されているものがある。
【0035】
図4は、実施形態によるG-PCC圧縮器の機能ブロック図である。
【0036】
図4に示すように、G-PCC圧縮器303は、量子化器405と、点除去モジュール410と、オクツリーエンコーダ415と、属性転送モジュール420と、LoD発生器425と、予測モジュール430と、量子化器435と、算術コーダ440とを含む。
【0037】
量子化器405は、入力点群内の点の位置を受信する。位置は(x,y,z)座標とすることができる。量子化器405は、例えば、スケーリングアルゴリズム及び/又はシフトアルゴリズムを使用して、受信した位置をさらに量子化する。
【0038】
点除去モジュール410は、量子化器405から量子化位置を受け取り、受け取った量子化位置から重複位置(duplicate positions)を除去又はフィルタリングする。
【0039】
オクツリーエンコーダ415は、点除去モジュール410からフィルタリングされた位置を受信し、受信されたフィルタリングされた位置を、オクツリーエンコーディングアルゴリズムを使用して、入力点群を表すオクツリーの占有シンボルにエンコードする。オクツリーに対応する入力点群の境界ボックスは、任意の3D形状、例えば、立方体であり得る。
【0040】
オクツリーエンコーダ415は、さらに、フィルタリングされた位置のエンコードに基づいて、受信されたフィルタリングされた位置を再順序づけする(reorders)。
【0041】
属性転送モジュール420は、入力点群内の点の属性を受信する。属性は、例えば、色又はRGB値及び/又は各点の反射率を含み得る。属性転送モジュール420は、さらに、再順序づけされた位置をオクツリーエンコーダ415から受信する。
【0042】
属性転送モジュール420は、受信された再順序づけされた位置に基づいて、受信された属性をさらに更新する。例えば、属性転送モジュール420は、受信された属性に1つ以上の前処理アルゴリズムを実行することができ、前処理アルゴリズムは、例えば、受信された属性の重みづけ及び平均化、ならびに受信された属性からの追加属性の補間を含む。属性転送モジュール420は、予測モジュール430に更新された属性をさらに転送する。
【0043】
LoD発生器425は、オクツリーエンコーダ415から再順序位置を受け取り、受け取った再順序位置に対応する各点のLoDを得る。各LoDは点のグループと見なされ、各点の距離に基づいて取得され得る。例えば、
図1Aに示されるように、点P0、P5、P4及びP2はLoD LOD0にあり、点P0、P5、P4、P2、P1、P6及びP3はLoD LOD1にあり、点P0、P5、P4、P2、P1、P6、P3、P9、P8及びP7はLoD LOD2にあり得る。
【0044】
予測モジュール430は、属性転送モジュール420から転送された属性を受信し、得られた各点のLoDをLoD発生器425から受信する。予測モジュール430は、受信した各点の受信したLoDに基づいて、受信した属性に予測アルゴリズムを適用することにより、受信した属性の予測残差(値)をそれぞれ取得する。予測アルゴリズムは、例えば、補間、重みづけ平均計算、最隣接アルゴリズム及びRDO等の種々の予測アルゴリズムの中の任意のものを含み得る。
【0045】
例えば、
図1Aに示すように、LoD LOD0に含まれる点P0、P5、P4、及びP2の受信された属性のそれぞれの予測残差は、まず、LoDs LOD1及びLOD2にそれぞれ含まれる点P1、P6、P3、P9、P8、及びP7の受信された属性の予測残差に先立って取得され得る。点P2の受信された属性の予測残差は、点P0,P5,P4の重みづけ平均に基づいて距離を計算することによって取得され得る。
【0046】
量子化器435は、予測モジュール430から得られた予測残差を受信し、例えば、スケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した予測残差を量子化する。
【0047】
算術コーダ440は、オクツリーエンコーダ415から占有シンボルを受信し、量子化された予測残差を量子化器435から受信する。算術コーダ440は、圧縮ビットストリームを得るために、受信された占有シンボル及び量子化予測残差に対して算術コーディングを実行する。算術コーディングは、例えば、コンテキスト適応バイナリ算術コーディング等の種々のエントロピー符号化アルゴリズムの中の任意のものを含み得る。
【0048】
図5は、実施形態によるG-PCC解凍器310の機能ブロック図である。
【0049】
図5に示すように、G-PCC解凍器310は、算術デコーダ505、オクツリーデコーダ510、逆量子化器515、LoD発生器520、逆量子化器525、及び逆予測モジュール530を含む。
【0050】
算術デコーダ505は、G-PCC圧縮器303から圧縮ビットストリームを受信し、受信した圧縮ビットストリームに対して算術デコーディングを行い、占有シンボル及び量子化予測残差を得る。算術デコーディングは、例えば、コンテキスト適応バイナリ算術デコーディング等の種々のエントロピーデコーディングアルゴリズムの中の任意のものを含んでもよい。
【0051】
オクツリーデコーダ510は、算術デコーダ505から得られた占有シンボルを受信し、受信した占有シンボルを、オクツリーデコーディングアルゴリズムを用いて量子化位置にデコードする。
【0052】
逆量子化器515は、オクツリーデコーダ510から量子化位置を受信し、例えば、スケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した量子化位置を逆量子化し、入力点群内の点の再構成位置を得る。
【0053】
LoD発生器520は、オクツリーデコーダ510から量子化位置を受信し、受信した量子化位置に対応する各点のLoDを取得する。
【0054】
逆量子化器525は、得られた量子化予測残差を受信し、例えば、スケーリングアルゴリズム及び/又はシフトアルゴリズムを用いて、受信した量子化予測残差を逆量子化して、再構成された予測残差を得る。
【0055】
逆予測モジュール530は、逆量子化器525から得られた再構成予測残差を受信し、LoD生成器520から得られた各点のLoDを受信する。逆予測モジュール530は、各点の受信されたLoDに基づく順序で、受信された再構成された予測残差に予測アルゴリズムを適用することによって、受信された再構成された予測残差の再構成された属性をそれぞれ取得する。予測アルゴリズムは、例えば、補間、重みづけ平均計算、最隣接アルゴリズム及びRDOのような種々の予測アルゴリズムの中の任意のものを含み得る。再構成された属性は入力点群内の点のものである。
【0056】
次に、点群係数コーディングの方法と装置について詳細に説明する。このような方法及び装置は、上述のG-PCC圧縮機303、すなわち、予測モジュール430に実装することができる。方法及び装置は、G-PCC解凍器310、すなわち、逆予測モジュール530に実装することもできる。
【0057】
変換係数のアルファベット区画化(Alphabet-Partitioning of Transform Coefficients)
【0058】
変換された係数又はそれらの8ビット部分は、ルックアップテーブル(例えば、上述のA-LUT)を使用することによって、又は256シンボルによるバイパスコーディングのいずれかによってエンコードされ得る。8ビット係数値は、セット内の係数値の正確な位置を特定し得るセット内部でシンボルインデックスとセットインデックスとに分解することができる。例えば、インデックス値は、ルックアップテーブル内又はキャッシュ内の位置に対応し得る。256個の可能な係数値は、以下の表2に記載されるように、Nセットにグループ化され得る。
【表2】
【0059】
1つ以上の実施形態において、オフライントレーニングは、パーティション数(N)を与えられた係数値のパーティションを設計するために実施されてもよい。アルファベットパーティション境界値は、明示的にシグナリングされ得る。あるいは、エンコーダとデコーダとの間で共有される複数のアルファベットパーティションタイプが与えられたときに、関連する境界値を有する特定のアルファベットパーティションを示すために、インデックスがシグナリングされ得る。パーティションは、より頻度の高いシンボルが、より低いインデックス及びより小さいサイズを有するセットに属するように、また、逆も同様に、つまり、より頻度の低いシンボルが、より高いインデックス及びより大きいサイズを有するセットに属するように、コーディング効率を改善するように設計され得ることが理解されよう。
【0060】
1つ以上の実施形態において、キャッシュ又は周波数ソーティングに基づくLUTが、係数値の頻度を降順に追跡するために使用され得る。アルファベットパーティションを形成する際に、係数値自体の代わりにキャッシュ又はLUT中のインデックスを使用することによって、より低いセットインデックスが、より頻度の高い係数値に割り当てられ得、逆もまた同様である。このプロセスは、エンコーダ及びデコーダの両方で、オンザフライで実行することができる。
【0061】
アルファベットパーティション情報のコーディング(Coding of Alphabet-Partition Information)
【0062】
導出されたセットインデックスは、種々の方法でエントロピーコーディングされ得るが、付随するシンボルインデックスは、セット内のシンボル分布が合理的に一様であることが期待され得る場合、単純にバイパスコーディングされ得る。
【0063】
1つ以上の実施形態において、導出されたセットインデックスは、マルチシンボル算術コーディング又は他のタイプのコンテキストベースのバイナリ算術コーディングによってコーディングされる。係数の異なる特性をより良く利用するために、異なるアルファベットパーティションを使用することができる。
【0064】
1つ以上の実施形態では、より高いLOD層が、リフティング/予測分解の結果としてより小さい係数を有し得るので、異なるアルファベットパーティションを、リフティング/予測係数の異なる詳細レベル(level-of-detail:LOD)層に対して使用することができる。
【0065】
1つ以上の実施形態において、異なる量子化パラメータ(QP)に対して異なるアルファベットパーティションを使用することができる。というのは、より高いQPはより小さな量子化係数をもたらし、その逆もまた同様である、つまり、より低いQPはより大きな量子化係数をもたらすからである。
【0066】
1つ以上の実施形態において、拡張層(すなわち、再構成された信号をより小さなQPレベルに改良するために追加された層)は係数間の相関に関してランダムな性質であり得るか又はノイズが多い場合があるので、異なるアルファベットパーティションは、SNR(信号対雑音比)スケーラブルコーディングのための粒度スケーラビリティの異なる層のために使用され得る。
【0067】
1つ以上の実施形態において、SNRスケーラブルコーディングの場合、異なるアルファベットパーティションが、下位量子化レベル層の対応する位置からの再構成されたサンプルの値又は値の関数に応じて使用され得る。例えば、下位層においてゼロ又は非常に小さな再構成値を有する領域は、反対の傾向を有する領域とは異なる係数特性を有する可能性がある。
【0068】
1つ以上の実施形態において、同じ量子化レベルにおいて、下位LOD内の対応する位置からの再構成されたサンプルの値又は値の関数に応じて、異なるアルファベットパーティションを使用することができる。対応する場所からのこれらのサンプルは、GPCCのLODビルでの最隣接検索の結果として利用できる場合があります。これらのサンプルは、G-PCCにおける変換技術におけるLOD毎の(LOD-by-LOD)再構成の結果として、デコーダにおいて利用可能であり得ることが理解され得る。
【0069】
図6は、実施形態による点群係数コーディングの方法600を示すフローチャートである。いくつかの実施形態では、
図6の1つ以上のプロセスブロックは、G-PCC解凍器310によって実行されてもよい。いくつかの実施形態では、
図6の1つ以上のプロセスブロックは、G-PCC圧縮器303等のG-PCC解凍器310から分離された、又は、G-PCC解凍器310を含む別の装置又は装置群によって実行され得る。
【0070】
図6を参照すると、第1ブロック610において、方法600は、点群データ(point cloud data)に関連する変換係数をセットインデックス値及びシンボルインデックス値に分解するステップであって、シンボルインデックス値はセット内の変換係数の位置を特定する、ステップを含む。
【0071】
第2ブロック620において、方法600は、分解された前記変換係数を、セットインデックス値及びシンボルインデックス値に基づいて、1つ以上のセットに区画化するステップを含む。
【0072】
第3ブロック630において、方法600は、区画化された変換係数のセットインデックス値をエントロピーコーディングするステップを含む。
【0073】
第4ブロック640において、方法600は、区画化された変換係数のシンボルインデックス値をバイパスコーディングするステップを含む。
【0074】
第5ブロック650において、方法600は、エントロピーコーディングされたセットインデックス値及びバイパスコーディングされたシンボルインデックス値に基づいて、点群データを圧縮するステップと、を含む。
【0075】
図6は、方法600のブロック例を示しているが、いくつかの実装においては、方法600は、
図6に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含み得る。
さらに又はあるいは、方法600のブロックのうちの2つ以上は、並行して実施され得る。
【0076】
さらに、提案された方法は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施され得る。一実施形態では、1つ以上のプロセッサが、提案された方法の1つ以上を実行するために、非一時的なコンピュータ読取可能媒体に格納されたプログラムを実行する。
【0077】
図7は、実施形態による、点群係数コーディングのための装置700のブロック図である。
【0078】
図7を参照すると、装置700は、分解コード710と、区画化コード720と、エントロピーコーディングコード730と、バイパスコーディングコード740とを含む。
【0079】
分解コード710は、少なくとも1つのプロセッサに、点群データに関連する変換係数を、セットインデックス値及びシンボルインデックス値に分解させるように構成されている。シンボルインデックス値はセット内の変換係数の位置を特定する。
【0080】
区画化コード720は、少なくとも1つのプロセッサに、分解された前記変換係数を、セットインデックス値及びシンボルインデックス値に基づいて、1つ以上のセットに区画化させるように構成されている。
【0081】
エントロピーコーディングコード730は、少なくとも1つのプロセッサに、区画化された変換係数のセットインデックス値をエントロピーコーディングさせるように構成されている。
【0082】
バイパスコーディングコード740は、少なくとも1つのプロセッサに、区画化された前記変換係数の前記シンボルインデックス値をバイパスコーディングさせるように構成されている。
【0083】
圧縮コード750は、少なくとも1つのプロセッサに、エントロピーコーディングされたセットインデックス値及びバイパスコーディングされたシンボルインデックス値に基づいて、点群データを圧縮させるように構成されている。
【0084】
図8は、実施形態を実施するのに適したコンピュータシステム800の図である。
【0085】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされ得、コンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接又は解釈、マイクロコード実行などを介して、実行され得る命令を含むコードを生成し得る。
【0086】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、物品のインターネット等を含む種々のタイプのコンピュータ又はその構成要素上で実行されることができる。
【0087】
コンピュータシステム800について
図8に示す構成要素は、本質的に例示的なものであり、実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する制限を示唆することを意図したものではない。また、コンポーネントの構成は、コンピュータシステム800の実施形態に示されるコンポーネントの任意の1つ又は組み合わせに関するいかなる従属性又は要件も有するものとして解釈されてはならない。
【0088】
コンピュータシステム800は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スイッピング、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、一人又は複数の人間ユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、音声、音楽、周囲の音声)、画像(例えば、走査画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)等の、人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために用いられ得る。
【0089】
入力ヒューマンインタフェースデバイスには、次のものが1つ以上含まれ得る(それぞれ1つのみ表されている):キーボード801、マウス802、トラックパッド803、タッチスクリーン810、ジョイスティック805、マイクロホン806、スキャナ807、カメラ808。
【0090】
コンピュータシステム800はまた、特定のヒューマンインタフェース出力デバイスを含み得る。かかるヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人又は複数の人間ユーザの感覚を刺激し得る。かかるヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン810又はジョイスティック805による触覚フィードバックであってもよいが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、音響出力デバイス(スピーカー809、ヘッドフォン(図示せず)など)、視覚出力デバイス(陰極線管(CRT)スクリーン、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーンを含むスクリーン810など、各々がタッチスクリーン入力能力を有する又は有さない、各々が触覚フィードバック能力を有する又は有さないスクリーン(その一部は、2次元の視覚出力又は立体画像出力等の手段を介して3次元以上の視覚出力を出力することができる)、バーチャルリアリティグラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))、及びプリンタ(図示せず)を含むことができる。グラフィックスアダプタ850は、画像を生成し、タッチスクリーン810に出力する。
【0091】
コンピュータシステム800はまた、CD/DVD又は類似の媒体821を有するCD/DVD ROM/RWドライブ820を含む光学媒体、親指ドライブ822、リムーバブルハードドライブ又はソリッドステートドライブ823、テープ及びフロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル(図示せず)等の特殊化されたROM/ASIC/PLDベースのデバイス等の、人間がアクセス可能な記憶装置及びそれらの関連媒体を含むことができる。
【0092】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解されたい。
【0093】
コンピュータシステム800はまた、1つ以上の通信ネットワークへ855のインタフェースを含むことができる。通信ネットワーク855は、例えば、無線、有線、光であり得る。ネットワーク855は、さらに、ローカル、広域、大都市、車両及び工業、リアルタイム、遅延耐性等であり得る。ネットワーク855の例としては、イーサネット、無線LAN、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングタームエボリューション(LTE)等を含むセルラーネットワーク、ケーブルTV、衛星TV、地上放送テレビ等を含むTV有線又は無線広域デジタルネットワーク、及び、CANBusを含む産業用及び車両用を含む。ネットワーク855は、一般に、特定の汎用データポート又は周辺バス849に接続される外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム800のUSBポート)を必要とし、その他は、一般に、以下に説明するシステムバスに接続されることにより、コンピュータシステム800のコアに統合される、例えば、PCコンピュータシステムへのイーサネットインタフェース及び/又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェースである。これらのネットワーク855のいずれかを使用して、コンピュータシステム800は、他のエンティティと通信することができる。かかる通信は、単指向性通信、受信のみ(例えば、放送テレビ)通信、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)通信、又は、例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの、双方向通信であることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク855及びネットワークインタフェース854の各々で使用されることができる。
【0094】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェース854は、コンピュータシステム800のコア840に接続されることができる。
【0095】
コア840は、1つ以上の中央処理デバイス(CPU)841、グラフィックス処理デバイス(GPU)842、フィールドプログラマブルゲートエリア(FPGA)843の形態の特殊なプログラマブル処理デバイス、特定のタスクのためのハードウェアアクセラレータ844等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM)845、ランダムアクセスメモリ846、内部大容量記憶デバイス、例えば内部非ユーザアクセス可能ハードドライブ、SSD等847と共に、システムバス848を介して接続され得る。いくつかのコンピュータシステムでは、システムバス848は、追加のCPU、GPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺デバイスは、コアのシステムバス848に直接接続するか、又は周辺バス849を介して接続することができる。周辺バスのアーキテクチャは、周辺コンポーネント相互接続(PCI)、USB等を含む。
【0096】
CPU841、GPU842、FPGA84)、及びアクセラレータ844は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM845又はRAM846に格納されることができる。移行データはRAM846に格納されることもできるが、例えば、内部大容量記憶装置847で、永続的なデータは格納されることができる。1つ以上のCPU841、GPU842、大容量記憶デバイス847、ROM845、RAM846等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0097】
コンピュータ可読媒体は、各種のコンピュータ実施動作(computer-implemented operations)を実行するためにその上のコンピュータコードを有することができる。メディアおよびコンピュータコードは実施形態の目的のために特別に設計及び構築されたものであり得、又はそれらは、コンピュータソフトウェア分野の技術を有する者に周知でかつ利用可能な種類のものであり得る。
【0098】
一例として、限定するものではなく、アーキテクチャ、具体的にはコア840を有するコンピュータシステム800は、有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する1つ以上のプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。かかるコンピュータ可読媒体は、コア-内部大容量記憶デバイス847又はROM845等の一時的でない性質のコア840の特定の記憶デバイスと同様に、上述のようにユーザがアクセス可能な大容量記憶デバイスに関連する媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア840によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア840及びその中の具体的にプロセッサ(CPU、GPU、FPGA等を含む)に、RAM846に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスにしたがって、かかるデータ構造を変更することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。付加的に又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ844)内に配線された、又は他の方法で具現化されたロジックの結果として、機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取り可能媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)等の)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。実施形態は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0099】
本開示は、いくつかの実施形態を記載してきたが、本開示の範囲に含まれる変更、置換、及び種々の代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具体化し、したがって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。