"ビデオレート制御のための方法であって:ビデオフレームの第一のアクティブラインを受信するステップと;前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定するステップと;前記複数の量子化パラメータを符号化システムに提供し、ここでの複数の量子化パラメータは、前記第一のアクティブラインのビデオレートが最大ビデオレートを超えないように、前記第一のアクティブラインの少なくとも一部を符号化するために使用されるステップと;前記ビデオフレームの第二のアクティブラインを受信するステップと;を含んでなり、前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定するステップは、前記ビデオフレームの第二のアクティブラインの水平ブランキング部分の間に少なくとも部分的に行われる方法。請求項1に記載の方法であって、前記第一のアクティブラインを受信することは前記第一のアクティブラインの、ローパス部分を受信すること、および前記第一のアクティブラインのハイパス部分を受信することを含む方法。請求項2に記載の方法であって、前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定することは、前記第一のアクティブラインのローパス部分のための少なくとも一つのローパス量子化パラメータを決定すること、および前記第一のアクティブラインのハイパス部分のための少なくとも一つのハイパス量子化パラメータを決定することを含む方法。請求項3に記載の方法であって、更に、前記第一のアクティブラインの前記ハイパス部分のためのハイパス最大符号化ラインサイズを受信すること、および前記第一のアクティブラインの前記ローパス部分のためのローパス最大符号化ラインサイズを受信することを含んでなり、前記第一のアクティブラインのローパス部分のための前記ローパス量子化パラメータを決定することは、前記第一のアクティブラインのローパス部分のローパス符号化長さが、前記ローパス最大符号化ラインサイズよりも小さいかどうかを比較することを含み、前記第一のアクティブラインのハイパス部分のための前記ハイパス量子化パラメータを決定することは、前記第一のアクティブラインのハイパス部分のハイパス符号化長さが、前記ハイパス最大化符号化ラインサイズよりも小さいかどうかを比較することを含む方法。請求項1に記載の方法であって:前記複数の最適量子化パラメータを決定することは、前記第一のアクティブラインのためのビットレート要件を受信することと;初期スループット推定値を受信することと;初期圧縮比を決定することと;前記初期圧縮比よりも大きい第二の圧縮比を決定することと;過剰圧縮を検出することを含む方法。請求項5に記載の方法であって:更に、圧縮されたビデオパケットサイズを受信することを含んでなり;前記過剰圧縮を検出することは、前記受信した圧縮されたビデオパケットサイズをモニターすることを含む方法。請求項5に記載の方法であって:更に、圧縮されたラインサイズを受信することを含んでなり;前記過剰圧縮を検出することは、前記圧縮されたラインサイズをモニターすることを含む方法。請求項5に記載の方法であって:過剰圧縮を検出することは、実際の符号化されたローパスラインサイズを決定することと;実際の符号化されたハイパスラインサイズを決定することと;前記実際の符号化されたローパスラインサイズを、先に符号化されたローパスラインサイズと比較することと;前記実際の符号化されたハイパスラインサイズを、先に符号化されたハイパスラインサイズと比較することを含む方法。請求項8に記載の方法であって、前記先に符号化されたローパスラインサイズは最大符号化ローパスラインサイズを含み、また前記先に符号化されたハイパスラインサイズは最大符号化ハイパスラインサイズを含む方法。請求項2に記載の方法であって:更に、前記第一のアクティブラインのローパス部分に関連したローパス画素ドメイン歪みを予測することと;前記第一のアクティブラインのハイパス部分に関連したハイパス画素ドメイン歪みを予測することを含んでなる方法。請求項2に記載の方法であって:更に、ハイパス変換係数を提供することと;ローパス変換係数を提供することを含んでなる方法。請求項2に記載の方法であって:更に、少なくとも一つの量子化レベルについてのデータを予想することにより、前記第一のアクティブラインのローパス部分のローパス符号化長さを決定することを含んでなる方法。請求項12に記載の方法であって、前記少なくとも一つの量子化レベルについてのデータを予想することは、前記第一のアクティブラインのローパス部分の近隣に基づいて予想することを含む方法。ラインに基づくビデオ圧縮のための方法であって:ビデオフレームのラインに基づいて、ビデオフォーマットを選択することと;前記ビデオフレームのラインに基づいて、ウエーブレット変換を選択することと;前記選択されたウエーブレット変換に基づいて前記ビデオフレームのラインのローパス部分およびハイパス部分を提供することと;前記ビデオフレームのラインにおける前記ローパス部分および前記ハイパス部分のための量子化パラメータを受信することと;前記量子化パラメータを、前記ビデオフレームのラインにおける前記ローパス部分および前記ハイパス部分に適用することを含んでなる方法。請求項14に記載の方法であって:更に、前記ローパス部分を、指数分布に適合させるように調節することと;前記発生されたローパス部分およびハイパス部分を符号化することを含んでなる方法。請求項14に記載の方法であって、前記ビデオフォーマットはRGBフォーマットおよびYUVフォーマットのうちの一つを含む方法。請求項16に記載の方法であって、前記YUVフォーマットは、4:4:4フォーマット、4:2:2フォーマット、および4:1:1フォーマットのうちの一つを含む方法。請求項14に記載の方法であって、前記ウエーブレット変換を選択することは、ダウベシーズ7,9ウエーブレット変換およびラガル5,3ウエーブレット変換のうちの一つを選択することを含む方法。請求項14に記載の方法であって、前記ウエーブレット変換を選択することは、予め定められた画像圧縮標準を使用する前記ウエーブレット変換を含む方法。請求項19に記載の方法であって、前記ウエーブレット変換を選択することは、前記予め定められた画像圧縮標準を使用するウエーブレット変換よりも大きな圧縮比を提供するために、丸め方法を使用するウエーブレット変換を選択することを含む方法。請求項15に記載の方法であって、前記符号化は、前記ビデオフォーマットのラインに基づいて、算術的符号化およびゴロム符号化の間で選択的にスイッチする符号化器を使用することを含む方法。請求項21に記載の方法であって、前記符号化は、算術を伴わずに実施されるゴロム符号化器を使用することを含む方法。請求項14に記載の方法であって:更に、前記ハイパス部分における垂直エッジを予想することと;前記ハイパス部分において前記垂直エッジを抑制することにより、残りのハイパス部分を得ることを含んでなり、前記符号化は、前記残りのハイパス部分を符号化することを含む方法。請求項23に記載の方法であって、前記ハイパス部分における垂直エッジを予想することは、垂直エッジ検出器を用いて前記ローパス部分を処理することを含み、前記ハイパス部分において前記垂直エッジを抑制することは、前記予想された垂直ヘッジを前記ハイパス部分から差し引くことを含んでなる方法。請求項14に記載の方法であって:更に、少なくとも一つのハイパスウエーブレット係数を発生させることと;少なくとも一つのローパスウエーブレット残差を発生させることを含んでなる方法。請求項25に記載の方法であって:更に、少なくとも一つのハイパスウエーブレット係数を符号化することと;少なくとも一つのローパスウエーブレット残差を符号化することを含んでなる方法。請求項26に記載の方法であって、前記少なくとも一つのハイパスウエーブレット係数を符号化することが、ゴロム符号化を含む方法。請求項26に記載の方法であって、前記少なくとも一つのローパスウエーブレット残差を符号化することが、ゴロム符号化を含む方法。画像/ビデオ符号化器は、一般に二つのコンポーネント、即ち、圧縮エンジンおよびレート制御装置からなっている。レート制御装置は、符号化器が埋め込まれるシステムからの入力を受信し、次いで、出力ビットストリームが該システムによって送信され得るように、圧縮エンジンの動作を制御するパラメータを発生する。本発明の一実施形態は、複雑さの低い、低コストのレート制御のための方法を提供する。基礎をなすシステムから次のフィードバックを受信する、画像/ビデオ符号化器を考えよう:a初期スループット推定値bパケットサイズcパケット再送信フィードバックd今度のビデオ動作不能時間スロットの通知、e送信バッファの満杯度。本発明のもう一つの実施形態は、上記で述べたフィードバックを使用して、レート制御を介してパケット毎に動作点を適合的に変更することにより、復号された画像/ビデオ品質を改善するための低コストのファームウエアで実施可能な方法を提供する。もう一つの変形例において、画像/ビデオ符号化器は、基礎をなすシステムから次のフィードバックを受信する:a初期スループット推定値b圧縮されたラインサイズcパケット再送信フィードバックd今度のビデオ動作不能時間スロットの通知、e送信バッファの満杯度。この別の実施形態は、上記で述べたフィードバックを使用して、レート制御を介してライン毎に動作点を適合的に変更することによって、復号された画像/ビデオ品質を改善するための、低コストのハードウエアで実施可能なファームウエアではなく方法を提供する。上記で述べたように、画像/ビデオ符号化器は、一般には二つのコンポーネント、即ち圧縮エンジンおよびレート制御器からなっている。レート制御器は、符号化器が埋め込まれたシステムからの入力を受信し、次いで、出力ビットストリームが該システムによって送信され得るように、圧縮機の動作を制御するパラメータを発生する。前記符号化器に対応する復号器は、前記ビットストリームから生の画像/ビデオデータが再構成されるように、圧縮エンジンの動作を反転させる圧縮解除エンジンからなっている。本発明の一実施形態は、複雑さの低い、低コストのラインに基づく圧縮エンジンのための方法を提供する。この圧縮エンジンにおける動作を反転させることによって、対応する復号器が得られる。本発明の更なる実施形態は丸め方法を含んでおり、これは損失無しおよび損失有りの、より高い圧縮比率をもたらす。ウエーブレット変換は、屡々、画像/ビデオデータを相関解除して、損失無しおよび損失有りの圧縮比率を増大させるために用いられる。実施コストを低減するために、丸め動作を使用してウエーブレット変換の整数バージョンを実施する。多重解像度変換に続いてエントロピー符号化を使用する画像/ビデオ符号化器では、元データにおけるエッジに対応したハイパス係数に長い符号が割当てられる。本発明のもう一つの実施形態は、圧縮率を増大させるための方法を提供する。本発明の更なる実施形態は、改善された歪み推定精度のための方法を扱う。ウエーブレット変換に基づく圧縮エンジンを備えた画像/ビデオ符号化器において、レート制御は、ウエーブレット/ドメイン歪みから画素/ドメイン歪みを推定する。不運なことに、丸めノイズのため、複雑さの低い整数ウエーブレット変換が使用されるときには、画素/ドメイン歪み推定の精度が低下する。圧縮エンジンが、強い垂直相関および/または水平相関を含む局在化された領域を備えた、量子化された二次元アレイを符号化する画像/ビデオ符号化器において、各アレイ要素について最大相関の方向に予測残差が発生されれば、より高い圧縮率を得ることができる。本発明の一実施形態は、量子化されたデータから予測残差を発生させるための、経験則による発見的方法を提供する。経験則は最大相関の方向に予測を駆り立てる結果、各アレイ要素において該方向を特定する追加のデータを符号化器に供給することは不要である。この符号化器のためのレート制御は、全ての量子化レベルで符号化されたアレイのためのビット使用量を予測する。本発明の更なる実施形態は、種々の特定された量子化レベルでエントロピー符号化された残差の正確なビット消費を予測するための、複雑さの低い方法を提供する。画像/ビデオ符号化器において、圧縮エンジンは、ビットストリームを形成するためのエントロピー符号化器を含んでいる。ゴロム符号は、効率的で複雑度が低く、且つ低コストのエントロピー符号化器を実施するために使用することができる。本発明の一実施形態は、画像/ビデオ符号化器用ゴロム符号を発生させるための、コストが低減された方法を提供する。この方法の逆は、対応する画像/ビデオ復号器のためのエントロピー復号プロセスを特定する。更に、算術的符号化器の基本的な要素は、ゴロム符号化特性を改善するために使用することができる。図1は、本発明の一実施形態を実施し得る典型的な無線ビデオシステムのブロック図である。ビデオデータストリームは、ビデオソース100からビデオシンク110例えばコンピュータモニター、テレビジョン等へと無線で転送される。無線ビデオ入力装置101および出力装置111は、無線接続を提供する。図2は、本発明の一実施形態に従うビデオフレームのフォーマットを示している。各ビデオフレームは、アクティブラインおよびブランクラインで構成される。各アクティブラインは、アクティブ画素およびブランク画素で構成される。ビデオフレームのアクティブビデオセクションの間のデータが表示され、該データは、赤、緑および青RGBフォーマットまたはYUV4:2:2フォーマットの三つの色成分からなっている。YUV色モデルにおいて、Yは輝度信号を表し、またUおよびVは色差信号を表す。図3は、本発明の一実施形態に従うビデオフレームにおいて、各ラインのRGB成分についてのデータフローを概説したブロック図を示している。RGB-to-YUVブロック302は、各画素についての赤、緑および青の成分を、4:4:4フォーマットで対応するYUV成分にマッピングする色空間変換を使用する。バイパス制御301が表明されれば、RGB-to-YUVブロック302はバイパスされる。SelectYUV制御303は、YUVフォーマット変換ブロック304がバイパスされるかどうか、またはローパスフィルターおよびダウンサンプラーがYUV4:4:4フォーマットをYUV4:2:2もしくはYUV4:1:1フォーマットに変換するかどうかを決定する。YUVフォーマット変換ブロック304によって生じたYUV成分は、別々のウエーブレット変換306Y、307Uおよび308Vを通される。SelectTfm制御305は、ダウベシーズDaubechies7,9もしくはラガルLeGall5,3ウエーブレット変換の2レベルの整数バージョンが、各色成分のためのローパスサブバンドおよびハイバスサブバンドを発生させるために使用されるかどうかを決定する。与えられたラインについて2レベルのウエーブレット変換が使用されるので、ローパス高優先度ウエーブレット係数の数は、該ラインにおける画素の25を構成し、またハイパス低優先度のウエーブレット係数は、該ラインにおける画素の75を構成する。Y成分について、ローパスサブバンドはLpYで標識され、ハイパスサブバンドはHpYで標識される。同様に、U成分およびV成分についての対応するサブバンドは、それぞれ、LpU、HpU、LpV、HpVで標識される。与えられたラインについてのLpY、HpY、LpU、HpU、LpV、HpVはRAM309に保存され、これらサブバンドについての最適量子化設定を決定するために、与えられたラインについて全サブバンドへのビデオレート制御アクセスを提供する。ウエーブレット変換が完了したら、ビデオレート制御は、それぞれのサブバンドLpY、HpY、LpU、HpU、LpV、HpVのための最適量子化レベルqLY、qHY、qLU、qHU、qLV、qHV以下で更に詳細に説明するを決定する。サブバンド係数および量子化レベルのそれぞれの対例えばLpY/qLY、HpY/qHY等が量子化器310~315へと供給され、これは次のプロセスによって量子化された係数xqを計算する。xq=x>>q、もしx<0およびxのqLSBsが全部は0でないおよびq<>であればxq=xq1上記の擬似符号は、前記量子化器がxのq最下位ビットを右シフトにより除去して、xqを得ることを示している。より短いエントロピー符号を得るために、マイナス数がゼロに向かって丸められるように、xqのマイナス値が増分される。エントロピー符号化器は、殆どのサンプルがゼロの回りにクラスターされる指数分布したデータのために最適な短い符号を出力するので、量子化後に、該データは指数分布に適合するように条件付けされる。量子化されたハイパスサブバンドHpY’、HpU’、HpV’は、既に指数的に分布されており、条件付けを必要としない。本明細書の一部として援用するNoiseRemovalviaBayesianWaveletCoringEPSimoncelliEHAdelsonProceedingsof3rdIEEEInternationalConferenceonImageProcessingVol1pp379382September1996を参照されたい。量子化されたローパスサブバンドLpY’、LpU’、およびLpV’について、本発明の一実施形態は予測プロセス316、317、318を適用して、それぞれ指数的に分布した予測残差ResY、ResU、ResVを生じる。この予測プロセスは、以前の画素ラインのローパス区画を利用する。以下の表1は、量子化されたLPサブバンドの行nおよび行n-1を示す。表1以下の入力について、出力は、行nの各量子化された項目xqのためのLP残差dxからなっている:1量子化されたLPサブバンドの行nおよび行n-12Qn,Qn-1:行nおよび行n-1についての量子化レベル注:行1は量子化されたLPサブバンドの最初の行なので、行0およびQ0は定義されず、従って以下では使用されない。3予測モード:ライン間予測またはライン内予測注:行nにおける全項目に対して同じ予測モードが適用される。ライン間予測は、行n-1を使用して行nを予測することを含んでいる。明らかに、この予測モードはn=1については無効である。この予測プロセスにおいて、行n-1の項目は、それらが行nの項目と同じ量子化レベルを有するようにスケール変更される。以下の四つの場合を考えてみる:場合1:n>1,m>1,Qn-1>=Qnaq=aq<<Qn-1-Qn,bq=bq<<Qn-1-Qn,場合2:n>1,m>1,Qn-1<Qnaq=aq>>Qn-Qn-1,bq=bq>>Qn-Qn-1,場合3:n>1,m=1,Qn-1>=Qnbq=bq<<Qn-1-Qn,場合4:n>1,m=1,Qn-1<Qnbq=bq>>Qn-Qn-1行n-1の項目を適切にスケール変更した後、以下の予測プロセスを使用して、Xqに対応する残差dxを発生させる。場合1および2について:もし|aq-cq|<=|aq-bq|であれば、dx=xq-bq或いはdx=xq-cq場合3および4について:dx=xq-bq。ライン間予測について、行n-1は行nを予測するために使用される。この予測モードはn=1の場合には必須であり、また行n-1とは独立に行nを符号化することを望むときには、n>1の場合にも選択されてよい。ライン間予測とは異なり、ライン内予測はスケール変更を必要としない。xqに対応する残差dxは、次の二つの場合に従って誘導される:場合5:m>1:dx=xq-cq,場合6:m=1:dx=xq。当該予測プロセスに続いて、残差ResY,ResU,ResVおよびハイパスサブバンドHpY’,HpU’,HpV’は、今度は指数的に分布される。これは、本発明の実施形態が、エントロピー符号化器319~324において、極めて単純で且つ効果的な指数-ゴロム符号を使用することを可能にする。指数-ゴロム符号については、その内容を本明細書の一部として援用するACompressionMethodforClusteredBitVectorsJTeuholaInformationProcessingLettersVol7pp308311October1978を参照のこと。先行技術のシステムは、指数-ゴロム符号を使用してウエーブレット係数ランレングスを符号化する。GeneralizedGolombCodesandAdaptiveCodingofWaveletTransformedImageSubbandsAKielyandMKlimeshIPNPR42154JetPropulsionLaboratoryCaliforniaInstituteofTechnologyAprilJune2003pp114August152003を参照のこと。対照的に、本発明の実施形態はこれら符号を使用して、ハイパスサブバンドおよびローパスサブバンドの予測残差を符号化する。単純な予測残差で指数-ゴロム符号化のためのデータを調整することは、ビデオレート制御以下で説明するのための効率的で且つ正確なレート推定技術を得る。図4は、ハイパスサブバンドまたはローパスサブバンドの予測残差から得られた整数Xに関連した、指数-ゴロム符号Gを定義する方法を示すフローチャートである。最初のステップは、整数Xの符号を決定することであるステップ401。X=0であれば、ゴロム符号は1に等しく設定されるG=1ステップ402。プラスXの場合、BはXの2値表現であり、1ビットだけ左シフトされるステップ401。マイナスXの場合、その手順は、Xの絶対値がBを生じさせ、Bの最下位ビットが設定されることを除いて同様であるステップ404。Lは、Bに先立つ先導するゼロの数であり、floorlog2Bによって定義されるステップ405。Lは、Bのビット長よりも1少ない。従って、プラスまたはマイナスの整数Xについて、ゴロム符号Gは、L個の先導するゼロと、それに続くBからなっており、Bは2値で表現され、最上位ビットは1に設定されるステップ406。指数-ゴロム符号化プロセスを例示するために、以下のリストは、X∈[-10,10]についてのゴロム符号Gを符号長と共に示している。X=-10,G=000010101,長さ=9X=-9,G=000010011,長さ=9X=-8,G=000010001,長さ=9X=-7,G=0001111,長さ=7X=-6,G=0001101,長さ=7X=-5,G=0001011,長さ=7X=-4,G=0001001,長さ=7X=-3,G=00111,長さ=5X=-2,G=00101,長さ=5X=-1,G=011,長さ=3X=0,G=1,長さ=1X=1,G=010,長さ=3X=2,G=00100,長さ=5X=3,G=00110,長さ=5X=4,G=0001000,長さ=7X=5,G=0001010,長さ=7X=6,G=0001100,長さ=7X=7,G=0001110,長さ=7X=8,G=000010000,長さ=9X=9,G=000010010,長さ=9X=10,G=000010100,長さ=9。本発明の一実施形態におけるゴロム符号実施は、如何なる計算も必要としないから、極めて効率的である。特に、上記実施形態ではLを簡潔に定義するためにfloorlog2Bが使用されるが、もう一つの実施形態は、単純な論理を使用して最上位ビット、従ってBのビット長を見出す。最後に図3に戻ると、本発明の実施形態は、エントロピー符号化されたResY,ResU,ResV,HpY’,HpU’,およびHpV’データを、HiPriY,HiPriU,HiPriV,LoPriY,LoPriU,LoPriVとして標識する。図5は、本発明の一実施形態に従う一対のパケット化器を示している。別個のパケット化器501,502が、HiPriY,HiPriU,HiPriVを高優先度のパケットに、またLoPriY,LoPriU,LoPriVを低優先度のパケットに、それぞれ蓄積する。優先順位付けは、残差データを含むパケットに対して、ハイパスサブバンドを含むパケットよりも大きい保護が与えられるように行われる。一つのラインからの残差データは次のラインのライン間予測に使用されるので、残差データの喪失は、エラーを後続のラインに伝播させる可能性がある。対照的に、所定のラインについてのハイパスデータは他のラインとは独立しているので、ハイパスデータの喪失は後続のラインに影響しない。なお、パケット化器は、典型的には1以上のラインからのデータを一つのパケットに充填するものである。図3に示したラインベースの符号化器の動作において、重要なコンポーネントはビデオレート制御VRC方法であり、該方法は、変化するチャンネル容量の下で、バッファのオーバーフローを伴うことなく最大のビデオ品質を得るために必要な、各ラインqLY,qHY,qLU,qHU,qLV,qHVについての最低限の量子化パラメータを決定する。本発明の一実施形態は、小さいバッファおよび単回パス走査を使用して、先行技術のフレームもしくはブロックに基づく技術よりも有意に低い複雑さを提供する。該先行技術は、大きなバッファおよび多重回パスで、複雑なサーチを含んだビット平面配向性のアプローチを使用する。図6は、本発明の一実施形態に従って、バッファのオーバーフローを伴うことなく、最小歪みのためのビデオ符号化を最適化する制御出力を発生するために、VRCが使用する入力を示している。本発明の好ましい実施形態において、VRCはハードウエアにおいて実施される。タイミングの観点から、所定のラインのためのアクティブ画素が利用可能であるすこし前に、媒体アクセス制御MACはmaxLsize;601およびmaxHsize;602を特定し、これらはそれぞれ、現在のラインのローパス部分およびハイパス部分についての最大符号化ラインサイズを指示する。これらの最大ラインサイズは、物理相PHYによって与えられるチャンネル容量推定値から容易に計算される。maxLsizeおよびmaxHsizeを、特定の最大ラインサイズについての良好な圧縮結果を与えるBypass603,SelectYUV604,およびSelectTfm605の値を特定している表の中に示す。所定のラインについてのアクティブ画素が利用可能になったら、それらは選択されたBypass603、SelectYUV604、およびSelectTfm605の値を用いて、符号化器を通してクロックされる。VRC600は、LpY,HpY,LpU,HpU,LpV,およびHpVサブバンドを、それらがRAM図3に示すの中に保存されるときにサンプリングする。同時に、VRC600は、これらサブバンドサンプルを使用して、量子化値の全ての可能な組合せについてのレートおよび歪み情報をコンパイルする。当該ラインについて、最後のアクティブ画素に続いて水平ブランキング期間が始まる少し後に図2参照、レートおよび歪み情報が、それぞれ高優先度および低優先度の符号化されたラインサイズ、および量子化値の全ての許容可能な組合せについての二乗誤差として利用可能である。僅かなクロックサイクルのうちに、VRC600は、全てのqHY,qHU,qHV組合せに対応した、高優先度の符号化されたラインサイズの単回パス走査を行う。この走査の間に、それはmaxHsizeよりも小さい符号化されたラインサイズに関連した、qHY,qHU,qHV組合せを考慮する。走査が完了した後に、qHY,qHU,qHVは、最小二乗誤差を備えたこの考慮された組合せに設定される。制御値qLY,qLU,qLVは、水平ブランキング期間が終わる前に同様に決定される。量子化器は次に、最適量子化設定qHY,qHU,qHV,qLY,qLU,およびqLVを使用して、RAMにおける完全なqHY,qHU,qHV,qLY,qLU,およびqLVサブバンドを量子化し始めることができる。このタイミングスケジュールは、次のラインのためのサブバンドサンプルの保存が必要とされる前に、充分なRAM空間がフリーであることを保証する。以下のVRCの説明を単純化するために、qHY,qHU,qHVは組{0,2,4,6}に限定され、またqLY,qLU,qLVは組{0,1,2,3}に限定されるであろう。実験的証拠はまた、qHUが通常はqHVに等しく、qLUは通常はqLVに等しいことを明らかにしている。従って、本発明の目的のために、VRC方法は、HpU,HpVからqHUVを決定し、次いでqHU=qHV=qHUVを設定することによって単純化することができる。同様に、qLUVはLpU,LpVから得られる。最後のステップは、qLU=qLV=qLUVを設定することである。これらの限定は優れた結果を生じ、好ましい実施形態で実施されてよい。しかし、上記の要件は、本発明に従う別の実施態様では必要とされない。図7は、最適なローパス量子化設定を決定するために、水平ブランキング期間に実行されるプロセスを示すフローチャートである。これらの量子化設定qLY,qLUVは、入力maxLsize,i,j={0,1,2,3}についてのRLij,およびDLijから誘導される。サブスクリプトiは、Yについての量子化レベルを示し、jはUVについての量子化レベルを示す。RLはレートを表し、またDLは歪みを表す。従って、LpYサブバンドがiビットによって量子化され、またLpU,LpVサブバンドがjビットによってそれぞれ量子化されるときに、RLijはラインのローパス部分の符号化された長さを示す。同様に、LpYサブバンドがiビットによって量子化され、またLpU,LpVサブバンドがjビットによってそれぞれ量子化されるときに、DLijはラインのローパス部分からの2乗誤差を示す。ステップ701は、最小歪みを大きな値に初期化する。この例において、量子化レベルqLYおよびqLUVは15に設定される。ステップ702,703は、四つのqLY量子化レベルおよび四つのqLUV量子化レベルを通って循環するネステッドループを開始する。従って、qLYおよびqLUVの全16の組合せは、該ネステッドループにおいて試験される。この16の組合せの各々について、ステップ704は、現在のラインのローパス部分の符号化された長さが、量子化レベルの特定の組み合わせのmaxLsizeよりも低いかどうかを決定する。そうでなければ、次の組合せが試験される。該ローパス部分がmaxLsizeよりも低くなければ、ステップ705は、当該組合せに関連する歪みが、既に遭遇した最小の歪みであるかどうかを決定する。そうでなければ、次の組合せが試験される。当該組合せに関連した歪みが既に遭遇した最小の歪みであれば、ステップ706は、該量子化組合せをqLYおよびqLUVの中に保存する。可変のminDは、現在の量子化組合せに関連したDLijを維持するように更新される。何故なら、これは今までに遭遇した最も小さい歪みだからである。ネステッドループが完了した後、qLYおよびqLUVは、最小の歪みでmaxLsize未満のローパスサブバンドを符号化する量子化組合せを保持する。しかし、ステップ707がqLYは未だ15を保持すると決定すれば、ステップ706は実行されず、全ての量子化組み合わせについて、ステップ704は当該符号化されたローパスサブバンド長さが許容可能な最大maxLsizeよりも大きいと決定したことを暗示する。この場合、16の量子化組合せは、許容可能な最大未満のラインを符号化するためには不十分である。なお、組み合わせqLY=qLUV=15は、予測プロセスの原因であるときには、maxLsize内のローパスサブバンドを符号化するように保証され得ないことに留意すべきである。従って、現在のラインは送信されない。その代りに、ステップ708は、復号器に現在のラインを以前のラインで置き換えさせるように、制御ビットを設定する。図25および図26は、水平ブランキング期間の際の最適なローパス量子化設定を決定するために、図7におけるフローチャートの代りに使用されてよい別のフローチャートを示している。この別のフローチャートは、以下で説明するように、圧縮されたラインの視覚的品質を直接制御することを可能にするので、図7のプロセスを改善させる。ステップ2501は、meetsRateMaxAcceptableMseを大きな負の値に初期化するのに対して、meetsRateMinUnAcceptableMse、meetsRateMaxAcceptableMseQy、meetsRateMinAcceptableMseQyは各々、大きな正の値に初期化される。ステップ2502は、四つのqLY量子化レベルおよび四つのqLUV量子化レベルを通って循環するネステッドループを開始する。従って、qLYおよびqLUVの全16の組合せは、このネステッドループにおいて試験される。この16の組合せの各々について、ステップ2503は、現在のラインのローパス部分の符号化長さが、qLYおよびqLUVの特定のQLC組合せQLCについてのmaxLsizeよりも大きいかどうかを決定する。もしそうであれば、現在のQLTは許容可能な最大値を越えており、または望ましいビットレート要件が現在のQLCに適合しないであろうから、次のQLTが試験される。ローパス部分がmaxLsizeよりも大きければ、ステップ2504は、QLCに関連する歪みが許容可能なacceptableLpMseよりも大きいかどうかを決定する。もしそうであれば、我々は、現在のQLCは望ましいビットレート要件に適合するが、関連の歪みは許容できないほど大きいことを知ることになる。この場合、ステップ2505は、現在のQLCが、ビットレート要件には合致するが許容不能に大きい歪みをもたらす既に遭遇した全てのQLCのうち、最も小さい歪みを有するかどうかを試験する。もしそうであれば、ステップ2508は、現在のQLCおよびその関連の歪みを、meetsRateMinUnAcceptableMseQy、meetsRateMinUnAcceptableMseQuv、およびmeetsRateMinUnAcceptableMseに保存する。ステップ2504が、QLCに関連した歪みは許容可能に小さいと決定したならば、ステップ2506は、現在のQLCが、ビットレート要件に合致し且つ許容可能に小さい歪みを有する全QLCのうちで最も大きい歪みを有するかどうかを試験する。もしそうであれば、ステップ2507は現在のQLCおよびその関連した歪みを、meetsRateMaxAcceptableMseQy、meetsRateMaxAcceptableMseQuv、およびmeetsRateMaxAcceptableMseに保存する。当該ステップ2504,2505,2506,2507,2508は、望ましいビットレートに合致する全てのQLCその付随する歪みは許容可能なLpMseに近似しているが、meetsRateMinUnAcceptableMseQy、meetsRateMinUnAcceptableMseQuvに、またはmeetsRateMaxAcceptableMseQy、meetsRateMaxAcceptableMseQuvに保存されるであろうことを保証することが認められる。ステップ2502によって開始されたネステッドループが完了し、全てのQLCが試験された後に、制御は、図26におけるステップ260へと通過する。このステップは、何れかのQLCが、許容可能な歪みを伴って当該ビットレートに合致するかどうかを決定する。もしそうであればmeetsRateMaxAcceptableMseQyが7F...Fに等しくない、QLyおよびQLuvにおいて、ステップ2602はQLCに戻り、これはacceptableLpMseに最も近い歪みを伴ったビットレートに合致する。しかし、ステップ2601が許容可能な歪みを伴って当該ビットレートに適合するQLCはないmeetsRateMaxAcceptableMseQyが7F...Fに等しいと決定すれば、ステップ2603は、何れのQLCが許容不能な大きい歪みを伴ったビットレートに合致するかをチェックする。もしそうであればmeetsRateMinUnAcceptableMseQyは7F...Fに等しくない、QLyおよびQLuvにおいて、ステップ2604はacceptableLpMseに最も近い歪みを伴ったビットレートに合致するQLCに戻る。最後に、ステップ2603が、許容不能に大きなMSEを伴ったビットレートに合致するQLCはないmeetsRateMinUnAcceptableMseQyは7F...Fに等しいと決定すれば、我々は、全てのQLCがビットレート要件を超えていることを知ることになる。この場合、ステップ2605は、ステップ708で行ったと同様に、復号器が強制的に現在のラインを以前のラインで置換えるように制御ビットを設定する。図8は、ラインのローパス部分の符号化長さRLijの計算を示すフローチャートを示している。この例において、Y量子化レベルはi={0,1,2,3}であり、またUV量子化レベルはj={0,1,2,3}である。アクティブな画素はウエーブレット変換を介してクロックされ、RAMに書き込まれるので、RLijの16の値は、それらがLpY,LpU,およびLpVサブバンドにおいてそれぞれ利用可能になるときに、ウエーブレット係数wy,wu,wvから並列に蓄積される。ステップ801においては、全16のRLijレジスタがゼロに初期化される。ステップ802は、ローパスサブバンドLpVにおける各ウエーブレット係数wyが図3におけるRAM309に書き込まれるときに、レート計算が該係数を考慮することを暗示する。ステップ803は、全ての四つのY量子化レベルが考慮されることを述べており、またステップ804は、各Y量子化レベルについて、ゴロム符号長Ryが、定義されるように、量子化、LP予測およびwyに適用されるゴロム符号化プロセスによって計算されることを説明している。ステップ805および806は、異なるUV量子化レベルに関連し且つ同じY量子化レベルに関連した四つのレートレジスタが、全てRyによって更新されることを指令する。ハードウエア実施において、ステップ804の全ての四つの例は、ステップ806の全16の例と同様に並列に実行される。ステップ807~811は、ステップ802~806の対応部分と並行して、LpUに対して同様に実行される。同じく、ステップ812~816がLpVサブバンドに対して適用される。図9は、ラインのローパス部分DLijからの二乗誤差の計算を例示したフローチャートを示している。Y量子化レベルはi={0,1,2,3}であり、UV量子化レベルはj={0,1,2,3}である。DLijの16の値は、ウエーブレット係数wy,wu,wvから、それらがLpY,LpU,およびLpVサブバンドにおいてそれぞれ利用可能になるときに並列に蓄積される。ステップ901においては、全16のDLijレジスタがゼロに初期化される。ステップ902,903は、ローパスサブバンドLpYにおける各ウエーブレット係数wyの絶対値が図3におけるRAM309に書き込まれるときに、歪み推定値が該絶対値を考慮することを暗示する。ステップ904は、全四つのY量子化レベルが考慮されることを述べており、またステップ905は、各Y量子化レベルについて、関連のウエーブレットドメイン歪みが、Y量子化レベルにおいて切り捨てられるビットの十進数値に等しいことを説明する。しかし、目的はウエーブレットドメイン歪みではなく、画素ドメイン歪みを最小化することであるから、ステップ906は該歪みを二乗化する。何故なら、二乗化されたウエーブレット-ドメイン歪みは、略直交するウエーブレット変換について、二乗化された画素-ドメイン歪みを近似するからであるWaveletsandFilterBanksbyGStrangandTNguyenWellesleyCambridgePress1996参照。次に、ステップ907および908は、異なるUV量子化レベルで且つ同じY量子化レベルに関連する四つの歪みレジスタが、全てDLyによって更新されることを指令する。ハードウエア実施おいて、ステップ905,906の全四つの例は、ステップ908の全16の例と同様に並列に実施される。ステップ909~915は、ステップ902~908における対応部分と類似して、LpUサブバンドに対して並列に実施される。同様に、ステップ916~922はLpVサブバンドに対して適用される。図10は、m,n={0,2,4,6}について、入力maxLsize,RLmn,DLmnから最適ハイパス量子化設定qHY,qHUVを決定するために、水平ブランキング期間の間に実行されるプロセスを例示するフローチャートを示している。下付きの添え字mは、Y量子化レベルを意味し、nはUV量子化レベルを意味する。RHはレートを表し、またDHは歪みを表す。従って、RHmnは、HpYサブバンドがmビットによって、またHpU、HpVサブバンドがnビットによってそれぞれ量子化されるときの、ラインのハイパス部分の符号化長さを意味する。同様に、DHmnは、HpYサブバンドがmビットによって、またHpU,HpVサブバンドがnビットによってそれぞれ量子化されるときに、ラインのハイパス部分からの二乗誤差を意味する。ステップ1001~1006は、それぞれ図7におけるステップ701~706に類似している。しかし、このプロセスでは、ステップ707に類似したステップは必要ない。何故なら、もしmaxHsize標的に合致する量子化組合せがなければ、該プロセスはデフォルトのqHY=qHUV=15設定を使用することができ、この場合、これは明確にmaxHsize標的に合致するからである。図7におけるプロセスとは対照的に、ハイパス符号化は予測プロセスを含まない。従って、量子化組合せqHY=qHUV=15設定は、全てのハイパスサブバンド項目をゼロにするであろう。こうして、該符号化器は単一の制御ビットで全ゼロのハイパスサブバンドを送信することによってmaxHize標的に適合し、それにより当該復号器に全ゼロハイパスサブバンドを発生させるであろうから、それはこの組合せqHY=qHUV=15を続行するために充分である。図27および図28は、水平ブランキング期間の際の最適ハイパス量子化設定を決定するために、図10におけるフローチャートの代わりに使用してよい代替フローチャートを示している。この別のフローチャートは、圧縮されたラインの視覚的品質が直接制御されることを可能にするので、図10のプロセスを改善する。なお、この代替フローチャートは、視覚的品質の直接制御と共に、最適なローパス量子化設定を決定するための代替プロセスを特定した図25および図26のフローチャートに正確に類似している。図27および図28の代替フローチャートは、入力パラメータmaxHsizeおよびacceptableHpMseを許容し、これらはそれぞれ、圧縮されたラインのハイパス部分における最大の許容可能サイズ、および許容可能歪みを特定する。図25および図26のそれに正確に類似したステップを通って進行した後、該プロセスはqHYおよびqHUV、即ち、望ましいビットレート要件に合致し且つ許容可能な閾値acceptableHpMseに最も近接した歪みを有する量子化レベル組合せに戻る。このような量子化レベル組合せが存在しなければmeetsRateMaxAcceptableMseQyが7F...Fに等しく、またmeetsRateMinUnAcceptableMseQyが7F...Fに等しい、ステップ2805は、図10を説明する際に先に述べたように、qHY=qHUV=15を設定する。図25、26,27,28の代替プロセスは、視覚的品質が直接制御されるのを可能にすることを想起されたい。特に、特定された閾値であるacceptableLpMseおよびacceptableHpMseは、必要であれば量子化レベルを上昇させるので、その結果として生じる歪みは、前記特定された閾値に接近することになる。我々は次に、これらの閾値を決定し、それらがよく理解されたピーク信号対ノイズ比PSNR品質測定に対応するようにする方法を説明する。PSNR品質測定は、次のようにして定義される。PSNRdB=10log102552/MSEperPixelVideoCodingAnIntroductiontoStandardCodecsbyMGhanbariIEE1999Pg19参照、ここで、MSEperPixelは画素当たりの平均二乗誤差である。従って、MSEperPixel=65025PSNR/10-10,totMSEperLine=numPixelsPerLineMSEperPixel,totMSEperLine=numPixelsPerLine65025PSNR/10-10,ここで、numPixelsPerLineおよびtotMSEperLineは、それぞれ、ライン当たりの画素の数およびラインの全画素についての全体の平均二乗誤差である。式から、我々は、特定のPSNR品質に関連した全体の平均二乗誤差を計算することができる。次に、もし、入力されたラインをローパスサブバンドおよびハイパスサブバンドに分配するために、概ね直交するウエーブレット変換が使用されるならば、totMSEperLine=acceptableLpMseacceptableHpMse,であり、ここでのacceptableLpMseおよびacceptableHpMseは、それぞれ、ローパスサブバンドおよびハイパスサブバンドにおける許容可能な平均二乗誤差である。実験結果は、acceptableHpMseがacceptableLpMseよりも100~1000倍大きいときに、良好な品質が得られることを示している。従って、我々は式4および5を組み合わせて、numPixelsPerLine65025PSNR/10-10=acceptableLpMseRacceptableLpMse,を得、ここでは、100<R<1000である。従って、特定された歪み閾値は、次のようにPSNR品質に直接関連する:numPixelsPerLine65025PSNR/10-10×R1-1=acceptableLpMse,numPixelsPerLine65025PSNR/10-10×RR1-1=acceptableHpMse最後に我々は、異なる動作モードを可能にするために、PSNR品質設定をどのように使用できるかを説明する。もし、チャンネル条件が良好であると予測され、またビデオコンテンツが容易に圧縮可能であると予測されるならば、我々は、優れた品質を生じるPSNR=40dBについて、acceptableLpMseおよびacceptableHpMseを誘導することができる。或いは、PSNR=無限大を設定することによって、我々はacceptableLpMse=acceptableHpMse=0を得る。この場合、最低の歪みを伴った量子化レベル組合せが常に選択されるので、図25,26,27,28における代替プロセスの動作は、図7および10のそれと同一である。しかし、実際の動作では、チャンネル条件が屡々劣っており、またビデオコンテンツは圧縮するのが困難である可能性がある。結局、僅かに低いPSNR、恐らくは35dBを使用して、acceptableLpMseおよびacceptableHpMseを誘導するのが賢明である。この設定を用いると、量子化設定は容易に圧縮可能なラインに対しては僅かに高いであろうが、視覚的品質は未だ良好である。何故なら、斯かるラインは、通常は低量子化レベルにおいて低い平均二乗誤差を有するからである。従って、PSNR=35dBに関連した大容量のacceptableLpMseおよびacceptableHpMseは、35dBに関連した許容可能な閾値へと歪みを増大させるために、より高い量子化を強要するであろう。図23における改善されたビデオレート制御のためのハードウエア実施の方法と組み合わされるときには、この動作モードは、次の理由で優れた特性をもたらす。容易に圧縮可能なラインに遭遇したときには、より高い量子化レベルはより小さい圧縮ラインサイズを生じる。従って、ステップ2306は、より多くの未使用バイトをレジスタunused_bytes_accumulatorに割当てる。従って、unused_bytes_accumulatorが使い尽される可能性が低くなるので、圧縮が困難な後続のラインは低量子化レベルを使用する可能性が高く、良好な視覚的品質を有するようになり易い。図11は、ラインRHmnのハイパス部分における符号化長さの計算を説明するフローチャートを示している。Y-量子化レベルはm={0,2,4,6}であり、UV-量子化レベルはn={0,2,4,6}である。活性な画素はウエーブレット変換を介してクロックされるので、RHmnの16の値は、ウエーブレット係数wy,wu,wvから、それらがHpY,HpU,HpVにおいてそれぞれ利用可能になるときに並列に累積される。ステップ1101~1116は、図8におけるステップ801~816に類似している。主な相違は、図3において上記で説明したように、ハイパスサブバンド符号化は予測を使用しないので、ステップ1104、1109および1114が予測プロセスを含んでいないことである。図12は、ラインのハイパス部分DHmnからの二乗誤差の計算を説明するフローチャートを示している。Y-量子化レベルはm={0,2,4,6}であり、またUV-量子化レベルはn={0,2,4,6}である。この例において、DHmnの16の値は、ドーベシーDaubechies-7,9レベル1ウエーブレット係数wy,wu,wvおよびレベル2ウエーブレット係数wwy,wwu,wwvから、それらがHpY,HpU,HpVサブバンドにおいてそれぞれ利用可能になるときに並列に累積される。ドーベシー-7,9について、レベル2係数はレベル1係数に対して3/4で縮小される。この縮小は、画素-ドメイン二乗歪みを近似するために、ドーベシー7,9ウエーブレット-ドメイン二乗歪みについて使用される。LeGall5,3変換については、このスケール変更は不要である。図12に詳述されたプロセスは、図9のそれに類似している。ステップ1201は全16のハイパス歪みレジスタをゼロに初期化する。ステップ1202~1215は、ドーベシー7,9レベル1ウエーブレット係数wy上で動作し、ステップ902~908に類似している。ここでの相違は、ステップ1206における4倍のスケール変更である。wwy、即ち、ドーベシー7,9レベル2ウエーブレット係数について、ステップ1209~1015は、ステップ1213がレベル2ウエーブレット-ドメイン歪みを3倍でスケール変更することを除き、ステップ1202~1208に類似している。こうして、ステップ1206および1213は、レベル2係数をレベル1係数に対して3/4にスケール変更する。ステップ1216~1229はLpUサブバンド上で動作し、またステップ1202~1215に類似している。同様に、ステップ1230~1243はLpVサブバンド上で動作し、ステップ1216~1229に類似している。LeGall5,4変換ではスケール変更が不要なので、図12はまた以下の変形を使用することにより、このウエーブレット変換下での歪み推定に使用されてよい。ステップ1206および1213は、Dy=Dy2に変更される。ステップ1220および1227は、Du=Du2に変更される。ステップ1234および1241は、Dv=Dv2に変更される。以下では、ローパスサブバンドレート消費の複雑度を低減する最適化について記述する。ローパスレート消費は、ハイパスレート消費よりも複雑である。何故なら、前者については、予測プロセスが各量子化レベルにおいて反復されるからである。この反復の大きな影響を理解するために、上記で使用される予測プロセスについての表示は、an,bn,cn,およびxnが、それぞれnビットによるa,b,c,およびxの量子化を表すように変更される。なお、a0,b0,c0,およびx0は、元の量子化されていない値a,b,c,およびxを表す。当該プロセスは、dnp,q=pn-qn,p,q∈{a,b,c,x}についてを定義することによって始まる。量子化レベルQLnのための予測プロセスの際に、第一のステップは、dna,c,dna,bを計算し、次いで下記を定義することである。minn=bn,|dna,c|≦|dna,b|のとき,=cn,それ以外のときここで、minnは、QLnにおける最小-距離a-近隣である。最後に、QLn残差が次のようにして定義される:dxn=dxn,minn以前は、全てのQLnについて、dna,c,dna,b,minn、およびdxn,dxnを評価することによって、符号長さが再計算された。これらの評価には、各々が14ビット長以下であり得るan,bn,cn,およびxnの間の、二つの補数complement加算が含まれる。以下の最適化は、通常は、d0a,c,d0a,b,min0およびdx0を評価することについての必要性のみが存在することを示している。n>0の場合、dna,c,dna,b,minn、およびdxn,dxnは、これらから誘導することができる。この誘導は2ビット数による加算を含み、従ってローパスサブバンドレート消費の複雑さを低減する。図13は、最適化されたローパスサブバンドレート消費のためのプロセスを示している。この手順は、図8に示されたものの変形であり、以下で説明するOptimizedLPrates手順に依存する。図14のフローチャートは、0~Nの全量子化レベルの下での、ローパスサブバンド項目xについての、残差符号長の最適化された計算のためのOptimizedLPrates手順を記載している。該プロセスは以下の入力を使用する:x、即ち、現在の行からのローパスサブバンド項目、an,bn、即ち、以前のローパスサブバンド行からの、xの量子化された左上隣および上隣、c、即ち、現在のローパスサブバンド行からのxの量子化されない左隣、prevQL、即ち、以前のローパスサブバンド下におけるanおよびbnを量子化するために使用される量子化レベル、行,列、即ち、ローパスサブバンドにおけるxの座標N、即ち、現在の行のための最大量子化レベル。当該プロセスからの出力は、1~Nの全量子化レベル下において、xに対応する残差についての符合長さを含むベクトルcodeLengthsである。最初に、ステップ1401は、xがローパスサブバンドの最初の行および最初の列にあるかどうかを決定する。もしそうであれば、全ての量子化レベルにおいて、如何なる隣からの予測も伴わずに、xの量子化レベルから残余が直接得られる。従って、ステップ1403、1404は、QLnにおける符号長を、QLnだけ右シフトされたxのゴロム符合長として計算する。ゴロム符号長は、最上位ビットの位置を決定する単純な論理によって得られることを想起されたい。ステップ1402は、0~Nの全量子化レベル下でのxの符合長を得るために、ステップ1403、1404を反復させる。ステップ1401が、xはローパスサブバンドの最初の行および最初の列にないことを決定すれば、ステップ1406は、xが該ローパスサブバンドの最初の行にあるかどうかをチェックする。もしそうであれば、全量子化レベルにおいて、残差はxの量子化された値およびその量子化された左隣cnから予測されるであろう。ステップ1407は、図15に記載の加算手順を呼び出して-cをxに加え、d0x,c、並びにd0x,cからdnx,cを誘導するために使用する計算からの桁上げを得る。次に、ステップ1408における1411へのループは、0~Nの全量子化レベルの下で、xに対応する残差の符合長を計算する。d0x,cからdnx,cを誘導するために、ステップ1409は、d0x,cをQLnだけ右シフトさせ、またステップ1410は図16におけるapplyCorrectionを呼び出して、訂正項を加えることによりdnx,cを訂正する。図16におけるapplyCorrection手順は以下の入力を受け取る:p,q、整数QLn、即ち、量子化レベルdnp,q、即ち、QLnにおけるpからqの距離。この推定値は、dnp,qを単純にQLnだけ右シフトすることによって計算され、ここでのd0p,qは、pおよび-qに加算手順図15を適用することによって得られると仮定される。桁上げ、即ち、先に説明したd0p,qの加算手順から得られる桁上げのベクトル。applyCorrection手順からの出力は次の通りである:dnp,q、即ち、QLnにおけるqからの訂正された距離推定値。この訂正された距離推定値は、pnからqnを差引くことにより得ることができるであろう。しかし、この引き算は二つの114ビット数の付加を含んでおり、従って、単にdnp,qに2ビットの訂正項を加えるだけの提案された本方法よりも高価である。codeLen、即ち、dnp,qのゴロム符合長。訂正、入力されたdnp,qに加えられる訂正項。最初に、ステップ1601が訂正をゼロに初期化する。量子化プロセスは、より短いエントロピー符号を得るために、一定の負の数を様々に処理することを想起されたい。この入力された推定値を訂正するために、当該プロセスは、pステップ1602および-qステップ1604が該量子化プロセスによって種々に処理され、従って、ステップ1603および1605が当該訂正項を更新したかどうかを決定することによって、これを達成する。ステップ1606は、入力された推定値dnp,qが、qnおよびpnを発生する際に切り捨てられる最下位ビットからの桁上げを含むかどうかを決定する。もしそうであれば、この桁上げは訂正項の中に組み込まれるべきである。何故なら、これら量子化された値は桁上げを発生するような最下位ビットを有していないであろうから、該桁上げはpnからqnの直接の引算には存在しないであろうからである。最後に、ステップ1608は、入力された推定値dnp,qに該2ビット訂正項を加えて、訂正された距離推定値を得る。この訂正された推定値のゴロム符号長さもまた計算される。図14に戻ると、ステップ1412は、x0が最初の列にあり且つ最初の行にはないかどうかを決定する。もしそうであれば、全ての量子化レベルにおいて、該残差は、xの量子化された値およびその量子化された上隣bnから予測される。この場合、ステップ1413は最初にbnを左シフトさせて、xからの距離を計算するために使用される十分な精度のbを得る。次いで、ステップ1413~1418は、cの代わりにbを使用することを除き、ステップ1407~1410に類似した動作を実施する。ステップ1412が、x0は最初の行にも最初の列にもないことを決定すれば、全ての量子化レベルにおいて、前記残差は、xの量子化された値およびその量子化された上隣bnまたはその量子化された左隣cnから予測される。この場合、ステップ1419は最初に、QL0において、xからの距離を計算するために使用される十分に正確な値を得るために、anおよびbnを左シフトする。次に、ステップ1420はgetUnquantData手順図17参照を使用して、量子化されていない項目x,a,b,cから計算された残差に関連したデータを集める。ステップ1421,1423におけるループは、derivePostQuantResidual手順ステップ1422および図18を繰り返して、getUnquantData手順により戻されたデータからQLnにおける残差についての符号長を誘導する。derivePostQuantResidual手順以下で説明するによってdxnの符号長の効率的な決定を可能にするために、図17に示されたgetUnquantData手順は、量子化されていないサブバンド項目x、並びにそれぞれ左上隣、上隣および左隣であるa、b、cを受け取って、以下のデータを出力する:d0a,bおよびd0a,c、即ち、bおよびcのa-距離、並びにabCarriesおよびacCarries、即ち、これら計算からのそれぞれの桁上げベクトルd0x,bおよびd0x,c、即ち、bおよびcのx-距離、並びにxbCarriesおよびxcCarries、即ち、これら計算からのそれぞれの桁上げベクトルmin0、即ち、{b,c}から選択されるaの最も近い隣。もしbおよびcがaから等しい距離にあれば、タイブレーカとしてcが選択される。tie0は、b,cがaから等しい距離にあるかどうかを表す。そうであれば、1に設定する。そうでなければ0にリセットする。oppSidesは、bおよびcが数直線上の反対側にあるかどうかを表す。そうであれば、1に設定する。そうでなければ、oppSides=0である。constMinCは、全ての量子化レベルにおいて、cが最も近いa-隣であるかどうかを表す。もしそうであれば、1に設定する。そうでなければ、0にリセットする。diffDist0は、d0a,bとd0a,cの間の差であるのに対して、diffDistCarriesは、diffDist0の計算において生じる桁上げである。最初に、ステップ1701は図15から加算手順を呼び出し、量子化されていないa-距離d0a,b、d0a,c、並びに関連の桁上げabCarries、acCarriesを計算する。このステップはまた、constMinC、oppSidesおよびtie0を0に初期化する。ステップ1702は、d0a,bおよびd0a,cの記号を調べる。もし、これらの記号が異なれば、bおよびcは該数直線の反対側にある。ステップ1703は、この情報を保存するために、oppSidesを設定する。次に、ステップ1704が加算手順を呼び出し、d0a,bおよびd0a,cの間の差、並びにdiffDist0の計算において生じる桁上げであるdiffDistCarriesを計算する。ステップ1705は、b、cがaの反対側にあるかどうかを決定する。もしそうであれば、ステップ1706が、b及びcがaから等しい距離にあるかどうかをチェックする。その通りであれば、ステップ1707はtie0を設定し、タイブレカーcをmin0に割り当てる。ステップ1706が、bおよびcはaから等距離にないと決定すれば、ステップ1708はdiffDist0およびd0a,cの符号を調べる。これらの符号が同じであれば、cがaに最も近く、min0はcに設定されるステップ1709。そうでなければ、bの方がaに近く、bはステップ1710においてbに割り当てられる。ステップ1705に戻ると、b、cがaの同じ側にあれば、ステップ1715~1719は、ステップ1708および1717に類似の論理を使用して、tie0およびmin0を設定する。論理における実質的な相違は、ステップ1708および1717における符号試験である。符号の極性はb、cがaの同じ側または反対側にあるかどうかに依存するので、この試験は異なっている。ステップ1707,1709,1710,1716,1718または1719の何れかに続いて、変数min0およびtie0が適切に設定され、getUnquantData手順は、図15から加算手順を呼出すステップ1711および1714を用いて、d0x,bおよびd0x,c、即ちbおよびcのx距離、並びにxbCarriesおよびxcCarriesそれぞれがこれら計算からベクトルを運ぶを計算するように結論される。もし、ステップ1712がb、cはaの同じ側にあり、また量子化前の最も近い隣がタイブレーク選択であることを決定すれば、d0x,cは計算される必要がないことに留意すべきである。これは、右シフトによる量子化はオーダー保存マップであることを示す順序保存特性の結果である。従って、何れかの整数x、y、および自然数nについて、x≦y=>x>>n≦y>>nである。即ち、これは示された条件下では、全ての量子化レベルにおいて、a,b,cの相対的な順序は同じまま残り、またはb、cがaから等距離になるように縮退する。何れの場合にも、cはタイブレーク選択であるから、最も近いa隣はcであり、従って全ての量子化レベルにおいて同じまま残る。従って、ステップ1713は、この状態を示すためにconstMinCを設定する。図18は、getUnquantData手順により提供されるデータに基づいて、特定されたQLnにおけるローパスサブバンド項目xに対応する残差を計算するための、derivePostQuantResidual手順を示している。以下の入力が使用される:d0a,bおよびd0a,c、即ち、bおよびcのa-距離、並びにabCarriesおよびacCarries、即ち、これら計算からの桁上げベクトル;min0、即ち、{b,c}から選ばれたaの最も近い隣。bおよびcがaから等距離にあれば、タイブレーカとしてcが選択される;tie0は、b、cがaから等距離にあるかどうかを表す。もしそうであれば、1に設定する。そうでなければ0にリセットする;oppSidesは、bおよびcが数直線上でaの反対側にあるかどうかを表す。そうであれば、1に設定する。そうでなければ、oppSides=0である;constMinCは、cが全ての量子化レベルにおいて最も近いa-近隣のままであるかどうかを表す。そであれば1に設定する。そうでなければ0にリセットする;diffDist0は、d0a,bとd0a,cの間の距離差であるのに対して、diffDistCarriesは、diffDist0の計算において生じた桁上げである;QLn、即ち、特定の量子化レベル。これらの入力は、以下の出力を発生するために使用される:dxn、即ち、特定のQLnにおいてローパスサブバンド項目xに対応する残差;codeLength、即ち、dxnのゴロム符合長。ステップ1800は、最初に、cが全ての量子化レベルにおいて最も近いa-近隣であることが保証されるかどうかを決定するために、constMinCを調べる。もしそうであれば、QLnにおいて、残差はbnから予測されるであろう。これは、d0x,bを右シフトさせ、また図16におけるapplyCorrection手順を呼び出すことによって、直接の減算を伴わずに、ステップ1805において行われる。ステップ1800が、cは最も近いa-近隣であることが保証されないと決定すれば、ステップ1801は量子化されていないa-距離を右シフトさせ、該結果を訂正して、量子化されたデータの直接の減算を伴わずに量子化後のa-距離を得る。これら量子化後のa-距離から、該手順は最初にminn、即ち、量子化後の最も近いa-近隣を決定する。ステップ1802が、dna,bおよびdna,cの絶対値は等しいことを決定すれば、bnおよびcnはanから等距離にある。この場合、ステップ1803はタイブレーカーcをminnに割り当てる。そうでなければ、bnおよびcnはanから等距離にない。ステップ1802が、a-距離は量子化後に等しくないと決定し、またステップ1807が、bおよびcはaの同じ側にあり、量子化前の最も近いa-近隣決定の間にタイが生じなかったことを決定すれば、その量子化後の最も近いa-近隣は変化せず、従って、min0がminnに割当てられるステップ1808。これは、先に述べた順序保存特性のもう一つの結果である。しかし、ステップ1807における試験が失敗すれば、二つの可能性が存在する:1量子化前に計算されたa-距離は等しく、それらが今では等しくない、2量子化前に、bおよびcはaの反対側にあった。最初の場合、それが量子化されていないデータからのタイブレーク選択cであると考えることはできないので、該プロセスは、最も近いa-近隣を明確に決定しなければならない。第二の場合、量子化後の最も近いa-近隣が変化しないことを保証するためには、順序保存は不十分である。従って、この場合にも、最も近いa-近隣は明確に決定される。両方の場合において、最も近いa-近隣は、dna,cからdna,bを減算することなく、効率的に決定されてよい。これを達成するために、ステップ1809はdiffDist0、即ち、量子化されていない画素から計算されたa-距離の間の差を右シフトし、dna,cからdna,bの間の差の推定値を得る。この推定値は、最初にステップ1801からの訂正因子corrAcおよびcorrAbを加えることにより、正確な値diffdistnに訂正される。次いで、d0a,c-d0a,bから捨象された最小ビットが、diffDist0計算ステップ1810において十分に正確な桁上げを発生していたならば、diffDistnは減分されるステップ1811。ステップ1810の後、diffDistnは、量子化後のa-距離の間の差を含んでいる。ステップ1812がこの差はゼロであると決定すれば、bn,cnはanから等距離にあり、ステップ1813はタイブレーカー選択であるcをminnに割り当てる。そうでなければ、bn,cnはanの反対側にあるから、diffDistnおよびdna,bの符合が、bnまたはcnが、最も近いan-近隣であるかどうかを明らかにするステップ1814。従って、ステップ1815またはステップ1816は正しい値をminnに割当てる。最後に、ステップ1803、1808、1813、1815または1816の何れかの後、結果はminn、即ち、量子化後の最も近いan-近隣ある。次いで、該プロセスは、直接の減算を使用することなく、minnからの予測により、xnに対応する残りを誘導することができる。即ち、もしステップ1804がminnはcであることを決定すれば、ステップ1805はd0x,bを右シフトさせ、applyCorrection手順図16を呼び出して、dxnおよびそのcodeLengthにおけるゴロム符号長を得る。minnがbであれば、ステップ1806は、d0x,bの代わりにd0x,cを使用して同じ動作を行う。図14におけるOptimizedLPratesの利点を説明するために、以下の例はそれを、{0,...,N-1}におけるnについて、各QLnのために反復しなければならないであろう最適化されていない予測プロセスと比較する。QLnにおいて、m、nビットの入力ビット幅を用いた加算器をmn加算器として表示すると、該最適化されていないプロセスは四つの[N-nN-n]加算器を含んでいる。従って、{0,...,N-1}におけるnについての全体の予測プロセスは、次の各四つを含むであろう:11加算器、22加算器、33加算器、...、NN加算器。対照的に、図14においては、ステップ1403、1404、1407、1413、1416、および1417は、マルチプレクサを使用して、ステップ1412および1420に含まれる論理を共有することができる。従って、ステップ1412および1420についてのハードウエア要件を分析することで十分である。図17におけるgetUnQuantData手順は、四つのNN加算器を含んでいるステップ1701、1702、1704、1711、および1714。QLnにおいて、図18からのderivePostQuantResidual手順は、四つの[N-nN-n]加算器を含んでいるステップ1801、1809、1805、および1806。従って、nが{0,...,N-1}の全てのQLnについて、最適化されたプロセスは五つのNN加算器および以下の各四つを含んでいる:11加算器、22加算器、32加算器、...、N-12加算器。両方の実施についてシリアルアドレスが使用されると仮定すれば、NN加算器はNN加算器よりも4N-8多いゲートを有している。N=14について、該最適化された実施は1320のゲートを含んでいるのに対して、最適化されていない実施は、2296のゲートを含んでいる。従って、最適化は、少なくとも42.51の論理ゲートの節約を提供する。以下では、図9および図12に描いたような、ラインのローパス部分およびハイパス部分の歪み推定値を改善する方法を記述する。これらの歪みは実際にはウエーブレットドメイン歪みであることを想起されたい。ウエーブレット変換の整数実施は、ウエブレットドメイン歪みが実際の画素ドメイン歪みにほぼ等しいように、ほぼ直交している。OptimalQuantizedLiftingCoefficientsforthe97WaveletSBaruaKAKotteriAEBellandJECarlettaProceedingsofthe2004IEEEInternationalConferenceonAcousticsSpeechandSignalProcessingを参照されたい。しかし、逆ウエーブレット変換の整数実施により導入された丸めノイズは、図9および図12において計算されたウエーブレット-ドメイン歪み推定値の精度を低下させる。この問題を軽減するためには、丸めノイズが、主にウエーブレット係数の最下位ビットLSBに影響することを認めるべきである。何故なら、これらは、整数逆ウエーブレット変換において丸められるビットだからである。従って、復号プロセスの際に、本発明の一実施形態は、逆ウエーブレット変換の直前に、逆量子化されたウエーブレット係数をNビットN=1,2または3左シフトさせることによって、該係数を均一にスケールする。これは、該NLSBをゼロに設定し、整数逆ウエーブレット変換における丸めノイズを抑制し、ウエーブレットドメイン歪み推定値の精度を改善する。この逆ウエーブレット変換の後に、再構成された画素は、均一なスケーリングを反転させるために、Nビットだけ右シフトされるべきである。該改善された歪み-推定精度は、{3,4,5,6,7}におけるqHpYを用いたDaubechies7,9およびLeGall5,3ウエーブレット変換について、スケーリングを伴ってまたは伴わずに、標準モバイルビデオシーケンスの最初のフレームの各ライン上でY成分歪み-推定パーセンテージを測定することによって確認される。次に、平均および最大パーセンテージエラーが全てのラインに亘って計算された。表2は、パーセンテージエラーの減少を表に纏めたものを示している。表2この表に見られるように、スケーリングは、特に量子化ノイズに対して丸めノイズが優勢になる傾向がある低量子化レベルにおいて、歪み-推定エラーを減少させる。以下の方法は、図3に示したエントロピー符号化319~324の特性を改善するために使用される。これらのエントロピー符号化器は、データが指数関数的に分布されることを仮定する単純かつ効率的なゴロム符号を使用して実施されたことを想起されたい。データの真の分布が知られていれば、算術符号化器はゴロム符号化よりも高い圧縮比を達成するElementsofInformationTheoryTCoverandJThomasWiley1991Pg104参照。先行技術において、算術符号化器および復号器はデータ分布の推定値を用いる。これらの推定値は、通常は均一な分布に初期化され、また徐々に実際の基礎分布underlyingdistributionに向けて収斂する。この収斂は遅いので、達成される平均圧縮比は、ゴロム符号化器からのものよりも遙かに良好とは言えない。事実、すぐれた特性を得るためには、算術符号化器は典型的には、計算的に複雑な内容に適応できる方法を用いる例えば、StudyoffinalcommitteedraftofjointvideospecificationITUTRecH264ISOIEC1449610AVCTWiegandDec2002AwajiMPEGMeeting参照。しかし、以下で述べる方法は、ゴロム符合に基づくエントロピー符号化器の特製を改善するために、算術符号化をどのように使用できるかを示している。最初のラインにおいて、当該円コーダはゴロム符号化を使用して、上記で述べたようにして当該ラインを符号化する。従って、該復号器は、ゴロム符号化を使用してこのラインを複合する。ラインnn>1上において、該符号化器は、ラインn上でのデータの分布の推定値としてラインn-1の棒グラフを計算する。この推定値は、Baビットを使用するラインnの算術符号化のために使用される。並行して、該符号化器はまた、Bgビットを使用するラインnのゴロム符号化を発生する。Ba<Bgであれば、該符号化器は制御ビットを設定し、ラインnの算術符号化を送信する。そうでなければ、該制御ビットはリセットされ、該ラインのゴロム符号化が送信される。それに対応して、ラインnについては、該復号器が前記符号化器により送信された制御ビットを調べる。このビットが設定されれば、該符号化器は、ラインnの算術的複合のための推定分布として、ラインn-1の棒グラフを使用する。制御ビットがリセットされれば、該復号器はゴロム複合を適用してラインnを復旧する。このスキームにより達成される圧縮率は、常にゴロム符号化器からのものよりも大きく、またはこれに等しい。実際に、ビデオデータは縦軸に沿って高度に相関しているので、ラインn-1の棒グラフは、通常はライン1の分布についての良好な推定である。この相関は水平エッジでは減少するが、これらのラインにおいて、該符号化器は自動的にゴロム符号化に切替わるであろう。以下の最適化は、図5に示した低優先度のパケットでのビット数を低減する。これらのパケットは、図3における量子化されたハイパスチャンネルHpY、HpU、HpVをエントロピー符号化することによって得られることを想起されたい。ゴロム符号化器は、その基礎をなすデータが指数関数的に分布されるならば、ウエーブレット係数の殆どがゼロの回りにクラスターされる一方、少数のものは大きな値を有しているように、うまく動作する。これらの大きな係数は長いゴロム符号を有し、従って低い圧縮比を有するであろう。ハイパスチャンネルHpY、HpU、HpVにおける大きなウエーブレット係数は、Y、U、Vチャンネルにおける対応する位置での垂直エッジに対応する。これらの垂直エッジはまた、それぞれのローパスチャンネルLpY、LpU、LpVにおける不連続性をもたらす。従って、ローパスチャンネルを垂直エッジ検出器で処理することによって、ハイパスチャンネルにおける垂直エッジを予測することができるDigitalImageProcessingusingMatlabbyRGonzalezRWoodsandSEddinsPrenticeHall2004参照。この予測された垂直エッジをハイパスチャンネルから差し引くことは、垂直エッジが抑制される残りのハイパスチャンネルを生じる。従って、残りのハイパスチャンネルはより少ない大きな値のウエーブレット係数を有し、その結果得られる低い優先度のパケットコンシューマーはより小さいビット数を有する。これら低い優先度のパケットを復号するために、復号器は先ず、LpY、LpUおよびLpVチャンネル並びに残りのハイパスチャンネルを復号する。次に、LpY、LpUおよびLpVチャンネルが垂直エッジ検出器を用いて処理され、予測された垂直エッジが残りのハイパスチャンネルに加えられて、HpY、HpUおよびHpVを得る。次いで、この復号プロセスは先に述べたようにして継続される。以下は、図3におけるLeGall5,3ウエーブレット変換の整数実施integerimplementationのための新たな丸め方法の説明である。JPEG-2000画像圧縮標準に定義されているように、LeGall5,3ウエーブレット変換の更新ステップは、floorx0.5を使用してxを丸めるが、ここでのxは0.25の整数倍であり、またflooryは実際の数yよりも小さい最も大きな整数を返すEquation16inAnOverviewoftheJPEG2000StillImageCompressionStandardbyMRabbaniandRJoshiSignalProcessingImageCommunication17348参照。[-0.5,0.5におけるxの値は、floorx0.5によってゼロにマップされる。ハードウエア実施においては、xおよび0.5はそれらに4を乗じることにより整数に変換されて、x’=4xおよび2=40.5を得るであろう。この表現を用いて、図19は、JPEG-2000画像圧縮標準に定義されているように、floorx’2が如何にして実施されるかを示している。次に、fixx0.5によって記述される丸め方法を考察する。ここでは、fixyがyに最も近く且つyとゼロの間にある整数を返す。-1.5,0.5にあるxの値は、fixx0.5によってゼロにマップされる。ハードウエア実施においては、それらに4を乗じることにより、xおよび0.5が整数に変換されて、x’=4xおよび2=40.5を得るであろう。この表現を用いて、図20は、fixx’2がどのように実施されるかを示している。逆ウエーブレット変換において、図20は、通常の逆リフティング手順により容易に反転される。図20は、総計ならびに1のエキストラ付加に対する追加の符号チェックを有している。しかし、先に説明したように、fixx0.5は-1.5,0.5をゼロにマップする一方、floorx0.5は[-0.5,0.5をゼロにマップする。従って、fixx0.5は値{-1.25,-1.0,-0.75,-0.5,-0.25,0,0.25}をゼロにマップする一方、floorx0.5は値{-0.5,-0.25,0,0.25}をゼロにマップする。図4におけるエントロピー符号化器は、最短長さ1の符合をゼロ値に割り当てることを想起されたい。従って、更新ステップ後に丸めるためにJPEG-2000のfloorx0.5を使用するウエーブレット変換は、四つの値を長さ1の符合にマップするであろう。対照的に、提案されたfixx0.5丸めは、七つの値を長さ1の符合にマップするであろう。fixx0.5丸めは、より多くの値を長さ1の最短エントロピー符号にマップするので、fixx0.5丸めと共にウエーブレット変換を使用するロスのない符号化は、JPEG-2000のfloorx0.5丸めを使用するウエーブレット変換よりも大きな圧縮比を与える。表3は、この予測を確認している。最初の欄は、fixx0.5丸めを用いてロスなしで圧縮された38の異なる画像についての圧縮率を示しており、また第二の欄は、floorx0.5丸めが用いられるときに得られる圧縮比を示している。全ての38の画像について、fixx0.5丸めはfloorx0.5丸めよりも大きな圧縮比を与える。上記で指摘したように、fixx0.5丸めのための追加のハードウエアコストは、floorx0.5丸めに比較して非常に小さい。fixx0.5丸めから得られる利益は、デッドゾーン量子化効果に起因するものでないことが強調されるべきであるVideoCodingAnIntroductiontoStandardCodecsbyMGhanbariIEE1999Pg26参照。特に、デッドゾーンは、量子化器のゼロ-ビン幅zerobinwidthを増大させるために、ロスの大きい符号化において使用される。しかし、fixx0.5丸めは、ウエーブレット変換において生じ、量子化器を使用しないロスのない符号化のためにも利点を提供する。表3最後の最適化は。ビデオレート制御特製を改善するための方法に関する。上記図6の説明は、maxLsize601、maxHsize602、ByPass603、SelectYuv604およびSelectTfm605が、チャンネル容量推定を使用してこれら制御信号の値を与える表の中にインデックスすることにより得られることを述べている。実際には、チャンネル-容量の推定はときには信頼性がなく、またチャンネル-容量推定をビデオレート制御のために直接使用しないことによって、頑丈さを改善することができる。表4当該方法を説明するために、表4は、ビデオレート制御信号のための12の設定を示している。ローパスCRおよびハイパスCRは、ローパスサブバンドおよびハイパスサブバンドについての目標圧縮比を意味する。これらの量は、下記によるmaxLsizeおよびmaxHsizeを意味する:maxLsize=uncompressed_lowpass_subband_size/LowpassCR、maxHsize=uncompressed_highpass_subband_size/HighpassCR、ここで、非圧縮サブバンドのサイズは、入力された解像度と、ローパスサブバンドサイズおよびハイパスサブバンドサイズの間の1:3の比を使用して直接計算することができる。最悪事例のCRの欄は、ローパス圧縮比およびハイパス圧縮比、並びにYUVフォーマットを説明することにより、与えられた設定を使用して得られる最小の圧縮比を示している。これらの最悪事例のCRは、図21において、任意のピーク信号対ノイズ比PSNR値と共に、曲線2160上の点2161~2172によってプロットされている。しかし、12の設定を使用して実際の画像が処理されるときには、圧縮比およびPSNRは、通常はこの最悪事例の曲線よりも高い。例えば、標準のモバイル画像上において、点2141~2152によって表わされる該12の設定は、図21における曲線2140を生じる。同様に、該12の設定をgfx画像点2121~2132およびwq画像点2101~2112に適用することにより、それぞれ図21における曲線2120および2100を生じる。曲線2100は、曲線2140に関連した画像よりも圧縮するのが遙かに容易な画像に対応する;従って、曲線2100上の点は、曲線2140上の対応する点よりも高いPSNRおよびCRを有する。以下の例は、上記のビデオレート制御方法を示しており、SXGAビデオ1024x76860Hzが送信されると仮定している。このビデオフォーマットは、1132Mbpsの生ビットレートを必要とする。送信が始まるときに、MACからのスループット予測は525Mbpsである。従って、初期CRは1132/525=2.16よりも大きいはずである。最悪事例のCRから、設定4は、初期CRよりも大きい最小の最悪事例CRを得るために必要とされる。しかし、ビデオコンテンツがgfx画像よりも小さければ、設定4は、図21におけるgfx曲線2120上の点2124において、当該システムを動作させる。従って、平均CRは3.5よりも大きく、これは初期CR=2.16よりも遥かに大きい。該コンテンツは比較的圧縮が容易なので、本発明の一実施形態は、圧縮されたビデオパケットのサイズをモニターすることによってこの条件を検出することができ、またこの圧縮が、必要とされるものよりも高いことを知ることができる。この条件を検出するに際し、それがCR>3を備えたgfx曲線2120上の点2123で動作するように、設定インデックスは3にまで減少される。本発明の一実施形態は、過剰圧縮条件を反復して検出し、またCR>2.5を備えたgfx曲線2120上の点2121に達するまで、該設定インデックスを減少させ続けるであろう。gfx曲線2120上を点2124から点2121へと移動させると、CRが初期CRよりも大きいことを保証しながら、PSNRは約38dBから約57dBへと増大する。先の説明は、圧縮されたパケットの実際のサイズ上でのフィードバックを使用して、PSNRの改善をカバーしている。本発明のもう一つの実施形態においては、変化するチャンネル条件に反応して、無線送信の前にパケットを保持する送信バッファ中でのオーバーフローを防止するために、他のフィードバックを使用することができる。受信機が全てのパケットのアクノリッジを要求されるならば、アクノリッジされないパケットは再送信されることができる。再送信に際して、送信バッファは再送信の間に排出されないので、CRを増大させてバッファのオーバーフローを防止するために設定インデックスを増分させることができる。WiMediaMAC仕様は、取決められた時間スロットを可能にし、その間にビデオ送信が不能にされるWiMediaMAC099RC1byMultibandOFDMAllianceSpecialInterestGroup2005参照。これらの時間スロットは予め知られているから、該設定インデックスもまた、このような時間スロットの前、最中および直後に増分されることができる。ここでも、送信バッファは不能化された時間スロットの間に排出されないので、この動作はバッファのオーバーフローを防止するであろう。最後に、バッファの満杯度が予め定められた閾値、例えばバッファ容量の65を超えるときは何時でも、該設定インデックスは、バッファのオーバーフローを防止するために増大されることができる。再送信に関するフィードバック、不能化された時間スロット、およびバッファ満杯度が存在しないときは、当該レート制御方法は先に説明した動作に戻り、該動作では初期CRよりも上で動作する間に、過剰圧縮が検出され、設定インデックスが減少されてPSNRを増大させる。図22は、本発明の一実施形態に従う改善されたビデオレート制御のための、ファームウエア実施の方法を示すフローチャートである。この方法は、過剰圧縮を検出することによってレート制御特性を改善するために、圧縮されたパケットサイズ上でのフィードバックを使用する。図22に描かれたプロセスは、XGAビデオを送信する例1024x76860Hzを介して説明することができる。このビデオフォーマットは、1132Mbpsの生ビットレートを必要とする。送信が始まると、該システムは、MACから525Mbpsのスループット予測を得る。従って、初期CRは1132/525=2.16よりも大きいはずであるステップ2201。最悪事例のCRから、設定4が、初期CRよりも大きい最小の最悪事例のCRを得るために選択されるステップ2202。次のビデオパケットは、設定4でのレート制御動作を用いて発生されるステップ2203。ビデオコンテンツがgfx画像と同様であれば、設定4は、当該システムに対して、図21におけるgfx曲線2120上の点2124において動作を生じさせる。従って、平均CRは3.5よりも大きいであろうし、これは初期CR=2.16よりも遥かに大きい。該コンテンツは比較的圧縮し易いので、圧縮されたビデオパケットのサイズをモニターすることによってステップ2204、この条件を検出し、該圧縮が、必要とされるよりも高いことを確認することができる。このような条件を検出する際に、該システムは、CR>3を備えたgfx曲線2120上の点2123で動作するために、設定インデックスを3まで減少させるステップ2206。該プロセスは、過剰圧縮条件を反復して検出し、また図21におけるCR>2.5を備えたgfx曲線2120上の点2121に達するまで、該設定インデックスを減少させ続けるであろうステップ2208。gfx曲線2120上を点2124から点2121へと移動させると、CRが初期CRyよりも大きいことを保証しながら、PSNRは約38dBから約57dBへと増大する。図23は、本発明の一実施形態に従う改良されたビデオレート制御のための、別のハードウエア実施の方法を示すフローチャートである。この方法は、圧縮されたラインサイズ上でのフィードバックを使用して、過剰圧縮を検出する。該ハードウエア実施は、より迅速な応答を保証し、従って上記で述べたファームウエア実施よりも良好な特性を保証する。該プロセスは、レジスタunused_bytes_accumulatorをクリアすることによって開始されるステップ2301。XGAの例を再度参照すると、525Mbpsチャンネル上での送信を維持するために、目的とするCRは2.16であるべきであるステップ2302。従って、理想的に言えば、各ラインは10243/2.16=1423バイトの最大値を占めるべきである。送信が始まるときに、該システムは、最悪事例のCR=2.4を保証する設定4を選択するステップ2303。この設定は、4:2:2データ、ローパスCR=1およびハイパスCR=2でデオレート制御を動作させ、これは次のことを意味する:maxLsize=102430.25/1.5=512バイトmaxHsize=102430.750.5/1.5=768バイト第一のラインは特定のmaxLsizeおよびmaxHsizeレート制御パラメータを使用して符号化されステップ2304、その後、LsizeおよびHsizeは、圧縮されたラインのレート制御パラメータにおけるローパスサブバンドおよびハイパスサブバンドの実際のサイズを表すステップ2305。現在の例において、Lsize=300バイト、およびHsize=400バイトを仮定すると:maxLsizemaxHsize-LsizeHsize=1280-700=580バイトである。これは、圧縮されたラインが、最大の可能なサイズに580バイトだけ達しないことを示している。換言すれば、該ラインは、設定4に関連した1280バイトの最大値を犯すことなく、それが実際有使用したものよりも580バイトだけ多く使用できたであろう。従って、ステップ2306において、該システムは、それらを後続のラインによって再利用できるように、これら580の未使用バイトをレジスタのunused_bytes_accumulatorに割り当てる。ステップ2307は、図24において定義されたクリップ関数を使用して、unused_bytes_accumulatorを32Kバイトにクリップする。次に、該システムは、ΔL=256バイトステップ2308、およびΔH=368バイトステップ2309を設定する。結局、ステップ2304において次のラインが符号化されるときに、ビデオレート制御は下記を使用することを可能にするであろうmaxLsizeΔL=512256=768バイト、ローパスサブバンドについて:およびmaxHsizeΔH=768368=1136バイト、ハイパスサブバンドについて。このラインのための有効な最大ラインサイズは、先のラインからの未使用バイトの一部を再生使用することによって増大されるので、ビデオレート制御は、このラインについて厳格さの低い量子化設定を選択してよい。これは、より良好な視覚的品質をもたらす。未使用のバイトが2.4よりも大きいCRを備えたラインから再生されて、525Mbps未満の瞬間的帯域幅要件をもたらすので、525Mbpsのスループット制限は経時的に破られない。これら未使用のバイトは、より低いCRで圧縮され得る後続のラインに割り当てられ、525Mbpsよりも大きい瞬間帯域幅をもたらす。しかし、該システムは未使用のバイトを再生使用し、これはラインを許容可能な最大サイズ、即ち、maxLsizemaxHsize=1280バイトよりも小さくするので、平均帯域幅要件は525Mbps未満であるように保証される。1280バイトは、525Mbpsのスループットを保証する1423バイト制限よりも小さいことを想起されたい。実際には、高優先度および低優先度のパケットが送信の前に送信バッファに配置されるので、幾つかのライン上で瞬間的に525Mbspの帯域幅制限を超えることは深刻な問題ではない。パケットが到着する平均レートが525Mpbsを超えないと仮定すれば、十分に大きいバッファは、オーバーフローを伴わずに525Mbpsの一定のレートで排出されてよい。先の説明は、十分に大きい送信バッファが利用可能であれば、瞬間的な大きな帯域幅要件はバッファオーバーフローを生じないことを示している。大きなバッファに関連したコストを低減するために、本発明の一実施形態は以下の技術を使用し、低コストの中程度のサイズのバッファを用いてバッファのオーバーフローを防止する。1設定4はCR=2.4で動作し、これは1132/2.4=472Mbpsのスループットに対応する。従って、再生されるバイトは平均472Mbpsの帯域幅要件を生じるであろうが、瞬間的にはそれらは472Mbpsを越えるかもしれない。しかし、瞬間の帯域幅要件が持続的時間に亘って525Mbpsを超え、バッファのオーバーフローを生じることは全くありそうにない。2ステップ2307は、図24に定義されたクリップ関数を使用して、未使用_バイト_アキュムレータを32Kバイトにクリップする。このレジスタを32Kバイトに飽和させることにより、本発明の実施形態は、未使用バイトを再生できる連続するラインの数に上限を定める。従って、525Mbpsを越える瞬間的な帯域幅要件を備えた連続的なラインの数には上限が定められる。これは、バッファがオーバーフローする可能性を低減する。3ステップ2308および2309は、ΔLおよびΔHをそれぞれ256バイトおよび768バイトにクリップする。この高い方は、最大の圧縮ラインサイズを、maxLsize256maxHsize768=2304に制限し、これは2304876860=849Mbpsの瞬間的帯域幅要件に対応する。瞬間的帯域幅要件は、それが525Mbpsを越えるときは何時でも上限が849Mbpsに定められるので、バッファのオーバーフローを生じる可能性は低い。上記で述べたファームウエアおよびハードウエア法は、圧縮されたパケットもしくはラインのサイズに関するフィードバックに基づいて、視覚的品質の改善をカバーする。しかし、変化するチャンネル条件に反応して、無線通信に先立ってパケットを保持する送信バッファにおけるオーバーフローを防止するために、他のフィードバックを使用することができる。受信機が全てのパケットにアクノリッジすることを要求されるなら、アクノリッジされないパケットは再送信することができる。送信バッファは再送信の間は排出されないので、CRを増加してバッファのオーバーフローを防止するように、再送信の際に設定インデックスを増分することができる。WiMediaMAC明細MultibandOFDMAllianceSpecialInterestGroup2005によるWiMediaMAC099RC1参照は、ビデオ送信が不能化される取決められた時間スロットを可能にする。これらの時間スロットは予め知られているので、該設定インデックスは、このような時間スロットの前、最中および直後に増分されることができる。ここでも再度、送信バッファは不能化された時間スロットの間に排出されないので、この動作はバッファのオーバーフローを防止するであろう。最後に、バッファの充分度が、バッファ容量の65のように予め定められた閾値を超えるときは何時でも、バッファのオーバーフローを防止するために、設定インデックスを増分することができる。再送信、不能化された時間スロットおよびバッファの満杯度に関するフィードバックがないときは、レート制御法は先に記載した動作に戻り、ここでは上記初期CRを動作させる間に過剰圧縮が検出され、設定インデックスが減少されてPSNRを増大させる。本開示の実施形態を詳細に説明してきたが、当業者は、本開示の精神および範囲を逸脱することなく種々の変更、置換および変更をなし得ることを理解すべきである。"