(57)【特許請求の範囲】
【請求項１】
１次元奇数ＤＦＴに対応付けて設けられて、該１次元奇数ＤＦＴで用いられる回転因子の値を記憶する記憶手段と、
１次元奇数ＤＦＴに対応付けて設けられて、該１次元奇数ＤＦＴで定義される変換対象信号をビットシリアル信号として入力するとともに、該定義に従って、該入力信号と上記記憶手段との間を可変接続するスイッチ手段と、
１次元奇数ＤＦＴに対応付けて設けられて、上記入力信号に応答して上記記憶手段から読み出される回転因子の総和を算出する算出手段と、
フーリエ係数に対応付けて設けられて、上記入力信号の桁に応じた桁合わせを行いつつ、上記算出手段の算出する算出値を累積加算する加算手段と、
上記スイッチ手段を制御することで、上記可変接続を切り換える制御手段とを備えることを、
特徴とする１次元離散フーリエ変換回路。
【請求項２】
請求項１に記載の１次元離散フーリエ変換回路において、
最上位の１次元奇数ＤＦＴに関する変換処理と、それ以外の１次元奇数ＤＦＴに関する変換処理とを並列的に実行するように構成されることを、
特徴とする１次元離散フーリエ変換回路。
【請求項３】
請求項２に記載の１次元離散フーリエ変換回路において、
最上位以外の１次元奇数ＤＦＴに対応付けて設けられる上記記憶手段を共通化して使用するように構成されることを、
特徴とする１次元離散フーリエ変換回路。
【請求項４】
請求項１ないし３のいずれか１項に記載の１次元離散フーリエ変換回路において、
上記記憶手段は、回転因子の基本値を格納する手段と、該基本値を使って必要とされる回転因子の値を算出する手段とを備えることを、
特徴とする１次元離散フーリエ変換回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１次元離散フーリエ変換を実行する１次元離散フーリエ変換回路に関し、特に、回路規模の大幅な削減を実現する１次元離散フーリエ変換回路に関する。
【０００２】
ディジタル信号処理の分野では、１次元の離散フーリエ変換(Discrete Fourier Transform)や、１次元離散フーリエ変換の繰り返しで求めることができる２次元離散フーリエ変換を実行することが広く行われている。
【０００３】
これから、１次元離散フーリエ変換を高速で実現する技術の構築が叫ばれている。一方、信号処理機能を一体化した集積型イメージセンサの要請も強く、これから１次元離散フーリエ変換を小さな回路規模で実現する技術の構築も叫ばれている。
【０００４】
【従来の技術】
１次元離散フーリエ変換は、よく知られているように、膨大な数の複素乗算を実行する必要があり、計算時間が膨大なものとなる。
【０００５】
１次元離散フーリエ変換を高速に実行する方法として、Ｃooley-ＴukeyによるＦＦＴ(Fast Fourier Transform)アルゴリズムが広く用いられている。
【０００６】
このアルゴリズムでは、１次元離散フーリエ変換の演算対象となる回転因子の持つ性質（指数として性質と周期性の性質）に着目し、１次元離散フーリエ変換で必要とされる複素乗算を実行するにあたって、同一の複素乗算を括弧で括り出して合計の乗算回数を大幅に減らすことで高速処理を実現している。
【０００７】
従来技術では、このＣooley-ＴukeyによるＦＦＴアルゴリズムや、それを改良したアルゴリズムに従って、１次元離散フーリエ変換するという構成を採っており、バタフライ演算と呼ばれる単純な演算ユニットの組み合わせを使って、そのアルゴリズムを実現するという構成を採っている。
【０００８】
【発明が解決しようとする課題】
しかしながら、このような従来技術に従っていると、１次元離散フーリエ変換の回路規模が大きくなるという問題点がある。
【０００９】
すなわち、従来技術で用いているバタフライ演算ユニットは、乗算回路と加算回路とで構成されており、乗算回路の回路規模は大きいことから、全体として回路規模がかなり大きくなってしまうという問題点がある。
【００１０】
しかも、従来技術で用いているバタフライ演算ユニットは、演算対象となる信号を取り揃えた後に演算が実行できるようになることから、演算対象となる信号をいったん蓄えるメモリを用意する必要があるという問題点がある。
【００１１】
これから、従来技術に従っていると、１次元離散フーリエ変換回路を集積化する集積型イメージセンサの要請があっても、それを実現できないという問題点がある。
【００１２】
更に、従来技術に従っていると、処理速度を優先したいという要請や、回路規模の縮小を優先したいという要請というような別々の要請に対して、全く対処できないという問題点がある。
【００１３】
一般的に、メーカは、製品を設計し製造していく場合、製品の仕様に応じて、その製品の基本構成を変えることを好まない。基本構成を変えれば、最初からやり直さなくてはならないし、蓄積したノウハウも無駄なものとなってしまうからである。
【００１４】
１次元離散フーリエ変換を実現する回路に対しても、処理速度が優先される場合もあるし、回路規模の縮小が優先される場合もある。この場合、メーカとしては、回路の基本構成を変えずに対処できれば非常に有利である。
【００１５】
しかし、従来技術に従っていると、回路の基本構成を変えずに、ある場合には処理速度を優先し、ある場合には回路規模の縮小を優先するという１次元離散フーリエ変換回路を実現することはできない。
【００１６】
これらの問題点は、２次元離散フーリエ変換の回路にも共通することである。すなわち、２次元離散フーリエ変換は、先ず最初に、入力信号の行ごとに１次元離散フーリエ変換を実行し、続いて、その変換結果を列ごとに１次元離散フーリエ変換を実行することで求まることから、これらの問題点は、２次元離散フーリエ変換の回路にも共通している。
【００１７】
本発明はかかる事情に鑑みてなされたものであって、回路規模の大幅な削減を実現する新たな１次元離散フーリエ変換回路の提供を目的とする。
【００１８】
【課題を解決するための手段】
この目的を達成するために、本発明では、１次元離散フーリエ変換（１次元ＤＦＴ）を実行するときに、変換対象信号をビットシリアル信号として入力し、その入力信号とそれが指す回転因子との積和値を算出して、その入力信号の桁に応じた桁合わせを行いつつ、その積和値を累積加算することで１次元フーリエ係数を求めるようにすることを基本的な構成としている。
【００１９】
この基本的な構成を実現するにあたって、本発明では、フーリエ係数に対して０番から始まる通番を割り振って奇数番のフーリエ係数を抽出し、そのときの残りのフーリエ係数に対して０番から始まる通番を割り振って奇数番のフーリエ係数を抽出していくことを繰り返していくことで、１次元離散フーリエ変換を１次元奇数ＤＦＴに分解すると、それらの各１次元奇数ＤＦＴが同一の回転因子を使用することになるということに着目する。
【００２０】
そして、本発明では、この１次元奇数ＤＦＴの性質を利用して、１次元奇数ＤＦＴに対応付けて設けられて、１次元奇数ＤＦＴで用いられる回転因子の値を記憶する記憶手段と、１次元奇数ＤＦＴに対応付けて設けられて、１次元奇数ＤＦＴで定義される変換対象信号をビットシリアル信号として入力するとともに、その定義に従って、入力信号と記憶手段との間を可変接続するスイッチ手段と、１次元奇数ＤＦＴに対応付けて設けられて、入力信号に応答して記憶手段から読み出される回転因子の総和を算出する算出手段と、フーリエ係数に対応付けて設けられて、入力信号の桁に応じた桁合わせを行いつつ、算出手段の算出する算出値を累積加算する加算手段と、スイッチ手段を制御することで、スイッチ手段の可変接続を切り換える制御手段とを備えるように構成する。
【００２１】
このように構成される本発明では、変換対象信号がビットシリアル信号の形式で例えばＭＳＢビットからの順番に従って１ビット入力されて保持されると、制御手段は、スイッチ手段の接続を所定の１つのものにセットし、これを受けて、スイッチ手段は、保持される入力信号のビット値を使って記憶手段をアクセスする。
【００２２】
このアクセスに応答して、記憶手段は、入力信号のビット値に応じた回転因子の値を出力し、これを受けて、算出手段は、記憶手段から読み出される回転因子の総和を算出することで、スイッチ手段の接続の規定するフーリエ係数についての演算を実行する。そして、加算手段は、入力信号の桁に応じた桁合わせを行いつつ、その算出された総和値を累積加算することで、スイッチ手段の接続の規定するフーリエ係数についての演算を実行する。
【００２３】
続いて、制御手段は、スイッチ手段の接続を別の所定のものにセットし、これを受けて、同様の処理が実行されていくことで、スイッチ手段の接続の規定するフーリエ係数についての演算を実行する。
【００２４】
入力保持された１ビット分についての演算処理が終了すると、次の１ビットが入力されて保持され、これを受けて、上述した処理を実行し、この処理を最後のビットまで繰り返していくことで１次元離散フーリエ変換を実行する。
【００２５】
このようにして、本発明によれば、乗算回路を用いずに、簡単な累積加算処理に従って１次元離散フーリエ変換を実行できるようになるとともに、同一の１次元奇数ＤＦＴ配下のフーリエ係数を１つの回路で算出するように処理することから、従来技術に比べて回路規模を大幅に削減できるようになる。
【００３４】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００３５】
図１に、本発明の集積型イメージセンサの一実施形態例を図示する。
【００３６】
この実施形態例に従う本発明の集積型イメージセンサは、例えば２５６×２５６画素で構成されるＣＭＯＳイメージセンサ１と、ＣＭＯＳイメージセンサ１の行位置を指定するスキャナ２と、スキャナ２の指定に応答してＣＭＯＳイメージセンサ１から読み出される１行分の画素値を並列的にＡ／Ｄ変換するとともに、その変換値をＭＳＢビットから順番にビット単位で出力するＡＤＣアレイ３と、ＡＤＣアレイ３の出力する画素値を入力として２次元離散フーリエ変換を実行する２次元ＤＦＴ回路４とを備える。
【００３７】
この２次元ＤＦＴ回路４は、１次元離散フーリエ変換を実行する１次元ＤＦＴ回路５と、１次元ＤＦＴ回路５の出力する１次元フーリエ係数を格納するメモリ６と、ＡＤＣアレイ３の出力する画素値を選択して１次元ＤＦＴ回路５に入力するか、メモリ６に格納される１次元フーリエ係数を選択して１次元ＤＦＴ回路５に入力する選択回路７とを備える。
【００３８】
このように構成される２次元ＤＦＴ回路４では、選択回路７は、先ず最初に、ＡＤＣアレイ３の出力する画素値を選択して１次元ＤＦＴ回路５に入力することを選択する。
【００３９】
この選択回路７の選択処理により、ＡＤＣアレイ３の出力する画素値のＡ／Ｄ変換値がビットシリアル信号の形でＭＳＢビットから順番に１次元ＤＦＴ回路５に入力され、後述することから分かるように、これによりスキャナ２の指定する１行分の画素値に対する１次元離散フーリエ変換が実行されて、その結果の１次元フーリエ係数（実部・虚部を持つ）がメモリ６に格納される。そして、この処理が全ての行が指定されるまで繰り返される。
【００４０】
選択回路７は、続いて、メモリ６から読み出される１列分の１次元フーリエ係数を選択して１次元ＤＦＴ回路５に入力することを選択する。
【００４１】
この選択回路７の選択処理により、メモリ６に格納される１次元フーリエ係数がビットシリアル信号の形でＭＳＢビットから順番に１次元ＤＦＴ回路５に入力され、後述することから分かるように、これによりメモリ６から読み出される１列分の１次元フーリエ係数に対する１次元離散フーリエ変換が実行されて、その結果の２次元フーリエ係数がメモリ６に格納される。そして、この処理が全ての列が指定されるまで繰り返される。
【００４２】
このようにして、ＣＭＯＳイメージセンサ１の読み取る画素値の２次元フーリエ変換が実行されることになる。
【００４３】
１次元ＤＦＴ回路５は、入力信号をｆ（ｎ）で表すならば、よく知られているように、図２に示すような行列演算を実行することで、
Ｆ（ｋ）＝Σn=0 N-1 ｆ（ｎ）ＷN nk
但し、ＷN ＝ｅｘｐ（−ｊ２π／Ｎ）
という１次元離散フーリエ変換を実行する。ここで、ＷN は回転因子、Ｎはサンプル点数であり、図２では「Ｎ＝８」を想定している。
【００４４】
この１次元ＤＦＴ回路５は、図３に示すように、Ｍビットである入力信号ｆ（ｎ）の各ビットに対する部分積は、各ビットが“１”を取るか“０”を取るかにより、係数ＷN nk  そのものとなるか“０”のどちらかであることを使い、それらの部分積の総和（図中の部分積和：横方向に加算を行うことで求まる）を求め、それらの総和を桁の違いを考慮しつつ累積加算（縦方向に加算を行うことで求まる）することで、１次元離散フーリエ変換を実行するように処理する。
【００４５】
ここで、１次元ＤＦＴ回路５は、メモリ６に格納される１次元フーリエ係数を１次元離散フーリエ変換する場合には、虚数部を持つ１次元フーリエ係数を演算対象とすることになるが、実部と虚部とは独立に処理されるので、この基本的な処理構成に違いはない。
【００４６】
これに対して、従来技術では、乗算回路を使って、「ｆ（０）ＷN 0 」、「ｆ（１）ＷN k 」、・・・・「ｆ（Ｎ−１）ＷN (N-1)k」を求めて、それらの総和を算出することで、１次元離散フーリエ変換を実行するように処理している。
【００４７】
本発明では、この１次元離散フーリエ変換方法を用いるにあたって、１次元奇数離散フーリエ変換（以下、奇数ＤＦＴと称することがある）を単位として、部分積和を求めて、それらの部分積和を桁の違いを考慮しつつ累積加算することで、１次元離散フーリエ変換を実行するという構成を採っている。
【００４８】
すなわち、「Ｎ＝２m 」である場合、Ｎ点ＤＦＴの
Ｆ（ｋ）＝Σn=0 N-1 ｆ（ｎ）ＷN nk
から、ｋが奇数の場合、
Ｆ（２ｔ＋１）＝Σn=0 N-1 ｆ（ｎ）ＷN n(2t+1) 
ｔ＝０，・・・，Ｎ／２−１
が導出される。これはＮ点奇数ＤＦＴと呼ばれている。
【００４９】
一方、ｋが偶数の場合、
0003790091.tif 000002
が導出される。
【００５０】
ここで、「ｆ2 （ｎ）＝ｆ（ｎ）＋ｆ（ｎ＋Ｎ／２）」とおくと、「ＷN 2nt ＝ＷN/2 nt」という関係があることから、このＦ（２ｔ）は、
Ｆ（２ｔ）＝Σn=0 N/2-1 ｆ2 （ｎ）ＷN/2 nt
ｔ＝０，・・・，Ｎ／２−１
となる。
【００５１】
このようにして、Ｎ点ＤＦＴは、Ｎ点奇数ＤＦＴとＮ／２点ＤＦＴとに分解され、図４に示すように、この分解処理を繰り返していくことで、Ｎ点ＤＦＴを奇数ＤＦＴに分解することができる。
【００５２】
例えば、「Ｎ＝８」の場合には、
▲１▼８点奇数ＤＦＴ
Ｆ（２ｔ＋１）＝Σp=07ｆ（ｐ）Ｗ8 p(2t+1) 
ｔ＝０，１，２，３
▲２▼４点奇数ＤＦＴ
Ｆ（２（２ｔ＋１））＝Σp=03ｆ2 （ｐ）Ｗ8 p2(2t+1)
ｆ2 （ｐ）＝ｆ（ｐ）＋ｆ（ｐ＋４）
ｔ＝０，１
▲３▼２点奇数ＤＦＴ
Ｆ（４（２ｔ＋１））＝Σp=01ｆ3 （ｐ）Ｗ8 p4(2t+1)
ｆ3 （ｐ）＝ｆ2 （ｐ）＋ｆ2 （ｐ＋２）
ｔ＝０
▲４▼１点奇数ＤＦＴ
Ｆ（０）＝（ｆ3 （０）＋ｆ3 （１））Ｗ8 0
という４つの奇数ＤＦＴに分解できる。
【００５３】
この奇数ＤＦＴへの分解の意味する所は、図５に示すように、フーリエ係数Ｆ（ｋ）を、同一の回転因子を使用するものにグループ分けすることにあると言える。
【００５４】
図６に、本発明の１次元ＤＦＴ回路５の一実施形態例を図示する。ここで、この実施形態例では、図３に示した「Ｎ＝８」という１次元離散フーリエ変換を実行することを想定している。
【００５５】
この実施形態例に従う本発明の１次元ＤＦＴ回路５は、変換対象信号をビットシリアル信号として入力し、１次元離散フーリエ変換を実行するものであって、この処理を実現するために、８点奇数用ＲＯＭ１０と、４点奇数用ＲＯＭ１１と、２点奇数用ＲＯＭ１２と、１点奇数用ＲＯＭ１３と、８点奇数用スイッチャ１４と、４点奇数用スイッチャ１５と、２点奇数用加算回路１６と、１点奇数用加算回路１７と、４つの加算回路で構成される入力信号加算回路１８と、８点奇数用アダーツリー回路１９と、４点奇数用アダーツリー回路２０と、２点奇数用アダー回路２１と、マルチプレクサ２２と、累積加算回路２３-i（ｉ＝０〜７）と、デマルチプレクサ２４とを備える。
【００５６】
この８点奇数用ＲＯＭ１０は、８点奇数ＤＦＴの処理対象となる回転因子（Ｗ80〜Ｗ87）の値を記憶する。４点奇数用ＲＯＭ１１は、４点奇数ＤＦＴの処理対象となる回転因子（Ｗ80，Ｗ82，Ｗ84，Ｗ86）の値を記憶する。２点奇数用ＲＯＭ１２は、２点奇数ＤＦＴの処理対象となる回転因子（Ｗ80，Ｗ84）の値を記憶する。１点奇数用ＲＯＭ１３は、１点奇数ＤＦＴの処理対象となる回転因子（Ｗ80）の値を記憶する。
【００５７】
８点奇数用スイッチャ１４は、８点奇数ＤＦＴの処理対象となる信号ｆ（ｐ)(ｐ＝０〜７）のビット値を入力として、後述するコントローラ３０の指示に従って、それらの入力信号と８点奇数用ＲＯＭ１０との間を可変接続する。
【００５８】
４点奇数用スイッチャ１５は、４点奇数ＤＦＴの処理対象となる信号ｆ（ｐ)(f(0)+f(4),f(1)+f(5),f(2)+f(6),f(3)+f(7))のビット値を入力として、後述するコントローラ３０の指示に従って、それらの入力信号と４点奇数用ＲＯＭ１１との間を可変接続する。
【００５９】
２点奇数用加算回路１６は、２点奇数用スイッチャの代わりに用意されるものであり、入力信号加算回路１８の出力する信号を受け取り、２点奇数ＤＦＴの処理対象となる信号ｆ（ｐ)(f(0)+f(4)+f(2)+f(6),f(1)+f(5)+f(3)+f(7))を算出して、それを２点奇数用ＲＯＭ１２に出力する。
【００６０】
１点奇数用加算回路１７は、１点奇数用スイッチャの代わりに用意されるものであり、２点奇数用加算回路１６の出力する信号を受け取り、１点奇数ＤＦＴの処理対象となる信号ｆ（ｐ)(f(0)+f(4)+f(2)+f(6)+f(1)+f(5)+f(3)+f(7))を算出して、それを１点奇数用ＲＯＭ１３に出力する。
【００６１】
入力信号加算回路１８は、４点奇数ＤＦＴの処理対象となる信号ｆ（ｐ)(f(0)+f(4),f(1)+f(5),f(2)+f(6),f(3)+f(7))を算出する。
【００６２】
８点奇数用アダーツリー回路１９は、８点奇数用ＲＯＭ１０から読み出される回転因子の総和を算出する。４点奇数用アダーツリー回路２０は、４点奇数用ＲＯＭ１１から読み出される回転因子の総和を算出する。２点奇数用アダー回路２１は、２点奇数用ＲＯＭ１２から読み出される回転因子の総和を算出する。
【００６３】
マルチプレクサ２２は、後述するコントローラ３０の指示に従って、８点奇数用アダーツリー回路１９の算出値を選択して出力するか、４点奇数用アダーツリー回路２０の算出値を選択して出力するか、２点奇数用アダー回路２１の算出値を選択して出力するか、１点奇数用ＲＯＭ１３から読み出される値を選択して出力する。
【００６４】
累積加算回路２３-i（ｉ＝０〜７）は、フーリエ係数Ｆ（ｋ）に対応付けて備えられ、加算回路２５とバッファ２６とシフタ２７とで構成されて、シフタ２７を使って、バッファ２６の保持するデータを２倍しつつ、加算回路２５を使って、シフタ２７の出力データとマルチプレクサ２２の出力データとを加算してバッファ２６に保持させることで、桁の違いを考慮しつつ、マルチプレクサ２２の出力データの累積加算値を算出する。
【００６５】
デマルチプレクサ２４は、後述するコントローラ３０の指示に従って、マルチプレクサ２２の出力データをいずれかの累積加算回路２３-iに出力する。
【００６６】
なお、この図６では省略してあるが、１次元離散フーリエ変換の対象となる信号ｆ（ｐ)(ｐ＝０〜７）は実部と虚部とを持つ。従って、８点奇数用スイッチャ１４に入力される各信号は「１×２ビット（０か１の値を示す実部と虚部）」の大きさを持ち、４点奇数用スイッチャ１５に入力される各信号は「２×２ビット（０か１か２の値を示す実部と虚部）」の大きさを持ち、２点奇数用加算回路１６の加算結果は「３×２ビット（０〜４のいずれかの値を示す実部と虚部）」の大きさを持ち、１点奇数用加算回路１７の加算結果は「４×２ビット（０〜８のいずれかの値を示す実部と虚部）」の大きさを持つ。
【００６７】
図７及び図８に、図６に示す本発明の１次元ＤＦＴ回路５の詳細な回路構成の一実施形態例を図示する。
【００６８】
ここで、図７は、累積加算回路２３-i／デマルチプレクサ２４を除いた部分の構成を図示しており、図８は、マルチプレクサ２２／累積加算回路２３-i／デマルチプレクサ２４を除いた部分の構成を図示している。また、３０は上述したコントローラである。
【００６９】
図８に示すように、８点奇数用スイッチャ１４及び４点奇数用スイッチャ１５は、ＣＰで示される１つのスイッチ回路４０とＣＲで示される複数のスイッチ回路４１とのリング状接続が複数用意されることで構成されている。
【００７０】
図９（ａ）に、ＣＰで示されるスイッチ回路４０の詳細な構成を図示するとともに、図９（ｂ）に、ＣＲで示されるスイッチ回路４１の詳細な構成を図示する。
【００７１】
この図９（ａ）に示すように、ＣＰで示されるスイッチ回路４０は、入力信号とＲＯＭ１０，１１に接続されるデータバス上との間の接続・遮断を制御するスイッチング素子と、コントローラ３０の出力するイニシャルクロックをプリセット端子に入力するとともに、Ｑ端子の出力に応じて、そのスイッチング素子の開閉を制御するＤ型フリップフロップとで構成されている。
【００７２】
このように構成されるＣＰで示されるスイッチ回路４０は、コントローラ３０の出力するイニシャルクロックに応じてプリセットされて“１”をラッチすると、その“１”のラッチ出力に従って、入力信号を８点奇数用ＲＯＭ１０や４点奇数用ＲＯＭ１１へ転送する。そして、コントローラ３０の出力するクロック（８点奇数用スイッチャ１４の場合にはＣＬＫ１、４点奇数用スイッチャ１５の場合にはＣＬＫ２）に応じてＤ端子に入力される“０”をラッチすると、その“０”のラッチ出力に従って、入力信号と８点奇数用ＲＯＭ１０や４点奇数用ＲＯＭ１１との間の接続を遮断する。
【００７３】
一方、図９（ｂ）に示すように、ＣＲで示されるスイッチ回路４１は、入力信号とＲＯＭ１０，１１に接続されるデータバス上との間の接続・遮断を制御するスイッチング素子と、コントローラ３０の出力するイニシャルクロックをリセット端子に入力するとともに、Ｑ端子の出力に応じて、そのスイッチング素子の開閉を制御するＤ型フリップフロップとで構成されている。
【００７４】
このように構成されるＣＲで示されるスイッチ回路４１は、コントローラ３０の出力するイニシャルクロックに応じてリセットされて“０”をラッチすると、その“０”のラッチ出力に従って、入力信号と８点奇数用ＲＯＭ１０や４点奇数用ＲＯＭ１１との間の接続を遮断する。そして、コントローラ３０の出力するクロック（８点奇数用スイッチャ１４の場合にはＣＬＫ１、４点奇数用スイッチャ１５の場合にはＣＬＫ２）に応じてＤ端子に入力される“１”をラッチすると、その“１”のラッチ出力に従って、入力信号を８点奇数用ＲＯＭ１０や４点奇数用ＲＯＭ１１へ転送する。
【００７５】
なお、図７及び図８では、図面作成の便宜上、コントローラ３０がイニシャルクロックを出力することについて、その記載を省略してある。
【００７６】
図１０に詳細を示すように、ＣＰで示される１つのスイッチ回路４０と、ＣＲで示される複数のスイッチ回路４１とのリング状接続は、前段のＤ型フリップフロップの出力を後段のＤ型フリップフロップの入力とする形態で接続されている。
【００７７】
この接続形態により、リング状接続は、いずれか１つのスイッチ回路４０，４１が“１”を出力し、残りのスイッチ回路４０，４１が“１”を出力するように構成されるとともに、コントローラ３０の出力するクロック（ＣＬＫ１，ＣＬＫ２）に従って、“１”を出力するスイッチ回路４０，４１が、その接続の順番に従って、イニシャルクロックによりプリセットされるスイッチ回路４０から伝搬していくように構成されている。
【００７８】
なお、図１０では、説明の便宜上、入力信号の実部と虚部とを考慮しない配線形態を示したが、図９に示したように、実際には、実部虚部に対応する配線が備えられている。
【００７９】
次に、８点奇数用ＲＯＭ１０及び４点奇数用ＲＯＭ１１について説明する。
【００８０】
８点奇数用ＲＯＭ１０や４点奇数用ＲＯＭ１１は、「ｆ（ｎ）ＷN n 」の値を出力する処理を行う。
【００８１】
ここで、入力信号ｆ（ｎ）は、
ｆ（ｎ）＝ｆRe（ｎ）＋ｊｆIm（ｎ）
ｆRe（ｎ）：実部    ｆIm（ｎ）：虚部
であり、回転因子ＷN n は、
ＷN n ＝ｃｏｓ（２πｎ／Ｎ）−ｊｓｉｎ（２πｎ／Ｎ）
である。
【００８２】
したがって、「ｆ（ｎ）ＷN n 」は、
0003790091.tif 000003
となる。
【００８３】
すなわち、入力信号の実部ｆRe（ｎ）のとり得る値が「０，１，２」、入力信号の虚部ｆIm（ｎ）のとり得る値が「０，１，２」である場合で説明するならば、回転因子を記憶するＲＯＭは、
（１）「ｆRe（ｎ）＝０，ｆIm（ｎ）＝０」の場合には、
「実部＝０，虚部＝０」を出力
（２）「ｆRe（ｎ）＝０，ｆIm（ｎ）＝１」の場合には、
「実部＝sin(２πn/N)，虚部＝cos(２πn/N)」を出力
（３）「ｆRe（ｎ）＝０，ｆIm（ｎ）＝２」の場合には、
「実部＝２sin(２πn/N)，虚部＝２cos(２πn/N)」を出力
（４）「ｆRe（ｎ）＝１，ｆIm（ｎ）＝０」の場合には、
「実部＝cos(２πn/N)，虚部＝−sin(２πn/N)」を出力
（５）「ｆRe（ｎ）＝１，ｆIm（ｎ）＝１」の場合には、
「実部＝cos(２πn/N)+sin(2πn/N)，
虚部＝-sin(2πn/N)+cos(2πn/N)」を出力
（６）「ｆRe（ｎ）＝１，ｆIm（ｎ）＝２」の場合には、
「実部＝cos(２πn/N)+2sin(２πn/N)，
虚部＝-sin(2πn/N)+2cos(２πn/N)」を出力
（７）「ｆRe（ｎ）＝２，ｆIm（ｎ）＝０」の場合には、
「実部＝2cos(2πn/N), 虚部＝−2sin(2πn/N)」を出力
（８）「ｆRe（ｎ）＝２，ｆIm（ｎ）＝１」の場合には、
「実部＝2cos(2πn/N)+sin(2πn/N)，
虚部＝-2sin(２πn/N)+cos(2πn/N)」を出力
（９）「ｆRe（ｎ）＝２，ｆIm（ｎ）＝２」の場合には、
「実部＝2cos(2πn/N)+2sin(２πn/N)，
虚部＝-2sin(２πn/N)+2cos(２πn/N)」を出力
するという処理を行う。
【００８４】
この処理構成は、図１１に示すように、実部と虚部との組み合わせを考慮した形で実部虚部のとり得る値を格納するメモリ域と、入力信号をデコードすることで、それらのメモリ域の値を選択出力するデコーダとを備えることで実現することができる。
【００８５】
また、この処理構成は、図１２や図１３に示すように、メモリ域に格納される値を減らして加算回路や乗算回路を備えることで、図１１に示すメモリ域と等価な値を記憶しているように見せることで実現することも可能である。
【００８６】
図１４及び図１５に、コントローラ３０の実行する処理の概要をフローチャートを使って図示する。
【００８７】
次に、この図１４及び図１５に示すフローチャートを使って、このように構成される実施形態例の処理について詳細に説明する。なお、コントローラ３０は、ソフトウェア的に処理を実行するのではなくて、ハードウェア的に処理を実行することでもよいが、その場合にも、このフローチャートで説明する処理内容を実行することになる。
【００８８】
コントローラ３０は、図１４及び図１５のフローチャートに示すように、先ず最初に、ステップ１で、フーリエ係数Ｆ（ｋ）に対応付けて備えられている全累積加算回路２３-i（ｉ＝０〜７）の持つバッファ２６をクリアする。
【００８９】
続いて、ステップ２で、図１の選択回路７を介して入力される入力信号のＭＳＢビットを入力し、図示しない保持機構（フリップフロップ）を使って、それを保持する。
【００９０】
続いて、ステップ３で、マルチプレクサ２２が８点奇数用アダーツリー回路１９を選択するようにセットし、続くステップ４で、デマルチプレクサ２４がフーリエ係数Ｆ（１）用の累積加算回路２３-1を選択するようにセットする。
【００９１】
続いて、ステップ５で、イニシャルクロックを出力することで、フーリエ係数Ｆ（１）の累積加算値を算出して、それを累積加算回路２３-1のバッファ２６に保持させるように処理する。
【００９２】
すなわち、イニシャルクロックを出力すると、８点奇数用アダーツリー回路１９は、図８の回路構成に従って、「f(0)とＷ0 、f(1)とＷ1 、f(2)とＷ2 、f(3)とＷ3 、f(4)とＷ4 、f(5)とＷ5 、f(6)とＷ6 、f(7)とＷ7 」という接続を実現し、これにより、フーリエ係数Ｆ（１）の１ビット分の累積加算値が算出されて、累積加算回路２３-1のバッファ２６に保持されるのである。
【００９３】
続いて、ステップ６で、変数ｉの値を“３”に設定し、続くステップ７で、デマルチプレクサ２４がフーリエ係数Ｆ（ｉ）用の累積加算回路２３-iを選択するようにセットする。
【００９４】
続いて、ステップ８で、クロックＣＬＫ１を出力することで、フーリエ係数Ｆ（ｉ）の累積加算値を算出して、それを累積加算回路２３-iのバッファ２６に保持させるように処理する。
【００９５】
続いて、ステップ９で、変数ｉの値を２つインクリメントし、続くステップ１０で、変数ｉの値が“７”よりも大きくなったのか否かを判断して、大きくなっていないことを判断するときには、ステップ７に戻ることで、フーリエ係数Ｆ（３),Ｆ（５),Ｆ（７）の累積加算値を順番に算出して、それぞれ累積加算回路２３-3，２３-5，２３-7のバッファ２６に保持させるように処理する。
【００９６】
すなわち、図１６に示すように、イニシャルクロックを出力した後にクロックＣＬＫ１を１つ出力すると、８点奇数用アダーツリー回路１９は、図８の回路構成に従って、「f(0)とＷ0 、f(1)とＷ3 、f(2)とＷ6 、f(3)とＷ1 、f(4)とＷ4 、f(5)とＷ7 、f(6)とＷ2 、f(7)とＷ5 」という接続を実現し、これにより、フーリエ係数Ｆ（３）の累積加算値が算出されて、累積加算回路２３-3のバッファ２６に保持されるのである。
【００９７】
また、それに続けてクロックＣＬＫ１を１つ出力すると、８点奇数用アダーツリー回路１９は、図８の回路構成に従って、「f(0)とＷ0 、f(1)とＷ5 、f(2)とＷ2 、f(3)とＷ7 、f(4)とＷ4 、f(5)とＷ1 、f(6)とＷ6 、f(7)とＷ3 」という接続を実現し、これにより、フーリエ係数Ｆ（５）の累積加算値が算出されて、累積加算回路２３-5のバッファ２６に保持されるのである。
【００９８】
また、それに続けてクロックＣＬＫ１を１つ出力すると、８点奇数用アダーツリー回路１９は、図８の回路構成に従って、「f(0)とＷ0 、f(1)とＷ7 、f(2)とＷ6 、f(3)とＷ5 、f(4)とＷ4 、f(5)とＷ3 、f(6)とＷ2 、f(7)とＷ1 」という接続を実現し、これにより、フーリエ係数Ｆ（７）の累積加算値が算出されて、累積加算回路２３-7のバッファ２６に保持されるのである。
【００９９】
一方、ステップ１０で、変数ｉの値が“７”よりも大きくなったことを判断するときには、ステップ１１に進んで、マルチプレクサ２２が４点奇数用アダーツリー回路２０を選択するようにセットする。
【０１００】
続いて、ステップ１２（図１５のフローチャート）で、デマルチプレクサ２４がフーリエ係数Ｆ（２）用の累積加算回路２３-2を選択するようにセットすることで、フーリエ係数Ｆ（２）の累積加算値を算出して、それを累積加算回路２３-2のバッファ２６に保持させるように処理する。
【０１０１】
すなわち、ステップ５で出力したイニシャルクロックにより、４点奇数用アダーツリー回路２０は、図８の回路構成に従って、「(f(0) ＋f(4)) とＷ0 、(f(1) ＋f(5)) とＷ2 、(f(2) ＋f(6)) とＷ4 、(f(3) ＋f(7)) とＷ6 」という接続を実現し、これにより、フーリエ係数Ｆ（２）の累積加算値が算出されて、累積加算回路２３-2のバッファ２６に保持されるのである。
【０１０２】
続いて、ステップ１３で、デマルチプレクサ２４がフーリエ係数Ｆ（６）用の累積加算回路２３-6を選択するようにセットし、続くステップ１４で、クロックＣＬＫ２を出力することで、フーリエ係数Ｆ（６）の累積加算値を算出して、それを累積加算回路２３-6のバッファ２６に保持させるように処理する。
【０１０３】
すなわち、図１７に示すように、イニシャルクロックを出力した後にクロックＣＬＫ２を１つ出力すると、４点奇数用アダーツリー回路２０は、図８の回路構成に従って、「(f(0) ＋f(4)) とＷ0 、(f(1) ＋f(5)) とＷ6 、(f(2) ＋f(6)) とＷ4 、(f(3) ＋f(7)) とＷ2 」という接続を実現し、これにより、フーリエ係数Ｆ（６）の累積加算値が算出されて、累積加算回路２３-6のバッファ２６に保持されるのである。
【０１０４】
続いて、ステップ１５で、マルチプレクサ２２が２点奇数用アダー回路２１を選択するようにセットし、続くステップ１６で、デマルチプレクサ２４がフーリエ係数Ｆ（４）用の累積加算回路２３-4を選択するようにセットすることで、フーリエ係数Ｆ（４）の累積加算値を算出して、それを累積加算回路２３-4のバッファ２６に保持させるように処理する。
【０１０５】
すなわち、この選択処理により、図８の回路構成に従って、「(f(0) ＋f(4)＋f(2)＋f(6)) とＷ0 、(f(1) ＋f(5)＋f(3)＋f(7)) とＷ4 」という接続が有効となって、これにより、フーリエ係数Ｆ（４）の累積加算値が算出されて、累積加算回路２３-4のバッファ２６に保持されるのである。
【０１０６】
続いて、ステップ１７で、マルチプレクサ２２が１点奇数用ＲＯＭ１３を選択するようにセットし、続くステップ１８で、デマルチプレクサ２４がフーリエ係数Ｆ（０）用の累積加算回路２３-0を選択するようにセットすることで、フーリエ係数Ｆ（０）の累積加算値を算出して、それを累積加算回路２３-0のバッファ２６に保持させるように処理する。
【０１０７】
すなわち、この選択処理により、図８の回路構成に従って、「(f(0) ＋f(4)＋f(2)＋f(6)＋f(1)＋f(5)＋f(3)＋f(7)) とＷ0 」という接続が有効となって、これにより、フーリエ係数Ｆ（０）の累積加算値が算出されて、累積加算回路２３-0のバッファ２６に保持されるのである。
【０１０８】
続いて、ステップ１９で、入力信号の全ビットに対して処理を行ったのか否かを判断して、全ビットに対して処理を行ったことを判断するときには、処理を終了し、全ビットに対して処理を行っていないことを判断するときには、ステップ２０に進んで、図１の選択回路７を介して入力される入力信号の次のビットを入力し、図示しない保持機構（フリップフロップ）を使って、それを保持してから、ステップ３（図１４のフローチャート）に戻る。
【０１０９】
このようにして、コントローラ３０は、入力信号の各ビットに対して、図１８に示すタイムチャートの処理を繰り返していくことで、フーリエ係数Ｆ（ｋ）を求めていくように処理するのである。
【０１１０】
図１９に、本発明の１次元ＤＦＴ回路５の他の実施形態例を図示する。
【０１１１】
図１８のタイムチャートから分かるように、８点奇数用スイッチャ１４の処理対象となるフーリエ係数Ｆ（ｋ）は、全フーリエ係数の半分の個数である。
【０１１２】
これから、この図１９の実施形態例に従う１次元ＤＦＴ回路５では、図２０のタイムチャートに示すように、８点奇数用スイッチャ１４を使ってフーリエ係数Ｆ（１),Ｆ（３),Ｆ（５),Ｆ（７）を求めている間に、４点奇数用スイッチャ１５を使ってフーリエ係数Ｆ（２),Ｆ（６）を求め、それに続けて、２点奇数用加算回路１６を使うことで求まるフーリエ係数Ｆ（４）を求め、それに続けて、１点奇数用加算回路１７を使うことで求まるフーリエ係数Ｆ（０）を求めるという構成を採ることで、図７の実施形態例の半分の処理時間でもって、フーリエ係数Ｆ（ｋ）を算出することを実現している。
【０１１３】
この構成を採るときにあって、図１９の実施形態例に従う１次元ＤＦＴ回路５では、４点奇数用ＲＯＭ１１と２点奇数用ＲＯＭ１２と１点奇数用ＲＯＭ１３とを共通化する形で図中のＲＯＭ５０として備えるとともに、８点奇数用アダーツリー回路１９及び４点奇数用アダーツリー回路２０に代わるものとして、ＲＯＭ５０から読み出される回転因子の総和を算出するアダーツリー回路５１を備える構成を採っている。
【０１１４】
そして、４点奇数用スイッチャ１５を使ってフーリエ係数Ｆ（２),Ｆ（６）を求めるときには、そのＲＯＭ５０に格納される４点奇数用ＲＯＭ１１の部分を選択出力し、２点奇数用加算回路１６を使ってフーリエ係数Ｆ（４）を求めるときには、そのＲＯＭ５０に格納される２点奇数用ＲＯＭ１２の部分を選択出力し、１点奇数用加算回路１７を使ってフーリエ係数Ｆ（０）を求めるときには、そのＲＯＭ５０に格納される１点奇数用ＲＯＭ１３の部分を選択出力するスイッチ回路５２を備える構成を採っている。
【０１１５】
これにより、回転因子を格納するＲＯＭの共通利用が図られて、高速処理を実現しつつ、少ないＲＯＭ資源でもって本発明の１次元ＤＦＴ回路５を実現できるようになる。
【０１１６】
なお、図１９では省略しているが、フーリエ係数Ｆ（１),Ｆ（３),Ｆ（５),Ｆ（７）に対応付けて用意される累積加算回路２３-i（ｉ＝1,3,5,7)を選択するためのデマルチプレクサと、フーリエ係数Ｆ（０),Ｆ（２),Ｆ（４),Ｆ（６）に対応付けて用意される累積加算回路２３-i（ｉ＝0,2,4,6)を選択するためのデマルチプレクサとは別々のものが用意されることになる。
また、本発明に関連する１次元離散フーリエ変換回路として、回路規模よりも処理速度を優先しなければならないときには、フーリエ係数に対応付けて設けられて、フーリエ係数を求める１次元ＤＦＴで用いられる回転因子の値を記憶する記憶手段と、フーリエ係数に対応付けて設けられて、フーリエ係数を求める１次元ＤＦＴで定義される変換対象信号をビットシリアル信号として入力するとともに、その定義に従って、入力信号と記憶手段との間を固定接続する結線手段と、フーリエ係数に対応付けて設けられて、入力信号に応答して記憶手段から読み出される回転因子の総和を算出する算出手段と、フーリエ係数に対応付けて設けられて、入力信号の桁に応じた桁合わせを行いつつ、算出手段の算出する算出値を累積加算する加算手段とを備えるように構成する。
このように構成される本発明に関連する１次元離散フーリエ変換回路では、変換対象信号がビットシリアル信号の形式で例えばＭＳＢビットからの順番に従って１ビット入力されて保持されると、フーリエ係数に対応付けて設けられる結線手段は、保持される入力信号のビット値を使って記憶手段をアクセスする。
このアクセスに応答して、フーリエ係数に対応付けて設けられる記憶手段は、入力信号のビット値に応じた回転因子の値を出力し、これを受けて、フーリエ係数に対応付けて設けられる算出手段は、記憶手段から読み出される回転因子の総和を算出することで、入力される１ビット分の演算を実行する。そして、フーリエ係数に対応付けて設けられる加算手段は、入力信号の桁に応じた桁合わせを行いつつ、その算出された総和値を累積加算することで、入力される１ビット分の演算を実行する。
続いて、次の１ビットが入力されて保持されると、上述した処理を実行し、この処理を最後のビットまで繰り返していくことで１次元離散フーリエ変換を実行する。
このようにして、本発明に関連する１次元離散フーリエ変換回路によれば、回路規模よりも処理速度を優先しなければならないときには、回路規模を優先するときの基本的な回路構成に従いつつ、１次元離散フーリエ変換を実行できるようになることから、メーカは、回路の基本構成を変えずに、ある場合には処理速度を優先し、ある場合には回路規模の縮小を優先するという１次元離散フーリエ変換回路を実現できるようになる。
【０１１７】
図２１に、この本発明に関連する１次元離散フーリエ変換回路の構成例を図示する。
この図に示すように、この本発明に関連する１次元離散フーリエ変換回路では、スイッチャを無くし、全てのフーリエ係数Ｆ（ｋ）を並列的に求めるという構成を採ることになる。
【０１１８】
すなわち、回転因子の値を記憶するＲＯＭと、ＲＯＭから読み出される回転因子の総和を算出するアダーツリー回路と、アダーツリー回路の算出する総和値の累積加算値を算出する累積加算回路とをフーリエ係数に対応付けて用意して、それらの間を固定接続することで、各フーリエ係数Ｆ（ｋ）を並列的に求めるという構成を採る。
【０１１９】
ここで、図２１では、図面作成の便宜上、「Ｎ＝４」という１次元離散フーリエ変換を想定している。
上述したように、本発明の１次元離散フーリエ変換回路では、変換対象信号をビットシリアル信号として入力して１次元離散フーリエ変換を実行する。
従って、本発明の１次元離散フーリエ変換回路は、並列変換機能を持つとともに、ビット単位で出力可能な機能を持つＡ／Ｄ変換手段との組み合わせが可能になる。そして、本発明の１次元離散フーリエ変換回路は、回路規模の大幅な削減を可能にする。
これから、指定されるアドレスの指す１行分又は１列分の画素値を一括出力するイメージセンサ手段と、イメージセンサ手段の出力する画素値をディジタル信号に並列的に変換するとともに、その変換値をビット単位で出力するＡ／Ｄ変換手段と、Ａ／Ｄ変換手段の出力するディジタル信号を変換対象信号とする本発明の１次元離散フーリエ変換回路とを組み合わせることで、集積型イメージセンサを実現できるようになる。
【０１２０】
図示実施形態例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施形態例に示した数値はあくまで一例に過ぎないものである。
【０１２１】
【発明の効果】
以上説明したように、本発明によれば、乗算回路を用いずに、簡単な累積加算処理に従って１次元離散フーリエ変換を実行できるようになるとともに、同一の１次元奇数ＤＦＴ配下のフーリエ係数を１つの回路で算出するように処理することから、従来技術に比べて回路規模を大幅に削減できるようになる。
【図面の簡単な説明】
【図１】本発明の集積型イメージセンサの一実施形態例である。
【図２】１次元離散フーリエ変換の説明図である。
【図３】本発明の１次元離散フーリエ変換の説明図である。
【図４】１次元離散フーリエ変換の分解の説明図である。
【図５】１次元離散フーリエ変換の分解の説明図である。
【図６】本発明の１次元離散フーリエ変換回路の一実施形態例である。
【図７】本発明の１次元離散フーリエ変換回路の一実施形態例である。
【図８】本発明の１次元離散フーリエ変換回路の一実施形態例である。
【図９】スイッチ回路の一実施形態例である。
【図１０】スイッチャの一実施形態例である。
【図１１】ＲＯＭの一実施形態例である。
【図１２】ＲＯＭの他の実施形態例である。
【図１３】ＲＯＭの他の実施形態例である。
【図１４】コントローラの実行する処理のフローチャートである。
【図１５】コントローラの実行する処理のフローチャートである。
【図１６】本発明の１次元離散フーリエ変換の説明図である。
【図１７】本発明の１次元離散フーリエ変換の説明図である。
【図１８】本発明の１次元離散フーリエ変換のタイムチャートである。
【図１９】本発明の１次元離散フーリエ変換回路の他の実施形態例である。
【図２０】本発明の１次元離散フーリエ変換のタイムチャートである。
【図２１】  本発明に関連する１次元離散フーリエ変換回路の構成図である。
【符号の説明】
１  ＣＭＯＳイメージセンサ
２  スキャナ
３  ＡＤＣアレイ
４  ２次元ＤＦＴ回路
５  １次元ＤＦＴ回路
６  メモリ
７  選択回路
【図１】
0003790091.tif 000004
【図２】
0003790091.tif 000005
【図３】
0003790091.tif 000006
【図４】
0003790091.tif 000007
【図５】
0003790091.tif 000008
【図６】
0003790091.tif 000009
【図７】
0003790091.tif 000010
【図８】
0003790091.tif 000011
【図９】
0003790091.tif 000012
【図１０】
0003790091.tif 000013
【図１１】
0003790091.tif 000014
【図１２】
0003790091.tif 000015
【図１３】
0003790091.tif 000016
【図１４】
0003790091.tif 000017
【図１５】
0003790091.tif 000018
【図１６】
0003790091.tif 000019
【図１７】
0003790091.tif 000020
【図１８】
0003790091.tif 000021
【図１９】
0003790091.tif 000022
【図２０】
0003790091.tif 000023
【図２１】
0003790091.tif 000024