JP2009512075A - 信号およびデータ処理のための効率的な無乗算計算 - Google Patents

信号およびデータ処理のための効率的な無乗算計算 Download PDF

Info

Publication number
JP2009512075A
JP2009512075A JP2008535732A JP2008535732A JP2009512075A JP 2009512075 A JP2009512075 A JP 2009512075A JP 2008535732 A JP2008535732 A JP 2008535732A JP 2008535732 A JP2008535732 A JP 2008535732A JP 2009512075 A JP2009512075 A JP 2009512075A
Authority
JP
Japan
Prior art keywords
sequence
value
values
input
multiplication
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.)
Granted
Application number
JP2008535732A
Other languages
English (en)
Other versions
JP5113067B2 (ja
Inventor
レズニク、ユリー
チュン、ヒュクジュネ
ガルダドリ、ハリナス
スリニバサマーシ、ナビーン・ディー.
サゲトング、フォーム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009512075A publication Critical patent/JP2009512075A/ja
Application granted granted Critical
Publication of JP5113067B2 publication Critical patent/JP5113067B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0225Measures concerning the multipliers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

信号およびデータ処理に対する計算を効率的に実行するための技法が開示される。乗算のない処理については、中間値の数列が、処理されるデータに対する入力値に基づいて生成される。数列内の少なくとも1つの中間値は、この数列内の少なくとも1つの他の中間値に基づいて生成される。数列内の1つの中間値は、入力値と定数値とを乗算するための出力値として提供される。定数値は、整数定数、有理定数または無理定数であってもよい。無理定数は、整数の分子と2の累乗である分母とを有する2進分数定数で近似される。乗算のない処理は、種々の変換(例えば、DCTおよびIDCT)、フィルタ処理並びに、他の種類の信号およびデータ処理に対して用いられてもよい。

Description

本開示は、一般に、処理に関し、より詳細には、信号およびデータ処理における計算を効率的に実行する技法に関する。
信号およびデータ処理は、各種アプリケーションにおける様々な種類のデータに対して広く実行されている。重要な種類の処理の1つは、異なるドメイン間のデータ変換である。例えば、空間ドメインから周波数ドメインにデータ変換するために、離散コサイン変換(DCT)が一般に用いられ、周波数ドメインから空間ドメインへデータを変換するために、逆離散コサイン変換(IDCT)が一般に用いられている。DCTは画像/ビデオ圧縮に広く用いられて、画像またはビデオフレーム内の画素ブロックを空間的に無相関化する。結果としての変換係数は一般に、相互依存性が小さく、この結果、これらの係数が量子化および符号化により適するようになる。DCTはまた、画素ブロックのエネルギーの大部分をわずかな数の係数(一般に、低位の)にマップする能力であるエネルギー圧縮特性を示す。このエネルギー圧縮特性によって、符号化アルゴリズムの設計を容易にすることができる。
DCTおよびIDCTなどの変換、並びに他の種類の信号およびデータ処理は、大量のデータに関して実行されることがある。したがって、信号およびデータ処理の計算を可能な限り効率的に実行するのが望ましい。さらに、コストおよび複雑性を低減するために、簡単なハードウェアを用いて計算を実行することが望ましい。
したがって、当分野では、信号およびデータ処理の計算を効率よく実行する技法が必要である。
(米国特許法第119条に基づく優先権主張)
本願は、ともに発明の名称が「DCT(離散コサイン変換)/IDCT(逆離散コサイン変換)の効率的な無乗算実行("Efficient Multiplication-Free Implementation of DCT (Discrete Cosine Transform)/IDCT (Inverse Discrete Cosine Transform)")で、本願の譲受人に譲渡された、2005年10月12日付出願の米国特許仮出願第60/726,307号明細書および2005年10月13日付出願の米国特許仮出願第60/726,702号明細書の優先権を主張するものであり、これら出願の内容は参照により本明細書に組み込まれる。
発明の概要
本明細書では、信号およびデータ処理の計算を効率よく実行する技法が開示される。本発明の一実施形態によれば、処理されるデータの入力値を受け取り、この入力値に基づいて中間値の数列を生成する装置が開示される。装置は、数列のうちの少なくとも1つの別の中間値に基づいて数列のうちの少なくとも1つの中間値を生成する。装置は数列のうちの1つの中間値を、入力値を定数値と乗算するための出力値として提供する。この定数値は、整数定数、有理定数または無理定数であってもよい。無理定数は、整数の分子と2の累乗である分母とを有する2進分数定数で近似されてもよい。
別の実施形態によれば、一連の出力データを得るために一連の入力データについて処理を実行する装置が開示される。この装置は、少なくとも1つの入力データ値を少なくとも1つの定数値と乗算する処理を実行する。この装置は、少なくとも1つの乗算に対して中間値の少なくとも1つの数列を生成し、各数列は、数列の少なくとも1つの他の中間値に基づいて生成された少なくとも1つの中間値を有する。装置は各数列のうちの1つまたは複数の中間値を、関連する入力データ値を1つまたは複数の定数値と乗算した1つまたは複数の結果として提供する。
さらに別の実施形態によれば、一連の入力値について変換を実行して、一連の出力値を提供する装置が開示される。装置は、少なくとも1つの中間変数を少なくとも1つの定数値と少なくとも1回乗算する処理を実行する。この装置は、少なくとも1回の乗算に対して中間値の少なくとも1つの数列を生成し、各数列、数列の少なくとも1つの他の中間値に基づいて生成された少なくとも1つの中間値を有する。装置は各数列のうちの1つまたは複数の中間値を、関連する中間変数を1つまたは複数の定数値と乗算した結果として提供する。変換は、DCT、IDCT、または特定の他の種類の変換であってもよい。
さらに別の実施形態によれば、8個の出力値を得るために8個の入力値について変換を実行する装置が開示される。装置は、第1の中間変数について2回の乗算、第2の中間変数について2回の乗算、および合計6回の乗算処理を実行する。
本発明の様々な態様および実施形態は以下にさらに詳細に説明される。
詳細な説明
用語の「例示的」は、本明細書では、「1つの実例、例証または説明としての役割を果たす」ことを意味するために用いられている。本明細書で開示されるいずれの例示的な実施形態も、必ずしも、他の例示的な実施形態よりも好ましい、または有利であると解釈されるべきではない。
本明細書で開示される計算技法は、例えば、変換、フィルタなどの様々な種類の信号およびデータ処理に用いることができる。本発明の技法はまた、画像およびビデオ処理、通信、計算、データネットワーク、データ記憶など様々な用途に用いることもできる。一般に、本発明の技法は、乗算を実行する任意の用途に用いてもよい。明確にするために、この技法を、画像およびビデオ処理で一般的に用いられるDCTおよびIDCTについて、以下で具体的に説明する。
タイプIIの1次元(1D)のN点DCTと1DのN点IDCTは、以下のように定義される。
Figure 2009512075
ここで、X=0の場合、c(X)=1/√2、それ以外では、c(X)=1であり、
f(x)は1Dの空間ドメイン関数であり、
F(X)は1Dの周波数ドメイン関数である。
式(1)の1DのDCTは、x=0,・・・,N−1についてN個の空間ドメイン値に関して演算を行い、X=0,・・・,N−1についてN個の変換係数を生成する。式(2)の1DのIDCTは、N個の変換係数に関して演算を行い、N個の空間ドメイン値を生成する。タイプIIのDCTは、1つのタイプの変換であり、一般に、画像/ビデオ圧縮に対して提案された複数のエネルギー圧縮変換のうち最も効率の良い変換の1つと考えられている。
2次元(2D)のN×NのDCTおよび2DのN×NのIDCTは、以下のように定義される。
Figure 2009512075
ここで、X=0の場合、c(X)=1/√2、それ以外では、c(X)=1であり、Y=0の場合、c(Y)=1/√2、それ以外では、c(Y)=1であり、
f(x,y)は、2Dの空間ドメイン関数であり、
F(X,Y)は、2Dの周波数ドメイン関数である。
式(3)の2DのDCTは、x,y=0,・・・,N−1について、N×Nブロックの空間ドメインサンプルまたは画素に関して演算を行い、X,Y=0,・・・,N−1について、N×Nブロックの変換係数を生成する。式(4)の2DのIDCTは、N×Nブロックの変換係数に関して演算を行い、N×Nブロックの空間ドメインサンプルを生成する。一般に、2DのDCTと2DのIDCTとは、任意のブロックサイズで実行されてもよい。しかし、一般には、8×8のDCTおよび8×8のIDCTが、画像およびビデオ処理に用いられる。この場合、Nは8に等しい、例えば、8×8のDCTおよび8×8のIDCTは、JPEG、MPEG−1、MPEG−2、MPEG−4(P.2)、H.261、H.263などといった様々な画像およびビデオ符号化規格の標準的構成要素として用いられる。
式(3)は、2DのDCTがXおよびYで分離可能であることを示している。この分離可能な分解によって、まず、8×8のデータブロックの各行(または各列)に関して1DのN点DCT変換を実行して8×8の中間ブロックを生成し、次いで、中間ブロックの各列(または各行)に関して1DのN点DCTを実行して8×8の変換係数ブロックを生成することによって、2DのDCTを計算することができる。同様に、式(4)は、2DのIDCTがxおよびyで分解可能であることを示している。2DのDCT/IDCTを1DのDCT群/IDCT群のカスケードに分解することによって、2DのDCT/IDCTの効率が1DのDCT/IDCTの効率に依存する。
1DのDCTおよび1DのIDCTは、式(1)および式(2)でそれぞれ示されている元々の形式で実施されてもよい。しかし、計算上の複雑性は、乗算および加算ができる限り少なくなる因数分解を見つけることによって、大幅に低減できる。
図1は、8点IDCTの例示的な因数分解のフローグラフ100を示している。フローグラフ100では、加算はそれぞれ記号
Figure 2009512075
で表され、乗算はそれぞれ四角形で表されている。加算はそれぞれ、2つの入力値を合計または引き算して出力値を提供する。乗算はそれぞれ、入力値を、四角形の中で示された変換定数で乗算して出力値を提供する。この因数分解は以下の定数因数を用いる。
Figure 2009512075
フローグラフ100は8個の倍率変更された変換係数A・F(0)〜A・F(7)を受け取り、これらの係数に関して8点IDCTを実行し、8個の出力サンプルf(0)〜f(7)を生成する。A〜Aはスケール因子であって、以下の式で与えられる。
Figure 2009512075
フローグラフ100は、多数のバタフライ演算を含んでいる。バタフライ演算は、2つの入力値を受け取り、2つの出力値を生成する。この場合、一方の出力値は2つの入力値の合計であり、他方の出力値は2つの入力値の差である。例えば、入力値A・F(0)およびA・F(4)に対するバタフライ演算は、最上部ブランチに出力値A・F(0)+A・F(4)を、最下部ブランチに出力値A・F(0)−A・F(4)を生成する。
図1は、8点IDCTの1つの例示的な因数分解を示している。他の因数分解も、例えばクーリー・テューキーのDFTアルゴリズムといった他の既知の高速アルゴリズムへのマッピングを用いることによって、または例えば時間デシメーションもしくは周波数デシメーションといった系統的因数分解法を適用することによって、導き出されている。図1で示された因数分解は結果的に合計で6回の乗算と28回の加算となり、これは、式(2)を直接計算するのに必要な乗算および加算の回数よりも大幅に少ない。一般に、因数分解は、無理定数との乗算である基本乗算の数を減らすが、それらをゼロにするわけではない。
以下の用語は、数学で一般的に用いられている。
・有理数−2つの整数の比a/b、ここでbはゼロではない
・無理数−有理数ではない任意の実数
・代数的数−整数係数を有する多項式の根として表現可能な任意の数
・超越数−有理もしくは代数的ではない任意の実数または複素数
図1の乗算は、無理定数、またはより詳細には、異なった角度(π/8の倍数)のサイン値とコサイン値を表す代数的定数を用いる。これらの乗算は、浮動小数点の乗数を用いて実行され、これはコストと複雑を増大させる可能性がある。あるいは、これらの乗算は、本明細書で開示する計算技法を用いて、所望の精度を達成するために、固定小数点の整数演算を用いて効率的に実行されてもよい。
例示的な一実施形態では、無理定数は、以下のように、2進分母を有する有理定数によって近似される。
Figure 2009512075
ここで、αは近似される無理定数であり、cおよびbは整数であり、b>0である。分数c/2はまた、一般に、2進分数または2進比と称される。cはまた定乗数とも称され、bはまたシフト定数とも称される。
式(5)の近似によって、以下のように、固定小数点整数演算を用いて、整数変数xを無理定数αと乗算することができる。
Figure 2009512075
ここで、「>>」は、ビット単位の右シフト演算を示し、これは2による除算に近似する。ビットシフト演算は、2による除算と類似しているが、正確には等しくはない。
式(6)において、xのαとの乗算は、xに整数値cを乗じ、その結果をbビット右にシフトすることによって近似される。しかし、依然として、xのcとの乗算は存在する。この乗算は、1サイクルの乗算があるいくつかの計算環境では許容できる。しかし、多数のサイクルまたは大面積シリコンを要する多くの環境では、乗算を回避することが望ましい。このような既存の環境の例には、パーソナルコンピュータ(PC)、無線デバイス、セルラ電話および様々な組込みプラットフォームが含まれる。これらの場合、定数との乗算は、例えば、加算およびシフトといった一連のより簡単な演算に分解される。
加算およびシフトを用いる乗算の実行は、例を用いて説明される。この例では、α=2−1/2=0.7071067811である。2進小数でのαの5ビット近似は、
Figure 2009512075
となる。10進数の23を2進数で表すと、23=b010111となる。ここで、「b」は2進数を示している。次に、xとαとの乗算が次のように近似される。
Figure 2009512075
式(7)の乗算は、4つのシフトと3つの加算により達成できる。実質的には、定乗数cの「1」ビットそれぞれに対して少なくとも1回の演算が実行される。
同じ乗算は、以下のように、減算およびシフトを用いて実行されてもよい。
Figure 2009512075
式(8)の乗算は、2つのシフトと2つの減算だけで達成できる。一般には、上述の技法を用いることによって、乗算の複雑性は、定乗数cにおける数の「01」と「10」の遷移に比例する。
式(7)および式(8)は、加算とシフトを用いて乗算を近似する、いくつかの例である。より効率的な近似が、いくつかの他の例で見出される可能性もある。
様々な例示的な実施形態によれば、乗算はシフト演算および加法演算によって、および中間結果を用いて効率的に実行され、演算の全回数を減らすこともできる。例示的な実施形態は、以下のように要約できる。
1つの例示的な実施形態では、整数定数との乗算は、シフト演算と加法演算によって生成される中間値の数列を用いて達成される。「数列」および「シーケンス」は同義語であって、本明細書では交換可能に使用されている。この例示的な実施形態の一般的な手順は以下のとおり与えられる。
整数変数xと整数定数uが与えられる場合、整数値の積、
Figure 2009512075
は、以下の中間値の数列を用いて得られる。
Figure 2009512075
ここで、z=0、z=xであり、全ての2≦i≦t値に対してzは以下の式で得られる。
Figure 2009512075
ここで、「±」はプラスまたはマイナスのいずれかを意味し、
Figure 2009512075
は、中間値zをsビット分、左にシフトすることを意味し、
tは数列の中間値の数を示している。
式(11)では、zは、
Figure 2009512075
に等しい。数列の各中間値zは、数列の2つの先の中間値zとzに基づいて導き出される。ここで、zまたはzのいずれかはゼロであってもよい。各中間値zは、1つのシフトおよび/または1つの加算によって得ることができる。sがゼロに等しい場合、シフトは必要ない。z=z=0の場合、加算は必要ない。乗算に対する加算およびシフトの全回数は、数列の中間値の数(t、並びに各中間値に用いられる式)によって決定される。定数uとの乗算は、基本的に、一連のシフト演算および加法演算に展開される。
数列は、数列の最終値が所望の整数値の積、すなわち以下になるように定義される。
Figure 2009512075
別の例示的な実施形態では、2進分母を有する有理定数(2進分数定数とも称する)との乗算が、シフト演算および加法演算によって生成された中間値の数列で近似される。この例示的な実施形態の一般的な手順は以下のとおり与えられる。
整数変数xと2進分数定数u=c/2(bおよびcは整数であり、b>0)とが与えられる場合、整数値の積、
Figure 2009512075
は、以下の中間値の数列を用いて近似される。
Figure 2009512075
ここで、z=0、z=xであり、全ての2≦i≦t値に対してzは以下のとおりに得られる。
Figure 2009512075
ここで、
Figure 2009512075
は、中間値zを|s|ビット分、(定数sの符号によって)左右いずれかにシフトすることを意味する。
数列は、数列の最終値が所望の整数値の積、すなわち以下になるように定義される。
Figure 2009512075
さらに別の例示的な実施形態では、複数の整数定数との乗算が、シフト演算および加法演算によって生成される中間値の共通の数列により達成される。この例示的な実施形態の一般的な手順は以下のとおり与えられる。
整数変数xと整数定数u、vとが与えられる場合、2つの整数値の積、
Figure 2009512075
は、中間値の数列、
Figure 2009512075
を用いて得られる。ここで、w=0、w=xであり、全ての2≦i≦t値に対してwは以下の式で得られる。
Figure 2009512075
ここで、
Figure 2009512075
は、中間値wをsビット分、左にシフトすることを意味する。
数列は、以下のように、所望の整数値の積が、各ステップm、nで得られるように定義される。
Figure 2009512075
ただし、m,n≦tであり、mまたはnのいずれかがtに等しい。さらに別の例示的な実施形態では、複数の2進分数定数との乗算が、シフト演算および加法演算によって生成された中間値の共通の数列により達成される。この例示的な実施形態の一般的な手順は以下のとおり与えられる。
整数変数xと2進分数定数u=c/2およびv=e/2(b、c、d、eは整数であり、b>0およびd>0)とが与えられる場合、2つの整数値の積、
Figure 2009512075
は、中間値の数列、
Figure 2009512075
を用いて近似される。ここで、w=0、w=xであり、全ての2≦i≦t値に対してwは以下の式で得られる。
Figure 2009512075
ここで、
Figure 2009512075
は、中間値wを|s|ビット分、(定数sの符号によって)左右いずれかにシフトすることを意味する。
数列は、以下のとおり、所望の整数値の積が、各ステップm、nで得られるように定義される。
Figure 2009512075
ここで、m,n≦tであり、mまたはnのいずれかがtに等しい。
表1は、上述の例示的な実施形態による乗算の手順を要約している。
Figure 2009512075
整数変数xと1つおよび2つの定数との乗算は上で説明してきた。一般に、整数変数xは、任意の数の定数と乗算されてもよい。整数変数xと2つ以上の定数との乗算は、中間値の共通の数列を用いて共同因数分解することにより、乗算に対して所望の積を生成できる。中間値の共通の数列は、乗算の計算において任意の類似点または重複部分を利用して、これらの乗算に対するシフト演算と加法演算の数を減らすことができる。
上述の例示的な実施形態のそれぞれに対する計算プロセスにおいては、ゼロの加算および減算並びにゼロビット分のシフトといった自明な演算は省略される。以下のように簡略化がなされる。
Figure 2009512075
式(25)および式(26)のそれぞれにおいて、「⇒」の左の式は、ゼロの加算または減算(zまたはwで示される)を含み、1つのシフトで実行できる、「⇒」の右の対応する式で示されるとおり簡略化されてもよい。式(27)および式(28)のそれぞれにおいて、「⇒」の左の式は、ゼロビット分のシフト(2で示される)を含み、1つの加算で実行できる、「⇒」の右の対応する式で示されているとおりに簡略化されてもよい。
上述の例示的な実施形態では、たとえ1つの中間値が1つの入力値に等しく、また1つまたは複数の中間値が1つまたは複数の出力値と等しい場合にも、各数列の要素は、(簡略化のため)「中間値」と称される。数列の要素はまた、他の専門用語によって称されてもよい。例えば、数列は、入力値(zまたはwに対応する)と、ゼロまたは複数の中間結果と、1つまたは複数の出力値(zまたはwおよびwに対応する)とを含むと定義される。
上述の例示的な実施形態のそれぞれにおいて、中間値の数列は、演算全体の計算または実施の全体コストが最小となるように選択される。例えば、数列は、数列が最小数の中間値または最小のt値を含むように選択される。数列はまた、中間値が最小数のシフト演算および加法演算によって生成できるように選択されてもよい。最小数の中間値は、一般には(必ずしもというわけではないが)、結果的に最小数の演算となる。所望の数列が各種の方法で決定されてもよい。例示的な実施形態では、所望の数列は、中間値の可能な数列全てを評価し、中間値の数または各数列に対する演算の数を数え、最小数の中間値および/または最小数の演算の数列を選択することによって決定される。
上述の例示的な実施形態のうちの任意の1つが、整数変数xを1つまたは複数の定数と1回以上乗算するために用いられる。特定の例示的な実施形態の使用は、定数(複数可)が整数定数(複数可)または無理定数(複数可)のいずれであるかに依存する。複数の定数との乗算は、変換および他の種類の処理では共通である。DCTおよびIDCTでは、サインおよびコサインで乗算することによって、平面回転が実現される。例えば、図1における中間の変数FおよびFはそれぞれ、cos(3π/8)およびsin(3π/8)の両方で乗算される。
図1の乗算は、上述の例示的な実施形態を用いて効率的に実行される。図1の乗算は、以下の無理定数を用いる。
Figure 2009512075
上記の無理定数は、最終結果で所望の精度を達成するのに十分な数のビットの有理定数で近似されてもよい。以下の記載では、各超越定数が2つの2進分数定数で近似される。第1の有理定数が、8ビット画素に対してIEEE1180〜1190精度基準を満たすように選択される。第2の有理定数は、12ビット画素に対してIEEE1180〜1190精度基準を満たすように選択される。
超越定数Cπ/4は、以下のとおり、8ビットおよび16ビットの2進分数定数で近似される。
Figure 2009512075
ここで、
Figure 2009512075
は、Cπ/4の8ビット近似であり、
Figure 2009512075
は、Cπ/4の16ビット近似である。
整数変数xと定数
Figure 2009512075
との乗算は、次の式で表される。
Figure 2009512075
式(19)の乗算は、以下の一連の演算で達成される。
Figure 2009512075
「//」の右の2進値は、変数xを乗じた中間定数である。
所望の8ビット積は、zに等しいかまたは、z=zである。式(30)における乗算は、3つの中間値z、zおよびzを生成するために3つの加算と3つのシフトにより実行される。
整数変数xと定数
Figure 2009512075
との乗算は、次のように表される。
Figure 2009512075
式(32)における乗算は、式(31)で示された中間値の数列と、さらに1つの演算、すなわち、
Figure 2009512075
により達成される。
所望の16ビット積は、zにほぼ等しいかまたは、
Figure 2009512075
である。式(32)の乗算は、4つの中間値z、z、zおよびzに対して4つの加算と4つのシフトにより実行される。
定数C3π/8およびS3π/8は、因数分解の奇数部分における平面回転で用いられる。奇数部分は、奇数指数を有する変換係数を含む。図1で示されているとおり、これらの定数との乗算は、中間変数FおよびFのそれぞれに対して同時に実行される。したがって、これらの定数に対しては共同の因数分解が用いられる。
超越定数C3π/8およびS3π/8は、以下のように、2進分数定数で近似される。
Figure 2009512075
Figure 2009512075
ここで、
Figure 2009512075
はC3π/8の7ビット近似で、
Figure 2009512075
は、C3π/8の13ビット近似であり、
Figure 2009512075
はS3π/8の9ビット近似で、
Figure 2009512075
はS3π/8の15ビット近似である。C3π/8の7ビット近似およびS3π/8の9ビット近似は、8ビット画素に対するIEEE1180〜1190精度基準を満たすのに十分である。C3π/8の13ビットの近似およびS3π/8の15ビット近似は、16ビット画素に対する望ましい高精度を達成するのに十分である。
整数変数xの定数
Figure 2009512075
および
Figure 2009512075
との乗算は、以下の式で表される。
Figure 2009512075
式(36)における乗算は以下の一連の演算により達成される。
Figure 2009512075
所望の8ビット積は、wおよびwに等しいかまたは、w=yおよびw=zである。式(数36)において共同因数分解を用いた2つの乗算は、7つの中間値wからwを生成するために5つの加算と5つのシフトにより実行される。wおよびwの生成では、ゼロの加算は省略される。wおよびwの生成では、ゼロ分のシフトは省略される。
整数変数xと定数
Figure 2009512075
および
Figure 2009512075
との乗算は、以下のように表される。
Figure 2009512075
式(38)における乗算は以下の一連の演算により達成される。
Figure 2009512075
所望の16ビット積は、wおよびwに等しいかまたは、w=yおよびw=zである。式(38)において共同因数分解を用いた2つの乗算は、8個の中間値wからwを生成するために6つの加算と6つのシフトにより実行される。wおよびwの生成では、ゼロの加算は省略される。wおよびwの生成では、ゼロ分のシフトは省略される。
図1で示された因数分解を用いた8点IDCTに関しては、定数
Figure 2009512075
Figure 2009512075
および
Figure 2009512075
との乗算について本明細書で開示した技法を用いると、8ビット精度に対する全体の複雑性は以下のように与えられる。すなわち、28+3・2+5・2=44加算および3・2+5・2=16シフトである。定数
Figure 2009512075
Figure 2009512075
および
Figure 2009512075
との乗算を用いた8点IDCTに関しては、16ビット精度に対する全体の複雑性は以下のように与えられる。すなわち、28+4・2+6・2=48加算および4・2+6・2=20シフトである。一般に、各定数に対して十分なビット数を用いることによって、任意の所望の精度を達成できる。全体の複雑性は、式(2)で示された総当り的な計算に比べて大幅に低減される。さらに、乗算の必要なしに、加算とシフトのみを用いて変換を達成することができる。
式(31)、式(33)、式(37)および式(39)における中間値シーケンスは、例示的なシーケンスである。所望の積はまた、中間値の他のシーケンスを用いて得られる。一般に、所定のシーケンスにおける加算演算および/またはシフト演算の数を最小限にすることが望ましい。いくつかのプラットフォームでは、加算はシフトよりも複雑であり、そのため、目的は、最小数の加算でシーケンスを見出すことになる。いくつかの別のプラットフォームでは、シフトはよりコストが高くなる可能性がある。この場合、シーケンスは、最小数のシフト(および/または全シフト演算においてシフトされる総ビット数)を含むべきである。一般に、シーケンスは、最小加重平均数の加算演算およびシフト演算を含んでもよく、この場合の加重は、対応して生じる、加算およびシフトの相対的複雑性を表す。このようなシーケンスを見出す際に、いくつかの追加的な制約が適用されてもよい。例えば、相互依存する中間値の最長サブシーケンスが特定の所定の値を超えないことを保証することが重要である。シーケンスの選択において用いられる他の例示的な基準は、右シフトによって生じる近似誤差のいくつかの測定基準(例えば、平均値、分散、大きさなど)を含んでもよい。
整数変数xと1つまたは複数の定数との乗算は、中間値の様々なシーケンスにより達成される。最小数の加算演算および/またはシフト演算を用いた、または追加で課せられた制約もしくは最適化基準を有するシーケンスは、様々な方法で決定される。1つの方法では、中間値の可能なシーケンスの全ては、全数検索によって特定され、評価される。最小数の演算による(および他の制約および基準全てを満たす)シーケンスが選択され使用される。
中間値のシーケンスは、無理定数を近似するのに用いられる有理定数に依存する。各有理定数に対するシフト定数bは、ビットシフト数を決定し、シフト演算と加算演算の数にも影響を与える可能性がある。小さいシフト定数は、通常は(必ずしもというわけではないが)、乗算を近似するためのシフト演算および加法演算の数が少ないことを意味する。
いくつかの場合においては、フローグラフの乗算グループに対して、共通のスケール因子を見出すことにより無理定数に対する近似誤差が最小になるようにする。このような共通のスケール因子は、変換の入力スケール因子A〜Aと結合、吸収されてもよい。
上述の8ビットおよび16ビットIDCTの実行は、コンピュータシミュレーションを用いて試験された。IEEE規格1180〜1190およびその審議中の代替案では、実際のDCT/IDCTの実行の精度に対して広く受け入れられているベンチマークを提供している。要約すると、この規格は、近似IDCTを試験後に乱数発生器からの入力データを用いて基準64ビット浮動小数点DCTを試験することを規定している。基準DCTは入力データを受け取り、変換係数を生成する。近似IDCTは、変換係数(適切に端数を丸めた)を受け取り、出力サンプルを生成する。次に、この出力サンプルを、表2で与えられる5つの異なった測定基準を用いて、入力データと比較する。さらに、近似IDCTは、ゼロ変換係数を提供する場合は全てゼロを発生させ、近似DC反転挙動を示すことが要求される。
Figure 2009512075
コンピュータシミュレーションは、上述の8ビット近似を採用するIDCTが、表2の測定基準の全てに対してIEEE1180〜1190精度要求を満たすことを示す。このコンピュータシミュレーションはさらに、上述の16ビット近似を使用するIDCTが、表2の測定基準の全てに対してIEEE1180〜1190精度要求を大幅に超えていることを示している。8ビットおよび16ビットIDCT近似はさらに、オールゼロ入力および近似DC反転試験に合格する。
簡単化のために、上述の説明の大部分は、IEEE規格1180〜1190の精度要求を満たす、8点倍率変更1DのIDCTを効率よく実行するためのものである。この倍率変更された1DのIDCTは、JPEG、MPEG−1、2、4、H.261、H.263符合器/復号器(符復号器)および他のアプリケーションでの使用に適している。1DのIDCTは、図1に示された、28個の加算と無理定数による6つの乗算を有する、倍率変更IDCT因数分解を使用する。これらの乗算は、上述のように、シフト演算と加法演算のシーケンスに展開される。演算の数は、中間結果を用いて中間値のシーケンスを生成することによって、低減される。さらに、所定変数と複数の定数との乗算が共同で計算されて、これらの定数に存在する共通要因(またはパターン)を一度だけ計算することによって、シフト演算と加算演算の数がさらに低減される。上述の8ビットの8点倍率変更1DのIDCTの全体的な複雑性は、44個の加算と16個のシフトである。これによって、このIDCTを、今日まで知られている最も簡単で乗算のない、IEEE−1180準拠の実現形態にしている。上述の16ビットの8点倍率変更1DのIDCTの全体的な複雑性は、48個の加算と20個のシフトである。このより正確な1DのIDCTは、MPEG−4スタジオプロファイルおよび他のアプリケーションにおいて用いられてもよく、新しいMPEG IDCT規格にも適している。
図2は、倍率変更および分離可能な方式で実現される2DのIDCT200の例示的な実施形態を示している。2DのIDCT200は、入力倍率変更ステージ212、次いで、列(または行)用の第1倍率変更される1DのIDCTステージ214、さらに次いで、行(または列)用の第2倍率変更される1DのIDCTステージ216、最後に出力倍率変更ステージ218を備えている。倍率変更される因数分解とは、変換の入力および/または出力に既知のスケール因子を乗算することを意味する。スケール因子は、変換の前方および/または後方へ移される共通の因子を含み、フローグラフ内でより簡単な定数を生成し、この結果計算を簡略化する。入力倍率変更ステージ212は、各変換係数F(X,Y)に定数C=2を予め乗算するか、または各変換係数をPビット左へシフトする。ここで、Pは、確保された「仮数」ビットの数を示している。倍率変更の後、2P−1量をDC変換係数に加算して、出力サンプルにおける適正な端数の丸めを達成する。
第1の1DのIDCTステージ214は、倍率変更された変換係数ブロックの各列でN点IDCTを実行する。第2の1DのIDCTステージ216は、第1の1DのIDCTステージ214によって生成された中間ブロックの各列で、N点IDCTを実行する。8×8IDCTについては、上述され、図1で示されたとおり、8点の1DのIDCTが、各列および各行に対して実行される。第1および第2ステージの1DのIDCTは、内部の事前または事後倍率変更を実行せずに、それらの入力データを直接処理できる。行および列を両方とも処理した後、出力倍率変更ステージ218は、結果として生じた量を、第2の1DのIDCTステージ216からPビット右へシフトして、2DのIDCTに対する出力サンプルを生成する。スケール因子と精度定数Pは、2DのIDCT全体が所望の幅のレジスタを用いて実現されるように選択される。
図2における2DのIDCTの倍率変更を実現することにより、乗算の全回数を少なくする結果になり、さらに、乗算の大部分を、量子化および/または逆量子化ステージで実行することを可能にする。量子化および逆量子化は、典型的には、符号器によって実行される。逆量子化は、典型的には、復号器によって実行される。
図3は、8点DCTの例示的な因数分解のフローグラフ300を示している。フローグラフ300は、8つの入力サンプルf(0)〜f(7)を受け取り、これらの入力サンプルで8点DCTを実行し、8つの倍率変更された変換係数8A・F(0)〜8A・F(7)を生成する。スケール因子A〜Aは上記の通りである。フローグラフ300は、可能な限り少ない乗算と加算を用いるように定義される。中間変数F、F、F、Fに対する乗算は、上述の通り実行されてもよい。特に、無理定数1/Cπ/4、C3π/8およびS3π/8は有理定数により近似されてもよく、有理定数との乗算は、中間値のシーケンスにより達成されてもよい。
図4は、分離可能な方式で実行され、倍率変更された1DのDCT因数分解を使用する2DのDCT400の例示的な一実施形態を示している。2DのDCT400は、入力倍率変更ステージ412、その後に列(または行)に対する第1の1DのDCTステージ414、その後に行(または列)に対する第2の1DのDCTステージ416、最後に出力倍率変更ステージ418を備えている。入力倍率変更ステージ412は、入力サンプルを予め乗算する。第1の1DのDCTステージ414は、倍率変更された変換係数ブロックの各列についてN点DCTを実行する。第2の1DのDCTステージ416は、第1の1DのDCTステージ414によって生成された中間ブロックの各列で、N点DCTを実行する。出力倍率変更ステージ418は第2の1DのDCTステージ416の出力を倍率変更して、2DのDCTに対する変換係数を生成する。
図5は、画像/ビデオ符号化および復号システム500のブロック図を示している。符号化システム510では、DCTユニット520は、入力データブロック(Px,yとして示されている)を受け取り、変換係数ブロックを生成する。入力データブロックは、N×Nブロックの画素、N×Nブロックの画素差値(または残り)、または、ソース信号(例えば、ビデオ信号)から生成される、特定の他の種類のデータであってもよい。画素差値は、2つの画素ブロック間の差、または画素ブロックと予測画素ブロックと間の差などであってもよい。Nは、一般には8に等しいが、他の値であってもよい。符号器530は、DCTユニット520から変換係数ブロックを受け取り、変換係数を符号化して、圧縮データを生成する。符号器530は、N×Nブロックの変換係数のジグザグ走査、変換係数の量子化、エントロピー符号化、パケット化など様々な機能を実行する。符号器530からの圧縮データは、記憶ユニットに記憶され、および/または、通信チャネル(集団540)を介して送信される。
復号システム550では、復号器560が記憶ユニットまたは通信チャネル540から圧縮データを受け取り、変換係数を再構成する。復号器560は、逆パケット化、エントロピー復号化、逆量子化、逆ジグザグ走査など様々な機能を実行する。IDCTユニット570は、再構成された変換係数を復号器560から受け取り、出力データブロック(P’x,yとして示される)を生成する。出力データブロックは、N×Nブロックの再構成画素、N×Nブロックの再構成画素差値などである。出力データブロックは、DCTユニット520に与えられる入力データブロックの推定値であり、ソース信号を再構成するのに用いられる。
図6は符号化システム600のブロック図を示し、このシステムは、図5の符号化システム510の例示的な一実施形態である。キャプチャー装置/メモリ610がソース信号を受け取り、デジタル形式に変換し、入力/生データを提供する。キャプチャー装置610は、ビデオカメラ、デジタイザ、または何らかの他の装置であってもよい。プロセッサ620が、生データを処理し、圧縮データを生成する。プロセッサ620内では、生データがDCTユニット622で変換され、ジグザグ走査ユニット624によって走査され、量子化器626によって量子化され、エントロピー符号器628によって符号化され、パケタイザ630によってパケット化される。DCTユニット622は、上述の技法に従って、生データに2DのDCTを実行する。ユニット622から630はそれぞれ、ハードウェア、ファームウェアおよび/またはソフトウェアで実現されてもよい。例えば、DCTユニット622は、専用のハードウェア、または算術論理演算装置(ALU)などのための命令群、またはその組み合わせで実現されてもよい。
記憶ユニット640がプロセッサ620からの圧縮データを記憶する。送信機642が圧縮データを送信する。コントローラ/プロセッサ650が、符号化システム600内の種々のユニットの演算を制御する。メモリ652が符号化システム600用のデータおよびプログラムコードを記憶する。1つまたは複数のバス660が符号化システム600内の種々のユニットを相互接続する。
図7は、復号システム700のブロック図を示している。これは、図5の復号システム550の例示的な一実施形態である。受信機710が符号化システムからの圧縮データを受信し、記憶ユニット712が受信した圧縮データを記憶する。プロセッサ720が、この圧縮データを処理し、出力データを生成する。プロセッサ720内では、圧縮データがデパケッタイザ722によって逆パケット化され、エントロピーデコーダ724によって復号され、逆量子化器726によって逆量子化され、逆ジグザグ走査ユニット728によって適切な順序で配置され、IDCTユニット730によって変換される。IDCTユニット730は、上述の技法に従って、再構成された変換係数に2DのIDCTを実行する。ユニット722〜730はそれぞれ、ハードウェア、ファームウェアおよび/またはソフトウェアで実現されてもよい。例えば、IDCTユニット730は、専用のハードウェア、またはALUなどのための命令群、またはその組み合わせで実現されてもよい。表示ユニット740が、プロセッサ720から再構成された画像およびビデオを表示する。
コントローラ/プロセッサ750は、復号システム700内の種々のユニットの演算を制御する。メモリ752が、復号システム700のためのデータおよびプログラムコードを記憶する。1つまたは複数のバス760が復号システム700内の種々のユニットを相互接続する。
プロセッサ620および720はそれぞれ、1つまたは複数の特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)および/または他の特定のタイプのプロセッサにより実現されてもよい。あるいは、プロセッサ620および720はそれぞれ、1つまたは複数のランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気プログラマブルROM(EPROM)、電気的消去可能なプログラマブルROM(EEPROM)、磁気ディスク、光ディスクおよび/または当分野で公知の他のタイプの揮発性および不揮発性メモリと置き換えられてもよい。
本明細書で開示される計算技法は、種々のタイプの信号およびデータ処理に用いられてもよい。この技法を変換のために用いることを上記で説明してきた。特定の例示的なフィルタ処理のためにこの技法を用いることが以下に開示される。
図8Aは、有限インパルス応答(FIR)フィルタ800の例示的な一実施形態のブロック図を示している。FIRフィルタ800では、直列接続された多数の遅延素子812b〜812lに入力サンプルr(n)が供給される。各遅延素子812は1つのサンプル遅延時間を提供する。遅延素子812b〜812lの入力サンプルと出力とがそれぞれ、乗算器814a〜814lに提供される。各乗算器814はまたそれぞれフィルタ係数を受け取り、乗算器のサンプルにこのフィルタ係数を乗算し、倍率変更されたサンプルを加算器816に提供する。各サンプリング期間において、加算器816は、乗算器814a〜814lからの倍率変更されたサンプルを合計し、そのサンプリング期間に対する出力サンプルを提供する。サンプリング期間nに対する出力サンプルy(n)は、以下の式で表される。
Figure 2009512075
ここで、hは、FIRフィルタ800のi番目のタップに対するフィルタ係数である。
乗算器814a〜814lはそれぞれ、上述のとおり、シフト演算および加算演算により実行されてもよい。各フィルタ係数は、整数定数または2進分数定数で近似されてもよい。各乗算器814から倍率変更されたサンプルはそれぞれ、その乗算器に対する整数定数または2進分数定数に基づいて生成された中間値の数列を基に得られる。
図8Bは、FIRフィルタ850の例示的な一実施形態のブロック図を示している。FIRフィルタ850内では、入力サンプルr(n)が、L個の乗算器852a〜852lに提供される。各乗算器852はまた、それぞれフィルタ係数を受け取り、乗算器のサンプルにこのフィルタ係数を乗算し、倍率変更されたサンプルを遅延ユニット854に提供する。ユニット854は、倍率変更されたサンプルを各FIRタップに対して適切な量で遅延する。各サンプリング期間において、加算器856がユニット854からのN個の遅延サンプルを合計し、そのサンプリング期間に対する出力サンプルを提供する。
FIRフィルタ850はまた式(40)を実行する。しかし、L個の乗算が、入力サンプルそれぞれで、Lフィルタ係数を用いて実行される。乗算器852a〜852lの複雑性を低減するために、これらのL個の乗算に対して共同の因数分解が用いられる。
図8Cは、FIRフィルタ870の例示的な一実施形態のブロック図を示している。FIRフィルタ870は、カスケードに接続されたL/2セクション880a〜880jを含む。最初のセクション880aは入力サンプルr(n)を受け取り、最後のセクション880jは出力サンプルy(n)を提供する。各セクション880は、2次フィルタセクションである。
各セクション880内では、FIRフィルタ870に対する入力サンプルr(n)または先のセクションからの出力サンプルが、直列接続された遅延要素882bおよび882cに提供される。入力サンプルと、遅延素子882bおよび882cの出力とが、乗算器884a〜884cにそれぞれ提供される。各乗算器884はまた、それぞれフィルタ係数を受け取り、乗算器のサンプルにこのフィルタ係数を乗算し、倍率変更されたサンプルを加算器886に提供する。各サンプリング期間において、加算器886が乗算器884a〜884cからの倍率変更されたサンプルを合計し、そのサンプリング期間に対する出力サンプルを提供する。最後のセクション880jからの、サンプリング期間nに対する出力サンプルy(n)は、次の式で表される。
Figure 2009512075
ここで、h0,i、h1,iおよびh2,iは、i番目のフィルタセクションに対するフィルタ係数である。
各セクションに対して、各入力サンプルについて最大3つの乗算が実行される。各セクションでは、乗算器882a、882bおよび882cの複雑性を低減するために、これらの乗算に対して共同の因数分解が用いられる。
図9は、無限インパルス応答(IIR)フィルタ900の例示的な一実施形態のブロック図を示している。IIRフィルタ900内では、乗算器912が入力サンプルr(n)を受け取り、フィルタ係数kで倍率変更し、倍率変更されたサンプルを提供する。加算器914が、倍率変更されたサンプルから乗算器918の出力を減算し、出力サンプルz(n)を提供する。レジスタ916が加算器914からの出力サンプルを記憶する。乗算器918がレジスタ916からの遅延出力サンプルにフィルタ係数(1−k)を乗算する。サンプリング期間nに対する出力サンプルz(n)は以下の式で表される。
Figure 2009512075
ここで、kはフィルタ処理の量を決定するフィルタ係数である。
乗算器912および918はそれぞれ、上述のとおり、シフト演算と加算演算により実現されてもよい。フィルタ係数kおよび(1−k)はそれぞれ、整数定数または2進分数定数で近似されてもよい。乗算器912および918のそれぞれから倍率変更されたサンプルは、それぞれ、この乗算器に対する整数定数または2進分数定数に基づいて生成された中間値の数列を基に導き出すことができる。
本明細書で開示される計算は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせで実行されてもよい。例えば、入力値に定数値を乗算するためのシフト演算および加算演算は、1つまたは複数のロジックで実行されてもよい。ロジックはまた、ユニット、モジュールなどとも称される。ロジックは、ロジックゲート、トランジスタおよび/または当分野で公知の他の回路を備えたハードウェアロジックであってもよい。ロジックはまた、機械読取可能なコードを備えたファームウェアおよび/またはソフトウェアロジックであってもよい。
1つの設計においては、装置は、(a)処理されるデータに対する入力値を受け取るための第1のロジックと、(b)この入力値に基づいて中間値の数列を生成し、数列の少なくとも1つの他の中間値に基づいて、数列の少なくとも1つの中間値を生成するための第2のロジックと、(c)数列の1つの中間値を、入力値に定数値を乗算するための出力値として提供するための第3のロジックとを備えている。第1、第2および第3のロジックは、別個のロジックであってもよい。あるいは、第1、第2および第3のロジックは、同一の共通ロジックまたは共有ロジックであってもよい。例えば、第3のロジックは、第2のロジックの一部であってもよく、第2のロジックは、第1のロジックの一部であってもよい。
装置はまた、入力値に基づいて中間値の数列を生成し、数列の少なくとも1つの他の中間値に基づいて数列の少なくとも1つの中間値を生成し、数列の1つの中間値を、演算用の出力値として提供することによって、入力値に関する演算を実行する。演算は、算術演算、数学的演算(例えば、乗算)、他の特定の種類の演算、または、演算の集合もしくは組み合わせであってもよい。
ファームウェアおよび/またはソフトウェア実現に関しては、入力値と定数値との乗算は、所望のシフト演算および加算演算を実行する機械読取可能なコードで実現されてもよい。コードは、ハードウェアに組み込まれているか、またはメモリ(例えば、図6のメモリ652または図7のメモリ752)に記憶され、プロセッサ(例えば、プロセッサ650または750)または他の特定のハードウェアユニットによって実行される。
本明細書で開示される計算技法は、種々のタイプの装置に実装できる。例えば、本発明の技法は、種々のタイプのプロセッサ、種々のタイプの集積回路、種々のタイプの電子デバイス、種々のタイプの電子回路などに実装できる。
本明細書で開示される計算技法は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせで実現されてもよい。この計算は、当分野で公知の任意のコンピュータ読取可能な媒体で実行されるコンピュータ読取可能な命令としてコード化される。本明細書および添付の請求項では、用語の「コンピュータ読取可能な媒体」は、実施のため、任意のプロセッサ(例えば、図6および図7で示されたコントローラ/プロセッサ)に命令を与えて実行することに関連する任意の媒体を意味する。このような媒体は、記憶装置タイプのものであってもよく、例えば、図6および図7のプロセッサ620およびプロセッサ720に関する説明で上述したとおり、揮発性または不揮発性記憶媒体の形態を取ってもよい。このような媒体はまた、伝送タイプのものであってもよく、同軸ケーブル、銅ワイヤ、光ケーブル、および機械もしくはコンピュータで読み取り可能な信号を伝達することができる音波または電磁波を伝播する空気インタフェースを含んでもよい。
当業者であれば、多様な種々の技法および技法のいずれかを用いて、情報および信号を表すことができることは理解されるであろう。例えば、上記の説明全体にわたって参照されるデータ、命令、コマンド、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光粒子、またはそれらの任意の組み合わせによって表すことができる。
当業者であればさらに、本明細書で開示された実施形態に関連して説明される種々の例示的なロジックブロック、モジュール、回路およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェアまたはこれらの組み合わせとして実現できることは理解されるであろう。ハードウェアおよびソフトウェアのこの互換性を明確に説明するために、種々の例示的な構成部品、ブロック、モジュール、回路およびステップが、一般に、これらの機能の観点から上記で説明されてきた。このような機能がハードウェアとして実現されるかまたはソフトウェアとして実現されるかは、特定用途と、システム全体に課せられる設計上の制約とに依存する。当業者は、上述の機能を、特定用途それぞれに対して種々の方法で実現可能であるが、このような実現の決定は、本発明の範囲からの逸脱を生じると解釈されるべきではない。
本明細書で開示した実施形態に関して説明された種々の例示的なロジックブロック、モジュールおよび回路は、汎用目的のプロセッサ、DSP、ASIC、フィールドグラマブルゲートアレイ(FPGA)または他のプログラム可能なロジックデバイス、ディスリートゲートもしくはトランジスタロジック、ディスリートハードウェアコンポーネント、または本明細書で記載した機能を実行するよう設計されたこれらの任意の組み合わせを用いて、実現または実行されてもよい。汎用目的のプロセッサは、マイクロプロセッサであってもよいが、代替例では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラまたは状態機械であってもよい。プロセッサはまた、計算デバイスの組み合わせ(例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと併用する1つまたは複数のマイクロプロセッサ、または任意の他のこのような構成)として実現されてもよい。
本明細書で開示した実施形態に関して説明された方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはこの2つの組み合わせで、具体化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROMまたは当分野で公知の任意の他の形態の記憶媒体内に存在してもよい。例示的な記憶媒体はプロセッサに結合されており、これにより、プロセッサは記録媒体から情報を読み取り、記録媒体に情報を書き込むことができる。代替例では、記憶媒体はプロセッサに一体化されてもよい。プロセッサおよび記憶媒体はASIC内に存在してもよい。ASICはユーザ端末内に存在してもよい。代替例では、プロセッサおよび記憶媒体は、ユーザ端末内のディクリートコンポーネントとして存在してもよい。
開示された実施形態の先の説明は、当業者が本発明を作製または利用することを可能にするために提供されている。これらの実施形態に対する種々の変更形態は、当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の精神または範囲から逸脱することなく、他の実施形態に適用可能である。したがって、本発明は、本明細書で示した実施形態に限定することを意図するものではなく、本明細書で開示される原理および新規の特徴に整合する最も広い範囲と合致するものとする。
8点IDCTの例示的な因数分解のフローグラフを示している。 例示的な2次元IDCTを示している。 8点DCTの例示的な因数分解のフローグラフを示している。 例示的な2次元DCTを示している。 画像/ビデオ符号化および復号化システムのブロック図を示している。 符号化システムのブロック図を示している。 復号化システムのブロック図を示している。 例示的な有限インパルス応答(FIR)フィルタの1つを示している。 例示的な有限インパルス応答(FIR)フィルタの1つを示している。 例示的な有限インパルス応答(FIR)フィルタの1つを示している。 例示的な無限インパルス応答(IIR)フィルタを示している。

Claims (49)

  1. 処理されるデータに対する入力値を受け取るための第1のロジックと、
    前記入力値に基づいて中間値の数列を生成し、前記数列内の少なくとも1つの他の中間値に基づいて、前記数列内の少なくとも1つの中間値を生成するための第2のロジックと、
    前記数列内の1つの中間値を、前記入力値と定数値との乗算の出力値として提供するための第3のロジックと、
    を備える装置。
  2. 前記第2のロジックは、前記数列内の第1の中間値を除いて、前記数列内の少なくとも1つの先の中間値に基づいて、前記数列内の各中間値を生成する、請求項1に記載の装置。
  3. 前記第2のロジックは、前記入力値に対して、前記数列内の第1の中間値を設定し、前記数列内の少なくとも1つの先の中間値に基づいて、後続の各中間値を生成し、
    前記第3のロジックは、前記数列内の最後の中間値を前記出力値として提供する、請求項1に記載の装置。
  4. 前記第2のロジックは、前記数列内の第1の中間値を除いて、前記数列内の少なくとも1つの先の中間値に、ビットシフト、加算、またはビットシフトと加算とを実行することによって、前記数列内の各中間値を生成する、請求項1に記載の装置。
  5. 前記定数値は、整数値で近似される、請求項1に記載の装置。
  6. 前記定数値は、整数の分子と2の累乗である分母とを有する2進分数定数で近似される、請求項1に記載の装置。
  7. 前記第3のロジックは、前記入力値と別の定数値との別の乗算のために、前記数列内の別の中間値を別の出力値として提供する、請求項1に記載の装置。
  8. 前記定数値は、整数値で近似される、請求項7に記載の装置。
  9. 前記定数値は、整数の分子と2の累乗である分母とを有する2進分数定数で近似される、請求項7に記載の装置。
  10. 前記数列は、前記出力値を得るための、最小数の中間値を含んでいる、請求項1に記載の装置。
  11. 前記中間値の数列は、最小数のシフト演算および加法演算により生成される、請求項1に記載の装置。
  12. 処理されるデータに対する入力値を受け取ることと、
    前記入力値に基づいて中間値の数列を生成することであって、前記数列内の少なくとも1つの中間値は、前記数列内の少なくとも1つの他の中間値に基づいて生成されることと、
    前記数列内の1つの中間値を、前記入力値と定数値との乗算の出力値として提供することと、
    を備える方法。
  13. 前記中間値の数列を生成することは、
    前記入力値に対して、前記数列内の第1の中間値を設定することと、
    前記数列内の少なくとも1つの先の中間値に基づいて後続の各中間値を生成することと、
    を備える、請求項12に記載の方法。
  14. 前記中間値の数列を生成することは、
    前記数列内の第1の中間値を除いて、前記数列内の少なくとも1つの先の中間値に、ビットシフト、加算、またはビットシフトと加算とを実行することによって、前記数列内の各中間値を生成することを備える、請求項12に記載の方法。
  15. 前記入力値と別の定数値との別の乗算のために、前記数列内の別の中間値を、別の出力値として提供することをさらに備える、請求項12に記載の方法。
  16. 処理されるデータに対する入力値を受け取る手段と、
    前記入力値に基づいて中間値の数列を生成する手段であって、前記数列内の少なくとも1つの中間値は、前記数列内の少なくとも1つの他の中間値に基づいて生成される、手段と、
    前記数列内の1つの中間値を、前記入力値と定数値との乗算の出力値として提供する手段と、
    を備える装置。
  17. 前記中間値の数列を生成する手段は、
    前記入力値に対して、前記数列内の第1の中間値を設定する手段と、
    前記数列内の少なくとも1つの先の中間値に基づいて、後続の各中間値を生成する手段と、
    を備える、請求項16に記載の装置。
  18. 前記中間値の数列を生成する手段は、
    前記数列内の第1の中間値を除いて、前記数列内の少なくとも1つの先の中間値に、ビットシフト、加算、またはビットシフトと加算とを実行することによって、前記数列内の各中間値を生成する手段を備える、請求項16に記載の装置。
  19. 前記入力値と別の定数値との別の乗算のために、前記数列内の別の中間値を、別の出力値として提供する手段をさらに備える、請求項16に記載の装置。
  20. 処理されるデータに対する入力値を受け取るための第1のロジックと、
    前記入力値に基づいて中間値の数列を生成し、前記数列内の少なくとも1つの他の中間値に基づいて、前記数列内の少なくとも1つの中間値を生成するための第2のロジックと、
    前記数列内の1つの中間値を、演算の出力値として提供するための第3のロジックと、
    を備える、演算の出力値を得るための装置
  21. 前記演算は、前記入力値と定数値との乗算である、請求項20に記載の装置。
  22. 前記第2のロジックは、前記入力値に対して、前記数列内の第1の中間値を設定し、前記数列内の少なくとも1つの先の中間値に基づいて、後続の中間値をそれぞれ生成し、
    前記第3のロジックは、前記数列内の最後の中間値を、前記演算の出力値として提供する、請求項20に記載の装置。
  23. 処理されるデータに対する入力値を受け取ることと、
    前記入力値に基づいて中間値の数列を生成することであって、前記数列内の少なくとも1つの中間値は、前記数列内の少なくとも1つの他の中間値に基づいて生成されることと、
    前記数列内の1つの中間値を、演算の出力値として提供することと、
    を備える、前記演算の出力値を得るための方法。
  24. 処理されるデータに対する入力値を受け取るための少なくとも1つの命令と、
    前記入力値に基づいて中間値の数列を生成するための少なくとも1つの命令であって、前記数列内の少なくとも1つの中間値は、前記数列内の少なくとも1つの他の中間値に基づいて生成される、命令と、
    前記数列内の1つの中間値を、演算の出力値として提供するための少なくとも1つの命令と、
    を備える、コンピュータ読取可能媒体に記憶される少なくとも1つの命令を含むコンピュータ読取可能媒体。
  25. 一連の出力データ値を得るために、一連の入力データ値に処理を実行する第1のロジックと、
    前記処理のために、入力データ値と定数値との乗算を実行し、前記乗算のために中間値の数列を生成し、前記数列内の少なくとも1つの他の中間値に基づいて前記数列内の少なくとも1つの中間値を生成する第2のロジックと、
    1つの中間値を、前記入力データ値と前記定数値との前記乗算の結果として提供する第3のロジックと、
    を備える装置。
  26. 前記第1のロジックは、前記一連の入力データ値を、第1の領域から第2の領域に変換するための処理を実行する、請求項25に記載の装置。
  27. 前記第1のロジックは、前記一連の入力データ値をフィルタ処理することを実行する、請求項25に記載の装置。
  28. 前記定数値は整数値で近似される、請求項25に記載の装置。
  29. 前記定数値は、整数の分子と2の累乗である分母とを有する2進分数定数で近似される、請求項25に記載の装置。
  30. 一連の出力データ値を得るために、一連の入力データ値に処理を実行することと、
    前記処理のために、入力データ値と定数値との乗算を実行することと、
    前記乗算のために中間値の数列を生成することであって、前記数列は、前記数列内の少なくとも1つの他の中間値に基づいて生成された少なくとも1つの中間値を有していることと、
    前記数列内の1つの中間値を、前記入力データ値と前記定数値との前記乗算の結果として提供することと、
    を備える方法。
  31. 前記処理を実行することは、
    前記一連の入力データ値を第1の領域から第2の領域に変換するための処理を実行することを備える、請求項30に記載の方法。
  32. 前記処理を実行することは、
    前記一連の入力データ値のフィルタ処理を実行することを備える、請求項30に記載の方法。
  33. 一連の出力データ値を得るために、一連の入力データ値に処理を実行する手段と、
    前記処理のために、入力データ値と定数値との乗算を実行する手段と、
    前記乗算のために中間値の数列を生成する手段であって、前記数列は、前記数列内の少なくとも1つの他の中間値に基づいて生成された少なくとも1つの中間値を有している、手段と、
    前記数列内の1つの中間値を、前記入力データ値と前記定数値との前記乗算の結果として提供する手段と、
    を備える装置。
  34. 前記処理を実行する手段は、前記一連の入力データ値を第1の領域から第2の領域に変換する処理を実行する手段を備える、請求項33に記載の装置。
  35. 前記処理を実行する手段は、前記一連の入力データ値をフィルタ処理することを実行する手段を備える、請求項33に記載の装置。
  36. 一連の出力値を得るために、一連の入力値に変換を実行する第1のロジックと、
    前記変換のために、中間変数と定数値との乗算を実行し、前記乗算のために中間値の数列を生成し、前記数列内の少なくとも1つの他の中間値に基づいて前記数列内の少なくとも1つの値を生成する第2のロジックと、
    前記数列内の1つの中間値を、前記中間変数と前記定数値との乗算の結果として、提供する第3のロジックと、
    を備える装置。
  37. 前記第1のロジックは、前記一連の入力値に離散コサイン変換(DCT)を実行して、前記一連の出力値に対する一連の変換係数を得る、請求項36に記載の装置。
  38. 前記第1のロジックは、前記一連の出力値を得るために、前記一連の入力値に対する一連の変換係数に逆離散コサイン変換(IDCT)を実行する、請求項36に記載の装置。
  39. 前記定数値は整数値で近似される、請求項36に記載の装置。
  40. 前記定数値は、整数の分子と2の累乗である分母とを有する2進分数定数で近似される、請求項36に記載の装置。
  41. 一連の出力値を得るために、一連の入力値に変換を実行することと、
    前記変換のために、中間変数と定数値との乗算を実行することと、
    前記乗算のために中間値の数列を生成することであって、前記数列は、前記数列内の少なくとも1つの他の中間値に基づいて生成された少なくとも1つの中間値を有することと、
    前記数列内の1つの中間値を、前記中間変数と前記定数値との乗算の結果として提供することと、
    を備える方法。
  42. 前記変換を実行することは、前記一連の出力値に対する一連の変換係数を得るために、前記入力値群に離散コサイン変換(DCT)を実行することを備える、請求項41に記載の方法。
  43. 前記変換を実行することは、前記一連の出力値を得るために、前記一連の入力値に対する変換係数群に逆離散コサイン変換(IDCT)を実行することを備える、請求項41に記載の方法。
  44. 一連の出力値を得るために、一連の入力値に変換を実行する手段と、
    前記変換のために、中間変数と定数値との乗算を実行する手段と、
    前記乗算のために中間値の数列を生成する手段であって、前記数列は、前記数列内の少なくとも1つの他の中間値に基づいて生成された少なくとも1つの中間値を有する、手段と、
    前記数列内の1つの中間値を、前記中間変数の前記定数値との乗算の結果として提供する手段と、
    を備える装置。
  45. 前記変換を実行する手段は、前記一連の出力値に対する一連の変換係数を得るために、前記一連の入力値に離散コサイン変換(DCT)を実行する手段を備える、請求項44に記載の装置。
  46. 前記変換を実行する手段は、前記一連の出力値を得るために、前記一連の入力値に対する一連の変換係数に逆離散コサイン変換(IDCT)を実行する手段を備える、請求項44に記載の装置。
  47. 8つの出力値を得るために、8つの入力値に変換を実行する第1のロジックと、
    前記変換のために第1の中間変数に2つの乗算を実行する第2のロジックと、
    前記変換のために第2の中間変数に2つの乗算を実行する第3のロジックであって、前記第2および第3のロジックは、前記変換のための、合計6つの乗算のうち4つを実行する、第3のロジックと、
    を備える装置。
  48. 前記第2のロジックは、前記第1の中間変数での前記2つの乗算のために、中間値の第1の数列を生成し、
    前記第3のロジックは、前記第2中間変数での前記2つの乗算のために、中間値の第2の数列を生成する、請求項47に記載の装置。
  49. 前記変換のための第3中間変数についての乗算のために、中間値の第3の数列を生成する第4のロジックと、
    前記変換のための第4中間変数についての乗算のために、中間値の第4の数列を生成する第5のロジックと、
    をさらに備える、請求項48に記載の装置。
