(57)【特許請求の範囲】
【請求項１】
ビデオ情報を表す複合ビデオ信号の一部である色データ信号を色回転させる方法であって、
前記複合ビデオ信号から前記色データ信号を分離する工程と、
前記色データ信号を、低データ速度の直列ビットストリームに圧縮する工程と、
前記直列ビットストリームに対して色回転行列による乗算を実行して、前記圧縮色データ信号を異なる色座標系に変換する工程と、
を備える方法。
【請求項２】
ビデオ情報を表す色データ信号を色回転させる方法であって、
色データ信号が第１の色座標系内にあるように前記色データ信号を圧縮する工程と、
前記圧縮色データ信号を直列ビットストリームに形成する工程と、
前記圧縮色データ信号からの対応する係数の対に対して、色回転行列による直列乗算を実行して、前記圧縮色データ信号を第２の色座標系に変換する工程と、
前記変換された圧縮色データ信号を直列ビットストリームとして出力する工程と、
を備える方法。
【請求項３】
ビデオ情報を表す色データ信号を色回転させる方法であって、
変換後の色データ信号が第１の色座標系内にあるように前記色データ信号を変換する工程と、
前記変換された色データ信号をブロック単位で圧縮して直列ビットストリームを形成する工程と、
前記直列ビットストリームに対して色回転行列による直列乗算を実行して、前記直列ビットストリームを第２の色座標系に変換する工程と、
を備える方法。
【請求項４】
ビデオ信号に対し、前記ビデオ信号の圧縮に統合された色回転を実行するための集積回路であって、
前記ビデオ信号を変換し、前記ビデオ信号の色情報を第１の色座標系内に設定するための変換ユニットと、
前記変換されたビデオ信号を直列ビットストリームに圧縮する圧縮ユニットと、
前記直列ビットストリームに対して色回転行列による直列乗算を実行して、前記圧縮された変換ビデオ信号の前記色情報を第２の色座標系に変換する色回転ユニットと、
を備える集積回路。
【請求項５】
請求項１記載の方法であって、
前記方法の複数の工程要素は１つの集積回路内で生じる、方法。
【請求項６】
請求項１記載の方法であって、
前記分離の工程要素は、
前記複合ビデオ信号をフィルタ処理してサブバンドを形成する工程と、
前記サブバンドを変換して、前記色データ信号を表す少なくとも１つの色差変換ピラミッドを生成する工程と、
を備える、方法。
【請求項７】
請求項１記載の方法であって、
前記乗算実行の工程要素は、並列加算器を使用して、前記直列ビットストリームの対応ブロックの対応要素を色回転行列で乗算する工程を備え、前記乗算は、隣接したブロックとは独立して各ブロックで局所的に生じる、方法。
【請求項８】
請求項１記載の方法であって、
前記圧縮の工程要素は、前記乗算実行の工程要素に先立って行われるとともに、前記圧縮の工程要素は、
前記複合ビデオ信号の対応する複数のブロックを、Ｈａａｒ変換を使用して圧縮する工程と、
前記圧縮された複数のブロックを符号化して、前記直列ビットストリームを形成する工程と、
を備える、方法。
【請求項９】
請求項２記載の方法であって、
前記方法の複数の工程要素は１つの集積回路内で生じる、方法。
【請求項１０】
請求項２記載の方法であって、さらに、
前記色データ信号を変換して、前記色データ信号を表す少なくとも１つの色差変換ピラミッドを生成する工程を備える、方法。
【請求項１１】
請求項２記載の方法であって、
前記対応する係数の対は、前記圧縮色データ信号の対応する複数のブロックから得られるものであり、
前記乗算実行の工程要素は、前記対応する係数の対を、隣接するブロックとは独立して乗算する工程を備える、方法。
【請求項１２】
請求項２記載の方法であって、
前記圧縮の工程要素は、前記乗算実行の工程要素に先立って行われるとともに、前記圧縮の工程要素は、
前記色データ信号の対応する複数のブロックを、Ｈａａｒ変換を使用して圧縮する工程と、
前記圧縮された複数のブロックを符号化して、前記直列ビットストリームを形成する工程と、
を備える、方法。
【請求項１３】
請求項３記載の方法であって、
前記方法の複数の工程要素は１つの集積回路内で生じる、方法。
【請求項１４】
請求項３記載の方法であって、
前記変換の工程要素は、前記色データ信号を表す少なくとも１つの色差変換ピラミッドを生成する工程を備える、方法。
【請求項１５】
請求項３記載の方法であって、
前記乗算実行の工程要素は、並列加算器を使用して、前記直列ビットストリームの対応ブロックの対応要素を色回転行列で乗算する工程を備え、前記乗算は、隣接したブロックとは独立して各ブロックで局所的に行われる、方法。
【請求項１６】
請求項３記載の方法であって、
前記圧縮の工程要素は、前記乗算実行の工程要素に先立って行われるとともに、前記圧縮の工程要素は、
前記色データ信号の対応する複数のブロックを、Ｈａａｒ変換を使用して圧縮する工程と、
前記圧縮された複数のブロックを符号化して、前記直列ビットストリームを形成する工程と、
を備える、方法。
【請求項１７】
請求項４記載の集積回路であって、
前記変換ユニットは、前記第１の色情報を表す少なくとも１つの色差変換ピラミッドを生成する、集積回路。
【請求項１８】
請求項４記載の集積回路であって、さらに、
前記色回転ユニット内に前記直列乗算を実行するための並列加算器を備え、前記並列加算器は、前記直列ビットストリームの対応ブロックの対応要素を前記色回転行列で乗算し、前記乗算は、隣接したブロックとは独立して各ブロックで局所的に行われる、集積回路。
【請求項１９】
請求項４記載の集積回路であって、
前記圧縮ユニットは、
前記変換されたビデオ信号の対応する複数のブロックを合成するためのＨａａｒ変換ユニットと、
前記Ｈａａｒ変換ユニットの結果を符号化して前記直列ビットストリームを形成する符号化器と、
を備える、集積回路。
【請求項２０】
ビデオ情報を表す複合ビデオ信号の一部をなす色データ信号を色回転させるための集積回路であって、
前記複合ビデオ信号から前記色データ信号を分離するユニットと、
前記色データ信号を、低データ速度の直列ビットストリームに圧縮するユニットと、
前記直列ビットストリームに対して色回転行列による乗算を実行して、前記圧縮色データ信号を異なる色座標系に変換するユニットと、
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータの圧縮および伸長に関する。特に、低ビットレートのビデオで高い圧縮率を達成することができる高品質のビデオコーデックの実装に関する。
【背景技術】
【０００２】
画像処理の主要なアプリケーションでは、高い圧縮率を達成できる低コスト、高速、且つ高品質のビデオコーデック（符号化器／復号器）の実装が必要とされている。特に、ビデオカセットレコーダ（ＶＣＲ）、ケーブルテレビ、カメラ、セットトップボックス、およびその他の消費向けデバイスなどの低ビットレートのアプリケーションでは、低コストで高速な実装が望まれている。
【０００３】
高速且つ低コストのコーデックの実装を達成する方法の１つとして、特定の圧縮アルゴリズムが必要とする記憶容量を低減する試みが挙げられる。メモリ（例えばＲＡＭなど）の低減は、集積回路（またはＡＳＩＣ）などのハードウェアに実装される圧縮アルゴリズムで特に必要とされている。例えば、小型のビデオカメラに大量のＲＡＭを配置して、画像圧縮の効率化を図ろうとすると、法外に高コストとなる可能性がある。このため、通常は少量のＲＡＭを使用して特定のコーデックを実装するが、これは、コーデックの非効率化および品質劣化をもたらす要因となる。
【０００４】
この分野は、特にＪＰＥＧやＭＰＥＧなどの符号化において目覚しい進歩を続けているが、これらの技術には依然として欠点があり、少量のメモリで高圧縮率を達成できるより良いコーデックの実装によって解決することができる。例えば、ＪＰＥＧおよびモーションＪＰＥＧによる符号化は、いずれも、画像フレームをブロック単位で圧縮して、独立した個々の圧縮ブロックを生成する。これらのブロックは、互いに独立して扱われることがほとんどである。つまり、ＪＰＥＧによる符号化およびその他の類似の静止画像の符号化は、直前または直後のフレームを参照することなく１度に１フレームづつ圧縮する結果となる。これらの技術は、フレーム間または１フレーム内のブロック間における類似性を充分に活用していないため、圧縮率を最適化することができない。
【０００５】
ＭＰＥＧなど他の方式による符号化では、フレームまたはフィールドの比較にフレーム間またはフィールド間の差分を使用することにより、より高い圧縮率を達成している。しかしながら、フレームを比較するには、少なくとも１つのフレーム全体を一時記憶領域に格納して、その直前または直後のフレームと比較する必要がある。このため、この符号化方式で必要とされるＩ、Ｂ、およびＰフレームを生成するためには、処理が始まる前にフレームを１つ受信して、格納しておくのが通常である。１フレームの画像データ量は、ＲＡＭに格納するには膨大過ぎるため、このようなコーデックをハードウェアに実装すると、追加のメモリに必要なコストおよびサイズが原因で非実用的となる。特に、これらのコーデックを集積回路または類似の装置に実装すると、必要なメモリの量が原因で、とにかく高価過ぎてしまう。
【０００６】
これらの試みは、より高い圧縮率を達成するためになされたものである。例えば以前、カリフォルニア大学バークレイ校およびワシントン大学では、画像データベース（細かい空中写真をクローズアップするためのもの）などの種々のアプリケーションにおいて、フレーム全体に対してＤＣＴ変換ドメインで動作を実行する考えが検証された。
【０００７】
以上からわかるように、ビデオ画像に対する圧縮率の改善を達成すると同時に、必要な記憶領域の使用量を低減することができる、新しい技術が望まれている。特に、集積回路上に実装する際に必要なメモリの使用量を低減できる、新しい技術が望まれている。
【０００８】
ブロック間の境界もまた、ビデオ画像の圧縮に困難を提起する。以下では、ビデオ画像の簡単な背景およびその圧縮にともなう困難を説明する。図１は、画素、走査線、ストライプ、およびブロックを使用した従来技術による画像表示を示したものである。フレーム１２は、ビデオカメラ、テレビ、コンピュータ画面などの任意のソースから生成された静止画像を表す。プログレッシブ走査が使用される画像システムでは、各画像１２が１フレームを形成する。インターレース走査が使用されるシステムでは、各画像１２が１フィールド分の情報を表す。画像１２はまた、使用される走査の方式に依存して、静止画像のその他の分解部分を表しても良い。フレーム１２の情報は、任意の数の画素１４によって表される。そして各画素はデジタル化された情報を表しており、８ビットであることが多いが、任意のビット数で表されても良い。
【０００９】
各走査線１６は、任意の数の画素１４を備えており、これによってフレーム１２内の１水平線分の情報を表している。通常は、８本の走査線がストライプ１８を構成する。情報の１ブロック２０は、１ストライプに相当する高さと、一定数の画素に相当する幅とを有する。例えば、使用される基準に依存して、ブロックは８×８画素でも８×３２画素でも良いし、あるいはその他の任意のサイズでも良い。この方式では、１つの画像が複数のブロックに分割されて、分割されたこれらのブロックが、アプリケーションに依存して伝送、圧縮、処理、あるいは操作される。例えばＮＴＳＣビデオ（インターレース走査を使用したテレビの映像信号方式）では、情報のフィールドが１秒間に６０回現れ、フレーム（２つのフィールドからなる）が１秒間に３０回現われて、情報フレームの連続表示による画像が生成される。プログレッシブ走査を使用したコンピュータ画面では、情報のフレームが１秒間に３０回リフレッシュされて、ユーザに可視なディスプレイが生成される。
【００１０】
図２は、ブロック単位で圧縮された後に伸長された画像５０を示したものである。画像５０は、ブロック５２〜５８と、ブロック間の枠または縁６２〜６８とを備える。画像５０には、ゴーストまたはシャドウ（ブロック化誤差）を有したブロック境界６２〜６８が示されている。種々の従来技術によるブロックごとの圧縮技術では、ブロック間の相互関係が認識されていないため、ブロックの境界６２〜６８が可視となる。ブロックの境界そのものは見えないが、上述したブロック化誤差がブロックの境界で顕在化して、容認しがたい画像となって現われる。
【００１１】
画像をブロック単位で圧縮するのに有用な技術の１つとして、２−６双直交フィルタを使用して、複数画素からなる複数の走査線または複数ブロックからなる複数の行を変換する技術が挙げられる。２−６双直交フィルタは、Ｈａａｒ変換のバリエーションの１つである。２−６双直交フィルタでは、各画素対の加算値および差分値をＨａａｒ変換と同様に生成するが、差分値を修正する（すなわち「リフトする」）ことにより、リフト後の差分値を加算値のストリームとともに生成する。従来の２−６双直交フィルタでは、加算値のストリームが式：ｓi＝ｘ2i＋ｘ2i+1で表される。ここで、ｘは走査線から送られてきた画素のストリームを表す。同様に、差分値のストリームは式：ｄi=ｘ2i−ｘ2i+1で表される。加算値のストリームとともに出力されるリフト後の差分値のストリームは、式：ｗi＝ｄi−ｓi-1／８＋ｓi+1／８で表される。２−６双直交フィルタが有用なのは、リフト後の値「ｗ」を得る式からわかるように、各リフト後の値「ｗ」が、（問題にしている差分に対して）直前および直後の画素対の加算値に依存するためである。しかしながら、ブロック境界間のこの重なりは、ブロックの圧縮を直前および直後のブロックに依存させるため、実装を非常に複雑にしてしまう。例えば、上述した技術を使用してブロックの縁を正しく処理するためには、ブロックを互いに独立に扱ってはならない。あるブロックを記憶領域から取り除いて圧縮するにあたっては、その直後のブロックを持ってくるとともに、処理中のブロックの一部もまた、次のブロックでの使用に備えて記憶領域に残しておかなければならない。この複雑さは、画像圧縮に必要なメモリのサイズを増大させるうえ、圧縮アルゴリズムが複雑化する原因にもなる。
【００１２】
従来の技術では、ブロックを独立して扱おうと試みたのに、混合した結果を生じてしまった。例えば、２−６双直交フィルタを使用すると、ｗ1の値は、算出された最初の加算値（ｓ0）と３番目の加算値（ｓ2）とを使用して算出される。しかしながら、ブロックを独立して扱おうとすると、リフト後の第１の値（ｗ0）を計算するにあたり、その計算に使用できる直前の加算値が存在しないことになる。ブロックの最後でリフト後の最後の値（ｗn-1）を計算する場合も、ブロックを独立して扱おうとすると、リフト後の最後の値の計算に使用できる次の画素の加算値が存在しないため、やはり同様の問題が生じてしまう（すなわち、ブロックを独立して扱うためには、直前または直後のブロックからの情報に依存するべきでない）。
【００１３】
従来の技術で使用される解決策の１つとして、データ値が不明である係数に単にゼロを代入する方法が挙げられる。しかしながら、この方法ではブロック間で画像が不連続となり、その結果図２に示されるようなブロック化誤差を生じる。これらのブロック化誤差は、２−６双直交フィルタにおいて、最初および最後のリフト後の値を計算する際に、幾つかの値の変わりにゼロを代入したことを主因として生じるものである。したがって、各ブロックを独立して処理することによりメモリおよび複雑性を軽減できるだけでなく、ブロック間の境界におけるゴースト、シャドウ、およびその他のブロック化誤差を排除することもできるような、技術および装置が望まれている。
【００１４】
３番目の困難は、カラーキャリヤに関するビデオ信号の処理に関連して生じる。ビデオ信号内の色情報の色回転を行うには、集約的な計算が必要とされる。色回転は、ある座標系（すなわち色空間）の色信号を別の座標系に変換する際に、しばしば必要とされる。よく使用される座標系として、ＲＧＢ（テレビ画面で使用される）やＹＩＱ（ＮＴＳＣテレビで使用される）、ＹＵＶ系（コンポーネントビデオやＳビデオで使用される）が挙げられる。例えば（ドロー系グラフィックツールで多く見られるような）ＹＵＶ系の画像の場合は、ＲＧＢ系に変換してテレビ画面上に表示するために、複雑な行列の乗算を実行しなければならない。このような行列の乗算には、集約的な計算と大型の装置が必要である。例えば、残りの圧縮アルゴリズム全部よりも大量の計算を要する色回転もあり、このような場合、色回転を実行するためだけに使用される半導体デバイスを別途設けることが多い。このように、従来の色回転技術は低速且つ高コストである。
【００１５】
図１９および２０は、従来の色回転技術の一例を示したものである。図１９には、フレーム１２の色情報Ｙおよび色情報Ｕを表すフレーム部分１２ａおよび１２ｂが示されている。この例のフレーム１２は、コンポーネントビデオで頻用されるＹＵＶ色座標で表されている（Ｙすなわち輝度情報は図示せず）。画素値ａ（Ｕ）７５２およびａ（Ｖ）７５４は、フレーム１２ａおよび１２ｂの対応位置における画素をそれぞれ表している。
【００１６】
図２０は、フレーム１２の情報を異なる色座標系に変換するための、従来の色回転技術７６０を示したものである。フレーム部分１２ａおよび１２ｂから得られる対応する各対の画素値７６４（２つの入力ベクトル）が、回転行列Ｒ ７６２によって乗算されて、新しい座標系の値７６６を生成する。新しい値７６６は、値７６４と同じ色を表すが、異なる座標系を使用している。回転行列Ｒが有する値は、ある座標系から別の座標系に変換するための周知の値であり、ＹＩＱまたはＹＵＶへの変換では２×２行列が使用される。ＲＧＢへの変換では３×３の回転行列（３次元の回転）が必要である。このように、色回転は、フレームの各要素（各画素）ごとに２回または３回の乗算を必要とする。色回転が低速で高コストになるのは、このように膨大な回数の乗算が原因である。また、画素の係数がかなり大きいために、計算がさらに倍増する。したがって、従来のような処理能力やデバイスサイズを必要としなくても、信号の色回転を実行できることが望ましい。
【００１７】
従来技術にともなう４番目の困難は、コンポジットビデオやＳビデオの信号、つまり色および／または輝度が複合した信号の圧縮に関連して生じる。早期のテレビでは、白黒ビデオ信号の周波数スペクトルに、疎な領域または「穴」が多数存在することが発見された。この発見に基づいて、約３．６ＭＨｚのカラーキャリヤを白黒の（輝度）信号に加え、白黒信号の周波数スペクトルに見られるこれらの疎な領域を埋めることが考え出された。このため、カラーキャリヤに白黒の信号情報を加えることにより、コンポジットビデオの信号を生成することができ、大部分の領域で、色および白黒の情報が互いに干渉し合わずに維持される。図３は、このようなコンポジットビデオ信号８２および白黒信号８８を示したものである。カラーキャリア信号は、通常、互いに９０度ずれた２つの位相８４および８６に（直交変調を使用して）分離することによって変調される。各位相は、色信号の１色をそれぞれ搬送する。すると、特定の色の振幅をそれぞれ示す各位相の振幅が変調される。信号８４，８６，８８を合成してコンポジット信号８２が生成される。既知の技術を使用することにより、色キャリヤの各位相から得られる２つの色信号の合成を白黒（輝度）信号と合成させて、第３の色を提供することができる。また、人間の眼が高周波の色を検知できないことから、カラーキャリヤは帯域を制限されることが多く、これはその周波数が大きく変化しないことを意味する。
【００１８】
また、カラーキャリヤ周波数の約４倍、多くは約１４．３ＭＨｚのサンプリング率で、コンポジットビデオ信号をサンプリングすることがよくなされる。信号８２には、４倍のサンプリング率でカラーキャリヤ信号をサンプリングする際の、サンプル点９０〜９６が示されている。このようなサンプリング率の使用によって、キャリヤおよびその２つの位相をともに検知および測定できるため、カラーキャリヤの２つの位相を区別することが可能となる。
【００１９】
従来技術では、このようなコンポジットビデオ信号８２を直接圧縮することは難しい。ほとんどの従来技術では、圧縮に先立って色信号を白黒信号から分離させる。このため、コンポジット信号の圧縮が開始できる前に、信号８４，８６，８８をコンポジット信号８２から分離させなければならない。この色の分離は、高コストで且つ時間がかかる。３つの異なるアルゴリズムが通常的に必要なだけでなく、追加のハードウェアも必要とされる。ハードウェアでの圧縮は、コンポジット信号が原因で、より複雑且つ高コストとなることが多い。従来技術の１つは、圧縮を実行するチップの外側にある受動コンポーネントを使用して、アナログで色信号を分離するものである。すると、３つの異なる信号が個々に圧縮チップに供給されて、複雑度が増大してしまう。あるいは、色信号の分離をチップ上で行うこともできるが、これには非常に大きな乗算器が必要であり、チップサイズを巨大化させる原因となる。
【００２０】
したがって、信号を事前に分離したり追加のハードウェアを設けたりしなくても、コンポジットビデオ信号の圧縮を直接扱うことができる技術が望まれている。特に、チップ外で分離を行ったり大きな乗算器を設けたりせずに、集積回路上に実装できる技術が望まれている。このような技術は、Ｓビデオやコンポーネントビデオにとっても望ましい。一般に、圧縮中に分離が必要な白黒情報および色情報を含んだあらゆる混合ビデオ信号が、このような技術の恩恵を受けることができる。
【００２１】
改良技術の恩恵を受け得る従来技術の第５番目の分野は、異なるタイプのビデオの圧縮を扱えるという点にある。主要なビデオとして、コンポジットビデオ、Ｓビデオ、およびコンポーネントビデオの３タイプが挙げられる。コンポジットビデオは、カラーキャリヤとともに白黒信号を備えたシングル信号である。ここでは、２つの色差信号がカラーキャリア上に変調される。Ｓビデオは、コンポジットビデオとコンポーネントビデオとの中間である。Ｓビデオは、白黒情報に対応するＹ信号と、１つの色差信号との２つの信号を有する。この１つの色差信号は、カラーキャリヤと、カラーキャリア上に変調されるＵおよびＶの色信号とからなる。コンポーネントビデオは、白黒情報に対応するＹ信号と、第１の色差情報に対応するＵ信号と、第２の色差情報に対応するＶ信号との、３つの個別の信号を有する。従来技術を使用して集積回路上でビデオ信号の圧縮を実行すると、３タイプのビデオ信号から１信号を識別することと、その信号に前処理を施すこととが、ともにチップの外で実行される。このように、従来技術では、３タイプのビデオのうち任意の１つをチップ上で識別および処理できるような、シングルチップ上の効果的な圧縮アルゴリズムがいまだに考え出されていない。したがって、３タイプのビデオ信号の処理および各信号の効率的な圧縮を集積回路自体で行うことができる、技術および装置が望まれている。
【発明の概要】
【００２２】
上述したおよび本発明に従った目的を達成するために、上述した従来技術にともなう困難を解決できるような、ビデオ画像を圧縮するための装置および技術を開示する。
【００２３】
本発明の第１の実施形態は、画像の完全なシーケンス全体を圧縮する最中に、画像を部分的に一時圧縮することにより、必要な一時記憶容量の低減を図るものである。特に、この実施形態では、フィールド間およびフレーム間変換をベースとしたビデオ圧縮に必要な一時記憶容量を１０分の１に減らすことができる。この実施形態の特定の１実装形態では、情報を最終的に圧縮する前に、先ず、受信した画像データをブロック単位で処理および圧縮して一時記憶部内に格納し、さらに、後続のブロックとの比較を行うために、これらのデータを伸長する。ブロック単位で一時的に圧縮し、これらのブロックを（例えばフレーム間で）一時的に圧縮することによって、必要な一時記憶容量を低減できるだけでなく、画像の関連ブロック間の関係を上手く利用して、情報が最終的に伸長された際に、より良い画像を得ることも可能となる。また、一時的な圧縮によって圧縮率も向上する。この技術は、集積回路上に実装されたコーデックに対して特に有用であり、チップ上で必要とされる一時記憶容量を低減し、チップの小型化および高速化を図ることができる。このような強力なコーデックを、比較的小型且つ低コストな集積回路上に実装することにより、カメラやその他の消費者向けデバイスなどの小型デバイスにおいて、効率的且つ高品質なビデオ圧縮を提供することができる。
【００２４】
要するに、この第１の実施形態は、Ｈａａｒ変換を使用して、第１の画像内の１ブロックを次の画像内の対応するブロックと比較する前に、ブロック単位でデータを圧縮するものである。そして、得られたブロックを符号化して、さらに圧縮した形で出力することができる。従来技術では、対応するブロックが入力されるのを待機する間、ブロックを一時的に圧縮して格納することはない。例えば、ＪＰＥＧやモーションＪＰＥＤによる圧縮では、ビデオ画像をブロック単位で処理し、そのブロックを圧縮された形で出力するのが一般的であり、圧縮されたブロックを一時的に格納し、前の画像のブロックを続く画像の対応ブロックと比較するという概念が存在しない。ＭＰＥＧで使用されるその他の圧縮アルゴリズムでは、あるフレームのブロックを続くフレームの対応ブロックと比較するために、ブロックを一時的に格納する。しかしながら、これらのブロックを集積回路（またはその他のデバイス）上に格納するには膨大な量のメモリが必要であるため、デバイスが不必要に大型化して、対応するブロックの比較を実行するのに障害を生じる。好都合なことに、本発明では、次の画像の対応ブロックとの比較のために、ブロックを圧縮した形で格納する。このため、これら圧縮ブロックの格納に必要なデバイス上のメモリが、遥かに少なくてすむ。また、これら圧縮ブロックをメモリと処理ユニットの間で転送するのに必要なメモリのバンド幅も小さくてすむ。
【００２５】
特定の１実施形態では、より圧縮された形で一時的に格納する前に、ブロックを変換、量子化、そして符号化する。そして、次のフレームから対応ブロックを受信して、その対応ブロックを同様に圧縮および格納する。次に、両方のブロックを変換ドメインまで復号する。ここで好都合なことに、格納されたブロックに対し、復号後の逆変換を実行する必要がない。これら２つのブロックの比較は、変換ドメインで行われて良い。２つのブロックを比較した後は、その結果を符号化し、さらに大幅に圧縮された直列ビットストリームの形で出力する。
【００２６】
この実施形態は、ハードウェアまたはソフトウェアにおいて、フレーム間またはフィールド間のビデオ圧縮のために必要なリソースを、大幅に低減するものである。本発明は、フレーム間またはフィールド間の有利な比較を可能にし、一方では完全なフレームまたはフィールドを一時的に格納することを不要にする。特に、本発明によって達成される利点は次の通りである。すなわち、必要とされる一時記憶領域が少なくてすむ（ＡＳＩＣ上のＲＡＭが少なくてすむなど）、一時記憶領域間で要求されるメモリのバンド幅が小さい（デバイス上のピンが少ない、且つ／またはスループットが速い）、フレーム間またはフィールド間で必要な計算が軽減される、ＪＰＥＧ、ＭＰＥＧ、Ｈ．２６３等や、ウェーブレット圧縮方式などの多くの圧縮方式に有用である、あらゆる変換に使用して良い、プログレッシブ走査やインターレース走査などの種々の基準に使用して良い、などである。また、ブロックの符号化を、多種多様な技術を使用して行うこともできる。
【００２７】
従来技術の圧縮デバイスに勝るもう１つの重要な利点は、ＭＰＥＧにおける動き補償のような集中的な動作が実行されないことである。アナログデバイス社から入手可能なＡＤＶ６０１のように、乗算器を必要とする従来技術のデバイスと異なり、本発明ではシフトおよび加算を計算に使用する。その結果、より高速で且つ必要空間の小さい技術を得ることができる。また、集中的な動き補償を実行する従来のＭＰＥＧ圧縮デバイスは、対応する伸長デバイスに比べてかなり複雑且つ（金銭的に）高価である。これに対し、本発明による圧縮および伸長の複雑度は同程度であり、本発明に従った圧縮デバイスは、ＭＰＥＧによる圧縮デバイスより複雑度が低く且つ安価である。
【００２８】
上述したように、重要な利点の１つとして、予測元として使用される前のフレーム（またはフィールドまたはブロック）を、処理全体を通してほぼ完全に圧縮された形で維持することができ、ＲＡＭの必要量を大幅に低減できることが挙げられる。これは、ＡＳＩＣなど、記憶領域をチップ総面積の２分の１から３分の２にできる集積回路上に実装する場合に特に有利である。例えばフィールド間の比較では、１フィールドあたりに必要な圧縮フィールドバッファはわずか約２０キロバイトである。この方法では、フレームバッファを大幅に低減するか、または完全に排除することができる。圧縮データと、そのデータ上で実行される差分検出とから、画像を再構成することができる。復号のためのハードウェアが比較的安価なことから、４または５フレーム分のデータを一度に復号することが可能である。他の１実施形態では、差分検出を必要としない。ＸＯＲ機能は、繰り上げ（キャリ）や繰り下げ（ボロー）を一切行うことなく全く正常に機能する。差分検出（またはＸＯＲ）フィールドから得られる符号の大部分はゼロである。そして、ゼロツリーを使用し、この追加の機能をキャッシュメモリに入れることができる。ＸＯＲは可逆計算であるため、全く予測されていないフレーム間に戻るのは、エラー回復の編集を理由とする場合のみである。
【００２９】
イントラコーディングに起因するレートストライプを持続させるだけの帯域幅が存在する場合、圧縮中の遅延は、ちょうど１ストライプ分のデータであるのが普通である。低圧縮率が望まれている場合は、情報を複数のフィールドに渡って分散させ、そのフィールド数の２倍分（符号化と復号を含む）を遅延として生じさせる。フレーム間には、レートスパイクが存在するのが普通である。しかしながら、予測ランがかなり長いと、少しのフィールドまたはフレームだけで容易に画像を構成することができる。予測されたフィールド上では、高次のウェーブレットはゼロによって予測されるため、「修正部分」が実際のウェーブレットとなる。これによって、遅延が２〜３フレーム分で、１カットの過渡時間が２フレーム分の、非常に低い圧縮率が達成される。
【００３０】
もう１つの利点は、圧縮および伸長を経た静止画像（休止中の画像など）が、実行中の画像と同じく高品質であることにある。ＭＰＥＧのように動き補償を実行する従来技術は、多数のフレームに渡って動作するため、実行中の画像は高品質であるが、対する静止画像にはノイズが多数生じる可能性がある。これに対して本発明は、１度に２つまたはそれ以上のフレームを使用して（フィールド間またはフレーム間の比較によって）圧縮を実行するため、圧縮を経た静止画像の品質を大幅に向上させることができる。また、多数のフレーム間で実行される動き補償および予測に依存せず、このように局所的な圧縮を行うということは、本発明による技術または同技術を実装する集積回路が必要とする一時記憶領域が、より少なくてすむことを意味する。
【００３１】
本発明の第２の実施形態では、使用する計算が大幅に少ない圧縮に、色回転方法を組み合わせる。色回転は、生の信号自体に対して実行するよりも、ビデオ信号の変換後に色差変換ピラミッドに対して実行する方が好都合である。色回転の実行に必要な計算は、さらに少なくてすむ。特定の１実施形態では、色回転が実行されるのは、信号の変換と圧縮とがともに終了した後である。色回転は、大きい係数を使用した並列乗算で実行するよりも、直列乗算（シフトと加算）で実行して処理の効率化を図る方が好ましい。
【００３２】
色回転は、カラーキャリヤのドリフトに対しても有用である。カラーキャリヤは、水平な走査線に対してゆっくりとドリフトするのが通常である。カラーキャリヤは、同期から半周期（１８０度）ずれると２つの直交する色象限を反転させるため、結果として色ネガ画像が生成される。従来技術でも、やはり色回転を行うことによってこのドリフトを固定させる。回転によるキャリヤドリフトの修正も、この実施形態で見られる必要な計算が少ないという特徴の恩恵を受けることができる。
【００３３】
本発明の第３の実施形態では、色情報および白黒情報をともに含んだコンポジットビデオ信号を、色情報と白黒情報を分離させる必要なしに直接圧縮することができる。色情報の分離のためにチップ外に追加のアナログデバイスを設けたり、あるいは色情報の分離のためにチップ上に大型の乗算器を設けたりしなくても、コンポジットビデオ信号上で、効果的な圧縮アルゴリズムを直接使用することができる。特に、多数のパスを使用することにより、コンポジットビデオ信号の直接圧縮が可能となる。カラーキャリヤ情報を分離するために、多数のパスにおいて、サブバンド分解を使用したカラーキャリヤの復調を実行する。サブバンド分解は、コンポジットビデオ信号からの輝度および色差情報の分離も行う。この実施形態は、色情報および／または白黒情報を複合させた任意の複合ビデオ信号（Ｓビデオなど）に適用されることが可能である。
【００３４】
本発明の第４の実施形態では、情報のブロックを独立して扱うことにより、圧縮の複雑度を大幅に軽減するとともに、必要なハードウェアの量をも低減する。ブロックは、ストライプ記憶部から独立して読み出された後、他のフレームまたはフィールドの対応ブロックと比較される前に、変換され、量子化され、そして符号化される。好都合なことに、このようにブロックを独立に扱うことによって、伸長後の画像の質が影響されることはない。ゴーストやシャドウなどのブロック化誤差は、大幅に軽減される。この実施形態は、１フィールド中の近隣ブロック間の相関関係や、連続したフィールド内の対応するブロック間の相関関係を上手く利用するものである。
【００３５】
この実施形態の特定の１実装形態では、ブロックの端点を通る二次の近似曲線を引き、この近似曲線が、ブロックの境界を超えて連続すると仮定する。連続したパス内でブロック情報をフィルタ操作するのに２−６双直交フィルタを使用する場合は、従来技術でなされるように単にゼロを係数にあてはめるのではなく、初期および最終のリフト後の差分（ｗ0およびｗn-1）に特定の数値を提供することにより、２−６フィルタを（「境界」フィルタに）改良する。ブロックの境界におけるリフト後の差分に特定の数値を割り当てることにより、各ブロックを独立して扱うことが可能となる一方で、伸長後の画像に普通に見られるブロック化誤差を軽減することも可能となる。改良２−６フィルタに関するさらに特定の実装形態では、初期のリフト後の差分ｗ0に係数−３／８、１／２、および−１／８を当てはめると上手くいくことがわかった。つまり、ｗ0＝ｄ0−３／８ｓ0＋１／２ｓ1−１／８ｓ2である。また、最終のリフト後の差分ｗn-1には、係数１／８、−１／２、および３／８を当てはめると上手くいくことがわかった。つまり、ｗn-1＝ｄn-1＋１／８ｓn-3−１／２ｓn-2＋３／８ｓn-1である。他のタイプのウェーブレットフィルタに関しては、他の特定の係数によって望ましい結果を得られることがわかった。
【００３６】
この第４の実施形態による境界フィルタは、ビデオデータの変換に使用されるあらゆるパスに使用することができ、なかでもより早いパスに対して特に有用である。二次式的に十分滑らかな画像では、リフト後の差分（ｗ値）の多くがゼロであり、適切なデータは加算値に帰する。このため、データが加算値に詰め込まれて、必要とされる一時記憶容量が減り、さらに、符号化の際に多くのゼロ値が減らされて、より良い圧縮結果を得ることができる。
【００３７】
本発明は、３つの主要タイプのビデオ、すなわちコンポジットビデオ、Ｓビデオ、コンポーネントビデオ、をそれぞれに取り扱うことができる。先ず、本発明を実装しているデバイスのユーザによってビデオ信号のタイプが識別され、そのタイプの信号を正しく処理するためにモードの設定がなされる。好都合なことに、水平フィルタからの出力は、使用されるビデオ信号のタイプに関わらず同一である。ビデオ信号の識別および処理は、全て、１つの集積回路、および識別用の追加のチップ外ハードウェアにおいて実行することができ、異なるタイプのビデオ信号に対する前処理は不要である。
【００３８】
本発明は、コンピュータ画面、テレビ、カメラ、携帯端末などでの使用を意図した種々の画像に対して有用であり、ＮＴＳＣビデオやＰＡＬおよびＳＥＣＡＭ方式のテレビなど、種々様々な基準に適用することが可能である。
【００３９】
本発明の実施形態は、圧縮画像の伝送用の帯域幅が低減された、低ビットレートのビデオアプリケーション（消費者向け用のものなど）に対して特に好都合である。例えば、カラー画像は２４ビット／画素で表されるのが通常であり、これは約２６４メガビット／秒のビットレートに相当する。本発明は、カラー画像を、高品質を達成しながら４分の１ビット／画素以下に圧縮することができる。４分の１ビット／画素への圧縮は約３メガビット／秒に相当する。このため、低ビットレートという特性は、圧縮後の画像データがオーディオやテキストなどの他のデータと帯域を共有する必要があるような、帯域が削減されたアプリケーションと、より容易に両立することができる。
【図面の簡単な説明】
【００４０】
【図１】画素と、走査線と、ストライプと、ブロックとを使用した、従来技術による画像表示を示した図である。
【図２】ブロック単位の圧縮を経て伸長・表示された、従来技術による画像を示した図である。
【図３】複合されてコンポジットビデオ信号を形成する、従来技術における輝度および色差信号を示した図である。
【図４】ビデオ画像を圧縮するためのシステムを、本発明の１実施形態に従って示した図である。
【図５Ａ】画像圧縮の１実施形態を説明したフローチャートである。
【図５Ｂ】画像圧縮の１実施形態を説明したフローチャートである。
【図５Ｃ】画像圧縮の１実施形態を説明したフローチャートである。
【図６】高レベルから見たパス１の水平フィルタを象徴的に示した図である。
【図７】走査線に適用される水平フィルタの第１ステージを示した図である。
【図８】第１ステージを経た後の、図７の走査線の一例を示した図である。
【図９】走査線に適用される水平フィルタの第１および第２ステージを示した図である。
【図１０】水平フィルタの第１および第２ステージを経た後の、図９の走査線の一例を示した図である。
【図１１Ａ】水平フィルタの第１ステージの、特定の１実施形態を示した図である。
【図１１Ｂ】図１１Ａの複合ユニットで使用される係数を、本発明の特定の１実施形態に従って示した図である。
【図１２】水平フィルタによって一定数の走査線を処理された後の、ストライプ記憶部内の１ストライプを示した図である。
【図１３】パス２の垂直フィルタ処理を経た後のブロックを示した図である。
【図１４】パス３の水平フィルタ処理を経た後のブロックを示した図である。
【図１５】パス４の垂直フィルタ処理を経た後のブロックを示した図である。
【図１６】パス５の水平フィルタ処理を経た後のブロックを示した図である。
【図１７】Ｈａａｒ変換の背景にある概念を示した図である。
【図１８】フィールドブロック記憶部から受信された２つの対応するブロックに対し、改良Ｈａａｒ変換を実行するための、フィールド間Ｈａａｒユニットを示した図である。
【図１９】あるフレームのＹ色情報およびＵ色情報を表すフレーム部分を示した図である。
【図２０】フレームの色情報を異なる色座標系に変換するための、従来の色回転技術を示した図である。
【図２１】色回転を実行するための色回転ユニットを、本発明の特定の１実施形態と関連させて示した図である。
【図２２】図５Ａ〜５Ｃに示された圧縮の特定の実施形態に対応して、圧縮ビットストリームの伸長を示したフローチャートである。
【図２３】本発明の１実施形態を実装するのに適した、代表的なコンピュータシステムを示したブロック図である。
【発明を実施するための形態】
【００４１】
本発明の種々の実施形態は、種々様々な形態をとって、単独でまたは組み合わされて実装されるのに適している。例えば、本発明は、Ｃ＋＋またはその他任意の適切なコンピュータ言語などのソフトウェアへの実装に適している。以下の説明は、最終的なハードウェアでの実装（例えば、可能な場合には乗算器を避ける）に対して最適化されているが、そのほかにソフトウェアへの実装も可能である。
【００４２】
本発明は、スタンダードＩＣ内、ＡＳＩＣなどのカスタムＩＣ内、またはＦＰＧＡ、ＰＡＬ、もしくはＰＬＡなどのプログラマブルロジックデバイス内のハードウェアに実装されても良い。本発明の特定の１実装形態では、ＶＨＤＬコードの開発にＸｙｌｉｎｘ ＦＰＧＡを使用する。このＶＨＤＬコード（より厳密にはマクロ）は、他のＶＨＤＬコードと合成されて、ビデオカメラなどの製品に設置するのに有用なカスタムＩＣを生成することができる。このように、カスタムＩＣ上に実装することによって、比較的小面積のシリコン上で効果的な圧縮を行うことが可能になる。ここで、本発明が、その他種々様々なハードウェア記述言語に組み込まれ得ることを、理解しておく必要がある。
【００４３】
さらに、以下の実施形態は、コンポジットビデオ信号との関連のもとで説明されているが、本発明の特徴は、Ｓビデオなどの他の複合信号や、コンポーネントビデオなどの独立信号にも適用することが可能である。また、本明細書ではビデオという用語を頻用しているが、本発明が、ビデオ画像と同様に静止画像にも適用可能であり、より高次元の情報ストリームにも適用可能であることを、理解しておく必要がある。本明細書で使用されるビデオという用語は、従来のビデオ情報だけでなく、他タイプの画像や情報にも適用される。
【００４４】
高レベルのブロック図：
図４は、ビデオ画像を圧縮するためのシステム１００を、本発明の１実施形態に従って示した図である。システム１００の各パーツがどのように作動するかの詳細は、図５Ａ〜５Ｃのフローチャートに示されている。以下の説明では、例示を目的としてビデオ画像の圧縮を取り上げるが、本発明が、情報を含んだ種々の画像の圧縮に適しており、ビデオ画像に限定されないことを理解しておく必要がある。また、説明を簡単にするため、図４および以下の図面では、各画像またはフレームが２つのフィールドを含む、インターレース走査で表された画像の圧縮を論じることにする。しかしながら、当業者には理解できるように、本発明は、プログレッシブ走査（１フィールドが１フレームを形成する）や、あるいは１フレームが多数フィールドで表される他の規格に対しても、等しく適用が可能である。さらに、以下の説明では画素、走査線、ストライプ、およびブロックの走査を論じるが、本発明の範囲内で、情報階層を表す他の任意の呼称を使用し得ることを、理解しておく必要がある。
【００４５】
受信されたフレームは、一般に、各ブロックで変換を実行してそれを符号化することにより、ブロック単位で順次圧縮されていく。符号化されたブロックは、（さらに圧縮された形で）一時記憶部内に配置される。次のフレームの対応するブロックが比較のために受信されると、そのブロックに対して変換および符号化が実行される。これら２つのブロックは、比較のために逆変換を実行される必要はなく、ともに変換ドメインまで復号されて変換ドメインで比較される。変換ドメインでブロックを比較することにより、高コストな逆変換のプロセスが回避される。また、復号後のブロックの多くがゼロ値を有するため、ブロックの比較に必要な計算が減るという結果も得られる。この符号化−格納−復号−比較のプロセスには、多くの利点がともなう。
【００４６】
システム１００には、本発明を使用して圧縮する男性の画像１０２が示されている。画像１０２は白黒でもカラーでも良く、アナログ信号またはデジタル信号の形でシステム１００に受信される。画像１０２は、アナログ信号として受信された後にデジタル化されて、さらに複数画素の情報として表示されることが好ましい。画像１０２を表わすデジタル化情報は、１度に走査線１本の割合で水平フィルタ（パス１）１０６に受信される。他のタイプのビデオに関しては、１度に１ブロックの割合または１度にその他の１単位の割合で、情報を受信することができると考えられる。水平フィルタ１０６は、各走査線に対してフィルタシーケンスを適用し、その結果をストライプ記憶部１１０に引き渡す。走査線は、連続的にフィルタ１０６に受信されて処理されて、そしてストライプ記憶部１１０に送信される。
【００４７】
ストライプ記憶部１１０は、約２ストライプ分の情報を保持する２つのストライプバッファからなる。ビデオ情報が圧縮のためにシステム１００に受信されると、ストライプ記憶部１１０は、画像１０２からの、先ずは偶数のストライプ、次いで奇数のストライプで連続的に満たされる。複数の走査線が、偶数ストライプバッファが一杯になるまでこの偶数ストライプバッファに連続的に格納される。そして、続いて受信される複数の走査線が、奇数ストライプバッファに連続的に格納される。先に満たされた偶数ストライプバッファは、奇数ストライプバッファが満たされている間に空にされる。したがって、奇数ストライプバッファが満たされた時点で、先に満たされた偶数ストライプバッファは空になり、モジュール１１４に送られる。このため、偶数バッファは、奇数バッファが満たされた時には、フィルタ１０６から次の組の走査線を受信する用意が整っている。このように、ストライプバッファは、画像が入力されている間、情報の受信および送信を交互に繰り返す。
【００４８】
集積回路上に実装する場合は、記憶部１１０，１１８，１２６をＤＲＡＭに実装することが好ましい。ＤＲＡＭは、ＳＲＡＭと比べて遥かに小型であるが、リフレッシュ回路を必要とするのが通常である。しかしながら、ストライプおよびブロックが、それぞれの記憶領域で非常に高速で入出力されるため、リフレッシュ回路は不要である。したがって、追加のリフレッシュ回路が不要であり、いっそう小型のＤＲＡＭを使用することができる。
【００４９】
ストライプ記憶部１１０が、情報を放出する前にストライプバッファを満たすため、情報は、ストライプ記憶部１１０からブロック単位で読み出されてモジュール１１４に送られる。つまり、ストライプ記憶部１１０が最初の２つの情報ストライプで満たされると、その記憶部１１０からブロックが連続的に読み出され、圧縮のために圧縮モジュール１１４に送られる。モジュール１１４は、各ブロックを変換し量子化して符号化し、結果として得られた圧縮ブロックを、フィールドブロック記憶部１１８に送ることが好ましい。したがって、圧縮ブロックのストリームが、モジュール１１４からフィールドブロック記憶部１１８へと連続的に供給される。好都合なことに、これらのブロックは、Ｈａａｒ変換部１２２で互いに比較される前に、すでに圧縮されて一時的に格納されている。この時点におけるブロックの圧縮は、最終的な出力で生成される圧縮ほどではないが、これらのブロックを一時的に圧縮することにより、フィールドブロック記憶部１１８およびフレームブロック記憶部１２６のサイズを大幅に減らすことが可能となる。
【００５０】
モジュール１１４で実行される圧縮は、任意の適切な静止画像圧縮技術で良い。圧縮は、画像全体、ブロック、ストライプ、または画像上の任意の適切な部分に対して実行され得る。モジュール１１４は、各ブロックの変換、量子化、符号化を、以下で説明するように実行することが好ましい。もし使用されるならば、変換は、ウェーブレット変換やＤＣＴなどの線形変換を含む、任意の適切な変換であって良い。また、非線形変換や、ベクトル量子化などの他の技術を使用しても良い。本発明の好ましい１実施形態では、各ブロックの変換が、パス２、パス３、パス４、パス５と呼ばれる種々のパスを使用して実行される。これらのパスに関しては、図５Ａ〜５Ｃで後ほど詳述するものとする。
【００５１】
フィールドブロック記憶部１１８は、１フィールド分の圧縮ブロックを僅かに超える量を格納するのに充分な記憶領域を含んでいる。好都合なことに、記憶部１１８は、１フィールド分の伸長ブロックを格納する必要がある場合の約６分の１ですむ。圧縮は、１画素あたり約１．５ビットが格納される程度である。フィールドを表わす圧縮ブロックのストリームが、モジュール１１４から連続的に送られてくる。記憶部１１８に１フィールド分のブロックが格納されて、次のフィールドが着信し始めると、ブロックは、１度に２ブロックづつ取り除かれて、フィールド間Ｈａａｒユニット１２２に送信される。つまり、次のフィールドからのブロックが記憶部１１８に着信し始めると、その２つのフィールドから１対の対応ブロックが取り除かれて、ユニット１２２に送信される。特定の１実施形態では、ブロックが、左から右、上から下への走査順で１対ごとに取り除かれる。例えば、１フィールド分のブロックが格納されて、次のフィールドの左上端のブロックが記憶部１１８に着信すると、そのブロックと、先に格納されたフィールドの左上端の対応ブロックとが対で取り除かれて、さらなるブロックを着信させるスペースが形成される。この方法では、１フレームを形成する２つのフィールドからの対応ブロックが、比較のために、大幅に圧縮された形でユニット１２２に送信される。
【００５２】
記憶領域の割り当てや、受信および送信ブロックの処理を容易にするために、記憶部１１８を大きくすることも当然可能であるが、必要な記憶サイズの増大による損害がともなう。ここで、ブロックを対で取り除く順番が、必ずしも走査順である必要はなく、任意の順番で良いことを、理解しておく必要がある。
【００５３】
フィールド間Ｈａａｒユニット１２２は、１フレームを形成する２つのフィールドから、対応する１対の圧縮ブロックを受信し、僅かに改良されたＨａａｒ変換を使用して比較を実行する。好都合なことに、２つのブロックは、Ｈａａｒユニット１２２での比較のために、完全に復号されて逆変換されている必要はない。図１８で後ほど詳述するように、各ブロックは部分的に復号されており、この復号は、フィールド間のＨａａｒ変換と統合されている。ブロックの復号は、フィールド間で比較を実行するのに必要な程度までなされれば良い。Ｈａａｒ変換を変換ドメインで実行することができるため、変換ベースの比較を実行した場合に、ブロックに行った変換を元に戻す必要がない。一般に、線形変換を元に戻す必要はないが、非線形変換は変換を元に戻す必要がある。統合された復号およびＨａａｒ変換が実行されると、その結果が再び符合化されて、フレームブロック記憶部１２６に伝送される。この時点で、連続したフィールドから得られた２つの圧縮ブロックを比較した結果は、それぞれのフィールドから得られた２つの対応ブロックを表すさらに圧縮された別のブロックである。つまり、この圧縮ブロックは、２つのフィールドで表されていた元のフレームの１ブロックから得られる情報を表している。
【００５４】
フレームブロック記憶部１２６は、１フレーム分を僅かに超える量の複数の圧縮ブロックを保持する。１フレーム分の圧縮ブロックが記憶部１２６に格納されて、次に続くフレームの複数の圧縮ブロックが記憶部１２６に着信し始めると、これら２つのフレームの対応ブロックが記憶部１２６から取り除かれて、フレーム間Ｈａａｒユニット１３０に送信される。連続したフレームを表す複数の圧縮ブロックが連続的に記憶部１２６に着信し、フィールドブロック記憶部１１８で実行されるのとほぼ同じように、対でシャッフルされて取り除かれる。
【００５５】
フレーム間Ｈａａｒユニット１３０は、２つの連続したフレームの１対の対応ブロックを記憶部１２６から受信し、これら２つのブロックに対して改良Ｈａａｒ変換を実行する。Ｈａａｒユニット１３０は、ユニット１２２と同様に、Ｈａａｒ変換に統合された形で各ブロックを部分的に復号し、得られたブロックを出力のために符号化する。好都合なことに、ユニット１３０は、ブロックに対して逆変換を実行する必要がなく、ブロックを、部分的または完全な復号後に変換ドメインで処理することができる。ユニット１３０からの結果は、大幅に圧縮された、連続的な複数の情報ブロックを表す直列ビットストリームである。各圧縮ブロックは、４つのフィールドに跨って分散した１つの情報ブロックを表しており、つまり、各圧縮ブロックは２フレーム分の情報を表している。
【００５６】
Ｈａａｒユニット１３０に続くのは、ある色座標系から別の色座標系への色回転を実行する色回転ユニット１３２である。ユニット１３２に関しては、図２１で後ほど詳述するものとする。結果として生じる、直列ビットストリームの形態をとった圧縮ビデオ出力１３４は、ワイヤを経て伝送されて、ブロードキャストされたりディスクに保存されたりする。好都合なことに、画像１０２を表すこの大幅に圧縮されたビデオ情報が必要とする帯域幅、伝送時間、および／または記憶スペースは、大幅に少なくてすむ。
【００５７】
図４には、ビットレートの圧縮に関し、可能な最悪のケースが示されている。例えば、フィルタ１０６に１２０メガビット／秒のレートで入力されたとする。数の加算の場合にはより高い精度が必要であるため、このレートは、フィルタ１０６を経た後には２倍の２４０メガビット／秒となる。モジュール１１４を経た後は１５メガビット／秒に減り、ユニット１３０を経て最終的には１０メガビット／秒の低さに到達する。システムの実装に依存して、より低いレートを得ることも当然可能である。
【００５８】
圧縮のフローチャート：
図５Ａ，５Ｂ，５Ｃは、画像圧縮のための１実施形態を説明したフローチャート２００である。このフローチャートの説明は、図４および図６〜１８との関連のもとでおこなう。ステップ２１０では、図４で説明したように、画像１０２からデジタル化データを受信する。画像１０２を表すアナログ信号は、カラーキャリヤ周波数（通常は１４．３ＭＨｚ）の約４倍でサンプリングされてデジタル化され、画素値が８ビットのシーケンスを提供することが好ましい。他のサンプリング率および画素値のサイズを使用することも当然可能である。ステップ２１２では、一度に１本の走査線が水平フィルタ１０６に入力される。ステップ２１４では、図６〜１２で後ほど詳述するように、フィルタ１０６で各走査線に対する水平フィルタ処理を実行する。このフィルタ処理の結果、１本の走査線内のデータは、図１２に示された４つのサブバンドに変換される。フィルタ処理された走査線は、ステップ２１６でストライプ記憶部１１０に出力され、ストライプバッファの一方において１ストライプを満たすのに利用される。
【００５９】
走査線の処理およびストライプバッファの充填は、連続したプロセスでなされる。図４で説明したように、偶数および奇数のストライプは、連続的に満たされてストライプ記憶部１１０から取り除かれる。ステップ２１８は、ストライプ記憶部で偶数ストライプの１つが満たされた時点を説明したものである。この偶数ストライプが満たされると、ステップ２２０において、次の奇数ストライプへの格納が開始し、満たされた偶数のストライプがブロック単位でストライプ記憶部１１０から取り除かれる。
【００６０】
取り除かれたブロックは、ステップ２２４で圧縮される。ここでは、従来の圧縮技術はもちろん、種々様々な線形および／または非線形変換を使用して良い。ブロックは、一連のパスの実行によって圧縮されることが好ましい。パス２は、図１３で説明される方式によって１ブロックについて実行される。パス３は、図１４で説明される方式によって１ブロックについて実行される。パス４は、図１５で説明される方式によって１ブロックについて実行され、最後にパス５が、図１６で説明される方式によって実行される。ここで、８×３２画素より小さいまたは大きいサイズのブロックに対しては、より少数または多数のパスを使用して良いことを理解しておく必要がある。ブロックの圧縮は、これら５つのパスが完了した時点で首尾良く完了する。
【００６１】
ステップ２２６では、ブロックが量子化される。ステップ２２６，２３９，２４８における量子化は、多くの方法で実行され得る。量子化は、画素値のサイズを軽減するのに有用であり、情報の損失をごく僅かに抑えることができる。量子化は絶対に必要な処理ではないが、データサイズの軽減に役立つ。好ましい１実施形態では、ステップ２２６，２３９，２４８において、２の累乗による簡略化され且つ実用的な量子化のステップが実行される。２の累乗による量子化によって、フィールドブロック記憶部１１８およびフレームブロック記憶部１２６で必要とされるメモリが低減される。したがって、本発明を、より小型のハードウェアデバイス上に実装することができる。ステップ２２６，２３９，２４８で各係数に対して廃棄される低位ビットの数は、サブバンドに依存する。各バンドで使用される２の累乗の値は、望ましい画像の質に依存して下される実装上の決定事項である。
【００６２】
量子化されたブロックは、ステップ２３２で符号化される。ここでは、種々様々な符号化技術を使用して良い。例えば、エントロピー符号化が上手く働くことがわかっている。例えば、ハフマン符号、算術符号、またはＬＺＷ符号を使用して良い。そのほかにも、１９９６年２月２７日に出願された米国特許出願第０８／６０７，３８８号（代理人整理番号：ＩＮＴ１Ｐ００２）「マニホールド上で定義された機能の圧縮」や、１９９７年５月３０日に提出された米国仮特許出願第６０／０５０，９３３号（代理人整理番号：ＩＮＴ１Ｐ００５＋）「画像およびビデオ圧縮のためのシングルチップ・モーションウェーブレット・ゼロツリーコーデック」に記載されているような他の所有技術を使用しても良く、これらはともに、引用により本明細書中に組み込まれている。一般に、符号化アルゴリズムは余分な情報を取り除くのに使用され、特に、量子化で生成された任意のゼログループを取り除くのに使用される。本発明の好ましい１実施形態では、標準的なゼロツリー符号化を使用する。
【００６３】
ステップ２３４では、複数の圧縮ブロックがブロック単位でフィールドブロック記憶部１１８に入力される。１フィールド分のブロックが格納されると、ステップ２３６において、同フレーム内の連続するフィールドから得られた対応ブロックが、フィールド間Ｈａａｒユニット１２２に出力される。ブロックの、フィールドブロック記憶部１１８への入力、同記憶部内でのシャッフル、および同記憶部からの出力は、任意の適切な方式でなされて良い。記憶部１１８は、１フィールド分の複数のブロックより僅かに大きくて、バッファプール（記憶領域プールとも呼ばれる）の使用により着信ブロックに割り当てられることが好ましい。例えば、１フィールド分のブロックが格納されて、次のフィールドからの第１のブロックが受信されたら、これら２つのフィールドから得られる第１の対応ブロックが取り除かれる。これら２つのブロックが取り除かれるため、次のフィールドから次の２つのブロックが入力される。
【００６４】
ステップ２３７〜２３９では、図１７および１８で説明されるように、対応する２つのブロックに対して改良フィールド間Ｈａａｒ変換が実行される。このＨａａｒ変換は、ブロックの部分的な復号、量子化、そして符号化に統合されている。ステップ２４０では、得られたブロックがフレームブロック記憶１２６に出力される。フィールド間Ｈａａｒユニット１２２からの結果ブロックは、２つのフィールドからの情報、つまり、１ブロックのコンテンツを２倍した量の情報を表している。すなわち、この結果ブロックは、入力された２つのブロックの片方を２倍した情報量を表している。
【００６５】
ステップ２４２では、ユニット１２２で事前に符号化された複数のブロックが、ブロック単位でフレームブロック記憶部１２６に入力される。１フレーム分のブロックが記憶部１２６に格納されると、ステップ２４４が、連続したフレームからの対応ブロックをフレーム間Ｈａａｒユニット１３０に出力しはじめる。記憶部１２６での記憶領域の割り当ては、種々様々な方法で実行されて良く、記憶部１１８との関連で説明したように実装されることが好ましい。
【００６６】
ステップ２４５〜２４８では、２つの対応ブロックに改良フレーム間Ｈａａｒ変換を実行し、結果ブロックを１つ生成する。このフレーム間Ｈａａｒ変換は、図１７および１８で説明されるフィールド間Ｈａａｒに類似した方法で実行される。フレーム間Ｈａａｒ１３０からの結果ブロックは、そのブロックの４フィールド分の情報を表す。ステップ２５０では、図２１で説明されるように、色回転ユニット１３２を使用し、結果ブロックに対して色回転を実行する。
【００６７】
ステップ２５２では、結果ブロックが直列ビットストリームとして出力される。もとの画像１０２を表す大幅に圧縮されたこの直列ビットストリームは、大幅に圧縮されたその形態のため、遥かに効果的に転送または格納されることができる。
【００６８】
伸長のフローチャート：
当業者には理解できるように、出力されたこの直列ビットストリームを伸長してもとの画像１０２を生成するには、上述した手続きを逆に実行すれば良い。例えば、図２２には、圧縮ビットストリームを伸長してもとの画像を生成するための技術が示されており、これは、図５Ａ〜５Ｃに示したステップの逆行に相当する。一般に、上述した各ステップ（量子化のステップを除く）は可逆である。伸長のステップに改良を加えることも可能である。例えば、追加のゼロまたは不規則なノイズを導入して量子化を補償しても良いし、データがすでに出力に適した色座標系にある場合は色回転を実行しなくても良い。もし必要ならば、色回転を実行してカラーキャリヤのドリフトを修正しても良い。
【００６９】
水平フィルタ：
図６は、高次の水平フィルタを、１実施形態に従って象徴的に示した図である。水平フィルタ１０６は、エッジフィルタ処理を提供してブロック回りのゴーストを取り除くことができ、ビデオ信号にフィルタ処理を施して、色情報と白黒情報の分離に有用な種々のサブバンドを生成する。画像１０２から、デジタル化されたビデオ画像データが受信される。フィルタ１０６には、ローパスフィルタ３０２と、ハイパスフィルタ３０４と、ダウンサンプラ３０６，３０８とが含まれている。フィルタ１０６の第２ステージには、ローパスおよびハイパスフィルタ３１０，３１２と、ローパスおよびハイパスフィルタ３１４，３１６とが含まれている。これらの各フィルタの後には対応するダウンサンプラ３１８〜３２４が続く。ダウンサンプラ３１８〜３２４からの出力は、ストライプ記憶部１１０に送信されて、複数のうちの１つのストライプバッファ内で１本の走査線を満たす。
【００７０】
フィルタ１０６の第１ステージでは、画像１０２からの画素値が、ローパスフィルタ３０２とハイパスフィルタ３０４のそれぞれに送信される。一般に、フィルタ３０２は各画素をその次の画素に加算し、フィルタ３０４は各画素からその次の画素を減算する。サンプラ３０６，３０８は、フィルタ３０２，３０４からの結果を因数２でダウンサンプルする。これは、サンプルが１つおきに廃棄されることを意味する。サンプラ３０６，３０８から得られる第１ステージの結果は、もとの信号が第１ステージで処理されたのとほぼ同様に、それぞれローパスおよびハイパスフィルタとダウンサンプラに通される。例えば、サンプラ３０６から出力された画素値の加算値が、それぞれローパスフィルタ３１０とハイパスフィルタ３１２に通される。そして、これらのフィルタからの結果が、サンプラ３１８，３２０において因数２でダウンサンプルされた後、以下で説明するように、その結果値がストライプ記憶部１１０に送信される。サンプラ３０８からの出力も、ほぼ同様に処理される。
【００７１】
サンプラ３０６，３０８が値を１つおきに廃棄するため、各サンプラからの出力はもとのデータの半分であるが、これらのサンプラが第２ステージに提示するデータ量の合計は、画像１０２から受信した画素の量と同じである。同じことは、第２ステージにも当てはまる。したがって、この実施形態では、画像１０２から受信された画素の総数と、ストライプ記憶部１１０に出力される画素の数とが同数である。
【００７２】
図７は、図６のフィルタ１０６の第１ステージにおけるプロセスを示した図である。着信した走査線３５２は、複数の画素値Ａ，Ｂ，Ｃ，Ｄを含んでいる。画素Ａ，Ｂ，Ｃ，Ｄは、図示されるように、ローパスフィルタ３０２によって加算されて、画素値ＭおよびＮを生じる。同様に、画素Ａ，Ｂ，Ｃ，Ｄはハイパスフィルタ３０４によって減算されて、画素値ＰおよびＱを生じる。画素ＢとＣの加算値がダウンサンプラ３０６によって廃棄され、同様に、画素ＢとＣの差分もサンプラ３０８によって廃棄される。
【００７３】
図８は、図６の第１ステージを経た後の、走査線３５２の一例を示した図である。走査線３５４は、着信した画素値の加算および減算から得られた結果を含んでいる。ローパスフィルタからの結果画素値ＭおよびＮが走査線３５４の左サイド（Ｌ）に格納され、ハイパスフィルタからの結果画素値ＰおよびＱが走査線３５４の右サイド（Ｒ）に格納されている。
【００７４】
図９は、図６の第１および第２ステージにおけるプロセスをともに示した図である。着信した走査線３６２は、画素値Ａ，Ｂ，Ｃ，Ｄを含んでいる。第１ステージの後、画素ＭおよびＮを加算および減算し、それぞれ値ＳおよびＴを生成する。同様に、画素値ＰおよびＱも加算および減算し、それぞれ値ＶおよびＷを生成する。
【００７５】
図１０は、水平フィルタ１０６の第１および第２ステージを経た後の、走査線３６２の一例を示した図である。画素値Ｓが走査線３６４の左サイドの左半分（ＬＬ）に格納され、画素値Ｔが走査線３６４の左サイドの右半分（ＬＲ）に格納されており、画素値Ｖが走査線の右サイドの左半分（ＲＬ）に格納され、画素値Ｗが走査線の右サイドの右半分（ＲＲ）に格納されている。したがって、水平フィルタ１０６による処理を経た後の走査線は、後ほど図１２で示される、コンポジットビデオ信号の分離に有用な４つのサブバンド（ＬＬ，ＬＲ，ＲＬ，ＲＲ）を含む。
【００７６】
以上で説明したように、図６〜１０には、概して水平フィルタ１０６の機能が示されている。より厳密に言うと、１実施形態において、フィルタ１０６は、ブロック化誤差の排除に有用な一連の改良２−６双直交フィルタを使用する。標準的な２−６双直交フィルタは当業者に周知である。以下では、図１１Ａおよび１１Ｂと関連させながら、修正された加算および減算を実行する改良２−６双直交フィルタの説明を行う。
【００７７】
標準的な２−６双直交フィルタはＨａａｒ変換だと見なすことができ、対をなす画素の加算および減算を実行した後、続いて追加のリフトステップを実行する。リフトステップは、各差分を、対応する加算値の一次結合と複合させて変化させるものである。好都合なことに、本発明では、各ブロックの初期および最終のリフト後の差分に独特な一次結合を施す改良２−６双直交フィルタを使用することにより、各ブロックを独立に処理することを可能にしている。
【００７８】
図１１Ａは、水平フィルタ１０６の第１ステージ１０６ａの、特定の１実施形態を示した図である。第２ステージは、同様な方法で実装されることが好ましい。この特定の実施形態において、フィルタ１０６ａは改良２−６双直交フィルタである。フィルタ１０６ａは、画像１０２から画素値ｘkのストリームを受信し、加算ユニット４０２および減算ユニット４０４に供給する。合成ユニット４０６は、種々の加算値を特定の係数と組み合わせ、その結果を加重ユニット４０８内の各差分ｄiに加算する。フィルタ１０６ａからの出力は、加算値ｓiのストリームと、リフトされた差分ｗiのストリームである。
【００７９】
標準的な２−６双直交フィルタは、式：ｗi＝ｄi−ｓi-1／８＋ｓi+1／８を使用して各差分を調整し、リフトされた差分を生成するのが通常である。したがって、各差分は、それぞれ直前の加算値の８分の１を引かれるとともに、直後の加算値の８分の１を足されている。標準的な２−６双直交フィルタでは、調整される差分に対応する加算値をその差分の調整に使用することはない。好都合なことに、本発明のこの実施形態では、独特な加算値の合成部４０６を提供して各差分を調整することにより、ブロック化誤差の軽減を図っている。
【００８０】
図１１Ｂは、合成ユニット４０６の係数を、本発明の特定の１実施形態に従って示した図である。各ブロックを独立に扱ってブロック化誤差を軽減するため、本発明では、調整される差分に対応する加算値に対し、非ゼロ係数を含む独特の係数を使用する。より厳密に言うと、これら独特の係数は、各ブロックの最初と最後のリフト後の差分（ｗ0およびｗn-1）に対して使用される。図１１Ｂには、合成ユニット４０６を実装するのに使用される係数の表４０９が示されている。表４０９は、加算値４１０の列とリフト後の差分４１２の行とを含む。表４０９の各セルは、リフト後の差分を計算する際に、対応する加算値に使用される係数を表している。行４２２および４３２は、標準的な２−６双直交フィルタで使用される従来の係数を示している。例として、リフト後の差分：ｗ1＝ｄ1−ｓ0／８＋ｓ2／８などが挙げられる。好都合なことに、表４０９には、行４２０および４３４で示されるように、初期および最終のリフト後の差分を計算するための独特の係数値が提供されている。この特定の実施形態では、初期の係数が−３／８，１／２，−１／８であるため、初期のリフト後の差分はｗ0＝ｄ0−３ｓ0／８＋ｓ1／２−ｓ2／８である。また、最終の係数が１／８，−１／２，３／８であるため、最終のリフト後の差分はｗn-1＝ｄn-1＋ｓn-3／８−ｓn-2／２＋３ｓn-1／８である。フィルタ１０６ａの初期および最終のリフト後の差分に対するこれら独特の係数値によって、ブロック化誤差を大幅に軽減し、ゼロ次、１次、および２次のモーメントを排除して各ブロックを独立に扱うことが可能となる。
【００８１】
図１２は、水平フィルタ１０６が、ストライプ５００を満たすのに充分な数の走査線を処理した後における、ストライプ記憶部１１０内のストライプ５００を示した図である。例えば、ブロックの高さが８走査線分である場合、ストライプ５００は、８本の水平走査線からの情報を表す。ビデオ信号を色情報および白黒情報に分離するため、ストライプ５００は、着信した走査線から抽出された４つのサブバンドを含んでいる。輝度バンド５０２は輝度情報（すなわち白黒画素の値）を表しており、この情報は、フィルタ処理を経てストライプ５００の左サイドの左半分（ＬＬ）に現われる。第１位相色差バンド５０４は、カラーキャリヤ信号の第１の位相から得られた色情報を表しており、この情報は、フィルタ処理を経てストライプ５００の左サイドの右半分（ＬＲ）に現われる。バンド５０６は、フィルタ処理の結果、その大部分が高周波数のデータである。この高周波数のノイズは大部分がゼロであり、ほとんどの場合において無視できるのが通常である。第２位相色差バンド５０８は、カラーキャリヤ信号の第２の位相から得られた色情報を表しており、この情報は、フィルタ処理を経てストライプ５００の右サイドの右半分（ＲＲ）に現われる。種々の色が、適切に表され得る。この実施形態において、バンド５０４および５０８は４５度回転された色ＵおよびＶをそれぞれ表す。
【００８２】
パス２〜５：
図１３〜１６は、１つの情報ブロック５２０に対してパス２〜５を実行した結果を示した図である。ブロック５２０は、図１２のストライプ５００の大きさに比例して描かれていない。ブロック５２０は、任意の適切な方法によって、ストライプ記憶部１１０のストライプから形成されて良い。ブロック５２０は、ストライプ５００の各バンドから画素の列をとることによって、形成されることが好ましい。例えば、高さが８ラインで幅が３２画素のブロックを形成するためには、バンド５０２〜５０８のそれぞれから高さが８ラインで幅が８画素の列（列５１２〜５１８）をとって連結させて、８×３２のブロックを１つ形成すれば良い。この例では、ブロック５２０に列５１２〜５１８が含まれている。もちろん、好ましい任意の列および／または行の組み合わせをバンド５０２〜５０８からとって使用し、他のサイズのブロックを形成しても良い。
【００８３】
パス２〜５は、ブロック５２０の各部分に対して垂直および水平のフィルタ処理を交互に実行し、対応するバンドから、また最終的にはもとのコンポジット信号から、輝度および色差情報を抽出する。好都合なことに、この方法でサブバンドをフィルタ処理することによって、最重要の輝度および色差情報を提供することができ、さらに、フィルタ処理されたブロックのうちで、含まれる情報が僅かまたは皆無である部分を無視することが可能となる。第１位相色差バンド５０４と第２位相色差バンド５０８にフィルタ処理を実行すると、コンポジットビデオ信号からもとのカラーキャリヤが復調されて、色差情報が提供される。種々のフィルタの使用が可能であるが、以下で説明する改良双直交フィルタおよびＨａａｒフィルタを使用して、隣接した画素を加算および減算し、情報の分離を行うことが好ましい。改良２−６双直交フィルタが使用されるのはパス３，４，５においてであるが、パス１および２で使用することも可能である。
【００８４】
上述したように、図１３〜１６には、ビデオ信号のカラーキャリヤのさらなる復調が示されている。カラーキャリヤの各位相は、ＤＣ情報を含んでいる。このため、パス２〜５で実行される加算および減算によって、色情報が加算部分に移動する。図１３〜１６に示されるように、サブブロックの連続的なフィルタ処理は、輝度および色差情報を取って、部分５２１，５２９，５３５の最も左上の角に詰め込む。この詰め込みによって、領域５２１，５２９，５３５に変換ピラミッドが形成される。色情報がバンド５１４および５１８の下位部分５２９および５３５に現われる一方で、輝度情報は、コンポジットビデオの１走査線から次の走査線にかけてカラーキャリヤの位相が逆転するために、バンド５１２の上位部分５２１に現われる。
【００８５】
図１３は、パス２において２度の垂直フィルタ処理を経た後のブロック５２０を示した図である。第１の垂直フィルタ処理では、図１１Ａおよび１１Ｂに示されるような改良双直交フィルタを使用して良く、輝度バンド５１２が、低周波数部分５２１と高周波数部分５２６（ＬＬＢ）とに分割される。第２の垂直フィルタ処理では、２−４線形リフトＨａａｒフィルタ（当業者に周知である）を使用して、部分５２１を、より低周波数の部分５２２（ＬＬＴＴ）と、より高周波数の部分５２４（ＬＬＴＢ）とにさらに分割する。輝度情報が、このバンドのより低周波数の部分に存在するため、このようなフィルタ処理および分割によって、重要な輝度情報を都合良く抽出することができる。
【００８６】
第１位相色差バンド５１４は、第１の垂直フィルタによって低周波数部分５２８と高周波数部分５２９とに分割される。第２の垂直フィルタでは、部分５２９が、より低周波数の部分５３０（ＬＲＢＴ）と、より高周波数の部分５３２（ＬＲＢＢ）とにさらに分割される。バンド５１６は、高周波数のノイズを表すのが通常であり、その大部分がゼロ値であるため、これ以上分割されることはない。第２位相色差バンド５１８は、第１の垂直フィルタによって低周波数部分５３４（ＲＲＴ）と高周波数部分５３５とに分割される。第２の垂直フィルタでは、部分５３５が、より低周波数の部分５３６（ＲＲＢＴ）と、より高周波数の部分５３８（ＲＲＢＢ）とにさらに分割される。各色差バンド５１４および５１８の低周波数部分の分割は、重要な色差情報を抽出する目的で行われる。これらのバンドの低周波数部分は、差分検出フィルタを表している。これは、ある走査線から次の走査線への差分によって色差情報の提供が強化されて、これらのバンドの低周波数部分に貴重な色情報が含まれるためである。
【００８７】
図１４は、パス３で２つの水平フィルタを経た後のブロック５２０を示している。水平フィルタ処理は、ブロック５２０の選択領域に対して実行されて、バンド５１２からは輝度情報を、バンド５１４からは第１位相色差情報を、そしてバンド５１８からは第２位相色差情報を抽出する。第１の水平フィルタは改良２−６双直交フィルタを、第２の水平フィルタは２−４線形リフトＨａａｒフィルタをそれぞれ使用することが好ましい。領域５２４は、二等分される。領域５２２もフィルタ処理によって二等分され、その左半分がさらに領域５４２および５４４に分割される。領域５３２は、二等分される。領域５２９も二等分され、その左半分がさらに領域５４６および５４８に分割される。領域５３８は、二等分される。領域５３６も二等分され、その左サイドがさらに領域５５０および５５２に分割される。パス３によって、輝度および色情報が、領域５４２，５４６，５５０内にさらに詰め込まれる。
【００８８】
好都合なことに、パス３が完了すると、もとのコンポジット信号からの輝度および色差情報が、さらなる圧縮に備えて効果的に分離される。この時点における分離後の輝度および色差情報は、本発明による変換および圧縮を経ているものの、コンポーネントビデオ（すなわち３つの独立信号）として受信されたかのように、１つのビデオ信号を表すことができる。
【００８９】
図１５は、パス４で垂直フィルタを経た後のブロック５２０を示している。パス４では、改良２−６双直交フィルタを選択領域に適用し、輝度および色差情報のさらなる抽出を行う（ただし、標準的なＨａａｒフィルタを使用しても良い）。輝度バンド５１２の領域５４２は、さらに領域５６０および５６２に分割される。領域５４４は領域５６４および５６６に分割される。色差バンド５１４の領域５４６は、領域５７０および５７２に分割される。同様に、領域５４８は領域５７４および５７６に分割される。色差バンド５１８の領域５５０は、領域５８０および５８２に分割される。同様に、領域５５２は領域５８４および５８６に分割される。この方法によって、輝度および色情報が、領域５６０，５７０，５８０内にさらに隔離される。
【００９０】
図１６は、パス４で垂直フィルタを経た後のブロック５２０を示している。パス５では、改良２−６双直交フィルタを選択領域に再度適用し、輝度および色差情報のさらなる抽出を行う（ただし、標準的なＨａａｒフィルタを使用しても良い）。輝度バンド５1２の領域５６０は、領域５９０および５９１に分割される。色差バンド５１４の領域５７０は、領域５９４および５９５に分割される。色差バンド５１８の領域５８０は、領域５９８および５９９に分割される。この時点で、もとのビデオ信号からの輝度および色情報のほぼ全てが、領域５９０，５９４，５９８内に隔離される。もとのブロックのサイズが、高さが走査線８ライン分で幅が３２画素分であるため、領域５９０，５９４，５９８は１つの画素値を表しており、さらなるフィルタ処理および分割は不要である。
【００９１】
画素値５９０は、ブロックに関する重要な輝度情報、つまりブロックの平均輝度を含んでいる。同様に、バンド５１４および５１８の画素値５９４および５９８は、ブロックの各色差バンドに対応する平均の色をそれぞれ含んでいる。したがって、各バンドに対応する輝度または色情報が圧縮されて、各バンドの１つの係数が、比較的少ないビット数でそのブロックの平均輝度または色を記述する。（つまり、値５９４および５９８が各バンドのＤＣ係数を保持している。）これらの係数は、その周囲の係数よりも大きい。例えば、（右下に向かって）次に近接した係数が７ビット、次に近接した係数が３ビット等などであるのに対し、係数５９０，５９４，５９８は９ビットで良い。値５９０を取り囲む係数が、ブロックの片側からもう片側にかけての輝度差を提供するのに対し、値５９４および５９８を取り囲む係数は、ブロックの片側からもう片側にかけての色差（つまりブロック内の色変化）を提供する。これらのパスを経た後、いわゆる変換ピラミッドが領域５９２および５９６に形成される。
【００９２】
ここで、サイズがもっと大きいブロックに対しては、さらなる垂直および水平フィルタ処理によって、色キャリヤ情報をさらに隔離することが望ましいことを、理解しておく必要がある。もちろん、サイズがもっと小さいブロックに対しては、もっと少ない回数のパスで充分である。
【００９３】
改良Ｈａａｒ変換：
図１７は、Ｈａａｒユニット１２２および１３０で有用なＨａａｒ変換６５０の背景にある概念を示した図である。一般に、Ｈａａｒ変換は、フレーム間またはフィールド間において、対応するブロックの加算値および差分を計算するものである。図１７には、フィールド間およびフレーム間の複合Ｈａａｒ変換が示されている。フレーム６５２はフィールド６５４および６５６を含み、フレーム６６２はフィールド６６４および６６６を含む。フレーム６５２とフレーム６６２は、時間的に連続しているか、さもなくば互いに関連している。各フィールドは、フィールド内の位置に関して互いに対応し合う関連のブロック６７０ａ，６７０ｂ，６７０ｃ，６７０ｄをそれぞれ含んでいる。ブロック６７０ａ〜６７０ｄは、別の形で互いに対応し合っても良く、その他の仕方で関連し合っても良い。Ｈａａｒ変換は、フレーム６５２において、ブロック６７０ａと６７０ｂの加算値および差分の計算６８０からスタートする。続いて、計算６８２によって、フレーム６６２のブロック６７０ｃと６７０ｄの加算値および差分が提供される。次に、２つのフレームから得られた２つの加算値の加算値と、フィールドの各対から得られた差分の差分を計算する。したがって、２つの連続したフレーム間で、全体の加算値および差分６８４が生成される。これらの値のいずれをＨａａｒ変換の結果をして出力しても良いが、通常は、フィールド６５４と６５６の差分と、フィールド６６４と６６６の差分と、前掲した２つの差分の差分（フレーム６５２と６６２の差分）と、フレーム６５２と６６２の加算値の、４つの値が出力される。Ｈａａｒのようなこのような比較のプロセスは、プログレッシブ走査、インターレース走査、またはその他のタイプの走査に対して適用可能である。
【００９４】
図１８は、記憶部１１８から受信された２つの対応するブロックに対して改良Ｈａａｒ変換を実行するための、フィールド間Ｈａａｒユニット１２２を示した図である。ユニット１２２は、記憶部１１８の偶数および奇数フィールドからの対応するブロックを、部分復号器７０２および７０４にそれぞれ受信する。アライメントユニット７０６は、もし必要なら任意の復号を追加で実行し、ビットストリームの位置合わせを行う。アライメントユニット７０６が有用なのは、前掲した可変長の符号化によって、対応するブロックからの対応する係数がばらばらに配置されるためである。非ゼロ係数がＨａａｒ変換７０８を通る一方で、ゼロのランは、量子化器／符号化器７１０および７１２に直接引き渡される。これらの量子化器／符号化器は、Ｈａａｒ変換７０８からの結果と、アライメントユニット７０６からのゼロのランとを受信し、もし必要ならさらなる符号化を実行して、２つの対応するブロックの加算値７１４および差分７１６を、フレームブロック記憶部１２６への送信のために出力する。量子化器／符号化器７１０および７１２は、ステップ２２６および２３２に類似した方法で、ブロックの量子化および符号化を実行する。ここで、このステップにおいて、異なる符合化技術には異なるパラメータを使用して良いこと、あるいは全く異なる符号化技術を使用して良いことを、理解しておく必要がある。
【００９５】
Ｈａａｒ変換７０８は１ビット幅であることが好ましいため、非常に高速で比較を実行することができる。ここでは、色差情報のさらなる分離を実行しても良い。フレーム間Ｈａａｒユニット１３０は、フィールド間ではなく対応するフレーム間でブロックが比較される点を除き、ユニット１２２とほぼ同じ方式で構成されることが好ましい。
【００９６】
色回転：
図２１は、開示された本発明の実施形態に関連して効果的な色回転を実行するのに使用される色回転ユニット１３２を示した図である。ユニット１３２は、ある座標系から別の座標系へと色情報を変換する。好都合なことに、座標系（ＹＩＱ、ＹＵＶ、ＲＧＢ、またはこれらを改良したもの）間の変換は、圧縮に統合されているため高価な行列乗算を必要としない。色信号の色回転は、モジュール１１４でのデータ変換と通じ合っているため、その前または後のいずれで行っても良いのが一般的である。好都合なことに、色差変換ピラミッド５９２および５９６から得られる画素の対は、変換後に回転行列を使用して回転される。変換後には、対の多くがゼロまたは非常に小さい数になるため、これは、計算が大幅に単純化されることを意味する。
【００９７】
色回転ユニット１３２は、システム１００内のあらゆる適切な地点で回転を実行して良い。回転は、モジュール１１４での変換後に実行されて、色差変換ピラミッド５９２および５９６内での色情報の集中（およびそれにともなうゼロ値の増加）を上手く利用することが好ましい。また、回転は、モジュール１１４での量子化および符号化の後に実行されて、ゼロ係数の排除をさらに上手く利用し、小さい係数をゼロに導くことがいっそう好ましい。さらに、回転は、Ｈａａｒユニット１２２またはＨａａｒユニット１３０のいずれかの後に実行されて、これらのユニットで実行される圧縮をさらに上手く利用することが、なおいっそう好ましく、データがＨａａｒユニット１３０後の地点で最も圧縮されていることから、色回転ユニット１３２を、Ｈａａｒユニット１３０の後に配置することが最も好ましい。したがって、回転は、ビット数が伸長ブロックより遥かに少ない圧縮ブロックに対して変換ドメインで実行される。
【００９８】
上述したように、回転は、ある座標系を別の座標系に変換するものである。本発明の特定の１実施形態では、パス２〜５によって、４５度回転したＹＵＶ信号に対応する色差信号が形成される。色回転ユニット１３２は、持ち込まれたこの回転を修正するため、またはこの信号を別の色座標系１００に変換するために使用される。ユニット１３２は、必ずしも必要ではない。例えば、システム１００を使用して圧縮されたビデオ情報が、別の座標系への変換を必要としない場合は、色回転は不要である。
【００９９】
色回転ユニット１３２は、Ｈａａｒユニット１３０から圧縮ビットストリーム７７０を受信する。ビットストリーム７７０は、の最下位ビットを先頭とするシリアル形式で順次続く画素係数対７７２を表す。表されるのは、重要なビットのみであることが好ましい。ユニット１３０は、直列×並列の乗算を実行する。図中に示されるように、係数７７２を回転行列の要素Ｒ（１１），Ｒ（１２），Ｒ（２１），Ｒ（２２）で乗算し、その結果を加算することにより、新しい座標系の画素対ｂ（Ｕ）およびｂ（Ｖ）が提供される。そして、新しい対が、直列ビットストリームの形でユニット１３０から出力される。回転行列の要素の値は、望ましい色座標系に変換できるように選択されるが、このような値は当業者に周知である。画素係数７７２は、ランダムアクセスメモリから望ましい順番で読み出されることができるため、ビットストリーム内で相互に前後している。
【０１００】
直列×並行の乗算は、直列の乗数（係数）に並列の被乗数（回転行列の要素）をかける既知の技術である。好都合なことに、システム１００内のデータ速度が充分に低いため、高価な並列乗算の代わりにビット直列乗数を使用することができる。例えば、約１５メガビット／秒のデータ速度は、このようなビット直列乗数の使用を可能にするのに十分な低さである。
【０１０１】
二進法によるこのような直列×並列乗算は、シフト動作および加算動作を使用し、並列加算器とも呼ばれている。並列乗算に代わるこのような直列×並列乗算は、遥かに小さい集積回路で実装することができる。例えば、係数と行列要素との並列乗算を使用した色回転ユニットは集積回路上のスペースを大きく占めるのに対して、ここで開示された技術を使用してユニットを実装すれば、必要とされるスペースを１０分の１に低減することができる。したがって、本発明を組み入れた集積回路は、大幅に小型化したり、且つ／または他の機能を組み込んだりすることができる。
【０１０２】
さらにまた、色回転が、ブロックを独立に扱える圧縮アルゴリズムに統合されているため、回転が生じる前に１フィールド分または１フレーム分の情報を格納しなくても、画素の回転を、ビットストリームがシステム１００に流れ込む際に局所的に行うことができる。２つの色差信号を表す圧縮形態をとったブロック（または画像のその他の部分）がシステム１００を通る際に、圧縮ブロックに直接動作することにより、これら２つの信号を回転させることができる。色回転が圧縮に統合されているため、別のデバイスで回転を実行する必要がない。
【０１０３】
コンピュータシステムの実施形態：
図２３は、本発明の一実施形態に従うコンピュータシステム９００を示した図である。コンピュータシステム９００は、一次記憶部９０６（ランダムアクセスメモリすなわちＲＡＭなど）と一次記憶部９０４（読み取り専用メモリすなわちＲＯＭなど）とを含んだ記憶装置に接続された、任意の数のプロセッサ９０２（中央演算処理装置すなわちＣＰＵとも呼ばれる）を備える。当業者には周知のように、一次記憶部９０４が、データおよび命令を一方向にＣＰＵに伝送する一方で、一次記憶部９０６は、データおよび命令を双方向に伝送するように使用されるのが通常である。これらの一次記憶装置はともに、以下で説明する任意の適切なコンピュータ読み取り可能媒体を含むことができる。大容量記憶装置９０８もまた、ＣＰＵ９０２に双方向に結合して追加のデータ格納容量を提供し、やはり以下で説明する任意のコンピュータ読み取り可能媒体を含むことができる。大容量記憶装置９０８は、プログラムやデータ等を格納するのに使用され、一次記憶部より低速な二次記憶媒体（ハードディスクなどの）であるのが通常である。ここで、適切な場合には、大容量記憶装置９０８内に保持される情報が、一次記憶部９０６内にその一部を占める仮想記憶として一般的な方式で組み込まれ得る点を、理解しておく必要がある。ＣＤ−ＲＯＭ９１４等の特定の大容量記憶装置は、ＣＰＵに一方向にデータを引き渡す。
【０１０４】
ＣＰＵ９０２はまた、ビデオモニタ、トラックボール、マウス、キーボード、マイクロフォン、タッチディスプレイ、トランスデューサカード読み取り装置、磁気もしくは紙のテープ読み取り装置、タブレット、スタイラス、音声もしくは筆跡の認識装置、または他のコンピュータなどの、１つまたはそれ以上の入出力装置を備えたインターフェース９１０に接続される。ＣＰＵ９０２は、コンピュータに接続されても良いし、あるいは、９１２として一般に示されるネットワーク接続を使用して通信網に接続されても良い。このようなネットワーク接続により、ＣＰＵは、上述した方法ステップを実施する際に、ネットワークから情報を受信したりネットワークに情報を出力したりできると考えられる。さらにまた、本発明の方法の実施形態は、ＣＰＵ９０２に対してのみ実行されても良いし、または処理の一部を共有する遠隔ＣＰＵとの関連のもとで、インターネットなどのネットワーク接続を介して実行されても良い。
【０１０５】
また、本発明はさらに、コンピュータで実現される種々の動作を実行するためのプログラムコードを有したコンピュータ読み取り可能媒体をともなった、コンピュータ記憶製品に関する。この媒体およびプログラムコードは、本発明の目的のために特別に設計および構築されたものでも良いし、コンピュータソフトウェア技術の当業者にとって周知で且つ使用可能な類でも良い。コンピュータ読み取り可能媒体の例は、ハードディスク、フロッピィディスク、磁気テープ等の磁気媒体と、ＣＤ−ＲＯＭディスク等の光学媒体と、光フロッピィディスク等の光磁気媒体と、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、ＲＯＭ−ＲＡＭ装置等の、プログラムコードを格納および実行するために特別に構成されたハードウェアデバイスを含み、これらに限定されない。コンピュータコードの例は、コンパイラにより作成されたマシンコード、インタープリタを使用してコンピュータにより実行される高級コードを含んだファイル等を含む。
【０１０６】
以上では、明瞭な理解を促す目的で本発明を詳しく説明したが、添付した特許請求の範囲の範囲内で、一定の変更および修正を加え得ることは明らかである。例えば、本発明は、種々様々な静止画像やビデオ画像、そしてより高次元のデータに適用することが可能である。例えば、本発明は、２次元の静止画像、３次元のビデオ画像、そして４次元の地震情報に適用される。本発明は一般に、多次元情報の圧縮および伸長に役立つ。本発明は、コンポジットビデオやＳビデオなどを含む、種々のビデオ規格に適用することが可能である。複合ビデオ信号（色および／または白黒を複合したもの）の直接圧縮は、コンポジットビデオ、Ｓビデオ、そしてその他の類似の信号に適用することが可能である。ブロックの一時的な圧縮は、本明細書で開示した技術以外にも、種々様々な圧縮技術に適用することが可能である。また、色回転を、種々様々な色空間の間で実行しても良い。また、本明細書で開示した境界フィルタも、ブロックだけでなく、フレームおよびフィールドの他の部分に適用することも可能である。したがって、以上で取り上げた実施形態は、例示を目的としたものであって、本発明の内容を限定するものではない。このため本発明は、本明細書で特定した詳細に限定されることなく、添付した特許請求の範囲およびその等価物の範囲内で定義されるべきである。
【符号の説明】
【０１０７】
１０…画像
１２…フレーム
１２ａ，１２ｂ…フレーム部分
１４…画素
１６…走査線
１８…ストライプ
２０…ブロック
５０…画像
５２，５４，５６，５８…ブロック
６２，６４，６６，６８…ブロックの境界
８２…コンポジットビデオ信号
８４，８６…カラーキャリヤ信号
８８…白黒信号
９０，９２，９４，９６…サンプル点
１００…ビデオ画像を圧縮するためのシステム
１０２…男性の画像
１０６…水平フィルタ
１０６ａ…水平フィルタの第１ステージ
１１０…ストライプ記憶部
１１４…モジュール
１１８…フィールドブロック記憶部
１２２…フィールド間Ｈａａｒユニット
１２６…フレームブロック記憶部
１３０…フレーム間Ｈａａｒユニット
１３２…色回転ユニット
１３４…圧縮ビデオ出力
３０２…ローパスフィルタ
３０４…ハイパスフィルタ
３０６，３０８…ダウンサンプラ
３１０，３１４…ローパスフィルタ
３１２，３１６…ハイパスフィルタ
３１８，３２０，３２２，３２４…ダウンサンプラ
３５２，３５４，３６２，３６４…走査線
４０２…加算ユニット
４０４…減算ユニット
４０６…複合ユニット
４０８…加重ユニット
４０９…係数の表
４１０…加算値
４１２…リフトされた差分
４２０，４２２，４２４，４２６，４２８，４３０，４３２，４３４…行
５００…ストライプ
５０２…輝度バンド
５０４…第１位相色差バンド
５０６…高周波数バンド
５０８…第１位相色差バンド
５１２…輝度バンド
５１４…第１位相色差バンド
５１６…高周波数バンド
５１８…第２位相色差バンド
５２０…ブロック
５９０，５９４，５９８…画素値
６５０…Ｈａａｒ変換
６５２，６６２…フレーム
６５４，６５６，６６４，６６６…フィールド
６７０ａ，６７０ｂ，６７０ｃ，６７０ｄ…ブロック
７０２，７０４…部分復号器
７０６…アライメントユニット
７０８…Ｈａａｒ変換
７１０，７１２…量子化器／符号化器
７５２，７５４…画素値
７６０…従来の色回転技術
７６２…回転行列
７６４…もとの座標系の値
７６６…新しい座標系の値
７７０…圧縮ビットストリーム
７７２…画素の係数
７７４，７７６…新しい座標系の画素対
９００…コンピュータシステム
９０２…プロセッサ
９０４，９０６…一次記憶部
９０８…大容量記憶装置
９１０…インターフェース
９１２…ネットワーク接続
９１４…ＣＤ−ＲＯＭ
【図１】
0005133317.tif 000002
【図２】
0005133317.tif 000003
【図３】
0005133317.tif 000004
【図４】
0005133317.tif 000005
【図５Ａ】
0005133317.tif 000006
【図５Ｂ】
0005133317.tif 000007
【図５Ｃ】
0005133317.tif 000008
【図６】
0005133317.tif 000009
【図７】
0005133317.tif 000010
【図８】
0005133317.tif 000011
【図９】
0005133317.tif 000012
【図１０】
0005133317.tif 000013
【図１１Ａ】
0005133317.tif 000014
【図１１Ｂ】
0005133317.tif 000015
【図１２】
0005133317.tif 000016
【図１３】
0005133317.tif 000017
【図１４】
0005133317.tif 000018
【図１５】
0005133317.tif 000019
【図１６】
0005133317.tif 000020
【図１７】
0005133317.tif 000021
【図１８】
0005133317.tif 000022
【図１９】
0005133317.tif 000023
【図２０】
0005133317.tif 000024
【図２１】
0005133317.tif 000025
【図２２】
0005133317.tif 000026
【図２３】
0005133317.tif 000027