(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-08
(54)【発明の名称】ビデオコーディング方法、装置並びにその、コンピュータプログラム
(51)【国際特許分類】
H04N 19/597 20140101AFI20241031BHJP
H04N 19/70 20140101ALI20241031BHJP
【FI】
H04N19/597
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024531215
(86)(22)【出願日】2023-04-20
(85)【翻訳文提出日】2024-05-28
(86)【国際出願番号】 US2023019190
(87)【国際公開番号】W WO2023229762
(87)【国際公開日】2023-11-30
(32)【優先日】2022-05-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-04-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】シュウ,シャオゾン
(72)【発明者】
【氏名】ティエン,ジュン
(72)【発明者】
【氏名】ザン,シャン
(72)【発明者】
【氏名】ホアン,チャオ
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC01
5C159MA04
5C159MA05
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
コンピュータコードを含む方法及び装置を提供し、該コンピュータコードは、1つ又は複数のプロセッサに、少なくとも1つの三次元(3D)ビジュアルコンテンツのボリュームデータを取得するステップと、前記ボリュームデータから複数の3Dメッシュを分割することによってパッチを取得するステップであって、前記パッチが少なくとも1つの前記3Dメッシュの頂点を含む、ステップと、前記パッチの頂点のサブセットを含む予測グループを形成するステップと、前記パッチの複数の前記頂点のサブセットに対して、前記予測グループの予測モードを集合的にシグナリングするステップと、を実行させるように構成される。
【特許請求の範囲】
【請求項1】
少なくとも1つの三次元(3D)ビジュアルコンテンツのボリュームデータを取得するステップと、
前記ボリュームデータから複数の3Dメッシュを分割することによってパッチを取得するステップであって、前記パッチが少なくとも1つの前記3Dメッシュの複数の頂点を含む、ステップと、
前記パッチの複数の頂点のサブセットを含む予測グループを形成するステップと、
前記パッチの複数の頂点のサブセットに対して、前記予測グループの予測モードを集合的にシグナリングするステップと、を含む、ビデオコーディング方法。
【請求項2】
前記サブセットは、所定数の複数の前記頂点を含み、
前記所定数は、64、32、及び16のいずれかである、請求項1に記載のビデオコーディング方法。
【請求項3】
前記パッチの複数の頂点の第2のサブセットを含む第2の予測グループを形成するステップと、
前記パッチの複数の頂点の第2のサブセットに対して、前記第2の予測グループの第2の予測モードを集合的にシグナリングするステップと、を更に含み、
前記予測モードをシグナリングするステップと前記第2の予測モードをシグナリングするステップの両方は、少なくとも1つの前記3Dメッシュのメッシュフレーム及びメッシュスライスの少なくとも1つをイントラ予測モードに設定するか否かを決定することに基づいて行われる、請求項2に記載のビデオコーディング方法。
【請求項4】
前記予測モードをシグナリングするステップと前記第2の予測モードをシグナリングするステップの両方は、少なくとも1つの前記3Dメッシュのメッシュフレーム及びメッシュスライスの少なくとも1つを前記イントラ予測モードに設定しないと決定することに基づいて、前記イントラ予測モード及びインター予測モードのいずれかとして独立して行われる、請求項3に記載のビデオコーディング方法。
【請求項5】
複数の前記頂点のうちの現在頂点から予測子位置へのシフトを示す3D変位ベクトルをシグナリングするステップを更に含む、請求項1に記載のビデオコーディング方法。
【請求項6】
前記3D変位ベクトルをシグナリングするステップは、複数のフラグをシグナリングするステップを含み、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのそれぞれについて、前記3D変位ベクトルが非ゼロ成分を含むか否かを示す、請求項5に記載のビデオコーディング方法。
【請求項7】
前記3D変位ベクトルをシグナリングするステップは、グループフラグをシグナリングするステップを含み、前記グループフラグは、複数の前記頂点のサブセットのグループについて、前記3D変位ベクトルが非ゼロ成分を含むか否かを示す、請求項5に記載のビデオコーディング方法。
【請求項8】
フラグをシグナリングするステップを更に含み、前記フラグは、複数の前記頂点のサブセットのグループについて、前記グループに変換を実施するか否かを示す、請求項7に記載のビデオコーディング方法。
【請求項9】
複数のフラグをシグナリングするステップを更に含み、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのグループの成分のそれぞれについて、前記グループの成分のそれぞれに変換を実施するか否かを示す、請求項7に記載のビデオコーディング方法。
【請求項10】
前記3D変位ベクトルをシグナリングするステップは、複数のフラグをシグナリングするステップを含み、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのそれぞれについて、前記3D変位ベクトルの成分が非ゼロベクトルを含むか否かを示す、請求項5に記載のビデオコーディング方法。
【請求項11】
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードの指示に従って動作するように構成された少なくとも1つのプロセッサと、を含み、
前記コンピュータプログラムコードは、
少なくとも1つの前記プロセッサに、少なくとも1つの三次元(3D)ビジュアルコンテンツのボリュームデータを取得させるように構成された取得コードと、
少なくとも1つの前記プロセッサに、前記ボリュームデータから複数の3Dメッシュを分割することによってパッチを取得させるように構成された更なる取得コードであって、前記パッチが少なくとも1つの前記3Dメッシュの複数の頂点を含む、更なる取得コードと、
少なくとも1つの前記プロセッサに、前記パッチの複数の前記頂点のサブセットを含む予測グループを形成させるように構成された形成コードと、
少なくとも1つの前記プロセッサに、前記パッチの複数の前記頂点のサブセットに対して、前記予測グループの予測モードを集合的にシグナリングさせるように構成されたシグナリングコードと、を含む、ビデオコーディング装置。
【請求項12】
前記サブセットは、所定数の複数の前記頂点を含み、
前記所定数は、64、32、及び16のいずれかである、請求項11に記載のビデオコーディング装置。
【請求項13】
前記形成コードは、少なくとも1つの前記プロセッサに、前記パッチの複数の頂点の第2のサブセットを含む第2の予測グループを形成させるように更に構成され、
前記シグナリングコードは、少なくとも1つの前記プロセッサに、前記パッチの複数の頂点の第2のサブセットに対して、前記第2の予測グループの第2の予測モードを集合的にシグナリングさせるように更に構成され、
前記予測モードのシグナリングと前記第2の予測モードのシグナリングの両方は、少なくとも1つの前記3Dメッシュのメッシュフレーム及びメッシュスライスの少なくとも1つをイントラ予測モードに設定するか否かを決定することに基づいて行われる、請求項12に記載のビデオコーディング装置。
【請求項14】
前記予測モードのシグナリングと前記第2の予測モードのシグナリングの両方は、少なくとも1つの前記3Dメッシュのメッシュフレーム及びメッシュスライスの少なくとも1つを前記イントラ予測モードに設定しないと決定することに基づいて、前記イントラ予測モード及びインター予測モードのいずれかとして独立して行われる、請求項13に記載のビデオコーディング装置。
【請求項15】
前記シグナリングコードは、少なくとも1つの前記プロセッサに、複数の前記頂点のうちの現在頂点から予測子位置へのシフトを示す3D変位ベクトルをシグナリングさせるように更に構成される、請求項11に記載のビデオコーディング装置。
【請求項16】
前記3D変位ベクトルのシグナリングは、複数のフラグをシグナリングすることを含み、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのそれぞれについて、前記3D変位ベクトルが非ゼロ成分を含むか否かを示す、請求項15に記載のビデオコーディング装置。
【請求項17】
前記3D変位ベクトルのシグナリングは、グループフラグをシグナリングすることを含み、前記グループフラグは、複数の前記頂点のサブセットのグループについて、前記3D変位ベクトルが非ゼロ成分を含むか否かを示す、請求項15に記載のビデオコーディング装置。
【請求項18】
前記シグナリングコードは、少なくとも1つの前記プロセッサに、フラグをシグナリングさせるように更に構成され、前記フラグは、複数の前記頂点のサブセットのグループについて、前記グループに変換を実施するか否かを示す、請求項17に記載のビデオコーディング装置。
【請求項19】
前記シグナリングコードは、少なくとも1つの前記プロセッサに、複数のフラグをシグナリングさせるように更に構成され、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのグループの成分のそれぞれについて、前記グループの成分のそれぞれに変換を実施するか否かを示す、請求項17に記載のビデオコーディング装置。
【請求項20】
コンピュータに請求項1~10のいずれか1項に記載のビデオコーディング方法を実施させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2022年5月27日に出願された米国仮出願第63/346,655号、及び2023年4月19日に出願された米国出願第18/303,129号に対する優先権を主張し、これらの出願の全体が参照により本明細書に明示的に組み込まれるものとする。
【0002】
本開示は、動的メッシュ圧縮のための、導出されたメッシュ三角形分割に基づくメッシュ頂点予測を含む一連の高度なビデオコーディング技術を対象としている。
【背景技術】
【0003】
3D撮影、モデリング及びレンダリングの進歩は、複数のプラットフォーム及び装置にわたる3Dコンテンツの遍在的存在を促進した。現在では、ある大陸で赤ちゃんの最初の一歩を撮影し、祖父母が別の大陸でその赤ちゃんを見て(そして交流してもよい)、完全没入体験を楽しむことができるようにする。それにもかかわらず、そのような現実感を実現するために、モデルはこれまで以上に洗練されており、大量のデータがそれらのモデルの作成及び消費にリンクされる。
【0004】
したがって、そのような問題に対する技術的解決策が望まれている。
【発明の概要】
【課題を解決するための手段】
【0005】
コンピュータプログラムコードを記憶するように構成されたメモリと、前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードの指示に従って動作するように構成された1つ又は複数のプロセッサと、を含む方法及び装置が提供される。前記コンピュータプログラムコードは、少なくとも1つの前記プロセッサに、少なくとも1つの三次元(3D)ビジュアルコンテンツのボリュームデータを取得させるように構成された取得コードと、少なくとも1つの前記プロセッサに、前記ボリュームデータから複数の3Dメッシュを分割することによってパッチを取得させるように構成された更なる取得コードであって、前記パッチが少なくとも1つの前記3Dメッシュの複数の頂点を含む、更なる取得コードと、少なくとも1つの前記プロセッサに、前記パッチの複数の前記頂点のサブセットを含む予測グループを形成させるように構成された形成コードと、少なくとも1つの前記プロセッサに、前記パッチの複数の前記頂点のサブセットに対して、前記予測グループの予測モードを集合的にシグナリングさせるように構成されたシグナリングコードと、を前記プロセッサに実施させるように構成される。
【0006】
例示的な実施形態において、前記サブセットは、所定数の複数の前記頂点を含み、前記所定数は、64、32、及び16のいずれかである。
【0007】
例示的な実施形態において、前記形成コードは、少なくとも1つの前記プロセッサに、前記パッチの複数の頂点の第2のサブセットを含む第2の予測グループを形成させるように更に構成され、前記シグナリングコードは、少なくとも1つの前記プロセッサに、前記パッチの複数の頂点の第2のサブセットに対して、前記第2の予測グループの第2の予測モードを集合的にシグナリングさせるように更に構成され、前記予測モードのシグナリングと前記第2の予測モードのシグナリングの両方は、少なくとも1つの前記3Dメッシュのメッシュフレーム及びメッシュスライスの少なくとも1つをイントラ予測モードに設定するか否かを決定することに基づいて行われる。
【0008】
例示的な実施形態において、前記予測モードのシグナリングと前記第2の予測モードのシグナリングの両方は、少なくとも1つの前記3Dメッシュのメッシュフレーム及びメッシュスライスの少なくとも1つを前記イントラ予測モードに設定しないと決定することに基づいて、前記イントラ予測モード及びインター予測モードのいずれかとして独立して行われる。
【0009】
例示的な実施形態において、前記シグナリングコードは、少なくとも1つの前記プロセッサに、複数の前記頂点のうちの現在頂点から予測子位置へのシフトを示す3D変位ベクトルをシグナリングさせるように更に構成される。
【0010】
例示的な実施形態において、前記3D変位ベクトルのシグナリングは、複数のフラグをシグナリングすることを含み、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのそれぞれについて、前記3D変位ベクトルが非ゼロ成分を含むか否かを示す。
【0011】
例示的な実施形態において、前記3D変位ベクトルのシグナリングは、グループフラグをシグナリングすることを含み、前記グループフラグは、複数の前記頂点のサブセットのグループについて、前記3D変位ベクトルが非ゼロ成分を含むか否かを示す。
【0012】
例示的な実施形態において、前記シグナリングコードは、少なくとも1つの前記プロセッサに、フラグをシグナリングさせるように更に構成され、前記フラグは、複数の前記頂点のサブセットのグループについて、前記グループに変換を実施するか否かを示す。
【0013】
例示的な実施形態において、前記シグナリングコードは、少なくとも1つの前記プロセッサに、複数のフラグをシグナリングさせるように更に構成され、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのグループの成分のそれぞれについて、前記グループの成分のそれぞれに変換を実施するか否かを示す。
【0014】
例示的な実施形態において、前記3D変位ベクトルのシグナリングは、複数のフラグをシグナリングすることを含み、複数の前記フラグのそれぞれは、複数の前記頂点のサブセットのそれぞれについて、前記3D変位ベクトルの成分が非ゼロベクトルを含むか否かを示す。
【図面の簡単な説明】
【0015】
開示された主題の更なる特徴、性質及び様々な利点は、下記の詳細な説明及び添付の図面からより明らかになる。
【
図2】実施形態に係る簡略化したブロック図である。
【
図3】実施形態に係る簡略化したブロック図である。
【
図4】実施形態に係る簡略化したブロック図である。
【
図9】AおよびBは、実施形態に係る簡略化した図である。
【
図10】実施形態に係る簡略化したブロック図である。
【
図11】実施形態に係る簡略化したブロック図である。
【
図12】実施形態に係る簡略化したブロック図である。
【
図20】実施形態に係る簡略化したフローチャートである。
【
図21】実施形態に係る簡略化したフローチャートである。
【
図22】実施形態に係る簡略化したフローチャートである。
【発明を実施するための形態】
【0016】
後述する提案された特徴は、別々に使用されてもよく、任意の順序で組み合わせて使用されてもよい。更に、実施形態は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されるプログラムを実行する。
【0017】
図1は、本開示の一実施形態に係る通信システム100の簡略化したブロック図を示す。通信システム100は、ネットワーク105を介して相互接続された少なくとも2つの端末102、103を含んでもよい。データの単方向送信の場合、第1の端末103は、ネットワーク105を介して、ビデオデータを他方の端末102に送信するためにローカル位置でビデオデータをコード化することができる。第2の端末102は、ネットワーク105から他方の端末のコード化されたビデオデータを受信し、コード化されたデータをデコードし、復元されたビデオデータを表示することができる。データの単方向送信は、メディア供給用途などにおいて一般的である。
【0018】
図1は、例えば、ビデオ会議中に発生し得るコード化されたビデオの双方向送信をサポートするために設けられた第2の対の端末101、104を示す。データの双方向送信の場合、端末101及び104のうちの一方は、ネットワーク105を介して、撮影されたビデオデータを端末101及び104のうちの他方の端末に送信するためにローカル位置で撮影されたビデオデータをコード化することができる。端末101、104のうちの一方はさらに、端末101、104のうちの他方の端末によって送信されたコード化されたビデオデータを受信し、コード化されたデータをデコードし、復元されたビデオデータをローカル表示装置に表示することができる。
【0019】
図1において、端末101、102、103、104は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されてもよいが、本開示の原理は、これらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー及び/又は専用のビデオ会議機器における用途を見出す。ネットワーク105は、例えば有線及び/又は無線通信ネットワークを含む、端末101、102、103、104の間でコード化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク105は、回線交換及び/又はパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本議論の目的のために、ネットワーク105のアーキテクチャ及びトポロジーは、本明細書において以下で説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0020】
図2は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、及びCD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応用途に等しく適用可能である。
【0021】
ストリーミングシステムは、撮影サブシステム203を含んでもよく、撮影サブシステム203は、例えば非圧縮ビデオサンプルストリーム213を作成するビデオソース201、例えばデジタルカメラを含み得る。そのサンプルストリーム213は、エンコードされたビデオビットストリームと比較すると、高いデータ量として強調されてもよく、また、ビデオソース201に結合されたエンコーダ202によって処理することができ、ビデオソース201は、例えば上述したカメラであってもよい。エンコーダ202は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか又は実施するために、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。サンプルストリームと比較すると、より低いデータ量として強調され得るエンコードされたビデオビットストリーム204は、将来の使用のためにストリーミングサーバ205に記憶することができる。1つ以上のストリーミングクライアント212及び207は、ストリーミングサーバ205にアクセスして、エンコードされたビデオビットストリーム204のコピー208及び206を検索することができる。クライアント212は、エンコードされたビデオビットストリーム208の入り方向コピーをデコードし、ディスプレイ209又は他のレンダリングデバイス(図示せず)でレンダリングできる出方向ビデオサンプルストリーム210を作成することができる、ビデオデコーダ211を含んでもよい。いくつかのストリーミングシステムにおいて、ビデオビットストリーム204、206及び208は、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。これらの規格の例は、上述されており、本明細書で更に記載される。
【0022】
図3は、本発明の一実施形態に係るビデオデコーダ300の機能ブロック図であり得る。
【0023】
受信機302は、デコーダ300によってデコードされる1つ以上のコード化ビデオシーケンスを受信してもよく、同一又は別の実施形態では、一度に1つのコード化ビデオシーケンスを受信し、各コード化ビデオシーケンスのデコーディングは、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル301から受信されてもよい。受信機302は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コード化オーディオデータ及び/又は補助データストリームとともに、エンコードされたビデオデータを受信してもよい。受信機302は、コード化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ303は、受信機302とエントロピーデコーダ/パーサ304(以降、「パーサ」)の間に結合されてもよい。受信機302が十分な帯域幅及び可制御性を有する記憶/転送装置から、又は等同期ネットワークからデータを受信する際に、バッファメモリ303は必要ではないことがあり、小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ303が必要であることがあり、比較的大きいことがあり、有利には適応サイズであることができる。
【0024】
ビデオデコーダ300は、エントロピーコード化ビデオシーケンスからシンボル313を再構築するパーサ304を含んでもよい。これらのシンボルのカテゴリは、デコーダ300の動作を管理するために使用される情報を含み、そして、デコーダの不可欠な部分ではないが、デコーダに結合することができるディスプレイ312のようなレンダリングデバイスを制御する情報を潜在的に含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であってもよい。パーサ304は、受信されたコード化ビデオシーケンスを構文解析/エントロピーデコードしてもよい。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に合わせることができ、可変長コーディング、ハフマンコーディング、コンテキスト感受性を有するか又は有さない算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサ304は、グループに対応する少なくとも1つのパラメータに基づいて、コード化ビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出してもよい。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。エントロピーデコーダ/パーサは、コード化ビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報も抽出してもよい。
【0025】
パーサ304は、シンボル313を作成するために、バッファメモリ303から受信されたビデオシーケンスに対してエントロピーデコーディング/構文解析動作を実行してもよい。パーサ304は、エンコードされたデータを受信し、特定のシンボル313を選択的にデコードしてもよい。更に、パーサ304は、特定のシンボル313を動き補償予測ユニット306、スケーラ/逆変換ユニット305、イントラ予測ユニット307又はループフィルタ311に提供するか否かを決定してもよい。
【0026】
シンボル313の再構築は、コード化されたビデオピクチャ又はその一部(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)のタイプ及び他の要因に応じて、複数の異なるユニットに関与することができる。どのユニットが、どのように関与するかは、パーサ304によってコード化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサ304と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0027】
すでに述べた機能ブロックに加え、デコーダ300は、以下で説明されるようにいくつかの機能ユニットに概念的に細分することができる。商業的制約で動作する実際の実施では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分は適切である。
【0028】
第1のユニットは、スケーラ/逆変換ユニット305である。スケーラ/逆変換ユニット305は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数とを、シンボル313としてパーサ304から受信する。スケーラ/逆変換ユニット305は、アグリゲータ310に入力可能なサンプル値を含むブロックを出力することができる。
【0029】
いくつかの場合では、スケーラ/逆変換ユニット305の出力サンプルは、イントラコード化ブロック、すなわち、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用できるブロックに関係することができる。このような予測情報は、イントラピクチャ予測ユニット307によって提供することができる。いくつかの場合では、イントラピクチャ予測ユニット307は、現在(部分的に再構築された)ピクチャ309から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ310は、いくつかの場合では、サンプルごとに、イントラ予測ユニット307が生成した予測情報を、スケーラ/逆変換ユニット305によって提供される出力サンプル情報に追加する。
【0030】
他の場合では、スケーラ/逆変換ユニット305の出力サンプルは、インターコード化された、潜在的に動き補償されたブロックに関係することができる。このような場合に、動き補償予測ユニット306は、参照ピクチャメモリ308にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル313に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ310によってスケーラ/逆変換ユニットの出力に追加することができる(この場合に、残差サンプル又は残差信号と呼ばれる)。動き補償ユニットが予測サンプルを取り出す参照ピクチャメモリ内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有し得るシンボル313の形態で動き補償ユニットに利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに参照ピクチャメモリから取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0031】
アグリゲータ310の出力サンプルは、ループフィルタユニット311において様々なループフィルタリング技術によって用いられてもよい。ビデオ圧縮技術は、コード化されたビデオビットストリームに含まれ、パーサ304からのシンボル313としてループフィルタユニット311に利用可能とされたパラメータによって制御されるループ内フィルタ技術を含むことができ、コード化ピクチャ又はコード化ビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできる。
【0032】
ループフィルタユニット311の出力は、レンダリングデバイス312へ出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ557に記憶することができるサンプルストリームであり得る。
【0033】
特定のコード化ピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用することができる。コード化ピクチャが完全に再構築され、コード化ピクチャが(例えば、パーサ304によって)参照ピクチャとして識別されると、現在参照ピクチャ309は、参照ピクチャバッファ308の一部になることができ、次のコード化ピクチャの再構築を開始する前に新しい現在ピクチャメモリを再割当てすることができる。
【0034】
ビデオデコーダ300は、ITU-T勧告H.265などの規格において文書化され得る所定のビデオ圧縮技術に従ってデコーディング動作を実行することができる。コード化ビデオシーケンスは、ビデオ圧縮技術文書又は規格、特にその中のプロファイル文書で指定されたように、コード化ビデオシーケンスがビデオ圧縮技術又は規格の構文に従うという意味で、使用されているビデオ圧縮技術又は規格によって指定された構文に従うことができる。コード化ビデオシーケンスの複雑さがビデオ圧縮技術又は規格のレベルで限定される範囲内にあることも、コンプライアンスに対して必要である。いくつかの場合では、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。いくつかの場合では、レベルによって設定された制限は、仮想参照デコーダ(HRD)の仕様及びコード化ビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによって更に制限され得る。
【0035】
一実施形態では、受信機302は、エンコードされたビデオとともに追加の(冗長)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、及び/又は、元のビデオデータをより正確に再構築するためにビデオデコーダ300によって使用されてもよい。追加のデータは、例えば、時間的、空間的又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態であり得る。
【0036】
図4は、本開示の一実施形態に係るビデオエンコーダ400の機能ブロック図であり得る。
【0037】
エンコーダ400は、エンコーダ400によってコード化されるビデオ画像を撮影し得るビデオソース401(エンコーダの一部ではない)からビデオサンプルを受信することができる。
【0038】
ビデオソース401は、エンコーダ(303)によってコード化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB・・・)及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース401は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース401は、ローカル画像情報をビデオシーケンスとして撮影するカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
【0039】
一実施形態によれば、エンコーダ400は、リアルタイムで又は用途によって要求される任意の他の時間制約の下でソースビデオシーケンスのピクチャをコード化し、コード化ビデオシーケンス410に圧縮することができる。適切なコーディング速度を実施することは、コントローラ402の機能の1つである。コントローラは、以下で説明されるように他の機能ユニットを制御し、これらの機能ユニットに機能的に結合される。明瞭にするために、結合は図示されていない。コントローラによって設定されたパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値…)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ402の他の機能が特定のシステム設計に対して最適化されたビデオエンコーダ400に関係する場合があるため、当業者であれば、これらの機能を容易に識別することができる。
【0040】
いくつかのビデオエンコーダは、当業者が「コーディングループ」として容易に認識するもので動作する。過度に簡略化した説明として、コーディングループは、エンコーダ400(以下、「ソースコーダ」)のエンコーディング部分(コード化される入力ピクチャ及び参照ピクチャに基づくシンボルの作成を担当する)と、エンコーダ400に埋め込まれた(ローカル)デコーダ406とを含むことができる。この(ローカル)デコーダ406は、シンボルを再構築して、(リモート)デコーダでも作成されるサンプルデータを作成する(シンボルとコード化ビデオビットストリームとの間の任意の圧縮は、開示された主題で考えられるビデオ圧縮技術では可逆であるためである)。再構築されたサンプルストリームは、参照ピクチャメモリ405に入力される。シンボルストリームのデコーディングにより、(ローカル又はリモート)デコーダの位置に関係なくビット正確な結果が得られるため、参照ピクチャバッファのコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコーディング中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性のこの基本原理(及び、例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、当業者に周知のものである。
【0041】
「ローカル」デコーダ406の動作は、前文で
図3に関連して既に詳細に説明された、「リモート」デコーダ300の動作と同様であり得る。しかしながら、
図4も簡単に参照し、シンボルが利用可能であり、エントロピーコーダ408及びパーサ304によるコード化ビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得るため、チャネル301、受信機302、バッファメモリ303及びパーサ304を含むデコーダ300のエントロピーデコーディング部分は、ローカルデコーダ406では完全に実施されない場合がある。
【0042】
これで分かるように、デコーダに存在する構文解析/エントロピーデコーディング以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0043】
その動作の一部として、ソースコーダ403は、動き補償予測コーディングを実行してもよく、動き補償予測コーディングは、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の予めコード化されたフレームを参照して入力フレームを予測的にコード化する。このようにして、コーディングエンジン407は、入力フレームの画素ブロックと、入力フレームへの予測基準として選択され得る参照フレームの画素ブロックとの差をコード化する。
【0044】
ローカルビデオデコーダ406は、ソースコーダ403によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコード化されたビデオデータをデコードすることができる。コーディングエンジン407の動作は、有利には非可逆プロセスであり得る。コード化されたビデオデータがビデオデコーダ(
図4に図示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ406は、ビデオデコーダによって参照フレームに対して実行され得るデコーディングプロセスを再現し、再構築された参照フレームを、例えばキャッシュであり得る参照ピクチャメモリ405に記憶させることができる。このようにして、エンコーダ400は、遠端ビデオデコーダによって取得される再構築された参照フレームと共通するコンテンツ(送信エラー無し)を有する再構築された参照フレームのコピーをローカルに記憶し得る。
【0045】
予測子404は、コーディングエンジン407の予測検索を実行することができる。つまり、新しいコード化されるフレームについて、予測子404は、(候補の参照画素ブロックとしての)サンプルデータ、又は、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ405で検索することができる。予測子404は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに動作することができる。いくつかの場合では、予測子404によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ405に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0046】
コントローラ402は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含む、例えばビデオコーダであり得るソースコーダ403のコーディング動作を管理してもよい。
【0047】
前述の全ての機能ユニットの出力は、エントロピーコーダ408でエントロピーコーディングされてもよい。エントロピーコーダは、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの当業者の既知の技術に従って、様々な機能ユニットによって生成されたシンボルを無損失で圧縮することにより、これらのシンボルをコード化ビデオシーケンスに変換する。
【0048】
送信機409は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル411を介した送信の準備のために、エントロピーコーダ408によって作成されたコード化ビデオシーケンスをバッファリングすることができる。送信機409は、ソースコーダ403からのコード化されたビデオデータを、送信されるべき他のデータ、例えば、コード化オーディオデータ及び/又は補助データストリーム(ソースが図示されていない)とマージしてもよい。
【0049】
コントローラ402は、エンコーダ400の動作を管理してもよい。コーディング中、コントローラ402は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、これは、各々のピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、下記のフレームタイプのいずれかが割り当てられてもよいことが多い。
【0050】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるフレームを使用せずにコード化及びデコードされ得るものであり得る。いくつかのビデオコーデックは、例えば、インディペンデントデコーダリフレッシュピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形及びそれらの各々の用途及び特徴を知っている。
【0051】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測によってコード化及びデコードされ得るものであり得る。
【0052】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測によってコード化及びデコードされ得るものであり得る。同様に、多重予測ピクチャは、単数のブロックの再構築のために3つ以上の参照ピクチャ及び関連メタデータを使用することができる。
【0053】
ソースピクチャは、一般的に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8又は16×16サンプルのブロック)に空間的に細分化され、ブロックごとにコード化されてもよい。ブロックは、ブロックの各々のピクチャに適用されるコーディング割り当てによって決定された他の(既にコード化された)ブロックを参照して予測的にコード化され得る。例えば、Iピクチャのブロックは、非予測的にコード化されてもよく、同一のピクチャの既にコード化されたブロックを参照して予測的にコード化されてもよい(空間的予測又はイントラ予測)。Pピクチャの画素ブロックは、1つの予めコード化された参照ピクチャを参照して、空間的予測又は時間的予測を介して非予測的にコード化されてもよい。Bピクチャのブロックは、1つ又は2つの予めコード化された参照ピクチャを参照して、空間的予測又は時間的予測を介して非予測的にコード化されてもよい。
【0054】
エンコーダ400は、例えばビデオコーダであってもよく、ITU-T勧告H.265などの所定のビデオコーディング技術又は規格に従ってコーディング動作を実行することができる。動作中、エンコーダ400は、入力ビデオシーケンスの時間的冗長性及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コード化されたビデオデータは、使用されるビデオコーディング技術又は規格によって指定された構文に従う場合がある。
【0055】
一実施形態では、送信機409は、エンコードされたビデオとともに追加のデータを送信してもよい。ソースコーダ403は、このようなデータをコード化ビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャ及びスライスなどの他の形態の冗長データ、補足強化情報(SEI)メッセージ、ビジュアルユーザビリティ情報(VUI)パラメータセットフラグメントなどを含み得る。
【0056】
図5は、HEVC及びJEMで使用されるイントラ予測モードを示す。自然ビデオで示される任意のエッジ方向を撮影するために、指向性イントラモードの数は、33からHEVCで使用されるように65まで拡張される。HEVCの上にある、JEMにおける追加の指向性モードは、
図5に点線の矢印で示され、平面モードとDCモードは同じままである。これらのより高密度の指向性イントラ予測モードは、全てのブロックサイズ、並びに輝度及び彩度の両方のイントラ予測に適用される。
図5に示すように、奇数イントラ予測モードインデックスに関連付けられた、点線の矢印で特定される指向性イントラ予測モードは、奇数イントラ予測モードと呼ばれる。偶数イントラ予測モードインデックスに関連付けられた、実線の矢印で特定される指向性イントラ予測モードは、偶数イントラ予測モードと呼ばれる。本明細書では、
図5において実線又は点線の矢印で示される指向性イントラ予測モードは、角度モードとも称される。
【0057】
JEMでは、合計67のイントラ予測モードが輝度イントラ予測に使用される。イントラモードをコード化するために、サイズ6の最確モード(MPM)リストが、隣接するブロックのイントラモードに基づいて構築される。イントラモードがMPMリストになければ、イントラモードが選択されたモードに属するか否かを示すフラグがシグナリングされる。JEM-3.0では、16個の選択されたモードがあり、4つの角度モードごとに均一に選択される。JVET-D0114及びJVET-G0060では、均一に選択されたモードを置き換えるために16個のセカンダリMPMが導出される。
【0058】
図6は、イントラ指向性モードに利用されるN個の参照層を示す。ブロックユニット611、セグメントA601、セグメントB602、セグメントC603、セグメントD604、セグメントE605、セグメントF606、第1の参照層610、第2の参照層609、第3の参照層608、及び第4の参照層607がある。
【0059】
HEVCとJEMの両方、及びH.264/AVCなどの他の規格では、現在ブロックの予測に使用される参照サンプルは、最も近い参照ライン(行又は列)に制限される。複数の参照ラインイントラ予測の方法では、候補参照ライン(行又は列)の数がイントラ指向性モードに対して1(つまり最も近い)からNまで増加し、Nは1以上の整数である。
図2は、4×4予測ユニット(PU)を例として、マルチラインイントラ指向性予測方法の概念を示す。イントラ指向性モードでは、予測子を生成するために、N個の参照層のうちの1つを任意に選択することができる。言い換えれば、予測子p(x,y)は、参照サンプルS1、S2…SNのうちの1つから生成される。イントラ指向性モードに対してどの参照層が選択されたかを示すフラグをシグナリングする。Nが1に設定されれば、イントラ指向性予測方法は、JEM2.0の従来の方法と同じになる。
図6では、参照ライン610、609、608、607は、左上の参照サンプルとともに6つのセグメント601、602、603、604、605、606で構成される。本明細書では、参照層は、参照ラインとも呼ばれる。現在ブロックユニット内の左上の画素の座標は(0,0)であり、第1の参照ラインの左上の画素は(-1,-1)である。
【0060】
JEMでは、輝度成分の場合、イントラ予測サンプルの生成に使用される隣接するサンプルは、生成プロセスの前にフィルタリングされる。フィルタリングは、指定されたイントラ予測モードと変換ブロックサイズによって制御される。イントラ予測モードがDCであれば、あるいは変換ブロックサイズが4x4に等しければ、隣接するサンプルは、フィルタリングされない。指定されたイントラ予測モードと垂直モード(又は水平モード)との間の距離が、事前に定義された閾値よりも大きければ、フィルタリングプロセスが有効になる。隣接するサンプルのフィルタリングには、[1,2,1]フィルタとバイリニアフィルタが使用される。
【0061】
位置依存イントラ予測組合せ(PDPC)方法は、フィルタリングされていない境界参照サンプルと、フィルタリングされた境界参照サンプルを使用したHEVCスタイルのイントラ予測との組み合わせを呼び出すイントラ予測方法である。(x,y)に位置する各予測サンプルpred[x][y]は、以下のとおり計算される。
pred[x][y]=(wL×R-1,y+wT×Rx,-1+wTL×R-1,-1+(64-wL-wT-wTL)×pred[x][y]+32)>>6 (式2-1)
ここで、Rx,-1、R-1,yは、それぞれ、現在サンプル(x,y)の上部と左側に位置するフィルタリングされていない参照サンプルを表し、R-1,-1は、現在ブロックの左上隅に位置するフィルタリングされていない参照サンプルを表す。重み付けは、以下のとおり計算される。
wT=32>>((y<<1)>>シフト) (式2-2)
wL=32>>((x<<1)>>シフト) (式2-3)
wTL=-(wL>>4)-(wT>>4) (式2-4)
シフト=(log2(幅)+log2(高さ)+2)>>2 (式2-5)
【0062】
図7は、DCモードPDPCが1つの4×4ブロック内の(0,0)及び(1,0)の位置に対して重み付け(wL、wT、wTL)を行うダイアグラム700を示す。PDPCがDCイントラモード、平面イントラモード、水平イントラモード及び垂直イントラモードに適用されれば、例えばHEVC DCモード境界フィルタ又は水平/垂直モードエッジフィルタなどの追加の境界フィルタは必要ではない。
図7は、右上の対角モードに適用されるPDPCの参照サンプルR
x,-1、R
-1,y及びR
-1,-1の定義を示す。予測サンプルpred(x’,y’)は、予測ブロック内の(x’,y’)に位置する。参照サンプルR
x,-1の座標xは、x=x’+y’+1で与えられ、参照サンプルR
-1,yの座標yは同様に、y=x’+y’+1で与えられる。
【0063】
図8は、局所照明補償(LIC)ダイアグラム800を示し、照明変化の線形モデルに基づいており、スケーリング係数a及びオフセットbを使用する。そして、インターモードでコード化されたコーディングユニット(CU)のそれぞれに対して、適応的に有効又は無効になる。
【0064】
LICがCUに適用される場合、最小二乗誤差法を使用して、現在CUの隣接するサンプルとそれらの対応する参照サンプルを使用してパラメータa及びbを導出する。より具体的には、
図8に示すように、CUのサブサンプリング(2:1サブサンプリング)された隣接するサンプル及び参照ピクチャ内の(現在CU又はサブCUの動き情報によって識別される)対応するサンプルが使用される。ICパラメータは、導出され、予測方向ごとに別々に適用される。
【0065】
CUがマージモードでコード化される場合、マージモードでの動き情報のコピーと同様の方法でLICフラグが隣接するブロックからコピーされ、それ以外の場合、LICが適用されるか否かを示すLICフラグがCUにシグナリングされる。
【0066】
図9Aは、HEVCで使用されるイントラ予測モード900を示す。HEVCには、合計35個のイントラ予測モードがあり、そのうち、モード10は水平モードであり、モード26は垂直モードであり、モード2、モード18及びモード34は対角モードである。イントラ予測モードは、3つの最確モード(MPM)と残りの32個のモードによってシグナリングされる。
【0067】
図9Bは、VVCの実施形態では合計87個のイントラ予測モードがあることを示し、ここで、モード18が水平モードであり、モード50が垂直モードであり、モード2、モード34及びモード66が対角モードである。モード-1~-10及びモード67~76は、広角イントラ予測(WAIP)モードと呼ばれる。
【0068】
PDPC式に従って、イントラ予測モード(DC、平面、角度)及び参照サンプルの線形組み合わせを使用して位置(x,y)にある予測サンプルpred(x,y)を予測する。
【0069】
pred(x,y)=(wL×R-1,y+wT×Rx,-1-wTL×R-1,-1+(64-wL-wT+wTL)×pred(x,y)+32)>>6
ここで、Rx,-1、R-1,yは、それぞれ、現在サンプル(x,y)の上部と左側に位置する参照サンプルを表し、R-1,-1は、現在ブロックの左上隅に位置する参照サンプルを表す。
【0070】
DCモードの場合、幅及び高さの寸法を持つブロックに対して、重み付けを以下のとおり計算する。
【0071】
wT=32>>((y<<1)>>nScale),wL=32>>((x<<1)>>nScale),wTL=(wL>>4)+(wT>>4)
ここで、nScale=(log2(幅)-2+log2(高さ)-2+2)>>2、wTは、同じ水平座標を持つ上記参照ラインに位置する参照サンプルの重み付け係数を表し、wLは、同じ垂直座標を持つ左側参照ラインに位置する参照サンプルの重み付け係数を表し、wTLは、現在ブロックの左上の参照サンプルの重み付け係数を表し、nScaleは、軸に沿って重み付け係数が減少する(wLが左から右に減少するか、wTが上から下に減少する)速度、つまり重み付け係数の減少率を指定し、現在の設計では、該重み付け係数の減少率は、X軸(左から右へ)とY軸(上から下へ)に沿って同様である。そして、32は、隣接するサンプルの初期重み付け係数を表し、初期重み付け係数は、現在CBの左上のサンプルに割り当てられた上部(左又は左上)の重み付けでもあり、PDPCプロセスにおける隣接するサンプルの重み付け係数は、この初期重み付け係数以下である必要がある。
【0072】
平面モードの場合、wTL=0、水平モードの場合、wTL=wT、垂直モードの場合、wTL=wLである。PDPCの重み付けは、加算とシフトのみで計算することができる。式1を使用して1つのステップでpred(x,y)の値を計算することができる。
【0073】
図10は、無指向性メディアアプリケーションフォーマット(OMAF)で記載される360度仮想現実(VR360)ストリーミングを可能にし得るOMAFにおける例示的な視点依存処理の簡略化されたブロックスタイルのワークフローダイアグラム1000を示す。
【0074】
取得ブロック1001では、画像データがVR360内のシーンを表すことができる場合、同じ時間インスタンスの複数の画像及びオーディオのデータなどのビデオデータAを取得する。処理ブロック1003では、スティッチング、1つ以上の仮想現実(VR)角度又は他の角度/視点に関して投影されたピクチャへのマッピング、及び領域ごとのパッキングのうちの1つ以上によって同じ時間インスタンスの画像Biを処理する。更に、プロセスの配信及びレンダリングを支援するために、このような処理された情報及び他の情報のいずれかを示すメタデータを作成することができる。
【0075】
データDに関しては、画像エンコーディングブロック1005では、投影されたピクチャをデータEiにエンコードし、視点に依存しないストリーミングでメディアファイルとして構成し、ビデオエンコーディングブロック1004では、ビデオピクチャを例えば単層ビットストリームとしてのデータEvとしてエンコードし、データBaに関しては、オーディオエンコーディングブロック1002では、オーディオデータをデータEaにエンコードすることもできる。
【0076】
データEa、Ev及びEi、全体のコード化ビットストリームFi及び/又はFを、(コンテンツ配信ネットワーク(CDN)/クラウド)サーバに記憶することができ、通常、配信ブロック1007などでは、OMAFプレーヤー1020に完全に送信することができ、そして、頭部/目追跡ブロック1008からの、ユーザがVR画像装置を通して該装置の視点仕様に対して見ている角度などの様々なメタデータ、ファイル再生、向き/視点メタデータに関して、現在視点に対応するデコードピクチャの少なくとも1つのエリアが表示ブロック1016でユーザにレンダリングされるように、デコーダによって完全にデコードすることができる。VR360の目立った特徴は、任意の特定の時点で1つの視点のみを表示できることであり、このような特徴は、ユーザの視点(又は、推奨視点のタイムドメタデータなどの他の任意の基準)に応じて選択的に配信することで、無指向性ビデオシステムの性能を向上させるために利用することができる。例えば、例示的な実施形態によれば、視点依存の配信は、タイルベースのビデオコーディングによって有効にすることができる。
【0077】
上述したエンコーディングブロックと同様に、例示的な実施形態に係るOMAFプレーヤー1020は、同様に、1つ以上のデータF’及び/又はF’i及びメタデータのファイル/セグメントのカプセル化解除に関してこのようなエンコーディングの1つ以上の側面を逆にし、オーディオデコーディングブロック1010でオーディオデータE’iを、ビデオデコーディングブロック1013でビデオデータE’vを、画像デコーディングブロック1014で画像データE’iをデコードして、オーディオレンダリングブロック1011でデータB’aのオーディオレンダリングを進め、画像レンダリングブロック1015でデータD’の画像レンダリングを進め、それにより、向き/視点メタデータなどの様々なメタデータに従うVR360形式で、表示ブロック1016で表示データA’iを、ラウドスピーカ/ヘッドフォンロック1012でオーディオデータA’sを出力することができる。様々なメタデータは、OMAFプレーヤー1020のユーザによって又はOMAFプレーヤー1020のユーザのために選択され得る様々なトラック、言語、品質、ビューに応じて、データのデコーディング及びレンダリングプロセスのうちの1つに影響を及ぼし得る。本明細書に記載される処理の順序は、例示的な実施形態のために示され、処理が他の例示的な実施形態に従って他の順序で実施され得ることを理解されたい。
【0078】
図11は、6自由度メディアの撮影/生成/(デコード)コーディング/レンダリング/表示に関して点群データ(本明細書では「V-PCC」)のビュー位置及び角度依存処理を有する(コード化)点群データの簡略化されたブロックスタイルのコンテンツフロープロセスダイアグラム1100を示す。記載される特徴は、別々に使用されてもよく、任意の順序で組み合わせて使用されてもよく、図示される要素のうち、特にエンコーディング及びデコーディングのための要素は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施することができ、1つ以上のプロセッサは、例示的な実施形態に係る非一時的なコンピュータ可読媒体に記憶されるプログラムを実行することができることを理解されたい。
【0079】
ダイアグラム1100は、V-PCCに従ってコード化点群データをストリーミングする例示的な実施形態を示す。
【0080】
ボリュームデータ取得ブロック1101では、現実世界の視覚シーン又はコンピュータ生成の視覚シーン(又はそれらの組み合わせ)を、1組のカメラ装置によって撮影するか、又はコンピュータによってボリュームデータとして合成することができ、任意の形式を有し得るボリュームデータを、点群への変換ブロック1102で画像処理を通じて、(量子化された)点群データ形式に変換することができる。例えば、例示的な実施形態によれば、ボリュームデータからのデータは、ボリュームデータ及び任意の関連データから以下に記載される値のうちの1つ以上を所望の点群形式に引くことによって点群の点のうちのいくつかの点に変換されたエリアデータごとのエリアデータであってもよい。例示的な実施形態によれば、ボリュームデータは、例えば、3Dデータセットの2D投影が行われ得るスライスなどの、2D画像の3Dデータセットであってもよい。例示的な実施形態によれば、点群データ形式は、1つ以上の様々な空間内のデータ点の表現を含み、ボリュームデータを表現するために使用することができ、サンプリング及びデータ圧縮に関して、例えば時間的冗長性に関して改善を与えることができ、例えば、x、y、z形式の点群データは、点群データの複数の点のそれぞれで、色の値(例えば、RGB)、輝度、強度などを表し、プログレッシブデコーディング、ポリゴンメッシュ、ダイレクトレンダリング、2D四分木データの八分木3D表現とともに使用することができる。
【0081】
画像への投影ブロック1103では、取得された点群データを2D画像に投影し、ビデオベースの点群コーディング(V-PCC)を用いて画像/ビデオピクチャとしてエンコードすることができる。投影された点群データは、属性と、ジオメトリと、占有マップと、画家のアルゴリズム、レイキャスティングアルゴリズム、(3D)バイナリ空間分割アルゴリズムなどによる点群データの再構築に使用される他のメタデータとで構成されてもよい。
【0082】
一方、シーンジェネレータブロック1109では、シーンジェネレータは、例えば監督の意向又はユーザの好みによって、6自由度(DoF)メディアのレンダリング及び表示に使用されるいくつかのメタデータを生成することができる。このような6DoFメディアは、点群コード化データ内に又は少なくとも点群コード化データに従って仮想体験に関して前後、上下及び左右に移動することを可能にする追加の次元に加えて、3D軸X、Y、Z上の回転変化によるシーンの3D視聴のような360VRを含んでもよい。シーン記述メタデータは、コード化点群データと、VR360、ライトフィールド、オーディオなどを含む他のメディアデータとで構成された1つ以上のシーンを定義し、
図11及び関連する記述に示されるように、1つ以上のクラウドサーバ及び/又はファイル/セグメントのカプセル化/カプセル化解除処理に提供することができる。
【0083】
このような記述が例示的な実施形態を表すとき、上述したビデオ及び画像のエンコーディングと同様(理解されるように、オーディオエンコーディングも上述したように提供され得る)のビデオエンコーディングブロック1104及び画像エンコーディングブロック1105の後、ファイル/セグメントカプセル化ブロック1106では、コード化点群データを、1つ以上のビデオコンテナ形式などの特定のメディアコンテナファイル形式に従って、ファイル再生用のメディアファイル、又はストリーミング用の初期化セグメントとメディアセグメントのシーケンスとして構成し、とりわけ、以下に記載されるDASHに関して使用できるように、処理を行う。ファイルコンテナは、シーンジェネレータブロック1109などからのシーン記述メタデータをファイル又はセグメントに含めることもできる。
【0084】
例示的な実施形態によれば、ファイルは、ユーザ又は作成者の入力に応じて要求に基づいて送信されるように、シーン記述メタデータに応じて、6DoFメディアのうち、少なくとも1つのビュー位置と、その/それらのビュー位置での少なくとも1つ以上の角度ビューを1回以上含んでカプセル化される。更に、例示的な実施形態によれば、このようなファイルのセグメントは、単一の視点及びそれでの角度を1回以上示す6DoFメディアの一部など、このようなファイルの1つ以上の部分を含んでもよいが、これらは、例示的な実施形態に過ぎず、ネットワーク、ユーザ、作成者の能力及び入力などの様々な条件に応じて変更されてもよい。
【0085】
例示的な実施形態によれば、点群データを、ビデオエンコーディングブロック1104及び画像エンコーディングブロック1105のうちの1つ以上などで独立してコード化される複数の2D/3D領域に分割する。次に、ファイル/セグメントカプセル化ブロック1106では、点群データの独立コード化されたパーティションのそれぞれをファイル及び/又はセグメント内のトラックとしてカプセル化することができる。例示的な実施形態によれば、各点群トラック及び/又はメタデータトラックは、ビュー位置/角度依存処理に有用ないくつかのメタデータを含んでもよい。
【0086】
例示的な実施形態によれば、ファイル/セグメントカプセル化ブロックに関してカプセル化されたファイル及び/又はセグメントに含まれるメタデータなど、ビュー位置/角度依存処理に有用なメタデータは、インデックス付きの2D/3Dパーティションのレイアウト情報、3Dボリュームパーティションを1つ以上の2Dパーティション(例えば、タイル/タイルグループ/スライス/サブピクチャのいずれか)と関連する(動的)マッピング情報、6DoF座標系上の各3Dパーティションの3D位置、代表的なビュー位置/角度リスト、3Dボリュームパーティションに対応する選択されたビュー位置/角度リスト、選択されたビュー位置/角度に対応する2D/3Dパーティションのインデックス、各2D/3Dパーティションの品質(ランク)情報、例えば各ビュー位置/角度に応じた各2D/3Dパーティションのレンダリング情報のうちの1つ以上を含む。V-PCCプレーヤーのユーザによって要求される場合又はV-PCCプレーヤーのユーザ向けのコンテンツ作成者によって指示される場合、このようなメタデータを呼び出すと、このようなメタデータに関して望ましい6DoFメディアの特定の部分に対するより効率的な処理を可能にすることができ、それにより、V-PCCプレーヤーは、6DoFメディアの未使用の部分を配信するのではなく、そのメディアの特定の部分に焦点を当てて他の部分より高品質の画像を配信することができる。
【0087】
例えば、クラウドサーバブロック1107では、ファイル/セグメントカプセル化ブロック1106から、(例えば、Dynamic Adaptive Streaming over HTTP(DASH)による)配信メカニズムを使用して、ファイル又は該ファイルの1つ以上のセグメントをV-PCCプレーヤー1125及びクラウドサーバのいずれかに直接的に配信することができ、クラウドサーバブロック1107では、クラウドサーバがファイルから1つ以上のトラック及び/又は1つ以上の特定の2D/3Dパーティションを抽出することができ、複数のコード化点群データを1つのデータにマージすることができる。
【0088】
位置/視野角追跡ブロック1108などのデータによれば、現在の視野位置及び角度がクライアントシステムにおいて6DoF座標系で定義される場合、クラウドサーバブロック1107では、ビュー位置/角度メタデータを、ファイル/セグメントカプセル化ブロック1106から配信するか又は他の方法でクラウドサーバに既にあるファイル又はセグメントから処理することができ、それにより、クラウドサーバは、ストアファイルから適切なパーティションを抽出し、例えばV-PCCプレーヤー1125を有するクライアントシステムからのメタデータに応じて、それらを(必要に応じて)マージすることができ、抽出されたデータは、ファイル又はセグメントとしてクライアントに配信することができる。
【0089】
このようなデータに関して、ファイル/セグメントカプセル化解除ブロック1115では、ファイルカプセル化解除器は、ファイル又は受信されたセグメントを処理し、コード化ビットストリームを抽出し、メタデータを構文解析し、次に、コード化点群データをビデオデコーディングブロック及び画像デコーディングブロックでデコードして点群再構築ブロック1112で点群データを再構築し、再構築された点群データを、表示ブロック1114で表示することができ、及び/又は、シーンジェネレータブロック1109に従ってシーン記述データに関してシーン構成ブロック1113で1つ以上の様々なシーン記述に応じて最初に構成することができる。
【0090】
上記を考慮すると、このような例示的なV-PCCフローは、V-PCC規格に対する利点を表し、該V-PCC規格は、記載された複数の2D/3Dエリアに対するパーティショニング能力と、単一の整合コード化ビデオビットストリームへのコード化2D/3Dパーティションの圧縮ドメインアセンブリの能力と、整合コード化ビットストリームへのコード化ピクチャのコード化2D/3Dのビットストリーム抽出能力とのうちの1つ以上を含み、このようなV-PCCシステムのサポートは、上述したメタデータのうちの1つ以上を運ぶメタデータを含むメカニズムをサポートするVVCビットストリーム用のコンテナ形成を含めることによって更に改善される。
【0091】
この観点から、また以下で更に記載される例示的な実施形態によれば、「メッシュ」という用語は、ボリュームオブジェクトの表面を記載する1つ以上のポリゴンの構成を示す。各ポリゴンは、3D空間内の頂点と、接続性情報と呼ばれる、頂点がどのように接続されるかの情報とによって定義される。任意選択で、色、法線などの頂点属性をメッシュ頂点に関連付けることができる。2D属性マップ内のメッシュをパラメータ化するマッピング情報を利用することにより、属性をメッシュの表面に関連付けることもできる。このようなマッピングは、メッシュ頂点に関連付けられた、UV座標又はテクスチャ座標と呼ばれるパラメトリック座標のセットによって記述することができる。2D属性マップは、テクスチャ、法線、変位などの高解像度属性情報を記憶するために使用される。例示的な実施形態によれば、このような情報は、テクスチャマッピング、シェーディングなどの様々な目的に使用することができる。
【0092】
それにもかかわらず、動的メッシュシーケンスは、経時的に変化する大量の情報で構成される可能性があるため、大量のデータを必要とする可能性がある。したがって、このようなコンテンツを記憶し送信するには、効率的な圧縮技術が必要である。IC、MESHGRID及びFAMCなどのメッシュ圧縮規格は、常時接続性、時変ジオメトリ及び頂点属性を有する動的メッシュに対処するようにMPEGによって以前に開発された。しかしながら、これらの規格では、時変属性マップ及び接続性情報が考慮されていない。通常、DCC(デジタルコンテンツ作成)ツールは、このような動的メッシュを生成する。一方、特にリアルタイムの制約の下で常時接続性動的メッシュを生成することは、ボリューム取得技術にとって困難である。このタイプのコンテンツは、既存の規格ではサポートされない。本明細書の例示的な実施形態によれば、時変接続性情報及び任意選択で時変属性マップを有する動的メッシュを直接的に処理する新しいメッシュ圧縮規格の側面を記載し、この規格は、リアルタイム通信、ストレージ、自由視点ビデオ、AR、VRなどの様々な用途向けの非可逆圧縮及び可逆圧縮を対象とする。ランダムアクセス及びスケーラブル/プログレッシブコーディングなどの機能性も考えられる。
【0093】
図12は、2Dアトラスサンプリングベースの方法などの1つの動的メッシュ圧縮の例示的なフレームワーク1200を表す。入力メッシュ1201の各フレームは、追跡、再メッシュ化、パラメータ化、ボクセル化などの一連の動作によって前処理することができる。なお、これらの動作は、エンコーダのみによって行われてもよく、デコーディングプロセスの一部ではない可能性があることを意味し、このような可能性は、例えば、エンコーダのみの場合に0、その他の場合に1を示すフラグによってメタデータ内でシグナリングすることができる。その後、2D UVアトラスを有するメッシュ1202を取得することができ、メッシュの各頂点は、2Dアトラスにおいて1つ以上の関連するUV座標を有する。次に、2Dアトラスにおいてサンプリングすることによって、メッシュを、ジオメトリマップ及び属性マップを含む複数のマップに変換することができる。次に、これらの2Dマップを、HEVC、VVC、AV1、AVS3などのビデオ/画像コーデックによってコード化することができる。デコーダ1203側では、デコードされた2Dマップからメッシュを再構築することができる。任意の後処理及びフィルタリングは、再構築メッシュ1204に適用することもできる。なお、3Dメッシュ再構築の目的で、他のメタデータをデコーダ側にシグナリングする可能性がある。なお、境界頂点のuv座標及びxyz座標を含むチャート境界情報をビットストリーム内で予測、量子化、エントロピーコーディング化することができる。量子化ステップサイズは、品質とビットレートとの間でトレードオフするようにエンコーダ側で設定することができる。
【0094】
いくつかの実施形態では、3Dメッシュをいくつかのセグメント(又はパッチ/チャート)に分割することができ、例示的な実施形態によれば、1つ以上の3Dメッシュセグメントが「3Dメッシュ」であると考えられてもよい。各セグメントは、ジオメトリ、属性及び接続性情報と関連している、接続された頂点のセットで構成される。
図13の例1300に示すように、3Dメッシュセグメントから上述した2D UVアトラス1202ブロックなどの2DチャートへのマッピングのUVパラメータ化プロセス1302では、1つ以上のメッシュセグメント1301を2D UVアトラス1304内の2Dチャート1303にマッピングする。メッシュセグメント内の各頂点(v
n)には、2D UVアトラス内の2D UV座標が割り当てられる。なお、2Dチャート内の頂点(v
n)は、それらの対応する3Dチャートの接続成分を形成する。各頂点のジオメトリ、属性、接続性情報は、それらの対応する3D頂点から受け継ぐこともできる。例えば、頂点v
4が頂点v
0、v
5、v
1、v
3に直接的に接続されるという情報を示すことができ、他の各頂点の情報も同様に示すことができる。更に、例示的な実施形態によれば、このような2Dテクスチャメッシュは更に、パッチごとに、例えば1つの「パッチ」としての各三角形(v
2、v
5、v
3)のパッチごとに、色情報などの情報を示し、
図16の例1600の少なくともUVパラメトリック特徴に関して示され、2Dチャートにおける境界頂点の図を示す
図17の例1700も参照されたい。
【0095】
例えば、
図13の例1300の特徴に加えて、3Dメッシュセグメント1301を複数の別個の2Dチャート1401及び1402にマッピングすることもできる
図14の例1400を参照されたい。この場合、3Dの頂点は、2D UVアトラスの複数の頂点に対応してもよい。
図14に示すように、2D UVアトラスでは、同じ3Dメッシュセグメントは、
図13のような単一のチャートではなく、複数の2Dチャートにマッピングされる。例えば、3D頂点v
1とv
4はそれぞれ、2つの2D対応関係v
1、v
1’とv
4、v
4’を有する。そのため、各チャートが3Dジオメトリ、属性及び接続性情報と関連している複数(通常は3つ以上)の頂点を含んでもよい
図14に示すように、3Dメッシュの通常の2D UVアトラスは、複数のチャートで構成されてもよい。
【0096】
図15は、境界頂点B
0、B
1、B
2、B
3、B
4、B
5、B
6、B
7を有するチャート内の導出された三角形分割を示す例1500を示す。このような情報が提供されると、任意の三角形分割方法を適用して、頂点(境界頂点及びサンプリングされた頂点を含む)間の接続性を作成することができる。例えば、各頂点について、最も近い2つの頂点を見つける。或いは、全ての頂点について、設定された回数の試行後に最小数の三角形に達するまで継続的に三角形を生成する。例1500に示すように、様々な規則的な形状の繰り返した三角形と様々な異形三角形があり、異形三角形は、通常、境界頂点に最も近く、他の任意の三角形と同じであっても同じでなくてもよい独自の固有の寸法を有する。接続性情報は、明示的なシグナリングによって再構築することもできる。例示的な実施形態によれば、ポリゴンが暗黙のルールによって復元できない場合、エンコーダは、ビットストリーム内で接続性情報をシグナリングすることができる。
【0097】
上述したパッチを見ると、例1500は、例えば、
図14及び15のいずれかに示される頂点v
3、v
2、v
5で形成されるパッチのようなパッチを表すことができる。
【0098】
境界頂点B
0、B
1、B
2、B
3、B
4、B
5、B
6、B
7は、2D UV空間で定義される。
図15に示すように、黒丸の頂点は、接続成分(パッチ/チャート)の境界エッジ上にあるため、境界頂点となる。境界エッジは、エッジが1つの三角形にのみ現れるか否かを確認することで決定することができる。例示的な実施形態によれば、ジオメトリ情報、例えば、現在2D UVパラメトリック形式の3D XYZ座標、及び2D UV座標という境界頂点の情報は重要であり、ビットストリームでシグナリングされるべきである。
【0099】
例えば、
図14に示すように、3Dの境界頂点が2D UVアトラスの複数の頂点に対応する場合、3D XUZから2D UVへのマッピングは1対複数にすることができる。したがって、マッピング関数を示すUV-to-XYZ(又はUV2XYZと呼ばれる)インデックスをシグナリングすることができる。UV2XYZは、各2D UV頂点を3D XYZ頂点に対応させるインデックスの1D配列であってもよい。
【0100】
例示的な実施形態によれば、メッシュ信号を効率的に表現するために、メッシュ頂点間の接続性情報とともにメッシュ頂点のサブセットを最初にコード化することができる。元のメッシュでは、これらの頂点間の接続は、元のメッシュからサブサンプリングされるため、存在しない可能性がある。頂点間の接続性情報をシグナリングするには様々な方法があるため、このようなサブセットは、ベースメッシュ又はベース頂点と呼ばれる。
【0101】
しかしながら、他の頂点は、既にデコードされた2つ以上のメッシュ頂点間に補間を適用することによって予測することができる。予測子頂点は、接続された2つの既存の頂点のエッジに沿ったジオメトリ位置を有するため、予測子のジオメトリ情報は、隣接するデコードされた頂点に基づいて計算することができる。いくつかの場合では、コード化される頂点から頂点予測子までの変位ベクトル又は予測誤差が更にコード化される必要がある。例えば、
図18の例1800を参照すると、このようなエッジベースの頂点予測の例を示し、より具体的には、左側に示す、三角形を平行四辺形に拡張することによる外挿と、右側に示す、2つの既存の頂点の加重平均による補間とによるイントラ予測を使用した頂点ジオメトリ予測を示す。ベース頂点(すなわち、
図18の左側の実線三角形1801)のデコーディング後、これらのベース頂点の間の補間を、接続されたエッジに沿って行うことができる。例えば、各エッジの中点を予測子として生成することができる。したがって、これらの補間された点のジオメトリ位置は、2つの隣接するデコードされた頂点の(重み付けされた)平均である(
図18の左側の点線1802)。すでにデコードされた2つの頂点の間に複数の中間点がある場合も、同様の方法で実行することができる。したがって、コード化される実際の頂点は、変位ベクトルを予測子に追加することによって再構築することができる(
図7の中部)。これらの追加の頂点をデコーディングした後も、新しくデコードされた頂点と既存のベース頂点との接続は維持される。また、新しくデコードされた頂点間の接続を更に確立することができる。これらの新しくデコードされた頂点1803とベース頂点を一緒に接続することによって、ベース頂点とともに新しいエッジに沿ってより多くの中間頂点予測子を生成することができる(
図7の右側)。したがって、より多くのデコードされる実際の頂点は、関連する変位ベクトルとともに存在する。
【0102】
例示的な実施形態によれば、メッシュフレーム1902のメッシュ頂点は、予めコード化されたメッシュフレーム1901のデコードされた頂点から予測することもできる。この予測メカニズムは、インター予測と呼ばれる。メッシュジオメトリインター予測の例は、インター予測を使用した頂点ジオメトリ予測を示す
図19の例1900に示される(以前のメッシュフレームの頂点が現在フレームの頂点の予測子となる)。いくつかの場合では、コード化される頂点から頂点予測子までの変位ベクトル又は予測誤差が更にコード化される必要がある。
【0103】
例示的な実施形態によれば、複数の方法は、動的メッシュ圧縮のために実施され、上述したエッジベースの頂点予測フレームワークの一部であり、まず、ベースメッシュをコード化し、次に、ベースメッシュのエッジからの接続性情報に基づいてより多くの追加の頂点を予測する。なお、これらは個別に又は任意の組み合わせで適用することができる。
【0104】
例えば、
図20の予測モードの頂点グループ化の例示的なフローチャート2000を考える。例えば
図15を参照して、メッシュ内の頂点を、S201において取得し、S202において予測目的で異なるグループに分割することができる。一例では、分割を、上述したように、S204におけるパッチ/チャートパーティショニングを使用して行う。別の例では、分割を各パッチ/チャートパーティショニングS205において行う。S204に進むかS205に進むかについての決定S203を、フラグなどによってシグナリングすることができる。S205の場合、同じパッチ/チャートのいくつかの頂点は、予測グループを形成し、同じ予測モードを共有するが、同じパッチ/チャートの他のいくつかの頂点は、別の予測モードを使用することができる。本明細書において、「予測モード」は、デコーダがパッチを含むビデオコンテンツの予測を行うために使用する特定のモードであると考えることができ、予測モードは、イントラ予測モードとインター予測モードにカテゴリ的に分割することができ、各カテゴリ内で、デコーダが選択する異なる特定のモードが存在する可能性がある。例示的な実施形態によれば、各グループでは、「本明細書における予測グループ」は、同じ特定のモード(例えば、特定の角度での角度モード)又は同じカテゴリカル予測モード(例えば、全てがイントラ予測モードであるが、異なる角度で予測できる)を共有するグループであってもよい。S206におけるこのようなグループ化は、グループごとに関与する頂点のそれぞれの数を決定することによって、異なるレベルで割り当てることができる。例示的な実施形態によれば、例えば、パッチ/チャート内のスキャン順序に続く64個、32個又は16個の頂点ごとに、同じ予測モードを割り当て、他の頂点に、異なる予測モードを割り当ててもよい。各グループについて、予測モードは、イントラ予測モードであっても、インター予測モードであってもよい。これをシグナリングするか又は割り当てることができる。例示的なフローチャート2000によれば、S207において例えばメッシュフレーム又はメッシュスライスのフラグがイントラタイプを示すか否かを確認することによって、そのメッシュフレーム又はメッシュスライスがイントラタイプであると決定されれば、そのメッシュフレーム又はメッシュスライス内の頂点の全てのグループは、イントラ予測モードを使用する必要があり、そうでなければ、S208において、そのメッシュフレーム又はメッシュスライス内の全ての頂点のグループごとにイントラ予測モード又はインター予測モードのいずれかを選択することができる。
【0105】
更に、メッシュ頂点のグループがイントラ予測モードを使用する場合、その頂点は、現在メッシュの同じサブパーティション内の予めコード化された頂点を使用することによってのみ予測することができる。例示的な実施形態によれば、サブパーティションは、場合によっては、現在メッシュ自体であってもよく、メッシュ頂点のグループがインター予測モードを使用する場合、その頂点は、例示的な実施形態によれば、別のメッシュフレームからの予めコード化された頂点を使用することによってのみ予測することができる。上述した情報のそれぞれを決定し、フラグなどによってシグナリングすることができる。上記予測特徴は、S210において発生し、上記予測の結果及びシグナリングは、S211において発生することができる。
【0106】
例示的な実施形態によれば、例示的なフローチャート2000及び以下に記載されるフローチャート2100における頂点のグループ内の頂点のそれぞれについて、予測後、残差は、3D変位ベクトルとなり、現在頂点からその予測子へのシフトを示す。頂点のグループの残差は、更に圧縮される必要がある。一例では、S211における変換は、そのシグナリングとともに、エントロピーコーディングの前に頂点グループの残差に適用することができる。以下の方法は、変位ベクトルのグループのコーディングを処理するために実施することができる。例えば、1つの方法では、変位ベクトルのグループ、一部の変位ベクトル又はその成分がゼロ値のみを有する状況を適切にシグナリングする。別の実施形態では、各変位ベクトルが非ゼロ成分を有するか否かについてのフラグをシグナリングし、有さなければ、この変位ベクトルの全ての成分のコーディングをスキップすることができる。更に、別の実施形態では、変位ベクトルの各グループが非ゼロベクトルを有するか否かについてのフラグをシグナリングし、有さなければ、このグループ内の全ての変位ベクトルのコーディングをスキップすることができる。更に、別の実施形態では、変位ベクトルの各グループの各成分が非ゼロベクトルを有するか否かについてのフラグをシグナリングし、有さなければ、このグループ内の全ての変位ベクトルのこの成分のコーディングをスキップすることができる。更に、別の実施形態では、変位ベクトルのグループ又はこの変位ベクトルのグループの成分に変換を行う必要がある状況をシグナリングする可能性があり、必要がなければ、変換をスキップし、量子化/エントロピーコーディングをこのグループ又はこのグループの成分に直接的に適用することができる。更に、別の実施形態では、変位ベクトルの各グループに変換を行う必要があるか否かについてのフラグをシグナリングすることができ、必要がなければ、このグループ内の全ての変位ベクトルの変換コーディングをスキップすることができる。更に、別の実施形態では、変位ベクトルの各グループの各成分に変換を行う必要があるか否かについてのフラグをシグナリングし、必要がなければ、このグループ内の全ての変位ベクトルのこの成分の変換コーディングをスキップすることができる。頂点予測残差の処理に関するこの段落の上述した実施形態は、組み合わせて、それぞれ異なるパッチ上で並行して実施することもできる。
【0107】
図21は、例示的なフローチャート2100を示し、S221において、データユニット全体としてコード化されたメッシュフレームを取得することができ、これは、メッシュフレームの全ての頂点又は属性がそれらの間に相関関係を有し得ることを意味する。或いは、S222における決定に応じて、S223において、メッシュフレームを、2Dビデオ又は画像のスライス又はタイルと概念が似た、より小さな独立したサブパーティションに分割することができる。S224において、コード化メッシュフレーム又はコード化メッシュサブパーティションには、予測タイプを割り当てることができる。可能な予測タイプは、イントラコード化タイプ及びインターコード化タイプを含む。イントラコード化タイプの場合、S225において、同じフレーム又はスライスの再構築された部分に基づく予測のみを許可する。一方、インター予測タイプの場合、S225において、イントラメッシュフレーム予測に加えて、予めコード化されたメッシュフレームに基づく予測を許可する。更に、インター予測タイプは、Pタイプ又はBタイプなどのより多くのサブタイプに分類することができる。Pタイプでは、予測目的で1つの予測子のみを使用できるが、Bタイプでは、予めコード化された2つのメッシュフレームからの2つの予測子を使用して予測子を生成することができる。2つの予測子の加重平均は、一例であってもよい。メッシュフレームが全体としてコード化される場合、フレームは、イントラ又はインターコード化メッシュフレームとみなすことができる。インターメッシュフレームの場合、シグナリングを介して、P又はBタイプを更に識別することができる。或いは、メッシュフレームがフレーム内で更に分割されてコード化される場合、S224において、サブパーティションのそれぞれに予測タイプを割り当てる。上述した情報のそれぞれを決定し、フラグなどによってシグナリングすることができ、
図20のS210及びS211と同様に、上記予測特徴は、S226において発生し、上記予測の結果及びシグナリングは、S227において発生することができる。
【0108】
そのため、動的メッシュシーケンスは、経時的に変化する大量の情報で構成される可能性があるため、大量のデータを必要とする可能性があり、したがって、このようなコンテンツを記憶し送信するには、効率的な圧縮技術を必要とし、
図20及び21について上述した特徴は、同じメッシュフレーム内の予めデコードされた頂点(イントラ予測)又は以前のコード化メッシュフレームからの頂点(インター予測)を使用することで少なくともメッシュ頂点の3D位置予測の改善を可能にすることによるこのような効率の向上を表す。
【0109】
更に、例示的な実施形態では、層2302の前の層の再構築された頂点に基づいて、層2302の変位ベクトルを生成することができる。現在の層2302のインデックスがTであると仮定すると、層2303T+1の頂点の予測子は、現在の層2302の再構築された頂点に基づいて生成される。このような層ベースの予測構造の例は、再構築ベースの頂点予測、即ちエッジベースの補間を使用したプログレッシブ頂点予測を示す
図23の例2300に示され、予測子は、予測子頂点ではなく、予めデコードされた頂点に基づいて生成される。
【0110】
このような例2300について、
図22の例示的なフローチャート2200を参照し、現在の層上の補間された頂点が予測値であるため、このような値は、次の層上の頂点予測子を生成するために使用される前に再構築する必要がある。これは、S231においてベースメッシュをコード化し、S232において頂点予測を実施し、次にS233において現在の層のデコードされた変位ベクトルを層2302などの頂点の予測子に追加することによって行われる。次に、S235において、この層2303の再構築された頂点と、前の層の全てのデコードされた頂点、例えばS234において確認されたこのような層の頂点値の追加のものとを、次の層2303の予測子頂点を生成するために使用することができる。このプロセスは、次のように要約することもできる。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)
【0111】
次に、1つのメッシュフレーム内の全ての頂点を層0(ベースメッシュ)、層1、層2…などに分割する。次に、1つの層上の頂点の再構築は、前の層上の頂点の再構築に依存する。上記式では、P、R、Dのそれぞれは、3Dメッシュ表現のコンテキストの下で3Dベクトルを表す。Dは、デコードされた変位ベクトルであり、量子化がこのベクトルに適用されても適用されなくてもよい。
【0112】
例示的な実施形態によれば、再構築された頂点を使用した頂点予測は、特定の層に、例えば、層0及び層1にのみ適用することができる。他の層の場合、頂点予測は、隣接する予測子頂点を再構築のために変位ベクトルを追加することなく、引き続き使用することができる。それにより、前の層を再構築するのを待たずに、これらの他の層を同時に処理することができる。例示的な実施形態によれば、各層について、再構築ベースの頂点予測を選択するか予測子ベースの頂点予測を選択するかをシグナリングすることができ、或いは、再構築ベースの頂点予測を使用しない層(及びその後続の層)をシグナリングすることができる。
【0113】
頂点予測子が再構築された頂点によって生成される変位ベクトルの場合、ウェーブレット変換などの変換を更に実行することなく量子化を適用することができる。頂点予測子が他の予測子頂点によって生成される変位ベクトルの場合、変換を必要とする可能性があり、それらの変位ベクトルの変換係数に量子化を適用することができる。
【0114】
そのため、動的メッシュシーケンスは、経時的に変化する大量の情報で構成される可能性があるため、大量のデータを必要とする可能性がある。したがって、このようなコンテンツを記憶し送信するには、効率的な圧縮技術を必要とする。上述した補間ベースの頂点予測法のフレームワークでは、変位ベクトルを圧縮することが重要な手順の一つであり、これは、コード化ビットストリームの主要な部分を占め、本開示の焦点であり、例えば、
図22の特徴は、このような圧縮を提供することによってこのような問題を軽減する。
【0115】
更に、上述した他の例と同様に、更にそれらの実施形態と同様に、動的メッシュシーケンスは、経時的に変化する大量の情報で構成される可能性があるため、それでも大量のデータを必要とする可能性があり、そのため、このようなコンテンツを記憶し送信するには、効率的な圧縮技術を必要とする。前述の2Dアトラスサンプリングベースの方法のフレームワークでは、重要な利点は、デコーダ側でサンプリングされた頂点と境界頂点から接続性情報を推測することによって達成することができる。これは、デコーディングプロセスの主要な部分であり、以下に記載される更なる例の焦点である。
【0116】
例示的な実施形態によれば、ベースメッシュの接続性情報は、エンコーダ側とデコーダ側の両方で、各チャートのデコードされた境界頂点とサンプリングされた頂点から推測(導出)することができる。
【0117】
同様に上述したように、任意の三角形分割方法を適用して、頂点(境界頂点及びサンプリングされた頂点を含む)間の接続性を作成することができる。
図15の例1500及び以下で更に説明される
図25の例2500に示す内部頂点などを使用して内部頂点のサンプリングを行っていないチャートに対しても、同様の接続性作成方法が適用されるが、例示的な実施形態によれば、境界頂点とサンプリングされた頂点に対して異なる三角形分割方法を使用することをシグナリングことができる。
【0118】
例えば、例示的な実施形態によれば、任意のサンプリング位置の4つの隣接する点ごとに、占有点の数が3以上であるか否かを決定し(占有点又は非占有点の例は、占有マップ例2500を示す
図25で強調表示され、占有マップ例2500では、各円が整数画素を表す)、4点間の三角形の接続性は、特定のルールによって推測することができる。例えば、
図24の例2400に示すように、4つの点のうちの3つが占有されると決定されれば、図示の例(2)、(3)、及び(4)では、それらの点は、これらの例のように、直接的に相互接続して三角形を形成することができ、一方、4つの点が全て占有されると決定されれば、
図24の例(1)に示すように、それらの点を使用して2つの三角形を形成する。なお、隣接する点の数が異なれば、異なるルールを適用することができる。このプロセスは、
図25に更に示すように、多くの点にわたって実施されてもよい。本実施形態では、再構築メッシュは、
図24のような三角形メッシュであり、少なくとも
図25の内部部分(規則性に従ってシグナリングされていないと決定されず、その代わりに、個別のシグナリングではなく推測によってコード化及びデコードされ得る)において正三角形メッシュであるが、個別にシグナリングされるべき周囲において不規則な三角形とされる。
【0119】
複雑さとデータ処理を更に軽減するために、
図25に示されるこのような内部の正三角形の四角形メッシュは、
図24の例(1)の四角形メッシュとして推測されてもよく、これにより、内部の正三角形メッシュを推測する代わりに、減少している数の内部の正四角形メッシュを推測するため、計算量が更に軽減される。
【0120】
例示的な実施形態によれば、
図24の例(1)のように、4つの隣接する点が全て占有されると決定される場合、四角形メッシュを再構築してもよい。
【0121】
以上の説明から推定すると、
図25に示すように、例2500の再構築メッシュがハイブリッドタイプであり得ることが示され、すなわち、メッシュフレーム内の一部の領域は、三角形メッシュを生成し、他の領域は、四角形メッシュを生成し、上記三角形メッシュのいくつかは、その中の他の三角形メッシュと比較して規則的なものであってもよく、いくつかは、境界上のメッシュのような不規則なものであってもよいが、境界上の全てのメッシュが不規則なものである必要はない。
【0122】
例示的な実施形態によれば、このような接続性のタイプは、シーケンスヘッダー、スライスヘッダーなどの高レベルの構文でシグナリングすることができる。
【0123】
上述したように、接続性情報は、例えば不規則な形状の三角形メッシュに対して明示的なシグナリングによって再構築することもできる。つまり、ポリゴンが暗黙のルールによって復元できないと決定されれば、エンコーダは、ビットストリーム内で接続性情報をシグナリングすることができる。例示的な実施形態によれば、このような明示的なシグナリングのオーバーヘッドは、ポリゴンの境界に応じて削減することができる。例えば、
図25の例2500に示すように、三角形の接続性情報は、推測できる
図24の通常の例2400に従うような暗黙のルールと、
図25の少なくともメッシュ境界上に示される不規則な形状のポリゴンのうちの1つに対する明示的なシグナリングとの両方によって再構築されるようにシグナリングされることになる。
【0124】
実施形態によれば、シグナリングされると決定されるものは、境界頂点とサンプリングされた位置との間の接続性情報にしかないが、サンプリングされた位置自体の間の接続性情報が推測される。
【0125】
また、任意の実施形態では、1つのメッシュから別のメッシュへの推測された接続性(予測として)との差のみをビットストリーム内でシグナリングできるように、接続性情報を予測によってシグナリングすることができる。
【0126】
なお、例示的な実施形態によれば、(例えば、三角形ごとに時計回り又は反時計回りで推測される)推測された三角形の向きは、シーケンスヘッダー、スライスヘッダーなどの高レベルの構文で全てのチャートに対してシグナリングすることができるか又はエンコーダ及びデコーダによって固定(仮定)することができる。推測された三角形の向きは、各チャートに対して異なる方法でシグナリングすることもできる。
【0127】
また、任意の再構築メッシュは、元のメッシュと異なる接続性を有してもよい。例えば、元のメッシュは三角形メッシュであってもよいが、再構築メッシュはポリゴンメッシュ(例えば、四角形メッシュ)であってもよい。
【0128】
例示的な実施形態によれば、任意のベース頂点の接続性情報がシグナリングされなくてもよく、その代わりに、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用してベース頂点間のエッジを導出することができる。例えば、どのように例2500の最底部の頂点が全て占有されるかを確認することによって、コーディングは、そのような頂点がベースとして占有されると決定し、その後に任意のベース頂点の接続性情報がシグナリングされなくてもよく、その代わりに、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用してベース頂点間のエッジを導出するように推測することによって、そのような情報を利用することができる。例示的な実施形態によれば、追加のメッシュ頂点の予測された頂点の補間は、ベースメッシュの導出されたエッジに基づくものであってもよい。
【0129】
例示的な実施形態によれば、フラグは、ベース頂点の接続性情報がシグナリングされるか導出されるかをシグナリングするために使用することができ、このようなフラグは、シーケンスレベル、フレームレベルなどのビットストリームの異なるレベルでシグナリングすることができる。
【0130】
例示的な実施形態によれば、まず、エンコーダ側とデコーダ側の両方で同じアルゴリズムを使用してベース頂点間のエッジを導出する。次に、ベースメッシュ頂点の元の接続性と比較して、導出されたエッジと実際のエッジとの間の差をシグナリングする。したがって、差をデコーディングした後、ベース頂点の元の接続性を復元することができる。
【0131】
一例では、導出されたエッジについて、元のエッジと比較したときに間違っていると決定されれば、このような情報を(このエッジを形成する頂点のペアを示すことによって)ビットストリーム内でシグナリングすることができ、元のエッジについて、導出されなければ、(このエッジを形成する頂点のペアを示すことによって)ビットストリーム内でシグナリングすることができる。更に、境界エッジ上の接続性と境界エッジに関する頂点補間は、内部の頂点及びエッジとは別々に行うことができる。
【0132】
よって、本明細書に記載される例示的な実施形態によって、上述した技術的問題を、これらの技術的解決手段のうちの1つ以上によって有利に改善することができる。例えば、動的メッシュシーケンスは、経時的に変化する大量の情報で構成される可能性があるため、大量のデータを必要とする可能性があり、したがって、本明細書に記載される例示的な実施形態は、このようなコンテンツを記憶し送信する効率的な圧縮技術を少なくとも表す。
【0133】
上述した技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施し、1つ以上のコンピュータ可読媒体に物理的に記憶することができるか、又は、特別に構成された1つ以上のハードウェアプロセッサによって実施することができる。例えば、
図26は、開示された主題の特定の実施形態を実施することに適したコンピュータシステム2600を示す。
【0134】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又はそのようなメカニズムを施されて、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、又は解釈、マイクロコード実行などによって実行することができる命令を含むコードを作成する任意の適切な機械コード又はコンピュータ言語を用いてコード化することができる。
【0135】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータ又はその構成要素上で実行することができる。
【0136】
コンピュータシステム2600について、
図26に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能範囲に関する限定を示唆することを意図するものではない。構成要素の構成は、コンピュータシステム2600の例示的な実施形態で示される構成要素のうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきではない。
【0137】
コンピュータシステム2600は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を通じて、1人以上の人間ユーザによる入力に応答することができる。ヒューマンインタフェースデバイスは、オーディオ(スピーチ、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接的に関連しない特定のメディアを取り込むために使用することもできる。
【0138】
入力ヒューマンインタフェースデバイスは、キーボード2601、マウス2602、トラックパッド2603、タッチスクリーン2610、ジョイスティック2605、マイクフォン2606、スキャナ2607及びカメラ2608(それぞれが1つのみ示される)のうちの1つ以上を含んでもよい。
【0139】
コンピュータシステム2600は、特定のヒューマンインタフェース出力デバイスをさらに含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音、光、及び匂い/味を通じて、1人以上の人間ユーザの感覚を刺激することができる。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン2610又はジョイスティック2605による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ2609、ヘッドフォン(図示せず)など)、視覚出力デバイス(それぞれがタッチスクリーン入力能力、触覚フィードバック能力の有無にかかわらず、一部が、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレ及びスモークタンク(図示せず)などの手段を介して、2次元の視覚出力又は3次元以上の出力を出力できる、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン2610など)、及びプリンタ(図示せず)を含んでもよい。
【0140】
コンピュータシステム2600は、ヒューマンアクセス可能な記憶装置と、それらに関連する媒体、例えば、CD/DVD 2611を有するCD/DVD ROM/RW 2620若しくは同様な媒体、サムドライブ2622、及びリムーバブルハードドライブ若しくはソリッドステートドライブ2623を含む光媒体、テープ及びフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどとをさらに含んでもよい。
【0141】
当業者は、本明細書に開示された主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことをさらに理解すべきである。
【0142】
コンピュータシステム2600は、1つ以上の通信ネットワーク2698へのインタフェース2699をさらに含んでもよい。ネットワーク2698は、例えば、無線、有線、光ネットワークであり得る。ネットワーク2698は更に、ローカル、ワイドエリア、メトロポリタン、車両用及び産業用、リアルタイム、遅延耐性ネットワークなどであり得る。ネットワーク2698の例は、イーサネット及び無線LANなどのローカルエリアネットワークと、GSM、3G、4G、5G、LTEなどを含むセルラーネットワークと、ケーブルTV、衛星TV及び地上波放送TVを含むTV有線又は無線ワイドエリアデジタルネットワークと、CANバスなどを含む車両用及び産業用ネットワークと、を含む。特定のネットワーク2698は、一般的に、特定の汎用データポート又は周辺バス(2650及び2651)(例えば、コンピュータシステム2600のUSBポートなど)に接続された外部ネットワークインタフェースアダプターを必要とする。他のネットワークは、一般的に、以下で説明するようにシステムバスに接続することによって、コンピュータシステム2600のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)。これらのネットワーク2698のいずれかを使用して、コンピュータシステム2600は、他のエンティティと通信することができる。このような通信は、例えば、ローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対して、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、CANバスから特定のCANバスデバイスへ)、又は双方向であってもよい。上述したように、特定のプロトコルとプロトコルスタックをこれらのネットワークとネットワークインタフェースのそれぞれに使用することができる。
【0143】
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム2600のコア2640に接続することができる。
【0144】
コア2640は、1つ以上の中央処理装置(CPU)2641、グラフィックス処理装置(GPU)2642、グラフィックアダプター2617、フィールドプログラマブルゲートアレイ(FPGA)2643の形態の専用プログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ2644などを含むことができる。これらのデバイスは、リードオンリメモリ(ROM)2645、ランダムアクセスメモリ2646、及びユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置2647と共に、システムバス2648を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス2648は、1つ以上の物理プラグの形態でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス2648に直接的に接続されてもよく、周辺バス2649を介して接続されてもよい。周辺バスのアーキテクチャには、PCI、USBなどを含む。
【0145】
CPU2641、GPU2642、FPGA2643及びアクセラレータ2644は、組み合わせて、前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM2645又はRAM2646に記憶することができる。過渡的なデータは、RAM2646に記憶することもできるが、恒久的なデータは、例えば内部大容量記憶装置2647に記憶することができる。CPU2641、GPU2642、大容量記憶装置2647、ROM2645、RAM2646などのうちの1つ以上と密接に関連付けることができるキャッシュメモリを使用して、任意のメモリデバイスに対する高速記憶及び検索を可能にすることができる。
【0146】
コンピュータ可読媒体には、様々なコンピュータ実施動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、コンピュータソフトウェア分野の当業者によく知られている利用可能な種類のものであってもよい。
【0147】
限定ではなく、あくまでも一例として、アーキテクチャ2600、具体的にはコア2640を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ可読媒体に具体化されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、コア内部大容量記憶装置2647又はROM2645などの、非一時的な性質のコア2640の特定の記憶装置以外に、以上に紹介したようにユーザがアクセス可能な大容量記憶装置に関連付けられる媒体であり得る。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに記憶でき、コア2640によって実行することができる。コンピュータ可読媒体は、特定の需要に応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア2640、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM2646に記憶されたデータ構造を定義するステップと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更するステップとを含む、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代替として、コンピュータシステムは、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに又はソフトウェアと共に動作することができる回路(例えば、アクセラレータ2644)に配線されるか又は他の方法で具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの参照は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ可読媒体への参照は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、又はその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
【0148】
本開示は、一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、及び様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか又は記載されていないが、本開示の原理を具体化するため、その思想及び範囲内に含まれる様々なシステム及び方法を考案できることが理解されよう。
【国際調査報告】