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

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

▶ インテル・コーポレーションの特許一覧

特許7623089テクスチャベースの没入型ビデオコーディング
<>
  • 特許-テクスチャベースの没入型ビデオコーディング 図1
  • 特許-テクスチャベースの没入型ビデオコーディング 図2
  • 特許-テクスチャベースの没入型ビデオコーディング 図3
  • 特許-テクスチャベースの没入型ビデオコーディング 図4
  • 特許-テクスチャベースの没入型ビデオコーディング 図5
  • 特許-テクスチャベースの没入型ビデオコーディング 図6
  • 特許-テクスチャベースの没入型ビデオコーディング 図7
  • 特許-テクスチャベースの没入型ビデオコーディング 図8
  • 特許-テクスチャベースの没入型ビデオコーディング 図9
  • 特許-テクスチャベースの没入型ビデオコーディング 図10
  • 特許-テクスチャベースの没入型ビデオコーディング 図11
  • 特許-テクスチャベースの没入型ビデオコーディング 図12
  • 特許-テクスチャベースの没入型ビデオコーディング 図13
  • 特許-テクスチャベースの没入型ビデオコーディング 図14
  • 特許-テクスチャベースの没入型ビデオコーディング 図15
  • 特許-テクスチャベースの没入型ビデオコーディング 図16
  • 特許-テクスチャベースの没入型ビデオコーディング 図17
  • 特許-テクスチャベースの没入型ビデオコーディング 図18
  • 特許-テクスチャベースの没入型ビデオコーディング 図19
  • 特許-テクスチャベースの没入型ビデオコーディング 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】テクスチャベースの没入型ビデオコーディング
(51)【国際特許分類】
   H04N 19/20 20140101AFI20250121BHJP
   H04N 19/597 20140101ALI20250121BHJP
