(57)【特許請求の範囲】
【請求項１】
画像を圧縮するための方法であって、
１．画像を少なくとも１つの画像の組に分割し、各画像の組は列の数がＭで行の数がＮであるピクセルの二次元配列であるように分割するステップと、
２．各画像の組に対して、
１．可逆変換を使って前記画像の組を一組の係数に変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記画像の組を一組の係数に変換することは、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより、減少させることを含み、さらに、
２．前記係数の組の各係数を量子化し、
３．エントロピー・コードに従って前記係数の組の量子化された各係数を符号化するステップとを含む方法。
【請求項２】
請求項１に記載の方法において、前記一次元の行のハートレー変換および前記一次元の列のハートレー変換のそれぞれが、乗算を使わずに計算されるようになっている方法。
【請求項３】
請求項１に記載の方法において、前記一次元の行のハートレー変換および前記一次元の列のハートレー変換のそれぞれが、加算、減算およびビット・シフトだけを使って計算されるようになっている方法。
【請求項４】
請求項１に記載の方法において、前記画像の組を変換するステップが、前記ハートレー変換の少なくとも１つの段階の精度を、前記変換の前記段階からの結果の係数の組の各係数を表すために使われるビットの数を制限することによって制御するステップをさらに含む方法。
【請求項５】
請求項１に記載の方法において、前記係数の組の各係数を量子化するステップが、そのサブステップとして、
（ａ）前記係数の相対的な重要度を決定するステップと、
（ｂ）その決定された相対的な重要度に従って、前記係数を表すために使われるビットの数を保持するステップとを含む方法。
【請求項６】
請求項５に記載の方法において、前記係数の前記相対的な重要度を決定する前記ステップが、所定の頻度分布に従って前記係数の組をソートするステップを含む方法。
【請求項７】
請求項５に記載の方法において、前記係数の前記相対的な重要度を決定する前記ステップが、統計的に決定されるエネルギー分布に従って前記係数の組をソートするステップを含む方法。
【請求項８】
請求項１に記載の方法において、前記画像はカラー情報に対応している成分を含む方法。
【請求項９】
請求項８に記載の方法において、可逆変換を使って前記画像の組を変換する前に、前記画像の組の前記カラー成分についてのカラー変換を計算するステップをさらに含む方法。
【請求項１０】
請求項８に記載の方法において、可逆変換を使って前記画像の組を変換する前に、前記画像の組の前記カラー成分のうちの少なくとも１つをサブサンプルするステップをさらに含む方法。
【請求項１１】
請求項１０に記載の方法において、可逆変換を使って前記画像の組を変換する前に、前記画像の組の前記カラー成分のうちの少なくとも１つに含まれている各ピクセルを量子化するステップをさらに含む方法。
【請求項１２】
請求項８に記載の方法において、画像の組を変換するステップが、可逆変換の精度を、その可逆変換からの結果の係数の組の各係数を表すために使われるビットの数を制限することによって制御するステップをさらに含む方法。
【請求項１３】
請求項１に記載の方法において、エントロピー・コードは係数の期待される分布に対して得られ、
１．係数の前記期待される分布に対する正準ハフマン符号化ツリーを計算するステップと、
２．長さの等しいすべてのコードを共通のコード・グループに組み合わせるステップと、
３．前記正準ハフマン符号化ツリーの構造に基づいてコード・プリフィックスを各コード・グループに対して割り当てるステップと、
４．前記コード・グループの中の別々の各シンボルに対してサフィックスを割り当てるステップとを含む方法。
【請求項１４】
請求項１に記載の方法において、符号化されて量子化された係数を格納するためのステップをさらに含む方法。
【請求項１５】
圧縮された画像データから、列の数がＭで行の数がＮであるピクセルの二次元配列から構成される少なくとも１つの画像の組を有している画像を復元するための方法であって、
１．前記圧縮された画像データを係数の少なくとも１つの組に、エントロピー・コードに従ってデコードするステップと、
２．係数の各組に対して、
１．前記係数を逆量子化するステップと、
２．前記逆量子化された係数を、１つの画像の組に、可逆変換を使って逆変換するステップを含み、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記逆変換するステップは、前記２段階のハートレー変換の当該段階の間で、前記ピクセルを表すのに用いる許容可能なビットの数を拡張することを含み、さらに、
３．各画像の組を画像に組み合わせるステップとを含む方法。
【請求項１６】
請求項１５に記載の方法において、前記一次元の行のハートレー変換および前記一次元の列のハートレー変換のそれぞれが、乗算を使わずに計算されるようになっている方法。
【請求項１７】
請求項１５に記載の方法において、前記一次元の行のハートレー変換および前記一次元の列のハートレー変換のそれぞれが、加算、減算およびビット・シフトだけを使って計算されるようになっている方法。
【請求項１８】
請求項１５に記載の方法において、前記逆量子化された係数を逆変換するステップが、前記画像データの圧縮に関して使われた精度制御に対して、前記ハートレー変換の少なくとも１つの段階から得られる各ピクセルを表すために使われるビットの数を拡張することによって補正するステップをさらに含む方法。
【請求項１９】
請求項１５に記載の方法において、前記各係数を逆量子化するステップが、
（ａ）前記係数の相対的重要度を決定するステップと、
（ｂ）前記係数を表すために使われるビットの数を、その決定された相対的重要度に従って復元するステップを含む方法。
【請求項２０】
請求項１５に記載の方法において、前記画像がカラー成分を含む方法。
【請求項２１】
請求項２０に記載の方法において、各画像の組を前記画像に組み合わせる前に、各画像の組のカラー成分に対してカラーの逆変換を計算するステップをさらに含む方法。
【請求項２２】
請求項２０に記載の方法において、各画像の組を前記画像に組み合わせる前に、各画像の組の前記カラー成分のうちの少なくとも１つを再度拡張するステップをさらに含む方法。
【請求項２３】
請求項２０に記載の方法において、前記画像の前記カラー成分についてカラーの逆変換を計算するステップをさらに含む方法。
【請求項２４】
請求項１５に記載の方法において、前記圧縮された画像データを、エントロピー・コードに従って係数の少なくとも１つの組にデコードするステップが、そのサブステップとして、
１．前記圧縮された画像データのプリフィックス部分を前記エントロピー・コードに関連付けられている一組の既知のコード・プリフィックスに対してマッチさせることによって、コード・プリフィックスに対応しているコード・グループを決定するステップと、
２．前記決定されたコード・グループの中の前記係数の値を、前記圧縮された画像データの組のサフィックス部分を、前記エントロピー・コードに関連付けられている既知のコード・サフィックスの組に対してマッチさせることによって識別するステップとを含む方法。
【請求項２５】
画像を圧縮および復元するための方法であって、
１．画像の圧縮は、サブステップとして、
１．前記画像を少なくとも１つの画像の組に分割し、各画像の組が、列の数がＭで行の数がＮであるピクセルの二次元配列であるようにするステップと、
２．各画像の組に対して、
（ａ）可逆変換を使って前記画像の組を一組の係数に変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記画像の組を一組の係数に変換することは、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより、減少させることを含み、さらに、
（ｂ）前記係数の組の各係数を量子化し、
（ｃ）エントロピー・コードに従って前記係数の組の量子化された各係数を符号化するステップとを含み、
２．  画像の復元は、サブステップとして、
１．前記圧縮された画像データを、エントロピー・コードに従って少なくとも１つの組の係数にデコードするステップと、
２．係数の各セットに対して、
（ａ）前記係数を逆量子化し、
（ｂ）前記逆量子化された係数を１つの画像の組に逆変換するステップと、
３．  各画像の組を画像に組み合わせるステップとを含む方法。
【請求項２６】
少なくとも１つの画像の組に分割することができる画像を圧縮するためのシステムであって、各画像の組は列の数がＭで行の数がＮである二次元配列であり、
１．可逆変換を使って、各画像の組を一組の係数に変換する変換手段を含み、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより減少させ、さらに、
２．前記係数の組の各係数を量子化する量子化手段と、
３．エントロピー・コードに従って、前記量子化された係数の組を符号化するコーダとを含むシステム。
【請求項２７】
画像を圧縮するためのシステムであって、プロセッサを含み、前記プロセッサが、
１．前記画像を少なくとも１つの画像の組に分割し、各画像の組は列の数がＭで行の数がＮであるピクセルの二次元配列であり、
２．各画像の組に対して、
１．可逆変換を使って前記画像の組を一組の係数に変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより減少させ、さらに、
２．前記画像の組の各画像を量子化し、
３．エントロピー・コードに従って、前記係数の組の量子化された各係数を符号化するようにプログラムされているシステム。
【請求項２８】
圧縮された画像データから、列の数がＭで行の数がＮである二次元のピクセルの配列から構成される少なくとも１つの画像の組を有する画像を復元するためのシステムであって、
１．前記圧縮された画像データを、エントロピー・コードに従って係数の少なくとも１つの組にデコードするデコーダと、
２．係数の各組の各係数を逆量子化する逆量子化手段と、
３．可逆変換を使って、逆量子化された係数の各組を１つの画像に逆変換する逆変換手段とを含み、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記ピクセルを表すのに用いる許容可能なビットの数を拡張する、システム。
【請求項２９】
圧縮された画像データから、列の数がＭであって、行の数がＮである、ピクセルの二次元配列から構成される、少なくとも１つの画像を有する画像を復元するためのシステムであって、
１．前記圧縮された画像データをエントロピー・コードに従って係数の少なくとも１つの組にデコードし、
２．各係数の組に対して、
１．前記係数を逆量子化し、
２．可逆変換を使って、前記逆量子化された係数を１つの画像に逆変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記ピクセルを表すのに用いる許容可能なビットの数を拡張し、さらに、
３．各画像の組を画像に組み合わせるようにプログラムされているプロセッサを含むシステム。
【請求項３０】
少なくとも１つの画像の組に分割することができる画像を圧縮および復元するためのシステムであって、各画像の組は列の数がＭで、行の数がＮであるピクセルの二次元配列であって、
１．圧縮手段であって、
１．可逆変換を使って、各画像の組を一組の係数に変換する変換手段を含み、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより減少させ、さらに、
２．前記画像の組の各画像を量子化する量子化手段と、
３．前記量子化された係数の組を、エントロピー・コードに従って符号化するコーダとを含んでいる圧縮手段と、
２．復元手段であって、
１．圧縮された画像データを、エントロピー・コードに従って係数の少なくとも１つの組にデコードするデコーダと、
２．係数の各組の各係数を逆量子化する逆量子化手段と、
３．逆量子化された係数の各組を画像の組に逆変換する逆変換手段とを含んでいる復元手段とを含むシステム。
【請求項３１】
画像を圧縮および復元するためのシステムであって、
１．前記画像の圧縮は、
１．前記画像を少なくとも１つの画像の組に分割し、各画像の組は列の数がＭであり、行の数がＮであるピクセルの二次元配列であるようにするステップと、
２．各画像の組に対して、
（ａ）可逆変換を使って、前記画像の組を一組の係数に変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより減少させ、さらに、
（ｂ）前記係数の組の各係数を量子化し、
（ｃ）前記係数の組の量子化された各係数を、エントロピー・コードに従って符号化するステップとを実行し、
２．前記画像の復元は、
１．前記圧縮された画像データを、エントロピー・コードに従って係数の少なくとも１つの組にデコードするステップと、
２．係数の各組に対して、
（ａ）前記係数を逆量子化し、
（ｂ）前記逆量子化された係数を１つの画像の組に逆変換するステップと、
３．各画像の組を画像に組み合わせるステップとを実行するように、プログラムされているプロセッサを含むシステム。
【請求項３２】
画像を圧縮するための命令を格納している、コンピュータが読める媒体を含んでいる製品であって、前記命令は、プロセッサによって実行されるとき、
１．前記画像を少なくとも１つの画像の組に分割し、各画像の組が列の数がＭで行の数がＮであるピクセルの二次元配列であるようにするステップと、
２．各画像の組に対して、
１．可逆変換を使って、前記画像の組を一組の係数に変換するステップであって、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより減少させる、変換するステップと、
２．前記係数の組の各係数を量子化するステップと、
３．前記係数の組の量子化された各係数を、エントロピー・コードに従って符号化するステップとを前記プロセッサに実行させる製品。
【請求項３３】
圧縮された画像データから、列の数がＭで行の数がＮであるピクセルの二次元配列から構成されている少なくとも１つの画像の組を有している画像を復元するための命令を格納している、コンピュータが読める媒体を含んでいる製品であって、前記命令は、プロセッサによって実行されるとき、
１．前記圧縮された画像データを、エントロピー・コードに従って係数の少なくとも１つの組にデコードするステップと、
２．各係数の組に対して、
１．前記係数を逆量子化し、
２．前記逆量子化された係数を、可逆変換を使って画像の組に可逆変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、そして、前記２段階のハートレー変換の当該段階の間で、前記ピクセルを表すのに用いる許容可能なビットの数を拡張し、さらに、
３．各画像の組を画像に組み合わせる、ステップとを、前記プロセッサに実行させるようになっている製品。
【請求項３４】
画像を圧縮および復元するための命令を格納している、コンピュータが読める媒体を含んでいる製品であって、前記命令は、プロセッサによって実行されるとき、
１．前記画像の圧縮は、
１．前記画像を少なくとも１つの画像の組に分割し、各画像の組は列の数がＭで行の数がＮであるピクセルの二次元配列であるようにするステップと、
２．各画像セットに対して、
（ａ）可逆変換を使って前記画像の組を一組の係数に変換し、ここで、前記可逆変換は２段階のハートレー変換を含み、前記２段階のハートレー変換は、任意の順序で、一次元の行のハートレー変換の１回のパスと一次元の列のハートレー変換の１回のパスとを遂行するものであり、前記画像の組を一組の係数に変換することは、前記２段階のハートレー変換の当該段階の間で、前記係数を表すのに用いるビットの数を、前記ビットを各係数の小数点以下一定のビット数に切り詰め又は丸めることにより、減少させることを含み、さらに、
（ｂ）前記係数の組の各係数を量子化し、
（ｃ）前記係数の組の量子化された各係数を、エントロピー・コードに従って符号化するステップとを前記プロセッサに実行させ、
２．前記画像の復元は、
１．前記圧縮された画像データを、エントロピー・コードに従って係数の少なくとも１つの組にデコードするステップと、
２．係数の各組に対して、
（ａ）前記係数を逆量子化し、
（ｂ）前記逆量子化された係数を画像の組に逆変換するステップと、
３．各画像の組を画像に組み合わせるステップとを、前記プロセッサに実行させるようになっている製品。
【発明の詳細な説明】
【０００１】
【発明の分野】
本発明は、概して、画像またはビデオ・データの記憶に関し、特に画像または画像データを記憶および呼出しのために圧縮および伸張する、効率的で高速の方法を提供する。
【０００２】
【発明の背景】
ディスクリート・コサイン変換（Ｄiscrete Ｃosine Ｔransform：ＤＣＴ）およびリアル・フーリエ変換（Ｒeal Ｆourie Ｔransform：ＲＦＴ）などの変換に基づいた画像圧縮の技法はよく知られている。ハートレー変換はディスクリート・コサイン変換およびリアル・フーリエ変換と同じクラスに属する変換のうち、時間領域から周波数領域への変換であり、そのカーネルとして直交基本関数を使う。そのプロトタイプの変換は１９４０年代の初期においてハートレーによって紹介されたが、その現在の名前および形式が与えられたのは最近のことである（Bracewell及びRonald.Nの「高速ハートレー変換(A The Fast Hartley Transform)」、Proceedings of the IEEE、第７２巻、第８号、1984年８月、第１０１０頁乃至第１０１８頁参照）。
【０００３】
Ａ．連続ハートレー変換
時間関数Ｘ（ｔ）の周波数ｆに関するハートレー変換Ｈf（Ｘ）は次の式で与えられる。
【数１】
0004860017.tif 000002
ここで、Ｔdは時間領域（有効な時間値の集合）であり、関数Ｃａｓ（２πｆｔ）が直交基本関数として使われている。Ｃａｓ（ｘ）はコサイン・アンド・サイン(cosine and sine)(ハートレーが使った略号）を意味し、次のように定義されている。
【数２】
0004860017.tif 000003
同様に、時刻ｔにおける周波数関数Ｆ（ｆ）の逆ハートレー変換Ｈt-1（Ｆ）は次の式で与えられる。
【数３】
0004860017.tif 000004
ここで、Ｆdは周波数領域（有効な周波数の集合）である。
【０００４】
ハートレー変換は任意の数の次元にかなり簡単に一般化される。二次元の場合、ハートレー変換は次の式で与えられる。
【数４】
0004860017.tif 000005
ハートレー変換は任意の数の次元に対して一般化されるが、この積分は分離不可能である。すなわち、そのカーネルを、１つはｆ1ｔ1だけに依存し、そしてもう１つはｆ2ｔ2だけに依存する２つの関数の積に分離することはできない。変換の分離可能性は実装および最適化を容易にするために非常に重要である。ベースとしてｃａｓ（２πｆｔ）関数を使って分離可能性を実現するために、ダイレクション・ベクトルとしてｔ1およびｔ2を使う平面上での方向付けられた波のきれいな物理的解釈は捨てられ、直観性は劣るが、その軸に対して直角である波の積で置き換えられなければならない。したがって、二次元におけるハートレー変換の分離可能な変形版は次の式のようになる。
【数５】
0004860017.tif 000006
【０００５】
Ｂ．ディスクリート・ハートレー変換
ほとんどの変換の場合のように、ハートレー変換のディスクリート・バージョンはいくつかの論文においてブレースウェルによって説明されている（たとえば、Bracewell及びRonald N.の「高速ハートレー変換(A The Fast Hartley Transform)」、Proceedings of the IEEE、第７２巻８号、１９８４年８月、第1010頁乃至第1018頁）、および、Bracewell、Ronald.N.、O.Buneman、H.HaoおよびJ.Villasenorの「高速二次元ハートレー変換(A Fast Two-Demensional Hartley Transform)」(Proceedings of the IEEE）、第７４巻９号、１９８６年９月、第1282頁乃至第1283頁参照）。ディスクリート・バージョンはコンピュータの実装に対して特によく適している。Ｎ個の点において定義される周波数ｆに関連してのベクトルＸのディスクリート・ハートレー変換（Ｄiscrete Ｈartley Ｔransform：ＤＨＴ）ＨN,f（Ｘ）は次の式によって与えられる。
【数６】
0004860017.tif 000007
ここで、ｆ０｛０，．．．，Ｎ−１｝である。Ｎ個の点において定義される時刻ｔにおけるベクトルＦの逆ＤＨＴ  ＨN,t-1（Ｆ）は次の式で与えられる。
【数７】
0004860017.tif 000008
ここで、ｔ０｛０，．．．，Ｎ−１｝である。単純化のため、そして一般性を失わないために、すべての次元における点の数は等しいことを仮定して、二次元（２‐Ｄ）のＤＨＴは次の式で与えられる。
【数８】
0004860017.tif 000009
これは分離可能である。言い換えれば、２ＤのＤＨＴは２Ｄの行列Ｘの行について計算され、そして次にその列について計算される一次元の（１Ｄ）変換ＨN,f（Ｘt,t）だけを使って計算することができる。
【０００６】
ハートレー変換は各種のコンテキストにおいて使われてきた。ハートレー変換は画像圧縮について考慮されてきたが、ハートレー変換を使った圧縮アルゴリズムの開発は、あったとしてもごく少なかった。いくつかの論文においてはディスクリート・ハートレー変換は候補のリストの中に含まれており、そしてＤＣＴに対して比較されたが、ほぼ等価であるとして直ぐに捨てられるだけであった。Bracewellはハートレー変換についていくつかの論文および本を書いたが、圧縮の目的でそれを考慮することはなかった。William Prattによる「ディジタル画像処理(Digital Image Processing)」(John Wiley ＆ Sons、第２版、１９９１年）において、ハートレー変換は、変換のかなり優れた網羅的なリストの一部として提示されているだけである。Bracewellによる論文の中で、高速ハートレー変換のための技法が提示されているが、すべてかなり一般的な場合を考慮している。以前の論文は与えられたサイズに対する変換行列の実際の数値の使用は探索せず、そして画像圧縮に対して有用な、より効率的なアルゴリズムを得るためにこれらの値をどのように利用することができるかについては探索しなかった。
【０００７】
ディジタル画像を効果的に圧縮および伸張するために、ディスクリート・ハートレー変換などの変換の利点を利用する実際的な方法が望まれている。
【０００８】
【発明の概要】
本発明は、ディジタル形式での画像の記憶および呼出しのために画像データを効率的に圧縮し、そして伸張するための、ディスクリート・ハートレー変換などの可逆変換の使用に向けられている。本発明の画像圧縮方式は、画像データを１つまたはそれ以上の画像の組に分割し、各画像の組はその画像からのピクセル・データの方形行列を表している。各画像の組はハートレー変換などの可逆変換を使って１組の係数に変換され、その係数は量子化され、エントロピー・コーダを使って符号化される。圧縮された画像の各組に対する結果の符号化されたデータの組が、それ以降での伸張のために記憶される。記憶されたデータの画像への伸張方式は、本質的にはその圧縮方式の逆である。
【０００９】
【発明の詳細な記述】
ディスクリート・ハートレー変換の利点の１つは、その変換行列の挙動が特に良いことである。たとえば、カーネルのサイズがＮ＝８として選定されている特殊ケースにおいて、計算時間およびハードウェアが大幅に節約されるように、非常に重要ないくつかの最適化を行うことができる。本発明によると、カーネルのサイズがＮ＝８である２ＤのＤＨＴに基づいたアルゴリズムが、高速画像圧縮および伸張システムの一部として利用される。Ｎの他の値（ＤＨＴに対する他のカーネルのサイズを表している）も、本発明の内容に関連して利用することができる。
【００１０】
Ａ．  行列ＨNの性質および画像圧縮
高速変換を選択する際、興味深い多くの特性がある。データを圧縮および伸張するために変換の使用を考慮する場合、それらの特性のうちの１つは、可逆性、すなわち、伸張のために使われる逆変換が、圧縮のために使われる順方向の変換と同じである（一定の範囲内で）ことである。もう１つは、単純性である。さらに、変換が対称的に行われる場合、すなわち、順方向および逆方向の変換が同じである場合、実装における利点が存在する。１つのハードウェア装置、またはアルゴリズムを使って、順方向の変換およびその逆の変換の両方を計算することができる。高速変換の構築のために興味深いさらにもう１つの性質は、変換行列の中にある異なる値の実際の個数である。
【００１１】
上記の式（１）および（２）から、ディスクリート変換のペアを対称的に表現できることが分かる。順方向の変換はｋＨNＸT＝Ｆとして表される。ここで、ユニタリ変換行列ＨNはｔ、ｆ ０｛０，．．．，Ｎ−１｝に対して、ｈft＝ｃａｓ（２πｆｔ／Ｎ）、であり、定数ｋ＝１／Ｎ、そしてＸTはベクトルＸの転置ベクトルである。逆変換はＨNＦT＝Ｘによって表される。したがって、ＨN（ｋＨNＸT）Ｔ＝Ｘであり、それはＤＨＴが可逆変換であることを証明している。これによって、ＨN-1＝ｋＨNであることが結論付けられる。これは最も便利である。というのは、逆変換は単純にＨNＦ＝Ｘを計算することによって求めることができ、順方向の変換はｋＨNＸ＝Ｆを計算することによって求めることができるからである。
【００１２】
この対称性の特徴は、ハードウェア以外にソフトウェアにおいても利用することができる。すなわち、単独の装置または単独のアルゴリズムを使って、順方向の変換およびその逆の変換の両方を計算することができる。
【００１３】
行列ＨNには、それ自身の逆であるという性質（定数ｋをとりあえず除外して）があるだけでなく、Ｎの選定された値に対して、行列ＨNは異なる値をほとんど含まないことも分かる。たとえば、Ｎ＝８の場合、異なる値は２個だけ（符号をカウントしないで）である。これと比較して、たとえば、ＤＣＴでは、Ｎ＝８の場合、異なる値が６個（符号をカウントせずに）ある。ＤＨＴの他のケース、たとえばＮ＝１６の場合、異なる値は５個である（ここでも符号をカウントせずに）。または、Ｎ＝３２の場合でも８個だけしかない。ＤＨＴの場合、異なる値の個数はＮと共にゆっくりと増加する。
【００１４】
画像圧縮に関連して、ＤＨＴのカーネルのサイズの選定、たとえば、８点のＤＨＴにするか１６点のＤＨＴにするかは、いくつかの相互関連の観察を考慮しながら行われる必要がある。まず第１に、ＤＨＴに対する点の数Ｎは画像のサイズによって制限されない。画像の組として（すなわち、画像のパッチとして）それぞれ２‐Ｄの部分の画像データ要素を含んでいる組（画像データ要素は画素、またはピクセルとしても知られている）を選択することができる。ここで、その組またはパッチのサイズは各次元におけるＤＨＴのサイズにマッチする。第２に、画像の組が小さければ小さいほど、ＤＨＴは与えられたパッチに対して速く計算することができる。パッチが大きくなるにつれて、たとえば、１６×１６または３２×３２の場合、変換は下の方の周波数の係数の量子化に対してより敏感になる。その結果、その組が再アセンブリされて画像に戻されるときにブロックの不連続性の（煩わしい）視覚的影響を有する歪みが生じる可能性がある。第３に、カーネルのサイズがより小さく設定された場合、たとえば、４×４の場合、そのデータの逆相関を効率的に計算することができず、どの係数も０にはならない。
【００１５】
したがって、再構築された画像の品質以外に、計算効率が程良い結果を与える、１つの「妥協」の選定は、８×８ピクセルのパッチ・サイズの場合である。８×８ピクセルのサイズで、ブロッキングの効果が気にならずに、比較的大きな量子化を適用することができ、また、平均して多くの係数が０となり、あるいは少なくとも非常に少数となる。
【００１６】
したがって、パッチ・サイズが８×８、すなわち、Ｈ8の場合、ハートレー変換を効率的に計算するアルゴリズムが本発明に従って得られる。Ｎ＝８の場合のＤＨＴカーネルが図１に示されている。実際に、ＤＨＴの対称的な性質およびＨN（Ｈ8だけではない）のカーネルの中の異なる値の数が少ないという性質によって、１‐Ｄの高速ハートレー変換を使った計算が可能となる。すなわち、Ｏ（Ｎｌｏｇ  Ｎ）のオーダでのアルゴリズムによって計算される変換が得られ、それは分離できない２‐Ｄのアルゴリズムの場合に必要なＯ（Ｎ2）のオーダよりずっと効率的である。
【００１７】
Ｎ＝８の場合（すなわち、Ｈ8の場合）、カーネルの値ｈftは∀１、０、または∀／２（図１に示されているように）である。０の項を計算から平凡に取り除くことができる。ｈft＝∀１のときは常に、乗算は不要であり、整数の加算または減算だけで済む。∀／２の項はほんの少しだけ計算的に複雑であるが、その必要な２つの乗算を一連のビット・シフトと加算によってハードウェアで近似することができる。ベクトルＸの中の値の精度（必要な正確なビット数の意味での）が与えられて、いくつかの整数ａに対して∀／２の妥当な近似値を計算するために必要な項の数は非常に少ない。実際に、実験によると、∀／２を∀１．５で置き換えることによっていくつかの場合に満足な結果が提供されることが分かっている。
【００１８】
Ｎ＝８のケースに対して、ＤＨＴのための「バタフライ」計算が図２に示されている。高速フーリエ変換の場合と同様に、これはより一般的な意味でのハートレー変換の特殊ケースである高速ハートレー変換（ＦＨＴ）として示される。Ｎが他の値の場合、ＦＨＴのアルゴリズムを、ＤＨＴカーネルの中の点の数Ｎが２のべき乗である場合に最適化することができる。Ｎが２のべき乗の値である場合、最後に必要な定数ｋ＝１／Ｎによる除算は、固定のビット・シフトに帰せられ、それはハードウェアで簡単に計算することができ（バレル・シフタでさえも不要なので）、そしてソフトウェアでは最小限の時間で計算することができる。
【００１９】
二次元の場合、分離できない２‐Ｄ行列ＨN,N（次元が４つである）に行列Ｘ（次元が２である）を乗算して行列Ｆ（やはり次元が２である）を得る必要がある。しかし、ここでは変換の分離可能なバージョンを使っているので、行列ＨN,Nは不要であり、ＨNだけで済む。一般に、この分離可能な行列を使うアルゴリズムはＯ（ｍＮm log Ｎ）のオーダでの計算を必要とする。ここで、ｍは次元の数である（そして各次元においてＮ個の点だけを仮定している）。したがって、分離可能な２‐ＤのＦＨＴの場合、計算の回数は直接的な変換（平凡な行列の乗算を使っている）の場合のＯ（Ｎ3）の代わりに、Ｏ（Ｎ2ｌｏｇＮ）のオーダである。
【００２０】
図１および図２から分かるように、Ｎ＝８での高速ＤＨＴの場合、８点のＦＨＴを計算するために２回の乗算と２９回の加算だけが必要である。これに比べて、たとえば、高速ＤＣＴ（ＦＤＣＴ）では、２２回の加算と１１回の乗算が必要である。しかし、他の人によって指摘されているように、ＦＤＣＴの場合に必要な多くの乗算は同じ係数の倍数を使用する。したがって、速度を改善するために、いくつかの応用においては、それらの乗算はＦＤＣＴから取り出され、それに続く量子化方式の中に組み込まれる。したがって、ＦＤＣＴのアルゴリズムでの正確な結果を仮定するには、その量子化まで進まなければならない。これによって乗算の回数が（完全でない）ＦＤＣＴにおいて５まで減らされ、一方、量子化のステップに対して実際には追加するものは何もない。
【００２１】
同様な削減をＦＨＴに関して採用することができ、Ｎ＝８の場合のＦＨＴの計算は乗算が全く不要で、加算のみとなる。この技法は常に最適の結果を提供するわけではないが、このアルゴリズムの計算をスピードアップするための良好なメカニズムを提供する。
【００２２】
Ｂ．  ＦＨＴを使用する画像圧縮
本発明の画像圧縮システムに関連して、ここでＦＨＴを使うための技法について説明する。ここでは提案の方法およびその各種のサブプロセスについて説明する。
【００２３】
他の変換ベースの圧縮方式の場合と同様に、本発明の圧縮方式は量子化および、記憶されるべき情報の実際の量を減らすための方法として間引き(decimation)を含む。これは認知されるように重要な情報が破壊されないことを保証しながら行われる。データの圧縮は量子化および間引きのプロセスにおいて捨てられたビットの量によって得られる。しかし、得られる実際の圧縮の量はその画像に必要な品質によって制約される。
【００２４】
本発明の１つの実施形態によると、与えられたサイズ（たとえば、上記のようにＮ＝８）の場合の変換行列の実際の数値的な値を、画像圧縮プロセスの一部として、そのＦＨＴが加算および減算だけを使って（乗算なしで）計算するか、あるいは加算、減算およびビット・シフトだけを使って計算できるように利用することができる。
本発明のさらに詳しい側面について以下に説明される。
【００２５】
１．  精度の制御
ＦＨＴの興味深い性質はアルゴリズムの複雑性に関するものだけでなく、実際の数値的な出力にも関連がある。まず最初に、８点のＦＨＴに対する係数の出力の半分が正確な整数値である。というのは、それらは整数の演算だけで計算されるからである。他の４つは量∀ａ／２の十分に正確な近似を使うことによって程良い精度を保つようにすることができる。したがって、本発明に従って、ＦＨＴ変換は変換の段階の間でのその変換による係数の出力の量子化と組み合わせて使うことができる。すなわち、圧縮を強めるため、あるいは必要なハードウェアの量を最小化するために、いくつかのビットを捨てることができる。これは以下に説明されるように、変換アルゴリズムの精度を制御することによって実現される。
【００２６】
本発明によるＦＨＴアルゴリズムの最適精度制御が図３に示されている。精度コントローラがそのＦＨＴ変換によって操作されるビットの数を支配する。ソフトウェアの実装においては、精度パラメータ制御の結果、量子化が小さいときにはより正確な計算が得られ、そして量子化が高いときは低い精度となる。ソフトウェアにおいては整数のビット数は固定であるので、スピードの面での計算的な利点はない。しかし、ハードウェア実装においては、低い精度において高い量子化が得られるだけでなく、ＦＨＴ変換器に対する設計の複雑度を少なくすることができる。
【００２７】
実験において、精度は或る個数のビットだけを保持することによって制御された。その数は小数点の後のビットの数が実験によって変更された（すなわち、実験は小数点の後の６個のビットが保持されるか、小数点の後の３つのビットが保持されるか、あるいは何も保持されないかのいずれかでの精度制御を使って行われた）。丸めの誤差の制御はなく、数値は単純に切り詰められた。
【００２８】
図３を参照して、本発明による精度コントローラが８×８のＦＨＴを参照して説明される。８×８の配列のピクセルを含んでいる一組の画像データ３０１が、画像パッチの行（「行のＦＨＴ」）について演算する１‐ＤのＦＨＴ３０２によって処理される。次に、行のＦＨＴの出力（データの８×８の配列）は量子化手段ＱR３０３によって量子化され、画像パッチ３０１上の行ＦＨＴ３０１の演算からの出力において含まれるビットの数が減らされる。次に、それ自身が８×８のデータである量子化手段ＱR３０３の出力３０４は、８×８の配列のデータの列（「列のＦＨＴ」）について演算する１‐ＤのＦＨＴ３０５によって処理される。その列のＦＨＴの出力は次に量子化手段ＱC３０６によって量子化され、データ・パッチ３０４上の列のＦＨＴ３０５についての演算からの出力に含まれるビット数が削減される。
【００２９】
この分野の技術に熟達した人であれば、上記の精度制御のオプションはＮ＝８以外のサイズのＮのＦＨＴに対しても適用できること、そして精度制御は、たとえば、切り詰め以外の丸めによって、本発明の利点から逸脱することなしに、各種の同様な方法で実現できることを理解されたい。
【００３０】
２．  出力の係数の量子化について
ＦＨＴステップが実行されると（オプションの精度制御を含めて）、そのＦＨＴプロセスから得られる係数が１つの組として、圧縮の度合いを増加させるために量子化される。係数を量子化する戦略は、保持される係数を量子化しながら重要度の低い係数を捨てることである。どの係数が最も重要であるかが分かっていると仮定して、あるいはそれらの順序について少なくともいくつかのアイデアがあるとして、重要度が最高の係数が最初に来て、重要度が最低の係数が最後に来るようにソートする関数ｆ（ｉ，ｊ）が必要である。これを行うための１つの方法は、当て推量による方法であり、既知の変換の性質を使って、そして本発明の内容に従って圧縮されるべき画像における何らかの頻度分布を仮定する。
【００３１】
代わりに、係数のソーティング関数ｆ（ｉ，ｊ）は、どの係数がより多くのエネルギーを含むかを、多種多様な長いテスト・セットにわたって統計的に決定することによって学習し、その係数をそれに従ってソートすることができる。係数の関数ｆ（ｉ，ｊ）またはそのランクは、２１５個の画像からのほぼ１，０００，０００パッチのサンプルを使って実験的に学習された。係数のランキングを学習するために、各ｉ，ｊ  ０  ｛０，．．．，７｝に対して係数の絶対平均エネルギー、Ｅ［｜Ｆij｜］が計算された（ここで、Ｆは変換された行列である）、そして次に、その係数が大きさの降順にソートされた。関数ｆ（ｉ，ｊ）は部分的な順序を設定し、Ｆ’f(i,j)＝Ｆijとなるように、そして一般に、Ｅ［｜Ｆ’0｜］∃  Ｅ［｜Ｆ’1｜］∃．．．∃  Ｅ［｜Ｆ’m-2｜］  ∃  Ｅ［｜Ｆ’m-1｜］となるようにする。ここで、ｍ＝Ｎ2である。この順序付けの関数が得られると、量子化を適用することができる。本発明に対して実験に関連して使われた量子化関数は次の形式のものである。
【数９】
0004860017.tif 000010
ここで、ｇ（ｃ，ｆ（ｉ，ｊ））は、パラメータｃ  ∃  １、の「品質」ファクタでのｆ（ｉ，ｊ）における或る単調増加関数である。関数ｇ（ｃ，ｆ（ｉ，ｊ））は関数ｆ（ｉ，ｊ）の何らかの順序付けの間違いを最小化するか、あるいは訂正するために十分に緩やかな傾斜で単調に増加する必要がある。実験によると、関数ｇ（ｃ，ｆ（ｉ，ｊ））＝ｃ１．０２５f(i,j)が満足できることが分かった。この量子化関数を適用する効果は（損失のある）圧縮の手段としてビットを捨てることである。
【００３２】
３．  モノクロ画像の圧縮
図４を参照して、本発明の画像圧縮方式が以下に説明される。次の説明において画像はモノクロ画像の表示であること（すなわち、その画像の各データ点はグレイ・スケールの視覚的情報を表している単独の値から構成される）が仮定され、カラー画像についての本発明の圧縮方式の適用については、モノクロのセクションに続くセクションにおいて説明される。例を示す目的で、８点のＦＴＨ（すなわち、Ｎ＝８）がハートレー変換（あるいは、より一般的には、可逆の）に対して使われている。この分野の技術に熟達した人であれば、本発明の圧縮方式はＮ＝８以外のＦＨＴサイズに対しても適用できることが分かる。
【００３３】
元の２‐Ｄのモノクロ画像４０１から１つまたはそれ以上の画像の組が抽出され、そのような各画像の組は、使用されるＦＨＴ変換のサイズに等しい次元を有するピクセルの配列から構成されている。例を示す目的のために、８点のＦＨＴが使われることが仮定されているので、各画像の組は８×８の配列である。ＦＨＴは任意のサイズが可能であり、ここで使用されるＦＨＴ変換のサイズは画像そのもののディメンジョンに等しく、処理される必要があるのは単独の画像の組、すなわち、画像そのものだけであることは指摘されるべきである。したがって、たとえば、その画像が５１２×５１２ピクセルの配列である場合、５１２点のＦＨＴを使ってその画像を圧縮することができる。画像の組の数は使用される画像パッチのサイズに対するその画像サイズの比から求められる。したがって、たとえば、その画像が５１２×５１２ピクセルの配列であって、画像パッチの組が８×８（すなわち、８点のＦＨＴで使われる）であった場合、抽出されて処理される画像の組の数は６４×６４、すなわち、４，０９６組となる。各画像の組（単独の画像の組がその画像全体を含んでいる場合を含めて）は、選択された画像の組４０２に関して以下に説明されるステップに従って処理される。
【００３４】
画像の組４０２は８点のＦＨＴ変換手段４０３によって処理され、ここでＦＨＴ変換の手段は図３に関して上で説明されたのと同じ機能を含む。したがって、そのＦＨＴは２パスの１‐ＤのＦＨＴを使うことによって計算される。すなわち、行のＦＨＴおよび列のＦＨＴについて計算され、ここで行のＦＨＴおよび列のＦＨＴは任意の順序で適用することができる。オプションの精度コントローラを使って、ＦＨＴの精度を制御することができる。ＦＨＴ変換手段に続いて、出力の係数が量子化手段４０４によって量子化される。それは上記の学習した量子化を使うか、あるいは圧縮中の画像データのタイプに適している可能性のある別の量子化方式を使って行われる。次に、量子化された係数がエントロピー・コーダ４０５へ出力され、エントロピー・コーダ４０５は各係数を符号化し（すなわち、係数の各値をその値に対してあらかじめ割り当てられているコードで置き換え）、それによってディジタル・メモリの中に記憶することができるデータの符号化されたビットストリームを発生する。
【００３５】
本発明の画像圧縮方式は各種のエントロピー符号化技法で使えるように設計されているが、最適のコーダはＦＨＴによって出力される係数値の確率分布にマッチするものとなる。本発明に従って、正準ハフマン符号化ツリーを使って１つのコーダが得られた。それはＦＨＴによって出力される係数の限界値および確率分布を使って０の回りの整数の特別の表現を作ることによって得られた。０の文字列は特殊ケースとして扱われた。この例に対する符号化テーブルが図５Ａに示されており、そしてそれは実験において成功裡に使われた。
【００３６】
本発明に従って、より一般化された符号化方式が図５Ｂおよび図５Ｃを参照しながら以下に説明される。それはＦＨＴ演算からの結果の０を中心とした単峰形の係数の組について演算する（これによって、図５Ａの符号化テーブルの中に示されているような、対称的なコードが可能である）。図５Ｂのステップ５０１に示されているように、完全な正準ハフマン符号化ツリーがその変換からの係数値の期待される分布に対して計算され、頻繁に現われる符号はすべてそのツリーの同じ側にあるように計算される（正準ハフマン符号化ツリーを計算するための技法は、この分野の技術に熟達した人にとってよく知られている）。非正準ハフマン符号化ツリー（図５Ｃのスケッチ（ａ）に示されている）と対照的に、正準ハフマン符号化ツリーは図５Ｃのスケッチ（ｂ）に示されているように、長さが同じであるすべての符号が昇順になっている。したがって、シンボルＡ〜Ｆに対する符号（すなわち、符号化されている「値」）は、図５Ｃ（ａ）および（ｂ）に示されている非正準および正準ハフマン符号化ツリーに対して次のように与えられる。
【外１】
0004860017.tif 000011
同様に、図５Ａの符号化テーブルの中の値も昇順に示されている。
【００３７】
次に、図５Ｂの中のステップ５０２において、長さが等しいすべてのコードは共通のグループの中に組み合わせされ、あるいは融合される。このプロセスは「リーフ・フュージョン」としても知られており、図５Ｃ（ｂ）の正準ハフマン符号化ツリーに対して図５Ｃのスケッチ（ｃ）に示されている。シンボルＡおよびＢに対するコード（それぞれ長さ２ビット）が１つのグループに組み合わせされ、そしてシンボルＣ〜Ｆ（それぞれ長３ビット）が第２のグループに組み合わされる。図５Ｃ（ｂ）および（ｃ）の例において、これらの２つの集合が第１ビットによってユニークに識別されることに注意すべきである。すなわち、第１ビットが＞０’であった場合、そのシンボルは第１のグループからのＡまたはＢのいずれかとなることが分かる。しかし、第１ビットが＞１’の場合、そのシンボルは第２グループのＣ〜Ｆのうちの１つとなることが分かる。シンボルまたは値のグループをユニークに識別する、コードのこの部分は、プリフィックスとして知られている。
【００３８】
シンボルまたは値の各グループをそのコードのプリフィックス部分によって識別することができるので、各コード・グループには図５Ｂの中のステップ５０３において、正準ハフマン符号化ツリーの構造に基づいたプリフィックスが割り当てられる。
【００３９】
各グループの内部で、符号化されている値またはシンボルはそのサフィックス、すなわち、プリフィックスの後の残りのビットによってユニークに識別される。図５Ｃ（ｂ）の中で示されているグループにおいて、プリフィックスが＞０’である第１のグループ｛Ａ，Ｂ｝は、第２の（サフィックス）ビットによって識別される。サフィックス・ビットが＞０’の場合、そのシンボルはＡであり、サフィックス・ビットが＞１’の場合、そのシンボルはＢである。同様に、第２のグループの場合、４つのシンボルＣ〜Ｆはプリフィックス・ビット（＞１’）によって１つのグループとして識別され、そしてそのグループの内部では第２の２個の（サフィックス）ビットによって識別される（たとえば、そのサフィックス・ビットが＞１１’であった場合、そのシンボルはＦである）。したがって、図５Ｂの中のステップ５０４において、各グループの中でそのシンボルには正準ハフマン符号化ツリーの構造に従って１つのサフィックスが割り当てられる。
【００４０】
このように、図５Ａに示されているコードを調べることによって、そのようなコードはプリフィックス（第１の部分、すなわち、「１」および「０」が示されている）およびサフィックス（プリフィックスの後のコードの部分を表すために使われる「１」および「０」の後に示されているビット数に対する数値）を有していることが分かる。プリフィックスはコード長が同じである値の範囲またはグループを識別するために使われ、そしてサフィックスはその値の範囲またはグループの内部での個々の値を識別するために使われる。
【００４１】
本発明の正準ハフマン符号化ツリー・プロセスを使って、そのデコード・プロセスは次の通りである。まず最初に、そのコードの先頭の部分が既知のプリフィックスに対してマッチされ、そのグループが識別される。グループが識別されると、そのサフィックスがそのグループに対する既知のサフィックスに対してマッチされ、そのグループの内部での特定のシンボルまたは値が識別される。
【００４２】
図５Ａ乃至図５Ｃに示されているような、本発明のエントロピー・コーダを使うことは、ハフマンまたはソロモン‐ゴロム(Solomon-Golomb)符号化方式などの他のエントロピー符号化技法に比べて利点がある。たとえば、本発明のエントロピー・コーダは、変換される画像データの中に普通に見られるような、比較的広い範囲の頻度分布の係数を処理することにおいて優れている。というのは、コーダのための決定ツリーが、ハフマンまたはソロモン‐ゴロムのコーダに対する決定ツリーより複雑でないからである。本発明のエンコードおよびデコードのプロセスは他の方式よりも高速である。というのは、その決定ツリーの深さが短いからである。この分野の技術に熟達した人であれば、ＤＨＴ以外の変換（たとえば、ＤＣＴ）が使われる場合に、本発明のエントロピー・コーダの利点を享受できることが分かる。
【００４３】
ここで画像圧縮方式に戻って、一組の画像に対する上記の圧縮技法が、すべての画像データが処理されるまで残りの画像の組に対して繰り返される。その画像の組が水平方向または垂直方向の順序で抽出されて処理されたかどうかは、伸張の手段によってその画像を再構築するために使われるのと同じ順序である限り、重要ではない。次々の画像パッチの間の画像データのオーバラップは不要である。圧縮された各画像の組に対して、結果の符号化されたヒストグラムがそれ以降の伸張のために格納される。
【００４４】
圧縮された画像の復元（すなわち、格納されたデータを伸張して画像データに戻すこと）は圧縮プロセスの正確に逆である「伸張」のプロセスである。したがって、エントロピー符号化ビットストリームから出発して、そのビットストリームは係数にデコードされ、その係数は逆量子化され、次にハートレーの逆変換が行われ、そして最後にパッチごとに最終画像に再アセンブルされる。「逆量子化」は量子化の逆である。すなわち、その係数に対する潜在的な値の範囲を拡張するために、ビットまたはディジットを追加することである。例を示すために、値Ｘについて操作している量子化手段は普通は［Ｘ／ｚ］の整数部分を保持しており、ここでｚは量子化係数である。
【数１０】
0004860017.tif 000012
逆量子化手段は量子化係数ｚによってその量子化された値を乗算することによってそのプロセスの逆を実行する。
【数１１】
0004860017.tif 000013
【００４５】
したがって、たとえば、Ｘ＝２１４１、そして量子化係数ｚ＝１０で開始する場合、量子化手段はＹ＝Ｉｎｔｅｇｅｒ［２１４１／１０］＝２１４を結果として得る。逆量子化はＸ＝２１４×１０＝２１４０を与える（量子化プロセスから予期される精度損失が結果として生じる）。代わりに、係数の量子化がそれぞれの相対的な重要度に従って実行された場合、逆量子化はその係数の相対的な重要度に従ってビットの数を同等に拡張、すなわち、復元することによって同様に行うことができる。
【００４６】
オプションとして、変換プロセスの間に採用された任意の精度制御の量子化に対して補正するために、逆変換プロセスの間またはその後において第２レベルの逆量子化を採用することができる。
【００４７】
４．  カラー画像の圧縮
本発明の他の実施形態がここでカラー画像に関して説明される。カラー画像は一連のデータ点として表すことができ、各データ点は３つの成分、普通は、加算的な成分の赤、緑および青を有している。しかし、そのＲＧＢのカラー空間は人間がその精神視覚的内容を認識するのに必要な情報以上の情報を含んでいる。したがって、カラー画像は別のカラー空間、たとえば、ＹＣrＣbカラー空間（ＪＰＥＧで使われているような）へ、既知の変換式を使って変換されるのが普通である。この例においては、カラー成分Ｙはカラー空間の「輝度」（またはグレイ・ケース）の部分を表し、そしてカラー成分ＣrおよびＣbは「色度」（すなわち、カラー情報）を表す。ＹＣrＣbの選定は純粋に任意の決定ではない。というのは、この変換を使うカラー画像の表現は、実験によると、ＹＩＱ，Ｌ＊Ｕ＊Ｖ＊，ＵＶＷなどの他の既知のカラー変換モデルより、量子化に対して許容度が高いように現われるからである。しかし、画像圧縮としての本発明の利点は特定のカラー変換（ＹＣrＣbなど）には限定されない。この分野の技術に熟達した人であれば、本発明の技法は他のカラー変換にも同様に適用できることが分かる。
【００４８】
人間の視覚が輝度および色度の情報に対する認知度が等しくないことはよく知られている。たとえば、人間の視覚は高い周波数の色度情報に対しては輝度情報の場合より感度が小さいことが知られている。カラー画像が輝度情報と色度情報の組合せとして表されるとき、色度情報は再構築されたカラー画像における品質の認知される損失なしに、効率的にサブサンプルされる（高周波の成分を減らして）ことができる。通常、色度の部分はそれに対応している輝度データの部分に比較して４：１のファクタによってサブサンプルすることができる。サブサンプリングはよく知られている多くの技法のうちの任意の１つを使って実行することができる。たとえば、サブサンプリングはピクセルの小さい領域から１つのピクセルを選定し、残りのピクセルを捨てることによって、あるいは或る領域の中の単独のピクセルにその領域内のピクセルの平均値に等しい値を割り当てることによって行うことができる。また、サブサンプリングは１つの領域に対して低域通過フィルタを適用し、そのフィルタされた結果から１つのピクセルを抽出することによっても実現することができる。
【００４９】
本発明の他の実施形態である図６を参照して、本発明の画像圧縮方式がカラー画像（すなわち、入力画像の各データ点がカラーの視覚情報を表している３つの成分の値から構成されている）に対して以下に説明される。ふたたび、例を示す目的のために、８点のＦＨＴ（すなわち、Ｎ＝８）が使われると仮定される。そしてこの分野の技術に熟達した人であれば、この実施形態の圧縮方式はＮ＝８以外のＦＨＴサイズに対しても適用できることが分かる。
【００５０】
元のカラー画像６０１（ＲＧＢのカラー画像または異なる３成分のカラー方式を表している画像であってよい）から、８×８のパッチ６０２が選択され、６０３において既知の変換式を使って、別のカラー空間（たとえば、ＪＰＥＧ）へ変換され、結果として変換された画像パッチ６０４が得られる。この分野の技術に熟達した人であれば、そのカラー変換は任意の画像の組がその画像から抽出される前に、等価的に実行されることが分かる。
【００５１】
画像パッチ６０４の各要素は３つの成分の値、すなわち、Ｃ1、Ｃ2およびＣ3から構成され、したがって、画像パッチ６０４は３つの成分の画像の組として等価的に考えることができ、その成分画像の各要素が、変換されたカラー成分Ｃｉの１つに対応している。６０５に示されているように、カラーの組はサブサンプルされることも可能であり、この場合、上記のように、異なるカラー成分に対するサブサンプリングのレートは、その成分の相対的な物理的認知度によって変わる可能性がある。その結果は３組の変換されてサブサンプルされた成分画像６０６である。
【００５２】
６０７において、ＦＨＴが適用される前に、オプションのベクトル量子化がその変換された画像の３成分６０６に対して適用される。この量子化は異なるパラメータ、すなわち、Ｑ1，Ｑ2およびＱ3によって制御される。これらの成分の量子化は［ＱP（ｘ）］で与えられる。ここで、［ｘ］はｘに最も近い整数である。その成分に関連付けられている空間分解能はそれぞれに異なるので、各種のサブサンプリング（または間引き）およびフィルタリングの段階を量子化と組み合わせて、目にとって必要なだけの情報、あるいは特殊目的があれば、それを含むものだけを保存するようにすることができる。
【００５３】
カラー画像圧縮方式の残りのプロセスは、図４に関連して上で説明されたようなモノクロ画像の場合と同様に進行し、量子化されてサブサンプルされた成分画像の各パッチが、図４のモノクロ画像のパッチと同様に処理される。したがって、各画像成分は８点の二次元ＦＨＴによって６０８において処理される（すなわち、２‐ＤのＦＨＴがオプションの精度制御と一緒に、１‐ＤのＦＨＴの２回のパスを使うことによって計算される）。各成分に対するそのＦＨＴプロセスの出力は、さらに６０９において出力量子化プロセスによって量子化され、６１０においてエントロピー・コーダによって他の画像成分と組み合わされる。
【００５４】
上記のモノクロの方式と同様に、カラー画像の復元（すなわち、格納されたデータを伸張してカラー画像データに戻すこと）は圧縮プロセスの正確に逆の圧縮解除のプロセスである。符号化されたビットストリームは成分の係数にデコードされ、その係数は各成分ごとに逆量子化され、次に各成分が逆ハートレー変換され、ふたたび逆量子化され、そしてスーパーサンプル（拡張）される。その拡張に続いて、カラー成分はカラーの逆変換が行われ（カラー変換が使われていた場合）、最終画像に再アセンブリされる。等価的にカラーの逆変換プロセスを、画像の組の再アセンブリの前ではなく、その画像の組の再アセンブリの後において行うことができる。
【００５５】
Ｃ．  実験結果
前記の説明に従って実施される方法を使って、画像圧縮における実験結果が得られた。その方法は入力のＲＧＢ画像をＹＣrＣbのカラー空間に変換した後、各パッチについてＦＨＴを適用する。この実験のために、３つのプリＦＨＴ量子化要素Ｑ1、Ｑ2およびＱ3が１．０に設定された。すなわち、量子化は行われず、そして異なるカラー成分に対するサブサンプリング・レートはＹに対しては１：１に、ＣrおよびＣbに対しては１：４ＮＩ（ＪＰＥＧの場合と同様に）設定された。
【００５６】
このＦＨＴ変換による係数の出力が量子化され、図５に関して上で説明された可変長整数コーディングの変形版を使って符号化された。３つの異なるハードウェア実装に対応している３つの精度制御設定が選定された。その画像を圧縮アルゴリズムに通した後、圧縮解除された各画像が通常のように次の操作によって与えられるＳＮＲを使ってその元の画像に対して比較された。
【数１２】
0004860017.tif 000014
ここで、Ｙは元の信号であり、∫は再構築された信号である。３つの精度制御設定の場合の圧縮比に対するＳＮＲのプロットが図７に示されている。テスト画像に対するＳＮＲの評価は、テスト・セットの中のいくつかの画像（たとえば、ピエ・モンドリアン(Piet Mondrian)の絵画、他の単純な地理的アブストラクト・アートおよび田園風景）は程良い程度の信号対ノイズ比をキープしながら非常に高い比率で圧縮できることを示している。これらの非常に少数の例外画像は、ＳＮＲ曲線を思いがけず上昇させる結果となり、このアルゴリズムが、２０：１〜４０：１の間の圧縮比での結果が、Ｐ＝０での１０：１の付近の圧縮比の場合より良い結果が得られたという間違った印象を与えている。これらの例外の画像は間違った結論に導くので、図７からは取り除かれている。
【００５７】
高速ハートレー変換とＤＣＴとの比較は、ＦＨＴがＤＣＴとは異なる性質を示すことを表している。ＤＣＴに比べて、ＦＨＴは非常に多くの高周波成分を有する。したがって、ハートレー変換はその画像の高周波成分に関してより多くの情報を抽出する。重い量子化の場合（たとえば、ｃ＝１５０およびｐ＝０）、ブロックの開始点が整列していないように見えるが、高周波成分、すなわち、画像データの中のより細かい詳細）は依然として明瞭であることが観察されている。
【００５８】
デブロッキングのアルゴリズム（ＪＰＥＧに関して使われているようなもの）はまだない。しかし、実験において、画像の詳細度の高い領域におけるリンギングは本発明のＦＨＴベースの圧縮方式に比較して、ＦＨＴではあまりひどくないことが観察されている。ＤＣＴまたはＪＰＥＧの圧縮方式を同じ圧縮比使った場合に示される、画像の高詳細度領域におけるリンギングはずっと多くなる。
【００５９】
Ｄ．  実装
本発明の画像圧縮方式は任意の数の各種のディジタル処理プラットホームにおいて実装することができる。それらは、たとえば高速ディジタル信号プロセッサなどのディジタル信号プロセッサ、たとえば、パソコン（ＰＣ）またはSilicon GraphicsまたはSun Microsystems製のハイエンド・ワークステーションなどのプログラム可能なコンピュータ、あるいは、たとえばフィールド・プログラム可能なゲート・アレイなどのプログラム可能なロジック・デバイスなどである。画像圧縮方式を実装することができるディジタル信号プロセッサ、コンピュータまたはプログラム可能なロジック・デバイスなどは１つのサービス・プラットホームの一部として実装することができる。サービス・プラットホームとしては、アーカイブ画像（たとえば、写真、医学的画像）、ドキュメントまたは地震のデータに対する記憶および検索のプラットホーム、ビデオ・ゲーム・プレイヤー（たとえば、ソニー、または任天堂またはセガによって作られているゲーム・ステーション）またはビデオ応用装置（たとえば、ビデオ・ディスク・プレイヤー、フォトＣＤプレイヤー）などがある。また、この画像圧縮方式はウェブ・ブラウザに対するプラグイン・ソフトウェア・モジュールとして、ＪＰＥＧアルゴリズムがウェブ・ブラウザの中に実装されているのと同様な方法で実装することもできる。
【００６０】
Ｅ．  その他の改善事項
本発明の技法に対する更なる改善の１つとして、０および他の値の係数の連続しているものを処理するために、より高度な符号化方式を採用することができる。ＤＣ項に対するビット数を減らすために、それらは現在差動的に符号化されている（ＪＰＥＧの場合のように）すべての係数に対して算術的コーディングを使うことによって、さらに改善される。デブロッキングのアルゴリズムを使うことによって、別の良好な改善が得られる。そのようなアルゴリズムは圧縮比が高い場合のブロックの不整合を補正し、ブロッキングの効果が消えるか、あるいは比較的目立たなくなるようにする。
【００６１】
本発明の利点を使って達成することができる計算速度および圧縮比は、画像、音声、およびビデオ圧縮およびビデオ電話などの応用において適用することができる。たとえば、ビデオ電話は普通はＩＳＤＮ回線によって制限される。この回線は６４ｋビット／秒または１２８ｋビット／秒である。１２８ｋｂｓにおいては、１２０ｋｂｓまでを画像に対して使うことができる（残りの８ｋｂｓは音声のために使われる。約８ｋｂｓのバンド幅を使って音声の電話の品質以上の品質で伝送する多くの良好な音声コーデックがある）。１２０ｋｂｓのリンクによって３０：１の圧縮比で、そして視覚的に快適性が期待できる３０ｄＢのＳＮＲで、１秒間に約２個のフル・フレーム（３２０×２００×２４ビット）を伝送することができる。差動コーディングおよび運動補正などを使って、上記の圧縮技法を組み合わせることにより、１５フレーム／秒までのより高いレートを達成することができる。
【００６２】
要約すると、高速ハートレー変換に基づいた画像圧縮および伸張システムが提示された。それはソフトウェアで非常に効率的に計算され、あるいはハードウェアで非常に少ない回路で実装できる変換としてＦＨＴの恩恵を利用している。
【００６３】
これまで説明されてきたことは本発明の原理の適用の単なる例である。本発明の精神および範囲から逸脱することなしに、この分野の技術に熟達した人によって他の構成および方法を実施することができる。
【図面の簡単な説明】
【図１】Ｎ＝８の場合のディスクリート・ハートレー変換のカーネルを示す図である。
【図２】Ｎ＝８の場合の高速ハートレー変換のデータフローを示す図である。
【図３】本発明によって使われるＦＨＴにおける精度の制御を示す図である。
【図４】本発明による画像データ圧縮を示しているブロック図である。
【図５Ａ】本発明に従って使われる代表的なエントロピー・コードを示す図である。
【図５Ｂ】本発明に関して使われるエントロピー・コードを計算するための方法を示す図である。
【図５Ｃ】正規のハフマン符号化ツリーの特性を示す図である。
【図６】本発明の代替実施形態による画像データ圧縮を示しているブロック図である。
【図７】各種の精度制御設定および圧縮比に対するＳＮＲの測定値を示す図である。
【図１】
0004860017.tif 000015
【図２】
0004860017.tif 000016
【図３】
0004860017.tif 000017
【図４】
0004860017.tif 000018
【図５Ａ】
0004860017.tif 000019
【図５Ｂ】
0004860017.tif 000020
【図５Ｃ】
0004860017.tif 000021
【図６】
0004860017.tif 000022
【図７】
0004860017.tif 000023