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

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

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

特表2022-522840サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム
<>
  • 特表-サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム 図1
  • 特表-サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム 図2
  • 特表-サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム 図3
  • 特表-サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム 図4
  • 特表-サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム 図5
  • 特表-サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-20
(54)【発明の名称】サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム
(51)【国際特許分類】
   H04N 19/70 20140101AFI20220413BHJP
【FI】
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021552149
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2021-09-02
(86)【国際出願番号】 US2020052199
(87)【国際公開番号】W WO2021061759
(87)【国際公開日】2021-04-01
(31)【優先権主張番号】62/906,079
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/026,966
(32)【優先日】2020-09-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】ウェンジャー,ステファン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159PP03
5C159PP13
5C159RC12
5C159RC22
5C159TB06
5C159UA02
5C159UA05
(57)【要約】
ビデオ・データをエンコードおよびデコードするための方法、コンピュータ・プログラム、およびコンピュータ・システムが提供される。一つまたは複数のサブピクチャーを含むビデオ・データが受領される。前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値が、信号伝達される。ビデオ・データは、信号伝達される識別子値に基づいてエンコードおよび/またはデコードされる。
【特許請求の範囲】
【請求項1】
プロセッサによって実行されるビデオ・デコードの方法であって:
一つまたは複数のサブピクチャーを含むビデオ・データを受領する段階と;
信号伝達された、前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値を受領する段階と;
信号伝達された識別子値に基づいて前記ビデオ・データをデコードする段階とを含む、
方法。
【請求項2】
前記識別子値は、前記ビデオ・データに関連するシーケンス・パラメータ・セット内のフラグをチェックすることに基づいて決定される、請求項1に記載の方法。
【請求項3】
前記フラグは、前記識別子値がネットワーク抽象化層単位ヘッダにおいて信号伝達されることを示す、請求項2に記載の方法。
【請求項4】
前記識別子値は、前記ネットワーク抽象化層単位ヘッダに関連する識別子値に等しく設定される、請求項3に記載の方法。
【請求項5】
前記フラグは、前記識別子値がスライスヘッダにおいて信号伝達されることを示す、請求項2に記載の方法。
【請求項6】
前記識別子値は、前記スライスヘッダに関連する識別子値に等しく設定される、請求項5に記載の方法。
【請求項7】
前記識別子値の長さが、シーケンス・パラメータ・セットによって信号伝達される、請求項1ないし6のうちいずれか一項に記載の方法。
【請求項8】
請求項1ないし7のうちいずれか一項に記載の方法を実行するように構成されたコンピュータ・システム。
【請求項9】
一つまたは複数のプロセッサに請求項1ないし7のうちいずれか一項に記載の方法を実行させるためのコンピュータ・プログラム。
【請求項10】
プロセッサによって実行されるビデオ・エンコードの方法であって:
一つまたは複数のサブピクチャーを含むビデオ・データを受領する段階と;
前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値を信号伝達する段階と;
信号伝達される識別子値に基づいて前記ビデオ・データをエンコードする段階とを含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2019年9月25日に出願された米国仮特許出願第62/906,079号、および2020年9月21日に出願された米国特許出願第17/026,966号からの優先権を主張し、それらの全体が本明細書に組み込まれる。
【0002】
分野
本開示は、概括的には、データ処理の分野に関し、より詳細には、ビデオ・エンコードおよびデコードに関する。
【背景技術】
【0003】
本開示は、概括的には、データ処理の分野に関し、より詳細には、ビデオ・エンコードおよびデコードに関する。
【0004】
360度ビデオや点群〔ポイントクラウド〕のようなさまざまなアプリケーションは、サブピクチャーベースの分割機構を使用することができる。各サブピクチャーは、ピクチャー内の特定の領域に関連していてもよい対応するIDを有してもよい。サブピクチャーIDを使用することにより、デコーダまたはシステム要素は、どのビデオ符号化層ネットワーク抽象化層単位が選択されたサブピクチャーID値に関連するターゲット・エリアに属するかを認識することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
実施形態は、ビデオ符号化〔コーディング〕のための方法、システム、およびコンピュータ読み取り可能媒体に関する。ある側面によれば、ビデオ符号化のための方法が提供される。この方法は、一つまたは複数のサブピクチャーを含むビデオ・データを受領することを含んでいてもよい。前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値が信号伝達〔シグナリング〕される。ビデオ・データは、信号伝達される識別子値に基づいてエンコードおよび/またはデコードされる。
【0006】
別の側面によれば、ビデオ符号化のためのコンピュータ・システムが提供される。コンピュータ・システムは、一つまたは複数のプロセッサ、一つまたは複数のコンピュータ読み取り可能メモリ、一つまたは複数のコンピュータ読み取り可能な有体の記憶装置、およびプログラム命令を含んでいてもよい。該プログラム命令は、前記一つまたは複数のメモリの少なくとも1つを介して前記一つまたは複数のプロセッサの少なくとも1つによって実行するために、前記一つまたは複数の記憶装置の少なくとも1つに記憶されており、それによりコンピュータ・システムは方法を実行できる。該方法は、一つまたは複数のサブピクチャーを含むビデオ・データを受領することを含んでいてもよい。前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値が信号伝達される。ビデオ・データは、信号伝達される識別子値に基づいてエンコードおよび/またはデコードされる。
【0007】
さらに別の側面によれば、ビデオ符号化のためのコンピュータ読み取り可能媒体が提供される。コンピュータ読み取り可能媒体は、一つまたは複数のコンピュータ読み取り可能記憶装置と、前記一つまたは複数の有体な記憶装置のうちの少なくとも1つに記憶されたプログラム命令とを含んでいてもよく、該プログラム命令はプロセッサによって実行可能である。プログラム命令は、方法を実行するためにプロセッサによって実行可能であり、該方法はしかるべく、一つまたは複数のサブピクチャーを含むビデオ・データを受領することを含んでいてもよい。前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値が信号伝達される。ビデオ・データは、信号伝達される識別子値に基づいてエンコードおよび/またはデコードされる。
【図面の簡単な説明】
【0008】
これらおよび他の目的、特徴および利点は、添付の図面との関連で読まれる例示的な実施形態の以下の詳細な説明から明らかになるであろう。図面は詳細な説明との関連で当業者の理解を容易にすることにおける明確性のためのものであるため、図面のさまざまな特徴は正確なスケールではない。
図1】少なくとも1つの実施形態によるネットワーク接続されたコンピュータ環境を示す。
図2】少なくとも1つの実施形態による例示的なシンタックス要素である。
図3】少なくとも1つの実施形態による、ビデオ符号化のためのプログラムによって実行されるステップを示す動作フローチャートである。
図4】少なくとも1つの実施形態による、図1に示されたコンピュータおよびサーバーの内部および外部コンポーネントのブロック図である。
図5】少なくとも1つの実施形態による、図1に示されるコンピュータ・システムを含む例示的なクラウド・コンピューティング環境のブロック図である。
図6】少なくとも1つの実施形態による、図5の例示的なクラウド・コンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0009】
請求項に係る構造および方法の詳細な実施形態が本明細書に開示されるが、開示される実施形態は、単に、さまざまな形で具現されうる請求項に係る構造および方法を例示するに過ぎないことが理解できる。しかしながら、これらの構造および方法は、多くの異なる形で具現でき、本明細書に記載の例示的な実施形態に限定されるものと解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が十全かつ完全であり、当業者に範囲を完全に伝えるように提供される。説明では、周知の特徴および技法の詳細は、提示される実施形態を不必要に埋没させることを避けるために省略されることがある。
【0010】
実施形態は、概括的には、データ処理の分野に関し、より詳細には、ビデオ・エンコードおよびデコードに関する。以下に説明する例示的な実施形態は、とりわけ、ネットワーク抽象化層単位ヘッダまたはスライスヘッダにおいて、ビデオ・データに関するサブピクチャー識別子を信号伝達するシステム、方法およびコンピュータ・プログラムを提供する。よって、いくつかの実施形態は、サブピクチャー識別子のフレキシブルな信号伝達を通じて、改善されたビデオ・エンコードおよびデコード効率を許容することによって、コンピューティングの分野を改善する能力を有する。
【0011】
前述のように、360度のビデオや点群のようなさまざまなアプリケーションは、サブピクチャーに基づく分割機構を使用することができる。各サブピクチャーは、ピクチャー内の特定の領域に関連してもよい対応するIDを有してもよい。サブピクチャーIDを使用することにより、デコーダまたはシステム要素は、どのビデオ符号化層ネットワーク抽象化層単位が選択されたサブピクチャーID値に関連するターゲット・エリアに属するかを認識することができる。
【0012】
しかしながら、シンタックス要素サブピクチャーIDは信号伝達される必要があり、一方、サブピクチャーIDを特定の領域に関連付けるマッピングテーブルは、パラメータ集合内に存在する可能性がある。サブピクチャーIDは、ネットワーク抽象層単位ヘッダまたはスライスヘッダにおいて信号伝達されてもよい。ネットワーク抽象化層単位ヘッダは、システム要素によって容易にアクセス可能であるが、計算コストが高く、nuh_layer_idおよびnal_unit_typeによって事前に占有される。スライスヘッダにおける早い位置にある固定長エリアは、より多くのスペースをもつことがありうるが、毎回システム要素がビデオ符号化層ペイロードにおけるスライスヘッダにアクセスするべきなので、ネットワーク抽象化層単位ヘッダよりもアクセス性は悪い。よって、ネットワーク抽象層単位ヘッダとスライスヘッダの両方を使用する、サブピクチャーIDの柔軟な信号伝達を許容することが有利でありうる。
【0013】
さまざまな実施形態による方法、装置(システム)、およびコンピュータ読み取り可能な媒体のフローチャートおよび/またはブロック図を参照して、諸側面が本明細書に記載される。フローチャート図解および/またはブロック図の各ブロック、およびフローチャート図解および/またはブロック図のブロックの組み合わせは、コンピュータ読み取り可能なプログラム命令によって実装できることが理解されるであろう。
【0014】
ここで図1を参照すると、ネットワーク接続されたコンピュータ環境の機能ブロック図が、サブピクチャー識別子の柔軟な信号伝達に基づいてビデオ・データを符号化するためのビデオ符号化システム100(以下、「システム」)を示している。図1は、1つの実装の例示にすぎず、種々の実施形態が実装されうる環境に関するいかなる制限も含意しないことが理解されるべきである。設計および実装の要件に基づいて、図示された環境に対する多くの修正がなされてもよい。
【0015】
システム100は、コンピュータ102およびサーバー・コンピュータ114を含むことができる。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバー・コンピュータ114と通信してもよい。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶され、ユーザーとインターフェースし、サーバー・コンピュータ114と通信できるようにされたソフトウェア・プログラム108とを含んでいてもよい。図4を参照して後述するように、コンピュータ102は、それぞれ内部コンポーネント800Aおよび外部コンポーネント900Aを含んでいてもよく、サーバー・コンピュータ114は、それぞれ内部コンポーネント800Bおよび外部コンポーネント900Bを含んでいてもよい。コンピュータ102は、たとえば、モバイル装置、電話、パーソナル・デジタル・アシスタント、ネットブック、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意のタイプのコンピューティング装置であってもよい。
【0016】
サーバー・コンピュータ114はまた、図5および図6に関して後述するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャー(IaaS)のようなクラウド・コンピューティング・サービス・モデルにおいて動作してもよい。サーバー・コンピュータ114はまた、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウドのようなクラウド・コンピューティング展開モデル内に位置してもよい。
【0017】
サブピクチャー識別子の柔軟な信号伝達に基づいてビデオ・データを符号化するために使用されうるサーバー・コンピュータ114は、データベース112と対話することができるビデオ符号化プログラム116(以下、「プログラム」)を実行することができるようにされている。ビデオ符号化プログラム方法は、図3に関して以下により詳細に説明される。ある実施形態では、コンピュータ102は、ユーザー・インターフェースを含む入力装置として動作してもよく、一方、プログラム116は、主としてサーバー・コンピュータ114上で実行されてもよい。ある代替的な実施形態では、プログラム116は、主として一つまたは複数のコンピュータ102上で実行され、一方、サーバー・コンピュータ114は、プログラム116によって使用されるデータの処理および記憶のために使用されうる。プログラム116は、スタンドアローンのプログラムであってもよいし、あるいはより大きなビデオ符号化プログラムに統合されてもよいことに留意しておくべきである。
【0018】
しかしながら、プログラム116のための処理は、いくつかの場合には、コンピュータ102とサーバー・コンピュータ114との間で任意の比率で分担されうることに留意しておくべきである。別の実施形態では、プログラム116は、2つ以上のコンピュータ、サーバー・コンピュータ、またはコンピュータとサーバー・コンピュータの何らかの組み合わせ、たとえば、ネットワーク110を横切って単一のサーバー・コンピュータ114と通信する複数のコンピュータ102で動作することができる。別の実施形態では、たとえば、プログラム116は、ネットワーク110を横切って複数のクライアント・コンピュータと通信する複数のサーバー・コンピュータ114上で動作することができる。あるいはまた、プログラムは、ネットワークを横切ってサーバーおよび複数のクライアント・コンピュータと通信するネットワーク・サーバー上で動作してもよい。
【0019】
ネットワーク110は、有線接続、無線接続、光ファイバー接続、またはそれらの何らかの組み合わせを含んでいてもよい。一般に、ネットワーク110は、コンピュータ102とサーバー・コンピュータ114との間の通信をサポートする接続とプロトコルとの任意の組み合わせであることができる。ネットワーク110は、たとえば、ローカルエリアネットワーク(LAN)、インターネットのような広域ネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)のような電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラーネットワーク(たとえば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワーク等)、公衆陸上移動ネットワーク(PLMN)、都市圏ネットワーク(MAN)、私設ネットワーク、アドホックネットワーク、イントラネット、光ファイバーベースのネットワーク等、および/またはこれらのまたは他のタイプのネットワークの組み合わせのようなさまざまなタイプのネットワークを含むことができる。
【0020】
図1に示される装置およびネットワークの数および配置は、一例として与えられている。実際には、図1に示されたものよりも、追加の装置および/またはネットワーク、より少ない装置および/またはネットワーク、異なる装置および/またはネットワーク、または異なる配置の装置および/またはネットワークがあってもよい。さらに、図1に示される2つ以上の装置が単一の装置内に実装されてもよく、または図1に示される単一の装置が複数の分散された装置として実装されてもよい。追加的または代替的に、システム100の装置の集合(たとえば、一つまたは複数の装置)は、システム100の装置の別の集合によって実行されるものとして記述される一つまたは複数の機能を実行してもよい。
【0021】
ここで図2を参照すると、例示的なシンタックス要素200が示されている。シンタックス要素200は、サブピクチャー識別子を信号伝達するために使用されうる。
【0022】
use_nuh_layer_id_as_subpic_id_flagが1に等しいことは、シーケンス・パラメータ・セットを参照する符号化ビデオ・シーケンスにおいてnuh_layer_idをもつ各ビデオ符号化層ネットワーク抽象化層単位の変数subpicIDの値が、nuh_layer_idに等しいと推定されることを指定してもよい。
use_nuh_layer_id_as_subpic_id_flagが0に等しいことは、シーケンス・パラメータ・セットを参照する符号化ビデオ・シーケンスにおいてnuh_layer_idをもつ各ビデオ符号化層ネットワーク抽象化層単位の変数subpicIDの値が、スライスヘッダに存在するsubpic_idに等しいと推定されることを指定してもよい。subpics_present_flagが1に等しく、sps_video_parameter_set_idが0に等しい、すなわち、現在の符号化されるビデオ・シーケンスが複数のサブピクチャーをもつ単一の層からなる場合、use_nuh_layer_id_as_subpic_id_flagの値は1に等しくてもよい。そうでない場合には、use_nuh_layer_id_as_subpic_id_flagは0に等しくてもよい。ビットストリーム適合性のために、sps_video_parameter_set_idが1に等しいか、またはsubpics_present_flagが0に等しいとき、use_nuh_layer_id_as_subpic_id_flagの値は0に等しくてもよい。
【0023】
subpic_idはスライスのサブピクチャーIDを指定してもよい。subpic_idの長さは(subpic_id_len_minus1+1)ビットである。subpic_id_len_minus1は、シーケンス・パラメータ・セットまたは他の位置に存在してもよい。
【0024】
ここで図3を参照すると、ビデオ・データを符号化するための方法300のステップを示す動作フローチャートが示されている。いくつかの実装では、図3の一つまたは複数のプロセス・ブロックは、コンピュータ102(図1)およびサーバー・コンピュータ114(図1)によって実行されてもよい。いくつかの実装では、図3の一つまたは複数のプロセス・ブロックは、コンピュータ102およびサーバー・コンピュータ114とは別個の、またはそれらを含む、別の装置または装置群によって実行されてもよい。
【0025】
302では、方法300は、一つまたは複数のサブピクチャーを有するビデオ・データを受領することを含む。
【0026】
304では、方法300は、前記一つまたは複数のサブピクチャーのうちからのあるサブピクチャーに対応する識別子値を信号伝達することを含む。
【0027】
306では、方法300は、信号伝達される識別子値に基づいてビデオ・データを符号化することを含む。
【0028】
図3は、1つの実装の例解を提供しているだけであり、種々の実施形態がどのように実装されうるかに関して限定を含意しないことが理解されうる。設計および実装要件に基づいて、図示された環境に対する多くの修正がなされてもよい。
【0029】
図4は、ある例示的実施形態による、図1に示されたコンピュータの内部および外部コンポーネントのブロック図 400である。図4は、1つの実装の図を与えているだけであり、異なる実施形態がどのように実施されうるかに関していかなる制限も含意しないことが理解されうる。設計および実装要件に基づいて、図示された環境に対する多くの修正がなされてもよい。
【0030】
コンピュータ102(図1)およびサーバー・コンピュータ114(図1)は、図4に示される内部コンポーネント800A、Bおよび外部コンポーネント900A、Bのそれぞれの集合を含んでいてもよい。内部コンポーネント800の集合のそれぞれは、一つまたは複数のバス826上の一つまたは複数のプロセッサ820、一つまたは複数のコンピュータ読み取り可能RAM 822および一つまたは複数のコンピュータ読み取り可能ROM 824と、一つまたは複数のオペレーティングシステム828と、および一つまたは複数のコンピュータ読み取り可能な有体な記憶デバイス830とを含む。
【0031】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理コンポーネントである。いくつかの実装では、プロセッサ820は、機能を実行するようにプログラムされることができる一つまたは複数のプロセッサを含む。バス826は、内部コンポーネント800A、B間の通信を可能にするコンポーネントを含む。
【0032】
一つまたは複数のオペレーティングシステム828、ソフトウェア・プログラム108(図1)、およびサーバー・コンピュータ114(図1)上のビデオ符号化プログラム116(図1)は、それぞれのRAM 822のうちの一つまたは複数を介してそれぞれのプロセッサ820のうちの一つまたは複数によって実行されるためにそれぞれのコンピュータ読み取り可能な有体な記憶デバイス830のうちの一つまたは複数に記憶される。図4に示される実施形態では、コンピュータ読み取り可能な有体な記憶デバイス830のそれぞれは、内部ハードドライブの磁気ディスク記憶デバイスである。あるいはまた、コンピュータ読み取り可能な有体な記憶デバイス830のそれぞれは、半導体記憶デバイス、たとえばROM 824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、固体ディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/またはコンピュータ・プログラムおよびデジタル情報を記憶することができる他のタイプの非一時的なコンピュータ読み取り可能な有体の記憶デバイスである。
【0033】
内部コンポーネント800A、Bの各集合はまた、CD-ROM、DVD、メモリースティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶デバイスのような一つまたは複数のポータブルなコンピュータ読み取り可能な有体の記憶デバイス936との間で読み書きするためのR/Wドライブまたはインターフェース832をも含む。ソフトウェア・プログラム108(図1)およびビデオ符号化プログラム116(図1)などのソフトウェア・プログラムは、それぞれのポータブルなコンピュータ読み取り可能な有体の記憶デバイス936の一つまたは複数に記憶され、それぞれのR/Wドライブまたはインターフェース832を介して読まれ、それぞれのハードドライブ830にロードされることができる。
【0034】
内部コンポーネント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にロードされる。ネットワークは、銅線、光ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバーを含むことができる。
【0035】
外部コンポーネント900A、Bの集合のそれぞれは、コンピュータ表示モニタ920、キーボード930、およびコンピュータマウス934を含むことができる。外部コンポーネント900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスをも含むことができる。内部コンポーネント800A、Bの集合のそれぞれは、コンピュータ表示モニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840をも含む。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプターまたはインターフェース836は、ハードウェアおよびソフトウェア(記憶デバイス830および/またはROM 824に記憶される)を含む。
【0036】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装は、クラウド・コンピューティング環境に限定されないことが、あらかじめ理解される。むしろ、いくつかの実施形態は、現在知られているか、または後に開発される任意の他のタイプのコンピューティング環境との関連で実装されることができる。
【0037】
クラウド・コンピューティングは、最小限の管理努力またはサービスのプロバイダーとの対話で迅速にプロビジョンおよびリリースできる、構成可能なコンピューティング資源(たとえば、ネットワーク、ネットワーク帯域幅、サーバー、処理、メモリ、ストレージ、アプリケーション、仮想マシン、サービス)の共有プールへの、便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0038】
特徴は以下の通り:
オンデマンド・セルフサービス:クラウド消費者が、サービスプロバイダーとの人的な対話を必要とすることなく、必要に応じて、自動的に、サーバー時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョンすることができる。
広域ネットワーク・アクセス:機能が、ネットワーク上で利用可能であり、標準的な機構を通じてアクセスされる。これは、異種のシンクライアントまたはシッククライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する。
資源プール化:プロバイダーのコンピューティング資源は、マルチテナントモデルを使用して複数の消費者にサービスするためにプールされ、種々の物理資源および仮想資源が、需要に応じて動的に割り当てられ、再割り当てされる。消費者は一般に、提供された資源の正確な位置に関して制御権や知識をもたないが、より高いレベルの抽象化(たとえば、国、州、データセンター)で位置を指定できることがあるという点で、位置の独立性の感覚がある。
迅速な弾力性:機能が、急速にスケールアウトするために、場合によっては自動的に、迅速かつ弾力的にプロビジョンされ、急速にスケールインするために、迅速に解放される。消費者にとって、プロビジョニングのために利用可能な機能はしばしば無制限であるように見え、いつでもどんな量でも購入できる。
測定されるサービス:クラウドシステムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブなユーザーアカウント)に適したあるレベルの抽象化で計量(metering)機能を利用することにより、資源使用を自動的に制御し最適化する。資源の使用が監視され、制御され、報告され、それが利用されるサービスのプロバイダーおよび消費者の両方にとって透明性を提供する。
【0039】
サービス・モデルは次のとおり:
サービスとしてのソフトウェア(Software as a Service、SaaS):消費者に提供される機能は、クラウド・インフラストラクチャー上で実行されるプロバイダーのアプリケーションを使用すること。アプリケーションは、ウェブブラウザーのようなシンクライアント・インターフェースを通じてさまざまなクライアント装置からアクセス可能である(たとえば、ウェブベースの電子メール)。消費者は、ネットワーク、サーバー、オペレーティングシステム、ストレージ、またはさらには個々のアプリケーション機能を含む、基礎になるクラウド・インフラストラクチャーを管理または制御することはない。ただし、限られた、ユーザー固有のアプリケーション構成設定が例外となる可能性がある。
サービスとしてのプラットフォーム(Platform as a Service、PaaS):消費者に提供される機能は、プロバイダーによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションを、クラウド・インフラストラクチャー上に展開すること。消費者は、ネットワーク、サーバー、オペレーティングシステム、ストレージを含む基礎になるクラウド・インフラストラクチャーを管理または制御することはしないが、展開されたアプリケーションや、可能性としてはアプリケーション・ホスティング環境の構成に対して制御権をもつ。
サービスとしてのインフラストラクチャー(Infrastructure as a Service、laaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング資源をプロビジョンすること。ここで、消費者は、オペレーティングシステムおよびアプリケーションを含むことができる任意のソフトウェアを展開し、実行することができる。消費者は、基礎になるクラウド・インフラストラクチャーを管理または制御することはしないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御権、および選択されたネットワーク・コンポーネント(たとえば、ホスト・ファイアウォール)の制限された制御権をもつ。
【0040】
展開モデルは、以下のとおり:
プライベート・クラウド:クラウド・インフラストラクチャーは、ある組織のためだけに運用される。これは、その組織またはサードパーティーによって管理されてもよく、敷地内または敷地外に存在しうる。
コミュニティ・クラウド:クラウド・インフラストラクチャーは、いくつかの組織によって共有され、共有される関心事(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)をもつ特定のコミュニティをサポートする。これは、その組織またはサードパーティーによって管理されてもよく、敷地内または敷地外に存在しうる。
パブリック・クラウド:クラウド・インフラストラクチャーは、一般公衆または大きな産業グループに利用可能にされており、クラウド・サービスを販売する組織によって所有されている。
ハイブリッド・クラウド:クラウド・インフラストラクチャーは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、該2つ以上のクラウドは独自のエンティティのままであるが、データおよびアプリケーションのポータビリティーを可能にする標準化された、または専有の技術(たとえばクラウド間の負荷均衡化のためのクラウドバースティング)によって結びつけられている。
【0041】
クラウド・コンピューティング環境はサービス指向であり、ステートレス性、低結合性、モジュール性、および意味的相互運用性に焦点を当てている。クラウド・コンピューティングの核心には、相互接続されたノードのネットワークからなるインフラストラクチャーがある。
【0042】
図5を参照すると、例示的なクラウド・コンピューティング環境500が示されている。図のように、クラウド・コンピューティング環境500は、一つまたは複数のクラウド・コンピューティング・ノード10を含み、クラウド消費者によって使用するローカル・コンピューティング装置、たとえば、パーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、および/または自動車コンピュータ・システム54Nが、それらと通信することができる。クラウド・コンピューティング・ノード10は、互いに通信することができる。それらは、物理的または仮想的に、上述のようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウドまたはそれらの組み合わせのような一つまたは複数のネットワークにグループ化(図示せず)されてもよい。これにより、クラウド・コンピューティング環境500は、クラウド消費者がローカル・コンピューティング装置上に資源を維持する必要のない、サービスとしてのインフラストラクチャー、プラットフォームおよび/またはソフトウェアを提供することができる。図5に示されるコンピューティング装置54A~Nのタイプは単に例示的であることが意図されており、クラウド・コンピューティング・ノード10およびクラウド・コンピューティング環境500は、任意のタイプのネットワークおよび/またはネットワーク・アドレス指定可能接続(たとえば、ウェブブラウザーを使用する)を通じて任意のタイプのコンピュータ化された装置と通信することができることが理解される。
【0043】
図6を参照すると、クラウド・コンピューティング環境500(図5)によって提供される機能抽象化層600の集合が示されている。図6に示されるコンポーネント、層、および機能は、単に例示的であることが意図されており、実施形態はこれに限定されないことが理解されるべきである。図のように、以下の層および対応する機能が提供される。
【0044】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は:メインフレーム61;RISC(Reduced Instruction Set Computer[縮小命令セットコンピュータ])アーキテクチャー・ベースのサーバー62;サーバー63;ブレードサーバー64;ストレージ装置65;およびネットワークおよびネットワーク・コンポーネント66を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバー・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0045】
仮想化層70が提供する抽象化層からは、仮想エンティティの以下の例が提供されうる:仮想サーバー71;仮想記憶72;仮想プライベートネットワークを含む仮想ネットワーク73;仮想アプリケーションおよびオペレーティングシステム74;および仮想クライアント75。
【0046】
一例では、管理層80は、以下に記載される機能を提供することができる。資源プロビジョニング(Resource provisioning)81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的な調達を提供する。計測および値付け(Metering and Pricing)82は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡、およびこれらの資源の消費に対する料金請求または明細請求書発行を提供する。一例では、これらの資源は、アプリケーション・ソフトウェア・ライセンスを含んでいてもよい。セキュリティは、クラウド消費者とタスクのための身元確認と、データおよびその他の資源のための保護を提供する。ユーザーポータル83は、消費者およびシステム管理者のためにクラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング資源の割り当ておよび管理を提供する。サービスレベル合意(Service Level Agreement、SLA)の立案および充足85は、SLAに従って将来の要件が予測されるクラウド・コンピューティング資源の事前の手配および調達を提供する。
【0047】
作業負荷層90は、そのためにクラウド・コンピューティング環境が利用されうる機能の例を提供する。この層から提供されうる作業負荷および機能の例は:マッピングおよびナビゲーション91;ソフトウェア開発およびライフサイクル管理92;仮想教室教育配信93;データ分析処理94;トランザクション処理95;およびビデオ符号化96を含む。ビデオ符号化96は、柔軟なサブピクチャー識別子信号伝達に基づいてビデオ・データを符号化してもよい。
【0048】
いくつかの実施形態は、統合の任意の可能な技術的詳細レベルでの、システム、方法、および/またはコンピュータ読み取り可能媒体に関することができる。コンピュータ読み取り可能媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能なプログラム命令をその上に有するコンピュータ読み取り可能な非一時記憶媒体(またはメディア)を含むことができる。
【0049】
コンピュータ読み取り可能記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有体の装置であってもよい。コンピュータ読み取り可能記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光記憶、電磁記憶デバイス、半導体記憶デバイス、またはこれらの好適な組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能記憶媒体のより具体的な例の網羅的でないリストは、以下を含む:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリースティック、フロッピーディスク、パンチカードもしくはそこに命令が記録される溝内の隆起構造のような機械的にエンコードされるデバイス、およびこれらの任意の好適な組み合わせ。本明細書で使用されるコンピュータ読み取り可能記憶媒体は、たとえば、電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を通って伝搬する電磁波(たとえば、光ファイバーケーブルを通過する光パルス)、またはワイヤを通って伝送される電気信号のような、一時的な信号自身であるとは解釈されない。
【0050】
本明細書に記載されるコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体からそれぞれのコンピューティング/処理装置にダウンロードされることができ、あるいは、ネットワーク、たとえば、インターネット、ローカルエリアネットワーク、広域ネットワークおよび/または無線ネットワークを介して、外部コンピュータまたは外部記憶装置にダウンロードされることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバーを含むことができる。各コンピューティング/処理装置内のネットワークアダプターカードまたはネットワークインターフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受領し、該コンピュータ読み取り可能なプログラム命令を、それぞれのコンピューティング/処理装置内のコンピュータ読み取り可能な記憶媒体での記憶のために転送する。
【0051】
演算を実行するためのコンピュータ読み取り可能なプログラム・コード/命令は、アセンブラ命令、命令セットアーキテクチャー(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような手続き型プログラミング言語を含む、一つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ読み取り可能なプログラム命令は、完全にユーザーのコンピュータ上で、一部はユーザーのコンピュータ上で、スタンドアローンのソフトウェア・パッケージとして、一部はユーザーのコンピュータ上、一部はリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバー上で、実行されてもよい。この最後のシナリオでは、リモート・コンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザーのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して(たとえば、インターネットサービスプロバイダーを使ってインターネットを通じて)なされてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、諸側面または諸動作を実行するために、コンピュータ読み取り可能なプログラム命令の状態情報を利用して、電子回路をパーソナライズすることによって、コンピュータ読み取り可能なプログラム命令を実行することができる。
【0052】
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて、該コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図のブロック(単数または複数)において指定された機能/工程を実施するための手段を生成するように、機械を生成することができる。これらのコンピュータ読み取り可能なプログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、および/または他の装置を特定の仕方で機能するよう指揮することができるコンピュータ読み取り可能記憶媒体に記憶されてもよく、それにより、その中に命令が記憶されているコンピュータ読み取り可能記憶媒体は、フローチャートおよび/またはブロック図のブロック(単数または複数)において指定された機能/工程の諸側面を実施する命令を含む製造物を含む。
【0053】
コンピュータ読み取り可能プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または他の装置にロードされて、該コンピュータ、他のプログラマブル装置、または他の装置で一連の動作段階を実行させて、コンピュータ実装されるプロセスを生じさせる。それにより、コンピュータ、他のプログラマブル装置、または他の装置で実行される命令は、フローチャートおよび/またはブロック図のブロック(単数または複数)において指定された機能/工程を実施する。
【0054】
図面におけるフローチャートおよびブロック図は、さまざまな実施形態によるシステム、方法、およびコンピュータ読み取り可能媒体の可能な実装のアーキテクチャー、機能性、および動作を示す。これに関し、フローチャートまたはブロック図の各ブロックは、指定された論理的機能(単数または複数)を実装するための一つまたは複数の実行可能な命令を含む、モジュール、セグメント、または命令の一部を表わしてもよい。方法、コンピュータ・システム、およびコンピュータ読み取り可能媒体は、図面に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでいてもよい。いくつかの代替的な実装では、ブロックに記載された機能は、図面に記載された順序から外れて生起してもよい。たとえば、連続して示される2つのブロックは、実際には、同時または実質的に同時的に実行されてもよく、または、それらのブロックは、関わっている機能に依存して、逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図解の各ブロック、およびブロック図および/またはフロー図解のブロックの組み合わせは、指定された機能または工程を実行する、または特殊目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特殊目的のハードウェアベースのシステムによって実現できることにも留意されたい。
【0055】
本明細書に記載されるシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせの種々の形で実装されうることは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の特化した制御ハードウェアまたはソフトウェアコードは、実装を制限するものではない。よって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づくシステムおよび/または方法を実装するように設計されうることが理解される。
【0056】
本明細書で使用されるいかなる要素、工程、または命令も、明示的に述べられない限り、決定的または必須であると解釈されるべきではない。また、本明細書で使用されるところでは、冠詞「a」および「an」は、一つまたは複数の項目を含むことを意図しており、「一つまたは複数」と交換可能に使用することができる。さらに、本明細書で使用されるところでは、用語「集合」は、一つまたは複数の項目(たとえば、関係した項目、関係しない項目、関係した項目と関係しない項目の組み合わせなど)を含むことを意図し、「一つまたは複数」と交換可能に使用することができる。1つだけの項目が意図される場合、用語「1つ」または類似の言辞が使用される。また、本明細書で使用されるところでは、用語「もつ」、「有する」、「有している」などは、オープンエンドの用語であることが意図されている。さらに、「…に基づく」という句は、そうでないことが明記されない限り、「少なくとも部分的には…に基づく」ことを意味することが意図される。
【0057】
さまざまな側面および実施形態の説明が、例解のために提示されてきたが、網羅的であることや、開示された実施形態に限定されることは意図されていない。特徴の組み合わせが特許請求の範囲に記載され、かつ/または明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を制限することは意図されていない。実のところ、これらの特徴の多くは、具体的に請求項に記載されていない、および/または明細書に開示されていない仕方で組み合わされてもよい。以下に列挙される各従属請求項は、1の請求項のみに直接依存することがあるが、可能な実装の開示は、各従属請求項を、特許請求の範囲における他のすべての請求項と組み合わせたものを含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際的な応用または市場で見出される技術に対する技術的な改良を最もよく説明するため、または他の当業者が本明細書で開示される実施形態を理解できるようにするために選択されたものである。
図1
図2
図3
図4
図5
図6
【国際調査報告】