(57)【要約】  ソースメディアプログラムをエンコードするための方法および機器が開示されている。一実施形態において、本方法は、メディアプログラムの一定の映像品質にトランスコードされたバージョンを生成するために、ソースメディアプログラムをトランスコードすることと、トランスコードされたメディアプログラムの一定映像品質バージョンの部分が制約を満たしそこなっているか否かを判定することと、トランスコードされたメディアプログラムの部分が制約を満たしそこなっている場合に、１組のトランスコードパラメータのうちの少なくとも１つのトランスコードパラメータを調節することと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンを生成するために、調節された少なくとも１つのトランスコードパラメータに応じて、ソースメディアプログラムの部分をトランスコードすることと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンによって、トランスコードされたメディアプログラムの一定映像品質部分を置換することとの各ステップを備える。【選択図】図８
2014505400.tif 000002
【特許請求の範囲】
【請求項１】
ソースメディアプログラムをエンコードする方法であって、
（ａ）前記メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、前記ソースメディアプログラムをトランスコードすることと、
（ｂ）前記トランスコードされたメディアプログラムの一定映像品質バージョンの部分が、制約を満たしそこなっているか否かを判定することと、
（ｃ）前記トランスコードされたメディアプログラムの前記部分が、前記制約を満たしそこなっている場合に、１組のトランスコードパラメータのうちの少なくとも１つのトランスコードパラメータを調節することと、
（ｄ）前記トランスコードされたメディアプログラムの前記部分の一定ビットレートバージョンを生成するために、前記調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードすることと、
（ｅ）前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンによって、前記トランスコードされたメディアプログラムの前記一定映像品質部分を置換することと、
の各ステップを備える方法。
【請求項２】
前記１組のパラメータは、テクスチャの複雑度、映像の複雑度、動きの複雑度、および画像レートを含み、
前記方法は、瞬間ビットレートを備える群から選択される、トランスコードされた映像の情報を提供するために、前記トランスコードされたメディアプログラムの一定映像品質バージョンを解析することのステップをさらに備える、
請求項１に記載の方法。
【請求項３】
（ｇ）前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定することと、
（ｈ）前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっている場合に、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記１組のパラメータのうちの前記少なくとも１つのパラメータをさらに調節し、前記ステップ（ｇ）を繰り返し、その後、前記ステップ（ｅ）を実行することと、
の各ステップをさらに備える、請求項１に記載の方法。
【請求項４】
（ｇ）前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定することと、
（ｈ）前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっている場合に、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記１組のパラメータのうちの別のパラメータを調節し、前記ステップ（ｇ）を繰り返し、その後、前記ステップ（ｅ）を実行することと、
の各ステップをさらに備える、請求項１に記載の方法。
【請求項５】
前記１組のパラメータのうちの前記別のパラメータを調節することの前記ステップは、トランスコードされた映像のテクスチャの複雑度を低減するために、前記トランスコードされた映像のテクスチャの複雑度のパラメータを調節することのステップを備える、請求項４に記載の方法。
【請求項６】
前記制約は、前記メディアプログラムの前記部分の間の瞬間最大ビットレートである、請求項１に記載の方法。
【請求項７】
前記メディアプログラムの前記部分は、前記メディアプログラムの前記部分にわたる最小整数の画像群を備える、請求項１に記載の方法。
【請求項８】
ソースメディアプログラムをエンコードするための機器であって、
前記メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、前記ソースメディアプログラムをトランスコードするための手段と、
前記トランスコードされたメディアプログラムの前記一定映像品質バージョンの部分が、制約を満たしそこなっているか否かを判定するための手段と、
前記トランスコードされたメディアプログラムの前記部分が、前記制約を満たしそこなっている場合に、１組のトランスコードパラメータのうちの少なくとも１つのトランスコードパラメータを調節するための手段と、
前記トランスコードされたメディアプログラムの前記部分の一定ビットレートバージョンを生成するために、前記調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードするための手段と、
前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンによって、前記トランスコードされたメディアプログラムの前記一定映像品質部分を置換するための手段と、
の各ステップを備える機器。
【請求項９】
前記１組のパラメータは、テクスチャの複雑度、映像の複雑度、動きの複雑度、および画像レートを含み、
前記機器は、瞬間ビットレートを備える群から選択される、トランスコードされた映像の情報を提供するために、前記トランスコードされたメディアプログラムの前記一定映像品質バージョンを解析するための手段をさらに備える、
請求項８に記載の機器。
【請求項１０】
前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定するための手段と、
前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記１組のパラメータのうちの前記少なくとも１つのパラメータをさらに調節し、前記さらに調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分を繰り返しトランスコードするための手段と、
をさらに備える、請求項８に記載の機器。
【請求項１１】
前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが、前記制約を満たしそこなっているか否かを判定するための手段と、
前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記１組のパラメータのうちの別のパラメータを調節し、前記さらに調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分を繰り返しトランスコードするための手段と、
の各ステップをさらに備える、請求項８に記載の機器。
【請求項１２】
前記１組のパラメータのうちの前記別のパラメータを調節するための前記手段が、トランスコードされた映像のテクスチャの複雑度を低減するために、前記トランスコードされた映像のテクスチャの複雑度のパラメータを調節するための手段を備える、請求項１１に記載の機器。
【請求項１３】
前記制約は、前記メディアプログラムの前記部分の間の瞬間最大ビットレートである、請求項８に記載の機器。
【請求項１４】
前記メディアプログラムの前記部分は、前記メディアプログラムの前記部分にわたる最小整数の画像群を備える、請求項８に記載の機器。
【請求項１５】
ソースメディアプログラムをエンコードするための機器であって、
前記メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、前記ソースメディアプログラムをトランスコードするための第１のトランスコーダと、
前記トランスコードされたメディアプログラムの一定映像品質バージョンの部分が、制約を満たしそこなっているか否かを判定する制約決定モジュールと、
前記トランスコードされたメディアプログラムの前記部分が、前記制約を満たしそこなっている場合に、１組のトランスコードパラメータのうちの少なくとも１つのトランスコードパラメータを調節するための調節モジュールと、
前記トランスコードされたメディアプログラムの前記部分の一定ビットレートバージョンを生成するために、前記調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードするための第２のトランスコーダと、
前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンによって、前記トランスコードされたメディアプログラムの前記一定映像品質部分を置換するためのスプライサと、
の各ステップを備える機器。
【請求項１６】
前記１組のパラメータは、テクスチャの複雑度、映像の複雑度、動きの複雑度、および画像レートを含み、
前記制約決定モジュールは、瞬間ビットレートを備える群から選択される、トランスコードされた映像の情報を提供するために、前記トランスコードされたメディアプログラムの前記一定映像品質バージョンを解析するための解析モジュールをさらに備える、
請求項１５に記載の機器。
【請求項１７】
前記制約決定モジュールは、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たしそこなっているか否かをさらに判定し、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記調節モジュールは、前記１組のパラメータのうちの前記少なくとも１つのパラメータをさらに調節し、前記第２のトランスコーダは、前記さらに調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分を繰り返しトランスコードする、
請求項１５に記載の機器。
【請求項１８】
前記制約決定モジュールは、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たしそこなっているか否かをさらに判定し、前記トランスコードされたメディアプログラムの前記部分の前記一定ビットレートバージョンが前記制約を満たすまで、前記調節モジュールは、前記１組のパラメータのうちの別のパラメータを調節し、前記トランスコーダは、前記さらに調節された少なくとも１つのトランスコードパラメータに応じて、前記ソースメディアプログラムの前記部分をトランスコードする、
請求項１５に記載の機器。
【請求項１９】
前記調節モジュールは、トランスコードされた映像のテクスチャの複雑度を低減するために、前記トランスコードされた映像のテクスチャの複雑度のパラメータを調節する、請求項１８に記載の機器。
【請求項２０】
前記制約は、前記メディアプログラムの前記部分の間の瞬間最大ビットレートである、請求項１５に記載の機器。
【請求項２１】
前記メディアプログラムの前記部分は、前記メディアプログラムの前記部分にわたる最小整数の画像群を備える、請求項１５に記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアプログラム（ｍｅｄｉａ  ｐｒｏｇｒａｍ）をトランスコードするためのシステムおよび方法に関し、とりわけ、メディアプログラムのハイブリッドトランスコーディングのためのシステムおよび方法に関する。
【背景技術】
【０００２】
メディアプログラムの普及および再生は、この１０年の間に本質的な変化を経てきた。以前は、アナログ放送（従来型の放送、衛星放送、もしくはケーブル放送）または映画館へのフィルムの配給のいずれかによって、メディアプログラム（これは、音声、映像、またはこれら双方を含む場合がある）は普及されていた。
【０００３】
これらの従来の普及手段および再生手段は、デジタル技術の登場の後も使用され続けている。しかしながら、デジタル技術は、メディアプログラムの普及および再生に大きな影響を与えてきた。特に、デジタル技術は、ＤＳＬ、光ファイバー（ｆｉｂｅｒ  ｏｐｔｉｃｓ）、ケーブル、または衛星通信によって構築されたバンド幅の大きな通信リンクを使用したインターネットを介して、大量のメディアプログラムの普及および再生を可能にしてきた。インターネットを介するこのようなメディアプログラムの普及は、シンプルダウンロード、プログレッシブダウンロード、またはストリーミングを含む場合がある。
【発明の概要】
【０００４】
メディアプログラムは、一般に、鑑賞または記録を行う加入者への伝送の前に、トランスコードされる。トランスコーディングは、メディアプログラムをあるデジタル形式から別の形式へ、一般には、生のデジタルフォーマット（音声に関するパルス符号変調（ＰＣＭ）および映像に関する色空間（ＹＵＶ）などの）から圧縮デジタルフォーマット（ＭＰＥＧ（動画専門家集団（ｍｏｔｉｏｎ  ｐｉｃｔｕｒｅｓ  ｅｘｐｅｒｔ  ｇｒｏｕｐ））またはＨ．２６４／ＭＰＥＧ−４  ＡＶＣフォーマットなどの）へ変換する処理である。トランスコーディングは、関連メディアプログラムをサイズが縮小されたものへ大幅に圧縮することができる。実際、インターネットを介するメディアプログラムの伝送は、このような圧縮がなければ、大部分は実行不可能だったであろう。しかしながら、このようなトランスコーダは、多くの場合に、利用可能なバンド幅（特に、トランスコードされたメディアプログラムのビットレートが時間的に可変である場合）および通信チャネルの使用を最大化するような仕方でメディアプログラムのトランスコーディングを可能にしているわけではない。本発明は、このような必要性を満たすものである。
【課題を解決するための手段】
【０００５】
上述された要求に対処するために、本発明は、ソースメディアプログラムをエンコードするための方法および機器について開示する。一実施形態では、本方法は、メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、ソースメディアプログラムをトランスコードすることと、トランスコードされたメディアプログラムの一定映像品質バージョンの部分が制約を満たしそこなっているか否かを判定することと、トランスコードされたメディアプログラムの部分が制約を満たしそこなっている場合に、１組のトランスコードパラメータのうちの少なくとも１つのトランスコードパラメータを調節することと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンを生成するために、調節された少なくとも１つのトランスコードパラメータに応じて、ソースメディアプログラムの部分をトランスコードすることと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンによって、トランスコードされたメディアプログラムの一定映像品質部分を置換することとの各ステップを備える。別の実施形態では、本機器は、メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するために、ソースメディアプログラムをトランスコードするための第１のトランスコーダと、トランスコードされたメディアプログラムの一定映像品質バージョンの部分が制約を満たしそこなっているか否かを判定する制約決定モジュールと、トランスコードされたメディアプログラムの部分が制約を満たしそこなっている場合に、１組のトランスコードパラメータのうちの少なくとも１つのトランスコードパラメータを調節するための調節モジュールと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンを生成するために、調節された少なくとも１つのトランスコードパラメータに応じて、ソースメディアプログラムの部分をトランスコードするための第２のトランスコーダと、トランスコードされたメディアプログラムの部分の一定ビットレートバージョンによって、トランスコードされたメディアプログラムの一定映像品質部分を置換するためのスプライサとを備える。
【０００６】
次に、図面を参照するが、図面において、同一の参照符号は、全体にわたって、対応する部品を示している。
【図面の簡単な説明】
【０００７】
【図１】図１は、例示的なメディアプログラムシステムを示している図である。
【図２】図２は、本発明の原理を実施するために使用することができる例示的な処理システムを示している図である。
【図３】図３は、コンテンツ配布サブシステム（ｃｏｎｔｅｎｔ  ｄｅｌｉｖｅｒｙ  ｓｕｂｓｙｓｔｅｍ）の第１の実施形態を示している図である。
【図４】図４は、ライブストリーミングプロトコルに従う、メディアプログラムの伝送を示している図である。
【図５】図５は、一般的なエンコード処理を示している図である。
【図６】図６は、トランスコードされた様々なメディアプログラムの映像品質とビットレートとの関係を示している図である。
【図７】図７は、目標の映像品質にエンコードした後の多数の様々なメディアプログラムのＳＳＩＭを示している図である。
【図８】図８は、適応的なトランスコード処理、または、２パストランスコード処理を示している図である。
【図９】第１のパスのトランスコードが施されたメディアプログラム（ｆｉｒｓｔ  ｐａｓｓ  ｔｒａｎｓｃｏｄｅｄ  ｍｅｄｉａ  ｐｒｏｇｒａｍ）を備えることができる、Ｉ、Ｐ、およびＢフレームの系列の一実施形態を示している図である。
【発明を実施するための形態】
【０００８】
以下の説明では、本明細書の一部を形成しており、また、例示として本発明の複数の実施形態が示されている添付図面を参照する。本発明の範囲から逸脱しなければ、他の実施形態が利用されてもよく、また、構造的変更が行われてもよいことが理解される。
【０００９】
図１は、例示的なメディアプログラムシステム１００を示している図である。図示されている実施形態では、システム１００は、インターネットなどの通信ネットワーク１０４と通信可能に接続された１つ以上のメディアプログラムソース１２０Ａ、１２０Ｂを備えることができ、これらメディアプログラムソース１２０Ａ、１２０Ｂは、それぞれ、１つ以上のソース映像サーバ１２２Ａ、１２２Ｂを有し、これらソース映像サーバ１２２Ａ、１２２Ｂは、１つ以上のソースメディアプログラムデータベース１２４Ａ、１２４Ｂと通信可能に接続されている。メディアプログラムシステム１００は、メディアプログラムプロバイダ１１０をさらに備え、メディアプログラムプロバイダ１１０は、通信ネットワーク１０４と通信可能に接続され、また、１つ以上のプロバイダ映像サーバ１１２および１つ以上のプロバイダデータベース１１４を有する。一実施形態では、メディアプログラムプロバイダ１１０は、ビデオ・オン・デマンドおよび／またはストリーミング用のメディアプログラムプロバイダである。しかしながら、メディアプログラムプロバイダ１１０は、この代わりに、シンプルダウンロードまたはプログレッシブダウンロードによって、メディアプログラムを伝送してもよい。
【００１０】
メディアプログラムシステム１００は、コンピュータなどの第１のユーザ装置１０２Ａ、または、携帯電話などの第２のユーザ装置１０２Ｂ（以後、これらに代えてユーザ装置１０２と呼ぶ）にメディアプログラムを伝送する。この伝送は、メディアプログラムプロバイダ１１０から直接行われる場合もあるし、または、メディアプログラムプロバイダ１１０は、ポータルとして機能する場合もあり、この場合は、メディアプログラム自体ではなく、メディアプログラムソース１２０Ａおよび１２０Ｂから入手可能なメディアプログラムへのインターフェースを提供する（メディアプログラムは、代わりに、メディアプログラムソース１２０によって提供される）。
【００１１】
第１の場合、メディアプログラムプロバイダ１１０は、メディアプログラムソース１２０（ｗｗｗ．ｆｏｘ．ｃｏｍまたはｗｗｗ．ｎｂｃ．ｃｏｍなどの）からメディアプログラムを認可し、このようなプログラムに関するメタデータがさらに、一般的には、メディアプログラムソース１２０からメディアプログラムプロバイダ１１０に同様に提供される。このようなメタデータは、使用のために、メディアプログラムプロバイダのデータベース１１４によって検索され得る。補助的なメタデータが必要とされる場合、補助的なメタデータは、以下でさらに説明するように、メディアプログラムプロバイダ１１０およびメディアプログラムソース１２０から独立しているメタデータソース１３０から得ることができる。
【００１２】
第２の場合、メディアプログラムは、メディアプログラムソース１２０のサーバから直接、ユーザ装置１０２にストリームされる。メディアプログラムが、メディアプログラムソース１２０から直接ストリームされる場合、メディアプログラムソース１２０によって提供されるメタデータが不十分であることがしばしばある。このような場合、補助的なメタデータは、独立のメタデータソース１３０（ｗｗｗ．ｔｖ．ｃｏｍもしくはｗｗｗ．ｉｍｄｂ．ｃｏｍなどの）または他のサード・パーティ・ソースから得ることができる。この状況において、メディアプログラムプロバイダ１１０の役割は、利用可能なメディアプログラムのリスト、および、このようなプログラムを検索して見つけ出し、これを観るためのインターフェースをユーザ１３２に提供するポータルとしての役割である。
【００１３】
メディアプログラムおよびメタデータは、インターネットなどの通信ネットワーク１０４または補助的な（および／もしくは専用の）通信リンク１３４）を介して、得られてもよい。このような情報は、ウェブクローリング（ｗｅｂｃｒａｗｌｉｎｇ）（例えば、組織的な自動化された方法でワールド・ワイド・ウェブをブラウズするプログラムまたは自動化スクリプトを使用する）によって得られてもよい。
【００１４】
ユーザ装置１０２を用いて、遠くのユーザ１３２は、メディアプログラム（ビデオ・オン・デマンドおよび／またはストリーミングの映像サービスを含む）を得るために、および、関心対象のメディアプログラムを見つけることを目的としてプロバイダメディアプログラムデータベース１１４を検索するために、通信ネットワーク１０４を利用してメディアプログラムプロバイダ１１０と通信することができる。
【００１５】
また、メディアプログラムシステム１００は、１つ以上の広告プロバイダ１４０を備えてもよく、広告プロバイダ１４０は、メディアプログラムプロバイダ１１０またはメディアプログラムソース１２０によって提供されるメディアプログラムと共に再生される広告を供給する。図示されている実施形態では、広告プロバイダ１４０は、通信可能に接続された関連の広告プロバイダデータベース１４４と通信可能に接続された広告プロバイダサーバ１４２を含む。
【００１６】
広告は、インターネット１０４、専用のリンク１４６を介して、または、広告を有するメモリストレージデバイスの物理的交換によって、広告プロバイダ１４０からメディアプログラムプロバイダ１１０に供給されてもよい。このような広告は、メディアプログラムプロバイダ１１０に提供され、メディアプログラムプロバイダ１１０によって記憶され、適切な時点で、メディアプログラムと共にユーザ装置１０２にストリームされるか、または、ダウンロードされてもよい。
【００１７】
一実施形態では、広告は、メディアプログラムプロバイダ１１０からストリームまたはダウンロードされる映像と一体化される。別の実施形態では、広告は、メディアプログラムと一体化されないが、この代わりに、メディアプログラムとは別にユーザ装置１０２に伝送され、各広告がいつ表示されるべきかを示すインデックスを用いて、適切な時点で再生される。例えば、広告は、インデックスを付けられて、ユーザ装置１０２に（メディアプログラムプロバイダ１１０または広告プロバイダ１４０から）ストリームされるか、または、ダウンロードされることが可能であり、このような広告は、メディアプログラムの対応するインデックスによって示された時点で、ユーザ１３２に対して再生することができる。
【００１８】
図２は、本発明の原理を実施するために使用することができる例示的な処理システム２０２を示しており、この処理システム２０２は、ユーザ装置１０２と、サーバ１１２、１２２、および１４２と、データベース１１４、１２４、および１４４とを含む。コンピュータ２０２は、汎用ハードウェアプロセッサ２０４Ａおよび／または専用ハードウェアプロセッサ２０４Ｂ（以後、これらの代わりに、一括してプロセッサ２０４と呼ぶ）、ならびに、ランダム・アクセス・メモリ（ＲＡＭ）などのメモリ２０６を備える。コンピュータ２０２は、キーボード２１４、マウス装置２１６、およびプリンタ２２８などの入力／出力（Ｉ／Ｏ）装置を含む他の装置と接続されてもよい。
【００１９】
一実施形態では、コンピュータ２０２は、オペレーティングシステム２０８の制御下で、コンピュータプログラム２１０によって規定された命令を実行する汎用プロセッサ２０４Ａによって動作する。コンピュータプログラム２１０および／またはオペレーティングシステム２０８は、メモリ２０６に記憶されてもよく、また、入力およびコマンドを受け取り、このような入力およびコマンド、ならびに、コンピュータプログラム２１０およびオペレーティングシステム２０８によって規定された命令に基づいて、出力および結果を提供するために、ユーザ１３２および／または他の装置とインターフェースで接続されてもよい。
【００２０】
出力／結果は、ディスプレイ２２２に表示されてもよいし、または、表示またはさらなる処理もしくはアクションのために別の装置に提供されてもよい。一般に、ディスプレイ２２２は、ユーザ１３２に対して画像を集合的に表示するために状態を変化させる複数の画素（ピクセル）を備える。例えば、ディスプレイ２２２は、別々にアドレス指定可能な複数のピクセルを有する液晶ディスプレイ（ＬＣＤ）を備えてもよく、これらの別々にアドレス指定可能な複数のピクセルは、それぞれ、入力およびコマンドに応じた、コンピュータプログラム２１０および／またはオペレーティングシステム２０８の命令の適用によってプロセッサ２０４により生成されたデータまたは情報に応答してディスプレイ上の画像の一部を形成するために不透明状態または半透明状態に変化する液晶を有する。同様に、プラズマディスプレイは、それぞれが異なる色蛍光体を有する３つの別個のサブピクセルセルを有するピクセルを含む。これらの色は、ピクセルに表示される色を生成するために混ざり合う。セルを流れる電流のパルスは、入力およびコマンドに応じた、コンピュータプログラムおよび／またはオペレーティングシステム２０８の命令の適用によってプロセッサにより生成されるデータに応じて、変化し、ピクセルによって与えられる光の強度を変化させる。また、同様に、陰極線管（ＣＲＴ）ディスプレイは、複数のピクセルを含み、これら複数のピクセルは、それぞれ、一般にはドットまたはアパーチャグリルの線によって表示されるサブピクセルを有するピクセルのそれぞれを有する。ドットまたは線のそれぞれは、電子銃からの電子が衝突すると発光する蛍光体被覆を含む。コンピュータプログラムおよび／またはオペレーティングシステム２０８の命令の適用によってプロセッサにより生成されたデータに応答して、および、入力およびコマンドに応答して、電子銃によって発射される電子は、ドットまたは線に向けられ、この結果、当該のドットまたは線の蛍光体被覆を発光させることによって関連するピクセルの状態を変化させる。
【００２１】
画像は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）モジュール２１８Ａを介して、提供されてもよい。ＧＵＩモジュール２１８Ａは、別個のモジュールとして描かれているが、ＧＵＩ機能を実行する命令は、オペレーティングシステム２０８、コンピュータプログラム２１０に内蔵されてもよいし、もしくは、分散されてもよく、または、専用のメモリおよびプロセッサによって実現されてもよい。
【００２２】
コンピュータプログラム１１０の命令に応じてコンピュータ２０２によって実行される演算の一部または全部は、専用プロセッサ２０４Ｂにおいて実行されてもよい。この実施形態では、コンピュータプログラム２１０の命令の一部または全部は、専用プロセッサ２０４Ｂ内のリード・オンリー・メモリ（ＲＯＭ）、プログラム可能なリード・オンリー・メモリ（ＰＲＯＭ）、もしくはフラッシュメモリに、または、メモリ２０６に記憶されたファームウェア命令によって実行されてもよい。また、専用プロセッサ２０４Ｂは、本発明を実施する演算の一部または全部を実行するように、回路設計によってハード的に実現されてもよい。さらに、専用プロセッサ２０４Ｂは、複数の機能のサブセットを実行するための専用の回路、および、コンピュータプログラム命令に応答することなどのより一般的な機能を実行するための他の回路を含むハイブリッドプロセッサであってもよい。一実施形態では、専用プロセッサは、特定用途向け集積回路（ＡＳＩＣ）である。
【００２３】
また、コンピュータ２０２は、ＣＯＢＯＬ、Ｃ＋＋、ＦＯＲＴＲＡＮ、または他の言語などのプログラミング言語で書かれたアプリケーションプログラム２１０がプロセッサ２０４によって読み取り可能なコードに翻訳されることを可能にするコンパイラ２１２を実装してもよい。完了の後、アプリケーションまたはコンピュータプログラム２１０は、コンパイラ２１２を用いて生成された関係および論理を用いて、Ｉ／Ｏ装置から受け取られたデータ、および、コンピュータ２０２のメモリ２０６に記憶されたデータにアクセスし、処理を行う。
【００２４】
また、コンピュータ２０２は、随意に、モデム、衛星リンク、イーサネット（登録商標）カード、または他のコンピュータからの入力を受け付け、他のコンピュータに出力を提供するための他の装置などの外部通信装置を備える。
【００２５】
一実施形態では、オペレーティングシステム２０８、コンピュータプログラム２１０、およびコンパイラ２１２を実現する命令は、有形物として、コンピュータ読み取り可能な媒体（例えば、データ記憶装置２２０）において具現化される。このようなコンピュータ読み取り可能な媒体は、ＺＩＰドライブ、フロッピー（登録商標）ディスクドライブ２２４、ハードドライブ、ＣＤ−ＲＯＭドライブ、テープドライブ、ＤＶＤなどの、１つ以上の固定のまたは取り外し可能なデータ記憶装置を含む場合がある。さらに、オペレーティングシステム２０８およびコンピュータプログラム２１０は、コンピュータ２０２によってアクセス、読み取り、および実行されたときに、コンピュータ２０２に、本発明の実施および／もしくは使用に必要な複数のステップを実行させるか、または、複数の命令から構成されたプログラムをメモリにロードさせ、これにより、本明細書に記載されている複数の方法ステップを実行する特別にプログラムされたコンピュータとしてコンピュータを動作させる専用のデータ構造を形成する複数のコンピュータプログラム命令から構成される。また、コンピュータプログラム２１０および／または動作命令は、有形物として、メモリ２０６および／またはデータ通信装置２３０において具現化され、この結果、本発明に係るコンピュータプログラムの製品または製造品が作られてもよい。このように、本明細書で使用されているような「製造品」、「プログラム記憶装置」、および「コンピュータプログラム製品」という用語は、コンピュータ読み取り可能な任意の装置または媒体からアクセス可能なコンピュータプログラムを含むことが意図されている。
【００２６】
言うまでもなく、当業者ならば分かるように、上記構成部品の任意の組み合わせ、または、任意の数の様々な構成部品、周辺機器、および他の装置が、コンピュータ２０２と共に使用されてもよい。
【００２７】
本明細書では「ユーザコンピュータ」またはユーザ装置という用語に言及されているが、ユーザコンピュータまたはコンピュータは、携帯電話、ポータブルＭＰ３プレイヤー、ビデオゲーム機、ノートブックコンピュータ、ポケットコンピュータ、パーソナル・データ・アシスタント（ｐｅｒｓｏｎａｌ  ｄａｔａ  ａｓｓｉｓｔａｎｔ）（ＰＤＡ）、または適切な処理、通信、および入力／出力の機能を有する任意の他の装置などのポータブル装置を含む場合があることが理解される。
【００２８】
図３は、選択および表示のために、ユーザ１３２にメディアプログラムを提供し、配布するために使用することができるコンテンツ配布サブシステム（ＣＤＳ）３００およびトップレベルの動作の第１の実施形態を示している図である。図示されている実施形態では、コンテンツ配布サブシステム３００は、ユーザ装置１０２と、メディアプログラムプロバイダ１１０と、広告プロバイダ１４０とを含む。
【００２９】
図示されている実施形態では、メディアプログラムプロバイダ１１０は、コンテンツ管理サービス３１０と、広告サービス３１６と、フィードサービス３０６と、コンテンツセレクタ３０８とを備える。ＣＭＳ３１０は、利用可能なメディアプログラムに関するメタデータ、および、ユーザデータを含むデータをデータベース３２２に記憶している。
【００３０】
ユーザ１３２が、ユーザ装置１０２を用いてメディアプログラムを選択すると、選択されたメディアプログラムのメディアプログラム識別子（ＰＩＤ）を要求するメッセージが、ユーザ装置１０２からメディアプログラムプロバイダ１１０に伝送される。
【００３１】
フィードサービス３０６は、要求を受信し、コンテンツ管理サービス３１０を介してセキュアストレージ（ｓｅｃｕｒｅ  ｓｔｏｒａｇｅ）３１２またはデータベース３２２から得た情報を用いて、フィードサービス３０６は、選択されたメディアプログラムに関するＰＩＤを特定し、このＰＩＤをユーザ装置１０２に伝送する。ユーザ装置は、このＰＩＤおよびユーザＩＤをメディアプログラムプロバイダ１１０のコンテンツセレクタ３０８に伝送する。コンテンツセレクタ３０８は、情報をコンテンツ管理サービス３１０に転送し、コンテンツ管理サービス３１０は、セキュアストレージ３１２に記憶された情報を用いて、ユーザおよび選択されたメディアプログラムに適した広告を選択するために、広告サービス３１８を使用する。このことは、その出願が参照により本明細書に組み込まれる、２０１０年５月２６日付で提出されたＷｉｎｇ  Ｃｈｉｔ  Ｍａｋによる「高速かつスケーラブルな指向的広告サービス（ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＲＡＰＩＤ  ＡＮＤ  ＳＣＡＬＥＡＢＬＥ  ＤＩＲＥＣＴＥＤ  ＡＤＶＥＲＴＩＳＩＮＧ  ＳＥＲＶＩＣＥ）」という名称の同時係属中の米国特許出願第１２／７８７，６７９号明細書に記載されているような仕方で、達成されてもよい。コンテンツ管理サービス３１０は、この情報をコンテンツセレクタ３０８に転送し、コンテンツセレクタ３０８は、ユーザ装置１０２が、メディアサーバ１１４から選択されたメディアプログラムを、および、広告プロバイダ１４０から広告を得ることを可能にする情報を伝送する。図示されている実施形態では、この情報は、メディアサーバ１１４から所望のメディアプログラムを得ることのできるアドレス（例えば、ＵＲＬ）を含む。ユーザ装置１０２は、メディアプログラム要求を指定されたアドレスのメディアサーバ１１４に伝送する。メディアサーバ１１４は、セキュアストレージからメディアプログラムを検索し、メディアプログラムをユーザ装置１０２に伝送する。また、ユーザ装置１０２は、広告プロバイダ１２０から広告を要求し、同様にこれを受け取ることができる。
【００３２】
広告プロバイダ１４０およびメディアサーバ１１４は、メディアプログラムプロバイダ１１０とは別個のアーキテクチャエンティティ（ａｒｃｈｉｔｅｃｔｕｒａｌ  ｅｎｔｉｔｙ）として示されているが、広告プロバイダ１４０は、メディアプログラムプロバイダ１１０に統合されてもよい（すなわち、メディアプログラムプロバイダはさらに、広告を提供してもよい）。ＣＤＳ３００は、ｗｗｗ．ｈｕｌｕ．ｃｏｍ、ｗｗｗ．ｉｍｄｂ．ｃｏｍ、ｗｗｗ．ａｏｌ．ｃｏｍまたはｗｗｗ．ｍｓｎ．ｃｏｍを含む場合がある複数の配信ネットワークをまたいでメディアプログラムおよび広告を提供する手段を提供する。
【００３３】
メディアプログラムおよび広告コンテンツに関係するメタデータ、ならびに、ストリーミング情報は、メディアプログラムおよび広告がＣＤＳ３００内のどこで見つけることができるのかを記述したデータと同様に、コンテンツ配布システム３００のデータベース３１２および３２２に記憶されている。
【００３４】
ユーザ装置１０２は、インターフェースモジュール３０２およびメディアプログラムプレイヤー３０４を含んでもよい。インターフェースモジュール３０２は、ユーザ１３２に情報およびメディアプログラムを表示し、かつコマンドを含むユーザ入力を受け付けるために使用される、ユーザ装置１０２によって実行される命令を含む。例示的なユーザ装置１０２は、デスクトップコンピュータ、ラップトップコンピュータ、またはポータブル装置（ＩＰＯＤ、ＩＰＨＯＮＥ、ＩＰＡＤ、携帯電話、もしくはＰＡＬＭ装置などの）である。
【００３５】
図３に描かれているデータおよびメッセージの転送に関して、ＩＤに関する要求、フィードサービス３０６からのＰＩＤの受信、コンテンツセレクタ３０８へのＰＩＤおよびユーザＩＤの伝送、コンテンツセレクタ３０８からのＵＲＬおよびメタデータの受信、ならびにメディアプログラムおよび広告の要求は、一般に、比較的小さな情報またはメッセージの転送を伴う。しかしながら、メディアプログラムまたは広告の転送は、情報がリアルタイムまたはほぼリアルタイムでユーザに表示されるべきである場合、一般に、バンド幅のそれなりに大きなリンクを必要とするかなり大きな情報の転送を伴う。したがって、メディアプログラムおよび／または広告は、ユーザ装置１０２への伝送の前に、トランスコード処理によって圧縮される。
【００３６】
図４は、ライブストリーミングプロトコルに従う、メディアプログラムの伝送を示している図である。基本的には、このプロトコルは、ユーザ装置１０２がメディアプログラムを要求したときに、ユーザ装置１０２にメディアプログラムの小さなセグメントまたは「チャンク」に関する「プレイリスト」が提供される点を除いて、図３に示されているプロトコルと同様である。ユーザ装置１０２は、メディアプログラムの各チャンクを順番に伝送することを要求するためにプレイリストを使用し、また、各チャンクは、受信されると、処理されて、ユーザ１３２に表示されるメディアプログラムへ組み立てられる。
【００３７】
図４に示されているように、ユーザ装置１０２は、メディアプログラムのＰＩＤに関する要求をフィードサービス３０６に伝送する。この要求は、一般に、ユーザＩＤまたはこれのプロキシ、および、メディアプログラムに関する何らかの識別情報を備える。フィードサービス３０６は、この要求を受信し、セキュアストレージ３１２およびコンテンツのメタデータ／ストリーミング情報のデータベースから得られた情報を用いて、ＣＭＳ３１０から、要求されたメディアプログラムのＰＩＤを得る。次に、ＰＩＤは、ユーザ装置１０２に伝送される。次に、ユーザ装置は、ＰＩＤと共にメディアプログラム要求をコンテンツセレクタ３０８に伝送する。
【００３８】
この実施形態では、メディアプログラムは、ユーザ装置１０２からの要求に基づいてユーザ装置１０２に伝送することができる複数のセグメントまたはチャンクに分割される。どのセグメントを要求すべきか、および、どのような順番でこれらを要求すべきかについては、メディアプログラムプロバイダ１１０からユーザ装置１０２に伝送されるセグメントプレイリストによって決定される。
【００３９】
ライブストリーミングプロトコルは、メディアプログラムセグメントへのアドレスまたはＵＲＩを有するセグメントプレイリストをメディアプログラムプレイヤー３０４に伝送することを含む。メディアプログラムプレイヤー３０４は、セグメントプレイリストにあるアドレスまたはＵＲＩを用いて任意のセグメント（および、したがって、任意のフレーム）を検索するために必要な情報を有するため、インターフェース４００を実現しているユーザインターフェースモジュール３０２は、ナビゲーション要求に応じたメディアプログラムフレームを有するセグメントを決定し、このようなセグメントを要求し（これらが既に受信され、バッファリングされていない場合に）、先に示されたようなセグメントをもとにフレームを表示することによって、メディアプログラムナビゲーションコマンドに応答する。
【００４０】
図３に示されている実施形態と同様に、図４に示されているＩＤ、ＰＩＤに関する要求、メディアプログラム要求、セグメントプレイリスト、メディアプログラムセグメント要求、および広告セグメント要求は、大きなバンド幅を必要としない。しかしながら、メディアプログラムまたは広告セグメントの転送は、一般に、情報がリアルタイムまたはほぼリアルタイムでユーザに表示されるべきである場合、伝送の前に大幅に圧縮されなければならないかなり大きな情報の転送を含む。したがって、メディアプログラムおよび／または広告は、ユーザ装置１０２への伝送の前に、トランスコード処理によって圧縮される。図４に示されている伝送プロトコルは、主に、携帯ユーザ装置１０２および無線リンクに対して使用されるため、メディアプログラムおよび広告セグメントは、一般に、図３に示されている実施形態の場合よりもさらに圧縮される。
【００４１】
メディアプログラムは、ｎｐとして表現することができる、これの解像度によって特徴付けることができ、この場合、ｎは、再生される画像の垂直解像度（線）を表し、ｐは、順次走査（すなわち、非飛び越し走査方式の）画像を示している。顧客のインターネットサービスは、バンド幅に関して大きく異なるため、それぞれが異なる解像度（一般に４８０ｐ、３６０ｐ、２８８ｐ、または２４０ｐ）を有する、メディアプログラムの様々なバージョンが生成され得る。より低い解像度のバージョン（例えば、２４０ｐ）は、通信リンクのバンド幅がより低い場合に伝送され、より高い解像度のバージョン（例えば、４８０ｐ）は、通信バンド幅がこれを許す場合に伝送される。この機能は、一般に、推定バンド幅に基づいて適切なバージョンを選択するメディアプログラムプレイヤー３０４によって実現される。
【００４２】
メディアプログラムは、一般に、それぞれが異なる解像度を有する多数のバージョンにトランスコードされるが、コンテンツに関係なくすべてのメディアプログラムをトランスコードするために、同一のビットレートが一般に使用される。例えば、「ファミリーガイ（ＦＡＭＩＬＹ  ＧＵＹ）」というメディアプログラムシリーズおよび「プリズンブレイク（ＰＲＩＳＯＮ  ＢＲＥＡＫ）」というメディアプログラムシリーズの、３６０ｐにトランスコードされるバージョンは、双方とも、同一のビットレートを使用してトランスコードされ得る。しかしながら、これらのメディアプログラムは、異なる特徴（あるものは、より多くの動きおよびアクションを有する）を有するため、メディアプログラムは、同じ画質を達成しながらも、これらの異なる特徴を考慮して異なるビットレートでエンコードされるべきである。例えば、ファミリーガイのあるエピソードは、５５０Ｋｂｐｓまたは３５０Ｋｂｐｓのいずれでトランスコードされていようと、ほとんど同じに見えるが、プリズンブレイクが、わずか３５０Ｋｂｐｓでトランスコードされている場合、プリズンブレイクのアクション動画クリップには、コーディングアーチファクト（ｃｏｄｉｎｇ  ａｒｔｉｆａｃｔ）が、極めて鮮明に見える可能性がある。
【００４３】
図５は、一般的なエンコード処理を示している図である。映像プログラムなどのソースメディアプログラム５００は、トランスコーダ５０２に提供される。好ましい実施形態では、トランスコーダは、Ｈ．２６４の映像圧縮規格に準拠したトランスコーダであり、コンピュータプログラムを用いて、または、専用のプロセッサもしくは装置を用いて、汎用コンピュータに実装することができる。トランスコーダ５０２は、メディアプログラムの圧縮されたバージョン５０４を生成するために、ソース映像プログラムをエンコードする。トランスコーダ５０２は、トランスコードされたメディアプログラムのビットレートおよび品質を制御するために使用することができるパラメータ入力を受け取る。
【００４４】
図６は、トランスコードされた様々なメディアプログラムに関して映像品質とビットレートとの関係を示している図である。映像品質は、２つの画像間の類似性の基準である構造的類似性（ｓｔｒｕｃｔｕｒａｌ  ｓｉｍｉｌａｒｉｔｙ）（ＳＳＩＭ）指標によって測定される。ＳＳＩＭは、画像のウィンドウに関して計算される（一般に、輝度情報に対してのみ適用される）。この場合、共通のサイズＮ×Ｎを有する２つのウィンドウｘおよびｙの間の類似性の基準は、次のように定義される。
【数１】
2014505400.tif 000003
【００４５】
この場合、
μｘ＝ｘの平均、
μｙ＝ｙの平均、
σｘ２＝ｘの分散、
σｙ２＝ｙの分散、
σｘｙ＝ｘおよびｙの共分散、
ｃ１＝（ｋ１Ｌ）２、ｃ２＝（ｋ２Ｌ）２  弱い分母（ｗｅａｋ  ｄｅｎｏｍｉｎａｔｏｒ）によって割り算を安定させる２つの変数、
Ｌ＝ピクセル値のダイナミックレンジ（一般に、ビット数、画素）、
ｋ１＝０．０１、および
ｋ２＝０．０３
である。
【００４６】
図６に示されている図では、バンケット（ＢＡＮＱＵＥＴ）というメディアプログラムは、多くの動きおよび複雑な画像テクスチャを有し、一方、ナイト（ＮＩＧＨＴ）というメディアプログラムについては、暗いシーケンスを有し、細部がほとんどない。ファミリーガイは、アニメーションであり、したがって、テクスチャが、ほとんどないか、または、まったくなく、また、動きが少ない（アニメーションでは、一般に背景は一定である）。
【００４７】
０．９５という最低限のＳＳＩＭが、求められる場合、この結果は、ナイト（３０ｆｐｓの）およびファミリーガイ（５５ｆｐｓの）というメディアプログラムに関しては、約２００Ｋｂｐｓのビットレートによって達成することができることに留意すべきである。０．９５という最低限のＳＳＩＭを達成する（３０ｆｐｓにおいて）ために、バンケットというメディアプログラムは、ナイトまたはファミリーガイにとって必要なものと比べて大幅に大きな６００Ｋｂｐｓを必要とする。テストメディアプログラムに関しては、０．９５のＳＳＩＭを維持するために、２４ｆｐｓから３０ｆｐｓにフレームレートを増加させることは、３００Ｋｂｐｓから約４００Ｋｂｐｓへのビットレートの増加を必要とすることにも留意すべきである。
【００４８】
上述されているように、トランスコーダ５０２の性能は、パラメータおよび制御の入力によって制御することができる。１つのこのような制御入力は、メディアプログラムを特定の目標映像品質にエンコードするモードに入るようにトランスコーダ５０２に指示するが、結果として得られるトランスコードされるメディアプログラムのファイルサイズの制限または低減を行おうと試みるわけではない。このモードにおいて、結果として得られる映像の品質は、固定レート要素（ｃｏｎｓｔａｎｔ  ｒａｔｅ  ｆａｃｔｏｒ）、すなわち、ＣＲＦによって制御することができる。
【００４９】
図７は、目標の映像品質にエンコードした後の多数の異なるメディアプログラムのＳＳＩＭを示している図である。トランスコーダ５０２は、メディアプログラムを一定の品質にエンコードしようと試みるため、同じＣＲＦに従ってエンコードされたエンコード後のメディアプログラムは、図５において説明された一定でない品質のエンコードと比べて変動の少ない、映像品質（ＳＳＩＭ）値を有することに留意すべきである。
【００５０】
例えば、図５は、一定の映像品質のエンコードが選択されていない場合、４００Ｋｂｐｓのビットレートでの、バンケットというメディアプログラムのエンコードは、約０．９２５のＳＳＩＭをもたらし、同じビットレートでのファミリーガイのエンコードは、約０．９７５という大幅に良好な値をもたらし、差異が約０．０５となることを示している。一方、図７は、一定の映像品質のエンコードが選択された場合、結果として得られる映像品質（ＳＳＩＭ）は、特定のＣＲＦ値に関してメディアプログラム間で変動が少ないことを示している。例えば、２７．０の目標ＣＲＦに関して、バンケットのＳＳＩＭが約０．９８５である一方で、ファミリーガイのＳＳＩＭは０．９５であり、差異が約０．０３であることに留意すべきである。
【００５１】
図６および図７は、メディアプログラムが様々なＣＲＦ値でコードされる場合に、ビット節約の可能性があることを示している。例えば、０．９８という最低限のＳＳＩＭが求められる場合、ファミリーガイのようにテクスチャがほとんどないか、または、まったくなく、動きが限られており、また、画像の複雑度が小さなメディアプログラムは、約１９のＣＲＦに従ってエンコードされてもよいが、バンケットのように動きが多く、テクスチャまたは画像の複雑度が厳しいメディアプログラムは、２９以上のＣＲＦに従ってエンコードされなければならない。しかしながら、これにより、ビットレートが１Ｍｂｐｓ以上となる場合があり、このようにビットレートが大きなメディアプログラムはインターネットを介して伝送することが困難である。通信リンクの利用可能なバンド幅をより有効に使用するために、適応的なコーディング方法を以下で説明する。
【００５２】
図８は、適応的なトランスコード処理、または、２パストランスコード処理を示している図である。映像プログラムなどのソースメディアプログラム５００が、トランスコーダ５０２に提供される。トランスコーダ５０２は、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４を生成するために、１組の入力パラメータおよび入力パラメータ値８０１に応じて、ソース映像プログラム５００をトランスコードする。
【００５３】
一実施形態では、入力パラメータおよび値８０１は、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４が、実質的に一定の映像品質を有するように、目標の映像品質を選択するために選ばれ、また、トランスコードされるメディアプログラム５０４のサイズ、または、リアルタイム表示のためにこれを伝送するために必要とされるビットレートに関係なく、トランスコードされる。このようにトランスコードされたソースメディアプログラム５００は、メディアプログラムの実質的に一定の映像品質バージョンと呼ばれてもよい。
【００５４】
メディアプログラムの一定品質バージョンの生成は、例えば、ソースメディアプログラム５００をトランスコーダ５０２に提供し、「固定レート要素」またはＣＲＦと呼ばれるレート制御モードを選択する入力パラメータ制御を起動することによって、達成することができる。さらに、他の入力パラメータ８０１（例えば、テクスチャの複雑度Ｔ（ｎ）、動きの複雑度Ｍ（ｎ）、サイズ（ピクセル、例えば、６４０ｐｘ×３６０ｐｘ）、およびフレームレートに関する入力値が、与えられてもよい。
【００５５】
あるいは、入力パラメータ値８０１は、メディアプログラムの、第１のトランスコードが施されたバージョンが他の所望の特性を有するように、設定されてもよい。例えば、入力パラメータは、トランスコードされたメディアプログラムの第１のバージョンが、時間的に一定のビットレート（例えば、４００Ｍｂｐｓ）を有するように、設定されてもよい。
【００５６】
トランスコーダ５０２は、（１）メディアプログラムの、シングルパストランスコードが施されたバージョン５０４、および、（２）メディアプログラムの、シングルパストランスコードが施されたバージョン５０４に関する情報を生成する。この情報は、出力パラメータおよびパラメータ値８０２（以後、この代わりに、メディアプログラム情報と呼ぶ）を含む場合がある。出力パラメータ８０２は、入力パラメータ８０１と類似していてもよい（例えば、テクスチャの複雑度は、トランスコードされたもの５０２の出力パラメータと同様に、入力パラメータであってもよい）し、または、出力パラメータ８０２は、トランスコーダ５０２に供給される入力パラメータ８０１と異なっていてもよい。このように、メディアプログラム情報８０２は、テクスチャの複雑度Ｔ（ｎ）、動きの複雑度Ｍ（ｎ）、フレームレート、サイズ、およびビットレート（Ｋｂｐｓ）などの、エンコードされたメディアプログラムのメトリクスを含んでもよく、また、これらのメトリクスは、平均値、最大値として、または、時間の関数として表現されてもよい。
【００５７】
メディアプログラムの、シングルパストランスコードが施されたバージョン５０４は、制約決定モジュール８０４に提供され、制約決定モジュール８０４は、トランスコードされたメディアプログラムの第１のバージョン５０４の少なくとも時間的部分が、制約決定モジュール８０４にも提供された１つ以上の制約８０３を満たしそこなっているか否かを判定する。このことは、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４のメトリクスと、提供された制約８０３とを比較することによって達成される。以下で述べるように、これらのメトリクスは、トランスポンダ５０２から得られる出力パラメータおよびパラメータ値８０２から得られてもよいし、または、制約決定モジュール８０４によって別に導出されてもよい。
【００５８】
メディアプログラムの、シングルパストランスコードが施されたバージョン５０４が一定映像品質バージョンである実施形態では、単一のメトリックまたはパラメータ、すなわち、メディアプログラムの一定映像品質バージョン５０４のビットレートが使用されてもよく、メトリックに課される制約は、最大ビットレートであってもよい。ビットレートの測定および制約は、トランスコードされたメディアプログラムの一定品質バージョンの最大またはピークのビットレートの観点から指定されてもよい。なお、この最大またはピークのビットレートは、メディアプログラムの全体またはトランスコードされたメディアプログラムの時間的な部分もしくは区間のみに関して測定される。
【００５９】
例えば、制約８０３は、瞬間ビットレートが任意のＹ秒またはＹフレームを上回ってＸＭｂｐｓを超えないことを要求してもよい。この場合、制約決定モジュール８０４は、一定の品質にトランスコードされたメディアプログラムの瞬間ビットレートを測定し、測定された瞬間ビットレートと制約８０３とを比較する。
【００６０】
一実施形態では、制約決定モジュール８０４は、制約が満たされている否かを判定するために、トランスコーダ５０２によって提供された出力パラメータ値８０２を使用する（図８の点線によって示されているように）。例えば、トランスコーダ５０２は、トランスコードされたメディアプログラムの第１のバージョンのサイズを提供してもよく、制約決定モジュールは、トランスコードされたメディアプログラムの第１のバージョン５０４の第１のバージョンが伝送に関する要件を満たしているか否かを判定するために、この提供されたサイズと最大値とを比較してもよい。
【００６１】
別の実施形態では、制約決定モジュール８０４は、制約決定モジュール８０４によって制約と比較される測定されたメトリックを得るために、メディアプログラムの、シングルパストランスコードが施されたバージョンを解析する解析サブモジュールを含む。例えば、制約決定器モジュール８０４は、メディアプログラムの、シングルパストランスコードが施されたバージョンの瞬間ビットレートを測定してもよく、また、この測定された瞬間ビットレートと、メディアプログラムの時間的部分に関する最大ビットレート（「Ｙ秒を上回るＸＭｂｐｓ」）を記述した制約とを比較してもよい。例えば、制約８０３が、瞬間ビットレートが１０秒を上回って４０Ｍｂｐｓを超えないことである場合、制約決定モジュール８０３は、該制約が満たされているか否かを判定するために、この制約と、トランスコードされたメディアプログラムの第１のバージョン５０４の測定された瞬間ビットレートとを比較する。
【００６２】
他の測定されたメトリクスおよび関連する制約８０３が使用されてもよい。このようなメトリクスは、トランスコードされたメディアプログラムの第１のバージョン５０４の全体に関するピークおよび／または平均のビットレート、トランスコードされたメディアプログラムの第１のバージョン５０４の瞬間ビットレートの分散、トランスコードされたメディアプログラムの第１のバージョン５０４のサイズ、またはトランスコーダ５０２への任意の入力パラメータ８０１を反映したメトリクス（例えば、平均のもしくは瞬間のテクスチャの複雑度（Ｔ（ｕ，ｔ））または動きの複雑度（Ｍ（ｕ，ｔ）））を含むことができる。
【００６３】
メディアプログラムの、シングルパストランスコードが施されたバージョン５０４の全体が、すべての指定された制約８０３を満たしている場合、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４は、図８に示されているように、トランスコードされたメディアプログラム５０４として提供されてもよい。
【００６４】
しかしながら、メディアプログラムのシングルパストランスコードが施されたバージョン５０４の全体が、指定された制約のすべてを満たしていない場合、失敗された制約および値８０６、ならびに、メディアプログラムの、シングルパストランスコードが施されたバージョンの、制約に失敗した時間的部分を記述している時間区間は、さらなる処理のために転送される。
【００６５】
しかしながら、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４の少なくとも一部が、入力制約８０３のすべてを満たしていない場合、調節された入力パラメータ値８１０を使用する、第２のパスのトランスコーディングが、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４の、制約を満たしていない部分に対して実行される。
【００６６】
図８に示されているように、これは、失敗された制約および値８０６を調節モジュール８０８に提供することによって、実行することができる。また、出力パラメータおよびパラメータ値８０２ならびに入力パラメータおよびパラメータ値８０１が、調節モジュール８０８に提供されてもよい。調節モジュール８０８は、調節されたパラメータ８１０に達するために、この情報を使用し、この調節されたパラメータ８１０を、トランスコーダ８１１は、メディアプログラムの、シングルパストランスコードが施されたバージョンの、制約に失敗した部分と交換するための、第２のパスのトランスコードが施されたバージョンを生成するために使用する。
【００６７】
このタスクを実行するために、トランスコーダ８１１は、調節されたパラメータ８１０と、ソースメディアプログラム５００と、メディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２が求められている時間区間とを受け取り、メディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２を生成するために、ソースメディアプログラムの選択された区間または部分をトランスコードする。
【００６８】
上述した実施形態では、入力パラメータ８０１は、メディアプログラムの、一定の映像品質にトランスコードされたバージョンを生成するようトランスコーダ５０２に指示し、制約決定モジュール８０４は、瞬間ビットレートを測定するために、メディアプログラムの一定映像品質バージョンを解析し、この測定された値と、瞬間ビットレートがＹ秒を上回ってＸＭｂｐｓを超えるべきではないという制約とを比較した。ここで、この例示的な実施形態に戻ると、制約決定モジュール８０４から調節モジュール８０８に提供された失敗された制約および値８０６は、例えば、
【表１】
2014505400.tif 000004
【００６９】
表１
を含む場合がある。
【００７０】
調節モジュール８０８は、この情報を受け取り、制約が違反されている時間区間に関してメディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２を生成するようトランスコーダ８１１に命令するために、調節された入力パラメータ値８１０を生成し、これにより、メディアプログラムの、第２のパスのバージョンは、メディアプログラムの、第１のパスのバージョンに継ぎ合わされたとき、結果として得られた組み合わせは、制約８０３のすべてを満たすようになる。この場合、失敗された制約８０３が、トランスコードされたメディアプログラムの時間区間に関する瞬間最大ビットレートであることから、調節モジュール８０８は、最大ビットレートが超えられた時間区間に関して制約８０３を満たすビットレートを有する、ソースメディアプログラムの一定ビットレートバージョン８１２を生成するようトランスコーダ８１１に命令する。このタスクを実行するために、トランスコーダ８１１には、調節された入力パラメータおよび値８１０ならびにソースメディアプログラム５００が提供される。制約が４０Ｍｂｐｓの瞬間最大ビットレートである例では、調節されたパラメータおよび値８１０は、４０Ｍｂｐｓの瞬間最大ビットレートを上回らない、メディアプログラムの、一定のビットレートにトランスコードされたバージョン８１２を生成するようトランスコーダ８１１に命令する。
【００７１】
この処理は、第２のトランスコーダ８１１を用いて実行されてもよいが、前述の演算は、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４を生成するために使用されたのと同じトランスコーダ５１２を用いて実行されてもよい。
【００７２】
次に、メディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２は、スプライサ８１４に供給され、スプライサ８１４は、スプライシング演算（ｓｐｌｉｃｉｎｇ  ｏｐｅｒａｔｉｏｎ）によって、メディアプログラムの、シングルパストランスコードが施されたバージョン５０４の、制約が満たされなかった部分または区間を、メディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２によって置換する。例えば、１：３０：２２〜１：３１：４１の時間区間にわたって最大ビットレートが超えられた上記の場合において、トランスコーダ８１１は、１：３０：２２〜１：３１：４１の時間区間に関してメディアプログラムの、一定のビットレートにトランスコードされたバージョン８１２を生成し、これによってメディアプログラムの、シングルパストランスコードが施されたバージョン５０４の、制約を満たさなかった部分を置換する。結果として、所望の高い映像品質を提供し、かつ最大ビットレート制約を超えないメディアプログラムの２パストランスコードが施されたバージョン８１６が得られる。
【００７３】
一実施形態では、メディアプログラムの、第１のパスのトランスコードが施されたバージョン５０４は、Ｉフレーム、Ｐフレーム、およびＢフレームを含む複数のフレームを備える。Ｉフレームは、シングルフレームの圧縮されたバージョンであるイントラコード化フレームである。ＰフレームおよびＢフレームとは異なり、Ｉフレームは、前のフレームまたは後のフレームのデータに依存しない。Ｐフレームは、Ｉフレームよりも高い圧縮を実現する。なぜなら、Ｐフレームは、前のＩフレームまたはＰフレーム（参照フレーム）の情報を使用し、これにより、Ｐフレームを生成する（このとき、前のＩフレームまたはＰフレームが最初に再構成されなければならない）からである。Ｂフレームは、Ｂフレームが、前の参照フレームの画像だけでなく、後の参照フレームの画像を使用する点を除いて、Ｐフレームと同様である。結果として、Ｂフレームは、通常、Ｐフレームよりも高い圧縮を実現する。Ｂフレームは、決して参照フレームにはならない。一般に、おおよそ１５番目のフレームごとに、Ｉフレームが生成される。ＰフレームおよびＢフレームは、ΙΒΒΡΒΒΡΒΒΡΒΒ（Ｉ）のように、画像群（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）（ＧＯＰ）を形成するようにＩフレームの後に続いてもよい。
【００７４】
図９は、第１のパスのトランスコードが施されたメディアプログラム５０４を備えることができる、Ｉ、Ｐ、およびＢフレームの系列の一実施形態を示している図である。一実施形態では、メディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２によって、メディアプログラムの、シングルパストランスコードが施されたバージョンの部分が、より容易に置換されることを可能にするために、メディアプログラムの、第２のパスのトランスコードが施されたバージョンは、制約が満たされなかった区間にわたる最小整数の画像群を備える。例えば、図９に示されている例では、メディアプログラムの、第１のパスのトランスコードが施されたバージョン５０４の、制約が満たされなかった区間が、示されている。メディアプログラムの、第１のパスのトランスコードが施されたバージョン５０４のフレームは、ＧＯＰ９０２Ａ〜９０２Ｄを含む。制約８０３が満たされなかった区間は、画像群９０２内で開始および／または終了するため、メディアプログラムの、第２のパスのトランスコードが施されたバージョン８１２は、依然として区間の全体にわたる最小整数の画像群を含むように生成される。
【００７５】
多くのアクションまたは複雑な背景を有するシーンでは、より低い映像品質は、目立たないことが多いため、結果として得られた、トランスコードされたメディアプログラムの２パスバージョンは、シングルパスバージョンのものと区別できず、バンド幅が限られたリンクを介する伝送にはより一層適している。しかしながら、映像品質が不十分な場合、処理が、点線によって示されているようにトランスコーダ８１１から制約決定モジュール８０４にかけて、さらなるパス、および、異なる調節されたパラメータおよび値８１０によって、繰り返されてもよい。例えば、トランスコーダ８１１に提供されたテクスチャの複雑度（Ｔ（ｎ））および／または動きの複雑度（Ｍ（ｎ））が、映像品質を改善するために、または、瞬間最大ビットレートを低減するために、変更されてもよい。あるいは、調節されたパラメータおよび値が、さらなるパスにおいて、第２のパスに関して命令されたものよりも大きなまたは小さなビットレートを有する、メディアプログラムの一定ビットレートバージョンを生成するようトランスコーダ８１１に命令するために、変更されてもよい。
【００７６】
結び
以下は、本発明の好ましい実施形態の記載に関する結びである。本発明の好ましい実施形態に関するこれまでの記載は、例示および説明の目的のために提示されてきた。これは、網羅的であること、または、本発明を開示されたまさにその形態に限定することを意図したものではない。上記の教示に基づいて、多くの修正例および変形例が可能である。本発明の範囲は、この詳細な記載によって限定されるわけではなく、正しくは、これに添付された特許請求の範囲によって限定されることが意図されている。上記の仕様、例、およびデータは、本発明の構成の製造および使用に関して完全な説明を与えている。本発明の多くの実施形態は、本発明の精神および範囲から逸脱することなく、実施することができることから、本発明は、以下に添付された特許請求の範囲に存する。
【図１】
2014505400.tif 000005
【図２】
2014505400.tif 000006
【図３】
2014505400.tif 000007
【図４】
2014505400.tif 000008
【図５】
2014505400.tif 000009
【図６】
2014505400.tif 000010
【図７】
2014505400.tif 000011
【図８】
2014505400.tif 000012
【図９】
2014505400.tif 000013
【国際調査報告】
2014505400.tif 000014