【文献】
          Fabio Sonnati,Encoding for performance on multiple devices,[online],2011年10月  5日,URL,www.progettosineria.com/flashvideo/finalmax2011.pdf
        
        【文献】
          G. Hervouet et.al.,Video Quality Optimization - Multi-rate Video Encoding,[online],2010年  7月  1日,URL,http://telcogroup.ru/files/materials-pdf/DVB_standards/IPTV/wp_multires_encoding.pdf
        
      
    (58)【調査した分野】(Int.Cl.,DB名)
  前記1組の符合化データについて、前記対応するビットレートを決定する前記工程が、前記1組の符合化データと関連づけられたサイズおよび前記1組の符合化データのプレイアウト継続時間と関連づけられた時間の量に基づく除算演算を行うことを含む、請求項1記載のコンピュータによって実施される方法。
  前記ビットレートラダーを選択する前記工程が、前記バケット化ビットレートが複雑性バケットのビットレート範囲内であることを決定することと、前記複雑性バケットと関連づけられたビットレートラダーを識別することとを含む、請求項1記載のコンピュータによって実施される方法。
前記関係が曲線であり、前記関係を導出する前記工程が、前記1組の符合化データに1以上の曲線近似処理を適用することを含む、請求項1記載のコンピュータによって実施される方法。
  前記エンコーダを構成する前記工程の前に、前記ソースデータから複数のサンプルを抽出する工程を更に含み、前記エンコーダが、前記複数のサンプルと関連づけられた信号のディテールに基づいて、複数の組の前記符号化データを生成する、請求項1記載のコンピュータによって実施される方法。
  前記ビデオ品質指標の値を決定する前記工程が、前記エンコーダによって生成されたログファイルに対して1以上の読み出し処理を行うことを含む、請求項10記載のコンピュータ可読記憶媒体。
  前記1組の符合化データについて、前記対応するビットレートを決定する前記工程が、前記エンコーダによって生成されたログファイルに対して1以上の読み出し処理を行うことを含む、請求項10記載のコンピュータ可読記憶媒体。
  前記ビットレートラダーを選択する前記工程が、前記バケット化ビットレートが複雑性バケットのビットレート範囲内であることを決定することと、前記複雑性バケットと関連づけられたビットレートラダーを識別することとを含む、請求項10記載のコンピュータ可読記憶媒体。
  前記エンコーダを構成する前記工程の前に、前記ソースデータから複数のクリップを抽出する工程を更に含み、前記エンコーダが、前記複数のクリップと関連づけられた信号のディテールに基づいて、複数の組の前記符号化データを生成し、各前記クリップが所定の長さの時間を表す、請求項10記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0010】
  本発明の上記の特徴を詳細に理解できるように、上記で簡潔に要約した本発明を、実施形態を参照してより具体的に説明する。実施形態の幾つかが、添付の図面に示されている。しかし、添付の図面は、本発明の典型的な実施形態のみを示すものであり、本発明の範囲を限定するものとは見なされず、本発明は、他の等しく効果的な実施形態を認め得ることを留意されたい。
 
【0011】
  以下の説明において、本発明のより完全な理解を提供するために、多くの具体的な詳細が述べられる。しかし、当業者には、これらの具体的な詳細の1以上を含まずとも本発明が実施され得ることが自明である。
 
【0012】
  システムの概観
  図1は、本発明の1以上の態様を実装するよう構成されたシステム100の概念図である。図示されるように、システム100は、入力データの送信機能および/またはビデオの表示機能がある様々な装置に接続された仮想プライベートクラウド(即ち、カプセル化された共有リソース、ソフトウェア、データ等)102を含む。そのような装置は、デスクトップコンピュータ102、スマートフォン104、およびラップトップ106を含むが、それらに限定されない。別の実施形態では、システム100は、任意の数および/またはタイプの入力装置、出力装置、および/または入出力装置を任意の組合せで含み得る。
 
【0013】
  仮想プライベートクラウド(VPC)102は、任意の数およびタイプのコンピュートインスタンス110を含むが、それらに限定されない。VPC102は、入力装置(例えば、ラップトップ106)からの入力ユーザ情報を受信し、1以上のコンピュータインスタンス110は、ユーザ情報に対する操作を行い、VPC102は、処理された情報をユーザに送信する。VPC102は、任意の数の装置(例えば、従来のCRT、液晶ディスプレイ、発光ダイオード等)の表示機能を介して、出力情報をユーザに伝達する。
 
【0014】
  別の実施形態では、VPC102は、任意のタイプのクラウドコンピューティング環境(例えば、パブリッククラウドまたはハイブリッドクラウド等)と置き換えられ得る。他の実施形態では、システム100は、VPC102の代わりに、任意の分散型コンピュータシステムを含み得る。更に別の実施形態では、システム100はVPC102を含まず、その代わりに、システム100は、単一の処理装置またはマルチプロセッシング装置を含む。
 
【0015】
  コンピュートインスタンス110
0について図示されているように、各コンピュートインスタンス110は、中央処理装置(CPU)112、グラフィック処理装置(GPU)114、およびメモリ116を含む。動作において、CPU112はコンピュートインスタンス110のマスタープロセッサであり、コンピュートインスタンス110に含まれる他の構成要素の動作を制御し調和させる。具体的には、CPU112は、GPU114の動作を制御するコマンドを発行する。GPU114には、グラフィックおよびビデオ処理のために最適化された回路(例えば、ビデオ出力回路を含む)が組み込まれている。様々な実施形態において、GPU114には、コンピュートインスタンス110の他の要素の1以上が統合され得る。メモリ116は、コンピュートインスタンス110のCPU112およびGPU114が用いるためのコンテンツ(例えばソフトウェアアプリケーションおよびデータ等)を格納する。
 
【0016】
  一般的に、VPC102に含まれるコンピュートインスタンス110は、1以上のアプリケーションを実装するよう構成される。より具体的には、VPC102に含まれるコンピュートインスタンス110は、例えばビデオファイル等のソースデータ105を符号化するよう構成される。図示されるように、コンピュートインスタンス110
0はソースインスペクタ110として構成され、コンピュートインスタンス110
1〜110
Nはエンコーダ140として構成される。別の実施形態では、ソースインスペクタ110は、より多くのコンピュートインスタンス110を含んでもよく、エンコーダ140は、単一のコンピュートインスタンス110のみを含んでもよい。
 
【0017】
  ソースインスペクタ110は、ソースデータ105を受信して、エンコーダ140を構成することを含む任意の数の符号化前処理を行う。例えば、一部の実施形態では、エンコーダ140は並列チャンクエンコーダである。そのような実施形態では、ソースインスペクタ110はソースを複数のソースチャンクに分割してから、それらのソースチャンクを、並列チャンクエンコーダに含まれる複数のコンピュートインスタンス140にルーティングする。
 
【0018】
  一般的に、エンコーダ140は、符号化処理のカスタマイズを可能にする複数のモードおよび設定(例えば、圧縮アルゴリズム)を含む。具体的には、エンコーダ140は、一定ビットレートモードおよび一定品質符号化モードの両方を実装するが、それらに限定されない。一定ビットレートモードでは、エンコーダ140は、符号化処理を通して目標ビットレートを保つよう試みる。エンコーダ140が、符号化ビットレートが目標ビットレートよりも高いことを検出した場合には、エンコーダ140は、符号化データ145の品質を下げる。エンコーダ140が、符号化ビットレートが目標ビットレートよりも低いことを検出した場合には、エンコーダ140は符号化データ145の品質を上げる。それとは対照的に、一定品質符号化モードでは、エンコーダ140は、符号化処理を通して一定の品質を保つよう試みる。エンコーダ140は、符号化データ145の品質を測定し、符号化品質を目標品質に保つために、符号化データ145に含める信号の
ディテールの量を定める量子化パラメータ(QP)を変化させる。或いは、エンコーダ140は、符号化処理を通して、QPを一定の値に設定する。
 
【0019】
  エンコーダ140の構成は、必要なリソース(例えば、帯域幅およびストレージ等)および符号化データ145の品質に劇的に影響することが、当業者には認識されよう。異なるタイプのソースデータ105にわたって、必要なリソースを無駄にすることなく、許容可能な知覚される視覚的品質を満たすために符号化データ145を最適化するようエンコーダ140を構成することは、困難である。例えば、一定のビットレートラダーを利用して、目標ビットレートで符号化する手法等の従来の手法は、一部のタイプのソースデータ105については品質/リソースのトレードオフを最適化するが、他のタイプのソースデータ105については悪い結果を生じる。
 
【0020】
  この理由から、ソースインスペクタ110は、符号化ビットレートラダー選択器130を含む。動作において、符号化ビットレートラダー選択器130は、エンコーダ140を利用して、ソースデータ105の複雑性を推定し、次に、ソースデータ105を複雑性バケット132に割り当てる。次に、符号化ビットレートラダー選択器130は、選択された複雑性バケット132と関連づけられたビットレートラダー134を、ソースに合わせたビットレートラダー135として識別する。このようにして、符号化ビットレートラダー選択器130は、品質/リソースのトレードオフが、ソースデータ105の複雑性を反映するよう最適化されるのを可能にする。
 
【0021】
  一般的に、符号化ビットレートラダー選択器130は、任意の数の複雑性バケット132(各複雑性バケット132は、ソースデータ105についてのそれぞれ異なる範囲の複雑性を表す)を含み得る。例えば、一部の実施形態では、「単純」な複雑性バケット132は、最も低い範囲の複雑性(例えば、基本的なアニメーションのソースデータ105等)を表す。各複雑性バケット132は、複雑性バケット132によって表される複雑性を有するソースデータ105について符号化のトレードオフを最適化するよう調整されたビットレートラダー134のうちの特定の1つと関連づけられている。
 
【0022】
  符号化ビットレートラダー選択器130は、任意の技術的に実行可能な方法で、複雑性バケット132およびビットレートラダー134を実装し得る。一部の実施形態では、符号化ビットレートラダー選択器130は、ソースデータ105を含む何らかのソースデータを処理する前に、複雑性バケット132およびビットレートラダー134を設定する初期化部を含む。別の実施形態では、初期化部は符号化ビットレートラダー選択器130には含まれず、システム100に含まれる1つのユニットである。更に別の実施形態では、初期化部はシステム100に含まれない。
 
