JP3790091B2 - 1次元離散フーリエ変換回路 - Google Patents
1次元離散フーリエ変換回路 Download PDFInfo
- Publication number
- JP3790091B2 JP3790091B2 JP2000144221A JP2000144221A JP3790091B2 JP 3790091 B2 JP3790091 B2 JP 3790091B2 JP 2000144221 A JP2000144221 A JP 2000144221A JP 2000144221 A JP2000144221 A JP 2000144221A JP 3790091 B2 JP3790091 B2 JP 3790091B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- dimensional
- fourier transform
- discrete fourier
- dft
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Input (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、1次元離散フーリエ変換を実行する1次元離散フーリエ変換回路に関し、特に、回路規模の大幅な削減を実現する1次元離散フーリエ変換回路に関する。
【0002】
ディジタル信号処理の分野では、1次元の離散フーリエ変換(Discrete Fourier Transform)や、1次元離散フーリエ変換の繰り返しで求めることができる2次元離散フーリエ変換を実行することが広く行われている。
【0003】
これから、1次元離散フーリエ変換を高速で実現する技術の構築が叫ばれている。一方、信号処理機能を一体化した集積型イメージセンサの要請も強く、これから1次元離散フーリエ変換を小さな回路規模で実現する技術の構築も叫ばれている。
【0004】
【従来の技術】
1次元離散フーリエ変換は、よく知られているように、膨大な数の複素乗算を実行する必要があり、計算時間が膨大なものとなる。
【0005】
1次元離散フーリエ変換を高速に実行する方法として、Cooley-TukeyによるFFT(Fast Fourier Transform)アルゴリズムが広く用いられている。
【0006】
このアルゴリズムでは、1次元離散フーリエ変換の演算対象となる回転因子の持つ性質(指数として性質と周期性の性質)に着目し、1次元離散フーリエ変換で必要とされる複素乗算を実行するにあたって、同一の複素乗算を括弧で括り出して合計の乗算回数を大幅に減らすことで高速処理を実現している。
【0007】
従来技術では、このCooley-TukeyによるFFTアルゴリズムや、それを改良したアルゴリズムに従って、1次元離散フーリエ変換するという構成を採っており、バタフライ演算と呼ばれる単純な演算ユニットの組み合わせを使って、そのアルゴリズムを実現するという構成を採っている。
【0008】
【発明が解決しようとする課題】
しかしながら、このような従来技術に従っていると、1次元離散フーリエ変換の回路規模が大きくなるという問題点がある。
【0009】
すなわち、従来技術で用いているバタフライ演算ユニットは、乗算回路と加算回路とで構成されており、乗算回路の回路規模は大きいことから、全体として回路規模がかなり大きくなってしまうという問題点がある。
【0010】
しかも、従来技術で用いているバタフライ演算ユニットは、演算対象となる信号を取り揃えた後に演算が実行できるようになることから、演算対象となる信号をいったん蓄えるメモリを用意する必要があるという問題点がある。
【0011】
これから、従来技術に従っていると、1次元離散フーリエ変換回路を集積化する集積型イメージセンサの要請があっても、それを実現できないという問題点がある。
【0012】
更に、従来技術に従っていると、処理速度を優先したいという要請や、回路規模の縮小を優先したいという要請というような別々の要請に対して、全く対処できないという問題点がある。
【0013】
一般的に、メーカは、製品を設計し製造していく場合、製品の仕様に応じて、その製品の基本構成を変えることを好まない。基本構成を変えれば、最初からやり直さなくてはならないし、蓄積したノウハウも無駄なものとなってしまうからである。
【0014】
1次元離散フーリエ変換を実現する回路に対しても、処理速度が優先される場合もあるし、回路規模の縮小が優先される場合もある。この場合、メーカとしては、回路の基本構成を変えずに対処できれば非常に有利である。
【0015】
しかし、従来技術に従っていると、回路の基本構成を変えずに、ある場合には処理速度を優先し、ある場合には回路規模の縮小を優先するという1次元離散フーリエ変換回路を実現することはできない。
【0016】
これらの問題点は、2次元離散フーリエ変換の回路にも共通することである。すなわち、2次元離散フーリエ変換は、先ず最初に、入力信号の行ごとに1次元離散フーリエ変換を実行し、続いて、その変換結果を列ごとに1次元離散フーリエ変換を実行することで求まることから、これらの問題点は、2次元離散フーリエ変換の回路にも共通している。
【0017】
本発明はかかる事情に鑑みてなされたものであって、回路規模の大幅な削減を実現する新たな1次元離散フーリエ変換回路の提供を目的とする。
【0018】
【課題を解決するための手段】
この目的を達成するために、本発明では、1次元離散フーリエ変換(1次元DFT)を実行するときに、変換対象信号をビットシリアル信号として入力し、その入力信号とそれが指す回転因子との積和値を算出して、その入力信号の桁に応じた桁合わせを行いつつ、その積和値を累積加算することで1次元フーリエ係数を求めるようにすることを基本的な構成としている。
【0019】
この基本的な構成を実現するにあたって、本発明では、フーリエ係数に対して0番から始まる通番を割り振って奇数番のフーリエ係数を抽出し、そのときの残りのフーリエ係数に対して0番から始まる通番を割り振って奇数番のフーリエ係数を抽出していくことを繰り返していくことで、1次元離散フーリエ変換を1次元奇数DFTに分解すると、それらの各1次元奇数DFTが同一の回転因子を使用することになるということに着目する。
【0020】
そして、本発明では、この1次元奇数DFTの性質を利用して、1次元奇数DFTに対応付けて設けられて、1次元奇数DFTで用いられる回転因子の値を記憶する記憶手段と、1次元奇数DFTに対応付けて設けられて、1次元奇数DFTで定義される変換対象信号をビットシリアル信号として入力するとともに、その定義に従って、入力信号と記憶手段との間を可変接続するスイッチ手段と、1次元奇数DFTに対応付けて設けられて、入力信号に応答して記憶手段から読み出される回転因子の総和を算出する算出手段と、フーリエ係数に対応付けて設けられて、入力信号の桁に応じた桁合わせを行いつつ、算出手段の算出する算出値を累積加算する加算手段と、スイッチ手段を制御することで、スイッチ手段の可変接続を切り換える制御手段とを備えるように構成する。
【0021】
このように構成される本発明では、変換対象信号がビットシリアル信号の形式で例えばMSBビットからの順番に従って1ビット入力されて保持されると、制御手段は、スイッチ手段の接続を所定の1つのものにセットし、これを受けて、スイッチ手段は、保持される入力信号のビット値を使って記憶手段をアクセスする。
【0022】
このアクセスに応答して、記憶手段は、入力信号のビット値に応じた回転因子の値を出力し、これを受けて、算出手段は、記憶手段から読み出される回転因子の総和を算出することで、スイッチ手段の接続の規定するフーリエ係数についての演算を実行する。そして、加算手段は、入力信号の桁に応じた桁合わせを行いつつ、その算出された総和値を累積加算することで、スイッチ手段の接続の規定するフーリエ係数についての演算を実行する。
【0023】
続いて、制御手段は、スイッチ手段の接続を別の所定のものにセットし、これを受けて、同様の処理が実行されていくことで、スイッチ手段の接続の規定するフーリエ係数についての演算を実行する。
【0024】
入力保持された1ビット分についての演算処理が終了すると、次の1ビットが入力されて保持され、これを受けて、上述した処理を実行し、この処理を最後のビットまで繰り返していくことで1次元離散フーリエ変換を実行する。
【0025】
このようにして、本発明によれば、乗算回路を用いずに、簡単な累積加算処理に従って1次元離散フーリエ変換を実行できるようになるとともに、同一の1次元奇数DFT配下のフーリエ係数を1つの回路で算出するように処理することから、従来技術に比べて回路規模を大幅に削減できるようになる。
【0034】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【0035】
図1に、本発明の集積型イメージセンサの一実施形態例を図示する。
【0036】
この実施形態例に従う本発明の集積型イメージセンサは、例えば256×256画素で構成されるCMOSイメージセンサ1と、CMOSイメージセンサ1の行位置を指定するスキャナ2と、スキャナ2の指定に応答してCMOSイメージセンサ1から読み出される1行分の画素値を並列的にA/D変換するとともに、その変換値をMSBビットから順番にビット単位で出力するADCアレイ3と、ADCアレイ3の出力する画素値を入力として2次元離散フーリエ変換を実行する2次元DFT回路4とを備える。
【0037】
この2次元DFT回路4は、1次元離散フーリエ変換を実行する1次元DFT回路5と、1次元DFT回路5の出力する1次元フーリエ係数を格納するメモリ6と、ADCアレイ3の出力する画素値を選択して1次元DFT回路5に入力するか、メモリ6に格納される1次元フーリエ係数を選択して1次元DFT回路5に入力する選択回路7とを備える。
【0038】
このように構成される2次元DFT回路4では、選択回路7は、先ず最初に、ADCアレイ3の出力する画素値を選択して1次元DFT回路5に入力することを選択する。
【0039】
この選択回路7の選択処理により、ADCアレイ3の出力する画素値のA/D変換値がビットシリアル信号の形でMSBビットから順番に1次元DFT回路5に入力され、後述することから分かるように、これによりスキャナ2の指定する1行分の画素値に対する1次元離散フーリエ変換が実行されて、その結果の1次元フーリエ係数(実部・虚部を持つ)がメモリ6に格納される。そして、この処理が全ての行が指定されるまで繰り返される。
【0040】
選択回路7は、続いて、メモリ6から読み出される1列分の1次元フーリエ係数を選択して1次元DFT回路5に入力することを選択する。
【0041】
この選択回路7の選択処理により、メモリ6に格納される1次元フーリエ係数がビットシリアル信号の形でMSBビットから順番に1次元DFT回路5に入力され、後述することから分かるように、これによりメモリ6から読み出される1列分の1次元フーリエ係数に対する1次元離散フーリエ変換が実行されて、その結果の2次元フーリエ係数がメモリ6に格納される。そして、この処理が全ての列が指定されるまで繰り返される。
【0042】
このようにして、CMOSイメージセンサ1の読み取る画素値の2次元フーリエ変換が実行されることになる。
【0043】
1次元DFT回路5は、入力信号をf(n)で表すならば、よく知られているように、図2に示すような行列演算を実行することで、
F(k)=Σn=0 N-1 f(n)WN nk
但し、WN =exp(−j2π/N)
という1次元離散フーリエ変換を実行する。ここで、WN は回転因子、Nはサンプル点数であり、図2では「N=8」を想定している。
【0044】
この1次元DFT回路5は、図3に示すように、Mビットである入力信号f(n)の各ビットに対する部分積は、各ビットが“1”を取るか“0”を取るかにより、係数WN nk そのものとなるか“0”のどちらかであることを使い、それらの部分積の総和(図中の部分積和:横方向に加算を行うことで求まる)を求め、それらの総和を桁の違いを考慮しつつ累積加算(縦方向に加算を行うことで求まる)することで、1次元離散フーリエ変換を実行するように処理する。
【0045】
ここで、1次元DFT回路5は、メモリ6に格納される1次元フーリエ係数を1次元離散フーリエ変換する場合には、虚数部を持つ1次元フーリエ係数を演算対象とすることになるが、実部と虚部とは独立に処理されるので、この基本的な処理構成に違いはない。
【0046】
これに対して、従来技術では、乗算回路を使って、「f(0)WN 0 」、「f(1)WN k 」、・・・・「f(N−1)WN (N-1)k」を求めて、それらの総和を算出することで、1次元離散フーリエ変換を実行するように処理している。
【0047】
本発明では、この1次元離散フーリエ変換方法を用いるにあたって、1次元奇数離散フーリエ変換(以下、奇数DFTと称することがある)を単位として、部分積和を求めて、それらの部分積和を桁の違いを考慮しつつ累積加算することで、1次元離散フーリエ変換を実行するという構成を採っている。
【0048】
すなわち、「N=2m 」である場合、N点DFTの
F(k)=Σn=0 N-1 f(n)WN nk
から、kが奇数の場合、
F(2t+1)=Σn=0 N-1 f(n)WN n(2t+1)
t=0,・・・,N/2−1
が導出される。これはN点奇数DFTと呼ばれている。
【0049】
一方、kが偶数の場合、
が導出される。
【0050】
ここで、「f2 (n)=f(n)+f(n+N/2)」とおくと、「WN 2nt =WN/2 nt」という関係があることから、このF(2t)は、
F(2t)=Σn=0 N/2-1 f2 (n)WN/2 nt
t=0,・・・,N/2−1
となる。
【0051】
このようにして、N点DFTは、N点奇数DFTとN/2点DFTとに分解され、図4に示すように、この分解処理を繰り返していくことで、N点DFTを奇数DFTに分解することができる。
【0052】
例えば、「N=8」の場合には、
▲1▼8点奇数DFT
F(2t+1)=Σp=0 7f(p)W8 p(2t+1)
t=0,1,2,3
▲2▼4点奇数DFT
F(2(2t+1))=Σp=0 3f2 (p)W8 p2(2t+1)
f2 (p)=f(p)+f(p+4)
t=0,1
▲3▼2点奇数DFT
F(4(2t+1))=Σp=0 1f3 (p)W8 p4(2t+1)
f3 (p)=f2 (p)+f2 (p+2)
t=0
▲4▼1点奇数DFT
F(0)=(f3 (0)+f3 (1))W8 0
という4つの奇数DFTに分解できる。
【0053】
この奇数DFTへの分解の意味する所は、図5に示すように、フーリエ係数F(k)を、同一の回転因子を使用するものにグループ分けすることにあると言える。
【0054】
図6に、本発明の1次元DFT回路5の一実施形態例を図示する。ここで、この実施形態例では、図3に示した「N=8」という1次元離散フーリエ変換を実行することを想定している。
【0055】
この実施形態例に従う本発明の1次元DFT回路5は、変換対象信号をビットシリアル信号として入力し、1次元離散フーリエ変換を実行するものであって、この処理を実現するために、8点奇数用ROM10と、4点奇数用ROM11と、2点奇数用ROM12と、1点奇数用ROM13と、8点奇数用スイッチャ14と、4点奇数用スイッチャ15と、2点奇数用加算回路16と、1点奇数用加算回路17と、4つの加算回路で構成される入力信号加算回路18と、8点奇数用アダーツリー回路19と、4点奇数用アダーツリー回路20と、2点奇数用アダー回路21と、マルチプレクサ22と、累積加算回路23-i(i=0〜7)と、デマルチプレクサ24とを備える。
【0056】
この8点奇数用ROM10は、8点奇数DFTの処理対象となる回転因子(W8 0〜W8 7)の値を記憶する。4点奇数用ROM11は、4点奇数DFTの処理対象となる回転因子(W8 0,W8 2,W8 4,W8 6)の値を記憶する。2点奇数用ROM12は、2点奇数DFTの処理対象となる回転因子(W8 0,W8 4)の値を記憶する。1点奇数用ROM13は、1点奇数DFTの処理対象となる回転因子(W8 0)の値を記憶する。
【0057】
8点奇数用スイッチャ14は、8点奇数DFTの処理対象となる信号f(p)(p=0〜7)のビット値を入力として、後述するコントローラ30の指示に従って、それらの入力信号と8点奇数用ROM10との間を可変接続する。
【0058】
4点奇数用スイッチャ15は、4点奇数DFTの処理対象となる信号f(p)(f(0)+f(4),f(1)+f(5),f(2)+f(6),f(3)+f(7))のビット値を入力として、後述するコントローラ30の指示に従って、それらの入力信号と4点奇数用ROM11との間を可変接続する。
【0059】
2点奇数用加算回路16は、2点奇数用スイッチャの代わりに用意されるものであり、入力信号加算回路18の出力する信号を受け取り、2点奇数DFTの処理対象となる信号f(p)(f(0)+f(4)+f(2)+f(6),f(1)+f(5)+f(3)+f(7))を算出して、それを2点奇数用ROM12に出力する。
【0060】
1点奇数用加算回路17は、1点奇数用スイッチャの代わりに用意されるものであり、2点奇数用加算回路16の出力する信号を受け取り、1点奇数DFTの処理対象となる信号f(p)(f(0)+f(4)+f(2)+f(6)+f(1)+f(5)+f(3)+f(7))を算出して、それを1点奇数用ROM13に出力する。
【0061】
入力信号加算回路18は、4点奇数DFTの処理対象となる信号f(p)(f(0)+f(4),f(1)+f(5),f(2)+f(6),f(3)+f(7))を算出する。
【0062】
8点奇数用アダーツリー回路19は、8点奇数用ROM10から読み出される回転因子の総和を算出する。4点奇数用アダーツリー回路20は、4点奇数用ROM11から読み出される回転因子の総和を算出する。2点奇数用アダー回路21は、2点奇数用ROM12から読み出される回転因子の総和を算出する。
【0063】
マルチプレクサ22は、後述するコントローラ30の指示に従って、8点奇数用アダーツリー回路19の算出値を選択して出力するか、4点奇数用アダーツリー回路20の算出値を選択して出力するか、2点奇数用アダー回路21の算出値を選択して出力するか、1点奇数用ROM13から読み出される値を選択して出力する。
【0064】
累積加算回路23-i(i=0〜7)は、フーリエ係数F(k)に対応付けて備えられ、加算回路25とバッファ26とシフタ27とで構成されて、シフタ27を使って、バッファ26の保持するデータを2倍しつつ、加算回路25を使って、シフタ27の出力データとマルチプレクサ22の出力データとを加算してバッファ26に保持させることで、桁の違いを考慮しつつ、マルチプレクサ22の出力データの累積加算値を算出する。
【0065】
デマルチプレクサ24は、後述するコントローラ30の指示に従って、マルチプレクサ22の出力データをいずれかの累積加算回路23-iに出力する。
【0066】
なお、この図6では省略してあるが、1次元離散フーリエ変換の対象となる信号f(p)(p=0〜7)は実部と虚部とを持つ。従って、8点奇数用スイッチャ14に入力される各信号は「1×2ビット(0か1の値を示す実部と虚部)」の大きさを持ち、4点奇数用スイッチャ15に入力される各信号は「2×2ビット(0か1か2の値を示す実部と虚部)」の大きさを持ち、2点奇数用加算回路16の加算結果は「3×2ビット(0〜4のいずれかの値を示す実部と虚部)」の大きさを持ち、1点奇数用加算回路17の加算結果は「4×2ビット(0〜8のいずれかの値を示す実部と虚部)」の大きさを持つ。
【0067】
図7及び図8に、図6に示す本発明の1次元DFT回路5の詳細な回路構成の一実施形態例を図示する。
【0068】
ここで、図7は、累積加算回路23-i/デマルチプレクサ24を除いた部分の構成を図示しており、図8は、マルチプレクサ22/累積加算回路23-i/デマルチプレクサ24を除いた部分の構成を図示している。また、30は上述したコントローラである。
【0069】
図8に示すように、8点奇数用スイッチャ14及び4点奇数用スイッチャ15は、CPで示される1つのスイッチ回路40とCRで示される複数のスイッチ回路41とのリング状接続が複数用意されることで構成されている。
【0070】
図9(a)に、CPで示されるスイッチ回路40の詳細な構成を図示するとともに、図9(b)に、CRで示されるスイッチ回路41の詳細な構成を図示する。
【0071】
この図9(a)に示すように、CPで示されるスイッチ回路40は、入力信号とROM10,11に接続されるデータバス上との間の接続・遮断を制御するスイッチング素子と、コントローラ30の出力するイニシャルクロックをプリセット端子に入力するとともに、Q端子の出力に応じて、そのスイッチング素子の開閉を制御するD型フリップフロップとで構成されている。
【0072】
このように構成されるCPで示されるスイッチ回路40は、コントローラ30の出力するイニシャルクロックに応じてプリセットされて“1”をラッチすると、その“1”のラッチ出力に従って、入力信号を8点奇数用ROM10や4点奇数用ROM11へ転送する。そして、コントローラ30の出力するクロック(8点奇数用スイッチャ14の場合にはCLK1、4点奇数用スイッチャ15の場合にはCLK2)に応じてD端子に入力される“0”をラッチすると、その“0”のラッチ出力に従って、入力信号と8点奇数用ROM10や4点奇数用ROM11との間の接続を遮断する。
【0073】
一方、図9(b)に示すように、CRで示されるスイッチ回路41は、入力信号とROM10,11に接続されるデータバス上との間の接続・遮断を制御するスイッチング素子と、コントローラ30の出力するイニシャルクロックをリセット端子に入力するとともに、Q端子の出力に応じて、そのスイッチング素子の開閉を制御するD型フリップフロップとで構成されている。
【0074】
このように構成されるCRで示されるスイッチ回路41は、コントローラ30の出力するイニシャルクロックに応じてリセットされて“0”をラッチすると、その“0”のラッチ出力に従って、入力信号と8点奇数用ROM10や4点奇数用ROM11との間の接続を遮断する。そして、コントローラ30の出力するクロック(8点奇数用スイッチャ14の場合にはCLK1、4点奇数用スイッチャ15の場合にはCLK2)に応じてD端子に入力される“1”をラッチすると、その“1”のラッチ出力に従って、入力信号を8点奇数用ROM10や4点奇数用ROM11へ転送する。
【0075】
なお、図7及び図8では、図面作成の便宜上、コントローラ30がイニシャルクロックを出力することについて、その記載を省略してある。
【0076】
図10に詳細を示すように、CPで示される1つのスイッチ回路40と、CRで示される複数のスイッチ回路41とのリング状接続は、前段のD型フリップフロップの出力を後段のD型フリップフロップの入力とする形態で接続されている。
【0077】
この接続形態により、リング状接続は、いずれか1つのスイッチ回路40,41が“1”を出力し、残りのスイッチ回路40,41が“1”を出力するように構成されるとともに、コントローラ30の出力するクロック(CLK1,CLK2)に従って、“1”を出力するスイッチ回路40,41が、その接続の順番に従って、イニシャルクロックによりプリセットされるスイッチ回路40から伝搬していくように構成されている。
【0078】
なお、図10では、説明の便宜上、入力信号の実部と虚部とを考慮しない配線形態を示したが、図9に示したように、実際には、実部虚部に対応する配線が備えられている。
【0079】
次に、8点奇数用ROM10及び4点奇数用ROM11について説明する。
【0080】
8点奇数用ROM10や4点奇数用ROM11は、「f(n)WN n 」の値を出力する処理を行う。
【0081】
ここで、入力信号f(n)は、
f(n)=fRe(n)+jfIm(n)
fRe(n):実部 fIm(n):虚部
であり、回転因子WN n は、
WN n =cos(2πn/N)−jsin(2πn/N)
である。
【0082】
したがって、「f(n)WN n 」は、
となる。
【0083】
すなわち、入力信号の実部fRe(n)のとり得る値が「0,1,2」、入力信号の虚部fIm(n)のとり得る値が「0,1,2」である場合で説明するならば、回転因子を記憶するROMは、
(1)「fRe(n)=0,fIm(n)=0」の場合には、
「実部=0,虚部=0」を出力
(2)「fRe(n)=0,fIm(n)=1」の場合には、
「実部=sin(2πn/N),虚部=cos(2πn/N)」を出力
(3)「fRe(n)=0,fIm(n)=2」の場合には、
「実部=2sin(2πn/N),虚部=2cos(2πn/N)」を出力
(4)「fRe(n)=1,fIm(n)=0」の場合には、
「実部=cos(2πn/N),虚部=−sin(2πn/N)」を出力
(5)「fRe(n)=1,fIm(n)=1」の場合には、
「実部=cos(2πn/N)+sin(2πn/N),
虚部=-sin(2πn/N)+cos(2πn/N)」を出力
(6)「fRe(n)=1,fIm(n)=2」の場合には、
「実部=cos(2πn/N)+2sin(2πn/N),
虚部=-sin(2πn/N)+2cos(2πn/N)」を出力
(7)「fRe(n)=2,fIm(n)=0」の場合には、
「実部=2cos(2πn/N), 虚部=−2sin(2πn/N)」を出力
(8)「fRe(n)=2,fIm(n)=1」の場合には、
「実部=2cos(2πn/N)+sin(2πn/N),
虚部=-2sin(2πn/N)+cos(2πn/N)」を出力
(9)「fRe(n)=2,fIm(n)=2」の場合には、
「実部=2cos(2πn/N)+2sin(2πn/N),
虚部=-2sin(2πn/N)+2cos(2πn/N)」を出力
するという処理を行う。
【0084】
この処理構成は、図11に示すように、実部と虚部との組み合わせを考慮した形で実部虚部のとり得る値を格納するメモリ域と、入力信号をデコードすることで、それらのメモリ域の値を選択出力するデコーダとを備えることで実現することができる。
【0085】
また、この処理構成は、図12や図13に示すように、メモリ域に格納される値を減らして加算回路や乗算回路を備えることで、図11に示すメモリ域と等価な値を記憶しているように見せることで実現することも可能である。
【0086】
図14及び図15に、コントローラ30の実行する処理の概要をフローチャートを使って図示する。
【0087】
次に、この図14及び図15に示すフローチャートを使って、このように構成される実施形態例の処理について詳細に説明する。なお、コントローラ30は、ソフトウェア的に処理を実行するのではなくて、ハードウェア的に処理を実行することでもよいが、その場合にも、このフローチャートで説明する処理内容を実行することになる。
【0088】
コントローラ30は、図14及び図15のフローチャートに示すように、先ず最初に、ステップ1で、フーリエ係数F(k)に対応付けて備えられている全累積加算回路23-i(i=0〜7)の持つバッファ26をクリアする。
【0089】
続いて、ステップ2で、図1の選択回路7を介して入力される入力信号のMSBビットを入力し、図示しない保持機構(フリップフロップ)を使って、それを保持する。
【0090】
続いて、ステップ3で、マルチプレクサ22が8点奇数用アダーツリー回路19を選択するようにセットし、続くステップ4で、デマルチプレクサ24がフーリエ係数F(1)用の累積加算回路23-1を選択するようにセットする。
【0091】
続いて、ステップ5で、イニシャルクロックを出力することで、フーリエ係数F(1)の累積加算値を算出して、それを累積加算回路23-1のバッファ26に保持させるように処理する。
【0092】
すなわち、イニシャルクロックを出力すると、8点奇数用アダーツリー回路19は、図8の回路構成に従って、「f(0)とW0 、f(1)とW1 、f(2)とW2 、f(3)とW3 、f(4)とW4 、f(5)とW5 、f(6)とW6 、f(7)とW7 」という接続を実現し、これにより、フーリエ係数F(1)の1ビット分の累積加算値が算出されて、累積加算回路23-1のバッファ26に保持されるのである。
【0093】
続いて、ステップ6で、変数iの値を“3”に設定し、続くステップ7で、デマルチプレクサ24がフーリエ係数F(i)用の累積加算回路23-iを選択するようにセットする。
【0094】
続いて、ステップ8で、クロックCLK1を出力することで、フーリエ係数F(i)の累積加算値を算出して、それを累積加算回路23-iのバッファ26に保持させるように処理する。
【0095】
続いて、ステップ9で、変数iの値を2つインクリメントし、続くステップ10で、変数iの値が“7”よりも大きくなったのか否かを判断して、大きくなっていないことを判断するときには、ステップ7に戻ることで、フーリエ係数F(3),F(5),F(7)の累積加算値を順番に算出して、それぞれ累積加算回路23-3,23-5,23-7のバッファ26に保持させるように処理する。
【0096】
すなわち、図16に示すように、イニシャルクロックを出力した後にクロックCLK1を1つ出力すると、8点奇数用アダーツリー回路19は、図8の回路構成に従って、「f(0)とW0 、f(1)とW3 、f(2)とW6 、f(3)とW1 、f(4)とW4 、f(5)とW7 、f(6)とW2 、f(7)とW5 」という接続を実現し、これにより、フーリエ係数F(3)の累積加算値が算出されて、累積加算回路23-3のバッファ26に保持されるのである。
【0097】
また、それに続けてクロックCLK1を1つ出力すると、8点奇数用アダーツリー回路19は、図8の回路構成に従って、「f(0)とW0 、f(1)とW5 、f(2)とW2 、f(3)とW7 、f(4)とW4 、f(5)とW1 、f(6)とW6 、f(7)とW3 」という接続を実現し、これにより、フーリエ係数F(5)の累積加算値が算出されて、累積加算回路23-5のバッファ26に保持されるのである。
【0098】
また、それに続けてクロックCLK1を1つ出力すると、8点奇数用アダーツリー回路19は、図8の回路構成に従って、「f(0)とW0 、f(1)とW7 、f(2)とW6 、f(3)とW5 、f(4)とW4 、f(5)とW3 、f(6)とW2 、f(7)とW1 」という接続を実現し、これにより、フーリエ係数F(7)の累積加算値が算出されて、累積加算回路23-7のバッファ26に保持されるのである。
【0099】
一方、ステップ10で、変数iの値が“7”よりも大きくなったことを判断するときには、ステップ11に進んで、マルチプレクサ22が4点奇数用アダーツリー回路20を選択するようにセットする。
【0100】
続いて、ステップ12(図15のフローチャート)で、デマルチプレクサ24がフーリエ係数F(2)用の累積加算回路23-2を選択するようにセットすることで、フーリエ係数F(2)の累積加算値を算出して、それを累積加算回路23-2のバッファ26に保持させるように処理する。
【0101】
すなわち、ステップ5で出力したイニシャルクロックにより、4点奇数用アダーツリー回路20は、図8の回路構成に従って、「(f(0) +f(4)) とW0 、(f(1) +f(5)) とW2 、(f(2) +f(6)) とW4 、(f(3) +f(7)) とW6 」という接続を実現し、これにより、フーリエ係数F(2)の累積加算値が算出されて、累積加算回路23-2のバッファ26に保持されるのである。
【0102】
続いて、ステップ13で、デマルチプレクサ24がフーリエ係数F(6)用の累積加算回路23-6を選択するようにセットし、続くステップ14で、クロックCLK2を出力することで、フーリエ係数F(6)の累積加算値を算出して、それを累積加算回路23-6のバッファ26に保持させるように処理する。
【0103】
すなわち、図17に示すように、イニシャルクロックを出力した後にクロックCLK2を1つ出力すると、4点奇数用アダーツリー回路20は、図8の回路構成に従って、「(f(0) +f(4)) とW0 、(f(1) +f(5)) とW6 、(f(2) +f(6)) とW4 、(f(3) +f(7)) とW2 」という接続を実現し、これにより、フーリエ係数F(6)の累積加算値が算出されて、累積加算回路23-6のバッファ26に保持されるのである。
【0104】
続いて、ステップ15で、マルチプレクサ22が2点奇数用アダー回路21を選択するようにセットし、続くステップ16で、デマルチプレクサ24がフーリエ係数F(4)用の累積加算回路23-4を選択するようにセットすることで、フーリエ係数F(4)の累積加算値を算出して、それを累積加算回路23-4のバッファ26に保持させるように処理する。
【0105】
すなわち、この選択処理により、図8の回路構成に従って、「(f(0) +f(4)+f(2)+f(6)) とW0 、(f(1) +f(5)+f(3)+f(7)) とW4 」という接続が有効となって、これにより、フーリエ係数F(4)の累積加算値が算出されて、累積加算回路23-4のバッファ26に保持されるのである。
【0106】
続いて、ステップ17で、マルチプレクサ22が1点奇数用ROM13を選択するようにセットし、続くステップ18で、デマルチプレクサ24がフーリエ係数F(0)用の累積加算回路23-0を選択するようにセットすることで、フーリエ係数F(0)の累積加算値を算出して、それを累積加算回路23-0のバッファ26に保持させるように処理する。
【0107】
すなわち、この選択処理により、図8の回路構成に従って、「(f(0) +f(4)+f(2)+f(6)+f(1)+f(5)+f(3)+f(7)) とW0 」という接続が有効となって、これにより、フーリエ係数F(0)の累積加算値が算出されて、累積加算回路23-0のバッファ26に保持されるのである。
【0108】
続いて、ステップ19で、入力信号の全ビットに対して処理を行ったのか否かを判断して、全ビットに対して処理を行ったことを判断するときには、処理を終了し、全ビットに対して処理を行っていないことを判断するときには、ステップ20に進んで、図1の選択回路7を介して入力される入力信号の次のビットを入力し、図示しない保持機構(フリップフロップ)を使って、それを保持してから、ステップ3(図14のフローチャート)に戻る。
【0109】
このようにして、コントローラ30は、入力信号の各ビットに対して、図18に示すタイムチャートの処理を繰り返していくことで、フーリエ係数F(k)を求めていくように処理するのである。
【0110】
図19に、本発明の1次元DFT回路5の他の実施形態例を図示する。
【0111】
図18のタイムチャートから分かるように、8点奇数用スイッチャ14の処理対象となるフーリエ係数F(k)は、全フーリエ係数の半分の個数である。
【0112】
これから、この図19の実施形態例に従う1次元DFT回路5では、図20のタイムチャートに示すように、8点奇数用スイッチャ14を使ってフーリエ係数F(1),F(3),F(5),F(7)を求めている間に、4点奇数用スイッチャ15を使ってフーリエ係数F(2),F(6)を求め、それに続けて、2点奇数用加算回路16を使うことで求まるフーリエ係数F(4)を求め、それに続けて、1点奇数用加算回路17を使うことで求まるフーリエ係数F(0)を求めるという構成を採ることで、図7の実施形態例の半分の処理時間でもって、フーリエ係数F(k)を算出することを実現している。
【0113】
この構成を採るときにあって、図19の実施形態例に従う1次元DFT回路5では、4点奇数用ROM11と2点奇数用ROM12と1点奇数用ROM13とを共通化する形で図中のROM50として備えるとともに、8点奇数用アダーツリー回路19及び4点奇数用アダーツリー回路20に代わるものとして、ROM50から読み出される回転因子の総和を算出するアダーツリー回路51を備える構成を採っている。
【0114】
そして、4点奇数用スイッチャ15を使ってフーリエ係数F(2),F(6)を求めるときには、そのROM50に格納される4点奇数用ROM11の部分を選択出力し、2点奇数用加算回路16を使ってフーリエ係数F(4)を求めるときには、そのROM50に格納される2点奇数用ROM12の部分を選択出力し、1点奇数用加算回路17を使ってフーリエ係数F(0)を求めるときには、そのROM50に格納される1点奇数用ROM13の部分を選択出力するスイッチ回路52を備える構成を採っている。
【0115】
これにより、回転因子を格納するROMの共通利用が図られて、高速処理を実現しつつ、少ないROM資源でもって本発明の1次元DFT回路5を実現できるようになる。
【0116】
なお、図19では省略しているが、フーリエ係数F(1),F(3),F(5),F(7)に対応付けて用意される累積加算回路23-i(i=1,3,5,7)を選択するためのデマルチプレクサと、フーリエ係数F(0),F(2),F(4),F(6)に対応付けて用意される累積加算回路23-i(i=0,2,4,6)を選択するためのデマルチプレクサとは別々のものが用意されることになる。
また、本発明に関連する1次元離散フーリエ変換回路として、回路規模よりも処理速度を優先しなければならないときには、フーリエ係数に対応付けて設けられて、フーリエ係数を求める1次元DFTで用いられる回転因子の値を記憶する記憶手段と、フーリエ係数に対応付けて設けられて、フーリエ係数を求める1次元DFTで定義される変換対象信号をビットシリアル信号として入力するとともに、その定義に従って、入力信号と記憶手段との間を固定接続する結線手段と、フーリエ係数に対応付けて設けられて、入力信号に応答して記憶手段から読み出される回転因子の総和を算出する算出手段と、フーリエ係数に対応付けて設けられて、入力信号の桁に応じた桁合わせを行いつつ、算出手段の算出する算出値を累積加算する加算手段とを備えるように構成する。
このように構成される本発明に関連する1次元離散フーリエ変換回路では、変換対象信号がビットシリアル信号の形式で例えばMSBビットからの順番に従って1ビット入力されて保持されると、フーリエ係数に対応付けて設けられる結線手段は、保持される入力信号のビット値を使って記憶手段をアクセスする。
このアクセスに応答して、フーリエ係数に対応付けて設けられる記憶手段は、入力信号のビット値に応じた回転因子の値を出力し、これを受けて、フーリエ係数に対応付けて設けられる算出手段は、記憶手段から読み出される回転因子の総和を算出することで、入力される1ビット分の演算を実行する。そして、フーリエ係数に対応付けて設けられる加算手段は、入力信号の桁に応じた桁合わせを行いつつ、その算出された総和値を累積加算することで、入力される1ビット分の演算を実行する。
続いて、次の1ビットが入力されて保持されると、上述した処理を実行し、この処理を最後のビットまで繰り返していくことで1次元離散フーリエ変換を実行する。
このようにして、本発明に関連する1次元離散フーリエ変換回路によれば、回路規模よりも処理速度を優先しなければならないときには、回路規模を優先するときの基本的な回路構成に従いつつ、1次元離散フーリエ変換を実行できるようになることから、メーカは、回路の基本構成を変えずに、ある場合には処理速度を優先し、ある場合には回路規模の縮小を優先するという1次元離散フーリエ変換回路を実現できるようになる。
【0117】
図21に、この本発明に関連する1次元離散フーリエ変換回路の構成例を図示する。
この図に示すように、この本発明に関連する1次元離散フーリエ変換回路では、スイッチャを無くし、全てのフーリエ係数F(k)を並列的に求めるという構成を採ることになる。
【0118】
すなわち、回転因子の値を記憶するROMと、ROMから読み出される回転因子の総和を算出するアダーツリー回路と、アダーツリー回路の算出する総和値の累積加算値を算出する累積加算回路とをフーリエ係数に対応付けて用意して、それらの間を固定接続することで、各フーリエ係数F(k)を並列的に求めるという構成を採る。
【0119】
ここで、図21では、図面作成の便宜上、「N=4」という1次元離散フーリエ変換を想定している。
上述したように、本発明の1次元離散フーリエ変換回路では、変換対象信号をビットシリアル信号として入力して1次元離散フーリエ変換を実行する。
従って、本発明の1次元離散フーリエ変換回路は、並列変換機能を持つとともに、ビット単位で出力可能な機能を持つA/D変換手段との組み合わせが可能になる。そして、本発明の1次元離散フーリエ変換回路は、回路規模の大幅な削減を可能にする。
これから、指定されるアドレスの指す1行分又は1列分の画素値を一括出力するイメージセンサ手段と、イメージセンサ手段の出力する画素値をディジタル信号に並列的に変換するとともに、その変換値をビット単位で出力するA/D変換手段と、A/D変換手段の出力するディジタル信号を変換対象信号とする本発明の1次元離散フーリエ変換回路とを組み合わせることで、集積型イメージセンサを実現できるようになる。
【0120】
図示実施形態例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施形態例に示した数値はあくまで一例に過ぎないものである。
【0121】
【発明の効果】
以上説明したように、本発明によれば、乗算回路を用いずに、簡単な累積加算処理に従って1次元離散フーリエ変換を実行できるようになるとともに、同一の1次元奇数DFT配下のフーリエ係数を1つの回路で算出するように処理することから、従来技術に比べて回路規模を大幅に削減できるようになる。
【図面の簡単な説明】
【図1】本発明の集積型イメージセンサの一実施形態例である。
【図2】1次元離散フーリエ変換の説明図である。
【図3】本発明の1次元離散フーリエ変換の説明図である。
【図4】1次元離散フーリエ変換の分解の説明図である。
【図5】1次元離散フーリエ変換の分解の説明図である。
【図6】本発明の1次元離散フーリエ変換回路の一実施形態例である。
【図7】本発明の1次元離散フーリエ変換回路の一実施形態例である。
【図8】本発明の1次元離散フーリエ変換回路の一実施形態例である。
【図9】スイッチ回路の一実施形態例である。
【図10】スイッチャの一実施形態例である。
【図11】ROMの一実施形態例である。
【図12】ROMの他の実施形態例である。
【図13】ROMの他の実施形態例である。
【図14】コントローラの実行する処理のフローチャートである。
【図15】コントローラの実行する処理のフローチャートである。
【図16】本発明の1次元離散フーリエ変換の説明図である。
【図17】本発明の1次元離散フーリエ変換の説明図である。
【図18】本発明の1次元離散フーリエ変換のタイムチャートである。
【図19】本発明の1次元離散フーリエ変換回路の他の実施形態例である。
【図20】本発明の1次元離散フーリエ変換のタイムチャートである。
【図21】 本発明に関連する1次元離散フーリエ変換回路の構成図である。
【符号の説明】
1 CMOSイメージセンサ
2 スキャナ
3 ADCアレイ
4 2次元DFT回路
5 1次元DFT回路
6 メモリ
7 選択回路
Claims (4)
- 1次元奇数DFTに対応付けて設けられて、該1次元奇数DFTで用いられる回転因子の値を記憶する記憶手段と、
1次元奇数DFTに対応付けて設けられて、該1次元奇数DFTで定義される変換対象信号をビットシリアル信号として入力するとともに、該定義に従って、該入力信号と上記記憶手段との間を可変接続するスイッチ手段と、
1次元奇数DFTに対応付けて設けられて、上記入力信号に応答して上記記憶手段から読み出される回転因子の総和を算出する算出手段と、
フーリエ係数に対応付けて設けられて、上記入力信号の桁に応じた桁合わせを行いつつ、上記算出手段の算出する算出値を累積加算する加算手段と、
上記スイッチ手段を制御することで、上記可変接続を切り換える制御手段とを備えることを、
特徴とする1次元離散フーリエ変換回路。 - 請求項1に記載の1次元離散フーリエ変換回路において、
最上位の1次元奇数DFTに関する変換処理と、それ以外の1次元奇数DFTに関する変換処理とを並列的に実行するように構成されることを、
特徴とする1次元離散フーリエ変換回路。 - 請求項2に記載の1次元離散フーリエ変換回路において、
最上位以外の1次元奇数DFTに対応付けて設けられる上記記憶手段を共通化して使用するように構成されることを、
特徴とする1次元離散フーリエ変換回路。 - 請求項1ないし3のいずれか1項に記載の1次元離散フーリエ変換回路において、
上記記憶手段は、回転因子の基本値を格納する手段と、該基本値を使って必要とされる回転因子の値を算出する手段とを備えることを、
特徴とする1次元離散フーリエ変換回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000144221A JP3790091B2 (ja) | 2000-05-17 | 2000-05-17 | 1次元離散フーリエ変換回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000144221A JP3790091B2 (ja) | 2000-05-17 | 2000-05-17 | 1次元離散フーリエ変換回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001325246A JP2001325246A (ja) | 2001-11-22 |
JP3790091B2 true JP3790091B2 (ja) | 2006-06-28 |
Family
ID=18650911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000144221A Expired - Fee Related JP3790091B2 (ja) | 2000-05-17 | 2000-05-17 | 1次元離散フーリエ変換回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3790091B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5724739B2 (ja) | 2011-08-09 | 2015-05-27 | 富士通株式会社 | 離散フーリエ演算装置、無線通信装置及び離散フーリエ演算方法 |
-
2000
- 2000-05-17 JP JP2000144221A patent/JP3790091B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001325246A (ja) | 2001-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6073154A (en) | Computing multidimensional DFTs in FPGA | |
US4821224A (en) | Method and apparatus for processing multi-dimensional data to obtain a Fourier transform | |
US9177357B2 (en) | Method for creating coefficient table and image scaling processor | |
WO1998043180A1 (en) | Memory address generator for an fft | |
US4899301A (en) | Signal processor for rapidly calculating a predetermined calculation a plurality of times to typically carrying out FFT or inverse FFT | |
US7062523B1 (en) | Method for efficiently computing a fast fourier transform | |
US20100191791A1 (en) | Method and apparatus for evaluation of multi-dimensional discrete fourier transforms | |
US6189021B1 (en) | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations | |
JPH09153029A (ja) | 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法 | |
JPH06243161A (ja) | 離散余弦変換回路 | |
US5029079A (en) | Apparatus and method for flexible control of digital signal processing devices | |
JP2662124B2 (ja) | 高速フーリエ変換における信号シーケンス発生方法、装置およびシステム並びに高速フーリエ変換処理装置 | |
JP3790091B2 (ja) | 1次元離散フーリエ変換回路 | |
US6728742B1 (en) | Data storage patterns for fast fourier transforms | |
Boo et al. | VLSI implementation of an edge detector based on Sobel operator | |
KR100701648B1 (ko) | 이산 푸리에 변환 계산 | |
EP0511606B1 (en) | Parallel interpolator for high speed digital image enlargement | |
Dick | Computing the discrete fourier transform on FPGA based systolic arrays | |
Boussakta et al. | Number theoretic transforms and their applications in image processing | |
KR100444729B1 (ko) | 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법 | |
Lau et al. | A FPGA-based library for on-line signal processing | |
JP2003244190A (ja) | データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ | |
KR100193385B1 (ko) | 단일화된 시스톨릭어레이 구조에 의한 dct/dst/dht의 수행 방법 및 그 장치 | |
JP4248027B2 (ja) | データ要素の系列を変換する装置 | |
Sedukhin | A new systolic architecture for pipeline prime factor DFT-algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050803 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050907 |
|
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: 20060328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060330 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |