(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-30
(54)【発明の名称】クラウドプラットフォーム上のネットゼロのワークフロー修正をシグナリングするための方法および装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20240920BHJP
【FI】
G06F9/50 150E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560901
(86)(22)【出願日】2022-04-12
(85)【翻訳文提出日】2023-10-02
(86)【国際出願番号】 US2022024357
(87)【国際公開番号】W WO2023059371
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
(57)【要約】
ネットワークベースのメディア処理(NBMP)ワークフロー内のワークフロー修正をシグナリングするための方法および装置。方法は、NBMPワークフローを取得するステップと、NBMPワークフローの作業記述に所定の機能を実行するように構成されたタスクを追加することによって修正されたNBMPワークフローを生成するステップであって、タスクがNBMPワークフローの出力を変更しない、ステップと、タスクグループオブジェクトに基づいて修正されたNBMPワークフローのタスクをシグナリングするステップとを含む。タスクはタスクグループに含まれ、タスクグループオブジェクトのグループ識別情報、タスク識別情報、グループモード、およびネットゼロフラグに基づいて決定される。ネットゼロフラグの状態に基づいて、タスクグループ内の1つまたは複数のタスクは、NBMPワークフローの出力に影響を与えることなく、修正されたNBMPワークフローから削除されてもよい。複数のタスクグループが修正されたNBMPワークフローに含まれ、別々に削除されてもよい。
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される、ワークフロー分割が必要とされるときにネットワークベースのメディア処理(NBMP)ワークフロー修正をシグナリングするための方法であって、前記方法が、
NBMPワークフローを取得するステップと、
前記NBMPワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたNBMPワークフローを生成するステップと、
タスクグループオブジェクトに基づいて前記修正されたNBMPワークフローの前記1つまたは複数のタスクをシグナリングするステップと
を含み、
前記1つまたは複数のタスクが所定の機能を実行するように構成され、前記1つまたは複数のタスクが前記NBMPワークフローの出力を変更しない、方法。
【請求項2】
前記タスクグループオブジェクトに基づいてタスクグループに含まれる前記1つまたは複数のタスクを決定するステップであって、前記タスクグループオブジェクトが、グループ識別情報、タスク識別情報、グループモード、およびネットゼロフラグを含む、ステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記ネットゼロフラグの状態に基づいて、前記修正されたNBMPワークフローから前記タスクグループ内の前記1つまたは複数のタスクを削除するステップであって、前記1つまたは複数のタスクを削除する前記ステップが、前記修正されたNBMPワークフローの出力を変更しない、ステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
前記NBMPワークフローが、前記修正されたNBMPワークフローによって置き換えられる、請求項3に記載の方法。
【請求項5】
前記タスクグループ内の前記1つまたは複数のタスクが、前記グループモードに基づいて同時にシグナリングされる、請求項2に記載の方法。
【請求項6】
前記タスクグループ内の前記1つまたは複数のタスクが、前記グループモードに基づいて別々にシグナリングされる、請求項2に記載の方法。
【請求項7】
前記グループ識別情報が前記タスクグループを一意に識別し、前記タスク識別情報が前記タスクグループに含まれる前記1つまたは複数のタスクを識別する、請求項2に記載の方法。
【請求項8】
前記修正されたNBMPワークフローが1つまたは複数のタスクグループを含み、前記1つまたは複数のタスクグループが前記NBMPワークフローの前記出力を変更せず、前記1つまたは複数のタスクグループが同時にまたは別々に削除される、請求項1に記載の方法。
【請求項9】
ワークフロー分割が必要とされるときにネットワークベースのメディア処理(NBMP)ワークフロー修正をシグナリングするための装置であって、前記装置が、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによって指示されたように動作するように構成された少なくとも1つのプロセッサであって、前記プログラムコードが、
前記少なくとも1つのプロセッサにNBMPワークフローを取得させるように構成された取得コードと、
前記NBMPワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたNBMPワークフローを前記少なくとも1つのプロセッサに生成させるように構成された生成コードと、
タスクグループオブジェクトに基づいて前記修正されたNBMPワークフローの前記1つまたは複数のタスクを前記少なくとも1つのプロセッサにシグナリングさせるように構成されたシグナリングコードと
を備える、少なくとも1つのプロセッサと
を備え、
前記1つまたは複数のタスクが所定の機能を実行するように構成され、前記1つまたは複数のタスクが前記NBMPワークフローの出力を変更しない、装置。
【請求項10】
前記コンピュータプログラムコードが、前記タスクグループオブジェクトに基づいてタスクグループに含まれる前記1つまたは複数のタスクを前記少なくとも1つのプロセッサに決定させるように構成された決定コードをさらに備え、前記タスクグループオブジェクトが、グループ識別情報、タスク識別情報、グループモード、およびネットゼロフラグを含む、請求項9に記載の装置。
【請求項11】
前記コンピュータプログラムコードが、前記ネットゼロフラグの状態に基づいて、前記修正されたNBMPワークフローから前記タスクグループ内の前記1つまたは複数のタスクを前記少なくとも1つのプロセッサに削除させるように構成された削除コードをさらに備え、前記1つまたは複数のタスクの前記削除が、前記修正されたNBMPワークフローの出力を変更しない、請求項10に記載の装置。
【請求項12】
前記NBMPワークフローが、前記修正されたNBMPワークフローによって置き換えられる、請求項11に記載の装置。
【請求項13】
前記タスクグループ内の前記1つまたは複数のタスクが、前記グループモードに基づいて同時にシグナリングされる、請求項10に記載の装置。
【請求項14】
前記タスクグループ内の前記1つまたは複数のタスクが、前記グループモードに基づいて別々にシグナリングされる、請求項10に記載の装置。
【請求項15】
前記グループ識別情報が前記タスクグループを一意に識別し、前記タスク識別情報が前記タスクグループに含まれる前記1つまたは複数のタスクを識別する、請求項10に記載の装置。
【請求項16】
前記修正されたNBMPワークフローが1つまたは複数のタスクグループを含み、前記1つまたは複数のタスクグループが前記NBMPワークフローの前記出力を変更せず、前記1つまたは複数のタスクグループが同時にまたは別々に削除される、請求項9に記載の装置。
【請求項17】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、ワークフロー分割が必要とされるときにネットワークベースのメディア処理(NBMP)ワークフロー修正をシグナリングするための装置の少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
NBMPワークフローを取得させ、
前記NBMPワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたNBMPワークフローを生成させ、
タスクグループオブジェクトに基づいて前記修正されたNBMPワークフローの前記1つまたは複数のタスクをシグナリングさせる、1つまたは複数の命令を含み、
前記1つまたは複数のタスクが所定の機能を実行するように構成され、前記1つまたは複数のタスクが前記NBMPワークフローの出力を変更しない、非一時的コンピュータ可読媒体。
【請求項18】
前記命令がさらに、前記タスクグループオブジェクトに基づいてタスクグループに含まれる前記1つまたは複数のタスクを前記少なくとも1つのプロセッサに決定させ、前記タスクグループオブジェクトが、グループ識別情報、タスク識別情報、グループモード、およびネットゼロフラグを含み、
前記グループ識別情報が前記タスクグループを一意に識別し、前記タスク識別情報が前記タスクグループに含まれる前記1つまたは複数のタスクを識別し、前記グループモードが、前記タスクグループ内の前記1つまたは複数のタスクが同時にシグナリングされるか別々にシグナリングされるかを示す、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記命令がさらに、前記ネットゼロフラグの状態に基づいて、前記修正されたNBMPワークフローから前記タスクグループ内の前記1つまたは複数のタスクを前記少なくとも1つのプロセッサに削除させ、
前記1つまたは複数のタスクの前記削除が、前記修正されたNBMPワークフローの出力を変更せず、前記NBMPワークフローが、前記修正されたNBMPワークフローによって置き換えられる、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記修正されたNBMPワークフローが1つまたは複数のタスクグループを含み、前記1つまたは複数のタスクグループが前記ワークフローの前記出力を変更せず、前記1つまたは複数のタスクグループが同時にまたは別々に削除される、請求項17に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年10月5日に出願された米国仮特許出願第63/252,422号に基づき、それに対する優先権を主張し、その開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示の実施形態は、ワークフローを2つ以上のサブワークフローに分割するための、ワークフローをより適切にするためにワークフローに追加されるシグナリングタスクに関する。そのようなタスクは、分割を実現可能にするが、ワークフローによって実行されるネットプロセスにおいていかなる機能的重要性も有さず、したがって、データの処理に関してネットゼロの影響を有する。
【背景技術】
【0003】
ネットワークおよびクラウドプラットフォームは、様々なアプリケーションを実行するために使用されてもよい。ネットワークベースのメディア処理(NBMP)規格は、クラウドプラットフォーム上でワークフローを定義、インスタンス化、および実行するための仕様を提供する。NBMP規格は分割レンダリング機能も含む。しかしながら、NBMP規格の分割レンダリング機能は、ワークフローを分割するために必要なワークフローへの追加タスクを識別しない。そのため、ワークフローが効率的に分割されない場合がある。本開示は、この問題を解決し、ワークフローをサブワークフローに効率的に分割するのに役立つ追加タスクを記載する。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の1つまたは複数の例示的な実施形態は、クラウドプラットフォーム上でネットゼロのワークフロー修正をシグナリングするための方法および装置を提供する。
【0005】
実施形態によれば、ワークフロー分割が必要とされるときにNBMPワークフロー修正をシグナリングするための方法が提供される。方法は、NBMPワークフローを取得するステップと、NBMPワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたNBMPワークフローを生成するステップと、タスクグループオブジェクトに基づいて修正されたNBMPワークフローの1つまたは複数のタスクをシグナリングするステップとを含んでもよい。方法の1つまたは複数のタスクは、所定の機能を実行するように構成されてもよく、1つまたは複数のタスクは、NBMPワークフローの出力を変更しない。
【0006】
実施形態によれば、ワークフロー分割が必要とされるときにNBMPワークフロー修正をシグナリングするための装置が提供される。装置は、命令を記憶する少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによって指示されたように動作するように構成された少なくとも1つのプロセッサとを備えてもよい。プログラムコードは、少なくとも1つのプロセッサにNBMPワークフローを取得させるように構成された取得コードと、NBMPワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたNBMPワークフローを少なくとも1つのプロセッサに生成させるように構成された生成コードと、タスクグループオブジェクトに基づいて修正されたNBMPワークフローの1つまたは複数のタスクを少なくとも1つのプロセッサにシグナリングさせるように構成されたシグナリングコードとを含んでもよく、1つまたは複数のタスクは所定の機能を実行するように構成され、1つまたは複数のタスクはNBMPワークフローの出力を変更しない。
【0007】
1つまたは複数の実施形態によれば、コンピュータコードを記憶する非一時的コンピュータ可読媒体が提供されてもよい。プログラムコードは、少なくとも1つのプロセッサによって実行されると、NBMPワークフローを取得することと、NBMPワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたNBMPワークフローを生成することと、タスクグループオブジェクトに基づいて修正されたNBMPワークフローの1つまたは複数のタスクをシグナリングすることとを少なくとも1つのプロセッサに実行させるように構成されてもよく、1つまたは複数のタスクは所定の機能を実行するように構成され、1つまたは複数のタスクはNBMPワークフローの出力を変更しない。
【0008】
さらなる態様は、以下の説明に部分的に記載され、部分的に、説明から明らかになるか、または本開示の提示された実施形態の実践によって実現されてもよい。
【0009】
本開示の実施形態の上記および他の態様、特徴、および態様は、以下の添付図面と併せて以下の説明からより明らかになるであろう。
【図面の簡単な説明】
【0010】
【
図1】1つまたは複数の実施形態による、通信システムの概略図である。
【
図2】1つまたは複数の実施形態による、ストリーミング環境の簡略化された例示的な図である。
【
図3】1つまたは複数の実施形態による、NBMPシステムのブロック図である。
【
図4】1つまたは複数の実施形態による、ワークフローに追加されたタスクの例示的な図である。
【
図5】1つまたは複数の実施形態による、修正されたワークフローにおいてネットゼロのタスクをシグナリングするための例示的なプロセスのブロック図である。
【
図6】1つまたは複数の実施形態による、修正されたワークフローにおいてネットゼロのタスクをシグナリングするためのコンピュータコードの一例のブロック図である。
【発明を実施するための形態】
【0011】
本開示は、ワークフローの出力に影響を与えることなくネットワークベースのメディア処理(NBMP)ワークフローにおける修正をシグナリングするための方法および装置に関する。
【0012】
本開示の実施形態は、添付図面を参照して包括的に記載される。しかしながら、実装例は、様々な複数の形態で実装されてもよく、本開示は、本明細書に記載された例に限定されると解釈されるべきではない。逆に、実装例は、本開示の技術的解決策をより包括的かつ完全にし、実装例の概念を当業者に包括的に伝達するために提供される。添付図面は、本開示の例示にすぎず、必ずしも縮尺通りに描かれていない。添付図面内の同じ参照番号は同じまた同様の構成要素を表すので、構成要素の重複する説明は省略される。
【0013】
以下で説明される提案された機能は、別々に使用されるか、または任意の順序で組み合わされてもよい。添付図面に示されたいくつかのブロック図は機能エンティティであり、必ずしも物理的または論理的に独立したエンティティに対応するとは限らない。さらに、実施形態は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されるか、あるいはソフトウェアの形態で実装されるか、あるいは異なるネットワークおよび/またはプロセッサ装置および/またはマイクロコントローラ装置に実装されてもよい。一例では、1つまたは複数のプロセッサは、1つまたは複数の非一時的コンピュータ可読媒体に記憶されたコンピュータプログラムを実行する。
【0014】
図1は、実施形態による、本明細書に記載される方法、装置、およびシステムが実装され得る環境100の図である。
図1に示されたように、環境100は、ユーザデバイス110と、プラットフォーム120と、ネットワーク130とを含んでもよい。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続の組合せを介して相互接続することができる。
【0015】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、および/または提供することが可能な1つまたは複数のデバイスを含んでもよい。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、一対のスマートグラスもしくはスマートウォッチなど)、または同様のデバイスを含んでもよい。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/またはプラットフォーム120に情報を送信することができる。
【0016】
プラットフォーム120は、本明細書の他の箇所に記載される1つまたは複数のデバイスを含んでもよい。いくつかの実装形態では、プラットフォーム120は、クラウドサーバ、またはクラウドサーバのグループを含んでもよい。いくつかの実装形態では、プラットフォーム120は、特定の必要性に応じてソフトウェア構成要素がスワップインまたはスワップアウトされ得るようにモジュール式に設計されてもよい。そのため、プラットフォーム120は、異なる用途向けに、容易に、かつ/または迅速に再構成されてもよい。
【0017】
いくつかの実装形態では、図示されたように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされてもよい。特に、本明細書に記載された実装形態は、クラウドコンピューティング環境122内でホストされるものとしてプラットフォーム120を記載するが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部に実装されてもよく)、部分的にクラウドベースであってもよい。
【0018】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含んでもよい。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステムおよび/またはデバイスの物理的な位置および構成に関するエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供することができる。図示されたように、クラウドコンピューティング環境122は、(「コンピューティングリソース124」と総称され、個別に「コンピューティングリソース124」と呼ばれる)コンピューティングリソース124のグループを含んでもよい。
【0019】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算デバイスおよび/もしくは通信デバイスを含んでもよい。いくつかの実装形態では、コンピューティングリソース124は、プラットフォーム120をホストすることができる。クラウドリソースは、コンピューティングリソース124内で実行される計算インスタンス、コンピューティングリソース124内で提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続の組合せを介して他のコンピューティングリソース124と通信することができる。
【0020】
図1にさらに示されたように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含んでもよい。
【0021】
アプリケーション124-1は、ユーザデバイス110および/もしくはプラットフォーム120に提供され得るか、またはユーザデバイス110および/もしくはプラットフォーム120によってアクセスされ得る、1つまたは複数のソフトウェアアプリケーションを含んでもよい。アプリケーション124-1は、ユーザデバイス110上でソフトウェアアプリケーションをインストールし実行する必要を除去することができる。例えば、アプリケーション124-1は、プラットフォーム120に関連付けられたソフトウェア、および/またはクラウドコンピューティング環境122を介して提供されることが可能な任意の他のソフトウェアを含んでもよい。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つまたは複数の他のアプリケーション124-1との間で情報を送受信することができる。
【0022】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装形態を含んでもよい。仮想マシン124-2は、仮想マシン124-2による用途および任意の実マシンとの対応関係の程度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行することができ、単一のプロセスをサポートすることができる。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)の代わりに実行することができ、データ管理、同期、または長時間データ転送などの、クラウドコンピューティング環境122の基盤を管理することができる。
【0023】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステムまたはデバイス内で仮想化技法を使用する1つもしくは複数のストレージシステムおよび/または1つもしくは複数のデバイスを含んでもよい。いくつかの実装形態では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含んでもよい。ブロック仮想化は、ストレージシステムが物理ストレージであるか異種構造であるかに関係なくアクセスされ得るように、物理ストレージから論理ストレージを抽出する(または分離する)ことを指すことができる。分離は、ストレージシステムの管理者がエンドユーザ向けのストレージを管理する方法における柔軟性を可能にすることができる。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に記憶された場所との間の依存関係を除去することができる。これにより、ストレージ使用の最適化、サーバ統合、および/または非破壊的なファイル移行の実行が可能になり得る。
【0024】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、コンピューティングリソース124などのホストコンピュータ上で同時に実行されることを可能にするハードウェア仮想化技法を提供することができる。ハイパーバイザ124-4は、ゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提示することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有することができる。
【0025】
ネットワーク130は、1つまたは複数の有線ネットワークおよび/または無線ネットワークを含んでもよい。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公的地域モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/または上記その他のタイプのネットワークの組合せを含んでもよい。
【0026】
図1に示されたデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、
図1に示されたものに比べて、さらなるデバイスおよび/もしくはネットワーク、より少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークが存在してもよい。さらに、
図1に示された2つ以上のデバイスが単一のデバイス内に実装されてもよく、または
図1に示された単一のデバイスが複数の分散型デバイスとして実装されてもよい。追加または代替として、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)は、環境100のデバイスの別のセットによって実行されるものとして記載された1つまたは複数の機能を実行することができる。
【0027】
図2は、
図1の1つまたは複数のデバイスの例示的な構成要素のブロック図である。デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応することができる。
図2に示されたように、デバイス200は、バス210と、プロセッサ220と、メモリ230と、記憶構成要素240と、入力構成要素250と、出力構成要素260と、通信インターフェース270とを含んでもよい。
【0028】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組合せに実装されてもよい。プロセッサ220は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素であってもよい。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つまたは複数のプロセッサを含んでもよい。メモリ230は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、ならびに/またはプロセッサ220による使用のための情報および/もしくは命令を記憶する別のタイプの動的もしくは静的なストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/もしくは光メモリ)を含んでもよい。
【0029】
記憶構成要素240は、デバイス200の動作および使用に関連する情報および/またはソフトウェアを記憶する。例えば、記憶構成要素240は、対応するドライブとともに、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/もしくはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、ならびに/または別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0030】
入力構成要素250は、デバイス200がユーザ入力などを介して情報を受け取ることを可能にする構成要素(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)を含んでもよい。追加または代替として、入力構成要素250は、情報を検知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含んでもよい。出力構成要素260は、デバイス200からの出力情報を提供する構成要素(例えば、ディスプレイ、スピーカ、および/または1つもしくは複数の発光ダイオードオード(LED))を含む。
【0031】
通信インターフェース270は、デバイス200が、有線接続、無線接続、または有線接続と無線接続の組合せなどを介して他のデバイスと通信することを可能にする、トランシーバ様の構成要素(例えば、トランシーバならびに/または別個の受信機および送信機)を含んでもよい。通信インターフェース270は、デバイス200が別のデバイスから情報を受信し、かつ/または別のデバイスに情報を提供することを可能にすることができる。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0032】
デバイス200は、本明細書に記載された1つまたは複数のプロセスを実行することができる。デバイス200は、プロセッサ220がメモリ230および/または記憶構成要素240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行することに応答して、これらのプロセスを実行することができる。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、または複数の物理ストレージデバイスにわたって広がるメモリ空間を含む。
【0033】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェース270を介して別のデバイスから、メモリ230および/または記憶構成要素240に読み取られてもよい。実行されると、メモリ230および/または記憶構成要素240に記憶されたソフトウェア命令は、本明細書に記載された1つまたは複数のプロセスをプロセッサ220に実行させることができる。追加または代替として、本明細書に記載された1つまたは複数のプロセスを実行するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路が使用されてもよい。したがって、本明細書に記載された実装形態は、ハードウェア回路とソフトウェアのいかなる特定の組合せにも限定されない。
【0034】
図2に示された構成要素の数および配置は、一例として提供されている。実際には、デバイス200は、
図2に示された構成要素に比べて、さらなる構成要素、より少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。追加または代替として、デバイス200の構成要素のセット(例えば、1つまたは複数の構成要素)は、デバイス200の構成要素の別のセットによって実行されるものとして記載された1つまたは複数の機能を実行することができる。
【0035】
本開示の実施形態では、ネットワークベースのメディア処理(NBMP)システムが提供される。
図3は、本明細書の実施形態によるNBMPアーキテクチャ300を示し、クラウド処理に関して実装される場合がある。NBMPシステム300は、NBMPソース310と、NBMPワークフローマネージャ320と、機能リポジトリ330と、1つまたは複数のメディア処理エンティティ(MPE)340と、メディアソース350と、メディアシンク360とを備える。NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、MPE340、メディアソース350、およびメディアシンク360は、少なくとも1つまたは複数のプロセッサと、それぞれ、NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、MPE340、メディアソース360、およびメディアシンク360の機能を少なくとも1つまたは複数のプロセッサに実行させるように構成されたコードを記憶するメモリとを含むか、またはそれらによって実装されてもよい。
【0036】
NBMPソース310は、NBMPワークフローAPI311を介してNBMPワークフローマネージャ320とワークフロー記述を通信することができる。NBMPソース310はまた、機能発見API313を介して機能リポジトリ330と機能記述を通信することができる。例えば、NBMPソース310は、ワークフロー記述文書(WDD)をNBMPワークフローマネージャ320に送信することができ、機能リポジトリ330に記憶された機能の機能記述を読み取ることができ、機能は、例えば、メディア復号、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンディング、後処理、および符号化の機能などの、機能リポジトリ330のメモリに記憶されたメディア処理機能である。NBMPワークフローマネージャ320は、機能発見API313と同じかまたは異なるAPIであり得る機能発見API312を介して機能リポジトリ330と通信することができ、API314(例えば、MPE API)を介してMPE340のうちの1つまたは複数と通信することができる。
【0037】
メディア処理エンティティ340は、1つまたは複数のタスク341を含んでもよい。NBMPワークフローマネージャ320はまた、API315(例えば、NBMPタスクAPI)を介してタスク341と通信することができる。NBMPワークフローマネージャ320は、API315を使用して、1つまたは複数のMPE340によって実行可能なワークフローの1つまたは複数のタスク341をセットアップ、構成、管理、および監視することができる。ワークフローのタスク341を構成、管理、および監視するために、NBMPワークフローマネージャ320は、MPE340および/またはタスク341のうちの1つまたは複数に要求などのメッセージを送信することができ、各メッセージは、それらの各々がいくつかのパラメータを有するいくつかの記述子を有してもよい。さらに、NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、およびMPE340の間の通信は、制御フローと見なされてもよい。
【0038】
タスク341は、各々、メディア処理機能343と、メディア処理機能343用の構成342とを含んでもよい。それぞれのメディア処理エンティティ340内のタスク341の各々はまた、タスク間のデータフローを容易にするために互いに通信することができる。一実施形態では、NBMPワークフローマネージャ320は、WDD内のタスクの記述に基づいてタスクを選択して、機能発見API312を介して機能リポジトリ330を検索し、現在のワークフロー用のタスク341として実行する適切な機能を見つけることができる。1つまたは複数のMPE340は、メディアソース350からメディアコンテンツを受け取り、NBMPワークフローマネージャ320によって作成されたタスク341を含むワークフローに従ってメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク360に出力するように構成されてもよい。一実施形態では、1つまたは複数のMPE340は、それぞれ、メディアソース350とメディアシンク360との間の複数のメディアフロー316および317に対して並列に提供されてもよい。
【0039】
メディアソース350は、メディアを記憶するメモリを含んでもよく、NBMPソース310と統合されるか、または別個であってもよい。一実施形態では、NBMPワークフローマネージャ320は、ワークフローが準備されたときにNBMPソース310に通知することができ、メディアソース350は、ワークフローが準備されたという通知に基づいて1つまたは複数のMPE340にメディアコンテンツを送信することができ、1つまたは複数のMPE340は、メディアシンク360にメディアコンテンツを送信することができる。メディアソース350、MPE340、およびメディアシンク360の間の通信は、データフローと見なされてもよい。
【0040】
例示的な実施形態によれば、ワークフローが分割されるとき、クラウドプラットフォーム上でワークフローをより効率的に分割するために、元のワークフローに新しいタスクが追加されてもよい。
図4を参照して、実施形態により、そのような追加の一例が次に記載される。
【0041】
ワークフローは、デバイスの接続帯域幅を縮小するためにタスクを追加することによって変更されてもよい。
図4に示されたように、タスク6およびタスク7が初期ワークフロー410に追加される。実施形態では、初期ワークフロー410は、クラウドデバイスとシンクデバイスとの間で分割されてもよい。クラウドデバイスおよびシンクデバイスは、メディアシンク360と同じであっても異なっていてもよい。この例の目的のために、デバイスはシンクデバイス430として参照される。シンクデバイス430の接続帯域幅が縮小すると、ワークフロー410は必要なスループットで動作することができる。ワークフローマネージャ(例えば、NBMPワークフローマネージャ320)は、タスク6およびタスク7を追加することによってワークフロー410を更新し、修正されたワークフロー420をもたらす。例えば、タスク7は、シンクデバイス430内の内蔵解凍機能を実行するように構成されてもよく、タスク6は、シンクデバイス430内の圧縮機能を実行するように構成されてもよい。エッジネットワーク上の圧縮機能としてタスク6を使用すると、タスク6とタスク7との間の帯域幅は、シンクデバイス430の利用可能な帯域幅に収まるように十分に縮小され得る。タスク6およびタスク7は、ワークフロー機能に対するネットゼロの影響を有する。したがって、タスク6およびタスク7は、出力(すなわち、出力2および出力3)を生成する際に入力(すなわち、入力1)の処理に影響を与えない。
【0042】
新しいタスクを追加することによってワークフローが修正されるとき、修正されたワークフロー内のそのようなタスクの存在をシグナリングすることが重要である。NBMPシステムでは、RESTFUL原理が使用され、したがって、各リソースはそのリソースの最新の状態を示す。各リソースは完全であり、その特性を示すために他のリソースを必要としない。さらに、WDDは、ワークフロー記述の状態を示す。ワークフローが分割され、新しいタスクが追加された場合、
図4に示されたように、WDDはワークフローの状態を表すが、追加されたタスクに関する情報を現在もっていない。実施形態では、ワークフローは、必要に応じて追加されたタスクを削除することによって後で更新されてもよい。しかしながら、追加されたタスクの存在は、分割レンダリング特性に起因して、かつ追加されたタスクが元のワークフローの一部ではないので、シグナリングされる必要がある。したがって、修正されたワークフロー内で追加されたタスクをシグナリングすることは有益である。
【0043】
実施形態では、タスクグループは、ワークフローの機能に影響を与えることなくワークフローから削除され得るタスクおよび/または追加されたタスクの集合をシグナリングするために使用されてもよい。この手法の利点は、グループごとに異なるタスクグループが定義され得ることである。そのため、複数のネットゼロのグループがシグナリングされ、それらのネットゼロのグループのうちの1つまたは複数が、他のネットゼロのグループを削除することなく削除されることを可能にするそのような特徴に対する技術的利点がある。複数のネットゼロのグループは、同時にまたは別々に削除されてもよい。NBMP規格では、タスクグループオブジェクトは、同じタスクグループ内にあるタスクを定義する。
【0044】
表1は、NBMP規格によるタスクグループオブジェクトの一例を示す。タスクグループオブジェクトは、パラメータ、パラメータタイプ、および基数を含む。
【0045】
【0046】
タスクグループオブジェクトのパラメータが表2に定義されている。
【0047】
【0048】
実施形態では、ネットゼロフラグがタスクグループオブジェクトに追加される。表3は、1つまたは複数の実施形態による、ネットゼロフラグが追加されたタスクグループオブジェクトの一例を示す。表3では、かつ本開示全体を通して、標準への追加を示すためにイタリック体が使用される。
【0049】
【0050】
追加されたネットゼロパラメータが表4に定義される。
【0051】
【0052】
ネットゼロの機能を有するタスクを追加することによってワークフローを修正すると、追加されたタスクの存在はワークフロー全体の機能を変更しない。タスクは、ワークフローの効率的な分割などの他の目的のために追加される。その存在がネットゼロの機能を提供するタスクのグループごとに、タスクグループはそのワークフローのWDDに追加することができる。WDDは、そのグループのタスクのidを列挙し、タスクグループのネットゼロフラグを「真」に設定することができる。ネットゼロフラグを「真」に設定することにより、ワークフロー機能に影響を及ぼすことなく、タスクグループ内のすべてのタスクがワークフローから削除されてもよい。実施形態では、タスクグループは、この目的のためにのみ使用され、タスク間の距離またはタスク同期要件に関していかなるグループ化も示さない。
【0053】
図5は、1つまたは複数の実施形態による、修正されたワークフロー内でネットゼロのタスクをシグナリングするための例示的な方法500のフローチャートである。
【0054】
いくつかの実装形態では、
図5の1つまたは複数のプロセスブロックは、プラットフォーム120によって実行されてもよい。いくつかの実装形態では、
図5の1つまたは複数のプロセスブロックは、ユーザデバイス110などの、プラットフォーム120とは別個の、またはプラットフォーム120を含む別のデバイスまたはデバイスのグループによって実行されてもよい。
【0055】
図5に示されたように、動作510において、方法500は、ワークフローを取得するステップを含む。
【0056】
動作520において、方法500は、ワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたワークフローを生成するステップを含む。1つまたは複数のタスクは、ワークフローの出力に対して所定の機能およびゼロの正味効果を実行するように構成される。すなわち、1つまたは複数のタスクは、ワークフローの出力を変更しないか、またはワークフローの機能を変更する。
【0057】
動作530において、方法500は、タスクグループオブジェクトに基づいて修正されたワークフローの1つまたは複数のタスクをシグナリングするステップを含む。
【0058】
図5は方法の例示的なブロックを示すが、いくつかの実装形態では、方法は、
図5に描写されたブロックに比べて、さらなるブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加または代替として、方法のブロックのうちの2つ以上が並行して実行されてもよい。
【0059】
図6は、1つまたは複数の実施形態による、修正されたワークフローにおいてネットゼロのタスクをシグナリングするためのコンピュータコードの一例のブロック図である。
【0060】
本開示の実施形態によれば、コンピュータコードを記憶するメモリとともに少なくとも1つのプロセッサが提供されてもよい。コンピュータコードは、少なくとも1つのプロセッサによって実行されると、本開示の任意の数の態様を実行するように構成されてもよい。
【0061】
例えば、
図6を参照して、コンピュータコード600はNBMPシステム300に実装されてもよい。
【0062】
図6に示されたように、コンピュータコード600は、取得コード610と、生成コード620と、シグナリングコード630とを含んでもよい。
【0063】
取得コード610は、少なくとも1つのプロセッサにワークフローを取得させるように構成されてもよい。
【0064】
生成コード620は、ワークフローの作業記述に1つまたは複数のタスクを追加することによって修正されたワークフローを少なくとも1つのプロセッサに生成させるように構成されてもよい。1つまたは複数のタスクは、ワークフローの出力に対して所定の機能およびゼロの正味効果を実行するように構成されてもよい。すなわち、1つまたは複数のタスクは、ワークフローの出力を変更しないか、またはワークフローの機能を変更する。
【0065】
シグナリングコード630は、タスクグループオブジェクトに基づいて修正されたワークフローの1つまたは複数のタスクを少なくとも1つのプロセッサにシグナリングさせるように構成されてもよい。
【0066】
図6は、実施形態による装置またはデバイスのコンピュータコード600の例示的なブロックを示すが、いくつかの実装形態では、装置は、
図6に描写されたブロックに比べて、さらなるブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加または代替として、装置のブロックのうちの2つ以上が並行して実行されてもよい。
【0067】
上述されたクラウドプラットフォーム上のワークフローのネットゼロのタスクをシグナリングするための技法は、別々に使用されるか、または任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行することができる。
【0068】
本開示は、例示および説明を提供するが、網羅的であること、または実装形態を開示されたまさにその形態に限定することを意図するものではない。修正形態および変形形態は、本開示に照らして実現可能であるか、または実装形態の実践から取得されてもよい。
【0069】
本明細書で使用される構成要素という用語は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組合せとして広く解釈されることを意図している。
【0070】
本明細書に記載されたシステムおよび/または方法は、様々な形態のハードウェア、ファームウェア、またはハードウェアとソフトウェアの組合せに実装され得ることは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0071】
特徴の組合せが、特許請求の範囲に列挙され、かつ/または本明細書に開示されている場合でも、これらの組合せは、可能な実装形態の開示を限定することを意図していない。実際には、これらの特徴の多くは、特許請求の範囲に具体的に列挙されておらず、かつ/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接従属する場合があるが、可能な実装形態の開示は、請求項のセット内のあらゆる他の請求項と組み合わせた各従属請求項を含む。
【0072】
本明細書で使用される要素、活動、または指示は、明示的にそのように記載されていない限り、重要または必須であると解釈されなくてもよい。また、本明細書で使用される冠詞「a」および「an」は、1つまたは複数の項目を含むものであり、「1つまたは複数」と同じ意味で使用されてもよい。さらに、本明細書で使用される「セット」という用語は、1つまたは複数の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組合せなど)を含むものであり、「1つまたは複数」と同じ意味で使用されてもよい。1つの項目のみが対象とされる場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることが意図される。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味するものである。
【符号の説明】
【0073】
100 環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション(「APP」)
124-2 仮想マシン(「VM」)
124-3 仮想化ストレージ(「VS」)
124-4 ハイパーバイザ(「HYP」)
130 ネットワーク
200 デバイス
210 バス
220 プロセッサ
230 メモリ
240 記憶構成要素
250 入力構成要素
260 出力構成要素
270 通信インターフェース
300 NBMPアーキテクチャ、NBMPシステム
310 NBMPソース
311 NBMPワークフローAPI
312 機能発見API
313 機能発見API
314 API
315 API
316 メディアフロー
317 メディアフロー
320 NBMPワークフローマネージャ
330 機能リポジトリ
340 メディア処理エンティティ(MPE)
341 タスク
342 構成
343 メディア処理機能
350 メディアソース
360 メディアシンク
410 初期ワークフロー
420 修正されたワークフロー
430 シンクデバイス
500 方法
600 コンピュータコード
610 取得コード
620 生成コード
630 シグナリングコード
【国際調査報告】