【0023】
  一実施形態では、初期化部は、最適化された複雑性バケット132およびビットレートラダー134を生成するために、手作業で評価される符号化品質フィードバック情報を提供する。まず、初期化部は、「典型的な」ビットレートラダーを受信する。次に、初期化部は、典型的なビットレートラダーに含まれるビットレートにわたる、(ソースデータ105の予期される複雑性の範囲にわたる)様々なテストデータを解析する。得られる符号化テストデータは、ラダーの横木およびテストデータの両方の範囲にわたるものである。
 
【0024】
  符号化テストデータを生成した後、初期化部は、各符号化テストデータの品質を評価する。より具体的には、初期化部は、符号化テストデータに、Tektronix(登録商標)画質解析器(PQA:Picture Quality Analyzer)ツールを適用する。PQAツールは、符号化テストデータに、「人間による主観的な視覚的評価に近い」画質評定(PQR:Picture Quality Rating)スコアを割り当てる。次に、初期化部は、ビットレートとPQRスコアによる品質とを対比させたグラフ(ここで、品質はPQRスコアである)を作成する。PQRグラフに基づいて、ソースデータ105の予期される複雑性にわたってリソースと品質との間の許容可能なトレードオフを生じるための、最適化された複雑性バケット132およびビットレートラダー134が選択される。とりわけ、最適化された複雑性バケット132およびビットレートラダー134は、以下の目的を満たすために作成され得る:
・解像度を最適化することによって、同じビットレートを所与としたビデオ品質を改善する。 
・ストレージおよび帯域幅を節約する。単純なソースについては、高いビットレートのストリームは不必要であり(明らかな品質の利得がない)、その結果、ストレージおよび帯域幅が無駄になる。
・複雑なソースについては、より高いビットレートのストリームを使って、より良好な品質を達成する。複雑なテストデータに対応する複雑性バケット132については、許容可能な品質を達成するために、更なるビットレートが追加され得る。
 
【0025】
  複雑性バケット132およびビットレートラダー134は、PQRグラフに基づいて、任意の技術的に実行可能な方法(例えば、手作業により評価等)で生成され得る。別の実施形態では、PQRスコアは、任意の品質測定と置き換えられ得る。一般的に、複雑性バケット132およびビットレートラダー134は、様々な複雑性およびビットレートにわたってテストデータを評価する任意の技術的に実行可能な方法で生成され得る。
 
【0026】
  初期化部の完了後、得られた複雑性バケット132およびビットレートラダー134は、符号化ビットレートラダー選択器130に組み込まれるか、または通信される。様々な実施形態では、複雑性バケット132およびビットレートラダー134は、当該技術分野において知られている任意の通信方法を介してシステム100に転送され得る。
 
【0027】
  ソースの複雑性を推定する
  図2は、本発明の一実施形態による、
図1の符号化ビットレートラダー選択器130を示すブロック図である。符号化ビットレートラダー選択器130は、ソースデータ105を受信し、ソースデータ105の複雑性を推定し、ビットレートラダー134から、対応するソースに合わせたビットレートラダー135を選択する。ソースデータ105に対する最適なリソース/品質のトレードオフを表すビットレートラダー134を識別することの一部として、符号化ビットレートラダー選択器130は、エンコーダ140および複雑性バケット132を利用する。
 
【0028】
  図示されるように、符号化ビットレートラダー選択器130は、サンプル抽出器210、複雑性解析器220、およびバケット化部260を含むが、これらに限定されない。ソースデータ105を受信すると、サンプル抽出器210は、ソースデータ105を4つの等しい長さのセグメントに分割する。各セグメントについて、サンプル抽出器210は、セグメントの中点に中心合わせされた1分間のサンプル215を選択する。このようにして、サンプルエンコーダは、ソースデータ105にわたって均等に分散された4つの1分間のサンプル215を識別する。これらのサンプル215は共に、ソースデータ105の代理としての役割をする。サンプル215が含む情報はソースデータ105よりも少ないので、サンプル215の複雑性を評価するのに要する時間は、ソースデータ105の複雑性を評価するのに要する時間よりも少ない。
 
【0029】
  別の実施形態では、サンプル抽出器210は、ソースデータ105を任意の数のセグメントに分割して、ソースデータ105の代表的な代理を生成する任意の方法で、セグメントからサンプルを抽出し得る。更に、サンプル抽出器210は、任意の方法で(例えば、最大処理時間の制約を満たす)、任意の数および長さのサンプル215を生成するよう構成され得る。更に別の実施形態では、サンプル抽出器210は省略され、ソースデータ105は単一の完全な長さのサンプル215として処理される。
 
【0030】
  複雑性解析器220は、4つのサンプル215を受信し、1080pの解像度で4つの異なるQP225にわたって4つのサンプル215の固定的QP符号化を行うためのエンコーダ140を構成する。動作において、複雑性解析器220は、16個の符号化タスク233を実行するためのエンコーダ140を構成することにより、16個の一定QP符号化235を生成する。QP225の値は実験によっておよび/または発見的に決定され、任意の数の複雑性について、許容できない品質の劣化を生じることなくリソースの使用率を効果的に低減することが見込まれるQP225の範囲を良好にカバーするよう吟味される。別の実施形態では、複雑性解析器220は、任意の数のQP225および任意の数のサンプル215にわたる任意の数の符号化タスク233を任意の組合せで行うために、エンコーダ140をカスタマイズし得る。更に、複雑性解析器220は、任意の数および値の解像度について、固定的QP符号化を行い得る。
 
