(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-13
(45)【発行日】2024-03-22
(54)【発明の名称】ビデオコーディングの方法、コンピュータシステム、及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/593 20140101AFI20240314BHJP
H04N 19/105 20140101ALI20240314BHJP
H04N 19/139 20140101ALI20240314BHJP
H04N 19/157 20140101ALI20240314BHJP
H04N 19/176 20140101ALI20240314BHJP
【FI】
H04N19/593
H04N19/105
H04N19/139
H04N19/157
H04N19/176
(21)【出願番号】P 2022527930
(86)(22)【出願日】2021-04-28
(86)【国際出願番号】 US2021029648
(87)【国際公開番号】W WO2021252093
(87)【国際公開日】2021-12-16
【審査請求日】2022-05-13
(32)【優先日】2020-06-11
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-04-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュ,シャオジョォン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2020/058893(WO,A1)
【文献】国際公開第2015/052273(WO,A1)
【文献】Xiaozhong Xu et al.,CE8-related: CPR mode with merge mode improvements [online],JVET-L0299-v1,インターネット <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0299-v1.zip>,2018年09月25日
【文献】Liping Zhao et al.,A Universal String Matching Approach to Screen Content Coding [online],Published in: IEEE Transactions on Multimedia ( Volume: 20 , Issue: 4, April 2018),2017年10月02日,pp.796-809,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8054725>,DOI: 10.1109/TMM.2017.2758519
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/593
H04N 19/105
H04N 19/139
H04N 19/157
H04N 19/176
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行される、ビデオコーディングの方法であって、
1つ以上のブロックを含むビデオデータを受け取るステップと、
前記1つ以上のブロックの中のイントラブロックコピーモードでコーディングされた現在のブロックのブロックベクトル又は前記1つ以上のブロックの中のストリングマッチングモードでコーディングされた現在のブロックのストリングオフセットベクトルを予測するステップであり、前記イントラブロックコピーモードでコーディングされた現在のブロックのブロックベクトルは、前記1つ以上のブロックの中のイントラブロックコピーモードで又はイントラブロックコピーモード
若しくはストリングマッチングモードのいずれかでコーディングされた空間非隣接ブロックを候補として、あるいは、前記1つ以上のブロックの中のストリングマッチングモードコーディングされた空間隣接ブロック及び空間非隣接ブロックの両方を候補として予測され、前記ストリングマッチングモードでコーディングされた現在のブロックのストリングオフセットベクトルは、前記1つ以上のブロックの中のイントラブロックコピーモード又はストリングマッチングモードのいずれかでコーディングされた空間隣接ブロック若しくは空間非隣接ブロック又はそれら両方を候補として予測される、前記予測するステップと、
前記現在のブロックの前記予測されたブロックベクトル又はストリングオフセットベクトルに基づいて前記ビデオデータを復号するステップと
を有する方法。
【請求項2】
前記ブロックベクトル又は前記ストリングオフセットベクトルを予測するための空間候補は、ブロックベクトル又はストリングオフセットベクトル予測子リスト内の履歴ベースのブロックベクトル又はストリングオフセットベクトル候補に基づく、
請求項1に記載の方法。
【請求項3】
クラスベースの予測が使用されていることに基づいて、空間隣接又は非隣接ブロック、位置情報、及びサイズ情報が、前記予測子リストに加えられる、
請求項2に記載の方法。
【請求項4】
ビデオコーディングのためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するよう構成される1つ以上のコンピュータ可読非一時記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって指示されるように動作するよう構成される1つ以上のコンピュータプロセッサと
を有し、
前記コンピュータプログラムコードは、前記1つ以上のコンピュータプロセッサによって実行される場合に、前記1つ以上のコンピュータプロセッサに、請求項1乃至3のうちいずれか一項に記載の方法を実行させる、
コンピュータシステム。
【請求項5】
ビデオコーディングのためのコンピュータプログラムであって、
1つ以上のコンピュータプロセッサによって実行される場合に、前記1つ以上のコンピュータプロセッサに、請求項1乃至3のうちいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項6】
プロセッサによって実行される、ビデオコーディングの方法であって、
1つ以上のブロックを含むビデオデータを受け取るステップと、
前記1つ以上のブロックの中のイントラブロックコピーモードでコーディングされた現在のブロックのブロックベクトル又は前記1つ以上のブロックの中のストリングマッチングモードでコーディングされた現在のブロックのストリングオフセットベクトルを予測するステップであり、前記イントラブロックコピーモードでコーディングされた現在のブロックのブロックベクトルは、前記1つ以上のブロックの中のイントラブロックコピーモードで又はイントラブロックコピーモード
若しくはストリングマッチングモードのいずれかでコーディングされた空間非隣接ブロックを候補として、あるいは、前記1つ以上のブロックの中のストリングマッチングモードコーディングされた空間隣接ブロック及び空間非隣接ブロックの両方を候補として予測され、前記ストリングマッチングモードでコーディングされた現在のブロックのストリングオフセットベクトルは、前記1つ以上のブロックの中のイントラブロックコピーモード又はストリングマッチングモードのいずれかでコーディングされた空間隣接ブロック若しくは空間非隣接ブロック又はそれら両方を候補として予測される、前記予測するステップと、
前記現在のブロックの前記予測されたブロックベクトル又はストリングオフセットベクトルに基づいて前記ビデオデータを符号化するステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年6月11日付けで出願された米国特許仮出願第63/038,020号に基づく優先権を主張して2021年4月26日付けで出願された米国特許出願第17/240,567号の優先権の利益を主張するものである。上記の出願の開示全体は、その全文を参照により本願に援用される。
【0002】
[分野]
本開示は、データ処理の分野に概して関係があり、より具体的には、ビデオ符号化及び復号化に関係がある。
【背景技術】
【0003】
異なるピクチャからのブロックベースの補償は、動き補償としても知られている。同様に、ブロック補償は、同じピクチャ内の前に再構成されたエリアからも行われ得る。これは、イントラピクチャ補償、現在ピクチャ参照(current picture referencing)(略してCPR)、又はイントラブロックコピー(intra block copy)(略してIBC)と呼ばれている。
【発明の概要】
【0004】
実施形態は、ビデオコーディングのための方法、システム、及びコンピュータ可読媒体に関係がある。1つの態様に従って、ビデオコーディングの方法が提供される。方法は、1つ以上のブロックを含むビデオデータを受け取ることを含み得る。イントラブロックコピーモードでコーディングされた現在のブロックは、1つ以上のブロックの中の1つ以上の空間隣接ブロック又は空間非隣接ブロックに対応するコーディングされたブロックベクトル又はストリングオフセットベクトルに基づいて、1つ以上のブロックの中から予測される。ビデオデータは、予測された現在のブロックに基づき復号される。
【0005】
他の態様に従って、ビデオコーディングのためのコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読メモリと、1つ以上のコンピュータ可読有形記憶デバイスと、1つ以上のメモリのうちの少なくとも1つを介した1つ以上のプロセッサのうちの少なくとも1つによる実行のために1つ以上の記憶デバイスのうちの少なくとも1つに記憶されているプログラム命令とを含んでよく、これによって、システムは、方法を実行することが可能である。方法は、1つ以上のブロックを含むビデオデータを受け取ることを含み得る。イントラブロックコピーモードでコーディングされた現在のブロックは、1つ以上のブロックの中の1つ以上の空間隣接ブロック又は空間非隣接ブロックに対応するコーディングされたブロックベクトル又はストリングオフセットベクトルに基づいて、1つ以上のブロックの中から予測される。ビデオデータは、予測された現在のブロックに基づき復号される。
【0006】
更なる他の態様に従って、ビデオコーディングのためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ以上のコンピュータ可読記憶デバイスと、1つ以上の有形記憶デバイスのうちの少なくとも1つに記憶されているプログラム命令とを含んでよく、プログラム命令は、プロセッサによって実行可能である。プログラム命令は、1つ以上のブロックを含むビデオデータを受け取ることを適宜含み得る方法を実行するようプロセッサによって実行される。イントラブロックコピーモードでコーディングされた現在のブロックは、1つ以上のブロックの中の1つ以上の空間隣接ブロック又は空間非隣接ブロックに対応するコーディングされたブロックベクトル又はストリングオフセットベクトルに基づいて、1つ以上のブロックの中から予測される。ビデオデータは、予測された現在のブロックに基づき復号される。
【0007】
これら及び他の目的、特徴及び利点は、添付の図面とともに読まれるべきである例示的な実施形態の以下の詳細な説明から明らかになる。図面の様々な特徴は実寸通りではない。これは、例示が、詳細な説明と併せて当業者の理解をようにするためのものであるからである。
【図面の簡単な説明】
【0008】
【
図1】少なくとも1つの実施形態に従うネットワーク化されたコンピュータ環境を表す。
【
図2A】少なくとも1つの実施形態に従って、ピクチャにおけるイントラブロックコピーを表すブロック図である。
【
図2B】少なくとも1つの実施形態に従って、1つのコーディングツリーユニット(CTU)探索範囲によるイントラブロック補償のブロック図である。
【
図2C】少なくとも1つの実施形態に従って、HEVC/VVC空間マージ候補のブロック図である。
【
図2D】少なくとも1つの実施形態に従って、空間ブロックのブロック図である。
【
図3】少なくとも1つの実施形態に従って、空間変位ブロックに基づいてビデオデータを符号化及び復号するプログラムによって実行されるステップを表す動作フローチャートである。
【
図4】少なくとも1つの実施形態に従って、
図1に表されているコンピュータ及びサーバの内部及び外部コンポーネントのブロック図である。
【
図5】少なくとも1つの実施形態に従って、
図1に表されているコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも1つの実施形態に従って、
図5の例示的なクラウドコンピューティング環境の機能レイヤのブロック図である。
【発明を実施するための形態】
【0009】
請求されている構造及び方法の詳細な実施形態が本明細書で開示されるが、開示されている実施形態は、様々な形態で具現され得る請求されている構造及び方法の実例にすぎないことが理解され得る。これらの構造及び方法は、しかしながら、多種多様な形態で具現されてもよく、本明細書で示されている例示的な実施形態に限定されるものとして解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が完ぺきかつ完全であり、当業者に十分に範囲を伝えるように、与えられている。明細書中、よく知られている特徴及び技術の詳細は、提示されている実施形態を不必要に不明りょうにすることを回避するよう、省略されることがある。
【0010】
実施形態は、データ処理の分野に概して関係があり、より具体的には、ビデオ符号化及び復号化に関係がある。以下で記載される例示的な実施形態は、とりわけ、空間変位ベクトルに基づきビデオデータを符号化及び復号するシステム、方法及びコンピュータプログラムを提供する。従って、いくつかの実施形態は、ビデオデータ内の現在のブロックに対する空間隣接ブロック及び空間非隣接ブロックの両方の使用に基づいた改善されたビデオコーディングを可能にすることによって、コンピューティングの分野を改善する能力を備えている。
【0011】
上述されたように、異なるピクチャからのブロックベースの補償は、動き補償としても知られている。同様に、ブロック補償は、同じピクチャ内の前に再構成されたエリアからも行われ得る。これは、イントラピクチャブロック補償、現在ピクチャ参照(略してCPR)、又はイントラブロックコピー(略してIBC)と呼ばれる。しかし、現在VVCでは、CPRモードの探索範囲は、現在のCTU内にあるよう制約されている。CPRモードのための参照サンプルを記憶するための有効なメモリ要件は、サンプルの1CTUサイズである。再構成されたサンプルを現在の64×64領域に記憶する既存の参照サンプルメモリを考えると、更に3つの64×64サイズの参照サンプルメモリが必要とされる。従って、参照ピクセルを記憶するための全体のメモリ要件は変更されないままで、CPRモードの有効探索範囲を左CTUのいくらかの部分に拡張することが有利であり得る。
【0012】
本明細書では、様々な実施形態に従う方法、装置(システム)及びコンピュータ可読媒体のフローチャート図及び/又はブロック図を参照して、態様が記載される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装可能であることが理解されるだろう。
【0013】
以下に記載されている例示的な実施形態は、空間変位ベクトルに基づきビデオデータを符号化及び復号するシステム、方法及びコンピュータプログラムを提供する。これより
図1を参照すると、ネットワーク化されたコンピュータ環境の機能ブロック図は、空間変位ベクトルに基づきビデオデータを符号化及び復号するビデオコーディングシステム100(以降「システム」)を表す。
図1は、一実施の単なる例示を与えるものであり、種々の実施形態が実装される可能性がある環境に関する如何なる限定も示すものではないことが理解されるべきである。表されている環境に対する多くの変更は、設計及び実装要件に基づき行われてもよい。
【0014】
システム100は、コンピュータ102及びサーバコンピュータ114を含み得る。コンピュータ102は、通信ネットワーク110(以降「ネットワーク」)を介してサーバコンピュータ114と通信し得る。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶されており、ユーザと対話すること及びサーバコンピュータ114と通信することができるソフトウェアプログラム108とを含み得る。
図4を参照して以下で論じられるように、コンピュータ102は、内部コンポーネント800A及び外部コンポーネント900Aを夫々含んでよく、サーバコンピュータ114は、内部コンポーネント800B及び外部コンポーネント900Bを夫々含んでよい。コンピュータ102は、例えば、モバイルデバイス、電話機、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムの実行、ネットワークへのアクセス、及びデータベースへのアクセスが可能なあらゆる種類のコンピューティングデバイスであってもよい。
【0015】
サーバコンピュータ114はまた、
図5及び
図6に関して以下で論じられるように、Software as a Service(SaaS)、Platform as a Service(PaaS)、又はInfrastructure as a Service(IaaS)などのクラウドコンピューティングサービスモデルで動作してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウドなどのクラウドコンピューティングデプロイメントモデルに位置してもよい。
【0016】
サーバコンピュータ114は、ビデオコーディングのために使用されてもよく、データベース112と相互作用し得るビデオコーディングプログラム116(以降「プログラム」)を実行することができる。ビデオコーディングプログラム方法は、
図3に関して以下で更に詳細に説明される。一実施形態において、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作してもよく、一方、プログラム116は、主にサーバコンピュータ114で実行されてよい。代替の実施形態では、プログラム116は、主に1つ以上のコンピュータ102で実行されてもよく、一方、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及び記憶のために使用されてよい。プログラム116は、スタンドアロンのプログラムであってよく、あるいは、より大きいビデオコーディングプログラムに組み込まれてもよいことが留意されるべきである。
【0017】
しかしながら、プログラム116の処理は、いくつかの事例では、コンピュータ102とサーバコンピュータ114との間で如何なる比率でも共有されてよいことが留意されるべきである。他の実施形態では、プログラム116は、1つよりも多いコンピュータ、サーバコンピュータ、又はコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102、で動作してもよい。他の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114で動作してもよい。代替的に、プログラムは、ネットワークを介してサーバ及び複数のクライアントコンピュータと通信するネットワークサーバで動作してもよい。
【0018】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、又はそれらの何らかの組み合わせを含んでよい。一般的に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続及びプロトコルの如何なる組み合わせでもあることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(Public Switched Telephone Network,PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多重アクセス(CDMA)ネットワーク、など)、公衆陸上移動体通信網(public land mobile network,PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバに基づいたネットワーク、など、及び/又はこれらの若しくは他のタイプのネットワークの組み合わせなどの様々なタイプのネットワークを含んでよい。
【0019】
図1に示されるデバイス及びネットワークの数及び配置は、例として与えられている。実際には、
図1に示されるものと比べて、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは、異なるように配置されたデバイス及び/又はネットワークが存在してもよい。更に、
図1に示される2つ以上のデバイスは、単一のデバイス内に実装されてもよく、あるいは、
図1に示される単一のデバイスは、分散された複数のデバイスとして実装されてもよい。追加的に、又は代替的に、システム100のデバイス(例えば、1つ以上のデバイス)の組は、システム100のデバイスの他の組によって実行されるものとして記載される1つ以上の機能を実行してもよい。
【0020】
これより
図2Aを参照すると、ピクチャ200A内のイントラブロックコピーを表すブロック図が示されている。ピクチャ200Aは、現在のブロック202A、参照ブロック202B、及びブロックベクトルBVを含み得る。ブロックベクトルBVは、現在のブロック202Aと参照ブロック202Bとの間のオフセットを示し得る変位ベクトルであってよい。如何なる値にあることもできる(x又はyのどちらか一方で、正又は負)、動き補償における動きベクトルとは異なり、ブロックベクトルBVは、指し示されている参照ブロック202Bが利用可能であって、既に再構成されていることが保証されるように、いくつかの制約を有している。また、並列処理を考慮して、タイル境界又は波面ラダー形状境界である参照エリアも除外される。
【0021】
ブロックベクトルのコーディングは、明示的又は暗黙的のいずれかであり得る。明示的モード(又はインターコーディングではAMVPモードと呼ばれる。)では、ブロックベクトルとその予測子との間の差は、暗黙的モードで通知され、ブロックベクトルは、マージモードでの動きベクトルと同様に、その予測子からのみ回復される。ブロックベクトルの分解能は、いくつかの実施では、整数位置に制限され、他のシステムでは、分数位置を指し示すことが許される場合がある。
【0022】
ブロックレベルでのイントラブロックコピーの使用は、IBCフラグと呼ばれるブロックレベルフラグを用いて通知され得る。一実施形態において、このフラグは、現在のブロック202Aがマージモードでコーディングされない場合に通知される。あるいは、それは、参照インデックスアプローチによって通知され得る。これは、現在の復号化されたピクチャを参照ピクチャとして扱うことによって行われる。HEVC SCCでは、そのような参照ピクチャは、リストの最後の位置に置かれる。この特別な参照ピクチャはまた、DPB内の他の一時参照ピクチャとともにマージされる。
【0023】
イントラブロックコピーには、イントラ予測モード又はインター予測モードとは異なる第3モードとしてイントラブロックコピーを扱うことなどの、いくつかのバリエーションもある。これを行うことによって、マージモード及びAMVPモードにおけるブロックベクトル予測は、通常のインターモード(regular inter mode)から分離される。例えば、別個のマージ候補リストがイントラブロックコピーモードのために定義される。リスト内の全てのエントリは全てブロックベクトルである。同様に、イントラブロックコピーAMVPモードにおけるブロックベクトル予測リストは、ブロックベクトルのみで構成される。両方のリストに適用される一般規則は、次の通りである:それらは、候補導出プロセスに関してインターマージ候補リスト又はAMVP予測子リストと同じロジックに従い得る。例えば、HEVC又はVVCインターマージにおける5つの空間隣接位置が、それ自体のマージ候補リストを導出するようイントラブロックコピーのためにアクセスされ得る。
【0024】
これより
図2Bを参照すると、1つのコーディングツリーユニット(CTU)探索範囲によるイントラブロック補償のブロック
図200Bが表されている。探索は、段階204A~Dを経て進行し得る。現在VVCでは、CPRモードの探索範囲は、現在のCTU内にあるよう制約される。CPRモードのための参照サンプルを記憶するための有効なメモリ要件は、サンプルの1CTUサイズである。再構成されたサンプルを現在の64×64領域Cに記憶する既存の参照サンプルメモリを考えると、更に3つの64×64サイズの参照サンプルSが使用され得る。従って、参照ピクセルを記憶するための全体のメモリ要件は変更されないままで(1CTUサイズ、全部で4つの64×64参照サンプルメモリ)、CPRモードの有効探索範囲が左CTUのいくらかの部分に拡張され得る。有効なブロックベクトル(1/16-pel分解能で、mvL)が従うべきであるビットストリームコンフォーマンス条件は、次の通りにリストアップされる。例えば、ルーマ動きベクトルmvLは、1つ以上の制約に従い得る。
【0025】
A1:隣接ブロック利用可能性確認プロセスで指定されるブロック利用可能性の導出プロセスが、(xCb,yCb)に等しくセットされた現在ルーマ位置(xCurr,yCurr)及び隣接ルーマ位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))を入力として用いて呼び出され、出力が真(TRUE)に等しくなるべきである場合。
【0026】
A2:隣接ブロック利用可能性確認プロセスで指定されるブロック利用可能性の導出プロセスが、(xCb,yCb)に等しくセットされた現在ルーマ位置(xCurr,yCurr)及び隣接ルーマ位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)を入力として用いて呼び出され、出力が真に等しくなるべきである場合。
【0027】
B1:次の条件の一方又は両方が真でなければならない。(mvL[0]>>4)+cbWidthの値は0以下である。(mvL[1]>>4)+cbHeightの値は0以下である。
【0028】
C1:次の条件が真でなければならない:
(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY
(yCb+(mvL[1]>>4)+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2SizeY
(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1
(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY)
【0029】
C2:(xCb+(mvL[0]>>4))>>CtbLog2SizeYが(xCb>>CtbLog2SizeY)-1に等しく、隣接ブロック利用可能性確認プロセスで指定されるブロック利用可能性の導出プロセスが、(xCb,yCb)に等しくセットされた現在ルーマ位置(xCurr,yCurr)及び隣接ルーマ位置(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))を入力として用いて呼び出され、出力が偽(FALSE)に等しくなるべきである場合。
【0030】
これより
図2Cを参照すると、HEVC/VVC空間マージ候補のブロック
図200Cが表されている。HEVC及びVVCのための5つのマージ候補は、A0、A1、B0、B1、及びB2を含み得る。これらの位置から候補リストを形成する順序は、A0→B0→B1→A1→B2であってよい。
【0031】
履歴ベース(history-based)MVP(HMVP)マージ候補は、空間MVP及びTMVPの後にマージリストに加えられる。この方法では、前にコーディングされたブロックの動き情報がテーブルに記憶され、現在のCUのためのMVPとして使用される。複数のHMVP候補を含むテーブルは、符号化/復号化プロセス中に維持される。テーブルは、新しいCTU行に遭遇するとリセットされる(空にされる)。サブブロックインターコーディングされていないCUがあるときはいつでも、関連する動き情報が、新しいHMVP候補としてテーブルの最後のエントリに加えられる。
【0032】
VTM3では、HMVPテーブルサイズSは、6であるようセットされる。これは、最大6つの履歴ベースのMVP(HMVP)候補がテーブルに加えられ得ることを示す。新しい動き候補をテーブルに挿入する場合に、制約された先入れ先出し(first-in-first-out,FIFO)規則が利用され、冗長性検査が最初に適用され、テーブル内に同じHMVPがあるかどうかが見つけられる。見つけられた場合には、同じHMVPがテーブルから除かれ、その後に、全てのHMVP候補が前方に移動される。
【0033】
HMVP候補は、マージ候補リスト構成プロセスで使用され得る。テーブル内の最新のいくつかのHMVP候補が順にチェックされ、TMVP候補の後に候補リストに挿入される。冗長性検査は、HMVP候補から空間又は時間マージ候補に適用される。
【0034】
冗長性検査動作の数を減らすために、1つ以上の単純化が導入される。多数のHMVP候補が、マージリスト生成のために使用され、(N<=4)?M:(8-N)とセットされる。Nは、マージリスト内の既存の候補の数を示し、Mは、テーブル内の利用可能なHMVP候補の数を示す。利用可能なマージ候補の総数が最大許容マージ候補から1をマイナスした数に達すると、HMVPからのマージ候補リスト構成プロセスは終了する。
【0035】
イントラブロックコピーがインターモードとは別のモードとして動作する場合に、HBVPと呼ばれる別の履歴バッファが、前にコーディングされたイントラブロックコピーのブロックベクトルを記憶するために使用される。
【0036】
インター予測とは別のモードとして、イントラブロックコピーモードのための単純化されたブロックベクトル導出プロセスを有することが望ましい。類似した、履歴ベースのブロックベクトル予測子バッファが、BV予測を実行するために使用され得る。以下では、ある情報が、そのようなHBVPのある具体的な利用のために供給される。
【0037】
HBVPバッファは、ブロックサイズ、ブロック位置、などのようなその他のサイド情報を含む、前にIBCコーディングされたブロックのBV情報を記録するよう構成される。
【0038】
記録された情報に基づき、夫々の現在のブロックについて、次の条件を満足するHBVP内のBVは、対応するカテゴリに分類される:
クラス0:コーディングされたブロックの面積(幅×高さ)が、閾値(64ピクセル)以上である;
クラス1:BVの周波数が2以上である;
クラス2:コーディングされたブロック座標(左上隅)が、現在のブロックの左にある;
クラス3:コーディングされたブロック座標(左上隅)が、現在のブロックの上にある。
クラス4:コーディングされたブロック座標(左上隅)が、現在のブロックの左上側にある;
クラス5:コーディングされたブロック座標(左上隅)が、現在のブロックの右上側にある;
クラス6:コーディングされたブロック座標(左上隅)が、現在のブロックの左下側にある。
【0039】
夫々のカテゴリについて、最も最近にコーディングされたブロックBVは、BV予測子候補として導出される。CBVPリストは、0から6までの順に各カテゴリのBV予測子を追加することによって構成される。
【0040】
コーディングされたブロックは、いくつかの連続したストリングに分けられ得る。ストリングの夫々は、走査順に沿って次のストリングが後に続く。走査順は、ラスタ走査又はトラバース走査であることができる。夫々のストリングについて、ストリングオフセットベクトル(string offset vector,SV)及びストリングの長さが通知される。SVは、参照ストリングが参照エリア内のどこからであるかを示すために使用される。長さは、現在のストリング/参照ストリングがどれくらい長いかを示すために使用される。現在のブロック内のサンプルが参照エリア内でその一致を見つけることができない場合には、エスケープ(escape)サンプルが通知され、その値は直接にコーディングされる。
【0041】
これより
図2Dを参照すると、空間ブロックのブロック
図200Dが表されている。空間ブロックは、空間隣接ブロックA0~E0と、空間非隣接ブロックA1~E1、A2~E2、及びA3~E3を含み得る。ベクトル予測は、IBCモードのためのブロックベクトル予測及びストリングマッチングモードのためのSV予測の両方を含み、予測は、スキップモード、ダイレクト/マージモード、又は差分コーディングによるベクトル予測を参照することができる。空間隣接ブロックA0~E0は、現在のブロックの次にある既にコーディングされたブロックを指し得る。現在のブロックに対する上行又は左列に沿った他の位置も、空間隣接位置と見なされてよい。空間非隣接ブロックA1~E1、A2~E2、及びA3~E3は、対照的に、空間隣接ブロックではない前にコーディングされたブロックを指す(それらは、現在のブロックに対して上行又は左列に沿って見つけられ得る。)。
【0042】
1つ以上の実施形態に従って、空間隣接ブロック又は空間非隣接ブロックにおけるコーディングされたBV又はSVは、IBCモードでコーディングされた現在のブロックを予測するために使用され得る。一実施形態において、IBCモード又はストリングマッチングモードのいずれかでコーディングされた空間非隣接ブロックのみが、IBCモードでコーディングされた現在のブロックのBVを予測するための候補と見なされる。他の実施形態では、IBCモードでコーディングされた空間非隣接ブロックのみが、IBCモードでコーディングされた現在のブロックのBVを予測するための候補と見なされる。ストリングマッチングモードでコーディングされた空間隣接ブロック及び空間非隣接ブロックの両方が、IBCモードでコーディングされた現在のブロックのBVを予測するための候補と見なされる。
【0043】
1つ以上の実施形態に従って、空間隣接ブロック又は空間非隣接ブロックにおけるコーディングされたBV又はSVは、ストリングマッチングモードでコーディングされた現在のブロックを予測するために使用され得る。一実施形態において、IBCモード又はストリングマッチングモードのいずれかでコーディングされた空間非隣接ブロックのみが、ストリングマッチングモードでコーディングされた現在のブロックのSVを予測するための候補と見なされる。他の実施形態では、IBCモード又はストリングマッチングモードのいずれかでコーディングされた空間隣接ブロックが、ストリングマッチングモードでコーディングされた現在のブロックのSVを予測するための候補と見なされる。他の実施形態では、IBCモード又はストリングマッチングモードのいずれかでコーディングされた空間隣接ブロック及び空間非隣接ブロックの両方が、ストリングマッチングモードでコーディングされた現在のブロックのSVを予測するための候補と見なされる。
【0044】
1つ以上の実施形態に従って、BV又はSV予測のための上記の空間候補は、BV又はSV予測子リスト内の履歴ベースのBV又はSV候補の前に置かれ得る。あるいは、BV又はSV予測のための上記の空間候補は、BV又はSV予測子リスト内の履歴ベースのBV又はSV候補の後に置かれ得る。クラスベースの予測が使用される場合に、導入部分で述べられたように、空間隣接ブロック又は空間非隣接ブロックをリストに入れることは、候補に関連付けられた位置及びサイズの情報を必要とし得る。情報を用いて、新しい空間候補を予測子の正しいクラスに置くことができる。従って、情報は、BV又はSV情報に加えて、空間隣接ブロック又は空間非隣接ブロックの夫々を記憶するためにも必要とされる。
【0045】
1つ以上の実施形態に従って、いくつかの空間候補を予測リストに入れるときに、指定された空間位置にアクセスするために、ある順序に従う。例えば、空間非隣接ブロックのみを用いてストリングマッチングモードでSVを予測することが考えられる。次いで、位置A1、B1、C1、D1、E1が順にアクセスされ得る。ブロックの1つがIBC又はストリングマッチングモードのいずれかでコーディングされる場合には、そのブロックに関連したベクトル(BV又はSV)が、現在のブロックにおいてSVを予測するために使用され得る。同様の例は、IBCコーディングされた現在のブロックにおけるBVの予測のために導出され得る。
【0046】
これより
図3を参照すると、空間変位ベクトルに基づきビデオデータを符号化及び復号するプログラムによって実行される方法300のステップを表す動作フローチャートが、表されている。
【0047】
302で、方法300は、1つ以上のブロックを含むビデオデータを受け取ることを含んでよい。
【0048】
304で、方法300は、1つ以上のブロックの中の1つ以上の空間隣接ブロック又は空間非隣接ブロックに対応するコーディングされたブロックベクトル又はストリングオフセットベクトルに基づいて、1つ以上のブロックの中の、イントラブロックコピーモード又はストリングマッチングモードでコーディングされた現在のブロックの変位ベクトルを予測することを含んでよい。
【0049】
306で、方法300は、現在のブロックの予測された変位ベクトルに基づきビデオデコーダを復号することを含んでよい。
【0050】
図3は、一実施の単なる実例を提供するものであって、異なる実施形態がどのように実装され得るかに関して如何なる元も暗示しないことが認識され得る。表されている環境に対する多くの変更は、設計及び実装要件に基づき行われてよい。
【0051】
図4は、実例となる実施形態に従って
図1に表されているコンピュータの内部及び外部コンポーネントのブロック
図400である。
図4は、一実施の単なる実例を提供するものであって、種々の実施形態が実装され得る環境に関して如何なる元も暗示しないことが理解されるべきである。表されている環境に対する多くの変更は、設計及び実装要件に基づき行われてよい。
【0052】
コンピュータ102(
図1)及びサーバコンピュータ114(
図1)は、
図4に表されている内部コンポーネント800A、B及び外部コンポーネント900A、Bの各々の組を含み得る。内部コンポーネント800の組の夫々は、1つ以上のバス826上にある1つ以上のプロセッサ820、1つ以上のコンピュータ読み出し可能なRAM822、及び1つ以上のコンピュータ読み出し可能なROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ可読有形記憶デバイス830とを含む。
【0053】
プロセッサ820は、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ820は、中央演算処理装置(CPU)、グラフィクス・プロセッシング・ユニット(GPU)、アクセラレーテッド・プロセッシング・ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他のタイプのプロセッシングコンポーネントである。いくつかの実施において、プロセッサ820は、機能を実行するようプログラミングされることが可能な1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、Bの中で通信を可能にするコンポーネントを含む。
【0054】
サーバコンピュータ114(
図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、及びビデオコーディングプログラム116(
図1)は、各々のRAM822(通常はキャッシュメモリを含む。)の1つ以上を介した各々のプロセッサ820の1つ以上による実行のために各々のコンピュータ可読有形記憶デバイス830の1つ以上に記憶される。
図4に表されている実施形態では、コンピュータ可読有形記憶デバイス830の夫々は、内蔵ハードドライブの磁気ディスク記憶デバイスである。代替的に、コンピュータ可読有形記憶デバイス830の夫々は、ROM824のような半導体記憶デバイス、EPROM、フラッシュメモリ、光ディスク、光学磁気ディスク、固体状態ディスク、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、及び/又はコンピュータプログラム及びデジタル情報を記憶することができる他のタイプの非一時的なコンピュータ可読有形記憶デバイスである。
【0055】
内部コンポーネント800A、Bの各組はまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶デバイスなどの1つ以上の、持ち運び可能な、コンピュータ可読有形記憶デバイス936に対して読み書きを行うためのR/Wドライブ又はインターフェース832も含む。ソフトウェアプログラム108(
図1)及びビデオコーディングプログラム116(
図1)のようなソフトウェアプログラムは、各々の持ち運び可能なコンピュータ可読有形記憶デバイス936の1つ以上に記憶され、各々のR/Wドライブ又はインターフェース832により読み出され、各々のハードドライブ830にロードされ得る。
【0056】
内部コンポーネント800A、Bの各組はまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、又は3G、4G若しくは5G無線インターフェースカード、あるいは、他の有線又は無線通信リンクなどのネットワークアダプタ又はインターフェース836も含む。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)及びビデオコーディングプログラム116(
図1)は、外部コンピュータからネットワーク(例えば、インターネット、ローカルエリアネットワーク、又はワイドエリアネットワーク)及び各々のネットワークアダプタ又はインターフェース836を経由してコンピュータ102(
図1)及びサーバコンピュータ114(
図1)にダウンロードされ得る。ネットワークアダプタ又はインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108及びビデオコーディングプログラム116は、各々のハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを有してもよい。
【0057】
外部コンポーネント900A、Bの組の夫々は、コンピュータ表示モニタ920、キーボード930、及びコンピュータマウス934を含むことができる。外部コンポーネント900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、及び他のヒューマンインターフェースデバイスを含むこともできる。内部コンポーネント800A、Bの組の夫々はまた、コンピュータ表示モニタ920、キーボード930、及びコンピュータマウス934へインターフェース接続するためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブ又はインターフェース832、及びネットワークアダプタ又はインターフェース836は、ハードウェア及びソフトウェア(記憶デバイス830及び/又はROM824に記憶される。)を有する。
【0058】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書で説明されている教示の実施はクラウドコンピューティング環境に限られないことが事前に理解される。むしろ、いくつかの実施形態は、現在知られているか又は後に開発されるあらゆる他のタイプのコンピューティング環境とともに実装可能である。
【0059】
クラウドコンピューティングは、管理労力やサービスのプロバイダとのインタラクションが最小限でありながら迅速にプロビジョニング及びリリースすることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワークバンド幅、サーバ、プロセッシング、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの都合の良いオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデルを含み得る。
【0060】
特徴は次の通りである:
オンデマンドのセルフサービス(On-demand Self-service):クラウドコンシューマは、サービスのプロバイダとのヒューマンインタラクションを必要とせずに自動的に必要に応じて、サーバ時間及びネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス(Broad Network Access):機能はネットワーク上で利用可能であり、異種のシン(thin)又はシック(thick)クライアントプラットフォーム(例えば、携帯電話機、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされ得る。
リソースの共用(Resource Pooling):プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて複数のコンシューマにサービスを提供するようプールされ、異なる物理的及び仮想的なリソースが要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般的に、提供されているリソースの正確な位置に関して制御又は知識を有しておらず、より高いレベルの抽象化(例えば、国、州、又はデータセンター)で位置を指定することが可能であるという点で、場所に依存しないという感覚がある。
スピーディな拡張性(Rapid Elasticity):機能は、迅速にスケールアウトするよう、いくつかの場合には自動的に、迅速かつ柔軟にプロビジョニングされ、かつ、迅速にスケールインするよう直ちにリリースされ得る。コンシューマには、プロビジョニングに利用可能な機能は、無限であるようにしばしば見え、いつでも如何なる量でも購入可能である。
計測可能なサービス(Measured Service):クラウドシステムは、サービスのタイプ(ストレージ、プロセッシング、バンド幅、アクティブなユーザアカウント、など)に適した何らかの抽象化レベルで計測機能を活用することによって、リソース使用を自動的に制御及び最適化する。リソース利用は、利用されているサービスのプロバイダ及びコンシューマの両方に透明性を提供するように、監視、制御、及び報告され得る。
【0061】
サービスモデルは次の通りである:
SaaS(Software as a Service):コンシューマに提供される機能は、クラウドインフラストラクチャで実行されているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを通じて様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、更には個々のアプリケーション機能を含む基幹クラウドインフラストラクチャを管理又は制御しない。ただし、ユーザ固有のアプリケーション構成設定が限られている場合を除く。
PaaS(Platform as a Service):コンシューマに提供される機能は、プロバイダによってサポートされているプログラミング言語及びツールを使用して、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャにデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む基幹クラウドインフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によっては、アプリケーションホスティング環境に対する制御を有する。
IaaS(Infrastructure as a Service):コンシューマに提供される機能は、プロセッシング、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる。コンシューマは、基幹クラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、及びデプロイされたアプリケーションに対する制御を有し、場合により、選択したネットワーキングコンポーネント(例えば、ホストファイヤウォール)の限られた制御を有する。
【0062】
デプロイメントモデルは次の通りである:
プライベートクラウド(Private Cloud):クラウドインフラストラクチャは、1つの組織のためにのみ運用される。それは、組織又はサードパーティによって管理されてもよく、オンプレミス又はオフプレミスに存在し得る。
コミュニティクラウド(Community Cloud):クラウドインフラストラクチャは、いくつかの組織によって共有され、共通の懸案事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス懸念)を有している特定のコミュニティをサポートする。それは、組織又はサードパーティによって管理されてもよく、オンプレミス又はオフプレミスに存在し得る。
パブリッククラウド(Public Cloud):クラウドインフラストラクチャは、一般の人々又は大規模な業界グループに利用可能にされており、クラウドサービスを販売する組織によって所有されている。
ハイブリッドクラウド(Hybrid Cloud):クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の複合であり、一意のエンティティのままであるが、データ及びアプリケーションの移植性を可能にする標準化された又は独自の技術(例えば、クラウド間の負荷分散のためのクラウドバースト)によって結合されている。
【0063】
クラウドコンピューティング環境は、無国籍(statelessness)、低結合度、モジュール性、セマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを有するインフラストラクチャがある。
【0064】
図5を参照すると、実例となるクラウドコンピューティング環境500が表されている。図示されるように、クラウドコンピューティング環境500は、1つ以上のクラウドコンピューティングノード10を有し、それらと、例えば、パーソナルデジタルアシスタント(PDA)又は携帯電話機54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなどの、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが、通信し得る。クラウドコンピューティングノード10は、互いに通信することもできる。それらは、上記のプライベート、コミュニティ、パブリック若しくはハイブリッドなどの1つ以上のネットワーク、又はそれらの組み合わせにおいて、物理的又は仮想的にグループ化されてもよい(図示せず)。これは、クラウドコンピューティング環境500が、クラウドコンシューマがローカルコンピューティングデバイスでリソースを保持する必要がないサービスとしてインフラストラクチャ、プラットフォーム及び/又はソフトウェアを提供することを可能にする。
図5に示されているコンピューティングデバイス54A~Nのタイプは、単に実例であるよう意図され、クラウドコンピューティングノード10及びクラウドコンピューティング環境500は、任意のタイプのネットワーク及び/又はネットワークアドレッシング可能な接続にわたって(例えば、ウェブブラウザを用いて)任意のタイプのコンピュータ化されたデバイスと通信可能であることが理解される。
【0065】
図6を参照すると、クラウドコンピューティング環境500(
図5)によって提供される機能抽象化レイヤ600の組が示されている。
図6に示されているコンポーネント、レイヤ、及び機能は、単に実例であるよう意図され、実施形態はそれに限られないことが事前に理解されるべきである。表されているように、次のレイヤ及び対応する機能が提供される。
【0066】
ハードウェア及びソフトウェアレイヤ60は、ハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、並びにネットワーク及びネットワーキングコンポーネント66が含まれる。いくつかの実施形態で、ソフトウェアコンポーネントには、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68が含まれる。
【0067】
仮想化レイヤ70は、抽象化レイヤを提供し、それから、仮想エンティティの次の例、つまり、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75、が提供され得る。
【0068】
一例で、管理レイヤ80は、後述される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格提示(Metering and Pricing)82は、クラウドコンピューティング環境内でリソースが利用される場合の費用追跡と、それらのリソースの消費に対する会計又は請求とを提供する。一例で、これらのリソースは、アプリケーションソフトウェアライセンスを有してもよい。セキュリティは、データ及び他のリソースの保護とともに、クラウドコンシューマ及びタスクの身元確認を提供する。ユーザポータル83は、コンシューマ及びシステムアドミストレータのためにクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要とされるサービスレベルが満足されるようなクラウドコンピューティングリソース割り当て及び管理を提供する。サービス水準合意(Service Level Agreement,SLA)の立案及び履行(planning and fulfillment)85は、SLAに従って将来の要求が予想されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0069】
作業負荷レイヤ90は、クラウドコンピューティング環境が利用される可能性がある機能の例を提供する。このレイヤから提供され得る作業負荷及び機能の例には、地図作成及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想クラスルーム教育配信93、データアナリティクス処理94、トランザクション処理95、及びビデオコーディング96が含まれる。ビデオコーディング96は、ビデオデータ内のエッジを検出することに基づきビデオデータを符号化及び復号し得る。
【0070】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合でシステム、方法、及び/又はコンピュータ可読媒体に関係し得る。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ読み出し可能なプログラム命令をその上に有する1つ以上のコンピュータ読み出し可能な非一時記憶媒体を含んでもよい。
【0071】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保有又は記憶することができる有形なデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、又はそれらの任意の適切な組み合わせであってもよいが、これらに限られない。コンピュータ可読記憶媒体のより具体的な例の非包括的リストには、次の、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラム可能リードオンリーメモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク型リードオンリーメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、機械的に符号化されたデバイス(例えば、パンチカード、又は命令が記録されている溝の隆起構造)、及びそれらの任意の適切な組み合わせが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、あるいは、配線を通じて伝送される電気信号などのような、一時的な信号自体であると解釈されるべきではない。
【0072】
本明細書で記載されるコンピュータ読み出し可能なプログラム命令は、コンピュータ可読記憶媒体から各々のコンピューティング/プロセッシングデバイスへ、あるいは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを経由して外部コンピュータ又は外部記憶デバイスへ、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを有してもよい。各コンピューティング/プロセッシングデバイスのネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ読み出し可能なプログラム命令を受け取り、コンピュータ読み出し可能なプログラム命令を、各々のコンピューティング/プロセッシングデバイス内のコンピュータ可読記憶媒体での記憶のために転送する。
【0073】
動作を実行するためのコンピュータ読み出し可能なプログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(instruction-set-architecture,ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又はSmalltalk、C++、などのようなオブジェクト指向のプログラミング言語と、“C”プログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語とを含む1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのどちらか、であってもよい。コンピュータ読み出し可能なプログラム命令は、全体的にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロンのソフトウェアパッケージとして、部分的にユーザのコンピュータでかつ部分的に遠隔のコンピュータで、又は全体的に遠隔のコンピュータ若しくはサーバで、実行され得る。後者のシナリオでは、遠隔のコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータへ接続されてもよく、あるいは、接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを用いてインターネットを通じて)行われてもよい。いくつかの実施形態で、例えば、プログラム可能なロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、電子回路をパーソナル化するようコンピュータ読み出し可能なプログラム命令の状態情報を利用することによって、コンピュータ読み出し可能なプログラム命令を実行してもよい。
【0074】
これらのコンピュータ読み出し可能なプログラム命令は、マシンを出現させるよう汎用のコンピュータ、特別目的のコンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサへ供給されてもよく、それにより、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサにより実行される命令は、フローチャート及び/又はブロック図の1つ以上のブロックで特定されている機能/動作を実装する手段を生み出す。これらのコンピュータ読み出し可能なプログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、及び/又は他のデバイスに、特定の様態で機能するよう指示することができるコンピュータ可読記憶媒体に記憶されてもよく、それにより、命令を記憶しているコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1つ以上のブロックで特定されている機能/動作の態様を実装する命令を含む製品を有する。
【0075】
コンピュータ読み出し可能なプログラム命令はまた、コンピュータ実装プロセスを出現させるように一連の動作ステップをコンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスで実行させるようコンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスにロードされてもよく、それにより、コンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスで実行される命令は、フローチャート及び/又はブロック図の1つ以上のブロックで特定されている機能/動作を実装する。
【0076】
図面のフローチャート及びブロック図は、様々な実施形態に従うシステム、方法、及びコンピュータ可読媒体の可能な実施のアーキテクチャ、機能、及び動作を表す。これに関連して、フローチャート又はブロック図の各ブロックは、特定されている論理的機能を実装するための1つ以上の実行可能命令を有するモジュール、セグメント、又は命令の部分に相当し得る。方法、コンピュータシステム、及びコンピュータ可読媒体は、図面に表されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、又は異なるように配置されたブロックを含んでもよい。いくつかの代替の実施では、ブロックで記述されている機能は、図面で記述されている順序を外れて起こってもよい。例えば、連続して示されている2つのブロックは、実際には、同時に又は略同時に実行されてもよく、あるいは、ブロックは、関連する機能に応じて、時々、逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組み合わせは、特定されている機能又は動作を実行するか、あるいは、特別目的のハードウェア及びコンピュータ命令の組み合わせを実行する特別目的のハードウェアベースシステムによって、実装され得ることも留意されたい。
【0077】
明らかなように、本明細書で記載されるシステム及び/又は方法は、種々の形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装されてもよい。このようなシステム及び/又は方法を実装するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実施を制限するものではない。よって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照せずに本明細書で記載された。つまり、ソフトウェア及びハードウェアは、本明細書の記載に基づきシステム及び/又は方法を実装するよう設計され得ることが理解される。
【0078】
本明細書で使用される要素、動作、又は命令は、重要又は必須であると、そのようなものとして明示的に記載されない限りは、解釈されるべきではない。また、本明細書で使用されるように、冠詞「a」及び「an」は、1つ以上のアイテムを含むよう意図され、「one or more」(1つ以上)と同義的に使用され得る。更に、本明細書で使用されるように、「set」(セット又は組)との用語は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、又は関連アイテムと非関連アイテムとの組み合わせ、など)を含むよう意図され、「one or more」(1つ以上)と同義的に使用され得る。ただ1つのアイテムが意図される場合には、「one」(1つ)との用語又は同様の言語が使用される。また、本明細書で使用されるように、「has」、「have」、「having」(有している)などの用語は、オープンエンド(open-ended)の用語であるよう意図される。更に、「based on」(~に基づく)との表現は、明示的に別なふうに述べられない限りは、「based, at least in part, on」(少なくとも部分的に~に基づく)を意味するよう意図される。
【0079】
様々な態様及び実施形態の記載が、例示のために提示されてきたが、包括的であるよう、あるいは、開示されている実施形態に限定されるよう意図されない。たとえ特徴の組み合わせが特許請求の範囲で列挙され、かつ/あるいは、明細書で開示されているとしても、それらの組み合わせは、可能な実施の開示を制限するよう意図されない。実際に、それらの特徴の多くは、具体的に特許請求の範囲で列挙されておらず、かつ/あるいは、明細書で開示されていない方法で、組み合わされてもよい。以下で挙げられている各従属請求項は、ただ1つの請求項にしか直接には依存しないことがあるが、可能な実施の開示は、特許請求の範囲内のあらゆる他の請求項との組み合わせで各従属請求項を含む。多くの変更及び変形は、記載されている実施形態の範囲から外れずに、当業者にとって明らかである。本明細書で使用されている専門用語は、実施形態の原理、市場で見られる技術に対する実際の適用又は技術的改善を最もよく説明するために、あるいは、当業者が本明細書に開示される実施形態を理解できるようにするために、選択された。