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

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

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

特開2024-116338符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム
<>
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図1
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図2
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図3A
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図3B
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図3C
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図3D
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図4
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図5
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図6
  • 特開-符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116338
(43)【公開日】2024-08-27
(54)【発明の名称】符号化ツリー単位サイズの信号伝達のための方法、システム、プログラム
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240820BHJP
   H04N 19/96 20140101ALI20240820BHJP
【FI】
H04N19/70
H04N19/96
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024095604
(22)【出願日】2024-06-13
(62)【分割の表示】P 2023035774の分割
【原出願日】2020-09-22
(31)【優先権主張番号】62/905,339
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/024,246
(32)【優先日】2020-09-17
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドゥ,イシン
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
(57)【要約】      (修正有)
【課題】符号化ツリー単位サイズを有するビデオ・データを符号化するための方法、コンピュータ・プログラムおよびコンピュータ・システムを提供する。
【解決手段】ビデオ・データを符号化するプログラムは、ある符号化ツリー単位サイズを有するビデオ・データを受することと、ビデオ・データに関連する符号化ツリー単位サイズを、2つ以上のフラグを設定することによって信号伝達することと、ビデオ・データを、信号伝達された符号化ツリー単位サイズに対応するフラグに基づいてエンコード/デコードすることと、をコンピュータに実行させる。
【選択図】図4
【特許請求の範囲】
【請求項1】
プロセッサによって実行される、ビデオ符号化のための方法であって、当該方法は:
ある符号化ツリー単位サイズを有するビデオ・データを受領する段階と;
前記ビデオ・データに関連する前記符号化ツリー単位サイズを、2つ以上のフラグを設定することによって信号伝達する段階であって、前記2つ以上のフラグの各フラグは別個に扱われることができる、段階と;
前記ビデオ・データを、信号伝達された符号化ツリー単位サイズに対応する前記フラグに基づいて符号化する段階とを含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2019年9月24日に出願された米国仮特許出願第62/905,339号、および2020年9月17日に出願された米国特許出願第17/024,246号からの優先権を主張するものである。それらの全体が本明細書に組み込まれる。
【0002】
分野
本開示は、概括的には、データ処理の分野に関し、より詳細には、ビデオ・エンコードおよびデコードに関する。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)、および2016年(バージョン4)にH.265/HEVC (High Efficiency Video Coding[高効率ビデオ符号化])規格を公表した。2015年には、両標準機関は、HEVCを超える次のビデオ符号化規格の開発の可能性を探るため、合同でJVET(Joint Video Exploration Team[合同ビデオ調査チーム])を結成し、2017年10月には、「HEVCを超える機能をもつビデオ圧縮に関する提案の共同募集(CfP)」を発表した。2018年2月15日までに、標準ダイナミックレンジ(SDR)に関する合計22のCfP応答、高ダイナミックレンジ(HDR)に関する12のCfP応答、および360ビデオ・カテゴリーに関する12のCfP応答がそれぞれ提出された。2018年4月には、122 MPEG/第10回JVET会議において、すべての受領されたCfP応答が評価された。この会議の結果、JVETは、HEVCを超える次世代ビデオ符号化の標準化プロセスを正式に開始した。新たな規格は多用途ビデオ符号化(Versatile Video Coding、VVC)と命名され、JVETは合同ビデオ専門家チーム(Joint Video Expert Team)に改名された。VTM(VVC Test Model[VVCテストモデル])の現在のバージョンは、すなわちVTM6である。
【発明の概要】
【0004】
実施形態は、ビデオ・データを符号化〔コーディング〕するための方法、システム、およびコンピュータ読み取り可能媒体に関する。ある側面によれば、ビデオ・データを符号化するための方法が提供される。本方法は、ある符号化ツリー単位サイズを有するビデオ・データを受領することを含んでいてもよい。ビデオ・データに関連する符号化ツリー単位サイズは、2つ以上のフラグを設定することによって信号伝達される。ビデオ・データは、信号伝達された符号化ツリー単位サイズに対応するフラグに基づいてエンコード/デコードされる。
【0005】
別の側面によれば、ビデオ・データを符号化するためのコンピュータ・システムが提供される。コンピュータ・システムは、一つまたは複数のプロセッサ、一つまたは複数のコンピュータ読み取り可能メモリ、一つまたは複数のコンピュータ読み取り可能な有体の記憶装置、およびプログラム命令を含んでいてもよい。該プログラム命令は、前記一つまたは複数のメモリの少なくとも1つを介して前記一つまたは複数のプロセッサの少なくとも1つによって実行するために、前記一つまたは複数の記憶装置の少なくとも1つに記憶されており、それによりコンピュータ・システムは方法を実行できる。該方法は、符号化ツリー単位サイズを有するビデオ・データを受領することを含んでいてもよい。ビデオ・データに関連する符号化ツリー単位サイズは、2つ以上のフラグを設定することによって信号伝達される。ビデオ・データは、信号伝達された符号化ツリー単位サイズに対応するフラグに基づいてエンコード/デコードされる。
【0006】
さらに別の側面によれば、ビデオ・データを符号化するためのコンピュータ読み取り可能媒体が提供される。コンピュータ読み取り可能媒体は、一つまたは複数のコンピュータ読み取り可能記憶装置と、前記一つまたは複数の有体な記憶装置のうちの少なくとも1つに記憶されたプログラム命令とを含んでいてもよく、該プログラム命令はプロセッサによって実行可能である。プログラム命令は、方法を実行するためにプロセッサによって実行可能であり、該方法はしかるべく、符号化ツリー単位サイズを有するビデオ・データを受領することを含んでいてもよい。ビデオ・データに関連する符号化ツリー単位サイズは、2つ以上のフラグを設定することによって信号伝達される。ビデオ・データは、信号伝達された符号化ツリー単位サイズに対応するフラグに基づいてエンコード/デコードされる。
【図面の簡単な説明】
【0007】
これらおよび他の目的、特徴および利点は、添付の図面との関連で読まれる例示的な実施形態の以下の詳細な説明から明らかになるであろう。図面は詳細な説明との関連で当業者の理解を容易にすることにおける明確性のためのものであるため、図面のさまざまな特徴は正確なスケールではない。
【0008】
図1】少なくとも1つの実施形態によるネットワーク接続されたコンピュータ環境を示す。
【0009】
図2】少なくとも1つの実施形態による四分木/二分木(QTBT)ブロック構造の図である。
【0010】
図3A】Aは、少なくとも1つの実施形態による例示的なシンタックス要素である。
図3B】Bは、少なくとも1つの実施形態による例示的なシンタックス要素である。
図3C】Cは、少なくとも1つの実施形態による例示的なシンタックス要素である。
図3D】Dは、少なくとも1つの実施形態による例示的なシンタックス要素である。
【0011】
図4】少なくとも1つの実施形態による、ビデオ・データを符号化するプログラムによって実行されるステップを示す動作フローチャートである。
【0012】
図5】少なくとも1つの実施形態による、図1に示されたコンピュータおよびサーバーの内部および外部コンポーネントのブロック図である。
【0013】
図6】少なくとも1つの実施形態による、図1に示されるコンピュータ・システムを含む例示的なクラウド・コンピューティング環境のブロック図である。
【0014】
図7】少なくとも1つの実施形態による、図6の例示的なクラウド・コンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0015】
請求項に係る構造および方法の詳細な実施形態が本明細書に開示されるが、開示される実施形態は、単に、さまざまな形で具現されうる請求項に係る構造および方法を例示するに過ぎないことが理解できる。しかしながら、これらの構造および方法は、多くの異なる形で具現でき、本明細書に記載の例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が十全かつ完全であり、当業者に範囲を完全に伝えるように提供される。説明では、周知の特徴および技法の詳細は、提示される実施形態を不必要に埋没させることを避けるために省略されることがある。
【0016】
実施形態は、概括的には、データ処理の分野に関し、より詳細には、ビデオ・エンコードおよびデコードに関する。以下に説明する例示的な実施形態は、とりわけ、符号化ツリー単位サイズ・シンタックスを置き換えるよう、別個のフラグを使用して、ビデオ・データを符号化するためのシステム、方法、およびコンピュータ・プログラムを提供する。よって、いくつかの実施形態は、フラグを通じて符号化ツリー単位サイズを信号伝達することを通じてビットを節約することによって、より少ないメモリ使用を可能にすることによって、コンピューティングの分野を改善する能力を有する。
【0017】
先述したように、ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)、および2016年(バージョン4)にH.265/HEVC(High Efficiency Video Coding[高効率ビデオ符号化])規格を公表した。2015年には、両標準機関は、HEVCを超える次のビデオ符号化規格の開発の可能性を探るため、合同でJVET(Joint Video Exploration Team[合同ビデオ調査チーム])を結成し、2017年10月には、「HEVCを超える機能をもつビデオ圧縮に関する提案の共同募集(CfP)」を発表した。2018年2月15日までに、標準ダイナミックレンジ(SDR)に関する合計22のCfP応答、高ダイナミックレンジ(HDR)に関する12のCfP応答、および360ビデオ・カテゴリーに関する12のCfP応答がそれぞれ提出された。2018年4月には、122 MPEG/第10回JVET会議において、すべての受領されたCfP応答が評価された。この会議の結果、JVETは、HEVCを超える次世代ビデオ符号化の標準化プロセスを正式に開始した。新たな規格は多用途ビデオ符号化(Versatile Video Coding、VVC)と命名され、JVETは合同ビデオ専門家チーム(Joint Video Expert Team)に改名された。VTM(VVC Test Model[VVCテストモデル])の現在のバージョンは、すなわちVTM6である。
【0018】
HEVCでは、符号化ツリー単位は、さまざまな局所的な特徴に適応するために、符号化ツリーと記される四分木構造を使用することによって、符号化単位に分割される。ピクチャー領域をインター・ピクチャー(時間的)予測を用いて符号化するかまたはイントラ・ピクチャー(空間的)予測を用いて符号化するかの決定は、符号化単位のレベルで行なわれる。各符号化単位は、さらに、予測単位分割タイプに応じて、1つ、2つ、または4つの予測単位に分割できる。一つの予測単位内では、同じ予測プロセスが適用され、関連する情報が予測単位ベースでデコーダに伝送される。予測単位分割タイプに基づく予測プロセスを適用することによって残差ブロックを得た後、符号化単位は、該符号化単位のための符号化ツリーのような別の四分木構造に従って変換単位に分割されることができる。HEVC構造の重要な特徴の一つは、符号化単位、予測単位、および変換単位を含む複数の分割概念を有することである。しかしながら、固定長符号化u(2)を用いてシンタックスlog2_ctu_size_minus5を記述することは、1ビットを無駄にすることがありうる。符号化されるべき数字が3つ、それぞれ0、1、2しかないことがあり、符号化される数字が0か1であればu(2)は1ビットを無駄にすることがある。よって、シーケンスパラメータセット内のビットを節約するために、もとの符号化ツリー単位サイズ・シンタックスを別個の複数のフラグで置き換えることが有利でありうる。
【0019】
さまざまな実施形態による方法、装置(システム)、およびコンピュータ読み取り可能な媒体のフローチャート図解および/またはブロック図を参照して、諸側面が本明細書に記載される。フローチャート図解および/またはブロック図の各ブロック、およびフローチャート図解および/またはブロック図のブロックの組み合わせは、コンピュータ読み取り可能なプログラム命令によって実装できることが理解されるであろう。
【0020】
ここで図1を参照すると、ネットワーク接続されたコンピュータ環境の機能ブロック図が、符号化ツリー単位サイズ・シンタックスを置き換える別個のフラグを使ってビデオ・データを符号化するためのビデオ符号化システム100(以下、「システム」)を示している。図1は、1つの実装の例示を与えているにすぎず、種々の実施形態が実装されうる環境に関するいかなる制限も含意しないことが理解されるべきである。設計および実装の要件に基づいて、図示された環境に対する多くの修正がなされてもよい。
【0021】
システム100は、コンピュータ102およびサーバー・コンピュータ114を含むことができる。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバー・コンピュータ114と通信してもよい。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶され、ユーザーとインターフェースし、サーバー・コンピュータ114と通信できるようにされたソフトウェア・プログラム108とを含んでいてもよい。図5を参照して後述するように、コンピュータ102は、それぞれ内部コンポーネント800Aおよび外部コンポーネント900Aを含んでいてもよく、サーバー・コンピュータ114は、それぞれ内部コンポーネント800Bおよび外部コンポーネント900Bを含んでいてもよい。コンピュータ102は、たとえば、モバイル装置、電話、パーソナル・デジタル・アシスタント、ネットブック、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意のタイプのコンピューティング装置であってもよい。
【0022】
サーバー・コンピュータ114はまた、図6および図7に関して後述するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャー(IaaS)のようなクラウド・コンピューティング・サービス・モデルにおいて動作してもよい。サーバー・コンピュータ114はまた、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウドのようなクラウド・コンピューティング展開モデル内に位置してもよい。
【0023】
ビデオ・データを符号化するために使用されうるサーバー・コンピュータ114は、データベース112と対話することができるビデオ符号化プログラム116(以下、「プログラム」)を実行することができるようにされている。ビデオ符号化プログラム方法は、図4に関して以下により詳細に説明される。ある実施形態では、コンピュータ102は、ユーザー・インターフェースを含む入力装置として動作してもよく、一方、プログラム116は、主としてサーバー・コンピュータ114上で実行されてもよい。ある代替的な実施形態では、プログラム116は、主として一つまたは複数のコンピュータ102上で実行され、一方、サーバー・コンピュータ114は、プログラム116によって使用されるデータの処理および記憶のために使用されうる。プログラム116は、スタンドアローンのプログラムであってもよいし、あるいはより大きなビデオ符号化プログラムに統合されてもよいことに留意しておくべきである。
【0024】
しかしながら、プログラム116のための処理は、いくつかの場合には、コンピュータ102とサーバー・コンピュータ114との間で任意の比率で分担されうることに留意しておくべきである。別の実施形態では、プログラム116は、2つ以上のコンピュータ、サーバー・コンピュータ、またはコンピュータとサーバー・コンピュータの何らかの組み合わせ、たとえば、ネットワーク110を横切って単一のサーバー・コンピュータ114と通信する複数のコンピュータ102で動作することができる。別の実施形態では、たとえば、プログラム116は、ネットワーク110を横切って複数のクライアント・コンピュータと通信する複数のサーバー・コンピュータ114上で動作することができる。あるいはまた、プログラムは、ネットワークを横切ってサーバーおよび複数のクライアント・コンピュータと通信するネットワーク・サーバー上で動作してもよい。
【0025】
ネットワーク110は、有線接続、無線接続、光ファイバー接続、またはそれらの何らかの組み合わせを含んでいてもよい。一般に、ネットワーク110は、コンピュータ102とサーバー・コンピュータ114との間の通信をサポートする接続とプロトコルとの任意の組み合わせであることができる。ネットワーク110は、たとえば、ローカルエリアネットワーク(LAN)、インターネットのような広域ネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)のような電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラーネットワーク(たとえば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワーク等)、公衆陸上移動ネットワーク(PLMN)、都市圏ネットワーク(MAN)、私設ネットワーク、アドホックネットワーク、イントラネット、光ファイバーベースのネットワーク等、および/またはこれらのまたは他のタイプのネットワークの組み合わせのようなさまざまなタイプのネットワークを含むことができる。
【0026】
図1に示される装置およびネットワークの数および配置は、一例として与えられている。実際には、図1に示されたものよりも、追加の装置および/またはネットワーク、より少ない装置および/またはネットワーク、異なる装置および/またはネットワーク、または異なる配置の装置および/またはネットワークがあってもよい。さらに、図1に示される2つ以上の装置が単一の装置内に実装されてもよく、または図1に示される単一の装置が複数の分散された装置として実装されてもよい。追加的または代替的に、システム100の装置の集合(たとえば、一つまたは複数の装置)は、システム100の装置の別の集合によって実行されるものとして記述される一つまたは複数の機能を実行してもよい。
【0027】
ここで、図2を参照すると、例示的なQTBTブロック構造200が示される。QTBTブロック構造200は、QTBTを使用することによるブロック分割を含んでいてもよい。対応するツリー表現も描くことができる。実線は四分木分割を示し、点線は二分木分割を示してもよい。二分木の各分割(すなわち、非リーフ)ノードにおいて、どの分割タイプ(すなわち、水平または垂直)が使用されうるかを示すために、1つのフラグが信号伝達されてもよく、ここで、0は水平分割を示してもよく、1は垂直分割を示してもよい。四分木分割については、四分木分割は常にブロックを水平方向と垂直方向の両方で分割して等しいサイズの4つのサブブロックを生成するので、分割タイプを示す必要はないことがありうる。
【0028】
QTBTは複数の分割タイプの概念を取り除きうる。たとえば、QTBTは、符号化単位、予測単位、および変換単位の概念の分離を除去することができ、符号化単位の分割形状について、より大きな柔軟性をサポートする。QTBTブロック構造200において、符号化単位は、正方形または長方形のいずれかの形状を有することができる。符号化ツリー単位(CTU)は、四分木構造によって分割されてもよい。四分木リーフノードは、二分木構造によってさらに分割されてもよい。二分木分割には、対称水平分割と対称垂直分割の2つの分割型がありうる。
【0029】
二分木リーフノードは、符号化単位(CU)と呼ばれることがあり、そのセグメンテーションは、それ以上の分割なしで予測および変換処理に使用されうる。これは、符号化単位、予測単位、および変換単位が、QTBT符号化ブロック構造200において同じブロック・サイズを有してもよいことを意味する。符号化単位は、異なる色成分の符号化ブロック(CB)を含んでいてもよく(たとえば、1つの符号化単位は、4:2:0クロマフォーマットのPスライスおよびBスライスの場合、1つのルーマCBおよび2つのクロマCBを含むことができる)、または単一成分のCBを含んでいてもよい(たとえば、1つの符号化単位は、Iスライスの場合、1つのルーマCBまたは2つのクロマCBを含んでいてもよい)。
【0030】
QTBT分割方式のために、以下のパラメータが定義されてもよい:
符号化ツリー単位サイズは、HEVCにおけるのと同じ概念である、四分木のルートノード・サイズであってもよい;
MinQTSizeは、最小の許容される四分木リーフノード・サイズであってもよい;
MaxBTSizeは、最大の許容される二分木ルートノード・サイズであってもよい;
MaxBTDepthは、最大の許容される二分木深さであってもよい;
MinBTSizeは、最小の許容される二分木リーフノード・サイズであってもよい。
【0031】
QTBT分割構造200の一例では、符号化ツリー単位サイズは、クロマ・サンプルの2つの対応する64×64ブロックをもつ128×128のルーマ・サンプルとして設定されてもよい。MinQTSizeは16×16に設定されてもよい。MaxBTSizeは64×64に設定されてもよい。MinBTSize(幅、高さ両方について)は4×4に設定されてもよい。MaxBTDepthは4に設定されてもよい。四分木分割が、まず符号化ツリー単位に適用されて、四分木リーフノードを生成してもよい。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、符号化ツリー単位サイズ)までのサイズをもつことができる。リーフ四分木ノードが128×128である場合、サイズがMaxBTSize(すなわち64×64)を超える可能性があるため、二分木によってそれ以上分割することはできない。そうでなければ、リーフ四分木ノードは、二分木によってさらに分割されてもよい。したがって、該四分木リーフノードは、二分木についてのルートノードでもあってもよく、二分木の深さ0もつ。
【0032】
二分木深さがMaxBTDepth(すなわち4)に達する場合、それ以上の分割は考慮されなくてもよい。二分木ノードがMinBTSizeに等しい幅(すなわち、4)をもつ場合、それ以上の水平分割は考慮されなくてもよい。同様に、二分木ノードがMinBTSizeに等しい高さをもつ場合、それ以上の垂直分割は考慮されなくてもよい。二分木のリーフノードは、それ以上分割することなく、予測および変換処理によってさらに処理される。一例では、最大の符号化ツリー単位サイズは、256×256ルーマ・サンプルであってもよい。
【0033】
さらに、QTBTスキームは、ルーマとクロマが別々のQTBT構造をもつための柔軟性をサポートしてもよい。現在、PおよびBスライスについては、1つの符号化ツリー単位におけるルーマおよびクロマCTBは、同じQTBT構造を共有してもよい。しかしながら、Iスライスについては、ルーマCTBはQTBT構造によってCUに分割されてもよく、クロマCTBは別のQTBT構造によってクロマ符号化単位に分割されてもよい。これは、IスライスにおけるCUがルーマ成分の符号化ブロックまたは2つのクロマ成分の符号化ブロックを含んでいてもよく、PまたはBスライスにおける符号化単位が3つの色成分すべての符号化ブロックからなることを意味する。
【0034】
ここで、図3のA~Dを参照すると、例示的なシンタックス要素300A~300Dが示されている。シンタックス要素300A~300Dは、ビットを節約するよう符号化ツリー単位サイズを信号伝達するために使用されてもよい。
【0035】
一つまたは複数の実施形態によれば、3つのフラグのうちの2つ、すなわち、use_32_ctu_size_flag、use_64_ctu_size_flag、およびuse_128_ctu_size_flagが符号化ツリー単位サイズを信号伝達するために使用されてもよい。ある実施形態では、use_32_ctu_size_flagが最初に信号伝達されてもよい。use_32_ctu_size_flagが1に等しい場合、符号化ツリー単位サイズ信号伝達が終了してもよい。そうでない場合、use_64_ctu_size_flagが信号伝達されてもよい。ある実施形態では、use_64_ctu_size_flagが最初に信号伝達されてもよい。use_64_ctu_size_flagが1に等しい場合、符号化ツリー単位サイズ信号伝達が終了してもよい。そうでない場合、use_32_ctu_size_flagが信号伝達されてもよい。ある実施形態では、use_32_ctu_size_flagが最初に信号伝達されてもよい。use_32_ctu_size_flagが1に等しい場合、符号化ツリー単位サイズ信号伝達が終了してもよい。そうでない場合、use_128_ctu_size_flagが信号伝達されてもよい。ある実施形態では、use_128_ctu_size_flagが最初に信号伝達されてもよい。use_128_ctu_size_flagが1に等しい場合、符号化ツリー単位サイズ信号伝達が終了してもよい。そうでない場合、use_32_ctu_size_flagが信号伝達されてもよい。ある実施形態では、use_64_ctu_size_flagが最初に信号伝達されてもよい。use_64_ctu_size_flagが1に等しい場合、符号化ツリー単位サイズ信号伝達が終了してもよい。そうでない場合、use_128_ctu_size_flagが信号伝達されてもよい。ある実施形態では、use_128_ctu_size_flagが最初に信号伝達されてもよい。use_128_ctu_size_flagが1に等しい場合、符号化ツリー単位サイズ信号伝達が終了してもよい。そうでない場合、use_64_ctu_size_flagが信号伝達されてもよい。
【0036】
ここで、図3のA~Bを参照すると、一つまたは複数の実施形態によれば、シーケンスパラメータセット内の個々のフラグは、最小の符号化ツリー単位サイズが適用されうるかどうか(use_smallest_ctu_size_flag)、および最大の符号化ツリー単位サイズが適用されうるかどうか(use_largest_ctu_size_flag)を示す。ある実施形態では、最小符号化ツリー単位サイズが適用されうるかどうかを示すシーケンスパラメータセット・フラグが最初に信号伝達されてもよく、最小の符号化ツリー単位サイズが適用されない場合に、最大の符号化ツリー単位サイズが適用されうるかどうかを示す別のシーケンスパラメータセット・フラグが信号伝達されてもよい。別の実施形態では、最大の符号化ツリー単位サイズが適用されうるかどうかを示すシーケンスパラメータセット・フラグが最初に信号伝達されてもよく、最大の符号化ツリー単位サイズが適用されない場合、最小の符号化ツリー単位サイズが適用されうるかどうかを示す別のシーケンスパラメータセット・フラグが信号伝達されてもよい。
【0037】
use_smallest_ctu_size_flagが1に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが32×32に等しくてもよいことを指定してもよく、use_smallest_ctu_size_flagが0に等しいことは、use_largest_ctu_size_flagが存在しうることを指定してもよい。
【0038】
use_largest_ctu_size_flagが1に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが128×128に等しくてもよいことを指定してもよく、use_largest_ctu_size_flagが0に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが64×64に等しくてもよいことを指定してもよい。
【0039】
log2_min_luma_coding_block_size_minus2に2を加えたものは、最小のルーマ符号化ブロック・サイズを指定してもよい。
【0040】
変数CtbLog2SizeY、CtbSizeY、MinCbLog2SizeY、MinCbSizeY、MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、MaxTbSizeY、PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesCおよびPicHeightInSamplesCは、次のように導出されてもよい:
if(use_smallest_ctu_size_flag)
CtbLog2SizeY=0
elseif(use_largest_ctu_size_flag)
CtbLog2SizeY=2
else
CtbLog2SizeY=1
CtbSizeY=1<<CtbLog2SizeY
【0041】
ここで図3Cを参照すると、一つまたは複数の実施形態によれば、sps_max_luma_transform_size_64_flagは、符号化ツリー単位サイズが64×64以上でありうる場合にのみ、信号伝達されうる。ある実施形態では、use_32_ctu_size_flagが最初に信号化されてもよく、1に等しい場合、sps_max_luma_transform_size_64_flagは信号伝達されなくてもよい。ある実施形態では、use_64_ctu_size_flagが最初に信号伝達されてもよく、0に等しい場合、次いでuse_32_ctu_size_flagが信号伝達されてもよく、1に等しくてもよく、sps_max_luma_transform_size_64_flagは信号伝達されなくてもよい。ある実施形態では、use_128_ctu_size_flagが最初に信号伝達されてもよく、0に等しくてもよい場合、次いでuse_32_ctu_size_flagが信号伝達されてもよく、1に等しくてもよく、sps_max_luma_transform_size_64_flagは信号伝達されなくてもよい。
【0042】
use_32_ctu_size_flagが1に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが32×32に等しくてもよいことを指定してもよく、use_32_ctu_size_flagが0に等しいことは、use_128_ctu_size_flagが存在しうることを指定してもよい。use_128_ctu_size_flagが1に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが128×128でありうることを指定してもよく、use_128_ctu_size_flagが0に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが64×64に等しくてもよいことを指定してもよい。
【0043】
log2_min_luma_coding_block_size_minus2に2を加えたものは、最小のルーマ符号化ブロック・サイズを指定してもよい。
【0044】
sps_max_luma_transform_size_64_flagが1に等しいことは、ルーマ・サンプルにおける最大変換サイズが64に等しくてもよいことを指定してもよく、sps_max_luma_transform_size_64_flagが0に等しいことは、ルーマ・サンプルにおける最大変換サイズが32に等しくてもよいことを指定してもよい。存在しない場合、sps_max_luma_transform_size_64_flagの値は0に等しいと推定されてもよい。
【0045】
変数CtbLog2SizeY、CtbSizeY、MinCbLog2SizeY、MinCbSizeY、MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、MaxTbSizeY、PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesCおよびPicHeightInSamplesCは次のようにして導出されてもよい:
if(use_32_ctu_size_flag)
CtbLog2SizeY=0
elseif(use_128_ctu_size_flag)
CtbLog2SizeY=2
else
CtbLog2SizeY=1
CtbSizeY=1<<CtbLog2SizeY
【0046】
ここで図3のDを参照すると、一つまたは複数の実施形態によれば、sps_max_luma_transform_size_64_flagは、符号化ツリー単位サイズが最小の符号化ツリー単位サイズではない場合にのみ信号伝達されてもよい。
【0047】
use_smallest_ctu_size_flagが1に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが32×32に等しくてもよいことを指定してもよく、use_smallest_ctu_size_flagが0に等しいことは、use_largest_ctu_size_flagが存在しうることを指定してもよい。
【0048】
use_largest_ctu_size_flagが1に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが128×128に等しくてもよいことを指定してもよく、use_largest_ctu_size_flagが0に等しいことは、各符号化ツリー単位のルーマ符号化ツリー・ブロック・サイズが64×64に等しくてもよいことを指定してもよい。
【0049】
log2_min_luma_coding_block_size_minus2に2を加えたものは、最小ルーマ符号化ブロック・サイズを指定してもよい。
【0050】
sps_max_luma_transform_size_64_flagが1に等しいことは、ルーマ・サンプルにおける最大の変換サイズが64に等しくてもよいことを指定してもよく、sps_max_luma_transform_size_64_flagが0に等しいことはルーマ・サンプルにおける最大変換サイズが32に等しくてもよいことを指定してもよい。存在しない場合、sps_max_luma_transform_size_64_flagの値は0に等しいと推定されてもよい。
【0051】
変数CtbLog2SizeY、CtbSizeY、MinCbLog2SizeY、MinCbSizeY、MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、MaxTbSizeY、PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesCおよび PicHeightInSamplesCは次のように導出されてもよい:
if(use_smallest_ctu_size_flag)
CtbLog2SizeY=0
elseif(use_largest_ctu_size_flag)
CtbLog2SizeY=2
else
CtbLog2SizeY=1
CtbSizeY=1<<CtbLog2SizeY
【0052】
ここで図4を参照すると、ビデオ・データを符号化するための方法400のステップを示す動作フローチャートが示されている。いくつかの実装では、図4の一つまたは複数のプロセス・ブロックは、コンピュータ102(図1)およびサーバー・コンピュータ114(図1)によって実行されてもよい。いくつかの実装では、図4の一つまたは複数のプロセス・ブロックは、コンピュータ102およびサーバー・コンピュータ114とは別個の、またはそれらを含む、別の装置または装置群によって実行されてもよい。
【0053】
402では、方法400は、ある符号化ツリー単位サイズをもつビデオ・データを受領することを含む。
【0054】
404では、方法400は、ビデオ・データに関連する符号化ツリー単位サイズを、2つ以上のフラグを設定することによって信号伝達することを含む。
【0055】
406では、方法400は、信号伝達された符号化ツリー単位サイズに対応するフラグに基づいてビデオ・データを符号化することを含む。
【0056】
図4は、1つの実装の例解を提供しているだけであり、種々の実施形態がどのように実装されうるかに関して限定を含意しないことが理解されうる。設計および実装要件に基づいて、図示された環境に対する多くの修正がなされてもよい。
【0057】
図5は、ある例示的実施形態による、図1に示されたコンピュータの内部および外部コンポーネントのブロック図 500である。図5は、1つの実装の図を与えているだけであり、異なる実施形態が実装されうる環境に関していかなる制限も含意しないことが理解されるべきである。設計および実装要件に基づいて、図示された環境に対する多くの修正がなされてもよい。
【0058】
コンピュータ102(図1)およびサーバー・コンピュータ114(図1)は、図4に示される内部コンポーネント800A、Bおよび外部コンポーネント900A、Bのそれぞれの集合を含んでいてもよい。内部コンポーネント800の集合のそれぞれは、一つまたは複数のバス826上の一つまたは複数のプロセッサ820、一つまたは複数のコンピュータ読み取り可能RAM 822および一つまたは複数のコンピュータ読み取り可能ROM 824と、一つまたは複数のオペレーティングシステム828と、および一つまたは複数のコンピュータ読み取り可能な有体な記憶デバイス830とを含む。
【0059】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理コンポーネントである。いくつかの実装では、プロセッサ820は、機能を実行するようにプログラムされることができる一つまたは複数のプロセッサを含む。バス826は、内部コンポーネント800A、B間の通信を可能にするコンポーネントを含む。
【0060】
一つまたは複数のオペレーティングシステム828、ソフトウェア・プログラム108(図1)、およびサーバー・コンピュータ114(図1)上のビデオ符号化プログラム116(図1)は、それぞれのRAM 822のうちの一つまたは複数を介してそれぞれのプロセッサ820のうちの一つまたは複数によって実行されるためにそれぞれのコンピュータ読み取り可能な有体な記憶デバイス830のうちの一つまたは複数に記憶される。図5に示される実施形態では、コンピュータ読み取り可能な有体な記憶デバイス830のそれぞれは、内部ハードドライブの磁気ディスク記憶デバイスである。あるいはまた、コンピュータ読み取り可能な有体な記憶デバイス830のそれぞれは、半導体記憶デバイス、たとえばROM 824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、固体ディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/またはコンピュータ・プログラムおよびデジタル情報を記憶することができる他のタイプの非一時的なコンピュータ読み取り可能な有体の記憶デバイスである。
【0061】
内部コンポーネント800A、Bの各集合はまた、CD-ROM、DVD、メモリースティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶デバイスのような一つまたは複数のポータブルなコンピュータ読み取り可能な有体の記憶デバイス936との間で読み書きするためのR/Wドライブまたはインターフェース832をも含む。ソフトウェア・プログラム108(図1)およびビデオ符号化プログラム116(図1)などのソフトウェア・プログラムは、それぞれのポータブルなコンピュータ読み取り可能な有体の記憶デバイス936の一つまたは複数に記憶され、それぞれのR/Wドライブまたはインターフェース832を介して読まれ、それぞれのハードドライブ830にロードされることができる。
【0062】
内部コンポーネント800A、Bの各集合はまた、TCP/IPアダプターカード、無線Wi-Fiインターフェースカード、または3G、4G、もしくは5G無線インターフェースカード、または他の有線または無線通信リンクなどのネットワークアダプターまたはインターフェース836をも含む。ソフトウェア・プログラム108(図1)およびサーバー・コンピュータ114(図1)上のビデオ符号化プログラム116(図1)は、ネットワーク(たとえば、インターネット、ローカルエリアネットワークまたは他の広域ネットワーク)およびそれぞれのネットワークアダプターまたはインターフェース836を介して、外部コンピュータから、コンピュータ102(図1)およびサーバー・コンピュータ114にダウンロードできる。ネットワークアダプターまたはインターフェース836から、ソフトウェア・プログラム108およびサーバー・コンピュータ114上のビデオ符号化プログラム116が、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバーを含むことができる。
【0063】
外部コンポーネント900A、Bの集合のそれぞれは、コンピュータ表示モニタ920、キーボード930、およびコンピュータマウス934を含むことができる。外部コンポーネント900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスをも含むことができる。内部コンポーネント800A、Bの集合のそれぞれは、コンピュータ表示モニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840をも含む。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプターまたはインターフェース836は、ハードウェアおよびソフトウェア(記憶デバイス830および/またはROM 824に記憶される)を含む。
【0064】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装は、クラウド・コンピューティング環境に限定されないことが、あらかじめ理解される。むしろ、いくつかの実施形態は、現在知られているか、または後に開発される任意の他のタイプのコンピューティング環境との関連で実装されることができる。
【0065】
クラウド・コンピューティングは、最小限の管理努力またはサービスのプロバイダーとの対話で迅速にプロビジョンおよびリリースできる、構成可能なコンピューティング資源(たとえば、ネットワーク、ネットワーク帯域幅、サーバー、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス)の共有プールへの、便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0066】
特徴は以下の通り:
オンデマンド・セルフサービス:クラウド消費者が、サービスプロバイダーとの人的な対話を必要とすることなく、必要に応じて、自動的に、サーバー時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョンすることができる。
広域ネットワーク・アクセス:機能が、ネットワーク上で利用可能であり、標準的な機構を通じてアクセスされる。これは、異種のシンクライアントまたはシッククライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する。
資源プール化:プロバイダーのコンピューティング資源は、マルチテナントモデルを使用して複数の消費者にサービスするためにプールされ、種々の物理資源および仮想資源が、需要に応じて動的に割り当てられ、再割り当てされる。消費者は一般に、提供された資源の正確な位置に関して制御権や知識をもたないが、より高いレベルの抽象化(たとえば、国、州、データセンター)で位置を指定できることがあるという点で、位置の独立性の感覚がある。
迅速な弾力性:機能が、急速にスケールアウトするために、場合によっては自動的に、迅速かつ弾力的にプロビジョンされ、急速にスケールインするために、迅速に解放される。消費者にとって、プロビジョニングのために利用可能な機能はしばしば無制限であるように見え、いつでもどんな量でも購入できる。
測定されるサービス:クラウドシステムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブなユーザーアカウント)に適したあるレベルの抽象化で計量(metering)機能を利用することにより、資源使用を自動的に制御し最適化する。資源の使用が監視され、制御され、報告され、それが利用されるサービスのプロバイダーおよび消費者の両方にとって透明性を提供する。
【0067】
サービス・モデルは次のとおり:
サービスとしてのソフトウェア(Software as a Service、SaaS):消費者に提供される機能は、クラウド・インフラストラクチャー上で実行されるプロバイダーのアプリケーションを使用すること。アプリケーションは、ウェブブラウザーのようなシンクライアント・インターフェースを通じてさまざまなクライアント装置からアクセス可能である(たとえば、ウェブベースの電子メール)。消費者は、ネットワーク、サーバー、オペレーティングシステム、ストレージ、またはさらには個々のアプリケーション機能を含む、基礎になるクラウド・インフラストラクチャーを管理または制御することはない。ただし、限られた、ユーザー固有のアプリケーション構成設定が例外となる可能性がある。
サービスとしてのプラットフォーム(Platform as a Service、PaaS):消費者に提供される機能は、プロバイダーによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションを、クラウド・インフラストラクチャー上に展開すること。消費者は、ネットワーク、サーバー、オペレーティングシステム、ストレージを含む基礎になるクラウド・インフラストラクチャーを管理または制御することはしないが、展開されたアプリケーションや、可能性としてはアプリケーション・ホスティング環境の構成に対して制御権をもつ。
サービスとしてのインフラストラクチャー(Infrastructure as a Service、IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング資源をプロビジョンすること。ここで、消費者は、オペレーティングシステムおよびアプリケーションを含むことができる任意のソフトウェアを展開し、実行することができる。消費者は、基礎になるクラウド・インフラストラクチャーを管理または制御することはしないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御権、および選択されたネットワーク・コンポーネント(たとえば、ホスト・ファイアウォール)の制限された制御権をもつ。
【0068】
展開モデルは、以下のとおり:
プライベート・クラウド:クラウド・インフラストラクチャーは、ある組織のためだけに運用される。これは、その組織またはサードパーティーによって管理されてもよく、敷地内または敷地外に存在しうる。
コミュニティ・クラウド:クラウド・インフラストラクチャーは、いくつかの組織によって共有され、共有される関心事(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)をもつ特定のコミュニティをサポートする。これは、その組織またはサードパーティーによって管理されてもよく、敷地内または敷地外に存在しうる。
パブリック・クラウド:クラウド・インフラストラクチャーは、一般公衆または大きな産業グループに利用可能にされており、クラウド・サービスを販売する組織によって所有されている。
ハイブリッド・クラウド:クラウド・インフラストラクチャーは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、該2つ以上のクラウドは独自のエンティティのままであるが、データおよびアプリケーションのポータビリティーを可能にする標準化された、または専有の技術(たとえばクラウド間の負荷均衡化のためのクラウドバースティング)によって結びつけられている。
【0069】
クラウド・コンピューティング環境はサービス指向であり、ステートレス性、低結合性、モジュール性、および意味的相互運用性に焦点を当てている。クラウド・コンピューティングの核心には、相互接続されたノードのネットワークからなるインフラストラクチャーがある。
【0070】
図6を参照すると、例示的なクラウド・コンピューティング環境600が示されている。図のように、クラウド・コンピューティング環境600は、一つまたは複数のクラウド・コンピューティング・ノード10を含み、クラウド消費者によって使用するローカル・コンピューティング装置、たとえば、パーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、および/または自動車コンピュータ・システム54Nが、それらと通信することができる。クラウド・コンピューティング・ノード10は、互いに通信することができる。それらは、物理的または仮想的に、上述のようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウドまたはそれらの組み合わせのような一つまたは複数のネットワークにグループ化(図示せず)されてもよい。これにより、クラウド・コンピューティング環境600は、クラウド消費者がローカル・コンピューティング装置上に資源を維持する必要のない、サービスとしてのインフラストラクチャー、プラットフォームおよび/またはソフトウェアを提供することができる。図5に示されるコンピューティング装置54A~Nのタイプは単に例示的であることが意図されており、クラウド・コンピューティング・ノード10およびクラウド・コンピューティング環境600は、任意のタイプのネットワークおよび/またはネットワーク・アドレス指定可能接続(たとえば、ウェブブラウザーを使用する)を通じて任意のタイプのコンピュータ化された装置と通信することができることが理解される。
【0071】
図7を参照すると、クラウド・コンピューティング環境600(図6)によって提供される機能抽象化層700の集合が示されている。図7に示されるコンポーネント、層、および機能は、単に例示的であることが意図されており、実施形態はこれに限定されないことが理解されるべきである。図のように、以下の層および対応する機能が提供される。
【0072】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は:メインフレーム61;RISC(Reduced Instruction Set Computer[縮小命令セットコンピュータ])アーキテクチャー・ベースのサーバー62;サーバー63;ブレードサーバー64;ストレージ装置65;およびネットワークおよびネットワーク・コンポーネント66を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバー・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0073】
仮想化層70が提供する抽象化層からは、仮想エンティティの以下の例が提供されうる:仮想サーバー71;仮想記憶72;仮想プライベートネットワークを含む仮想ネットワーク73;仮想アプリケーションおよびオペレーティングシステム74;および仮想クライアント75。
【0074】
一例では、管理層80は、以下に記載される機能を提供することができる。資源プロビジョニング(Resource provisioning)81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的な調達を提供する。計測および値付け(Metering and Pricing)82は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡、およびこれらの資源の消費に対する料金請求または明細請求書発行を提供する。一例では、これらの資源は、アプリケーション・ソフトウェア・ライセンスを含んでいてもよい。セキュリティは、クラウド消費者とタスクのための身元確認と、データおよびその他の資源のための保護を提供する。ユーザーポータル83は、消費者およびシステム管理者のためにクラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング資源の割り当ておよび管理を提供する。サービスレベル合意(Service Level Agreement、SLA)の立案および充足85は、SLAに従って将来の要件が予測されるクラウド・コンピューティング資源の事前の手配および調達を提供する。
【0075】
作業負荷層90は、そのためにクラウド・コンピューティング環境が利用されうる機能の例を提供する。この層から提供されうる作業負荷および機能の例は:マッピングおよびナビゲーション91;ソフトウェア開発およびライフサイクル管理92;仮想教室教育配信93;データ分析処理94;トランザクション処理95;およびビデオ符号化96を含む。ビデオ符号化96は、符号化ツリー単位サイズ・シンタックスを置き換える別個のフラグを使ってビデオ・データを符号化してもよい。
【0076】
いくつかの実施形態は、統合の任意の可能な技術的詳細レベルでの、システム、方法、および/またはコンピュータ読み取り可能媒体に関することができる。コンピュータ読み取り可能媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能なプログラム命令をその上に有するコンピュータ読み取り可能な非一時記憶媒体(またはメディア)を含むことができる。
【0077】
コンピュータ読み取り可能記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有体の装置であってもよい。コンピュータ読み取り可能記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光記憶、電磁記憶デバイス、半導体記憶デバイス、またはこれらの好適な組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能記憶媒体のより具体的な例の網羅的でないリストは、以下を含む:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリースティック、フロッピーディスク、パンチカードもしくはそこに命令が記録される溝内の隆起構造のような機械的にエンコードされるデバイス、およびこれらの任意の好適な組み合わせ。本明細書で使用されるコンピュータ読み取り可能記憶媒体は、たとえば、電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を通って伝搬する電磁波(たとえば、光ファイバーケーブルを通過する光パルス)、またはワイヤを通って伝送される電気信号のような、一時的な信号自身であるとは解釈されない。
【0078】
本明細書に記載されるコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体からそれぞれのコンピューティング/処理装置にダウンロードされることができ、あるいは、ネットワーク、たとえば、インターネット、ローカルエリアネットワーク、広域ネットワークおよび/または無線ネットワークを介して、外部コンピュータまたは外部記憶装置にダウンロードされることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバーを含むことができる。各コンピューティング/処理装置内のネットワークアダプターカードまたはネットワークインターフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受領し、該コンピュータ読み取り可能なプログラム命令を、それぞれのコンピューティング/処理装置内のコンピュータ読み取り可能な記憶媒体での記憶のために転送する。
【0079】
演算を実行するためのコンピュータ読み取り可能なプログラム・コード/命令は、アセンブラ命令、命令セットアーキテクチャー(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような手続き型プログラミング言語を含む、一つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ読み取り可能なプログラム命令は、完全にユーザーのコンピュータ上で、一部はユーザーのコンピュータ上で、スタンドアローンのソフトウェア・パッケージとして、一部はユーザーのコンピュータ上、一部はリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバー上で、実行されてもよい。この最後のシナリオでは、リモート・コンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザーのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して(たとえば、インターネットサービスプロバイダーを使ってインターネットを通じて)なされてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、諸側面または諸動作を実行するために、コンピュータ読み取り可能なプログラム命令の状態情報を利用して、電子回路をパーソナライズすることによって、コンピュータ読み取り可能なプログラム命令を実行することができる。
【0080】
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて、該コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図のブロック(単数または複数)において指定された機能/工程を実施するための手段を生成するように、機械を生成することができる。これらのコンピュータ読み取り可能なプログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、および/または他の装置を特定の仕方で機能するよう指揮することができるコンピュータ読み取り可能記憶媒体に記憶されてもよく、それにより、その中に命令が記憶されているコンピュータ読み取り可能記憶媒体は、フローチャートおよび/またはブロック図のブロック(単数または複数)において指定された機能/工程の諸側面を実施する命令を含む製造物を含む。
【0081】
コンピュータ読み取り可能プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または他の装置にロードされて、該コンピュータ、他のプログラマブル装置、または他の装置で一連の動作段階を実行させて、コンピュータ実装されるプロセスを生じさせる。それにより、コンピュータ、他のプログラマブル装置、または他の装置で実行される命令は、フローチャートおよび/またはブロック図のブロック(単数または複数)において指定された機能/工程を実施する。
【0082】
図面におけるフローチャートおよびブロック図は、さまざまな実施形態によるシステム、方法、およびコンピュータ読み取り可能媒体の可能な実装のアーキテクチャー、機能性、および動作を示す。これに関し、フローチャートまたはブロック図の各ブロックは、指定された論理的機能(単数または複数)を実装するための一つまたは複数の実行可能な命令を含む、モジュール、セグメント、または命令の一部を表わしてもよい。方法、コンピュータ・システム、およびコンピュータ読み取り可能媒体は、図面に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでいてもよい。いくつかの代替的な実装では、ブロックに記載された機能は、図面に記載された順序から外れて生起してもよい。たとえば、連続して示される2つのブロックは、実際には、同時または実質的に同時的に実行されてもよく、または、それらのブロックは、関わっている機能に依存して、逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図解の各ブロック、およびブロック図および/またはフロー図解のブロックの組み合わせは、指定された機能または工程を実行する、または特殊目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特殊目的のハードウェアベースのシステムによって実現できることにも留意されたい。
【0083】
本明細書に記載されるシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせの種々の形で実装されうることは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の特化した制御ハードウェアまたはソフトウェアコードは、実装を制限するものではない。よって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づくシステムおよび/または方法を実装するように設計されうることが理解される。
【0084】
本明細書で使用されるいかなる要素、工程、または命令も、明示的に述べられない限り、決定的または必須であると解釈されるべきではない。また、本明細書で使用されるところでは、冠詞「a」および「an」は、一つまたは複数の項目を含むことを意図しており、「一つまたは複数」と交換可能に使用することができる。さらに、本明細書で使用されるところでは、用語「集合」は、一つまたは複数の項目(たとえば、関係した項目、関係しない項目、関係した項目と関係しない項目の組み合わせなど)を含むことを意図し、「一つまたは複数」と交換可能に使用することができる。1つだけの項目が意図される場合、用語「1つ」または類似の言辞が使用される。また、本明細書で使用されるところでは、用語「もつ」、「有する」、「有している」などは、オープンエンドの用語であることが意図されている。さらに、「…に基づく」という句は、そうでないことが明記されない限り、「少なくとも部分的には…に基づく」ことを意味することが意図される。
【0085】
さまざまな側面および実施形態の説明が、例解のために提示されてきたが、網羅的であることや、開示された実施形態に限定されることは意図されていない。特徴の組み合わせが特許請求の範囲に記載され、かつ/または明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を制限することは意図されていない。実のところ、これらの特徴の多くは、具体的に請求項に記載されていない、および/または明細書に開示されていない仕方で組み合わされてもよい。以下に列挙される各従属請求項は、1の請求項のみに直接依存することがあるが、可能な実装の開示は、各従属請求項を、特許請求の範囲における他のすべての請求項と組み合わせたものを含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際的な応用または市場で見出される技術に対する技術的な改良を最もよく説明するため、または他の当業者が本明細書で開示される実施形態を理解できるようにするために選択されたものである。
図1
図2
図3A
図3B
図3C
図3D
図4
図5
図6
図7
【外国語明細書】