【文献】
Lei Yang et al.,Video Description Length Guided Constant Quality Video Coding with Bitrate Constraint,2012 IEEE International Conference on Multimedia and Expo Workshops (ICMEW),IEEE,2012年 7月,pp.366 - 371
(58)【調査した分野】(Int.Cl.,DB名)
前記入力ビデオの前記全体VDLが、所定の固定レート因子と計算複雑性レベルとにより符号化された前記入力ビデオの実際のビットレートによって表される、請求項1に記載のシステム。
前記入力ビデオの前記時間VDLが、所定の固定レート因子と計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートと、同じ所定の固定レート因子と異なる計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートとの間の差によって表される、請求項1に記載のシステム。
前記入力ビデオの前記空間VDLが、所定の固定レート因子と計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートと、異なる所定の固定レート因子と同じ計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートとの間の差によって表される、請求項1に記載のシステム。
前記基準全体VDL、前記基準時間VDL、および前記基準空間VDLが、動的な複雑性の参照テーブルまたは静的な複雑性の参照テーブルの少なくとも1つの行に由来する請求項1に記載のシステム。
前記入力ビデオの調整された符号化ビットレート、前記全体符号化複雑性、前記時間符号化複雑性、および前記空間符号化複雑性によって前記入力ビデオを符号化するための命令をさらに含む、請求項1に記載のシステム。
前記CRF基準ビットレート・モデルが、複数のビデオに対するビデオ符号化の前記固定レート因子とレート−歪みの性能との間の関係をモデル化し、ビデオ符号化の前記レート−歪みの性能は、前記複数のビデオの符号化の平均ビットレートによって表され、
前記システムは、前記モデル化からビデオ符号化の固定レート因子と平均ビットレートとの間の1つまたは複数の関係を得るための命令をさらに含む、請求項7に記載のシステム。
前記入力ビデオの前記全体VDLが、所定の固定レート因子と計算複雑性レベルとにより符号化された前記入力ビデオの実際のビットレートによって表される、請求項9に記載の方法。
前記入力ビデオの前記時間VDLが、所定の固定レート因子と計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートと、同じ所定の固定レート因子と異なる計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートとの間の差によって表される、請求項9に記載の方法。
前記入力ビデオの前記空間VDLが、所定の固定レート因子と計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートと、異なる所定の固定レート因子と同じ計算複雑性レベルとによって符号化された前記入力ビデオの実際のビットレートとの間の差によって表される、請求項9に記載の方法。
前記基準全体VDL、前記基準時間VDL、および前記基準空間VDLが、動的な複雑性の参照テーブルまたは静的な複雑性の参照テーブルの少なくとも1つの行に由来する請求項9に記載の方法。
前記入力ビデオの調整された符号化ビットレート、前記全体符号化複雑性、前記時間符号化複雑性、および前記空間符号化複雑性によって前記入力ビデオを符号化する工程をさらに備える、請求項9に記載の方法。
前記CRF基準ビットレート・モデルが、複数のビデオに対するビデオ符号化の前記固定レート因子とレート−歪みの性能との間の関係をモデル化し、ビデオ符号化の前記レート−歪みの性能は、前記複数のビデオの符号化の平均ビットレートによって表され、
前記方法は、前記モデル化からビデオ符号化の固定レート因子と平均ビットレートとの間の1つまたは複数の関係を得る工程をさらに備える、請求項15に記載の方法。
入力ビデオの符号化の最適化を行うための実行可能なコンピュータ・プログラム命令が記録されている非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ・プログラム命令が、
前記入力ビデオの全体ビデオ記述長(VDL)、時間VDL、および空間VDLを取得するための命令と、
前記入力ビデオの前記全体VDL、前記時間VDL、および前記空間VDLを、対応する基準全体VDL、基準時間VDL、および基準空間VDLと比較するための命令と、
前記比較に基づいて、前記入力ビデオを符号化するビットレートと、前記入力ビデオの全体符号化複雑性、時間符号化複雑性、および空間符号化複雑性とを調整するための命令と、を含み、
前記入力ビデオの全体VDLは前記入力ビデオの全体的なコンテンツ複雑性を示し、前記入力ビデオの時間VDLは前記入力ビデオの時間的な符号化複雑性を示し、前記入力ビデオの空間VDLは前記入力ビデオの空間的な符号化複雑性を示す、媒体。
前記入力ビデオの調整された符号化ビットレート、前記全体符号化複雑性、前記時間符号化複雑性、および前記空間符号化複雑性によって前記入力ビデオを符号化するための命令をさらに含む、請求項17に記載の媒体。
前記入力ビデオの調整された符号化ビットレート、前記全体符号化複雑性、前記時間符号化複雑性、および前記空間符号化複雑性によって前記入力ビデオを符号化するための前記命令は、
前記入力ビデオに関連する目標のビットレートに基づいて固定レート因子(CRF)基準ビットレート・モデルから得られたCRFによって前記入力ビデオを符号化するための命令と、
前記CRFによる前記入力ビデオの符号化から改訂因子を計算するための命令と、
前記改訂因子によって前記CRF基準ビットレート・モデルを修正するための命令と、
修正されたCRF基準ビットレート・モデルから得られたCRFによって前記入力ビデオを符号化するための命令と、を含む請求項18に記載の媒体。
複数のビデオに対するビデオ符号化の前記固定レート因子とレート−歪みの性能との間の関係をモデル化するための命令であって、ビデオ符号化の前記レート−歪みの性能は、前記複数のビデオの符号化の平均ビットレートによって表される、命令と、
前記モデル化からビデオ符号化の固定レート因子と平均ビットレートとの間の1つまたは複数の関係を得るための命令とをさらに含む、請求項19に記載の媒体。
【発明を実施するための形態】
【0011】
図面は、本発明のさまざまな実施形態を例示のみを目的として示し、本発明は、これらの例示された実施形態に限定されない。当業者は、以下の検討から、本明細書において例示される構造および方法の代替的な実施形態が本明細書において説明される本発明の原理を逸脱することなく使用される可能性があることをすぐに認識するであろう。
【0012】
I.システムの概要
図1は、レート−歪み−複雑性(RDC)に基づくビデオ符号化システム102を有するビデオ・ホスティング・サービス100のシステムの図を示すブロック図である。複数のユーザ/視聴者が、クライアント110A〜Nを使用して、ビデオ・ホスティング・ウェブサイトにビデオをアップロードするなど、ビデオ・ホスティング・サービス100にビデオ・ホスティングの要求を送信し、要求されたサービスをビデオ・ホスティング・サービス100から受け取る。ビデオ・ホスティング・サービス100は、ネットワーク130を介して1つまたは複数のクライアント100A〜Nと通信する。ビデオ・ホスティング・サービス100は、クライアント100A〜Nからビデオ・ホスティング・サービスの要求を受信し、RDCに基づくビデオ符号化システム102によってソース・ビデオをコード変換し、コード変換されたビデオをクライアント110A〜Nに返す。ビデオ・ホスティング・サービス100は、クラウド・コンピューティング・ネットワーク内に存在する可能性がある。
【0013】
図1に示された個々のエンティティに目を向けると、各クライアント110は、ビデオ・ホスティング・サービスを要求するためにユーザによって使用される。例えば、ユーザは、クライアント110を使用して、共有するためのビデオをアップロードする要求、またはビデオを再生する要求を送信する。クライアント110は、パーソナル・コンピュータ(例えば、デスクトップ、ノートブック、ラップトップ)コンピュータなどの任意の種類のコンピュータ・デバイス、および携帯電話、携帯情報端末、IP対応ビデオ・プレーヤーなどのデバイスである可能性がある。クライアント110は、概して、プロセッサと、ディスプレイ・デバイス(またはディスプレイ・デバイスへの出力)と、タスクを実行する際にユーザによって使用されるデータをクライアント110が記憶するハード・ドライバまたはフラッシュ・メモリ・デバイスなどのローカル・ストレージと、ネットワーク130を介してビデオ・ホスティング・サービス100に接続するためのネットワーク・インターフェースとを含む。
【0014】
クライアント110は、ビデオ・ストリームを再生するためのビデオ・プレーヤー120(例えば、アドビ・システムズ・インコーポレイティッド社(Adobe Systems,Inc)のFlash(商標)プレーヤーなど)も有する。ビデオ・プレーヤー120は、スタンドアロンのアプリケーションであるか、またはネットワーク・ブラウザなどの別のアプリケーションのプラグインである可能性がある。プレーヤー120は、ハードウェア、またはハードウェアとソフトウェアとの組み合わせで実装される可能性がある。これらの実装のすべては、本発明に関しては機能的に等価である。プレーヤー120は、ビデオ・フィードを選択し、ビデオ・フィードを開始し、停止し、巻き戻すためのユーザ・インターフェース・コントロール(および対応するアプリケーション・プログラミング・インターフェース)を含む。また、プレーヤー120は、そのプレーヤー120のユーザ・インターフェースに、どのビデオ・ディスプレイ・フォーマットか(例えば、標準画質TVまたは高精細度TV)を示すように構成されたビデオ・ディスプレイ・フォーマット選択を含み可能性がある。その他の種類のユーザ・インターフェース・コントロール(例えば、ボタン、キーボード・コントロール)も、プレーヤー120の再生およびビデオ・フォーマット選択機能を制御するために使用される可能性がある。
【0015】
ネットワーク130は、クライアント110とビデオ・ホスティング・サービス100との間の通信を可能にする。1実施形態において、ネットワーク130は、インターネットであり、クライアント110がビデオ・ホスティング・サービス100と通信することを可能にする、現在知られているか、または今後開発される標準化された網間接続通信技術を使用する。
【0016】
ビデオ・ホスティング・サービス100は、RDCに基づくビデオ符号化システム102、ビデオ・サーバ104、収集サーバ(ingest server)106、およびビデオ・データベース108を含む。収集サーバ106は、ユーザがアップロードしたビデオを受信し、ビデオをビデオ・データベース108に記憶する。ビデオ・サーバ104は、ユーザのビデオ・ホスティング・サービスの要求に応答してビデオ・データベース108からビデオを提供する。ビデオ・データベース108は、ユーザがアップロードしたビデオ、およびRDCに基づくビデオ符号化システム102によってコード変換されたビデオを記憶する。1実施形態において、ビデオ・データベース108は、RDCに基づくビデオ符号化システム102がレート−歪み−複雑性の最適化モデルを訓練するための大規模なビデオ・コーパス(例えば、20,000本のユーザがアップロードしたビデオ)を記憶する。
【0017】
RDCに基づくビデオ符号化システム102は、RDC訓練モジュール200およびRDCに基づくビデオ・コード変換モジュール400を含む。RDC訓練モジュール200は、ビデオ・データベース108に記憶されたビデオからオフラインで固定レート因子(CRF)ビットレート・モデルおよび符号化計算プロファイル(ECP)マッピング・モジュールを訓練する。以下でさらに説明されるように、RDCに基づくビデオ・コード変換モジュール400は、所与のソース・ビデオを、RDC最適化によるビットレートの制約の下で、ビデオ記述長(VDL)に導かれる一定品質のビデオ符号化ストラテジを用いてコード変換する。RDC最適化は、CRFビットレート・モデルおよびECPマッピング・モジュールによってパレート最適集合を用いてそれぞれの符号化の複雑性のレベルに関してRDC最適な符号化ストラテジを見つけることによって実現される。有益な結果として、ソース・ビデオが、ソース・ビデオの目標の出力ビデオ・フォーマットに関連するビットレートの制約の下で最適化された視覚的品質を有する出力ビデオにコード変換される。
【0018】
ビデオ・ホスティング・サービス100のシステムの動作をさらに示すために、
図2は、ビデオ・ホスティング・サービス100内のRDCに基づくビデオ符号化システム102のフロー図である。ユーザは、ソース・ビデオ150をアップロードするためにビデオ・ホスティング・サービス100に要求を送信する。RDCに基づくビデオ符号化システム102は、ソース・ビデオ150をそのソース・ビデオ150のネイティブのフォーマットで受信し、ソース・ビデオ150をRDCに基づくビデオ・コード変換モジュール400によって処理する。そのネイティブのフォーマットのソース・ビデオ150は、例えば、フレーム・レート、空間解像度、およびビットレートを含む複数のビデオ符号化パラメータおよびビデオ・ソース情報を有する。
【0019】
ソース・ビデオ150は、さらに、ビデオ・データベース(例えば、
図1のビデオ・データベース108)に記憶される可能性があり、ビデオ・データベースに記憶されたビデオ・コーパス160の一部になる。ビデオ・コーパス160は、RDC訓練モジュール200によって処理される。1実施形態において、RDC訓練モジュール200は、ビデオ・エンコーダ210、CRF基準ビットレート・モデル220、およびECPマッピング・モジュール230を含む。RDC訓練モジュール200は、CRF符号化を使用してビデオ・コーパス160内のビデオを符号化し、オフラインで、ビデオ・コーパス160でCRF基準ビットレート・モデル220およびECPマッピング・モジュール230を訓練する。CRF基準ビットレート・モデル220は、CRF符号化の固定レート因子とビットレートとの間の関係をモデル化する。ECPマッピング・モジュール230は、CRF符号化の計算複雑性レベルを符号化計算プロファイルおよび符号化パスの数にマッピングする。
【0020】
RDCに基づくビデオ・コード変換モジュール400は、RDC訓練モジュール200のCRF基準ビットレート・モデル220およびECPモジュール230によって導かれながらソース・ビデオ150をコード変換する。1実施形態において、RDCに基づくビデオ・コード変換モジュール400は、改訂されたCRFビットレート・モデル410、ビデオ記述長モジュール420、およびRDCに基づくトランスコーダ430を含む。改訂されたCRFビットレート・モデル410は、固定レート因子と、ソース・ビデオ150を符号化するための実際のビットレートとの間の関係を記述する。改訂されたCRFビットレート・モデル410は、入力ビデオを符号化するためにCRF基準ビットレート・モデル220に基づいて改訂される。ビデオ記述長モデル420は、ソース・ビデオ150の符号化の全体的な、時間的な、および空間的な中身の複雑性を含む計算の複雑性を記述する。RDCに基づくビデオ・コード変換モジュール400は、固定レート因子と実際のビットレートとの間の関係、およびソース・ビデオ150のビデオ記述長によって示される計算の複雑性に基づいてソース・ビデオ150をコード変換する。
【0021】
II.ビデオのビットレート−品質の関係をモデル化する:CRF基準ビットレート・モデル
CRF符号化ストラテジは、固定レート因子を用いてビデオの符号化の一定の視覚的品質を実現することを狙っている。概して、ビデオのために選択されたCRFは、1符号化パスでビデオを符号化するための所望の視覚的品質のレベルを示す。ビデオを符号化するための大きなCRF値は、大きな量子化パラメータ(「QP」)、高い圧縮比、およびひいては低い視覚的品質をもたらす。小さなCRFは、小さなQP、低い圧縮比、およびひいては高い視覚的品質をもたらす。CRF値ゼロは、可逆圧縮、およびひいては最高の視覚的品質を意味する。CRF符号化は、ビデオ・フレームにおける動きの量にしたがってQPを動的に調整することによってビデオの異なるフレームを異なるように圧縮する。
【0022】
CRF符号化を使用するビデオ圧縮の性能は、CRF基準ビットレート・モデル(例えば、
図2のCRF基準ビットレート・モデル220)によってモデル化される可能性があり、ビデオ圧縮の品質が、好適なCRF値によって示される可能性がある。訓練されたCRF基準ビットレート・モデルを使用して、RDCに基づくビデオ符号化システム102は、ソース・ビデオの符号化で使用される実際のビットレートがソース・ビデオの目標の出力ビデオ・フォーマットに関連する目標のビットレートに近くなることを可能にするソース・ビデオのための適切なCRF値を選択する。さらに、訓練されたCRF基準ビットレート・モデルは、CRF符号化ストラテジを用いてビデオを符号化するためにどれぐらいの平均ビットレートが必要とされるかに関するインジケーションを与える。訓練されたCRF基準ビットレートから得られたCRFを用いてソース・ビデオを符号化するための実際のビットレートは、ソース・ビデオの目標の出力ビデオ・フォーマットに関連するビットレートの制約の範囲内で一定の視覚的品質を実現するために、所与のソース・ビデオを符号化するときにCRFビットレート・モデルを改訂するために使用される可能性がある。
【0023】
例として
図2のRDC訓練モジュール200を使用すると、RDC訓練モジュール200は、ビデオ・コーパス160内のビデオでCRF基準ビットレート・モデル220を訓練する。ビデオ・コーパス160は、複数の空間解像度、フレーム・レート、およびビットレートの多数の複数シーンのビデオ・シーケンスを記憶する。RDC訓練モジュール200のビデオ・エンコーダ210は、ビデオ・コーパス160から選択されたそれぞれのビデオを、CRF符号化を用いて予め選択されたCRF値で符号化し、符号化から実際のビットレートを得る。当業者に知られている任意の既存のビデオ符号化方式が、ビデオを符号化するためにビデオ・エンコーダ210によって使用される可能性がある。1実施形態において、ビデオ・エンコーダ210は、選択されたビデオをH.264/MPEG−4 AVCフォーマットに符号化するx.264ビデオ・エンコーダである。ビデオ・エンコーダ210のその他の実施形態は、VP8エンコーダまたはその他の利用可能なビデオ・エンコーダを使用する可能性がある。
【0024】
CRF基準ビットレート・モデル220は、ビデオ・コーパス160内のビデオの符号化による(crf、ビットレート)のペアを訓練サンプルとして使用して、CRF符号化のCRFとビットレートとの間の関係をモデル化する。ビデオ・コーパスのビデオのCRFと平均ビットレートとの間の関係は、ビデオの空間解像度、時間解像度(temporal resolution)、およびx.264CRF符号化では初期設定で決まっている符号化アルゴリズムに依存する。平均ビットレートと、空間解像度、時間解像度、およびCRFとの間の関係は、以下のように記述される。
【0025】
B=f(crf,M,T) (1)
ここで、Bは、平均ビットレート、Mは、ビデオのフレームの輝度成分(luminance component)の画素数、すなわち、空間解像であり、Tは、1秒あたりのフレーム数、すなわち、時間解像度である。パラメータcrf、M、およびTは互いにほぼ独立であるので、式(1)に示された平均ビットレート、以下のように表される可能性がある。
【0026】
B=f
1(crf)×f
2(M)×f
3(T) (2)
CRF基準ビットレート・モデル220は、当てはまるサンプルを、最小自乗法によって発見される4つ組み(crf,M,T,B)として表す。
【0027】
単一シーンおよび複数シーンのビデオを符号化するビデオ符号化の平均の性能に関して、CRF基準ビットレート・モデル220は、ビデオの符号化による結果として得られるビットレートをビデオのシーン数によって重み付けし、ビットレートを、以下のように、選択された数の訓練ビデオのシーンの総数によって正規化する。
【0028】
【数1】
ここで、Bは、平均ビットレートであり、B
iは、第iのビデオを符号化する実際のビットレートであり、S
iは、第iのビデオのシーン数である。モデルの残差は、r
i=B
i−f(crf
i,M
i,T
i)である。CRF基準ビットレート・モデル220の適合性は、以下のように、二乗誤差の総和(SSE:Sum of Square Error)および平均二乗誤差の根(Root of Mean Square Error)によって評価される。
【0029】
【数2】
r
iは、残差であり、nは、当てはめるサンプルの数である。
【0030】
概して、時間解像度は、フレーム/秒(fps)を単位とするフレーム・レートによって評価される。CRF基準ビットレート・モデル220に対する時間解像度の影響を調べるために、CRF基準ビットレート・モデル220を訓練するために選択されたビデオが、時間軸に沿ってダウンサンプリングされ、ダウンサンプリングされたビデオが、ビデオの元のフレーム・レートの半分で符号化される。このようにして、元のビデオおよびそのダウンサンプリングされたバージョンは、同じ表示時間を有する。CRF基準ビットレート・モデル220は、各空間解像度、例えば、fps=12.5およびfps=25、fps=15およびfps=30に対してビデオの平均ビットレートを得るように訓練される。
【0031】
訓練の結果は、ビットレートが、符号化フレーム・レート(fps)に対してほぼ線形に増加すること、言い換えると、
【0032】
【数3】
であることを示す。式6に示された線形の関係に基づいて、平均ビットレートとフレーム・レートとの間の関係は、以下のように記述され得る。
【0033】
y=a×T (7)
ここで、パラメータaは、空間分解能およびCRFからの影響を含む。
図7は、固定のフレーム・レート(すなわち、fps=25)でのCRF基準ビットレート・モデル220の例示的な訓練結果を示す。
図7に示された訓練結果は、平均ビットレートが、CRF値および平均ビットレートを固定するとき、空間解像度の近似的なべき関数であり、空間解像度を固定するとき、CRFの近似的な指数関数であることをさらに示す。フレーム・レートがfps=25以外であるとき、モデルは、fps/25倍に増減される可能性がある。CRF基準ビットレート・モデル220を訓練する1つの実施形態は、フレーム・レートfps=25を使用することである。
【0034】
式(4)で示された平均ビットレートと空間解像度Mとの間の関係を探るために、CRF基準ビットレート・モデル220は、元のビデオに対する低域通過フィルタリングおよびダウンサンプリングによって得られた階層的な空間解像度を有するシミュレートされた/導出されたビデオで訓練される。例えば、ビデオ・エンコーダ210が、アンチエイリアシングのために、空間解像度704x576の元のビデオに低域通過フィルタを適用する。ビデオ・エンコーダ210は、これらのビデオをダウンサンプリングして、サイズ352x288および176x144を有するビデオの低解像度のバージョンを得る。ビデオ・エンコーダ210は、各CRF値に対するビットレートと空間解像度との間の関係を決定するために、元の704x576のビデオおよびそれらのダウンサンプリングされた低解像度のバージョンを同じCRF値で符号化する。訓練結果は、異なるCRF値に対応するビットレート−空間解像度の折れ線(polyline)がほぼ平行であることを示す。CRF値を下げるときのビットレートの増加率は、空間解像度の増加とともに次第に減少していく。CRF基準ビットレート・モデル220は、さまざまな空間解像度を有するビデオでさらに訓練され、訓練結果は、シミュレートされたビデオに対するビットレートと、空間解像度と、CRF値との間の関係と同様のビットレートと、空間解像度と、CRF値との間の関係を示す。
【0035】
訓練結果に基づいて、CRF基準ビットレート・モデル220は、平均ビットレートと空間解像度との間の関係を以下のようにモデル化する。
y=b×x
c (8)
ここで、各CRF値に対して0<c<1である。機能y=b×x
cは、座標系の原点を通り、このことは、空間解像度をゼロにすると、ビットレートがゼロになることを示唆する。0<c<1は、ビットレートと空間解像度との間の単調増加関係を示し、平均ビットレートは、空間解像度の高いビデオほど動き推定の効果の高いイントラ予測およびインター予測を有するので、空間解像度よりも増加率が低い。1実施形態において、パラメータcは、トレーニング・サンプルに当てはめるとき、平均が0.65になる。各CRF値に対するパラメータbは、式(8)に示されたべき関数を使用して平均ビットレートと空間解像度との間のマッピングをモデル化することにより得られる可能性がある。
【0036】
CRF値は、浮動小数点値をとる可能性がある。1実施形態において、CRF値は、x.264CRF符号化に関して[0,51]の範囲内にある。CRF=0は、可逆符号化のためのものであり、CRF=51は、ファイルサイズが最も小さく、ピーク信号対雑音比が最も小さい不可逆圧縮のためのものである。浮動小数点CRF値を使用してCRF基準ビットレート・モデル220を訓練すると、CRF値のみが変更され、その他の符号化パラメータ(例えば、フレーム・レート)は、ビデオを特定の目標の空間および時間解像度に符号化するために初期設定で固定されている。サンプルのCRF値12、14、・・・、および34は、ビデオを、視覚的に許容でき、十分な圧縮品質のPSNR28〜55dBに符号化するために使用される。
【0037】
特定の空間および時間解像度の下での平均レートとCRFとの間の関係は、以下の式(9)で記述され得る。
y=m×e
nx (9)
式(9)をモデル化するために、パラメータmは、1380に設定され、パラメータnは、−0.20に設定される。当てはめ誤差(fitting error)は、SSE=540.3およびRMSE=7.351によって評価される。式(4)で示された平均ビットレートBおよびCRFの関係(crf,M,T,B)は、以下の式(10)によって表され得る。
【0038】
【数4】
ビデオはデフォルトのフレーム・レートで符号化されることが多いことを考慮すると、パラメータTを無視することにより、以下のような修正された式(10)を得る。
【0039】
B=f
1(crf)×f
2(M)=m×e
n・crf×M
c (11)
したがって、CRFは、以下の式(12)を使用してビットレートBから得られる可能性がある。
【0040】
【数5】
相対的な当てはめ誤差は、以下の式によって空間解像度毎に評価される。
【0043】
【数8】
は、空間解像度MのビデオのCRFに対して平均された実際のビットレートであり、Ω
Mは、空間解像度Mのビデオの集合であり、|Ω
M|は、Ω
Mの濃度である。E
rは、相対誤差を表し、
【0044】
【数9】
は、平均の実際のビットレートを表し、
【0045】
【数10】
は、式(10)から推定されたビットレートを表す。
【0046】
III.改訂されたCRFビットレート・モデルを使用したビデオ符号化
入力ビデオを訓練されたCRF基準ビットレート・モデル220から得られたCRFによって符号化するために、入力ビデオを符号化することによる実際のビットレートは、入力ビデオに関連する目標のビットレートからずれる可能性がある。CRFと実際のビットレートとの間の改訂されたCRFビットレート・モデルが、入力ビデオを符号化するための目標のビットレートに向かって実際のビットレートを調整するために必要とされる。1実施形態において、RDCに基づくビデオ・コード変換モジュール400は、改訂されたCRFビットレート・モデル410を使用して、入力ビデオを符号化するためのCRF値を適合させる。改訂されたCRFビットレート・モデル410は、以下の式(15)を使用して改訂され得る。
【0047】
B=k×f
1(crf)×f
2(M)=k×m×e
n・crf×M
c (15)
ここで、kは、符号化されるべき入力ビデオに関連する改訂因子(revising factor)である。
【0048】
改訂をさらに示すために、改訂されたCRFビットレート・モデル410は、初めに、パラメータBに、入力ビデオに関連する目標のビットレートを代入することによって、式(12)で示されたCRFと平均ビットレートとの間のマッピングからCRFを得る。入力ビデオの符号化の結果として得られる実際のビットレートと、その対応するCRF、すなわち(実際のビットレート、CRF)とが、以下のように式(15)の改訂因子kを決定するために使用される。
【0049】
【数11】
図5は、例示的なビデオ・シーケンスに関する調整因子k、目標のビットレートB
t、実際のビットレートB
aの例示的なデータであり、ここで、パラメータMは、ビデオ・シーケンスの空間解像度を表す。
【0050】
訓練されたCRF基準ビットレート・モデル220および改訂されたCRFビットレート・モデル410を使用して、RDCに基づくビデオ・コード変換モジュール400は、入力ビデオを、入力ビデオに関連するビットレートの制約の範囲内で一定の視覚的品質で符号化することができる。以下のアルゴリズムは、入力ビデオを、入力ビデオに関連するビットレートの制約の範囲内で一定の視覚的品質で符号化する1実施形態を表す。
//*入力:未圧縮のビデオおよびその目標のビットレートB
t
//*出力:ビデオの目標のビットレートの範囲内で一定の視覚的品質を持つ圧縮されたビデオ
1:パラメータBにB
tを代入することによって式(12)のCRF基準ビットレート・モデル220からcrf
tを見つける
2:crf
tを用いてビデオを符号化し、実際のビットレートB
aを得る
3:(crf
t、B
a)のペアによって式(15)の改訂されたCRFビットレート・モデル410を得る
4:BにB
tを代入することによって式(15)の改訂されたCRFビットレート・モデルからcrf
aを見つける
5:crf
aを用いてビデオを符号化し、改訂された実際のビットレート
【0052】
【数13】
がB
tに近くない場合、収束するまで工程3を繰り返す
ここに記載したアルゴリズムは、訓練され、改訂されたCRFビットレート・モデルから評価されたCRF値を用いるマルチパスCRF符号化の1種である。工程6の収束の基準は、実際のビットレート
【0053】
【数14】
と目標のビットレートB
tとの間の差が目標のビットレートの±10%以内になることである。
【0054】
図4は、入力ビデオを、目標のビットレートの範囲内で一定の視覚的品質を有する出力ビデオに符号化する流れ図である。最初に、RDCに基づくビデオ・コード変換モジュール400が、入力ビデオを受信し(401)、入力ビデオは、入力ビデオを符号化するためのビットレートの制約として目標のビットレートを有する。1実施形態において、入力ビデオの目標のビットレートは、入力ビデオの目標の出力ビデオ・フォーマットに関連する。別の実施形態において、入力ビデオの目標のビットレートは、以下で説明されるビデオ記述長(VDL)の分析に基づいて改訂される。ビデオ・コード変換モジュール400が、(例えば、目標のビットレートが平均ビットレートパラメータBに代入されるようにして式(12)を用いて)入力ビデオの目標のビットレートに対する固定レート因子を見つける(403)。コード変換モジュール400が、得られたCRFを用いて入力ビデオを符号化し(405)、入力ビデオを符号化するための実際のビットレートを得る(407)。ビデオ・コード変換モジュール400が、(例えば、式(15)を用いて)実際のビットレートにより改訂因子を計算し(409)、改訂因子により修正された固定レート因子を見つける(411)。ビデオ・コード変換モジュール400が、修正された固定レート因子を用いて入力ビデオを符号化し(413)、符号化(413)による実際のビットレートが目標のビットレートの範囲内にあるかどうかを判定する(415)。実際のビットレートが目標のビットレートの範囲内にあることに応じて、ビデオ・コード変換モジュール400が、符号化されたビデオを出力する(417)。実際のビットレートが目標のビットレートの範囲内にないことに応じて、ビデオ・コード変換モジュール400が、動作工程409から417を繰り返す。
【0055】
入力ビデオに関連する目標のビットレートに向かって入力ビデオを符号化すると、試験の結果は、符号化パスの数が平均で1.8であることを示す。入力ビデオが平均に近いコンテンツ複雑性を有するとき、CRF基準ビットレート・モデル220によって見つけられたCRF値を用いる1パスのCRF符号化は、ビデオを目標ビットレートに向けて符号化する。入力ビデオが平均から外れたコンテンツ複雑性を有する場合、適応的に改訂されたCRFビットレート・モデル410によって見つけられたCRF値を用いるマルチパスCRF符号化が必要とされる。
【0056】
IV.符号化計算プロファイル(ECP)
ビデオ・シーケンスによって取り込まれたシーンの多様なコンテンツは、ビデオ・シーケンスに含まれる情報の多様な量につながる。ビデオ・ホスティング・サービスの大規模なビデオ・コーパスを考慮すると、異なるビデオコンテンツに同じ符号化ビットレートを適用することは、異なるビデオ品質をもたらす。さらに、ビデオ・ホスティング・サービス100は、ビデオ・ホスティング・サービス100にアップロードされるそれぞれのビデオのためにさまざまなビデオ出力フォーマットを提供する。異なる出力フォーマットは、目標の再生プラットフォーム(例えば、携帯電話および高精細度TV)、配信の制約(例えば、リアルタイム・ビデオ・ストリーミングおよびビデオ・オン・デマンド)、ならびにユーザの期待の点で異なるビデオ処理の目的を有する。
【0057】
さまざまなビデオ・フォーマットおよびコンテンツ複雑性を有するビデオをコード変換する1つの解決策は、異なるビデオに異なるビットレート制御ストラテジを適用することである。1実施形態において、RDCに基づくビデオ符号化システム102は、所与のビデオ出力フォーマットのために以下の3つの異なるビットレート制御ストラテジおよび符号化パラメータのうちの少なくとも1つを選択する。
【0058】
control_bitrate
control_quality
control_quality_bounded_bitrate
control_bitrateストラテジは、ビデオの目標のビットレートに可能な限り近くビデオを符号化する実際のビットレートを実現することである。このビットレート制御ストラテジは、モバイル・ビデオ・ストリーミング、およびダイヤルアップ・インターネット接続を用いるビデオ・ストリーミングに好適である。
【0059】
control_qualityストラテジは、一定の目標の視覚的品質を達成するために必要とされるビットレートを問わず一定の目標の視覚的品質を実現することである。control_qualityストラテジは、変動する実際のビットレート、例えば、複雑なビデオを符号化するための高ビットレートおよび単純なビデオのための低ビットレートを使用して多様な複雑性を有するビデオを符号化するために使用される。ビットレート制御ストラテジは、分散型のビデオ処理環境におけるビデオ処理およびストリーミング、ならびに高い視覚的な符号化品質のコード変換(例えば、可逆符号化品質)に好適である。
【0060】
control_quality_bounded_bitrateストラテジは、ビットレートの上限を守りながらできるだけ一定の目標の視覚的品質を実現することである。したがって、視覚的品質は、許容される最大限のビットレートの制約の範囲内で目標の品質が実現できない場合、複雑なビデオに関してのみ目標の品質レベルよりも下がることが許容される。より単純なビデオに関しては、ビットレートは、所望の目標の品質レベルが実現される限り、最大のビットレート未満である可能性がある。
【0061】
ビデオ・コード変換の性能をさらに高めるために、RDCに基づくビデオ符号化システム102は、所与のビットレート制御ストラテジを使用してトランスコーダに関する段階的な計算レベルをサポートする。特に、ビットレート制御ストラテジ(例えば、control_quality_bounded_bitrateストラテジ)に対して、例えば、RDCに基づくビデオ符号化システム102によってサポートされる以下の5つの異なる符号化計算レベルが存在する可能性がある。
【0062】
最速:最も速いコード変換時間を提供するが、必ずしも、最も小さくまとまった出力ビット・ストリーム、または同じビットレートに対する最高の視覚的品質をもたらすとは限らない。ほとんどのビットレート制御ストラテジおよび出力フォーマットに関して、1パス符号化が行われる。
【0063】
速:適度に速い符号化を提供する。ほとんどのビットレート制御ストラテジおよび出力フォーマットに関して、1パス符号化が行われる。
中:ほとんどのビットレート制御ストラテジおよび出力フォーマットに好適である符号化時間対符号化効率の釣り合いを提供する。
【0064】
低:より高い符号化効率、つまり、同じビットレートでより高い視覚的品質でコード変換されたビデオを生成するために、符号化により計算コストのかかるツールを使用する。例えば、映像コーデックx.264は、ビデオを高い視覚的品質で符号化するために、圧縮効率制御パラメータを「preset=slower」または「preset=placebo」と設定する。
【0065】
最低:最も小さくまとまった出力ビット・ストリーム、および映画スタジオの品質のビデオなどの最も高い知覚品質のビデオを生成するために、符号化に、計算量が多く、洗練されたツールを使用する。PSNRの観点で測られるとき、この符号化計算レベルの視覚的品質は、低モードによって実現される視覚的品質以下である可能性がある。
【0066】
トランスコーダが利用可能であるいくつかの符号化計算レベルによって、RDCに基づくビデオ符号化システム102は、ネットワーク(例えば、クラウド・コンピューティング・ネットワーク)内のサーバに対する現在のシステム負荷、ライブ・ストリーミングの需要、または許容可能なコード変換のレイテンシーなどの要因に応じて符号化計算レベルを適合させるためのさまざまなコード変換ポリシーを実装する。例えば、複数の最初のストリーミングのコード変換は、ライブ・ビデオ・ストリーミングのためにレイテンシーを削減するために低い計算レベルで行われる可能性がある。一方、再放送されるビデオ・ストリーミングは、再放送がビデオの高まった人気に対応すべきである場合、許容可能なレイテンシーを有するより高い計算レベルで行われる可能性がある。
【0067】
さまざまなビットレート制御ストラテジを最適化し、それぞれのビットレート制御ストラテジに関して段階的な符号化計算レベルをサポートするために、RDCに基づくビデオ符号化システム102は、異なるビットレート制御ストラテジを実装する複数の方法を評価するだけでなく、それぞれのビットレート制御ストラテジに対する計算の最適な割り当ても考慮する体系的な手順にしたがう。1実施形態において、RDCに基づくビデオ符号化システム102は、計算効率のトレードオフをきめ細かくモデル化するように符号化計算プロファイル(ECP)マッピング・モジュール230を訓練する。
【0068】
ECPは、x.264符号化に容易に統合され得る計算の複雑性の割り当て制御パラメータである。ECPパラメータは、0と1との間の浮動小数点値をとり、ビットレートと、歪みと、計算の複雑性との間のトレードオフを細かく調整するために使用され得る。既存のビットレート制御ストラテジは、ビデオの符号化のレートと歪みとの間のトレードオフに焦点を当てる。しかし、符号化の計算が符号化効率を評価するための基準と考えられるときは、レートと歪みとの間のトレードオフが、符号化の計算と一緒に調整される必要がある。
【0069】
例えば、2パス符号化方式においては、第1の符号化パスがビデオの何らかの統計情報を得るために使用されるので、概して、第1の符号化パスは、第2の符号化パスよりも高速に実行される。2パス符号化全体は、概して、1パス符号化方式よりも多くの計算を消費する。しかし、計算がかなり複雑な1パス符号化が比較的計算が複雑でない2パス符号化よりも効率的であるか、またはより効率が低いかは、明らかでない。RDCに基づくビデオ符号化システム102のECPマッピング・モジュール230は、マルチパスに基づくビデオ・コード変換(例えば、x.264に基づくマルチパス・コード変換)のための計算と、所与の符号化計算レベルに関する符号化パスの数との最適な割り当てを見つけるように設計される。
【0070】
ここで
図2に目を向けると、RDC訓練モジュール200のECPマッピング・モジュール230が、ビデオ・コーパス160に記憶されたビデオで訓練される。それぞれの符号化ストラテジに関して、ECPマッピング・モジュール230は、生のレート−歪み−複雑性データを得るために、マルチパス・コード変換のさまざまなあり得る実装およびさまざまなあり得る計算レベルにわたって訓練される。ECPマッピング・モジュール230は、例えば、複数の等しい間隔の符号化計算レベルで(例えば、1実施形態においては、5つの符号化計算レベル、すなわち、最速、速、中、低、および最低計算レベルが存在する可能性がある)ビットレート制御ストラテジのそれぞれに関して最良のコード変換の実装および計算の割り当てを導出するために生のレート−歪み−複雑性データに対する複数の基準のパレート最適集合分析を使用してさらに最適化される。
【0071】
マルチパスx.264コード変換を例にとると、ECPマッピング・モジュール230は、2パス符号化のための計算の割り当てをペア{ecp
0、ecp
1}によって表す。ecp
0は、1パス・ビットレート符号化または2パス・ビットレート符号化の第1のパスの計算の複雑性を表す。ecp
1は、2パス・ビットレート符号化の第2のパスの計算の複雑性を表す。例えば、{0.07、NULL}は、1パス・ビットレート符号化の実装の計算の複雑性を表し、{0.07、0.71}は、2パス・ビットレート符号化の実装の例示的な計算の複雑性である。
【0072】
それぞれのビットレート制御ストラテジに関して、ECPマッピング・モジュール230は、ビデオ・コーパス160からのビデオの集合でオフラインで訓練される。各訓練サンプルは、レート−歪み−複雑性の性能、3つ組み{R、D、C}に関連付けられ、実際の符号化ビットレート(R)は、訓練から得られ、歪み(D)は、ビデオ・フレームの輝度成分の平均二乗誤差によって測られ、複雑性(C)は、1フレーム当たりの符号化時間によって表される。以下は、マルチパスx.264コード変換方式を用いて、control_bitrateビットレート制御ストラテジに関してECPマッピング・モジュール230を訓練するためのアルゴリズムである。
1:すべてのあり得る{ecp
0、ecp
1}ペアおよび異なる目標のビットレートで、control_bitrateストラテジを使用して訓練ビデオを符号化する。
2:訓練から{R、D、C}性能サンプルを得る。
3:訓練ビデオの各{ecp
0、ecp
1}ペアに関してR上で歪みDおよび計算時間Cを滑らかに補完する。
4:{R、D、C}サンプルの中のパレート最適集合を見つけ、パレート集合を補間して区分的に連続な{R、D、C}面を得る。
5:計算時間Cを5つの一様な間隔の継続レベル(continuation level)に分割する。
6:レート値を選択し、選択されたビットレート値で5つの計算レベルのそれぞれに関してパレート最適な面上の{ecp
0、ecp
1}ペアを選択する。
7:ビデオに対する回帰試験によって最適化されたストラテジの効果を検証する。
【0073】
control_bitrate制御ストラテジによる5つの計算レベルに関する最適化された計算の割り当てが、以下のテーブル1に示される。
【0074】
【表1】
テーブル1に示されたように、それぞれの計算レベルに関して、ECPマッピング・モジュール230は、符号化パスの数および必要とされる計算の複雑性の割り当て制御パラメータ値を示すECP値の{ecp
0、ecp
1}のペアを提供する。例えば、control_bitrate制御ストラテジを使用する中位の計算の複雑性を有するビデオの符号化に関しては、最適化されたレート−歪み−複雑性の釣り合いを達成するために2符号化パスが使用される可能性があり、第1の符号化パスに関して、ECP値は0.07であり、第2の符号化パスに関しては0.50である。リアルタイム・ストリーミングのためにビデオを符号化するためには、符号化時間が、許容できない遅延なしに高速であることが必要である。RDCに基づくビデオ符号化システム102は、レート−歪み−複雑性の釣り合いをとるためにECP値0.35の1パス符号化を選択する可能性がある。
【0075】
別の実施形態においては、ECPマッピング・モジュール230は、別のビデオ符号化方式、VP8(WebMとも呼ばれる)を使用して訓練される。符号化の計算プロファイル・パラメータ(すなわち、ecp
0、ecp
1)を使用する代わりに、VP8は、レートと、歪みと、計算の複雑性との間のトレードオフを管理するために符号加速度制御(ES)パラメータを使用する。テーブル2は、VP8符号化方式を使用したcontrol_bitrate制御ストラテジによる5つの計算レベルに関する計算の割り当ての例を示す。
【0076】
【表2】
ECPマッピング・モジュール230は、control_qualityストラテジおよびcontrol_quality_bounded_bitrateストラテジなどのその他のビットレート制御ストラテジのためにビデオ・コーパス160からのビデオで同様に訓練される。テーブル3は、x.264符号化方式を用いたcontrol_quality制御ストラテジによる5つの計算レベルに関する最適化された計算の割り当てと、VP8符号化方式に関する対応する計算の割り当てとを示す。一定の目標の品質を実現するために、ECPマッピング・モジュール230によってRDCに基づくビデオ・コード変換に1パス符号化のみが提案される。テーブル4は、x.264符号化方式を用いたcontrol_quality_bounded_bitrate制御ストラテジによる5つの符号化計算レベルに関する最適化された計算の割り当てと、VP8符号化方式に関する対応する計算の割り当てとを示す。
【0078】
【表4】
図6は、レート−歪み−複雑性の最適化のためにオフラインでECPマッピング・モジュール230を訓練する流れ図である。初めに、RDC訓練モジュール200が、ビデオ・コーパス160からビデオを受信する(610)。RDC訓練モジュール200のビデオ・エンコーダ210は、選択されたビデオの集合を符号化し(620)、訓練から{R、D、C}サンプルを取得する(630)。ECPマッピング・モジュール230は、取得された{R、D、C}サンプルから最適な{R、D、C}サンプルを見つける(640)。例えば、ECPマッピング・モジュール230は、{R、D、C}サンプルの中のパレート最適集合を見つけ、パレート集合を補間して区分的に連続な{R、D、C}面を得る。ECPマッピング・モジュール230は、最適な{R、D、C}サンプル空間を複数の計算複雑性レベル(例えば、上述の5つの計算レベル)に分割する(650)。ECPマッピング・モジュール230は、それぞれの計算レベルに関してRDC最適な符号化ストラテジ(例えば、control_quality_bounded_bitrateストラテジ)を選択し(660)、それぞれの計算レベルに関するECPパラメータおよび符号化パスの数を得る(670)。
【0079】
RDCに基づくビデオ符号化システム102は、前の符号化パスに基づいてその後の符号化パスの符号化パラメータを調整することによってマルチパス符号化の性能を最適化することができる。例えば、入力ビデオを符号化する2パス符号化方式においては、RDCに基づくビデオ符号化システム102は、第1の符号化パスの符号化パラメータに基づいて第2の符号化パスの符号化パラメータ(例えば、ビットレート、動き推定方法、および動きベクトルの探索範囲)を適合させることができる。第1の符号化パスの実際のビットレートが同じECP値で符号化された平均ビットレート未満である場合、それは、入力ビデオが平均のビデオよりも単純なビデオコンテンツを有し、第2の符号化パスのECP値が、同じレート−歪みの性能を維持しながら入力ビデオを符号化するための計算を節約するために小さくされ得ることを示す。第1の符号化パスの実際のビットレートが同じECP値で符号化された平均ビットレートよりも大きい場合、第2の符号化パスのECP値は、入力ビデオを符号化するためのより大きなレート−歪みの性能の利得を実現するために増やされる可能性がある。
【0080】
V.ビデオ記述長(VDL)を用いた符号化
最小限のコストで、許容可能な視覚的品質でソース・ビデオをコード変換することは、ソース・ビデオのビデオ符号化の複雑性を効果的に評価することを必要とする。ビデオのコード変換に与えるビデオコンテンツ複雑性の影響を無視することは、コード変換されたビデオの視覚的品質およびユーザ・エクスペリエンスを損なう。入力ビデオを符号化するためのビットレート情報はソース・ビデオのビデオコンテンツ複雑性を反映するので、特定の視覚的品質でビデオを符号化するためにどれだけのビットレートが必要とされるかについての情報は、ビデオ符号化の効率の最適化のために有用である。
【0081】
1実施形態において、RDCに基づくビデオ符号化システム102は、ビデオについてビデオコンテンツ複雑性を表すためにビデオ記述長を使用する。VDLは、特定の視覚的品質でビデオを符号化するために必要とされるビットレートである。異なるビデオは、異なるVDLを有する。動きが遅く、滑らかな画像を有するビデオは、ビデオが、小さなビットレートだが高い視覚的品質で符号化することが容易であることを示す短いVDLを有する。一方、動きが激しく、複雑な見た目のコンテンツを有するビデオは、ビデオが符号化することが難しいことを示す長いVDLを有する。
【0082】
ビデオ記述長は、適応的なビデオ符号化および復号のような多くの応用で非常に有用である。ビデオ・コード変換に関しては、VDLは、ビデオをそのビデオの出力ビデオ・フォーマットに効率的に符号化するための目標のビットレートまたは目標の固定レート因子を選択するようにRDCに基づくビデオ・トランスコーダを導く。RDCに基づくビデオ・トランスコーダは、入力ビデオの複雑性を基準ビデオと、それらのビデオの関連するVDLの観点で比較し、基準ビデオの既存の妥当な符号化パラメータを参照することによって入力ビデオのための適切な符号化パラメータを決定する。
【0083】
ビデオのVDL情報は、以下の少なくとも3つの形態を有する可能性がある。
全体VDL、
時間VDL、および
空間VDL
全体VDLは、ビデオが「CRF=26、複雑性=最速」で符号化されるときのビデオの実際のビットレートである。CRF値は、構成可能なパラメータであり、実験データは、ビデオがCRF符号化によりCRF=26で符号化されるときに良好な視覚的品質であることを示す。
【0084】
時間VDLは、ビデオが2つの異なる複雑性、例えば、「CRF=26、複雑性=速」および「CRF=26、複雑性=最速」で符号化されるときのビデオの実際のビットレートの差である。ビデオの時間VDLは、ビデオの時間的な複雑性を反映する。異なる時間的な複雑性を有するビデオは、大抵、ビデオ内で検出された動きをどれだけ高速に処理すべきかとは異なる。ビデオ内の検出された動きがどれだけ高速に処理されるべきかは、動き推定方法、および動き推定のために使用される基準フレームの数などの1つまたは複数の要因に依存する。時間VDLを表す1つの実施形態は、異なる複雑性のレベルでビデオを符号化するときのビデオのビットレートの差を使用することである。
【0085】
空間VDLは、ビデオが2つの異なるCRF、例えば、「CRF=26、複雑性=最速」および「CRF=28、複雑性=最速」で符号化されるときのビデオの実際のビットレートの差である。概して、動き推定アルゴリズムによって予測される残差信号の複雑性は、ビデオ・フレームの複雑性を反映し、残差信号の変換係数は、CRF値によって表される量子化を経る。したがって、異なるCRF値を用いて、ただし、同じ複雑性のレベルで符号化されるビデオのビットレートの差は、時間的要因の影響を減らし、ビデオの空間的な複雑性を反映する。より大きな空間VDLを有するビデオは、ビデオ内により複雑な空間的コンテンツを有する。
【0086】
ビデオの全体VDL、時間VDL、および空間VDLは、RDCに基づくビデオ・コード変換を導くために使用され得る。例えば、
図4を参照すると、RDCに基づくビデオ・コード変換モジュール400のビデオ記述長モジュール420が、入力ビデオを符号化することにより入力ビデオの全体VDL、時間VDL、および空間VDLを得る。入力ビデオの得られたVDLデータは、動的なVDLデータベースに、入力ビデオに関する基準VDLとして記憶される。例えば、ビデオ記述長モジュール420は、全体VDLに関する動的な参照テーブルを保有し、各テーブルのエントリは、入力ビデオの識別情報、入力ビデオの全体VDL、入力ビデオの時間解像度および空間解像度を記憶する。ビデオをコード変換した後、ビデオ記述長モジュール420は、入力ビデオのVDLの基準を削除する。ビデオ記述長モジュール420は、同様に、時間VDLおよび空間VDLに関する動的な参照テーブルをそれぞれ保有する。入力ビデオの1つのビデオ出力フォーマットに関して得られた全体VDLは、その他のビデオ出力フォーマットに関する入力ビデオの符号化を導くために使用され得る。入力ビデオの1つのビデオ出力フォーマットに関して得られた時間および空間VDLは、入力ビデオのその他のビデオ出力フォーマットのために同様に使用され得る。
【0087】
別の実施形態においては、RDCに基づくビデオ符号化システム102は、動的なVDL参照テーブルに記憶されたVDLデータに基づいて、ビデオ・コーパス160のビデオの全体VDL、時間VDL、および空間VDLに関する静的なVDL参照テーブルを生成する。例えば、全体VDLに関する静的なVDL参照テーブルは、選択された時間解像度に対するそれぞれの個々の入力データの平均された全体VDLデータと、選択された空間解像度に対する全体VDLの別の静的なVDL参照テーブルとを記憶する。選択された時間解像度または空間解像度に対する時間VDLおよび空間VDLの静的なVDL参照テーブルが、同様に生成され得る。静的なVDL参照テーブルは、動的なVDL参照テーブル内のレコードが生成または更新される度に更新される可能性がある。
【0088】
所与の入力ビデオに関して、ビデオ記述長モジュール420は、上述のように入力ビデオの全体VDL、時間VDL、および空間VDLを計算し、レート−歪み−複雑性の最適化のためにRDCに基づくトランスコーダ430と通信する。例えば、入力ビデオの目標のビットレート未満の入力ビデオの全体VDLに応答して、ビデオ記述長モジュール420は、入力ビデオの全体VDLを目標のビットレートとして設定する。全体VDLを入力ビデオの目標のビットレートとして設定することは、良好な視覚的品質を得るのに役立つ。基準ビデオの空間VDLよりも大きい入力ビデオの空間VDLに応答して、ビデオ記述長モジュール420は、空間処理に関する符号化の複雑性のレベルを上げる(例えば、複雑性のレベルを、例えば、「中」から「速」に変更する)ようにRDCに基づくトランスコーダ430に指示する。同様に、ビデオ記述長モジュール420は、入力ビデオの時間VDLと基準ビデオの時間VDLとの間の比較に基づいて入力ビデオの時間処理に関する符号化の複雑性のレベルを調整するようにRDCに基づくトランスコーダ430に指示する。
【0089】
図3は、上述のVDLに導かれるビデオ・コード符号化をさらに示す。最初に、RDCに基づくビデオ・コード符号化モジュール400が、入力ビデオを受信し(310)、改訂されたCRFビットレート・モデル410を介して入力ビデオを符号化する。ビデオ記述長モジュール420は、入力ビデオの全体VDL、時間VDL、および空間VDLを得る(320)。ビデオ記述長モジュール420は、改訂されたCRFビットレート・モデル410によって符号化することから入力ビデオのVDL情報を得るか、またはそのビデオ記述長モジュール420自体によって入力ビデオのVDL情報を計算する。
【0090】
ビデオ記述長モジュール420は、入力ビデオの全体VDLを入力ビデオの目標のビットレートと比較し(330)、比較に基づいて入力ビデオの目標のビットレートを調整する(例えば、目標のビットレート未満の全体VDLに応じて入力ビデオの全体VDLを入力ビデオの目標のビットレートとして設定する。)(340)。ビデオ記述長モジュール420は、入力ビデオの時間VDLを基準時間VDLと比較し(350)、比較に基づいてビデオ符号化の複雑性を時間的に調整する(360)。ビデオ記述長モジュール420は、入力ビデオの空間VDLを基準空間VDLと比較し(370)、比較に基づいてビデオ符号化の複雑性を空間的に調整する(380)。RDCに基づくトランスコーダ430は、
図4に示されるように、調整された目標のビットレート、時間符号化複雑性、および空間符号化複雑性で入力ビデオを符号化する(390)。調整された目標のビットレート、時間的または空間符号化複雑性は、目標のビットレートおよび符号化の複雑性の更新を反映するために異なるECP値および符号化パスの数が必要とされることを示す。
【0091】
上の説明は、好ましい実施形態の動作を例示するために含められており、本発明の範囲を限定するように意図されていない。本発明の範囲は、添付の特許請求の範囲によってのみ限定されるべきである。上の検討から、本発明の精神および範囲にやはり包含される多くの変更形態が、当業者に明らかになる。
【0092】
本発明は、1つのあり得る実施形態に関して特に詳細に説明された。当業者は、本発明がその他の実施形態で実施され得ることを理解するであろう。第1に、コンポーネントの特定の命名、用語の大文字の使用、属性、データ構造、または任意のその他のプログラミングもしくは構造の態様は、必須ではないか、または重要でなく、本発明またはその特徴を実装するメカニズムは、異なる名前、フォーマット、またはプロトコルを有する可能性がある。さらに、システムは、説明されたように、ハードウェアおよびソフトウェアの組み合わせにより実装されるか、またはすべてハードウェア要素で実装される可能性がある。また、本明細書に記載のさまざまなシステムの構成要素の間での機能の特定の分割は、
例示的であるに過ぎず、必須ではなく、単一のシステムの構成要素によって実行される機能が、その代わりに複数の構成要素によって実行される可能性があり、複数の構成要素によって実行される機能が、その代わりに単一の構成要素によって実行される可能性がある。
【0093】
上の説明の一部は、情報に対する動作のアルゴリズムおよび記号表現によって本発明の特徴を示す。これらのアルゴリズムの記述および表現は、データ処理技術に精通している者によって、その者の成果の内容を当該技術分野に精通しているその他の者に最も効果的に伝えるために使用される手段である。これらの動作は、機能的または論理的に説明されているが、コンピュータ・プログラムによって実装されると理解される。さらに、一般性を失うことなく動作のこれらの構成をモジュールと呼ぶか、または機能の名前で呼ぶことが便利であることがあることも分かっている。
【0094】
別途具体的に述べられない限り、上の検討から明らかなように、説明全体を通じて、「処理」または「計算」または「算出」または「決定」または「表示」などの用語を使用する検討は、コンピュータ・システムのメモリもしくはレジスタ、またはその他のそのような情報ストレージ、送信、もしくはディスプレイ・デバイス内で物理的(電子的)量として表されるデータを操作および変換するコンピュータ・システムまたは同様の電子的なコンピューティング・デバイスの行為および方法を指すことが理解される。
【0095】
本発明の特定の態様は、本明細書に記載の方法の工程および命令をアルゴリズムの形態で含む。本発明の方法の工程および命令は、ソフトウェア、ファームウェア、またはハードウェアで具現化される可能性があり、ソフトウェアで具現化されるときは、リアルタイム・ネットワーク・オペレーティング・システムによって使用されるさまざまなプラットフォームに存在するようにダウンロードされ、そのようなプラットフォームから操作される可能性があることに留意されたい。
【0096】
本発明は、本明細書に記載の動作を実行するための装置にも関する。この装置は、必要とされる目的のために特別に構築される可能性があり、またはコンピュータによってアクセスされ得るコンピュータ可読媒体に記憶されたコンピュータ・プログラムによって選択的に有効化または再構成される多目的コンピュータを含む可能性がある。そのようなコンピュータ・プログラムは、フロッピー(登録商標)・ディスク、光ディスク、CD−ROM、光磁気ディスクを含む任意の種類のディスク、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、EPROM、EEPROM、磁気式もしくは光学式カード、特定用途向け集積回路(ASIC)、または電子的な命令を記憶するのに好適であり、それぞれがコンピュータ・システムのバスに結合される任意の種類の媒体などであるがこれらに限定されないコンピュータ可読記憶媒体に記憶される可能性がある。さらに、本明細書において言及されるコンピュータは、単一のプロセッサを含む可能性があり、または計算能力を高めるためにマルチ・プロセッサ設計を使用するアーキテクチャである可能性がある。
【0097】
本明細書において示されたアルゴリズムおよび動作は、いかなる特定のコンピュータまたはその他の装置にも分かちがたく関連していない。さまざまな汎用システムが、本明細書の教示によるプログラムとともに使用される可能性もあり、または方法の工程を実行するためのより特化した装置を構築することが便利であると判明する可能性がある。さまざまなこれらのシステムに関する構造は、等価な変更形態とともに当業者に明らかになる。加えて、本発明は、いかなる特定のプログラミング言語も特に対象にして説明されていない。さまざまなプログラミング言語が、本明細書において説明された本発明の教示を実装するために使用される可能性があり、本発明の実施および最良の形態の開示に関して、特定の言語が任意に参照されることが理解される。
【0098】
本発明は、多くのトポロジー上の多種多様なコンピュータ・ネットワーク・システムによく適している。この分野で、大規模なネットワークの構成および管理は、インターネットなどのネットワークで異種のコンピュータおよびストレージ・デバイスに通信可能なように結合されるストレージ・デバイスおよびコンピュータを含む。
【0099】
最後に、本明細書において使用された言い回しは、主として、読み易くし、教示を与えることを目的として選択されており、本発明の対象を正確に説明するか、または厳密に定めるように選択されていない可能性があることに留意されたい。したがって、本発明の開示は、添付の特許請求の範囲に記載された本発明の範囲を例示するように意図されており、限定するように意図されていない。