(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-08
(45)【発行日】2023-09-19
(54)【発明の名称】フリービュービデオコーディングのための方法、コンピュータシステム、およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20230911BHJP
H04N 19/597 20140101ALI20230911BHJP
【FI】
H04N19/70
H04N19/597
(21)【出願番号】P 2022530985
(86)(22)【出願日】2021-06-07
(86)【国際出願番号】 US2021036208
(87)【国際公開番号】W WO2022046240
(87)【国際公開日】2022-03-03
【審査請求日】2022-05-26
(32)【優先日】2020-08-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ウェン・ガオ
(72)【発明者】
【氏名】ジュン・ティアン
(72)【発明者】
【氏名】シャン・リュウ
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2019-054417(JP,A)
【文献】国際公開第2020/067441(WO,A1)
【文献】米国特許出願公開第2020/0228777(US,A1)
【文献】米国特許出願公開第2015/0222928(US,A1)
【文献】Jar-Ferr Yang, Ke-Ying Liao, Hung-Ming Wang, and Chiu-Yu Chen,Centralized Texture-Depth Packing (CTDP) SEI Message,Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCT3V-K0027,11th Meeting: Geneva, CH,2015年02月,pp.1-18
【文献】Jar-Ferr Yang, Ke-Ying Liao, Ya-Han Hu, and Hung-Ming Wang,Centralized Texture-Depth Packing (CTDP) SEI Message Syntax (JCTVC-S0031),Joint Collaborative Team on 3D Video Coding Extension of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCT3V-J0108,10th Meeting: Strasbourg, FR,2014年10月,pp.1-13
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行可能なビデオコーディングの方法であって、
2つ以上のビューを含むビデオデータを受信するステップと、
前記受信
されたビデオデータに基づいて前記
2つ以上のビューに対応する
複数の深度画像および
複数のテクスチャ画像
を含む複合ピクチャを生成するステップと、
生成された前記複合
ピクチャに基づいて前記ビデオデータをデコーディングするステップと
を含
み、
前記方法はさらに、
前記複合ピクチャを形成するために前記複数の深度画像および前記複数のテクスチャ画像がどのようにスティッチングされるかを表すスティッチングレイアウトをシグナリングするステップを含む方法。
【請求項2】
前記複合
ピクチャは、前記
2つ以上のビューを
2つ以上のグループに分割することに基づく
前記複数の深度画像の2つ以上のサブ画像を含む、請求項1に記載の方法。
【請求項3】
前記複合
ピクチャは、前記
2つ以上のビューを
2つ以上のグループに分割することに基づく
前記複数のテクスチャ画像の2つ以上のサブ画像を含む、請求項1に記載の方法。
【請求項4】
前記複合
ピクチャに関連付けられた幅値および高さ値が、前記受信
されたビデオデータに関連付けられたビットストリームでシグナリングされる、請求項1に記載の方法。
【請求項5】
前記ビデオデータは、前記複合
ピクチャに対応する
前記スティッチングレイアウトに基づいてデコードされる、請求項1に記載の方法。
【請求項6】
前記
複数の深度画像は、前記
2つ以上のビューに対応するダウンサンプリング深度情報に基づいて生成される、請求項1に記載の方法。
【請求項7】
前記
ダウンサンプリング深度情報はダウンサンプリング比
を含み、前記ダウンサンプリング深度情報は、前記受信
されたビデオデータに関連付けられたビットストリームでシグナリングされる、請求項6に記載の方法。
【請求項8】
ビデオコーディングのためのコンピュータシステムであって、前記コンピュータシステムは、
請求項1から7のいずれか一項に記載の方法を少なくとも1つのプロセッサに行わせるためのコンピュータプログラムコードを記憶するように構成された1つ以上のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのコンピュータプロセッサと
を備える、コンピュータシステム。
【請求項9】
ビデオコーディングのためのコンピュータプログラムであって、少なくとも1つのプロセッサに、請求項1から7のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年8月24日に出願された米国仮出願第63/069,371号に基づく優先権を主張する、2021年5月20日に出願された米国特許出願第17/325,496号に対する優先権の利益を主張するものであり、その全体は参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、データ処理の分野に関し、より詳細には、ビデオエンコーディング、デコーディング、およびストリーミングに関する。
【背景技術】
【0003】
没入型ビデオは、全方向カメラまたはカメラの集合を使用して撮影された、複数の方向のビューが同時に記録されたビデオ記録である。通常のフラットディスプレイでの再生時、視聴者はパノラマのように視聴方向を制御する。それは、球形または球形の一部に配置されたディスプレイまたはプロジェクタでも再生され得る。3自由度(3DoF:3 Degrees of Freedom)をサポートする没入型メディアの符号化表現では、視聴者の位置は静的であるが、その頭はヨー、ピッチ、およびロールし得る。6自由度(6DoF:6 Degrees of Freedom)は、3DoFの向きに加えて、水平、垂直、および奥行き方向の平行移動を可能にする。平行移動のサポートは、視聴者にその視覚システムへの自然な刺激を提供し、視聴者の周囲の知覚量を向上させるインタラクティブな運動視差を可能にする。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態は、ビデオコーディングのための方法、システム、およびコンピュータ可読媒体に関する。一態様によれば、ビデオコーディングのための方法が提供される。この方法は、1つ以上のビューを含むビデオデータを受信するステップを含み得る。受信ビデオデータに基づいて、1つ以上のビューに対応する複合深度画像および複合テクスチャ画像が生成される。ビデオデータは、生成された複合深度画像および複合テクスチャ画像に基づいてデコードされる。
【0005】
別の態様によれば、ビデオコーディングのためのコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読メモリと、1つ以上のコンピュータ可読有形記憶デバイスと、1つ以上のメモリのうちの少なくとも1つを介して1つ以上のプロセッサのうちの少なくとも1つによって実行するために1つ以上の記憶デバイスのうちの少なくとも1つに記憶されたプログラム命令とを含み得、これにより、コンピュータシステムは方法を実行することが可能である。この方法は、1つ以上のビューを含むビデオデータを受信するステップを含み得る。受信ビデオデータに基づいて、1つ以上のビューに対応する複合深度画像および複合テクスチャ画像が生成される。ビデオデータは、生成された複合深度画像および複合テクスチャ画像に基づいてデコードされる。
【0006】
さらに別の態様によれば、ビデオコーディングのためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ以上のコンピュータ可読記憶デバイスと、1つ以上の有形記憶デバイスのうちの少なくとも1つに記憶されたプログラム命令とを含み得、プログラム命令はプロセッサによって実行可能である。プログラム命令は、1つ以上のビューを含むビデオデータを受信するステップを適切に含み得る方法を実行するためにプロセッサによって実行可能である。受信ビデオデータに基づいて、1つ以上のビューに対応する複合深度画像および複合テクスチャ画像が生成される。ビデオデータは、生成された複合深度画像および複合テクスチャ画像に基づいてデコードされる。
【0007】
これらおよび他の目的、特徴、および利点は、添付の図面に関連して読まれるべき、例示的な実施形態の以下の詳細な説明から明らかになるであろう。図は、詳細な説明と併せて当業者の理解を容易にする際に明確にするためのものであるため、図面の様々な特徴は一定の縮尺ではない。
【図面の簡単な説明】
【0008】
【
図1】少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示す。
【
図2A】少なくとも1つの実施形態による、のためのシステムのブロック図である。
【
図2B】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2C】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2D】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2E】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2F】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2G】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2H】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図2I】少なくとも1つの実施形態による、没入型ビデオのためのスティッチングレイアウトである。
【
図3A】少なくとも1つの実施形態による、スティッチングレイアウト記述のテーブルである。
【
図3B】少なくとも1つの実施形態による、スティッチングレイアウト記述のテーブルである。
【
図3C】少なくとも1つの実施形態による、スティッチングレイアウト記述のテーブルである。
【
図3D】少なくとも1つの実施形態による、シンタックス要素のテーブルである。
【
図3E】少なくとも1つの実施形態による、シンタックス要素のテーブルである。
【
図4】少なくとも1つの実施形態による、複数のカメラからのテクスチャ画像および深度画像を配置することに基づくビデオコーディングのためのプログラムによって実行されるステップを示す動作フローチャートである。
【
図5】少なくとも1つの実施形態による、
図1に示されているコンピュータおよびサーバの内部構成要素および外部構成要素のブロック図である。
【
図6】少なくとも1つの実施形態による、
図1に示されているコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図7】少なくとも1つの実施形態による、
図6の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0009】
特許請求される構造および方法の詳細な実施形態が本明細書に開示されているが、開示された実施形態は、様々な形態で具現化され得る特許請求される構造および方法の例示にすぎないことが理解され得る。しかしながら、これらの構造および方法は、多くの異なる形態で具現化され得、本明細書に記載された例示的な実施形態に限定されると解釈されるべきではない。逆に、これらの例示的な実施形態は、本開示が徹底的かつ完全であり、当業者にその範囲を十分に伝えるように提供されている。この説明では、提示された実施形態を不必要に不明瞭にすることを避けるために、周知の特徴および技術の詳細は省略されている場合がある。
【0010】
実施形態は、一般に、データ処理の分野に関し、より詳細には、ビデオエンコーディング、デコーディング、およびストリーミングに関する。以下で説明される例示的な実施形態は、特に、ビデオエンコーディングのために複数のカメラからのテクスチャ画像および深度画像を配置するシステム、方法、およびコンピュータプログラムを提供する。したがって、一部の実施形態は、改善されたフリービュービデオエンコーディングおよびデコーディングを可能にすることによってコンピューティング分野を改善する能力を有する。
【0011】
先に説明されたように、没入型ビデオは、全方向カメラまたはカメラの集合を使用して撮影された、複数の方向のビューが同時に記録されたビデオ記録である。通常のフラットディスプレイでの再生時、視聴者はパノラマのように視聴方向を制御する。それは、球形または球形の一部に配置されたディスプレイまたはプロジェクタでも再生され得る。3自由度(3DoF:3 Degrees of Freedom)をサポートする没入型メディアの符号化表現では、視聴者の位置は静的であるが、その頭はヨー、ピッチ、およびロールし得る。6自由度(6DoF:6 Degrees of Freedom)は、3DoFの向きに加えて、水平、垂直、および奥行き方向の平行移動を可能にする。平行移動のサポートは、視聴者にその視覚システムへの自然な刺激を提供し、視聴者の周囲の知覚量を向上させるインタラクティブな運動視差を可能にする。
【0012】
しかしながら、所与の時点に関して、複数のビューポートからのテクスチャ画像および深度画像は、複合ピクチャを形成するために互いにスティッチングされる。複合ピクチャは、圧縮のためにビデオエンコーダを通過する。しかしながら、テクスチャ画像と深度画像とはまったく異なる特性を有するため、複合ピクチャをコーディングするとき、テクスチャ画像と深度画像との境界の異なる特性に起因して、エンコーディング効率が低下する。さらに、入力深度画像はY成分のみを含み、yuv400サンプリングフォーマットでエンコーダを使用してエンコードされ得、したがって、U成分およびV成分を処理する必要がないため、より速いエンコーディング/デコーディング動作が可能である。しかしながら、スティッチング動作に起因して、深度画像は、yuv420フォーマットに変換されなければならず、したがって、yuv400サンプリングフォーマットでのエンコーダ/デコーダの可能な適用が禁止されている。したがって、フリービュービデオを改善するために、ビデオコーディングのために複数のカメラからのテクスチャ画像および深度画像を配置することが好適であり得る。
【0013】
本明細書では、様々な実施形態による方法、装置(システム)、およびコンピュータ可読媒体のフローチャート図および/またはブロック図を参照して、態様が説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0014】
以下で説明される例示的な実施形態は、ビデオデータからノイズを除去するシステム、方法、およびコンピュータプログラムを提供する。ここで
図1を参照すると、増加されたビデオステッチング配置に基づくビデオコーディングのためのビデオコーディングシステム100(以下「システム」)を示すネットワーク化されたコンピュータ環境の機能ブロック図。
図1は、一実施態様の例示のみを提供しており、異なる実施形態が実施され得る環境に関していかなる限定も含意しないことを理解されたい。図示された環境に対する多くの修正は、設計および実施要件に基づいて行われ得る。
【0015】
システム100は、コンピュータ102およびサーバコンピュータ114を含み得る。コンピュータ102は、通信ネットワーク110(以下「ネットワーク」)を介してサーバコンピュータ114と通信し得る。コンピュータ102は、プロセッサ104と、ユーザとインターフェースし、サーバコンピュータ114と通信することが可能な、データ記憶デバイス106に記憶されたソフトウェアプログラム108とを含み得る。
図5を参照して以下で述べられるように、コンピュータ102は、それぞれ内部構成要素800Aおよび外部構成要素900Aを含み得、サーバコンピュータ114は、それぞれ内部構成要素800Bおよび外部構成要素900Bを含み得る。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることが可能な任意のタイプのコンピューティングデバイスであってもよい。
【0016】
サーバコンピュータ114はまた、
図6および
図7に関して以下で述べられるように、サービスとしてのソフトウェア(SaaS:Software as a Service)、サービスとしてのプラットフォーム(PaaS:Platform as a Service)、またはサービスとしてのインフラストラクチャ(laaS:Infrastructure as a Service)などのクラウドコンピューティングサービスモデルで動作してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置されてもよい。
【0017】
ビデオコーディングに使用され得るサーバコンピュータ114は、データベース112と対話し得るビデオコーディングプログラム116(以下「プログラム」)を実行することが可能である。ビデオコーディングプログラム方法は、
図4に関して以下でより詳細に説明される。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作し得、プログラム116は、主にサーバコンピュータ114上で動作し得る。代替的な実施形態では、プログラム116は、主に1つ以上のコンピュータ102上で動作してもよく、サーバコンピュータ114は、プログラム116によって使用されるデータの処理および記憶に使用されてもよい。プログラム116は、スタンドアロンプログラムであってもよいし、またはより大きなビデオコーディングプログラムに統合されてもよいことに留意されたい。
【0018】
しかしながら、プログラム116の処理は、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよいことに留意されたい。別の実施形態では、プログラム116は、1つより多くのコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で動作し得る。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作し得る。代替的に、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0019】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、またはこれらの何らかの組み合わせを含み得る。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続およびプロトコルの任意の組み合わせであり得る。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN:local area network)、インターネットなどのワイドエリアネットワーク(WAN:wide area network)、公衆交換電話網(PSTN:Public Switched Telephone Network)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE:long-term evolution)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA:code division multiple access)ネットワークなど)、公衆陸上移動体ネットワーク(PLMN:public land mobile network)、メトロポリタンエリアネットワーク(MAN:metropolitan area network)、プライベートネットワーク、アドホックネットワーク、イントラネット、もしくは光ファイバベースのネットワークなど、および/またはこれらもしくは他のタイプのネットワークの組み合わせなどの様々なタイプのネットワークを含み得る。
【0020】
図1に示されているデバイスおよびネットワークの数および配置は例として提供されている。実際には、
図1に示されているものと比べて、追加のデバイスおよび/もしくはネットワーク、より少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークがあってもよい。さらに、
図1に示されている2つ以上のデバイスが、単一のデバイス内で実施されてもよいし、または
図1に示されている単一のデバイスが、複数の分散型デバイスとして実施されてもよい。追加的または代替的に、システム100のデバイスのセット(例えば、1つ以上のデバイス)が、システム100のデバイスの別のセットによって実行されるものとして説明されている1つ以上の機能を実行してもよい。
【0021】
ここで
図2Aを参照すると、VRU 6DoFビデオのためのシステム200Aのブロック図が示されている。システム200Aは、特に、エンコーダ/デコーダ202およびビデオ合成器204を含み得る。所与の時点に関して、複数のビュー(または複数のカメラ)からの対応するテクスチャ画像206および深度画像208は、複合ピクチャ210を形成するために互いにスティッチングされる。連続する時点からの複合ピクチャ210は、圧縮のためにAVS3、AVS2などを使用し得るエンコーダ/デコーダ202に供給され得る。送信後、エンコーダ/デコーダ202はさらに、対応するデコーダを使用してビデオをデコードし、デコードされた複合ピクチャを取得し得る。所与の時点からの複数のビューのテクスチャおよび深度ピクチャが、デコードされた複合ピクチャ210から抽出され、さらに、表示のために直接使用され得るか、またはメタデータ212に基づいて、ビデオ合成器204によって新たな視点の新たなビデオを合成するために使用され得る。
【0022】
ここで
図2B~
図2Dを参照すると、スティッチングレイアウト200B、200C、および200Dがそれぞれ示されている。8ビューポートフリービュービデオを例として使用すると、所与の時点に関して、8つのテクスチャ画像および8つの深度画像は、それぞれsix_dof_stitching_layout_type=0、1、および2に基づいて異なる方法でスティッチングされる。スティッチングレイアウト200Dでは、深度画像は、最初にx次元およびy次元の両方に沿って1/2ずつダウンサンプリングされ、したがって1/4ダウンサンプリング深度画像と呼ばれる。スティッチングレイアウト200B~200Dでは、n幅およびn高さは複合画像の幅および高さを示し、ビットストリームでシグナリングされる。さらに、テクスチャ画像および深度画像のサイズ、ならびにsix_dof_stitching_layout_typeもビットストリームでシグナリングされる。すべての情報を用いて、デコーダは、複数のビューポートに関して、デコードされたテクスチャ画像および深度画像を抽出することができる。さらに、テクスチャ画像はyuv420サンプルフォーマットであり、深度画像はyuv400サンプルフォーマットであるため、深度画像は、スティッチング動作の前にyuv420フォーマットに変換される必要がある。処理は、yuv400画像のY成分を保持し、U成分およびV成分に128などの定数値を加算することによって実行され得る。
【0023】
ここで
図2Eを参照すると、スティッチングレイアウト200Eが示されている。1つ以上の実施形態では、所与の時点に関して、複数のビューポートからのテクスチャ画像は、1つの複合テクスチャ画像を形成するため互いにグループ化され得る。複数の連続する複合テクスチャ画像は、ビデオエンコーダを使用して、six_dof_stitching_layout_type=3としてエンコードされ得る。
【0024】
ここで
図2Fを参照すると、スティッチングレイアウト200Fが示されている。1つ以上の実施形態では、所与の時点に関して、複数のビューポートからの深度画像は、1つの複合深度画像を形成するために互いにスティッチングされ得る。複数の連続する複合深度画像は、ビデオエンコーダを使用して、six_dof_stitching_layout_type=4としてエンコードされる。
【0025】
ここで
図2Gを参照すると、スティッチングレイアウト200Gが示されている。1つ以上の実施形態では、所与の時点に関して、深度画像は最初にダウンサンプリングされ、複数のビューポートからのダウンサンプリング深度画像は、six_dof_stitching_layout_type=5として1つの複合ダウンサンプリング深度画像を形成するために互いにスティッチングされる。複数の連続する複合ダウンサンプリング深度画像は、ビデオエンコーダを使用してエンコードされる。ダウンサンプリング比は、用途に応じて、1/4、1/8、または1/16などであり得る。
【0026】
ここで
図2Hを参照すると、スティッチングレイアウト200Hが示されている。1つ以上の実施形態では、所与の時点に関して、すべてのビューポートからのテクスチャおよび/または深度画像が互いにスティッチングされる。結果として得られる複合ピクチャの解像度は非常に大きい。一部のモバイルデバイスでは、デコーダは、この種の大きな複合ピクチャを取り扱うことができない場合がある。したがって、1つ以上の実施形態では、所与の時点に関して、すべてのビューポートからのテクスチャおよび/または深度画像は、最初に複数のグループに分離される。各グループ内のテクスチャおよび/または深度画像は、1から5のsix_dof_stitching_layout_typeに従って互いにスティッチングされ得る。six_dof_stitching_layout_type=3を例として使用し、ビューポートの総数が8であると仮定すると、ビューポートは2つのグループ、すなわちビューポート1~4およびビューポート5~8に分割され得る。1から5のsix_dof_stitching_layout_type、およびグループを用いたスティッチング動作に関しても、複合画像の形状は、使用されるテクスチャ画像/深度画像の列の数に応じて異なり得、これは、所与の画像総数において複合画像内のテクスチャ画像/深度画像のいくつの行がスティッチングに使用されるかを決定する。
【0027】
ここで
図2Iを参照すると、スティッチングレイアウト200Iが示されている。スティッチングレイアウト200Iは、スティッチングレイアウト200Hの変種であり得る。例えば、スティッチングレイアウト200Iは、2つのグループを有するsix_dof_stitching_layout_type=3の変種であり得る。さらに、n幅およびn高さは、ビューポートテクスチャ画像/深度画像の解像度と共に、複合画像内の画像の列および行の数を導出することを可能にし得る。
【0028】
ここで
図3Aを参照すると、スティッチングレイアウトのテーブル300Aが示されている。テーブル300Aは、IEEE VRUで定義された3つの異なるスティッチングレイアウトに対応し得る。
【0029】
ここで
図3Bを参照すると、スティッチングレイアウト記述のテーブル300Bが示されている。スティッチングレイアウト記述は、所与のスティッチングレイアウトタイプに対応し得る。
【0030】
ここで
図3Cを参照すると、6DoFスティッチングレイアウト記述の拡張のテーブル300Cが示されている。x次元およびy次元に沿ったダウンサンプリング比は、ビットストリームでシグナリングされ得るし、またはシグナリングなしで固定され得る。グループの数は、ビットストリームでシグナリングされ得るし、またはシグナリングなしで固定され得る。6DoFスティッチングレイアウトの一部のテーブル300Cが定義されており、ダウンサンプリング比は1/4に固定されている。
【0031】
ここで
図3Dを参照すると、6DoF圧縮ビデオコンテンツテーブルのシンタックスのテーブル300Dが示されている。テーブル300Dは、1つ以上のシンタックス要素のセマンティクスであって、
six_dof_stitching_layout:テクスチャ画像および/または深度画像が所与の時点に関して複合ピクチャを形成するためにどのように互いにスティッチングされるかを表す、
marker_bit:テーブルに疑似開始コードが現れることを回避するために使用される、値1を有するバイナリビット、
padding_size:境界パディングに使用される画素の数を示す、0から255の値を有する8ビットの符号なし整数、
camera_number:6DoFビデオキャプチャで使用されるカメラの数を示す、0から255の値を有する8ビットの符号なし整数、
camera_resolution_x:カメラ画像のx座標次元を示す、32ビットの符号なし整数、
camera_resolution_y:カメラ画像のy座標次元を示す、32ビットの符号なし整数、
camera_translation_matrix[3]:カメラ平行移動ベクトルを示す、3*32ビットの浮動小数点ベクトル、
camera_rotation_matrix[3][3]:カメラ回転行列を示す、9*32ビットの浮動小数点行列、
camera_focal_length_x:x方向のカメラ焦点距離を示す、32ビットの浮動小数点数、
camera_focal_length_y:y方向のカメラ焦点距離を示す、32ビットの浮動小数点数、
camera_principle_point_x:画像座標におけるカメラ光学中心のx方向オフセットを示す、32ビットの浮動小数点数、
camera_principle_point_y:画像座標におけるカメラ光学中心のy方向オフセットを示す、32ビットの浮動小数点数、
depth_range_near:深度画像を量子化するために使用される光学中心に対する最小深度値を示す、32ビットの浮動小数点数、および
depth_range_far:深度画像を量子化するために使用される光学中心に対する最大深度値を示す、32ビットの浮動小数点数
を含む1つ以上のシンタックス要素のセマンティクスを含む。
【0032】
ここで
図3Eを参照すると、シンタックス要素のテーブル300Eが示されている。
図3Dのテーブル300Dは、すべてのカメラが同じパラメータセットを有すると仮定し得るが、ほとんどの場合、これは当てはまり得ない。一般的な事例を反映するために、各カメラは、それ自体のパラメータセットを有し得る。一実施形態では、テーブル300Eは、以下のシンタックス要素、すなわち、
camera_translation_matrix[camIdx][3]:camIdx番目のカメラに関してカメラ平行移動ベクトルを示す、3*32ビットの浮動小数点ベクトル、
camera_rotation_matrix[camIdx][3][3]:camIdx番目のカメラに関してカメラ回転行列を示す、9*32ビットの浮動小数点行列、
camera_focal_length_x[camIdx]:camIdx番目のカメラに関してx方向のカメラ焦点距離を示す、32ビットの浮動小数点数、
camera_focal_length_y[camIdx]:camIdx番目のカメラに関してy方向のカメラ焦点距離を示す、32ビットの浮動小数点数、
camera_principle_point_x[camIdx]:camIdx番目のカメラに関して画像座標におけるカメラ光学中心のx方向オフセットを示す、32ビットの浮動小数点数、
camera_principle_point_y[camIdx]:camIdx番目のカメラに関して画像座標におけるカメラ光学中心のy方向オフセットを示す、32ビットの浮動小数点数、
depth_range_near[camIdx]:camIdx番目のカメラに関して深度画像を量子化するために使用される光学中心に対する最小深度値を示す、32ビットの浮動小数点数、および
depth_range_far[camIdx]:camIdx番目のカメラに関して深度画像を量子化するために使用される光学中心に対する最大深度値を示す、32ビットの浮動小数点数
を含み得る。
【0033】
ここで
図4を参照すると、ビデオコーディングのためのプログラムによって実行される方法400のステップを示す動作フローチャートが示されている。
【0034】
402において、方法400は、1つ以上のビューを含むビデオデータを受信するステップを含み得る。
【0035】
404において、方法400は、受信ビデオデータに基づいて、1つ以上のビューに対応する複合深度画像および複合テクスチャ画像を生成するステップを含み得る。
【0036】
406において、方法400は、生成された複合深度画像および複合テクスチャ画像に基づいてビデオデータをデコーディングするステップを含み得る。
【0037】
図4は、一実施態様の例示のみを提供しており、異なる実施形態がどのように実施され得るかに関していかなる限定も含意しないことが理解され得る。図示された環境に対する多くの修正は、設計および実施要件に基づいて行われ得る。
【0038】
図5は、例示的な実施形態による、
図1に示されているコンピュータの内部構成要素および外部構成要素のブロック
図500である。
図5は、一実施態様の例示のみを提供しており、異なる実施形態が実施され得る環境に関していかる限定も含意しないことを理解されたい。図示された環境に対する多くの修正は、設計および実施要件に基づいて行われ得る。
【0039】
コンピュータ102(
図1)およびサーバコンピュータ114(
図1)は、
図5に示されている内部構成要素800A、800Bおよび外部構成要素900A、900Bのそれぞれのセットを含み得る。内部構成要素800のセットの各々は、1つ以上のバス826上の1つ以上のプロセッサ820、1つ以上のコンピュータ可読RAM822、および1つ以上のコンピュータ可読ROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ可読有形記憶デバイス830とを含む。
【0040】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせで実施される。プロセッサ820は、中央処理装置(CPU:central processing unit)、グラフィック処理装置(GPU:graphics processing unit)、加速処理装置(APU:accelerated processing unit)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP:digital signal processor)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、特定用途向け集積回路(ASIC:application-specific integrated circuit)、または別のタイプの処理構成要素である。一部の実施態様では、プロセッサ820は、機能を実行するようにプログラムされ得る1つ以上のプロセッサを含む。バス826は、内部構成要素800A、800B間の通信を可能にする構成要素を含む。
【0041】
1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、およびサーバコンピュータ114(
図1)上のビデオコーディングプログラム116(
図1)は、それぞれのRAM822(通常はキャッシュメモリを含む)のうちの1つ以上を介してそれぞれのプロセッサ820のうちの1つ以上によって実行するために、それぞれのコンピュータ可読有形記憶デバイス830のうちの1つ以上に記憶される。
図5に示されている実施形態では、コンピュータ可読有形記憶デバイス830の各々は、内蔵ハードドライブの磁気ディスク記憶デバイスである。代替的に、コンピュータ可読有形記憶デバイス830の各々は、ROM824、EPROM、フラッシュメモリなどの半導体記憶デバイス、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD:compact disc)、デジタル多用途ディスク(DVD:digital versatile disc)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、ならびに/またはコンピュータプログラムおよびデジタル情報を記憶し得る別のタイプの非一時的コンピュータ可読有形記憶デバイスである。
【0042】
内部構成要素800A、800Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶デバイスなどの1つ以上のポータブルコンピュータ可読有形記憶デバイス936から読み書きするためのR/Wドライブまたはインターフェース832を含む。ソフトウェアプログラム108(
図1)およびビデオコーディングプログラム116(
図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形記憶デバイス936のうちの1つ以上に記憶され、それぞれのR/Wドライブまたはインターフェース832を介して読み出され、それぞれのハードドライブ830にロードされ得る。
【0043】
内部構成要素800A、800Bの各セットはまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、または3G、4G、もしくは5G無線インターフェースカードまたは他の有線もしくは無線通信リンクなどのネットワークアダプタまたはインターフェース836を含む。ソフトウェアプログラム108(
図1)およびサーバコンピュータ114(
図1)上のビデオコーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、または他のワイドエリアネットワーク)およびそれぞれのネットワークアダプタまたはインターフェース836を介して外部コンピュータからコンピュータ102(
図1)およびサーバコンピュータ114にダウンロードされ得る。ネットワークアダプタまたはインターフェース836から、ソフトウェアプログラム108およびサーバコンピュータ114上のビデオコーディングプログラム116は、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含み得る。
【0044】
外部構成要素900A、900Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934を含み得る。外部構成要素900A、900Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスを含み得る。内部構成要素800A、800Bのセットの各々はまた、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840を含む。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプタまたはインターフェース836は、ハードウェアならびにソフトウェア(記憶デバイス830および/またはROM824に記憶された)を含む。
【0045】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実施態様はクラウドコンピューティング環境に限定されないことが事前に理解される。それどころか、一部の実施形態は、現在知られているまたは後に開発される任意の他のタイプのコンピューティング環境と併せて実施され得る。
【0046】
クラウドコンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含み得る。
【0047】
特性は以下の通りである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングし得る。
広範なネットワークアクセス:機能は、ネットワークを介して利用可能であり、異種のシンまたはシックなクライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソースおよび仮想リソースは、需要に応じて動的に割り当ておよび再割り当てされる。消費者は、一般に、提供されたリソースの正確な位置に対する制御または知識を持たないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を指定することができるという点で、位置独立性の感覚がある。
迅速な柔軟性(elasticity):機能は、素早くスケールアウトするために迅速かつ柔軟に、場合によっては自動的に、プロビジョニングされ、素早くスケールインするために迅速にリリースされ得る。消費者には、プロビジョニングに利用可能な機能は、多くの場合、無制限であるように見え、いつでも任意の量で購入され得る。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブユーザアカウント)に適したある抽象化レベルで計測機能を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用は、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供するように監視、制御、および報告され得る。
【0048】
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを介して様々なクライアントデバイスからアクセス可能である。消費者は、限定されたユーザ固有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能さえも含む基盤となるクラウドインフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基盤となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーションおよび場合によってはアプリケーションホスティング環境構成を制御する。
サービスとしてのインフラストラクチャ(laaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースをプロビジョニングすることであり、消費者は、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行し得る。消費者は、基盤となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および場合によっては選択ネットワーキング構成要素(例えば、ホストファイアウォール)の限定された制御を制御する。
【0049】
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織のためにのみ動作される。それは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。それは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般の市民または大規模な業界グループに利用可能にされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化されたまたは独自の技術によって互いに結び付けられた2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0050】
クラウドコンピューティング環境は、無国籍、低結合、モジュール性、およびセマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0051】
図6を参照すると、例示的なクラウドコンピューティング環境600が示されている。図示のように、クラウドコンピューティング環境600は、例えば携帯情報端末(PDA:personal digital assistant)もしくはセルラー電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/または自動車コンピュータシステム54Nなどの、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る1つ以上のクラウドコンピューティングノード10を含む。クラウドコンピューティングノード10は互いに通信し得る。それらは、上述されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、またはこれらの組み合わせなどの1つ以上のネットワークにおいて、物理的または仮想的にグループ化(図示せず)されてもよい。これは、クラウドコンピューティング環境600が、クラウド消費者がローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとしてのインフラストラクチャ、プラットフォーム、および/またはソフトウェアを提供することを可能にする。
図6に示されているコンピューティングデバイス54A~54Nのタイプは例示にすぎないことが意図されており、クラウドコンピューティングノード10およびクラウドコンピューティング環境600は、任意のタイプのネットワークおよび/またはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを使用する)を介して任意のタイプのコンピュータ化されたデバイスと通信し得ることが理解される。
【0052】
図7を参照すると、クラウドコンピューティング環境600(
図6)によって提供される機能抽象化層700のセットが示されている。
図7に示されている構成要素、層、および機能は例示にすぎないことが意図されており、実施形態はこれに限定されないことを事前に理解されたい。図示のように、以下の層および対応する機能が提供される。
【0053】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、ならびにネットワークおよびネットワーキング構成要素66を含む。一部の実施形態では、ソフトウェア構成要素は、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0054】
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75が提供され得る抽象化層を提供する。
【0055】
一例では、管理層80は、以下で説明される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。計測および価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する請求または請求書発行を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド消費者およびタスクのための識別検証、ならびにデータおよび他のリソースのための保護を提供する。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようにクラウドコンピューティングリソースの割り当ておよび管理を提供する。サービスレベル合意(SLA:Service Level Agreement)の計画および履行85は、将来の要件がSLAに従って予想されるクラウドコンピューティングリソースの事前配置および調達を提供する。
【0056】
作業負荷層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得る作業負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ解析処理94、取引処理95、ならびにビデオコーディング96を含む。ビデオコーディング96は、複数のカメラからのテクスチャ画像および深度画像を配置することに基づいてビデオデータをコーディングし得る。
【0057】
一部の実施形態は、任意の可能な技術的詳細の統合レベルでシステム、方法、および/またはコンピュータ可読媒体に関し得る。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含み得る。
【0058】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下を、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み出し専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み出し専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的にエンコードされたデバイス、および上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0059】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされ得るし、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/もしくは無線ネットワークを介して外部コンピュータもしくは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含み得る。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0060】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、またはSmalltalkもしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行され得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、または(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされてもよい。一部の実施形態では、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA:programmable logic array)を含む電子回路が、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行し得る。
【0061】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作を実施するための手段を作成するように、マシンを生成するために汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示し得るコンピュータ可読記憶媒体に記憶されてもよい。
【0062】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで指定された機能/動作を実施するように、コンピュータ実施プロセスを生成するために一連の動作ステップがコンピュータ、他のプログラマブル装置、または他のデバイス上で実行されるよう、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードされてもよい。
【0063】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。一部の代替的な実施態様では、ブロックに記載された機能は、図に記載されているのとは異なる順序で実行されてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよいし、またはブロックは、関連する機能に応じて、場合によっては逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは動作を実行する、または専用ハードウェアとコンピュータ命令との組み合わせを実現する、専用ハードウェアベースのシステムによって実施され得ることにも留意されたい。
【0064】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実施されてもよいことは明らかであろう。これらのシステムおよび/または方法を実施するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実施するように設計され得ることが理解される。
【0065】
本明細書で使用される要素、動作、または命令は、不可欠なまたは必須のものとして明示的に記載されていない限り、不可欠なまたは必須のものとして解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つ以上のものを含むことを意図されており、「1つ以上」と交換可能に使用され得る。さらに、本明細書で使用される場合、「セット」という用語は、1つ以上のもの(例えば、関連するもの、無関係なもの、関連するものと無関係なものとの組み合わせなど)を含むことを意図されており、「1つ以上」と交換可能に使用され得る。1つのもののみが意図される場合、「1つ」という用語または同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、または「有する(having)」などの用語は、オープンエンドの用語であることが意図されている。さらに、「に基づいて」という句は、特に明記しない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。
【0066】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図されていない。特徴の組み合わせが特許請求の範囲に記載され、および/または本明細書に開示されているが、これらの組み合わせは、可能な実施態様の開示を限定することを意図されていない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙されている各従属請求項は1つの請求項のみに直接従属し得るが、可能な実施態様の開示は、請求項セット内の他のすべての請求項との組み合わせにおいて各従属請求項を含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者に明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示されている実施形態を理解することを可能にするために選択された。
【符号の説明】
【0067】
10 クラウドコンピューティングノード
54A 携帯情報端末、セルラー電話、コンピューティングデバイス
54B デスクトップコンピュータ、コンピューティングデバイス
54C ラップトップコンピュータ、コンピューティングデバイス
54N 自動車コンピュータシステム、コンピューティングデバイス
60 ハードウェアおよびソフトウェア層
61 メインフレーム
62 RISCアーキテクチャベースのサーバ
63 サーバ
64 ブレードサーバ
65 記憶デバイス
66 ネットワークおよびネットワーキング構成要素
67 ネットワークアプリケーションサーバソフトウェア
68 データベースソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 仮想アプリケーションおよびオペレーティングシステム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 計測および価格設定
83 ユーザポータル
84 サービスレベル管理
85 サービスレベル合意(SLA)の計画および履行
90 作業負荷層
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想教室教育配信
94 データ解析処理
95 取引処理
96 ビデオコーディング
100 ビデオコーディングシステム
102 コンピュータ
104 プロセッサ
106 データ記憶デバイス
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバコンピュータ
116 ビデオコーディングプログラム
200A VRU 6DoFビデオのためのシステム
200B スティッチングレイアウト
200C スティッチングレイアウト
200D スティッチングレイアウト
200E スティッチングレイアウト
200F スティッチングレイアウト
200G スティッチングレイアウト
200H スティッチングレイアウト
200I スティッチングレイアウト
202 エンコーダ/デコーダ
204 ビデオ合成器
206 テクスチャ画像
208 深度画像
210 複合ピクチャ
212 メタデータ
300A テーブル
300B テーブル
300C テーブル
300D テーブル
300E テーブル
500 ブロック図
600 クラウドコンピューティング環境
700 機能抽象化層
800 内部構成要素
800A 内部構成要素
800B 内部構成要素
820 プロセッサ
822 コンピュータ可読RAM
824 コンピュータ可読ROM
826 バス
828 オペレーティングシステム
830 コンピュータ可読有形記憶デバイス、ハードドライブ
832 R/Wドライブまたはインターフェース
836 ネットワークアダプタまたはインターフェース
840 デバイスドライバ
900A 外部構成要素
900B 外部構成要素
920 コンピュータディスプレイモニタ
930 キーボード
934 コンピュータマウス
936 ポータブルコンピュータ可読有形記憶デバイス