(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-09
(45)【発行日】2024-04-17
(54)【発明の名称】ポイントクラウドコーディングのための距離ベースの加重平均を計算する方法および装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20240410BHJP
H04N 19/597 20140101ALI20240410BHJP
【FI】
G06T7/00 C
H04N19/597
(21)【出願番号】P 2022567067
(86)(22)【出願日】2022-06-02
(86)【国際出願番号】 US2022072707
(87)【国際公開番号】W WO2022261605
(87)【国際公開日】2022-12-15
【審査請求日】2022-11-02
(32)【優先日】2021-06-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-05-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】笠田 和宏
(56)【参考文献】
【文献】米国特許出願公開第2021/0104013(US,A1)
【文献】特表2014-523698(JP,A)
【文献】特開昭60-128497(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
H04N 19/597
(57)【特許請求の範囲】
【請求項1】
ポイントクラウドコーディングのための方法であって、
ポイントクラウド内の現在のポイントと関連付けられる情報をコーディングするために予測モードを使用することを決定することであって、前記現在のポイントと関連付けられる前記情報は、前記現在のポイントの1つ以上の隣接ポイントに基づいて前記予測モードにおいて予測される、決定することと、
整数演算を使用して、前記現在のポイントまでの前記1つ以上の隣接ポイントの距離に基づいて、距離ベースの加重平均値を計算することと、
前記距離ベースの加重平均値に基づいて、前記現在のポイントと関連付けられる前記情報を決定することと、を含
み、
前記距離ベースの加重平均値を計算することは、
除数によって被除数を除算する整数除算演算に基づいて、第1の隣接ポイントの情報を重み付けるための第1の変換された重みを計算することを含み、
前記被除数は、1よりも大きい絶対値を持つ整数であり、前記除数は、前記第1の隣接ポイントと前記現在のポイントとの間の距離に基づき、
前記距離ベースの加重平均値を計算することは、
前記1つ以上の隣接ポイントの加重属性の合計を計算することであって、前記加重属性中の第1の加重属性は、前記第1の隣接ポイントと関連付けられ、前記第1の隣接ポイントと関連付けられる第1の属性と前記第1の変換された重みとの乗算に基づいて計算される、計算することと、
前記1つ以上の隣接ポイントと関連付けられる変換された重みの合計を計算することであって、前記変換された重みは、前記第1の変換された重みを含む、計算することと、
前記変換された重みの前記合計による前記加重属性の前記合計の除算に基づいて前記距離ベースの加重平均値を決定することと、を含み、
当該方法は、
前記変換された重みの前記合計がゼロであることに応答して、前記1つ以上の隣接ポイントのうちの最も近い隣接ポイントに基づいて、前記現在のポイントと関連付けられる属性値を決定すること、および、
前記変換された重みの前記合計がゼロであることに応答して、前記1つ以上の隣接ポイントの属性の平均に基づいて、前記現在のポイントと関連付けられる属性値を決定すること
のうちの少なくとも1つを更に含む、
方法。
【請求項2】
前記現在のポイントと関連付けられる前記情報は、前記現在のポイントの幾何学的形状情報および前記現在のポイントの属性情報のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記距離ベースの加重平均値を計算することは、
重み計算において浮動小数点データタイプの使用を除外することを含む、
請求項1に記載の方法。
【請求項4】
前記第1の変換された重みを計算することは、
ビット単位の左シフトに基づいて前記被除数を得ることを含む、
請求項
1に記載の方法。
【請求項5】
前記第1の属性および前記第1の変換された重みに基づくルックアップ演算に応答してルックアップテーブルから出力される前記第1の加重属性を受信することを更に含む、請求項
1に記載の方法。
【請求項6】
前記変換された重みのうちの少なくとも1つが上限よりも大きいことに応答して、前記変換された重みをそれぞれダウンスケールすることを更に含む、請求項
1に記載の方法。
【請求項7】
変換モデルに従って、前記距離に基づいて重みを計算することと、
前記整数演算を使用して、前記重みに基づいて前記距離ベースの加重平均値を計算することと、を更に含み、
前記変換モデルは、線型モデル、二次モデル、および非線形モデルのうちの1つを含む、
請求項1に記載の方法。
【請求項8】
処理回路構成を含む、ポイントクラウドコーディングのための装置であって、
前記処理回路構成は、
ポイントクラウド内の現在のポイントと関連付けられる情報をコーディングするために予測モードを使用することを決定するように構成され、前記現在のポイントと関連付けられる前記情報は、前記現在のポイントの1つ以上の隣接ポイントに基づいて前記予測モードにおいて予測され、
整数演算を使用して、前記現在のポイントまでの前記1つ以上の隣接ポイントの距離に基づいて距離ベースの加重平均値を計算するように構成され、且つ
前記距離ベースの加重平均値に基づいて、前記現在のポイントと関連付けられる前記情報を決定するように構成され
、
前記処理回路構成は、
除数によって被除数を除算する整数除算演算に基づいて第1の隣接ポイントの情報を重み付けるための第1の変換された重みを計算するように構成され、
前記被除数は、1よりも大きい絶対値を持つ整数であり、前記除数は、前記第1の隣接ポイントと前記現在のポイントとの間の距離に基づき、
前記処理回路構成は、
前記1つ以上の隣接ポイントの加重属性の合計を計算するように構成され、前記加重属性中の第1の加重属性は、前記第1の隣接ポイントと関連付けられ、前記第1の隣接ポイントと関連付けられる第1の属性と前記第1の変換された重みとの乗算に基づいて計算され、
前記1つ以上の隣接ポイントと関連付けられる変換された重みの合計を計算するように構成され、前記変換された重みは、前記第1の変換された重みを含み、
前記変換された重みの前記合計による前記加重属性の前記合計の除算に基づいて前記距離ベースの加重平均値を決定するように構成される、
前記処理回路構成は、
前記変換された重みの前記合計がゼロであることに応答して、前記1つ以上の隣接ポイントのうちの最も近い隣接ポイントに基づいて、前記現在のポイントと関連付けられる属性値を決定すること、および、
前記変換された重みの前記合計がゼロであることに応答して、前記1つ以上の隣接ポイントの属性の平均に基づいて、前記現在のポイントと関連付けられる属性値を決定すること
のうちの少なくとも1つを行うように更に構成される、
装置。
【請求項9】
前記現在のポイントと関連付けられる前記情報は、前記現在のポイントの幾何学的形状情報および前記現在のポイントの属性情報のうちの少なくとも1つを含む、請求項
8に記載の装置。
【請求項10】
前記処理回路構成は、重み計算において浮動小数点データタイプの使用を除外するように構成される、請求項
8に記載の装置。
【請求項11】
前記処理回路構成は、ビット単位の左シフトに基づいて前記被除数を得るように構成される、請求項
8に記載の装置。
【請求項12】
前記処理回路構成は、
前記第1の属性および前記第1の変換された重みに基づくルックアップ演算に応答してルックアップテーブルから出力される前記第1の加重属性を受信するように構成される、
請求項
8に記載の装置。
【請求項13】
前記処理回路構成は、
前記変換された重みのうちの少なくとも1つが上限よりも大きいことに応答して、前記変換された重みをそれぞれダウンスケールするように構成される、
請求項
8に記載の装置。
【請求項14】
命令を含むコンピュータプログラムであって、前記命令は、少なくとも1つのプロセッサによって実行されるときに、コンピュータに請求項1-
7のうちのいずれか1項に記載の方法を実行する、コンピュータプログラム。
【請求項15】
命令を格納する非一時的なコンピュータ読取可能媒体であって、前記命令は、コンピュータによって実行されるときに、前記コンピュータに請求項1-
7のうちのいずれか1項に記載の方法を実行させる、非一時的なコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
本願は、2021年6月8日に出願された米国仮出願第63/208,340号「Method and Apparatus for Calculating Distance based Weighed Average for Point Cloud Coding」に対する優先権の利益を主張する、2022年5月23日に出願された米国特許出願第17/751,413号「METHOD AND APPARATUS FOR CALCULATING DISTANCE BASED WEIGHED AVERAGE FOR POINT CLOUD CODING」に対する優先権の利益を主張する。先の出願の開示は、その全体が参照により本明細書に援用される。
【0002】
(技術分野)
本開示は、ポイントクラウド(点群)コーディングに概ね関する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景記述は、本開示の文脈を一般的に提示するためのものである。その業績がこの背景セクションに記載されている範囲における、現在指名されている発明者の業績、並びに出願時に他の点では先行技術として適格でないことがある記述の側面は、本開示に対する先行技術として明示的にも暗示的にも認められていない。
【0004】
世界中のオブジェクト(物体)、世界中の環境、3次元(3D)空間内の同等物のような、世界を取り込んで表現するために、様々な技術が開発されている。世界の3D表現は、より没入的な形態の対話(インタラクション)および通信(コミュニケーション)を可能にする。ポイントクラウド(point clouds)は、世界の3D表現として使用されることができる。ポイントクラウドは、3D空間内のポイント(点)のセットであり、各ポイントは、関連する属性、例えば、色、材料特性、テクスチャ情報、強度属性、反射率属性、運動関連属性、モダリティ属性、および様々な他の属性を持つ。そのようなポイントクラウドは、大量のデータを含むことがあり、格納および送信にコストおよび時間がかかることがある。
【発明の概要】
【0005】
本開示の態様は、ポイントクラウド圧縮および解凍のための方法および装置を提供する。幾つかの例では、ポイントクラウド圧縮/解凍のための装置が、処理回路構成を含む。処理回路構成は、ポイントクラウド内の現在のポイントと関連付けられる情報をコーディングするために予測モードを使用することを決定する。予測モードにおいて、現在のポイントと関連付けられる情報は、現在のポイントの1つ以上の隣接ポイントに基づいて予測される。処理回路構成は、整数演算を使用して、現在のポイントまでの1つ以上の隣接ポイントの距離に基づいて距離ベースの加重平均値を計算し、距離ベースの加重平均値に基づいて現在のポイントと関連付けられる情報を決定する。
【0006】
一例において、現在のポイントと関連付けられる情報は、現在のポイントの幾何学的形状情報である。別の例において、現在のポイントと関連付けられる情報は、現在のポイントの属性情報である。
【0007】
距離ベースの加重平均値を計算するために、幾つかの例において、処理回路構成は、重み計算における浮動小数点データタイプの使用を除外する。幾つかの例において、処理回路構成は、被除数を除数で除算する整数除算演算に基づいて、第1の隣接ポイントの情報を重み付けるための第1の変換された重みを計算する。被除数は、1よりも大きい絶対値を持つ整数であり、除数は、第1の隣接ポイントと現在のポイントとの間の距離に基づく。幾つかの例において、処理回路構成は、ビット単位の左シフトに基づいて被除数を得る。幾つかの例において、処理回路構成は、除数のビット単位の左シフトによって得られる第1の整数と、ビット単位の右シフトによって得られる第2の整数との合計に基づいて、被除数を決定する。
【0008】
幾つかの例において、処理回路構成は、1つ以上の隣接ポイントの加重属性の合計を計算する。加重属性中の第1の加重属性は、第1の隣接ポイントと関連付けられ、第1の隣接ポイントと関連付けられる第1の属性と第1の変換された重みとの乗算に基づいて計算される。処理回路構成は、1つ以上の隣接ポイントと関連付けられる変換された重みの合計を計算する。換算された重みは、第1の換算された重みを含む。処理回路構成は、変換された重みの合計による加重属性の合計の除算に基づいて、距離ベースの加重平均値を決定する。
【0009】
幾つかの例において、処理回路構成は、第1の属性および第1の変換された重みに基づくルックアップ演算に応答してルックアップテーブルから出力される第1の加重属性を受信する。
【0010】
幾つかの例において、処理回路構成は、変換された重みのうちの少なくとも1つが上限よりも大きいことに応答して、変換された重みをそれぞれダウンスケール(縮小)させる。
【0011】
一例において、処理回路構成は、変換された重みの合計がゼロであることに応答して、1つ以上の隣接ポイント内の最も近い隣接ポイントに基づいて、現在のポイントと関連付けられる属性値を決定する。
【0012】
別の例において、処理回路構成は、変換された重みの合計がゼロであることに応答して、1つ以上の隣接ポイントの属性値の平均に基づいて、現在のポイントと関連付けられる属性値を決定する。
【0013】
幾つかの例において、処理回路構成は、変換モデルに従って、距離に基づいて重みを計算し、整数演算を使用して、距離ベースの加重平均値を計算する。変換モデルは、線形モデル、二次モデル、および非線形モデルのうちの1つであることができる。
【0014】
本開示の態様は、ポイントクラウド符号化/復号化のためにコンピュータによって実行されるときに、コンピュータにポイントクラウド符号化/復号化のための方法のいずれか1つまたは組み合わせを実行させる命令を格納する、非一時的なコンピュータ読取可能媒体も提供する。
【0015】
開示される主題のさらなる構成、性質、および様々な利点は、以下の詳細な記述および添付の図面からより明らかになるであろう
【図面の簡単な説明】
【0016】
【
図1】一実施形態による通信システムの単純化されたブロック図の概略的な例示である
【0017】
【
図2】一実施形態によるストリーミングシステムの単純化されたブロック図の概略的な例示である
【0018】
【
図3】幾つかの実施形態によるポイントクラウドフレームを符号化するためのエンコーダのブロック図を示している。
【0019】
【
図4】幾つかの実施形態によるポイントクラウドフレームに対応する圧縮されたビットストリームを復号化するためのデコーダのブロック図を示している。
【0020】
【
図5】一実施形態によるビデオデコーダの単純化されたブロック図の概略的な例示である。
【0021】
【
図6】一実施形態によるビデオエンコーダの単純化されたブロック図の概略的な例示である。
【0022】
【
図7】幾つかの実施形態によるポイントクラウドフレームを符号化するためのエンコーダのブロック図を示している。
【0023】
【
図8】幾つかの実施形態によるポイントクラウドフレームに対応する圧縮されたビットストリームを復号化するためのデコーダのブロック図を示している。
【0024】
【
図9】本開示の幾つかの実施形態による八分木パーティション技法に基づく立方体のパーティションを例示する図を示している。
【0025】
【
図10】本開示の幾つかの実施形態による八分木パーティションおよび八分木パーティションに対応する八分木構造の例を示している。
【0026】
【
図11】3つの四分木パーティションの例を示している。
【0027】
【
図12】3つの二分木パーティションの例を示している。
【0028】
【
図13】幅第1コーディング順序を示す八分木構造の図を示している。
【0029】
【
図14】深さ第1コーディング順序を示す八分木構造の図を示している。
【0030】
【0031】
【
図16】エンコーダ側でリフティングベースの属性コーディングにおいて直接/順変換アーキテクチャを使用する図を示している。
【0032】
【
図17】デコーダ側でリフティングベースの属性コーディングにおいて逆変換アーキテクチャの使用する図を示している。
【0033】
【
図18】領域適応階層変換(RAHT)順変換アーキテクチャの図およびRAHT逆変換アーキテクチャの図を示している。
【0034】
【
図19】幾つかの実施形態によるプロセスの例を概説するフローチャートを示している。
【0035】
【
図20】一実施形態によるコンピュータシステムの概略的な例示である。
【発明を実施するための形態】
【0036】
本開示の態様は、ポイントクラウドコーディング(PCC:point cloud coding)技法を提供する。PCCは、G-PCCと呼ばれる幾何学的形状(ジオメトリ)ベースのスキーム、V-PCCと呼ばれるビデオコーディングベースのスキーム、および同等物のような、様々なスキーム(方式)に従って実行されることができる。本開示の幾つかの態様によれば、G-PCCは、3D幾何学的形状を直接的に符号化し、ビデオコーディングと共有するものがあまりない純粋に幾何学ベースのアプローチであり、V-PCCは、ビデオコーディングに重点的に基づいている。例えば、V-PCCは、3Dクラウドのポイント(点)を2Dグリッド(画像)のピクセル(画素)にマッピングすることができる。V‐PCCスキームは、ポイントクラウド圧縮のために汎用ビデオコーデックを利用することができる。MPEG(Moving Picture Experts Group)は、G‐PCCスキームおよびV‐PCCスキームをそれぞれ使用するG‐PCC標準およびV‐PCC標準に取り組んでいる。
【0037】
ポイントクラウド(点群)は、多くのアプリケーションで広く使用されることができる。例えば、ポイントクラウドは、オブジェクト(物体)検出および場所特定(localization)のために自律運転車両において使用されることができ、ポイントクラウドは、地図作成(mapping)のために地理情報システム(GIS:geographic information system)において使用されることができ、文化遺産オブジェクトおよびコレクションなどを視覚化し且つアーカイブ化するために文化遺産において使用されることができる。
【0038】
以下、ポイントクラウドは、一般に、3D空間内のポイント(点)のセットを参照することがあり、各ポイントは、色、材料特性、テクスチャ情報、強度属性、反射率属性、運動関連属性、モダリティ属性、および様々な他の属性のような、関連する属性を有する。ポイントクラウドは、オブジェクトまたはシーンをそのようなポイントの合成(composition)として再構成するために使用されることができる。ポイントは、様々なセットアップで複数のカメラ、奥行きセンサまたはライダ(Lidar)を使用して取り込まれることができ、再構成されたシーンまたはオブジェクトを現実的に表現するために、数千から数十億のポイントで構成されることがある。パッチ(patch)が、一般に、ポイントクラウドによって記述される表面の連続したサブセットを指すことがある。一例では、パッチが、閾値量未満で互いに逸脱する表面法線ベクトルを有するポイントを含む。
【0039】
圧縮技術は、より高速な送信またはストレージの削減のために、ポイントクラウドを表現するのに必要とされるデータ量を削減することができる。よって、リアルタイム通信および6自由度(6DoF)仮想現実における使用のために、ポイントクラウドの損失(不可逆)圧縮のための技術が必要とされる。加えて、自律運転および文化遺産用途等のための動的マッピングの脈絡において、無損失(可逆)ポイントクラウド圧縮の技術が求められる。
【0040】
本開示の一態様によれば、V-PCCの背後にある主な哲学は、既存のビデオコーデックを利用して、動的ポイントクラウドの幾何学的形状、占有、およびテクスチャを3つの別個のビデオシーケンスとして圧縮することである。3つのビデオシーケンスを解釈するために必要とされる余分なメタデータは、別々に圧縮される。ビットストリーム全体の僅かな部分がメタデータであり、それはソフトウェア実装を使用して効率的に符号化(エンコード)/復号化(デコード)されることができる。情報の大部分は、ビデオコーデックによって処理される。
【0041】
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示している。通信システム(100)は、例えば、ネットワーク(150)を介して、互いに通信することができる、複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続される端末デバイス(110)および(120)のペアを含む。
図1の例において、第1のペアの端末デバイス(110)および(120)は、ポイントクラウドデータの一方向送信を行うことがある。例えば、端末デバイス(110)は、端末デバイス(110)と接続されたセンサ(105)によって取り込まれるポイントクラウド(例えば、構造を表すポイント)を圧縮することある。圧縮されたポイントクラウドは、例えば、ビットストリームの形態で、ネットワーク(150)を介して他の端末デバイス(120)に送信されることができる。端末デバイス(120)は、ネットワーク(150)から圧縮されたポイントクラウドを受信し、ビットストリームを解凍してポイントクラウドを再構成し、再構成されたポイントクラウドを適切に表示することがある。一方向性データ送信は、媒体提供アプリケーション等において一般的なことがある。
【0042】
図1の例において、端末デバイス(110)および(120)は、サーバおよびパーソナルコンピュータとして示されることがあるが、本開示の原理は、それらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、および/または専用の三次元(3D)機器との適用を見出す。ネットワーク(150)は、端末デバイス(110)および(120)の間で圧縮されたポイントクラウドを送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば、ワイヤライン(有線)および/または無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換および/またはパケット交換チャネル内でデータを交換することがある。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本議論の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジー(topology)は、以下に説明されない限り、本開示の動作に重要でない。
【0043】
図2は、一実施形態によるストリーミングシステム(200)の簡略化されたブロック図を示している。
図2の例は、ポイントクラウドについて開示される主題のためのアプリケーションである。開示の主題は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーション等のような、他のポイントクラウド対応アプリケーションに等しく適用可能であることができる。
【0044】
ストリーミングシステム(200)は、キャプチャサブシステム(213)を含むことがある。キャプチャサブシステム(213)は、ポイントクラウドソース(201)、例えば、光検出および測距(LIDAR)システム、3Dカメラ、3Dスキャナ、ソフトウェアにおいて圧縮されていないポイントクラウドを生成するフラフィックス生成コンポーネント、および、例えば、圧縮されていないポイントクラウド(202)を生成する同等物を含むことができる。一例において、ポイントクラウド(202)は、3Dカメラによって取り込まれるポイントを含む。ポイントクラウド(202)は、圧縮されたポイントクラウド(204)(圧縮されたポイントクラウドのビットストリーム)と比較して高いデータボリュームを強調するために太線として描かれている。圧縮されたポイントクラウド(204)は、ポイントクラウドソース(201)に結合されたエンコーダ(203)を含む電子デバイス(220)によって生成されることができる。エンコーダ(203)は、以下により詳細に説明されるような開示される主題の態様を可能にするか或いは実装するように、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ポイントクラウド(202)のストリームと比較してより低いデータボリュームを強調するために細線として描かれている、圧縮されたポイントクラウド(204)(または圧縮されたポイントクラウド(204)のビットストリーム)は、将来の使用のためにストリーミングサーバ(205)に格納されることができる。
図2のクライアントサブシステム(206)および(208)のような1つ以上のストリーミングクライアントサブシステムは、圧縮されたポイントクラウド(204)のコピー(207)および(209)を検索するためにストリーミングサーバ(205)にアクセスすることができる。クライアントサブシステム(206)が、例えば、電子デバイス(230)内にデコーダ(210)を含むことができる。デコーダ(210)は、圧縮されたポイントクラウドの入力コピー(207)を復号化(デコード)し、レンダリングデバイス(212)でレンダリングされることができる再構成ポイントクラウド(211)の出力ストリームを生成する。
【0045】
電子デバイス(220)および(230)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(220)は、デコーダ(図示せず)を含むことができ、電子デバイス(230)は、エンコーダ(図示せず)を含むこともできる。
【0046】
幾つかのストリーミングシステムにおいて、圧縮されたポイントクラウド(204)、(207)および(209)(例えば、圧縮されたポイントクラウドのビットストリーム)を、特定の標準に従って圧縮されることができる。幾つかの例では、ビデオコーディング標準が、ポイントクラウドの圧縮において使用される。それらの標準の例は、高効率ビデオコーディング(HEVC)、汎用ビデオコーディング(VVC)等を含む。
【0047】
図3は、幾つかの実施形態による、ポイントクラウドフレームを符号化するためのV-PCCエンコーダ(300)のブロック図を示している。幾つかの実施形態において、V-PCCエンコーダ(300)は、通信システム(100)およびストリーミングシステム(200)で使用されることができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様の方法で構成されることができ、作動することができる。
【0048】
V-PCCエンコーダ(300)は、圧縮されていない入力としてポイントクラウドフレームを受信し、圧縮されたポイントクラウドフレームに対応するビットストリームを生成する。幾つかの実施形態において、V-PCCエンコーダ(300)は、ポイントクラウドソース(201)等のような、ポイントクラウドソースからポイントクラウドフレームを受信してよい。
【0049】
図3の例において、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)と、パッチパッキングモジュール(308)と、幾何学的形状画像生成モジュール(310)と、テクスチャ画像生成モジュール(312)と、パッチ情報モジュール(304)と、占有マップモジュール(314)と、平滑化モジュール(336)と、画像パディングモジュール(316)および(318)と、グループ拡張モジュール(320)と、ビデオ圧縮モジュール(322)、(323)および(332)と、補助パッチ情報圧縮モジュール(338)と、エントロピー圧縮モジュール(324)と、マルチプレクサ(324)とを含む。
【0050】
本開示の一態様によれば、V-PCCエンコーダ(300)は、3Dポイントクラウドフレームを、圧縮されたポイントクラウドを解凍されたポイントクラウドに戻すために使用される幾つかのメタデータ(例えば、占有マップおよびパッチ情報)と共に、画像ベースの表現に変換する。幾つかの例において、V-PCCエンコーダ(300)は、3Dポイントクラウドフレームを、幾何学的形状画像、テクスチャ画像、および占有マップに変換し、次に、ビデオコーディング技術を使用して、幾何学的形状画像、テクスチャ画像、および占有マップを、ビットストリームに符号化することができる。一般に、幾何学的形状画像は、ピクセルに投影されるポイントと関連付けられた幾何学的形状値で満たされたピクセルを有する2D画像であり、幾何学的形状値で満たされたピクセルは、幾何学的形状サンプルと呼ばれることができる。テクスチャ画像は、ピクセルに投影されたポイントと関連付けられたテクスチャ値で満たされたピクセルを有する2D画像であり、テクスチャ値で満たされたピクセルは、テクスチャサンプルと呼ばれることができる。占有マップは、パッチによる占有または非占有を示す値で満たされたピクセルを有する2D画像である。
【0051】
パッチ生成モジュール(306)は、ポイントクラウドをパッチのセットにセグメント化し(例えば、パッチは、ポイントクラウドによって記述される表面の連続したサブセットとして定義される)、パッチのセットは、各パッチが2D空間内の平面に関して深さ領域(depth field)によって記述されることがあるように、重なり合うことがあり、或いは重なり合わないことがある。幾つかの実施態様において、パッチ生成モジュール(306)は、再構成誤差を最小限に抑えながら、ポイントクラウドを平滑な境界を有する最小数のパッチに分解することを目的とする。
【0052】
パッチ情報モジュール(304)は、パッチのサイズおよび形状を示すパッチ情報を収集することができる。幾つかの例において、パッチ情報は、画像フレームにパッキングされ、次に、補助パッチ情報圧縮モジュール(338)によって符号化されて、圧縮された補助パッチ情報が生成されることができる。
【0053】
パッチパッキングモジュール(308)は、未使用スペースを最小限に抑え、グリッドのあらゆるM×M(例えば、16×16)ブロックがユニークなパッチと関連付けられることを保証しながら、抽出されたパッチを2次元(2D)グリッド上にマッピングするように構成される。効率的なパッチパッキングは、未使用スペースを最小限に抑えることまたは時間的一貫性を確保することのいずれかによって、圧縮効率に直接的に影響を与えることができる。
【0054】
幾何学的形状画像生成モジュール(310)は、所与のパッチ場所でのポイントクラウドの幾何学的形状と関連付けられるD幾何学的形状画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ場所でのポイントクラウドのテクスチャと関連付けられる2Dテクスチャ画像を生成することができる。幾何学的形状画像生成モジュール(310)およびテクスチャ画像生成モジュール(312)は、パッキングプロセス中に計算された3D対2Dマッピングを利用して、ポイントクラウドの幾何学的形状およびテクスチャを画像として格納する。複数のポイントが同じサンプルに投影される場合をより良く処理するために、各パッチは、層と呼ばれる2つの画像の上に投影される。一例において、幾何学的形状画像は、YUV420-8ビットフォーマットにおけるWxHの単色フレームによって表現される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングされたポイントと関連付けられる色を計算するために、再構成された/平滑化された幾何学的形状を利用する。
【0055】
占有マップモジュール(314)は、各ユニットでパディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドの各セルについて、セルが空の空間に属するか或いはポイントクラウドに属するかを示す、バイナリマップを含む。一例において、占有マップは、各ピクセルについて、ピクセルがパディングされているかどうかを記述する、バイナリ情報を使用する。別の例において、占有マップは、ピクセルの各ブロックについて、ピクセルのブロックがパディングされているかどうかを記述する、バイナリ情報を使用する。
【0056】
占有マップモジュール(314)によって生成される占有マップは、無損失コーディングまたは損失コーディングを使用して圧縮されることができる。無損失コーディングが使用されるとき、エントロピー圧縮モジュール(334)は、占有マップを圧縮するために使用される。損失コーディングが使用されるとき、ビデオ圧縮モジュール(332)は、占有マップを圧縮するために使用される。
【0057】
パッチパッキングモジュール(308)は、画像フレーム内にパックされる2Dパッチの間に多少の空の空間を残すことがあることに留意されたい。画像パディングモジュール(316)および(318)は、2Dビデオおよび画像コーデックに適した画像フレームを生成するために、(パディングと呼ばれる)空の空間を満たすことができる。画像パディングは、バックグラウンド充填とも呼ばれ、バックグラウンド充填は、未使用の空間を冗長情報で満たすことができる。幾つかの例では、良好なバックグラウンド充填は、ビットレートを最小限に増加させる一方で、パッチ境界の周りに有意なコーディング歪みを導入しない。
【0058】
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVC等のような、適切なビデオコーディング標準に基づいて、パッディングされた幾何学的形状画像、パディングされたテクスチャ画像、および占有マップのような、2D画像を符号化することができる。一例において、ビデオ圧縮モジュール(322)、(323)、および(332)は、別々に作動する個々のコンポーネントである。ビデオ圧縮モジュール(322)、(323)、および(332)は、別の例において単一のコンポーネントとして実装され得ることに留意されたい。
【0059】
幾つかの例において、平滑化モジュール(336)は、再構成された幾何学的形状画像の平滑化された画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成(312)に提供されることができる。次に、テクスチャ画像生成(312)は、再構成された幾何学的形状画像に基づいてテクスチャ画像の生成を調整することがある。例えば、パッチ形状(例えば、幾何学的形状)が、符号化および復号化中にわずかに歪まされるとき、歪みは、パッチ形状の歪みを補正するためにテクスチャ画像を生成するときに考慮に入れられることがある。
【0060】
幾つかの実施形態において、グループ拡張(320)は、再構成されたポイントクラウドのコーディング利得ならびに視覚的品質を改良するために、冗長な低周波数コンテンツを有するオブジェクト境界の周囲のピクセルをパディングするように構成される。
【0061】
マルチプレクサ(324)は、圧縮された幾何学的形状画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を、圧縮されたビットストリームに多重化する(multiplex)ことができる。
【0062】
図4は、幾つかの実施形態による、ポイントクラウドフレームに対応する圧縮されたビットストリームを復号化するV-PCCデコーダ(400)のブロック図を示している。幾つかの実施形態において、V-PCCデコーダ(400)は、通信システム(100)およびストリーミングシステム(200)で使用されることができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様の方法で作動するように構成されることができる。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームに基づいて再構成されたポイントクラウドを生成する。
【0063】
図4の例において、V-PCCデコーダ(400)は、デマルチプレクサ(432)、ビデオ解凍モジュール(434)および(436)、占有マップ解凍モジュール(438)、補助パッチ情報解凍モジュール(442)、幾何学的形状再構成モジュール(444)、平滑化モジュール(446)、テクスチャ再構成モジュール(448)、ならびに色円滑化モジュール(452)を含む。
【0064】
デマルチプレクサ(432)は、圧縮されたビットストリームを受信し、圧縮されたテクスチャ画像、圧縮された幾何学的形状画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離することができる。
【0065】
ビデオ解凍モジュール(434)および(436)は、適切な標準(例えば、HEVC、VCC等)に従って圧縮された画像を復号化し、解凍された画像を出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮されたテクスチャ画像を復号化し、解凍されたテクスチャ画像を出力し、ビデオ解凍モジュール(436)は、圧縮された幾何学的形状画像を復号化し、解凍された幾何学的形状画像を出力する。
【0066】
占有マップ解凍モジュール(438)は、適切な標準(例えば、HEVC、VVC等)に従って圧縮された占有マップを復号化し、解凍された占有マップを出力することができる。
【0067】
補助パッチ情報解凍モジュール(442)は、適切な標準(例えば、HEVC、VVC等)に従って圧縮された補助パッチ情報を復号化し、解凍された補助パッチ情報を出力することができる。
【0068】
幾何学的形状再構成モジュール(444)は、解凍された幾何学的形状画像を受信し、解凍された占有マップおよび解凍された補助パッチ情報に基づいて再構成されたポイントクラウド幾何学的形状を生成することができる。
【0069】
平滑化モジュール(446)は、パッチのエッジでの不一致(incongruences)を平滑化することができる。平滑化手順は、圧縮アーチファクトに起因してパッチ境界で生じることがある潜在的な不連続性を緩和することを目的としている。幾つかの実施形態では、平滑化フィルタが、圧縮/解凍によって引き起こされることがある歪みを緩和するために、パッチ境界上に位置するピクセルに適用されることがある。
【0070】
テクスチャ再構成モジュール(448)は、解凍されたテクスチャ画像および平滑化幾何学的形状に基づいてポイントクラウド内のポイントについてのテクスチャ情報を決定することができる。
【0071】
色平滑化モジュール(452)は、色の不一致を平滑化することができる。3D空間内の隣接しないパッチは、しばしば、2Dビデオ内で互いに隣接してパックされる。幾つかの例において、隣接しないパッチからの画素値は、ブロックベースのビデオコーデックによって混合されることがある。色平滑化の目的は、パッチ境界に現れる可視的なアーチファクトを減らすことである。
【0072】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、V-PCCデコーダ(400)で使用されることができる。例えば、ビデオ解凍モジュール(434)および(436)、占有マップ解凍モジュール(438)は、同様に、ビデオデコーダ(510)と同様に構成されることができる。
【0073】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスのような、圧縮された画像からシンボル(521)を再構成するパーサ(520)を含むことがある。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含む。パーサ(520)は、受信されるコーディングされたビデオシーケンスを構文解析/エントロピー復号化することがある。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴うまたは伴わない算術コーディング等を含む、様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出することがある。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング単位(CU)、ブロック、変換単位(TU)、予測単位(PU)等を含む。パーサ(520)は、変換係数、量子化パラメータ値、運動ベクトル等のような情報を、コーディングされたビデオシーケンスから抽出することもある。
【0074】
パーサ(520)は、シンボル(521)を生成するように、バッファメモリから受信したビデオシーケンスに対してエントロピーデコーディング/構文解析動作を実行することがある。
【0075】
シンボル(521)の再構成は、(インターピクチャおよびイントラピクチャ、インターブロックまたはイントラブロックのような)コーディングされたビデオピクチャまたはその部分のタイプ、および他の要因に依存して、複数の異なるユニットを含むことができる。どのユニットが含まれ、どのように含まれるかは、パーサ(520)によってコーディングされたビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数ユニットとの間のそのようなサブグループ制御情報の流れは、明瞭性のために示されていない。
【0076】
既に述べた機能ブロックの他に、ビデオデコーダ(510)は、以下に記載するような多数の機能ユニットに概念的に細分されることができる。商業的な制約の下で作動する実用的な実装において、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示の主題を記載する目的のためには、以下の機能ユニットに概念的に細分化することが適切である。
【0077】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)からシンボル(521)として、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む、制御情報ならびに量子化された変換係数を受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0078】
幾つかの場合において、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができる、ブロックに関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。幾つかの場合において、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた(取り出された)周囲の既に再構成された情報を使用して、再構成の下のブロックの同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファする。アグリゲータ(555)は、幾つかの場合において、サンプル毎ベースで、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されるような出力サンプル情報に追加する。
【0079】
他の場合において、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、潜在的に運動補償されたブロックに関係することができる。そのような場合には、運動補償予測ユニット553が、予測のために使用されるサンプルをフェッチするための参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを補償する動作の後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によって、(この場合には剰余サンプル(residual samples)または剰余信号(residual signal)と呼ばれる)スケーラ/逆変換ユニット(551)の出力に追加されることができる。運動補償予測ユニットが予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャコンポーネントを有することができるシンボル(521)の形態において、運動補償予測ユニット(553)に利用可能な運動ベクトルによって制御されることができる。運動補償は、サブサンプルの正確な運動ベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるようなサンプル値の補間、運動ベクトル予測メカニズム等を含むこともできる。
【0080】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内の様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、(コーディングされたビデオビットストリームとも呼ばれる)コーディングされたビデオシーケンスに含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(復号化順において)以前の部分の復号化の間に得られるメタ情報に応答することもできる、ならびに以前に再構成され且つループフィルタリングされたサンプル値に応答することもできる、インループフィルタ(ループ内フィルタ)(in-loop filter)技術を含むことができる。
【0081】
ループフィルタユニット(556)の出力は、レンダリングデバイスに出力されることができる、ならびに将来のインターピクチャ予測における使用のために参照ピクチャメモリ(557)に格納されることができる、サンプルストリームであることができる。
【0082】
特定のコーディングされたピクチャは、ひとたび完全に再構成されると、将来の予測のための参照ピクチャとして使用されることができる。例えば、ひとたび現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部となることができ、新しい現在のピクチャバッファは、後続のコーディングされたピクチャの再構成を開始する前に再割当てされることができる。
【0083】
ビデオデコーダ(510)は、ITU-T Rec.H.265のような、標準中の所定のビデオ圧縮技術に従って、復号化動作を行うことある。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術または標準の構文およびビデオ圧縮技術または標準に文書化されるようなプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術または標準によって指定される構文に適合することがある。具体的には、プロファイルは、特定のツールを、そのプロファイルの下での使用のために利用可能な唯一のツールとして、ビデオ圧縮技術または標準において使用可能な全てのツールから選択することができる。コンプライアンスのために同様に必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義されるような境界内にあることであり得る。幾つかの場合には、レベルが、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒当たりメガサンプルで測定される)最大再構成サンプルレート、最大参照ピクチャサイズ等を制限する。レベルによって設定される制限値は、幾つ感お場合には、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)仕様およびコーディングされたビデオシーケンスで信号伝達されるHRDバッファ管理のためのメタデータを通じてさらに制限されることができる。
【0084】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、ポイントクラウドを圧縮するV-PCCエンコーダ(300)で使用されることができる。一例において、ビデオ圧縮モジュール(322)および(323)、ならびにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0085】
ビデオエンコーダ(603)は、パディングされた幾何学的形状画像、パディングされたテクスチャ画像等のような画像を受信し、圧縮された画像を生成することがある。
【0086】
一実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャ(画像)を、リアルタイムで、或いはアプリケーションによって要求されるような任意の他の時間制約下で、コーディングされたビデオシーケンス(圧縮された画像)に圧縮することができる。適切なコーディング速度を実現することは、コントローラ(650)の1つの機能である。幾つかの実施形態において、コントローラ(650)は、以下に記載されるような他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。カップリングは、明瞭性のために示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート-歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大運動ベクトル検索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成されてよい。
【0087】
幾つかの実施形態において、ビデオエンコーダ(603)は、コーディングループで作動するように構成される。過剰に単純化された記述として、一例において、コーディングループは、(例えば、コーディングされるべき入力ピクチャおよび参照ピクチャに基づいて、シンボルストリームのような、シンボルを生成することに関与する)ソースコーダ(630)と、ビデオエンコーダ(603)に埋め込まれる(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、シンボルを再構成して、(リモート)デコーダも生成するのと同様の方法でサンプルデータを生成する(何故ならば、シンボルとコーディングされたビデオビットストリームとの間のあらゆる圧縮は、開示の主題において考慮されるビデオ圧縮技術において不損失であるからである)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号化は、デコーダ場所(ローカルまたはリモート)と無関係なビット正確な結果をもたらすので、参照ピクチャメモリ(634)中のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号化の間に予測を使用するときに「見る」のとまったく同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えば、チャネルエラーの故に同期性を維持することができない場合に結果として生じるドリフト)は、幾つかの関連技術においても同様に使用される。
【0088】
「ローカル」デコーダ(633)の動作は、
図5に関連してすでに上述したビデオデコーダ(510)のような、「リモート」デコーダと同じであることができる。しかしながら、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルの符号化/復号化が不損失であることができるので、パーサ(520)を含むビデオデコーダ(510)のエントロピー復号化部分は、ローカルデコーダ(633)では完全に実装されないことがある。
【0089】
この時点で行うことができる観察は、デコーダ内に存在する構文解析/エントロピー復号化を除く任意のデコーダ技術も、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。この理由のために、開示の主題は、デコーダ動作に焦点を当てる。エンコーダ技術の記述は、省略されることができる。何故ならば、それらは、包括的に記述されるデコーダ技術の逆であるからである。特定のエリアにおいてのみ、より詳細な記述が必要とされ、以下に提供される。
【0090】
動作中、幾つかの例において、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする運動補償された予測コーディングを行うことがある。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択されることがある参照ピクチャのピクセルブロックとの間の差を、コーディングする。
【0091】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって生成されるシンボルに基づいて、参照ピクチャとして指定されることがあるピクチャのコーディングされたビデオデータを復号化することができる。コーディングエンジン(632)の動作は、有利には、損失プロセスであることがある。コーディングされたビデオデータが(
図6に図示されていない)ビデオデコーダで復号化されることがあるとき、再構成されたビデオシーケンスは、典型的には、幾つかのエラーを伴うソースビデオシーケンスのレプリカであることがある。ローカルビデオデコーダ(633)は、参照ピクチャ上でビデオデコーダによって実行されることがあり、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させることがある、復号化処理を複製する。このようにして、ビデオエンコーダ(603)は、(送信エラーのない)遠端ビデオデコーダによって得られる再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに格納することがある。
【0092】
予測子(predictor)(635)は、コーディングエンジン(632)について予測検索を行うことがある。すなわち、コーディングされるべき新しいピクチャについて、予測子(635)は、新しいピクチャについての適切な予測参照として役立つことがある、(候補参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャ運動ベクトル、ブロック形状等のような、特定のメタデータのために、参照ピクチャメモリ(634)を検索することがある。予測子(635)は、サンプルブロック対ピクセルブロックベースで作動して、適切な予測参照を見出すことがある。幾つかの場合には、予測子(635)によって得られる検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有することがある。
【0093】
コントローラ(650)は、例えば、ビデオデータをコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することがある。
【0094】
全ての前述の機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けることがある。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング等のような技術に従って、シンボルを不損失圧縮することによって、様々な機能ユニットによって生成されるシンボルをコーディングされたビデオシーケンスに変換する。
【0095】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することがある。コーディングの間に、コントローラ(650)は、各々のコーディングされたピクチャに、特定のコーディングされたピクチャタイプを割り当てることがあり、それは、それぞれのピクチャに適用されることがあるコーディング技術に影響を及ぼすことがある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられることがある。
【0096】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディングされることがあり且つ復号化されることがあるものであってよい。幾つかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh)(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形、ならびにそれらのそれぞれの用途および構成を知っている。
【0097】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの運動ベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を使用してコーディングされることがあり且つ復号化されることがあるものであってよい。
【0098】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの運動ベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を使用してコーディングされることがあり且つ復号化されることがあるものであってよい。同様に、複数の予測ピクチャは、単一のブロックの再構成のために、2つよりも多くの参照ピクチャおよび関連するメタデータを使用することができる。
【0099】
ソース画像は、一般に、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分されることがあり、ブロック毎ベースでコーディングされることがある。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当によって決定されるような他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、或いは、それらは、同じピクチャのすでにコーディングされたブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされてよい。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して、予測的にコーディングされてよい。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して、予測的にコーディングされてよい。
【0100】
ビデオエンコーダ(603)は、ITU-T Rec.H.265のような、所定のビデオコーディング技術または標準に従ってコーディング動作を行ってよい。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測的コーディング動作を含む、様々な圧縮動作を行ってよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術または標準によって指定される構文に適合することがある。
【0101】
ビデオは、時間シーケンスにおける複数のソースピクチャ(画像)の形態にあることがある。(しばしばイントラ予測と略される)イントラピクチャ予測は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的なまたは他の)相関を利用する。一例では、現在のピクチャと呼ばれる、符号化/復号化の下にある特定のピクチャは、ブロックに区分される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングされ且つ依然としてバッファに入れられた参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックは、運動ベクトルと呼ばれるベクトルによってコーディングされることができる。運動ベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の寸法を有することができる。
【0102】
幾つかの実施形態において、双予測技術は、インターピクチャ予測において使用されることができる。双予測技術によれば、ビデオ内の現在のピクチャに対して復号化順序において両方とも先行する(しかしながら、表示順序においては、それぞれ過去および将来であることがある)第1の参照ピクチャおよび第2の参照ピクチャのような、2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の運動ベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の運動ベクトルとによって、コーディングされることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0103】
さらに、コーディング効率を向上させるために、インターピクチャ予測にマージモード技法を使用することができる。
【0104】
本開示の幾つかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測のような予測は、ブロックの単位で行われる。例えば、HEVC標準によれば、ビデオピクチャのシーケンス中のピクチャは、圧縮のためにコーディングツリー単位(CTU:coding tree units)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルのような、同じサイズを有する。一般に、CTUは、1つのルーマ(輝度)CTBおよび2つのクロマ(彩度)CTBである、3つのコーディングツリーブロック(CTB:coding tree blocks)を含む。各CTUは、1つまたは複数のコーディング単位(CU:coding units)に再帰的に4分木分割されることができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、32×32ピクセルの4つのCU、または16×16ピクセルの16個のCUに分割されることができる。一例において各CUは、インター予測タイプまたはイントラ予測タイプのような、CUのための予測タイプを決定するために分析される。CUは、時間的および/または空間的な予測可能性に依存して、1つ以上の予測単位(PU:predication units)に分割される。一般に、各PUは、1つのルーマ予測ブロック(PB:predication block)と、2つのクロマPBとを含む。一実施形態では、コーディング(符号化/復号化)における予測動作は、予測ブロックのユニットにおいて行われる。ルーマ予測ブロックを予測ブロックの一例として用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のような、ピクセルについての値(例えば、ルーマ値)の行列を含む。
【0105】
図7は、幾つかの実施形態によるG-PPCエンコーダ(700)のブロック図を示している。エンコーダ(700)は、ポイントクラウドデータを受信し、ポイントクラウドデータを圧縮して、圧縮されたポイントクラウドデータを運ぶビットストリームを生成する、ように構成されることができる。一実施形態において、エンコーダ(700)は、位置量子化モジュール(710)、重複ポイント除去モジュール(712)、八分木コーディングモジュール(730)、属性転送モジュール(720)、詳細レベル(LOD:level of detail)生成モジュール(740)、属性予測モジュール(750)、剰余量子化モジュール(760)、算術コーディングモジュール(770)、逆剰余量子化モジュール(780)、加算モジュール(781)、および再構成された属性値を格納するメモリ(790)を含むことができる。
【0106】
図示のように、入力ポイントクラウド(701)は、エンコーダ(700)で受信されることができる。ポイントクラウド(701)の位置(例えば、3D座標)は、量子化モジュール(710)に提供される。量子化モジュール(710)は、座標を量子化して、量子化された位置を生成するように構成される。重複ポイント除去モジュール(712)は、量子化された位置を受信し、フィルタ処理を行って、重複ポイントを識別し且つ除去する、ように構成される。八分木コーディングモジュール(730)は、重複ポイント除去モジュール(712)からフィルタリングされた位置を受信し、八分木ベースの符号化プロセスを行って、3Dグリッドのボクセルを記述する占有コードのシーケンスを生成する、ように構成される。占有コードは、算術コーディングモジュール(770)に提供される。
【0107】
属性転送モジュール(720)は、入力ポイントクラウドの属性を受信し、属性転送プロセスを行って、複数の属性値がそれぞれのボクセルと関連付けられるときに各ボクセルについての属性値を決定する、ように構成される。属性転送プロセスは、八分木コーディングモジュール(730)から出力された再順序付けポイントに対して行われることができる。転送動作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、八分木コーディングモジュール(730)から出力された再順序付けポイントに対して作動し、ポイントを異なるLODに再編成する、ように構成される。LOD情報は、属性予測モジュール(750)に供給される。
【0108】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従ってポイントを処理する。属性予測モジュール(750)は、メモリ(790)に格納された現在のポイントの隣接するポイントのセットの再構成された属性に基づいて、現在のポイントのための属性予測を生成する。引き続き、予測剰余(predication residuals)が、属性転送モジュール(720)から受信した元の属性値とローカルに生成された属性予測とに基づいて得られることができる。候補インデックスがそれぞれの属性予測プロセスにおいて使用されるとき、選択された予測候補に対応するインデックスが、算術コーディングモジュール(770)に提供されてよい。
【0109】
剰余量子化モジュール(760)は、属性予測モジュール(750)から予測剰余を受信し、量子化を行って量子化された剰余を生成する、ように構成される。量子化された剰余は、算術コーディングモジュール(770)に提供される。
【0110】
逆剰余量子化モジュール(780)は、剰余量子化モジュール(760)から量子化された剰余を受信し、剰余量子化モジュール(760)で行われる量子化演算の逆(inverse)を行うことによって、再構成された予測剰余を生成する、ように構成される。加算モジュール(781)は、逆剰余量子化モジュール(780)から再構成された予測剰余を受信し、属性予測モジュール(750)からそれぞれの属性予測を受信する、ように構成される。再構成された予測剰余と属性予測とを組み合わせることによって、再構成された属性値が生成され、メモリ(790)に格納される。
【0111】
算術コーディングモジュール(770)は、占有コード、(使用されるならば)候補インデックス、(生成されるならば)量子化された剰余、および他の情報を受信し、エントロピーコーディングを行って、受信した値または情報をさらに圧縮する、ように構成される。その結果、圧縮された情報を運ぶ圧縮されたビットストリーム(702)が生成されることができる。ビットストリーム(702)は、圧縮されたビットストリームを復号化するデコーダに送信されるか或いは他の方法で提供されてよく、或いは記憶デバイスに格納されてよい。
【0112】
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示している。デコーダ(800)は、圧縮されたビットストリームを受信し、ポイントクラウドデータ解凍を行って、復号化されたポイントクラウドデータを生成するためにビットストリームを解凍する、ように構成されることができる。一実施形態において、デコーダ(800)は、算術復号化モジュール(810)、逆剰余量子化モジュール(820)、八分木復号化モジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、および再構成された属性値を格納するメモリ(860)を含むことができる。
【0113】
図示のように、圧縮されたビットストリーム(801)が、算術復号化モジュール(810)で受信されることができる。算術復号化モジュール(810)は、圧縮されたビットストリーム(801)を復号化して、ポイントクラウドの(生成されるならば)量子化された剰余および占有コードを得るように構成される。八分木復号化モジュール(830)は、占有コードに従ってポイントクラウド内のポイントの再構成された位置を決定するように構成される。LOD生成モジュール(840)は、再構成された位置に基づいてポイントを異なるLODに再編成し、LODベースの順序を決定する、ように構成される。逆剰余量子化モジュール(820)は、算術復号化モジュール(810)から受信する量子化された剰余に基づいて再構成された剰余を生成するように構成される。
【0114】
属性予測モジュール(850)は、属性予測プロセスを行って、LODベースの順序に従ってポイントについての属性予測を決定するように構成される。例えば、現在のポイントの属性予測は、メモリ(860)に格納された現在のポイントの隣接するポイントの再構成された属性値に基づいて決定されることができる。幾つかの例において、属性予測は、現在のポイントについての再構成された属性を生成するために、それぞれの再構成された剰余と組み合わされることができる。
【0115】
八分木復号化モジュール(830)から生成される再構成された位置と共に属性予測モジュール(850)から生成される再構成された属性のシーケンスが、一例ではデコーダ(800)から出力される復号化されたポイントクラウド(802)に対応する。加えて、再構成された属性も、メモリ(860)に格納され、引き続き、後続のポイントについての属性予測を導出するために使用されることができる。
【0116】
様々な実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されることができる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等のような、ソフトウェアを用いて或いは用いないで作動する1つ以上の集積回路(IC)のような処理回路構成で実装されることができる。別の例において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、不揮発性(または非一時的)コンピュータ読取可能記憶媒体に格納される命令を含むソフトウェアまたはファームウェアとして実装されることができる。命令は、1つ以上のプロセッサのような処理回路構成によって実行されるときに、処理回路構成に、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)の機能を実行させる。
【0117】
本明細書に開示する属性予測技法を実装するように構成された属性予測モジュール(750)および(850)は、
図7および
図8に示すものと類似または異なる構造を有することがある他のデコーダまたはエンコーダに含まれ得ることに留意されたい。加えて、エンコーダ(700)およびデコーダ(800)は、様々な例において、同じデバイスまたは別個のデバイスに含まれることができる。
【0118】
開示の態様は、G-PCCにおける使用のための技法を提供する。具体的には、G-PCCのノードベースの幾何学的形状および/または属性コーディング技法が、以下の記述に記載される。
【0119】
本開示の幾つかの態様によれば、幾何学的形状情報、および色、反射率等のような、ポイントクラウドの関連する属性が、(例えば、MPEG G-PCC Test Model 13(TMC13)モデルにおいて)別個に圧縮されることができる。ポイントクラウド内のポイントの3D座標を含む、ポイントクラウドの幾何学的情報は、パーティションの占有情報を持つ八分木パーティション、四分木パーティション、およびバイナリパーティションのような、パーティションの占有情報を持つパーティションによってコーディングされることができる。幾何学的形状情報がコーディングされた後に、属性は、例えば、予測、リフティング(lifting)および領域適応階層変換(region adaptive hierarchical transform)技法を使用して、再構成された幾何学的形状に基づいて圧縮されることができる。
【0120】
幾何学的形状コーディングのために、幾つかの技法を使用することができる。幾つかの技法は、木ベースの幾何学的形状コーディング、予測木ベースの幾何学的形状コーディング、およびトリスープ(trisoup)ベースの幾何学的形状コーディングを含むことができる。木ベースの幾何学的形状コーディング、予測木ベースの幾何学的形状コーディング、およびトリスープベースの幾何学的形状コーディングをそれぞれ記載する。
【0121】
本開示の一態様によれば、三次元空間は、八分木パーティション、四分木パーティション、二分木パーティション等のような、木パーティションを使用して区切られることができる。八分木パーティションを例として使用すると、八分木は、二次元空間内の四分木の三次元アナログである。八分木パーティション技法は、三次元空間を8つの八分円(オクタント)に再帰的に細分するパーティション技法を指し、八分木構造は、パーティションを表すツリー構造(木構造)を指す。一例において、八分木構造内の各ノードは、三次元空間に対応し、ノードは、終端ノード(他のパーティションはなく、幾つかの例では、リーフノードとも呼ばれる)または更なるパーティションを持つノードであることができる。ノードでの八分木パーティションは、ノードによって表される三次元空間を8つの八分円に区切ることができる。幾つかの例において、特定のノードのパーティションに対応するノードは、特定のノードの子ノードと呼ばれることができる。
【0122】
図9は、本開示の幾つかの実施形態による八分木パーティション技法に基づく(ノードに対応する)3Dキューブ(900)のパーティションを図示する図を示している。パーティションは、
図9に示すように、3Dキューブ(900)を8つのより小さい等しいサイズのキューブ0~7に分割することができる。
図9において、3Dキューブ(900)のx次元、y次元、およびz次元は、それぞれ半分に分割され、分割は、同じサイズを持つ8つのサブキューブをもたらすことができる。
【0123】
(例えば、TMC13における)八分木パーティション技法は、元の3D空間をより小さなユニットに再帰的に分割することができ、あらゆるサブ空間の占有情報は、幾何学的形状位置を表すために符号化されることができる。
【0124】
(例えば、TMC13における)幾つかの実施態様では、八分木幾何学的形状コーデックが使用される。八分木幾何学的形状コーデックは、幾何学的形状符号化を行うことができる。幾つかの例において、幾何学的形状符号化は、立方体ボックス(cubical box)上で行われる。例えば、立方体ボックスは、2つのポイント(0,0,0)および(2M-1,2M-1,2M-1)によって定義される、軸整列させられた境界ボックス(バウンディングボックス)Bであることができ、ここで、2M-1は、境界ボックスBのサイズを定義し、Mは、ビットストリームにおいて指定されることができる。
【0125】
次に、八分木構造が、立方体ボックスを再帰的に細分することによって構築される。例えば、2つのポイント(0,0,0)および(2M-1,2M-1,2M-1)によって定義された立方体ボックスは、8つのサブ立方体ボックス(sub cubical boxes)に分割され、次に、占有コードと呼ばれる8ビットのコードが生成される。占有コードの各ビットは、サブ立方体ボックスと関連付けられ、ビットの値は、関連付けられたサブ立方体ボックスがポイントクラウドの任意のポイントを含むかどうかを示すために使用される。例えば、ビットの値1は、ビットと関連付けられるサブ立方体ボックスがポイントクラウドの1つ以上のポイントを含むことを示し、ビットの値0は、ビットと関連付けられたサブ立方体ボックスがポイントクラウドのポイントを含まないことを示す。
【0126】
さらに、空のサブ立方体ボックス(例えば、サブ立方体ボックスと関連付けられるビットの値は0である)について、それ以上の分割は、サブ立方体ボックスに適用されない。サブ立方体ボックスがポイントクラウドの1つ以上のポイントを有するとき(例えば、サブ立方体ボックスと関連付けられるビットの値が1であるとき)、サブ立方体ボックスは、8つのより小さなサブ立方体ボックスに更に分割され、占有コードが、より小さなサブ立方体ボックスの占有を示すためにサブ立方体ボックスについて生成されることができる。幾つかの例において、細分動作は、サブ立方体ボックスのサイズが、1であるサイズのような所定の閾値に等しくなるまで、空でないサブ立方体ボックス上で繰り返し行われることができる。幾つかの例において、1のサイズを持つサブ立方体ボックスは、ボクセルと呼ばれ、ボクセルよりも大きいサイズを持つサブ立方体ボックスは、非ボクセルと呼ばれることができる。
【0127】
図10は、本開示の幾つかの実施形態による八分木パーティション(1010)および八分木パーティション(1010)に対応する八分木構造(1020)の一例を示している。
図10は、八分木パーティション(1010)における2つのレベルのパーティションを示している。八分木構造(1020)は、八分木パーティション(1010)についての立方体ボックスに対応するノード(N0)を含む。ノードN0は、八分木構造(1020)の深さ0にある。第1のレベルのパーティションで、立方体ボックスは、
図9に示す番号付け技法に従って0~7の番号が付されている8つのサブ立方体ボックスに分割されている。ノードN0のパーティションについての占有コードは、二進数で「10000001」であり、それは、ノードN0-0によって表される第1のサブ立方体ボックスおよびノードN0-7によって表される第8のサブ立方体ボックスがポイントクラウド内のポイントを含み、他のサブ立方体ボックスが空であることを示す。ノードN0-0~N0-7は、八分木構造(1020)の深さ1にある。
【0128】
次に、第2レベルのパーティションで、(ノードN0-0によって表される)第1のサブ立方体ボックスおよび(ノードN0-7によって表される)第8のサブ立方体ボックスは、それぞれ、8つの八分円に更に細分される。例えば、(ノードN0-0によって表される)第1のサブ立方体ボックスは、
図9に示す番号付け技法に従って0-7の番号が付される8つのより小さなサブ立方体ボックスに分割される。ノードN0-0のパーティションについての占有コードは、二進数で「00011000」であり、それは(ノードN0-0-3によって表される)第4のより小さいサブ立方体ボックスを示し、(ノードN0-0-4によって表される)第5のより小さいサブ立方体ボックスは、ポイントクラウド内のポイントを含み、他のより小さいサブ立方体ボックスは、空である。ノードN0-0-0~N0-0-7は、八分木構造(1020)の深さ2にある。第2のレベルでは、(ノードN0-7によって表される)第8のサブ立方体ボックスは、
図10に示すように、8つのより小さいサブ立方体ボックスに同様に区切られる。ノードN0-7-0~N0-7-7は、八分木構造(1020)の深さ2にある。
【0129】
図10の例において、空でない立方体空間(例えば、立方体ボックス、サブ立方体ボックス、より小さいサブ立方体ボックス等)に対応するノードは、灰色で色付けられ、陰影付きノードと呼ばれる。空の立方体空間(例えば、立方体ボックス、サブ立方体ボックス、より小さいサブ立方体ボックス等)に対応するノードは、白色で色付けられ、ブランクノードと呼ばれることができる。
【0130】
八分木パーティションが上記記述において記載されているが、一般に、木ベースの幾何学的形状コーディング技法は、四分木パーティションまたは二分木パーティションのような、他のパーティションを使用して、ポイントクラウドを区切ることができる。
【0131】
より一般的には、ポイントクラウドについて、ポイントクラウドの境界ボックスBは、全ての方向において同じサイズを持つように制約されず、その代わりに、境界ボックスBは、3Dシーンまたはオブジェクトの形状により良く適合するように任意のサイズの長方形の立方形であることができる。幾つかの例において、境界ボックスBのサイズは、
(外0001)
のような、2の冪乗として表されることができる。一例において、d
x,d
y,d
zは、等しくない。
【0132】
ポイントクラウドの境界ボックスBを区切るためには、上記記述の八分木パーティションに加えて、以下の記述中の四分木パーティションと二分木パーティションを使用することができる。
【0133】
図11は、幾つかの例における3つの四分木パーティションを示している。四分木パーティションについて、境界ボックスBの3次元(例えば、x次元、y次元、z次元)のうちの2つの次元を半分に分割することができ、四分木パーティションは、同じサイズを持つ4つのサブボックスをもたらすことができる。
【0134】
図11の例では、境界ボックス(1110)が、x次元およびy次元における四分木パーティションによって分割され、四分木パーティションの結果は、0、2、4、および6とラベル付けされる同じサイズを持つ4つのサブボックスによって示されている。
【0135】
さらに、
図11の例では、境界ボックス(1120)が、x次元およびz次元における四分木パーティションによって分割され、四分木パーティションの結果は、0、1、4、および5とラベル付けされる同じサイズを持つ4つのサブボックスによって示されている。
【0136】
さらに、
図11の例では、境界ボックス(1130)が、y次元およびz次元において四分木パーティションによって分割され、四分木パーティションの結果は、0、1、2、および3としてラベル付けされる同じサイズを持つ4つのサブボックスによって示されている。
【0137】
図12は、幾つかの例における3つの二分木パーティションを示している。二分木パーティションについて、境界ボックスBの3次元(例えば、x次元、y次元、およびz次元)のうちの1つの次元を半分に分割することができ、二分木パーティションは、同じサイズを持つ2つのサブボックスをもたらすことができる。
【0138】
図12の例において、境界ボックス(1210)は、x次元において二分木パーティションによって分割され、二分木パーティションの結果は、0および4とラベル付けされた同じサイズを持つ2つのサブボックスによって示されている。
【0139】
さらに、
図12の例では、境界ボックス(1220)が、y次元において二分木パーティションによって分割され、二分木パーティションの結果は、0および2とラベル付けされた同じサイズを持つ2つのサブボックスによって示されている。
【0140】
さらに、
図12の例では、境界ボックス(1230)が、z次元において二分木パーティションによって分割され、二分木パーティションの結果は、0および1とラベル付けされた同じサイズを持つ2つのサブボックスによって示されている。
【0141】
従って、ポイントクラウドは、八分木パーティション、四分木パーティション、および二分木パーティションの適切な混合を有する一般的なツリー構造によって表されることができる。ツリー構造を横断するために、幾つかの例(例えば、TMC13モデルのバージョン)では、幅優先(breadth-first)アプローチが採用される。幾つかの他の例では、深さ優先(depth-first)アプローチを使用することもできる。
【0142】
幾つかの関連した例(例えば、TMC13のバージョン)では、占有コードをコーディングするために、ツリー構造は、幅優先順序において横断される。幅優先順序によれば、あるレベルにあるツリーノード(例えば、ツリー構造のノード)は、上方レベルにあるツリーノードの全てが訪問された後に訪問されることができる。一実装例では、先入れ先出し(FIFO:first-in-first-out)データ構造を使用することができる。
【0143】
図13は、幅優先コーディング順序を図示する八分木構造(1300)の図を示している。八分木構造(1300)における陰影付きノードは、空でなく、ポイントクラウド内の1つ以上のポイントによって占められている、立方体空間に対応するノードである。陰影付きノードについての占有コードは、
図13に示す0~8までの幅優先コーディング順序でコーディングされることができる。幅優先コーディング順序において、八分木ノードは、レベル毎に訪問される。本開示の一態様によれば、幅優先コーディング順序自体は、並列処理に適さない。何故ならば、現在のレベルは、上方レベルがコーディングされるのを待たなければならないからである。
【0144】
幾つかの例では、ハイブリッドコーディング順序が、幅優先コーディング順序の代わりに、深さ優先コーディング順序を使用してコーディングされる、少なくとも1つのレベルを含む。よって、幾つかの実施形態では、深さ優先コーディング順序を持つレベルのノードおよびそのノードの子孫ノード(descendant nodes)が、ツリー構造のサブツリー構造を形成することができる。深さ優先コーディング順序を持つレベルが、空でない立方体空間にそれぞれ対応する複数のノードをとき、複数のノードおよびそれらの子孫ノードは、複数のサブツリー構造を形成することができる。複数のサブツリー構造は、幾つかの実施形態では並列にコーディングされることができる。
【0145】
図14は、深さ優先コーディング順序を図示する八分木構造(1400)の図を示している。八分木構造(1400)における陰影付きノードは、空でない立方体空間に対応するノードである。八分木構造(1400)は、八分木構造(1300)と同じポイントクラウドの占有幾何学的形状に対応することができる。陰影付きノードについての占有コードは、
図14に示す0~8までの深さ優先コーディング順序でコーディングされることができる。
【0146】
図14の例において、ノード「0」は、PD0のような任意の適切なパーティション深さにあることができ、ノード「0」の子ノードは、パーティション深さPD0+1にあり、ノード「0」の孫ノードは、パーティション深さPD0+2にある。
図14の例において、パーティション深さPD0+1でのノードは、深さ優先コーディング順序でコーディングされることができる。パーティション深さPD0+1でのノードは、空でない空間に対応する2つのノードを含む。2つのノードおよびそれらのそれぞれの子孫ノードは、第1のサブ八分木構造(1410)および第2のサブ八分木構造(1420)を形成することができ、2つのノードは、2つの八分木構造のルートノードとそれぞれ呼ばれることができる。
【0147】
図14における深さ優先コーディング順序は、深さ優先コーディング順序の先行順序バージョン(preorder version)と呼ばれる。深さ優先コーディング順序の先行順序バージョンでは、各サブ八分木構造について、サブ八分木のルートノードは、サブ八分木構造の子ノードを訪問される前に最初に訪問される。さらに、最も深いノードが最初に訪問され、次に、親ノードの兄弟姉妹(siblings)に戻る。
【0148】
図14の例において、第1のサブ八分木構造(1410)および第2のサブ八分木構造(1420)は、幾つかの実装において並列処理でコーディングされることができる。例えば、ノード1およびノード5は、同時に訪問されることができる。幾つかの例では、再帰プログラミングまたはスタックデータ構造を使用して、深さ優先コーディング順序を実装することができる。
【0149】
幾つかの実施形態において、ハイブリッドコーディング順序は、幅優先横断(コーディング)で始まり、幾つかのレベルの幅優先横断(traversing)の後に、深さ優先横断(コーディング)が可能にされることができる。
【0150】
幾つかの例では、予測ツリーベースの幾何学的形状コーディングを使用することができる。予測ツリーベースの幾何学的形状コーディングは、スパニングツリー(spanning tree)のような予測ツリーがポイントクラウド内の全てのポイントに亘って構築されることができるときに使用されることができる。一例では、あるポイントの予測のために、全ての祖先を使用することができる。
【0151】
図15は、ウサギのポイントクラウド(1500)に亘る(span)予測ツリー(1510)の一部分を示している。幾つかの例において、予測ツリー(1510)中のあるポイントの位置は、その親のポイントの位置から或いはその親およびその祖父母のポイントの位置から予測されることができる。
【0152】
幾つかの例において、トリスープ(trisoup)ベースの幾何学的形状コーディングを使用することができる。トリスープベースの幾何学的形状コーディングアプローチは、オブジェクトの表面を一連の三角形メッシュとして表すことができる。一例において、トリスープベースの幾何学的形状コーディングアプローチは、高密度表面ポイントクラウドに適用される。トリスープベースの幾何学的形状コーディングを使用するデコーダが、再構成されたポイントクラウドの密度を保証するために、指定されたボクセル粒度でメッシュ表面からポイントクラウドを生成することができる。本開示の一態様によれば、トリスープベースの幾何学的形状コーディングは、元のポイントクラウドに歪みを導入し得るが、ビットストリームサイズの低減という利点を提供することがある。
【0153】
属性コーディングのために、幾つかの技法を使用することができる。この技法は、予測ベースの属性コーディング、リフティングベースの属性コーディング、領域適応階層変換(RAHT)ベースの属性コーディング等を含む。予測ベースの属性コーディング、リフティングベースの属性コーディング、およびRAHTベースの属性コーディング等は、以下の記述においてそれぞれ記載される。
【0154】
単純化のために、以下の説明では、1つのレベルの詳細(LoD)を使用する。予測ベースの属性コーディングについて、(Pi)i=1...Nが、ポイントクラウド内のポイントと関連付けられる位置のセットを示すとしよう。多次元データによって表される各位置について、1つの次元のモートンコード(Morton code)が、その位置と関連付けられると決定することができる。(Mi)i=1...Nが、位置(Pi)i=1...Nとそれぞれ関連付けられるモートンコードを示すとしよう。予測ベースの属性コーディングは、ソート(sorting)ステップを含み、コーディングステップが続く。ソートステップにおいて、ポイントクラウド内のポイントは、例えば、昇順において、関連付けられるモートンコードに従ってソートされる(sorted)。例えば、1が、ソートステップに従って順序付けられるポイントについてのインデックスのアレイを示すとしよう。
【0155】
コーディングステップにおいて、エンコーダ/デコーダは、反復において1によって定義される順序に従ってポイントをそれぞれ圧縮/解凍することができる。各反復iで、ポイントP
iが、Iによって定義される順序に従って選択される。分析される順序における多数の以前のポイントまでの距離。例えば、s(例えば、s=64)は、分析される以前のポイントの数を示す。分析されるポイントに基づいて、Piのk個の(例えば、k=3)の最も近い隣接物(nearest neighbors)が、属性予測のために使用されるように選択される。具体的には、幾つかの例において、ポイントiの属性
(外0002)
は、ポイントiに対する最も近い隣接物の距離に基づいて重み付けされる、k個の最も近い隣接物
(外0003)
の属性の線形補間プロセスを使用することによって予測されることができる。一例として、デコーダ側で、
(外0004)
が、現在のポイントiのk個の最も近い隣接物のセットを示し、
(外0005)
が、近隣ポイントの復号化された/再構成された属性値を示し、
(外0006)
が、現在のポイントiまでの距離を示すとしよう。その場合、現在のポイントiについての予測される属性値
(外0007)
は、隣接物(隣接ポイント)の属性値と現在のポイントまでのそれらの距離とに基づいた距離ベースの加重平均(weighted average)計算に従って計算されることができる。例えば、現在のポイントiについての予測される属性値
(外0008)
は、式(1)に従って計算されることができる。
【数1】
【0156】
リフティングベースの属性コーディングのために、追加的なステップが予測ベースのコーディングに適用される。一例では、更新演算子の第1ステップおよび適応量子化の第2ステップと呼ばれる2つの追加的なステップが使用される。
【0157】
図16は、G-PCCのエンコーダ側でのリフティングベースの属性コーディングにおける直接/順変換アーキテクチャ(1600)を使用する図を示している。幾つかの例では、予測(prediction)および更新(update)を容易にするために、直接/順変換アーキテクチャ(1600)は、属性信号を分解するために、複数の予測/更新(P/U)分解ステージを含む。複数のP/U分解段階の各々では、以前の段階からの信号(近似信号)が、2つのセットの高相関(high-correlation)に分割される。一例として、G-PCCのリフティングベースの属性コーディングスキーム(方式)において、分割は、そのような高相関がレベル間で予期される詳細レベル(LoD)構造を利用することによって行われ、各レベルは、不均一なポイントクラウドを構造化されたデータに組織化するために、最も近い隣接物検索によって構築される。段階(N)でのP/U分解段階は、詳細信号D(N)および近似信号L’(N)をもたらし、それは次の段階(例えば、段階(N-1))においてD(N-1)およびL’(N-1)にさらに分解される。分解は、ベース層近似信号L’(0)が一例において得られるまで、繰り返し適用される。結果的に、様々なレベルの細部からなる入力属性信号自体をコーディングする代わりに、詳細信号D(N),D(N-1),...,D(0)、およびベース層近似信号L’(0)が、リフティングベースの属性コーディングスキームにおいてコーディングされることができる。
【0158】
P/U分解段階の適用は、D(N),...,D(0)の係数において疎なサブバンド(sparse sub-bands)をもたらすことができ、それによって、変換コーディング利得の利点を提供することができることに留意されたい。
【0159】
図17は、G-PCCのデコーダ側でのリフティングベースの属性コーディングにおける逆変換アーキテクチャ(1700)を使用する図を示している。逆変換アーキテクチャ(1700)は、属性信号を再構成するために、複数の予測/更新(P/U)マージ段階を含む。各P/Uマージ段階では、詳細信号がデコードされ、以前の段階からの近似信号とマージされて、次のP/Uマージ段階に提供するための新しい近似信号が生成される。
【0160】
RAHTベースの属性コーディングのために、適応階層変換を使用することができる。
【0161】
図18は、G-PCCのエンコーダ側において使用されることができるRAHT順方向変換アーキテクチャ(1810)の図と、G-PCCのデコーダ側において使用されることができるRAHT逆変換アーキテクチャ(1820)の図とを示している。
図18の例において、
(外0009)
および
(外0010)
であり、w0は、入力係数F
l+,2nの重みの表記である一方で、w1は、F
l+1,2n+1と同じである。
【0162】
本開示の一態様によれば、予測ベースの幾何学的形状コーディングおよび/または属性コーディング方法において、現在のポイントの幾何学的形状情報および/または属性情報の予測は、予測された隣接ポイントからの加重平均の計算に基づく。加重平均の計算における重み付け(weighting)は、通常、式(1)を使用するような、予測された隣接ポイントと現在のポイントとの間の距離に基づく。
【0163】
本開示の一態様によれば、式(1)における計算は、浮動小数点演算(floating point operations)を含む。例えば、予測される隣接ポイントの属性値の重みは、予測される隣接ポイントから現在のポイントまでの距離の逆数(reciprocal)に基づいて計算される。近隣ポイントから現在のポイントまでの距離の逆数は、除算演算(division operation)を使用して計算されることができ、被除数(dividend)は、1であり、除数(divisor)は、予測される近隣ポイントと現在のポイントとの間の距離である。コンピュータ技術では、距離が1よりも大きいときに、整数除算演算は、0を出力することができる。一般に、浮動小数点除算演算は、比較的高い精度を得るために、予測される隣接ポイントと現在のポイントとの間の距離の逆数を計算するように使用される。
【0164】
さらに、幾つかの例において、ポイントクラウド内のポイントの不規則な分布の故に、現在のポイントまでの隣接ポイントの距離の範囲は、有意に異なり得る。浮動小数点演算は、範囲と精度との間のトレードオフをサポートすることができ、式(1)によるような、距離ベースの加重平均計算を実装するために使用される。例えば、幾つかのコンピュータ技術における浮動小数点演算の実装において、(加算演算、減算演算、乗算演算、除算演算等のような)数学的演算における1つ以上のオペランド(operands)が、浮動小数点データタイプを宣言される。次に、浮動小数点演算を使用して数学的演算を行う。
【0165】
一般に、浮動小数点演算は、ハードウェアのサポートを必要とすることがあり、ハードウェア実装には適さない。例えば、浮動小数点演算は、高速浮動小数点処理速度のために浮動小数点ユニット(FPU:floating point units)によって実行される必要があることがある。しかしながら、埋め込みプロセッサのような、多くのプロセッサは、FPUのハードウェアサポートを持たないことがある。
【0166】
本開示の態様は、距離ベースの加重平均を計算する際に浮動小数点演算の代わりに整数演算を使用する技法を提供する。幾つかの例において、距離ベースの加重平均法は、幾何学的形状コーディングにおいて使用される。幾つかの例において、距離ベースの加重平均方法は、属性コーディングにおいて使用される。
【0167】
幾つかの例では、本開示において開示する技法を別々に使用することができることに留意されたい。幾つかの例では、2つ以上の技法を組み合わせて、幾つかの実装において使用することができる。
【0168】
式(1)におけるδjおよびδtのような、距離ベースの加重平均方法において使用される距離は、デカルト座標系、球面座標系等のような、任意の座標系における任意の距離メトリック(例えば、L1ノルム距離、L2ノルム距離)であることができることに留意されたい。
【0169】
幾つかの例では、現在のポイントiについて、
(外0011)
における最も近い隣接物は、現在のポイントiの幾何学的形状情報および/または属性情報を予測する予測因子として決定される。
【0170】
幾つかの例において、現在のポイントiについて、現在のポイントiの幾何学的情報および/または属性情報は、隣接ポイントについての等しい重みに基づいて、隣接ポイントの平均として予測されることができる。例えば、式(1)は、隣接ポイントについての等しい重みに基づいて式(2)に変換される。
【数2】
ここで、
(外0012)
は、現在のポイントiのk個の最も近い隣接ポイントのセットを示し、kは、セット
(外0013)
内の隣接ポイントの数を示す。現在のポイントiについての予測属性値
(外0014)
は、隣接ポイントの予測される属性の平均属性として計算されることができる。
【0171】
式(2)は、現在のポイントまでの予測される隣接ポイント間の距離の逆数を計算しないことに留意されたい。式(2)による計算は、整数演算(integer operations)を使用して行われることができる。例えば、隣接ポイントの予測される属性値(
(外0015)
)、隣接ポイント(k)の数等のような、式(2)中のオペランドは、整数データタイプであると宣言される。予測される属性値の合計は、整数加算演算(integer add operation)によって行われることができる。一例において、丸め演算(rounding operation)は、端数切り捨て演算(rounding down operation)であり、式(2)は、式(3)に変換され、整数kによる予測される属性値の合計の除算演算は、整数除算演算によって行われることができる。
(外0016)
は、整数に帰着する端数切り捨て演算を示す。
【数3】
【0172】
丸め演算が端数切り捨て演算ではないとき、式(2)は適宜調整されることができる。一例において、丸め演算は、最も近い整数演算への丸めであり、式(2)は、式(4)に変換されることができ、式(4)による計算は、整数演算によって行われることができる。
【数4】
【0173】
幾つかの実施形態において、重み計算は、浮動小数点演算の代わりに、整数乗算、整数除算等のような、整数演算を使用して行われることができるように、適切に変換されることができる。例えば、重み計算は、精度を高めるために、アップスケールされた(増大された)被除数で変換される。アップスケールされた被除数は、1よりも大きい絶対値を持つ整数である。幾つかの例において、δ
jに基づいて換算される重みQ
jが、式(5)に従って計算されることができる。
【数5】
ここで、MおよびNは、正の整数である。一例において、M=32およびN=δ
j>>1である。アップスケールされた被除数は、式(5)の除算演算における精度を高めることができる。除算演算は、より精度の高い整数除算演算を使用して行われることができる。
【0174】
幾つかの例において、Mは、所望の精度に基づいて適切に選択され、Nは、整数除算演算において最も近い整数に丸めるために使用される。式(5)における計算は、ビットシフト演算、整数加算演算、整数除算演算等のような、整数演算を使用して行われることができる。実装例において、M、N、δj等のような、式(5)中のオペランドは、整数データタイプであると宣言され、変換された重みは、整数データタイプであると宣言される。
【0175】
一例では、変換された重みに基づいて、現在のポイントの属性は、式(6)による計算に基づいて予測されることができる。
【数6】
【0176】
式(6)の演算は、整数乗算、整数加算、整数除算等のような、整数演算を使用して行われることができることに留意されたい。実装例において、Qj、 (外0017)
のような、式(6)中のオペランドは、整数データタイプであると宣言される。
【0177】
端数切り捨て(フロア)、端数切り上げ(天井)、最も近い整数への丸め等のような、任意の適切な丸め演算を使用することができることに留意されたい。
【0178】
一例として、端数切り捨て演算が使用されるときには、式(6)中の除算演算において整数除算をしようすることができ、式(7)を使用して式(6)を表すことができる。
【数7】
【0179】
別の例では、最も近い整数演算への丸めが使用されるときには、式(6)を式(8)に変換することができ、式(8)中の除算演算は、整数除算演算を使用して行われることができる。
【数8】
【0180】
幾つかの例において、式(6)~式(8)中の
(外0018)
のような、除数(divisor)が計算される。除数がゼロに等しいならば、別の方法を使用して現在のポイントの属性
(外0019)
を決定することができる。一例では、除数がゼロに等しいときには、最も近い隣接ポイントを予測子として使用して、現在のポイントの属性を予測することができる。別の例では、除数がゼロに等しいときに、現在のポイントの属性は、例えば、式(3)を使用して、隣接ポイントの属性の平均として計算される。
【0181】
本開示の一態様によれば、Mのより大きな値は、変換された重みの精度を改良することができるが、オーバーフロー(overflow)、減速整数除算演算(slowing down integer division)等のような、問題を引き起こすこともある。幾つかの実施形態において、変換された重みの値は、問題を回避するために、適応的に調整されることができる。一部の例において、換算された重みの値は、換算された重みについての上限に基づいて調整される。一例において、上限は、パラメータLに基づいて定義される。Lは、所定の整数である。例えば、上限は、2Lに設定される。幾つかの例では、変換された重みが上限以上であるならば、変換された重みの全ては、変換された重みの全てが2Lよりも小さくなる(例えば、最大の変換された重みが2Lよりも小さくなる)まで、(例えば、ビット単位の右シフトによって)ダウンスケールされる(縮小される)。
【0182】
本開示の一態様によれば、距離ベースの重み付けモデルにおいて適切な変換モデルを使用することができる。例えば、線形モデル、二次モデル、および/または他の非線形モデルを、距離ベースの重み付けモデルにおいて使用することができる。次に、距離ベースの重み付けモデルに従った重み計算は、整数演算によって行われることができるように、適切に変換されることができる。
【0183】
一例では、距離ベースの重み付けモデルが、変換モデル
(外0020)
を使用することができ、ここで、AおよびBは、正の整数であり、δ
jは、隣接ポイントと現在のポイントの間の距離である。幾つかの実施形態において、重み計算は、浮動小数点演算の代わりに、整数乗算、整数除算等のような、整数演算を使用して行われることができるように、適切に変換されることができる。例えば、重み計算は、精度を高めるために、アップスケールされた被除数で変換される。アップスケールされた被除数は、1よりも大きい絶対値を持つ整数である。幾つかの例では、δ
jに基づく換算された重みは、式(9)に従って計算されることができ、
【数9】
ここで、MおよびNは、正の整数である。
【0184】
本開示の一態様によれば、ルックアップテーブルを使用して整数乗算演算を高速化することができる。例えば、整数乗算演算は、予め計算されることができ、結果が、ルックアップテーブルに格納される。
【0185】
一例では、Qjの値が、第1の範囲内の整数であり、属性の値が、第2の範囲内の整数であり、次に、第1の範囲内の第1の値および第2の範囲内の第2の値の全ての可能な組み合わせの乗算結果を事前計算することができ、乗算結果が、ルックアップテーブルに格納される。ルックアップテーブルは、第1の入力値および第2の入力値に基づいて乗算結果を生成することができる。一例において、ルックアップテーブルの演算は、式(10)によって表わされることができる。
【数10】
【0186】
換算された重みに基づいて、現在のポイントの予測される属性を式(11)に従って計算することができる。
【数11】
【0187】
幾つかの例では、M、N、L、A、B等のような、上記記述において使用される様々なパラメータが固定されており、エンコーダ側およびデコーダ側によって知られていることに留意されたい。幾つかの他の例において、エンコーダは、M、N、L、A、B等のような、様々なパラメータを決定して、シーケンス適合のためにエンコーダ側からデコーダ側にビットストリームにおいてパラメータを信号伝達することができる。デコーダは、ビットストリームからのパラメータを復号化することができ、隣接ポイントおよび復号化されたパラメータに基づいて現在のポイントの情報を予測することができる。一例において、様々なパラメータは、シーケンスパラメータセット、属性パラメータセット、幾何学的形状パラメータセット、スライスヘッダ等のような、高レベル構文において信号伝達されることができる。
【0188】
図19は、本開示の一実施形態によるプロセス(1900)の概説するフローチャートを示している。プロセス(1900)は、ポイントクラウドのための符号化プロセスまたは復号化プロセスのような、コーディングプロセスの間に使用されることができる。様々な実施形態において、プロセス(1900)は、端末デバイス(110)内の処理回路構成、エンコーダ(203)および/またはデコーダ(210)の機能を行う処理回路構成、エンコーダ(700)、および/またはデコーダ(800)等のような、処理回路構成によって実行される。幾つかの実施形態において、プロセス(1900)は、ソフトウェア命令において実装され、よって、処理回路構成がソフトウェア命令を実行すると、処理回路構成は、プロセス(1900)を実行する。プロセスは、(S1901)で開始し、(S1910)に進む。
【0189】
(S1910)で、ポイントクラウド内の現在のポイントと関連付けられるコーディング(符号化/復号化)情報についての予測モードが決定される。予測モードにおいて、現在のポイントと関連付けられる情報は、現在のポイントの1つ以上の隣接ポイントに基づいて予測される。
【0190】
幾つかの例において、現在のポイントと関連付けられる情報は、現在のポイントの幾何学的形状情報である。幾つかの例において、現在のポイントと関連付けられる情報は、現在のポイントの属性情報である。
【0191】
(S1920)で、距離ベースの加重平均値が、現在のポイントまでの1つ以上の隣接ポイントの距離に基づいて計算される。計算中、少なくとも重み値は、整数演算を使用して計算され、浮動小数点演算は、少なくとも重み値の計算のために使用されない。
【0192】
幾つかの例では、重み値を計算するために、重み計算における様々な演算のためのオペランドは、浮動小数点データタイプでない。幾つかの例において、様々な数学的演算(例えば、加算演算、減算演算、乗算演算、分割アプリケーション等)のオペランドは、整数データタイプであると宣言される。浮動小数点データタイプは、重み計算における数学的演算から除外される。
【0193】
本開示の一態様によれば、幾つかのコンピュータ技術において、数学的演算におけるオペランドが浮動小数点データタイプであるとき、数学的演算は、浮動小数点ベースの演算を使用して行われる。全ての数学的演算のオペランドが浮動小数点データタイプでないときには、浮動小数点演算を避けることができる。たとえば、除数および被除数の両方が整数データタイプであるときには、整数除算演算が行われ、除数または被除数のいずれかが浮動小数点数であるときには、浮動小数点除算が実行される。
【0194】
幾つかの例において、重み計算は、除算演算においてアップスケールされた被除数を使用するために変換される。例えば、隣接ポイントの重み情報についての(換算された重みと呼ばれる)重みは、アップスケールされた被除数を用いる除算演算を使用して計算される。アップスケールされた被除数は、1よりも大きい絶対値を持つ整数であり、除数は、隣接ポイントと現在のポイントとの間の距離に基づく。一例において、被除数は、ビット単位の左シフトに基づいてアップスケールされる。一例において、被除数は、除数のビット単位の左シフトによって計算される第1の整数と、ビット単位の右シフトによって計算される第2の整数との合計に基づく。
【0195】
幾つかの例では、1つ以上の隣接ポイントの加重属性の合計が計算される。加重属性は、変換された重みを持つ隣接ポイントと関連付けられる複数の属性に基づいて計算される。一例において、加重属性は、属性および変換された重みに基づくルックアップ演算に従って、ルックアップテーブルから出力される。さらに、1つ以上の隣接ポイントと関連付けられる変換された重みの合計が計算される。次に、距離ベースの加重平均値は、変換された重みの合計によって加重属性の合計を除することに基づいて決定される。
【0196】
幾つかの例において、変換された重みのうちの少なくとも1つが上限よりも大きいことに応答して、(例えば、ビット単位の右シフトを使用して)変換された重みをダウンスケールさせることができる。
【0197】
一例において、距離ベースの加重平均値は、変換された重みの合計がゼロであることに応答して、1つ以上の隣接ポイントのうちの最も近い隣接ポイントに基づいて決定される。
【0198】
別の例において、距離ベースの加重平均値は、変換された重みの合計がゼロであることに応答して、1つ以上の隣接ポイントの属性値の平均に基づいて決定される。
【0199】
(S1930)で、現在のポイントと関連付けられる情報は、距離ベースの加重平均値に基づいて決定される。
【0200】
次に、プロセスは、(S1999)に進み、終了する。
【0201】
本開示において開示する技法は、別々に或いは任意の順序における組み合わせにおいて使用されてよい。さらに、技法(例えば、方法、実施形態)、エンコーダ、およびデコーダの各々は、処理回路構成(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装されてよい。幾つかの例において、1つ以上のプロセッサは、非一時的コンピュータ読取可能媒体に格納されるプログラムを実行する。
【0202】
上述の技法は、コンピュータ読取可能命令を使用するコンピュータソフトウェアとして実装されることができ、1つ以上のコンピュータ読取可能媒体に物理的に格納されることができる。例えば、
図20は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(2000)を示している。
【0203】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等によって、直接的に或いは解釈、マイクロコード実行等を通じて実行されることができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または類似のメカニズムの対象となることがある任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。
【0204】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む、様々なタイプのコンピュータまたはそれらのコンポーネント上で実行されることができる。
【0205】
コンピュータシステム(2000)のための
図20に示されるコンポーネントは、例示的な性質のものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能性に関する如何なる制限も示唆することを意図しない。コンポーネントの構成は、コンピュータシステム(2000)の例示的な実施形態において図示されるコンポーネントの任意の1つまたは組み合わせに関する如何なる従属性または要件も有するものとして解釈されてならない。
【0206】
コンピュータシステム(2000)は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きのような)触覚入力、(音声、拍手のような)オーディオ入力、(ジェスチャのような)視覚入力、嗅覚入力(図示せず)を通じて、1人以上の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、(発話、音楽、周囲サウンドのような)オーディオ、(スキャンされた画像、静止画像カメラから得られる写真画像のような)画像、(二次元ビデオ、立体視ビデオを含む三次元ビデオのような)ビデオのような、人間による意識的入力に必ずしも直接的に関係しない特定の媒体を取り込むために使用されることもできる。
【0207】
入力ヒューマンインターフェースデバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロホン(2006)、スキャナ(2007)、およびカメラ(2008)の1つ以上(各々の1つのみが描かれている)を含んでよい。
【0208】
コンピュータシステム(2000)は、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、サウンド、光、および嗅覚/味覚を通じて、1人以上の人間ユーザの感覚を刺激することがある。そのようなヒューマンインターフェース出力デバイスは、(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあることができる)触覚出力装置、(スピーカ(2009)、ヘッドフォン(図示せず)のような)オーディオ出力デバイス、(各々がタッチスクリーン入力能力を持つか或いは持たない、各々が触覚フィードバック能力を持つか或いは持たない、それらの一部は、立体出力、仮想現実グラス(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)、およびプリンタ(図示せず)のような手段を通じて、二次元視覚出力または三次元よりも多くの次元の出力を出力し得ることがある、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含む、スクリーン(2010)のような)視覚出力デバイスを含むことがある。
【0209】
コンピュータシステム(2000)は、人間がアクセス可能な記憶デバイスや、CD/DVDまたは同等の媒体(2021)を備えるCD/DVD ROM/RW(2020)、サムドライブ(2022)、取り外し可能なハードドライブまたはソリッドステートドライブ(2023)、テープおよびフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースのデバイス、および同等物を含む、光媒体のような、それらの関連する媒体も含むことができる。
【0210】
当業者は、現在開示されている主題に関連して使用されるような「コンピュータ読取可能媒体」という用語が、送信媒体、搬送波、または他の過渡信号を包含しないことも理解するはずである。
【0211】
コンピュータシステム(2000)は、1つ以上の通信ネットワーク(2055)へのインターフェース(2054)を含むこともできる。ネットワークは、例えば、無線、有線、光であることができる。ネットワークは、更に、ローカル、ワイドエリア、メトロポリタン、車両および産業、リアルタイム、遅延耐性等であることができる。ネットワークの例は、イーサネット、無線LANのようなローカルエリアネットワーク、GSM、3G、4G、5G、LTEおよび同等のものを含むセルラネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両および産業等を含む。特定のネットワークは、一般に、(例えば、コンピュータシステム(2000)のUSBポートのような)特定の汎用データポートまたは周辺バス(2049)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下に記載するようなシステムバスへの取り付けによって、コンピュータシステム(2000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は、他のエンティティと通信することができる。そのような通信は、単指向性、受信のみ(例えば、放送テレビ)、単指向性送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの、双指向性であることができる。特定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0212】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2000)のコア(2040)に取り付けられることができる。
【0213】
コア(2040)は、1つ以上の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲートエリア(FPGA)(2043)の形態の特殊化されたプログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(2044)、グラフィックスアダプタ(2050)等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、内部ユーザアクセス可能でないハードドライブのような内部大容量記憶装置、SSD、および同等物(2047)と共に、システムバス(2048)を通じて接続されてよい。幾つかのコンピュータシステムにおいて、システムバス(2048)は、追加のCPU、GPU、および同等物による拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能であることができる。周辺デバイスは、コアのシステムバス(2048)に直接的に取り付けられることができ、或いは周辺バス(2049)を通じて取り付けられることができる。一例において、スクリーン(2010)は、グラフィックスアダプタ(2050)に接続されることができる。周辺バスのためのアーキテクチャは、PCI、USB、および同等物を含む。
【0214】
CPU(2041)、GPU(2042)、FPGA(2043)、およびアクセラレータ(2044)は、組み合わせにおいて、上述のコンピュータコードを構成することができる、特定の命令を実行することができる。そのコンピュータコードは、ROM(2045)またはRAM(2046)に格納されることができる。移行データも、RAM(2046)に格納されることができるのに対し、永久データは、例えば、内部大容量記憶装置(2047)に格納されることができる。1つ以上のCPU(2041)、GPU(2042)、大容量記憶装置(2047)、ROM(2045)、RAM(2046)、および同等物と密接に関連付けられることができるキャッシュメモリの使用を通じて、メモリデバイスのいずれかへの高速格納および検索を可能にすることができる。
【0215】
コンピュータ読取可能媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであることができ、或いは、それらは、コンピュータソフトウェア技術の当業者によく知られており且つ利用可能である種類のものであることができる。
【0216】
一例として、限定によってではなく、アーキテクチャ(2000)、具体的には、コア(2040)を有する、コンピュータシステムは、1つ以上の有形のコンピュータ読取可能媒体において具現されるソフトウェアを実行する(CPU、GPU、FPGA、アクセラレータ、および同等物を含む)プロセッサの結果としての機能性を提供することができる。そのようなコンピュータ読取可能媒体は、上述のようなユーザアクセス可能な大容量記憶装置と関連付けられる媒体、並びにコア内部大容量記憶装置(2047)またはROM(2045)のような非一時的な性質を有するコア(2040)の特定の記憶装置であってよい。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納されることができ、コア(2040)によって実行されることができる。コンピュータ読取可能媒体は、特定のニーズに従って、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2040)、特にコア内の(CPU、GPU、FPGA、および同等物を含む)プロセッサに、RAM(2046)に格納されるデータ構造を定義ことと、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することとを含む、本明細書に記載する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。追加的にまたは代替的に、コンピュータシステムは、回路内に配線された或いは他の方法で具現されたロジック(論理)の結果として機能性(例えば、アクセラレータ(2044))を提供することができ、それは、本明細書に記載する特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに或いはソフトウェアと共に作動することができる。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も同様である。コンピュータ読取可能媒体への言及は、実行のためのソフトウェアを格納する回路、実行のためのロジックを具現する(集積回路(IC)のような)回路、または適切な場合にはそれらの両方を含むことができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを含む。
【0217】
この開示は幾つかの例示的な実施形態を記載したが、本開示の範囲内にある変更、置換、および様々な代替的な均等物がある。よって、当業者は、本明細書に明示的に示されていないか或いは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある、数多くのシステムおよび方法を考案することができることが理解されるであろう。