【0031】
  システム100の複雑性解析処理の精度を高めるために、複雑性解析器220は、ソースデータ105に対する符号化処理の一部として含まれるエンコーダ140を利用する。しかし、別の実施形態では、複雑性解析器220は、一定QP符号化235を生成するために、任意の利用可能な数およびタイプのエンコーダを構成し得る。
 
【0032】
  次に、各一定QP符号化235について、複雑性解析器220は、ピークS/N比(PSNR)(二乗平均誤差に基づく目標品質指標)の値を決定し、ビットレートを算出する。一部の実施形態では、複雑性解析器220は、一定QP符号化235のPSNR値を測定するようエンコーダ140を構成する。別の実施形態では、複雑性解析器220は、各一定QP符号化235のPSNR値を測定するために、複雑性解析器220の一部であってもよく、または一部でなくてもよいPSNR測定ツールを用いる。
 
【0033】
  複雑性解析器220は、任意の技術的に実行可能な方法で、各一定QP符号化235のビットレートを決定する。一部の実施形態では、複雑性解析器220は、ビットレートを識別するために、(符号化処理中にエンコーダ140によって生成された)ログファイルに対して読み出し処理を行う。別の実施形態では、複雑性解析器220は、一定QP符号化235のサイズ(即ち、ファイルサイズ)を一定QP符号化235の持続時間で除算することにより(即ち、フレーム数/1秒当たりのフレーム数)、ビットレートを算出する。
 
【0034】
  PSNR値および対応するビットレートを取得した後、複雑性解析器220は、PSNR値と対応するビットレートとを相関させる。一部の実施形態では、相関処理を行う前に、複雑性解析器220は、各QP255についてのPSNR値および/または対応するビットレートの平均値を求める。より具体的には、QP255
0について、複雑性解析器220は、QP255
0での一定QP符号化235の符号化中に4つのサンプル215について取得された4つのPSNR値にわたる平均値および4つのビットレートにわたる平均値を求める。
 
【0035】
  図示されるように、複雑性解析器220は、決定された相関を反映するPSNRグラフ255を生成する。動作において、複雑性解析器220は、一定QP符号化235についてのビットレートに対してPSNR値をプロットし、次に、曲線近似処理を行って曲線方程式を生成する。別の実施形態では、PSNRグラフ255の代わりに、複雑性解析器220は、一定QP符号化235と関連づけられた統計に基づいて、PSNR変数およびビットレート変数を含む方程式を生成する。一般的に、本発明の実施形態は、一定QP符号化255の品質とビットレートとの間の推定される関係を決定するために、PSNRの代わりに、任意の技術的に実行可能な技術および/または任意の品質測定を用いてよい。
 
【0036】
  ソースに合わせたビットレートラダーを割り当てる
  バケット化部260は、ソースに合わせたビットレートラダー135を生成するために、複雑性バケット132およびビットレートラダー134に関して、PSNRグラフ255を評価する。より具体的には、バケット化部260は、PSNRグラフ255に基づいて、複雑性バケット化ビットレートを決定する。複雑性バケット化ビットレートとは、PSNRグラフ255のPSNR値が、所定の低歪み閾値に等しくなるビットレートである。その結果、複雑性バケット化ビットレートは、ソースデータ105と比較した符号化データ145の歪みが所定の低歪み閾値に一致する、推定されたビットレートである。所定の低歪み閾値は、複雑性バケット132およびビットレートラダー134と調和する様々な発見的および実験による技術のうちの任意のものを用いて割り当てられ得る。
 
【0037】
  一般的に、バケット化部260は、任意の技術的に実行可能な方法で、複雑性バケット化ビットレートを決定してよい。例えば、バケット化部260は、PSNRグラフ255の曲線と所定の低歪み閾値の一定のPSNR値に対応する線との交点を識別し得る。別の実施形態では、バケット化部260は、PSNR/ビットレート方程式のPSNR変数を所定の低歪み閾値に設定して、ビットレート変数のその値について、PSNR/ビットレート方程式を解いてもよい。
 
【0038】
  次に、バケット化部260は、複雑性バケット化ビットレートを複雑性バケット132のビットレート範囲と比較して、包含的な複雑性バケット132を選択する。次に、バケット化部260は、ソースに合わせたビットレートラダー135を、選択された複雑性バケット132に対応するビットレートラダー134に設定する。このようにして、ソースに合わせたビットレートラダー135は、ソース105の推定された複雑性に基づいて変化する。単一のビットレートラダーに依拠する従来の技術とは異なり、このカテゴリー化処理は、ソース105のそれぞれ異なる複雑性にわたってリソース/品質のトレードオフを最適化するので有利である。
 
【0039】
  図3は、本発明の一実施形態による、