JP2008535732A 2005-10-12 2006-10-12 信号およびデータ処理のための効率的な無乗算計算 Expired - Fee Related JP5113067B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US72630705P 2005-10-12 2005-10-12
US60/726,307 2005-10-12
US72670205P 2005-10-13 2005-10-13
US60/726,702 2005-10-13
PCT/US2006/040165 WO2007047478A2 (en) 2005-10-12 2006-10-12 Efficient multiplication-free computation for signal and data processing

Publications (2)

Publication Number Publication Date
JP2009512075A true JP2009512075A (ja) 2009-03-19
JP5113067B2 JP5113067B2 (ja) 2013-01-09

Family

ID=37963125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008535732A Expired - Fee Related JP5113067B2 (ja) 2005-10-12 2006-10-12 信号およびデータ処理のための効率的な無乗算計算

Country Status (7)

Country Link
US (1) US20070200738A1 (ja)
EP (1) EP1997034A2 (ja)
JP (1) JP5113067B2 (ja)
KR (1) KR100955142B1 (ja)
MY (1) MY150120A (ja)
TW (1) TWI345398B (ja)
WO (1) WO2007047478A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595281B2 (en) * 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8819095B2 (en) * 2007-08-28 2014-08-26 Qualcomm Incorporated Fast computation of products by dyadic fractions with sign-symmetric rounding errors
US8248660B2 (en) * 2007-12-14 2012-08-21 Qualcomm Incorporated Efficient diffusion dithering using dyadic rationals
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US8451904B2 (en) 2009-06-24 2013-05-28 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
KR101067378B1 (ko) * 2010-04-02 2011-09-23 전자부품연구원 센서 노드를 이용한 인터넷데이터센터 관리 방법 및 시스템
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US10051519B2 (en) 2012-08-27 2018-08-14 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US10083007B2 (en) * 2016-09-15 2018-09-25 Altera Corporation Fast filtering
US10462486B1 (en) 2018-05-07 2019-10-29 Tencent America, Llc Fast method for implementing discrete sine transform type VII (DST 7)
GB2598917A (en) * 2020-09-18 2022-03-23 Imagination Tech Ltd Downscaler and method of downscaling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04141158A (ja) * 1990-10-02 1992-05-14 Aloka Co Ltd 超音波画像処理装置
JPH05108820A (ja) * 1991-03-22 1993-04-30 Hughes Aircraft Co 最小差プロセツサ
JP2003528668A (ja) * 2000-03-28 2003-09-30 ゼネラル・エレクトリック・カンパニイ 2次元超音波イメージングにおけるフラッシュ抑制のための方法及び装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864529A (en) * 1986-10-09 1989-09-05 North American Philips Corporation Fast multiplier architecture
US5233551A (en) * 1991-10-21 1993-08-03 Rockwell International Corporation Radix-12 DFT/FFT building block
US5285402A (en) * 1991-11-22 1994-02-08 Intel Corporation Multiplyless discrete cosine transform
US5539836A (en) * 1991-12-20 1996-07-23 Alaris Inc. Method and apparatus for the realization of two-dimensional discrete cosine transform for an 8*8 image fragment
TW284869B (ja) * 1994-05-27 1996-09-01 Hitachi Ltd
US5701263A (en) * 1995-08-28 1997-12-23 Hyundai Electronics America Inverse discrete cosine transform processor for VLSI implementation
US5930160A (en) * 1996-06-22 1999-07-27 Texas Instruments Incorporated Multiply accumulate unit for processing a signal and method of operation
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
JP3957829B2 (ja) * 1997-08-29 2007-08-15 株式会社オフィスノア 動画像情報の圧縮方法およびそのシステム
KR100270799B1 (ko) * 1998-01-30 2000-11-01 김영환 이산코사인변환/역이산코사인변환 프로세서
US6189021B1 (en) * 1998-09-15 2001-02-13 Winbond Electronics Corp. Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
US6757326B1 (en) * 1998-12-28 2004-06-29 Motorola, Inc. Method and apparatus for implementing wavelet filters in a digital system
US6473534B1 (en) * 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
AU2001268309A1 (en) * 2000-06-09 2001-12-17 Walter E Pelton Methods for reducing the number of computations in a discrete fourier transform
US7007054B1 (en) * 2000-10-23 2006-02-28 International Business Machines Corporation Faster discrete cosine transforms using scaled terms
US6766341B1 (en) * 2000-10-23 2004-07-20 International Business Machines Corporation Faster transforms using scaled terms
ATE375571T1 (de) * 2001-06-12 2007-10-15 Silicon Optix Inc Verfahen und vorrichtung zur verarbeitung einer nichtlinearen zweidimensionalen räumlichen transformation
US20030074383A1 (en) * 2001-10-15 2003-04-17 Murphy Charles Douglas Shared multiplication in signal processing transforms
US6917955B1 (en) * 2002-04-25 2005-07-12 Analog Devices, Inc. FFT processor suited for a DMT engine for multichannel CO ADSL application
US7792891B2 (en) * 2002-12-11 2010-09-07 Nvidia Corporation Forward discrete cosine transform engine
TWI220716B (en) * 2003-05-19 2004-09-01 Ind Tech Res Inst Method and apparatus of constructing a hardware architecture for transfer functions
US7487193B2 (en) * 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US7587093B2 (en) * 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7489826B2 (en) * 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7421139B2 (en) * 2004-10-07 2008-09-02 Infoprint Solutions Company, Llc Reducing errors in performance sensitive transformations
US8595281B2 (en) * 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8849884B2 (en) * 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04141158A (ja) * 1990-10-02 1992-05-14 Aloka Co Ltd 超音波画像処理装置
JPH05108820A (ja) * 1991-03-22 1993-04-30 Hughes Aircraft Co 最小差プロセツサ
JP2003528668A (ja) * 2000-03-28 2003-09-30 ゼネラル・エレクトリック・カンパニイ 2次元超音波イメージングにおけるフラッシュ抑制のための方法及び装置

