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

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

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

特許7581518メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体
<>
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図1
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図2
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図3
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図4
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図5
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図6
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図7
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図8
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図9
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図10
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図11
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図12
  • 特許-メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体
(51)【国際特許分類】
   G06T 9/00 20060101AFI20241105BHJP
【FI】
G06T9/00
【請求項の数】 20
(21)【出願番号】P 2023532133
(86)(22)【出願日】2022-08-24
(65)【公表番号】
(43)【公表日】2023-12-14
(86)【国際出願番号】 US2022075395
(87)【国際公開番号】W WO2023028520
(87)【国際公開日】2023-03-02
【審査請求日】2023-05-25
(31)【優先権主張番号】63/237,097
(32)【優先日】2021-08-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/893,892
(32)【優先日】2022-08-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ホアン,チャオ
(72)【発明者】
【氏名】ジャン,シァン
(72)【発明者】
【氏名】ティエン,ジュン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2022/269944(WO,A1)
【文献】米国特許出願公開第2021/0090301(US,A1)
【文献】米国特許第6438266(US,B1)
【文献】GRAZIOSI, Danillo et al.,[V-PCC][EE2.6-related] Mesh Patch Data,ISO/IEC JTC 1/SC 29/WG 7 m 55368,2020年10月,<URL: https://mpeg-pcc.org/index.php/public-contributions/mpeg-132-sony-contribution-list/>,[検索日:2022.1.14]
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00 - 9/40
(57)【特許請求の範囲】
【請求項1】
メッシュ解凍のための方法であって、
パッチに分割されるメッシュのエンコードされた情報を運ぶビットストリームを受信することであって、前記ビットストリームは、第1の部分と、第2の部分とを含み、前記第1の部分は、パッチ情報を含み、前記第2の部分は、少なくとも第1のパッチの第1のエッジおよび第2のパッチの第2のエッジがエッジメイトのペアであることを示すパッチ境界情報を含む、受信することと、
前記第1の部分をデコードして前記パッチ情報を取得することと、
前記第2の部分をデコードして前記パッチ境界情報を取得することと、
前記パッチ情報と前記パッチ境界情報とに基づいて、再構成されたメッシュを生成することと、を含み、
前記第1のエッジおよび前記第2のエッジは、前記第1のパッチを前記第2のパッチと接続するように前記再構成されたメッシュ内の同じエッジにマッピングされ
前記第2の部分をデコードすることは、
前記第2の部分から境界テーブルをデコードすることであって、前記境界テーブルは、前記パッチと関連付けられる境界頂点のリストを含む、デコードすることと、
前記境界テーブルに従って、前記第1のパッチと関連付けられる境界頂点の第1のリストおよび前記第2のパッチと関連付けられる境界頂点の第2のリストを決定することと、
前記境界頂点の前記第1のリストに従って、前記第1のパッチについての第1の境界エッジを決定することであって、前記第1のエッジは、前記第1のパッチの境界エッジである、決定することと、
前記境界頂点の前記第2のリストに従って、前記第2のパッチの第2の境界エッジを決定することであって、前記第2のエッジは、前記第2のパッチの境界エッジである、決定することと、をさらに含む
方法。
【請求項2】
前記第1の部分からデコードされる前記パッチ情報は、前記第2の部分からデコードされる前記パッチ境界情報とは異なるパッチ境界情報を有する、請求項1に記載の方法。
【請求項3】
前記第2の部分をデコードすることは、
前記第2の部分から第1のアレイをデコードすることであって、前記第1のアレイは、前記パッチの前記境界頂点をUVアトラスにマッピングするためのUV座標を持つ、デコードすることと、
前記第1のアレイに従って、前記第1のパッチを前記UVアトラス内の第1のUVパッチにマッピングするために前記境界頂点の前記第1のリストの第1の境界UV座標を決定することと、
前記第1のアレイに従って、前記第1のパッチを前記UVアトラス内の第2のUVパッチにマッピングするために前記境界頂点の前記第2のリストの第2の境界UV座標を決定することと、をさらに含む、
請求項に記載の方法。
【請求項4】
前記再構成されたメッシュを生成することは、
前記第1のUVパッチの内側の第1の頂点の第1のUV座標を決定することと、
前記第2のUVパッチの内側の第2の頂点の第2のUV座標を決定することと、をさらに含む、
請求項に記載の方法。
【請求項5】
前記第1の頂点および前記第2の頂点は、前記UVアトラスの規則的なグリッドにある、請求項に記載の方法。
【請求項6】
前記第1の頂点の前記第1のUV座標および前記境界頂点の前記第1のリストの前記第1の境界UV座標に基づいて、前記第1のUVパッチについての第1の接続性情報を決定することと、
前記第2の頂点の前記第2のUV座標および前記境界頂点の前記第2のリストの前記第2の境界UV座標に基づいて、前記第2のUVパッチについての第2の接続性情報を決定することと、をさらに含む、
請求項に記載の方法。
【請求項7】
前記ビットストリーム中の信号に基づいて、特定の接続性決定技法の使用を決定することをさらに含む、請求項に記載の方法。
【請求項8】
前記第2の部分から第2のアレイをデコードすることであって、前記第2のアレイは、前記パッチの前記境界頂点に対応する前記メッシュのメッシュ頂点インデックスを持つ、デコードすることと、
前記第2のアレイに従って、前記第1のエッジの第1の頂点についての第1のメッシュ頂点インデックスを決定することと、
前記第2のアレイに従って、前記第2のエッジの第2の頂点についての第2のメッシュ頂点インデックスを決定することと、を含み、
前記第1のエッジの第1の頂点についての前記第1のメッシュ頂点インデックスは、前記第2のエッジの第2の頂点についての前記第2のメッシュ頂点インデックスと一致する、
請求項に記載の方法。
【請求項9】
前記第2の部分から第3のアレイをデコードすることをさらに含み、前記第3のアレイは、前記パッチの前記境界頂点についての前記メッシュ頂点インデックスに対応する三次元座標を持つ、請求項に記載の方法。
【請求項10】
前記第2の部分から第3のアレイをデコードすることであって、前記第3のアレイは、前記メッシュ内の前記パッチの前記境界頂点の三次元(3D)座標を持つ、デコードすることと、
前記第3のアレイに従って、前記第1のエッジの第1の頂点についての第1の3D座標を決定することと、
前記第3のアレイに従って、前記第2のエッジの第2の頂点の第2の3D座標を決定することと、を含み、
前記第1のエッジの前記第1の頂点についての前記第1の3D座標は、前記第2のエッジの前記第2の頂点の前記第2の3D座標と一致する、
請求項に記載の方法。
【請求項11】
処理回路構成を含む装置であって、
前記処理回路構成は、
パッチに分割されるメッシュのエンコードされた情報を運ぶビットストリームを受信するように構成され、前記ビットストリームは、第1の部分と、第2の部分とを含み、前記第1の部分は、パッチ情報を含み、前記第2の部分は、少なくとも第1のパッチの第1のエッジおよび第2のパッチの第2のエッジがエッジメイトのペアであることを示すパッチ境界情報を含み、
前記第1の部分をデコードして前記パッチ情報を取得するように構成され、
前記第2の部分をデコードして前記パッチ境界情報を取得するように構成され、
前記パッチ情報および前記パッチ境界情報に基づいて、再構成されたメッシュを生成するように構成され、前記第1のエッジおよび前記第2のエッジは、前記第1のパッチを前記第2のパッチと接続するために、前記再構成されたメッシュ内の同じエッジにマッピングされ
前記処理回路構成は、
前記第2の部分から境界テーブルをデコードするように構成され、前記境界テーブルは、前記パッチの境界頂点のリストを含み、
前記境界テーブルに従って、前記第1のパッチについての境界頂点の第1のリストおよび前記第2のパッチについての境界頂点の第2のリストを決定するように構成され、
前記境界頂点の前記第1のリストに従って、前記第1のパッチについての第1の境界エッジを決定するように構成され、前記第1のエッジは、前記第1のパッチの境界エッジであり、
前記境界頂点の前記第2のリストに従って、前記第2のパッチの第2の境界エッジを決定するように構成され、前記第2のエッジは、前記第2のパッチの境界エッジである
装置。
【請求項12】
前記第1の部分からデコードされる前記パッチ情報は、前記第2の部分からデコードされる前記パッチ境界情報とは異なるパッチ境界情報を有する、請求項11に記載の装置。
【請求項13】
前記処理回路構成は、
前記第2の部分から第1のアレイをデコードするように構成され、前記第1のアレイは、前記パッチの前記境界頂点をUVアトラスにマッピングするためのUV座標を持ち、
前記第1のアレイに従って、前記第1のパッチを前記UVアトラス内の第1のUVパッチにマッピングするために、前記境界頂点の前記第1のリストの第1の境界UV座標を決定するように構成され、前記第1のUVパッチは、前記第1のパッチに対応し、
前記第1のアレイに従って、前記第2のパッチを前記UVアトラス内の第2のUVパッチにマッピングするために、前記境界頂点の前記第2のリストの第2の境界UV座標を決定するように構成され、前記第2のUVパッチは、前記第2のパッチに対応する、
請求項11に記載の装置。
【請求項14】
前記処理回路構成は、
前記第1のUVパッチの内側の第1の頂点の第1のUV座標を決定するように構成され、
前記第2のUVパッチの内側の第2の頂点の第2のUV座標を決定するように構成される、
請求項13に記載の装置。
【請求項15】
前記第1の頂点および前記第2の頂点は、前記UVアトラスの規則的なグリッドにある、請求項14に記載の装置。
【請求項16】
前記処理回路構成は、
前記第1の頂点の前記第1のUV座標および前記境界頂点の前記第1のリストの前記第1の境界UV座標に基づいて、前記第1のUVパッチについての第1の接続性情報を決定するように構成され、
前記第2の頂点の前記第2のUV座標および前記境界頂点の前記第2のリストの前記第2の境界UV座標に基づいて、前記第2のUVパッチについての第2の接続性情報を決定するように構成される、
請求項14に記載の装置。
【請求項17】
前記処理回路構成は、
前記第2の部分から第2のアレイをデコードするように構成され、前記第2のアレイは、前記パッチの前記境界頂点に対応する前記メッシュのメッシュ頂点インデックスを持ち、
前記第2のアレイに従って、前記第1のエッジの第1の頂点についての第1のメッシュ頂点インデックスを決定するように構成され、
前記第2のアレイに従って、前記第2のエッジの第2の頂点についての第2のメッシュ頂点インデックスを決定するように構成され、
前記第1のエッジの第1の頂点についての前記第1のメッシュ頂点インデックスは、前記第2のエッジの第2の頂点についての前記第2のメッシュ頂点インデックスと一致する、
請求項14に記載の装置。
【請求項18】
前記処理回路構成は、
前記第2の部分から第3のアレイをデコードするように構成され、前記第3のアレイは、前記メッシュ内の前記パッチの前記境界頂点の三次元(3D)座標を持ち、
前記第3のアレイに従って、前記第1のエッジの第1の頂点についての第1の3D座標を決定するように構成され、
前記第3のアレイに従って、前記第2のエッジの第2の頂点についての第2の3D座標を決定するように構成され、
前記第1のエッジの前記第1の頂点についての前記第1の3D座標は、前記第2のエッジの前記第2の頂点の前記第2の3D座標と一致する、
請求項11に記載の装置。
【請求項19】
命令を含むコンピュータプログラムであって、前記命令は、少なくとも1つのプロセッサによって実行されるときに、コンピュータに請求項1-10のうちのいずれか1項に記載の方法を実行する、コンピュータプログラム。
【請求項20】
命令を格納する非一時的なコンピュータ読取可能媒体であって、前記命令は、コンピュータによって実行されるときに、前記コンピュータに請求項1-10のうちのいずれか1項に記載の方法を実行させる、非一時的なコンピュータ読取可能媒体。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
本出願は、2021年8月25日に出願された米国仮出願第63/237,097号「Patch Zippering for Mesh Compression」に対する優先権の利益を主張する2022年8月23日に出願された米国特許出願第17/893,892号「PATCH ZIPPERING FOR MESH COMPRESSION」に対する優先権の利益を主張する。先行出願の開示は、その全文が参照により本明細書に援用される。
【0002】
(技術分野)
本開示は、メッシュコーディング(mesh coding)に概ね関する実施形態を記載する。
【背景技術】
【0003】
本明細書において提供される背景記述は、開示の文脈を概ね提示することを目的としている。その成果がこの背景技術セクションに記載される範囲における現在名前が挙げられている発明者の成果、並びに他の点においては出願時に先行技術として適格でないことがある記述の側面は、本開示に対する先行技術として明示的にも黙示的にも認められていない。
【0004】
様々な技術が、3次元(3D)空間において世界の中のオブジェクト(物体)、世界の中の環境、および同等のもののような世界をキャプチャして(取り込んで)表現するために開発されている。世界の3D表現は、より没入的な形態の相互作用(対話)および通信を可能にすることができる。幾つかの例では、ポイントクラウド(点群)およびメッシュを世界の3D表現として使用することができる。
【発明の概要】
【0005】
本開示の態様が、メッシュコーディング(例えば、圧縮および解凍)のための方法および装置を提供する。幾つかの例では、メッシュコーディングのための装置が、処理回路構成を含む。処理回路構成は、パッチに分割されるメッシュのエンコードされた情報を運ぶビットストリームを受信する。ビットストリームは、第1の部分と、第2の部分とを含み、第1の部分は、パッチ情報を含み、第2の部分は、少なくとも第1のパッチの第1のエッジおよび第2のパッチの第2のエッジがエッジメイトのペアであることを示すパッチ境界情報を含む。処理回路構成は、第1の部分をデコードしてパッチ情報を取得し、第2の部分をデコードしてパッチ境界情報を取得する。処理回路構成は、パッチ情報およびパッチ境界情報に基づいて、再構成されたメッシュを生成し、第1のエッジおよび第2のエッジは、第1のパッチおよび第2のパッチを互いに接続する(ジップする(zip))ために、再構成されたメッシュ内の同じエッジにマッピングされる。
【0006】
幾つかの例において、第1の部分からデコードされるパッチ情報は、第2の部分からデコードされるパッチ境界情報とは異なるパッチ境界情報を有する。
【0007】
幾つかの例において、処理回路構成は、第2の部分から境界テーブルをデコードし、境界テーブルは、パッチの境界頂点のリストを含む。処理回路構成は、境界テーブルに従って、第1のパッチについての境界頂点の第1のリストおよび第2のパッチについての境界頂点の第2のリストを決定する。さらに、処理回路構成は、境界頂点の第1のリストに従って第1のパッチについての第1の境界エッジを決定し、境界頂点の第2のリストに従って第2のパッチの第2の境界エッジを決定する。第1のエッジは、第1のパッチの第1の境界エッジの1つであり、第2のエッジは、第2のパッチの第2の境界エッジの1つである。
【0008】
幾つかの例において、処理回路構成は、第2の部分から第1のアレイをデコードする。第1のアレイは、パッチの境界頂点をUVアトラスにマッピングするためのUV座標を持つ(carries)。処理回路構成は、第1のアレイに従って、第1のパッチをUVアトラス内の第1のUVパッチにマッピングするために、境界頂点の第1のリストの第1の境界UV座標を決定する。第1のUVパッチは、第1のパッチに対応する。処理回路構成は、第1のアレイに従って、第2のパッチをUVアトラス内の第2のUVパッチにマッピングするために、境界頂点の第2のリストの第2の境界UV座標を決定する。第2のUVパッチは、第2のパッチに対応する。
【0009】
再構成されたメッシュを生成するために、幾つかの例において、処理回路構成は、第1のUVパッチの内側の第1の頂点の第1のUV座標を決定し、第2のUVパッチの内側の第2の頂点の第2のUV座標を決定する。一例において、第1の頂点および第2の頂点は、UVアトラスの規則的なグリッド(regular grid)にある。さらに、幾つかの例において、処理回路構成は、第1の頂点の第1のUV座標および境界頂点の第1のリストの第1の境界UV座標に基づいて、第1のUVパッチについての第1の接続性情報を決定し、第2の頂点の第2のUV座標および境界頂点の第2のリストの第2の境界UV座標に基づいて、第2のUVパッチについての第2の接続性情報を決定する。幾つかの例において、処理回路構成は、ビットストリーム中の信号に基づいて、特定の接続性決定技法の使用を決定する。
【0010】
幾つかの例において、処理回路構成は、第2の部分から第2のアレイをデコードし、第2のアレイは、パッチの境界頂点に対応するメッシュのメッシュ頂点インデックス(mesh vertex indices)を持つ。処理回路構成は、第2のアレイに従って、第1のエッジの第1の頂点についての第1のメッシュ頂点インデックスを決定するように構成され、第2のアレイに従って、第2のエッジの第2の頂点についての第2のメッシュ頂点インデックスを決定する。第1のエッジの第1の頂点についての第1のメッシュ頂点インデックスは、第2のエッジの第2の頂点についての第2のメッシュ頂点インデックスと一致する。
【0011】
幾つかの例において、処理回路構成は、第2の部分から第3のアレイをデコードし、第3のアレイは、メッシュ内のパッチの境界頂点についてのメッシュ頂点インデックスに対応する三次元座標を持つ。
【0012】
幾つかの例において、処理回路構成は、第3のアレイに従って、第1のエッジの第1の頂点についての第1の3D座標を決定し、第3のアレイに従って、第2のエッジの第2の頂点の第2の3D座標を決定する。第1のエッジの第1の頂点についての第1の3D座標は、第2のエッジの第2の頂点の第2の3D座標と一致する。
【0013】
本開示の態様は、命令を格納する非一時的なコンピュータ読取可能な媒体も提供し、命令は、コンピュータによって実行されるときに、メッシュコーディングのための方法のいずれか1つまたは組み合わせをコンピュータに実行させる。
【0014】
開示された主題事項のさらなる構成、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0015】
図1】幾つかの例における通信システムのブロック図を示している。
【0016】
図2】幾つかの例におけるストリーミングシステムのブロック図を示している。
【0017】
図3】幾つかの例におけるポイントクラウドフレームをエンコードするためのエンコーダのブロック図を示している。
【0018】
図4】幾つかの例におけるポイントクラウドフレームに対応する圧縮されたビットストリームをデコードするためのデコーダのブロック図を示している。
【0019】
図5】幾つかの例におけるビデオデコーダのブロック図を示している。
【0020】
図6】幾つかの例におけるビデオエンコーダのブロック図を示している。
【0021】
図7】幾つかの例におけるポイントクラウドフレームをエンコードするためのエンコーダのブロック図を示している。
【0022】
図8】ポイントクラウドフレームに対応する圧縮されたビットストリームをデコードするためのデコーダのブロック図を示している。
【0023】
図9】幾つかの例における再構成されたメッシュの図を示している。
【0024】
図10】幾つかの例におけるメッシュコーディング(圧縮および解凍)フレームワークのブロック図を示している。
【0025】
図11】幾つかの例におけるプロセス例を概説するフローチャートを示している。
【0026】
図12】幾つかの例におけるプロセス例を概説するフローチャートを示している。
【0027】
図13】幾つかの例におけるコンピュータシステムの概略図を示している。
【発明を実施するための形態】
【0028】
本開示の態様が、三次元(3D)メディア処理(media processing)の分野における技術を提供する。
【0029】
三次元(3D)キャプチャ、3Dモデリング、および3Dレンダリング、および同等物における進歩のような、3Dメディア処理における技術開発は、幾つかのプラットフォームおよびデバイスに亘って3Dメディアコンテンツのユビキタスな存在を促進している。例えば、赤ちゃんの最初の一歩が、1つの大陸でキャプチャされる(取り込まれる)ことができ、媒体技術は、祖父母が別の大陸で赤ちゃんを見て(そして、おそらく対話して)、赤ちゃんとの没入的体験を楽しむことを可能にすることができる。本開示の一態様によれば、没入的体験を向上させるために、3Dモデルは、ますます洗練されてきており、3Dモデルの作成および消費は、データストレージ、データ送信リソースのような、有意な量のデータリソースを占めている。
【0030】
本開示の幾つかの態様によれば、ポイントクラウド(点源)(point clouds)およびメッシュ(meshes)を3Dモデルとして使用して没入的コンテンツを表現することができる。
【0031】
ポイントクラウドは、一般に、各ポイント(点)が、色、材料特性、テクスチャ情報、強度属性、反射率属性、モーション関連属性、モダリティ属性、および様々な他の属性のような、属性と関連付けられる、3D空間内のポイントのセットを指すことがある。ポイントクラウドは、オブジェクトまたはシーンをそのようなポイントの組成として再構成するために使用されることができる。
【0032】
オブジェクトの(メッシュモデルとも呼ばれる)メッシュは、オブジェクトの表面を記述するポリゴン(polygon)を含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点がどのように接続されてポリゴンになるのかの情報とによって定義されることができる。頂点がどのように接続されてポリゴンになるかの情報は、接続性情報と呼ばれる。幾つかの例において、メッシュは、頂点と関連付けられた色、法線、および同等物のような、属性を含むこともできる。
【0033】
本開示の幾つかの態様によれば、ポイントクラウド圧縮(PCC:point cloud compression)のための幾つかのコーディングツールをメッシュ圧縮のために使用することができる。例えば、メッシュを再メッシュして、新しいメッシュの接続性上方を推測できる新しいメッシュを生成することができる。新しいメッシュの頂点、および新しいメッシュの頂点と関連付けられる属性は、ポイントクラウド内のポイントと見なされることができ、PCCコーデックを使用して圧縮されることができる。
【0034】
ポイントクラウドを使用して、オブジェクトまたはシーンをそのようなポイントの組成として再構成することができる。ポイントは、複数のカメラ、奥行きセンサ、またはLidarをさまざまな設定において使用してキャプチャされることができ、再構成されたシーンまたはオブジェクトを現実的に表現するために、数千から数十億のポイントで構成されることがある。パッチ(patch)は、一般に、ポイントクラウドによって記述される表面の連続したサブセットを指すことがある。一例において、パッチは、閾値量よりも少ない量で互いに逸脱する表面法線ベクトル(surface normal vectors)を持つポイントを含む。
【0035】
PCCは、G-PCCと呼ばれるジオメトリ(geometry)(幾何学的形状)ベースのスキーム、V-PCCと呼ばれるビデオコーディング(video coding)ベースのスキーム、および同等のスキームのような、様々なスキームに従って行われることができる。本開示の幾つかの態様によれば、G-PCCは、3Dジオメトリを直接的にエンコード(符号化)し、ビデオコーディングと共有することがあまりない純粋にジオメトリベースのアプローチであり、V-PCCは、ビデオコーディングに大きく基づいている。例えば、V-PCCは、3Dクラウドのポイントを2Dグリッド(画像)のピクセル(画素)にマッピングすることができる。V-PCCスキームは、ポイントクラウド圧縮のために汎用ビデオコーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)またはV-PCCコーデックであることができる。
【0036】
本開示の一態様によれば、V-PCCスキームは、既存のビデオコーデックを使用して、ポイントクラウドのジオメトリ、占有、およびテクスチャを3つの別個のビデオシーケンスとして圧縮することができる。3つのビデオシーケンスを解釈するために必要とされる余分のメタデータは、別個に圧縮される。全体的なビットストリームの小さな部分が、メタデータであり、メタデータは、一例において、ソフトウェア実装を使用して効率的にエンコード(符号化)/デコード(復号化)されることができる。情報の大部分は、ビデオコーデックによって処理される。
【0037】
図1は、幾つかの例における通信システム(100)のブロック図を示している。通信システム(100)は、例えば、ネットワーク(150)を介して相互に通信できる複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続される端末デバイス(110)および(120)のペアを含む。図1の例において、端末デバイス(110)および(120)の第1のペアは、ポイントクラウドデータの単方向送信を行うことができる。例えば、端末デバイス(110)は、端末デバイス(110)と接続されるセンサ(105)によってキャプチャされるポイントクラウド(例えば、構造を表すポイント)を圧縮することがある。圧縮されたポイントクラウドは、ネットワーク(150)を介して、例えば、ビットストリームの形態において、他の端末デバイス(120)に送信されることができる。端末デバイス(120)は、ネットワーク(150)から圧縮されたポイントクラウドを受信し、ポイントクラウドを再構成するためにビットストリームを解凍し、再構成されたポイントクラウドを適切に表示することがある。一方向データ送信は、メディアサービスアプリケーションおよび同等物において一般的であることがある。
【0038】
図1の例において、端末デバイス(110)および(120)は、サーバ、およびパーソナルコンピュータとして図示されることがあるが、本開示の原理は、そのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲーム端末、メディアプレーヤー、および/または専用の3次元(3D)機器に用途を見出す。ネットワーク(150)は、端末デバイス(110)および(120)の間で圧縮されたポイントクラウドを送信する任意の数のネットワークを表す。ネットワーク(150)は、例えば、ワイヤライン(有線)および/または無線通信ネットワークを含むことができる。ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することがある。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、インターネット、および同等物を含む。
【0039】
図2は、幾つかの例におけるストリーミングシステム(200)のブロック図を示している。ストリーミングシステム(200)は、ポイントクラウドの利用アプリケーションである。開示される主題事項は、3Dテレプレゼンスアプリケーション、仮想現実アプリケーション、および同等物のような、他のポイントクラウド対応アプリケーションに等しく適用可能であり得る。
【0040】
ストリーミングシステム(200)は、キャプチャサブシステム(213)を含むことがある。キャプチャサブシステム(213)は、ポイントクラウドソース(201)、例えば、光検出および測距(LIDAR)システム、3Dカメラ、3Dスキャナ、ソフトウェアにおいて圧縮されていないポイントクラウドを生成するグラフィックス生成コンポーネント、および、例えば、圧縮されていないポイントクラウド(202)を生成する同等物を含むことができる。一例において、ポイントクラウド(202)は、3Dカメラによってキャプチャされるポイントを含む。ポイントクラウド(202)は、圧縮されたポイントクラウド(204)(圧縮されたポイントクラウドのビットストリーム)と比較されるときの高いデータ量を強調するために太線で描写されている。圧縮されたポイントクラウド(204)は、ポイントクラウドソース(201)に結合されたエンコーダ(203)を含む電子デバイス(220)によって生成されることができる。エンコーダ(203)は、以下により詳細に記載されるように、開示される主題事項の態様を有効化するか或いは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ポイントクラウドのストリーム(202)と比較されるときの低いデータ量を強調するために細い線として表現される、圧縮されたポイントクラウド(204)(または圧縮されたポイントクラウドのビットストリーム(204))は、将来の使用のためにストリーミングサーバ(205)に格納されることができる。図2のクライアントサブシステム(206)および(208)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、圧縮されたポイントクラウド(204)のコピー(207)および(209)を取り出す(retrieve)ことができる。クライアントサブシステム(206)は、例えば、電子デバイス(230)内にデコーダ(210)を含むことができる。デコーダ(210)は、圧縮されたポイントクラウドの入って来る(incoming)コピー(207)をデコードし、レンダリングデバイス(212)でレンダリングされることができる再構成されたポイントクラウド(211)の出て行く(outgoing)ストリームを作成する。
【0041】
電子デバイス(220)および(230)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(220)は、デコーダ(図示せず)を含むことができ、電子デバイス(230)は、エンコーダ(図示せず)を含むこともできる。
【0042】
幾つかのストリーミングシステムにおいて、圧縮されたポイントクラウド(204)、(207)、および(209)(例えば、圧縮されたポイントクラウドのビットストリーム)は、特定の標準に従って圧縮されることができる。幾つかの例では、ビデオコーディング標準が、ポイントクラウドの圧縮において使用される。それらの標準の例は、HEVC(High Efficiency Video Coding)、VVC(Versatile Video Coding)、および同等物を含む。
【0043】
図3は、幾つかの実施例による、ポイントクラウドフレームをエンコードするためのV-PCCエンコーダ(300)のブロック図を示している。幾つかの実施形態において、V-PCCエンコーダ(300)は、通信システム(100)およびストリーミングシステム(200)において使用されることができる。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様の方法で構成おされることができ、且つ作動することができる。
【0044】
V-PCCエンコーダ(300)は、ポイントクラウドフレームを圧縮されていない入力として受信し、圧縮されたポイントクラウドフレームに対応するビットストリームを生成する。幾つかの実施形態において、V-PCCエンコーダ(300)は、ポイントクラウドソース(201)および同等物のようなポイントクラウドソースからポイントクラウドフレームを受信することがある。
【0045】
図3の例において、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)と、パッチパッキング(patch packing)モジュール(308)と、ジオメトリ画像生成モジュール(310)と、テクスチャ画像生成モジュール(312)と、パッチ情報モジュール(304)と、占有マップモジュール(314)と、平滑化(smoothing)モジュール(336)と、画像パディング(image padding)モジュール(316)および(318)と、グループ拡張(group dilation)モジュール(320)と、ビデオ圧縮モジュール(322)、(323)および(332)と、補助パッチ情報圧縮モジュール(338)と、エントロピー圧縮モジュール(334)と、マルチプレクサ(324)とを含む。
【0046】
本開示の一態様によれば、V-PCCエンコーダ(300)は、圧縮されたポイントクラウドを解凍されたポイントクラウドに変換して戻すために使用される幾つかのメタデータ(例えば、占有マップおよびパッチ情報)とともに、三次元ポイントクラウドフレームを画像ベースの表現に変換する。幾つかの例において、V-PCCエンコーダ(300)は、3Dポイントクラウドフレームをジオメトリ画像、テクスチャ画像および占有マップに変換し、次に、ビデオコーディング技術を使用して、ジオメトリ画像、テクスチャ画像および占有マップをビットストリームにエンコードすることができる。一般に、ジオメトリ画像は、ピクセルに投影されるポイントと関連付けられるジオメトリ値で満たされたピクセルを持つ2D画像であり、ジオメトリ値で満たされたピクセルは、ジオメトリサンプルと呼ばれることができる。テクスチャ画像が、ピクセルに投影されるポイントと関連付けられるテクスチャ値で満たされたピクセルを持つ2D画像であり、テクスチャ値で満たされたピクセルは、テクスチャサンプルと呼ばれることができる。占有マップは、パッチによって占められていることまたは占められていないことを示す値で満たされたピクセルを持つ2D画像である。
【0047】
パッチ生成モジュール(306)は、各パッチが2D空間内の平面に対する深度フィールドによって記述されることがあるように、ポイントクラウドを、オーバーラップしてよい或いはオーバーラップしなくてよいパッチのセットにセグメント化する(例えば、パッチは、ポイントクラウドによって記述される表面の連続したサブセットとして定義される)。幾つかの実施形態において、パッチ生成モジュール(306)は、ポイントクラウドを滑らかな境界を持つ最小数のパッチに分解する一方で、再構成エラーも最小限に抑えることを目的としている。
【0048】
幾つかの例において、パッチ情報モジュール(304)は、パッチのサイズおよび形状を示すパッチ情報を収集することができる。幾つかの例において、パッチ情報は、画像フレームにパックされることができ、次に、圧縮された補助パッチ情報を生成するために補助パッチ情報圧縮モジュール(338)によってエンコードされる。
【0049】
幾つかの例において、パッチパッキングモジュール(308)は、抽出されるパッチを2次元(2D)グリッド(格子)にマッピングする一方で、未使用の空間を最小限に抑え且つグリッドのあらゆるM×M(例えば16×16)ブロックが一意のパッチと関連付けられることを保証するように構成される。効率的なパッチパッキングは、未使用の空間を最小限に抑えることまたは時間的な一貫性を確保することのいずれかによって、圧縮効率に直接的に影響を与えることができる。
【0050】
ジオメトリ画像生成モジュール(310)は、所与のパッチ場所でポイントクラウドのジオメトリと関連付けられる2Dジオメトリ画像を生成することができる。テクスチャ画像生成モジュール(312)は、所与のパッチ場所でポイントクラウドのテクスチャと関連付けられた2Dテクスチャ画像を生成することができる。ジオメトリ画像生成モジュール(310)およびテクスチャ画像生成モジュール(312)は、パッキングプロセス中に計算される3Dから2Dへのマッピングを利用して、ポイントクラウドのジオメトリおよびテクスチャを画像として格納する。複数のポイントが同じサンプルに投影されている場合をより適切に処理するために、各パッチは、レイヤー(層)と呼ばれる2つの画像の上に投影される。一例において、ジオメトリ画像は、YUV420-8ビットフォーマットにおけるW×Hの単色フレームによって表される。テクスチャ画像を生成するために、テクスチャ生成手順は、再サンプリングされるポイントと関連付けられる色を計算するために、再構成された/平滑化されたジオメトリを利用する。
【0051】
占有マップモジュール(314)は、各ユニットでパディング情報を記述する占有マップを生成することができる。例えば、占有画像は、グリッドの各セルについてセルが空の空間に属しているか或いはポイントクラウドに属しているかを示すバイナリマップを含む。一例において、占有マップは、各ピクセルについてピクセルがパディングされているかどうかを記述するバイナリ情報を使用する。別の例において、占有マップは、ピクセルのブロックについてピクセルのブロックがパディングされているかどうかを記述するバイナリ情報を使用する。
【0052】
占有マップモジュール(314)によって生成される占有マップは、可逆(無損失)コーディングまたは非可逆(損失性)コーディングを使用して圧縮されることができる。可逆コーディングが使用されるときには、エントロピー圧縮モジュール(334)を使用して占有マップを圧縮する。非可逆コーディングを使用するときには、ビデオ圧縮モジュール(332)を使用して占有マップを圧縮する。
【0053】
パッチパッキングモジュール(308)は、画像フレームにパックされる2Dパッチの間に幾つかの空の空間を残すことがあることに留意されたい。画像パディングモジュール(316)および(318)は、2Dビデオおよび画像コーデックに適することがある画像フレームを生成するために、空の空間を満たすことができる(パディング(padding)と呼ばれる)。画像パディングは、冗長な情報で未使用の空間を満たすことができるバックグラウンド充填(background filling)とも呼ばれる。幾つかの例では、良好なバックグラウンド充填が、ビットレートを最小限に増加させる一方で、パッチ境界の周りに有意なコーディングひずみ(coding distortion)を導入しない。
【0054】
ビデオ圧縮モジュール(322)、(323)、および(332)は、HEVC、VVCおよび同等物のような、適切なビデオコーディング標準に基づいて、パディングされたジオメトリ画像、パディングされたテクスチャ画像、および占有マップのような、2D画像をエンコードすることができる。一例において、ビデオ圧縮モジュール(322)、(323)、および(332)は、別個に作動する個別のコンポーネントである。別の例において、ビデオ圧縮モジュール(322)、(323)、および(332)は、単一のコンポーネントとして実装され得ることに留意されたい。
【0055】
幾つかの例において、平滑化モジュール(336)は、再構成されたジオメトリ画像の平滑化された画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成(312)に提供されることができる。次に、テクスチャ画像生成(312)は、再構成されたジオメトリ画像に基づいてテクスチャ画像の生成を調整することがある。例えば、エンコードおよびデコード中にパッチ形状(例えば、ジオメトリ)が僅かにひずむとき、ひずみは、パッチ形状におけるひずみを補正するために、テクスチャ画像を生成するときに考慮されることがある。
【0056】
幾つかの実装において、グループ拡張(320)は、再構成されたポイントクラウドの視覚的品質ならびにコーディング利得を向上させるために、冗長な低周波コンテンツでオブジェクト境界の周囲のピクセルをパディングするように構成される。
【0057】
マルチプレクサ(324)は、圧縮されたジオメトリ画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を圧縮されたビットストリームに多重化する(multiplex)ことができる。
【0058】
図4は、幾つかの例において、ポイントクラウドフレームに対応する圧縮されたビットストリームをデコードするためのV-PCCデコーダ(400)のブロック図を示している。幾つかの例において、V-PCCデコーダ(400)は、通信システム(100)およびストリーミングシステム(200)において使用されることができる。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様の方法で作動するように構成されることができる。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームに基づいて再構成されたポイントクラウドを生成する。
【0059】
図4の例において、V-PCCデコーダ(400)は、デマルチプレクサ(432)と、ビデオ解凍モジュール(434)および(436)と、占有マップ解凍モジュール(438)と、補助パッチ情報解凍モジュール(442)と、ジオメトリ再構成モジュール(444)と、平滑化モジュール(446)と、テクスチャ再構成モジュール(448)と、色平滑化(color smoothing)モジュール(452)とを含む。
【0060】
デマルチプレクサ(432)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームを圧縮されたテクスチャ画像、圧縮されたジオメトリ画像、圧縮された占有マップ、および圧縮された補助パッチ情報に分離することができる。
【0061】
ビデオ圧縮モジュール(434)および(436)は、適切な標準(例えば、HEVC、VVCなど)に従って圧縮された画像をデコードし、解凍された画像を出力することができる。例えば、ビデオ解凍モジュール(434)は、圧縮されたテクスチャ画像をデコードし、解凍されたテクスチャ画像を出力し、ビデオ圧縮モジュール(436)は、圧縮されたジオメトリ画像をデコードし、解凍されたジオメトリ画像を出力する。
【0062】
占有マップ解凍モジュール(438)は、適切な標準(例えば、HEVC、VVCなど)に従って圧縮された占有マップをデコードし、解凍された占有マップを出力することができる。
【0063】
補助パッチ情報解凍モジュール(442)は、適切な標準(例えば、HEVC、VVCなど)に従って圧縮された補助パッチ情報をデコードし、解凍された補助パッチ情報を出力することができる。
【0064】
ジオメトリ再構成モジュール(444)は、解凍されたジオメトリ画像を受信し、解凍された占有マップおよび解凍された補助パッチ情報に基づいて再構成されたポイントクラウドジオメトリを生成することができる。
【0065】
平滑化モジュール(446)は、パッチのエッジにおける不一致(incongruences)を平滑化することができる。平滑化手順は、圧縮アーティファクトに起因してパッチ境界で生じることがある潜在的な不連続性を緩和することを目的としている。幾つかの実施形態では、圧縮/解凍によって引き起こされることがあるひずみを緩和するために、平滑化フィルタが、パッチ境界に位置するピクセルに適用されることがある。
【0066】
テクスチャ再構成モジュール(448)は、解凍されたテクスチャ画像および平滑化ジオメトリに基づいてポイントクラウド内のポイントについてのテクスチャ情報を決定することができる。
【0067】
色平滑化モジュール(452)は、色合い(coloring)の不一致を平滑化することができる。3D空間内の隣接しないパッチは、しばしば、2Dビデオでは互いに隣り合ってパックされる。幾つかの例では、隣接しないパッチからのピクセル値が、ブロックベースのビデオコーデックによって混同されることがある。色平滑化の目的は、パッチ境界に現れる目に見えるアーティファクトを減少させることである。
【0068】
図5は、幾つかの例におけるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、V-PCCデコーダ(400)において使用されることができる。例えば、ビデオ解凍モジュール(434)および(436)ならびに占有マップ解凍モジュール(438)は、ビデオデコーダ(510)と同様に構成されることができる。
【0069】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスのような圧縮された画像(圧縮画像)からシンボル(521)を再構成するパーサ(520)を含むことがある。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含む。パーサ(520)は、受信されるコーディングされたビデオシーケンスを構文解析する/エントロピーデコードすることがある。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を持つ或いは持たない算術コーディングなどを含む、様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループについて、サブグループパラメータのセットを抽出することがあきる。サブグループは、ピクチャのグループ(GOP:Group of Pictures)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU:Coding Units)、ブロック、変換ユニット(TU:Transform Units)、予測ユニット(PU:Prediction Units)などを含むことができる。パーサ(520)は、変換係数、量子化子パラメータ値、動きベクトルなどのようなコーディングされたビデオシーケンス情報から抽出することもある。
【0070】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリから受信するビデオシーケンスに対してエントロピーデコーディング/構文解析動作を行うことがある。
【0071】
シンボルの再構成(521)は、コーディングされたビデオピクチャまたは(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックのような)その部分のタイプおよび他の要因に依存して、複数の異なるユニットを含むことができる。どのユニットが関与し、どのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明瞭性のために描写されていない。
【0072】
既述の機能ブロックを超えて、ビデオデコーダ(510)は、以下に記載されるように多数の機能ユニットに概念的に細分化されることができる。商業的制約の下で作動する実用的な実装において、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には、互いに統合させられることができる。しかしながら、開示される主題事項を記述する目的のために、以下の機能ユニットへの概念的な細分化が適切である。
【0073】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)から、量子化された変換係数、並びにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、シンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されることができるサンプル値を含むブロックを出力することができる。
【0074】
幾つかの場合において、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングされた(intro coded)ブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャのうちの以前に再構成された部分からの予測情報を使用することができるブロックに関係することができる。そのような予測情報は、イントラピクチャ(intro picture)予測ユニット(552)によって提供されることができる。幾つかの場合において、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲の再構成済み情報を使用して、再構成の下にあるブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在の画像をバッファする。アグリゲータ(555)は、幾つかの場合には、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されるような出力サンプル情報に、サンプル毎ベースで追加する。
【0075】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、潜在的に動き補償されたブロックに関係することができる。そのような場合には、動き補償予測ユニット(553)は、予測のために使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合には、残差サンプルまたは残差信号と呼ばれる)に追加することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャコンポーネントを持つことができるシンボル(521)の形態において動き補償予測ユニット(553)に利用可能である、動きベクトルによって制御されることができる。動き補償は、サブサンプル正確な動きベクトル(sub-sample exact motion vectors)が使用されているときの参照ピクチャメモリ(557)、動きベクトル予測メカニズムなどからフェッチされるようなサンプル値の補間を含むこともできる。
【0076】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内で様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ(in-loop filter)技術を含むことができ、インループフィルタ技術は、(コーディングされたビデオビットストリームとも呼ばれる)コーディングされたビデオシーケンスに含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順において)以前の部分のデコーディング中に得られるメタ情報に応答することもでき、以前に再構成され且つループフィルタリングされたサンプル値に応答することもできる。
【0077】
ループフィルタユニット(556)の出力は、レンダリングデバイス(render device)に出力されることができ、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(557)に格納されることができる、サンプルストリームであることができる。
【0078】
特定のコーディングされたピクチャは、ひとたび完全に再構成されると、将来の予測のための参照ピクチャとして使用されることができる。例えば、ひとたび現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部分となることができ、後続のコーディングされたピクチャの再構成を開始する前に新たな現在のピクチャバッファが再割り当てされることができる。
【0079】
ビデオデコーダ(510)は、ITU-T Rec. H.265のような標準における所定のビデオ圧縮技術に従ってデコーディング動作を行うことがある。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または標準の構文およびビデオ圧縮技術または標準に文書化されるようなプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または標準によって指定される構文に適合することがある。具体的には、プロファイルは、ビデオ圧縮技術または標準において利用可能な全てのツールから、そのプロファイルのために利用可能な唯一のツールとして、特定のツールを選択することができる。準拠のために同様に必要なものは、コーディングされたビデオシーケンスの複雑さがビデオ圧縮技術または標準のレベルによって定義される境界内にあることであり得る。幾つかの場合において、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプルで測定される)最大再構成サンプルレート、最大参照ピクチャサイズなどを制約する。レベルによって設定される制約は、幾つかの場合において、HRD(Hypothetical Reference Decoder)仕様およびコーディングされたビデオシーケンスにおいて信号伝達されるHRDバッファ管理のためのメタデータを通じてさらに制約されることができる。
【0080】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、ポイントクラウドを圧縮するV-PCCエンコーダ(300)において使用されることができる。一例において、ビデオ圧縮モジュール(322)および(323)並びにビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0081】
ビデオエンコーダ(603)は、パディングされたジオメトリ画像、パディングされたテクスチャ画像および同等物のような画像を受信し、圧縮された画像を生成することがある。
【0082】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで或いはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンス(画像)のピクチャをコーディングし、コーディングされたビデオシーケンス(圧縮された画像)に圧縮することがある。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能である。幾つかの実施形態において、コントローラ(650)は、以下に記載されるように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明瞭性のために、結合は描写されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レートひずみ最適化技法のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を持つように構成されることができる。
【0083】
幾つかの実施形態において、ビデオエンコーダ(603)は、コーディングループにおいて作動するように構成される。過度に単純化された記述として、一例において、コーディングループは、(例えば、コーディングされるべき入力ピクチャおよび参照ピクチャに基づいて、シンボルストリームのような、シンボルを作成することに関与する)ソースコーダ(630)と、ビデオエンコーダ(603)に埋め込まれる(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法においてサンプルデータを作成するためにシンボルを再構成する(何故ならば、開示される主題事項において考慮されるビデオ圧縮技術において、シンボルとコーディングされたビデオビットストリームとの間のあらゆる圧縮は可逆(無損失)であるからである)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)とは無関係にビット正確な結果(bit-exact results)をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダの間でビット正確である。換言すれば、エンコーダの予測部は、デコーディング中に予測を使用するときにデコーダが「見る」であろうサンプル値と全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性(および例えばチャネルエラーの故に同期性を維持し得ない場合に結果として生じるドリフト)の基本原理は、幾つかの関連技術においても使用される。
【0084】
「ローカル」デコーダ(633)の動作は、図5と併せて既に詳細に記載されたビデオデコーダ(510)のような「リモート」デコーダと同じであることができる。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング(符号化)/デコーディング(復号化)は、可逆(無損失)であり得るので、パーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)において完全に実装されないことがある。
【0085】
動作中、幾つかの例において、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスから1つ以上の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償された予測コーディングを行うことがある。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと入力ピクチャへの予測参照として選択されることがある参照ピクチャのピクセルブロックとの間の差をコーディングする。
【0086】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されるシンボルに基づいて、参照ピクチャとして指定されることがあるピクチャのコーディングされたビデオデータをデコードすることがある。コーディングエンジン(632)の動作は、有利には、非可逆(損失性)プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(図6には示されていない)でデコードされることがあるとき、再構成されたビデオシーケンスは、典型的には、幾つかのエラーを持つソースビデオシーケンスのレプリカであることがある。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して行われることがあるデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させることがある。このようにして、ビデオエンコーダ(603)は、共通のコンテンツを持つ再構成された参照ピクチャのコピーを、(送信エラーがない)遠端ビデオデコーダによって取得される再構成された参照ピクチャとしてローカルに格納することがある。
【0087】
予測器(635)は、コーディングエンジン(632)の予測検索を行うことがある。すなわち、コーディングされるべき新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測参照として機能することがある、(候補参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャ動きベクトル、ブロック形状などのような特定のメタデータについて、参照ピクチャメモリ(634)を検索することがある。予測器(635)は、適切な予測参照を見出すために、サンプルブロック対ピクセルブロックベースで作動することがある。幾つかの場合には、予測器(635)によって取得される検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出される予測参照を有することがある。
【0088】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することがある。
【0089】
全ての前述の機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けることがある。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどのような技術に従ってシンボルを可逆(無損失)圧縮することによって、様々な機能ユニットによって生成されるシンボルをコーディングされたビデオシーケンスに変換する。
【0090】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することがある。コーディング中、コントローラ(650)は、各コーディングされた画像に特定のコーディングされたピクチャタイプを割り当てることがあり、それはそれぞれのピクチャに適用されることがあるコーディング技術に影響を与えることがある。例えば、ピクチャは、しばしば、後続のピクチャタイプのうちの1つとして割り当てられることがある。
【0091】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用することなく、コーディングおよびデコードされることがあるものであることがある。幾つかのビデオコーデックは、例えば、IDR(Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形およびそれらのそれぞれの用途および構成を認識している。
【0092】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル(運動ベクトル)および参照インデックス(参照指数)を使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされることがあるものであることがある。
【0093】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされることがあるものであることがある。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、2つよりも多くの参照ピクチャおよび関連するメタデータを使用することができる。
【0094】
ソースピクチャは、一般的に、複数のサンプルブロック(例えば、4x4、8x8、4x8、または16x16の各々についてのサンプルブロック)に空間的に細分化され、ブロック毎ベースデコードされることがある。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるような他の(既にコーディングされた)ブロックを参照して予測的にコーディングされることがある。例えば、Iピクチャのブロックは、非予測的にコーディングされることがあり、或いは、それらは、同じピクチャの既にコーディングされたブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされることがある。Pピクチャのピクセルブロックは、空間予測を介して、或いは1つの以前にコーディングされた参照ピクチャを参照する時間予測を介して、予測的にコーディングされることがある。Bピクチャのブロックは、空間予測を介して、或いは1つまたは2つの以前にコーディングされた参照ピクチャを参照する時間予測を介して、予測的にコーディングされることがある。
【0095】
ビデオエンコーダ(603)は、ITU-T Rec. H.265のような所定のビデオコーディング技術または標準に従ってコーディング動作を行うことがある。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおいて時間的および空間的な冗長性を利用する予測的コーディング動作を含む、様々な圧縮動作を行うことがある。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術または標準によって指定される構文に適合することがある。
【0096】
ビデオは、時間的なシーケンスにおいて複数のソースピクチャ(画像)の形態にあることがある。(しばしばイントラ予測と省略される)イントラピクチャ予測は、所与のピクチャにおける空間的な相関関係を利用し、インターピクチャ予測は、ピクチャ間の(時間的なまたは他の)相関関係を利用する。一例では、現在のピクチャと呼ばれるエンコーディング/デコーディングの下にある特定のピクチャが、ブロックに分割される。現在のピクチャにおけるブロックが、ビデオ内の以前にコーディングされ且つ依然としてバッファされている参照ピクチャにおける参照ブロックに類似するとき、現在のピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照ピクチャにおける参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する3次元を持つことができる。
【0097】
幾つかの実施形態において、双予測技法が、インターピクチャ予測において使用されることができる。双予測技法によれば、ビデオ内の現在のピクチャに対してデコーディング順において両方とも先行する(しかしながら、表示順においてそれぞれ過去および未来であることがある)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルおよび第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0098】
さらに、マージモード技法をインターピクチャ予測に使用して、コーディング効率を向上させることができる。
【0099】
本開示の幾つかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測のような予測が、ブロックの単位で行われる。例えば、HEVC標準によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU:coding tree units)に分割され、ピクチャ内のCTUは、64x64ピクセル、32x32ピクセル、または16x16ピクセルのような、同じサイズを有する。一般に、CTUは、3個のコーディングツリーブロック(CTB:coding tree blocks)を含み、それらは1個のルマ(輝度)CTBおよび2個のクロマ(彩度)CTBである。各CTUは、1個または複数のコーディングユニット(CU:coding units)に再帰的に分割されることができる。例えば、64x64ピクセルのCTUは、64x64ピクセルの1個のCU、32x32ピクセルの4個のCU、または16x16ピクセルの16個のCUに分割されることができる。一例では、各CUを分析して、インター予測タイプやイントラ予測タイプのようなCUのための予測タイプを決定する。CUは、時間的または空間的な予測可能性に依存して、1つ以上の予測ユニット(PU:prediction units)に分割される。一般に、各PUは、1個のルマ予測ブロック(PB:prediction block)と、2個のクロマPBとを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で行われる。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8x8ピクセル、16x16ピクセル、8x16ピクセル、16x8ピクセルなどのような、ピクセルについての値(例えば、ルマ値)の行列(マトリクス)を含む。
【0100】
図7は、幾つかの例におけるG-PCCエンコーダ(700)のブロック図を示している。G-PCCエンコーダ(700)は、ポイントクラウドデータを受信し、ポイントクラウドデータを圧縮して、圧縮されたポイントクラウドデータを運ぶビットストリームを生成するように構成されることができる。一実施形態において、G-PCCエンコーダ(700)は、位置量子化モジュール(710)、重複ポイント除去モジュール(712)、オクツリー(八分木)エンコーディングモジュール(730)、属性転送モジュール(720)、詳細レベル(LOD:level of detail)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディングモジュール(770)、逆残差量子化モジュール(780)、加算モジュール(781)、および再構成された属性値を格納するメモリ(790)を含むことができる。
【0101】
図示のように、入力ポイントクラウド(701)は、G-PCCエンコーダ(700)で受信されることができる。ポイントクラウド(701)の位置(例えば、3D座標)は、量子化モジュール(710)に提供される。量子化モジュール(710)は、量子化された位置を生成するために座標を量子化するように構成される。重複ポイント除去モジュール(712)は、量子化された位置を受信し、フィルタリングプロセスを行って、重複ポイントを識別して除去するように構成される。オクツリーエンコーディングモジュール(730)は、重複ポイント除去モジュール(712)からフィルタリングされた位置を受信し、オクツリーベースのコーディングプロセスを行って、ボクセルの3Dグリッドを記述する占有コードのシーケンスを生成するように構成される。占有コードは、算術コーディングモジュール(770)に提供される。
【0102】
属性転送モジュール(720)は、入力ポイントクラウドの属性を受信し、複数の属性値がそれぞれのボクセルと関連付けれるときに、各ボクセルについての属性値を決定するために、属性転送プロセスを行うように構成される。属性転送プロセスは、オクツリーエンコーディングモジュール(730)から出力された順序変更されたポイントに対して行われることができる。転送動作後の属性は、属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、オクツリーエンコーディングモジュール(730)から出力される順序変更されたポイントで動作し、ポイントを異なるLODに再編成するように構成される。LOD情報は、属性予測モジュール(750)に提供される。
【0103】
属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従ってポイントを処理する。属性予測モジュール(750)は、メモリ(790)に格納される現在のポイントの隣接するポイントのセットの再構成された属性に基づいて、現在のポイントについての属性予測を生成する。予測残差は、属性転送モジュール(720)から受信される元の属性値とローカルに生成される属性予測とに基づいて引き続き取得されることができる。候補インデックスがそれぞれの属性予測プロセスにおいて使用されるときに、選択される予測候補に対応するインデックスが、算術コーディングモジュール(770)に提供されることがある。
【0104】
残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受信し、量子化を行って量子化された残差を生成するように構成される。量子化された残差は、算術コーディングモジュール(770)に提供される。
【0105】
逆残差量子化モジュール(780)は、残差量子化モジュール(760)から量子化された残差を受信し、残差量子化モジュール(760)で行われる量子化動作の逆を行うことによって再構成された予測残差を生成するように構成される。加算モジュール(781)は、逆残差量子化モジュール(780)から再構成された予測残差を受信し、属性予測モジュール(750)からそれぞれの属性予測を受信するように構成される。再構成された予測残差と属性予測とを組み合わせることによって、再構成された属性値が生成され、メモリ(790)に格納される。
【0106】
算術コーディングモジュール(770)は、占有コード、(使用されるならば)候補インデックス、(生成されるならば)量子化された残差、および他の情報を受信し、エントロピーエンコーディングを行って、受信した値または情報をさらに圧縮するように構成される。その結果、圧縮された情報を運ぶ圧縮されたビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮されたビットストリームをデコードするデコーダに送信されるか或いは他の方法で提供されるか、或いはストレージデバイスに格納されることがある。
【0107】
図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示している。G-PCCデコーダ(800)は、圧縮されたビットストリームを受信し、ポイントクラウドデータ解凍を行って、ビットストリームを解凍し、デコードされたポイントクラウドデータを生成するように構成されることができる。一実施形態において、G-PCCデコーダ(800)は、算術デコーディングモジュール(810)、逆残差量子化モジュール(820)、オクツリーデコーディングモジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、および再構成された属性値を格納するメモリ(860)を含むことができる。
【0108】
図示のように、圧縮ビットストリーム(801)は、算術デコーディングモジュール(810)で受信されることができる。算術デコーディングモジュール(810)は、圧縮されたビットストリーム(801)をデコードして、ポイントクラウドの(生成されるならば)量子化された残差と占有コードとを取得するように構成される。オクツリーデコーディングモジュール(830)は、占有コードに従ってポイントクラウド内のポイントの再構成された位置を決定するように構成される。LOD生成モジュール(840)は、再構成された位置に基づいてポイントを異なるLODに再編成し、LODベースの順序を決定するように構成される。逆残差量子化モジュール(820)は、算術デコーディングモジュール(810)から受信される量子化された残差に基づいて再構成された残差を生成するように構成される。
【0109】
属性予測モジュール(850)は、属性予測プロセスを実行して、LODベースの順序に従ってポイントについての属性予測を決定するように構成される。例えば、現在のポイントの属性予測は、メモリ(860)に格納された現在のポイントの隣接するポイントの再構成された属性値に基づいて決定されることができる。幾つかの例では、属性予測をそれぞれの再構成された残差と組み合わせて、現在のポイントについての再構成された属性を生成することができる。
【0110】
属性予測モジュール(850)から生成される再構成された属性のシーケンスは、オクツリーデコーディングモジュール(830)から生成される再構成された位置とともに、一例ではG-PCCデコーダ(800)から出力されるデコードされたポイントクラウド(802)に対応する。加えて、再構成された属性は、メモリ(860)にも格納され、後続のポイントについての属性予測を導出するために引き続き使用されることができる。
【0111】
様々な実施形態において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されることができる。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、および同等物のような、ソフトウェアを用いて或いは用いないで作動する1つ以上の集積回路(IC)のような処理回路で実装されることができる。別の例において、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)は、不揮発性(または非一時的)コンピュータが読取可能な記憶媒体に格納された命令を含むソフトウェアまたはファームウェアとして実装されることができる。命令は、1つ以上のプロセッサのような処理回路構成によって実行されるときに、処理回路構成にエンコーダ(300)、デコーダ(400)、エンコーダ(700)、および/またはデコーダ(800)の機能を行わせる。
【0112】
本明細書において開示される属性予測技法を実装するように構成される属性予測モジュール(750)および(850)は、図7および図8に示されるものと類似するか或いは異なる構造を持つことがある他のデコーダまたはエンコーダに含められ得ることに注意されたい。加えて、エンコーダ(700)およびデコーダ(800)は、様々な例において同じデバイスまたは別々のデバイスに含められることができる。
【0113】
本開示の幾つかの態様によれば、メッシュ圧縮は、PCCコーディングツールとは異なるコーディングツールを使用することができ、或いは上記PCC(例えば、G-PCC、V-PCC)エンコーダ、上記PCC(例えば、G-PCC、V-PCC)デコーダ、および同等物のような、PCCコーディングツールを使用することができる。
【0114】
オブジェクトの(メッシュモデルとも呼ばれる)メッシュは、オブジェクトの表面を記述するポリゴンを含むことができる。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点がどのように接続されてポリゴンになるかの情報とによって定義付けられることができる。頂点がどのように接続されるかの情報は、接続情報と呼ばれる。幾つかの例において、メッシュは、頂点と関連付けられる色、法線、および同等物のような、属性を含むこともできる。属性は、2D属性マップでメッシュをパラメータ化するマッピング情報を利用することによって、メッシュの表面と関連付けられることができる。マッピング情報は、通常、メッシュの頂点と関連付けられる、UV座標またはテクスチャ座標と呼ばれる、パラメトリック座標のセットによって記述される。(幾つかの例ではテクスチャマップと呼ばれる)2D属性マップは、テクスチャ、法線、配置などのような、高解像度の属性情報を格納するために使用される。そのような情報は、テクスチャマッピングおよびシェーディング(shading)のような様々な目的のために使用されることができる。
【0115】
幾つかの実施形態では、メッシュが、ジオメトリ情報、接続性情報、マッピング情報、頂点属性、および属性マップと呼ばれるコンポーネントを含むことができる。幾つかの例において、ジオメトリ情報は、メッシュの頂点と関連付けられる3D位置のセットによって記述される。一例では、(x,y,z)座標を使用して、頂点の3D位置を記述することができる。幾つかの例において、接続性情報は、頂点をどのように接続して3D表面を作成するかを記述する頂点インデックスのセットを含む。幾つかの例において、マッピング情報は、メッシュ表面をどのように平面の2D領域にマッピングするかを記述する。一例において、マッピング情報は、接続性情報とともにメッシュ頂点と関連付けられるUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。幾つかの例において、頂点属性は、メッシュ頂点と関連付けられるスカラまたはベクトル属性値を含む。幾つかの例において、属性マップは、メッシュ表面と関連付けられ、2D画像/ビデオとして格納される、属性を含む。一例において、ビデオ(例えば、2D画像/動画)とメッシュ表面と間のマッピングは、マッピング情報によって定義付けられる。
【0116】
本開示の態様によれば、UVマッピングまたはメッシュパラメータ化と呼ばれる幾つかの技法が、3Dドメイン内のメッシュの表面を2Dドメインにマッピングするために使用される。幾つかの例では、メッシュが、3Dドメイン内の(幾つかの例ではセグメントとも呼ばれる)パッチに分割される。次に、パッチは、それぞれ、2D形状にパラメータ化される。2D形状は、幾つかの例ではアトラス(atlases)とも呼ばれるマップにパックされる(例えば、方向付けられて配置される)ことができる。幾つかの例において、マップは、2D画像またはビデオ処理技法を使用してさらに処理されることができる。
【0117】
一例では、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)にあるテクスチャアトラス内のポイントが、3Dドメイン内の(x,y,z)にある頂点の色に等しい色を持つ。
【0118】
本開示の一態様によれば、動的メッシュが、コンポーネント(ジオメトリ情報、接続性情報、マッピング情報、頂点属性および属性マップ)のうちの少なくとも1つが時間とともに変化するメッシュである。動的メッシュは、(メッシュフレームとも呼ばれる)メッシュのシーケンスによって記述されることができる。動的メッシュは、大量のデータを必要とすることがある。何故ならば、動的メッシュは、時間の経過に亘って変化する有意な量の情報を含むことがあるからである。メッシュの圧縮技術は、メッシュ表現におけるメディアコンテンツの効率的な格納および送信を可能にすることができる。
【0119】
幾つかの例では、動的メッシュが、一定の接続性情報、時変ジオメトリ、および時変頂点属性を持つことができる。幾つかの例では、動的メッシュが、時変接続性情報を持つことができる。一例では、デジタルコンテンツ作成ツールが、通常、時変属性マップおよび時変接続性情報を持つ動的メッシュを生成する。幾つかの例では、動的メッシュを生成するために、容量取得(volumetric acquisition)技法が使用される。容量取得技法は、特にリアルタイムの制約の下で、時変接続性情報を持つ動的メッシュを生成することができる。
【0120】
本開示の幾つかの態様によれば、幾つかのメッシュ圧縮技法は、非可逆(損失性)圧縮の性質を持ち、再構成されたメッシュの品質は、ギャップに苦しみ得る。幾つかの例では、UVアトラスサンプリング技法のような再メッシュ技法が、メッシュ圧縮において使用される。UVアトラスサンプリング技法は、UVアトラス上にサンプリングされた規則的なグリッドポイントを介して3Dメッシュモデルを再メッシュする。UVアトラスにおける元の頂点は、規則的なグリッドポイントによって置換される。接続性情報は、規則的なグリッドポイントから推測されることができ、個別にエンコードされる必要がない。UVアトラスサンプリング技法におけるサンプリングポイントは、UVパッチの境界上でメッシュの頂点と一致せず、故に、再構成されたメッシュは、ギャップを有することがある。
【0121】
本開示の一態様によれば、(UVアトラスとも呼ばれる)UVマップは、メッシュの特定のエッジおよび頂点で構成される切断経路に沿ってメッシュをパッチに分割し、パッチをUVマップにおけるUVパッチにパラメータ化することによって生成される。切断経路におけるエッジおよび頂点は、UVマップにおけるUVパッチの境界エッジおよび境界頂点にマッピングされる。例えば、切断経路におけるエッジが、UVマップにおける2つの異なるUVパッチの2つの境界エッジに分割され、切断経路における頂点が、UVマップにおける異なるUVパッチのn(n≧2)の境界頂点に分割される。同じエッジの分割によって生じる境界エッジは、エッジメイト(edge mates)と呼ばれる。同じ頂点の分割によって生じる境界頂点は、頂点メイト(vertex mates)と呼ばれる。よって、UVパッチの境界は、エッジメイトおよび頂点メイトからなる。
【0122】
幾つかの例では、UVマップでUVアトラスサンプリング技法を使用してパラメータ化を推定するとき、サンプリングポイントは、UVマップにおけるUVパッチの境界頂点および境界エッジで一致しない。その場合には、デコーダ側で、再構成されたパッチの境界は、エッジメイトおよび頂点メイトについての一致要件(matching requirements)を満たさないことがあり、よって、ギャップがパッチ間に存在することがある。
【0123】
図9は、UVアトラスサンプリングに基づいて処理される再構成されたメッシュ(900)の図を示している。再構成されたメッシュ(900)は、パッチ間のギャップ(901)を含む。
【0124】
本開示の幾つかの態様は、メッシュ圧縮のための(パッチ接続技法とも呼ばれる)パッチジッピング(patch zipping)技法を提供する。パッチジッピング技法は、UVパッチ(例えば、再メッシュ前のオリジナルUVパッチ)の境界エッジおよび境界頂点のような、UVパッチの境界情報を保持することができる。UVパッチの境界情報を使用して、一例では、UVアトラスサンプリング技法によって防水メッシュを再構成することができる。
【0125】
UVアトラスサンプリング技法は、パッチジッピング技法を使用してパッチ間で充填されたギャップを実現することができる非可逆(損失性)圧縮技法の一例として使用されるが、パラメータ化、サンプリング、または投影アプローチにかかわらず、他の再メッシュまたは圧縮技法をパッチジッピング技法と共に使用してギャップ充填効果を実現することができることに留意されたい。
【0126】
図10は、本開示の幾つかの実施形態によるメッシュ圧縮のためのフレームワーク(1000)の図を示している。フレームワーク(1000)は、メッシュエンコーダ(1010)と、メッシュデコーダ(1050)とを含む。メッシュエンコーダ(1010)は、入力メッシュ(1005)(動的メッシュの場合にはメッシュフレーム)をビットストリーム(1045)にエンコードし、メッシュデコーダ(1050)は、ビットストリーム(1045)をデコードして再構成されたメッシュ(1095)(動的メッシュの場合にはメッシュフレーム)を生成する。
【0127】
メッシュエンコーダ(1010)は、コンピュータ、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイス、および同等物のような、任意の適切なデバイスであることができる。メッシュデコーダ(1050)は、コンピュータ、クライアントコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、ゲームデバイス、ARデバイス、VRデバイス、および同等物のような、任意の適切なデバイスであることができる。ビットストリーム(1045)は、任意の適切な通信ネットワーク(図示せず)を介してメッシュエンコーダ(1010)からメッシュデコーダ(1050)に送信されることができる。
【0128】
図10の例において、メッシュエンコーダ(1010)は、非可逆(損失性)メッシュエンコーダ(1020)と、互いに結合された境界エンコーダ(1040)とを含む。非可逆メッシュエンコーダ(1020)は、情報損失を引き起こすことがある技法を使用し、情報損失は、再構成されたメッシュにギャップを引き起こし得る。境界エンコーダ(1040)は、入力メッシュ(1005)にパッチの境界情報を保持し、境界情報をビットストリーム(1045)にエンコードするように構成される。
【0129】
幾つかの例において、非可逆メッシュエンコーダ(1020)は、情報損失を引き起こすことがあり、再構成されたメッシュにギャップをもたらすことがある、UVアトラスサンプリング技法を使用する。図10の例において、非可逆メッシュエンコーダ(1020)は、図10に示すように互いに結合された前処理モジュール(1021)、UVアトラスサンプリングモジュール(1025)およびエンコーダ(1030)を含む。
【0130】
前処理モジュール(1021)は、入力メッシュ (1005)を分割してパッチを生成し、パッチのパラメータ化を行ってUVマップおよび1つ以上のテクスチャマップのような2Dドメインにおいてマップ(1022)を生成する。UVマップは、入力メッシュ(1005)のパッチに対応するUVパッチを含む。
【0131】
UVアトラスサンプリングモジュール(1025)は、規則的なグリッドポイント上でUVマップをサンプリングすることによって新しいメッシュ(1027)を生成することによって再メッシュ(re-meshing)を行う。一例において、新しいメッシュ(1027)は、頂点が規則的なグリッドポイントにマッピングされた新しいUVマップおよび新しいテクスチャマップの形態にある。幾つかの例において、新しいメッシュ(1027)は、新しいUVマップおよび新しいテクスチャマップから再構成される再構成されたメッシュである。新しいメッシュ(1027)の接続性情報は、規則的なグリッドポイントに従って推測されることができることに留意されたい。
【0132】
エンコーダ(1030)は、新しいメッシュ(1027)をエンコードすることができる。一例において、エンコーダ(1030)は、G-PCCエンコーダ、V-PCCエンコーダおよび同等物のような、PCCエンコーダを含む。新しいメッシュ(1027)の頂点は、ポイントクラウドを形成することができ、エンコーダ(1030)は、PCCエンコーダを使用してポイントクラウドをエンコードすることができる。別の例において、エンコーダ(1030)は、適切なビデオコーディング標準に従って新しいUVマップおよび新しいテクスチャマップをエンコードすることができるビデオエンコーダを含む。エンコーダ(1030)は、非可逆エンコーダまたは可逆エンコーダであることができる。
【0133】
図10の例において、境界エンコーダ(1040)は、マップ(1022)からパッチ境界情報を抽出し、パッチ境界情報をビットストリーム(1045)にエンコードすることができる。境界エンコーダ(1040)の動作は、本開示においてさらに記載される。
【0134】
図10の例において、ビットストリーム(1045)は、メッシュデコーダ(1050)に提供される。メッシュデコーダ(1050)は、デコーダ(1060)、メッシュ再構成モジュール(1080)、および境界デコーダ(1090)を含む。一例において、デコーダ(1060)は、エンコーダ(1030)に対応し、エンコーダ(1030)によってエンコードされるビットストリーム(1045)の部分をデコードし、デコードされる情報(1065)を生成することができる。
【0135】
一例において、エンコーダ(1030)は、PCCエンコーダであり、その場合には、デコーダ(1060)は、PCCデコーダである。デコーダ(1060)は、エンコーダ(1030)によってエンコードされるビットストリーム(1045)の部分をデコードして、メッシュの頂点であるポイントを持つポイントクラウドを生成することができる。例えば、デコードされる情報(1065)は、メッシュの頂点であるポイントを持つポイントクラウドを含む。
【0136】
別の例において、エンコーダ(1030)は、1つ以上のビデオエンコーダを含み、デコーダ(1060)は、1つ以上のビデオデコーダを含む。デコーダ(1060)は、エンコーダ(1030)によってエンコードされるビットストリーム(1045)の部分をデコードして、UVマップ、1つ以上のテクスチャマップおよび同等物のような、マップを生成することができる。例えば、デコードされる情報(1065)は、ビットストリーム(1045)からデコードされるUVマップおよび1つ以上のテクスチャマップを含む。
【0137】
図10の例において、境界デコーダ(1090)は、境界エンコーダ(1040)に対応し、境界エンコーダ(1040)によってエンコードされるビットストリーム(1045)の部分をデコードし、デコードされるパッチ境界情報(1091)を生成することができる。
【0138】
図10の例において、デコードされる情報(1065)およびデコードされるパッチ境界情報(1091)は、メッシュ再構成モジュール(1080)に提供される。メッシュ再構成モジュール(1080)は、デコードされた情報(1065)およびデコードされたパッチ境界情報(1091)に基づいて再構成されたメッシュ(1095)を生成する。境界デコーダ(1090)およびメッシュ再構成(1080)の動作は、本開示においてさらに記載される。
【0139】
前処理モジュール(1021)、UVアトラスサンプリングモジュール(1025)、エンコーダ(1030)、および境界エンコーダ(1040)のような、メッシュエンコーダ(1010)内のコンポーネントは、様々な技法によってそれぞれ実装され得ることに留意されたい。一例では、コンポーネントが、集積回路構成によって実装される。別の例では、コンポーネントが、1つ以上のプロセッサで実行され得るソフトウェアを使用して実装される。
【0140】
デコーダ(1060)、メッシュ再構成モジュール(1080)、および境界デコーダ(1090)のような、メッシュデコーダ(1050)内のコンポーネントが、様々な技法によってそれぞれ実装され得ることに留意されたい。一例では、コンポーネントが、集積回路構成によって実装される。別の例では、コンポーネントが、1つ以上のプロセッサによって実行されることができるソフトウェアを使用して実装される。
【0141】
本開示の一態様によれば、境界エンコーダ(1040)は、UVマップからUVパッチを決定し、UVパッチの境界を決定し、UVパッチの境界を適切なデータ構造においてパッチ境界データとして格納し、パッチ境界データをビットストリーム(1045)にエンコードすることができる。
【0142】
UVマップからUVパッチを決定するために、幾つかの例において、境界エンコーダ(1040)は、Edgebreakerまたは結合(valence)ベースのアルゴリズムのような、三角形トラバーサルアルゴリズムを使用して、UVマップ内の接続された三角形のセットを検出する。接続された三角形のセットは、UVパッチに対応する。境界エンコーダ(1040)は、前処理モジュール(1021)から情報(例えば、パーティション情報、パラメータ化情報および同等物)を受信することもでき、前処理モジュール(1021)から受信する情報からUVパッチを決定する。
【0143】
UVパッチの境界を決定するために、幾つかの例において、境界エンコーダ(1040)は、境界頂点および境界エッジを決定する。任意の適切な技法を使用して、境界頂点および境界エッジを検出することができる。一例では、UVパッチにおけるエッジがUVパッチの2つの隣接する三角形によって共有されないとき、例えば、エッジがUVパッチの1つの三角形にのみに属するとき、エッジは、UVパッチの境界エッジであり、境界エッジの頂点は、境界頂点である。
【0144】
別の例では、UVパッチの境界頂点が、メッシュ頂点から分割される。よって、頂点メイト(vertex mates)が、頂点の(x,y,z)に基づいて、UVパッチから検出されることができる。例えば、異なるUVパッチの複数の頂点が同じ(x,y,z)値を持つとき、その複数の頂点は、頂点メイトであり、UVパッチの境界頂点でもある。さらに、2つの境界頂点間のエッジが、境界エッジである。
【0145】
別の例では、パーティション情報が、前処理モジュール(1021)から受信される。例えば、パーティション情報は、入力メッシュ(1005)をパッチに分割する切断経路の情報を含む。パーティション情報は、境界エッジおよび境界頂点を示す。
【0146】
パッチ境界情報は、適切なデータ構造に格納されることができる。一例では、UVパッチの境界頂点が、時計回り順序、反時計回り順序、および同等の順序のような、特定の順序において格納される。幾つかの例では、(例えば、boundary_tableと呼ばれる)ハッシュテーブルが、UVパッチについての境界頂点を格納するために構築され、ハッシュテーブル(例えば、boundary_table)は、UVパッチにそれぞれ対応する複数のテーブルエントリを含み、各テーブルエントリは、対応するUVパッチの境界頂点のリストである。例えば、UVパッチに対応するエントリが、UVパッチのラベルに従ってアクセスされることができ、エントリは、UVパッチの境界頂点インデックスのリストを、反時計回り順序のような固定順序において格納する。一例では、i番目のUVパッチのためのラベルにハッシュ関数を適用して値iを取得して、テーブルエントリboundary_table[i]にアクセスする。テーブルエントリboundary_table[i]は、boundary_table[i]=[idx_1,idx_2,idx_3,...,idx_m]のような、境界頂点インデックスのリストを格納し、mは、i番目のUVパッチの境界頂点の数を示し、i番目のUVパッチの境界頂点のインデックスは、idx_1,idx_2,idx_3,...,idx_mである。よって、境界エッジは、(idx_1,idx_2),(idx_2,idx_3),...,(idx_m,idx_1)である。
【0147】
一例において、境界テーブル内のインデックスは、UVパッチの内側の頂点を除くUVアトラス内の境界頂点のみについて定義される境界頂点インデックスであることに留意されたい。
【0148】
さらに、UVパッチの境界頂点の詳細情報が格納される。例えば、UVパッチの各境界頂点について、UVアトラス内の境界頂点のUV座標、例えば入力メッシュ(1005)における対応するメッシュ頂点インデックス、および例えば、入力メッシュ(1005)における3D座標が格納される。幾つかの例では、各境界頂点について、6つの整数(例えば、UVアトラスにおけるu座標、UVアトラスにおけるv座標、入力メッシュにおけるメッシュ頂点インデックス(1005)、入力メッシュ(1005)におけるx座標、入力メッシュ(1005)におけるy座標、入力メッシュ(1005)におけるz座標)が、境界頂点に関連付けられて格納される。一例では、boundary_uv、boundary_idx、boundary_xyzとして参照される3つのアレイ(配列)が、境界頂点の詳細情報を格納するために使用される。3つのアレイの各々は、それぞれ境界頂点についてのアレイエントリを含む。境界頂点についてのアレイエントリは、境界頂点インデックスによってアクセスされることができる。境界頂点についてのアレイboundary_uvにおけるアレイエントリが、UVアトラスにおける境界頂点のUV座標を格納する。境界頂点についてのアレイboundary_idxにおけるアレイエントリが、UVアトラスにおける境界頂点の(例えば、入力メッシュ(1005)の)メッシュ頂点インデックスを格納する。境界頂点についてアレイboundary_xyzにおけるアレイエントリが、入力メッシュ(1005)における対応するメッシュ頂点の3D元座標を格納する。
【0149】
従って、一例では、頂点メイト(vertex mates)が、メッシュ頂点インデックスについて同じ値を持つことができ、3D座標について同じ値を持つことができる。
【0150】
別の例では、メッシュシーケンスについて、境界頂点の詳細情報は、2つの3チャネル画像を使用して格納される。例えば、境界頂点のUV座標および対応するメッシュ頂点インデックスは、例えば、第1の3チャネル画像中に3チャネルとして格納され、境界頂点の3D座標は、第2の3チャネル画像中に3チャネルとして格納される。
【0151】
UVパッチの境界頂点に対応するメッシュ頂点は、切断経路上にあるので、本掲載所において記載される対応するメッシュ頂点インデックスは、それらの切断経路頂点について定義されることに留意されたい。
【0152】
本開示の一態様によれば、境界情報により、占有マップは、必ずしもビットストリーム(1045)にコーディングされないことがある。例えば、UVパッチの内側のポイントおよびUVパッチの外側のポイントは、境界情報に基づいて決定されることができる。より具体的には、UVパッチの境界頂点によって定義されるポリゴンの内側のポイントは、占有ポイントとして推論されることができ、UVパッチに属する。UVアトラス上のポイントが如何なるUVパッチにも属さないならば、そのポイントは、占有されていないと推論されることができる。幾つかの例において、エンコーダ(1030)は、ジオメトリ画像をエンコードするためのビデオエンコーダを含み、占有マップのためのビデオエンコーダを含まない。
【0153】
一例において、境界エンコーダ(1040)は、可逆(無損失)コーディング技法を使用してboundary_tableおよびboundary_idxをビットストリーム(1045)にエンコードし、非可逆(損失性)または可逆コーディング技法を使用してboundary_xyzおよびboundary_uvをビットストリーム(1045)にエンコードする。別の例において、境界エンコーダ(1040)は、可逆コーディング技法を使用してboundary_table、boundary_uvおよびboundary_idxをビットストリーム(1045)にエンコードし、非可逆または可逆コーディング技法を使用してboundary_xyzをビットストリーム(1045)にエンコードする。
【0154】
一例では、各メッシュフレームの境界情報が、独立してコーディングされる。幾つかの例において、メッシュフレームの境界情報は、フレーム間の相関関係を探索することによってコーディングされることができる。例えば、エントロピーコーディングにおけるインターフレーム予測(inter-frame prediction)およびイントラフレーム関連コンテキストモデリング(intra-frame related context modeling)は、境界情報をコーディングするときに適用されることができる。
【0155】
本開示の一態様によれば、境界デコーダ(1090)は、ビットストリーム(1045)からboundary_table、boundary_uv、boundary_idx、boundary_xyzのような境界情報をデコードするように構成される。一例において、メッシュ再構成モジュール(1080)は、再構成されたメッシュ(1095)をパッチ毎に生成することができる。各UVパッチについて、メッシュ再構成モジュール(1080)は、UVパッチのラベルに対してハッシュ関数を適用して、boundary_table内のテーブルエントリのテーブルエントリインデックスを決定する。次に、メッシュ再構成モジュール(1080)は、テーブルエントリにアクセスしてUVパッチについての境界頂点の境界頂点インデックスのリストを取得し、境界頂点に基づいてUVパッチの境界エッジを決定する。
【0156】
幾つかの例では、boundary_tableからのUVパッチの境界頂点の境界頂点インデックスに基づいて、アレイboundary_uvにアクセスして、UVパッチの境界頂点のUV座標を取得する。さらに、幾つかの例では、UVアトラスサンプリング技法が使用されるときに、UVパッチの内側の規則的なグリッド上のサンプリングポイントを決定することができ、サンプリングポイントのUV座標を決定することができる。
【0157】
幾つかの例では、取得したUV座標およびUVパッチの境界エッジを用いて、接続性情報を推測することができ、UVパッチの面を生成することができる。一例では、UVパッチの内側のポイントの取得したUV座標およびUVパッチの境界エッジに基づいて、制約付きドローネー三角形分割技法(Delaunay triangulation technique)を使用して、UVパッチの再メッシュされた三角形の面を生成する。他の適切な三角測量(triangulation)または再メッシュ(re-meshing)技法を使用してUVパッチの面を生成し得ることに留意されたい。幾つかの例において、ビットストリームは、使用する特定の三角測量または再メッシュ技法を示す信号を含む。
【0158】
本開示の一態様によれば、UVパッチの内側の頂点の3D座標は、例えば、UVマップに従って、ジオメトリピクチャから取得されることができる。UVパッチ境界上の境界頂点について、一例では、UVパッチの境界頂点のインデックスをboundary_tableから決定することができ、次に、アレイboundary_idxに従って対応するメッシュ頂点インデックスを決定することができる。一例において、アレイboundary_xyzは、メッシュ頂点インデックスに対応する3D座標を格納し、次に、境界頂点の3D座標は、境界頂点についてのメッシュ頂点インデックスに基づいて決定されることができる。別の例において、アレイboundary_xyzは、UVパッチ内の境界頂点のインデックスに対応する3D座標を格納し、次に、boundary_tableからの境界頂点のインデックスを使用して、アレイboundary_xyzから境界頂点の3D座標を取得することができる。
【0159】
図11は、開示の実施形態によるプロセス(1100)の概説するフローチャートを示している。プロセス(1100)は、メッシュのためのエンコーディング処理中に使用されることができる。様々な実施形態において、プロセス(1100)は、処理回路構成によって実行される。幾つかの実施形態において、プロセス(1100)は、ソフトウェア命令において実装され、よって、処理回路構成がソフトウェア命令を実行するとき、処理回路構成は、プロセス(1100)を行う。プロセスは、(S1101)で開始し、(S1110)に進む。
【0160】
(S1110)で、メッシュから分割される複数のパッチのパッチ境界情報を決定する。
【0161】
(S1120)で、複数のパッチのパッチ情報をビットストリームの第1の部分にエンコードする。
【0162】
(S1130)で、複数のパッチのパッチ境界情報をビットストリームの第2の部分にエンコードする。パッチ境界情報は、少なくとも第1のパッチの第1のエッジおよび第2のパッチの第2のエッジがエッジメイト(edge mates)のペアであることを示す。
【0163】
本開示の一態様によれば、第1の部分におけるパッチ情報は、第2の部分におけるパッチ境界情報とは異なるパッチ境界情報を持つ。例えば、パッチ情報は、例えば、UVアトラスサンプリング技法および同等物を含む、非可逆(損失性)圧縮の性質を持つ技法によってエンコードされる。
【0164】
幾つかの実施形態において、UVアトラスにおけるUVパッチは、ビットストリームの第1の部分にエンコードされ、UVパッチの境界の情報は、ビットストリームの第2の部分にエンコードされる。UVアトラスにおけるUVパッチは、メッシュにおける複数のパッチに対応する。
【0165】
幾つかの実施形態では、パッチ境界情報を決定するために、UVパッチがUVアトラスから決定され、UVパッチの境界が決定される。幾つかの例では、UVパッチを決定するために、UVアトラス内の接続された三角形の第1のセットが検出され、接続された三角形の第1のセットは、第1のUVパッチを形成する。UVパッチの境界を決定するために、一例では、第1のUVパッチのエッジのセットが検出され、エッジのセットの各々は、第1のUVパッチの2つの隣接する三角形によって共有されない。別の例では、第1のUVパッチの頂点のセットが検出され、頂点のセットの各々は、少なくとも別のUVパッチにおける頂点メイトを持つ。
【0166】
幾つかの例では、UVパッチをエンコードするために、UVアトラスを規則的なグリッド上でサンプリングして新しいメッシュを生成し、新しいメッシュの情報をビットストリームの第1の部分にエンコードする。
【0167】
幾つかの例では、UVパッチの境界の情報をエンコードするために、境界テーブルを第2の部分にエンコードする。境界テーブル(例えば、boundary_table)は、複数のUVパッチの境界頂点のリストを含む。幾つかの例では、第1のアレイが、第2の部分にエンコードされ、第1のアレイ(例えば、boundary_uv)は、複数のパッチの境界頂点をUVアトラスにマッピングするためのUV座標を持つ(carries)。さらに、幾つかの例では、第2のアレイ(例えば、boundary_idx)が、第2の部分にエンコードされる。第2のアレイは、複数のUVパッチの境界頂点に対応するメッシュのメッシュ頂点インデックスを持つ。幾つかの例では、第3のアレイ(例えば、boundary_xyz)が、第2の部分にエンコードされ、第3のアレイは、複数のUVパッチの境界頂点についてのメッシュ頂点インデックスに対応する3次元座標を運ぶ。幾つかの他の例では、第3のアレイ(例えば、boundary_xyz)が、第2の部分にエンコードされ、第3のアレイは、複数のUVパッチの境界頂点についての境界頂点インデックスに対応する3次元座標を持つ。
【0168】
本開示の一態様によれば、ビットストリームの第2の部分にエンコードされる境界情報に基づいて占有マップを決定することができ、よって、第1の部分は、一例において、占有マップを含む必要がない。
【0169】
次に、プロセスは、(S1199)に進み、終了する。
【0170】
プロセス(1100)は、適切に適合されることができる。プロセス(1100)のステップを変更および/または省略することができる。追加的なステップを加えることができる。任意の適切な順序の実装を使用することができる。
【0171】
図12は、本開示の一実施形態によるプロセス(1200)を概説するフローチャートを示している。プロセス(1200)は、メッシュについてのデコーディングプロセス中に使用されることができる。様々な実施形態において、プロセス(1200)は、処理回路構成によって実行される。幾つかの実施形態において、プロセス(1200)は、ソフトウェア命令において実装され、よって、処理回路構成がソフトウェア命令を実行するときに、処理回路構成は、プロセス(1200)を行う。プロセスは、(S1201)で開始し、(S1210)に進む。
【0172】
(S1210)で、メッシュのエンコードされた情報を運ぶビットストリームを受信する。メッシュは、パッチに分割され、ビットストリームは、第1の部分と、第2の部分とを含む。第1の部分は、パッチ情報を含み、第2の部分は、少なくとも第1のパッチの第1のエッジおよび第2のパッチの第2のエッジがエッジメイトのペアであることを示すパッチ境界情報を含む。
【0173】
(S1220)で、第1の部分をデコードしてパッチ情報を取得する。
【0174】
(S1230)で、第2の部分をデコードしてパッチ境界情報を取得する。
【0175】
(S1240)で、パッチ情報およびパッチ境界情報に基づいて再構成されたメッシュを生成する。第1のエッジおよび第2のエッジを再構成されたメッシュ内の同じエッジにマッピングして、第1のパッチおよび第2のパッチを一緒にジップする(zip)(接続する(connect))。
【0176】
幾つかの例において、第1の部分からデコードされるパッチ情報は、第2の部分からデコードされるパッチ境界情報とは異なるパッチ境界情報を持つ。例えば、パッチ情報は、例えば、UVアトラスサンプリング技法および同等技法を含む、非可逆(損失性)圧縮の性質を有する技法によってエンコードされる。
【0177】
幾つかの実施形態では、第2の部分をデコードするために、境界テーブル(例えば、boundary_table)を第2の部分からデコードする。境界テーブルは、UVアトラス内のUVパッチの境界頂点のリストを含む。幾つかの例では、第1のパッチについての境界頂点の第1のリストが、境界テーブルに従って決定され、第2のパッチについての境界頂点の第2のリストが、境界テーブルに従って決定される。さらに、第1のパッチについての第1の境界エッジは、境界頂点の第1のリストに従って決定され、第1のエッジは、第1のパッチの第1の境界エッジの1つである。第2のパッチの第2の境界エッジは、境界頂点の第2のリストに従って決定され、第2のエッジは、第2のパッチの第2の境界エッジの1つである。
【0178】
第2の部分をデコードするために、幾つかの例では、第1のアレイ(例えば、boundary_uv)を第2の部分からデコードする。第1のアレイは、パッチの境界頂点をUVアトラスにマッピングするためのUV座標を持つ。第1のアレイによれば、境界頂点の第1のリストの第1の境界UV座標は、第1のパッチをUVアトラス内の第1のUVパッチにマッピングするために決定され、第1のUVパッチは、第1のパッチに対応する。第1のアレイによれば、境界頂点の第2のリストの第2の境界UV座標は、第2のパッチをUVアトラス内の第2のUVパッチにマッピングするために決定され、第2のUVパッチは、第2のパッチに対応する。
【0179】
幾つかの例では、再構成されたメッシュを生成するために、第1のUVパッチの内側の第1の頂点の第1のUV座標を決定し、第2のUVパッチの内側の第2の頂点の第2のUV座標を決定する。例えば、第1の頂点および第2の頂点は、UVアトラスの規則的なグリッドにある。幾つかの例では、第1のUVパッチの内側の第1の頂点の第1のUV座標および境界頂点の第1のリストの第1の境界UV座標に基づいて第1のUVパッチについての第1の接続情報を決定し、第2のUVパッチの内側の第2の頂点の第2のUV座標および境界頂点の第2のリストの第2の境界UV座標に基づいて第2のUVパッチについての第2の接続性情報を決定する。第1の接続性情報および第2の接続性情報は、任意の適切な技法によって決定されることができる。一例では、特定の接続性決定技法の使用が、ビットストリーム内の信号に基づいて決定される。
【0180】
幾つかの例では、第2のアレイ(例えば、boundary_idx)が、第2の部分からデコードされ、第2のアレイは、パッチの境界頂点に対応するメッシュのメッシュ頂点インデックスを持つ。一例では、第2のアレイに従って、第1のエッジの第1の頂点についての第1のメッシュ頂点インデックスが決定され、第2のエッジの第2の頂点についての第2のメッシュ頂点インデックスが決定される。第1のエッジの第1の頂点についての第1のメッシュ頂点インデックスは、第2のエッジの第2の頂点についての第2のメッシュ頂点インデックスと一致する。よって、第1のエッジおよび第2のエッジは、エッジメイトである。さらに、一例では、第3のアレイ(例えば、boundary_xyz)が、第2の部分からデコードされる。第3のアレイは、メッシュ頂点インデックスに対応する3次元座標を持つ。
【0181】
他の幾つかの例では、第3のアレイ(例えば、boundary_xyz)が、第2の部分からデコードされる。第3のアレイは、UVパッチの境界頂点インデックスに対応する3次元(3D)座標を持つ。一例では、第3のアレイに従って、第1のエッジの第1の頂点についての第1の3D座標が決定され、第2のエッジの第2の頂点についての第2の3D座標が決定される。第1のエッジの第1の頂点についての第1の3D座標は、第2のエッジの第2の頂点についての第2の3D座標と一致し、よって、第1のエッジおよび第2のエッジは、エッジメイト(edge mates)の一致である。
【0182】
次に、処理は、(S1299)に進み、終了する。
【0183】
プロセス(1200)を適切に適合させることができる。プロセス(1200)のステップを変更および/または省略することができる。追加的なステップを加えることができる。任意の適切な順序の実装を使用できる。
【0184】
本開示で開示される技法は、任意の順序で別々に或いは組み合わせて使用することができる。さらに、各技法(例えば、方法、実施形態)、エンコーダ、およびデコーダは、処理回路構成(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装されることがある。幾つかの例において、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に格納されるプログラムを実行する。
【0185】
上述の技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装されることができ、1つ以上のコンピュータ可読媒体に物理的に格納されることができる。例えば、図13は、開示される主題事項の特定の実施形態を実装するのに適したコンピュータシステム(1300)を示している。
【0186】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)、および同等物によって、直接的にまたは解釈、マイクロコード実行、および同等物を通じて実行されることができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となることがある任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングされることができる。
【0187】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス、および同等物を含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されることができる。
【0188】
コンピュータシステム(1300)について図13に示されるコンポーネントは、本質的には例示的であり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能性に関する如何なる制限を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(1300)の例示的な実施形態に例示されるコンポーネントのいずれか1つまたは組み合わせに関する如何なる依存関係または要件を持つものとしても解釈されるべきでない。
【0189】
コンピュータシステム(1300)は、特定のヒューマンインターフェース入力デバイスを含むことがある。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きのような)触覚入力、(音声、拍手のような)オーディオ入力、(ジェスチャのような)視覚入力、(描写されていない)嗅覚入力を通じて、1人以上の人間のユーザによる入力に応答することがある。ヒューマンインターフェースデバイスは、(スピーチ、音楽、環境音のような)オーディオ、(スキャンされた画像、静止画像カメラから取得された写真画像のような)画像、(二次元ビデオ、立体ビデオを含む三次元ビデオのような)ビデオのような、必ずしも人間による意識的入力に直接的に関連しない特定のメディアをキャプチャするために使用されることもできる。
【0190】
入力ヒューマンインターフェースデバイスは、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグローブ(図示せず)、ジョイスティック(1305)、マイクロホン(1306)、スキャナ(1307)、カメラ(1308)のうちの1つ以上(それぞれのうちの1つのみが描写されている)を含むことがある。
【0191】
コンピュータシステム(1300)は、特定のヒューマンインターフェース出力デバイスを含むこともある。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を通じて、1つ以上の人間のユーザの感覚を刺激することがある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1310)、データグローブ(図示せず)、ジョイスティック(1305)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、(スピーカ(1309)、(描写されていない)ヘッドホンのような)オーディオ出力デバイス、(各々がタッチスクリーン入力能力を持つ或いは持たない、各々が触覚フィードバック能力を持つ或いは持たない、それらのうちの一部は、立体映像出力のような手段を通じて二次元の視覚出力または三次元より大きな次元の出力を出力することがある、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含む、スクリーン(1310)のような)視覚出力デバイス、仮想現実メガネ(描写されていない)、ホログラフィックディスプレイおよびスモークタンク(描写されていない)、およびプリンタ(描写されていない)を含むことがある。
【0192】
コンピュータシステム(1300)は、人間がアクセス可能なストレージデバイス、並びにCD/DVDまたは同様のメディアを含むCD/DVD ROM/RW(1320)を含む光学媒体(1321)、サムドライブ(1322)、リムーバブルハードドライブまたはソリッドステートドライブ(1323)、テープおよびフロッピーディスク(描写されていない)のようなレガシー磁気媒体、セキュリティドングル(描写されていない)のような特殊なROM/ASIC/PLDベースのデバイス、および同等物のようなそれらの関連する媒体も含むことができる。
【0193】
当業者は、現在開示されている主題事項に関連して使用されるような「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を含まないことを同様に理解するはずである。
【0194】
コンピュータシステム(1300)は、1つ以上の通信ネットワーク(1355)へのインターフェース(1354)を含むこともできる。ネットワークは、例えば、無線、有線、光であることができる。ネットワークは、さらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであることができる。ネットワークの例は、イーサネットのようなローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むテレビ有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両および産業用などを含む。特定のネットワークは、一般的に、(例えば、コンピュータシステム(1300)のUSBポートのような)特定の汎用データポートまたは周辺バス(1349)に取り付けられた外部ネットワークインターフェースアダプタを必要とする。他のものは、以下に記載されるようなシステムバスへの取り付けによって、コンピュータシステム(1300)のコアに一般的に統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は、他のエンティティと通信することができる。そのような通信は、単方向、受信専用(例えば、テレビ放送)、単方向送信専用(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向であることができる。特定のプロトコルおよびプロトコルスタックが、上述のように、それらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0195】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1300)のコア(1340)に取り付けられることができる。
【0196】
コア(1340)は、1つ以上の中央処理装置(CPU)(1341)、グラフィックス処理装置(GPU)(1342)、フィールドプログラマブルゲートアレイ(FPGA)の形式の特殊なプログラマブル処理装置(1343)、特定のタスク用のハードウェアアクセラレータ(1344)、グラフィックスアダプタ(1350)などを含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、ユーザがアクセスできない内部ハードドライブのような内部大容量ストレージ、SSD、および同等物(1347)とともに、システムバス(1348)を通じて接続されることがある。幾つかのコンピュータシステムにおいて、システムバス(1348)は、追加的なCPU、GPU、および同等物による拡張を可能にするために、1つ以上の物理プラグの形態においてアクセス可能であることができる。周辺デバイスは、コアのシステムバス(1348)に直接的に取り付けられることができ、或いは周辺バス(1349)を通じて取り付けられることができる。一例において、スクリーン(1310)は、グラフィックスアダプタ(1350)に接続されることができる。周辺バスのためのアーキテクチャは、PCI、USB、および同等物を含む。
【0197】
CPU(1341)、GPU(1342)、FPGA(1343)、アクセラレータ(1344)は、組み合わせにおいて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1345)またはRAM(1346)に格納されることができる。移行データは、RAM(1346)に格納されることもできるのに対し、恒久データは、例えば、内部大容量記憶装置(1347)に格納されることができる。任意のメモリデバイスへの高速格納および取出しは、1つ以上のCPU(1341)、GPU(1342)、大容量記憶装置(1347)、ROM(1345)、RAM(1346)、および同等物と密接に関連付けられることができる、キャッシュメモリの使用を通じて可能にされることができる。
【0198】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをその上に持つことができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計され且つ構築されたものであることができ、或いは、それらは、コンピュータソフトウェア技術において技能を有する者によく知られており且つ利用可能である種類のものであることができる。
【0199】
制限ではなく、一例として、アーキテクチャ(1300)、具体的には、コア(1340)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体において具現されるソフトウェアを実行する(CPU、GPU、FPGA、アクセラレータ、および同等物を含む)プロセッサの結果としての機能性を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザがアクセス可能な大容量記憶装置と関連付けられる媒体、並びにコア内部大容量記憶装置(1347)またはROM(1345)のような非一時的な性質を持つコア(1340)の特定の記憶装置であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納されることができ、コア(1340)によって実行されることができる。コンピュータ可読媒体は、特定のニーズに従って、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1340)、特に(CPU、GPU、FPGA、および同等物を含む)その中のプロセッサに、RAM(1346)に格納されたデータ構造を定義することおよびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。追加的にまたは代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(1344))に配線されるか或いは他の方法で具現されるロジック(論理)の結果としての機能性を提供することができ、それはソフトウェアの代わりに或いはソフトウェアとともに作動して、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及は、適切な場合には、ロジックを含むことができ、その逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のための(集積回路(IC)のような)ソフトウェアを格納する回路、実行のためのロジックを具現する回路、またはそれらの両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
【0200】
この開示は、幾つかの例示的な実施形態を記載したが、変更、置換、および様々な代替的な均等物があり、それらは本開示の範囲内にある。よって、当業者は、本開示において明示的に図示されていないか或いは記載されていないが、本開示の原則を具現し、よって、その精神および範囲内にある、多数のシステムおよび方法を考案し得ることが理解されるであろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13