IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7604670デコーダによるメッシュ圧縮のための適応サンプリング方法および装置
<>
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図1
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図2
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図3
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図4
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図5
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図6
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図7
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図8
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図9
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図10
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図11
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図12
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図13
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図14
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図15
  • 特許-デコーダによるメッシュ圧縮のための適応サンプリング方法および装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】デコーダによるメッシュ圧縮のための適応サンプリング方法および装置
(51)【国際特許分類】
   H04N 19/597 20140101AFI20241216BHJP
   H04N 19/46 20140101ALI20241216BHJP
   H04N 19/132 20140101ALI20241216BHJP
【FI】
H04N19/597
H04N19/46
H04N19/132
【請求項の数】 21
(21)【出願番号】P 2023547799
(86)(22)【出願日】2022-09-16
(65)【公表番号】
(43)【公表日】2024-04-12
(86)【国際出願番号】 US2022076549
(87)【国際公開番号】W WO2023059975
(87)【国際公開日】2023-04-13
【審査請求日】2023-10-31
(31)【優先権主張番号】63/252,084
(32)【優先日】2021-10-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/945,013
(32)【優先日】2022-09-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シァン
(72)【発明者】
【氏名】リウ,シャン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】ホアン,チャオ
(72)【発明者】
【氏名】ティエン,ジュン
【審査官】鈴木 隆夫
(56)【参考文献】
【文献】米国特許出願公開第2020/0221125(US,A1)
【文献】特表2021-530890(JP,A)
【文献】特表2023-544618(JP,A)
【文献】特表2022-526289(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
メッシュ解凍方法であって、
メッシュフレームを搬送しているビットストリームから二次元(2D)の複数のマップをデコーディングするステップであり、
前記メッシュフレームは、ポリゴンを持つオブジェクトのサーフェスを表しており、
2Dの前記複数のマップは、少なくとも、デコーディングされたジオメトリマップ、および、適応2Dアトラスサンプリングが適用されている、デコーディングされた属性マップを含む、
ステップと、
前記ビットストリームにおいて信号化されたシンタックスに従って、少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定するステップであり、
前記第1サンプリングレートは、前記適応2Dアトラスサンプリングの最中に前記メッシュフレームの第1領域に対して適用され、かつ、
前記第2サンプリングレートは、前記適応2Dアトラスサンプリングの最中に前記メッシュフレームの第2領域に対して適用され、
前記第1サンプリングレートは、第2サンプリングレートとは異なる、
ステップと、
前記複数のマップに基づいて、少なくとも、前記第1サンプリングレートによる前記メッシュフレームの第1頂点、および、前記第2サンプリングレートによる前記メッシュフレームの第2頂点を再構築するステップと、
を含む、方法。
【請求項2】
前記複数のマップは、前記適応2Dアトラスサンプリングが適用されている、デコーディングされた占有マップを含み、かつ、
少なくとも、前記第1サンプリングレートによる前記メッシュフレームの第1頂点、および、前記第2サンプリングレートによる前記メッシュフレームの第2頂点を再構築する前記ステップは、さらに、
前記メッシュフレームの第1領域に対応するデコーディングされた占有マップの第1サンプリング領域における占有ポイントの初期UV座標を獲得するステップであり、
前記占有ポイントは前記第1頂点に対応している、
ステップと、
前記初期UV座標および前記第1サンプリングレートに基づいて、前記第1頂点について回復されたUV座標を決定するステップと、
を含む、請求項1に記載の方法。
【請求項3】
前記方法は、さらに、
前記ビットストリームから前記第1サンプリング領域の第1UVオフセットをデコーディングするステップと、
前記初期UV座標、前記第1サンプリングレート、および、前記第1UVオフセットに基づいて、前記第1頂点の前記回復されたUV座標を決定するステップと、
を含む、請求項2に記載の方法。
【請求項4】
前記方法は、さらに、
前記初期UV座標でデコーディングされたジオメトリマップにおけるピクセルに従って、前記第1頂点について回復された3D座標を決定するステップと、
前記初期UV座標のデコーディングされた属性マップにおけるピクセルに従って、前記第1頂点について回復された属性値を決定するステップと、
を含む、請求項2に記載の方法。
【請求項5】
前記複数のマップは、占有マップを欠いており、かつ、
少なくとも、前記第1サンプリングレートによる前記メッシュフレームの第1頂点、および、前記第2サンプリングレートによる前記メッシュフレームの第2頂点を再構築する前記ステップは、さらに、
前記第1領域について第1境界頂点を示す前記ビットストリームからの情報をデコーディングするステップと、
前記第1境界頂点に従って、前記第1領域に対応する占有マップにおける第1占有領域を推論するステップと、
前記第1占有領域における占有ポイントのUV座標を獲得するステップであり、
前記占有ポイントは、前記第1頂点に対応している、
ステップと、
少なくとも前記第1サンプリングレートに従って、前記UV座標をサンプリングされたUV座標に変換するステップと、
前記複数のマップに基づいて、前記サンプリングされたUV座標に従って、前記第1頂点を再構築するステップと、
を含む、請求項1に記載の方法。
【請求項6】
前記第1頂点を再構築する前記ステップは、さらに、
前記サンプリングされたUV座標での前記デコーディングされたジオメトリマップにおけるピクセルに従って、前記第1頂点について回復された3D座標を決定するステップと、
前記サンプリングされたUV座標での前記デコーディングされた属性マップにおけるピクセルに従って、前記第1頂点について回復された属性値を決定するステップと、
を含む、請求項5に記載の方法。
【請求項7】
前記UV座標を前記サンプリングされたUV座標に変換する前記ステップは、さらに、
前記ビットストリームからの前記第1領域に関連付けられた第1UVオフセットをデコーディングするステップと、
前記第1サンプリングレートおよび前記第1UVオフセットに従って、前記UV座標を前記サンプリングされたUV座標に変換するステップと、
を含む、請求項5に記載の方法。
【請求項8】
少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定する前記ステップは、さらに、
前記ビットストリームから直接的に、少なくとも、前記第1サンプリングレートおよび前記第2サンプリングレートの値をデコーディングするステップ、
前記ビットストリームから、少なくとも、第1インデックスおよび第2インデックスをデコーディングするステップであり、
前記第1インデックスは、サンプリングレートのセットからの前記第1サンプリングレートの選択を示し、かつ、
前記第2インデックスは、サンプリングレートのセットからの前記第2サンプリングレートの選択を示している、
ステップ、
事前に設定されたレートのセットに基づいて、前記第1サンプリングレートを予測するステップ、
前記メッシュフレームのデコーディングされた領域に対して以前に使用されたサンプリングレートに基づいて、前記第1サンプリングレートを予測するステップ、および、
前記メッシュフレームの前にデコーディングされた別のメッシュフレームにおけるデコーディングされた領域に対して以前に使用されたサンプリングレートに基づいて、前記第1サンプリングレートを予測するステップ、
のうち少なくとも1つを含む、請求項1に記載の方法。
【請求項9】
少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定する前記ステップは、さらに、
前記第1サンプリングレートが信号化されているか、または、予測されているかどうかを示す、第1シンタックス値をデコーディングするステップ、
を含む、請求項1に記載の方法。
【請求項10】
前記第1サンプリングレートが信号化されていることを示す前記第1シンタックス値に応答して、前記方法は、
前記ビットストリームから直接的に前記第1サンプリングレートの値をデコーディングするステップ、および、
前記ビットストリームからインデックスをデコーディングするステップであり、
前記インデックスは、サンプリングレートのセットからの前記第1サンプリングレートの選択を示している、
ステップ、
のうち少なくとも1つを含む、請求項9に記載の方法。
【請求項11】
前記第1サンプリングレートが予測されていることを示す前記第1シンタックス値に応答して、前記方法は、
前記ビットストリームから第2シンタックスをデコーディングするステップであり、
前記第2シンタックスは、前記第1サンプリングレートを予測するために使用する予測器を示している、
ステップ、
を含む、請求項9に記載の方法。
【請求項12】
前記方法は、さらに、
前記ビットストリームからデコーディングされたシンタックス値に基づいて、予測残差を決定するステップと、
前記予測器および前記予測残差に基づいて、前記第1サンプリングレートを決定するステップと、
を含む、請求項11に記載の方法。
【請求項13】
少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定する前記ステップは、さらに、
前記ビットストリームから基本サンプリングレートをデコーディングするステップと、
前記基本サンプリングレートに従って、少なくとも前記第1サンプリングレートおよび前記第2サンプリングレートを決定するステップと、
を含む、請求項1に記載の方法。
【請求項14】
前記方法は、さらに、
適応2Dアトラスサンプリングの有効化を示す制御フラグをデコーディングするステップと、
前記メッシュフレームにおける領域の数を決定するステップと、
前記領域について、それぞれに、サンプリングレートを決定するステップと、
を含む、請求項1に記載の方法。
【請求項15】
前記方法は、さらに、
前記ビットストリームから、前記第1領域に関連付けられた第1UVオフセットを決定するステップと、
前記複数のマップに基づいて、前記第1サンプリングレートおよび前記第1UVオフセットに従って、前記メッシュフレームの前記第1頂点を再構築するステップと、
を含む、請求項1の方法。
【請求項16】
前記第1領域に関連付けられた第1UVオフセットを決定する前記ステップは、さらに、
前記ビットストリームから直接的に前記第1UVオフセットの値をデコーディングするステップ、
事前に設定されたUVオフセットのセットに基づいて、前記第1UVオフセットを予測するステップ、
前記メッシュフレームのデコーディングされた領域について以前に使用されたUVオフセットに基づいて、前記第1UVオフセットを予測するステップ、および、
前記メッシュフレームの前にデコーディングされた別のメッシュフレーム内のデコーディングされた領域について以前に使用されたUVオフセットに基づいて、前記第1UVオフセットを予測するステップ、
のうち少なくとも1つを含む、請求項15に記載の方法。
【請求項17】
前記第1領域に関連付けられた第1UVオフセットを決定する前記ステップは、さらに、
前記第1UVオフセットが信号化されているか、または、予測されているかを示す、第1シンタックス値をデコーディングするステップ、
を含む、請求項15に記載の方法。
【請求項18】
前記第1UVオフセットが信号化されていることを示す前記第1シンタックス値に応答して、前記方法は、
前記ビットストリームから直接的に前記第1UVオフセットの値をデコーディングするステップと、
前記第1サンプリングレートと基本サンプリングレートとの比較に基づいて、前記第1UVオフセットの符号を推論するステップと、
を含む、請求項17に記載の方法。
【請求項19】
前記第1UVオフセットが予測されていることを示す前記第1シンタックス値に応答して、前記方法は、
前記ビットストリームから第2シンタックスをデコーディングするステップであり、
前記第2シンタックスは、前記第1UVオフセットを予測するために使用する予測器を示している、
ステップと、
前記ビットストリームからデコーディングされたシンタックス値に基づいて、予測残差を決定するステップと、
前記予測器および前記予測残差に基づいて、前記第1UVオフセットを決定するステップと、
を含む、請求項17に記載の方法。
【請求項20】
処理回路を含むメッシュ解凍装置であって、前記処理回路は、
メッシュフレームを搬送しているビットストリームから二次元(2D)の複数のマップをデコーディングし、
前記メッシュフレームは、ポリゴンを持つオブジェクトのサーフェスを表しており、
2Dの前記複数のマップは、少なくとも、デコーディングされたジオメトリマップ、および、適応2Dアトラスサンプリングが適用されている、デコーディングされた属性マップを含んでおり、
前記ビットストリームにおいて信号化されたシンタックスに従って、少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定し、
前記第1サンプリングレートは、前記適応2Dアトラスサンプリングの最中に前記メッシュフレームの第1領域に対して適用され、かつ、
前記第2サンプリングレートは、前記適応2Dアトラスサンプリングの最中に前記メッシュフレームの第2領域に対して適用され、
前記第1サンプリングレートは、第2サンプリングレートとは異なっており、
前記複数のマップに基づいて、少なくとも、前記第1サンプリングレートによる前記メッシュフレームの第1頂点、および、前記第2サンプリングレートによる前記メッシュフレームの第2頂点を再構築する、
ように構成されている、
装置。
【請求項21】
1つ以上のコンピュータで実行可能な命令を含むコンピュータプログラムであって、装置の1つ以上のプロセッサによって実行されると、
前記1つ以上のプロセッサに、
メッシュフレームを搬送しているビットストリームから二次元(2D)の複数のマップをデコーディングさせ、
前記メッシュフレームは、ポリゴンを持つオブジェクトのサーフェスを表しており、
2Dの前記複数のマップは、少なくとも、デコーディングされたジオメトリマップ、および、適応2Dアトラスサンプリングが適用されている、デコーディングされた属性マップを含み、
前記ビットストリームにおいて信号化されたシンタックスに従って、少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定させ、
前記第1サンプリングレートは、前記適応2Dアトラスサンプリングの最中に前記メッシュフレームの第1領域に対して適用され、かつ、
前記第2サンプリングレートは、前記適応2Dアトラスサンプリングの最中に前記メッシュフレームの第2領域に対して適用され、
前記第1サンプリングレートは、第2サンプリングレートとは異なり、
前記複数のマップに基づいて、少なくとも、前記第1サンプリングレートによる前記メッシュフレームの第1頂点、および、前記第2サンプリングレートによる前記メッシュフレームの第2頂点を再構築させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、メッシュコーディング(mesh coding)に一般的に関連付けられた実施形態について説明する。
【0002】
本出願は、2022年9月14日に出願された米国特許出願第17/945,013号、“METHOD AND APPARATUS OF ADAPTIVE SAMPLING FOR MESH COMPRESSION BY DECODERS”について優先権の利益を主張するものであり、当該出願は、2021年10月4日に出願された米国仮出願第63/252,084号、“Method and Apparatus of Adaptive Sampling for Mesh Compression by Decoders”について優先権の利益を主張している。先行出願の開示は、参照によりその全体がここに組み込まれている。
【背景技術】
【0003】
ここで提供されている背景説明は、開示のコンテキストを一般的に示すことを目的としている。現在名前が挙げられている発明者の著作物は、この背景セクションに記載されている範囲において、並びに、そうでなければ出願時に先行技術として認められない可能性のある記述の態様は、本開示に対して明示的にも黙示的にも先行技術として認められない。
【0004】
三次元(3D)空間における、世界(world)の中の物体、世界の中の環境、等といった、世界をキャプチャし、かつ、表現するための様々な技術が開発されている。世界の3D表現は、より没入感のあるインタラクションおよびコミュニケーションを可能にする。いくつかの例において、ポイントクラウド(point cloud)およびメッシュを世界の3D表現として使用することができる。
【発明の概要】
【0005】
本開示の態様は、メッシュコーディング(例えば、圧縮および解凍)のための方法および装置を提供する。いくつかの例において、メッシュコーディングのための装置は処理回路を含む。処理回路は、メッシュフレームを搬送しているビットストリームから二次元(2D)の複数のマップをデコーディングする。メッシュフレームは、ポリゴンを持つオブジェクトのサーフェスを表している。2Dの複数のマップは、少なくとも、デコーディングされたジオメトリマップ、および、適応2Dアトラスサンプリングが適用されている、デコーディングされた属性マップを含む。処理回路は、ビットストリームにおいて信号化されたシンタックスに従って、少なくとも、第1サンプリングレートおよび第2サンプリングレートを決定する。第1サンプリングレートは、適応2Dアトラスサンプリングの最中にメッシュフレームの第1領域に対して適用され、かつ、第2サンプリングレートは、適応2Dアトラスサンプリングの最中にメッシュフレームの第2領域に対して適用される。第1サンプリングレートは、第2サンプリングレートとは異なっている。処理回路は、複数のマップに基づいて、少なくとも、第1サンプリングレートによるメッシュフレームの第1頂点、および、第2サンプリングレートによるメッシュフレームの第2頂点を再構築する。
【0006】
いくつかの実施形態において、複数のマップは、適応2Dアトラスサンプリングが適用されている、デコーディングされた占有マップを含み、そして、処理回路は、メッシュフレームの第1領域に対応するデコーディングされた占有マップの第1サンプリング領域における占有ポイントの初期UV座標を獲得し、占有ポイントは第1頂点に対応しており、そして、初期UV座標および第1サンプリングレートに基づいて、第1頂点について回復されたUV座標を決定する。いくつかの例において、処理回路は、ビットストリームから第1サンプリング領域の第1UVオフセットをデコーディングし、そして、初期UV座標、第1サンプリングレート、および、第1UVオフセットに基づいて、第1頂点の回復されたUV座標を決定する。一例において、処理回路は、初期UV座標でデコーディングされたジオメトリマップにおけるピクセルに従って、第1頂点について回復された3D座標を決定し、そして、初期UV座標のデコーディングされた属性マップにおけるピクセルに従って、第1頂点について回復された属性値を決定する。
【0007】
いくつかの例において、前記複数のマップは、占有マップを欠いており、かつ、
処理回路は、第1領域について第1境界頂点を示すビットストリームからの情報をデコーディングする。処理回路は、第1境界頂点に従って、第1領域に対応する占有マップにおける第1占有領域を推論し、そして、第1占有領域における占有ポイントのUV座標を獲得する。占有ポイントは、第1頂点に対応している。処理回路は、少なくとも第1サンプリングレートに従って、UV座標をサンプリングされたUV座標に変換し、そして、複数のマップに基づいて、サンプリングされたUV座標に従って、第1頂点を再構築する。一例において、処理回路は、サンプリングされたUV座標での前記デコーディングされたジオメトリマップにおけるピクセルに従って、第1頂点について回復された3D座標を決定し、そして、サンプリングされたUV座標でのデコーディングされた属性マップにおけるピクセルに従って、第1頂点について回復された属性値を決定する。
【0008】
UV座標をサンプリングされたUV座標に変換するために、いくつかの例において、処理回路は、ビットストリームからの第1領域に関連付けられた第1UVオフセットをデコーディングし、そして、第1サンプリングレートおよび第1UVオフセットに従って、UV座標をサンプリングされたUV座標に変換する。
【0009】
一例において、処理回路は、ビットストリームから直接的に、少なくとも、第1サンプリングレートおよび第2サンプリングレートの値をデコーディングする。別の例において、処理回路は、ビットストリームから、少なくとも、第1インデックスおよび第2インデックスをデコーディングし、第1インデックスは、サンプリングレートのセットからの第1サンプリングレートの選択を示し、かつ、第2インデックスは、サンプリングレートのセットからの第2サンプリングレートの選択を示している。別の例において、処理回路は、事前に設定されたレートのセットに基づいて、第1サンプリングレートを予測する。別の例において、処理回路は、メッシュフレームのデコーディングされた領域に対して以前に使用されたサンプリングレートに基づいて、第1サンプリングレートを予測する。別の例において、処理回路は、メッシュフレームの前にデコーディングされた別のメッシュフレームにおけるデコーディングされた領域に対して以前に使用されたサンプリングレートに基づいて、第1サンプリングレートを予測する。
【0010】
いくつかの例において、処理回路は、第1サンプリングレートが信号化されているか、または、予測されているかどうかを示す、第1シンタックス値をデコーディングする。第1サンプリングレートが信号化されていることを示す第1シンタックス値に応答して、一例において、処理回路は、ビットストリームから直接的に第1サンプリングレートの値をデコーディングし、または、ビットストリームからインデックスをデコーディングする。インデックスは、サンプリングレートのセットからの第1サンプリングレートの選択を示すことができる。第1サンプリングレートが予測されていることを示す第1シンタックス値に応答して、一例において、処理回路は、ビットストリームから第2シンタックスをデコーディングし、第2シンタックスは、第1サンプリングレートを予測するために使用する予測器を示している。さらに、一例において、処理回路は、ビットストリームからデコーディングされたシンタックス値に基づいて、予測残差を決定し、そして、予測器および予測残差に基づいて、第1サンプリングレートを決定する。
【0011】
いくつかの例において、処理回路は、ビットストリームから基本サンプリングレートをデコーディングし、そして、基本サンプリングレートに従って、少なくとも第1サンプリングレートおよび第2サンプリングレートを決定する。
【0012】
いくつかの例において、処理回路は、適応2Dアトラスサンプリングの有効化を示す制御フラグをデコーディングし、メッシュフレームにおける領域の数を決定し、そして、領域について、それぞれに、サンプリングレートを決定する。
【0013】
いくつかの例において、処理回路は、ビットストリームから、第1領域に関連付けられた第1UVオフセットを決定し、そして、複数のマップに基づいて、第1サンプリングレートおよび第1UVオフセットに従って、メッシュフレームの第1頂点を再構築する。一例において、処理回路は、ビットストリームから直接的に第1UVオフセットの値をデコーディングする。別の例において、処理回路は、事前に設定されたUVオフセットのセットに基づいて、第1UVオフセットを予測する。別の例において、処理回路は、メッシュフレームのデコーディングされた領域について以前に使用されたUVオフセットに基づいて、第1UVオフセットを予測する。別の例において、処理回路は、メッシュフレームの前にデコーディングされた別のメッシュフレーム内のデコーディングされた領域について以前に使用されたUVオフセットに基づいて、第1UVオフセットを予測する。
【0014】
いくつかの例において、処理回路は、第1UVオフセットが信号化されているか、または、予測されているかを示す、第1シンタックス値をデコーディングする。第1UVオフセットが信号化されていることを示す第1シンタックス値に応答して、一例において、処理回路は、ビットストリームから直接的に第1UVオフセットの値をデコーディングし、そして、第1サンプリングレートと基本サンプリングレートとの比較に基づいて、第1UVオフセットの符号を推論する。
【0015】
別の例においては、第1UVオフセットが予測されていることを示す第1シンタックス値に応答して、処理回路は、ビットストリームから第2シンタックスをデコーディングし、第2シンタックスは、第1UVオフセットを予測するために使用する予測器を示している。さらに、一例において、処理回路は、ビットストリームからデコーディングされたシンタックス値に基づいて、予測残差を決定し、そして、予測器および予測残差に基づいて、第1UVオフセットを決定する。
【0016】
本開示の態様は、また、コンピュータによって実行されると、コンピュータに、メッシュコーディングのための方法のいずれか又は組み合わせを実行させる命令を保管している、非一時的コンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0017】
開示された技術的事項(subject matter)のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
図1図1は、いくつかの例における通信システムのブロック図を示している。
図2図2は、いくつかの例におけるストリーミングシステムのブロック図を示している。
図3図3は、いくつかの例におけるポイントクラウドフレームをエンコーディングするためのエンコーダのブロック図を示している。
図4図4は、いくつかの例におけるポイントクラウドフレームに対応する圧縮ビットストリームをデコーディングするためのデコーダのブロック図を示している。
図5図5は、いくつかの例におけるビデオデコーダのブロック図を示している。
図6図6は、いくつかの例におけるビデオエンコーダのブロック図を示している。
図7図7は、いくつかの例におけるポイントクラウドフレームをエンコーディングするエンコーダのブロック図を示している。
図8図8は、いくつかの例におけるポイントクラウドフレームを搬送する圧縮ビットストリームをデコーディングするデコーダのブロック図を示している。
図9図9は、いくつかの例におけるアトラスに対するメッシュのマッピングを説明する図を示している。
図10図10は、いくつかの例におけるダウンサンプリングを示す図を示している。
図11図11は、本開示のいくつかの実施形態によるメッシュ圧縮のためのフレームワークの図を示している。
図12図12は、いくつかの例における適応サンプリングの図を示している。
図13図13は、いくつかの例における適応サンプリングの図を示している。
図14図14は、いくつかの例におけるプロセス例の概要を示すフローチャートを示している。
図15図15は、いくつかの例におけるプロセス例の概要を示すフローチャートを示している。
図16図16は、いくつかの例におけるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0018】
本開示の態様は、三次元(3D)メディア処理の分野における技術を提供する。
【0019】
三次元(3D)キャプチャ、3Dモデリング、および3Dレンダリングの進歩といった、3Dメディア処理における技術開発は、いくつかのプラットフォームおよびデバイスにわたり3Dメディアコンテンツのユビキタス(ubiquitous)な存在を促進してきた。一例として、ある大陸において赤ちゃんの最初の一歩をキャプチャすることができ、メディア技術により、祖父母は、別の大陸で赤ちゃんとの没入体験を視聴(および、場合によってはインタラクション)して楽しむことができる。本開示の一態様によると、没入体験を向上させるために、3Dモデルは、ますます洗練されてきており、そして、3Dモデルの作成および消費は、データストレージ、データ伝送リソースといった、かなりの量のデータリソースを占めている。
【0020】
本開示のいくつかの態様によると、ポイントクラウドおよびメッシュを3Dモデルとして使用して、没入コンテンツを表現することができる。
【0021】
ポイントクラウドは、一般的に、色、材料特性、テクスチャ情報、強度属性、反射率属性、モーション関連属性、モダリティ属性、および、他の様々な属性といった、それぞれ関連する属性を用いて、3D空間内のポイントのセットを指すことができる。ポイントクラウドは、そうしたポイントの構成としてオブジェクト(object)またはシーン(scene)を再構築するために使用することができる。
【0022】
オブジェクトのメッシュ(メッシュモデルとも称される)には、オブジェクトのサーフェスを記述するポリゴンを含めることができる。各ポリゴンは、3D空間内のポリゴンの頂点、および、頂点がポリゴンにどのように接続されているかの情報によって定義できる。頂点がどのように接続されているかの情報は、接続情報と称される。いくつかの例において、メッシュには、頂点に関連付けられた色、法線、等といった、属性も含めることができる。
【0023】
本開示のいくつかの態様によると、ポイントクラウド圧縮(point cloud compression、PCC)のためのいくつかのコーディングツールをメッシュ圧縮のために使用することができる。例えば、メッシュを再メッシュして新しいメッシュを生成し、新しいメッシュの接続情報を推測することができる。新しいメッシュの頂点、および、新しいメッシュの頂点に関連付けられた属性は、ポイントクラウド内のポイントとして考えることができ、そして、PCCコーデックを使用して圧縮することができる。
【0024】
ポイントクラウドは、オブジェクトまたはシーンをポイントの構成として再構築するために使用することができる。ポイントは、複数のカメラ、深度センサ、または、ライダ(Lidar)を様々な設定において使用してキャプチャすることができ、そして、再構築されたシーンまたはオブジェクトをリアルに表現するために、数千から数十億のポイントで構成され得る。パッチは、一般的に、ポイントクラウドによって記述されるサーフェスの連続したサブセットを指すことができる。一例において、パッチは、閾値よりも小さい値で互いに逸脱(deviate)するサーフェス法線ベクトルを持つポイントを含んでいる。
【0025】
PCCは、様々なスキームに従って実行することができる。G-PCCと称されるジオメトリベースのスキーム、V-PCCと称されるビデオコーディングベースのスキーム、等といったものである。本開示のいくつかの態様によると、G-PCCは、3Dジオメトリを直接的にエンコーディングし、かつ、ビデオコーディングと共有することがあまりない純粋なジオメトリベースのアプローチであり、そして、V-PCCは、ビデオコーディングに大きく基づいている。例えば、V-PCCは、3Dクラウドのポイントを2Dグリッドのピクセル(イメージ)にマップできる。V-PCCスキームは、ポイントクラウド圧縮に汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)またはV-PCCコーデックとすることができる。
【0026】
本開示の一態様によると、V-PCCスキームは、既存のビデオコーデックを使用して、ポイントクラウドのジオメトリ、占有(occupancy)および、テクスチャを3つの別個のビデオシーケンスとして圧縮することができる。3つのビデオシーケンスを解釈するために必要な追加のメタデータは、個別に圧縮される。全体のビットストリームの小さい部分はメタデータであり、それは、一例においては、ソフトウェア実装を使用して効率的にエンコーディング/デコーディングすることができる。情報の大部分は、ビデオコーデックによって処理される。
【0027】
図1は、いくつかの例における通信システム100)のブロック図を示している。通信システム(100)は、例えば、ネットワーク(150)を介して相互に通信可能な複数の端末装置を含んでいる。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された端末装置(110)および(120)のペアを含んでいる。図1の例において、端末装置(110)および(120)の第1ペアは、ポイントクラウドデータの単方向伝送を実行することができる。例えば、端末装置(110)は、端末装置(110)に接続されたセンサ(105)によってキャプチャされたポイントクラウド(例えば、構造を表すポイント)を圧縮することができる。圧縮されたポイントクラウドは、例えば、ビットストリームの形で、ネットワーク(150)を介して他の端末装置(120)に送信することができる。端末装置(120)は、ネットワーク(150)から圧縮されたポイントクラウドを受信し、ポイントクラウドを再構成するためにビットストリームを解凍し、そして、再構成されたポイントクラウドを適切に表示していることができる。一方向データ伝送は、メディアサービスアプリケーションなどで一般的であり得る。
【0028】
図1の例において、端末装置(110)および(120)は、サーバおよびパーソナルコンピュータとして図示していることができるが、本開示の原則は、そのように限定されるものではない。本開示の実施例は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤ、及び/又は、専用の三次元(3D)機器に適用される。ネットワーク(150)は、端末装置(110)と(120)との間で圧縮ポイントクラウドを送信する任意の数のネットワークを表している。ネットワーク(150)は、例えば、有線(wired)無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換(circuit-switched)チャネル及び/又はパケット交換(packet-switched)チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、インターネット、等を含んでいる。
【0029】
図2は、いくつかの例におけるストリーミングシステム(200)のブロック図を示している。ストリーミングシステム(200)は、ポイントクラウドの利用アプリケーションである。開示される技術的事項は、3Dテレプレゼンス(3D teleprsence)アプリケーション、仮想現実アプリケーション、等といった、他のポイントクラウド対応アプリケーションにも同様に適用することができる。
【0030】
ストリーミングシステム(200)は、キャプチャサブシステム(213)を含むことができる。キャプチャサブシステム(213)は、ポイントクラウドソース(201)、例えば、光検出および測距(LIDAR)システム、三次元カメラ、三次元スキャナ、ソフトウェアで非圧縮のポイントクラウドを生成するグラフィックス生成コンポーネント、等を含むことができ、例えば、非圧縮のポイントクラウド(202)を生成する。一例において、ポイントクラウド(202)は、三次元カメラによってキャプチャされるポイントを含んでいる。ポイントクラウド(202)は、圧縮されたポイントクラウド(204)(圧縮されたポイントクラウドのビットストリーム)と比較して高いデータ量を強調するために太線で示されている。圧縮されたポイントクラウド(204)は、ポイントクラウドソース(201)に結合されたエンコーダ(203)を含む、電子デバイス(220)によって生成することができる。エンコーダ(203)は、以下で、より詳細に説明されるように、開示される技術的事項の態様を有効化(enable)または実装するために、ハードウェア、ソフトウェア、または、それらの組み合わせを含むことができる。圧縮されたポイントクラウド(204)(または、圧縮されたポイントクラウドのビットストリーム(204))は、ポイントクラウドのストリーム(202)と比較した場合に、低いデータ量を強調するために細い線として表されており、将来の使用のためにストリーミングサーバ(205)に保管することができる。図2のクライアントサブシステム(206)および(208)といった、1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、圧縮されたポイントクラウド(204)のコピー(207)および(209)を獲得(retrieve)することができる。クライアントサブシステム(206)は、例えば、電子デバイス(230)にデコーダ(210)を含めることができる。デコーダ(210)は、圧縮されたポイントクラウドの着信コピー(207)をデコーディングし、そして、レンダリングデバイス(212)でレンダリングできる再構築されたポイントクラウド(211)の発信ストリームを作成する。
【0031】
電子デバイス(220)および(230)は、他のコンポーネント(図示なし)を含み得ることに注意すること。例えば、電子デバイス(220)は、デコーダ(図示なし)を含むことができ、そして、電子デバイス(230)は、同様に、エンコーダ(図示なし)を含むこともできる。
【0032】
いくつかのストリーミングシステムでは、圧縮されたポイントクラウド(204)、(207)、および(209)(例えば、圧縮されたポイントクラウドのビットストリーム)を特定の標準に従って圧縮することができる。いくつかの例において、ポイントクラウドの圧縮にビデオコーディング標準が使用される。これらの標準の例は、High Efficiency Video Coding (HEVC) 、Versatile Video Coding (VVC)、等を含んでいる。
【0033】
図3は、いくつかの実施例による、ポイントクラウドフレームをエンコーディングするためのV-PCCエンコーダ(300)のブロック図を示している。いくつかの実施例において、V-PCCエンコーダ(300)は、通信システム(100)およびストリーミングシステム(200)で使用することができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様の方法で、構成および動作することができる。
【0034】
V-PCCエンコーダ(300)は、ポイントクラウドフレームを非圧縮入力として受け取り、そして、圧縮されたポイントクラウドフレームに対応するビットストリームを生成する。いくつかの実施形態において、V-PCCエンコーダ(300)は、ポイントクラウドソース(201)といった、ポイントクラウドソースからポイントクラウドフレームを受け取ることができる。
【0035】
図3の例において、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)、パッチパッキングモジュール(308)、ジオメトリイメージ生成モジュール(310)、テクスチャイメージ生成モジュール(312)、パッチ情報モジュール(304)、占有マップモジュール(314)、スムージングモジュール(336)、イメージパディングモジュール(316)および(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322)、(323)、および(332)、補助パッチ情報圧縮モジュール(338)、エントロピー圧縮モジュール(334)、マルチプレクサ(324)、を含んでいる。
【0036】
本開示の一態様に従って、V-PCCエンコーダ(300)は、圧縮されたポイントクラウドを解凍されたポイントクラウドに戻すために使用される、いくつかのメタデータ(例えば、占有マップおよびパッチ情報)と共に、3Dポイントクラウドフレームをピクチャベース表現に変換する。いくつかの例において、V-PCCエンコーダ(300)は、3Dポイントクラウドフレームをジオメトリイメージ、テクスチャイメージ、および占有マップに変換し、そして、次いで、ビデオコーディング技術を使用して、ジオメトリイメージ、テクスチャイメージ、および占有マップをビットストリームにエンコーディングすることができる。一般的に、ジオメトリイメージは、ピクセルに投影されたポイントに関連付けられたジオメトリ値で満たされた(filled with)ピクセルを持つ2Dイメージであり、そして、ジオメトリ値で満たされたピクセルをジオメトリサンプルと呼ぶことができる。テクスチャイメージは、ピクセルに投影されたポイントに関連付けられたテクスチャ値で満たされたピクセルを持つ2Dイメージであり、そして、テクスチャ値で満たされたピクセルをテクスチャサンプルと呼ぶことができる。占有マップは、パッチによって、占有され又は占有されていないことを示す値で満たされたピクセルを持つ2Dイメージである。
【0037】
パッチ生成モジュール(306)は、ポイントクラウドをパッチのセット(例えば、パッチは、ポイントクラウドによって記述されるサーフェスの連続したサブセットとして定義される)にセグメント化する。それは、オーバーラップしても、しなくてもよく、その結果、各パッチが2D空間内の平面に関する深度フィールドによって記述される。いくつかの実施例において、パッチ生成モジュール(306)は、ポイントクラウドをスムーズな境界を持つパッチの最小数へと分解する(decomposing)ことを目的としており、一方で、また、再構成エラーを最小限に抑えている。
【0038】
いくつかの例において、パッチ情報モジュール(304)は、パッチのサイズおよび形状を示す、パッチ情報を収集することができる。いくつかの例において、パッチ情報は、イメージフレームへとパックされ、そして、補助パッチ情報圧縮モジュール(338)によってエンコーディングされて、圧縮された補助パッチ情報を生成することができる。
【0039】
いくつかの例において、パッチパッキングモジュール(308)は、抽出されたパッチを二次元(2D)グリッド上にマップし、一方で、未使用スペースを最小限に抑え、かつ、グリッドの全てのM×M(例えば、16×16)ブロックが一意のパッチに関連付けられることを確保するように構成されている。効率的なパッチパッキングは、未使用スペースを最小限に抑えること、または、時間的一貫性を確保することによって、圧縮効率に直接的に影響を与えることができる。
【0040】
ジオメトリイメージ生成モジュール(310)は、所与のパッチ位置で、ポイントクラウドのジオメトリに関連付けられた2Dジオメトリイメージを生成することができる。テクスチャイメージ生成モジュール(312)は、所与のパッチ位置で、ポイントクラウドのテクスチャに関連付けられた2Dテクスチャイメージを生成することができる。ジオメトリイメージ生成モジュール(310)およびテクスチャイメージ生成モジュール(312)は、パッキングプロセスの最中に計算された3Dから2Dへのマッピングを利用して、ポイントクラウドのジオメトリおよびテクスチャをイメージとして保管する。複数のポイントが同じサンプルに投影される場合をより要綱に処理するために、各パッチは、レイヤ(layer)と称される2つのイメージに投影される。一例において、ジオメトリイメージは、YUV420-8ビット形式でW×Hの単色(monochromatic)フレームによって表される。テクスチャイメージを生成するために、テクスチャ生成プロシージャは、再サンプリングされたポイントに関連付けられた色を計算するため、再構築/スムージングされたジオメトリを利用する。
【0041】
占有マップモジュール(314)は、各ユニットのパディング情報を記述する占有マップを生成することができる。例えば、占有イメージは、グリッドの各セルが空スペースに属しているか、または、ポイントクラウドに属しているかを示すバイナリマップを含んでいる。一例において、占有マップは、ピクセルがパディングされているか否かをピクセルごとに記述するバイナリ情報を使用することができる。別の例において、占有マップは、ピクセルのブロックがパディングされているか否かをピクセルのブロックごとに記述するバイナリ情報を使用することができる。
【0042】
占有マップモジュール(314)によって生成された占有マップは、可逆(lossless)コーディングまたは非可逆(lossy)コーディングを使用して圧縮することができる。可逆コーディングを使用する場合、エントロピー圧縮モジュール(334)を使用して占有マップを圧縮する。非可逆コーディングを使用する場合、ビデオ圧縮モジュール(332)を使用して占有マップを圧縮する。
【0043】
パッチパッキングモジュール(308)は、イメージフレームにパックされた2Dパッチ間にいくつかの空スペース(empty space)を残し得ることに注意すること。イメージパディングモジュール(316)および(318)は、2Dビデオおよびイメージコーデックに適したイメージフレームを生成するために、空スペースを埋めることができる(パディングと称される)。イメージパディングは、また、未使用スペースを冗長な情報で埋めることができる、バックグラウンド充填(background filling)とも称される。いくつかの例において、良好なバックグラウンド充填は、ビットレートを最小限に増加させ、一方で、パッチ境界の周りに重大なコーディングの歪みを導入しない。
【0044】
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVC、等といった、適切なビデオコーディング標準に基づいて、パディングされたジオメトリイメージ、パディングされたテクスチャイメージ、占有マップといった、2Dイメージをエンコーディングすることができる。一例において、ビデオ圧縮モジュール(322)、(323)、および(332)は、個別に動作する、個々のコンポーネントである。別の例において、ビデオ圧縮モジュール(322)、(323)、および(332)は、単一のコンポーネントとして実装できることに注意すること。
【0045】
いくつかの例において、スムージングモジュール(336)は、再構築されたジオメトリイメージのスムージングされた(smoothed)イメージを生成するように設定されている。スムージングされたイメージは、テクスチャイメージ生成(312)に対して提供することができる。次いで、テクスチャイメージ生成(312)は、再構築されたジオメトリイメージに基づいて、テクスチャイメージの生成を調整することができる。例えば、エンコーディングおよびデコーディングの最中にパッチシェイプ(例えば、ジオメトリ)がわずかに歪んだ場合、パッチシェイプの歪みを補正するために、テクスチャイメージを生成するときにその歪みを考慮することができる。
【0046】
いくつかの実施例において、グループ拡張(320)は、コーディングのゲイン、並びに、再構築されたポイントクラウドの視覚的品質を向上させるために、冗長な低周波コンテンツでオブジェクト境界の周りのピクセルをパッドするように構成されている。
【0047】
マルチプレクサ(324)は、圧縮されたジオメトリイメージ、圧縮されたテクスチャイメージ、圧縮された占有マップ、圧縮された補助パッチ情報を、圧縮されたビットストリームへと多重化することができる。
【0048】
図4は、いくつかの例において、ポイントクラウドフレームに対応する圧縮されたビットストリームをデコーディングするためのV-PCCデコーダ(400)のブロック図を示している。いくつかの例において、V-PCCデコーダ(400)は、通信システム(100)およびストリーミングシステム(200)において使用することができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様の方法で動作するように設定することができる。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、そして、圧縮されたビットストリームに基づいて再構築されたポイントクラウドを生成する。
【0049】
図4の例において、V-PCCデコーダ(400)は、デマルチプレクサ(432)、ビデオ解凍(decompression)モジュール(434)および(436)、占有マップ解凍モジュール(438)、補助パッチ情報解凍モジュール(442)、ジオメトリ再構成モジュール(444)、スムージングモジュール(446)、テクスチャ再構成モジュール(448)、およびカラースムージングモジュール(452)を含んでいる。
【0050】
デマルチプレクサ(432)は、圧縮されたビットストリームを受信し、そして、圧縮されたテクスチャイメージ、圧縮されたジオメトリイメージ、圧縮された占有マップ、および圧縮された補助パッチ情報へと分離することができる。
【0051】
ビデオ解凍モジュール(434)および(436)は、圧縮されたイメージを適切な標準(例えば、HEVC、VVC、等)に従ってデコーディングし、そして、解凍されたイメージを出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮されたテクスチャイメージをデコーディングして、解凍されたテクスチャイメージを出力する。そして、ビデオ解凍モジュール(436)は、圧縮されたジオメトリイメージをデコーディングして、解凍されたジオメトリイメージを出力する。
【0052】
占有マップ解凍モジュール(438)は、適切な標準(例えば、HEVC、VVC、等)に従って圧縮された占有マップをデコーディングし、そして、解凍された占有マップを出力することができる。
【0053】
補助パッチ情報解凍モジュール(442)は、適切な標準(例えば、HEVC、VVC、等)に従って圧縮された補助パッチ情報をデコーディングし、そして、解凍された補助パッチ情報を出力することができる。
【0054】
ジオメトリ再構成モジュール(444)は、解凍されたジオメトリイメージを受信し、そして、解凍された占有マップおよび解凍された補助パッチ情報に基づいて、再構成されたポイントクラウドジオメトリを生成することができる。
【0055】
スムージングモジュール(446)は、パッチのエッジにおける不一致をスムージングすることができる。スムージング手順は、圧縮アーティファクトのせいでパッチ境界で発生し得る潜在的な不連続性を緩和することを目的としている。いくつかの実施形態において、圧縮/解凍によって引き起こされる可能性のある歪みを緩和するために、パッチ境界に位置するピクセルにスムージングフィルタを適用することができる。
【0056】
テクスチャ再構成モジュール(448)は、解凍されたテクスチャイメージおよびスムージングジオメトリに基づいて、ポイントクラウド内のポイントについてテクスチャ情報を決定することができる。
【0057】
カラースムージングモジュール(452)は、カラーリングの不一致をスムージングすることができる。3D空間の非隣接(non-neighboring)パッチは、しばしば、2Dビデオでは相互に隣り合ってパックされることがある。いくつかの例において、非隣接パッチからのピクセル値が、ブロックベースのビデオコーデックによって混同される(mixed up)ことがある。カラースムージングの目的は、パッチ境界に現われる、目に見えるアーティファクトを低減することである。
【0058】
図5は、いくつかの例におけるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、V-PCCデコーダ(400)で使用することができる。例えば、ビデオ圧縮モジュール(434)および(436)、占有マップ圧縮モジュール(438)は、ビデオデコーダ(510)として同様に構成することができる。
【0059】
ビデオデコーダ(510)は、コード化ビデオシーケンスといった、圧縮ピクチャからシンボル(521)を再構成するパーサ(520)を含むことができる。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含んでいる。パーサ(520)は、受信された、コード化ビデオシーケンスを解析/エントロピーデコーディング(entropy-decode)することができる。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術または標準に従うことができ、そして、可変長コーディング、ハフマン(Huffman)コーディング、コンテキスト感度を有するか有さない算術(arithmetic)コーディングなど、を含む、様々な原則に従うことができる。パーサ(520)は、コード化ビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループの少なくとも1つについてサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャグループ(Group of Pictures、GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units、CU)、ブロック、変換ユニット(Transform Units、TU)、予測ユニット(Prediction Units、PU)、などを含むことができる。パーサ(520)は、また、変換係数、量子化子パラメータ値、動きベクトル、等といった、コード化ビデオシーケンス情報からも抽出することができる。
【0060】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリから受信したビデオシーケンスに対してエントロピーデコーディング/解析(parsing)操作を実行することができる。
【0061】
シンボル(521)の再構成は、コード化ビデオピクチャ、または、その一部(インターピクチャとイントラピクチャ、インターブロックとイントラブロック、といったもの)の種類、および、他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが関与し、そして、どのように関与するかは、コード化ビデオシーケンスからパーサ(520)によって解析された、サブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそうしたサブグループ制御情報のフローは、明確化のために描かれていない。
【0062】
既に述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明されるように、概念的にいくつかの機能ユニットへと細分化することができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは相互に密接にインタラクションし、そして、少なくとも部分的には、相互に統合することができる。しかしながら、開示された技術的事項を記述する目的では、以下の機能ユニットへの概念的な細分化が適切である。
【0063】
第1ユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、並びに、どの変換を使用するかを含む、制御情報、ブロックサイズ、量子化係数、量子化スケーリングマトリクス、等を、シンボル(521)としてパーサ(520)から受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
【0064】
場合によって、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングブロックに関係することができる。つまり、ブロックは、以前に再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構築された部分からの予測情報を使用できる。そうした予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によって、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構築された現在ピクチャ、及び/又は、完全に再構築された現在ピクチャをバッファする。アグリゲータ(555)は、場合によっては、サンプルごとに、ユニットでスケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に対して、イントラ予測ユニット(552)が生成した予測情報を追加する。
【0065】
他の場合に、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化、そして、潜在的な動き補償ブロックに関係することができる。そうした場合に、動き補償予測ユニット(553)は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従って、フェッチされたサンプルを動き補償した後で、これらのサンプルは、出力サンプル情報を生成するように、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と称される)に追加され得る。動き補償予測ユニット(553)が、そこから予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、動きベクトルによって制御することができ、例えば、X、Y、および参照ピクチャコンポーネントを持つことができるシンボル(521)の形式で、動き補償予測ユニット(553)に対して利用可能である。動き補償は、また、サブサンプルの正確な動きベクトルが使用されているときに、参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズム、なども含むことができる。
【0066】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術の対象とすることができる。ビデオ圧縮技術は、コード化ビデオシーケンス(コード化ビデオビットストリームとも称される)に含まれるパラメータによって制御され、そして、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に対して利用可能にされる、インループフィルタ技術を含むことができるが、また、コード化ピクチャまたはコード化ビデオシーケンスの以前の(デコーディング順の)部分のデコーディングの最中に獲得されたメタ情報に応答し、同様に、以前に再構成されたサンプル値およびループフィルタリングされたサンプル値に応答することもできる。
【0067】
ループフィルタユニット(556)の出力は、レンダーデバイス(render device)に出力でき、同様に、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に保存することができる、サンプルストリームであり得る。
【0068】
所定のコード化ピクチャは、一旦、完全に再構築されると、将来の予測のための参照ピクチャとして使用することができる。例えば、一旦、現在ピクチャに対応するコード化ピクチャが完全に再構築され、かつ、コード化ピクチャが参照ピクチャとして(例えば、パーサ(520)によって)識別されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部になることができ、そして、次のコード化ピクチャの再構築を開始する前に、新しい現在ピクチャバッファを再割り当てすることができる。
【0069】
ビデオデコーダ(510)は、ITU-T Rec. H.265といった、標準における既定のビデオ圧縮技術に従ってデコーディング操作を実行することができる。コード化ビデオシーケンスは、ビデオ圧縮技術または標準のシンタックス、および、ビデオ圧縮技術または標準に記載されているプロファイルの両方に準拠しているという意味において、使用されているビデオ圧縮技術または標準によって指定されたシンタックスに準拠し得る。具体的に、プロファイルは、ビデオ圧縮技術または標準で使用可能な全てのツールから、そのプロファイルで使用可能な唯一のツールとして所定のツールを選択することができる。また、準拠に必要なのは、コード化ビデオシーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあることである。場合によっては、レベルが、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定されるもの)、最大参照ピクチャサイズ、などを制限する。レベルによって設定された制限は、場合によっては、コード化ビデオシーケンスにおいてシグナル化でされる仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様、および、HRDバッファ管理のメタデータを通じて、さらに制限することができる。
【0070】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、ポイントクラウドを圧縮するV-PCCエンコーダ(300)において使用することができる。一例において、ビデオ圧縮モジュール(322)および(323)、および、ビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に設定されている。
【0071】
ビデオエンコーダ(603)は、パディングされたジオメトリイメージ、パディングされたテクスチャイメージ、といったイメージを受信し、そして、圧縮されたイメージを生成することができる。
【0072】
一実施形態によると、ビデオエンコーダ(603)は、リアルタイムで、または、アプリケーションによって要求される他の時間制約の下で、ソースビデオシーケンスのピクチャ(イメージ(image))をコード化し、そして、コード化ビデオシーケンス(圧縮イメージ(compressed images))へと圧縮することができる。適切なコーディング速度を実行することは、コントローラ(650)の一つの機能である。いくつかの実施形態において、コントローラ(650)は、以下に説明されるように、他の機能ユニットを制御し、そして、他の機能ユニットに機能的に結合されている。明確にするために、結合は描かれていない。コントローラ(650)によって設定されるパラメータは、レートコントロール関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化手法のラムダ値、...)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル検索範囲、などを含んでいる。コントローラ(650)は、所定のシステム設計に最適化されたビデオエンコーダ(603)に関連付けられた、他の適切な機能を持つように設定することができる。
【0073】
いくつかの実施形態において、ビデオエンコーダ(603)は、コーディングループにおいて動作するように設定される。過度に単純化された説明として、一例において、コーディングループは、ソースコーダ(630)(例えば、コード化される入力ピクチャおよび参照ピクチャに基づいて、シンボルストリームといった、シンボルを作成する責任がある)、および、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(リモート)デコーダが作成するのと同様の方法で、サンプルデータを作成するためにシンボルを再構築する(開示された技術的事項で考慮されるビデオ圧縮技術では、シンボルと、コード化ビデオビットストリームとの間の圧縮は可逆であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)に依存しないビット正確(bit-exact)な結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、また、ローカルエンコーダとリモートエンコーダとの間でビット正確である。別の言葉で言えば、エンコーダの予測部分は、デコーディングの最中に予測を使用する場合に、デコーダが「見る(“see”)」であろうサンプル値と全く同じサンプル値を、参照ピクチャサンプルとして「見る」のである。参照ピクチャの同期性(および、例えば、チャネルエラーのせいで、同期性を維持できない場合に、結果として生じるドリフト)の基本原理は、いくつかの関連技術でも、同様に使用されている。
【0074】
「ローカル(“local”)」デコーダ(633) の動作は、図5と併せて既に詳細に説明した、ビデオデコーダ(510)といった、「リモート」デコーダと同じであり得る。図5を、また、簡単に参照すると、しかしながら、シンボルが利用可能であり、そして、エントロピーコーダ(645)およびパーサ(520)によるコード化ビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であり得るため、パーサ(520)を含む、ビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)で完全に実装されなくてよい。
【0075】
動作の最中に、いくつかの例において、ソースコーダ(630)は、「参照ピクチャ(“reference picture”)」として指定されたビデオシーケンスから、以前にコード化された1つ以上のピクチャを参照して、入力ピクチャを予測的にコード化する、動き補償予測コーディングを実行することができる。この方法で、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差異をコード化する。
【0076】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータをデコーディングすることができる。コーディングエンジン(632)の操作は、有利なことに、可逆プロセスであり得る。コード化ビデオデータがビデオデコーダ(図6には図示なし)でデコーディングされる場合、再構築されたビデオシーケンスは、典型的に、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され、かつ、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に保管させるようにし得る、デコーディングプロセスを複製する。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって獲得される再構成された参照ピクチャとして共通のコンテンツを持つ、再構成された参照ピクチャのコピーを、ローカルに保管することができる(伝送エラーがない)。
【0077】
予測器(predictor)(635)は、コーディングエンジン(632)の予測検索を実行することができる。つまり、コード化される新しいピクチャについて、予測器(635)は、新しいピクチャの適切な予測参照として役立ち得る、サンプルデータ(候補参照ピクセルブロックとして)、または、参照ピクチャ動きベクトル、ブロック形状、等といった、所定のメタデータについて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルのブロックピクセルのブロックベース(on a sample block-by-pixel basis)で動作し得る。場合によっては、予測器(635)によって獲得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に保管された複数の参照ピクチャから描かれた予測参照を持つことができる。
【0078】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング操作を管理することができる。
【0079】
前述の全ての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング、等といった技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットにより生成されたシンボルをコード化ビデオシーケンスへと変換する。
【0080】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディングの最中に、コントローラ(650)は、各コード化ピクチャに所定のコード化ピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技術に影響を与え得る。例えば、ピクチャは、しばしば、以下のピクチャタイプのうち1つが割り当てられてよい。
【0081】
イントラピクチャ(Intra picture、I picture)は、予測のソースとしてシーケンスにおける任意の他のピクチャを使用することなく、コーディングおよびデコーディングされ得る。いくつかのビデオコーデックでは、例えば、Independent Decoder Refresh(“IDR”)を含む、異なる種類のイントラピクチャを使用することができる。当業者であれば、Iピクチャのこれらの変形、および、それぞれの用途と特徴を認識している。
【0082】
予測ピクチャ(predictive picture、P picture)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものである。
【0083】
双方向予測ピクチャ(bi-directionally predictive picture、B picture)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものである。同様に、複数予測ピクチャ(multiple-predictive picture)は、単一ブロックの再構築のために、2つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0084】
ソースピクチャ(source picture)は、一般的に、複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16の各サンプルのブロック)へと空間的に細分化され、そして、ブロックごとに(block-by-block basis)コード化され得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコード化されている)ブロックを参照して予測的にコード化され得る。例えば、Iピクチャのブロックは、非予測的にコード化されてよく、または、それらは、同じピクチャの既にコード化ブロック(空間予測またはイントラ予測)を参照して予測的にコード化されてよい。Pピクチャのピクセルブロックは、事前にコード化1つの参照ピクチャを参照して、空間予測または時間予測を介して予測的にコード化することができる。Bピクチャのブロックは、以前にコード化された1つまたは2つの参照ピクチャを参照して、空間予測を介して、または、時間予測を介して、予測的にコード化され得る。
【0085】
ビデオエンコーダ(603)は、ITU-T Rec. H.26といった、所定のビデオコーディング技術または規格に従ってコーディング操作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測コーディング操作を含む、様々な圧縮操作を実行することができる。コード化ビデオデータは、従って、使用されているビデオコーディング技術または標準によって指定されたシンタックスに準拠することができる。
【0086】
ビデオは、時間的な順序で複数のソースピクチャ(イメージ)の形式であり得る。イントラピクチャ予測(しばしば、イントラと略される)は、所与のピクチャの空間的な相関関係を利用し、そして、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関関係を利用する。一例においては、エンコーディング/デコーディング中の特定のピクチャ、現在ピクチャ(current picture)と称されるもの、がブロックへと分割される。現在ピクチャのブロックが、ビデオ内の以前にコード化され、そして、未だにバッファされている参照ピクチャの参照ブロックと類似している場合、現在ピクチャのブロックは、動きベクトルと称される、ベクトルによってコード化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、そして、複数の参照ピクチャが使用されている場合に、参照ピクチャを識別する三次元を有することができる。
【0087】
いくつかの実施形態において、双予測(bi-prediction)技術は、インターピクチャ予測において使用することができる。双予測技術に従って、ビデオ内の現在ピクチャに対して両方ともにデコーディング順が前である(ただし、表示順では、それぞれに、過去と未来であり得る)第1参照ピクチャおよび第2参照ピクチャといった、2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトル、および、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルによってコード化することができる。ブロックは、第1参照ブロックおよび第2参照ブロックの組み合わせによって予測することができる。
【0088】
さらに、コーディング効率を向上させるために、マージモード技術がインターピクチャ予測において使用され得る。
【0089】
本開示のいくつかの実施形態に従って、インターピクチャ予測およびイントラピクチャ予測といった予測は、ブロックのユニットで実行される。例えば、HEVC標準によると、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(Coding Tree Unit、CTU)へと分割され、ピクチャ内のCTUは、64×64ピクセル、3×32ピクセル、または16×16ピクセルといった、同じサイズを有している。一般的に、CTUには3個のコーディングツリーブロック(Coding Tree Block、CTB)を含んでおり、それは、1個のルマ(luma)CTBおよび2個のクロマ(chroma)CTBである。各CTUは、1つまたは複数のコーディングユニット(Coding Unit、CU)へと再帰的に四分木(quadtree)分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、または32×32ピクセルの4個のCU、もしくは16×16ピクセルの16個のCUへと分割することができる。一例において、各CUは、インター予測タイプまたはイントラ予測タイプといった、CUについて予測タイプを決定するために分析される。CUは、時間的及び/又は空間的な予測可能性に応じて、1つ以上の予測ユニット(prediction unit、PU)へと分割される。一般的に、各PUは、1個のルマ予測ブロック(prediction block、PB)と2個のクロマPBを含んでいる。一実施形態においては、コーディング(エンコーディング/デコーディング)における予測演算が、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルミナンス予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、等といった、ピクセルの値(例えば、ルマ値(luma values))のマトリクスを含んでいる。
【0090】
図7は、いくつかの例におけるG-PCCエンコーダ(700)のブロック図を示している。G-PCCエンコーダ(700)は、ポイントクラウドデータを受信し、かつ、ポイントクラウドデータを圧縮するように構成することができ、圧縮されたポイントクラウドデータを搬送するビットストリームを生成する。一実施形態において、G-PCCエンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、八分木(octree)エンコーディングモジュール(730)、属性移転モジュール(720)、詳細レベル(level of detail、LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、および再構成された属性値を保管するためのメモリ(790)を含むことができる。
【0091】
図示されるように、入力ポイントクラウド(701)は、G-PCCエンコーダ(700)で受信することができる。ポイントクラウド(701)の位置(例えば、3D座標)が、量子化モジュール(710)に提供される。量子化モジュール(710)は、量子化された位置を生成するために座標を量子化するように構成されている。重複点除去モジュール(712)は、量子化された位置を受け取り、そして、重複点を識別して除去するためのフィルタリングプロセスを実行するように構成されている。八分木コーディングモジュール(730)は、重複点除去モジュール(712)からフィルタリングされた位置を受け取り、そして、八分木ベースのエンコーディングプロセスを実行するように構成されており、ボクセルの3Dグリッドを記述する占有コード(occupancy code)のシーケンスを生成する。占有コードは、算術コーディングモジュール(770)に提供される。
【0092】
属性移転モジュール(720)は、入力ポイントクラウドの属性を受信し、そして、複数の属性値がそれぞれのボクセルに関連付けられている場合に、各ボクセルについて属性値を決定するために属性移転プロセスを実行するように構成されている。属性移転プロセスは、八分木コーディングモジュール(730)から出力された再順序付けされた(re-ordered)ポイントに対して実行することができる。転送動作の後の属性が、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、八分木エンコーディングモジュール(730)から出力された再順序付けされたポイントにおいて動作し、そして、異なるLODへとポイントを再編成するように構成されている。LOD情報は、属性予測モジュール(750)に提供される。
【0093】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従って、ポイントを処理する。属性予測モジュール(750)は、メモリ(790)に保管されている現在ポイントの隣接するポイントのセットに係る再構築された属性に基づいて、現在ポイントの属性予測を生成する。予測残差は、その後に、属性移転モジュール(720)から受け取った元の属性値、および、ローカルに生成された属性予測に基づいて、獲得することができる。それぞれの属性予測プロセスにおいて候補インデックスが使用される場合、選択された予測候補に対応するインデックスが、算術コーディングモジュール(770)に提供され得る。
【0094】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受け取り、そして、量子化残差を生成するために、量子化を実行するように構成されている。量子化残差は、算術コーディングモジュール(770)に提供される。
【0095】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化残差を受け取り、そして、残差量子化モジュール(760)で実行される量子化操作の逆を実行することによって、再構築された予測残差を生成するように構成されている。加算モジュール(781)は、逆残差量子化モジュール(780)から再構築された予測残差、および、属性予測モジュール(750)からそれぞれの属性予測、を受け取るように構成されている。再構築された予測残差と属性予測を組み合わせることによって、再構築された属性値が生成され、そして、メモリ(790)に保管される。
【0096】
算術コーディングモジュール(770)は、占有コード、候補インデックス(使用されている場合)、量子化残差(生成されている場合)、および他の情報を受信し、そして、受信した値または情報をさらに圧縮するために、エントロピーエンコーディングを実行するように構成されている。結果として、圧縮された情報を搬送する圧縮ビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮されたビットストリームをデコーディングするデコーダに対して送信され、または、そうでなければ、他の方法で提供され、もしくは、ストレージデバイスに保管される。
【0097】
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示している。G-PCCデコーダ(800)は、圧縮されたビットストリームを受信し、そして、ビットストリームを解凍するためにポイントクラウドデータ解凍を実行するように構成することができ、デコーディングされたポイントクラウドデータを生成する。一実施形態において、G-PCCデコーダ(800)は、算術デコーディングモジュール(810)、逆残差量子化モジュール(820)、八分木デコーディングモジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、および、再構成された属性値を保管するメモリ(860)を含むことができる。
【0098】
示されるように、圧縮ビットストリーム(801)は、算術デコーディングモジュール(810)で受信することができる。算術デコーディングモジュール(810)は、圧縮ビットストリーム(801)をデコーディングするように構成されており、量子化された残差(生成される場合)、および、ポイントクラウドの占有コードを獲得する。八分木デコーディングモジュール(830)は、占有コードに従って、ポイントクラウド内のポイントの再構築された位置を決定するように構成されている。LOD生成モジュール(840)は、再構築された位置に基づいて、異なるLODへとポイントを再編成し、そして、LODベースの順序を決定するように構成されている。逆残差量子化モジュール(820)は、算術デコーディングモジュール(810)から受信した量子化された残差に基づいて、再構築された残差を生成するように構成されている。
【0099】
属性予測モジュール(850)は、LODベースの順序に従って、ポイントの属性予測を決定するために、属性予測プロセスを実行するように構成されている。例えば、現在ポイントの属性予測は、メモリ(860)に保管されている現在ポイントの隣接するポイントに係る再構築された属性値に基づいて決定することができる。いくつかの例において、属性予測をそれぞれの再構築された残差と組み合わせて、現在ポイントの再構築された属性を生成することができる。
【0100】
属性予測モジュール(850)から生成された再構築された属性のシーケンスは、八分木デコーディングモジュール(830)から生成された再構築された位置と一緒に、一例においてG-PCCデコーダ(800)から出力された、デコーディングされたポイントクラウド(802)に対応している。加えて、再構築された属性も、また、メモリ(860)に保管され、そして、その後に、後続のポイントの属性予測を導出するために使用することができる。
【0101】
様々な実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又は、デコーダ(800)は、ハードウェア、ソフトウェア、または、それらの組み合わせで実装することができる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又は、デコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、等といった、ソフトウェアの有無にかかわらず動作する、1つ以上の集積回路(IC)といった処理回路を用いて実装することができる。別の例において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又は、デコーダ(800)は、不揮発性(または、非一時的な)コンピュータ可読記憶媒体に保管された命令を含む、ソフトウェアまたはファームウェアとして実装することができる。命令は、1つ以上のプロセッサといった処理回路によって実行されると、処理回路に、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又は、デコーダ(800)の機能を実行させる。
【0102】
ここにおいて開示される属性予測技術を実装するように構成されている属性予測モジュール(750)および(850)は、図7および図8に示されているものと類似または異なる構造を有し得る他のデコーダまたはエンコーダに含めることができることに注意すること。加えて、エンコーダ(700)およびデコーダ(800)は、様々な例においては、同じデバイスに含まれても、または、別々のデバイスに含まれてもよい。
【0103】
本開示のいくつかの態様によると、メッシュ圧縮は、PCCコーディングツールとは異なるコーディングツールを使用することもでき、または、上記のPCC(例えば、G-PCC、V-PCC)エンコーダ、上記のPCC(例えば、G-PCC、V-PCC)デコーダ、等といった、PCCコーディングツールを使用することもできる。
【0104】
オブジェクトのメッシュ(また、メッシュモデル、メッシュフレームとも称される)は、オブジェクトのサーフェスを記述する、ポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点、および、頂点をポリゴンへと接続するエッジによって定義することができる。頂点がどのように接続されているかの情報(例えば、エッジの情報)は、接続情報(connectivity information)と称される。いくつかの例において、オブジェクトのメッシュは、オブジェクトのサーフェスを記述する、接続された三角形によって形成される。エッジを共有する2つの三角形は、2つの接続された三角形と称される。他のいくつかの例において、オブジェクトのメッシュは、接続された四角形によって形成される。エッジを共有する2つの四角形は、2つの接続された四角形と呼ぶことができる。メッシュは、他の適切なポリゴンによって形成できることに注意すること。
【0105】
いくつかの例において、メッシュは、また、頂点に関連付けられた、色、法線、等といった、属性を含むこともできる。2D属性マップでメッシュをパラメータ化するマッピング情報を利用することによって、属性をメッシュのサーフェスに関連付けることができる。マッピング情報は、大抵、メッシュの頂点に関連付けられたUV座標またはテクスチャ座標と称される、パラメトリック座標のセットによって記述される。2D属性マップ(いくつかの例においては、テクスチャマップと称される)は、テクスチャ、法線、変位(displacement)等といった、高解像度の属性情報を保管するために使用される。そうした情報は、テクスチャマッピングおよびシェーディングといった、様々な目的に使用することができる。
【0106】
いくつかの実施例において、メッシュは、ジオメトリ情報、接続情報、マッピング情報、頂点属性、および、属性マップと称される、コンポーネントを含むことができる。いくつかの例において、ジオメトリ情報は、メッシュの頂点に関連付けられた3D位置のセットによって記述される。一例において、(x,y,z)座標は、頂点の3D位置を記述するために使用することができ、そして、また、3D座標とも称される。いくつかの例において、接続情報は、頂点を接続して3Dサーフェスを作成する方法を記述する頂点インデックスのセットを含んでいる。いくつかの例において、マッピング情報は、メッシュサーフェスを平面の2D領域にマッピングする方法を記述している。一例において、マッピング情報は、接続情報と一緒に、メッシュ頂点に関連付けられたUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。いくつかの例において、頂点属性は、メッシュ頂点に関連付けられたスカラ属性値またはベクトル属性値を含んでいる。いくつかの例において、属性マップは、メッシュサーフェスに関連付けられ、そして、2Dイメージ/ビデオとして保存されている属性を含んでいる。一例において、ビデオ(例えば、2Dピクチャ/ビデオ)とメッシュサーフェスとの間のマッピングは、マッピング情報によって定義される。
【0107】
本開示の態様によると、UVマッピングまたはメッシュパラメータ化と称されるいくつかの手法が、3Dドメイン内のメッシュのサーフェスを2Dドメインにマッピングするために使用される。いくつかの例において、メッシュは、3Dドメイン内のパッチへとパーティション分割(partitioned)される。パッチは、境界エッジで形成された境界を持つメッシュの連続したサブセットである。パッチの境界エッジは、パッチの1つだけのポリゴンに属し、そして、パッチ内の隣接する2つのポリゴンによっては共有されない、エッジである。パッチ内の境界エッジの頂点は、パッチの境界頂点と称され、そして、パッチ内の非境界頂点は、いくつかの例において、パッチの内部頂点と称され得る。
【0108】
いくつかの例において、オブジェクトのメッシュは接続された三角形によって形成され、そして、メッシュは、パッチへとパーティション分割することができ、各パッチは、接続された三角形のサブセットである。パッチの境界エッジは、パッチ内の1つだけの三角形に属し、そして、パッチ内の隣接する三角形によっては共有されないエッジである。パッチ内の境界エッジの頂点は、パッチの境界頂点と称され、そして、パッチ内の非境界頂点は、いくつかの例において、パッチの内部頂点と称され得る。
【0109】
本開示の態様によると、いくつかの例において、パッチは、それぞれに、2D形状へとパラメータ化されている(また、UVパッチとも称される)。2D形状は、また、いくつかの例においてアトラス(atlases)とも称されるマップへとパックすることができる(例えば、方向付けられ、そして、配置される)。いくつかの例において、2Dピクチャまたはビデオ処理技術を使用して、マップをさらに処理することができる。
【0110】
一例において、UVマッピング技術は、3Dメッシュのパッチに対応する2DにおけるUVアトラス(UVマップとも称される)および1つ以上のテクスチャアトラス(テクスチャマップとも称される)を生成する。UVアトラスは、2Dドメイン内の2Dポイント(例えば、長方形)に対する3Dメッシュの3D頂点の割り当てを含んでいる。UVアトラスは、3Dサーフェスの座標から2Dドメインの座標へのマッピングである。一例において、2D座標(u,v)でのUVアトラス内のポイントは、3Dドメイン内の頂点の座標(x,y,z,)によって形成される値を有している。一例において、テクスチャアトラスは、3Dメッシュの色情報を含んでいる。例えば、2D座標(u,v)でのテクスチャアトラスにおけるポイント(UVアトラスで(x,y,z)の3D値を持つ)は、3Dドメインにおける(x,y,z)でのポイントの色属性を指定する、色を有する。いくつかの例において、3Dドメインの座標(x,y,z)は、3D座標、またはxyz座標と称され、そして、2D座標(u,v)は、UV座標またはUV座標と称される。
【0111】
本開示のいくつかの態様によると、メッシュ圧縮は、1つ以上の2Dマップ(いくつかの例においては、2Dアトラスとも称される)を使用して、メッシュを表現しすることそして、次いで、イメージまたはビデオコーデックを使用して2Dマップをエンコーディングすることによって、実行することができる。2Dマップを生成するために、異なる技術を使用することができる。
【0112】
図9は、いくつかの例における、3Dメッシュ(910)から2Dアトラス(920)へのマッピングを説明する図を示している。図9の例において、3Dメッシュ(910)は、4つのパッチA-Dを形成する4つの頂点1-4を含んでいる。パッチそれぞれは、頂点および関連する属性情報のセットを有する。例えば、パッチAは、三角形に接続された頂点1、2、3によって形成される。パッチBは、三角形に接続された頂点1、3、4によって形成される。パッチCは、三角形に接続された頂点1、2、4によって形成される。パッチDは、三角形に接続された頂点2、3、4によって形成される。いくつかの例において、頂点1、2、3、および4は、それぞれの属性を持つことができ、頂点1、2、3、および4によって形成される三角形はそれぞれの属性を持つことができる。
【0113】
一例において、3DのパッチA、B、C、およびDは、また、UVアトラス(920)またはマップ(920)とも称される、2Dアトラス(920)といった、2Dドメインにマッピングされる。例えば、パッチAはマップ(920)で2D形状(UVパッチとも称される)A'にマッピングされ、パッチBはマップ(920)で2D形状(UVパッチとも称される)B'にマッピングされ、パッチCはマップ(920)で2D形状(UVパッチとも称される)C'にマッピングされ、そして、パッチDはマップ(920)で2D形状(UVパッチとも称される)D'にマッピングされる。いくつかの例において、3D領域の座標は(x,y,z)座標と称され、マップ(920)といった、2D領域の座標はUV座標と称される。3Dメッシュ内の頂点は、マップ内で対応するUV座標を持つことができる(920)。
【0114】
マップ(920)は、ジオメトリ情報を含むジオメトリマップであってよく、カラー、法線、テキスタイル、または他の属性情報を含むテクスチャマップであってよく、または、占有情報を含む占有マップであってよい。
【0115】
図9の例において、各パッチは三角形で表されているが、パッチは、メッシュの連続したサブセットを形成するために接続されている任意の適切な数の頂点を含むことができることに注意すること。いくつかの例において、パッチ内の頂点は三角形へと接続されている。パッチ内の頂点は、他の適切な形状を使用して接続できることに注意すること。
【0116】
一例において、頂点のジオメトリ情報は、2Dジオメトリマップに保管することができる。例えば、2Dジオメトリマップは、2Dジオメトリマップ内の対応するポイントのサンプリングポイントでの(x,y,z)座標を保管する。例えば、2Dジオメトリマップの(u,v)位置でのポイントは、3Dメッシュ内の対応するサンプリングポイントのx、y、およびzの値にそれぞれ対応する3個のコンポーネントのベクトル値を有している。
【0117】
開示の一態様に従って、マップ内の領域は完全に占有されていなくてよい。例えば、図9において、2D形状A’、B’、C’、およびD’の外側の領域は未定義である。デコーディング後の2D形状A'、B'、C'、およびD'の外側の領域のサンプル値は破棄することができる。場合によっては、占有マップが使用され、ピクセルがパッチに属しているか、または、未定義であるかを識別するためのバイナリ値を保管するなど、各ピクセルについていくつかの追加情報を保管する。
【0118】
本開示の態様によると、動的メッシュは、コンポーネント(ジオメトリ情報、接続情報、マッピング情報、頂点属性、および属性マップ)の少なくとも1つが時間と共に変化する、メッシュである。動的メッシュは、一連のメッシュ(メッシュフレームとも称される)によって記述することができる。動的メッシュは、時間の経過とともに変化する著しい量の情報を含み得るので、大量のデータを必要とし得る。メッシュの圧縮技術により、メッシュ表現においてメディアコンテンツを効率的に保存および送信することができる。
【0119】
いくつかの例において、動的メッシュは、一定の接続情報、時変(time varying)ジオメトリ、および、時変頂点属性を有することができる。いくつかの例において、動的メッシュは、時変接続情報を持つことができる。一例において、デジタルコンテンツ作成ツールは、大抵、時変属性マップおよび時変接続情報を伴う動的メッシュを生成する。いくつかの例において、動的メッシュの生成のためにボリューム獲得(volumetric acquisition)技術が使用される。ボリューム獲得技術は、特に、リアルタイム制約の下で、時変接続情報を伴う動的メッシュを生成することができる。
【0120】
いくつかの技術が、メッシュ圧縮のために使用されている。いくつかの例においては、UVアトラスサンプリングおよびV-PCCが、メッシュ圧縮のために使用することができる。例えば、UVアトラスは、通常のグリッド(regular grid)においてサンプリングされ、通常のグリッドサンプルを用いてジオメトリイメージを生成する。通常のグリッドサンプルの接続性を推測することができる。通常のグリッドサンプルは、ポイントクラウド内のポイントと見なすことができ、そして、従って、V-PCCコーデックといった、PCCコーデックを使用してコーディングすることができる。
【0121】
本開示の態様によると、3Dメッシュ情報を効率的に圧縮するために、ジオメトリマップ、テクスチャマップ(いくつかの例においては属性マップとも称される)、占有マップ、等といった、2Dマップが、コードかされる前に、ダウンサンプリングされてよい。
【0122】
図10は、いくつかの例におけるダウンサンプリングを示す図を示している。図10において、マップ(1020)は、水平方向および垂直方向の両方において2倍でダウンサンプリングされており、そして、それに応じてダウンサンプリングされたマップ(1030)が生成されている。ダウンサンプリングされたマップ(1030)の幅(例えば、横方向のピクセル数)は、マップ(1020)の幅(例えば、横方向のピクセル数)の1/2であり、そして、ダウンサンプリングされたマップ(1030)の高さ(例えば、垂直方向のピクセル数)は、マップ(1020)の高さ(例えば、垂直方向のピクセル数)の1/2である。
【0123】
図10において、マップ(1020)は、2D形状(UVパッチとも称される)A'、B'、C'、およびD'を含み、そして、ダウンサンプリングされたマップ(1030)は、2D形状A'、B'、C'、およびD'にそれぞれ対応する、サンプリングされた2D形状A''、B''、C''、およびD''を含んでいる。ダウンサンプリングされたマップ(1030)は、いくつかの例において、次いで、メッシュエンコーダ側のイメージまたはビデオエンコーダによってコード化される。
【0124】
いくつかの例においては、メッシュデコーダ側で、ダウンサンプリングされたマップがデコーディングされる。ダウンサンプリングされたマップのデコーディングの後で、3Dメッシュを再構築するために、ダウンサンプリングされたマップが元の解像度(例えば、縦方向の元のピクセル数および横方向の元のピクセル数)に回復される。
【0125】
一般的に、動的メッシュシーケンスは、時間の経過とともに変化する著しい量の情報で構成され得るので、大量のデータを必要とする。2Dマップに適用されるサンプリングステップ(例えば、UVアトラス、属性マップ)は、メッシュ情報を表すために必要な帯域幅を減らすのに役立ち得る。しかしながら、サンプリングステップは、また、ダウンサンプリングの最中に3Dメッシュの重要なジオメトリシェイプといった、重要な情報を削除することもできる。
【0126】
いくつかの例において、適応サンプリング(adaptive sampling)技術を使用して、重要な情報を過度に失うことなく、2Dアトラス(2Dではマップとも称される)を処理することができる。適応サンプリング技術は、静的メッシュ(1つのメッシュフレームまたはメッシュコンテンツが時間の経過で変化しない)圧縮と動的メッシュ圧縮のために使用することができる。様々な適応サンプリング技術は、個別に、または、任意の形式の組み合わせで適用することできる。以下の説明では、適応サンプリング方法が2Dアトラス(例えば、2Dにおけるマップ)に対して適用される。それは、ジオメトリマップまたは属性(テクスチャ)マップのいずれか、もしくは、両方であり得る。
【0127】
図11は、本開示のいくつかの実施例によるメッシュ圧縮のためのフレームワーク(1100)の図を示している。フレームワーク(1100)は、メッシュエンコーダ(1110)およびとメッシュデコーダ(1150)を含んでいる。メッシュエンコーダ(1110)は、入力メッシュ(1101)を受け取り(動的メッシュ処理の場合はメッシュフレーム)、かつ、入力メッシュ(1101)をビットストリーム(1145)へとエンコーディングし、そして、メッシュデコーダ(1150)は、ビットストリーム(1145)をデコーディングして再構成メッシュ(1195)を生成する(動的メッシュ処理の場合は再構成メッシュフレーム)。
【0128】
メッシュエンコーダ(1110)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイス、等といった、任意の適切なデバイスであり得る。メッシュデコーダ(1150)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイス、等といった、任意の適切なデバイスであり得る。ビットストリーム(1145)は、任意の適切な通信ネットワーク(図示なし)を介して、メッシュエンコーダ(1110)からメッシュデコーダ(1150)に送信され得る。
【0129】
図11の例において、メッシュエンコーダ(1110)は、前処理モジュール(1111)、適応サンプリングモジュール(1120)、ビデオエンコーダ(1130)、および、一緒に結合されている補助データエンコーダ(1140)を含んでいる。ビデオエンコーダ(1130)は、3Dメッシュの表現における2Dマップといった、イメージまたはビデオデータをエンコーディングするように構成されている。
【0130】
図11の例において、前処理モジュール(1111)は、UVアトラス(1105)を用いてメッシュを生成するために、入力メッシュ(1101)に対して適切な操作を実行するように構成されている。例えば、前処理モジュール(1111)は、トラッキング(tracking)、再メッシュ、パラメータ化、および、ボクセル化を含む、一連の操作を実行することができる。図11の例において、一連の操作は、エンコーダのみであり、そして、デコーディングプロセスの一部ではない。いくつかの例において、UVアトラス(1105)を伴うメッシュは、頂点の3D位置情報、3D位置情報を2DにマップするUVアトラス、および、他の2D属性マップ(例えば、2Dカラーマップなど)を含んでいる。
【0131】
いくつかの例において、入力メッシュ(1101)は、UVアトラスを伴うメッシュの形式であることに注意すること。その後、前処理モジュール(1111)は、入力メッシュ(1101)をUVアトラスを伴うメッシュ(1105)に転送することができる。
【0132】
適応サンプリングモジュール(1120)はUVアトラスを伴うメッシュ(1105)を受け取り、そして、適応サンプリングを実行して、適応サンプリングマップ(1125)を生成する。いくつかの例において、適応サンプリングモジュール(1120)は、様々な技術を使用して、マップ内の情報密度といった、マップ内またはマップの異なる領域における特性を検出し、そして、その特性に基づいてマップまたはマップの異なる領域をサンプリングするために異なるサンプリングレートを決定することができる。次いで、適応サンプリングマップ(1125)を生成するために、異なるサンプリングレートに従って2Dマップをサンプリングすることができる。適応サンプリングマップ(1125)は、ジオメトリマップ(いくつかの例では、ジオメトリイメージとも称される)、占有マップ、他の属性マップ(例えば、カラーマップ)など、を含むことができる。
【0133】
ビデオエンコーダ(1130)は、イメージエンコーディング及び/又はビデオエンコーディング技術を使用して、適応サンプリングマップ(1125)をビットストリーム(1145)へとエンコーディングするためにできる。
【0134】
適応サンプリングモジュール(1120)は、また、適応サンプリングに使用される支援情報を示す、補助データ(1127)も生成する。補助データエンコーダ(1140)は、補助データ(1127)を受信し、そして、補助データ(1127)をビットストリーム(1145)へとエンコーディングする。
【0135】
適応サンプリングモジュール(1120)および補助データエンコーダ(1140)の動作が、さらに、本開示において説明されている。
【0136】
図11の例においては、ビットストリーム(1145)が、メッシュデコーダ(1150)に提供されている。メッシュデコーダ(1150)は、図11に示されるように一緒に結合されている、ビデオデコーダ(1160)、補助データデコーダ(1170)、およびメッシュ再構成モジュール(1190)を含んでいる。一例において、ビデオデコーダ(1160)は、ビデオエンコーダ(1130)に対応しており、そして、ビデオエンコーダ(1130)によってエンコーディングされたビットストリーム(1145)の一部をデコーディングし、そして、デコーディングされたマップ(1165)を生成することができる。いくつかの例において、デコーディングされたマップ(1165)は、デコーディングされたUVマップ、1つ以上のデコーディングされた属性マップ、などを含んでいる。いくつかの例において、デコーディングされたマップ(1165)は、デコーディングされた占有マップ(例えば、最初にデコーディングされたマップ)を含んでいる。
【0137】
図11の例において、補助データデコーダ(1170)は、補助データエンコーダ(1140)に対応しており、そして、補助データエンコーダ(1140)によってエンコーディングされたビットストリーム(1145)の一部をデコーディングし、そして、デコーディングされた補助データ(1175)を生成することができる。
【0138】
図11の例においては、デコーディングされたマップ(1165)およびデコーディングされた補助データ(1175)が、メッシュ再構成モジュール(1190)に提供されている。メッシュ再構成モジュール(1190)は、デコーディングされたマップ(1165)およびデコーディングされた補助データ(1175)に基づいて、再構成されたメッシュ(1195)を生成する。いくつかの例において、メッシュ再構築モジュール(1190)は、頂点に関連付けられたそれぞれの3D座標、UV座標、色、等といった頂点の情報といった、再構築されたメッシュ(1195)内の頂点および頂点に関連付けられた情報を決定することができる。補助データデコーダ(1170)およびメッシュ再構築モジュール(1190)の動作が、さらに、本開示で説明されている。
【0139】
前処理モジュール(1111)、適応サンプリングモジュール(1120)、ビデオエンコーダ(1130)、および補助データエンコーダ(1140)といった、メッシュエンコーダ(1110)におけるのコンポーネントは、様々な技術によってそれぞれ実装できることに注意すること。一例において、コンポーネントは、集積回路によって実装される。別の例においては、1つ以上のプロセッサによって実行できるソフトウェアを使用してコンポーネントが実装される。
【0140】
ビデオデコーダ(1160)、補助データデコーダ(1170)、およびメッシュ再構成モジュール(1190)といった、メッシュデコーダ(1150)のコンポーネントは、様々な手法でそれぞれ実装できることに注意すること。一例において、コンポーネントは、集積回路によって実装される。別の例においては、1つ以上のプロセッサによって実行できるソフトウェアを使用してコンポーネントが実装される。
【0141】
いくつかの実施例において、サンプリング適応は、マップタイプに基づくものであり得る。いくつかの例において、適応サンプリングモジュール(1120)は、異なるタイプのマップに対して異なるサンプリングレートを適用することができる。例えば、異なるサンプリングレートをジオメトリマップおよび属性マップに対して適用することができる。一例において、メッシュは、通常の形状および豊富なテクスチャを伴うオブジェクトのモデルである。例えば、オブジェクトは、長方形の形状をしているが、豊富な色を有している。従って、ジオメトリマップの情報密度は、比較的に低い。一例において、適応サンプリングモジュール(1120)は、2:1の第1サンプリングレートをジオメトリマップに適用し(垂直方向および水平方向の両方)、そして、1:1の第2サンプリングレートをテクスチャマップに適用する(垂直方向および水平方向の両方)。
【0142】
いくつかの例において、方向におけるA:Bのサンプリングレートは、その方向における元のマップのA個のピクセルからB個のサンプルを生成することを示す。例えば、水平方向のサンプリングレートが2:1の場合は、水平方向の元のマップの2ピクセルごとに1サンプルを生成することを示している。垂直方向のサンプリングレートが2:1の場合は、垂直方向の元のマップの2ピクセルごとに1サンプルを生成することを示している。
【0143】
いくつかの例においては、サンプリングステップ(sampling step)という用語が使用されている。方向におけるサンプリングステップは、方向において隣接する2個のサンプリング位置の間のピクセル数を示している。例えば、水平方向における2つのサンプリングステップは、水平方向において隣接するサンプリング位置の間の2個のピクセルを示しており、そして、垂直方向における2つのサンプリングステップは、垂直方向において隣接するサンプリング位置の間の2個のピクセルを示している。本開示において、サンプリングレートは、サンプリングステップに相当することに注意すること。例えば、サンプリングレート2(例えば、2:1)は、隣接するサンプリング位置の間の2個のピクセルに相当する。
【0144】
いくつかの実施例において、サンプリング適応は、マップ内のサブ領域に基づいている。異なるサンプリングレートが、マップの異なる部分に対して適用され得る。いくつかの例において、ピクセルのいくつかの行(rows)は、保存されるべき情報が少なく、次いで、これらの行に沿ってより大きなサンプリングレートを適用することができ、結果として、コード化されるべきサンプル行の数が少なくなる。いくつかの例において、ピクセルのいくつかの列(columns)は、保存されるべき情報が少なく、次いで、これらの列に沿ってより大きなサンプリングレートを適用することができ、結果として、コード化されるべきサンプル列の数が少なくなる。他の領域では、サンプリング後の情報の損失を最小限に抑えるために、より小さいサンプリングレートが適用されている。
【0145】
図12は、いくつかの例における適応サンプリングの図を示している。マップ(1220)は、いくつかのブロック行へと分割されており、各ブロック行は、固定数のサンプル(ピクセル)行を含んでいる。異なるサンプリングレートが垂直方向におけるブロック行に対して適用されて、適応サンプリングマップ(1230)を生成する。例えば、各ブロック行は、CTU行であり(CTUラインとも称される)、そして、64行のサンプル(ピクセルとも称される)を含んでいる。図12の例においては、マップ(1220)におけるブロック行0およびブロック行6に対して、垂直方向に2:1の第1サンプリングレートが適用され、そして、サンプリング後の適応サンプリングマップ(1230)におけるブロック行0およびブロック行6のそれぞれに対して32行のサンプルを結果として生じている。マップ(1220)のブロック行1から5に対して、垂直方向に1:1の第2サンプリングレートが適用され、適応サンプリングマップ(1230)におけるブロック行1から5のそれぞれに対して64行のサンプルを結果として生じている。
【0146】
図12では水平方向に1:1のサンプリングレートが適用されていることに注意すること。
【0147】
いくつかの例において、適応サンプリングマップ(1230)は、ビデオエンコーダ(1130)といった、イメージまたはビデオエンコーダによってエンコーディングされる。デコーダ側において、一例では、適応サンプリングマップ(1230)がデコーディングされる。デコーディングの後で、サンプルの上位32行は、64行のサンプルといった、元の解像度に回復(アップサンプリング)され、そして、サンプルの下位32行は、64行のサンプルといった、元の解像度に回復(アップサンプリング)される。
【0148】
他のいくつかの例において、3Dメッシュの2D表現においてコード化されるべき(to-be-coded)マップは、多数のサブ領域(sub-regions)へと分割することができる。マップ(例えは、ピクチャ)の内側でのそうした分割の例は、スライス、タイル、タイルグループ、コーディングツリーユニット、などを含んでいる。いくつかの例においては、異なるサンプリングレートを異なるサブ領域に適用することができる。一例において、異なるサブ領域に関連付けられた異なるサンプリングレートは、3Dメッシュを搬送するビットストリームにおいて信号化され得る。デコーダ側では、適応サンプリングマップのデコーディングの後で、各サブ領域は、サブ領域に関連付けられたサンプリングレートに従って、元の解像度に回復される。
【0149】
いくつかの例において、適応サンプリングマップの元の解像度への回復プロセスは、回復されたマップを生成する、逆サンプリングプロセスと称される。逆サンプリングプロセスからの回復後に、2Dアトラス形式における回復されたマップの出力は、3Dメッシュ再構築のために使用することができる。
【0150】
図12における例は、垂直方向における異なるブロック行への適応サンプリングを示しているが、同様な適応サンプリングは、水平方向の異なる列に適用することも、または、垂直方向および水平方向の両方に適用することもできる。
【0151】
いくつかの実施形態において、サンプリング適応は、パッチに基づいている。いくつかの例において、マップ内の異なるパッチは、異なるサンプリングレートを持つことができる。
【0152】
図13は、いくつかの例における適応サンプリングの図を示している。高解像度の2Dアトラスといった、マップ(1320)は、第1 2D形状A'および第2 2D形状B'といった、3Dメッシュ内のパッチに対応しているUVパッチとも称される、複数の2D形状を含んでいる。図13の例においては、垂直方向と水平方向の両方で第1 2D形状A'に2:1の第1サンプリングレートが適用されて、第1サンプリングされた2D形状A''を生成する。そして、垂直方向と水平方向の両方で第2 2D形状B'に第2サンプリングレートが適用されて、第2サンプリングされた2D形状B''を生成する。第1サンプリングされた2D形状A''と第2サンプリングされた2D形状B''は、適応サンプリングマップ(1330)と称される新しいマップに配置される。
【0153】
図13の例において、第1サンプリングされた2D形状A''は第1 2D形状A'より小さく、第2サンプリングされた2D形状B''は第2 2D形状B'と同じサイズである。適応サンプリングされたマップ(1330)は、ビデオエンコーダ(1130)といった、イメージまたはビデオエンコーダによって、3Dメッシュを搬送するビットストリームへとエンコーディングされる。いくつかの例において、サンプリングされた2D形状に関連付けられたサンプリングレートは、例えば、補助データエンコーダ(1140)によって、3Dメッシュを搬送するビットストリームへとエンコーディングされる。
【0154】
いくつかの例においては、デコーダ側で、ビデオデコーダ(1160)といった、イメージ/ビデオデコーダが、ビットストリームから適応サンプリングされたマップ(1330)といった、初期マップをデコーディングする。さらに、サンプリングされた2D形状に関連付けられたサンプリングレートは、例えば、補助データデコーダ(1170)によって、ビットストリームからデコーディングされる。サンプリングされた2D形状に関連付けられたサンプリングレートに従って、適応サンプリングマップ(1330)内のサンプリングされた2D形状は、元のサイズに回復され(例えば、縦方向および横方向におけるピクセル数が同じ)、回復されたマップを生成する。回復されたマップは、次いで、3Dメッシュ再構成のために使用される。
【0155】
本開示の一態様に従って、異なるマップタイプのサンプリングレート、異なるサブ領域のサンプリングレート、異なるパッチのサンプリングレート、等といった、適応サンプリング情報は、メッシュエンコーダ側およびメッシュデコーダ側において既知である。いくつかの例において、適応サンプリング情報は、3Dメッシュを搬送するビットストリームへと適切にエンコーディングされる。従って、メッシュデコーダおよびメッシュエンコーダは、同じ適応サンプリング情報に基づいて動作することができる。メッシュデコーダは、マップを正しいサイズに回復することができる。
【0156】
本開示の一態様に従って、メッシュエンコーダ(1110)といった、メッシュエンコーダは、2Dアトラスサンプリング(UVアトラスサンプリングとも称される)を実行することができる。例えば、適応サンプリングモジュール(1120)は、UVアトラス(1105)を用いてメッシュを受信できる。UVアトラス(1105)用いたメッシュの各頂点は、UVアトラス内に対応するポイントを有しており、そして、UVアトラス内の対応するポイントの位置はUV座標によって指定される。UVアトラスにおいて、対応するポイントは、3D空間内の頂点の3D座標(例えば、(x,y,z))を含むベクトル値を持つことができる。さらに、UVアトラス(1105)を用いたメッシュは、頂点に関連付けられた属性値を、1つ以上の属性マップ内のUV座標によって指定された位置でのピクセルの属性値として保管する、1つ以上の属性マップを含む。例えば、カラーマップは、頂点の色を、カラーマップ内のUV座標によって指定された位置でのピクセルの色として保管することができる。
【0157】
適応サンプリングモジュール(1120)は、UVアトラス(1105)を用いてメッシュに適応サンプリング技術を適用し、そして、適応サンプリングマップ(1125)(いくつかの例においては適応サンプリングアトラスとも称される)を出力することができる。それは、例えば、サンプリングジオメトリマップ(サンプリングされたUVマップまたはサンプリングされたUVアトラスとも称される)、1つ以上のサンプリングされた属性マップ(いくつかの例においてはテクスチャマップとも称される)、などを含むことができる。いくつかの例において、適応サンプリングされたマップ(1125)は、サンプリングされた占有マップを含んでいる。
【0158】
本開示の一態様によると、同じサンプリングレート構成は、ジオメトリマップ、属性マップ、占有マップ、等といった、様々なマップに対して適用することができ、適応サンプリングされたマップを生成する。いくつかの例において、適応サンプリングモジュール(1120)は、UVアトラスについて(例えば、UVアトラスにおけるサンプリング位置に基づいて)でサンプリングすることによって、適応サンプリングされたマップ(1125)を生成することができる。適応サンプリングモジュール(1120)は、UVアトラスにおけるサンプリング位置を決定し、そして、次いで、UVアトラスにおけるサンプリング位置に従って適応サンプリングマップを生成することができる。例えば、UVアトラスにおけるサンプリング位置が、例えば、サンプリングレートに従って決定された後に、次いで、適応サンプリングモジュール(1120)は、サンプリングされたマップ(1125)それぞれにおけるサンプリングされたポイントの位置を決定し、そして、次いで、サンプリングされたマップ(1125)におけるそれぞれのサンプリングされたポイントの値を決定する。
【0159】
一例において、UVアトラスにおけるサンプリング位置が、メッシュの頂点によって定義されたポリゴンの内側にある場合には、サンプリング位置が占有され、そして、次いで、サンプリング位置に対応するサンプリングされた占有マップ内のサンプリングされたポイントが占有されるように設定される(例えば、サンプリングされた占有マップ内のサンプリングされたポイントの値は「1」である)。しかしながら、サンプリング位置がメッシュの頂点によって定義されたポリゴンの内側にない場合に、サンプリング位置は占有されず、次いで、サンプリング位置に対応するサンプリングされた占有マップ内のサンプリングされたポイントは占有されないように設定される(例えば、サンプリングされた占有マップ内のサンプリングされたポイントの値は「0」である)。
【0160】
UVアトラスにおける各占有サンプリング位置について、適応サンプリングモジュール(1120)は、占有サンプリング位置での3D(ジオメトリ)座標を決定し、そして、決定された3D座標を、サンプリングされたジオメトリマップ内の対応するサンプリングされたポイントのベクトル値として割り当てることができる(サンプリングされたUVアトラスとも称される)。同様に、適応サンプリングモジュール(1120)は、占有サンプリング位置での属性値(例えば、色、ノーマル(normal)、など)を決定し、そして、決定された属性値を、サンプリングされた属性マップ内の対応するサンプリングされたポイントの属性値として割り当てることができる。いくつかの例において、適応サンプリングモジュール(1120)は、関連するポリゴン頂点から補間することによって、占有サンプリング位置の3D座標および属性を決定することができる。
【0161】
一例において、メッシュは三角形で形成されている。サンプリング位置は、メッシュの3個の頂点によって定義される三角形の内側にあり、従って、サンプリング位置は占有サンプリング位置である。適応サンプリングモジュール(1120)は、例えば、三角形の3個の頂点の3D座標の加重平均3D座標に従って、占有サンプリング位置での3D(ジオメトリ)座標を決定することができる。適応サンプリングモジュール(1120)は、加重平均3D座標を、サンプリングされたジオメトリマップ内の対応するサンプリングされたポイントのベクトル値として割り当てることができる。同様に、適応サンプリングモジュール(1120)は、例えば、三角形の3個の頂点の属性の加重平均属性値(例えば、加重平均カラー、加重平均ノーマル、など)に従って、占有サンプリング位置の属性値を決定することができる。適応サンプリングモジュール(1120)は、サンプリングされた属性マップ内の対応するサンプリングされたポイントの属性値となる、加重平均属性値を割り当てることができる。
【0162】
いくつかの例において、サンプリングレート(sampling rate、SR)は、2Dアトラス(例えば、ジオメトリマップ、属性マップ、など)全体にわたり一貫しているが、u軸およびv軸のサンプリングレートは異なり得る。u軸およびv軸で異なるサンプリングレートを使用することは、異方性再メッシュ(anisotropic remeshing)を可能にする。図12および図13を参照して説明したように、いくつかの例において、2Dアトラスは、スライス、またはタイル、もしくはパッチといった、複数の領域へと分割することができ、そして、複数の領域は、それぞれのサンプリングレートを有することができる。例えば、メッシュは接続された三角形で形成されており、メッシュは複数のパッチへと分割することができ、そして、各パッチはメッシュ全体のサブセットを含んでいる。異なるサンプリングレートが、例えば、適応サンプリングモジュール(1120)によって、それぞれのパッチに適用することができる。
【0163】
本開示の一態様によると、メッシュエンコーダ(1110)といった、メッシュエンコーダは、2Dアトラスの各領域に適したサンプリングレートを決定することができる。
【0164】
いくつかの例において、適応サンプリングモジュール(1120)は、2Dアトラス(例えば、ジオメトリマップ、属性マップ、など)にわたるサンプリングレート分布を決定することができる。例えば、適応サンプリングモジュール(1120)は、領域の特性に従って、領域の特定のサンプリングレート(SR)を決定することができる。一例において、特定のサンプリングレートが、領域の周波数スペクトルに基づいて決定される。例えば、リッチテクスチャ(rich-textures)領域(または、2Dアトラス全体)は、テクスチャ属性値において高い空間周波数成分を持つことができ、適応サンプリングモジュール(1120)は、高い空間周波数成分に適したサンプリングレート(例えば、低いサンプリングレート、低いサンプリングステップ)をリッチテクスチャ領域に対して割り当てることができる。別の例において、高いアクティビティを伴う領域(または、2Dアトラス全体)は、座標(例えば、3D座標、UV座標)内に高い空間周波数成分を含むことができ、適応サンプリングモジュール(1120)は、高いアクティビティに適したサンプリングレート(例えば、低いサンプリングレート、低いサンプリングステップ)を領域に割り当てることができる。別の例において、スムーズ領域(または、2Dアトラス全体)は、テクスチャ属性値において高い空間周波数成分を欠くことがあり、適応サンプリングモジュール(1120)は、スムーズ領域に適したサンプリングレート(例えば、高いサンプリングレート、高いサンプリングステップ)を割り当てることができる。別の例において、低いアクティビティを伴う領域(または、2Dアトラス全体)は、座標(例えば、3D座標、UV座標)において高い空間周波数成分を欠くことがあり、適応サンプリングモジュール(1120)は、領域のアクティビティの低さに適したサンプリングレート(例えば、高いサンプリングレート、低いサンプリングステップ)を割り当てることができる。
【0165】
本開示の一態様によると、サンプリングレートはオーバーサンプリング比率(Oversampling ratio、OR)パラメータによって表すことができる。ORパラメータは、領域内のサンプリングポイントの数と、領域内の元の頂点の数との比率として定義される。領域のORパラメータが1より大きい場合、ORパラメータは、元の頂点の数と比較して領域がオーバーサンプリングされていることを示している。領域のORパラメータが1より小さい場合、ORパラメータは、元の頂点の数と比較して領域がアンダーサンプリングされていることを示している。例えば、メッシュの領域が1000個の頂点で構成されており、そして、その領域に特定のサンプリングレート(SR)が適用されると、3000個のサンプリングポイントが獲得される。次いで、本領域のORパラメータは、そのSRで3に等しい。つまり、OR(SR)=3である。
【0166】
いくつかの実施形態において、適応サンプリングモジュール(1120)は、事前に定義されたターゲットORパラメータに最も近いORパラメータを達成するために、領域の最終的なサンプリングレートを決定するアルゴリズムを使用することができる。例えば、特定の領域iに対して(例えば、iは特定の領域を識別するための領域インデックスである)、ターゲットOR(TORiによって示される)パラメータが、特定の領域iに対して定義される。適応サンプリングモジュール(1120)は、ターゲットOR(TORi)パラメータに最も近いORパラメータを生成するサンプリングレートとして、特定の領域i(SRiによって示される)の最終的なサンプリングレートを決定することができる。式(1)で表される、といったものである。
【数1】
式(1)
【0167】
一例において、適応サンプリングモジュール(1120)は、複数のサンプリングレートを試すことができ、そして、ターゲットORパラメータに最も近いORパラメータを生成する複数のサンプリングレートのうち1つを選択することができる。別の例において、適応サンプリングモジュール(1120)は、バイナリ検索アルゴリズム、等といった、アルゴリズムを使用して、サンプリングレートの検索範囲で検索を実行し、ターゲットORパラメータに最も近いORパラメータを生成する最終的なサンプリングレートを決定することができる。
【0168】
いくつかの実施形態において、適応サンプリングモジュール(1120)は、アルゴリズムを使用して、事前に定義された閾値(Th0によって示される)よりも小さい最大ORパラメータを達成できる、特定の領域i(例えば、iは特定の領域を識別するための領域インデックスである)の最終的なサンプリングレートを決定することができる。いくつかの例において、アルゴリズムは、比較的に小さい(例えば、1:1)基本サンプリングレート(BSR)から開始し、そして、反復サイクルを伴う反復プロセスを使用して、最終的なサンプリングレートを決定する。現在のBSRをテストする各反復サイクルにおいては、領域についてORパラメータが決定される。ORパラメータが閾値Th0より小さい場合、現在のBSRは、特定の領域について最終サンプリングレートである。そして、ORパラメータが閾値Th0より大きい場合、現在のBSRに基づいて新しいBSRが計算される。例えば、スケーリングファクタF0(例えば、1より大きい)が現在のBSRに適用され、新しいBSRが決定される。次いで、新しいBSRが現在のBSRになり、そして、反復プロセスは、次の反復サイクルへ進む。いくつかの例において、領域(i)の最終的なサンプリングレートを決定するプロセスが、式(2)として決定されている。
【数2】
式(2)
ここで、SRiは最終サンプリングレートであり、Th0はORパラメータの閾値であり、そして、F0>1は、BSRを増加させるためのスケーリングファクタである。従って、BSRを伴うORパラメータが閾値Th0より小さい場合に、現在の領域は、BSRを最終サンプリングレートとして使用するだけであり、そうでなければ、最終サンプリングレートは、スケーリングファクタ係数F0によって変更される。プロセスは、OR(SRi)が閾値Th0より小さくなるまで繰り返し実行できる。
【0169】
いくつかの実施例において、適応サンプリングモジュール(1120)は、アルゴリズムを使用して、第1の事前定義された閾値(Th0で示される)よりも小さく、かつ、第2の事前定義された閾値(Th1で示される)よりも大きい、といったものである、特定の範囲におけるORパラメータを達成できる特定の領域i(例えば、iは特定の領域を識別するための領域インデックスである)について最終サンプリングレート(SRi)を決定することができる。いくつかの例において、本アルゴリズムは、任意の基本サンプリングレート(BSR)から開始し、そして、反復サイクルを伴う反復プロセスを使用して、最終サンプリングレートを決定する。現在のBSRをテストするための各反復サイクルにおいては、特定の領域のORパラメータが決定される。ORパラメータが、第1の事前定義された閾値Th0よりも小さく、かつ、Th1による第2の事前定義された閾値よりも大きいといった、特定の範囲にある場合に、現在のBSRは、特定の領域について最終サンプリングレートである。しかしながら、ORパラメータが第1の事前定義された閾値Th0よりも大きい場合は、現在のBSRに第1スケーリングファクタ(例えば、1より大きい)が適用されて、新しいBSRが決定される。ORパラメータが第2の事前定義された閾値Th1よりも小さい場合は、現在のBSRに第2スケーリングファクタ(例えば、1より小さい)が適用されて、新しいBSRが決定される。次いで、新しいBSRが現在のBSSになり、そして、反復プロセスは次の反復サイクルに進む。
【0170】
いくつかの例において、領域iの最終的なサンプリングステップを決定するためのプロセスは、式(3)として決定されている。
【数3】
式(3)
ここで、BSRは基本サンプリングレートであり、Th0は第1の事前定義した閾値であり、Th1は第2の事前定義した閾値であり、そして、F0>1は、BSRを増加させるための第1スケーリング係数であり、0<F1<1は、BSRを減少させるための第2スケーリング係数を示している。
【0171】
スケーリング係数F0およびF1は、各領域について異なり得ることに注意すること。BSRを伴うORパラメータが閾値(例えば、Th0およびTh1)によって定義された特定の範囲内にある場合、現在の領域は、BSRを最終的なサンプリングレートとして使用することができる。BSRを伴うORパラメータがTh0以上である場合に、最終的なサンプリングレートは、スケーリングファクタF0によって増加される。BSRを伴うORパラメータがTh1以下である場合に、最終的なサンプリングレートは、スケーリングファクタF1によって減少される。プロセスは、OR(SRi)が、Th0およびTh1によって定義される範囲内になるまで反復的に実行することができる。
【0172】
本開示のいくつかの態様によると、適応サンプリングモジュール(1120)は、単一のマップにおいて異なるサンプリングレート(または、異なるサンプリングステップ)の領域を配置ですることができる。
【0173】
適応サンプリングレートを適用される場合に、サンプリングされたマップ内のサンプリングされた領域のサイズは、元のUVアトラスと比較して、または、均一なサンプリングレートを使用した場合と比較して、異なる比率によって変化知ることに注意すること。適応サンプリングモジュール(1120)は、サンプリングされたマップ内に異なるサンプリングレートのサンプリングされた領域を配置することができ、サンプリングされた領域を相互に重ならないように保つことができ、従って、サンプリングされたマップ内の各ポイントは、特定の領域について一対一の対応を有している。
【0174】
いくつかの例において、適応サンプリングモジュール(1120)は、サンプリングされた各領域の境界ボックスを決定することができ、そして、次いで、境界ボックスに従って、サンプリングされた領域を配置できる。一例において、元のUVアトラス内の特定の領域について、uminは特定の領域内の全ての頂点の最小u座標であり、そして、vminは特定の領域内の全ての頂点の最小v座標である。最小u座標および最小v座標に基づいて、適応サンプリングモジュール(1120)は、特定の領域に対応するサンプリングされた領域について境界ボックスを決定することができる。例えば、サンプリングされた領域の境界ボックスの左上隅を、サンプリングされたマップ内の位置(u0,v0)に配置することができ、その位置は、
【数4】
および
【数5】
によって計算することができる。ここで、SRは、u方向およびv方向に同じサンプリングレートが使用されている場合に、特定の領域に適用されるサンプリングレートを示しており、
【数6】
は、値Cよりも大きい最小整数を決定する天井関数(ceiling function)を示している。
【0175】
いくつかの実施例において、適応サンプリングモジュール(1120)は、サンプリングされた領域を特定の順序でサンプリングされたマップへと1個ずつ配置することができる。現在のサンプリング領域を配置するために、適応サンプリングモジュール(1120)は、位置(u0,v0)(例えば、現在のサンプリングされた領域の境界ボックスの左上隅)に従って、最初に現在のサンプリング領域を配置することができる。適応サンプリングモジュール(1120)は、現在のサンプリング領域が既に配置されたサンプリング領域とオーバーラップしていることを検出すると、適応サンプリングモジュール(1120)は、以前に配置されたサンプリング領域とのオーバーラップを避けるために、現在のサンプリング領域を配置する新しい位置を決定することができる。
【0176】
いくつかの例においては、所定の検索ウィンドウ及び/又は基準を定義することができ、そして、適応サンプリングモジュール(1120)は、所定の検索ウィンドウ及び/又は基準に従って、現在のサンプリング領域を配置するための新しい位置((u0,v0)で示される)を見つけることができる。いくつかの例においては、新しい位置(u1,v1)と元の位置との間のオフセット(UVオフセットとも称される)を、再構成のために、エンコーダ側からデコーダ側に信号化することができることに注意すること。
【0177】
いくつかの実施形態において、サンプリングされた領域は、オーバーラップしないだけでなく、領域間に所定量のギャップを有するようにも配置される。例えば、各サンプリングされた領域は、他のサンプリングされた領域との間に最小で10ピクセルの距離を有するように要求され得る。サンプリングされた領域間の間隔は様々な手法で定義できることに注意すること。いくつかの例において、サンプリングされた領域間の最小距離は、最小水平距離l0と、最小垂直距離l1によって定義することができる。
【0178】
本開示のいくつかの態様は、また、メッシュ圧縮について適応サンプリングのための信号技術も提供する。
【0179】
いくつかの実施形態において、メッシュの異なる領域のサンプリングレートは、メッシュの情報を搬送するビットストリームで信号化することができる。サンプリングレートは、ビットストリームの異なるレベルで信号化することができることに注意すること。一例として、サンプリングレートは、メッシュフレームのシーケンスを含むメッシュシーケンス全体のシーケンスヘッダにおいて信号化することができる。別の例において、サンプリングレートは、メッシュフレームのグループのグループヘッダで信号化することができる(つまり、ピクチャグループ(GOP)と同様の概念である)。別の例において、サンプリングレートは、各メッシュフレームのフレームヘッダにおいて信号化することができる。別の例において、メッシュフレーム内のスライスのサンプリングレートは、スライスのスライスヘッダで信号化される。別の例において、メッシュフレーム内のタイルのサンプリングレートは、タイルのタイルヘッダで信号化される。別の例において、メッシュフレーム内のパッチのサンプリングレートは、パッチのパッチヘッダで信号化される。
【0180】
具体的に、いくつかの実施例においては、ビットストリーム内の異なるレベルで適応サンプリング方法が適用されているか否かを示すために、制御フラグを信号化することができる。一例においては、制御フラグが、メッシュシーケンス全体のシーケンスヘッダで信号化される。別の例においては、制御フラグが、メッシュフレームのグループのグループヘッダで信号化される。別の例においては、制御フラグが各メッシュフレームのフレームヘッダで信号化される。別の例においては、メッシュフレーム内のスライスに対する制御フラグが、スライスのスライスヘッダで信号化される。別の例においては、メッシュフレーム内のタイルに対する制御フラグが、タイルのタイルヘッダで信号化される。別の例においては、メッシュフレーム内のパッチの制御フラグが、パッチのパッチヘッダで信号化される。あるレベルで制御フラグが真(true)である場合、適応サンプリングは、そのレベルで有効化され(enabled)、その結果、適応サンプリングレートが適用され得る。あるレベルで制御フラグが偽(false)である場合、適応サンプリングが無効化され(disabled)、そのレベルで均一なサンプリングレートが適用される。
【0181】
いくつかの例において、制御フラグは1ビットを含み、そして、様々な手法でコーディングすることができる。一例において、制御フラグは、固定または更新された確率でエントロピーコーディング(例えば、算術コーディングおよびハフマンコーディング)によってコード化される。別の例において、制御フラグは、より複雑でないコーディング技術でコード化される(バイパスコーディングと称される)。
【0182】
いくつかの例においては、適応サンプリングが有効化されているか否かに関係なく、基本サンプリングレートを信号化することができる。適応サンプリングが有効化されている場合、基本サンプリングレートを予測器(predictor)として使用することができ、そして、各領域は、基本サンプリングレートからの差異を信号化して、その領域の実際のサンプリングレートを示すことができる。適応サンプリングが無効化されている場合、基本サンプリングレートは、適切なレベルのコンテンツ全体において均一なサンプリングレートとして使用することができる。
【0183】
基本サンプリングレートは、同様に、ビットストリーム内の様々なレベルで信号化することができる。一例において、基本サンプリングレートは、メッシュシーケンス全体のシーケンスヘッダにおいて信号化することができる。別の例において、基本サンプリングレートは、メッシュフレームのグループのグループヘッダにおいて信号化することができる。別の例において、基本サンプリングレートは、各メッシュフレームのフレームヘッダにおいて信号化することができる。別の例において、メッシュフレーム内のスライスの基本サンプリングレートは、スライスのスライスヘッダにおいて信号化される。別の例において、メッシュフレーム内のタイルの基本サンプリングレートは、タイルのタイルヘッダにおいて信号化される。別の例において、メッシュフレーム内のパッチの基本サンプリングレートは、パッチのパッチヘッダにおいて信号化される。
【0184】
いくつかの例において、基本サンプリングレートは固定長または可変長の表現(例えば、固定kビット表現およびk次指数ゴロム(k-ordered Exp-Golomb)表現)によって二値化することができ、そして、各ビットは、固定または更新された確率でエントロピーコーディング(例えば、算術コーディングおよびハフマンコーディング)によってコード化することも、または、複雑さの少ないバイパスコーディングによってコード化することもできる。
【0185】
本開示の一態様によると、適応サンプリングが有効化されている場合、メッシュフレーム内の領域のサンプリングレートが適切に信号化される。いくつかの例において、メッシュフレーム全体における領域の数が、信号化され、または、導出することができる(例えば、CTU行の数、タイルの数、パッチの数、等として)。
【0186】
本開示の一態様によると、領域のサンプリングレートは、予測なしで信号化することができる。一例として、各領域(または、2Dアトラス全体)のサンプリングレートは、予測なしで直接的に信号化することができる。別の例において、各領域(または、2Dアトラス全体)のサンプリングレートは、エンコーダおよびデコーダの両方によって既知である事前に設定されたサンプリングレートのセットから選択することができる。特定のサンプリングレートのシグナリングは、事前に設定されたレートセット内の特定のサンプリングレートのインデックスを信号化することによって実行することができる。例えば、事前に設定されたサンプリングステップのセットは、(2ピクセルごと、4ピクセルごと、8ピクセルごと、等)を含むことができる。インデックス1は、2ピクセルごとのサンプリングレートを示すように信号化することができる(例えば、2:1)。インデックス2は、4ピクセルごとのサンプリングレートを示すように信号化することができる(例えば、4:1)。インデックス3は、8ピクセルごとのサンプリングレートを示すように信号化することができる(例えば、8:1)。
【0187】
本開示の別の態様によると、領域のサンプリングレートを予測することができる。任意の適切な予測技術を使用することができることに注意すること。
【0188】
一例において、メッシュフレームの各領域(または、2Dアトラス全体)のサンプリングレートは、事前に設定されたレートセットから予測することができる。別の例において、メッシュフレームの各領域(または、2Dアトラス全体)のサンプリングレートは、同じフレームの既にコード化された他の領域で以前に使用されたサンプリングレートから予測することができる。別の例において、メッシュフレームの各領域(または、2Dアトラス全体)のサンプリングレートは、既にコード化された他のメッシュフレームで以前に使用されたサンプリングレートから予測することができる。
【0189】
本開示の別の態様によると、各領域(または、2Dアトラス全体)のサンプリングレートは、予測および直接的な信号化の両方が許可される方法で決定することができる。一例において、サンプリングレートが予測されるか、または、直接的に信号化されるかを示すようにシンタックスを構造化することができる。サンプリングレートが予測されることをシンタックスが示す場合、サンプリングレートの予測に使用する予測器は、例えば、別のシンタックスによってさらに信号化される。サンプリングレートが直接的に信号化されることをシンタックスが示す場合、サンプリングレートの値は、例えば、別のシンタックスによって信号化される。
【0190】
いくつかの例において、サンプリングレートが(サンプリングレートの信号化またはサンプリングレートを指すインデックスの信号化によって)直接的に信号化される場合、サンプリングレートまたはサンプリングレートを指すインデックスは、固定長または可変長表現によって二値化することができ(例えば、固定kビット表現およびk次指数ゴロム表現)、そして、各ビットは、固定または更新された確率でエントロピーコーディング(例えば、算術コーディングおよびハフマンコーディング)によって、または、複雑さの少ないバイパスコーディングによってコード化することができる。
【0191】
いくつかの例において、サンプリングレートが予測によって信号化される場合、予測残差(prediction residual)を信号化することができる。予測残差は、固定長表現または可変長表現(例えば、固定kビット表現およびk次指数ゴロム表現)によって二値化することができ、そして、各ビットは、固定確率または更新された確率でエントロピーコーディング(例えば、算術コーディングおよびハフマンコーディング)によって、または、複雑さの少ないバイパスコーディングによってコード化することができる。例えば、予測残差の符号ビット(sign bit)はバイパスコーディングによってコード化することができ、そして、予測残差の絶対値は更新された確率でエントロピーコーディングによってコード化することができる。
【0192】
本開示のいくつかの態様によると、適応サンプリングが有効化されている場合、メッシュフレーム内の各領域のUV座標のオフセット(UVオフセットとも称される)、すなわち、offsetu=u0-unおよびoffsetv=v0-vnは、メッシュフレームを搬送するビットストリームにおいてコード化することができる。いくつかの例において、メッシュフレーム全体の領域の数が、信号化され、または、導出することができる(例えば、CTU行の数、タイルの数、パッチの数、等として)。
【0193】
本開示の一態様によると、領域のUVオフセットは、予測なしで信号化することができる。一例において、各領域のUVオフセットは、予測なしで直接的に信号化することができる。
【0194】
本開示の別の態様によると、領域のUVオフセットを予測することができる。任意の適切な予測技術を使用することができることに注意すること。一例において、各領域のUVオフセットは、事前に設定されたUVオフセットセットから予測される。別の例において、各領域のUVオフセットは、同じメッシュフレームの既にコード化された他の領域で以前に使用されたUVオフセットから予測される。別の例において、各領域のUVオフセットは、既にコード化された他のメッシュフレームで以前に使用されたUVオフセットから予測される。
【0195】
本開示の別の態様によると、各領域のUVオフセットは、予測および直接的な信号化の両方が許可される方法で信号化することができる。いくつかの例において、UVオフセットが予測されるか、または、直接的に信号化されるかを示すようにシンタックスを構造化することができる。UVオフセットが予測されることをシンタックスが示す場合、UVオフセットの予測に使用する予測器は、別のシンタックスによってさらに信号化される。UVオフセットが直接的に信号化されることをシンタックスが示す場合、UVオフセットの値は別のシンタックスによって信号化される。
【0196】
いくつかの例においては、UVオフセットが直接的に信号化され、UVオフセットの値は固定長または可変長表現(例えば、固定kビット表現およびk次指数ゴロム表現)によって二値化することができ、そして、各ビットは、固定確率または更新された確率でエントロピーコーディング(例えば、算術コーディングおよびハフマンコーディング)によってコード化することができ、または、複雑さの少ないバイパスコーディングによってコード化することができる。一例において、UVオフセットの符号ビットはバイパスコーディングによってコード化することができ、そして、UVオフセットの絶対値は更新された確率でエントロピーコーディングによってコード化することができる。
【0197】
いくつかの例において、UVオフセットの符号ビットは、サンプリングレートの値から推測または予測することができる。例えば、領域のサンプリングレートが基本サンプリングレートよりも大きい場合、UVオフセットの符号ビットは正の値として推測または予測することができる。そして、領域のサンプリングレートが基本サンプリングレートよりも小さい場合、UVオフセットの符号ビットは負の値として推測または予測することができる。領域のサンプリングレートが基本サンプリングレートと等しい場合、UVオフセットはゼロとして推測または予測することができる。
【0198】
いくつかの例においては、UVオフセットを予測することができ、予測残差を信号化することができる。例えば、予測残差は固定長または可変長の表現(例えば、固定kビット表現およびk次指数ゴロム)によって二値化され、そして、各ビットは、固定確率または更新された確率でエントロピーコーディング(例えば、算術コーディングおよびハフマンコーディング)によってコード化することができ、または、複雑さの少ないバイパスコーディングによってコード化することができる。一例において、予測残差の符号ビットはバイパスコーディングによってコード化することができ、そして、予測残差の絶対値は更新された確率でエントロピーコーディングによってコード化することができる。
【0199】
本開示のいくつかの態様は、また、デコーダ側で使用するためのメッシュ再構成技術も提供する。メッシュ再構成技術は、メッシュ再構成モジュール(1190)といった、メッシュ再構成モジュールにおいて使用することができる。
【0200】
いくつかの例において、デコーディングされたマップ(1165)はデコーディングされた占有マップを含んでおり、そして、メッシュ再構成モジュール(1190)は、デコーディングされた占有マップ、デコーディングされたジオメトリマップ、および、1つ以上のデコーディングされた属性マップを含むデコーディングされたマップ(1165)に従って、メッシュフレームを再構築することができる。いくつかの例において、デコーディングされた占有マップは、デコーディングされたジオメトリマップおよびデコーディングされた属性マップと同じサンプリングレートを使用した適応サンプリングの結果として得られる、サンプリングされた占有マップに対応しており、従って、デコーディングされた占有マップはサンプリングされた領域を含んでいることに注意すること。
【0201】
いくつかの例において、デコーディングされたマップ(1165)は、占有マップを含んでおらず、ビットストリーム(1145)は、各領域の境界頂点を識別する情報、例えば、補助データエンコーダ(1140)によってエンコーディングされた補助データ、を含んでいる。補助データデコーダ(1170)は、領域の境界頂点を識別する情報をデコーディングすることができる。メッシュ再構成モジュール(1190)は、領域の境界頂点に基づいて、推論された占有マップの領域を推論することができる。いくつかの例においては、推論された占有マップが適応サンプリングで処理されていないことに注意すること。メッシュ再構築モジュール(1190)は、推論された占有マップ、および、デコーディングされたジオメトリマップと1つ以上のデコーディングされた属性マップを含むデコーディングされたマップ(1165)に従って、メッシュフレームを再構築することができる。
【0202】
本開示の一態様に従って、メッシュ再構築モジュール(1190)は、メッシュフレーム内の頂点のUV座標を決定し、そして、デコーディングされたマップ(1165)およびとデコーディングされた補助データ(例えば、サンプリングレート、UVオフセット、境界頂点を識別する情報、など)に基づいて、メッシュフレーム内の頂点の3D座標および属性値を決定することができる。
【0203】
いくつかの実施形態において、領域内の頂点のUV座標を決定するために、ビットストリーム(1145)からデコーディングされたシンタックス値に従って、領域のサンプリングレート(SR)が決定される。いくつかの例において、領域の(offsetu,offsetv)といったUVオフセットは、ビットストリーム(1145)からデコーディングされたシンタックス値に従って決定される。
【0204】
一例において、デコーディングされたマップ(1165)は、デコーディングされた占有マップを含んでいる。メッシュ再構成モジュール(1190)は、デコーディングされた占有マップのサンプリングされた領域内の各占有ポイントに対応する頂点のUV座標を決定することができる。例えば、サンプリングされた領域内の座標(ui,vi)を有する各占有ポイントについて、メッシュ再構成モジュール(1190)は、式(4)および式(5)に従って、占有ポイントに対応する頂点のUV座標(Ui,Vi)を決定することができる。
【数7】
式(4)
【数8】
式(5)
【0205】
別の例において、デコーディングされたマップ(1165)は、デコーディングされた占有マップを含まない。メッシュ再構成モジュール(1190)は、領域の境界頂点に従って、推論された占有マップ内の推定領域を決定することができる。推論された領域内の占有ポイントに対応する頂点のUV座標は、推論された占有マップの領域内の占有ポイントの位置によって直接的に推することが論できる。例えば、推論された占有マップ内の占有ポイントは、特定のUV座標(U,V)によって定義される位置を有し、特定のUV座標(U,V)は、メッシュフレーム内の対応する頂点のUV座標である。
【0206】
いくつかの実施形態においては、占有マップ上の各占有ポイント(例えば、デコーディングされた占有マップ、推定占有マップ)について、メッシュ再構成モジュール(1190)は、メッシュフレーム上の頂点を回復することができ、そして、デコーディングされたジオメトリマップおよびデコーディングされた属性マップ内の対応する位置に従って、対応するジオメトリ値(例えば、3D座標)および属性値を決定することができる。
【0207】
いくつかの実施形態において、領域内の頂点についてジオメトリマップおよび属性マップ内の対応する位置を導出するために、ビットストリーム(1145)からデコーディングされたシンタックス値に従って、領域のサンプリングレート(SR)が決定される。いくつかの例において、領域の(offsetu,offsetv)といった、UVオフセットは、ビットストリーム(1145)からデコーディングされたシンタックス値に従って決定される。
【0208】
一例において、デコーディングされたマップ(1165)は、デコーディングされた占有マップを含んでいる。デコーディングされた占有マップのサンプリングされた領域内の座標を持つ各占有ポイントについて、デコーディングされたジオメトリマップおよびデコーディングされた属性マップ内の対応する位置は、(ui,vi)から直接的に導出ですることがきる。例えば、サンプリングされた占有マップを獲得するために占有マップに適用されるサンプリングレートは、(サンプリングされたジオメトリマップを獲得するための)ジオメトリマップおよび(サンプリングされた属性マップを獲得するための)属性マップに対して適用されるサンプリングレートと一致している。デコーディングされた占有マップはサンプリングされた占有マップに対応し、デコーディングされたジオメトリマップはサンプリングされたジオメトリマップに対応し、そして、デコーディングされた属性マップはサンプリングされた属性マップに対応している。従って、デコーディングされた占有マップ内の占有ポイントは、デコーディングされたジオメトリマップおよびデコーディングされた属性マップ内で同じ座標を持つ対応するポイントを有することができる。
【0209】
別の例において、デコーディングされたマップ(1165)は、デコーディングされた占有マップを含まない。メッシュ再構成モジュール(1190)は、領域の境界頂点に従って、推論された占有マップ内の推定領域を決定することができる。推定領域内で(Ui,Vi)座標を持つ各占有ポイントについて、ジオメトリマップおよび属性マップ内の対応する位置が、式(6)および式(7)で導出することができる。
【数9】
式(6)
【数10】
式(7)
【0210】
いくつかの実施形態において、メッシュ再構成モジュール(1190)は、占有位置から推測することによって頂点間の接続情報を推測することができる。いくつかの実施形態において、接続情報は、ビットストリーム(1145)において明示的に信号化することができる。
【0211】
図14は、本開示の一実施形態によるプロセス(1400)を概説するフローチャートを示している。プロセス(1400)は、メッシュに対するエンコーディング処理の最中に使用することができる。様々な実施形態において、プロセス(1400)は、処理回路によって実行される。いくつかの実施形態において、プロセス(1400)は、ソフトウェア命令で実装され、従って、処理回路がソフトウェア命令を実行するときに、処理回路は、プロセス(1400)を実行する。プロセスは、(S1401)で開始し、そして、(S1410)に進む。
【0212】
(S1410)では、オブジェクトのサーフェスを表すポリゴンを伴うメッシュフレームのデータ構造が受信される。メッシュフレームのデータ構造は、メッシュフレームの頂点をUVアトラスにおけるUV座標に対して関連付けるUVアトラスを含んでいる。
【0213】
(S1420)では、メッシュフレームの領域のそれぞれの特性に応じて、メッシュフレームの領域についてそれぞれのサンプリングレートが決定される。
【0214】
(S1430)では、メッシュフレームの領域のそれぞれのサンプリングレートがUVアトラスに適用されて、UVアトラスにおけるサンプリング位置が決定される。
【0215】
(S1440)では、UVアトラスにおけるサンプリング位置に従って、メッシュフレームについて1つ以上のサンプリングされた二次元(2D)マップが形成される。
【0216】
(S1450)では、1つ以上のサンプリングされた2Dマップが、ビットストリームへとエンコーディングされる。
【0217】
メッシュフレームの領域についてそれぞれのサンプリングレートを決定するために、いくつかの例においては、メッシュフレームの第1領域について第1サンプリングレートが、第1領域内のサンプリング位置の第1総数(first number)を制限する要件に従って決定される。一例において、第1サンプリングレートは、ターゲット値に最も近いオーバーサンプリング比率(OR)を達成するように決定される。ORは、サンプリング位置の第1総数と、元はメッシュフレームの第1領域にあった頂点の総数との間の比率である。
【0218】
別の例において、第1サンプリングレートは、比較的に小さく初期化されており、そして、オーバーサンプリング比率(OR)が第1閾値より小さくなるまで調整される。ORは、サンプリング位置の第1総数と、元はメッシュフレームの第1領域にあった頂点の総数との間の比率である。
【0219】
別の例において、第1サンプリングレートは、オーバーサンプリング比率(OR)が第1閾値より小さく、かつ、第2閾値より大きくなるまで、調整される。ORは、サンプリング位置の第1総数と、元はメッシュフレームの第1領域にあった頂点の総数との間の比率である。
【0220】
いくつかの例において、1つ以上のサンプリングされた2Dマップのサンプリングされた2Dマップは、UVアトラスにおけるサンプリング位置に対応するサンプリングされたポイントを伴うサンプリングされた領域を含んでいる。一例において、サンプリング位置がポリゴン内にある場合、サンプリング位置は、占有されていると判断される。次いで、サンプリング位置に対応するサンプリングされた2Dマップ内のサンプリングされたポイントの属性が、ポリゴンの頂点の属性に従って決定される。
【0221】
いくつかの例において、1つ以上のサンプリングされた2Dマップを形成するために、メッシュの領域に対応するサンプリングされた領域は、メッシュの領域のそれぞれのサンプリングレートに基づいて決定することができる。次いで、サンプリング領域は、サンプリングされたマップを形成するように、非オーバーラップ構成に配置される。一例において、サンプリングされた領域は、1つずつ配置される。一例においては、サンプリングされた領域の境界ボックスが決定され、そして、サンプリングされた領域は、境界ボックスの1つ以上のコーナーが既に配置されている他のサンプリングされた領域とオーバーラップしないように配置される。
【0222】
例えば、サンプリング領域を非オーバーラップ構成で配置するためには、サンプリングされた領域のサブセットが非オーバーラップ構成で配置された後で、現在のサンプリングされた領域について、初期配置位置が、現在のサンプリングされた領域のサンプリングレートに従って決定される。次いで、初期配置位置での現在のサンプリングされた領域が、サンプリングされた領域のサブセットとオーバーラップするか否かが決定される。
【0223】
いくつかの例において、初期配置位置に対するオフセットは、サンプリングされた領域のサブセットとオーバーラップしている初期配置位置での現在のサンプリングされた領域に応じて、決定される。オフセットにより、現在のサンプリングされた領域は、サンプリングされた領域のサブセットとオーバーラップしないようにできる。
【0224】
いくつかの例において、非オーバーラップ構成は、サンプリングされた領域間の最小距離要件を含んでいる。
【0225】
いくつかの実施例において、領域にそれぞれ関連付けられたサンプリングレートは、様々な技術によってエンコーディングされる。一例において、第1領域の第1サンプリングレートの値は、ビットストリームへと直接的にエンコーディングされる。別の例においては、第1インデックスがビットストリームへとエンコーディングされ、そして、第1インデックスは、サンプリングレートのセットからの第1サンプリングレートの選択を示している。別の例においては、事前に設定されたサンプリングレートのセットからの第1サンプリングレートを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされる。別の例においては、メッシュフレームのエンコーディングされた領域について以前に使用されたサンプリングレートからの第1サンプリングレートを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされる。別の例においては、メッシュフレームの先にエンコーディングされた別のメッシュフレーム内のエンコーディングされた領域について以前に使用されたサンプリングレートからの第1サンプリングレートを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされる。
【0226】
いくつかの実施例において、エンコーダ側は、第1領域に関連付けられた第1サンプリングレートを信号化するか、または、第1サンプリングレートを予測するかを決定し、そして、その決定を示す第1シンタックス値をビットストリームへとエンコーディングすることができる。一例においては、第1サンプリングレートを信号化する決定に応答して、第1サンプリングレートの値が、ビットストリームへと直接的にエンコーディングされる。別の例においては、第1サンプリングレートを信号化する決定に応答して、インデックスがビットストリームへとエンコーディングされる。インデックスは、サンプリングレートのセットからの第1サンプリングレートの選択を示している。
【0227】
いくつかの例においては、第1サンプリングレートを予測する決定に応答して、第2シンタックスがビットストリームへとエンコーディングされる。第2シンタックスは、第1サンプリングレートを予測するために使用する予測器を示している。さらに、一例においては、予測残差がビットストリームへとエンコーディングされる。予測残差は、第1サンプリングレートと予測器のサンプリングレートとの間の差異である。
【0228】
いくつかの例においては、基本サンプリングレートがビットストリームへとエンコーディングされる。基本サンプリングレートは、適応サンプリングが使用されているか否かに関係なく、任意の適切なレベルでエンコーディングすることができる。基本サンプリングレートは、一例における予測器として使用することができる。
【0229】
いくつかの例においては、制御フラグがエンコーディングされ、メッシュフレームにおける適応2Dアトラスサンプリングの有効化または無効化を示す。
【0230】
いくつかの例においては、メッシュフレームの第1領域に関連付けられた第1UVオフセットが決定される。第1UVオフセットは、他のサンプリング領域とのオーバーラップを避けるために、第1領域に対応する第1サンプリング領域に対して適用される。1つ以上のシンタックスがビットストリームへとエンコーディングすることができ、1つ以上のシンタックスは第1UVオフセットを示すことができる。一例においては、第1UVオフセットの値を有しているシンタックスがビットストリームへと直接的にエンコーディングされる。別の例においては、UVオフセットの事前に設定されたセットに基づいて第1UVオフセットを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされる。別の例においては、メッシュフレームのエンコーディングされた領域について以前に使用されたUVオフセットに基づいて第1UVオフセットを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされる。別の例においては、メッシュフレームの先にエンコーディングされた別のメッシュフレーム内のエンコーディングされた領域について以前に使用されたUVオフセットに基づいて第1UVオフセットを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされる。
【0231】
いくつかの例においては、ビットストリームへの第1UVオフセットを予測するための予測器を示すシンタックスが、ビットストリームへとエンコーディングされ、そして、予測残差がビットストリームへとエンコーディングされる。予測残差は、第1UVオフセットと予測器のUVオフセットとの間の差異である。
【0232】
次いで、プロセスは、(S1499)に進み、そして、終了する。
【0233】
プロセス(1400)は、適切に適応させることができる。プロセス(1400)におけるステップは、変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0234】
図15は、本開示の一実施形態による、プロセス(1500)を概説するフローチャートを示している。プロセス(1500)は、メッシュに対するデコーディング処理の最中に使用することができる。様々な実施形態において、プロセス(1500)は、処理回路によって実行される。いくつかの実施形態において、プロセス(1500)は、ソフトウェア命令で実装され、従って、処理回路がソフトウェア命令を実行するときに、処理回路は、プロセス(1500)を実行する。プロセスは、(S1501)で開始し、そして、(S1510)に進む。
【0235】
(S1510)では、メッシュフレームを搬送しているビットストリームから2Dの複数のマップがデコーディングされる。メッシュフレームは、ポリゴンを伴うオブジェクトのサーフェスを表しており、2Dの複数のマップは、少なくともデコーディングされたジオメトリマップ、および、適応2Dアトラスサンプリングが適用されているデコーディングされた属性マップを含んでいる。
【0236】
(S1520)では、ビットストリームにおいて信号化されたシンタックスに従って、少なくとも第1サンプリングレートおよび第2サンプリングレートが決定される。第1サンプリングレートは適応2Dアトラスサンプリングの最中にメッシュフレームの第1領域に対して適用され、そして、第2サンプリングレートは適応2Dアトラスサンプリングの最中にメッシュフレームの第2領域に対して適用される。第1サンプリングレートは、第2サンプリングレートとは異なっている。
【0237】
(S1530)では、複数のマップに基づいて、第1サンプリングレートに従って、少なくともメッシュフレームの第1頂点が再構築され、そして、第2サンプリングレートに従ってメッシュフレームの第2頂点が再構築される。
【0238】
いくつかの例において、複数のマップは、適応2Dアトラスサンプリングが適用されているデコーディングされた占有マップを含んでいる。第1サンプリングレートに従って少なくとも第1頂点を再構築するために、メッシュフレームの第1領域に対応しているデコーディングされた占有マップの第1サンプリング領域内の占有ポイントの初期UV座標が、決定される。占有ポイントは、第1頂点に対応している。次いで、第1頂点について回復されたUV座標が、初期UV座標および第1サンプリングレートに基づいて決定される。一例においては、第1サンプリング領域の第1UVオフセットが、ビットストリームからのシンタックスに従って決定される。第1頂点の回復されたUV座標は、初期UV座標、第1サンプリングレート、および第1UVオフセットに基づいて決定される。さらに、一例において、第1頂点について回復された3D座標は、初期UV座標でのデコーディングされたジオメトリマップ内のピクセルに従って決定され、そして、第1頂点について回復された属性値は、初期UV座標でのデコーディングされた属性マップ内のピクセルに従って決定される。
【0239】
いくつかの実施形態において、複数のマップは占有マップを欠いている。第1サンプリングレートに従って少なくとも第1頂点を再構成するために、第1領域について第1境界頂点を示す情報が、ビットストリームからデコーディングされる。第1領域に対応している占有マップ内の第1占有領域は、第1境界頂点に従って推論される。第1占有領域内の占有ポイントのUV座標が獲得され、占有ポイントは第1頂点に対応することができる。UV座標は、少なくとも第1サンプリングレートに従って、サンプリングされたUV座標に変換される。複数のマップに基づいて、第1頂点が、サンプリングされたUV座標に従って再構築される。
【0240】
いくつかの例においては、第1頂点を再構築するために、サンプリングされたUV座標でのデコーディングされたジオメトリマップ内のピクセルに従って、第1頂点の回復された3D座標が決定され、そして、サンプリングされたUV座標でのデコーディングされた属性マップ内のピクセルに従って、第1頂点の回復された属性値が決定される。
【0241】
いくつかの例においては、UV座標をサンプリングされたUV座標に変換するために、第1領域に関連付けられた第1UVオフセットが、ビットストリームからデコーディングされ、そして、UV座標は、第1サンプリングレートおよび第1UVオフセットに従って、サンプリングされたUV座標に変換される。
【0242】
いくつかの実施例において、少なくとも第1サンプリングレートおよび第2サンプリングレートは、様々な技術によって決定できる。一例において、少なくとも第1サンプリングレートおよび第2サンプリングレートの値は、ビットストリームから直接的にデコーディングされる。別の例においては、少なくとも第1インデックスおよび第2インデックスがビットストリームからデコーディングされる。第1インデックスはサンプリングレートのセットからの第1サンプリングレートの選択を示し、そして、第2インデックスはサンプリングレートのセットからの第2サンプリングレートの選択を示している。別の例においては、第1サンプリングレートが事前に設定されたレートのセットに基づいて予測される。別の例においては、メッシュフレームのデコーディングされた領域について以前に使用されたサンプリングレートに基づいて、第1サンプリングレートが予測される。別の例においては、メッシュフレームの先にデコーディングされた別のメッシュフレームのデコーディングされた領域について以前に使用されたサンプリングレートに基づいて、第1サンプリングレートが予測される。
【0243】
いくつかの実施例においては、第1サンプリングレートを決定するために、第1サンプリングレートが信号化されるか、または、予測されるかを示す第1シンタックス値が、ビットストリームからデコーディングされる。一例において、第1サンプリングレートが信号化されることを示す第1シンタックス値に応答して、第1サンプリングレートの値がビットストリームから直接的にデコーディングされる。別の例においては、第1サンプリングレートが信号化されることを示す第1シンタックス値に応答して、ビットストリームからインデックスがデコーディングされる。インデックスは、サンプリングレートのセットからの第1サンプリングレートの選択を示している。
【0244】
いくつかの例においては、第1サンプリングレートが予測されることを示す第1シンタックス値に応答して、第2シンタックスがビットストリームからデコーディングされる。第2シンタックスは、第1サンプリングレートを予測するために使用する予測器を示している。さらに、一例においては、ビットストリームからデコーディングされたシンタックス値に基づいて、予測残差が決定される。そして、予測器および予測残差に基づいて、第1サンプリングレートが決定される。
【0245】
いくつかの例においては、ビットストリームから基本サンプリングレートがデコーディングされ、そして、基本サンプリングレートに従って、少なくとも第1サンプリングレートおよび第2サンプリングレートを決定することができる。例えば、基本サンプリングレートは、予測器として使用される。
【0246】
いくつかの例においては、メッシュフレームにおける適応2Dアトラスサンプリングの有効化を示す制御フラグが、ビットストリームからデコーディングされる。次いで、メッシュフレーム内の領域の総数および領域のサンプリングレートが、領域についてそれぞれに、例えば、ビットストリームのシンタックスに基づいて、決定される。
【0247】
いくつかの例においては、第1領域に関連付けられた第1UVオフセットがビットストリームから決定され、そして、複数のマップに基づいて、メッシュフレームの第1頂点が、第1サンプリングレートおよび第1UVオフセットに従って再構築される。一例においては、第1領域に関連付けられた第1UVオフセットを決定するために、第1UVオフセットの値がビットストリームから直接的にデコーディングされる。別の例においては、第1UVオフセットが事前に設定されたUVオフセットのセットに基づいて予測される。別の例においては、第1UVオフセットが、メッシュフレームのデコーディングされた領域について以前に使用されたUVオフセットに基づいて予測される。別の例においては、第1UVオフセットが、メッシュフレームの先にデコーディングされた別のメッシュフレームのデコーディングされた領域について以前に使用されたUVオフセットに基づいて予測される。
【0248】
いくつかの実施例においては、第1領域に関連付けられた第1UVオフセットを決定するために、第1UVオフセットが信号化されるか、または、予測されるかを示す第1シンタックス値が、ビットストリームからデコーディングされる。一例においては、第1UVオフセットが信号化されることを示す第1シンタックス値に応答して、第1UVオフセットの値が、ビットストリームから直接的にデコーディングされる。一例においては、第1UVオフセットの符号が、第1サンプリングレートと基本サンプリングレートとの比較に基づいて、推論される。
【0249】
別の例においては、第1UVオフセットが予測されることを示す第1シンタックス値に応答して、第2シンタックスがビットストリームからデコーディングされる。第2シンタックスは、第1UVオフセットの予測のために使用する予測器を示している。さらに、予測残差が、ビットストリームからデコーディングされたシンタックス値に基づいて決定され、そして、第1UVオフセットは、予測器および予測残差に基づいて決定される。
【0250】
次いで、プロセスは、(S1599)に進み、そして、終了する。
【0251】
プロセス(1 500)は、適切に適応させることができる。プロセス(1500)におけるステップは、変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0252】
本開示で開示された技術は、任意の順序で別々に使用されてよく、または、組み合わせて使用されてもよい。さらに、技術それぞれ(例えば、方法、実施形態)、エンコーダ、およびデコーダは、処理回路(例えば、1つ以上のプロセッサ、または、1つ以上の集積回路)によって実装することができる。いくつかの例においては、1つ以上のプロセッサが、非一時的なコンピュータ可読媒体に保管されているプログラムを実行する。
【0253】
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装することができ、そして、1つ以上のコンピュータ可読媒体に物理的に保管することができる。例えば、図16は、開示された技術的事項の所定の実施形態を実装するのに適したコンピュータシステム(1600)を示している。
【0254】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、または、同様のメカニズムの対象となり得る、任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングすることができ、直接的に、または、解釈(interpretation)、マイクロコード実行などを通じて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)、などによって実行できる、命令を含んでいるコードを作成する。
【0255】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネット(internet of things)デバイス、などを含む、様々な種類のコンピュータ、または、それらのコンポーネントにおいて実行することができる。
【0256】
コンピュータシステム(1600)のための図16に示される構成要素は、本質的に例示的なものであり、そして、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲について、いかなる制限も示唆するように意図されたものではない。また、構成要素の構成は、コンピュータシステム(1600)の例示的な実施形態において示される構成要素の任意の1つまたは組み合わせに関して、いかなる従属性または要件も有するものとして解釈されてはならない。
【0257】
コンピュータシステム(1600)は、所定のヒューマンインターフェイス入力デバイスを含み得る。そうしたヒューマンインターフェイス入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き、といったもの)、音声入力(声、拍手、といったもの)、視覚入力(ジェスチャ、といったもの)、嗅覚入力(図示なし)を通じて、一人以上の人間ユーザによる入力に対して応答し得る。ヒューマンインターフェイス装置は、また、オーディオ(スピーチ、音楽、環境音、といったもの)、画像(スキャンされた画像、静止画像カメラから獲得した写真画像、といったもの)、ビデオ(1次元ビデオ、立体映像を含む3次元ビデオといったもの)といった、人間による意識的入力に必ずしも直接的に関係しない所定の媒体をキャプチャするためにも使用され得る。
【0258】
入力ヒューマンインターフェイスデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示なし)、ジョイスティック(1605)、マイクロフォン(1606)、スキャナ(1607)、カメラ(1608)の1つ以上を含み得る(それぞれ1つだけが描かれている)。
【0259】
コンピュータシステム(1600)は、また、所定のヒューマンインターフェイス出力デバイスを含み得る。そうしたヒューマンインターフェイス出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通して、一人以上の人間ユーザの感覚を刺激することができる。そうしたヒューマンインターフェイス出力デバイスは、触覚出力装置(例えば、タッチスクリーン(1610)、データグローブ(図示なし)、またはジョイスティック(1605)、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在する)、オーディオ出力装置(スピーカ(1609)、ヘッドフォン(図示なし)といったもの)、視覚出力装置(CRTスクリーン、LCDスクリーン、プラズマスクリーンを含むスクリーン(1610)といったものであり、それぞれがタッチスクリーン入力能力を有し又は有さず、それぞれが触覚フィードバック能力を有し又は有さない。-そのうちいくつかは、立体画法(stereographic)出力といった手段、仮想現実メガネ(図示なし)、ホログラフィックディスプレイおよびスモーク(smoke)タンク(図示なし)、およびプリンタ(図示なし)、を介して、2次元の視覚出力または3次元以上の出力を出力することができる。)を含み得る。
【0260】
コンピュータシステム(1600)は、また、人間がアクセス可能な記憶装置およびそれらの関連媒体を含むことができる。CD/DVD等の媒体(1621)を伴うCD/DVD ROM/RW(1620)を含む光媒体、サムドライブ(thumb-drive)(1622)、リムーバブルハードドライブまたはソリッドステートドライブ(1623)、テープおよびフロッピー(登録商標)ディスク(図示なし)といった従来の磁気媒体、セキュリティドングル(security dongle)(図示なし)といった特殊化されたROM/ASIC/PLDベースの装置など、といったものである。
【0261】
当業者は、また、現在開示されている技術的事項(subject matter)に関連して使用される用語「コンピュータ読取可能媒体(“computer readable media”)」は、伝送媒体、搬送波、または他の過渡信号を包含しないことも理解すべきである。
【0262】
コンピュータシステム(1600)は、また、1つ以上の通信ネットワーク(1655)へのインターフェイス(1654)も含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、ワイドエリア、メトロポリタン、車両および工業、リアルタイム、遅延耐性、等であり得る。ネットワークの例は、イーサネットといったローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTVワイドエリアまたはワイドエリアデジタルネットワーク、CANバスを含む車両および工業など、を含む。所定のネットワークは、一般的に、所定の汎用データポートまたはペリフェラルバス(1649)に接続される外部ネットワークインターフェイスアダプタ(例えば、コンピュータシステム(1600)のUSBポート、といったもの)を必要とする。他のものは、一般的に、以下で説明するように、システムバスへの取付け(attachment)によって、コンピュータシステム(1600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェイス、または、スマートフォンコンピュータシステムへのセルラーネットワークインターフェイス)。これらのネットワークのいずれかを使用して、コンピュータシステム(1600)は、他のエンティティと通信することができる。そうした通信は、単指向性、受信専用(例えば、放送テレビ)、単指向性送信専用(例えば、所定のCANバスデバイスへのCANバス)、または、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性、であり得る。所定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェイスそれぞれで使用され得る。
【0263】
前述のヒューマンインターフェイスデバイス、人がアクセス可能なストレージデバイス、およびネットワークインターフェイスは、コンピュータシステム(1600)のコア(1640)に取付けることができる。
【0264】
コア(1640)は、1つ以上の中央処理装置(CPU)(1641)、グラフィックス処理装置(GPU)(1642)、フィールドプログラマブルゲートアレイ(FPGA)(1643)の形式の特殊なプログラマブル処理装置、所定のタスクのためのハードウェアアクセラレータ(1644)、グラフィックアダプタ(1650)、などを含むことができる。これらの装置は、リードオンリーメモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、内部非ユーザアクセス可能ハードドライブといった内部大容量ストレージ、SSD、等(1647)と共に、システムバス(1648)を介して接続され得る。いくつかのコンピュータシステムにおいて、システムバス(1648)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理的プラグの形式でアクセス可能である。周辺装置は、コアのシステムバス(1648)に直接的に接続されるか、または、ペリフェラルバス(1649)を介して接続され得る。一つの例において、スクリーン(1610)をグラフィックアダプタ(1650)に接続することができる。ペリフェラルバスのアーキテクチャは、PCI、USB、などを含む。
【0265】
CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、上述のコンピュータコードを構成することができる、所定の命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に保管することができる。移行データも、また、RAM(1646)に保管することができるが、一方で、永久データは、例えば、内部大容量ストレージ(1647)に保管することができる。1つ以上のCPU(1641)、GPU(1642)、大容量ストレージ(1647)、ROM(1645)、RAM(1646)、などと密接に関連付けることができる、キャッシュメモリの使用を通じて、メモリデバイスのいずれかへの高速ストレージおよび取出し可能にすることができる。
【0266】
コンピュータ読取可能媒体は、様々なコンピュータ実装されたオペレーションを実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計され、かつ、構築されたものであってよく、または、コンピュータソフトウェア技術の当業者に周知であり、かつ、利用可能な種類のものであってよい。
【0267】
制限ではなく、一例として、アーキテクチャ(1600)を有するコンピュータシステム、および、特にコア(1640)は、1つ以上の有形で、コンピュータ読取可能媒体において具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む)の結果として機能性を提供することができる。そうしたコンピュータ読取可能媒体は、上述のようにユーザがアクセス可能な大容量ストレージ、並びに、コア-内部大容量ストレージ(1647)またはROM(1645)といった、非一時的な性質のコア(1640)に係る措定のストレージ、に関連する媒体であってよい。本開示の様々な実施形態を実装するソフトウェアは、そうしたデバイスに保管され、そして、コア(1640)によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに従って、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1640)、および、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1646)に保管されたデータ構造を定義すること、および、ソフトウェアによって定義されたプロセスに従って、そうしたデータ構造を修正することを含む、ここにおいて説明された特定のプロセス、または、特定のプロセスの特定部分を実行させることができる。加えて又は代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1644))内で配線され(hardwired)、または他の方法で具現化されたロジックの結果として機能性を提供することができる。これは、ここにおいて説明される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはソフトウェアと共に動作することができる。ソフトウェアへの参照は、論理を含み、そして、必要に応じて、その逆も同様である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを保管する回路(集積回路(IC)といったもの)、実行のためのロジックを具体化する回路、または、必要に応じて、両方を含むことができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含している。
【0268】
本開示は、いくつかの例示的な実施形態を説明してきたが、変更、順列(permutations)、および様々な代替同等物が存在しており、これらは本開示の範囲内にある。従って、当業であれば、ここにおいては明示的に図示され、または、記述されていないが、本開示の原則を具体化し、そして、従って、その精神および範囲の中にある多数のシステムおよび方法を考案することができるであろうことが正しく理解されるだろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16