Also Published As

Publication number Publication date
KR100955142B1 (ko) 2010-04-28
JP5113067B2 (ja) 2013-01-09
MY150120A (en) 2013-11-29
EP1997034A2 (en) 2008-12-03
WO2007047478A2 (en) 2007-04-26
WO2007047478A3 (en) 2008-09-25
KR20080063504A (ko) 2008-07-04
US20070200738A1 (en) 2007-08-30
TWI345398B (en) 2011-07-11
TW200733646A (en) 2007-09-01

Similar Documents

Publication Publication Date Title
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
KR101131757B1 (ko) 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인
JP5086274B2 (ja) 共通因数を用いる変換
JP4874642B2 (ja) ロッシーおよびロスレス2dデータ圧縮のための可逆な変換
US20070271321A1 (en) Transforms with reduce complexity and/or improve precision by means of common factors
Martisius et al. A 2-D DCT hardware codec based on Loeffler algorithm
JP4965711B2 (ja) 符号対称の丸め誤差を有する2進分数による積の高速計算
Mukherjee et al. Hardware efficient architecture for 2D DCT and IDCT using Taylor-series expansion of trigonometric functions
US20050004962A1 (en) Scalable system for inverse discrete cosine transform and method thereof
TWI432029B (zh) 具有比例化及非比例化介面之變換設計
Islam et al. Design and implementation of discrete cosine transform chip for digital consumer products
Hsia et al. Transposed-memory free implementation for cost-effective 2D-DCT processor
CN101361062A (zh) 用于信号及数据处理的高效无乘法计算

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121011

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5113067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees