(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-28
(45)【発行日】2024-07-08
(54)【発明の名称】クラウドワークフロー入出力のためのプロトコル特性をシグナリングする方法
(51)【国際特許分類】
H04L 47/2416 20220101AFI20240701BHJP
G06F 9/48 20060101ALI20240701BHJP
【FI】
H04L47/2416
G06F9/48 300H
(21)【出願番号】P 2022567239
(86)(22)【出願日】2022-03-28
(86)【国際出願番号】 US2022022135
(87)【国際公開番号】W WO2022225656
(87)【国際公開日】2022-10-27
【審査請求日】2022-11-04
(32)【優先日】2021-04-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】速水 雄太
(56)【参考文献】
【文献】国際公開第2021/062115(WO,A1)
【文献】国際公開第2020/190986(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力に関連付けられた不必要性に関連し、
前記プロトコル特性は、前記入力に対応する前記プロトコル特性に基づいて、前記NBMPワークフロー又は前記タスクの動作のために前記入力を必要としないことを指定し、
前記プロトコル特性は、前記入力に対応する前記プロトコル特性に基づいて、前記出力が利用可能であることを保証しないことを指定する、
方法。
【請求項2】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力に関連付けられ
たタイミングに関連し、
前記プロトコル特性は、前記入力に対応する前記プロトコル特性に基づいて、
前記入力についての2つの発行されたプル間の最小可能期間又は
前記入力についての2つの発行されたプッシュ間の最小許容期間を指定し、
前記プロトコル特性は、前記出力に対応する前記プロトコル特性に基づいて、
前記出力についての2つの発行されたプッシュ間の最小可能期間又は
前記出力についての2つの発行されたプル間の最小許容期間を指定する、
方法。
【請求項3】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力に関連付けられた順序に関連し、
前記プロトコル特性は、
前記入力又は前記出力についての順序外のプッシュ又はプルの最大長を指定する、
方法。
【請求項4】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力に関連付けられた数に関連し、
前記プロトコル特性は、前記入力に対応する前記プロトコル特性に基づいて、
前記入力についての並列プルの最大可能数又は
前記入力についての並列プッシュの最大許容数を指定し、
前記プロトコル特性は、前記出力に対応する前記プロトコル特性に基づいて、
前記出力についての並列プッシュの最大可能数又は
前記出力についての並列プルの最大許容数を指定する、
方法。
【請求項5】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力に対応す
るタイミングに関連し、
前記プロトコル特性は、前記入力に対応する前記プロトコル特性に基づいて、
前記入力についてのプル後にデータが利用可能になる前の時間量を指定する、
方法。
【請求項6】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力のレイテンシーに関連し、
前記プロトコル特性は、
前記入力又は前記出力についてのプッシュ要求又はプル要求への応答のための最大時間を指定する、
方法。
【請求項7】
少なくとも1つのプロセッサによって実行される方法であって、
ネットワークベースのメディア処理ワークフロー(NBMPワークフロー)又は前記NBMPワークフローに含まれるタスクに対応する記述子から、前記NBMPワークフロー又は前記タスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップと、
前記タスクに基づいて前記NBMPワークフローを導出するステップと、
導出された前記NBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップと、
を含み、
前記プロトコル特性は、
前記NBMPワークフロー又は前記タスクの前記入力又は前記出力
のサイズに関連し、
前記プロトコル特性は、
前記入力又は前記出力についてのプッシュ要求又はプル要求への応答のための最大サイズを指定する、
方法。
【請求項8】
前記記述子は、前記NBMPワークフローに対応する入力記述子、前記NBMPワークフローに対応する出力記述子、前記タスクに対応する入力記述子、又は、前記タスクに対応する出力記述子のうちのいずれかである、請求項1
乃至7のいずれか1項記載の方法。
【請求項9】
メディアシステムのワークフローマネジャであって:
プログラムコードを格納する少なくとも1つのメモリと;
前記プログラムコードを読み込んで、前記プログラムコードによって指示されるように動作するように構成された少なくとも1つのプロセッサと;を備え、
前記プログラムコードは、前記少なくとも1つのプロセッサに、請求項1乃至
8いずれか1項記載の方法を実行させるように構成されている、
ワークフローマネジャ。
【請求項10】
コンピュータコードを格納する非一時的コンピュータ可読媒体であって、前記コンピュータコードは、メディアシステムのワークフローマネジャを実行する少なくとも1つのプロセッサによって実行される時に、前記少なくとも1つのプロセッサに、請求項1乃至
8いずれか1項記載の方法を実行させるように構成されている、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年4月19日に出願された米国仮出願第63/176,799号の優先権を主張しており、その開示は参照によりその全体が本出願に組み込まれている。
【0002】
技術分野
本開示の実施例は、ムービング・ピクチャー・エクスパーツ・グループ(Moving Picture Experts Group (MPEG))ネットワークに基づくメディア処理(Network Based Media Processing (NBMP))、特にNBMPワークフローの管理に向けられている。
【背景技術】
【0003】
MPEGネットワークに基づくメディア処理(NBMP)プロジェクトは、クラウド上でメディアを処理する概念を開発した。NBMP国際仕様草案は、メディア処理の効率化、メディアサービスの迅速かつ低コストな展開、パブリック、プライベート、又はハイブリッドのクラウドサービスを活用した大規模な展開を可提供する能力を示している。
【0004】
NBMPの現在の仕様では、ワークフローの入力又は出力の一般的な特性が定義されているが、プロトコル特性は定義されていない。
【本発明の概要】
【0005】
実施形態によれば、少なくとも1つのプロセッサによって実行される方法であって、ネットワークベースのメディア処理(NBMP)ワークフロー又はNBMPワークフローに含まれるタスクに対応する記述子から、NBMPワークフロー又はタスクの入力又は出力に対応するプロトコル特性を示すシンタックス要素を取得するステップと、タスクに基づいてNBMPワークフローを導出するステップと、導出されたNBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップであって、プロトコル特性は、NBMPワークフロー又はタスクの入力又は出力に関連付けられた、不必要性、タイミング、順序、数(a number)、レイテンシー、及び、サイズ、のうちの少なくとも1つに関連する、ステップと、を含む。
【0006】
実施形態によれば、メディアシステムのワークフローマネジャであって:プログラムコードを格納するように構成された少なくとも1つのメモリと;プログラムコードを読み込んで、プログラムコードによって指示されるように動作するように構成された少なくとも1つのプロセッサと;を備え、プログラムコードは:少なくとも1つのプロセッサに、ネットワークベースのメディア処理(NBMP)ワークフロー又はNBMPワークフローに含まれるタスクに対応する記述子から、NBMPワークフロー又はタスクの入力又は出力に対応するプロトコル特性を示すシンタックス要素を取得させるように構成された取得コードと;少なくとも1つのプロセッサに、タスクに基づいて前記NBMPワークフローを導出させるように構成された導出コードと;少なくとも1つのプロセッサに、導出されたNBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理させるように構成された管理コードであって、プロトコル特性は、NBMPワークフロー又はタスクの入力又は出力に関連付けられた、不必要性、タイミング、順序、数、レイテンシー、及び、サイズ、のうちの少なくとも1つに関連する、管理コードと、を含む。
【0007】
実施形態によれば、非一時的コンピュータ可読媒体はコンピュータコードを格納し、コンピュータコードは、メディアシステムのワークフローマネジャを実行する少なくとも1つのプロセッサによって実行される時に、少なくとも1つのプロセッサに:ネットワークベースのメディア処理(NBMP)ワークフロー又はNBMPワークフローに対応する記述子に含まれるタスクから、NBMPワークフロー又はタスクの入力又は出力に対応するプロトコル特性を示すシンタックス要素を取得させ;タスクに基づいてNBMPワークフローを導出させ;導出されたNBMPワークフローにしたがって少なくとも1つのメディア処理エンティティを管理させ、プロトコル特性は、NBMPワークフロー又はタスクの入力又は出力に関連付けられたサイズ、不必要性、タイミング、順序、数値、及び、呼び出し時間、のうちの少なくとも1つに関連する、ように構成されている。
【図面の簡単な説明】
【0008】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【
図1】
図1は、実施形態による、本明細書に記載される方法、装置及びシステムが実施され得る環境の図である。
【
図2】
図2は、
図1の1つ以上のデバイスの例示的な構成要素のブロック図である。
【
図3】
図3は、実施形態によるNBMPシステムのブロック図である。
【
図4】
図4は、実施形態によるワークフロー管理プロセスの例のブロック図である。
【
図5】
図5は、実施形態によるコンピュータコードの例のブロック図である。
【発明を実施するための形態】
【0009】
図1は、実施形態による、本明細書に記載される方法、装置及びシステムが実施され得る環境100の図である。
図1に示すように、環境100は、ユーザ装置110、プラットフォーム120、及びネットワーク130を含むことができる。環境100のデバイスは、有線接続、無線接続、又は有線接続及び無線接続の組み合わせを介して相互接続することができる。
【0010】
ユーザデバイス110は、プラットフォーム120に関連する情報を受信、生成、記憶、処理、及び/又は提供することが可能な1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバ等)、携帯電話(例えば、スマートフォン、無線電話等)、ウェアラブルデバイス(例えば、スマート眼鏡又はスマートウオッチ)、又は類似のデバイスを含み得る。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信及び/又は送信することができる。
【0011】
プラットフォーム120は、本明細書の他の場所で記載されるように、1つ以上のデバイスを含む。いくつかの実装では、プラットフォーム120は、クラウドサーバ又はクラウドサーバのグループを含み得る。いくつかの実装形態では、プラットフォーム120は、特定の必要性に応じてソフトウェアコンポーネントをスワップインまたはスワップアウトできるようにモジュール式になるように設計することができる。そのようなものとして、プラットフォーム120は、異なる使用のために、容易に及び/又は迅速に再構成され得る。
【0012】
いくつかの実装では、図示のように、プラットフォーム120は、クラウドコンピューティング環境122でホストすることができる。特に、本明細書に記載される実装は、プラットフォーム120をクラウドコンピューティング環境122でホストされるものとして記述されるが、一部の実装では、プラットフォーム120は、クラウドベースではなく(すなわち、クラウドコンピューティング環境の外部で実装され得る)、又は部分的にクラウドベースであってもよい。
【0013】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストする、(1つ以上の)システム及び/又は(1つ以上の)デバイスの物理的なロケーション及び構成に関するエンドユーザー(例えばユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージ等のサービスを提供することができる。図示のように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(まとめて、「複数のコンピューティングリソース124」と称し、個別に「コンピューティングリソース124」と称する)を含み得る。
【0014】
コンピューティングリソース124は、1つ以上の、パーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他の種類の計算及び/又は通信デバイスを含む。いくつかの実装では、コンピューティングリソース124はプラットフォーム120をホストすることができる。クラウドリソースは、コンピューティングリソース124において実行されるコンピューティングインスタンス、コンピューティングリソース124において提供される記憶デバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含み得る。いくつかの実装では、コンピューティングリソース124は、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して、他のコンピューティングリソース124と通信することができる。
【0015】
図1にさらに示すように、コンピューティングリソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想記憶デバイス(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4等のクラウドリソースのグループを含む。
【0016】
アプリケーション124-1は、ユーザデバイス110及び/又はセンサデバイス120によって提供され又はアクセスされることができる1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上にソフトウェアアプリケーションをインストールし実行する必要をなくすことができる。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供可能な他の任意のソフトウェアを含んでもよい。いくつかの実装では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1との間で情報を送受信することができる。
【0017】
仮想マシン124-2は、物理マシンのようなプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による実際のマシンへの使用及び対応の程度に応じて、システム仮想マシン又はプロセス仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行し、単一のプロセスをサポートし得る。いくつかの実装では、仮想マシン124-2は、ユーザ(例えば、ユーザ装置110)に代わって実行することができ、データ管理、同期化、又は長時間データ転送などのクラウドコンピューティング環境122のインフラストラクチャを管理することができる。
【0018】
仮想ストレージ124-3は、ストレージシステム又はコンピューティングリソース124の内で仮想化技術を使用する1つ以上の記憶システム及び/又は1つ以上のデバイスを含む。いくつかの実装では、記憶システムのコンテキスト内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化は、物理ストレージ又は異種ストラクチャ(heterogeneous structure)に関係なくストレージシステムにアクセスできるように、物理ストレージから論理ストレージを抽象化(又は分離)することを称し得る。この分離により、ストレージシステムの管理者は、エンドユーザに対してストレージを管理する方法に柔軟性を持たせることができる。ファイルの仮想化により、ファイルレベルでアクセスされるデータと、ファイルが物理的に保存されるロケーションとの間の依存関係が排除され得る。これにより、ストレージの使用、サーバの統合、及び/又は非破壊ファイル移行のパフォーマンスの最適化が可能になり得る。
【0019】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、コンピューティングリソース124などのホストコンピュータ上で同時に実行されることを可能にするハードウェア仮想化技術を提供することができる。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数の例は、仮想化されたハードウェアリソースを共有することができる。
【0020】
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、コード分割多重アクセス(CDMA)ネットワーク等)、公衆陸上モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話ネットワーク(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバーベースのネットワークなど、及び/又は、これら又は他のタイプのネットワークの組合せ、を含み得る。
【0021】
図1に示すデバイス及びネットワークの数及び配置は、一例として提供される。実際には、
図1に示すものよりも、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は異なる配置のデバイス及び/又はネットワークが存在し得る。さらに、
図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、又は
図1に示す単一のデバイスは、複数の分散デバイスとして実装されてもよい。さらに又はあるいは、環境100のデバイスのセット(例えば、1つ以上のデバイス)は、環境100の別のデバイスセットによって実行されるものとして説明される1つ以上の機能を実行することができる。
【0022】
図2は、
図1の1つ以上のデバイスの例示的な構成要素のブロック図である。デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応し得る。
図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インタフェース270を含み得る。
【0023】
バス210は、デバイス200のコンポーネント間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装される。プロセッサ220は、中央演算処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は、他のタイプの処理コンポーネント、である。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラムされることができる1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、及び/又は、プロセッサ220が使用するための情報及び/又は命令を格納する別のタイプの動的又は静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ及び/又は光学メモリ)を含む。
【0024】
ストレージコンポーネント240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを格納する。例えば、ストレージコンポーネント240は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク及び/又は固体ディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は、対応するドライブとともに、別のタイプの非一時的コンピュータ読取可能媒体を含み得る。
【0025】
入力インタフェース250は、デバイス200が、例えば、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)を介して情報を受信することを可能にするコンポーネントを含む。さらに又はあるいは、入力インタフェース250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含み得る。出力インタフェース260は、デバイス200からの出力情報を提供するコンポーネント(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))を含む。
【0026】
通信インタフェース270は、デバイス200が、有線接続、無線接続、又は有線接続と無線接続の組み合わせなどを介して、他のデバイスと通信することを可能にする送受信器のようなコンポーネント(例えば、送受信器及び/又は別個の受信器及び送信器)を含む。通信インタフェース270によって、デバイス200は他のデバイスから情報を受信し、及び/又は他のデバイスに情報を提供することができることができる。例えば、通信インタフェース270は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、汎用シリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラネットワークインタフェース等を含み得る。
【0027】
デバイス200は、本願明細書において記載されている1つ以上のプロセスを実行し得る。デバイス200は、例えばメモリ230及び/又はストレージコンポーネントコンポーネント240などの非一時的なコンピュータ可読媒体によって格納されるソフトウェア命令を実行するプロセッサ220に応答して、これらのプロセスを実行し得る。コンピュータ可読媒体は、固定メモリデバイスとして本願明細書において定義されている。メモリデバイスには、単一の物理ストレージデバイス内のメモリスペース、又は複数の物理ストレージデバイスにまたがるメモリスペースが含まれる。
【0028】
ソフトウェア命令は、別のコンピュータ可読媒体から、又は通信インタフェース270を介して別のデバイスから、メモリ230及び/又はストレージコンポーネント240に読み込まれることができる。実行される場合、メモリ230及び/又はストレージコンポーネント240に格納されたソフトウェア命令は、プロセッサ220に、本明細書に記載の1つ以上のプロセスを実行させることができる。さらに又はあるいは、物理的に組み込まれた回路(hardwired circuitry)を、ソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて使用されることができ、本明細書に記載の1つ以上のプロセスを実行することができる。したがって、本明細書で説明される実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0029】
図2に示すコンポーネントの数及び配置は、例として提供されてている。実際には、デバイス200は、
図2に示されるものよりも追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる配置のコンポーネントを含み得る。さらに又はあるいは、デバイス200のコンポーネントのセット(例えば、1つ以上のコンポーネント)は、デバイス200の別のコンポーネントのセットによって実行されると記載される1つ以上の機能を実行することができる。
【0030】
本開示の実施例において、NBMPシステム300が、提供される。
図3を参照すると、NBMPシステム300は、NBMPソース310、NBMPワークフローマネジャ320、関数リポジトリ330、1つ以上のメディア処理エンティティ350、メディアソース360、メディアシンク370を含む。
【0031】
NBMPソース310は、サードパーティのエンティティから命令を受け取ることができ、NBMPワークフローAPI392を介してNBMPワークフローマネジャ320と通信することができ、関数ディスカバリAPI391を介して関数リポジトリ330と通信することができる。例えば、NBMPソース310は、NBMPワークフローマネジャ320に(1つ以上の)ワークフロー記述ドキュメント(WDD)を送信し、関数リポジトリ330に格納されている関数の関数記述を読み取ることができ、関数は、関数リポジトリ330のメモリに格納されているメディア処理関数であり、例えば、メディアデコード、特徴点抽出、カメラパラメータ抽出、投影法、シーム情報抽出、ブレンド、後処理、エンコードの関数などである。NBMPソース310には、少なくとも1つのプロセッサと、少なくともプロセッサにNBMPソース310の機能を実行させるように構成されたコードを格納するメモリと、が含まれているか又は実装されている。
【0032】
NBMPソース310は、それぞれがいくつかのパラメータを有することができるいくつかの記述子を含むことができるワークフロー記述ドキュメントを送信することによって、1つ以上のメディア処理エンティティ350によって実行されるタスク352を含むワークフローを作成するように、NBMPワークフローマネジャ320に要求することができる。
【0033】
例えば、NBMPソース310は、関数リポジトリ330に格納されている関数を選択し、ワークフローのための要件、入出力データ、必要な関数などの詳細の記述するためのさまざまな記述子を含むワークフロー記述ドキュメントをNBMPワークフローマネジャ320に送信できる。ワークフロー記述ドキュメントには、一連のタスクの記述と、1つ以上のメディア処理エンティティ350によって実行されるべきタスク352の入出力の接続マップを含むことができる。NBMPワークフローマネジャ320がNBMPソース310からかかる情報を受信すると、NBMPワークフローマネジャ320は、関数名に基づいてタスクをインスタンス化し、接続マップにしたがってタスクを接続することによって、ワークフローを作成することができる。
【0034】
あるいは又はさらに、NBMPソース310は、NBMPワークフローマネジャ320に対して、一連のキーワードを使用してワークフローを作成するように要求することができる。例えば、NBMPソース310は、NBMPワークフローマネジャ320に、NBMPワークフローマネジャ320が関数リポジトリ330に格納されている適切な関数を見出すために使用する一連のキーワードを含むワークフロー記述ドキュメントを送信できる。NBMPワークフローマネジャ320がNBMPソース310からかかる情報を受信すると、NBMPワークフローマネジャ320は、ワークフロー記述ドキュメントの処理記述子に指定されている可能性のあるキーワードを使用して適切な関数を検索することでワークフローを作成し、ワークフロー記述ドキュメント内の他の記述子を使用してタスクをプロビジョニングし、それらを接続してワークフローを作成することができます。
【0035】
NBMPワークフローマネジャ320は、関数ディスカバリAPI391と同じか又は異なるAPIである関数ディスカバリAPI393を介して関数レポジトリ330と通信することができ、API394(例:NBMPタスクAPI)を介して1つ以上のメディア処理エンティティ350と通信することができる。NBMPワークフローマネジャ320には、少なくとも1つのプロセッサと、少なくとも1つのプロセッサにNBMPワークフローマネジャ320の機能を実行させるように構成されたコードを格納するメモリとが含まれているか又は実装されている。
【0036】
NBMPワークフローマネジャ320は、API394を使用して、1つ以上のメディア処理エンティティ350によって実行可能なワークフローの1つ以上のタスク352を設定、構成、管理、及び監視することができる。一実施形態では、NBMPワークフローマネジャ320はAPI394を使用してタスク352を更新及び破棄することができる。ワークフローのタスク352を構成、管理、及び監視するために、NBMPワークフローマネジャ320は、要求などのメッセージを1つ以上のメディア処理エンティティ350に送信することがあり、各メッセージはいくつかの記述子を有し、それぞれにいくつかのパラメータを有する。タスク352はそれぞれ、メディア処理関数354とメディア処理関数354のための構成353とを含むことができる。
【0037】
一実施形態では、タスクのリストを含まないNBMPソース310(例:タスクのリストの代わりにキーワードのリストを含む)からワークフロー記述ドキュメントを受信した後、NBMPワークフローマネジャ320は、ワークフロー記述ドキュメント内のタスクの記述に基づいてタスクを選択し、関数ディスカバリAPI393を介して関数リポジトリ330を検索して、現在のワークフローのためのタスク352として実行する適切な関数を見出すことができる。例えば、NBMPワークフローマネジャ320は、ワークフロー記述ドキュメントで提供されているキーワードに基づいてタスクを選択できる。NBMPソース310によって提供される一連のタスク記述又はキーワードを使用して適切な関数を識別した後、NBMPワークフローマネジャ320はAPI394を使用してワークフロー内の選択されたタスクを構成できる。例えば、NBMPワークフローマネジャ320は、NBMPソースから受信した情報から構成データを抽出し、構成データに基づいてタスク352を構成できる。
【0038】
1つ以上のメディア処理エンティティ350は、メディアソース360からメディアコンテンツを受信し、NBMPワークフローマネジャ320によって作成されたタスク352を含むワークフローにしたがってメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク370に出力するように構成することができる。1つ以上のメディア処理エンティティ350は、それぞれ少なくとも1つのプロセッサと、少なくとも1つのプロセッサにメディア処理エンティティ350の機能を実行させるように構成されたコードを格納するメモリとを含むか又はそれらによって実装されることができる。
【0039】
メディアソース360は、メディアを格納するメモリを含むことができ、NBMPソース310と統合又は分離することができる。一実施形態では、NBMPワークフローマネジャ320は、ワークフローが準備されたときにNBMPソース310に通知し、メディアソース360は、ワークフローが準備されたという通知に基づいて、メディア処理エンティティ350の1つ以上にメディアコンテンツを送信することができる。
【0040】
メディアシンク370は、少なくとも1つのプロセッサと、1つ以上のメディア処理エンティティ350によって処理されるメディアを表示するように構成された少なくとも1つのディスプレイとを含むか、それらによって実装されることができる。
【0041】
前述のように、NBMPソース310からNBMPワークフローマネジャ320へのメッセージ(例:ワークフローの作成を要求するためのワークフロー記述ドキュメント)、及び、NBMPワークフローマネジャ320から1つ以上のメディア処理エンティティ350へのメッセージ(例えば、ワークフローを実行させるため)は、それぞれにいくつかのパラメータを有することができるいくつかの記述子を含むことができる。実施形態では、APIを使用したNBMPシステム300の任意のコンポーネント間の通信は、それぞれにいくつかのパラメータを有することができるいくつかの記述子を含むことができる。
【0042】
上記のように、NBMPの現在の仕様では、ワークフローの入力又は出力の一般的な特性が定義されているが、プロトコル特性は定義されていない。
【0043】
実施形態によれば、プロトコル特性などのパラメータをNBMP仕様に追加することができる。
【0044】
例えば、実施形態において、下記の表1に示されるそれらのような指標が、NBMPプロセスで用いられることができる。
【表1】
【0045】
上記の表1において、斜体で示された部分は、実施形態に応じて新たに追加されたパラメータを表すことができる。実施形態では、これらのパラメータは、任意の適切なNBMP要素で使用することができる。例えば、実施形態では、表1のパラメータは、例えば、ワークフロー記述ドキュメント(WDD)に含まれることができる入力記述子又は出力記述子、又はタスク記述子などの記述子、又はここで説明するその他の記述子に含まれることができる。
【0046】
表1に示すように、プロトコルパラメータ又は特性は、例えば「不必要性(nonessentiality)」パラメータを含むことができる。実施形態では、このパラメータの値が「真(true)」に設定されている場合、入力を要求しないことができる。実施形態では、このパラメータの値が「真」に設定されている場合、出力が利用可能とは保証されないことがある。このパラメータのデフォルト値は「偽(false)」であることができる。
【0047】
表1に示すように、プロトコルパラメータ又は特性は、たとえば「リクエスト間(between-request)」パラメータを含むことができる。実施形態では、このパラメータは、出力のために発行された2つのプッシュ間の最小可能期間、又は入力のために発行された2つのプッシュ間の最小許容期間を指定することができる。実施形態では、このパラメータは、入力のための発行された2つのプル間の最小可能期間、又は出力のための発行された2つのプル間の最小許容期間を指定することができる。
【0048】
表1に示すように、プロトコルパラメータ又は特性は、たとえば「順序外(out-of-order)」パラメータを含むことができる。実施形態において、このパラメータは順序外のプッシュ又はプルの最大長を指定することができる。実施形態では、デフォルトは「0」であることができる。
【0049】
表1に示すように、プロトコルパラメータ又は特性は、たとえば「並列リクエスト(parallel-requests)」パラメータを含むことができる。実施形態において、このパラメータは、出力可能な最大プッシュ数、入力可能な最大プル数、入力可能な最大プッシュ数、又は出力可能な最大プル数を指定することができる。実施形態では、デフォルトは「0」であることができる。
【0050】
表1に示すように、プロトコルパラメータ又は特性は、例えば「期間(duration)」パラメータを含むことができる。実施形態において、このパラメータは、データがプルされた時点から出力に表示される、ミリ秒単位のデータの可用性を指定できる。
【0051】
表1に示すように、プロトコルパラメータ又は特性には、たとえば「応答レイテンシー(response-latency)」パラメータを含むことができる。実施形態において、このパラメータはプルリクエスト又はプッシュリクエストの最大応答時間を指定することができる。
【0052】
表1に示すように、プロトコルパラメータ又は特性には、たとえば「最大ペイロード(max-payload)」パラメータを含むことができる。実施形態では、このパラメータは、最大サイズ、例えば、プッシュリクエストの最大ペイロードサイズ、又はプルリクエストへの応答を指定することができる。
【0053】
実施形態では、パラメータ「不必要性(nonessentiality)」は、入力と出力の一般的な特性に対応することができ、特定のプロトコルに直接関連しないことがある。
【0054】
したがって、実施形態は、NMBP標準におけるワークフロー又はタスクの入力/出力のためにプル又はプッシュプロトコルの一般的な特性を定義することができるパラメータのセットを定義することに関連することができ、リクエストの頻度、それらの間の最小期間、並列及び/又は順序外のリクエストの可能性、及びそれらの最大サイズ、応答レイテンシー及び最大ペイロードサイズを定義できる。
【0055】
実施形態は、NBMPワークフロー又はタスクの入力と出力のための不必要性パラメータにさらに関し、このフラグが設定されている場合、これは、NBMPワークフロー又はタスクの適切な動作に入力の可用性が不可欠ではないこと、又は出力が使用できない場合があることを意味することができ、したがって、NBMPワークフローのさらなる処理又は出力に不可欠な出力と見なされるべきではない。
【0056】
図3及び4を参照して、NBMPワークフローマネジャ320によって実行されるプロセス400を以下に説明する。
【0057】
図4はプロセス400の例示的フローチャートである。
【0058】
図4に示すように、プロセス400は、ネットワークベースのメディア処理(NBMP)ワークフロ
ー又はNBMPワークフローに含まれるタスク
に対応する記述子から、NBMPワークフロー又はタスクの入力又は出力に対応するプロトコルのプロトコル特性を示すシンタックス要素を取得するステップ(ブロック410)を含むことができる。
【0059】
図4にさらに示すように、プロセス400には、タスクに基づいてNBMPワークフローを導出するステップを含むことができる(ブロック420)。
【0060】
図4にさらに示すように、プロセス400は、導出されたワークフローにしたがって少なくとも1つのメディア処理エンティティを管理するステップを含むことができる(ブロック430)。
【0061】
実施形態において、記述子は、NBMPワークフローに対応する入力記述子、NBMPワークフローに対応する出力記述子、タスクに対応する入力記述子、又はタスクに対応する出力記述子のうちのいずれかであることができる。
【0062】
実施形態において、プロトコル特性は、入力又は出力に関連付けられた不必要性に関連することができ、プロトコル特性は、入力に対応するプロトコル特性に基づいて、NBMPワークフロー又はタスクの動作のために入力を必要としないことを指定し、プロトコル特性は、入力に対応するプロトコル特性に基づいて、出力が利用可能であることを保証しないことを指定する。
【0063】
実施形態において、プロトコル特性が入力又は出力に関連付けられたタイミングに関連することができ、プロトコル特性は、入力に対応するプロトコル特性に基づいて、2つの発行されたプル間の最小可能期間又は2つの発行されたプッシュ間の最小許容期間を指定し、プロトコル特性は、出力に対応するプロトコル特性に基づいて、2つの発行されたプッシュ間の最小可能期間又は2つの発行されたプル間の最小許容期間を指定する。
【0064】
実施形態において、プロトコル特性は入力又は出力に関連付けられた順序に関連することができ、プロトコル特性は順序外のプッシュ又はプルの最大長を指定することができる。
【0065】
実施形態において、プロトコル特性は、入力又は出力に関連付けられた数(the number)に関連することができ、プロトコル特性は、入力に対応するプロトコル特性に基づいて、並列プルの最大可能数又は並列プッシュの最大許容数を指定し、プロトコル特性は、出力に対応するプロトコル特性に基づいて、並列プッシュの最大可能数又は並列プルの最大許容数を指定する。
【0066】
実施形態において、プロトコル特性は、入力又は出力に対応するタイミングに関連することができ、プロトコル特性は、入力に対応するプロトコル特性に基づいて、プル後にデータが利用可能になる前の時間量を指定することができる。
【0067】
実施形態において、プロトコル特性は入力又は出力のレイテンシーに関連することができ、プロトコル特性は、プッシュリクエスト又はプルリクエストへの応答のための最大時間を指定することができる。
【0068】
実施形態において、プロトコル特性は、入力又は出力のサイズに関連することができ、プロトコル特性は、プッシュリクエスト又はプルリクエストへの応答のための最大サイズを指定することができる。
【0069】
図4は、プロセス400のブロック例を示しているが、いくつかの実装においては、プロセス800は、
図4に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含み得る。さらに又はあるいは、プロセス800のブロックのうちの2つ以上は、並行して実施され得る。
【0070】
さらに、提案された方法は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施され得る。一実施形態では、1つ以上のプロセッサが、提案された方法の1つ以上を実行するために、非一時的なコンピュータ読取可能媒体に格納されたプログラムを実行する。
【0071】
本開示の実施形態によれば、コンピュータコード又はプログラムコードを格納するメモリを備えたプロセッサを少なくとも1つ提供することができる。コンピュータコードは、少なくとも1つのプロセッサによって実行されたときに、本開示の任意の数の態様を実行するように構成することができる。
【0072】
例えば、
図5を参照すると、コンピュータコード500はNBMPシステム300に実装されることができる。例えば、コンピュータコードはNBMPワークフローマネジャ320のメモリに格納され、NBMPワークフローマネジャ320の少なくとも1つのプロセッサによって実行されることごできる。コンピュータコードには、例えば、取得コード510、導出コード520、管理コード530などが含まれる。
【0073】
実施形態では、取得コード510、導出コード520、及び管理コード530を、NBMPワークフローマネジャ320に、
図4を参照して上記のプロセスの態様を実行させるようにそれぞれ構成することができる。
【0074】
本開示の実施形態は、別々に、又は任意の順序で組み合わせて使用され得る。さらに、実施形態(及びそれらの方法)の各々は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装され得る。一実施例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0075】
前述の開示は、図示及び解説を提供するが、網羅的であることを意図するものではなく、また、実施形態を開示された正確な形態に限定することを意図するものでもない。変更及び変形は、上記の教示に照らして可能であるか、又は実施形態の実施から取得することができる。
【0076】
本明細書で使用される場合、用語「構成要素」は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせとして広く解釈されることを意図している。
【0077】
特徴の組み合わせが特許請求の範囲に記載され、及び/又は、明細書に開示されているとしても、これらの組み合わせは、可能な実施の開示を制限するものではない。実際、これらの特徴の多くは、請求項に具体的に記載されていない、及び/又は明細書に開示されていない方法で組み合わせることができる。以下に列挙される各従属クレームは、1つの請求項のみに直接従属し得るが、可能な実装の開示には、特許請求の範囲内の他のすべての請求項と組み合わされた各従属請求項が含まれる。
【0078】
本明細書中で使用されるいかなる要素、作用、又は命令も、明示的に記述されない限り、重要又は必須と解釈されるべきではない。また、本明細書で使用される「1つ(”a” and ”an”)」という用語は、1つ以上のアイテムを含むことを意図し、「1つ以上(one or more)」と互換的に使用することができる。さらに、本明細書で使用される「セット(”set”)」という用語は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムとの組み合わせ等を含むことを意図し、「1つ以上」と互換的に使用することができる。1つのアイテムのみが意図される場合、用語「1つ(”one”)」又は類似の言語が使用される。また、本明細書で使用される場合、「有する、備える、持つ(”has,” ”have,” ”having,”)」などの用語は、自由形式の用語(open-ended terms)であることが意図されている。さらに、「に基づく(”based on”)」という句は、特に明記しない限り、「少なくとも部分的に、に基づく(”based, at least in part, on”)」を意味することを意図している。