(57)【要約】  方法およびシステムは、コンテンツ作成者がフレーム単位編集を行うことを可能にし、少なくともいくつかの実施形態では、当該フレームの作業のために圧縮解除する必要があるコンテンツの量を減らすことを可能にする。いくつかの実施形態は、ストリーミング環境に関するビットレート条件が維持されるようにビットレートの整合性が維持されることを保証する。各種実施形態は、どのコンテンツ部分が圧縮解除、処理、および再圧縮されなければならず、どのコンテンツ部分が圧縮解除されるべきでないかをインテリジェントに判断する。【特許請求の範囲】
【請求項１】
廃棄されるファイルコンテンツを指定するマークインポイントをファイルに対して定義することと、
前記マークインポイントの、少なくとも直前および次の、単独でのデコードが可能なフレームを検索することと、
前記直前のキーフレームから前記次のキーフレームまでのフレームをデコードすることと、
前記マークインポイントに関連付けられたフレームを新しいキーフレームとして再エンコードすることと、
前記次の、単独でのデコードが可能なフレームまでの残りのフレームを再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項２】
単独でのデコードが可能な直前のフレームを検索する前記操作は、前記マークインポイントに関連付けられたフレームが、単独でのデコードが可能なフレームでない場合のみ実行されることを特徴とする請求項１に記載の方法。
【請求項３】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
１つまたは複数のプロセッサによって実行されたときに請求項１に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項７】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項１に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項８】
前記１つまたは複数のコンピュータ可読を組み込むことを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
廃棄されるファイルコンテンツを指定するマークアウトポイントをファイルに対して定義することと、
前記ファイルコンテンツのエンコードに双方向フレームが用いられているかどうかを調べることと、
前記ファイルコンテンツのエンコードに双方向フレームが用いられていない場合には、前記マークアウトポイントより後のフレームを廃棄することと、
前記ファイルコンテンツのエンコードに双方向フレームが用いられている場合には、
前記マークアウトポイントの直前の、単独でのデコードが可能なフレームを検索し、
前記直前の、単独でのデコードが可能なフレームから、前記マークアウトポイントに関連付けられたフレームまでの、前記マークアウトポイントに関連付けられたフレームを含むフレーム群をデコードし、
前記直前の、単独でのデコードが可能なフレームから、前記マークアウトポイントに関連付けられた前記フレームまでの、前記マークアウトポイントに関連付けられた前記フレームを含むフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項１０】
前記再エンコード後に、前記マークアウトポイントに関連付けられた前記フレームより後のフレームを廃棄することをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１２】
１つまたは複数のプロセッサによって実行されたときに請求項９に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項１３】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項９に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項１４】
前記１つまたは複数のコンピュータ可読を組み込むことを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１５】
第１および第２のファイルセグメントを継ぎ合わせる継ぎ合わせポイントを定義することと、
前記第１のファイルセグメントにおける前記継ぎ合わせポイントの直前の、単独でのデコードが可能なフレームを検索することと、
前記第２のファイルセグメントにおける前記継ぎ合わせポイントの、少なくとも直前および次の、単独でのデコードが可能なフレームを検索することと、
前記第１のファイルセグメントにおける前記直前の、単独でのデコードが可能なフレームから、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームまでの、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームを含まないフレーム群をデコードすることと、
前記第１のファイルセグメントにおける前記継ぎ合わせポイントに関連付けられたフレームを新しいキーフレームとして再エンコードすることと、
前記新しいキーフレームより後の、少なくとも、前記第２のファイルセグメントにおける前記継ぎ合わせポイントに関連付けられたフレームを含む、前記第２のファイルセグメントにおける前記継ぎ合わせポイントに関連付けられたフレームまでの残りのフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項１６】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１９】
１つまたは複数のプロセッサによって実行されたときに請求項１５に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項２０】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項１５に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項２１】
前記１つまたは複数のコンピュータ可読を組み込むことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
第１のファイルセグメントから第２のファイルセグメントへのトランジションを発生させる場所を定義するトランジションポイントを定義することと、
前記第１のファイルセグメントにおけるトランジションポイントの直前の、単独でのデコードが可能なフレームを検索することと、
前記第２のファイルセグメントにおけるトランジションポイントの、少なくとも直前および次の、単独でのデコードが可能なフレームを検索することと、
前記第１のファイルセグメントにおける前記直前の、単独でのデコードが可能なフレームから、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームまでの、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームを含まないフレーム群をデコードすることと、
少なくともいくつかの前記デコード済みフレームに前記トランジションを適用することと、
前記第１のファイルセグメントにおける前記直前の、単独でのデコードが可能なフレームから、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームまでの、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームを含まないフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項２３】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項２２に記載の方法。
【請求項２５】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２６】
１つまたは複数のプロセッサによって実行されたときに請求項２２に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項２７】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項２２に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項２８】
前記１つまたは複数のコンピュータ可読を組み込むことを特徴とする請求項２７に記載のコンピュータシステム。
【請求項２９】
エフェクトを適用するファイルセグメントを定義するマークインエフェクト開始ポイントとマークアウトエフェクト終了ポイントとを定義することと、
前記マークインエフェクト開始ポイントの直前の、単独でのデコードが可能なフレームを検索することと、
前記マークアウトエフェクト終了ポイントの次の、単独でのデコードが可能なフレームを検索することと、
前記直前の、単独でのデコードが可能なフレームから、前記次の、単独でのデコードが可能なフレームまでの、前記次の、単独でのデコードが可能なフレームを含まないフレーム群をデコードすることと、
少なくとも１つのデコード済みフレームに前記エフェクトを適用することと、
前記直前の、単独でのデコードが可能なフレームから、少なくとも、前記次の、単独でのデコードが可能なフレームまでのフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項３０】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項２９に記載の方法。
【請求項３２】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３３】
１つまたは複数のプロセッサによって実行されたときに請求項２９に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項３４】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項２９に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項３５】
前記１つまたは複数のコンピュータ可読を組み込むことを特徴とする請求項３４に記載のコンピュータシステム。
【請求項３６】
１つまたは複数のコンピュータ可読媒体と、
１つまたは複数のコンピュータ可読媒体に組み込まれた１つまたは複数のソフトウェアコンポーネントとを備え、前記１つまたは複数のソフトウェアコンポーネントは、
ユーザのマルチメディアプロジェクトを記述するタイムラインオブジェクトをアプリケーションから受け取り、
前記タイムラインオブジェクトを解析して、前記ユーザのマルチメディアプロジェクトの、デコードされることが必要な部分が明確に定義されるように、前記ユーザのマルチメディアプロジェクトを記述する新しいタイムラインオブジェクトを導出し、
前記ユーザのプロジェクトに関連付けられたファイル部分を処理するために用いられる部分的トポロジを導出し、
前記部分的トポロジから、前記ファイル部分の処理に用いられるフルトポロジを導出するように構成されることを特徴とするシステム。
【請求項３７】
前記１つまたは複数のソフトウェアコンポーネントは、少なくとも、圧縮器コンポーネントを前記部分的トポロジの部分に挿入することによって前記フルトポロジを導出するように構成されることを特徴とする請求項３６に記載のシステム。
【請求項３８】
マルチメディアプロジェクトに関係するユーザ入力を受け取り、前記ユーザ入力から、前記１つまたは複数のソフトウェアコンポーネントに供給できるタイムラインオブジェクトを生成するように構成されたアプリケーションをさらに含むことを特徴とする請求項３６に記載のシステム。
【請求項３９】
前記１つまたは複数のソフトウェアコンポーネントは、前記ユーザのプロジェクトのフレーム群に関連付けられたバッファフルネス情報を計算し、前記バッファフルネス情報を用いて、前記プロジェクトのデコード済みフレームを再エンコードするために用いられる圧縮器を構成するように構成されることを特徴とする請求項３６に記載のシステム。
【請求項４０】
前記１つまたは複数のソフトウェアコンポーネントは、少なくとも前記新しいタイムラインオブジェクトに従って圧縮器を構成し、圧縮されたデータが出力ファイルに書き込まれるようにするように構成されることを特徴とする請求項３６に記載のシステム。
【請求項４１】
前記新しいタイムラインオブジェクトは、
トリミングされるファイルセグメントと、
トリミングおよびステッチングされるファイルセグメントと、
ステッチングされるファイルセグメントと、
少なくとも１つのトランジションが組み込まれるファイルセグメントと、
少なくとも１つのエフェクトが組み込まれるファイルセグメントのうちの１つまたは複数を記述できることを特徴とする請求項３６に記載のシステム。
【請求項４２】
１つまたは複数のファイルセグメントの少なくとも一部分がデコードされることを必要とする１つまたは複数の操作を受ける１つまたは複数の圧縮済みマルチメディアファイルを受け取ることと、
前記１つまたは複数の操作を実行するために、前記１つまたは複数のファイルセグメントの、デコードされることが必要な部分だけをデコードし、前記デコード操作の実行対象が、少なくとも１つの前記マルチメディアファイルの丸ごとより少ないことと、
前記１つまたは複数のファイルセグメントのデコード済み部分に前記１つまたは複数の操作を実行して、１つまたは複数の最終ファイルセグメントを提供することと、
前記最終ファイルセグメントを再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項４３】
前記１つまたは複数の操作は、トリミング操作と、トランジション操作と、エフェクト操作と、これらの組み合わせのうちの１つまたは複数を含むことを特徴とする請求項４２に記載の方法。
【請求項４４】
前記１つまたは複数のセグメントの表現をユーザに呈示することをさらに含み、前記表現は、ユーザがセグメントを選択し、選択したセグメントに対して操作を行うことを可能にすることを特徴とする請求項４２に記載の方法。
【請求項４５】
前記再エンコード操作は、前記再エンコード操作に用いる圧縮プロファイルを自動的に選択するように構成されたアプリケーションによって実行されることを特徴とする請求項４２に記載の方法。
【請求項４６】
前記操作は、前記マルチメディアファイルのうちの１つまたは複数のファイルのフォーマットが、出力ファイルのフォーマットと一致しない場合に実行できることを特徴とする請求項４２に記載の方法。
【請求項４７】
前記フォーマットが一致しない場合に、前記フォーマットが実質的に同等かどうかを調べ、実質的に同等であれば、少なくとも、前記１つまたは複数の操作を実行することをさらに含むことを特徴とする請求項４６に記載の方法。
【請求項４８】
前記フォーマットが一致しない場合に、前記１つまたは複数の操作が実行された場合とされない場合とで前記マルチメディアファイルの品質が劣化するかどうかを調べてから、前記１つまたは複数の操作を実行することをさらに含むことを特徴とする請求項４６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチメディアコンテンツを作成および編集する方法およびシステムに関する。
【背景技術】
【０００２】
マルチメディアアプリケーションの中には、ユーザがメディアコンテンツを作成および編集できるものがある。たとえば、マルチメディアコンテンツを収録した複数の異なるファイルを持っているユーザが、それらの複数のファイルから、編集済みコンテンツを収録した１つのファイルを作成することができる。一般に、このようなマルチメディアアプリケーションを用いると、ファイルの特定の部分をトリミングすること、および／または複数のファイルを何らかの様式でステッチングする（継ぎ合わせる）ことができる。また、このようなタイプのアプリケーションでは、編集済みコンテンツにエフェクトやトランジションを付加することもできる。エフェクトは、コンテンツが、元々記録されていた形と異なる表現で再生されるように、コンテンツに小変更をもたらすことができるものである。たとえば、カラーのビデオを白黒のビデオとして再生されるようにするのは、エフェクトの一例である。トランジションは、異なるコンテンツ間での切り替えを行う何らかの手段を構成し、ワイプトランジションはその一例である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、現在利用できる多くのマルチメディアアプリケーションやシステムには不十分な点がある。具体的には、多くのアプリケーションやシステムが、トリミングをキーフレーム（すなわち、単独でデコード可能なフレーム）でのみ行うよう強制する。
【０００４】
一例として、図１を示す。この図は、２つのキーフレーム（Ｋ）と多数の中間フレーム（Ｉ）を示している。キーフレームは、他のフレームにまったく依存せずにデコードあるいは圧縮解除できるフレームである。これに対し、中間フレームは、他のフレームとの差を表すデータしか含んでいないので、デコードについては他のフレームに依存する。たとえば、ユーザが、マルチメディアコンテンツの編集中に、図１で「所望のトリミングポイント」と示された中間フレームでコンテンツをトリミングすることを望むとする。多くのアプリケーションが、２つの方法のいずれかでこの要望に対処する。第１の方法として、アプリケーションは、そのポイントでのトリミングを許可するか、ファイル全体の圧縮解除を求める。第２の方法として、アプリケーションは、その中間フレームでのトリミングを許可せず、図１に「強制されるトリミングポイント」と示された直前のキーフレームでトリミングを行うことを求める。言うまでもなく、これらの対処法はいずれも望ましいものではない。第１の方法の場合は、ユーザの所望の処理に必ずしも必要でないコンテンツが圧縮解除および再圧縮されることになり、結果として処理に複雑さとオーバーヘッドが加わるからである。まだ、第２の方法の場合は、編集についてのユーザの希望が受け入れられず、ここでの例の場合は、ユーザが望まないコンテンツが含まれることになるからである。
【０００５】
次に、ユーザが、異なる２つのファイルの一部分を継ぎ合わせることを望むとする。多くのアプリケーションは、ファイルをステッチングすることは可能であるものの、やみくもにステッチングするだけで、ファイルをどのようにステッチングするかについては無頓着である。つまり、そうしたアプリケーションでは、ステッチングされる各部分のファイル全体が圧縮解除され、やみくもにステッチングされ、再圧縮されるのが普通である。この方法で、不要なコンテンツの圧縮解除に加えて問題になりうることの１つは、２つのファイル部分の継ぎ目において、（一定のビットレートを維持するなどの）ファイルストリーミングのためのビットレート条件が満たされなくなり、そのために、ファイルのストリーミング中にグリッチなどの品質劣化現象が見られる可能性があることである。最終的な出力ファイルを別のユーザにストリーミングすることによって、ネットワーク上でプロジェクトを共有したいと考えるユーザのグループにとって、こうした対処法は望ましいものではない。
【０００６】
品質に関しては、各ファイルをまるごと圧縮解除し、デコードされたファイルの一部について作業し、最後に出力ファイルを再エンコードすることは、異なる複数の理由で問題をはらむ可能性がある。第１に、ファイルをまるごとデコードすると、ユーザが作業しない部分も不要にデコードされる。第２に、出力ファイル全体を再エンコードすることは、上述のように、再エンコードに必要な資源と時間に関して非常にコストがかかる。さらに、おそらくはより重要なことに、コンテンツは、デコードと再エンコードが繰り返されるたびに、オリジナルのコンテンツとの類似性が失われていく。これは、品質の劣化につながるおそれがあり、実際つながる。
【課題を解決するための手段】
【０００７】
方法およびシステムは、コンテンツ作成者がフレーム単位編集を行うことを可能にし、少なくともいくつかの実施形態では、当該フレームの作業のために圧縮解除する必要があるコンテンツの量を減らすことを可能にする。いくつかの実施形態は、ストリーミング環境に関するビットレート条件が維持されるようにビットレートの整合性が維持されることを保証する。各種実施形態は、どのコンテンツ部分が圧縮解除、処理、および再圧縮されなければならず、どのコンテンツ部分が圧縮解除されるべきでないかをインテリジェントに判断する。
【発明を実施するための最良の形態】
【０００８】
概要
以下に記載の方法およびシステムは、コンテンツ作成者がフレーム単位編集を行うことを可能にでき、同時に、それを行うことに付随する処理の複雑さを低減できる。さらに、少なくともいくつかの実施形態において、本システムおよび方法は、ストリーミング環境に関するビットレート条件が維持されるようにビットレートの整合性が維持されることを保証できる。本明細書に記載された方式では、各種方法およびシステムは、どのコンテンツ部分が圧縮解除、処理、および再圧縮されなければならず、どのコンテンツ部分が圧縮解除されるべきでないかをインテリジェントに判断することを主眼とする。記載の方式により、コンテンツ作成者は、以前よりさらに高い品質のコンテンツを、以前より格段に短い時間で作成することが可能になる。
【０００９】
本明細書に記載のシステムおよび方法は、少なくともいくつかの実施形態では、ソースファイルの概念を取り除き、ソースファイルを表現する一連のクリップまたはセグメントをユーザに対して再生できるアプリケーションが作成されることを可能にする。これらのクリップまたはセグメントは、ユーザがアプリケーションでコピーや移動などを行うことによって個々に操作できる。本明細書に記載の、本発明の実施形態は、そのようなタイプのソースファイル表現が可能である。
【００１０】
以下に記載の各種実施形態の説明に入る前に、説明で用いる用語とそれに関連付けられた概念を以下に示しておく。用語「ビットレート」は、スループットパラメータであり、たとえば、ネットワーク上でストリーミングできる秒あたりのビット数を意味する。用語「一定ビットレート」は、ほぼ一定、あるいは平均が一定であるビットレートを意味する。たとえば、ストリーミングアプリケーションでは、ストリーミングに用いるネットワーク帯域幅またはビットレートは一定であることが想定されている。「バッファウィンドウ」は、ネットワーク帯域幅が一定であるとして、ストリーミングセッションにおいて遅延のない円滑な再生を保証するために必要な最短プリロール時間を意味する。用語「バッファフルネス（ｆｕｌｌｎｅｓｓ）」は、データに適用される圧縮が所定のバッファウィンドウに対して一定ビットレートであることを保証するために用いられる情報を指す。これについては後でより明らかになるであろう。
【００１１】
また、この後の説明では、用語「エンコード（する）」と用語「圧縮（する）」を区別なく用いる。同様に、用語「デコード（する）」と用語「圧縮解除（する）」も区別なく用いる。また、用語「サンプル」は、ファイルの、セグメントに分けることのできる個々の部分（たとえば、個々のフレーム）を指すために用いる。
【００１２】
この後の説明では、上に列挙した利点を実現するために利用される各種の手法について、まず説明する。次に、それらの手法を用いることができる例示的なコンポーネントおよびシステムについて説明する。説明する手法は、後で説明する具体的なシステムと異なるコンポーネントおよびシステムとの組み合わせでも、特許を請求する表題案件の趣旨および範囲を逸脱することなく、実装できることを理解されたい。
【００１３】
例示的手法
以下、「ファイルをトリミングする」、「ファイルをまとめてステッチングする」、「ファイルをまとめ、トランジションを付けてステッチングする」、「ファイルにエフェクトを適用する」という文脈で、それぞれ独立した見出しを付けて、本発明の手法の実施例を説明する。これらの手法は、上述のように、１つまたは複数のファイルのどの部分が圧縮解除および処理されなければならず、どの部分が圧縮解除されるべきでないかをインテリジェントに判断することを主眼とする。そのために、各種実施形態は、１つまたは複数の操作の対象となる、１つまたは複数のファイルセグメントの少なくとも１つの部分がデコードされなければならない圧縮されたマルチメディアファイルを受け取ることができる。少なくともいくつかの実施形態によれば、それらの操作を実施するために、ファイルセグメントの、デコードされなければならない部分だけがデコードされる。この処理の結果の１つは、操作の実行のためにデコードされる量が、マルチメディアファイルまるごとよりも少ないことである。
【００１４】
ファイルをトリミングする
ファイルがトリミングされると、ファイルの一部分が削除される。たとえば、ユーザは、特定のプロジェクトに含めたくないコンテンツを編集で取り除くために、ファイルの開始部分、中間部分、および／または終了部分をトリミングできる。一例を図２に示す。この図は、エンコード済み（圧縮済み）のソースファイルを図式的に表したものである。ある特定のファイルをトリミングする場合、ユーザは、マルチメディアファイルを作成および編集できるソフトウェアアプリケーションと対話するのが一般的である。そのようなアプリケーションの１つがＷｉｎｄｏｗｓ（登録商標）Ｍｏｖｉｅ  Ｍａｋｅｒアプリケーションであるが、もちろん他のアプリケーションも利用できる。
【００１５】
図２では、ファイルのいくつかの部分が示されており、これらには、直前のキーフレーム２００、２０６、いわゆるマークインポイント２０２、次のキーフレーム２０４、およびいわゆるマークアウトポイント２０８が含まれる。
【００１６】
まず、ユーザがファイルの開始部分をトリミングする場合を考える。この場合、ユーザは、ソフトウェアアプリケーションを介してマークインポイントを指定する。このマークインポイントは、それより前のコンテンツが廃棄されるファイル内の位置を定義する。図では、廃棄されるコンテンツを破線で示した。
【００１７】
ユーザがマークインポイントを定義すると、本発明による処理により、そのマークインポイントがキーフレームかどうかが判断される。キーフレームであれば、そのキーフレームより前にあるすべてのサンプルを破棄できる。しかし、そのマークインポイントがキーフレームでない場合は、マークインポイントに関連付けられたフレームをデコードするために、その直前のキーフレーム（この場合はキーフレーム２００）が検索される。直前のキーフレームが見つかったら、そのキーフレームからマークインポイントにかけて、およびマークインポイントの先までデコードが行われるようにできる。マークインポイントから先では、次のキーフレーム（ここではキーフレーム２０４）まで、すべてのサンプルがデコードおよび再エンコードされ、そのキーフレームより後では、再エンコードされたフレームが出力ファイルに書き込まれるようにできる。
【００１８】
記載の実施形態によれば、マークインポイントに関連付けられたフレームが再エンコードされる場合、そのフレームはキーフレームとして再エンコードされる。また、再エンコードされた、前の中間フレーム（デルタフレーム）（再エンコード後の新しいキーフレーム）に対して生成されるデルタフレームは、新しいキーフレームに対する依存が確立されるように再エンコードされる。以上により、次のキーフレーム２０４まで処理が完了したら、圧縮されたすべてのサンプルを出力ファイルに直接コピーすることが可能になる。
【００１９】
次に、この例を、上述のバッファフルネス情報の文脈で考える。一実施形態によれば、ファイルの各フレームは、そのフレームに関連付けられたバッファフルネス情報を有する。直前のキーフレームと次のキーフレームを識別する解析処理の間に、すべてのサンプルについてバッファフルネス情報が計算される。再エンコードされる必要があるセグメントについては、セグメントを再エンコードするようエンコーダを設定するために、開始バッファフルネス情報および終了バッファフルネス情報が確認され、用いられる。バッファフルネス情報は、課されるであろう一定ビットレート条件に絶対違反しないようにサンプルが圧縮されるよう、エンコーダまたは圧縮器によって用いられる。このことは、当業者であれば自明であろう。したがって、エンコーダは、マークインポイントに関連付けられたフレームで始まるサンプルを圧縮するときに、それらのサンプルが再圧縮時に一定ビットレート条件に違反しないように、圧縮されたサンプルに関連付けられたバッファフルネス情報を処理する。解析処理において、マークインポイントに関連付けられた新しいキーフレームの位置が次のキーフレームに近すぎて、マークインポイントをキーフレームにエンコードできるだけのビットレートが得られない場合は、次のキーフレーム２０４をどこに配置するかについてインテリジェントな判断が行われるようにできる。以下に記載の実施形態では、この処理および判断は、アナライザコンポーネントによって実行される。
【００２０】
一例を示す。極端な例として、マークインポイントがキーフレーム２０４のすぐ隣にあるとする。これは、新しいキーフレームがキーフレーム２０４のすぐ隣になることを意味する。当業者であれば自明であるように、キーフレームは大量のビット数を消費するので、一定ビットレート条件が満たされない可能性がある。したがって、ストリーミングにおける出力ファイルの品質を維持するためには、キーフレーム同士を隣り合わせにするのは望ましくない。この状況に対処するために、以下に記載の実施形態によれば、アナライザコンポーネントが、２番目の次のキーフレームを「次の」キーフレームとして用いて、マークインポイントと「次の」キーフレームの間を再エンコードできるだけの適切な量の帯域幅を確保するようにする。次のキーフレーム２０４とそれに続く中間フレームは、マークインポイントに関連付けられたキーフレームに続くキーフレームの位置を調整するためにデコードおよび再エンコードできる。たとえば、この例では、次のキーフレーム２０４を、新しいキーフレームに依存する中間フレームとして再エンコードし、その後続の中間フレームの１つをキーフレームとして再エンコードすることによって、一定ビットレート条件を満たすことができる。
【００２１】
図３は、一実施形態によるトリミング方法の、コンテンツをファイルの前方でトリミングする工程を説明するフロー図である。本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせと一緒に実装できる。いくつかの実施形態では、本方法は、コンピュータ可読媒体に存在するコンピュータ可読命令として実施できる。ただし、一例では、本方法は、以下に記載のシステムのようなシステムを用いて実装できる。
【００２２】
工程３００で、マークインポイントを定義する。この工程は、ユーザがマルチメディア編集アプリケーション（Ｗｉｎｄｏｗｓ（登録商標）Ｍｏｖｉｅ  Ｍａｋｅｒなど）と対話することによって達成できる。工程３０２で、マークインポイントがキーフレームかどうかを判断する。キーフレームであれば、工程３０４で、マークインポイントより前にあるすべてのサンプルを廃棄し、工程３０５で、マークインポイントからファイル末尾までの圧縮済みサンプルを出力ファイルにコピーする。マークインポイントがキーフレームでない場合は、工程３０６で、直前のキーフレームを検索し、工程３０７で、マークインポイントに関連付けられた開始バッファフルネス情報を計算する。工程３０８で、マークインポイントの後の次のキーフレームを検索し、次のキーフレームの終了バッファフルネス情報を計算する。次に工程３１０で、直前のキーフレームから次のキーフレームにかけてのサンプル（フレーム）をデコード（圧縮解除）する。工程３１２で、開始バッファフルネス情報と終了バッファフルネス情報をエンコーダ上で設定し、工程３１４で、マークインポイントに関連付けられたフレームを新しいキーフレームとして再エンコードする。工程３１６で、新しいキーフレームの後のフレームから、次のキーフレームの前のフレームまで再エンコードを続け、再エンコードされたフレームを出力ファイルにコピーする。次に工程３１８で、次のキーフレームからファイル末尾までの圧縮済みサンプルを出力ファイルにコピーする。
【００２３】
次に、ユーザがファイルの末尾部分をトリミングする場合を考える。この場合、ユーザは、マークアウトポイント２０８（図２）を指定する。マークアウトポイントは、それより後のコンテンツが廃棄される位置を定義する。本発明による手法は、ファイルのエンコードに双方向フレーム（Ｂフレーム）が用いられているかどうかによって、方法が２つある。双方向フレームを用いずにファイルがエンコードされていて、かつ、マークアウトポイントの後に付加すべきコンテンツがない場合は、マークアウトポイントより後のサンプルを単純に廃棄できる。双方向フレームがエンコードに用いられている場合、本方法では、直前のキーフレーム２０６を検索し、そこからマークアウトポイントまでの圧縮解除を開始する。その後、直前のキーフレーム２０６から、マークアウトポイントに関連付けられたサンプルまでのサンプルが再圧縮される。これにより、双方向フレームに関連付けられているであろう情報は、ファイルのエンコード済み形式のマークアウトポイントより前に現れるが、ファイルのレンダリング済み形式のマークアウトポイントより後は出力されない。
【００２４】
図４は、一実施形態によるトリミング方法の、コンテンツをファイルの末尾からトリミングする工程を説明するフロー図である。本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせと一緒に実装できる。いくつかの実施形態では、本方法は、コンピュータ可読媒体に存在するコンピュータ可読命令として実施できる。ただし、一例では、本方法は、以下に記載のシステムのようなシステムを用いて実装できる。
【００２５】
工程４００で、マークアウトポイントを定義する。この工程は、ユーザがマルチメディア編集アプリケーション（Ｗｉｎｄｏｗｓ（登録商標）Ｍｏｖｉｅ  Ｍａｋｅｒなど）と対話することによって達成できる。工程４０２で、エンコード処理にＢフレームが用いられているかどうかを調べる。エンコード処理にＢフレームが用いられていない場合は、工程４０４で、マークアウトポイントより後にあるすべてのサンプル（フレーム）を廃棄する。一方、エンコード処理にＢフレームが用いられた場合は、工程４０６で、マークアウトポイントの直前のキーフレームを検索し、直前のキーフレームに関連付けられた開始バッファフルネス情報を計算し、工程４０７で、マークアウトポイントに関連付けられたバッファフルネス情報を計算する。工程４０８で、直前のキーフレームから、マークアウトポイントに関連付けられたフレームまで（そのフレームを含む）のサンプル（フレーム）をデコードする。次に工程４１０で、開始バッファフルネス情報と終了バッファフルネス情報をエンコーダ上で設定し、工程４１２で、直前のキーフレームからマークアウトポイントまでの（マークアウトポイントを含む）サンプルを再エンコードする。これによって、マークアウトポイントより後のすべてのサンプルが廃棄される。
【００２６】
ファイルをまとめてステッチングする
ステッチングは、コンテンツの２つのピースを継ぎ合わせる操作を意味する。一般に、ユーザは、２つ以上の異なるファイルを持ち、異なる２つのファイルの部分同士を継ぎ合わせたいと考える。後述の例のように、継ぎ合わせたいファイルの部分同士は、上述のようにトリミングされているものとする。
【００２７】
具体的には、図５に示すように、ステッチングしようとする例示的な第１および第２のセグメントを考える。この例では、ファイルのマークインポイント５０２より前がトリミングされており、マークインポイント５０２は、この例ではキーフレームを含まない。そのようにトリミングする場合は、直前のキーフレームを検索し（ここではキーフレーム５００）、キーフレーム５００から、マークインポイント５０２に関連付けられたフレームにかけてファイルをデコードすることを思い出されたい。この例ではまた、第２のセグメントの末尾が、マークアウトポイント５１４から上述のようにトリミングされているとする。
【００２８】
記載の実施形態によれば、２つのファイルセグメントの処理の実行方法は、２つのファイルセグメントの間の継ぎ目の部分において、上述のものといくぶん異なる。具体的には、次のとおりである。第１のセグメントについては、マークアウトポイントの直前のキーフレーム（ここではキーフレーム５０４）を検索し、キーフレーム５０４に関連付けられたバッファフルネス情報を調べる。同様に、第２のセグメントについては、マークインポイント５１０の直前のキーフレーム（ここではキーフレーム５０８）を検索し、そこからデコード処理を開始する。さらに、第２のセグメントのマークインポイントの後のキーフレームを検索し、そのキーフレーム（ここではキーフレーム５１２）に関連付けられたバッファフルネス情報を調べる。
【００２９】
記載の実施形態によれば、キーフレーム５０４からキーフレーム５１２までのサンプルをデコードする。さらに、所望の一定ビットレートに関連付けられたビットレート条件が満たされるようにするために、キーフレーム５０４およびキーフレーム５１２を含むフレームに関連付けられたバッファフルネス情報を圧縮器に供給して、一定ビットレート条件が維持されるようにする。圧縮器は、必要であれば、キーフレームの位置を調整して一定ビットレート条件を維持するように構成されることを思い出されたい。
【００３０】
図６は、一実施形態によるステッチング方法の、異なる２つのファイルのコンテンツをステッチングする工程を説明するフロー図である。本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせと一緒に実装できる。いくつかの実施形態では、本方法は、コンピュータ可読媒体に存在するコンピュータ可読命令として実施できる。ただし、一例では、本方法は、以下に記載のシステムのようなシステムを用いて実装できる。
【００３１】
工程６００で、第１および第２のファイルまたはファイルセグメントを継ぎ合わせる継ぎ合わせポイントを定義する。図５の例では、第１のファイルセグメントの継ぎ合わせポイントはマークアウトポイント５０６に対応し、第２のファイルの継ぎ合わせポイントはマークインポイント５１０に対応する。工程６０２で、第１のファイルにおける継ぎ合わせポイントの直前のキーフレームを検索し、そのキーフレームの開始バッファフルネス情報を計算する。図５の例では、直前のキーフレームはキーフレーム５０４に対応する。工程６０４で、第２のファイルにおける継ぎ合わせポイントの直前のキーフレームと次のキーフレームとを検索し、次のキーフレームの終了バッファフルネス情報を計算する。図５の例では、直前のキーフレームと次のキーフレームはそれぞれキーフレーム５０８、５１２に対応する。工程６０６で、第１のファイルにおける直前のキーフレーム（すなわち、キーフレーム５０４）から、第２のファイルにおける次のキーフレーム（すなわち、キーフレーム５１２）までの（キーフレーム５１２を含まない）サンプル（フレーム）をデコードする。
【００３２】
工程６０８で、開始バッファフルネス情報と終了バッファフルネス情報をエンコーダ上で設定し、工程６１０で、第１のファイルにおける継ぎ合わせポイントに関連付けられたフレームを新しいキーフレームとして再エンコードし始める。工程６１２で、第２のファイルの、新しいキーフレームの後のフレームから次のキーフレームまで再エンコードを続け、それらの再エンコードされたフレームを出力ファイルにコピーする。工程６１４で、第２のファイルにおける次のキーフレームから第２のファイルの末尾までの圧縮されたサンプルを出力ファイルにコピーする。
【００３３】
ファイルをまとめ、トランジションを付けてステッチングする
この例では、異なる２つのファイル部分（セグメント）をステッチングし、それらのファイルセグメントの継ぎ目にトランジションを適用できる。たとえば、図７は、セグメントの継ぎ目にトランジションを適用した異なる２つの（第１および第２の）ファイルセグメントを示す。この例では、圧縮解除および再圧縮に最適な場所を決定する処理を行う。したがって、この例の処理では、第１のセグメントにおけるマークイントランジション開始フレーム７０２の直前のキーフレーム（ここではキーフレーム７００）を検索し、さらに、このフレームに関連付けられた開始バッファフルネス情報を計算する。また、第２のセグメントにおけるマークアウトトランジション終了フレーム７１０の後の最も近い次のキーフレーム（ここではキーフレーム７１２）を検索し、そのフレームに関連付けられた終了バッファフルネス情報を計算する。次に、これらのポイントの間にあるすべてのサンプルをデコード（圧縮解除）し、圧縮解除されたサンプルを圧縮器に供給する（これにはキーフレーム７００が含まれ、キーフレーム７１２は含まれない）。第２のセグメントのデコードは、マークイントランジション開始フレーム７０８より前のキーフレーム７０６から始まることを理解されたい。
【００３４】
図８は、一実施形態による、トランジションを含むステッチング方法の、異なる２つのファイルのコンテンツをステッチングし、そのファイルセグメント間にトランジションを含める工程を説明するフロー図である。本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせと一緒に実装できる。いくつかの実施形態では、本方法は、コンピュータ可読媒体に存在するコンピュータ可読命令として実施できる。ただし、一例では、本方法は、以下に記載のシステムのようなシステムを用いて実装できる。
【００３５】
工程８００で、第１のファイルまたはファイルセグメントが第２のファイルまたはファイルセグメントに移行するトランジションポイントを定義する。図７の例では、第１のファイルセグメントのトランジションポイントはマークインポイント７０２に対応し、第２のファイルのトランジションポイントはマークアウトポイント７１０に対応する。工程８０２で、第１のファイルにおけるトランジションポイントの直前のキーフレームを検索し、そのキーフレームに関連付けられた開始バッファフルネス情報を計算する。図７の例では、直前のキーフレームはキーフレーム７００に対応する。工程８０４で、第２のファイルにおけるトランジションポイントの直前のキーフレームと次のキーフレームとを検索し、次のキーフレームの終了バッファフルネス情報を計算する。図７の例では、直前のキーフレームと次のキーフレームはそれぞれキーフレーム７０６、７１２に対応する。工程８０６で、第１のファイルにおける直前のキーフレーム（すなわち、キーフレーム７００）から、第２のファイルにおける次のキーフレーム（すなわち、キーフレーム７１２）までの（キーフレーム７１２を含まない）サンプルをデコードする。
【００３６】
工程８０８で、しかるべきデコード済みフレームにトランジションを適用し、工程８１０で、バッファフルネス情報をエンコーダ上で設定する。工程８１２で、第１のファイルにおける直前のキーフレームからのフレームを再エンコードする。工程８１４で、第１のファイルにおける直前のキーフレームの後のフレームから、第２のファイルにおける次のキーフレームまで再エンコードを続け、再エンコードされたフレームを出力ファイルにコピーする。工程８１６で、第２のファイルにおける次のキーフレームから第２のファイルの末尾までの圧縮されたサンプルを出力ファイルにコピーする。
【００３７】
ファイルにエフェクトを適用する
この例では、単一のファイル部分にエフェクトを適用する。例として、図９は、エフェクトが適用された例示的ファイルセグメントを示す。この例では、エフェクトが始まるフレーム（フレーム９０２）をセグメントのマークインポイントとして扱い、エフェクトが終わるフレーム（フレーム９０４）をマークアウトポイントとして扱う。したがって、処理では、マークインポイントの直前のキーフレーム（ここではフレーム９００）を検索し、この、直前のキーフレームに関連付けられた開始バッファフルネス情報を計算する。さらに、マークアウトポイントの後の次のキーフレーム（ここではフレーム９０６）を検索し、このフレームに関連付けられた終了バッファフルネス情報を計算する。次に、それらの間のサンプルを圧縮解除し、それらのサンプルを、再圧縮できるように圧縮器に供給する。さらに、それらのキーフレームに関連付けられたバッファフルネス情報を圧縮器に供給する。圧縮器では、それによって、一定ビットレートに関連付けられたビットレート条件を維持するためにキーフレームをどこに配置するかについてインテリジェントな判断を下すことができる。
【００３８】
図１０は、コンテンツにエフェクトを適用する方法の工程を説明するフロー図である。本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせと一緒に実装できる。いくつかの実施形態では、本方法は、コンピュータ可読媒体に存在するコンピュータ可読命令として実施できる。ただし、一例では、本方法は、以下に記載のシステムのようなシステムを用いて実装できる。
【００３９】
工程１０００では、マークインエフェクト開始ポイントおよびマークアウトエフェクト終了ポイントを定義する。これらはそれぞれ、図９の例のフレーム９０２および９０４に対応する。工程１００２で、マークインエフェクト開始ポイントの直前のキーフレームを検索し、そのキーフレームに関連付けられた開始バッファフルネス情報を計算する。図９の例では、直前のキーフレームはキーフレーム９００に対応する。工程１００４で、マークアウトエフェクト終了ポイントの次のキーフレームを検索し、そのフレームに関連付けられた終了バッファフルネス情報を計算する。図９の例では、次のキーフレームはキーフレーム９０６に対応する。工程１００６で、直前のキーフレーム９００と次のキーフレーム９０６の間のサンプルをデコードする。工程１００８で、しかるべきフレームにしかるべきエフェクトを適用する。
【００４０】
工程１０１０で、開始バッファフルネス情報および終了バッファフルネス情報をエンコーダ上で設定し、工程１０１２で、直前のキーフレームから次のキーフレームまでのフレームを再エンコードし、再エンコードされたフレームを出力ファイルにコピーする。工程１０１４で、第２のファイルにおける次のキーフレームから第２のファイルの末尾までの圧縮されたサンプルを出力ファイルにコピーする。
【００４１】
これらの手法を実行するための例示的システム
図１１は、上述の手法を実装するように構成されたソフトウェアコンポーネントの高レベル図である。このソフトウェアコンポーネントは、コンピュータ可読媒体に組み込まれたパブリッシャコンピュータ１１００の形をとり、そのコンピュータ可読媒体はコンピュータシステムに組み込まれている。図示および記載の実施形態では、パブリッシャコンポーネント１１００は、アナライザ１１０２を含み、メディアプロジェクトを記述するためのタイムラインオブジェクト１１０８を構成する。パブリッシャコンポーネント１１００は、アナライザ１１０２を通して、しかるべきタイムラインオブジェクト１１０８を作成するための情報を準備し、そのタイムラインオブジェクト１１０８は、上述の処理がすべて実行された後にしかるべきトポロジ１１０６を作成する。さらに、アナライザ１１０２が準備した情報をパブリッシャコンポーネント１１００が用いて、上述のようにサンプルを圧縮する圧縮器１１０４を構成する。
【００４２】
パブリッシャコンポーネント１１００を用いた例示的システムを図１２に示す。このシステムでは、ユーザが編集アプリケーション１２００（Ｗｉｎｄｏｗｓ（登録商標）  Ｍｏｖｉｅ  Ｍａｋｅｒなど）を用いてマルチメディアムービーを作成、編集、および共有できる。運用時には、アプリケーション１２００は、ユーザのプロジェクトを記述または表現する、タイムラインオブジェクトと呼ばれるもの１２０２を作成する。タイムラインオブジェクト１２０２は、各種メディアソース（すなわち、ファイルやファイルの部分）をどのように並べるかを効果的に記述する。このアプリケーションは、最終出力コレクション（ｄｅｓｔｉｎａｔｉｏｎ  ｃｏｌｌｅｃｔｉｏｎ）１２０４も定義する。最終出力コレクションは、最終出力を効果的に記述し、出力の構成設定（圧縮器１１０４で用いる圧縮設定など）が記述された出力プロファイルを提供する。
【００４３】
例として、ユーザが作成したオブジェクトを表現するタイムラインオブジェクトの可視表現を図１３に示す。この例では、タイムラインオブジェクトは、２つのファイル「ファイル１」および「ファイル２」を含む。ユーザのプロファイルは、３つのセグメント（セグメント１、セグメント２、およびセグメント３）に分かれている。セグメント１は、ファイル１の一部を含み、セグメント２は、ユーザがファイル１とファイル２の間に付加したトランジション（ＳＭＰＴＥワイプなど）を含み、セグメント３は、ファイル３の一部を含む。
【００４４】
アプリケーション１２００がタイムラインオブジェクト１２０２および最終出力コレクション１２０４を定義すると、この情報が、後述の処理のためにパブリッシャコンポーネントに供給される。一実施形態では、パブリッシャコンポーネントは、最終出力コレクション１２０４をチェックして、すぐ後に述べる操作をサポートするエンコードに関連付けられた圧縮設定が最終出力コレクションに含まれているかどうかを確認する。たとえば、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｖｉｄｅｏ  ９（ＷＭＶ９）には上述の操作をサポートするエンコーダが含まれている。最終出力コレクションが上述の操作をサポートしていない場合は、タイムライン１２０２と最終出力コレクションを処理のために単純にメディアエンジン１２０６に渡すことができる。メディアエンジン１２０６は、ユーザのプロジェクトを処理およびレンダリングするように構成される。例示的なメディアエンジンが、参照により本明細書に組み込まれる米国特許出願第１０／７３０７３５号明細書に開示されている。
【００４５】
説明目的のため、最終出力コレクションは、圧縮設定が、上述の操作をサポートするエンコーダを示すことを示しているものとする。この場合、パブリッシャコンポーネント１１００は、タイムラインオブジェクト１２０２および最終出力コレクション１２０４を解析のためにアナライザ１１０２に渡す。
【００４６】
図示および記載した実施形態では、２ステップ（２フェーズ）で処理を行う。第１の処理ステップは、ユーザが定義したタイムラインをアナライザが処理および解析する解析ステップである。第２の処理ステップは、データが出力ファイルに書き込まれるときに行われる。
【００４７】
解析ステップ
上の例では、ユーザがファイル１とファイル２の間にトランジションを挿入している。上述のように、トランジションの開始はマークインポイントで定義され、終了はマークアウトポイントで定義される。「ファイルをまとめ、トランジションを付けてステッチングする」の項に記載したように、この解析では、アナライザは、ファイル１におけるトランジションの先頭の直前のキーフレームを検索する。さらにアナライザは、ファイル２におけるトランジションの末尾の後の、次のキーフレームを検索する。これにより、アナライザは、これら２つのポイントの間で圧縮解除および再圧縮が必要になることを認識する。さらに、解析の一環として、アナライザ１１０２は、これらの範囲について開始バッファフルネス情報および終了バッファフルネス情報を計算する。記載の実施形態によれば、アナライザが計算できるバッファフルネスパラメータは、その範囲のビット数、その範囲のサンプル数、（グローバルタイムラインにおける）開始時刻、ファイル１におけるマークインポイントの直前のキーフレームに関連付けられた開始バッファフルネス情報、（グローバルタイムラインにおける）終了時刻、およびファイル２におけるマークアウトポイントの次のキーフレームに関連付けられた終了バッファフルネス情報を含むことができるが、これらに限定されない。
【００４８】
アナライザは、この解析から、３つのセグメントを有する図１３のタイムラインオブジェクトが、プロジェクト部分がインテリジェントに処理されるのであれば、適切な状態にならないことを確認できる。逆に、アナライザの解析によって新たに出てくるのは、図１４に示す、５つのセグメントを有する新しいタイムラインオブジェクトである。
【００４９】
したがって、アナライザ１１０２は、ユーザが定義したタイムラインオブジェクト１２０２（図１２）を取得および処理して、ユーザのプロジェクトをより正確に表現する第２の新しいタイムラインオブジェクトを導出でき、それによってインテリジェントな圧縮解除および再圧縮の適用が可能になる。
【００５０】
図示および記載の実施形態では、新しい（第２の）タイムラインオブジェクトが導出されると、その新しいタイムラインオブジェクトの部分的トポロジを導出できる。部分的トポロジは、異なるファイルにあるデータサンプルをどのように処理し、どのコンポーネントにどのセグメントを処理させるかを記述または定義するために用いられる。一例として、図１４に概略的に示した部分的トポロジを考える。
【００５１】
この例では、図１４の新しいタイムラインオブジェクトから、パブリッシャコンポーネント１１００は、部分的トポロジを導出し、セグメント１については、ソースファイル１を圧縮形式で出力ファイルに直接供給できることを確認できる。セグメント２については、パブリッシャコンポーネント１１００は、ファイル１を、圧縮解除器を介して出力ファイルに供給されるよう定義する。ファイル１とファイル２の間のトランジションと一致するセグメント３については、パブリッシャコンポーネントは、ファイル１および２を、ワイプエフェクトの形で合成コンポーネントに供給されてから出力ファイルに供給されるよう定義する。セグメント４については、パブリッシャコンポーネントは、ファイル２を、圧縮解除器を介して出力ファイルに供給されるよう定義する。最後にセグメント５については、パブリッシャコンポーネント１１００は、ファイル２を、圧縮形式で出力ファイルに直接コピーされるよう定義する。
【００５２】
上述の部分的トポロジが与えられると、トポロジローダと呼ばれるコンポーネントが、この部分的トポロジを取得し、これよりフルトポロジを生成する。例示的なトポロジローダが、参照により本明細書に組み込まれる米国特許出願第１０／７９６５０５号明細書に開示されている。図示および記載の実施形態によれば、再圧縮が必要なこれらのセグメントについて、トポロジローダは、適切な圧縮器をトポロジに挿入する。したがって、ここでの例では、トポロジローダは、セグメント２および４については、デコーダの後に圧縮器を挿入する。セグメント３については、トポロジローダは、ワイプコンポーネントの後に圧縮器を挿入する。
【００５３】
処理におけるこの時点では、ユーザのプロジェクトの完全な（フル）トポロジが定義されていて、圧縮解除および処理されなければならない個々のファイルのそれらの部分だけが実際に圧縮解除および処理されるように、インテリジェントなデコードおよびエンコードが実施される。具体的に、上述の例では、セグメント１および５はユーザがさわらないので、これらのセグメントは圧縮解除不要である。
【００５４】
データ書き込みステップ
パブリッシャコンポーネント１１００は、上述のように新しいタイムライン１１０８（図１２）と部分的トポロジおよびフルトポロジ１１０６とを作成した後、アナライザの解析結果と新しいタイムラインとを用いて、圧縮器１１０４を構成し、出力ファイルへの圧縮データの書き込みを実際に開始する。
【００５５】
ユーザによる選択が可能な圧縮プロファイル
上述のシステムおよび方法の有利点の１つとして、ユーザは、圧縮プロファイルを選択して、ファイルの圧縮（エンコード）にそれらの圧縮プロファイルが用いられるようにできる。ユーザが圧縮プロファイルを選択しない場合、ファイルの圧縮は別の圧縮プロファイルに従って行われる。この選択は、たとえば、アプリケーション１２００（図１２）のようなアプリケーションで行うことができる。
【００５６】
一例を示す。ユーザが、ステッチングしたいファイルまたはファイルセグメントを多数持っていて、各ファイルまたはファイルセグメントにまったく同じ圧縮が適用されているとは限らない可能性があるとする。たとえば、ファイル１は、ビットレート１００Ｋｂｐｓの３２０×２４０に圧縮されていて、ファイル２は、ビットレート１Ｍｂｐｓの６４０×４８０に圧縮されていて、ファイル３は、ビットレート２００Ｋｂｐｓの３２０×２４０に圧縮されている可能性があるとする。ユーザがこれらのファイルをステッチングし、中程度の品質でプロジェクトを圧縮しようとすれば、ユーザは、ファイル３（すなわち、２００ｋｂｐｓの３２０×２４０）に関連付けられた圧縮パラメータを選択できる。ファイル２およびファイル１に適用された圧縮はこれらのパラメータと完全には一致しないので、それらのファイルには何らかの特殊な処理を適用することになる。具体的には、それらのファイルをステッチングする際に、ファイル１を圧縮解除して２００ｋｂｐｓに再圧縮してから出力ファイルに書き込むことができる。また、ファイル２は、圧縮解除し、より小さいサイズ（３２０×２４０）に変更してから、２００Ｋｂｐｓに再圧縮して出力ファイルに書き込むことができる。ファイル３は、そのまま出力ファイルにコピーすればよい。ユーザがアプリケーションを通して明確に指定した、これらの圧縮パラメータの変更は、少なくともいくつかの実施形態では、パブリッシャコンポーネント１１００で処理できる。
【００５７】
上記の説明を考慮すれば自明であるように、エンコーダが再エンコード処理時にバッファフルネス情報を用いるのは、ストリーミング環境においてプロジェクトの再生が円滑に行われるように、一定ビットレート条件が維持されるようにするためである。
【００５８】
アプリケーションによる選択が可能な圧縮プロファイルおよびインテリジェント操作
いくつかの実施形態では、圧縮解除および再圧縮を行うコンテンツの量についてインテリジェントな判断が行われるように、コンテンツをエンコードする際の圧縮プロファイルをアプリケーション側が自動的に選択できるようなアプリケーションを作成できる。つまり、圧縮プロファイルがそれぞれ異なる多数のファイルセグメントがある場合に、適切に構成されたアプリケーションであれば、ファイルセグメントのコレクションと、そのファイルセグメントに対して実行されるべき操作とを解析でき、圧縮解除および再圧縮されるコンテンツの量を最小化するか、少なくとも低減することを主眼とする圧縮プロファイルを自動的に選択できる。
【００５９】
また、圧縮プロファイルの違いに関係なく、またはその違いに加えて、ソースフォーマットと出力フォーマットが必ずしも一致していない可能性がある場合に、メディアを柔軟に処理および調整できるようにアプリケーションを構成できる。つまり、フォーマットの違いによって処理が妨げられてはならない状況が存在する可能性がある。
【００６０】
一例を示す。上述の解析の一環として、特定ソースのフォーマットが所望の出力ファイルのフォーマットと一致するかどうかを確認するために解析を行うことができる。フォーマットの違いが明らかになった場合でも、本発明のシステムおよび方法は、そのメディアを処理できる。この例では、フォーマットの違いが生じる状況は、プライベートのデータ、フレームレート、およびビットレートに関係がある可能性がある。
【００６１】
プライベートデータに関しては、ソースフォーマットと出力フォーマットとが正確に一致していなくてもよい場合がある。図示および記載の実施形態では、少なくともある程度のデータフォーマット（たとえば、プライベートデータフォーマット）の違いは、上述の本発明による処理の実行を妨げない。これらの違いは、「これらの手法を実行するための例示的システム」の項で説明した処理の際に対処される。
【００６２】
フレームレートに関しては、以下のとおりである。ビデオフォーマットは、３０フレーム／秒（ｆ／ｓ）を利用するフォーマットもあれば、２９．９９９７ｆ／ｓ（０．０３３３３平均時間／フレーム）を利用するフォーマットもある。これらのフォーマットは本質的には同等なので、上述の処理の際は同じように扱われなければならない。フォーマットの違いがあるものの、それらが本質的に同等であれば、本発明による上述の処理では、それらのフォーマットを実質的に同等なものとして扱わなければならない。
【００６３】
ビットレートに関しては、以下のとおりである。最終出力ビットレートがソースビットレートより高い場合でも、本発明による上述の処理を行わなければならない。最終ビットレートが高くてもソースの質は変わらないからである。ただし、逆が真でないことは、当業者であれば理解されよう。したがって、この場合は、フォーマットの違いがソースメディアの品質に影響しないのであれば、本発明による上述の処理を行わなければならない。
【００６４】
まとめると、ソースファイルと出力ファイルの間でフォーマットの違いがあっても、それによって処理が妨げられない状況がある。考慮できる検討内容として、違いの大きさ（フレームレートの例と同様）と、メディアの処理が出力の品質にもたらす影響がある。フォーマットが実質的に同等である（フォーマットに有意な違いがない）か、違いがあっても簡単に対処できる場合は、処理を行わなければならない。同様に、フォーマットの違いが出力ファイルの全体の品質に影響しない（品質を有意に劣化させない）場合は、処理を行わなければならない。
【００６５】
むすび
上述の各種の方法およびシステムは、コンテンツ作成者がフレーム単位編集を行うことを可能にし、圧縮解除および再圧縮の処理を受けるコンテンツの量を低減できる。また、各種のシステムおよび方法は、ストリーミング環境に関連付けられたビットレート条件を維持するために、ビットレートの整合性が維持されるようにできる。上述の方式では、各種方法およびシステムは、どのコンテンツ部分が圧縮解除、処理、および再圧縮されなければならず、どのコンテンツ部分が圧縮解除されるべきでないかをインテリジェントに判断することを主眼とする。記載の方式により、コンテンツ作成者は、以前よりさらに高い品質のコンテンツを、以前より格段に短い時間で作成することが可能になる。
【００６６】
構造的特徴および／または手法の工程に固有の文言で本発明について説明してきたが、添付の特許請求項で定義された本発明は、説明した特定の特徴または工程に必ずしも限定されないことを理解されたい。むしろ、それらの特定の特徴および工程は、請求する発明の好ましい実施形態として開示されている。
【図面の簡単な説明】
【００６７】
【図１】例示的なキーフレームおよび中間フレームを示すブロック図である。
【図２】一実施形態によるファイルトリミング操作を説明するために用いるファイルの説明図である。
【図３】一実施形態によるファイルトリミング方法の工程を説明するフロー図である。
【図４】一実施形態によるファイルトリミング方法の工程を説明するフロー図である。
【図５】一実施形態によるファイルステッチング操作を説明するために用いるファイルの説明図である。
【図６】一実施形態によるファイルステッチング方法の工程を説明するフロー図である。
【図７】一実施形態によるファイルステッチング／トランジション操作を説明するために用いるファイルの説明図である。
【図８】一実施形態によるファイルステッチング／トランジション方法の工程を説明するフロー図である。
【図９】一実施形態による、エフェクトをファイルの一部分に適用する操作を説明するために用いるファイルの説明図である。
【図１０】一実施形態による、エフェクトをファイルの一部分に適用する方法の工程を説明するフロー図である。
【図１１】一実施形態によるインテリジェントな圧縮解除および再圧縮を適用できる例示的なコンポーネントのブロック図である。
【図１２】図１１のコンポーネントを利用できる例示的なシステムのブロック図である。
【図１３】一実施形態による、ユーザが作成したプロジェクトを表現するタイムラインオブジェクトの可視表現を示す図である。
【図１４】一実施形態による、図１３のタイムラインオブジェクトから作成されるタイムラインオブジェクトを図解する図である。
【図１】
2007535781.tif 000002
【図２】
2007535781.tif 000003
【図３】
2007535781.tif 000004
【図４】
2007535781.tif 000005
【図５】
2007535781.tif 000006
【図６】
2007535781.tif 000007
【図７】
2007535781.tif 000008
【図８】
2007535781.tif 000009
【図９】
2007535781.tif 000010
【図１０】
2007535781.tif 000011
【図１１】
2007535781.tif 000012
【図１２】
2007535781.tif 000013
【図１３】
2007535781.tif 000014
【図１４】
2007535781.tif 000015
【手続補正書】
【提出日】平成19年7月23日(2007.7.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
廃棄されるファイルコンテンツを指定するマークインポイントをファイルに対して定義することと、
前記マークインポイントの、少なくとも直前および次の、単独でのデコードが可能なフレームを検索することと、
前記直前のキーフレームから前記次のキーフレームまでのフレームをデコードすることと、
前記マークインポイントに関連付けられたフレームを新しいキーフレームとして再エンコードすることと、
前記次の、単独でのデコードが可能なフレームまでの残りのフレームを再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項２】
単独でのデコードが可能な直前のフレームを検索する前記操作は、前記マークインポイントに関連付けられたフレームが、単独でのデコードが可能なフレームでない場合のみ実行されることを特徴とする請求項１に記載の方法。
【請求項３】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
１つまたは複数のプロセッサによって実行されたときに請求項１に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項７】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項１に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項８】
前記１つまたは複数のコンピュータ可読媒体を組み込むことを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
廃棄されるファイルコンテンツを指定するマークアウトポイントをファイルに対して定義することと、
前記ファイルコンテンツのエンコードに双方向フレームが用いられているかどうかを調べることと、
前記ファイルコンテンツのエンコードに双方向フレームが用いられていない場合には、前記マークアウトポイントより後のフレームを廃棄することと、
前記ファイルコンテンツのエンコードに双方向フレームが用いられている場合には、
前記マークアウトポイントの直前の、単独でのデコードが可能なフレームを検索し、
前記直前の、単独でのデコードが可能なフレームから、前記マークアウトポイントに関連付けられたフレームまでの、前記マークアウトポイントに関連付けられたフレームを含むフレーム群をデコードし、
前記直前の、単独でのデコードが可能なフレームから、前記マークアウトポイントに関連付けられた前記フレームまでの、前記マークアウトポイントに関連付けられた前記フレームを含むフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項１０】
前記再エンコード後に、前記マークアウトポイントに関連付けられた前記フレームより後のフレームを廃棄することをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１２】
１つまたは複数のプロセッサによって実行されたときに請求項９に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項１３】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項９に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項１４】
前記１つまたは複数のコンピュータ可読媒体を組み込むことを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１５】
第１および第２のファイルセグメントを継ぎ合わせる継ぎ合わせポイントを定義することと、
前記第１のファイルセグメントにおける前記継ぎ合わせポイントの直前の、単独でのデコードが可能なフレームを検索することと、
前記第２のファイルセグメントにおける前記継ぎ合わせポイントの、少なくとも直前および次の、単独でのデコードが可能なフレームを検索することと、
前記第１のファイルセグメントにおける前記直前の、単独でのデコードが可能なフレームから、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームまでの、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームを含まないフレーム群をデコードすることと、
前記第１のファイルセグメントにおける前記継ぎ合わせポイントに関連付けられたフレームを新しいキーフレームとして再エンコードすることと、
前記新しいキーフレームより後の、少なくとも、前記第２のファイルセグメントにおける前記継ぎ合わせポイントに関連付けられたフレームを含む、前記第２のファイルセグメントにおける前記継ぎ合わせポイントに関連付けられたフレームまでの残りのフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項１６】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１９】
１つまたは複数のプロセッサによって実行されたときに請求項１５に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項２０】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項１５に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項２１】
前記１つまたは複数のコンピュータ可読媒体を組み込むことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
第１のファイルセグメントから第２のファイルセグメントへのトランジションを発生させる場所を定義するトランジションポイントを定義することと、
前記第１のファイルセグメントにおけるトランジションポイントの直前の、単独でのデコードが可能なフレームを検索することと、
前記第２のファイルセグメントにおけるトランジションポイントの、少なくとも直前および次の、単独でのデコードが可能なフレームを検索することと、
前記第１のファイルセグメントにおける前記直前の、単独でのデコードが可能なフレームから、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームまでの、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームを含まないフレーム群をデコードすることと、
少なくともいくつかの前記デコード済みフレームに前記トランジションを適用することと、
前記第１のファイルセグメントにおける前記直前の、単独でのデコードが可能なフレームから、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームまでの、前記第２のファイルセグメントにおける前記次の、単独でのデコードが可能なフレームを含まないフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項２３】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項２２に記載の方法。
【請求項２５】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２６】
１つまたは複数のプロセッサによって実行されたときに請求項２２に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項２７】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項２２に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項２８】
前記１つまたは複数のコンピュータ可読媒体を組み込むことを特徴とする請求項２７に記載のコンピュータシステム。
【請求項２９】
エフェクトを適用するファイルセグメントを定義するマークインエフェクト開始ポイントとマークアウトエフェクト終了ポイントとを定義することと、
前記マークインエフェクト開始ポイントの直前の、単独でのデコードが可能なフレームを検索することと、
前記マークアウトエフェクト終了ポイントの次の、単独でのデコードが可能なフレームを検索することと、
前記直前の、単独でのデコードが可能なフレームから、前記次の、単独でのデコードが可能なフレームまでの、前記次の、単独でのデコードが可能なフレームを含まないフレーム群をデコードすることと、
少なくとも１つのデコード済みフレームに前記エフェクトを適用することと、
前記直前の、単独でのデコードが可能なフレームから、少なくとも、前記次の、単独でのデコードが可能なフレームまでのフレーム群を再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項３０】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することとをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
デコード済みのフレームに関連付けられたバッファフルネス情報を計算することと、前記再エンコード処理中に一定ビットレート条件に違反しないかどうかを確認することと、違反する場合は前記再エンコード処理を調整することとをさらに含み、前記再エンコード処理を調整する前記操作は、少なくとも１つの、単独でのデコードが可能なフレームの位置を調整することを含むことを特徴とする請求項２９に記載の方法。
【請求項３２】
ユーザが選択した圧縮パラメータを受け取ることと、前記再エンコード操作中に前記圧縮パラメータを適用することとをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３３】
１つまたは複数のプロセッサによって実行されたときに請求項２９に記載の方法を実施するコンピュータ可読命令を格納する、１つまたは複数のコンピュータ可読媒体。
【請求項３４】
１つまたは複数のコンピュータ可読媒体と、
前記１つまたは複数のコンピュータ可読媒体に組み込まれ、請求項２９に記載の方法を実装するように構成された１つまたは複数のソフトウェアコンポーネントとを備えることを特徴とするシステム。
【請求項３５】
前記１つまたは複数のコンピュータ可読媒体を組み込むことを特徴とする請求項３４に記載のコンピュータシステム。
【請求項３６】
１つまたは複数のコンピュータ可読媒体と、
１つまたは複数のコンピュータ可読媒体に組み込まれた１つまたは複数のソフトウェアコンポーネントとを備え、前記１つまたは複数のソフトウェアコンポーネントは、
ユーザのマルチメディアプロジェクトを記述するタイムラインオブジェクトをアプリケーションから受け取り、
前記タイムラインオブジェクトを解析して、前記ユーザのマルチメディアプロジェクトの、デコードされることが必要な部分が明確に定義されるように、前記ユーザのマルチメディアプロジェクトを記述する新しいタイムラインオブジェクトを導出し、
前記ユーザのプロジェクトに関連付けられたファイル部分を処理するために用いられる部分的トポロジを導出し、
前記部分的トポロジから、前記ファイル部分の処理に用いられるフルトポロジを導出するように構成されることを特徴とするシステム。
【請求項３７】
前記１つまたは複数のソフトウェアコンポーネントは、少なくとも、圧縮器コンポーネントを前記部分的トポロジの部分に挿入することによって前記フルトポロジを導出するように構成されることを特徴とする請求項３６に記載のシステム。
【請求項３８】
マルチメディアプロジェクトに関係するユーザ入力を受け取り、前記ユーザ入力から、前記１つまたは複数のソフトウェアコンポーネントに供給できるタイムラインオブジェクトを生成するように構成されたアプリケーションをさらに含むことを特徴とする請求項３６に記載のシステム。
【請求項３９】
前記１つまたは複数のソフトウェアコンポーネントは、前記ユーザのプロジェクトのフレーム群に関連付けられたバッファフルネス情報を計算し、前記バッファフルネス情報を用いて、前記プロジェクトのデコード済みフレームを再エンコードするために用いられる圧縮器を構成するように構成されることを特徴とする請求項３６に記載のシステム。
【請求項４０】
前記１つまたは複数のソフトウェアコンポーネントは、少なくとも前記新しいタイムラインオブジェクトに従って圧縮器を構成し、圧縮されたデータが出力ファイルに書き込まれるようにするように構成されることを特徴とする請求項３６に記載のシステム。
【請求項４１】
前記新しいタイムラインオブジェクトは、
トリミングされるファイルセグメントと、
トリミングおよびステッチングされるファイルセグメントと、
ステッチングされるファイルセグメントと、
少なくとも１つのトランジションが組み込まれるファイルセグメントと、
少なくとも１つのエフェクトが組み込まれるファイルセグメントのうちの１つまたは複数を記述できることを特徴とする請求項３６に記載のシステム。
【請求項４２】
１つまたは複数のファイルセグメントの少なくとも一部分がデコードされることを必要とする１つまたは複数の操作を受ける１つまたは複数の圧縮済みマルチメディアファイルを受け取ることと、
前記１つまたは複数の操作を実行するために、前記１つまたは複数のファイルセグメントの、デコードされることが必要な部分だけをデコードし、前記デコード操作の実行対象が、少なくとも１つの前記マルチメディアファイルの丸ごとより少ないことと、
前記１つまたは複数のファイルセグメントのデコード済み部分に前記１つまたは複数の操作を実行して、１つまたは複数の最終ファイルセグメントを提供することと、
前記最終ファイルセグメントを再エンコードすることとを含むことを特徴とするコンピュータに実装される方法。
【請求項４３】
前記１つまたは複数の操作は、トリミング操作と、トランジション操作と、エフェクト操作と、これらの組み合わせのうちの１つまたは複数を含むことを特徴とする請求項４２に記載の方法。
【請求項４４】
前記１つまたは複数のセグメントの表現をユーザに呈示することをさらに含み、前記表現は、ユーザがセグメントを選択し、選択したセグメントに対して操作を行うことを可能にすることを特徴とする請求項４２に記載の方法。
【請求項４５】
前記再エンコード操作は、前記再エンコード操作に用いる圧縮プロファイルを自動的に選択するように構成されたアプリケーションによって実行されることを特徴とする請求項４２に記載の方法。
【請求項４６】
前記操作は、前記マルチメディアファイルのうちの１つまたは複数のファイルのフォーマットが、出力ファイルのフォーマットと一致しない場合に実行できることを特徴とする請求項４２に記載の方法。
【請求項４７】
前記フォーマットが一致しない場合に、前記フォーマットが実質的に同等かどうかを調べ、実質的に同等であれば、少なくとも、前記１つまたは複数の操作を実行することをさらに含むことを特徴とする請求項４６に記載の方法。
【請求項４８】
前記フォーマットが一致しない場合に、前記１つまたは複数の操作が実行された場合とされない場合とで前記マルチメディアファイルの品質が劣化するかどうかを調べてから、前記１つまたは複数の操作を実行することをさらに含むことを特徴とする請求項４６に記載の方法。
【国際調査報告】
2007535781.tif 000016