図2の符号化ビットレートラダー選択器130によって実装される複雑性バケット132およびビットレートラダー134の概念図である。図示されるように、複雑性バケット132は、41デシベル(dB)に等しいPSNR値の低相関閾値におけるビットレートに基づく3つの異なる分類を含む。PSNR値が40dBより大きい場合には、符号化データ145は、一般的に、ソースデータ105と比較して非常に低い歪みであると見なされることが、当業者には認識されよう。別の実施形態は、任意の数の分類および任意の低相関閾値を含み得る。
 
【0040】
  PSNRグラフ255に基づいて、バケット化部260は、複雑性バケット化ビットレート(R)(41dBのPSNR値に対応する曲線のビットレート値)を決定する。図示されるように、複雑性バケット132は、低複雑性バケット132
1、中複雑性バケット132
2、および高複雑性バケット132
3を含む。複雑性バケット化ビットレートが1750キロビット/秒(kbps)未満である場合には、バケット化部260は、ソースデータ135を低複雑性バケット132
1に割り当てる。複雑性バケット化ビットレートが1750kbps〜4300kbpsである場合には、バケット化部260は、ソースデータ135を中複雑性バケット132
2に割り当てる。複雑性バケット化ビットレートが少なくとも4300kbpsである場合には、バケット化部260は、ソースデータ135を高複雑性バケット132
3に割り当てる。
 
【0041】
  図示されるように、各複雑性バケット132は、ビットレートラダー134のうちのそれぞれ異なる1つと関連づけられている。ビットレート/解像度の対は、各ビットレートラダー134の横木を定める。更に、各横木は、符号化処理中にエンコーダ140が用いるアルゴリズムの複雑性を特定するプロファイルを含む。各横木の値および横木の数は、各複雑性バケット132について調整される。複雑性バケット132およびビットレートラダー134は共に、リソースの改善と品質の改善とのトレードオフを最適化するよう設計される。例えば、低複雑性ソースについては、最大の知覚可能な視覚的品質は、3000kbps前後のビットレートにおいて達成される。より高いビットレートでの符号化は、視覚的品質を顕著に高めることなく、リソースの無駄となるので、低複雑性ビットレートラダー134
1の最も高い横木は3000kbpsにあり、その結果、エンコーダ140は、3000kbpsの最大ビットレートを有する符号化データ145を生成する。
 
【0042】
  図4は、本発明の一実施形態による、
図2の複雑性解析器220によって構築された、単純なソースについてのピークS/N比(PSNR)曲線400の概念図である。図示されるように、複雑性バケット化ビットレート410(即ち、41dBに等しいPSNR値である低相関閾値における曲線のビットレート)は600kbpsである。より具体的には、水平方向の点線は、41dBに等しいPSNR値を有する一定の線を示している。水平方向の点線は、「x」として示されている複雑性バケット化ビットレート410において、単純なソースについてのPSNR曲線400と交差する。複雑性バケット化ビットレート410から(垂直方向の点線に沿って)垂直方向に下に辿ると、複雑性バケット化ビットレート410が600kbpsにおいてビットレート軸と交差することが示されている。
 
【0043】
  再び
図3を参照すると、600kbpsのビットレートに基づいて、バケット化部260は、ソースデータ105を低複雑性バケット132
1に割り当て、ソースに合わせたビットレートラダー135を、それに対応する低複雑性ビットレートラダー134
1に設定する。特に、ビットレートラダー134
1を実装することは、最も高い符号化解像度およびビットレートがそれぞれ1080pおよび3000kbps(低複雑性ビットレートラダー134
1の最も高い横木)であることを確実にする。中複雑性ビットレートラダー134
2のより高い符号化解像度およびビットレート(例えば、1080pの解像度および4300kbpsのビットレート等)の横木は、単純なソースデータ105については更なる品質の利得を提供しないので、符号化解像度およびビットレートを制限することは、品質に影響することなくリソースを節約するので有利である。
 
【0044】
  図5は、本発明の一実施形態による、
図2の複雑性解析器によって構築された、複雑なソースについてのピークS/N比(PSNR)曲線の概念図である。図示されるように、複雑性バケット化ビットレート410(即ち、41dBに等しいPSNR値である低相関閾値における曲線のビットレート)は6000kbpsである。より具体的には、水平方向の点線は、41dBに等しいPSNR値を有する一定の線を示している。この水平方向の点線は、「x」として示されている複雑性バケット化ビットレート410において、複雑なソースについてのPSNR曲線500と交差する。複雑性バケット化ビットレート410から(垂直方向の点線に沿って)垂直方向に下に辿ると、複雑性バケット化ビットレート410は、6000kbpsにおいてビットレート軸と交差することが示されている。
 
【0045】
  再び
図3を参照すると、6000kbpsのビットレートに基づいて、バケット化部260は、ソースデータ105を高複雑性バケット132
3に割り当て、ソースに合わせたビットレートラダー135を、それに対応する高複雑性ビットレートラダー134
3に設定する。特に、ビットレートラダー134
3を実装することは、最大解像度1080pおよび最大ビットレート7500mbpsでソースデータ105を符号化するようエンコーダ140を構成する。ソースデータ105は比較的複雑なので、そのようなトレードオフは、利用可能なリソースを用いた顕著な品質の改善を可能にする。それとは対照的に、ソースに合わせたビットレートラダー135を中複雑性ビットレートラダー134
2にした場合には、符号化ビットレートは、5800mbpsまでに不必要に制限されることになる。
 
