(57)【特許請求の範囲】
【請求項１】
コンピュータ実施の方法において、
第１の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第１のショットシーケンスに基づいて第１の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、
前記第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、前記第１のショットシーケンスに関連付けられた第１の凸包を生成する、実行するステップと、
前記第１の凸包及び前記ソースビデオシーケンスに含まれる第２のショットシーケンスに関連付けられた第２の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、
前記複数の符号化ビデオシーケンス及び第１のビデオメトリックの標的値に基づいて、前記第１の組の符号化点に含まれない第１の符号化点を計算するステップと、
前記第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、前記最適化された符号化ビデオシーケンスの少なくとも一部は続けて、前記メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップと、
を含むことを特徴とする方法。
【請求項２】
前記最適化された符号化ビデオシーケンスを生成するステップは、
前記第１のショットシーケンス及び前記第１の符号化点に基づいて第１の符号化ショットシーケンスを生成するステップと、
前記第２のショットシーケンス及び前記第１の符号化点に等しくない第２の符号化点に基づいて第２の符号化ショットシーケンスを生成するステップと、
前記第１の符号化ショットシーケンス及び前記第２の符号化ショットシーケンスを統合するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記１つ以上の凸包演算を実行するステップは、
前記第１の組のショット符号化点を含む領域を特定するステップと、
前記領域の境界を識別するステップであって、前記第１の組のショット符号化点に含まれるショット符号化点は、前記境界の第１の側に存在しない、識別するステップと、
前記境界に沿って配置されない前記第１の組のショット符号化点に含まれる任意のショット符号化点を破棄するステップであって、それにより、前記第１の凸包を生成する、破棄するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数の符号化ビデオシーケンスを生成するステップは、
第１のショット符号化点と第２のショット符号化点との間の第１の傾き値を計算するステップであって、前記第１のショット符号化点及び前記第２のショット符号化点の両方は、前記第１の凸包に含まれる、計算するステップと、
前記第１の傾き値に基づいて前記第２のショット符号化点に関連付けられた第１の符号化ショットシーケンスを選択するステップと、
前記第１の符号化ショットシーケンスを第２の符号化ショットシーケンスと統合するステップであって、それにより、第１の符号化ビデオシーケンスを生成し、前記第２の符号化ショットシーケンスには、前記第２の凸包に含まれる第３のショット符号化点が関連付けられる、統合するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１の符号化点を計算するステップは、
前記複数の符号化ビデオシーケンスに基づいてグローバル凸包を生成するステップであって、前記グローバル凸包は第１の組のビデオ符号化点を含む、生成するステップと、
前記標的値に基づいて前記第１の組のビデオ符号化点に含まれる第１のビデオ符号化点を選択するステップと、
前記第１のビデオ符号化点及び前記第１の凸包に基づいて前記第１の符号化点を特定するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１の符号化点を計算するステップは、
前記標的値に基づいて前記複数の符号化ビデオシーケンスに含まれる第１の符号化ビデオシーケンスを識別するステップと、
前記第１の符号化ビデオシーケンスに関連付けられ、前記第１の凸包に含まれる第１のショット符号化点を識別するステップと、
前記第１のショット符号化点と第２のショット符号化点との間の距離に基づいて、前記第１の凸包に含まれる前記第２のショット符号化点を識別するステップと、
前記第１のショット符号化点及び前記第２のショット符号化点に基づいて少なくとも１つの算術演算を実行するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記少なくとも１つの算術演算を実行するステップは、符号化パラメータの第１の値及び前記符号化パラメータの第２の値の平均を計算するステップを含み、前記符号化パラメータの前記第１の値には、前記第１のショット符号化点が関連付けられ、前記符号化パラメータの前記第２の値には前記第２のショット符号化点が関連付けられることを特徴とする請求項６に記載の方法。
【請求項８】
前記第１の符号化点を計算するステップは、
前記標的値に基づいて前記複数の符号化ビデオシーケンスに含まれる第１の符号化ビデオシーケンスを識別するステップと、
前記第１の符号化ビデオシーケンスが関連付けられ、前記第１の凸包に含まれる第１のショット符号化点を識別するステップと、
前記第１のショット符号化点と第２のショット符号化点との間の距離に基づいて、前記第１の凸包に含まれる前記第２のショット符号化点を識別するステップと、
前記第１のショット符号化点に関連付けられた第１の解像度が、前記第２のショット符号化点に関連付けられた第２の解像度に等しくないと判断するステップと、
前記第１の解像度及び前記第２の解像度に基づいて、符号化パラメータの最大値又は前記符号化パラメータの最小値のいずれかに前記符号化パラメータの終点値を設定するステップと、
前記第１のショット符号化点に関連付けられた前記符号化パラメータの第１の値と前記符号化パラメータの前記終点値との間で少なくとも１つの算術演算を実行するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のビデオメトリックは、ビットレート、ピーク信号対雑音比（ＰＳＮＲ）、線形ビデオ多方法評価融合（ＶＭＡＦ）メトリック、調和ＶＭＡＦ（ＶＭＡＦｈ）メトリック、又は歪みメトリックを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
命令を含むコンピュータ可読記憶媒体において、前記命令は、プロセッサにより実行されると、前記プロセッサに、
第１の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第１のショットシーケンスに基づいて第１の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、
前記第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、前記第１のショットシーケンスに関連付けられた第１の凸包を生成する、実行するステップと、
前記第１の凸包及び前記ソースビデオシーケンスに含まれる第２のショットシーケンスに関連付けられた第２の凸包に基づいてグローバル凸包を生成するステップと、
第１のビデオメトリックの標的値、前記グローバル凸包、及び前記第１の凸包に基づいて、前記第１の組の符号化点に含まれない第１の符号化点を計算するステップと、
前記第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、前記最適化された符号化ビデオシーケンスの少なくとも一部は続けて、前記メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップと、
を実行させることを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
システムにおいて、
命令を記憶するメモリと、
前記メモリに結合されるプロセッサであって、前記命令を実行すると、
メディアタイトルに関連付けられたビデオシーケンスを分割して、複数のフレームセットにするステップと、
第１の組の符号化点及び前記複数のフレームセットに含まれる第１のフレームセットに基づいて、第１の組のショット符号化点を生成するステップであって、各符号化点には異なる符号化フレームセットが関連付けられる、生成するステップと、
前記第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、前記第１のフレームセットに関連付けられた第１の凸包を生成する、実行するステップと、
前記第１の凸包及び前記複数のフレームセットに含まれる第２のフレームセットに関連付けられた第２の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、
前記複数の符号化ビデオシーケンス及び第１のビデオメトリックの標的値に基づいて、前記第１の組の符号化点に含まれない第１の符号化点を計算するステップと、
前記第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、前記最適化された符号化ビデオシーケンスの少なくとも一部は続けて、前記メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップと、
を行うように構成されるプロセッサと、
を含むことを特徴とするシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２０１７年２月２３日付けで出願された米国仮特許出願第６２／４６２，８７３号（代理人整理番号ＮＥＴＦ／０１４４ＵＳＬ）、２０１７年７月１８日付けで出願された米国仮特許出願第６２／５３４，１７０号（代理人整理番号ＮＥＴＦ／０１７６ＵＳＬ）、２０１７年８月２５日付けで出願された米国仮特許出願第６２／５５０，５１７号（代理人整理番号ＮＥＴＦ／０１７６ＵＳＬ０２）、及び２０１８年２月２２日付けで出願された米国特許出願第１５／９０２，９７６号（代理人整理番号ＮＥＴＦ０１４４ＵＳ４）に対する優先権を主張する。これらの関連出願の趣旨は、参照により本明細書に援用される。
【技術分野】
【０００２】
本発明の実施形態は、一般にはビデオ技術に関し、より詳細には、ビデオコンテンツを符号化する反復技法に関する。
【背景技術】
【０００３】
典型的なビデオストリーミングサービスは、様々な異なるエンドポイントデバイスで閲覧可能なメディアタイトルのライブラリへのアクセスを提供する。各エンドポイントデバイスは、異なる接続条件下でビデオストリーミングサービスに接続し得る。幾つかの顕著な接続条件には、限定ではなく、帯域幅及び待ち時間がある。加えて、異なる各エンドポイントデバイスは、メディアタイトルをエンドユーザに出力する異なるハードウェアを含み得る。例えば、所与のエンドポイントデバイスは、特定の画面サイズ及び特定の画面解像度を有する表示画面を含み得る。
【０００４】
多くの実施態様では、ビデオストリーミングサービスに接続するエンドポイントデバイスは、所与のメディアタイトルについて、エンドポイントデバイスの接続条件及び属性に基づいて、エンドポイントデバイスにストリーミングするメディアタイトルの適切な符号化バージョンを決定するエンドポイントアプリケーションを実行する。より具体的には、エンドポイントアプリケーションは、バッファリング又は再バッファリングに起因した再生中断を回避しながら、エンドポイントデバイスでのメディアタイトルの再生中、最良の視覚品質を提供するメディアタイトルの特定の符号化バージョンを選択しようとする。
【０００５】
幾つかの実施態様では、符号化アプリケーションは、ビットレートラダーに基づいてメディアタイトルの特定の符号化バージョンを選択する。ビットレートラダーは、利用可能なビットレートに基づいてメディアタイトルの再生中、標的視覚品質を達成するように設計される。ビットレートラダー内の各段は、メディアタイトルの予め生成された異なる符号化バージョンに対応する異なるビットレート−解像度対を指定する。所与のビットレート−解像度対に対応するメディアタイトルの符号化バージョンを生成するために、ビデオサービスプロバイダは、サンプリングビデオコンテンツを生成する解像度でメディアタイトルに関連付けられたビデオコンテンツをサンプリングする。つぎに、ビデオサービスプロバイダは、ビットレートに関連付けられた符号化パラメータに基づいて、サンプリングビデオコンテンツを符号化する。
【０００６】
上記符号化技法の一欠点は、所与のメディアタイトルに関連付けられたビデオコンテンツの複雑性が多くの場合、メディアタイトルにわたり変化するが、解像度及びビデオコンテンツの符号化に使用される符号化パラメータは変化しないことである。その結果、メディアタイトルの比較的単純な部分の符号化は、標的視覚品質を満たすために必要な量よりも多くの計算リソース及び記憶リソースを消費し得る。例えば、メディアタイトルの比較的単純な部分は、ビデオコンテンツのその部分が毎秒８メガビットのビットレートを使用して符号化されるか、それとも毎秒２０メガビットのビットレートを使用して符号化されるかに関係なく、同じ視覚品質を有することができる。そのような符号化非効率性は、不必要に計算リソース及び記憶リソースを無駄にするのみならず、これらのタイプの非効率性は又、メディアタイトルの符号化バージョンをエンドポイントデバイスにストリーミングするのに必要な帯域幅を不必要に増大させもする。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記が示すように、当技術分野で必要とされるのは、ストリーミングのためにビデオコンテンツを符号化するより効率的な技法である。
【課題を解決するための手段】
【０００８】
本発明の一実施形態は、ソースビデオシーケンスを符号化するコンピュータ実施の方法を記載する。本方法は、第１の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第１のショットシーケンスに基づいて第１の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、第１のショットシーケンスに関連付けられた第１の凸包を生成する、実行するステップと、第１の凸包及びソースビデオシーケンスに含まれる第２のショットシーケンスに関連付けられた第２の凸包に基づいて符号化ビデオシーケンスを生成するステップと、符号化ビデオシーケンス及び第１のビデオメトリックの標的値に基づいて、第１の組の符号化点に含まれない第１の符号化点を計算するステップと、第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを含む。
【０００９】
従来技術に対する開示される技法の少なくとも１つの技術的改善は、最適化された組の個々に符号化されたショットシーケンスへの反復収束が、従来の符号化技法に従来関連する符号化非効率性を低減することである。特に、各ショットシーケンスは、ショットシーケンスに最適化された解像度及び符号化パラメータに基づいて符号化されるため、符号化ビデオシーケンスは、標的ビットレートに向けて増大した視覚品質で、エンドポイントのデバイスにストリーミングすることができる。逆に、符号化ビデオシーケンスは、標的視覚品質に向けて低減したビットレートでエンドポイントデバイスにストリーミングすることができる。
【００１０】
したがって、様々な実施形態の上述した特徴を詳細に理解することができる様式、先のように手短にまとめられた本発明の概念のより具体的な説明は、幾つかが添付図面に示される様々な実施形態を参照して行うことができる。しかしながら、添付図面が本発明の概念の典型的な実施形態のみを示し、したがって、範囲の限定として決して見なされるべきではなく、他の等しく有効な実施形態が存在することに留意されたい。
【図面の簡単な説明】
【００１１】
【図１】本発明の１つ以上の態様を実施するように構成されたシステムの概念図である。
【図２】本発明の様々な実施形態による図１の反復コントローラのより詳細な図である。
【図３】本発明の様々な実施形態による図１の動的オプティマイザのより詳細な図である。
【図４】本発明の様々な実施形態による図３の凸包生成器により生成される凸包を示す。
【図５Ａ】本発明の様々な実施形態による、図３のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。
【図５Ｂ】本発明の様々な実施形態による、図３のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。
【図５Ｃ】本発明の様々な実施形態による、図３のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。
【図５Ｄ】本発明の様々な実施形態による、図３のトレリス反復器が符号化ショットシーケンスを符号化ビデオシーケンスにいかに組み立てるかを更に詳細に示す。
【図６】本発明の様々な実施形態による、図５Ａ〜図５Ｄに示される異なるビデオ符号化点に基づいて図１の動的オプティマイザにより生成されるグローバル凸包を示す。
【図７】本発明の様々な実施形態による、図１の反復コントローラがショットシーケンスの追加の符号化点をいかに生成するかを示す。
【図８】本発明の様々な実施形態による図１の最適化された符号化ビデオシーケンスのより詳細な図である。
【図９Ａ】本発明の様々な実施形態による、ソースビデオシーケンスを符号化する方法ステップの流れ図を記載する。
【図９Ｂ】本発明の様々な実施形態による、ソースビデオシーケンスを符号化する方法ステップの流れ図を記載する。
【発明を実施するための形態】
【００１２】
以下の説明では、様々な実施形態のより完全な理解を提供するために、多くの具体的な詳細が記載される。しかしながら、これらの具体的な詳細の１つ以上なしで本発明の概念が実施可能であることが当業者には理解されよう。
【００１３】
開示される技法は、標的メトリック値（例えば、ビットレート及び品質スコア）に基づいて、最適化された符号化ビデオシーケンスを生成する。ソースビデオシーケンスに含まれる各ショットシーケンスで、反復コントローラは、比較的疎に分布した符号化点を含むように符号化リストを初期化する。各符号化点は、解像度及び量子化パラメータ（ＱＰ）を指定する。次に、反復コントローラは、符号化リストに基づいてグローバル凸包を生成するように動的オプティマイザを構成する。
【００１４】
動的オプティマイザは、符号化リストに含まれる新しい符号化点に基づいて、新しいショット符号化点を生成する。「新しい」符号化点とは、動的オプティマイザが、関連付けられた符号化ショットシーケンスを前に生成したことがない符号化点である。所与のショット符号化点を生成する一環として、動的オプティマイザは、関連付けられた符号化ショットシーケンスを生成し分析する。続けて、各ショットシーケンスで、動的オプティマイザは、ショットシーケンスに関連付けられたショット符号化点のサブセットを含む凸包を生成する。一般に、所与のショットシーケンスで、関連付けられた凸包に含まれるショット符号化点は、異なる歪みレベルのビットレートを最小化する。
【００１５】
次に、動的オプティマイザは、全てのショットシーケンスにわたる凸包を評価して、複数のショット符号化シーケンスを識別し、各ショット符号化シーケンスは、一連のショット符号化点を指定する。各ショット符号化シーケンスで、動的オプティマイザは、ショット符号化点に関連付けられた異なる符号化ショットシーケンスを統合して、符号化ビデオシーケンスを生成する。動的オプティマイザは、ショット符号化シーケンスに基づいてグローバル凸包を生成する。一般に、グローバル凸包に含まれる各点には、異なる全体歪みレベルの全体ビットレートを最小化する異なるショット符号化シーケンスが関連付けられる。
【００１６】
反復コントローラは、グローバル凸包及び標的メトリック値（例えば、ビットレート又は品質スコア）に基づいて、最適化されたショット符号化シーケンスを選択する。各ショットシーケンスで、最適化されたショット符号化シーケンスは最適化されたショット符号化点を指定する。各ショットシーケンスで、反復コントローラは、関連付けられた凸包に沿った最適化されたショット符号化点のロケーションを評価して、１つ以上の近傍ショット符号化を識別する。最適化されたショット符号化点の解像度及びＱＰ値並びに近傍ショット符号化点に基づいて、反復コントローラは、ショットシーケンスの任意の数の新しい符号化点を生成し得る。反復コントローラは、任意の新しい符号化点を識別する場合、拡張された組の符号化点に基づいて新しいグローバル凸包を生成するように動的オプティマイザを構成する。
【００１７】
しかしながら、反復コントローラは、いかなる新しい符号化点も識別しない場合、最適化された符号化ビデオシーケンスとして、最適化されたビデオ符号化点に含まれる符号化ビデオシーケンスを選択する。最後に、反復コントローラは、最適化された符号化ビデオシーケンスをコンテンツ配信ネットワークに送信して、エンドポイントデバイスに配信する。
【００１８】
開示される技法の一利点及び技術進歩は、特定の符号化点が標的ビットレート又は標的品質スコアを満たす必要があるソースビデオシーケンスの部分が、それらの符号化点で符号化されることである。さらに、ソースビデオシーケンスの他の部分は、他の適宜選択された符号化点で符号化される。各ショットシーケンスに最適化された符号化点でショットシーケンスを符号化することは、通常、従来の符号化技法に関連する符号化非効率性を低減する。
【００１９】
システム概説
図１は、本発明の１つ以上の態様を実施するように構成されたシステム１００の概念図である。示されるように、システム１００は、限定ではなく、任意の数の計算インスタンス１１０及びクラウド１６０を含む。一般にクラウド１６０は、カプセル化された共有リソース、ソフトウェア、データ等を含む。説明のために、同様の物体の複数のインスタンスは、その物体を識別する参照番号及び必要な場合にはインスタンスを識別する補足番号で示される。
【００２０】
任意の数の計算インスタンス１１０がクラウド１６０外部に存在し得、一方、他の計算インスタンス１１０はクラウド１６０の内部に存在し得る。様々な実施形態では、システム１００の任意の数の構成要素は、複数の地理的ロケーションにわたり分散し得る。さらに、システム１００の任意の数の構成要素は、１つ以上のスタンドアロンデバイス、分散計算環境、又はクラウド１６０に任意の組合せで包含又は分散し得る。
【００２１】
示されるように、各計算インスタンス１１０は、限定ではなく、プロセッサ１１２及びメモリ１１６を含む。プロセッサ１１２は、命令を実行可能な任意の命令実行システム、装置、又はデバイスであり得る。例えば、プロセッサ１１２は、中央演算処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、コントローラ、マイクロコントローラ、状態機械、又はそれらの任意の組合せを含むことができる。メモリ１１６は、計算インスタンス１１０のプロセッサ１１２による使用のために、ソフトウェアアプリケーション及びデータ等のコンテンツを記憶する。
【００２２】
メモリ１１６は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フロッピーディスク、ハードディスク、又はローカル若しくはリモートの任意の他の形態のデジタル記憶装置等の容易に入手可能なメモリの１つ以上であり得る。幾つかの実施形態では、記憶装置（図示せず）はメモリ１１６を補足又は置換し得る。記憶装置は、プロセッサ１１２がアクセス可能な任意の数及び任意のタイプの外部メモリを含み得る。例えば、限定ではなく、記憶装置は、セキュアデジタルカード、外部フラッシュメモリ、ポータブルコンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、又は上記の任意の適した組合せを含み得る。
【００２３】
一般に、計算インスタンス１１０は、１つ以上のアプリケーションを実施するように構成される。説明のみを目的として、各アプリケーションは、１つの計算インスタンス１１０のメモリ１１６に常駐し、１つの計算インスタンス１１０のプロセッサ１１２で実行されるものとして示されている。しかしながら、当業者は認識するように、各アプリケーションの機能は、任意の組合せで、任意の数の計算インスタンス１１０のメモリ１１６に常駐し、任意の数の計算インスタンス１１０のプロセッサ１１２で実行される任意の数の他のアプリケーションにわたり分散し得る。さらに、任意の数のアプリケーションの機能は、１つのアプリケーション又はサブシステムに統合し得る。
【００２４】
特に、計算インスタンス１１０は、ソースビデオシーケンス１２２に最適化された符号化ビデオシーケンス１８０を生成するように構成される。ソースビデオシーケンス１２２は、限定ではなく、メディアタイトルに関連付けられた任意の量及び任意のタイプのビデオコンテンツを含む。ビデオコンテンツの例には、少数を挙げれば、限定ではなく、長編映画の任意の部分（全てを含む）、テレビ番組のエピソード、及び音楽ビデオがある。最適化された符号化ビデオシーケンス１８０は、限定ではなく、ソースビデオシーケンス１２２に含まれるビデオコンテンツから導出される符号化ビデオコンテンツを含む。
【００２５】
示されていないが、ビデオストリーミングサービスは、様々な異なるエンドポイントデバイスで閲覧することができるメディアタイトルのライブラリへのアクセスを提供する。メディアタイトルのライブラリは、限定ではなく、ソースビデオシーケンス１２２に関連付けられたメディアタイトルを含む。各エンドポイントデバイスは、異なる接続条件下でビデオストリーミングサービスに接続し得る。幾つかの顕著な接続条件は、限定ではなく、帯域幅及び待ち時間を含む。加えて、異なる各エンドポイントデバイスは、メディアタイトルをエンドユーザに出力する異なるハードウェアを含み得る。例えば、所与のエンドポイントデバイスは、特定の画面サイズ及び特定の画面解像度を有する表示画面を含むことができる。
【００２６】
多くの実施態様では、ビデオストリーミングサービスに接続するエンドポイントデバイスは、所与のメディアタイトルで、接続条件及びエンドポイントデバイスの属性に基づいてエンドポイントデバイスにストリーミングするのに適切なメディアタイトルの符号化バージョンを決定するエンドポイントアプリケーションを実行する。より具体的には、エンドポイントアプリケーションは、バッファリング又は再バッファリングに起因した再生中断を回避しながら、エンドポイントデバイスでのメディアタイトル再生中、最良の視覚品質を提供するメディアタイトルの特定の符号化バージョンを選択しようとする。
【００２７】
幾つかの従来の実施態様では、エンドポイントアプリケーションは、ビットレートラダーに基づいてメディアタイトルの特定の符号化バージョンを選択する。ビットレートラダーは、利用可能なビットレートに基づいて、メディアタイトルの再生中、標的視覚品質を達成するように構成される。ビットレートラダー内の各段は、メディアタイトルの予め生成された異なる符号化バージョンに対応する異なるビットレート−解像度対を指定する。所与のビットレート−解像度対に対応するメディアタイトルの符号化バージョンを生成するために、ビデオサービスプロバイダは、解像度でのメディアタイトルに関連付けられたビデオコンテンツをサンプリングして、サンプリングビデオコンテンツを生成する。次に、ビデオサービスプロバイダは、ビットレートに関連付けられた符号化パラメータに基づいてサンプリングビデオコンテンツを符号化する。
【００２８】
先の従来の符号化技法の一欠点は、所与のメディアタイトルに関連付けられたビデオコンテンツの複雑性が多くの場合、メディアタイトルにわたり変化するが、ビデオコンテンツの符号化に使用される解像度及び符号化パラメータが変わらないことである。その結果、メディアタイトルの比較的単純な部分の符号化は、標的視覚品質を満たすために必要な量よりも多くの計算リソース及び記憶リソースを消費し得る。例えば、メディアタイトルの比較的単純な部分は、ビデオコンテンツのその部分が毎秒８メガビットのビットレートを使用して符号化されるか、それとも毎秒２０メガビットのビットレートを使用して符号化されるかに関係なく、同じ視覚品質を有することができる。そのような符号化非効率性は、不必要に計算リソース及び記憶リソースを無駄にするのみならず、これらのタイプの非効率性は又、メディアタイトルの符号化バージョンをエンドポイントデバイスにストリーミングするのに必要な帯域幅を不必要に増大させもする。
【００２９】
個々のショットシーケンスに最適化された符号化動作
上記問題に対処するために、システム１００は、限定ではなく、ソースビデオシーケンス１２２に含まれる各ショットシーケンス１３２に向けて解像度及び符号化パラメータを最適化する反復符号化アプリケーション１２０を含む。ソースビデオシーケンス１２２は、限定ではなく、任意の数の連続及び非重複ショットシーケンス１３２を含む。各ショットシーケンス１３２は、通常、同様の空間時間属性を有し、中断されない時間期間にわたる１組のフレームを含む。反復符号化アプリケーション１２０は、メモリ１１６の１つに常駐し、プロセッサ１１２の１つで実行される。
【００３０】
示されるように、反復符号化アプリケーション１２０は、限定ではなく、ショット分析器１３０、反復コントローラ１４０、及び動的オプティマイザ１５０を含む。ソースビデオシーケンス１２２を受信すると、ショット分析器１３０は、ソースビデオシーケンス１２２に含まれる１つ以上のショット変更１７２を特定する。各ショット変更１７２は、ショットシーケンス１３２の異なる対間の境界を指定する。ショット分析器１３０は、任意の技術的に実現可能な様式で１つ以上のショット変更１７２を決定し得る。
【００３１】
例えば、幾つかの実施形態では、ショット分析器１３０は、クラウド１６０に常駐するショット検出器１７０にソースビデオシーケンス１２２を送信する。ショット変更１７２を特定するために、ショット検出器１７０は、ソースビデオシーケンス１２２に基づいて任意の数のショット検出アルゴリズムを実行する。ショット検出アルゴリズムの幾つかの例には、限定ではなく、マルチスケール差分絶対値和アルゴリズム、動き補償残差エネルギーアルゴリズム、差分ヒストグラムアルゴリズム、ヒストグラム差分アルゴリズム等がある。次に、ショット検出器１７０は、ショット変更１７２をショット分析器１３０に送信する。代替の実施形態では、ショット分析器１３０は、任意の数のショット検出動作をソースビデオシーケンス１２２に対して実行して、ショット変更１７２を特定し得る。
【００３２】
ショット分析器１３０は、ショット変更１７２に基づいて分割動作をソースビデオシーケンス１２２に対して実行して、ショットシーケンス１３２を特定する。幾つかの実施形態では、ショット分析器１３０は又、ソースビデオシーケンス１２２から無関係ピクセルを除去し得る。例えば、ショット分析器１３０は、ソースビデオシーケンス１２２の境界セクションに沿った黒色バーに含まれるピクセルを除去することができる。
【００３３】
様々な実施形態では、反復符号化アプリケーション１２０は、符号化動作中、各ショットシーケンス１３２の初期フレームがキーフレームとして符号化されることを保証する。一般問題として、符号化ビデオシーケンスに含まれる同じショットシーケンス１３２からの「キーフレーム」及び全ての後続フレームは、符号化ビデオシーケンスに含まれる任意の処理フレームから独立して復号化される。
【００３４】
反復符号化アプリケーション１２０は、異なるショットシーケンス１３２の異なる初期フレームが任意の技術的に実現可能な様式でキーフレームとして符号化されることを保証する。例えば、幾つかの実施形態では、動的オプティマイザ１５０は、ビデオコンテンツを符号化する際、キーフレームロケーションリスト（図１に図示せず）に基づいてキーフレームとしてフレームを符号化するように符号化アプリケーション１６０を構成する。他の実施形態では、動的オプティマイザ１５０は、ビデオコンテンツを符号化する際、任意の数の符号化動作を実行して、キーフレームとして異なるショットシーケンス１３２の異なる初期フレームを符号化し得る。
【００３５】
当業者は認識するように、再生中、ソースビデオシーケンス１２２に関連付けられたメディアタイトルは、位置合わせされたキーフレームで異なる符号化ビデオシーケンス１８０の復号化バージョン間で切り替え可能であり、それにより、任意の数の関連する基準に基づいて閲覧経験を最適化する。関連する基準の例には、現在の接続帯域幅、現在の接続待ち時間、来るショットシーケンス１３２のコンテンツ等がある。
【００３６】
ショットシーケンス１３２を受信すると、反復コントローラ１４０は、標的メトリック値１７０に基づいて最適化された符号化ビデオシーケンス１８０を生成する。ショットシーケンス１３２のそれぞれで、最適化された符号化ビデオシーケンス１８０は、限定ではなく、ショットシーケンス１３２に関連付けられた符号化ショットシーケンス（図１に図示せず）を含む。各符号化ショットシーケンスは、関連付けられたショットシーケンス１３２に含まれるビデオコンテンツから導出された符号化ビデオコンテンツを含む。
【００３７】
標的メトリック値１７０は、符号化ビデオコンテンツの１つ以上の属性に対応するメトリックの値である。幾つかの実施形態では、標的メトリック値１７０はビットレートである。他の実施形態では、標的メトリック値１７０は視覚品質メトリックの品質スコアである。視覚品質メトリックの例には、少数を挙げれば、限定ではなく、ピーク信号対雑音比（ＰＳＮＲ）、線形ビデオ多方法評価融合（ＶＭＡＦ）メトリック、及び調和ＶＭＡＦ（ＶＭＡＦｈ）メトリックがある。
【００３８】
動作において、反復コントローラ１４０は、最適化された符号化ビデオシーケンス１８０に含まれる符号化ショットシーケンスのそれぞれを個々に最適化する反復プロセスで最適化された符号化ビデオシーケンス１８０を生成する。図２と併せて更に詳細に説明するように、各ショットシーケンス１３２について、反復コントローラ１４０は、比較的疎に分布した符号化点を含むように差分符号化リスト（図１に図示せず）を初期化する。一般に、各符号化リストは、任意の数の符号化点を指定し得、符号化リスト内の符号化点の数は、他の符号化リスト内の符号化点の数と異なり得る。各符号化点は、解像度及び１つ以上の符号化パラメータを指定する。
【００３９】
続けて、図３〜図６と併せて更に詳細に説明するように、反復コントローラ１４０は、符号化リストに基づいてグローバル凸包を生成するように動的オプティマイザ１５０を構成する。まず、動的オプティマイザ１５０は、符号化リストを評価して、新しい符号化点を識別する。各符号化リストについて、「新しい」符号化点は、動的オプティマイザ１５０がまだ、関連付けられたショットシーケンス１３２に基づいて符号化ショットシーケンスを生成していない符号化点である。新しい各符号化点で、動的オプティマイザ１５０は符号化ショットシーケンスを生成する。
【００４０】
動的オプティマイザ１５０は、任意の技術的に実現可能な様式で符号化ショットシーケンスを生成し得る。さらに、一般問題として、動的オプティマイザ１５０は、任意の技術的に実現可能な様式で、所与の解像度及び所与の符号化パラメータに基づいてビデオコンテンツから導出された符号化ビデオコンテンツを生成し得る。例えば、幾つかの実施形態では、動的オプティマイザ１５０は、解像度に基づいてビデオコンテンツに対してサンプリング動作を実行して、サンプリングビデオコンテンツを生成する。続けて、動的オプティマイザ１５０は、符号化パラメータに基づいてサンプリングされたビデオコンテンツに対して符号化動作を実行して、符号化ショットシーケンスを生成するように符号化アプリケーション１６２を構成する。
【００４１】
示されるように、符号化アプリケーション１６２は、クラウド１６０に常駐し、１つ以上の並列エンコーダ１６４を介して符号化動作を効率的に実行するように構成される。各並列エンコーダ１６４は、任意の数の計算インスタンス１１０を含み得る。代替の実施形態では、動的オプティマイザ１５０は符号化動作を実行し得、システム１００は符号化アプリケーション１６２を省き得る。同じ又は他の実施形態では、システム１００はサンプリングアプリケーションを含み得、動的オプティマイザ１５０は、サンプリング動作を実行するようにサンプリングアプリケーションを構成し得る。
【００４２】
動的オプティマイザ１５０は、サンプリング動作及び符号化動作を任意の粒度レベル（例えば、フレーム毎、ショットシーケンス毎、ビデオシーケンス毎等）、任意の組合せ、及び任意の技術的に実現可能な様式で実行し得る。例えば、幾つかの実施形態では、動的オプティマイザ１５０は、所与の解像度に基づいてソースビデオシーケンス１２２に対してサンプリング動作を実行して、サンプリングビデオシーケンスを生成し得る。続けて、解像度に関連付けられた各符号化点で、動的オプティマイザ１５０は、関連付けられた符号化パラメータに基づいて、関連付けられたショットシーケンス１３２に対応するサンプリングビデオコンテンツを符号化するように符号化アプリケーション１６２を構成し得る。
【００４３】
新しい符号化ショットシーケンスを生成した後、動的オプティマイザ１５０は、符号化ショットシーケンスに基づいてビットレート、品質スコア、及び歪みレベルを計算する。動的オプティマイザ１５０は、任意の技術的に実現可能な様式でビットレート、品質スコア、及び歪みレベルを計算し得る。新しい各符号化ショットシーケンスで、動的オプティマイザ１５０は、符号化ショットシーケンス、解像度、符号化パラメータ、ビットレート、品質スコア、及び歪みレベルを含むショット符号化点（図１に図示せず）を生成する。各ショットシーケンス１３２で、動的オプティマイザ１５０は異なる凸包を生成する。所与のショットシーケンス１３２に関連付けられた凸包は、ショットシーケンス１３２に関連付けられた任意の数のショット符号化点を含む。一般に、所与のショットシーケンス１３２で、関連付けられた凸包に含まれるショット符号化点は、異なる歪みレベルでビットレートを最小化する。
【００４４】
動的オプティマイザ１５０は次に、全てのショットシーケンス１３２にわたり凸包を評価して、ショット符号化シーケンス（図１に図示せず）を決定する。各ショット符号化シーケンスは、異なるショットシーケンス１３２のショット符号化点を指定する。各ショット符号化シーケンスで、動的オプティマイザ１５０は、ショット符号化点に含まれる異なる符号化ショットシーケンスを統合して、符号化ビデオシーケンスを生成する。各ショット符号化シーケンスで、動的オプティマイザ１５０は次に、ショット符号化シーケンス、関連付けられた符号化ビデオシーケンス、符号化ショットシーケンスの全体ビットレート、及び符号化ショットシーケンスの全体歪みレベルを含むビデオ符号化点を生成する。続けて、動的オプティマイザ１５０は、ビデオ符号化点に基づいてグローバル凸包を生成する。一般にソースビデオシーケンス１２２で、グローバル凸包に含まれる各ビデオ符号化点は、異なる全体歪みレベルの全体ビットレートを最小化する。
【００４５】
次に、反復コントローラ１４０は、標的メトリック値１７０に基づいてグローバル凸包に含める最適化されたビデオ符号化点を選択する。各ショットシーケンス１３２で、反復コントローラ１４０は、最適化されたビデオ符号化点に基づいて最適化されたショット符号化点を識別する。続けて、各ショットシーケンス１３２で、反復コントローラ１４０は、関連付けられた最適化されたショット符号化点及びショットシーケンス１３２（ｘ）に関連付けられた凸包に基づいて、任意の数（ゼロを含む）の新しい符号化点を識別する。
【００４６】
より具体的には、所与のショットシーケンス１３２で、反復コントローラ１４０は、ショットシーケンス１３２に関連付けられた最適化されたショット符号化点に基づいて、ショットシーケンス１３２に関連付けられた凸包に対して任意の数及び任意のタイプの検索動作を実行する。反復コントローラ１４０が任意の新しい符号化点を識別する場合、反復コントローラ１４０は、符号化点を適切な符号化リストに追加する。次に、反復コントローラ１４０は、拡張符号化リストに基づいて新しいグローバル凸包を生成するように動的オプティマイザ１５０を構成する。
【００４７】
しかしながら、反復コントローラ１４０が新しいいかなる符号化点も識別しない場合、反復コントローラ１４０は、反復コントローラ１４０が標的メトリック値１７０に首尾良く収束したと判断する。反復コントローラ１４０は、最適化された符号化ビデオシーケンス１８０として最適化されたビデオ符号化点に含まれる符号化ビデオシーケンスを選択する。最後に、反復コントローラ１４０は、エンドポイントデバイスに配信するために、最適化された符号化ビデオシーケンス１８０をコンテンツ配信ネットワーク（ＣＤＮ）１９０に送信する。
【００４８】
なお、本明細書に記載される技法は、限定ではなく例示であり、本発明のより広い趣旨及び範囲から逸脱せずに変更可能である。反復符号化アプリケーション１２０、ショット分析器１３０、反復コントローラ１４０、動的オプティマイザ１５０、ショット検出器１７０、符号化アプリケーション１６２、及びコンテンツ配信ネットワーク１９０により提供される機能への多くの変更及び変形が、記載される実施形態の範囲及び趣旨から逸脱せずに当業者に明らかになろう。例えば、様々な実施形態では、反復符号化アプリケーション１２０、ショット分析器１３０、反復コントローラ１４０、動的オプティマイザ１５０、及び符号化アプリケーション１６２の１つ以上は、ショットシーケンス１３２の代わりに一貫性メトリックが指定された範囲内にあるフレームセットを識別し、それらに対して動作するように構成し得る。
【００４９】
当業者は認識するように、本明細書に記載される技法は、ビデオ符号化の代わりにオーディオ符号化を最適化するように変更し得る。例えば、幾つかの実施形態では、オーディオトラックを「オーディオシーン」に分割し得る。オーディオシーンは、オーディオレンダリングハードウェアを介してサンプリングし得る。サンプリングされたオーディオシーンは、量子化パラメータ及び／又はビットレート設定を介して構成されるオーディオコーデックを介して符号化し得る。符号化されたオーディオシーンの品質スコアは、オーディオ品質知覚評価（ＰＥＡＱ：Ｐｅｒｃｅｐｔｕａｌ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ａｕｄｉｏ  Ｑｕａｌｉｔｙ）アルゴリズムを介して計算し得る。特に、解像度及び／又は任意の数の符号化パラメータは、任意の組合せで本明細書に記載される任意の技法に基づいて各オーディオシーンに向けて最適化し得る。
【００５０】
本明細書に示されるシステム１００が例示であり、変形及び変更が可能なことが理解されよう。例えば、本明細書に記載される反復符号化アプリケーション１２０、ショット分析器１３０、反復コントローラ１４０、動的オプティマイザ１５０、ショット検出器１７０、符号化アプリケーション１６２、及びコンテンツ配信ネットワーク１９０により提供される機能は、任意の数のソフトウェアアプリケーション（１つを含む）、ハードウェアデバイス（例えば、ハードウェアベースのエンコーダ）、及びシステム１００の任意の数の構成要素に統合又は分散し得る。さらに、図１における様々なユニット間の接続トポロジは、所望に応じて変更し得る。
【００５１】
図２は、本発明の様々な実施形態による図１の反復コントローラ１４０のより詳細な図である。示されるように、反復コントローラ１４０は、限定ではなく、Ｓ＋１個の符号化リスト２１０を含み、ここで、Ｓ＋１はショットシーケンス１３２の総数である。さらに、各符号化リスト２１０は任意の数の符号化点１２０を含む。各符号化点１２０は、限定ではなく、ビットレート３３２及び量子化パラメータ（ＱＰ）値３２４を含む。
【００５２】
量子化パラメータは、ビデオコンテンツを符号化する際、ビットレート及び歪みに関して単調性能を可能にする。ＱＰ値が高いほど、その結果生成されるビットレートは、品質を犠牲にして低くなる。しかしながら、代替の実施形態では、各符号化点１２０は、ＱＰ値３２４の代替又は追加として、任意の数及び任意のタイプの符号化パラメータを含み得る。
【００５３】
まず、各ショットシーケンス１３２（ｘ）で、反復コントローラ１４０は、符号化点２２０の比較的疎な選択を含む符号化リスト２１０（ｘ）を生成する。反復コントローラ１４０は、任意の技術的に実現可能な様式で初期符号化リスト２１０を生成し得る。例えば、幾つかの実施形態では、反復コントローラ１４０は、固定された組の解像度及び反復符号化アプリケーション１２０により実施されるコーデックに基づいて符号化リスト２１０を初期化する。
【００５４】
より具体的には、各符号化リスト２１０で、反復コントローラ２１０は、ビデオコーデックにより可能な最小解像度及び最大ＱＰ値を指定する符号化点２２０（０）を生成する。次に、反復コントローラ２１０は、ビデオコーデックにより可能な最小解像度及び中間ＱＰ値を指定する符号化点２２０（１）を生成する。最大解像度と最小解像度との間にある追加の各解像度で、反復コントローラ２１０は、解像度及び中間ＱＰ値を指定する符号化点２２０を生成する。次に、反復コントローラ２１０は、最大解像度及び中間ＱＰ値を指定する符号化点２２０を生成する。最後に、反復コントローラ２１０は、ビデオコーデックにより可能な最大解像度及び最小ＱＰ値を指定する符号化点２２０を生成する。
【００５５】
説明のみを目的として、各符号化リスト２１０に含まれる最初の５つの点の解像度及び値の例を斜体で示す。示されるように、符号化点２２０（０）は、６４０×２６０の解像度３２２並びに１９２０×１０８０のＱＰ値３２４及び０のＱＰ値３２４を指定し、符号化点２２０（１）は、６４０×２６０の解像度３２２及び２６のＱＰ値３２４を指定し、符号化点２２０（２）は９６０×５２０の解像度３２２及び２６のＱＰ値３２４を指定し、符号化点２２０（３）は、１２８０×７２０の解像度３２２及び２６のＱＰ値３２４を指定し、符号化点２２０（４）は１９２０×１０８０の解像度３２２及び２６のＱＰ値３２４を指定し、符号化点２２０（５）は１９２０×１０８０の解像度３２２及び０のＱＰ値３２４を指定する。
【００５６】
図７と併せて更に詳細に説明するように、動的オプティマイザ１５０が新しいグローバル凸包を生成した後、反復コントローラ１４０は、任意の数の符号化リスト１２０を更新し得る。特に、反復コントローラ１４０は各ショットシーケンス１３２（ｘ）を独立して評価して、符号化リスト２１０（ｘ）に追加する任意の数の新しい符号化点２２０を決定する。その結果、任意の所与の時間において、符号化リスト２１０（ｘ）に含まれる符号化点２２０の数は、任意の他の符号化リスト２１０に含まれる符号化点２２０の数から変わり得る。一般に、反復コントローラ１４０は反復的に、標的メトリック値１７０に最良に一致する最適化された符号化ビデオシーケンス１８０に効率的に収束するために、符号化点２２０の範囲を改善する。
【００５７】
異なる符号化ビデオシーケンスの生成
図３は、本発明の様々な実施形態による図１の動的オプティマイザ１５０のより詳細な図である。示されるように、動的オプティマイザ１５０は、限定ではなく、ショット符号化セット３１０、凸包生成器３４０、凸包３５０、トレリス反復器３６０、シーケンストレリス３７０、任意の数のビデオ符号化点３８０、及びグローバル凸包３９０を含む。ショット符号化セット３１０の総数は、ショットシーケンス１３２の数に等しい。同様に、凸包３４０の総数はショットシーケンス１３２の数に等しい。一般に、ショットシーケンス１３２（ｘ）にはショット符号化セット３１０（ｘ）及び凸包３４０（ｘ）の両方が関連付けられる。
【００５８】
各ショット符号化セット３１０は、限定ではなく、任意の数のショット符号化点３２０を含む。ショット符号化セット３１０（ｘ）に含まれるショット符号化点３２０の数は、任意の他のショット符号化セット３１０に含まれるショット符号化点３２０の数と異なり得る。各ショット符号化点３２０は、限定ではなく、解像度３２２、ＱＰ値３２４、符号化ショットシーケンス３２６、ビットレート３３２、任意の数の品質スコア３３４、及び歪みレベル３３６を含む。代替の実施形態では、ショット符号化点３２０は、ＱＰ値３２４の代替又は追加として、任意の数及び任意のタイプの符号化パラメータを含み得る。
【００５９】
動的オプティマイザ１５０は、まず、符号化リスト２１０（０）〜２１０（Ｓ）を反復コントローラ１４０から受信すると、ショット符号化セット３１０（０）〜３１０（Ｓ）を生成する。各符号化リスト２１０（ｘ）に含まれる各符号化点２２０（ｙ）で、動的オプティマイザ１５０は、対応するショット符号化点３２０（ｙ）を生成し、ショット符号化点３２０（ｙ）をショット符号化セット３１０（ｘ）に追加する。より具体的には、動的オプティマイザ１５０は、ショットシーケンス１３２（ｘ）、符号化点２２０（ｙ）において指定される解像度３２２、及びＱＰ値３２４に基づいて新しい符号化ショットシーケンス３２６を生成する。
【００６０】
次に、動的オプティマイザ１５０は、符号化ショットシーケンス３２６に関連付けられたビットレート３３２、品質スコア３３４、及び歪みレベル３３６を計算する。次に、動的オプティマイザ１５０は、限定ではなく、符号化ショットシーケンス３２６並びに符号化ショットシーケンス３２６に関連付けられた解像度３２２、ＱＰ値３２４、ビットレート３３２、品質スコア３３４、及び歪みレベル３３６を含むショット符号化点３２０（ｙ）を生成する。最後に、動的オプティマイザ１５０は、ショット符号化セット３１０（ｘ）に新しいショット符号化点３２０（ｙ）を含む。
【００６１】
続けて、１つ以上の更新された符号化リスト２１０を受信すると、動的オプティマイザ１５０は任意の「新しい」符号化点２２０を識別する。動作において、符号化リスト２１０（ｘ）について、動的オプティマイザ１５０は、符号化点２２０のいずれがショット符号化セット３１０（ｘ）によって表されないかを判断する。符号化リスト２１０（ｘ）に含まれる新しい各符号化点２２０（ｙ）で、動的オプティマイザ１５０は、対応するショット符号化点３２０（ｙ）を生成し、新しいショット符号化点３２０（ｙ）をショット符号化セット３１０（ｘ）に追加する。
【００６２】
一般に、動的オプティマイザ１５０は、符号化ショットシーケンス３２６を生成し、任意の技術的に実現可能な様式で、関連付けられた品質スコア３３４、関連付けられたビットレート３３２、及び関連付けられた歪みレベル３３６を決定し得る。符号化ショットシーケンス３２６を生成するために、幾つかの実施形態では、動的オプティマイザ１５０は、解像度３２２に基づいてビデオコンテンツにサンプリング動作を実行して、サンプリングビデオコンテンツを生成する。続けて、動的オプティマイザ１５０は、ＱＰ３２４に基づいてサンプリングビデオコンテンツに符号化動作を実行して、符号化ショットシーケンス３２６を生成するように符号化アプリケーション１６２を構成する。動的オプティマイザ１５０は、任意の技術的に実現可能な様式で任意の技術的に実現可能な符号化アルゴリズムに基づいて符号化ショットシーケンス３２６を生成し得る。符号化アルゴリズムの例には、少数を挙げれば、高度ビデオ符号化（ＡＶＣ）及び高効率ビデオ符号化（ＨＥＶＣ）がある。
【００６３】
幾つかの実施形態では、符号化ショットシーケンス３２６に関連付けられた品質スコア３３４を特定するために、動的オプティマイザ１５０は符号化ショットシーケンス３２６を復号化して、復号化ショットシーケンスを生成する。動的オプティマイザ１５０は次に、復号化ショットシーケンスを標的解像度に再サンプリング（すなわち、アップサンプリング又はダウンサンプリング）して、エンドポイントデバイスのクラスの表示特性に関連する再構築ショットシーケンスを生成する。
【００６４】
代替の実施形態では、動的オプティマイザ１５０は、任意の数又は解像度の任意の数の品質スコア３３４を計算し得る。例えば、特定のビデオは３８４０×２１６０解像度で配信し得、それでもなお、１９２０×１０８０解像度の多数のディスプレイにより消費されることが意図される。別のクラスのエンドポイントデバイス、例えば、ラップトップコンピュータは、同じビデオを１２８０×７２０解像度で表示すると予期される。更に別のクラスのエンドポイントデバイス、例えば、タブレット又はスマートフォンデバイスは、９６０×５４０解像度で同じビデオを表示すると予期される。動的オプティマイザ１５０は、復号化ショットシーケンスをこれらの全ての標的解像度にアップサンプリングして、これらの異なるクラスのエンドポイントデバイスの１つを考慮する場合、それに対応して品質を評価することができる。
【００６５】
次に、動的オプティマイザ１５０は、再構築ショットシーケンスを分析して、客観的品質メトリック（ＱＭ）の品質スコア３３４を生成する。例えば、幾つかの実施形態では、動的オプティマイザ１５０は、ＶＭＡＦ（又は調和ＶＭＡＦ）アルゴリズムを実施して、関連付けられた再構築ショットシーケンスに基づいて各符号化ショットシーケンス３２６のＶＭＡＦスコアを生成する。ＶＭＡＦスコア等の多くのビデオ品質メトリックを異なる標的解像度で計算することができるが、異なる解像度３３２に関連付けられた符号化ショットシーケンス３８５間で品質を比較する際、アプリケーションが、復号化後、再サンプリングに同じ標的解像度を使用する必要があることが明かであるはずである。例えば、幾つかの実施形態では、動的オプティマイザ１５０は、復号化ショットシーケンスを１９２０×１０８０に再サンプリングして、各符号化ショットシーケンス３２６の再構築ショットシーケンスを生成する。続けて、動的オプティマイザは、関連付けられた再構築ショットシーケンスに基づいて、符号化ショットシーケンス３２６の品質スコア３３４を計算する。
【００６６】
動的オプティマイザ１５０は、任意の技術的に実現可能な様式で解像度３３４に基づいてビットレート３３２を生成し得る。例えば、幾つかの実施形態では、動的オプティマイザ１５０は、解像度３３４に必要なビット総数を関連付けられたショットシーケンス１３２の長さで除算し得る。同じ又は他の実施形態において、動的オプティマイザ１５０は、品質スコア３３４及び品質を歪みに変換する任意の技術的に実現可能な技法に基づいて、歪みレベル３３６を計算し得る。例えば、動的オプティマイザ１５０は、品質スコア３３４を反転させて、歪みレベル３３６を特定することができる。別の例では、動的オプティマイザ１５０は、一定値から品質スコア３３４を減算して、歪みレベル３３６を特定することができる。
【００６７】
各ショットシーケンス１３２（ｘ）で、凸包生成器３４０は、ショット符号化セット３１０（ｘ）に基づいて凸包３５０（ｘ）を生成する。各凸包３５０（ｘ）は、限定ではなく、所与の歪みレベルでのビットレートを最大化するショット符号化セット３１０（ｘ）に含まれるショット符号化点３２０を含む。凸包生成器３４０がショット符号化セット３１０（０）に基づいて凸包３５０（０）をいかに生成するかの詳細な一例を図４と併せて説明する。
【００６８】
示されるように、及び図５と併せて詳細に説明するように、トレリス反復器３６０は、凸包３５０を受信し、次に、シーケンストレリス３７０を反復更新して、任意の数のビデオ符号化点３８０を生成する。トレリス反復器３６０はソフトウェアモジュールであり、シーケンストレリス３７０は、図５Ａ〜図５Ｄと併せて以下に更に詳細に説明するデータ構造である。
【００６９】
各ビデオ符号化点３８０は、限定ではなく、ショット符号化シーケンス３８２、符号化ビデオシーケンス３８６、ビットレート３３２、及び歪みレベル３３４を含む。ショット符号化シーケンス３８２は、限定ではなく、Ｓ＋１ショット符号化点３２０を含む−各ショットシーケンス１３２の異なるショット符号化点３２０。符号化ビデオシーケンス３８６は、限定ではなく、ショット符号化シーケンス３８２に含まれるＳ＋１ショット符号化点３２０に含まれるＳ＋１符号化ショットシーケンス３２６を含む。ビットレート３３２及び歪みレベル３３４はそれぞれ、符号化ビデオシーケンス３８６のグローバルビットレート及びグローバル歪みレベルを指定する。図５Ａ〜図５Ｄと併せて更に詳細に説明するように、トレリス反復器３６０は、ビデオ符号化点を生成し、続けて、ビデオ符号化点３６０に基づいてグローバル凸包３９０を生成する。
【００７０】
図４は、本発明の様々な実施形態による図３の凸包生成器３４０により生成される凸包３５０（０）を示す。特に、凸包生成器３４０は、ショット符号化セット３１０（０）に基づいて凸包３５０（０）を生成する。示されるように、グラフ４００は、限定ではなく、ビットレート軸４１０及び歪み軸４２０を含む。
【００７１】
動作において、凸包生成器３４０は、解像度３２２に基づいて、ショット符号化セット３１０（０）に含まれるショット符号化点３２０を異なるサブセットに分散させる。続けて、各解像度固有のサブセットで、凸包生成器３４０は、ビットレート３３２をビットレート軸４１０に沿って配置し、歪みレベル３３６を歪み軸４２０に沿って配置して、対応する歪み曲線４５０を生成することにより、ショット符号化点３２０のそれぞれをプロットする。このようにして、凸包生成器３４０は歪み曲線４５０（０）〜４５０（３）を生成し、各歪み曲線４５０は、異なる解像度３２２に対応し、１つ以上のショット符号化点３２０を含む。
【００７２】
歪み曲線４５０を生成した後、凸包生成器３４０は、歪み曲線４５０に沿ったショット符号化点３２０を評価して、凸包３５０（ｘ）を特定する。より具体的には、凸包生成器３４０は、全てのショット符号化点３２０が境界の片側（この場合、境界の右側）に存在するとともに、直線を用いて任意の２つの識別された連続ショット符号化点３２０を接続することにより、残りの全てのショット符号化点３２０が同じ側に配置された状態になるようなものであるショット符号化点３２０を、境界を形成する全ての歪み曲線４５０にわたり識別する。凸包３５０（０）は、１組の識別されたショット符号化点３２０を含む。
【００７３】
凸包を生成する多くの技法が数学の分野で周知であり、凸包３５０を生成するためにそのような全ての技法を実施し得ることを当業者は理解しよう。一実施形態では、凸包生成器３４０は、機械学習技法を適用して、関連付けられたソースビデオシーケンス１３２の様々なパラメータに基づいて、凸包３５０に含まれるショット符号化点３２０を推定する。このようにして、これまで考察した計算の幾つかは、簡素化し、及び／又は全体的に回避し得る。
【００７４】
図５Ａ〜図５Ｄは、本発明の様々な実施形態により、図３のトレリス反復器３６０が符号化ショットシーケンス３３６を符号化ビデオシーケンス３８６にいかに組み立てるかを更に詳細に示す。図５Ａ〜図５Ｄに示されるように、シーケンストレリス３７０は、限定ではなく、ショット軸５２０及びビットレート軸４１０を含む。シーケンストレリス３７０は、限定ではなく、凸包３５０に含まれるショット符号化点３２０の列も含み、各列は特定のショットシーケンス１３２に対応する。例えば、シーケンストレリス３７０に含まれる０番目の列は、凸包３５０（０）に含まれるショット符号化点３２０に対応する。任意の列に含まれるショット符号化点３２０は、昇順ビットレート３３２に従って（及び構築により、降順歪みレベル３３６により）ランク付けされる。任意の列に含まれる「包」ショット符号化点３２０は又、ビットレート３３２の関数として低減する−大きさが−負の傾きを有することが保証される。
【００７５】
便宜上、包ショット符号化点３２０は個々に、以下の系統に従って索引付けられる。所与の包ショット符号化点３２０で、最初の数はショットシーケンス１３２のインデックスであり、２番目の数は、それらの包ショット符号化点３２０のビットレートランクへのインデックスである。例えば、包ショット符号化点３２０  ００は、０番目のショットシーケンス１３２（０）及び０番目のランク付きビットレート３３２に対応する。同様に、包ショット符号化点３２０  ４３は、４番目のショットシーケンス３３２（４）及び３番目のランク付きビットレート３３２（この場合、最高ランクのビットレート３３２）に対応する。
【００７６】
図３と併せて上述したように、シーケンストレリス３７０に含まれる各包ショット符号化点３２０は、異なる符号化ショットシーケンス３２６を含む。トレリス反復器３６０は、これらの符号化ショットシーケンス３２６を結合することにより符号化ビデオシーケンス３８６を生成する。トレリス反復器３６０はシーケンストレリス３７０を実施して、この結合技法を繰り返し実行する。
【００７７】
図５Ａ〜図５Ｄのそれぞれは、異なる反復でトレリス反復器３６０により生成される異なるバージョンのシーケンストレリス３７０を示す。図５Ａは、初期状態のシーケンストレリス３７０（０）を示す。ここで、トレリス反復器３６０は、包ショット符号化点３２０  ００、１０、２０、３０、及び４０を含むショット符号化シーケンス３８２（０）を生成する。これらの最初に選択された包ショット符号化点３２０は、最も低いビットレート３３２及び最も高い歪みレベル３３６を有し、したがって、各列の下部に存在する。
【００７８】
トレリス反復器３６０は、ショット符号化シーケンス３８２（０）に基づいて符号化ビデオシーケンス３８６（０）を生成する。より正確には、トレリス反復器３６０は、続けて包ショット符号化点００、１０、２０、３０、及び４０に含まれる符号化ショットシーケンス３２６を統合して、符号化ビデオシーケンス３８６（０）を生成する。続けて、トレリス反復器３６０は、符号化ビデオシーケンス３８６（０）のビットレート３３２及び歪みレベル３３６を計算する。トレリス反復器３６０は、任意の技術的に実現可能な様式で、符号化ビデオシーケンス３８６（０）のビットレート３３２及び歪みレベル３３６を計算し得る。次に、トレリス反復器３６０は、限定ではなく、ショット符号化シーケンス３８２（０）、符号化ビデオシーケンス３８６（０）、符号化ビデオシーケンス３８６（０）のビットレート３３２、及び符号化ビデオシーケンス３８６（０）の歪みレベル３３６を含むビデオ符号化点３８０（０）を生成する。
【００７９】
次に、トレリス反復器３６０は、ショット符号化シーケンス３８２（０）内の各包ショット符号化点３２０で、包ショット符号化点３２０と包ショット符号化点３２０の上の近傍包ショット符号化点３２０との間でのビットレート３３２に関する歪みの変化率を計算する。例えば、トレリス反復器３６０は、ノード００と０１との間、１０と１１との間、２０と２１との間、３０と３１との間、及び４０と４１との間のビットレート３３２に関する歪みの変化率を計算することができる。特に、特定の符号化ショットシーケンス３２６を含む包ショット符号化点３２０の計算された変化率は、包ショット符号化点３２０でとられたショットシーケンス１３２に関連付けられた歪み曲線４５０の導関数を表す。
【００８０】
トレリス反復器３６０は、最大の大きさを有する導関数を選択し、次に、続くショット符号化シーケンス３８２に包含する、その導関数に関連付けられた上の近傍を選択する。例えば、図５Ｂでは、トレリス反復器３６０は、包ショット符号化点３２０  ３０に関連付けられた導関数が最大であると判断し、したがって、包ショット符号化点３２０  ３１（包ショット符号化点３２０  ３０の上の近傍）をショット符号化シーケンス３８２（１）に含める。特に、示されるように、トレリス反復器３６０は、包ショット符号化点３２０  ００、１０、２０、３１、及び４０を含むショット符号化シーケンス３８２（１）を生成する。
【００８１】
次に、トレリス反復器３６０は、ショット符号化シーケンス３８２（１）に基づいて符号化ビデオシーケンス３８６（１）を生成する。より正確には、トレリス反復器３６０は、続けて包ショット符号化点００、１０、２０、３１、及び４０に含まれる符号化ショットシーケンス３２６を統合して、符号化ビデオシーケンス３８６（１）を生成する。続けて、トレリス反復器３６０は、符号化ビデオシーケンス３８６（１）のビットレート３３２及び歪みレベル３３６を計算する。次に、トレリス反復器３６０は、限定ではなく、ショット符号化シーケンス３８２（１）、符号化ビデオシーケンス３８６（１）、符号化ビデオシーケンス３８６（１）のビットレート３３２、及び符号化ビデオシーケンス３８６（１）の歪みレベル３３６を含むビデオ符号化点３８０（１）を生成する。
【００８２】
トレリス反復器３６０は、この技法を繰り返し実行し、それにより、図５Ｃ及び図５Ｄに示されるように、シーケンストレリス３７０を上昇させる。
【００８３】
図５Ｃでは、トレリス反復器３６０は、包ショット符号化点３２０  ００に関連付けられた導関数が他の導関数と比較して最も大きいと判断し、したがって、ショット符号化シーケンス３８２（２）に包含するために包ショット符号化点３２０  ０１を選択する。示されるように、トレリス反復器３６０は、包ショット符号化点３２０  ０１、１０、２０、３１、及び４０を含むショット符号化シーケンス３８２（２）を生成する。
【００８４】
次に、トレリス反復器３６０は、ショット符号化シーケンス３８２（２）に基づいて符号化ビデオシーケンス３８６（２）を生成する。より正確には、トレリス反復器３６０は、続けて、包ショット符号化点０１、１０、２０、３１、及び４０に含まれる符号化ショットシーケンス３２６を統合して、符号化ビデオシーケンス３８６（２）を生成する。続けて、トレリス反復器３６０は、符号化ビデオシーケンス３８６（２）のビットレート３３２及び歪みレベル３３６を計算する。次に、トレリス反復器３６０は、限定ではなく、ショット符号化シーケンス３８２（２）、符号化ビデオシーケンス３８６（２）、符号化ビデオシーケンス３８６（２）のビットレート３３２、及び符号化ビデオシーケンス３８６（２）の歪みレベル３３６を含むビデオ符号化点３８０（２）を生成する。
【００８５】
トレリス反復器３６０は、図５Ｄに示されるように、ビデオ符号化点３８０（Ｔ）を生成するまでこのプロセスを続ける。ビデオ符号化点３８０（Ｔ）は、限定ではなく、ショット符号化シーケンス３８２（Ｔ）、符号化ビデオシーケンス３８６（Ｔ）、符号化ビデオシーケンス３８６（Ｔ）のビットレート３３２、及び符号化ビデオシーケンス３８６（Ｔ）の歪みレベル３３６を含む。
【００８６】
このようにして、トレリス反復器３６０は、ビットレートが増大し、歪みが低減する１つの包ショット符号化点３２０を選択することによりショット符号化シーケンス３８２を増分的に改善し、それにより、ビットレートが増大し、歪みが低減する符号化ビデオシーケンス３８６の集まりを生成する。
【００８７】
一実施形態では、トレリス反復器３６０は、終了状況を作り出すために、シーケンストレリス３７０を上る前、包ショット符号化点３２０を追加する。そうするに当たり、トレリス反復器３６０は、最大のビットレート３３２を有する包ショット符号化点３２０を複製して、最後から２番目と最後の包ショット符号化点３２０との間の変化率をゼロにし得る。このゼロ変化率が、全てのショットシーケンス１３２で検出される場合、すなわち、変化率の最大の大きさが厳密にゼロである場合、トレリス反復器３６０は、終了状況を識別し、反復を停止する。
【００８８】
新しい符号化点の生成
図６は、本発明の様々な実施形態による、図５Ａ〜図５Ｄに示される異なるビデオ符号化点３８０に基づいて図１の動的オプティマイザ１５０により生成されるグローバル凸包３９０を示す。示されるように、グラフ６００はビットレート軸４１０及び歪み軸４２０を含む。
【００８９】
図５Ａ〜図５Ｄと併せて詳細に説明するように、トレリス反復器３６０は、昇順でショット符号化シーケンス３８２を生成して、歪みレベル３３６を低減し、ビットレート３３２を増大する。その結果、関連付けられた符号化ビデオシーケンス３８６は、高歪みレベル３３６及び低ビットレート３３２から低歪みレベル３３６及び高ビットレート３３２までの範囲に及ぶ。特に、各ビデオ符号化点３８０（ｘ）は、符号化ビデオシーケンス３８６（ｘ）のビットレート３３２及び符号化ビデオシーケンス３８６（ｘ）の歪みレベル３３６を含む。
【００９０】
示されるように、動的オプティマイザ１５０は、ビットレート軸４１０及び歪み軸４２０と突き合わせて異なるビデオ符号化点３８０をプロットして、グローバル凸包３９０を生成する。次に、動的オプティマイザ１５０は、グローバル凸包３９０に含まれる点（すなわち、ビデオ符号化点３８０）を結んで曲線６３０を生成する。したがって、曲線６３０は、全ての符号化ビデオシーケンス３８６にわたるビットレート３３２の関数としての歪みレベル３３６を表す。
【００９１】
一般に、曲線６３０に基づいて、反復コントローラ１４０は、所与のビットレート３３２で、歪みレベル３３６を最小化する符号化ビデオシーケンス３８６を含むビデオ符号化点３８０を選択することができる。逆に、反復コントローラ１４０は、所与の歪みレベル３３６で、所与の歪みレベル３３６でビットレート３３２を最小化する符号化ビデオシーケンスを含むビデオ符号化点３８０を選択することができる。
【００９２】
動作において、反復コントローラ１４０は、標的メトリック値１７０に基づいて「最適化された」ビデオ符号化点３８０を選択する。標的メトリック値１７０は、標的ビットレート３３２又は標的歪みレベル３３６のいずれかであり得る。図６に示される実施形態では、標的メトリック値１７０は標的ビットレート３３２である。したがって、反復コントローラ１４０は、標的メトリック値１７０の最も近くにあるビットレート３３２を有する符号化ビデオシーケンス３８６を含む最適化されたビデオ符号化点３８０を選択する。
【００９３】
示されるように、標的メトリック値１７０に基づいて、反復コントローラ１４０は、符号化ビデオシーケンス３８６（２）を含む最適化されたビデオ符号化点３８０（２）を選択する。特に、符号化ビデオシーケンス３８６（２）は、標的ビットレート３３２で歪みレベル３３６を最小化するビデオ符号化シーケンス３８６である。代替の実施形態では、反復コントローラ１４０は、標的メトリック値１７０の最も近くにある歪みレベル３３６を有する符号化ビデオシーケンス３８６を含む最適化されたビデオ符号化点３８０を選択する。特に、最適化されたビデオ符号化点３８０は、「最適化」されたショット符号化シーケンス３８２も含む。
【００９４】
図２及び図５Ａ〜図５Ｄと併せて上述したように、ショット符号化シーケンス３８２（２）は、符号化ビデオシーケンス３８６（２）に含まれる符号化ショットシーケンス３２６を含むショット符号化点３２０を指定する。示されるように、符号化ビデオシーケンス３８６（２）は、ショットシーケンス１２２（０）の６４０×３６０バージョンから導出され、２６のＱＰ値において符号化された符号化ショットシーケンス３２６を含み、それに続き、ショットシーケンス１２２（１）の６４０×３６０バージョンから導出され、５１のＱＰ値において符号化された符号化ショットシーケンス３２６を含み、それに続き、ショットシーケンス１２２（２）の６４０×３６０バージョンから導出され、５１のＱＰ値において符号化される符号化ショットシーケンス３２６等を含む。
【００９５】
一般に、「最適化」されたショット符号化シーケンス３８２に含まれる「最適化」されたショット符号化点３２０のそれぞれには、異なるショットシーケンス１３２が関連付けられる。各ショットシーケンス１３２（ｘ）で、反復コントローラ１４０は、関連付けられた凸包３５０（ｘ）と共に関連付けられた最適化されたショット符号化点３２０のロケーションを評価して、凸包３５０（ｘ）上の１つ以上の近傍ショット符号化点３２０を識別する。最適化されたショット符号化点３２０及び近傍ショット符号化点３２０の解像度３２２及びＱＰ値３２４に基づいて、反復コントローラ１４０は、ショットシーケンス１３２（ｘ）に任意の数の新しい符号化点２２０を生成し得る。反復コントローラ１４０は、これらの新しい符号化点２２０を符号化リスト２１０（ｘ）に含める。このようにして、反復コントローラ１４０は、符号化点２２０の範囲を繰り返し改善して、標的メトリック値１７０に最良に一致する最適化された符号化ビデオシーケンス１８０に効率的に収束する。
【００９６】
図７は、本発明の様々な実施形態により、図１の反復コントローラ１４０がショットシーケンス１３２（０）の追加の符号化点２２０をいかに生成するかを示す。図６と併せて詳細に説明するように、反復コントローラ１４０は、ショットシーケンス１３２（０）の最適化されたショット符号化点３２０として、２６のＱＰ値３２４において符号化された６４０×３６０ショットシーケンス１２２（０）を含むショット符号化点３２０（１）を識別する。
【００９７】
続けて、反復コントローラ１４０は、４つの新しい符号化点２２０を生成し、ショットシーケンス１３２（０）の符号化点２２０を指定する符号化リスト２１０（０）に新しい符号化点２２０を追加する。反復コントローラ１４０は、以下のアルゴリズムを実施して、新しい符号化点２２０を選択する。まず、反復コントローラ１４０は、凸包３５０に沿って左に配置され、凸包３５０に沿って最適化されたショット符号化点３２０に隣接する「左」ショット符号化点３２０を識別する。左ショット符号化点３２０が、最適化されたショット符号化点３２０と同じ解像度３２２を有する場合、反復コントローラ１４０は、解像度３２２を有する新しい符号化点２１０を生成する。反復コントローラ１４０は、新しい符号化点のＱＰ値３２４を最適化されたショット符号化点３２０及び左ショット符号化点３２０のＱＰ値３２４の平均に等しく設定する。
【００９８】
しかしながら、左ショット符号化点３２０が、最適化されたショット符号化点３２０と同じ解像度３２２を有さない場合、反復コントローラ１４０は２つの新しい符号化点２１０を生成する。反復コントローラ１４０は、第１の新しい符号化点２１０の解像度３２２を最適化されたショット符号化点３２０の解像度３２２に等しく設定する。反復コントローラ１４０は、第１の新しい符号化点２１０のＱＰ値３２４を最適化されたショット符号化点３２０のＱＰ値３２４及びビデオコーデックにより可能な最大ＱＰ値の平均に設定する。反復コントローラ１４０は、第２の新しい符号化点２１０の解像度３２２を最適化されたショット符号化点３２０の解像度３２２の真下の解像度に等しく設定する。反復コントローラ１４２は、第２の新しい符号化点２１０のＱＰ値３２４をビデオコーデックにより可能な最小ＱＰ値に設定する。
【００９９】
次に、反復コントローラ１４０は、凸包３５０に沿って右に配置され、凸包３５０に沿って最適化されたショット符号化点３２０に隣接する「右」ショット符号化点３２０を識別する。右ショット符号化点３２０が、最適化されたショット符号化点３２０と同じ解像度３２２を有する場合、反復コントローラ１４０は、解像度３２２を有する新しい符号化点２１０を生成する。反復コントローラ１４０は、新しい符号化点のＱＰ値３２４を最適化されたショット符号化点３２０及び右ショット符号化点３２０のＱＰ値３２４の平均に等しく設定する。
【０１００】
しかしながら、右ショット符号化点３２０が、最適化されたショット符号化点３２０と同じ解像度３２２を有さない場合、反復コントローラ１４０は２つの新しい符号化点２１０を生成する。反復コントローラ１４０は、第１の新しい符号化点２１０の解像度３２２を最適化されたショット符号化点３２０の解像度３２２に等しく設定する。反復コントローラ１４０は、第１の新しい符号化点２１０のＱＰ値を最適化されたショット符号化点３２０のＱＰ値３２４及びビデオコーデックにより可能な最小ＱＰ値の平均に設定する。反復コントローラ１４０は、第２の新しい符号化点２１０の解像度３２２を最適化されたショット符号化点３２０の解像度３２２の真上の解像度に等しく設定する。反復コントローラ１４０は、第２の新しい符号化点２１０のＱＰ値３２４をビデオコーデックにより可能な最大ＱＰ値に設定する。
【０１０１】
符号化点演算７１０は、反復コントローラ１４０により実行される例示的な演算を示す。示されるように、最適化されたショット符号化点３２０（１）は、６４０×３６０の解像度３２２（１）及び２６のＱＰ値３２４（１）を有する。左ショット符号化点３２０（０）は、６４０×３６０の解像度３２２（０）及び５１のＱＰ値３２４（０）を有する。したがって、反復コントローラ１４０は、新しい符号化点２２０（６）、２２０（７）、及び２２０（８）を符号化リスト２１０（０）（符号化リスト２１０（０）には６つのエントリが既に存在する）に追加する。符号化点２２０（６）は、６４０×３６０の解像度３２２（６）及び（５１＋２６）／２＝３９のＱＰ値３２４（６）を有する。符号化点２２０（７）は、６４０×３６０の解像度３２２（７）及び（２６＋１）／２＝１４のＱＰ値３２４（７）を有する。符号化点２２０（８）は、９６０×５４０の解像度３２２（８）及び（２６＋５１）／２＝３９のＱＰ値３２４（８）を有する。
【０１０２】
代替の実施形態では、反復コントローラ１４０は任意の数及び任意のタイプのアルゴリズムを実施して、新しい符号化点２２０を選択し得る。例えば、幾つかの実施形態では、反復コントローラ１４０は、凸包２５０に基づいて追加の符号化点２２０の検索を制限しない。その代わり、反復コントローラ１４０は、全ての利用可能な解像度の中で、最適化されたショット符号化点３２０の左に検索を拡張して、最適化されたショット符号化点３２０の解像度３２２に最も近いが、最適化されたショット符号化点３２０の解像度３２２よりも低い解像度３２２及び僅かに低いビットレート３２４を有するショット符号化点３２０を識別する。次に、反復コントローラ１４０は、識別されたショット符号化点３２０の解像度３２２と、選択されたショット符号化点３２０のＱＰ値３２４及び同じ解像度３２２におけるＱＰ値の平均であり、僅かに低いＱＰ値３２４であるＱＰ値３２４とを有する新しい符号化点２２０を生成する。
【０１０３】
相補的に、反復コントローラ１４０は、全ての利用可能な解像度の中で、最適化されたショット符号化点３２０の右に検索を拡張して、最適化されたショット符号化点３２０の解像度３２２に最も近いが、最適化されたショット符号化点３２０の解像度３２２よりも高い解像度３２２及び最適化されたショット符号化点３２０のビットレート３２４よりも僅かに高いビットレート３２４を有するショット符号化点３２０を識別する。次に、反復コントローラ１４０は、識別されたショット符号化点３２０の解像度３２２と、選択されたショット符号化点３２０のＱＰ値３２４及び同じ解像度３２２におけるＱＰ値の平均であり、僅かに高いＱＰ値３２４であるＱＰ値とを有する新しい符号化点２２０を生成する。
【０１０４】
各ショットシーケンス１３２（ｘ）で、ショットシーケンス１３２（ｘ）の任意の新しい符号化点２２０を識別した後、反復コントローラ１４０は、ショットシーケンス１３２（ｘ）に関連付けられた符号化リスト２１０（ｘ）に既に含まれているあらゆる新しい符号化点２２０を破棄する。次に、反復コントローラ１４０は、ショットシーケンス１３２（ｘ）に関連付けられた任意の残りの新しい符号化点２２０（ｘ）を符号化リスト２１０（ｘ）に追加する。反復コントローラ１４０は、あらゆる新しい符号化点２２０を任意の符号化点２１０に追加する場合、更新された符号化リスト２１０に基づいて再実行するように動的オプティマイザ１５０を構成する。しかしながら、反復コントローラ１４０は、いかなる新しい符号化点２２０もいかなる符号化リスト２１０にも追完しない場合、反復コントローラ１４０が、標的メトリック値１７０に最良に一致する符号化ビデオシーケンス３８６を有する最適化されたビデオ符号化点３８０に収束したと判断する。したがって、反復コントローラ１４０は、最適化されたビデオ符号化点３８０に含まれる符号化ビデオシーケンス３８６に等しく最適化されたビデオシーケンス１８０を設定する。
【０１０５】
代替の実施形態では、反復コントローラ１４０は、反復コントローラ１４０が、任意の技術的に実現可能な様式で標的メトリック値１７０に十分に一致する符号化ビデオシーケンス３８６を有する最適化されたビデオ符号化点３８０に収束したと判断し得る。例えば、幾つかの実施形態では、反復コントローラ１４０は、反復の総数が最大反復構成パラメータ（例えば、５回の反復）に等しい場合、反復（例えば、動的オプティマイザ１５０の再実行）を停止する。他の実施形態では、反復コントローラ１４０は、各反復で得られた改善を測定し、改善が改善更生パラメータ（例えば、１％）未満になった後、反復を停止し得る。更に他の実施形態では、反復コントローラ１４０は、反復符号化アプリケーション１２０により消費されるプロセッサリソース量を追跡し、プロセッサリソース量がプロセッサ限度構成パラメータを超えた後、反復を停止し得る。
【０１０６】
最適化されたビデオシーケンス１８０を特定した後、反復コントローラ１４０は、任意の技術的に実現可能な様式で、最適化されたビデオシーケンス１８０をＣＤＮ１９０に送信する。代替の実施形態では、反復コントローラ１４０は、最適化されたビデオ符号化点３８０に含まれる符号化ビデオシーケンス３８６をＣＤＮ１９０に周期的に送信し得る。このようにして、反復コントローラ１４０は、反復コントローラ１４０が反復を続ける間、エンドポイントデバイスがメディアタイトルを表示できるようにする。
【０１０７】
図８は、本発明の様々な実施形態による、図１の最適化された符号化ビデオシーケンス１８０のより詳細な図である。有利なことに、反復符号化アプリケーション１２０は、標的メトリック値１７０に基づいて最適化された符号化ビデオシーケンス１８０に含まれる符号化ショットシーケンス３２６のそれぞれを最適化する。
【０１０８】
示されるように、最適化された符号化ビデオシーケンス１８０は、ショットシーケンス１２２（０）の９６０×５４０バージョンから導出され、４０のＱＰ値において符号化された符号化ショットシーケンス３２６を含み、それに続き、ショットシーケンス１２２（１）の６４０×３６０バージョンから導出され、１１のＱＰ値において符号化された符号化ショットシーケンス３２６を含み、それに続き、ショットシーケンス１２２（２）の１２８０×７２０バージョンから導出され、４７のＱＰ値において符号化された符号化ショットシーケンス３２６等を含む。
【０１０９】
図９Ａ及び図９Ｂは、本発明の様々な実施形態による、ソースビデオシーケンスを符号化する方法ステップの流れ図を記載する。方法ステップは図１〜図８のシステムを参照して説明されるが、方法ステップを任意の順序で実施するように構成された任意のシステムが本発明の範囲内に入ることを当業者は理解しよう。
【０１１０】
示されるように、方法９００はステップ９０２において開始され、ステップ９０２において、ショット分析器１３０は、ソースビデオシーケンス１２２をショットシーケンス１３２に分割する。ステップ９０４において、各ショットシーケンス１３２で、反復コントローラ１４０は符号化リスト２１０を生成する。符号化リスト２１０に含まれる各符号化点２２０は、解像度３２２及びＱＰ値３２４を含む。代替の実施形態では、各符号化点２２０は、ＱＰ値３２４の代替又は追加として、任意の数及び任意のタイプの符号化パラメータを指定し得る。
【０１１１】
ステップ９０６において、各符号化リスト２１０で、動的オプティマイザ１５０は、新しい符号化点２２０を識別し、対応する符号化ショットシーケンス３２６を生成する。ステップ９０８において、新しい符号化ショットシーケンス３２６のそれぞれで、動的オプティマイザ１５０は、ビットレート３３２、品質スコア３３４、及び歪みレベル３３６を計算する。続けて、動的オプティマイザ１５０は、限定ではなく、符号化ショットシーケンス３２６、解像度３２２、ＱＰ値３２４、ビットレート３３２、品質スコア３３４、歪みレベル３３６を含む新しいショット符号化点３２０を生成する。
【０１１２】
ステップ９１０において、ショットシーケンス１３２及び解像度３２２の各組合せで、凸包生成器３４０は、対応するショット符号化点３２０に基づいて、関連付けられた歪み曲線４５０を生成する。ステップ９１２において、各ショットシーケンス１３２（ｘ）で、凸包生成器３４０は、関連付けられた歪み曲線４５０に基づいて凸包３５０（ｘ）を生成する。ステップ９１４において、トレリス反復器３６０は、凸包３５０に基づいてシーケンストレリス３７０を生成する。ステップ９１６において、トレリス反復器３６０は、シーケンストレリス３７０を繰り返し上り、符号化ビデオシーケンス３８６及び関連付けられたビデオ符号化点３８０を生成する。ステップ９１８において、トレリス反復器３６０は、ビデオ符号化点３８０に基づいてグローバル凸包２９０を生成する。
【０１１３】
ステップ９２０において、反復コントローラ１４０は、グローバル凸包２９０及び標的メトリック値１７０に基づいて最適化されたビデオ符号化点３８０を選択する。ステップ９２２において、各ショットシーケンス１３２で、反復コントローラ１４０は、最適化ビデオ符号化点３８０に含まれるショット符号化シーケンス３８２に基づいて最適化されたショット符号化点３２０を選択する。ステップ９２４において、各ショットシーケンス２３２（ｘ）で、反復コントローラ１４０は、凸包３５０（ｘ）及びショットシーケンス２３２（ｘ）に関連付けられた最適化されたショット符号化点３２０に基づいて新しい符号化点２２０を生成する。ステップ９２６において、反復コントローラ１４０は、任意の新しい符号化点２２０があるか否かを判断する。ステップ９２６において、反復コントローラ１４０が、新しい符号化点２２０があると判断する場合、方法９００はステップ９６０に戻り、動的オプティマイザ１５０は、新しい符号化点２２０の新しい符号化ショットシーケンス３２６を生成する。
【０１１４】
しかしながら、ステップ９２６において、反復コントローラ１４０が、新しい符号化点２２０がないと判断する場合、方法９００はステップ９２８に進む。ステップ９２８において、反復コントローラ１４０は、最適化された符号化ビデオシーケンス１８０を最適化されたビデオ符号化点３８０に含まれる符号化ビデオシーケンス３８６に等しく設定する。ステップ９３０において、反復コントローラ１４０は、最適化された符号化ビデオシーケンス１８０をコンテンツ配信ネットワーク１９０に送信して、エンドポイントデバイスにストリーミングする。次に、方法９００は終了する。
【０１１５】
まとめると、開示される技法は、標的メトリック値に基づくソースビデオシーケンスの効率的で最適な符号化を可能にする。反復符号化アプリケーションは、限定ではなく、ショット分析器、反復コントローラ、及び動的オプティマイザを含む。まず、ショット分析器は、ソースビデオシーケンスを複数のショットシーケンスに分割する。続けて、各ショットシーケンスで、反復コントローラは、比較的疎に分布した符号化点を含むように符号化リストを初期化する。各符号化点は、解像度及び量子化パラメータ（ＱＰ）を指定する。次に、反復コントローラは、符号化リストに基づいてグローバル凸包を生成するように動的オプティマイザを構成する。
【０１１６】
まず、動的オプティマイザは、符号化リストに含まれる新しい符号化点に基づいて、新しいショット符号化点を生成する。「新しい」符号化点とは、動的オプティマイザが、関連付けられた符号化ショットシーケンスを前に生成したことがない符号化点である。各ショット符号化点は、限定ではなく、符号化ショットシーケンス、解像度、ＱＰ値、品質スコア、歪みレベル、及びビットレートを含む。続けて、各ショットシーケンスで、動的オプティマイザは、ショットシーケンスに関連付けられたショット符号化点のサブセットを含む凸包を生成する。一般に、所与のショットシーケンスで、関連付けられた凸包に含まれるショット符号化点は、異なる歪みレベルのビットレートを最小化する。
【０１１７】
次に、動的オプティマイザは、全てのショットシーケンスにわたる凸包を評価して、ショット符号化シーケンスを特定する。各ショット符号化シーケンスは、異なるショットシーケンスのショット符号化点を指定する。各ショット符号化シーケンスで、動的オプティマイザは、ショット符号化点に含まれる異なる符号化ショットシーケンスを統合して、符号化ビデオシーケンスを生成する。各ショット符号化シーケンスで、動的オプティマイザは次に、ショット符号化シーケンス、関連付けられた符号化ビデオシーケンス、符号化ショットシーケンスの全体ビットレート、及び符号化ショットシーケンスの全体歪みレベルを含むビデオ符号化点を生成する。続けて、動的オプティマイザは、ビデオ符号化点に基づいてグローバル凸包を生成する。一般に、ソースビデオシーケンスで、グローバル凸包に含まれる各ビデオ符号化点は、異なる全体歪みレベルの全体ビットレートを最小化する。
【０１１８】
反復コントローラは、グローバル凸包及び標的メトリック値（例えば、ビットレート又は品質スコア）に基づいて、最適化されたショット符号化シーケンスを選択する。各ショットシーケンスで、最適化されたビデオ符号化シーケンスは最適化されたショット符号化点を指定する。各ショットシーケンスで、反復コントローラは、関連付けられた凸包に沿った最適化されたショット符号化点のロケーションを評価して、１つ以上の近傍ショット符号化を識別する。最適化されたショット符号化点の解像度及びＱＰ値並びに近傍ショット符号化点に基づいて、反復コントローラは、ショットシーケンスの任意の数の新しい符号化点を生成し得る。反復コントローラは、任意の新しい符号化点を識別する場合、拡張された組の符号化点に基づいて新しいグローバル凸包を生成するように動的オプティマイザを構成する。
【０１１９】
しかしながら、反復コントローラは、いかなる新しい符号化点も識別しない場合、最適化された符号化ビデオシーケンスとして、最適化されたビデオ符号化点に含まれる符号化ビデオシーケンスを選択する。最後に、反復コントローラは、最適化された符号化ビデオシーケンスをコンテンツ配信ネットワークに送信して、エンドポイントデバイスに配信する。
【０１２０】
従来技術に対する開示される技法の少なくとも１つの技術改善は、個々の符号化ショットシーケンスを含む最適化された符号化ビデオシーケンスへの反復収束により、通常、従来の符号化技法に関連する符号化非効率性が低減することである。そのような符号化非効率性は、計算リソース及び記憶リソースを不必要に無駄にするのみならず、これらのタイプの非効率性は又、メディアタイトルの符号化バージョンをエンドポイントデバイスにストリーミングするのに必要な帯域幅も不必要に増大させる。
【０１２１】
１．幾つかの実施形態では、コンピュータ実施の方法は、第１の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第１のショットシーケンスに基づいて第１の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、第１のショットシーケンスに関連付けられた第１の凸包を生成する、実行するステップと、第１の凸包及びソースビデオシーケンスに含まれる第２のショットシーケンスに関連付けられた第２の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、複数の符号化ビデオシーケンス及び第１のビデオメトリックの標的値に基づいて、第１の組の符号化点に含まれない第１の符号化点を計算するステップと、第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを含む。
【０１２２】
２．最適化された符号化ビデオシーケンスを生成するステップは、第１のショットシーケンス及び第１の符号化点に基づいて第１の符号化ショットシーケンスを生成するステップと、第２のショットシーケンス及び第１の符号化点に等しくない第２の符号化点に基づいて第２の符号化ショットシーケンスを生成するステップと、第１の符号化ショットシーケンス及び第２の符号化ショットシーケンスを統合するステップとを含む、条項１に記載のコンピュータ実施の方法。
【０１２３】
３．１つ以上の凸包演算を実行するステップは、第１の組のショット符号化点を含む領域を特定するステップと、領域の境界を識別するステップであって、第１の組のショット符号化点に含まれるショット符号化点は、境界の第１の側に存在しない、識別するステップと、境界に沿って配置されない第１の組のショット符号化点に含まれる任意のショット符号化点を破棄するステップであって、それにより、第１の凸包を生成する、破棄するステップとを含む、条項１又は２に記載のコンピュータ実施の方法。
【０１２４】
４．複数の符号化ビデオシーケンスを生成するステップは、第１のショット符号化点と第２のショット符号化点との間の第１の傾き値を計算するステップであって、第１のショット符号化点及び第２のショット符号化点の両方は、第１の凸包に含まれる、計算するステップと、第１の傾き値に基づいて第２のショット符号化点に関連付けられた第１の符号化ショットシーケンスを選択するステップと、第１の符号化ショットシーケンスを第２の符号化ショットシーケンスと統合するステップであって、それにより、第１の符号化ビデオシーケンスを生成し、第２の符号化ショットシーケンスには、第２の凸包に含まれる第３のショット符号化点が関連付けられる、統合するステップを含む、条項１〜３のいずれか一項に記載のコンピュータ実施の方法。
【０１２５】
５．第１の符号化点を計算するステップは、複数の符号化ビデオシーケンスに基づいてグローバル凸包を生成するステップであって、グローバル凸包は第１の組のビデオ符号化点を含む、生成するステップと、標的値に基づいて第１の組のビデオ符号化点に含まれる第１のビデオ符号化点を選択するステップと、第１のビデオ符号化点及び第１の凸包に基づいて第１の符号化点を特定するステップとを含む、条項１〜４のいずれか一項に記載のコンピュータ実施の方法。
【０１２６】
６．第１の符号化点を計算するステップは、標的値に基づいて複数の符号化ビデオシーケンスに含まれる第１の符号化ビデオシーケンスを識別するステップと、第１の符号化ビデオシーケンスに関連付けられ、第１の凸包に含まれる第１のショット符号化点を識別するステップと、第１のショット符号化点と第２のショット符号化点との間の距離に基づいて、第１の凸包に含まれる第２のショット符号化点を識別するステップと、第１のショット符号化点及び第２のショット符号化点に基づいて少なくとも１つの算術演算を実行するステップとを含む、条項１〜５のいずれか一項に記載のコンピュータ実施の方法。
【０１２７】
７．少なくとも１つの算術演算を実行するステップは、符号化パラメータの第１の値及び符号化パラメータの第２の値の平均を計算するステップを含み、符号化パラメータの第１の値には、第１のショット符号化点が関連付けられ、符号化パラメータの第２の値には第２のショット符号化点が関連付けられる、条項１〜６のいずれか一項に記載のコンピュータ実施の方法。
【０１２８】
８．第１の符号化点を計算するステップは、標的値に基づいて複数の符号化ビデオシーケンスに含まれる第１の符号化ビデオシーケンスを識別するステップと、第１の符号化ビデオシーケンスが関連付けられ、第１の凸包に含まれる第１のショット符号化点を識別するステップと、第１のショット符号化点と第２のショット符号化点との間の距離に基づいて、第１の凸包に含まれる第２のショット符号化点を識別するステップと、第１のショット符号化点に関連付けられた第１の解像度が、第２のショット符号化点に関連付けられた第２の解像度に等しくないと判断するステップと、第１の解像度及び第２の解像度に基づいて、符号化パラメータの最大値又は符号化パラメータの最小値のいずれかに符号化パラメータの終点値を設定するステップと、第１のショット符号化点に関連付けられた符号化パラメータの第１の値と符号化パラメータの終点値との間で少なくとも１つの算術演算を実行するステップとを含む、条項１〜７のいずれか一項に記載のコンピュータ実施の方法。
【０１２９】
９．第１のビデオメトリックは、ビットレート、ピーク信号対雑音比（ＰＳＮＲ）、線形ビデオ多方法評価融合（ＶＭＡＦ）メトリック、調和ＶＭＡＦ（ＶＭＡＦｈ）メトリック、又は歪みメトリックを含む、条項１〜８のいずれか一項に記載のコンピュータ実施の方法。
【０１３０】
１０．幾つかの実施形態では、コンピュータ可読記憶媒体は命令を含み、命令は、プロセッサにより実行されると、プロセッサに、第１の組の符号化点及びメディアタイトルに関連付けられたソースビデオシーケンスに含まれる第１のショットシーケンスに基づいて第１の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化ショットシーケンスが関連付けられる、生成するステップと、第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、第１のショットシーケンスに関連付けられた第１の凸包を生成する、実行するステップと、第１の凸包及びソースビデオシーケンスに含まれる第２のショットシーケンスに関連付けられた第２の凸包に基づいてグローバル凸包を生成するステップと、第１のビデオメトリックの標的値、グローバル凸包、及び第１の凸包に基づいて、第１の組の符号化点に含まれない第１の符号化点を計算するステップと、第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを実行させる。
【０１３１】
１１．最適化された符号化ビデオシーケンスを生成するステップは、第１のショットシーケンス及び第１の符号化点に基づいて第１の符号化ショットシーケンスを生成するステップと、第２のショットシーケンス及び第１の符号化点に等しくない第２の符号化点に基づいて第２の符号化ショットシーケンスを生成するステップと、第１の符号化ショットシーケンス及び第２の符号化ショットシーケンスを統合するステップとを含む、条項１０に記載のコンピュータ可読記憶媒体。
【０１３２】
１２．１つ以上の凸包演算を実行するステップは、第１の組のショット符号化点を含む領域を特定するステップと、領域の境界を識別するステップであって、第１の組のショット符号化点に含まれるショット符号化点は、境界の第１の側に存在しない、識別するステップと、境界に沿って配置されない第１の組のショット符号化点に含まれる任意のショット符号化点を破棄するステップであって、それにより、第１の凸包を生成する、破棄するステップとを含む、条項１０又は１１に記載のコンピュータ可読記憶媒体。
【０１３３】
１３．第１の凸包に含まれる各ショット符号化点には、ビットレート及び歪みメトリック又は視覚品質メトリックのいずれかの値の両方が関連付けられる、条項１０〜１２のいずれか一項に記載のコンピュータ可読記憶媒体。
【０１３４】
１４．グローバル凸包を生成するステップは、第１のショット符号化点と第２のショット符号化点との間の第１の傾き値を計算するステップであって、第１のショット符号化点及び第２のショット符号化点の両方は、第１の凸包に含まれる、計算するステップと、第１の傾き値に基づいて第２のショット符号化点に関連付けられた第１の符号化ショットシーケンスを選択するステップと、第１の符号化ショットシーケンスを第２の符号化ショットシーケンスと統合するステップであって、それにより、第１の符号化ビデオシーケンスを生成し、第２の符号化ショットシーケンスには、第２の凸包に含まれる第３のショット符号化点が関連付けられる、統合するステップと、第１の符号化ビデオシーケンスに基づいて第１のビデオ符号化点を生成するステップと、第１のビデオ符号化点を部分グローバル凸包に追加するステップであって、それにより、グローバル凸包を生成する、追加するステップとを含む、条項１０〜１３のいずれか一項に記載のコンピュータ可読記憶媒体。
【０１３５】
１５．第１の符号化点を計算するステップは、標的値に基づいてグローバル凸包に含まれる第１のビデオ符号化点を選択するステップと、第１のビデオ符号化点に基づいて第１の凸包に含まれる第１のショット符号化点を選択するステップと、第１のショット符号化点と第２のショット符号化点との間の距離に基づいて、第１の凸包に含まれる第２のショット符号化点を識別するステップと、第１のショット符号化点及びに第２のショット符号化点に基づいて少なくとも１つの算術演算を実行するステップとを含む、条項１０〜１４のいずれか一項に記載のコンピュータ可読記憶媒体。
【０１３６】
１６．少なくとも１つの算術演算を実行するステップは、第１の符号化点に関連付けられた第１の解像度と第２の符号化点に関連付けられた第２の解像度との平均を計算するステップを含む、条項１０〜１５のいずれか一項に記載のコンピュータ可読記憶媒体。
【０１３７】
１７．第１の符号化点を計算するステップは、標的値に基づいてグローバル凸包に含まれる第１のビデオ符号化点を選択するステップと、第１のビデオ符号化点に基づいて第１の凸包に含まれる第１のショット符号化点を選択するステップと、第１のショット符号化点と第２のショット符号化点との間の距離に基づいて、第１の凸包に含まれる第２のショット符号化点を識別するステップと、第１のショット符号化点に関連付けられた第１の解像度が、第２のショット符号化点に関連付けられた第２の解像度に等しくないと判断するステップと、第１の解像度及び第２の解像度に基づいて、符号化パラメータの最大値又は符号化パラメータの最小値のいずれかに符号化パラメータの終点値を設定するステップと、第１のショット符号化点に関連付けられた符号化パラメータの第１の値と符号化パラメータの終点値との間で少なくとも１つの算術演算を実行するステップとを含む、条項１０〜１６のいずれか一項に記載のコンピュータ可読記憶媒体。
【０１３８】
１８．第１の符号化点は、解像度及び符号化パラメータの少なくとも一方を指定する、条項１０〜１７のいずれか一項に記載のコンピュータ可読記憶媒体。
【０１３９】
１９．幾つかの実施形態では、システムは、命令を記憶するメモリと、メモリに結合されるプロセッサとを含み、プロセッサは、命令を実行すると、メディアタイトルに関連付けられたビデオシーケンスを分割して、複数のフレームセットにするステップと、第１の組の符号化点及び複数のフレームセットに含まれる第１のフレームセットに基づいて、第１の組のショット符号化点を生成するステップであって、各ショット符号化点には異なる符号化フレームセットが関連付けられる、生成するステップと、第１の組のショット符号化点にわたり１つ以上の凸包演算を実行するステップであって、それにより、第１のフレームセットに関連付けられた第１の凸包を生成する、実行するステップと、第１の凸包及び複数のフレームセットに含まれる第２のフレームセットに関連付けられた第２の凸包に基づいて複数の符号化ビデオシーケンスを生成するステップと、複数の符号化ビデオシーケンス及び第１のビデオメトリックの標的値に基づいて、第１の組の符号化点に含まれない第１の符号化点を計算するステップと、第１の符号化点に基づいて、最適化された符号化ビデオシーケンスを生成するステップであって、最適化された符号化ビデオシーケンスの少なくとも一部は続けて、メディアタイトルの再生中、エンドポイントデバイスにストリーミングされる、生成するステップを行うように構成される。
【０１４０】
２０．プロセッサは、第１のフレームセット及び関第１の符号化点に基づいて第１の符号化フレームセットを生成するステップと、第２のフレームセット及び第１の符号化点に等しくない第２の符号化点に基づいて第２の符号化フレームセットを生成するステップと、第１の符号化フレームセット及び第２の符号化フレームセットを統合するステップとを行うことにより、最適化された符号化ビデオシーケンスの生成を決定するように構成される、条項１９に記載のシステム。
【０１４１】
任意の請求項に記載される任意のクレーム要素及び／又は本願に記載される任意の要素の任意の様式でのありとあらゆる組合せは、本発明の意図される範囲及び保護内にある。
【０１４２】
様々な実施形態の説明は、例示を目的として提示されたが、網羅的であること又は開示される実施形態への限定を意図しない。記載される実施形態の範囲及び趣旨から逸脱せずに、多くの変更及び変形が当業者には明らかになろう。
【０１４３】
本実施形態の態様は、システム、方法、又はコンピュータプログラム製品として実施し得る。したがって、本開示の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェア態様及びハードウェア態様を組み合わせた実施形態の形態をとり得、これらは全て本明細書では「モジュール」又は「システム」と呼ばれ得る。さらに、本開示の態様は、コンピュータ可読プログラムコードが内部で実施された１つ以上のコンピュータ可読媒体で実施されるコンピュータプログラム製品の形態をとり得る。
【０１４４】
１つ以上のコンピュータ可読媒体の任意の組合せが利用可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、限定ではなく、電子、磁気、光学、電磁、赤外線、又は半導体のシステム、装置、デバイス、又は上記の任意の適した組合せであり得る。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）には以下がある：１つ以上のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、又は上記の任意の適した組合せ。本文書では、コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスにより使用され、又は命令実行システム、装置、若しくはデバイスと併せて使用されるプログラムを包含又は記憶することができる任意の有形媒体であり得る。
【０１４５】
本開示の態様は、本開示の実施形態による方法、装置（システム）、及びコンピュータプログラム製品のフローチャート図及び／又はブロック図を参照して上述された。フローチャート図及び／又はブロック図の各ブロック及びフローチャート図及び／又はブロック図内のブロックの組合せが、コンピュータプログラム命令によって実施することができることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、機械を生成し得る。命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行されると、フローチャート及び／又はブロック図の１つ以上のブロックにおいて指定される機能を実施できるようにする。そのようなプロセッサは、限定ではなく、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ又はフィールドプログラマブルゲートアレイであり得る。
【０１４６】
図中のフローチャート及びブロック図は、本開示の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実施のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図内の各ブロックは、指定された論理関数を実施する１つ以上の実行可能命令を含むモジュール、セグメント、又はコードの部分を表し得る。幾つかの代替の実施態様では、ブロックで示される機能が、図に示される順序外で行われ得ることにも留意されたい。例えば、連続して示される２つのブロックは実際には、関わる機能に応じて、略同時に実行することができ、又はブロックは時には、逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック及びブロック図及び／又はフローチャート図内のブロックの組合せが、指定された機能若しくは動作を実行する専用ハードウェアベースのシステム又は専用ハードウェア及びコンピュータ命令の組合せにより実施可能なことにも留意する。
【０１４７】
上記は本開示の実施形態に関するが、本開示の基本範囲から逸脱せずに、本開示の他の実施形態及び更なる実施形態を考案し得、本開示の範囲は以下の特許請求の範囲によって決定される。
【図１】
0006942807.tif 000002
【図２】
0006942807.tif 000003
【図３】
0006942807.tif 000004
【図４】
0006942807.tif 000005
【図５Ａ】
0006942807.tif 000006
【図５Ｂ】
0006942807.tif 000007
【図５Ｃ】
0006942807.tif 000008
【図５Ｄ】
0006942807.tif 000009
【図６】
0006942807.tif 000010
【図７】
0006942807.tif 000011
【図８】
0006942807.tif 000012
【図９Ａ】
0006942807.tif 000013
【図９Ｂ】
0006942807.tif 000014