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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-06
(54)【発明の名称】メッシュ頂点変位コーディング
(51)【国際特許分類】
   H04N 19/597 20140101AFI20250130BHJP
   H04N 19/91 20140101ALI20250130BHJP
【FI】
H04N19/597
H04N19/91
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024544995
(86)(22)【出願日】2023-05-11
(85)【翻訳文提出日】2024-07-29
(86)【国際出願番号】 US2023021907
(87)【国際公開番号】W WO2023249743
(87)【国際公開日】2023-12-28
(31)【優先権主張番号】63/354,088
(32)【優先日】2022-06-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/314,884
(32)【優先日】2023-05-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】チャオ・フアン
(72)【発明者】
【氏名】トゥオン・グエン・カン
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】ジュン・ティアン
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159ME11
5C159PP03
5C159PP13
5C159UA02
5C159UA05
(57)【要約】
方法および装置が、1つまたは複数のプロセッサに、少なくとも1つの3次元(3D)ビジュアルコンテンツのボリュメトリックデータに対応する入力メッシュを取得させ、ボリュメトリックデータに対応する入力メッシュからメッシュシーケンスの曲線を導出させ、曲線はメッシュシーケンスの入力メッシュの複数の頂点を含み、細分割された頂点を追加することによってメッシュシーケンスの導出された曲線を細分割させ、複数の細分割された頂点の各々について変位ベクトルを計算させ、細分割された頂点のうちの少なくとも1つからの変位ベクトルに基づいてボリュメトリックデータをエントロピーコーディングさせる、ように構成されたコンピュータコードを含む。
【特許請求の範囲】
【請求項1】
ビデオ符号化のための方法であって、前記方法は、少なくとも1つのプロセッサによって実行され、
少なくとも1つの3次元(3D)ビジュアルコンテンツのボリュメトリックデータに対応する入力メッシュを取得するステップと、
前記ボリュメトリックデータに対応する前記入力メッシュからメッシュシーケンスの曲線を導出するステップであって、前記曲線は前記入力メッシュの複数の頂点を含む、ステップと、
複数の細分割された頂点を追加することによって前記メッシュシーケンスの前記導出された曲線を細分割するステップと、
前記複数の細分割された頂点の各々について変位ベクトルを計算するステップと、
前記細分割された頂点のうちの少なくとも1つからの前記変位ベクトルに基づいて前記ボリュメトリックデータをエントロピー符号化するステップと
を含む、ビデオ符号化のための方法。
【請求項2】
前記導出された曲線を細分割するステップが、前記導出された曲線を間引きすることによって間引き曲線を形成し、前記複数の細分割された頂点を前記間引き曲線に追加するステップを含む、
請求項1に記載のビデオ符号化のための方法。
【請求項3】
前記細分割された頂点のうちの前記少なくとも1つからの前記変位ベクトルが、前記間引き曲線上の点からのものである、
請求項2に記載のビデオ符号化のための方法。
【請求項4】
前記ボリュメトリックデータをエントロピー符号化するステップが、前記間引き曲線の前記複数の細分割された頂点のうちの少なくとも1つが前記曲線から変位していないと決定するステップにさらに基づいている、
請求項3に記載のビデオ符号化のための方法。
【請求項5】
前記ボリュメトリックデータをエントロピー符号化するステップが、詳細レベル(LOD)でコーディングコンテキストをシグナリングすると決定するステップを含む、
請求項4に記載のビデオ符号化のための方法。
【請求項6】
前記LODにおける前記コーディングコンテキストが、前記細分割された頂点のうちの前記少なくとも1つからの前記変位ベクトルの係数のうちの少なくとも1つがゼロであることを示す、
請求項5に記載のビデオ符号化のための方法。
【請求項7】
前記ボリュメトリックデータをエントロピー符号化するステップが、前記細分割された頂点のうちの前記少なくとも1つから前記変位ベクトルの非ゼロ係数の位置をシグナリングするステップを含む、
請求項6に記載のビデオ符号化のための方法。
【請求項8】
前記ボリュメトリックデータをエントロピー符号化するステップが、木構造がシグナリングされるかどうかを決定するステップを含む、
請求項4に記載のビデオ符号化のための方法。
【請求項9】
前記ボリュメトリックデータをエントロピー符号化するステップが、
ゼロツリーの子孫ではなく、特定の詳細レベル(LOD)にないゼロ係数のうちのゼロツリーのルートであるゼロ係数の割合を決定することに基づいて、ゼロツリーのパーセンテージを決定するステップと、
そのうちの少なくとも1つが前記特定のLODである複数のLODのコーディングコンテキストを指定するステップと
を含む、請求項8に記載のビデオ符号化のための方法。
【請求項10】
前記特定のLODが、LOD0および最後のLODのうちの1つである、
請求項9に記載のビデオ符号化のための方法。
【請求項11】
ビデオ符号化のための装置であって、前記装置は、
コンピュータプログラムコードを格納するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、
を備え、
前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、少なくとも1つの3次元(3D)ビジュアルコンテンツのボリュメトリックデータに対応する入力メッシュを取得させるように構成された取得コードと、
前記少なくとも1つのプロセッサに、前記ボリュメトリックデータに対応する前記入力メッシュからメッシュシーケンスの曲線を導出させるように構成された導出コードであって、前記曲線は、前記入力メッシュの複数の頂点を含む、導出コードと、
前記少なくとも1つのプロセッサに、複数の細分割された頂点を追加することによって前記メッシュシーケンスの前記導出された曲線を細分割させるように構成された細分割コードと、
前記少なくとも1つのプロセッサに、前記複数の細分割された頂点の各々について変位ベクトルを計算させるように構成された計算コードと、
前記少なくとも1つのプロセッサに、前記細分割された頂点のうちの少なくとも1つからの前記変位ベクトルに基づいて前記ボリュメトリックデータをエントロピー符号化させるように構成されたエントロピー符号化コードと、
を含む、
ビデオ符号化のための装置。
【請求項12】
前記導出された曲線を細分割することが、前記導出された曲線を間引きすることによって間引き曲線を形成し、前記複数の細分割された頂点を前記間引き曲線に追加することを含む、
請求項11に記載のビデオ符号化のための装置。
【請求項13】
前記細分割された頂点のうちの前記少なくとも1つからの前記変位ベクトルが、前記間引き曲線上の点からのものである、
請求項12に記載のビデオ符号化のための装置。
【請求項14】
前記ボリュメトリックデータをエントロピー符号化することが、前記間引き曲線の前記複数の細分割された頂点のうちの少なくとも1つが前記曲線から変位していないと決定することにさらに基づいている、
請求項13に記載のビデオ符号化のための装置。
【請求項15】
前記ボリュメトリックデータをエントロピー符号化することが、詳細レベル(LOD)でコーディングコンテキストをシグナリングすると決定することを含む、
請求項14に記載のビデオ符号化のための装置。
【請求項16】
前記LODにおける前記コーディングコンテキストが、前記細分割された頂点のうちの前記少なくとも1つからの前記変位ベクトルの係数のうちの少なくとも1つがゼロであることを示す、
請求項15に記載のビデオ符号化のための装置。
【請求項17】
前記ボリュメトリックデータをエントロピー符号化することが、前記細分割された頂点のうちの前記少なくとも1つから前記変位ベクトルの非ゼロ係数の位置をシグナリングすることを含む、
請求項16に記載のビデオ符号化のための装置。
【請求項18】
前記ボリュメトリックデータをコーディングすることが、木構造がシグナリングされるかどうかを決定することを含む、
請求項14に記載のビデオ符号化のための装置。
【請求項19】
前記ボリュメトリックデータをエントロピー符号化することが、
ゼロツリーの子孫ではなく、特定の詳細レベル(LOD)にないゼロ係数のうちのゼロツリーのルートであるゼロ係数の割合を決定することに基づいて、ゼロツリーのパーセンテージを決定することと、
そのうちの少なくとも1つが前記特定のLODである複数のLODのコーディングコンテキストを指定することと
を含む、請求項18に記載のビデオ符号化のための装置。
【請求項20】
コンピュータに、
少なくとも1つの3次元(3D)ビジュアルコンテンツのボリュメトリックデータに対応する入力メッシュを取得させ、
前記ボリュメトリックデータに対応する前記入力メッシュからメッシュシーケンスの曲線を導出させ、前記曲線は前記入力メッシュの複数の頂点を含み、
複数の細分割された頂点を追加することによって前記メッシュシーケンスの前記導出された曲線を細分割させ、
前記複数の細分割された頂点の各々について変位ベクトルを計算させ、
前記細分割された頂点のうちの少なくとも1つからの前記変位ベクトルに基づいて前記ボリュメトリックデータをエントロピー符号化させる、
プログラムを格納した、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年6月21日に出願された米国仮特許出願第63/354,088号および2023年5月10日に出願された米国特許出願第18/314,884号の優先権を主張し、それらの全体が参照により本明細書に明示的に組み込まれる。
【0002】
本開示は、細分割されたメッシュ頂点の変位を符号化するためのメッシュ圧縮技術を含む高度なビデオコーディング技術のセットに関する。
【背景技術】
【0003】
3Dキャプチャ、モデリング、およびレンダリングの進歩は、いくつかのプラットフォームおよびデバイスにわたって3Dコンテンツの普遍的な存在を促進している。今日、ある大陸で赤ちゃんの第一歩を取り込み、祖父母が別の大陸で見て(そしておそらく交流して)、その子供と十分に没入した体験を楽しむことが可能である。それにもかかわらず、そのような臨場感を実現するために、モデルはますます洗練されてきており、かなりの量のデータがそれらのモデルの作成および消費に関連している。
【0004】
VMeshは、静的および動的メッシュを圧縮するための進行中のMPEG規格である。VMeshは、入力メッシュを単純化されたベースメッシュと残差メッシュとに分離する。ベースメッシュは高品質で符号化され得、残りのメッシュは、細分割表面フィッティングおよび変位符号化を用いて符号化され得、局所的特性を利用する。
【0005】
しかしながら、複雑なメッシュは、テクスチャマップを関連付けるために複数のインスタンスに関する情報を含むことが多い。この情報は、符号化時に利用可能である。一方、メッシュは、その特性に基づいていくつかの部分にセグメント化され得る。例えば、人間のメッシュの顔領域により多くのポリゴンが存在する。
【0006】
よって、すべてのインスタンス、オブジェクト、メッシュ内の部分に適用される一定の量子化ステップサイズは大きな量子化誤差をもたらし、メッシュ領域は等しく重要ではない可能性があり、面の数はメッシュの異なる部分で大幅に変化する可能性があり、ベースメッシュは元のメッシュおよび変位よりも単純になる可能性があり、したがってビット深度の精度をあまり必要としない可能性がある。
【0007】
また、動的メッシュシーケンスは、これが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。したがって、そのようなコンテンツを格納して伝送するために効率的な圧縮技術が必要とされる。メッシュ圧縮規格IC、MESHGRID、FAMCは、常時接続性および時変ジオメトリおよび頂点属性を有する動的メッシュに対処するためにMPEGによって以前に開発された。しかしながら、これらの規格は、時変属性マップおよび接続性情報を考慮していない。DCC(デジタルコンテンツ作成)ツールは、通常、そのような動的メッシュを生成する。これに対応して、特にリアルタイム制約下で、ボリュメトリック取得技術が常時接続性動的メッシュを生成することは困難である。この種のコンテンツは、既存の規格ではサポートされていない。MPEGは、時変接続性情報および任意選択的に時変属性マップを有する動的メッシュを直接処理するための新しいメッシュ圧縮規格を開発することを計画している。
【0008】
したがって、それらの理由のいずれかのために、ビデオコーディング技術において生じたそのような問題に対する技術的解決策が望まれている。
【発明の概要】
【課題を解決するための手段】
【0009】
コンピュータプログラムコードを格納するように構成されたメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって指示されるように動作するように構成された1つまたは複数のプロセッサと、を含む方法および装置が含まれる。コンピュータプログラムは、少なくとも1つのプロセッサに、少なくとも1つの3次元(3D)ビジュアルコンテンツのボリュメトリックデータに対応する入力メッシュを取得させるように構成された取得コードと、少なくとも1つのプロセッサに、ボリュメトリックデータに対応する入力メッシュからメッシュシーケンスの曲線を導出させるように構成された導出コードであって、曲線は、入力メッシュの複数の頂点を含む、導出コードと、少なくとも1つのプロセッサに、複数の細分割された頂点を追加することによってメッシュシーケンスの導出された曲線を細分割させるように構成された細分割コードと、少なくとも1つのプロセッサに、複数の細分割された頂点の各々について変位ベクトルを計算させるように構成された計算コードと、少なくとも1つのプロセッサに、細分割された頂点のうちの少なくとも1つからの変位ベクトルに基づいてボリュメトリックデータをエントロピーコーディングさせるように構成されたコーディングコードと、をプロセッサに実施させるように構成される。
【0010】
例示的な実施形態によれば、導出された曲線を細分割することは、導出された曲線を間引きすることによって間引き曲線を形成すること、および複数の細分割された頂点を間引き曲線に追加することを含む。
【0011】
例示的な実施形態によれば、細分割された頂点のうちの少なくとも1つからの変位ベクトルは、間引き曲線上の点からのものである。
【0012】
例示的な実施形態によれば、ボリュメトリックデータをエントロピー符号化することは、間引き曲線の複数の細分割された頂点のうちの少なくとも1つが曲線から変位していないと決定することにさらに基づく。
【0013】
例示的な実施形態によれば、ボリュメトリックデータをエントロピー符号化することは、詳細レベル(LOD)でコーディングコンテキストをシグナリングすると決定することを含む。
【0014】
例示的な実施形態によれば、LODにおけるコーディングコンテキストは、細分割された頂点のうちの少なくとも1つからの変位ベクトルの係数のうちの少なくとも1つがゼロであることを示す。
【0015】
例示的な実施形態によれば、ボリュメトリックデータをエントロピー符号化することは、細分割された頂点のうちの少なくとも1つから変位ベクトルの非ゼロ係数の位置をシグナリングすることを含む。
【0016】
例示的な実施形態によれば、ボリュメトリックデータをエントロピー符号化することは、木構造がシグナリングされるかどうかを決定することを含む。
【0017】
例示的な実施形態によれば、ボリュメトリックデータをエントロピー符号化することは、ゼロツリーの子孫ではなく、特定の詳細レベル(LOD)にないゼロ係数のうちのゼロツリーのルートであるゼロ係数の割合を決定することに基づいて、ゼロツリーのパーセンテージを決定することと、そのうちの少なくとも1つが特定のLODである複数のLODのコーディングコンテキストを指定することと、を含む。
【0018】
例示的な実施形態によれば、特定のLODは、LOD0および最後のLODのうちの1つである。
【0019】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0020】
図1】実施形態による図の概略図である。
図2】実施形態による簡略化されたブロック図である。
図3】実施形態による簡略化された図である。
図4】実施形態による簡略化された図である。
図5】実施形態による簡略化された図である。
図6】実施形態による簡略化された図である。
図7】実施形態による簡略化された図である。
図8】実施形態による簡略化された図である。
図9】実施形態による簡略化された図である。
図10】実施形態による簡略フロー図である。
図11】実施形態による簡略フロー図である。
図12】実施形態による簡略フロー図である。
図13】実施形態による簡略化された図である。
図14】実施形態による簡略化された図である。
図15】実施形態による簡略化された図である。
図16】実施形態による簡略化された図である。
図17】実施形態による簡略フロー図である。
図18】実施形態による簡略フロー図である。
図19】実施形態による簡略フロー図である。
図20】実施形態による簡略フロー図である。
図21】実施形態による簡略化された図である。
図22】実施形態による簡略化された図である。
図23】実施形態による簡略フロー図である。
図24】実施形態による簡略化された図である。
【発明を実施するための形態】
【0021】
以下で説明する提案された特徴は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0022】
図1は、本開示の一実施形態による通信システム100の簡略化されたブロック図を示す。通信システム100は、ネットワーク105を介して相互接続された少なくとも2つの端末102および103を含み得る。データの単方向伝送のために、第1の端末103は、ネットワーク105を介して他方の端末102に伝送するためにローカル位置でビデオデータをコーディングし得る。第2の端末102は、ネットワーク105から他方の端末のコーディング済みビデオデータを受信し、コーディング済みデータを復号し、復元されたビデオデータを表示し得る。単方向のデータ伝送は、メディアサービング用途などでは一般的であり得る。
【0023】
図1は、例えばビデオ会議中に発生する可能性があるコーディング済みビデオの双方向伝送をサポートするために提供される端末101および104の第2の対を示す。データの双方向伝送のために、各端末101および104は、ネットワーク105を介して他方の端末に伝送するためにローカル位置で取り込んだビデオデータをコーディングし得る。各端末101および104は、他方の端末によって伝送されたコーディング済みビデオデータも受信し、コーディング済みデータを復号し、復元されたビデオデータをローカルのディスプレイデバイスに表示し得る。
【0024】
図1では、端末101、102、103および104は、サーバ、パーソナルコンピュータおよびスマートフォンとして示されてもよいが、本開示の原理はそのように限定されるものではない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器を伴う用途が考えられる。ネットワーク105は、例えば有線および/または無線通信ネットワークを含む、端末101、102、103および104の間で、コーディング済みビデオデータを伝達する、任意の数のネットワークを表す。通信ネットワーク105は、回路交換および/またはパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的では、ネットワーク105のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0025】
図2は、開示される主題の用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納などを含む他のビデオ対応アプリケーションに、等しく適用可能であり得る。
【0026】
ストリーミングシステムは、例えば圧縮されていないビデオサンプルストリーム213を作成する、例えばデジタルカメラなどのビデオソース201を含むことができるキャプチャサブシステム203を含んでもよい。そのサンプルストリーム213は、符号化済みビデオビットストリームと比較したときに高いデータボリュームとして強調されてもよく、例えば上述のようにカメラであってもよいビデオソース201に結合されたエンコーダ202によって処理されることができる。エンコーダ202は、以下でより詳細に説明するように、開示される主題の態様を可能にするか、または実施するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。符号化済みビデオビットストリーム204は、サンプルストリームと比較してより低いデータボリュームとして強調されてもよく、将来の使用のためにストリーミングサーバ205に格納されることができる。1つまたは複数のストリーミングクライアント212および207は、ストリーミングサーバ205にアクセスして、符号化済みビデオビットストリーム204のコピー208および206を取り出すことができる。クライアント212は、符号化済みビデオビットストリームの着信コピー208を復号し、ディスプレイ209または他のレンダリングデバイス(図示せず)上にレンダリングすることができる送出ビデオサンプルストリーム210を作成するビデオデコーダ211を含むことができる。一部のストリーミングシステムでは、ビデオビットストリーム204、206および208は、特定のビデオコーディング/圧縮規格に従って符号化されることができる。これらの規格の例は、上記で言及されており、本明細書でさらに説明される。
【0027】
図3は、本発明の一実施形態によるビデオデコーダ300の機能ブロック図であり得る。
【0028】
受信器302は、デコーダ300によって復号される1つまたは複数のコーデックビデオシーケンスを受信し得、同じまたは別の実施形態では、一度に1つのコーディング済みビデオシーケンスであり、各コーディング済みビデオシーケンスの復号は他のコーディング済みビデオシーケンスから独立している。コーディング済みビデオシーケンスは、チャネル301から受信され得、チャネル301は、符号化済みビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る。受信器302は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えばコーディング済みオーディオデータおよび/または補助データストリームと共に、符号化済みビデオデータを受信し得る。受信器302は、コーディング済みビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ303が、受信器302とエントロピーデコーダ/パーサ304(以降、「パーサ」)との間に結合され得る。受信器302が十分な帯域幅と制御性を持つ記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信している場合、バッファ303は必要とされなくてもよく、または小さい場合がある。インターネットなどのベスト・エフォート・パケット・ネットワークで使用する場合、バッファ303が必要とされる場合があり、比較的大きくすることができ、有利には適応サイズとすることができる。
【0029】
ビデオデコーダ300は、エントロピーコーディング済みビデオシーケンスからシンボル313を再構築するためのパーサ304を含み得る。これらのシンボルのカテゴリは、デコーダ300の動作を管理するために使用される情報、および潜在的に、デコーダの不可欠な部分ではないが、それに結合されることができるディスプレイ312などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。パーサ304は、受信したコーディング済みビデオシーケンスを解析/エントロピー復号し得る。コーディング済みビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性を伴うまたは伴わない算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサ304は、コーディング済みビデオシーケンスから、そのグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。エントロピーデコーダ/パーサはまた、変換係数、量子化器パラメータ値、動きベクトルなどのコーディング済みビデオシーケンス情報から抽出し得る。
【0030】
パーサ304は、シンボル313を作成するために、バッファ303から受信したビデオシーケンスに対してエントロピー復号/解析動作を行い得る。パーサ304は、符号化済みデータを受信し、特定のシンボル313を選択的に復号し得る。さらに、パーサ304は、特定のシンボル313が、動き補償予測ユニット306、スケーラ/逆変換ユニット305、イントラ予測ユニット307、またはループフィルタ311に提供されるべきかどうかを決定し得る。
【0031】
シンボル313の再構築には、コーディング済みビデオピクチャまたはその一部(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)のタイプ、ならびにその他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットがどのように関与しているかは、パーサ304によって、コーディング済みビデオシーケンスから解析されたサブグループ制御情報によって制御されることができる。パーサ304と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0032】
すでに言及した機能ブロックの他に、デコーダ300は、以下で説明するように、いくつかの機能ユニットに概念的に細分割されることができる。商業的な制約の下で動作する実際の実装形態では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合させることができる。しかしながら、開示された主題を説明する目的で、以下の機能ユニットへの概念的細分割が適切である。
【0033】
第1のユニットは、スケーラ/逆変換ユニット305である。スケーラ/逆変換ユニット305は、量子化された変換係数、および使用する変換、ブロックサイズ、量子化因子、量子化スケーリングマトリクスなどを含む制御情報をパーサ304からシンボル313として受け取る。スケーラ/逆変換ユニット305は、アグリゲータ310に入力できるサンプル値を含むブロックを出力できる。
【0034】
場合によっては、スケーラ/逆変換305の出力サンプルは、イントラコーディング済みブロックに関係することがあり、すなわち、以前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックである。そのような予測情報は、イントラピクチャ予測ユニット307によって提供されることができる。場合によっては、イントラピクチャ予測ユニット307は、現在の(部分的に再構築された)ピクチャ309からフェッチされた周囲のすでに再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ310は、場合によっては、サンプルごとに、イントラ予測ユニット307が生成した予測情報を、スケーラ/逆変換ユニット305によって提供される出力サンプル情報に追加する。
【0035】
他の場合には、スケーラ/逆変換ユニット305の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係することがある。そのような場合、動き補償予測ユニット306は、参照ピクチャメモリ308にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関係するシンボル313に従って動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ310によってスケーラ/逆変換ユニットの出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償ユニットが予測サンプルをフェッチする参照ピクチャメモリ形式内のアドレスは、動きベクトルによって制御されることができ、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル313の形式で動き補償ユニットに利用可能とすることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリからフェッチされたサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0036】
アグリゲータ310の出力サンプルは、ループフィルタユニット311における様々なループフィルタリング技術の適用を受けることができる。ビデオ圧縮技術は、コーディング済みビデオビットストリームに含まれるパラメータによって制御され、パーサ304からのシンボル313としてループフィルタユニット311で利用できるループ内フィルタ技術を含むことができるが、コーディング済みピクチャまたはコーディング済みビデオシーケンスの以前の(復号順で)部分の復号中に取得されたメタ情報に応答したり、以前に再構築およびループフィルタリングされたサンプル値に応答したりすることもできる。
【0037】
ループフィルタユニット311の出力は、レンダリングデバイス312に出力することができるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ557に格納することができるサンプルストリームとすることができる。
【0038】
完全に再構築されると、特定のコーディング済みピクチャは、将来の予測のための参照ピクチャとして使用されることができる。コーディング済みピクチャが完全に再構築され、コーディング済みピクチャが(例えば、パーサ304によって)参照ピクチャとして識別されていると、現在の参照ピクチャ309は参照ピクチャバッファ308の一部になることができ、以下のコーディング済みピクチャの再構築を開始する前に、新しい現在のピクチャメモリを再配分することができる。
【0039】
ビデオデコーダ300は、ITU-T Rec.H.265などの規格で文書化され得る所定のビデオ圧縮技術に従って復号動作を実行し得る。コーディング済みビデオシーケンスは、ビデオ圧縮技術文書または規格において指定されるように、および具体的にはそこで文書化されたプロファイルにおいて指定されるように、ビデオ圧縮技術または規格のシンタックスに準拠しているという意味において、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに従ってもよい。また、コンプライアンスのために必要なのは、コーディング済みビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構築サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディング済みビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限されることができる。
【0040】
一実施形態では、受信器302は、符号化済みビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディング済みビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切に復号するため、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ300によって使用され得る。追加のデータは、例えば、時間層、空間層、または信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式にすることができる。
【0041】
図4は、本開示の一実施形態によるビデオエンコーダ400の機能ブロック図であり得る。
【0042】
エンコーダ400は、エンコーダ400によってコーディングされるべきビデオ画像を取り込み得るビデオソース401(エンコーダの一部ではない)からビデオサンプルを受信し得る。
【0043】
ビデオソース401は、エンコーダ(303)によってコーディングされるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)であり得、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディアサービングシステムでは、ビデオソース401は、以前に準備されたビデオを格納するストレージデバイスであり得る。ビデオ会議システムでは、ビデオソース401は、ローカル画像情報をビデオシーケンスとして取り込むカメラであり得る。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0044】
一実施形態によれば、エンコーダ400は、リアルタイムで、または用途によって必要とされる他の任意の時間制約下で、ソースビデオシーケンスのピクチャをコーディング済みビデオシーケンス410にコーディングおよび圧縮し得る。適切なコーディング速度にすることが、コントローラ402の1つの機能である。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。分かりやすくするために、結合は描かれていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。当業者であれば、コントローラ402の他の機能は、それらが特定のシステム設計のために最適化されたビデオエンコーダ400に関係し得るため、容易に識別することができる。
【0045】
一部のビデオエンコーダは、当業者が「コーディングループ」として容易に認識するものにおいて動作する。過度に簡略化した説明として、コーディングループは、エンコーダ400(以降「ソースコーダ」)(符号化される入力ピクチャと参照ピクチャに基づいてシンボルを作成する役割を果たす)の符号化部分、およびシンボルを再構築して(リモート)デコーダも作成することになるサンプルデータを作成するエンコーダ400に組み込まれた(ローカル)デコーダ406で構成され得る(シンボルと符号化ビデオビットストリームとの間の任意の圧縮は、開示された主題で考慮されているビデオ圧縮技術では可逆的であるため)。再構築されたサンプルストリームは、参照ピクチャメモリ405に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビットイグザクト結果をもたらすため、参照ピクチャバッファコンテンツもまた、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えると、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネル誤りのために同期性を維持できない場合に結果として生じるドリフト)のこの基本原理は、当業者には周知である。
【0046】
「ローカル」デコーダ406の動作は、「リモート」デコーダ300の動作と同じであってよく、これは、図3に関連して上記で詳細にすでに説明されている。しかしながら、図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ408およびパーサ304によるコーディング済みビデオシーケンスへのシンボルの符号化/復号は可逆的であり得るため、チャネル301、受信器302、バッファ303、およびパーサ304を含むデコーダ300のエントロピー復号部分は、ローカルデコーダ406で完全には実施されない場合がある。
【0047】
この時点で言えることは、デコーダ内に存在する解析/エントロピー復号を除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形態で存在する必要があるということである。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略することができる。特定のエリアにおいてのみ、より詳細な説明が必要であり、以下に示される。
【0048】
その動作の一部として、ソースコーダ403は、動き補償予測コーディングを実行し得、これは、「参照フレーム」として指定された、ビデオシーケンスからの1つまたは複数の以前にコーディングされたフレームを参照して入力フレームを予測的にコーディングする。この方法において、コーディングエンジン407は、入力フレームの画素ブロックと、入力フレームへの予測参照として選択され得る参照フレームの画素ブロックとの差をコーディングする。
【0049】
ローカルビデオデコーダ406は、ソースコーダ403によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディング済みビデオデータを復号し得る。コーディングエンジン407の動作は、好適には、非可逆プロセスであり得る。コーディング済みビデオデータがビデオデコーダ(図4には示されていない)で復号され得るとき、再構築されたビデオシーケンスは、通常、多少の誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ406は、ビデオデコーダによって参照フレームに対して実行され得る復号処理を複製し、再構築された参照フレームを、例えばキャッシュであり得る参照ピクチャメモリ405に格納させ得る。このようにして、エンコーダ400は、(伝送誤りのない)遠端のビデオデコーダによって取得されることになる再構築された参照フレームとして共通のコンテンツを有する再構築された参照フレームのコピーをローカルに格納し得る。
【0050】
予測器404は、コーディングエンジン407のための予測検索を実行し得る。すなわち、コーディングすべき新しいフレームに対して、予測器404は、サンプルデータ(候補参照画素ブロックとして)、または新しいピクチャの適切な予測参照として機能し得る、参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて参照ピクチャメモリ405を検索し得る。予測器404は、適切な予測参照を見出すために、画素ブロックごとのサンプルブロックに基づいて動作し得る。場合によっては、予測器404によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ405に格納された複数の参照ピクチャから引き出された予測参照を有し得る。
【0051】
コントローラ402は、例えばビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、例えばビデオコーダであり得るソースコーダ403のコーディング動作を管理し得る。
【0052】
すべての前述の機能ユニットの出力は、エントロピーコーダ408でエントロピーコーディングを受け得る。エントロピーコーダは、例えばハフマンコーディング、可変長コーディング、算術コーディングなどの、当業者に既知の技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディング済みビデオシーケンスに変換する。
【0053】
送信器409は、エントロピーコーダ408によって作成されたコーディング済みビデオシーケンスをバッファに入れて、符号化済みビデオデータを格納することになるストレージデバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル411を介した伝送のためにそれを準備し得る。送信器409は、ソースコーダ403からのコーディング済みビデオデータを、伝送される他のデータ、例えば、コーディング済みオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0054】
コントローラ402は、エンコーダ400の動作を管理し得る。コーディング中に、コントローラ402は、コーディング済みピクチャのそれぞれに特定のコーディング済みピクチャタイプを割り当ててもよく、これは、各ピクチャに適用され得るコーディング技術に影響を及ぼす場合がある。例えば、ピクチャは、多くの場合、以下のフレームタイプのうちの1つとして割り当てられ得る。
【0055】
イントラピクチャ(Iピクチャ)は、シーケンス内の任意の他のフレームを予測のソースとして使用せずにコーディングおよび復号され得るピクチャであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュピクチャなどを含む、様々なタイプのイントラピクチャを可能にする。当業者であれば、Iピクチャのこれらの変形例ならびにそれらのそれぞれの用途および特徴を認識している。
【0056】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るピクチャであり得る。
【0057】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るピクチャであり得る。同様に、複数予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連メタデータを使用することができる。
【0058】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分割され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように、他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測を介して、または以前にコーディングされた1つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされてもよい。Bピクチャのブロックは、空間予測を介して、または以前にコーディングされた1つまたは2つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされてもよい。
【0059】
例えばビデオコーダであってもよいエンコーダ400は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行し得る。その動作において、エンコーダ400は様々な圧縮動作を実行してもよく、これには入力ビデオシーケンスで時間的および空間的冗長性を利用する予測コーディング動作が含まれる。したがって、コーディング済みビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0060】
一実施形態では、送信器409は、符号化済みビデオと共に追加のデータを伝送し得る。ソースコーダ403は、そのようなデータを、コーディング済みビデオシーケンスの一部として含み得る。追加のデータは、時間層/空間層/SNR強化層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、補足拡張情報(SEI)メッセージ、視覚ユーザビリティ情報(VUI)パラメータセットフラグメントなどを含み得る。
【0061】
図5は、全方向メディア・アプリケーション・フォーマット(OMAF)で記述された360度仮想現実(VR360)ストリーミングを可能にし得るOMAFにおける例示的なビューポート依存処理の簡略ブロックスタイルワークフロー図500を示す。
【0062】
取得ブロック501において、画像データがVR360内のシーンを表すことができる場合には、同じ時間インスタンスの複数の画像およびオーディオのデータなどのビデオデータAが取得される。処理ブロック503において、同じ時間インスタンスの画像Bは、スティッチングされること、1つもしくは複数の仮想現実(VR)角度または他の角度/視点に関して投影されたピクチャにマッピングされること、および領域ごとにパックされることのうちの1つまたは複数によって処理される。加えて、そのような処理された情報および他の情報のいずれかを示すメタデータを作成して、配信およびレンダリング処理を支援し得る。
【0063】
データDに関して、画像符号化ブロック505において、投影されたピクチャはデータEに符号化され、メディアファイルに構成され、ビューポート非依存ストリーミングでは、ビデオ符号化ブロック504において、ビデオピクチャは、例えば単層ビットストリームとしてデータEとして符号化され、データBに関して、オーディオデータはまた、オーディオ符号化ブロック502においてデータEに符号化され得る。
【0064】
データE、E、およびE、コーディング済みビットストリームFおよび/またはF全体は、(コンテンツ配信ネットワーク(CDN)/クラウド)サーバに格納され得、典型的には、配信ブロック507などで、OMAFプレーヤ520に完全に伝送され得、デコーダによって完全に復号され得、それにより、少なくとも現在のビューポートに対応する復号されたピクチャのエリアが、頭部/眼追跡ブロック508から、様々なメタデータ、ファイル再生、および向き/ビューポートメタデータ、例えば、そのデバイスのビューポート仕様に関してVR画像デバイスを通してユーザが見ることができる角度に関して、ディスプレイブロック516でユーザにレンダリングされる。VR360の明確な特徴は、任意の特定の時間にビューポートのみを表示し得、そのような特徴を利用して、ユーザのビューポートに応じた選択的配信(または推奨ビューポート時限メタデータなどの任意の他の基準)により、全方向ビデオシステムの性能を向上させ得ることである。例えば、ビューポート依存型配信は、例示的な実施形態によるタイルベースのビデオコーディングによって可能にされ得る。
【0065】
上述した符号化ブロックと同様に、例示的な実施形態によるOMAFプレーヤ520は、データF’および/またはF’ならびにメタデータのうちの1つまたは複数のファイル/セグメントカプセル化解除に関してそのような符号化の1つまたは複数のファセットを同様に逆転させ、オーディオ復号ブロック510でオーディオデータE’、ビデオ復号ブロック513でビデオデータE’、および画像復号ブロック514で画像データE’を復号して、オーディオレンダリングブロック511でのデータB’のオーディオレンダリングおよび画像レンダリングブロック515でのデータD’の画像レンダリングを進めて、向き/ビューポートメタデータなどの様々なメタデータに従ってVR360フォーマットで、ディスプレイブロック516でのディスプレイデータA’およびスピーカ/ヘッドホンブロック512でのオーディオデータA’を出力するようにし得る。様々なメタデータは、OMAFプレーヤ520のユーザによってまたはユーザのために選択され得る様々なトラック、言語、品質、ビューに応じてデータ復号およびレンダリングプロセスのうちの1つに影響を及ぼし得、本明細書に記載の処理の順序は、例示的な実施形態のために提示され、他の例示的な実施形態による他の順序で実施され得ることを理解されたい。
【0066】
図6は、6自由度メディアの取り込み/生成/(デ)コーディング/レンダリング/表示に関する点群データ(本明細書では「V-PCC」)のビュー位置および角度依存処理を有する(コーディングされた)点群データの簡略ブロックスタイルコンテンツフロープロセス図600を示す。記載された特徴は、別々に使用されてもよく、または任意の順序で組み合わされてもよく、符号化および復号などの要素は、特に図示されているように、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよく、1つまたは複数のプロセッサは、例示的な実施形態による非一時的コンピュータ可読媒体に格納されたプログラムを実行してもよいことを理解されたい。
【0067】
図600は、V-PCCによるコーディングされた点群データのストリーミングのための例示的な実施形態を示す。
【0068】
ボリュメトリックデータ取得ブロック601では、現実世界の視覚的シーンまたはコンピュータ生成の視覚的シーン(またはそれらの組み合わせ)が、一組のカメラデバイスによって取り込まれ得るか、またはコンピュータによってボリュメトリックデータとして合成され得、任意のフォーマットを有し得るボリュメトリックデータは、点群への変換ブロック602における画像処理を介して、(量子化された)点群データフォーマットに変換され得る。例えば、ボリュメトリックデータからのデータは、例示的な実施形態によれば、ボリュメトリックデータおよび任意の関連データから以下に説明する値の1つまたは複数を所望の点群フォーマットにプルすることによって点群の点の1つに変換されたエリアデータによるエリアデータであってもよい。例示的な実施形態によれば、ボリュメトリックデータは、例えば3Dデータセットの2D投影を投影し得るスライスなどの2D画像の3Dデータセットであってもよい。例示的な実施形態によれば、点群データフォーマットは、1つまたは複数の様々な空間内のデータ点の表現を含み、ボリュメトリックデータを表すために使用されてもよく、時間的冗長性などに関してサンプリングおよびデータ圧縮に関して改善を提供してもよく、例えば、x,y,zのフォーマットの点群データは、クラウドデータの複数の点の各点において、色値(例えば、RGBなど)、輝度、強度などを表し、プログレッシブ復号、ポリゴンメッシュ、直接レンダリング、2D四分木データの八分木3D表現と共に使用され得る。
【0069】
画像への投影ブロック603において、取得された点群データは、2D画像上へ投影され、かつビデオベースの点群コーディング(V-PCC)を用いて画像/ビデオピクチャとして符号化されてもよい。投影された点群データは、属性、ジオメトリ、占有マップ、および例えばとりわけ、ペインタのアルゴリズム、レイキャスティングアルゴリズム、(3D)二値空間パーティションアルゴリズムなどを用いた点群データ再構築に使用される他のメタデータで構成され得る。
【0070】
一方、シーンジェネレータブロック609において、シーンジェネレータは、例えばディレクタの意図またはユーザの好みにより、6自由度(DoF)メディアをレンダリングおよび表示するために使用されるいくつかのメタデータを生成し得る。そのような6DoFメディアは、点群コーディング済みデータ内の、または少なくともそれに応じた仮想体験に対する前後、上下、および左右の移動を可能にする追加の次元に加えて、3D軸X,Y,Z上の回転変化からのシーンの3Dビューのような360VRを含み得る。シーン記述メタデータは、コーディングされた点群データおよびVR360、ライトフィールド、オーディオなどを含む他のメディアデータから構成される1つまたは複数のシーンを定義し、図6および関連する記述に示すように、1つまたは複数のクラウドサーバおよび/またはファイル/セグメントカプセル化/カプセル化解除処理に提供され得る。
【0071】
上述したビデオおよび画像符号化と同様のビデオ符号化ブロック604および画像符号化ブロック605の後(理解されるように、オーディオ符号化も上述のように提供され得る)、ファイル/セグメントカプセル化ブロック606は、コーディングされた点群データが、ファイル再生のためのメディアファイル、または初期化セグメントのシーケンスと、1つまたは複数のビデオコンテナフォーマットなどの特定のメディアコンテナファイルフォーマットに従ってストリーミングするためのメディアセグメントとに構成されるように処理し、そのような記述は例示的な実施形態を表すなど、後述するDASHに関して使用され得る。ファイルコンテナはまた、シーンジェネレータブロック1109からなどのシーン記述メタデータをファイルまたはセグメントに含み得る。
【0072】
例示的な実施形態によれば、ファイルは、そのようなファイルがユーザまたは作成者の入力に応じて要求に対して伝送され得るように、シーン記述メタデータに応じてカプセル化されて、少なくとも1つのビュー位置および(1つまたは複数の)ビュー位置における少なくとも1つまたは複数の角度ビューをそれぞれ6DoFメディアのうちの1つまたは複数の時間に含む。さらに、例示的な実施形態によれば、そのようなファイルのセグメントは、そのようなファイルの1つまたは複数の部分、例えば、1つの視点および1つまたは複数の時間における角度を示す6DoFメディアの一部を含み得るが、これらは単なる例示的な実施形態であり、ネットワーク、ユーザ、作成者の能力および入力などの様々な条件に応じて変更され得る。
【0073】
例示的な実施形態によれば、点群データは、ビデオ符号化ブロック604および画像符号化ブロック605のうちの1つまたは複数などにおいて独立してコーディングされる複数の2D/3D領域にパーティショニングされる。次に、独立してコーディングされた点群データの各パーティションは、ファイルおよび/またはセグメント内のトラックとしてファイル/セグメントカプセル化ブロック606でカプセル化され得る。例示的な実施形態によれば、各点群トラックおよび/またはメタデータトラックは、ビュー位置/角度依存処理のためのいくつかの有用なメタデータを含み得る。
【0074】
例示的な実施形態によれば、ビュー位置/角度依存処理に有用な、ファイル/セグメントカプセル化ブロックに関してカプセル化されたファイルおよび/またはセグメントに含まれるなどのメタデータは、インデックスを有する2D/3Dパーティションのレイアウト情報、3Dボリュームパーティションを1つまたは複数の2Dパーティション(例えば、タイル/タイルグループ/スライス/サブピクチャのいずれか)に関連付ける(動的)マッピング情報、6DoF座標系上の各3Dパーティションの3D位置、代表ビュー位置/角度リスト、3Dボリュームパーティションに対応する選択ビュー位置/角度リスト、選択ビュー位置/角度に対応する2D/3Dパーティションのインデックス、各2D/3Dパーティションの品質(ランク)情報、および例えば各ビュー位置/角度に応じた各2D/3Dパーティションのレンダリング情報、のうちの1つまたは複数を含む。V-PCCプレーヤのユーザによって、またはV-PCCプレーヤのユーザのためにコンテンツ制作者によって指示されるなど、要求されたときにそのようなメタデータを呼び出すことにより、そのようなメタデータに関して所望される6DoFメディアの特定の部分に関してより効率的な処理を可能にし得、それにより、V-PCCプレーヤは、そのメディアの未使用部分を配信するのではなく、他の部分よりも6DoFメディアの部分にフォーカスされた高品質の画像を配信し得る。
【0075】
ファイル/セグメントカプセル化ブロック606から、ファイルまたはファイルの1つもしくは複数のセグメントは、配信機構(例えば、HTTP上のダイナミック・アダプティブ・ストリーミング(DASH))を使用して、V-PCCプレーヤ625およびクラウドサーバブロック607などのクラウドサーバのいずれかに直接配信され得、クラウドサーバは、ファイルから1つもしくは複数のトラックおよび/または1つもしくは複数の特定の2D/3Dパーティションを抽出することができ、複数のコーディングされた点群データを1つのデータにマージし得る。
【0076】
位置/視野角追跡ブロック608などのデータによれば、現在の視野位置および角度がクライアントシステムにおいて6DoF座標系で定義されている場合、クラウドサーバブロック607において、ビュー位置/角度メタデータは、ファイル/セグメントカプセル化ブロック606から配信されるか、またはクラウドサーバにすでにあるファイルまたはセグメントから他の方法で処理されてもよく、その結果、クラウドサーバは、例えばV-PCCプレーヤ625を有するクライアントシステムからのメタデータに応じて、適切なパーティションをストアファイルから抽出し、それらを(必要に応じて)マージし得、抽出されたデータは、ファイルまたはセグメントとしてクライアントに配信されることができる。
【0077】
そのようなデータに関して、ファイル/セグメントカプセル化解除ブロック615では、ファイルカプセル化解除器が、ファイルまたは受信されたセグメントを処理し、コーディングされたビットストリームを抽出し、メタデータを解析し、ビデオ復号および画像復号ブロック610および611では、コーディングされた点群データが、次いで、点群再構築ブロック612で、点群データに復号および再構築され、再構築された点群データは、ディスプレイブロック614で表示されることができ、および/またはシーンジェネレータブロック609に従って、シーン記述データに関してシーン構成ブロック613における1つまたは複数の様々なシーン記述に応じて最初に構成され得る。
【0078】
上記を考慮して、そのような例示的なV-PCCフローは、複数の2D/3Dエリアについての記載されたパーティショニング能力、単一の適合コーディング済みビデオビットストリームへのコーディング済み2D/3Dパーティションの圧縮ドメインアセンブリの能力、および適合コーディング済みビットストリームへのコーディング済みピクチャのコーディング済み2D/3Dのビットストリーム抽出能力のうちの1つまたは複数を含むV-PCC規格に対する利点を表し、そのようなV-PCCシステムサポートは、上述のメタデータのうちの1つまたは複数を搬送するメタデータを含む機構をサポートするためにVVCビットストリームのためのコンテナ形成を含むことによってさらに改善される。
【0079】
その観点から、以下でさらに説明する例示的な実施形態によれば、例えば最初に得られたメッシュとしての「メッシュ」または「入力メッシュ」という用語は、ボリュメトリックオブジェクトの表面を説明する1つまたは複数のポリゴンの構成を示す。各ポリゴンは、3D空間内のその頂点と、頂点がどのように接続されているかの情報とによって定義され、接続性情報と呼ばれる。任意選択で、色、法線などの頂点属性が、メッシュ頂点に関連付けられてもよい。属性はまた、メッシュを2D属性マップでパラメータ化するマッピング情報を利用することによって、メッシュの表面に関連付けられてもよい。そのようなマッピングは、UV座標またはテクスチャ座標と呼ばれ、メッシュ頂点に関連付けられたパラメトリック座標のセットによって記述され得る。2D属性マップは、テクスチャ、法線、変位などの高解像度属性情報を格納するために使用される。そのような情報は、例示的な実施形態によるテクスチャマッピングおよびシェーディングなどの様々な目的に使用され得る。
【0080】
それにもかかわらず、動的メッシュシーケンスは、これが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。したがって、そのようなコンテンツを格納して伝送するために効率的な圧縮技術が必要とされる。メッシュ圧縮規格IC、MESHGRID、FAMCは、常時接続性および時変ジオメトリおよび頂点属性を有する動的メッシュに対処するためにMPEGによって以前に開発された。しかしながら、これらの規格は、時変属性マップおよび接続性情報を考慮していない。DCC(デジタルコンテンツ作成)ツールは、通常、そのような動的メッシュを生成する。これに対応して、特にリアルタイム制約下で、ボリュメトリック取得技術が常時接続性動的メッシュを生成することは困難である。この種のコンテンツは、既存の規格ではサポートされていない。本明細書の例示的な実施形態によれば、時変接続性情報および任意選択的に時変属性マップを有する動的メッシュを直接処理するための新しいメッシュ圧縮規格の態様が記載されており、この規格は、リアルタイム通信、ストレージ、自由視点ビデオ、ARおよびVRなどの様々なアプリケーションの非可逆および可逆圧縮を対象とする。ランダムアクセスやスケーラブル/プログレッシブコーディングなどの機能も考えられる。
【0081】
図7は、2Dアトラスサンプリングベースの方法などのための1つの動的メッシュ圧縮の例示的なフレームワーク700を表す。入力メッシュ701の各フレームは、追跡、再メッシュ化、パラメータ化、ボクセル化などの一連の動作によって前処理されることができる。なお、これらの動作はエンコーダのみとすることができ、これは、それらが復号プロセスの一部ではない可能性があることを意味し、そのような可能性は、エンコーダのみに0を示し、他に1を示すなどのフラグによってメタデータでシグナリングされてもよい。その後、2D UVアトラス702を有するメッシュを取得することができ、メッシュの各頂点は、2Dアトラス上の1つまたは複数の関連するUV座標を有する。次いで、メッシュは、2Dアトラス上でサンプリングすることによって、ジオメトリマップおよび属性マップを含む複数のマップに変換されることができる。次に、これらの2Dマップは、HEVC、VVC、AV1、AVS3などのビデオ/画像コーデックによってコーディングされることができる。デコーダ703側では、復号された2Dマップからメッシュが再構築されることができる。任意の後処理およびフィルタリングを再構築されたメッシュ704に適用することもできる。メタデータは、3Dメッシュ再構築を目的としてデコーダ側にシグナリングされてもよいことに留意されたい。境界頂点のuvおよびxyz座標を含むチャート境界情報を、ビットストリーム内で予測、量子化、およびエントロピーコーディングすることができることに留意されたい。量子化ステップサイズは、品質とビットレートとの間のトレードオフのためにエンコーダ側で構成されることができる。
【0082】
いくつかの実装形態では、3Dメッシュはいくつかのセグメント(またはパッチ/チャート)にパーティショニングされることができ、1つまたは複数の3Dメッシュセグメントは、例示的な実施形態による「3Dメッシュ」であると考えることができる。各セグメントは、それらのジオメトリ、属性、および接続性情報と関連付けられた接続頂点のセットから構成される。図8のボリュメトリックデータの例800に示すように、上述の2D UVアトラス702ブロックなどの、3Dメッシュセグメントから2DチャートにマッピングするUVパラメータ化プロセス802は、1つまたは複数のメッシュセグメント801を2D UVアトラス804内の2Dチャート803にマッピングする。メッシュセグメント内の各頂点(v)には、2D UVアトラス内の2D UV座標が割り当てられる。2Dチャート内の頂点(v)は、それらの3D対応物として接続構成要素を形成することに留意されたい。各頂点のジオメトリ、属性、および接続性情報を、それらの3D対応物からも同様に継承することができる。例えば、頂点vが頂点v,v,v,vに直接接続しているという情報を示してもよく、他の各頂点の情報も同様に示してもよい。さらに、そのような2Dテクスチャメッシュは、例示的な実施形態によれば、色情報などの情報を、各三角形のパッチ、例えば1つの「パッチ」としてのv,v,vなどによるパッチごとにさらに示し得る。
【0083】
例えば、図8の例800の特徴に加えて、3Dメッシュセグメント801を複数の別々の2Dチャート901および902にマッピングすることもできる図9の例900を参照されたい。この場合、3Dの頂点は、2D UVアトラスの複数の頂点に対応することができる。図9に示すように、同じ3Dメッシュセグメントは、2D UVアトラスにおいて、図8のような単一のチャートの代わりに、複数の2Dチャートにマッピングされる。例えば、3D頂点vおよびvはそれぞれ、2つの2D対応関係v,v1’およびv,v4’を有する。よって、3Dメッシュの一般的な2D UVアトラスは、図14に示すように複数のチャートで構成されてよく、各チャートは、それらの3Dジオメトリ、属性、および接続性情報に関連付けられた複数の(通常は3つ以上の)頂点を含んでもよい。
【0084】
図9は、境界頂点B,B,B,B,B,B,B,Bを有するチャート内の導出された三角測量を示す例903を示す。そのような情報が提示されると、任意の三角測量法を適用して(境界頂点およびサンプリングされた頂点を含む)頂点間の接続性を作成することができる。例えば、各頂点について、最も近い2つの頂点を見つける。または、すべての頂点について、設定された試行回数の後に最小数の三角形が達成されるまで、三角形を連続的に生成する。例903に示すように、一般に境界頂点に最も近く、他の三角形と共有されてもされなくてもよい独自の寸法を有する、様々な規則的な形状の繰り返し三角形および様々な異形三角形が存在する。接続性情報は、明示的なシグナリングによって再構築されることもできる。暗黙的なルールによってポリゴンを復元することができない場合、エンコーダは、例示的な実施形態に従ってビットストリーム内の接続性情報をシグナリングすることができる。
【0085】
境界頂点B,B,B,B,B,B,B,Bは、2D UV空間内に定義される。境界エッジは、そのエッジが1つの三角形にのみに現れるかどうかをチェックすることによって決定されることができる。以下の境界頂点の情報は重要であり、例示的な実施形態によるビットストリームでシグナリングされるべきであり、情報は、ジオメトリ情報、例えば、現在2D UVパラメトリック形式であっても3D XYZ座標、および2D UV座標である。
【0086】
図9に示すように、3Dの境界頂点が2D UVアトラスの複数の頂点に対応する場合、3D XUZから2D UVへのマッピングは1対複数とすることができる。したがって、マッピング関数を示すためにUV対XYZ(またはUV2XYZと呼ばれる)インデックスをシグナリングすることができる。UV2XYZは、各2D UV頂点を3D XYZ頂点に対応させるインデックスの1D配列であってもよい。
【0087】
例示的な実施形態によれば、メッシュ信号を効率的に表すために、メッシュ頂点のサブセットが、それらの間の接続性情報と共に最初にコーディングされてもよい。元のメッシュでは、元のメッシュからサブサンプルされるため、これらの頂点間の接続は存在しない場合がある。頂点間の接続性情報をシグナリングする方法は様々であり、したがって、そのようなサブセットはベースメッシュまたはベース頂点と呼ばれる。
【0088】
例示的な実施形態によれば、動的メッシュ圧縮のためにいくつかの方法が実施され、上述のエッジベースの頂点予測フレームワークの一部であり、ベースメッシュが最初にコーディングされ、次いでベースメッシュのエッジからの接続性情報に基づいてより多くの追加の頂点が予測される。方法は、個別に適用されても、任意の形態の組み合わせによって適用されてもよいことに留意されたい。
【0089】
例えば、図10の予測モード例フローチャート1001のための頂点グループ化を考慮されたい。S201において、メッシュ内の頂点を取得してもよく、S202において、予測目的のために異なるグループに分割することができ、例えば、図9を参照されたい。一例では、分割は、S204においてパッチ/チャートパーティショニングを使用して行われる。別の例では、分割は、S205において各パッチ/チャートの下で行われる。S204に進むかS205に進むかの決定S203は、フラグなどによってシグナリングされてもよい。S205の場合、同じパッチ/チャートのいくつかの頂点は予測グループを形成し、同じ予測モードを共有するが、同じパッチ/チャートのいくつかの他の頂点は別の予測モードを使用することができる。ここで、「予測モード」は、デコーダがパッチを含むビデオコンテンツの予測を行うために使用する特定のモードであると考えることができ、予測モードを、イントラ予測モードとインター予測モードとにカテゴリ分けすることができ、各カテゴリ内で、デコーダが選択する異なる特定のモードがあり得る。例示的な実施形態によれば、各グループ、「予測グループ」は、例示的な実施形態による同じ特定のモード(例えば、特定の角度における角度モード)または同じカテゴリ予測モード(例えば、すべてのイントラ予測モードであるが、異なる角度で予測することができる)を共有し得る。S206におけるそのようなグループ化は、グループごとに含まれる頂点のそれぞれの数を決定することによって、異なるレベルで割り当てられることができる。例えば、パッチ/チャート内の走査順序に従う64個、32個、または16個の頂点ごとに、例示的な実施形態による同じ予測モードが割り当てられ、他の頂点は異なって割り当てられてもよい。各グループについて、予測モードはイントラ予測モードまたはインター予測モードとすることができる。これはシグナリングまたは割り当てされることができる。例示的なフローチャート1000によれば、メッシュフレームまたはメッシュスライスのフラグがイントラタイプを示すかどうかをチェックすることなどによって、S207においてメッシュフレームまたはメッシュスライスがイントラタイプであると決定された場合、そのメッシュフレームまたはメッシュスライス内のすべての頂点グループは、イントラ予測モードを使用するものとし、そうでない場合、S208において、イントラ予測モードまたはインター予測モードのいずれかが、その中のすべての頂点についてグループごとに選択され得る。
【0090】
さらに、イントラ予測モードを使用するメッシュ頂点のグループの場合、その頂点は、現在のメッシュの同じサブパーティション内の以前にコーディングされた頂点を使用することによってのみ予測されることができる。時として、サブパーティションは、例示的な実施形態によれば現在のメッシュ自体とすることができ、インター予測モードを使用するメッシュ頂点のグループの場合、その頂点は、例示的な実施形態によれば、別のメッシュフレームからの以前にコーディングされた頂点を使用することによってのみ予測されることができる。上記の各情報は、フラグなどによって決定およびシグナリングされ得る。前記予測特徴はS210で発生してもよく、前記予測およびシグナリングの結果はS211で発生してもよい。
【0091】
例示的な実施形態によれば、例示的なフローチャート1000および後述するフローチャート1100の頂点のグループ内の各頂点について、予測後、残差は、現在の頂点からその予測子へのシフトを示す3D変位ベクトルとなる。頂点のグループの残差は、さらに圧縮される必要がある。1つの例において、S211における変換は、そのシグナリングと共に、エントロピーコーディングの前に、頂点グループの残差に適用されることができる。変位ベクトルのグループのコーディングを処理するために、以下の方法が実施され得る。例えば、1つの方法では、変位ベクトルのグループ、いくつかの変位ベクトル、またはその成分がゼロ値のみを有する場合を適切にシグナリングする。別の実施形態では、このベクトルが非ゼロ成分を有するかどうかのフラグが変位ベクトルごとにシグナリングされ、そうでない場合、この変位ベクトルのすべての成分のコーディングをスキップすることができる。さらに、別の実施形態では、このグループが非ゼロベクトルを有するかどうかのフラグが変位ベクトルのグループごとにシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのコーディングをスキップすることができる。さらに、別の実施形態では、グループのこの成分が任意の非ゼロベクトルを有するかどうかのフラグが変位ベクトルのグループの成分ごとにシグナリングされ、そうでない場合、このグループのすべての変位ベクトルsのこの成分のコーディングをスキップすることができる。さらに、別の実施形態では、変位ベクトルのグループまたは変位ベクトルのグループの成分が変換を必要とし、そうでない場合、変換をスキップすることができ、量子化/エントロピーコーディングをグループまたはグループ成分に直接適用することができる場合のシグナリングがあり得る。さらに、別の実施形態では、このグループが変換を経る必要があるかどうかのフラグが変位ベクトルのグループごとにシグナリングされ得、そうでない場合、このグループのすべての変位ベクトルの変換コーディングをスキップすることができる。さらに、別の実施形態では、グループのこの成分が変換を経る必要があるかどうかのフラグが変位ベクトルのグループの成分ごとにシグナリングされ、そうでない場合、このグループのすべての変位ベクトルのこの成分の変換コーディングをスキップすることができる。頂点予測残差の処理に関するこの段落の上述の実施形態はまた、それぞれ異なるパッチ上で組み合わせて並列に実施され得る。
【0092】
図11は、S221において、メッシュフレームをデータユニット全体としてコーディングして取得することができ、メッシュフレームのすべての頂点または属性がそれらの間に相関を有し得ることを意味する、例示的なフローチャート1150を示す。あるいは、S222での決定に応じて、メッシュフレームは、S223で、2Dビデオまたは画像のスライスまたはタイルと同様の概念で、より小さな独立したサブパーティションに分割されることができる。コーディング済みメッシュフレームまたはコーディング済みメッシュサブパーティションには、S224で予測タイプを割り当てることができる。可能な予測タイプは、イントラコーディングタイプおよびインターコーディングタイプを含む。イントラコーディングタイプの場合、同じフレームまたはスライスの再構築された部分からの予測のみがS225で許可される。一方、インター予測タイプは、S225において、イントラメッシュフレーム予測に加えて、以前にコーディングされたメッシュフレームからの予測を可能にする。また、インター予測タイプは、PタイプやBタイプなど、より多くのサブタイプに分類されてもよい。Pタイプでは、予測目的のために1つの予測子のみを使用することができ、Bタイプでは、2つの以前にコーディングされたメッシュフレームからの2つの予測子を使用して予測子を生成してもよい。2つの予測子の加重平均は一例とすることができる。メッシュフレームが全体としてコーディングされるとき、フレームは、イントラコーディングまたはインターコーディングされたメッシュフレームと見なすことができる。インターメッシュフレームの場合、PまたはBタイプは、シグナリングを介してさらに識別され得る。あるいは、メッシュフレームがフレーム内でさらに分割してコーディングされている場合、S224で各サブパーティションの予測タイプを割り当てる。上記の各情報は、フラグなどによって決定およびシグナリングされてもよく、図10のS210およびS211と同様に、前記予測特徴はS226で発生してもよく、前記予測およびシグナリングの結果はS227で発生してもよい。
【0093】
よって、動的メッシュシーケンスは、経時的に変化するかなりの量の情報から構成され得るため、大量のデータを必要とし得るが、そのようなコンテンツを格納して伝送するために効率的な圧縮技術が必要とされ、図20および図21について上述した特徴は、同じメッシュフレーム内の以前に復号された頂点(イントラ予測)または以前にコーディングされたメッシュフレームからの以前の復号された頂点(インター予測)のいずれかを使用することにより、少なくとも改善されたメッシュ頂点3D位置予測を可能にすることにより、そのような改善された効率を表す。
【0094】
さらに、例示的な実施形態は、第2の層1302および第1の層1301などのその前の層(複数可)の再構築された頂点のうちの1つまたは複数に基づいて、メッシュの第3の層1303の変位ベクトルを生成してもよい。第2の層1302のインデックスがTであると仮定すると、第3の層1303の頂点の予測子T+1は、少なくとも現在の層または第2の層1302の再構築された頂点に基づいて生成される。そのような層ベースの予測構造の一例が図13の例1300に示されており、これは再構築ベースの頂点予測、すなわちエッジベースの補間を使用するプログレッシブ頂点予測を示しており、予測子は予測子頂点ではなく以前に復号された頂点に基づいて生成される。第1の層1301は、その頂点として、その境界に復号された頂点と、それらの復号された頂点の間の線のうちの1つに沿って補間された頂点とを有する第1のポリゴン1340によって境界付けられたメッシュであってもよい。プログレッシブコーディングが第1の層1301から第2の層1302に進むにつれて、第1の層の補間された頂点のうちの1つから第2の層1302の追加の頂点までの変位ベクトルによって追加のポリゴン1341が形成されてもよく、よって、第2の層1302の頂点の総数は第1の層1301の頂点の総数よりも多くてもよい。同様に、第3の層1303に進むと、第2の層1302の追加の頂点は、第1の層1301からの復号された頂点と共に、第1の層1301から第2の層1303に進む際に機能した復号された頂点と同様にコーディングに機能し得る、すなわち、複数の追加のポリゴンが形成されてもよい。注記として、そのようなプログレッシブコーディングを示す図13の例1360を参照すると、例1300とは異なり、例1360は、第1の層1361から第2の層1362へ、次いで第3の層1363へと進む際に、追加的に形成されたポリゴンの各々が完全に第1の層1361の境界によって形成されたポリゴン内にあり得ることを示している。
【0095】
図13の例1350にまとめて示されるそのような例1300および/または1360については、例示的な実施形態によれば、図12の例1200の例示的なフローチャート1201および1202を参照されたく、ここで、現在の層上の補間された頂点は予測値であるため、次の層上の頂点の予測子を生成するために使用される前に、そのような値を再構築する必要がある。これは、S231でベースメッシュをコーディングし、S232で頂点予測を実施し、次にS233で現在の層の復号された変位ベクトルを層1302などの頂点の予測子に追加することによって行われる。次に、この層2303の再構築された頂点は、S234でそのような層の追加の頂点値をチェックするなど、前の層(複数可)のすべての復号された頂点と共に、S235で次の層1303の予測子頂点を生成してシグナリングするために使用されることができる。このプロセスは、以下のように要約することもできる。P[t](Vi)が層t上の頂点Viの予測子を表すものとし、R[t](Vi)が層t上の再構築された頂点Viを表すものとし、D[t](Vi)が層t上の頂点Viの変位ベクトルを表すものとし、f(*)が予測子ジェネレータを表すものとし、これは特に、2つの既存の頂点の平均とすることができる。次に、各層tについて、例示的な実施形態によれば以下が存在する:
P[t](Vi)=f(R[s|s<t](Vj),R[m|m<t](Vk))、
式中
VjおよびVkは前の層の再構築された頂点であり、
R[t](Vi)=P[t](Vi)+D[t](Vi) 式(1)
である。
【0096】
次に、1つのメッシュフレーム内のすべての頂点について、それらを層0(ベースメッシュ)、層1、層2、…などに分割する。次いで、1つの層上の頂点の再構築は、前の層(複数可)上の頂点の再構築に依存する。上記では、P、RおよびDのそれぞれは、3Dメッシュ表現のコンテキスト下の3Dベクトルを表す。Dは復号された変位ベクトルであり、量子化はこのベクトルに適用されても適用されなくてもよい。
【0097】
例示的な実施形態によれば、再構築された頂点を使用する頂点予測は、特定の層にのみ適用され得る。例えば、層0および層1である。他の層の場合、頂点予測は、再構築のために変位ベクトルをそれらに追加することなく、近傍予測子頂点を依然として使用することができる。したがって、これらの他の層は、1つ前の層が再構築するのを待つことなく同時に処理されることができる。例示的な実施形態によれば、層ごとに、再構築ベースの頂点予測を選択するか、予測子ベースの頂点予測を選択するかをシグナリングすることができ、または再構築ベースの頂点予測を使用しない層(およびその後続の層)をシグナリングすることができる。
【0098】
頂点予測子が再構築された頂点によって生成される変位ベクトルについては、ウェーブレット変換などの変換をさらに実行することなく、それらに量子化を適用することができる。頂点予測子が他の予測子頂点によって生成される変位ベクトルについては、変換が必要な場合があり、それらの変位ベクトルの変換係数に量子化を適用することができる。
【0099】
よって、動的メッシュシーケンスは、これが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。したがって、そのようなコンテンツを格納して伝送するために効率的な圧縮技術が必要とされる。上述した補間ベースの頂点予測方法のフレームワークでは、1つの重要な手順は変位ベクトルを圧縮することであり、これはコーディング済みビットストリームの大部分を占め、図12の特徴は、例えばそのような圧縮を提供することによってそのような問題を軽減する。
【0100】
さらに、上述した他の例と同様に、それらの実施形態であっても、動的メッシュシーケンスは、経時的に変化するかなりの量の情報で構成され得るため、それでも大量のデータを必要とする場合があり、よって、そのようなコンテンツを格納して伝送するために効率的な圧縮技術が必要とされる。上記の2Dアトラスサンプリングベースの方法のフレームワークでは、デコーダ側でサンプリングされた頂点と境界頂点から接続性情報を推測することによって重要な利点が達成され得る。これは、復号プロセスにおける主要な部分であり、以下に説明するさらなる例の焦点である。
【0101】
例示的な実施形態によれば、ベースメッシュの接続性情報は、エンコーダ側とデコーダ側の両方の各チャートの復号された境界頂点およびサンプリングされた頂点から推測(導出)されることができる。
【0102】
上述したのと同様に、任意の三角測量法を適用して、(境界頂点およびサンプリングされた頂点を含む)頂点間の接続性を作成することができる。例示的な実施形態によれば、接続性タイプは、シーケンスヘッダやスライスヘッダなどの高レベルシンタックスでシグナリングされることができる。
【0103】
上述したように、不規則な形状の三角形メッシュのように、明示的にシグナリングすることによって接続性情報を再構築することもできる。すなわち、暗黙のルールによってポリゴンを復元することができないと決定された場合、エンコーダはビットストリーム内の接続性情報をシグナリングすることができる。また、例示的な実施形態によれば、そのような明示的なシグナリングのオーバーヘッドは、ポリゴンの境界に応じて低減され得る。
【0104】
実施形態によれば、境界頂点とサンプリングされた位置との間の接続性情報のみがシグナリングされるように決定され、サンプリングされた位置自体の間の接続性情報が推論される。
【0105】
また、実施形態のいずれかにおいて、接続性情報は、あるメッシュから別のメッシュへの(予測としての)推測された接続性との差のみがビットストリームでシグナリングされ得るように、予測によってシグナリングされ得る。
【0106】
注記として、推測された三角形の向き(三角形ごとに時計回りまたは反時計回りに推測されるなど)は、シーケンスヘッダやスライスヘッダなどの高レベルシンタックスですべてのチャートに対してシグナリングされるか、または例示的な実施形態によるエンコーダおよびデコーダによって固定(想定)されることができる。推測された三角形の向きを、チャートごとに異なってシグナリングすることもできる。
【0107】
さらなる注記として、任意の再構築されたメッシュは、元のメッシュとは異なる接続性を有し得る。例えば、元のメッシュは三角形メッシュであってもよく、再構築されたメッシュはポリゴンメッシュ(例えば、クワッドメッシュ)であってもよい。
【0108】
例示的な実施形態によれば、任意のベース頂点の接続性情報はシグナリングされなくてもよく、代わりに、ベース頂点間のエッジは、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して導出されてもよい。また、例示的な実施形態によれば、追加のメッシュ頂点の予測された頂点の補間は、ベースメッシュの導出されたエッジに基づいてもよい。
【0109】
例示的な実施形態によれば、ベース頂点の接続性情報がシグナリングされるべきか導出されるべきかをシグナリングするためにフラグが使用されてもよく、そのようなフラグを、シーケンスレベルやフレームレベルなど、ビットストリームの異なるレベルでシグナリングすることができる。
【0110】
例示的な実施形態によれば、ベース頂点間のエッジは、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用して最初に導出される。次いで、ベースメッシュ頂点の元の接続性と比較して、導出されたエッジと実際のエッジとの間の差がシグナリングされる。したがって、差分を復号した後、ベース頂点の元の接続性を復元することができる。
【0111】
一例では、導出されたエッジについて、元のエッジと比較したときに誤っていると決定された場合、そのような情報は、(このエッジを形成する頂点の対を示すことによって)ビットストリームでシグナリングされ得、元のエッジについては、導出されない場合、(このエッジを形成する頂点の対を示すことによって)ビットストリームでシグナリングされ得る。さらに、境界エッジ上の接続性および境界エッジを含む頂点補間は、内部頂点およびエッジとは別に行われてもよい。
【0112】
したがって、本明細書に記載の例示的な実施形態によって、上記で指摘した技術的問題は、これらの技術的解決策の1つまたは複数によって有利に改善され得る。例えば、動的メッシュシーケンスは、経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合があり、したがって本明細書に記載の例示的な実施形態は、そのようなコンテンツを格納して伝送するための少なくとも効率的な圧縮技術を表す。
【0113】
本明細書に記載の実施形態は、動的メッシュを有利に利用して効率的に圧縮するように細分割方式にさらに適用され得、図14の例1400には1D図が示されており、元の曲線1491は最初に間引き曲線1492で間引かれ、細分割された曲線1493で細分割される。
【0114】
図14の例1400に示すように、元の曲線1491、間引き曲線1492、細分割された曲線1493、および変位曲線1494が示されている。間引き曲線1492は、元の曲線1491と比較して間引かれる。細分割された曲線1493は、間引き曲線1492と比較して細分割される。変位曲線1494は、細分割された曲線1493と比較して変位している。
【0115】
元の曲線1491は、点1410、点1411、点1412、点1413、点1414、点1415、点1416、点1417、点1418、点1419、点1420、点1421、点1422、点1423、および点1424などのメッシュの、頂点であり得る点を含む。
【0116】
間引き曲線1492は、元の曲線1482の間引きバージョンであり、点1410、点1412、点1413、点1416、点1420、および点1424のみを含み得、それによって元の曲線1491と比較して簡略化され得る。間引きは、例示的な間引き曲線1492によって示されるように、最も少ない数の、または少なくともより少ない数の直線が元の曲線1491に近似するように、元の曲線1491の複雑さに基づいてもよい。
【0117】
細分割された曲線1493は、間引き曲線1493の細分割バージョンであり、点1410、点1412、点1413、点1416、点1420、および点1424だけでなく、点1431’、点1432’、点1433’、点1434’、点1435’、点1436’、点1437’、点1438’、点1439’、点1440’、点1441’、点1442’、点1443’、点1444’、および点1445’などのそれらの間の細分割された点を含む。細分割された点は、間引き曲線1492の各点の間に、3などの所定の数の点として追加されてもよい。なお、点の数は異なっていてもよい。細分割された点、すなわち、点1431’、点1432’、点1433’、点1434’、点1435’、点1436’、点1437’、点1438’、点1439’、点1440’、点1441’、点1442’、点1443’、点1444’、および点1445’の各々は、潜在的に、変位が適用され得る細分割された曲線1493によって表されるように、間引き曲線1492上のアンカーとして機能する。
【0118】
変位曲線1494は、細分割された曲線1493の変位バージョンであり、点1410、点1412、点1413、点1416、点1420、および点1424だけでなく、点1431”、点1432”、点1433”、点1437”、点1438”、点1439”、点1440”、点1441”、点1442”、点1443”、点1444”、および点1445”などのそれらの間の細分割されかつ変位した点、ならびに細分割された点1434’、1435’、および1436’が元の曲線1491のそれぞれの部分をすでに正確に反映しているために、細分割された曲線1493と比較して変位しなかった細分割された点1434’、1435’、および1436’も含む。点1431”、点1432”、点1433”、点1437”、点1438”、点1439”、点1440”、点1441”、点1442”、点1443”、点1444”、および点1445”は、点1431’、点1432’、点1433’、点1437’、点1438’、点1439’、点1440’、点1441’、点1442’、点1443’、点1444’、および点1445’と比較して変位し、それによって元の曲線1491を反映する。そのような反映は、本明細書に記載の様々な実施形態によって非可逆であっても可逆であってもよい。
【0119】
次に、細分割された曲線1493からの細分割されたポリラインは、元の曲線1491のより良い近似を得るために、変位曲線1494に変形される。より正確には、変位ベクトルは、もしあれば、細分割されたメッシュの各頂点について、変位曲線1494の形状が元の曲線1491の形状に可能な限り近くなるように、または本明細書で提供される態様のうちの1つまたは複数に応じて必要なだけ近くなるように計算される。細分割された曲線1493の主な利点は、元の曲線1491の忠実な近似を提供しながら、効率的な圧縮を可能にする細分割構造を有することである。
【0120】
それにもかかわらず、動的メッシュシーケンスは、これが経時的に変化するかなりの量の情報で構成され得るので、大量のデータを必要とする場合がある。図19を用いて以下に説明するような細分割ベースの方法は、動的メッシュシーケンスを圧縮するために利用されることができ、細分割されたメッシュの頂点の変位がシグナリングされるため、変位の効率的なコーディングは、動的メッシュの高性能圧縮に必要とされる。
【0121】
上述の実施形態は、インスタンスベースのメッシュコーディングにさらに適用されてもよく、インスタンスは、オブジェクトのメッシュまたはオブジェクトの一部であってもよい。例えば、図16の図示例1600は、様々なインスタンス1602(カップのメッシュを表す)、1603(スプーンのメッシュを表す)、および1604(プレートのメッシュを表す)が存在し、それぞれ分離およびコーディングされ得るメッシュ例1601を示す。また、インスタンス1601、1602、1603、および1604のそれぞれは、以下でさらに説明するバウンディングボックスのそれぞれに示されているが、注記として、インスタンス1601は「メッシュベースのバウンディングボックス」によって境界付けられて示されていると考えることができ、インスタンス1602、1603、および1604のそれぞれは、「インスタンスベースのバウンディングボックス」のそれぞれによるバウンディングとして示されていると考えることができる。
【0122】
例示的な実施形態によれば、提案された方法は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。提案された方法は、任意のポリゴンメッシュに使用されてもよいが、様々な実施形態の実証には三角形メッシュのみが使用されていてもよい。上述したように、入力メッシュは1つまたは複数のインスタンスを含んでもよく、サブメッシュは1つまたは複数のインスタンスを有する入力メッシュの一部であり、複数のインスタンスをグループ化してサブメッシュを形成することができると仮定する。
【0123】
その観点から、図12は、所与の入力ビット深度(そのビット深度は「QP」と呼ばれてもよい)で異なるオブジェクトまたは部分を別々に量子化することが提案されている例1202を示す。例えば、S1201において、1つまたは複数の入力メッシュを取得し、各々を複数のサブメッシュに分離し得る。サブメッシュは、オブジェクト、オブジェクトのインスタンス、またはセグメント化された領域とすることができ、例示的な実施形態によれば、S1202で独立して量子化される。
【0124】
例示的な実施形態によれば、(x,y,z)座標にm個の点を有するメッシュMは、S1202においてQPビット深度によって量子化され得る。すべての3次元(x,y,z)の量子化ステップサイズは、すべての次元におけるバウンディングボックスの最大長さに基づいて決定され得、dbbox>0である。また、S1203で識別された以下のようなメッシュ内のすべてのオブジェクトに対して、S1204で同じ量子化ステップサイズが適用されてもよく、
【数1】
そのスカラー量子化は、i番目の座標におけるj番目の点aijに対して、以下のように適用され得、
【数2】
ここで、θQP=0.5は、量子化のためのオフセットパラメータである。θは、i番目の次元におけるMのメッシュの最小座標である。表記法[・]は、床丸め演算子を表す。また、逆量子化された座標は、以下のように均一な逆量子化を用いて計算され得、
【数3】
量子化の平均二乗誤差を、
【数4】
とする。
【0125】
しかしながら、複雑なシーンでは、最大のオブジェクトは、比較的多くの場合単純であってもよく、より高い量子化ステップサイズを許容することができる背景である。一方、主要なオブジェクトは、より小規模であり、以下でさらに説明される様々な実施形態によって説明され得る巨大な量子化誤差を被る。
【0126】
したがって、図12の例1202に示すように、入力メッシュのバウンディングボックスdbboxの最大長は常に、以下のように、各インスタンスのバウンディングボックス
【数5】
の最大長以上に設定されてもよく、
【数6】
ここで、
【数7】
は入力メッシュ内のすべてのインスタンスまたはセグメント化のセットである。
【0127】
所与のビット深度QPにおいて、インスタンス1602(カップのメッシュを表す)、1603(スプーンのメッシュを表す)、および1604(プレートのメッシュを表す)の各インスタンスの量子化ステップサイズは、常に、
【数8】
を満たすメッシュベースの量子化ステップサイズ以下であり得る。
【0128】
したがって、インスタンスごとの量子化誤差が小さくなり、全体の量子化誤差が小さくなる。
【0129】
様々な実施形態によれば、図17のフローチャート1700を見ると、ビット深度は、S1702において「サブメッシュ」と呼ばれる各インスタンス/領域に対して適応的に割り当てられてもよく、その特定のインスタンスの面密度に基づいて決定されてもよい。各サブメッシュは、それ自体がメッシュ内の各インスタンスを個別にシグナリングしていてもよいメッシュのボリュメトリックデータから取得されてもよく、各サブメッシュは、S1702においてインスタンスごとにそのメッシュから導出される。例えば、インスタンス1602、1603、および1604の各々は、S1704において、それ自体の特定の面密度または頂点の数に応じて、その中に上述のポリゴンのうちの1つまたは複数を形成する、それ自体のそれぞれのビット深度を割り当てられてもよい。一般に、S1703においてその中のそのようなポリゴンの数などをカウントすることによって決定され得る各インスタンスが有する面が多いほど、S1702においてそのインスタンスに適用される量子化は少なくなるはずである。例えば、メッシュMが与えられると、面の総数はnであり、k番目のサブメッシュに対応する面は以下を満たすnであり、
【数9】
ここで、Kはサブメッシュの総数である。サブメッシュ面密度は、
【数10】
として定義され、
【数11】
はk番目のサブメッシュのS1906で設定されたバウンディングボックスのボリュームを表す。次に、一例では、QPと呼ばれるインスタンスkの適応量子化は、以下のように制限された範囲[QPmin,QPmax]で定義されることができる。
【数12】
【0130】
様々な実施形態によれば、メッシュは、ベースメッシュBおよびその対応する変位Dとして表され、S1702において異なるビット深度で量子化される。例えば、k番目のオブジェクトの場合、ビット深度ベースメッシュ
【数13】
を式(3)から計算することができ、その変位のビット深度
【数14】
を、以下のように導出することができ、
【数15】
ここで、α、βはj番目のオブジェクトの適応スケーリングファクタおよびオフセットである。一例では、α=1およびβ=2である。
【0131】
様々な実施形態によれば、歪みを最小化することに基づく適応ビット深度パラメータが使用されてもよい。例えば、入力ビット深度QPが与えられると、量子化方法の平均二乗誤差(MSE)はε_QPであり、式(4)のようになり得る。各サブメッシュのMSEは、ε_QP^k=ω_k*ε_QP,∀k∈[1,…,K]として導出され、ここでω_k>0は重み係数である。一例では、ω_k=1∀kである。線形探索は、各サブメッシュに対して実行され、以下を満たすベースメッシュの最良のビット深度を見つける。
【数16】
【0132】
加えて、変位のための最良のビット深度はまた、以下を介して取得され得る。
【数17】
【0133】
例示的な実施形態によれば、S1707の信号でビットストリームを介してビット深度をシグナリングするなどによって、各オブジェクトの量子化のシグナリングがあってもよい。昇順のベース量子化ビット深度のセットは、対応する変位量子化ビット深度
【数18】
を有する
【数19】
であってもよい。この情報は、メッシュインスタンスパラメータシンタックスとしてシグナリングされ得る。シグナリングのために、bビットを使用して、バウンディングボックスオフセットθをシグナリングし得る。シグナリングオーバーヘッドを回避するために、すべてのインスタンスは同じバウンディングボックスオフセットを共有し得る。数K-1はbビットに制限され、最大ベース量子化ビット深度はbビットであり、ベースと変位とのビット深度の最大差はbビットである。一例では、b=4、b=5、b=4である。例示的なシンタックステーブルを以下に示し、インスタンスは量子化値の昇順に配置される。このようにして、各インスタンスのシグナリングされた量子化差は常に非負であり得る。より一般的な場合には、インスタンスは、インスタンスごとに量子化値によって配置されなくてもよく、絶対差に加えて、符号もシグナリングされてもよい。
【0134】
【表1】
【0135】
ここで、
-u(n)はnビットを用いた符号なし整数であり、i(n)はnビットを用いた整数であり、mips_quant()は一連のシグナリングデータであり、
-mips_min_bbox[k]は、i番目の次元におけるバウンディングボックスの最小値であり、
-mips_num_instances_minus1は、メッシュ内のインスタンス-1の数であり、
-mips_base_bitdepth_minus1は、この順序での最初のインスタンスのビット深度であり、
-mips_base_quant[k]は、k+1番目とk番目のサブメッシュの量子化の差分である。量子化セットが昇順でソートされると、この数は常に非負であり、
-mips_dist_quant[k]は、ベースメッシュのビット深度に対するk番目の量子化データである。
【0136】
様々な実施形態によれば、シグナリングオーバーヘッドを低減するために、複数のインスタンスを同じビット深度でK個のグループにグループ化してもよい。インスタンスは、K平均クラスタリングのような単純なクラスタリング方法で、バウンディングボックス
【数20】
の最大距離に基づいてクラスタリングされてもよい。
【0137】
しかしながら、そのような3Dシーンは、アセットを再利用する同様のメッシュ構造を有する複数のインスタンスからなり得ることが多いため、ローカル特性を利用するだけでなく、例示的な実施形態によるインスタンス間の類似性を考慮することによって、さらなる改善が実現され得る。
【0138】
例えば、上記から続けると、図18は、インスタンスベースのマッチング予測(IMP)方法を使用して冗長メッシュを見つけ、対応する変位を符号化する例示的なフローチャート1800を示しており、これは、インスタンスを有利に正規化してそれらの類似性を最大化し得、上述の実施形態のいずれかで使用され得る。
【0139】
例えば、S1801において、入力メッシュが取得され、上述のように複数のサブメッシュに区分され得る。サブメッシュは、例示的な実施形態によれば、個々のオブジェクトまたはオブジェクトの一部のインスタンスであり得る。
【0140】
S1802において、単純なスケーリング特徴および類似性尺度を使用して、インスタンスを類似度グループにグループ化し得る。例えば、実施形態によれば、インスタンスは、過渡的なアセットのみが再利用され得るように整列および正規化され得る。スケールおよび向き情報は、IMPモードのチャネルを介してシグナリングされ得、m個のインスタンスを有する入力メッシュMが与えられると、i番目のインスタンスは、
【数21】
の対応するバウンディングボックスを有し得る。よって、同じ比率のバウンディングボックスd/d、d/dを有する同様のインスタンスが、1つのアセットグループにグループ化され得る。加えて、同じグループの2つのインスタンス間のペアワイズd1PSNR(ピーク信号対雑音比)が閾値τより大きい場合、類似性を検証し、外れ値のインスタンスを除去するために適用され得る。例えば、閾値τ=150dBを使用してもよく、合計で、Mは
【数22】
としてK個のアセットグループを有し、|S|=mであり、mはk番目のアセットグループのインスタンスの数である。
【0141】
例示的な実施形態によれば、S1803において、フラグの指示に応じて、IMPを使用してサイズが1より大きい、すなわちm>1であるアセットグループ
【数23】
のインスタンスを符号化し得るようにコーディングを実施することがS1803で決定されてもよい。第1のインスタンスは符号化され、その復号バージョンはグループ内の残りのインスタンスのベースメッシュとして使用される。例えば、
【0142】
【表2】
【0143】
フラグS1804に応じて、S1805におけるコーディングは、サブメッシュをサブビットストリームに独立してコーディングするようにシグナリングされ得る。各サブメッシュは、異なるコーディングパラメータを有するメッシュコーデックによってコーディングされることができる。各サブメッシュは異なるメッシュコーデックによってコーディングされることもでき、その場合、どのメッシュコーデックが使用されるかを示すコーデックインデックスをサブビットストリームのヘッダなどでシグナリングする必要があることに留意されたい。例示的な実施形態によれば、サブメッシュのサブビットストリームは、データ依存性の問題なしに並列に符号化および復号されることができる。
【0144】
S1804におけるフラグが代わりに依存コーディングを示す場合、S1806において、サブメッシュを依存的にコーディングするモードも示すように追加のフラグが考慮され得る。例えば、実施形態によれば、サブメッシュを、すでにコーディングされている他のサブメッシュからの予測によってコーディングすることができる。予測インデックスは、どのサブメッシュを予測として使用するかを示すようにコーディングされることができる。予測インデックスを、異なるレベルでシグナリングすることができる。
【0145】
例えば、S1807において、サブメッシュ全体に対して1つの予測インデックスのみがコーディングされてもよく、その結果、現在のサブメッシュ内のすべての頂点は、例示的な実施形態によるインデックスによって示されるのと同じサブメッシュから予測される。
【0146】
S1808において、各頂点が異なるサブメッシュから予測できるように、予測インデックスが現在のサブメッシュの各頂点についてシグナリングされ得る。予測インデックスは、予測コーディングによってもコーディングされることができ、頂点の予測インデックスは、近傍のコーディングされた頂点から予測されることができることに留意されたい。次に、例示的な実施形態によれば、予測インデックス残差を算術コーディングによってコーディングすることができる。
【0147】
S1809において、予測インデックスは、頂点レベルとサブメッシュレベルとの間の中間レベル、例えば頂点グループレベルでシグナリングされてもよく、頂点のグループは同じ予測インデックスを共有する。なお、異なるグループの予測インデックスを、例示的な実施形態による予測コーディングによってコーディングすることも可能である。シグナリングは、S1810において行われ得る。
【0148】
次に、現在のサブメッシュの各頂点の予測インデックスが与えられると、各頂点は、例示的な実施形態のいずれかを用いて本明細書で説明したように、対応するサブメッシュ内の頂点から予測されることができる。例示的な実施形態によれば、剛体運動は、予測サブメッシュから現在のサブメッシュまで推定されてもよく、剛体運動のパラメータ(例えば、回転および並進パラメータ)をコーディングすることができる。次いで、予測サブメッシュに剛体運動を適用した後、変換された予測サブメッシュ内の対応する頂点の属性を減算することによって、現在の頂点の属性の残差を取得することができる。頂点の属性は、ジオメトリ、色、法線、uv座標、接続性などを含むことができるが、これらに限定されない。次に、例示的な実施形態による算術コーディングによって残差情報をコーディングすることができる。
【0149】
さらに、このようなコーディングは、サブメッシュごとの材料およびテクスチャ情報のコーディングに適用されてもよい。この情報は、周囲色、拡散色、鏡面反射色、鏡面反射ハイライトの焦点、ディゾルブの係数、照明モデル、テクスチャ画像IDなどを含むことができるが、必ずしもこれらに限定されない。
【0150】
例示的な実施形態によれば、1つのサブメッシュは、1セットの材料およびテクスチャ情報のみを可能にし、そのような場合、この情報は、サブビットストリームのヘッダで単純にコーディングされることができる。
【0151】
または、例示的な実施形態によれば、1つのサブメッシュは、材料およびテクスチャ情報の2つ以上のセットを有することができ、この場合、それらのセットを、サブビットストリームのヘッダでコーディングすることができる。異なるセット内のこれらのパラメータを、独立してまたは依存してコーディングすることができることに留意されたい。依存コーディングが適用される場合、予測を適用することができ、代わりに材料パラメータの予測残差をコーディングすることができる。次いで、サブメッシュ内の各頂点について、この頂点にどの材料情報のセットが使用されるかを示すために材料IDをコーディングすることができる。例示的な実施形態によれば、冗長性を低減するために、コーディングされた近傍頂点から予測することによって材料ID(識別子)をコーディングすることができることに留意されたい。
【0152】
したがって、本明細書の実施形態によれば、複雑なメッシュは、テクスチャマップを関連付けるために複数のインスタンスに関する情報を含み得ることが多く、その情報は符号化時に利用可能であり得ることが実現されるので、各インスタンスは、本明細書の例示的な実施形態による3D設計において、アセットが、特に複雑なシーンの合成のために、モデルを設計する際のコストを削減するために頻繁に使用され得るので、3Dアセットと見なされ得る。例えば、3Dモデルは、スケール、向きなどの違いで修正されたテクスチャの有無にかかわらず再利用され得る。これは、上述した他の態様の中でも、メッシュがPCA(主成分分析)またはバイラテラル対称面に基づいて位置、サイズ、および向きに正規化され、それによってより効率的に検索され得るため、3Dオブジェクトのマッチングおよび検索に関連する問題に対処する。
【0153】
図15は、四分木二分木(QTBT)1501および対応する木表現1502を使用することによるブロックパーティショニングの例1500を示す。実線は四分木分割を示しており、点線は二分木分割を示している。二分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプが使用されるか(すなわち、水平か垂直か)を示すために1つのフラグがシグナリングされ、0は水平分割を示し、1は垂直分割を示す。四分木分割の場合、四分木分割は常にブロックを水平方向と垂直方向の両方に分割して、同じサイズの4つのサブブロックを生成するため、分割タイプを示す必要はない。
【0154】
コーディングツリーユニット(CTU)は、様々な局所特性に適合するように、コーディングツリーとして表された四分木構造を使用することによってコーディングユニット(CU)に分割される。ピクチャエリアをコーディングするためにインターピクチャ(時間的)予測を使用するかイントラピクチャ(空間的)予測を使用するかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従って、1つ、2つ、または4つの予測ユニット(PU)にさらに分割されることができる。1つのPU内で、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに伝送される。PU分割タイプに基づく予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのコーディングツリーのような別の四分木構造に従って変換ユニット(TU)に区分されることができる。
【0155】
例示的な実施形態によれば、可逆および非可逆メッシュコーディング技術の両方がある。ベースメッシュは、元のメッシュのサブセットとして抽出されてもよく、残りの頂点は、距離ベースの予測変位コーディングに基づいて符号化される。
【0156】
例示的な実施形態によれば、本明細書に記載の態様は、別々に使用されても、任意の順序で組み合わされてもよく、任意のポリゴンメッシュに使用されてもよく、ジオメトリは、ベースメッシュおよび予測変位コーディングによって符号化されてもよい。例えば、図19の例1900を見ると、例示的な実施形態によれば、細分割されたメッシュの頂点変位(変位ベクトル)は、例えば本明細書の1つまたは複数の実施形態などによって、および離散コサイン変換(DCT)、またはフーリエ変換、またはウェーブレット変換などのいずれかによって計算および変換され、変換の出力(すなわち係数)は元の変位と比較してエントロピーが低く、したがってより効率的に圧縮することができると仮定され得る。例えば、ウェーブレット変換のスケーリング係数(低周波数成分)の大きさ(そのようなスケーリング係数は、詳細のレベルを増加または減少させてもよい)は、一般に、ウェーブレット係数(高周波数成分)よりも大きくてもよい。よって、係数が量子化され、低詳細レベル(LOD)から高LODに順序付けられる場合、量子化された係数の大きさは降順になり、最後付近の係数の大部分はゼロになる。これらの仮定が与えられると、図19に関して説明された態様は、改善された係数コーディングを表し、そのようなコーディングは、一般に、イントラモードコーディングのコンテキストにおいて考慮され得る。
【0157】
細分割されたメッシュがS1901で取得され得、木構造がS1902でシグナリングされるかどうかがチェックされ得、シグナリングされない場合、変換された変位ベクトルの係数は、特に量子化後にエントロピーがより低いため、算術コーディングなどのエントロピーコーディングアルゴリズムを用いて係数を効率的に圧縮することができる可能性があり、例えばS1903で、異なる頂点の変位ベクトルを配置して1D配列を形成することができ、S1904での変換をこれらの配列に適用することができる。例えば、各頂点の成分ごとに配列が形成され、また、配列の最後付近のゼロをコーディングするのを回避するために、配列内の非ゼロ係数の最後の位置を示すためにS1906でインデックスをシグナリングすることができる。エントロピーコーディングの効率をさらに改善するために、異なるLODの係数は通常異なる大きさを有するので、コーディングコンテキストを各詳細レベル(LOD)で指定することができる。一例では、各LODおよび各成分について、非ゼロ係数の最後の位置がシグナリングされる。値が0としてシグナリングされる場合、このグループのすべての係数が0であり、係数を復号する必要がないことを意味する。特に、3D変位ベクトルが考慮されている場合、S1906において、ベクトル成分の各々について3つのそのようなインデックスをシグナリングすることができる。上記において、S1904における変換は、任意選択的に変位ベクトルに適用されることができる。
【0158】
S1902において、係数が木構造を有することがシグナリングされていると決定された場合、高周波数係数は低周波数成分の子孫であり、S1906における利用態様は、コーディング性能を改善するために木構造によって本明細書の実施形態に従って適用され得る。例えば、ループ細分割または中間点細分割がメッシュを細分割するために使用されるようにシグナリングされ、ウェーブレット変換が細分割されたメッシュに適用されると決定された場合、ウェーブレット係数の木構造は、図15の例1503に示すように、レベルi上の各エッジ(例1504、粗いエッジの親)がレベルi+1上の4つのエッジ(親エッジが境界エッジである場合は3つの子エッジ)(例1505、より粗いエッジの親エッジと同じ向きの4つのより細かいエッジ)の親であるという事実を決定することによって得ることができる。その結果、(最後のレベルを除く)レベルi上の各ウェーブレット係数は、レベルi+1上に3つまたは4つの子係数を有し、ベースメッシュ上のエッジまたはレベル1上のウェーブレット係数は、例示的な実施形態によるツリーのルートであると決定されるようになる(すなわち、例示的な実施形態によれば、特に符号化されない限り、任意の子孫のツリーノード係数は0であり得ると単純に仮定され得る)。
【0159】
例示的な実施形態によれば、S1906において木構造を利用することは、木の統計的特性を使用することによって非ゼロ係数の位置を効率的にコーディングする、(上述した算術コーディングとは対照的に)埋め込みゼロツリーウェーブレット(EZW)または階層木におけるセットパーティショニング(SPIHT)などのゼロツリーベースのアルゴリズムを使用することであってもよい。特に、ゼロ係数のすべての子孫もゼロである可能性が高く、これはゼロツリーとして知られている。
【0160】
コーディング効率に加えて、EZWおよびSPIHTアルゴリズムはまた、ビットが重要度の順に生成される例示的な実施形態による埋め込みビットストリームを生成する。事前設定フラグなどによってシグナリングされ得る埋め込みコードが必要でないと決定された場合、本明細書の実施形態は、係数をコーディングするためにのみゼロツリー構造を使用してもよい。具体的には、ゼロツリーの子孫ではなく、LOD0または最後のLODではないゼロ係数のうち、ゼロツリーのルートであるゼロ係数の割合であるゼロツリーのパーセンテージが計算されてもよい。パーセンテージが所与の閾値を上回ると決定された場合、ゼロツリー構造はコーディングに使用されるようにシグナリングされ、そうでなければゼロツリー構造が考慮されないことがシグナリングされ得る。シグナリングは、1つまたは複数のフラグによるものであってもよい。さらに、実施形態は、ゼロツリーのパーセンテージが閾値よりも大きいと決定された場合、ゼロツリーの一部ではないゼロ係数のインデックスがシグナリングされるように別の閾値を設定してもよく、そうでない場合、ゼロツリー子孫ではない各ゼロ係数は、それがゼロツリールートであるか否かを示すために別々にシグナリングされる。閾値は、10%、30%、50%、80%などであってもよい。この後、ゼロ係数をコーディングするとき、本明細書の実施形態は、現在のデータがゼロツリールートにあるかどうかを最初にチェックしてもよく、これは同様にフラグによってシグナリングされてもされなくてもよい。シグナリングされる場合、そのルートのすべての子孫は、後で再びコーディングされないように「コーディング済み」とマークされ、シグナリングされない場合、何もされない。例示的な実施形態によれば、ゼロツリーの使用は、ゼロツリーのパーセンテージが高く、LODが50%を超えるなど、大きい場合に最もよく機能することに留意されたい。
【0161】
木構造の他の統計的特性も、コーディング利得を達成するために利用することができる。例えば、係数のすべての子が同一である可能性が高いと仮定した場合、1つの子係数のみをコーディングすればよく、上述したゼロツリーコーディングと同様にコーディング処理を実現することができる。フラグを使用して、その尤度をシグナリングしてもよい。また、係数が複数の次元を有する場合、ツリーを、各次元またはすべての次元のいずれかに対して構築することができる。前者はツリーにスカラーノードを有し、後者は例示的な実施形態によるツリーにベクトルノードを有する。
【0162】
例示的な実施形態によれば、本明細書に記載の態様は、別々に使用されても、任意の順序で組み合わされてもよく、任意のポリゴンメッシュに使用されてもよく、ジオメトリは、ベースメッシュおよび予測変位コーディングによって符号化されてもよい。例えば、フローチャート2000を見ると、S2002において、S2001で取得された元のメッシュのサブセットであるベースメッシュが与えられると、元の頂点は、例2100を見ると、その予測点(投影された頂点)と、予測点(投影された頂点)と元の点(残りの頂点)との間の変位によって符号化され得る。ベースメッシュは、(頂点に含まれない)残りの頂点が常に中間の頂点の法線方向側にあるような制約である。
【0163】
例えば、2Dメッシュの変位コーディングがS2004で決定された場合、2Dメッシュの2つの距離ベースの変位コーディングの例2101を見ると、点
【数24】
は、その近傍の点y,yを接続し、点y,y,yを通る平面pに垂直な線への点yの投影である。p平面の法線ベクトルと同じ側の点yとする。点yを符号化するためには、S2005においてスカラー距離
【数25】
を有する投影
【数26】
のみが必要である。加えて、この実施形態では、
【数27】
は、yとyとの間に並ぶように制約される。したがって、近傍の頂点yまでのスカラー距離dは、
【数28】
を復元するのに十分である。すなわち、例2101では、点y,y,yは、ベースメッシュ頂点であってもよく、点y,yは、残りの頂点であってもよく、
【数29】
は射影された頂点であってもよく、点yは導出された近傍点であってもよい。
【0164】
2Dの例示的な実施形態によれば、また他の例示的な実施形態による3Dでは、S2006において、近傍の点y,yの間の線上にある追加の点yが近傍から導出される。例えば、点yからのスカラー距離は、点y,yの中央から0、1/2、1/3、2/3として導出される。そして、S2007において、レートおよび歪みに関して最良の候補が選択されてシグナリングされる。
【0165】
そのような実施形態は、点y,yを使用して中間点yを取得し、次いでそこから点
【数30】
に投影し得るが、より正確な所望の頂点は、代わりに点
【数31】
ではなく点yにあってもよく、これは本明細書に記載の例示的な実施形態によって有利に取得され得る。
【0166】
本明細書では可逆と見なされ得る、3Dメッシュのための2つの距離ベースの変位コーディングを示す図21の例2102を見ると、3Dメッシュは、例示的な実施形態に従って、S2004における3Dコーディングの選択に基づいて説明される。例えば、S2008で非可逆コーディングが選択されていないと決定された場合、S2009で、頂点zがベースメッシュ内の近傍する頂点、すなわち点z,z,zから予測される。例2101の2Dの場合と同様に、距離hが既知である場合、点zを点
【数32】
から予測することができる。一方、点
【数33】
を、距離hおよびhを用いて、(レートおよび歪みコストに応じて)点zまたは点
【数34】
のいずれかから予測することができた。全体として、点zをシグナリングするために、3つの距離h,h,hが、S2009においてどのエッジが予測に使用されるかを示すためのインデックスと共に使用される。すなわち、点z,z,zは、ベースメッシュ頂点であってもよく、点zは残りの頂点であってもよく、点
【数35】
は、投影された頂点であってもよく、点zおよび点
【数36】
は、導出された近傍点であってもよい。
【0167】
細分割および距離ベースのメッシュコーディングを示す例2103を見ると、そのような例示的な実施形態は、同様に、S2011で距離および面細分割に基づいて、S2008で選択されたような非可逆3Dメッシュの変位コーディングを導入する。すなわち、例2102と同様に、例2103では、ベースメッシュ面点
【数37】
上の点xの投影された頂点および距離dは、点xを符号化するのに十分である。この実施形態では、面はレベルLで最初に細分割される。点
【数38】
(この例ではxである)に最も近い細分割された点が選択される。次に、点
【数39】
は、現在の三角形の法線方向に向かって距離dにある点xから導出される。点
【数40】
は、点xの非可逆バージョンと見なされる。最後に、距離d、およびS2011で細分割された点xのインデックスが符号化され、三角形細分割が例2103に示されているが、本明細書で説明されるように他のポリゴン形状が使用されてもよい。すなわち、点x,x,xは、ベースメッシュ頂点であってもよく、点xは、残りの頂点であってもよく、点
【数41】
は、投影された頂点であってもよく、点xは、最も近い細分割であってもよく、点
【数42】
は、予測される頂点である。
【0168】
例2101について上述したように、例2103はまた、例2102と比較して、例2103が、点zおよび点
【数43】
の一方の値が整数値でなくてもよい状況(点zおよび点
【数44】
は、この説明のためにそれぞれ点xおよび点
【数45】
に対応する)と比較して計算の複雑さを単純化することができるので、追加の有利な改善を表す。すなわち、(頂点x,x,xによって形成されるポリゴン全体の中で規則的に分割されたポリゴンの頂点のうち)点xに最も近い点として点xを見つけることによって、その点xは、点
【数46】
よりも整数値を有する可能性が高く、それによってそこから予測される頂点としての点
【数47】
が同様に整数値を有してもよく、したがって、代わりにそのような整数値を有する可能性が低い点xと比較して計算の複雑さが低減される。
【0169】
例示的な実施形態によれば、一実施形態では、距離および面細分割に基づく非可逆(S2008で選択された)3D(S2004で選択された)クワッド(S2010で選択された)メッシュの面レベル処理がある。例えば、順次予測して符号化する代わりに、S2012において、例1501に示すブロックのうちの1つまたは複数などの対応する矩形ブロックへのメッシュの画素化がある。この手法は、ビデオコーディングにおけるブロックパーティショニング、ブロックマージフレームワークを可能にする。
【0170】
例えば、S2012で面を画素化する場合、クワッド面が与えられると、まず、細分割された元の頂点がn個の点を占めるように、それらを細分割する。図22の例2200の、クワッドメッシュおよび対応する変位のグループ表現のためのレベル1における三分木細分割の例2201に示される三分木の例は、4個の面を有するようにクワッド面を分割するために使用され得る。メッシュの滑らかな変化する表面の仮定に基づいて、変位のグループは高い相関を有する可能性が高い。したがって、イントラ様予測およびローカル変換を使用して、変位
【数48】
予測2251をさらに圧縮し得る。このような態様は、エンコーダおよびデコーダのスループットを向上させながら、ビットレートを節約することを支援し得る。
【0171】
例示的な実施形態によれば、変位
【数49】
のコーディング効率を改善するために適応細分割が使用されるように、S2013におけるマルチレベルパーティショニングを行ってもよい。すなわち、第1に、クワッドメッシュは、サイズB×Bのグループ変位表現2252を有するように数回の3値細分割であり、B1,2は2の倍数である。その後、従来のビデオコーディングパーティショニングを使用することができる。一例では、B,Bは32に設定される。あるいは、クワッドベースメッシュ面の向きを考慮して、異なるパーティショニングを適用することができる。より長い向きは、より高いレベルでパーティショニングを受ける。これにより、そのような態様は、すでに符号化された面2253および2254の例で示されているような、非正方形の画素化された面を可能にする。これにより、一方の方向が他方の方向よりも著しく大きい場合、非正方形のクワッド面の歪みが低減される。また、S2014では、1回だけ3値細分割された個々のクワッド面が存在し得るように、適応マージクワッド面特徴が使用されてもよい。次いで、それらの変換コーディング済みコストが個々のコストよりも小さいと決定された場合、近傍の2つまたは4つをマージすることができる。
【0172】
例えば、グループ変位表現2252を見ると、すでに符号化されたベースメッシュ頂点を使用して(左下LL、右下LR、左上TL、右上TF)、その位置に応じて変位を予測してもよく、すなわち、サイズB×Bのグループ変位表現が与えられる場合、4つの重み行列を使用して、パーティショングリッドの位置i,jにおける予測を以下のように導出してもよく、
【数50】
ここで、vはX位置(LL、LR、TL、TF)におけるベースメッシュの頂点を表し、重み行列は常にW(i,j)の正数である。
【0173】
さらに、例2202は、ベースメッシュ頂点およびすでに符号化された近傍変位頂点を使用して現在の変位グループを予測し得る、近傍ベースのイントラ変位予測を示す。その予測は、イントラ予測における角度予測であり得る。追加のベースメッシュ頂点を利用して、角度予測のための補正ならびに例示的な実施形態による式(11)のポストスムージングを実行し得る。
【0174】
よって、本明細書に記載された態様は、GPUベースのメッシュレンダリングのスループットを低下させ、それによってメッシュコーディングのためのビデオ圧縮において高度なコーディング方法を利用することができない偽の接続性を有する追加の頂点を作成することを回避することによって技術的欠陥に対処する。
【0175】
例示的な実施形態によれば、m(i)がメッシュシーケンス内のi番目のフレームであり得、v(i,j)がm(i)のj番目の頂点の位置であり得、m(i),…,m(i)が、S2302におけるシグナリングによって決定される追跡されたメッシュであり得、m(i)が参照フレームであり得るように、S2301において1つまたは複数のフレームが取得されるフローチャートを示す図23の例2300をさらに参照されたい。m(i)のj番目の頂点の動きベクトルf(i,j)は、S2303で以下のように計算される。
f(i,j)=v(i,j)-v(i,j) 式(12)
【0176】
あるいは、m(i)のj番目の頂点の動きベクトルf(i,j)は、以下のように計算されることができる。
k>0の場合、f(i,j)=v(i,j)-v(ik-1,j) 式(13)
【0177】
例示的な実施形態によれば、m(i)の動きフィールドは、フレーム内のすべての動きベクトルからなり、f(i)として表され、本明細書の実施形態は、k=1,…,nに対してf(i)を圧縮することに関する。f(i)は、定義によりすべてゼロを含むので、コーディングされる必要はないことに留意されたい。
【0178】
フラグまたはオペレータ指示などによるシグナリングに応じて、S2304において、モードが選択され得る。
【0179】
メッシュシーケンスでは、本明細書の例示的な実施形態は、S2302で、すべてのそれらのメッシュが、いくつかの頂点、接続性、テクスチャ座標、およびテクスチャ接続性のいずれかのうちの同じ1つまたは複数を共有すると決定され、それらのメッシュの間で頂点の位置のみが異なる場合に、複数のメッシュフレームが追跡されることを指す。本明細書では参照フレームおよび現在のフレームと呼ぶことができる2つの追跡されたメッシュフレームの頂点間には1対1の対応関係があるため、現在のフレームの頂点位置は参照フレームによって予測することができ、予測残差は動きフィールドを形成する。
【0180】
さらに、例示的な実施形態による本明細書に記載の「メッシュ」は、ボリュメトリックオブジェクトの表面を記述するいくつかのポリゴンから構成され得ることを理解されたい。各ポリゴンは、3D空間内のその頂点と、頂点がどのように接続されているかの情報とによって定義され、接続性情報と呼ばれる。任意選択で、色、法線、変位などの頂点属性が、メッシュ頂点に関連付けられてもよい。属性はまた、メッシュを2D属性マップでパラメータ化するマッピング情報を利用することによって、メッシュの表面に関連付けられてもよい。そのようなマッピングは、通常、UV座標またはテクスチャ座標と呼ばれ、メッシュ頂点に関連付けられたパラメトリック座標のセットによって記述される。2D属性マップは、テクスチャ、法線、変位などの高解像度属性情報を格納するために使用される。そのような情報は、テクスチャマッピング、シェーディング、メッシュ再構築などの本明細書の様々な目的に使用される。
【0181】
S2305において、離散コサイン変換(DCT)またはリフティングウェーブレット変換などの1D変換が、各頂点の軌道に適用されてもよい。例えば、S2305、S2306、およびS2307のいずれかにおいて本明細書に記載された頂点の軌跡として含まれ得る、図12図13図21、および図22に示す変位ベクトルを参照されたい。具体的には、S2305において、j番目の頂点について、f(i,j)の各空間次元に1D変換を適用することができ、k=1,…,nである。次いで、得られた変換係数は、エントロピー/算術コーディング、ビデオコーディングなどを使用して符号化されることができる。デコーダ側では、動きフィールドを再構築するための逆変換が実行され得る。
【0182】
S2306において、動きフィールドは、ビデオコーディングによって直接符号化されることができる。上述したパッチまたはパッチのグループなどの各フレームについて、メッシュフレーム内のすべての動きベクトルf(i,j)は、符号化/復号の順序に列挙された頂点インデックスの順序、またはエッジブレーカアルゴリズムなどのメッシュ横断アルゴリズムの順序などの特定の順序に従ってグループ化されてもよく、次いで、順序付けられた動きベクトルを3チャネル画像にパッキングしてもよく、各チャネルは動きベクトルの1つの空間次元に対応する。パッキングは、ラスタ順、モートン順などの任意の順序で行うことができる。パッキング後、すべてのフレームからの画像をビデオコーデックによって符号化することができる。また、それに応じて復号が実行され得る。ビデオフレームを復号した後、アンパッキング動作を適用して、動きベクトルの2D配列を既知の順序を有するメッシュ頂点の配列に戻すことができ、これは例示的な実施形態によるエンコーダ側で使用される。
【0183】
S2307において、座標を変更し得る主成分分析(PCA)を使用することによる動きフィールドの符号化があり得、動きフィールドはそれぞれ、本明細書に記載のパッチまたはパッチのグループの複数またはすべての頂点の変位ベクトルおよび動きベクトル情報を含み得る。まず、動きフィールドのためのデータ行列Mの構築が存在し得る。Mのj行目は、3つの空間次元を平坦化した後、f(i,j)、k=1,…,nであるため、各行の長さ、すなわち列の数は3nであり、行の数rは各メッシュ内の頂点の数に等しく、したがってMのサイズはr×3nである。3つの空間次元の平坦化は、x…xまたはx…x…y…zの順序で行うことができることに留意されたい。データ行列Mを構築した後、その平均を減算することによってその列のセンタリングがあってもよく、次いで共分散行列C=MMを計算することができ、その後、主成分は、共分散行列Cのサイズが3n×3nであるために計算複雑度が低いCの固有分解によって取得されることができる。Cの固有分解の後、すべての固有ベクトルのシグナリング、または固有値の構成可能な閾値による固有ベクトルの最初の複数、少なくとも2つのシグナリングのみのいずれかがあり得る。加えて、シグナリングされた固有ベクトル上のMの各行の投影がシグナリングされ得、それらの固有ベクトルに関するの係数をシグナリングし得る。例示的な実施形態によれば、Mの各列の平均も同様にシグナリングされるべきである。例示的な実施形態によれば、すべてのシグナリングは、算術コーディングなどのエントロピーコーディングで行うことができる。デコーダ側では、各頂点の中心軌道を、復号された固有ベクトルと対応する復号係数との線形結合によって復元することができ、次いで、各頂点の元の軌道を、中心軌道と復号された平均位置との合計によって取得することができる。
【0184】
例示的な実施形態によれば、ビデオコーディングを介して符号化された他のデータが存在すると決定されると、例示的な実施形態は、それらのデータを動きベクトルと連結し、それらをコーディングのために単一のビデオにパックする。例えば、動きベクトルと変位ベクトルの両方を有するメッシュフレームの場合、動きベクトルと変位ベクトルを、さらなるコーディングのために同じビデオフレームにパックすることができる。特に、変位情報をすべての動きベクトルの背後に置くことができる。これには、動きベクトルと変位ベクトルとが異なるストリームに含まれる可能性、または同じストリームに含まれる可能性が含まれ、同様に単一のビデオコーデックによってコーディングされ得る。
【0185】
よって、動的メッシュシーケンスは、経時的に変化する大量の情報から構成され得るため、大量のデータを必要とし得るが、メッシュシーケンスが大量の冗長情報を含む追跡されたメッシュから構成されるとき、動的に細分割されたメッシュの動きフィールドの圧縮に関する本明細書に記載の実施形態によってメッシュを大幅に圧縮する大きな余地がある。よって、本明細書の例示的な実施形態では、動的細分割メッシュの動きフィールドの圧縮に対する手法を改善するためのいくつかの方法が記載されており、本明細書に記載のそれらの方法は、個別にまたは任意の形態の組み合わせによって適用される。
【0186】
前述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして、または具体的に構成される1つまたは複数のハードウェアプロセッサによって実装されることができる。例えば、図24は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム2400を示す。
【0187】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって、直接に、または解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。
【0188】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行されることができる。
【0189】
コンピュータシステム2400に関して図24に示す構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図していない。構成要素の構成は、コンピュータシステム2400の例示的な実施形態に示された構成要素のいずれか1つまたは組み合わせに関するいかなる依存性または要件も有すると解釈されるべきでない。
【0190】
コンピュータシステム2400は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用されることができる。
【0191】
入力ヒューマンインターフェースデバイスは、キーボード2401、マウス2402、トラックパッド2403、タッチスクリーン2410、ジョイスティック2405、マイク2406、スキャナ2408、カメラ2407のうちの1つまたは複数(それぞれの1つのみが図示される)を含み得る。
【0192】
コンピュータシステム2400はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を介して、1人または複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン2410、またはジョイスティック2405による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカ2409、ヘッドホン(図示せず)など)、視覚的出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン2410などであり、それぞれにタッチスクリーン入力機能を備えたものと備えていないものがあり、それぞれに触覚フィードバック機能を備えたものと備えていないものがあり、その一部は、ステレオグラフィック出力、仮想現実の眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して二次元の視覚的出力、または三次元を超える出力を出力することが可能であり得る)、ならびにプリンタ(図示せず)を含み得る。
【0193】
コンピュータシステム2400はまた、人間がアクセス可能なストレージデバイスと、それらに関連付けられた媒体、例えば、CD/DVD2411または同様の媒体を備えたCD/DVD ROM/RW2420、サムドライブ2422、取り外し可能なハードドライブまたはソリッドステートドライブ2423、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスを含めた光学媒体などを含むこともできる。
【0194】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0195】
コンピュータシステム2400は、1つまたは複数の通信ネットワーク2498へのインターフェース2499も含むことができる。ネットワーク2498は、例えば、無線、有線、光とすることができる。ネットワーク2498は、さらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などとすることができる。ネットワーク2498の例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワーク2498は、一般に、特定の汎用データポートまたは周辺バス(2450および2451)(例えば、コンピュータシステム2400のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、後述するようにシステムバスへの取り付けによってコンピュータシステム2400のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワーク2498のいずれかを使用して、コンピュータシステム2400は他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルエリアまたは広域デジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0196】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースを、コンピュータシステム2400のコア2440に取り付けることができる。
【0197】
コア2440は、1つまたは複数の中央処理装置(CPU)2441、グラフィック処理装置(GPU)2442、グラフィックアダプタ2417、フィールドプログラマブルゲートエリア(FPGA)2443の形式の専用のプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ2444などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)2445、ランダムアクセスメモリ2446、内部のユーザアクセス不可能なハードドライブ、SSDなどの内部大容量ストレージ2447と共に、システムバス2448を通じて接続され得る。いくつかのコンピュータシステムでは、システムバス2448は、追加のCPU、GPUなどによる拡張を可能にするために1つまたは複数の物理プラグの形式でアクセス可能とすることができる。周辺デバイスを、コアのシステムバス2448に直接取り付けることも、周辺バス2449を介して取り付けることもできる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0198】
CPU2441、GPU2442、FPGA2443、およびアクセラレータ2444は、組み合わされて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。このコンピュータコードを、ROM2445またはRAM2446に格納することができる。過渡的なデータをRAM2446に格納することもでき、一方永続的なデータを、例えば、内部大容量ストレージ2447に格納することができる。1つまたは複数のCPU2441、GPU2442、大容量ストレージ2447、ROM2445、RAM2446などと密接に関連付けることができるキャッシュメモリを使用することにより、メモリデバイスのいずれかへの高速記憶および高速取り出しを可能にすることできる。
【0199】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知で利用可能な種類のものであってもよい。
【0200】
限定ではなく例として、アーキテクチャを有するコンピュータシステム2400、具体的にはコア2440は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが1つまたは複数の有形のコンピュータ可読媒体において具現化されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、前述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ2447またはROM2445などの非一時的な性質のものであるコア2440の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに格納され、コア2440によって実行されることができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア2440、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM2446に格納されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行することができる、回路(例えば、アクセラレータ2444)におけるハードワイヤードの、または他の方法で具現化された論理の結果として機能を提供することもできる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0201】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更形態、置換形態、および様々な代替形態の同等物がある。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0202】
100 通信システム、101 端末、102 端末、103 端末、104 端末、105 ネットワーク、201 ビデオソース、202 エンコーダ、203 キャプチャサブシステム、204 ビデオビットストリーム、205 ストリーミングサーバ、206 ビデオビットストリーム204のコピー、207 ストリーミングクライアント、208 ビデオビットストリーム204のコピー、209 ディスプレイ、210 送出ビデオサンプルストリーム、211 ビデオデコーダ、212 ストリーミングクライアント、213 ビデオサンプルストリーム、300 ビデオデコーダ、301 チャネル、302 受信器、303 バッファメモリ、304 パーサ、305 スケーラ/逆変換ユニット、306 動き補償予測ユニット、307 イントラ予測ユニット、308 参照ピクチャメモリ、参照ピクチャバッファ、309 現在の参照ピクチャ、310 アグリゲータ、311 ループフィルタユニット、312 ディスプレイ、レンダリングデバイス、313 シンボル、400 エンコーダ、401 ビデオソース、402 コントローラ、403 ソースコーダ、404 予測器、405 参照ピクチャメモリ、406 ローカルデコーダ、407 コーディングエンジン、408 エントロピーコーダ、409 送信器、410 ビデオシーケンス、411 通信チャネル、500 簡略ブロックスタイルワークフロー図、600 簡略ブロックスタイルコンテンツフロープロセス図、601 ボリュメトリックデータ取得ブロック、602 点群への変換ブロック、603 画像への投影ブロック、604 ビデオ符号化ブロック、605 画像符号化ブロック、606 ファイル/セグメントカプセル化ブロック、607 クラウドサーバブロック、608 位置/視野角追跡ブロック、609 シーンジェネレータブロック、610 ビデオ復号ブロック、611 画像復号ブロック、612 点群再構築ブロック、613 シーン構成ブロック、614 ディスプレイブロック、615 ファイル/セグメントカプセル化解除ブロック、625 V-PCCプレーヤ、700 フレームワーク、701 入力メッシュ、702 2D UVアトラス、703 デコーダ、704 再構築されたメッシュ、800 例、801 メッシュセグメント、802 UVパラメータ化プロセス、803 2Dチャート、804 2D UVアトラス、900 例、901 2Dチャート、902 2Dチャート、903 例、1150 フローチャート、1201 フローチャート、1202 フローチャート、1300 例、1301 第1の層、1302 第2の層、1303 第3の層、1340 第1のポリゴン、1341 追加のポリゴン、1350 例、1360 例、1361 第1の層、1362 第2の層、1363 第3の層、1400 例、1491 元の曲線、1492 間引き曲線、1493 細分割された曲線、1494 変位曲線、1500 例、1501 四分木二分木、1502 対応する木表現、1503 例、1504 例、1505 例、1600 例、1601 インスタンス、1602 インスタンス、1603 インスタンス、1604 インスタンス、1700 フローチャート、1800 フローチャート、1900 例、2000 フローチャート、2100 例、2101 例、2102 例、2103 例、2200 例、2201 例、2202 例、2251 変位予測、2252 グループ変位表現、2253 符号化された面、2254 符号化された面、2300 フローチャート、2400 コンピュータシステム、2401 キーボード、2402 マウス2、2403 トラックパッド、2405 ジョイスティック、2406 マイク、2407 カメラ、2408 スキャナ、2409 スピーカ、2410 タッチスクリーン、2411 CD/DVD、2417 グラフィックアダプタ、2420 CD/DVD ROM/RW、2422 サムドライブ、2423 取り外し可能なハードドライブまたはソリッドステートドライブ、2440 コア、2441 CPU、2442 GPU、2443 FPGA、2444 アクセラレータ、2445 ROM、2446 RAM、2447 内部大容量ストレージ、2448 システムバス、2449 周辺バス、2450 汎用データポートまたは周辺バス、2451 汎用データポートまたは周辺バス、2498 通信ネットワーク、2499 インターフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
【手続補正書】
【提出日】2024-07-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ符号化のための方法であって、前記方法は、少なくとも1つのプロセッサによって実行され、
少なくとも1つの3次元(3D)ビジュアルコンテンツのボリュメトリックデータに対応する入力メッシュを取得するステップと、
前記ボリュメトリックデータに対応する前記入力メッシュからメッシュシーケンスの曲線を導出するステップであって、前記曲線は前記入力メッシュの複数の頂点を含む、ステップと、
複数の細分割された頂点を追加することによって前記メッシュシーケンスの前記導出された曲線を細分割するステップと、
前記複数の細分割された頂点の各々について変位ベクトルを計算するステップと、
前記細分割された頂点のうちの少なくとも1つからの前記変位ベクトルに基づいて前記ボリュメトリックデータをエントロピー符号化するステップと
を含む、ビデオ符号化のための方法。
【請求項2】
前記導出された曲線を細分割するステップが、前記導出された曲線を間引きすることによって間引き曲線を形成し、前記複数の細分割された頂点を前記間引き曲線に追加するステップを含む、
請求項1に記載のビデオ符号化のための方法。
【請求項3】
前記細分割された頂点のうちの前記少なくとも1つからの前記変位ベクトルが、前記間引き曲線上の点からのものである、
請求項2に記載のビデオ符号化のための方法。
【請求項4】
前記ボリュメトリックデータをエントロピー符号化するステップが、前記間引き曲線の前記複数の細分割された頂点のうちの少なくとも1つが前記曲線から変位していないと決定するステップにさらに基づいている、
請求項3に記載のビデオ符号化のための方法。
【請求項5】
前記ボリュメトリックデータをエントロピー符号化するステップが、詳細レベル(LOD)でコーディングコンテキストをシグナリングすると決定するステップを含む、
請求項4に記載のビデオ符号化のための方法。
【請求項6】
前記LODにおける前記コーディングコンテキストが、前記細分割された頂点のうちの前記少なくとも1つからの前記変位ベクトルの係数のうちの少なくとも1つがゼロであることを示す、
請求項5に記載のビデオ符号化のための方法。
【請求項7】
前記ボリュメトリックデータをエントロピー符号化するステップが、前記細分割された頂点のうちの前記少なくとも1つから前記変位ベクトルの非ゼロ係数の位置をシグナリングするステップを含む、
請求項6に記載のビデオ符号化のための方法。
【請求項8】
前記ボリュメトリックデータをエントロピー符号化するステップが、木構造がシグナリングされるかどうかを決定するステップを含む、
請求項4に記載のビデオ符号化のための方法。
【請求項9】
前記ボリュメトリックデータをエントロピー符号化するステップが、
ゼロツリーの子孫ではなく、特定の詳細レベル(LOD)にないゼロ係数のうちのゼロツリーのルートであるゼロ係数の割合を決定することに基づいて、ゼロツリーのパーセンテージを決定するステップと、
そのうちの少なくとも1つが前記特定のLODである複数のLODのコーディングコンテキストを指定するステップと
を含む、請求項8に記載のビデオ符号化のための方法。
【請求項10】
前記特定のLODが、LOD0および最後のLODのうちの1つである、
請求項9に記載のビデオ符号化のための方法。
【請求項11】
請求項1から10のいずれか一項に記載の方法を実行するように構成された、ビデオ符号化のための装置
【請求項12】
コンピュータに、請求項1から10のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【国際調査報告】