【0046】
  図6は、本発明の一実施形態による、ビデオソースデータを符号化しつつ、ビットレートラダーを選択および実装する方法のステップのフロー図である。この方法のステップは、
図1〜
図5のシステムを参照して説明されるが、この方法のステップを任意の順序で実装するよう構成された任意のシステムが本発明の範囲に含まれることが、当業者には理解されよう。単に議論を進める目的で、この
図6の説明では、低歪み閾値、QP225、ビットレートラダー134、および複雑性バケット132は、任意の技術的に実行可能な方法で予め決定されているものとする。
 
【0047】
  図示されるように、方法600は、ステップ604において開始し、ここで、符号化ビットレートラダー選択器130はソースデータ105を受信し、サンプル抽出器210はソースデータ105をN個のセグメントに分割する(ここで、Nは任意の正の整数である)。ステップ606において、N個のセグメントの各々について、サンプル抽出器210は、セグメントの中点に中心合わせされた固定的な長さのサンプル215を選択する。得られたN個のサンプル215は、ソースデータ105に対する代理としての役割をし、ソースデータ105の複雑性を分類するために評価されるデータの合計量を制限することによって、解析時間を低減するので有利である。
 
【0048】
  複雑性解析器220は、サンプル215を受信して、M個の所定の一定のQP225にわたって固定的な解像度でサンプル215の固定的QP符号化を行うようエンコーダ140を構成する。ステップ608において、複雑性解析器220は、(N*M)個の各一定QP符号化235について、PSNR値を決定する。一部の実施形態では、複雑性解析器220は、一定QP符号化235のPSNR値を測定するようエンコーダ140を構成する。一般的に、本発明の実施形態は、PSNRを任意の品質指標と置き換えてもよく、この場合、測定および算出は、それに従って変更される。
 
【0049】
  ステップ610において、複雑性解析器220は、各一定QP符号化235について、対応するビットレート値を決定する。複雑性解析器220は、任意の技術的に実行可能な方法で、各一定QP符号化235のビットレートを決定する。一部の実施形態では、複雑性解析器220は、一定QP符号化235のサイズ(即ち、ファイルサイズ)を一定QP符号化235の持続時間によって除算することにより(即ち、フレーム数/1秒間当たりのフレーム数)、ビットレートを算出する。
 
【0050】
  ステップ614において、複雑性解析器220は、PSNR値とそれに対応するビットレートとを関係づける最良の近似曲線を含むPSNRグラフ255を生成する。別の実施形態では、PSNRグラフ255の代わりに、複雑性解析器220は、一定QP符号化235と関連づけられた統計に基づいて、PSNR変数およびビットレート変数を含む方程式を生成する。一般的に、本発明の実施形態は、技術的に実現可能な任意の技術を用いて、一定QP符号化255の品質とビットレートとの間の推定された関係を決定し得る。
 
【0051】
  ステップ616において、バケット化部260は、PSNRグラフ255を評価して、複雑性バケット化ビットレート410を決定する。なお、バケット化部260は、複雑性バケット化ビットレート410を、PSNRグラフ255中の、PSNR値が所定の低歪み閾値に等しくなるビットレートの値に設定する。次に、バケット化部260は、複雑性バケット化ビットレート410を含むビットレートの範囲に対応する複雑性バケット132を選択する。ステップ618において、バケット化部260は、選択された複雑性バケット132に対応するビットレートラダー134を選択する。ステップ620において、バケット化部260は、ソースに合わせたビットレートラダー135を、選択されたビットレートラダー134に設定し、方法600は終了する。
 
【0052】
  特に、ソースに合わせたビットレートラダー135は、ソースデータ105と同等の複雑性のソースデータについて、符号化ビットレートおよび解像度を最適化するよう調整される。例えば、再び
図3を参照すると、比較的単純なソースデータ105については、ソースに合わせたビットレートラダー135は、顕著な品質の改善を提供しない3000kbpsより高いビットレートの横木を含まない。それとは対照的に、比較的複雑なソースデータ105については、ソースに合わせたビットレートラダー135は、リソース(例えば、メモリおよび帯域幅等)を使うことで品質の向上を提供する7500kbpsのビットレートの横木を含む。
 
【0053】
  要約すると、本開示の技術は、ソースデータを符号化するために最適化されたビットレートラダー(即ち、ビットレートと解像度との対)を効率的に選択するために用いられ得る。動作において、ソースインスペクタは、ソースデータから「N」個の分散したサンプルセグメントを抽出する。各サンプルセグメントについて、複雑性解析器は、量子化パラメータの「M」個の異なる値にわたって固定的量子化パラメータ符号化を行うようエンコーダを構成する。次に、複雑性解析器は、(N*M)個の符号化データセグメントについて、PSNRとビットレートとの間の関係を反映するピークS/N比(PSNR)曲線の方程式を生成する。
 
