(57)【要約】量子化要素は、変換されたビデオフレームから生成される変換係数のヒストグラムからの情報を使用して決定される。ヒストグラムは、現在符号化されるプロセスにあるビデオフレームの符号化されたフレームサイズを推定する際に使用される。ビデオ符号化の量子化ステップにおいて使用される量子化要素は、ヒストグラムからの情報に基づいて現在のビデオフレームのために調節される。ヒストグラムは、符号化されたフレームサイズの所望の長さに対してバランスされる。ヒストグラムにおけるカットオフ閾値は、量子化要素の様々な選択と相関し、それらの閾値以下の点の比率は、符号化されたフレームのサイズを推定するために使用される。
2013532439.tif 000002
【特許請求の範囲】
【請求項１】
ビデオフレームの符号化中に量子化要素を決定するための方法であって、
ピクセルを備えたビデオフレームを受信するステップと、
変換係数を生成する周波数変換である変換を前記ビデオフレームに適用するステップと、
前記変換されたビデオフレームから前記変換係数を使用してヒストグラムを生成するステップと、
前記ヒストグラムからの情報を使用して、前記変換係数の量子化中に使用される量子化要素を決定するステップと
を備えることを特徴とする方法。
【請求項２】
前記ビデオフレームが符号化される前に前記ヒストグラムを使用して前記ビデオフレームの符号化されたサイズを推定するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記ビデオフレームは、符号化されるプロセスにある現在のビデオフレームであり、前記ヒストグラムを生成するステップは、前記現在のビデオフレームの前記変換係数から前記ヒストグラムを生成するステップを備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記ヒストグラムを生成するステップは、前記量子化要素を決定する際にカットオフ閾値を使用するステップを備えることを特徴とする請求項２に記載の方法。
【請求項５】
履歴傾向を使用して前記決定された量子化要素を調節するステップをさらに備えることを特徴とする請求項２に記載の方法。
【請求項６】
様々な量子化値を使用して量子化の後に非ゼロ係数の比率を計算し、前記非ゼロ係数比を符号化されたピクセルあたりのビット数値にマッピングするステップをさらに備え、前記量子化要素を決定するステップは、前記ヒストグラムを生成する前に決定される推定された量子化要素を修正するステップを備えることを特徴とする請求項２に記載の方法。
【請求項７】
量子化要素を決定するためのシステムであって、
プロセッサおよびコンピュータ可読媒体と、
前記コンピュータ可読媒体上に格納され、前記プロセッサ上で実行する動作環境と、
前記プロセッサ上で動作するビデオアプリケーションおよびビデオマネージャとを備え、
符号化されるプロセスにある現在のビデオフレームである、ピクセルを備えたビデオフレームを受信することと、
変換係数を生成する周波数変換を前記ビデオフレームに適用することと、
前記変換係数の前記量子化の前に、前記変換係数を使用してヒストグラムを生成することと、
前記ヒストグラムからの情報および前記ビデオフレームの推定された符号化されたサイズを使用して前記量子化要素を決定すること
とを備えるタスクを実行するように構成されることを特徴とするシステム。
【請求項８】
様々な量子化値を使用して量子化後に非ゼロＡＣ係数の比率を決定することと、前記比率を前記符号化されたピクセルあたりのビット数値にマッピングすることとをさらに備えることを特徴とする請求項７に記載のシステム。
【請求項９】
前記量子化要素を決定することは、前記ヒストグラムを生成する前に決定される推定された量子化値を更新することを備えることを特徴とする請求項７に記載のシステム。
【請求項１０】
量子化要素を決定するためのコンピュータ実行可能命令を有するコンピュータ可読記憶媒体であって、
ピクセルを備えたビデオフレームを受信することと、
変換係数を生成する周波数変換を前記ビデオフレームに適用することと、
前記変換係数の量子化中に使用されるべき量子化要素を推定することと、
前記変換係数の前記量子化の前に、前記変換係数を使用してヒストグラムを生成することと、
前記ビデオフレームが符号化される前に前記ヒストグラムを使用して前記ビデオフレームの符号化されたサイズを推定することと、
前記ヒストグラムからの情報を使用して前記量子化要素を更新することと
を備えることを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換係数ヒストグラムに基づくビデオレート制御に関する。
【背景技術】
【０００２】
ビデオレート制御は、ネットワーキング条件を変えた場合に十分なユーザエクスペリエンスを提供するのを支援するために、符号化されたビデオ品質を動的に調節する。一般に、ビデオ符号化器は、ネットワーキング条件を変えるために一定のビットレートまたは局所的に一定のビットレートをマッチングするタスクを与えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
動きの導入または映画的変化のいずれかによってシーンの複雑性は変化するので、基準となる予測された圧縮率からのかなりの逸脱が生じる可能性があり、それによってビデオ品質が低下することになる。
【課題を解決するための手段】
【０００４】
本「発明の概要」は、下記で「発明を実施するための形態」においてさらに説明される概念の抜粋を簡略化された形態で紹介するために提供される。本「発明の概要」は、本特許請求の主題の主要な特徴または必須の特徴を識別することを意図するものでもなく、本特許請求の主題の範囲を判定する際の支援として使用されることを意図するものでもない。
【０００５】
量子化要素は、変換されたビデオフレームから生成された変換係数のヒストグラムからの情報を使用して決定される。ヒストグラムは、現在符号化されるプロセスにあるビデオフレームの符号化されたフレームサイズを推定する際に使用される。ビデオ符号化の量子化ステップにおいて使用される量子化要素は、ヒストグラムからの情報に基づいて現在のビデオフレームのために調節される。適切な量子化要素を選択することは、ビデオフレームにおける変化（例えば、動き、シーンの変化）に応答するのを支援し、それによってビデオディスプレイの品質におけるより円滑な調節を提供する。ヒストグラムは、符号化されたフレームサイズの所望の長さに対してバランスされる。ヒストグラムにおけるカットオフ閾値は、量子化要素の様々な選択と相関し、それらの閾値以下の点の比率は、符号化されたフレームのサイズを推定するために使用される。さらに、相関式の係数を調節して計算の正確さを向上させるために履歴傾向が使用されてもよい。
【図面の簡単な説明】
【０００６】
【図１】コンピュータのためのコンピュータアーキテクチャを示す図である。
【図２】ビデオレート制御にヒストグラムの使用を組み込んだビデオ符号化システムを示す図である。
【図３】圧縮率対量子化ステップ値の例示的グラフ、および圧縮率対非ゼロ係数のパーセンテージの例示的グラフである。
【図４】量子化要素を調節する際に変換係数のヒストグラムを使用する例示的ブロックベースのフレーム内／フレーム間圧縮経路を示す図である。
【図５】非量子化変換係数から生成されたヒストグラム情報を使用して量子化要素を更新するためのプロセスを示す図である。
【発明を実施するための形態】
【０００７】
次に、同様の数字は同様の要素を表す図面を参照しながら、様々な実施形態が説明される。具体的には、図１および対応する説明は、諸実施形態がそこで実施されることが可能である適切なコンピューティング環境の簡単な全般的説明を提供することを意図するものである。
【０００８】
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行するまたは特定の抽象データ型を実装する他のタイプの構造を含む。さらに、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能なコンシューマ電子機器、ミニコンピュータ、メインフレームコンピュータ、および同種のものを含めて、他のコンピュータシステム構成が使用されてもよい。さらに、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される分散コンピューティング環境が使用されてもよい。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリストレージデバイスおよびリモートメモリストレージデバイスの両方に配置されてよい。
【０００９】
次に、図１を参照しながら、様々な実施形態において利用されるコンピュータ１００のための例示的コンピュータアーキテクチャが説明される。図１に示されているコンピュータアーキテクチャは、デスクトップ、サーバ、またはモバイルコンピュータとして構成されてよく、中央処理装置５（「ＣＰＵ」）、ランダムアクセスメモリ９（「ＲＡＭ」）および読出し専用メモリ（「ＲＯＭ」）１１を含むシステムメモリ７、ならびにメモリをＣＰＵ５に結合するシステムバス１２を含む。起動中などにコンピュータ内の要素間で情報を伝送するのを支援する基本ルーチンが入っている基本入力／出力システムは、ＲＯＭに格納されている。コンピュータ１００は、以下でさらに詳細に説明される、オペレーティングシステム１６、アプリケーションプログラム、および他のプログラムモジュールを格納するための大容量記憶装置１４をさらに含む。
【００１０】
大容量記憶装置１４は、バス１２に接続されている大容量記憶コントローラ（図示せず）を介してＣＰＵ５に接続される。大容量記憶装置１４およびその関連コンピュータ可読媒体は、コンピュータ１００のための不揮発性ストレージを提供する。本明細書に含まれているコンピュータ可読媒体の説明は、ハードディスクまたはＣＤ−ＲＯＭドライブなどの大容量記憶装置に関するが、コンピュータ可読媒体は、コンピュータ１００によってアクセスされ得る任意の利用可能な媒体の記憶装置でよい。
【００１１】
本明細書で使用される用語、コンピュータ可読媒体は、コンピュータ記憶媒体を含んでよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装された揮発性媒体および不揮発性媒体、取外し可能な媒体および取外し不可能な媒体を含んでよい。システムメモリ７、取外し可能なストレージおよび取外し不可能なストレージはすべて、コンピュータ記憶媒体の例（すなわち、メモリストレージ）である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、電気的消去可能読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージデバイスもしくは他の磁気ストレージデバイス、または情報を格納するために使用されることが可能であり、コンピューティングデバイス１００によってアクセスされることが可能である任意の他の媒体を含んでよいがそれらに限定されない。そのようなコンピュータ記憶媒体はいずれもデバイス１００の一部分でよい。さらに、コンピューティングデバイス１００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス（１つまたは複数）２８を有してもよい。さらに、ディスプレイ、スピーカ、プリンタなどの出力デバイス（１つまたは複数）２８が含まれてもよい。前述のデバイスは例であり、他のデバイスが使用されてもよい。
【００１２】
さらに、本明細書で使用される用語、コンピュータ可読媒体は、通信媒体を含んでもよい。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他のトランスポート機構などの変調データ信号内の他のデータによって実施されてよく、任意の情報配信媒体を含む。用語「変調データ信号」は、信号内の情報を符号化するような方法で設定または変更された１つまたは複数の特性を有する信号を示してよい。例として、限定としてではなく、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響媒体、無線周波数（ＲＦ）媒体、赤外線媒体および他の無線媒体などの無線媒体を含んでよい。
【００１３】
様々な実施形態によれば、コンピュータ１００は、ネットワーク接続された環境において、インターネットなどのネットワーク１８を介してのリモートコンピュータへの論理接続を使用して動作する。コンピュータ１００は、バス１２に接続されているネットワークインターフェースユニット２０を介してネットワーク１８に接続することができる。ネットワーク接続は、無線および／または有線でよい。ネットワークインターフェースユニット２０はまた、他のタイプのネットワークおよびリモートコンピュータシステムに接続するために利用されてもよい。コンピュータ１００はまた、キーボード、マウス、または電子スタイラス（図１には示されていない）を含めていくつかの他のデバイスからの入力を受信し処理するための入力／出力コントローラ２２を含んでもよい。同様に、入力／出力コントローラ２２は、ディスプレイ画面２８、プリンタ、または他のタイプの出力デバイスに出力を提供することができる。ディスプレイ２８は、ビデオ会議中にビデオフィードなどのビデオを表示するように設計される。
【００１４】
上記で簡単に述べられたように、ワシントン州レドモンドのマイクロソフトコーポレーションからのウィンドウズ（登録商標）７オペレーティングシステムなどのネットワーク接続されたコンピュータの動作を制御するのに適したオペレーティングシステムを含めて、いくつかのプログラムモジュールおよびデータファイルがコンピュータ１００の大容量記憶装置１４およびＲＡＭ９に格納されてよい。大容量記憶装置１４およびＲＡＭ９はまた、１つまたは複数のプログラムモジュールを格納することができる。具体的には、大容量記憶装置１４およびＲＡＭ９は、１つまたは複数のアプリケーションプログラムを格納することができる。アプリケーションプログラムの１つは、ビデオ会議アプリケーションなどの会議アプリケーション２４である。一般に、会議アプリケーション２４は、ユーザが２人以上のビデオ会議に参加した場合に利用するアプリケーションである。アプリケーションはまた、ビデオを符号化する他のプログラムと関係があってもよい。例えば、アプリケーションは、ウェブブラウザに配信されるビデオを符号化することができる。
【００１５】
ビデオマネージャ２６は、現在のビデオフレームの非量子化変換係数のヒストグラムに部分的に基づいて現在のビデオフレームのための量子化要素を決定するように構成される。変換係数のヒストグラムは、現在のビデオフレームの符号化されたフレームサイズを推定する際に使用される。ヒストグラムは、符号化されたフレームサイズの所望のサイズに対してバランスされる。ヒストグラムにおけるカットオフ閾値は量子化要素の様々な選択と相関し、それらの閾値以下の点の比率は符号化されたフレームのサイズを推定するために使用される。さらに、相関式の係数を調節して計算の正確さを向上させるために履歴傾向が使用されてもよい。一実施形態によれば、選択された量子化要素は、結果として、前に生成された他の符号化されたフレームサイズと同様である符号化されたフレームサイズになる。
【００１６】
図２は、ビデオレート制御にヒストグラムの使用を組み込んだビデオ符号化システムを示す。図示されているように、システム２００は、ディスプレイ２８、ビデオマネージャ２６、入力２０５、ビデオアプリケーション２２０、データストア２４０、および他のアプリケーション２３０を含む。ビデオマネージャ２６は、図２に示されているようにビデオアプリケーション２２０の中に実装されてもよく、または図１に示されているようにアプリケーション２２０の外部に実装されてもよい。
【００１７】
ビデオマネージャ２６との通信を容易に実行するために、図２にコールバックコード２１０として示されている１つまたは複数のコールバックルーチンが実装されてよい。コールバックコード２１０の使用によって、ビデオマネージャ２６は、ビデオを符号化する際に使用される追加の情報をクエリすることができる。例えば、ビデオマネージャ２６は、メモリ２４０またはどこか他の場所などのバッファにビデオを要求することができる。さらに、ビデオアプリケーションの特徴に関する他の情報が提供されてもよい。
【００１８】
ディスプレイ２８は、ユーザに符号化されたビデオのビジュアル表示を提供するように構成される。入力２０５は、ビデオカメラ、キーボード、マウス、タッチスクリーン、および／または何らかの他の入力デバイスなどの１つまたは複数の入力ソースから入力を受信するように構成される。例えば、入力は、ＣＩＦ、ＶＧＡ、７２０Ｐ、１０８０ｉ、１０８０ｐ、および同種のものなどの１つまたは複数のビデオ解像度をサポートするビデオカメラからでもよい。メモリ２４０は、ビデオアプリケーション２２０が動作中に利用することができるデータを格納するように構成される。
【００１９】
ビデオマネージャ２６はまた、ビデオデータが他のアプリケーションにも提供されるように、および／または他のアプリケーションからも受信されるように、他のアプリケーション２３０に結合されてよい。例えば、ビデオマネージャ２６は、別のビデオアプリケーションおよび／またはネットワーキングサイトに結合されてもよい。図示されているように、ビデオマネージャ２６は、ビデオフレームの符号化プロセスにおいて使用される例示的ステップ２１２、２１４、２１６および２１８を例示するビデオレートコントローラ２２５を含む。符号化プロセス中に実行されるステップは、実行される符号化のタイプに応じて変わってよい。標準的符号化スキーム（例えば、Ｈ．２６＊およびＷＭＶ＊）と比べると、ヒストグラム段階２１６が、符号化プロセス中に含まれる。ヒストグラム段階２１６は、量子化器２１８によって使用される量子化要素を決定する際に使用される。準備義務を実行した後に、および量子化２１８の前のいつかに、量子化要素「ＱＰ」に関する推定値が決定されてもされなくてもよい。例えば、ＱＰは、前の符号化の履歴情報およびヒューリスティックを使用して決定されてよい。
【００２０】
次に、例示的符号化プロセスの部分が説明される。現在のフレーム２１２が受信され、変換プロセス２１４に渡される。フレームは、利用される符号化プロセスに応じて、８ｘ８、４ｘ４、および同種のものなどのピクセルのブロックに分割されてよい。一実施形態によれば、変換は、離散コサイン変換（「ＤＣＴ」）である。ＤＣＴは、ブロック（空間情報）を周波数情報であるＤＣＴ係数のブロックに変える周波数変換の一種である。ＤＣＴ動作自体は、損失なし、またはほとんど損失なしである。しかし、元のピクセル値に比べると、ほとんどの有効情報は低周波数係数に集中しているので、ＤＣＴ係数はより効率よく圧縮される。
【００２１】
結果としてのＤＣＴ変換は、段階２１６において結果としてのＡＣ係数をヒストグラムにマッピングするために修正される。係数が集められた後に、ビデオレートコントローラ２２５は、ヒストグラムを分析して、処理されている現在のフレームの推定されたフレームサイズを決定する。次いで、推定された符号化されたフレームサイズは、量子化プロセス中に使用されるべき量子化要素を更新／決定するために使用される（より詳細な説明に関しては図５を参照されたい）。
【００２２】
量子化器２１８は、決定された量子化要素を使用して、変換された係数を量子化する。一般に、量子化要素は各係数に適用され、これは、各係数を同一の値によって割りおよび丸めることに類似している。例えば、係数値が１３０であり、量子化要素が１０である場合は、量子化係数値は１３である。低周波数ＤＣＴ係数はより高い値を有する傾向があるので、量子化によって、正確さが失われることになるが、係数に関する情報が完全に失われることにはならない。他方では、高周波数ＤＣＴ係数はゼロまたはゼロに近い値を有する傾向があるので、高周波数係数の量子化によって、通常、ゼロ値の隣接領域が生じる。現在のフレームに基づいて量子化要素を調節することは、ユーザのためのより一貫したビデオエクスペリエンスを提供することに向けられる。
【００２３】
図３は、圧縮率対量子化ステップ値の例示的グラフ、および圧縮率対非ゼロ係数のパーセンテージの例示的グラフを示す。
【００２４】
グラフ３１０は、圧縮率対量子化ステップ値のグラフを示す。グラフ３１０は、１２の異なるビデオのプロットを含む。図から分かるように、圧縮率に対する量子化ステップ値をプロットすることによって、一貫したまたは一般的な傾向が生じることはない。さらに、いくつかのビデオ間の違いはかなり大きいことが分かる。
【００２５】
グラフ３５０は、圧縮率対非量子化変換値のヒストグラムに基づく非ゼロ係数のパーセンテージのグラフを示す。グラフ３５０は、グラフ３１０においてもプロットされている１２の異なるビデオのプロットを含む。グラフ３５０を参照すると、非ゼロ係数のパーセンテージと最終符号化サイズとの間に相関が見られる。さらに、関係は線形である。グラフ３５０のための傾向線はいくらかの許容誤差を有するが、許容誤差はグラフ３１０よりかなり小さい。ピクセルあたりのビット数値は、ある一定の量子化要素における非ゼロ係数の比率のアフィン関数として近似されてよい。
【００２６】
【数１】
2013532439.tif 000003
【００２７】
一実施形態によれば、定数ｋおよびｃはトレーニングデータおよびヒューリスティックを使用して近似されてよいが、これらの値は、ビデオフィード（ビデオ会議など）の全継続期間にわたって連続して調節される。これは、要素の効果が非ゼロ係数率（例えば、周波数領域予測などによってセーブする、ＤＣ平面の複雑さ）に直接関係がないことを確実にするのに役立つ。一実施形態によれば、例示的ビデオ会議におけるｋの値は約１．１８７５であることが分かっている。
【００２８】
図４は、量子化要素を調節する際に変換係数のヒストグラムを使用する例示的ブロックベースのフレーム内／フレーム間圧縮経路を示す。符号化器システムは、現在のフレームを含む一連のビデオフレームを受信し、出力として、圧縮されたビデオを生成する。
【００２９】
図示されている符号化器システムは、予測されたフレームおよびキーフレームを圧縮する。図４は、符号化器システムを通るキーフレームのための経路４１０および前方予測されたフレーム４７０のための経路を示す。符号化器システムの構成要素の多くは、キーフレームおよび予測されたフレームの両方の圧縮のために使用される。それらの構成要素によって実行される正確な動作は、圧縮される情報のタイプに応じて変わってよい。一般に、キーフレームは、予測されたフレームよりずっと多くビットレートに寄与する。低または中ビットレートアプリケーションでは、キーフレームは実行のボトルネックになる可能性がある。
【００３０】
Ｐフレームとも呼ばれる予測されたフレーム、双方向予測のＢフレーム、またはインターコーデッドフレームは、１つまたは複数の他のフレームからの予測（または差）の点から表される。予測残差は、予測されたものと元のフレームとの間の差である。それとは対照的に、Ｉフレーム、イントラコーデッドフレームとも呼ばれるキーフレームは、他のフレームに関係なく圧縮される。 
【００３１】
現在のフレーム４２０が前方予測フレームである場合は、動き推定器４２５は、フレームストアにバッファされていてよい再構築された前のフレームである基準フレームに関して現在のフレーム４２０のマクロブロックまたは他のピクセルのセットの動きを推定する。代替的実施形態では、基準フレームは後のフレームであるか、または現在のフレームは双方向に予測される。動き推定器４２５は、ピクセル、１／２ピクセル、１／４ピクセル、または他の増分によって動きを推定することができ、フレームバイフレームベースまたは他のベースで動き推定の解像度を切り換えることができる。動き推定の解像度は、水平および垂直に同じでも異なってもよい。
【００３２】
動き補償器４３０は、動き推定情報を再構築された前のフレームに適用して、動き補償された現在のフレームを形成する。一般に、動き推定器４２５および動き補償器４３５は、任意のタイプの動き推定／補償を適用するように構成されてよい。
【００３３】
周波数変換器４３５は、空間領域ビデオ情報を周波数領域（すなわち、スペクトル）データに変える。ブロックベースのビデオフレームでは、周波数変換器４３５は、ＤＣＴまたはＤＣＴの変形をピクセルデータまたは予測残差データのブロックに適用し、ＤＣＴ係数のブロックを生成する。代替として、変換器４３５は、フーリエ変換など別の従来の周波数変換を適用する、またはウェーブレット分析もしくはサブバンド分析を使用する。周波数変換器４３５は、８ｘ８、８ｘ４、４ｘ８または他のサイズの周波数変換（例えばＤＣＴ）をフレームに適用するように構成されてよい。
【００３４】
変換−係数ヒストグラムステップ４４０は、現在のビデオフレームの非量子化変換係数から生成されるヒストグラムに部分的に基づいて現在のビデオフレームのための量子化要素を調節するように構成される。変換係数のヒストグラムは、現在のビデオフレームの推定された符号化されたフレームサイズを決定する際に使用される。ヒストグラムは、符号化されたフレームサイズの所望のサイズに対してバランスされる。ヒストグラムにおけるカットオフ閾値は、量子化要素の様々な選択と相関し、それらの閾値以下の点の比率は、符号化されたフレームのサイズを推定するために使用される。量子化要素は、ヒストグラムステップ４４０によって決定された、推定された符号化されたフレームサイズに基づいて選択される。
【００３５】
量子化４４５は、ヒストグラム４４０によって決定された量子化要素を使用してスペクトルデータ係数のブロックを量子化する。
【００３６】
再構築された現在のフレームが次に続く動き推定／補償のために必要とされる場合は、基準フレーム再構築器４４７が、量子化されたスペクトルデータ係数に対して逆量子化を実行する。次いで、逆周波数変換器が周波数変換器４３５の動作の逆を実行し、（予測されたフレームのための）再構築された予測残差または再構築されたキーフレームを生成する。
【００３７】
現在のフレーム４２０がキーフレームである場合は、再構築されたキーフレームは、再構築された現在のフレーム（図示せず）とみなされる。現在のフレーム４２０が予測されたフレームである場合は、再構築された予測残差が動き補償された現在のフレームに加えられて、再構築された現在のフレームを形成する。フレームストアを使用して、再構築された現在のフレームをバッファし、次のフレームを予測する際に使用することができる。
【００３８】
エントロピー符号化器４５０は、量子化器４４５の出力ならびにある種のサイド情報（例えば、動作情報、空間外挿モード、量子化ステップサイズ）を圧縮する。典型的なエントロピー符号化法は、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、ＬＺ符号化、辞書型符号化、および上記の組合せを含む。エントロピー符号化器４５０は、通常、様々な種類の情報（例えば、ＤＣ係数、ＡＣ係数、様々な種類のサイド情報）のための様々な技法を使用し、特定の符号化法内の複数の符号表の中から選ぶことができる。エントロピー符号化器４５０は、圧縮されたビデオ情報をバッファ４５５に入れる。一般に、圧縮されたビデオ情報は、一定のまたは比較的一定のビットレートでバッファ４５５から使用され、そのビットレートで次に続くストリーミングのために格納される。
【００３９】
次に、図５を参照すると、非量子化変換係数からのヒストグラム情報を使用してビデオフレームを符号化するための例示的プロセスが示されている。
【００４０】
本明細書に提示されているルーチンの説明を読めば、様々な実施形態の論理動作は、（１）一連のコンピュータによって実行される行為またはコンピュータシステム上で実行されるプログラムモジュールとして、および／または（２）コンピュータシステムの中の相互接続された機械論理回路または回路モジュールとして実施されることが理解されるはずである。実施形態とは、本発明を実施するコンピューティングシステムの動作必要条件に応じて選択することである。したがって、例示されている、本明細書で説明されている実施形態を構成する論理動作は、動作、構成デバイス、行為、またはモジュールと、様々に呼ばれる。これらの動作、構成デバイス、行為、およびモジュールは、ソフトウェア、ファームウェア、専用デジタルロジック、およびそれらの任意の組合せで実行されてよい。
【００４１】
図５は、非量子化変換係数から生成されたヒストグラム情報を使用して量子化要素を更新するためのプロセス５００を示す。
【００４２】
開始動作の後に、プロセスは動作５１０に流れ、ここでビデオフレームが処理のために受信される。アーキテクチャおよびアルゴリズムに依存してもよい任意の準備義務を実行した後に、プロセスは動作５２０に流れる。
【００４３】
動作５２０において、量子化動作中に使用されるべき量子化要素「ＱＰ」の推定値が決定される。推定されたＱＰは、任意の選択されたＱＰでよく、様々な圧縮規格（すなわち、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４  ＡＳＰ、Ｈ．２６＊、ＶＣ−３、ＷＭＶ７、ＷＭＶ８、ＶＰ５、ＶＰ６、ＭＪＰＥＧ、および同種のもの）で使用されるＱＰ値（１つまたは複数）に対応してよい。例えば、ＱＰは、履歴情報およびヒューリスティックを使用して決定されてよい。ＱＰ要素は、変換された係数の大きさを低減してフレームのより圧縮された表現を提供するために使用される。
【００４４】
動作５３０に移ると、フレームは１つの領域から別の領域に変換される。一実施形態によれば、フレームに適用される変換は、ＤＣＴである。
【００４５】
動作５４０に続いて、結果としてのＤＣＴは、結果としてのＡＣ係数をヒストグラムにマッピングするために修正される。一実施形態によれば、ヒストグラムはビンに分割されてもされなくてもよい量子化レベルに対応する値の全範囲に広がる。係数が収集された後に、ヒストグラムは量子化要素に対する更新を決定するために分析される。
【００４６】
動作５５０に移ると、量子化要素対非ゼロ係数比が計算される。可能な量子化要素はそれぞれ、係数を２つのグループ、すなわち（１）量子化ステップの後にゼロに丸められる係数および（２）量子化ステップの後にゼロに丸められない係数に分割する。一実施形態によれば、表が生成され、そこで量子化要素がそれぞれ、対応する量子化ステップの後に、非ゼロ係数対ゼロ係数比にマッピングされる。
【００４７】
動作５６０に流れると、比率は、マルチパラメータ多項式を使用して、符号化されたピクセルあたりのビット数値にマッピングされる。フレームサイズ（すなわち画像寸法）が分かると、それらの値は予測された符号化されたフレームサイズにマッピングされる。
【００４８】
動作５７０に移ると、最初に推定された量子化要素は、動作５４０〜５６０中に得られた情報を反映するように更新される。一実施形態によれば、量子化要素は、符号化されたフレームサイズが前に符号化されたフレームサイズと同様であるように修正される。符号化されたフレームサイズを許容可能な値の範囲内にしておくことは、バッファを超えることなく、符号化されたビデオの品質レベルを維持するのに役立つ。現在のフレームに基づいて量子化要素を調節することは、履歴しか使用しないことに比べるとシーンの複雑さの変化により迅速に反応するのに役立ち、それによって、エンドユーザエクスペリエンスがより良くなり、ドロップフレームがより少なくなり、情報のＱＰレベル変動の量の低減は、最初の量子化要素推定を改善するために使用される。
【００４９】
動作５８０に移ると、現在のフレームは、更新された量子化要素を使用して量子化され、次いでエントロピー符号化される。
【００５０】
次いで、プロセスは終了動作に流れ、他の動作の処理に戻る。
【００５１】
上記の明細、実施例、およびデータは、本発明の構成の製造および使用の十分な説明を提供する。本発明の多くの実施形態は本発明の趣旨および範囲から逸脱することなく作製されることが可能であるので、本発明は添付の特許請求の範囲内にある。
【図１】
2013532439.tif 000004
【図２】
2013532439.tif 000005
【図４】
2013532439.tif 000006
【図５】
2013532439.tif 000007
【図３】
2013532439.tif 000008
【国際調査報告】
2013532439.tif 000009
2013532439.tif 000010