(57)【要約】【課題】パラメトリック方程式を使用した、ビデオ符号化のためのレート制御技法。【解決手段】本開示は、ビデオ符号化を改善することができるレート制御技法を説明している。説明されるレート制御技法は、フレーム当たりに符号化されるビット数と、ロー（ρ）と称される量子化後のビデオブロックの非ゼロの係数の数との間の関係を利用する。ρの値は、一般にビデオ符号化において使用されるビット数に比例している。本開示は、レート制御されたビデオ符号化を達成するためにρと量子化パラメータ（ＱＰ）との間の関係を利用している。より詳細には、本開示は、予測されるρの値をＱＰにマッピングするパラメトリック方程式を利用している。【選択図】      図４
2008522500.tif 000002
【特許請求の範囲】
【請求項１】
ビデオシーケンスを記憶するメモリと、
量子化後の非ゼロの係数の予測される数（予測されるρ）を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用して、前記ビデオシーケンスのレート制御されたビデオ符号化についての量子化パラメータ（ＱＰ）を選択するエンコーダと
を備える、ビデオ符号化デバイス。
【請求項２】
前記エンコーダは、前記ビデオシーケンスの異なるそれぞれのフレームについてのそれぞれのＱＰを選択し、前記異なるそれぞれのフレームについての前記それぞれのＱＰを使用して前記ビデオシーケンスのフレームレベルのレート制御されたビデオ符号化を実行する、請求項１に記載のビデオ符号化デバイス。
【請求項３】
前記エンコーダは、前記ビデオシーケンスのビデオフレームの異なるそれぞれのビデオブロックについてのそれぞれのＱＰを選択し、前記異なるそれぞれのビデオブロックについての前記それぞれのＱＰを使用して前記ビデオシーケンスのビデオブロックレベルのレート制御されたビデオ符号化を実行する、請求項１に記載のビデオ符号化デバイス。
【請求項４】
前記パラメトリック方程式は、１つまたは複数の調整可能なパラメータを含み、前記エンコーダは、１つまたは複数の選択されたＱＰからもたらされる、量子化後の非ゼロの係数の１つまたは複数の実際の数（実際のρ）を決定し、前記予測されるρが、前記実際のρによりよく対応するように前記パラメトリック方程式の前記調整可能なパラメータを調整する、請求項１に記載のビデオ符号化デバイス。
【請求項５】
前記パラメトリック方程式は、実質的に
ρ＝ｎｃ×ｅ−ｆ（ｑｐ）
に対応し、式中でｅは、オイラーの数を表し、ρは、前記予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、前記予測されるρの最大値を定義し、ｆ（ｑｐ）は、前記量子化パラメータ（ＱＰ）のパラメトリック関数である、請求項４に記載のビデオ符号化デバイス。
【請求項６】
ｆ（ｑｐ）は、多項式関数および指数関数のうちの一方を備える、請求項５に記載のビデオ符号化デバイス。
【請求項７】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ
に対応する一次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義する、請求項５に記載のビデオ符号化デバイス。
【請求項８】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ＋β
に対応する二次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義し、βは、二次の調整可能なパラメータを定義する、請求項５に記載のビデオ符号化デバイス。
【請求項９】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ２＋β×ｑｐ＋δ
に対応する二次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義し、βは、二次の調整可能なパラメータを定義し、δは、三次の調整可能なパラメータを定義する、請求項５に記載のビデオ符号化デバイス。
【請求項１０】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐβ
に対応する指数関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αおよびβは、前記調整可能なパラメータを定義する、請求項５に記載のビデオ符号化デバイス。
【請求項１１】
前記パラメトリック方程式は、実質的に
ρ＝ｎｃ×２−α×ｑｐ−β
に対応し、式中でρは、前記予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、前記予測されるρの最大値を定義し、αおよびβは、前記調整可能なパラメータを備える、請求項４に記載のビデオ符号化デバイス。
【請求項１２】
量子化後の非ゼロの係数の予測される数（予測されるρ）を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用して量子化パラメータ（ＱＰ）を選択することと、
前記選択されたＱＰを使用して１つまたは複数のビデオブロックを符号化することと
を備える、レート制御されたビデオ符号化の方法。
【請求項１３】
ビデオシーケンスのフレームレベルのレート制御されたビデオ符号化のための、前記ビデオシーケンスの異なるビデオフレームについて使用されるべき異なるＱＰを選択することをさらに備える、請求項１２に記載の方法。
【請求項１４】
ビデオシーケンスのビデオブロックレベルのレート制御されたビデオ符号化のための、ビデオフレームの異なるビデオブロックについて使用されるべき異なるＱＰを選択することをさらに備える、請求項１２に記載の方法。
【請求項１５】
前記パラメトリック方程式は、１つまたは複数の調整可能なパラメータを含み、前記方法は、
１つまたは複数の選択されたＱＰからもたらされる、量子化後の非ゼロの係数の１つまたは複数の実際の数（実際のρ）を決定することと、
前記予測されるρが、前記実際のρによりよく対応するように、前記パラメトリック方程式の前記調整可能なパラメータを調整することと
をさらに備える、請求項１２に記載の方法。
【請求項１６】
前記パラメトリック方程式は、実質的に
ρ＝ｎｃ×ｅ−ｆ（ｑｐ）
に対応し、式中でｅは、オイラーの数を表し、ρは、前記予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、前記予測されるρの最大値を定義し、ｆ（ｑｐ）は、前記量子化パラメータ（ＱＰ）のパラメトリック関数である、請求項１５に記載の方法。
【請求項１７】
ｆ（ｑｐ）は、多項式関数および指数関数のうちの一方を備える、請求項１６に記載の方法。
【請求項１８】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ
に対応する一次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義する、請求項１６に記載の方法。
【請求項１９】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ＋β
に対応する二次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義し、βは、二次の調整可能なパラメータを定義する、請求項１６に記載の方法。
【請求項２０】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ２＋β×ｑｐ＋δ
に対応する二次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義し、βは、二次の調整可能なパラメータを定義し、δは、三次の調整可能なパラメータを定義する、請求項１６に記載の方法。
【請求項２１】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐβ
に対応する指数関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αおよびβは、前記調整可能なパラメータを定義する、請求項１６に記載の方法。
【請求項２２】
前記パラメトリック方程式は、実質的に
ρ＝ｎｃ×２−α×ｑｐ−β
に対応し、式中でρは、前記予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、前記予測されるρの最大値を定義し、αおよびβは、前記調整可能なパラメータを備える、請求項１５に記載の方法。
【請求項２３】
実行されるときにプログラマブルなプロセッサに、
量子化後の非ゼロの係数の予測される数（予測されるρ）を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用して量子化パラメータ（ＱＰ）を選択し、
前記選択されたＱＰを使用して１つまたは複数のビデオブロックを符号化する
ようにさせるプログラムコードを備える、コンピュータ読取り可能媒体。
【請求項２４】
前記プログラマブルなプロセッサに、ビデオシーケンスのフレームレベルのレート制御されたビデオ符号化のための、前記ビデオシーケンスの異なるビデオフレームについて使用されるべき異なるＱＰを選択するようにさせるインストラクションをさらに含む、請求項２３に記載のコンピュータ読取り可能媒体。
【請求項２５】
前記プログラマブルなプロセッサに、ビデオシーケンスのビデオブロックレベルのレート制御されたビデオ符号化のための、ビデオフレームの異なるビデオブロックについて使用されるべき異なるＱＰを選択するようにさせるインストラクションをさらに含む、請求項２３に記載のコンピュータ読取り可能媒体。
【請求項２６】
前記パラメトリック方程式は、１つまたは複数の調整可能なパラメータを含み、前記媒体は、前記プログラマブルなプロセッサに
１つまたは複数の選択されたＱＰからもたらされる、量子化後の非ゼロの係数の１つまたは複数の実際の数（実際のρ）を決定し、
前記予測されるρが、前記実際のρによりよく対応するように、前記パラメトリック方程式の前記調整可能なパラメータを調整する
ようにさせるインストラクションをさらに含む、請求項２３に記載のコンピュータ読取り可能媒体。
【請求項２７】
前記パラメトリック方程式は、実質的に
ρ＝ｎｃ×ｅ−ｆ（ｑｐ）
に対応し、式中でｅは、オイラーの数を表し、ρは、前記予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、前記予測されるρの最大値を定義し、ｆ（ｑｐ）は、前記量子化パラメータ（ＱＰ）のパラメトリック関数である、請求項２６に記載のコンピュータ読取り可能媒体。
【請求項２８】
ｆ（ｑｐ）は、多項式関数および指数関数のうちの一方を備える、請求項２７に記載のコンピュータ読取り可能媒体。
【請求項２９】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ
に対応する一次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義する、請求項２７に記載のコンピュータ読取り可能媒体。
【請求項３０】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ＋β
に対応する二次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義し、βは、二次の調整可能なパラメータを定義する、請求項２７に記載のコンピュータ読取り可能媒体。
【請求項３１】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐ２＋β×ｑｐ＋δ
に対応する二次の多項式関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αは、一次の調整可能なパラメータを定義し、βは、二次の調整可能なパラメータを定義し、δは、三次の調整可能なパラメータを定義する、請求項２７に記載のコンピュータ読取り可能媒体。
【請求項３２】
ｆ（ｑｐ）は、実質的に
ｆ（ｑｐ）＝α×ｑｐβ
に対応する指数関数を備え、式中でｑｐは、前記量子化パラメータ（ＱＰ）に対応し、αおよびβは、前記調整可能なパラメータを定義する、請求項２７に記載のコンピュータ読取り可能媒体。
【請求項３３】
前記パラメトリック方程式は、実質的に
ρ＝ｎｃ×２−α×ｑｐ−β
に対応し、式中でρは、前記予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、前記予測されるρの最大値を定義し、αおよびβは、前記調整可能なパラメータを備える、請求項２６に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００４年１１月２９日に出願された米国仮特許出願第６０／６３１，８３５号の利益を主張するものである。
【０００２】
本開示は、デジタルビデオ処理に関し、より詳細には、ビデオシーケンス(video sequences)のレート制御された符号化(rate controlled encoding)に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、無線通信デバイス、携帯型個人情報端末(personal digital assistant)（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、セルラ電話または衛星無線電話、および同様のものを含む広範囲のデバイスに組み込まれることができる。デジタルビデオデバイスは、フルモーションビデオシーケンス(full motion video sequence)を作成し、修正し、伝送し、記憶し、記録し、再生する際に従来のアナログビデオシステムに優るかなりの改善を提供できる。
【０００４】
いくつかの異なるビデオ符号化規格が、デジタルビデオシーケンスを符号化するために確立されてきている。例えば、ムービングピクチャーエキスパートグループ(Moving Picture Experts Group)（ＭＰＥＧ）は、ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４を含む多くの規格を開発してきている。他の規格は、国際電気通信連合(International Telecommunication Union)（ＩＴＵ）Ｈ．２６３規格と、カリフォルニア州、クパチーノ市のアップルコンピュータ(Apple Computer)により開発されたクイックタイム（登録商標）(QuickTimeTM（登録商標）)技術と、ワシントン州、レッドモンド市のマイクロソフトコーポレーション(Microsoft Corporation)により開発されたビデオフォーウィンドウズ（登録商標）(Video for WindowsTM（登録商標）)と、インテルコーポレーション(Intel Corporation)により開発されたインディオ（登録商標）(IndeoTM（登録商標）)と、ワシントン州、シアトル市のリアルネットワークス社(RealNetworks, Inc.)からのリアルビデオ（登録商標）(RealVideoTM（登録商標）)と、スーパーマック社(SuperMac, Inc.)により開発されたシネパック（登録商標）(CinepakTM（登録商標）)を含んでいる。さらに、ＩＴＵ  Ｈ．２６４規格およびいくつかの独自開発規格(proprietary standard)を含めて、新しい規格が、出現し、発展し続けている。
【０００５】
多数のビデオ符号化規格は、圧縮様式でデータを符号化することによってビデオシーケンスの改善された伝送レートを可能にする。圧縮は、ビデオフレームの効果的伝送のために伝送される必要がある全体的データ量を、低減させることができる。例えば、ほとんどのビデオ符号化規格は、圧縮なしで達成され得るよりはむしろ、狭い帯域幅上でビデオおよび画像の伝送をスムーズに進めるように設計されたグラフィックスおよびビデオの圧縮技法を利用している。例えば、ＭＰＥＧ規格、ならびにＩＴＵ  Ｈ．２６３規格およびＩＴＵ  Ｈ．２６４規格は、フレーム間の圧縮を提供するために、一時的相関またはフレーム間相関と称される、連続するビデオフレーム間の類似性を利用するビデオ符号化技法をサポートする。そのようなフレーム間の圧縮は、一般的に動き推定および動き補償の符号化技法を介して達成される。さらに、一部のビデオ符号化技法は、ビデオフレームをさらに圧縮するために、空間的層間またはフレーム間相関と称される、フレーム内の類似性を利用することができる。
【０００６】
いくつかのレート制御技法が、ビデオ符号化のために開発されてきている。レート制御技法は、ビデオシーケンスのリアルタイム伝送をスムーズに進めるために特に重要であるが、非リアルタイムの符号化設定においても使用されることもできる。レート制御については、符号化技法は、フレームごとに符号化されるビット数を動的に調整する。特に、レート制御は、ビデオシーケンスが、ある与えられたレートで効果的に符号化され、それによって割り付けられた帯域幅上で伝送されることができることを保証するためにフレーム当たりに符号化されるビット数を制限できる。符号化技法が、ビデオシーケンスのシーン変化に応答しない場合、ビデオシーケンスのリアルタイム伝送についてのビットレートは、シーンが変化するときにかなり変化する可能性がある。したがって、実質的に一定のビットレートを定義するために、フレーム当たりのビット数は、符号化中に動的に調整される。
【０００７】
レート制御された符号化を達成する一方法は、ビデオ符号化プロセス中に使用される量子化パラメータ(quantization parameter)（ＱＰ）の調整を可能にすることである。ＱＰは、ビデオ符号化中に行われる量子化を定義し、毎秒符号化されるビット数に直接に影響を与える。ＱＰが増大するにつれて、より少ないデータが保持され、ビデオ符号化の品質は低下する可能性がある。ＱＰが減少するにつれて、より多くのデータが保持され、ビデオ符号化の品質は改善する。しかしながら、ＱＰがあまりにも小さすぎる場合には、毎秒符号化されるビット数は、割り付けられた帯域幅を超過し、限られた量の帯域幅内でフレームを転送する機能を損なう(compromise)かもしれない。動的様式でＱＰを選択することにより、ビデオフレームの伝送についてのビットレートは、実質的に一定にされることができる。ビットレートにおける低い変動(low variance)が、一部のビデオ用途では、非常に望ましい。
【発明の開示】
【０００８】
［概要］
本開示は、ビデオ符号化を改善することができるレート制御技法について説明する。特に、説明されるレート制御技法は、フレーム当たりの符号化されるビット数と、量子化後のビデオブロックの非ゼロの係数(non-zero coefficiency)の数との間の関係を利用する(exploit)。量子化後のフレームのビデオブロックの非ゼロの係数の数は、ロー（ρ）と称される。ρの値は、一般に、ビデオ符号化プロセスにおいて使用されるビット数に比例する。本開示は、レート制御されたビデオ符号化を達成するためにρと量子化パラメータ（ＱＰ）との間の関係を利用する(utilizes)。より詳細には、本開示は、予測されるρの値をＱＰにマッピングする(map)ためにパラメトリック方程式(parametric equation)を利用する。パラメトリック方程式は、
ρ＝ｎｃ×ｅ−ｆ（ｑｐ）
の形式を取ることができ、式中でｅは、オイラーの数(Euler's number)（定数２．７１８２８１８２８４５９０４５２３５３６０２８７４７１３５...）を表し、ρは、量子化後のフレームのビデオブロックの非ゼロの係数の予測された数を表し、ｎｃは、考慮中のユニットにおける係数の数(the number of coefficients in the unit under consideration)（例えば、フレームまたはビデオブロック中の係数の数）を表し、ｆ（ｑｐ）は、量子化パラメータのパラメトリック関数(parametric function)である。一例として、ｆ（ｑｐ）は、簡単な多項式関数または指数関数を備えることができる。一部の場合では、オイラーの数（ｅ）の代わりに、異なる定数、例えば、２の値あるいはもしかすると任意の他の定数（ｋ）などが使用されてもよい。
【０００９】
レート制御されたビデオ符号化中に、パラメトリック方程式は、ｆ（ｑｐ）を定義するプログラマブルな変数に基づいて初期化されることができる。次いで、ρの実際の値（実際のρ）が、ＱＰの選択された値について計算されることができる。次いで、ｆ（ｑｐ）を定義するプログラマブルな変数が、予測されるρとＱＰとの間の関係をよりよく近似するために調整されることができる。説明される技法は、ビデオブロックレベルレート制御（例えば、マクロブロックレベル）またはフレームレベルレート制御のために適用されることができる。好ましい一実施形態においては、ビデオブロックレベルレート制御が適用されるが、パラメトリック方程式中の変数はフレームレベルで調整される。
【００１０】
一実施形態において、本開示は、ビデオシーケンスを記憶するメモリと、量子化後の非ゼロの係数の予測される数（予測されるρ）を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用してビデオシーケンスのレート制御されたビデオ符号化についての量子化パラメータ（ＱＰ）を選択するエンコーダとを備える、ビデオ符号化デバイスを提供する。
【００１１】
別の実施形態においては、本開示は、量子化後の非ゼロの係数の予測される数（予測されるρ）を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用して量子化パラメータ（ＱＰ）を選択することと、その選択されたＱＰを使用して１つまたは複数のビデオブロックを符号化することとを備える、レート制御されたビデオ符号化の方法を提供する。
【００１２】
ここで説明されるこれらおよび他の技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せの形でデジタルビデオデバイス中において実施されることができる。ソフトウェアで実施される場合、そのソフトウェアは、デジタル信号処理プロセッサ（ＤＳＰ）などのプログラマブルなプロセッサ中において実行されることができる。その場合には、その技法を実行するソフトウェアは、コンピュータ読取り可能媒体に最初に記憶され、デジタルビデオデバイス中における効果的なレート制御された符号化のためにプログラマブルなプロセッサにロードされ、そのプロセッサ中で実行されることができる。
【００１３】
様々な実施形態の更なる詳細が、添付の図面および以下の説明中において述べられる。他の特徴、目的および利点は、その説明および図面から、また特許請求の範囲から明らかになるであろう。
【００１４】
［詳細な説明］
本開示は、ビデオ符号化を改善するために使用されることができるレート制御技法について説明する。本技法は、多種多様のビデオ符号化規格、例えば、ＭＰＥＧ−４規格、ＩＴＵ  Ｈ．２６３規格、ＩＴＵ  Ｈ．２６４規格、あるいは他の規格など、のうちの任意のものと共に使用されることができる。本技法は、フレーム当たり符号化されるビット数（符号化レート）と、量子化後のフレームのビデオブロックの非ゼロの係数の数との間の関係を利用する。量子化後のフレームのビデオブロックの非ゼロの係数の数は、ロー（ρ）と称される。ρの値は、一般にビデオ符号化において使用される量子化パラメータ（ＱＰ）に比例している。したがって、本開示は、レート制御されたビデオ符号化を達成するためにρとＱＰとの間の関係を利用する技法について説明している。
【００１５】
より詳細には、本開示中に説明される技法は、ρの予測された値を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を利用する。ρは、一般に符号化レートに比例しているので、望ましいρは、望ましい符号化レートを与えるべき望ましいＱＰを選択するために定義され使用されることができる。パラメトリック方程式は、初期化されることができるが、パラメトリック方程式によって定義される予測されるρが、選択されたＱＰから生じる実際のρをよりよく近似する(better approximates)ように、次いでビデオ符号化中に調整されることができる。このようにして、パラメトリック方程式は、ビデオ符号化中に動的に調整され、そのために選択されたＱＰは、実際のρに対してより正確にマッピングし、したがって、望ましい符号化レートをより正確に与えるようになる。
【００１６】
予測されるρを定義するために使用されるパラメトリック方程式は、
ρ＝ｎｃ×ｅ−ｆ（ｑｐ）
の形式を取ることができ、式中でｅは、オイラーの数（２．７１８２８１８２８４５９０４５２３５３６０２８７４７１３５...）と一般に称される数学的定数を表し、ρは、量子化後のフレームのビデオブロックの非ゼロの係数の予測された数を表し、ｎｃは、考慮中のユニットにおける係数の数（例えば、フレームまたはビデオブロック中の係数の数）を表し、ｆ（ｑｐ）は、量子化パラメータのパラメトリック関数である。一例として、ｆ（ｑｐ）は、簡単な多項式関数または指数関数を備えることができる。一部の場合においては、ｅの値は、異なる定数、例えば、２の値、あるいはより一般的には別の定数（ｋ）など、で置き換えられてもよい。いずれにしても、ｆ（ｑｐ）の有用な例は、次のもの、すなわち
ｆ（ｑｐ）＝α×ｑｐ、
ｆ（ｑｐ）＝α×ｑｐ＋β、
ｆ（ｑｐ）＝α×ｑｐ２＋β×ｑｐ＋δ、
あるいは指数関数、すなわち
ｆ（ｑｐ）＝α×ｑｐβ
を含んでいる。これらの例において、ｑｐは、（ここでもまたＱＰとも称される）量子化パラメータを表す。
【００１７】
変数α、β、およびδは、パラメトリック方程式中のρとｑｐとの間の関係をよりよく近似するために、レート制御技法の間に調整されることができるプログラマブルなパラメータを備える。特に、符号化プロセス中に、プログラマブルなパラメータは、予測されるρが異なるＱＰについて実際のρに実質的に対応するように、調整される。本開示の技法によって使用されることができるパラメトリック方程式のいくつかの例がここで説明されているが、他の多数のパラメトリック方程式もまた有用であり得る。
【００１８】
図１は、ソースデバイス１２が、通信リンク１５を経由してビデオデータの符号化シーケンスを受信デバイス１４に送信する一例のシステム１０を示すブロック図である。ソースデバイス１２および受信デバイス１４は、両方ともデジタルビデオデバイスである。特に、ソースデバイス１２は、ビデオ規格、例えば、ＭＰＥＧ−４規格、ＩＴＵ  Ｈ．２６３規格、ＩＴＵ  Ｈ．２６４規格、あるいはレート制御されたビデオ符号化を利用できる多種多様の他の規格のうちの任意の規格など、に準拠したビデオデータを符号化する。システム１０のデバイス１２、１４のうちの一方または両方は、以下でより詳細に説明されるように、ビデオ符号化プロセスを改善するためにレート制御技法を実施する。そのようなレート制御技法は、無線通信リンクなど、限られた帯域幅の通信リンク１５上でのビデオシーケンスのリアルタイム伝送のために特に有用である。
【００１９】
通信リンク１５は、無線リンク、物理伝送回線、光ファイバ、パケットベースのネットワーク、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、あるいは、インターネットのようなグローバルネットワークなど、公衆交換電話網(public switched telephone network)（ＰＳＴＮ）、あるいは、データを転送することができる他の任意の通信リンク、を備えることができる。したがって、通信リンク１５は、ソースデバイス１２から受信デバイス１４へとビデオデータを伝送するための適切な任意の通信媒体、またはもしかすると異なるネットワークおよびリンクの集まりを表す。しかしながら、述べられたように、通信リンク１５は、限られた帯域幅を有し、リンク１５上のビデオシーケンスのリアルタイム伝送のためにレート制御を非常に重要にしている。その限られた帯域幅は、通信リンク１５上の物理制約条件(physical constraints)に、あるいは、もしかすると通信リンク１５のプロバイダによって課されるサービス品質(quality-of-service)（ＱｏＳ）の制限に、起因するかもしれない。
【００２０】
ソースデバイス１２は、ビデオデータを符号化し送信することができる任意のデジタルビデオデバイスを備えることができる。ソースデバイス１２は、デジタルビデオシーケンスを記憶するビデオメモリ１６と、そのシーケンスを符号化するビデオエンコーダ１８と、通信リンク１５上でその符号化されたシーケンスをソースデバイス１４に対して送信するトランスミッタ２０とを含むことができる。ビデオエンコーダ１８は、例えば、様々なハードウェア、ソフトウェアまたはファームウェア、あるいはここで説明されるようにビデオ符号化技法を制御するプログラマブルなソフトウェアモジュールを実行する１つまたは複数のデジタル信号処理プロセッサ（ＤＳＰ）、を含むことができる。関連するメモリおよびロジック回路は、ビデオ符号化技法を制御する際にＤＳＰをサポートするために設けられることができる。
【００２１】
ソースデバイス１２はまた、ビデオシーケンスを取り込み(capture)、その取り込まれたシーケンスをメモリ１６に記憶するために、ビデオカメラのような、ビデオキャプチャデバイス(video capture device)２３を含むこともできる。特にビデオキャプチャデバイス２３は、電荷結合デバイス(charge coupled device)（ＣＣＤ）、電荷注入デバイス(charge injection device)、光ダイオードアレイ、相補型金属酸化膜半導体(complementary metal oxide semiconductor)（ＣＭＯＳ）デバイス、あるいは、ビデオ画像またはデジタルビデオシーケンスを取り込むことができる任意の他の光感受性デバイス(photosensitive device)を含むことができる。
【００２２】
さらなる例として、ビデオキャプチャデバイス２３は、例えばテレビジョン、ビデオカセットレコーダ、カムコーダ、または別のビデオデバイスからの、アナログビデオデータをデジタルビデオデータに変換するビデオコンバータを備えることができる。一部の実施形態においては、ソースデバイス１２は、通信リンク１５上でリアルタイムのビデオシーケンスを送信するように構成されることができる。その場合には、受信デバイス１４は、リアルタイムビデオシーケンスを受信し、そのビデオシーケンスをユーザに対して表示することができる。あるいは、ソースデバイス１２は、ビデオデータフィルとして、すなわちリアルタイムでなく、受信デバイス１４に送信されるビデオシーケンスを取り込み、符号化することもできる。したがって、ソースデバイス１２および受信デバイス１４は、ビデオ遠隔通信、ビデオクリッププレイバック(video clip playback)、ビデオメール、ビデオ会議などのアプリケーションを、例えばモバイル無線ネットワーク中でサポートすることができる。デバイス１２および１４は、図１に詳細には示されていない他の様々な要素を含むことができる。
【００２３】
受信デバイス１４は、ビデオデータを受信し復号化することができる任意のデジタルビデオデバイスの形態を取ることができる。例えば、受信デバイス１４は、トランスミッタ２０から、例えば中間のリンク、ルータ、他のネットワーク装置などを経由して、符号化されたデジタルビデオシーケンスを受信するレシーバ２２を含むことができる。受信デバイス１４はまた、シーケンスを複合するためのビデオデコーダ２４と、シーケンスをユーザに対して表示するディスプレイデバイス２６とを含むこともできる。しかしながら、一部の実施形態においては、受信デバイス１４は、一体化されたディスプレイデバイス１４を含んでいないこともある。そのような場合には、受信デバイス１４は、個別ディスプレイデバイス、例えばテレビジョンまたはモニタ、を駆動するために、受信されたビデオデータを復号化するレシーバとしての役割を果たすこともできる。
【００２４】
ソースデバイス１２および受信デバイス１４についてのデバイス例は、コンピュータネットワーク上に配置されるサーバと、ワークステーションまたは他のデスクトップコンピューティングデバイスと、ラップトップコンピュータや携帯型個人情報端末（ＰＤＡ）などのモバイルコンピューティングデバイスとを含んでいる。他の例は、デジタルテレビジョンブロードキャスティングサテライトと、例えばデジタルテレビジョン、デジタルカメラ、デジタルビデオカメラ、あるいは他のデジタル記録デバイスなどの、受信するデバイスと、例えばビデオ機能を有するモバイル電話などの、デジタルビデオ電話と、ビデオ機能を伴う直接双方向通信デバイスと、他の無線ビデオデバイスおよび同様なものとを含んでいる。
【００２５】
一部の場合においては、ソースデバイス１２と受信デバイス１４はおのおの、デジタルビデオデータを符号化し復号化するためのエンコーダ／デコーダ（ＣＯＤＥＣ）を含んでいる。特にソースデバイス１２と受信デバイス１４の両方は、トランスミッタおよびレシーバ、ならびにメモリおよびディスプレイを含むことができる。以下で概説される符号化技法の多くは、エンコーダを含むデジタルビデオデバイスとの関連で説明される。しかし、エンコーダは、ＣＯＤＥＣの一部分を形成することができることが理解される。その場合には、ＣＯＤＥＣは、ハードウェア、ソフトウェア、ファームウェア、ＤＳＰ、マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuit)（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ(field programmable gate array)（ＦＰＧＡ）、個別ハードウェアコンポーネント、またはそれらの様々な組合せの内部で実施されることができる。
【００２６】
ソースデバイス１２内のビデオエンコーダ１８は、ビデオデータを符号化するためにビデオフレームのシーケンス内のピクセルのブロックに作用する。例えば、ビデオエンコーダ１８は、送信されるべきビデオフレームが、（ビデオブロックと称される）ピクセルのブロックに分割される動き推定技法および動き補償技法を実行することができる。ビデオブロックは、例示の目的のために、任意のブロックサイズを備えることができ、与えられたビデオシーケンス内で変化することができる。一例として、ＩＴＵ  Ｈ．２６４規格は、１６×１６のビデオブロックと、１６×８のビデオブロックと、８×１６のビデオブロックと、８×８のビデオブロックと、８×４のビデオブロックと、４×８のビデオブロックと、４×４のビデオブロックをサポートする。ビデオ符号化におけるより小さなビデオブロックの使用は、符号化においてより良好な分解能をもたらすことができ、より高い詳細レベルを含むビデオフレームのロケーションについて特に使用されることができる。さらに、ビデオエンコーダ１８は、４×４のビデオブロックに作用し、必要に応じて４×４のビデオブロックからより大きなビデオブロックを再構築するように設計されることができる。ＭＰＥＧ−４などの規格では、ビデオブロックは、時として「マクロブロック」と称される１６×１６のビデオブロックを備えることができる。
【００２７】
ビデオブロック中の各ピクセルは、色度(chromaticity)および明度(luminosity)の値でカラー(color)や強度(intensity)など、ピクセルの視覚特性を定義する様々なｎビットの値、例えば８ビットの値によって表現されることができる。各ピクセルは、色度と明度の両方について１つまたは複数の８ビットの値を有することができる。しかしながら、本開示の技法は、ピクセルのフォーマットによっては制限されず、より簡単なより少ないビットのピクセルフォーマット、またはより複雑なより大きなビットのピクセルフォーマットを用いて拡張されてもよい。ピクセルはまた、他のカラー座標系(color coordinate systems)に従って定義されてもよい。さらに、ビデオブロックは、ピクセル値によって表現されるビデオブロックのＤＣＴに従って、離散コサイン変換(discrete cosine transform)（ＤＣＴ）係数によって、表現されてもよい。代わりに、ビデオブロックは、ピクセル値のウェーブレット変換(wavelet transform)に従って、非ゼロのウェーブレット値(non-zero wavelet values)によって表現されてもよい。要するに、ここで説明されるレート制御技法は、多種多様の符号化規格と、ピクセルフォーマットと、ビデオブロックのサイズおよび形状に適用されることができる。選択された量子化パラメータ（ＱＰ）は、与えられたビデオフレームの符号化において生成されることになる非ゼロの係数(non-zero coefficients)の数を定義し制限する。
【００２８】
レート制御技法は、ビデオ符号化プロセス中に実行されることができ、そのような符号化中に適合されあるいは調整されることができる。ビデオフレームを符号化するために、ビデオフレーム中のビデオブロックごとに、ソースデバイス１２のビデオエンコーダ１８は、予測ビデオブロックと称される同様なビデオブロックを識別するためにすでに伝送された１つまたは複数の先行するビデオフレーム（または後続のビデオフレーム）についてのメモリ１６に記憶されるビデオブロックを検索することによって動き推定(motion estimation)を実行することができる。一部の場合には、予測ビデオブロックは、先行するビデオフレームまたは後続のビデオフレームからの「最良の予測(best prediction)」を備えることができるが、本開示は、その点だけに限定されない。ビデオエンコーダ１８は、符号化されるべき現在のビデオブロックと最良の予測との間の差を示す差ブロックを作成するために動き補償(motion compensation)を実行する。動き補償は、通常、動きベクトルを使用して最良の予測ビデオブロックをフェッチし(fetching)、次いで差ブロックを生成するために入力ブロックから最良の予測を差し引く(subtracting)という動作を指す。本レート制御技法は、ビデオ符号化プロセス中における、符号化されたビデオブロックを量子化するために使用される量子化パラメータ（ＱＰ）を定義する。ここで説明されるように、本開示は、ビデオブロックレベルまたはフレームレベルにおけるレート制御された符号化のために使用されるＱＰを定義するパラメトリック方程式の使用を考える。
【００２９】
動き補償プロセスが差ブロックを作成した後に、一連の追加符号化ステップが、一般的に、差ブロックを符号化するために実行される。これらの追加符号化ステップは、使用されている符号化規格に依存することもある。例えばＭＰＥＧ−４に準拠したエンコーダでは、追加符号化ステップは、スカラー量子化(scalar quantization)によって続けられ、ラスタからジグザグへの並べ替え(raster-to-zigzag reordering)によって続けられ、ランレングス符号化(run-length encoding)によって続けられ、ハフマン符号化(Huffman encoding)によって続けられる８×８の離散コサイン変換を含むことができる。しかし一部の場合には、ビデオブロックのウェーブレット変換または他の変換が、ＤＣＴ変換の代わりに使用されてもよい。この値は、与えられたブロックまたはフレームを符号化するために必要とされるビット数に影響を及ぼすので、量子化後の非ゼロの係数の数は、最大の関心事である。
【００３０】
ひとたび符号化されると、符号化された差ブロックは、符号化のために使用された以前のフレーム（または後続のフレーム）からビデオブロックを識別する動きベクトルと一緒に送信されることができる。このようにして、独立なピクチャとして各フレームを符号化する代わりに、ビデオエンコーダ１８は、隣接するフレームの間の差を符号化する。そのような技法は、ビデオシーケンスの各フレームを正確に表現するために必要とされるデータ量をかなり低減させることができる。
【００３１】
動きベクトルは、符号化されるビデオブロックの左上の隅に対するピクセルロケーションを定義することができるが、動きベクトルについての他のフォーマットが使用されることもできる。いずれにしても、動きベクトルを使用してビデオブロックを符号化することにより、ビデオデータのストリームの送信のために必要とされる帯域幅は、かなり低減させられることができる。
【００３２】
一部の場合には、ビデオエンコーダ１８は、フレーム間符号化に加えて、フレーム内符号化をサポートすることができる。フレーム内符号化は、ビデオフレームをさらに圧縮するために、空間相関またはフレーム内相関と称される、フレーム内の類似性を利用している。フレーム内圧縮は一般的に、離散コサイン変換（ＤＣＴ）符号化など、静止画像を圧縮するためのテクスチャ符号化に基づいている。フレーム内圧縮は、しばしばフレーム間圧縮と組み合わせて使用される。
【００３３】
受信デバイス１４のレシーバ２２は、動きベクトルと、符号化されているビデオブロックと動き推定において使用される最良の予測との間の符号化された差を示す符号化された差ブロックの形式の符号化されたビデオデータを受信することができる。しかしながら、一部の場合には、動きベクトルを送信するのでなく、動きベクトルと以前に計算された動きベクトルプレディクタ(motion vector predictor)（ＭＶＰ）との間の差が送信される。いずれにしても、デコーダ２４は、ディスプレイデバイス２６を経由してユーザに表示するためのビデオシーケンスを生成するためにビデオ復号化を実行することができる。受信デバイス１４のデコーダ２４は、エンコーダ／デコーダ（ＣＯＤＥＣ）として実施されることもできる。その場合には、ソースデバイス１２と受信デバイス１４の両方が、デジタルビデオシーケンスを符号化し、送信し、受信し、復号化することが可能であり得る。
【００３４】
本開示に従って、ビデオエンコーダ１８は、レート制御された符号化を遂行するために動的様式でビデオ符号化についての量子化パラメータ（ＱＰ）を選択する。ＱＰは、ビデオブロックが符号化されるときに結果として生じることになるビット数を定義する。したがって、選択されたＱＰは、毎秒符号化されるビット数に直接に影響を及ぼす。ＱＰが増大するにつれて、より少ないデータが保持され、ビデオ符号化の品質は、低下することもある。ＱＰが減少するにつれて、より多くのデータが保持され、ビデオ符号化の品質は改善する。しかしながら、ＱＰがあまりにも小さすぎる場合には、毎秒符号化されるビット数は、割り付けられた帯域幅を超過し、限られた量の帯域幅内でフレームを転送する機能を損なうかもしれない。動的様式でＱＰを選択することにより、ビデオフレームの伝送のためのビットレートは、実質的に一定にされることができる。
【００３５】
より詳細には、ビデオエンコーダ１８は、ロー（ρ）の値をビデオ符号化において使用される量子化パラメータ（ＱＰ）にマッピングするために、パラメトリック方程式に基づいてＱＰを選択する。この場合にも、量（ρ）は、量子化後のビデオブロックの非ゼロの係数の数を表し、一般にビデオ符号化において使用されるビット数に比例する。したがって、ビデオエンコーダ１８は、レート制御されたビデオ符号化を達成するために、ρとＱＰとの間の関係を利用する。ρは、ビットレートにほぼ線形に関係づけられるので、ρ−ＱＰのパラメトリック方程式は、有効なレート制御されたビデオ符号化をもたらすＱＰを選択するために、使用されることができる。
【００３６】
パラメトリック方程式は、初期化されることができるが、パラメトリック方程式によって定義される予測されるρが、選択されたＱＰから生じる実際のρをよりよく近似するように、次いでビデオ符号化中に調整されることができる。パラメトリック方程式に対するそのような調整は、各ビデオブロックと共に、または各フレームと共に行われる(occur)ことができる。好ましい一実施においては、ビデオブロックレベルレート制御が適用されるが、パラメトリック方程式中の変数は、フレームレベルで調整される。
【００３７】
図２は、ソースデバイス１２に対応し得るデバイス３０、の例示のブロック図である。一般に、デバイス３０は、ここで説明されるレート制御された符号化技法を実行することができるデジタルビデオデバイスを備える。デバイス３０は、ビデオ符号化規格、例えば、ＭＰＥＧ−４、ＩＴＵ  Ｈ．２６３、ＩＴＵ  Ｈ．２６４、あるいは、ここで説明されるレート制御技法から恩恵を受けることができる別のビデオ符号化規格など、に準拠することができる。
【００３８】
図２に示されるように、デバイス３０は、ビデオシーケンスを符号化するビデオ符号化装置３２と、符号化の前および後にそれらのビデオシーケンスを記憶するビデオメモリ３４とを含む。デバイス３０はまた、符号化されたシーケンスを別のデバイスに送信するトランスミッタ３６と、もしかするとビデオシーケンスを取り込み、それらの取り込まれたシーケンスをメモリ３４に記憶する、ビデオカメラなどのビデオキャプチャデバイス３８を含むこともできる。デバイス３０の様々な要素は、通信バス３５を経由して通信可能に(communicatively)結合されることができる。様々な他の要素、例えば、フレーム内エンコーダ要素、様々なフィルタ、あるいは他の要素などが、デバイス３０中に含められることもできるが、簡単にするために具体的には示されていない。
【００３９】
ビデオメモリ３４は、一般的に、比較的大容量のメモリ空間を備える。例えばビデオメモリ３４は、ダイナミックランダムアクセスメモリ(dynamic random access memory)（ＤＲＡＭ）、またはフラッシュメモリ(FLASH memory)を備えることができる。他の例においては、ビデオメモリ３４は、不揮発性メモリまたは他の任意のデータストレージデバイス(data storage device)を備えることができる。
【００４０】
ビデオ符号化装置３２は、ハードウェア、ソフトウェア、ファームウェア、および／またはプロセッサもしくはデジタル信号処理プロセッサ（ＤＳＰ）を含む、モバイル無線電話用チップセットを備えることができる。ビデオ符号化装置３２は、一般にローカルメモリ３７に結合されたビデオエンコーダ２８を含んでいる。ローカルメモリ３７は、ビデオメモリ３４に対してより小さな、より高速のメモリ空間を備えることができる。一例として、ローカルメモリ３７は、シンクロナスランダムアクセスメモリ(synchronous random access memory)（ＳＲＡＭ）を備えることができる。ローカルメモリ３７は、
プロセッサ集約型符号化プロセス中(during the processor-intensive encoding process)にデータへの非常に高速なアクセスを提供するために、ビデオ符号化装置３２の他のコンポーネントと共に集積化された「オンチップ(on-chip)」メモリを備えることができる。与えられたビデオフレームの符号化中に、符号化されるべき現在のビデオブロックは、ビデオメモリ３４からローカルメモリ３７へとロードされてもよい。最良の予測を見出す際に使用される検索空間(search space)もまた、ビデオメモリ３４からローカルメモリ３７にロードされることもできる。しかしながら、異なるメモリは、ここで説明される技法の実行には、必要ではない。換言すれば、ビデオエンコーダ２８は、ビデオブロックおよび検索空間を取得するためにオンチップまたはオフチップのメモリにアクセスすることができるであろう。
【００４１】
検索空間は、１つまたは複数の先行するビデオフレーム（または後続のフレーム）のピクセルのサブセットを備えることができる。選択されたサブセットは、符号化されるべき現在のビデオブロックに密接にマッチングする(closely matches)最良の予測の識別のために、可能性のあるロケーションとして、あらかじめ識別されることができる。さらに、検索空間は、異なる検索ステージが使用される場合に、動き推定のコース上で変化してもよい。その場合には、検索空間は、検索空間のサイズの観点で次第により小さくなることができ、これらのその後の検索は、以前の検索よりも高い分解能で実施される。
【００４２】
ローカルメモリ３７には、符号化されるべき現在のビデオブロックと、フレーム間符号化において使用される１つまたは複数のビデオフレームの一部または全部を備える検索空間とがロードされる。動き推定器４０(motion estimator)は、最良の予測を識別するために、現在のビデオブロックを検索空間中の様々なビデオブロックと比較する。しかしながら、一部の場合においては、符号化についての十分なマッチ(adequate match)は、あらゆる可能性のある候補を詳細にチェックせずに、より迅速に識別されることができる。その場合には、十分なマッチは、効果的なビデオ符号化について十分である(adequate)にもかかわらず、実際には「最良の」予測ではないこともある。一般に、フレーズ「予測ビデオブロック(prediction video block)」は、十分なマッチ(an adequate match)を指し、それは最良の予測(the best prediction)であり得る。
【００４３】
動き推定器４０は、符号化されるべき現在のビデオブロックと、メモリ３７の検索空間中の候補ビデオブロックとの間の比較を実行する。一部の場合においては、候補ビデオブロックは、分数補間(fractional interpolation)のために生成される非整数(non-integer)のピクセル値を含むことができる。一例として、動き推定器４０は、候補ビデオブロックについての差の値を定義するために差の絶対値和(sum of absolute difference)（ＳＡＤ）技法、差の二乗和(sum of squared difference)（ＳＳＤ）技法、または他の比較技法を実行することができる。より低い差の値は一般に、候補ビデオブロックがより良好なマッチ(better match)であり、したがってより大きな差の値を与える他の候補ビデオブロックよりも、動き推定符号化において使用するためのよりよい候補(better candidate)であることを示す。
【００４４】
最終的に、動き推定器は、「最良の予測」を識別する、これは、符号化されるべきビデオブロックに最も密接にマッチングする候補ビデオブロックである。しかしながら、多くの場合において、十分なマッチが、最良の予測の前に見出されることがあり得て、そして、これらの場合には、十分なマッチが符号化のために使用されることができる、ということが理解される。この場合にも、予測ビデオブロックは、十分なマッチを指しており、これは、最良の予測であり得る。
【００４５】
ひとたび最良の予測が、ビデオブロックについて、動き推定器４０によって識別されると、動き補償器(motion compensator)４２は、現在のビデオブロックと最良の予測との間の差を示す差ブロックを作成する。差ブロックエンコーダ４４は、差ブロックを圧縮するために差ブロックをさらに符号化することができる、そして、符号化された差ブロックは、検索空間からのどの候補ビデオブロックが符号化のために使用されたかを識別するために、動きベクトル（または動きベクトルと動きベクトルプレディクタとの間の差）に沿って、別のデバイスへの伝送のために転送されることができる。サポートされている特定の規格に応じて特定のコンポーネントが変るだろうから、簡単にするために、動き補償後に符号化を実行するために使用される更なるコンポーネントは、差ブロックエンコーダ４４として一般化される。換言すれば、差ブロックエンコーダ４４は、ここで説明されるように生成される差ブロック上で、１つまたは複数の従来の符号化技法を実行することができる。
【００４６】
符号化プロセス中に、レート制御は、与えられたシーケンスを符号化するために使用されるビット数が、トランスミッタ３６に関連する通信チャネルの帯域幅制限を超過しないことを保証することができる。そのようなレート制御を実行するために、ビデオエンコーダ２８は、レート制御ユニット４６を含んでいる。レート制御ユニット４６は、フレーム当たりに符号化されるビット数と、量子化後のビデオブロックの非ゼロの係数の数との間の関係を利用する。量子化後のビデオブロックの非ゼロの係数の数を表すρの値は、一般にフレーム当たりに符号化されるビット数（およびしたがって一定のフレームレートで毎秒符号化されるビット数）に比例している。したがって、レート制御ユニット４６は、レート制御されたビデオ符号化を達成するためにρとＱＰとの間の関係を利用する。
【００４７】
より詳細には、レート制御ユニット４６は、ρの値を異なるＱＰにマッピングするパラメトリック方程式を適用する。次いでＱＰは、ビデオ符号化についての望ましいレートに対応するρの値について選択されることができる。符号化プロセス中に、パラメトリック方程式は、ρとＱＰとの間の実際の関係をよりよく反映するようにアップデートされることができる。換言すれば、パラメトリック方程式は、初期化されるが、次いでビデオ符号化中に調整されることができ、そのためにパラメトリック方程式によって定義される予測されるρは、選択されたＱＰから結果として生じる実際のρをよりよく近似するようになる。パラメトリック方程式に対するそのような調整は、各ビデオブロックと共に、または各フレームと共に行うことができる。好ましい一実施形態においては、ビデオブロックレベルレート制御が適用されるが、パラメトリック方程式中の変数は、フレームレベルで調整される。
【００４８】
予測されるρを定義する、レート制御ユニット４６によって使用されるパラメトリック方程式は、
ρ＝ｎｃ×ｅ−ｆ（ｑｐ）
の形式を取ることができ、式中でｅは、オイラーの数(Euler's number)（定数２．７１８２８１８２８４５９０４５２３５３６０２８７４７１３５）と一般に称される数学的定数を表し、ρは、量子化後のフレームのビデオブロックの非ゼロの係数の予測された数を表し、ｎｃは、考慮中のユニットにおける係数の数（例えば、フレームまたはビデオブロック中の係数の数）を表し、ｆ（ｑｐ）は、量子化パラメータのパラメトリック関数である。一例として、ｆ（ｑｐ）は、簡単な多項式関数または指数関数を備えることができる。一部の場合においては、ｅの値は、２の値など、異なる定数で置き換えられてもよい。
【００４９】
この場合にも、ｆ（ｑｐ）の有用な例は、次のもの、すなわち
ｆ（ｑｐ）＝α×ｑｐ、
ｆ（ｑｐ）＝α×ｑｐ＋β、
ｆ（ｑｐ）＝α×ｑｐ２＋β×ｑｐ＋δ、
あるいは指数関数、すなわち
ｆ（ｑｐ）＝α×ｑｐβ
を含んでいる。これらの例において、ｑｐは、（ここでもまたＱＰと称される）量子化パラメータを表す。変数α、β、およびδは、ρとｑｐとの間の関係をよりよく近似する、レート制御技法中に調整されることができるプログラマブルなパラメータを備える。特に、符号化プロセス中に、プログラマブルなパラメータは、予測されるρが、異なるＱＰについて実際のρに実質的に対応するように調整される。
【００５０】
別の例においては、レート制御ユニット４６によって使用されるパラメトリック方程式は、実質的に、
ρ＝ｎｃ×２−α×ｑｐ−β
に対応することができ、式中でρは、予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数を表し、予測されるρの最大値を定義し、αおよびβは、調整可能なパラメータを備える。このパラメトリック方程式は、ＭＰＥＧ−４およびＨ．２６３のレート制御については特に有用とすることができる。この場合には、式ρ＝ｎｃ×ｅ−ｆ（ｑｐ）中のオイラーの数（ｅ）は、曲線の精度に何らの厳しいペナルティを招くこともなく、実施をより効率的にするために定数２で置き換えられる。
【００５１】
また、ＭＰＥＧ−４およびＨ．２６３のレート制御では、ｆ（ｑｐ）＝α×ｑｐ＋βが、それがその曲線の精度とその方程式を実施する複雑さの間の折衷案(compromise)を表すので、ｆ（ｑｐ）についての他の候補以上に使用されることができる。指数方程式、二次多項式、一次多項式などのパラメトリック方程式ファミリの他のメンバの精度は、様々なシミュレーションにおいて比較された。指数曲線は、最も正確であることが見出されてきているが、指数曲線はまた、他の式に比べて最高次数の複雑さを有することも見出されてきている。精度の観点における一次のパラメトリック方程式ｆ（ｑｐ）＝α×ｑｐ＋βと二次の方程式との間の差は、無視することができる。しかし、二次の方程式は、３つの未知数を有し、実施するためにより複雑であるが、一次の方程式は、２つの未知数だけを有し、複雑さも少ない。
【００５２】
一部の実施形態においては、ρ−ＱＰの表がビデオエンコーダによってすでに生成されている場合、ρ−ＱＰの表は、本開示の技法によって利用されることができる。例えば、レート制御ユニット４８が、２つの未知数、αおよびβについて解く必要がある場合、（そのような表がすでに使用可能である場合には）レート制御ユニットは、ρ−ＱＰの表を２つのポイントにおいてサンプルすることができる。第１のポイントは、ＱＰを備えてもよく、第２のポイントは、ほぼ２×ＱＰであってもよい。レート制御技法のこの変形についての例外は、例えばＭＰＥＧ−４およびＨ．２６３についてはＱＰ＞２５である場合であることもあり、この場合には、１つのポイントだけがサンプルされ、βはゼロに設定されることができる。レート制御ユニット４８は、第２のサンプルにおけるテーブル値または両方のサンプルにおけるテーブル値がゼロであるときなど他の例外的な場合を取り扱うこともできる。２つの未知数、αおよびβのアップデートは、フレームごとに一度実行されることができるが、アップデートは、様々な実施形態においては、より頻度が多く、または少なく行われることもできる。
【００５３】
しかしながら、ρ−ＱＰの表は、ここで説明されるレート制御技法を実施するために必要とはされない。例えば、従来ρ−ＱＰの表を使用したレガシーエンコーダにおいて使用可能な場合、そのρ−ＱＰの表は、パラメトリック方程式の調整可能なパラメータの選択を加速するために依然として利用されることができる。しかし、調整可能な諸パラメータは、そのような表なしで簡単に決定されることができる。
【００５４】
実際、従来のレート制御技法とここで説明されるパラメトリックレート制御技法との間の主要な１つの違いは、ｑｐの最良値についてρ−ＱＰのルックアップテーブル(lookup table)（ＬＵＴ）を生成し検索する代わりに、量子化パラメータｑｐの値は、
ｑｐ＝（−ｌｏｇ２（ρ／ｎｃ）−β）／α
のような、パラメトリック方程式を使用して計算されることができることであり、式中でρは、予測されるρを定義し、ｎｃは、考慮中のユニットにおける係数の数（例えば、フレーム中の係数の数）を表し、予測されるρの最大値を定義し、αおよびβは、調整可能なパラメータを備える。この場合にも、符号化プロセス中に、プログラマブルなパラメータは、予測されるρが、異なるＱＰについての実際のρに実質的に対応するように調整される。ρ−ＱＰの表がすでに使用可能な場合、これは、プログラマブルなパラメータを調整するために使用されることができるが、ρ−ＱＰの表が使用可能でない場合には、プログラマブルなパラメータは、個々のＱＰからもたらされる実際のρを定義する個々のサンプルポイントに基づいて選択されることができる。
【００５５】
ｆ（ｑｐ）について指数関数を使用することの背後にある直感(intuition)は、一般化されたガウス分布の２分の一に対するρ−ＱＰの曲線の類似性に基づいており、一方、一次および二次の多項式関数を使用することの背後にある直感は、それぞれラプラス分布またはガウス分布に類似した曲線を使用することに対応する。
【００５６】
図３は、ρの予測される値を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用した、フレームレベルレート制御(frame-level rate control)についての技法を示す流れ図である。図３に示されるように、ビデオエンコーダ２８のレート制御ユニット４６は、パラメトリック方程式を使用してフレームについてのＱＰを決定する（３０１）。最初に、パラメトリック方程式は、パラメトリック方程式がρの予測される値をＱＰにマッピングするように、初期化された値を用いてプログラムされることができる。次いでレート制御ユニット４６は、ビデオブロックを符号化する（３０２）。フレームが、符号化されるべきもっと多くのビデオブロックを含む場合（３０３のｎｏブランチ）、次いでレート制御ユニット４６は、そのフレームについての量子化パラメータを使用して他のビデオブロックを符号化する（３０２）。
【００５７】
ひとたびフレームの終端に到達されると（３０３のｙｅｓブランチ）、次のフレームが、符号化するためにローカルメモリ３７にロードされる（３０４）。このポイントにおいて、レート制御ユニット４６は、パラメトリック方程式をアップデートする（３０５）。特に、レート制御ユニット４６は、以前のフレームのビデオブロックについての選択されたＱＰからもたらされたρの実際の値を決定することができ、これは、パラメトリック方程式によって選択されたＱＰにマッピングされた予測されるρとはわずかに異なることもある。このようにして、後続のフレームは、より正確なパラメトリック方程式を使用して符号化されることになる。
【００５８】
パラメトリック方程式をアップデートした（３０５）後に、プロセスは、後続の任意のフレームについて反復する（３０６のｙｅｓブランチ）。この場合には、ＱＰは、アップデートされたパラメトリック方程式を使用して次のフレームについて決定される（３０１）。このプロセスは、シーケンスのフレームレベルのレート制御されたビデオ符号化を遂行するためにビデオシーケンスのすべてのフレームについて反復することができる。また必要に応じて、そのプロセスは、初期化された方程式を使用してビデオブロックを実際に符号化することなく、パラメトリック方程式をより正確に定義するために、例えばプロセスが開始するときに、与えられたビデオフレームについて複数の(multiple)パスを行うこともできる。しかしながら、ほとんどの場合には、パラメトリック方程式は、数フレームの後に速やかに収束することになり、そのためにフレーム当たりの複数の符号化パスは必要とされないようになる。
【００５９】
図４は、ρの予測される値を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用した、ビデオブロックレベルレート制御(video block-level rate control)についての技法を示す流れ図である。図４に示されるように、ビデオエンコーダ２８のレート制御ユニット４６は、パラメトリック方程式を使用してビデオブロックについてのＱＰを決定する（４０１）。最初に、パラメトリック方程式は、パラメトリック方程式がρの予測される値をＱＰにマッピングするように、初期化された値を用いてプログラムされることができる。次いでレート制御ユニット４６は、ビデオブロックを符号化し（４０２）、パラメトリック方程式をアップデートする（４０３）。特に、レート制御ユニット４６は、フレームの１つまたは複数の以前のビデオブロックについての選択されたＱＰからもたらされたρの実際の値を決定することができ、これは、パラメトリック方程式によって選択されたＱＰにマッピングされた予測されるρとはわずかに異なることもある。このようにして、後続のビデオブロックは、より正確なパラメトリック方程式を使用して符号化されることになる。
【００６０】
フレームが、符号化されるべきもっと多くのビデオブロックを含む場合（４０３のｎｏブランチ）、次いでレート制御ユニット４６は、アップデートされたパラメトリック方程式によって決定される量子化パラメータを使用して他のビデオブロックを符号化する（４０２）。このプロセスは、シーケンスのビデオブロックレベルのレート制御されたビデオ符号化を遂行するためにフレームのすべてのビデオブロックについて反復することができる。図３のプロセスのように、図４のプロセスは、この場合には、与えられたビデオブロックについて、例えばプロセスが開始するときに、初期化された方程式を使用してビデオブロックを実際に符号化することなく、パラメトリック方程式をより正確に定義するために複数の符号化パスを行うように調整されることができるであろう。しかしながら、ほとんどの場合には、パラメトリック方程式は、数ビデオブロックの後に速やかに収束することになり、そのためにビデオブロック当たりの複数のパスは必要とされないようになる。
【００６１】
ひとたびフレームの終端に到達されると（４０４のｙｅｓブランチ）、次のフレームが、符号化のために、ローカルメモリ３７にロードされる（４０５）。このポイントにおいて、レート制御ユニット４６は、後続の任意のフレームについてそのプロセスを反復する（４０６のｙｅｓブランチ）。次のフレームでは、ＱＰは、最後にアップデートされたパラメトリック方程式を使用して決定される（４０１）。
【００６２】
図５は、フレームレベルで調整されるパラメトリック方程式を使用した、ビデオブロックレベルレート制御についての技法を示す流れ図である。例および説明のために、図５は、パラメトリック方程式ρ＝ｎｃ×ｅ−ｆ（ｑｐ）を用いてプログラムされるレート制御ユニット４６との関連で説明されることになり、式中でｅは、オイラーの数を表し、ρは、量子化後のフレームのビデオブロックの非ゼロの係数の予測される数を表し、ｎｃは、ビデオブロック中の係数の数を表し、ｆ（ｑｐ）は、ｆ（ｑｐ）＝α×ｑｐ＋βによって与えられる量子化パラメータのパラメトリック関数であり、式中でｑｐは、量子化パラメータであり、αおよびβは、パラメトリック方程式の調整可能なパラメータを定義する。もちろん、多くの他のパラメトリック方程式、例えば、上記で定義される方程式のうちの１つ、あるいは、異なるパラメトリック方程式など、が代わりに使用されることが出来るだろう。
【００６３】
図５に示されるように、レート制御が初期化される（５０１）。この初期化は、αおよびβの最初の値を定義し、デバイス３０の製造およびテスト中にシミュレーションによって決定されるαおよびβの平均値に基づいたものとすることができる。レート制御された符号化プロセスを開始するために、フレームが、ビデオメモリ３４からローカルメモリ３７にロードされる（５０２）。レート制御ユニットは、パラメトリック方程式を使用してビデオブロックの符号化についてのＱＰを決定する（５０３）。次いでレート制御ユニット４６は、決定されたＱＰを使用してビデオブロックを符号化する（５０４）。フレームが、符号化されるべきもっと多くのビデオブロックを含む場合（５０５のｎｏブランチ）、次いでレート制御ユニット４６は、パラメトリック方程式を使用してビデオブロックごとにそれぞれのＱＰを決定し（５０３）、それぞれのＱＰを使用してビデオブロックを符号化する。この意味で、ＱＰは、ビデオブロックレベルで決定されるが、ＱＰを定義するパラメトリック方程式は、与えられたフレームについては変化しない。
【００６４】
ひとたびフレームの終端に到達されると（５０５のｙｅｓブランチ）、レート制御ユニットは、パラメトリック方程式の調整可能なパラメータ（αおよびβ）をアップデートする（５０６）。特に、レート制御ユニット４６は、以前のフレームのビデオブロックについての選択されたＱＰからもたらされたρの実際の値を決定することができ、これは、パラメトリック方程式により、選択されたＱＰにマッピングされた予測されるρとはわずかに異なることもある。レート制御ユニット４６は、ρの実際の値がパラメトリック方程式によってＱＰの値にもっと正確にマッピングされるようにαおよびβの新しい値を選択することができる。このようにして、後続のフレームは、ρとＱＰとの間の実際の関係をよりよく反映するもっと正確なパラメトリック方程式を使用して符号化されることになる。
【００６５】
パラメトリック方程式のパラメータをアップデートした（５０６）後に、プロセスは、ビデオシーケンスの後続の任意のフレームについて反復する（５０７のｙｅｓブランチ）。この場合には、次のフレームは、ローカルメモリ３７へとロードされ（５０２）、レート制御ユニット４６は、パラメトリック方程式を使用してビデオブロックごとにそれぞれのＱＰを決定し（５０３）、それぞれのＱＰを使用してビデオブロックを符号化する（５０４）。
【００６６】
このプロセスは、シーケンスのビデオブロックレベルのレート制御されたビデオ符号化を遂行するためにフレームごとにパラメトリック方程式を調整してビデオシーケンスのすべてのフレームについて反復することができる。また、プロセスは、例えばプロセスが開始するときに初期化された方程式を使用してビデオブロックを実際に符号化することなく、シーケンスのうちの最初の数フレームについてのパラメトリック方程式をよりよく定義するために、与えられたビデオフレームについて複数のパスを行うこともできる。これは、追加の計算を犠牲にして、レート制御の精度を改善することができる。しかし、ほとんどの場合には、少数のフレームが符号化された後に、パラメトリック方程式は、ρ−ＱＰの関係の正確な表現へと速やかに収束することになる。したがって、フレーム当たりの複数のパスについての必要性は、一般的に回避されることができる。
【００６７】
様々な実施形態が説明されてきた。特に、量子化パラメータＱＰと非ゼロの係数の数ρとの間のマッピングを表現するパラメトリック方程式を使用した、様々なレート制御技法が提案されている。この関係を正確に表わすことができる、いくつかの有用なパラメトリック方程式の非網羅的なリストが、確認された(have been identified)。それらの技法は、符号化されたビデオブロックを定義する量子化されたＤＣＴ係数の数を制限するように動作することができるが、ウェーブレット変換された係数など、他のタイプの係数が、代わりに使用されてもよい。さらに、ここで説明される技法は、Ｐ−フレーム（予想されるフレーム）に関してのみ適用されてもよく、あるいはもしかするとＩ−フレーム（フレーム内）とＰ−フレームの両方に関して適用されてもよい。例えば、Ｈ．２６３、ＭＰＥＧ−４、Ｈ．２６４など、多数の符号化規格は、そのようなＩ−フレームおよびＰ−フレームを使用する。そのような場合には、ここで説明される技法は、Ｐ−フレームに関してのみ、あるいはもしかするとＩ−フレームとＰ−フレームの両方に関して適用されることができる。
【００６８】
ここで説明されるパラメトリックレート制御は、フレームレベルレート制御、またはビデオブロックレベルレート制御を提供する柔軟性を有する。好ましい一実施形態においては、ビデオブロックレベルレート制御は、パラメトリック方程式に対するフレームレベルのアップデートと共に使用される。さらに、ビデオブロックレベルレート制御技法は、２つ（またはそれより多くの）ＱＰオフセットが設定されることができるという意味で、コンフィギュレーション可能(configurable)であり得て、これが、許容されることができる変動量(amount of variance)を次々に決定する。一般的に、オフセットのより高い値は、より低いビデオ品質で、より低いレベルの変動を保証する。シミュレーションは、ここで説明されるレート制御技法を用いて、ほとんど同じレベルのビデオ品質を保持しながら、変動がかなり低減されることができることを示している。さらに、ビデオブロックごとにｑｐを計算するパラメトリック方程式を使用することは、ρ−ＱＰの表を生成することおよび／または検索することよりも、もっと正確でかつ計算的に効率のよいものであり得る。
【００６９】
ここで説明される技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施されることができる。ソフトウェアで実施される場合、その技法は、ビデオシーケンスを符号化するデバイス中で実行されるときに、上述の１つまたは複数の方法を実行するプログラムコードを備えるコンピュータ読取り可能媒体、を対象とすることができる。その場合には、コンピュータ読取り可能媒体は、シンクロナスダイナミックランダムアクセスメモリ(synchronous dynamic random access memory)（ＳＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ(read-only memory)（ＲＯＭ）、不揮発性ランダムアクセスメモリ(non-volatile random access memory)（ＮＶＲＡＭ）、電気的消去可能プログラマブルリードオンリメモリ(electrically erasable programmable read-only memory)（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、および同様なもの、を備えることができる。
【００７０】
プログラムコードは、コンピュータ読取り可能インストラクション(computer readable instructions)の形態でメモリに記憶されることができる。その場合には、ＤＳＰなどのプロセッサは、ここで説明される１つまたは複数の技法を実行するためにメモリに記憶されるインストラクションを実行することができる。一部の場合には、それらの技法は、符号化プロセスを加速する様々なハードウェアコンポーネントを呼び出すＤＳＰによって実行されることができる。他の場合には、ビデオエンコーダは、マイクロプロセッサ、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他の何らかのハードウェア−ソフトウェアの組合せとして実施されることができる。これらおよび他の実施形態は、添付の特許請求の範囲の範囲内にある。
【図面の簡単な説明】
【００７１】
【図１】ソースデジタルビデオデバイスが、ビデオデータの符号化されたシーケンスを受信デジタルビデオデバイスに送信する例示のシステムを示すブロック図である。
【図２】本開示の一実施形態によるデジタルビデオデバイスの例示のブロック図である。
【図３】ρの予測された値を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用した、フレームレベルレート制御についての技法を示す流れ図である。
【図４】ρの予測された値を量子化パラメータ（ＱＰ）にマッピングするパラメトリック方程式を使用した、ビデオブロックレベルレート制御についての技法を示す流れ図である。
【図５】フレームレベルで調整されるパラメトリック方程式を使用した、ビデオブロックレベルレート制御についての技法を示す流れ図である。
【図１】
2008522500.tif 000003
【図２】
2008522500.tif 000004
【図３】
2008522500.tif 000005
【図４】
2008522500.tif 000006
【図５】
2008522500.tif 000007
【国際調査報告】
2008522500.tif 000008
2008522500.tif 000009