【0054】
  次に、バケット化部は、この方程式のPSNR変数を、許容可能な歪みのレベルを表す所定の値に設定し、この方程式を解いてバケット化ビットレートを取得する。バケット化ビットレートに基づいて、バケット化部は、ソースデータを、複数の複雑性バケット(各複雑性バケットは、特定の複雑性のソースデータについて許容可能な歪みのレベルを達成するビットレート範囲にわたる)のうちの1つに割り当てる。例えば、1つのバケットは単純なソースデータ(例えば、アニメーション等)を表し、別のバケットは複雑なソースデータ(例えば、詳細なアクション映画等)を表し得る。特に、各複雑性バケットは、対応する複雑性のソースデータの符号化を最適化するよう経験的に決定されたビットレートラダーと関連づけられている。
 
【0055】
  複雑性バケットを鋭敏に生成して、適切な複雑性バケットのビットレートラダーを用いて各ソースデータを符号化することは、異なる複雑性のソースデータについての符号化を最適化するので有利である。より具体的には、本開示の技術は、ソースの複雑性に合わせてビットレートラダーを調整するので、バケット化は、符号化品質と符号化リソース(例えば、帯域幅およびストレージ等)との間の賢明なトレードオフを可能にする。それとは対照的に、単一のビットレートラダーに依拠する従来の符号化処理は、しばしば、許容できない低品質の符号化を生じるか、または、思慮深く推定された知覚可能な品質の違いに基づいて符号化リソースの使用を増減する機会を効果的に利用しない。
 
【0056】
  説明の目的で、様々な実施形態の説明を示したが、これらは網羅的であることを意図したものではなく、開示された実施形態に限定することは意図しない。当業者には、記載された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が自明である。
 
【0057】
  本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具現化され得る。従って、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウエア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとり得るものであり、それらの全てを、本明細書においては一般的に「回路」、「モジュール」、または「システム」と称する。更に、本開示の態様は、具現化されたコンピュータ可読プログラムコードを有する1以上のコンピュータ可読媒体において具現化されたコンピュータプログラム製品の形態をとり得る。
 
【0058】
  1以上のコンピュータ可読媒体の任意の組合せが用いられ得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、またはそれらの任意の適切な組合せであり得るが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例(網羅的ではないリスト)としては、1以上のワイヤを有する電気的接続、ポータブルコンピュータのディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMもしくはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光ストレージ装置、磁気ストレージ装置、またはそれらの任意の適切な組合せが挙げられる。本明細書の文脈において、コンピュータ可読記憶媒体は、指示を実行するシステム、装置、またはデバイスによって用いられる、またはそれらに関連して用いられるプログラムを収容または格納可能な、任意の有体の媒体であり得る。
 
【0059】
  上記において、本開示の態様を、本開示の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明した。フローチャートおよび/またはブロック図の各ブロック、並びに、フローチャートおよび/またはブロック図のブロックの組合せは、コンピュータプログラムの指示によって実装され得ることが理解されよう。これらのコンピュータプログラム指示は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに供給されてマシンを生成し得るものであり、そのコンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される指示が、フローチャートおよび/またはブロック図の1または複数のブロックにおいて指定されている機能/動作の実装を可能にするようになっている。そのようなプロセッサは、汎用プロセッサ、専用プロセッサ、特定用途向けプロセッサ、またはフィールドプログラマブルプロセッサであり得るが、それらに限定されない。
 
【0060】
  図面中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および処理を示すものである。この点に関して、フローチャートまたはブロック図の各ブロックは、指定されている論理的機能を実装するための1以上の実行可能な指示を含むモジュール、セグメント、またはコードの一部を表し得る。なお、幾つかの別の実装例においては、ブロック内に記されている機能が、図面に記されている順序から外れて生じ得る。例えば、続けて示されている2つのブロックが、含まれる機能に応じて、実際には略並列に実行される場合もあり、または、それらのブロックが逆の順序で実行される場合もある。また、ブロック図および/またはフローチャートの各ブロック、並びに、ブロック図および/またはフローチャートのブロックの組合せは、指定されている機能もしくは動作を行う専用ハードウェアに基づくシステムによって、または、専用ハードウェアとコンピュータ指示との組合せによって実装され得る。
 
【0061】
  上記は本開示の実施形態に向けられているが、本開示の基本的な範囲から逸脱することなく、本開示の他のおよび更なる実施形態も考案され得るものであり、本開示の範囲は添付の特許請求の範囲によって決定される。
以下、本発明の好ましい実施形態を項分け記載する。
      実施形態1  
  コンピュータによって実施される、ソースデータを符号化するためのビットレートラダーを選択する方法であって、
  量子化パラメータについて、1組のパラメータ値を選択する工程と、
  各前記パラメータ値について、前記量子化パラメータを前記パラメータ値に保ちつつ、ソースデータを符合化して1組の符合化データを生成するためのエンコーダを構成する工程と、
  各前記1組の符合化データについて、ビデオ品質指標の値およびそれに対応するビットレートを決定する工程と、
  前記ビデオ品質指標と前記対応するビットレートとの間の関係を導出する工程と、
  前記関係に基づいて、前記ビデオ品質指標が所定の閾値に等しくなるバケット化ビットレートを決定する工程と、
  前記バケット化ビットレートに基づいて、前記ソースデータを符号化するためのビットレートラダーを選択する工程と
