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

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

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

特表2024-513062多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム
<>
  • 特表-多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム 図1
  • 特表-多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム 図2
  • 特表-多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム 図3
  • 特表-多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム 図4
  • 特表-多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-21
(54)【発明の名称】多次元メディアデータを多次元メディアセグメントに分割及びマージするための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240313BHJP
   G06F 8/41 20180101ALI20240313BHJP
【FI】
G06F9/50 150E
G06F8/41 130
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023560809
(86)(22)【出願日】2022-12-13
(85)【翻訳文提出日】2023-10-02
(86)【国際出願番号】 US2022052642
(87)【国際公開番号】W WO2023136899
(87)【国際公開日】2023-07-20
(31)【優先権主張番号】63/298,536
(32)【優先日】2022-01-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/073,048
(32)【優先日】2022-12-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【テーマコード(参考)】
5B081
【Fターム(参考)】
5B081CC32
(57)【要約】
方法は、多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化するステップと;セグメント化された多次元メディアストリームを、並列に処理することが可能な複数のサブストリームに分割するステップであって、複数のサブストリームの各々が、各サブストリーム内のセグメントを順序付けるために使用されるセグメントメタデータを含むステップと;複数のサブストリームの各々を並列に処理するステップと;出力セグメントに搬送されるセグメントメタデータを使用して複数のサブストリームを単一のストリームにマージするステップであって、単一のストリームが順序付けされたセグメントを含むステップと;を含む。
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化するステップと、
前記セグメント化された多次元メディアストリームを、並列に処理することが可能な複数のサブストリームに分割するステップであって、前記複数のサブストリームの各々は、各サブストリーム内のセグメントを順序付けるために使用されるセグメントメタデータを含むステップと、
前記複数のサブストリームの各々を並列に処理するステップと、
出力セグメントに搬送される前記セグメントメタデータを使用して前記複数のサブストリームを単一のストリームにマージするステップであって、前記単一のストリームは順序付けされたセグメントを含むステップと、
を含む、方法。
【請求項2】
それぞれのシーケンスベクトルを使用して前記多次元メディアの複数のセグメントを表現するステップを更に含み、前記シーケンスベクトルは前記セグメントメタデータを含み、前記セグメントメタデータは、(1)開始ベクトル、長さベクトル及びスケーリングベクトルと、(2)開始コードと、のうちの一方を含む、
請求項1に記載の方法。
【請求項3】
前記複数のサブストリームをマージする前に、各サブストリームについて、前記多次元メディアの複数のセグメントをシーケンスベクトルの昇順に順序付けするステップを更に含む、
請求項1に記載の方法。
【請求項4】
前記複数のサブストリームをマージした後に、各サブストリームについて、前記多次元メディアの複数のセグメントをシーケンスベクトルの昇順に順序付けするステップを更に含む、
請求項1に記載の方法。
【請求項5】
前記多次元メディアの複数のセグメントの各々は、セグメント位置メタデータ又はセグメントシーケンスメタデータを含む、
請求項2に記載の方法。
【請求項6】
前記開始コードは、前記多次元メディアの複数のセグメントのすべてにおいて同一かつ一意である、
請求項2に記載の方法。
【請求項7】
前記複数のサブストリーム内の前記多次元メディアの複数のセグメントは、複数の入力セグメントと複数の出力セグメントとを含み、前記複数の出力セグメントの各々は、前記複数のサブストリーム内の前記複数の入力セグメントのうちの1つと正確に同一である、
請求項1に記載の方法。
【請求項8】
装置であって、
プログラムコードを記憶するよう構成される少なくとも1つのメモリと、
前記プログラムコードを読み出し、前記プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサと、
を備え、前記プログラムコードは、
前記少なくとも1つのプロセッサに、多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化させるよう構成されるセグメント化コードと、
前記少なくとも1つのプロセッサに、前記セグメント化された多次元メディアストリームを、並列に処理することが可能な複数のサブストリームに分割させるよう構成されるスプリットコードであって、ここで、前記複数のサブストリームの各々は、各サブストリーム内のセグメントを順序付けるために使用されるセグメントメタデータを含む、スプリットコードと、
前記少なくとも1つのプロセッサに、前記複数のサブストリームの各々を並列に処理させるよう構成される処理コードと、
前記少なくとも1つのプロセッサに、出力セグメントに搬送される前記セグメントメタデータを使用して前記複数のサブストリームを単一のストリームにマージするよう構成されるマージコードであって、ここで、前記単一のストリームは順序付けされたセグメントを含む、マージコードと、
を含む、装置。
【請求項9】
前記プログラムコードは、前記少なくとも1つのプロセッサに、それぞれのシーケンスベクトルを使用して前記多次元メディアの複数のセグメントを表現させるよう構成される表現コードを更に含み、前記シーケンスベクトルは前記セグメントメタデータを含み、前記セグメントメタデータは、(1)開始ベクトル、長さベクトル及びスケーリングベクトルと、(2)開始コードと、のうちの一方を含む、
請求項8に記載の装置。
【請求項10】
前記プログラムコードは、前記少なくとも1つのプロセッサに、前記複数のサブストリームをマージする前に、各サブストリームについて、前記多次元メディアの複数のセグメントをシーケンスベクトルの昇順に順序付けさせるよう構成される第1順序付けコードを更に含む、
請求項8に記載の装置。
【請求項11】
前記プログラムコードは、前記少なくとも1つのプロセッサに、前記複数のサブストリームをマージした後に、各サブストリームについて、前記多次元メディアの複数のセグメントをシーケンスベクトルの昇順に順序付けさせるよう構成される第2順序付けコードを更に含む、
請求項8に記載の装置。
【請求項12】
前記多次元メディアの複数のセグメントの各々は、セグメント位置メタデータ又はセグメントシーケンスメタデータを含む、
請求項9に記載の装置。
【請求項13】
前記開始コードは、前記多次元メディアの複数のセグメントのすべてにおいて同一かつ一意である、
請求項9に記載の装置。
【請求項14】
前記複数のサブストリーム内の前記多次元メディアの複数のセグメントは、複数の入力セグメントと複数の出力セグメントとを含み、前記複数の出力セグメントの各々は、前記複数のサブストリーム内の前記複数の入力セグメントのうちの1つと正確に同一である、
請求項8に記載の装置。
【請求項15】
少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、請求項1乃至7のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年1月11日に出願された米国特許出願第63/298,536号及び2022年12月1日に出願された米国特許出願第18/073,048号に基づき、これらに対する優先権を主張するものであり、これらの開示内容は、参照によりその全体が本明細書に組み込まれる。
【0002】
技術分野
本開示は、多次元メディアデータを、各々が独立に処理され得るセグメントに分割及びマージすることをサポートするために、一次元NBMPスプリッタ及びマージャ関数に対する拡張を提供する。
【背景技術】
【0003】
ネットワークベースのメディア処理(NBMP、network-based media processing)フレームワークは、メディア処理のためにデジタルネットワークを介して接続されるエンティティ間のデータフォーマットとアプリケーションプログラミングインタフェース(API)の両方を含む、インタフェースを定義する。NBMP標準は、1次元メディアセグメントの独立の処理のためのツールのセットを定義する。このフレームワークは、メディア処理パイプラインの動的な作成と、処理されたメディアデータ及びメタデータへのリアルタイム又は遅延方式でのアクセスを可能にする。ネットワーク及びクラウドプラットフォームは、様々なアプリケーションを実行するために使用される。メディアが多次元であるとき、メディアデータを複数の次元にセグメント化する必要があり得る。並列処理が必要とされる場合、そのようなメディアデータは分割(split)され、並列パスで処理され、再度マージされる必要がある。現在のNBMPスプリッタ及びマージャ関数は、多次元セグメントメタデータをサポートしていない。
【発明の概要】
【0004】
以下は、このような実施形態の基本的な理解を提供するために、本開示の1つ以上の実施形態の簡略化された要約を提示する。この要約は、すべての意図された実施形態の広範な概要ではなく、すべての実施形態の主要な又は重要な要素を特定することも、いずれかの又はすべての実施形態の範囲を画定することも意図されていない。この要約の唯一の目的は、本開示の1つ以上の実施形態のいくつかの概念を、後に提示されるより詳細な説明への序文として簡略化された形式で提示することである。
【0005】
いくつかの実施形態によると、少なくとも1つのプロセッサによって実行される方法が提供される。本方法は、多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化するステップを含む。本方法は、セグメント化された多次元メディアストリームを、並列に処理することが可能な複数のサブストリームに分割するステップを更に含み、ここで、複数のサブストリームの各々は、各サブストリーム内のセグメントを順序付けるために使用されるセグメントメタデータを含む。本方法は、複数のサブストリームの各々を並列に処理するステップと、出力セグメントに搬送されるセグメントメタデータを使用して複数のサブストリームを単一のストリームにマージするステップを更に含み、ここで、単一のストリームは順序付けされたセグメントを含む。
【0006】
いくつかの実施形態によると、装置は、プログラムコードを記憶するよう構成される少なくとも1つのメモリと、プログラムコードを読み出し、プログラムコードによって指示されるように動作するよう構成される少なくとも1つのプロセッサとを含む。プログラムコードは、少なくとも1つのプロセッサに、多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化させるよう構成される、セグメント化コードを含む。プログラムコードは、少なくとも1つのプロセッサに、セグメント化された多次元メディアストリームを、並列に処理することが可能な複数のサブストリームに分割させるよう構成されるスプリットコード(splitting code)を更に含み、ここで、複数のサブストリームの各々は、各サブストリーム内のセグメントを順序付けるために使用されるセグメントメタデータを含む。プログラムコードは、少なくとも1つのプロセッサに、複数のサブストリームの各々を並列に処理させるよう構成される処理コードを更に含む。プログラムコードは、少なくとも1つのプロセッサに、出力セグメントに搬送されるセグメントメタデータを使用して複数のサブストリームを単一のストリームにマージするよう構成されるマージコードを更に含み、ここで、単一のストリームは順序付けされたセグメントを含む。
【0007】
いくつかの実施形態によると、非一時的コンピュータ読取可能記憶媒体は、少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化させる命令を記憶する。命令は更に、少なくとも1つのプロセッサに、セグメント化された多次元メディアストリームを、並列に処理することが可能な複数のサブストリームに分割させ、ここで、複数のサブストリームの各々は、各サブストリーム内のセグメントを順序付けるために使用されるセグメントメタデータを含む。命令は更に、少なくとも1つのプロセッサに、多次元メディアセグメントで搬送されるセグメントメタデータを使用して複数のサブストリームの各々を並列に処理させる。命令は更に、少なくとも1つのプロセッサに、出力セグメントに搬送されるセグメントメタデータを使用して複数のサブストリームを単一のストリームにマージさせ、ここで、単一のストリームは順序付けされたセグメントを含む。
【0008】
追加の実施形態は、以下の説明に記載され、部分的には以下の説明から明らかになり、かつ/又は本開示の提示された実施形態の実施によって学習され得る。
【図面の簡単な説明】
【0009】
本開示の実施形態の上記及び他の態様、特徴及び側面は、添付の図面とともになされる以下の説明から明らかになるであろう。
【0010】
図1】いくつかの実施形態による、本明細書で開示される方法、装置及びシステムが実装され得る環境の図である。
【0011】
図2】いくつかの実施形態による、1つ以上のデバイスの例示的な構成要素のブロック図である。
【0012】
図3】いくつかの実施形態による、NBMPシステムのブロック図である。
【0013】
図4】いくつかの実施形態による、セグメントの並列処理のためのワークフローの図である。
【0014】
図5】いくつかの実施形態による、NBMPでメディアコンテンツを処理するためのフローチャートである。
【発明を実施するための形態】
【0015】
例示的な実施形態の以下の詳細な説明は、添付図面を参照する。異なる図面における同じ参照番号は、同じ又は同様の要素を識別し得る。
【0016】
前述の開示は、例示及び説明を提供するが、網羅的であることも、あるいは開示された正確な形態に実装を限定することも意図されていない。上記開示に照らして修正及び変形が可能であり、あるいは実装の実施から修正及び変形が得られることがある。さらに、1つの実施形態の1つ以上の特徴又は構成要素が、別の実施形態(又は別の実施形態の1つ以上の特徴)に組み込まれてもよく、あるいは別の実施形態と組み合わされてもよい。さらに、以下に提供されるフローチャート及び動作の説明において、1つ以上の動作が省略されてもよく、1つ以上の動作が追加されてもよく、1つ以上の動作が(少なくとも部分的に)同時に実行されてもよく、1つ以上の動作の順序を切り替えてもよいことが理解される。
【0017】
本明細書に記載されるシステム及び/又は方法は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組合せの異なる形態で実装されてもよいことが明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく、本明細書で記載されたが、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0018】
特徴の特定の組合せが特許請求の範囲に記載され、かつ/又は明細書に開示されているとしても、これらの組合せは、可能な実装の開示を限定するように意図されていない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない方法及び/又は明細書に開示されていない方法で組み合わされてもよい。以下に列挙された各従属請求項は、1つの請求項のみに直接従属することがあるが、可能な実装の開示は、各従属請求項をクレームセット内のすべての他の請求項と組み合わせて含む。
【0019】
本明細書で使用されるいかなる要素、行為又は指示も、そのように明示的に記載されない限り、本質的又は不可欠であると解釈されるべきではない。また、本明細書で使用されるとき、「a」及び「an」という冠詞は、1つ以上の項目を含むように意図され、「1つ以上」と互換的に使用され得る。1つの項目のみが意図される場合、用語「1つ」又は類似の言語が使用される。また、本明細書で使用されるとき、「有する(has)」、「有する(have)」、「有する(having)」、「含む(include)」、「含む(including)」等の用語は、オープンエンドの用語であるように意図される。さらに、「に基づく」というフレーズは、明示的に別段の記載がない限り、「少なくとも部分的に基づく」を意味するように意図される。さらに、「[A]及び[B]のうちの少なくとも1つ」又は「[A]又は[B]のうちの少なくとも1つ」等の表現は、Aのみ、Bのみ又はAとBの両方を含むものと理解されるべきである。
【0020】
本明細書全体を通して「一実施形態」、「実施形態」又は類似の言語への参照は、示される実施形態に関連して説明される特定の特徴、構造又は特性が、本解決策の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通じて「一実施形態において」、「実施形態において」及び類似の言語は、すべて同じ実施形態を参照することがあるが、必ずしもそうではない。
【0021】
さらに、本開示の説明される特徴、利点及び特性は、1つ以上の実施形態において任意の適切な方法で組み合わされてよい。当業者は、本明細書の説明に照らして、本開示が特定の実施形態の具体的な特徴又は利点のうちの1つ以上を伴わずに実施されてもよいことを認識するであろう。他の例では、本開示のすべての実施形態に存在しないことがある、追加の特徴及び利点が特定の実施形態において認識され得る。
【0022】
図1は、実施形態による、本明細書に記載される方法、装置及びシステムが実装され得る環境100の図である。図1に示されるように、環境100は、ユーザデバイス110、プラットフォーム120及びネットワーク130を含んでよい。環境100のデバイスは、有線接続、無線接続又は有線接続と無線接続の組合せを介して相互接続し得る。
【0023】
ユーザデバイス110は、プラットフォーム120に関連付けられる情報を受信、生成、記憶、処理及び/又は提供することができる1つ以上のデバイスを含む。例えばユーザデバイス110は、コンピューティングデバイス(例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバ等)、携帯電話(例えばスマートフォン、無線電話等)、ウェアラブルデバイス(例えば一対のスマートグラス又はスマートウォッチ)又は同様のデバイスを含み得る。いくつかの実施形態では、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/又はプラットフォーム120に情報を送信し得る。
【0024】
プラットフォーム120は、本明細書の他の箇所に記載されるような1つ以上のデバイスを含む。いくつかの実装では、プラットフォーム120は、クラウドサーバ又は一群のクラウドサーバを含み得る。いくつかの実装では、プラットフォーム120は、特定のニーズに応じてソフトウェア構成要素がスワップイン又はスワップアウトされ得るようにモジュール式に設計され得る。したがって、プラットフォーム120は、異なる使用のために容易かつ/又は迅速に再構成され得る。
【0025】
いくつかの実装では、図示されるように、プラットフォーム120は、クラウドコンピューティング環境122においてホストされ得る。特に、本明細書で説明される実装は、プラットフォーム120がクラウドコンピューティング環境122内でホストされているものとして説明するが、いくつかの実装では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部で実装されてもよい)、あるいは部分的にクラウドベースであってもよい。
【0026】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的な位置及び構成に関するエンドユーザ(例えばユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージ等のサービスを提供し得る。図示されるように、クラウドコンピューティング環境122は、一群のコンピューティングリソース124(集合的に「(複数の)コンピューティングリソース124」と称し、個別に「(単数の)コンピューティングリソース124」と称する)を含み得る。
【0027】
コンピューティングリソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、あるいは他のタイプの計算及び/又は通信デバイスを含む。いくつかの実装では、コンピューティングリソース124はプラットフォーム120をホストし得る。クラウドリソースは、コンピューティングリソース124内で動作する計算インスタンス(compute instances)、コンピューティングリソース124内で提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイス等を含み得る。いくつかの実装では、コンピューティングリソース124は、有線接続、無線接続又は有線接続と無線接続の組合せを介して他のコンピューティングリソース124と通信し得る。
【0028】
図1に更に示されるように、コンピューティングリソース124は、1つ以上のアプリケーション(「APPs」)124-1、1つ以上の仮想マシン(「VMs」)124-2、仮想化ストレージ(「VSs」)124-3、1つ以上のハイパーバイザ(「HYPs」)124-4等のような一群のクラウドリソースを含む。
【0029】
アプリケーション124-1は、ユーザデバイス110及び/又はプラットフォーム120に提供され得るか又はこれらによってアクセスされ得る1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上にソフトウェアアプリケーションをインストールして実行する必要性を排除し得る。例えばアプリケーション124-1は、プラットフォーム120に関連付けられるソフトウェア及び/又はクラウドコンピューティング環境122を介して提供することができる任意の他のソフトウェアを含み得る。いくつかの実装では、あるアプリケーション124-1は、仮想マシン124-2を介して1つ以上の他のアプリケーション124-1へ情報を送信し/他のアプリケーション124-1から情報を受信し得る。
【0030】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えばコンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、該仮想マシン124-2によるいずれかの実マシンへの使用及び対応度に応じて、システム仮想マシン又はプロセス仮想マシンであり得る。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは、単一のプログラムを実行してよく、単一のプロセスをサポートし得る。いくつかの実施形態では、仮想マシン124-2は、ユーザ(例えばユーザデバイス110)の代わりに動作してよく、データ管理、同期又は長期間データ転送のようなクラウドコンピューティング環境122のインフラストラクチャを管理し得る。
【0031】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステム又はデバイス内で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。いくつかの実装では、ストレージシステムのコンテキスト内において、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化は、物理ストレージ又は異種構造に関係なくストレージシステムがアクセスされ得るように、物理ストレージからの論理ストレージの抽象化(又は分離)を指すことがある。この分離は、ストレージシステムの管理者が、エンドユーザのために該管理者がストレージを管理する方法に柔軟性を持たせることを可能にし得る。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶されている場所との間の依存関係を排除し得る。これにより、ストレージ使用、サーバ統合及び/又は無停止のファイル移行の性能の最適化が可能になり得る。
【0032】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば「ゲストオペレーティングシステム」)が、コンピューティングリソース124のようなホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示してよく、ゲストオペレーティングシステムの実行を管理し得る。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有し得る。
【0033】
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えばネットワーク130は、セルラネットワーク(例えば第5世代(5G)ネットワーク、長期進化(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワーク等)、パブリックランドモバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク等及び/又はこれら又は他のタイプのネットワークの組合せを含み得る。
【0034】
図1に示されるデバイス及びネットワークの数及び配置は、一例として提供される。実際には、図1に示されるものよりも追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは異なるように配置されたデバイス及び/又はネットワークが存在してもよい。さらに、図1に示される2つ以上のデバイスが、単一デバイス内に実装されてもよく、あるいは図1に示される単一デバイスが、複数の分散デバイスとして実装されてもよい。追加又は代替的に、環境100のデバイス(例えば1つ以上のデバイス)のセットは、環境100のデバイスの別のセットによって実行されるものとして説明される1つ以上の機能を実行してもよい。
【0035】
図2は、図1の1つ以上のデバイスの例示的な構成要素のブロック図である。デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応し得る。図2に示されるように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶構成要素240、入力構成要素250、出力構成要素260及び通信インタフェース270を含み得る。
【0036】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組合せで実装される。プロセッサ220は、中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は別のタイプの処理構成要素である。いくつかの実装では、プロセッサ220は、機能を実行するようにプログラムされることができる1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)及び/又はプロセッサ220による使用のための情報及び/又は命令を記憶する別のタイプの動的又は静的ストレージデバイス(例えばフラッシュメモリ、磁気メモリ及び/又は光学メモリ)を含む。
【0037】
記憶構成要素240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば記憶構成要素240は、対応するドライブとともに、ハードディスク(例えば磁気ディスク、光学ディスク、光磁気ディスク及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は別のタイプの非一時的コンピュータ読取可能媒体を含み得る。
【0038】
入力構成要素250は、デバイス200がユーザ入力を介するなどして情報を受け取ることを可能にする構成要素(例えばタッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ及び/又はマイクロフォン)を含む。追加又は代替的に、入力構成要素250は、情報を感知するためのセンサ(例えば全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ及び/又はアクチュエータ)を含み得る。出力構成要素260は、デバイス200から出力情報を提供する構成要素(例えばディスプレイ、スピーカ及び/又は1つ以上の発光ダイオード(LED))を含む。
【0039】
通信インタフェース270は、デバイス200が、有線接続、無線接続又は有線接続と無線接続の組合せを介するなどして他のデバイスと通信することを可能にするトランシーバ様構成要素(例えばトランシーバ及び/又は別個の受信機と送信機)を含む。通信インタフェース270は、デバイス200が別のデバイスから情報を受信し、かつ/又は別のデバイスに情報を提供することを可能にし得る。例えば通信インタフェース270は、Ethernet(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、ユニバーサルシリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラネットワークインタフェース等を含み得る。
【0040】
デバイス200は、本明細書に記載される1つ以上のプロセスを実行し得る。デバイス200は、メモリ230及び/又は記憶構成要素240のような非一時的コンピュータ読取可能媒体によって記憶されたソフトウェア命令を実行するプロセッサ220に応答して、これらのプロセスを実行し得る。コンピュータ読取可能媒体は、本明細書では、非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理的ストレージデバイス内のメモリスペース又は複数の物理ストレージデバイスにまたがって広がるメモリ空間を含む。
【0041】
ソフトウェア命令は、別のコンピュータ読取可能媒体から、又は通信インタフェース270を介して別のデバイスから、メモリ230及び/又は記憶構成要素240に読み出されてもよい。実行されると、メモリ230及び/又は記憶構成要素240に記憶されたソフトウェア命令は、プロセッサ220に、本明細書に記載された1つ以上のプロセスを実行させ得る。追加又は代替的に、ハードワイヤード回路を、本明細書に記載された1つ以上のプロセスを実行するためのソフトウェア命令の代わりに又は組み合わせて使用してもよい。したがって、本明細書に記載される実施形態は、ハードウェア回路とソフトウェアの特定の組合せに限定されない。
【0042】
図2に示される構成要素の数及び配置は、一例として提供される。実際には、デバイス200は、図2に示されるものよりも追加の構成要素、より少ない構成要素、異なる構成要素又は異なるように配置された構成要素を含んでもよい。追加又は代替的に、デバイス200の構成要素(例えば1つ以上の構成要素)のセットが、デバイス200の構成要素の別のセットによって実行されるものとして説明される1つ以上の機能を実行してもよい。
【0043】
いくつかの実施形態では、NBMPシステム300が提供される。図3を参照すると、NBMPシステム300は、NBMPソース310、NBMPワークフローマネージャ320、関数リポジトリ330、1つ以上のメディア処理エンティティ350、メディアソース360及びメディアシンク(media sink)370を備える。
【0044】
NBMPソース310は、第三者エンティティから命令を受け取ることがあり、NBMPワークフローを介してNBMPワークフローマネージャ320と通信してよく、関数発見API391を介して関数リポジトリ330と通信してよい。例えばNBMPソース310は、ワークフロー記述文書(WDD、workflow description document)をNBMPワークフローマネージャ320に送信してよく、関数リポジトリ330に記憶された関数(functions)の関数記述(function description)を読み出してよい。これらの関数は、例えばメディア復号、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンディング、後処理及び符号化の関数のような、関数リポジトリ330のメモリに記憶されたメディア処理関数であってよい。NBMPソース310は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサにNBMPソース310の機能(functions)を実行させるよう構成されたコードを記憶するメモリとを備えるか又はこれらによって実装されてよい。
【0045】
NBMPソース310は、ワークフロー記述文書を送信することにより、1つ以上のメディア処理エンティティ350によって実行されるタスク352を含む、ワークフローを作成するようにNBMPワークフローマネージャ320に要求してよく、ここで、ワークフロー記述文書は、各々がいくつかのパラメータを有し得る、いくつかの記述子を含み得る。
【0046】
例えばNBMPソース310は、関数リポジトリ330に記憶された関数を選択し、ワークフロー記述文書をNBMPワークフローマネージャ320に送信してよく、このワークフロー記述文書は、入力及び出力データ、必要な関数及びワークフローの要件のような記述詳細についての様々な記述子を含む。ワークフロー記述文書は、タスク記述のセットと、メディア処理エンティティ350のうちの1つ以上によって実行されるタスク352の入力及び出力の接続マップとを含み得る。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受信すると、NBMPワークフローマネージャ320は、関数の名前に基づいてタスクをインスタンス化し、接続マップに従ってタスクを接続することによって、ワークフローを作成し得る。
【0047】
代替的又は追加的に、NBMPソース310は、キーワードのセットを使用することによって、ワークフローを作成するようにNBMPワークフローマネージャ320に要求し得る。例えばNBMPソース310は、NBMPワークフローマネージャ320が関数リポジトリ330に記憶された適切な関数を見つけるために使用し得るキーワードのセットを含み得るワークフロー記述文書を、NBMPワークフローマネージャ320に送信し得る。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受け取ると、NBMPワークフローマネージャ320は、ワークフロー記述文書の処理記述子(Processing Descriptor)で指定され得るキーワードを使用して適切な関数を検索することによって、ワークフローを作成し、ワークフロー記述文書内の他の記述子を使用してタスクをプロビジョニングし、それらを接続してワークフローを作成する。
【0048】
NBMPワークフローマネージャ320は、関数発見API391と同じ又は異なるAPIであり得る関数発見API393を介して関数リポジトリ330と通信してよく、API394(例えばNBMPタスクAPI)を介してメディア処理エンティティ350のうちの1つ以上と通信してよい。NBMPワークフローマネージャ320は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサにNBMPワークフローマネージャ320の機能を実行させるように構成されたコードを記憶するメモリとを備えるか又はこれらによって実装されてよい。
【0049】
NBMPワークフローマネージャ320は、API394を使用して、1つ以上のメディア処理エンティティ350によって実行可能なワークフローの1つ以上のタスク352をセットアップし、構成し、管理し、モニタし得る。いくつかの実施形態では、NBMPワークフローマネージャ320は、API394を使用して、タスク352を更新し、破棄し得る。ワークフローのタスク352を構成し、管理し、モニタするために、NBMPワークフローマネージャ320は、要求のようなメッセージをメディア処理エンティティ350のうちの1つ以上に送信してよく、ここで、各メッセージはいくつかの記述子を有し、各記述子はいくつかのパラメータを有する。タスク352は各々、メディア処理関数354と、メディア処理関数354のための構成(configurations)353とを含み得る。
【0050】
いくつかの実施形態では、タスクのリストを含まない(例えばタスクのリストの代わりにキーワードのリストを含む)ワークフロー記述文書をNBMPソース310から受け取った後、NBMPワークフローマネージャ320は、ワークフロー記述文書内のタスクの記述に基づいてタスクを選択し、関数発見API393を介して関数リポジトリ330を検索して、現在のワークフローのためのタスク352として実行すべき適切な関数を見つけ得る。例えばNBMPワークフローマネージャ320は、ワークフロー記述文書内で提供されたキーワードに基づいてタスクを選択し得る。NBMPソース310によって提供されるキーワード又はタスク記述のセットを使用することによって適切な関数が識別された後、NBMPワークフローマネージャ320は、API394を使用することによってワークフロー内の選択されたタスクを構成し得る。例えばNBMPワークフローマネージャ320は、NBMPソースから受け取った情報から構成データを抽出し、その構成データに基づいてタスク352を構成し得る。
【0051】
1つ以上のメディア処理エンティティ350は、メディアソース360からメディアコンテンツを受け取って、NBMPワークフローマネージャ320によって作成された、タスク352を含むワークフローに従ってメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク370に出力するように構成され得る。1つ以上のメディア処理エンティティ350は各々、少なくとも1つのプロセッサと、少なくともプロセッサにメディア処理エンティティ350の機能を実行させるように構成されたコードを記憶するメモリとを備えるか又はこれらによって実装されてよい。
【0052】
メディアソース360は、メディアを記憶するメモリを含んでよく、NBMPソース310と一体化されても又はNBMPソース310と別個であってもよい。いくつかの実施形態では、NBMPワークフローマネージャ320は、ワークフローが準備されたときにNBMPソース310に通知してよく、メディアソース360は、ワークフローが準備されたという通知に基づいて、メディアコンテンツをメディア処理エンティティ350のうちの1つ以上に送信してよい。
【0053】
メディアシンク370は、少なくとも1つのプロセッサと、1つ以上のメディア処理エンティティ350によって処理されたメディアを表示するように構成された少なくとも1つのディスプレイとを含むか又はこれらによって実装されてよい。
【0054】
上述したように、NBMPソース310からNBMPワークフローマネージャ320へのメッセージ(例えばワークフローの作成を要求するためのワークフロー記述文書)と、NBMPワークフローマネージャ320から1つ以上のメディア処理エンティティ350への(例えばワークフローを実行させるための)メッセージは、いくつかの記述子を含んでよく、各記述子はいくつかのパラメータを有し得る。いくつかの例では、APIを使用するNBMPシステム300の任意の構成要素間の通信は、いくつかの記述子を含んでよく、各記述子はいくつかのパラメータを有し得る。
【0055】
実施形態は、クラウドプラットフォーム上で実行されるワークフローにおける非必須(nonessential)の入力、出力及びタスクを識別及びシグナリングする方法に関連し得る。
【0056】
ワークフローの必須出力は、ワークフローが適切に動作していると見なされるためのデータを生成しなければならないワークフローの出力であり得る。ワークフローの必須入力は、ワークフローの必須出力を作成するためにワークフローについて処理されなければならない入力であり得る。適切に動作するワークフローは、すべての必須入力を処理し、すべての必須出力を生成するワークフローであり得る。ワークフローの必須タスクは、適切に動作するのに必要なタスクであり、かつ適切に動作するワークフローに必要とされるデータを処理するために必要なタスクであり得る。例えば必須タスクは、必須入力を処理し、かつ/又は必須出力を生成するタスクであり得る。いくつかの実施形態において、必須入力は、必須タスクが動作するために必要とされる入力であってよく、必須出力は、必須タスクのための必須入力として必要とされる出力又はワークフロー全体のための出力として必要とされる出力であり得る。非必須入力は、ワークフローの必須出力を生成するためにワークフローによって必要とされない入力であり得る。例えばワークフローは、必須入力のすべてが提供されている場合、非必須入力がまったく提供されていない場合であっても、必須出力のすべてを生成することがある。非必須タスクは、ワークフローに含まれるが、必須タスクではないタスクであり得る。例えば非必須タスクは、非必須入力を処理し、非必須出力を生成し得る。
【0057】
NBMP標準は、スプリッタ及びマージャ関数テンプレートを定義する。図4は、セグメントの並列処理のためにNBMPスプリッタ/マージャ関数を使用するこのプロセスの例に対応するワークフロー400の図を示す。図4において、タスクT410は、並列に実行されるタスクTのn個のインスタンスに変換され得る。
【0058】
いくつかの実施形態では、メディアストリームは連続的である。スプリッタ420は、メディアストリームをN個のメディアサブストリームに変換し得る。各サブストリームは、T430A~Cのインスタンスによって処理されてよく、次いで、サブストリームはマージャ440において互いにインタリーブされ、タスクT410出力ストリームと等価な出力450を生成する。1:Nスプリッタ及びN:1マージャ関数はセグメント境界に作用する。各セグメントは、開始、持続期間及び長さのメタデータ、あるいは開始コードとそれに関連付けられるシーケンス番号を有し得る。セグメントは独立であるので、サブストリームは、タスクT410によって処理されるという点で互いに独立している。タスクT,...,TN-1は、セグメントを同時に処理する必要はない。セグメント及びサブストリームは独立であり得るので、タスクT410の各インスタンスはその速度で実行し得る。しかしながら、現在のNBMP標準は、メディアデータの1-Dセグメント化のみしか扱っていない。
【0059】
現在のNBMP標準は、セグメントメタデータについて次のフォーマットを定義している。各セグメントは以下の要件を満たし得る:
A.サンプルの連続的なセット
B.タイムスケールTのスケールにおけるDの最大持続期間。ここで、D及びTは構成パラメータである。
【0060】
各セグメントは、以下のメタデータのうちの1つを使用し得る:
1.タイミングメタデータ:
A.時間スケールtにおける開始時間s
B.時間スケールt=T
C.時間スケールtにおける持続期間d
D.長さl(バイト)
2.又はシーケンスメタデータ:
A.すべての他のセグメントにおいて同一かつ一意の開始コード
B.昇順のシーケンス番号
【0061】
両方の場合において、メディアは一次元(例えば典型的には時間)においてのみセグメント化される。しかしながら、メディア信号は多次元である傾向がある。
【0062】
本開示は、多次元メタデータを有するセグメントの分割及びマージをサポートするようにスプリッタ及びマージャ関数を拡張する。
【0063】
以下の定義が使用され得る:
- Cは、M次元のベクトル[c,c,...,cM-1]であり、要素ciはインデックスiを有し、ここで、インデックスi+1はインデックスiにネストされ、ベクトルのインデックスiの1インクリメントは、インデックスi+1,i+2,...,M-1、ここで0≦i<Mにおけるいずれかのインクリメントよりも大きい増分と考えられることを意味する。
- 次元Mの多次元セグメントは、点=[s,s,...,sM-1]及び長さ=[d,d,...,dM-1]で始まる空間内のサンプルに関する情報を表すセグメントとして定義されてよく、ここでs及びdは負でない整数である。非整数値が必要とされる場合、ベクトル=[t,t,...,tM-1]は次元iのスケール係数(scale factor)tを表し、ここで、次元iにおける実際の開始点と長さは、それぞれs/t及びd/tであり、ここでtは正の整数である。
【0064】
実施形態では、メディアストリームのすべてのセグメントは、以下のメタデータのうちの1つを有し得る:
1.セグメント位置データ:
a.スケーリングベクトル=[t,t,...,tM-1]、SとDに対するスケール係数(scale factors)
b.単位tで各インデックスsを有するM次元空間におけるメディアセグメントの開始点を表す開始ベクトル=[s,s,...,sM-1
c.単位tで各インデックスdを有するM次元空間においてメディアセグメントがカバーするハイパー空間を表す長さベクトル=[d,d,...,dM-1
d.バイト単位のセグメントLのサイズ
2.セグメントシーケンスデータ:
a.各インデックスnを有するM次元空間におけるメディアセグメントのシーケンスを表すシーケンスベクトル=[n,n,...,nM-1
b.開始コードC、すべてのセグメントが開始する一意のコードであり、該コードはいずれのセグメントの途中でも繰り返されない。
c.バイト単位のセグメントLのサイズ
【0065】
スプリッタ関数は、多次元入力を複数の多次元出力に分割してよく、以下の要件を有するものとする:
●1つの入力とN個の出力のFIFOバッファ。ここで、Nは分割の数についての構成パラメータである。
●入力:
○各入力セグメントは、各々が、以下の要件を満たすものとする:
■スケール=[(T,T,...,TM-1]のスケールにおける=[D,D,...,DM-1]の最大サイズ。ここでD及は、関数の構成で設定される。
■以下のメタデータ及び制約のうちの1つを含む:
●位置メタデータ:
○スケールベクトル=[t,t,...,tM-1]における開始位置=[s,s,...,sM-1]。ここで、数sはtにおいてスケールされる。
○スケール
○スケールにおける長さ=[d,d,...,dM-1
○バイトサイズL(バイト)
●又はシーケンスメタデータ:
○すべての他のセグメントにおいて同一かつ一意の開始コード
○セグメントの順序(order)とともに増加するシーケンスベクトル=[n,n,...,nM-1
■他の入力セグメントと重複しないサンプル
○入力セグメントは昇順であるものとする。
●出力:
○すべての出力バッファにおけるメディアストリームは常に、ゼロ又はそれ以上の出力セグメントで構成される。各出力セグメントは、以下の要件を満たすものとする:
■ただ1つの入力セグメントと正確に同一
■以下のメタデータ及び制約のうちの1つを含む:
●位置メタデータ:
○スケールベクトル=[t,t,...,tM-1]における開始位置=[s,s,...,sM-1]。ここで、数sはtにおいてスケールされる。
○スケール
○スケールにおける長さ=[d,d,...,dM-1
○バイトサイズL(バイト)
●又はシーケンスメタデータ:
○すべての他のセグメントにおいて同一かつ一意の開始コード
○セグメントの順序とともに増加するシーケンスベクトル=[n,n,...,nM-1
○すべての出力バッファのすべての出力セグメントの集合は一緒に、処理された入力セグメント全体をカバーするものとする(例えば入力のサンプルは出力セグメントの集合から除外されない)。
●分割プロセスは次のように起こる:入力におけるN個の連続するセグメントg,g,...,gN-1の各々が、(i番目のセグメントgを出力Oに移動させることによって)この特定の順序で出力バッファO,O,...,ON-1のうちの1つに移動される。
●各出力バッファはセグメントの昇順に並べ替えられる。
【0066】
共通ヘッダを有する場合、スプリッタはすべての単一の出力においてそれを繰り返すものとする。メディアフォーマットは、ストリームによって表わされるコンテンツにおけるいかなるパラメータ変化にも関わらず、そのストリームの開始時に同じバイトシーケンスの使用を必要とすることがある。固定され、変化しないバイトのこのシーケンスは、そのメディアフォーマットの共通ヘッダ(Common Header)と呼ばれる。共通ヘッダはゼロレングスである。スプリッタでは、入力ストリームが準拠している特定のメディアフォーマットへの出力メディアストリームの準拠性を維持するために、すべての単一の出力に共通ヘッダを追加する必要がある。共通ヘッダはメディアの長さを記述しないので、共通ヘッダを含むセグメントはゼロレングスである。したがって、タイミングメタデータの場合、任意のストリームの最初のセグメントがゼロレングスであれば、そのセグメントは、そのストリームの共通ヘッダと見なされ、スプリッタはこのプロパティを使用して共通ヘッダセグメントを識別することができる。共通ヘッダが入力に存在しない(例えば最初のセグメントが非ゼロレングスである)場合、スプリッタは出力のいずれにもいずれの共通ヘッダも追加する必要はなく、入力の最初のセグメントはその入力ストリーム内のいずれかの他のメディアセグメントと同様に扱われる。シーケンスメタデータの場合、繰り返しヘッダ(repeat-header)フラグが構成において設定されている場合、シーケンス番号0のセグメントは共通ヘッダセグメントである。
1.時間セグメント(temporal segments)の場合、m=M=1であり、d及びtはそれぞれ持続期間と時間スケールを示す。
2.関数は、入力信号の最大次元をサポートし得る、すなわち、特定の値より高い次元を持つ入力の分割をサポートしない。この値は、接点構成パラメータ(contact configuration parameter)として定義される。
【0067】
以下の表は、多次元スプリッタ関数をサポートするテンプレートを説明する。
【0068】
【表1】
【0069】
【表2】
【0070】
マージャ関数は、複数の多次元入力を単一の多次元出力にマージし、以下の要件を有するものとする:
●N個の入力と1つ出力のFIFOバッファ。Nはマージの数についての構成パラメータである。
●入力:
○各入力セグメントは、以下の要件を満たすものとする:
■スケール=[(T,T,...,TM-1]の単位における=[D,D,...,DM-1]の最大サイズ。ここで及びは、関数の構成で設定される。
■以下のメタデータ及び制約のうちの1つを含む:
●位置メタデータ:
○スケールベクトル=[t,t,...,tM-1]における開始位置=[s,s,...,sM-1]。ここで、数sはtにおいてスケールされる。
○スケール
○スケールにおける長さ=[d,d,...,dM-1
○バイトサイズL(バイト)
●又はシーケンスメタデータ:
○すべての他のセグメントにおいて同一かつ一意の開始コード
○セグメントの順序とともに増加するシーケンスベクトル=[n,n,...,nM-1
■すべての他の入力のセグメントと重複しないサンプル
○入力セグメントは昇順であるものとする。
●出力:
○出力バッファにおけるメディアストリームは常に、ゼロ又はそれ以上の出力セグメントで構成される。すべての出力セグメントは、以下の要件を満たすものとする:
■ただ1つの入力セグメントと正確に同一
■以下のメタデータ及び制約のうちの1つを含む:
●位置メタデータ:
○スケールベクトル=[t,t,...,tM-1]における開始位置=[s,s,...,sM-1]。ここで、数sはtにおいてスケールされる。
○スケール
○スケールにおける長さ=[d,d,...,dM-1
○バイトサイズL(バイト)
●又はシーケンスメタデータ:
○すべての他のセグメントにおいて同一かつ一意の開始コード
○セグメントの順序とともに増加するシーケンスベクトル=[n,n,...,nM-1
○すべての出力セグメントの集合は一緒に、すべての入力の処理された入力セグメント全体をカバーするものとする(例えば入力のサンプルは出力セグメントの集合から除外されない)。
●マージプロセスは次のように起こる:すべての入力I,I,...,IN-1からの1つのセグメントが、その順序で出力バッファに移動され、次いで出力バッファが、セグメントの昇順に並べ替えられる。
【0071】
共通ヘッダを有する場合、マージャは単一の出力においてそれを一度のみ追加するものとする。メディアフォーマットは、ストリームによって表わされるコンテンツにおけるいかなるパラメータ変化にも関わらず、それらのストリームの開始時に同じバイトシーケンスの使用を必要とすることがある。固定され、変化しないバイトのこのシーケンスは、そのメディアフォーマットの共通ヘッダと呼ばれることがある。共通ヘッダはゼロレングスであり得る。マージャでは、入力ストリームが準拠している特定のメディアフォーマットへの出力メディアストリームの準拠性を維持するために、単一の出力に共通ヘッダを一度のみ追加する必要があり得る。共通ヘッダはメディアの長さを記述しないので、共通ヘッダを含むセグメントはゼロレングスであり得る。したがって、タイミングメタデータの場合、任意のストリームの最初のセグメントがゼロレングスであれば、そのセグメントは、そのストリームの共通ヘッダと見なされてよく、マージャはこのプロパティを使用して共通ヘッダセグメントを識別し得る。共通ヘッダが入力に存在しない(例えば最初のセグメントが非ゼロレングスである)場合、マージャは出力のいずれにもいずれの共通ヘッダも追加する必要はなく、入力の最初のセグメントはその入力ストリーム内のいずれかの他のメディアセグメントと同様に扱われる。シーケンスメタデータの場合、繰り返しヘッダフラグが構成において設定されている場合、シーケンス番号0のセグメントは共通ヘッダセグメントである。
1.時間セグメントの場合、m=M=1であり、d及びtはそれぞれ持続期間と時間スケールを示す。
2.関数は、入力信号の最大次元をサポートし得る(例えば特定の値より高い次元を持つ入力の分割をサポートしない)。この値は、接点構成パラメータとして定義され得る。
【0072】
以下の表は、多次元マージャ関数をサポートするテンプレートを説明する。
【0073】
【表3】
【0074】
【表4】
【0075】
図5は、多次元メディアストリームを分割及びマージするための例示的なプロセス500のフローチャートである。いくつかの実施形態では、図5の1つ以上のプロセスブロックは、例えばNBMPシステム300のような上述した要素のいずれか又はNBMPワークフローマネージャ320のようなその中に含まれる任意の要素によって実行されてよい。
【0076】
図5に示されるように、プロセス500は、多次元メディアストリームを、多次元空間における多次元メディアの複数のセグメントにセグメント化することを含む(動作510)。
【0077】
図5に更に示されるように、プロセス500は、セグメント化された多次元メディアストリームを複数の並列サブストリームに分割することを含み得る(動作520)。
【0078】
図5に更に示されるように、プロセス500は、各多次元メディアセグメントとともに搬送(carry)される多次元メタデータを使用して複数のサブストリームの各々を並列に処理することを含み得る(動作530)。
【0079】
図5に更に示されるように、プロセス500は、出力セグメントに搬送された多次元メタデータを使用して複数のサブストリームを単一のストリームにマージすることを含み得る(動作540)。
【0080】
前述の開示は、例示及び説明を提供するが、網羅的であることも、あるいは開示された正確な形態に実装を限定することも意図されていない。上記開示に照らして修正及び変形が可能であり、あるいは実装の実施から修正及び変形が得られることがある。
【0081】
本明細書に開示されるプロセス/フローチャートにおけるブロックの具体的な順序又は階層は、例示的なアプローチの例示であることが理解される。設計の好みに基づいて、プロセス/フローチャートにおけるブロックの具体的な順序又は階層が再配置されてよいことが理解される。さらに、いくつかのブロックを組み合わせたり省略したりしてもよい。付随する方法の請求項は、様々なブロックの要素をサンプル順序で提示しており、提示された特定の順序又は階層に限定されることを意味しない。
【0082】
いくつかの実施形態は、任意の可能な技術的詳細な統合レベルにおけるシステム、方法及び/又はコンピュータ読取可能媒体に関連し得る。さらに、上述した上記構成要素のうちの1つ以上は、コンピュータ読取可能媒体に記憶され、かつ少なくとも1つのプロセッサによって実行可能な命令として実装され得る(及び/又は少なくとも1つのプロセッサを含み得る)。コンピュータ読取可能媒体は、プロセッサに動作を実行させるためのコンピュータ読取可能プログラム命令を有するコンピュータ読取可能非一時的記憶媒体(又は複数の媒体)を含み得る。
【0083】
コンピュータ読取可能記憶媒体は、命令実行デバイスによる使用のために命令を保持及び記憶し得る有形のデバイスであってよい。コンピュータ読取可能記憶媒体は、例えば電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス又は上記の任意の適切な組合せであり得るが、これらに限定されない。コンピュータ読取可能記憶媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラム可能な読取専用メモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読取専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードやその上に記録された命令を有する溝内の隆起構造体のような機械的にコード化されたデバイス、及び上記の任意の適切な組合せが含まれる。本明細書で使用されるとき、コンピュータ読取可能記憶媒体は、それ自体、例えば電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を伝搬する電磁波(例えば光ファイバーケーブルを通過する光パルス)、あるいはワイヤを通って伝送される電気信号のような一時的信号であると解釈されるべきではない。
【0084】
本明細書に記載されるコンピュータ読取可能プログラム命令は、コンピュータ読取可能記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、あるいはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して外部コンピュータ又は外部ストレージデバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを備えてよい。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ読取可能プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ読取可能記憶媒体に記憶するためにコンピュータ読取可能プログラム命令を転送する。
【0085】
動作を実行するためのコンピュータ読取可能プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalkやC++のようなオブジェクト指向プログラミング言語及び「C」プログラミング言語や同様のプログラミング言語のような手続型プログラミング言語を含む1つ以上のプログラミング言語の任意の組合せで書かれたソースコード又はオブジェクトコードであり得る。コンピュータ読取可能プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモートコンピュータ上で、あるいは完全にリモートコンピュータ又はサーバ上で実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、あるいは(例えばインターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータへの接続が構成されてもよい。いくつかの実施形態では、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブル論理アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、コンピュータ読取可能プログラム命令の状態情報を利用することによってコンピュータ読取可能プログラム命令を実行し、電子回路をパーソナライズし得る。
【0086】
これらのコンピュータ読取可能プログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供されて、マシンを生成することができ、その結果、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作を実装するための手段を生成する。これらのコンピュータ読取可能プログラム命令はまた、コンピュータ、プログラム可能データ処理装置及び/又は他のデバイスが特定の方法で機能するよう指示し得るコンピュータ読取可能記憶媒体に記憶されてもよく、その結果、その中に記憶された命令を有するコンピュータ読取可能記憶媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含む。
【0087】
コンピュータ読取可能プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスにロードされ、一連の動作ステップをコンピュータ、他のプログラム可能な装置又は他のデバイス上で実行させてコンピュータ実装プロセスを生成させてもよく、その結果、コンピュータ、他のプログラム可能な装置又は他のデバイス上で実行する命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作を実行する。
【0088】
図面内のフローチャート及びブロック図は、様々な実施形態によるシステム、方法及びコンピュータ読取可能媒体の可能な実装のアーキテクチャ、機能性及び動作を説明する。この点に関して、フローチャート又はブロック図における各ブロックは、モジュール、セグメント又は命令の一部を表してよく、これは、指定された論理機能を実装するための1つ以上の実行可能命令を含む。方法、コンピュータシステム及びコンピュータ読取可能媒体は、図面に示されるものよりも、追加のブロック、より少ないブロック、異なるブロック又は異なるように配置されたブロックを含んでもよい。いくつかの代替的な実装では、ブロックに示される機能は、図面に示される順序とは異なる順序で起こってもよい。例えば連続して示される2つのブロックが、実際には同時に又は実質的に同時に実行されてもよく、あるいは、ブロックが時には、関与する機能に応じて逆の順序で実行されることもある。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組合せは、指定された機能又は動作を実行するか、あるいは特殊目的ハードウェア及びコンピュータ命令の組合せを実行する特殊目的ハードウェアベースのシステムによって実装されることがあることにも留意されたい。
【0089】
本明細書に記載されるシステム及び/又は方法は、ハードウェア、ファームウェア又はハードウェアとソフトウェアの組合せの異なる形態で実装されてもよいことが明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書で説明されたが、ソフトウェア及びハードウェアは、本明細書の説明に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
図1
図2
図3
図4
図5
【国際調査報告】