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

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

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

特許7586590メッシュ圧縮のための頂点並べ替え方法における接続のコーディング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】メッシュ圧縮のための頂点並べ替え方法における接続のコーディング
(51)【国際特許分類】
   G06T 17/20 20060101AFI20241112BHJP
   G06T 9/00 20060101ALI20241112BHJP
   H04N 19/85 20140101ALI20241112BHJP
   H04N 19/597 20140101ALI20241112BHJP
【FI】
G06T17/20 500
G06T9/00 100
H04N19/85
H04N19/597
【請求項の数】 10
(21)【出願番号】P 2023528042
(86)(22)【出願日】2022-09-09
(65)【公表番号】
(43)【公表日】2023-11-15
(86)【国際出願番号】 US2022076217
(87)【国際公開番号】W WO2023049633
(87)【国際公開日】2023-03-30
【審査請求日】2023-05-10
(31)【優先権主張番号】63/247,694
(32)【優先日】2021-09-23
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/939,706
(32)【優先日】2022-09-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シャン
(72)【発明者】
【氏名】ホアン,チャオ
(72)【発明者】
【氏名】ティエン,ジュン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【審査官】渡部 幸和
(56)【参考文献】
【文献】米国特許出願公開第2020/0286261(US,A1)
【文献】米国特許出願公開第2018/0253867(US,A1)
【文献】米国特許出願公開第2006/0290695(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/00 - 17/30
G06T 9/00 - 9/40
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
メッシュ圧縮解除方法であって:
少なくとも第1のアレイと第2のアレイを、3次元(3D)メッシュ・フレームを運ぶビットストリームからデコードするステップであって、前記第1のアレイは、頂点走査順序に従って前記3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含み、前記第2のアレイは、前記頂点走査順序に従って前記頂点のそれぞれの座標を含み、前記頂点の接続値は、前記頂点の推定された接続値に対する頂点の接続差分を示す、ステップ;
少なくとも前記頂点のそれぞれの接続値と前記頂点のそれぞれの座標とに基づいて、前記頂点を接続するエッジを決定するステップ;及び
少なくとも前記頂点の座標と前記エッジに基づいて前記3Dメッシュ・フレームを再構成するステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において、少なくとも前記第1のアレイと前記第2のアレイは2次元(2D)アレイである、方法。
【請求項3】
請求項2に記載の方法において、前記少なくとも第1のアレイと第2のアレイをデコードするステップは:
画像デコーダ及び/又はビデオ・デコーダを利用して、前記少なくとも第1のアレイと第2のアレイをデコードするステップを含む、方法。
【請求項4】
請求項1に記載の方法において、前記頂点の接続値は、前記頂点の接続パターン・インデックス及び前記頂点の価数値のうちの少なくとも1つを含む、方法。
【請求項5】
請求項1に記載の方法において:
前記頂点の推定された接続値を、接続推定ルールに従って前記頂点の座標から生成するステップ;
を更に含む、方法。
【請求項6】
請求項5に記載の方法において、前記エッジを決定するステップは、更に:
前記頂点の接続差分を、前記推定された接続値に結合することによって、回復された接続値を生成するステップ;及び
前記回復された接続値に基づいて、前記頂点を接続するエッジを決定するステップ;
を含む、方法。
【請求項7】
請求項5に記載の方法において、前記頂点の座標は、3D座標及び/又はuv座標のうちの少なくとも1つを含む、方法。
【請求項8】
請求項5に記載の方法において、更に:
前記ビットストリームで運ばれる信号を受信するステップであって、前記信号は、複数の接続推定ルールの中から選択された接続推定ルールを示している、ステップ;
を含む方法。
【請求項9】
処理回路を含むメッシュ圧縮解除装置であって、前記処理回路は、請求項1ないし8のうちの何れか項に記載の方法を実行するように構成されている、装置。
【請求項10】
請求項1ないし8のうちの何れか1項に記載の方法を、少なくとも1つのプロセッサに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 援用
本願は、2022年9月7日に出願された米国特許出願第17/939,706号「メッシュ圧縮のための頂点並べ替え方法における接続のコーディング」に対する優先権を主張しており、同出願は2021年9月23日に出願された米国仮特許出願第63/247,694号「メッシュ圧縮のための頂点並べ替え方法における接続のコーディング」に対する優先権を主張している。先の出願の開示は、その全体が参照により本件に組み込まれる。
【0002】
[0002] 技術分野
本開示は一般にメッシュ・コーディングに一般的に関連する実施形態を述べている。
【背景技術】
【0003】
[0003] 本件で行われる背景の説明は、本開示の状況を一般的に提示するためのものである。現在の発明者の名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で出願時における先行技術としての適格性を付与されない記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
[0004] 世界中の物体や世界中の環境などのような、世界を3次元(3-dimensional,3D)空間で捉えて表現するための様々な技術が開発されている。世界の3D表現は、より没入的な形態のインタラクションとコミュニケーションを可能にすることができる。幾つかの例では、点群(point clouds)とメッシュ(meshes)を世界の3D表現として使用することが可能である。
【発明の概要】
【0005】
[0005] 本開示の態様は、メッシュ・コーディング(例えば、圧縮及び解凍)のための方法及び装置を提供する。幾つかの例において、メッシュ・コーディングのための装置は、処理回路を含む。処理回路は、少なくとも第1のアレイと第2のアレイを、3次元(3D)メッシュ・フレームを運ぶビットストリームからデコードする。第1のアレイは、頂点走査順序に従って3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含み、第2のアレイは、頂点走査順序に従って頂点の座標を含む。処理回路は、少なくとも頂点のそれぞれの接続値と頂点の座標とに基づいて、頂点を接続するエッジを決定し、少なくとも頂点の座標とエッジに基づいて3Dメッシュ・フレームを再構成する。
【0006】
[0006] 一部の例において、少なくとも第1のアレイと第2のアレイは2次元(two-dimensional,2D)アレイである。処理回路は、画像デコーダ及び/又はビデオ・デコーダを利用して、少なくとも第1のアレイと第2のアレイをデコードする。
【0007】
[0007] 一部の例において、頂点の接続値は、頂点の接続パターン・インデックス及び頂点の価数値(valence values)のうちの少なくとも1つを含む。
【0008】
[0008] 一部の例において、頂点の接続値は、頂点の推定された接続値に対する頂点の接続差分(connectivity differences)である。一部の例において、処理回路は、頂点の推定された接続値を、接続推定ルールに従って頂点の座標から生成し、且つ、頂点の接続差分を、推定された接続値に結合することによって、頂点の回復された接続値を生成する。次いで、前記処理回路は、頂点の回復された接続値に基づいて、頂点を接続するエッジを決定する。
【0009】
[0009] 頂点の座標は、3D座標及び/又はuv座標のうちの少なくとも1つを含むことが可能である。
【0010】
[0010] 一部の例において、処理回路は、ビットストリームで運ばれる信号を受信し、信号は、複数の接続推定ルールの中から選択された接続推定ルールを示す。
【0011】
[0011] 本開示の態様は、命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体も提供し、命令は、コンピュータにより実行されると、メッシュ・コーディングのための方法のうちの任意の何れか又は組み合わせをコンピュータに実行させる。
【図面の簡単な説明】
【0012】
[0012] 開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付図面から更に明らかになるであろう。
図1】[0013] 図1は、一部の例における通信システムのブロック図を示す。
図2】[0014] 図2は、一部の例におけるストリーミング・システムのブロック図を示す。
図3】[0015] 図3は、一部の例における点群フレームを符号化するためのエンコーダのブロック図を示す。
図4】[0016] 図4は、一部の例における点群フレームに対応する圧縮されたビットストリームをデコードするためのデコーダのブロック図を示す。
図5】[0017] 図5は、一部の例におけるビデオ・デコーダのブロック図を示す。
図6】[0018] 図6は、一部の例におけるビデオ・エンコーダのブロック図を示す。
図7】[0019] 図7は、一部の例における点群フレームを符号化するためのエンコーダのブロック図を示す。
図8】[0020] 図8は、一部の例における点群フレームを運ぶ圧縮されたビットストリームをデコードするためのデコーダのブロック図を示す。
図9】[0021] 図9は、一部の例におけるメッシュのアトラスへのマッピングを示す図を示す。
図10A】[0022] 図10Aは、メッシュ圧縮のための頂点並べ替えを使用する例を示す。
図10B】[0022] 図10Bは、メッシュ圧縮のための頂点並べ替えを使用する例を示す。
図10C】[0022] 図10Cは、メッシュ圧縮のための頂点並べ替えを使用する例を示す。
図10D】[0022] 図10Dは、メッシュ圧縮のための頂点並べ替えを使用する例を示す。
図10E】[0022] 図10Eは、メッシュ圧縮のための頂点並べ替えを使用する例を示す。
図11】[0023] 図11は、本開示の一部の実施形態によるメッシュ圧縮のフレームワークの図を示す
図12A】[0024] 図12Aは、本開示の一部の実施形態によるメッシュ・フレームの接続属性を明示的にコーディングする例を示す。
図12B】[0024] 図12Bは、本開示の一部の実施形態によるメッシュ・フレームの接続属性を明示的にコーディングする例を示す。
図12C】[0024] 図12Cは、本開示の一部の実施形態によるメッシュ・フレームの接続属性を明示的にコーディングする例を示す。
図12D】[0024] 図12Dは、本開示の一部の実施形態によるメッシュ・フレームの接続属性を明示的にコーディングする例を示す。
図13】[0025] 図13は、本開示の一部の実施形態によるメッシュ圧縮のフレームワークの図を示す。
図14A】[0026] 図14Aは、本開示の一部の実施形態によるメッシュ・フレームの接続差分をコーディングする例を示す。
図14B】[0026] 図14Bは、本開示の一部の実施形態によるメッシュ・フレームの接続差分をコーディングする例を示す。
図14C】[0026] 図14Cは、本開示の一部の実施形態によるメッシュ・フレームの接続差分をコーディングする例を示す。
図14D】[0026] 図14Dは、本開示の一部の実施形態によるメッシュ・フレームの接続差分をコーディングする例を示す。
図14E】[0026] 図14Eは、本開示の一部の実施形態によるメッシュ・フレームの接続差分をコーディングする例を示す。
図14F】[0026] 図14Fは、本開示の一部の実施形態によるメッシュ・フレームの接続差分をコーディングする例を示す。
図15】[0027] 図15は、一部の例におけるプロセス例の概要を示すフロー・チャートを示す。
図16】[0028] 図16は、一部の例におけるプロセス例の概要を示すフロー・チャートを示す。
図17】[0029] 図17は、一部の例におけるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0013】
[0030] 本開示の態様は、3次元(3D)メディア処理の分野における技術を提供する。
【0014】
[0031] 3次元(3D)キャプチャ、3Dモデリング、及び3Dレンダリング等における進歩のような、3Dメディア処理における技術開発は、幾つかのプラットフォームやデバイスにわたって3Dメディア・コンテンツのユビキタスな存在を促進している。例えば、赤ん坊の最初の一歩を或る大陸でキャプチャすることが可能であり、メディア技術は、祖父母が別の大陸で赤ん坊を眺めて(おそらくは交流して)、赤ん坊との没入的な体験を楽しむことを可能にすることができる。本開示の一態様によれば、没入体験を改善するために、3Dモデルはますます洗練されてゆき、3Dモデルの作成及び消費は、データ・ストレージ、データ伝送リソースのような、かなりの量のデータ・リソースを占めることになる。
【0015】
[0032] 本開示の幾つかの側面によれば、点群及びメッシュは、没入型コンテンツを表現するために3Dモデルとして使用される可能性がある。
【0016】
[0033] 点群は、一般に、3D空間内の点の集合を指す可能性があり、各々の点は関連する属性、例えば、色、材料特性、テクスチャ情報、強度属性、反射率属性、運動関連属性、モダリティ属性、及び種々の他の属性を有する。点群は、物体又はシーンを、そのような点の合成として再構成するために使用することが可能である。
【0017】
[0034] 物体又はオブジェクトのメッシュ(メッシュ・モデルとも呼ばれる)は、物体の表面を記述するポリゴンを含む可能性がある。各々のポリゴンは、3D空間におけるポリゴンの頂点と、頂点がポリゴンにどのように接続されているかの情報とによって定義されることが可能である。頂点がどのように接続されるのかという情報は、接続情報(connectivity information)と呼ばれる。一部の例において、メッシュは、カラー、ノーマル(normal)等のような、頂点に関連付けられる属性を含むことも可能である。
【0018】
[0035] 本開示の幾つかの態様によれば、点群圧縮(point cloud compression,PCC)のための何らかのコーディング・ツールを、メッシュ圧縮に使用することが可能である。例えば、メッシュは、新たなメッシュを生成するためにメッシュ化され直す(再メッシュ化)されることが可能であり、その新たなメッシュの接続情報は推定されることが可能である。新しいメッシュの頂点、及び新しいメッシュの頂点に関連する属性は、点群内の点とみなすことが可能であり、PCCコーデックを使用して圧縮することが可能である。
【0019】
[0036] 点群は、物体又はシーンを、点の合成として再構成するために使用されることが可能である。点は、様々なセットアップにおける複数のカメラ、深度センサー又はライダー(Lidar)を使用して捕捉することが可能であり、また、数千ないし数十億に及ぶ点で構成され、再構成されるシーンや物体を現実的に表現することができる。パッチは、一般に、点群によって記述される表面の連続的なサブセット(contiguous subset)を指す可能性がある。一例において、パッチは、閾値量未満しか互いに逸脱していない表面法線ベクトルを有する点を含む。
【0020】
[0037] PCCは、G-PCCと称される幾何学ベースの方式、V-PCCと称されるビデオ・コーディング・ベースの方式などのような、種々の方式に従って実行することが可能である。本開示の幾つかの態様によれば、G-PCCは、3D幾何学を直接的に符号化し、また、ビデオ・コーディングとの共有を多くは伴わない純粋に幾何学に基礎をおくアプローチであり、V-PCCは、ビデオ・コーディングに重点的に基礎をおいている。例えば、V-PCCは、3Dクラウドの点を、2Dグリッド(画像)のピクセルにマッピングすることが可能である。V-PCC方式は、点群圧縮のための汎用ビデオ・コーデックを利用することができる。本開示におけるPCCコーデック(エンコーダ/デコーダ)は、G-PCCコーデック(エンコーダ/デコーダ)又はV-PCCコーデックであるとすることが可能である。
【0021】
[0038] 本開示の一態様によれば、V-PCC方式は、既存のビデオ・コーデックを使用して、点群の幾何学的形状、占有率、及びテクスチャを、3つの別個のビデオ・シーケンスとして圧縮することができる。3つのビデオ・シーケンスを解釈するために必要とされる付加的なメタデータは、別々に圧縮される。ビットストリーム全体のうちの小さな部分がメタデータであり、これは、一例ではソフトウェア実装を用いて効率的に符号化/復号化されることが可能である。情報の大部分は、ビデオ・コーデックによって取り扱われる。
【0022】
[0039] 図1は、一部の例における通信システム(100)のブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信することが可能な複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された一対の端末デバイス(110)及び(120)を含む。図1の例では、第1のペアの端末デバイス(110)及び(120)は、点群データの一方向伝送を行う可能性がある。例えば、端末デバイス(110)は、端末デバイス(110)に接続されたセンサー(105)によって捕捉された点群(例えば、構造を表現する点)を圧縮することが可能である。圧縮された点群は、例えば、ビットストリームの形態で、ネットワーク(150)を介して他方の端末デバイス(120)へ送信されることが可能である。端末デバイス(120)は、圧縮された点群をネットワーク(150)から受信し、そのビットストリームを圧縮解除して点群を再構成し、再構成された点群を適切に表示することが可能である。一方向性データ伝送は、メディア・サービング・アプリケーション等において一般的である可能性がある。
【0023】
[0040] 図1の例では、端末デバイス(110)及び(120)は、サーバー及びパーソナル・コンピュータとして示されているかもしれないが、本開示の原理は、そのように限定されなくてよい。本開示の実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、ゲーミング端末、メディア・プレーヤ、及び/又は専用の3次元(3D)装置を用いる適用例を見い出している。ネットワーク(150)は、端末デバイス(110)及び(120)の間で、圧縮された点群を伝送する任意の数のネットワークを表現している。ネットワーク(150)は、例えば、有線(配線された)及び/又は無線通信ネットワークを含むことが可能である。ネットワーク(150)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネットなどを含む。
【0024】
[0041] 図2は、一部の例におけるストリーミング・システム(200)のブロック図を示す。ストリーミング・システム(200)は、点群の利用アプリケーションである。開示される対象事項は、3Dテレプレゼンス・アプリケーション、仮想現実アプリケーション等のような、他の点群対応アプリケーションにも等しく適用可能であるとすることが可能である。
【0025】
[0042] ストリーミング・システム(200)は、捕捉サブシステム(213)を含む可能性がある。捕捉サブシステム(213)は、例えば光検出及び測距(LIDAR)システム、3Dカメラ、3Dスキャナ、グラフィックス生成構成要素のような点群ソース(201)であって、ソフトウェア等で、圧縮されていない点群を生成するもの、及びその他のものであって例えば圧縮されていない点群(202)を生成するものを含むことが可能である。一例では、点群(202)は、3Dカメラで撮影された点を含む。点群(202)は、圧縮された点群(204)(圧縮された点群のビットストリーム)と比較した場合に、大きなデータ量を強調するために太線として描かれている。圧縮された点群(204)は、点群ソース(201)に結合されたエンコーダ(203)を含む電子デバイス(220)によって生成されることが可能である。エンコーダ(203)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことが可能であり、以下で詳細に説明されるように、開示される対象事項の態様を可能にしたり又は実現したりすることができる。圧縮された点群(204)(又は圧縮された点群(204)のビットストリーム)は、点群(202)のストリームと比較した場合に、より小さなデータ量を強調するために細線として描かれ、将来の使用のためにストリーミング・サーバー(205)に記憶されることが可能である。図2のクライアント・サブシステム(206)及び(208)のような1つ以上のストリーミング・クライアント・サブシステムは、圧縮された点群(204)のコピー(207)及び(209)を検索するために、ストリーミング・サーバー(205)にアクセスすることが可能である。クライアント・サブシステム(206)は、例えば電子デバイス(230)内のデコーダ(210)を含むことが可能である。デコーダ(210)は、圧縮された点群の到来して来るコピー(207)を復号化し、レンダリング・デバイス(212)でレンダリングされることが可能な再構成された点群(211)の進出ストリームを生成する。
【0026】
[0043] 電子デバイス(220)及び(230)は、他の構成要素(図示せず)を含むことが可能であることに留意を要する。例えば、電子デバイス(220)はデコーダ(図示せず)を含む可能性があり、電子デバイス(230)はエンコーダ(図示せず)も含む可能性もある。
【0027】
[0044] 一部のストリーミング・システムでは、圧縮された点群(204),(207)及び(209)(例えば、圧縮された点群のビットストリーム)は、特定の規格に従って圧縮されることができる。一部の例では、ビデオ・コーディング規格が点群の圧縮で使用される。これらの規格の例は、高効率ビデオ・コーディング(High Efficiency Video Coding,HEVC)、汎用ビデオ・コーディング(Versatile Video Coding,VVC)等を含む。
【0028】
[0045] 図3は、幾つかの実施形態による点群フレームを符号化するためのV-PCCエンコーダ(300)のブロック図を示す。幾つかの実施形態では、V-PCCエンコーダ(300)は、通信システム(100)及びストリーミング・システム(200)で使用することが可能である。例えば、エンコーダ(203)は、V-PCCエンコーダ(300)と同様に構成されて動作することが可能である。
【0029】
[0046] V-PCCエンコーダ(300)は、点群フレームを非圧縮入力として受信し、圧縮された点群フレームに対応するビットストリームを生成する。幾つかの実施形態では、V-PCCエンコーダ(300)は、点群ソース(201)などのような点群ソースから、点群フレームを受信する可能性がある。
【0030】
[0047] 図3の例では、V-PCCエンコーダ(300)は、パッチ生成モジュール(306)、パッチ・パッキング・モジュール(308)、幾何学的画像生成モジュール(310)、テクスチャ画像生成モジュール(312)、パッチ情報モジュール(304)、占有率マップ・モジュール(314)、平滑化モジュール(336)、画像パディング・モジュール(316)及び(318)、グループ拡張モジュール(320)、ビデオ圧縮モジュール(322),(323)及び(332)、補助パッチ情報圧縮モジュール(338)、エントロピー圧縮モジュール(334),及びマルチプレクサ(324)を含む。
【0031】
[0048] 本開示の一態様によれば、V-PCCエンコーダ(300)は、3D点群フレームを、画像ベースの表現に、何らかのメタデータ(例えば、占有率マップ及びパッチ情報)とともに変換し、メタデータは、圧縮された点群を、圧縮解除された点群に戻すために使用される。一部の例において、V-PCCエンコーダ(300)は、3D点群フレームを、幾何学的画像、テクスチャ画像、及び占有マップに変換し、次いで、ビデオ・コーディング技術を使用して、幾何学的画像、テクスチャ画像、及び占有マップを、ビットストリームに符号化することが可能である。一般に、幾何学的画像(geometry image)は、ピクセルに投影される点に関連付けられた幾何学的値(geometry value)で満たされたピクセルの2D画像であり、その幾何学的値で満たされたピクセルは、幾何学的サンプル(geometry sample)と称することが可能である。テクスチャ画像(texture image)は、ピクセルに投影された点に関連付けられたテクスチャ値(texture value)で満たされたピクセルの2D画像であり、テクスチャ値で満たされたピクセルは、テクスチャ・サンプル(texture sample)と称することが可能である。占有マップは、パッチによって占有された又は占有されていないことを示す値で満たされたピクセルの2D画像である。
【0032】
[0049] パッチ生成モジュール(306)は、点群を、オーバーラップしていてもいなくてもよい一組のパッチにセグメント化することが可能であり(例えば、パッチは、点群によって記述される表面の連続したサブセットとして定義される)、その結果、各パッチは2D空間内の平面に関して被写界深度(depth field)によって記述されることが可能である。幾つかの実施態様において、パッチ生成モジュール(306)は、点群を、滑らかな境界を有する最小数のパッチに分解する一方、再構成誤差を最小化することも目指す。
【0033】
[0050] 一部の例では、パッチ情報モジュール(304)は、パッチのサイズ及び形状を示すパッチ情報を収集することが可能である。一部の例では、パッチ情報は、画像フレームにパッキングされ、次いで、補助パッチ情報圧縮モジュール(338)によって符号化され、圧縮された補助パッチ情報を生成することが可能である。
【0034】
[0051] 一部の例では、パッチ・パッキング・モジュール(308)は、抽出されたパッチを、2次元(2D)グリッドにマッピングする一方、未使用スペースを最小化し、且つ、グリッドの全てのM×M(e.g.,16×16)ブロックが固有のパッチに関連付けられることを保証するように構成される。効率的なパッチ・パッキングは、未使用スペースを最小限にするか、又は時間的一貫性を確保することにより、圧縮効率に直接的に影響を及ぼすことが可能である。
【0035】
[0052] 幾何学的画像生成モジュール(310)は、所与のパッチ位置における点群の幾何学に関連付けられた2D幾何学的画像を生成することが可能である。テクスチャ画像生成モジュール(312)は、所与のパッチ位置における点群のテクスチャに関連付けられた2Dテクスチャ画像を生成することが可能である。幾何学的画像生成モジュール(310)及びテクスチャ画像生成モジュール(312)は、パッキング・プロセス中に計算された3D-to-2Dマッピングを利用して、点群の幾何学的形状及びテクスチャを画像として格納する。複数の点が同じサンプルに投影されるケースをより良く処理するために、各パッチは、層と言及される2つの画像に投影される。一例では、幾何学的画像は、YUV420-8ビット・フォーマットのWxHのモノクロ・フレームによって表現される。テクスチャ画像を生成するために、テクスチャ生成手順は、再構成された/平滑化された幾何学形状を利用して、再サンプリングされた点に関連付けられることになる色を計算する。
【0036】
[0053] 占有マップ・モジュール(314)は、各ユニットでパディング情報を記述する占有マップを生成することが可能である。例えば、占有イメージは、セルが空スペース(empty space)に属するか又は点群に属するかを、グリッドの各セルについて示すバイナリ・マップを含む。一例では、占有マップは、ピクセルがパディングされるか否かを、各ピクセルについて記述するバイナリ情報を使用する。別の例では、占有マップは、ピクセルのブロックがパディングされるか否かを、ピクセルの各ブロックについて記述するバイナリ情報を使用する。
【0037】
[0054] 占有マップモジュール(314)によって生成された占有マップは、ロスレス(lossless)コーディング又は非ロスレス(lossy)コーディングを利用して圧縮されることが可能である。ロスレス・コーディングが使用される場合、エントロピー圧縮モジュール(334)は、占有マップを圧縮するために使用される。非ロスレス・コーディングが使用される場合、ビデオ圧縮モジュール(332)は、占有マップを圧縮するために使用される。
【0038】
[0055] パッチ・パッキング・モジュール(308)は、画像フレームにパッケージングされた2Dパッチ間に、幾らかの空スペースを残す可能性があることに留意を要する。画像パディング・モジュール(316)及び(318)は、空スペースを埋めて(パディングと呼ばれる)、2Dビデオ及び画像コーデックに対して相応しい画像フレームを生成することが可能である。画像パディングは、また、未使用スペースを冗長情報で埋めることが可能なバックグランド充填とも呼ばれる。一部の例において、良好なバックグランド充填は、ビット・レートを最小限にしか増加させず、パッチ境界の周辺に著しいコーディング歪を導入しない。
【0039】
[0056] ビデオ圧縮モジュール(322),(323),及び(332)は、パディングされた幾何学的画像、パディングされたテクスチャ画像、及び占有マップのような2D画像を、HEVC,VVCなどのような適切なビデオ・コーディング規格に基づいて符号化することができる。一例では、ビデオ圧縮モジュール(322),(323),及び(332)は、別々に動作する個々の構成要素である。ビデオ圧縮モジュール(322),(323),及び(332)は、別の例では、単一の構成要素として実装されることが可能であることに留意を要する。
【0040】
[0057] 一部の例では、平滑化モジュール(336)は、再構成された幾何学的画像の平滑化された画像を生成するように構成される。平滑化された画像は、テクスチャ画像生成モジュール(312)に提供されることが可能である。次いで、テクスチャ画像生成モジュール(312)は、再構成された幾何学的画像に基づいてテクスチャ画像の生成を調整することが可能である。例えば、パッチ形状(例えば、幾何学的形状)が、符号化及び復号化の間に僅かに歪んだ場合、その歪は、テクスチャ画像を生成する際に考慮されて、パッチ形状の歪を補正することが可能である。
【0041】
[0058] 幾つかの実施形態では、グループ拡張(320)は、冗長な低周波コンテンツを用いて物体境界周辺のピクセルをパディングするように構成されて、再構成された点群の視覚的品質だけでなくコーディング利得も改善する。
【0042】
[0059] マルチプレクサ(324)は、圧縮された幾何学的画像、圧縮されたテクスチャ画像、圧縮された占有マップ、圧縮された補助パッチ情報を、圧縮されたビットストリームに多重化することが可能である。
【0043】
[0060] 図4は、一部の例における、点群フレームに対応する圧縮されたビットストリームを復号化するためのV-PCCデコーダ(400)のブロック図を示す。一部の例では、V-PCCデコーダ(400)は、通信システム(100)及びストリーミング・システム(200)で使用されることが可能である。例えば、デコーダ(210)は、V-PCCデコーダ(400)と同様な方法で動作するように構成されることが可能である。V-PCCデコーダ(400)は、圧縮されたビットストリームを受信し、圧縮されたビットストリームに基づいて、再構成された点群を生成する。
【0044】
[0061] 図4の例では、V-PCCデコーダ(400)は、デ・マルチプレクサ(432)、ビデオ圧縮解除モジュール(434)及び(436)、占有率マップ圧縮解除モジュール(438)、補助パッチ情報圧縮解除モジュール(442)、幾何学的再構成モジュール(444)、平滑化モジュール(446)、テクスチャ再構成モジュール(448)、及び色平滑化モジュール(452)を含む。
【0045】
[0062] デ・マルチプレクサ(432)は、圧縮されたビットストリームを受信し、それを、圧縮されたテクスチャ画像、圧縮された幾何学的画像、圧縮された占有マップ、及び圧縮された補助パッチ情報に分離することができる。
【0046】
[0063] ビデオ圧縮解除モジュール(434)及び(436)は、圧縮された画像を、適切な規格(e.g.,HEVC,VVC,etc.)に従ってデコードし、圧縮解除された画像を出力することができる。例えば、ビデオ圧縮解除モジュール(434)は、圧縮されたテクスチャ画像をデコードし、圧縮解除されたテクスチャ画像を出力し;ビデオ圧縮解除モジュール(436)は、圧縮された幾何学的画像をデコードし、圧縮解除された幾何学的画像を出力する。
【0047】
[0064] 占有率マップ圧縮解除モジュール(438)は、圧縮された占有率マップを、適切な規格(e.g.,HEVC,VVC,etc.)に従ってデコードし、圧縮解除された占有率マップを出力することができる。
【0048】
[0065] 補助パッチ情報圧縮解除モジュール(442)は、圧縮された補助パッチ情報を、適切な規格(e.g.,HEVC,VVC,etc.)に従ってデコードし、圧縮解除された補助パッチ情報を出力することができる。
【0049】
[0066] 幾何学的再構成モジュール(444)は、圧縮解除された幾何学的画像を受信し、圧縮解除された占有マップ及び圧縮解除された補助パッチ情報に基づいて、再構成された点群幾何学形状を生成することができる。
【0050】
[0067] 平滑化モジュール(446)は、パッチのエッジにおける不一致(incongruence)を平滑化することができる。平滑化手順は、圧縮アーチファクトに起因してパッチ境界で生じている可能性のある潜在的な不連続性を緩和することを目的としている。幾つかの実施形態では、平滑化フィルタがパッチ境界に位置するピクセルに適用されて、圧縮/圧縮解除によって引き起こされる可能性のある歪を緩和することができる。
【0051】
[0068] テクスチャ再構成モジュール(448)は、圧縮解除されたテクスチャ画像及び平滑化幾何学形状に基づいて、点群内の点に対するテクスチャ情報を決定することができる。
【0052】
[0069] 色平滑化モジュール(452)は、色の不一致(incongruence)を平滑化することができる。3D空間内の非隣接パッチは、2Dビデオ内で互いに隣接してしばしばパッキングされる。一部の例では、非隣接パッチからのピクセル値は、ブロック・ベースのビデオ・コーデックによって混同される可能性がある。色の平滑化の目的は、パッチ境界に現れる目に見えるアーチファクトを減らすことである。
【0053】
[0070] 図5は、一部の例におけるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、V-PCCデコーダ(400)で使用することが可能である。例えば、ビデオ圧縮解除モジュール(434)及び(436)、占有率マップ圧縮解除モジュール(438)は、ビデオデコーダ(510)として同様に構成されることが可能である。
【0054】
[0071] ビデオ・デコーダ(510)は、コーディングされたビデオ・シーケンスのような圧縮された画像からシンボル(521)を再構成するためのパーサー(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオ・デコーダ(510)の動作を管理するために使用される情報を含む。パーサー(520)は、受信したコーディングされたビデオ・シーケンスを解析/エントロピー復号化することが可能である。コーディングされたビデオ・シーケンスのコーディングは、ビデオ・コーディング技術又は規格に従うことが可能であり、また、可変長コーディング、ハフマン・コーディング、コンテキストの影響を伴う又は伴わない算術コーディングなどを含む種々の原理に従うことが可能である。パーサー(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループ・パラメータのセットを、コーディングされたビデオ・シーケンスから抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング・ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことが可能である。パーサー(520)はまた、変換係数、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオ・シーケンス情報から抽出することも可能である。
【0055】
[0072] パーサー(520)は、シンボル(521)を生成するために、バッファ・メモリから受信したビデオ・シーケンスに対してエントロピー復号化/解析処理を実行することが可能である。
【0056】
[0073] シンボル(521)の再構成は、コーディングされたビデオ・ピクチャ又はその一部分のタイプ(例えば、インター及びイントラ・ピクチャ、インター及びイントラ・ブロックのようなもの)及びその他の要因に応じて、複数の異なるユニットを含むことが可能である。どのユニットがどのように包含されるかは、コーディングされたビデオ・シーケンスからパーサー(520)によって解析されたサブグループ制御情報によって制御されることが可能である。パーサー(520)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために描かれていない。
【0057】
[0074] ビデオ・デコーダ(510)は、既に述べた機能ブロックを超えて更に、以下に説明するような複数の機能ユニットに概念的に細分されることが可能である。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示される対象事項を説明する目的に関し、以下の機能ユニットへの概念的な細分は適切なことである。
【0058】
[0075] 第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数と制御情報(使用する変換、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む)を、パーサー(520)からシンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されることが可能なサンプル値を含むブロックを出力することが可能である。
【0059】
[0076] 場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ・コーディングされたブロック:即ち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連する可能性がある。このような予測情報は、イントラ・ピクチャ予測ユニット(552)によって提供することが可能である。場合によっては、イントラ・ピクチャ予測ユニット(552)は、現在のピクチャ・バッファ(558)から取り出された既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在のピクチャ・バッファ(558)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されるような出力サンプル情報に加える。
【0060】
[0077] それ以外の場合に、スケーラ/逆変換ユニット(551)の出力サンプルは、インター・コーディングされた、動き補償される可能性のあるブロックに関連することが可能である。このような場合において、動き補償予測ユニット(553)は、予測に使用されるサンプルを取り出すために、参照ピクチャ・メモリ(557)にアクセスすることが可能である。ブロックに関連するシンボル(521)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力に加えられ(この場合は、残差サンプル又は残差信号と呼ばれる)、出力サンプル情報を生成することが可能である。動き補償予測ユニット(553)が予測サンプルをフェッチする元である参照ピクチャ・メモリ(557)内のアドレスは、例えばX、Y、及び参照ピクチャ成分を有することが可能であるシンボル(521)の形態で、動き補償予測ユニット(553)にとって利用可能な動きベクトルによって制御されることが可能である。また、動き補償は、サブ・サンプルの正確な動きベクトルが使用される場合に、参照ピクチャ・メモリ(557)から取り出されるようなサンプル値の補間、動きベクトル予測メカニズム等を含むことが可能である。
【0061】
[0078] アグリゲータ(555)の出力サンプルは、ループ・フィルタ・ユニット(556)内の様々なループ・フィルタリング技術の影響を受けることが可能である。ビデオ圧縮技術はループ内フィルタ技術を含むことが可能であり、これは、コーディングされたビデオ・シーケンス(コーディングされたビデオ・ビットストリームとも呼ばれる)に含まれ、且つパーサー(520)からのシンボル(521)としてループ・フィルタ・ユニット(556)にとって利用可能にされるパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオ・シーケンスの(復号化の順番で)以前の部分の復号化の間に取得されたメタ情報に応答することが可能であるとともに、以前に再構成されたループ・フィルタリングされたサンプル値にも応答することが可能である。
【0062】
[0079] ループ・フィルタ・ユニット(556)の出力は、レンダリング・デバイスに出力することが可能であることに加えて、将来のインター・ピクチャ予測に使用するために参照ピクチャ・メモリ(557)に格納することも可能なサンプル・ストリームであるとすることが可能である。
【0063】
[0080] 所定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用することが可能である。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサー(520)によって)参照ピクチャとして識別されると、現在のピクチャ・バッファ(558)は参照ピクチャ・メモリ(557)の一部となることが可能であり、新しい現在のピクチャ・バッファは、以後のコーディングされたピクチャの再構成を開始する前に、再割り当てされることが可能である。
【0064】
[0081] ビデオ・デコーダ(510)は、ITU-T Rec.H.265のような規格における所定のビデオ圧縮技術に従って復号化動作を実行することが可能である。コーディングされたビデオ・シーケンスは、コーディングされたビデオ・シーケンスが、ビデオ圧縮技術又は規格のシンタックス、及びビデオ圧縮技術又は規格で文書化されているようなプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することが可能である。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で利用可能な唯一のツールとして、ビデオ圧縮技術又は規格で利用可能な全てのツールから選択することが可能である。また、コンプライアンスのために必要なことは、コーディングされたビデオ・シーケンスの複雑性が、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることである。場合によっては、そのレベルは、最大ピクチャ・サイズ、最大フレーム・レート、最大再構成サンプル・レート(例えば、毎秒当たりのメガサンプルで測定される)、最大参照ピクチャ・サイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオ・シーケンスでシグナリングされるHRDバッファ管理のための仮想リファレンス・デコーダ(Hypothetical Reference Decoder,HRD)仕様及びメタデータによって更に制限される可能性がある。
【0065】
[0082] 図6は、本開示の一実施形態によるビデオ・エンコーダ(603)のブロック図を示す。ビデオ・エンコーダ(603)は、点群を圧縮するV-PCCエンコーダ(300)で使用することが可能である。一例では、ビデオ圧縮モジュール(322)及び(323)、及びビデオ圧縮モジュール(332)は、エンコーダ(603)と同様に構成される。
【0066】
[0083] ビデオ・エンコーダ(603)は、パディングされた幾何学的画像、パディングされたテクスチャ画像などのような画像を受信し、また、圧縮された画像を生成することができる。
【0067】
[0084] 一実施形態によれば、ビデオ・エンコーダ(603)は、リアルタイムに、又はアプリケーションによって要求される何らかの他の時間制約の下で、ソース・ビデオ・シーケンスのピクチャ(画像)を、コーディングされたビデオ・シーケンス(圧縮された画像)にコーディングして圧縮することが可能である。適切なコーディング速度を課すことは、コントローラ(650)の1つの機能である。幾つかの実施形態において、コントローラ(650)は、以下で説明されるように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。その結合は明確性のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャ・スキップ、量子化器、レート歪最適化技術のラムダ値、...)、ピクチャ・サイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことが可能である。コントローラ(650)は、特定のシステム設計のために最適化されたビデオ・エンコーダ(603)に関連する他の適切な機能を有するように構成することが可能である。
【0068】
[0085] 一部の実施形態では、ビデオ・エンコーダ(603)は、コーディング・ループで動作するように構成される。極端に単純化された説明として、一例では、コーディング・ループは、ソース・コーダ(630)(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボル・ストリームのようなシンボルを生成する責任がある)と、ビデオ・エンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことが可能である。デコーダ(633)は、(リモート)デコーダが生成するのと同様な方法で、サンプル・データを生成するためにシンボルを再構成する(シンボルとコーディングされたビデオ・ビットストリームとの間の任意の圧縮は、開示される対象事項で考慮されるビデオ圧縮技術ではロスレスであるからである)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャ・メモリ(634)に入力される。シンボル・ストリームの復号化は、デコーダの位置(ローカル又はリモート)に依存しないビット・イグザクト(bit-exact)な結果をもたらすので、参照ピクチャ・メモリ(634)中の内容もまた、ローカル・エンコーダとリモート・エンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用する場合に「見る(see)」ものと厳密に同じサンプル値を、参照ピクチャ・サンプルとして「見る」。参照ピクチャ同期のこの基本原理(及び、例えばチャネル・エラーに起因して同期性が維持できない場合には、結果としてドリフトが生じる)は、幾つかの関連技術においても同様に使用される。
【0069】
[0086] 「ローカル」デコーダ(633)の動作は、図5に関連して上記で詳細に既に説明されているビデオ・デコーダ(510)のような「リモート」デコーダのものと同じであるとすることが可能である。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、且つエントロピー・コーダー(645)及びパーサー(520)によるシンボルのコーディングされたビデオ・シーケンスへの符号化/復号化はロスレスであるとすることが可能であるので、パーサー(520)を含むビデオ・デコーダ(510)のエントロピー復号化部は、ローカル・デコーダ(633)では完全には実現されない可能性がある。
【0070】
[0087] 動作中に、ソース・コーダ(630)は、幾つかの例において、「参照ピクチャ」として指定された、ビデオ・シーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測的にコーディングする、動き補償された予測コーディングを実行することが可能である。このようにして、コーディング・エンジン(632)は、入力ピクチャのピクセル・ブロックと、入力ピクチャに対する予測参照として選択されることが可能な参照ピクチャのピクセル・ブロックとの間の差分をコーディングする。
【0071】
[0088] ローカル・ビデオ・デコーダ(633)は、ソース・コーダー(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定されることが可能なピクチャのコーディングされたビデオ・データを復号化することが可能である。コーディング・エンジン(632)の動作は、有利なことに、非ロスレス・プロセスであってもよい。コーディングされたビデオ・データがビデオ・デコーダ(図6には示されていない)で復号化される場合、再構成されたビデオ・シーケンスは、典型的には、幾らかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(633)は、参照ピクチャにおいてビデオ・デコーダによって実行されることが可能な復号化プロセスを繰り返し、再構成された参照ピクチャが、参照ピクチャ・キャッシュ(634)に記憶されることを引き起こすことが可能である。このように、ビデオ・エンコーダ(603)は、遠方端のビデオ・デコーダによって得られる再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーを、局所的に記憶することが可能である(伝送エラーはないものとする)。
【0072】
[0089] 予測器(635)は、コーディング・エンジン(632)のために予測検索を行うことができる。即ち、コーディングされるべき新しいピクチャについて、予測器(635)は、サンプル・データ(候補の参照ピクセル・ブロックとして)又は所定のメタデータ(参照ピクチャ動きベクトル、ブロック形状など)について、参照ピクチャ・メモリ(634)を検索することができ、これらは、新しいピクチャについての適切な予測参照として役立つ可能性がある。予測器(635)は、適切な予測参照を見出すために、サンプル・ブロック-ピクセル・ブロック・ベースで動作することが可能である。場合によっては、予測器(635)によって得られた探索結果によって決定されるように、入力ピクチャは、参照ピクチャ・メモリ(634)に記憶された複数の参照ピクチャから引き出される予測参照を有する可能性がある。
【0073】
[0090] コントローラ(650)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ソース・コーダ(630)のコーディング動作を管理することが可能である。
【0074】
[0091] 前述の機能ユニットの全ての出力は、エントロピー・コーダー(645)におけるエントロピー符号化を受けることが可能である。エントロピー・コーダー(645)は、ハフマン・コーディング、可変長コーディング、算術コーディング等の技術に従って、シンボルをロスレス圧縮することによって、種々の機能ユニットによって生成されたシンボルを、コーディングされたビデオ・シーケンスに変換する。
【0075】
[0092] コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理することができる。コーディングの間に、コントローラ(650)は、コーディングされたピクチャの各々に、特定のコーディングされたピクチャ・タイプを割り当てることが可能であり、これは、それぞれのピクチャに適用されることが可能なコーディング技術に影響を及ぼす可能性がある。例えば、ピクチャは、しばしば、次のピクチャ・タイプのうちの何れかとして指定されてもよい:
[0093] イントラ・ピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用せずに、符号化及び復号化されることが可能なものである。幾つかのビデオ・コーデックは、例えば、独立デコーダ・リフレッシュ(Independent Decoder Refresh,“IDR”)ピクチャを含む異なるタイプのイントラ・ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれら各自の用途及び特徴を認識している。
【0076】
[0094] 予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、高々1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。
【0077】
[0095] 双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、高々2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することが可能である。
【0078】
[0096] ソース・ピクチャは、通常、複数のサンプル・ブロック(例えば、4x4、8x8、4x8、又は16x16サンプルのブロック)に空間的に細分され、ブロック毎にコーディングされることが可能である。ブロックは、ブロックそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされることが可能である。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、又は、それらは同じピクチャの既にコーディングされたブロックを参照して予測的に符号化されることが可能である(空間予測又はイントラ予測)。Pピクチャのピクセル・ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的にコーディングされることが可能である。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的に符号化されることが可能である。
【0079】
[0097] ビデオ・エンコーダ(603)は、ITU-T Rec.H.265のような所定のビデオ・コーディング技術又は規格に従ってコーディング動作を行うことが可能である。この動作において、ビデオ・エンコーダ(603)は、入力ビデオ・シーケンスにおける時間的及び空間的な冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行することが可能である。コーディングされたビデオ・データは、従って、使用されているビデオ・コーディング技術又は規格によって指定されたシンタックスに準拠することが可能である。
【0080】
[0098] ビデオは、時間シーケンスにおける複数のソース・ピクチャ(画像)の形態におけるものであってもよい。イントラ・ピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用しており、インター・ピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在のピクチャと言及される符号化/復号化の下にある特定のピクチャは、ブロックに分割される。現在のピクチャ内のブロックが、ビデオにおいて以前にコーディングされ且つ依然としてバッファリングされている参照ピクチャの中の参照ブロックに類似している場合、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることが可能である。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することが可能である。
【0081】
[0099] 一部の実施形態では、インター・ピクチャ予測に双-予測技術を用いることが可能である。双-予測技術によれば、ビデオ内で現在のピクチャに対して復号化順序で両方とも先行している(ただし、表示順序ではそれぞれ過去及び将来におけるものである可能性がある)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングされることが可能である。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることが可能である。
【0082】
[0100] 更に、コーディング効率を改善するために、インター・ピクチャ予測にマージ・モード技術を用いることが可能である。
【0083】
[0101] 本開示の幾つかの実施形態によれば、インター・ピクチャ予測及びイントラ・ピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオ・ピクチャのシーケンス中のピクチャは、圧縮のためにコーディング・ツリー・ユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64x64ピクセル、32x32ピクセル、又は16x16ピクセルのような同じサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つのコーディング・ツリー・ブロック(CTB)を含む。各CTUは、1つ又は複数のコーディング・ユニット(CU)に再帰的に4分木分割されることが可能である。例えば、64x64ピクセルのCTUは、64x64ピクセルの1個のCU、32x32ピクセルの4個のCU、又は16x16ピクセルの16個のCUに分割されることが可能である。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBを含む。一実施形態では、コーディング(符号化/復号化)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを用いると、予測ブロックは、8x8ピクセル、16x16ピクセル、8x16ピクセル、16x8ピクセル等のような、ピクセルに対する値(例えば、ルマ値)のマトリクスを含む。
【0084】
[0102] 図7は、一部の例におけるG-PCCエンコーダ(700)のブロック図を示す。G-PCCエンコーダ(700)は、点群データを受信し、点群データを圧縮して、圧縮された点群データを運ぶビットストリームを生成するように構成されることが可能である。一実施形態では、G-PCCエンコーダ(700)は、位置量子化モジュール(710)、重複点除去モジュール(712)、八分木符号化モジュール(730)、属性トランスファ・モジュール(720)、詳細レベル(level of detail,LOD)生成モジュール(740)、属性予測モジュール(750)、残差量子化モジュール(760)、算術コーディング・モジュール(770)、逆残差量子化モジュール(780)、付加モジュール(781)、及び、再構成された属性値を格納するメモリ(790)を含むことが可能である。
【0085】
[0103] 図示されているように、入力点群(701)は、G-PCCエンコーダ(700)において受信されることが可能である。点群(701)の位置(例えば、3D座標)は、量子化モジュール(710)に提供される。量子化モジュール(710)は、量子化された位置を生成するために、座標を量子化するように構成されている。重複点除去モジュール(712)は、量子化された位置を受信し、重複した点を識別して除去するために、フィルタ処理を実行するように構成される。八分木符号化モジュール(730)は、フィルタリングされた位置を、重複点除去モジュール(712)から受信し、八分木ベースの符号化プロセスを実行して、3Dグリッドのボクセルを記述する占有コードのシーケンスを生成するように構成されている。占有コードは算術コーディング・モジュール(770)に提供される。
【0086】
[0104] 属性トランスファ・モジュール(720)は、入力点群の属性を受信するように構成され、また、複数の属性値がそれぞれのボクセルに関連する場合に、各ボクセルに対する属性値を決定するために属性トランスファ・プロセス(attribute transfer process)を実行するように構成されている。属性トランスファ・プロセスは、八分木符号化モジュール(730)から出力された、並べ替えられた点に対して実行されることが可能である。トランスファ処理後の属性は属性予測モジュール(750)に提供される。LOD生成モジュール(740)は、八分木符号化モジュール(730)から出力された並べ替えられた点に対して作用し、点(複数)を異なるLODに再編成するように構成される。LOD情報は、属性予測モジュール(750)に供給される。
【0087】
[0105] 属性予測モジュール(750)は、LOD生成モジュール(740)からのLOD情報によって示されるLODベースの順序に従って、点を処理する。属性予測モジュール(750)は、メモリ(790)に記憶された現在の点の近辺の点のセットについての再構成された属性に基づいて、現在の点に対する属性予測を生成する。次いで、属性トランスファ・モジュール(720)から受信した元の属性値及びローカルに生成された属性予測に基づいて、予測残差を取得することが可能である。候補インデックスがそれぞれの属性予測プロセスにおいて使用される場合、選択された予測候補に対応するインデックスが、算術コーディング・モジュール(770)に提供されてもよい。
【0088】
[0106] 残差量子化モジュール(760)は、属性予測モジュール(750)から予測残差を受信し、量子化を実行して、量子化された残差を生成するように構成されている。量子化された残差は、算術コーディング・モジュール(770)に提供される。
【0089】
[0107] 逆残差量子化モジュール(780)は、量子化された残差を、残差量子化モジュール(760)から受信し、また、残差量子化モジュール(760)で実行された量子化演算の逆を実行することによって再構成された予測残差を生成するように構成される。加算モジュール(781)は、再構成された予測残差を逆残差量子化モジュール(780)から、及びそれぞれの属性予測を属性予測モジュール(750)から、受信するように構成されている。再構成された予測残差と属性予測を組み合わせることにより、再構成された属性値が生成され、メモリ(790)に格納される。
【0090】
[0108] 算術コーディング・モジュール(770)は、占有コード、候補インデックス(使用される場合)、量子化残差(生成された場合)、及びその他の情報を受信し、エントロピー符号化を実行して、受信した値又は情報を更に圧縮するように構成される。その結果、圧縮された情報を運ぶ圧縮ビットストリーム(702)を生成することができる。ビットストリーム(702)は、圧縮ビットストリームを復号化するデコーダに伝送されるか又は別の方法で提供されてもよいし、又はストレージ・デバイスに保存されてもよい。
【0091】
[0109] 図8は、一実施形態によるG-PCCデコーダ(800)のブロック図を示す。G-PCCデコーダ(800)は、圧縮ビットストリームを受信し、点群データ圧縮解除を実行してビットストリームを圧縮解除し、デコードされた点群データを生成するように構成されることが可能である。実施形態では、G-PCCデコーダ(800)は、算術復号化モジュール(810)、逆残差量子化モジュール(820)、八分木復号化モジュール(830)、LOD生成モジュール(840)、属性予測モジュール(850)、及び、再構成された属性値を格納するメモリ(860)を含むことが可能である。
【0092】
[0110] 図示されるように、圧縮ビットストリーム(801)は、算術復号化モジュール(810)で受信されることが可能である。算術復号化モジュール(810)は、圧縮ビットストリーム(801)をデコードして、点群の量子化された残差(生成されている場合)及び占有コードを取得するように構成される。八分木復号化モジュール(830)は、占有コードに従って、点群内の点の再構成された位置を決定するように構成されている。LOD生成モジュール(840)は、再構成された位置に基づいて、点を異なるLODに再編成し、LODに基づく順序を決定するように構成されている。逆残差量子化モジュール(820)は、算術復号化モジュール(810)から受信した量子化された残差に基づいて、再構成された残差を生成するように構成されている。
【0093】
[0111] 属性予測モジュール(850)は、LODに基づく順序に従って、点に対する属性予測を決定するために、属性予測プロセスを実行するように構成されている。例えば、現在の点の属性予測は、メモリ(860)に保存された現在の点の近辺の点の再構成された属性値に基づいて決定されることが可能である。一部の例において、属性予測は、現在の点について再構成された属性を生成するために、それぞれの再構成された残差と組み合わせることが可能である。
【0094】
[0112] 一例では、属性予測モジュール(850)から生成された再構成された属性のシーケンスは、八分木復号化モジュール(830)から生成された再構成された位置と共に、G-PCCデコーダ(800)から出力される復号化された点群(802)に対応する。更に、再構成された属性もメモリ(860)に保存され、以後の点に対する属性予測を導出するために以後使用されることが可能である。
【0095】
[0113] 様々な実施形態では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装することが可能である。例えば、エンコーダ(300)、デコーダ(400)、エンコーダ(700)及び/又はデコーダ(800)は、1つ以上の集積回路(IC)のような処理回路であって、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのような、ソフトウェアを用いて又は用いないで動作するものによって実現されることが可能である。別の例では、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)は、不揮発性(又は非一時的な)コンピュータ読み取り可能な記憶媒体に保存された命令を含むソフトウェア又はファームウェアとして実現されることが可能である。命令は、1つ以上のプロセッサのような処理回路によって実行されると、処理回路が、エンコーダ(300)、デコーダ(400)、エンコーダ(700)、及び/又はデコーダ(800)の機能を実行することを引き起こす。
【0096】
[0114] 本件で開示された属性予測技術を実施するように構成された属性予測モジュール(750)及び(850)は、図7及び図8に示されているものと類似する又は相違する構造を有する可能性のある他のデコーダ又はエンコーダに含まれることが可能である、ということに留意を要する。更に、エンコーダ(700)及びデコーダ(800)は、同一のデバイス、又は種々の例における別個のデバイスに含まれることが可能である。
【0097】
[0115] 本開示の幾つかの態様によれば、メッシュ圧縮は、PCCコーディング・ツールとは異なるコーディング・ツールを使用することが可能であり、又は、PCC(e.g.,G-PCC,V-PCC)エンコーダ、上記のPCC(e.g.,G-PCC,V-PCC)デコーダ等のようなPCCコーディング・ツールを使用することが可能である。
【0098】
[0116] 物体のメッシュ(メッシュ・モデル、メッシュ・フレームとも呼ばれる)は、物体の表面を記述するポリゴンを含むことが可能である。各ポリゴンは、3D空間内のポリゴンの頂点と、頂点をポリゴンに接続するエッジとによって定義されることが可能である。頂点がどのように接続されるのかという情報は、接続情報(connectivity information)と呼ばれる。一部の例では、物体のメッシュは、物体の表面を記述する接続された三角形によって形成される。エッジを共有する2つの三角形は、2つの接続された三角形と言及される。幾つかの他の例では、物体のメッシュは、接続された四辺形(quadrilateral)によって形成される。エッジを共有する2つの四辺形は、2つの接続された四辺形と言及されることが可能である。メッシュは適切な他の多角形によって形成されることが可能であることに留意を要する。
【0099】
[0117] 一部の例では、メッシュは、頂点に関連付けられている、カラー、ノーマル等のような属性を含むことも可能である。属性は、2D属性マップを用いてメッシュをパラメータ化するマッピング情報を利用することにより、メッシュの表面に関連付けられることが可能である。マッピング情報は、通常、UV座標又はテクスチャ座標と呼ばれる、メッシュ頂点に関連付けられる一連のパラメトリック座標によって記述される。2D属性マップ(一部の例ではテクスチャ・マップと言及される)は、テクスチャ、ノーマル、変位などのような高解像度・属性情報を保存するために使用される。このような情報は、テクスチャ・マッピングやシェーディングのような様々な目的に使用されることが可能である。幾つかの実施形態では、メッシュは、幾何学情報、接続情報、マッピング情報、頂点属性、及び属性マップと言及される構成要素(又は成分)を含むことが可能である。
【0100】
[0118] 幾つかの実施形態では、メッシュは、幾何学情報、接続情報、マッピング情報、頂点属性、及び属性マップと呼ばれる構成要素を含むことが可能である。一部の例では、幾何学情報は、メッシュの頂点に関連付けられる3D位置の集合によって記述される。一例では、(x,y,z)座標が、頂点の3D位置を記述するために使用されることが可能であり、これはまた3D座標とも言及される。一部の例では、接続情報は、頂点を接続して3D表面を作成する方法を記述する、頂点インデックスのセットを含む。一部の例では、マッピング情報は、メッシュ表面を平面の2D領域にマッピングする方法を記述する。一例では、マッピング情報は、接続情報と共にメッシュ頂点に関連付けられるUVパラメトリック/テクスチャ座標(u,v)のセットによって記述される。一部の例では、頂点属性は、メッシュ頂点に関連付けられるスカラー又はベクトル属性値を含む。一部の例では、属性マップは、メッシュ表面に関連付けられる属性であって、2D画像/ビデオとして保存される属性を含む。一例では、ビデオ(例えば、2D画像/ビデオ)とメッシュ表面との間のマッピングは、マッピング情報によって定義される。
【0101】
[0119] 本開示の一態様によれば、UVマッピング又はメッシュ・パラメタライゼーション(UV mapping or mesh parameterization)と呼ばれる或る技術が、3Dドメイン内のメッシュの表面を2Dドメインにマッピングするために使用される。一部の例では、メッシュは3Dドメイン内のパッチにパーティション化される。パッチは、境界エッジで形成された境界を有するメッシュの連続的なサブセット(contiguous subset)である。パッチの境界エッジは、パッチの唯1つのポリゴンに属するエッジであって、パッチの2つの隣接するポリゴンによって共有されないエッジである。一部の例では、パッチの境界エッジの頂点は、パッチの境界頂点(boundary vertices)と呼ばれ、パッチの非境界頂点は、パッチの内部頂点(interior vertices)と呼ばれる
[0120] 一部の例では、物体のメッシュは、接続された三角形によって形成され、メッシュは、パッチにパーティション化されることが可能であり、各パッチは、接続された三角形のサブセットである。パッチの境界エッジは、パッチの唯1つの三角に属するエッジであって、パッチの隣接する三角によって共有されないエッジである。一部の例では、パッチの境界エッジの頂点は、パッチの境界頂点と呼ばれ、パッチの非境界頂点は、パッチの内部頂点と呼ばれる。
【0102】
[0121] 本開示の一態様によれば、一部の例において、パッチはそれぞれ2D形状(UVパッチとも呼ばれる)にパラメータ化される。2D形状は、一部の例では、アトラス(atlas)とも言及される地図に、パッキングされる(例えば、方向付けられて配置される)ことが可能である。一部の例では、マップは、2D画像又はビデオ処理技術を用いて更に処理されることが可能である。
【0103】
[0122] 一例では、UVマッピング技術は、UVアトラス(UVマップとも呼ばれる)と1つ以上のテクスチャ・アトラス(テクスチャ・マップとも呼ばれる)とを、3Dメッシュのパッチに対応する2D内において生成する。UVアトラスは、3Dメッシュの3D頂点を、2Dドメイン(例えば、四角形)内の2D点に割り当てることを含む。UVアトラスは、3D表面の座標と2Dドメインの座標との間のマッピングである。一例では、2D座標(u,v)におけるUVアトラス内の点は、3Dドメインの頂点の座標(x,y,z)によって形成される値を有する。一例では、テクスチャ・アトラスは、3Dメッシュの色情報を含む。例えば、(UVアトラスにおける(x,y,z)の3D値を有する)2D座標(u,v)におけるテクスチャ・アトラス内の点は、3Dドメインの(x,y,z)における点の色属性を指定する色を有する。一部の例では、3Dドメインの座標(x,y,z)は3D座標、又はxyz座標と呼ばれ、2D座標(u,v)はuv座標、又はUV座標と呼ばれる。
【0104】
[0123] 本開示の幾つかの態様によれば、メッシュ圧縮は、1つ以上の2Dマップ(一部の例では2Dアトラスとも呼ばれる)を使用してメッシュを表現し、次いで、画像又はビデオ・コーデックを使用して2Dマップを符号化することによって、実行されることが可能である。2Dマップを生成するために、様々な技術を使用することが可能である。
【0105】
[0124] 図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によって形成される三角形はそれぞれの属性を有することが可能である。
【0106】
[0125] 一例では、3DのパッチA,B,C,Dは、マップ(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メッシュにおける頂点は、マップ(920)における対応するUV座標を有することが可能である。
【0107】
[0126] マップ(920)は、幾何学情報を有する幾何学的マップであるとすることが可能であり、或いは、カラー、ノーマル、テキスタイル、若しくはその他の属性情報を有するテクスチャ・マップであるとすることが可能であり、或いは、占有情報を有する占有マップであるとすることが可能である。
【0108】
[0127] 各パッチは、図9の例では三角形で表現されているが、パッチは、メッシュの連続的なサブセットを形成するように接続された適切な任意数の頂点を含むことが可能である、ということに留意を要する。一部の例では、パッチの頂点は三角形に接続される。パッチ内の頂点は、適切な他の形状を使用して接続されることが可能である、ということに留意を要する。
【0109】
[0128] 一例では、頂点の幾何学情報は、2D幾何学マップに保存されることが可能である。例えば、2D幾何学マップは、サンプリング点の(x,y,z)座標を、2D幾何学マップの対応する点に保存する。例えば、(u,v)位置にある2D幾何学マップ内の点は、3Dメッシュ内の対応するサンプリング点のx,y,z値にそれぞれ対応する3成分のベクトル値を有する。
【0110】
[0129] 本開示の一態様によれば、マップ内のエリアは、完全には占有されない可能性がある。例えば、図9において、2D形状A’,B’,C’,D’の外側のエリアは、未定義である。デコード後の2D形状A’,B’,C’,D’の外側のエリアのサンプル値は、破棄することが可能である。ある場合には、占有マップが、各ピクセルに対する何らかの追加情報を格納するため、例えばバイナリ値を格納するために使用されて、ピクセルがパッチに属しているか又は未定義であるかを識別する。
【0111】
[0130] 本開示の一態様によれば、動的メッシュは、(幾何学情報、接続情報、マッピング情報、頂点属性及び属性マップのような)成分のうちの少なくとも1つが経時的に変化するメッシュである。動的メッシュは、メッシュのシーケンス(メッシュ・フレームとも呼ばれる)によって記述されることが可能である。動的メッシュは、時間の経過に伴って変化するかなりの量の情報を含む可能性があるので、動的メッシュは、大量のデータを必要とする可能性がある。メッシュの圧縮技術は、メッシュ表現におけるメディア・コンテンツの効率的な記憶と伝送を許容することが可能である。
【0112】
[0131] 一部の例では、動的メッシュは、一定の接続情報、時間変化する(時変)幾何学的形状、及び時間変化する頂点属性を有する可能性がある。一部の例において、動的メッシュは、時間変化する接続情報を有することが可能である。一例では、デジタル・コンテンツ作成ツールは、通常、時間変化する属性マップ及び時間変化する接続情報を用いて動的メッシュを生成する。一部の例では、体積測定収集技術(volumetric acquisition techniques)が、動的メッシュを生成するために使用される。体積測定収集技術は、特にリアルタイム制約の下で、時間変化する接続情報とともに動的メッシュを生成することができる。
【0113】
[0132] メッシュ圧縮には幾つかの技術が使用されている。一部の例では、UVアトラス・サンプリング及びV-PCCを、メッシュ圧縮に使用することができる。例えば、UVアトラスは、規則的なグリッド上でサンプリングされ、規則的なグリッド・サンプル(regular grid sample)を有する幾何学的画像を生成する。規則的なグリッド・サンプルの接続性を推定することができる。規則的なグリッド・サンプルは、点群内の点とみなすことが可能であり、従って、V-PCCコーデックのようなPCCコーデックを使用してコーディングすることができる。
【0114】
[0133] 幾つかの他の例では、頂点再配列技法(vertex reordering techniques)がメッシュ圧縮に使用される。メッシュの頂点は、近辺の頂点の相関を増加させるために、特定のルールに従って並べ替えられ、従って、予測コーディング方法を使用してコーディング効率を増加させることが可能である。一例では、頂点(複数)は、シーケンス内の隣接する頂点の相関を増加させるように再配列される。別の例では、メッシュの頂点は、2Dフレームのローカル領域における隣接頂点の相関を増加させるように、2次元(2D)フレームに並べ替えられて再配置され、次いで、2Dフレームは、画像/ビデオ・コーデックによって、例えばイントラ予測技法を使用することによって、より効率的にコーディングされることが可能である。別の例では、異なるメッシュ・フレームの頂点は、2Dフレーム間の相関を増加させるように、2Dフレーム内で並べ替えられて再配置され、次いで、2Dフレームは、ビデオ・コーデックによって、例えばインター予測技術を使用することによって、より効率的に符号化されることが可能である。
【0115】
[0134] 図10A-10Eは、メッシュ圧縮のための頂点リオーダリング(vertex reordering)の使用例を示す。図10Aは、入力メッシュ(1005)(例えば、元のメッシュ)の図を示す。入力メッシュ(1005)は、物体の表面を表す接続された三角形を含む。各三角形は、頂点と、頂点を三角形に接続するエッジとによって定義される。入力メッシュ(1005)は、図10Aに示されるように、三角形に接続された頂点0ないし8を含む。
【0116】
[0135] 図10Bは、一部の例における頂点走査順序(vertex traversal order)(1015)の図を示す。頂点走査順序(1015)は、頂点0、頂点1、頂点2、頂点3、頂点4、頂点5、頂点6、頂点7、頂点8を順番に横断する矢印の線で示されている。
【0117】
[0136] 次いで、頂点の3D(幾何学的)座標、頂点のUV座標、及び頂点のその他の属性のような頂点の属性が、頂点走査順序(1015)に従って、アレイ(array)に並べ替えられることが可能である。例えば、頂点の3D座標は、頂点走査順序(1015)で3D座標のアレイに並べ替えられることが可能であり、頂点のUV座標は、頂点走査順序(1015)でUV座標のアレイに並べ替えられることが可能である。アレイは、1Dアレイであるとすることが可能であり、又は2Dアレイであるとすることが可能である。
【0118】
[0137] 一部の例では、頂点の属性は、ラスター走査線に従って、2D画像を形成する2Dアレイに並べ替えられてリシェイプ(再形成)される。2D画像は、画像又はビデオ・コーデックのような予測コーディング技術によってコーディングされることが可能である。メッシュ・フレームのシーケンスを含む動的メッシュの例では、動的メッシュの属性は、2D画像のシーケンスを形成するように並べ替えられることが可能であり、2D画像のシーケンスは、一例では、ビデオ・コーデックによってコーディングされることが可能である。
【0119】
[0138] 図10Cは、頂点の属性を2Dアレイ(1035)にリシェイプするために使用されるラスター走査線(1025)を示す図を示している。ラスター走査線(1025)は、矢印の線で示されている。2Dアレイ(1035)は、2Dマップ又は2D画像と言及することも可能である。一例では、頂点の属性は、その頂点に対応する2Dアレイ(1035)内のエントリに格納され、エントリは2D画像内のピクセルであり、属性値は、ピクセルの色情報とみなすことが可能である。一例では、2Dアレイ(1035)は、3D座標マップであるとすることが可能である。別の例では、2Dアレイ(1035)は、UV座標マップであるとすることが可能である。2Dアレイ(1035)は、メッシュ・フレームを運ぶためのビットストリームに符号化されることが可能である。
【0120】
[0139] 一部の例では、接続情報(例えば、頂点を三角形のエッジに接続する仕方)は、メッシュ・フレームを運ぶビットストリームに、明示的にはエンコードされない。従って、デコーダ側で、デコーダは、例えば2Dマップから頂点の属性(例えば、3D座標、uv座標など)をデコードし、頂点を再構成することができる。
【0121】
[0140] 図10Dは、一部の例における再構成された頂点0’-8’を示す図を示している。例えば、座標は、ビットストリームからデコードされることが可能であり、次いで、再構成された頂点0’-8’は、デコードされた座標に従って生成されることが可能である。
【0122】
[0141] 一部の例では、接続情報は、ビットストリームに明示的にはエンコードされておらず、再構成された頂点0’-8’を接続するためのエッジは、接続推定ルール(connectivity infer rule)に従って推定される。接続推定ルールは、デコーダ側で、デコードされた3D座標(xyz座標)及び/又はUV座標(uv座標)から接続性を推定することができる。一例では、接続推定ルールは、デコーダ側で適切に確立される。全ての頂点がデコードされると、隣接する頂点は、接続推定ルールに従って接続される。デコーダは、ビットストリームから接続情報をデコードすることを必要としない。
【0123】
[0142] 図10Eは、推定された接続情報(エッジ)を示す図を示しており、これは、再構成された頂点0’-8’を三角形に接続して、再構成されたメッシュ(1095)を形成することが可能である。
【0124】
[0143] 図10A及び図10Eによって示されるように、再構成されたメッシュ(1095)における頂点の接続性(エッジ)は、元の入力メッシュ(1005)と相違する可能性がある。接続の相違は、一部の例では、再構成されたメッシュの主観的な品質を損なう原因となる可能性がある。本開示の別の態様によれば、デコーダ側で接続性を推定することは、時間を要し、また、複雑性の観点から演算能力を消費する可能性がある。
【0125】
[0144] 本開示の態様は、メッシュ・フレームを運ぶビットストリームにおいてメッシュ・フレームの接続情報を明示的にコーディングする技術を提供する。一部の例において、接続情報は、ポリゴン面(polygon faces)の形態で提供される。各ポリゴン面は、ポリゴン面のエッジを形成するように接続された一連の頂点によって定義される。一例では、接続情報は三角形(三角面(triangle faces)とも呼ばれる)の形態で提供され、各三角形は、三角形の3つのエッジを形成するように接続された3つの頂点によって定義される。本開示の一態様によれば、メッシュ・フレームの接続情報は、頂点のそれぞれの接続属性として再編成することが可能である。
【0126】
[0145] 本開示の一態様によれば、頂点の接続属性は、頂点における接続情報を表す適切な任意のメトリック(metric)であるとすることが可能である。一例では、頂点の接続属性は、頂点におけるエッジの数である価数値(valence value)を含む。例えば、入力メッシュ(1005)における頂点3の価数値は3であり、入力メッシュ(1005)における頂点5の価数値は4であり、入力メッシュ(1005)における頂点8の価数値は6であり、等々である。
【0127】
[0146] 別の例において、エッジブレーカー(Edgebreaker)アルゴリズムと呼ばれるアルゴリズムは、頂点を横断し、各頂点をパターン・インデックスでマーキングすることができ、パターン・インデックスは、接続性の圧縮のために、内部頂点、境界頂点、及びその他のパターンのように、接続パターンを識別する。従って、頂点の接続属性は、エッジブレーカー・アルゴリズムによってマーキングされたパターン・インデックスを含むことができる。
【0128】
[0147] 一部の例では、頂点の接続属性は、頂点の他の属性として並び替えられてリシェイプされ、メッシュを運ぶビットストリーム内に明示的にコーディングされることが可能である。
【0129】
[0148] 図11は、本開示の幾つかの実施形態によるメッシュ圧縮のためのフレームワーク(1100)の図を示す。フレームワーク(1100)は、メッシュ・エンコーダ(1110)及びメッシュ・デコーダ(1150)を含む。メッシュ・エンコーダ(1110)は、入力メッシュ(1105)(動的メッシュ処理の場合はメッシュ・フレーム)をビットストリーム(1145)にエンコードし、メッシュ・デコーダ(1150)は、ビットストリーム(1145)をデコードして、再構成されたメッシュ(1195)(動的メッシュ処理の場合は再構成されたメッシュ・フレーム)を生成する。
【0130】
[0149] メッシュ・エンコーダ(1110)は、コンピュータ、サーバー・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、ゲーミング・デバイス、ARデバイス、VRデバイスなどのような、適切な任意のデバイスであるとすることが可能である。メッシュ・デコーダ(1150)は、コンピュータ、サーバー・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、ゲーミング・デバイス、ARデバイス、VRデバイスなどのような、適切な任意のデバイスであるとすることが可能である。ビットストリーム(1145)は、適切な任意の通信ネットワーク(図示せず)を介して、メッシュ・エンコーダ(1110)からメッシュ・デコーダ(1150)へ伝送されることが可能である。
【0131】
[0150] 図11の例では、メッシュ・エンコーダ(1110)は、頂点並べ替えモジュール(1120)、1D/2Dエンコーダ(1130)、及び補助データ・エンコーダ(1140)を共に結合して含んでいる。頂点並べ替えモジュール(1120)は、入力メッシュ(1105)を受信し、リオーダリングを実行して、並べ替えられた頂点のメッシュ情報(1125)を生成する。一部の例において、入力メッシュ(1105)は、元の順序でのメッシュの頂点の3D位置情報、ポリゴン面の形式での接続情報、メッシュを2D(例えば、UVアトラス)にパラメータ化するマッピング情報、及び、その他の2D属性マップ(例えば、2Dカラー・マップ)を含む。頂点並べ替えモジュール(1120)は、頂点の頂点走査順序を決定し、頂点走査順序に従って頂点を並べ替え及び/又は再配置して、隣接する頂点の属性相関(例えば、シーケンス(例えば、1Dアレイ)における隣接する頂点の属性相関、2Dアレイにおける局所領域内の隣接する頂点の属性相関、隣接するフレームの属性相関)を増加させることができる。
【0132】
[0151] 一例では、頂点並べ替えモジュール(1120)は、頂点のそれぞれの接続属性(元の接続属性とも呼ばれる)の形式で、メッシュ・フレームの接続情報を再編成することができる。一例において、各々の頂点の接続属性は、接続圧縮のためのエッジブレーカー・アルゴリズムによってマーキングされた接続パターンを示すパターン・インデックスを含むことが可能である。別の例では、各々の頂点の接続属性は、頂点に接続されたエッジの数を示す価数値を含むことが可能である。
【0133】
[0152] 頂点並べ替えモジュール(1120)は、並べ替えられた頂点(1125)のメッシュ情報を出力する。並べ替えられた頂点(1125)のメッシュ情報は、並べ替えられたシーケンス(e.g.,1D)における頂点の頂点情報を含む。例えば、各々の頂点に対する頂点情報は、メッシュ内の3D空間情報(例えば、xyz座標)、2Dへのマッピング情報(例えば、uv座標)、色情報(例えば、RGB値)、及び接続属性のような種々の属性を含むことが可能である。
【0134】
[0153] 別の例では、並べ替えられた頂点のメッシュ情報(1125)は、2D画像の形式で頂点の頂点情報を含む。例えば、並べ替えられた頂点は、2Dのサンプル(ピクセル)に(例えば、ラスター走査線などに基づいて)再配置され、並べ替えられた頂点のメッシュ情報は、頂点の3D座標の2D画像、頂点のUV座標の2D画像、頂点接続属性の2D画像などのような、1つ以上の2D画像を形成することが可能である。
【0135】
[0154] 1D/2Dエンコーダ(1130)は、並べ替えられた頂点のメッシュ情報(1125)をビットストリーム(1145)にエンコードするように構成されている。並べ替えられた頂点のメッシュ情報(1125)が、並べ替えられたシーケンス(1D)における頂点の頂点情報を含む場合、1D/2Dエンコーダ(1130)は、1D符号化技法を用いて、並べ替えられたシーケンスにおける頂点の頂点情報をエンコードすることが可能である。並べ替えられた頂点のメッシュ情報(1125)が、2D画像を含む場合、1D/2Dエンコーダ(1130)は、画像符号化及び/又はビデオ符号化技術を使用して(例えば、画像コーデック又はビデオ・コーデックを使用して)、2D画像をエンコードすることができる。
【0136】
[0155] 頂点並べ替えモジュール(1120)はまた、補助情報を含む補助データ(1127)も生成する。補助データ・エンコーダ(1140)は、補助データ(1127)を受信し、補助データ(1127)をビットストリーム(1145)にエンコードする。例えば、頂点並べ替えモジュール(1120)は、頂点をパッチごとに並べ替えることが可能である。頂点並べ替えモジュール(1120)は、補助データ(1127)内の各パッチ内の頂点の数を示す値を提供することが可能である。更に、一例では、頂点並べ替えモジュール(1120)は、各パッチについて、境界頂点を、非境界頂点の前に並べ替えることが可能である。頂点並べ替えモジュール(1120)は、補助データ(1127)内の各パッチ内の境界頂点の数を示す値を提供することが可能である。別の例では、頂点並べ替えモジュール(1120)は、エッジブレーカー・アルゴリズムに従って頂点を横断することが可能であり、補助データ(1127)においてエッジブレーカー・アルゴリズムを示す信号を提供することが可能である。
【0137】
[0156] 図11の例では、ビットストリーム(1145)がメッシュ・デコーダ(1150)に提供される。メッシュ・デコーダ(1150)は、1D/2Dデコーダ(1160)、補助データ・デコーダ(1170)、及びメッシュ再構成モジュール(1190)を、図11に示すように互いに結合して含んでいる。一例において、1D/2Dデコーダ(1160)は、1D/2Dエンコーダ(1130)に対応し、1D/2Dエンコーダ(1130)によってエンコードされたビットストリーム(1145)の一部をデコードし、デコードされた情報(1165)を生成することが可能である。一例では、デコードされた情報(1165)は、デコードされた接続属性マップ及びその他のデコードされた属性マップ、例えば、デコードされた3D座標マップ、デコードされたuv座標マップ、カラー・マップ等を含む。
【0138】
[0157] 図11の例では、補助データ・デコーダ(1170)は補助データ・エンコーダ(1140)に対応し、補助データ・エンコーダ(1140)によってエンコードされたビットストリーム(1145)の一部をデコードし、デコードされた補助データ(1175)を生成することが可能である。
【0139】
[0158] 図11の例では、デコードされた情報(1165)、デコードされた補助データ(1175)は、メッシュ再構成モジュール(1190)に提供される。メッシュ再構成モジュール(1190)は、デコードされた情報(1165)、デコードされた補助データ(1175)に基づいて、再構成されたメッシュ(1195)を生成する。
【0140】
[0159] 頂点並べ替えモジュール(1120)、補助データ・エンコーダ(1140)及び1D/2Dエンコーダ(1130)のようなメッシュ・エンコーダ(1110)内の構成要素は、それぞれ、種々の技術によって実装されることが可能であることに留意を要する。一例では、構成要素は集積回路によって実装される。別の例では、構成要素は1つ以上のプロセッサによって実行されることが可能なソフトウェアを使用して実装される。
【0141】
[0160] 1D/2Dデコーダ(1160)、補助データ・デコーダ(1170)、及びメッシュ再構成モジュール(1190)のような、メッシュ・デコーダ(1150)内の構成要素は、それぞれ、種々の技術によって実装されることが可能であることに留意を要する。一例では、構成要素は集積回路によって実装される。別の例では、構成要素は1つ以上のプロセッサによって実行されることが可能なソフトウェアを使用して実装される。
【0142】
[0161] 図12A-12Dは、本開示の幾つかの実施形態による、メッシュ・フレームを運ぶビットストリームにおいてメッシュ・フレームの接続属性を明示的にコーディングする例を示す。図12Aは、入力メッシュ(1205)の図を示す。入力メッシュ(1205)は、物体の表面を表す接続された三角形を含む。各々の三角形は、頂点と、頂点を三角形に接続するエッジとによって定義される。入力メッシュ(1205)は、図12Aに示されるように、三角形に接続された頂点0ないし8を含む。
【0143】
[0162] 図12Bは、頂点走査順序(1215)の図を示す。頂点走査順序(1215)は、頂点0、頂点1、頂点2、頂点3、頂点4、頂点5、頂点6、頂点7、頂点8を順番に横断する矢印の線で示されている。
【0144】
[0163] 次いで、頂点の3D(幾何学的)座標、頂点のUV座標、頂点の接続属性、及び頂点のその他の属性のような頂点の属性が、頂点走査順序(1215)に従って、アレイに並べ替えられることが可能である。例えば、頂点の3D座標は、頂点走査順序(1215)で3D座標のアレイに並べ替えられることが可能であり、頂点のUV座標は、頂点走査順序(1215)でUV座標のアレイに並べ替えられることが可能であり、頂点の接続属性は、頂点走査順序(1215)で接続属性のアレイに並べ替えられることが可能である。アレイは、1Dアレイであるとすることが可能であり、又は2Dアレイであるとすることが可能である。
【0145】
[0164] 一部の例では、頂点の属性は、ラスター走査線に従って、2D画像を形成する2Dアレイに並べ替えられてリシェイプ(再形成)される。2D画像は、画像又はビデオ・コーデックのような予測コーディング技術によってコーディングされることが可能である。メッシュ・フレームのシーケンスを含む動的メッシュの例では、動的メッシュの属性は、2D画像のシーケンスを形成するように並べ替えられることが可能であり、2D画像のシーケンスは、一例では、ビデオ・コーデックによってコーディングされることが可能である。
【0146】
[0165] 図12Cは、頂点の属性を、2Dアレイ(1245)及び2Dアレイ(1235)のような2Dアレイにリシェイプするために使用されるラスター走査線(1225)を示す図を示している。ラスター走査線(1225)は、矢印の線で示されている。2Dアレイ(1235)及び(1245)は、2Dマップ又は2D画像と言及することも可能である。一例では、頂点に対する接続属性は、その頂点に対応する2Dアレイ(1245)内のエントリに格納され、エントリは、2D画像内のピクセルであり、接続属性は、ピクセルの色情報である。一例では、頂点に対する3D座標、UV座標などの別の属性が、その頂点に対応する2Dアレイ(1235)内のエントリに格納され、エントリは、2D画像内のピクセルであり、属性は、ピクセルの色情報である。一例において、2Dアレイ(1235)は、3D座標マップであるとすることが可能である。別の例では、2Dアレイ(1235)は、UV座標マップであるとすることが可能である。2Dアレイ(1235)及び2Dアレイ(1245)は、メッシュ・フレームを運ぶためのビットストリームに符号化されることが可能である。
【0147】
[0166] 図12Cの例では、接続情報(例えば、頂点を三角形のエッジに接続する仕方)は、頂点の接続属性の形態で再編成されており、頂点の接続属性は、メッシュ・フレームを運ぶためのビットストリームに明示的にエンコードされていることに留意を要する。一部の例では、入力メッシュ(1205)のような元のメッシュの頂点が走査され、各々の頂点は、頂点の接続情報を表すことが可能なパターン・インデックス又は価数値の何れかを用いてマーキングされる。例えば、頂点走査順序(1215)のような頂点走査順序を決定して頂点を横断するためにエッジブレーカー・アルゴリズムを使用することが可能であり、エッジブレーカー・アルゴリズムは、各々の頂点をパターン・インデックスでマーキングすることが可能である。頂点の接続属性は、頂点走査順序に従って並べ替えられ、次いで、2Dアレイ(1245)のような、2Dマップ(Morgによって示される接続マップとも言及されるもの)に整形されることが可能である。(例えば、2Dアレイ(1245)のような)接続マップ内のピクセル位置における各々の値は、ピクセル位置に並べ替えられてリシェイプされる頂点の対応するパターン・インデックス又は価数値である。頂点の他の属性は、頂点走査順序に従って並べ替えられ、次いで、2Dアレイ(1235)のような他の2Dマップに整形されることが可能である。接続マップは、画像コーデック、ビデオ・コーデック等のような任意の予測コーディング方法によってコーディングされることが可能である。一部の例では、接続マップは、非ロスレス・モードでコーディングされることが可能である。一部の例では、接続マップはロスレス・モードでコーディングされることが可能である。
【0148】
[0167] 本開示の一態様によれば、デコーダ側で、デコーダは、メッシュ・フレームを運ぶビットストリームから直接的に、頂点の接続属性を頂点の他の属性とともにデコードすることが可能である。次いで、デコーダは、頂点の接続属性及び頂点の他の属性に従って、メッシュ・フレームを再構成することが可能である。
【0149】
[0168] 図12Dは、再構成されたメッシュ・フレーム(1295)を示す図を示している。一例では、再構成された頂点0’-8’は、例えば、ビットストリームからの頂点のデコードされた座標から、再構成されることが可能である。次いで、再構成された頂点0’-8’は、頂点の価数又は頂点のパターン・インデックスのような、ビットストリームからの頂点のデコードされた接続属性に従って接続されることが可能である。一例では、頂点のパターン・インデックスに従って、再構成されたメッシュ・フレーム(1295)を生成するために、エッジブレーカー・アルゴリズムを使用することが可能である。別の例では、頂点の価数に従って、再構成されたメッシュ・フレーム(1295)を生成するために、適切なアルゴリズムが使用される。再構成されたメッシュ・フレーム(1295)は、元のメッシュ・フレーム(1205)と同じ接続情報(同一のエッジ)を有することが可能である。
【0150】
[0169] 幾つかの実施形態では、メッシュ・フレームの接続差情報(connectivity difference information)が、メッシュ・フレームを運ぶビットストリームにおいてエンコードされることが可能である。接続差情報は、入力メッシュ・フレームの元の接続情報と、接続推定ルールによる推定された接続情報との間の差である。
【0151】
[0170] 図13は、本開示の幾つかの実施形態によるメッシュ圧縮のためのフレームワーク(1300)の図を示す。フレームワーク(1300)は、メッシュ・エンコーダ(1310)及びメッシュ・デコーダ(1350)を含む。メッシュ・エンコーダ(1310)は、入力メッシュ(1305)(動的メッシュ処理の場合はメッシュ・フレーム)をビットストリーム(1345)にエンコードし、メッシュ・デコーダ(1350)は、ビットストリーム(1345)をデコードして、再構成されたメッシュ(1395)(動的メッシュ処理の場合は再構成されたメッシュ・フレーム)を生成する。
【0152】
[0171] メッシュ・エンコーダ(1310)は、コンピュータ、サーバー・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、ゲーミング・デバイス、ARデバイス、VRデバイスなどのような、適切な任意のデバイスであるとすることが可能である。メッシュ・デコーダ(1350)は、コンピュータ、サーバー・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、ゲーミング・デバイス、ARデバイス、VRデバイスなどのような、適切な任意のデバイスであるとすることが可能である。ビットストリーム(1345)は、適切な任意の通信ネットワーク(図示せず)を介して、メッシュ・エンコーダ(1310)からメッシュ・デコーダ(1350)へ伝送されることが可能である。
【0153】
[0172] 図13の例では、メッシュ・エンコーダ(1310)は、頂点並べ替えモジュール(1320)、1D/2Dエンコーダ(1330)、補助データ・エンコーダ(1340)、及び接続推定モジュール(1335)を共に結合して含んでいる。頂点並べ替えモジュール(1320)は、入力メッシュ(1305)を受信し、リオーダリングを実行して、接続の差異を含む並べ替えられた頂点のメッシュ情報(1125)を生成する。一部の例において、入力メッシュ(1305)は、元の順序でのメッシュの頂点の3D位置情報、ポリゴン面の形式での接続情報、メッシュを2D(例えば、UVアトラス)にパラメータ化するマッピング情報、及び、その他の2D属性マップ(例えば、2Dカラー・マップ)を含む。頂点並べ替えモジュール(1320)は、頂点の頂点走査順序を決定し、頂点走査順序に従って頂点を並べ替え及び/又は再配置して、隣接する頂点の属性相関(例えば、シーケンス(例えば、1Dアレイ)における隣接する頂点の属性相関、2Dアレイにおける局所領域内の隣接する頂点の属性相関、隣接するフレームの属性相関)を増加させることができる。
【0154】
[0173] 一例では、頂点並べ替えモジュール(1320)は、頂点のそれぞれの接続属性(元の接続属性とも呼ばれる)の形式で、メッシュ・フレームの接続情報を再編成することができる。一例において、各々の頂点の接続属性は、接続圧縮のためのエッジブレーカー・アルゴリズムによってマーキングされた接続パターンを示すパターン・インデックスを含むことが可能である。別の例では、各々の頂点の接続属性は、頂点に接続されたエッジの数を示す価数値を含むことが可能である。
【0155】
[0174] 頂点並べ替えモジュール(1320)は、並べ替えられた頂点(1325)のメッシュ情報を出力する。並べ替えられた頂点(1325)のメッシュ情報は、並べ替えられたシーケンス(e.g.,1D)における頂点の頂点情報を含む。例えば、各々の頂点に対する頂点情報は、メッシュ内の3D空間情報(例えば、xyz座標)、2Dへのマッピング情報(例えば、uv座標)、色情報(例えば、RGB値)、及び、接続推定モジュール(1335)によって提供される推定された接続属性と元の接続属性との間の接続属性の差異(又は、接続差異とも呼ばれる)のような種々の属性を含むことが可能である。
【0156】
[0175] 別の例では、並べ替えられた頂点のメッシュ情報(1325)は、2D画像の形式で頂点の頂点情報を含む。例えば、並べ替えられた頂点は、2Dのサンプル(ピクセル)に(例えば、ラスター走査線などに基づいて)再配置され、並べ替えられた頂点のメッシュ情報は、頂点の3D座標の2D画像、頂点のUV座標の2D画像、頂点接続属性差異の2D画像などのような、1つ以上の2D画像を形成することが可能である。
【0157】
[0176] 1D/2Dエンコーダ(1330)は、並べ替えられた頂点のメッシュ情報(1325)をビットストリーム(1345)にエンコードするように構成されている。並べ替えられた頂点のメッシュ情報(1325)が、並べ替えられたシーケンス(1D)における頂点の頂点情報を含む場合、1D/2Dエンコーダ(1330)は、1D符号化技法を用いて、並べ替えられたシーケンスにおける頂点の頂点情報をエンコードすることが可能である。並べ替えられた頂点のメッシュ情報(1325)が、2D画像を含む場合、1D/2Dエンコーダ(1130)は、画像符号化及び/又はビデオ符号化技術を使用して(例えば、画像コーデック又はビデオ・コーデックを使用して)、2D画像をエンコードすることができる。
【0158】
[0177] 一部の例において、接続推定モジュール(1335)は、元のメッシュ入力(1305)における頂点の座標に基づいて、頂点の推定された接続属性(1336)を生成することが可能である。一部の例において、接続推定モジュール(1335)は、頂点の推定された接続属性(1336)を、頂点のエンコードされた座標から生成することが可能である。例えば、接続推定モジュール(1335)は、頂点(1331)のエンコードされた座標を、1D/2Dエンコーダ(1330)から受信し、頂点のエンコードされた座標をデコードして、頂点のデコードされた座標(例えば、デコードされた3D座標、デコードされたUV座標)を生成し、頂点のデコードされた座標に従って、接続推定ルールに基づいて、頂点の推定された接続属性(1336)を生成することが可能である。接続推定モジュール(1335)は、推定属性(1336)を、頂点並べ替えモジュール(1320)に提供することが可能である。頂点並べ替えモジュール(1320)は、頂点の元の接続属性と頂点の推定された接続属性(1336)との間の頂点の接続差異を決定することが可能である。頂点並べ替えモジュール(1320)は、頂点走査順序に従って頂点の接続差異を並べ替え、接続差異の1Dアレイ又は2Dアレイを形成することが可能である。接続差異の1Dアレイ又は2Dアレイは、ビットストリーム(1345)にエンコードするために、1D/2Dエンコーダに提供される。
【0159】
[0178] 頂点並べ替えモジュール(1120)はまた、補助情報を含む補助データ(1127)も生成する。補助データ・エンコーダ(1340)は、補助データ(1327)を受信し、補助データ(1327)をビットストリーム(1345)にエンコードする。例えば、頂点並べ替えモジュール(1320)は、頂点をパッチごとに並べ替えることが可能である。頂点並べ替えモジュール(1320)は、補助データ(1327)内の各パッチ内の頂点の数を示す値を提供することが可能である。更に、一例では、頂点並べ替えモジュール(1320)は、各パッチについて、境界頂点を、非境界頂点の前に並べ替えることが可能である。頂点並べ替えモジュール(1320)は、補助データ(1327)内の各パッチ内の境界頂点の数を示す値を提供することが可能である。頂点並べ替えモジュール(1320)は、エッジブレーカー・アルゴリズムに従って頂点を横断することが可能であり、補助データ(1327)においてエッジブレーカー・アルゴリズムを示す信号を提供することが可能である。別の例では、多重接続推定ルール(multiple connectivity infer rules)を使用して、接続属性を推定することが可能であり、多重接続推定ルールからの特定の接続推定ルールの選択を示す信号を、補助データ(1327)に含めることが可能である。
【0160】
[0179] 図13の例では、ビットストリーム(1345)がメッシュ・デコーダ(1350)に提供される。メッシュ・デコーダ(1350)は、1D/2Dデコーダ(1360)、補助データ・デコーダ(1370)、接続決定モジュール(1380)及びメッシュ再構成モジュール(1390)を、図13に示すように互いに結合して含んでいる。一例において、1D/2Dデコーダ(1360)は、1D/2Dエンコーダ(1330)に対応し、1D/2Dエンコーダ(1330)によってエンコードされたビットストリーム(1345)の一部をデコードし、デコードされた情報(1365)を生成することが可能である。デコードされた情報(1165)は、デコードされた3D座標マップ、デコードされたUV座標マップなどのようなデコードされた座標情報、デコードされた接続差異(例えば、デコードされた接続差異マップ)、その他のデコードされた属性情報(例えば、デコードされたカラー・マップなど)を含む。
【0161】
[0180] 図13の例では、補助データ・デコーダ(1370)は補助データ・エンコーダ(1340)に対応し、補助データ・エンコーダ(1340)によってエンコードされたビットストリーム(1345)の一部をデコードし、デコードされた補助データ(1375)を生成することが可能である。
【0162】
[0181] 図13の例では、接続決定モジュール(1380)は、頂点のデコードされた座標(例えば、デコードされた3D座標、デコードされたuv座標など)及び頂点のデコードされた接続差異のような、デコードされた情報(1365)を受信し、回復された接続属性(1385)を生成することが可能である。一例では、接続決定モジュール(1380)が接続推定モジュール(1381)を含む。接続推定モジュール(1381)は、接続推定モジュール(1335)と同様に動作し、頂点のデコードされた座標に従って、接続推定ルールに基づいて、推定された接続属性を生成することが可能である。一例において、接続推定モジュール(1335)及び接続推定モジュール(1381)では、同じ接続推定ルールが使用されることに留意を要する。接続決定モジュール(1380)は、接続推定モジュール(1381)から出力された頂点の推定された接続属性を、頂点のデコードされた接続差異と結合して、頂点の回復された接続属性(1385)を生成する。
【0163】
[0182] 図13の例では、デコードされた情報(1365)、デコードされた補助データ(1375)、及び頂点の回復された接続情報(1385)は、メッシュ再構成モジュール(1390)に提供される。メッシュ再構成モジュール(1390)は、デコードされた情報(1365)、デコードされた補助データ(1375)、及び頂点の回復された接続情報(1385)に基づいて、再構成されたメッシュ(1395)を生成する。
【0164】
[0183] 頂点並べ替えモジュール(1320)、補助データ・エンコーダ(1340)1D/2Dエンコーダ(1330)、及び接続推定モジュール(1335)のようなメッシュ・エンコーダ(1310)内の構成要素は、それぞれ、種々の技術によって実装されることが可能であることに留意を要する。一例では、構成要素は集積回路によって実装される。別の例では、構成要素は1つ以上のプロセッサによって実行されることが可能なソフトウェアを使用して実装される。
【0165】
[0184] 1D/2Dデコーダ(1360)、補助データ・デコーダ(1370)、接続決定モジュール(1380)、及びメッシュ再構成モジュール(1390)のような、メッシュ・デコーダ(1350)内の構成要素は、それぞれ、種々の技術によって実装されることが可能であることに留意を要する。一例では、構成要素は集積回路によって実装される。別の例では、構成要素は1つ以上のプロセッサによって実行されることが可能なソフトウェアを使用して実装される。
【0166】
[0185] 図14A-14Fは、一部の実施形態による、メッシュ・フレームにおける頂点の接続差異を、メッシュ・フレームを運ぶビットストリームにコーディングする例を示す。図14Aは、入力メッシュ(1405)の図を示す。入力メッシュ(1405)は、物体の表面を表す接続された三角形を含む。各々の三角形は、頂点と、頂点を三角形に接続するエッジとによって定義される。入力メッシュ(1405)は、図14Aに示されるように、三角形に接続された頂点0ないし8を含む。
【0167】
[0186] 図14Bは、一部の例における頂点走査順序(1415)の図を示す。頂点走査順序(1415)は、頂点0、頂点1、頂点2、頂点3、頂点4、頂点5、頂点6、頂点7、頂点8を順番に横断する矢印の線で示されている。
【0168】
[0187] 次いで、頂点の3D(幾何学的)座標、頂点のUV座標、及び頂点のその他の属性のような頂点の属性が、頂点走査順序(1415)に従って、アレイに並べ替えられることが可能である。例えば、頂点の3D座標は、頂点走査順序(1415)で3D座標のアレイに並べ替えられることが可能であり、頂点のUV座標は、頂点走査順序(1415)でUV座標のアレイに並べ替えられることが可能である。アレイは、1Dアレイであるとすることが可能であり、又は2Dアレイであるとすることが可能である。
【0169】
[0188] 一部の例では、元のメッシュ・フレーム(1405)の接続情報(例えば、頂点を三角形のエッジに接続する仕方)は、頂点の元の接続属性の形態で再編成される。一部の例では、入力メッシュ(1405)のような元のメッシュの頂点が走査され、各々の頂点は、頂点の接続属性を表すことが可能なパターン・インデックス又は価数値の何れかを用いてマーキングされる。例えば、頂点走査順序(1415)のような頂点走査順序を決定して頂点を横断するためにエッジブレーカー・アルゴリズムを使用することが可能であり、エッジブレーカー・アルゴリズムは、各々の頂点をパターン・インデックスでマーキングすることが可能である。頂点の接続属性は、頂点走査順序に従って並べ替えられ、次いで、2Dマップ(Morgによって示される元の接続マップとも言及されるもの)に整形されることが可能である。接続マップ内のピクセル位置における各々の値は、ピクセル位置に並べ替えられてリシェイプされる頂点の対応するパターン・インデックス又は価数値である。
【0170】
[0189] エンコーダ側では、一部の例において、エンコーダは、接続推定ルールに従って、推定された接続属性を生成する。
【0171】
[0190] 図14Cは、例えば頂点の位置に基づいて接続推定ルールに従って、頂点1-8に対して推定された接続(1420)を示す。推定された接続(1420)は、頂点の推定された接続属性の形式におけるものであるとすることが可能である。一部の例において、頂点の推定された接続属性は、頂点走査順序に従って並べ替えられ、次いで、Minferにより示される、推定された接続マップとも呼ばれる2Dマップに整形されることが可能である。推定された接続マップ内のピクセル位置における各々の値は、ピクセル位置に並べ替えられてリシェイプされた頂点の、対応する推定されたパターン・インデックス又は推定された価数値である。
【0172】
[0191] 本開示の一態様によれば、元の接続マップMorgと推定された接続マップMinferとの間の差を計算して、Mdiffにより示される接続差マップを、例えば、Mdiff=Morg-Minfer を利用して決定することが可能である。接続差マップMdiff内のピクセル位置における各々の値は、元の接続マップ内の同じピクセル位置におけるピクセル値と推定された接続マップとの間の差分値である。
【0173】
[0192] 一部の例では、頂点の属性は、ラスター走査線に従って、2D画像を形成する2Dアレイに並べ替えられてリシェイプされる。2D画像は、画像又はビデオ・コーデックのような予測コーディング技術によってコーディングされることが可能である。メッシュ・フレームのシーケンスを含む動的メッシュの例では、動的メッシュの属性は、2D画像のシーケンスを形成するように並べ替えられることが可能であり、2D画像のシーケンスは、一例では、ビデオ・コーデックによってコーディングされることが可能である。
【0174】
[0193] 図14Dは、頂点の属性を、2Dアレイ(1444)及び2Dアレイ(1435)のような2Dアレイにリシェイプするために使用されるラスター走査線(1425)を示す図を示している。ラスター走査線(1425)は、矢印の付いた線で示されている。2Dアレイ(1435)及び(1444)は、2Dマップ又は2D画像と言及することも可能である。一例では、2Dアレイ(1444)は、接続差マップMdiffである。頂点に対する接続差異は、その頂点に対応する2Dアレイ(1444)内のエントリに格納され、エントリは2D画像内のピクセルであり、接続差異はピクセルの色情報である。一例では、頂点に対する3D座標、UV座標などの別の属性が、頂点に対応する2Dアレイ(1435)内のエントリに格納され、エントリは、2D画像内のピクセルであり、属性はピクセルの色情報である。一例において、2Dアレイ(1435)は、3D座標マップであるとすることが可能である。別の例では、2Dアレイ(1435)は、UV座標マップであるとすることが可能である。2Dアレイ(1435)及び2Dアレイ(1444)は、メッシュ・フレームを運ぶためのビットストリームに符号化されることが可能である。
【0175】
[0194] 図14Eは、一部の例における再構成された頂点0’-8’を示す図を示している。例えば、座標は、ビットストリームからデコードされることが可能であり、次いで、再構成された頂点0’-8’は、デコードされた座標に従って生成されることが可能である。
【0176】
[0195] 一部の例では、再構成された頂点0’-8’を接続するためのエッジは、接続推定ルールに従って推定される。接続推定ルールは、デコーダ側で、デコードされた3D座標(xyz座標)及び/又はUV座標(uv座標)から接続性を推定することができる。本開示の一態様によれば、エンコーダ側とデコーダ側で同じ接続推定ルールが使用される。一部の例では、接続推定ルールは、エンコーダ側で、頂点の推定された接続属性(1420)を生成するために使用される。デコーダ側では、図14Eの再構成された頂点0’-8’を接続し、例えばM’inferによって示される推定接続マップの形式で、頂点の推定された接続属性を生成するために、同じ接続推定ルールが使用される。推定された接続マップM’inferは、図14Cの説明で取得された推定された接続マップM’inferに一致するものであるとすることが可能である。
【0177】
[0196] デコーダはまた、頂点の接続差異をビットストリームから、例えばM’diffにより示されるデコードされた接続差マップの形式でデコードする。一例では、復号化された接続差マップM’diff及び推定された接続マップM’inferが、頂点の回復された接続属性を含む回復された接続マップMrecoverを得るために加えられることが可能である。回復された接続マップMrecoverは、元の入力メッシュ(1405)の接続マップMorgに一致したものである可能性があり、メッシュを再構成するために使用されることが可能である。
【0178】
[0197] 図14Fは、再構成されたメッシュ(1495)を示す図を示している。回復されたメッシュは、回復された頂点0’-8’を含み、回復された頂点0’-8’は、回復された接続マップMrecoverに従って接続される。一部の例では、再構成されたメッシュ(1495)は、同じ接続を有する元の入力メッシュ(1405)に一致したものである可能性がある。
【0179】
[0198] 本開示の一態様によれば、エンコーダ側で、エンコーダは、異なる接続推定ルール(異なる接続推定方法とも呼ばれる)を使用して、1つより多い接続マップを推定することが可能である。次いで、元の接続マップと比較して最良の推定された接続マップを有する接続推定ルールの1つが、エンコーダによって選択され、その選択を示すインデックスが、ビットストリームにおいてシグナリングされて、どの接続推定ルールが選択されているかをデコーダに知らせる。
【0180】
[0199] 図15は、本開示の実施形態によるプロセス(1500)の概略を示すフロー・チャートを示している。プロセス(1500)は、メッシュに対する符号化プロセス中に使用することが可能である。様々な実施形態において、プロセス(1500)は処理回路によって実行される。幾つかの実施形態では、プロセス(1500)は、ソフトウェア命令で実現され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1500)を実行する。プロセスは(S1501)から始まり、(S1510)に進む。
【0181】
[0200] (S1510)において、3Dメッシュ・フレームの頂点に対する頂点走査順序が決定される。
【0182】
[0201] (S1520)において、少なくとも第1のアレイと第2のアレイが、頂点走査順序に従って形成される。第1のアレイは、頂点走査順序に従って3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含み、第2のアレイは、頂点走査順序に従って頂点のそれぞれの属性値(例えば、3D座標、UV座標、色、法線など)を含む。
【0183】
[0202] (S1530)において、少なくとも第1のアレイ及び第2のアレイが、3Dメッシュ・フレームを運ぶビットストリームにエンコードされる。
【0184】
[0203] 一部の例において、少なくとも第1のアレイ及び第2のアレイは、2次元(2D)アレイ(例えば、2Dマップ、2D画像)である。少なくともビットストリームへの第1のアレイ及び第2のアレイは、画像エンコーダ及び/又はビデオ・エンコーダを使用してエンコードされる。
【0185】
[0204] 幾つかの実施形態において、頂点の接続値は、頂点の接続パターン・インデックス及び頂点の価数値のうちの少なくとも1つを含む。
【0186】
[0205] 幾つかの実施形態において、頂点の接続値は、頂点の推定された接続値に対する、頂点の接続差分である。一部の例では、頂点の推定された接続値は、接続推定ルールに従って、頂点の座標から生成される。頂点の座標は、3Dメッシュ・フレーム内の頂点の元の3D座標;3Dメッシュ・フレーム内の頂点の元のUV座標;元の3D座標に対応する、エンコードされたビットからデコードされた頂点のデコードされた3D座標;及び元のUV座標に対応する、エンコードされたビットからデコードされた頂点のデコードされたUV座標;のうちの少なくとも1つを含むことが可能である。一部の例において、頂点の接続差は、3Dメッシュ・フレームの頂点の元の接続値と、推定された接続値とに基づいて計算される。
【0187】
[0206] 一部の例において、少なくとも頂点の第1の推定された接続値は、第1の接続推定ルールに従って頂点の座標から生成され、頂点の第2の推定された接続値は、第2の接続推定ルールに従って頂点の座標から生成される。接続推定ルールは、少なくとも第1の接続推定ルール及び第2の接続推定ルールから選択される。次いで、接続推定ルールを示すために、信号がビットストリームに含まれる。
【0188】
[0207] その後、プロセスは(S1599)に進み、終了する。
【0189】
[0208] プロセス(1500)は、適切に適合されることが可能である。プロセス(1500)のステップは、修正及び/又は省略されることが可能である。追加ステップを追加することが可能である。任意の適切な実装順序を使用することが可能である。
【0190】
[0209] 図16は、本開示の実施形態によるプロセス(1600)の概略を示すフロー・チャートを示している。プロセス(1600)は、メッシュに対する復号化プロセス中に使用することが可能である。様々な実施形態において、プロセス(1600)は処理回路によって実行される。幾つかの実施形態では、プロセス(1600)は、ソフトウェア命令で実現され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1600)を実行する。プロセスは(S1601)から始まり、(S1610)に進む。
【0191】
[0210] (S1610)において、少なくとも第1のアレイ及び第2のアレイが、3Dメッシュ・フレームを運ぶビットストリームからデコードされる。第1のアレイは、頂点の座標(例えば、3D座標、uv座標)を含む第2のアレイと一致する頂点走査順序に従って、3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含む。
【0192】
[0211] (S1620)において、頂点を接続するエッジは、少なくとも頂点のそれぞれの接続値に基づいて決定される。一部の例では、頂点を接続するエッジは、頂点の接続値と頂点の座標とに基づいて決定される。
【0193】
[0212] (S1630)において、少なくとも頂点の座標及びエッジに基づいて、3Dメッシュ・フレームが再構成される。
【0194】
[0213] 幾つかの実施形態において、少なくとも第1のアレイ及び第2のアレイは、2次元(2D)アレイである。少なくとも第1のアレイ及び第2のアレイは、画像デコーダ及び/又はビデオ・デコーダを用いてデコードされる。
【0195】
[0214] 幾つかの実施形態において、頂点の接続値は、頂点の接続パターン・インデックス及び頂点の価数値のうちの少なくとも1つを含む。
【0196】
[0215] 幾つかの実施形態において、頂点の接続値は、頂点の推定された接続値に対する、頂点の接続差分である。一部の例では、頂点の推定された接続値は、接続推定ルールに従って、頂点の座標に基づいて推定される。頂点の座標は、頂点の3D座標及び/又は頂点のuv座標のうちの少なくとも1つを含むことが可能である。
【0197】
[0216] 一部の例において、回復された接続値は、頂点の接続差分を、推定された接続値と結合することによって生成され、頂点を接続するエッジは、回復された接続値に基づいて決定されます。
【0198】
[0217] 一部の例において、接続推定ルールを示す信号がビットストリームから受信され、接続推定ルールは、頂点の推定された接続値を生成するために使用することが可能である。
【0199】
[0218] その後、プロセスは(S1699)に進み、終了する。
【0200】
[0219] プロセス(1600)は、適切に適合されることが可能である。プロセス(1600)のステップは、修正及び/又は省略されることが可能である。追加ステップを追加することが可能である。任意の適切な実装順序を使用することが可能である。
【0201】
[0220] 本開示で開示された技術は、別々に又は任意の順序で組み合わせて使用することが可能である。更に、技術(例えば、方法、実施形態)、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装されてもよい。一部の例では、1つ以上のプロセッサは、非一時的コンピュータ読み取り可能な媒体に格納されたプログラムを実行する。
【0202】
[0221] 上述の技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装されることが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されることが可能である。例えば、図17は、開示された対象事項の特定の実施形態を実施するのに適したコンピュータ・システム(1700)を示す。
【0203】
[0222] コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0204】
[0223] 命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーミング・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそのコンポーネント上で実行されることが可能である。
【0205】
[0224] コンピュータ・システム(1700)について図17に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、構成要素の構成は、コンピュータ・システム(1700)の例示的な実施形態に示された構成要素の任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されるべきではない。
【0206】
[0225] コンピュータ・システム(1700)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することも可能である。
【0207】
[0226] 入力ヒューマン・インターフェース・デバイスは、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチ・スクリーン(1710)、データ・グローブ(不図示)、ジョイスティック(1705)、マイクロホン(1706)、スキャナ(1707)、カメラ(1708)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0208】
[0227] コンピュータ・システム(1700)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。
このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(1710)、データ・グローブ(不図示)、ジョイスティック(1705)による触覚フィードバックであるが、入力デバイスとしては役立たない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(1709)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(1710)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、2次元的な視覚的な出力、又は、立体出力のような手段による3以上の次元の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。
【0209】
[0228] コンピュータ・システム(1700)はまた、CD/DVD等の媒体(1721)を使用するCD/DVD ROM/RW(1720)を含む光媒体(1721)、サム・ドライブ(1722)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(1723)、テープ及びフロッピー・ディスク(不図示)等のレガシー磁気媒体、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0210】
[0229] 当業者は、ここで開示される対象事項に関連して使用されているような用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しないことも理解するはずである。
【0211】
[0230] コンピュータ・システム(1700)は、1つ以上の通信ネットワーク(1755)へのインターフェースを含むことも可能である。ネットワークは、例えば、無線、有線、光学的なものであるとすることが可能である。ネットワークは、更に、ローカル、ワイド・エリア、メトロポリタン、車両及び産業、リアルタイム、遅延耐性などに関するものであるとすることが可能である。ネットワークの例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両及び産業などを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(1749)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とすし(例えば、コンピュータ・システム(1700)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(1700)のコアに統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(1700)は、他のエンティティと通信することが可能である。このような通信は、片-方向受信専用(例えば、放送テレビ)、片-方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は双-方向、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0212】
[0231] 前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(1700)のコア(1740)に取り付けられることが可能である。
【0213】
[0232] コア(1740)は、1つ以上の中央処理ユニット(CPU)(1741)、グラフィックス処理デバイス(GPU)(1742)、フィールド・プログラマブル・ゲート・エリア(FPGA)(1743)の形式における特殊プログラマブル処理デバイス、特定のタスク用のハードウェア・アクセラレータ(1744)、グラフィックス・アダプタ(1750)等を含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(1745)、ランダム・アクセス・メモリ(1746)、内部大容量ストレージ・デバイス(例えば、内的なユーザー・アクセス不能ハード・ドライブ、SSD等)(1747)と共に、システム・バス(1748)を介して接続されることが可能である。幾つかのコンピュータ・システムでは、システム・バス(1748)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である可能性がある。周辺デバイスは、コアのシステム・バス(1748)に直接取り付けられるか、又は周辺バス(1749)を介して取り付けられることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。一例では、画面(1710)は、グラフィックス・アダプタ(1750)に接続されることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0214】
[0233] CPU(1741)、GPU(1742)、FPGA(1743)、及びアクセラレータ(1744)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(1745)又はRAM(1746)に格納されることが可能である。一時的なデータはRAM(1746)に格納されることが可能である一方、永続的なデータは例えば内的な大容量ストレージ(1747)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで可能になる可能性があり、キャッシュ・メモリは、1つ以上のCPU(1741)、GPU(1742)、大容量ストレージ(1747)、ROM(1745)、RAM(1746)等と密接に関連付けることが可能である。
【0215】
[0234] コンピュータ読み取り可能な媒体は、様々なコンピュータで実現される動作を実行するためのコンピュータ・コードをそこに有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0216】
[0235] 例示として、限定ではなく、アーキテクチャ(1700)、具体的にはコア(1740)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(1747)又はROM(1745)のような非一時的な性質のコア(1740)の特定のストレージと同様に、上述したようなユーザー・アクセス可能な大容量ストレージに関連する媒体であるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(1740)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(1746)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(1740)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(1744))内に配線された又はその他の方法で具現化されたロジックの結果として機能を提供することが可能であり、そのロジックは、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はそれと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはそれら双方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0217】
[0236] 本開示は、幾つかの例示的な実施形態を説明しているが、本開示の範囲内に該当する、変更、置換、及び種々の代替的な均等物が存在する。従って、当業者は、本願で明示的には図示も説明もされていないが、本開示の原理を具体化し、従ってその精神及び範囲内にある多くのシステム及び方法を考え出すことが可能であろう、ということは理解されるであろう。
【0218】
[0237] <付記>
(付記1)
メッシュ圧縮解除方法であって:
少なくとも第1のアレイと第2のアレイを、3次元(3D)メッシュ・フレームを運ぶビットストリームからデコードするステップであって、前記第1のアレイは、頂点走査順序に従って前記3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含み、前記第2のアレイは、前記頂点走査順序に従って前記頂点のそれぞれの座標を含んでいる、ステップ;
少なくとも前記頂点のそれぞれの接続値と前記頂点のそれぞれの座標とに基づいて、前記頂点を接続するエッジを決定するステップ;及び
少なくとも前記頂点の座標と前記エッジに基づいて前記3Dメッシュ・フレームを再構成するステップ;
を含む方法。
【0219】
(付記2)
付記1に記載の方法において、少なくとも前記第1のアレイと前記第2のアレイは2次元(2D)アレイである、方法。
【0220】
(付記3)
付記2に記載の方法において、前記少なくとも第1のアレイと第2のアレイをデコードするステップは:
画像デコーダ及び/又はビデオ・デコーダを利用して、前記少なくとも第1のアレイと第2のアレイをデコードするステップを含む、方法。
【0221】
(付記4)
付記1に記載の方法において、前記頂点の接続値は、前記頂点の接続パターン・インデックス及び前記頂点の価数値のうちの少なくとも1つを含む、方法。
【0222】
(付記5)
付記1に記載の方法において、前記頂点の接続値は、前記頂点の推定された接続値に対する頂点の接続差分である、方法。
【0223】
(付記6)
付記5に記載の方法において:
前記頂点の推定された接続値を、接続推定ルールに従って前記頂点の座標から生成するステップ;
を更に含む、方法。
【0224】
(付記7)
付記6に記載の方法において、前記エッジを決定するステップは、更に:
前記頂点の接続差分を、前記推定された接続値に結合することによって、回復された接続値を生成するステップ;及び
前記回復された接続値に基づいて、前記頂点を接続するエッジを決定するステップ;
を含む、方法。
【0225】
(付記8)
付記6に記載の方法において、前記頂点の座標は、3D座標及び/又はuv座標のうちの少なくとも1つを含む、方法。
【0226】
(付記9)
付記6に記載の方法において、更に:
前記ビットストリームで運ばれる信号を受信するステップであって、前記信号は、複数の接続推定ルールの中から選択された接続推定ルールを示している、ステップ;
を含む方法。
【0227】
(付記10)
処理回路を含むメッシュ圧縮解除装置であって、前記処理回路は:
少なくとも第1のアレイと第2のアレイを、3次元(3D)メッシュ・フレームを運ぶビットストリームからデコードするステップであって、前記第1のアレイは、頂点走査順序に従って前記3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含み、前記第2のアレイは、前記頂点走査順序に従って前記頂点の座標を含む、ステップ;
少なくとも前記頂点のそれぞれの接続値と前記頂点の座標とに基づいて、前記頂点を接続するエッジを決定するステップ;及び
少なくとも前記頂点の座標と前記エッジに基づいて前記3Dメッシュ・フレームを再構成するステップ;
を行うように構成されている、装置。
【0228】
(付記11)
付記10に記載の装置において、少なくとも前記第1のアレイと前記第2のアレイは2次元(2D)アレイである、装置。
【0229】
(付記12)
付記11に記載の装置において、前記処理回路は:
画像デコーダ及び/又はビデオ・デコーダを利用して、前記少なくとも第1のアレイと第2のアレイをデコードするように構成されている、装置。
【0230】
(付記13)
付記10に記載の装置において、前記頂点の接続値は、前記頂点の接続パターン・インデックス及び前記頂点の価数値のうちの少なくとも1つを含む、装置。
【0231】
(付記14)
付記10に記載の装置において、前記頂点の接続値は、前記頂点の推定された接続値に対する頂点の接続差分である、装置。
【0232】
(付記15)
付記14に記載の装置において、前記処理回路は:
前記頂点の推定された接続値を、接続推定ルールに従って前記頂点の座標から生成するように構成されている、装置。
【0233】
(付記16)
付記15に記載の装置において、前記処理回路は:
前記頂点の接続差分を、前記推定された接続値に結合することによって、回復された接続値を生成するステップ;及び
前記回復された接続値に基づいて、前記頂点を接続するエッジを決定するステップ;
を行うように構成されている、装置。
【0234】
(付記17)
付記15に記載の装置において、前記頂点の座標は、3D座標及び/又はuv座標のうちの少なくとも1つを含む、装置。
【0235】
(付記18)
付記15に記載の装置において、前記処理回路は:
前記ビットストリームで運ばれる信号を受信するステップであって、前記信号は、複数の接続推定ルールの中から選択された接続推定ルールを示している、ステップを行うように構成されている、装置。
【0236】
(付記19)
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、少なくとも1つのプロセッサにより実行されると、前記少なくとも1つのプロセッサに:
少なくとも第1のアレイと第2のアレイを、3次元(3D)メッシュ・フレームを運ぶビットストリームからデコードするステップであって、前記第1のアレイは、頂点走査順序に従って前記3Dメッシュ・フレーム内の頂点のそれぞれの接続値を含み、前記第2のアレイは前記頂点のそれぞれの座標を含む、ステップ;
少なくとも前記頂点のそれぞれの接続値と前記頂点の座標とに基づいて、前記頂点を接続するエッジを決定するステップ;及び
少なくとも前記頂点の座標と前記エッジに基づいて前記3Dメッシュ・フレームを再構成するステップ;
を実行させる、記憶媒体。
【0237】
(付記20)
付記19に記載の非一時的なコンピュータ読み取り可能な記憶媒体において、少なくとも前記第1のアレイと前記第2のアレイは2次元(2D)アレイであり、前記命令は、前記少なくとも1つのプロセッサに:
画像デコーダ及び/又はビデオ・デコーダを利用して、前記少なくとも第1のアレイと第2のアレイをデコードするステップを実行させる、記憶媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図10E
図11
図12A
図12B
図12C
図12D
図13
図14A
図14B
図14C
図14D
図14E
図14F
図15
図16
図17