"ソースメディアプログラムをエンコードする方法であって、a前記メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、前記ソースメディアプログラムをトランスコードすることと、b前記トランスコードされたメディアプログラムの一定映像品質バージョンの部分が、制約を満たしそこなっているか否かを判定することと、c前記トランスコードされたメディアプログラムの前記部分が、前記制約を満たしそこなっている場合に、1組のトランスコードパラメータのうちの少なくとも1つのトランスコードパラメータを調節することと、d前記トランスコードされたメディアプログラムの前記部分の一定ビットレートバージョンを生成するために、前記調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードすることと、e前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンによって、前記トランスコードされたメディアプログラムの前記一定映像品質部分を置換することと、の各ステップを備える方法。前記1組のパラメータは、テクスチャの複雑度、映像の複雑度、動きの複雑度、および画像レートを含み、前記方法は、瞬間ビットレートを備える群から選択される、トランスコードされた映像の情報を提供するために、前記トランスコードされたメディアプログラムの一定映像品質バージョンを解析することのステップをさらに備える、請求項1に記載の方法。g前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定することと、h前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっている場合に、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記1組のパラメータのうちの前記少なくとも1つのパラメータをさらに調節し、前記ステップgを繰り返し、その後、前記ステップeを実行することと、の各ステップをさらに備える、請求項1に記載の方法。g前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定することと、h前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっている場合に、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記1組のパラメータのうちの別のパラメータを調節し、前記ステップgを繰り返し、その後、前記ステップeを実行することと、の各ステップをさらに備える、請求項1に記載の方法。前記1組のパラメータのうちの前記別のパラメータを調節することの前記ステップは、トランスコードされた映像のテクスチャの複雑度を低減するために、前記トランスコードされた映像のテクスチャの複雑度のパラメータを調節することのステップを備える、請求項4に記載の方法。前記制約は、前記メディアプログラムの前記部分の間の瞬間最大ビットレートである、請求項1に記載の方法。前記メディアプログラムの前記部分は、前記メディアプログラムの前記部分にわたる最小整数の画像群を備える、請求項1に記載の方法。ソースメディアプログラムをエンコードするための機器であって、前記メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、前記ソースメディアプログラムをトランスコードするための手段と、前記トランスコードされたメディアプログラムの前記一定映像品質バージョンの部分が、制約を満たしそこなっているか否かを判定するための手段と、前記トランスコードされたメディアプログラムの前記部分が、前記制約を満たしそこなっている場合に、1組のトランスコードパラメータのうちの少なくとも1つのトランスコードパラメータを調節するための手段と、前記トランスコードされたメディアプログラムの前記部分の一定ビットレートバージョンを生成するために、前記調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードするための手段と、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンによって、前記トランスコードされたメディアプログラムの前記一定映像品質部分を置換するための手段と、の各ステップを備える機器。前記1組のパラメータは、テクスチャの複雑度、映像の複雑度、動きの複雑度、および画像レートを含み、前記機器は、瞬間ビットレートを備える群から選択される、トランスコードされた映像の情報を提供するために、前記トランスコードされたメディアプログラムの前記一定映像品質バージョンを解析するための手段をさらに備える、請求項8に記載の機器。前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定するための手段と、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記1組のパラメータのうちの前記少なくとも1つのパラメータをさらに調節し、前記さらに調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分を繰り返しトランスコードするための手段と、をさらに備える、請求項8に記載の機器。前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定するための手段と、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記1組のパラメータのうちの別のパラメータを調節し、前記さらに調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分を繰り返しトランスコードするための手段と、の各ステップをさらに備える、請求項8に記載の機器。前記1組のパラメータのうちの前記別のパラメータを調節するための前記手段が、トランスコードされた映像のテクスチャの複雑度を低減するために、前記トランスコードされた映像のテクスチャの複雑度のパラメータを調節するための手段を備える、請求項11に記載の機器。前記制約は、前記メディアプログラムの前記部分の間の瞬間最大ビットレートである、請求項8に記載の機器。前記メディアプログラムの前記部分は、前記メディアプログラムの前記部分にわたる最小整数の画像群を備える、請求項8に記載の機器。ソースメディアプログラムをエンコードするための機器であって、前記メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、前記ソースメディアプログラムをトランスコードするための第1のトランスコーダと、前記トランスコードされたメディアプログラムの一定映像品質バージョンの部分が、制約を満たしそこなっているか否かを判定する制約決定モジュールと、前記トランスコードされたメディアプログラムの前記部分が、前記制約を満たしそこなっている場合に、1組のトランスコードパラメータのうちの少なくとも1つのトランスコードパラメータを調節するための調節モジュールと、前記トランスコードされたメディアプログラムの前記部分の一定ビットレートバージョンを生成するために、前記調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードするための第2のトランスコーダと、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンによって、前記トランスコードされたメディアプログラムの前記一定映像品質部分を置換するためのスプライサと、の各ステップを備える機器。前記1組のパラメータは、テクスチャの複雑度、映像の複雑度、動きの複雑度、および画像レートを含み、前記制約決定モジュールは、瞬間ビットレートを備える群から選択される、トランスコードされた映像の情報を提供するために、前記トランスコードされたメディアプログラムの前記一定映像品質バージョンを解析するための解析モジュールをさらに備える、請求項15に記載の機器。前記制約決定モジュールは、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たしそこなっているか否かをさらに判定し、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記調節モジュールは、前記1組のパラメータのうちの前記少なくとも1つのパラメータをさらに調節し、前記第2のトランスコーダは、前記さらに調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分を繰り返しトランスコードする、請求項15に記載の機器。前記制約決定モジュールは、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たしそこなっているか否かをさらに判定し、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記調節モジュールは、前記1組のパラメータのうちの別のパラメータを調節し、前記トランスコーダは、前記さらに調節された少なくとも1つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードする、請求項15に記載の機器。前記調節モジュールは、トランスコードされた映像のテクスチャの複雑度を低減するために、前記トランスコードされた映像のテクスチャの複雑度のパラメータを調節する、請求項18に記載の機器。前記制約は、前記メディアプログラムの前記部分の間の瞬間最大ビットレートである、請求項15に記載の機器。前記メディアプログラムの前記部分は、前記メディアプログラムの前記部分にわたる最小整数の画像群を備える、請求項15に記載の機器。上述された要求に対処するために、本発明は、ソースメディアプログラムをエンコードするための方法および機器について開示する。一実施形態では、本方法は、メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、ソースメディアプログラムをトランスコードすることと、トランスコードされたメディアプログラムの一定映像品質バージョンの部分が制約を満たしそこなっているか否かを判定することと、トランスコードされたメディアプログラムの部分が制約を満たしそこなっている場合に、1組のトランスコードパラメータのうちの少なくとも1つのトランスコードパラメータを調節することと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンを生成するために、調節された少なくとも1つのトランスコードパラメータに応じて、ソースメディアプログラムの部分をトランスコードすることと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンによって、トランスコードされたメディアプログラムの一定映像品質部分を置換することとの各ステップを備える。別の実施形態では、本機器は、メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、ソースメディアプログラムをトランスコードするための第1のトランスコーダと、トランスコードされたメディアプログラムの一定映像品質バージョンの部分が制約を満たしそこなっているか否かを判定する制約決定モジュールと、トランスコードされたメディアプログラムの部分が制約を満たしそこなっている場合に、1組のトランスコードパラメータのうちの少なくとも1つのトランスコードパラメータを調節するための調節モジュールと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンを生成するために、調節された少なくとも1つのトランスコードパラメータに応じて、ソースメディアプログラムの部分をトランスコードするための第2のトランスコーダと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンによって、トランスコードされたメディアプログラムの一定映像品質部分を置換するためのスプライサとを備える。次に、図面を参照するが、図面において、同一の参照符号は、全体にわたって、対応する部品を示している。以下の説明では、本明細書の一部を形成しており、また、例示として本発明の複数の実施形態が示されている添付図面を参照する。本発明の範囲から逸脱しなければ、他の実施形態が利用されてもよく、また、構造的変更が行われてもよいことが理解される。図1は、例示的なメディアプログラムシステム100を示している図である。図示されている実施形態では、システム100は、インターネットなどの通信ネットワーク104と通信可能に接続された1つ以上のメディアプログラムソース120A、120Bを備えることができ、これらメディアプログラムソース120A、120Bは、それぞれ、1つ以上のソース映像サーバ122A、122Bを有し、これらソース映像サーバ122A、122Bは、1つ以上のソースメディアプログラムデータベース124A、124Bと通信可能に接続されている。メディアプログラムシステム100は、メディアプログラムプロバイダ110をさらに備え、メディアプログラムプロバイダ110は、通信ネットワーク104と通信可能に接続され、また、1つ以上のプロバイダ映像サーバ112および1つ以上のプロバイダデータベース114を有する。一実施形態では、メディアプログラムプロバイダ110は、ビデオオンデマンドおよび/またはストリーミング用のメディアプログラムプロバイダである。しかしながら、メディアプログラムプロバイダ110は、この代わりに、シンプルダウンロードまたはプログレッシブダウンロードによって、メディアプログラムを伝送してもよい。メディアプログラムシステム100は、コンピュータなどの第1のユーザ装置102A、または、携帯電話などの第2のユーザ装置102B以後、これらに代えてユーザ装置102と呼ぶにメディアプログラムを伝送する。この伝送は、メディアプログラムプロバイダ110から直接行われる場合もあるし、または、メディアプログラムプロバイダ110は、ポータルとして機能する場合もあり、この場合は、メディアプログラム自体ではなく、メディアプログラムソース120Aおよび120Bから入手可能なメディアプログラムへのインターフェースを提供するメディアプログラムは、代わりに、メディアプログラムソース120によって提供される。第1の場合、メディアプログラムプロバイダ110は、メディアプログラムソース120www.fox.comまたはwww.nbc.comなどのからメディアプログラムを認可し、このようなプログラムに関するメタデータがさらに、一般的には、メディアプログラムソース120からメディアプログラムプロバイダ110に同様に提供される。このようなメタデータは、使用のために、メディアプログラムプロバイダのデータベース114によって検索され得る。補助的なメタデータが必要とされる場合、補助的なメタデータは、以下でさらに説明するように、メディアプログラムプロバイダ110およびメディアプログラムソース120から独立しているメタデータソース130から得ることができる。第2の場合、メディアプログラムは、メディアプログラムソース120のサーバから直接、ユーザ装置102にストリームされる。メディアプログラムが、メディアプログラムソース120から直接ストリームされる場合、メディアプログラムソース120によって提供されるメタデータが不十分であることがしばしばある。このような場合、補助的なメタデータは、独立のメタデータソース130www.tv.comもしくはwww.imdb.comなどのまたは他のサードパーティソースから得ることができる。この状況において、メディアプログラムプロバイダ110の役割は、利用可能なメディアプログラムのリスト、および、このようなプログラムを検索して見つけ出し、これを観るためのインターフェースをユーザ132に提供するポータルとしての役割である。メディアプログラムおよびメタデータは、インターネットなどの通信ネットワーク104または補助的なおよび/もしくは専用の通信リンク134を介して、得られてもよい。このような情報は、ウェブクローリングwebcrawling例えば、組織的な自動化された方法でワールドワイドウェブをブラウズするプログラムまたは自動化スクリプトを使用するによって得られてもよい。ユーザ装置102を用いて、遠くのユーザ132は、メディアプログラムビデオオンデマンドおよび/またはストリーミングの映像サービスを含むを得るために、および、関心対象のメディアプログラムを見つけることを目的としてプロバイダメディアプログラムデータベース114を検索するために、通信ネットワーク104を利用してメディアプログラムプロバイダ110と通信することができる。また、メディアプログラムシステム100は、1つ以上の広告プロバイダ140を備えてもよく、広告プロバイダ140は、メディアプログラムプロバイダ110またはメディアプログラムソース120によって提供されるメディアプログラムと共に再生される広告を供給する。図示されている実施形態では、広告プロバイダ140は、通信可能に接続された関連の広告プロバイダデータベース144と通信可能に接続された広告プロバイダサーバ142を含む。広告は、インターネット104、専用のリンク146を介して、または、広告を有するメモリストレージデバイスの物理的交換によって、広告プロバイダ140からメディアプログラムプロバイダ110に供給されてもよい。このような広告は、メディアプログラムプロバイダ110に提供され、メディアプログラムプロバイダ110によって記憶され、適切な時点で、メディアプログラムと共にユーザ装置102にストリームされるか、または、ダウンロードされてもよい。一実施形態では、広告は、メディアプログラムプロバイダ110からストリームまたはダウンロードされる映像と一体化される。別の実施形態では、広告は、メディアプログラムと一体化されないが、この代わりに、メディアプログラムとは別にユーザ装置102に伝送され、各広告がいつ表示されるべきかを示すインデックスを用いて、適切な時点で再生される。例えば、広告は、インデックスを付けられて、ユーザ装置102にメディアプログラムプロバイダ110または広告プロバイダ140からストリームされるか、または、ダウンロードされることが可能であり、このような広告は、メディアプログラムの対応するインデックスによって示された時点で、ユーザ132に対して再生することができる。図2は、本発明の原理を実施するために使用することができる例示的な処理システム202を示しており、この処理システム202は、ユーザ装置102と、サーバ112、122、および142と、データベース114、124、および144とを含む。コンピュータ202は、汎用ハードウェアプロセッサ204Aおよび/または専用ハードウェアプロセッサ204B以後、これらの代わりに、一括してプロセッサ204と呼ぶ、ならびに、ランダムアクセスメモリRAMなどのメモリ206を備える。コンピュータ202は、キーボード214、マウス装置216、およびプリンタ228などの入力/出力I/O装置を含む他の装置と接続されてもよい。一実施形態では、コンピュータ202は、オペレーティングシステム208の制御下で、コンピュータプログラム210によって規定された命令を実行する汎用プロセッサ204Aによって動作する。コンピュータプログラム210および/またはオペレーティングシステム208は、メモリ206に記憶されてもよく、また、入力およびコマンドを受け取り、このような入力およびコマンド、ならびに、コンピュータプログラム210およびオペレーティングシステム208によって規定された命令に基づいて、出力および結果を提供するために、ユーザ132および/または他の装置とインターフェースで接続されてもよい。出力/結果は、ディスプレイ222に表示されてもよいし、または、表示またはさらなる処理もしくはアクションのために別の装置に提供されてもよい。一般に、ディスプレイ222は、ユーザ132に対して画像を集合的に表示するために状態を変化させる複数の画素ピクセルを備える。例えば、ディスプレイ222は、別々にアドレス指定可能な複数のピクセルを有する液晶ディスプレイLCDを備えてもよく、これらの別々にアドレス指定可能な複数のピクセルは、それぞれ、入力およびコマンドに応じた、コンピュータプログラム210および/またはオペレーティングシステム208の命令の適用によってプロセッサ204により生成されたデータまたは情報に応答してディスプレイ上の画像の一部を形成するために不透明状態または半透明状態に変化する液晶を有する。同様に、プラズマディスプレイは、それぞれが異なる色蛍光体を有する3つの別個のサブピクセルセルを有するピクセルを含む。これらの色は、ピクセルに表示される色を生成するために混ざり合う。セルを流れる電流のパルスは、入力およびコマンドに応じた、コンピュータプログラムおよび/またはオペレーティングシステム208の命令の適用によってプロセッサにより生成されるデータに応じて、変化し、ピクセルによって与えられる光の強度を変化させる。また、同様に、陰極線管CRTディスプレイは、複数のピクセルを含み、これら複数のピクセルは、それぞれ、一般にはドットまたはアパーチャグリルの線によって表示されるサブピクセルを有するピクセルのそれぞれを有する。ドットまたは線のそれぞれは、電子銃からの電子が衝突すると発光する蛍光体被覆を含む。コンピュータプログラムおよび/またはオペレーティングシステム208の命令の適用によってプロセッサにより生成されたデータに応答して、および、入力およびコマンドに応答して、電子銃によって発射される電子は、ドットまたは線に向けられ、この結果、当該のドットまたは線の蛍光体被覆を発光させることによって関連するピクセルの状態を変化させる。画像は、グラフィカルユーザインターフェースGUIモジュール218Aを介して、提供されてもよい。GUIモジュール218Aは、別個のモジュールとして描かれているが、GUI機能を実行する命令は、オペレーティングシステム208、コンピュータプログラム210に内蔵されてもよいし、もしくは、分散されてもよく、または、専用のメモリおよびプロセッサによって実現されてもよい。コンピュータプログラム110の命令に応じてコンピュータ202によって実行される演算の一部または全部は、専用プロセッサ204Bにおいて実行されてもよい。この実施形態では、コンピュータプログラム210の命令の一部または全部は、専用プロセッサ204B内のリードオンリーメモリROM、プログラム可能なリードオンリーメモリPROM、もしくはフラッシュメモリに、または、メモリ206に記憶されたファームウェア命令によって実行されてもよい。また、専用プロセッサ204Bは、本発明を実施する演算の一部または全部を実行するように、回路設計によってハード的に実現されてもよい。さらに、専用プロセッサ204Bは、複数の機能のサブセットを実行するための専用の回路、および、コンピュータプログラム命令に応答することなどのより一般的な機能を実行するための他の回路を含むハイブリッドプロセッサであってもよい。一実施形態では、専用プロセッサは、特定用途向け集積回路ASICである。また、コンピュータ202は、COBOL、C、FORTRAN、または他の言語などのプログラミング言語で書かれたアプリケーションプログラム210がプロセッサ204によって読み取り可能なコードに翻訳されることを可能にするコンパイラ212を実装してもよい。完了の後、アプリケーションまたはコンピュータプログラム210は、コンパイラ212を用いて生成された関係および論理を用いて、I/O装置から受け取られたデータ、および、コンピュータ202のメモリ206に記憶されたデータにアクセスし、処理を行う。また、コンピュータ202は、随意に、モデム、衛星リンク、イーサネット登録商標カード、または他のコンピュータからの入力を受け付け、他のコンピュータに出力を提供するための他の装置などの外部通信装置を備える。一実施形態では、オペレーティングシステム208、コンピュータプログラム210、およびコンパイラ212を実現する命令は、有形物として、コンピュータ読み取り可能な媒体例えば、データ記憶装置220において具現化される。このようなコンピュータ読み取り可能な媒体は、ZIPドライブ、フロッピー登録商標ディスクドライブ224、ハードドライブ、CD-ROMドライブ、テープドライブ、DVDなどの、1つ以上の固定のまたは取り外し可能なデータ記憶装置を含む場合がある。さらに、オペレーティングシステム208およびコンピュータプログラム210は、コンピュータ202によってアクセス、読み取り、および実行されたときに、コンピュータ202に、本発明の実施および/もしくは使用に必要な複数のステップを実行させるか、または、複数の命令から構成されたプログラムをメモリにロードさせ、これにより、本明細書に記載されている複数の方法ステップを実行する特別にプログラムされたコンピュータとしてコンピュータを動作させる専用のデータ構造を形成する複数のコンピュータプログラム命令から構成される。また、コンピュータプログラム210および/または動作命令は、有形物として、メモリ206および/またはデータ通信装置230において具現化され、この結果、本発明に係るコンピュータプログラムの製品または製造品が作られてもよい。このように、本明細書で使用されているような製造品、プログラム記憶装置、およびコンピュータプログラム製品という用語は、コンピュータ読み取り可能な任意の装置または媒体からアクセス可能なコンピュータプログラムを含むことが意図されている。言うまでもなく、当業者ならば分かるように、上記構成部品の任意の組み合わせ、または、任意の数の様々な構成部品、周辺機器、および他の装置が、コンピュータ202と共に使用されてもよい。本明細書ではユーザコンピュータまたはユーザ装置という用語に言及されているが、ユーザコンピュータまたはコンピュータは、携帯電話、ポータブルMP3プレイヤー、ビデオゲーム機、ノートブックコンピュータ、ポケットコンピュータ、パーソナルデータアシスタントpersonaldataassistantPDA、または適切な処理、通信、および入力/出力の機能を有する任意の他の装置などのポータブル装置を含む場合があることが理解される。図3は、選択および表示のために、ユーザ132にメディアプログラムを提供し、配布するために使用することができるコンテンツ配布サブシステムCDS300およびトップレベルの動作の第1の実施形態を示している図である。図示されている実施形態では、コンテンツ配布サブシステム300は、ユーザ装置102と、メディアプログラムプロバイダ110と、広告プロバイダ140とを含む。図示されている実施形態では、メディアプログラムプロバイダ110は、コンテンツ管理サービス310と、広告サービス316と、フィードサービス306と、コンテンツセレクタ308とを備える。CMS310は、利用可能なメディアプログラムに関するメタデータ、および、ユーザデータを含むデータをデータベース322に記憶している。ユーザ132が、ユーザ装置102を用いてメディアプログラムを選択すると、選択されたメディアプログラムのメディアプログラム識別子PIDを要求するメッセージが、ユーザ装置102からメディアプログラムプロバイダ110に伝送される。フィードサービス306は、要求を受信し、コンテンツ管理サービス310を介してセキュアストレージsecurestorage312またはデータベース322から得た情報を用いて、フィードサービス306は、選択されたメディアプログラムに関するPIDを特定し、このPIDをユーザ装置102に伝送する。ユーザ装置は、このPIDおよびユーザIDをメディアプログラムプロバイダ110のコンテンツセレクタ308に伝送する。コンテンツセレクタ308は、情報をコンテンツ管理サービス310に転送し、コンテンツ管理サービス310は、セキュアストレージ312に記憶された情報を用いて、ユーザおよび選択されたメディアプログラムに適した広告を選択するために、広告サービス318を使用する。このことは、その出願が参照により本明細書に組み込まれる、2010年5月26日付で提出されたWingChitMakによる高速かつスケーラブルな指向的広告サービスMETHODANDAPPARATUSFORRAPIDANDSCALEABLEDIRECTEDADVERTISINGSERVICEという名称の同時係属中の米国特許出願第12/787,679号明細書に記載されているような仕方で、達成されてもよい。コンテンツ管理サービス310は、この情報をコンテンツセレクタ308に転送し、コンテンツセレクタ308は、ユーザ装置102が、メディアサーバ114から選択されたメディアプログラムを、および、広告プロバイダ140から広告を得ることを可能にする情報を伝送する。図示されている実施形態では、この情報は、メディアサーバ114から所望のメディアプログラムを得ることのできるアドレス例えば、URLを含む。ユーザ装置102は、メディアプログラム要求を指定されたアドレスのメディアサーバ114に伝送する。メディアサーバ114は、セキュアストレージからメディアプログラムを検索し、メディアプログラムをユーザ装置102に伝送する。また、ユーザ装置102は、広告プロバイダ120から広告を要求し、同様にこれを受け取ることができる。広告プロバイダ140およびメディアサーバ114は、メディアプログラムプロバイダ110とは別個のアーキテクチャエンティティarchitecturalentityとして示されているが、広告プロバイダ140は、メディアプログラムプロバイダ110に統合されてもよいすなわち、メディアプログラムプロバイダはさらに、広告を提供してもよい。CDS300は、www.hulu.com、www.imdb.com、www.aol.comまたはwww.msn.comを含む場合がある複数の配信ネットワークをまたいでメディアプログラムおよび広告を提供する手段を提供する。メディアプログラムおよび広告コンテンツに関係するメタデータ、ならびに、ストリーミング情報は、メディアプログラムおよび広告がCDS300内のどこで見つけることができるのかを記述したデータと同様に、コンテンツ配布システム300のデータベース312および322に記憶されている。ユーザ装置102は、インターフェースモジュール302およびメディアプログラムプレイヤー304を含んでもよい。インターフェースモジュール302は、ユーザ132に情報およびメディアプログラムを表示し、かつコマンドを含むユーザ入力を受け付けるために使用される、ユーザ装置102によって実行される命令を含む。例示的なユーザ装置102は、デスクトップコンピュータ、ラップトップコンピュータ、またはポータブル装置IPOD、IPHONE、IPAD、携帯電話、もしくはPALM装置などのである。図3に描かれているデータおよびメッセージの転送に関して、IDに関する要求、フィードサービス306からのPIDの受信、コンテンツセレクタ308へのPIDおよびユーザIDの伝送、コンテンツセレクタ308からのURLおよびメタデータの受信、ならびにメディアプログラムおよび広告の要求は、一般に、比較的小さな情報またはメッセージの転送を伴う。しかしながら、メディアプログラムまたは広告の転送は、情報がリアルタイムまたはほぼリアルタイムでユーザに表示されるべきである場合、一般に、バンド幅のそれなりに大きなリンクを必要とするかなり大きな情報の転送を伴う。したがって、メディアプログラムおよび/または広告は、ユーザ装置102への伝送の前に、トランスコード処理によって圧縮される。図4は、ライブストリーミングプロトコルに従う、メディアプログラムの伝送を示している図である。基本的には、このプロトコルは、ユーザ装置102がメディアプログラムを要求したときに、ユーザ装置102にメディアプログラムの小さなセグメントまたはチャンクに関するプレイリストが提供される点を除いて、図3に示されているプロトコルと同様である。ユーザ装置102は、メディアプログラムの各チャンクを順番に伝送することを要求するためにプレイリストを使用し、また、各チャンクは、受信されると、処理されて、ユーザ132に表示されるメディアプログラムへ組み立てられる。図4に示されているように、ユーザ装置102は、メディアプログラムのPIDに関する要求をフィードサービス306に伝送する。この要求は、一般に、ユーザIDまたはこれのプロキシ、および、メディアプログラムに関する何らかの識別情報を備える。フィードサービス306は、この要求を受信し、セキュアストレージ312およびコンテンツのメタデータ/ストリーミング情報のデータベースから得られた情報を用いて、CMS310から、要求されたメディアプログラムのPIDを得る。次に、PIDは、ユーザ装置102に伝送される。次に、ユーザ装置は、PIDと共にメディアプログラム要求をコンテンツセレクタ308に伝送する。この実施形態では、メディアプログラムは、ユーザ装置102からの要求に基づいてユーザ装置102に伝送することができる複数のセグメントまたはチャンクに分割される。どのセグメントを要求すべきか、および、どのような順番でこれらを要求すべきかについては、メディアプログラムプロバイダ110からユーザ装置102に伝送されるセグメントプレイリストによって決定される。ライブストリーミングプロトコルは、メディアプログラムセグメントへのアドレスまたはURIを有するセグメントプレイリストをメディアプログラムプレイヤー304に伝送することを含む。メディアプログラムプレイヤー304は、セグメントプレイリストにあるアドレスまたはURIを用いて任意のセグメントおよび、したがって、任意のフレームを検索するために必要な情報を有するため、インターフェース400を実現しているユーザインターフェースモジュール302は、ナビゲーション要求に応じたメディアプログラムフレームを有するセグメントを決定し、このようなセグメントを要求しこれらが既に受信され、バッファリングされていない場合に、先に示されたようなセグメントをもとにフレームを表示することによって、メディアプログラムナビゲーションコマンドに応答する。図3に示されている実施形態と同様に、図4に示されているID、PIDに関する要求、メディアプログラム要求、セグメントプレイリスト、メディアプログラムセグメント要求、および広告セグメント要求は、大きなバンド幅を必要としない。しかしながら、メディアプログラムまたは広告セグメントの転送は、一般に、情報がリアルタイムまたはほぼリアルタイムでユーザに表示されるべきである場合、伝送の前に大幅に圧縮されなければならないかなり大きな情報の転送を含む。したがって、メディアプログラムおよび/または広告は、ユーザ装置102への伝送の前に、トランスコード処理によって圧縮される。図4に示されている伝送プロトコルは、主に、携帯ユーザ装置102および無線リンクに対して使用されるため、メディアプログラムおよび広告セグメントは、一般に、図3に示されている実施形態の場合よりもさらに圧縮される。メディアプログラムは、npとして表現することができる、これの解像度によって特徴付けることができ、この場合、nは、再生される画像の垂直解像度線を表し、pは、順次走査すなわち、非飛び越し走査方式の画像を示している。顧客のインターネットサービスは、バンド幅に関して大きく異なるため、それぞれが異なる解像度一般に480p、360p、288p、または240pを有する、メディアプログラムの様々なバージョンが生成され得る。より低い解像度のバージョン例えば、240pは、通信リンクのバンド幅がより低い場合に伝送され、より高い解像度のバージョン例えば、480pは、通信バンド幅がこれを許す場合に伝送される。この機能は、一般に、推定バンド幅に基づいて適切なバージョンを選択するメディアプログラムプレイヤー304によって実現される。メディアプログラムは、一般に、それぞれが異なる解像度を有する多数のバージョンにトランスコードされるが、コンテンツに関係なくすべてのメディアプログラムをトランスコードするために、同一のビットレートが一般に使用される。例えば、ファミリーガイFAMILYGUYというメディアプログラムシリーズおよびプリズンブレイクPRISONBREAKというメディアプログラムシリーズの、360pにトランスコードされるバージョンは、双方とも、同一のビットレートを使用してトランスコードされ得る。しかしながら、これらのメディアプログラムは、異なる特徴あるものは、より多くの動きおよびアクションを有するを有するため、メディアプログラムは、同じ画質を達成しながらも、これらの異なる特徴を考慮して異なるビットレートでエンコードされるべきである。例えば、ファミリーガイのあるエピソードは、550Kbpsまたは350Kbpsのいずれでトランスコードされていようと、ほとんど同じに見えるが、プリズンブレイクが、わずか350Kbpsでトランスコードされている場合、プリズンブレイクのアクション動画クリップには、コーディングアーチファクトcodingartifactが、極めて鮮明に見える可能性がある。図5は、一般的なエンコード処理を示している図である。映像プログラムなどのソースメディアプログラム500は、トランスコーダ502に提供される。好ましい実施形態では、トランスコーダは、H.264の映像圧縮規格に準拠したトランスコーダであり、コンピュータプログラムを用いて、または、専用のプロセッサもしくは装置を用いて、汎用コンピュータに実装することができる。トランスコーダ502は、メディアプログラムの圧縮されたバージョン504を生成するために、ソース映像プログラムをエンコードする。トランスコーダ502は、トランスコードされたメディアプログラムのビットレートおよび品質を制御するために使用することができるパラメータ入力を受け取る。図6は、トランスコードされた様々なメディアプログラムに関して映像品質とビットレートとの関係を示している図である。映像品質は、2つの画像間の類似性の基準である構造的類似性structuralsimilaritySSIM指標によって測定される。SSIMは、画像のウィンドウに関して計算される一般に、輝度情報に対してのみ適用される。この場合、共通のサイズN×Nを有する2つのウィンドウxおよびyの間の類似性の基準は、次のように定義される。この場合、μx=xの平均、μy=yの平均、σx2=xの分散、σy2=yの分散、σxy=xおよびyの共分散、c1=k1L2、c2=k2L2弱い分母weakdenominatorによって割り算を安定させる2つの変数、L=ピクセル値のダイナミックレンジ一般に、ビット数、画素、k1=0.01、およびk2=0.03である。図6に示されている図では、バンケットBANQUETというメディアプログラムは、多くの動きおよび複雑な画像テクスチャを有し、一方、ナイトNIGHTというメディアプログラムについては、暗いシーケンスを有し、細部がほとんどない。ファミリーガイは、アニメーションであり、したがって、テクスチャが、ほとんどないか、または、まったくなく、また、動きが少ないアニメーションでは、一般に背景は一定である。0.95という最低限のSSIMが、求められる場合、この結果は、ナイト30fpsのおよびファミリーガイ55fpsのというメディアプログラムに関しては、約200Kbpsのビットレートによって達成することができることに留意すべきである。0.95という最低限のSSIMを達成する30fpsにおいてために、バンケットというメディアプログラムは、ナイトまたはファミリーガイにとって必要なものと比べて大幅に大きな600Kbpsを必要とする。テストメディアプログラムに関しては、0.95のSSIMを維持するために、24fpsから30fpsにフレームレートを増加させることは、300Kbpsから約400Kbpsへのビットレートの増加を必要とすることにも留意すべきである。上述されているように、トランスコーダ502の性能は、パラメータおよび制御の入力によって制御することができる。1つのこのような制御入力は、メディアプログラムを特定の目標映像品質にエンコードするモードに入るようにトランスコーダ502に指示するが、結果として得られるトランスコードされるメディアプログラムのファイルサイズの制限または低減を行おうと試みるわけではない。このモードにおいて、結果として得られる映像の品質は、固定レート要素constantratefactor、すなわち、CRFによって制御することができる。図7は、目標の映像品質にエンコードした後の多数の異なるメディアプログラムのSSIMを示している図である。トランスコーダ502は、メディアプログラムを一定の品質にエンコードしようと試みるため、同じCRFに従ってエンコードされたエンコード後のメディアプログラムは、図5において説明された一定でない品質のエンコードと比べて変動の少ない、映像品質SSIM値を有することに留意すべきである。例えば、図5は、一定の映像品質のエンコードが選択されていない場合、400Kbpsのビットレートでの、バンケットというメディアプログラムのエンコードは、約0.925のSSIMをもたらし、同じビットレートでのファミリーガイのエンコードは、約0.975という大幅に良好な値をもたらし、差異が約0.05となることを示している。一方、図7は、一定の映像品質のエンコードが選択された場合、結果として得られる映像品質SSIMは、特定のCRF値に関してメディアプログラム間で変動が少ないことを示している。例えば、27.0の目標CRFに関して、バンケットのSSIMが約0.985である一方で、ファミリーガイのSSIMは0.95であり、差異が約0.03であることに留意すべきである。図6および図7は、メディアプログラムが様々なCRF値でコードされる場合に、ビット節約の可能性があることを示している。例えば、0.98という最低限のSSIMが求められる場合、ファミリーガイのようにテクスチャがほとんどないか、または、まったくなく、動きが限られており、また、画像の複雑度が小さなメディアプログラムは、約19のCRFに従ってエンコードされてもよいが、バンケットのように動きが多く、テクスチャまたは画像の複雑度が厳しいメディアプログラムは、29以上のCRFに従ってエンコードされなければならない。しかしながら、これにより、ビットレートが1Mbps以上となる場合があり、このようにビットレートが大きなメディアプログラムはインターネットを介して伝送することが困難である。通信リンクの利用可能なバンド幅をより有効に使用するために、適応的なコーディング方法を以下で説明する。図8は、適応的なトランスコード処理、または、2パストランスコード処理を示している図である。映像プログラムなどのソースメディアプログラム500が、トランスコーダ502に提供される。トランスコーダ502は、メディアプログラムの、シングルパストランスコードが施されたバージョン504を生成するために、1組の入力パラメータおよび入力パラメータ値801に応じて、ソース映像プログラム500をトランスコードする。一実施形態では、入力パラメータおよび値801は、メディアプログラムの、シングルパストランスコードが施されたバージョン504が、実質的に一定の映像品質を有するように、目標の映像品質を選択するために選ばれ、また、トランスコードされるメディアプログラム504のサイズ、または、リアルタイム表示のためにこれを伝送するために必要とされるビットレートに関係なく、トランスコードされる。このようにトランスコードされたソースメディアプログラム500は、メディアプログラムの実質的に一定の映像品質バージョンと呼ばれてもよい。メディアプログラムの一定品質バージョンの生成は、例えば、ソースメディアプログラム500をトランスコーダ502に提供し、固定レート要素またはCRFと呼ばれるレート制御モードを選択する入力パラメータ制御を起動することによって、達成することができる。さらに、他の入力パラメータ801例えば、テクスチャの複雑度Tn、動きの複雑度Mn、サイズピクセル、例えば、640px×360px、およびフレームレートに関する入力値が、与えられてもよい。あるいは、入力パラメータ値801は、メディアプログラムの、第1のトランスコードが施されたバージョンが他の所望の特性を有するように、設定されてもよい。例えば、入力パラメータは、トランスコードされたメディアプログラムの第1のバージョンが、時間的に一定のビットレート例えば、400Mbpsを有するように、設定されてもよい。トランスコーダ502は、1メディアプログラムの、シングルパストランスコードが施されたバージョン504、および、2メディアプログラムの、シングルパストランスコードが施されたバージョン504に関する情報を生成する。この情報は、出力パラメータおよびパラメータ値802以後、この代わりに、メディアプログラム情報と呼ぶを含む場合がある。出力パラメータ802は、入力パラメータ801と類似していてもよい例えば、テクスチャの複雑度は、トランスコードされたもの502の出力パラメータと同様に、入力パラメータであってもよいし、または、出力パラメータ802は、トランスコーダ502に供給される入力パラメータ801と異なっていてもよい。このように、メディアプログラム情報802は、テクスチャの複雑度Tn、動きの複雑度Mn、フレームレート、サイズ、およびビットレートKbpsなどの、エンコードされたメディアプログラムのメトリクスを含んでもよく、また、これらのメトリクスは、平均値、最大値として、または、時間の関数として表現されてもよい。メディアプログラムの、シングルパストランスコードが施されたバージョン504は、制約決定モジュール804に提供され、制約決定モジュール804は、トランスコードされたメディアプログラムの第1のバージョン504の少なくとも時間的部分が、制約決定モジュール804にも提供された1つ以上の制約803を満たしそこなっているか否かを判定する。このことは、メディアプログラムの、シングルパストランスコードが施されたバージョン504のメトリクスと、提供された制約803とを比較することによって達成される。以下で述べるように、これらのメトリクスは、トランスポンダ502から得られる出力パラメータおよびパラメータ値802から得られてもよいし、または、制約決定モジュール804によって別に導出されてもよい。メディアプログラムの、シングルパストランスコードが施されたバージョン504が一定映像品質バージョンである実施形態では、単一のメトリックまたはパラメータ、すなわち、メディアプログラムの一定映像品質バージョン504のビットレートが使用されてもよく、メトリックに課される制約は、最大ビットレートであってもよい。ビットレートの測定および制約は、トランスコードされたメディアプログラムの一定品質バージョンの最大またはピークのビットレートの観点から指定されてもよい。なお、この最大またはピークのビットレートは、メディアプログラムの全体またはトランスコードされたメディアプログラムの時間的な部分もしくは区間のみに関して測定される。例えば、制約803は、瞬間ビットレートが任意のY秒またはYフレームを上回ってXMbpsを超えないことを要求してもよい。この場合、制約決定モジュール804は、一定の品質にトランスコードされたメディアプログラムの瞬間ビットレートを測定し、測定された瞬間ビットレートと制約803とを比較する。一実施形態では、制約決定モジュール804は、制約が満たされている否かを判定するために、トランスコーダ502によって提供された出力パラメータ値802を使用する図8の点線によって示されているように。例えば、トランスコーダ502は、トランスコードされたメディアプログラムの第1のバージョンのサイズを提供してもよく、制約決定モジュールは、トランスコードされたメディアプログラムの第1のバージョン504の第1のバージョンが伝送に関する要件を満たしているか否かを判定するために、この提供されたサイズと最大値とを比較してもよい。別の実施形態では、制約決定モジュール804は、制約決定モジュール804によって制約と比較される測定されたメトリックを得るために、メディアプログラムの、シングルパストランスコードが施されたバージョンを解析する解析サブモジュールを含む。例えば、制約決定器モジュール804は、メディアプログラムの、シングルパストランスコードが施されたバージョンの瞬間ビットレートを測定してもよく、また、この測定された瞬間ビットレートと、メディアプログラムの時間的部分に関する最大ビットレートY秒を上回るXMbpsを記述した制約とを比較してもよい。例えば、制約803が、瞬間ビットレートが10秒を上回って40Mbpsを超えないことである場合、制約決定モジュール803は、該制約が満たされているか否かを判定するために、この制約と、トランスコードされたメディアプログラムの第1のバージョン504の測定された瞬間ビットレートとを比較する。他の測定されたメトリクスおよび関連する制約803が使用されてもよい。このようなメトリクスは、トランスコードされたメディアプログラムの第1のバージョン504の全体に関するピークおよび/または平均のビットレート、トランスコードされたメディアプログラムの第1のバージョン504の瞬間ビットレートの分散、トランスコードされたメディアプログラムの第1のバージョン504のサイズ、またはトランスコーダ502への任意の入力パラメータ801を反映したメトリクス例えば、平均のもしくは瞬間のテクスチャの複雑度Tu,tまたは動きの複雑度Mu,tを含むことができる。メディアプログラムの、シングルパストランスコードが施されたバージョン504の全体が、すべての指定された制約803を満たしている場合、メディアプログラムの、シングルパストランスコードが施されたバージョン504は、図8に示されているように、トランスコードされたメディアプログラム504として提供されてもよい。しかしながら、メディアプログラムのシングルパストランスコードが施されたバージョン504の全体が、指定された制約のすべてを満たしていない場合、失敗された制約および値806、ならびに、メディアプログラムの、シングルパストランスコードが施されたバージョンの、制約に失敗した時間的部分を記述している時間区間は、さらなる処理のために転送される。しかしながら、メディアプログラムの、シングルパストランスコードが施されたバージョン504の少なくとも一部が、入力制約803のすべてを満たしていない場合、調節された入力パラメータ値810を使用する、第2のパスのトランスコーディングが、メディアプログラムの、シングルパストランスコードが施されたバージョン504の、制約を満たしていない部分に対して実行される。図8に示されているように、これは、失敗された制約および値806を調節モジュール808に提供することによって、実行することができる。また、出力パラメータおよびパラメータ値802ならびに入力パラメータおよびパラメータ値801が、調節モジュール808に提供されてもよい。調節モジュール808は、調節されたパラメータ810に達するために、この情報を使用し、この調節されたパラメータ810を、トランスコーダ811は、メディアプログラムの、シングルパストランスコードが施されたバージョンの、制約に失敗した部分と交換するための、第2のパスのトランスコードが施されたバージョンを生成するために使用する。このタスクを実行するために、トランスコーダ811は、調節されたパラメータ810と、ソースメディアプログラム500と、メディアプログラムの、第2のパスのトランスコードが施されたバージョン812が求められている時間区間とを受け取り、メディアプログラムの、第2のパスのトランスコードが施されたバージョン812を生成するために、ソースメディアプログラムの選択された区間または部分をトランスコードする。上述した実施形態では、入力パラメータ801は、メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するようトランスコーダ502に指示し、制約決定モジュール804は、瞬間ビットレートを測定するために、メディアプログラムの一定映像品質バージョンを解析し、この測定された値と、瞬間ビットレートがY秒を上回ってXMbpsを超えるべきではないという制約とを比較した。ここで、この例示的な実施形態に戻ると、制約決定モジュール804から調節モジュール808に提供された失敗された制約および値806は、例えば、表1を含む場合がある。調節モジュール808は、この情報を受け取り、制約が違反されている時間区間に関してメディアプログラムの、第2のパスのトランスコードが施されたバージョン812を生成するようトランスコーダ811に命令するために、調節された入力パラメータ値810を生成し、これにより、メディアプログラムの、第2のパスのバージョンは、メディアプログラムの、第1のパスのバージョンに継ぎ合わされたとき、結果として得られた組み合わせは、制約803のすべてを満たすようになる。この場合、失敗された制約803が、トランスコードされたメディアプログラムの時間区間に関する瞬間最大ビットレートであることから、調節モジュール808は、最大ビットレートが超えられた時間区間に関して制約803を満たすビットレートを有する、ソースメディアプログラムの一定ビットレートバージョン812を生成するようトランスコーダ811に命令する。このタスクを実行するために、トランスコーダ811には、調節された入力パラメータおよび値810ならびにソースメディアプログラム500が提供される。制約が40Mbpsの瞬間最大ビットレートである例では、調節されたパラメータおよび値810は、40Mbpsの瞬間最大ビットレートを上回らない、メディアプログラムの、一定のビットレートにトランスコードされたバージョン812を生成するようトランスコーダ811に命令する。この処理は、第2のトランスコーダ811を用いて実行されてもよいが、前述の演算は、メディアプログラムの、シングルパストランスコードが施されたバージョン504を生成するために使用されたのと同じトランスコーダ512を用いて実行されてもよい。次に、メディアプログラムの、第2のパスのトランスコードが施されたバージョン812は、スプライサ814に供給され、スプライサ814は、スプライシング演算splicingoperationによって、メディアプログラムの、シングルパストランスコードが施されたバージョン504の、制約が満たされなかった部分または区間を、メディアプログラムの、第2のパスのトランスコードが施されたバージョン812によって置換する。例えば、1:30:22~1:31:41の時間区間にわたって最大ビットレートが超えられた上記の場合において、トランスコーダ811は、1:30:22~1:31:41の時間区間に関してメディアプログラムの、一定のビットレートにトランスコードされたバージョン812を生成し、これによってメディアプログラムの、シングルパストランスコードが施されたバージョン504の、制約を満たさなかった部分を置換する。結果として、所望の高い映像品質を提供し、かつ最大ビットレート制約を超えないメディアプログラムの2パストランスコードが施されたバージョン816が得られる。一実施形態では、メディアプログラムの、第1のパスのトランスコードが施されたバージョン504は、Iフレーム、Pフレーム、およびBフレームを含む複数のフレームを備える。Iフレームは、シングルフレームの圧縮されたバージョンであるイントラコード化フレームである。PフレームおよびBフレームとは異なり、Iフレームは、前のフレームまたは後のフレームのデータに依存しない。Pフレームは、Iフレームよりも高い圧縮を実現する。なぜなら、Pフレームは、前のIフレームまたはPフレーム参照フレームの情報を使用し、これにより、Pフレームを生成するこのとき、前のIフレームまたはPフレームが最初に再構成されなければならないからである。Bフレームは、Bフレームが、前の参照フレームの画像だけでなく、後の参照フレームの画像を使用する点を除いて、Pフレームと同様である。結果として、Bフレームは、通常、Pフレームよりも高い圧縮を実現する。Bフレームは、決して参照フレームにはならない。一般に、おおよそ15番目のフレームごとに、Iフレームが生成される。PフレームおよびBフレームは、ΙΒΒΡΒΒΡΒΒΡΒΒIのように、画像群GroupOfPicturesGOPを形成するようにIフレームの後に続いてもよい。図9は、第1のパスのトランスコードが施されたメディアプログラム504を備えることができる、I、P、およびBフレームの系列の一実施形態を示している図である。一実施形態では、メディアプログラムの、第2のパスのトランスコードが施されたバージョン812によって、メディアプログラムの、シングルパストランスコードが施されたバージョンの部分が、より容易に置換されることを可能にするために、メディアプログラムの、第2のパスのトランスコードが施されたバージョンは、制約が満たされなかった区間にわたる最小整数の画像群を備える。例えば、図9に示されている例では、メディアプログラムの、第1のパスのトランスコードが施されたバージョン504の、制約が満たされなかった区間が、示されている。メディアプログラムの、第1のパスのトランスコードが施されたバージョン504のフレームは、GOP902A~902Dを含む。制約803が満たされなかった区間は、画像群902内で開始および/または終了するため、メディアプログラムの、第2のパスのトランスコードが施されたバージョン812は、依然として区間の全体にわたる最小整数の画像群を含むように生成される。多くのアクションまたは複雑な背景を有するシーンでは、より低い映像品質は、目立たないことが多いため、結果として得られた、トランスコードされたメディアプログラムの2パスバージョンは、シングルパスバージョンのものと区別できず、バンド幅が限られたリンクを介する伝送にはより一層適している。しかしながら、映像品質が不十分な場合、処理が、点線によって示されているようにトランスコーダ811から制約決定モジュール804にかけて、さらなるパス、および、異なる調節されたパラメータおよび値810によって、繰り返されてもよい。例えば、トランスコーダ811に提供されたテクスチャの複雑度Tnおよび/または動きの複雑度Mnが、映像品質を改善するために、または、瞬間最大ビットレートを低減するために、変更されてもよい。あるいは、調節されたパラメータおよび値が、さらなるパスにおいて、第2のパスに関して命令されたものよりも大きなまたは小さなビットレートを有する、メディアプログラムの一定ビットレートバージョンを生成するようトランスコーダ811に命令するために、変更されてもよい。結び以下は、本発明の好ましい実施形態の記載に関する結びである。本発明の好ましい実施形態に関するこれまでの記載は、例示および説明の目的のために提示されてきた。これは、網羅的であること、または、本発明を開示されたまさにその形態に限定することを意図したものではない。上記の教示に基づいて、多くの修正例および変形例が可能である。本発明の範囲は、この詳細な記載によって限定されるわけではなく、正しくは、これに添付された特許請求の範囲によって限定されることが意図されている。上記の仕様、例、およびデータは、本発明の構成の製造および使用に関して完全な説明を与えている。本発明の多くの実施形態は、本発明の精神および範囲から逸脱することなく、実施することができることから、本発明は、以下に添付された特許請求の範囲に存する。"