JP2020533665A - メディア作品にカスタムアルゴリズムを実行するための拡張可能な手法 - Google Patents

メディア作品にカスタムアルゴリズムを実行するための拡張可能な手法 Download PDF

Info

Publication number
JP2020533665A
JP2020533665A JP2020509475A JP2020509475A JP2020533665A JP 2020533665 A JP2020533665 A JP 2020533665A JP 2020509475 A JP2020509475 A JP 2020509475A JP 2020509475 A JP2020509475 A JP 2020509475A JP 2020533665 A JP2020533665 A JP 2020533665A
Authority
JP
Japan
Prior art keywords
media
container
map
output files
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020509475A
Other languages
English (en)
Other versions
JP7047068B2 (ja
Inventor
ミゲル,フランシスコ ジェイ サン
ミゲル,フランシスコ ジェイ サン
マレディ,ナヴィーン
ウォン,リック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netflix Inc
Original Assignee
Netflix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netflix Inc filed Critical Netflix Inc
Publication of JP2020533665A publication Critical patent/JP2020533665A/ja
Application granted granted Critical
Publication of JP7047068B2 publication Critical patent/JP7047068B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

様々な実施形態では、ワークフローエンジンはカスタムアルゴリズムをメディア作品に実行する。動作時、ワークフローエンジンは、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成する。各分割指定は前記メディア作品の異なる部分と関連する。次に、ワークフローエンジンは、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成する。次に、ワークフローエンジンは、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成する。最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される。

Description

関連出願
本出願は、2017年8月31日に出願された米国仮特許出願第62/553024号名称“Media Innovation Platform”及び2018年8月29日に出願された米国特許出願第16/116842号名称“Scalable Techniques for Executing Custom Algorithms on Media Items”の優先権の利益を主張するものである。これらの関連する出願の主題を本明細書に引用する。
本発明の実施形態は概ね、メディア処理プラットフォーム、より具体的にはメディア作品にカスタムアルゴリズムを実行するための拡張可能な手法に関する。
しばしばカスタムアルゴリズムは、カスタムアルゴリズムが高いスループットで実行されるのを可能にする拡張可能なアプリケーションに組み込まれる。そのような実施形態では、組み込まれたカスタムアルゴリズムは一連のステップから成り、関連する拡張可能なアプリケーションは、複数の計算インスタンスがその組み込まれたカスタムアルゴリズムを成すその一連のステップを実行するよう構成する1組の命令から成る。より具体的な実施形態では、「拡張可能なメディア」アプリケーションは、その拡張可能なメディアアプリケーションがカスタムアルゴリズムをメディア作品に高いスループットで効果的に実行して1つ以上の目的を達成するのを許す追加の命令を含む。例えば、コンピュータ視覚カスタムアルゴリズムは、メディアコンテンツライブラリーに含まれる複数の異なる映画を分析して人気俳優又は女優が関わる最も関心を引く演技場面を特定するマーケティングアプリケーションに組み込まれうる。別の例では、字幕タイミングカスタムアルゴリズムが、メディアコンテンツライブラリーに含まれる複数の異なる映画内の字幕タイミングエラーを自動的に検出する品質保証アプリケーションに組み込まれうる。
カスタムアルゴリズムを高いスループットで確実かつ効率的に実行しうる拡張可能なメディアアプリケーションを製作するのは、通常複雑で困難なプロセスである。通常、ソフトウェア技術者は、拡張可能なメディアアプリケーションが潜在的に知的所有権のあるメディア作品の大規模な分散処理に関連する範囲、効率、及び安全性要件を満たすことを保証する必要がある。そうするために、ソフトウェア技術者は、拡張可能なメディアアプリケーションを、多種多様なメディア形式のメディア作品を確実かつ効率的に取得し、複数のタスクを確実に生成しカスタムアルゴリズムによる並行処理のために複数の「作業者」計算インスタンスに亘って分配し、拡張可能なメディアアプリケーションの最終出力を確実に記憶するように設計する必要がある。従って、拡張可能なメディアアプリケーションを開発することは、組み込まれたカスタムアルゴリズムと、動的ワークフローと、符号化及び復号などのメディア処理手法と、安全な通信手法と、資源割り当て及び負荷バランス手法とに関する技術的ノウハウだけでなくかなりの手作業も必要とする。これらの分野のうち1つ以上における知識の欠如は、ソフトウェア開発者がカスタムアルゴリズムを拡張可能なメディアアプリケーションに適切に組み込みできるのを完全に妨げうる。ソフトウェア開発者は、特定のカスタムアルゴリズムに関わるより限定された処理要件を満たしうるプロトタイプのアプリケーションを製作できそうだが、そのようなプロトタイプのアプリケーションは知的所有権のあるメディア作品の分散処理に関連するより厳しい処理要件を満たすことができない可能性が高い。
カスタムアルゴリズムを拡張可能なメディアアプリケーションにうまく組み込むのに必要な手作業と技術的ノウハウの量とを減らすのに使用されうる従来の処理プラットフォームが存在する。例えば、幾つかの映像配信サービス提供者は、メディアコンテンツライブラリー、メディア処理ツール、負荷再バランスサブシステム、及び安全な記憶サブシステムへの安全なインターフェースを提供する内部メディア処理プラットフォームを構築する。しかし、これらの種類のメディア処理プラットフォームの1つの欠点は、メディア処理プラットフォーム及び関連するアプリケーションは「分散された一枚岩」を成すことである。分散された一枚岩では、1つのアプリケーション又はサービスへの変更は、しばしば他のアプリケーション及びサービスへの変更を必要とする。その結果、そのようなプラットフォームを使用する拡張可能なメディアアプリケーションを一部変更することは、メディア処理プラットフォーム全体が再製作される場合のみ可能である。
拡張可能なメディアアプリケーションのより柔軟な更新を可能にするために、ソフトウェア開発者は、汎用の分散された計算フレームワークを使用して拡張可能なメディアアプリケーションを実施できる。汎用分散計算フレームワークを使用する各拡張可能なメディアアプリケーションは独立して製作され、その汎用分散計算フレームワークを使用する他の拡張可能なメディアアプリケーションとは別に独立して存在する。従って、その汎用分散計算フレームワークを使用する拡張可能なメディアアプリケーションは、その汎用分散計算フレームワークを使用する別のアプリケーションが一部変更される時に再製作される必要がない。しかし、この方法の1つの欠点は、分散計算フレームワークにより管理される各作業者計算インスタンスが適切な実行環境を特定の拡張可能なメディアアプリケーションに提供するのを保証することが不可能でなくても非常に困難であることである。例えば、もし2つの異なる拡張可能なメディアアプリケーションが相反するオペレーティングシステム(OS)依存を必要とするなら、分散計算フレームワークにより管理される特定の作業者計算インスタンスは、それらの拡張可能なメディアアプリケーションの少なくとも1つを適切に実行できないであろう。別の欠点は、汎用分散計算フレームワークを使用して拡張可能なメディアアプリケーションを開発することも、メディア処理技術の深い技術的知識を必要とすることである。これは、上述したように多くのソフトウェア開発者にとってかなりの技術的ハードルとなりうる。
上記で例示されたように、この技術において必要なものは、カスタムアルゴリズムをメディア作品に高いスループットで実行するためのより効果的な手法である。
本発明の1つの実施形態は、カスタムアルゴリズムをメディア作品に実行するためのコンピュータ実行方法を明らかにする。その方法はコンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップとを含み、前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される。
従来技術手法に比べて本開示された手法の少なくとも1つの技術的利点は、本開示の手法を使って分散計算資源によりカスタムアルゴリズムをより容易かつ確実にメディア作品に実行できることである。特に、本開示の手法は、適切なオペレーティングシステム(OS)依存部を含むコンテナを使用してカスタムアルゴリズムをメディア作品に高いスループットで実行できる分割マップ収集ワークフローを提供する。また、本開示の手法は、メディア操作及び保全操作を自動的に実行し、広範囲の潜在的に知的所有権のあるメディア作品にカスタムアルゴリズムを確実かつ正常に実行するのに必要な設計手作業及び技術的知識の量を低減する。これらの技術的利点は従来技術に比べて1つ以上の技術的進歩を提供する。
様々な実施形態の上記の特徴が詳細に理解されうるために、一部が添付の図面に例示された様々な実施形態を参照することで、上記に簡潔に要約された発明概念のより詳細な説明を得られるかもしれない。しかし、添付の図面は発明概念の典型的な実施形態のみを例示し、従って、本発明の範囲を限定すると考えられるべきでは全くなく、他の同様に効果的な実施形態が存在することは留意されるべきである。
本発明の1つ以上の態様を実施するよう構成されたシステムの概念図である。 本発明の様々な実施形態に係る図1のワークフローエンジンにより確立されたワークフローを例示する。 本発明の様々な実施形態に係る図2のコンテナの1つがカスタムアルゴリズムを特定のスプリットに実行するやり方を例示する。 本発明の様々な実施形態に係るメディア作品にカスタムアルゴリズムを実行するための方法ステップのフロー図である。
以下の説明において、様々な実施形態のより完全な理解を提供するために多数の具体的詳細が明らかにされる。しかし、これらの具体的詳細の1つ以上を欠いて発明概念を実施してもよいことは当業者には明白であろう。
多くのメディア提供者は、多数のメディア作品を含むメディアコンテンツライブラリーを有する。各メディア作品は任意のメディア形式に関連する任意の量で種類のコンテンツを任意の技術的に可能なやり方で含む。メディア作品の例は、限定されないが、ソース映像シーケンスを含むMPEG−4映像ファイルと、符号化映像シーケンスを含むH.264符号化映像ファイルとを含む。映像配信サービス提供者は、数千の映像作品の作品毎にMPEG−4映像ファイルと複数のH.264符号化映像ファイルとを含むメディアコンテンツライブラリーを有しうる。
しばしば高いスループットで1つ以上の目的を達成するために、メディア提供者はカスタムアルゴリズムを開発し、そのカスタムアルゴリズムを拡張可能なメディアアプリケーションに組み込み、その拡張可能なメディアアプリケーションをメディアコンテンツライブラリーに含まれたメディア作品に実行する。組み込まれたカスタムアルゴリズムは一連のステップから成り、関連する拡張可能メディアアプリケーションは、複数の計算インスタンスがその一連のステップをメディア作品に実行するよう構成する追加の命令群を含む。目的の幾つかの例は、限定されないが、A/Bテスト、カタログ幅再符号化、映像シーケンスに含まれたフレームに透かしを入れること、関心を引く画像又はフレームのシーケンスを広告の目的で選択すること、及び字幕タイミングエラーを検出することを含む。
従来のシステムでは、カスタムアルゴリズムを高いスループットで確実かつ効率的に実行できる拡張可能メディアアプリケーションを製作することは、通常複雑なプロセスである。例えば、幾つかの従来のシステムでは、ソフトウェア技術者は、拡張可能メディアアプリケーションを、多種多様なメディア形式のメディア作品を確実かつ効率的に取得し、複数のタスクを確実に生成しカスタムアルゴリズムによる並行処理のために複数の「作業者」計算インスタンスに亘って分配し、拡張可能メディアアプリケーションの最終出力を確実に記憶するように設計する必要がある。従って、拡張可能メディアアプリケーションを開発することは、組み込まれたカスタムアルゴリズムと、動的ワークフローと、メディア処理手法(例えば、符号化、復号など)と、安全な通信手法と、資源割り当て及び負荷バランス手法とに関する技術的ノウハウだけでなくかなりの手作業も必要とする。これらの分野のうち1つ以上における知識の欠如は、ソフトウェア開発者がカスタムアルゴリズムを、比較的大きなメディアコンテンツライブラリーに亘って効率的に実行されうる拡張可能メディアアプリケーションに適切に組み込みできるのを妨げうる。
カスタムアルゴリズムを拡張可能メディアアプリケーションにうまく組み込むのに必要な手作業と技術的ノウハウの量とを減らすのに使用されうる従来のメディア処理プラットフォームが存在する。しかし、これらの種類の従来のメディア処理プラットフォームの1つの欠点は、従来のメディア処理プラットフォーム及び関連するアプリケーションは通常「分散された一枚岩」を成すことである。分散された一枚岩では、1つのアプリケーション又はサービスへの変更は、しばしば他のアプリケーション及びサービスへの変更を必要とする。その結果、そのようなプラットフォームを使用する拡張可能メディアアプリケーションを一部変更することは、そのプラットフォーム全体が再製作される場合のみ可能である。その結果、特定のカスタムアルゴリズムの変更は、関連する拡張可能メディアアプリケーションを介して利用可能になるのに数日又は数週間かかる場合がある。
拡張可能メディアアプリケーションのより柔軟な更新を可能にするために、ソフトウェア開発者は、汎用の分散された計算フレームワークを使用して拡張可能メディアアプリケーションを実施できる。汎用分散計算フレームワークは、フレームワークを使用するアプリケーションがそのフレームワーク及びフレームワークを使用する他のアプリケーションから独立して一部変更されたり製作されたりするのを許す。しかし、この方法の1つの欠点は、分散計算フレームワークにより管理される各作業者計算インスタンスが適切な実行環境を特定の拡張可能メディアアプリケーションに提供するのを保証することが不可能でなくても非常に困難であることである。別の欠点は、汎用分散計算フレームワークを使用して拡張可能メディアアプリケーションを開発することも、メディア処理技術の深い技術的知識を必要とすることである。これは、上述したように多くのソフトウェア開発者にとってかなりの技術的ハードルとなりうる。
しかし、開示される手法により、ジョブ管理サブシステム及び関連するプラットフォーム代理部は、カスタムアルゴリズムのための適切な実行環境を保証しながらカスタムアルゴリズムを高いスループットで実行するのに必要な技術的知識の量を低減する。通常、ジョブ管理サブシステム及びプラットフォーム代理部は任意の数の従来の手法を実行して、メディアコンテンツライブラリーからメディア作品を確実かつ効率的に取得し、多種多様なメディア形式を正しく解釈し、複数のタスクを確実に生成し複数の作業者計算インスタンスに亘って分配し、拡張可能メディアアプリケーションにより生成された結果を確実に記憶する。しかし、通常の従来の処理プラットフォームと違い、ジョブ管理サブシステムはメディア作品に最適化されたワークフローを駆動する。このワークフローはコードの独立した実行可能なインスタンスであって、「コンテナ」と呼ばれる複数のインスタンスを使用する。
カスタムアルゴリズムは、限定されないが、分割機能、マップ機能、及び収集機能の3つの機能を含む拡張可能メディアアプリケーションに組み込まれる。分割機能は1つ以上のメディア作品をより小さな単位又は「スプリット」に分割する。マップ機能はカスタムアルゴリズムを特定のスプリットに適用する。収集機能はカスタムアルゴリズムを全てのスプリットに適用した結果を結合する。拡張可能メディアアプリケーション、プラットフォーム代理部、及び任意のオペレーティングシステム依存部が結合されコンテナイメージを生成する。「コンテナイメージ」は独立した実行可能なコードを含む静的ファイルであり、このコードは、限定されないが任意の数のアプリケーションと関連する依存部とを含む独立したソフトウェアパッケージを提供する。1つの計算インスタンス上で実行されると、コンテナイメージは、依存部を提供すると共に含まれたどのアプリケーションも実行できる「コンテナ」を生成する。説明の目的のために、コンテナイメージから生成され特定の拡張可能メディアアプリケーションを含むコンテナはその拡張可能メディアアプリケーションと「関連」する。
コンテナイメージ及び1つ以上のメディア作品のリストを指定するジョブ要求を受信すると直ぐ、ジョブ管理サブシステムに含まれたワークフローエンジンはその1つ以上のメディア作品を指定するスプリットタスクを生成する。スプリットタスクに応答して、関連するコンテナに含まれたプラットフォーム代理部はメディアコンテンツライブラリーからそのメディア作品を取得する。次に、プラットフォーム代理部は分割機能をそのメディア作品に実行して複数のスプリットを決定する。次に、ワークフローエンジンはスプリット毎に別のマップタスクを生成する。各マップタスクは、潜在的に異なる関連するコンテナに含まれたプラットフォーム代理部により処理される。従って、任意の数の関連するコンテナは、それらのマップタスクを同時に、順次、又はそれらの任意の組み合わせで処理してもよい。特定のマップタスクに応答して、プラットフォーム代理部はマップ機能をメディア作品のスプリットに関連する部分に実行する。重要なことに、プラットフォーム代理部は、メディア作品の適切な部分が多様なメディア形式のためのマップ機能による処理の対象であることを保証する。次に、プラットフォーム代理部はマップ機能の結果を安全な記憶部に記憶する。そのジョブに関連する全てのマップタスクの実行が完了すると、ワークフローエンジンは収集タスクを生成する。その収集タスクに応答して、関連するコンテナに含まれたプラットフォーム代理部は収集機能をそれら別々のマップ機能の結果に実行して次に収集機能の結果を安全な記憶部に記憶する。
有利にも、ジョブ処理プラットフォーム及び関連するプラットフォーム代理部は、カスタムアルゴリズムをメディア作品に従来の拡張可能メディアアプリケーション及び従来の処理プラットフォームにより実行することの様々な欠点に対処する。カスタムアルゴリズムを適切なOS依存部を含むコンテナに組み込むことは、カスタムアルゴリズムの確実な実行を可能にし、コンテナに関連するカスタムアルゴリズムを他のコンテナに関連する他のカスタムアルゴリズムへの変更から隔離する。予め規定された分割マップ収集ワークフローは、ソースメディア作品の異なる部分にカスタムアルゴリズムを並行実行する機会を自動的に提供する。また、ジョブ処理プラットフォーム及び関連するプラットフォーム代理部は、広範囲の潜在的に知的所有権のあるメディア作品にカスタムアルゴリズムを確実かつ正常に実行するのに必要な設計手作業及び技術的知識の量を低減する機能性を提供する。これらの技術的利点は従来技術に比べて1つ以上の技術的進歩を提供する。
システム概要
図1は本発明の1つ以上の態様を実施するよう構成されたシステム100の概念図である。図示のように、システム100は、限定されないがメディアコンテンツライブラリー198、安全な記憶部120、任意の数の計算インスタンス110、イメージレジストリ130、任意の数のコンテナ180、及びジョブ要求190を含む。説明の目的のために、同様の物の複数のインスタンスは、その物を特定する符号と必要に応じてインスタンスを特定する丸括弧で囲んだ数字とにより示される。
様々な実施形態では、システム100の任意の数の構成要素が複数の地理的場所に亘って分散されても又は1つ以上のクラウドコンピューティング環境(即ち、包含された共有資源、ソフトウェア、データなど)に実現されても、又はこれらの任意の組み合わせでもよい。別の実施形態では、システム100は任意の数のメディアコンテンツライブラリー190、任意の量と種類の安全な記憶部120、任意の数のイメージレジストリ130、及び任意の数のジョブ要求190を含んでもよい。
メディアコンテンツライブラリー198は、限定されないが任意の数のメディア作品196を含む。各メディア作品196は、任意のメディア形式を使用する任意の量と種類の映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツを任意の組み合わせで含む。メディア作品196の幾つかの例は、限定されないがソース映像シーケンスを含むMPEG−4映像ファイルと、符号化映像シーケンスを含むH.264符号化映像ファイルと、ソース音声シーケンスを含むWindows Media(登録商標)Audioファイルと、テキストコンテンツを含むテキストファイルとを含む。
安全な記憶部120は、データを安全に記憶できる任意の量と種類のメモリ資源を含む。例えば、幾つかの実施形態では、安全な記憶部120は安全記憶サブシステムにより管理されデータを暗号化された形態で記憶する。様々な実施形態では、安全な記憶部120は任意の技術的に可能な方法で実現された任意の種類の記憶装置で置き換えられてよい。例えば、安全な記憶部120は、任意の形式の任意の量と種類のデータを記憶する任意の量と種類のクラウドベースのメモリ資源で置き換えられてよい。
計算インスタンス110(1)について示したように、各計算インスタンス110は、限定されないがプロセッサ112及びメモリ116を含む。プロセッサ112は、命令を実行できる任意の命令実行システム、装置、又はデバイスであってよい。例えば、プロセッサ112は中央処理装置(CPU)、グラフィック処理装置(GPU)、コントローラ、マイクロコントローラ、状態マシン、又はこれら装置の任意の組み合わせから成ってもよい。メモリ116はソフトウェアアプリケーション及びデータなどのコンテンツを計算インスタンス110のプロセッサ112による使用のために記憶する。
メモリ116は、1つ以上の容易に入手可能なメモリ、例えばランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フロッピー(登録商標)ディスク、ハードディスク、又は任意の他の形態のデジタル記憶装置、局所又は遠隔の、であってもよい。幾つかの実施形態では、記憶装置(不図示)がメモリ116を補っても又は置き換えてもよい。その記憶装置は、プロセッサ112にとってアクセス可能な任意の数と種類の外部メモリを含んでもよい。例えば、その記憶装置は、限定されないがSecure Digital Card、外部Flashメモリ、携帯コンパクトディスク読み出し専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含んでもよい。
各計算インスタンス110は1つ以上のアプリケーション又はアプリケーションのサブシステムを実行するように構成される。また、下記に詳細に説明するように、各計算インスタンス110は1つ以上のコンテナ180を実行してもよい。各コンテナ180は任意の数のアプリケーションを実行する。説明の目的だけのために、各アプリケーションは、単一の計算インスタンス110のメモリ116に存在しその単一の計算インスタンス110のプロセッサ112上で動作するとして描かれている。しかし、当業者は認識するように、各アプリケーションの機能は、任意の数の計算インスタンス110のメモリ116に存在する任意の数の他のアプリケーションに亘って分散され、任意の組み合わせで任意の数の計算インスタンス110のプロセッサ112上で動作してもよい。また、任意の数のアプリケーション又はサブシステムの機能は単一のアプリケーション又はサブシステムに統合されてもよい。
特に、計算インスタンス110(1)はシステム100がカスタムアルゴリズム(図1に不図示)をメディア作品196に高いスループットで実行するのを可能にする。一般に、カスタムアルゴリズムをメディア作品に効率的かつ確実に高いスループットで実行することは、そのカスタムアルゴリズムを拡張可能メディアアプリケーションに組み込むことを含む複雑なプロセスである。本書に記述したように、組み込まれたカスタムアルゴリズムは一連のステップから成り、一方、関連する拡張可能アプリケーションは、複数の計算インスタンス110が、その組み込まれたカスタムアルゴリズムを構成する一連のステップを実行するよう構成する1組の命令から成る。
多くの従来のシステムでは、従来の拡張可能メディアアプリケーションを開発することは、組み込まれたカスタムアルゴリズムと、動的ワークフローと、符号化、復号などのメディア処理手法と、安全な通信手法と、資源割り当て及び負荷バランス手法とに関する技術的ノウハウだけでなくかなりの手作業も必要とする。これらの分野のうち1つ以上における知識の欠如は、ソフトウェア開発者がカスタムアルゴリズムを従来の拡張可能メディアアプリケーションに適切に完全に組み込みできるのを妨げうる。
カスタムアルゴリズムを拡張可能メディアアプリケーションにうまく組み込むのに必要な手作業及び技術的ノウハウの量を低減するのに使用できる従来のメディア処理プラットフォームが存在する。当業者は認識するように、これらの種類の従来のメディア処理プラットフォームの1つの欠点は、そのプラットフォームを使用する1つのアプリケーション又はサービスへの変更は、しばしばそのプラットフォームを使用する他のアプリケーション及びサービスへの変更を必要とすることである。その結果、そのようなプラットフォームを使用する従来の拡張可能メディアアプリケーションを一部変更することは、従来のメディア処理プラットフォーム全体が再製作される場合のみ可能である。
従来の拡張可能メディアアプリケーションのより柔軟な更新を可能にするために、ソフトウェア開発者は、汎用の分散された計算フレームワークを使用して従来の拡張可能メディアアプリケーションを実施できる。当業者は認識するように、汎用分散計算フレームワークを使用するアプリケーションは、その汎用分散計算フレームワークを使用する別のアプリケーションが一部変更される時に必ずしも再製作される必要はない。しかし、この方法の1つの欠点は、分散計算フレームワークにより管理される各作業者計算インスタンスが適切な実行環境を特定のアプリケーションに提供するのを保証することが不可能でなくても非常に困難であることである。別の欠点は、汎用分散計算フレームワークを使用して従来の拡張可能メディアアプリケーションを開発することも、メディア処理技術の深い技術的知識を必要とすることである。これは、上述したように多くのソフトウェア開発者にとってかなりの技術的ハードルとなりうる。
コンテナを使用してカスタムアルゴリズムをメディア作品に実行
上記の問題に対処するために、システム100は、限定されないが、コンテナを使用して分割マップ収集ワークフローを共同で確立するジョブ管理サブシステム150及びプラットフォーム代理部134を含む。分割マップ収集ワークフローは、各メディア作品196の並行処理を可能にする。ジョブ管理サブシステム150は計算インスタンス110(1)のメモリ116に常駐し、計算インスタンス110(1)のプロセッサ112上で動作する。プラットフォーム代理部134はジョブ管理サブシステム150と拡張可能メディアアプリケーション140の間のインターフェースである。説明の目的だけのために、ジョブ管理サブシステム150とプラットフォーム代理部134の組み合わせを本書では「ジョブ管理プラットフォーム」とも呼ぶ。特に、様々な実施形態では、ジョブ管理プラットフォームはどのメディア関連対象物も第1クラス対象物として扱う(例えば、作用する、処理するなど)かもしれない。例えば、幾つかの実施形態では、ジョブ管理プラットフォームはフレームを映像コンテンツの第1クラス対象物として、チャネルを音声コンテンツの第1クラス対象物として扱う。
当業者は認識するように、各コンテナ180は、コンテナイメージ132が計算インスタンス110上で実行された時に生成される独立した実行可能なコードインスタンスである。図示のように、システム100は、限定されないが任意の数のコンテナイメージ132を含むイメージレジストリ130を備える。各コンテナイメージ132は独立した実行可能なコードを含む静的なファイルである。独立した実行可能なコードは、限定されないがプラットフォーム代理部134、拡張可能メディアアプリケーション140、及び依存部136を含む独立したソフトウェアパッケージを提供する。依存部136は、限定されないがオペレーティングシステム依存部及び言語依存部を含み、これらはプラットフォーム代理部134及び拡張可能メディアアプリケーション140に実行時環境を提供する。
計算インスタンス110上で実行された時に、コンテナイメージ132は、依存部136を提供すると共にプラットフォーム代理部134及び拡張可能メディアアプリケーション140を実行できるコンテナ180を生成する。本書に記述したように、コンテナイメージ132から生成され特定の拡張可能メディアアプリケーション140を含むコンテナ180は、その拡張可能メディアアプリケーション140と「関連」する。任意の数の計算インスタンス110が複数のコンテナ180を実行してよい。また、各計算インスタンス110は任意の数のコンテナイメージ132と関連する任意の数のコンテナ180を同時に実行してもよい。
図示のように、拡張可能メディアアプリケーション140は、限定されないが分割機能142、マップ機能144、及び収集機能146を含む。分割機能142はメディア作品196をより小さな単位又は「スプリット」に分割する。マップ機能144は関連するカスタムアルゴリズムを特定のスプリットに適用する。収集機能146は関連するカスタムアルゴリズムを全てのスプリットに適用した結果を結合する。特に、プラットフォーム代理部134は、拡張可能メディアアプリケーション140が使用できる任意の数と種類の内蔵機能を提供する。分割機能142、マップ機能144、及び収集機能146のそれぞれは、プラットフォーム代理部134により提供されるカスタム機能又は内蔵機能でありうる。
1つの代表的なカスタム分割機能142は、メディア作品196(5)の第1の5分間を含む第1のスプリットとそのメディア作品196(5)の最後の3分間を含む第2のスプリットとを生成する。別の代表的なカスタム分割機能142は、特定の映画のソース映像シーケンスであるメディア作品196(1)とその映画の符号化された映像シーケンスであるメディア作品196(2)とに基づいてスプリットを生成する。第1のスプリットはメディア作品196(1)及び196(2)の第102フレームの非圧縮の及び復号されたバージョンを含み、第2のスプリットはメディア作品196(1)及び196(2)の第2099フレームの非圧縮の及び復号されたバージョンを含む。内蔵分割機能142の一例は、メディア作品196(x)と関連する実行時間に基づいてメディア作品196(x)を分割する時間ベースの分割機能である。内蔵分割機能142の別の例は、場面変化データに基づいてメディア作品196(x)を複数の場面シーケンスに分割する場面ベースの分割機能である。各場面シーケンスは、類似の空間時間特性を通常有し連続した期間継続する1組のフレームを含む。
内蔵マップ機能144の一例は、何も操作を行わず、カスタムアルゴリズムを各スプリットに適用することなく分割機能142及び収集機能146を実行する拡張可能メディアアプリケーション140を生成するのに使用される。内蔵収集機能146の一例は、異なるスプリットに基づいてマップ機能144により生成されたマップ出力ファイルを収集し単一のZipファイルにするZipファイル収集機能である。内蔵収集機能146の別の例は、異なるスプリットに基づいてマップ機能144により生成されたマップ出力ファイルのコンテンツをそれらのスプリットに関連する順番にバイト連結する連結収集機能である。他の実施形態では、任意の組み合わせで任意の数と種類の内蔵機能が取得され、拡張可能メディアアプリケーション140内で任意の技術的に可能なやり方で使用されてよい。
分割機能142、マップ機能144、及び収集機能146は任意の技術的に可能なやり方及び任意の言語で規定されてよい。例えば、幾つかの実施形態では、分割機能142への入力は1つ以上のメディア作品196であり、分割機能142の出力は、JavaScript Object Notation(JSON)で記述された分割指定ファイルである。映像ソースに対して、分割指定ファイルは開始及び終了フレーム番号で表される各スプリットの境界を含む。各スプリットは単位スプリット識別子で識別される。分割指定ファイルは連続するスプリット間の重なりの指定も許す。プラットフォーム代理部134は、拡張可能メディアアプリケーション140による実行のためのタスク(例えば、ワークの個別部分)を取得し、拡張可能メディアアプリケーション140により操作されるファイルに前処理操作を実行し、拡張可能メディアアプリケーション140に含まれた機能を呼び出し、拡張可能メディアアプリケーション140により生成された結果に後処理操作を実行する。プラットフォーム代理部134は、任意の技術的に可能なやり方でタスクを取得してよい。例えば、幾つかの実施形態では、プラットフォーム代理部134は1つ以上の持続優先度付きキューをタスクを求めて監視する。前処理操作及び後処理操作は、任意の数と種類の安全関連操作、メディア処理操作、フォーマット操作などを含んでもよい。
例えば、幾つかの実施形態では、プラットフォーム代理部134はメディアコンテンツライブラリー198から符号化された映像シーケンスを確実に取得し、その符号化された映像シーケンスを復号し、スプリットに対応するフレームを安全な記憶部120に確実にアップロードする。同じ又は他の実施形態では、プラットフォーム代理部134は拡張可能メディアアプリケーション140により生成された結果を暗号化し、暗号化された結果を最終出力ファイルとして安全な記憶部120に確実にアップロードし、拡張可能メディアアプリケーション140により生成されたどの一時ファイル及びディレクトリも削除し、タスクが完了するとジョブ管理サブシステム150に通知する。幾つかの実施形態では、プラットフォーム代理部134は追加の操作、例えば使用メトリックを収集及び報告すること、及び自動的に映像シーケンスをJPEG又はPortable Network Graphics(PNG)画像に変換することを行う。
図示のように、ジョブ管理サブシステム150は、限定されないがジョブインターフェースエンジン152、状態エンジン154、ワークフローエンジン162、ジョブ状態データベース164、タスクエンジン172、及び自動拡張機能174を含む。ジョブインターフェースエンジン152は、他のアプリケーション及びユーザーがジョブ要求190を出し管理するのを可能にする外部に面する構成要素である。ジョブインターフェースエンジン152は任意の技術的に可能なやり方で実現されてよい。例えば、幾つかの実施形態では、ジョブインターフェースエンジン152は任意の数のRepresentational State Transfer(REST)アプリケーションプログラミングインターフェース(API)のホストとして働く。
各ジョブ要求190は、限定されないがイメージ識別子192及びメディア作品識別子リスト194を含む。イメージ識別子192はイメージレジストリ130に含まれるコンテナイメージ132の1つを一意に特定する。メディア作品識別子リスト194は任意の数のメディア作品識別子(不図示)を含む。各メディア作品識別子はメディアコンテンツライブラリー198に含まれるメディア作品196の1つを一意に特定する。様々な実施形態では、ジョブ要求190は要求されたワークに関係する任意の量の追加の情報を任意の技術的に可能なやり方で指定してもよい。他の実施形態では、ジョブ要求190はコンテナイメージ132と任意の数のメディア作品196を任意の技術的に可能なやり方で指定してもよい。例えば、幾つかの実施形態では、ジョブ要求190はメディア作品196(x)の遠隔ファイル位置を指定してもよい。このような実施形態では、メディア作品196(x)はメディアコンテンツライブラリー198に必ずしも含まれない。
ユーザーに関連するジョブ要求190(x)を受信すると直ぐ、ジョブインターフェースエンジン152は新しいジョブ(不図示)を生成する。新しいジョブを生成することの一部として、ジョブインターフェースエンジン152はイメージ識別子192に基づいてイメージレジストリ130からコンテナイメージ132(z)を取得する。次に、ジョブインターフェースエンジン152はその新しいジョブを一意に特定するジョブ識別子196をユーザーに提供する。
ジョブインターフェースエンジン152が新しいジョブを生成した後、ワークフローエンジン162はそのジョブを実行する。ジョブ要求190(x)に対応するそのジョブを実行するために、ワークフローエンジン162は、コンテナイメージ132(z)及びメディア作品識別子リスト194に基づいて分割マップ収集ワークフロー(図1に不図示)を駆動する。より具体的には、ワークフローエンジン162は、コンテナイメージ132(z)と関連する任意の数のコンテナ180を使用してメディア作品識別子リスト194により指定されたメディア作品196に対してワークフローを実行する。各ジョブは、限定されないが1つのスプリットタスク、それに続くN個のマップタスク、それに続く1つの収集タスクを含む(Nはスプリットの総数)。
先ず、ワークフローエンジン162はメディア作品識別子リスト194を指定するスプリットタスクを生成する。次に、ワークフローエンジン162は、コンテナイメージ132(z)に関連するコンテナ180に含まれたプラットフォーム代理部134に分割機能142を使用してそのスプリットタスクを実行させる。そのスプリットタスクの実行の一部として、プラットフォーム代理部134はメディア作品リスト識別子194に基づいてメディアコンテンツライブラリー198からメディア作品196を取得する。他の実施形態では、ジョブ要求190は任意の数のメディア作品196を指定してよく、プラットフォーム代理部134はメディア作品196を任意の技術的に可能なやり方で取得してよい。例えば、幾つかの実施形態では、ジョブ要求190は任意の数のメディア作品196のファイル位置を指定してよく、プラットフォーム代理部134はそのファイル位置に基づいてメディア作品196を取得してよい。
スプリットタスクが実行を完了した後、ワークフローエンジン162は、スプリットタスクにより決められた各スプリットに対して別のマップタスクを生成する。各マップタスクについて、ワークフローエンジン162は、コンテナイメージ132(z)と関連する潜在的に異なるコンテナ180に含まれたプラットフォーム代理部134にマップ機能144を使用してそのマップタスクを実行させる。任意の数のコンテナ180は任意の数のマップタスクを順次、同時に、又はそれらの任意の組み合わせで実行してよい。
全てのマップタスクが実行を完了した後、ワークフローエンジン162は、コンテナイメージ132(x)と関連するコンテナ180の1つに含まれたプラットフォーム代理部134に収集機能146を使用してその収集タスクを実行させる。ワークフローエンジン162は、ワークフローエンジン162は、全てのマップタスクが実行を完了したと任意の技術的に可能なやり方で判断してもよい。例えば、幾つかの実施形態では、特定のマップタスクを実行することは、1つ以上の関連するマップ出力ファイルを生成し、ワークフローエンジン162は、マップ出力ファイルが正常に生成された時にマップタスクが実行を完了したと考える。他の実施形態では、ワークフローエンジン162は、マップタスクが実行を完了したか否かをワークフローエンジン162とコンテナ180との間で行き交うメッセージに基づいて判断する。通常、収集タスクは1つ以上の最終出力ファイルを生成する。次に、最終出力ファイルは、そのジョブに関連するメディア作品196に評価操作、部分変更操作、及びメディア作品196に関して表現操作のうち少なくとも1つを実行するのに使用される。
ワークフローエンジン162は、複数の異なるコンテナ180に含まれたプラットフォーム代理部134の複数の異なるインスタンスに複数のタスクを任意の技術的に可能なやり方で実行させる。例えば、幾つかの実施形態では、ワークフローエンジン162は、タスクエンジン172を使用してプラットフォーム代理部134の異なるインスタンスにタスクを実行させる。タスクエンジン172は、タスクをコンテナ130に送り追加の機能、例えばプラットフォームレベル暗黙的再試行を提供する優先度ベースのメッセージングシステムである。タスクを実行するために、ワークフローエンジン162は、そのタスクをタスクエンジン172により管理された任意の数の持続優先度付きキューの1つに加える。
自動拡張機能174はアプリケーション重みを理解し、入手可能な計算資源を活動中の複数の拡張可能メディアアプリケーション140に亘って関連する重み及び負荷に基づいて分配する。計算インスタンス110を特定の拡張可能メディアアプリケーション140に割り当てるために、自動拡張機能174はその拡張可能メディアアプリケーション140に関連するコンテナイメージ132を計算インスタンス110上で実行する。重要なことに、もし自動拡張機能174が、タスクが未処理である拡張可能メディアアプリケーション140(x)に関連するコンテナ180がないことを検出すると、自動拡張機能174は、その拡張可能メディアアプリケーション140(x)を含むコンテナイメージ132(x)を実行して新しいコンテナ180を生成する。
他の実施形態では、システム100に含まれるどの構成要素も任意の量と種類の資源管理及び/又はコンテナ管理動作を任意の技術的に可能なやり方で実行してよい。例えば、幾つかの実施形態では、ワークフローエンジン162は計算資源を活動中の複数の拡張可能メディアアプリケーション140に亘って分配し、複数のコンテナ180を生成し、複数のタスクをプラットフォーム代理部134の複数の異なるインスタンスに直接送信する。
ジョブ状態データベース164はジョブの状態をジョブ識別子192に基づいて記憶する。各ジョブの状態はワークフローにおける現在ステップとその現在ステップと関連するタスクの現在状態(例えば、実行中、中断中、完了、失敗)とを示す。例えば、特定のジョブの状態は、そのジョブがマップステップにあり、500個のスプリットのうち200個と関連するマップタスクが正常に終了したでありうる。ワークフローエンジン162はジョブ状態データベース164を使用してジョブ毎に分割マップ収集ワークフローを駆動し、状態エンジン154はジョブ状態データベース164を使用してジョブ状態をユーザーに提供する。
状態エンジン154は、ユーザーが各ジョブの状態を関連するジョブ識別子196を使用して判断するのを可能にするユーザーインターフェースアプリケーションである。状態エンジン154は各ジョブの状態を任意の技術的に可能なやり方及び任意の細分レベルで提供してよい。幾つかの実施形態では、状態エンジン154は分割、マップ、及び収集ステップに分けられた各ジョブの進行をグラフで描くGUIである。同じ又は他の実施形態では、状態エンジン154は実行中、中断中、完了、及び失敗タスクのリストをグラフで表示する。
本書に記載された手法は限定ではなく例示であり、本発明のより広い要旨及び範囲から逸脱することなく変更されてもよい。記載された実施形態及び手法の範囲及び要旨から逸脱することなく多くの改良や変更は当業者にとって明らかであろう。概要として、本書に概説した手法は、任意の数のコンテナ180を使用してカスタムアルゴリズムをメディア作品196に実行する分割マップ収集ワークフローを駆動するのに適用できる。
例えば、他の実施形態では、ワークフローエンジン162は、複数のコンテナ180に分割機能142、マップ機能144、及び収集機能146を分割マップ収集ワークフローと整合する任意の技術的に可能なやり方で実行させる。また、幾つかの他の実施形態では、本書に記載されたシステム100に含まれるアプリケーション及び構成要素の機能は、システム100に含まれても含まれなくてもよい任意の数の他のアプリケーション及び構成要素に亘って分散されてもよい。例えば、プラットフォーム代理部134及びタスクエンジン172の機能の任意の量が、ワークフローエンジン162に包含されてもよい。
自動的に分割マップ収集ワークフローを実行
図2は、本発明の様々な実施形態に係る図1のワークフローエンジン162により確立されたワークフロー210を例示する。図2には示されていないが、ワークフローエンジン162は、コンテナイメージ132(x)及びメディア作品196(y)を指定するジョブ要求190に応答してワークフロー210を実行する。説明の目的だけのために、コンテナ180(1)〜180(5)はコンテナイメージ132(x)と関連し、メディア作品196(y)は映像ファイルである。
図示のように、ワークフローエンジン162がコンテナ180(1)に含まれたプラットフォーム代理部134に分割機能142をメディア作品196(y)に実行させる時に、ワークフロー210は開始する。分割機能142はスプリット220(1)〜220(5)を指定する分割指定ファイル(図2に不図示)を生成する。スプリット220(1)は、限定されないがメディア作品196(y)のフレーム0〜47を含む。スプリット220(2)は、限定されないがメディア作品196(y)のフレーム48〜95を含む。スプリット220(3)は、限定されないがメディア作品196(y)のフレーム96〜143を含む。スプリット220(4)は、限定されないがメディア作品196(y)のフレーム144〜191を含む。スプリット220(5)は、限定されないがメディア作品196(y)のフレーム192〜239を含む。他の実施形態では、分割機能142は任意の数のメディア作品196を任意の数のスプリット220に分割し、各スプリット220は異なる数のメディア対象物(例えば、フレーム、チャネルなど)を含んでよい。
分割機能142が実行を完了した後、ワークフローエンジン162は、コンテナ180(1)〜180(5)に含まれるプラットフォーム代理部134の複数の異なるインスタンスにマップ機能144の関連するインスタンスをそれぞれスプリット220(1)〜220(5)に対して実行させる。なお、コンテナ180(1)〜180(5)は概ね互いに並行に実行してもよい。マップ機能144が実行を完了した後、ワークフローエンジン162はコンテナ180(1)に収集機能146を実行させて任意の数の最終出力ファイル(不図示)を生成する。最終出力ファイルはコンテナイメージ132(x)に関連する拡張可能メディアアプリケーション140をメディア作品196(y)に実行した結果を統合したものである。
図3は、本発明の様々な実施形態に係る図2のコンテナ180の1つがカスタムアルゴリズムを特定のスプリット220に実行するやり方を例示する。より具体的には、図3は、コンテナ180(1)に含まれたプラットフォーム代理部134及びマップ機能144がスプリット220(1)を指定するマップタスクに応答してスプリット220(1)に実行する「マップタスク操作」を描写する。特に、マップ機能144はカスタムアルゴリズムが組み込まれている。説明の目的だけのために、図3はマップタスク操作を一連の番号付き丸として描いている。
先ず、番号1の丸で描かれているように、プラットフォーム代理部134はマップ機能144による処理のためにマップ入力ファイル312を用意する。図示のように、マップ入力ファイル312は、ネットワーク実装法によりマップ機能144にとって入手可能にされた安全な記憶部120に含まれている。マップ入力ファイル312は、限定されないがスプリット220(1)に含まれたフレームを指す。マップ入力ファイル312を用意することの一部として、プラットフォーム代理部134は、マップ入力ファイル312がコンテナ180(1)にとって入力ディレクトリ310を介してアクセス可能であることを可能にする1つ以上の操作(例えば、コピー操作、実装操作など)を実行する。
次に、番号2の丸で描かれているように、プラットフォーム代理部134は状況情報322を用意する。不図示だが、状況情報322は、限定されないがマップ機能144がスプリット220(1)に実行するのに必要な任意の量と種類の情報を含む。特に、状況情報322は入力ディレクトリ310の位置、出力ディレクトリ390の位置、及びスプリット220(1)と関連する任意の数のメディア属性を指定する。メディア属性の例は1秒当たりのフレーム数である。次に、プラットフォーム代理部134はマップ機能144を状況情報322で呼び出す(番号3の丸)。
番号4の丸で描かれているように、マップ機能144は状況情報322及びマップ入力ファイル312を読み込む。次に、マップ機能144は、マップ機能144に組み込まれたカスタムアルゴリズムを実行する(番号5の丸)。番号6の丸で描かれているように、マップ機能144は任意の数のマップ出力ファイル392を出力ディレクトリ390に書き込む。マップ出力ファイル392はそのカスタムアルゴリズムをスプリット220(1)に実行した結果である。
マップ機能144が実行を完了した後、番号7の丸で描かれているように、プラットフォーム代理部134は、マップ出力ファイル392を安全な記憶部120に記憶する。最後に、番号8の丸で描かれているように、プラットフォーム代理部134は、任意の数の片付け操作を実行する。片付け操作の一例は、マップ機能144がスプリット220(1)を処理時に生成したどんな一時ファイル及びディレクトリも削除することである。
図3に描かれていないが、番号付き丸1〜8により描かれたマップタスク操作の前に、コンテナ180(1)に含まれたプラットフォーム代理部134及び分割機能142は、同様のシーケンスの操作を実行して分割タスクを行った。そして、番号付き丸1〜8により描かれたマップタスク操作に続いて、コンテナ180(1)に含まれたプラットフォーム代理部134及び収集機能146は、同様のシーケンスの操作を実行して収集タスクを行う。
図4は本発明の様々な実施形態に係るメディア作品にカスタムアルゴリズムを実行するための方法ステップのフロー図である。方法ステップは図1〜3のシステムを参照して説明されるが、当業者は方法ステップを任意の順に実行するよう構成された任意のシステムが本発明の範囲に入ることを理解するであろう。
図示のように、方法400は、ジョブインターフェースエンジン152がユーザーからジョブ要求190を受信するステップ402から始まる。ジョブ要求190は、限定されないがイメージ識別子192及びメディア作品識別子リスト194を指定する。ステップ404では、ジョブインターフェースエンジン152は新しいジョブをジョブ要求190に基づいて初期化し関連するジョブ識別子196をユーザーに送信する。ステップ406では、ジョブインターフェースエンジン152がイメージ識別子192に基づいてイメージレジストリ130から対象コンテナイメージ132を取得する。他の実施形態では、ジョブインターフェースエンジン152は対象コンテナイメージ132を任意の技術的に可能なやり方で任意の種類のイメージ識別子に基づいて取得してもよい。
ステップ408では、ワークフローエンジン162は対象コンテナイメージ132に関連するコンテナ180のうち1つに分割機能142をメディア作品識別子リスト194により指定されたメディア作品196に実行させて複数のスプリット220を生成する。ステップ410では、各スプリット220について、ワークフローエンジン162は、対象コンテナイメージ132に関連するコンテナ180のうち潜在的に異なる1つにマップ機能144をそのスプリット220に実行させて1つ以上のマップ出力ファイル392を生成する。ステップ412では、マップ機能144の複数の異なるインスタンスがそれらのスプリット220に対する実行を完了した後、ワークフローエンジン162は対象コンテナイメージ132に関連するコンテナ180のうち1つに収集機能146を異なるスプリット220に関連するマップ出力ファイル392に対して実行させて最終出力ファイルを生成する。最終出力ファイルはメディア作品識別子リスト194により指定されたメディア作品196に評価操作、部分変更操作、及びメディア作品196に関して表現操作のうち少なくとも1つを実行するのに使用されてよい。
ステップ414では、ジョブインターフェースエンジン152は、ジョブインターフェースエンジン152が新しいジョブ要求190を受信したか否かを判断する。ステップ414で、ジョブインターフェースエンジン152が新しいジョブ要求190を受信したと判断すると、方法400はステップ402に戻り、ジョブインターフェースエンジン152とワークフローエンジン162は新しいジョブ要求190を実行する。しかし、ステップ414で、ジョブインターフェースエンジン152が新しいジョブ要求190を受信していないと判断すると、方法400は終了する。
要約すると、開示された手法は、分散さえた計算資源によりカスタムアルゴリズムをメディアコンテンツに効率的に実行するのに使用されてよい。カスタムアルゴリズムは拡張可能メディアアプリケーションに含まれた分割、マップ、及び収集機能に組み込まれる。プラットフォーム代理部は「オーバーヘッド」機能を実行する。例えば、様々な実施形態では、プラットフォーム代理部は、多種多様なメディア形式のためのメディアコンテンツライブラリーからメディア作品を確実に取得し、符号化及び復号などのメディア処理操作を自動的に行い、ファイルを安全な記憶部に確実に記憶する。プラットフォーム代理部、拡張可能メディアアプリケーション、及び拡張可能メディアアプリケーションのどの依存部も、イメージレジストリに記憶されるコンテナイメージに含まれる。カスタムアルゴリズムは、少なくともコンテナイメージ及び1つ以上のメディア作品を指定するジョブ要求を介して実行される。
ジョブ要求を受信すると直ぐ、ワークフローエンジンはジョブ要求及び分割マップ収集ワークフローに基づいて新しいジョブを実行する。先ず、ワークフローエンジンはジョブ要求に関連するメディア作品を指定する1つの「スプリット」タスクを生成する。ワークフローエンジンはそのタスクをコンテナイメージに関連するコンテナによる実行のためにキューに入れる。コンテナイメージに関連するコンテナが無い場合は、自動拡張機能は、利用可能な計算インスタンスにコンテナイメージを実行させ、これによりそのコンテナイメージと関連する新しいコンテナを生成する。スプリットタスクを実行するために、そのコンテナに含まれたプラットフォーム代理部は、メディア作品を確実に取得し、分割機能をメディア作品に実行する。分割機能はメディア作品を複数のスプリットに分割し、それらのスプリットを指定する分割指定ファイルを生成する。
スプリットタスクが実行を完了したと判断すると直ぐ、ワークフローエンジンは分割指定ファイルに指定された各スプリットの異なる「マップ」タスクを生成する。ワークフローエンジンはそれらのマップタスクをコンテナイメージに関連するコンテナによる実行のためにキューに入れる。このように、それらのマップタスクはコンテナイメージに関連する任意の数のコンテナに分配され、自動拡張機能により動的に管理される。特定のスプリットに対してマップタスクを実行するために、コンテナに含まれたプラットフォーム代理部は、そのスプリットに関連するマップ入力ファイル(例えば、そのスプリットに含まれたフレーム)を用意し、マップ入力ファイルに基づいてマップ機能を実行し、マップ機能により生成されたマップ出力ファイルを安全な記憶部に記憶する。それらマップタスクの全てが実行を完了したと判断すると直ぐ、ワークフローエンジンは「収集」タスクを生成する。ワークフローエンジンはその収集タスクをコンテナイメージに関連するコンテナによる実行のためにキューに入れる。収集タスクを実行するために、コンテナに含まれたプラットフォーム代理部はそれらの異なるマップタスクにより生成されたマップ出力ファイルを用意し、マップ出力ファイルに基づいて収集機能を実行し、収集機能により生成された最終出力ファイルを更なる処理のために安全な記憶部に記憶する。
有利なことに、従来技術手法と比べて、開示された手法は、カスタムアルゴリズムがより容易かつ確実にメディア作品に分散された計算資源により実行されるのを可能にする。特に、ワークフローエンジンは、自動的に割り当てられ適切なオペレーティングシステム(OS)依存部を含むコンテナを使用してカスタムアルゴリズムをメディアデータに高いスループットで実行できる分割マップ収集ワークフローを確立する。そのため、従来技術手法と比べて、拡張可能なメディアアプリケーションを生成するために必要な動的ワークフロー、資源割り当て、及び負荷バランシングの技術的知識の量が低減される。また、開示された手法は、メディア、通信、及び保全操作を自動的に実行し、広範囲の潜在的に知的所有権のあるメディア作品にカスタムアルゴリズムを確実かつ正常に実行するのに必要な設計手作業及び技術的知識の量を低減する。これらの技術的利点は従来技術に比べて1つ以上の技術的進歩を提供する。
態様1
幾つかの実施形態では、コンピュータ実行方法は、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップとを含み、前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される。
態様2
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの1つ以上のオペレーティングシステム(OS)依存部とを含む、態様1記載のコンピュータ実行方法。
態様3
前記複数のマップ出力ファイルが正常に生成されたと判断するために1つ以上の操作を実行するステップを更に含む、態様1又は2記載のコンピュータ実行方法。
態様4
前記複数の分割指定を生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得するステップと、前記第1のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、前記第1のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、態様1〜3のいずれかに記載のコンピュータ実行方法。
態様5
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第1のコンテナを生成するステップを更に含む、態様1〜4のいずれかに記載のコンピュータ実行方法。
態様6
前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、態様1〜5のいずれかに記載のコンピュータ実行方法。
態様7
前記1つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、態様1〜6のいずれかに記載のコンピュータ実行方法。
態様8
前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、態様1〜7のいずれかに記載のコンピュータ実行方法。
態様9
前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも1つに作用するカスタムアルゴリズムを包含する、態様1〜8のいずれかに記載のコンピュータ実行方法。
態様10
前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも1つを前記複数のマップ出力ファイルに実行して前記1つ以上の最終出力ファイルを生成する、態様1〜9のいずれかに記載のコンピュータ実行方法。
態様11
幾つかの実施形態では、1つ以上の持続性コンピュータ読取可能媒体は、命令群を含み、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる1つ以上の異なるマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップとを実行させ、前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される。
態様12
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの1つ以上のオペレーティングシステム(OS)依存部とを含む、態様11記載の1つ以上の持続性コンピュータ読取可能媒体。
態様13
前記マップ機能は第1クラス対象物としてのメディア関連対象物に作用する、態様11又は12記載の1つ以上の持続性コンピュータ読取可能媒体。
態様14
前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、態様11〜13のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
態様15
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第1のコンテナを生成するステップを更に含む、態様11〜14のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
態様16
前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナに前記メディア作品に含まれた第1の複数のフレームを前記複数の分割指定に含まれた第1の分割指定に基づいて決定させるステップと、前記第1のコンテナに前記マップ機能を前記第1の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第1のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第2のコンテナに前記メディア作品に含まれた第2の複数のフレームを前記複数の分割指定に含まれた第2の分割指定に基づいて決定させるステップと、前記第2のコンテナに前記マップ機能を前記第2の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第2のマップ出力ファイルを生成するステップとを含む、態様11〜15のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
態様17
前記1つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、態様11〜16のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
態様18
各分割指定は前記メディア作品に含まれた1つの異なる場面シーケンスに関連する、態様11〜17のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
態様19
前記メディア作品は、映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツのうち少なくとも1つを含む、態様11〜18のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
態様20
幾つかの実施形態では、システムは命令群を記憶する1つ以上のメモリと、前記1つ以上のメモリと結合された1つ以上のプロセッサとを備え、前記命令群を実行する時、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルが正常に生成されたと判断するために1つ以上の操作を実行するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップとを実行するよう構成され、前記1つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも1つを実行するために使用される。
請求項のいずれかに記述された請求要素のいずれか及び/又は本願に記載されたいずれかの要素の任意の組み合わせ及び全ての組み合わせは、任意のやり方で、本発明及び保護の考慮された範囲内に入る。
様々な実施形態の説明が例示の目的のために提示されたが、網羅的であることも開示した実施形態に限定されることも意図されていない。説明した実施形態の範囲及び要旨から逸脱することなく多くの改良及び変更が、当業者には明らかであろう。
本実施形態の態様はシステム、方法、又はコンピュータプログラム製品として具体化されてもよい。従って、本開示の態様は完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本明細書において一般に「モジュール」又は「システム」と呼ばれうるソフトウェア態様とハードウェア態様を組み合わせた実施形態の形をとってもよい。また、本開示に記載されたいずれのハードウェア及び/又はソフトウェア手法、プロセス、機能、構成要素、エンジン、モジュール、又はシステムも回路又は1組の回路として実現されてよい。また、本開示の態様は、コンピュータ読取可能プログラムコードが組み込まれた1つ以上のコンピュータ読取可能媒体に具体化されたコンピュータプログラム製品の形をとってもよい。
1つ以上のコンピュータ読取可能媒体のいずれの組み合わせも利用してよい。コンピュータ読取可能媒体は、コンピュータ読取可能信号媒体又はコンピュータ読取可能記憶媒体であってもよい。コンピュータ読取可能記憶媒体は、例えば、これらに限定されないが、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置、又はデバイス、又はそれらの任意の適切な組み合わせであってよい。コンピュータ読取可能記憶媒体のより具体的な例(非網羅的リスト)は、1つ以上のワイヤーを有する電気的接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去・プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバー、携帯型コンパクトディスク読み出し専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含むであろう。本明細書の文脈では、コンピュータ読取可能記憶媒体は、命令実行システム、装置、又はデバイスによる又はに関連した使用のためのプログラムを含み又は記憶しうる任意の有形の媒体であってよい。
本開示の態様は、本開示の実施形態に係るフローチャート図及び/又は方法、装置(システム)、及びコンピュータプログラム製品のブロック図を参照して上記で説明されている。フローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図内のブロックの組み合わせとはコンピュータプログラム命令群により実施されうることは理解されよう。これらのコンピュータプログラム命令は汎用コンピュータ、特殊用途コンピュータ、又は機械を製造する他のプログラム可能データ処理装置のプロセッサに提供されてもよい。コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される時、それらの命令はフローチャートに明記された機能/動作及び/又はブロック図内ブロックの実施を可能にする。そのようなプロセッサは、限定されないが、汎用プロセッサ、特殊用途プロセッサ、特定用途向けプロセッサ、又はフィールド・プログラム可能ゲートアレイであってもよい。
図のフローチャート及びブロック図は、本開示の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表す場合がある。なお、別の実施形態では、ブロックに記された機能は、図に記された順番から外れて発生してもよい。例えば、続けて示された2つのブロックは、実際には実質的に同時に実行されるか、又は係る機能に依って、時には逆の順番に実行されるかもしれない。また、ブロック図及び/又はフローチャート図の各ブロックと、ブロック図及び/又はフローチャート図内のブロックの組み合わせとは、指定の機能又は動作を実行する特殊用途ハードウェアシステム又は特殊用途ハードウェア及びコンピュータ命令群の組み合わせにより実施されうる。
上記は本開示の実施形態に向けられているが、本開示の他の及び追加の実施形態を本開示の基本的な範囲から逸脱することなく思い付くかもしれない。本開示の範囲は添付の請求項により決定される。
100 システム
102 メディア処理プラットフォーム
110 計算インスタンス
112 プロセッサ
116 メモリ
120 安全な記憶部
130 イメージレジストリ
132 コンテナイメージ
134 プラットフォーム代理部
136 依存部
140 拡張可能メディアアプリケーション
142 分割機能
144 マップ機能
146 収集機能
150 ジョブ管理サブシステム
152 ジョブインターフェースエンジン
154 状態エンジン
162 ワークフローエンジン
164 ジョブ状態データベース
172 タスクエンジン
174 自動拡張機能
180 コンテナ
190 ジョブ要求
192 イメージ識別子
194 メディア作品識別子リスト
196 メディア作品
198 メディアコンテンツライブラリー
210 ワークフロー
310 入力ディレクトリ
312 マップ入力ファイル
390 出力ディレクトリ
392 マップ出力ファイル
図のフローチャート及びブロック図は、本開示の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表す場合がある。なお、別の実施形態では、ブロックに記された機能は、図に記された順番から外れて発生してもよい。例えば、続けて示された2つのブロックは、実際には実質的に同時に実行されるか、又は係る機能に依って、時には逆の順番に実行されるかもしれない。また、ブロック図及び/又はフローチャート図の各ブロックと、ブロック図及び/又はフローチャート図内のブロックの組み合わせとは、指定の機能又は動作を実行する特殊用途ハードウェアシステム又は特殊用途ハードウェア及びコンピュータ命令群の組み合わせにより実施されうる。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップと
を含み、
前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される、コンピュータ実行方法。
実施形態2
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの1つ以上のオペレーティングシステム(OS)依存部とを含む、実施形態1記載のコンピュータ実行方法。
実施形態3
前記複数のマップ出力ファイルが正常に生成されたと判断するために1つ以上の操作を実行するステップを更に含む、実施形態1記載のコンピュータ実行方法。
実施形態4
前記複数の分割指定を生成するステップは、
前記コンテナイメージに関連する第1のコンテナを取得するステップと、
前記第1のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、
前記第1のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、実施形態1記載のコンピュータ実行方法。
実施形態5
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第1のコンテナを生成するステップを更に含む、実施形態1記載のコンピュータ実行方法。
実施形態6
前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、実施形態1記載のコンピュータ実行方法。
実施形態7
前記1つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、実施形態1記載のコンピュータ実行方法。
実施形態8
前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、実施形態1記載のコンピュータ実行方法。
実施形態9
前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも1つに作用するカスタムアルゴリズムを包含する、実施形態1記載のコンピュータ実行方法。
実施形態10
前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも1つを前記複数のマップ出力ファイルに実行して前記1つ以上の最終出力ファイルを生成する、実施形態1記載のコンピュータ実行方法。
実施形態11
命令群を含む1つ以上の持続性コンピュータ読取可能媒体であって、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる1つ以上の異なるマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップと
を実行させ、
前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される、1つ以上の持続性コンピュータ読取可能媒体。
実施形態12
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの1つ以上のオペレーティングシステム(OS)依存部とを含む、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態13
前記マップ機能は第1クラス対象物としてのメディア関連対象物に作用する、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態14
前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態15
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第1のコンテナを生成するステップを更に含む、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態16
前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナに前記メディア作品に含まれた第1の複数のフレームを前記複数の分割指定に含まれた第1の分割指定に基づいて決定させるステップと、前記第1のコンテナに前記マップ機能を前記第1の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第1のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第2のコンテナに前記メディア作品に含まれた第2の複数のフレームを前記複数の分割指定に含まれた第2の分割指定に基づいて決定させるステップと、前記第2のコンテナに前記マップ機能を前記第2の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第2のマップ出力ファイルを生成するステップとを含む、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態17
前記1つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態18
各分割指定は前記メディア作品に含まれた1つの異なる場面シーケンスに関連する、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態19
前記メディア作品は、映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツのうち少なくとも1つを含む、実施形態11記載の1つ以上の持続性コンピュータ読取可能媒体。
実施形態20
命令群を記憶する1つ以上のメモリと、
前記1つ以上のメモリと結合された1つ以上のプロセッサと
を備えたシステムであって、
前記命令群を実行する時、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルが正常に生成されたと判断するために1つ以上の操作を実行するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップと
を実行するよう構成され、
前記1つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも1つを実行するために使用される、システム。

Claims (20)

  1. コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
    前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
    前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップと
    を含み、
    前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される、コンピュータ実行方法。
  2. 前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの1つ以上のオペレーティングシステム(OS)依存部とを含む、請求項1記載のコンピュータ実行方法。
  3. 前記複数のマップ出力ファイルが正常に生成されたと判断するために1つ以上の操作を実行するステップを更に含む、請求項1記載のコンピュータ実行方法。
  4. 前記複数の分割指定を生成するステップは、
    前記コンテナイメージに関連する第1のコンテナを取得するステップと、
    前記第1のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、
    前記第1のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、請求項1記載のコンピュータ実行方法。
  5. 前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第1のコンテナを生成するステップを更に含む、請求項1記載のコンピュータ実行方法。
  6. 前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、請求項1記載のコンピュータ実行方法。
  7. 前記1つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、請求項1記載のコンピュータ実行方法。
  8. 前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、請求項1記載のコンピュータ実行方法。
  9. 前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも1つに作用するカスタムアルゴリズムを包含する、請求項1記載のコンピュータ実行方法。
  10. 前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも1つを前記複数のマップ出力ファイルに実行して前記1つ以上の最終出力ファイルを生成する、請求項1記載のコンピュータ実行方法。
  11. 命令群を含む1つ以上の持続性コンピュータ読取可能媒体であって、1つ以上のプロセッサにより実行される時に、前記命令群は前記1つ以上のプロセッサに、
    コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
    前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる1つ以上の異なるマップ出力ファイルを生成するステップと、
    前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップと
    を実行させ、
    前記1つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも1つを実行するために使用される、1つ以上の持続性コンピュータ読取可能媒体。
  12. 前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの1つ以上のオペレーティングシステム(OS)依存部とを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  13. 前記マップ機能は第1クラス対象物としてのメディア関連対象物に作用する、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  14. 前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  15. 前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第1のコンテナを生成するステップを更に含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  16. 前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナに前記メディア作品に含まれた第1の複数のフレームを前記複数の分割指定に含まれた第1の分割指定に基づいて決定させるステップと、前記第1のコンテナに前記マップ機能を前記第1の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第1のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第2のコンテナに前記メディア作品に含まれた第2の複数のフレームを前記複数の分割指定に含まれた第2の分割指定に基づいて決定させるステップと、前記第2のコンテナに前記マップ機能を前記第2の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第2のマップ出力ファイルを生成するステップとを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  17. 前記1つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第1のコンテナを取得し、前記第1のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  18. 各分割指定は前記メディア作品に含まれた1つの異なる場面シーケンスに関連する、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  19. 前記メディア作品は、映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツのうち少なくとも1つを含む、請求項11記載の1つ以上の持続性コンピュータ読取可能媒体。
  20. 命令群を記憶する1つ以上のメモリと、
    前記1つ以上のメモリと結合された1つ以上のプロセッサと
    を備えたシステムであって、
    前記命令群を実行する時、
    コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、
    前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
    前記複数のマップ出力ファイルが正常に生成されたと判断するために1つ以上の操作を実行するステップと、
    前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて1つ以上の最終出力ファイルを生成するステップと
    を実行するよう構成され、
    前記1つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも1つを実行するために使用される、システム。
JP2020509475A 2017-08-31 2018-08-31 メディア作品にカスタムアルゴリズムを実行するための拡張可能な手法 Active JP7047068B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762553024P 2017-08-31 2017-08-31
US62/553,024 2017-08-31
US16/116,842 US10877798B2 (en) 2017-08-31 2018-08-29 Scalable techniques for executing custom algorithms on media items
US16/116,842 2018-08-29
PCT/US2018/049220 WO2019046793A1 (en) 2017-08-31 2018-08-31 EVOLVING TECHNIQUES FOR EXECUTING CUSTOMIZED ALGORITHMS ON MULTIMEDIA ELEMENTS

Publications (2)

Publication Number Publication Date
JP2020533665A true JP2020533665A (ja) 2020-11-19
JP7047068B2 JP7047068B2 (ja) 2022-04-04

Family

ID=65435170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020509475A Active JP7047068B2 (ja) 2017-08-31 2018-08-31 メディア作品にカスタムアルゴリズムを実行するための拡張可能な手法

Country Status (11)

Country Link
US (1) US10877798B2 (ja)
EP (1) EP3676703A1 (ja)
JP (1) JP7047068B2 (ja)
KR (1) KR102381131B1 (ja)
CN (1) CN111052080B (ja)
AU (2) AU2018324192B2 (ja)
BR (1) BR112020004043A2 (ja)
CA (1) CA3073519C (ja)
MX (1) MX2020002304A (ja)
SG (1) SG11202001520PA (ja)
WO (1) WO2019046793A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726758B2 (en) * 2019-02-07 2023-08-15 Microsoft Technology Licensing, Llc Efficient scaling of a container-based application in a distributed computing system
CN113647113A (zh) * 2019-03-20 2021-11-12 诺基亚技术有限公司 基于网络的媒体处理安全性
CN111209084B (zh) * 2020-01-12 2022-11-15 苏州浪潮智能科技有限公司 一种faas分布式计算方法和装置
US11363094B2 (en) * 2020-07-20 2022-06-14 International Business Machines Corporation Efficient data processing in a mesh network of computing devices
CN112052070A (zh) * 2020-08-27 2020-12-08 亚信科技(南京)有限公司 应用容器化评估方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041574A (ja) * 2011-07-21 2013-02-28 Hitachi Ltd 情報処理システム運用管理装置、運用管理方法及び運用管理プログラム
JP2014178871A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 情報処理装置及びそのコンテンツファイル変換処理方法
US20150125133A1 (en) * 2013-11-06 2015-05-07 Konkuk University Industrial Cooperation Corp. Method for transcoding multimedia, and hadoop-based multimedia transcoding system for performing the method
JP2015524596A (ja) * 2012-08-07 2015-08-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated クラウドコンピューティングシステムをコンフィギュアするためのシステム及び方法
US20160164941A1 (en) * 2014-12-05 2016-06-09 Konkuk University Industrial Cooperation Corp. Method for transcoding mutimedia, and cloud mulimedia transcoding system operating the same
WO2017053441A1 (en) * 2015-09-21 2017-03-30 Huawei Technologies Co., Ltd. Fast and scalable database cluster communication path
JP2017117242A (ja) * 2015-12-24 2017-06-29 財團法人工業技術研究院Industrial Technology Research Institute 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656442B1 (en) * 2007-11-21 2014-02-18 BitGravity, Inc. Efficient video delivery
WO2011075484A2 (en) * 2009-12-14 2011-06-23 Citrix Systems, Inc. A secure virtualization environment bootable from an external media device
US20130117418A1 (en) * 2011-11-06 2013-05-09 Akamai Technologies Inc. Hybrid platform for content delivery and transcoding
US8887154B2 (en) * 2012-09-06 2014-11-11 Imagine Communications Corp. Systems and methods for partitioning computing applications to optimize deployment resources
US9436692B1 (en) * 2013-06-25 2016-09-06 Emc Corporation Large scale video analytics architecture
US10033825B2 (en) * 2014-02-21 2018-07-24 Knowledgevision Systems Incorporated Slice-and-stitch approach to editing media (video or audio) for multimedia online presentations
US10142204B2 (en) * 2015-07-27 2018-11-27 Datagrid Systems, Inc. Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041574A (ja) * 2011-07-21 2013-02-28 Hitachi Ltd 情報処理システム運用管理装置、運用管理方法及び運用管理プログラム
JP2015524596A (ja) * 2012-08-07 2015-08-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated クラウドコンピューティングシステムをコンフィギュアするためのシステム及び方法
JP2014178871A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 情報処理装置及びそのコンテンツファイル変換処理方法
US20150125133A1 (en) * 2013-11-06 2015-05-07 Konkuk University Industrial Cooperation Corp. Method for transcoding multimedia, and hadoop-based multimedia transcoding system for performing the method
US20160164941A1 (en) * 2014-12-05 2016-06-09 Konkuk University Industrial Cooperation Corp. Method for transcoding mutimedia, and cloud mulimedia transcoding system operating the same
WO2017053441A1 (en) * 2015-09-21 2017-03-30 Huawei Technologies Co., Ltd. Fast and scalable database cluster communication path
JP2017117242A (ja) * 2015-12-24 2017-06-29 財團法人工業技術研究院Industrial Technology Research Institute 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム

Also Published As

Publication number Publication date
US10877798B2 (en) 2020-12-29
US20190065252A1 (en) 2019-02-28
KR20200046078A (ko) 2020-05-06
JP7047068B2 (ja) 2022-04-04
AU2018324192B2 (en) 2020-12-24
BR112020004043A2 (pt) 2020-09-01
CN111052080B (zh) 2023-10-13
CA3073519A1 (en) 2019-03-07
AU2021201825A1 (en) 2021-04-22
CN111052080A (zh) 2020-04-21
SG11202001520PA (en) 2020-03-30
CA3073519C (en) 2022-09-06
EP3676703A1 (en) 2020-07-08
MX2020002304A (es) 2020-07-13
KR102381131B1 (ko) 2022-04-01
WO2019046793A1 (en) 2019-03-07
AU2018324192A1 (en) 2020-03-12

Similar Documents

Publication Publication Date Title
JP7047068B2 (ja) メディア作品にカスタムアルゴリズムを実行するための拡張可能な手法
US9495197B2 (en) Reliable and scalable image transfer for data centers with low connectivity using redundancy detection
US9307019B2 (en) Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US9639428B1 (en) Optimized backup of clusters with multiple proxy servers
US8434070B2 (en) Generating specifications of client-server applications for static analysis
JP5719487B2 (ja) アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール)
US20120102474A1 (en) Static analysis of client-server applications using framework independent specifications
JP6903755B2 (ja) データ統合ジョブ変換
US10838702B2 (en) Analyzing and optimizing container images in cloud computing
US11734054B2 (en) Techniques for interfacing between media processing workflows and serverless functions
US20200225917A1 (en) Curated Image Management in a FaaS Infrastructure
US10331419B2 (en) Creating composite templates for service instances
US20180341475A1 (en) Just In Time Deployment with Package Managers
US11055134B2 (en) Performing an action on a composite of software instances
KR101996151B1 (ko) 워크플로우 시스템에서의 테이블 네이밍 장치 및 방법
US11050846B2 (en) Program code allocation based on processor features

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220323

R150 Certificate of patent or registration of utility model

Ref document number: 7047068

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150