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

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

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

特許7615317データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置
<>
  • 特許-データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置 図1
  • 特許-データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置 図2
  • 特許-データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置 図3
  • 特許-データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置 図4
  • 特許-データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置 図5
  • 特許-データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-07
(45)【発行日】2025-01-16
(54)【発明の名称】データフローにおいて継続性を有するクラウド上の部分的または全体的なワークフローを切り替えまたは更新するための方法および装置
(51)【国際特許分類】
   G06F 9/50 20060101AFI20250108BHJP
【FI】
G06F9/50 120Z
【請求項の数】 8
(21)【出願番号】P 2023522525
(86)(22)【出願日】2022-04-07
(65)【公表番号】
(43)【公表日】2023-10-30
(86)【国際出願番号】 US2022023842
(87)【国際公開番号】W WO2023282947
(87)【国際公開日】2023-01-12
【審査請求日】2023-04-12
(31)【優先権主張番号】63/218,811
(32)【優先日】2021-07-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/702,977
(32)【優先日】2022-03-24
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【審査官】漆原 孝治
(56)【参考文献】
【文献】国際公開第2020/188140(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
クラウドプラットフォームにおいてネットワークベースのメディア処理(NBMP)ワークフローをスケーリングするための方法であって、
入力メディアストリームを含む入力ワークフローを取得するステップと、
少なくとも、前記入力ワークフローについての遷移タイプ情報を決定するステップであって、前記遷移タイプ情報は、同時遷移機能情報または逐次遷移機能情報のうちの1つを含む、ステップと、
少なくとも前記決定された前記遷移タイプ情報に基づいて更新されたワークフローを生成するステップと、
前記更新されたワークフローを処理するステップと
を含む、方法。
【請求項2】
前記同時遷移機能情報は、前記入力ワークフローの1つまたは複数のタスクおよび前記更新されたワークフローの1つまたは複数のタスクがある期間にわたって並行して実行されることを示す、請求項1に記載の方法。
【請求項3】
前記同時遷移機能情報は、前記入力ワークフローと前記更新されたワークフローの両方の出力データが同じになるまで、前記入力ワークフローの1つまたは複数のタスクおよび前記更新されたワークフローの1つまたは複数のタスクが並行して実行されることを示す、請求項1に記載の方法。
【請求項4】
前記逐次遷移機能情報は、ある時点において、前記入力ワークフローの1つまたは複数のタスクが前記更新されたワークフローの1つまたは複数のタスクに切り替えられることを示す、請求項1に記載の方法。
【請求項5】
前記遷移タイプ情報は、前記NBMPのスケール記述子に含まれる、請求項1に記載の方法。
【請求項6】
前記スケール記述子は、前記遷移タイプ情報に対応するコマンド情報を含み、
前記コマンド情報は、
前記クラウドプラットフォームの能力を取得すること、
スケーリング要求における前記遷移タイプ情報が実施可能であるかどうかを決定すること、または
前記スケーリング要求における前記遷移タイプ情報が実施可能であるかどうかを決定することの結果を含む応答を提供すること
のための情報を含む、
請求項5に記載の方法。
【請求項7】
請求項1から6のいずれか一項に記載の方法を実行するように構成された、クラウドプラットフォームにおいてネットワークベースのメディア処理(NBMP)ワークフローをスケーリングするための装置。
【請求項8】
少なくとも1つのプロセッサに請求項1から6のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年7月6日に出願された米国仮特許出願第63/218,811号に基づいており、これに対する優先権を主張し、その開示内容は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示の実施形態は、データフローの中断またはデータの欠落のない、クラウドワークフローまたはクラウドワークフローの一部のシームレスな切り替えまたは更新のための装置および方法に関する。
【背景技術】
【0003】
ネットワークおよびクラウドプラットフォームを使用して、様々なアプリケーションを実行することができる。ネットワークベースのメディア処理(NBMP)規格は、クラウドプラットフォーム上でワークフローを定義、インスタンス化、および実行するための仕様を提供する。NBMP規格には、ワークフローを更新するための特徴も含まれている。しかし、NBMP規格のワークフロー更新機能は、データの流れを継続する必要があるかどうかを定義する機能や、更新中にデータが欠落しないように定義する機能を有さない。例えば、関連技術の方法でワークフローを更新することができるが、更新は必ずしも以前のワークフローによって処理されたデータを考慮に入れず、したがってワークフローの更新中にデータ損失が生じる可能性がある。さらに、ワークフローを更新するための関連技術の方法はワークフローを作成、検索、および削除するための機能を有するが、関連技術の方法は、データ損失なしに古いワークフローから新しいおよび/または更新されたワークフローへの洗練された遷移を提供するためにデータの流れを継続する必要があるかどうかを定義する機能を有さない。
【0004】
本開示の1つまたは複数の例示的な実施形態は、この問題を解決し、ワークフローにおいてシームレスな継続性を提供することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の1つまたは複数の例示的な実施形態は、ワークフローの更新中にワークフローにシームレスな継続性を提供するための方法および装置を提供する。
【0006】
特許請求の範囲が追加された後に更新される。
【0007】
さらなる態様は、以下の説明に部分的に記載され、部分的には、説明から明らかになるか、または本開示の提示された実施形態の実践によって実現されてもよい。
【0008】
本開示の実施形態の上記および他の態様、特徴、および態様は、以下の添付の図面と併せて以下の説明からより明らかになるであろう。
【図面の簡単な説明】
【0009】
図1】1つまたは複数の実施形態による、通信システムの概略図である。
図2】1つまたは複数の実施形態による、ストリーミング環境の簡略化された例示的な図である。
図3】1つまたは複数の実施形態による、NBMPシステムのブロック図である。
図4】1つまたは複数の実施形態による、NBMP分割器および合併器プロセスの例示的な図である。
図5】1つまたは複数の実施形態による、ワークフローの更新中にワークフローにシームレスな継続性を提供するための例示的なプロセスのブロック図である。
図6】1つまたは複数の実施形態による、ワークフローの更新中にワークフローにシームレスな継続性を提供するためのコンピュータコードの一例のブロック図である。
【発明を実施するための形態】
【0010】
本開示は、ワークフローの出力に影響を与えることなくネットワークベースのメディア処理(NBMP)ワークフローにおける修正をシグナリングするための方法および装置に関する。
【0011】
本開示の実施形態は、添付の図面を参照して包括的に説明される。しかし、実施態様の例は、様々な複数の形態で実装されてもよく、本開示は、本明細書に記載された例に限定されると理解されるべきではない。逆に、実施態様の例は、本開示の技術的解決策をより包括的かつ完全にし、実施態様の例の概念を当業者に包括的に伝えるために提供される。添付の図面は、本開示の例示にすぎず、必ずしも一定の縮尺で描かれていない。なお、添付の図面において同じ参照番号は同じまたは同様の構成要素を表すので、これらの構成要素に関して重複する説明は省略する。
【0012】
以下で説明される提案された特徴は、別々に使用されてもよく、または任意の順序で組み合わされてもよい。添付の図面に示すいくつかのブロック図は機能エンティティであり、必ずしも物理的または論理的に独立したエンティティに対応するとは限らない。さらに、実施形態は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよく、またはソフトウェアの形態で実装されてもよく、または異なるネットワークおよび/もしくはプロセッサ装置および/もしくはマイクロコントローラ装置に実装されてもよい。一例では、1つまたは複数のプロセッサは、1つまたは複数の非一時的コンピュータ可読媒体に記憶されたコンピュータプログラムコードを実行する。
【0013】
図1は、実施形態による、本明細書に記載された方法、装置、およびシステムがその中で実現され得る環境100の図である。図1に示すように、環境100は、ユーザデバイス110と、プラットフォーム120と、ネットワーク130とを含み得る。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して相互接続することができる。
【0014】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、および/または提供することが可能な1つまたは複数のデバイスを含み得る。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスまたはスマートウォッチ)、または同様のデバイスを含んでもよい。いくつかの実施態様では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/または情報をプラットフォーム120に送信してもよい。
【0015】
プラットフォーム120は、本明細書の他の箇所に記載されているような1つまたは複数のデバイスを含み得る。いくつかの実施態様では、プラットフォーム120は、クラウドサーバまたはクラウドサーバのグループを含んでもよい。いくつかの実施態様では、プラットフォーム120は、モジュール式に設計されてもよく、それによりソフトウェア構成要素は、特定の必要性に応じてスワップインまたはスワップアウトされてもよい。したがって、プラットフォーム120は、異なる用途のために容易にかつ/または迅速に再構成することができる。
【0016】
いくつかの実施態様では、図示のように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされてもよい。特に、本明細書に記載された実施態様はクラウドコンピューティング環境122内でホストされるものとしてプラットフォーム120を記載するが、いくつかの実施態様では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部に実装されてもよい)、または部分的にクラウドベースであってもよい。
【0017】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含み得る。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステムおよび/またはデバイスの物理的な場所および構成に関するエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供し得る。図示のように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(「コンピューティングリソース124」と総称され、個々に「コンピューティングリソース124」と呼ばれる)を含んでもよい。
【0018】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算デバイスおよび/もしくは通信デバイスを含み得る。いくつかの実施態様では、コンピューティングリソース124は、プラットフォーム120をホストし得る。クラウドリソースは、コンピューティングリソース124内で実行されるコンピューティングインスタンス、コンピューティングリソース124内に設けられるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実施態様では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して他のコンピューティングリソース124と通信してもよい。
【0019】
図1にさらに示すように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含み得る。
【0020】
アプリケーション124-1は、ユーザデバイス110および/もしくはプラットフォーム120に提供され得るか、またはユーザデバイス110および/もしくはプラットフォーム120によってアクセスされ得る1つまたは複数のソフトウェアアプリケーションを含み得る。アプリケーション124-1は、ユーザデバイス110にソフトウェアアプリケーションをインストールして実行する必要性を排除し得る。例えば、アプリケーション124-1は、プラットフォーム120に関連付けられたソフトウェア、および/またはクラウドコンピューティング環境122を介して提供され得る任意の他のソフトウェアを含んでもよい。いくつかの実施態様では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つまたは複数の他のアプリケーション124-1との間で情報を送受信することができる。
【0021】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実施態様を含む。仮想マシン124-2は、仮想マシン124-2による用途および任意の実マシンに対する対応度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは単一のプログラムを実行してもよく、単一のプロセスをサポートしてもよい。いくつかの実施態様では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)の代わりに実行してもよく、データ管理、同期、または長時間のデータ転送など、クラウドコンピューティング環境122のインフラストラクチャを管理してもよい。
【0022】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステムまたはデバイス内で仮想化技術を使用する1つまたは複数のストレージシステムおよび/または1つまたは複数のデバイスを含み得る。いくつかの実施態様では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含み得る。ブロック仮想化は、当該ストレージシステムが物理ストレージであるか異種構造であるかに関係なくアクセスされ得るように、物理ストレージから論理ストレージを抽出する(または分離する)ことを指し得る。これらを分離することにより、ストレージシステムの管理者がエンドユーザのストレージを管理する方法に柔軟性がもたらされ得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に記憶されている場所との間の依存関係を排除することができる。これにより、ストレージ使用の最適化、サーバ統合、および/またはスムーズなファイル移行の実施が可能になり得る。
【0023】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、コンピューティングリソース124などのホストコンピュータ上で同時に実行されることを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示してもよく、ゲストオペレーティングシステムの実行を管理してもよい。様々なオペレーティングシステムの複数のインスタンスは、仮想化ハードウェアリソースを共有することができる。
【0024】
ネットワーク130は、1つまたは複数の有線ネットワークおよび/または無線ネットワークを含み得る。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらもしくは他のタイプのネットワークの組み合わせを含み得る。
【0025】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、図1に示すものに対して、追加のデバイスおよび/もしくはネットワーク、より少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークが存在してもよい。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加的または代替的に、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)は、環境100の別のデバイスのセットによって実施されるものとして記載された1つまたは複数の機能を実施してもよい。
【0026】
図2は、図1の1つまたは複数のデバイスの例示的な構成要素のブロック図である。デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応し得る。図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶構成要素240、入力構成要素250、出力構成要素260、および通信インターフェース270を含み得る。
【0027】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装され得る。プロセッサ220は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素とすることができる。いくつかの実施態様では、プロセッサ220は、機能を実施するようにプログラムされることが可能な1つまたは複数のプロセッサを含み得る。メモリ230は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ならびに/またはプロセッサ220が使用するための情報および/もしくは命令を記憶する別のタイプの動的もしくは静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/または光メモリ)を含み得る。
【0028】
記憶構成要素240は、デバイス200の動作および使用に関連する情報および/またはソフトウェアを記憶する。例えば、記憶構成要素240は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0029】
入力構成要素250は、デバイス200が、例えばユーザ入力を介して情報を受信することを可能にする構成要素(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)を含み得る。追加的または代替的に、入力構成要素250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含んでもよい。出力構成要素260は、デバイス200からの出力情報を提供する構成要素(例えば、ディスプレイ、スピーカ、および/または1つまたは複数の発光ダイオード(LED))を含む。
【0030】
通信インターフェース270は、デバイス200が有線接続、無線接続、または有線接続と無線接続の組み合わせなどを介して他のデバイスと通信することを可能にするトランシーバのような構成要素(例えば、トランシーバおよび/または別々の送信機および受信機)を含み得る。通信インターフェース270は、デバイス200が別のデバイスから情報を受信し、かつ/または情報を別のデバイスに提供することを可能にすることができる。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0031】
デバイス200は、本明細書に記載された1つまたは複数のプロセスを実施することができる。デバイス200は、プロセッサ220がメモリ230および/または記憶構成要素240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行したことに応答して、これらのプロセスを実施し得る。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、または複数の物理ストレージデバイスにわたって広がるメモリ空間を含む。
【0032】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェース270を介して別のデバイスからメモリ230および/または記憶構成要素240に読み込まれてもよい。実行されるとき、メモリ230および/または記憶構成要素240に記憶されたソフトウェア命令は、プロセッサ220に本明細書に記載された1つまたは複数のプロセスを実施させることができる。追加的または代替的に、本明細書に記載された1つまたは複数のプロセスを実施するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて結線接続された回路が使用されてもよい。したがって、本明細書に記載された実施態様は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
【0033】
図2に示す構成要素の数および配置は、一例として提供されている。実際には、デバイス200は、図2に示すものに対して、追加の構成要素、より少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。追加的または代替的に、デバイス200の構成要素のセット(例えば、1つまたは複数の構成要素)は、デバイス200の別の構成要素のセットによって実現されるものとして記載された1つまたは複数の機能を実施してもよい。
【0034】
本開示の一実施形態では、ネットワークベースのメディア処理(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つまたは複数のプロセッサおよびメモリを含むか、またはそれらによって実装され得る。
【0035】
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つまたは複数と通信することができる。
【0036】
メディア処理エンティティ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の間の通信は、制御フローと見なされ得る。
【0037】
タスク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に対して並列に提供されてもよい。
【0038】
メディアソース350は、メディアを記憶するメモリを含み得、NBMPソース310と統合されてもよいし、別々であってもよい。一実施形態では、NBMPワークフローマネージャ320は、ワークフローが準備されたときにNBMPソース310に通知することができ、メディアソース350は、ワークフローが準備されたという通知に基づいてメディアコンテンツを1つまたは複数のMPE340に送信することができ、1つまたは複数のMPE340は、メディアコンテンツをメディアシンク360に送信することができる。メディアソース350、MPE340、およびメディアシンク360の間の通信は、データフローと見なされ得る。
【0039】
例示的な実施形態によれば、プロセス中のワークフローは、いくつかの理由、すなわち、データ量の増加のために更新されなければならない場合がある。そのような場合、負荷の増加に対処するためにワークフローの1つまたは複数のタスクを分割する必要があり、新しいワークフローへの切り替えによりデータが失われないようにする。一実施形態によれば、古いワークフローの現在のタスクは、更新されたワークフローで使用することができる。一実施形態によれば、古いワークフローから新しいワークフローへの切り替えは、ワークフロー内のプロセスが適切に実施されることを確実するために同時に(または正確な時間に)行われる必要がある。そのようなプロセスは、データを収集するためのプロセス、または課金を含むことができるが、本開示はそれらに限定されない。
【0040】
一実施形態によれば、ワークフローへの更新は、スケーリング手法、遷移手法、またはスケーリング手法と遷移手法の両方の組み合わせを使用して実施することができる。
【0041】
スケーリング手法
一実施形態によれば、スケーリング手法は、切り替え機能、分割-合併機能、および置換機能のうちの1つを含むことができる。しかし、本開示はこれに限定されず、したがって、別の実施形態によれば、これらの機能の組み合わせを他の機能と共に使用して、スケーリング手法を実施することができる。
【0042】
切り替え機能
一実施形態によれば、切り替え機能は、1つまたは複数のタスクを第1のメディア処理エンティティ(MPE)から第2のMPEに切り替えるステップを含むことができる。例えば、第2のMPEは、第1のMPEよりも強力であり得る。すなわち、第2のMPEは、第1のMPEよりも多くの処理リソース(すなわち、メモリ要素およびプロセッサ要素)を有することができる。したがって、切り替え機能は、1つまたは複数のタスクを第1のMPEからより強力な第2のMPEに切り替えることができる。そのような場合、データは、現在の(第1の)MPE上で実行されている1つまたは複数の現在のタスクから、データを損失することなくタスクの新しいインスタンスを実行している新しい(第2の)MPEに転送される必要がある。
【0043】
一実施形態によれば、切り替え機能は、NBMPクライアントまたはワークフローマネージャのいずれかによって定義することができる。例えば、NBMPクライアントまたはワークフローマネージャは、ワークフローのスケーリングまたは更新中に使用するパラメータを定義するスケール記述子に基づいて切り替え機能を実装することができる。
【0044】
分割-合併機能
一実施形態によれば、分割-合併機能は、ワークフロー内のタスクの1つまたは複数の並列インスタンスを追加するステップを含むことができる。例えば、タスク(およびデータ)の並列処理のために、並列タスクの前後に分割器および合併器関数のペアを追加することができる。ここで、単一のタスクは複数のサブタスクに分割され、独立して処理され得る。単一のタスクから複数のタスクへの遷移中、データが失われてはならない。
【0045】
図4は、本開示の一実施形態による、並列処理のためのタスクTのメディアストリーム440のNBMP分割および合併セグメントの一例を示す。図4に示すように、NBMP分割器および合併器プロセス400は、分割器420と、合併器430とを含む。図4において、入力メディアストリームのタスクTは、n個のインスタンスが並行して実行されるn個のインスタンスのタスクT(すなわち、T0、…、TN-1)に変換される。入力メディアストリーム410は、連続的であってもよい。分割器420は、メディアストリームをN個のメディアサブストリームに変換する。各サブストリームは、Tのインスタンスによって処理される。次いで、合併器430は、サブストリームを一緒にインターリーブして出力450を生成する。出力450は、タスクTの出力ストリーム(すなわち、メディアストリーム440)に相当する。
【0046】
1:N分割器420およびN:1合併器430は、図4に示すように、セグメント境界で機能する。各セグメントは、セグメントに関連付けられた開始、持続時間、および長さメタデータを有する。セグメントは独立しているため、結果としてサブストリームはタスクTによって処理されるという点で互いに独立している。実施形態では、タスクT0、…、TN-1はタスクTのインスタンスであり、同時にまたは別々にセグメントを処理することができる。セグメントおよびサブストリームは独立しているので、タスクT(すなわち、T0、…、TN-1)の各インスタンスは、それ自体の速度で実行することができる。
【0047】
一実施形態によれば、分割-合併機能は、NBMPクライアントまたはワークフローマネージャのいずれかによって定義することができる。例えば、NBMPクライアントまたはワークフローマネージャは、ワークフローのスケーリングまたは更新中に使用するパラメータを定義するスケール記述子に基づいて分割-合併機能を実装することができる。
【0048】
置換機能
一実施形態によれば、置換機能は、並列ワークフローを確立するステップと、データを現在のワークフローから並列ワークフローに転送するステップとを含むことができる。この場合、現在のワークフローから並列ワークフローへの転送中、データが失われるべきではない。
【0049】
一実施形態によれば、切り替え機能は、NBMPクライアントまたはワークフローマネージャのいずれかによって定義することができる。例えば、NBMPクライアントまたはワークフローマネージャは、ワークフローのスケーリングまたは更新中に使用するパラメータを定義するスケール記述子に基づいて切り替え機能を実装することができる。
【0050】
遷移手法
一実施形態によれば、遷移手法は、同時遷移機能または逐次遷移機能のうちの1つを含むことができる。しかし、本開示はこれに限定されず、したがって、別の実施形態によれば、これらの機能の組み合わせを他の機能と共に使用して、遷移手法を実施することができる。
【0051】
同時遷移機能
一実施形態によれば、同時遷移機能では、新しいワークフローまたは1つまたは複数の新しい置換タスク(すなわち、新しいエンティティと呼ばれる)、および古いワークフローまたは1つまたは複数の古いタスク(すなわち、古いエンティティと呼ばれる)が同時に受信され得る。この場合、古いエンティティと新しいエンティティの両方は、少なくとも古いエンティティと新しいエンティティの両方の出力データが同一となるまでの間、データを受信してもよい。その後、古いエンティティは停止されてもよく、新しいエンティティからの出力が使用される。すなわち、古いエンティティと新しいエンティティの両方の出力データが同一になると、古いタスク、タスクグループ、またはワークフローは停止される。
【0052】
一実施形態によれば、ワークフローマネージャまたはクラウドマネージャは、遷移機能の実施を担当することができる。例えば、ワークフローマネージャまたはクラウドマネージャは、遷移中に使用するパラメータを定義するスケール記述子に基づいて同時機能を実装することができる。
【0053】
逐次遷移機能
一実施形態によれば、逐次遷移機能では、古いタスク、タスクのグループ、またはワークフロー(すなわち、古いエンティティと呼ばれる)は、ある時点でデータの処理を停止される。その後、新しいエンティティ(すなわち、新しいタスク、新しいタスクのグループ、または新しいワークフロー)は、古いエンティティがデータの処理を停止した時点からデータの処理を引き継ぐ。ここで、古いエンティティおよび新しいエンティティは、並列にデータを処理しない。一実施形態によれば、複数のプロセスが並列に動作する必要がなく、追加の処理リソースを必要とする可能性があるため、逐次遷移は同時遷移よりも効率的であり得る。これに関して、逐次遷移はまた、遷移中にデータが失われないことを確実するために、同時遷移よりも高度であり得る。
【0054】
一実施形態によれば、ワークフローマネージャまたはクラウドマネージャは、遷移機能の実施を担当することができる。例えば、ワークフローマネージャまたはクラウドマネージャは、遷移中に使用するパラメータを定義するスケール記述子に基づいて逐次遷移機能を実装することができる。
【0055】
一実施形態によれば、スケーリング手法(すなわち、切り替え機能、分割-合併機能、および置換機能)および遷移手法(同時遷移機能および逐次遷移機能)の機能は、NBMP規格のNBMP機能の性質を適用および/または活用することによって実施することができる。
【0056】
一実施形態によれば、エンティティ内の各データの処理は、以前のデータまたはエンティティの内部状態に対する依存性を有し得、以前のデータの処理から取得する。したがって、古いエンティティを新しいエンティティに直ちに切り替えることは不可能であり得る。
【0057】
一実施形態によれば、NBMP機能では、ステップ記述子は、データを独立して処理することができるデータのセグメントサイズを定義する。タスクのグループまたはワークフローで使用されるすべての機能がステップ可能である場合、すなわち、独立してセグメントを処理することができる場合、データがセグメントごとに独立して処理されるタスクのグループまたはワークフローについてのセグメントサイズを定義することができる。
【0058】
一実施形態によれば、ステップ記述子に基づく独立セグメント処理において、各セグメントは、セグメント境界を定義する以下のメタデータを有する。例えば、一実施形態によれば、メタデータを使用してセグメント境界をシグナリングするための方法では、セグメント開始、セグメント持続時間、およびセグメントサイズを定義するためにメタデータが提供され得る。そのような定義は、タスクTのセグメントのいずれかに提供されてもよい。例えば、メタデータ定義は、以下の通りであってもよい:
・S:Tスケールにおけるセグメントの開始。
・D:Tスケールにおけるセグメントの持続時間。
・L:バイト単位でのセグメントの長さ
・T:タイムスケール(秒単位のティック数)
【0059】
メタデータベースの信号方法によれば、任意の機能のメディアストリーム入力または出力は、セグメント境界メタデータを搬送する対応するメタデータ入力または出力を有する必要がある。したがって、並列処理のためのタスクTのメディアストリーム440のセグメントの分割および合併は、ステップベースの動作がクラウドプラットフォーム上のメディア処理において実施されるときに適切に実施され得る。
【0060】
一実施形態によれば、セグメントメタデータ情報を使用するために、セグメントごとにデータセグメントを処理する機能/タスクは、その入力のために上記のメタデータを受信する必要があると共に、その出力にメタデータを含める必要がある。
【0061】
一実施形態によれば、上述したスケーリング手法および遷移手法を一緒に適用することができる。例えば、以下の表1は、異なるスケーリング方法への2つの遷移方法の可能な適用を示す。
【0062】
【表1】
【0063】
一実施形態によれば、上記の遷移方法のいずれかにおいて、ワークフローマネージャおよびクラウドマネージャは、遷移の実施を担当する。さらに、遷移方法およびスケール方法は、NBMPクライアントまたはワークフローマネージャのいずれかによって定義することができる。
【0064】
一実施形態によれば、ワークフローマネージャおよびクラウドマネージャが遷移方法およびスケール方法の決定を担当する場合、ワークフローマネージャは、ワークフローをどのようにスケーリングするか、およびワークフローにどのタイプの遷移を使用するかを決定することができる。特に、ワークフローマネージャは、NBMPシステムの能力を分析することができ、その能力に応じて、およびスケーリングのレベルに応じて、ワークフローマネージャは、スケーリング方法および遷移方法を決定し、NBMPクライアントへの遷移の結果のみを提供することができる。
【0065】
一実施形態によれば、NBMPクライアントが遷移方法およびスケール方法の決定を担当し、ワークフローマネージャがワークフローの管理を担当する場合、NBMPクライアントはスケーリング方法を定義することができ、遷移のタイプも定義することができる。ワークフローマネージャは、要求を受信し、システム能力を分析することによって要求に対応することができる場合に応答することができる。この場合、NBMPクライアントは、任意選択で、その要求を行う前に、ワークフローマネージャのスケーリングおよび遷移の能力について通知されてもよい。
【0066】
一実施形態によれば、NBMPクライアントが遷移方法およびスケール方法の決定を担当し、ワークフローマネージャがワークフローの管理を担当する場合、ワークフローへの更新中に適切かつシームレスな遷移を実施するために以下の情報を取得することができる。
【0067】
一実施形態によれば、更新されたワークフローに遷移する前に、ワークフローマネージャが遷移をサポートしている場合、遷移のタイプ、スケーリングのタイプ、またはリソース可用性などの情報を取得することができる。しかし、これは任意選択であってもよい。
【0068】
一実施形態によれば、遷移要求が受信されると、ワークフローマネージャは、提供された情報が遷移に適しているかどうか、リソースが要求された遷移に利用可能かどうか、要求に対応することができるかどうかなどの情報を取得することができる。一実施形態によれば、ワークフローマネージャは、いつ遷移に対応することができるかに関する情報をさらに取得することができる。しかし、これは任意選択であってもよい。
【0069】
一実施形態によれば、更新されたワークフローに遷移した後、ワークフローマネージャは、遷移が成功したかどうか、遷移のタイミング、およびWDDにおける更新情報などの情報を取得することができる。
【0070】
例示的な実施形態によれば、スケール記述子は、以下の方式でNBMP規格仕様に追加することができる:
【0071】
【表2】
【0072】
さらに、例示的な実施形態によれば、NBMP規格仕様についてのスケール記述子パラメータの詳細な定義は、以下の方式で提供されてもよい:
【0073】
【表3】
【0074】
一実施形態によれば、NBMPクライアントは、以下のためのWDD更新呼び出しにスケール記述子を含めることができる:WDDおよび「ステータス」=「能力」にスケール記述子を含めることによってワークフローマネージャの能力を取得すること、WDDにスケール記述子を含めることによってワークフローをスケーリングすること、TDDにスケール記述子を含めることによってタスクをスケーリングすること、タスクグループオブジェクトにスケール記述子を含めることによってタスクのグループをスケーリングすること、およびワークフローが要求された場合にワークフローがスケーリングを管理することができるかどうかを確認するために「ステータス」=「考慮」で要求することによって上記のいずれかのスケーリングを考慮すること。
【0075】
図5は、1つまたは複数の実施形態による、クラウドプラットフォーム上でネットワークベースのメディア処理(NBMP)ワークフローをスケーリングするための例示的な方法500のフローチャートである。
【0076】
いくつかの実施態様では、図5の1つまたは複数のプロセスブロックは、プラットフォーム120によって実施されてもよい。いくつかの実施態様では、図5の1つまたは複数のプロセスブロックは、ユーザデバイス110などのプラットフォーム120とは別々の、またはプラットフォーム120を含む別のデバイスもしくはデバイスのグループによって実施されてもよい。
【0077】
図5に示すように、動作510において、方法500は、入力メディアストリームを含む入力ワークフローを取得するステップを含む。
【0078】
動作520において、方法500は、入力ワークフローについてのスケーリングタイプ情報または遷移タイプ情報の少なくとも1つを決定するステップを含む。スケーリングタイプ情報は、切り替え機能情報、分割-合併機能、または置換機能情報のうちの1つを含み、遷移タイプ情報は、同時遷移機能情報または同時遷移機能情報のうちの1つを含む。
【0079】
動作530において、方法500は、決定されたスケーリングタイプ情報または遷移タイプ情報の少なくとも1つに基づいて更新されたワークフローを生成するステップを含む。
【0080】
動作540において、方法500は、更新されたワークフローを処理するステップを含む。
【0081】
図5は方法の例示的なブロックを示しているが、いくつかの実施態様では、方法は、図5に図示されているものに対して、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加的または代替的に、方法のブロックのうちの2つ以上が並行して実施されてもよい。
【0082】
図6は、1つまたは複数の実施形態による、クラウドプラットフォーム上でネットワークベースのメディア処理(NBMP)ワークフローをスケーリングするためのコンピュータコードの一例のブロック図である。
【0083】
本開示の実施形態によれば、コンピュータコードを記憶するメモリを有する少なくとも1つのプロセッサを提供することができる。コンピュータコードは、少なくとも1つのプロセッサによって実行されるとき、本開示の任意の数の態様を実施するように構成され得る。
【0084】
例えば、図6を参照すると、コンピュータコード600は、NBMPシステム300に実装されてもよい。
【0085】
図6に示すように、コンピュータコード600は、取得コード610と、決定コード620と、生成コード630と、処理コード640とを含むことができる。
【0086】
取得コード610は、少なくとも1つのプロセッサに、入力メディアストリームを含む入力ワークフローを取得させるように構成されたコードを含んでもよい。
【0087】
決定コード620は、少なくとも1つのプロセッサに、入力ワークフローについてのスケーリングタイプ情報または遷移タイプ情報の少なくとも1つを決定させるように構成されたコードを含んでもよい。
【0088】
生成コード630は、少なくとも1つのプロセッサに、決定されたスケーリングタイプ情報または遷移タイプ情報の少なくとも1つに基づいて更新されたワークフローを生成させるように構成されたコードを含んでもよい。
【0089】
処理コード640は、少なくとも1つのプロセッサに、1つまたは複数のタスクのスケジューリングに基づいて更新されたワークフローを処理させるように構成されたコードを含んでもよい。
【0090】
図6は実施形態による装置またはデバイスのコンピュータコード600の例示的なブロックを示しているが、いくつかの実施態様では、装置は、図6に図示されているものに対して、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加的または代替的に、装置のブロックのうちの2つ以上が組み合わされてもよい。
【0091】
上述したクラウドプラットフォーム上でネットワークベースのメディア処理(NBMP)ワークフローをスケーリングするための技術は、別々に使用することも、任意の順序で組み合わせることもできる。さらに、方法(または実施形態)の各々は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行することができる。
【0092】
本開示は、例示および説明を提供するが、網羅的であること、または実施態様を開示された正確な形態に限定することを意図するものではない。修正および変形は、開示内容に照らして可能であるか、または実施態様の実践から取得されてもよい。
【0093】
本明細書で使用される場合、構成要素という用語は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせとして広く解釈されることを意図している。
【0094】
本明細書に記載されるシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0095】
特徴の組み合わせが特許請求の範囲に列挙され、かつ/または本明細書に開示されているが、これらの組み合わせは、可能な実施態様の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に特に列挙されておらず、かつ/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接依存してもよいが、可能な実施態様の開示は、請求項セット内のあらゆる他の請求項と組み合わせた各従属請求項を含む。
【0096】
本明細書で使用される要素、行為、または命令は、明示的にそのように記載されていない限り、重要または必須であると解釈されなくてもよい。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数」と交換可能に使用されてもよい。さらに、本明細書で使用される場合、「セット」という用語は、1つまたは複数の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど)を含むことを意図しており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図される場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。さらに、「に基づいて」という語句は、特に明記されない限り、「少なくとも部分的に~に基づいて」を意味することを意図している。
【符号の説明】
【0097】
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 メディアシンク
400 NBMP分割器および合併器プロセス
410 入力メディアストリーム
420 分割器
430 合併器
440 メディアストリーム
450 出力
500 方法
510 動作
520 動作
530 動作
540 動作
600 コンピュータコード
610 取得コード
620 決定コード
630 生成コード
640 処理コード
図1
図2
図3
図4
図5
図6