(57)【要約】  様々な実施形態では、ワークフローエンジンはカスタムアルゴリズムをメディア作品に実行する。動作時、ワークフローエンジンは、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成する。各分割指定は前記メディア作品の異なる部分と関連する。次に、ワークフローエンジンは、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成する。次に、ワークフローエンジンは、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成する。最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される。
2020533665.tif 000002
【特許請求の範囲】
【請求項１】
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を含み、
前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される、コンピュータ実行方法。
【請求項２】
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、請求項１記載のコンピュータ実行方法。
【請求項３】
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップを更に含む、請求項１記載のコンピュータ実行方法。
【請求項４】
前記複数の分割指定を生成するステップは、
前記コンテナイメージに関連する第１のコンテナを取得するステップと、
前記第１のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、
前記第１のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、請求項１記載のコンピュータ実行方法。
【請求項５】
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、請求項１記載のコンピュータ実行方法。
【請求項６】
前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、請求項１記載のコンピュータ実行方法。
【請求項７】
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、請求項１記載のコンピュータ実行方法。
【請求項８】
前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、請求項１記載のコンピュータ実行方法。
【請求項９】
前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも１つに作用するカスタムアルゴリズムを包含する、請求項１記載のコンピュータ実行方法。
【請求項１０】
前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも１つを前記複数のマップ出力ファイルに実行して前記１つ以上の最終出力ファイルを生成する、請求項１記載のコンピュータ実行方法。
【請求項１１】
命令群を含む１つ以上の持続性コンピュータ読取可能媒体であって、１つ以上のプロセッサにより実行される時に、前記命令群は前記１つ以上のプロセッサに、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる１つ以上の異なるマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を実行させ、
前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される、１つ以上の持続性コンピュータ読取可能媒体。
【請求項１２】
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１３】
前記マップ機能は第１クラス対象物としてのメディア関連対象物に作用する、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１４】
前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１５】
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１６】
前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナに前記メディア作品に含まれた第１の複数のフレームを前記複数の分割指定に含まれた第１の分割指定に基づいて決定させるステップと、前記第１のコンテナに前記マップ機能を前記第１の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第１のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第２のコンテナに前記メディア作品に含まれた第２の複数のフレームを前記複数の分割指定に含まれた第２の分割指定に基づいて決定させるステップと、前記第２のコンテナに前記マップ機能を前記第２の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第２のマップ出力ファイルを生成するステップとを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１７】
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１８】
各分割指定は前記メディア作品に含まれた１つの異なる場面シーケンスに関連する、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１９】
前記メディア作品は、映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツのうち少なくとも１つを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項２０】
命令群を記憶する１つ以上のメモリと、
前記１つ以上のメモリと結合された１つ以上のプロセッサと
を備えたシステムであって、
前記命令群を実行する時、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を実行するよう構成され、
前記１つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも１つを実行するために使用される、システム。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２０１７年８月３１日に出願された米国仮特許出願第６２／５５３０２４号名称“Ｍｅｄｉａ  Ｉｎｎｏｖａｔｉｏｎ  Ｐｌａｔｆｏｒｍ”及び２０１８年８月２９日に出願された米国特許出願第１６／１１６８４２号名称“Ｓｃａｌａｂｌｅ  Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｅｘｅｃｕｔｉｎｇ  Ｃｕｓｔｏｍ  Ａｌｇｏｒｉｔｈｍｓ  ｏｎ  Ｍｅｄｉａ  Ｉｔｅｍｓ”の優先権の利益を主張するものである。これらの関連する出願の主題を本明細書に引用する。
【技術分野】
【０００２】
本発明の実施形態は概ね、メディア処理プラットフォーム、より具体的にはメディア作品にカスタムアルゴリズムを実行するための拡張可能な手法に関する。
【背景技術】
【０００３】
しばしばカスタムアルゴリズムは、カスタムアルゴリズムが高いスループットで実行されるのを可能にする拡張可能なアプリケーションに組み込まれる。そのような実施形態では、組み込まれたカスタムアルゴリズムは一連のステップから成り、関連する拡張可能なアプリケーションは、複数の計算インスタンスがその組み込まれたカスタムアルゴリズムを成すその一連のステップを実行するよう構成する１組の命令から成る。より具体的な実施形態では、「拡張可能なメディア」アプリケーションは、その拡張可能なメディアアプリケーションがカスタムアルゴリズムをメディア作品に高いスループットで効果的に実行して１つ以上の目的を達成するのを許す追加の命令を含む。例えば、コンピュータ視覚カスタムアルゴリズムは、メディアコンテンツライブラリーに含まれる複数の異なる映画を分析して人気俳優又は女優が関わる最も関心を引く演技場面を特定するマーケティングアプリケーションに組み込まれうる。別の例では、字幕タイミングカスタムアルゴリズムが、メディアコンテンツライブラリーに含まれる複数の異なる映画内の字幕タイミングエラーを自動的に検出する品質保証アプリケーションに組み込まれうる。
【０００４】
カスタムアルゴリズムを高いスループットで確実かつ効率的に実行しうる拡張可能なメディアアプリケーションを製作するのは、通常複雑で困難なプロセスである。通常、ソフトウェア技術者は、拡張可能なメディアアプリケーションが潜在的に知的所有権のあるメディア作品の大規模な分散処理に関連する範囲、効率、及び安全性要件を満たすことを保証する必要がある。そうするために、ソフトウェア技術者は、拡張可能なメディアアプリケーションを、多種多様なメディア形式のメディア作品を確実かつ効率的に取得し、複数のタスクを確実に生成しカスタムアルゴリズムによる並行処理のために複数の「作業者」計算インスタンスに亘って分配し、拡張可能なメディアアプリケーションの最終出力を確実に記憶するように設計する必要がある。従って、拡張可能なメディアアプリケーションを開発することは、組み込まれたカスタムアルゴリズムと、動的ワークフローと、符号化及び復号などのメディア処理手法と、安全な通信手法と、資源割り当て及び負荷バランス手法とに関する技術的ノウハウだけでなくかなりの手作業も必要とする。これらの分野のうち１つ以上における知識の欠如は、ソフトウェア開発者がカスタムアルゴリズムを拡張可能なメディアアプリケーションに適切に組み込みできるのを完全に妨げうる。ソフトウェア開発者は、特定のカスタムアルゴリズムに関わるより限定された処理要件を満たしうるプロトタイプのアプリケーションを製作できそうだが、そのようなプロトタイプのアプリケーションは知的所有権のあるメディア作品の分散処理に関連するより厳しい処理要件を満たすことができない可能性が高い。
【０００５】
カスタムアルゴリズムを拡張可能なメディアアプリケーションにうまく組み込むのに必要な手作業と技術的ノウハウの量とを減らすのに使用されうる従来の処理プラットフォームが存在する。例えば、幾つかの映像配信サービス提供者は、メディアコンテンツライブラリー、メディア処理ツール、負荷再バランスサブシステム、及び安全な記憶サブシステムへの安全なインターフェースを提供する内部メディア処理プラットフォームを構築する。しかし、これらの種類のメディア処理プラットフォームの１つの欠点は、メディア処理プラットフォーム及び関連するアプリケーションは「分散された一枚岩」を成すことである。分散された一枚岩では、１つのアプリケーション又はサービスへの変更は、しばしば他のアプリケーション及びサービスへの変更を必要とする。その結果、そのようなプラットフォームを使用する拡張可能なメディアアプリケーションを一部変更することは、メディア処理プラットフォーム全体が再製作される場合のみ可能である。
【０００６】
拡張可能なメディアアプリケーションのより柔軟な更新を可能にするために、ソフトウェア開発者は、汎用の分散された計算フレームワークを使用して拡張可能なメディアアプリケーションを実施できる。汎用分散計算フレームワークを使用する各拡張可能なメディアアプリケーションは独立して製作され、その汎用分散計算フレームワークを使用する他の拡張可能なメディアアプリケーションとは別に独立して存在する。従って、その汎用分散計算フレームワークを使用する拡張可能なメディアアプリケーションは、その汎用分散計算フレームワークを使用する別のアプリケーションが一部変更される時に再製作される必要がない。しかし、この方法の１つの欠点は、分散計算フレームワークにより管理される各作業者計算インスタンスが適切な実行環境を特定の拡張可能なメディアアプリケーションに提供するのを保証することが不可能でなくても非常に困難であることである。例えば、もし２つの異なる拡張可能なメディアアプリケーションが相反するオペレーティングシステム（ＯＳ）依存を必要とするなら、分散計算フレームワークにより管理される特定の作業者計算インスタンスは、それらの拡張可能なメディアアプリケーションの少なくとも１つを適切に実行できないであろう。別の欠点は、汎用分散計算フレームワークを使用して拡張可能なメディアアプリケーションを開発することも、メディア処理技術の深い技術的知識を必要とすることである。これは、上述したように多くのソフトウェア開発者にとってかなりの技術的ハードルとなりうる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記で例示されたように、この技術において必要なものは、カスタムアルゴリズムをメディア作品に高いスループットで実行するためのより効果的な手法である。
【課題を解決するための手段】
【０００８】
本発明の１つの実施形態は、カスタムアルゴリズムをメディア作品に実行するためのコンピュータ実行方法を明らかにする。その方法はコンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップとを含み、前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される。
【０００９】
従来技術手法に比べて本開示された手法の少なくとも１つの技術的利点は、本開示の手法を使って分散計算資源によりカスタムアルゴリズムをより容易かつ確実にメディア作品に実行できることである。特に、本開示の手法は、適切なオペレーティングシステム（ＯＳ）依存部を含むコンテナを使用してカスタムアルゴリズムをメディア作品に高いスループットで実行できる分割マップ収集ワークフローを提供する。また、本開示の手法は、メディア操作及び保全操作を自動的に実行し、広範囲の潜在的に知的所有権のあるメディア作品にカスタムアルゴリズムを確実かつ正常に実行するのに必要な設計手作業及び技術的知識の量を低減する。これらの技術的利点は従来技術に比べて１つ以上の技術的進歩を提供する。
【図面の簡単な説明】
【００１０】
様々な実施形態の上記の特徴が詳細に理解されうるために、一部が添付の図面に例示された様々な実施形態を参照することで、上記に簡潔に要約された発明概念のより詳細な説明を得られるかもしれない。しかし、添付の図面は発明概念の典型的な実施形態のみを例示し、従って、本発明の範囲を限定すると考えられるべきでは全くなく、他の同様に効果的な実施形態が存在することは留意されるべきである。
【図１】本発明の１つ以上の態様を実施するよう構成されたシステムの概念図である。
【図２】本発明の様々な実施形態に係る図１のワークフローエンジンにより確立されたワークフローを例示する。
【図３】本発明の様々な実施形態に係る図２のコンテナの１つがカスタムアルゴリズムを特定のスプリットに実行するやり方を例示する。
【図４】本発明の様々な実施形態に係るメディア作品にカスタムアルゴリズムを実行するための方法ステップのフロー図である。
【発明を実施するための形態】
【００１１】
以下の説明において、様々な実施形態のより完全な理解を提供するために多数の具体的詳細が明らかにされる。しかし、これらの具体的詳細の１つ以上を欠いて発明概念を実施してもよいことは当業者には明白であろう。
【００１２】
多くのメディア提供者は、多数のメディア作品を含むメディアコンテンツライブラリーを有する。各メディア作品は任意のメディア形式に関連する任意の量で種類のコンテンツを任意の技術的に可能なやり方で含む。メディア作品の例は、限定されないが、ソース映像シーケンスを含むＭＰＥＧ−４映像ファイルと、符号化映像シーケンスを含むＨ．２６４符号化映像ファイルとを含む。映像配信サービス提供者は、数千の映像作品の作品毎にＭＰＥＧ−４映像ファイルと複数のＨ．２６４符号化映像ファイルとを含むメディアコンテンツライブラリーを有しうる。
【００１３】
しばしば高いスループットで１つ以上の目的を達成するために、メディア提供者はカスタムアルゴリズムを開発し、そのカスタムアルゴリズムを拡張可能なメディアアプリケーションに組み込み、その拡張可能なメディアアプリケーションをメディアコンテンツライブラリーに含まれたメディア作品に実行する。組み込まれたカスタムアルゴリズムは一連のステップから成り、関連する拡張可能メディアアプリケーションは、複数の計算インスタンスがその一連のステップをメディア作品に実行するよう構成する追加の命令群を含む。目的の幾つかの例は、限定されないが、Ａ／Ｂテスト、カタログ幅再符号化、映像シーケンスに含まれたフレームに透かしを入れること、関心を引く画像又はフレームのシーケンスを広告の目的で選択すること、及び字幕タイミングエラーを検出することを含む。
【００１４】
従来のシステムでは、カスタムアルゴリズムを高いスループットで確実かつ効率的に実行できる拡張可能メディアアプリケーションを製作することは、通常複雑なプロセスである。例えば、幾つかの従来のシステムでは、ソフトウェア技術者は、拡張可能メディアアプリケーションを、多種多様なメディア形式のメディア作品を確実かつ効率的に取得し、複数のタスクを確実に生成しカスタムアルゴリズムによる並行処理のために複数の「作業者」計算インスタンスに亘って分配し、拡張可能メディアアプリケーションの最終出力を確実に記憶するように設計する必要がある。従って、拡張可能メディアアプリケーションを開発することは、組み込まれたカスタムアルゴリズムと、動的ワークフローと、メディア処理手法（例えば、符号化、復号など）と、安全な通信手法と、資源割り当て及び負荷バランス手法とに関する技術的ノウハウだけでなくかなりの手作業も必要とする。これらの分野のうち１つ以上における知識の欠如は、ソフトウェア開発者がカスタムアルゴリズムを、比較的大きなメディアコンテンツライブラリーに亘って効率的に実行されうる拡張可能メディアアプリケーションに適切に組み込みできるのを妨げうる。
【００１５】
カスタムアルゴリズムを拡張可能メディアアプリケーションにうまく組み込むのに必要な手作業と技術的ノウハウの量とを減らすのに使用されうる従来のメディア処理プラットフォームが存在する。しかし、これらの種類の従来のメディア処理プラットフォームの１つの欠点は、従来のメディア処理プラットフォーム及び関連するアプリケーションは通常「分散された一枚岩」を成すことである。分散された一枚岩では、１つのアプリケーション又はサービスへの変更は、しばしば他のアプリケーション及びサービスへの変更を必要とする。その結果、そのようなプラットフォームを使用する拡張可能メディアアプリケーションを一部変更することは、そのプラットフォーム全体が再製作される場合のみ可能である。その結果、特定のカスタムアルゴリズムの変更は、関連する拡張可能メディアアプリケーションを介して利用可能になるのに数日又は数週間かかる場合がある。
【００１６】
拡張可能メディアアプリケーションのより柔軟な更新を可能にするために、ソフトウェア開発者は、汎用の分散された計算フレームワークを使用して拡張可能メディアアプリケーションを実施できる。汎用分散計算フレームワークは、フレームワークを使用するアプリケーションがそのフレームワーク及びフレームワークを使用する他のアプリケーションから独立して一部変更されたり製作されたりするのを許す。しかし、この方法の１つの欠点は、分散計算フレームワークにより管理される各作業者計算インスタンスが適切な実行環境を特定の拡張可能メディアアプリケーションに提供するのを保証することが不可能でなくても非常に困難であることである。別の欠点は、汎用分散計算フレームワークを使用して拡張可能メディアアプリケーションを開発することも、メディア処理技術の深い技術的知識を必要とすることである。これは、上述したように多くのソフトウェア開発者にとってかなりの技術的ハードルとなりうる。
【００１７】
しかし、開示される手法により、ジョブ管理サブシステム及び関連するプラットフォーム代理部は、カスタムアルゴリズムのための適切な実行環境を保証しながらカスタムアルゴリズムを高いスループットで実行するのに必要な技術的知識の量を低減する。通常、ジョブ管理サブシステム及びプラットフォーム代理部は任意の数の従来の手法を実行して、メディアコンテンツライブラリーからメディア作品を確実かつ効率的に取得し、多種多様なメディア形式を正しく解釈し、複数のタスクを確実に生成し複数の作業者計算インスタンスに亘って分配し、拡張可能メディアアプリケーションにより生成された結果を確実に記憶する。しかし、通常の従来の処理プラットフォームと違い、ジョブ管理サブシステムはメディア作品に最適化されたワークフローを駆動する。このワークフローはコードの独立した実行可能なインスタンスであって、「コンテナ」と呼ばれる複数のインスタンスを使用する。
【００１８】
カスタムアルゴリズムは、限定されないが、分割機能、マップ機能、及び収集機能の３つの機能を含む拡張可能メディアアプリケーションに組み込まれる。分割機能は１つ以上のメディア作品をより小さな単位又は「スプリット」に分割する。マップ機能はカスタムアルゴリズムを特定のスプリットに適用する。収集機能はカスタムアルゴリズムを全てのスプリットに適用した結果を結合する。拡張可能メディアアプリケーション、プラットフォーム代理部、及び任意のオペレーティングシステム依存部が結合されコンテナイメージを生成する。「コンテナイメージ」は独立した実行可能なコードを含む静的ファイルであり、このコードは、限定されないが任意の数のアプリケーションと関連する依存部とを含む独立したソフトウェアパッケージを提供する。１つの計算インスタンス上で実行されると、コンテナイメージは、依存部を提供すると共に含まれたどのアプリケーションも実行できる「コンテナ」を生成する。説明の目的のために、コンテナイメージから生成され特定の拡張可能メディアアプリケーションを含むコンテナはその拡張可能メディアアプリケーションと「関連」する。
【００１９】
コンテナイメージ及び１つ以上のメディア作品のリストを指定するジョブ要求を受信すると直ぐ、ジョブ管理サブシステムに含まれたワークフローエンジンはその１つ以上のメディア作品を指定するスプリットタスクを生成する。スプリットタスクに応答して、関連するコンテナに含まれたプラットフォーム代理部はメディアコンテンツライブラリーからそのメディア作品を取得する。次に、プラットフォーム代理部は分割機能をそのメディア作品に実行して複数のスプリットを決定する。次に、ワークフローエンジンはスプリット毎に別のマップタスクを生成する。各マップタスクは、潜在的に異なる関連するコンテナに含まれたプラットフォーム代理部により処理される。従って、任意の数の関連するコンテナは、それらのマップタスクを同時に、順次、又はそれらの任意の組み合わせで処理してもよい。特定のマップタスクに応答して、プラットフォーム代理部はマップ機能をメディア作品のスプリットに関連する部分に実行する。重要なことに、プラットフォーム代理部は、メディア作品の適切な部分が多様なメディア形式のためのマップ機能による処理の対象であることを保証する。次に、プラットフォーム代理部はマップ機能の結果を安全な記憶部に記憶する。そのジョブに関連する全てのマップタスクの実行が完了すると、ワークフローエンジンは収集タスクを生成する。その収集タスクに応答して、関連するコンテナに含まれたプラットフォーム代理部は収集機能をそれら別々のマップ機能の結果に実行して次に収集機能の結果を安全な記憶部に記憶する。
【００２０】
有利にも、ジョブ処理プラットフォーム及び関連するプラットフォーム代理部は、カスタムアルゴリズムをメディア作品に従来の拡張可能メディアアプリケーション及び従来の処理プラットフォームにより実行することの様々な欠点に対処する。カスタムアルゴリズムを適切なＯＳ依存部を含むコンテナに組み込むことは、カスタムアルゴリズムの確実な実行を可能にし、コンテナに関連するカスタムアルゴリズムを他のコンテナに関連する他のカスタムアルゴリズムへの変更から隔離する。予め規定された分割マップ収集ワークフローは、ソースメディア作品の異なる部分にカスタムアルゴリズムを並行実行する機会を自動的に提供する。また、ジョブ処理プラットフォーム及び関連するプラットフォーム代理部は、広範囲の潜在的に知的所有権のあるメディア作品にカスタムアルゴリズムを確実かつ正常に実行するのに必要な設計手作業及び技術的知識の量を低減する機能性を提供する。これらの技術的利点は従来技術に比べて１つ以上の技術的進歩を提供する。
【００２１】
システム概要
図１は本発明の１つ以上の態様を実施するよう構成されたシステム１００の概念図である。図示のように、システム１００は、限定されないがメディアコンテンツライブラリー１９８、安全な記憶部１２０、任意の数の計算インスタンス１１０、イメージレジストリ１３０、任意の数のコンテナ１８０、及びジョブ要求１９０を含む。説明の目的のために、同様の物の複数のインスタンスは、その物を特定する符号と必要に応じてインスタンスを特定する丸括弧で囲んだ数字とにより示される。
【００２２】
様々な実施形態では、システム１００の任意の数の構成要素が複数の地理的場所に亘って分散されても又は１つ以上のクラウドコンピューティング環境（即ち、包含された共有資源、ソフトウェア、データなど）に実現されても、又はこれらの任意の組み合わせでもよい。別の実施形態では、システム１００は任意の数のメディアコンテンツライブラリー１９０、任意の量と種類の安全な記憶部１２０、任意の数のイメージレジストリ１３０、及び任意の数のジョブ要求１９０を含んでもよい。
【００２３】
メディアコンテンツライブラリー１９８は、限定されないが任意の数のメディア作品１９６を含む。各メディア作品１９６は、任意のメディア形式を使用する任意の量と種類の映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツを任意の組み合わせで含む。メディア作品１９６の幾つかの例は、限定されないがソース映像シーケンスを含むＭＰＥＧ−４映像ファイルと、符号化映像シーケンスを含むＨ．２６４符号化映像ファイルと、ソース音声シーケンスを含むＷｉｎｄｏｗｓ  Ｍｅｄｉａ（登録商標）Ａｕｄｉｏファイルと、テキストコンテンツを含むテキストファイルとを含む。
【００２４】
安全な記憶部１２０は、データを安全に記憶できる任意の量と種類のメモリ資源を含む。例えば、幾つかの実施形態では、安全な記憶部１２０は安全記憶サブシステムにより管理されデータを暗号化された形態で記憶する。様々な実施形態では、安全な記憶部１２０は任意の技術的に可能な方法で実現された任意の種類の記憶装置で置き換えられてよい。例えば、安全な記憶部１２０は、任意の形式の任意の量と種類のデータを記憶する任意の量と種類のクラウドベースのメモリ資源で置き換えられてよい。
【００２５】
計算インスタンス１１０（１）について示したように、各計算インスタンス１１０は、限定されないがプロセッサ１１２及びメモリ１１６を含む。プロセッサ１１２は、命令を実行できる任意の命令実行システム、装置、又はデバイスであってよい。例えば、プロセッサ１１２は中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、コントローラ、マイクロコントローラ、状態マシン、又はこれら装置の任意の組み合わせから成ってもよい。メモリ１１６はソフトウェアアプリケーション及びデータなどのコンテンツを計算インスタンス１１０のプロセッサ１１２による使用のために記憶する。
【００２６】
メモリ１１６は、１つ以上の容易に入手可能なメモリ、例えばランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フロッピー（登録商標）ディスク、ハードディスク、又は任意の他の形態のデジタル記憶装置、局所又は遠隔の、であってもよい。幾つかの実施形態では、記憶装置（不図示）がメモリ１１６を補っても又は置き換えてもよい。その記憶装置は、プロセッサ１１２にとってアクセス可能な任意の数と種類の外部メモリを含んでもよい。例えば、その記憶装置は、限定されないがＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ  Ｃａｒｄ、外部Ｆｌａｓｈメモリ、携帯コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含んでもよい。
【００２７】
各計算インスタンス１１０は１つ以上のアプリケーション又はアプリケーションのサブシステムを実行するように構成される。また、下記に詳細に説明するように、各計算インスタンス１１０は１つ以上のコンテナ１８０を実行してもよい。各コンテナ１８０は任意の数のアプリケーションを実行する。説明の目的だけのために、各アプリケーションは、単一の計算インスタンス１１０のメモリ１１６に存在しその単一の計算インスタンス１１０のプロセッサ１１２上で動作するとして描かれている。しかし、当業者は認識するように、各アプリケーションの機能は、任意の数の計算インスタンス１１０のメモリ１１６に存在する任意の数の他のアプリケーションに亘って分散され、任意の組み合わせで任意の数の計算インスタンス１１０のプロセッサ１１２上で動作してもよい。また、任意の数のアプリケーション又はサブシステムの機能は単一のアプリケーション又はサブシステムに統合されてもよい。
【００２８】
特に、計算インスタンス１１０（１）はシステム１００がカスタムアルゴリズム（図１に不図示）をメディア作品１９６に高いスループットで実行するのを可能にする。一般に、カスタムアルゴリズムをメディア作品に効率的かつ確実に高いスループットで実行することは、そのカスタムアルゴリズムを拡張可能メディアアプリケーションに組み込むことを含む複雑なプロセスである。本書に記述したように、組み込まれたカスタムアルゴリズムは一連のステップから成り、一方、関連する拡張可能アプリケーションは、複数の計算インスタンス１１０が、その組み込まれたカスタムアルゴリズムを構成する一連のステップを実行するよう構成する１組の命令から成る。
【００２９】
多くの従来のシステムでは、従来の拡張可能メディアアプリケーションを開発することは、組み込まれたカスタムアルゴリズムと、動的ワークフローと、符号化、復号などのメディア処理手法と、安全な通信手法と、資源割り当て及び負荷バランス手法とに関する技術的ノウハウだけでなくかなりの手作業も必要とする。これらの分野のうち１つ以上における知識の欠如は、ソフトウェア開発者がカスタムアルゴリズムを従来の拡張可能メディアアプリケーションに適切に完全に組み込みできるのを妨げうる。
【００３０】
カスタムアルゴリズムを拡張可能メディアアプリケーションにうまく組み込むのに必要な手作業及び技術的ノウハウの量を低減するのに使用できる従来のメディア処理プラットフォームが存在する。当業者は認識するように、これらの種類の従来のメディア処理プラットフォームの１つの欠点は、そのプラットフォームを使用する１つのアプリケーション又はサービスへの変更は、しばしばそのプラットフォームを使用する他のアプリケーション及びサービスへの変更を必要とすることである。その結果、そのようなプラットフォームを使用する従来の拡張可能メディアアプリケーションを一部変更することは、従来のメディア処理プラットフォーム全体が再製作される場合のみ可能である。
【００３１】
従来の拡張可能メディアアプリケーションのより柔軟な更新を可能にするために、ソフトウェア開発者は、汎用の分散された計算フレームワークを使用して従来の拡張可能メディアアプリケーションを実施できる。当業者は認識するように、汎用分散計算フレームワークを使用するアプリケーションは、その汎用分散計算フレームワークを使用する別のアプリケーションが一部変更される時に必ずしも再製作される必要はない。しかし、この方法の１つの欠点は、分散計算フレームワークにより管理される各作業者計算インスタンスが適切な実行環境を特定のアプリケーションに提供するのを保証することが不可能でなくても非常に困難であることである。別の欠点は、汎用分散計算フレームワークを使用して従来の拡張可能メディアアプリケーションを開発することも、メディア処理技術の深い技術的知識を必要とすることである。これは、上述したように多くのソフトウェア開発者にとってかなりの技術的ハードルとなりうる。
【００３２】
コンテナを使用してカスタムアルゴリズムをメディア作品に実行
上記の問題に対処するために、システム１００は、限定されないが、コンテナを使用して分割マップ収集ワークフローを共同で確立するジョブ管理サブシステム１５０及びプラットフォーム代理部１３４を含む。分割マップ収集ワークフローは、各メディア作品１９６の並行処理を可能にする。ジョブ管理サブシステム１５０は計算インスタンス１１０（１）のメモリ１１６に常駐し、計算インスタンス１１０（１）のプロセッサ１１２上で動作する。プラットフォーム代理部１３４はジョブ管理サブシステム１５０と拡張可能メディアアプリケーション１４０の間のインターフェースである。説明の目的だけのために、ジョブ管理サブシステム１５０とプラットフォーム代理部１３４の組み合わせを本書では「ジョブ管理プラットフォーム」とも呼ぶ。特に、様々な実施形態では、ジョブ管理プラットフォームはどのメディア関連対象物も第１クラス対象物として扱う（例えば、作用する、処理するなど）かもしれない。例えば、幾つかの実施形態では、ジョブ管理プラットフォームはフレームを映像コンテンツの第１クラス対象物として、チャネルを音声コンテンツの第１クラス対象物として扱う。
【００３３】
当業者は認識するように、各コンテナ１８０は、コンテナイメージ１３２が計算インスタンス１１０上で実行された時に生成される独立した実行可能なコードインスタンスである。図示のように、システム１００は、限定されないが任意の数のコンテナイメージ１３２を含むイメージレジストリ１３０を備える。各コンテナイメージ１３２は独立した実行可能なコードを含む静的なファイルである。独立した実行可能なコードは、限定されないがプラットフォーム代理部１３４、拡張可能メディアアプリケーション１４０、及び依存部１３６を含む独立したソフトウェアパッケージを提供する。依存部１３６は、限定されないがオペレーティングシステム依存部及び言語依存部を含み、これらはプラットフォーム代理部１３４及び拡張可能メディアアプリケーション１４０に実行時環境を提供する。
【００３４】
計算インスタンス１１０上で実行された時に、コンテナイメージ１３２は、依存部１３６を提供すると共にプラットフォーム代理部１３４及び拡張可能メディアアプリケーション１４０を実行できるコンテナ１８０を生成する。本書に記述したように、コンテナイメージ１３２から生成され特定の拡張可能メディアアプリケーション１４０を含むコンテナ１８０は、その拡張可能メディアアプリケーション１４０と「関連」する。任意の数の計算インスタンス１１０が複数のコンテナ１８０を実行してよい。また、各計算インスタンス１１０は任意の数のコンテナイメージ１３２と関連する任意の数のコンテナ１８０を同時に実行してもよい。
【００３５】
図示のように、拡張可能メディアアプリケーション１４０は、限定されないが分割機能１４２、マップ機能１４４、及び収集機能１４６を含む。分割機能１４２はメディア作品１９６をより小さな単位又は「スプリット」に分割する。マップ機能１４４は関連するカスタムアルゴリズムを特定のスプリットに適用する。収集機能１４６は関連するカスタムアルゴリズムを全てのスプリットに適用した結果を結合する。特に、プラットフォーム代理部１３４は、拡張可能メディアアプリケーション１４０が使用できる任意の数と種類の内蔵機能を提供する。分割機能１４２、マップ機能１４４、及び収集機能１４６のそれぞれは、プラットフォーム代理部１３４により提供されるカスタム機能又は内蔵機能でありうる。
【００３６】
１つの代表的なカスタム分割機能１４２は、メディア作品１９６（５）の第１の５分間を含む第１のスプリットとそのメディア作品１９６（５）の最後の３分間を含む第２のスプリットとを生成する。別の代表的なカスタム分割機能１４２は、特定の映画のソース映像シーケンスであるメディア作品１９６（１）とその映画の符号化された映像シーケンスであるメディア作品１９６（２）とに基づいてスプリットを生成する。第１のスプリットはメディア作品１９６（１）及び１９６（２）の第１０２フレームの非圧縮の及び復号されたバージョンを含み、第２のスプリットはメディア作品１９６（１）及び１９６（２）の第２０９９フレームの非圧縮の及び復号されたバージョンを含む。内蔵分割機能１４２の一例は、メディア作品１９６（ｘ）と関連する実行時間に基づいてメディア作品１９６（ｘ）を分割する時間ベースの分割機能である。内蔵分割機能１４２の別の例は、場面変化データに基づいてメディア作品１９６（ｘ）を複数の場面シーケンスに分割する場面ベースの分割機能である。各場面シーケンスは、類似の空間時間特性を通常有し連続した期間継続する１組のフレームを含む。
【００３７】
内蔵マップ機能１４４の一例は、何も操作を行わず、カスタムアルゴリズムを各スプリットに適用することなく分割機能１４２及び収集機能１４６を実行する拡張可能メディアアプリケーション１４０を生成するのに使用される。内蔵収集機能１４６の一例は、異なるスプリットに基づいてマップ機能１４４により生成されたマップ出力ファイルを収集し単一のＺｉｐファイルにするＺｉｐファイル収集機能である。内蔵収集機能１４６の別の例は、異なるスプリットに基づいてマップ機能１４４により生成されたマップ出力ファイルのコンテンツをそれらのスプリットに関連する順番にバイト連結する連結収集機能である。他の実施形態では、任意の組み合わせで任意の数と種類の内蔵機能が取得され、拡張可能メディアアプリケーション１４０内で任意の技術的に可能なやり方で使用されてよい。
【００３８】
分割機能１４２、マップ機能１４４、及び収集機能１４６は任意の技術的に可能なやり方及び任意の言語で規定されてよい。例えば、幾つかの実施形態では、分割機能１４２への入力は１つ以上のメディア作品１９６であり、分割機能１４２の出力は、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）で記述された分割指定ファイルである。映像ソースに対して、分割指定ファイルは開始及び終了フレーム番号で表される各スプリットの境界を含む。各スプリットは単位スプリット識別子で識別される。分割指定ファイルは連続するスプリット間の重なりの指定も許す。プラットフォーム代理部１３４は、拡張可能メディアアプリケーション１４０による実行のためのタスク（例えば、ワークの個別部分）を取得し、拡張可能メディアアプリケーション１４０により操作されるファイルに前処理操作を実行し、拡張可能メディアアプリケーション１４０に含まれた機能を呼び出し、拡張可能メディアアプリケーション１４０により生成された結果に後処理操作を実行する。プラットフォーム代理部１３４は、任意の技術的に可能なやり方でタスクを取得してよい。例えば、幾つかの実施形態では、プラットフォーム代理部１３４は１つ以上の持続優先度付きキューをタスクを求めて監視する。前処理操作及び後処理操作は、任意の数と種類の安全関連操作、メディア処理操作、フォーマット操作などを含んでもよい。
【００３９】
例えば、幾つかの実施形態では、プラットフォーム代理部１３４はメディアコンテンツライブラリー１９８から符号化された映像シーケンスを確実に取得し、その符号化された映像シーケンスを復号し、スプリットに対応するフレームを安全な記憶部１２０に確実にアップロードする。同じ又は他の実施形態では、プラットフォーム代理部１３４は拡張可能メディアアプリケーション１４０により生成された結果を暗号化し、暗号化された結果を最終出力ファイルとして安全な記憶部１２０に確実にアップロードし、拡張可能メディアアプリケーション１４０により生成されたどの一時ファイル及びディレクトリも削除し、タスクが完了するとジョブ管理サブシステム１５０に通知する。幾つかの実施形態では、プラットフォーム代理部１３４は追加の操作、例えば使用メトリックを収集及び報告すること、及び自動的に映像シーケンスをＪＰＥＧ又はＰｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）画像に変換することを行う。
【００４０】
図示のように、ジョブ管理サブシステム１５０は、限定されないがジョブインターフェースエンジン１５２、状態エンジン１５４、ワークフローエンジン１６２、ジョブ状態データベース１６４、タスクエンジン１７２、及び自動拡張機能１７４を含む。ジョブインターフェースエンジン１５２は、他のアプリケーション及びユーザーがジョブ要求１９０を出し管理するのを可能にする外部に面する構成要素である。ジョブインターフェースエンジン１５２は任意の技術的に可能なやり方で実現されてよい。例えば、幾つかの実施形態では、ジョブインターフェースエンジン１５２は任意の数のＲｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）アプリケーションプログラミングインターフェース（ＡＰＩ）のホストとして働く。
【００４１】
各ジョブ要求１９０は、限定されないがイメージ識別子１９２及びメディア作品識別子リスト１９４を含む。イメージ識別子１９２はイメージレジストリ１３０に含まれるコンテナイメージ１３２の１つを一意に特定する。メディア作品識別子リスト１９４は任意の数のメディア作品識別子（不図示）を含む。各メディア作品識別子はメディアコンテンツライブラリー１９８に含まれるメディア作品１９６の１つを一意に特定する。様々な実施形態では、ジョブ要求１９０は要求されたワークに関係する任意の量の追加の情報を任意の技術的に可能なやり方で指定してもよい。他の実施形態では、ジョブ要求１９０はコンテナイメージ１３２と任意の数のメディア作品１９６を任意の技術的に可能なやり方で指定してもよい。例えば、幾つかの実施形態では、ジョブ要求１９０はメディア作品１９６（ｘ）の遠隔ファイル位置を指定してもよい。このような実施形態では、メディア作品１９６（ｘ）はメディアコンテンツライブラリー１９８に必ずしも含まれない。
【００４２】
ユーザーに関連するジョブ要求１９０（ｘ）を受信すると直ぐ、ジョブインターフェースエンジン１５２は新しいジョブ（不図示）を生成する。新しいジョブを生成することの一部として、ジョブインターフェースエンジン１５２はイメージ識別子１９２に基づいてイメージレジストリ１３０からコンテナイメージ１３２（ｚ）を取得する。次に、ジョブインターフェースエンジン１５２はその新しいジョブを一意に特定するジョブ識別子１９６をユーザーに提供する。
【００４３】
ジョブインターフェースエンジン１５２が新しいジョブを生成した後、ワークフローエンジン１６２はそのジョブを実行する。ジョブ要求１９０（ｘ）に対応するそのジョブを実行するために、ワークフローエンジン１６２は、コンテナイメージ１３２（ｚ）及びメディア作品識別子リスト１９４に基づいて分割マップ収集ワークフロー（図１に不図示）を駆動する。より具体的には、ワークフローエンジン１６２は、コンテナイメージ１３２（ｚ）と関連する任意の数のコンテナ１８０を使用してメディア作品識別子リスト１９４により指定されたメディア作品１９６に対してワークフローを実行する。各ジョブは、限定されないが１つのスプリットタスク、それに続くＮ個のマップタスク、それに続く１つの収集タスクを含む（Ｎはスプリットの総数）。
【００４４】
先ず、ワークフローエンジン１６２はメディア作品識別子リスト１９４を指定するスプリットタスクを生成する。次に、ワークフローエンジン１６２は、コンテナイメージ１３２（ｚ）に関連するコンテナ１８０に含まれたプラットフォーム代理部１３４に分割機能１４２を使用してそのスプリットタスクを実行させる。そのスプリットタスクの実行の一部として、プラットフォーム代理部１３４はメディア作品リスト識別子１９４に基づいてメディアコンテンツライブラリー１９８からメディア作品１９６を取得する。他の実施形態では、ジョブ要求１９０は任意の数のメディア作品１９６を指定してよく、プラットフォーム代理部１３４はメディア作品１９６を任意の技術的に可能なやり方で取得してよい。例えば、幾つかの実施形態では、ジョブ要求１９０は任意の数のメディア作品１９６のファイル位置を指定してよく、プラットフォーム代理部１３４はそのファイル位置に基づいてメディア作品１９６を取得してよい。
【００４５】
スプリットタスクが実行を完了した後、ワークフローエンジン１６２は、スプリットタスクにより決められた各スプリットに対して別のマップタスクを生成する。各マップタスクについて、ワークフローエンジン１６２は、コンテナイメージ１３２（ｚ）と関連する潜在的に異なるコンテナ１８０に含まれたプラットフォーム代理部１３４にマップ機能１４４を使用してそのマップタスクを実行させる。任意の数のコンテナ１８０は任意の数のマップタスクを順次、同時に、又はそれらの任意の組み合わせで実行してよい。
【００４６】
全てのマップタスクが実行を完了した後、ワークフローエンジン１６２は、コンテナイメージ１３２（ｘ）と関連するコンテナ１８０の１つに含まれたプラットフォーム代理部１３４に収集機能１４６を使用してその収集タスクを実行させる。ワークフローエンジン１６２は、ワークフローエンジン１６２は、全てのマップタスクが実行を完了したと任意の技術的に可能なやり方で判断してもよい。例えば、幾つかの実施形態では、特定のマップタスクを実行することは、１つ以上の関連するマップ出力ファイルを生成し、ワークフローエンジン１６２は、マップ出力ファイルが正常に生成された時にマップタスクが実行を完了したと考える。他の実施形態では、ワークフローエンジン１６２は、マップタスクが実行を完了したか否かをワークフローエンジン１６２とコンテナ１８０との間で行き交うメッセージに基づいて判断する。通常、収集タスクは１つ以上の最終出力ファイルを生成する。次に、最終出力ファイルは、そのジョブに関連するメディア作品１９６に評価操作、部分変更操作、及びメディア作品１９６に関して表現操作のうち少なくとも１つを実行するのに使用される。
【００４７】
ワークフローエンジン１６２は、複数の異なるコンテナ１８０に含まれたプラットフォーム代理部１３４の複数の異なるインスタンスに複数のタスクを任意の技術的に可能なやり方で実行させる。例えば、幾つかの実施形態では、ワークフローエンジン１６２は、タスクエンジン１７２を使用してプラットフォーム代理部１３４の異なるインスタンスにタスクを実行させる。タスクエンジン１７２は、タスクをコンテナ１３０に送り追加の機能、例えばプラットフォームレベル暗黙的再試行を提供する優先度ベースのメッセージングシステムである。タスクを実行するために、ワークフローエンジン１６２は、そのタスクをタスクエンジン１７２により管理された任意の数の持続優先度付きキューの１つに加える。
【００４８】
自動拡張機能１７４はアプリケーション重みを理解し、入手可能な計算資源を活動中の複数の拡張可能メディアアプリケーション１４０に亘って関連する重み及び負荷に基づいて分配する。計算インスタンス１１０を特定の拡張可能メディアアプリケーション１４０に割り当てるために、自動拡張機能１７４はその拡張可能メディアアプリケーション１４０に関連するコンテナイメージ１３２を計算インスタンス１１０上で実行する。重要なことに、もし自動拡張機能１７４が、タスクが未処理である拡張可能メディアアプリケーション１４０（ｘ）に関連するコンテナ１８０がないことを検出すると、自動拡張機能１７４は、その拡張可能メディアアプリケーション１４０（ｘ）を含むコンテナイメージ１３２（ｘ）を実行して新しいコンテナ１８０を生成する。
【００４９】
他の実施形態では、システム１００に含まれるどの構成要素も任意の量と種類の資源管理及び／又はコンテナ管理動作を任意の技術的に可能なやり方で実行してよい。例えば、幾つかの実施形態では、ワークフローエンジン１６２は計算資源を活動中の複数の拡張可能メディアアプリケーション１４０に亘って分配し、複数のコンテナ１８０を生成し、複数のタスクをプラットフォーム代理部１３４の複数の異なるインスタンスに直接送信する。
【００５０】
ジョブ状態データベース１６４はジョブの状態をジョブ識別子１９２に基づいて記憶する。各ジョブの状態はワークフローにおける現在ステップとその現在ステップと関連するタスクの現在状態（例えば、実行中、中断中、完了、失敗）とを示す。例えば、特定のジョブの状態は、そのジョブがマップステップにあり、５００個のスプリットのうち２００個と関連するマップタスクが正常に終了したでありうる。ワークフローエンジン１６２はジョブ状態データベース１６４を使用してジョブ毎に分割マップ収集ワークフローを駆動し、状態エンジン１５４はジョブ状態データベース１６４を使用してジョブ状態をユーザーに提供する。
【００５１】
状態エンジン１５４は、ユーザーが各ジョブの状態を関連するジョブ識別子１９６を使用して判断するのを可能にするユーザーインターフェースアプリケーションである。状態エンジン１５４は各ジョブの状態を任意の技術的に可能なやり方及び任意の細分レベルで提供してよい。幾つかの実施形態では、状態エンジン１５４は分割、マップ、及び収集ステップに分けられた各ジョブの進行をグラフで描くＧＵＩである。同じ又は他の実施形態では、状態エンジン１５４は実行中、中断中、完了、及び失敗タスクのリストをグラフで表示する。
【００５２】
本書に記載された手法は限定ではなく例示であり、本発明のより広い要旨及び範囲から逸脱することなく変更されてもよい。記載された実施形態及び手法の範囲及び要旨から逸脱することなく多くの改良や変更は当業者にとって明らかであろう。概要として、本書に概説した手法は、任意の数のコンテナ１８０を使用してカスタムアルゴリズムをメディア作品１９６に実行する分割マップ収集ワークフローを駆動するのに適用できる。
【００５３】
例えば、他の実施形態では、ワークフローエンジン１６２は、複数のコンテナ１８０に分割機能１４２、マップ機能１４４、及び収集機能１４６を分割マップ収集ワークフローと整合する任意の技術的に可能なやり方で実行させる。また、幾つかの他の実施形態では、本書に記載されたシステム１００に含まれるアプリケーション及び構成要素の機能は、システム１００に含まれても含まれなくてもよい任意の数の他のアプリケーション及び構成要素に亘って分散されてもよい。例えば、プラットフォーム代理部１３４及びタスクエンジン１７２の機能の任意の量が、ワークフローエンジン１６２に包含されてもよい。
【００５４】
自動的に分割マップ収集ワークフローを実行
図２は、本発明の様々な実施形態に係る図１のワークフローエンジン１６２により確立されたワークフロー２１０を例示する。図２には示されていないが、ワークフローエンジン１６２は、コンテナイメージ１３２（ｘ）及びメディア作品１９６（ｙ）を指定するジョブ要求１９０に応答してワークフロー２１０を実行する。説明の目的だけのために、コンテナ１８０（１）〜１８０（５）はコンテナイメージ１３２（ｘ）と関連し、メディア作品１９６（ｙ）は映像ファイルである。
【００５５】
図示のように、ワークフローエンジン１６２がコンテナ１８０（１）に含まれたプラットフォーム代理部１３４に分割機能１４２をメディア作品１９６（ｙ）に実行させる時に、ワークフロー２１０は開始する。分割機能１４２はスプリット２２０（１）〜２２０（５）を指定する分割指定ファイル（図２に不図示）を生成する。スプリット２２０（１）は、限定されないがメディア作品１９６（ｙ）のフレーム０〜４７を含む。スプリット２２０（２）は、限定されないがメディア作品１９６（ｙ）のフレーム４８〜９５を含む。スプリット２２０（３）は、限定されないがメディア作品１９６（ｙ）のフレーム９６〜１４３を含む。スプリット２２０（４）は、限定されないがメディア作品１９６（ｙ）のフレーム１４４〜１９１を含む。スプリット２２０（５）は、限定されないがメディア作品１９６（ｙ）のフレーム１９２〜２３９を含む。他の実施形態では、分割機能１４２は任意の数のメディア作品１９６を任意の数のスプリット２２０に分割し、各スプリット２２０は異なる数のメディア対象物（例えば、フレーム、チャネルなど）を含んでよい。
【００５６】
分割機能１４２が実行を完了した後、ワークフローエンジン１６２は、コンテナ１８０（１）〜１８０（５）に含まれるプラットフォーム代理部１３４の複数の異なるインスタンスにマップ機能１４４の関連するインスタンスをそれぞれスプリット２２０（１）〜２２０（５）に対して実行させる。なお、コンテナ１８０（１）〜１８０（５）は概ね互いに並行に実行してもよい。マップ機能１４４が実行を完了した後、ワークフローエンジン１６２はコンテナ１８０（１）に収集機能１４６を実行させて任意の数の最終出力ファイル（不図示）を生成する。最終出力ファイルはコンテナイメージ１３２（ｘ）に関連する拡張可能メディアアプリケーション１４０をメディア作品１９６（ｙ）に実行した結果を統合したものである。
【００５７】
図３は、本発明の様々な実施形態に係る図２のコンテナ１８０の１つがカスタムアルゴリズムを特定のスプリット２２０に実行するやり方を例示する。より具体的には、図３は、コンテナ１８０（１）に含まれたプラットフォーム代理部１３４及びマップ機能１４４がスプリット２２０（１）を指定するマップタスクに応答してスプリット２２０（１）に実行する「マップタスク操作」を描写する。特に、マップ機能１４４はカスタムアルゴリズムが組み込まれている。説明の目的だけのために、図３はマップタスク操作を一連の番号付き丸として描いている。
【００５８】
先ず、番号１の丸で描かれているように、プラットフォーム代理部１３４はマップ機能１４４による処理のためにマップ入力ファイル３１２を用意する。図示のように、マップ入力ファイル３１２は、ネットワーク実装法によりマップ機能１４４にとって入手可能にされた安全な記憶部１２０に含まれている。マップ入力ファイル３１２は、限定されないがスプリット２２０（１）に含まれたフレームを指す。マップ入力ファイル３１２を用意することの一部として、プラットフォーム代理部１３４は、マップ入力ファイル３１２がコンテナ１８０（１）にとって入力ディレクトリ３１０を介してアクセス可能であることを可能にする１つ以上の操作（例えば、コピー操作、実装操作など）を実行する。
【００５９】
次に、番号２の丸で描かれているように、プラットフォーム代理部１３４は状況情報３２２を用意する。不図示だが、状況情報３２２は、限定されないがマップ機能１４４がスプリット２２０（１）に実行するのに必要な任意の量と種類の情報を含む。特に、状況情報３２２は入力ディレクトリ３１０の位置、出力ディレクトリ３９０の位置、及びスプリット２２０（１）と関連する任意の数のメディア属性を指定する。メディア属性の例は１秒当たりのフレーム数である。次に、プラットフォーム代理部１３４はマップ機能１４４を状況情報３２２で呼び出す（番号３の丸）。
【００６０】
番号４の丸で描かれているように、マップ機能１４４は状況情報３２２及びマップ入力ファイル３１２を読み込む。次に、マップ機能１４４は、マップ機能１４４に組み込まれたカスタムアルゴリズムを実行する（番号５の丸）。番号６の丸で描かれているように、マップ機能１４４は任意の数のマップ出力ファイル３９２を出力ディレクトリ３９０に書き込む。マップ出力ファイル３９２はそのカスタムアルゴリズムをスプリット２２０（１）に実行した結果である。
【００６１】
マップ機能１４４が実行を完了した後、番号７の丸で描かれているように、プラットフォーム代理部１３４は、マップ出力ファイル３９２を安全な記憶部１２０に記憶する。最後に、番号８の丸で描かれているように、プラットフォーム代理部１３４は、任意の数の片付け操作を実行する。片付け操作の一例は、マップ機能１４４がスプリット２２０（１）を処理時に生成したどんな一時ファイル及びディレクトリも削除することである。
【００６２】
図３に描かれていないが、番号付き丸１〜８により描かれたマップタスク操作の前に、コンテナ１８０（１）に含まれたプラットフォーム代理部１３４及び分割機能１４２は、同様のシーケンスの操作を実行して分割タスクを行った。そして、番号付き丸１〜８により描かれたマップタスク操作に続いて、コンテナ１８０（１）に含まれたプラットフォーム代理部１３４及び収集機能１４６は、同様のシーケンスの操作を実行して収集タスクを行う。
【００６３】
図４は本発明の様々な実施形態に係るメディア作品にカスタムアルゴリズムを実行するための方法ステップのフロー図である。方法ステップは図１〜３のシステムを参照して説明されるが、当業者は方法ステップを任意の順に実行するよう構成された任意のシステムが本発明の範囲に入ることを理解するであろう。
【００６４】
図示のように、方法４００は、ジョブインターフェースエンジン１５２がユーザーからジョブ要求１９０を受信するステップ４０２から始まる。ジョブ要求１９０は、限定されないがイメージ識別子１９２及びメディア作品識別子リスト１９４を指定する。ステップ４０４では、ジョブインターフェースエンジン１５２は新しいジョブをジョブ要求１９０に基づいて初期化し関連するジョブ識別子１９６をユーザーに送信する。ステップ４０６では、ジョブインターフェースエンジン１５２がイメージ識別子１９２に基づいてイメージレジストリ１３０から対象コンテナイメージ１３２を取得する。他の実施形態では、ジョブインターフェースエンジン１５２は対象コンテナイメージ１３２を任意の技術的に可能なやり方で任意の種類のイメージ識別子に基づいて取得してもよい。
【００６５】
ステップ４０８では、ワークフローエンジン１６２は対象コンテナイメージ１３２に関連するコンテナ１８０のうち１つに分割機能１４２をメディア作品識別子リスト１９４により指定されたメディア作品１９６に実行させて複数のスプリット２２０を生成する。ステップ４１０では、各スプリット２２０について、ワークフローエンジン１６２は、対象コンテナイメージ１３２に関連するコンテナ１８０のうち潜在的に異なる１つにマップ機能１４４をそのスプリット２２０に実行させて１つ以上のマップ出力ファイル３９２を生成する。ステップ４１２では、マップ機能１４４の複数の異なるインスタンスがそれらのスプリット２２０に対する実行を完了した後、ワークフローエンジン１６２は対象コンテナイメージ１３２に関連するコンテナ１８０のうち１つに収集機能１４６を異なるスプリット２２０に関連するマップ出力ファイル３９２に対して実行させて最終出力ファイルを生成する。最終出力ファイルはメディア作品識別子リスト１９４により指定されたメディア作品１９６に評価操作、部分変更操作、及びメディア作品１９６に関して表現操作のうち少なくとも１つを実行するのに使用されてよい。
【００６６】
ステップ４１４では、ジョブインターフェースエンジン１５２は、ジョブインターフェースエンジン１５２が新しいジョブ要求１９０を受信したか否かを判断する。ステップ４１４で、ジョブインターフェースエンジン１５２が新しいジョブ要求１９０を受信したと判断すると、方法４００はステップ４０２に戻り、ジョブインターフェースエンジン１５２とワークフローエンジン１６２は新しいジョブ要求１９０を実行する。しかし、ステップ４１４で、ジョブインターフェースエンジン１５２が新しいジョブ要求１９０を受信していないと判断すると、方法４００は終了する。
【００６７】
要約すると、開示された手法は、分散さえた計算資源によりカスタムアルゴリズムをメディアコンテンツに効率的に実行するのに使用されてよい。カスタムアルゴリズムは拡張可能メディアアプリケーションに含まれた分割、マップ、及び収集機能に組み込まれる。プラットフォーム代理部は「オーバーヘッド」機能を実行する。例えば、様々な実施形態では、プラットフォーム代理部は、多種多様なメディア形式のためのメディアコンテンツライブラリーからメディア作品を確実に取得し、符号化及び復号などのメディア処理操作を自動的に行い、ファイルを安全な記憶部に確実に記憶する。プラットフォーム代理部、拡張可能メディアアプリケーション、及び拡張可能メディアアプリケーションのどの依存部も、イメージレジストリに記憶されるコンテナイメージに含まれる。カスタムアルゴリズムは、少なくともコンテナイメージ及び１つ以上のメディア作品を指定するジョブ要求を介して実行される。
【００６８】
ジョブ要求を受信すると直ぐ、ワークフローエンジンはジョブ要求及び分割マップ収集ワークフローに基づいて新しいジョブを実行する。先ず、ワークフローエンジンはジョブ要求に関連するメディア作品を指定する１つの「スプリット」タスクを生成する。ワークフローエンジンはそのタスクをコンテナイメージに関連するコンテナによる実行のためにキューに入れる。コンテナイメージに関連するコンテナが無い場合は、自動拡張機能は、利用可能な計算インスタンスにコンテナイメージを実行させ、これによりそのコンテナイメージと関連する新しいコンテナを生成する。スプリットタスクを実行するために、そのコンテナに含まれたプラットフォーム代理部は、メディア作品を確実に取得し、分割機能をメディア作品に実行する。分割機能はメディア作品を複数のスプリットに分割し、それらのスプリットを指定する分割指定ファイルを生成する。
【００６９】
スプリットタスクが実行を完了したと判断すると直ぐ、ワークフローエンジンは分割指定ファイルに指定された各スプリットの異なる「マップ」タスクを生成する。ワークフローエンジンはそれらのマップタスクをコンテナイメージに関連するコンテナによる実行のためにキューに入れる。このように、それらのマップタスクはコンテナイメージに関連する任意の数のコンテナに分配され、自動拡張機能により動的に管理される。特定のスプリットに対してマップタスクを実行するために、コンテナに含まれたプラットフォーム代理部は、そのスプリットに関連するマップ入力ファイル（例えば、そのスプリットに含まれたフレーム）を用意し、マップ入力ファイルに基づいてマップ機能を実行し、マップ機能により生成されたマップ出力ファイルを安全な記憶部に記憶する。それらマップタスクの全てが実行を完了したと判断すると直ぐ、ワークフローエンジンは「収集」タスクを生成する。ワークフローエンジンはその収集タスクをコンテナイメージに関連するコンテナによる実行のためにキューに入れる。収集タスクを実行するために、コンテナに含まれたプラットフォーム代理部はそれらの異なるマップタスクにより生成されたマップ出力ファイルを用意し、マップ出力ファイルに基づいて収集機能を実行し、収集機能により生成された最終出力ファイルを更なる処理のために安全な記憶部に記憶する。
【００７０】
有利なことに、従来技術手法と比べて、開示された手法は、カスタムアルゴリズムがより容易かつ確実にメディア作品に分散された計算資源により実行されるのを可能にする。特に、ワークフローエンジンは、自動的に割り当てられ適切なオペレーティングシステム（ＯＳ）依存部を含むコンテナを使用してカスタムアルゴリズムをメディアデータに高いスループットで実行できる分割マップ収集ワークフローを確立する。そのため、従来技術手法と比べて、拡張可能なメディアアプリケーションを生成するために必要な動的ワークフロー、資源割り当て、及び負荷バランシングの技術的知識の量が低減される。また、開示された手法は、メディア、通信、及び保全操作を自動的に実行し、広範囲の潜在的に知的所有権のあるメディア作品にカスタムアルゴリズムを確実かつ正常に実行するのに必要な設計手作業及び技術的知識の量を低減する。これらの技術的利点は従来技術に比べて１つ以上の技術的進歩を提供する。
【００７１】
態様１
幾つかの実施形態では、コンピュータ実行方法は、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップとを含み、前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される。
【００７２】
態様２
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、態様１記載のコンピュータ実行方法。
【００７３】
態様３
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップを更に含む、態様１又は２記載のコンピュータ実行方法。
【００７４】
態様４
前記複数の分割指定を生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得するステップと、前記第１のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、前記第１のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、態様１〜３のいずれかに記載のコンピュータ実行方法。
【００７５】
態様５
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、態様１〜４のいずれかに記載のコンピュータ実行方法。
【００７６】
態様６
前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、態様１〜５のいずれかに記載のコンピュータ実行方法。
【００７７】
態様７
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、態様１〜６のいずれかに記載のコンピュータ実行方法。
【００７８】
態様８
前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、態様１〜７のいずれかに記載のコンピュータ実行方法。
【００７９】
態様９
前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも１つに作用するカスタムアルゴリズムを包含する、態様１〜８のいずれかに記載のコンピュータ実行方法。
【００８０】
態様１０
前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも１つを前記複数のマップ出力ファイルに実行して前記１つ以上の最終出力ファイルを生成する、態様１〜９のいずれかに記載のコンピュータ実行方法。
【００８１】
態様１１
幾つかの実施形態では、１つ以上の持続性コンピュータ読取可能媒体は、命令群を含み、１つ以上のプロセッサにより実行される時に、前記命令群は前記１つ以上のプロセッサに、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる１つ以上の異なるマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップとを実行させ、前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される。
【００８２】
態様１２
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、態様１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８３】
態様１３
前記マップ機能は第１クラス対象物としてのメディア関連対象物に作用する、態様１１又は１２記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８４】
態様１４
前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、態様１１〜１３のいずれかに記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８５】
態様１５
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、態様１１〜１４のいずれかに記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８６】
態様１６
前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナに前記メディア作品に含まれた第１の複数のフレームを前記複数の分割指定に含まれた第１の分割指定に基づいて決定させるステップと、前記第１のコンテナに前記マップ機能を前記第１の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第１のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第２のコンテナに前記メディア作品に含まれた第２の複数のフレームを前記複数の分割指定に含まれた第２の分割指定に基づいて決定させるステップと、前記第２のコンテナに前記マップ機能を前記第２の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第２のマップ出力ファイルを生成するステップとを含む、態様１１〜１５のいずれかに記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８７】
態様１７
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、態様１１〜１６のいずれかに記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８８】
態様１８
各分割指定は前記メディア作品に含まれた１つの異なる場面シーケンスに関連する、態様１１〜１７のいずれかに記載の１つ以上の持続性コンピュータ読取可能媒体。
【００８９】
態様１９
前記メディア作品は、映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツのうち少なくとも１つを含む、態様１１〜１８のいずれかに記載の１つ以上の持続性コンピュータ読取可能媒体。
【００９０】
態様２０
幾つかの実施形態では、システムは命令群を記憶する１つ以上のメモリと、前記１つ以上のメモリと結合された１つ以上のプロセッサとを備え、前記命令群を実行する時、コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップと、前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップとを実行するよう構成され、前記１つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも１つを実行するために使用される。
【００９１】
請求項のいずれかに記述された請求要素のいずれか及び／又は本願に記載されたいずれかの要素の任意の組み合わせ及び全ての組み合わせは、任意のやり方で、本発明及び保護の考慮された範囲内に入る。
【００９２】
様々な実施形態の説明が例示の目的のために提示されたが、網羅的であることも開示した実施形態に限定されることも意図されていない。説明した実施形態の範囲及び要旨から逸脱することなく多くの改良及び変更が、当業者には明らかであろう。
【００９３】
本実施形態の態様はシステム、方法、又はコンピュータプログラム製品として具体化されてもよい。従って、本開示の態様は完全にハードウェア実施形態、完全にソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、又は本明細書において一般に「モジュール」又は「システム」と呼ばれうるソフトウェア態様とハードウェア態様を組み合わせた実施形態の形をとってもよい。また、本開示に記載されたいずれのハードウェア及び／又はソフトウェア手法、プロセス、機能、構成要素、エンジン、モジュール、又はシステムも回路又は１組の回路として実現されてよい。また、本開示の態様は、コンピュータ読取可能プログラムコードが組み込まれた１つ以上のコンピュータ読取可能媒体に具体化されたコンピュータプログラム製品の形をとってもよい。
【００９４】
１つ以上のコンピュータ読取可能媒体のいずれの組み合わせも利用してよい。コンピュータ読取可能媒体は、コンピュータ読取可能信号媒体又はコンピュータ読取可能記憶媒体であってもよい。コンピュータ読取可能記憶媒体は、例えば、これらに限定されないが、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置、又はデバイス、又はそれらの任意の適切な組み合わせであってよい。コンピュータ読取可能記憶媒体のより具体的な例（非網羅的リスト）は、１つ以上のワイヤーを有する電気的接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去・プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバー、携帯型コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含むであろう。本明細書の文脈では、コンピュータ読取可能記憶媒体は、命令実行システム、装置、又はデバイスによる又はに関連した使用のためのプログラムを含み又は記憶しうる任意の有形の媒体であってよい。
【００９５】
本開示の態様は、本開示の実施形態に係るフローチャート図及び／又は方法、装置（システム）、及びコンピュータプログラム製品のブロック図を参照して上記で説明されている。フローチャート図及び／又はブロック図の各ブロックと、フローチャート図及び／又はブロック図内のブロックの組み合わせとはコンピュータプログラム命令群により実施されうることは理解されよう。これらのコンピュータプログラム命令は汎用コンピュータ、特殊用途コンピュータ、又は機械を製造する他のプログラム可能データ処理装置のプロセッサに提供されてもよい。コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される時、それらの命令はフローチャートに明記された機能／動作及び／又はブロック図内ブロックの実施を可能にする。そのようなプロセッサは、限定されないが、汎用プロセッサ、特殊用途プロセッサ、特定用途向けプロセッサ、又はフィールド・プログラム可能ゲートアレイであってもよい。
【００９６】
図のフローチャート及びブロック図は、本開示の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための１つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表す場合がある。なお、別の実施形態では、ブロックに記された機能は、図に記された順番から外れて発生してもよい。例えば、続けて示された２つのブロックは、実際には実質的に同時に実行されるか、又は係る機能に依って、時には逆の順番に実行されるかもしれない。また、ブロック図及び／又はフローチャート図の各ブロックと、ブロック図及び／又はフローチャート図内のブロックの組み合わせとは、指定の機能又は動作を実行する特殊用途ハードウェアシステム又は特殊用途ハードウェア及びコンピュータ命令群の組み合わせにより実施されうる。
【００９７】
上記は本開示の実施形態に向けられているが、本開示の他の及び追加の実施形態を本開示の基本的な範囲から逸脱することなく思い付くかもしれない。本開示の範囲は添付の請求項により決定される。
【符号の説明】
【００９８】
１００    システム
１０２    メディア処理プラットフォーム
１１０    計算インスタンス
１１２    プロセッサ
１１６    メモリ
１２０    安全な記憶部
１３０    イメージレジストリ
１３２    コンテナイメージ
１３４    プラットフォーム代理部
１３６    依存部
１４０    拡張可能メディアアプリケーション
１４２    分割機能
１４４    マップ機能
１４６    収集機能
１５０    ジョブ管理サブシステム
１５２    ジョブインターフェースエンジン
１５４    状態エンジン
１６２    ワークフローエンジン
１６４    ジョブ状態データベース
１７２    タスクエンジン
１７４    自動拡張機能
１８０    コンテナ
１９０    ジョブ要求
１９２    イメージ識別子
１９４    メディア作品識別子リスト
１９６    メディア作品
１９８    メディアコンテンツライブラリー
２１０    ワークフロー
３１０    入力ディレクトリ
３１２    マップ入力ファイル
３９０    出力ディレクトリ
３９２    マップ出力ファイル
【図１】
2020533665.tif 000003
【図２】
2020533665.tif 000004
【図３】
2020533665.tif 000005
【図４】
2020533665.tif 000006
【手続補正書】
【提出日】令和2年7月9日(2020.7.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
図のフローチャート及びブロック図は、本開示の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための１つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表す場合がある。なお、別の実施形態では、ブロックに記された機能は、図に記された順番から外れて発生してもよい。例えば、続けて示された２つのブロックは、実際には実質的に同時に実行されるか、又は係る機能に依って、時には逆の順番に実行されるかもしれない。また、ブロック図及び／又はフローチャート図の各ブロックと、ブロック図及び／又はフローチャート図内のブロックの組み合わせとは、指定の機能又は動作を実行する特殊用途ハードウェアシステム又は特殊用途ハードウェア及びコンピュータ命令群の組み合わせにより実施されうる。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態１
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を含み、
前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される、コンピュータ実行方法。
実施形態２
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、実施形態１記載のコンピュータ実行方法。
実施形態３
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップを更に含む、実施形態１記載のコンピュータ実行方法。
実施形態４
前記複数の分割指定を生成するステップは、
前記コンテナイメージに関連する第１のコンテナを取得するステップと、
前記第１のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、
前記第１のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、実施形態１記載のコンピュータ実行方法。
実施形態５
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、実施形態１記載のコンピュータ実行方法。
実施形態６
前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、実施形態１記載のコンピュータ実行方法。
実施形態７
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、実施形態１記載のコンピュータ実行方法。
実施形態８
前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、実施形態１記載のコンピュータ実行方法。
実施形態９
前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも１つに作用するカスタムアルゴリズムを包含する、実施形態１記載のコンピュータ実行方法。
実施形態１０
前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも１つを前記複数のマップ出力ファイルに実行して前記１つ以上の最終出力ファイルを生成する、実施形態１記載のコンピュータ実行方法。
実施形態１１
命令群を含む１つ以上の持続性コンピュータ読取可能媒体であって、１つ以上のプロセッサにより実行される時に、前記命令群は前記１つ以上のプロセッサに、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる１つ以上の異なるマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を実行させ、
前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される、１つ以上の持続性コンピュータ読取可能媒体。
実施形態１２
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１３
前記マップ機能は第１クラス対象物としてのメディア関連対象物に作用する、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１４
前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１５
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１６
前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナに前記メディア作品に含まれた第１の複数のフレームを前記複数の分割指定に含まれた第１の分割指定に基づいて決定させるステップと、前記第１のコンテナに前記マップ機能を前記第１の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第１のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第２のコンテナに前記メディア作品に含まれた第２の複数のフレームを前記複数の分割指定に含まれた第２の分割指定に基づいて決定させるステップと、前記第２のコンテナに前記マップ機能を前記第２の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第２のマップ出力ファイルを生成するステップとを含む、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１７
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１８
各分割指定は前記メディア作品に含まれた１つの異なる場面シーケンスに関連する、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態１９
前記メディア作品は、映像コンテンツ、符号化された映像コンテンツ、音声コンテンツ、符号化された音声コンテンツ、及びテキストコンテンツのうち少なくとも１つを含む、実施形態１１記載の１つ以上の持続性コンピュータ読取可能媒体。
実施形態２０
命令群を記憶する１つ以上のメモリと、
前記１つ以上のメモリと結合された１つ以上のプロセッサと
を備えたシステムであって、
前記命令群を実行する時、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を実行するよう構成され、
前記１つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも１つを実行するために使用される、システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を含み、
前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される、コンピュータ実行方法。
【請求項２】
前記コンテナイメージは拡張可能メディアアプリケーションと、前記拡張可能メディアアプリケーションの１つ以上のオペレーティングシステム（ＯＳ）依存部とを含む、請求項１記載のコンピュータ実行方法。
【請求項３】
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップを更に含む、請求項１記載のコンピュータ実行方法。
【請求項４】
前記複数の分割指定を生成するステップは、
前記コンテナイメージに関連する第１のコンテナを取得するステップと、
前記第１のコンテナに前記メディア作品をメディアコンテンツライブラリーから確実に取得させるステップと、
前記第１のコンテナに前記分割機能を前記メディア作品に対して実行させるステップとを含む、請求項１記載のコンピュータ実行方法。
【請求項５】
前記コンテナイメージをクラウド又は他の分散計算システムに含まれた計算インスタンス上で実行して前記コンテナイメージに関連する複数のコンテナに含まれる第１のコンテナを生成するステップを更に含む、請求項１記載のコンピュータ実行方法。
【請求項６】
前記複数のマップ出力ファイルを生成するステップは、前記複数の分割指定に含まれた分割指定毎に、前記コンテナイメージに関連する複数のコンテナに含まれた異なるコンテナに前記複数のマップ出力ファイルに含まれる異なるマップ出力ファイルを前記マップ機能に基づいて生成させるステップを含む、請求項１記載のコンピュータ実行方法。
【請求項７】
前記１つ以上の最終出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記収集機能を前記複数のマップ出力ファイルに対して実行させるステップを含む、請求項１記載のコンピュータ実行方法。
【請求項８】
前記分割機能は、前記メディア作品に含まれたフレームを再生時間に基づいて分割して前記複数の分割指定を生成する、請求項１記載のコンピュータ実行方法。
【請求項９】
前記マップ機能は、メディアコンテンツ又は符号化されたメディアコンテンツのうち少なくとも１つに作用するカスタムアルゴリズムを包含する、請求項１記載のコンピュータ実行方法。
【請求項１０】
前記収集機能は、暗号化操作、圧縮操作、及びバイト連結操作のうち少なくとも１つを前記複数のマップ出力ファイルに実行して前記１つ以上の最終出力ファイルを生成する、請求項１記載のコンピュータ実行方法。
【請求項１１】
命令群を含む１つ以上の持続性コンピュータ読取可能媒体であって、１つ以上のプロセッサにより実行される時に、前記命令群は前記１つ以上のプロセッサに、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディア作品の異なる部分と関連する、ステップと、
前記複数の分割指定に含まれた分割指定毎に、前記分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルに含まれる１つ以上の異なるマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を実行させ、
前記１つ以上の最終出力ファイルは次に前記メディア作品に評価操作、部分変更操作、及び前記メディア作品に関して表現操作のうち少なくとも１つを実行するために使用される、１つ以上の持続性コンピュータ読取可能媒体。
【請求項１２】
前記複数の分割指定を生成するステップは、タスク要求をタスクエンジンに送信し、これに応答して、前記コンテナイメージに関連する第１のコンテナを取得し、前記第１のコンテナに前記分割機能を前記メディア作品の復号され非圧縮のバージョンに対して実行させるステップを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１３】
前記複数のマップ出力ファイルを生成するステップは、前記コンテナイメージに関連する第１のコンテナに前記メディア作品に含まれた第１の複数のフレームを前記複数の分割指定に含まれた第１の分割指定に基づいて決定させるステップと、前記第１のコンテナに前記マップ機能を前記第１の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第１のマップ出力ファイルを生成するステップと、前記コンテナイメージに関連する第２のコンテナに前記メディア作品に含まれた第２の複数のフレームを前記複数の分割指定に含まれた第２の分割指定に基づいて決定させるステップと、前記第２のコンテナに前記マップ機能を前記第２の複数のフレームに対して実行させて前記複数のマップ出力ファイルに含まれる第２のマップ出力ファイルを生成するステップとを含む、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１４】
各分割指定は前記メディア作品に含まれた１つの異なる場面シーケンスに関連する、請求項１１記載の１つ以上の持続性コンピュータ読取可能媒体。
【請求項１５】
命令群を記憶する１つ以上のメモリと、
前記１つ以上のメモリと結合された１つ以上のプロセッサと
を備えたシステムであって、
前記命令群を実行する時、
コンテナイメージに含まれた分割機能に基づいて複数の分割指定を生成するステップであって、各分割指定はメディアコンテンツの異なる部分と関連する、ステップと、
前記複数の分割指定と前記コンテナイメージに含まれたマップ機能とに基づいて複数のマップ出力ファイルを生成するステップと、
前記複数のマップ出力ファイルが正常に生成されたと判断するために１つ以上の操作を実行するステップと、
前記複数のマップ出力ファイルと前記コンテナイメージに含まれた収集機能とに基づいて１つ以上の最終出力ファイルを生成するステップと
を実行するよう構成され、
前記１つ以上の最終出力ファイルは次に前記メディアコンテンツに評価操作、部分変更操作、及び前記メディアコンテンツに関して表現操作のうち少なくとも１つを実行するために使用される、システム。
【国際調査報告】
2020533665.tif 000007
2020533665.tif 000008