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

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

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

特表2025-501035セグメント化されたメディアデータの並列処理のための多次元メタデータ
<>
  • 特表-セグメント化されたメディアデータの並列処理のための多次元メタデータ 図1
  • 特表-セグメント化されたメディアデータの並列処理のための多次元メタデータ 図2
  • 特表-セグメント化されたメディアデータの並列処理のための多次元メタデータ 図3
  • 特表-セグメント化されたメディアデータの並列処理のための多次元メタデータ 図4
  • 特表-セグメント化されたメディアデータの並列処理のための多次元メタデータ 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-17
(54)【発明の名称】セグメント化されたメディアデータの並列処理のための多次元メタデータ
(51)【国際特許分類】
   H04N 21/234 20110101AFI20250109BHJP
【FI】
H04N21/234
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023565170
(86)(22)【出願日】2022-12-13
(85)【翻訳文提出日】2023-10-23
(86)【国際出願番号】 US2022052649
(87)【国際公開番号】W WO2023136900
(87)【国際公開日】2023-07-20
(31)【優先権主張番号】63/298,534
(32)【優先日】2022-01-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/993,583
(32)【優先日】2022-11-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガル,イラジ
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164MB13S
5C164MB44S
5C164SB01P
(57)【要約】
少なくとも1つのプロセッサによって実行される方法であって、多次元メディアストリームを多次元空間における多次元メディアの複数のセグメントにセグメント化するステップと、多次元メディアの複数のセグメントの各セグメントを、それぞれのシーケンスベクトルを使用して表現するステップであって、それぞれのシーケンスベクトルは、1つ以上の事前定義された多次元メタデータを含み、事前定義された多次元メタデータは、開始ベクトル、長さベクトル、及びスケーリングベクトル、並びに開始コードのうちの1つを含む、ステップと、複数のセグメントの各セグメントのそれぞれのシーケンスベクトルに基づいて、NBMP(network based media processing)ワークフローを導出するステップと、を含む。
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
多次元メディアストリームを多次元空間における多次元メディアの複数のセグメントにセグメント化するステップと、
前記多次元メディアの前記複数のセグメントの各セグメントを、それぞれのシーケンスベクトルを使用して表現するステップであって、前記それぞれのシーケンスベクトルは、1つ以上の事前定義された多次元メタデータを含み、前記事前定義された多次元メタデータは、(1)開始ベクトル、長さベクトル、及びスケーリングベクトル、並びに(2)開始コードのうちの1つを含む、ステップと、
前記複数のセグメントの各セグメントの前記それぞれのシーケンスベクトルに基づいて、NBMP(network based media processing)ワークフローを導出するステップと、を含む、方法。
【請求項2】
前記多次元メタデータによって定義された規則を使用して、シーケンスベクトルの増加する順序で前記複数のセグメントを順序付けるステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記複数のセグメントの各セグメントを同一の固有コードポイントで表現するステップをさらに含み、各セグメントは、前記同一の固有コードポイントを含み、各セグメントは、前記同一の固有コードポイントで開始する、請求項1に記載の方法。
【請求項4】
前記複数のセグメントのシーケンスベクトル表現に基づいて、前記複数のセグメントを順序付けるステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記シーケンスベクトル表現によって定義された規則に基づいて、シーケンスベクトルの増加する順序で前記複数のセグメントを順序付けるステップをさらに含む、請求項4に記載の方法。
【請求項6】
装置であって、
プログラムコードを記憶するように構成されている少なくとも1つのメモリと、
前記プログラムコードを読み取って前記プログラムコードを実行して、請求項1~5のいずれか一項に記載の方法を行うように構成されている少なくとも1つのプロセッサと、を含む、装置。
【請求項7】
少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、請求項1~5のいずれか一項に記載の方法を行わせる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年1月11日に出願された米国仮特許出願第63/298,534号、及び2022年11月23日に出願された米国特許出願第17/993,583号に基づき、かつこれらに対する優先権を主張し、これらの開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、1次元NBMPセグメントメタデータへの拡張を提供して、多次元メディアデータを、各々が独立に処理され得るセグメントにスプリット及びマージすることをサポートする。
【背景技術】
【0003】
ネットワーク及びクラウドプラットフォームが、様々なアプリケーションを実行するために使用される。NBMP(network-based media processing)標準では、1次元メディアセグメントを独立して処理するためのツールのセットを定義する。しかしながら、メディアが多次元であるときに、メディアデータを複数の次元にセグメント化する必要がある可能性があるが、これは現在、NBMP標準によって対処されない。
【発明の概要】
【0004】
いくつかの実施形態によれば、少なくとも1つのプロセッサによって実行される方法が提供される。方法は、多次元メディアストリームを多次元空間における多次元メディアの複数のセグメントにセグメント化するステップを含む。方法は、多次元メディアの複数のセグメントの各セグメントを、それぞれのシーケンスベクトルを使用して表現するステップであって、それぞれのシーケンスベクトルは、1つ以上の事前定義された多次元メタデータを含み、事前定義された多次元メタデータは、(1)開始ベクトル、長さベクトル、及びスケーリングベクトル、並びに(2)開始コードのうちの1つを含む、ステップをさらに含む。方法は、複数のセグメントの各セグメントのそれぞれのシーケンスベクトルに基づいて、NBMP(network based media processing)ワークフローを導出するステップをさらに含む。
【0005】
いくつかの実施形態によれば、装置は、プログラムコードを記憶するように構成されている少なくとも1つのメモリと、プログラムコードを読み取ってプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、を含む。プログラムコードは、少なくとも1つのプロセッサに、多次元メディアストリームを多次元空間における多次元メディアの複数のセグメントにセグメント化させるように構成されているセグメント化コードを含む。プログラムコードは、少なくとも1つのプロセッサに、多次元メディアの複数のセグメントの各セグメントを、それぞれのシーケンスベクトルを使用して表現させるように構成されている表現コードであって、それぞれのシーケンスベクトルは、1つ以上の事前定義された多次元メタデータを含み、事前定義された多次元メタデータは、(1)開始ベクトル、長さベクトル、及びスケーリングベクトル、並びに(2)開始コードのうちの1つを含む、表現コードをさらに含む。プログラムコードは、少なくとも1つのプロセッサに、複数のセグメントの各セグメントのそれぞれのシーケンスベクトルに基づいて、NBMP(network based media processing)ワークフローを導出させるように構成されている導出コードをさらに含む。いくつかの実施形態によれば、非一時的なコンピュータ可読記憶媒体は、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、多次元メディアストリームを多次元空間における多次元メディアの複数のセグメントにセグメント化するステップを行わせる命令を記憶する。命令は、少なくとも1つのプロセッサに、多次元メディアの複数のセグメントの各セグメントを、それぞれのシーケンスベクトルを使用して表現させるように構成されている表現するステップであって、それぞれのシーケンスベクトルは、1つ以上の事前定義された多次元メタデータを含み、事前定義された多次元メタデータは、(1)開始ベクトル、長さベクトル、及びスケーリングベクトル、並びに(2)開始コードのうちの1つを含む、ステップをさらに行わせる。命令は、少なくとも1つのプロセッサに、複数のセグメントの各セグメントのそれぞれのシーケンスベクトルに基づいて、NBMP(network based media processing)ワークフローを導出するステップをさらに行わせる。
【図面の簡単な説明】
【0006】
図1】いくつかの実施形態による、本明細書に記載される方法、装置、及びシステムが実装され得る環境の図である。
【0007】
図2】いくつかの実施形態による、1つ以上のデバイスの例示的なコンポーネントのブロック図である。
【0008】
図3】いくつかの実施形態による、NBMPシステムのブロック図である。
【0009】
図4】いくつかの実施形態による、セグメントの並列処理のためのワークフローの図である。
【0010】
図5】いくつかの実施形態による、NBMPにおけるメディアコンテンツを処理するための装置のブロック図である。
【発明を実施するための形態】
【0011】
以下の例示的な実施形態の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じ又は類似する要素を識別してもよい。
【0012】
前述の開示は、例示及び説明を提供するが、網羅的であることを意図しておらず、また、実装を開示された正確な形態に限定することを意図していない。修正及び変形は、上記の開示に照らして可能であるか、又は実装の実施から取得されてもよい。さらに、1つの実施形態の1つ以上の特徴又はコンポーネントは、別の実施形態(又は別の実施形態の1つ以上の特徴)に組み込まれてもよく、又は別の実施形態と組み合わされてもよい。追加的に、以下に提供されるフローチャート及び動作の説明において、1つ以上の動作が省略されてもよく、1つ以上の動作が追加されてもよく、1つ以上の動作が同時に(少なくとも部分的に)行われてもよく、1つ以上の動作の順序が切り替えられてもよいことが理解される。
【0013】
本明細書に記載されるシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせの異なる形態で実装され得ることは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されているが、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0014】
特徴の特定の組み合わせが特許請求の範囲に規定され、及び/又は明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を限定するものではない。実際、これらの特徴の多くは、具体的に特許請求の範囲に規定されていない、及び/又は明細書に開示されていない方法で組み合わせられてもよい。以下に列挙される各従属請求項は、1のクレームのみに直接従属してもよいが、可能な実装の開示は、クレームセットにおいて、他の全てのクレームと組み合わせた各従属クレームを含む。
【0015】
本明細書で使用されるいかなる要素、行為、又は命令も、明示的に記述されない限り、重要又は必須と解釈されるべきではない。また、本明細書で使用される場合、「a」及び「an」という冠詞は、1つ以上の項目を含むことを意図し、「1つ以上」と互換的に使用されてもよい。1つの項目のみが意図される場合、「1つ」という用語又は類似の言語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有している(having)」、「含む(include)」、「含んでいる(including)」などの用語は、オープンエンドの用語であることを意図している。さらに、「~に基づく」という語句は、明示的に別段の記載がない限り、「~に少なくとも部分的に基づく」を意味することを意図している。さらに、「[A]及び[B]のうちの少なくとも1つ」又は「[A]又は[B]のうちの少なくとも1つ」などの表現は、Aのみ、Bのみ、又はAとBの両方を含むとして理解されるべきである。
【0016】
本明細書全体を通して「一実施形態」、「実施形態」又は類似の言語への参照は、示された実施形態に関連して記載される特定の特徴、構造又は特性が、本解決策の少なくとも1つの実施形態に含まれることを意味する。したがって、「一実施形態では」、「実施形態では」、及び本明細書全体を通じての類似の文言は、全て同じ実施形態を参照してもよいが、必ずしもその必要はない。
【0017】
さらに、本開示の記載される特徴、利点、及び特性は、1つ以上の実施形態において任意の好適な方法で組み合わされてもよい。当業者は、本明細書の説明に照らして、本開示が特定の実施形態の特定の特徴又は利点のうちの1つ以上なしで実施され得ることを認識するであろう。他の事例では、本開示の全ての実施形態に存在しなくてもよい特定の実施形態において、追加の特徴及び利点を認識してもよい。
【0018】
図1は、実施形態による、本明細書に記載される方法、装置、及びシステムが実装され得る環境100の図である。図1に示すように、環境100は、ユーザデバイス110、プラットフォーム120、及びネットワーク130を含み得る。環境100のデバイスは、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して相互接続し得る。
【0019】
ユーザデバイス110は、プラットフォーム120に関連する情報を受信、生成、記憶、処理、及び/又は提供することが可能な1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話等)、ウェアラブルデバイス(例えば、一対のスマートグラス若しくはスマートウオッチ)、又は類似のデバイスを含んでもよい。いくつかの実装において、ユーザデバイス110は、プラットフォーム120から情報を受信し、及び/又はプラットフォーム120に情報を送信してもよい。
【0020】
プラットフォーム120は、本明細書の他の箇所で説明されるように、1つ以上のデバイスを含む。いくつかの実装において、プラットフォーム120は、クラウドサーバ又はクラウドサーバのグループを含んでもよい。いくつかの実装において、プラットフォーム120は、ソフトウェアコンポーネントが特定のニーズに応じてスワップイン又はスワップアウトされるように、モジュール化されるように設計されてもよい。そのようなものとして、プラットフォーム120は、異なる使用のために容易に及び/又は迅速に再構成されてもよい。
【0021】
いくつかの実装において、図示のように、プラットフォーム120は、クラウドコンピューティング環境122においてホストされてもよい。特に、本明細書に記載される実装は、プラットフォーム120をクラウドコンピューティング環境122内でホストされるものとして説明するが、いくつかの実装において、プラットフォーム120は、クラウドベースではなくてもよいし(すなわち、クラウドコンピューティング環境の外部で実装されてもよい)、部分的にクラウドベースであってもよい。
【0022】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的な位置又は構成のエンドユーザ(例えば、ユーザデバイス100)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供してもよい。図示のように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(まとめて「コンピューティングリソース124」と呼ぶか、個々に「コンピューティングリソース124」と呼ぶ)を含んでもよい。
【0023】
コンピューティングリソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他のタイプの計算及び/又は通信デバイスを含む。いくつかの実装において、コンピューティングリソース124はプラットフォーム120をホストしてもよい。クラウドリソースは、コンピューティングリソース124において実行するコンピューティングインスタンス、コンピューティングリソース124において提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装において、コンピューティングリソース124は、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して、他のコンピューティングリソース124と通信し得る。
【0024】
図1にさらに示すように、計算リソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0025】
アプリケーション124-1は、ユーザデバイス110及び/又はプラットフォーム120に提供されるか、又はこれらによってアクセスされ得る1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110にソフトウェアアプリケーションをインストールして実行する必要性を排除してもよい。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供可能な他の任意のソフトウェアを含んでもよい。いくつかの実装において、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1に情報を送信する/これらから情報を受信してもよい。
【0026】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2によるあらゆる実マシンへの使用及び対応の程度に応じて、システム仮想マシン又は処理仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供してもよい。処理仮想マシンは、単一のプログラムを実行し、単一の処理をサポートし得る。いくつかの実装において、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって実行してもよく、データ管理、同期、長い継続時間のデータ転送などのクラウドコンピューティング環境122のインフラストラクチャを管理してもよい。
【0027】
仮想化ストレージ124-3は、コンピューティングリソース124の記憶システム又はデバイス内で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。いくつかの実装において、ストレージシステムの文脈内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含んでもよい。ブロック仮想化は、物理ストレージ又は異種構造に関係なくストレージシステムにアクセスできるように、物理ストレージからの論理ストレージの抽象化(又は分離)を指してもよい。この分離により、ストレージシステムの管理者は、エンドユーザに対するストレージを管理する方法に柔軟性を持たせることが可能となってもよい。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶される位置との間の依存関係を排除してもよい。これにより、ストレージの使用、サーバの統合、及び/又は継続的なファイル移行のパフォーマンスの最適化を可能にしてもよい。
【0028】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、コンピュータリソース124などのホストコンピュータで同時に実行することを可能にするハードウェア仮想化技術を提供してもよい。ハイパーバイザ124-4は、ゲストオペレーティングシステムに対して仮想オペレーティングプラットフォームを提示し得、ゲストオペレーティングシステムの実行を管理し得る。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有してもよい。
【0029】
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、及び/又はこれら又は他のタイプのネットワークの組み合わせを含んでもよい。
【0030】
図1に示すデバイス及びネットワークの数及び配置は、一例として提供される。実際には、図1に示されたものよりも、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は異なる配置のデバイス及び/又はネットワークがあってもよい。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよいし、図1に示す単一のデバイスは、複数の分散されたデバイスとして実装されてもよい。追加的又は代替的に、環境100のデバイスのセット(例えば、1つ以上のデバイス)は、環境100の別のデバイスのセットによって行われるものとして記載される1つ以上の機能を行ってもよい。
【0031】
図2は、図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応してもよい。図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インターフェース270を含んでもよい。
【0032】
バス210は、デバイス200のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装される。プロセッサ220は、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲート配列(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理コンポーネントである。いくつかの実装において、プロセッサ220は、機能を行うようにプログラムされることが可能な1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、及び/又は、プロセッサ220による使用のための情報及び/又は命令を記憶する別のタイプのダイナミック又はスタティックストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は、光メモリ)を含む。
【0033】
ストレージコンポーネント240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、ストレージコンポーネント240は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は他のタイプの非一時的コンピュータ可読媒体を、対応するドライブと共に含んでもよい。
【0034】
入力コンポーネント250は、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロホン)を介して情報を受信することを可能にするコンポーネントを含む。追加的又は代替的に、入力コンポーネント250は、情報(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を感知するためのセンサを含んでもよい。出力コンポーネント260は、デバイス200からの出力情報を提供するコンポーネント(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))を含む。
【0035】
通信インターフェース270は、デバイス200が有線接続、無線接続、又は有線及び無線接続の組み合わせを介して他のデバイスと通信することを可能にするトランシーバ様コンポーネント(例えば、トランシーバ及び/又は別個の受信機及び送信機)を含む。通信インターフェース270は、デバイス200が別のデバイスから情報を受信し、及び/又は別のデバイスに情報を提供することを可能にしてもよい。例えば、通信インターフェース270は、Ethernet(登録商標)インターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fi(登録商標)インターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0036】
デバイス200は、本明細書に記載される1つ以上の処理を行ってもよい。デバイス200は、メモリ230及び/又はストレージコンポーネント240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令をプロセッサ220が実行することに応答して、これらの処理を行ってもよい。コンピュータ可読媒体は、本明細書において、非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリスペース、又は複数の物理ストレージデバイスに拡散したメモリスペースを含む。
【0037】
ソフトウェア命令は、別のコンピュータ可読媒体から、又は通信インターフェース270を介して別のデバイスから、メモリ230及び/又はストレージコンポーネント240に読み出されてもよい。実行されるときに、メモリ230及び/又はストレージコンポーネント240に記憶されたソフトウェア命令は、プロセッサ220に本明細書に記載される1つ以上の処理を行わせてもよい。追加的又は代替的に、ハードワイヤード回路を、本明細書に記載される1つ以上の処理を行うために、ソフトウェア命令の代わりに、又はそれと組み合わせて使用してもよい。したがって、本明細書に記載される実施形態は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
【0038】
図2に示すコンポーネントの数及び配置は、一例として提供される。実際には、デバイス200は、図2に示されるものよりも追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる配置のコンポーネントを含んでもよい。追加的又は代替的に、デバイス200のコンポーネントのセット(例えば、1つ以上のコンポーネント)は、デバイス200の別のコンポーネントのセットによって行われるものとして説明される1つ以上の機能を行ってもよい。
【0039】
本開示の一実施形態において、NBMPシステム300が提供される。図3を参照すると、NBMPシステム300は、NBMPソース310、NBMPワークフローマネージャ320、機能リポジトリ330、1つ以上のメディア処理エンティティ350、メディアソース360、及びメディアシンク370を含む。
【0040】
NBMPソース310は、第三者エンティティからの命令を受信してもよく、NBMPワークフローを介してNBMPワークフローマネージャ320と通信してもよく、機能ディスカバリAPI391を介して機能リポジトリ330と通信してもよい。例えば、NBMPソース310は、ワークフロー記述文書(WDD)をNBMPワークフローマネージャ320に送信してもよく、機能リポジトリ330に記憶された機能の機能記述を読んでもよく、その機能は、機能リポジトリ330のメモリに記憶されたメディア処理機能、例えば、メディア復号、特徴点抽出、カメラパラメータ抽出、投影方法、シーム情報抽出、ブレンド、後処理、及び符号化の機能などである。NBMPソース310は、少なくとも1つのプロセッサと、少なくともプロセッサにNBMPソース310の機能を行わせるように構成されているコードを記憶するメモリとを含むか、又はそれらによって実装されてもよい。
【0041】
NBMPソース310は、ワークフロー記述文書を送信することによって、1つ以上のメディア処理エンティティ350によって行われるタスク352を含むワークフローを作成するようNBMPワークフローマネージャ320に要求してもよく、このワークフロー記述文書は、複数の記述子を含むことができ、各記述子は、複数のパラメータを有してもよい。
【0042】
例えば、NBMPソース310は、機能リポジトリ330に記憶された機能を選択し、入力及び出力データ、必要な機能、及びワークフローの要件などの記述詳細のための様々な記述子を含むワークフロー記述文書をNBMPワークフローマネージャ320に送信してもよい。ワークフロー記述文書は、1つ以上のメディア処理エンティティ350によって行われるタスク352のタスク記述のセットと、入力及び出力の接続マップと、を含み得る。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受信するときに、NBMPワークフローマネージャ320は、機能名に基づいてタスクをインスタンス化し、接続マップに従ってタスクを接続することによってワークフローを作成してもよい。
【0043】
代替的又は追加的に、NBMPソース310は、キーワードのセットを使用することによって、ワークフローを作成するようにNBMPワークフローマネージャ320に要求してもよい。例えば、NBMPソース310は、NBMPワークフローマネージャ320に、NBMPワークフローマネージャ320が機能リポジトリ330に記憶された適切な機能を見つけるために使用し得るキーワードのセットを含み得るワークフロー記述文書を送信してもよい。NBMPワークフローマネージャ320がNBMPソース310からそのような情報を受信するときに、NBMPワークフローマネージャ320は、ワークフロー記述文書の処理記述子に指定され得るキーワードを使用して適切な機能を検索することによってワークフローを作成し、ワークフロー記述文書内の他の記述子を使用して、タスクを提供し、それらを接続してワークフローを作成してもよい。
【0044】
NBMPワークフローマネージャ320は、機能ディスカバリAPI391と同じ又は異なるAPIであり得る機能ディスカバリAPI393を介して機能リポジトリ330と通信してもよいし、API394(例えば、NBMPタスクAPI)を介してメディア処理エンティティ350の1つ以上と通信してもよい。NBMPワークフローマネージャ320は、少なくとも1つのプロセッサと、少なくともプロセッサに、NBMPワークフローマネージャ320の機能を行わせるように構成されているコードを記憶するメモリと、を含むか、又はそれらによって実装されてもよい。
【0045】
NBMPワークフローマネージャ320は、API394を使用して、1つ以上のメディア処理エンティティ350によって行うことが可能なワークフローの1つ以上のタスク352をセットアップ、設定、管理、及び監視してもよい。いくつかの実施形態では、NBMPワークフローマネージャ320は、API394を使用してタスク352を更新及び破棄してもよい。ワークフローのタスク352を設定、管理、及び監視するために、NBMPワークフローマネージャ320は、リクエストなどのメッセージを1つ以上のメディア処理エンティティ350に送信してもよく、各メッセージは複数の記述子を有し、記述子の各々は複数のパラメータを有してもよい。タスク352は各々、メディア処理機能354及びメディア処理機能354のための設定353を含み得る。
【0046】
いくつかの実施形態では、タスクのリストを含まない(例えば、タスクのリストの代わりにキーワードのリストを含む)NBMPソース310からワークフロー記述文書を受信した後、NBMPワークフローマネージャ320は、ワークフロー記述文書内のタスクの記述に基づいてタスクを選択し、機能ディスカバリAPI393を介して、機能リポジトリ330を検索して、現在のワークフローのタスク352として実行されるべき適切な機能を見つけてもよい。例えば、NBMPワークフローマネージャ320は、ワークフロー記述文書において提供されるキーワードに基づいてタスクを選択してもよい。適切な機能が、NBMPソース310によって提供されるキーワード又はタスク記述のセットを使用して識別された後、NBMPワークフローマネージャ320は、API 394を使用して、ワークフロー内の選択されたタスクを設定してもよい。例えば、NBMPワークフローマネージャ320は、NBMPソースから受信した情報から設定データを抽出し、設定データに基づいてタスク352を設定してもよい。
【0047】
1つ以上のメディア処理エンティティ350は、メディアソース360からメディアコンテンツを受信し、NBMPワークフローマネージャ320によって作成されたタスク352を含むワークフローに従ってメディアコンテンツを処理し、処理されたメディアコンテンツをメディアシンク370に出力するように構成され得る。1つ以上のメディア処理エンティティ350は、少なくとも1つのプロセッサと、少なくともプロセッサに、メディア処理エンティティ350の機能を行わせるように構成されているコードを記憶するメモリと、を含むか、又はそれらによって実装されてもよい。
【0048】
メディアソース360は、メディアを記憶するメモリを含んでもよいし、NBMPソース310と一体化されているか、又はNBMPソース310から分離されていてもよい。いくつかの実施形態では、NBMPワークフローマネージャ320は、ワークフローが準備されたときにNBMPソース310に通知することができ、メディアソース360は、ワークフローが準備されたという通知に基づいて、メディア処理エンティティ350のうちの1つ以上にメディアコンテンツを送信してもよい。
【0049】
メディアシンク370は、少なくとも1つのプロセッサと、1つ以上のメディア処理エンティティ350によって処理されるメディアを表示するように構成されている少なくとも1つのディスプレイとを含むか、又はそれらによって実装されてもよい。
【0050】
上記に論じたように、NBMPソース310からNBMPワークフローマネージャ320へのメッセージ(例えば、ワークフローの作成を要求するためのワークフロー記述文書)、及びNBMPワークフローマネージャ320から1つ以上のメディア処理エンティティ350へのメッセージ(例えば、ワークフローを行わせるためのメッセージ)は、複数の記述子を含んでもよく、記述子の各々は複数のパラメータを有してもよい。場合によっては、APIを使用するNBMPシステム300のコンポーネントのいずれか間の通信は、複数の記述子を含んでもよく、記述子の各々は複数のパラメータを有してもよい。
【0051】
実施形態は、クラウドプラットフォームで実行されるワークフローにおける非必須の入力、出力、及びタスクを識別し、シグナリングするための方法に関連してもよい。
【0052】
ワークフローの必須の出力は、ワークフローが適切に動作しているとみなされるためのデータを生成しなければならないそのワークフローの出力であり得る。ワークフローの必須の入力は、ワークフローがその必須の出力を作成するために処理されなくてはならない入力であり得る。適切に動作するワークフローは、その必須の入力の全てを処理し、その必須の出力の全てを生成するワークフローであり得る。ワークフローの必須のタスクは、適切に動作し、適切に動作するワークフローに必要なデータを処理するために必要なタスクであり得る。例えば、必須のタスクは、必須の入力を処理する、及び/又は必須の出力を生成するタスクであり得る。いくつかの実施形態では、必須の入力は、必須タスクが動作するために必要な入力であってもよく、必須の出力は、必須のタスクの必須の入力として必要とされる出力、又は全体としてワークフローのための出力として必要とされる出力であり得る。非必須の入力は、ワークフローの必須の出力を生成するためにワークフローによって必要とされない入力であり得る。例えば、必須の入力の全てが提供されていれば、たとえなんら非必須の入力が提供されていなくても、ワークフローは必須出力の全てを生成し得る。非必須のタスクは、ワークフローに含まれるが、必須のタスクではないタスクであり得る。例えば、非必須のタスクは、非必須の入力を処理し、非必須の出力を生成し得る。
【0053】
NBMP標準は、スプリッタ及びマージャ機能テンプレートを定義する。図4は、セグメントの並列処理のためにNBMPスプリッタ/マージ機能を使用するこの処理の一例に対応するワークフロー400の図を示す。図4では、タスクT410は、並列に実行されるタスクTのn個のインスタンスに変換されてもよい。
【0054】
いくつかの実施形態では、メディアストリームは連続している。スプリッタ420は、メディアストリームをN個のメディアサブストリームに変換してもよい。各サブストリームは、T430A~Cのインスタンスによって処理されてもよく、次いで、タスクT410の出力ストリームと同等の出力450を生成するためにサブストリームが一緒にマージャ440でインターリーブされる。1:Nスプリッタ及びN:1マージ機能は、セグメント境界で作業する。各セグメントは、開始、継続時間、及び長さのメタデータ、又はそれに関連付けられた開始コード及びシーケンス番号を有してもよい。セグメントは独立しているため、サブストリームは、タスクT410によって処理されるという点で互いに独立している。タスクT,…,TN-1は、セグメントを同時に処理する必要はない。セグメント及びサブストリームは独立していてもよいため、タスクT410の各インスタンスはその速度で実行してもよい。しかしながら、現在のNBMP標準は、メディアデータの1Dセグメント化のみに対処している。
【0055】
現在のNBMP標準では、セグメントメタデータに対して以下のフォーマットを定義している。各セグメントは、以下の要件を満たす。
A.連続したサンプルのセット
B.時間スケールTのスケールにおけるDの最大継続時間(D及びTは設定パラメータである)
【0056】
各セグメントでは、以下のメタデータのうちの1つを使用してもよい。
1. タイミングメタデータ
A.時間スケールtにおける開始時間s
B.時間スケールt=T
C.時間スケールtにおける継続時間d
D.長さl(バイト)
2.又は、シーケンスメタデータ
A.他の全てのセグメントにおける同一かつ固有の開始コード
B.増加する順序でのシーケンス番号
【0057】
両方の場合に、メディアは、一次元(例えば、典型的には時間)においてのみセグメント化される。しかし、メディア信号は、多次元になる傾向がある。
【0058】
本開示の実施形態は、以下を使用する多次元セグメント処理のための多次元メタデータを含む。
1. 開始及び長さ
2. 開始コード及びシーケンスベクトル
【0059】
以下の定義を使用してもよい。
は、M次元のベクトル[c,c,...,cM-1]であり、要素cは、インデックス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のスケールファクタtを表現し、次元iにおける実際の開始点と長さはそれぞれs/tとd/tであり、tは、正の整数である。
-スケーリングベクトル=[t,t,...,tM-1]、及びに対するスケールファクタ
-ユニットtにおける各インデックスsを有する、M次元空間におけるメディアセグメントの開始点を表す開始ベクトル=[s,s,...,sM-1
-ユニットtにおける各インデックスdを有する、M次元空間におけるメディアセグメントがカバーする超空間を表現する長さベクトル=[d,d,...,dM-1
-バイトでのセグメントLのサイズ
【0060】
パラメータs及びdは、非負整数であってもよく、tは、正の整数である。セグメントは、以下の定義によって定義されるように、増加する順序で順序付けされてもよい。
-開始ベクトル[sK,0,...,sK,M-1]を有するセグメントKは、以下の場合に開始点[sL,0,...,sL,M-1]を有するセグメントLよりも前である。
o 少なくとも1つのi(0≦i<M)に対して、sK,i<sL,iである。
o 任意の0≦j<iに対して、sK,j≦sL,jである。
-セグメントの増加する順序セットは、各セグメントがシーケンス内でそれ自身よりも前の他の全てのセグメントの後に位置するセグメントの1Dシーケンスである。
【0061】
各セグメントは、以下のメタデータを搬送してもよい。
、L
【0062】
以下のように、各セグメントに対して以下のメタデータを定義してもよい。
-各々がインデックスnを有するM次元空間におけるメディアセグメントのシーケンスを表すシーケンスベクトル=[n,n,...,nM-1]。
-開始コードCであって、全てのセグメントが開始する一意のコードであり、コードは、どのセグメントの途中でも繰り返されない。
-バイトでのセグメントLのサイズ。
【0063】
パラメータs及びdは、非負整数であってもよく、tは、正の整数であってもよい。セグメントは、以下の定義によって定義されるように、増加する順序で順序付けされてもよい。
-シーケンスベクトル[nK,0,...,nK,M-1]を有するセグメントKは、以下の場合に開始点[nL,0,...,nL,M-1]を有するセグメントLよりも前である。
o 少なくとも1つのi(0≦i<M)に対して、nK,i<nL,iである。
o 任意の0≦j<iに対して、nK,j≦nL,jである。
-セグメントの増加する順序セットでは、各セグメントがシーケンス内でそれ自身よりも前の他の全てのセグメントの後に位置するセグメントの1Dシーケンスである。
【0064】
各セグメントは、以下のメタデータを搬送してもよい。
、C、L
【0065】
M=1(例えば、1次元)の場合、上記の設計は、既存の1Dメタデータに縮小されてもよい。
a.セグメント時間メタデータ:t、s、d、L
b.セグメント開始コード:n、c、L
【0066】
図5は、多次元メタデータをシグナリングするための例示的な処理500のフローチャートである。いくつかの実装では、図5の1つ以上の処理ブロックは、例えばNBMPシステム300のような上述した要素のうちのいずれか、又はNBMPワークフローマネージャ320のようなそのシステムに含まれる任意の要素によって行われてもよい。
【0067】
図5に示すように、処理500は、多次元メディアストリームを複数のセグメントのシーケンスにセグメント化すること(動作510)を含む。
【0068】
図5にさらに示すように、処理500は、複数のセグメントのシーケンスに基づいて、ネットワークベースのメディア処理ワークフローを導出すること(動作520)を含んでもよい。
【0069】
図5にさらに示すように、処理500は、多次元メディアの複数のセグメントのシーケンスに多次元メタデータを追加すること(動作530)を含んでもよい。
【0070】
実施形態では、動作530は、多次元メタデータを使用して複数のセグメントの各セグメントに対する開始点を表現することをさらに含んでもよい。
【0071】
実施形態では、処理500は、開始ベクトル、長さベクトル、並びに長さベクトル及び開始ベクトルに関連付けられたスケーリングベクトルを使用して、超空間における各セグメントの位置を表現することをさらに含んでもよい。
【0072】
実施形態では、処理500は、多次元メタデータによって定義された規則を使用して、シーケンスベクトルの増加する順序で複数のセグメントのシーケンスを順序付けるステップをさらに含んでもよい。
【0073】
実施形態では、動作530は、複数のセグメントの各セグメントを同一の固有コードポイントで表現することをさらに含んでもよく、各セグメントは、同一の固有コードポイントを含み、各セグメントは、同一の固有コードポイントで開始する。
【0074】
実施形態では、処理500は、複数のセグメントのシーケンスベクトル表現に基づいて、複数のセグメントを順序付けることをさらに含んでもよい。
【0075】
実施形態では、処理500は、シーケンスベクトル表現によって定義された規則に基づいて、シーケンスベクトルの増加する順序で複数のセグメントを順序付けることをさらに含んでもよい。
【0076】
図5は、プロセス500の例示的なブロックを示し、いくつかの実装において、プロセス500は、図5に示されるブロックよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なって配置されたブロックを含んでもよい。追加的又は代替的に、処理500のブロックのうちの2つ以上は、並列で行われてもよい。
【0077】
前述の開示は、例示及び説明を提供するが、網羅的であることを意図しておらず、また、実装を開示された正確な形態に限定することを意図していない。修正及び変形は、上記の開示に照らして可能であるか、又は実装の実施から取得されてもよい。
【0078】
本明細書で使用される場合、コンポーネントという用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせとして広く解釈されることを意図している。
【0079】
本明細書に記載されるシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせの異なる形態で実装され得ることは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されているが、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0080】
特徴の組み合わせが特許請求の範囲に規定され、及び/又は明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を限定することを意図するものではない。実際、これらの特徴の多くは、具体的に特許請求の範囲に規定されていない、及び/又は明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は、1のクレームのみに直接従属してもよいが、可能な実装の開示は、クレームセットにおいて、他の全てのクレームと組み合わせた各従属クレームを含む。本明細書で使用されるいかなる要素、行為、又は命令も、明示的に記述されない限り、重要又は必須と解釈されるべきではない。また、本明細書で使用される場合、「a」及び「an」という品詞は、1つ以上の項目を含むことを意図し、「1つ以上」と互換的に使用されてもよい。さらに、本明細書で使用される場合、「セット」という用語は、1つ以上の項目(例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど)を含むことを意図し、「1つ以上」と互換的に使用されてもよい。1つの項目のみが意図される場合、「1」という用語又は類似の言語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有している(having)」などの用語は、オープンエンドの用語であることを意図している。さらに、「~に基づく」という語句は、明示的に別段の記載がない限り、「~に少なくとも部分的に基づく」を意味することを意図している。
図1
図2
図3
図4
図5
【国際調査報告】