(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-03
(54)【発明の名称】プラットフォーム能力に基づくNBMPメディアワークフローの調整スケジューリング
(51)【国際特許分類】
H04N 21/234 20110101AFI20241126BHJP
H04N 21/6377 20110101ALI20241126BHJP
【FI】
H04N21/234
H04N21/6377
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024533083
(86)(22)【出願日】2023-04-03
(85)【翻訳文提出日】2024-06-03
(86)【国際出願番号】 US2023017290
(87)【国際公開番号】W WO2023204965
(87)【国際公開日】2023-10-26
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-03-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164MB44S
5C164SB01P
5C164SB29S
5C164TB35P
(57)【要約】
1つまたは複数のプロセッサに、ネットワークベースのメディア処理(NBMP)クライアントからNBMPワークフローマネージャへの要求を取得させ、応答をワークフローマネージャからクライアントに送信させ、クライアントから前記ワークフローマネージャへの第2の要求を取得させ、第2の要求に基づいてNBMPワークフローの少なくとも1つのパラメータを設定するようにNBMPワークフローマネージャを制御させ、NBMPワークフローを使用して処理されるべきメディアコンテンツを制御させるように構成されたコンピュータコードを含み、少なくとも1つのパラメータは、スケーリング方式およびスケジューリング方式のいずれかであり、要求は、ワークフローマネージャから要求される能力に関する、方法および装置が含まれる。
【特許請求の範囲】
【請求項1】
動画専門家グループ(MPEG)ネットワークベースのメディア処理(NBMP)においてメディアコンテンツを処理する方法であって、前記方法は、少なくとも1つのプロセッサによって実施され、前記方法は、
NBMPクライアントからNBMPワークフローマネージャへの第1の要求を取得するステップと、
第1の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップであって、前記第1の応答は、前記第1の要求に応答し、かつ前記第1の要求に基づく、ステップと、
前記NBMPクライアントから前記NBMPワークフローマネージャへの第2の要求を取得するステップであって、前記第2の要求は、前記第1の応答に応答し、かつ前記第1の応答に基づく、ステップと、
前記第2の要求に応答して、かつ前記第2の要求に基づいて、NBMPワークフローの少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御するステップであって、前記少なくとも1つのパラメータは、スケーリング方式およびスケジューリング方式のいずれかである、ステップと、
前記NBMPワークフローを使用して処理されるべきメディアコンテンツを制御するステップと
を含み、
前記第1の要求および前記第2の要求は各々、前記NBMPワークフローマネージャから能力を要求し、前記能力は、前記NBMPワークフローを処理するタスクの機能以外のスケジューリング能力およびスケーリング能力のうちの1つである、
方法。
【請求項2】
前記第1の要求は、前記NBMPワークフローマネージャに、前記NBMPワークフローマネージャからの前記能力で前記NBMPクライアントに応答するよう命令し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記NBMPワークフローの前記少なくとも1つのパラメータを設定するよう命令し、前記少なくとも1つのパラメータは、前記NBMPワークフローマネージャからの前記能力のものであり、前記NBMPワークフローを処理するタスクの機能のものではなく、
前記NBMPワークフローは、少なくとも前記第1の要求の時点では、実行中のワークフローである、
請求項1に記載の方法。
【請求項3】
前記第1の要求は、前記能力として、前記NBMPワークフローマネージャのスケジューリング能力を要求し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記スケジューリング能力に基づいて前記少なくとも1つのパラメータを設定するよう命令する、
請求項2に記載の方法。
【請求項4】
第2の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップ
をさらに含み、
前記第2の要求は、前記NBMPワークフローマネージャに、前記実行中のワークフローに対して特定のスケジュールを設定するよう命令し、
前記第2の応答は、前記特定のスケジュールが前記第2の要求に応答して設定されたかどうかを前記NBMPクライアントに示す、
請求項3に記載の方法。
【請求項5】
前記少なくとも1つのパラメータは、前記NBMPワークフローのスケジューリングが持続期間の単位およびセグメントの単位のいずれかに基づくかどうかを定義する、
請求項2に記載の方法。
【請求項6】
前記第1の要求は、前記能力として、前記NBMPワークフローマネージャのスケーリング能力を要求し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記スケーリング能力に基づいて前記少なくとも1つのパラメータを設定するよう命令する、
請求項2に記載の方法。
【請求項7】
第2の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップ
をさらに含み、
前記第2の要求は、前記NBMPワークフローマネージャに、前記実行中のワークフローに対して特定のスケーリングを設定するよう命令し、
前記第2の応答は、前記特定のスケーリングが前記第2の要求に応答して設定されたかどうかを前記NBMPクライアントに示す、
請求項6に記載の方法。
【請求項8】
前記実行中のワークフローは、ワークフロー記述子文書(WDD)を示すワークフロー記述子(WD)を含み、
前記第2の要求に応答して、かつ前記第2の要求に基づいて、前記NBMPワークフローの前記少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御するステップは、UpdateWorkflow動作中、かつ前記少なくとも1つのパラメータに基づいて、記述子を前記WDDに追加するステップを含む、
請求項7に記載の方法。
【請求項9】
前記第2の応答は、前記記述子を前記WDDに追加するステップに基づいて、更新されたWDDを前記NBMPクライアントに返すステップを含む、
請求項8に記載の方法。
【請求項10】
前記少なくとも1つのパラメータは、メディア処理エンティティをアップグレードすること、および並列タスクを前記実行中のワークフローの既存のタスクに追加することのいずれかによるスケーリングを定義する、
請求項2に記載の方法。
【請求項11】
動画専門家グループ(MPEG)ネットワークベースのメディア処理(NBMP)においてメディアコンテンツを処理するための装置であって、前記装置は、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサであって、前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、NBMPクライアントからNBMPワークフローマネージャへの第1の要求を取得させるように構成された第1の取得コード、
前記少なくとも1つのプロセッサに、第1の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信させるように構成された送信コードであって、前記第1の応答は、前記第1の要求に応答し、かつ前記第1の要求に基づく、送信コード、
前記少なくとも1つのプロセッサに、前記NBMPクライアントから前記NBMPワークフローマネージャへの第2の要求を取得させるように構成された第2の取得コードであって、前記第2の要求は、前記第1の応答に応答し、かつ前記第1の応答に基づく、第2の取得コード、
前記少なくとも1つのプロセッサに、前記第2の要求に応答して、かつ前記第2の要求に基づいて、NBMPワークフローの少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御させるように構成された第1の制御コードであって、前記少なくとも1つのパラメータは、スケーリング方式およびスケジューリング方式のいずれかである、第1の制御コード、ならびに
前記少なくとも1つのプロセッサに、前記NBMPワークフローを使用して処理されるべきメディアコンテンツを制御させるように構成された第2の制御コード
を含む、少なくとも1つのプロセッサと
を備え、
前記第1の要求および前記第2の要求は各々、前記NBMPワークフローマネージャから能力を要求し、前記能力は、前記NBMPワークフローを処理するタスクの機能以外のスケジューリング能力およびスケーリング能力のうちの1つである、
装置。
【請求項12】
前記第1の要求は、前記NBMPワークフローマネージャに、前記NBMPワークフローマネージャからの前記能力で前記NBMPクライアントに応答するよう命令し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記NBMPワークフローの前記少なくとも1つのパラメータを設定するよう命令し、前記少なくとも1つのパラメータは、前記NBMPワークフローマネージャからの前記能力のものであり、前記NBMPワークフローを処理するタスクの機能のものではなく、
前記NBMPワークフローは、少なくとも前記第1の要求の時点では、実行中のワークフローである、
請求項11に記載の装置。
【請求項13】
前記第1の要求は、前記能力として、前記NBMPワークフローマネージャのスケジューリング能力を要求し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記スケジューリング能力に基づいて前記少なくとも1つのパラメータを設定するよう命令する、
請求項12に記載の装置。
【請求項14】
前記少なくとも1つのプロセッサに、第2の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信させるように構成された第2の送信コード
をさらに含み、
前記第2の要求は、前記NBMPワークフローマネージャに、前記実行中のワークフローに対して特定のスケジュールを設定するよう命令し、
前記第2の応答は、前記特定のスケジュールが前記第2の要求に応答して設定されたかどうかを前記NBMPクライアントに示す、
請求項13に記載の装置。
【請求項15】
前記少なくとも1つのパラメータは、前記NBMPワークフローのスケジューリングが持続期間の単位およびセグメントの単位のいずれかに基づくかどうかを定義する、
請求項12に記載の装置。
【請求項16】
前記第1の要求は、前記能力として、前記NBMPワークフローマネージャのスケーリング能力を要求し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記スケーリング能力に基づいて前記少なくとも1つのパラメータを設定するよう命令する、
請求項12に記載の装置。
【請求項17】
前記少なくとも1つのプロセッサに、第2の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信させるように構成された第2の送信コード
をさらに含み、
前記第2の要求は、前記NBMPワークフローマネージャに、前記実行中のワークフローに対して特定のスケーリングを設定するよう命令し、
前記第2の応答は、前記特定のスケーリングが前記第2の要求に応答して設定されたかどうかを前記NBMPクライアントに示す、
請求項16に記載の装置。
【請求項18】
前記実行中のワークフローは、ワークフロー記述子文書(WDD)を示すワークフロー記述子(WD)を含み、
前記第2の要求に応答して、かつ前記第2の要求に基づいて、前記NBMPワークフローの前記少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御するステップは、UpdateWorkflow動作中、かつ前記少なくとも1つのパラメータに基づいて、記述子を前記WDDに追加するステップを含む、
請求項17に記載の装置。
【請求項19】
前記第2の応答は、前記記述子を前記WDDに追加するステップに基づいて、更新されたWDDを前記NBMPクライアントに返すステップを含む、
請求項18に記載の装置。
【請求項20】
コンピュータに、動画専門家グループ(MPEG)ネットワークベースのメディア処理(NBMP)におけるメディアコンテンツを処理するためのプロセスを実行させるプログラムを記憶する非一時的コンピュータ可読媒体であって、前記方法は、少なくとも1つのプロセッサによって実施され、前記方法は、
NBMPクライアントからNBMPワークフローマネージャへの第1の要求を取得するステップと、
第1の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップであって、前記第1の応答は、前記第1の要求に応答し、かつ前記第1の要求に基づく、ステップと、
前記NBMPクライアントから前記NBMPワークフローマネージャへの第2の要求を取得するステップであって、前記第2の要求は、前記第1の応答に応答し、かつ前記第1の応答に基づく、ステップと、
前記第2の要求に応答して、かつ前記第2の要求に基づいて、NBMPワークフローの少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御するステップと、
前記NBMPワークフローを使用して処理されるべきメディアコンテンツを制御するステップと
を含む、前記プロセスを含み、
前記第1の要求および前記第2の要求は各々、前記NBMPワークフローマネージャから能力を要求し、前記能力は、前記NBMPワークフローを処理するタスクの機能以外のスケジューリング能力およびスケーリング能力のうちの1つである、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年4月19日に出願された米国仮特許出願第63/332,608号、同じく2022年4月19日に出願された米国仮特許出願第63/332,611号、および2023年3月30日に出願された米国特許出願第18/128,843号の優先権を主張し、これらの内容は、参照によりその全体が本出願に組み込まれる。
【0002】
本開示は、プラットフォーム能力に基づいてネットワークベースのメディア処理(NBMP)記述子を使用してワークフローをスケジューリングおよびスケーリングするためのコールフローを提供することを対象とする。
【背景技術】
【0003】
ネットワークおよびクラウドプラットフォームが様々なアプリケーションを実行するために使用され、かつネットワークベースのメディア処理(NBMP)規格がメディアセグメントの独立した処理のためのツールのセットを定義したとしても、技術的な欠陥のために、ワークフローのスケジューリングおよびスケーリングのいずれについてもNBMP仕様にはコールフローは提供されない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
1つまたは複数の異なる技術的問題に対処するために、本開示は、ネットワークオーバーヘッドおよびサーバ計算オーバーヘッドを低減する技術的解決策を提供する一方で、様々な動作を解決された要素に適用するオプションを提供し、その結果、これらの動作を使用するとその実用性、および技術的なシグナリング特徴の一部が改善され得る。
【課題を解決するための手段】
【0005】
コンピュータプログラムコードを記憶するように構成されたメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するように構成された1つまたは複数のプロセッサとを含む方法および装置が含まれる。コンピュータプログラムコードは、少なくとも1つのプロセッサに、ネットワークベースのメディア処理(NBMP)クライアントからNBMPワークフローマネージャへの第1の要求を取得させるように構成された第1の取得コード、少なくとも1つのプロセッサに、第1の応答をNBMPワークフローマネージャからNBMPクライアントに送信させるように構成された送信コードであって、第1の応答は、第1の要求に応答し、かつ第1の要求に基づく送信コード、少なくとも1つのプロセッサに、NBMPクライアントからNBMPワークフローマネージャへの第2の要求を取得させるように構成された第2の取得コードであって、第2の要求は、第1の応答に応答し、かつ第1の応答に基づく第2の取得コード、少なくとも1つのプロセッサに、第2の要求に応答して、かつ第2の要求に基づいて、NBMPワークフローの少なくとも1つのパラメータを設定するようにNBMPワークフローマネージャを制御させるように構成された第1の制御コードであって、少なくとも1つのパラメータは、スケーリング方式およびスケジューリング方式のいずれかである第1の制御コード、ならびに少なくとも1つのプロセッサに、NBMPワークフローを使用して処理されるべきメディアコンテンツを制御させるように構成された第2の制御コードを含み、第1の要求および第2の要求は各々、NBMPワークフローマネージャから能力を要求し、能力は、NBMPワークフローを処理するタスクの機能以外のスケジューリング能力およびスケーリング能力のうちの1つである。
【0006】
例示的な実施形態によれば、第1の要求は、NBMPワークフローマネージャに、NBMPワークフローマネージャからの能力でNBMPクライアントに応答するよう命令し、第2の要求は、NBMPワークフローマネージャに、NBMPワークフローの少なくとも1つのパラメータを設定するよう命令し、パラメータは、NBMPワークフローマネージャからの能力のものであり、NBMPワークフローを処理するタスクの機能のものではなく、NBMPワークフローは、少なくとも第1の要求の時点では、実行中のワークフローである。
【0007】
例示的な実施形態によれば、第1の要求は、能力として、NBMPワークフローマネージャのスケジューリング能力を要求し、第2の要求は、NBMPワークフローマネージャに、スケジューリング能力に基づいて少なくとも1つのパラメータを設定するよう命令する。
【0008】
例示的な実施形態によれば、コンピュータプログラムコードのうち、少なくとも1つのプロセッサに、第2の応答をNBMPワークフローマネージャからNBMPクライアントに送信させるように構成された第2の送信コードがさらに存在し、第2の要求は、NBMPワークフローマネージャに、実行中のワークフローに対して特定のスケジュールを設定するように命令し、第2の応答は、特定のスケジュールが第2の要求に応答して設定されたかどうかをNBMPクライアントに示す。
【0009】
例示的な実施形態によれば、少なくとも1つのパラメータは、NBMPワークフローのスケジューリングが持続期間の単位およびセグメントの単位のいずれかに基づくかどうかを定義する。
【0010】
例示的な実施形態によれば、第1の要求は、能力として、NBMPワークフローマネージャのスケーリング能力を要求し、第2の要求は、NBMPワークフローマネージャに、スケーリング能力に基づいて少なくとも1つのパラメータを設定するよう命令する。
【0011】
例示的な実施形態によれば、コンピュータプログラムコードのうち、少なくとも1つのプロセッサに、第2の応答をNBMPワークフローマネージャからNBMPクライアントに送信させるように構成された第2の送信コードがさらに存在し、第2の要求は、NBMPワークフローマネージャに、実行中のワークフローに対して特定のスケーリングを設定するよう命令し、第2の応答は、特定のスケーリングが第2の要求に応答して設定されたかどうかをNBMPクライアントに示す。
【0012】
例示的な実施形態によれば、実行中のワークフローは、ワークフロー記述子文書(WDD)を示すワークフロー記述子(WD)を含み、第2の要求に応答して、かつ第2の要求に基づいて、NBMPワークフローの少なくとも1つのパラメータを設定するようにNBMPワークフローマネージャを制御するステップは、UpdateWorkflow動作中、かつ少なくとも1つのパラメータに基づいて、記述子をWDDに追加するステップを含む。
【0013】
例示的な実施形態によれば、第2の応答は、記述子をWDDに追加するステップに基づいて、更新されたWDDをNBMPクライアントに返すステップを含む。
【0014】
例示的な実施形態によれば、少なくとも1つのパラメータは、メディア処理エンティティをアップグレードすること、および並列タスクを実行中のワークフローの既存のタスクに追加することのいずれかによるスケーリングを定義する。
【0015】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0016】
【
図1】実施形態による、本明細書に記載の方法、装置、およびシステムを実装することができる環境の簡略概略図である。
【
図3】実施形態によるデコーダに関する簡略ブロック図である。
【
図4】実施形態によるエンコーダに関する簡略ブロック図である。
【
図5】実施形態によるネットワークベースのメディア処理(NBMP)システムの簡略ブロック図である。
【
図6】実施形態による動画専門家グループ(MPEG)NBMPにおけるメディアコンテンツを処理する方法の簡略フローチャートである。
【
図7】実施形態による、MPEG NBMPにおけるメディアコンテンツを処理するための装置の簡略ブロック図である。
【
図8】実施形態による、NBMPシステムの更新された論理構造の簡略ブロック図である。
【発明を実施するための形態】
【0017】
以下で説明する提案された特徴は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0018】
本明細書に記載の実施形態は、動画専門家グループ(MPEG)ネットワークベースのメディア処理(NBMP)規格に対する機能改善を提供する。そのような改善は、メディア処理効率を高め、メディアサービスの展開の速度を高め、そのコストを下げ、パブリック、プライベート、またはハイブリッドクラウドサービスを活用することによってメディアサービスの大規模な展開を可能にする。
【0019】
例では、MPEG NBMP規格に対する機能改善は、ワークフロー、タスク、および機能の調和、ならびに論理項目、データ文書、およびRESTリソースの間のそれらの各々に対する1対1の関係の定義を含む。メイン記述子および基本記述子へのアクセスは、記述子ごとに表現状態転送(REST)リソースを作成することによって可能にすることができる。また、コールフローは、ワークフローのスケジューリングおよびスケーリングのいずれかのために追加されてもよい。
【0020】
図1は、実施形態による、本明細書に記載の方法、装置、およびシステムを実装することができる環境100の図である。
図1に示すように、環境100は、ユーザデバイス110と、プラットフォーム120と、ネットワーク130とを含んでもよい。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して相互接続されてもよい。
【0021】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、および/または提供することが可能な1つまたは複数のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスやスマートウォッチ)、または同様のデバイスを含んでもよい。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/または情報をプラットフォーム120に送信してもよい。
【0022】
プラットフォーム120は、本明細書の他の箇所に記載されるような1つまたは複数のデバイスを含む。いくつかの実装形態では、プラットフォーム120は、クラウドサーバ、またはクラウドサーバのグループを含んでもよい。いくつかの実装形態では、プラットフォーム120は、特定の必要性に応じてソフトウェア構成要素をスワップインまたはスワップアウトし得るようにモジュール式に設計されてもよい。したがって、プラットフォーム120は、異なる用途のために容易にかつ/または迅速に再構成されてもよい。
【0023】
いくつかの実装形態では、図示のように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされてもよい。特に、本明細書に記載の実装形態は、クラウドコンピューティング環境122内でホストされるものとしてプラットフォーム120を説明しているが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部で実装されてもよい)、または部分的にクラウドベースであってもよい。
【0024】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステムおよび/またはデバイスの物理的な位置および構成に関するエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供してもよい。図示のように、クラウドコンピューティング環境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)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらもしくは他のタイプのネットワークの組み合わせを含んでもよい。
【0032】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供される。実際には、
図1に示すものに比べて、さらなるデバイスおよび/もしくはネットワーク、少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークがあってもよい。さらに、
図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または
図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加的または代替的に、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)が、環境100の別のデバイスのセットによって実施されるものとして説明されている1つまたは複数の機能を実施してもよい。
【0033】
図2は、開示された主題の用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションにも等しく適用可能であることができる。
【0034】
ストリーミングシステムは、例えば、非圧縮ビデオサンプルストリーム213を作成する、例えばデジタルカメラなどのビデオソース201を含むことができるキャプチャサブシステム203を含み得る。そのサンプルストリーム213は、エンコーディングされたビデオビットストリームと比較して高いデータボリュームとして強調されてもよく、カメラ201に結合されたエンコーダ202によって処理することができる。エンコーダ202は、以下でより詳細に説明するように、開示された主題の態様を可能にするか、または実施するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。エンコーディングされたビデオビットストリーム204は、サンプルストリームと比較してより低いデータボリュームとして強調されてもよく、将来の使用のためにストリーミングサーバ205に記憶することができる。1つまたは複数のストリーミングクライアント212および207は、ストリーミングサーバ205にアクセスし、エンコーディングされたビデオビットストリーム204のコピー208および206を取り出すことができる。クライアント212は、入力されるエンコーディングされたビデオビットストリームのコピー208をデコーディングし、ディスプレイ209または他のレンダリングデバイス(図示せず)上にレンダリングすることができる出力されるビデオサンプルストリーム210を作成するビデオデコーダ211を含むことができる。一部のストリーミングシステムでは、ビデオビットストリーム204、206、および208は、特定のビデオコーディング/圧縮規格に従ってエンコーディングすることができる。これらの規格の例は、上述されており、本明細書でさらに説明される。
【0035】
図3は、本発明の一実施形態によるビデオデコーダ300の機能ブロック図であり得る。
【0036】
受信機302は、デコーダ300によってデコーディングされる1つまたは複数のコーデックビデオシーケンスを受信してもよく、同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスであり、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスはチャネル301から受信されてもよく、チャネルは、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信機302は、エンコーディングされたビデオデータを、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームと共に受信し得る。受信機302は、他のデータからコーディングされたビデオシーケンスを分離し得る。ネットワークジッタに対抗するために、バッファメモリ303が、受信機302とエントロピーデコーダ/パーサ304(以降、「パーサ」)との間に結合され得る。受信機302が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信している場合、バッファ303は必要とされない場合もあり、または小さくすることもできる。インターネットなどのベストエフォートパケットネットワーク上の使用では、バッファ303は必要とされる場合があり、比較的大きくすることができ、有利には適応サイズとすることができる。
【0037】
ビデオデコーダ300は、エントロピーコーディングされたビデオシーケンスからシンボル313を再構築するためのパーサ304を含み得る。これらのシンボルのカテゴリは、デコーダ300の動作を管理するために使用される情報、および潜在的に、デコーダの不可欠な部分ではないが、それに結合することができるディスプレイ312などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報パラメータセットフラグメント(図示せず)の形式であり得る。パーサ304は、受信したコーディングされたビデオシーケンスを解析/エントロピーデコーディングし得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、文脈依存性ありまたはなしの算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサ304は、コーディングされたビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。エントロピーデコーダ/パーサはまた、コーディングされたビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出し得る。
【0038】
パーサ304は、シンボル313を作成するために、バッファ303から受信したビデオシーケンスに対してエントロピーデコーディング/解析動作を実施し得る。パーサ304は、エンコーディングされたデータを受信し、特定のシンボル313を選択的にデコーディングし得る。さらに、パーサ304は、特定のシンボル313が、動き補償予測ユニット306、スケーラ/逆変換ユニット305、イントラ予測ユニット307、またはループフィルタ311に提供されるべきかどうかを決定し得る。
【0039】
シンボル313の再構築は、コーディングされたビデオピクチャまたはその部分(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)のタイプ、ならびに他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットがどのように関与しているかは、パーサ304によって、コーディングされたビデオシーケンスから解析されたサブグループ制御情報によって管理することができる。パーサ304と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0040】
すでに言及した機能ブロックの他に、デコーダ300は、以下で説明するように、いくつかの機能ユニットに概念的に細分化することができる。商業的な制約の下で動作する実際の実装形態では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合させることができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
【0041】
第1のユニットは、スケーラ/逆変換ユニット305である。スケーラ/逆変換ユニット305は、量子化された変換係数、および使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報をパーサ304からシンボル313として受信する。スケーラ/逆変換ユニット305は、アグリゲータ310に入力され得るサンプル値を含むブロックを出力することができる。
【0042】
場合によっては、スケーラ/逆変換305の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに関係することもできる。そのような予測情報は、イントラピクチャ予測ユニット307によって提供することができる。場合によっては、イントラピクチャ予測ユニット307は、現在の(部分的に再構築された)ピクチャ309からフェッチされた周囲のすでに再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ310は、場合によっては、サンプルごとに、イントラ予測ユニット307が生成した予測情報を、スケーラ/逆変換ユニット305によって提供される出力サンプル情報に追加する。
【0043】
他の場合には、スケーラ/逆変換ユニット305の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係することができる。そのような場合、動き補償予測ユニット306は、参照ピクチャメモリ308にアクセスし、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関係するシンボル313に従って動き補償した後、これらのサンプルは、出力サンプル情報を生成するためにアグリゲータ310によってスケーラ/逆変換ユニットの出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償ユニットが予測サンプルをフェッチする参照ピクチャメモリ形式内のアドレスは、動きベクトルによって制御され、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル313の形式で動き補償ユニットに利用可能とすることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用中であるときに参照ピクチャメモリからフェッチされたサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0044】
アグリゲータ310の出力サンプルは、ループフィルタユニット311における様々なループフィルタリング技法の適用を受けることができる。ビデオ圧縮技術は、コーディングされたビデオビットストリームに含まれるパラメータによって制御され、パーサ304からのシンボル313としてループフィルタユニット311に利用可能とされるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順で)前の部分のデコーディング中に取得されたメタ情報に応答することもでき、以前に再構築され、ループフィルタリングされたサンプル値に応答することもできる。
【0045】
ループフィルタユニット311の出力は、レンダリングデバイスであってもよいディスプレイ312に出力することができるサンプルストリームであってもよく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ557に記憶されてもよい。
【0046】
特定のコーディングされたピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして使用することができる。コーディングされたピクチャが完全に再構築され、コーディングされたピクチャが(例えば、パーサ304によって)参照ピクチャとして識別されると、現在の参照ピクチャ309は参照ピクチャバッファ308の一部になることができ、後続のコーディングされたピクチャの再構築を開始する前に、新しい現在のピクチャメモリを再割振りすることができる。
【0047】
ビデオデコーダ300は、ITU-T Rec.H.265などの規格に文書化されている所定のビデオ圧縮技術に従ってデコーディング動作を実施し得る。コーディングされたビデオシーケンスは、ビデオ圧縮技術文書または規格において、具体的にはその中のプロファイル文書において指定されているように、ビデオ圧縮技術または規格の構文に忠実であるという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠し得る。コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることもまた、コンプライアンスのために必要であり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構築サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限され得る。
【0048】
一実施形態では、受信機302は、エンコーディングされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコーディングするため、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ300によって使用され得る。追加のデータは、例えば、時間層、空間層、または信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式にすることができる。
【0049】
図4は、本開示の一実施形態によるビデオエンコーダ400の機能ブロック図であり得る。
【0050】
エンコーダ400は、エンコーダ400によってコーディングされるビデオ画像を取り込み得るビデオソース401(エンコーダの一部ではない)からビデオサンプルを受信し得る。
【0051】
ビデオソース401は、エンコーダ(303)によってコーディングされるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)および適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形式で提供し得る。メディアサービングシステムでは、ビデオソース401は、以前に準備されたビデオを記憶している記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース401は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであり得る。ビデオデータは、順番に見られたときに動きを伝える複数の個々のピクチャとして提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0052】
一実施形態によれば、エンコーダ400は、リアルタイムで、または用途によって要求される任意の他の時間制約下で、ソースビデオシーケンスのピクチャをコーディングし、コーディングされたビデオシーケンス410に圧縮し得る。適切なコーディング速度にすることが、コントローラ402の1つの機能である。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラによって設定されるパラメータには、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値など)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者であれば、コントローラ402の他の機能は、それらが特定のシステム設計のために最適化されたビデオエンコーダ400に関係し得るため、容易に識別することができる。
【0053】
一部のビデオエンコーダは、当業者が「コーディングループ」として容易に認識するもので動作する。過度に簡略化された説明として、コーディングループは、エンコーダ(例えばソースコーダ403)のエンコーディング部分(コーディングされる入力ピクチャおよび参照ピクチャに基づいてシンボルを作成する役割を果たす)と、シンボルを再構築し、(開示された主題で考慮されているビデオ圧縮技術ではシンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆であるため)(リモート)デコーダも作成することになるはずのサンプルデータを作成するエンコーダ400に組み込まれた(ローカル)デコーダ406とで構成され得る。再構築されたサンプルストリームは、参照ピクチャメモリ405に入力される。シンボルストリームのデコーディングは、デコーダの位置(ローカルかリモートか)とは無関係にビットイグザクトな結果につながるため、参照ピクチャバッファのコンテンツもまた、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」ことになるのとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネル誤りが原因で同期性が維持されることができない場合に結果として生じるドリフト)のこの基本原理は、当業者には周知である。
【0054】
「ローカル」デコーダ406の動作は、「リモート」デコーダ300の動作と同じであってよく、これは、
図3に関連して上記で詳細にすでに説明されている。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ408およびパーサ304によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆的とすることができるため、チャネル301、受信機302、バッファ303、およびパーサ304を含むデコーダ300のエントロピーデコーディング部分は、ローカルデコーダ406で完全には実施されない場合がある。
【0055】
この時点で言えることは、デコーダ内に存在する解析/エントロピーデコーディングを除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形態で存在する必要があるということである。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略することができる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0056】
その動作の一部として、ソースコーダ403は、動き補償予測コーディングを実施し得、これは、「参照フレーム」として指定された、ビデオシーケンスからの1つまたは複数の以前にコーディングされたフレームを参照して予測的に入力フレームをコーディングする。このようにして、コーディングエンジン407は、入力フレームの画素ブロックと、入力フレームへの予測参照として選択され得る参照フレームの画素ブロックとの間の差をコーディングする。
【0057】
ローカルビデオデコーダ406は、ソースコーダ403によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディングされたビデオデータをデコーディングし得る。コーディングエンジン407の動作は、有利には、不可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(
図4には図示せず)でデコーディングされ得る場合、再構築されたビデオシーケンスは、典型的には、多少の誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ406は、参照フレームに対してビデオデコーダによって実施され得るデコーディングプロセスを再現し、再構築された参照フレームを、例えばキャッシュであり得る参照ピクチャメモリ405に記憶させ得る。このようにして、エンコーダ400は、(伝送誤りのない)遠端ビデオデコーダによって取得されることになる再構築された参照フレームとして共通のコンテンツを有する再構築された参照フレームのコピーをローカルに記憶し得る。
【0058】
予測子404は、コーディングエンジン407のための予測探索を実施し得る。すなわち、コーディングされる新しいフレームに対して、予測子404は、(候補参照画素ブロックとしての)サンプルデータ、または新しいピクチャの適切な予測参照として機能し得る、参照ピクチャ動きベクトル、ブロック形状などといった特定のメタデータを求めて参照ピクチャメモリ405を探索し得る。予測子404は、適切な予測参照を見つけるために、画素ブロックごとにサンプルブロックに対して動作し得る。場合によっては、予測子404によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ405に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
【0059】
コントローラ402は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ403のコーディング動作を管理し得る。
【0060】
すべての前述の機能ユニットの出力は、エントロピーコーダ408でエントロピーコーディングを施され得る。エントロピーコーダは、様々な機能ユニットによって生成されたシンボルを、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの、当業者に公知の技術に従ってシンボルを可逆圧縮することによってコーディングされたビデオシーケンスに変換する。
【0061】
送信機409は、エントロピーコーダ408によって作成されたコーディングされたビデオシーケンスを、通信チャネル411を介した伝送に備えるためにバッファに入れてもよく、通信チャネル411は、エンコーディングされたビデオデータを記憶することになる記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信機409は、ビデオコーダ403からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0062】
コントローラ402は、エンコーダ400の動作を管理し得る。コーディング中に、コントローラ405は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、以下のフレームタイプのうちの1つとして割り当てられ得る。
【0063】
イントラピクチャ(Iピクチャ)は、シーケンス内の任意の他のフレームを予測のソースとして使用せずにコーディングおよびデコーディングされ得るピクチャであり得る。いくつかのビデオコーデックは、例えば独立したデコーダリフレッシュピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形例ならびにそれらのそれぞれの用途および特徴を認識している。
【0064】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るピクチャであり得る。
【0065】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るピクチャであり得る。同様に、多重予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連付けられたメタデータを使用することができる。
【0066】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分化され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように、他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測を介して、または以前にコーディングされた1つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされ得る。Bピクチャの画素ブロックは、空間予測を介して、または以前にコーディングされた1つもしくは2つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされ得る。
【0067】
ビデオコーダ400は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実施し得る。その動作において、ビデオコーダ400は、入力ビデオシーケンスの時間的および空間的冗長性を活用する予測コーディング動作を含む、様々な圧縮動作を実施することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠し得る。
【0068】
一実施形態では、送信機409は、エンコーディングされたビデオと共に追加のデータを送信し得る。ソースコーダ403は、そのようなデータを、コーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間層/空間層/SNRエンハンスメント層、冗長ピクチャや冗長スライスなどの他の形式の冗長データ、補足エンハンスメント情報(SEI)メッセージ、視覚ユーザビリティ情報(VUI)パラメータセットフラグメントなどを含み得る。
【0069】
図5は、実施形態による、NBMPシステム500のブロック図である。
【0070】
図5を参照すると、NBMPシステム500は、NBMPソース510と、NBMPワークフローマネージャ520と、関数リポジトリ530と、ネットワークコントローラ540と、1つまたは複数のメディア処理エンティティ550と、メディアソース560と、メディアシンク570とを含む。
【0071】
NBMPソース510は、サードパーティエンティティ580から命令を受信することができ、NBMPワークフローAPIを介してNBMPワークフローマネージャ520と通信することができ、関数発見APIを介して関数リポジトリ530と通信することができる。例えば、NBMPソース510は、ワークフロー記述文書をNBMPワークフローマネージャ520に送信することができ、関数リポジトリ530のメモリに記憶されている関数の関数記述を読み取ることができる。関数は、例えば、メディアデコーディング、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンド、後処理、およびエンコーディングの関数などのメディア処理関数を含むことができる。NBMPソース510は、少なくとも1つのプロセッサと、少なくともプロセッサにNBMPソース510の機能を実施させるように構成されたコードを記憶するメモリとを含むことができる。
【0072】
NBMPソース510は、ワークフロー記述文書をNBMPワークフローマネージャ520に送信することによって、NBMPワークフローマネージャ520に、1つまたは複数のメディア処理エンティティ550によって実施されるべきタスク551および552を含むワークフローを作成するよう要求することができる。ワークフロー記述文書は、記述子を含むことができ、記述子の各々は、パラメータを含むことができる。
【0073】
例えば、NBMPソース510は、関数リポジトリ530に記憶された関数のうちの1つまたは複数を選択し、入力および出力データ、選択された関数のうちの1つまたは複数、およびワークフローの要件などの詳細を記述するための記述子を含むワークフロー記述文書をNBMPワークフローマネージャ520に送信することができる。ワークフロー記述文書は、タスク記述のセットと、メディア処理エンティティ550のうちの1つまたは複数によって実施されるべきタスク551および552の入力および出力の接続マップとをさらに含むことができる。NBMPワークフローマネージャ520がNBMPソース510からそのような情報を受信すると、NBMPワークフローマネージャ520は、関数名に基づいてタスク551および552をインスタンス化し、接続マップに従ってタスク551および552を接続することによってワークフローを作成することができる。
【0074】
代替的または追加的に、NBMPソース510は、キーワードのセットを使用してワークフローを作成するようにNBMPワークフローマネージャ520に要求することが可能である。例えば、NBMPソース510は、関数リポジトリ530に記憶された関数のうちの適切な1つまたは複数を見つけるためにNBMPワークフローマネージャ520が使用することができるキーワードのセットを含むワークフロー記述文書をNBMPワークフローマネージャ520に送信することができる。NBMPワークフローマネージャ520がNBMPソース510からそのような情報を受信すると、NBMPワークフローマネージャ520は、関数のうちの適切な1つまたは複数を探索し、ワークフロー記述文書の処理記述子に指定され得るキーワードを使用し、かつワークフロー記述文書内の他の記述子を使用してタスク551および552を提供および接続することによってワークフローを作成することができる。
【0075】
NBMPワークフローマネージャ520は、関数発見APIを介して関数リポジトリ530と通信することができ、ネットワークコントローラ540を通じて、NBMPタスクAPI、NBMPリンクAPI、および関数発見APIを介してメディア処理エンティティ550のうちの1つまたは複数と通信することができる。NBMPワークフローマネージャ520は、少なくとも1つのプロセッサと、少なくともプロセッサにNBMPワークフローマネージャ520の機能を実施させるよう構成されたコードを記憶するメモリとを含むことができる。
【0076】
NBMPワークフローマネージャ520は、NBMPタスクAPIを使用して、1つまたは複数のメディア処理エンティティ550によって実施可能なワークフローのタスク551および552のうちの1つまたは複数を設定、構成、管理、および監視することができる。実施形態では、NBMPワークフローマネージャ520は、NBMPタスクAPIを使用して、タスク551および552を更新および破棄することができる。ワークフローのタスク551および552を構成、管理、および監視するために、NBMPワークフローマネージャ520は、要求などのメッセージをメディア処理エンティティ550のうちの1つまたは複数に送信することができ、各メッセージは、記述子を有することができ、記述子の各々は、パラメータを含むことができる。タスク551および552は各々、1つまたは複数のメディア処理関数554と、1つまたは複数のメディア処理関数554のための1つまたは複数の構成553とを含むことができる。
【0077】
実施形態では、NBMPソース510からタスクのリストを含まない(例えば、タスクのリストの代わりにキーワードのリストを含む)ワークフロー記述文書を受信した後、NBMPワークフローマネージャ520は、ワークフロー記述文書内のタスクの記述に基づいてタスクを選択し、関数発見APIを介して関数リポジトリ530を探索し、現在のワークフローのためのタスク551および552として実行する関数のうちの適切な1つまたは複数を見つけることができる。例えば、NBMPワークフローマネージャ520は、ワークフロー記述文書に提供されたキーワードに基づいてタスクを選択し得る。NBMPソース510によって提供されるキーワードまたはタスク記述のセットを使用して関数のうちの適切な1つまたは複数が識別された後、NBMPワークフローマネージャ520は、NBMPタスクAPIを使用することによってワークフロー内の選択されたタスクを構成することができる。例えば、NBMPワークフローマネージャ520は、NBMPソースから受信した情報から構成データを抽出し、抽出した構成データに基づいてタスク551および552を構成してもよい。
【0078】
1つまたは複数のメディア処理エンティティ550は、メディアソース560からメディアコンテンツを受信し、タスク551および552を含み、NBMPワークフローマネージャ520によって作成されたワークフローに従って受信したメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク570に出力するように構成することができる。1つまたは複数のメディア処理エンティティ550は各々、少なくとも1つのプロセッサと、少なくともプロセッサに1つまたは複数のメディア処理エンティティ550の機能を実施させるように構成されたコードを記憶するメモリとを含むことができる。
【0079】
ネットワークコントローラ540は、少なくとも1つのプロセッサと、少なくともプロセッサにネットワークコントローラ540の機能を実施させるように構成されたコードを記憶するメモリとを含むことができる。
【0080】
メディアソース560は、メディアを記憶するメモリを含むことができ、NBMPソース510と統合されてもよいし、別々であってもよい。実施形態では、NBMPワークフローマネージャ520は、ワークフローが準備されたときにNBMPソース510および/またはメディアソース560に通知することができ、メディアソース560は、ワークフローが準備されたという通知に基づいてメディアコンテンツをメディア処理エンティティ550のうちの1つまたは複数に送信することができる。
【0081】
メディアシンク570は、少なくとも1つのプロセッサと、1つまたは複数のメディア処理エンティティ550によって処理されるメディアコンテンツを表示するように構成された少なくとも1つのディスプレイとを含むことができる。
【0082】
サードパーティエンティティ580は、少なくとも1つのプロセッサと、少なくともプロセッサにサードパーティエンティティ380の機能を実施させるように構成されたコードを記憶するメモリとを含むことができる。
【0083】
上述したように、NBMPソース510からNBMPワークフローマネージャ520へのメッセージ(例えば、ワークフローの作成を要求するためのワークフロー記述文書)、およびNBMPワークフローマネージャ520から1つまたは複数のメディア処理エンティティ550へのメッセージ(例えば、ワークフローを実施させるための)は、記述子を含むことができ、記述子の各々は、パラメータを含む。実施形態では、APIを使用するNBMPシステム500の任意の構成要素間の通信は、記述子を含むことができ、記述子の各々は、パラメータを含む。
【0084】
図6は、実施形態による、MPEG NBMPにおけるメディアコンテンツを処理する方法600のフローチャートである。いくつかの実装形態では、
図6の1つまたは複数のプロセスブロックは、NBMPシステム300を実装するプラットフォーム120によって実施されてもよい。いくつかの実装形態では、
図6の1つまたは複数のプロセスブロックは、ユーザデバイス110など、NBMPシステム300を実装するプラットフォーム120とは別々の、またはプラットフォーム120を含む別のデバイスまたはデバイスのグループによって実施されてもよい。
【0085】
図6に示すように、動作610において、方法600は、NBMPソース、例えばNBMPソース310から、メディアコンテンツを処理するためのワークフローを取得するステップを含み、ワークフローは、ワークフロー記述子文書WDDを示すWDを有する。
【0086】
動作620において、方法600は、ワークフローに基づいて、メディアコンテンツを処理するためのタスクを取得するステップを含み、タスクは、TDDを示すTDを有する。
【0087】
動作630において、方法600は、タスクに基づいて、メディアコンテンツを処理するための1つまたは複数の関数を記憶する関数リポジトリ、例えば関数リポジトリ330から1つまたは複数の関数のうちの少なくとも1つを取得するステップを含み、1つまたは複数の関数のうちの少なくとも1つの各々は、FDDを示すFDを有する。
【0088】
動作640において、方法600は、ワークフロー、タスク、および1つまたは複数の関数のうちの少なくとも1つを使用して、メディアコンテンツを処理するステップを含む。
【0089】
一実施形態では、ワークフローは、ワークフロー表現状態転送(REST)リソース(WR)を含んでもよく、タスクは、タスクRESTリソース(TR)を含んでもよく、1つまたは複数の関数のうちの少なくとも1つは、関数RESTリソースを含んでもよい。
【0090】
一実施形態では、WD、TD、およびFDは、1つまたは複数の一般的な記述子から構築されてもよい。
【0091】
一実施形態では、WDDは、ワークフロー記述オブジェクト(WO)を含んでもよく、TDDは、タスク記述オブジェクト(TO)を含んでもよく、FDDは、少なくとも1つの関数記述オブジェクト(FO)を含んでもよい。
【0092】
一実施形態では、WO、TO、および少なくとも1つのFOは、少なくとも1つのJavaScriptオブジェクトノーテーション(JSON)オブジェクトまたは少なくとも1つの拡張マークアップ言語(XML)要素を含む。
【0093】
一実施形態では、WDDは、WDDの位置を示す第1のユニフォームリソースロケータ(URL)を含む第1のリンクオブジェクトを含んでもよく、TDDは、TDDの位置を示す第2のユニフォームリソースロケータ(URL)を含む第2のリンクオブジェクトを含んでもよく、FDDは、FDDの位置を示す第3のユニフォームリソースロケータ(URL)を含む第3のリンクオブジェクトを含んでもよい。
【0094】
一実施形態では、TDは、タスクの状態を示す状態記述子を含んでもよい。
【0095】
一実施形態では、状態記述子は、タスクの状態がヌル状態であることを示してもよい。
【0096】
一実施形態では、1つまたは複数の関数のうちの少なくとも1つは、1つまたは複数の関数のうちの少なくとも1つに対応する探索キーおよび探索値を含むハイパーテキスト転送プロトコル(HTTP)クエリを使用して関数リポジトリから検索されてもよい。
【0097】
一実施形態では、探索値は、1つまたは複数の関数のうちの少なくとも1つに関連付けられた識別子、名前、説明、ブランド、またはキーワードからの少なくとも1つを含んでもよい。
【0098】
図6は方法600の例示的なブロックを示すが、いくつかの実装形態では、方法600は、
図6に描写されたブロックに比べて、さらなるブロック、少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加的または代替的に、方法600のブロックのうちの2つ以上は、並行して実施されてもよい。
【0099】
図7は、実施形態による、MPEG NBMPにおけるメディアコンテンツを処理するための装置700の図である。
図7に示すように、装置700は、第1の取得コード710と、第2の取得コード720と、第3の取得コード730と、処理コード740とを含む。
【0100】
第1の取得コード710は、少なくとも1つのプロセッサに、NBMPソース310などのNBMPソースから、メディアコンテンツを処理するためのワークフローを取得させるように構成されてもよく、ワークフローは、ワークフロー記述子文書(WDD)を示すワークフロー記述子(WD)を有する。
【0101】
第2の取得コード720は、少なくとも1つのプロセッサに、ワークフローに基づいて、メディアコンテンツを処理するためのタスクを取得させるように構成されてもよく、タスクは、タスク記述子文書(TDD)を示すタスク記述子(TD)を有する。
【0102】
第3の取得コード730は、少なくとも1つのプロセッサに、タスクに基づいて、メディアコンテンツを処理するための1つまたは複数の関数を記憶する関数リポジトリ、例えば関数リポジトリ330から1つまたは複数の関数のうちの少なくとも1つを取得させるように構成されてもよく、1つまたは複数の関数のうちの少なくとも1つの各々は、FDDを示すFDを有する。
【0103】
処理コード740は、少なくとも1つのプロセッサに、ワークフロー、タスク、および1つまたは複数の関数のうちの少なくとも1つを使用して、メディアコンテンツを処理させるように構成されてもよい。
【0104】
一実施形態では、ワークフローは、ワークフロー表現状態転送(REST)リソース(WR)を含んでもよく、タスクは、タスクRESTリソース(TR)を含んでもよく、1つまたは複数の関数のうちの少なくとも1つは、関数RESTリソースを含んでもよい。
【0105】
一実施形態では、WD、TD、およびFDは、1つまたは複数の一般的な記述子から構築されてもよい。
【0106】
一実施形態では、WDDは、ワークフロー記述オブジェクト(WO)を含んでもよく、TDDは、タスク記述オブジェクト(TO)を含んでもよく、FDDは、少なくとも1つの関数記述オブジェクト(FO)を含んでもよい。
【0107】
一実施形態では、WO、TO、および少なくとも1つのFOは、少なくとも1つのJavaScriptオブジェクトノーテーション(JSON)オブジェクトまたは少なくとも1つの拡張マークアップ言語(XML)要素を含む。
【0108】
一実施形態では、WDDは、WDDの位置を示す第1のユニフォームリソースロケータ(URL)を含む第1のリンクオブジェクトを含んでもよく、TDDは、TDDの位置を示す第2のユニフォームリソースロケータ(URL)を含む第2のリンクオブジェクトを含んでもよく、FDDは、FDDの位置を示す第3のユニフォームリソースロケータ(URL)を含む第3のリンクオブジェクトを含んでもよい。
【0109】
一実施形態では、TDは、タスクの状態を示す状態記述子を含んでもよい。
【0110】
一実施形態では、状態記述子は、タスクの状態がヌル状態であることを示してもよい。
【0111】
一実施形態では、1つまたは複数の関数のうちの少なくとも1つは、1つまたは複数の関数のうちの少なくとも1つに対応する探索キーおよび探索値を含むハイパーテキスト転送プロトコル(HTTP)クエリを使用して関数リポジトリから検索されてもよい。
【0112】
一実施形態では、探索値は、1つまたは複数の関数のうちの少なくとも1つに関連付けられた識別子、名前、説明、ブランド、またはキーワードからの少なくとも1つを含んでもよい。
【0113】
現在のNBMP仕様は、ワークフロー記述文書(WDD)と呼ばれるワークフロー記述のための文書を定義しながら、タスクおよび関数のためのテンプレートの概念を有する。さらに、タスクおよび関数テンプレートがRESTリソースにどのように変換されるかは明らかではない。API文書は、リソースの正確な構文、またはAPI動作の承認にどのリソースがどのように含まれるかを明確に定義していない。
【0114】
実施形態によるNBMP仕様は、ワークフロー、タスク、および関数の3つの項目について、論理項目、JOSNオブジェクト/XML文書、およびRESTリソースの概念を整合させ、それらすべてについて調和された整合構造を構築する。さらに、実施形態によるNBMP仕様は、インターフェースを真のREST APIにするために、承認におけるリソースフォーマットおよび制約を定義する。
【0115】
図8は、論理項目として、JSON/XML文書とRESTリソースとの三者の関係の例800を示す。
【0116】
図8に見られるように、論理項目は、記述子として定義され得る。3つの主な記述子は、ワークフローデスシプタ(WD)、タスク記述子(TD)、および関数記述子(FD)であってもよい。WD、TD、およびFDは、一般的な記述子、入力記述子、出力記述子などの基本的な記述子の組み合わせとして構築されてもよい。
【0117】
ワークフロー記述オブジェクト(WO)、タスク記述オブジェクト(TO)、および関数記述オブジェクト(FO)は、対応する論理項目、例えば、JSONまたはXMLにおけるWD、TD、およびFDのコード実現であってもよい。
【0118】
WDD、タスク記述文書(TDD)、および関数記述文書(FDD)は、WO、TO、およびFOを含む文書であってもよい。文書は、JSONおよびXMLのXML文書におけるオブジェクトであってもよい。FDDは、1つまたは複数のFOを含み得るという意味で、WDDおよびTDDとは異なり得ることに留意されたい。
【0119】
ワークフローリソース(WR)、タスクリソース(TR)、および関数リソース(FR)は、URLを含むWDD、TDD、またはFDDであり得るので、RESTリソースとして識別され得る。
【0120】
上述した例示的なNBMP仕様の主な利点は、メイン記述子、文書、およびRESTリソースの間に1対1の関係があり得ることであり、これによりシステムを正確に指定することができ、それに応じて相互運用可能なソリューションを構築することができる。
【0121】
RESTリソースとしてのメイン記述子および基本記述子の指定
現在のNBMP仕様は、WR、TR、およびFRへのアクセスのみを可能にする。実施形態によるNBMP仕様は、WR、TR、およびFR、RESTリソースを作成することができ、メイン記述子および基本記述子がRESTリソースになることも可能にする。したがって、これらの記述子は、NBMP APIを使用して個々にアクセスすることができる。この設計では、任意の応答に含まれるWDD、TDD、およびFDDの各メインおよび基本記述子オブジェクトは、値「self」を有する「ref」およびそのオブジェクトの位置を示すURLを含む1つの「link」オブジェクトを含んで含むことができる。
【0122】
ワークフロー記述子の構成要素としてのタスク記述子の追加
現在のNBMP仕様は、ワークフローの一部としてタスク記述子を含まない。現在のNBMP仕様は、関数インデンティファイアも含むConnectionMap記述子を使用してそれらの間の関係を定義する。
【0123】
しかしながら、NBMPソースが完全なワークフロー図を有するために、実施形態によるNBMP仕様は、例えば表1に示すように、ワークフロー記述子にもタスク記述子を含むことができる。
【0124】
【0125】
表1では、追加項目であるタスク記述子が追加されている。これに加えて、ワークフロー記述子は、完全なマップおよび作成されたワークフローに関する情報を記述することができる。
【0126】
ワークフローDAGへのメディアソースおよびシンクの追加
現在のNBMP仕様は、そのワークフロー指向非巡回グラフ(DAG)記述にメディアソース560およびシンク570を含まない。
【0127】
実施形態によるNBMP仕様は、これらの要素をワークフローDAGに追加する。この手法の利点は、メディアソース560と手元のワークフローとの間、およびワークフローとメディアシンク570との間のネットワーク接続のためのリソース要件を同じDAGで記述することができることである。この手法は、要件の文書化、ならびにNBMPワークフローマネージャによるワークフローの確立および管理を簡素化する。
【0128】
一般的な記述子へのタスクのライフサイクル状態の追加
現在のNBMP仕様は、タスクについてライフサイクルを定義する。ライフサイクルは、5つの状態を有する。しかしながら、タスクの現在の状態の状態は、いかなる記述子にも記述されていない。
【0129】
実施形態によるNBMP仕様は、REST APIに基づいて構築される。各RESTリソースはまた、その状態を取り込まなければならない。したがって、リソースは論理項目の完全なステータスを維持し、他のデータ構造から状態を取得する必要はない。
【0130】
実施形態によるNBMP仕様は、タスクの状態を記述するために使用することができる「状態」パラメータを一般的な記述子に追加する。この追加が、表2に示される。
【0131】
【0132】
表2に示すように、また
図3に示されるように、新しい状態「Null」をライフサイクルに追加し、そのライフサイクルにおけるタスクの初期状態を取り込むこともできる。
【0133】
REST APIとしてのNBMP APIの指定
現在のNBMP仕様は、API動作、要求、および応答がどのように機能するかが明らかではない。文書は、この段階では相互運用可能なAPIを定義していない。
【0134】
実施形態によるNBMP仕様は、REST APIとしてNBMP APIを設計する。したがって、すべてのAPI動作は、HTTP1.1を使用するREST方法として実装されてもよく、要求および応答は、
図2に示すように、RESTリソースを含んでもよい。さらに、HTTPステータスコードが使用される。
【0135】
表3、表4、および表5は、改善されたNBMP API、それらの要求、および応答を記載している。
【0136】
【0137】
【0138】
【0139】
表3~表5において、要求および応答本体(データ)は、RESTリソースに対応し得る。
【0140】
加えて、応答を完全なRESTリソースにするために、実施形態によるNBMP仕様は、任意の応答に含まれるWDDが、値「self」を有する「ref」およびWDDへの位置を示すURLを含む1つの「link」オブジェクトを含み得ることを指定することができる。さらに、任意の応答に含まれるTDDは、値「self」を有する「ref」およびTDDへの位置を示すURLを含む1つの「link」オブジェクトを含むことができる。同様に、任意の応答に含まれる各FDDは、値「self」を有する「ref」およびFDDへの位置を示すURLを含む1つの「link」オブジェクトを含むことができる。さらに、任意の応答に含まれるすべてのFDDにおいて、各関数記述子オブジェクト(FDO)は、値「self」を有する「ref」および各FDOの位置を示すURLを含む1つの「link」オブジェクトを含むことができる。
【0141】
関数発見のためのHTTP「クエリ文字列」ベースの探索
現在のNBMP仕様は、発見動作を記述する。しかし、現在のNBMP仕様は、動作のフォーマットおよびプロトコルを定義していない。現在のNBMP仕様はまた、関数探索に2つのキー、すなわち「識別子」または「名前」のいずれかが使用されるが、それらの組み合わせは使用されないことを指定する。
【0142】
実施形態によるNBMP仕様は、HTTPクエリ文字列およびキー値ペアの組み合わせを使用することによって発見動作を改善する。そのため、動作を実装するための単純な方法(HTTP GET)を定義する。これにより、キーの組み合わせを探索に使用することが可能になる。加えて、実施形態によるNBMP仕様は、より多くのキーを探索パラメータに追加する。したがって、リポジトリに記憶された関数の異なる態様を使用して、より良い探索を実施することができる。
【0143】
実施形態によれば、探索を実施するために発見クエリおよびクエリ文字列が使用されてもよい。発見クエリは、クエリに記述されたプロパティによって関数リポジトリ内の1つまたは複数の関数を発見するためのものである。クエリ文字列は、これらのプロパティを記述するために使用することができ、heクエリ文字列は、単一の「&」文字で区切られたキー値ペアのセットを含むことができる。各キー値ペアでは、キーおよび値は、単一の「=」文字で区切られるものとする。単一の「?」文字の後のリソースURLの最後に、クエリ文字列を追加することができる。
【0144】
表6は、クエリ文字列内のサポートされるキーの例を列挙している。
【0145】
【0146】
さらに、標準的なNBMP仕様はスケジュール記述子を含むことができるが、そのような標準は、技術的な欠陥のために、ワークフローをスケジューリングするためのコールフローを定義することができないので、本明細書に記載の実施形態は、コンピュータ技術自体に生じるそのような欠陥に対する技術的解決策を開示する。
【0147】
例えば、
図9は、スケジューリングのためのコールフローによるそのような改善の1つまたは複数の変形についてのタイミング図の例900を示す。
図9に示すように、NBMPクライアントは、少なくとも2つの任意選択の事前スケジューリングステップ、すなわちS1とS2の組み合わせおよびS3とS4の組み合わせを有する。例えば、S1において、NBMPクライアントは、実行中のワークフローについてワークフローマネージャからプラットフォームのスケジューリング能力を要求することができ、またはS3において、NBMPクライアントは、実行中のワークフローについて特定のスケジューリング要求を考慮するようにワークフローマネージャに要求することができる。
【0148】
いずれの場合も、ワークフローマネージャは、そのサポート能力および/または要求されたスケジューリング要求に対応することができるかどうかでNBMPクライアントに応答する。NBMPクライアントは、オプションA、S1、およびS2、ならびにオプションB、S3、およびS4を順番に要求することもできることに留意されたい。ワークフローマネージャは、プラットフォームおよびタスクと協働し、いずれかのステップでNBMPクライアントに応答を提供する。
【0149】
満足のいく応答を得た後、NBMPクライアントは、S5において、特定のスケジューリング方式を要求することができ、スケジューリング方式を、ワークフローマネージャから受信した能力および応答に合わせることが可能である。ワークフローマネージャは、S6において、プラットフォームおよびタスクと協働してスケジューリングを実施し、S7において、結果をNBMPクライアントに送り返す。そのS6の特徴はまた、
図6~
図8の例に示す特徴、および本明細書の
図9の例示的な実施形態で説明されているスケジューリング特徴とは別々の本明細書で提供される関連する説明を含むことができる。
【0150】
例示的な実施形態によれば、上記のスケジューリング方式に対処するために、以下のパラメータを使用することができる:
・スケジューリングが持続期間の単位に基づいて実施されるかセグメントの単位で実施されるかを定義するスケジュールタイプのパラメータであって、持続期間では、スケジューリングの各ステップは時間の持続期間によって定義され、あるいはセグメントの数では、各タスクの実行は固定数の入力セグメントによって実施される。
oスケジュールタイプの「持続期間」の場合、例示的な実施形態によればスケジュールテーブルが含まれる必要があり、テーブル内の行は実行の順序を示すことができ、各行は以下のパラメータを有することができる:
■実行されるタスクまたはタスクグループのリスト、
■cron構文およびセマンティクスを使用した開始時間、および
■実行時間の持続期間。
oスケジュールタイプの「セグメント」の場合、ワークフローは、パラメータ「セグメント数」によって定義される固定数のセグメントに対して一度に1タスクずつ、タスクごとに実行することができる。
・フラグ「ループ」はまた、定義されたスケジュールの周りでループすることを可能にするようにシグナリングされてもよい。
・パラメータ「ステータス」は、NBMPクライアントによる要求のタイプとNBMPワークフローマネージャによる要求の結果の両方を含み得る。
【0151】
さらに、標準的なNBMP仕様はスケール記述子を含むことができるが、そのような標準は、技術的な欠陥のために、ワークフローをスケーリングするためのコールフローを定義することができないので、本明細書に記載の実施形態は、コンピュータ技術自体に生じるそのような欠陥に対する技術的解決策を開示する。
【0152】
例えば、
図10は、スケーリングのためのコールフローによるそのような改善の1つまたは複数の変形についてのタイミング図の例1000を示す。
図10に示すように、NBMPクライアントは、少なくとも2つの任意選択の事前スケーリングステップ、すなわちS1とS2の組み合わせおよびS3とS4の組み合わせを有する。例えば、S1において、NBMPクライアントは、実行中のワークフローについてワークフローマネージャからプラットフォームのスケーリング能力を要求することができ、またはS3において、NBMPクライアントは、実行中のワークフローについて特定のスケーリング要求を考慮するようにワークフローマネージャに要求することができる。
【0153】
いずれの場合も、ワークフローマネージャは、そのサポート能力および/または実行中のワークフローを考慮する要求されたスケーリング要求に対応することができるかどうかでNBMPクライアントに応答する。NBMPクライアントは、オプションA、S1、およびS2、ならびにオプションB、S3、およびS4を順番に要求することもできることに留意されたい。ワークフローマネージャは、プラットフォームおよびタスクと協働し、いずれかのステップでNBMPクライアントに応答を提供する。
【0154】
満足のいく応答を得た後、NBMPクライアントは、S5において、特定のスケーリング方式を要求することができ、スケーリング方式を、ワークフローマネージャから受信した能力および応答に合わせることが可能である。ワークフローマネージャは、S6において、プラットフォームおよびタスクと協働してスケーリングを実施し、S7において、結果をNBMPクライアントに送り返す。そのS6の特徴はまた、
図6~
図8の例に示す特徴、および本明細書の
図9の例示的な実施形態で説明されているスケーリング特徴とは別々の本明細書で提供される関連する説明を含むことができる。
図9および
図10の特徴は、順番におよび互いに並行してのいずれかで実装することができる。すなわち、スケジューリングコールおよびスケーリングコールは、NBMPクライアントとワークフローマネージャとの間で順番に、他方の前または後に、および並行して行われ得る。
【0155】
例示的な実施形態によれば、上記のスケーリング方式に対処するために、以下のパラメータを使用することができる:
・「スケーリングタイプ」パラメータは、エッジサーバ、クラウドリソース、およびユーザデバイスなどの1つまたは複数のメディア処理エンティティ(MPE)をアップグレードすることによって、またはスプリットマージ機能を使用して並列タスクを既存のタスクに追加することによって、スケーリングの方法を定義することができる。
・「スケーリングファクタ」パラメータは、スケーリングのタイプに応じて、高速化または並列パスの数を定義することができる。
・「ステータス」パラメータは、NBMPクライアントによる要求のタイプとNBMPワークフローマネージャによる要求の結果の両方を示し得る。
・さらに、NBMPクライアントは、要求のタイプを定義するステータスパラメータについての値を含むUpdateWorkflow動作中、上記のパラメータなどのスケール記述子をWDDに追加することができる。ワークフローマネージャは、例示的な実施形態によれば、更新されたスケール記述子を含む更新されたWDDを返すことによってこの要求に応答することができる。
【0156】
上述した技法は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして、または具体的に構成される1つまたは複数のハードウェアプロセッサによって実装され得る。例えば、
図11は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム1100を示す。
【0157】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって直接、または解釈、マイクロコードの実行などを介して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構を受けることができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングすることができる。
【0158】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行することができる。
【0159】
コンピュータシステム1100について
図11に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関する制限を示唆することを意図していない。構成要素の構成は、コンピュータシステム1100の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
【0160】
コンピュータシステム1100は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した1人または複数の人間ユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスはまた、オーディオ(例えば、音声、音楽、周囲音)、画像(例えば、走査画像、写真画像静止画像カメラから取得するなど)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定のメディアを取り込むために使用することもできる。
【0161】
入力ヒューマンインターフェースデバイスは、キーボード1101、マウス1102、トラックパッド1103、タッチスクリーン1110、ジョイスティック1105、マイクロフォン1106、スキャナ1108、カメラ1107のうちの1つまたは複数(各々の1つだけ図示されている)を含んでもよい。
【0162】
コンピュータシステム1100はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を介して、1人または複数の人間ユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン1110やジョイスティック1105による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在することができる)、オーディオ出力デバイス(例えば、スピーカ1109、ヘッドフォン(図示せず))、視覚的出力デバイス(例えば、各々タッチスクリーン入力機能ありまたはなし、各々触覚フィードバック能力ありまたはなしのCRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン1110、その一部は、立体画像出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して2次元の視覚的出力や、3次元を超える出力を出力することが可能であり得る)、ならびにプリンタ(図示せず)を含み得る。
【0163】
コンピュータシステム1100はまた、人間がアクセス可能な記憶デバイスと、それらと関連付けられた媒体、例えば、CD/DVD1111などの媒体を有するCD/DVD ROM/RW1120を含む光学媒体、サムドライブ1122、リムーバブルハードドライブまたはソリッドステートドライブ1123、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどを含むこともできる。
【0164】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0165】
コンピュータシステム1100は、1つまたは複数の通信ネットワーク1198へのインターフェース1199も含むことができる。ネットワーク1198は、例えば、無線、有線、光であり得る。ネットワーク1198はさらに、ローカル、広域、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などとすることができる。ネットワーク1198の例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車両用および産業用などを含む。特定のネットワーク1198は、一般に、特定の汎用データポートまたは周辺バス(1150および1151)(例えば、コンピュータシステム1100のUSBポートなどに取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、後述されるようにシステムバスへの接続によってコンピュータシステム1100のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネットインターフェースやスマートフォンコンピュータシステムへのセルラネットワークインターフェース)。これらのネットワーク1198のいずれかを使用して、コンピュータシステム1100は他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルエリアまたは広域デジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0166】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム1400のコア1140に取り付けられ得る。
【0167】
コア1140は、1つまたは複数の中央処理装置(CPU)1141、グラフィック処理装置(GPU)1142、グラフィックアダプタ1117、フィールドプログラマブルゲートエリア(FPGA)1143の形態の専用のプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ1144などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)1145、ランダムアクセスメモリ1146、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ1147と共に、システムバス1148を介して接続され得る。いくつかのコンピュータシステムでは、システムバス1148は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス1148に直接取り付けることも、周辺バス1151を介して取り付けることもできる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0168】
CPU1141、GPU1142、FPGA1143、およびアクセラレータ1144は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM1145またはRAM1146に記憶することができる。暫定的なデータもまた、RAM1146に記憶することができるが、永続的なデータは、例えば、内部大容量ストレージ1147に記憶することができる。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU1141、GPU1142、大容量ストレージ1147、ROM1145、RAM1146などと密接に関連付けられることができるキャッシュメモリの使用によって可能にすることができる。
【0169】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものとすることができ、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものとすることができる。
【0170】
限定ではなく、例として、コンピュータシステム1100に対応するアーキテクチャ、具体的にはコア1140は、1つまたは複数の有形のコンピュータ可読媒体において具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能性を提供することができる。このようなコンピュータ可読媒体は、前述したようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ1147またはROM1145などの非一時的な性質のものであるコア1140の特定のストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア1140によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア1140、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM1146に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ1144)においてハードワイヤードされるかまたは他の方法で具現化された論理の結果として機能性を提供することができ、この回路は、ソフトウェアの代わりに、またはソフトウェアと共に動作し、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0171】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0172】
100 環境、110 ユーザデバイス、120 プラットフォーム、122 クラウドコンピューティング環境、124 コンピューティングリソース、124-1 アプリケーション、124-2 仮想マシン、124-3 仮想化ストレージ、124-4 ハイパーバイザ、130 ネットワーク、201 ビデオソース/カメラ、202 エンコーダ、203 キャプチャサブシステム、204 エンコーディングされたビデオビットストリーム、205 ストリーミングサーバ、206 エンコーディングされたビデオビットストリームのコピー/ビデオビットストリーム、207 ストリーミングクライアント、208 エンコーディングされたビデオビットストリームのコピー/ビデオビットストリーム、209 ディスプレイ、210 ビデオサンプルストリーム、211 ビデオデコーダ、212 ストリーミングクライアント、213 非圧縮ビデオサンプルストリーム、300 ビデオデコーダ、301 チャネル、302 受信機、303 バッファメモリ/エンコーダ、304 エントロピーデコーダ/パーサ、305 スケーラ/逆変換ユニット、306 動き補償予測ユニット、307 イントラピクチャ予測ユニット、308 参照ピクチャメモリ/参照ピクチャバッファ、309 現在の参照ピクチャ、310 アグリゲータ、311 ループフィルタユニット、312 ディスプレイ、313 シンボル、400 ビデオエンコーダ/ビデオコーダ、401 ビデオソース、402 コントローラ、403 ソースコーダ/ビデオコーダ、404 予測子、405 参照ピクチャメモリ、406 ローカルビデオデコーダ、407 コーディングエンジン、408 エントロピーコーダ、409 送信機、410 コーディングされたビデオシーケンス、411 通信チャネル、500 NBMPシステム、510 NBMPソース、520 NBMPワークフローマネージャ、530 関数リポジトリ、540 ネットワークコントローラ、550 メディア処理エンティティ、551 タスク、552 タスク、553 構成、554 メディア処理関数、560 メディアソース、570 メディアシンク、580 サードパーティエンティティ、600 方法、610 動作、620 動作、630 動作、640 動作、700 装置、710 第1の取得コード、720 第2の取得コード、730 第3の取得コード、740 処理コード、800 関係の例、900 タイミング図の例、S901 ステップ、S902 ステップ、S903 ステップ、S904 ステップ、S905 ステップ、S906 ステップ、S907 ステップ、1000 タイミング図の例、S1001 ステップ、S1002 ステップ、S1003 ステップ、S1004 ステップ、S1005 ステップ、S1006 ステップ、S1007 ステップ、1100 コンピュータシステム、1101 キーボード、1102 マウス、1103 トラックパッド、1105 ジョイスティック、1106 マイクロフォン、1107 カメラ、1108 スキャナ、1109 スピーカ、1110 タッチスクリーン、1111 CD/DVD、1117 グラフィックアダプタ、1120 CD/DVD ROM/RW、1122 サムドライブ、1123 リムーバブルハードドライブ/ソリッドステートドライブ、1140 コア、1141 中央処理装置(CPU)、1142 グラフィック処理装置(GPU)、1143 フィールドプログラマブルゲートエリア(FPGA)、1144 ハードウェアアクセラレータ、1145 読み出し専用メモリ(ROM)、1146 ランダムアクセスメモリ(RAM)、1147 内部大容量ストレージ、1148 システムバス、1150 周辺バス、1151 周辺バス、1198 通信ネットワーク、1199 インターフェース
【手続補正書】
【提出日】2024-06-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
動画専門家グループ(MPEG)ネットワークベースのメディア処理(NBMP)においてメディアコンテンツを処理する方法であって、前記方法は、少なくとも1つのプロセッサによって実施され、前記方法は、
NBMPクライアントからNBMPワークフローマネージャへの第1の要求を取得するステップと、
第1の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップであって、前記第1の応答は、前記第1の要求に応答し、かつ前記第1の要求に基づく、ステップと、
前記NBMPクライアントから前記NBMPワークフローマネージャへの第2の要求を取得するステップであって、前記第2の要求は、前記第1の応答に応答し、かつ前記第1の応答に基づく、ステップと、
前記第2の要求に応答して、かつ前記第2の要求に基づいて、NBMPワークフローの少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御するステップであって、前記少なくとも1つのパラメータは、スケーリング方式およびスケジューリング方式のいずれかである、ステップと、
前記NBMPワークフローを使用して処理されるべきメディアコンテンツを制御するステップと
を含み、
前記第1の要求および前記第2の要求は各々、前記NBMPワークフローマネージャから能力を要求し、前記能力は、前記NBMPワークフローを処理するタスクの機能以外のスケジューリング能力およびスケーリング能力のうちの1つである、
方法。
【請求項2】
前記第1の要求は、前記NBMPワークフローマネージャに、前記NBMPワークフローマネージャからの前記能力で前記NBMPクライアントに応答するよう命令し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記NBMPワークフローの前記少なくとも1つのパラメータを設定するよう命令し、前記少なくとも1つのパラメータは、前記NBMPワークフローマネージャからの前記能力のものであり、前記NBMPワークフローを処理するタスクの機能のものではなく、
前記NBMPワークフローは、少なくとも前記第1の要求の時点では、実行中のワークフローである、
請求項1に記載の方法。
【請求項3】
前記第1の要求を取得し、かつ、前記第1の応答を送信する前に、前記NBMPワークフローマネージャによって、前記NBMPクライアントからの初期要求を取得し、かつ、前記NBMPワークフローマネージャによって、前記NBMPクライアントへの初期応答を送信するステップをさらに含み、
前記初期要求は、前記第1の要求よりも特定的でないスケジューリング能力を要求し、
前記NBMPクライアントが前記初期応答を受信したことに応答して、前記第1の要求は、前記NBMPクライアントから前記NBMPワークフローマネージャへ送信され、
前記第1の要求は、前記能力として、前記NBMPワークフローマネージャの
前記スケジューリング能力を要求し、
前記第2の要求は、前記NBMPワークフローマネージャに、前記スケジューリング能力に基づいて前記少なくとも1つのパラメータを設定するよう命令する、
請求項2に記載の方法。
【請求項4】
第2の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップ
をさらに含み、
前記第2の要求は、前記NBMPワークフローマネージャに、前記実行中のワークフローに対して特定のスケジュールを設定するよう命令し、
前記第2の応答は、前記特定のスケジュールが前記第2の要求に応答して設定されたかどうかを前記NBMPクライアントに示す、
請求項3に記載の方法。
【請求項5】
前記少なくとも1つのパラメータは、前記NBMPワークフローのスケジューリングが持続期間の単位およびセグメントの単位のいずれかに基づくかどうかを定義する、
請求項2に記載の方法。
【請求項6】
前記NBMPクライアントから前記NBMPワークフローマネージャへの第3の要求を取得するステップであって、前記第
3の要求は
、前記NBMPワークフローマネージャのスケーリング能力を要求
する、
ステップと、
前記NBMPクライアントから前記NBMPワークフローマネージャへの第4の要求を取得するステップであって、前記第
4の要求は、前記NBMPワークフローマネージャに、前記スケーリング能力に基づいて
スケーリングパラメータを設定するよう命令する、
ステップと
をさらに含む、請求項2に記載の方法。
【請求項7】
第
3の応答を前記NBMPワークフローマネージャから前記NBMPクライアントに送信するステップ
をさらに含み
、
前記第
3の応答は
、特定のスケーリングが前記第
3の要求に応答して設定されたかどうかを前記NBMPクライアントに示す、
請求項6に記載の方法。
【請求項8】
前記実行中のワークフローは、ワークフロー記述子文書(WDD)を示すワークフロー記述子(WD)を含み、
前記第2の要求に応答して、かつ前記第2の要求に基づいて、前記NBMPワークフローの前記少なくとも1つのパラメータを設定するように前記NBMPワークフローマネージャを制御するステップは、UpdateWorkflow動作中、かつ前記少なくとも1つのパラメータに基づいて、記述子を前記WDDに追加するステップを含む、
請求項7に記載の方法。
【請求項9】
前記第
3の応答は、前記記述子を前記WDDに追加するステップに基づいて、更新されたWDDを前記NBMPクライアントに返すステップを含む、
請求項8に記載の方法。
【請求項10】
前記少なくとも1つのパラメータは、メディア処理エンティティをアップグレードすること、および並列タスクを前記実行中のワークフローの既存のタスクに追加することのいずれかによるスケーリングを定義する、
請求項2に記載の方法。
【請求項11】
請求項1~10のいずれか一項に記載の方法を行うように構成された装置。
【請求項12】
少なくとも1つのプロセッサに、請求項1~10のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【国際調査報告】