【FI】
H04N19/20
H04N19/597
【請求項の数】 24
(21)【出願番号】P 2022554297
(86)(22)【出願日】2020-12-23
(65)【公表番号】
(43)【公表日】2023-05-24
(86)【国際出願番号】 US2020066944
(87)【国際公開番号】W WO2021211173
(87)【国際公開日】2021-10-21
【審査請求日】2023-09-01
(31)【優先権主張番号】63/009,356
(32)【優先日】2020-04-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ボイス、ジル
(72)【発明者】
【氏名】サラヒエ、バゼル
【審査官】田中 崇大
(56)【参考文献】
【文献】特開2019-096294(JP,A)
【文献】特表平11-511884(JP,A)
【文献】特開2019-201436(JP,A)
【文献】特表2023-506832(JP,A)
【文献】Basel Salahieh et al.,Multi-Pass Renderer in MPEG Test Model for Immersive Video,2019 Picture Coding Symposium,2020年01月09日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
方法であって、
第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別する段階と、
第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別する段階であって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、段階と、
前記第1ビューにおける隣接画素を比較する段階と、
前記隣接画素の前記比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別する段階であって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、段階と、
符号化ビデオデータに含める少なくとも1つのアトラスを生成する段階であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチおよび対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、段階と
を備える方法。
【請求項2】
前記第1ビューについての第1のプルーニングマスクを生成する段階であって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、段階を更に備える、請求項1に記載の方法。
【請求項3】
前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない、請求項2に記載の方法。
【請求項4】
前記第2ビューについての第2のプルーニングマスクを生成する段階であって、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく、段階を更に備える、請求項2または3に記載の方法。
【請求項5】
前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素対応する画素を含む、請求項4に記載の方法。
【請求項6】
第3ビューについての第3のプルーニングマスクを生成する段階であって、前記第3のプルーニングマスクは、第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素対応する画素、および、前記第2ビューの前記第2の対応する画素に対応する画素を含む、段階を更に備える、請求項4または5に記載の方法。
【請求項7】
維持される第1の複数の画素、第2の複数の画素、および第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを生成する段階であって、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの前記第2の対応する画素に含まれる前記第3の対応する画素を含む、段階を更に備える、請求項6に記載の方法。
【請求項8】
前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約する段階を更に備える、請求項7に記載の方法。
【請求項9】
前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影しない前記第1ビューの前記複数の画素の複数のものであると識別する段階を更に備える、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記第1の対応する画素が、前記第2ビューに再投影されるとき前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別する段階を更に備える、請求項1から8のいずれか一項に記載の方法。
【請求項11】
前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツ間の差分が閾値を満たすとき、前記第1の対応する画素の前記第1のもの、および、前記第2の対応する画素の前記第2のものを、同様のものとして識別する段階を更に備える、請求項10に記載の方法。
【請求項12】
前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む、請求項1から8のいずれか一項に記載の方法。
【請求項13】
請求項1から12のいずれか一項に記載の方法を実行するための手段を備える装置。
【請求項14】
装置によって実行されると請求項1から12のいずれか一項に記載の方法を前記装置に実行させるための機械可読命令を備えるコンピュータプログラム。
【請求項15】
少なくとも1つのメモリと、
前記メモリにおける機械可読命令と、
請求項1から12のいずれか一項に記載の方法を実行するために前記機械可読命令のインスタンス化または実行の少なくとも1つを行うプロセッサ回路と
を備えるシステム。
【請求項16】
方法であって、
符号化ビデオデータにおけるフラグを識別する段階であって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、段階と、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得する段階であって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、段階と、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する第2の画素との比較に基づいて、デプス情報を判定する段階と、
前記判定されたデプス情報からターゲットビューを合成する段階と
を備える方法。
【請求項17】
前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む、請求項16に記載の方法。
【請求項18】
前記第2のマップに基づいて前記対応する第2のパッチを再構築する段階を更に備える、請求項17に記載の方法。
【請求項19】
前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する第2の画素を識別する段階を更に備える、請求項16から18のいずれか一項に記載の方法。
【請求項20】
前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定する段階であって、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する、段階を更に備える、請求項16から18のいずれか一項に記載の方法。
【請求項21】
請求項16から20のいずれか一項に記載の方法を実行するための手段を備える装置。
【請求項22】
装置によって実行されると請求項16から20のいずれか一項に記載の方法を前記装置に実行させるための機械可読命令を含むコンピュータプログラム。
【請求項23】
少なくとも1つのメモリと、
前記メモリにおける機械可読命令と、
請求項16から20のいずれか一項に記載の方法を実行するために前記機械可読命令のインスタンス化または実行の少なくとも1つを行うプロセッサ回路と
を備えるシステム。
【請求項24】
請求項14または22に記載のコンピュータプログラムを格納するコンピュータ可読格納媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本特許は、2020年4月13日に出願された、米国仮特許出願第63/009,356号の利益を主張する。米国仮特許出願第63/009,356号は、参照によって、全体が本明細書に組み込まれる。米国特許出願第63/009,356号に対する優先権が本明細書において主張される。
【0002】
本開示は概して、ビデオコーディングに関し、より具体的には、テクスチャベースの没入型ビデオコーディングに関する。
【背景技術】
【0003】
圧縮/解凍(コーデック)システムにおいて、圧縮効率およびビデオ品質は、重要な性能基準である。例えば、視覚的品質は、多くのビデオアプリケーションにおけるユーザ体験の重要な性質であり、圧縮効率は、ビデオファイルを格納するために必要なメモリストレージの量、および/または、ビデオコンテンツを送信および/またはストリーミングするために必要な帯域幅の量に影響する。ビデオエンコーダはビデオ情報を圧縮し、その結果、より多くの情報を、所与の帯域幅を介して送信でき、または、所与のメモリ空間または同様のものに格納できる。圧縮された信号またはデータは次に、ユーザに表示するために、信号またはデータを復号または圧縮解除するデコーダによって復号される。多くの実装において、より大きい圧縮による、より高い視覚的品質が望まれる。
【0004】
現在、没入型ビデオコーディングのための規格が策定されており、それらには、ムービングピクチャエクスパーツグループ(MPEG)没入型ビデオコーディングが含まれる。そのような規格は、没入型ビデオおよび点群コーディングの文脈において、圧縮効率および再構築品質を確立および改善することを目的とする。
【図面の簡単な説明】
【0005】
図1】例示的なMPEG没入型ビデオ(MIV)エンコーダのブロック図である。
【0006】
図2】選択された入力ビューからの例示的なパッチ形成を示す。
【0007】
図3】例示的なMIVデコーダのブロック図である。
【0008】
図4】アトラスパッチからのプルーニング済みビューの例示的な再構築を示す。
【0009】
図5】本開示の教示による例示的なテクスチャベースMIVエンコーダのブロック図である。
【0010】
図6図5のテクスチャベースMIVエンコーダにおける入力ビューからの例示的なアトラス生成を示す。
【0011】
図7】本開示の教示による例示的なテクスチャベースMIVデコーダのブロック図である。
【0012】
図8図7のテクスチャベースのMIVデコーダによって実装される例示的なレンダリングプロセスのブロック図である。
【0013】
図9図7のテクスチャベースのMIVデコーダにおける例示的なアトラスビュー再構築を示す。
【0014】
図10】MIVエクステンションを有する例示的なビデオベースのボリュメトリックビデオコーディング(V3C)サンプルストリーミングを示す。
【0015】
図11図5のテクスチャベースMIVエンコーダを実装するために実行され得る機械可読命令を表すフローチャートである。
【0016】
図12図5のテクスチャベースMIVエンコーダに含まれる例示的な対応関係ラベリング部を実装するために実行され得る機械可読命令を表すフローチャートである。
【0017】
図13図5のテクスチャベースMIVエンコーダに含まれる例示的な対応関係プルーニング部を実装するために実行され得る機械可読命令を表すフローチャートである。
【0018】
図14図5のテクスチャベースMIVエンコーダに含まれる例示的な対応関係パッチパッキング部を実装するために実行され得る機械可読命令を表すフローチャートである。
【0019】
図15図7のテクスチャベースのMIVデコーダを実装するために実行され得る機械可読命令を表すフローチャートである。
【0020】
図16】本開示の少なくともいくつかの実装による例示的なシステムの説明図である。
【0021】
図17】本開示の少なくともいくつかの実装に従ってすべて配置された例示的なデバイスを示す。
【0022】
図18図5のテクスチャベースMIVエンコーダを実装するために図11、12、13および14の命令を実行するよう構築された例示的な処理プラットフォームのブロック図である。
【0023】
図19図7のテクスチャベースのMIVデコーダを実装するために図15の命令を実行するように構築された例示的な処理プラットフォームのブロック図である。
【0024】
図20】消費者(例えば、ライセンス、販売および/または使用)、小売業者(例えば、販売、再販売、ライセンスおよび/またはサブライセンス)、および/または、相手先商標製造会社(OEM)(例えば、小売業者に、および/または、直接購入顧客に配布される製品に含める)などのクライアントデバイスへソフトウェア(例えば、図11、12、13、14および15の例示的なコンピュータ可読命令に対応するソフトウェア)を配布するための例示的なソフトウェア配布プラットフォームのブロック図である。
【0025】
図は縮尺通りではない。 概して、同じまたは同様の部分を指すために、同じ参照番号が図面および添付の書面の記述を通じて使用される。
【0026】
特に別段の指定が無い限り、「第1」、「第2」、「第3」などの記述語は、本明細書において、リストにおける優先度、物理的順序、配置、および/または、何等かの順序の任意の意味であるとみなすことなく、または、さもなければ示すことなく使用され、単に、開示される例の理解を容易にするために要素を区別するためのラベルおよび/または恣意的な名称として使用される。いくつかの例において、「第1」という記述語は、詳細な説明における要素を指すために使用され得るが、請求項においては、同一の要素が、「第2」または「第3」などの異なる記述語で参照され得る。そのような場合、そのような記述語は単に、それらの要素を明白に識別するために(さもなければ、例えばそれらの要素は同一の名称を共有する)使用され得ることを理解されたい。本明細書において使用される場合、「凡そ」および「約」は、製造許容差および/または他の現実の不完全性に起因して厳密でないことがあり得る寸法を指す。本明細書で使用されているように、「実質的にリアルタイム」とは、ほぼ瞬間的に発生することを指すが、現実には計算時間、送信などの遅延があることは認識されるべきである。 したがって、別段の定めが無い限り、「実質的にリアルタイム」とは、リアルタイム±1秒を指す。
【発明を実施するための形態】
【0027】
添付図面を参照して、1または複数の実施形態または実装をここで説明する。 特定の構成および配置が説明されるが、これは例示的な目的に過ぎないことが理解されるべきである。当業者であれば、説明の思想および範囲から逸脱することなく、他の構成および配置が利用され得ることを理解するであろう。本明細書に説明される技法および/または配置はまた、本明細書において説明されるもの以外に、様々な他のシステムおよび用途においても利用され得ることは当業者にとって明らかである。
【0028】
以下の説明では、例えばシステムオンチップ(SoC)アーキテクチャなどのアーキテクチャにおいて明示され得る様々な実装を記載するが、本明細書において説明する技法および/または配置の実装は、特定のアーキテクチャおよび/またはコンピューティングシステムに限定されず、同様の目的の任意のアーキテクチャおよび/またはコンピューティングシステムにより実装され得る。 例えば、例えば複数の集積回路(IC)チップおよび/またはパッケージを利用する様々なアーキテクチャ、および/または、様々なコンピューティングデバイス、および/または、セットトップボックスおよびスマートフォンなどの消費者用電子(CE)デバイスは、本明細書において説明される技法および/または配置を実装し得る。更に、以下の説明では、システムコンポーネントのロジック実装、タイプおよび相互関係、ならびに、論理パーティショニング/インテグレーション選択などの多くの具体的な詳細を説明し得るが、請求される主題は、そのような具体的な詳細無しで実施され得る。他の場合において、本明細書において開示されるマテリアルを曖昧にしないようにするべく、例えば、制御構造および完全ソフトウェア命令シーケンスなど、いくつかのマテリアルは、詳細に示されないことがあり得る。
【0029】
「一実装」、「実装」、「例示的な実装」等についての本明細書における言及は、説明される実装が特定の特徴、構造または特性を含み得ることを示すが、全ての実施形態がそのような特定の特徴、構造または特性を必ずしも含まないことがある。 更に、そのような語句は、必ずしも同一の実装を指すわけではない。更に、特定の特徴、構造または特性が、実施形態に関連して説明されるとき、本明細書において明示に説明されるかどうかに関わらず、他の実装に関連して、そのような特徴、構造または特性をもたらすことは、当業者の知識内であることが示される。
【0030】
"実質的に"、"近く"、"凡そ"、"近辺"、および"約"という用語は、一般的に、ターゲット値の+/-10%以内にあることを指す。 例えば、使用の明示的な文脈において指定される場合を除き、「実質的に等しい」、「ほぼ等しい」、および「凡そ等しい」という用語は、そのように説明されたものの間には、偶発的な変動だけがあることを意味する。本技術分野において、そのような変動は、典型的には、予め定められた目標値の±10%以下である。
【0031】
デジタルメディア技術の進歩により、新しいメディアフォーマットの魅力的な没入型体験の提供が可能になっている。ムービングピクチャエクスパーツグループ(MPEG)は、没入型メディアアクセスおよび提供をサポートする規格を策定している一標準化団体である。例えば、没入型メディアのコーディングされた表現(MPEG-1)は、パノラマ360°ビデオ、ボリュメトリックポイントクラウド、および没入型ビデオなどの没入型メディアフォーマットに関する没入型メディア産業規格のセットである。
【0032】
MPEGは、MPEG没入型ビデオ(MIV)と称される没入型ビデオコーディング規格を策定している。本明細書において「没入型ビデオコーディング規格」と称される、MIV規格(J. Boyce, R. Dore, V. Kumar Malamal Vadakital (Eds.), "Working Draft 4 of Immersive Video", ISO/IEC JTC1/SC29/WG11 MPEG/N19001、2020年1月、ブリュッセル、ベルギー)および没入型ビデオのテストモデル(TMIV)(B. Salahieh, B. Kroon, J. Jong, M. Domanski (Eds.), "Test Model 4 for Immersive Video", ISO/IEC JTC1/SC29/WG11 MPEG/N19002、2020年1月、ブリュッセル、ベルギー)を参照されたい。MIV規格は、没入型ビデオのビットストリームフォーマットおよび復号プロセスを指定する。没入型ビデオのテストモデルは、参照符号化プロセスおよびレンダリングプロセスを説明するが、しかしながら、これらのプロセスは、MIV規格に対して規範的なものではない。
【0033】
MIVドラフト規格は、High Efficiency Video Coding(HEVC)ビデオコーデックを使用して、特定の位置および向きにおける各々の複数の入力ビューについてのテクスチャおよびデプスビデオをコーディングする。MIV規格は、参照レンダリング部を指定するのではなく、必要なメタデータおよび復号済みストリームを指定する。参照レンダリング部の意図される出力は、テクスチャのパースペクティブビューポートであり、ビューポートは、視聴者位置および向きに基づいて選択され、没入型メディアデコーダの出力を使用して生成される。MIV規格は、視聴者が6の自由度(6DoF)で動的に移動し、(例えば、ヘッドマウントディスプレイ、例えば位置入力を有する2次元(2D)モニタなどによってサポートされるような)制限された範囲内で位置(x、y、z)および向き(ヨー、ピッチ、ロール)を調節することを可能にする。
【0034】
MIV規格において、デプス情報(ジオメトリとしても知られている)は、テクスチャコンテンツに沿ってストリーミングされる場合に追加の帯域幅を必要とし得る没入型ビデオコーディングのためのビットストリームの一部として割り当てられ得る。追加的に、プルーニング、クラスタリングおよびパッキングなど、MIVのテストモデルにおいて実装される符号化動作は、デプスのみを利用し、テクスチャ情報を考慮しないので、重要な没入型のキュー(例えば、鏡面性、透明性、異なるカメラからのキャプチャされたビューについての変動する照明条件)が抽出パッチ(すなわち、ビューからの長方形領域)において失われる。さらに、直接的にキャプチャ/提供されていない場合、デプスマップを推定することは、コストが大きい動作であり得、デプス推定アルゴリズムの局所的性質に起因して、自然のコンテンツについて、すべてのカメラにわたってデプス整合性を維持することは困難であり得る。したがって、いくつかのサービスは、デプスを使用しないことを選択し、MIVによって現在サポートされていない。現在、High Efficiency Video Coding(HEVC)などの標準ビデオコーデックを別々に使用して、様々なキャプチャカメラからのテクスチャコンテンツが符号化され、送信され得るか、または、MV-HEVCなどのビデオコーデックのマルチビューエクステンションを使用して、予測符号化され得る。次に、ビュー合成技法が呼び出され、復号されたテクスチャコンテンツおよびビューポート情報(すなわち、目標の視聴位置および向き)に基づいて、望ましいビューポートをレンダリングする。そのようなビュー合成は、投影を適切に実行するために、復号されたテクスチャに対するデプス推定(または別のタイプの視差情報)前処理段階を必要とし得る。しかしながら、そのような手法は、異なるビューにわたる角度冗長性を完全に利用しない。なぜなら、別のビューの同時符号化は、符号化における冗長性をもたらすからである。MV-HEVCにおいてビュー間予測は、従来のフレーム間時間予測と同様であるが、ブロックモーションモデルにおける水平方向シフトのみがサポートされ、それにより、MIVにおいて利用されるビュー間相関を利用する再投影ベースの手法と比較して、非効率的な帯域幅利用につながる。
【0035】
テクスチャベースの没入型ビデオコーディングのための方法、装置およびシステムが本明細書において開示される。本明細書において開示される例示的な符号化技法およびメタデータシグナリング技法は、別個にシグナリングされるデプスオプションおよび占有マップを有し、対応関係符号化動作をサポートし、MIVビットストリームからデプスを除外することを可能にする。いくつかの開示された例示的な符号化技法において、入力ビューごとのテクスチャ情報のみが利用され、入力ビューごとのデプス情報を必要としない。カメラパラメータも利用されるが、テクスチャコンテンツからも推定/推論され得る。開示される例示的な符号化技法は、利用可能な入力ビューにわたるテクスチャコンテンツにおける対応関係パッチを識別して冗長テクスチャ情報を除去することを含む。開示される例示的な符号化技法は、符号化されたビットストリームにおいて、識別された対応関係パッチと共にテクスチャコンテンツを送信する。開示された例示的な技法は、帯域幅の更なる節約を提供し(デプスが符号化済みビットストリームの一部として符号化されないため)、これにより、より多くの没入型キューが提供されることを可能にし、より広い範囲の没入型アプリケーションをサポートする。
【0036】
本明細書において開示される例示的な復号技法は、コーディング済みテクスチャビデオ、コーディング済み占有ビデオ、およびメタデータを含む入力ビットストリームを受信する。開示される例示的な復号技法は、コーディング済みテクスチャビデオからデプス情報を推論する。開示される例示的な復号技法は、コーディング済みテクスチャビデオにおける対応関係情報を取得する。開示される例示的な復号技法は、テクスチャパッチと、他のビューからの対応するテクスチャパッチとを使用して、ビデオデータにおけるデプス情報を推論する。開示される例示的な復号技法は更に、メタデータならびに所望の視聴位置および向きに沿って、テクスチャパッチおよび対応するテクスチャパッチに基づいてビューポートを合成することを含む。
【0037】
図1は、例示的な没入型ビデオ(MIV)エンコーダ100のブロック図である。例示的なMIVエンコーダ100は、例示的なビュー最適化部102、例示的なアトラス構築部104、例示的なデプス/占有コーディング部120、例示的なジオメトリスケーリング部122、例示的なビデオエンコーダ132、および例示的なビデオエンコーダ134を含む。例示的なMIVエンコーダ100は、例示的なソースビュー101を受信する。例えば、ソースビュー101は、キャプチャされたシーンのテクスチャデータ(例えばテクスチャビットストリーム)およびデプスデータ(例えばデプスビットストリーム)を含む。本明細書において使用される「テクスチャ」および「属性」は、交換可能に使用され、画素の色成分(例えば、赤・緑・青(RGB)成分)など、画素の可視的な性質を指す。本明細書において使用される「デプス」および「ジオメトリ」は、別段の定めが無い限り、交換可能に使用される。画素のジオメトリは典型的には、参照平面からの画素の距離を指す画素のデプスを含むからである。例えば、ソースビュー101は、ビデオキャプチャ部によって生成されたソースビュー、コンピュータによって生成された仮想ビューなどであり得る。示された例において、ソースビュー101はビデオシーケンスとして表される。例示的なMIVエンコーダ100は更に、例示的なソースカメラパラメータリスト103を受信する。例えば、ソースカメラパラメータリスト103は、ソースカメラの位置、ソースカメラの角度などを含み得る。
【0038】
例示的なビュー最適化部102は、符号化するビューを選択する。例えば、ビュー最適化部102は、ソースビュー101を分析して、どのビューを符号化するかを選択する。いくつかの例において、ビュー最適化部102は、ソースビュー101のビューを基本ビューまたは追加ビューとしてラベリングする。本明細書において使用される場合、基本ビューとは、単一パッチとしてアトラスにおいてパッキングされるべき入力ビューである。本明細書において使用される場合、追加ビューとは、1または複数のパッチにおいてプルーニングおよびパッキングされるべき入力ビューである。例えば、ビュー最適化部102は、画素レートの制限、入力ビューあたりのサンプルカウントなどの基準に基づいて、いくつの基本ビューが入力ビューにあり得るかを判定し得る。
【0039】
例示的なアトラス構築部104は、例示的なビュー最適化部102によって判定された基本および/または追加ビューを受信する。図2に関連して示されるように、アトラス構築部104は、プルーニングおよびクラスタリングを使用して、選択されたビュー(例えば、基本および/または追加ビュー)からパッチを形成し、それらは1または複数のアトラスにパッキングされ、その各々は、任意選択のテクスチャ成分および必要なデプス成分を含む。例示的なアトラス構築部104は、例示的なプルーニング部106、例示的なマスク集約部108、例示的なパッチパッキング部110、および例示的なアトラス生成部112を含む。例示的なプルーニング部106は、追加ビューをプルーニングする。例えば、プルーニング部106は、基本ビューのデプスおよび/またはテクスチャデータを追加ビューおよび/または以前にプルーニングされたビューのデプスおよび/またはテクスチャデータのそれぞれに投影し、非冗長の閉塞領域を抽出する。
【0040】
例示的なマスク集約部108は、例示的なプルーニング部106によって生成されたプルーニング結果を集約してパッチを生成する。例えば、マスク集約部108は、イントラ期間(例えば、フレームの予め定められた集合)にわたって、モーションの要因となるプルーニング結果(例えばプルーニングマスク)を累積する。例示的なパッチパッキング部110は、パッチを1または複数の例示的なアトラス116にパッキングする。例えば、パッチパッキング部110は、クラスタリングを実行して(例えば、プルーニングマスクにおける画素を組み合わせてパッチを形成する)、矩形パッチを抽出してアトラスにパッキングする。いくつかの例において、パッチパッキング部110は、処理されたイントラ期間にわたってフレームごとのコンテンツを更新する。
【0041】
パッチパッキング部110は、パッチをパッチ識別子(例えばパッチID)でタグ付けする。パッチIDはパッチインデックスを識別する。例えば、パッチIDは、生成されたパッチの数より0から1小さい範囲であり得る。パッチパッキング部110は、ブロック‐パッチマップ(例えば、パッチIDマップ)を生成し得る。ブロック‐パッチマップは、1または複数の画素の所与のブロックに関連付けられたパッチIDを示す二次元アレイ(例えば、アトラスにおける点位置/場所を表す)である。パッチパッキング部110は、例示的なデータ114(ブロック‐パッチマップおよびパッチIDデータを含む)をデプス/占有コーディング部120に提供する。アトラス生成部112は、パッチパッキング部110からのパッチデータを使用して、デプス/占有成分118を有するアトラス、および、任意選択のテクスチャ成分を有するアトラス116を生成する。アトラス生成部112は、デプス/占有成分118を有するアトラスをデプス/占有コーディング部120に提供する。アトラス生成部112は、任意選択のテクスチャ成分を有するアトラス116を属性(テクスチャ)ビデオデータ128として例示的なビデオエンコーダ134に提供する。
【0042】
デプス/占有コーディング部120は、占有マップを生成し、パッチの画素が占有されているか(例えば、有効)、または、占有されていないか(例えば、無効)を示す。いくつかの例において、占有マップはバイナリマップである。いくつかのそのような例において、占有マップは、画素が占有されていることを示す1の値を有し、画素が占有されていないことを示す0の値を有する。デプス/占有コーディング部120は、パッチパッキング部110からのデータ114に含まれるブロック‐パッチマップおよびパッチIDデータに基づいて、ならびに、アトラス生成部112からのデプス/占有成分118を有するアトラスのデータに基づいて、占有マップを生成する。デプス/占有コーディング部120は、例示的なMIVデータビットストリーム130における占有マップ、ブロック‐パッチマップ、およびパッチIDデータを含む。示された例において、MIVデータビットストリーム130は、ビューとアトラスとの間でそれらをマッピングするためのパッチパラメータ、ブロック‐パッチマップを後に取得するために必要な重複パッチを公開するためのパッキング順序、ビデオベース点群圧縮(V-PCC)パラメータセット、および、適応パラメータセット(ビューパラメータを含む)、および、ビデオコーディングデータからの任意の他のメタデータを含む。
【0043】
ジオメトリスケーリング部122は、デプス/占有コーディング部120からアトラスのデプス(ジオメトリ)データを取得する。ジオメトリスケーリング部122は、デプスデータを含むアトラスごとにジオメトリビデオデータの量子化およびスケーリングを実行する。ジオメトリスケーリング部122は、デプス(ジオメトリ)成分124を有するアトラスをデプス(ジオメトリ)ビデオデータ126として例示的なビデオエンコーダ132に提供する。
【0044】
例示的なビデオエンコーダ132は、デプス(ジオメトリ)ビデオデータ126から、符号化されたアトラスを生成する。例示的なビデオエンコーダ134は、属性(テクスチャ)ビデオデータ128から、符号化されたアトラスを生成する。例えば、ビデオエンコーダ132は、例示的なデプス(ジオメトリ)ビデオデータ126(アトラスを含む)を受信し、HEVCビデオエンコーダを使用してデプス成分を例示的なHEVCビットストリーム136に符号化する。追加的に、ビデオエンコーダ134は、例示的な属性(テクスチャ)ビデオデータ128(アトラスを含む)を受信し、HEVCビデオエンコーダを使用してテクスチャ成分を例示的なHEVCビットストリーム138に符号化する。しかしながら、例示的なビデオエンコーダ132および例示的なビデオエンコーダ134は、追加的に、または代替的に、高度ビデオコーディング(AVC)ビデオエンコーダなどを使用し得る。例示的なHEVCビットストリーム136および例示的なHEVCビットストリーム138は、ビューとアトラスとの間でそれらをマッピングするためのパッチパラメータ、ブロック‐パッチマップを後に取得するなどのために必要な重複パッチを公開するためのパッキング順序、デプス(ジオメトリ)ビデオデータ126および属性(テクスチャ)ビデオデータ128にそれぞれ関連するその他を含み得る。
【0045】
図2は、選択された入力ビューからの例示的なパッチ形成を示す。入力ビューは、例示的な第1ビュー202、例示的な第2ビュー204および例示的な第3ビュー206を含む。例えば、第1ビュー202はビュー0であり、第2ビュー204はビュー1であり、第3ビュー206はビュー2である。例えば、ビュー202、204、206は、ビュー表現208(例えば、属性(テクスチャ)マップ、ジオメトリ(デプス)マップ、エンティティ(オブジェクト)マップ)を含む。図2の示された例において、ビュー202、204、206のビュー表現208は、第3の人物を含む。すなわち、ビュー202、204、206は、第3の人物に関して、3つの異なる角度で、3つの異なるカメラからキャプチャされる。
【0046】
例示的なプルーニング部106(図1)は、ビュー202、204、206をプルーニングしてパッチを生成する。例えば、第1ビュー202は、例示的な第1のパッチ210および例示的な第2のパッチ212を含み、第2ビュー204は、例示的な第3のパッチ214を含み、第3ビュー206は、例示的な第4のパッチ216および例示的な第5のパッチ218を含む。いくつかの例において、各パッチは、1つのそれぞれのエンティティ(オブジェクト)に対応する。例えば、第1のパッチ210は第1の人物の頭部に対応し、第2のパッチ212は第2の人物の頭部に対応し、第3のパッチ214は第2の人物の腕に対応し、第4のパッチ216は第3の人物の頭部に対応し、第5のパッチ218は第2の人物の脚に対応する。
【0047】
いくつかの例において、パッチパッキング部110(図1)は、パッチIDでパッチをタグ付けする。例えば、パッチパッキング部110は、2のパッチIDで第1のパッチ210を、5のパッチIDで第2のパッチ212を、8のパッチIDで第3のパッチ214を、3のパッチIDで第4のパッチ216を、7のパッチIDで第5のパッチ218をタグ付けする。
【0048】
例示的なアトラス生成部112(図1)は例示的な第1のアトラス220および例示的な第2のアトラス222を生成する。アトラス220、222は、テクスチャ(属性)マップおよびデプス(ジオメトリ)マップを含む。示された例において、第1のアトラス220は、例示的な第1のパッチ210、例示的な第2のパッチ212、および例示的な第3のパッチ214を含む。示された例において、第2のアトラス222は例示的な第4のパッチ216および例示的な第5のパッチ218を含む。
【0049】
図3は、例示的な没入型ビデオ(MIV)デコーダ300のブロック図である。例示的なMIVデコーダ300は、例示的なビデオデコーダ308、例示的なビデオデコーダ312、例示的なブロック‐パッチマップデコーダ318、例示的なMIVデコーダおよび解析部316、例示的なジオメトリスケーリング部326、例示的なカル部328、ならびに例示的なレンダリング部330を含む。例示的なレンダリング部330は、例示的なコントローラ332、例示的な合成部334、および例示的なインペイント部336を含む。図3の示された例において、MIVデコーダ300は、ジオメトリ成分および任意選択でテクスチャ属性についてのビデオサブストリームの各々についての符号化ビデオシーケンス(CVS)を受信する。いくつかの例において、MIVデコーダ300は、例示的なMIVデータビットストリーム130、例示的なHEVCビットストリーム136、および例示的なHEVCビットストリーム138を例示的なMIVエンコーダ100から受信する(図1)。
【0050】
図3の示された例において、ビデオデコーダ308はHEVCビットストリーム138を受信する。HEVCビットストリーム138は、属性(テクスチャ)ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップなどを後に取得するために利用される重複したパッチを公開するためのパッキング順序を含む。ビデオデコーダ308は一連の復号済みテクスチャピクチャ310を生成する。ビデオデコーダ312はHEVCビットストリーム136を受信する。HEVCビットストリーム136は、デプス(ジオメトリ)ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序などを含む。ビデオデコーダ308は、一連の復号済みデプスピクチャ314を生成する。ビデオデコーダ308およびビデオデコーダ312は、復号済みテクスチャピクチャ310および復号済みデプスピクチャ314の一連の復号されたピクチャのペアを生成する。いくつかの例において、復号済みテクスチャピクチャ310および復号済みデプスピクチャ314は、同一または異なる解像度を有し得る。示された例において、例示的な復号済みテクスチャピクチャ310および例示的な復号済みデプスピクチャ314は例示的なアトラスを表す。いくつかの例において、ビデオデコーダ308およびビデオデコーダ312はHEVCデコーダであり得る。図3の示された例において、ビデオデコーダ308は復号済みテクスチャピクチャ310をレンダリング部330に提供する。ビデオデコーダ312は復号済みデプスピクチャ314をジオメトリスケーリング部326に、および、ブロック‐パッチマップデコーダ318に提供する。
【0051】
MIVデコーダおよび解析部316はMIVデータビットストリーム130を受信する。例示的なMIVデコーダおよび解析部316は、MIVデータビットストリーム130を解析し、例示的なアトラスデータ320および例示的なビデオベース点群圧縮(V-PCC)および視点パラメータセット322を生成する。例えば、MIVデコーダおよび解析部316は、例示的なパッチリスト、カメラパラメータリストなどについての符号化済みMIVデータビットストリーム130を解析する。MIVデコーダおよび解析部316は、アトラスデータ320ならびにV-PCCおよび視点パラメータセット322を例示的なブロック‐パッチマップデコーダ318、例示的なカル部328、および例示的なレンダリング部330に提供する。
【0052】
ブロック‐パッチマップデコーダ318は、復号済みデプスピクチャ314をビデオデコーダ312から、アトラスデータ320(パッチリストおよびカメラパラメータリストを含む)ならびにV-PCCおよび視点パラメータセット322を例示的なMIVデコーダおよび解析部316から受信する。ブロック‐パッチマップデコーダ318は、ブロック‐パッチマップ324を復号して、復号済みデプスピクチャ314のアトラスにおける点位置/場所を判定する。示された例において、ブロック‐パッチマップ324は、復号済みデプスピクチャ314のうち1または複数の画素の所与のブロックに関連付けられたパッチIDを示す二次元アレイ(例えば、アトラスにおける点位置/場所を表す)である。ブロック‐パッチマップデコーダ318は、ブロック‐パッチマップ324を例示的なジオメトリスケーリング部326に提供する。図3の示された例において、ジオメトリスケーリング部326は、復号済みデプスピクチャ314に含まれるアトラスごとにジオメトリビデオデータのアップスケーリングを実行する。ジオメトリスケーリング部326は、復号済みデプスピクチャ314に含まれるアトラスごとのアップスケーリングされたジオメトリビデオデータを例示的なカル部328および例示的なレンダリング部330に提供する。
【0053】
例示的なカル部328は、ジオメトリ‐スケーリングされたブロック‐パッチマップ324をジオメトリスケーリング部326から受信し、また、アトラスデータ320(パッチリストおよびカメラパラメータリストを含む)ならびにV-PCCおよび視点パラメータセット322を例示的なMIVデコーダおよび解析部316から受信する。カル部328は、例示的な視聴位置および視聴向き340(例えばターゲットビュー)に基づいてパッチカルを実行する。カル部328は、視聴位置および視聴向き340をユーザから受信し得る。カル部328は、ブロック‐パッチマップ324を使用して、ターゲット視聴位置および視聴向き340に基づいて、可視でないアトラスデータ320からのブロックをフィルタリングして除去する。
【0054】
例示的なレンダリング部330は、例示的なビューポート338を生成する。例えば、レンダリング部330は、復号済みテクスチャピクチャ310および復号済みデプスピクチャ314からの復号されたアトラス、アトラスデータ320(例えば、アトラスパラメータリスト、カメラパラメータリスト、アトラスパッチ占有マップ)、ならびに視聴者位置および向き342の1または複数にアクセスする。すなわち、例示的なレンダリング部330は、例示的な視聴者位置および向き342に基づいて選択されるテクスチャ画像のパースペクティブビューポートを出力する。本明細書において開示される例において、視聴者は、6の自由度(6DoF)で動的に移動でき(例えば、視聴者位置および向き342を調節する)、制限範囲内において位置(x,y,z)および向き(ヨー、ピッチ、ロール)を調節する(例えば、ヘッドマウントディスプレイ、または、位置入力を有する2次元モニタ、または同様のものによってサポートされる)。レンダリング部330は、パッチ、ビュー、またはアトラスを含んでいるかどうかにかかわらず、必要なデプス成分(復号済みデプスピクチャ314)および任意選択のテクスチャ成分(復号済みテクスチャピクチャ310)の両方に基づいて例示的なビューポート338を生成する。
【0055】
図3の示された例において、レンダリング部330は、コントローラ332、合成部334およびインペイント部336を含む。例示的なコントローラ332は、復号済みデプスピクチャ314または復号済みテクスチャピクチャ310におけるアトラスの画素が視聴者位置および向き342において占有されているかどうかを示す、アトラスデータ320からのアトラスパッチ占有マップにアクセスする。コントローラ332は、図4に関連して下で更に詳細に説明されるブロック‐パッチマップを使用して、復号済みテクスチャピクチャ310および復号済みデプスピクチャ314のアトラスにおけるパッチからプルーニング済みビューを再構築する。本明細書において開示される例において、プルーニング済みビューは、復号済みテクスチャピクチャ310および復号済みデプスピクチャ314のアトラス内に保持されるパッチによって占有される、エンコーダ側(例えば、図1のMIVエンコーダ100)のソース(入力)ビューの部分的なビュー表現である。コントローラ332は、視聴者位置および向き342に属するプルーニング済みビューを再構築する。いくつかの例において、視聴者位置および向き342に属するプルーニング済みビューは、別のプルーニングされた、または全体ビューにおけるコンテンツの存在に起因して、穴を含み得る。合成部334は、コントローラ332および視聴者位置および向き342からのアトラスパッチ占有マップおよび再構築されたプルーニング済みビューに基づいてビュー合成を実行する。本明細書において開示される例において、インペイント部336は、一致する値を有する再構築されたプルーニング済みビューにおける任意の存在しない画素を満たす。
【0056】
図4は、アトラスパッチからのプルーニング済みビューの例示的な再構築400を示す。図4に示されるように、アトラス406は、アトラス402およびアトラス404を含む。いくつかの例において、ビデオデコーダ308(図3)およびビデオデコーダ312(図3)はアトラス402、404を復号する。図4の示された例において、アトラス402、404はテクスチャマップおよびデプスマップを含む。アトラス402は、例示的な第1のパッチ410、例示的な第2のパッチ412、および例示的な第3のパッチ414を含む。アトラス404は、例示的な第4のパッチ416および例示的な第5のパッチ418を含む。いくつかの例において、パッチは、例示的なパッチパッキング部110(図1)によって判定されたパッチIDを含む。例えば、第1のパッチ410は2のパッチIDを含み、第2のパッチ412は5のパッチIDを含み、第3のパッチ414は8のパッチIDを含み、第4のパッチ416は3のパッチIDを含み、第5のパッチ418は7のパッチIDを含む。
【0057】
いくつかの例において、ブロック‐パッチマップデコーダ318(図3)は、ブロック‐パッチマップを使用して、ビュー表現408に含まれる利用可能なビュー420、424、426に第1のパッチ410、第2のパッチ412、第3のパッチ414、第4のパッチ416および第5のパッチ418をマッチする。ブロック‐パッチマップデコーダ318は、利用可能なビューにパッチをマッチし、利用可能なビュー420、424、426を少なくとも部分的に再構築する。例えば、ブロック‐パッチマップデコーダ318は、第1のパッチ410および第2のパッチ412を第1の利用可能なビュー420に、第3のパッチ414を第2の利用可能なビュー424に、第4のパッチ416および第5のパッチ418を第3の利用可能なビュー426にマッチする。
【0058】
いくつかの例において、各パッチは、利用可能なビュー(例えば、第1の利用可能なビュー420、第2の利用可能なビュー424、および第3の利用可能なビュー426)における1つのそれぞれのエンティティ(オブジェクト)に対応する。例えば、第1の利用可能なビュー420において、第1のパッチ410は第1の人物の頭部に対応し、第2のパッチ412は第2の人物の頭部に対応し、第2の利用可能なビュー424において、第3のパッチ414は第2の人物の腕に対応し、第3の利用可能なビュー426において、第4のパッチ416は第3の人物の頭部に対応し、第5のパッチ418は第2の人物の脚に対応する。
【0059】
図5は、本開示の教示による例示的なテクスチャベースの没入型ビデオ(MIV)エンコーダ500のブロック図である。示された例のテクスチャベースMIVエンコーダ500において、属性(例えば、テクスチャ、エンティティ、反射率など)のみがビューごとに入力され、ビューごとのデプスは提供されない(または任意選択である)。いくつかの実施形態において、カメラパラメータが利用され得る(例えば符号化される)。いくつかの例において、そのようなカメラパラメータは、(例えばデコーダにおいて)テクスチャコンテンツから推定/推論され得る。図5の示された例において、例示的なテクスチャベースMIVエンコーダ500は、例示的なビュー最適化部502、例示的なデプス推論部504、例示的な対応関係アトラス構築部506、例示的な占有パッキング部524、例示的なビデオエンコーダ534、および例示的なビデオエンコーダ536を含む。例示的な対応関係アトラス構築部506は、例示的な対応関係ラベリング部508、例示的な対応関係プルーニング部510、例示的なマスク集約部512、例示的な対応関係パッチパッキング部514、および例示的なアトラス生成部516を含む。
【0060】
示された例において、例示的なテクスチャベースMIVエンコーダ500は、例示的なソースビュー501を受信する。例えば、ソースビュー501は、キャプチャされたシーンのテクスチャデータ(例えば、テクスチャビットストリーム)、および、場合によっては、デプスデータ(例えば、デプスビットストリーム)を含む。例えば、ソースビュー501は、ビデオキャプチャ部によって生成されたソースビュー、コンピュータによって生成された仮想ビューなどであり得る。追加的に、または代替的に、ソースビュー501は、他の属性(例えば、エンティティ、反射率など)を含む。示された例において、ソースビュー501はビデオシーケンスとして表される。例示的なテクスチャベースMIVエンコーダ500は更に、例示的なソースカメラパラメータリスト503を受信する。例えば、ソースカメラパラメータリスト503は、ソースカメラがどこに位置するか、ソースカメラの角度などを含み得る。
【0061】
例示的なビュー最適化部502は、カメラパラメータリスト503からのカメラパラメータを使用して、符号化するビューを識別する。例えば、ビュー最適化部502は、ソースビュー501を分析し、どのビューを符号化するかを選択する。いくつかの例において、ビュー最適化部502は、ソースビュー501のビューを基本ビューまたは追加ビューとしてラベリングする。本明細書において使用される場合、基本ビューとは、単一パッチとしてアトラスにおいてパッキングされるべき入力ビューである。本明細書において使用される場合、追加ビューとは、1または複数のパッチにおいてプルーニングおよびパッキングされるべき入力ビューである。本明細書において開示される例において、ビュー最適化部は、ソースビュー501をビュー識別情報(ID)でラベリングする。
【0062】
例示的なデプス推論部504は、任意選択のデプス推論プロセスを実行して、デプス情報をソースビュー501から取得する。例えば、デプス推論部504は、ソースビュー501についての実際のデプスマップを推定し、オプティカルフローなどの技法を使用してソースビュー501の視差表現を計算し、ビューに跨るモーション技法からの構造を使用して、ビューごとの点群表現などを発見する。本明細書において開示される例において、デプス推論部504は、ソースビュー501に含まれる任意のデプス情報があるかどうかを判定する。デプス推論部504が、任意のデプス情報を判定しない、または、デプス推論部504が例示的な実装から省略される場合、テクスチャベースMIVエンコーダ500は、ソースビュー501に含まれるテクスチャ情報のみを用いて進む。
【0063】
対応関係アトラス構築部506は、例示的なビュー最適化部102によって判定された基本および/または追加ビューを受信する。対応関係アトラス構築部506は、基本および/または追加ビューにおけるテクスチャコンテンツ/情報を評価して、ソースビューごとの固有のテクスチャ情報を識別し、固有のテクスチャ情報をパッチとして抽出する。追加的に、または代替的に、対応関係アトラス構築部506は、基本および/または追加ビューにおける他の属性コンテンツ/情報(例えば、エンティティ、反射率など)を評価して、ソースビューごとの固有の属性情報を識別し、固有の属性情報をパッチとして抽出する。いくつかの例において、対応関係アトラス構築部506は、デプス推論部504から(利用可能な場合に)任意選択のデプス情報を評価する。対応関係アトラス構築部506は、選択されたビュー(例えば、基本および/または追加ビュー)からパッチを形成し、ラベリング、プルーニング、およびクラスタを使用してパッチを判定する。対応関係アトラス構築部506は、対応関係ラベリング部508、対応関係プルーニング部510、マスク集約部512、対応関係パッチパッキング部514、およびアトラス生成部516を含む。
【0064】
対応関係ラベリング部508は、すべてのビュー(例えば、基本および/または追加ビュー)に跨る対応する画素を識別し、テクスチャコンテンツ(および/または他の属性コンテンツ)および利用可能な場合はデプス情報に基づいて、それらをラベリングする。したがって、対応関係ラベリング部508は、固有画素および対応する画素を識別するための手段の例である。本明細書において開示される例において、3次元世界に対する第1ビューからの第1の画素の投影解除(unprojection)、および、後の第2ビューに対する第1の画素の再投影が、第2ビューからの第2の画素と同一の場所に第1の画素を配置する場合、第1の画素および第2の画素(第1ビューからの第1の画素および第2ビューからの第2の画素)は、対応する画素とみなされる。本明細書において開示される例において、第1ビューおよび第2ビューは、基本ビュー、追加ビュー、および/または、基本ビューおよび追加ビューの組み合わせであり得る。いくつかの例において、対応関係ラベリング部508は、マルチビュー特徴抽出およびパターン認識技法(例えば、従来型またはAIベース)を使用して、同様のマルチビューコンテンツに対して訓練された後にすべてのビューにまたがるマッチされた画素を識別およびラベリングする。
【0065】
示された例において、対応関係ラベリング部508は、固有のもの、または対応するものとして画素をラベリングし、これにより、ビュー最適化部502からのすべてのソースビューにわたる対応する画素を識別する。対応関係ラベリング部508は、画素を、他の利用可能なビューにおいて対応する画素を有しない任意のビューからのそれらの画素について、「固有」としてラベリングする。例えば、端末カメラの端の領域、または、特定のビューのみによって可視である閉塞領域に位置する画素は、典型的には、「固有」の画素としてラベリングされる。対応関係ラベリング部508は、画素を、他のの利用可能なビューにおいて1または複数の対応する画素を有する任意のビューからのそれらの画素について「対応」するものとしてラベリングする。2以上の対応する画素の各グループについて、対応関係ラベリング部508は、そのグループにおける対応する画素が同様のテクスチャコンテンツを有するかどうかを判定する。例えば、対応関係ラベリング部508は、2つの対応する画素間でテクスチャコンテンツを比較し、テクスチャコンテンツにおける差分を閾値と比較する。いくつかの例において、閾値は、色成分(例えば、赤・緑・青(RGB)成分)における差分であり得る。例えば、閾値は、色成分の任意の1つの間の5(またはいくつかの他の値)の差分であり得る。対応関係ラベリング部508は、テクスチャコンテンツにおける差分が閾値より下であるとき、対応する画素が同様のテクスチャコンテンツを有すると判定する。対応関係ラベリング部508は、対応する画素を「同様のテクスチャ」としてラベリングし、対応する画素の座標(例えばx、y)位置と共に対応する画素を含むソースビューのビューIDを対応関係リストに格納する。例えば、対応関係リストは、エントリ{(4,27,33),(7,450,270)を含み得る。この例において、2つの対応する同様のテクスチャ画素がある(一方は、画像座標(27,33)におけるビューID4を有するソースビューに位置し、他方は、画像座標(450,270)におけるビューID7を有するソースビューに位置する)。
【0066】
いくつかの例において、対応関係ラベリング部508は、テクスチャコンテンツにおける差分が閾値の上であるとき、異なるテクスチャコンテンツを有する対応する画素(ただし、対応する投影された場所を有し、したがって、対応する画素として分類される)を判定する。いくつかの例において、対応する画素は、異なる反射情報、異なる照明/光情報、異なるカメラセッティングに起因する色の不整合などに基づいて、異なるテクスチャコンテンツを有すると判定され得る。対応関係ラベリング部508は、対応する画素を「異なるテクスチャ」としてラベリングし、対応する画素の座標(例えば、x、y)位置と共に対応する画素を含むソースビューのビューIDを対応関係リストに格納する。本明細書において開示される例において、対応関係ラベリング部508は、対応する画素についての追加のラベル「同様のテクスチャ」および「異なるテクスチャ」を含み、対応関係プルーニング部510がそのような情報を使用して冗長性を低減し、これにより、非冗長情報を出力することを可能にする。いくつかの例において、対応関係ラベリング部は、「同様のテクスチャ」および「異なるテクスチャ」ラベルおよび/または画素の追加のラベルについて他の名称/識別子を使用して、利用可能な場合、テクスチャ以外の属性における対応する画素の差分を示す。例えば、追加のラベルは、透明性、反射率、モーションなどにおける差分を識別し得る。対応関係ラベリング部508は、対応関係ラベリングマップ、および、対応関係のケースに関するビューについてのインデックスされた(例えば、corresponding_id))画素ワイズの対応関係リストを出力する。
【0067】
対応関係プルーニング部510は、予め判定される、構成可能である、などである、1または複数の基準(例えば、ビュー間の重複する情報、キャプチャカメラ間の距離など)に従って、プルーニング順序を判定する。本明細書において開示される例において、基本ビューは、プルーニング中に最初に順序付けられる。いくつかの例において、基本ビュー(例えば、1または複数の基準に基づいて選択される)の第1のものは、プルーニングされない状態で維持され、ソースビュー501に含まれる任意の他の基本ビューおよび追加ビューはプルーニングされ得る。本明細書において開示される例において、対応関係プルーニング部510は、ソースビューをプルーニングし、ビューにおける画素を維持するか(例えば、プルーニングマスク画素が「1」に設定される)、または除去するか(例えば、プルーニングマスク画素が「0」に設定される)を示すバイナリプルーニングマスク(ビューごとに1つ)を出力する。対応関係プルーニング部510は、対応関係ラベリング部508からのラベリングされた画素を使用してソースビューをプルーニングする。
【0068】
いくつかの例において、対応関係プルーニング部510は、プルーニングマスクの画素を0(またはいくつかの他の初期値)に初期化する。いくつかの例において、対応関係プルーニング部は、第1(または唯一)の基本ビューに対応するプルーニングマスクにおけるすべての画素を1(または、初期値とは異なるいくつかの他の値)に設定して、第1の基本ビューのいずれの画素もプルーニングされないことを示す。対応関係プルーニング部510は、他のビューの各々について対応関係ラベリング部508によって「固有」および「対応する異なるテクスチャ」としてラベリングされた画素を識別し、値1を有するビューについての対応するプルーニングマスクにおける画素を設定する。いくつかの例において、対応関係プルーニング部510は、「対応する異なるテクスチャ」画素についての重み付け方式を設定することを選択でき、それにより、大きく重複するビューに属するものがプルーニングされ、互いから遠いビューが維持される。例えば、ビューのソース(例えばカメラ)間の距離が閾値(例えば、10フィート離れている、20フィート離れているなど)を満たすとき、ビューは、互いから遠いとみなされ得る。
【0069】
対応関係プルーニング部510は、他のビューにおいて対応関係リストを検索し、他のビューの各々について対応関係ラベリング部508によって「対応する同様のテクスチャ」としてラベリングされた画素を識別する。いくつかの例において、対応関係リストに含まれる画素の少なくとも2つが、2つの以前にプルーニングされたビューに属する場合、対応関係プルーニング部510は、関連付けられたプルーニングマスクにおける画素を0(例えば、画素がプルーニングされることを示すための初期値)に維持する。さもなければ、対応関係プルーニング部510は、関連付けられたプルーニングマスクにおける画素を1(例えば、画素がプルーニングされないことを示す、初期値以外の値)に設定する。いくつかの例において、2つのプルーニングビューにおける「対応する同様のテクスチャ」としてラベリングされた少なくとも2つの画素が選択され、デプス情報を推論するために例示的なデコーダによって使用される関連付けられたプルーニングマスクにおいて1に設定される。
【0070】
本明細書において開示される例において、対応関係プルーニング部510は、すべてのビューにわたるすべての画素が処理されてビューごとのプルーニングマスクを識別するまで、プルーニングを繰り返す。追加的に、または代替的に、対応関係プルーニング部510は、他の属性コンテンツ/情報(例えば、エンティティ、反射率など)を使用してプルーニングを完了できる。したがって、対応関係プルーニング部510は、プルーニングマスクを生成するための手段の例である。対応関係プルーニング部510は、異なるテクスチャ情報、または、テクスチャベースMIVエンコーダ500に存在しないデプス情報を判定するために例示的なデコーダによって使用されることができる重要な情報を提供するために最小限の対応関係情報を有する場合、符号化されたビットストリームにおける対応する画素を維持する。
【0071】
例示的なマスク集約部512は、例示的な対応関係プルーニング部510によって生成されたプルーニング結果を集約してパッチを生成する。例えば、マスク集約部108は、イントラ期間(例えば、フレームの予め定められた集合)にわたって、モーションの要因となるプルーニング結果(例えばプルーニングマスク)を累積する。したがって、マスク集約部512は、プルーニングマスクを集約するための手段の例である。例示的な対応関係パッチパッキング部514は、マスク集約部512からの集約されたプルーニングマスクに対してクラスタリングを実行する。
【0072】
いくつかの例において、対応関係パッチパッキング部514は、対応関係パッチを識別するパッチ識別情報(patch_id)を含むそれぞれのパッチワイズ対応関係リストでタグ付けできるパッチを抽出する。対応関係パッチパッキング部514は、対応関係を有しない(例えば、隣接画素は両方とも「固有」としてラベリングされる)所与の集約されたプルーニング済みマスクにおける隣接画素を識別し、隣接画素を1つのパッチにグループ化する。本明細書において開示される例において、隣接画素がグループ化されるパッチは、空のパッチワイズの対応関係リストに関連付けられる。
【0073】
いくつかの例において、対応関係パッチパッキング部514は、他の集約されたプルーニング済みマスクにおける画素を有する「対応する同様のテクスチャ」または「対応する異なるテクスチャ」としてラベリングされた所与の集約されたプルーニング済みマスクにおける隣接画素を識別し、対応関係パッチパッキング部514は、これらの隣接画素を1つのパッチにパッキングする。対応関係パッチパッキング部514はまた、すべての他の集約されたプルーニング済みマスクにおける関連付けられた画素を、ビューごとに1つのパッチにグループ化し、その結果、複数の対応関係パッチが生じる。対応関係パッチパッキング部514は、所与の集約されたプルーニング済みマスクにおけるパッチ、および、すべての他の集約されたプルーニング済みマスクにおけるパッチを、対応関係パッチのpatch_idを示すパッチワイズの対応関係リストでタグ付けする。本明細書において開示される例において、対応関係パッチは、異なるビューに属する必要がある(例えば、各々が固有のview_idを有する)。例えば、同一のビューに属する(例えば、同一のview_idを有する)2つのパッチは対応関係パッチであり得ない。対応関係パッチパッキング部514は、集約されたプルーニング済みマスクにおけるすべての画素がクラスタリングされ、関連付けられた対応関係情報を有するパッチにおいて抽出されるまで、このクラスタリングを繰り返す。したがって、対応関係パッチパッキング部514は、パッチを判定するための手段の例である。本明細書において開示される例において、対応関係パッチパッキング部514は、第1の基本ビューのすべての情報を複数のパッチ(例えば、単一パッチ全体ではない)にクラスタリングし、他の利用可能なビューにおけるパッチとの対応関係を確立する。
【0074】
本明細書において開示される例において、各ビューにおける各パッチについてパッチワイズの対応関係リストをシグナリングするときに使用されるビットを節約するために、周期的な方式で、各パッチごとに1つの対応関係パッチのみを示すことが可能である。例えば、patch_id2、5、8の3つの対応関係パッチをそれぞれ想定すると、pdu_corresponding_idは各々のパッチパラメータに導入され得る。そのような例において、patch_id=2のパッチは、pdu_corresponding_id=5、または、完全リストpdu_corresponding_list=[5,8]を有し、patch_id=5のパッチは、pdu_corresponding_id=8または完全リストpdu_corresponding_list=[2,8]を有し、patch_idのパッチは、pdu_corresponding_id=2または完全リストpdu_corresponding_list=[2,5]を有する。
【0075】
パッチのクラスタリングおよび抽出が完了すると、対応関係パッチパッキング部514は、ブロック‐パッチマップ(例えば、パッチIDマップ)を生成できる。ブロック‐パッチマップは、1または複数の画素の所与のブロックに関連付けられたパッチIDを示す二次元アレイ(例えば、アトラスにおける点位置/場所を表す)である。
【0076】
アトラス生成部516は、テクスチャパッチをテクスチャのみのアトラス520に書き込む(テクスチャベースMIVエンコーダ500において、アトラスについてデプス成分が存在しないため)。アトラス生成部516は、テクスチャのみのアトラス520を例示的な属性(テクスチャ)ビデオデータ530として例示的なビデオエンコーダ536に出力する。したがって、アトラス生成部516は、アトラスを生成するための手段の例である。アトラス生成部516はまた、関連付けられたアトラスと同一のサイズのバイナリ占有マップ522(アトラスあたり1つ)を例示的な占有パッキング部524に出力する。アトラス生成部516は、ビューパラメータおよび他のシーケンス情報に加えて、アトラス間でパッチがどのようにマッピングされるかを伝えるメタデータを生成し、メタデータ518を例示的な占有パッキング部524および例示的なビデオエンコーダ536に出力する。
【0077】
占有パッキング部524は占有マップ522をアトラス生成部516から受信する。いくつかの例において、占有パッキング部524は、X個のバイナリ画素(ビット)ごとに1つの成分にパッキングし(例えば、Xは8ビット、10ビットなどであり得る)、その結果、明示的にシグナリングされる占有マップについてのサイズが低減され、画素レートが節約される。いくつかの例において、占有パッキング部524は、レングスコーディング技法を使用して、ロスレス方式で、反復パターンを圧縮する。いくつかの例において、占有パッキング部524は、例示的なMIVデータビットストリーム532におけるパッキングされた占有マップ526、ブロック‐パッチマップ、および、パッチIDデータを含む。示された例において、MIVデータビットストリーム532は、ビューとアトラスとの間でそれらをマッピングするためのパッチパラメータ、ブロック‐パッチマップを後に取得するために必要な重複パッチを公開するためのパッキング順序、ビデオベース点群圧縮(V-PCC)パラメータセット、および、適応パラメータセット(ビューパラメータを含む)、および、ビデオコーディングデータからの任意の他のメタデータを含む。いくつかの例において、MIVデータビットストリーム532は、符号化ビデオデータがビュー/アトラスにおいてジオメトリ(デプス)情報を含まないことを識別するためのフラグ(またはビット)を含む。
【0078】
例示的なビデオエンコーダ534は、占有ビデオデータ528から符号化されたアトラスを生成する。例示的なビデオエンコーダ536は、属性(テクスチャ)ビデオデータ530から符号化されたアトラスを生成する。例えば、ビデオエンコーダ534は、例示的な占有ビデオデータ528を受信し、HEVCビデオエンコーダを使用して、パッキングされた占有マップ526を例示的なHEVCビットストリーム538に符号化する。追加的に、ビデオエンコーダ536は、例示的な属性(テクスチャ)ビデオデータ530(アトラスを含む)を受信し、HEVCビデオエンコーダを使用してテクスチャ成分を例示的なHEVCビットストリーム540に符号化する。しかしながら、例示的なビデオエンコーダ534および例示的なビデオエンコーダ536は、追加的に、または代替的に、高度ビデオコーディング(AVC)ビデオエンコーダなどを使用し得る。例示的なHEVCビットストリーム538および例示的なHEVCビットストリーム540は、ビューとアトラスとの間でマッピングするためのパッチパラメータ、後にブロック‐パッチマップを取得することなどに必要な重複パッチを公開するためのパッキング順序、占有ビデオデータ528および属性(テクスチャ)ビデオデータ530にそれぞれ関連するものを含み得る。本明細書において開示される例において、占有ビデオデータ528および属性(テクスチャ)ビデオデータ530におけるパッキングされた占有マップは、ビデオコーディングされ、MIVデータビットストリーム532に含まれるメタデータと共に多重化され、これは、デコーダ(例えば、図7の例示的なテクスチャベースMIVデコーダ700)、および/または、ストレージ、ならびに、復号およびユーザへの提示のために任意の数のデコーダへの最終的な送信のためのメモリデバイスへ送信され得る。
【0079】
図6は、図5のテクスチャベースMIVエンコーダ500における入力ビューからの例示的なアトラス生成を示す。入力ビューは、例示的な第1ビュー602、例示的な第2ビュー604、および例示的な第3ビュー606を含む。示された例において、第1ビュー602はビュー0ともラベリングされ、第2ビュー604はビュー1ともラベリングされ、第3ビュー606はビュー2ともラベリングされる。示された例において、ビュー602、604、606は、ビュー表現608(例えば、属性(テクスチャ)マップ)を含む。図6の示された例において、ビュー602、604、606のビュー表現608は第3の人物を含む。すなわち、ビュー602、604、606は、第3の人物に関して、3つの異なる角度における3つの異なるカメラからキャプチャされる。
【0080】
例示的な対応関係プルーニング部510(図5)は、ビュー602、604、606をプルーニングして、パッチを生成する。例えば、第1ビュー602は、例示的な第1のパッチ610および例示的な第2のパッチ612を含み、第2ビュー604は例示的な第3のパッチ616を含み、第3ビュー606は例示的な第4のパッチ624および例示的な第5のパッチ626を含む。いくつかの例において、各パッチは、1つのそれぞれのエンティティ(オブジェクト)に対応する。例えば、第1のパッチ210は第1の人物の頭部に対応し、第2のパッチ212は第2の人物の頭部に対応し、第3のパッチ214は第2の人物の腕に対応し、第4のパッチ216は第3の人物の頭部に対応し、第5のパッチ218は第2の人物の脚に対応する。
【0081】
例示的な対応関係プルーニング部510は、ビュー602、604、606をプルーニングして、対応関係パッチを生成する。例えば、第1ビュー602は、例示的な第1の対応関係パッチ614を含み、第2ビュー604は例示的な第2の対応関係パッチ618、例示的な第3の対応関係パッチ620、および例示的な第4の対応関係パッチ622を含み、第3ビュー606は例示的な第5の対応関係パッチ628を含む。本明細書において開示される例において、対応関係プルーニング部510は、例示的な対応関係ラベリング部508(図5)からのラベリングされた画素(例えば対応する同様のテクスチャ、異なるテクスチャなど)を使用して、対応関係パッチ614、618、620、622、628を識別する。示された例において、第1ビュー602の第1の対応関係パッチ614は第2ビュー604の第3のパッチ616に対応し、第2ビュー604の第2の対応関係パッチ618は第1ビュー602の第1のパッチ610に対応し、第2ビュー604の第3の対応関係パッチ620は第3ビュー606の第4のパッチ624に対応し、第2ビュー604の第4の対応関係パッチ622は第3ビュー606の第5のパッチ626に対応し、第3ビュー606の第5の対応関係パッチ628は第1ビュー602の第2のパッチ612に対応する。いくつかの実施形態において、対応する画素を判定するための閾値は、より多くの画素が「同様」ではなく「異なる」とみなされるように、調節され得(図5に関連して上で説明される)、これにより、例示的なデコーダがパッチからデプス情報を取得できるように、十分な情報を送信する冗長性を増加させる。例えば、対応関係プルーニング部510は、対応関係パッチにおいて、より多くの対応する画素を含む。
【0082】
いくつかの例において、対応関係パッチパッキング部514(図5)は、パッチIDでパッチを、対応関係パッチIDで対応関係パッチをタグ付けする。例えば、対応関係パッチパッキング部514は、2のパッチIDで第1のパッチ610を、5のパッチIDで第2のパッチ612を、8のパッチIDで第3のパッチ616を、3のパッチIDで第4のパッチ624を、7のパッチIDで第5のパッチ626をタグ付けする。対応関係パッチパッキング部514は、18のパッチIDで第1の対応関係パッチ614を、12のパッチIDで第2の対応関係パッチ618を、13のパッチIDで第3の対応関係パッチ620を、17のパッチIDで第4の対応関係パッチ622を、15のパッチIDで第5の対応関係パッチ628をタグ付けする。
【0083】
例示的なアトラス生成部516(図5)は、例示的な第1のアトラス630および例示的な第2のアトラス632を生成する。アトラス630、632は、テクスチャ(属性)マップ(例えば、テクスチャ#0およびテクスチャ#1)を含む。例示的な第1のアトラス630は、第1のパッチ610、第2のパッチ612、第3のパッチ616、第3の対応関係パッチ620、および第5の対応関係パッチ628を含む。例示的な第2のアトラス632は、第4のパッチ624、第5のパッチ626、第1の対応関係パッチ614、第2の対応関係パッチ618、および第4の対応関係パッチ622を含む。いくつかの例において、対応関係パッチパッキング部514は、第1のアトラス630および第2のアトラス632に関連付けられた対応関係リストを生成する。対応関係リストは、対応する画素の座標(例えば、x、y)位置と共に対応する画素を含むソースビューのビューIDを格納する。例えば、対応関係パッチパッキング部514は、第1の対応関係パッチ614に含まれる画素を識別し、第1の対応関係パッチ614における対応する画素の座標(例えば、x、y)位置と共に対応する画素(例えば、第1ビュー602)を含むソースビューのビューIDを格納する。アトラス生成部516は、それぞれの対応関係リストで第1のアトラス630および第2のアトラス632をタグ付けし、対応関係パッチ(例えば、第1の対応関係パッチ614、第2の対応関係パッチ618、第3の対応関係パッチ620、第4の対応関係パッチ622、および第5の対応関係パッチ628)を識別する。
【0084】
図7は、本開示の教示による例示的なテクスチャベースの没入型ビデオ(MIV)デコーダ700のブロック図である。例示的なテクスチャベースMIVデコーダ700は、例示的なビデオデコーダ708、例示的なビデオデコーダ712、例示的な占有アンパッキング部714、例示的なMIVデコーダおよび解析部718、例示的なブロック‐パッチマップデコーダ720、例示的なカル部728、および、例示的なレンダリング部730を含む。例示的なレンダリング部730は、例示的なコントローラ732、例示的なデプス推論部734、例示的な合成部736、および例示的なインペイント部738を含む。図7に示されるように、テクスチャベースのMIVデコーダ700の入力ビットストリーム(例えば、図5のテクスチャベースMIVエンコーダ500から受信される)は、コーディング済みテクスチャビデオ、コーディングされた占有ビデオ、およびメタデータを含む。いくつかの例において、テクスチャベースのMIVデコーダ700は、例示的なHEVCビットストリーム540、例示的なHEVCビットストリーム538、および例示的なMIVデータビットストリーム532を例示的なテクスチャベースMIVエンコーダ500(図5)から受信する。
【0085】
図7の示された例において、ビデオデコーダ708はHEVCビットストリーム540を受信する。HEVCビットストリーム540は、属性(テクスチャ)ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序などを含む。ビデオデコーダ708は、復号済みテクスチャピクチャ710のシーケンスを生成する。ビデオデコーダ712は、HEVCビットストリーム538を受信する。HEVCビットストリーム538は、復号された占有ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序、占有マップなどを含む。ビデオデコーダ712は、復号された占有ビデオデータを例示的な占有アンパッキング部714に提供する。示された例において、例示的な復号済みテクスチャピクチャ710は、例示的なアトラスを表す。いくつかの例において、ビデオデコーダ708およびビデオデコーダ712はHEVCデコーダであり得る。したがって、ビデオデコーダ708およびビデオデコーダ712は、符号化ビデオデータ(例えば、HEVCビットストリーム538およびHEVCビットストリーム540)を復号するための手段の例である。図7の示された例において、ビデオデコーダ708は、復号済みテクスチャピクチャ710をレンダリング部730に提供する。
【0086】
例示的な占有アンパッキング部714は、パッキングプロセスを反転し、復号済みテクスチャピクチャ710のテクスチャアトラスと同一のサイズの占有マップ716を取得する。いくつかの例において、ランレングス符号化技法を使用して占有コンテンツが符号化される場合、占有のためのビデオデコーダ712および占有アンパッキング部714がランレングスデコーダによって置き換えられ、符号化プロセスを反転し、バイナリ占有マップを再構築する。本明細書において開示される例において、占有アンパッキング部714は、占有マップ716をレンダリング部730およびブロック‐パッチマップデコーダ720に提供する。
【0087】
MIVデコーダおよび解析部718は、MIVデータビットストリーム532を受信する。例示的なMIVデコーダおよび解析部718は、MIVデータビットストリーム532を解析して、例示的なアトラスデータ722および例示的なビデオベース点群圧縮(V-PCC)および視点パラメータセット724を生成する。例えば、MIVデコーダおよび解析部718は、例示的なパッチリスト、カメラパラメータリストなどについての符号化されたMIVデータビットストリーム532を解析する。示された例において、MIVデコーダおよび解析部718は、MIVデータビットストリーム532を解析して、符号化ビデオデータがジオメトリ(デプス)情報を含まないことを示すためにフラグ(またはビット)が設定されているかどうかを識別する。したがって、MIVデコーダおよび解析部718は、符号化ビデオデータ(例えば、MIVデータビットストリーム532)におけるフラグを識別するための手段の例である。MIVデコーダおよび解析部718は、アトラスデータ722、および、V-PCCおよび視点パラメータセット724を例示的なブロックパッチマップデコーダ720、例示的なカル部728、および例示的なレンダリング部730に提供する。
【0088】
ブロック‐パッチマップデコーダ720は、占有マップ716をビデオデコーダ712から、アトラスデータ722(パッチリストおよびカメラパラメータリストを含む)ならびにV-PCCおよび視点パラメータセット724を例示的なMIVデコーダおよび解析部718から受信する。ブロック‐パッチマップデコーダ720は、ブロック‐パッチマップ726を復号して、テクスチャアトラスおよび占有マップ716における点位置/場所を判定する。示された例において、ブロック‐パッチマップ726は、テクスチャアトラスのうち1または複数の画素の所与のブロックに関連付けられたパッチIDを示す二次元アレイ(例えば、アトラスにおける点位置/場所を表す)である。ブロック‐パッチマップデコーダ720はブロック‐パッチマップ726を例示的なカル部728に提供する。本明細書において説明されるテクスチャベースの技法において、ビットストリームにおいてコーディングされたデプス(ジオメトリ)は無く、したがって、ジオメトリスケーリング部は除去されることに留意されたい。
【0089】
例示的なカル部728は、ブロック‐パッチマップ726をブロック‐パッチマップデコーダ729から、アトラスデータ722(パッチリストおよびカメラパラメータリストを含む)ならびにV-PCCおよび視点パラメータセット724を例示的なMIVデコーダおよび解析部718から受信する。カル部728は、例示的な視聴位置および視聴向き742(例えばターゲットビュー)に基づいて、パッチカルを実行する。カル部728は、視聴位置および視聴向き742をユーザから受信し得る。カル部728は、ターゲット視聴位置および視聴向き742に基づいて可視でないブロック‐パッチマップ726に基づいてアトラスデータ722からブロックをフィルタリングして除去する。
【0090】
例示的なレンダリング部730は、例示的なビューポート740を生成する。例えば、レンダリング部730は、復号済みテクスチャピクチャ310からの復号されたアトラス、ならびに、占有マップ716、アトラスデータ722(例えば、アトラスパラメータリスト、カメラパラメータリスト、アトラスパッチ占有マップ)、V-PCCおよび視点パラメータセット724、および視聴者位置および向き744のうち1または複数にアクセスする。すなわち、例示的なレンダリング部730は、例示的な視聴者位置および向き744に基づいて選択されたテクスチャ画像のパースペクティブビューポートを出力する。本明細書において開示される例において、視聴者は、6の自由度(6DoF)で動的に移動でき(例えば、視聴者位置および向き744を調節する)、制限範囲内において位置(x,y,z)および向き(ヨー、ピッチ、ロール)を調節する(例えば、ヘッドマウントディスプレイ、または、位置入力を有する2次元モニタ、または同様のものによってサポートされる)。したがって、レンダリング部730は、ターゲットビューを生成する手段の例である。レンダリング部730は、テクスチャ成分(復号済みテクスチャピクチャ310)、および、対応関係テクスチャ成分に基づく推論されたデプス成分の両方に基づいて、例示的なビューポート740を生成する。
【0091】
図7の示された例において、レンダリング部730は、コントローラ732、デプス推論部734、合成部736およびインペイント部738を含む。例示的なコントローラ732は、復号済みテクスチャピクチャ710におけるアトラスの画素が視聴者位置および向き744において占有されているかどうかを示すアトラスパッチ占有マップ716にアクセスする。本明細書において開示される例において、復号済みテクスチャピクチャ710の復号されたアトラスは、必要に応じて、デプス推論を可能にするのに十分な情報を含む。いくつかの例において、コントローラ732は、ブロック‐パッチマップを使用して、復号済みテクスチャピクチャ710におけるアトラス内のパッチを置き換える。コントローラ732は、ブロック‐パッチマップを使用して、復号済みテクスチャピクチャ710のアトラスにおけるパッチからプルーニング済みビューを再構築する。本明細書において開示される例において、プルーニング済みビューは、復号済みテクスチャピクチャ710のアトラス内に保持されるパッチによって占有される、エンコーダ側(例えば、図5のテクスチャベースMIVエンコーダ500)におけるソース(入力)ビューの部分的ビュー表現である。コントローラ732は、視聴者位置および向き744に属するプルーニング済みビューを再構築する。いくつかの例において、視聴者位置および向き744に属するプルーニング済みビューは、別のプルーニングされた、または全体ビューにおけるコンテンツの存在に起因して、穴を含み得る。
【0092】
示された例において、デプス推論部734は、プルーニング済みビューからデプス情報を推論する。各ビューにおける再マッピングされた各パッチは、異なるプルーニング済みビューからの少なくとも1つの対応関係パッチを有するので(符号化段階においてその画素が「固有」としてラベリングされるまで)、デプス推論部734は、対応関係パッチを使用して、復号済みテクスチャピクチャ710のアトラスからデプス情報を判定する(例えば、推論/推定する)。いくつかの例において、デプス推論部734は、復号済みテクスチャピクチャ710内で利用可能な(または、関連するSEIメッセージにおいて補足される)pdu_correspondence_id(またはpdu_correspondence_list)を使用して対応関係パッチを識別する。pdu_correspondence_idにおける対応関係パッチの識別情報(または、pdu_correspondence_list)は、デプス推論部734が、例えば、限定されたウィンドウ内で、対応関係画素を効率的に検索することを可能にし(対応関係パッチの厳密な場所が知られているため)、これにより、従来のステレオベースのデプス推定技法において通常展開されるコストの大きい検索およびブロックマッチ動作の必要性を取り除く。いくつかの例において、デプス推論部734は、プルーニング済みビュー内で利用可能な場合、2より多くの対応関係パッチを使用して、推定品質を改善し得る(例えば、「対応する異なるテクスチャ」としてラベリングされる対応関係パッチ、または、「対応する同様のテクスチャ」としてラベリングされるものについては、2より多くの対応関係パッチを可能にする許容差を有する)。デプス推論部734は、視聴者モーションとインタラクティブなリアルタイム性能を提供する。
【0093】
図7の示された例において、合成部736は、コントローラ732ならびに視聴者位置および向き744からのアトラスパッチ占有マップおよび再構築されたプルーニング済みビューに基づいてビュー合成を実行する。本明細書において開示される例において、インペイント部738は、一致する値を有する再構築されたプルーニング済みビューにおける任意の存在しない画素を満たす。
【0094】
図8は、図7のテクスチャベースのMIVデコーダ700によって実装される例示的なレンダリングプロセスのブロック図である。例示的なレンダリングプロセス800は、例示的な復号ジオメトリ(デプス)アトラス802、例示的な復号占有アトラス804、例示的な復号テクスチャ属性アトラス806、例示的なアトラス情報808、例示的なビュー情報810、例示的なジオメトリビデオスケーリングプロセス812、例示的な占有ビデオ再構築プロセス814、例示的なエンティティフィルタリングプロセス816、例示的なソースビュー再構築プロセス818、例示的なデプス復号プロセス820、例示的なデプス推定プロセス822、例示的な再構築ビュー‐ビューポート投影プロセス824、ならびに、例示的な混合およびインペイントプロセス826を含む。示された例において、アトラス情報808は、アトラスパラメータおよびパッチリストを含み、ビュー情報810はビューパラメータを含む。例示的なレンダリングプロセス800は、デプス情報が利用可能である、または利用可能でないとき、テクスチャベースのMIVデコーダ700(図7)のレンダリングプロセスを示す。
【0095】
示された例において、エンティティフィルタリングプロセス816は、アトラス情報808を解析して、デプス(ジオメトリ)アトラスがビットストリームに含まれるかどうかを識別するビットストリームインジケータ(例えば、フラグ、ビットなど)を識別する。例えば、アトラス情報808は、デプス情報がアトラスに含まれるかどうかをアトラスが識別するためのフラグ(例えば、vps_geometry_video_present_flag[j]、jは0または1の二進値を示す)を含み得る。いくつかの例において、デプス情報が存在することをアトラス情報808が示す場合、例示的なジオメトリビデオスケーリングプロセス812は、復号済みジオメトリ(デプス)アトラス802からジオメトリ(デプス)情報を復号することに進む。示された例において、占有ビデオ再構築プロセス814は、復号済み占有アトラス804および復号済みテクスチャ属性アトラス806についての占有マップを再構築する。
【0096】
デプス情報が存在することをアトラス情報808が示すいくつかの例において、例示的なレンダリングプロセスが例示的なソースビュー再構築プロセス818、例示的なデプス復号プロセス820、および例示的な再構築ビュービューポート投影プロセス824を実行して、復号済みジオメトリ(デプス)アトラス802、復号済み占有アトラス804、復号済みテクスチャ属性アトラス806、アトラス情報808、およびビュー情報810を使用して、テクスチャおよびジオメトリ画像のパースペクティブビューポートを判定および出力する。デプス情報が存在しないことをアトラス情報808が示す例において、例示的なレンダリングプロセス800は、例示的なデプス復号プロセス820を実行せず、代わりに、デプス推定プロセス822を実行する。そのような例において、デプス推定プロセス822は、復号済み占有アトラス804、復号済みテクスチャ属性アトラス806、アトラス情報808、および、ビュー情報810を使用して、テクスチャ属性アトラス806の各々からデプス値を判定する(例えば、推論/推定する)。図8の示された例において、レンダリングプロセス800は、提供されたデプスアトラス(例えば、復号済みジオメトリ(デプス)アトラス802)から、または、提供された占有マップおよびテクスチャアトラス(例えば、復号済み占有アトラス804および復号済みテクスチャ属性アトラス806)からのデプスの推論から、デプス情報を判定し得る。本明細書において開示される例において、アトラス情報808に含まれるインジケータは、どのプロセス(例えば、例示的なデプス復号プロセス820または例示的なデプス推定プロセス822)が、パースペクティブビューポートについてのデプス情報を判定するために実行されるかを判定する。
【0097】
図9は、図7のテクスチャベースのMIVデコーダ700における例示的なアトラスビュー再構築900を示す。図9に示されるように、アトラス906はアトラス902およびアトラス904を含む。いくつかの例において、ビデオデコーダ708(図7)およびビデオデコーダ712(図7)はアトラス902、904を復号する。図9の示された例において、アトラス902、904は、テクスチャマップ(例えば、テクスチャ#0およびテクスチャ#1)を含む。アトラス902は、例示的な第1のパッチ910、例示的な第2のパッチ912、例示的な第3のパッチ914、例示的な第1の対応関係パッチ916、および例示的な第2の対応関係パッチ918を含む。例示的なアトラス904は、例示的な第4のパッチ920、例示的な第5のパッチ922、例示的な第3の対応関係パッチ924、例示的な第4の対応関係パッチ926、および例示的な第5の対応関係パッチ928を含む。いくつかの例において、パッチはパッチIDを含み、対応関係パッチは、例示的な対応関係パッチパッキング部514(図5)によって判定された対応関係パッチIDを含む。例えば、第1のパッチ910は2のパッチIDを含み、第2のパッチ912は5のパッチIDを含み、第3のパッチ914は8のパッチIDを含み、第4のパッチ920は3のパッチIDを含み、第5のパッチ922は7のパッチIDを含む。13のパッチIDを有する第1の対応関係パッチ916、15のパッチIDを有する第2の対応関係パッチ918、12のパッチIDを有する第3の対応関係パッチ924、17のパッチIDを有する第4の対応関係パッチ622、18のパッチIDを有する第5の対応関係パッチ928。
【0098】
いくつかの例において、ブロック‐パッチマップデコーダ720(図7)は、ブロック‐パッチマップを使用して、第1のパッチ910、第2のパッチ912、第3のパッチ914、第1の対応関係パッチ916、第2の対応関係パッチ918、第4のパッチ920、第5のパッチ922、第3の対応関係パッチ924、第4の対応関係パッチ926、および第5の対応関係パッチ928を、例示的なビュー表現908に含まれる利用可能なビュー930、934、936とマッチする。ブロック‐パッチマップデコーダ720は、パッチおよび対応関係パッチを利用可能なビューとマッチして、利用可能なビュー930、934、936を少なくとも部分的に再構築する。例えば、ブロック‐パッチマップデコーダ720は、第1のパッチ910、第2のパッチ912、および第5の対応関係パッチ928を、第1の利用可能なビュー930、第3のパッチ914、第1の対応関係パッチ916、第3の対応関係パッチ924および第4の対応関係パッチ926を第2の利用可能なビュー934に、第4のパッチ920、第5のパッチ922、および第2の対応関係パッチ918を第3の利用可能なビュー936にマッチする。
【0099】
いくつかの例において、各パッチおよび対応関係パッチは、利用可能なビュー(例えば、第1の利用可能なビュー930、第2の利用可能なビュー934、および第3の利用可能なビュー936)における1つのそれぞれのエンティティ(オブジェクト)に対応する。例えば、第1の利用可能なビュー930における第1のパッチ910、および、第2の利用可能なビュー934における第3の対応関係パッチ924は、第1の人物の頭部に対応し、第1の利用可能なビュー930における第2のパッチ912および第2の対応関係パッチ918は、第3の人物の頭部に対応し、第2の利用可能なビュー934における第3のパッチ914および第1の利用可能なビュー930における第5の対応関係パッチ928は、第3の人物の腕に対応し、第3の利用可能なビュー936における第4のパッチ920および第2の利用可能なビュー934における第1の対応関係パッチ916は、第2の人物の頭部に対応し、第5のパッチ922および第4の対応関係パッチ926は、第3の人物の脚に対応する。本明細書において開示される例において、パッチ(例えば、第1のパッチ910、第2のパッチ912、第3のパッチ914、第4のパッチ920、および第5のパッチ922)は、別個の利用可能なビューにおける対応関係パッチ(例えば、第1の対応関係パッチ916、第2の対応関係パッチ918、第3の対応関係パッチ924、第4の対応関係パッチ926、および第5の対応関係パッチ928)にマッチされ、テクスチャマップからの追加のテクスチャ情報を提供し、アトラス(例えば、アトラス902およびアトラス904)において提供されないデプス情報を判定する。いくつかの例において、例示的なビデオデコーダ708(図7)は、例示的なHEVCビットストリーム540(図7)を復号して、アトラス902、904および図5の例示的なテクスチャベースMIVエンコーダ500からのそれぞれの対応関係リストを識別する。アトラス902、904の対応関係リストは、パッチに関連付けられた対応関係パッチの各々について、ソースビューのビューID、および、対応する画素の座標(例えば、x、y)位置を識別する。例えば、アトラス902についての対応関係リストは、第1の対応関係パッチ916のソースビュー(第1の利用可能なビュー930)、および、第1の対応関係パッチ916に含まれる対応する画素の座標(例えば、x、y)位置を、第4のパッチ920に関連付けられている(例えばマッチする)と識別する。
【0100】
図10は、MIVエクステンション(例えば、例示的なV3Cサンプルストリーム1000)を有する例示的なV3Cサンプルストリームを示す。例えば、テクスチャベースMIVエンコーダ500は、V3Cサンプルストリーム1000を生成する。例示的なV3Cサンプルストリーム1000は、例示的なV3Cパラメータセット1002、例示的な共通アトラスデータ1004、例示的なアトラスデータ1006、例示的なジオメトリビデオデータ1008、例示的な属性ビデオデータ1010、および例示的な占有ビデオデータ1011を含む。
【0101】
例えば、V3Cパラメータセット1002は、例示的なIVアクセスユニットパラメータおよび例示的なIVシーケンスパラメータを含む。例示的な共通アトラスデータ1004は例示的なビューパラメータリスト1012を含む。例えば、共通アトラスデータ1004は、アトラスサブビットストリームを含むが、主なネットワーク抽象化層(NAL)ユニットは、ビューパラメータリスト1012またはその更新を含む共通アトラスフレーム(CAF)である。例示的なアトラスデータ1006は、例示的なSEIメッセージを含むNALサンプルストリームである。例えば、アトラスデータ1006は、パッチデータユニット(PDU)のリストを保持するアトラスタイル層(ATL)を含む。本明細書において開示される例において、各PDUは、アトラスにおけるパッチと、仮定の入力ビューにおける同一のパッチとの間の関係を説明する。例示的なアトラスデータ1006は、例示的なアトラスタイル層1014(例えばパッチデータ1014)を含む。例えば、パッチデータ1014は、例えば、イントラ期間1016のみに(例えば、イントラ期間1016あたり1回)送信される。いくつかの例において、フレーム順序カウントNALユニットは、すべてのインターフレームを一度にスキップするために使用される。
【0102】
本明細書において開示される例において、適応型パラメータセット(共通アトラスデータ1004に含まれる)は、テクスチャベースのシグナリングオプションを含む。いくつかの例において、MIV動作モードは、以下の表1のような適応パラメータセットにおける専用メタデータシンタックス要素(例えば、aps_operation_mode)によって示される。
【表1】
表1
【0103】
いくつかの実施形態において、aps_operation_modeは、以下の表2に定義されるように、MIV動作モードを指定する。
【表2】
表2
【0104】
本明細書において開示される例において、V3Cパラメータセット1002は、例示的なインジケータ(vps_geometry_video_present_flag[j])を含み、インジケータ(j)のインデックスは、0に等しく設定され、ジオメトリが存在しないことを示す。
【0105】
いくつかの例において、vme_embedded_occupancy_flagがvps_miv_extension()に追加され、表3に関連して下で定義されるように、占有がジオメトリに組み込まれていないことを示す。
【表3】
表3
【0106】
いくつかの例において、アトラス機能ごとの一定のデプスパッチをサポートするために、インジケータ(フラグ)(例えば、asme_patch_constant_depth_flag)がasps_miv_extension()に追加される。いくつかの例において、インジケータが設定されるとき、ジオメトリビデオは、アトラスのために存在せず、その値はpdu_depth_start[p]シンタックス要素によって直接判定される。
【表4】
表4
【0107】
上の表4の例において、1に等しく設定されたasme_patch_constant_depth_flagは、vps_geometry_video_present_flag[atlasIdx]が0に等しいとき、復号されたデプスは、本明細書に開示されるように導出されることを指定する。いくつかの例において、0に等しく設定されたasme_patch_constant_depth_flagは、vps_geometry_video_present_flag[atlasIdx]が0に等しいとき、デプスが外部手段によって判定されることを指定する。
【0108】
デプス内に黙示的に組み込まれているか、または、サブビットストリームに明示的に存在するか(および、占有サブビットストリームビデオについて、成分ごとにいくつのビットがパッキングされているか)にかかわらず、占有マップのシグナリングは、以下の表5に示されるように、アトラスデータ1006において設定されるアトラスシーケンスパラメータを使用して、アトラスごとに判定され得る。
【表5】
表5
【0109】
例えば、1に等しいシンタックス要素masp_occupancy_subbitstream_present_flagは、VPCC_OVD vpccユニットが3VCシーケンスに存在し得ることを指定する。0に等しいmasp_occupancy_subbitstream_present_flagは、VPCC_OVD vpccユニットが3VCシーケンスに存在しないことを指定する。存在しないとき、masp_occupancy_subbitstream_present_flagの値は、0に等しいと推論される。
【0110】
シンタックス要素masp_occupancy_num_packed_bitsは、いくつの連続する占有値が1つのサンプルとしてパッキングされるかを指定する。占有マップのサイズは、(AspsFrameFrameWidth[a]/masp_occupancy_num_packed_bits)×AspsFrameFrameHeight[a]になるように低減される。
【0111】
さらに、パッチごとの対応関係情報は、表6において以下のように定義され得る。
【表6】
表6
【0112】
例えば、シンタックス要素pdu_correspondence_idは、patchIdxに等しいインデックスを有するパッチに関連付けられた対応関係パッチidを指定する。pdu_correspondence_idが存在しない場合、0xFFFF(例えば、有効でない)であると推論され、これは、patchIdxに等しいインデックスを有するパッチについて対応関係パッチが存在しないことを意味する。いくつかの実施形態において、追加的または代替的に、アトラスごとのパッチごとの専用SEIメッセージ内において、対応関係情報はシグナリングされる。
【0113】
テクスチャベースMIVエンコーダ500を実装する例示的な方式が図5に示されるが、図5に示される要素、プロセスおよび/またはデバイスの1または複数は、組み合わされ、分割され、再配置され、省略され、取り除かれ、および/または、任意の他の方式で実装され得る。更に、例示的なビュー最適化部502、例示的なデプス推論部504、例示的な対応関係アトラス構築部506、例示的な対応関係ラベリング部508、例示的な対応関係プルーニング部510、例示的なマスク集約部512、例示的な対応関係パッチパッキング部514、例示的なアトラス生成部516、例示的な占有パッキング部524、例示的なビデオエンコーダ534、例示的なビデオエンコーダ536、および/または、より一般に、図5の例示的なテクスチャベースMIVエンコーダ500は、ハードウェア、ソフトウェア、ファームウェア、および/または、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせによって実装され得る。したがって、例えば、例示的なビュー最適化部502、例示的なデプス推論部504、例示的な対応関係アトラス構築部506、例示的な対応関係ラベリング部508、例示的な対応関係プルーニング部510、例示的なマスク集約部512、例示的な対応関係パッチパッキング部514例示的なビデオエンコーダ534、例示的なアトラス生成部516、例示的な占有パッキング部524、例示的なビデオエンコーダ536のいずれか、および/または、より一般に、例示的なテクスチャベースMIVエンコーダ500は、1または複数のアナログまたはデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、および/または、フィールドプログラマブルロジックデバイス(FPLD)によって実装され得る。単にソフトウェアおよび/またはファームウェア実装をカバーするように本特許の装置またはシステムクレームのいずれかを読むとき、例示的なビュー最適化部502、例示的なデプス推論部504、例示的な対応関係アトラス構築部506、例示的な対応関係ラベリング部508、例示的な対応関係プルーニング部510、例示的なマスク集約部512、例示的な対応関係パッチパッキング部514、例示的なアトラス生成部516、例示的な占有パッキング部524、例示的なビデオエンコーダ534、および/または、例示的なビデオエンコーダ536の少なくとも1つは、当該ソフトウェアおよび/またはファームウェアを含む、メモリ、デジタル多用途ディスク(DVD)、コンパクトディスクCD、ブルーレイディスクなど、非一時的コンピュータ可読ストレージデバイスまたはストレージディスクを含むように、本明細書において明示的に定義される。なお更に、図5の例示的なテクスチャベースMIVエンコーダ500は、図5に示されるものに加えて、または、その代わりに、1または複数要素、プロセスおよび/またはデバイスを含み得、および/または、示される要素、プロセス、およびデバイスのいずれか1つより多いもの、または、すべてを含み得る。本明細書で使用されるように、「と通信する」という表現は、その変形例を含み、直接通信、および/または、1または複数の中間要素を介する間接通信を包含し、直接的な物理的(例えば、有線)通信および/または常時通信を必要としないが、むしろ、周期的な間隔、スケジュールされた間隔、非周期的な間隔、および/または一度だけのイベントにおける選択的な通信を追加的に含む。
【0114】
テクスチャベースのMIVデコーダ700を実装する例示的な方式が図7に示されているが、図7に示される要素、プロセスおよび/またはデバイスの1または複数は、組み合わされ、分割され、再配置され、省略され、取り除かれ、および/または、任意の他の方式で実装され得る。更に、例示的なビデオデコーダ708、例示的なビデオデコーダ712、例示的な占有アンパッキング部714、例示的なMIVデコーダおよび解析部718、例示的なブロック‐パッチマップデコーダ720、例示的なカル部728、例示的なレンダリング部730、例示的なコントローラ732、例示的なデプス推論部734、例示的な合成部736、例示的なインペイント部738、および/または、より一般に、図7の例示的なテクスチャベースMIVデコーダ700は、ハードウェア、ソフトウェア、ファームウェア、および/または、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせで実装され得る。したがって、例えば、例示的なビデオデコーダ708、例示的なビデオデコーダ712、例示的な占有アンパッキング部714、例示的なMIVデコーダおよび解析部718、例示的なブロック‐パッチマップデコーダ720、例示的なカル部728、例示的なレンダリング部730、例示的なコントローラ732、例示的なデプス推論部734、例示的な合成部736、例示的なインペイント部738、および/または、より一般には、例示的なテクスチャベースMIVデコーダ700のいずれかは、1または複数のアナログまたはデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、k特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、および/または、フィールドプログラマブルロジックデバイス(FPLD)によって実装され得る。単にソフトウェアおよび/またはファームウェア実装をカバーするように本特許の装置またはシステムクレームのいずれかを読むとき、例示的なビデオデコーダ708、例示的なビデオデコーダ712、例示的な占有アンパッキング部714、例示的なMIVデコーダおよび解析部718、例示的なブロック‐パッチマップデコーダ720、例示的なカル部728、例示的なレンダリング部730、例示的なコントローラ732、例示的なデプス推論部734、例示的な合成部736、および/または、例示的なインペイント部738の少なくとも1つは、当該ソフトウェアおよび/またはファームウェアを含む、メモリ、デジタル多用途ディスク(DVD)、コンパクトディスクCD、ブルーレイディスクなど、非一時的コンピュータ可読ストレージデバイスまたはストレージディスクを含むように、本明細書において明示的に定義される。なお更に、図7の例示的なテクスチャベースMIVデコーダ700は、図7に示されるものに加えて、または、その代わりに、1または複数要素、プロセスおよび/またはデバイスを含み得、および/または、示される要素、プロセス、およびデバイスのいずれか1つより多いもの、または、すべてを含み得る。本明細書で使用されるように、「と通信する」という表現は、その変形例を含み、直接通信、および/または、1または複数の中間要素を介する間接通信を包含し、直接的な物理的(例えば、有線)通信および/または常時通信を必要としないが、むしろ、周期的な間隔、スケジュールされた間隔、非周期的な間隔、および/または一度だけのイベントにおける選択的な通信を追加的に含む。
【0115】
図5のテクスチャベースMIVエンコーダ500を実装するための例示的なハードウェアロジック、機械可読命令、ハードウェア実装ステートマシン、および/または、それらの任意の組み合わせを表すフローチャートが図11図14に示される。機械可読命令は、図18に関連して後述する例示的なプロセッサプラットフォーム1800に示されるプロセッサ1812のような、コンピュータプロセッサおよび/またはプロセッサ回路によって実行するための1または複数の実行可能プログラムまたは実行可能プログラムの一部であってもよい。 プログラムは、CD‐ROM、フロッピディスク、ハードドライブ、DVD、ブルーレイディスク、またはプロセッサ1812に関連付けられるメモリなどの非一時的コンピュータ可読記憶媒体に格納されたソフトウェアで具現化され得るが、全体のプログラムおよび/またはその一部は、代替的に、プロセッサ1812以外のデバイスにより実行されることおよび/またはファームウェアもしくは専用ハードウェアで具現化されることが可能である。 更に、例示的なプログラムが、図4に示されるフローチャートを参照して説明されているが、例示的なテクスチャベースMIVエンコーダ500を実装する多くの他の方法が代替的に使用され得る。例えば、ブロックの実行順序が変更され得、および/または説明されたブロックの一部が変更され得、除去され得、または組み合わされ得る。 さらにまたはあるいは、これらのブロックのいずれかまたは全てが、ソフトウェアまたはファームウェアを実行することなく、対応するオペレーションを実行するように構築された、1または複数のハードウェア回路(例えば、ディスクリートおよび/または統合されたアナログおよび/またはデジタル回路、FPGA、ASIC、比較器、演算増幅器(オペアンプ)、論理回路など)によって実装されてもよい。 プロセッサ回路は、異なるネットワーク上の場所および/または1または複数のデバイスに局所的に分散していてもよい(例えば、単一の機械に搭載されたマルチコアプロセッサ、サーバラックに分散した複数のプロセッサなど)。
【0116】
図7のテクスチャベースのMIVデコーダ700を実装するための例示的なハードウェアロジック、機械可読命令、ハードウェア実装ステートマシン、および/または、それらの任意の組み合わせを表すフローチャートが図15に示される。機械可読命令は、図19に関連して後述する例示的なプロセッサプラットフォーム1900に示されるプロセッサ1912のような、コンピュータプロセッサおよび/またはプロセッサ回路によって実行するための1または複数の実行可能プログラムまたは実行可能プログラムの一部であってもよい。 プログラムは、CD‐ROM、フロッピディスク、ハードドライブ、DVD、ブルーレイディスク、またはプロセッサ1912に関連付けられるメモリなどの非一時的コンピュータ可読記憶媒体に格納されたソフトウェアで具現化され得るが、全体のプログラムおよび/またはその一部は、代替的に、プロセッサ1912以外のデバイスにより実行されることおよび/またはファームウェアもしくは専用ハードウェアで具現化されることが可能である。 更に、例示的なプログラムが、図4に示されるフローチャートを参照して説明されているが、例示的なテクスチャベースMIVデコーダ700を実装する多くの他の方法が代替的に使用され得る。例えば、ブロックの実行順序が変更され得、および/または説明されたブロックの一部が変更され得、除去され得、または組み合わされ得る。 さらにまたはあるいは、これらのブロックのいずれかまたは全てが、ソフトウェアまたはファームウェアを実行することなく、対応するオペレーションを実行するように構築された、1または複数のハードウェア回路(例えば、ディスクリートおよび/または統合されたアナログおよび/またはデジタル回路、FPGA、ASIC、比較器、演算増幅器(オペアンプ)、論理回路など)によって実装されてもよい。 プロセッサ回路は、異なるネットワーク上の場所および/または1または複数のデバイスに局所的に分散していてもよい(例えば、単一の機械に搭載されたマルチコアプロセッサ、サーバラックに分散した複数のプロセッサなど)。
【0117】
本明細書に説明された機械可読命令は、圧縮フォーマット、暗号化フォーマット、フラグメンテーションフォーマット、コンパイルフォーマット、実行可能なフォーマット、パッケージフォーマット等のうちの1または複数で格納されてよい。 本明細書に記載されている機械可読命令は、機械実行可能命令を作成、製造、および/または生成するために利用することができるデータまたはデータ構造(例えば、命令の一部、コード、コードの表現など)として格納されてもよい。 例えば、機械可読命令は断片化され、ネットワークまたはネットワークの集合体の同じまたは異なる場所(例えば、クラウド内、エッジデバイス内など)に位置する1または複数のストレージデバイスおよび/またはコンピューティングデバイス(例えば、サーバ)に格納されてもよい。 機械可読命令は、コンピューティングデバイスおよび/または他の機械によって直接的に読み込み、解釈、および/または、実行可能であるように、インストール、修正、適合、更新、組み合わせ、補完、構成、解読、解凍、アンパック、配布、再割り当て、コンパイルなどの1または複数を必要とし得る。例えば、機械可読命令は、別個のコンピューティングデバイス上で個々に圧縮、暗号化および格納された複数の部分に格納され得る。これらの部分は、解読、圧縮解除および結合された場合、本明細書において説明されるもののようなプログラムを共に形成し得る1または複数の機能を実装する実行可能命令のセットを形成する。
【0118】
別の例において、機械可読命令は、プロセッサ回路によって読み取られ得る状態で格納され得るが、特定のコンピューティングデバイスまたは他のデバイス上で命令を実行するために、ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインタフェース(API)などの追加を必要とし得る。別の例において、機械可読命令は、機械可読命令および/または対応するプログラムが全体的にまたは部分的に実行され得る前に構成(例えば、格納された設定、データ入力、記録されたネットワークアドレスなど)される必要があり得る。 このように、本明細書で使用されているように、機械可読媒体は、保存されているとき、或いは静止状態または移動中の機械可読命令および/またはプログラムの特定のフォーマットまたは状態にかかわらず、機械可読命令および/またはプログラムを含むことができる。
【0119】
本明細書に説明された機械可読命令は、任意の過去、現在または将来の命令言語、スクリプト言語、プログラミング言語等により表されてよい。 例えば、機械可読命令は、以下の言語、すなわち、C言語、C++、Java(登録商標)、C#、Perl、Python、JavaScript(登録商標)、ハイパーテキストマークアップ言語(HTML)、構造化照会言語(SQL)、Swiftなどのいずれかを使用して表され得る。
【0120】
上記のように、図11図15の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、リードオンリメモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、および/または、任意の他のストレージデバイス、または、任意の期間(例えば、長期間、永久的な時間、短い瞬間、一時的バッファリング、および/または、情報のキャッシュ)にわたって情報が格納されるストレージディスクなど、非一時的コンピュータおよび/または機械可読媒体に格納された実行可能命令(例えば、コンピュータおよび/または機械可読命令)を使用して実装され得る。本明細書に使用される場合、非一時的コンピュータ可読媒体という用語は、任意の種類のコンピュータ可読ストレージデバイスおよび/またはストレージディスクを含み、伝搬する信号を排除し、送信媒体を排除するように明示的に定義される。
【0121】
「含む(including)」および「含む(comprising)」(およびこれらのすべての形態および時制)は、本明細書ではオープンエンドの用語として用いられている。 したがって、請求項が、プリアンブルとして、または、任意の種類の請求項の記載において、任意の形態の「含む」または「備える」(例えば、備える、含む、備え、含み、有し、など)を利用するときは常に、対応する請求項または記載の範囲を逸脱することなく、追加の要素、用語などが存在し得ることを理解されたい。本明細書において使用される場合、「少なくとも」という語句が、例えば請求項のプリアンブルにおける移行句として使用されるとき、「備える」および「含む」という用語がオープンエンドであるのと同じ方式でオープンエンドである。「and/or(および/または)」という用語は、例えば、A、B、および/またはCなどの形で用いられると、A、B、Cの任意の組み合わせまたはこれらのサブセット、例えば、(1)Aだけ、(2)Bだけ、(3)Cだけ、(4)AとB、(5)AとC、(6)BとC、および(7)AとBとCなどを意味する。 構造、要素、項目、オブジェクトおよび/または物を説明する文脈において本明細書で使用されるように、「AおよびBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのBのいずれかを含む実装例を指すことを意図している。 同様に、構造、要素、項目、オブジェクトおよび/または物を説明する文脈において本明細書で使用されるように、「AまたはBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのBのいずれかを含む実装例を指すことを意図している。 処理、命令、動作、活動および/または段階の実行または実施を説明する文脈において本明細書で使用されるように、「AおよびBのうちの少なくとも1つ」という表現は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのBのいずれかを含む実装例を指すことを意図している。 同様に、本明細書で「AまたはBのうちの少なくとも1つ(at least one of A or B)」という文言がプロセス、命令、アクション、アクティビティおよび/またはステップの実施または実行を説明する文脈で用いられる場合、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのBのうちの任意のものを含む実装を指す意図である。
【0122】
本明細書で用いられる、単一の言及(例えば、「1つの(a)」、「1つの(an)」、「第1(first)」、第2(second)」等)は、複数を除外しない。 本明細書で用いられる「1つの(a)」または「1つの(an)」エンティティという用語は、そのエンティティの1または複数を指す。 本明細書において「1つの(a)」(または「1つの(an)」、「1または複数(one or more)」および「少なくとも1つ(at least one)」という用語は交換可能に用いられてよい。 さらに、複数の手段、要素、または方法のアクションは、個別に列挙されていても、例えば、単一のユニットまたはプロセッサによって実装され得る。追加的に、個別の機能が異なる例または請求項に含まれ得るが、これらは場合によっては組み合わされ得、異なる例または請求項に含まれることは、機能の組み合わせが実行可能でない、および/または、有利でないことを示唆するものではない。
【0123】
図11は、図5のテクスチャベースMIVエンコーダ500を実装するために実行され得る機械可読命令を表すフローチャートである。図11のプログラム1100は、例示的なビュー最適化部502(図5)がシーンのビデオデータを受信するブロック1102で実行を開始する。例えば、ビュー最適化部502は、テクスチャマップを含む入力ビュー(例えば、図5のソースビュー501)を受信する。ブロック1104において、例示的な対応関係ラベリング部508(図5)は、利用可能な入力ビューの対応する画素を識別、合成、およびラベリングする。例えば、対応関係ラベリング部508は、すべてのビュー(例えば、基本および/または追加ビュー)にわたる対応する画素を識別し、テクスチャコンテンツに基づいてそれらをラベリングする。下で更に詳細に説明されるように、図12の例示的なフローチャート1104は、利用可能な入力ビューの対応する画素を識別、合成、およびラベリングするために実装され得る、例示的な機械可読命令を表す。
【0124】
ブロック1106において、例示的な対応関係プルーニング部510(図5)は、基本ビューおよび追加ビューに対して対応関係プルーニングを実行する。例えば、対応関係プルーニング部510は、対応関係ラベリング部508からのラベリングされた画素に基づいて、基本ビューおよび追加ビューをプルーニングする。下で更に詳細に説明されるように、図13の例示的なフローチャート1106は、基本ビューおよび追加ビューに対して対応関係プルーニングを実行するために実装され得る例示的な機械可読命令を表す。ブロック1108において、例示的な対応関係プルーニング部510は、対応関係プルーニングマスクを判定する。例えば、対応関係プルーニング部510は、ビューにおける画素が維持されるか(例えば、プルーニングマスク画素が「1」に設定される)、または、除去されるか(例えば、プルーニングマスク画素が「0」に設定される)を示すバイナリプルーニングマスク(ビューあたり1)を出力する。
【0125】
ブロック1110において、例示的な対応関係パッチパッキング部514(図5)は、対応関係パッチを生成する。例えば、対応関係パッチパッキング部514は、対応関係パッチを識別するパッチ識別情報(patch_id)を含むそれぞれのパッチワイズ対応関係リストでタグ付けできるパッチを抽出する。下で更に詳細に説明されるように、図14の例示的なフローチャート1110は、対応関係パッチを生成するために実装され得る例示的な機械可読命令を表す。ブロック1112において、例示的なアトラス生成部516(図5)はアトラスを生成する。例えば、アトラス生成部516は、対応関係パッチパッキング部514からのテクスチャパッチを、テクスチャのみのアトラスに書き込む(テクスチャベースMIVエンコーダ500におけるアトラスについてデプス成分が存在しないため)。
【0126】
ブロック1114において、例示的なテクスチャベースMIVエンコーダ500は、符号化されたビットストリームを生成する。例えば、ビデオエンコーダ534およびビデオエンコーダ536は、占有ビデオデータ528(図5)および属性(テクスチャ)ビデオデータ530(図5)からの符号化されたアトラスをそれぞれ生成する。ビデオエンコーダ534は、例示的な占有ビデオデータ528を受信し、占有マップを例示的なHEVCビットストリーム538(図5)に符号化する。ビデオエンコーダ536は、例示的な属性(テクスチャ)ビデオデータ530(アトラスを含む)を受信し、テクスチャ成分を例示的なHEVCビットストリーム540(図5)に符号化する。例示的なHEVCビットストリーム538は、復号された占有ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序、占有マップなどを含む。例示的なHEVCビットストリーム540は、属性(テクスチャ)ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序などを含む。いくつかの例において、MIVデータビットストリーム532は、符号化ビデオデータ(例えば、HEVCビットストリーム538およびHEVCビットストリーム540)がビュー/アトラスにおいてジオメトリ(デプス)情報を含まないことを識別するためのフラグ(またはビット)を含む。本明細書において開示される例において、占有ビデオデータ528および属性(テクスチャ)ビデオデータ530におけるパッキングされた占有マップは、ビデオコーディングされ、MIVデータビットストリーム532に含まれるメタデータと共に多重化され、これは、デコーダ(例えば、図7の例示的なテクスチャベースMIVデコーダ700)、および/または、ストレージ、ならびに、復号およびユーザへの提示のために任意の数のデコーダへの最終的な送信のためのメモリデバイスへ送信され得る。ブロック1114の後、プログラム1100が終了する。
【0127】
図12は、図5のテクスチャベースMIVエンコーダ500に含まれる例示的な対応関係ラベリング部508(図5)を実装するために実行され得る機械可読命令を表すフローチャートである。図12のプログラム1104は、例示的な対応関係ラベリング部508が第1の利用可能な入力ビューから第1の画素を選択するブロック1202で実行を開始する。ブロック1204において、例示的な対応関係ラベリング部508は、第2の利用可能な入力ビューから第2の画素を選択する。例えば、対応関係ラベリング部508は、第1の画素および第2の画素(第1の利用可能なビューからの第1の画素および第2の利用可能なビューからの第2の画素)を任意の利用可能な入力ビュー(例えば基本および/または追加ビュー)から選択し、利用可能な場合、テクスチャコンテンツおよびデプス情報に基づいてそれらをラベリングする。
【0128】
ブロック1206において、例示的な対応関係ラベリング部508は、3次元世界に対する第1の画素の投影解除を判定する。ブロック1208において、例示的な対応関係ラベリング部508は、第2の利用可能な入力ビューに対する第1の画素の再投影を判定する。ブロック1210において、例示的な対応関係ラベリング部508は、第1の画素が第2の画素と同一の場所にあるかどうかを判定する。第1の画素が第2の画素と同一の場所にあると例示的な対応関係ラベリング部508が判定した場合、ブロック1212において、例示的な対応関係ラベリング部508は、第1の画素および第2の画素を対応する画素としてラベリングする。本明細書において開示される例において、3次元世界に対する、第1の利用可能な入力ビューからの第1の画素の投影解除、および、第2の利用可能な入力ビューに対する、第1の画素のその後の再投影によって、第1の画素が第2の利用可能な入力ビューからの第2の画素と同一の場所に配置される場合、第1の画素および第2の画素は、対応する画素とみなされる。ブロック1210に戻ると、第1の画素が第2の画素と同一の場所にないと例示的な対応関係ラベリング部508が判定する場合、ブロック1214において、例示的な対応関係ラベリング部508は、第1の画素および第2の画素を固有画素としてラベリングする。任意の利用可能な入力ビューからの画素が他の利用可能な入力ビューにおける対応する画素を有しない場合、対応関係ラベリング部508は、画素を「固有」としてラベリングする。例えば、端末カメラの端の領域、または、特定のビューのみによって可視である閉塞領域に位置する画素は、典型的には、「固有」の画素としてラベリングされる。
【0129】
ブロック1216において、例示的な対応関係ラベリング部508は、追加の画素があるかどうかを判定する。追加の画素があると例示的な対応関係ラベリング部508が判定した場合、プログラム1104は、例示的な対応関係ラベリング部508が第1の利用可能な入力ビューから異なる画素を選択するブロック1202に戻る。ブロック1216に戻ると、追加の画素が無いと例示的な対応関係ラベリング部508が判定した場合、ブロック1218において、例示的な対応関係ラベリング部508は、追加の利用可能な入力ビューがあるかどうかを判定する。追加の利用可能な入力ビューがあると例示的な対応関係ラベリング部508が判定した場合、プログラム1104は、例示的な対応関係ラベリング部508が異なる利用可能な入力ビューから第1の画素を選択するブロック1202に戻る。ブロック1218に戻ると、追加の利用可能な入力ビューが無いと例示的な対応関係ラベリング部508が判定した場合、ブロック1212において、例示的な対応関係ラベリング部508は、すべての利用可能な入力ビューから対応する画素を選択する。
【0130】
ブロック1222において、例示的な対応関係ラベリング部508は、2つの対応する画素間でテクスチャコンテンツを比較する。例えば、対応する画素の各々について、対応関係ラベリング部508は、対応する画素が同様のテクスチャコンテンツを有するかどうかを判定する。ブロック1224において、例示的な対応関係ラベリング部508は、テクスチャコンテンツにおける差分が閾値を満たすかどうかを判定する。例えば、対応関係ラベリング部508は、2つの対応する画素間でテクスチャコンテンツを比較し、テクスチャコンテンツにおける差分を閾値と比較する。いくつかの例において、閾値は、色成分(例えば、赤・緑・青(RGB)成分)における差分であり得る。例えば、閾値は、色成分の任意の1つの間の5(またはいくつかの他の値)の差分であり得る。テクスチャコンテンツにおける差分が閾値を満たさないと例示的な対応関係ラベリング部508が判定した場合、ブロック1226において、例示的な対応関係ラベリング部508は、対応する画素を同様のものとしてラベリングする。対応関係ラベリング部508は、テクスチャコンテンツにおける差分が閾値より下であるとき、対応する画素が同様のテクスチャコンテンツを有すると判定する。対応関係ラベリング部508は、対応する画素を「同様のテクスチャ」としてラベリングし、対応する画素の座標(例えばx、y)位置と共に対応する画素を含むソースビューのビューIDを対応関係リストに格納する。
【0131】
ブロック1224に戻ると、テクスチャコンテンツにおける差分が閾値を満たさないと例示的な対応関係ラベリング部508が判定した場合、ブロック1228において、例示的な対応関係ラベリング部508は、対応する画素を異なるものとしてラベリングする。テクスチャコンテンツにおける差分が閾値より上であるとき、対応関係ラベリング部508は、2つの対応する画素が異なるテクスチャコンテンツを有すると判定する。いくつかの例において、対応する画素は、異なる反射情報、異なる照明/光情報、異なるカメラセッティングに起因する色の不整合などに基づいて、異なるテクスチャコンテンツを有すると判定され得る。対応関係ラベリング部508は、対応する画素を「異なるテクスチャ」としてラベリングし、対応する画素の座標(例えば、x、y)位置と共に対応する画素を含むソースビューのビューIDを対応関係リストに格納する。
【0132】
ブロック1230において、例示的な対応関係ラベリング部508は、追加の対応する画素があるかどうかを判定する。追加の対応する画素があると例示的な対応関係ラベリング部508が判定した場合、プログラム1104は、例示的な対応関係ラベリング部508が2つの異なる対応する画素間でテクスチャコンテンツを比較するブロック1220に戻る。ブロック1230に戻ると、例示的な対応関係ラベリング部508が、追加の対応する画素が無いと判定した場合、プログラム1104が完了し、図11のプログラム1100に戻る。
【0133】
図13は、図5のテクスチャベースMIVエンコーダ500に含まれる例示的な対応関係プルーニング部510(図5)を実装するために実行され得る機械可読命令を表すフローチャートである。図13のプログラム1106は、例示的な対応関係プルーニング部510がすべての画素を基本ビューのプルーニングマスクのものに設定するブロック1302で、実行を開始する。対応関係プルーニング部510は、予め判定される、構成可能である、などである、所与の基準(例えば、ビュー間の重複する情報、キャプチャカメラ間の距離など)に従って、プルーニング順序を判定する。本明細書において開示される例において、基本ビューは、プルーニング中に最初に順序付けられる。例えば、基本ビュー(例えば、1または複数の基準に基づいて選択される)の第1のものは、プルーニングされない状態で維持され、ソースビュー501(図5)に含まれる任意の他の基本ビューおよび追加ビューはプルーニングされ得る。
【0134】
ブロック1304において、例示的な対応関係プルーニング部510は追加ビューを選択する。例えば、対応関係プルーニング部510は、ソースビュー501から追加ビューを選択する。ブロック1306において、例示的な対応関係プルーニング部510は、固有としてラベリングされたビュー画素に対応する画素マスクの画素を1に設定する(例えば、画素がプルーニングされないことを示す)。ブロック1308において、例示的な対応関係プルーニング部510は、対応する、および、異なるものとしてラベリングされたビュー画素に対応する画素マスクの画素を1に設定する(例えば、画素がプルーニングされないことを示す)。対応関係プルーニング部510は、他のビューの各々について対応関係ラベリング部508によって「固有」および「対応する異なるテクスチャ」としてラベリングされた画素を識別し、値1を有するビューについての対応するプルーニングマスクにおける画素を設定する。いくつかの例において、対応関係プルーニング部510は、「対応する異なるテクスチャ」画素についての重み付け方式を設定することを選択でき、それにより、大きく重複するビューに属するものがプルーニングされ、互いから遠いビューが維持される。例えば、ビューのソース(例えばカメラ)間の距離が閾値(例えば、10フィート離れている、20フィート離れているなど)を満たすとき、ビューは、互いから遠いとみなされ得る。
【0135】
ブロック1310において、例示的な対応関係プルーニング部510は、対応する、および、同様のものとしてラベリングされた現在のプルーニング済みビューにおける画素が2つの以前にプルーニングされたビューに含まれるかどうかを判定する。対応関係プルーニング部510は、他のビューにおいて対応関係リストを検索し、他のビューの各々について対応関係ラベリング部508によって「対応する同様のテクスチャ」としてラベリングされた画素を識別する。対応する、および、同様のものとしてラベリングされた現在のプルーニング済みビューにおける画素が2つの以前にプルーニングされたビューに含まれる(例えば、2つの以前にプルーニングされたビューにおける画素が1に設定される)かどうかを例示的な対応関係プルーニング部510が判定した場合、ブロック1312において、例示的な対応関係プルーニング部510は、対応する、および、同様のものとしてラベリングされた画素を0に設定する(例えば、画素がプルーニングされることを示す)。いくつかの例において、対応関係リストに含まれる画素の少なくとも2つが以前にプルーニングされたビューに属する場合、対応関係プルーニング部510は、関連付けられたプルーニングマスクにおける画素を0に維持する。ブロック1310に戻ると、対応する、および、同様のものとしてラベリングされた現在のプルーニング済みビューにおける画素が2つの以前にプルーニングされたビューに含まれない(例えば、2つの以前にプルーニングされたビューの少なくとも1つが、画素を含まない、または、2つの以前にプルーニングされたビューの少なくとも1つにおける画素が0に設定される)と例示的な対応関係プルーニング部510が判定した場合、ブロック1314において、例示的な対応関係プルーニング部510は、対応する、および、同様のものとしてラベリングされた画素を1に設定する(例えば、画素がプルーニングされないことを示す)。いくつかの例において、「対応する、同様のテクスチャ」としてラベリングされた少なくとも2つの画素が選択され、デプス情報を推論するために例示的なデコーダによって使用される関連付けられたプルーニングマスクにおいて1に設定される。
【0136】
ブロック1316において、例示的な対応関係プルーニング部510は、現在のプルーニング済みビューにおいて、対応する、および同様のものとしてラベリングされた追加の画素があるかどうかを判定する。現在のプルーニング済みビューにおいて、対応する、および、同様のものとしてラベリングされた追加の画素があると例示的な対応関係プルーニング部510が判定した場合、プログラム1106は、対応する、および、同様のものとしてラベリングされた現在のプルーニング済みビューにおける画素が2つの以前にプルーニングされたビューに含まれるかどうかを例示的な対応関係プルーニング部510が判定するブロック1310に戻る。ブロック1316に戻ると、現在のプルーニング済みビューにおいて、対応する、および、同様のものとしてラベリングされた追加の画素が無いと例示的な対応関係プルーニング部510が判定した場合、ブロック1318において、例示的な対応関係プルーニング部510は、追加ビューがあるかどうかを判定する。追加ビューがあると例示的な対応関係プルーニング部510が判定した場合、プログラム1106は、対応する、および、同様のものとしてラベリングされた現在のプルーニング済みビューにおける画素が2つの以前にプルーニングされたビューに含まれるかどうかを例示的な対応関係プルーニング部510が判定するブロック1310に戻る。ブロック1318に戻ると、追加ビューが無いと例示的な対応関係プルーニング部510が判定した場合、プログラム1106が完了し、図11のプログラム1100に戻る。
【0137】
図14は、図5のテクスチャベースMIVエンコーダ500に含まれる例示的な対応関係パッチパッキング部514(図5)を実装するために実行され得る機械可読命令を表すフローチャートである。図14のプログラム1110は、例示的な対応関係パッチパッキング部514が例示的な対応関係プルーニング部510(図5)からプルーニング済み対応関係マスクを取得するブロック1402で実行を開始する。
【0138】
ブロック1404において、例示的な対応関係パッチパッキング部514は、プルーニング済み対応関係マスクにおける隣接画素を比較する。例えば、対応関係パッチパッキング部514は、プルーニング済み対応関係マスクにおける隣接画素のラベリングを比較する。ブロック1406において、例示的な対応関係パッチパッキング部514は、隣接画素が固有としてラベリングされるかどうかを判定する。例えば、対応関係パッチパッキング部514は、対応関係を有しない所与の集約されたプルーニング済みマスクにおいて隣接画素を識別する(例えば、隣接画素は両方とも、プルーニング済み対応関係マスクにおいて「固有」としてラベリングされる)。隣接画素が固有としてラベリングされていると例示的な対応関係パッチパッキング部514が判定した場合、ブロック1408において、例示的な対応関係パッチパッキング部514は、対応関係リストを有しない1つのパッチに隣接画素をグループ化する。例えば、対応関係パッチパッキング部514は、対応関係を有しない所与の集約されたプルーニング済み対応関係マスク(例えば、隣接画素は両方とも「固有」としてラベリングされる)における隣接画素を1つのパッチにグループ化し、パッチは、空のパッチワイズ対応関係リストに関連付けられる。
【0139】
ブロック1406に戻ると、隣接画素が固有としてラベリングされていないと例示的な対応関係パッチパッキング部514が判定した場合、ブロック1410において、例示的な対応関係パッチパッキング部514は、隣接画素が対応するもの(同様、または、異なるもののいずれか)としてラベリングされているかどうかを判定する。例えば、対応関係パッチパッキング部514は、「対応する同様のテクスチャ」または「対応する異なるテクスチャ」としてラベリングされている所与の集約されたプルーニング済みマスクにおける隣接画素を識別する。隣接画素が対応するもの(同様、または異なるもののいずれか)としてラベリングされていると例示的な対応関係パッチパッキング部514が判定した場合、ブロック1412において、例示的な対応関係パッチパッキング部514は、隣接画素を第2のパッチにグループ化する。ブロック1410に戻ると、隣接画素が対応するもの(同様、または異なる)としてラベリングされていないと例示的な対応関係パッチパッキング部514が判定した場合、ブロック1416において、例示的な対応関係パッチパッキング部514は、プルーニング済み対応関係マスクにおいて追加の画素があるかどうかを判定する。
【0140】
ブロック1414において、例示的な対応関係パッチパッキング部514は、対応関係パッチを識別する対応関係リストを用いて第2のパッチをタグ付けする。例えば、対応関係パッチパッキング部514は、対応関係パッチのpatch_idを示すパッチワイズ対応関係リストを用いて、所与の集約されたプルーニング済み対応関係マスクにおける第2のパッチをタグ付けする。対応関係パッチパッキング部514はまた、すべての他の集約されたプルーニング済み対応関係マスクにおける関連付けられた画素を、ビューごとに1つのパッチ(例えば、第2のパッチ)にグループ化し、その結果、複数の対応関係パッチが生じる。
【0141】
ブロック1416において、例示的な対応関係パッチパッキング部514は、プルーニング済み対応関係マスクにおいて追加の画素があるかどうかを判定する。プルーニング済み対応関係マスクに追加の画素があると例示的な対応関係パッチパッキング部514が判定した場合、プログラム1110は、例示的な対応関係パッチパッキング部514がプルーニング済み対応関係マスクにおける異なる隣接画素を比較するブロック1404に戻る。ブロック1416に戻ると、例示的な対応関係パッチパッキング部514が、プルーニング済み対応関係マスクに追加の画素が無いと判定した場合、プログラム1110は完了し、図11のプログラム1100に戻る。
【0142】
図15は、図7のテクスチャベースのMIVデコーダ700を実装するために実行され得る機械可読命令を表すフローチャートである。図15のプログラム1500は、例示的なテクスチャベースMIVデコーダ700(図7)が符号化データを受信するブロック1502で実行を開始する。例えば、テクスチャベースのMIVデコーダ700は、例示的なテクスチャベースMIVエンコーダ500(図5)によって生成された例示的なHEVCビットストリーム540、例示的なHEVCビットストリーム538、例示的なMIVデータビットストリーム532を受信する。ブロック1504において、例示的なテクスチャベースMIVデコーダ700は、符号化データを逆多重化および復号する。例えば、ビデオデコーダ708(図7)およびビデオデコーダ712(図7)は、符号化アトラスを復号して、テクスチャおよび占有データを含む復号アトラスを生成する。いくつかの例において、HEVCビットストリーム540は、属性(テクスチャ)ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序などを含む。ビデオデコーダ708は、復号されたテクスチャアトラス(例えば、復号済みテクスチャピクチャ710)のシーケンスを生成する。いくつかの例において、HEVCビットストリーム538は、復号された占有ビデオデータに関するパッチパラメータを含む。そのようなパラメータの例は、ビューとアトラスとの間のパッチのマップ、ブロック‐パッチマップを後に取得するために利用される重複したパッチを公開するためのパッキング順序、占有マップなどを含む。ビデオデコーダ712は、占有アトラスを復号する。
【0143】
ブロック1506において、例示的なMIVデコーダおよび解析部718はパラメータリストを判定する。例えば、MIVデコーダおよび解析部718(図7)はMIVデータビットストリーム532を受信する。例示的なMIVデコーダおよび解析部718はMIVデータビットストリーム532を解析して、例示的なアトラスデータ722(図7)および例示的なビデオベース点群圧縮(V-PCC)および視点パラメータセット724(図7)を生成する。例えば、MIVデコーダおよび解析部718は、例示的なパッチリスト、カメラパラメータリストなどのために、符号化MIVデータビットストリーム532を解析する。ブロック1508において、例示的占有アンパッキング部714(図7)は、アトラスパッチ占有マップをアンパックする。例えば、占有アンパッキング部714は、パッキングプロセスを反転して、復号済みテクスチャピクチャ710(図7)のテクスチャアトラスと同一サイズの占有マップ716(図7)を取得する。
【0144】
ブロック1510において、例示的なMIVデコーダおよび解析部718は、デプス情報が符号化ビットストリームに含まれるかどうかを判定する。例えば、MIVデコーダおよび解析部718は、アトラスデータ722(図7)が、デプス情報が符号化ビットストリーム(例えば、HEVCビットストリーム540、HEVCビットストリーム538、およびMIVデータビットストリーム532)に含まれるかどうかを示すインジケータ(例えば、フラグ、ビットなど)を含むかどうかを判定する。例示的なMIVデコーダおよび解析部718が、含まれるデプス情報があると判定した場合、ブロック1514において、例示的なレンダリング部730はビューを合成する。例えば、合成部736(図7)は、アトラス(テクスチャおよびデプス)、占有マップおよび/またはパラメータに基づいてシーンを合成する。ブロック1514の後に、プログラム1500が終了する。
【0145】
ブロック1510に戻ると、例示的なMIVデコーダおよび解析部718が、含まれるデプス情報が無いと判定した場合、ブロック1512において、例示的なレンダリング部730は、対応関係パッチからのデプス情報を判定する。例えば、デプス推論部734は、テクスチャアトラスの対応関係パッチを使用してデプス情報を推論する。ブロック1512の後、プログラム1500は、例示的なレンダリング部730がビューを合成するブロック1514に続く。例えば、合成部736は、テクスチャアトラス、占有マップ、推論デプス情報、および/またはパラメータに基づいてシーンを合成する。ブロック1514の後に、プログラム1500が終了する。
【0146】
図16図17は、説明された技法を実装するための例示的なシステムおよびデバイス、エンコーダ(例えば、図1のMIVエンコーダ100、図5のテクスチャベースMIVエンコーダ500など)、および、デコーダ(例えば、図3のMIVデコーダ300、図7のテクスチャベースのMIVデコーダ700)を示す。例えば、本明細書において説明される任意のエンコーダ(エンコーダシステム)、デコーダ(デコーダシステム)またはビットストリームエクストラクタは、図16に示されるシステムおよび/または図17において実装されるデバイスを介して実装され得る。いくつかの例において、説明された技法では、エンコーダ(例えば、図1のMIVエンコーダ100、図5のテクスチャベースMIVエンコーダ500など)、および、デコーダ(例えば、図3のMIVデコーダ300、図7のテクスチャベースのMIVデコーダ700)は、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、ファブレット、スマートフォン、デジタルカメラ、ゲーミングコンソール、ウェアラブルデバイス、ディスプレイデバイス、オールインワンデバイス、ツーインワンデバイス、または同様ものなど、本明細書において説明された任意の好適なデバイスまたはプラットフォームを介して実装され得る。
【0147】
本明細書において説明するシステムの様々なコンポーネントは、ソフトウェア、ファームウェアおよび/またはハードウェアおよび/またはそれらの任意の組み合わせに実装されてよい。 例えば、本明細書において説明されるデバイスまたはシステムの様々なコンポーネントは、少なくとも部分的に、例えば、スマートフォンなどのコンピューティングシステムにおいて見られ得るものなどのコンピューティングシステムオンチップ(SoC)のハードウェアによって提供され得る。当業者であれば、本明細書に説明されるシステムは、対応する図において示されなかった追加のコンポーネントを含み得ることを理解し得る。例えば、本明細書において説明されたシステムは、明確にするために示されなかった追加のコンポーネントを含み得る。
【0148】
本明細書において論じる例示的なプロセスの実装が、図示された順序で示される全てのオペレーションの実行を含み得るが、本開示はこの点で限定されず、様々な例において、本明細書における例示的なプロセスの実装は、示されるオペレーションのサブセット、図示されたものとは異なる順序で実行されるオペレーションまたは追加のオペレーションのみを含み得る。
【0149】
加えて、本明細書において論じるオペレーションのうちのいずれか1または複数は、1または複数のコンピュータプログラム製品により提供される命令に応答して行われ得る。 そのようなプログラム製品は、例えばプロセッサによって実行されたときに本明細書において説明される機能を提供し得る命令を提供する信号伝達メディアを含み得る。コンピュータプログラム製品は、1または複数の機械可読媒体のいずれかの形態において提供され得る。したがって、例えば、1または複数のグラフィックス処理ユニットまたはプロセッサコアを含むプロセッサは、1または複数の機械可読媒体によってプロセッサへ伝送されるプログラムコードおよび/または命令または命令セットに応答して、本明細書における例示的なプロセスのブロックの1または複数を実行し得る。概して、機械可読媒体は、本明細書において説明されるデバイスおよび/またはシステムのいずれかに、デバイスまたはシステムの少なくとも一部、または、本明細書において説明された任意の他のモジュールまたはコンポーネントを実装させ得るプログラムコードおよび/または命令または命令セットの形態でソフトウェアを伝送し得る。
【0150】
本明細書において使用される場合、「モジュール」という用語は、ソフトウェアロジック、ファームウェアロジック、ハードウェアロジック、および/または、本明細書において説明される機能を提供するよう構成される回路の任意の組み合わせを指す。ソフトウェアは、ソフトウェアパッケージ、コード、および/または命令セットまたは命令として具現化され得、本明細書において使用される場合、「ハードウェア」は、例えば、単一、または、任意の組み合わせである、ハードワイヤード回路、プログラマブル回路、ステートマシン回路構成、固定機能回路、実行ユニット回路、および/または、プログラマブル回路によって実行される命令を格納するファームウェアを含み得る。モジュールは、集合的に、または個別に、例えば、集積回路(IC)、システムオンチップ(SoC)など、より大きいシステムの部分を形成する回路として具現化され得る。
【0151】
図16は、本開示の少なくともいくつかの実装に従って構成された例示的なシステム1600の例示的な図である。 いくつかの例において、システム1600は、モバイルデバイスシステムであり得るが、システム1600はこの文脈に限定されない。例えば、システム1600は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラ電話、セルラ電話/PDAの組み合わせ、テレビ、スマートデバイス(スマートフォン、スマートタブレット、またはスマートテレビ等)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、カメラ(例えば、全自動カメラ、スーパーズームカメラ、デジタル一眼レフ(DSLR)カメラ)、監視カメラ、カメラを含む監視システムなどへ組み込まれてよい。
【0152】
いくつかの例において、システム1600は、ディスプレイ1620に結合されたプラットフォーム1602を含む。プラットフォーム1602は、コンテンツサービスデバイス1630またはコンテンツ配信デバイス1640などのコンテンツデバイス、または、画像センサ1619などの他のコンテンツソースから、コンテンツを受信してよい。 例えば、プラットフォーム1602は、画像センサ1619または任意の他のコンテンツソースから、本明細書において説明される画像データを受信し得る。1または複数のナビゲーション機能を備えるナビゲーションコントローラ1650を用いて、例えば、プラットフォーム1602および/またはディスプレイ1620と対話することができる。これらの要素の各々が、以下でより詳細に記載される。
【0153】
いくつかの例において、プラットフォーム1602は、チップセット1605、プロセッサ1610、メモリ1612、アンテナ1613、ストレージ1614、グラフィックスサブシステム1615、アプリケーション1616、画像信号プロセッサ1617、および/または無線部1618の任意の組み合わせを含み得る。チップセット1605は、プロセッサ1610、メモリ1612、ストレージ1614、グラフィックスサブシステム1615、アプリケーション1616、画像信号プロセッサ1617、および/または無線部1618との間での相互通信を提供してよい。 例えば、チップセット1605は、ストレージ1614との相互通信を提供することができるストレージアダプタ(図示せず)を含み得る。
【0154】
プロセッサ1610は、複合命令セットコンピュータ(CISC)プロセッサもしくは縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セットに互換性のある複数のプロセッサ、マルチコアもしくは任意の他のマイクロプロセッサ、または中央処理装置(CPU)として実装され得る。 いくつかの例において、プロセッサ1610は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサなどであり得る。
【0155】
メモリ1612は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)またはスタティックRAM(SRAM)のような揮発性メモリデバイスとして実装されてよいが、これらに限定されない。
【0156】
ストレージ1614は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、取付型ストレージデバイス、フラッシュメモリ、バッテリーバックアップ型SDRAM(同期DRAM)および/またはネットワークアクセス可能なストレージデバイスのような不揮発性ストレージデバイスとして実装されてよいが、これらに限定されない。 いくつかの例において、ストレージ1614は、例えば、複数のハードドライブが含まれる場合、有価値のデジタル媒体へのストレージ性能増強保護を増大させる技術を備えることができる。
【0157】
画像信号プロセッサ1617は、画像処理に使用される専用デジタル信号プロセッサまたは同様のものとして実装され得る。いくつかの例において、画像信号プロセッサ1617は、単一命令複数データまたは複数命令複数データアーキテクチャまたは同様のものに基づいて実装され得る。いくつかの例において、画像信号プロセッサ1617は、メディアプロセッサとして特徴付けられ得る。本明細書において説明されるように、画像信号プロセッサ1617は、システムオンチップアーキテクチャに基づいて、および/または、マルチコアアーキテクチャに基づいて実装され得る。
【0158】
グラフィックスサブシステム1615は、表示のために静止画像または動画のような複数の画像の処理を実行し得る。 グラフィックスサブシステム1615は、例えば、グラフィックス処理ユニット(GPU)またはビジュアルプロセッシングユニット(VPU)であってもよい。 アナログまたはデジタルインタフェースは、グラフィックスサブシステム1615およびディスプレイ1620を通信可能に結合するように用いられてもよい。 例えば、このインタフェースは、高精細度マルチメディアインタフェース、ディスプレイポート、ワイヤレスHDMI(登録商標)、および/または、ワイヤレスHD準拠技法のいずれであってもよい。 グラフィックスサブシステム1615は、プロセッサ1610またはチップセット1605に統合することができる。いくつかの実装において、グラフィックスサブシステム1615は、チップセット1605に通信可能に結合されたスタンドアロンデバイスであり得る。
【0159】
本明細書に説明されるグラフィックスおよび/または動画処理技法は、様々なハードウェアアーキテクチャで実装され得る。 例えば、グラフィックスおよび/または動画機能は、チップセット内に統合され得る。 あるいは、別個のグラフィックスおよび/またはビデオプロセッサが用いられてもよい。 更に別の実装において、グラフィックスおよび/またはビデオ機能は、マルチコアプロセッサを含む汎用プロセッサによって提供され得る。更なる実施形態では、これらの機能は消費者電子デバイスにおいて実装することができる。
【0160】
無線部1618は、様々な好適な無線通信技法を用いて信号を送信および受信することが可能な1または複数の無線部を含んでよい。 そのような複数の技法は、1または複数の無線ネットワークにわたる複数の通信を含み得る。 例示的な無線ネットワークは、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンエリアネットワーク(WMAN)、セルラネットワーク、および衛星ネットワークを含む(が、これらに限定されない)。そのような複数のネットワークにわたって通信する場合に、無線部1618は、任意のバージョンの1または複数の適用可能規格に準拠して動作し得る。
【0161】
いくつかの例において、ディスプレイ1620は、任意のテレビ型モニタまたはディスプレイを含み得る。ディスプレイ1620は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ様デバイス、および/またはテレビを含むことができる。ディスプレイ1620は、デジタルおよび/またはアナログであってもよい。 いくつかの例において、ディスプレイ1620は、ホログラフィックディスプレイであってよい。 また、ディスプレイ1620は、視覚投影を受信し得る透明面であってもよい。 そのような複数の投影は、様々な形態の情報、画像、および/またはオブジェクトを伝え得る。 例えば、そのような複数の投影は、モバイル拡張現実(MAR)アプリケーションのための視覚オーバーレイであってもよい。 1または複数のソフトウェアアプリケーション1616の制御下で、プラットフォーム1602は、ユーザインタフェース1622をディスプレイ1620上に表示し得る。
【0162】
いくつかの例において、コンテンツサービスデバイス(複数の場合もある)1630は、任意の国内サービス、国際サービス、および/または独立サービスによってホストすることができ、したがって、例えば、インターネットを介してプラットフォーム1602にアクセス可能である。コンテンツサービスデバイス1630は、プラットフォーム1602および/またはディスプレイ1620に結合され得る。 プラットフォーム1602および/またはコンテンツサービスデバイス1630は、ネットワーク1660 に、およびネットワーク1660からメディア情報を通信する(例えば送信し、および/または受信する)べくネットワーク1660に結合され得る。 コンテンツ配信デバイス1640は、プラットフォーム1602および/またはディスプレイ1620にも結合され得る。
【0163】
画像センサ1619は、シーンに基づいて画像データを提供し得る任意の好適な画像センサを含み得る。例えば、画像センサ1619は、半導体電荷結合デバイス(CCD)ベースのセンサ、相補型金属酸化物半導体(CMOS)ベースのセンサ、N型金属酸化膜半導体(NMOS)ベースのセンサ、または同様のものを含み得る。例えば、画像センサ1619は、画像データを生成するためにシーンの情報を検出し得る任意のデバイスを含み得る。
【0164】
いくつかの例において、コンテンツサービスデバイス(複数の場合もある)1630は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、デジタル情報および/またはコンテンツを配信可能なインターネット対応デバイスまたは家電、およびネットワーク1660を介してまたは直接、コンテンツをコンテンツプロバイダーとプラットフォーム1602および/またはディスプレイ1620との間で単方向または双方向に通信可能な任意の他の同様のデバイスを含むことができる。コンテンツは単方向および/または双方向に、ネットワーク1660を介してシステム1600内の構成要素の任意の1つおよびコンテンツプロバイダーへ並びにそれらから通信することができることが理解されよう。コンテンツの複数の例としては、例えば、動画、音楽、医療およびゲーム情報等を含む任意のメディア情報が挙げられ得る。
【0165】
コンテンツサービスデバイス1630は、メディア情報、デジタル情報、および/または他のコンテンツを含むケーブルテレビプログラム等のコンテンツを受信し得る。 コンテンツプロバイダの例は、任意のケーブルまたは衛星テレビ、またはラジオ、またはインターネットコンテンツプロバイダを備えてよい。 提供される例は、いかなる方式でも、本開示による実装を限定することを意図するものではない。
【0166】
いくつかの例において、プラットフォーム1602は、1または複数のナビゲーション機能を有するナビゲーションコントローラ1650から制御信号を受信することができる。ナビゲーションコントローラ1650のナビゲーション機能は、例えば、ユーザインタフェース1622と情報をやりとりするために用いられてよい。 様々な実施形態では、ナビゲーションコントローラ1650は、ユーザーが空間(例えば、連続した多次元の)データをコンピュータに入力できるようにするコンピュータハードウェアコンポーネント(特にヒューマンインタフェースデバイス)とすることができるポインティングデバイスとすることができる。グラフィカルユーザインタフェース(GUI)、テレビ、およびモニタ等の多くのシステムが、物理的ジェスチャを用いて、ユーザにデータを制御させ、コンピュータまたはテレビへ提供させることができる。
【0167】
ナビゲーションコントローラ1650のナビゲーション機能の移動は、ポインタ、カーソル、フォーカスリング、またはディスプレイに表示される他の視覚的インジケータの移動によってディスプレイ(例えば、ディスプレイ1620)で再現することができる。例えば、ソフトウェアアプリケーション1616の制御のもとで、ナビゲーションコントローラ1650に位置する複数のナビゲーション機能が、例えば、ユーザインタフェース1622上に表示される複数の仮想的なナビゲーション機能へとマッピングされてよい。 様々な実施形態において、ナビゲーションコントローラ1650は、 別個の要素ではなく、プラットフォーム1602および/またはディスプレイ1620へ統合されてよい。 しかしながら、本開示は、本明細書において示される、または説明される要素または文脈に限定されない。
【0168】
いくつかの例において、ドライバー(図示せず)は、例えば、イネーブルされる場合、ユーザーが、初期ブートアップ後にボタンに触れることで、テレビのようにプラットフォーム1602を瞬時にオンオフできるようにする技術を含むことができる。プログラムロジックは、プラットフォームが「オフ」のときでも、プラットフォーム1602が、コンテンツをメディアアダプタまたは他のコンテンツサービスデバイス1630もしくはコンテンツ配信デバイス1640にストリーミングすることを可能にし得る。加えて、チップセット1605は、例えば、5.1サラウンドサウンドオーディオおよび/または高分解能7.1サラウンドサウンドオーディオについてのハードウェアおよび/またはソフトウェアサポートを含み得る。ドライバは、複数の統合グラフィックスプラットフォームためのグラフィックスドライバを含み得る。 様々な実施形態において、グラフィックスドライバは、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレスグラフィックスカードを備えてよい。
【0169】
いくつかの例において、システム1600において示された複数の要素の1または複数のいずれが統合化されてもよい。 例えば、プラットフォーム1602およびコンテンツサービスデバイス1630が統合されてもよく、またはプラットフォーム1602およびコンテンツ配信デバイス1640が統合されてもよく、または例えば、プラットフォーム1602、コンテンツサービスデバイス1630、およびコンテンツ配信デバイス1640が統合されてもよい。 様々な実施形態において、プラットフォーム1602およびディスプレイ1620は、統合されたユニットであってもよい。 例えば、ディスプレイ1620およびコンテンツサービスデバイス1630が統合されてもよく、またはディスプレイ1620およびコンテンツ配信デバイス1640が統合されてもよい。 これらの複数の例は、本開示を限定する意図ではない。
【0170】
様々な実施形態において、システム1600は、無線システム、有線システム、または両方の組み合わせとして実装され得る。 無線システムとして実装される場合、システム1600は、1または複数のアンテナ、トランスミッタ、レシーバ、トランシーバ、増幅器、フィルタ、制御ロジック等のような無線共有媒体を介して通信するのに好適な複数のコンポーネントおよびインタフェースを含み得る。 無線共有媒体の例としては、RFスペクトル等のような無線スペクトルの一部が挙げられ得る。 有線システムとして実装される場合、システム1600は、入力/出力(I/O)アダプタ、I/Oアダプタを対応する有線通信媒体に接続する物理的なコネクタ、ネットワークインタフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等の有線通信媒体を介して通信するのに適する構成要素およびインタフェースを含むことができる。有線通信媒体の複数の例としては、ワイヤ、ケーブル、金属リード線、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバ等が挙げられ得る。
【0171】
プラットフォーム1602は、情報を通信するための1または複数の論理チャネルまたは物理チャネルを確立し得る。 情報は、メディア情報および制御情報を含み得る。 メディア情報は、ユーザ向けのコンテンツを表す任意のデータを指し得る。 コンテンツの複数の例としては、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール(「eメール」)メッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキスト等からのデータが挙げられ得る。 音声会話からのデータは、例えば、発言情報、無音期間、バックグラウンドノイズ、コンフォートノイズ、トーン等であり得る。 制御情報は、自動システム向けの複数のコマンド、命令、または制御ワードを表す任意のデータを指し得る。 例えば、制御情報は、システムを通じてメディア情報をルーティングし、または予め定められたようにメディア情報を処理するようノードに指示するべく用いられ得る。 しかしながら、実施形態は、図16に示されるか、または説明される要素もしくは状況に限定されない。
【0172】
上記のように、システム1600は、異なる物理的スタイルまたはフォームファクタで具現化され得る。 図17は、本開示の少なくともいくつかの実装に従って配置された例示的なスモールフォームファクタデバイス1700を示す。いくつかの例において、システム1600はデバイス1700を介して実装され得る。他の例において、本明細書またはその一部において説明される他のシステム、コンポーネント、またはモジュールはデバイス1700を介して実装され得る。例えば、様々な実施形態において、デバイス1700は、無線機能を有するモバイルコンピューティングデバイスとして実装することができる。モバイルコンピューティングデバイスは、処理システムおよび、例えば1または複数のバッテリ等のモバイル電源またはパワーサブライを備える任意のデバイスを参照してよい。
【0173】
モバイルコンピューティングデバイスの例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラ電話、コンビネーションセルラ電話/PDA、スマートデバイス(例えば、スマートフォン、スマートタブレット、またはスマートモバイルテレビ)、モバイルインターネットデバイス(MID)、メッセージデバイス、データ通信デバイス、カメラ(例えば、全自動カメラ、スーパーズームカメラ、デジタル一眼レフ(DSLR)カメラ)などを含み得る。
【0174】
モバイルコンピューティングデバイスの例はまた、モータ車両またはロボットによって実装されるように、または、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡型コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴型コンピュータ、衣類型コンピュータ、および他のウェアラブルコンピュータなど、人間によって装着されるように配置されたコンピュータを含み得る。例えば、様々な実施形態において、モバイルコンピューティングデバイスは、コンピュータアプリケーション並びに音声通信および/またはデータ通信を実行可能なスマートフォンとして実装することができる。例を挙げる目的で、いくつかの実施形態が、スマートフォンとして実装されたモバイルコンピューティングデバイスと共に説明されるかもしれないが、他の実施形態が、他の無線モバイルモバイルコンピューティングデバイスを同様に用いて実装されうることは当然であってよい。 実施形態は、この文脈に限定されない。
【0175】
図17に示されるように、デバイス1700は、表側1701および裏側1702を有するハウジングを備え得る。デバイス1700は、ディスプレイ1704、入力/出力(I/O)デバイス1706、カラーカメラ1721、カラーカメラ1722、および統合アンテナ1708を備える。いくつかの実施形態において、カラーカメラ1721およびカラーカメラ1722は、本明細書において説明されるような平面画像を取得する。いくつかの実施形態において、デバイス1700は、カラーカメラ1721および1722を含まず、デバイス1700は、別のデバイスから入力画像データ(例えば、本明細書において説明される任意の入力画像データ)を取得する。デバイス1700はまた、ナビゲーション機能1712を備えてよい。 I/Oデバイス1706は、情報をモバイルコンピューティングデバイスに入力する任意の好適なI/Oデバイスを含むことができる。I/Oデバイス1706の例としては、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、マイクロホン、スピーカー、音声認識デバイス、およびソフトウェア等を挙げることができる。情報はまた、マイク(示されない)を通じてデバイス1700に入力され得るか、または、音声認識デバイスによってデジタル化され得る。示されるように、デバイス1700は、デバイス1700の裏側1702(または他の場所)に統合されたカラーカメラ1721、1722と、フラッシュ1710とを含み得る。他の例において、カラーカメラ1721、1722、およびフラッシュ1710は、デバイス1700の表側1701に統合され得、または、カメラの表側および裏側の両方のセットが提供され得る。カラーカメラ1721、1722、およびフラッシュ1710は、ディスプレイ1704に出力される、および/または、例えばアンテナ1708を介してデバイス1700から遠隔通信される画像またはストリーミングビデオになるように処理され得る、IRテクスチャ補正を有するカラー画像データを発生させるためのカメラモジュールのコンポーネントであり得る。
【0176】
例示的な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを用いて実装することができる。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子、(例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含んでよい。 ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、またはこれらの任意の組み合わせを含んでよい。 ハードウェア要素および/またはソフトウェア要素を使用して実施形態が実装されるかどうかの判定は、所望の計算速度、出力レベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード、および他の設計または性能の制約など、任意の数の係数に応じて異なってよい。
【0177】
いくつかの例において、少なくとも1つの実施形態の1または複数の態様は、機械可読媒体に記憶された代表的な命令によって実装することができ、命令は、プロセッサ内の様々な論理を表し、機械によって読み取られると、機械に、本明細書で説明される技法を実行させる論理を組み立てさせる。そのような表現は、「IPコア」として知られ、有形の機械可読媒体に記憶され、様々な顧客または製造施設に供給されて、実際に論理を作る製造機械またはプロセッサにロードすることができる。
【0178】
図18は、図5のテクスチャベースMIVエンコーダ500を実装するために、図11図14の命令を実行するよう構築される例示的なプロセッサプラットフォーム1800のブロック図である。プロセッサプラットフォーム1800は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)などのタブレット)、パーソナルデジタルアシスタント(PDA)、インターネット機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、ブルーレイプレーヤ、ゲーミングコンソール、パーソナルビデオレコーダ、セットトップボックス、ヘッドセットもしくは他のウェアラブルデバイス、または任意の他の種類のコンピューティングデバイスであり得る。
【0179】
示された例のプロセッサプラットフォーム1800は、プロセッサ1812を含む。 示された例のプロセッサ1812は、ハードウェアである。 例えば、プロセッサ1812は、1または複数の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、または任意の所望のファミリーもしくは製造者からのコントローラで実装されてよい。 ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)のデバイスであってよい。 この例において、プロセッサはビュー最適化部502、例示的なデプス推論部504、例示的な対応関係アトラス構築部506、例示的な対応関係ラベリング部508、例示的な対応関係プルーニング部510、例示的なマスク集約部512、例示的な対応関係パッチパッキング部514、例示的なアトラス生成部516、例示的な占有パッキング部524、例示的なビデオエンコーダ534、および例示的なビデオエンコーダ536を実装する。
【0180】
示された例のプロセッサ1812は、ローカルメモリ1813(例えば、キャッシュ)を含む。 示された例のプロセッサ1812は、バス1818を介して、揮発性メモリ1814および不揮発性メモリ1816を含むメインメモリと通信する。 揮発性メモリ1814は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))および/または任意の他のタイプのランダムアクセスメモリデバイスで実装されてよい。 不揮発性メモリ1816は、フラッシュメモリおよび/または任意の他の所望のタイプのメモリデバイスで実装されてよい。 メインメモリ1814、1816へのアクセスはメモリコントローラによって制御される。
【0181】
示された例のプロセッサプラットフォーム1800はまた、インタフェース回路1820も含む。 インタフェース回路1820は、イーサネット(登録商標)インタフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インタフェース、近距離通信(NFC)インタフェースおよび/またはPCIエクスプレスインタフェース等の任意のタイプのインタフェース規格で実装されてよい。
【0182】
示された例において、1または複数の入力デバイス1822は、インタフェース回路1820に接続される。 入力デバイス1822は、ユーザがデータおよび/またはコマンドをプロセッサ1812に入力することを許容する。 入力デバイスは、例えば、オーディオセンサ、マイク、カメラ(スチールまたはビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントおよび/または音声認識システムにより実装され得る。
【0183】
1または複数の出力デバイス1824もまた、示された例のインタフェース回路1820に接続される。 出力デバイス1824は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED))、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、ブラウン管ディスプレイ(CRT)、インプレーススイッチング(in‐place switching:IPS)ディスプレイ、タッチスクリーン等)、触覚出力デバイス、プリンタおよび/またはスピーカで実装されてよい。 したがって、示された例のインタフェース回路1820は典型的には、グラフィックスドライバカード、グラフィックスドライバチップ、および/またはグラフィックスドライバプロセッサを含む。
【0184】
示された例のインタフェース回路1820はまた、トランスミッタ、レシーバ、トランシーバ、モデム、住居用ゲートウェイ、無線アクセスポイント、および/または、ネットワーク1826を介した外部マシン(例えば、任意の種類のコンピューティングデバイス)とのデータ交換を容易にするためのネットワークインタフェース等の通信デバイスも含む。 通信は、例えば、イーサネット(登録商標)接続、デジタル加入者線(DSL)接続、電話回線接続、同軸ケーブルシステム、衛星システム、有視界無線システム、セルラ電話システム等を介したものであってよい。
【0185】
示された例のプロセッサプラットフォーム1800はまた、ソフトウェアおよび/またはデータを格納するための1または複数の大容量ストレージデバイス1828も含む。 このような大容量ストレージデバイス1828の例には、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、独立ディスク冗長アレイ(RAID)システム、およびデジタル多用途ディスク(DVD)ドライブが含まれる。
【0186】
図11図14の機械実行可能命令1832は、大容量ストレージデバイス1828、揮発性メモリ1814、不揮発性メモリ1816、および/または、CDもしくはDVDなどの取り外し可能非一時的コンピュータ可読記憶媒体に格納され得る。
【0187】
図19は、図7のテクスチャベースのMIVデコーダ700を実装するために図15の命令を実行するように構築される例示的なプロセッサプラットフォーム1900のブロック図である。プロセッサプラットフォーム1900は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)などのタブレット)、パーソナルデジタルアシスタント(PDA)、インターネット機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、ブルーレイプレーヤ、ゲーミングコンソール、パーソナルビデオレコーダ、セットトップボックス、ヘッドセットもしくは他のウェアラブルデバイス、または任意の他の種類のコンピューティングデバイスであり得る。
【0188】
示された例のプロセッサプラットフォーム1900は、プロセッサ1912を含む。 示された例のプロセッサ1912は、ハードウェアである。 例えば、プロセッサ1912は、1または複数の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、または任意の所望のファミリーもしくは製造者からのコントローラで実装されてよい。 ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)のデバイスであってよい。 この例において、プロセッサは、ビデオデコーダ708、例示的なビデオデコーダ712、例示的な占有アンパッキング部714、例示的なMIVデコーダおよび解析部718、例示的なブロック‐パッチマップデコーダ720、例示的なカル部728、例示的なレンダリング部730、例示的なコントローラ732、例示的なデプス推論部734、例示的な合成部736、および例示的なインペイント部738を実装する。
【0189】
示された例のプロセッサ1912は、ローカルメモリ1913(例えば、キャッシュ)を含む。 示された例のプロセッサ1912は、バス1918を介して、揮発性メモリ1914および不揮発性メモリ1916を含むメインメモリと通信する。 揮発性メモリ1914は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))および/または任意の他のタイプのランダムアクセスメモリデバイスで実装されてよい。 不揮発性メモリ1916は、フラッシュメモリおよび/または任意の他の所望のタイプのメモリデバイスで実装されてよい。 メインメモリ1914、1916へのアクセスはメモリコントローラによって制御される。
【0190】
示された例のプロセッサプラットフォーム1900はまた、インタフェース回路1920も含む。 インタフェース回路1920は、イーサネット(登録商標)インタフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インタフェース、近距離通信(NFC)インタフェースおよび/またはPCIエクスプレスインタフェース等の任意のタイプのインタフェース規格で実装されてよい。
【0191】
示された例において、1または複数の入力デバイス1922は、インタフェース回路1920に接続される。 入力デバイス1922は、ユーザがデータおよび/またはコマンドをプロセッサ1912に入力することを許容する。 入力デバイスは、例えば、オーディオセンサ、マイク、カメラ(スチールまたはビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントおよび/または音声認識システムにより実装され得る。
【0192】
1または複数の出力デバイス1924もまた、示された例のインタフェース回路1920に接続される。 出力デバイス1924は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED))、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、ブラウン管ディスプレイ(CRT)、インプレーススイッチング(in‐place switching:IPS)ディスプレイ、タッチスクリーン等)、触覚出力デバイス、プリンタおよび/またはスピーカで実装されてよい。 したがって、示された例のインタフェース回路1920は典型的には、グラフィックスドライバカード、グラフィックスドライバチップ、および/またはグラフィックスドライバプロセッサを含む。
【0193】
示された例のインタフェース回路1920はまた、トランスミッタ、レシーバ、トランシーバ、モデム、住居用ゲートウェイ、無線アクセスポイント、および/または、ネットワーク1926を介した外部マシン(例えば、任意の種類のコンピューティングデバイス)とのデータ交換を容易にするためのネットワークインタフェース等の通信デバイスも含む。 通信は、例えば、イーサネット(登録商標)接続、デジタル加入者線(DSL)接続、電話回線接続、同軸ケーブルシステム、衛星システム、有視界無線システム、セルラ電話システム等を介したものであってよい。
【0194】
示された例のプロセッサプラットフォーム1900はまた、ソフトウェアおよび/またはデータを格納するための1または複数の大容量ストレージデバイス1928も含む。 このような大容量ストレージデバイス1928の例には、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、独立ディスク冗長アレイ(RAID)システム、およびデジタル多用途ディスク(DVD)ドライブが含まれる。
【0195】
図15の機械実行可能命令1932は、大容量ストレージデバイス1928に、揮発性メモリ1914に、不揮発性メモリ1916に、および/または、CDまたはDVDなどの取り外し可能な非一時的コンピュータ可読記憶媒体に格納され得る。
【0196】
図18の例示的なコンピュータ可読命令1832、および/または、図19の例示的なコンピュータ可読命令1932などのソフトウェアを第三者に配布するための例示的なソフトウェア配布プラットフォーム2005を示すブロック図が図20に示される。例示的なソフトウェア配布プラットフォーム2005は、ソフトウェアを他のコンピューティングデバイスに格納および送信することが可能な任意のコンピュータサーバ、データ設備、クラウドサービスなどによって実装され得る。第三者は、ソフトウェア配布プラットフォームを所有および/または運用するエンティティの顧客であり得る。例えば、ソフトウェア配布プラットフォームを所有および/または運用するエンティティは、図18の例示的なコンピュータ可読命令1832および/または図19の例示的なコンピュータ可読命令1932など、ソフトウェアの開発元、販売元、および/またはライセンサであり得る。第三者は、使用および/または再販売および/またはサブライセンスするためにソフトウェアを購入および/またはライセンスする消費者、ユーザ、小売業者、OEMなどであり得る。示された例において、ソフトウェア配布プラットフォーム2005は1または複数のサーバおよび1または複数のストレージデバイスを含む。ストレージデバイスは、上記のような、図18の例示的なコンピュータ可読命令1832、および/または、図19の例示的なコンピュータ可読命令1932に対応し得るコンピュータ可読命令1832および/または1932を格納する。例示的なソフトウェア配布プラットフォーム2005の1または複数のサーバは、インターネット、および/または、上記の例示的なネットワーク1826、1926のいずれかの任意の1または複数に対応し得るネットワーク2010と通信する。いくつかの例において、1または複数のサーバは、商業トランザクションの一部としてソフトウェアを要求側に送信するための要求に応答する。ソフトウェアの配信、販売、および/またはライセンスのための支払いは、ソフトウェア配布プラットフォームの1または複数のサーバによって、および/または、第三者の支払いエンティティを介して処理され得る。サーバは、購入者および/またはライセンサがコンピュータ可読命令1832および/または1932をソフトウェア配布プラットフォーム2005からダウンロードすることを可能にする。例えば、図18の例示的なコンピュータ可読命令1832に対応し得るソフトウェアは、図5のテクスチャベースMIVエンコーダ500を実装するためにコンピュータ可読命令1832を実行する例示的なプロセッサプラットフォーム1800にダウンロードされ得る。例えば、図19の例示的なコンピュータ可読命令1932に対応し得るソフトウェアは、図7のテクスチャベースのMIVデコーダ700を実装するためにコンピュータ可読命令1932を実行する例示的なプロセッサプラットフォーム1900にダウンロードされ得る。いくつかの例において、ソフトウェア配布プラットフォーム2005の1または複数のサーバは、改善、パッチ、更新などが配信されエンドユーザデバイスにおけるソフトウェアに適用されることを確実にするために、定期的にソフトウェア(例えば、図18の例示的なコンピュータ可読命令1832、および/または、図19の例示的なコンピュータ可読命令1932)を提供、送信、および/または、強制更新する。
【0197】
上記から、テクスチャベースの没入型ビデオコーディングを可能にする例示的な方法、装置および製品が開示されたことが理解される。開示される方法、装置および製品は、対応関係リストにおける対応関係パッチを判定して割り当てることによってコンピューティングデバイスを使用する効率を改善する。例えば、テクスチャベースのエンコーダは、対応関係パッチのリストをアトラスに格納する。テクスチャベースのエンコーダは、対応関係パッチを識別して、ビュー間の異なるテクスチャ情報からデプス情報を推論する。テクスチャベースのエンコーダは、符号化ビットストリームを送信するために必要な帯域幅が少ない。なぜなら、テクスチャベースのエンコーダは、任意のデプスアトラスを送信しないからである。テクスチャベースのデコーダは、テクスチャベースのエンコーダからのアトラスに含まれる対応関係パッチのリストに起因して、関心のある対応関係パッチを識別するために必要な帯域幅が相対的に少ない。開示された方法、装置、および製品は、したがって、コンピュータの機能における1または複数の改善に向けられている。
【0198】
テクスチャベースの没入型ビデオコーディングのための例示的な方法、装置、システム、および製品が本明細書において開示される。その更なる例および組み合わせは、以下を含む。
【0199】
例1は、ビデオエンコーダであって、
(i)第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別し、(ii)第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別するための対応関係ラベリング部であって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のものおよび前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、対応関係ラベリング部と、
(i)前記第1ビューにおける隣接画素を比較し、(ii)前記隣接画素の比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別するための対応関係パッチパッキング部であって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、対応関係パッチパッキング部と、
符号化ビデオデータに含める少なくとも1つのアトラスを生成するアトラス生成部であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチ、および、対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、アトラス生成部と
を備えるビデオエンコーダを含む。
【0200】
例2は、前記第1ビューについての第1のプルーニングマスクを生成するための対応関係プルーニング部であって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、対応関係プルーニング部を更に備える、例1に記載のビデオエンコーダを含む。
【0201】
例3は、例2のビデオエンコーダを含み、前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない。
【0202】
例4は、例2または例3のいずれか1つに記載のビデオエンコーダを含み、前記対応関係プルーニング部は、前記第2ビューについての第2のプルーニングマスクを生成し、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく。
【0203】
例5は、例4に記載のビデオエンコーダを含み、前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素を含む。
【0204】
例6は、例4または例5のいずれか1つに記載のビデオエンコーダを含み、前記対応関係プルーニング部は、第3ビューについての第3のプルーニングマスクを生成し、前記第3のプルーニングマスクは、第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの第2の対応する画素に含まれる対応する画素を含む。
【0205】
例7は、例6に記載のビデオエンコーダを含み、前記対応関係プルーニング部は、維持される第1の複数の画素、第2の複数の画素、および第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを生成して、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素、および、前記第2ビューの前記第2の対応する画素に含まれる前記第3の対応する画素を含む。
【0206】
例8は、例7に記載のビデオエンコーダを含み、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約するためのマスク集約部を更に備える。
【0207】
例9は、例1に記載のビデオエンコーダを含み、前記対応関係ラベリング部は、前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影しない前記第1ビューの前記複数の画素の複数のものであると識別する。
【0208】
例10は、例1に記載のビデオエンコーダを含み、前記対応関係ラベリング部は、前記第1の対応する画素が、前記第2ビューに再投影されるときに前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別する。
【0209】
例11は、例10に記載のビデオエンコーダを含み、前記対応関係ラベリング部は、前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツの差分が閾値を満たすとき、前記第1の対応する画素の前記第1のもの、および、前記第2の対応する画素の前記第2のものを同様のものとして識別する。
【0210】
例12は、例1に記載のビデオエンコーダを含み、前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む。
【0211】
例13は、例1に記載のビデオエンコーダを含み、入力ビューは属性マップを含む。
【0212】
例14は、例1に記載のビデオエンコーダを含み、前記符号化ビデオデータは、前記少なくとも1つのアトラスがデプスマップを含まないことを識別するフラグを含む。
【0213】
例15は、命令を備える少なくとも1つの非一時的コンピュータ可読媒体であって、前記命令は実行されるとき、1または複数のプロセッサに、少なくとも、
第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別すること、
第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別することであって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、こと、
前記第1ビューにおける隣接画素を比較すること、
前記隣接画素の前記比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別することであって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、こと、ならびに、
符号化ビデオデータに含める少なくとも1つのアトラスを生成する段階であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチおよび対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、こと
を行わせる、少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0214】
例16は、例15に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第1ビューについての第1のプルーニングマスクを生成することであって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、ことを行わせる。
【0215】
例17は、例16に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない。
【0216】
例18は、例16または例17のいずれか1つに記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第2ビューについての第2のプルーニングマスクを生成することであって、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく、ことを行わせる。
【0217】
例19は、例18に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素を含む。
【0218】
例20は、例18または例19のいずれか1つに記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、第3ビューについての第3のプルーニングマスクを生成することであって、前記第3のプルーニングマスクは、前記第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの第2の対応する画素に含まれる対応する画素を含む、ことを行わせる。
【0219】
例21は、例20に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、維持される、第1の複数の画素、第2の複数の画素、および第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを生成することであって、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素、および、前記第2ビューの第2の対応する画素に含まれる前記第3の対応する画素を含む、ことを行わせる。
【0220】
例22は、例21に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約させる。
【0221】
例23は、例15に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影しない前記第1ビューの前記複数の画素の複数のものであると識別させる。
【0222】
例24は、例15に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第1の対応する画素が、前記第2ビューに再投影されるときに前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別することを行わせる。
【0223】
例25は、例24に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツ間の差分が閾値を満たすとき、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の前記第2のものを、同様のものとして識別することを行わせる。
【0224】
例26は、例15に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む。
【0225】
例27は、例15に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記符号化ビデオデータは、少なくとも1つのアトラスがデプスマップを含まないことを識別するフラグを含む。
【0226】
例28は、方法であって、
第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別する段階と、
第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別する段階であって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、段階と、
前記第1ビューにおける隣接画素を比較する段階と、
前記隣接画素の前記比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別する段階であって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、段階と、
符号化ビデオデータに含める少なくとも1つのアトラスを生成する段階であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチおよび対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、段階と
を備える方法を含む。
【0227】
例29は、例28の方法を含み、前記第1ビューについての第1のプルーニングマスクを生成する段階であって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、段階を更に備える。
【0228】
例30は、例29に記載の方法を含み、前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない。
【0229】
例31は、例29または例30のいずれ1つに記載の方法を含み、前記第2ビューについての第2のプルーニングマスクを生成する段階であって、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく、段階を更に備える。
【0230】
例32は、例31に記載の方法を含み、前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素を含む。
【0231】
例33は、例31または32のいずれか1つに記載の方法を含み、第3ビューについての第3のプルーニングマスクを生成する段階であって、前記第3のプルーニングマスクは、第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素、および、前記第2ビューの前記第2の対応する画素を含む、段階を更に備える。
【0232】
例34は、例33に記載の方法を含み、維持される第1の複数の画素、第2の複数の画素、および第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および、前記第3のプルーニングマスクを生成する段階であって、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの前記第2の対応する画素に含まれる前記第3の対応する画素を含む、段階を更に備える。
【0233】
例35は、例34に記載の方法を含み、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約する段階を更に備える。
【0234】
例36は、例28の方法を含み、前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影しない前記第1ビューの前記複数の画素の複数のものであると識別する段階を更に備える。
【0235】
例37は、例28の方法を含み、前記第1の対応する画素が、前記第2ビューに再投影されるとき前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別する段階を更に備える。
【0236】
例38は、例37に記載の方法を含み、前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツ間の差分が閾値を満たすとき、前記第1の対応する画素の前記第1のもの、および、前記第2の対応する画素の前記第2のものを、同様のものとして識別する段階を更に備える。
【0237】
例39は、例28に記載の方法を含み、前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む。
【0238】
例40は、例28に記載の方法を含み、前記符号化ビデオデータは、前記少なくとも1つのアトラスがデプスマップを含まないことを識別するためのフラグを含む。
【0239】
例41は、ビデオデコーダであって、
ビットストリームデコーダであって、
符号化ビデオデータにおけるフラグを識別することであって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、こと、ならびに、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得することであって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、こと
を行うビットストリームデコーダと、
レンダリング部であって、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する画素との比較に基づいて、デプス情報を判定すること、および、
前記判定されたデプス情報からターゲットビューを合成すること
を行うレンダリング部と
を備えるビデオデコーダを含む。
【0240】
例42は、例41に記載のビデオデコーダを含み、前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む。
【0241】
例43は、例42に記載のビデオデコーダを含み、前記レンダリング部は、前記第2のマップに基づいて前記対応する第2のパッチを再構築する。
【0242】
例44は、例41のビデオデコーダを含み、前記レンダリング部は、前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する画素を識別する。
【0243】
例45は、例41または44のいずれか1つに記載のビデオデコーダを含み、前記レンダリング部は、前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定し、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する。
【0244】
例46は、命令を備える少なくとも1つの非一時的コンピュータ可読媒体であって、前記命令は実行されるとき、1または複数のプロセッサに、少なくとも、
符号化ビデオデータにおけるフラグを識別することであって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、こと、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得することであって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、こと、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する第2の画素との比較に基づいて、デプス情報を判定すること、ならびに、
前記判定されたデプス情報からターゲットビューを合成すること
を行わせる、少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0245】
例47は、例46に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む。
【0246】
例48は、例47に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は前記1または複数のプロセッサに、前記第2のマップに基づいて前記対応する第2のパッチを再構築させる。
【0247】
例49は、例46に記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する第2の画素を識別させる。
【0248】
例50は、例46または49のいずれか1つに記載の少なくとも1つの非一時的コンピュータ可読媒体を含み、前記命令は、前記1または複数のプロセッサに、前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定することであって、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する、ことを行わせる。
【0249】
例51は、方法であって、
符号化ビデオデータにおけるフラグを識別する段階であって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、段階と、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得する段階であって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、段階と、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する第2の画素との比較に基づいて、デプス情報を判定する段階と、
前記判定されたデプス情報からターゲットビューを合成する段階と
を備える方法を含む。
【0250】
例52は、例51に記載の方法を含み、前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む。
【0251】
例53は、例52の方法を含み、前記第2のマップに基づいて前記対応する第2のパッチを再構築する段階を更に備える。
【0252】
例54は、例51に記載の方法を含み、前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する第2の画素を識別する段階を更に備える。
【0253】
例55は、例51または例54のいずれか1つの方法を含み、前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定する段階であって、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する、段階を更に備える。
【0254】
特定の例示的な方法、装置および製品が本明細書において開示されているが、本特許の網羅する範囲はこれらに限定されない。 むしろ、本特許は、本特許の請求項の範囲に公正に含まれるすべての方法、装置および製品を網羅する。
【0255】
以下の特許請求の範囲は、ここで参照によって本明細書に組み込まれ、各請求項は、本開示の別個の実施形態として自立している。 [他の可能な項目]
(項目1)
ビデオエンコーダであって、
(i)第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別し、(ii)第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別するための対応関係ラベリング部であって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のものおよび前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、対応関係ラベリング部と、
(i)前記第1ビューにおける隣接画素を比較し、(ii)前記隣接画素の比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別するための対応関係パッチパッキング部であって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、対応関係パッチパッキング部と、
符号化ビデオデータに含める少なくとも1つのアトラスを生成するアトラス生成部であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチ、および、対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、アトラス生成部と
を備えるビデオエンコーダ。
(項目2)
前記第1ビューについての第1のプルーニングマスクを生成するための対応関係プルーニング部であって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、対応関係プルーニング部を更に備える、項目1に記載のビデオエンコーダ。
(項目3)
前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない、項目2に記載のビデオエンコーダ。
(項目4)
前記対応関係プルーニング部は、前記第2ビューについての第2のプルーニングマスクを生成し、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく、項目2に記載のビデオエンコーダ。
(項目5)
前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素を含む、項目4に記載のビデオエンコーダ。
(項目6)
前記対応関係プルーニング部は、第3ビューについての第3のプルーニングマスクを生成し、前記第3のプルーニングマスクは、第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの第2の対応する画素に含まれる対応する画素を含む、項目4に記載のビデオエンコーダ。
(項目7)
前記対応関係プルーニング部は、維持される第1の複数の画素、第2の複数の画素、および第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および、前記第3のプルーニングマスクを生成して、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素、および、前記第2ビューの前記第2の対応する画素に含まれる前記第3の対応する画素を含む、項目6に記載のビデオエンコーダ。
(項目8)
前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約するためのマスク集約部を更に備える、項目7に記載のビデオエンコーダ。
(項目9)
前記対応関係ラベリング部は、前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影されない前記第1ビューの前記複数の画素の複数のものであると識別する、項目1に記載のビデオエンコーダ。
(項目10)
前記対応関係ラベリング部は、前記第1の対応する画素が、前記第2ビューに再投影されるときに前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別する、項目1に記載のビデオエンコーダ。
(項目11)
前記対応関係ラベリング部は、前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツの差分が閾値を満たすとき、前記第1の対応する画素の前記第1のもの、および、前記第2の対応する画素の前記第2のものを同様のものとして識別する、項目10に記載のビデオエンコーダ。
(項目12)
前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む、項目1に記載のビデオエンコーダ。
(項目13)
入力ビューは属性マップを含む、項目1に記載のビデオエンコーダ。
(項目14)
前記符号化ビデオデータは、前記少なくとも1つのアトラスがデプスマップを含まないことを識別するフラグを含む、項目1に記載のビデオエンコーダ。
(項目15)
命令を備える少なくとも1つの非一時的コンピュータ可読媒体であって、前記命令は実行されるとき、1または複数のプロセッサに、少なくとも、
第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別すること、
第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別することであって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、こと、
前記第1ビューにおける隣接画素を比較すること、
前記隣接画素の前記比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別することであって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、こと、ならびに、
符号化ビデオデータに含める少なくとも1つのアトラスを生成する段階であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチおよび対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、こと
を行わせる、少なくとも1つの非一時的コンピュータ可読媒体。
(項目16)
前記命令は、前記1または複数のプロセッサに、前記第1ビューについての第1のプルーニングマスクを生成することであって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、ことを行わせる、項目15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目17)
前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない、項目16に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目18)
前記命令は、前記1または複数のプロセッサに、前記第2ビューについての第2のプルーニングマスクを生成することであって、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく、ことを行わせる、項目16に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目19)
前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素を含む、項目18に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目20)
前記命令は、前記1または複数のプロセッサに、第3ビューについての第3のプルーニングマスクを生成することであって、前記第3のプルーニングマスクは、前記第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの第2の対応する画素に含まれる対応する画素を含む、ことを行わせる、項目18に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目21)
前記命令は、前記1または複数のプロセッサに、維持される、第1の複数の画素、第2の複数の画素、および、第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および、前記第3のプルーニングマスクを生成することであって、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素、および、前記第2ビューの第2の対応する画素に含まれる前記第3の対応する画素を含む、ことを行わせる、項目20に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目22)
前記命令は、前記1または複数のプロセッサに、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約させる、項目21に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目23)
前記命令は、前記1または複数のプロセッサに、前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影しない前記第1ビューの前記複数の画素の複数のものであると識別させる、項目15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目24)
前記命令は、前記1または複数のプロセッサに、前記第1の対応する画素が、前記第2ビューに再投影されるときに前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別することを行わせる、項目15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目25)
前記命令は、前記1または複数のプロセッサに、前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツ間の差分が閾値を満たすとき、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の前記第2のものを、同様のものとして識別することを行わせる、項目24に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目26)
前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む、項目15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目27)
前記符号化ビデオデータは、少なくとも1つのアトラスがデプスマップを含まないことを識別するフラグを含む、項目15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目28)
方法であって、
第1ビューの複数の画素に含まれる第1の固有画素および第1の対応する画素を識別する段階と、
第2ビューの複数の画素に含まれる第2の固有画素および第2の対応する画素を識別する段階であって、前記第1の対応する画素の複数のものは、前記第2の対応する画素の複数のものとそれぞれの対応関係を有し、前記第1の対応する画素の第1のもの、および、前記第2の対応する画素の第2のものは、同様のテクスチャ情報または異なるテクスチャ情報の少なくとも1つを有するものとして分類される、段階と、
前記第1ビューにおける隣接画素を比較する段階と、
前記隣接画素の前記比較および前記対応関係に基づいて、固有画素の第1のパッチおよび対応する画素の第2のパッチを識別する段階であって、前記第2のパッチは、前記第2ビューにおける対応関係パッチを識別する対応関係リストでタグ付けされる、段階と、
符号化ビデオデータに含める少なくとも1つのアトラスを生成する段階であって、前記少なくとも1つのアトラスは、固有画素の前記第1のパッチおよび対応する画素の前記第2のパッチを含み、前記符号化ビデオデータはデプスマップを含まない、段階と
を備える方法。
(項目29)
前記第1ビューについての第1のプルーニングマスクを生成する段階であって、前記第1のプルーニングマスクは、前記第1の固有画素および前記第1の対応する画素からのテクスチャ情報に基づく、段階を更に備える、項目28に記載の方法。
(項目30)
前記第1の対応する画素は、以前にプルーニングされたビューに含まれる対応する画素を含まない、項目29に記載の方法。
(項目31)
前記第2ビューについての第2のプルーニングマスクを生成する段階であって、前記第2のプルーニングマスクは、前記第2の固有画素および前記第2の対応する画素からのテクスチャ情報に基づく、段階を更に備える、項目29に記載の方法。
(項目32)
前記第2の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素を含む、項目31に記載の方法。
(項目33)
第3ビューについての第3のプルーニングマスクを生成する段階であって、前記第3のプルーニングマスクは、第3の固有画素および第3の対応する画素からのテクスチャ情報に基づき、前記第3の対応する画素は、前記第1ビューの前記第1の対応する画素に含まれる対応する画素、および、前記第2ビューの前記第2の対応する画素を含む、段階を更に備える、項目31に記載の方法。
(項目34)
維持される第1の複数の画素、第2の複数の画素、および第3の複数の画素を識別するための第1の値と、プルーニングされる第4の複数の画素を識別するための第2の値とを含むように、前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを生成する段階であって、前記第4の複数の画素は、前記第1ビューの前記第1の対応する画素および前記第2ビューの前記第2の対応する画素に含まれる前記第3の対応する画素を含む、段階を更に備える、項目33に記載の方法。
(項目35)
前記第1のプルーニングマスク、前記第2のプルーニングマスク、および前記第3のプルーニングマスクを集約する段階を更に備える、項目34に記載の方法。
(項目36)
前記第1の固有画素が、前記第2ビューに再投影されるときに前記第2ビューの前記複数の画素の複数のものの場所に投影しない前記第1ビューの前記複数の画素の複数のものであると識別する段階を更に備える、項目28に記載の方法。
(項目37)
前記第1の対応する画素が、前記第2ビューに再投影されるとき前記第2ビューの前記第2の対応する画素のそれぞれのものの場所に投影する前記第1ビューの前記複数の画素の複数のものであると識別する段階を更に備える、項目28に記載の方法。
(項目38)
前記第1ビューおよび前記第2ビューにおけるそれぞれのテクスチャコンテンツ間の差分が閾値を満たすとき、前記第1の対応する画素の前記第1のもの、および、前記第2の対応する画素の前記第2のものを、同様のものとして識別する段階を更に備える、項目37に記載の方法。
(項目39)
前記少なくとも1つのアトラスは、属性マップまたは占有マップの少なくとも1つを含む、項目28に記載の方法。
(項目40)
前記符号化ビデオデータは、前記少なくとも1つのアトラスがデプスマップを含まないことを識別するためのフラグを含む、項目28に記載の方法。
(項目41)
ビデオデコーダであって、
ビットストリームデコーダであって、
符号化ビデオデータにおけるフラグを識別することであって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、こと、ならびに、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得することであって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、こと
を行うビットストリームデコーダと、
レンダリング部であって、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する画素との比較に基づいて、デプス情報を判定すること、および、
前記判定されたデプス情報からターゲットビューを合成すること
を行うレンダリング部と
を備えるビデオデコーダ。
(項目42)
前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む、項目41に記載のビデオデコーダ。
(項目43)
前記レンダリング部は、前記第2のマップに基づいて前記対応する第2のパッチを再構築する、項目42に記載のビデオデコーダ。
(項目44)
前記レンダリング部は、前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する画素を識別する、項目41に記載のビデオデコーダ。
(項目45)
前記レンダリング部は、前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定し、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する、項目41に記載のビデオデコーダ。
(項目46)
命令を備える少なくとも1つの非一時的コンピュータ可読媒体であって、前記命令は実行されるとき、1または複数のプロセッサに、少なくとも、
符号化ビデオデータにおけるフラグを識別することであって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、こと、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得することであって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、こと、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する第2の画素との比較に基づいて、デプス情報を判定すること、ならびに、
前記判定されたデプス情報からターゲットビューを合成すること
を行わせる、少なくとも1つの非一時的コンピュータ可読媒体。
(項目47)
前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む、項目46に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目48)
前記命令は前記1または複数のプロセッサに、前記第2のマップに基づいて前記対応する第2のパッチを再構築させる、項目47に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目49)
前記命令は、前記1または複数のプロセッサに、前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する第2の画素を識別させる、項目46に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目50)
前記命令は、前記1または複数のプロセッサに、前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定することであって、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する、ことを行わせる、項目46に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目51)
方法であって、
符号化ビデオデータにおけるフラグを識別する段階であって、前記フラグは、デプスマップを含まない第1のアトラスおよび第2のアトラスを識別する、段階と、
前記符号化ビデオデータを復号して、(i)第1ビューの第1のメタデータおよび(ii)第2ビューの第2のメタデータを取得する段階であって、前記第1ビューおよび前記第2ビューからのパッチは、同一のアトラスに属するか、または、異なるアトラスにわたって分布し、前記第1ビューは、第1のアトラス内の第1のパッチを含み、前記第2ビューは、対応関係リストでタグ付けされた前記第1のアトラスまたは第2のアトラス内の対応する第2のパッチを含む、段階と、
前記第1のパッチに含まれる画素と、前記対応する第2のパッチに含まれる対応する第2の画素との比較に基づいて、デプス情報を判定する段階と、
前記判定されたデプス情報からターゲットビューを合成する段階と
を備える方法。
(項目52)
前記第1のメタデータは、前記第1ビューにおける画素のブロックを、前記第1ビューに含まれる前記第1のパッチにマッピングする第1のマップを含み、前記第2のメタデータは、前記第2ビューにおける画素のブロックを、前記第2ビューに含まれる前記対応する第2のパッチにマッピングする第2のマップを含む、項目51に記載の方法。
(項目53)
前記第2のマップに基づいて前記対応する第2のパッチを再構築する段階を更に備える、項目52に記載の方法。
(項目54)
前記符号化ビデオデータからの前記対応関係リストに基づいて、前記対応する第2のパッチにおける前記対応する第2の画素を識別する段階を更に備える、項目51に記載の方法。
(項目55)
前記第1ビューからの前記第1のパッチの第1のものと、前記第1のパッチの前記第1のものに対応すると判定された、前記第2ビューからの前記対応する第2のパッチのそれぞれのものとに基づいて前記デプス情報を判定する段階であって、前記対応する第2のパッチの前記それぞれのものは、前記第1のパッチの前記第1のものとは異なるテクスチャ情報、または、前記第1のパッチの前記第1のものと同様のテクスチャ情報を有する、段階を更に備える、項目51に記載の方法。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20