(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-27
(45)【発行日】2023-04-04
(54)【発明の名称】点群コーディングのための方法及び装置
(51)【国際特許分類】
G06T 9/40 20060101AFI20230328BHJP
【FI】
G06T9/40
(21)【出願番号】P 2021556785
(86)(22)【出願日】2020-10-07
(86)【国際出願番号】 US2020054600
(87)【国際公開番号】W WO2021112953
(87)【国際公開日】2021-06-10
【審査請求日】2021-09-21
(32)【優先日】2019-12-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】橋爪 正樹
(56)【参考文献】
【文献】国際公開第2019/078000(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00- 9/40
G06T 13/00-19/20
(57)【特許請求の範囲】
【請求項1】
点群コーディングのための方法であって、
プロセッサによって、点群についてのコーディングされたビットストリームから、前記点群についての八分木構造内のノードのエンコードされたデータを受け取るステップであり、前記八分木構造内の前記ノードは、前記点群の空間の3次元(3D)パーティションに対応し、前記ノードのサイズは、前
記3Dパーティションの
細分レベルに相当する前記八分木構造の深さレベルで表される、前記受け取るステップと、
前記プロセッサによって、前記エンコードされたデータから、前記ノードの占有コードをデコードするステップと、
前記プロセッサによって、前記ノードの前記デコードされた占有コードに基づいて前記八分木構造を再構成するステップと、
前記プロセッサによって、前記
再構成された八分木構造に基づいて前記点群を再構成するステップと
を有する方法。
【請求項2】
前記占有コードをデコードするステップは、
所定のノードサイズよりも大きいサイズを有する前記八分木構造内のノードの占有コードを第1コーディング順序
でデコードするステッ
プと、
前記所定のノードサイズよりも小さいか又はそれに等しいサイズを有する前記八分木構造内のノードの占有コードを前記第1コーディング順序とは異なる第2コーディング順序
でデコードするステッ
プと
有する、請求項1に記載の方法。
【請求項3】
前記所定のノードサイズよりも小さいか又はそれに等しいサイズを有する前記ノードのうち、第1サブ八分木
構造を形成する第1のノードの組の第1の占有コードの組をデコードするステップであり、
前記第1サブ八分木構造の根ノードである第1ノードは、前記所定のノードサイズに等しいサイズを有する、ステップと、
前記所定のノードサイズよりも小さいか又はそれに等しいサイズを有する前記ノードのうち、第2サブ八分木
構造を形成する第2のノードの組の第2の占有コードの組をデコードするステップであり、
前記第2サブ八分木構造の根ノードである第2ノードは、前記所定のノードサイズに等しいサイズを有する、ステップと
を更に有する、請求項2に記載の方法。
【請求項4】
前記第2サブ八分木
構造を形成する前記第2のノードの組の前記第2の占有コードの組のデコードと並行して、前記第1サブ八分木
構造を形成する前記第1のノードの組の前記第1の占有コードの組をデコードするステップを更に有する、
請求項3に記載の方法。
【請求項5】
第1コーディングモードを用いて、前記第1サブ八分木
構造を形成する前記第1のノードの組の前記第1の占有コードの組をデコードするステップと、
第2コーディングモードを用いて、前記第2サブ八分木
構造を形成する前記第2のノードの組の前記第2の占有コードの組をデコードするステップと
を更に有する、請求項3に記載の方法。
【請求項6】
前記コーディングされたビットストリームから、前記第1サブ八分木
構造に対する前記第1コーディングモードを示す第1インデックスをデコードするステップと、
前記コーディングされたビットストリームから、前記第2サブ八分木
構造に対する前記第2コーディングモードを示す第2インデックスをデコードするステップと
を更に有する、請求項5に記載の方法。
【請求項7】
前記第1コーディング順序は、
前記八分木構造内のノードが前記八分木構造の深さレベルごとにアクセスされる幅優先のコーディング順序であり、
前記第2コーディング順序は、
前記八分木構造内のノードが前記八分木構造のサブ八分木構造ごとにアクセスされる深さ優先のコーディング順序である、
請求項2乃至6のうちいずれか一項に記載の方法。
【請求項8】
前記第1コーディング順序は、
前記八分木構造内のノードが前記八分木構造のサブ八分木構造ごとにアクセスされる深さ優先のコーディング順序であり、
前記第2コーディング順序は、
前記八分木構造内のノードが前記八分木構造の深さレベルごとにアクセスされる幅優先のコーディング順序である、
請求項2乃至6のうちいずれか一項に記載の方法。
【請求項9】
前記点群についての前記コーディングされたビットストリームにおける信号に基づいて
前記所定のノードサイズを決定するステップを更に有する、
請求項2乃至8のうちいずれか一項に記載の方法。
【請求項10】
前記点群についての前記コーディングされたビットストリームから制御信号をデコードするステップを更に有し、
前記制御信号は、コーディング順序の変化を示す、
請求項9に記載の方法。
【請求項11】
点群コーディングのための装置であって、
処理回路と、
プログラムを記憶している非一時的なコンピュータ可読媒体と
を有し
前記プログラムは、前記処理回路によって実行される場合に、前記処理回路に、請求項1乃至10のうちいずれか一項に記載の方法を実行させる、
装置。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本願は、2019年12月2日付けで「HYBRID CODING ORDER FOR POINT CLOUD CODING」と題されて出願された米国特許仮出願第62/942549号の優先権の利益を主張して2020年10月5日付けで「METHOD AND APPARATUS FOR POINT CLOUD CODING」と題されて出願された米国特許出願第17/063411号の優先権の利益を主張する。
【0002】
[技術分野]
本開示は、点群コーディングに概して関係がある実施形態について記載する。
【背景技術】
【0003】
本明細書中で与えられている背景の説明は、本開示の背景を一般的に提示することを目的とするものである。現在指名されている発明者の研究は、その研究がこの背景の項で説明されている範囲で、及び出願時に先行技術としてさもなければ適格でない可能性がある説明の側面は、本開示に対する先行技術として明示的にも暗黙的にも認められない。
【0004】
様々な技術が、世界の中の物体、世界の中の環境、などの世界を3次元(3D)空間で捕捉及び表現するために開発されている。世界の3D表現は、より没入した形の相互作用及び通信を可能にすることができる。点群は、世界の3D表現として使用され得る。点群は、夫々に属性、例えば、色、材料特性、テクスチャ情報、強度属性、反射属性、動きに関連した属性、モダリティ属性、及び様々な他の属性が関連付けられた3D空間内の点の組である。そのような点群は、大量のデータを含むことがあり、記憶及び伝送するためにコスト及び時間がかかる可能性がある。
【発明の概要】
【0005】
開示の態様は、点群の圧縮及び圧縮解除のための方法及び装置を提供する。いくつかの例で、点群の圧縮/圧縮解除のための装置は、処理回路を含む。いくつかの実施形態で、処理回路は、点群についてのコーディングされたビットストリームから、点群についての八分木構造内のノードのエンコードされた占有コードを受け取る。八分木構造内のノードは、点群の空間の3次元(3D)パーティションに対応する。ノードのサイズは、対応する3Dパーティションのサイズに関連する。更に、処理回路は、エンコードされた占有コードから、ノードの占有コードをデコードする。第1ノードの子ノードの少なくとも第1占有コードは、第1ノードと同じノードサイズを有する第2ノードの第2占有コードのデコードを待たずにデコードされる。次いで、処理回路は、ノードのデコードされた占有コードに基づいて八分木構造を再構成し、八分木構造に基づいて点群を再構成する。
【0006】
いくつかの実施形態で、処理回路は、第1サブ八分木内の第1のノードの組の第1の占有コードの組をデコードし、第1ノードが第1サブ八分木の根であり、かつ、第2サブ八分木内の第2のノードの組の第2の占有コードの組をデコードし、第2ノードが前記第2サブ八分木の根である。実施形態において、処理回路は、第2サブ八分木内の第2のノードの組の第2の占有コードの組と並行して、第1サブ八分木内の第1のノードの組の第1の占有コードの組をデコードする。
【0007】
他の実施形態で、処理回路は、第1コーディングモードを用いて、第1サブ八分木内の第1のノードの組の第1の占有コードの組をデコードし、第2コーディングモードを用いて、第2サブ八分木内の第2のノードの組の第2の占有コードの組をデコードする。例において、処理回路は、コーディングされたビットストリームから、第1サブ八分木に対する第1コーディングモードを示す第1インデックスをデコードし、コーディングされたビットストリームから、第2サブ八分木に対する第2コーディングモードを示す第2インデックスをデコードする。
【0008】
いくつかの実施形態で、処理回路は、第1コーディング順序を用いて、ノードの中のより大きいノードについての占有コードの第1部分をデコードする。より大きいノードは、コーディング順序変化のための特定のノードサイズよりも大きい。処理回路は、第1コーディング順序とは異なる第2コーディング順序を用いて、ノードの中のより小さいノードについての占有コードの第2部分をデコードする。より小さいノードは、コーディング順序変化のための特定のノードサイズ以下である。例において、第1コーディング順序は、幅優先のコーディング順序であり、第2コーディング順序は、深さ優先のコーディング順序である。他の例では、第1コーディング順序は、深さ優先のコーディング順序であり、第2コーディング順序は、幅優先のコーディング順序である。
【0009】
いくつかの例で、処理回路は、点群についてのコーディングされたビットストリームにおける信号に基づいて、コーディング順序変化のための特定のノードサイズを決定する。例において、処理回路は、点群についてのコーディングされたビットストリームから制御信号をデコードし、制御信号は、コーディング順序の変化を示す。次いで、処理回路は、信号をデコードし、コーディング順序変化のための特定のノードサイズを決定する。
【0010】
開示の態様は、点群エンコード/デコードのためにコンピュータによって実行される場合に、コンピュータに、点群エンコード/デコードのための方法のいずれか1つ又は組み合わせを実行させる命令を記憶している非一時的なコンピュータ可読媒体も提供する。
【0011】
開示されている対象の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に従う通信システムの略ブロック図の概略図である。
【
図2】実施形態に従うストリーミングシステムの略ブロック図の概略図である。
【
図3】いくつかの実施形態に従う、点群フレームをエンコードするエンコーダのブロック図を示す。
【
図4】いくつかの実施形態に従う、点群フレームに対応する圧縮されたビットストリームをデコードするデコーダのブロック図を示す。
【
図5】実施形態に従うビデオデコーダの略ブロック図の概略図である。
【
図6】実施形態に従うビデオエンコーダの略ブロック図の概略図である。
【
図7】いくつかの実施形態に従う、点群フレームをエンコードするエンコーダのブロック図を示す。
【
図8】いくつかの実施形態に従う、点群フレームに対応する圧縮されたビットストリームをデコードするデコーダのブロック図を示す。
【
図9】本開示のいくつかの実施形態に従う八分木パーティション技術に基づいた立方体のパーティションを表す図を示す。
【
図10】本開示のいくつかの実施形態に従う八分木パーティション及び八分木パーティションに対応する八分木構造の例を示す。
【
図11】幅優先のコーディング順序を表す八分木構造の図を示す。
【
図12】深さ優先のコーディング順序を表す八分木構造の図を示す。
【
図13】本開示のいくつかの実施形態に従うジオメトリパラメータセットのシンタックス例を示す。
【
図14】本開示のいくつかの実施形態に従うジオメトリパラメータセットの他のシンタックス例を示す。
【
図15】本開示のいくつかの実施形態に従う八分木コーディングのための擬似コード例を示す。
【
図16】本開示のいくつかの実施形態に従う深さ優先のコーディング順序のための擬似コード例を示す。
【
図17】いくつかの実施形態に従うプロセス例を概説するフローチャートを示す。
【
図18】実施形態に従うコンピュータシステムの概略図である。
【発明を実施するための形態】
【0013】
本開示の態様は、点群コーディング(Point Cloud Coding,PCC)技術を提供する。PCCは、G-PCCと呼ばれるジオメトリ(Geometry)に基づいたスキーム、V-PCCと呼ばれるビデオコーディング(Video coding)に基づいたスキーム、などのような様々なスキームに従って実行され得る。本開示のいくつかの態様に従って、G-PCCは、3Dジオメトリを直接にエンコードし、ビデオコーディングと共有することが少ない純粋にジオメトリに基づいたアプローチであり、V-PCCは、大いにビデオコーディングに基づいている。例えば、V-PCCは、3Dクラウドの点を2Dグリッド(画像)のピクセルにマッピングすることができる。V-PCCスキームは、点群圧縮のために一般的なビデオコーデックを利用することができる。MPEG(Moving Picture Experts Group)は、G-PCCスキーム及びV-PCCスキームを夫々使用しているG-PCC規格及びV-PCC規格に取り組んでいる。
【0014】
本開示の態様は、G-PCCスキーム及びV-PCCスキームなどのPCCで使用され得るハイブリッドコーディング順序のための技術を提供する。ハイブリッドコーディング順序は、コーディング順序において深さ優先のトラバーススキーム及び幅優先のトラバーススキームを含めることができる。本開示は、コーディング順序のシグナリングのための技術も提供する。
【0015】
点群は、多くの応用で広く使用され得る。例えば、点群は、対象の検出及び位置決めのために自動運転車両で使用可能であり、点群は、地図作成のために地理情報システム(Geometric Information Systems,GIS)で使用可能であり、かつ、文化遺産対象物及びコレクションを視覚化しアーカイブ保存するために文化遺産において使用可能である。
【0016】
以降、点群は、夫々に属性、例えば、色、材料特性、テクスチャ情報、強度属性、反射属性、動きに関連した属性、モダリティ属性、及び様々な他の属性が関連付けられた3D空間内の点の組を概して指し得る。点群は、そのような点の合成として対象又は場面を再構成するために使用され得る。点は、様々な設定で複数のカメラ、デプスセンサ、又はライダー(Lidar)を用いて捕捉可能であり、再構成された場面を現実的に表現するために数千乃至数百万個の点から構成され得る。パッチは、一般的に、点群によって記述される表面の連続したサブセットを指し得る。例において、パッチは、閾値未満の量で互いから外れている表面法線ベクトルを持つ点を含む。
【0017】
圧縮技術は、より速い伝送又は記憶量の削減のために、点群を表すために必要なデータの両方を減らすことができる。そのようなものとして、リアルタイムの通信及び6自由度(Degrees of Freedom)(6DoF)仮想現実での使用のために、点群の不可逆圧縮ための技術が必要とされる。その上、自動運転及び文化遺産などの応用のための動的マッピングに関連して、可逆点群圧縮のための技術が求められている。
【0018】
本開示の態様に従って、V-PCCの背後にある主な哲学は、動的な点群のジオメトリ、占有、及びテクスチャを3つの別々のビデオシーケンスとして圧縮するために、既存のビデオコーデックを活用することである。3つのビデオシーケンスを解釈するのに必要とされる余分のメタデータは、別々に圧縮される。ビットストリーム全体のごく一部がメタデータであり、ソフトウェア実装により効率的にエンコード/デコードされ得る。情報の大部分は、ビデオコーデックによって処理される。
【0019】
図1は、本開示の実施形態に従う通信システム(100)の略ブロック図を表す。通信システム(100)は、例えば、ネットワーク(150)を介して、互いと通信することができる複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続されている端末デバイス(110)及び(120)の対を含む。
図1で、端末デバイス(110)及び(120)の第1の対は、点群データの一方向伝送を実行してよい。例えば、端末デバイス(110)は、端末デバイス(110)と接続されたセンサ(105)によって捕捉される点群(例えば、構造を表す点)を圧縮してよい。圧縮された点群は、例えば、ビットストリームの形で、ネットワーク(150)を介して他の端末デバイス(120)へ伝送され得る。端末デバイス(120)は、圧縮された点群をネットワーク(150)から受け取り、ビットストリームを圧縮解除して点群を再構成し、再構成された点群を適切に表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0020】
図1の例では、端末デバイス(110)及び(120)は、サーバ、及びパーソナルコンピュータとして表され得るが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム機、メディアプレイヤー、及び/又は3次元(3D)装置により用途を見出す。ネットワーク(150)は、圧縮された点群を端末デバイス(110)及び(120)の間で伝送する任意の数のネットワークを表す。ネットワーク(150)は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含むことができる。ネットワーク(150)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットがある。本議論のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以下本明細書中で説明されない限りは、本開示の動作に無関係であってよい。
【0021】
図2は、実施形態に従って、ストリーミングシステム(200)の略ブロック図を表す。
図2の例は、点群についての開示されている対象のための応用である。開示されている対象は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーション、などのような、他の点群対応アプリケーションに同様に適用可能であり得る。
【0022】
ストリーミングシステム(200)は、捕捉サブシステム(213)を含んでよい。捕捉サブシステム(213)は、例えば、圧縮されていない点群(202)を生成する点群ソース(201)、例えば、光検出及び測距(Light Detection And Ranging,LIDAR)システム、3Dカメラ、3Dスキャナ、グラフィクス生成コンポーネント、を含むことができる。例において、点群(202)は、3Dカメラによって捕捉される点を含む。点群(202)は、圧縮された点群(204)(圧縮された点群のビットストリーム)と比較して高いデータボリュームを強調するために太線で表されている。圧縮された点群(204)は、点群ソース(201)へ結合されたエンコーダ(203)を含む電子デバイス(220)によって生成され得る。エンコーダ(203)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能にする又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。圧縮された点群(204)(又は圧縮された点群のビットストリーム(204))は、点群のストリーム(202)と比較してより低いデータボリュームを強調するために細線で表されており、将来の使用のためにストリーミングサーバ(205)に記憶され得る。
図2のクライアントサブシステム(206)及び(208)などの1つ以上のストリーミングクライアントサブシステムは、圧縮された点群(204)のコピー(207)及び(209)を読み出すためにストリーミングサーバ(205)にアクセスすることができる。クライアントサブシステム(206)は、例えば、電子デバイス(230)において、デコーダ(210)を含むことができる。デコーダ(210)は、圧縮された点群の入来するコピー(207)をデコードし、レンダリングデバイス(212)でレンダリングされ得る再構成された点群の送出ストリーム(211)を生成する。
【0023】
なお、電子デバイス(220)及び(230)は、他のコンポーネント(図示せず。)を含むことができる。例えば、電子デバイス(220)は、デコーダ(図示せず。)を含むことができ、電子デバイス(230)は、エンコーダ(図示せず。)を同様に含むことができる。
【0024】
いくつかのストリーミングシステムで、圧縮された点群(204)、(207)、及び(209)(例えば、圧縮された点群のビットストリーム)は、特定の規格に従って圧縮され得る。いくつかの例で、ビデオコーディング規格が点群の圧縮で使用される。これらの規格の例には、HEVC(High Efficiency Video Coding)、VVC(Versatile Video Coding)、などがある。
【0025】
図3は、いくつかの実施形態に従う、点群をエンコードするV-PCCエンコーダ(300)のブロック図を示す。いくつかの実施形態で、V-PCCエンコーダ(300)は、通信システム(100)及びストリーミングシステム(200)で使用され得る。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同じようにして構成されどうすることができる。
【0026】
V-PCCエンコーダ(300)は、圧縮されていない入力として点群フレームを受け取り、圧縮された点群フレームに対応するビットストリームを生成する。いくつかの実施形態で、V-PCCエンコーダ(300)は、点群ソース(201)などのような点群ソースから点群フレームを受け取ってよい。
【0027】
図3の例で、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)、パッチパッキングモジュール(308)、ジオメトリ画像生成モジュール(310)、テクスチャ画像生成モジュール(312)、パッチ情報モジュール(304)、占有マップモジュール(314)、平滑化モジュール(336)、画像パディングモジュール(316)及び(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322)、(323)及び(332)、補助パッチ情報圧縮モジュール(338)、エントロピ圧縮モジュール(334)、並びにマルチプレクサ(324)を含む。
【0028】
本開示の態様に従って、V-PCCエンコーダ(300)は、圧縮された点群を圧縮解除された点群に逆変換するために使用されるいくつかのメタデータ(例えば、占有マップ及びパッチ情報)とともに、3D点群フレームを画像に基づいた表現に変換する。いくつかの例で、V-PCCエンコーダ(300)は、3D点群フレームをジオメトリ画像、テクスチャ画像、及び占有マップに変換し、次いで、ビデオコーディング技術を用いて、ジオメトリ画像、テクスチャ画像、及び占有マップをビットストリームにエンコードすることができる。一般に、ジオメトリ画像は、ピクセルに投影された点に関連したジオメトリ値で満たされたピクセルを有する2D画像であり、ジオメトリ値で満たされたピクセルは、ジオメトリサンプルと呼ばれ得る。テクスチャ画像は、ピクセルに投影された点に関連したテクスチャ値で満たされたピクセルを有する2D画像であり、テクスチャ値で満たされたピクセルは、テクスチャサンプルと呼ばれ得る。占有マップは、パッチによる占有又は未占有を示す値で満たされたピクセルを有する2D画像である。
【0029】
パッチ生成モジュール(306)は、点群を、重なり合っても合わなくてもよいパッチの組(例えば、パッチは、点群によって記述される表面の連続したサブセットとして定義される。)にセグメント化する。それにより、各パッチは、2D空間内の平面に対するデプスフィールドによって記述され得る。いくつかの実施形態で、パッチ生成モジュール(306)は、再構成エラーも最小限にしながら、点群を滑らかな境界で最小限の数のパッチに分解することを狙う。
【0030】
パッチ情報モジュール(304)は、パッチのサイズ及び形状を示すパッチ情報を収集することができる。いくつかの例で、パッチ情報は、画像フレームにパックされ、次いで、補助パッチ情報圧縮モジュール(338)によって、圧縮された補助パッチ情報を生成するようエンコードされ得る。
【0031】
パッチパッキングモジュール(308)は、未使用空間を最小限にし、かつ、グリッドのあらゆるM×M(例えば、16×16)ブロックが一意のパッチと関連付けられることを保証しながら、抽出されたパッチを2次元(2D)グリッド上にマッピングするよう構成される。効率的なパッチパッキングは、未使用空間を最小限にすること又は時間的一貫性を確かにすることのどちらかによって、圧縮効率に直接に影響を及ぼすことができる。
【0032】
ジオメトリ画像生成モジュール(310)は、所与のパッチ位置での点群のジオメトリに関連した2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ位置での点群のテクスチャに関連した2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)及びテクスチャ画像生成モジュール(312)は、点群のジオメトリ及びテクスチャを画像として記憶するよう、パッキングプロセス中に計算された3D-2Dマッピングを利用する。複数の点が同じサンプルに投影される場合をより良く扱うために、各パッチは、レイヤと呼ばれる2つの画像に投影される。例において、ジオメトリ画像は、YUV420-8ビットフォーマットでW×Hのモノクロフレームによって表される。テクスチャ画像を生成するよう、テクスチャ生成プロシージャは、再サンプリングされた点に関連付けられるべき色を計算するために、再構成/平滑化されたジオメトリを利用する。
【0033】
占有マップモジュール(314)は、各単位でパッディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドのセルごとに、セルが空きスペースに又は点群に属するかどうかを示すバイナリマップを含む。例において、占有マップは、ピクセルごとに、ピクセルがパディングされるか否かを記述するバイナリ情報を使用する。他の例では、占有マップは、ピクセルのブロックごとに、ピクセルのブロックがパディングされるか否かを記述するバイナリ情報を使用してもよい。
【0034】
占有マップモジュール(314)によって生成された占有マップは、可逆コーディング又は不可逆コーディングを用いて圧縮され得る。可逆コーディングが使用される場合に、エントロピ圧縮モジュール(334)は、占有マップを圧縮するために使用される。不可逆コーディングが使用される場合に、ビデオ圧縮モジュール(332)は、占有マップを圧縮するために使用される。
【0035】
なお、パッチパッキングモジュール(308)は、画像フレームにパックされた2Dパッチ間に若干の空きスペースを残してもよい。画像パディングモジュール(316)及び(318)は、2Dビデオ及び画像コーデックに適し得る画像フレームを生成するために、空きスペース(empty space)を満たすことができる(パディングと呼ばれる。)。画像パディングは、冗長な情報で未使用空間を満たすことができるバックグラウンド充てん(background filling)とも呼ばれる。いくつかの例で、優れたバックグラウンド充てんは、ビットレートを最小限に増加させる一方で、パッチ境界の周りに大きいコーディングひずみを導入しない。
【0036】
ビデオ圧縮モジュール(322)、(323)、及び(332)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像、及び占有マップなどの2D画像を、HEVC、VVCなどのような適切なビデオコーディング規格に基づいてエンコードすることができる。例において、ビデオ圧縮モジュール(322)、(323)、及び(332)は、別々に動作する個別的なコンポーネントである。なお、ビデオ圧縮モジュール(322)、(323)、及び(332)は、他の例では、単一のコンポーネントとして実装され得る。
【0037】
いくつかの例で、平滑化モジュール(336)は、再構成されたジオメトリ画像の平滑化された画像を生成するよう構成される。平滑化された画像は、テクスチャ画像生成モジュール(312)へ供給され得る。次いで、テクスチャ画像生成モジュール(312)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整してよい。例えば、パッチ形状(例えば、ジオメトリ)がエンコード及びデコード中にわずかにひずむ場合に、ひずみは、パッチ形状のひずみを補正するために、テクスチャ画像を生成するときに考慮に入れられてよい。
【0038】
いくつかの実施形態で、グループ拡張モジュール(320)は、コーディング利得及び再構成された点群の視覚品質を改善するために、冗長な低周波コンテンツでオブジェクト境界の周りのピクセルをパディングするよう構成される。
【0039】
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、及び圧縮された補助パッチ情報を、圧縮されたビットストリームへと多重化することができる。
【0040】
図4は、いくつかの実施形態に従う、点群フレームに対応する圧縮されたビットストリームをデコードするV-PCCデコーダ(400)のブロック図を示す。いくつかの実施形態で、V-PCCデコーダ(400)は、通信システム(100)及びストリーミングシステム(200)で使用され得る。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同じようにして動作するよう構成され得る。V-PCCデコーダ(400)は、圧縮されたビットストリームを受け取り、圧縮されたビットストリームに基づいて、再構成された点群を生成する。
【0041】
図4の例で、V-PCCデコーダ(400)は、デマルチプレクサ(432)、ビデオ圧縮解除モジュール(434)及び(436)、占有マップ圧縮解除モジュール(438)、補助パッチ情報圧縮解除モジュール(442)、ジオメトリ再構成モジュール(444)、平滑化モジュール(446)、テクスチャ再構成モジュール(448)、並びに色平滑化モジュール(452)を含む。
【0042】
デマルチプレクサ(432)は、圧縮されたビットストリームを受け取って、圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、及び圧縮された補助パッチ情報に分離することができる。
【0043】
ビデオ圧縮解除モジュール(434)及び(436)は、適切な規格(例えば、HEVC、VVC、など)に従って、圧縮された画像をデコードし、圧縮解除された画像を出力することができる。例えば、ビデオ圧縮解除モジュール(434)は、圧縮されたテクスチャ画像をデコードし、圧縮解除されたテクスチャ画像を出力し、ビデオ圧縮解除モジュール(436)は、圧縮されたジオメトリ画像をデコードし、圧縮解除されたジオメトリ画像を出力する。
【0044】
占有マップ圧縮解除モジュール(438)は、適切な規格(例えば、HEVC、VVC、など)に従って、圧縮された占有マップをデコードし、圧縮解除された占有マップを出力することができる。
【0045】
補助パッチ情報圧縮解除モジュール(442)は、適切な規格(例えば、HEVC、VVC、など)に従って、圧縮された補助パッチ情報をデコードし、圧縮解除された補助パッチ情報を出力する。
【0046】
ジオメトリ再構成モジュール(444)は、圧縮解除されたジオメトリ画像を受け取り、圧縮解除された占有マップ及び圧縮解除された補助パッチ情報に基づいて、再構成された点群ジオメトリを生成することができる。
【0047】
平滑化モジュール(446)は、パッチのエッジでの不一致を平滑化することができる。平滑化プロシージャは、圧縮アーチファクトによりパッチ境界で起こり得る潜在的な不連続性を軽減することを目的とする。いくつかの実施形態で、平滑化フィルタは、圧縮/圧縮解除によって引き起こされる可能性があるひずみを軽減するよう、パッチ境界に位置するピクセルに適用されてよい。
【0048】
テクスチャ再構成モジュール(448)は、圧縮解除されたテクスチャ画像及び平滑化ジオメトリに基づいて、点群の中の点についてのテクスチャ情報を決定することができる。
【0049】
色平滑化モジュール(452)は、色合いの不一致を平滑化することができる。3D空間内の非隣接パッチは、しばしば、2Dビデオにおいて互いに隣り合ってパックされる。いくつかの例で、非隣接パッチからのピクセル値は、ブロックに基づいたビデオコーデックによって取り違えられる可能性がある。色平滑化の目標は、パッチ境界で現れる視覚的なアーチファクトを減らすことである。
【0050】
図5は、本開示の実施形態に従うビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、V-PCCデコーダ(400)で使用され得る。例えば、ビデオ圧縮解除モジュール(434)及び(436)、並びに占有マップ圧縮解除モジュール(438)は、ビデオデコーダ(510)と同様に構成され得る。
【0051】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスなどの圧縮された画像からシンボル(521)を再構成するパーサ(520)を含んでよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含む。パーサ(520)は、受け取られているコーディングされたビデオシーケンスをパース/エントロピデコードしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出してよい。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)、などを含むことができる。パーサ(520)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化器パラメータ値、動きベクトル、なども抽出してよい。
【0052】
パーサ(520)は、シンボル(521)を生成するために、バッファメモリから受信されたビデオシーケンスに対してエントロピデコード/パーシング動作を実行してよい。
【0053】
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多数の異なるユニットを有することができる。どのユニットがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
【0054】
既に述べられた機能ブロックを超えて、ビデオデコーダ(510)は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
【0055】
第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)からシンボル(521)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)へ入力することができるサンプル値を含むブロックを出力することができる。
【0056】
いくつかの場合に、スケーラ/逆変換器(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。かような予測情報は、イントラピクチャ予測ユニット(552)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって供給される出力サンプル情報に加える。
【0057】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。かような場合に、動き補償予測ユニット(553)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(521)の形で動き補償予測ユニット(553)が利用することができる動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなども含むことができる。
【0058】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる。)に含まれており、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコード順序において)前の部分のデコード中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
【0059】
ループフィルタユニット(556)の出力は、レンダーデバイスへ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであることができる。
【0060】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の部分になることができ、未使用の現在ピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
【0061】
ビデオデコーダ(510)は、ITU-T推奨H.265などの規格における所定のビデオ圧縮技術に従ってデコード動作を実行してよい。コーディングされたビデオシーケンスは、そのコーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックス及びビデオ圧縮技術又は規格において文書化されているプロファイルの両方に従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールからそのプロファイルの下での使用のために利用可能な唯一のツールとして特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定される制限は、いくつかの場合に、HRD(Hypothetical Reference Decoder)仕様と、コーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータとを通じて更に制限され得る。
【0062】
図6は、本開示の実施形態に従うビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、点群を圧縮するV-PCCエンコーダ(300)で使用され得る。例において、ビデオ圧縮モジュール(322)及び(323)、並びにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0063】
ビデオエンコーダ(603)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像、などのような画像を受け取り、圧縮された画像を生成してよい。
【0064】
実施形態に従って、ビデオエンコーダ(603)は、実時間において、又はアプリケーションによって必要とされる任意の他の時間制約の下で、ソースビデオシーケンス(画像)のピクチャを、コーディングされたビデオシーケンス(圧縮された画像)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(650)の一機能である。いくつかの実施形態で、コントローラ(650)は、以下で記載されるような他の機能ユニットを制御し、他の機能ユニットへ機能的に結合される。結合は明りょうさのために表されていない。コントローラ(650)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を有するよう構成され得る。
【0065】
いくつかの実施形態で、ビデオエンコーダ(603)は、コーディングループで動作するよう構成される。過度に単純化された記載として、例において、コーディングループは、ソースコーダ(630)(例えば、コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する。)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(シンボルとコーディングされたビデオストリームとの間の如何なる圧縮も、開示されている対象で考えられているビデオ圧縮技術において可逆であるということで)(遠隔の)デコーダも生成することになるのと同様の方法でサンプルデータを生成するようにシンボルを再構成する。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)へ入力される。シンボルストリームのデコードは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコード中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用されている。
【0066】
“ローカル”のデコーダ(633)の動作は、
図5とともに既に詳細に上述されている、ビデオデコーダ(510)などの“遠隔”のデコーダと同じであることができる。一時的に
図5も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(645)及びパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコード/デコードが可逆であることができるということで、パーサ(520)を含むビデオデコーダ(510)のエントロピデコード部分は、ローカルのデコーダ(633)において完全には実装されなくてもよい。
【0067】
この時点で行われ得る観察は、デコーダに存在するパーシング/エントロピデコードを除く如何なるデコーダ技術も、対応するエンコーダにおいて、実質的に同じ機能形態で、必ずしも存在する必要がないことである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されるデコーダ技術の逆であるということで、省略され得る。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
【0068】
動作中、いくつかの例で、ソースコーダ(630)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
【0069】
ローカルのビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードしてよい。コーディングエンジン(632)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(
図6には図示せず。)でデコードされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得るデコードプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納されるようにしてよい。このように、ビデオエンコーダ(603)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照ピクチャと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
【0070】
予測器(635)は、コーディングエンジン(632)のための予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(635)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(634)から探してよい。予測器(635)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
【0071】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(630)のコーディング動作を管理してよい。
【0072】
上記の全ての機能ユニットの出力は、エントロピコーダ(645)においてエントロピコーディングを受けてよい。エントロピコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0073】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してよい。コーディング中、コントローラ(650)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャは、しばしば、次のピクチャタイプのうちの1つとして割り当てられてよい。
【0074】
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコードされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴を知っている。
【0075】
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。
【0076】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコードされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0077】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。
【0078】
ビデオエンコーダ(603)は、ITU-T推奨H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してよい。その動作中に、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
【0079】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(画像)として捕捉されてよい。イントラピクチャ予測(しばしばイントラ予測と省略される。)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間又は他の)相関を利用する。例において、現在のピクチャと呼ばれる、エンコード/デコード中の特定のピクチャは、ブロックにパーティション化される。現在のピクチャ内のあるブロックが、ビデオ内の前にコーディングされた依然としてバッファリングされている参照ピクチャ内の参照ブロックと類似している場合に、現在にピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
【0080】
いくつかの実施形態において、双予測技術がインターピクチャ予測において使用され得る。双予測技術に従って、2つの参照ピクチャ、例えば、ビデオ内で現在のピクチャに対してデコード順序において両方とも先行する(しかし、表示順序では、夫々、過去及び将来にあってよい。)第1参照ピクチャ及び第2参照ピクチャが、使用される。現在のピクチャ内のあるブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルとによって、コーディングされ得る。そのブロックは、第1参照ブロック及び第2参照ブロックの組み合わせによって予測可能である。
【0081】
更に、マージモード技術が、コーディング効率を改善するためにインターピクチャ予測において使用され得る。
【0082】
本開示のいくつかの実施形態に従って、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロックのユニットにおいて実行される。例えば、HEVC規格に従って、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルといった同じサイズを有する。一般に、CTUは、1つのルーマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割可能である。例において、各CUは、インター予測タイプ又はイントラ予測タイプなどのCUのための予測タイプを決定するよう解析される。CUは、時間及び/又は空間予測可能性に応じて1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つのルーマ予測ブロック(PB)及び2つのクロマPBを含む。実施形態において、コーディング(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのような、ピクセルの値(例えば、ルーマ値)の行列を含む。
【0083】
図7は、実施形態に従うG-PCCエンコーダ(700)のブロック図を示す。エンコーダ(700)は、点群データを受け取り、点群データを圧縮して、圧縮された点群データを運ぶビットストリームを生成するよう構成され得る。実施形態において、エンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、八分木エンコードモジュール(730)、属性転送モジュール(720)、レベル・オブ・ディテール(LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、及び再構成された属性値を記憶するメモリ(790)を含むことができる。
【0084】
示されるように、入力された点群(701)は、エンコーダ(700)で受け取られ得る。点群(701)の位置(例えば、3D座標)は、量子化モジュール(710)へ供給される。量子化モジュール(710)は、量子化された位置を生成するように座標を量子化するよう構成される。重複点除去モジュール(712)は、量子化された位置を受け取り、フィルタプロセスを実行して、重複している点を識別し除去するよう構成される。八分木エンコードモジュール(730)は、重複点除去モジュール(712)からフィルタ処理された位置を受け取り、八分木(octree)に基づいたエンコードプロセスを実行して、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するよう構成される。占有コードは、算術コーディングモジュール(770)へ供給される。
【0085】
属性転送モジュール(720)は、入力された点群の属性を受け取り、属性転送プロセスを実行して、複数の属性値が各々のボクセルに関連する場合にボクセルごとに属性値を決定するよう構成される。属性転送プロセスは、八分木エンコードモジュール(730)から出力された再順序付けされた点に対して実行され得る。転送動作後の属性は、属性予測モジュール(750)へ供給される。LOD生成モジュール(740)は、八分木エンコードモジュール(730)から出力された再順序付けされた点に作用し、点を異なるLODに編成し直すよう構成される。LOD情報は、属性予測モジュール(750)へ供給される。
【0086】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されているLODに基づいた順序に従って、点を処理する。属性予測モジュール(750)は、メモリ(790)に記憶されている現在の点の隣接点の組の再構成された属性に基づいて、現在の点に対する属性予測を生成する。予測残差は、属性転送モジュール(720)から受け取られた元の属性値と、ローカルで生成された属性予測とに基づいて、その後に取得され得る。候補インデックスが各々の属性予測プロセスで使用される場合に、選択された予測候補に対応するインデックスは、算術コーディングモジュール(770)へ供給されてよい。
【0087】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受け取り、量子化を実行して、量子化された残差を生成するよう構成される。量子化された残差は、算術コーディングモジュール(770)へ供給される。
【0088】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化された残差を受け取り、残差量子化モジュール(760)で実行された量子化動作の逆を実行することによって、再構成された予測残差を生成するよう構成される。加算モジュール(781)は、逆残差量子化モジュール(780)からの再構成された予測残差と、属性予測モジュール(750)からの各々の属性予測とを受け取るよう構成される。再構成された予測残差と属性予測とを結合することによって、再構成された属性値は生成され、メモリ(790)に記憶される。
【0089】
算術コーディングモジュール(770)は、占有コード、(もし使用されるならば)候補インデックス、(もし生成されるならば)量子化された残差、及び他の情報を受け取り、エントロピエンコードを実行して、受け取られた値又は情報を更に圧縮するよう構成される。結果として、圧縮された情報を運ぶ圧縮されたビットストリーム(702)が生成され得る。ビットストリーム(702)は、圧縮されたビットストリームをデコードするデコーダへ伝送されるか、又は別なふうに供給されてよく、あるいは、記憶デバイスに記憶されてもよい。
【0090】
図8は、実施形態に従うG-PCCデコーダ(800)のブロック図を示す。デコーダ(800)は、圧縮されたビットストリームを受け取り、点群データ圧縮解除を実行してビットストリームを圧縮解除し、デコードされた点群データを生成するよう構成され得る。実施形態において、デコーダ(800)は、算術デコードモジュール(810)、逆残差量子化モジュール(820)、八分木デコードモジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、及び再構成された属性値を記憶するメモリ(860)を含むことができる。
【0091】
示されるように、圧縮されたビットストリーム(801)は、算術デコードモジュール(810)で受け取られ得る。算術デコードモジュール(810)は、圧縮されたビットストリームをデコードして、(もし生成されているならば)量子化された残差及び点群の占有コードを取得するよう構成される。八分木デコードモジュール(830)は、占有コードに従って、点群の中の点の再構成された位置を決定するよう構成される。LOD生成モジュール(840)は、再構成された位置に基づいて点を異なるLODに編成し直し、LODに基づいた順序を決定するよう構成される。逆残差量子化モジュール(820)は、算術デコードモジュール(810)から受け取られた量子化された残差に基づいて、再構成された残差を生成するよう構成される。
【0092】
属性予測モジュール(850)は、属性予測プロセスを実行して、LODに基づいた順序に従って点に対する属性予測を決定するよう構成される。例えば、現在の点の属性予測は、メモリ(860)に記憶されている現在の点の隣接点の再構成された属性値に基づいて、決定され得る。属性予測モジュール(850)は、属性予測を各々の再構成された残差と結合して、現在の点の再構成された属性を生成することができる。
【0093】
八分木デコードモジュール(830)から生成された再構成された位置とともに属性予測モジュール(850)から生成された再構成された属性のシーケンスは、一例では、デコーダ(800)から出力されるデコードされた点群(802)に対応する。その上、再構成された属性はまた、メモリ(860)に記憶され、その後に、後続の点についての属性予測を導出するために使用され得る。
【0094】
様々な実施形態で、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、ハードウェア、ソフトウェア、又はそれらの組み合わせにより実装され得る。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、などのような、ソフトウェアの有無によらず動作する1つ以上の集積回路(IC)などの処理回路により実装され得る。他の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、不揮発性の(又は非一時的な)コンピュータ可読記憶媒体に記憶されている命令を含むソフトウェア又はファームウェアとして実装され得る。命令は、1つ以上のプロセッサなどの処理回路によって実行される場合に、処理回路に、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)の機能を実行させる。
【0095】
なお、本明細書で開示されている属性予測技術を実装するよう構成される属性予測モジュール(750)及び(850)は、
図7及び
図8に示されているものと類似した又は異なった構造を有してもよい他のデコーダ又はエンコーダに含まれ得る。その上、エンコーダ(700)及びデコーダ(800)は、様々な例では、同じデバイス又は別個のデバイスに含まれ得る。
【0096】
本開示のいくつかの態様に従って、ジオメトリ八分木構造がPCCで使用され得る。いくつかの関連する例では、ジオメトリ八分木構造は、幅優先の順序でトラバースされる。幅優先の順序に従って、現在のレベルにおける八分木ノードは、上のレベルにおける八分木ノードがアクセスされた後にアクセスされ得る。本開示の態様に従って、幅優先の順序スキームは、現在のレベルが、上のレベルがコーディングされるのを待たなければならないので、並列処理には適さない。本開示は、ジオメトリ八分木構造のためのコーディング順序技術において深さ優先のコーディング順序を追加する技術を提供する。深さ優先のコーディング順序は、いくつかの実施形態では幅優先の順序と組み合わされ得、あるいは、いくつかの実施形態ではそれだけで使用され得る。コーディング順序(深さ優先のコーディング順序、深さ優先のコーディング順序と幅優先のコーディング順序との組み合わせ、など)は、本開示では、PCCのためのハイブリッドコーディング順序と呼ばれ得る。
【0097】
提案されている方法は、別々に使用されても、あるいは、如何なる順序でも組み合わされてもよい。更に、方法(又は実施形態)の夫々、エンコーダ、及びデコーダは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
【0098】
本開示のいくつかの態様に従って、点群のジオメトリ情報及び関連する属性、例えば、色、反射率、などは、(例えば、テストモデル13(TMC13)モデルで)別々に圧縮され得る。点群の中の点の3D座標を含む点群のジオメトリ情報は、パーティションの占有情報により八分木パーティションによってコーディングされ得る。属性は、例えば、予測、リフティング及び領域適応階層変換技術を用いて、再構成されたジオメトリに基づいて圧縮され得る。
【0099】
本開示のいくつかの態様に従って、3次元空間は、八分木パーティションを用いてパーティション化され得る。八分木は、2次元空間における四分木の3次元類似物である。八分木パーティション技術は、3次元空間を8つのオクタント(octant)に再帰的に細分するパーティション技術を指し、八分木構造は、パーティションを表す木構造を指す。例において、八分木構造内の各ノードは、3次元空間に対応し、ノードは、終点ノード(これ以上パーティションはない。いくつかの例では、リーフノードとも呼ばれる。)、又は更なるパーティションを伴ったノードであることができる。あるノードでのパーティションは、そのノードによって表される3次元空間を8つのオクタントにパーティション化することができる。いくつかの例で、特定のノードのパーティションに対応するノードは、その特定ノードの子ノードと呼ばれ得る。
【0100】
図9は、本開示のいくつかの実施形態に従う八分木パーティション技術に基づいた3D立方体(ノードに対応)のパーティションを表す図を示す。パーティションは、
図9に示されるように、3D立方体(900)を、8つの、より小さい、等しいサイズの立方体0~7に分割することができる。
【0101】
(例えば、TMC13での)八分木パーティション技術は、元の3D空間を、より小さいユニットに再帰的に分割することができ、あらゆるサブ空間の占有情報は、ジオメトリ位置を表すようエンコードされ得る。
【0102】
いくつかの実施形態で(例えば、TMC13で)、八分木ジオメトリコーデックが使用される。八分木ジオメトリコーデックは、ジオメトリエンコードを実行することができる。いくつかの例で、ジオメトリエンコードは、立方体のボックスに対して実行される。例えば、立方体のボックスは、2つの点(0,0,0)及び(2M-1,2M-1,2M-1)によって定義される軸整列境界ボックス(axis-aligned bounding box)Bであることができる。ここで、2M-1は、境界ボックスBのサイズを定義し、Mは、ビットストリームで指定され得る。
【0103】
次いで、八分木構造は、立方体のボックスを再帰的に細分することによって構成される。例えば、2つの点(0,0,0)及び(2M-1,2M-1,2M-1)によって定義されている立方体のボックスは、8つのサブ立方体ボックスに分割され、次いで、占有コードと呼ばれる8ビットコードが生成される。占有コードの各ビットは、サブ立方体ボックスに関連し、ビットの値は、関連するサブ立方体ボックスが点群のいずれかの点を含むかどうかを示すために使用される。例えば、ビットの値1は、そのビットに関連したサブ立方体ボックスが点群の1つ以上の点を含むことを示し、ビットの値0は、そのビットに関連したサブ立方体ボックスが点群の点を含まないことを示す。
【0104】
更に、空のサブ立方体ボックスについては(例えば、サブ立方体ボックスに関連したビットの値が0である場合)、そのサブ立方体ボックスに対してこれ以上の分割は適用されない。サブ立方体ボックスが点群の1つ以上の点を有する(例えば、サブ立方体ボックスに関連したビットの値が1である)場合には、そのサブ立方体ボックスは、8つの、より小さいサブ立方体ボックスに更に分割され、占有コードが、そのサブ立方体ボックスについて、より小さいサブ立方体ボックスの占有を示すよう生成され得る。いくつかの例で、細分動作は、サブ立方体ボックスのサイズが所定の閾値、例えば、1であるサイズ、に等しくなるまで、空でないサブ立方体ボックスに対して繰り返し実行され得る。いくつかの例で、サイズが1であるサブ立方体ボックスは、ボクセルと呼ばれ、ボクセルよりも大きいサイズを有するサブ立方体ボックスは、非ボクセルと呼ばれ得る。
【0105】
図10は、本開示のいくつかの実施形態に従う八分木パーティション(1010)及び八分木パーティション(1010)に対応する八分木構造(1020)の例を示す。
図10は、八分木パーティション(1010)におけるパーティションの2つのレベルを示す。八分木構造(1020)は、八分木パーティション(1010)の立方体のボックスに対応するノード(N0)を含む。第1レベルで、立方体のボックスは、
図9に示される番号付け技術に従って0から7の番号を付されている8つのサブ立方体ボックスにパーティション化される。ノードN0のパーティションについての占有コードは、バイナリで「10000001」であり、これは、ノードN0-0によって表される第1サブ立方体ボックス及びノードN0-7によって表される第8サブ立方体ボックスが点群の中の点を含み、他のサブ立方体ボックスが空である、ことを示す。
【0106】
次いで、パーティションの第2レベルで、第1サブ立方体ボックス(ノードN0-0によって表される。)及び第8サブ立方体ボックス(ノードN0-7によって表される。)は、更に夫々8つのオクタントに細分される。例えば、第1サブ立方体ボックス(ノードN0-0によって表される。)は、
図9に示される番号付け技術に従って0から7の番号を付されている8つの、より小さいサブ立方体ボックスにパーティション化される。ノードN0-0のパーティションについての占有コードは、バイナリで「00011000」であり、これは、第4のより小さいサブ立方体ボックス(ノードN0-0-3によって表される。)及び第5のより小さいサブ立方体ボックス(ノード0-0-4によって表される。)が点群の中の点を含み、他のより小さいサブ立方体ボックスが空である、ことを示す。第2レベルだ、第8サブ立方体ボックス(ノードN0-7によって表される。)は、
図10に示されるように、同様に、8つの、より小さいサブ立方体ボックスにパーティション化される。
【0107】
図10の例で、空でない立方体空間(例えば、立方体ボックス、サブ立方体ボックス、より小さいサブ立方体ボックス、など)は、グレーで着色されており、影付きノードと呼ばれる。
【0108】
本開示のいくつかの態様に従って、占有コードは、適切なコーディング技術に従って適切に圧縮され得る。いくつかの実施形態で、算術エンコーダは、八分木構造内の現在のノードの占有コードを圧縮するために使用される。占有コードは、8ビット整数であるSとして表され得、Sの各ビットは、現在のノードの子ノードの占有状態を示す。実施形態において、占有コードは、ビットワイズのエンコードを用いてエンコードされる。他の実施形態では、占有コードは、バイトワイズのエンコードを用いてエンコードされる。いくつかの例(例えば、TMC13)で、ビットワイズのエンコードは、デフォルトで有効にされる。ビットワイズのエンコード及びバイトワイズのエンコードの両方が、占有コードをエンコードするためにコンテキストモデリングで算術コーディングを実行することができる。コンテキストステータスは、占有コードに対する全体のコーディングプロセスの開始時に初期化され得、占有コードのコーディングプロセス中に更新される。
【0109】
現在のノードの占有コードをエンコードするためのビットワイズのエンコードの実施形態では、現在のノードについてのSの8つのビットは、特定の順序でエンコードされる。Sの各ビットは、現在のノードの隣接ノード及び/又はそれらの隣接ノードの子ノードの占有ステータスを参照することによって、エンコードされる。隣接ノードは、現在のノードと同じレベルにあり、現在のノードの兄弟ノードと呼ばれ得る。
【0110】
現在のノードの占有コードをエンコードするためのバイトワイズのエンコードの実施形態では、占有コードS(1バイト)は、(1)P(例えば、32)個の最も頻繁に使用される占有コードを記録する適応ルックアップテーブル(A-LUT)と、(2)最新の異なった観測されたQ(例えば、16)個の占有コードを記録するキャッシュとを参照することによって、エンコードされ得る。
【0111】
バイトワイズのエンコードについてのいくつかの例で、バイナリフラグは、SがA-LUTにあるか又はエンコードされていないかを示す。SがA-LUTにある場合には、A-LUT内のインデックスが、二値算術エンコーダを使用することによってエンコードされる。SがA-LUT内にない場合には、バイナリフラグは、Sがキャッシュ内にあるか又はエンコードされていないかを示す。Sがキャッシュ内にある場合には、キャッシュ内のそのインデックスのバイナリ表現が、二値算術エンコーダを使用することによってエンコードされる。そうではなく、Sがキャッシュ内にない場合には、Sのバイナリ表現が、二値算術エンコーダを使用することによってエンコードされる。
【0112】
いくつかの実施形態で、デコーダ側では、デコードプロセスが、ビットストリームから境界ボックスの次元をパースすることによって開始することができる。境界ボックスは、点群のジオメトリ情報(例えば、点群の中の点についての占有情報)に従って立方体のボックスをパーティション化するための八分木構造内の根ノードに対応する立方体のボックスを示す。八分木構造は、次いで、デコードされた占有コードに従って立方体のボックスを細分することによって構成される。
【0113】
いくつかの関連する例(例えば、TMC13の変形)で、占有コードをコーディングするよう、八分木構造は、幅優先の順序でトラバースされる。幅優先の順序に従って、あるレベルでの八分木ノード(八分木構造内のノード)は、上のレベルにある全ての八分木ノードがアクセスされた後にアクセスされ得る。実施例では、先入れ先出し(Fist-In-First-Out,FIFO)データ構造が使用され得る。
【0114】
図11は、幅優先のコーディング順序を表す八分木構造(1100)の図を示す。八分木構造(1100)内の影付きノードは、空でない立方体空間に対応するノードである。影付きノードの占有コードは、
図11に示される0から8までの幅優先のコーディング順序でコーディングされ得る。幅優先のコーディング順序で、八分木ノードはレベルごとにアクセスされる。幅優先の順序は、現在のレベルが、上のレベルがコーディングされるのを待たなければならないので、それだけでは並列処理に適さない。
【0115】
本開示のいくつかの態様は、幅優先のコーディング順序の代わりに深さ優先のコーディング順序を用いてコーディングされる少なくとも1つのレベルを含むハイブリッドコーディング順序を提供する。よって、いくつかの実施形態で、深さ優先のコーディング順序によるレベルでのノードと、そのノードの子孫ノードとは、八分木構造のサブ八分木構造を形成することができる。深さ優先のコーディング順序によるレベルが、空でない立方体空間に夫々対応する複数のノードを含む場合に、複数のノード及びそれらの対応する子孫ノードは、複数のサブ八分木構造を形成することができる。複数のサブ八分木構造は、いくつかの実施形態で、並行してコーディングされ得る。
【0116】
図12は、深さ優先のコーディング順序を表す八分木構造(1200)の図を示す。八分木構造(1200)内の影付きノードは、空でない立方体空間に対応するノードである。八分木構造(1200)は、八分木構造(1100)と同じ、点群の占有ジオメトリに対応することができる。影付きノードの占有コードは、
図12に示される0からまでの深さ優先のコーディング順序でコーディングされ得る。
【0117】
図12の例で、ノード“0”は、PD0などの如何なる適切なパーティション深さにあることもでき、ノード“0”の子ノードは、パーティション深さPD0+1にあり、ノード“0”の孫ノードは、パーティション深さPD0+2にある。
図12の例で、パーティション深さPD0+1にあるノードは、深さ優先のコーディング順序でコーディングされ得る。パーティション深さPD0+1にあるノードは、空でない空間に対応する2つのノードを含む。その2つのノード及びそれらの夫々の子孫ノードは、第1サブ八分木構造(1210)及び第2サブ八分木構造(1220)を形成することができ、2つのノードは、2つのサブ八分木構造の根ノードと夫々呼ばれ得る。
【0118】
図12における深さ優先のコーディング順序は、深さ優先のコーディング順序のプレオーダーバージョンと呼ばれる。深さ優先のコーディング順序のプレオーダーバージョンでは、サブ八分木構造ごとに、サブ八分木の根ノードは、サブ八分木構造の子ノードにアクセスする前に最初にアクセスされる。更に、最も深いノードが最初にアクセスされ、次いで、親ノードの兄弟へさかのぼる。
【0119】
図12の例で、第1サブ八分木構造(1210)及び第2サブ八分木構造(1220)は、いくつかの実施で、並列処理においてコーディングされ得る。例えば、ノード1及びノード5は、同時にアクセスされ得る。いくつかの例で、再帰プログラミング又はスタックデータ構造は、深さ優先のコーディング順序を実装するために使用され得る。
【0120】
いくつかの実施形態で、ハイブリッドコーディング順序は、幅優先の横断(コーディング)から開始し、幅優先の横断のいくつかのレベルの後、深さ優先の横断(コーディング)が有効にされ得る。
【0121】
ハイブリッドコーディング順序は、TMC13に基づいたPCCシステム、MPEG-PCCに基づいたPCCシステム、などのような如何なる適切なPCCシステムで使用され得る、ことが留意されるべきである。
【0122】
本開示の態様に従って、ハイブリッドコーディング順序は、点群のジオメトリ情報をコーディングするために幅優先のコーディング順序及び深さ優先のコーディング順序の両方を含むことができる。実施形態において、八分木構造内のノードが幅優先のコーディング順序から深さ優先のコーディング順序へ変わるためのノードサイズが、指定され得る。例において、PCC中に、八分木構造のコーディングは、幅優先のコーディング順序から始まり、ノードサイズがコーディング順序変化のための特定のノードサイズに等しいレベルで、コーディング順序は、そのレベルで深さ優先のコーディング順序へ変わることができる。なお、ノードサイズは、いくつかの例では、パーティション深さに関連する。
【0123】
他の実施形態では、八分木構造内のノードが深さ優先のコーディング順序から幅優先のコーディング順序へ変わるためのノードサイズが、指定され得る。例において、PCC中に、八分木構造のコーディングは、深さ優先のコーディング順序から始まり、ノードサイズがコーディング順序変化のための特定のノードサイズに等しいレベルで、コーディング順序は、幅優先のコーディング順序へ変わることができる。なお、ノードサイズは、いくつかの例では、パーティション深さに関連する。
【0124】
より具体的には、幅優先のコーディング順序から始まる実施形態で、ノードサイズは、log2スケールで表現可能であり、d=0,1,・・・,M-1によって表される。ここで、M-1は、根ノードのノードサイズであり、Mは、八分木パーティション深さ(いくつかの例では、レベルとも呼ばれる。)の最大数である。更に、コーディング順序変化サイズと呼ばれるパラメータdtが定義され得る。例において、パラメータdt(1≦dt≦M-1)は、幅優先の順序がM-1からdtまでのサイズのノードに適用され、深さ優先の順序がdt-1から0までのサイズのノードに適用されることを指定するために使用される。dt=M-1であるとき、深さ優先のスキームが、根ノードからの全ての八分木ノードに適用される。dt=1であるとき、八分木構造は、幅優先のコーディング順序のみを用いてコーディングされる。
【0125】
いくつかの実施形態で、八分木構造のためのコーディング順序は、幅優先のコーディング順序から始まり、次いで、特定の深さ(特定のノードサイズに対応する)で、その特定の深さでの各ノード及びそのノードの子孫ノードが点群の別個のサブ八分木構造を形成する。よって、特定の深さでは、複数のサブ八分木構造が形成される。サブ八分木構造は、如何なる適切なコーディングモードも用いて別々にコーディングされ得る。例において、サブ八分木構造は、深さ優先のコーディング順序を用いてコーディングされ得る。他の例では、サブ八分木構造は、幅優先のコーディング順序を用いてコーディングされ得る。他の例では、サブ八分木構造は、ハイブリッドコーディング順序を用いてコーディングされ得る。他の例では、サブ八分木構造内の占有コードは、ビットワイズのコーディングスキームを用いてコーディングされ得る。他の例では、サブ八分木構造内の占有コードは、バイトワイズのコーディングスキームを用いてコーディングされ得る。他の例では、サブ八分木構造は、深さ優先の八分木コーディングモードの代替のコーディングモードである予測ジオメトリコーディング技術を用いてコーディングされ得る。予測ジオメトリコーディング技術は、いくつかの例では、コーディングされた修正ベクトルにより、前にコーディングされた隣接点に基づいて点を予測することができる。
【0126】
いくつかの実施形態で、エンコーダ側では、サブ八分木構造ごとに、エンコーダは、コーディング効率に基づいて複数のコーディングモードからコーディングモードを選択することができる。例えば、サブ八分木構造のための選択されたコーディングモードは、そのサブ八分木構造のための最良のコーディング効率を達成することができる。次いで、エンコーダは、サブ八分木構造を夫々コーディングするために、サブ八分木構造のための夫々選択されたコーディングモードを使用することができる。いくつかの実施形態で、エンコーダは、サブ八分木構造のインデックスをビットストリームでシグナリングすることができ、インデックスは、サブ八分木構造のための選択されたコーディングモードを示す。デコーダ側では、デコーダは、ビットストリーム内のインデックスに基づいて、サブ八分木構造のためのコーディングモードを決定し、次いで、コーディングモードに従ってサブ八分木構造をデコードすることができる。
【0127】
本開示の態様は、ハイブリッドコーディング順序のためのシグナリング技術も提供する。本開示の態様に従って、ハイブリッドコーディング順序で使用される制御パラメータは、シーケンスパラメータセット(SPS)、スライスヘッダ、ビットストリームのジオメトリパラメータセット、などのような高レベルシンタックスでシグナリングされ得る。なお、具体例で以下の記載で与えられる。具体例によって説明される開示された技術は、具体例に限定されず、他の例では、適切に調整及び使用され得る。
【0128】
実施形態において、パラメータdt(コーディング順序変化サイズ)は、高レベルシンタックスで指定される。
【0129】
図13は、本開示のいくつかの実施形態に従うジオメトリパラメータセットのシンタックス例(1300)を示す。(1310)によって示されるように、gps_depth_first_node_size_log2_minus_1は、ジオメトリパラメータセットで指定される。パラメータd
tは、例えば、(式1)に従って、gps_depth_first_node_size_log2_minus_1に基づいて決定され得る。
d
t=gps_depth_first_node_size_log2_minus_1+1
(式1)
【0130】
なお、gps_depth_first_node_size_log2_minus_1が0に等しいとき、深さ優先のコーディング順序は無効にされる。
【0131】
他の実施形態では、制御フラグは、ハイブリッドコーディング順序が使用されるかどうかを示すよう明示的にシグナリングされる。
【0132】
図14は、本開示のいくつかの実施形態に従うジオメトリパラメータセットの他のシンタックス例(1400)を示す。(1410)によって示されるように、gps_hybrid_coding_order_flagによって表される制御フラグが使用される。制御フラグgps_hybrid_coding_order_flagが真である(例えば、値1を有する)とき、ハイブリッドコーディング順序スキームは有効にされる。gps_hybrid_coding_order_flagが偽である(例えば、値0を有する)とき、ハイブリッドコーディング順序スキームは無効にされる。gps_hybrid_coding_order_flagが真である(例えば、値1を有する)とき、パラメータd
tは、例えば、(式2)に従って、gps_depth_first_node_size_log2_minus_2に基づいて決定され得る。
d
t=gps_depth_first_node_size_log2_minus_2+1
(式2)
gps_hybrid_coding_order_flagが偽である(例えば、値0を有する)とき、例において、d
tは、深さ優先のコーディング順序が無効にされ、幅優先のコーディング順序のみが適用されることを示すよう、デフォルトで1にセットされる。
【0133】
実施形態において、ハイブリッドコーディング順序が有効にされるとき、幅優先の順序は、M-1からdtまでのサイズのノードに適用され、深さ優先の順序は、dt-1から0までのサイズのノードに適用される。
【0134】
図15は、本開示のいくつかの実施形態に従う八分木コーディングのための擬似コード例(1500)を示す。(1510)によって示されるように、depth>=MaxGeometryOctreeDepth-d
tであるとき、深さ優先のコーディング順序は使用され得る。
図15の例で、擬似コード「geometry_node_depth_first」は、深さ優先のコーディング順序のために適用され得る。
【0135】
図16は、本開示のいくつかの実施形態に従う深さ優先のコーディング順序のための擬似コード例(1600)を示す。擬似コード「geometry_node_depth_first」は、再帰関数である。再帰関数において、「geometry_node」関数は、最初に、現在の八分木ノードについての占有コードを取得するために呼び出され、次いで、擬似コード「geometry_node_depth_first」は、例えば、depth>=MaxGeometryOctreeDepth-1であるとき、リーフノードに達するまで各子ノードをコーディングするためにそれ自体で呼び出される。
【0136】
図17は、本開示の実施形態に従うプロセス(1700)を概説するフローチャートを示す。プロセス(1700)は、点群のためのコーディングプロセス中に使用され得る。様々な実施形態で、プロセス(1700)は、端末デバイス(110)内の処理回路、エンコーダ(203)及び/又はデコーダ(210)の機能を実行する処理回路、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)の機能を実行する処理回路、などのような処理回路によって実行される。いくつかの実施形態で、プロセス(1700)は、ソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(1700)を実行する。プロセスは(S1701)から始まり、(S1710)へ進む。
【0137】
(S1710)で、点群についてのコーディングされたビットストリームが受け取られる。コーディングされたビットストリームは、点群についての八分木構造内のノードのエンコードされた占有コードの形でジオメトリ情報を含む。八分木構造内のノードは、点群の空間の3次元(3D)パーティションに対応する。ノードのサイズは、対応する3Dパーティションのサイズに関連する。
【0138】
(S1720)で、ノードの占有コードは、エンコードされた占有コードからデコードされる。第1ノードの子ノードの少なくとも第1占有コードは、第1ノードと同じノードサイズを有する第2ノードの第2占有コードのデコードを待たずに、デコードされる。
【0139】
実施形態において、子ノードは、第1サブ八分木内の第1の組のノード(第1の子孫ノード)の中の1つであり、第1ノードは第1サブ八分木の根である。第1ノード及び第2ノードは、同じノードサイズの兄弟ノードである。第2ノードは、第2の組のノード(第2の子孫ノード)を含む第2サブ八分木の根ノードである。次いで、いくつかの例で、第1の組のノードについての第1の組の占有コード及び第2の組のノードについての第2の組の占有コードは、別々にデコードされ得る。例において、第1の組のノードについての第1の組の占有コード及び第2の組のノードについての第2の組の占有コードは、並行してデコードされ得る。他の例では、第1の組のノードについての第1の組の占有コードは、第1コーディングモードを用いてデコードされ、第2の組のノードについての第2の組の占有コードは、第2コーディングモードを用いてデコードされる。
【0140】
第1コーディングモード及び第2コーディングモードは、深さ優先のコーディング順序、幅優先のコーディング順序、予測ジオメトリコーディング技術、などのうちのいずれかを使用することができる。いくつかの例で、コーディングされたビットストリームは、第1サブ八分木のための第1コーディングモードを示す第1インデックスと、第2サブ八分木のための第2コーディングモードを示す第2インデックスとを含む。
【0141】
他の実施形態では、第1ノード及び第2ノードは、コーディング順序変化のための特定のノードサイズを有する。いくつかの例で、ノードの中のより大きいノードは、第1コーディング順序を用いてコーディングされ、ノードの中のより小さいノードは、第2コーディング順序を用いてコーディングされる。より大きいノードのノードサイズはコーディング順序変化のための特定のノードサイズよりも大きい。より小さいノードのノードサイズは、コーディング順序変化のための特定のノードサイズ以下である。例において、第1コーディング順序は、幅優先のコーディング順序であり、第2コーディング順序は、深さ優先のコーディング順序である。他の例では、第1コーディング順序は、深さ優先のコーディング順序であり、第2コーディング順序は、幅優先のコーディング順序である。
【0142】
いくつかの例で、コーディング順序変化のための特定のノードサイズは、点群についてのコーディングされたビットストリームにおける信号に基づいて決定される。いくつかの例で、信号は、制御信号がコーディング順序の変化を示す場合に供給される。
【0143】
(S1730)で、八分木構造は、ノードのデコードされた占有コードに基づいて再構成され得る。
【0144】
(S1740)で、点群は、八分木構造に基づいて再構成される。次いで、プロセスは、(S1799)へ進んで終了する。
【0145】
上記の技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、
図18は、開示されている対象の特定の実施形態を実装するのに適したコンピュータシステム(1800)を示す。
【0146】
コンピュータソフトウェアは、1つ以上の中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって、直接に、又は解釈、マイクロコード実行などを通じて、実行され得る命令を含むコードを生成するように、アセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
【0147】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
【0148】
コンピュータシステム(1800)に関して
図18に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる限定も示唆することを意図しない。構成要素の構成は、コンピュータシステム(1800)の例示的な実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存又は要件を有するものとして解釈されるべきではない。
【0149】
コンピュータシステム(1800)は、特定のヒューマンインターフェース入力デバイスを含んでよい。かようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグロープ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、2次元映像、立体視映像を含む3次元映像)などの、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
【0150】
入力ヒューマンインターフェースデバイスは、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチスクリーン(1810)、データグローブ(図示せず。)、ジョイスティック(1805)、マイク(1806)、スキャナ(1807)、カメラ(1808)(各1つしか表されていない。)のうちの1つ以上を含んでよい。
【0151】
コンピュータシステム(1800)は、特定のヒューマンインターフェース出力デバイスも含んでよい。かようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。かようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1810)、データグローブ(図示せず。)、又はジョイスティック(1805)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ(1809)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により2次元視覚出力又は3次元よりも多い次元の出力を出力可能なスクリーン(1810))、及びプリンタ(図示せず。)を含んでよい。
【0152】
コンピュータシステム(1800)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(1821)を伴ったCD/DVD ROM/RW(1820)、サムドライブ(1822)、リムーバブルハードディスク又はソリッドステートドライブ(1823)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
【0153】
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
【0154】
コンピュータシステム(1800)は、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス(1849)(例えば、コンピュータシステム(1800)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(1800)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(1800)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
【0155】
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(1800)のコア(1840)へ取り付けられ得る。
【0156】
コア(1840)は、1つ以上の中央演算処理装置(CPU)(1841)、グラフィクス処理ユニット(GPU)(1842)、フィールドプログラマブルゲートエリア(FPGA)(1843)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1844)、グラフィクスアダプタ(1850)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1845)、ランダムアクセスメモリ(RAM)(1846)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(1847)とともに、システムバス(1848)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(1848)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(1848)へ直接に又はペリフェラルバス(1849)を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
【0157】
CPU(1841)、GPU(1842)、FPGA(1843)、及びアクセラレータ(1844)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(1845)又はRAM(1846)に記憶され得る。一時データもRAM(1846)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(1847)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU(1841)、GPU(1842)、大容量記憶装置(1847)、ROM(1845)、RAM(1846)などと密接に関連し得る。
【0158】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
【0159】
例として、限定としてではなく、アーキテクチャ(1800)、具体的にはコア(1840)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。かようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(1847)又はROM(1845)などの、非一時的な性質であるコア(1840)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1840)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(1840)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(1846)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することとを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジック(例えば、アクセラレータ(1844))の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
【0160】
本開示は、いくつかの例示的な実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。