(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-13
(45)【発行日】2022-06-21
(54)【発明の名称】メディアコンテンツを処理する方法、装置、及びコンピュータプログラム
(51)【国際特許分類】
G06F 9/48 20060101AFI20220614BHJP
【FI】
G06F9/48 300Z
(21)【出願番号】P 2021532206
(86)(22)【出願日】2020-03-12
(86)【国際出願番号】 US2020022260
(87)【国際公開番号】W WO2020190612
(87)【国際公開日】2020-09-24
【審査請求日】2021-06-07
(32)【優先日】2019-03-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】漆原 孝治
(56)【参考文献】
【文献】特表2007-531332(JP,A)
【文献】特開2011-123881(JP,A)
【文献】特開2016-144100(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
ムービングピクチャエキスパートグループ(MPEG)ネットワークベースメディア処理(NBMP)においてメディアコンテンツを処理するための、少なくとも1つのプロセッサが実行する方法であって、
前記メディアコンテンツを処理するための複数のタスクを取得するステップであり、前記複数のタスクの各々が、前記複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する、ステップと、
前記取得した複数のタスクの中に繰り返しのタスクが存在するかを、前記取得した複数のタスクの各々の前記メッセージID及び前記送信者IDに基づいて判定するステップと、
前記繰り返しのタスクが存在すると判定したことに基づいて、前記繰り返しのタスクのうちの、前記繰り返しのタスクの各々の前記メッセージ優先度の中で最も高い優先度を持つ1つ、を用いて前記メディアコンテンツを処理するステップと、
前記繰り返しのタスクが存在しないと判定したことに基づいて、前記取得した複数のタスクを用いて前記メディアコンテンツを処理するステップと、
を有する方法。
【請求項2】
前記取得した複数のタスクの中に前記繰り返しのタスクが存在するかを前記判定するステップは、
前記繰り返しのタスクのうちの1番目のものの前記メッセージIDが、前記繰り返しのタスクのうちの2番目のものの前記メッセージIDと同じであるかを判定し、
前記繰り返しのタスクのうちの1番目のものの前記メッセージIDが前記繰り返しのタスクのうちの2番目のものの前記メッセージIDと同じであると判定したことに基づいて、前記取得した複数のタスクの中に前記繰り返しのタスクが存在すると判定する、
ことを有する、請求項1に記載の方法。
【請求項3】
前記取得した複数のタスクの中に前記繰り返しのタスクが存在するかを前記判定するステップは、
前記繰り返しのタスクのうちの1番目のものの前記送信者IDが、前記繰り返しのタスクのうちの2番目のものの前記送信者IDと同じであるかを判定し、
前記繰り返しのタスクのうちの1番目のものの前記送信者IDが前記繰り返しのタスクのうちの2番目のものの前記送信者IDと同じであると判定したことに基づいて、前記取得した複数のタスクの中に前記繰り返しのタスクが存在すると判定する、
ことを有する、請求項1に記載の方法。
【請求項4】
前記繰り返しのタスクが存在すると判定したことに基づいて、前記繰り返しタスクのうちの残りのものを前記取得した複数のタスクから除去するステップであり、前記繰り返しタスクのうちの該除去した残りのものを使用して前記メディアコンテンツが処理されることがないようにする、ステップ、
を更に有する請求項1に記載の方法。
【請求項5】
前記取得した複数のタスクを用いて前記メディアコンテンツを処理するステップは、前記繰り返しのタスクが存在しないと判定したことに基づいて、前記取得した複数のタスクの各々の前記メッセージ優先度に基づく順序で前記取得した複数のタスクを使用して、前記メディアコンテンツを処理することを有する、請求項1に記載の方法。
【請求項6】
前記取得した複数のタスクの各々の前記エンベロープ記述子を使用して、前記取得した複数のタスクを記録するステップ、を更に有する請求項1に記載の方法。
【請求項7】
当該方法はメディア処理エンティティによって実行され、且つ
前記複数のタスクは、NBMPワークフローマネジャから取得される、
請求項1に記載の方法。
【請求項8】
ムービングピクチャエキスパートグループ(MPEG)ネットワークベースメディア処理(NBMP)においてメディアコンテンツを処理する装置であって、当該装置は、
プログラムコードを格納するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み出し、前記プログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサと、
を有し、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、前記メディアコンテンツを処理するための複数のタスクを取得させるように構成された取得コードであり、前記複数のタスクの各々が、前記複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する、取得コードと、
前記少なくとも1つのプロセッサに、前記取得した複数のタスクの中に繰り返しのタスクが存在するかを、前記取得した複数のタスクの各々の前記メッセージID及び前記送信者IDに基づいて判定させるように構成された判定コードと、
前記少なくとも1つのプロセッサに、
前記繰り返しのタスクが存在すると判定したことに基づいて、前記繰り返しのタスクのうちの、前記繰り返しのタスクの各々の前記メッセージ優先度の中で最も高い優先度を持つ1つ、を用いて前記メディアコンテンツを処理させ、
前記繰り返しのタスクが存在しないと判定したことに基づいて、前記取得した複数のタスクを用いて前記メディアコンテンツを処理させる、
ように構成された処理コードと、
を有する、
装置。
【請求項9】
前記判定コードは更に、前記少なくとも1つのプロセッサに、
前記繰り返しのタスクのうちの1番目のものの前記メッセージIDが、前記繰り返しのタスクのうちの2番目のものの前記メッセージIDと同じであるかを判定させ、
前記繰り返しのタスクのうちの1番目のものの前記メッセージIDが前記繰り返しのタスクのうちの2番目のものの前記メッセージIDと同じであると判定したことに基づいて、前記取得した複数のタスクの中に前記繰り返しのタスクが存在すると判定させる、
ように構成される、請求項8に記載の装置。
【請求項10】
前記判定コードは更に、前記少なくとも1つのプロセッサに、
前記繰り返しのタスクのうちの1番目のものの前記送信者IDが、前記繰り返しのタスクのうちの2番目のものの前記送信者IDと同じであるかを判定させ、
前記繰り返しのタスクのうちの1番目のものの前記送信者IDが前記繰り返しのタスクのうちの2番目のものの前記送信者IDと同じであると判定したことに基づいて、前記取得した複数のタスクの中に前記繰り返しのタスクが存在すると判定させる、
ように構成される、請求項8に記載の装置。
【請求項11】
前記プログラムコードは更に、
前記少なくとも1つのプロセッサに、前記繰り返しのタスクが存在すると判定したことに基づいて、前記繰り返しタスクのうちの残りのものを前記取得した複数のタスクから除去させるように構成された除去コードであり、前記繰り返しタスクのうちの該除去した残りのものを使用して前記メディアコンテンツが処理されることがないようにする、除去コード、
を有する、請求項8に記載の装置。
【請求項12】
前記処理コードは更に、前記少なくとも1つのプロセッサに、前記繰り返しのタスクが存在しないと判定したことに基づいて、前記取得した複数のタスクの各々の前記メッセージ優先度に基づく順序で前記取得した複数のタスクを使用して、前記メディアコンテンツを処理させるように構成される、請求項8に記載の装置。
【請求項13】
前記プログラムコードは更に、
前記少なくとも1つのプロセッサに、前記取得した複数のタスクの各々の前記エンベロープ記述子を使用して、前記取得した複数のタスクを記録させるように構成された記録コード、
を有する、請求項8に記載の装置。
【請求項14】
当該装置はメディア処理エンティティであり、且つ
前記複数のタスクは、NBMPワークフローマネジャから取得される、
請求項8に記載の装置。
【請求項15】
コンピュータに請求項1乃至7のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、米国特許商標庁に2019年3月15日に出願された米国仮特許出願第62/819,451号、及び2020年3月9日に出願された米国出願第16/813,099号からの優先権を主張するものであり、それらの開示をそれらの全体にてここに援用する。
【背景技術】
【0002】
ムービングピクチャエキスパートグループ(Moving
Picture Experts Group;MPEG)ネットワークベースメディア処理(Network Based Media Processing;NBMP)プロジェクトは、クラウド上でメディアを処理するというコンセプトを開発してきた。しかしながら、現行のNBMP設計は、ネットワーク管理に関するアプリケーションプログラムインタフェース(application program interface;API)抽象化を提供していない。現行のNBMPの設計は、例えばハードウェアプラットフォームなどのクラウドリソースに関するAPIを提供するのみである。
【0003】
また、現行のNBMP設計は、APIを通じて渡されるメッセージをパッケージ化する共通の手法を含んでいない。従って、メッセージを処理することは、効果的にAPIを経由することができないことがある。例えば、ワークフローの展開において、幾つかのタスクが複数のメディア処理エンティティ上で走ることがある。ワークフローマネジャとそれらタスクとが、一群の記述子をディスパッチする/問い合わせることによってタスクAPIを介して通信し得る。大規模な展開、特に、ハイスケールなものにおいて、メディアセッション中のディスパッチ/問い合わせの数は、何千又は何百万というオーダーになり得る。同じ情報を伝えるメッセージ又は問い合わせが何個も発生し得る。これらのメッセージの順序、それらの送信元、及び意図される受信は、他の情報の中でもとりわけ、メッセージを効率的且つ効果的に処理するために重要となり得る。
【発明の概要】
【0004】
実施形態によれば、ムービングピクチャエキスパートグループ(MPEG)ネットワークベースメディア処理(NBMP)においてメディアコンテンツを処理する方法は、少なくとも1つのプロセッサによって実行され、当該方法は、メディアコンテンツを処理するための複数のタスクを取得することを含み、複数のタスクの各々が、複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する。当該方法は更に、取得した複数のタスクの中に繰り返しのタスクが存在するかを、取得した複数のタスクの各々のメッセージID及び送信者IDに基づいて判定し、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しのタスクのうちの、繰り返しのタスクの各々のメッセージ優先度の中で最も高い優先度を持つ1つ、を用いてメディアコンテンツを処理し、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクを用いてメディアコンテンツを処理することを含む。
【0005】
実施形態によれば、ムービングピクチャエキスパートグループ(MPEG)ネットワークベースメディア処理(NBMP)においてメディアコンテンツを処理する装置は、プログラムコードを格納するように構成された少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサに、メディアコンテンツを処理するための複数のタスクを取得させるように構成された取得コードであり、複数のタスクの各々が、複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する、取得コードと、少なくとも1つのプロセッサに、取得した複数のタスクの中に繰り返しのタスクが存在するかを、取得した複数のタスクの各々のメッセージID及び送信者IDに基づいて判定させるように構成された判定コードと、を含む。プログラムコードは更に、少なくとも1つのプロセッサに、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しのタスクのうちの、繰り返しのタスクの各々のメッセージ優先度の中で最も高い優先度を持つ1つ、を用いてメディアコンテンツを処理させ、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクを用いてメディアコンテンツを処理させるように構成された処理コードを含む。
【0006】
実施形態によれば、非一時的なコンピュータ読み取り可能媒体は命令を格納し、当該命令は、ムービングピクチャエキスパートグループ(MPEG)ネットワークベースメディア処理(NBMP)においてメディアコンテンツを処理する装置の少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、メディアコンテンツを処理するための複数のタスクを取得させ、複数のタスクの各々が、複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する。当該命令は更に、少なくとも1つのプロセッサに、取得した複数のタスクの中に繰り返しのタスクが存在するかを、取得した複数のタスクの各々のメッセージID及び送信者IDに基づいて判定させ、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しのタスクのうちの、繰り返しのタスクの各々のメッセージ優先度の中で最も高い優先度を持つ1つ、を用いてメディアコンテンツを処理させ、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクを用いてメディアコンテンツを処理させる。
【図面の簡単な説明】
【0007】
【
図1】実施形態に従った、ここに記載される方法、装置、及びシステムが実装され得る環境の図である。
【
図2】
図1の1つ以上の装置のコンポーネント例のブロック図である。
【
図3】実施形態に従った、NBMPシステムのブロック図である。
【
図4】実施形態に従った、MPEG NBMPにおいてメディアコンテンツを処理する方法のフローチャートである。
【
図5】実施形態に従った、MPEG NBMPにおいてメディアコンテンツを処理する装置のブロック図である。
【発明を実施するための形態】
【0008】
ここに記載される実施形態は、MPEG NBMP規格におけるエンベロープ記述子を提供する。エンベロープ記述子は、NBMPタスクAPIを介して通信される全ての要求に付加される。このようなエンベロープ記述子は、メディア処理効率を向上させ、メディアサービスの展開のスピードを高めるとともにコストを低下させ、公共、プライベート、又はハイブリッドのクラウドサービスを利用することによってメディアサービスの大規模な展開を可能にする。
【0009】
図1は、実施形態に従った、ここに記載される方法、装置及びシステムが実装され得る環境100の図である。
図1に示すように、環境100は、ユーザ装置110、プラットフォーム120、及びネットワーク130を含み得る。環境100の装置は、有線接続、無線接続、又は有線接続と無線接続との組み合わせ、を介して相互接続し得る。
【0010】
ユーザ装置110は、プラットフォーム120に関連する情報を受信、生成、格納、処理、及び/又は提供することができる1つ以上の装置を含む。例えば、ユーザ装置110は、コンピューティング装置(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブル装置(例えば、一対のスマートグラス又はスマートウォッチ)、又は類似の装置を含み得る。一部の実装において、ユーザ装置110は、プラットフォーム120から情報を受信し及び/又はプラットフォーム120に情報を送信し得る。
【0011】
プラットフォーム120は、この中の別の箇所で説明されるような1つ以上の装置を含む。一部の実装において、プラットフォーム120は、クラウドサーバ又は一群のクラウドサーバを含み得る。一部の実装において、プラットフォーム120は、ソフトウェアコンポーネントが特定のニーズに応じてスワップイン又はスワップアウトされ得るよう、モジュール式であるように設計され得る。そのようなものとして、プラットフォーム120は、異なる使用のために容易に且つ/或いは迅速に再構成されることができる。
【0012】
一部の実装において、図示のように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされ得る。特に、ここに記載される実装は、プラットフォーム120をクラウドコンピューティング環境122内でホストされるものとして記述するが、一部の実装では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外で実装されてもよく)、あるいは、部分的にクラウドベースであってもよい。
【0013】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又は装置の物理的な位置及び構成に関するエンドユーザ(例えば、ユーザ装置110)知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供し得る。図示のように、クラウドコンピューティング環境122は、一群の計算リソース124(まとめて“計算リソース群124”と称し、個々に“計算リソース124”と称する)を含み得る。
【0014】
計算リソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバ装置、又は他の種類の計算及び/又は通信装置を含む。一部の実装において、計算リソース124はプラットフォーム120をホストし得る。クラウドリソースは、計算リソース124において実行される計算インスタンス、計算リソース124内で提供されるストレージ装置、計算リソース124によって提供されるデータ転送装置などを含み得る。一部の実装において、計算リソース124は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して、他の計算リソース124と通信し得る。
【0015】
図1に更に示すように、計算リソース124は、例えば、1つ以上のアプリケーション(“APP”)124-1、1つ以上の仮想マシン(“VM”)124-2、仮想化ストレージ(“VS”)124-3、1つ以上のハイパーバイザ(“HYP”)124-4、又はこれらに類するものなどの、一群のクラウドリソースを含む。
【0016】
アプリケーション124-1は、ユーザ装置110及び/又はプラットフォーム120に提供され又はそれらによってアクセスされ得る1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザ装置110上にソフトウェアアプリケーションをインストールして実行する必要をなくし得る。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供されることが可能な任意の他のソフトウェアを含み得る。一部の実装において、1つのアプリケーション124-1が、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1に/から情報を送信/受信し得る。
【0017】
仮想マシン124-2は、物理的なマシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による何らかの実マシンへの対応の程度及び用途に応じて、システム仮想マシン又はプロセス仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(“OS”)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは、単一のプログラムを実行することができ、単一のプロセスをサポートし得る。一部の実装において、仮想マシン124-2は、ユーザ(例えば、ユーザ装置110)の代わりに実行を行うことができ、例えばデータ管理、同期、又は長時間データ転送など、クラウドコンピューティング環境122のインフラストラクチャを管理することができる。
【0018】
仮想化ストレージ124-3は、計算リソース124のストレージシステム又は装置の中で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上の装置を含む。一部の実装において、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化は、物理的なストレージ又は異種構造に関係なくストレージシステムがアクセスされ得るようにする、論理ストレージの物理ストレージからの抽象化(又は分離)を指すとし得る。この分離は、管理者がエンドユーザのためにストレージを管理する方法における柔軟性をストレージシステムの管理者に許すことができる。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に格納される場所との間の依存関係を排除し得る。これは、ストレージ使用の最適化、サーバ統合、及び/又は中断のないファイル移動の実行を可能にし得る。
【0019】
ハイパーバイザ124-4は、例えば計算リソース124などのホストコンピュータ上で複数のオペレーティングシステム(例えば、“ゲストオペレーティングシステム”)が同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、ゲストオペレーティングシステムに対して仮想オペレーティングプラットフォームを提示することができ、ゲストオペレーティングシステムの実行を管理することができる。多様なオペレーティングシステムの複数のインスタンスが、仮想化ハードウェアリソースを共有し得る。
【0020】
ネットワーク130は、1つ以上の有線ネットワーク及び/又は無線ネットワークを含み得る。例えば、ネットワーク130は、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話ネットワーク(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、若しくはこれらに類するもの、及び/又はこれら若しくは他のタイプのネットワークの組み合わせを含み得る。
【0021】
図1に示した装置及びネットワークの数及び構成は、一例として提供されている。実際には、
図1に示したものに対して、追加の装置及び/又はネットワーク、より少ない装置及び/又はネットワーク、異なる装置及び/又はネットワーク、又は異なる構成の装置及び/又はネットワークが存在し得る。また、
図1に示した2つ以上の装置が単一の装置内に実装されてもよいし、あるいは、
図1に示した単一の装置が複数の分散された装置として実装されてもよい。加えて、あるいは代わりに、環境100の装置のセット(例えば、1つ以上の装置)が、環境100の装置の別のセットによって実行されるとして記載された1つ以上の機能を実行してもよい。
【0022】
図2は、
図1の1つ以上の装置のコンポーネント例のブロック図である。装置200は、ユーザ装置110及び/又はプラットフォーム120に対応し得る。
図2に示すように、装置200は、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インタフェース270を含み得る。
【0023】
バス210は、装置200のコンポーネント間での通信を可能にするコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ220は、中央演算処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、アクセラレーテッドプロセッシングユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他のタイプの処理コンポーネントである。一部の実装において、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、及び/又は、プロセッサ220による使用のための情報及び/又は命令を格納する他のタイプの動的又は静的な記憶デバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光メモリ)を含む。
【0024】
ストレージコンポーネント240は、装置200の動作及び使用に関係する情報及び/又はソフトウェアを格納する。例えば、ストレージコンポーネント240は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク(登録商標)、カートリッジ、磁気テープ、及び/又は他のタイプの非一時的なコンピュータ読み取り可能媒体を、対応するドライブと共に含み得る。
【0025】
入力コンポーネント250は、装置200が、例えばユーザ入力を介してなどで、情報を受信することを可能にするコンポーネントを含む(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)。加えて、あるいは代わりに、入力コンポーネント250は、情報をセンシングするセンサ(例えば、グローバルポジショニングシステム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでもよい。出力コンポーネント260は、装置200からの出力情報を提供するコンポーネントを含む(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))。
【0026】
通信インタフェース270は、装置200が、例えば有線接続、無線接続、又は有線接続と無線接続との組み合わせを介してなどで、他の装置と通信することを可能にするトランシーバのようなコンポーネント(例えば、トランシーバ及び/又は別個の受信器と送信器)を含む。通信インタフェース270は、装置200が他の装置から情報を受信すること及び/又は他の装置に情報を提供することを可能にする。例えば、通信インタフェース270は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラネットワークインタフェース、又はこれらに類するものを含み得る。
【0027】
装置200は、ここに記載される1つ以上のプロセスを実行し得る。装置200は、それらのプロセスを、例えばメモリ230及び/又はストレージコンポーネント240などの非一時的なコンピュータ読み取り可能媒体によって格納されたソフトウェア命令をプロセッサ220が実行することに応答して実行し得る。コンピュータ読み取り可能媒体は、ここでは、非一時的なメモリ装置として定義される。メモリ装置は、単一の物理的記憶装置内の記憶空間を含み、又は複数の物理的記憶装置にわたって広がった記憶空間を含む。
【0028】
ソフトウェア命令が、メモリ230及び/又はストレージコンポーネント240に、他のコンピュータ読み取り可能媒体から又は通信インタフェース270を介して他の装置から読み込まれ得る。メモリ230及び/又はストレージコンポーネント240に格納されたソフトウェア命令は、実行されるときに、プロセッサ220に、ここに記載される1つ以上のプロセスを実行させ得る。加えて、あるいは代わりに、ここに記載される1つ以上のプロセスを実行するために、ソフトウェア命令の代わりに又はそれと組み合わせてハードワイヤード回路が使用されてもよい。従って、ここに記載される実装、ハードウェア回路とソフトウェアとの如何なる特定の組み合わせにも限定されるものではない。
【0029】
図2に示したコンポーネントの数及び構成は、一例として提供されている。実際には、装置200は、
図2に示したものに対して、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる構成のコンポーネントを含み得る。加えて、あるいは代わりに、装置200のコンポーネントのセット(例えば、1つ以上のコンポーネント)が、装置200のコンポーネントの別のセットによって実行されるとして記載された1つ以上の機能を実行してもよい。
【0030】
図3は、実施形態に従ったNBMPシステム300のブロック図である。
【0031】
図3を参照するに、NBMPシステム300は、NBMPソース310、NBMPワークフローマネジャ320、機能リポジトリ330、ネットワークコントローラ340、1つ以上のメディア処理エンティティ350、メディアソース360、及びメディアシンク370を含んでいる。
【0032】
NBMPソース310は、第三者エンティティ380からの命令を受け取り、NBMPワークフローAPIを介してNBMPワークフローマネジャ320と通信し、また、機能ディスカバリAPIを介して機能リポジトリ330と通信し得る。例えば、NBMPソース310は、ワークフロー記述ドキュメントをNBMPワークフローマネジャ320に送ることができ、また、機能リポジトリ330のメモリに格納されている機能の機能記述を読み取ることができる。これらの機能は、例えば、メディア復号、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンド、後処理、符号化の機能などの、メディア処理機能を含み得る。NBMPソース310は、少なくとも1つのプロセッサと、該少なくともプロセッサにNBMPソース310の機能を実行させるように構成されたコードを格納するメモリとを含み得る。
【0033】
NBMPソース310は、ワークフロー記述ドキュメントをNBMPワークフローマネジャ320に送ることによって、1つ以上のメディア処理エンティティ350によって実行されるタスク351及び352を含むワークフローを作成するようNBMPワークフローマネジャ320に要求し得る。ワークフロー記述ドキュメントは、各々がパラメータを含み得る複数の記述子を含むことができる。
【0034】
例えば、NBMPソース310は、機能リポジトリ330に格納された機能のうちの1つ以上を選択し、そして、例えば入出力データ、機能のうちの選択された1つ以上、及びワークフローに関する要件などの詳細を記述する記述子を含んだワークフロー記述ドキュメントをNBMPワークフローマネジャ320に送信し得る。ワークフロー記述ドキュメントは更に、一組のタスク記述、並びにメディア処理エンティティ350のうちの1つ以上によって実行されるタスク351及び352の入力と出力の接続マップを含み得る。NBMPワークフローマネジャ320がNBMPソース310からこのような情報を受信すると、NBMPワークフローマネジャ320は、機能名に基づいてタスク351及び352をインスタンス化し、接続マップに従ってタスク351及び352を接続することによって、ワークフローを作成することができる。
【0035】
代わりに、あるいは加えて、NBMPソース310は、一組のキーワードを使用してワークフローを作成するようにNBMPワークフローマネジャ320に要求してもよい。例えば、NBMPソース310は、機能リポジトリ330に格納された機能のうちの適切な1つ以上を見つけるためにNBMPワークフローマネジャ320が使用し得るキーワードのセットを含んだワークフロー記述ドキュメントを、NBMPワークフローマネジャ320に送信し得る。NBMPワークフローマネジャ320がNBMPソース310からこのような情報を受信すると、NBMPワークフローマネジャ320は、ワークフロー記述ドキュメントの処理記述子(Processing Descriptor)にて規定され得るキーワードを用いて機能のうちの適切な1つ以上を検索し、ワークフロー記述ドキュメント内の他の記述子を用いてタスク351及び352を設けて接続することによって、ワークフローを作成することができる。
【0036】
NBMPワークフローマネジャ320は、機能ディスカバリAPIを介して機能リポジトリ330と通信することができ、また、NBMPタスクAPI、NBMPリンクAPI、及び機能ディスカバリAPIを介して、ネットワークコントローラ340を通じて、メディア処理エンティティ350のうちの1つ以上と通信することができる。NBMPワークフローマネジャ320は、少なくとも1つのプロセッサと、該少なくともプロセッサにNBMPワークフローマネジャ320の機能を実行させるように構成されたコードを格納したメモリとを含み得る。
【0037】
NBMPワークフローマネジャ320は、NBMPタスクAPIを使用して、1つ以上のメディア処理エンティティ350によって実行可能なワークフローのタスク351及び352のうちの1つ以上を設定、構成、管理、及び監視し得る。実施形態において、NBMPワークフローマネジャ320は、NBMPタスクAPIを使用して、タスク351及び352を更新及び廃止し得る。ワークフローのタスク351及び352を構成、管理、及び監視するために、NBMPワークフローマネジャ320は、例えば要求などのメッセージをメディア処理エンティティ350のうちの1つ以上に送信することができ、各メッセージが、各々がパラメータを含み得る複数の記述子を有することができる。タスク351及び352は各々、1つ以上のメディア処理機能354と、該1つ以上のメディア処理機能354に関する1つ以上の構成(コンフィギュレーション)353とを含み得る。
【0038】
実施形態において、タスクのリストを含まない(例えば、タスクのリストの代わりにキーワードのリストを含む)ワークフロー記述ドキュメントをNBMPソース310から受信した後、NBMPワークフローマネジャ320は、ワークフロー記述ドキュメント内のタスクの記述に基づいてタスクを選択して、機能ディスカバリAPIを介して機能リポジトリ330を検索し、機能のうち現在ワークフローに関するタスク351及び352として実行すべき適切な1つ以上を見出し得る。例えば、NBMPワークフローマネジャ320は、ワークフロー記述ドキュメント内で提供されるキーワードに基づいてタスクを選択し得る。それらのキーワード又はNBMPソース310によって提供されるタスク記述のセットを用いて機能のうち適切な1つ以上が特定された後、NBMPワークフローマネジャ320は、NBMPタスクAPIを使用することによって、選択されたタスクをワークフロー内に構成し得る。例えば、NBMPワークフローマネジャ320は、NBMPソースから受信した情報から構成データを抽出し、抽出した構成データに基づいてタスク351及び352を構成し得る。
【0039】
1つ以上のメディア処理エンティティ350は、メディアソース360からメディアコンテンツを受信し、受信したメディアコンテンツを、NBMPワークフローマネジャ320によって作成された、タスク351及び352を含むワークフローに従って処理し、そして、処理したメディアコンテンツをメディアシンク370に出力するように構成され得る。1つ以上のメディア処理エンティティ350は各々、少なくとも1つのプロセッサと、該少なくとも1つのプロセッサに1つ以上のメディア処理エンティティ350の機能を実行させるように構成されたコードを格納したメモリとを含み得る。
【0040】
ネットワークコントローラ340は、少なくとも1つのプロセッサと、該少なくとも1つのプロセッサにネットワークコントローラ340の機能を実行させるように構成されたコードを格納したメモリとを含み得る。
【0041】
メディアソース360は、メディアを格納するメモリを含むことができ、NBMPソース310と統合されてもよいし、それとは別個にされてもよい。実施形態において、NBMPワークフローマネジャ320は、ワークフローが準備されたときにNBMPソース310及び/又はメディアソース360に通知することができ、メディアソース360は、ワークフローが準備されたことの通知に基づいて、メディア処理エンティティ350のうちの1つ以上にメディアコンテンツを送信することができる。
【0042】
メディアシンク370は、少なくとも1つのプロセッサと、1つ以上のメディア処理エンティティ350によって処理されたメディアコンテンツを表示するように構成された少なくとも1つのディスプレイとを含み得る。
【0043】
第三者エンティティ380は、少なくとも1つのプロセッサと、該少なくとも1つのプロセッサに第三者エンティティ380の機能を実行させるように構成されたコードを格納したメモリとを含み得る。
【0044】
上述のように、NBMPソース310からNBMPワークフローマネジャ320へのメッセージ(例えば、ワークフローの作成を要求するためのワークフロー記述ドキュメント)、及びNBMPワークフローマネジャ320から1つ以上のメディア処理エンティティ350への(例えば、ワークフローを実行させるための)メッセージは、各々がパラメータを含む複数の記述子を含み得る。実施形態において、APIを用いたNBMPシステム300のコンポーネントのいずれか間の通信は、各々がパラメータを含む複数の記述子を含み得る。
【0045】
ここに記載される実施形態は、
図3に示すNBMPタスクAPIに追加されるエンベロープ記述子を提供する。NBMPタスクAPIを介した通信は、表1に記載される情報を含む1つのエンベロープ記述子を搬送する。
【表1】
【0046】
表1において、メッセージバージョンは、メッセージのバージョンを指し示し、将来の拡張のために使用されることができる。
【0047】
メッセージIDは、メッセージの1つのインスタンスを識別するために使用される。これは、同じメッセージが複数回送信される場合に有用である。受信者は、1つだけ処理して、他を無視し得る。
【0048】
セッションIDは、セッションを識別するために使用される。セッションは、アプリケーションの存続期間及び範囲に依存するので、ワークフロー記述ドキュメントによって規定される。セッションIDは、メッセージIDと共に、ユーザによって設定される全てのセッションにまたがってメッセージの固有IDを規定する。
【0049】
メッセージ優先度は、送信者にとってのメッセージの優先度を指し示す。これは数値であり、小さい数値ほど高い優先度を意味する。
【0050】
発行時間は、メッセージを作成した実時間(ウォールクロック時間)を示す。これは、メッセージを処理することに関して、同じ送信者又は複数の送信者からのメッセージを順序付けるために使用されることができる。
【0051】
満了時間は、メッセージが期限切れになる実時間を示し、満了時間後にメッセージを処理することは不要である。
【0052】
送信者IDは、1つのワークフロー当たり一人の送信者が存在するため、メッセージの送信者の固有のIDである。
【0053】
受信者IDは、メッセージの受信者の固有IDのリストである。
【0054】
実施形態において、エンベロープ記述子は、
図3に示すNBMPシステム300のいずれのAPI及び/又はいずれの記述子にも使用され得る。
【0055】
追加のメッセージがタスク内にある場合、エンベロープ記述子の冗長性及びサイズを低減させるために、それぞれのエンベロープ記述子内での及びNBMPワークフローマネジャ320によっての使用のために、それら追加のメッセージのメッセージID、メッセージ優先度及び送信者IDのみが保持されてもよい。
【0056】
各セッションに対して、ユーザは、最初に、エンベロープ記述子のパラメータを設定する。例えば、ユーザは、セッションIDを割り当て、タスクごとに送信者/受信者IDを設定し、タスクごとに優先度範囲を定め得る。
【0057】
ワークフロー記述ドキュメントは、表2に記載される情報を含む。
【表2】
【0058】
NBMPワークフローマネジャ320は、表3に記載される各タスク構成中にエンベロープ記述子の以下のパラメータを使用し得る。
【表3】
【0059】
NBMPワークフローマネジャ320は、エンベロープ記述子内で、ワークフロー記述ドキュメントに規定されるセッションIDを使用し得る。
【0060】
NBMPワークフローマネジャ320は、作成される全てのタスクに対して、同じ値の送信者IDを使用し得る。
【0061】
上の値は、タスク更新中に変更されることができない。
【0062】
セッション中のエンベロープ記述子のユースケースにおいて、全てのAPI要求が、1つ且つ1つのみのエンベロープ記述子を含む。NBMPワークフローマネジャ320は、初期設定中に確立されるこれらの要求において送信者ID及びタスクIDを使用し得る。
【0063】
各タスクは、必須パラメータと、APIを介した要求の初期設定中に受信される値セットとを使用する。
【0064】
実施形態に従ったエンベロープ記述子を使用することによって、NBMPワークフローマネジャ320は、ワークフロー内の繰り返しのメッセージをより容易に見つけ、それらを、処理のために保持される1つを除いて、除去することができる。さらに、NBMPワークフローマネジャ320は、エンベロープ記述子のメッセージ優先度パラメータを使用して、メッセージをより容易に優先順位付けすることができる。最後に、NBMPシステム300のコンポーネントは、エンベロープ記述子を使用して、メッセージ、ワークフロー、タスク、及び機能を、より容易に記録及び追跡することができる。
【0065】
図4は、実施形態に従った、MPEG NBMPにおいてメディアコンテンツを処理する方法400のフローチャートである。一部の実装において、
図4の1つ以上のプロセスブロックは、NBMPシステム300を実装するプラットフォーム120によって実行され得る。一部の実装において、
図4の1つ以上のプロセスブロックは、例えばユーザ装置110など、NBMPシステム300を実装するプラットフォーム120とは別の又はそれを含んだ装置又は装置群によって実行されてもよい。
【0066】
図4に示すように、動作410にて、方法400は、メディアコンテンツを処理するための複数のタスクを取得することを含み、複数のタスクの各々が、複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する。
【0067】
動作420にて、方法400は、取得した複数のタスクの中に繰り返しのタスクが存在するかを、取得した複数のタスクの各々のメッセージID及び送信者IDに基づいて判定することを含む。
【0068】
動作430にて、方法400は、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しのタスクのうちの、繰り返しのタスクの各々のメッセージ優先度の中で最も高い優先度を持つ1つ、を用いてメディアコンテンツを処理することを含む。
【0069】
動作440にて、方法400は、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクを用いてメディアコンテンツを処理することを含む。
【0070】
取得した複数のタスクの中に繰り返しのタスクが存在するかを判定することは、繰り返しのタスクのうちの1番目のもののメッセージIDが、繰り返しのタスクのうちの2番目のもののメッセージIDと同じであるかを判定し、繰り返しのタスクのうちの1番目のもののメッセージIDが繰り返しのタスクのうちの2番目のもののメッセージIDと同じであると判定したことに基づいて、取得した複数のタスクの中に繰り返しのタスクが存在すると判定することを含み得る。
【0071】
取得した複数のタスクの中に繰り返しのタスクが存在するかを判定することは、繰り返しのタスクのうちの1番目のものの送信者IDが、繰り返しのタスクのうちの2番目のものの送信者IDと同じであるかを判定し、繰り返しのタスクのうちの1番目のものの送信者IDが繰り返しのタスクのうちの2番目のものの送信者IDと同じであると判定したことに基づいて、取得した複数のタスクの中に繰り返しのタスクが存在すると判定することを含み得る。
【0072】
当該方法は更に、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しタスクのうちの残りのものを取得した複数のタスクから除去(パージ)して、繰り返しタスクのうちの該除去した残りのものを使用してメディアコンテンツが処理されることがないようにすることを含み得る。
【0073】
取得した複数のタスクを用いてメディアコンテンツを処理することは、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクの各々のメッセージ優先度に基づく順序で取得した複数のタスクを使用して、メディアコンテンツを処理することを含み得る。
【0074】
当該方法は更に、取得した複数のタスクの各々のエンベロープ記述子を使用して、取得した複数のタスクを記録する(ログをとる)ことを含み得る。
【0075】
当該方法は、メディア処理エンティティ350によって実行されることができ、複数のタスクは、NBMPワークフローマネジャ320から取得され得る。
【0076】
図4は方法400のブロック例を示しているが、一部の実装において、方法400は、
図4に示したものに対して、追加のブロック、少ないブロック、異なるブロック、又は異なる構成のブロックを含み得る。加えて、あるいは代わりに、方法400のブロックのうちの2つ以上が並行して実行されてもよい。
【0077】
図5は、実施形態に従った、MPEG NBMPにおいてメディアコンテンツを処理する装置500の図である。
図5に示すように、装置500は、取得コード510、判定コード520、処理コード530、除去(パージ)コード540、及び記録(ログ)コード550を含む。
【0078】
取得コード510は、少なくとも1つのプロセッサに、メディアコンテンツを処理するための複数のタスクを取得させるように構成され、複数のタスクの各々が、複数のタスクのうちのそれぞれのタスクについてメッセージ識別子(ID)、メッセージ優先度、及び送信者の送信者IDを指し示すエンベロープ記述子を有する。
【0079】
判定コード520は、少なくとも1つのプロセッサに、取得した複数のタスクの中に繰り返しのタスクが存在するかを、取得した複数のタスクの各々のメッセージID及び送信者IDに基づいて判定させるように構成される。
【0080】
処理コード530は、少なくとも1つのプロセッサに、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しのタスクのうちの、繰り返しのタスクの各々のメッセージ優先度の中で最も高い優先度を持つ1つ、を用いてメディアコンテンツを処理させ、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクを用いてメディアコンテンツを処理させるように構成される。
【0081】
判定コード520は更に、少なくとも1つのプロセッサに、繰り返しのタスクのうちの1番目のもののメッセージIDが、繰り返しのタスクのうちの2番目のもののメッセージIDと同じであるかを判定させ、繰り返しのタスクのうちの1番目のもののメッセージIDが繰り返しのタスクのうちの2番目のもののメッセージIDと同じであると判定したことに基づいて、取得した複数のタスクの中に繰り返しのタスクが存在すると判定させるように構成され得る。
【0082】
判定コード520は更に、少なくとも1つのプロセッサに、繰り返しのタスクのうちの1番目のものの送信者IDが、繰り返しのタスクのうちの2番目のものの送信者IDと同じであるかを判定させ、繰り返しのタスクのうちの1番目のものの送信者IDが繰り返しのタスクのうちの2番目のものの送信者IDと同じであると判定したことに基づいて、取得した複数のタスクの中に繰り返しのタスクが存在すると判定させるように構成され得る。
【0083】
除去コード540は、少なくとも1つのプロセッサに、繰り返しのタスクが存在すると判定したことに基づいて、繰り返しタスクのうちの残りのものを取得した複数のタスクから除去させ、繰り返しタスクのうちの該除去した残りのものを使用してメディアコンテンツが処理されることがないようにするように構成される。
【0084】
処理コードは更に、少なくとも1つのプロセッサに、繰り返しのタスクが存在しないと判定したことに基づいて、取得した複数のタスクの各々のメッセージ優先度に基づく順序で取得した複数のタスクを使用して、メディアコンテンツを処理させるように構成され得る。
【0085】
記録コード550は、少なくとも1つのプロセッサに、取得した複数のタスクの各々のエンベロープ記述子を使用して、取得した複数のタスクを記録させるように構成される。
【0086】
当該装置は、メディア処理エンティティ350とすることができ、複数のタスクは、NBMPワークフローマネジャ320から取得される。
【0087】
以上の開示は、例示及び説明を提供するものであり、網羅的であること、又は開示されたままの形態に実装を限定することを意図するものではない。変更及び変形が、以上の開示に照らして可能であり、又は実装の実施から習得され得る。
【0088】
ここで使用されるとき、コンポーネントなる用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせとして広く解釈されることが意図される。
【0089】
明らかになることには、ここに記載されたシステム及び/又は方法は、様々な形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装され得る。これらのシステム及び/又は方法を実装するのに使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実装の限定となるものではない。従って、ここでは、システム及び/又は方法の動作及び挙動を、特定のソフトウェアコードを参照することなく記述しており、理解されることには、ここでの記載に基づくシステム及び/又は方法を実装するように、ソフトウェア及びハードウェアが設計され得る。
【0090】
複数の機構の組み合わせが請求項に記載され且つ/或いは明細書に開示されているとしても、それらの組み合わせは、可能な実装の開示を限定することを意図するものではない。実際、それらの機構のうち多くは、具体的には請求項に記載され且つ/或いは明細書に開示されたものではないように組み合わされることができる。以下に挙げられる各従属請求項は1つのクレームのみに直接的に従属することがあるが、可能な実装の開示は、各従属請求項を、請求項セット内のあらゆる他のクレームとの組み合わせで含む。
【0091】
ここで使用される如何なる要素、行為、又は命令も、そのように明示的に記載されない限り、重要又は必須であるとして解釈されるべきでない。また、ここで使用されるとき、冠詞“a”及び“an”は、1つ以上のアイテムを含むことを意図しており、“1つ以上の”と交換可能に使用され得る。さらに、ここで使用されるとき、用語“セット”は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムとの組み合わせなど)を含むことを意図しており、“1つ以上”と交換可能に使用され得る。1つのアイテムのみが意図される場合には、用語“1つの”又は類似の言葉が使用される。また、ここで使用されるとき、用語“持つ”、“有する”、“持っている”などは、オープンエンドの用語であることを意図している。さらに、“に基づく”という言い回しは、明示的に別の断りがない限り、“少なくとも部分的に基づく”を意味することを意図している。