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

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

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

特表2024-541741クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開
<>
  • 特表-クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開 図1
  • 特表-クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開 図2
  • 特表-クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開 図3
  • 特表-クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開 図4
  • 特表-クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-11
(54)【発明の名称】クラウドベースのメディアアプリケーションにおける固定された所定のパラメータを有するワークフロータスクの展開
(51)【国際特許分類】
   G06F 9/48 20060101AFI20241101BHJP
【FI】
G06F9/48 370
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024532932
(86)(22)【出願日】2023-04-18
(85)【翻訳文提出日】2024-05-31
(86)【国際出願番号】 US2023065875
(87)【国際公開番号】W WO2023205624
(87)【国際公開日】2023-10-26
(31)【優先権主張番号】63/332,614
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/301,810
(32)【優先日】2023-04-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
(57)【要約】
本開示は、一般に、NBMPシステムを使用したメディアアプリケーションの開発および展開に関する。より具体的には、本開示は、NBMPワークフローで使用される機能のインスタンスレベル構成のための方法および装置を説明する。機能の一般構成記述子のフォーマットに基づいてカスタマイズされた構成および制限を有するメディア処理ワークフローにおける様々なタスクにおいて同じ機能の異なるインスタンスを構成するための例示的なメカニズムが提供される。
【特許請求の範囲】
【請求項1】
メディア処理アプリケーションのためのクラウドベースのプラットフォームでネットワークベースのメディア処理(NBMP)ワークフローを生成するためのシグナリング方法であって、前記方法は、
前記メディア処理アプリケーションのNBMPワークフロー内の複数のNBMPタスクの中からNBMPタスクを決定するステップと、
前記NBMPタスクによって使用されるべき機能リポジトリから機能を識別するステップと、
前記機能をインスタンス識別子と関連付けるステップであって、前記インスタンス識別子は、前記複数のNBMPタスクのうちの前記NBMPタスク内の前記機能のインスタンスを他のNBMPタスク内の前記機能の他のインスタンスから一意に区別する、ステップと、
前記機能リポジトリから前記機能の構成記述子データ構造を取得するステップと、
前記NBMPタスク内の前記機能の前記インスタンスに対する制限のセットを決定するステップと、
前記制限のセットを前記構成記述子データ構造に適用し、前記構成記述子データ構造と同じフォーマットを使用することによって機能制限データ構造を生成するステップであって、前記機能制限データ構造は前記インスタンス識別子によって一意に識別される、ステップと、
NBMPワークフローマネージャに前記機能のインスタンス依存の制限をシグナリングするための前記インスタンス識別子と対になった前記機能制限データ構造を含む、前記NBMPワークフローのためのプロセス記述子を構築するステップと
を含む、シグナリング方法。
【請求項2】
前記構成記述子データ構造が、前記機能のインスタンスに依存しないパラメータ構成のセットを含む、請求項1に記載のシグナリング方法。
【請求項3】
前記インスタンスに依存しないパラメータ構成のセットが、前記機能に関連付けられたパラメータのパラメータ範囲のセットを含む、請求項2に記載のシグナリング方法。
【請求項4】
前記パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲が、数値範囲を含む、請求項3に記載のシグナリング方法。
【請求項5】
前記パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲が、オプションの選択肢のセットを含む、請求項3に記載のシグナリング方法。
【請求項6】
前記制限のセットが、前記パラメータ範囲のセットに対するさらなるインスタンス依存の制限を含む、請求項3に記載のシグナリング方法。
【請求項7】
前記制限のセットの少なくとも1つが、前記機能に関連付けられた前記パラメータの少なくとも1つを単一の数値に制限することを含む、請求項6に記載のシグナリング方法。
【請求項8】
前記制限のセットの少なくとも1つが、前記機能に関連付けられた前記パラメータの少なくとも1つを単一の選択肢に制限することを含む、請求項6に記載のシグナリング方法。
【請求項9】
前記機能リポジトリから前記複数のNBMPタスクによって使用されるべき複数の機能を識別するステップであって、各タスクにおける各機能の使用は、固有の機能インスタンスに起因する、ステップと、
前記プロセス記述子の一部として前記機能インスタンス間の接続マップを構築するステップであって、前記機能インスタンスの各々は固有の機能インスタンス識別子に関連付けられている、ステップと
をさらに含む、請求項1から8のいずれか一項に記載のシグナリング方法。
【請求項10】
メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてNBMPワークフローを生成するためのワークフローマネージャをシグナリングするための電子デバイスであって、前記電子デバイスは、命令を格納するためのメモリと、
前記メディア処理アプリケーションのNBMPワークフロー内の複数のNBMPタスクの中からNBMPタスクを決定し、
前記NBMPタスクによって使用されるべき機能リポジトリから機能を識別し、
前記機能をインスタンス識別子と関連付け、前記インスタンス識別子は、前記複数のNBMPタスクのうちの前記NBMPタスク内の前記機能のインスタンスを他のNBMPタスク内の前記機能の他のインスタンスから一意に区別し、
前記機能リポジトリから前記機能の構成記述子データ構造を取得し、
前記NBMPタスク内の前記機能の前記インスタンスに対する制限のセットを決定し、
前記制限のセットを前記構成記述子データ構造に適用することによって機能制限データ構造を生成し、前記機能制限データ構造は前記インスタンス識別子によって一意に識別され、
前記機能のインスタンス依存の制限をNBMPワークフローマネージャにシグナリングするための前記インスタンス識別子と対になった前記機能制限データ構造を含む前記NBMPワークフローのためのプロセス記述子を構築する、
ための前記命令を実行するためのプロセッサとを備える、電子デバイス。
【請求項11】
前記構成記述子データ構造が、前記機能のインスタンスに依存しないパラメータ構成のセットを含む、請求項10に記載の電子デバイス。
【請求項12】
前記インスタンスに依存しないパラメータ構成のセットが、前記機能に関連付けられたパラメータのパラメータ範囲のセットを含む、請求項11に記載の電子デバイス。
【請求項13】
前記パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲が、数値範囲を含む、請求項12に記載の電子デバイス。
【請求項14】
前記パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲が、オプションの選択肢のセットを含む、請求項13に記載の電子デバイス。
【請求項15】
前記制限のセットが、前記パラメータ範囲のセットに対するさらなるインスタンス依存の制限を含む、請求項14に記載の電子デバイス。
【請求項16】
前記制限のセットの少なくとも1つが、前記機能に関連付けられた前記パラメータの少なくとも1つを単一の数値に制限することを含む、請求項15に記載の電子デバイス。
【請求項17】
前記制限のセットの少なくとも1つが、前記機能に関連付けられた前記パラメータの少なくとも1つを単一の選択肢に制限することを含む、請求項15に記載の電子デバイス。
【請求項18】
前記プロセッサが、
前記機能リポジトリから前記複数のNBMPタスクによって使用されるべき複数の機能を識別し、各タスクにおける各機能の使用は、固有の機能インスタンスに起因し、
前記プロセス記述子の一部として前記機能インスタンス間の接続マップを構築し、前記機能インスタンスの各々は固有の機能インスタンス識別子に関連付けられている、
ための前記命令を実行するようにさらに構成される、請求項10から17のいずれか一項に記載の電子デバイス。
【請求項19】
メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてNBMPワークフローを生成するための方法であって、前記方法は、
NBMPワークフロー記述子文書を受信するステップと、
前記NBMPワークフロー記述子文書から、機能リポジトリからの機能と関連付けられた機能制限データ構造を抽出し、前記機能制限データ構造に起因するインスタンス識別子を抽出するステップであって、前記インスタンス識別子は、前記NBMPワークフローのNBMPタスクにおける前記機能の使用のインスタンスを一意に識別し、前記機能制限データ構造は、インスタンス依存であり、前記機能リポジトリ内の前記機能についての構成記述子データ構造のフォーマットに従って構築される、ステップと、
前記機能制限データ構造から、前記機能に対するインスタンス依存制限のセットを抽出するステップと、
前記NBMPワークフロー記述子文書および前記機能の前記インスタンス依存制限に従って前記NBMPワークフローを生成するステップと
を含む、方法。
【請求項20】
メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてワークフローを生成するための電子デバイスであって、前記電子デバイスは、命令を記憶するためのメモリと、請求項19に記載の方法を実行するために前記命令を実行するためのプロセッサとを備える、電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年4月19日に出願された米国仮特許出願第63/332,614号に基づく優先権の利益を主張する、2023年4月17日に出願された米国非仮特許出願第18/310,810号に基づく優先権の利益を主張する。これらの先行特許出願の各々は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ネットワークベースのメディア処理(NBMP)を使用するメディアストリーミング技術に関する。より具体的には、本開示は、NBMPワークフローで使用される機能のインスタンスレベル構成のための方法および装置を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様と共に、本開示に対する先行技術としては明示的にも暗示的にも認められない。
【0004】
ネットワークおよびクラウドプラットフォームは、様々なメディアアプリケーションを実行するために使用されてもよい。ネットワークベースのメディア処理(NBMP)システムは、クラウドベースの環境上でワークフローを定義し、インスタンス化し、実行するためのプラットフォームを提供する。このようなワークフローは、各時間において、部分単位で、タスクごとに、またはタスクのグループで実行されることができる。NBMPは、メディア処理効率、メディアサービスのより高速で低コストの展開、およびパブリック、プライベート、またはハイブリッドクラウドサービスを活用することによる大規模な展開を提供する能力を向上させる大きな可能性を示している。NBMPでは、様々なマルチメディアサービスプロバイダおよびネットワーク/クラウドサービスプロバイダが、カスタマイズされた没入メディアサービスを顧客に提供するために協働することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示は、一般に、NBMPシステムを使用したメディアアプリケーションの開発および展開に関する。より具体的には、本開示は、NBMPワークフローで使用される機能のインスタンスレベル構成のための方法および装置を説明する。機能の一般構成記述子のフォーマットに基づいてカスタマイズされた構成および制限を有するメディア処理ワークフローにおける様々なタスクにおいて同じ機能の異なるインスタンスを構成するための例示的なメカニズムが提供される。
【0006】
いくつかの例示的な実装形態では、メディア処理アプリケーションのためのクラウドベースのプラットフォームでNBMPワークフローを生成するためのシグナリング方法が開示される。本方法は、メディア処理アプリケーションのNBMPワークフロー内の複数のNBMPタスクの中からNBMPタスクを決定するステップと、NBMPタスクによって使用されるべき機能リポジトリから機能を識別するステップと、機能をインスタンス識別子と関連付けるステップであって、インスタンス識別子は、複数のNBMPタスクのうちのNBMPタスク内の機能のインスタンスを他のNBMPタスク内の機能の他のインスタンスから一意に区別する、ステップと、機能リポジトリから機能の構成記述子データ構造を取得するステップと、NBMPタスク内の機能のインスタンスに対する制限のセットを決定するステップと、制限のセットを構成記述子データ構造に適用し、構成記述子データ構造と同じフォーマットを使用することによって機能制限データ構造を生成するステップであって、機能制限データ構造はインスタンス識別子によって一意に識別される、ステップと、NBMPワークフローマネージャに機能のインスタンス依存の制限をシグナリングするためのインスタンス識別子と対になった機能制限データ構造を含む、NBMPワークフローのためのプロセス記述子を構築するステップと、を含み得る。
【0007】
上記の例示的な実装形態では、構成記述子データ構造は、機能のインスタンスに依存しないパラメータ構成のセットを含む。
【0008】
上記の例示的な実装形態のいずれか1つでは、インスタンスに依存しないパラメータ構成のセットは、機能に関連付けられたパラメータのパラメータ範囲のセットを含む。
【0009】
上記の例示的な実装形態のいずれか1つでは、パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲は、数値範囲を含む。
【0010】
上記の例示的な実装形態のいずれか1つでは、パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲は、オプションの選択肢のセットを含む。
【0011】
上記の例示的な実装形態のいずれか1つでは、制限のセットは、パラメータ範囲のセットに対するさらなるインスタンス依存の制限を含む。
【0012】
上記の例示的な実装形態のいずれか1つでは、制限のセットの少なくとも1つは、機能に関連付けられたパラメータの少なくとも1つを単一の数値に制限することを含む。
【0013】
上記の例示的な実装形態のいずれか1つでは、制限のセットの少なくとも1つは、機能に関連付けられたパラメータの少なくとも1つを単一の選択肢に制限することを含む。
【0014】
上記の例示的な実装形態のいずれか1つでは、本方法は、機能リポジトリから複数のNBMPタスクによって使用されるべき複数の機能を識別するステップであって、各タスクにおける各機能の使用は、固有の機能インスタンスに起因する、ステップと、プロセス記述子の一部として機能インスタンス間の接続マップを構築するステップであって、機能インスタンスの各々は固有の機能インスタンス識別子に関連付けられている、ステップと、をさらに含み得る。
【0015】
いくつかの他の例示的な実装形態では、メディア処理アプリケーションのためのクラウドベースのプラットフォームでNBMPワークフローを生成するための方法が開示される。本方法は、NBMPワークフロー記述子文書を受信するステップと、NBMPワークフロー記述子文書から、機能リポジトリからの機能と関連付けられた機能制限データ構造を抽出し、機能制限データ構造に起因するインスタンス識別子を抽出するステップであって、インスタンス識別子は、NBMPワークフローのNBMPタスクにおける機能の使用のインスタンスを一意に識別し、機能制限データ構造は、インスタンス依存であり、機能リポジトリ内の機能についての構成記述子データ構造のフォーマットに従って構築される、ステップと、機能制限データ構造から、機能に対するインスタンス依存制限のセットを抽出するステップと、NBMPワークフロー記述子文書および機能のインスタンス依存制限に従ってNBMPワークフローを生成するステップと、を含み得る。
【0016】
本開示の態様はまた、上記の方法実装形態のいずれか1つを実行するためのメモリを形成するコンピュータ命令を実行するための回路またはプロセッサを含む電子デバイスまたはシステムを提供する。
【0017】
本開示の態様はまた、電子デバイスまたはシステムによって実行されると、電子デバイスまたはシステムに上記の方法実装形態のいずれか1つを実行させるように構成される命令を格納する非一時的コンピュータ可読媒体を提供する。
【0018】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0019】
図1】本開示の1つまたは複数の実施形態による、メディアアプリケーションに適用可能なメディア通信システムの例示的な概略図である。
図2】メディアアプリケーションのための例示的なコンピューティング環境を示す図である。
図3】本開示の1つまたは複数の実施形態による、NBMPシステムの例示的なブロック図である。
図4】本開示の1つまたは複数の実施形態による例示的なデータおよび論理フローを示す図である。
図5】本開示の1つまたは複数の実施形態による別の例示的なデータおよび論理フローを示す図である。
【発明を実施するための形態】
【0020】
メディア処理のためのクラウドコンピューティング環境
図1は、以下の様々な例示的な実施形態による、本明細書に記載の方法、装置、およびシステムを実施することができる例示的なコンピューティング環境100の図を示す。図1に示すように、コンピューティング環境100は、1つまたは複数のユーザデバイス110(単に簡単にするために以下では単数形で説明する)、コンピューティングプラットフォーム120、および通信ネットワーク130を含み得る。環境100の様々なデバイスおよび構成要素は、通信ネットワーク130の有線接続、無線接続、または有線接続と無線接続との組み合わせを介して相互接続し得る。
【0021】
ユーザデバイス110は、コンピューティングプラットフォーム120に関連する情報の受信、生成、記憶、処理および/または提供することができる1つまたは複数のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスもしくはスマートウォッチなど)、または同様のデバイスを含んでもよい。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信しかつ/またはプラットフォーム120に情報を送信してもよい。
【0022】
コンピューティングプラットフォーム120は、本明細書の他の記載で説明されているように1つまたは複数のデバイスを含む。いくつかの実装形態では、コンピューティングプラットフォーム120は、クラウドサーバまたはクラウドサーバのグループを含んでもよい。クラウドサーバまたはクラウドサーバのグループは、中央に配置されてもよく、または地理的に分散されてもよい。いくつかの実装形態では、コンピューティングプラットフォーム120は、特定の必要性に応じてソフトウェア構成要素をスワップインまたはスワップアウトし得るようにモジュール式に設計されてもよい。よって、コンピューティングプラットフォーム120は、異なる用途のために容易にかつ/または迅速に再構成されてもよい。
【0023】
いくつかの実装形態では、図1に示すように、コンピューティングプラットフォーム120は、クラウドコンピューティング環境122でホストされてもよい。特に、本明細書に記載された実装形態は、クラウドコンピューティング環境122内でホストされるものとしてプラットフォーム120を記載するが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部に実装されてもよく)、部分的にクラウドベースであってもよい。
【0024】
クラウドコンピューティング環境122は、プラットフォーム120をホストするように構成されてもよい。クラウドコンピューティング環境122は、コンピューティングプラットフォーム120をホストする(1つまたは複数の)システムおよび/または(1つまたは複数の)デバイスの物理的位置および構成に関するエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算処理、ソフトウェア、データアクセス、ストレージなどのサービスを提供してもよい。図1の例に示すように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(「コンピューティングリソース124」と総称し、個々に「コンピューティングリソース124」と呼ぶ)を含んでもよい。
【0025】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他の種類の計算および/または通信デバイスを含む。いくつかの実装形態では、コンピューティングリソース124は、コンピューティングプラットフォーム120に提供されてもよい。クラウドリソースは、コンピューティングリソース124内で実行される計算インスタンス、コンピューティングリソース124内で提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して他のコンピューティングリソース124と通信してもよい。
【0026】
図1にさらに示すように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含んでもよい。
【0027】
アプリケーション124-1は、ユーザデバイス110および/もしくはプラットフォーム120に提供され得るか、またはユーザデバイス110および/もしくはコンピューティングプラットフォーム120によってアクセスされ得る、1つまたは複数のソフトウェアアプリケーションを含んでもよい。アプリケーション124-1は、ユーザデバイス110上にソフトウェアアプリケーションをインストールし実行する必要性を排除し得る。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェアおよび/またはクラウドコンピューティング環境122を介して提供されることが可能な任意の他のソフトウェアを含んでもよい。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つまたは複数の他のアプリケーション124-1との間で情報を送受信してもよい。
【0028】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含んでもよい。仮想マシン124-2は、その使用レベルおよび仮想マシン124-2による任意の実マシンへの対応度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供してもよい。プロセス仮想マシンは、単一のプログラムを実行してもよく、また単一のプロセスをサポートしてもよい。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって実行してもよく、データ管理、同期、または長期間のデータ転送など、クラウドコンピューティング環境122のインフラストラクチャの様々な態様を管理してもよい。
【0029】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステムまたはデバイス内の仮想化技術を使用する1つもしくは複数のストレージシステムおよび/または1つもしくは複数のデバイスを含んでもよい。いくつかの実装形態では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含んでもよい。ブロック仮想化は、物理ストレージであっても異種構造であってもストレージシステムにアクセスできるように、物理ストレージからの論理ストレージの抽象化(または分離)を指すことができる。分離は、ストレージシステムの管理者がエンドユーザのためにストレージを管理する柔軟性を可能にし得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に格納される場所との間の依存関係を排除するのに役立ち得る。このような依存関係を排除することにより、ストレージ使用、サーバ統合、および/または無停止ファイル移行の性能の最適化を可能にし得る。
【0030】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)がコンピューティングリソース124などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示し得、ゲストオペレーティングシステムの実行を管理し得る。様々なオペレーティングシステムの複数のインスタンスは、仮想化ハードウェアリソースを共有し得る。
【0031】
ネットワーク130は、1つまたは複数の有線および/または無線ネットワークを含んでもよい。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、WiMaxネットワーク、符号分割多元接続(CDMA)ネットワークなど)、Wi-Fiネットワーク、公的地域モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらもしくはその他のタイプのネットワークの組み合わせを含んでもよい。
【0032】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供される。実際には、図1に示すものに比べて、追加のデバイスおよび/もしくはネットワーク、少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークがあってもよい。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。加えて、または代替として、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)は、環境100の別のデバイスのセットによって実行されるものとして記載された1つまたは複数の機能を実行してもよい。
【0033】
図2は、図1の1つまたは複数のデバイスの例示的な構成要素のブロック図を示す。デバイス200は、ユーザデバイス110およびコンピューティングプラットフォーム120ならびにそれらの任意の構成要素に対応し得る。図2に示すように、デバイス200は、通信バス210と、プロセッサ220と、メモリ230と、ストレージ構成要素240と、入力構成要素250と、出力構成要素260と、通信インターフェース270とを含み得る。
【0034】
通信バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含み得る。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実装されてもよい。プロセッサ220は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素であってもよい。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つまたは複数のプロセッサを含んでもよい。メモリ230は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ならびに/またはプロセッサ220による使用のための情報および/もしくは命令を格納する別のタイプの動的もしくは静的なストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/もしくは光メモリ)を含んでもよい。
【0035】
ストレージ構成要素240は、デバイス200の動作および使用に関連する情報および/またはソフトウェアを格納してもよい。例えば、ストレージ構成要素240は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0036】
入力構成要素250は、デバイス200がユーザ入力などを介して情報を受け取ることを可能にする構成要素(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)を含んでもよい。加えて、または代替として、入力構成要素250は、環境情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含んでもよい。出力構成要素260は、デバイス200からの出力情報を提供する構成要素(例えば、ディスプレイ、スピーカ、および/または1つもしくは複数の発光ダイオードオード(LED))を含んでもよい。
【0037】
通信インターフェース270は、デバイス200が有線接続、無線接続、または有線接続と無線接続との組み合わせなどを介して他のデバイスと通信することを可能にする、送受信機様の構成要素(例えば、送受信機ならびに/または別個の受信機および送信機)を含む。通信インターフェース270は、デバイス200が別のデバイスから情報を受信すること、および/または別のデバイスに情報を提供することを可能にし得る。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサル・シリアル・バス(USB)インターフェース、Wi-Fiインターフェース、セルラー・ネットワーク・インターフェースなどを含んでもよい。
【0038】
デバイス200は、本明細書に記載された1つまたは複数のプロセスを実行し得る。デバイス200は、プロセッサ220がメモリ230および/またはストレージ構成要素240などの非一時的コンピュータ可読媒体によって格納されたソフトウェア命令を実行したことに応答して、これらのプロセスを実行し得る。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理的なストレージデバイス内のメモリ空間を、または複数の物理的なストレージデバイスにわたって分散されたメモリ空間を含む。
【0039】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェース270を介して別のデバイスから、メモリ230および/またはストレージ構成要素240に読み込まれてもよい。実行されると、メモリ230および/またはストレージ構成要素240に格納されたソフトウェア命令は、プロセッサ220に本明細書に記載の1つまたは複数のプロセスを実行させてもよい。加えて、または代替として、本明細書に記載の1つまたは複数のプロセスを実施するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせてハードワイヤード回路が使用されてもよい。したがって、本明細書に記載の実装形態は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
【0040】
図2に示す構成要素の数および配置は、単なる例として提供されている。実際には、デバイス200は、図2に示された構成要素に比べて、追加の構成要素、少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。加えて、または代替として、デバイス200の構成要素のセット(例えば、1つまたは複数の構成要素)は、デバイス200の別の構成要素のセットによって実施されるものとして記載された1つまたは複数の機能を実行してもよい。
【0041】
ネットワークベースのメディア処理
メディア情報は、メディアストレージおよびメディア処理の両方を含み、例えば、説明した例示的なクラウドコンピューティング環境において、クラウド化され得る。メディアのクラウド処理は、一般に、メディアソースから入力を取得することと、1つまたは複数のワークフローに従って入力を処理することと、メディアシンクまたは宛先に送信される1つまたは複数の出力を生成することとを含み得る。メディア処理ワークフローのクラウド化は、より高いリソース効率を達成し、スケーラビリティを保証し、メディアサービスのより高速、大規模、および低コストの展開を提供するのに役立ち得る。クラウドベースのメディア処理は、限定はしないが、仮想現実(VR)、拡張現実(AR)、3D以上のコンテンツ、および人工知能(AI)ツールを含む、様々な新たに開発されたメディアコンテンツ、サービス、体験、および処理ツールを効率的に処理するのに特に適し得る。
【0042】
このようなプラットフォームの例は、ネットワークベースのメディア処理(NBMP)と呼ばれる場合がある。NBMPでは、メディアサービスプロバイダは、異なるクラウドプラットフォームおよび地理的位置にわたってそれらのワークフローを展開する必要があり得る。ワークフローは、クラウド、エッジ、およびオンプレミスゲートウェイの混合において様々なメディア処理機能を実行するように構成されてもよい。いくつかの例示的な実装形態では、異なるメディア処理機能のより高いスケーラビリティ、再利用性、分離、試験安定性のために、マイクロサービス設計パターンがNBMPに採用されてもよい。
【0043】
いくつかの実装形態では、NBMPプラットフォームは、基盤となるクラウドインフラストラクチャまたはプラットフォームから独立した(またはそれに依存しない)、柔軟なメディア処理ワークフローを構成、制御、管理、および監視するための統一された抽象化層を提供するように設計され得る。NBMP層は、メディア処理機能を発見し、メディアワークフローを記述し、メディア処理ワークフローを展開し、ランタイムタスクを構成し、不良挙動を監視し、是正措置を講じるためのアーキテクチャ、API、メディアおよびメタデータフォーマットを定義し得る。
【0044】
説明を容易にするために、本開示は、以下に記載されるような用語および名称を採用する。
【0045】
機能記述:入力および出力記述詳細、要求されたメディア処理、要件など、メディア処理機能の詳細の記述。
【0046】
機能リポジトリ:NBMP機能がNBMPワークフローマネージャまたはNBMPソースによって取得されるストレージプレイス。
【0047】
メディア処理エンティティ:1つまたは複数のメディア処理タスクを実行するエンティティ
【0048】
メディアリソース:メディアソースによって取り込まれ、NBMPシステムのメディア処理エンティティに送信されるメディアデータ。
【0049】
メディアシンク:既存の配信方法を通じてNBMPワークフローの出力を消費するエンティティ。
【0050】
メディアソース:デジタルカメラ、マイクロフォン、エンコーダ、またはパーシステントストレージなど、処理される生のメディアコンテンツを提供するエンティティ。
【0051】
NBMPフォーマット:NBMPシステム内のメディアソースとメディア処理エンティティとの間、およびNBMPシステム内の個々のメディア処理エンティティ間で交換されるメディアフォーマット。
【0052】
NBMP機能:スタンドアロンおよび自己完結型メディア処理動作の実装およびその動作の対応する説明。
【0053】
NBMPパブリッシュフォーマット:メディア処理エンティティからメディアシンクに送信されるコンテンツのメディアフォーマット。
【0054】
NBMPソース:トリガを提供し、ネットワーク内のメディア処理を記述するエンティティ。
【0055】
NBMPシステム:ネットワーク内の1つまたは複数の処理エンティティにわたってメディアを処理するためのシステムであって、メディアソース、NBMPソース、NBMPワークフローマネージャ、機能リポジトリ、メディア処理エンティティ(複数可)およびメディアシンク(複数可)からなるシステム。
【0056】
NBMPワークフロー:様々な形態で提示され得る、要求されたメディア処理を達成する1つまたは複数の接続されたタスク(複数可)。
【0057】
NBMPワークフローマネージャ:ワークフロー記述および機能記述に基づいて完全なワークフローを作成するために、タスクをプロビジョニングし、それらを接続するエンティティ。
【0058】
補足情報:メディアデータまたはメディア処理動作に関連するメタデータまたは補助情報。
【0059】
タスク:メディア処理エンティティ内で実行されるNBMP機能のランタイムインスタンス。
【0060】
タスク記述:入力および出力記述詳細、要件、構成情報などのタスクのランタイム詳細の記述。
【0061】
ワークフロー記述:入力および出力記述詳細、要求されたメディア処理、ワークフローの要件などのメディア処理の詳細の記述。
【0062】
図1は、例示的なNBMPシステム300を示す。図3に示すように、NBMPシステム300は、1つまたは複数のNBMPソース310、NBMPワークフローマネージャ320、1つまたは複数の機能リポジトリ330、1つまたは複数のメディア処理エンティティ(MPE)350、1つまたは複数のメディアソース360、および1つまたは複数のメディアシンク370を含んでもよい。NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、MPE340、メディアソース350、およびメディアシンク360は、少なくとも1つまたは複数のプロセッサと、それぞれ、NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、MPE340、メディアソース360、およびメディアシンク360の機能を少なくとも1つまたは複数のプロセッサに実行させるように構成されたコードを格納するメモリとを含むか、またはそれらによって実装されてもよい。
【0063】
NBMPソース310は、NBMPワークフローマネージャ320にワークフロー記述文書(WDD)を送信することによって、1つまたは複数のメディア処理エンティティ(MPE)340によって実行されるべきタスクを含むワークフローを作成するようNBMPワークフローマネージャ320に要求し得る。WDDは、各々がいくつかのパラメータを含み得るいくつかの記述子を含み得る。これらの記述子は、入力および出力データ、必要な機能、およびワークフローの要件などの詳細を含み得る。WDDは、タスク記述子におけるタスク記述のセットと、メディア処理エンティティ340のうちの1つまたは複数によって実行されるべきタスクの入力および出力を接続するタスクの接続マップとを含み得る。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受信すると、NBMPワークフローマネージャ320は、機能名に基づいてタスクをインスタンス化し、接続マップに従ってタスクを接続することによってワークフローを作成し得る。
【0064】
NBMPソース310は、NBMPワークフローAPI311を介してNBMPワークフローマネージャ320にWDDを通信し得る。NBMPソース310はまた、機能リポジトリ330に格納された機能の機能記述を取得するために、機能発見API313を介して機能リポジトリ330と機能記述を通信し得る。これらの機能は、機能リポジトリ330に格納されたメディア処理機能を含み得、例えば、メディア復号、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンド、後処理、および符号化のための機能を含み得る。NBMPワークフローマネージャ320は、機能発見API313と同じかまたは異なるAPIであり得る機能発見API312を介して機能リポジトリ330と通信し得、API314(例えば、MPE API)を介してMPE340のうちの1つまたは複数とさらに通信し得る。
【0065】
いくつかの例示的な実装形態では、NBMPソース310は、キーワードのセットを使用してワークフローを作成するようにNBMPワークフローマネージャ320に要求してもよい。例えば、NBMPソース310は、NBMPワークフローマネージャ320が機能リポジトリ330に格納された適切な機能を識別するために使用し得るキーワードのセットを含み得るWDDをNBMPワークフローマネージャ320に送信してもよい。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受信すると、NBMPワークフローマネージャ320は、WDDの処理記述子に指定され得るキーワードを使用して適切な機能を検索することによって要求されたワークフローを作成し、WDD内の他の記述子を使用してタスクを規定し、タスクを接続してワークフローを作成してもよい。
【0066】
NBMPワークフローマネージャ320は、API314を使用して、1つまたは複数のMPE340によって実行可能なワークフローの1つまたは複数のタスク341をセットアップ、構成、管理、および監視し得る。いくつかの例示的な実装形態では、NBMPワークフローマネージャ320は、API314を使用してタスクを更新および破棄してもよい。ワークフローのタスク341を構成、管理、および監視するために、NBMPワークフローマネージャ320は、MPE340の1つまたは複数に要求などのメッセージを送信してもよく、各メッセージは、それらの各々がいくつかのパラメータを有するいくつかの記述子を有してもよい。タスク341は各々、メディア処理機能342と、メディア処理機能342のための構成343とを含んでもよい。
【0067】
MPE340は、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の間の通信は、制御フローを形成し得る。
【0068】
タスク341は各々、メディア処理機能343のための構成342に従ってメディア処理機能343を呼び出してもよい。それぞれのメディア処理エンティティ340内のタスク341の各々はまた、タスク間のデータフローを容易にするために互いに通信してもよい。いくつかの例示的な実装形態では、NBMPワークフローマネージャ320は、WDD内のタスクの記述に基づいてタスクを選択して、機能発見API312を介して機能リポジトリ330を検索し、現在のワークフロー用のタスク341として実行する適切な機能を識別してもよい。1つまたは複数のMPE340は、メディアソース350からメディアコンテンツを受信し、タスク341においてメディアを処理することを含む、ワークフローに従ってメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク360に出力するように構成され得る。いくつかの例示的な実装形態では、1つまたは複数のMPE340は、それぞれ、メディアソース350とメディアシンク360との間の複数のメディアフロー316および317に対して並列に提供されてもよい。
【0069】
メディアソース350は、メディアを格納するように構成されてもよく、NBMPソース310と統合されてもよく、または別個であってもよい。いくつかの例示的な実装形態では、NBMPワークフローマネージャ320は、ワークフローが準備されたときにNBMPソース310に通知してもよく、メディアソース350は、通知に基づいてメディアコンテンツを1つまたは複数のMPE340に送信してもよく、1つまたは複数のMPE340は、対応するタスクを実行し、メディアコンテンツを処理し、出力を生成し、出力メディアをメディアシンク360に送信してもよい。メディアソース350、MPE340、およびメディアシンク360の間の通信は、(上述した制御フローとは対照的に)データフローを形成してもよい。
【0070】
機能リポジトリ内の機能構成
上記で説明され、図3の構成要素330として示された機能リポジトリは、ワークフローのためにMPE340によってインスタンス化された様々なタスクによって使用される機能およびツールを供給するという点で重要である。機能リポジトリ330内の各機能は、機能記述と関連付けられてもよい。各機能記述は、事前定義されたフォーマットに従ってデータ構造として機能リポジトリに格納されてもよい。このようなデータ構造は、機能記述子と呼ばれる場合がある。機能記述子は、例えば、多くの場合、対応する機能に関連付けられたパラメータの記述、それらのタイプ、範囲などを含むパラメータの構成を含む。そのような構成記述は、機能の構成記述子と呼ばれる場合がある。
【0071】
例えば、「TRANS-VIDEO-292518」によって識別されるトランスコーダ機能は、以下の表1に示す例示的な事前定義された構成パラメータを有し得る。
【0072】
【表1】
【0073】
様々なパラメータの範囲は、このトランスコーダ機能のパラメータの選択肢の一般的な制限を提供する。
【0074】
例示的な実装形態では、対応する構成記述データ構造は、以下のように構築され得る。
リスト1
{
“parameters”:[
{
“name”:“codec”,
“id”:1,
“description”:“codec type”,
“datatype”:“string”,
“values”:[
{
“name”:“AVC”,
“id”:11,
“restrictions”:[“”]
},
{
“name”:“HEVC”,
“id”:12,
“restrictions”:[“”]
},
{
“name”:“VVC”,
“id”:13,
“restrictions”:[“”]
}
]
},
{
“name”:“width”,

“description”:“width in pixels”,
“datatype”:“integer”,
“values”:[
{
“name”:“width”,
“id”:21,
“restrictions”:{
“min-value”:16,
“max-value”:15360
}
}
]
},
{
“name”:“height”,
“id”:3,
“description”:“height in pixels”,
“datatype”:“integer”,
“values”:[
{
“name”:“height”,
“id”:31,
“restrictions”:{
“min-value”:16,
“max-value”:8640
}
}
]
},
{
“name”:“bitrate”,
“id”:4,
“description”:“bitrate in kb/sec”,
“datatype”:“integer”,
“values”:[
{
“name”:“bitrate”,
“id”:41,
“restrictions”:{
“min-value”:100,
“max-value”:100000
}
}
]
}
]
}
【0075】
機能インスタンス対応ワークフロー記述文書(WDD)
上述したように、WDDは、WDDに従ってワークフローを生成するために、NBMPソース310によってNBMPワークフローマネージャ320に提供され得る。したがって、WDDは、NBMPワークフローマネージャ320が機能リポジトリ330から必要とされる機能を識別し、様々なタスク間の関係を決定するために必要とされ得るすべての情報を含む。
【0076】
各種データのうち、WDDには、タスク、各種タスク間の接続、各タスクが使用する機能を指定する処理記述子が含まれてもよい。例えば、処理記述子は、様々なタスク/機能(例えば、入出力関係)間の関係を指定するタスク/機能オブジェクトのための接続マップを含んでもよい。
【0077】
いくつかの例示的な実装形態では、図3の機能リポジトリ330からの同じ機能が複数のタスクで使用されてもよい。複数のタスクの各々における同じ機能の使用は、同じ機能の別個のインスタンスとして扱われてもよく、したがって、WDDにおけるインスタンス識別子に起因してもよい。よって、タスク内の機能は、少なくとも2つのパラメータ、すなわち、対応するタスクまたは使用される機能を一意に識別するタスク/機能識別子と、2つ以上のタスクが同じ機能を使用する場合に使用されるインスタンス識別子とによって識別され得る。このようにして、インスタンス識別子は、タスクに使用される機能の特定のインスタンスを識別する。
【0078】
特定の一例では、上記のトランスコーダ機能「TRANS-VIDEO-292518」は、2つのタスク「task-1」および「task-2」によって使用され得る。2つのタスクは、「task-1」から「task-2」として接続されてもよい(例えば、task-1の出力がtask-2の入力に向かうことを意味する)。例示的なタスク/機能接続マップ要素を以下のリスト2に示す。
リスト2
“from”:{
“id”:“TRANS-VIDEO-292518”,
“instance”:“task-1”,
“port-name”:“12”
},
“to”:{
“id”:“TRANS-VIDEO-292518”,
“instance”:“task-2”,
“port-name”:“12”
}
【0079】
上記の例では、第1のタスクが第2のタスクに接続されることになる。両方のタスクが同じ機能を使用する。しかしながら、互いに識別されるように、2つのタスクにおける同じ機能の各々は、インスタンス識別子として一意の「instance」値を含む。以下でさらに詳細に説明するように、同じ機能の異なるインスタンスを区別することは、タスクの適応機能構成を容易にし、同じ機能であるが異なるタスクでインスタンス化された異なるインスタンスの構成を区別することを可能にし得る。
【0080】
いくつかのさらなる例示的な実装形態において、処理記述子は、機能制限オブジェクトの配列をさらに含んでもよい。各機能制限オブジェクトは、機能に適用される特定の制限を定義し得る。機能には様々な制限が課せられ得る。これに対応して、各機能制限オブジェクトは、機能に対する1つのタイプの制限にそれぞれ関連付けられたいくつかの異なるオブジェクトを含み得る。これらのタイプの制限のいくつかは、一般的であり、インスタンスに依存しない場合がある。したがって、対応するオブジェクトは、機能の特定のインスタンス識別子と関連付けられる必要がない場合がある。しかしながら、いくつかの他のタイプの制限はインスタンス依存であり得、したがって、それらの制限タイプに関連付けられたオブジェクトは、機能インスタンス識別子によってさらにタグ付けされ得る。
【0081】
様々なタイプの制限のうちの1つは、機能のパラメータ制限に関連し得る。そのようなパラメータ制限は、例えば、パラメータ範囲などに対する制限のセットに関する場合がある。
【0082】
パラメータ制限の一例として、上述したように、「TRANS-VIDEO-292518」によって識別されるトランスコーダ機能について、様々なパラメータの値の範囲は、表1に示すように、機能リポジトリ内の構成記述によって指定されるパラメータの一般的な範囲のサブセットに制限され得る。例示的な制限は、特定のタスクで使用されるときに適用される、以下の表2に示すような「TRANS-VIDEO-292518」のパラメータ範囲構成をもたらし得る。
【0083】
【表2】
【0084】
そのようなパラメータ制限は、インスタンス依存であり得る。よって、そのようなパラメータ制限のための上位レベルの機能制限オブジェクトの下のパラメータ制限オブジェクトは、特定のインスタンス識別子に関連付けられ得る。このようなパラメータ制限オブジェクトは、パラメータ制限を記述するためのデータ構造を含み得る。一例として、そのようなデータ構造は、機能リポジトリ内の機能構成記述のためのリスト1に関連して上述した構成記述子と形態が類似していてもよい。
【0085】
例えば、表2のパラメータ制限を有する機能の特定のインスタンスに関連付けられた機能制限オブジェクトの配列内の機能制限オブジェクト内のパラメータ制限オブジェクト内の特定のパラメータ制限記述は、以下のリスト3のデータ構造を使用して記述され得る。
リスト3
{
“parameters”:[
{
“name”:“codec”,
“id”:1,
“description”:“codec type”,
“datatype”:“string”,
“values”:[
{
“name”:“HEVC”,
“id”:12,
“restrictions”:[“”]
}
]
},
{
“name”:“width”,
“id”:2,
“description”:“width in pixels”,
“datatype”:“integer”,
“values”:[
{
“name”:“width”,
“id”:21,
“restrictions”:{
“min-value”:1920,
“max-value”:1920
}
}
]
},
{
“name”:“height”,
“id”:3,
“description”:“height in pixels”,
“datatype”:“integer”,
“values”:[
{
“name”:“height”,
“id”:31,
“restrictions”:{
“min-value”:1080,
“max-value”:1080
}
}
]
},
{
“name”:“bitrate”,
“id”:4,
“description”:“bitrate in kb/sec”,
“datatype”:“integer”,
“values”:[
{
“name”:“bitrate”,
“id”:41,
“restrictions”:{
“min-value”:3000,
“max-value”:3000
}
}
]
}
]
}
【0086】
よって、いくつかの例示的な実装形態では、タスクフローを生成するためのWDDはプロセス記述子を含んでもよい。プロセス記述子は、接続マップを含んでもよい。プロセス記述子は、機能制限オブジェクトの配列をさらに含んでもよい。機能制限オブジェクトの各々は、機能および機能のインスタンス識別子に関連付けられてもよい。よって、配列内の機能制限オブジェクトのいくつかは、同じ機能であるが異なるインスタンス識別子に関連付けられてもよい。さらに、機能制限オブジェクトの各々は、異なるタイプの機能制限のために複数の下位層オブジェクトを含んでもよい。これらの下位層オブジェクトのうちの1つは、機能インスタンスのパラメータ制限を記述してもよい。このようなパラメータ制限オブジェクトは、パラメータ制限を記述するためのデータ構造(例えば、リスト3)を含んでもよい。そのようなデータ構造は、一般的な機能パラメータ構成(例えば、リスト1)を記述するために機能リポジトリで使用される構成記述子と形態が類似していてもよい。
【0087】
いくつかの例示的な実装形態では、タスクフローを生成するためのWDDはプロセス記述子を含んでもよい。プロセス記述子は、接続マップを含んでもよい。プロセス記述子は、機能制限オブジェクトの配列をさらに含んでもよい。機能制限オブジェクトの各々は、機能と関連付けられてもよい。さらに、機能制限オブジェクトの各々は、異なるタイプの機能制限のために複数の下位層オブジェクトを含んでもよい。これらの下位層オブジェクトのうちの1つまたは複数を使用して、機能の機能インスタンスのパラメータ制限を記述してもよい。そのようなパラメータ制限オブジェクトの各々は、その特定の機能インスタンスのパラメータ制限(例えば、リスト3)を記述するためのデータ構造を含んでもよい。そのようなデータ構造は、一般的な機能パラメータ構成(例えば、リスト1)を記述するために機能リポジトリで使用される構成記述子と形態が類似していてもよい。そのような実装形態では、機能制限オブジェクトの配列は、(インスタンスとは無関係に)異なる機能に関連付けられてもよい。しかしながら、パラメータ制限オブジェクトなどの異なる制限タイプの第2レベル制限オブジェクトは、機能のインスタンス識別子に関連付けられてもよい。よって、同じタイプの制限を記述するが、機能の異なるインスタンスのための複数の下位レベルの制限オブジェクト(例えば、パラメータ制限オブジェクト)が存在してもよい。
【0088】
図4は、メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてNBMPワークフローを生成するためのシグナリング方法のための例示的なデータおよび論理フロー400を示す。ステップ410において、メディア処理アプリケーションのNBMPワークフロー内の複数のNBMPタスクの中のNBMPタスクが決定される。ステップ420において、NBMPタスクによって使用されるべき機能リポジトリからの機能が識別される。ステップ430において、機能は、インスタンス識別子に関連付けられ、インスタンス識別子は、複数のNBMPタスクのうちのNBMPタスク内の機能のインスタンスを他のNBMPタスク内の機能の他のインスタンスから一意に区別する。ステップ440において、機能リポジトリから機能の構成記述子データ構造が取得される。ステップ450において、NBMPタスク内の機能のインスタンスに対する制限のセットが決定される。ステップ460において、制限のセットを構成記述子データ構造に適用し、構成記述子データ構造と同じフォーマットを使用することによって、機能制限データ構造が生成され、機能制限データ構造は、インスタンス識別子によって一意に識別される。最後に、ステップ470において、機能のインスタンス依存の制限をNBMPワークフローマネージャにシグナリングするためのインスタンス識別子と対になった機能制限データ構造を含むNBMPワークフローのためのプロセス記述子が構築される。
【0089】
図5は、メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてNBMPワークフローを生成するための別の例示的なデータおよび論理フロー500を示す。ステップ510において、NBMPワークフロー記述子文書が受信される。ステップ520において、機能リポジトリからの機能に関連付けられた機能制限データ構造および機能制限データ構造に起因するインスタンス識別子が、NBMPワークフロー記述文書から抽出され、インスタンス識別子は、NBMPワークフローのNBMPタスクにおける機能の使用のインスタンスを一意に識別し、機能制限データ構造は、インスタンス依存であり、機能リポジトリ内の機能の構成記述子データ構造のフォーマットに従って構築される。ステップ530において、機能制限データ構造から機能に対するインスタンス依存制限のセットが抽出される。ステップ540において、NBMPワークフロー記述文書および機能に対するインスタンス依存の制限に従って、NBMPワークフローが生成される。
【0090】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0091】
100 コンピューティング環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション
124-2 仮想マシン
124-3 仮想化ストレージ
124-4 ハイパーバイザ
130 ネットワーク
200 デバイス
210 バス
220 プロセッサ
230 メモリ
240 ストレージ構成要素
250 入力構成要素
260 出力構成要素
270 通信インターフェース
300 NBMPシステム
310 NBMPソース
311 NBMPワークフローAPI
312 機能発見API
313 機能発見API
314 API
315 API
316 メディアフロー
317 メディアフロー
320 NBMPワークフローマネージャ
330 機能リポジトリ
340 メディア処理エンティティ
341 タスク
342 構成
343 メディア処理機能
350 メディアソース
360 メディアシンク
370 メディアシンク
400 論理フロー
500 論理フロー
図1
図2
図3
図4
図5
【手続補正書】
【提出日】2024-05-31
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メディア処理アプリケーションのためのクラウドベースのプラットフォームでネットワークベースのメディア処理(NBMP)ワークフローを生成するためのシグナリング方法であって、前記方法は、
前記メディア処理アプリケーションのNBMPワークフロー内の複数のNBMPタスクの中からNBMPタスクを決定するステップと、
前記NBMPタスクによって使用されるべき機能リポジトリから機能を識別するステップと、
前記機能をインスタンス識別子と関連付けるステップであって、前記インスタンス識別子は、前記複数のNBMPタスクのうちの前記NBMPタスク内の前記機能のインスタンスを他のNBMPタスク内の前記機能の他のインスタンスから一意に区別する、ステップと、
前記機能リポジトリから前記機能の構成記述子データ構造を取得するステップと、
前記NBMPタスク内の前記機能の前記インスタンスに対する制限のセットを決定するステップと、
前記制限のセットを前記構成記述子データ構造に適用し、前記構成記述子データ構造と同じフォーマットを使用することによって機能制限データ構造を生成するステップであって、前記機能制限データ構造は前記インスタンス識別子によって一意に識別される、ステップと、
NBMPワークフローマネージャに前記機能のインスタンス依存の制限をシグナリングするための前記インスタンス識別子と対になった前記機能制限データ構造を含む、前記NBMPワークフローのためのプロセス記述子を構築するステップと
を含む、シグナリング方法。
【請求項2】
前記構成記述子データ構造が、前記機能のインスタンスに依存しないパラメータ構成のセットを含む、請求項1に記載のシグナリング方法。
【請求項3】
前記インスタンスに依存しないパラメータ構成のセットが、前記機能に関連付けられたパラメータのパラメータ範囲のセットを含む、請求項2に記載のシグナリング方法。
【請求項4】
前記パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲が、数値範囲を含む、請求項3に記載のシグナリング方法。
【請求項5】
前記パラメータ範囲のセットのうちの少なくとも1つのパラメータ範囲が、オプションの選択肢のセットを含む、請求項3に記載のシグナリング方法。
【請求項6】
前記制限のセットが、前記パラメータ範囲のセットに対するさらなるインスタンス依存の制限を含む、請求項3に記載のシグナリング方法。
【請求項7】
前記制限のセットの少なくとも1つが、前記機能に関連付けられた前記パラメータの少なくとも1つを単一の数値に制限することを含む、請求項6に記載のシグナリング方法。
【請求項8】
前記制限のセットの少なくとも1つが、前記機能に関連付けられた前記パラメータの少なくとも1つを単一の選択肢に制限することを含む、請求項6に記載のシグナリング方法。
【請求項9】
前記機能リポジトリから前記複数のNBMPタスクによって使用されるべき複数の機能を識別するステップであって、各タスクにおける各機能の使用は、固有の機能インスタンスに起因する、ステップと、
前記プロセス記述子の一部として前記機能インスタンス間の接続マップを構築するステップであって、前記機能インスタンスの各々は固有の機能インスタンス識別子に関連付けられている、ステップと
をさらに含む、請求項1から8のいずれか一項に記載のシグナリング方法。
【請求項10】
メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてNBMPワークフローを生成するためのワークフローマネージャをシグナリングするための電子デバイスであって、前記電子デバイスは、命令を格納するためのメモリと、請求項1に記載の方法を実行するために前記命令を実行するためのプロセッサとを備える、請求項1に記載の方法を実行するように構成された、電子デバイス。
【請求項11】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1に記載の方法を実行させるように構成された命令を含む、コンピュータプログラム。
【請求項12】
メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてNBMPワークフローを生成するための方法であって、前記方法は、
NBMPワークフロー記述子文書を受信するステップと、
前記NBMPワークフロー記述子文書から、機能リポジトリからの機能と関連付けられた機能制限データ構造を抽出し、前記機能制限データ構造に起因するインスタンス識別子を抽出するステップであって、前記インスタンス識別子は、前記NBMPワークフローのNBMPタスクにおける前記機能の使用のインスタンスを一意に識別し、前記機能制限データ構造は、インスタンス依存であり、前記機能リポジトリ内の前記機能についての構成記述子データ構造のフォーマットに従って構築される、ステップと、
前記機能制限データ構造から、前記機能に対するインスタンス依存制限のセットを抽出するステップと、
前記NBMPワークフロー記述子文書および前記機能の前記インスタンス依存制限に従って前記NBMPワークフローを生成するステップと
を含む、方法。
【請求項13】
メディア処理アプリケーションのためのクラウドベースのプラットフォームにおいてワークフローを生成するための電子デバイスであって、前記電子デバイスは、命令を記憶するためのメモリと、請求項12に記載の方法を実行するために前記命令を実行するためのプロセッサとを備える、電子デバイス。
【請求項14】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項12に記載の方法を実行させるように構成された命令を含む、コンピュータプログラム。
【国際調査報告】