(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-05
(45)【発行日】2024-12-13
(54)【発明の名称】点群の欠損点をエンコードするおよび再構成するための方法およびデバイス
(51)【国際特許分類】
H04N 19/597 20140101AFI20241206BHJP
H04N 19/70 20140101ALI20241206BHJP
G06T 17/10 20060101ALI20241206BHJP
【FI】
H04N19/597
H04N19/70
G06T17/10
(21)【出願番号】P 2021518752
(86)(22)【出願日】2019-10-04
(86)【国際出願番号】 US2019054637
(87)【国際公開番号】W WO2020072865
(87)【国際公開日】2020-04-09
【審査請求日】2022-10-04
(32)【優先日】2018-10-05
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-03-14
(33)【優先権主張国・地域又は機関】EP
【前置審査】
(73)【特許権者】
【識別番号】318017914
【氏名又は名称】インターデイジタル ヴィーシー ホールディングス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ヤニック オリヴィエ
(72)【発明者】
【氏名】ジャン-クロード シュヴェ
(72)【発明者】
【氏名】ジョアン リャック
【審査官】松元 伸次
(56)【参考文献】
【文献】国際公開第2019/069711(WO,A1)
【文献】Rufael Mekuria et al.,Design, Implementation, and Evaluation of a Point Cloud Codec for Tele-Immersive Video,IEEE Transactions on Circuits and Systems for Video Technology,IEEE,2016年03月16日,Volume: 27, Issue: 4,pp. 831-833,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7434610,IEL Online (IEEE Xplore)
【文献】Sebastian Schwarz et al.,2D Video Coding of Volumetric Video Data,2018 Picture Coding Symposium (PCS),IEEE,2018年06月24日,pp. 62-63,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8456265,IEL Online (IEEE Xplore)
(58)【調査した分野】(Int.Cl.,DB名)
G06T9/00-11/40
15/00-17/00
17/10-17/30
H04N7/12
19/00-19/98
(57)【特許請求の範囲】
【請求項1】
-点群の点の境界となるバウンディングボックスを複数の細分に細分することと、
-前記点群の少なくとも1つの点の属性を表すデータを、前記少なくとも1つの点が属する細分を参照することによってエンコードすることであって、前記細分の前記少なくとも1つの点の3D座標は、ジオメトリ画像においてエンコードされたパッチにおける前記細分の基準点の座標から取得された微分座標としてエンコードされる、ことと
を備えることを特徴とする方法。
【請求項2】
各細分に含まれる点の数を表すデータをエンコードすることをさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
前記バウンディングボックスの前記細分は、前記点をエンコードするのに使用されるエンコーダーのビット深度に依存することを特徴とする請求項1に記載の方法。
【請求項4】
点の属性は、ジオメトリまたは前記点のテクスチャ/色情報に対応することを特徴とする請求項1に記載の方法。
【請求項5】
-点群の点の境界となるバウンディングボックスを複数の細分に細分することと、
-前記点群の少なくとも1つの点の属性を表すデータを、前記少なくとも1つの点が属する細分を参照することによってエンコードすることであって、前記細分の前記少なくとも1つの点の3D座標は、ジオメトリ画像においてエンコードされたパッチにおける前記細分の基準点の座標から取得された微分座標としてエンコードされる、ことと
のために構成されたプロセッサーを備えたことを特徴とする装置。
【請求項6】
前記プロセッサーは、各細分に含まれる点の数を表すデータをエンコードすることのためにさらに構成されることを特徴とする請求項5に記載の装置。
【請求項7】
前記バウンディングボックスの前記細分は、前記点をエンコードするのに使用されるエンコーダーのビット深度に依存することを特徴とする請求項5に記載の装置。
【請求項8】
点の属性は、ジオメトリまたは前記点のテクスチャ/色情報に対応することを特徴とする請求項5に記載の装置。
【請求項9】
-点群の点の属性を表すデータを、前記点が属する細分を参照することによってデコードすることであって、前記細分は、前記点群の前記点の境界となるバウンディングボックスを分割することによって取得される複数の細分のうちの1つである、ことと、
-前記デコードされたデータから前記点群の少なくとも1つの点の属性を再構成することであって、デコードされたジオメトリ画像から前記細分に対するパッチを取得すること、および、前記パッチのピクセル値から取得された微分座標と、前記パッチの基準点の座標とから前記少なくとも1つの点の3D座標を取得すること、を含む、ことと
を備えることを特徴とする方法。
【請求項10】
前記バウンディングボックスの各細分に含まれる点の数を表すデータをデコードすることと、前記点の数からさらに点の属性を再構成することとをさらに備える特徴とする請求項9に記載の方法。
【請求項11】
点の属性は、少なくとも1つのジオメトリおよび属性画像をデコードすることによって、前記再構成された点群の点を再構成する前記デコードされたデータから再構成されることを特徴とする請求項9に記載の方法。
【請求項12】
前記バウンディングボックスの前記細分は、前記点をエンコードするのに使用されるエンコーダーのビット深度に依存することを特徴とする請求項9に記載の方法。
【請求項13】
点の属性は、ジオメトリまたは前記点のテクスチャ/色情報に対応することを特徴とする請求項9に記載の方法。
【請求項14】
-点群の点の属性を表すデータを、前記点が属する細分を参照することによってデコードすることであって、前記細分は、前記点群の前記点の境界となるバウンディングボックスを分割することによって取得される複数の細分のうちの1つである、ことと、
-前記デコードされたデータから前記点群の少なくとも1つの点の属性を再構成することであって、デコードされたジオメトリ画像から前記細分に対するパッチを取得すること、および、前記パッチのピクセル値から取得された微分座標と、前記パッチの基準点の座標とから前記少なくとも1つの点の3D座標を取得すること、を含む、ことと
のために構成されたプロセッサーを備えたことを特徴とする装置。
【請求項15】
前記プロセッサーは、前記バウンディングボックスの各細分に含まれる点の数を表すデータをデコードすることと、前記点の数からさらに点の属性を再構成することとのためにさらに構成されることを特徴とする請求項14に記載の装置。
【請求項16】
点の属性は、少なくとも1つのジオメトリおよび属性画像をデコードすることによって、前記再構成された点群の点を再構成する前記デコードされたデータから再構成されることを特徴とする請求項14に記載の装置。
【請求項17】
前記バウンディングボックスの前記細分は、前記点をデコードするのに使用されるデコーダーのビット深度に依存することを特徴とする請求項14に記載の装置。
【請求項18】
点の属性は、ジオメトリまたは前記点のテクスチャ/色情報に対応することを特徴とする請求項14に記載の装置。
【請求項19】
コンピュータープログラムであって、前記プログラムが1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーに、
-点群の点の属性を表すデータを、前記点が属する細分を参照することによってデコードすることであって、前記細分は、前記点群の前記点の境界となるバウンディングボックスを分割することによって取得される複数の細分のうちの1つである、ことと、
-前記デコードされたデータから前記点群の少なくとも1つの点の属性を再構成することであって、デコードされたジオメトリ画像から前記細分に対するパッチを取得すること、および、前記パッチのピクセル値から取得された
微分座標と、前記パッチの基準点の座標とから前記少なくとも1つの点の3D座標を取得すること、を含む、ことと
を含む方法を実行させる命令を含むことを特徴とするコンピュータープログラム。
【請求項20】
1つまたは複数のプロセッサーに、
-点群の点の属性を表すデータを、前記点が属する細分を参照することによってデコードすることであって、前記細分は、前記点群の前記点の境界となるバウンディングボックスを分割することによって取得される複数の細分のうちの1つである、ことと、
-前記デコードされたデータから前記点群の少なくとも1つの点の属性を再構成することであって、デコードされたジオメトリ画像から前記細分に対するパッチを取得すること、および、前記パッチのピクセル値から
微分取得された座標と、前記パッチの基準点の座標とから前記少なくとも1つの点の3D座標を取得すること、を含む、ことと
を行わせるための命令を含むことを特徴とする非一時的なコンピューター読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本態様は、一般に、点群の点についてコーディングすることおよび再構成することに関する。特に、排他的ではないが、本態様の技術分野は、3Dオブジェクトの外面を表す点群についてエンコードすること/再構成することに関する。
【背景技術】
【0002】
本節は、読み手に、以下に説明されるおよび/または主張される本態様の種々の様相に関することがある技術の種々の様相を、紹介することが意図される。議論は、読み手に、本態様の種々の様相についての、より良い理解を容易にする背景情報を提供するのに役立つと思われる。したがって、陳述が、今述べた見方において読まれ、先行技術の承認としてではないことは理解されるべきである。
【0003】
点群は、ある座標系における点(データ点)の集合である。3次元座標系(3D空間)において、通常、今述べた点は、3Dオブジェクトの外面を表すことが意図される。多くの場合、点群の各点は、その位置(3D空間におけるX、Y、およびZ座標)によって定義され、ことによると、例えばRGBまたはYUV色空間において表される色、透明度、反射率、2成分の法線ベクトルなどのような他の関連する属性によって定義される。
【0004】
(X,Y,Z)が3D空間における色付き点の座標を定義し、(R,G,B)または(Y,U,V)が今述べた色付き点の色を定義する場合、点群を、6成分の点(X,Y,Z,R,G,B)または等価な(X,Y,Z,Y,U,V)の集合として表すのは、いつものことである。
【0005】
点群は、クラウドが時間に関して発達するかどうかに従って、静的または動的であり得る。動的な点群の場合には、点の数が、一定ではなくが、それどころか、一般的に時間によって発達することは、注意されるべきである。ゆえに、動的な点群は、点の集合についての時間順のリストである。
【0006】
実際に、点群は、例えば、彫像または建物のようなオブジェクトが、それを送るまたはそこを訪れることなくオブジェクトの空間構成を共有するために、3Dにてスキャンされる文化遺産/建物など、種々の目的に対して使用されることがある。さらに、破壊されることがある場合のオブジェクト、たとえば地震による寺院についての知識を保存することを確実にする方法でもある。通常、上記の点群は、静的、色付き、および巨大である。
【0007】
別のユースケースは、3D表現を使用して、マップが、平面に限定されず、起伏を含むことがある地形図および地図作成においてである。今では、Googleマップは、3Dマップの良い例であるが、点群の代わりにメッシュを使用する。それにもかかわらず、点群は、3Dマップに適したデータフォーマットであることがあり、通常、上記の点群は、静的、色付き、および巨大である。
【0008】
さらに、自動車産業および自動運転車は、点群が使用されることがある領域でもある。自動運転車は、すぐ近くの隣接している現実に基づいて優秀な運転決定をする環境を「プローブ」できるべきである。LIDARのような通常のセンサーは、決定エンジンによって使用される動的な点群を生成する。今述べた点群は、人間によって見られることが意図されず、通常、小さく、必ずしも色付けされず、高頻度のキャプチャによって動的である。今述べた点群は、LIDARによって提供される反射率のような他の属性を、この属性が、感知されたオブジェクトの材料についての良い情報であり、決定を助け得るように有することがある。
【0009】
仮想現実およびイマーシブワールド(immersive world)は、最近、ホットな話題になり、多数の人々によって未来の2D平面ビデオとして予見されている。基本的な理解は、見る人を、彼が彼の前にて仮想世界を見ることだけが可能である標準的なテレビと対比して、彼の周りのすべての環境に没入させることである。環境中の見る人の自由に従う没入感において、いくつかの段階的変化がある。色付き点群は、仮想現実(またはVR)の世界を分配するための良いフォーマットの候補である。それらは、静的または動的であることがあり、通常、平均的なサイズであり、一度にたった数百万の点と言われている。
【0010】
点群圧縮は、ビットストリームのサイズが実際の格納/送信をエンドユーザーに可能にするのに十分に小さい場合にのみ、イマーシブワールドのための3Dオブジェクトを格納すること/送信することに成功するだろう。
【0011】
エクスペリエンスについて容認できる(またはできれば、とても良い)質を維持する一方、ビットレートについて合理的な消費によって、動的な点群をエンドユーザーに分配できることは、極めて重要である。今述べた動的な点群についての効率の良い圧縮は、イマーシブワールドのディストリビューションチェーン(distribution chain)を現実的にするためのキーポイントである。
【0012】
画像ベースの点群圧縮技術は、圧縮効率と低複雑性との組み合わせのために、ますますよく用いられるようになっている。それらは、次の2つの主なステップによって進行する。最初に、点群、すなわち点を、点群の点に関連付けられた属性を表す2D画像上へ射影(直交射影)する。例えば、少なくとも1つのジオメトリ画像は、点群のジオメトリ、すなわち3D空間における点の空間座標を表し、少なくとも1つの属性画像は、点群の点に関連付けられた別の属性、たとえば、それらの点に関連付けられたテクスチャ/色情報を表す。次に、今述べた技術は、上記の深度画像および属性画像を、従来のビデオエンコーダーによってエンコードする。
【0013】
画像ベースの点群圧縮技術は、例えば、HEVC(「ITU-T H.265 ITU電気通信標準化部門(2014年10月)、Hシリーズ:オーディオビジュアル及びマルチメディアシステム、オーディオビジュアルサービスのインフラストラクチャ-ムービングビデオのコーディング、高効率ビデオコーディング、ITU-T H.265勧告」)のような2Dビデオエンコーダーの性能を最大限利用することによって、優秀な圧縮性能を達成する一方、同時に、簡単な射影体系を使用することによって複雑さを低く保つ。
【0014】
画像ベースの点群圧縮技術についての1つの難問は、特に、点分布が多くの折り目を有する表面(衣類におけるような凹/凸領域)に沿うときに、または点分布が表面にまったく沿わない(毛皮または髪におけるような)ときに、点群が画像上への射影に適さないことがある。今述べた状況において、画像ベースの点群圧縮技術は、(多くの小さな射影が必要とされ、2Dビデオ圧縮の効率が下がる)低い圧縮効率、または(点群を表面上へ射影することのむずかしさのために)劣った品質に苦しむ。
【0015】
今述べた問題を軽減するために最新の状況において使用される1つのアプローチは、複数のジオメトリおよびテクスチャ情報を、画像の同一の空間的な位置(画素)上へ射影することにある。今述べたことは、いくつかのジオメトリおよび/または属性画像が、点群の点毎に生成されることがあることを意味する。
【0016】
例えば、今述べたことは、ISO/IEC JTC1/SC29/WG11 MPEG2018/N17767、リュブリャナ、2018年7月において定義されたように、いわゆるテストモデルカテゴリ2の点群エンコーダー(TMC2)の場合である。
【0017】
TMC2において、点群が、射影平面上へ直交射影される。次に、2つの深度値、最も近い点に関連付けられた深度値(最小深度値)を表す1つと、最も遠い点の深度値(最大深度値)を表すもう1つとが、前述の射影平面の座標毎に関連付けられる。次に、第1のジオメトリ画像が、最小深度値(D0)から生成され、第2のジオメトリ画像が、D1-D0が最大の表面の厚さ以下である状態の最大深度値(D1)の絶対値から生成される。さらに、第1および第2の属性画像も、第1(D0)および第2(D1)のジオメトリ画像に関連して生成される。次に、属性画像とジオメトリ画像との両方が、例えば、HEVCのような従来のどんなビデオコーデックでも使用して、エンコードされ、デコードされる。ゆえに、点群のジオメトリは、前述のデコードされた第1および第2のジオメトリ画像のdeprojection によって再構成され、再構成される点群の点に関連付けられた他の属性は、デコードされた属性画像から取得される。
【発明の概要】
【0018】
下記は、本態様のいくつかの様相の基本的な理解を提供するために、本態様の簡略化された摘要を与える。本摘要は、本態様の外延的な概観ではない。本態様の重要なまたは重大な要素を確認することは意図されない。単に、次の摘要は、以下に提供される、より詳細な説明の前段階として、本態様のいくつかの様相を簡略化されたかたちにおいて与える。
【0019】
本態様は、従来技術の欠点の少なくとも1つを、次を含む方法によって改善することに着手する。
-点群の点の境界となるバウンディングボックスを複数の細分に細分すること、
-点の属性を表すデータを、前述の点が属する細分を参照することによってエンコードすること、および
-各細分に含まれる点の数を表すデータをエンコードすること。
【0020】
態様に従って、さらに、方法は、前述の点の属性を表すデータを含む単一の2Dパッチを取得することを含む。
【0021】
態様に従って、さらに、方法は、前述の細分が前述の点のうちの少なくとも1つを含むときに、細分に対して2Dパッチを取得することを含む。
【0022】
態様に従って、前述のバウンディングボックスの細分は、点をエンコードするのに使用されるエンコーダーのビット深度に依存する。
【0023】
態様に従って、点の属性は、前述の点のジオメトリまたはテクスチャ/色情報に対応する。
【0024】
態様に従って、点は、入力点群の点と再構成される点群の点とを比較することによって取得され、前述の再構成される点群は、次によって取得される。
-射影平面上への前記入力点群のいくつかの点の射影によって、少なくとも1つのジオメトリおよび属性画像を取得すること、
-前記少なくとも1つのジオメトリおよび属性画像をエンコードすること、ならびに
-前記少なくとも1つのジオメトリおよび属性画像をデコードすることによって、前記再構成される点群の点を再構成すること。
【0025】
別の様相に従って、本態様の少なくとも1つは、次を含む方法に関する。
-点群の点の属性を表すデータを、前記点が属する細分を参照することによってデコードすることであって、前記細分は、前記点群の前記点の境界となるバウンディングボックスを分割することによって取得される複数の細分のうちの1つである、ことと、
-前述のバウンディングボックスの各細分に含まれる点の数を表すデータをデコードすること、および
-前記デコードされたデータから点の属性を再構成することと。
【0026】
態様に従って、点の属性は、少なくとも1つのジオメトリおよび属性画像をデコードすることによって、再構成される点群の点を再構成する前述のデコードされたデータから再構成される。
【0027】
態様に従って、点の属性を再構成することは、デコードされたジオメトリ画像から細分に対して2Dパッチを取得することと、画素値2Dパッチから取得される座標と2Dパッチの基準点の座標とから点の3D座標を取得することをさらに含む。
【0028】
態様に従って、さらに、方法は、前述の細分が前述の点のうちの少なくとも1つを含むときに、細分に対して2Dパッチを取得することを含む。
【0029】
態様に従って、前述のバウンディングボックスの細分は、点をデコードするのに使用されるデコーダーのビット深度に依存する。
【0030】
態様に従って、点の属性は、前述の点のジオメトリまたはテクスチャ/色情報に対応する。
【0031】
他の様相に従って、本態様は、装置、ビットストリーム、コンピュータープログラム製品、および非一時的な読み取り可能な媒体に関する。
【0032】
本態様の特定の本質は、本態様の他の対象、利点、特徴、および使用も同様に、添付の図面と共に得られる例についての次の説明から明らかになるだろう。
【0033】
図面において、本態様の例が例示される。それは、次を示す。
【図面の簡単な説明】
【0034】
【
図1】本態様の例に係る点群の点の属性をエンコードする方法100のステップについての図を概略的に示す。
【
図2】本態様の例に係るビットストリームから点群を表すデータをデコードする方法200のステップについての図を概略的に示す。
【
図3】本態様の例に係る通信ネットワークを介して通信する2つのリモートデバイスを示す。
【
図4】本態様の例に係る信号のシンタックスを示す。
【
図5】本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【
図6】本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【
図7】本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【
図8】本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【
図9】本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【
図10】本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【
図11】本態様の例に係る種々の様相および態様が実装されるシステムの例についてのブロック図を例示する。
【発明を実施するための形態】
【0035】
同様のまたは同一の要素は、同一の参照符号により参照される。
【0036】
本態様は、本態様の例が示される状態において、添付の図面を参照して、以下に、より完全に説明されるだろう。しかしながら、本態様は、多くの代替のかたちにおいて具体化されることがあり、本明細書に述べられる実施例に限定されるとして解釈されてはならない。従って、本態様は、種々の変更および代替のかたちの影響を受けやすいが、それらの特定の例は、図面において例として示され、本明細書にて詳細に説明される。しかしながら、本態様を開示される特定のかたちに限定する意図はなく、それどころか、本明細書は、特許請求の範囲によって定義されるように、本態様の精神および範囲内にあるすべての変更、同等、および代替に及ぶことが理解されるべきである。
【0037】
本明細書にて使用される術語は、特定の例だけを説明する目的のためにあり、本態様の限定を加えさせるつもりはない。本明細書にて使用される単数形「a」、「an」、および「the」は、明らかに文脈が特に示さない限り、複数形を同様に含むことが意図される。さらに、本明細書にて使用されるときの用語「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(includes)」は、述べられる特徴、整数、ステップ、演算、要素、および/またはコンポーネントの存在を明記するが、1つまたは複数の他の特徴、整数、ステップ、演算、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除しないことが理解されるだろう。さらにその上、要素が、別の要素に「応答する」または「連結される」と言われるとき、他の要素に直に応答するまたは連結されることが可能である、またはその間の要素が与えられることがある。対照として、要素が、他の要素に「直に応答する」または「直に連結される」と言われるとき、その間の要素の提供がない。本明細書にて使用される用語「および/または」は、関連した列挙される項目のうちの1つまたは複数のどんな組み合わせでも、およびすべての組み合わせを含み、「/」と略されることがある。
【0038】
用語の第1の、第2のなどは、本明細書にて種々の要素を説明するのに使用されることがあり、これらの要素は、これらの用語によって限定されてはならないことが理解されるだろう。今述べた用語は、1つの要素をもう1つのものと区別するのに使用されるのみである。例えば、第1の要素は、第2の要素と呼ばれることが可能だろう、および同様に、第2の要素は、本態様の教えから逸脱することなく、第1の要素と呼ばれることが可能だろう。
【0039】
図のいくつかは、通信の主要な方向を示すために通信経路上に矢印を含むが、通信は、描かれた矢印と反対方向に生じ得ることが理解される。
【0040】
いくつかの例は、各ブロックが、回路の要素か、モジュールか、特定の論理関数(複数可)を実装するための1つまたは複数の実行可能な命令を含むコードの一部かを表すブロック図、および動作のフローチャートに関して説明される。さらに、他の実装にて、ブロックに言及される関数(複数可)は、言及される順序から外れて生じ得ることも注意されるべきである。例えば、実際に、連続して示される2つのブロックは、実質的に同時に実行されることがある、またはときどきブロックは、含まれる機能性に従って反対の順序に実行されることがある。
【0041】
本明細書にて、「例にしたがって」または「例において」への言及は、実施例に関連して説明される特定の特徴、構造、または特性が、本態様の少なくとも1つの実装に含まれることが可能であることを意味する。本明細書の種々の場所における語句「例にしたがって」または「例において」の出現は、必ずしもすべて同一の例を参照していないが、別個のまたは代替の例も、必ずしも他の例について相互排他的でない。
【0042】
特許請求の範囲に現れる参照符号は、例示としてのみであり、特許請求の範囲に限定的な効果を有さないことになっている。
【0043】
明示的に説明されないが、本実施例および異形は、どんなコンビネーションまたはサブコンビネーションにおいてでも用いられ得る。
【0044】
以下において、用語「画像領域」は、少なくとも1つの画像についての画素のセットを示す。今述べた画素は、同一の画像についてまたは同一でない画像について、隣接のピクセルであり得るまたはあり得ないおよび/または属することがあるまたは属さないことがあるが、それらのすべては、少なくとも1つの共通のプロパティを共有する。
【0045】
例えば、全画像自体が画像領域であると考えられることがある。さらに、画像は、複数のブロックに分割されることもあり、次に、ブロックまたはブロックのグループが画像領域である。
【0046】
さらに、画像領域は、長方形ではない形状を有することもある。例えば、今述べたことは、同一の(または類似の)抽出された特徴を有する画像の画素が関連付けられて画像領域を形作る場合である。画像領域は、TMC2において定義されるようなパッチであり得る。
【0047】
画像から抽出される特徴の例は、色、テクスチャ、法線ベクトルなどであり得る。
【0048】
いくつかの図は、TMC2に従うビットストリームの構造を定義するためにTMC2において広く使用されるシンタックステーブルを表す。今述べたシンタックステーブルにて、用語「・・・」は、TMC2において与えられた元の定義に関して変更のない部分、および読みやすくするために図において取り除かれた部分を意味する。図において太字の用語は、この用語の値が、ビットストリームを構文解析することによって、取得されることを示す。シンタックステーブルの右列は、シンタックスエレメントのデータをエンコードするためのビット数を示す。例えば、u(4)は、4ビットが、データをエンコードするのに使用され、u(8)は、8ビットが、データをエンコードするのに使用されることを示し、ae(v)は、コンテキスト適応算術エントロピー符号化されたシンタックスエレメントを示す。
【0049】
本明細書にて使用されるシンタックスエレメントは、記述的な用語である。上記のような、それらは、他のシンタックスエレメント名の使用を排除しない。
【0050】
本態様は、点群を表す1つまたは複数のジオメトリ画像および1つまたは複数の属性画像をエンコードすること/デコードすることに対して説明されるが、点群のシーケンスのうちの点群のジオメトリ(2つのジオメトリ画像)および属性(2つの属性画像)が、点群のシーケンスのうちの別の点群のジオメトリ(2つのジオメトリ画像)および属性(2つの属性画像)は別として、次にエンコードされる/デコードされるので、点群のシーケンス(時間的に動的な点群)を表すジオメトリ画像の2つのシーケンス(ビデオ)および属性画像の2つのシーケンス(ビデオ)についてエンコードすること/デコードすることへ拡張する。
【0051】
点群をエンコードするおよび/または再構成するとき、データが失われることがあり、これは入力点群の部分的な再構成に至る。情報の上記の損失は、入力点群をレンダリングするときに問題を生成することがある。
【0052】
TMC2は、非可逆圧縮のシナリオに対して優れたレート歪み性能を提供する。しかしながら、可逆圧縮が必要とされるとき、多数のパッチが孤立点(欠損点)をキャプチャするために作成される必要があるので、圧縮性能は、著しく下がる。
【0053】
他の代替は、孤立点と、(射影平面上への点の射影について結果として生じる)「正則」パッチにおいてキャプチャされるそれらとの間の潜在的な相関を考慮することなく、孤立点を特別なパッチとしてエンコードする。基本的な理解は、TMC2を使用することによって点群を射影平面上へ射影することと、点群の欠損点(孤立点)を、すなわち、ジオメトリ/属性画像によって表されない点をキャプチャすることとである。各欠損点/孤立点のX座標、続いてY座標および最後にZ座標は、単一のベクトルの中へ積み重ねられ、「欠損点」パッチを意味する「特別」パッチが生成される。次に、今述べたパッチは、10ビット4:2:0ジオメトリ画像の単一チャネル(コンポーネント)に格納される(より詳しくは、ISO/IEC JTC1/SC29/WG11 MPEG2018/m42680 2018年4月、サンディエゴ、カリフォルニア州、米国を参照のこと)。
【0054】
今述べた代替は、欠損点の座標の範囲を、最大範囲(いつもの10ビット4:2:0ビデオフォーマットが使用されるとき1024)に限定する。欠損点/孤立点の座標が絶対値として格納される、すなわち、格納される座標値が、点群の境界となるバウンディングボックスの原点(0,0,0)から定義されるので、今述べたことは、強調である。
【0055】
一般的に言って、少なくとも1つの態様は、欠損点/孤立点の属性をエンコードする/再構成する方法に関するが、さらに方法は、点群のうちのどんな他の点についても属性をエンコードする/再構成することを適用することがある。ゆえに、方法は、点群の点の属性をエンコードする(および再構成する)ために、例えば、TMC2のような画像ベースの点群圧縮技術に対する代替であると考えられることがある。さらに、方法は、点群の可逆圧縮を提供すること(欠損点をエンコードすること)によって、非可逆的な画像ベースの点群圧縮技術、例えば、TMC2などを改良する手段として考えられることがある。
【0056】
エンコードの方法は、エンコードされる点の境界となるバウンディングボックスを細分し、点の属性を表すデータを、前述の点が属する細分を参照することによってエンコードし、各細分に含まれる点の数を表すデータをエンコードする。
【0057】
デコードの方法は、点の前述の属性を表すエンコードされたデータを、点が属する細分を参照することによってデコードする。前述の細分は、前述の点の境界となるバウンディングボックスを分割することによって取得される複数の細分のうちの細分である。さらに、方法は、前述のバウンディングボックスの各細分に含まれる点の数を表すエンコードされたデータをデコードし、前述のデコードされたデータから点を再構成する。
【0058】
エンコードされる点の境界となるバウンディングボックスを細分することと、点の属性を表すデータを、前述の点が属する細分を参照することによってエンコードすることとは、点の属性を表すために必要なビット数を減らす。例えば、今述べた点の座標値の範囲は、今述べた座標が、今述べた点が属する細分の基準点から定義されることがあり、バウンディングボックスの基準点から定義されないことがありされるので、先行技術と比較して縮小されることがある。
【0059】
本発明は、ビデオTMC2点群エンコーダーにより符号化されるビデオのビット深度は別として、どんなサイズでもPointCloud画像/ビデオについて可逆エンコードすることを可能にする。
【0060】
図1は、本態様の例に係る入力点群の少なくともいくつかの点の属性をエンコードする方法100の動作についての図を概略的に示す。
【0061】
動作は、より広いエンコードの処理の一部であることがあり、
図13の装置13000によって実装されることがある。
【0062】
動作110において、前述の点の属性は、エンコーダーM1によってエンコードされる。属性は、ジオメトリ(または視点までの深度または距離)情報および/またはテクスチャ(または色)情報に対応することがある。例えば、点は、TMC2において説明されるようなConnected Components(TMC2を参照)として「クラスタリング」され、エンコードされる。例えば、各連結成分の点は、射影平面上に射影されることがあり、射影された点の属性は、ジオメトリおよび属性画像の少なくとも1つの組のいわゆる2Dパッチ(画素のセット)に格納される。さらに、2Dパッチを取得するのに使用される射影パラメーターを表すメタデータは、エンコーダーM1によってエンコードされることもある。例えば、エンコーダーM1は、次のような従来のエンコーダーに従う。
・JPEG、仕様書 ISO/CEI 10918-1 UIT-T T.81勧告、https://www.itu.int/rec/T-REC-T.81/en、
・AVC、MPEG-4 AVC、またはh264とも呼ばれる。UIT-T H.264とISO/CEI MPEG-4 第10部(ISO/CEI14496-10)との両方に指定される、http://www.itu.int/rec/T-REC-H.264/en、
・HEVC(仕様書は、ITUのウェブサイト、T勧告、Hシリーズ、h265、http://www.itu.int/rec/T-REC-H.265-201612-I/enにおいて見つけられる)、または
・3D-HEVC(仕様書が、ITUのウェブサイト、T勧告、Hシリーズ、h265、http://www.itu.int/rec/T-REC-H.265-201612-I/en annex GおよびIにおいて見つけられるHEVCの拡張)。
【0063】
動作120において、エンコーダーM1によりエンコードされたデータは、デコーダーM2によってデコードされ、点群は、デコードされたデータから、すなわち、デコードされた少なくとも1つのジオメトリ/属性画像から取得されるデコードされた属性からと、例えばTMC2において明らかにされるような、射影パラメーターを表すメタデータとから再構成される。デコーダーM2は、エンコーダーM1に応じて、例えば、次のような従来のデコーダーに従う。
・JPEG、
・AVC、MPEG-4 AVC、またはh264とも呼ばれる、
・HEVC、または
・3D-HEVC(HEVCの拡張)。
【0064】
モジュールM3によって実装される動作130において、再構成された点群は、入力点群と比較される。再構成された点群において、入力点群に存在している欠損点が検出されることがある。
【0065】
動作140において、動作130にて検出された欠損点の境界となるバウンディングボックスは、複数の細分に細分される。
【0066】
態様に従って、欠損点の境界となるバウンディングボックスは、入力点群の境界となるバウンディングボックスに対応することがある。
【0067】
態様に従って、バウンディングボックスは、複数のサブキューブ(sub-cube)に細分される立方体(またはより一般的には平行四辺形)に対応することがある。
【0068】
態様に従って、バウンディングボックスの細分は、例えば、入力点群および/または欠損点の点をエンコードするのに使用されるエンコーダーのビット深度(通常、8ビット/10ビット)などの特定のビット深度にぶら下がることがある。ゆえに、細分(例えば、サブキューブの面)のサイズおよび/または寸法は、前述の特定のビット深度を超えない(たかだか前述の最大ビット数を使用して表されることがある)。
【0069】
ゆえに、方法は、TMC2におけるジオメトリおよび属性画像をエンコードするために使用されるエンコーダーの制約(ビット深度)に合わせて変えられることがある。
態様に従って、バウンディングボックスは、八分木ベースの方法を使用してサブキューブに分割される。
【0070】
基本的に、立方体は、再帰的に8つのより小さなサブキューブに分割される。リーフキューブ(leaf cube)は、その中に少なくとも1つの欠損点があるかどうかに従って、占められ留意されるまたはされない。
【0071】
態様において、オクトツリー深度(octree depth)は、一定の値である。
【0072】
今述べた態様の異形にて、キューブインデックス(cube index)は、サブキューブ毎に送られる。
【0073】
今述べた態様の異形にて、トラバーサルオーダー(traversal order)、たとえば、深度優先(depth-first)または幅優先)が、送られる、または仮定される。
【0074】
今述べた態様の異形にて、オクトツリー深度が送られる。
【0075】
態様において、オクトツリー深度は、変数である。
【0076】
今述べた態様の異形にて、分割している八分木の占めたリーフが送られる。
【0077】
今述べた態様の異形にて、欠損点においてパッチをあてるインデックスがなく、トラバーサルオーダーと同じ順序においてメタデータにパッチをあてる。
【0078】
異形にて、八分木の深度は、入力点群および/または欠損点をエンコードするのに使用されるエンコーダーのビット深度に依存する。
【0079】
態様に従って、クラスタリングアルゴリズムは、ビデオコーデックの入力ビット深度(nがビット深度に等しければ2n)に従うサブキューブの次の最大サイズの限定を尊重しつつ、「欠損点」パッチの数を最小にするおよび/または符号化された欠損点のエネルギーを最小にするサブキューブの内側の欠損点を再グループ化するのに使用されることがある。今述べたアルゴリズムにより、サブキューブの原点が、完全に制限されているわけではない。「欠損点」パッチの数を最小にすることは、エンコードのビットレートを減少させる。
【0080】
動作150において、1つまたは複数の2Dパッチが、モジュールM5によって取得される。1つまたは複数のパッチは、前述の各欠損点の属性を表すデータを含む。
【0081】
一例に従って、単一の2Dパッチが取得される。
【0082】
別の例に従って、1つの2Dパッチは、前述の細分が前述の欠損点のうちの少なくとも1つを含むときに、バウンディングボックスの細分に対して取得される(または生成される)。
【0083】
態様に従って、細分に関係のある2Dパッチに属する点の属性を表すデータは、次のようにエンコードされる。
【0084】
各欠損点に対して、今述べた欠損点の属性を表すデータは、格納され、「欠損点」パッチ(単一の2Dパッチ、または細分に関係のある2Dパッチ)のピクセルに関連付けられる。次に、今述べたデータは、「欠損点」パッチの基準点を参照することによって表され得る。例えば、欠損点の座標は、考慮される欠損点を含む細分の基準点から計算されたdx、dyおよびdzの微分座標によって表される。各欠損点のdX座標、続いてdY座標および最後にdZ座標は、単一のベクトルの中へ積み重ねられる。次に前述の細分が属するすべての欠損点に対して生成されるすべてのベクトルは、「欠損点」パッチを生成するのに使用される。
【0085】
次に、すべての「欠損点」パッチ(細分毎に1つ)は、ジオメトリ画像にパックされ、ゆえに、入力点群の少なくともいくつかの点の属性(ステップ110)を表す「正則」パッチと、欠損点の属性を表す「欠損点」パッチとを含む。
【0086】
動作160において、欠損点の属性を表すデータは、欠損点が属する細分を参照することによってエンコードされる。さらに、各細分に含まれる欠損点の数を表すデータは、エンコーダーM6によってエンコードされることもある。
【0087】
欠損点の属性を表すデータをエンコードするために使用される次のアルゴリズムは、次のように、例示的な目的のために与えられる。
-コードへの入力点群が20483サイズの1つバウンディングボックスに含まれ、ビデオコーデックが10ビットの深度を有する場合(例えば、HEVC main10)
-バウンディングボックスは、10243サイズの8つのサブキューブに分割され得る
-各サブキューブに対して
〇内部に少なくとも1つの欠損点がある場合
・ボンディングボックス(bonding box)にサブキューブの位置を格納するMissingPointsPatchオブジェクトを作成する
・サブキューブの原点(u1,v1,d1)を更新する
・欠損点の数を更新する
・ジオメトリ画像に2DパッチのMissingPointsPatchを作成する(パッキングアルゴリズム)
・デコード処理に役立つジオメトリ画像における位置(u0,v0)を更新する
・次のように、ジオメトリ画像における各欠損点(X,Y,Z)の微分座標(dX,dY,dZ)を順次加える
〇dX=X-u1,dY=Y-v1,dZ=Z-d1
・属性画像において対応する属性(カラー成分(R,G,B))を順次加える。
【0088】
ビットストリームBTが取得される。それは、欠損点の属性を表すエンコードされたデータを含む。前述のエンコードされたデータは、欠損点が属する細分に関係する。おそらく各細分に含まれる欠損点の数を表すデータもエンコードされる。
【0089】
ビットストリームBTは、例えば、デコードの目的のために、および/または再構成される点群のレンダリングのために送信され得る。
【0090】
例えば、
図1のエンコードの方法は、TMC2に従って、エンコードの処理に組み入れられることがある。
【0091】
図2は、本態様の例に係る点群の点の属性をデコードする方法200の動作についての図を概略的に示す。
【0092】
動作210において、デコーダーM7は、ビットストリームBTに含まれるエンコードされたデータをデコードすることがある。ビットストリームBTは、
図1の方法の出力であり得る。前述のエンコードされたデータは、点の属性を表す。
【0093】
さらに、ビットストリームBTは、点の境界となるバウンディングボックスを細分することによって取得される複数の細分のうちの各細分に含まれる点の数を表すエンコードされたデータを含むこともある。
【0094】
デコーダーM7は、各細分に含まれる点の数と、点の属性を表すエンコードされたデータとを、点が属する細分を参照することによってデコードする。
デコーダーM7は、
図1のデコーダーM2に対応することがあり、例えば、次のような従来のデコーダーに従う。
・JPEG、
・AVC、MPEG-4 AVC、またはh264とも呼ばれる、
・HEVC、または
・3D-HEVC(HEVCの拡張)。
【0095】
モジュールM8によって実装される動作220において、入力点群の少なくとも一部は、先行する動作にて取得されたデコードされたデータから再構成される。ゆえに、再構成された点群
【0096】
【0097】
は、再構成されたバージョンにおいて少なくとも欠損点を含む。
【0098】
例えば、
図2のデコードの方法は、TMC2に従って、デコード処理に組み入れられることがある。
【0099】
態様に従って、欠損点は、次のように、欠損点の属性を代表するデコードされたデータから、細分を参照することによって再構成され得る。
【0100】
「欠損点」パッチは、デコードされたジオメトリ画像からデコードされる。次に、欠損点に関係のある座標のベクトルは、「欠損点」パッチから取得され、今述べた欠損点に関係のあるdX、dY、dZ座標は、ベクトルから検索される。
【0101】
次に、欠損点の3D座標(Xrec,Yrec,Zrec)は、dX、dY、dZ座標を、「欠損点」パッチの基準点の座標(u1,v1,z1)(PatchList[i]の要素)に加えることによって与えられる。
Xrec=dX+PatchList[i].u1
Yrec=dY+PatchList[i].v1
Zrec=dZ+PatchList[i].d1
再構成される点の関連する属性は、属性画像から、例えば(Xrec,Yrec)に位置された画素値として取得される。
【0102】
態様に従って、「欠損点」パッチは、前述の細分が少なくとも1つの欠損点を含むときに、細分に対して取得される。
【0103】
態様に従って、バウンディングボックスの細分は、欠損点をデコードするのに使用されるデコーダーのビット深度に依存する。
【0104】
態様に従って、欠損点の属性は、前述の欠損点のジオメトリまたはテクスチャ/色情報に対応する。
【0105】
図3に例示される本態様の例に従って、通信ネットワークNETを介して2つのリモートデバイスAおよびB間の送信のコンテキストにて、デバイスAは、
図1との関係において説明された方法を実装するように構成されるメモリーRAMおよびROM間の関係におけるプロセッサーを含み、デバイスBは、
図2との関係において説明された方法を実装するように構成されるメモリーRAMおよびROM間の関係におけるプロセッサーを含む。
【0106】
例にしたがって、ネットワークは、依然として、デバイスBを含むデコードデバイスへのデバイスAからのピクチャまたはビデオピクチャの放送に合わせて変えられる放送ネットワークである。
【0107】
デバイスAによって送信されることが意図される信号は、ビットストリームBTを運ぶ。ビットストリームBTは、点群の点の深度値と、点群の少なくとも1つの再構成された点と、少なくとも1つの再構成された点の近傍における少なくとも1つの点が、少なくとも1つの他の補間点によってどれくらい近接されているかを示す少なくとも1つの補間の符号化モードとを表す符号化されたデータを含む。
【0108】
例えば、前述の符号化されたデータは、
図1との関係において明らかにされたように取得される。
【0109】
図4は、データがパケットベースの送信プロトコルを介して送信されるときの上記の信号のシンタックスについての例を示す。各送信パケットPは、ヘッダーHおよびペイロードPAYLOADを含む。上記の信号に含まれるシンタックスエレメントの例は、TMC2において与えられる。
【0110】
欠損点のジオメトリ(2D位置)を再構成するために、デコーダーは、すべての欠損点を再構成する各「欠損点」パッチに対して、細分の基準点(x1,y1,z1)(通常、原点)と欠損点の数(num_of_mps)とを知る必要がある。
【0111】
TMC2の複数のシンタックスエレメントは、欠損点を再構成するために必要なエンコードされたデータを運ぶのに使用される。
【0112】
図5は、本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【0113】
今述べたシンタックスエレメントは、TMC2において定義される「group_of_frames_auxiliary_information」シンタックスエレメントに基づく。
【0114】
シンタックスエレメントpatch_countは、「欠損点」パッチを含むパッチの総数を示す。シンタックスエレメントmps_patch_countは、ジオメトリ画像における「欠損点」パッチの数を示し、さらに、シンタックスエレメントnum_of_mps[i]は、各「欠損点」パッチiにおける欠損点の数を示すために加えられる。ジオメトリ画像における(「patch_count-mps_patch_count」からの)最後のパッチは、「欠損点」パッチである。
【0115】
図6は、本態様に係る点群のすべての欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【0116】
今述べたシンタックスエレメントは、TMC2において定義される「group_of_frames_auxiliary_information」シンタックスエレメントに基づく。
【0117】
態様において、最後のパッチは、ジオメトリ画像における「欠損点」パッチである。
【0118】
シンタックスエレメントpatch_countは、「欠損点」パッチを除いたパッチの総数を示す。シンタックスエレメントmps_patch_countは、ジオメトリ画像における「欠損点」パッチの数を示し、さらに、シンタックスエレメントnum_of_mps[i]は、各「欠損点」パッチiにおける欠損点の数を示すために加えられる。ジオメトリ画像における(「patch_count-mps_patch_count」からの)最後のパッチは、「欠損点」パッチである。
【0119】
図7は、本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【0120】
今述べたシンタックスエレメントは、TMC2において定義される「sequence parameter set」シンタックスエレメントに基づく。
【0121】
シンタックスエレメントsps_pcm_multiple_patch_present_flagは、Multiple PCM パッチが使用されているかどうかを示す。
【0122】
シンタックスエレメントsps_pcm_relative_3D_offsetは、3DオフセットがPCMパッチシンタックスにおいて絶対的にまたは相対的に送信されるかどうかを示す。値0が絶対モードを示し、値1が相対モードを示す(オフセット値が1つのインデックスにより符号化される)。
【0123】
シンタックスエレメントsps_pcm_relative_3D_offsetは、PCMパッチの最大数を示す。今述べた値は、モードsps_pcm_relative_3D_offset_flagが1に設定されるときに、PCMパッチインデックスをエンコードするために使用される。
【0124】
図8は、本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【0125】
今述べたシンタックスエレメントは、TMC2において定義される「patch_frame_data_unit」シンタックスエレメントに基づく。
【0126】
追加されるシンタックス(灰色の影が付けられた領域)は、追加のタイプのパッチデータユニットについての構文解析をすることを加え、EOMテクスチャパッチの存在を信号により送るのに使用される。
【0127】
図9は、本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【0128】
今述べたシンタックスエレメントは、TMC2において定義される「pcm_patch_data_unit」シンタックスエレメントに基づく。
【0129】
図10は、本態様に係る点群の欠損点を再構成するデコーダーによって必要とされる情報を運ぶのに使用されるシンタックスエレメントの例を示す。
【0130】
今述べたシンタックスエレメントは、TMC2において定義される「pcm_patch_data_unit」シンタックスエレメントに基づく。
【0131】
次のように、追加のデータが導入される。
pdu_3d_pcm_shift_tangent_axis[frmIdx][patchIndex]は、接線軸に沿ったパッチフレームfrmIdxのインデックスpを有するパッチにおける再構成されたPCMパッチポイントに適用されるシフトを指定する。Pdu_3d_shift_tangent_axis[frmIdx][p]の値は、0からMin(2pfh_3d_shift_tangent_axis_bit_count_minus1[frmIdx]+1,2gps_geometry_3d_coordinates_bitdepth_minus1+1-1)までの範囲でなければならない。
pdu_3d_pcm_shift_bitangent_axis[frmIdx][patchIndex]は、従接線(bitangent)軸に沿ったパッチフレームfrmIdxのインデックスpを有するパッチにおけるPCM再構成パッチポイントに適用されるシフトを指定する。pdu_3d_shift_bitangent_axis[frmIdx][patchIndex]の値は、0からMin(2pfh_3d_shift_bitangent_axis_bit_count_minus1[frmIdx]+1,2gps_geometry_3d_coordinates_bitdepth_minus1+1-1)までの範囲でなければならない。
pdu_3d_pcm_shift_normal_axis[frmIdx][patchIndex]は、法線軸に沿ったパッチフレームfrmIdxのインデックスpを有するパッチにおけるPCM再構成パッチポイントに適用されるシフトを指定する。pdu_3d_shift_normal_axis[frmIdx][patchIndex]の値は、0からMin(2pfh_3d_shift_normal_axis_bit_count_minus1[frmIdx]+1,2gps_geometry_3d_coordinates_bitdepth_minus1+1-1)までの範囲でなければならない。
dpdu_3d_relative_shift_index[frmIdx][patchIndex]は、3つの3Dシフト値(接線、従接線、および法線)を計算することを可能にするインデックスを指定する。xxxxxにおいて説明される今述べたインデックスのデコード処理は、次の3つのパラメーターを計算する。
・pdu_3d_pcm_shift_tangent_axis[frmIdx][p]
・pdu_3d_pcm_shift_bitangent_axis[frmIdx][p]
・pdu_3d_pcm_shift_normal_axis[frmIdx][p]
【0132】
態様に従って、エンコードの方法は、1つの追加パッチ、欠損点の属性を表すOEMテクスチャパッチを生成することがある。今述べたパッチは、属性画像にパックされることがある。さらに、前述の追加パッチに対するパッチ情報がエンコードされることもある。
【0133】
態様に従って、デコードの方法は、上に説明したシンタックスのうちの1つに従うOEMテクスチャパッチを取得することがある。欠損点の属性は、EOMテクスチャパッチにおけるパラメーター(ならびにソートおよびラスタライゼーションモードのような結局は固定されるパラメーター)に従って、前述のEOMテクスチャパッチから取得されることがある。
【0134】
態様に従って、dpdu_3d_relative_shift_indexは、次のようにデコードされる。
今述べた処理への入力は、次である。
dpdu_3d_relative_shift_index
geometry_parameter_set()からのgps_geometry_nominal_2d_bitdepth_minus1
geometry_parameter_set()からのgps_geometry_3d_coordinates_bitdepth_minus1
今述べた処理の出力は、次である。
pdu_3d_pcm_shift_tangent_axis
pdu_3d_pcm_shift_bitangent_axis
pdu_3d_pcm_shift_normal_axis
【0135】
dpdu_3d_relative_shift_indexは、デコードされるインデックスを指定する。gps_geometry_nominal_2d_bitdepth_minus1は、すべてのジオメトリビデオが変換されなければならないノミナルな2Dビット深度を示す。gps_geometry_nominal_2d_bitdepth_minus1は、0から31までの範囲でなければならない。gps_geometry_3d_coordinates_bitdepth_minus1は、再構成された点群のジオメトリ座標のビット深度を示す。gps_geometry_3d_coordinates_bitdepth_minus1は、0から31までの範囲でなければならない。
【0136】
再構成された点群のバウンディングボックスは、サブキューブのセットに分割されることがある。各サブキューブは、1つのインデックスによってインデックスをつけられる。今述べたインデックスのデコードをすることの結果は、各サブキューブ(3D PCMボックス)の3D位置を与える。
【0137】
再構成された点群のバウンディングボックスのサイズは、再構成された点群パラメーター(gps_geometry_3d_coordinates_bitdepth_minus1)の3D座標のビット深度が与えられることがある。
【0138】
3D PCMボックスのサイズは、ジオメトリビデオパラメーター(gps_geometry_nominal_2d_bitdepth_minus1)のビット深度によって与えられることがある。3D PCMボックスの面は、2gps_geometry_nominal_bitdepth_minus1+1に等しい。
【0139】
だから、gps_geometry_3d_coordinates_bitdepth_minus1とgps_geometry_nominal_2d_bitdepth_minus1との違いは、1つの3D軸における3D位置インデックスの数を示す。
n = gps_geometry_3d_coordinates_bitdepth_minus1 - gps_geometry_nominal_2d_bitdepth_minus1;
pdu_3d_pcm_shift_normal_axis = (dpdu_3d_relative_shift_index & 2n-1)
*2gps_geometry_nominal_bitdepth_minus1+1;
pdu_3d_pcm_shift_tangent_axis = (dpdu_3d_relative_shift_index & (2n-1) << (2n-1))
*2gps_geometry_nominal_bitdepth_minus1+1
pdu_3d_pcm_shift_bitangent_axis = (dpdu_3d_relative_shift_index & 2*(2n-1) << (2n-1))
*2gps_geometry_nominal_bitdepth_minus1+1
例)
gps_geometry_3d_coordinates_bitdepth_minus1 = 14;
2gps_geometry_nominal_bitdepth_minus1 = 10;
pdu_3d_pcm_shift_normal_axis = (index & 0x000f) * 1024);
pdu_3d_pcm_shift_tangent_axis = (index & 0x00f0) * 1024);
pdu_3d_pcm_shift_bitangent_axis = (index & 0x0f00) * 1024);
今述べた例にて、各3D座標は、4ビットにより符号化される。
【0140】
0x0123に等しいインデックス値は、次の結果を与える。
pdu_3d_pcm_shift_normal_axis = 3 * 1024 = 3072、
pdu_3d_pcm_shift_tangent_axis = 2 * 1024 = 2048、
pdu_3d_pcm_shift_bitangent_axis = 1 * 1024 = 1024、
【0141】
態様に従って、点群の点は、以下のようにPCM符号化パッチから再構成される。
今述べた処理への入力は、次である。
gFrame、デコードされたジオメトリフレーム
aFrame、デコードされた属性フレーム
recPc、再構成された点群における点のリストを保有するためのコンテナー。
【0142】
pointsAdded、再構成された点群における点のリストにすでに加えられた点の数を示す変数。
【0143】
patch、点が検索され、再構成された点群における点のリストに加えられるパッチ(処理は、入力パッチがPCM符号化パッチであることを仮定する)。
【0144】
今述べた処理の出力は、recPCにおいて可逆的に再構成された点群である。
最初に、パッチ情報は、次のように検索される。
pdu_2d_shift_u = patch.pdu_2d_shift_u
pdu_2d_shift_v = patch.pdu_2d_shift_v
Patch2dSizeU = patch.pdu_3d_shift_tangent_axis - patch.pdu_2d_shift_u
Patch2dSizeV = patch.pdu_3d_shift_bitangent_axis - patch.pdu_2d_shift_v
occupancyResolution = patch.occupancy_resolution
Lossless_geometry_444フラグが0に等しいならば、点は、TMC2の箇条0において指定される4:4:4フォーマットを使用して、ジオメトリフレームに格納されたPCM符号化パッチから検索される。
【0145】
4:4:4ジオメトリフレームに格納されたPCM符号化パッチからの点の検索
PCM符号化パッチからの点は、検索され、次のように再構成された点群に加えられる。
3d_pcm_shift [0] = pdu_3d_pcm_shift_tangent_axis
3d_pcm_shift [1] = pdu_3d_pcm_shift_bitangent_axis
3d_pcm_shift [2] = pdu_3d_pcm_shift_normal_axis
for( x = Patch2dShiftU ; x < Patch2dShiftU + Patch2dSizeU; x++ )
for( y = Patch2dShiftV ; y < Patch2dShiftV + Patch2dSizeV; y++ )
if( oFrame[ y ][ x ] != 0 ){
for( i = 0; i < 3; i++ )
point[ i ] = gFrame[ 0 ][ i ][ y ][ x ] + 3d_pcm_shift[i]
}
【0146】
図11は、種々の様相および態様が実装されるシステムの例についてのブロック図を例示する。システム11000は、以下に説明される種々のコンポーネントを含むデバイスとして具体化されることが可能であり、本出願にて説明される1つまたは複数の様相を行うように構成される。上記のデバイスの例は、限定されないが、例えば、パーソナルコンピューター、ラップトップコンピューター、スマートフォン、タブレットコンピューター、デジタルマルチメディアセットトップボックス、デジタルテレビ放送受信機、パーソナルビデオレコーディングシステム、連結される家庭用電気機器、およびサーバーなどの種々の電子デバイスを含む。システム11000のエレメントは、単独にまたは組み合わせにて、単一の集積回路、複数のIC、および/または個別のコンポーネントに具体化されることが可能である。例えば、少なくとも1つの態様にて、システム11000の処理およびエンコーダー/デコーダーエレメントは、複数のICおよび/または個別のコンポーネントにわたって分散される。種々の態様にて、システム11000は、例えば、通信バスを介して、または専用の入力および/もしくは出力ポートを介して、他の同様のシステムに、または他の電子デバイスに通信接続される。種々の態様にて、システム11000は、本文書に説明される1つまたは複数の様相を実装するように構成される。
【0147】
システム11000は、例えば、本文書に説明される種々の様相を実装するためにロードされる命令を実行するように構成された少なくとも1つのプロセッサー11010を含む。プロセッサー11010は、埋め込まれたメモリー、入出力インターフェイス、および当技術分野にて知られているような種々の他の回路を含むことが可能である。システム11000は、少なくとも1つのメモリー11020(たとえば、揮発性メモリーデバイス、および/または不揮発性メモリーデバイス)を含む。システム11000は、限定ではないが、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ、磁気ディスクドライブ、および/または光ディスクドライブを含む不揮発性メモリーおよび/または揮発性メモリーを含むことが可能であるストレージデバイス11040を含む。ストレージデバイス11040は、非限定の例として、内部ストレージデバイス、付属のストレージデバイス、および/またはネットワークアクセス可能なストレージデバイスを含むことが可能である。
【0148】
システム11000は、例えば、エンコードされたビデオまたはデコードされたビデオを提供するデータを処理するように構成されたエンコーダー/デコーダーモジュール11030を含み、エンコーダー/デコーダーモジュール11030は、独自のプロセッサーおよびメモリーを含むことが可能である。エンコーダー/デコーダーモジュール11030は、エンコード機能および/またはデコード機能を行うデバイスに含まれることが可能であるモジュール(複数可)を表す。既知であるように、デバイスは、エンコードモジュールおよびデコードモジュールのうちの1つまたは両方を含むことが可能である。加えて、エンコーダー/デコーダーモジュール11030は、システム11000の別個のエレメントとして実装されることが可能である、または当業者に知られているようにハードウェアおよびソフトウェアの組み合わせとしてプロセッサー11010内に組み入れられることが可能である。
【0149】
本文書に説明される種々の様相を行うプロセッサー11010またはエンコーダー/デコーダー11030上にロードされるプログラムコードは、ストレージデバイス11040に格納され、続いてプロセッサー11010による実行のためにメモリー11020上にロードされることが可能である。種々の態様にしたがって、1つまたは複数のプロセッサー11010、メモリー11020、ストレージデバイス11040、およびエンコーダー/デコーダーモジュール11030は、本文書に説明されるプロセスの実行中に1つまたは複数の種々のアイテムを格納することが可能である。上記の格納されるアイテムは、限定しないが、入力ビデオ、デコードされたビデオ、点群、再構成された点群またはデコードされたビデオの一部、ビットストリーム、行列、変数、ならびに等式、公式、演算、および操作ロジックの処理からの中間または最終の結果を含むことが可能である。
【0150】
いくつかの態様にて、プロセッサー11010および/またはエンコーダー/デコーダーモジュール11030の内部のメモリーは、命令を記憶し、エンコードするまたはデコードする間に必要とされる処理にワーキングメモリーを提供するのに使用される。
【0151】
しかしながら、他の態様にて、処理デバイス(例えば、処理デバイスは、プロセッサー11010またはエンコーダー/デコーダーモジュール11030のいずれかであることが可能である)の外部のメモリーは、1つまたは複数の今述べた機能ために使用される。外部メモリーは、メモリー11020および/またはストレージデバイス11040、例えば、ダイナミック型揮発性メモリーおよび/または不揮発性フラッシュメモリーであることが可能である。いくつかの態様にて、外部不揮発性フラッシュメモリーを使用して、テレビのオペレーティングシステムを格納する。少なくとも1つの態様にて、例えば、RAMのような高速外部ダイナミック型揮発性メモリーは、例えば、MPEG-2、HEVC、VVC(Versatile Video Coding)またはTMC2のためのようなビデオ符号化およびデコード演算のためのワーキングメモリーとして使用される。
【0152】
システム11000のエレメントへの入力は、ブロック11130に示されるように、種々の入力デバイスを介して提供されることが可能である。上記の入力デバイスは、限定ではないが、(i)例えば、放送局によって無線を介して送信されるRF信号を受信するRF部分、(ii)複合入力端子、(iii)USB入力端子、および/または(iv)HDMI入力端子を含む。
【0153】
種々の態様にて、ブロック11130の入力デバイスは、当技術分野にて知られているそれぞれの入力処理エレメントを関連付けている。例えば、RF部分は、(i)望まれる周波数を選択する(信号を選択する、または信号を周波数の帯域に帯域制限するとも言われる)、(ii)選択された信号をダウンコンバートする、(iii)(例えば、)ある態様にてチャネルと言われることが可能である単一の周波数帯域を選択する周波数のより狭い帯域に再び帯域制限する、(iv)ダウンコンバートされ帯域制限された信号を復調する、(v)誤り訂正を行う、および(vi)逆多重してデータパケットについて望まれるストリームを選択するために必要なエレメントに関連付けられることが可能である。種々の態様のRF部分は、今述べた機能を行う1つまたは複数のエレメント、例えば、周波数セレクター、信号セレクター、バンドリミッター、チャネルセレクター、フィルター、ダウンコンバーター、デモジュレーター、エラーコレクター、およびデマルチプレクサーを含む。RF部分は、例えば、受信信号を、より低い周波数(例えば、中間周波数もしくはベースバンドに近い周波数)に、またはベースバンドにダウンコンバートすることを含む、種々の機能を行うチューナーを含むことが可能である。
【0154】
1つのセットトップボックスの態様にて、RF部分および関連する入力処理エレメントは、ワイヤード媒体(例えば、ケーブル)を介して送信されるRF信号を受信し、フィルタリングし、ダウンコンバートし、および望まれる周波数帯域に再びフィルタリングすることによって周波数選択を行う。
【0155】
種々の態様は、上述した(および他の)要素の順序を再配置し、今述べた要素のいくつかを取り除き、および/または同様のまたは異なる機能を行う他の要素を加える。
【0156】
要素を加えることは、例えば、増幅器、およびアナログデジタル変換器を挿入することなど、既存の要素の間に要素を挿入することを含むことが可能である。種々の態様にて、RF部分は、アンテナを含む。
【0157】
追加として、USBおよび/またはHDMI端末は、システム11000を他の電子デバイスにUSBおよび/またはHDMIをわたって連結するために、それぞれのインターフェイスプロセッサーを含むことが可能である。入力処理の種々の様相、例えば、リードソロモン誤り訂正が、例えば、別個の入力処理IC内に、または必要に応じてプロセッサー11010内に実装されることが可能であることは、理解されることである。同様に、USBまたはHDMIインターフェイス処理の様相は、別個の入力処理IC内に、または必要に応じてプロセッサー11010内に実装されることが可能である。復調された、誤り訂正された、および逆多重されたストリームは、例えば、プロセッサー11010と、メモリーおよびストレージエレメントと協働して動作して必要に応じて出力デバイスにおける提出のためにデータストリームを処理するエンコーダー/デコーダー11030とを含む種々の処理エレメントに提供される。
【0158】
システム11000の種々のエレメントは、統合されたハウジング内に提供されることが可能である。統合されたハウジング内において、種々のエレメントは、相互接続され、適切な連結配列、例えば、I2Cバス、配線、およびプリント回路基板を含む当技術分野にて知られている内部バスを使用して、そこの間においてデータを送信することが可能である。
【0159】
システム11000は、他のデバイスとの通信を、通信チャネル11060を介して可能にする通信インターフェイス11050を含む。通信インターフェイス11050は、限定ではないが、データを、通信チャネル11060を介して送信するようにおよび受信するように構成されたトランシーバーを含むことが可能である。通信インターフェイス11050は、限定ではないが、モデムまたはネットワークカードを含むことが可能であり、通信チャネル11060は、例えば、ワイヤードおよび/またはワイヤレス媒体内に実装されることが可能である。
【0160】
データは、種々の態様にて、例えば、IEEE802.11のようなWi-Fiネットワークを使用して、システム11000にストリーミングされる。今述べた態様のWi-Fi信号は、Wi-Fi通信に合わせて変えられる通信チャネル11060および通信インターフェイス11050を介して受信される。通常、今述べた態様の通信チャネル11060は、ストリーミングアプリケーションおよび他のオーバーザトップ通信を可能にするために、インターネットを含む外側のネットワークへのアクセスを提供するアクセスポイントまたはルーターに連結される。
【0161】
他の態様は、ストリーミングされたデータをシステム11000に、入力ブロック11130のHDMI接続を介してデータを配信するセットトップボックスを使用して提供する。
【0162】
依然として、他の態様は、ストリーミングされたデータをシステム11000に、入力ブロック11130のRF接続を使用して提供する。
【0163】
システム11000は、出力信号を、ディスプレイ11100、スピーカー11110、および他の周辺デバイス11120を含む種々の出力デバイスに提供することが可能である。態様の種々の例にて、その他の周辺デバイス11120は、1つまたは複数のスタンドアロンDVR、ディスクプレーヤー、ステレオシステム、照明システム、およびシステム11000の出力に基づいて機能を提供する他のデバイスを含む。
【0164】
種々の態様にて、制御信号は、システム11000と、ディスプレイ11100、スピーカー11110、または他の周辺デバイス11120との間において、例えば、AV.Link、CEC、またはユーザーの介入の有無にかかわらずデバイスツーデバイス制御を可能にする他の通信プロトコルのようなシグナリングを使用して通信される。
【0165】
出力デバイスは、それぞれのインターフェイス11070、11080、および11090を通じて専用のコネクションを介してシステム11000に通信接続されることが可能である。
【0166】
代替として、出力デバイスは、システム11000に、通信チャネル11060を使用して通信インターフェイス11050を介して連結されることが可能である。ディスプレイ11100およびスピーカー11110は、システム11000のその他のコンポーネントにより単一のユニットにおいて、例えば、テレビのような電子デバイスにおいて統合されることが可能である。
【0167】
種々の態様にて、ディスプレイインターフェイス11070は、例えば、タイミングコントローラ(T Con)チップのようなディスプレイドライバーを含む。
【0168】
代替として、ディスプレイ11100およびスピーカー11110は、例えば、入力11130のRF部分が別個のセットトップボックスの一部であるならば、1つまたは複数のその他のコンポーネントから分離されることが可能である。ディスプレイ11100およびスピーカー11110が外部コンポーネントである種々の態様にて、出力信号は、例えば、HDMIポート、USBポート、またはCOMP出力を含む専用の出力コネクションを介して提出されることが可能である。
【0169】
本明細書にて説明される種々の処理および特徴の実装は、いろいろな別々の装置またはアプリケーションにおいて具体化され得る。上記の装置の例は、エンコーダー、デコーダー、デコーダーからの出力を処理するポストプロセッサー、エンコーダーへの入力を提供するプリプロセッサー、ビデオコーダー、ビデオデコーダー、ビデオコーデック、ウェブサーバー、セットトップボックス、ラップトップ、パーソナルコンピューター、携帯電話、PDA、およびピクチャまたはビデオまたは他の通信デバイスを処理するためのどんな他のデバイスでも含む。明確にすべきであるので、装置は、可動であることがあり、移動車両に取り付けられることさえあり得る。
【0170】
追加として、方法は、プロセッサーによって行われる命令によって実装されることがあり、上記の命令(および/または実装によって生成されるデータ値)は、コンピューター読み取り可能な記録媒体において格納されることがある。コンピューター読み取り可能な記録媒体は、1つまたは複数のコンピューター読み取り可能な媒体(複数可)に具体化され、コンピューターによって実行可能である具体化されたコンピューター読み取り可能なプログラムコードを有するコンピューター読み取り可能なプログラム製品のかたちをとることが可能である。本明細書にて使用されるコンピューター読み取り可能な記録媒体は、その中に情報を格納する固有の能力を、そこから情報の検索を提供する固有の能力も同様に与えられた非一時的な記録媒体と考えられる。例えば、コンピューター読み取り可能な記録媒体は、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体システム、アパラタス、またはデバイス、または前述のどんな適切な組み合わせでもあることが可能である。次は、本発明の態様を適用することが可能であるコンピューター読み取り可能な記録媒体のより具体的な例を提供するが、ポータブルコンピューターディスケット、ハードディスク、読み出し専用メモリー(ROM)、書き換え可能な 読み出し専用メモリー(EPROMまたはフラッシュメモリー)、ポータブルコンパクトディスク読み出し専用メモリー(CD-ROM)、光学ストレージデバイス、磁気ストレージデバイス、または前述のどの適切な組み合わせをとっても、当業者によって容易に理解されるように、単なる例示であり、網羅的なリストではないことは理解されることである。
【0171】
命令は、プロセッサー読み取り可能な媒体において明白に具体化されたアプリケーションプログラムを形成することがある。
【0172】
例えば、命令は、ハードウェア、ファームウェア、ソフトウェア、または組み合わせの中にあることがある。例えば、命令は、オペレーティングシステム、別個のアプリケーション、または両者の組み合わせに見られ得る。それゆえ、プロセッサーは、例えば、処理を実行するように構成されたデバイスと、処理を実行するための命令を有するプロセッサー読み取り可能な媒体(例えば、ストレージデバイス)を含むデバイスとの両方として特徴付けられることがある。さらに、プロセッサー読み取り可能な媒体は、命令に加えてまたは命令の代わりに、実装によって生成されたデータ値を格納することがある。
【0173】
当業者には明らかであろうように、実装は、例えば、格納されるまたは送信されることがある情報を運ぶようにフォーマットされたいろいろな信号を生成することがある。例えば、情報は、方法を行うための命令、または説明された実装のうちの1つによって生成されるデータを含み得る。例えば、信号は、本態様の説明された例のシンタックスを書くまたは読むためのルールをデータとして運ぶように、または本態様の説明された例によって書かれた実際のシンタックス値をデータとして運ぶようにフォーマットされることがある。例えば、上記の信号は、電磁波として(例えば、スペクトルの無線周波部分を使用して)またはベースバンド信号としてフォーマットされ得る。例えば、フォーマッティングは、データストリームをエンコードすることと、エンコードされたデータストリームにより搬送波を変調することとを含み得る。例えば、信号が運ぶ情報は、アナログまたはデジタル情報であり得る。信号は、知られているように、いろいろな別々のワイヤードまたはワイヤレスリンクを介して送信され得る。信号は、プロセッサー読み取り可能な媒体において格納されることがある。
【0174】
多くの実装が説明されている。にもかかわらず、種々の変更がされ得ることが理解されるだろう。例えば、別々の実装の要素は、他の実装を生成するために組み合わされ、補われ、変更され、または取り除かれ得る。加えて、当業者は、他の構造および処理が、開示されたものに対して代用されることがあり、帰着する実装は、開示された実装と少なくとも実質的に同一の機能(複数可)を、開示された実装と少なくとも実質的に同一の方法(複数可)において、開示された実装と実質的に同一の結果(複数可)を獲得するために行うだろうということを理解するだろう。従って、今までに述べた実装および他の実装は、本出願によって想定される。