(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-05
(45)【発行日】2022-10-14
(54)【発明の名称】MPEG NBMPにおいてメディアコンテンツを処理する方法、装置、及びプログラム
(51)【国際特許分類】
H04N 21/438 20110101AFI20221006BHJP
G06F 9/50 20060101ALI20221006BHJP
H04L 67/61 20220101ALI20221006BHJP
H04L 65/752 20220101ALI20221006BHJP
【FI】
H04N21/438
G06F9/50 150A
H04L67/61
H04L65/752
(21)【出願番号】P 2021534242
(86)(22)【出願日】2020-03-18
(86)【国際出願番号】 US2020023246
(87)【国際公開番号】W WO2020190986
(87)【国際公開日】2020-09-24
【審査請求日】2021-06-15
(32)【優先日】2019-03-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
(72)【発明者】
【氏名】ジャオ,シュアイ
【審査官】益戸 宏
(56)【参考文献】
【文献】米国特許出願公開第2019/0028691(US,A1)
【文献】米国特許出願公開第2016/0036886(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
G06F 9/50
H04L 67/00-67/75
H04L 61/00-65/80
(57)【特許請求の範囲】
【請求項1】
ムービング・ピクチャ・エキスパート・グループ(MPEG)ネットワーク・ベーズド・メディア・プロセッシング(NBMP)においてメディアコンテンツを処理する方法であって、少なくとも1つのプロセッサによって実行される前記方法において、
前記メディアコンテンツを処理するための複数のタスクを取得するステップと、
前記複数のタスクを連結するNBMPリンクアプリケーション・プログラム・インターフェース(API)を供給することによって、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを供給するステップと、
前記NBMPリンクAPIを使用することによって、前記メディアコンテンツを処理するために使用されるべきネットワークリソースの量を識別するステップと、
前記識別されたネットワークリソースの量に応じて前記メディアコンテンツを処理するステップと
を有する方法。
【請求項2】
前記メディアコンテンツを処理するために使用されるべき前記ネットワークリソースの量を識別する前記ステップは、少なくとも1つのパラメータに従ってNBMPクオリティ・オブ・サービス(QoS)要件を拡張することによって、前記連結された複数のタスクの間の通信をモニタするステップを有する、
請求項1に記載の方法。
【請求項3】
前記少なくとも1つのパラメータは、minDelay、maxDelay、minThroughput、maxThroughput、及びaveragingWindowのうちの少なくとも1つを有する、
請求項2に記載の方法。
【請求項4】
前記ネットワークリソースの量を識別する前記ステップは、メディア・セッション中に前記NBMPリンクAPIの状態をモニタするステップを有する、
請求項1または2に記載の方法。
【請求項5】
前記ネットワークリソースの量を識別する前記ステップは、前記NBMPリンクAPIから報告を受け取るステップを有する、
請求項1、2及び4の何れか一項に記載の方法。
【請求項6】
前記NBMPワークフロー・マネージャと前記クラウド・マネージャとの間の機能探索APIを更に有する、
請求項1乃至5の何れか一項に記載の方法。
【請求項7】
前記機能探索APIは、前記メディアコンテンツを処理するために使用すべきプレロードされた機能を発見することを有する、
請求項6に記載の方法。
【請求項8】
ムービング・ピクチャ・エキスパート・グループ(MPEG)ネットワーク・ベーズド・メディア・プロセッシング(NBMP)においてメディアコンテンツを処理する装置であって、
プログラムコードを記憶するよう構成される少なくとも1つのメモリと、
前記プログラムコードを読み出し、前記プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサと
を有し、前記プログラムコードは、前記少なくとも1つのプロセッサによって実行される場合に、前記少なくとも1つのプロセッサに、請求項1乃至7の何れか一項に記載の方法を実行させる、
装置。
【請求項9】
ムービング・ピクチャ・エキスパート・グループ(MPEG)ネットワーク・ベーズド・メディア・プロセッシング(NBMP)においてメディアコンテンツを処理する装置の少なくとも1つのプロセッサによって実行される場合に、該少なくとも1つのプロセッサに、請求項1乃至7の何れか一項に記載の方法を実行させる、
プログラム。
【発明の詳細な説明】
【背景技術】
【0001】
ムービング・ピクチャ・エキスパート・グループ(Moving Picture Experts Group,MPEG)ネットワーク・ベーズド・メディア・プロセッシング(Network Based Media Processing,NBMP)プロジェクトは、クラウド上でメディアを処理する概念を開発した。しかし、現在のNBMP設計は、ネットワーク管理のためのアプリケーション・プログラム・インターフェース(Application Program Interface,API)抽象化を提供しない。現在のNBMP設計は、ハードウェア・プラットフォームなどのクラウドリソースのためのAPIしか提供しない。更に、現在のNBMPワークフロー・マネージャは、ジョブを取得して、予め定義されたコンピューティング設定に基づいて全てのワーカーノードにジョブを分配する、Hadoopマスターノードなどのジョブ分配器のようにしか動作しない。ワークフロー・マネージャは、SNMP(Simple Network Management Protocol)を使用することといった、リソース情報を計算するワーカーを取得可能である。しかし、ネットワーク・トポロジ、バンド幅、レイテンシ、及びQoS並びに他などの、リンク間のネットワーキングリソースを取得することは困難である、という問題がある。
【発明の概要】
【0002】
実施形態に従って、ムービング・ピクチャ・エキスパート・グループ(MPEG)ネットワーク・ベーズド・メディア・プロセッシング(NBMP)においてメディアコンテンツを処理する方法は、少なくとも1つのプロセッサによって実行され、メディアコンテンツを処理するための複数のタスクを取得するステップと、複数のタスクを連結するNBMPリンクアプリケーション・プログラム・インターフェース(API)を供給することによって、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを供給するステップと、NBMPリンクAPIを使用することによって、メディアコンテンツを処理するために使用されるべきネットワークリソースの量を識別するステップと、識別されたネットワークリソースの量に応じてメディアコンテンツを処理するステップとを含む。
【0003】
実施形態に従って、ムービング・ピクチャ・エキスパート・グループ(MPEG)ネットワーク・ベーズド・メディア・プロセッシング(NBMP)においてメディアコンテンツを処理する装置は、プログラムコードを記憶するよう構成される少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサとを含み、プログラムコードは、少なくとも1つのプロセッサに、メディアコンテンツを処理するための複数のタスクを取得させるよう構成された取得コードと、少なくとも1つのプロセッサに、複数のタスクを連結するNBMPリンクアプリケーション・プログラム・インターフェース(API)を供給することによって、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを供給させるよう構成された供給コードと、少なくとも1つのプロセッサに、NBMPリンクAPIを使用することによって、メディアコンテンツを処理するために使用されるべきネットワークリソースの量を識別させるよう構成された識別コードと、少なくとも1つのプロセッサに、識別されたネットワークリソースの量に応じてメディアコンテンツを処理させるよう構成された処理コードとを含む。
【0004】
実施形態に従って、非一時的なコンピュータ可読媒体は、ムービング・ピクチャ・エキスパート・グループ(MPEG)ネットワーク・ベーズド・メディア・プロセッシング(NBMP)においてメディアコンテンツを処理する装置の少なくとも1つのプロセッサによって実行される場合に、少なくとも1つのプロセッサに、メディアコンテンツを処理するための複数のタスクを取得するステップと、複数のタスクを連結するNBMPリンクアプリケーション・プログラム・インターフェース(API)を供給することによって、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを供給するステップと、NBMPリンクAPIを使用することによって、メディアコンテンツを処理するために使用されるべきネットワークリソースの量を識別するステップと、識別されたネットワークリソースの量に応じてメディアコンテンツを処理するステップとを実行させる命令を記憶している。
【図面の簡単な説明】
【0005】
【
図1】実施形態に従って、本明細書で記載される方法、装置及びシステムが実装され得る環境の図である。
【
図2】
図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。
【
図3A】実施形態に従って、NBMPシステムのブロック図である。
【
図3B】実施形態に従って、NBMPシステムのブロック図である。
【
図4】実施形態に従って、MPEG NBMPにおいてメディアコンテンツを処理する方法のフローチャートである。
【
図5】実施形態に従って、MPEG NBMPにおいてメディアコンテンツを処理する装置のブロック図である。
【発明を実施するための形態】
【0006】
本明細書で記載される実施形態は、MPEG NBMP標準規格に対する機能改善を提供する。かような改善は、メディア処理効率を高め、メディアサービスのデプロイの速度を速めかつそのコストを下げ、そして、パブリック、プライベート又はハイブリッドクラウドサービスを利用することによってメディアサービスの大規模デプロイを可能にする。
【0007】
例において、MPEG NBMP標準規格に対する機能改善は、ユーザローカル入力、クラウドローカル入力、又はクラウドリモート入力であるNBMPソースを可能にすることを含む。これは、ローカルアプリケーション、クラウドベースのアプリケーション、又はクラウド上で遠隔で実行されるアプリケーションのためのサービスをデプロイすることに関して柔軟性を加える。また、単一のインターフェースが、NBMPワークフロー・マネージャとクラウド・マネージャとの間に定義され得る。従って、それは、クラウド・マネージャとネットワーク・コントローラとを通じてメディア・セッションの操作を行う。クラウド・マネージャは、クラウドに関する究極の知識を有しているので、それは、動作を簡単にし、それらをNBMPワークフロー・マネージャとってより実現可能なものとする。
【0008】
更に、MPEG NBMP標準規格に対する機能改善は、ワークフロー・マネージャがネットワーキング及び物理コンピューティングリソースに関する十分な情報を有することを可能にすることを含む。NBMPは、クラウドリソース及びネットワークマネージャへのAPIを有する。このAPIは、NBMPワークフロー・マネージャが、クラウド・プラットフォームの知識がなくても、メディアサービスを設定するために、セッションをセットアップするために、コンピューティング及びネットワークリソースの割り当てのためにクラウドサービスと通信することを可能にする。クラウド・マネージャは、NBMPワークフロー・マネージャから及びそれへ供給された要求及び情報を内部クラウド・プラットフォームインターフェースへ変換する。更に、NBMPワークフロー・マネージャは、内部クラウド・プラットフォームのロジックを知らなくても、この標準APIを通じて、メディア・セッションのパフォーマンスを管理、モニタ、及び解析することができる。ネットワーク管理要件も含まれる。
【0009】
更に、MPEG NBMP標準規格に対する機能改善は、NBMPワークフロー・マネージャとクラウド・マネージャとの間のAPIに機能探索(function discovery)APIを加えることを含む。これは、ワークフロー・マネージャが、クラウド上で機能の一般的な実装をロードするのではなく、クラウド上で機能の好ましい最適化された実装を見つけてそれらを使用することを可能にする。
【0010】
図1は、実施形態に従って、本明細書で記載される方法、装置及びシステムが実装され得る環境100の図である。
図1に示されるように、環境100は、ユーザデバイス110、プラットフォーム120、及びネットワーク130を含んでよい。環境100は、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して相互接続してよい。
【0011】
ユーザデバイス110は、プラットフォーム120に関連した情報を受信、生成、記憶、処理、及び/又は供給する能力がある1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバ、など)、携帯電話機(例えば、スマートフォン、無線電話機、など)、ウェアラブルデバイス(例えば、スマートメガネ又はスマートウォッチ)、又は同様のデバイスを含んでよい。いくつかの実施では、ユーザデバイス110は、プラットフォーム120から情報を受信し、及び/又はプラットフォーム120へ情報を送信してよい。
【0012】
プラットフォーム120は、本明細書の他の場所で記載されている1つ以上のデバイスを含む。いくつかの実施では、プラットフォーム120は、クラウドサーバ又はクラウドサーバのグループを含んでよい。いくつかの実施では、プラットフォーム120は、ソフトウェアコンポーネントが特定のニーズに応じてスワップイン又はアウトされ得るようにモジュールであるよう設計されてよい。そのようなものとして、プラットフォーム120は、種々の使用のために容易に及び/又は直ちに再設定され得る。
【0013】
いくつかの実施では、示されているように、プラットフォーム120は、クラウドコンピューティング環境122でホストされてよい。特に、本明細書で記載される実施は、プラットフォーム120を、クラウドコンピューティング環境122でホストされるものとして説明するが、いくつかの実施では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外で実装されてよく)、あるいは、部分的にクラウドベースであってもよい。
【0014】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的位置及び構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、記憶などのサービスを提供する。示されているように、クラウドコンピューティング環境122は、コンピューティングリソース124(集合的に「コンピューティングリソース124」と、及び個別的に「コンピューティングリソース124」と呼ばれる。)のグループを含んでよい。
【0015】
コンピューティングリソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、あるいは、他のタイプの計算及び/又は通信デバイスを含む。いくつかの実施では、コンピューティングリソース124は、プラットフォーム120をホストしてよい。クラウドリソースは、コンピューティングリソース124で実行するコンピュートインスタンス、コンピューティングリソース124で提供される記憶デバイス、コンピューティングリソース124によって提供されるデータ転送デバイス、などを含んでよい。いくつかの実施では、コンピューティングリソース124は、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して他のコンピューティングリソース124と通信してよい。
【0016】
図1に更に示されているように、コンピューティングリソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想化されたストレージ(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4などのようなクラウドリソースのグループを含む。
【0017】
アプリケーション124-1は、ユーザデバイス110及び/又はプラットフォーム120へ供給されるか又はそれらによってアクセスされ得る1つ以上のソフトウェア・アプリケーションを含む。アプリケーション124-1は、ユーザデバイス110でソフトウェア・アプリケーションをインストール及び実行する必要性を排し得る。例えば、アプリケーション124-1は、プラットフォーム120に関連したソフトウェア、及び/又はクラウドコンピューティング環境122を介して供給されることが可能なあらゆる他のソフトウェアを含んでよい。いくつかの実施では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1から/へ情報を送信/受信してよい。
【0018】
仮想マシン124-2は、物理マシンのような、プログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による何らかの実際のマシンへの寄与の使用及び程度に応じて、システム仮想マシン又はプロセス仮想マシンのどちらか一方であってよい。システム仮想マシンは、完全オペレーティング・システム(「OS」)の実行をサポートする完全システム・プラットフォームを提供してよい。プロセス仮想マシンは、単一のプログラムを実行してよく、単一のプロセスをサポートしてよい。いくつかの実施では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって実行してよく、データ管理、同期化、又は長期データ転送などのクラウドコンピューティング環境122のインフラストラクチャを管理してよい。
【0019】
仮想化されたストレージ124-3は、コンピューティングリソース124のストレージシステム又はデバイス内で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。いくつかの実施では、ストレージシステムという状況の中で、仮想化のタイプには、ブロック仮想化及びファイル仮想化が含まれ得る。ブロック仮想化は、物理ストレージ又はヘテロジニアス構造に関係なくストレージシステムがアクセスされ得るような、物理ストレージからの論理ストレージの抽象化(又は分離)を指し得る。分離は、アドミニストレータがエンドユーザのために記憶を管理する方法においてストレージシステムの柔軟性をアドミニストレータに許し得る。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶されている場所との間の依存関係を排し得る。これは、ストレージの使用の最適化、サーバの統合、及び/又は無停止のファイル移行を可能にし得る。
【0020】
ハイパーバイザ124-4は、複数のオペレーティング・システム(例えば、「ゲスト・オペレーティング・システム」)がコンピューティングリソース124などのホストコンピュータで同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、仮想オペレーティング・プラットフォームをゲスト・オペレーティング・システムに提示してよく、ゲスト・オペレーティング・システムの実行を管理してよい。様々なオペレーティング・システムの複数のインスタンスは、仮想化されたハードウェアリソースを共有してよい。
【0021】
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラー・ネットワーク(例えば、第5世代(5G)ネットワーク、ロング・ターム・エボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多重アクセス(CDMA)ネットワーク、など)、公衆地上移動体ネットワーク(PLMN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベート・ネットワーク、アドホック・ネットワーク、イントラネット、インターネット、光ファイバネットワーク、など及び/又はそれらの組み合わせ、あるいは、他のタイプのネットワークを含んでよい。
【0022】
図1に示されているデバイス及びネットワークの数及び配置は、例として与えられている。実際には、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは、
図1に示されているものとは異なるように配置されたデバイス及び/又はネットワークが存在してもよい。更に、
図1に示されている2つ以上のデバイスは、単一のデバイス内に実装されてもよく、あるいは、
図1に示されている単一のデバイスは、複数の分散したデバイスとして実装されてもよい。追加的に、又は代替的に、環境100のデバイス(例えば、1つ以上のデバイス)の組は、環境100のデバイスの他の組によって実行されるものとして説明されている1つ以上の機能を実行してもよい。
【0023】
図2は、
図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応してよい。
図2に示されているように、デバイス200は、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インターフェース270を含んでよい。
【0024】
バス210は、デバイス200のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェア及びソフトウェアの組み合わせで実装される。プロセッサ220は、中央演算処理装置(CPU)、グラフィクス・プロセッシング・ユニット(GPU)、アクセラレーテッド・プロセッシング・ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他のタイプのプロセッシングコンポーネントである。いくつかの実施では、プロセッサ220は、機能を実行するようプログラムされる能力がある1つ以上のプロセッサを含む。メモリ230は、プロセッサ220によって使用される情報及び/又はデータを記憶するランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、及び/又は他のタイプの動的若しくは静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光学メモリ)を含む。
【0025】
ストレージコンポーネント240は、デバイス200の動作及び使用に関連した情報及び/又はソフトウェアを記憶する。例えば、ストレージコンポーネント240は、ハードディスク(例えば、磁気ディスク、光ディスク、光学磁気ディスク、及び/又はソリッド・ステート・ディスク)、コンパクト・ディスク(CD)、デジタル・バーサタイル・ディスク(DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、及び/又は他のタイプの非一時的なコンピュータ可読媒体を、対応するドライブとともに含んでよい。
【0026】
入力コンポーネント250は、デバイス200が、例えば、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロホン)を介して、情報を受け取ることを可能にするコンポーネントを含む。追加的に、又は代替的に、入力コンポーネント250は、情報を検知するセンサ(例えば、グローバル・ポジショニング・システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでよい。出力コンポーネント260は、デバイス200から出力情報を供給するコンポーネント(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))を含む。
【0027】
通信インターフェース270は、デバイスが、例えば、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して、他のデバイスと通信することを可能にするトランシーバ様のコンポーネント(例えば、トランシーバ及び/又は別個の受信器及び送信器)を含む。通信インターフェース270は、デバイス200が他のデバイスから情報を受け取ること及び/又は他のデバイスへ情報を供給することを可能にし得る。例えば、通信インターフェース270は、Ethernet(登録商標)インターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサル・シリアル・バス(USB)インターフェース、Wi-Fiインターフェース、セルラー・ネットワーク・インターフェース、などを含んでよい。
【0028】
デバイス200は、本明細書で記載される1つ以上のプロセスを実行してよい。デバイス200は、メモリ230及び/又はストレージコンポーネント240などの非一時的なコンピュータ可読媒体によって記憶されているソフトウェア命令をプロセッサ220が実行することに応答して、これらのプロセスを実行してよい。コンピュータ可読媒体は、本明細書では、非一時的なメモリデバイスとして定義される。メモリデバイスは、単一の物理記憶デバイス内のメモリ空間、又は複数の物理記憶デバイスにわたって拡散されたメモリ空間を含む。
【0029】
ソフトウェア命令は、他のコンピュータ可読媒体から又は他のデバイスから通信インターフェース270を介してメモリ230及び/又はストレージコンポーネント240に読み出されてよい。実行される場合に、メモリ230及び/又はストレージコンポーネント240に記憶されているソフトウェア命令は、プロセッサ220に、本明細書で記載される1つ以上のプロセスを実行させてよい。追加的に、又は代替的に、ハードワイヤード回路が、本明細書で記載される1つ以上のプロセスを実行するようソフトウェア命令の代わりに又はそれと組み合わせて使用されてもよい。よって、本明細書で記載される実施は、ハードウェア回路及びソフトウェアの如何なる具体的な組み合わせにも限定されない。
【0030】
図2に示されているコンポーネントの数及び配置は、例として与えられている。実際には、デバイス200は、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は
図2に示されているものとは異なるように配置されたコンポーネントを含んでよい。追加的に、又は代替的に、デバイス200のコンポーネント(例えば、1つ以上のコンポーネント)の組は、デバイス200のコンポーネントの他の組であるものとして記載されている1つ以上の機能を実行してもよい。
【0031】
図3Aは、実施形態に従って、NBMPシステムのブロック図である。
【0032】
図3Aは、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを表す。クラウド・マネージャは、要求を内部APIへ変換し、それらを異なるハードウェアモジュールへ通信することができる。
【0033】
実施形態に従って、抽象化されたアーキテクチャが定義され、これは、NBMPリファレンスアーキテクチャの中ごろにクラウドリソース及びネットワークマネージャを置き、NBMP APIを、NBMPワークフロー・マネージャとクラウドリソース及びネットワークマネージャとの間のインターフェースであるよう拡張する。
【0034】
図3Bは、実施形態に従って、NBMPシステム301のブロック図である。
【0035】
図3Bを参照すると、NBMPシステム301は、NBMPソース310、NBMPワークフロー・マネージャ320、機能リポジトリ330、ネットワーク・コントローラ340、1つ以上のメディア処理エンティティ350、メディアソース360、及びメディアシンク370を含む。
【0036】
NBMPソース310は、第三者エンティティ380から命令を受け取ってよく、NBMPワークフローAPIを介してNBMPワークフロー・マネージャ320と通信してよく、機能探索APIを介して機能リポジトリ330と通信してよい。例えば、NBMPソース310は、ワークフロー記述ドキュメントをNBMPワークフロー・マネージャ320へ送信してよく、かつ、機能リポジトリ330のメモリに格納されている機能の機能記述を読み出してよい。機能は、例えば、メディア復号化、特徴点抽出、カメラパラメータ抽出、射影法、シーム情報抽出、ブレンディング、後処理、及び符号化の機能などのメディア処理機能を含んでよい。NBMPソース310は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに、NBMPソース310の機能を実行させるよう構成されたコードを記憶するメモリとを含んでよい。
【0037】
NBMPソース310は、ワークフロー記述ドキュメントをNBMPワークフロー・マネージャ320へ送信することによって、1つ以上のメディア処理エンティティ350によって実行されるべきタスク351及び352を含むワークフローを生成するようにNBMPワークフロー・マネージャ320に要求してよい。ワークフロー記述ドキュメントは記述子を含んでよく、各記述子はパラメータを含んでよい。
【0038】
例えば、NBMPソース310は、機能リポジトリ330に記憶されている機能のうちの1つ以上を選択し、NBMPワークフロー・マネージャ320に対して、入力及び出力データなどの詳細を記述する記述子を含むワークフロー記述ドキュメントと、選択された1つ以上の機能と、ワークフローの要件とを送信してよい。ワークフロー記述ドキュメントは、タスク記述の組と、メディア処理エンティティ350の1つ以上によって実行されるべきタスク351及び352の入力及び出力の接続マップとを更に含んでよい。NBMPワークフロー・マネージャ320がそのような情報をNBMPソース310から受け取ると、NBMPワークフロー・マネージャ320は、機能名に基づいてタスク351及び352をインスタンス化し、接続マップに従ってタスク351及び352を接続することによって、ワークフローを生成してよい。
【0039】
代替的に、又は追加的に、NBMPソース310は、キーワードの組を使用することによって、ワークフローを生成するようにNBMPワークフロー・マネージャ320に要求してもよい。例えば、NBMPソース310は、NBMPワークフロー・マネージャ320に対して、NBMPワークフロー・マネージャ320が機能リポジトリ330に記憶されている機能のうちの適切な1つ以上を見つけるために使用し得るキーワードの組を含むワークフロー記述ドキュメントを送信してよい。NBMPワークフロー・マネージャ320がそのような情報をNBMPソース310から受け取ると、NBMPワークフロー・マネージャ320は、ワークフロー記述ドキュメントの処理記述子(Processing Descriptor)で特定され得るキーワードを用いて適切な1つ以上の機能を探すことによって、かつ、タスク351及び352を準備し接続するためにワークフロー記述ドキュメント内の他の記述子を使用することによって、ワークフローを生成してよい。
【0040】
NBMPワークフロー・マネージャ320は、機能探索APIを介して機能リポジトリ330と通信してよく、NBMPタスクAPI、NBMPリンクAPI、及び機能探索APIを介して、ネットワーク・コントローラ340を通って、メディア処理エンティティ350の1つ以上と通信してよい。NBMPワークフロー・マネージャ320は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサにNBMPワークフロー・マネージャ320の機能を実行させるよう構成されたコードを記憶するメモリとを含んでよい。
【0041】
NBMPリンクAPIは、NBMPの元のアーキテクチャに加えられる。
図3Bに表されているように、2つのタスク間の如何なるリンクも、タスクAPIに類似したAPIを有している。このリンクのAPIを使用して、NBMPワークフロー・マネージャは、必要とされるネットワークリソースをセットアップすることとともに、メディア・セッション中のリンクの状態をモニタすること又はリンクから報告を受け取ることができる。このAPIは、クラウド・プラットフォームによって実装されるべきである。リンクごとに、このAPIはセットアップされ、クラウド・プラットフォームは、それの1つのインスタンスを、そのネットワーク・コントローラ、クラウド・マネージャ又は仮想ネットワーキング・マネージャを用いてインスタンス化する。
【0042】
NBMP機能探索APIも、NBMPの元のアーキテクチャに加えられる。このAPIは、NBMPが、機能を再びロードするのではなく、プレロードされた機能をクラウド上で見つけてそれらを使用することを可能にする。
【0043】
NBMPワークフロー・マネージャ320は、1つ以上のメディア処理エンティティ350によって実行可能であるタスク351及び352の1つ以上をセットアップ、構成、管理、及びモニタするためにNBMPタスクAPIを使用してよい。実施形態において、NBMPワークフロー・マネージャ320は、タスク351及び352を更新するためにNBMPタスクAPIを使用してよい。ワークフローのタスク351及び352を構成、管理、及びモニタするために、NBMPワークフロー・マネージャ320は、要求などのメッセージをメディア処理エンティティ350の1つ以上へ送信してよく、各メッセージは記述子を有してよく、各記述子はパラメータを含んでよい。タスク351及び352は夫々、1つ以上のメディア処理機能354と、1つ以上のメディア処理機能354のための1つ以上のコンフィグレーション353とを含んでよい。
【0044】
実施形態において、タスクのリストを含まない(例えば、タスクのリスクの代わりにキーワードのリストを含む)NBMPソース310からワークフロー記述ドキュメントを受け取った後、NBMPワークフロー・マネージャ320は、現在のワークフローについてタスク351及び352として実行されるべき適切な1つ以上の機能を見つけるために、機能探索APIを介して、機能リポジトリ330を探索するよう、ワークフロー記述ドキュメント内のタスクの記述に基づいてタスクを選択してよい。例えば、NBMPワークフロー・マネージャ320は、ワークフロー記述ドキュメント内で与えられているキーワードに基づいてタスクを選択してよい。適切な1つ以上の機能が、NBMPソースによって供給されるキーワード又はタスク記述の組を用いて識別された後、NBMPワークフロー・マネージャ320は、NBMPタスクAPIを使用することによって、選択されたタスクをワークフロー内で構成してよい。例えば、NBMPワークフロー・マネージャ320は、NBMPソース310から受け取られる情報からコンフィグレーションデータを取り出し、その取り出されたコンフィグレーションデータに基づいてタスク351及び352を構成してよい。
【0045】
1つ以上のメディア処理エンティティ350は、メディアソース360からメディアコンテンツを受け取り、受け取られたメディアコンテンツを、タスク351及び352を含み、NBMPワークフロー・マネージャ320によって生成されるワークフローに従って処理し、処理されたメディアコンテンツをメディアシンク370へ出力するよう構成されてよい。1つ以上のメディア処理エンティティ350は夫々、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに、1つ以上のメディア処理エンティティ350の機能を実行させるよう構成されたコードを記憶するメモリとを含んでよい。
【0046】
ネットワーク・コントローラ340は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに、ネットワーク・コントローラ340の機能を実行させるよう構成されたコードを記憶するメモリとを含んでよい。
【0047】
メディアソース360は、メディアを記憶するメモリを含んでよく、NBMPソース310と一体化されても又はそれとは別個であってもよい。実施形態において、NBMPワークフロー・マネージャ320は、ワークフローが準備されると、NBMPソース310及び/又はメディアソース360に通知してよく、メディアソース360は、ワークフローが準備されたとの通知に基づいて、メディア処理エンティティ350の1つ以上へメディアコンテンツを送信してよい。
【0048】
メディアシンク370は、少なくとも1つのプロセッサと、1つ以上のメディア処理エンティティ350によって処理されるメディアコンテンツを表示するよう構成される少なくとも1つのディスプレイとを含んでよい。
【0049】
第三者エンティティ380は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに、第三者エンティティ380の機能を実行させるよう構成されたコードを記憶するメモリとを含んでよい。
【0050】
上述されたように、NBMPソース310からNBMPワークフロー・マネージャ320へのメッセージ(例えば、ワークフローの生成を要求するワークフロー記述ドキュメント)、及びNBMPワークフロー・マネージャ320から1つ以上のメディア処理エンティティ350へのメッセージ(例えば、ワークフローを実行させるためのもの)は、記述子を含んでよく、各記述子はパラメータを含む。実施形態において、APIを使用するNBMPシステム301のいずれかのコンポーネント間の通信は、記述子を含んでよく、各記述子はパラメータを含む。
【0051】
[要件記述子の拡張]
実施形態に従って、2つのタスク間のネットワーキングをセットアップ及びモニタするために、NBMP QoS要件オブジェクトは、以下の表1で示されるパラメータにより拡張される。
【表1】
【0052】
[リンクリソースAPI]
実施形態に従って、リンクはタスクと類似しており、簡略化されたタスクリソースAPIを使用することができる。ネットワーキングをサポートするために、リンクリソースAPIが加えられてよく、あるいは、タスクリソースAPIが拡張されてもよい。リンクAPI動作。
【0053】
実施形態に従って、リンクAPI動作は、タスクAPI動作と類似し、同じコンフィグレーションAPIが使用可能である。
【0054】
[クラウド内のプレロードされた機能の発見]
実施形態に従って、NBMP機能は、クラウドサービス内にプレロードされていることがある。機能のいくつかは、クラウド・プラットフォームによって実装されてよく、あるいは、第三者ベンダーが、特定のクラウドソリューションのためにその機能の最適化された実装を有してもよい。
【0055】
実施形態に従って、機能の実装の位置は、その機能の処理記述子内のユニフォーム・リソース・ロケータ(URL)により識別され得る。NBMPワークフロー・マネージャがその実装をクラウドにロードする前に、それは、この機能の好ましい実装がクラウド・プラットフォームに存在するかどうかを問い合わせてよく、そして、該当する場合には、NBMPワークフロー・マネージャは、機能のその特定の実装を使用することができる。これは、同じベンダーからの機能が一意のIDを有していることと、機能の各実装が一意のIDを有していることとを必要とし得る。
【0056】
実施形態に従って、NBMPプロセスのワークフロー生成は、次を含む:
1.NBMPソースは、ワークフローを生成するためにワークフローAPIを使用する。それは、ワークフロー記述ドキュメントを要求の部分として送信する。ワークフロー・マネージャは、ワークフロー記述ドキュメントをチェックし、ワークフローを構築し始める。
2.ワークフロー・マネージャは、ワークフローを生成するためにデプロイするだろう機能を見つけるために、機能レジストリへクエリ又はクエリの組を送信する。
3.各クエリについて、機能レジストリは、可能性がある機能、それらの記述及びそれらのコンフィグレーション情報のショートリストを返す。
4.ワークフロー・マネージャは、それがデプロイしたい機能の組を選択し、それらの要件に基づいて、必要とされるメディア処理エンティティを生成してそれらに機能をロードするようクラウド・プラットフォームとコンタクトをとる。
a.各機能について、ワークフロー・マネージャは、その機能の好ましい実装がプラットフォームによって既にサポートされているかどうかを調べるよう問い合わせる。そのような実装が存在する場合には、クラウド・プラットフォームは、その機能の新しいIDを返す。
i.好ましい機能が存在する場合に、ワークフロー・マネージャは、それらのIDを使用してタスクを生成する。
ii.機能が存在しない場合に、ワークフロー・マネージャは、機能の実装をダウンロードするためにクラウド・マネージャへ認証URLを供給する。
5.クラウド・プラットフォームは、ネットワークアクセス情報を含む各メディア処理エンティティの生成を承認する。
6.ワークフロー・マネージャは、各タスクのコンフィグレーションを生成し、タスクAPIを使用してそのタスクのコンフィグレーションを送る。
7.タスクは、成功したコンフィグレーションを確かめ、アクセス情報を返し、故に、ワークフロー・マネージャは次のタスクを接続することができる。
8.ワークフロー・マネージャは、NBMPソースに対してワークフローの生成を承認し、それに、メディア処理が開始可能であることを知らせる。
【0057】
このようにして、実施形態に従って、機能探索APIは、ワークフロー・マネージャとクラウド・マネージャとの間で使用されてよい。このAPIは、既存の機能の一般的な処理記述を使用して問い合わせを行い、クラウド・プラットフォーム上の機能の存在に関する応答を得ることができる。
【0058】
図4は、実施形態に従って、MPEG NBMPにおいてメディアコンテンツを処理する方法400のフローチャートである。いくつかの実施では、
図4の1つ以上のプロセスブロックは、NBMPシステム301を実装するプラットフォーム120によって実行されてよい。いくつかの実施では、
図4の1つ以上のプロセスブロックは、NBMPシステム301を実装するプラットフォーム120とは別個の又はそれを含む他のデバイス又はデバイスのグループ、例えば、ユーザデバイス110によって実行されてもよい。
【0059】
図4に示されているように、動作410で、方法400は、メディアコンテンツを処理するための複数のタスクを取得することを含む。
【0060】
動作420で、方法400は、複数のタスクを連結するNBMPリンクアプリケーション・プログラム・インターフェース(API)を供給することによって、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを供給することを含む。
【0061】
動作430で、方法400は、NBMPリンクAPIを使用することによって、メディアコンテンツを処理するために使用されるべきネットワークリソースの量を識別することを含む。
【0062】
動作440で、方法400は、識別されたネットワークリソースの量に応じてメディアコンテンツを処理することを含む。
【0063】
方法は、少なくとも1つのパラメータに従ってNBMPクオリティ・オブ・サービス(QoS)要件を拡張することによって、連結された複数のタスクの間の通信をモニタすることを更に含んでよい。少なくとも1つのパラメータは、minDelay、maxDelay、minThroughput、maxThroughput、及びaveragingWindowのうちの少なくとも1つを有する。
【0064】
ネットワークリソースの量を識別する動作は、メディア・セッション中にNBMPリンクAPIの状態をモニタすることを含んでよい。
【0065】
ネットワークリソースの量を識別する動作は、NBMPリンクAPIから報告を受け取ることを含んでよい。機能探索APIは、メディアコンテンツを処理するために使用すべきプレロードされた機能を発見することを含んでよい。
【0066】
図4は、方法400の例示的なブロックを示すが、いくつかの実施では、方法400は、追加のブロック、より少ないブロック、異なるブロック、
図4で表されているものとは異なるように配置されたブロックを含んでよい。追加的に、又は代替的に、方法400のブロックの2つ以上は、同時に実行されてもよい。
【0067】
図5は、実施形態に従って、MPEG NBMPにおいてメディアコンテンツを処理する装置500の図である。
図5に示されているように、装置500は、取得コード510、供給コード520、識別コード530、及び処理コード540を含む。
【0068】
取得コード510は、少なくとも1つのプロセッサに、メディアコンテンツを処理するための複数のタスクを取得させるよう構成される。
【0069】
供給コード520は、少なくとも1つのプロセッサに、複数のタスクを連結するNBMPリンクアプリケーション・プログラム・インターフェース(API)を供給することによって、NBMPワークフロー・マネージャとクラウド・マネージャとの間のインターフェースを供給させるよう構成される。
【0070】
識別コード530は、少なくとも1つのプロセッサに、NBMPリンクAPIを使用することによって、メディアコンテンツを処理するために使用されるべきネットワークリソースの量を識別させるよう構成される。
【0071】
処理コード540は、少なくとも1つのプロセッサに、識別されたネットワークリソースの量に応じてメディアコンテンツを処理させるよう構成される。
【0072】
上記の開示は、例示及び説明を与えるが、包括的であったり、あるいは、開示されている厳密な形態に実施を限定したりする意図はない。変更及び変形が、上記の開示を鑑みて可能であり、あるいは、実施の実行から取得され得る。
【0073】
本明細書で使用されているように、コンポーネントという用語は、ハードウェア、ファームウェア、ハードウェア及びソフトウェアの組み合わせとして広く解釈されるよう意図される。
【0074】
本明細書で記載されているシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェア及びソフトウェアの組み合わせにおいて実装されてよいことが理解される。これらのシステム及び/又は方法を実装するために使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実施の限定ではない。よって、システム及び/又は方法の操作及び挙動は、特定のソフトウェアコードを参照せずに本明細書で記載された。ソフトウェア及びハードウェアは、本明細書中の記載に基づいてシステム及び/又は方法を実装するよう設計されてよいことが理解される。
【0075】
たとえ特徴の組み合わせが特許請求の範囲において列挙され及び/又は明細書で開示されているとしても、これらの組み合わせは、可能な実施の開示を限定する意図はない。実際に、これらの特徴の多くは、具体的に特許請求の範囲に列挙されていない方法及び/又は明細書で開示されていない方法で組み合わされてよい。以下で挙げられている各従属請求項は、ただ1つの請求項にしか直接に従属しないことがあるが、可能な実施の開示は、各従属請求項を、特許請求の範囲内のあらゆる他の請求項と組み合わせて含む。
【0076】
本明細書で使用されている要素、動作、又は命令は、そのようなものとして明示的に記載されない限りは、重要又は必須と考えられるべきではない。また、本明細書で使用されているように、不定冠詞(a又はan)は、1つ以上のアイテムを含むよう意図され、「1つ以上」と同義的に使用されてよい。更に、本明細書で使用されているように、「組」との用語は、1つ以上のアイテム(例えば、関連するアイテム、無関係のアイテム、関連するアイテムと無関係のアイテムとの組み合わせ、など)を含むよう意図され、「1つ以上」と同義的に使用されてよい。ただ1つのアイテムが意図される場合には、「1つ」との用語又は類似した言語が使用される。また、本明細書で使用されているように、「有する」など、との用語は、非限定的な用語であるよう意図される。更に、「~に基づく」という表現は、別段明示的に述べられない限りは、「少なくとも~に基づく」を意味するよう意図される。
【0077】
[関連出願の相互参照]
本願は、米国特許商標庁において、2019年3月18日付けで出願された米国特許仮出願第62/820192号、及び2020年3月17日付けで出願された米国特許出願第16/821015号の優先権を主張するものである。優先権の基礎となったこれら特許出願は、その開示の全文を参照により本願に援用される。