JP2004523815A - スケーリング項、アーリー・アボート、および精度リファインメントを用いた高速変換 - Google Patents
スケーリング項、アーリー・アボート、および精度リファインメントを用いた高速変換 Download PDFInfo
- Publication number
- JP2004523815A JP2004523815A JP2002538296A JP2002538296A JP2004523815A JP 2004523815 A JP2004523815 A JP 2004523815A JP 2002538296 A JP2002538296 A JP 2002538296A JP 2002538296 A JP2002538296 A JP 2002538296A JP 2004523815 A JP2004523815 A JP 2004523815A
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- transform
- variable
- refinement
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 144
- 238000004364 calculation method Methods 0.000 claims abstract description 85
- 230000009471 action Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 125
- 239000011159 matrix material Substances 0.000 claims description 67
- 230000009466 transformation Effects 0.000 claims description 49
- 230000006870 function Effects 0.000 claims description 44
- 230000014509 gene expression Effects 0.000 claims description 29
- 230000008859 change Effects 0.000 claims description 13
- 238000012937 correction Methods 0.000 claims description 11
- 230000002441 reversible effect Effects 0.000 claims description 10
- 238000007689 inspection Methods 0.000 claims description 6
- 230000036961 partial effect Effects 0.000 claims description 6
- 206010000210 abortion Diseases 0.000 claims description 5
- 230000008707 rearrangement Effects 0.000 claims 2
- 238000007670 refining Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 abstract description 9
- 230000000694 effects Effects 0.000 abstract description 6
- 238000001514 detection method Methods 0.000 abstract 1
- 238000007906 compression Methods 0.000 description 23
- 230000006835 compression Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 21
- 238000013139 quantization Methods 0.000 description 18
- 238000007792 addition Methods 0.000 description 14
- 238000013144 data compression Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000007405 data analysis Methods 0.000 description 7
- 238000000844 transformation Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 235000013351 cheese Nutrition 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】離散変換を、変換定数の複数のスケーリング項を用いて単独で計算されるサブ変換に分割する。変換係数に対するスケーリングの影響は、量子化値または任意の比較値を適正にスケーリングすることによって随意処理される。修正動作を行なう必要性は、変換係数の増分計算の検査に基づいて検出される。検出後、修正動作が実行される。修正動作には、追加的精度を得るための増分計算のリファインメント、および/または、求められた数が充分な場合に増分計算をアボートする処理が含まれている。
【選択図】図3
Description
【発明の属する技術分野】
本発明は、概してデータ処理に関し、詳しくは、複数のスケーリング項、アーリーアボート、および精度リファインメントを用いた高速変換に関するものである。
【0002】
【従来の技術】
データをあるドメイン(例えば、標本データ)から別のドメイン(例えば、周波数空間)へデータを取り込む変換は、多くの信号および/または画像処理に用いられている。このような変換は、データ分析、特徴の識別および/または抽出、信号相関、データ圧縮、データ埋込み/ウォーターマーキング等の(ただし、これに限定されない)種々の用途に利用されている。
【0003】
データ処理において、データは、通常、標本離散関数として表される。この離散表現は、決定論的または統計的に作成される。決定論的表現ではデータの点特性が考慮され、統計的表現ではデータの平均値特性が指定される。例えば、データ圧縮のために離散コサイン変換を使用することは、技術上周知である。本書に引用する具体例では、項画像および画像処理が使用されているが、本発明は、画像処理に限定されるものではなく、オーディオ・データ、科学的データ、画像データ等の種々のデータの処理に利用できることは、当業者の理解するところである。
【0004】
デジタル画像処理システムでは、デジタル画像信号の形成は、まず初めに2次元画像をグリッドに分割することによって行なわれる。グリッド内の各画素、すなわち、ピクセルは、輝度および色などのいくつかの視覚的特性と関連づけられており、これらの特性は数値形式に変換される。次に、デジタル画像信号が、画像内の各画素に関連づけられている数をデジタル画像信号の受信機が解釈できる数列にアセンブルすることによって形成される。
【0005】
データを用いる実際の応用に際してデータが多すぎる場合、データ圧縮は、多くのデータ処理プロセスにおいて望ましい。通常、圧縮は、通信リンクで使用され、送信時間や必要となる帯域幅を低減させている。同様に、圧縮は、印刷される文書の「ページ」がメモリに一時的に記憶されるデジタルプリンタやコピー機等の画像記憶システムに好適である。この場合、画像データが記憶される媒体空間量を、圧縮によって大幅に低減できる。一般に、走査画像、すなわち、ハードコピー文書の電子的表現は大型であることが多く、したがって、圧縮対象としてふさわしい。
【0006】
信号および画像処理では、分析の目的上、入力データを変換係数に変換しなければならない場合が度々ある。また、このような係数を量子化したものが必要になることも多い(例えば、JPEG/MPEGデータ圧縮またはオーディオ/音声圧縮)。このような応用には、高速プリンタ用JPEGデータの作成などのように、リアルタイムで高速に行なわなければならないものもかなりある。こうした変換の多くは、データ処理の一部として圧縮を用いるか否かに関わらず、リアルタイムおよび/または高速な実行を実現するために、効率的に遂行する必要がある。
【0007】
データ信号処理業界は、デジタル信号処理を最も効果的かつ迅速に行なう最も高速な方法を探し出す必要に迫られている。圧縮分野では、通常、高速変換の実装に関する分野の研究が極めて活発であり競争も激しい。研究者達は、これまでに、変換および逆変換に見られる特性を利用することによって、変換の実装用に作られたハードウェアの長所を活かした様々な試みを行なってきた。
【0008】
そのような技術の一つが、ISO(国際標準化機構)10918‐1 JPEG国際標準/ITU‐T(国際電気通信連合・電気通信標準化部門)勧告T.81である。JPEG暫定標準が、本願に引用して援用するペンベーカーとミッチェルの「JPEG 静止画像データ圧縮標準」(ニューヨーク、ヴァン・ノストランド・レインホール社、1993年)に掲載されている。他の新たに出現した圧縮標準以外にも、JPEG標準に定義されている圧縮方法の一つに、離散コサイン変換(DCT)符号化がある。DCT符号化により圧縮された画像は、逆DCT(IDCT)として周知の逆変換により圧縮解除される。DCTに関する優れた一般的な参考文献として、本願に引用して援用する、ラオおよびイップの「離散コサイン変換」(ニューヨーク、アカデミック・プレス、1990年)がある。この技術において通常の知識を有する者であれば、当然、上記参考文献の内容をよく理解できるものと思われる。
【0009】
静止画像にコンピュータ利用者その他から見て記憶上の問題がある場合、動画の記憶上の問題がはるかに深刻であることは直ちに理解できる。というのは、フルモーションビデオであれば、表示される動画の1秒当たり、最高60画像が必要となるからである。したがって、動画の圧縮技術は、一層の開発と標準化を行なう上でのテーマとなってきた。重要な2つの標準に、ISO11172MPEG国際標準およびITU‐T勧告H.261がある。いずれの標準も、DCT符号化およびIDCT復号化を一部基にしている。
【0010】
2次元離散コサイン変換は、数で構成されたあるN1×N2配列から数で構成された別のN1×N2配列へ、またはその逆の方向に変換する1対の数学方程式である。第1の配列は、通常、デジタル画像を形成する空間的に決められた成分値による正方形のN×N配列である。各画素は複数の成分と関連付けられているため、以下の説明においては、簡潔化のため単一成分の画素について検討を行なう。ただし、複数の成分から成る画素に拡張可能なことは、当業者にとって明らかである。第2の配列は、周波数領域において画像を表現する離散コサイン変換係数の配列である。周波数成分の係数によって画像を表すこの方法は、離散フーリエ変換の特別な例である。この離散フーリエ変換は、任意の周期的波形が種々の周波数と振幅を持つ正弦波および余弦波の和として表現される古典的な数学的フーリエ変換の離散型である。離散コサイン変換は、フーリエ変換のように、信号を時間領域から周波数領域に、また、その逆の方向に変換する変換のことを言う。DCT乗算は、すべて実数である。したがって、必要な乗算回数は、離散フーリエ変換に比べて少なくなる。大抵の画像の場合、信号エネルギーの多くが低周波数となっており、これらはDCTの左上隅に現れる。右下の値は高周波数を表しており、目に見える歪みがほとんどない無視できるほど小さいものであることが多い。
【0011】
基本的な離散コサイン変換方程式には2通りある。第1の基本方程式は、画素値を離散コサイン変換係数に変換する順方向の離散コサイン変換である。また、第2の基本方程式は、離散コサイン変換係数を画素値に戻す逆方向の離散コサイン変換である。画像を離散コサイン変換する用途の大半は、8×8配列を使用しており、したがって、この配列では、Nが8の値を有している。したがって変換実行時には、Nが8の値を有しているものとし、f(i、j)を画素配列の値とし、F(u、v)を離散コサイン変換係数の値とすると、次のような2次元離散コサイン変換方程式が成り立つ。
【数4】
【0012】
ここで、x、y=空間領域(0、1、2、...7)における空間座標であり、u、v=変換領域(0、1、2、...7)における座標であり、u=0の場合、Cu=1/√2であり、そうでない場合は、1となる。また、v=0の場合、Cv=1/√2となり、そうでない場合は、1となる。2次元DCTの分離可能な性質は、1次元DCTを8列について行ない、次に、1次元DCTを結果の8行について行なうことによって活用される。この8ポイントの1次元DCTの計算には、高速アルゴリズムをいくつか利用できる。
【0013】
すでに述べた通り、コンプレッサのDCT部は、主に2つの部分を有している。第1の部分は、DCT変換により、相関性の高い画像データを弱い相関係数に変換し、第2の部分は、係数の量子化により、送信または記憶時のビットレートを低下させる。しかし、DCTを行なう計算上の負担は大きい。例えば、長さが8画素の1次元DCTを処理するには、現在周知の高速アルゴリズムで13回の乗算と29回の加算が必要である。(「画像用高速DCT‐SQスキーム」(電子情報通信学会(Trans.IEICE)、第E‐71巻、第11号、1095−1097頁、1988年11月、ワイ・アライ、ティー・アグイ、エム・ナカジマ)と題する論文では、DCT乗算の多くが、DCT係数に対するスケーリング乗数として定式化できると提言している。これら乗数が因数分解された後のDCTが、スケールドDCTと呼ばれている。このスケールドDCTは直交型ではあるものの正規化されたものではなくなるが、スケーリング因子を、その後の量子化処理で元に戻すことができる。アライ他は、この論文の中で、8ポイントのスケールドDCTの処理には、5回の乗算と29回の加算しか必要としないことを明らかにしている。)上記の通り、画像は、サイズ8×8画素、16×16画素、または32×32画素の正方形ブロックに分割される。各ブロックは、行×行に続く列×列により、1次元DCTで処理されることが多い。一方、種々の入力および圧縮データに関する様々な品質要求事項により、圧縮用に異なるブロックサイズが選択される。
【0014】
スケーリングされた項を使用して、離散コサイン変換(DCT)の余弦項のような乗算定数を最少の加算/減算と入れ換える。ただし、スケーリングされた項は、単に、変換方程式の定数の近似値を求めるだけである。したがって、精度を一定数のビットに制限した状態を維持するため、または、演算数を最少限度にとどめるために、ある程度の誤差が容認される。その結果得られる数が、最大予想可能誤差に比べて、決定境界(例えば、しきい値または量子化境界)から離れている場合、計算結果は、近似値による影響を受けない。ただし、増分計算中に、求められる数がより高い精度を必要とするかどうか判断できる。さらに、元の入力値は、レジスタでは利用できなくなり、メモリから元の入力値をフェッチし直すことによって、キャッシュ・ミスやメモリの待ち時間に関連したサイクルを課すことができる。ブルート・フォース・オプションは、値に逆変換(例えば、IDCT)を行なってから、次に、順方向の変換(例えば、FDCT、単にDCTと記されることもある)をより高精度で再度実行するものである。このブルート・フォース手法の欠点は、演算に無駄が生じる点である。
【0015】
しかしながら、一般に、希望する度合いの圧縮が行なえるDCT符号化を用いる上記技術のような特定技術に研究が集中している。それでもなお、一定の環境のもとでは、他の変換によって一定の効果を得ることが可能である。例えば、上記のDCT圧縮符号化法では、入力画像が数多くの均一なブロックに分割されるとともに、2次元離散コサイン変換関数が各ブロックに適用されることにより、データ・サンプルが変換係数の集合に変換されて空間的余剰が取り除かれる。しかし、高い圧縮率が得られたとしても、ブロック化による影響は、多かれ少なかれ生じることになる。さらに、圧縮システムによって利用されるベクトル量子化法は、高い圧縮率に貢献することから有利である。一方、サブバンド法により、データ圧縮率が高い間に発生するブロック化の影響を抑えることができる。離散ウェーブレット変換(DWT)またはサブバンド符号化(SBC)法は、例えば、時間成分および周波数成分に基づき信号を符号化する。したがって、これら変換方法は、非定常信号の分析に役立つとともに、画像分析の人間視覚システム(HVS)の特性を考慮した設計を行なえるという利点を有している。
【0016】
したがって、アーリー・アボートや精度リファインメントにより処理サイクルを省略することにより、高速化した変換計算を行なえる方法および装置を提供し、したがって、ソフトウェア実行時間の短縮やハードウェア要件の減少を実現する必要があることが理解できる。
【0017】
【発明が解決しようとする課題】
以上に述べた従来技術の限界を乗り越え、また本明細書を読み理解すれば明白な他の限界を乗り越えるために、本発明は、複数のスケーリングされた項、アーリー・アボート、および精度リファインメントを用いた高速変換について開示する。
【0018】
【課題を解決するための手段】
本発明は、離散変換を、変換定数にスケーリング項を用いて単独で計算されるサブ変換に分割することによって、上記の問題を解決する。さらに、2進演算用スケーリング項の最適表現が求められる。その結果行なわれる計算によって、変換計算が高速化し、ソフトウェア実行時間が短縮し、ハードウェア要件が少なくなる。さらに、同じ方法を用いて概して演算数が同じになるように逆変換を頻繁に実行できることは、当業者の理解するところである。さらに、本発明は、変換定数にスケーリング項を使用して乗算回数を減らすことにより、上記の問題を解決する。さらに、スケーリング後、少数の加法を行なうだけで、その後、2のベキ乗の和によって各定数の近似値が求められることから、これら定数の各項は、一連のさらに少ない線形シフトおよび加算に置き換えられる。当業者は、本明細書を通じて、「行列(マトリクス)」という用語が、従来の数学的な意味だけでなく、解析時に数学的マトリクスとして同等に表現し得るすべてのハードウェアおよびソフトウェア・システムをも意味することを理解するものと思う。さらに、本発明は、変換定数の増分計算検査に基づく修正動作を実行すべき時点を検出し、その修正動作(追加的精度を得るための増分計算のリファインメント、および/または、得られる数が小さくなりすぎる場合の増分計算のアボート)を実行することにより、上記の問題を解決する。
【0019】
本発明の原理に基づく方法は、変換方程式を、少なくとも2つの変換定数を有する少なくとも1つの集合にまとめることと、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングすることを含んでいる。さらに、この方法は、スケーリングされた離散コサイン変換定数の各々を、2のベキ乗の和によって近似値が求められたスケーリング後の推定離散コサイン変換定数で表すことも含まれている。
【0020】
本発明の原理に基づく方法の他の実施例では、代替的または任意の補足的態様が含まれている。本発明のこのような態様の一つに、前記方法が、さらに、データを少なくとも1つのブロックに分離し、スケーリングされた変換方程式によって前記ブロックを変換データに変換することを含むものがある。
【0021】
本発明の別の態様によれば、スケーリングされた推定離散コサイン変換定数を用いて2進演算に基づく前記離散コサイン変換方程式で行列乗算を行ない、線形シフトおよび加算を実行することにより、前記ブロックを変換データに変換する。
【0022】
本発明のさらに別の態様によれば、前記スケーリング項が、既定の費用関数に基づき選択される。
【0023】
本発明のさらに別の態様によれば、前記既定の費用関数は、任意の変換係数に関する最大誤差が既定の誤差率よりも大きくならないように前記スケーリング項を選択する。
【0024】
本発明のさらに別の態様によれば、前記既定の費用関数は、各関連する変換係数の最大誤差が個々の既定の誤差率よりも大きくならないように前記スケーリング項を選択する。
【0025】
本発明のさらに別の態様によれば、既定の費用関数は、前記既定の変換係数の誤差が既定の誤差率以下となるように前記スケーリング項を選択する。
【0026】
本発明のさらに別の態様によれば、既定の費用関数は、各関連する既定の変換係数の誤差が、個々の既定の誤差率以下となるようにスケーリング項を選択する。
【0027】
本発明のさらに別の態様によれば、前記既定の費用関数は、ある集合の全変換定数が既定の特性を備えた同時2進表現を有するように前記変換定数の前記スケーリング項および表現を選択する。
【0028】
本発明のさらに別の態様によれば、前記費用関数は、多くの加算演算を最少限度に抑える。
【0029】
本発明のさらに別の態様によれば、前記費用関数は、加算演算数が最悪の場合も、最少限度に抑える。
【0030】
本発明のさらに別の態様によれば、前記既定の特性が、最少の共通する2のベキ項を含む。
【0031】
本発明のさらに別の態様によれば、ある集合の全変換定数が、最少の共通する2のベキ項を備えた同時2進表現を有するような、前記変換定数の前記スケーリング項および表現の選択が、2進算術シフトの方が乗法演算よりも効率的である場合に実行される。
【0032】
本発明のさらに別の態様によれば、前記既定の特性が、非ゼロの2のベキ項の最大化クラスタリングを含む。
【0033】
本発明のさらに別の態様によれば、ある集合の全変換定数が非ゼロの2のベキ項の最大化クラスタリングを備えた同時2進表現を保有するような前記スケーリング項の選択が、小さい整数を用いた乗法演算の方が大きい数を用いた乗算よりも好ましい場合に実行される。
【0034】
本発明のさらに別の態様によれば、定数を表す2のベキ多項式の係数が非ゼロか追跡する。
【0035】
本発明のさらに別の態様によれば、ビット位置の値によって2のベキ項が決まる。
【0036】
本発明のさらに別の態様によれば、前記非ゼロの2のベキ項のクラスタリングの最大化が、a)第1変数を前記ブロック内の第i番目の要素に設定し、b)第2変数を2の値に初期化し、c)ビットマスクを2進数の3に初期化し、d)前記ビットを解析することにより、前記第1変数によって示される前記第i番目の要素が、2n+2n−1=2n+1−2n−1を用いて前記項の並べ換えを行なう表現候補であるか判断し、
e)前記第2変数を第1変数に追加して、2n+2n−1=2n+1−2n−1によって求められる2のベキ乗の効果的変更を行なうことにより、第i番目の要素を符号化し、f)新規表現を求めるとともに、第1変数を第i+1番目の要素に設定し、g)前記マスクと前記第2変数を左に1ビットシフトさせ、h)d−gを繰り返すことにより、前記スケーリングされた定数の全表現を求めることを含む。
【0037】
本発明のさらに別の態様によれば、前記方法は、さらに、前記マスクビットと一致する前記第1変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が0となり、2n+2n−1=2n+1−2n−1の並べ換えに用いられる2のベキ乗が増加することを含む。
【0038】
本発明のさらに別の態様によれば、前記各集合は、部分演算の変換方程式による互いに素な集合である。
【0039】
本発明のさらに別の態様によれば、前記各集合は、部分演算の変換方程式による互いに素な集合ではない。
【0040】
本発明のさらに別の態様によれば、前記方法は、さらに、少なくとも1つの集合の各々の前記変換定数に対して独立したスケーリング項を選択する。
【0041】
本発明の原理に基づく方法は、変換中に変換係数の増分計算により求められた少なくとも1つの数を検査し、検査に基づく修正動作を行なうべきか否かを判断し、修正動作が必要と判断された場合にその修正動作を実行する。
【0042】
本発明の原理に基づく方法の他の実施例では、代替的または任意の補足的態様が含まれている。本発明のこのような態様の一つに、前記判断において、前記変換係数の前記増分計算が容認できない精度の変換係数となるか否かを検出し、前記修正動作の実行において、前記少なくとも1つの数をリファインメントするものがある。
【0043】
本発明のさらに別の態様によれば、前記変換は変換行列を含み、前記リファイン処理において、前記変換定数の前記増分計算の精度を高めるために、リファインメント行列を使用する。
【0044】
本発明のさらに別の態様によれば、前記リファインメント行列は、
【数5】
を含む。
【0045】
本発明のさらに別の態様によれば、前記方法は、さらに、概算された変換定数に基づく少なくとも1つのリファインメント行列を生成する。
【0046】
本発明のさらに別の態様によれば、前記少なくとも1つのリファインメント行列の生成は、オフラインまたは初期化時に実行される。
【0047】
本発明のさらに別の態様によれば、前記リファインメント行列の生成において、近似変換が可逆であることを認識し、
【数6】
によって求められるリファインメント行列を生成し、効率的な計算を行なうために前記変換を構造化する。
【0048】
本発明のさらに別の態様によれば、前記リファインメント行列の生成において、前記変換を生成する変換行列の第n列の復元が不可能であることを認識し、前記変換行列の一部に対する疑似逆行列を計算し、前記変換行列の前記疑似逆行列を使用して前記リファインメント行列の近似を生成する。
【0049】
本発明のさらに別の態様によれば、前記リファインメント行列の前記近似は、
【数7】
を含む。
【0050】
本発明のさらに別の態様によれば、前記判断において、さらに、前記増分計算の終了に伴う誤差が容認できないものか否かを判断し、前記修正動作の実行において、変換係数の前記増分計算をアボートする。
【0051】
本発明のさらに別の態様によれば、前記増分計算は、前記増分計算により既定の範囲内の数が得られると判断された時点で終了する。
【0052】
本発明のさらに別の態様によれば、前記既定の範囲内になることが予想される数は、精度要件を満たす変換係数を有している。
【0053】
本発明のさらに別の態様によれば、前記増分計算は、前記変換係数へのリファインメントが結果に変化を与えないと判断された時点で終了する。
【0054】
本発明のさらに別の態様によれば、前記増分計算の結果の相対的大きさをチェックした後、少なくとも1つの変換係数の中間計算結果が別の変換係数の中間計算結果よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される。
【0055】
本発明のさらに別の態様によれば、少なくとも1つの増分計算の結果の大きさをチェックした後、前記変換係数の少なくとも1つの中間計算結果が既定のしきい値よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される。
【0056】
本発明のさらに別の態様によれば、前記判断において、さらに、変換係数が、0の既定範囲内になると判断し、前記修正動作の実行において、前記変換係数の前記増分計算をアボートする。
【0057】
本発明の別の実施例において、データ圧縮システムが提供されている。前記データ圧縮システムは、線形変換を適用することにより変換方程式を用いてデータを変換係数にデコリレートする変換器を具備し、前記変換方程式は、前記変換方程式を少なくとも2つの変換定数を有する少なくとも1つの集合にまとめることと、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングすることにより構成され、前記スケーリング項は既定の費用関数に基づき選択され、さらに、前記システムは、前記変換係数を表すのに必要な複数のビットを削減することにより、前記変換データを量子化データに量子化する量子化器を具備している。
【0058】
本発明の別の実施例において、プリンタが提供されている。前記プリンタは、画像データを記憶するメモリと、前記画像データを処理して圧縮されたプリントストリーム出力を提供するプロセッサと、プリントヘッドを制御して前記画像データを印刷出力するプリントヘッド駆動回路とを具備し、前記プロセッサは、線形変換を適用することにより変換方程式を用いてデータを変換係数にデコリレートし、前記変換方程式は、前記変換方程式を少なくとも2つの変換定数を有する少なくとも1つの集合にまとめることと、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングすることにより構成され、前記スケーリング項は既定の費用関数に基づき選択される。
【0059】
本発明の別の実施例において、製品が提供されている。前記製品は、コンピュータにより読み取り可能なプログラム記憶媒体を具備し、前記媒体は、コンピュータにより実行可能な命令から成る1以上のプログラムを実際に具体化することにより、変換方程式を少なくとも2つの変換定数を有する少なくとも1つの集合にまとめるとともに、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングし、前記スケーリング項は既定の費用関数に基づき選択される方法を実行する。
【0060】
本発明の別の実施例において、データ分析システムが提供されている。前記データ分析システムは、変換方程式を具備し、前記変換方程式は、前記変換方程式を少なくとも2つの変換定数を有する少なくとも1つの集合にまとめるとともに、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングすることにより構成され、前記スケーリング項は既定の費用関数に基づき選択され、さらに、前記データ分析システムは、前記変換方程式を適用することにより線形変換を実行してデータを変換係数にデコリレートする変換器を具備している。
【0061】
本発明の特徴を表す前記およびそれ以外の数多の新規な利点および特徴は、この明細書に添えた明細書の一部をなすクレーム中に詳しく指摘してある。ただし、本発明と、その利益と、実施することによって達成される目的とを充分に理解するためには、本発明による装置の詳細な例を例示し説明してある明細書のさらに一部をなす添付図面ならびに記事を参照すべきである。
【0062】
【発明の実施の形態】
以下の好適な実施例に関する説明において、本明細書の一部をなす添付図面を参照し、該添付図面には、本発明が実施される具体的な実施例が例示により示されている。また、他の実施例により本発明の範囲内で構造的変更が行なえることは理解されるものと思う。
【0063】
本発明は、複数のスケーリング項を用いる高速変換を提供する。これらの変換は、変換定数にスケーリング項を使用して単独で計算が行なわれるサブ変換に分割される。さらに、2進演算用スケーリング項の最適表現を求める。この方法により、高速変換計算、ソフトウェア実行時間の短縮、さらにハードウェア要件の削減が実現できる。本発明によれば、信号および画像処理に用いられる離散変換は、いわゆる基底関数を使用する。この基底関数は、変換構造を設定し、この関数があることによって、変換を2つ以上のサブ集合で計算できるようになる。次に、変換を高速に遂行するための費用関数を用いて、この計算の基底係数の最適表現を求める。
【0064】
図1に、代表的な画像圧縮システム100が示されている。このデータ圧縮システムは、3つの緊密な関係を持つ部品、すなわち、(a)変換器120、(b)量子化器130、(c)オプションのエントロピー・エンコーダ140を具備している。圧縮は、線形変換を適用することにより画像データ110をデコリレートするとともに、その結果得られる変換係数を量子化し、必要に応じて、量子化された値をエントロピー・エンコーディングすることによって実現される。これまでに、離散フーリエ変換(DFT)、離散コサイン変換(DCT)、離散ウェーブレット変換(DWT)その他多くを含む種々の線形変換が開発されており、それぞれ独自の利点および不都合を有している。
【0065】
量子化器130は、単に値の精度を低くすることによって、変換済み係数を記憶するのに必要なビット数を低減させる。これは、多対一マッピングであることから、損失の多いプロセスであるとともに、エンコーダにおいて重要な圧縮源となっている。量子化は、それぞれ個々の係数について実行することができ、このことは、スカラ量子化(SQ)として周知である。さらに、量子化は、係数の集合について実行することも可能であり、これは、ベクトル量子化(VQ)として周知である。均一および均一でない量子化器はいずれも、問題に応じていつでも利用可能である。
【0066】
オプションのエントロピー・エンコーダ140は、さらに、量子化された値を損失のないように圧縮することによって、全体的な圧縮をより優れたものにする。エントロピー・エンコーダ140は、各量子化値の確率を正確に判断し、得られる出力コード・ストリームが入力ストリームよりも小さくなるように、これらの確率に基づいて適切なコードを生成する。最も一般的に利用されているエントロピー・エンコーダは、ハフマン・エンコーダと算術エンコーダである。ただし、高速実行が求められる用途には、単純なランレングス・エンコーディング(RLE)が、非常に効果的であることが立証されている。
【0067】
項の画像変換は、通常、画像表現に用いられるユニタリ行列のクラスを参照する。このことは、これらの行列を使用して、画像を代替的な表現に変換できることを意味している。この各変換は、変換符号化の基礎となる。変換符号化とは、ある変換からの係数を送信用に符号化するプロセスである。
【0068】
信号(x)は、各整数を0・・n−1から複素数にマッピングする関数である。サンプリングまたは画素化された画像の線によって例示する。この例では、サンプルまたは画素が等間隔に配置されている。このような(x)の集合の「直交基底」は、次のような関数の集合である。
【数8】
ここで、y1zに対して、次式が成り立つ。
【数9】
F(y)で示される(x)の「変換」は、次式によって求められる。
【数10】
【0069】
この種の変換は、元の信号から情報を抽出する多くの信号および画像処理に用いられている。変換の一例として、離散フーリエ変換(DFT)があり、ここでは、by(x)=exp(2pixy/n)である。これに関連する例として、離散コサイン変換(DCT)があり、ここでは、by(x)=cos(2pxy/n)である。別の例として、ウェーブレット変換があり、ここで、by(x)は、ある特定のスケーリングされたオフセット型のマザーウェーブレット関数である。(イングリッド・ドベチーズによる「ウェーブレットの10講議」(工業・応用数学会、1992年5月)を参照。)
【0070】
次に、単独スケーリング演算の理論的根拠について、変換構造を損なわずにスケーリングを実行できる数学的根拠を示すことによって明らかにしたい。ある変換を次のように定義する。
【数11】
【0071】
by(x)が、(x)の構造に関わらず、この変換を2以上の互いに素な和に分割できるようなとき、(以下に述べる)このような例について検討してみよう。(「互いに素な」という用語は、方程式の集合について本明細書に用いられている場合、互いに素な2組の方程式の方程式間に共通する変換係数が全くないことを意味している。)例えば、b2y(x)が、偶対称性を有しているとともに、b2y+1(x)が、奇対称性を有している場合、任意の(x)を、(x)=e(x)+0(x)として一意に書けることは、数学上周知である。ここで、e(x)は、偶(0に関して対称)であり、0(x)は、奇(0に関して非対称)であり、次式が成り立つ。
【数12】
【0072】
したがって、この変換は、次のようにも書くことができる。
【数13】
【0073】
図2に、JPEGエンコーダ100のブロック図が示されている。図2では、デジタル画像データ110が8×8画素のブロック112に分割される。次に、各ブロックの離散コサイン変換(DCT)が計算される(120)。離散コサイン変換(DCT)は、データを重要度(例えば、画像の視覚的品質について)が異なる各部分(またはスペクトル・サブバンド)に分離するのに役に立つ。DCTは、離散フーリエ変換とよく似ており、信号を空間的領域から周波数領域に変換する。
【0074】
量子化器130は、量子化行列によりDCT係数の端数を切り捨てる。この段階では、JPEGの「損失の多い」特徴が出るものの、圧縮率を高くできる。画像品質と量子化の度合いには、トレードオフの関係がある。量子化の刻み幅が大きいと、容認できないほど大きい画像の歪みが生じることがある。この影響は、粗くなりすぎて結果的に歪みが大きくなるフーリエ級数係数の量子化とよく似ている。残念ながら、細かい量子化は、圧縮率の低下につながる。問題は、DCT係数をどのように最も効率的に量子化したらよいかという点にある。人間の視力に自然に生じる高周波数のロール・オフによって、これら周波数の役割の重要性は、低周波数に比べて低くなる。このため、JPEGでは、顕著な画像劣化をほとんど受けることなく、高周波数係数に対して、はるかに大きい刻み幅を使用する。次に、オプションのエントロピー・エンコーダ140によって量子化器係数出力を符号化し、圧縮データ・ストリーム150を出力ファイルに生成する。ただし、JPEGの場合、エントロピー・エンコーダはオプションではなく、他の似たようなデータ圧縮システムが、エントロピー・エンコーダに必要なCPUサイクルなしで設計される。
【0075】
しかし、すでに述べた通り、エンコーダ100のスループットを高めるために、乗法ステップの少ない離散コサイン変換を行なう方法および装置を提供する必要がある。後述するように、本発明による方法は、係数行列のスケーリングによって、ブルート・フォース方程式の乗算を省略する。分離可能な各サブグループは、他の集合とは無関係にスケーリングされる。各集合内で、残りの乗算が、単純シフトおよび加算で置き換えられる。このスケーリング項は、種々の費用関数に基づいて選択される。好適な実施例では、加算数を最少限度に抑えるとともに、最悪の加算数も最少限度に抑える費用関数を使用する。ただし、代替費用関数であっても、どのくらいの誤差が各係数に対して許容できるのか選択可能なことは、当業者の理解するところである。さらに、同じ方法を用いて演算数が同じになるように逆DCT(IDCT)を実行できることも、当業者の理解するところである。
【0076】
図3に、本発明のフローチャート200を示している。図3では、変換方程式を、少なくとも2つの変換定数を有する少なくとも1つのサブ変換に分割する(210)。本書に使用されている用語「サブ変換」とは、変換項の部分集合を作成するのに用いられる方程式の集合を意味している。ただし、ここで、部分集合に含まれているのは、変換項のすべて、または、変換項の総数よりも少ない項である。次に、各集合の変換定数をスケーリング項によって単独でスケーリングすることにより、集合内の変換定数間の比率をほぼ均一に維持する(スケーリング項は、既定の費用関数に基づき選択される)(220)。その結果、ブロック変換用の変換方程式が得られる。データは、少なくとも1つのブロックに分離される(230)。次に、変換方程式により、ブロックが、変換データに変換される(240)。従来のシステムであれば、ブロック210および220のオフラインを実行する。しかし、JPEG2000などの実行時間に指定されるアルゴリズムの場合、これらブロックは、プログラム初期化段階中に自動的に実行される。図1の量子化器130について説明すると、スケーリングを量子化に組み込むことによって、変換データが量子化される。このことは、整数コサイン変換(ICT)と対照的である(例えば、パン他による「画像符号化のためのセルフタイム型チップ」(電気電子技術者協会(IEEE Trans.)ビデオ技術回路およびシステム部、第9巻、第6号、1999年、856−860頁)を参照)。整数コサイン変換の場合、各係数は、どの方程式においても同じ値によってスケーリングされ、この方法は、本明細書に記載されている方法と同様の計算上の利点を提供することはない。
【0077】
各定数のスケーリング項の選択は、対象となるシステムのニーズを示す費用関数を用いて実行される。この費用関数に対する複数のパラメタは、高速変換用に識別されたものである。使用される実際の費用関数は、次の費用関数のうちの1つまたはその組み合せである。
【0078】
第1の費用関数は、任意の変換係数(すなわち、F(x))の最大誤差が、P%を超えないものである。ここで、Pはアルゴリズム設計者によって選択される。次の例では、P=1である。
【0079】
第2の費用関数は、アルゴリズム設計者によって選択されたもう少し重要な変換定数において、その誤差がPimportant%を超えない関数である。以下の例では、低周波数項の誤差が、0.1%を下回っている。
【0080】
第3の費用関数は、様々なシステムに使用されるC1とC2という2つの基準に分けられる。すなわち、一般に、基準C1または基準C2のいずれかを満たすような選択が行なわれる。基準C1は、シフトが乗算よりも効率的であるような実装(例えば、ソフトウェアまたはファームウェア)への利用が可能である。基準C2は、小さい整数を使用した乗算の方が大きい数を使用した乗算よりも好ましい実装(例えば、ある一定のビット数を上回る乗算により多くのサイクルが使用されるソフトウェア実装、または、全体の精度が問題となるようなソフトウェア実装)に利用できる。これら2つの基準を示す具体的な例を以下に示している。また、両方の基準を一緒に使用することも可能である。
【0081】
第1の基準C1により、同一の和に現れるスケーリングされたすべての整数基底乗数(FDCTの場合、定数C1−C7であり、ここで、Ck=cos(kp/16)である)が、最少の共通する2のベキ項(すなわち、ある集合内の全表現にわたる2のベキ項の集合が最小である)による同時2進表現を有している。実数定数は、有理数(すなわち、整数の比)によって近似値が求められる。変換のスケーリングされた定数について本明細書で用いられる用語の「表現」とは、この整数比の分子が、2のベキ乗の和および/または差として計算されるような方法を指している。
【0082】
例えば、FDCTにおいて、変換は、次のような方程式の3つの集合に分割できる。
【数14】
【0083】
これら方程式に使用される表記は、ペンベーカーの文献によるものである。ここで、Ssは、
【数15】
は以降Fsハットと記載する。
【0084】
に比例する。したがって、集合3の定数は、最少の共通する2のベキ項による同時2進表現を有しているが、これら同時表現は、集合2の定数に使用されているものと関連していない。集合3の具体例は、次のように表すことができる。
【数16】
【0085】
これらの表現はいずれも、各係数の誤差が1%よりも低い。この例では、共通する2のベキ項の集合が、各方程式から明らかなように、{25、23、21、20}である。これら表現は、2の各ベキ乗を掛ける+1または0による2の多項式と見ることができる。すなわち、
【数17】
【0086】
これら項数の最少化を効率的にしているのは、集合3の各方程式を、2のベキ乗をグループ化して計算できるようにしている点である。この基準C1が使用されるアーキテクチャでは、加算およびシフトの方が、乗算よりもサイクルの点で低コストであり、したがって、集合3の各方程式を、次のような行列演算の計算とみなすことができる。
【数18】
【0087】
この計算では、加算とシフトを入れて全部で28の演算が行なわれる。A=d25−d34 とB=d07+d16を予め計算すると次の式が成り立つ。
【数19】
【0088】
この計算では、事前の計算によって、24サイクルとなる。さらに、20の項を削除することによって(これにより、C5の誤差は約3%に上昇する)、演算数は合計20まで減少する。ここで注意すべきは、すでに述べた高速DCTの奇数係数の計算において当初の和と差の計算を上回る11回の加算と4回の乗算が行なわれており、多くのマイクロプロセッサ上で、乗算が1サイクルを上回っている(4−11サイクルの場合が多い)点である。
【0089】
第2の基準C2により、同一の和(例えば、上記の同一の集合1、2、または3)に現れるスケーリングされた全整数基底乗数(例えば、FDCTの場合、C1−C7)が、できる限りクラスタ化された(すなわち、最大の2のベキ乗と最小の2のベキ乗との差ができるだけ小さい)非ゼロの2のベキ項による同時2進表現を有している。クラスタ化された表現の例を、28=25−22および28=24+23+22により表すことができる。最初の表現では、2のベキ乗が、5−2=3によって拡散され、第2の表現では、4−2=2によって拡散されている。したがって、28に対する第2の表現の方が、第1の表現よりも「クラスタ化されている」ことになる。この利点は、以下に述べる通りである。2の最小のベキ乗が22であるような表現を、ある集合の全定数が有しているとする。このことは、量子化およびスケーリングにおいてピックアップ可能な計算精度に関する2ビットがあることを意味している。したがって、全定数を22で効果的に割ることができ、後続の0に対してシフトを実行する必要がない。
【0090】
これら後続の0が表す補足的な大きさは、量子化を行なう前に、必要に応じて各数に再び導入される。例えば、量子化の判断に当たり、いずれかの表現の後続の1を、精度を上げるために「ピックアップ」する必要があるような場合である。(20項の省略を提案した上記C1の例を参照。)
【0091】
図4に、以下の条件を使用して第2の基準C2の同時表現を求める方法に関するフローチャート300を示している。
2n+2n−1=2n+1−2n−1 (5)
まず初めに、numが、配列repsの第repcount−1番目の要素に設定される(310)。所定の数に対する表現の現行カウントは、repcountである。変数addは2に初期化され(312)、ビットマスクは2進数の0...011に初期化される(314)。
【0092】
各ビットをチェックして、マスクビットと一致するnumの両ビットが設定されているかどうか判断する(340)。設定されていなければ(342)、マスクが左に1つシフトされ(350)、これによって効果的に右側が0となり、addが左に1つシフトされることにより、上記の式(5)の並べ換えに使用される2のベキ乗が増加する。マスクビットと一致するnumの両ビットが設定されていれば(344)、このビットパターンnumが、前記条件(5)による項の並べ換えを行なうための表現候補となる。次に、numは、addをnumに追加することにより、この表現を符号化し、前記条件(5)の方程式によって求められる2のベキ乗の変更を実行する(346)。これにより、ブルート・フォース方式よりも高速で記憶効率の高い処理が可能となり、例えば、表現の徹底的な探索が可能になり、0、+1、−1の各値をいずれも別々に保存できる。新規の表現が得られると、repcountが、repcount+1に設定される(348)。また、マスクは、左に1つシフトされる(350)。
【0093】
シフトは、既定の最大値maxmaskに達するまで実行される(370)。既定の最大値に達しなかった場合は、新規repcountに対してこのルーチンが繰り返され、numが新規表現に設定される(372)。達した場合(374)は、ルーチンを終了する。
【0094】
プログラムで各表現が符号化される場合、プログラムは、2のベキ多項式(例えば、式(4)を参照)の係数が非ゼロ(すなわち、+1が両方とも「1」ビットとして記憶され、0が「0」ビットとして記憶されている)であるか把握していればよい。多項式の2のベキ乗は、そのビット位置で符号化される。例えば、ビット0(右端)は、20に対応している。プログラムでは、+1間の区別はしないため、プログラムがどのようにして表現を把握しているのか疑問に思われるかもしれない。整数表現においてマスクが左へ走査することから、またさらに、表現が2n+2n−1から2n+1−2n−1へ変化することによって、多項式表現に限り2のベキ乗が効果的に左へ移動する(すなわち、この移動により、表現に使用されている2のベキ乗が増加するだけである)ことから、2のベキ乗が移動して+1の乗数を有する2のベキ乗と−1の乗数を有する2のベキ乗が合計される可能性はなくなる。したがって、乗数が非ゼロかどうかを把握しているだけでよい。これは、(上記のrepsの記憶された整数と対の)元の整数についての知識が、この表現を独自に判断するうえで充分なためである。
【0095】
すでに述べた通り、さらに、本発明は、FDCT(およびIDCT)が集合1、2、3に分割できたように、各項を互いに素な方程式集合にうまく分割できない変換にも適している。上記の通り、「互いに素な」とは、方程式の集合について本明細書に使用されている場合、2つの互いに素な方程式集合の方程式間に、共通する変換定数が全くないことを意味している。各定数にこれらの2のベキ乗の同時表現を使用すれば、任意にあるいは何らかの費用関数に基づき変換の方程式集合を選択することによって、またさらに、各集合の定数に対して独立したスケーリング項を選択し、変換定数表現に対して2のベキ乗によりグループ化することによって、一層の高速化を実現できる。そこでさらに、任意の方程式集合に対する係数の表現を求める基準を満たしたいと考える人もいるだろう。その場合、変換が互いに素な集合に分割された場合は、特に良い結果が得られる。これは、変換定数が複数の集合にグループ化されるためである。
【0096】
次に、別のグループ化を利用するFDCTによる例を示す。
【数20】
【0097】
これにより、集合6のスケーリング項が1つ求められ、この集合の3つの計算を実行するためのC1、C3、C4、C5、C7の同時表現が求められる。次に、集合8の別のスケーリング項と各方程式のC1、C3、C5、C7の同時表現が求められる。各表現は、集合6の計算で使用された表現と大きく異なることがある。
【0098】
図5に、高速な変換計算と実行時間の短縮を実現する修正動作により、さらに高速な変換を実現するフローチャート300を示している。ある変換の変換定数を用いた増分計算から求められた少なくとも1つの数を検査する(310)。次に、この検査に基づき、修正動作をいつ実行するかを判断する(320)。修正動作を実行する必要があると判断されると、すぐに修正動作が実行される(330)。
【0099】
各dDkによって、精度に関する少なくとも1つの追加ビットがDで実行される変換に追加されたときに、リファインメントに関する第1の例が発生する。第2の例は、変換ベクトルの少なくとも1つの要素、
【数21】
は以降Fハットと記載する。
【0100】
が極めて小さいとみなされたときに発生し、これによって、dDkの行全体が0と概算され、Fの少なくとも1つの要素の計算をスキップできる。
【0101】
第1の例では、Dkがすべて可逆である場合が多い。すなわち、行列Dk −1が存在するため、次の単位行列(左上から右下への対角線上の要素が1、他のすべての要素が0である正方行列)の式が成り立つ。
DkDk −1=Dk −1Dk=I
【0102】
この場合、次のように表すことができる。
【数22】
【0103】
(ここで、Iは単位行列である)。すなわち、変換係数への変換のステップをもう一つ実行することにより、精度に関する追加ステップが実行できる。精度を追加するためのこの追加ステップ変換の利用が、本発明によるリファインメントの第1実施例である。これは、IDCTと後続のDCTの両方を実行する手間を省くためであり、
【数23】
の行列は、行列Rm+1として予め計算することができ、したがって、
【数24】
が成り立つ。これは、Fmに関するシングルステップ変換である。
【0104】
リファインメントの第2の例は、別のアプローチが必要である。次の具体例について検討してみよう。1次元FD1において、2次元変換がすでに高精度で実行された状態のときに、dD0の8番目の行が0であり、dD1=D−dD0が成り立つ。したがって、dD0は可逆ではない。すなわち、dD0FD1からFD1の元の8列を復元することはできない(dD0FD1からFD1を求める計算は、7つの8元方程式と考えられることから、これは明らかである)。しかし、FD1の8列のいずれかに対して値を想定した場合、dD0FD1から他の7列を推定することができ、その値は第8列の想定値に左右される。第8列に0と概算できるような小さい要素が含まれているものが、妥当な想定と言える。これは、番号の高い変換値の方が、番号の低い変換値に比べて、実像での重要性が低くなる傾向があるためである。次に、dD0を8×7の行列(0の行を無視する)として、疑似逆行列
【数25】
(文献にて周知である)が次式によって求められる。
【数26】
【0105】
ここでは、想定された第8番目の係数に対して、0から成る第8行が挿入されている。これにより、dに対して8×8の近似が得られる。
【数27】
【0106】
したがって、次のように概算できる。
【数28】
【0107】
この近似リファインメントは、リファインメントの発明の第2実施例であり、ここでは、第1実施例と同様に、DCTが後に続くIDCTのサイクルを省略できる。
【0108】
アボート手順は、サイクルを省略するために、計算を完了前にいつ終了できるか、また、計算結果が0に量子化されるほど過度に小さくなるのはいつと推定されるか判断するのに用いられる。アボート手順の利用例は、上記の例に示されている。この例では、少なくとも1つの低い変換係数が計算されず、これは、変換行列の対応する1行または複数行を0に設定することにほぼ等しい。別の例では、限定された精度の計算を中止する。これは、追加的変換精度によって変換値にごくわずかな追加的情報しか提供されないと推定される場合、例えば、計算結果が小さいと推定される場合に実行される。代替方法では、変換への入力の一部の和および/または差の大きさが検査される。例えば、FDCTの場合、次の方程式により、第2の変換係数が求められる。
【数29】
【0109】
ここで、d0734=S07−S34およびd1625=S16−S25とする。この表記は、ペンベーカーとミッチェルのJPEG文献による。これらの値の大きさを検査して、変換係数のその後の処理への影響を見ることができる。この例では、S(2)がQ/2の大きさよりも小さいとき(Qは、S(2)の量子化値とする)、S(2)は0に量子化される。これにより、d073の大きさがQ/(2C2)よりも小さいかどうか、さらに、d162の大きさがQ/(2C6)よりも小さいかどうか検査が行なわれる。この検査に合格すれば、S(2)の計算をアボートすることができ、S(2)が0の量子化された値に設定される。この入力値の和および/または差を検査する方法は、FDCTの全方程式に拡大して適用できる。
【0110】
ただし、
【数30】
(ベクトルまたは行列Fハットの各要素の項ごとの範囲チェック)のような比較(ここで、
【数31】
の各要素はいずれも非負とする)をF(−T<F<T)の各要素の項ごとの比較へどのようにして変えるのかは明らかでない(ここで、Tの各要素はいずれも非負であるとし、Fの検査を合格するには、Fハットの検査を合格すればよいものとする)。この問題は、DCTが正と負の演算の両方を行なうことから起きるものであり、これにより、方程式中の項ごとの順序付けが壊れるためである。具体的には、
【数32】
が、
【数33】
を意味しているとは言えない。
【0111】
したがって、このアボートでは、追加的変換精度によって、後続の処理演算(例えば、量子化または比較)の結果に容認可能または無視できるほどの小さい影響しか与えないと推定された時点で、演算の精度も打ち切られる。例えば、DCTの係数は、整数によってスケーリング可能であり、2のベキ乗の和として近似値が求められる。奇項の場合、近似値の1つは、次のようになる。
【数34】
【0112】
これは、(上記の表記を使用して)次のように書くことができる。
【数35】
【0113】
さらに、すでに述べた通り、上記行列の全部およびその一連の和が可逆である。そこで、
【数36】
【0114】
すなわち、Fハットの第j番目の要素の大きさが非常に小さければ、j(32dD0F)は小さくなるはずである。そうでない場合、j((8dD1+2dD2+dD3)Fは、これを取り消して最終結果を小さくすることができない。ただし、各計算結果の相対的な大きさをチェックすることは可能である。中間精度のいずれかに対する変換値の一つが、他の値に比べて小さいとき、あるいは、何らかの既定のしきい値に比べて小さいときは、変換値のその後のリファインメントをアボートできる。
【0115】
図6に、変換係数計算プロセスの以降の繰り返しをアボートする処理を示す、本発明によるアボート方法のフローチャート400が示されている。図6では、増分計算された少なくとも1つの数が検査される(410)。一定の基準が満たされると、以降の計算がアボートされる(420)。変換係数の増分計算のアボートは、増分計算の終了によって生じる誤差が容認可能なときに行なわれる。例えば、増分計算の終了は、増分計算が、既定の範囲内になると推定される数(例えば、精度要件を満たす変換係数)になると判断された場合に行なわれる。代わりに、変換係数が0の既定範囲内に収まる場合に、変換係数の増分計算をアボートしてもよい。
【0116】
図7に、増分計算された少なくとも1つの数を検査するフローチャート500が示されている。図7では、増分計算の検査により、変換係数へのリファインメントが結果に変化を与えなくなるのはいつか判断する(510)。この検査は、図7に示されている少なくとも2種類の方法によって実行できる。増分計算結果の相対的大きさをチェックした後、変換係数の少なくとも1つの中間計算結果が、別の変換係数の中間計算結果に比べて小さいときに、変換係数へのリファインメントは結果に変化を与えないと判断される(520)。または、少なくとも1つの増分計算結果の大きさをチェックした後、変換係数の少なくとも1つの中間計算結果が既定のしきい値よりも小さいときに、変換係数へのリファインメントは結果に変化を与えないと判断される(530)。
【0117】
図8に、本発明によるリファインメント方法のフローチャート600が示されている。まず初めに、変換にさらに高い精度が必要かどうか判断する(610)。この変換は変換行列であり、リファインメント行列により変換係数の増分計算の精度を高める。さらに精度が必要な場合は、リファインメント行列を変換に適用する(620)。このリファインメント行列は、オフライン時または初期化時に生成され、近似計算された変換定数に基づくものである。
【0118】
図9に、リファインメント行列を生成する第1の方法に関するフローチャートが示されている。まず初めに、近似変換が可逆であることを認識する(710)。
【数37】
により求められるリファインメント行列が生成される(720)。次に、効率的な計算を行なうために、変換を構造化する(730)。
【0119】
しかし、すでに述べた通り、dD0が可逆でない場合、dD0FD1からFD1の元の8列を復元することはできない。図10は、dD0が可逆でない場合に、リファインメント行列を生成する第2の方法を示すフローチャート800である。まず初めに、変換を生成するための変換行列の第n列の復元が不可能であることを認識する(810)。変換行列の一部の疑似逆行列を計算する(820)。次に、変換行列の疑似逆行列を使用して、リファインメント行列の近似を生成する(830)。リファインメント行列の近似は、
【数38】
により成り立つ。
【0120】
図11に、本発明によるプリンタ410のブロック図400が示されている。図11では、プリンタ410が、ホストプロセッサ410から画像データ412を受信する。画像データ412は、メモリ430に提供され、画像データが8×8ブロック・サンプルに配列される。次に、8×8ブロック・サンプルは、ラスタイメージプロセッサなどのプロセッサ440によって処理される。ラスタイメージプロセッサ440は、画像データを表す圧縮済みプリントストリームをプリントヘッド駆動回路450に送る。次に、プリントヘッド駆動回路450は、プリントヘッド460を制御して、画像データのプリントアウト470を行なう。
【0121】
図1−4により示されるプロセスは、コンピュータ可読の媒体または搬送手段490により実際に具体化できる。例えば、図11に示すような固定式および/または着脱式データ記憶装置または他のデータ記憶装置やデータ通信装置のうち1つまたは複数の装置などである。コンピュータ・プログラムは、メモリ492にロードされ、図11のプロセッサ440を構成し実行される。コンピュータ・プログラムは、複数の命令を有し、この命令が図11のプロセッサ440によって読み込まれて実行されると、プロセッサ440に本発明のステップまたは要素を実行するうえで必要なステップを実行させる。
【0122】
図12に、本発明によるデータ分析システム500が示されている。図12において、変換器510は、分析対象となる1データ・ブロック512を受信する。変換器510は、変換方程式520を用いて変換データ524を生成する。変換方程式520は、少なくとも2つの変換定数を有する少なくとも1つのサブ変換に分割される。各集合の少なくとも2つの変換定数が、スケーリング項により単独でスケーリングされることによって、少なくとも1つの集合内の少なくとも2つの変換定数間の比率がほぼ均一に維持される。ただし、スケーリング項は、既定の費用関数に基づき選択される。次に、変換データ524は、量子化器530によって任意に量子化される。量子化器530の量子化値は、各係数ごとに使用されるスケーリング項を反映するように調整される。
【0123】
図13に、本発明による別のデータ分析システム600を示している。図13では、変換器610が、分析対象の1データ・ブロック612を受信する。変換器610は、変換方程式620を用いて変換データ624を生成する。変換方程式620は、少なくとも2つの変換定数を有する少なくとも1つのサブ変換に分割される。各集合の少なくとも2つの変換定数が、スケーリング項により単独でスケーリングされることによって、少なくとも1つの集合内の少なくとも2つの変換定数間の比率がほぼ均一に維持される。ただし、スケーリング項は、既定の費用関数に基づき選択される。次に、変換データ624は、比較器630のスケーリングされた比較値と比較される。
【0124】
本発明の代表的態様の以上の説明は例示および説明のために提示したものである。以上の説明は、本発明を余すところなく説明しようとするものでも、または本発明を開示の形態に限定しようとするものでもない。以上に述べた技術に照らして、多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によって限定されるのではなく、本書に添付した請求項によって限定されるものである。
【0125】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0126】
(1)データを高速変換する方法であって、
変換方程式を変換器が記憶装置から読み出す段階と、
前記変換器が前記変換方程式を、少なくとも2つの変換定数を有する少なくとも1つの集合にまとめる段階と、
さらに前記変換器が前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングする段階と
を含むデータを高速変換する方法。
(2)前記スケーリング項が、前記少なくとも1つの集合からの前記変換定数のいずれかである、上記(1)に記載の方法。
(3)前記変換定数の各々が、2のベキ乗の和によって近似値が求められた推定変換定数によって表されている、上記(1)に記載の方法。
(4)データを少なくとも1つのブロックに分離し、適用された方程式により前記ブロックを変換データに変換することにより、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持する段階をさらに含む、上記(1)に記載の方法。
(5)前記スケーリング項が既定の費用関数に基づき選択される、上記(1)および(4)のいずれかに記載の方法。
(6)前記既定の費用関数を、任意の変換係数に関する最大誤差が既定の誤差率よりも大きくならないように前記スケーリング項を選択することによって判断する段階をさらに含む、上記(5)に記載の方法。
(7)前記既定の費用関数を、既定の変換定数の誤差が既定の誤差率以下となるように前記スケーリング項を選択することによって判断する段階をさらに含む、上記(5)に記載の方法。
(8)ある集合の全変換定数が既定の特性を備えた同時2進表現を有するように前記変換定数の前記スケーリング項および表現を選択することによって、前記既定の費用関数を判断する段階をさらに含む、上記(5)に記載の方法。
(9)ある集合の全変換定数が最少の共通する2のベキ項を備えた同時2進表現を有するような前記変換定数の前記スケーリング項および表現の選択が、2進算術シフトの方が乗法演算よりも効率的である場合に実行される、上記(8)に記載の方法。
(10)前記スケーリングされた定数の全表現が、
a)第1変数を前記ブロックの第i番目の要素に設定する段階と、
b)第2変数を2の値に初期化する段階と、
c)ビットマスクを2進数の3に初期化する段階と、
d)前記ビットを分析することにより、前記第1変数によって示される前記第i番目の要素が、2n+2n−1=2n+1−2n−1を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
e)前記第2変数を前記第1変数に追加して、2n+2n−1=2n+1−2n−1
によって求められる2のベキ乗の効果的変更を行なうことにより、第i番目の要素を符号化する段階と、
f)新規表現を求めるとともに、前記第1変数を第i+1番目の要素に設定する段階と、
g)前記ビットマスクと前記第2変数を左に1ビットシフトさせる段階と、
h)段階d−gを繰り返す段階と
により求められる、上記(9)に記載の方法。
(11)前記マスクビットと一致する前記第1変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が0となり、2n+2n−1=2n+1−2n−1の並べ換えに用いられる2のベキ乗を増加させる段階をさらに含む、上記(10)に記載の方法。
(12)前記既定の特性が非ゼロの2のベキ項の最大化クラスタリングを含む、上記(9)に記載の方法。
(13)ある集合の全変換定数が非ゼロの2のベキ項の最大化クラスタリングを備えた同時2進表現を有するような前記スケーリング項の選択が、小さい整数を用いた乗法演算の方が大きい数を用いた乗算よりも好ましい場合に実行される、上記(12)に記載の方法。
(14)前記定数を表す2のベキ多項式の前記係数が非ゼロか追跡する、上記(13)に記載の方法。
(15)前記ビット位置の値によって前記2のベキ項が決まる、上記(14)に記載の方法。
(16)前記非ゼロの2のベキ項のクラスタリングの最大化が、
a)第1変数を前記ブロックの第i番目の要素に設定する段階と、
b)第2変数を2の値に初期化する段階と、
c)ビットマスクを2進数の3に初期化する段階と、
d)前記ビットを分析することにより、前記第1変数によって示される前記第i番目の要素が、2n+2n−1=2n+1−2n−1を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
e)前記第2変数を前記第1変数に追加して、2n+2n−1=2n+1−2n−1によって求められる2のベキ乗の効果的変更を行なうことにより、第i番目の要素を符号化する段階と、
f)新規表現を求めるとともに、前記第1変数を第i+1番目の要素に設定する段階と、
g)前記ビットマスクと前記第2変数を左に1ビットシフトさせる段階と、
h)段階d−gを繰り返す段階と
により前記スケーリングされた定数の全表現を求める段階を含む、上記(13)に記載の方法。
(17)前記マスクビットと一致する前記第1変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が0となり、2n+2n−1=2n+1−2n−1の並べ換えに用いられる2のベキ乗が増加する段階をさらに含む、上記(16)に記載の方法。
(18)前記各集合は、部分演算の変換方程式による互いに素な集合である、上記(1)に記載の方法。
(19)前記各集合は、部分演算の変換方程式による互いに素な集合ではない、上記(1)に記載の方法。
(20)前記少なくとも1つの集合の各々の前記変換定数に対して独立したスケーリング項を選択する段階をさらに含む、上記(19)に記載の方法。
(21)変換中に変換係数の増分計算により求められた少なくとも1つの数を検査する段階と、
検査に基づく修正動作を行なうべきか否かを判断する段階と、
修正動作が必要と判断された場合にその修正動作を実行する段階と
をさらに含む、上記(1)に記載の方法。
(22)前記修正動作の実行を判断する段階において、前記変換係数の前記増分計算が容認できない精度の変換係数となるか否かを検出し、前記修正動作の実行において、前記少なくとも1つの数をリファインメントする、上記(21)に記載の方法。
(23)前記変換は変換行列を含み、前記リファインメントにおいて、前記変換定数の前記増分計算の精度を高めるために、リファインメント行列を使用する、上記(22)に記載の方法。
(24)前記リファインメント行列は、
【数39】
【0127】
を含む、上記(23)に記載の方法。
(25)概算された変換定数に基づく少なくとも1つのリファインメント行列を生成する段階をさらに含む、上記(21)に記載の方法。
(26)前記少なくとも1つのリファインメント行列の生成は、オフラインまたは初期化時に実行される、上記(25)に記載の方法。
(27)前記少なくとも1つのリファインメント行列を生成する段階において、近似変換が可逆であることを認識し、
【数40】
【0128】
によって求められるリファインメント行列を生成し、効率的な計算を行なうために前記変換を構造化する、上記(25)に記載の方法。
(28)前記少なくとも1つのリファインメント行列を生成する段階は、
前記変換を生成する変換行列の第n列の復元が不可能であることを認識する段階と、
前記変換行列の一部に対する疑似逆行列を計算する段階と、
前記変換行列の前記疑似逆行列を使用して前記少なくとも1つのリファインメント行列の近似を生成する段階と
を含む、上記(25)に記載の方法。
(29)前記リファインメント行列の前記近似は、
【数41】
【0129】
を含む、上記(28)に記載の方法。
(30)前記修正動作の実行を判断する段階において、さらに、前記増分計算の終了に伴う誤差が容認できないものか否かを判断し、前記修正動作の実行において、変換係数の前記増分計算をアボートする、上記(21)に記載の方法。
(31)前記増分計算は、前記増分計算により既定の範囲内の数が得られると判断された時点で終了する、上記(30)に記載の方法。
(32)前記既定の範囲内になることが予想される数は、精度要件を満たす変換係数を有している、上記(31)に記載の方法。
(33)前記増分計算は、前記変換係数へのリファインメントが結果に変化を与えないと判断された時点で終了する、上記(31)に記載の方法。
(34)前記増分計算結果の相対的大きさをチェックした後、少なくとも1つの変換係数の中間計算結果が別の変換係数の中間計算結果よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、上記(33)に記載の方法。
(35)少なくとも1つの増分計算結果の大きさをチェックした後、前記変換係数の少なくとも1つの中間計算結果が既定のしきい値よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、上記(33)に記載の方法。
(36)前記判断において、さらに、変換係数が、0の既定範囲内になると判断し、前記修正動作の実行において、前記変換係数の前記増分計算をアボートする、上記(21)に記載の方法。
【図面の簡単な説明】
以下の添付図面において、全体を通じて、同類の参照番号は同等部分を示している。
【図1】
代表的な画像圧縮システムを示す図である。
【図2】
JPEGエンコーダのブロック図を示す図である。
【図3】
本発明のフローチャートを示す図である。
【図4】
第1の基準C1または第2の基準C2に対する同時表現を求める方法を示すフローチャートである。
【図5】
修正動作により高速変換を行なうことによって、高速変換演算と実行時間の短縮を実現するフローチャートである。
【図6】
変換係数計算処理の以降の繰り返しのアボートを示す本発明によるアボート方法を示すフローチャートである。
【図7】
少なくとも1つの増分計算された数の検査を示す図である。
【図8】
本発明によるリファインメント方法を示すフローチャートである。
【図9】
リファインメント行列を作成する第1の方法を示すフローチャートである。
【図10】
dD0が可逆でない場合に、リファインメント行列を作成する第2の方法を示すフローチャートである。
【図11】
本発明によるプリンタを示す図である。
【図12】
本発明によるデータ分析システムを示す図である。
【図13】
本発明による別のデータ分析システムを示す図である。
【符号の説明】
110 デジタル画像
112 8×8画素ブロック
120 変換器
130 量子化器
140 (オプション)エントロピー・エンコーダ
150 出力データストリーム
410 ホストプロセッサ
430 メモリ
440 プロセッサ
450 プリントヘッド駆動回路
460 プリントヘッド
492 メモリ
510 変換器
520 変換方程式
530 (オプション)量子化器
610 変換器
620 変換方程式
630 (オプション)比較器
Claims (36)
- 変換方程式を、少なくとも2つの変換定数を有する少なくとも1つの集合にまとめる段階と、
前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持するために、各集合の前記少なくとも2つの変換定数をスケーリング項によって単独でスケーリングする段階と
を含む方法。 - 前記スケーリング項が、前記少なくとも1つの集合からの前記変換定数のいずれかである、請求項1に記載の方法。
- 前記変換定数の各々が、2のベキ乗の和によって近似値が求められた推定変換定数によって表されている、請求項1に記載の方法。
- データを少なくとも1つのブロックに分離し、適用された方程式により前記ブロックを変換データに変換することにより、前記少なくとも1つの集合内の前記少なくとも2つの変換定数間の比率をほぼ均一に維持する段階をさらに含む、請求項1に記載の方法。
- 前記スケーリング項が既定の費用関数に基づき選択される、請求項1および4のいずれかに記載の方法。
- 前記既定の費用関数を、任意の変換係数に関する最大誤差が既定の誤差率よりも大きくならないように前記スケーリング項を選択することによって判断する段階をさらに含む、請求項5に記載の方法。
- 前記既定の費用関数を、既定の変換定数の誤差が既定の誤差率以下となるように前記スケーリング項を選択することによって判断する段階をさらに含む、請求項5に記載の方法。
- ある集合の全変換定数が既定の特性を備えた同時2進表現を有するように前記変換定数の前記スケーリング項および表現を選択することによって、前記既定の費用関数を判断する段階をさらに含む、請求項5に記載の方法。
- ある集合の全変換定数が最少の共通する2のベキ項を備えた同時2進表現を有するような前記変換定数の前記スケーリング項および表現の選択が、2進算術シフトの方が乗法演算よりも効率的である場合に実行される、請求項8に記載の方法。
- 前記スケーリングされた定数の全表現が、
a)第1変数を前記ブロックの第i番目の要素に設定する段階と、
b)第2変数を2の値に初期化する段階と、
c)ビットマスクを2進数の3に初期化する段階と、
d)前記ビットを分析することにより、前記第1変数によって示される前記第i番目の要素が、2n+2n−1=2n+1−2n−1を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
e)前記第2変数を前記第1変数に追加して、2n+2n−1=2n+1−2n−1によって求められる2のベキ乗の効果的変更を行なうことにより、第i番目の要素を符号化する段階と、
f)新規表現を求めるとともに、前記第1変数を第i+1番目の要素に設定する段階と、
g)前記ビットマスクと前記第2変数を左に1ビットシフトさせる段階と、
h)段階d−gを繰り返す段階と
により求められる、請求項9に記載の方法。 - 前記マスクビットと一致する前記第1変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が0となり、2n+2n−1=2n+1−2n−1の並べ換えに用いられる2のベキ乗を増加させる段階をさらに含む、請求項10に記載の方法。
- 前記既定の特性が非ゼロの2のベキ項の最大化クラスタリングを含む、請求項9に記載の方法。
- ある集合の全変換定数が非ゼロの2のベキ項の最大化クラスタリングを備えた同時2進表現を有するような前記スケーリング項の選択が、小さい整数を用いた乗法演算の方が大きい数を用いた乗算よりも好ましい場合に実行される、請求項12に記載の方法。
- 前記定数を表す2のベキ多項式の前記係数が非ゼロか追跡する、請求項13に記載の方法。
- 前記ビット位置の値によって前記2のベキ項が決まる、請求項14に記載の方法。
- 前記非ゼロの2のベキ項のクラスタリングの最大化が、
a)第1変数を前記ブロックの第i番目の要素に設定する段階と、
b)第2変数を2の値に初期化する段階と、
c)ビットマスクを2進数の3に初期化する段階と、
d)前記ビットを分析することにより、前記第1変数によって示される前記第i番目の要素が、2n+2n−1=2n+1−2n−1を用いて前記項の並び換えを行なう表現候補であるか判断する段階と、
e)前記第2変数を前記第1変数に追加して、2n+2n−1=2n+1−2n−1によって求められる2のベキ乗の効果的変更を行なうことにより、第i番目の要素を符号化する段階と、
f)新規表現を求めるとともに、前記第1変数を第i+1番目の要素に設定する段階と、
g)前記ビットマスクと前記第2変数を左に1ビットシフトさせる段階と、
h)段階d−gを繰り返す段階と
により前記スケーリングされた定数の全表現を求める段階を含む、請求項13に記載の方法。 - 前記マスクビットと一致する前記第1変数が設定されているかチェックした後にビットマスクを左にシフトし、これにより右側が0となり、2n+2n−1=2n+1−2n−1の並べ換えに用いられる2のベキ乗が増加する段階をさらに含む、請求項16に記載の方法。
- 前記各集合は、部分演算の変換方程式による互いに素な集合である、請求項1に記載の方法。
- 前記各集合は、部分演算の変換方程式による互いに素な集合ではない、請求項1に記載の方法。
- 前記少なくとも1つの集合の各々の前記変換定数に対して独立したスケーリング項を選択する段階をさらに含む、請求項19に記載の方法。
- 変換中に変換係数の増分計算により求められた少なくとも1つの数を検査する段階と、
検査に基づく修正動作を行なうべきか否かを判断する段階と、
修正動作が必要と判断された場合にその修正動作を実行する段階と
をさらに含む、請求項1に記載の方法。 - 前記修正動作の実行を判断する段階において、前記変換係数の前記増分計算が容認できない精度の変換係数となるか否かを検出し、前記修正動作の実行において、前記少なくとも1つの数をリファインメントする、請求項21に記載の方法。
- 前記変換は変換行列を含み、前記リファインメントにおいて、前記変換定数の前記増分計算の精度を高めるために、リファインメント行列を使用する、請求項22に記載の方法。
- 概算された変換定数に基づく少なくとも1つのリファインメント行列を生成する段階をさらに含む、請求項21に記載の方法。
- 前記少なくとも1つのリファインメント行列の生成は、オフラインまたは初期化時に実行される、請求項25に記載の方法。
- 前記少なくとも1つのリファインメント行列を生成する段階は、
前記変換を生成する変換行列の第n列の復元が不可能であることを認識する段階と、
前記変換行列の一部に対する疑似逆行列を計算する段階と、
前記変換行列の前記疑似逆行列を使用して前記少なくとも1つのリファインメント行列の近似を生成する段階と
を含む、請求項25に記載の方法。 - 前記修正動作の実行を判断する段階において、さらに、前記増分計算の終了に伴う誤差が容認できないものか否かを判断し、前記修正動作の実行において、変換係数の前記増分計算をアボートする、請求項21に記載の方法。
- 前記増分計算は、前記増分計算により既定の範囲内の数が得られると判断された時点で終了する、請求項30に記載の方法。
- 前記既定の範囲内になることが予想される数は、精度要件を満たす変換係数を有している、請求項31に記載の方法。
- 前記増分計算は、前記変換係数へのリファインメントが結果に変化を与えないと判断された時点で終了する、請求項31に記載の方法。
- 前記増分計算結果の相対的大きさをチェックした後、少なくとも1つの変換係数の中間計算結果が別の変換係数の中間計算結果よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、請求項33に記載の方法。
- 少なくとも1つの増分計算結果の大きさをチェックした後、前記変換係数の少なくとも1つの中間計算結果が既定のしきい値よりも小さいときに、前記変換係数へのリファインメントが結果に変化を与えないものと判断される、請求項33に記載の方法。
- 前記判断において、さらに、変換係数が、0の既定範囲内になると判断し、前記修正動作の実行において、前記変換係数の前記増分計算をアボートする、請求項21に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/694,452 US7007054B1 (en) | 2000-10-23 | 2000-10-23 | Faster discrete cosine transforms using scaled terms |
US09/694,448 US6766341B1 (en) | 2000-10-23 | 2000-10-23 | Faster transforms using scaled terms |
US09/694,455 US6961473B1 (en) | 2000-10-23 | 2000-10-23 | Faster transforms using early aborts and precision refinements |
PCT/US2001/027778 WO2002035380A1 (en) | 2000-10-23 | 2001-10-23 | Faster transforms using scaled terms, early aborts, and precision refinements |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004523815A true JP2004523815A (ja) | 2004-08-05 |
Family
ID=27418597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002538296A Pending JP2004523815A (ja) | 2000-10-23 | 2001-10-23 | スケーリング項、アーリー・アボート、および精度リファインメントを用いた高速変換 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1352336A4 (ja) |
JP (1) | JP2004523815A (ja) |
KR (1) | KR100545445B1 (ja) |
CN (1) | CN100429644C (ja) |
WO (1) | WO2002035380A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012516625A (ja) * | 2009-01-27 | 2012-07-19 | トムソン ライセンシング | ビデオ符号化およびビデオ復号における変換の選択のための方法および装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2407886B (en) * | 2003-11-10 | 2007-04-25 | Metropolis Data Consultants Lt | Digital signal processing with improved mapping |
US9110849B2 (en) | 2009-04-15 | 2015-08-18 | Qualcomm Incorporated | Computing even-sized discrete cosine transforms |
US9069713B2 (en) | 2009-06-05 | 2015-06-30 | Qualcomm Incorporated | 4X4 transform for media coding |
US8762441B2 (en) | 2009-06-05 | 2014-06-24 | Qualcomm Incorporated | 4X4 transform for media coding |
US9118898B2 (en) | 2009-06-24 | 2015-08-25 | Qualcomm Incorporated | 8-point transform for media data coding |
US9081733B2 (en) * | 2009-06-24 | 2015-07-14 | Qualcomm Incorporated | 16-point transform for media data coding |
US8451904B2 (en) | 2009-06-24 | 2013-05-28 | Qualcomm Incorporated | 8-point transform for media data coding |
US9075757B2 (en) | 2009-06-24 | 2015-07-07 | Qualcomm Incorporated | 16-point transform for media data coding |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1207346B (it) * | 1987-01-20 | 1989-05-17 | Cselt Centro Studi Lab Telecom | Sformata coseno discreta a coeffi circuito per il calcolo della tra cienti quantizzati di campioni di segnale numerico |
US5394349A (en) * | 1992-07-10 | 1995-02-28 | Xing Technology Corporation | Fast inverse discrete transform using subwords for decompression of information |
JP3185413B2 (ja) * | 1992-11-25 | 2001-07-09 | ソニー株式会社 | 直交変換演算並びに逆直交変換演算方法及びその装置、ディジタル信号符号化及び/又は復号化装置 |
CA2171335A1 (en) * | 1993-11-30 | 1995-06-08 | Munib A. Wober | Coding methods and apparatus for scaling and filtering images using discrete cosine transforms |
US5649077A (en) * | 1994-03-30 | 1997-07-15 | Institute Of Microelectronics, National University Of Singapore | Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation |
US5854757A (en) * | 1996-05-07 | 1998-12-29 | Lsi Logic Corporation | Super-compact hardware architecture for IDCT computation |
WO2000055757A1 (en) * | 1999-03-17 | 2000-09-21 | The Johns Hopkins University | A fast multiplierless transform |
-
2001
- 2001-10-23 EP EP01981308A patent/EP1352336A4/en not_active Withdrawn
- 2001-10-23 CN CNB018177980A patent/CN100429644C/zh not_active Expired - Fee Related
- 2001-10-23 JP JP2002538296A patent/JP2004523815A/ja active Pending
- 2001-10-23 KR KR1020037005430A patent/KR100545445B1/ko not_active IP Right Cessation
- 2001-10-23 WO PCT/US2001/027778 patent/WO2002035380A1/en active IP Right Grant
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012516625A (ja) * | 2009-01-27 | 2012-07-19 | トムソン ライセンシング | ビデオ符号化およびビデオ復号における変換の選択のための方法および装置 |
US9049443B2 (en) | 2009-01-27 | 2015-06-02 | Thomson Licensing | Methods and apparatus for transform selection in video encoding and decoding |
US9161031B2 (en) | 2009-01-27 | 2015-10-13 | Thomson Licensing | Method and apparatus for transform selection in video encoding and decoding |
JP2016076971A (ja) * | 2009-01-27 | 2016-05-12 | トムソン ライセンシングThomson Licensing | ビデオ符号化およびビデオ復号における変換の選択のための方法および装置 |
US9774864B2 (en) | 2009-01-27 | 2017-09-26 | Thomson Licensing Dtv | Methods and apparatus for transform selection in video encoding and decoding |
JP2018186556A (ja) * | 2009-01-27 | 2018-11-22 | トムソン ライセンシングThomson Licensing | ビデオ符号化およびビデオ復号における変換の選択のための方法および装置 |
US10178411B2 (en) | 2009-01-27 | 2019-01-08 | Interdigital Vc Holding, Inc. | Methods and apparatus for transform selection in video encoding and decoding |
Also Published As
Publication number | Publication date |
---|---|
KR20030072338A (ko) | 2003-09-13 |
CN100429644C (zh) | 2008-10-29 |
CN1471674A (zh) | 2004-01-28 |
KR100545445B1 (ko) | 2006-01-24 |
EP1352336A1 (en) | 2003-10-15 |
EP1352336A4 (en) | 2006-09-06 |
WO2002035380A1 (en) | 2002-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5507077B2 (ja) | バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法 | |
JP4248754B2 (ja) | データ処理方法及び装置 | |
EP1359546A1 (en) | 2-D transforms for image and video coding | |
US6870885B2 (en) | Apparatus and method for decoding and computing a discrete cosine transform using a butterfly processor | |
JP2004523815A (ja) | スケーリング項、アーリー・アボート、および精度リファインメントを用いた高速変換 | |
US8417045B2 (en) | Mechanism for processing order-16 discrete cosine transforms | |
US6996595B2 (en) | Apparatus and method for consolidating output data from a plurality of processors | |
US6766341B1 (en) | Faster transforms using scaled terms | |
US7007054B1 (en) | Faster discrete cosine transforms using scaled terms | |
CN1258169A (zh) | 流水线离散余弦变换设备 | |
US7526136B2 (en) | Faster transforms using early aborts and precision refinements | |
US7558815B2 (en) | Processing of performance sensitive transforms | |
US7421139B2 (en) | Reducing errors in performance sensitive transformations | |
Alarcon-Aquino et al. | Lossy image compression using discrete wavelet transform and thresholding techniques | |
US7489826B2 (en) | Compensating for errors in performance sensitive transformations | |
US7430332B2 (en) | Approximations used in performance sensitive transformations which contain sub-transforms | |
Wiewel | FPGA implementation of an energy-efficient real-time image compression algorithm for the EIVE satellite mission | |
CN112637606A (zh) | 二维dct/idct装置和方法以及jpeg编解码装置和方法 | |
JPH04220082A (ja) | 画像データ復元方法及び装置 | |
Hsiao et al. | A hybrid W-transform-based coding and its VLSI realization for image compression | |
JPH07107296A (ja) | 画像信号符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061024 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070122 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070424 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070424 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20070424 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070425 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070702 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070927 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070927 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071102 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20071214 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20090108 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20090115 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20090126 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090212 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20090728 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20090730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090728 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101220 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20110215 |