を含むことを特徴とする方法。
      実施形態2  
  前記量子化パラメータを所与のパラメータ値に保ちつつ、前記ソースデータを符合化するための前記エンコーダを構成する前記工程が、前記符号化データに含める信号のディテールの量を設定することを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態3  
  前記1組のパラメータ値を選択する前記工程が、精度の制約および複雑性の制約の両方を満たす信号のディテールの量を選択することを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態4  
  前記ビデオ品質指標の値を決定する前記工程が、ピークS/N比を識別することを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態5  
  前記ビデオ品質指標の値を決定する前記工程が、画質評定を算出することを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態6  
  前記1組の符合化データについて、前記対応するビットレートを決定する前記工程が、前記1組の符合化データと関連づけられたサイズおよび前記1組の符合化データのプレイアウト継続時間と関連づけられた時間の量に基づく除算演算を行うことを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態7  
  前記ビットレートラダーを選択する前記工程が、前記バケット化ビットレートが複雑性バケットのビットレート範囲内であることを決定することと、前記複雑性バケットと関連づけられたビットレートラダーを識別することとを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態8  
  前記関係が曲線であり、前記関係を導出する前記工程が、前記1組の符合化データに1以上の曲線近似処理を適用することを含む、実施形態1記載のコンピュータによって実施される方法。
      実施形態9  
  前記エンコーダを構成する前記工程の前に、前記ソースデータから複数のサンプルを抽出する工程を更に含み、前記エンコーダが、前記複数のサンプルと関連づけられた信号のディテールに基づいて、複数の組の前記符号化データを生成する、実施形態1記載のコンピュータによって実施される方法。
      実施形態10  
  ソースデータを符号化するためのビットレートラダーを選択させる指示であって、処理装置によって実行された際に、前記処理装置に、
  量子化パラメータについて、1組のパラメータ値を選択する工程と、
  各前記パラメータ値について、前記量子化パラメータを前記パラメータ値に保ちつつ、ソースデータを符合化して1組の符合化データを生成するためのエンコーダを構成する工程と、
  各前記1組の符合化データについて、ビデオ品質指標の値およびそれに対応するビットレートを決定する工程と、
  前記ビデオ品質指標と前記対応するビットレートとの間の関係を導出する工程と、
  前記関係に基づいて、前記ビデオ品質指標が所定の閾値に等しくなるバケット化ビットレートを決定する工程と、
  前記バケット化ビットレートに基づいて、前記ソースデータを符号化するためのビットレートラダーを選択する工程と
を行わせることによって、ソースデータを符号化するためのビットレートラダーを選択させる指示を含むことを特徴とするコンピュータ可読記憶媒体。
      実施形態11  
  前記量子化パラメータを所与のパラメータ値に保ちつつ、ソースデータを符合化するための前記エンコーダを構成する前記工程が、前記符号化データに含める信号のディテールの量を設定することを含む、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態12  
  前記エンコーダを構成する前記工程の前に、歪みの最大許容量に対応するよう前記所定の閾値を設定する工程を更に含む、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態13  
  前記ビデオ品質指標の値を決定する前記工程が、ピークS/N比を識別することを含む、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態14  
  前記ビデオ品質指標の値を決定する前記工程が、前記エンコーダによって生成されたログファイルに対して1以上の読み出し処理を行うことを含む、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態15  
  前記1組の符合化データについて、前記対応するビットレートを決定する前記工程が、前記エンコーダによって生成されたログファイルに対して1以上の読み出し処理を行うことを含む、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態16  
  前記ビットレートラダーを選択する前記工程が、前記バケット化ビットレートが複雑性バケットのビットレート範囲内であることを決定することと、前記複雑性バケットと関連づけられたビットレートラダーを識別することとを含む、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態17  
  前記関係が方程式である、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態18  
  前記エンコーダを構成する前記工程の前に、前記ソースデータから複数のクリップを抽出する工程を更に含み、前記エンコーダが、前記複数のクリップと関連づけられた信号のディテールに基づいて、複数の組の前記符号化データを生成し、各前記クリップが所定の長さの時間を表す、実施形態10記載のコンピュータ可読記憶媒体。
      実施形態19  
  ソースデータを符号化するためのビットレートラダーを選択するよう構成されたシステムにおいて、
  検証ジェネレータであって、
    量子化パラメータについて、1組のパラメータ値を選択し、
    各前記パラメータ値について、前記量子化パラメータを前記パラメータ値に保ちつつ、ソースデータを符合化して1組の符合化データを生成するためのエンコーダを構成し、
    各前記1組の符合化データについて、ビデオ品質指標の値およびそれに対応するビットレートを決定し、
    前記ビデオ品質指標と前記対応するビットレートとの間の関係を導出し、
    前記関係に基づいて、前記ビデオ品質指標が所定の閾値に等しくなるバケット化ビットレートを決定し、
    前記バケット化ビットレートに基づいて、前記ソースデータを符号化するためのビットレートラダーを選択する
よう構成された検証ジェネレータと、
  前記ビットレートラダーを実装するよう構成された符号化エンジンと
を含むことを特徴とするシステム。
      実施形態20  
  前記量子化パラメータを所与のパラメータ値に保ちつつ、ソースデータを符合化するための前記エンコーダを構成する前記工程が、前記符号化データに含める信号のディテールの量を設定することを含む、実施形態19記載のシステム。