(57)【要約】【課題】複数のスケーリング項、アーリー・アボート、および精度リファインメントを用いた高速変換を提供すること。【解決手段】離散変換を、変換定数の複数のスケーリング項を用いて単独で計算されるサブ変換に分割する。変換係数に対するスケーリングの影響は、量子化値または任意の比較値を適正にスケーリングすることによって随意処理される。修正動作を行なう必要性は、変換係数の増分計算の検査に基づいて検出される。検出後、修正動作が実行される。修正動作には、追加的精度を得るための増分計算のリファインメント、および／または、求められた数が充分な場合に増分計算をアボートする処理が含まれている。【選択図】図３
2004523815.tif 000002
【特許請求の範囲】
【請求項１】
変換方程式を、少なくとも２つの変換定数を有する少なくとも１つの集合にまとめる段階と、
前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングする段階と
を含む方法。
【請求項２】
前記スケーリング項が、前記少なくとも１つの集合からの前記変換定数のいずれかである、請求項１に記載の方法。
【請求項３】
前記変換定数の各々が、２のベキ乗の和によって近似値が求められた推定変換定数によって表されている、請求項１に記載の方法。
【請求項４】
データを少なくとも１つのブロックに分離し、適用された方程式により前記ブロックを変換データに変換することにより、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持する段階をさらに含む、請求項１に記載の方法。
【請求項５】
前記スケーリング項が既定の費用関数に基づき選択される、請求項１および４のいずれかに記載の方法。
【請求項６】
前記既定の費用関数を、任意の変換係数に関する最大誤差が既定の誤差率よりも大きくならないように前記スケーリング項を選択することによって判断する段階をさらに含む、請求項５に記載の方法。
【請求項７】
前記既定の費用関数を、既定の変換定数の誤差が既定の誤差率以下となるように前記スケーリング項を選択することによって判断する段階をさらに含む、請求項５に記載の方法。
【請求項８】
ある集合の全変換定数が既定の特性を備えた同時２進表現を有するように前記変換定数の前記スケーリング項および表現を選択することによって、前記既定の費用関数を判断する段階をさらに含む、請求項５に記載の方法。
【請求項９】
ある集合の全変換定数が最少の共通する２のベキ項を備えた同時２進表現を有するような前記変換定数の前記スケーリング項および表現の選択が、２進算術シフトの方が乗法演算よりも効率的である場合に実行される、請求項８に記載の方法。
【請求項１０】
前記スケーリングされた定数の全表現が、
ａ）第１変数を前記ブロックの第ｉ番目の要素に設定する段階と、
ｂ）第２変数を２の値に初期化する段階と、
ｃ）ビットマスクを２進数の３に初期化する段階と、
ｄ）前記ビットを分析することにより、前記第１変数によって示される前記第ｉ番目の要素が、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
ｅ）前記第２変数を前記第１変数に追加して、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１によって求められる２のベキ乗の効果的変更を行なうことにより、第ｉ番目の要素を符号化する段階と、
ｆ）新規表現を求めるとともに、前記第１変数を第ｉ＋１番目の要素に設定する段階と、
ｇ）前記ビットマスクと前記第２変数を左に１ビットシフトさせる段階と、
ｈ）段階ｄ−ｇを繰り返す段階と
により求められる、請求項９に記載の方法。
【請求項１１】
前記マスクビットと一致する前記第１変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が０となり、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１の並べ換えに用いられる２のベキ乗を増加させる段階をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記既定の特性が非ゼロの２のベキ項の最大化クラスタリングを含む、請求項９に記載の方法。
【請求項１３】
ある集合の全変換定数が非ゼロの２のベキ項の最大化クラスタリングを備えた同時２進表現を有するような前記スケーリング項の選択が、小さい整数を用いた乗法演算の方が大きい数を用いた乗算よりも好ましい場合に実行される、請求項１２に記載の方法。
【請求項１４】
前記定数を表す２のベキ多項式の前記係数が非ゼロか追跡する、請求項１３に記載の方法。
【請求項１５】
前記ビット位置の値によって前記２のベキ項が決まる、請求項１４に記載の方法。
【請求項１６】
前記非ゼロの２のベキ項のクラスタリングの最大化が、
ａ）第１変数を前記ブロックの第ｉ番目の要素に設定する段階と、
ｂ）第２変数を２の値に初期化する段階と、
ｃ）ビットマスクを２進数の３に初期化する段階と、
ｄ）前記ビットを分析することにより、前記第１変数によって示される前記第ｉ番目の要素が、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
ｅ）前記第２変数を前記第１変数に追加して、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１によって求められる２のベキ乗の効果的変更を行なうことにより、第ｉ番目の要素を符号化する段階と、
ｆ）新規表現を求めるとともに、前記第１変数を第ｉ＋１番目の要素に設定する段階と、
ｇ）前記ビットマスクと前記第２変数を左に１ビットシフトさせる段階と、
ｈ）段階ｄ−ｇを繰り返す段階と
により前記スケーリングされた定数の全表現を求める段階を含む、請求項１３に記載の方法。
【請求項１７】
前記マスクビットと一致する前記第１変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が０となり、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１の並べ換えに用いられる２のベキ乗が増加する段階をさらに含む、請求項１６に記載の方法。
【請求項１８】
前記各集合は、部分演算の変換方程式による互いに素な集合である、請求項１に記載の方法。
【請求項１９】
前記各集合は、部分演算の変換方程式による互いに素な集合ではない、請求項１に記載の方法。
【請求項２０】
前記少なくとも１つの集合の各々の前記変換定数に対して独立したスケーリング項を選択する段階をさらに含む、請求項１９に記載の方法。
【請求項２１】
変換中に変換係数の増分計算により求められた少なくとも１つの数を検査する段階と、
検査に基づく修正動作を行なうべきか否かを判断する段階と、
修正動作が必要と判断された場合にその修正動作を実行する段階と
をさらに含む、請求項１に記載の方法。
【請求項２２】
前記修正動作の実行を判断する段階において、前記変換係数の前記増分計算が容認できない精度の変換係数となるか否かを検出し、前記修正動作の実行において、前記少なくとも１つの数をリファインメントする、請求項２１に記載の方法。
【請求項２３】
前記変換は変換行列を含み、前記リファインメントにおいて、前記変換定数の前記増分計算の精度を高めるために、リファインメント行列を使用する、請求項２２に記載の方法。
【請求項２４】
前記リファインメント行列は、
【数１】
2004523815.tif 000041
を含む、請求項２３に記載の方法。
【請求項２５】
概算された変換定数に基づく少なくとも１つのリファインメント行列を生成する段階をさらに含む、請求項２１に記載の方法。
【請求項２６】
前記少なくとも１つのリファインメント行列の生成は、オフラインまたは初期化時に実行される、請求項２５に記載の方法。
【請求項２７】
前記少なくとも１つのリファインメント行列を生成する段階において、近似変換が可逆であることを認識し、
【数２】
2004523815.tif 000042
によって求められるリファインメント行列を生成し、効率的な計算を行なうために前記変換を構造化する、請求項２５に記載の方法。
【請求項２８】
前記少なくとも１つのリファインメント行列を生成する段階は、
前記変換を生成する変換行列の第ｎ列の復元が不可能であることを認識する段階と、
前記変換行列の一部に対する疑似逆行列を計算する段階と、
前記変換行列の前記疑似逆行列を使用して前記少なくとも１つのリファインメント行列の近似を生成する段階と
を含む、請求項２５に記載の方法。
【請求項２９】
前記リファインメント行列の前記近似は、
【数３】
2004523815.tif 000043
を含む、請求項２８に記載の方法。
【請求項３０】
前記修正動作の実行を判断する段階において、さらに、前記増分計算の終了に伴う誤差が容認できないものか否かを判断し、前記修正動作の実行において、変換係数の前記増分計算をアボートする、請求項２１に記載の方法。
【請求項３１】
前記増分計算は、前記増分計算により既定の範囲内の数が得られると判断された時点で終了する、請求項３０に記載の方法。
【請求項３２】
前記既定の範囲内になることが予想される数は、精度要件を満たす変換係数を有している、請求項３１に記載の方法。
【請求項３３】
前記増分計算は、前記変換係数へのリファインメントが結果に変化を与えないと判断された時点で終了する、請求項３１に記載の方法。
【請求項３４】
前記増分計算結果の相対的大きさをチェックした後、少なくとも１つの変換係数の中間計算結果が別の変換係数の中間計算結果よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、請求項３３に記載の方法。
【請求項３５】
少なくとも１つの増分計算結果の大きさをチェックした後、前記変換係数の少なくとも１つの中間計算結果が既定のしきい値よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、請求項３３に記載の方法。
【請求項３６】
前記判断において、さらに、変換係数が、０の既定範囲内になると判断し、前記修正動作の実行において、前記変換係数の前記増分計算をアボートする、請求項２１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概してデータ処理に関し、詳しくは、複数のスケーリング項、アーリーアボート、および精度リファインメントを用いた高速変換に関するものである。
【０００２】
【従来の技術】
データをあるドメイン（例えば、標本データ）から別のドメイン（例えば、周波数空間）へデータを取り込む変換は、多くの信号および／または画像処理に用いられている。このような変換は、データ分析、特徴の識別および／または抽出、信号相関、データ圧縮、データ埋込み／ウォーターマーキング等の（ただし、これに限定されない）種々の用途に利用されている。
【０００３】
データ処理において、データは、通常、標本離散関数として表される。この離散表現は、決定論的または統計的に作成される。決定論的表現ではデータの点特性が考慮され、統計的表現ではデータの平均値特性が指定される。例えば、データ圧縮のために離散コサイン変換を使用することは、技術上周知である。本書に引用する具体例では、項画像および画像処理が使用されているが、本発明は、画像処理に限定されるものではなく、オーディオ・データ、科学的データ、画像データ等の種々のデータの処理に利用できることは、当業者の理解するところである。
【０００４】
デジタル画像処理システムでは、デジタル画像信号の形成は、まず初めに２次元画像をグリッドに分割することによって行なわれる。グリッド内の各画素、すなわち、ピクセルは、輝度および色などのいくつかの視覚的特性と関連づけられており、これらの特性は数値形式に変換される。次に、デジタル画像信号が、画像内の各画素に関連づけられている数をデジタル画像信号の受信機が解釈できる数列にアセンブルすることによって形成される。
【０００５】
データを用いる実際の応用に際してデータが多すぎる場合、データ圧縮は、多くのデータ処理プロセスにおいて望ましい。通常、圧縮は、通信リンクで使用され、送信時間や必要となる帯域幅を低減させている。同様に、圧縮は、印刷される文書の「ページ」がメモリに一時的に記憶されるデジタルプリンタやコピー機等の画像記憶システムに好適である。この場合、画像データが記憶される媒体空間量を、圧縮によって大幅に低減できる。一般に、走査画像、すなわち、ハードコピー文書の電子的表現は大型であることが多く、したがって、圧縮対象としてふさわしい。
【０００６】
信号および画像処理では、分析の目的上、入力データを変換係数に変換しなければならない場合が度々ある。また、このような係数を量子化したものが必要になることも多い（例えば、ＪＰＥＧ／ＭＰＥＧデータ圧縮またはオーディオ／音声圧縮）。このような応用には、高速プリンタ用ＪＰＥＧデータの作成などのように、リアルタイムで高速に行なわなければならないものもかなりある。こうした変換の多くは、データ処理の一部として圧縮を用いるか否かに関わらず、リアルタイムおよび／または高速な実行を実現するために、効率的に遂行する必要がある。
【０００７】
データ信号処理業界は、デジタル信号処理を最も効果的かつ迅速に行なう最も高速な方法を探し出す必要に迫られている。圧縮分野では、通常、高速変換の実装に関する分野の研究が極めて活発であり競争も激しい。研究者達は、これまでに、変換および逆変換に見られる特性を利用することによって、変換の実装用に作られたハードウェアの長所を活かした様々な試みを行なってきた。
【０００８】
そのような技術の一つが、ＩＳＯ（国際標準化機構）１０９１８‐１  ＪＰＥＧ国際標準／ＩＴＵ‐Ｔ（国際電気通信連合・電気通信標準化部門）勧告Ｔ．８１である。ＪＰＥＧ暫定標準が、本願に引用して援用するペンベーカーとミッチェルの「ＪＰＥＧ  静止画像データ圧縮標準」（ニューヨーク、ヴァン・ノストランド・レインホール社、１９９３年）に掲載されている。他の新たに出現した圧縮標準以外にも、ＪＰＥＧ標準に定義されている圧縮方法の一つに、離散コサイン変換（ＤＣＴ）符号化がある。ＤＣＴ符号化により圧縮された画像は、逆ＤＣＴ（ＩＤＣＴ）として周知の逆変換により圧縮解除される。ＤＣＴに関する優れた一般的な参考文献として、本願に引用して援用する、ラオおよびイップの「離散コサイン変換」（ニューヨーク、アカデミック・プレス、１９９０年）がある。この技術において通常の知識を有する者であれば、当然、上記参考文献の内容をよく理解できるものと思われる。
【０００９】
静止画像にコンピュータ利用者その他から見て記憶上の問題がある場合、動画の記憶上の問題がはるかに深刻であることは直ちに理解できる。というのは、フルモーションビデオであれば、表示される動画の１秒当たり、最高６０画像が必要となるからである。したがって、動画の圧縮技術は、一層の開発と標準化を行なう上でのテーマとなってきた。重要な２つの標準に、ＩＳＯ１１１７２ＭＰＥＧ国際標準およびＩＴＵ‐Ｔ勧告Ｈ．２６１がある。いずれの標準も、ＤＣＴ符号化およびＩＤＣＴ復号化を一部基にしている。
【００１０】
２次元離散コサイン変換は、数で構成されたあるＮ１×Ｎ２配列から数で構成された別のＮ１×Ｎ２配列へ、またはその逆の方向に変換する１対の数学方程式である。第１の配列は、通常、デジタル画像を形成する空間的に決められた成分値による正方形のＮ×Ｎ配列である。各画素は複数の成分と関連付けられているため、以下の説明においては、簡潔化のため単一成分の画素について検討を行なう。ただし、複数の成分から成る画素に拡張可能なことは、当業者にとって明らかである。第２の配列は、周波数領域において画像を表現する離散コサイン変換係数の配列である。周波数成分の係数によって画像を表すこの方法は、離散フーリエ変換の特別な例である。この離散フーリエ変換は、任意の周期的波形が種々の周波数と振幅を持つ正弦波および余弦波の和として表現される古典的な数学的フーリエ変換の離散型である。離散コサイン変換は、フーリエ変換のように、信号を時間領域から周波数領域に、また、その逆の方向に変換する変換のことを言う。ＤＣＴ乗算は、すべて実数である。したがって、必要な乗算回数は、離散フーリエ変換に比べて少なくなる。大抵の画像の場合、信号エネルギーの多くが低周波数となっており、これらはＤＣＴの左上隅に現れる。右下の値は高周波数を表しており、目に見える歪みがほとんどない無視できるほど小さいものであることが多い。
【００１１】
基本的な離散コサイン変換方程式には２通りある。第１の基本方程式は、画素値を離散コサイン変換係数に変換する順方向の離散コサイン変換である。また、第２の基本方程式は、離散コサイン変換係数を画素値に戻す逆方向の離散コサイン変換である。画像を離散コサイン変換する用途の大半は、８×８配列を使用しており、したがって、この配列では、Ｎが８の値を有している。したがって変換実行時には、Ｎが８の値を有しているものとし、ｆ（ｉ、ｊ）を画素配列の値とし、Ｆ（ｕ、ｖ）を離散コサイン変換係数の値とすると、次のような２次元離散コサイン変換方程式が成り立つ。
【数４】
2004523815.tif 000003
【００１２】
ここで、ｘ、ｙ＝空間領域（０、１、２、．．．７）における空間座標であり、ｕ、ｖ＝変換領域（０、１、２、．．．７）における座標であり、ｕ＝０の場合、Ｃｕ＝１／√２であり、そうでない場合は、１となる。また、ｖ＝０の場合、Ｃｖ＝１／√２となり、そうでない場合は、１となる。２次元ＤＣＴの分離可能な性質は、１次元ＤＣＴを８列について行ない、次に、１次元ＤＣＴを結果の８行について行なうことによって活用される。この８ポイントの１次元ＤＣＴの計算には、高速アルゴリズムをいくつか利用できる。
【００１３】
すでに述べた通り、コンプレッサのＤＣＴ部は、主に２つの部分を有している。第１の部分は、ＤＣＴ変換により、相関性の高い画像データを弱い相関係数に変換し、第２の部分は、係数の量子化により、送信または記憶時のビットレートを低下させる。しかし、ＤＣＴを行なう計算上の負担は大きい。例えば、長さが８画素の１次元ＤＣＴを処理するには、現在周知の高速アルゴリズムで１３回の乗算と２９回の加算が必要である。（「画像用高速ＤＣＴ‐ＳＱスキーム」（電子情報通信学会（Ｔｒａｎｓ．ＩＥＩＣＥ）、第Ｅ‐７１巻、第１１号、１０９５−１０９７頁、１９８８年１１月、ワイ・アライ、ティー・アグイ、エム・ナカジマ）と題する論文では、ＤＣＴ乗算の多くが、ＤＣＴ係数に対するスケーリング乗数として定式化できると提言している。これら乗数が因数分解された後のＤＣＴが、スケールドＤＣＴと呼ばれている。このスケールドＤＣＴは直交型ではあるものの正規化されたものではなくなるが、スケーリング因子を、その後の量子化処理で元に戻すことができる。アライ他は、この論文の中で、８ポイントのスケールドＤＣＴの処理には、５回の乗算と２９回の加算しか必要としないことを明らかにしている。）上記の通り、画像は、サイズ８×８画素、１６×１６画素、または３２×３２画素の正方形ブロックに分割される。各ブロックは、行×行に続く列×列により、１次元ＤＣＴで処理されることが多い。一方、種々の入力および圧縮データに関する様々な品質要求事項により、圧縮用に異なるブロックサイズが選択される。
【００１４】
スケーリングされた項を使用して、離散コサイン変換（ＤＣＴ）の余弦項のような乗算定数を最少の加算／減算と入れ換える。ただし、スケーリングされた項は、単に、変換方程式の定数の近似値を求めるだけである。したがって、精度を一定数のビットに制限した状態を維持するため、または、演算数を最少限度にとどめるために、ある程度の誤差が容認される。その結果得られる数が、最大予想可能誤差に比べて、決定境界（例えば、しきい値または量子化境界）から離れている場合、計算結果は、近似値による影響を受けない。ただし、増分計算中に、求められる数がより高い精度を必要とするかどうか判断できる。さらに、元の入力値は、レジスタでは利用できなくなり、メモリから元の入力値をフェッチし直すことによって、キャッシュ・ミスやメモリの待ち時間に関連したサイクルを課すことができる。ブルート・フォース・オプションは、値に逆変換（例えば、ＩＤＣＴ）を行なってから、次に、順方向の変換（例えば、ＦＤＣＴ、単にＤＣＴと記されることもある）をより高精度で再度実行するものである。このブルート・フォース手法の欠点は、演算に無駄が生じる点である。
【００１５】
しかしながら、一般に、希望する度合いの圧縮が行なえるＤＣＴ符号化を用いる上記技術のような特定技術に研究が集中している。それでもなお、一定の環境のもとでは、他の変換によって一定の効果を得ることが可能である。例えば、上記のＤＣＴ圧縮符号化法では、入力画像が数多くの均一なブロックに分割されるとともに、２次元離散コサイン変換関数が各ブロックに適用されることにより、データ・サンプルが変換係数の集合に変換されて空間的余剰が取り除かれる。しかし、高い圧縮率が得られたとしても、ブロック化による影響は、多かれ少なかれ生じることになる。さらに、圧縮システムによって利用されるベクトル量子化法は、高い圧縮率に貢献することから有利である。一方、サブバンド法により、データ圧縮率が高い間に発生するブロック化の影響を抑えることができる。離散ウェーブレット変換（ＤＷＴ）またはサブバンド符号化（ＳＢＣ）法は、例えば、時間成分および周波数成分に基づき信号を符号化する。したがって、これら変換方法は、非定常信号の分析に役立つとともに、画像分析の人間視覚システム（ＨＶＳ）の特性を考慮した設計を行なえるという利点を有している。
【００１６】
したがって、アーリー・アボートや精度リファインメントにより処理サイクルを省略することにより、高速化した変換計算を行なえる方法および装置を提供し、したがって、ソフトウェア実行時間の短縮やハードウェア要件の減少を実現する必要があることが理解できる。
【００１７】
【発明が解決しようとする課題】
以上に述べた従来技術の限界を乗り越え、また本明細書を読み理解すれば明白な他の限界を乗り越えるために、本発明は、複数のスケーリングされた項、アーリー・アボート、および精度リファインメントを用いた高速変換について開示する。
【００１８】
【課題を解決するための手段】
本発明は、離散変換を、変換定数にスケーリング項を用いて単独で計算されるサブ変換に分割することによって、上記の問題を解決する。さらに、２進演算用スケーリング項の最適表現が求められる。その結果行なわれる計算によって、変換計算が高速化し、ソフトウェア実行時間が短縮し、ハードウェア要件が少なくなる。さらに、同じ方法を用いて概して演算数が同じになるように逆変換を頻繁に実行できることは、当業者の理解するところである。さらに、本発明は、変換定数にスケーリング項を使用して乗算回数を減らすことにより、上記の問題を解決する。さらに、スケーリング後、少数の加法を行なうだけで、その後、２のベキ乗の和によって各定数の近似値が求められることから、これら定数の各項は、一連のさらに少ない線形シフトおよび加算に置き換えられる。当業者は、本明細書を通じて、「行列（マトリクス）」という用語が、従来の数学的な意味だけでなく、解析時に数学的マトリクスとして同等に表現し得るすべてのハードウェアおよびソフトウェア・システムをも意味することを理解するものと思う。さらに、本発明は、変換定数の増分計算検査に基づく修正動作を実行すべき時点を検出し、その修正動作（追加的精度を得るための増分計算のリファインメント、および／または、得られる数が小さくなりすぎる場合の増分計算のアボート）を実行することにより、上記の問題を解決する。
【００１９】
本発明の原理に基づく方法は、変換方程式を、少なくとも２つの変換定数を有する少なくとも１つの集合にまとめることと、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングすることを含んでいる。さらに、この方法は、スケーリングされた離散コサイン変換定数の各々を、２のベキ乗の和によって近似値が求められたスケーリング後の推定離散コサイン変換定数で表すことも含まれている。
【００２０】
本発明の原理に基づく方法の他の実施例では、代替的または任意の補足的態様が含まれている。本発明のこのような態様の一つに、前記方法が、さらに、データを少なくとも１つのブロックに分離し、スケーリングされた変換方程式によって前記ブロックを変換データに変換することを含むものがある。
【００２１】
本発明の別の態様によれば、スケーリングされた推定離散コサイン変換定数を用いて２進演算に基づく前記離散コサイン変換方程式で行列乗算を行ない、線形シフトおよび加算を実行することにより、前記ブロックを変換データに変換する。
【００２２】
本発明のさらに別の態様によれば、前記スケーリング項が、既定の費用関数に基づき選択される。
【００２３】
本発明のさらに別の態様によれば、前記既定の費用関数は、任意の変換係数に関する最大誤差が既定の誤差率よりも大きくならないように前記スケーリング項を選択する。
【００２４】
本発明のさらに別の態様によれば、前記既定の費用関数は、各関連する変換係数の最大誤差が個々の既定の誤差率よりも大きくならないように前記スケーリング項を選択する。
【００２５】
本発明のさらに別の態様によれば、既定の費用関数は、前記既定の変換係数の誤差が既定の誤差率以下となるように前記スケーリング項を選択する。
【００２６】
本発明のさらに別の態様によれば、既定の費用関数は、各関連する既定の変換係数の誤差が、個々の既定の誤差率以下となるようにスケーリング項を選択する。
【００２７】
本発明のさらに別の態様によれば、前記既定の費用関数は、ある集合の全変換定数が既定の特性を備えた同時２進表現を有するように前記変換定数の前記スケーリング項および表現を選択する。
【００２８】
本発明のさらに別の態様によれば、前記費用関数は、多くの加算演算を最少限度に抑える。
【００２９】
本発明のさらに別の態様によれば、前記費用関数は、加算演算数が最悪の場合も、最少限度に抑える。
【００３０】
本発明のさらに別の態様によれば、前記既定の特性が、最少の共通する２のベキ項を含む。
【００３１】
本発明のさらに別の態様によれば、ある集合の全変換定数が、最少の共通する２のベキ項を備えた同時２進表現を有するような、前記変換定数の前記スケーリング項および表現の選択が、２進算術シフトの方が乗法演算よりも効率的である場合に実行される。
【００３２】
本発明のさらに別の態様によれば、前記既定の特性が、非ゼロの２のベキ項の最大化クラスタリングを含む。
【００３３】
本発明のさらに別の態様によれば、ある集合の全変換定数が非ゼロの２のベキ項の最大化クラスタリングを備えた同時２進表現を保有するような前記スケーリング項の選択が、小さい整数を用いた乗法演算の方が大きい数を用いた乗算よりも好ましい場合に実行される。
【００３４】
本発明のさらに別の態様によれば、定数を表す２のベキ多項式の係数が非ゼロか追跡する。
【００３５】
本発明のさらに別の態様によれば、ビット位置の値によって２のベキ項が決まる。
【００３６】
本発明のさらに別の態様によれば、前記非ゼロの２のベキ項のクラスタリングの最大化が、ａ）第１変数を前記ブロック内の第ｉ番目の要素に設定し、ｂ）第２変数を２の値に初期化し、ｃ）ビットマスクを２進数の３に初期化し、ｄ）前記ビットを解析することにより、前記第１変数によって示される前記第ｉ番目の要素が、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１を用いて前記項の並べ換えを行なう表現候補であるか判断し、
ｅ）前記第２変数を第１変数に追加して、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１によって求められる２のベキ乗の効果的変更を行なうことにより、第ｉ番目の要素を符号化し、ｆ）新規表現を求めるとともに、第１変数を第ｉ＋１番目の要素に設定し、ｇ）前記マスクと前記第２変数を左に１ビットシフトさせ、ｈ）ｄ−ｇを繰り返すことにより、前記スケーリングされた定数の全表現を求めることを含む。
【００３７】
本発明のさらに別の態様によれば、前記方法は、さらに、前記マスクビットと一致する前記第１変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が０となり、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１の並べ換えに用いられる２のベキ乗が増加することを含む。
【００３８】
本発明のさらに別の態様によれば、前記各集合は、部分演算の変換方程式による互いに素な集合である。
【００３９】
本発明のさらに別の態様によれば、前記各集合は、部分演算の変換方程式による互いに素な集合ではない。
【００４０】
本発明のさらに別の態様によれば、前記方法は、さらに、少なくとも１つの集合の各々の前記変換定数に対して独立したスケーリング項を選択する。
【００４１】
本発明の原理に基づく方法は、変換中に変換係数の増分計算により求められた少なくとも１つの数を検査し、検査に基づく修正動作を行なうべきか否かを判断し、修正動作が必要と判断された場合にその修正動作を実行する。
【００４２】
本発明の原理に基づく方法の他の実施例では、代替的または任意の補足的態様が含まれている。本発明のこのような態様の一つに、前記判断において、前記変換係数の前記増分計算が容認できない精度の変換係数となるか否かを検出し、前記修正動作の実行において、前記少なくとも１つの数をリファインメントするものがある。
【００４３】
本発明のさらに別の態様によれば、前記変換は変換行列を含み、前記リファイン処理において、前記変換定数の前記増分計算の精度を高めるために、リファインメント行列を使用する。
【００４４】
本発明のさらに別の態様によれば、前記リファインメント行列は、
【数５】
2004523815.tif 000004
を含む。
【００４５】
本発明のさらに別の態様によれば、前記方法は、さらに、概算された変換定数に基づく少なくとも１つのリファインメント行列を生成する。
【００４６】
本発明のさらに別の態様によれば、前記少なくとも１つのリファインメント行列の生成は、オフラインまたは初期化時に実行される。
【００４７】
本発明のさらに別の態様によれば、前記リファインメント行列の生成において、近似変換が可逆であることを認識し、
【数６】
2004523815.tif 000005
によって求められるリファインメント行列を生成し、効率的な計算を行なうために前記変換を構造化する。
【００４８】
本発明のさらに別の態様によれば、前記リファインメント行列の生成において、前記変換を生成する変換行列の第ｎ列の復元が不可能であることを認識し、前記変換行列の一部に対する疑似逆行列を計算し、前記変換行列の前記疑似逆行列を使用して前記リファインメント行列の近似を生成する。
【００４９】
本発明のさらに別の態様によれば、前記リファインメント行列の前記近似は、
【数７】
2004523815.tif 000006
を含む。
【００５０】
本発明のさらに別の態様によれば、前記判断において、さらに、前記増分計算の終了に伴う誤差が容認できないものか否かを判断し、前記修正動作の実行において、変換係数の前記増分計算をアボートする。
【００５１】
本発明のさらに別の態様によれば、前記増分計算は、前記増分計算により既定の範囲内の数が得られると判断された時点で終了する。
【００５２】
本発明のさらに別の態様によれば、前記既定の範囲内になることが予想される数は、精度要件を満たす変換係数を有している。
【００５３】
本発明のさらに別の態様によれば、前記増分計算は、前記変換係数へのリファインメントが結果に変化を与えないと判断された時点で終了する。
【００５４】
本発明のさらに別の態様によれば、前記増分計算の結果の相対的大きさをチェックした後、少なくとも１つの変換係数の中間計算結果が別の変換係数の中間計算結果よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される。
【００５５】
本発明のさらに別の態様によれば、少なくとも１つの増分計算の結果の大きさをチェックした後、前記変換係数の少なくとも１つの中間計算結果が既定のしきい値よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される。
【００５６】
本発明のさらに別の態様によれば、前記判断において、さらに、変換係数が、０の既定範囲内になると判断し、前記修正動作の実行において、前記変換係数の前記増分計算をアボートする。
【００５７】
本発明の別の実施例において、データ圧縮システムが提供されている。前記データ圧縮システムは、線形変換を適用することにより変換方程式を用いてデータを変換係数にデコリレートする変換器を具備し、前記変換方程式は、前記変換方程式を少なくとも２つの変換定数を有する少なくとも１つの集合にまとめることと、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングすることにより構成され、前記スケーリング項は既定の費用関数に基づき選択され、さらに、前記システムは、前記変換係数を表すのに必要な複数のビットを削減することにより、前記変換データを量子化データに量子化する量子化器を具備している。
【００５８】
本発明の別の実施例において、プリンタが提供されている。前記プリンタは、画像データを記憶するメモリと、前記画像データを処理して圧縮されたプリントストリーム出力を提供するプロセッサと、プリントヘッドを制御して前記画像データを印刷出力するプリントヘッド駆動回路とを具備し、前記プロセッサは、線形変換を適用することにより変換方程式を用いてデータを変換係数にデコリレートし、前記変換方程式は、前記変換方程式を少なくとも２つの変換定数を有する少なくとも１つの集合にまとめることと、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングすることにより構成され、前記スケーリング項は既定の費用関数に基づき選択される。
【００５９】
本発明の別の実施例において、製品が提供されている。前記製品は、コンピュータにより読み取り可能なプログラム記憶媒体を具備し、前記媒体は、コンピュータにより実行可能な命令から成る１以上のプログラムを実際に具体化することにより、変換方程式を少なくとも２つの変換定数を有する少なくとも１つの集合にまとめるとともに、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングし、前記スケーリング項は既定の費用関数に基づき選択される方法を実行する。
【００６０】
本発明の別の実施例において、データ分析システムが提供されている。前記データ分析システムは、変換方程式を具備し、前記変換方程式は、前記変換方程式を少なくとも２つの変換定数を有する少なくとも１つの集合にまとめるとともに、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングすることにより構成され、前記スケーリング項は既定の費用関数に基づき選択され、さらに、前記データ分析システムは、前記変換方程式を適用することにより線形変換を実行してデータを変換係数にデコリレートする変換器を具備している。
【００６１】
本発明の特徴を表す前記およびそれ以外の数多の新規な利点および特徴は、この明細書に添えた明細書の一部をなすクレーム中に詳しく指摘してある。ただし、本発明と、その利益と、実施することによって達成される目的とを充分に理解するためには、本発明による装置の詳細な例を例示し説明してある明細書のさらに一部をなす添付図面ならびに記事を参照すべきである。
【００６２】
【発明の実施の形態】
以下の好適な実施例に関する説明において、本明細書の一部をなす添付図面を参照し、該添付図面には、本発明が実施される具体的な実施例が例示により示されている。また、他の実施例により本発明の範囲内で構造的変更が行なえることは理解されるものと思う。
【００６３】
本発明は、複数のスケーリング項を用いる高速変換を提供する。これらの変換は、変換定数にスケーリング項を使用して単独で計算が行なわれるサブ変換に分割される。さらに、２進演算用スケーリング項の最適表現を求める。この方法により、高速変換計算、ソフトウェア実行時間の短縮、さらにハードウェア要件の削減が実現できる。本発明によれば、信号および画像処理に用いられる離散変換は、いわゆる基底関数を使用する。この基底関数は、変換構造を設定し、この関数があることによって、変換を２つ以上のサブ集合で計算できるようになる。次に、変換を高速に遂行するための費用関数を用いて、この計算の基底係数の最適表現を求める。
【００６４】
図１に、代表的な画像圧縮システム１００が示されている。このデータ圧縮システムは、３つの緊密な関係を持つ部品、すなわち、（ａ）変換器１２０、（ｂ）量子化器１３０、（ｃ）オプションのエントロピー・エンコーダ１４０を具備している。圧縮は、線形変換を適用することにより画像データ１１０をデコリレートするとともに、その結果得られる変換係数を量子化し、必要に応じて、量子化された値をエントロピー・エンコーディングすることによって実現される。これまでに、離散フーリエ変換（ＤＦＴ）、離散コサイン変換（ＤＣＴ）、離散ウェーブレット変換（ＤＷＴ）その他多くを含む種々の線形変換が開発されており、それぞれ独自の利点および不都合を有している。
【００６５】
量子化器１３０は、単に値の精度を低くすることによって、変換済み係数を記憶するのに必要なビット数を低減させる。これは、多対一マッピングであることから、損失の多いプロセスであるとともに、エンコーダにおいて重要な圧縮源となっている。量子化は、それぞれ個々の係数について実行することができ、このことは、スカラ量子化（ＳＱ）として周知である。さらに、量子化は、係数の集合について実行することも可能であり、これは、ベクトル量子化（ＶＱ）として周知である。均一および均一でない量子化器はいずれも、問題に応じていつでも利用可能である。
【００６６】
オプションのエントロピー・エンコーダ１４０は、さらに、量子化された値を損失のないように圧縮することによって、全体的な圧縮をより優れたものにする。エントロピー・エンコーダ１４０は、各量子化値の確率を正確に判断し、得られる出力コード・ストリームが入力ストリームよりも小さくなるように、これらの確率に基づいて適切なコードを生成する。最も一般的に利用されているエントロピー・エンコーダは、ハフマン・エンコーダと算術エンコーダである。ただし、高速実行が求められる用途には、単純なランレングス・エンコーディング（ＲＬＥ）が、非常に効果的であることが立証されている。
【００６７】
項の画像変換は、通常、画像表現に用いられるユニタリ行列のクラスを参照する。このことは、これらの行列を使用して、画像を代替的な表現に変換できることを意味している。この各変換は、変換符号化の基礎となる。変換符号化とは、ある変換からの係数を送信用に符号化するプロセスである。
【００６８】
信号（ｘ）は、各整数を０・・ｎ−１から複素数にマッピングする関数である。サンプリングまたは画素化された画像の線によって例示する。この例では、サンプルまたは画素が等間隔に配置されている。このような（ｘ）の集合の「直交基底」は、次のような関数の集合である。
【数８】
2004523815.tif 000007
ここで、ｙ１ｚに対して、次式が成り立つ。
【数９】
2004523815.tif 000008
Ｆ（ｙ）で示される（ｘ）の「変換」は、次式によって求められる。
【数１０】
2004523815.tif 000009
【００６９】
この種の変換は、元の信号から情報を抽出する多くの信号および画像処理に用いられている。変換の一例として、離散フーリエ変換（ＤＦＴ）があり、ここでは、ｂｙ（ｘ）＝ｅｘｐ（２ｐｉｘｙ／ｎ）である。これに関連する例として、離散コサイン変換（ＤＣＴ）があり、ここでは、ｂｙ（ｘ）＝ｃｏｓ（２ｐｘｙ／ｎ）である。別の例として、ウェーブレット変換があり、ここで、ｂｙ（ｘ）は、ある特定のスケーリングされたオフセット型のマザーウェーブレット関数である。（イングリッド・ドベチーズによる「ウェーブレットの１０講議」（工業・応用数学会、１９９２年５月）を参照。）
【００７０】
次に、単独スケーリング演算の理論的根拠について、変換構造を損なわずにスケーリングを実行できる数学的根拠を示すことによって明らかにしたい。ある変換を次のように定義する。
【数１１】
2004523815.tif 000010
【００７１】
ｂｙ（ｘ）が、（ｘ）の構造に関わらず、この変換を２以上の互いに素な和に分割できるようなとき、（以下に述べる）このような例について検討してみよう。（「互いに素な」という用語は、方程式の集合について本明細書に用いられている場合、互いに素な２組の方程式の方程式間に共通する変換係数が全くないことを意味している。）例えば、ｂ２ｙ（ｘ）が、偶対称性を有しているとともに、ｂ２ｙ＋１（ｘ）が、奇対称性を有している場合、任意の（ｘ）を、（ｘ）＝ｅ（ｘ）＋０（ｘ）として一意に書けることは、数学上周知である。ここで、ｅ（ｘ）は、偶（０に関して対称）であり、０（ｘ）は、奇（０に関して非対称）であり、次式が成り立つ。
【数１２】
2004523815.tif 000011
【００７２】
したがって、この変換は、次のようにも書くことができる。
【数１３】
2004523815.tif 000012
【００７３】
図２に、ＪＰＥＧエンコーダ１００のブロック図が示されている。図２では、デジタル画像データ１１０が８×８画素のブロック１１２に分割される。次に、各ブロックの離散コサイン変換（ＤＣＴ）が計算される（１２０）。離散コサイン変換（ＤＣＴ）は、データを重要度（例えば、画像の視覚的品質について）が異なる各部分（またはスペクトル・サブバンド）に分離するのに役に立つ。ＤＣＴは、離散フーリエ変換とよく似ており、信号を空間的領域から周波数領域に変換する。
【００７４】
量子化器１３０は、量子化行列によりＤＣＴ係数の端数を切り捨てる。この段階では、ＪＰＥＧの「損失の多い」特徴が出るものの、圧縮率を高くできる。画像品質と量子化の度合いには、トレードオフの関係がある。量子化の刻み幅が大きいと、容認できないほど大きい画像の歪みが生じることがある。この影響は、粗くなりすぎて結果的に歪みが大きくなるフーリエ級数係数の量子化とよく似ている。残念ながら、細かい量子化は、圧縮率の低下につながる。問題は、ＤＣＴ係数をどのように最も効率的に量子化したらよいかという点にある。人間の視力に自然に生じる高周波数のロール・オフによって、これら周波数の役割の重要性は、低周波数に比べて低くなる。このため、ＪＰＥＧでは、顕著な画像劣化をほとんど受けることなく、高周波数係数に対して、はるかに大きい刻み幅を使用する。次に、オプションのエントロピー・エンコーダ１４０によって量子化器係数出力を符号化し、圧縮データ・ストリーム１５０を出力ファイルに生成する。ただし、ＪＰＥＧの場合、エントロピー・エンコーダはオプションではなく、他の似たようなデータ圧縮システムが、エントロピー・エンコーダに必要なＣＰＵサイクルなしで設計される。
【００７５】
しかし、すでに述べた通り、エンコーダ１００のスループットを高めるために、乗法ステップの少ない離散コサイン変換を行なう方法および装置を提供する必要がある。後述するように、本発明による方法は、係数行列のスケーリングによって、ブルート・フォース方程式の乗算を省略する。分離可能な各サブグループは、他の集合とは無関係にスケーリングされる。各集合内で、残りの乗算が、単純シフトおよび加算で置き換えられる。このスケーリング項は、種々の費用関数に基づいて選択される。好適な実施例では、加算数を最少限度に抑えるとともに、最悪の加算数も最少限度に抑える費用関数を使用する。ただし、代替費用関数であっても、どのくらいの誤差が各係数に対して許容できるのか選択可能なことは、当業者の理解するところである。さらに、同じ方法を用いて演算数が同じになるように逆ＤＣＴ（ＩＤＣＴ）を実行できることも、当業者の理解するところである。
【００７６】
図３に、本発明のフローチャート２００を示している。図３では、変換方程式を、少なくとも２つの変換定数を有する少なくとも１つのサブ変換に分割する（２１０）。本書に使用されている用語「サブ変換」とは、変換項の部分集合を作成するのに用いられる方程式の集合を意味している。ただし、ここで、部分集合に含まれているのは、変換項のすべて、または、変換項の総数よりも少ない項である。次に、各集合の変換定数をスケーリング項によって単独でスケーリングすることにより、集合内の変換定数間の比率をほぼ均一に維持する（スケーリング項は、既定の費用関数に基づき選択される）（２２０）。その結果、ブロック変換用の変換方程式が得られる。データは、少なくとも１つのブロックに分離される（２３０）。次に、変換方程式により、ブロックが、変換データに変換される（２４０）。従来のシステムであれば、ブロック２１０および２２０のオフラインを実行する。しかし、ＪＰＥＧ２０００などの実行時間に指定されるアルゴリズムの場合、これらブロックは、プログラム初期化段階中に自動的に実行される。図１の量子化器１３０について説明すると、スケーリングを量子化に組み込むことによって、変換データが量子化される。このことは、整数コサイン変換（ＩＣＴ）と対照的である（例えば、パン他による「画像符号化のためのセルフタイム型チップ」（電気電子技術者協会（ＩＥＥＥ  Ｔｒａｎｓ．）ビデオ技術回路およびシステム部、第９巻、第６号、１９９９年、８５６−８６０頁）を参照）。整数コサイン変換の場合、各係数は、どの方程式においても同じ値によってスケーリングされ、この方法は、本明細書に記載されている方法と同様の計算上の利点を提供することはない。
【００７７】
各定数のスケーリング項の選択は、対象となるシステムのニーズを示す費用関数を用いて実行される。この費用関数に対する複数のパラメタは、高速変換用に識別されたものである。使用される実際の費用関数は、次の費用関数のうちの１つまたはその組み合せである。
【００７８】
第１の費用関数は、任意の変換係数（すなわち、Ｆ（ｘ））の最大誤差が、Ｐ％を超えないものである。ここで、Ｐはアルゴリズム設計者によって選択される。次の例では、Ｐ＝１である。
【００７９】
第２の費用関数は、アルゴリズム設計者によって選択されたもう少し重要な変換定数において、その誤差がＰｉｍｐｏｒｔａｎｔ％を超えない関数である。以下の例では、低周波数項の誤差が、０．１％を下回っている。
【００８０】
第３の費用関数は、様々なシステムに使用されるＣ１とＣ２という２つの基準に分けられる。すなわち、一般に、基準Ｃ１または基準Ｃ２のいずれかを満たすような選択が行なわれる。基準Ｃ１は、シフトが乗算よりも効率的であるような実装（例えば、ソフトウェアまたはファームウェア）への利用が可能である。基準Ｃ２は、小さい整数を使用した乗算の方が大きい数を使用した乗算よりも好ましい実装（例えば、ある一定のビット数を上回る乗算により多くのサイクルが使用されるソフトウェア実装、または、全体の精度が問題となるようなソフトウェア実装）に利用できる。これら２つの基準を示す具体的な例を以下に示している。また、両方の基準を一緒に使用することも可能である。
【００８１】
第１の基準Ｃ１により、同一の和に現れるスケーリングされたすべての整数基底乗数（ＦＤＣＴの場合、定数Ｃ１−Ｃ７であり、ここで、Ｃｋ＝ｃｏｓ（ｋｐ／１６）である）が、最少の共通する２のベキ項（すなわち、ある集合内の全表現にわたる２のベキ項の集合が最小である）による同時２進表現を有している。実数定数は、有理数（すなわち、整数の比）によって近似値が求められる。変換のスケーリングされた定数について本明細書で用いられる用語の「表現」とは、この整数比の分子が、２のベキ乗の和および／または差として計算されるような方法を指している。
【００８２】
例えば、ＦＤＣＴにおいて、変換は、次のような方程式の３つの集合に分割できる。
【数１４】
2004523815.tif 000013
【００８３】
これら方程式に使用される表記は、ペンベーカーの文献によるものである。ここで、Ｓｓは、
【数１５】
2004523815.tif 000014
は以降Ｆｓハットと記載する。
【００８４】
に比例する。したがって、集合３の定数は、最少の共通する２のベキ項による同時２進表現を有しているが、これら同時表現は、集合２の定数に使用されているものと関連していない。集合３の具体例は、次のように表すことができる。
【数１６】
2004523815.tif 000015
【００８５】
これらの表現はいずれも、各係数の誤差が１％よりも低い。この例では、共通する２のベキ項の集合が、各方程式から明らかなように、｛２５、２３、２１、２０｝である。これら表現は、２の各ベキ乗を掛ける＋１または０による２の多項式と見ることができる。すなわち、
【数１７】
2004523815.tif 000016
【００８６】
これら項数の最少化を効率的にしているのは、集合３の各方程式を、２のベキ乗をグループ化して計算できるようにしている点である。この基準Ｃ１が使用されるアーキテクチャでは、加算およびシフトの方が、乗算よりもサイクルの点で低コストであり、したがって、集合３の各方程式を、次のような行列演算の計算とみなすことができる。
【数１８】
2004523815.tif 000017
【００８７】
この計算では、加算とシフトを入れて全部で２８の演算が行なわれる。Ａ＝ｄ２５−ｄ３４  とＢ＝ｄ０７＋ｄ１６を予め計算すると次の式が成り立つ。
【数１９】
2004523815.tif 000018
【００８８】
この計算では、事前の計算によって、２４サイクルとなる。さらに、２０の項を削除することによって（これにより、Ｃ５の誤差は約３％に上昇する）、演算数は合計２０まで減少する。ここで注意すべきは、すでに述べた高速ＤＣＴの奇数係数の計算において当初の和と差の計算を上回る１１回の加算と４回の乗算が行なわれており、多くのマイクロプロセッサ上で、乗算が１サイクルを上回っている（４−１１サイクルの場合が多い）点である。
【００８９】
第２の基準Ｃ２により、同一の和（例えば、上記の同一の集合１、２、または３）に現れるスケーリングされた全整数基底乗数（例えば、ＦＤＣＴの場合、Ｃ１−Ｃ７）が、できる限りクラスタ化された（すなわち、最大の２のベキ乗と最小の２のベキ乗との差ができるだけ小さい）非ゼロの２のベキ項による同時２進表現を有している。クラスタ化された表現の例を、２８＝２５−２２および２８＝２４＋２３＋２２により表すことができる。最初の表現では、２のベキ乗が、５−２＝３によって拡散され、第２の表現では、４−２＝２によって拡散されている。したがって、２８に対する第２の表現の方が、第１の表現よりも「クラスタ化されている」ことになる。この利点は、以下に述べる通りである。２の最小のベキ乗が２２であるような表現を、ある集合の全定数が有しているとする。このことは、量子化およびスケーリングにおいてピックアップ可能な計算精度に関する２ビットがあることを意味している。したがって、全定数を２２で効果的に割ることができ、後続の０に対してシフトを実行する必要がない。
【００９０】
これら後続の０が表す補足的な大きさは、量子化を行なう前に、必要に応じて各数に再び導入される。例えば、量子化の判断に当たり、いずれかの表現の後続の１を、精度を上げるために「ピックアップ」する必要があるような場合である。（２０項の省略を提案した上記Ｃ１の例を参照。）
【００９１】
図４に、以下の条件を使用して第２の基準Ｃ２の同時表現を求める方法に関するフローチャート３００を示している。
２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１          （５）
まず初めに、ｎｕｍが、配列ｒｅｐｓの第ｒｅｐｃｏｕｎｔ−１番目の要素に設定される（３１０）。所定の数に対する表現の現行カウントは、ｒｅｐｃｏｕｎｔである。変数ａｄｄは２に初期化され（３１２）、ビットマスクは２進数の０．．．０１１に初期化される（３１４）。
【００９２】
各ビットをチェックして、マスクビットと一致するｎｕｍの両ビットが設定されているかどうか判断する（３４０）。設定されていなければ（３４２）、マスクが左に１つシフトされ（３５０）、これによって効果的に右側が０となり、ａｄｄが左に１つシフトされることにより、上記の式（５）の並べ換えに使用される２のベキ乗が増加する。マスクビットと一致するｎｕｍの両ビットが設定されていれば（３４４）、このビットパターンｎｕｍが、前記条件（５）による項の並べ換えを行なうための表現候補となる。次に、ｎｕｍは、ａｄｄをｎｕｍに追加することにより、この表現を符号化し、前記条件（５）の方程式によって求められる２のベキ乗の変更を実行する（３４６）。これにより、ブルート・フォース方式よりも高速で記憶効率の高い処理が可能となり、例えば、表現の徹底的な探索が可能になり、０、＋１、−１の各値をいずれも別々に保存できる。新規の表現が得られると、ｒｅｐｃｏｕｎｔが、ｒｅｐｃｏｕｎｔ＋１に設定される（３４８）。また、マスクは、左に１つシフトされる（３５０）。
【００９３】
シフトは、既定の最大値ｍａｘｍａｓｋに達するまで実行される（３７０）。既定の最大値に達しなかった場合は、新規ｒｅｐｃｏｕｎｔに対してこのルーチンが繰り返され、ｎｕｍが新規表現に設定される（３７２）。達した場合（３７４）は、ルーチンを終了する。
【００９４】
プログラムで各表現が符号化される場合、プログラムは、２のベキ多項式（例えば、式（４）を参照）の係数が非ゼロ（すなわち、＋１が両方とも「１」ビットとして記憶され、０が「０」ビットとして記憶されている）であるか把握していればよい。多項式の２のベキ乗は、そのビット位置で符号化される。例えば、ビット０（右端）は、２０に対応している。プログラムでは、＋１間の区別はしないため、プログラムがどのようにして表現を把握しているのか疑問に思われるかもしれない。整数表現においてマスクが左へ走査することから、またさらに、表現が２ｎ＋２ｎ−１から２ｎ＋１−２ｎ−１へ変化することによって、多項式表現に限り２のベキ乗が効果的に左へ移動する（すなわち、この移動により、表現に使用されている２のベキ乗が増加するだけである）ことから、２のベキ乗が移動して＋１の乗数を有する２のベキ乗と−１の乗数を有する２のベキ乗が合計される可能性はなくなる。したがって、乗数が非ゼロかどうかを把握しているだけでよい。これは、（上記のｒｅｐｓの記憶された整数と対の）元の整数についての知識が、この表現を独自に判断するうえで充分なためである。
【００９５】
すでに述べた通り、さらに、本発明は、ＦＤＣＴ（およびＩＤＣＴ）が集合１、２、３に分割できたように、各項を互いに素な方程式集合にうまく分割できない変換にも適している。上記の通り、「互いに素な」とは、方程式の集合について本明細書に使用されている場合、２つの互いに素な方程式集合の方程式間に、共通する変換定数が全くないことを意味している。各定数にこれらの２のベキ乗の同時表現を使用すれば、任意にあるいは何らかの費用関数に基づき変換の方程式集合を選択することによって、またさらに、各集合の定数に対して独立したスケーリング項を選択し、変換定数表現に対して２のベキ乗によりグループ化することによって、一層の高速化を実現できる。そこでさらに、任意の方程式集合に対する係数の表現を求める基準を満たしたいと考える人もいるだろう。その場合、変換が互いに素な集合に分割された場合は、特に良い結果が得られる。これは、変換定数が複数の集合にグループ化されるためである。
【００９６】
次に、別のグループ化を利用するＦＤＣＴによる例を示す。
【数２０】
2004523815.tif 000019
【００９７】
これにより、集合６のスケーリング項が１つ求められ、この集合の３つの計算を実行するためのＣ１、Ｃ３、Ｃ４、Ｃ５、Ｃ７の同時表現が求められる。次に、集合８の別のスケーリング項と各方程式のＣ１、Ｃ３、Ｃ５、Ｃ７の同時表現が求められる。各表現は、集合６の計算で使用された表現と大きく異なることがある。
【００９８】
図５に、高速な変換計算と実行時間の短縮を実現する修正動作により、さらに高速な変換を実現するフローチャート３００を示している。ある変換の変換定数を用いた増分計算から求められた少なくとも１つの数を検査する（３１０）。次に、この検査に基づき、修正動作をいつ実行するかを判断する（３２０）。修正動作を実行する必要があると判断されると、すぐに修正動作が実行される（３３０）。
【００９９】
各ｄＤｋによって、精度に関する少なくとも１つの追加ビットがＤで実行される変換に追加されたときに、リファインメントに関する第１の例が発生する。第２の例は、変換ベクトルの少なくとも１つの要素、
【数２１】
2004523815.tif 000020
は以降Ｆハットと記載する。
【０１００】
が極めて小さいとみなされたときに発生し、これによって、ｄＤｋの行全体が０と概算され、Ｆの少なくとも１つの要素の計算をスキップできる。
【０１０１】
第１の例では、Ｄｋがすべて可逆である場合が多い。すなわち、行列Ｄｋ−１が存在するため、次の単位行列（左上から右下への対角線上の要素が１、他のすべての要素が０である正方行列）の式が成り立つ。
ＤｋＤｋ−１＝Ｄｋ−１Ｄｋ＝Ｉ
【０１０２】
この場合、次のように表すことができる。
【数２２】
2004523815.tif 000021
【０１０３】
（ここで、Ｉは単位行列である）。すなわち、変換係数への変換のステップをもう一つ実行することにより、精度に関する追加ステップが実行できる。精度を追加するためのこの追加ステップ変換の利用が、本発明によるリファインメントの第１実施例である。これは、ＩＤＣＴと後続のＤＣＴの両方を実行する手間を省くためであり、
【数２３】
2004523815.tif 000022
の行列は、行列Ｒｍ＋１として予め計算することができ、したがって、
【数２４】
2004523815.tif 000023
が成り立つ。これは、Ｆｍに関するシングルステップ変換である。
【０１０４】
リファインメントの第２の例は、別のアプローチが必要である。次の具体例について検討してみよう。１次元ＦＤ１において、２次元変換がすでに高精度で実行された状態のときに、ｄＤ０の８番目の行が０であり、ｄＤ１＝Ｄ−ｄＤ０が成り立つ。したがって、ｄＤ０は可逆ではない。すなわち、ｄＤ０ＦＤ１からＦＤ１の元の８列を復元することはできない（ｄＤ０ＦＤ１からＦＤ１を求める計算は、７つの８元方程式と考えられることから、これは明らかである）。しかし、ＦＤ１の８列のいずれかに対して値を想定した場合、ｄＤ０ＦＤ１から他の７列を推定することができ、その値は第８列の想定値に左右される。第８列に０と概算できるような小さい要素が含まれているものが、妥当な想定と言える。これは、番号の高い変換値の方が、番号の低い変換値に比べて、実像での重要性が低くなる傾向があるためである。次に、ｄＤ０を８×７の行列（０の行を無視する）として、疑似逆行列
【数２５】
2004523815.tif 000024
（文献にて周知である）が次式によって求められる。
【数２６】
2004523815.tif 000025
【０１０５】
ここでは、想定された第８番目の係数に対して、０から成る第８行が挿入されている。これにより、ｄに対して８×８の近似が得られる。
【数２７】
2004523815.tif 000026
【０１０６】
したがって、次のように概算できる。
【数２８】
2004523815.tif 000027
【０１０７】
この近似リファインメントは、リファインメントの発明の第２実施例であり、ここでは、第１実施例と同様に、ＤＣＴが後に続くＩＤＣＴのサイクルを省略できる。
【０１０８】
アボート手順は、サイクルを省略するために、計算を完了前にいつ終了できるか、また、計算結果が０に量子化されるほど過度に小さくなるのはいつと推定されるか判断するのに用いられる。アボート手順の利用例は、上記の例に示されている。この例では、少なくとも１つの低い変換係数が計算されず、これは、変換行列の対応する１行または複数行を０に設定することにほぼ等しい。別の例では、限定された精度の計算を中止する。これは、追加的変換精度によって変換値にごくわずかな追加的情報しか提供されないと推定される場合、例えば、計算結果が小さいと推定される場合に実行される。代替方法では、変換への入力の一部の和および／または差の大きさが検査される。例えば、ＦＤＣＴの場合、次の方程式により、第２の変換係数が求められる。
【数２９】
2004523815.tif 000028
【０１０９】
ここで、ｄ０７３４＝Ｓ０７−Ｓ３４およびｄ１６２５＝Ｓ１６−Ｓ２５とする。この表記は、ペンベーカーとミッチェルのＪＰＥＧ文献による。これらの値の大きさを検査して、変換係数のその後の処理への影響を見ることができる。この例では、Ｓ（２）がＱ／２の大きさよりも小さいとき（Ｑは、Ｓ（２）の量子化値とする）、Ｓ（２）は０に量子化される。これにより、ｄ０７３の大きさがＱ／（２Ｃ２）よりも小さいかどうか、さらに、ｄ１６２の大きさがＱ／（２Ｃ６）よりも小さいかどうか検査が行なわれる。この検査に合格すれば、Ｓ（２）の計算をアボートすることができ、Ｓ（２）が０の量子化された値に設定される。この入力値の和および／または差を検査する方法は、ＦＤＣＴの全方程式に拡大して適用できる。
【０１１０】
ただし、
【数３０】
2004523815.tif 000029
（ベクトルまたは行列Ｆハットの各要素の項ごとの範囲チェック）のような比較（ここで、
【数３１】
2004523815.tif 000030
の各要素はいずれも非負とする）をＦ（−Ｔ＜Ｆ＜Ｔ）の各要素の項ごとの比較へどのようにして変えるのかは明らかでない（ここで、Ｔの各要素はいずれも非負であるとし、Ｆの検査を合格するには、Ｆハットの検査を合格すればよいものとする）。この問題は、ＤＣＴが正と負の演算の両方を行なうことから起きるものであり、これにより、方程式中の項ごとの順序付けが壊れるためである。具体的には、
【数３２】
2004523815.tif 000031
が、
【数３３】
2004523815.tif 000032
を意味しているとは言えない。
【０１１１】
したがって、このアボートでは、追加的変換精度によって、後続の処理演算（例えば、量子化または比較）の結果に容認可能または無視できるほどの小さい影響しか与えないと推定された時点で、演算の精度も打ち切られる。例えば、ＤＣＴの係数は、整数によってスケーリング可能であり、２のベキ乗の和として近似値が求められる。奇項の場合、近似値の１つは、次のようになる。
【数３４】
2004523815.tif 000033
【０１１２】
これは、（上記の表記を使用して）次のように書くことができる。
【数３５】
2004523815.tif 000034
【０１１３】
さらに、すでに述べた通り、上記行列の全部およびその一連の和が可逆である。そこで、
【数３６】
2004523815.tif 000035
【０１１４】
すなわち、Ｆハットの第ｊ番目の要素の大きさが非常に小さければ、ｊ（３２ｄＤ０Ｆ）は小さくなるはずである。そうでない場合、ｊ（（８ｄＤ１＋２ｄＤ２＋ｄＤ３）Ｆは、これを取り消して最終結果を小さくすることができない。ただし、各計算結果の相対的な大きさをチェックすることは可能である。中間精度のいずれかに対する変換値の一つが、他の値に比べて小さいとき、あるいは、何らかの既定のしきい値に比べて小さいときは、変換値のその後のリファインメントをアボートできる。
【０１１５】
図６に、変換係数計算プロセスの以降の繰り返しをアボートする処理を示す、本発明によるアボート方法のフローチャート４００が示されている。図６では、増分計算された少なくとも１つの数が検査される（４１０）。一定の基準が満たされると、以降の計算がアボートされる（４２０）。変換係数の増分計算のアボートは、増分計算の終了によって生じる誤差が容認可能なときに行なわれる。例えば、増分計算の終了は、増分計算が、既定の範囲内になると推定される数（例えば、精度要件を満たす変換係数）になると判断された場合に行なわれる。代わりに、変換係数が０の既定範囲内に収まる場合に、変換係数の増分計算をアボートしてもよい。
【０１１６】
図７に、増分計算された少なくとも１つの数を検査するフローチャート５００が示されている。図７では、増分計算の検査により、変換係数へのリファインメントが結果に変化を与えなくなるのはいつか判断する（５１０）。この検査は、図７に示されている少なくとも２種類の方法によって実行できる。増分計算結果の相対的大きさをチェックした後、変換係数の少なくとも１つの中間計算結果が、別の変換係数の中間計算結果に比べて小さいときに、変換係数へのリファインメントは結果に変化を与えないと判断される（５２０）。または、少なくとも１つの増分計算結果の大きさをチェックした後、変換係数の少なくとも１つの中間計算結果が既定のしきい値よりも小さいときに、変換係数へのリファインメントは結果に変化を与えないと判断される（５３０）。
【０１１７】
図８に、本発明によるリファインメント方法のフローチャート６００が示されている。まず初めに、変換にさらに高い精度が必要かどうか判断する（６１０）。この変換は変換行列であり、リファインメント行列により変換係数の増分計算の精度を高める。さらに精度が必要な場合は、リファインメント行列を変換に適用する（６２０）。このリファインメント行列は、オフライン時または初期化時に生成され、近似計算された変換定数に基づくものである。
【０１１８】
図９に、リファインメント行列を生成する第１の方法に関するフローチャートが示されている。まず初めに、近似変換が可逆であることを認識する（７１０）。
【数３７】
2004523815.tif 000036
により求められるリファインメント行列が生成される（７２０）。次に、効率的な計算を行なうために、変換を構造化する（７３０）。
【０１１９】
しかし、すでに述べた通り、ｄＤ０が可逆でない場合、ｄＤ０ＦＤ１からＦＤ１の元の８列を復元することはできない。図１０は、ｄＤ０が可逆でない場合に、リファインメント行列を生成する第２の方法を示すフローチャート８００である。まず初めに、変換を生成するための変換行列の第ｎ列の復元が不可能であることを認識する（８１０）。変換行列の一部の疑似逆行列を計算する（８２０）。次に、変換行列の疑似逆行列を使用して、リファインメント行列の近似を生成する（８３０）。リファインメント行列の近似は、
【数３８】
2004523815.tif 000037
により成り立つ。
【０１２０】
図１１に、本発明によるプリンタ４１０のブロック図４００が示されている。図１１では、プリンタ４１０が、ホストプロセッサ４１０から画像データ４１２を受信する。画像データ４１２は、メモリ４３０に提供され、画像データが８×８ブロック・サンプルに配列される。次に、８×８ブロック・サンプルは、ラスタイメージプロセッサなどのプロセッサ４４０によって処理される。ラスタイメージプロセッサ４４０は、画像データを表す圧縮済みプリントストリームをプリントヘッド駆動回路４５０に送る。次に、プリントヘッド駆動回路４５０は、プリントヘッド４６０を制御して、画像データのプリントアウト４７０を行なう。
【０１２１】
図１−４により示されるプロセスは、コンピュータ可読の媒体または搬送手段４９０により実際に具体化できる。例えば、図１１に示すような固定式および／または着脱式データ記憶装置または他のデータ記憶装置やデータ通信装置のうち１つまたは複数の装置などである。コンピュータ・プログラムは、メモリ４９２にロードされ、図１１のプロセッサ４４０を構成し実行される。コンピュータ・プログラムは、複数の命令を有し、この命令が図１１のプロセッサ４４０によって読み込まれて実行されると、プロセッサ４４０に本発明のステップまたは要素を実行するうえで必要なステップを実行させる。
【０１２２】
図１２に、本発明によるデータ分析システム５００が示されている。図１２において、変換器５１０は、分析対象となる１データ・ブロック５１２を受信する。変換器５１０は、変換方程式５２０を用いて変換データ５２４を生成する。変換方程式５２０は、少なくとも２つの変換定数を有する少なくとも１つのサブ変換に分割される。各集合の少なくとも２つの変換定数が、スケーリング項により単独でスケーリングされることによって、少なくとも１つの集合内の少なくとも２つの変換定数間の比率がほぼ均一に維持される。ただし、スケーリング項は、既定の費用関数に基づき選択される。次に、変換データ５２４は、量子化器５３０によって任意に量子化される。量子化器５３０の量子化値は、各係数ごとに使用されるスケーリング項を反映するように調整される。
【０１２３】
図１３に、本発明による別のデータ分析システム６００を示している。図１３では、変換器６１０が、分析対象の１データ・ブロック６１２を受信する。変換器６１０は、変換方程式６２０を用いて変換データ６２４を生成する。変換方程式６２０は、少なくとも２つの変換定数を有する少なくとも１つのサブ変換に分割される。各集合の少なくとも２つの変換定数が、スケーリング項により単独でスケーリングされることによって、少なくとも１つの集合内の少なくとも２つの変換定数間の比率がほぼ均一に維持される。ただし、スケーリング項は、既定の費用関数に基づき選択される。次に、変換データ６２４は、比較器６３０のスケーリングされた比較値と比較される。
【０１２４】
本発明の代表的態様の以上の説明は例示および説明のために提示したものである。以上の説明は、本発明を余すところなく説明しようとするものでも、または本発明を開示の形態に限定しようとするものでもない。以上に述べた技術に照らして、多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によって限定されるのではなく、本書に添付した請求項によって限定されるものである。
【０１２５】
まとめとして、本発明の構成に関して以下の事項を開示する。
【０１２６】
（１）データを高速変換する方法であって、
変換方程式を変換器が記憶装置から読み出す段階と、
前記変換器が前記変換方程式を、少なくとも２つの変換定数を有する少なくとも１つの集合にまとめる段階と、
さらに前記変換器が前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも２つの変換定数をスケーリング項によって単独でスケーリングする段階と
を含むデータを高速変換する方法。
（２）前記スケーリング項が、前記少なくとも１つの集合からの前記変換定数のいずれかである、上記（１）に記載の方法。
（３）前記変換定数の各々が、２のベキ乗の和によって近似値が求められた推定変換定数によって表されている、上記（１）に記載の方法。
（４）データを少なくとも１つのブロックに分離し、適用された方程式により前記ブロックを変換データに変換することにより、前記少なくとも１つの集合内の前記少なくとも２つの変換定数間の比率をほぼ均一に維持する段階をさらに含む、上記（１）に記載の方法。
（５）前記スケーリング項が既定の費用関数に基づき選択される、上記（１）および（４）のいずれかに記載の方法。
（６）前記既定の費用関数を、任意の変換係数に関する最大誤差が既定の誤差率よりも大きくならないように前記スケーリング項を選択することによって判断する段階をさらに含む、上記（５）に記載の方法。
（７）前記既定の費用関数を、既定の変換定数の誤差が既定の誤差率以下となるように前記スケーリング項を選択することによって判断する段階をさらに含む、上記（５）に記載の方法。
（８）ある集合の全変換定数が既定の特性を備えた同時２進表現を有するように前記変換定数の前記スケーリング項および表現を選択することによって、前記既定の費用関数を判断する段階をさらに含む、上記（５）に記載の方法。
（９）ある集合の全変換定数が最少の共通する２のベキ項を備えた同時２進表現を有するような前記変換定数の前記スケーリング項および表現の選択が、２進算術シフトの方が乗法演算よりも効率的である場合に実行される、上記（８）に記載の方法。
（１０）前記スケーリングされた定数の全表現が、
ａ）第１変数を前記ブロックの第ｉ番目の要素に設定する段階と、
ｂ）第２変数を２の値に初期化する段階と、
ｃ）ビットマスクを２進数の３に初期化する段階と、
ｄ）前記ビットを分析することにより、前記第１変数によって示される前記第ｉ番目の要素が、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
ｅ）前記第２変数を前記第１変数に追加して、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１
によって求められる２のベキ乗の効果的変更を行なうことにより、第ｉ番目の要素を符号化する段階と、
ｆ）新規表現を求めるとともに、前記第１変数を第ｉ＋１番目の要素に設定する段階と、
ｇ）前記ビットマスクと前記第２変数を左に１ビットシフトさせる段階と、
ｈ）段階ｄ−ｇを繰り返す段階と
により求められる、上記（９）に記載の方法。
（１１）前記マスクビットと一致する前記第１変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が０となり、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１の並べ換えに用いられる２のベキ乗を増加させる段階をさらに含む、上記（１０）に記載の方法。
（１２）前記既定の特性が非ゼロの２のベキ項の最大化クラスタリングを含む、上記（９）に記載の方法。
（１３）ある集合の全変換定数が非ゼロの２のベキ項の最大化クラスタリングを備えた同時２進表現を有するような前記スケーリング項の選択が、小さい整数を用いた乗法演算の方が大きい数を用いた乗算よりも好ましい場合に実行される、上記（１２）に記載の方法。
（１４）前記定数を表す２のベキ多項式の前記係数が非ゼロか追跡する、上記（１３）に記載の方法。
（１５）前記ビット位置の値によって前記２のベキ項が決まる、上記（１４）に記載の方法。
（１６）前記非ゼロの２のベキ項のクラスタリングの最大化が、
ａ）第１変数を前記ブロックの第ｉ番目の要素に設定する段階と、
ｂ）第２変数を２の値に初期化する段階と、
ｃ）ビットマスクを２進数の３に初期化する段階と、
ｄ）前記ビットを分析することにより、前記第１変数によって示される前記第ｉ番目の要素が、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
ｅ）前記第２変数を前記第１変数に追加して、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１によって求められる２のベキ乗の効果的変更を行なうことにより、第ｉ番目の要素を符号化する段階と、
ｆ）新規表現を求めるとともに、前記第１変数を第ｉ＋１番目の要素に設定する段階と、
ｇ）前記ビットマスクと前記第２変数を左に１ビットシフトさせる段階と、
ｈ）段階ｄ−ｇを繰り返す段階と
により前記スケーリングされた定数の全表現を求める段階を含む、上記（１３）に記載の方法。
（１７）前記マスクビットと一致する前記第１変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が０となり、２ｎ＋２ｎ−１＝２ｎ＋１−２ｎ−１の並べ換えに用いられる２のベキ乗が増加する段階をさらに含む、上記（１６）に記載の方法。
（１８）前記各集合は、部分演算の変換方程式による互いに素な集合である、上記（１）に記載の方法。
（１９）前記各集合は、部分演算の変換方程式による互いに素な集合ではない、上記（１）に記載の方法。
（２０）前記少なくとも１つの集合の各々の前記変換定数に対して独立したスケーリング項を選択する段階をさらに含む、上記（１９）に記載の方法。
（２１）変換中に変換係数の増分計算により求められた少なくとも１つの数を検査する段階と、
検査に基づく修正動作を行なうべきか否かを判断する段階と、
修正動作が必要と判断された場合にその修正動作を実行する段階と
をさらに含む、上記（１）に記載の方法。
（２２）前記修正動作の実行を判断する段階において、前記変換係数の前記増分計算が容認できない精度の変換係数となるか否かを検出し、前記修正動作の実行において、前記少なくとも１つの数をリファインメントする、上記（２１）に記載の方法。
（２３）前記変換は変換行列を含み、前記リファインメントにおいて、前記変換定数の前記増分計算の精度を高めるために、リファインメント行列を使用する、上記（２２）に記載の方法。
（２４）前記リファインメント行列は、
【数３９】
2004523815.tif 000038
【０１２７】
を含む、上記（２３）に記載の方法。
（２５）概算された変換定数に基づく少なくとも１つのリファインメント行列を生成する段階をさらに含む、上記（２１）に記載の方法。
（２６）前記少なくとも１つのリファインメント行列の生成は、オフラインまたは初期化時に実行される、上記（２５）に記載の方法。
（２７）前記少なくとも１つのリファインメント行列を生成する段階において、近似変換が可逆であることを認識し、
【数４０】
2004523815.tif 000039
【０１２８】
によって求められるリファインメント行列を生成し、効率的な計算を行なうために前記変換を構造化する、上記（２５）に記載の方法。
（２８）前記少なくとも１つのリファインメント行列を生成する段階は、
前記変換を生成する変換行列の第ｎ列の復元が不可能であることを認識する段階と、
前記変換行列の一部に対する疑似逆行列を計算する段階と、
前記変換行列の前記疑似逆行列を使用して前記少なくとも１つのリファインメント行列の近似を生成する段階と
を含む、上記（２５）に記載の方法。
（２９）前記リファインメント行列の前記近似は、
【数４１】
2004523815.tif 000040
【０１２９】
を含む、上記（２８）に記載の方法。
（３０）前記修正動作の実行を判断する段階において、さらに、前記増分計算の終了に伴う誤差が容認できないものか否かを判断し、前記修正動作の実行において、変換係数の前記増分計算をアボートする、上記（２１）に記載の方法。
（３１）前記増分計算は、前記増分計算により既定の範囲内の数が得られると判断された時点で終了する、上記（３０）に記載の方法。
（３２）前記既定の範囲内になることが予想される数は、精度要件を満たす変換係数を有している、上記（３１）に記載の方法。
（３３）前記増分計算は、前記変換係数へのリファインメントが結果に変化を与えないと判断された時点で終了する、上記（３１）に記載の方法。
（３４）前記増分計算結果の相対的大きさをチェックした後、少なくとも１つの変換係数の中間計算結果が別の変換係数の中間計算結果よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、上記（３３）に記載の方法。
（３５）少なくとも１つの増分計算結果の大きさをチェックした後、前記変換係数の少なくとも１つの中間計算結果が既定のしきい値よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、上記（３３）に記載の方法。
（３６）前記判断において、さらに、変換係数が、０の既定範囲内になると判断し、前記修正動作の実行において、前記変換係数の前記増分計算をアボートする、上記（２１）に記載の方法。
【図面の簡単な説明】
以下の添付図面において、全体を通じて、同類の参照番号は同等部分を示している。
【図１】
代表的な画像圧縮システムを示す図である。
【図２】
ＪＰＥＧエンコーダのブロック図を示す図である。
【図３】
本発明のフローチャートを示す図である。
【図４】
第１の基準Ｃ１または第２の基準Ｃ２に対する同時表現を求める方法を示すフローチャートである。
【図５】
修正動作により高速変換を行なうことによって、高速変換演算と実行時間の短縮を実現するフローチャートである。
【図６】
変換係数計算処理の以降の繰り返しのアボートを示す本発明によるアボート方法を示すフローチャートである。
【図７】
少なくとも１つの増分計算された数の検査を示す図である。
【図８】
本発明によるリファインメント方法を示すフローチャートである。
【図９】
リファインメント行列を作成する第１の方法を示すフローチャートである。
【図１０】
ｄＤ０が可逆でない場合に、リファインメント行列を作成する第２の方法を示すフローチャートである。
【図１１】
本発明によるプリンタを示す図である。
【図１２】
本発明によるデータ分析システムを示す図である。
【図１３】
本発明による別のデータ分析システムを示す図である。
【符号の説明】
１１０  デジタル画像
１１２  ８×８画素ブロック
１２０  変換器
１３０  量子化器
１４０  （オプション）エントロピー・エンコーダ
１５０  出力データストリーム
４１０  ホストプロセッサ
４３０  メモリ
４４０  プロセッサ
４５０  プリントヘッド駆動回路
４６０  プリントヘッド
４９２  メモリ
５１０  変換器
５２０  変換方程式
５３０  （オプション）量子化器
６１０  変換器
６２０  変換方程式
６３０  （オプション）比較器
【図１】
2004523815.tif 000044
【図２】
2004523815.tif 000045
【図３】
2004523815.tif 000046
【図４】
2004523815.tif 000047
【図５】
2004523815.tif 000048
【図６】
2004523815.tif 000049
【図７】
2004523815.tif 000050
【図８】
2004523815.tif 000051
【図９】
2004523815.tif 000052
【図１０】
2004523815.tif 000053
【図１１】
2004523815.tif 000054
【図１２】
2004523815.tif 000055
【図１３】
2004523815.tif 000056
【国際公開パンフレット】
2004523815.tif 000057
2004523815.tif 000058
2004523815.tif 000059
2004523815.tif 000060
2004523815.tif 000061
2004523815.tif 000062
2004523815.tif 000063
2004523815.tif 000064
2004523815.tif 000065
2004523815.tif 000066
2004523815.tif 000067
2004523815.tif 000068
2004523815.tif 000069
2004523815.tif 000070
2004523815.tif 000071
2004523815.tif 000072
2004523815.tif 000073
2004523815.tif 000074
2004523815.tif 000075
2004523815.tif 000076
2004523815.tif 000077
2004523815.tif 000078
2004523815.tif 000079
2004523815.tif 000080
2004523815.tif 000081
2004523815.tif 000082
2004523815.tif 000083
2004523815.tif 000084
2004523815.tif 000085
2004523815.tif 000086
2004523815.tif 000087
2004523815.tif 000088
2004523815.tif 000089
2004523815.tif 000090
2004523815.tif 000091
2004523815.tif 000092
2004523815.tif 000093
2004523815.tif 000094
2004523815.tif 000095
2004523815.tif 000096
2004523815.tif 000097
2004523815.tif 000098
2004523815.tif 000099
2004523815.tif 000100
2004523815.tif 000101
2004523815.tif 000102
2004523815.tif 000103
2004523815.tif 000104
2004523815.tif 000105
2004523815.tif 000106
2004523815.tif 000107
【国際調査報告】
2004523815.tif 000108