「ジオメトリベースの点群圧縮」(G-PCC)は、3Dジオメトリ、すなわち、3D空間の中の点のセットの位置を直接圧縮する。G-PCCは、3Dジオメトリに関連付けられた点ごとの、色値またはルミナンス値/クロミナンス値などの関連する属性値も圧縮する。
点群は、3D空間の中の点のセットを含み、点に関連付けられた属性を有し得る。属性は、たとえば、R/G/B、Y/Cb/Crなどの色情報、反射情報、または温度値、湿度値、緯度座標、経度座標などの他の属性であり得る。点群は、光検出および測距(LIDAR)スキャナまたは3Dスキャナなどの、様々なカメラまたはセンサによってキャプチャされることがあり、コンピュータ生成されることもある。点群データは、限定はしないが、構築(たとえば、モデリング)、グラフィックス(たとえば、可視化およびアニメーションのための3Dモデル)、および自動車産業(たとえば、ナビゲーションを助けるために使用されるLIDARセンサ)を含む、様々な適用例において使用され得る。
点群データによって占有される3D空間は、仮想バウンディングボックスによって囲まれ得る。バウンディングボックスの中の点の位置は、一定の精度で表されてもよい。したがって、1つまたは複数の点の位置は、その精度に基づいて量子化されてもよい。最小レベルにおいて、バウンディングボックスは、単位立方体によって表される空間の最小単位であるボクセルに分割される。バウンディングボックスの中のボクセルは、0個、1個、または2個以上の点に関連付けられてもよい。バウンディングボックスは、タイルと呼ばれることがある複数の立方体/直方体領域に分割されてもよく、各タイルは、1つまたは複数のスライスにコーディングされてもよい。スライスおよびタイルへのバウンディングボックスの区分は、各区分の中の点の数に基づいてもよく、または他の考慮事項に基づいてもよい(たとえば、特定の領域がタイルとしてコーディングされてもよい)。スライス領域は、ビデオコーデックにおける分割決定と同様の分割決定を使用してさらに区分されてもよい。
色属性情報の圧縮に対するコーディング効率を改善するために、G-PCCエンコーダおよびデコーダは、たとえば、RGB値をYCbCr値にコンバートすることによって、色空間コンバージョンを前処理ステップまたは後処理ステップとして実行するように構成され得る。そのようなコンバージョンの後でも、コンバートされた色空間の中のチャネルの間に依然として有意な相関があることが多い。色チャネルの間のこの相関は、属性コーディング効率を改善するために活用され得る。
いくつかの技法によれば、コーディング効率を改善するために、G-PCCエンコーダおよびデコーダは、点の属性値(たとえば、YCbCr)をすでにコーディングされた近隣点の属性値から予測し、予測された属性値と実際の属性値との間の差分値をエンコーダからデコーダにシグナリングするように構成され得る。いくつかの色成分(たとえば、Cr)について、エンコーダおよびデコーダは、すでにコーディングされた近隣点に基づいて初期予測値を決定し、追加として、別の成分(たとえば、Cb)のすでにコーディングされた残差値に基づいて残差値を予測するように構成され得る。したがって、属性値の初期予測と実際の属性値との間の全差分をシグナリングする代わりに、G-PCCエンコーダは、実際の属性値と予測された残差値を加えた初期予測値との間の残りの差分をG-PCCデコーダにシグナリングするだけでよい。この残りの残差値は典型的には、全残差値よりも小さい数であり得るので、残りの残差値は、全残差値よりも少ないビットでシグナリングされ得る。この予測値および残差値の使用は、属性値を直接シグナリングすることと比べると、属性値をシグナリングするのに必要なビットを低減し得る。
次に、残差値をシグナリングするための例示的な技法について説明する。この例では、res_Cbおよびres_Crは、それぞれ、Cb色成分およびCr色成分の残差値を表す。Cb残差値およびCr残差値は以下の関係式によって近似し得ることが注目され得る。
ここで、sはスカラー値であり、これは3つの値、すなわち、それぞれ、正の相関、負の相関、および相関なしを示す、+1、-1、または0のうちの1つを有することができる。sをシグナリングするために、たとえば、エンコーダは、sが非0であるか否かを示すフラグを点群データの中に含めてもよく、デコーダは、そのフラグを点群データからパースしてもよい。sが非0である場合、エンコーダは、符号を示す第2のフラグを点群データの中に含めてもよく、デコーダはその第2のフラグを点群データからパースしてもよい。Res_Crのコーディングの場合、エンコーダおよびデコーダは、さらなる予測をsのスケーリング係数を有するRes_Cbから実行してもよく、したがって、残りの残差値のみが点群データの中に含まれればよい。デコーダの視点から、ResCrおよびResCbが、それぞれ、CbおよびCrのビットストリームから再構成された残差サンプルである場合、最終的なCr残差は、Res'Cr=ResCr+s*ResCbとして決定され得る。
上記で説明した技法は、2つの色成分、すなわち、2つのチャネルの間の相関(正または負)を活用するが、本技法は、正または負の相関を有することに加えて、2つの色成分の残差エネルギーが異なり得るという事実を活用しない。したがって、sは必ずしも+1、0、または-1のみによってよく表されるとは限らない場合がある。
本開示は、sのより多様化した値を利用するための技法について説明し、ここで、sはpの分数精度を有する任意の値であり得る。本開示はまた、sのこれらの値をシグナリングするための技法について説明する。たとえば、p=1/4の場合、sの可能な値はk*p=k/4であり、ここで、kは整数である。pの値は固定であってもよく、あらかじめ決定されてもよく、またはシグナリングされてもよい。いくつかの例では、s値は、pの精度を有する[-a, +a]の範囲を有してもよい。たとえば、a=2およびp=1/4の場合、スケーリング係数値は、s: {-2, -7/4, -6/4, -5/4, -1, -3/4, -2/4, -1/4, 0, 1/4, 2/4, 3/4, 1, 5/4, 6/4, 7/4, 2}である。他の例では、aおよびpは、それぞれ、1および1/8などの異なる値、または値の何らかの他の組合せを有してもよい。aおよびpの値は固定であってもよく、あらかじめ決定されてもよく、シグナリングされてもよく、またはそれらの任意の組合せであってもよい。以下でより詳細に説明するように、sのスケーリング係数値はまた、浮動小数点演算を潜在的に回避し、したがって、計算複雑性を低減するために、乗算演算とビットシフト演算の組合せとして実装され得る。
一例として、点群の点が(Y, Cb, Cr)=(100, 80, 82)の属性値を有すると仮定する。G-PCCデコーダは、以前にコーディングされた点から、(predY, predCb, predCr)=(90, 76, 75)の予測された属性値を予測し得る。したがって、点の実際の属性値と点の予測された属性値との間の差分を意味する残差値は、(resY, resCb, resCr)=(10, 4, 7)である。したがって、G-PCCエンコーダは、点群の中に、resYおよびresCbに対する10および4の値を含み得る。しかしながら、resCrについては、G-PCCエンコーダは、点群の中に、7-s*resCbに等しい値を含み得る。sが-1、0、または1のみに等しくなり得る場合、G-PCCエンコーダは、点群データの中に、3の値(3=7-s*4、sは1に等しい)を含める。しかしながら、本開示の技法を利用すると、G-PCCエンコーダは、たとえば、点群データの中に、3の代わりに0の値(0=7-s*4、sは7/4に等しい)を含めることが可能であり得る。0は3よりも小さいので、G-PCCエンコーダは、3の値よりも少ないビットを使用して0の値をコーディングすることが可能であり得る。
したがって、非整数値または1よりも大きい絶対値の一方または両方を有するスケーリング係数を決定することによって、G-PCCエンコーダおよびG-PCCデコーダは、より正確な予測された残差値を生成し、-1、0、および1のみのスケーリング係数を使用して決定された残りの残差値と比べると、残りの残差値をより小さくすることが可能であり得る。より小さい値は典型的には、残りの残差値をより小さくすることによって、より少ないビットを使用してコーディングされ得るので、本開示の技法は、属性値をシグナリングするのに必要な全体的なビット数を低減し得る。
図1は、本開示の技法を実行し得る例示的な符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、点群データをコーディング(符号化および/または復号)すること、すなわち、点群圧縮をサポートすることを対象とする。一般に、点群データは、点群を処理するための任意のデータを含む。コーディングは、点群データを圧縮および/または圧縮解除するのに有効であり得る。
図1に示すように、システム100は、ソースデバイス102および宛先デバイス116を含む。ソースデバイス102は、宛先デバイス116によって復号されるべき、符号化された点群データを提供する。具体的には、図1の例では、ソースデバイス102は、コンピュータ可読媒体110を介して点群データを宛先デバイス116に提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、地上または海上車両、宇宙船、航空機、ロボット、LIDARデバイス、衛星などを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス102および宛先デバイス116は、ワイヤレス通信用に装備され得る。
図1の例では、ソースデバイス102は、データソース104、メモリ106、G-PCCエンコーダ200、および出力インターフェース108を含む。宛先デバイス116は、入力インターフェース122、G-PCCデコーダ300、メモリ120、およびデータコンシューマ118を含む。本開示によれば、ソースデバイス102のG-PCCエンコーダ200および宛先デバイス116のG-PCCデコーダ300は、G-PCCにおける色属性の成分のコーディングに関係する本開示の技法を適用するように構成され得る。したがって、ソースデバイス102は符号化デバイスの一例を表し、宛先デバイス116は復号デバイスの一例を表す。他の例では、ソースデバイス102および宛先デバイス116は、他の構成要素または構成を含み得る。たとえば、ソースデバイス102は、内部または外部ソースからデータ(たとえば、点群データ)を受信し得る。同様に、宛先デバイス116は、同じデバイスの中にデータコンシューマを含むのではなく、外部データコンシューマとインターフェースし得る。
図1に示すようなシステム100は一例にすぎない。一般に、他のデジタル符号化および/または復号デバイスは、G-PCCにおける色属性の最終成分のコーディングに関係する本開示の技法を実行し得る。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116に送信するためのコーディングされたデータを生成するようなデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実行するデバイスを「コーディング」デバイスと呼ぶ。したがって、G-PCCエンコーダ200およびG-PCCデコーダ300は、コーディングデバイス、具体的には、それぞれ、エンコーダおよびデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々が符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム100は、たとえば、ストリーミング、再生、ブロードキャスト、テレフォニー、ナビゲーション、および他の適用例のために、ソースデバイス102と宛先デバイス116との間の一方向または双方向送信をサポートし得る。
一般に、データソース104は、データ(すなわち、未加工の符号化されていない点群データ)のソースを表し、データの連続した一連の「フレーム」をG-PCCエンコーダ200に提供してもよく、G-PCCエンコーダ200は、フレームに対するデータを符号化する。ソースデバイス102のデータソース104は、様々なカメラもしくはセンサ、たとえば、3DスキャナもしくはLIDARデバイス、1つもしくは複数のビデオカメラ、以前にキャプチャされたデータを含むアーカイブ、および/またはデータコンテンツプロバイダからデータを受信するためのデータフィードインターフェースのいずれかなどの、点群キャプチャデバイスを含み得る。代替または追加として、点群データは、スキャナ、カメラ、センサまたは他のデータからコンピュータ生成され得る。たとえば、データソース104は、ソースデータとしてのコンピュータグラフィックスベースのデータを生成するか、またはライブデータとアーカイブされたデータとコンピュータ生成されたデータとの組合せを生み出し得る。各場合において、G-PCCエンコーダ200は、キャプチャされた、事前にキャプチャされた、またはコンピュータ生成されたデータを符号化する。G-PCCエンコーダ200は、受信された順序(「表示順序」と呼ばれることがある)からコーディング用のコーディング順序にフレームを並べ替え得る。G-PCCエンコーダ200は、符号化されたデータを含む1つまたは複数のビットストリームを生成し得る。次いで、ソースデバイス102は、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、符号化されたデータを出力インターフェース108を介してコンピュータ可読媒体110上に出力し得る。
ソースデバイス102のメモリ106および宛先デバイス116のメモリ120は、汎用メモリを表し得る。いくつかの例では、メモリ106およびメモリ120は、未加工のデータ、たとえば、データソース104からの未加工のデータおよびG-PCCデコーダ300からの未加工の復号されたデータを記憶し得る。追加または代替として、メモリ106およびメモリ120は、たとえば、それぞれ、G-PCCエンコーダ200およびG-PCCデコーダ300によって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではG-PCCエンコーダ200およびG-PCCデコーダ300とは別々に示されているが、G-PCCエンコーダ200およびG-PCCデコーダ300は、機能的に同様のまたは等価な目的で内部メモリも含み得ることを理解されたい。さらに、メモリ106およびメモリ120は、符号化されたデータ、たとえば、G-PCCエンコーダ200からの出力およびG-PCCデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106およびメモリ120の一部は、たとえば、未加工の復号されたおよび/または符号化されたデータを記憶するために、1つまたは複数のバッファとして割り振られ得る。たとえば、メモリ106およびメモリ120は、点群を表すデータを記憶し得る。
コンピュータ可読媒体110は、符号化されたデータをソースデバイス102から宛先デバイス116にトランスポートすることが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介してソースデバイス102が符号化されたデータを宛先デバイス116にリアルタイムで直接送信することを可能にする通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108が符号化されたデータを含む送信信号を変調してもよく、入力インターフェース122が受信された送信信号を復調してもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
いくつかの例では、ソースデバイス102は、符号化されたデータを出力インターフェース108から記憶デバイス112に出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112からの符号化されたデータにアクセスし得る。記憶デバイス112は、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたデータを記憶するための任意の他の好適なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
いくつかの例では、ソースデバイス102は、符号化されたデータを、ソースデバイス102によって生成された符号化されたデータを記憶し得るファイルサーバ114または別の中間記憶デバイスに出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されたデータにアクセスし得る。ファイルサーバ114は、符号化されたデータを記憶することおよびその符号化されたデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワークアタッチトストレージ(NAS)デバイスを表し得る。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通じて、ファイルサーバ114からの符号化されたデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはファイルサーバ114上に記憶された符号化されたデータにアクセスするのに適した両方の組合せを含み得る。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せに従って動作するように構成され得る。
出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネットカード)、様々なIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(ロングタームエボリューション)、LTEアドバンスト、5Gなどのセルラー通信規格に従って、符号化されたデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(商標))、Bluetooth(商標)規格などの他のワイヤレス規格に従って、符号化されたデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、G-PCCエンコーダ200および/または出力インターフェース108に起因する機能を実行するためのSoCデバイスを含むことができ、宛先デバイス116は、G-PCCデコーダ300および/または入力インターフェース122に起因する機能を実行するためのSoCデバイスを含むことができる。
本開示の技法は、自律車両間の通信、スキャナ、カメラ、センサ、およびローカルサーバもしくはリモートサーバなどの処理デバイス間の通信、地理的マッピング、または他の適用例などの、様々な適用例のいずれかをサポートする符号化および復号に適用され得る。
宛先デバイス116の入力インターフェース122は、符号化されたビットストリームをコンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から受信する。符号化されたビットストリームは、コード化単位(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素などの、G-PCCデコーダ300によっても使用される、G-PCCエンコーダ200によって定義されるシグナリング情報を含み得る。データコンシューマ118は、復号されたデータを使用する。たとえば、データコンシューマ118は、物理オブジェクトのロケーションを決定するために、復号されたデータを使用し得る。いくつかの例では、データコンシューマ118は、点群に基づいて像を提示するためのディスプレイを備え得る。
G-PCCエンコーダ200およびG-PCCデコーダ300は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダおよび/またはデコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアにおいて実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。G-PCCエンコーダ200およびG-PCCデコーダ300の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、それらのいずれも、それぞれのデバイスの中の複合エンコーダ/デコーダ(コーデック)の一部として統合されてもよい。G-PCCエンコーダ200および/またはG-PCCデコーダ300を含むデバイスは、1つまたは複数の集積回路、マイクロプロセッサ、および/または他のタイプのデバイスを備え得る。
G-PCCエンコーダ200およびG-PCCデコーダ300は、ビデオ点群圧縮(V-PCC)規格またはジオメトリ点群圧縮(G-PCC)規格などのコーディング規格に従って動作し得る。本開示は、一般に、データを符号化または復号するプロセスを含めるように、点群のコーディング(たとえば、符号化および復号)に言及することがある。符号化されたビットストリームは、一般に、コーディング決定(たとえば、コーディングモード)を表すシンタックス要素の一連の値を含む。
本開示は、一般に、シンタックス要素などの特定の情報を「シグナリングすること」に言及することがある。「シグナリング」という用語は、一般に、符号化されたデータを復号するために使用される、シンタックス要素の値および/または他のデータの通信を指すことがある。すなわち、G-PCCエンコーダ200は、シンタックス要素の値をビットストリームにおいてシグナリングし得る。一般に、シグナリングは、ビットストリームにおいて値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムで、または、宛先デバイス116によって後で取り出すためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るなど、リアルタイムではなく、ビットストリームを宛先デバイス116にトランスポートし得る。
ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現行の手法の圧縮能力を大幅に超える圧縮能力を有する点群コーディング技術の規格化の潜在的な必要性を研究しており、規格を作成することを目標としている。このグループは、この分野の専門家によって提案された圧縮技術設計を評価するための3次元グラフィックスチーム(3DG:3-Dimensional Graphics Team)として知られている共同作業において、この探究活動に一緒に取り組んでいる。
点群圧縮活動は、2つの異なる手法に分類される。第1の手法は「ビデオ点群圧縮」(V-PCC)であり、これは、3Dオブジェクトをセグメント化し、セグメントを複数の2D平面において投影し(2Dフレームにおける「パッチ」として表される)、セグメントは、高効率ビデオコーディング(HEVC)(ITU-T H.265)コーデックなどのレガシー2Dビデオコーデックによってさらにコーディングされる。第2の手法は「ジオメトリベースの点群圧縮」(G-PCC)であり、これは、3Dジオメトリ、すなわち、3D空間の中の点のセットの位置と、(3Dジオメトリに関連付けられた点ごとの)関連する属性値とを直接圧縮する。G-PCCは、カテゴリー1(静的な点群)とカテゴリー3(動的に獲得された点群)の両方における点群の圧縮に対処する。G-PCC規格の最近の草案は、G-PCC DIS、ISO/IEC JTC1/SC29/WG11 w19088、ブリュッセル、ベルギー、2020年1月において入手可能であり、コーデックの記述は、G-PCC Codec Description v6、ISO/IEC JTC1/SC29/WG11 w19091、ブリュッセル、ベルギー、2020年1月において入手可能である。
点群は、3D空間の中の点のセットを含み、点に関連付けられた属性を有し得る。属性は、R、G、BもしくはY、Cb、Crなどの色情報、または反射情報、または他の属性であり得る。点群は、LIDARセンサおよび3Dスキャナなどの、様々なカメラまたはセンサによってキャプチャされることがあり、コンピュータ生成されることもある。点群データは、限定はしないが、構築(モデリング)、グラフィックス(可視化およびアニメーションのための3Dモデル)、および自動車産業(ナビゲーションを助けるために使用されるLIDARセンサ)を含む、様々な適用例において使用される。
点群データによって占有される3D空間は、仮想バウンディングボックスによって囲まれ得る。バウンディングボックスの中の点の位置は、一定の精度で表されてもよく、したがって、1つまたは複数の点の位置は、その精度に基づいて量子化されてもよい。最小レベルにおいて、バウンディングボックスは、単位立方体によって表される空間の最小単位であるボクセルに分割される。バウンディングボックスの中のボクセルは、0個、1個、または2個以上の点に関連付けられてもよい。バウンディングボックスは、タイルと呼ばれることがある複数の立方体/直方体領域に分割されてもよい。各タイルは、1つまたは複数のスライスにコーディングされてもよい。スライスおよびタイルへのバウンディングボックスの区分は、各区分の中の点の数に基づいてもよく、または他の考慮事項に基づいてもよい(たとえば、特定の領域がタイルとしてコーディングされてもよい)。スライス領域は、ビデオコーデックにおける分割決定と同様の分割決定を使用してさらに区分されてもよい。
図2は、G-PCCエンコーダ200の概要を提供する。図3は、G-PCCデコーダ300の概要を提供する。図示のモジュールは論理的であり、G-PCCコーデックの基準実装において実装されるコード、すなわち、ISO/IEC MPEG(JTC 1/SC 29/WG 11)によって研究されるTMC13テストモデルソフトウェアに必ずしも1対1で対応するとは限らない。
G-PCCエンコーダ200とG-PCCデコーダ300の両方において、点群位置が最初にコーディングされる。属性コーディングは、復号されたジオメトリに依存する。図2および図3では、表面近似分析ユニット212および310ならびにRAHTユニット218および314は、典型的にはカテゴリー1データに使用されるオプションを表すが、LOD生成ユニット220および316、リフティングユニット222、ならびに逆リフティングユニット318は、典型的にはカテゴリー3データに使用されるオプションを表す。すべての他のユニットは、カテゴリー1とカテゴリー3との間で共通であってもよい。
カテゴリー3データの場合、圧縮ジオメトリは、典型的には、個々のボクセルのルートからリーフレベルまでの8分木として表される。カテゴリー1データの場合、圧縮ジオメトリは、典型的には、刈り込み8分木(すなわち、ボクセルよりも大きいブロックのルートからリーフレベルまでの8分木)に刈り込み8分木の各リーフ内の表面に近似するモデルを加えたものによって表される。このようにして、カテゴリー1データとカテゴリー3データの両方は8分木コーディング機構を共有するが、カテゴリー1データは、追加として、表面モデル(Trisoupコーディングとして知られている)を有する各リーフ内のボクセルに近似し得る。使用される表面モデルは、ブロックごとに1~10個の三角形を含む三角測量であり、三角形スープを生じる。したがって、カテゴリー1ジオメトリコーデックはTrisoupジオメトリコーデックとして知られているが、カテゴリー3ジオメトリコーデックは8分木ジオメトリコーデックとして知られている。
8分木の各ノードにおいて、その子ノード(最大8つのノード)のうちの1つまたは複数について占有がシグナリングされる(推論されないとき)。(a)現在の8分木ノードと面を共有するノード、(b)現在の8分木ノードと面、縁、または頂点を共有するノードなどを含む、複数の近傍が指定される。各近傍内で、ノードおよび/またはその複数の子の占有は、現在のノードまたはその複数の子の占有を予測するために使用され得る。8分木のいくつかのノードにおいてスパースにポピュレートされる点について、コーデックは、点の3D位置が直接符号化されるダイレクトコーディングモードもサポートする。ダイレクトモードがシグナリングされることを示すためのフラグがシグナリングされ得る。最低レベルにおいて、8分木ノード/リーフノードに関連付けられた点の数もコーディングされ得る。
ジオメトリがコーディングされると、ジオメトリ点に対応する属性がコーディングされる。1つの再構成された/復号されたジオメトリ点に対応する複数の属性点があるとき、再構成された点を表す属性値が導出され得る。
G-PCCには、3つの属性コーディングプロセス、すなわち、領域適応型階層変換(RAHT)コーディング、補間ベースの階層最近傍予測(予測変換)、および更新/リフティングステップを用いる補間ベースの階層最近傍予測(リフティング変換)がある。RAHTおよびリフティングは、典型的にはカテゴリー1データに使用されるが、予測は、典型的にはカテゴリー3データに使用される。しかしながら、任意のデータに対していずれのプロセスが使用されてもよく、G-PCCにおけるジオメトリコーデックの場合と同様に、点群をコーディングするために使用される属性コーディングプロセスがビットストリームにおいて指定されてもよい。
属性のコーディングは、ある詳細レベル(LOD:level-of-detail)で実施されてもよく、各詳細レベルを用いて、点群属性のより精細な表現が取得され得る。各詳細レベルは、近隣ノードからの距離メトリックに基づいて、またはサンプリング距離に基づいて指定され得る。詳細レベル生成は、入力点のセットを一連の詳細レベルおよび関連する精錬レイヤに区分する。詳細レベルは、スライスジオメトリのサブサンプリングされたバージョンを表す点のセットである。0番目の詳細レベルは、フル解像度スライスジオメトリである。
G-PCCエンコーダ200において、属性のためのコーディングプロセスの出力として取得された残差が量子化される。量子化された残差は、コンテキスト適応型算術コーディングを使用してコーディングされ得る。
図2の例では、G-PCCエンコーダ200は、座標変換ユニット202、色変換ユニット204、ボクセル化ユニット206、属性転送ユニット208、8分木分析ユニット210、表面近似分析ユニット212、算術符号化ユニット214、ジオメトリ再構成ユニット216、RAHTユニット218、LOD生成ユニット220、リフティングユニット222、係数量子化ユニット224、および算術符号化ユニット226を含み得る。
図2の例に示すように、G-PCCエンコーダ200は、位置のセットおよび属性のセットを受信し得る。位置は、点群の中の点の座標を含み得る。属性は、点群の中の点に関連付けられた色などの、点群の中の点についての情報を含み得る。
座標変換ユニット202は、点の座標に、座標を初期ドメインから変換ドメインに変換するための変換を適用し得る。本開示は、変換された座標を変換座標と呼ぶことがある。色変換ユニット204は、属性の色情報を異なるドメインに変換するための変換を適用し得る。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換し得る。
さらに、図2の例では、ボクセル化ユニット206は、変換座標をボクセル化し得る。変換座標のボクセル化は、量子化と、点群のいくつかの点を除去することとを含み得る。言い換えれば、点群の複数の点は、単一の「ボクセル」内に包含されてもよく、そのボクセルは、その後、いくつかの観点で1つの点として扱われてもよい。さらに、8分木分析ユニット210は、ボクセル化された変換座標に基づいて8分木を生成し得る。追加として、図2の例では、表面近似分析ユニット212は、点のセットの表面表現を潜在的に決定するために点を分析し得る。算術符号化ユニット214は、8分木および/または表面近似分析ユニット212によって決定された表面の情報を表すシンタックス要素をエントロピー符号化し得る。G-PCCエンコーダ200は、これらのシンタックス要素をジオメトリビットストリームにおいて出力し得る。
ジオメトリ再構成ユニット216は、8分木、表面近似分析ユニット212によって決定された表面を示すデータ、および/または他の情報に基づいて、点群の中の点の変換座標を再構成し得る。ジオメトリ再構成ユニット216によって再構成された変換座標の数は、ボクセル化および表面近似により、点群の点の元の数とは異なることがある。本開示は、得られた点を再構成された点と呼ぶことがある。属性転送ユニット208は、点群の元の点の属性を点群の再構成された点に転送し得る。
さらに、RAHTユニット218は、RAHTコーディングを再構成された点の属性に適用し得る。代替または追加として、LOD生成ユニット220およびリフティングユニット222は、それぞれ、LOD処理およびリフティングを再構成された点の属性に適用し得る。RAHTユニット218およびリフティングユニット222は、属性に基づいて係数を生成し得る。係数量子化ユニット224は、RAHTユニット218またはリフティングユニット222によって生成された係数を量子化し得る。算術符号化ユニット226は、算術コーディングを量子化された係数を表すシンタックス要素に適用し得る。G-PCCエンコーダ200は、これらのシンタックス要素を属性ビットストリームにおいて出力し得る。
図3の例では、G-PCCデコーダ300は、ジオメトリ算術復号ユニット302、属性算術復号ユニット304、8分木合成ユニット306、逆量子化ユニット308、表面近似合成ユニット310、ジオメトリ再構成ユニット312、RAHTユニット314、LOD生成ユニット316、逆リフティングユニット318、逆変換座標ユニット320、および逆変換色ユニット322を含み得る。
G-PCCデコーダ300は、ジオメトリビットストリームおよび属性ビットストリームを取得し得る。G-PCCデコーダ300のジオメトリ算術復号ユニット302は、算術復号(たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)または他のタイプの算術復号)をジオメトリビットストリームの中のシンタックス要素に適用し得る。同様に、属性算術復号ユニット304は、算術復号を属性ビットストリームの中のシンタックス要素に適用し得る。
8分木合成ユニット306は、ジオメトリビットストリームからパースされたシンタックス要素に基づいて8分木を合成し得る。ジオメトリビットストリームの中で表面近似が使用される事例では、表面近似合成ユニット310は、ジオメトリビットストリームからパースされたシンタックス要素に基づいて、および8分木に基づいて、表面モデルを決定し得る。
さらに、ジオメトリ再構成ユニット312は、点群の中の点の座標を決定するために再構成を実行し得る。逆変換座標ユニット320は、点群の中の点の再構成された座標(位置)を変換ドメインから初期ドメインにコンバートし戻すために、逆変換を再構成された座標に適用し得る。
追加として、図3の例では、逆量子化ユニット308は属性値を逆量子化し得る。属性値は、属性ビットストリームから取得されたシンタックス要素(たとえば、属性算術復号ユニット304によって復号されたシンタックス要素を含む)に基づき得る。
どのように属性値が符号化されるかに応じて、RAHTユニット314は、逆量子化された属性値に基づいて点群の点についての色値を決定するために、RAHTコーディングを実行し得る。いくつかの例では、LOD生成ユニット316および逆リフティングユニット318は、詳細レベルベースの技法を使用して、点群の点についての色値を決定し得る。
さらに、図3の例では、逆変換色ユニット322は、逆色変換を色値に適用し得る。逆色変換は、G-PCCエンコーダ200の色変換ユニット204によって適用される色変換の逆であり得る。たとえば、色変換ユニット204は、色情報をRGB色空間からYCbCr色空間に変換し得る。したがって、逆変換色ユニット322は、色情報をYCbCr色空間からRGB色空間に変換し得る。
図2および図3の様々なユニットは、G-PCCエンコーダ200およびG-PCCデコーダ300によって実行される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実行され得る動作に対してプリセットされる。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作において柔軟な機能を提供する。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は(たとえば、パラメータを受信するまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は異なる回路ブロック(固定機能またはプログラマブル)であってもよく、いくつかの例では、ユニットのうちの1つまたは複数は集積回路であってもよい。
1つまたは複数の例では、色属性の圧縮について、コーディング効率を改善するために、G-PCCエンコーダ200およびG-PCCデコーダ300は、色空間コンバージョンを前処理ステップ/後処理ステップとして実行するように構成され得る。色空間コンバージョンは、たとえば、上記で説明したように、色データをRGBからYCbCrにまたはYCbCrからRGBにコンバートし得る。そのようなコンバージョンの後でも、コンバートされた色空間において、チャネルとも呼ばれる色成分の間に依然として有意な相関がある。色チャネルの間の相関は、属性コーディング効率を改善するために活用され得る。
以下は、リフティング変換のためにクロマ信号間でチャネル間相関のみを活用するための詳細を提供する。例として、resCbおよびresCrを、それぞれ、CbチャネルおよびCrチャネルのリフティング係数を示すものとする。多くのコーディングシナリオでは、リフティングからのCbクロマ係数およびCrクロマ係数は、以下の関係式によって、よく近似され得る。
ここで、sはスカラー値であり、これは3つの値、すなわち、それぞれ、正の相関、負の相関、および相関なしを示す、+1、-1、または0のうちの1つを有することができる。いくつかの例では、G-PCCエンコーダ200はLODごとにs値をシグナリングする。「s」シグナリングの場合、G-PCCエンコーダ200は、「s」が非0であるか否かを示すフラグを最初に符号化してもよく、「s」が非0である場合、G-PCCエンコーダ200は、「s」の符号を示す第2のフラグを符号化してもよい。このシグナリングは、属性データペイロードの一部であってもよく、CABACコーディングされてもよい。
ResCrのコーディングの場合、G-PCCエンコーダ200は、さらなる予測をsのスケーリング係数を有するResCbから実行し、次いで、残りの残差値をシグナリングし得る。デコーダの視点(たとえば、G-PCCデコーダ300の視点)から、ResCrおよびResCbが、それぞれ、CbおよびCrのビットストリームから再構成された残差サンプルである場合、最終的なCr残差は、Res'Cr=ResCr+s*ResCbである。APSにおける追加のフラグであるaps.inter_chroma_prediction_enabled_flagは、この特徴を高レベルで有効化および無効化し得る。
スケーリング係数sが-1、0、または+1に限定される場合、潜在的な問題があり得る。2つのチャネル(たとえば、CbおよびCrのような2つの色成分)間の相関(正または負)は、-1、0、または+1に限定されたスケーリング係数sを使用することによって活用され得るが、正または負の相関を有することに加えて、2つの成分の残差エネルギーが異なり得るという事実があり、このことは、+1、0、または-1だけではうまく表されないことがある。
本開示は、一緒にまたは別々に利用され得るいくつかの例示的な技法について説明する。例示的な技法は、上記で説明した問題に対処し得る。しかしながら、本開示で説明する技法は、上記の問題が本開示で説明する例で対処されることを必要とするものと見なされるべきではない。例示的な技法は、上記で説明した問題とは異なるまたは追加の問題に対処し得る。
本開示の技法によれば、G-PCCエンコーダ200およびG-PCCデコーダ300は、sのより多様化した値を利用するように構成され得る。sのこれらの値はLODごとにシグナリングされてもよく、ここで、sは、pの(分数)精度を有する任意の値であり得る。たとえば、p=1/4の場合、sの可能な値はk*p=k/4であり、ここで、kは整数である。p値の値は固定であってもよく、あらかじめ決定され(たとえば、推論され)てもよく、またはシグナリングされてもよい。
いくつかの例では、s値は、pの精度を有する[-a, +a]の範囲を有してもよい。たとえば、a=2およびp=1/4の場合、スケーリング係数値は、s: {-2, -7/4, -6/4, -5/4, -1, -3/4, -2/4, -1/4, 0, 1/4, 2/4, 3/4, 1, 5/4, 6/4, 7/4, 2}である。a値およびp値は固定であってもよく、あらかじめ決定されてもよく、またはシグナリングされてもよい。
いくつかの例では、精度pは、2のべき乗、すなわち、p=1/2bとして表され得る。sに関連付けられた除算は、右シフト、すなわち、
Res'Cr=ResCr+(k*ResCb>>b)
によって表され得る。ここで、kは、sのスケーリングされたバージョン、すなわち、k=s<<b(s'=s*pに相当するもの)である。
いくつかの例では、予測のために丸め項が組み込まれてもよい。したがって、G-PCCデコーダ300は、最終残差をRes'Cr=ResCr+((k*ResCb+1<<(b-1))>>b)として決定し得る。
G-PCCエンコーダ200は、たとえば、該当する場合(k[lod]が0に等しくない場合)、後に符号が続くk[lod]の絶対値をシグナリングすることによって、ダイレクトコーディングによるLODレベル(k[lod])ごとのkをシグナリングするように構成され得る。マグニチュードコーディング(magnitude coding)の場合、G-PCCエンコーダ200は、固定長コーディング(ただし、長さはあらかじめ決定されてもよく、固定であってもよく、またはシグナリングされてもよい)または可変長コーディングのいずれかを使用するように構成され得る。得られた符号は、近隣LODにおいて相関することが多い。したがって、符号は、専用のコンテキストを用いてコーディングされることもある。
いくつかの例では、異なるLODに対するk値は互いに高度に相関してもよい。したがって、該当する場合、k[lod]はk[lod-1]から予測されてもよく、G-PCCエンコーダ200は差分(k[lod]-k[lod-1])をシグナリングしてもよい。大きさおよび符号は、別々にコーディングされてもよい。
シグナリングは、属性スライスヘッダ(ASH)とも呼ばれる属性データユニットヘッダに置かれてもよい。この場合、k値(ダイレクトコーディングされるかまたは差分コーディングされるかのいずれか)は、se(v)でコーディングされる場合があり、これは、値が符号付き整数0次指数ゴロムコーディングされたシンタックス要素としてコーディングされてもよく、左ビットが先頭であることを意味する。k値をパースするために、G-PCCデコーダ300は、LODの数を識別する情報を必要とすることがある。G-PCCでは、LODの数(LOD1)は、属性パラメータセット(APS)においてシグナリングされ得る。しかしながら、LODの実際の数(LOD2)は、いくつかの事例では、LOD再構成の後でのみ導出されることがあり、LOD1と比べると、より小さいことがある。たとえば、LOD1は12に等しいが、LOD2は10に等しい。すなわち、いくつかのスライスは、非常にスパースに配置された点か、またはすべてのLODが生成され得るわけではないほど非常に少ない点を有することがある。たとえば、例示的なコーディングシナリオでは、LOD1が12に等しいことがあり、LOD2が10に等しいことがある。(LOD再構成の)パース依存を回避するために、G-PCCエンコーダ200は、LOD2値の代わりにLOD1スケール値をシグナリングする、たとえば、常にシグナリングするように構成されてもよいが、最後の(LOD1-LOD2)値は復号プロセス(属性再構成)に使用されないことがあるので、そのような値は0としてシグナリングされてもよい。
G-PCCエンコーダ200は、LODレベルでではなく、スライスレベルでkをシグナリングし得る。スライスレベルでのそのようなシグナリングは、復号プロセスを簡略化することができ、シグナリングオーバーヘッドを低減することもできる。
例示的な技法(たとえば、リフティング変換または逆変換に利用されるコーディングツール)は、ResCrを予測することがCr成分の残差エネルギーを低減し得るので、最後の成分、たとえば、Cr成分をコーディングするときに有意な利得を生み出し得る。成分のすべてにわたる改善のバランスをとるために、量子化パラメータ(QP)オフセットが二次成分(たとえば、二次成分のサブセット)に適用されてもよい。例示的な技法はまた、一般的な多次元属性に適用されてもよく、ここで、成分、すなわち、予測されている成分および予測子として働く成分は、スライスヘッダまたは属性/シーケンスパラメータセットにおいて明示的にシグナリングされ得る。
上記で説明した技法によれば、G-PCCエンコーダ200は、点群の点について、Cb成分などの第1の色成分に対する第1の属性値を決定し、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化するように構成され得る。G-PCCエンコーダ200は、点群の点について、Cr成分などの第2の色成分に対する第2の属性値を決定し得る。G-PCCエンコーダ200は、第2の色成分に対する第2の属性値について、第2の予測された値を決定し得る。G-PCCエンコーダ200は、第2の色成分に対する第2の属性値について、上記のRes'Crなどの第2の残差値を決定し得る。G-PCCエンコーダ200は、非整数値または1よりも大きい絶対値の一方または両方を有するスケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定し得る。スケーリング係数は、たとえば、上記のkなどのスカラー値での乗算によって、および上記で説明した>>bなどのビットシフト演算によって、適用され得る。G-PCCエンコーダ200は、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成し得る。この差分は、たとえば、上記で説明したResCrに対応し得る。
上記で説明した技法によれば、G-PCCデコーダ300は、点群の点について、第1の予測された値および第1の残差値に基づいて、第1の色成分に対する第1の属性値を決定するように構成され得る。第1の色成分は、たとえば、Cb成分であってもよく、第1の残差値は、上記で説明したResCbに対応してもよい。G-PCCデコーダ300は、非整数値または1よりも大きい絶対値の一方または両方を有するスケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定し得る。スケーリング係数は、たとえば、上記のkなどのスカラー値での乗算によって、および上記で説明した>>bなどのビットシフト演算によって、適用され得る。点群の点について、G-PCCデコーダ300は、符号化された点群データにおいて上記で説明したResCrなどの第2の残差値を受信し、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値(たとえば、上記で説明したRes'Cr)を決定し得る。第2の予測された値および最終的な第2の残差値に基づいて、G-PCCデコーダ300は、Cr成分などの第2の色成分に対する第2の属性値を決定し得る。
図4は、本開示の1つまたは複数の技法による、G-PCCエンコーダ200の例示的な動作を示すフローチャートである。G-PCCエンコーダ200は、点群の点について、第1の色成分に対する第1の属性値を決定する(402)。G-PCCエンコーダ200は、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化する(404)。第1の色成分は、たとえば、Cb成分などの第1のクロマ色成分であり得る。
G-PCCエンコーダ200は、点群の点について、第2の色成分に対する第2の属性値を決定する(406)。第2の色成分は、たとえば、Cr成分などの第2のクロマ色成分であり得る。
G-PCCエンコーダ200は、第2の色成分に対する第2の属性値について、第2の予測された値を決定する(408)。G-PCCエンコーダ200は、たとえば、近隣点などの、点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定し得る。G-PCCエンコーダ200は、たとえば、第2の予測された値を以前に復号された点の属性値の加重平均として決定し得る。G-PCCエンコーダ200は、第2の色成分に対する第2の属性値について、第2の残差値を決定する(410)。第2の残差値は、たとえば、第2の属性値と第2の予測された値との間の差分であり得る。
この例では、G-PCCエンコーダ200は、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定し、スケーリング係数は非整数値または1よりも大きい絶対値の一方または両方を有する(412)。G-PCCエンコーダ200は、たとえば、点群データに含めるために、整数値であるスカラー値を決定するためのシンタックス要素を決定し、生成し得る。スカラー値を生成するために、G-PCCエンコーダ200は、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を生成し、差分値を示す可変長シンタックス要素を点群データに含め得る。以前に決定されたスカラー値は、たとえば、点群の詳細レベルとは異なる詳細レベルに対するスカラー値であり得る。G-PCCエンコーダ200は、属性スライスヘッダなどのシンタックス構造の中にスカラー値を含め得る。スケーリング係数を適用するために、G-PCCエンコーダ200は、スカラー値での乗算を実行し、ビットシフト演算を実行し得る。ビットシフト演算は、たとえば、2などの、スケーリング係数の精度に基づいて決定された値だけの右シフトであり得る。
G-PCCエンコーダ200は、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成する(414)。
図5は、本開示の1つまたは複数の技法による、G-PCCデコーダ300の例示的な動作を示すフローチャートである。図5の例では、G-PCCデコーダ300は、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定する(502)。第1の色成分は、たとえば、Cb成分などの第1のクロマ色成分であり得る。
G-PCCデコーダ300は、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定し、スケーリング係数は非整数値または1よりも大きい絶対値の一方または両方を有する(504)。すなわち、-1、0、および1のスケーリング係数に加えて、スケーリング係数は-1から1までの分数値を有することもあり、1よりも大きい大きさを有する整数値と分数値の両方を有することもある。G-PCCデコーダ300は、たとえば、点群データにおいて、属性スライスヘッダなどのシンタックス構造の一部として、整数値であるスカラー値を決定するためのシンタックス要素を受信することと、スカラー値での乗算を実行し、ビットシフト演算を実行することによって、スケーリング係数を適用することとを行い得る。ビットシフト演算は、たとえば、2などの、スケーリング係数の精度に基づいて決定された値だけの右シフトであり得る。G-PCCデコーダ300は、たとえば、スカラー値と点群を含む詳細レベルとは異なる詳細レベルからの以前に決定されたスカラー値との間の差分に対応する差分値を示す可変長シンタックス要素を受信し得る。
この例では、G-PCCデコーダ300は、符号化された点群データにおいて点群の点についての第2の残差値を受信し(506)、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定する(508)。最終的な第2の残差値は、たとえば、受信された第2の残差値と予測された第2の残差値の和であり得る。
G-PCCデコーダ300は、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定する(510)。G-PCCデコーダ300は、たとえば、点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定し得る。G-PCCデコーダ300は、たとえば、第2の予測された値を以前に復号された点の属性値の加重平均として決定し得る。第2の色成分は、たとえば、Cr成分などの第2のクロマ色成分であり得る。G-PCCデコーダ300はまた、点群の点について、ルーマ色成分などの第3の色成分に対する第3の属性値を決定し得る。第1の色成分に対する第1の属性値、第2の色成分に対する第2の属性値、および第3の色成分に対する第3の属性値に基づいて、G-PCCデコーダ300は点群を再構成し得る。
図6は、本開示の1つまたは複数の技法とともに使用され得る例示的な距離測定システム600を示す概念図である。図6の例では、距離測定システム600は、照明器602およびセンサ604を含む。照明器602は、光606を放出し得る。いくつかの例では、照明器602は、1つまたは複数のレーザービームとして光606を放出し得る。光606は、赤外波長または可視光波長などの1つまたは複数の波長内にあり得る。他の例では、光606はコヒーレントレーザー光ではない。光606がオブジェクト608などのオブジェクトに遭遇したとき、光606は戻り光610を生じる。戻り光610は後方散乱光および/または反射光を含み得る。戻り光610は、センサ604上でオブジェクト608の画像612を作成するために戻り光610を方向づけるレンズ611を通過し得る。センサ604は、画像612に基づいて信号618を生成する。画像612は、(たとえば、図6の画像612のドットによって表されるような)点のセットを含み得る。
いくつかの例では、照明器602およびセンサ604は、照明器602およびセンサ604が環境の360度ビューをキャプチャするように、回転構造体上に取り付けられ得る。他の例では、距離測定システム600は、照明器602およびセンサ604が特定の範囲(たとえば、最大360度)内のオブジェクトを検出することを可能にする、1つまたは複数の光学構成要素(たとえば、ミラー、コリメータ、回折格子など)を含み得る。図6の例は単一の照明器602およびセンサ604のみを示しているが、距離測定システム600は照明器およびセンサの複数のセットを含み得る。
いくつかの例では、照明器602は構造化光パターンを生成する。そのような例では、距離測定システム600は、その上で構造化光パターンのそれぞれの画像が形成される複数のセンサ604を含み得る。距離測定システム600は、そこから構造化光パターンが後方散乱するオブジェクト608までの距離を決定するために、構造化光パターンの画像間の視差を使用し得る。構造化光ベースの距離測定システムは、オブジェクト608がセンサ604に比較的近い(たとえば、0.2メートルから2メートル)とき、高レベルの精度(たとえば、サブミリメートル範囲での精度)を有し得る。この高レベルの精度は、モバイルデバイス(たとえば、モバイルフォン、タブレットコンピュータなど)をロック解除するなどの顔認識アプリケーションにおいて、およびセキュリティアプリケーション用に有用であり得る。
いくつかの例では、距離測定システム600は飛行時間(ToF)ベースのシステムである。距離測定システム600がToFベースのシステムであるいくつかの例では、照明器602は光のパルスを生成する。言い換えれば、照明器602は、放出された光606の振幅を変調し得る。そのような例では、センサ604は、照明器602によって生成された光606のパルスから戻り光610を検出する。次いで、距離測定システム600は、光606が放出され検出されたときから空気中の既知の光速までの間の遅延に基づいて、そこから光606が後方散乱するオブジェクト608までの距離を決定し得る。いくつかの例では、放出された光606の振幅を変調するのではなく(またはそれに加えて)、照明器602は放出された光606の位相を変調し得る。そのような例では、センサ604は、オブジェクト608から戻り光610の位相を検出し、光速を使用して、かつ照明器602が特定の位相において光606を生成したときからセンサ604がその特定の位相において戻り光610を検出したときまでの間の時間差に基づいて、オブジェクト608上の点までの距離を決定し得る。
他の例では、点群は、照明器602を使用することなしに生成され得る。たとえば、いくつかの例では、距離測定システム600のセンサ604は2つ以上の光学カメラを含み得る。そのような例では、距離測定システム600は、オブジェクト608を含む環境の立体画像(stereo image)をキャプチャするために光学カメラを使用し得る。次いで、距離測定システム600(たとえば、点群生成器620)は、立体画像内のロケーション間の視差を計算し得る。次いで、距離測定システム600は、立体画像に示されているロケーションまでの距離を決定するために視差を使用し得る。これらの距離から、点群生成器620は点群を生成し得る。
センサ604は、色および反射情報などの、オブジェクト608の他の属性も検出し得る。図6の例では、点群生成器620は、センサ604によって生成された信号618に基づいて点群を生成し得る。距離測定システム600および/または点群生成器620は、データソース104(図1)の一部を形成し得る。
図7は、本開示の1つまたは複数の技法が使用され得る例示的な車両ベースのシナリオを示す概念図である。図7の例では、車両700は、LIDARシステムなどのレーザーパッケージ702を含む。図7の例には示されていないが、車両700は、データソースおよびG-PCCエンコーダ200(図1)などのG-PCCエンコーダも含み得る。図7の例では、レーザーパッケージ702は、道路の歩行者706または他のオブジェクトに反射するレーザービーム704を放出する。車両700のデータソースは、レーザーパッケージ702によって生成された信号に基づいて点群を生成し得る。車両700のG-PCCエンコーダは、点群を符号化して、ビットストリーム708を生成し得る。ビットストリーム708は、G-PCCエンコーダによって取得された符号化されていない点群よりもはるかに少ないビットを含み得る。車両700の出力インターフェース(たとえば、出力インターフェース108(図1))は、ビットストリーム708を1つまたは複数の他のデバイスに送信し得る。したがって、車両700は、符号化されていない点群データよりも迅速にビットストリーム708を他のデバイスに送信することが可能であり得る。追加として、ビットストリーム708は、より少ないデータ記憶容量を必要とし得る。
図7の例では、車両700は、ビットストリーム708を別の車両710に送信し得る。車両710は、G-PCCデコーダ300(図1)などのG-PCCデコーダを含み得る。車両710のG-PCCデコーダは、ビットストリーム708を復号して、点群を再構成し得る。車両710は、様々な目的で再構成された点群を使用し得る。たとえば、車両710は、再構成された点群に基づいて、歩行者706が車両700の前方の道路にいることを決定し、したがって、たとえば、歩行者706が道路にいることを車両710の運転者が認識する前でも、減速し始めることができる。したがって、いくつかの例では、車両710は、再構成された点群に基づいて、自律ナビゲーション動作を実行し、通知もしくは警告を生成し、または別のアクションを実行し得る。
追加または代替として、車両700は、ビットストリーム708をサーバシステム712に送信し得る。サーバシステム712は、様々な目的でビットストリーム708を使用し得る。たとえば、サーバシステム712は、点群のその後の再構成のためにビットストリーム708を記憶し得る。この例では、サーバシステム712は、他のデータ(たとえば、車両700によって生成された車両テレメトリデータ)とともに点群を使用して、自律運転システムを訓練し得る。他の例では、サーバシステム712は、法医学的衝突調査用(たとえば、車両700が歩行者706と衝突した場合)のその後の再構成のためにビットストリーム708を記憶してもよく、またはナビゲーション用の通知もしくは命令を車両700もしくは車両710に送信してもよい。
図8は、本開示の1つまたは複数の技法が使用され得る例示的なエクステンデッドリアリティシステムを示す概念図である。エクステンデッドリアリティ(XR)は、拡張現実(AR)、複合現実(MR)、および仮想現実(VR)を含む様々な技術をカバーするために使用される用語である。図8の例では、第1のユーザ800は第1のロケーション802に位置している。ユーザ800はXRヘッドセット804を装着している。XRヘッドセット804の代替として、ユーザ800はモバイルデバイス(たとえば、モバイルフォン、タブレットコンピュータなど)を使用してもよい。XRヘッドセット804は、第1のロケーション802におけるオブジェクト806上の点の位置を検出する、LIDARシステムなどの深度検出センサを含む。XRヘッドセット804のデータソースは、深度検出センサによって生成された信号を使用して、ロケーション802におけるオブジェクト806の点群表現を生成し得る。XRヘッドセット804は、点群を符号化して、ビットストリーム808を生成するように構成されたG-PCCエンコーダ(たとえば、図1のG-PCCエンコーダ200)を含み得る。
XRヘッドセット804は、ビットストリーム808を(たとえば、インターネットなどのネットワークを介して)第2のロケーション814におけるユーザ812が装着するXRヘッドセット810に送信し得る。XRヘッドセット810は、ビットストリーム808を復号して、点群を再構成し得る。XRヘッドセット810は、点群を使用して、ロケーション802におけるオブジェクト806を表すXR視覚化(たとえば、AR、MR、VR視覚化)を生成し得る。したがって、XRヘッドセット810がVR視覚化を生成するときなどの、いくつかの例では、ロケーション814におけるユーザ812は、ロケーション802の3D没入型体験を有し得る。いくつかの例では、XRヘッドセット810は、再構成された点群に基づいて仮想オブジェクトの位置を決定し得る。たとえば、XRヘッドセット810は、再構成された点群に基づいて、環境(たとえば、ロケーション802)が平坦な表面を含むと決定し、次いで、仮想オブジェクト(たとえば、漫画のキャラクター)が平坦な表面上に配置されるべきであると決定し得る。XRヘッドセット810は、仮想オブジェクトが決定された位置にあるXR視覚化を生成し得る。たとえば、XRヘッドセット810は、平坦な表面に座っている漫画のキャラクターを示し得る。
図9は、本開示の1つまたは複数の技法が使用され得る例示的なモバイルデバイスシステムを示す概念図である。図9の例では、モバイルフォンまたはタブレットコンピュータなどのモバイルデバイス900は、モバイルデバイス900の環境内のオブジェクト902上の点の位置を検出する、LIDARシステムなどの深度検出センサを含む。モバイルデバイス900のデータソースは、深度検出センサによって生成された信号を使用して、オブジェクト902の点群表現を生成し得る。モバイルデバイス900は、点群を符号化して、ビットストリーム904を生成するように構成されたG-PCCエンコーダ(たとえば、図1のG-PCCエンコーダ200)を含み得る。図9の例では、モバイルデバイス900は、ビットストリームをサーバシステムまたは他のモバイルデバイスなどのリモートデバイス906に送信し得る。リモートデバイス906は、ビットストリーム904を復号して、点群を再構成し得る。リモートデバイス906は、様々な目的で点群を使用し得る。たとえば、リモートデバイス906は、点群を使用して、モバイルデバイス900の環境のマップを生成し得る。たとえば、リモートデバイス906は、再構成された点群に基づいて建物の内部のマップを生成し得る。別の例では、リモートデバイス906は、点群に基づいて像(たとえば、コンピュータグラフィックス)を生成し得る。たとえば、リモートデバイス906は、点群の点をポリゴンの頂点として使用し、点の色属性をポリゴンをシェーディングするための基礎として使用し得る。いくつかの例では、リモートデバイス906は、点群を使用して顔認識を実行し得る。
本開示の様々な態様における例は、個々にまたは任意の組合せで使用され得る。
以下の番号付き条項は、本開示で説明するデバイスおよび技法の1つまたは複数の態様を示す。
条項1A. 点群データを復号する方法であって、点群データの第1の色成分の第1の係数と第2の色成分の第2の係数との間の関係を示す1つまたは複数の値を決定するステップであって、1つまたは複数の値が、-1、0、および1に加えたまたは-1、0、および1の代わりの値を含む値の範囲からの1つまたは複数の値を含む、ステップと、1つまたは複数の値に基づいて第1の係数または第2の係数のうちの少なくとも1つを決定するステップと、決定された第1の係数または決定された第2の係数のうちの少なくとも1つに基づいて点群データを再構成するステップとを含む方法。
条項2A. 第1の係数および第2の係数が、それぞれ、第1の色成分および第2の色成分の値を生成するリフティング逆変換のためのリフティング係数である、条項1Aの方法。
条項3A. 第1の色成分がCb成分またはCr成分のうちの一方であり、第2の色成分がCb成分またはCr成分のうちの他方である、条項1Aおよび2Aのいずれかの方法。
条項4A. 値の範囲がpの分数精度を有する任意の値を含み、pが固定値、推論された値、または受信された値のうちの少なくとも1つである、条項1A~3Aのいずれかの方法。
条項5A. 値の範囲がpの精度を有する[-a, +a]の範囲内の任意の値を含み、aおよびpが固定値、推論された値、または受信された値のうちの少なくとも1つである、条項1A~3Aのいずれかの方法。
条項6A. pの値が1/2bに等しく、bが整数である、条項4Aおよび5Aのいずれかの方法。
条項7A. 1つまたは複数の値を決定するステップが、1つまたは複数の値を受信するステップを含む、条項1A~6Aのいずれかの方法。
条項8A. 点群に基づいて像を提示するステップをさらに含む、条項1A~7Aのいずれかの方法。
条項9A. 点群データを符号化する方法であって、点群データの第1の色成分の第1の係数および第2の色成分の第2の係数のうちの少なくとも1つを決定するステップと、第1の色成分の第1の係数と第2の色成分の第2の係数との間の関係を示す1つまたは複数の値を決定するステップであって、1つまたは複数の値が、-1、0、および1に加えたまたは-1、0、および1の代わりの値を含む値の範囲からの1つまたは複数の値を含む、ステップと、決定された1つまたは複数の値をシグナリングするステップとを含む方法。
条項10A. 第1の係数および第2の係数が、それぞれ、第1の色成分および第2の色成分の値を変換するリフティング変換のためのリフティング係数である、条項9Aの方法。
条項11A. 第1の色成分がCb成分またはCr成分のうちの一方であり、第2の色成分がCb成分またはCr成分のうちの他方である、条項9Aおよび10Aのいずれかの方法。
条項12A. 値の範囲がpの分数精度を有する任意の値を含み、pが固定値、推論された値、またはシグナリングされた値のうちの少なくとも1つである、条項9A~11Aのいずれかの方法。
条項13A. 値の範囲がpの精度を有する[-a, +a]の範囲内の任意の値を含み、aおよびpが固定値、推論された値、またはシグナリングされた値のうちの少なくとも1つである、条項9A~11Aのいずれかの方法。
条項14A. pの値が1/2bに等しく、bが整数である、条項12Aおよび13Aのいずれかの方法。
条項15A. 点群を生成するステップをさらに含む、条項9A~14Aのいずれかの方法。
条項16A. 点群データを復号するためのデバイスであって、点群データを記憶するように構成されたメモリと、メモリに結合され、固定機能またはプログラマブル回路のうちの少なくとも1つを備えるプロセッサであって、条項1A~8Aのいずれかの方法を実行するように構成されたプロセッサとを備えるデバイス。
条項17A. デバイスがデコーダを備える、条項16Aのデバイス。
条項18A. 点群に基づいて像を提示するためのディスプレイをさらに備える、条項16Aおよび17Aのいずれかのデバイス。
条項19A. 点群データを符号化するためのデバイスであって、点群データを記憶するように構成されたメモリと、メモリに結合され、固定機能またはプログラマブル回路のうちの少なくとも1つを備えるプロセッサであって、条項9A~15Aのいずれかの方法を実行するように構成されたプロセッサとを備えるデバイス。
条項20A. デバイスがエンコーダを備える、条項19Aのデバイス。
条項21A. 点群データを復号するためのデバイスであって、条項1A~8Aのいずれかの方法を実行するための手段を備えるデバイス。
条項22A. 点群データを符号化するためのデバイスであって、条項9A~15Aのいずれかの方法を実行するための手段を備えるデバイス。
条項23A. 実行されると、1つまたは複数のプロセッサに条項1~8のいずれかの方法を実行させる命令をその上に記憶するコンピュータ可読記憶媒体。
条項24A. 実行されると、1つまたは複数のプロセッサに条項9A~15Aのいずれかの方法を実行させる命令をその上に記憶するコンピュータ可読記憶媒体。
条項25A. 符号化された点群データを復号するためのデバイスであって、符号化された点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群の点について、符号化された点群データにおいて第2の残差値を受信することと、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定することと、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定することとを行うように構成される、デバイス。
条項26A. 1つまたは複数のプロセッサが、点群データにおいて、スカラー値を決定するためのシンタックス要素を受信するようにさらに構成され、スカラー値が整数値であり、スケーリング係数を適用するために、1つまたは複数のプロセッサが、スカラー値での乗算を実行し、ビットシフト演算を実行するようにさらに構成される、条項25Aのデバイス。
条項27A. ビットシフト演算を実行するために、1つまたは複数のプロセッサが、2だけ右シフトを実行するようにさらに構成される、条項26Aのデバイス。
条項28A. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項26Aのデバイス。
条項29A. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項28Aのデバイス。
条項30A. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項28Aのデバイス。
条項31A. スカラー値を決定するためのシンタックス要素を受信するために、1つまたは複数のプロセッサが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造において受信するようにさらに構成される、条項26Aのデバイス。
条項32A. 1つまたは複数のプロセッサが、点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するようにさらに構成される、条項25Aのデバイス。
条項33A. スケーリング係数を決定するために、1つまたは複数のプロセッサが、第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するようにさらに構成される、条項25Aのデバイス。
条項34A. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項25Aのデバイス。
条項35A. 1つまたは複数のプロセッサが、点群の点について、第3の色成分に対する第3の属性値を決定するようにさらに構成され、第3の色成分がルーマ色成分を含む、条項34Aのデバイス。
条項36A. 1つまたは複数のプロセッサが、点群を再構成するようにさらに構成される、条項25Aのデバイス。
条項37A. 1つまたは複数のプロセッサが、再構成された点群に基づいて建物の内部のマップを生成するようにさらに構成される、条項36Aのデバイス。
条項38A. 1つまたは複数のプロセッサが、再構成された点群に基づいて自律ナビゲーション動作を実行するようにさらに構成される、条項36Aのデバイス。
条項39A. 1つまたは複数のプロセッサが、再構成された点群に基づいてコンピュータグラフィックスを生成するようにさらに構成される、条項36Aのデバイス。
条項40A. 1つまたは複数のプロセッサが、再構成された点群に基づいて仮想オブジェクトの位置を決定し、仮想オブジェクトが決定された位置にあるエクステンデッドリアリティ(XR)視覚化を生成するように構成される、条項36のデバイス。
条項41A. 再構成された点群に基づいて像を提示するためのディスプレイをさらに備える、条項36Aのデバイス。
条項42A. デバイスがモバイルフォンまたはタブレットコンピュータのうちの1つである、条項25Aのデバイス。
条項43A. デバイスが車両である、条項25Aのデバイス。
条項44A. デバイスがエクステンデッドリアリティデバイスである、条項25Aのデバイス。
条項45A. 符号化された点群データを復号する方法であって、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定するステップと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定するステップであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、ステップと、点群の点について、符号化された点群データにおいて第2の残差値を受信するステップと、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定するステップと、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定するステップとを含む方法。
条項46A. 点群データにおいて、スカラー値を決定するためのシンタックス要素を受信するステップをさらに含み、スカラー値が整数値であり、スケーリング係数を適用するステップが、スカラー値での乗算を実行し、ビットシフト演算を実行するステップを含む、条項45Aの方法。
条項47A. ビットシフト演算を実行するステップが、2だけ右シフトを実行するステップを含む、条項46Aの方法。
条項48A. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項46Aの方法。
条項49A. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項48Aの方法。
条項50A. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項48Aの方法。
条項51A. スカラー値を決定するためのシンタックス要素を受信するステップが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造において受信するステップを含む、条項46Aの方法。
条項52A. 点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するステップをさらに含む、条項45Aの方法。
条項53A. スケーリング係数を決定するステップが、第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するステップを含む、条項45Aの方法。
条項54A. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項45Aの方法。
条項55A. 点群の点について、第3の色成分に対する第3の属性値を決定するステップをさらに含み、第3の色成分がルーマ色成分を含む、条項54Aの方法。
条項56A. 点群データを符号化するためのデバイスであって、符号化された点群データを記憶するように構成されたメモリと、メモリに結合され、回路において実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、点群の点について、第1の色成分に対する第1の属性値を決定することと、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化することと、点群の点について、第2の色成分に対する第2の属性値を決定することと、第2の色成分に対する第2の属性値について、第2の予測された値を決定することと、第2の色成分に対する第2の属性値について、第2の残差値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成することとを行うように構成される、デバイス。
条項57A. 1つまたは複数のプロセッサが、点群データに含めるために、スカラー値を決定するためのシンタックス要素を生成するようにさらに構成され、スカラー値が整数値であり、スケーリング係数を適用することが、スカラー値での乗算を実行し、ビットシフト演算を実行することを含む、条項56Aのデバイス。
条項58A. ビットシフト演算を実行するために、1つまたは複数のプロセッサが、2だけ右シフトを実行するようにさらに構成される、条項57Aのデバイス。
条項59A. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項57Aのデバイス。
条項60A. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項59Aのデバイス。
条項61A. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項57Aのデバイス。
条項62A. スカラー値を決定するためのシンタックス要素を生成するために、1つまたは複数のプロセッサが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造に含めるようにさらに構成される、条項57Aのデバイス。
条項63A. 1つまたは複数のプロセッサが、点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するようにさらに構成される、条項56Aのデバイス。
条項64A. スケーリング係数を決定するために、1つまたは複数のプロセッサが、第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するようにさらに構成される、条項56Aのデバイス。
条項65A. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項56Aのデバイス。
条項66A. 1つまたは複数のプロセッサが、点群の点について、第3の色成分に対する第3の属性値を決定するようにさらに構成され、第3の色成分がルーマ色成分を含む、条項65Aのデバイス。
条項67A. 点群データを生成するためのセンサをさらに備える、条項56Aのデバイス。
条項68A. 点群データを符号化する方法であって、点群の点について、第1の色成分に対する第1の属性値を決定するステップと、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化するステップと、点群の点について、第2の色成分に対する第2の属性値を決定するステップと、第2の色成分に対する第2の属性値について、第2の予測された値を決定するステップと、第2の色成分に対する第2の属性値について、第2の残差値を決定するステップと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定するステップであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、ステップと、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成するステップとを含む方法。
条項69A. 点群データに含めるために、スカラー値を決定するためのシンタックス要素を生成するステップをさらに含み、スカラー値が整数値であり、スケーリング係数を適用するステップが、スカラー値での乗算を実行し、ビットシフト演算を実行するステップを含む、条項44Aの方法。
条項70A. ビットシフト演算を実行するステップが、2だけ右シフトを実行するステップを含む、条項45Aの方法。
条項71A. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項45Aの方法。
条項72A. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項47Aの方法。
条項73A. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項45Aの方法。
条項74A. スカラー値を決定するためのシンタックス要素を生成するステップが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造に含めるステップを含む、条項45Aの方法。
条項75A. 点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するステップをさらに含む、条項44Aの方法。
条項76A. スケーリング係数を決定するステップが、第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するステップを含む、条項44Aの方法。
条項77A. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項44Aの方法。
条項78A. 点群の点について、第3の色成分に対する第3の属性値を決定するステップをさらに含み、第3の色成分がルーマ色成分を含む、条項53Aの方法。
条項79A. 命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群の点について、符号化された点群データにおいて第2の残差値を受信することと、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定することと、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定することとを行わせる、コンピュータ可読記憶媒体。
条項80A. 命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、点群の点について、第1の色成分に対する第1の属性値を決定することと、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化することと、点群の点について、第2の色成分に対する第2の属性値を決定することと、第2の色成分に対する第2の属性値について、第2の予測された値を決定することと、第2の色成分に対する第2の属性値について、第2の残差値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成することとを行わせる、コンピュータ可読記憶媒体。
条項1B. 符号化された点群データを復号するためのデバイスであって、符号化された点群データを記憶するように構成されたメモリと、回路において実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群の点について、符号化された点群データにおいて第2の残差値を受信することと、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定することと、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定することとを行うように構成される、デバイス。
条項2B. 1つまたは複数のプロセッサが、点群データにおいて、スカラー値を決定するためのシンタックス要素を受信するようにさらに構成され、スカラー値が整数値であり、スケーリング係数を適用するために、1つまたは複数のプロセッサが、スカラー値での乗算を実行し、ビットシフト演算を実行するようにさらに構成される、条項1Bのデバイス。
条項3B. ビットシフト演算を実行するために、1つまたは複数のプロセッサが、2だけ右シフトを実行するようにさらに構成される、条項2Bのデバイス。
条項4B. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項2Bまたは3Bのデバイス。
条項5B. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項4Bのデバイス。
条項6B. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項4Bまたは5Bのデバイス。
条項7B. スカラー値を決定するためのシンタックス要素を受信するために、1つまたは複数のプロセッサが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造において受信するようにさらに構成される、条項2B~6Bのいずれかのデバイス。
条項8B. 1つまたは複数のプロセッサが、点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するようにさらに構成される、条項1B~7Bのいずれかのデバイス。
条項9B. 点群が、第1の詳細レベルのための点群を含み、スケーリング係数を決定するために、1つまたは複数のプロセッサが、第1の詳細レベルとは異なる第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するようにさらに構成される、条項1B~8Bのいずれかのデバイス。
条項10B. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項1B~9Bのいずれかのデバイス。
条項11B. 1つまたは複数のプロセッサが、点群の点について、第3の色成分に対する第3の属性値を決定するようにさらに構成され、第3の色成分がルーマ色成分を含む、条項10Bのデバイス。
条項12B. 1つまたは複数のプロセッサが、点群を再構成するようにさらに構成される、条項1B~11Bのいずれかのデバイス。
条項13B. 1つまたは複数のプロセッサが、再構成された点群に基づいて建物の内部のマップを生成するようにさらに構成される、条項12Bのデバイス。
条項14B. 1つまたは複数のプロセッサが、再構成された点群に基づいて自律ナビゲーション動作を実行するようにさらに構成される、条項12Bのデバイス。
条項15B. 1つまたは複数のプロセッサが、再構成された点群に基づいてコンピュータグラフィックスを生成するようにさらに構成される、条項12Bのデバイス。
条項16B. 1つまたは複数のプロセッサが、再構成された点群に基づいて仮想オブジェクトの位置を決定し、仮想オブジェクトが決定された位置にあるエクステンデッドリアリティ(XR)視覚化を生成するように構成される、条項12Bのデバイス。
条項17B. 再構成された点群に基づいて像を提示するためのディスプレイをさらに備える、条項12B~16Bのいずれかのデバイス。
条項18B. デバイスがモバイルフォンまたはタブレットコンピュータのうちの1つである、条項1B~17Bのいずれかのデバイス。
条項19B. デバイスが車両である、条項1B~14Bまたは17Bのいずれかのデバイス。
条項20B. デバイスがエクステンデッドリアリティデバイスである、条項1B~19Bのいずれかのデバイス。
条項21B. 符号化された点群データを復号する方法であって、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定するステップと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定するステップであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、ステップと、点群の点について、符号化された点群データにおいて第2の残差値を受信するステップと、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定するステップと、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定するステップとを含む方法。
条項22B. 点群データにおいて、スカラー値を決定するためのシンタックス要素を受信するステップをさらに含み、スカラー値が整数値であり、スケーリング係数を適用するステップが、スカラー値での乗算を実行し、ビットシフト演算を実行するステップを含む、条項21Bの方法。
条項23B. ビットシフト演算を実行するステップが、2だけ右シフトを実行するステップを含む、条項22Bの方法。
条項24B. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項22Bまたは23Bの方法。
条項25B. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項24Bの方法。
条項26B. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項24Bまたは25Bの方法。
条項27B. スカラー値を決定するためのシンタックス要素を受信するステップが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造において受信するステップを含む、条項22B~26Bのいずれかの方法。
条項28B. 点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するステップをさらに含む、条項21B~27Bのいずれかの方法。
条項29B. スケーリング係数を決定するステップが、第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するステップを含む、条項21B~28Bのいずれかの方法。
条項30B. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項21B~29Bのいずれかの方法。
条項31B. 点群の点について、第3の色成分に対する第3の属性値を決定するステップをさらに含み、第3の色成分がルーマ色成分を含む、条項30Bの方法。
条項32B. 点群データを符号化するためのデバイスであって、符号化された点群データを記憶するように構成されたメモリと、回路において実装された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、点群の点について、第1の色成分に対する第1の属性値を決定することと、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化することと、点群の点について、第2の色成分に対する第2の属性値を決定することと、第2の色成分に対する第2の属性値について、第2の予測された値を決定することと、第2の色成分に対する第2の属性値について、第2の残差値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成することとを行うように構成される、デバイス。
条項33B. 1つまたは複数のプロセッサが、点群データに含めるために、スカラー値を決定するためのシンタックス要素を生成するようにさらに構成され、スカラー値が整数値であり、スケーリング係数を適用することが、スカラー値での乗算を実行し、ビットシフト演算を実行することを含む、条項32Bのデバイス。
条項34B. ビットシフト演算を実行するために、1つまたは複数のプロセッサが、2だけ右シフトを実行するようにさらに構成される、条項33Bのデバイス。
条項35B. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分に対応する差分値を示す、条項33Bまたは34Bのデバイス。
条項36B. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項35Bのデバイス。
条項37B. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項33B~36Bのいずれかのデバイス。
条項38B. スカラー値を決定するためのシンタックス要素を生成するために、1つまたは複数のプロセッサが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造に含めるようにさらに構成される、条項33B~38Bのいずれかのデバイス。
条項39B. 1つまたは複数のプロセッサが、点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するようにさらに構成される、条項32B~38Bのいずれかのデバイス。
条項40B. 点群が、第1の詳細レベルのための点群を含み、スケーリング係数を決定するために、1つまたは複数のプロセッサが、第1の詳細レベルとは異なる第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するようにさらに構成される、条項32B~39Bのいずれかのデバイス。
条項41B. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項32B~40Bのいずれかのデバイス。
条項42B. 1つまたは複数のプロセッサが、点群の点について、第3の色成分に対する第3の属性値を決定するようにさらに構成され、第3の色成分がルーマ色成分を含む、条項41Bのデバイス。
条項43B. 点群データを生成するためのセンサをさらに備える、条項32B~42Bのいずれかのデバイス。
条項44B. 点群データを符号化する方法であって、点群の点について、第1の色成分に対する第1の属性値を決定するステップと、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化するステップと、点群の点について、第2の色成分に対する第2の属性値を決定するステップと、第2の色成分に対する第2の属性値について、第2の予測された値を決定するステップと、第2の色成分に対する第2の属性値について、第2の残差値を決定するステップと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定するステップであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、ステップと、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成するステップとを含む方法。
条項45B. 点群データに含めるために、スカラー値を決定するためのシンタックス要素を生成するステップをさらに含み、スカラー値が整数値であり、スケーリング係数を適用するステップが、スカラー値での乗算を実行し、ビットシフト演算を実行するステップを含む、条項44Bの方法。
条項46B. ビットシフト演算を実行するステップが、2だけ右シフトを実行するステップを含む、条項45Bの方法。
条項47B. スカラー値を決定するためのシンタックス要素が、スカラー値と以前に決定されたスカラー値との間の差分を示す、条項45Bまたは46Bの方法。
条項48B. スカラー値を決定するためのシンタックス要素が、差分値を示す可変長シンタックス要素を含む、条項47Bの方法。
条項49B. 点群が、第1の詳細レベルのための点群を含み、以前に決定されたスカラー値が、第1の詳細レベルとは異なる第2の詳細レベルのためのものである、条項45B~48Bのいずれかの方法。
条項50B. スカラー値を決定するためのシンタックス要素を生成するステップが、スカラー値を決定するためのシンタックス要素を属性スライスヘッダシンタックス構造に含めるステップを含む、条項45B~49Bのいずれかの方法。
条項51B. 点群の1つまたは複数の異なる点の値に基づいて、点群の点についての第2の予測された値を決定するステップをさらに含む、条項44B~50Bのいずれかの方法。
条項52B. スケーリング係数を決定するステップが、第2の詳細レベルのためのスケーリング係数に基づいてスケーリング係数を決定するステップを含む、条項44B~51Bのいずれかの方法。
条項53B. 第1の色成分が第1のクロマ色成分を含み、第2の色成分が第2のクロマ色成分を含む、条項44B~52Bのいずれかの方法。
条項54B. 点群の点について、第3の色成分に対する第3の属性値を決定するステップをさらに含み、第3の色成分がルーマ色成分を含む、条項53Bの方法。
条項55B. 命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、点群の点について、第1の予測された値および第1の残差値に基づいて第1の色成分に対する第1の属性値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群の点について、符号化された点群データにおいて第2の残差値を受信することと、予測された第2の残差値および受信された第2の残差値に基づいて最終的な第2の残差値を決定することと、点群の点について、第2の予測された値および最終的な第2の残差値に基づいて第2の色成分に対する第2の属性値を決定することとを行わせる、コンピュータ可読記憶媒体。
条項56B. 命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、点群の点について、第1の色成分に対する第1の属性値を決定することと、第1の色成分に対する第1の属性値を第1の予測された値および第1の残差値として符号化することと、点群の点について、第2の色成分に対する第2の属性値を決定することと、第2の色成分に対する第2の属性値について、第2の予測された値を決定することと、第2の色成分に対する第2の属性値について、第2の残差値を決定することと、スケーリング係数を第1の残差値に適用して、予測された第2の残差値を決定することであって、スケーリング係数が非整数値または1よりも大きい絶対値の一方または両方を有する、決定することと、点群データに含めるために、第2の残差値と予測された第2の残差値との間の差分を表すシンタックス要素を生成することとを行わせる、コンピュータ可読記憶媒体。
条項57B. 1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに条項21B~31Bのいずれかの方法を実行させるコンピュータ実行可能命令を含む、コンピュータプログラム製品。
条項58B. 1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに条項44B~54Bのいずれかの方法を実行させるコンピュータ実行可能命令を含む、コンピュータプログラム製品。
本開示の様々な態様における例は、個々にまたは任意の組合せで使用され得る。
例に応じて、本明細書で説明する技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行される場合があり、追加され、統合され、または完全に除外されてもよい(たとえば、説明したすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて、同時に実行されてもよい。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はレーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つもしくは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明する技法の実装に適した任意の他の構造のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供されてもよく、または複合コーデックに組み込まれてもよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて本開示で説明したが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされてもよく、または好適なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてもよい。
様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲内に入る。