(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】点群データフレームの圧縮
(51)【国際特許分類】
G06T 9/40 20060101AFI20240905BHJP
【FI】
G06T9/40
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024518138
(86)(22)【出願日】2022-09-22
(85)【翻訳文提出日】2024-05-20
(86)【国際出願番号】 GB2022052406
(87)【国際公開番号】W WO2023047119
(87)【国際公開日】2023-03-30
(32)【優先日】2021-09-23
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】516189523
【氏名又は名称】ブイ-ノバ インターナショナル リミテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ポーララキス,ステルヨス
(72)【発明者】
【氏名】アイルズ,クリスチャン
(57)【要約】
動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームを符号化する方法であって、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、この方法は、現フレーム内で符号化されるべき現在点を取得することと、現フレーム内で符号化されるべき現在点に対応する、先行フレーム内で符号化された先行点を識別することと、フレーム間予測符号化を使用して、上記先行点を参照することにより、上記現在点の少なくとも1つの属性を符号化し、上記現在点の符号化済みデータを生成することと、上記現在点の上記符号化済みデータを含む、上記現フレームを生成することと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームを符号化する方法であって、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、前記方法は、
現フレーム内で符号化されるべき現在点を取得することと、
前記現フレーム内で符号化されるべき前記現在点に対応する、先行フレーム内で符号化された先行点を識別することと、
フレーム間予測符号化を使用して、前記先行点を参照することにより、前記現在点の少なくとも1つの属性を符号化し、前記現在点の符号化済みデータを生成することと、
前記現在点の前記符号化済みデータを含む、前記現フレームを生成することと、を含む、方法。
【請求項2】
前記現在点の前記少なくとも1つの属性のそれぞれのフレーム間予測符号化は、前記現在点の前記属性と前記先行点の前記属性との差分を符号化することを含む、請求項1に記載の方法。
【請求項3】
前記現在点に対応する前記先行点を識別することが、前記現在点と同じ三次元位置を有する、前記先行フレーム内で符号化された先行点を識別することを含む、請求項1又は請求項2に記載の方法。
【請求項4】
各点の前記1つ以上の属性は、非予測属性を含み、
前記現在点に対応する前記先行点を識別することは、前記現在点と同じ三次元位置を有し、且つ、前記現在点と同じ前記非予測属性の値を有する、前記先行フレーム内で符号化された先行点を識別することを含む、請求項3に記載の方法。
【請求項5】
前記現フレーム内で符号化されるべき前記複数の現在点の第1部分を取得することと、
前記第1部分の現在点ごとに、前記現在点について、フレーム間予測符号化を使用可能であるか否かを識別することであって、前記現フレーム内で符号化されるべき前記現在点に対応する、前記先行フレーム内で符号化された先行点が存在する場合、フレーム間予測符号化を使用可能である、ことと、
フレーム間予測符号化を使用可能な各現在点に対して、フレーム間予測符号化を実行し、且つ、フレーム間予測符号化を使用不可能な各現在点に対して、フレーム内予測符号化を実行することによって、前記フレームを符号化することと、を含む、請求項1から請求項4のいずれか一項に記載の方法。
【請求項6】
前記現フレームは、前記現フレームの各点について符号化種類を示す符号化種類情報を含めて生成され、前記種類はフレーム間予測符号化、又はフレーム内予測符号化である、請求項5に記載の方法。
【請求項7】
前記現フレーム内で符号化されるべき前記複数の現在点の第2部分の順序を定義する順序付け情報を生成することも更に含み、前記現フレームは、前記順序付け情報を含み、且つ、前記順序付け情報に従って順序付けされた符号化済みデータを含めて生成される、請求項1から請求項6のいずれか一項に記載の方法。
【請求項8】
前記順序付け情報は、前記現フレームの各点の前記三次元位置を含む、請求項7に記載の方法。
【請求項9】
前記順序付け情報は、前記現フレームの各点の前記三次元位置に基づく八分木を含む、請求項8に記載の方法。
【請求項10】
前記八分木の各リーフノードは、前記現フレームの点の少なくとも1つの三次元位置を含む、請求項9に記載の方法。
【請求項11】
フレーム内予測符号化を使用して、前記現フレームの前記複数の現在点の第3部分を符号化することも更に含む、請求項1から請求項10のいずれか一項に記載の方法。
【請求項12】
前記フレームの前記複数の現在点の第4部分のそれぞれに対して、前記1つ以上の属性の第3属性を予測符号化することと、
前記複数の現在点の前記第4部分の前記第3属性の前記符号化済み値に対して、疎配列圧縮を実行することであって、前記疎配列圧縮は、
前記第3属性の前記符号化済み値を所定のサイズNのグループに分割することと、
各グループが所定閾値以下の符号化済み値のみを含むか否かを識別する、疎配列を生成することと、を含む、ことと
前記疎配列、及び前記所定閾値超の少なくとも1つの符号化済み値を格納する前記グループを含む、前記現フレームを生成することと、を備える、請求項1から請求項11のいずれか一項に記載の方法。
【請求項13】
前記疎配列に対して、ランレングス圧縮を実行することも更に含む、請求項12に記載の方法。
【請求項14】
エントロピ符号化法を、前記現フレームの順序付け情報、符号化種類情報、及び第4属性の符号化済み値の少なくとも1つに適用することも更に含む、請求項1から請求項13のいずれか一項に記載の方法。
【請求項15】
前記エントロピ符号化法は、ハフマン符号化、レンジ符号化、又はVC-6規格に準拠する方法である、請求項14に記載の方法。
【請求項16】
動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームを復号化する方法であって、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、前記方法は、
現フレーム内で復号化されるべき現在点を取得することと、
前記現フレーム内で復号化されるべき前記現在点に対応する、先行フレーム内で復号化された先行点を識別することと、
フレーム間予測を使用して、前記先行点を参照することにより、前記現在点の少なくとも1つの属性を復号化し、前記現在点の復号化済みデータを生成することと、を含む、方法。
【請求項17】
前記現在点の前記少なくとも1つの属性のそれぞれのフレーム間予測は、前記現在点の前記属性と前記先行点の前記属性との差分を復号化することを含む、請求項16に記載の方法。
【請求項18】
前記現在点に対応する前記先行点を識別することが、前記現在点と同じ三次元位置を有する、前記先行フレーム内で復号化された先行点を識別することを含む、請求項16又は請求項17に記載の方法。
【請求項19】
各点の前記1つ以上の属性は非予測属性を含み、前記現在点に対応する前記先行点を識別することは、前記現在点と同じ三次元位置を有し、且つ、前記現在点と同じ前記非予測属性の値を有する、前記先行フレーム内で復号化された先行点を識別することを含む、請求項16から請求項18のいずれか一項に記載の方法。
【請求項20】
前記現フレーム内で復号化されるべき前記複数の現在点の第1部分を取得することと、
前記第1部分の現在点ごとに、前記現在点について、フレーム間予測符号化が使用されたか否かを識別することであって、前記現フレーム内で符号化されるべき前記現在点に対応する、前記先行フレーム内で符号化された先行点が存在する場合、フレーム間予測符号化を使用可能である、ことと、
フレーム間予測復号化を使用可能な各現在点に対して、フレーム間予測復号化を実行し、且つ、フレーム間予測復号化を使用不可能な各現在点に対して、フレーム内予測復号化を実行することによって、前記フレームを復号化することと、を含む、請求項16から請求項19のいずれか一項に記載の方法。
【請求項21】
前記現フレームは、前記現フレームの各点について符号化種類を示す符号化種類情報を含み、前記種類はフレーム間予測符号化、又はフレーム内予測符号化である、請求項16から請求項20のいずれか一項に記載の方法。
【請求項22】
前記現フレーム内で符号化される前記複数の現在点の第2部分の順序を定義する順序付け情報を復号化することも更に含む、請求項16から請求項21のいずれか一項に記載の方法。
【請求項23】
フレーム内予測復号化を使用して、前記現フレームの前記複数の現在点の第3部分を復号化することも更に含む、請求項16から請求項22のいずれか一項に記載の方法。
【請求項24】
前記1つ以上の属性の第1属性を予測復号化することも更に含み、前記第1属性をフレーム内予測復号化することは、前記複数の現在点のそれぞれについて、前記複数の現在点に対する前記第1属性の平均を、前記平均と前記現在点に対する前記第1属性の値との差分に加算することを含む、請求項23に記載の方法。
【請求項25】
前記複数の現在点は、八分木の所定レベルのノードに対応する局所的な点のグループである、請求項16から請求項24のいずれか一項に記載の方法。
【請求項26】
前記1つ以上の属性の第2属性をフレーム内予測復号化することを含み、前記第2属性をフレーム内予測復号化することは、第1現在点に対する前記第2属性の生値を取得することと、第2現在点に対する前記第2属性の復号化済み値を取得することとを含み、前記復号化済み値は、前記第2現在点に対する前記第2属性の前記符号化済み値と、前記第1現在点に対する前記第2属性の前記生値との和に等しい、請求項16から請求項25のいずれか一項に記載の方法。
【請求項27】
前記フレームの前記複数の現在点の第4部分のそれぞれについて、第3属性の前記符号化済み値に対する疎配列圧縮を逆変換することも更に含み、疎配列圧縮を逆変換することが、前記符号化済み値の疎配列を読み取り、符号化時に疎配列圧縮が適用された符号化済み値のグループを識別することと、疎配列圧縮が適用された符号化値のグループごとに、疎配列圧縮が適用された各位置に、所定のサイズNの符号化済みゼロ値のグループを挿入することとを含む、請求項16から請求項26のいずれか一項に記載の方法。
【請求項28】
ランレングス圧縮を逆変換することも更に含む、請求項16から請求項27のいずれか一項に記載の方法。
【請求項29】
請求項1から請求項15のいずれか一項に記載の方法を実行するように構成されたエンコーダ。
【請求項30】
請求項16から請求項28のいずれか一項に記載の方法を実行するように構成されたデコーダ。
【請求項31】
コンピュータによって実行されると、前記コンピュータに対して、請求項1から請求項15のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項32】
コンピュータによって実行されると、前記コンピュータに対して、請求項16から請求項28のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項33】
コンピュータによって実行されると、前記コンピュータに対して、請求項1から請求項15のいずれか一項に記載の方法を実行させるコンピュータプログラム命令を格納する非一時的コンピュータ可読媒体。
【請求項34】
コンピュータによって実行されると、前記コンピュータに対して、請求項16から請求項28のいずれか一項に記載の方法を実行させるコンピュータプログラム命令を格納する非一時的コンピュータ可読媒体。
【請求項35】
コンピュータによって実行されると、前記コンピュータに対して、請求項1から請求項15のいずれか一項に記載の方法を実行させるコンピュータプログラム命令を含む、信号。
【請求項36】
コンピュータによって実行されると、前記コンピュータに対して、請求項16から請求項28のいずれか一項に記載の方法を実行させるコンピュータプログラム命令を含む、信号。
【請求項37】
動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームであって、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、前記フレームは、前記フレームの各点の符号化済みデータを含み、少なくとも1つの点の前記符号化済みデータは、フレーム間予測符号化によって符号化される、フレーム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、三次元動的シーンをレンダリングするための点群データのフレームのシーケンスのフレームを符号化、及び復号化する方法に関する。また、本開示は、かかる方法を実装する装置、及びコンピュータプログラムにも関する。更に、本開示は、符号化済みフレームのフレーム構造に関する。
【背景技術】
【0002】
例えば、仮想現実、又は拡張現実用途で三次元シーンを表現するために、点群データを使用することが増えている。このような用途では、点群データは、スクリーン又はニアアイディスプレイなどのディスプレイデバイスに格納されるか、あるいはそれらに通信され、三次元シーンを表示するためにレンダリングされる。
【0003】
こうした三次元シーンでは、多数の点を使用して、シーン内の様々なオブジェクト、又はオブジェクト表面を表現することができる。通常、各点は三次元位置と1つ以上の属性を有し、属性には、例えば、表面色、透明度値、オブジェクトサイズ、及び表面法線方向が含まれ得る。各属性は、連続した範囲から選択された値を有することもあれば、あるいは離散セットから選択された値を有することもあり得る。
【0004】
動的三次元シーンでは、各点は、その三次元位置及び属性のいずれかを変更することができる。三次元シーンのインスタンスのシーケンスは、フレームのシーケンスとして表され、フレームのシーケンスは、各点の三次元位置及び属性の変化、並びに点の追加又は除去を含む、動的三次元シーンを再構成するためにレンダリングされ得る。大抵の場合、フレームのシーケンスは、等間隔の時間シーケンス(例えば、毎秒ごとのある特定の規則的なフレームレート)を表す。ただし、シーケンスのフレームは、不均等な時間間隔で隔てられる場合もあれば、あるいは、シーケンスが手動でステップスルーされることを意図している場合など、時間シーケンスにまったくリンクされていない場合もある。
【0005】
点群データの特定の用途の1つは、ボリューメトリックビデオである。ボリューメトリックビデオでは、モーションキャプチャのような技術は、実世界のシーンの三次元記録として、あるいは実世界のシーンにコンピュータで生成した要素を混合したものとして、点群データを取得するために使用される。通常、ボリューメトリックビデオでは、点群内の点の密度は、人間の動き、又は表情を正確に再現するのに十分な高さであり得る。
【0006】
非圧縮点群データフォーマットには、各フレームの各点の完全な定義が含まれる。これは大量のデータストレージを必要とし得、動的三次元シーンのライブレンダリング、又はストリーミングが不可能であることを意味し得る。したがって、点群データの効率的な圧縮フォーマットを提供することが望ましい。
【0007】
ジオメトリベースの点群圧縮技術として知られているものとして、八分木などの論理構造を使用して、三次元空間の点の疎なセットを一瞬で効率的に記述するものがある。更にこの論理構造は、GRAZIOSI等「An overview of ongoing point cloud compression standardization activities: video-based(V-PCC)and geometry-based(G-PCC)」、DOI:10.1017/ATSIP.2020.12で述べられているように、比較的近接した点間の属性の予測符号化(つまり、フレーム内予測符号化)で使用される。
【0008】
ジオメトリベースの点群圧縮技術としてもう1つ知られているのは、ROODAKI等「G-Arrays:Geometric arrays for efficient point cloud processing」、DOI:10.1109/ICASSP39728.2021.9413902で述べられているように、動きベクトルを使用して、連続するフレームにおけるテクスチャ、又はオブジェクトの動きを表現するものである。
【発明の概要】
【0009】
本開示は、圧縮効率性を高めた、点群データの符号化及び復号化技術を提供する。
【0010】
より具体的には、第1態様によると、本発明は、動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームを符号化する方法を提供し、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、この方法は、現フレーム内で符号化されるべき現在点を取得することと、この現フレーム内で符号化されるべき現在点に対応する、先行フレーム内で符号化された先行点を識別することと、フレーム間予測符号化を使用して、上記先行点を参照することにより、上記現在点の少なくとも1つの属性を符号化し、上記現在点の符号化済みデータを生成することと、を含む。
【0011】
本明細書において、「フレーム間予測符号化」とは、あるフレームの特性と、別のフレームの同じ特性の差分を符号化することを意味する。例えば、現フレームで符号化されるべき現在点の属性のフレーム間予測符号化とは、現フレームの現在点のその属性の値と、先行フレームで符号化される先行点のその属性の値との差分を符号化することを意味する。
【0012】
第1態様の特徴では、「現在」及び「先行」のラベルを使用して、動的三次元シーンのどの瞬間が対応する点、又はフレームで表現されているかを識別する。本明細書において、「先行」とは、必ずしも「直前」を意味せず、「先行フレーム」は、個々の点がどれだけ長く(つまり、何フレームにわたって)フレーム間予測符号化に適した状態であるかに応じて、点ごとに異なる先行フレームを指すことがある。
【0013】
第1態様の特徴には、点群データについて、位置以外の属性のフレーム間予測を提供する効果があり、これにより、ある点の、動的シーンの途中での照明、及び色などの属性が変化する場合における、圧縮効率性を向上させることができる。
【0014】
この方法は、現在点の符号化済みデータを含む、現フレームを生成することも、更に含み得る。「現フレームを生成する」ステップは単に、現在点の符号化済みデータをメモリに記録すること、又は現在点の符号化済みデータを別個のデバイスに送信することを含み得る。現フレームは、生成されるとストリームとして送信されることがあり、各現在点は、別々に送信された符号化済みデータを有する。あるいは、フレーム全体がメモリに記録されるか、あるいは、エンコーダから別個のデバイスに送信される前に、複数の点を有する現フレーム全体が符号化され得る。
【0015】
任意選択で、上記現在点に対応する上記先行点を識別することが、上記現在点と同じ三次元位置を有する、先行フレーム内で符号化された先行点を識別すること、を含む。これにより、属性のフレーム間予測に適した点を選択する方法が提供される。本願では、「同じ三次元位置」とは、所定の精度レベルの範囲内で類似している三次元位置を意味し、ここで、所定の精度レベルは、この方法の特定のユースケースに従って選択された相対的、又は絶対的レベルであり得る。例えば、点同士間の特徴的距離は、三次元シーンの総ボリューム及びシーン内の点の数に基づいて、あるいは先行フレーム内の点同士間の最小距離に基づいて、決定され得る。先行点と現在点との変位が特徴的距離よりもはるかに短い場合、先行点が現在点に対応すると仮定しても、許容され得る。一方、三次元シーンが、連続フレーム間で規則的に点が出現したり、消滅したりすることが予想される場合、「同じ位置」を一致した位置と定義する必要があり得る。
【0016】
任意選択で、各点の1つ以上の属性は非予測属性を含み、上記現在点に対応する上記先行点を識別することは、上記現在点と同じ三次元位置を有し、且つ、上記現在点と同じ非予測属性の値を有する、上記先行フレーム内で符号化された先行点を識別することを含む。これによって、点の三次元位置だけでなく、表面の向きなどの別の「非予測」属性が前フレームと同じ場合、フレーム間予測を使用することで、属性のフレーム間予測に適した点の選択方法が、更に改善する。どの属性も非予測である可能性がある。例えば、属性がフレーム間の予測に適さない場合、あるいは属性が圧縮関連の誤りに特に脆弱な場合、属性は「非予測」に選択されることがある。本願において、「非予測属性の同じ値」とは、所定の精度レベルの範囲内で類似した値を意味する。更に、この方法では、各点の1つ以上の属性は、複数の非予測属性を含み得る。任意選択で、各非予測属性に対して、異なるレベルの精度を事前に設定することができる。
【0017】
任意選択で、この方法は、上記現フレーム内で符号化されるべき上記複数の現在点の第1部分を取得することと、上記第1部分の現在点ごとに、現在点について、フレーム間予測符号化を使用可能であるか否かを識別することであって、上記現フレーム内で符号化されるべき上記現在点に対応する、上記先行フレーム内で符号化された先行点が存在する場合、フレーム間予測符号化を使用可能である、ことと、フレーム間予測符号化を使用可能な各現在点に対して、フレーム間予測符号化を実行し、且つ、フレーム間予測符号化を使用不可能な各現在点に対して、フレーム内予測符号化を実行することによって、上記フレームを符号化することと、を含む。本明細書において、フレーム内予測符号化は、「フレーム内符号化の試行」を意味するものと理解し、いくつかの「フレーム内予測符号化点」は、フレームの点内に関連する参照がない場合、符号化中に実際には変更されない場合がある。
【0018】
任意選択で、この方法は、上記現フレームの各点について符号化種類を示す符号化種類情報を生成することも、更に含み、上記種類はフレーム間予測符号化、又はフレーム内予測符号化である。符号化種類情報は、どの点が1つ以上の前フレームによって部分的に定義されているかを識別し、これにより、デコーダが圧縮後の点群データをレンダリングするのに役立つ。符号化種類情報は、記録又は送信用に現フレームを生成する際に含めてもよい。
【0019】
任意選択で、第1の特定種類の実施形態において、この方法は、上記現フレームにおいて符号化されるべき上記複数の現在点の第2部分の順序を定義する順序付け情報を生成することも、更に含み、上記現フレームは、上記順序付け情報を含み、且つ、上記順序付け情報に従って順序付けされた符号化済みデータを含めて、生成される。第2部分は第1部分から独立して選択してもよく、第1部分と第2部分とは、部分的に又は完全に重なっていてもよい。例えば、第2部分の点は、フレーム内予測符号化されるべき、第1部分の点のサブセットであり得る。別の例では、順序付け情報には、すべての点の完全な順序が記載され得る。
【0020】
任意選択で、第1の特定種類の実施形態において、上記順序付け情報は、上記現フレームの各点の三次元位置を含む。三次元位置は、三次元シーン全体を包含する空間全体で定義されることもあれば、あるいは、空間全体を分割する八分木のノードなど、より小さな局所空間内の位置であることもある。
【0021】
任意選択で、第1の特定種類の実施形態において、上記順序付け情報は、上記現フレームの各点の三次元位置に基づく八分木を含む。八分木では、ボリュームがX軸、Y軸、Z軸に沿って8つのサブボリュームへと再帰的に分割され、八分木の各ノードに関連する点のツリー検索が作成される。八分木には、各点の位置を定義するのに必要とされるデータ量を削減できるという、利点がある。
【0022】
任意選択で、第1の特定種類の実施形態において、上記八分木の各リーフノードは、上記現フレームの点の少なくとも1つの三次元位置を含む。つまり、ボリュームがサブボリュームに再帰的に分割されている間、点を含まないサブボリュームはそれ以上分割されず、八分木をメモリに格納する際に省略される。この八分木の不必要な分岐の「枝刈り」により、圧縮データのサイズが削減され、圧縮データの読み取り、復号化、レンダリングに要する時間が短縮される。
【0023】
任意選択で、第1の特定種類の実施形態において、現フレームの点は、各点の三次元位置の第1、第2、及び第3の次元によって順序付けされる。これは点を並べ替える代替の既定法を提供し、八分木と組み合わせることができる。例えば、八分木は全空間を3レベルまで分割し、八分木ノードあたりのボリュームを全空間の1/512まで削減することができる。八分木ノードが全空間内で互いに近接して位置する複数の点に依然として関連付けられている場合、複数の点は、点の三次元位置の三次元によって順序付けされ得る。
【0024】
任意選択で、第1の特定種類の実施形態と組み合わせることができる第2の特定種類の実施形態において、この方法は、フレーム内予測符号化を使用して、上記現フレームの上記複数の現在点の第3部分を符号化することも、更に含む。第3部分が複数の現在点の第1部分及び第2部分から独立しているように定義されているが、多くの場合、第3部分は第2部分と同じであり得る。
【0025】
任意選択で、第2の特定種類の実施形態において、上記1つ以上の属性の第1属性をフレーム内予測符号化することも更に含み、上記第1属性をフレーム内予測符号化することは、上記複数の現在点に対して、上記第1属性の平均を取得することと、上記複数の現在点のそれぞれについて、上記平均と上記現在点の上記第1属性の値との差分を取得することとを、含む。この平均差分技術により、複数の現在点を表すために必要なビット量を削減することができる。平均差分技術は、フレーム間予測符号化にも同様に適用できる。
【0026】
任意選択で、第2の特定種類の実施形態において、上記複数の現在点は、八分木の所定レベルのノードに対応する局所的な点のグループである。
【0027】
任意選択で、第2の特定種類の実施形態において、この方法は、上記1つ以上の属性の第2属性をフレーム内予測符号化することを含み、上記第2属性をフレーム内予測符号化することは、第1現在点に対する上記第2属性の生値を取得することと、第2現在点に対する上記第2属性の符号化済み値を取得することとを含み、上記符号化済み値は、上記第2現在点と第1現在点の第2属性の生値の差分に等しい。
【0028】
任意選択で、この方法は、上記フレームの上記複数の現在点の第4部分のそれぞれに対して、上記1つ以上の属性の第3属性を予測符号化することと、上記複数の現在点の上記第4部分の上記第3属性の符号化済み値に対して、疎配列圧縮を実行することであって、上記疎配列圧縮は、上記第3属性の上記符号化済み値を所定のサイズNのグループに分割することと、各グループが所定閾値以下の符号化済み値のみを含むか否かを識別する、疎配列を生成することとを含む、ことと、上記疎配列、及び上記所定閾値超の少なくとも1つの符号化済み値を格納する上記グループを含む、上記現フレームを生成することと、を備える。ゼロ、又はゼロに近いグループを除外することで、圧縮は更に改善される。ここで、第4部分は、第1部分、第2部分及び第3部分から独立しており、独立したものとみなされるものとする。この任意選択の特徴は、フレーム内予測符号化にも、フレーム間予測符号化にも同様に適用できる。「所定閾値」は、損失を伴って合理的に復号化できない属性については、ゼロである。例えば、色属性の所定閾値は、三次元シーンのレンダリングに顕著な影響を与えない場合には、ゼロより大きくすることができるが、想定される照明位置の離散セットの1つを示す属性など、他の属性の例ではゼロにする必要がある。
【0029】
任意選択で、この方法は、上記疎配列に対して、ランレングス圧縮を実行することも、更に含む。ランレングス圧縮は、圧縮を更に向上させることができる。
【0030】
任意選択で、この方法は、VC-6符号化などのエントロピ符号化を、上記現フレームの順序付け情報、符号化種類情報、及び第4属性の符号化済み値の少なくとも1つに適用することも、更に含む。エントロピ符号化により、圧縮を更に向上させることができる。VC-6は、PCT/GB2018/053552、及び2020年7月21日に発行された「ST 2117-1:2020-SMPTE Standard-VC-6 Multiplanar Picture Format-Part 1 Elementary Bitstream」(DOI10.5594/SMPTE.ST2117-1.2020、及び電子ISBN:978-1-68303-219-9)を含む、関連標準仕様書に記載されており、これらの文書はすべて、参照によりその全体が本明細書で援用される。
【0031】
任意選択で、エントロピ符号化法は、ハフマン符号化、レンジ符号化、又はVC-6規格に準拠する方法である。
【0032】
本開示の第2態様によると、動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームを復号化する方法が提供されており、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、この方法は、現フレーム内で復号化されるべき現在点を取得することと、
上記現フレーム内で復号化されるべき上記現在点に対応する、先行フレーム内で復号化された先行点を識別することと、フレーム間予測を使用して、上記先行点を参照することにより、上記現在点の少なくとも1つの属性を復号化し、上記現在点の復号化済みデータを生成することと、を含む。この復号化法は、第1態様の符号化法に対応し、同様に、第1態様の任意選択の特徴は、第2態様の実装にも任意に含まれ、上述した対応する符号化と同等の復号化を提供することができる。
【0033】
より具体的には、任意選択で、上記現在点に対応する上記先行点を識別することが、上記現在点と同じ三次元位置を有する、先行フレーム内で復号化された先行点を識別すること、を含む。
【0034】
更に、任意選択で、各点の1つ以上の属性は非予測属性を含み、上記現在点に対応する上記先行点を識別することは、上記現在点と同じ三次元位置を有し、且つ、上記現在点と同じ非予測属性の値を有する、上記先行フレーム内で符号化された先行点を識別することを含む。
【0035】
更に、任意選択で、フレームを復号化する方法は、上記現フレーム内で復号化されるべき上記複数の現在点の第1部分を取得することと、
上記第1部分の現在点ごとに、上記現在点について、フレーム間予測符号化が使用されたか否かを識別することであって、上記現フレーム内で符号化されるべき上記現在点に対応する、上記先行フレーム内で符号化された先行点が存在する場合、フレーム間予測符号化を使用可能である、ことと、フレーム間予測復号化を使用可能な各現在点に対して、フレーム間予測復号化を実行し、且つ、フレーム間予測復号化を使用不可能な各現在点に対して、フレーム内予測復号化を実行することによって、上記フレームを復号化することと、を含む。
【0036】
更に、任意選択で、現フレームは、上記現フレームの各点について符号化種類を示す符号化種類情報を含み、上記種類はフレーム間予測符号化、又はフレーム内予測符号化である。
【0037】
更に、任意選択で、第2態様について、この方法は、上記現フレーム内で符号化される上記複数の現在点の第2部分の順序を定義する順序付け情報を復号化することも、更に含む。
【0038】
更に、任意選択で、第2態様について、この方法は、フレーム内予測復号化を使用して、上記現フレームの上記複数の現在点の第3部分を復号化することも、更に含む。
【0039】
第2態様に係る方法が、フレーム内予測復号化を使用して第3部分を復号化することを含む場合、この方法は、上記1つ以上の属性の第1属性を予測復号化することも更に含み、上記第1属性をフレーム内予測復号化することは、上記複数の現在点のそれぞれについて、上記複数の現在点に対する上記第1属性の平均を、上記平均と上記現在点に対する第1属性の値との差分に加算することも、含む。
【0040】
付加的、又は、代替的に、第2態様によると、上記複数の現在点は、八分木の所定レベルのノードに対応する局所的な点のグループであり得る。
【0041】
任意選択で、第2態様によると、この方法は、上記1つ以上の属性の第2属性をフレーム内予測復号化することを含み、上記第2属性をフレーム内予測復号化することは、第1現在点に対する上記第2属性の生値を取得することと、第2現在点に対する上記第2属性の復号化済み値を取得することとを含み、上記復号化済み値は、上記第2現在点に対する上記第2属性の上記符号化済み値と、上記第1現在点に対する上記第2属性の上記生値との和に等しい。
【0042】
任意選択で、第2態様によると、この方法は、上記フレームの上記複数の現在点の第4部分のそれぞれについて、第3属性の上記符号化済み値に対する疎配列圧縮を逆変換することも更に含み、疎配列圧縮を逆変換することが、上記符号化済み値の疎配列を読み取り、符号化時に疎配列圧縮が適用された符号化済み値のグループを識別することと、疎配列圧縮が適用された符号化値のグループごとに、疎配列圧縮が適用された各位置に、所定のサイズNの符号化済みゼロ値のグループを挿入することと、を含む。
【0043】
任意選択で、第2態様によると、この方法は、ランレングス圧縮を逆変換することも、更に含む。
【0044】
第3態様によると、本開示は、第1態様において上述したような符号化法を実行するように構成されたエンコーダを提供する。
【0045】
第4態様によると、本開示は、第2態様において上述したような復号化法を実行するように構成されたデコーダを提供する。
【0046】
第5態様によると、本開示は、実行時に、第1態様において上述したような符号化法を実行する命令を含む、コンピュータプログラムを提供する。
【0047】
第6態様によると、本開示は、実行時に、第2態様において上述したような復号化法を実行する命令を含む、コンピュータプログラムを提供する。
【0048】
第5態様、又は第6態様のコンピュータプログラムは、非一時的コンピュータ可読媒体上の命令として、又は信号伝送内に格納することができる。
【0049】
第7態様によると、本開示は、動的三次元シーンをレンダリングするための点群データのフレームのシーケンスのフレームを提供し、各フレームが複数の点を含み、各点が三次元位置、及び1つ以上の属性を含み、上記フレームは、上記フレームの各点の符号化済みデータを含み、少なくとも1つの点の上記符号化済みデータは、フレーム間予測符号化によって符号化される。
【0050】
第7態様のフレームは、第1態様の方法に従って、生成され得る。
【0051】
上記態様は点群データに適用される技術について述べているが、本明細書で述べる技術は、各フレームが複数のデータ要素を含み、各データ要素が二次元又は三次元の位置、及び1つ以上の属性を含む、フレームのシーケンス形式のあらゆるデータに対して、極めて広く適用可能である。例えば、記載された技術は、点群データではなく、メッシュデータとして記録されたボリューメトリックビデオに適用することができる。
【図面の簡単な説明】
【0052】
【
図1】動的三次元シーンをレンダリングするための点群データのフレームのシーケンスの概略例を示す図である。
【
図2】点群データ通信システムの概略ブロック図である。
【
図3】点群データのフレームのシーケンスのフレームを符号化する方法を概略的に例解する流れ図である。
【
図4】符号化済みフレームのシーケンスの概略図である。
【
図5】点群データのフレームのシーケンスのフレームを符号化する方法を概略的に例解する流れ図である。
【
図6】点群データのフレームのシーケンスのフレームを復号化する方法を概略的に例解する流れ図である。
【
図7】エンコーダ、又はデコーダの概略ブロック図である。
【発明を実施するための形態】
【0053】
図1は、記載の技術を適用し得る種類の点群データを、大幅に簡略化した概略的な例である。より具体的には、
図1は、動的三次元シーンをレンダリングするための点群データのフレームのシーケンスの概略例を示す。
【0054】
図1のフレームのシーケンスは、2つのフレームのみを含む。原理的には、記載された技術を2つのフレームにしか適用できないが、記載された技術は、より長いフレームシーケンスに対して、より高い圧縮効率性を提供する。
【0055】
図1を参照すると、フレームのシーケンスは、第1フレーム10-1と第2フレーム10-2とを含む。
【0056】
第1フレーム10-1では、三次元シーンは、シーンのボリューム内のそれぞれの三次元位置に配置された、6つの点20-A~20-Fを含む。
【0057】
この単純な例では、6つの点20-A~20-Fは、別個のソリッドオブジェクト、より具体的には、立方体である。より一般的には、三次元シーンの点のグループは、単一のソリッドオブジェクトの異なる表面に関連付けたり、あるいはシーンに出現する様々なオブジェクトに関連付けたりすることができる。
【0058】
6つの点20-A~20-Fはそれぞれ、シーンを表すフレームのシーケンスに含まれ得る、いくつかの属性を表示する。各立方体には、サイズと色がある。ここでの色は、立方体のグレースケールでシェーディングされた面で表現され、シェーディングが濃いほど、色が濃いものと、捉えられ得る。更に、各立方体のシェーディングされた面は、立方体の反対側を指している、光源の位置を示している。より一般的には、属性は、点群データが見る側用にレンダリングされる際に表示される必要がある、点群三次元シーンの任意のプロパティを含むことができる。
【0059】
第2フレーム10-2では、三次元シーンが変化している。これでシーンは7つの点20-A~点20-Gを含む。点20-Eと点20-Fの三次元位置が変わり、点20-Gが新たに追加された。また、図で表示されているように、各オブジェクトのシェーディングされた対向部分が「前」表面になるように、光源が移動している。更に、点20-Fのサイズも縮小している。
【0060】
図2は、本明細書で提供される以下のコンピュータ実装法を使用し得る、点群データ通信システムの概略ブロック図である。
【0061】
図2を参照すると、システムは、点群データ生成器210、エンコーダ220、デコーダ240、レンダラ250、及びディスプレイ260を含む。
【0062】
点群データ生成器210は、フレームのシーケンスのフォーマットで点群データを生成するための公知のシステムであり得、各フレームは複数の点を含み、各点は三次元位置と1つ以上の属性を含む。例えば、点群データ生成器210は、
図1に示すような、フレームのシーケンスを生成し得る。
【0063】
フレームのシーケンスはエンコーダ220に送られ、このエンコーダはフレームのシーケンスのフレーム(通常は、複数のフレーム)を符号化する方法を実行する。
【0064】
符号化済みのフレームのシーケンスは、符号化によって圧縮されるので、符号化済みのシーケンスは、ネットワーク接続231を介して送信できる、且つ/又は物理的媒体232(DVD、フラッシュドライブ又はサーバなど)に格納することができる。ネットワーク接続231及び物理的媒体232は、任意のコンテンツ独立型データ通信モードを含み得る。
【0065】
最終的に、ユーザが動的三次元シーンを見たい場合、符号化済みのフレームのシーケンスが、ネットワーク接続231、又は物理的媒体232を介して、デコーダ240に提供される。
【0066】
デコーダ240は、フレームのシーケンスのフレーム(通常は、複数のフレーム)を復号化する方法を実行する。
【0067】
次に、復号化されたフレーム(複数可)はレンダラ250に渡され、ディスプレイ260で表示するために、動的三次元シーンをレンダリングする。レンダラ250とディスプレイ260は、点群データ用に現在使用されている任意のレンダラとディスプレイであり得、レンダラ250は、フレームのシーケンスのフォーマットで点群データを受信するように構成されており、各フレームは複数の点を含み、各点は三次元位置と1つ以上の属性を含む。
【0068】
図2及び上記の説明から理解できるように、本発明は主として、符号化法及び復号化法、当該方法を実行するように構成されたエンコーダ及びデコーダ、並びに符号化法によって作成され、復号化法によって使用される符号化済みデータに関する。一方、エンコーダによって受信され、デコーダによって再生される初期の点群データは、従来の点群データであり得る。したがって、生成器210とレンダラ250については、詳述しない。
【0069】
図3は、点群データのフレームのシーケンスのフレームを符号化する方法を概略的に例解する流れ図である。
図4は、符号化済みフレームのシーケンスの概略図である。
図3と
図4とを切り替えて、
図1のフレームのシーケンスに適用される符号化法を説明すると、有効である。
【0070】
図3を参照すると、本明細書で開示する符号化法の重要な概念は、フレーム間予測符号化を使用して予測されるべきいくつかの点群点と、より好ましくは、フレーム内予測符号化を使用して予測される他の点群点とを区別することである。
【0071】
フレーム間符号化とフレーム内符号化を選択する理由は、様々ある。
【0072】
例えば、動いている点のフレーム間符号化は、連続するフレームのどの点が実際に同じ点であるのかを確認する必要があるため、リソースをかなり消費する恐れがある。その結果、本発明者らは、現フレームにおいて、及び現フレームの前に静止している点群点に対してのみフレーム間符号化を実行することが好ましいことを、見出した。
【0073】
一方、照明と色の変化は、動的三次元シーンでは非常によくあることであり、フレーム間の追跡が比較的容易でありながら、多数の点に影響を与える可能性がある。その結果、本発明者らは、色属性に対してフレーム間符号化を行うことが好ましいことを、見出した。
【0074】
より具体的に
図3を参照すると、ステップS310で、エンコーダ220は、符号化されるべき現フレームの点を評価し、各点に対してどの種類の符号化を使用すべきかを識別する。つまり、ステップS310は、フレームの複数の現在点のそれぞれについて、現在点に対してフレーム間予測符号化を使用すべきかどうかを識別することを、含む。
【0075】
例えば、エンコーダ220は、現フレームを先行フレームと比較し、現フレームの各点が先行フレームに存在したかどうかを決定するように構成され得る。
【0076】
この場合、先行フレームが現フレームの点と同じ位置に先行点を有する場合、エンコーダ220は、現フレームの現在点に対する符号化済みデータを生成するために、先行点を参照して、現フレームの現在点に対してフレーム間予測符号化を実行すべきであると、決定する。
【0077】
代替実施例では、エンコーダ220は、先行フレームの先行点を現フレームの現在点に対応するものとして識別するために、より厳密な要件を有し得る。例えば、エンコーダ220は、現在点と先行点が同じ三次元位置を有することだけでなく、それらが同じサイズ、又は同じ表面方向など、共通とされる1つ以上の他の属性を有することも、要求することができる。かかる追加の要求属性は、符号化の所与の用途において、「固定属性」、又は「非予測属性」として指定され得る。
【0078】
この代替実施例も同様に機能し、厳密な要件が満たされた場合、エンコーダ220は同様に、現フレームの現在点に対する符号化済みデータを生成するために、先行点を参照して、現フレームの現在点に対してフレーム間予測符号化を実行すべきであると、決定する。
【0079】
エンコーダ220が、現フレームの現在点に対応する、先行フレームで符号化された先行点を識別しない場合、エンコーダ220は、フレーム内予測符号化で現在点を符号化するか、あるいは当該点の予測符号化を完全に省略するかのいずれかを行うべきであると、決定する。この説明の意図するところでは、予測符号化がない場合には、フレーム内予測符号化の特殊な場合であると仮定する。
【0080】
図1のフレームのシーケンスにステップS310を適用すると、エンコーダ220は、第2フレーム10-2を現フレームとして扱い、第1フレーム10-1を先行フレームとして扱うことになる。
【0081】
現在点に対応する先行点が存在しなければならないという要件を考慮すると、エンコーダ220は、点20-A~点20-Dはフレーム間予測符号化を使用して符号化されるべきであり、点20-E~点20-Gはフレーム内予測符号化を使用して符号化されるべきであると決定するはずである。
【0082】
ステップS320で、エンコーダは、各点に対して符号化種類を示す符号化種類情報を生成する。
図4を参照すると、フレーム10-2の符号化種類情報460は、現フレーム10-2の点群の点ごとに、1ビットを含むことができる。実際、符号化種類情報は、先行フレームに存在しなかった点をより効率的に省略することができる、それは、こうした点が、如何なるルールの緩和にもかかわらず、フレーム間予測符号化を実行できないからである。その結果、ビット配列460は、先行フレーム(第1フレーム10-1)に出現した、6つの点20-A~20-F用の6ビットのみを含む。
【0083】
上述したように、
図1の例にステップS310を適用する場合、フレーム間予測符号化を適用する必要があるのは、点20-A~点20-Dのみである。したがって、
図4で見られるように、フレーム10-2の符号化種類情報460は、4つの1(点20-A~点20-Dがフレーム間予測符号化されることを示す)と、2つの0(点20-E及び点20-Fがフレーム内予測符号化されることを示す)とを有する。
【0084】
ステップS330で、エンコーダ220は、現フレームで符号化すべき点の順序を定義する順序付け情報410を生成する。この順序付け情報410は一度だけ含まれるため、レイヤごとに再度点を識別することなく、各点に関する追加情報を属性ごとにレイヤ内で収集することができる。そうでない場合、この識別は、符号化済みデータを保存するのに必要なメモリの量と、符号化と復号化のプロセスの双方に複雑さを追加するであろう。
【0085】
順序付け情報410は、フレーム間予測符号化される点を省略するように制限するのが最も効率的となり得る。これは、フレーム間予測符号化された点は、必ず先行フレームで定義された順序をすでに有しているからである。また、先行フレームもデコーダで利用できるので、フレーム間予測符号化された点の順序付けを含めると、冗長になる。したがって、
図4の特定例で見られるように、符号化済みフレーム10-2は、単にフレーム内予測符号化点20-E、20-F、及び20-Gに関する順序付け情報410を有することができる。
【0086】
当然のことながら、順序付け情報のフォーマットと、順序の選択方法を特定する必要がある。
【0087】
点を順序付ける場合の最も簡単な方法は、XYZソートであり得る。より具体的には、各点は、デカルト次元で数値的に定義できる三次元位置に関連付けられている。数値的な三次元位置に基づいて、点を単一リストにソートするために、次元の順序を任意に選択することができる。
【0088】
ただし、単一リストが常に最も効率的な戦略とは限られ得ない。とりわけ、これは、(ステップS310で要求されるように)2つのフレームに出現する点を識別するために、両方のフレームを比較する最速の方法ではない。
【0089】
解決策として、八分木は三次元点を構造的に格納することで知られ、三次元空間内で点を効率的に検索可能とする。八分木では、1つのボリュームがX軸、Y軸、及びZ軸に沿って再帰的に2分割され、8つのサブボリュームが得られる。ボリュームとサブボリュームはツリー構造でトラバースされ、八分木の各ノード、つまり、各ボリュームとサブボリュームに関連付けられた点を検索することができる。
【0090】
それにもかかわらず、八分木構造の低レベルでは、ツリーノードあたりの点数が小さくなり得、その時点で、再帰的な分割を中止して、単一リストだけを使用する方が効率的になることがある。このデカルトソートの場合、順序付け情報410は、グローバルに、又は八分木のリーフノード内のいずれかで、フレーム内予測符号化を受ける各点の絶対的な、又は相対的な三次元位置を含むことができる。
【0091】
八分木をメモリに格納したり、あるいは八分木を含むデータストリームを生成したりするためには、八分木内のノードの深さ優先、又は幅優先などの、線形化法を選択する必要がある。線形化法は、八分木を符号化して、読み取るためのエンコーダ220とデコーダ240の双方に既知とされる、所定方法とすることができる。あるいは、線形化法は、個々のフレームのパラメータとして、あるいはフレームのシーケンスのパラメータとして含めることができる。
【0092】
八分木の更なる効率改善として、八分木のどのレベルでも、関連する点群点の数が減少する、あるいはゼロになると、八分木は分岐を停止することがある。
【0093】
簡単な例として、三次元シーンは、次の(X,Y,Z)座標、つまり、(0,0,0)、(0,1,1)、(3,3,3)、及び(7,1,1)の点を有する、8x8x8のボクセル空間を含み得る。
【0094】
これらは、2x2x2サイズのボクセルで終端する八分木へと形成することができ、各分岐ノードは、XYZでソートされた、符号化済みの八分木に存在するサブ分岐、又はサブリーフノードを示す、8ビットを含む。一方、各リーフノードは、1つ以上の三次元位置を含む。ツリーノードは幅優先で順序付けられる。
【0095】
この実施例では、順序付け情報は、以下のようになり、中括弧は八分木のノードを表し、括弧は三次元位置座標を表す:
{10001000},{1000001},{00001000},{2,(0,0,0),(0,1,1)},{1,(1,1,1)},{1,(1,1,1)}
【0096】
各ノードを個別に説明すると、このシーケンスは以下のようになる:
【0097】
1.{10001000}
第1ノードは八分木のレベル0のルートノードであり、(0,0,0)と(4,0,0)を始点とする4x4x4ボクセルに対応する第1サブノード及び第5サブノードが、少なくとも1つの点で占有されていることを示す。したがって、デコーダは、符号化済み八分木が八分木のレベル1に2つのノードを含むことを、理解するはずである。
【0098】
2.{10000001}
第2ノードは八分木のレベル1にあり、ルートノードで示された第1ボクセル、つまり、(0,0,0)を始点とする4x4x4ボクセルに対応する。第2ノードは、その第1サブノード、及び8つのサブノードが、(0,0,0)と(2,2,2)を始点とする2x2x2ボクセルに対応し、少なくとも1つの点によって占有されていることを示す。したがって、デコーダは、符号化済み八分木が、第2ノードから分岐する八分木のレベル2に2つのノードを含むことを、理解するはずである。
【0099】
3.{00001000}
第3ノードは八分木のレベル1にあり、ルートノードで示された第2ボクセル、つまり、(4,0,0)を始点とする4x4x4ボクセルに対応する。第2ノードは、その第5サブノードが、(6,0,0)を始点とする2x2x2ボクセルに対応し、少なくとも1つの点によって占有されていることを示す。したがって、デコーダは、符号化済み八分木が、第3ノードから分岐する八分木のレベル2に1つのノードを含むことを、理解するはずである。
【0100】
4.{2,(0,0,0),(0,1,1)}
第4ノードは八分木のレベル2にあり、レベル1で示された第1ボクセル、つまり、第2ノードで示される(0,0,0)を始点とする2x2x2ボクセルに対応する。
【0101】
この八分木は2x2x2サイズのボクセルで終端するので、第4ノードには分岐を示す8ビットは含まれず、代わりに、個々の点の1つ以上の位置が含まれる。具体的には、第4ノードは、点順序の第1点が(0,0,0)にあり、点順序の第2点が(0,1,1)にあることを示す。
【0102】
この実施形態では、リーフノードには、リーフノードに関連付けられた点の数(この場合、2つ)も含まれるため、順序付け情報を読み取るデコーダは、第4ノードに関連付けられたビットの終わりを識別することができる。別の方法として、点の数を含める代わりに、リーフノードの終わりを示す終端記号を定義することができる。
【0103】
5.{1,(1,1,1)}
同様に、第5ノードは八分木のレベル2にあり、レベル1で示された第2ボクセル、つまり、第2ノードで示される(2,2,2)を始点とする2x2x2ボクセルに対応する。
【0104】
第5ノードは、点順序の第3点が始点(2,2,2)から(1,1,1)のオフセットにあること、つまり、第3点が(3,3,3)にあることを示す。つまり、この実施例では、八分木の各リーフノードで表されるボリューム内の局所座標を使用している。他の実施例では、三次元位置は、三次元シーンの全ボリュームにおけるグローバルな位置であり得る。
【0105】
6.{1,(1,1,1)}
やはり、第6ノードも八分木のレベル2にあり、レベル1で示された第3ボクセル、つまり、第3ノードで示される(6,0,0)を始点とする2x2x2ボクセルに対応する。
【0106】
第6ノードは、点順序の第4点が始点(6,0,0)から(1,1,1)のオフセットにあること、つまり、第4点が(7,1,1)にあることを示す。
【0107】
上記の例では、4点を八分木で表現するのは効率的でない可能性がある。ただし、とりわけ、フレーム間の点を一致させ、更に、フレーム間予測符号化を使用すべき場所を特定するために、ツリー構造を線形時間ではなく、対数時間でトラバースできるので、八分木は、三次元シーンの点の数が多いほど有用となる。
【0108】
次に、ステップS340で、エンコーダ220は、ステップS310で識別された符号化種類を使用して各点を符号化する。つまり、エンコーダ220は、可能な場合には、フレーム間予測符号化を実行し、フレーム間予測符号化が不可能な場合には、フレーム内予測符号化を実行することによって、各点を符号化する。ここで、「可能」とは、ステップS310について上述したように定義され、フレーム間予測符号化が「可能」である場合の異なる要件は、異なる実施形態において設定され得る。
【0109】
ステップS340は、ステップS320及びS330の前に行うことも、あるいはこれらと同時に実行することも可能である。
【0110】
再び
図4を参照すると、ステップS340で実行される様々な種類の符号化が見られる。
【0111】
符号化済みフレーム10-1及び10-2はそれぞれ、色と光源方向の2つの点属性を含む。
【0112】
第1フレーム10-1のフレーム間予測符号化された色データ420は、隣接する順序付けられた点群点間の差異を予測する正負の十六進数値を示す。例えば、十六進数のD9は、従来の十進数では217に相当する。一般的に、十六進数は4ビットのグループで値を表現するのに使用されるが(24=16であるため)、この用途では、データを表現し得る方法は限定されない。
図1を参照すると、点20-B~20-Dは色が濃くなり、
図4に示すような負の値となる。
【0113】
一方、第2フレーム10-2のフレーム内予測符号化された色データ420は、大部分がゼロから構成されており、フレーム内予測を使用して、このデータを効率的に格納できることを示している。
【0114】
この単純な実施例では、フレーム内予測は、特に差分符号化の原理に基づいて実行され、各符号化済み値は、順序付け情報410によって定義された点の順序付けられたシーケンス内の隣接する点の属性値間の差分である。
【0115】
より多くの点を有する実施例では、より多くの統計的方法を実行することが有用であり得る。
【0116】
一実施例では、属性の平均値は、複数の点について取得され得、符号化済み値は、各点と平均との差分として定義され得る。これにより、差分値を表現するのに必要な平均ビット数を減らすことができる一方で、単一の平均値の僅かなオーバーヘッドしか生じない。
【0117】
平均値のオーバーヘッドが大きくなり過ぎない限り、この実施例を局所的な平均と局所的な差分に拡張することができる。例えば、点の順序付けを定義するために使用される八分木の所定レベルにあるノードに基づいて、局所点を一緒にグループ化することができる。
【0118】
最後に、光源方向の変化にもかかわらず、非移動体の色も一定であることから、フレーム間予測符号化された色データ470もほぼゼロである。
【0119】
光源方向属性430、480に着目すると、フレーム10-1は、光源がすべての点で単一方向であることを示している。この方向は、第2フレーム10-2の時点までに、すべての点で0から90へと変化する。同じ変化が異なる点に対して、複数回符号化されるため、これは、(480で示したような)フレーム間予測符号化が非効率的となり得るケースである。一方、光源方向の変化が符号化済みデータ内のすべての点に対して、1回だけ記録されればよいので、この例示的な属性に対するフレーム内予測符号化(第2フレーム10-2について、430で示されるように)は効率的である。
【0120】
上記の一般化として、符号化済みデータは、様々な属性に関連付けられた複数の異なるレイヤを含み得る。各レイヤは、異なる方法で符号化できるフレーム間点とフレーム内点とに分けることができる。ただし、フレーム間予測符号化は、圧縮、又は符号化/復号化時間を必ずしも向上させるものではないので、できるだけ多く使うことは、必ずしも望ましいことではない。
【0121】
ステップS340で予測符号化を実行した後、この方法は、任意選択的で、より一般的なデータ圧縮技術を含むこともできる。例えば、ステップS350において、エンコーダ220は、疎配列符号化、ランレングス圧縮、及び/又は、エントロピ符号化のいずれかを実行することができる。
【0122】
疎配列符号化は、比較的少ないデータを含む、データセクションを圧縮することを含む。疎配列符号化では、符号化済みデータのビットシーケンスをNビットのグループに分割し、Nはあらかじめ決められた値である。ゼロだけを含む各グループは削除される。更に、除去のリストを構築する(疎配列と称する)。疎配列は、どのNビットのグループが除去されたかを示すので、デコーダ240でゼロのグループを再構成することができる。
【0123】
特定の例では、疎配列符号化を受けるデータはx={4,0,3,0,0,0,0,0,0,1,3,5,0,0,0,0,0,0,0,0,0,0,0,0,3}であり、Nの値は4である。データはx0={4,0,3,0},x1={0,0,0,0},x2={0,1,3,5},x3={0,0,0,0},x4={0,0,0,0},x5={0,0,0,0},x6={3}という、グループに分割される。ゼロのグループを除去した後、符号化済みデータはx’={4,0,3,0,0,1,3,5,3}となる。疎配列は、b={0,1,0,1,1,1,0}として構成され、ここで、1の値は、ゼロのみを含み、削除されたグループを表す。
【0124】
また、疎配列符号化は、個々のビットではなく複数ビットの値に対して、より高いレベルで適用することもできる。かかる場合、許容可能な圧縮損失で属性を符号化する場合、「ゼロ」の閾値を、ゼロよりは大きい何らかの小さな値まで上げることができる。例えば、ある属性がノイズレベルを含むことが分かっている場合、ノイズ成分を符号化する必要はなく、小さなノイズ値はゼロと同等に扱われるように、閾値を設定することができる。
【0125】
上記のノイズの省略は量子化の一例であり、生データ値の範囲がすべて、量子化された1つの値にマッピングされる。符号化の一環として、他の種類の量子化が適用され得る。符号化時に量子化を使用した場合、データを復号化する際に量子化を解除する方法を決定する必要がある。いくつかの例では、量子化された値にマッピングされる可能性のある生データ値の範囲の平均となるように、量子化された値を量子化解除することが適切な場合がある。他の場合では、量子化された値を、想定される生データ値の範囲の小さい方、又は上限となるように、量子化解除することが適切な場合がある。
【0126】
疎配列符号化の追加、又は代替として、符号化済みデータ、又は疎配列は、ランレングス圧縮され得る。ランレングス圧縮では、1又は0のシーケンスが圧縮され、圧縮後のシーケンスの元の長さの指示で置き換えられる。これにより、圧縮が更に向上する。
【0127】
更なる追加又は代替として、符号化済みデータはエントロピ符号化され得る。エントロピ符号化は、符号化種類情報、順序付け情報、符号化済み属性値など、圧縮データの複数の部分に適用され得る。ハフマン符号化、レンジ符号化、又はVC-6種類の符号化を含む、任意の種類のエントロピ符号化を使用することができる。
【0128】
図5は、点群データのフレームのシーケンスのフレームを符号化する方法を概略的に例解する流れ図である。
【0129】
とりわけ、
図5は、出願時に特定された先行技術とは異なる、本発明の原理を強調するのに効果的である。
【0130】
より具体的には、ステップS510で、現フレームに符号化されるべき現在点を取得する。
図1の実施例に戻って参照すると、現在点は、例えば、フレーム10-2の点20-Aであり得る。
【0131】
ステップS520で、先行フレームで符号化された先行点を識別し、当該先行点は、現フレームで符号化されるべき現在点に対応する。先行点は、例えば、フレーム10-1の点20-Aであり得る。
【0132】
ステップS530で、フレーム間予測符号化を使用して、先行点を参照することにより、現在点の少なくとも1つの属性を符号化し、現在点の符号化済みデータを生成する。例えば、これはフレーム10-2の点20-Aとフレーム10-1の点20-Aとの間の色の差分であり得る(その差分がゼロであっても)。
【0133】
ステップS540において、現在点の符号化済みデータを含む、符号化済み現フレームを生成する。
【0134】
この技術では、点群データに対して、フレーム間予測を使用して、位置以外の属性を符号化する。この特徴は、発明の背景でも触れた、GRAZIOSIとROODAKIのどちらの論文にもない。
【0135】
エンコーダ220が使用する技術はすべて、可逆的である(ただし、必ずしもロスレスではない)。したがって、本質的に、デコーダ240は、
図3と
図5に関して上述した技術の逆の動作を実行するように設計されている。とりわけ、フレーム間予測復号化とフレーム内予測復号化は、本質的にフレーム間予測符号化とフレーム間予測符号化と同じ原理で動作する。
【0136】
図6は、点群データのフレームのシーケンスのフレームを復号化する方法の重要な特徴を概略的に例解する流れ図である。この方法は、動的三次元シーンをレンダリングするための点群データの符号化済みフレームのシーケンス上で実行される。各フレームは複数の符号化済み点を含み、各点は三次元位置、及び1つ以上の属性を含む。この方法は、例えば、
図2に示されるようなシステムのデコーダ240によって実行され得る。
【0137】
図6を参照すると、ステップS610において、復号化されるべきフレームの1つの点を現在点として取得する。
【0138】
ステップS620で、先行フレームで復号化された先行点を識別し、当該先行点は、現在点に対応する。
【0139】
ステップS630で、フレーム間予測符号化を使用して、先行点を参照することにより、現在点の少なくとも1つの属性を復号化し、現在点の復号化済みデータを生成する。
【0140】
この復号化法は、上述した特別な技術的特徴、つまり、フレーム間予測を使用して、点群データの位置以外の属性を復号化するという点で共通している。
【0141】
図7は、エンコーダ、又はデコーダの概略ブロック図である。
図7で見られるように、エンコーダとデコーダは、プロセッサ710とメモリ720を含む、ごく一般的なコンピュータハードウェアによって実装され得る。メモリは、
図5又は
図6に関して上述したような方法を実行するようプロセッサに指示するための、プロセッサ命令、バイトコード、未コンパイルコード、又はプロセッサ命令に変換可能な任意の他の形態のコンピュータ命令を、格納する。あるいは、エンコーダ、又はデコーダは、汎用プロセッサ、又はメモリを必要とせず、
図5又は
図6の方法を実行するように構成されたハードウェアとして全体的に実装することができる。
【0142】
エンコーダ又はデコーダは、好ましくは、エンコーダ220の場合には、符号化されていない点群データの受信、及び符号化済み点群データの送信を可能にし、デコーダ240の場合には、符号化済み点群データの受信、及び符号化されていない点群データの送信を可能にする通信インターフェイス730も備える。
【国際調査報告】