JP2011060177A - 高速フーリエ変換演算装置 - Google Patents
高速フーリエ変換演算装置 Download PDFInfo
- Publication number
- JP2011060177A JP2011060177A JP2009211576A JP2009211576A JP2011060177A JP 2011060177 A JP2011060177 A JP 2011060177A JP 2009211576 A JP2009211576 A JP 2009211576A JP 2009211576 A JP2009211576 A JP 2009211576A JP 2011060177 A JP2011060177 A JP 2011060177A
- Authority
- JP
- Japan
- Prior art keywords
- shift amount
- fourier transform
- fast fourier
- bit shift
- unit
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
【解決手段】入力データを取り込む入力線1と、複数のバタフライ演算部5a〜5nの少なくとも1つに接続されたビットシフト部6a〜6nと、最終段のビットシフト部6nに接続されて演算結果を出力する出力線4と、ビットシフト部におけるビットシフト量を制御するシフト量制御部とを備えている。複数のバタフライ演算部5a〜5nの少なくとも1つは、自身の桁あふれを検出する機能を有する。シフト量制御部3は、複数のバタフライ演算部5a〜5nのいずれかで桁あふれが検出された場合に、ビットシフト量を調整する。
【選択図】図1
Description
ただし、上記特許文献1では、バタフライ演算における桁あふれを監視しておらず、ビットシフトを行う位置を固定している。
以下、図面を参照しながら、この発明の実施の形態1について説明する。
図1はこの発明の実施の形態1に係る高速フーリエ変換演算装置を示すブロック構成図であり、最大で214(=16384)点のFFT(または、IFFT)演算を実行可能な構成を示している。
バタフライ演算部5a〜5nとビットシフト部6a〜6nとは、交互にかつ順次に配置されるとともに、それぞれ、シフト量制御部3に接続されている。
ビットシフト部6a〜6nは、シフト量制御部3の制御下で入力データに対するビットシフトを行い、ビットシフト部6a〜6mは、下段側のバタフライ演算部5b〜5nに対して順次にビットシフト後のデータを入力し、最終段のビットシフト部6nは、出力線4を介して出力データを出力する。
(1)まず、入力線1からのデータが、高速フーリエ変換部2内の最上段側のバタフライ演算部5aに入力される。
(2)高速フーリエ変換部2は、シフト量制御部3の指示にしたがって、入力データに対してFFT(または、IFFT)演算を順次に実行する。
(3)高速フーリエ変換部2は、最終的なFFT(または、IFFT)の演算結果を、ビットシフト部6nから出力線2を介して出力する。
(5)以下、高速フーリエ変換部2およびシフト量制御部3は、次の入力データ(後続データ)に対して、上記(1)〜(4)の処理を実行する。
(6)まず、最上段側のバタフライ演算部5aは、常に、入力データに対してバタフライ演算を実行して、演算データを下段側に出力する。
(7)バタフライ演算部5aは、バタフライ演算時の「桁あふれ」の有無情報を、シフト量制御部3に報告する。
(8)以下、下段側のバタフライ演算部5b〜5nは、バタフライ演算部5aと同じように、上記処理動作を順次に実行する。
(10)以下、下段側のビットシフト部6b〜6nは、ビットシフト部6aと同じように、上記処理動作(9)を実行する。このとき、シフト量制御部3は、ビットシフト5a〜5nに対して、個別にビットシフト量を指示する。
なお、バタフライ演算部5a〜5nは、内部メモリ(図示せず)を有し、バタフライ演算の実行時に、データの入れ替え処理も同時に行う。
また、図1に示した高速フーリエ変換演算装置は、出力線4の後段処理(図示せず)で必要となる場合には、桁あふれの有無やビットシフト量の情報を、後段処理に渡すことができるように構成されているものとする。
シフト量制御部3は、シミュレーション結果や事前観測結果に基づいて、ビットシフト部6a〜6nに対するシフト量の初期値を定める。これにより、各ビットシフト部6a〜6nは、それぞれに指定されたシフト量のビットシフトを行う。
奇数番目のビットシフト部6a、6c、6e、6g、6i、6k、6mに対するシフト量は、「1」に設定される。
偶数番目のビットシフト部6b、6d、6f、6h、6j、6l、6nに対するシフト量は、「0」に設定される。
「桁あふれ」を検出したバタフライ演算部よりも上段側で、かつ、「桁あふれ」を検出したバタフライ演算部に最も近い位置のビットシフト部の値を「1」だけ増加させる。
なお、バタフライ演算部5aから「桁あふれ」が報告された場合には、一過性のものと見なして、特に対処(シフト量の変更処理)を行わないものとする。
このシフト量変更処理により、同様の傾向を有する後続データに対してFFT(または、IFFT)演算を行う際に、「桁あふれ」の発生を抑制することができる。
これにより、同様の傾向を有する後続データにFFT(または、IFFT)演算を行う際に、バタフライ演算部5aでの「桁あふれ」の発生が一過性とならない場合であっても、「桁あふれ」の発生を抑制することができる。
上記実施の形態1(図1)では、バタフライ演算部5a〜5nとビットシフト部6a〜6nとにより14個の対を構成し、かつ、ビットシフト部6a〜6nの各シフト量を任意に設定したが、偶数番目のビットシフト部6b、6d、6f、6h、6j、6l、6nを削減して、2回のバタフライ演算処理に対して1回のビットシフト処理を行うように構成してもよい。
以下、シフト量を最大「1」とした場合のシフト量制御部3の動作について、補足説明する。
(a)「桁あふれ」を検出したバタフライ演算部よりも上段側に位置する。
(b)シフト量が「0」である。
(c)上記(a)、(b)の両方を満たすビットシフト部のうち、最も下段側に位置する。
たとえば、前述の条件(a)〜(c)を満たすビットシフト部が、ビットシフト部6dのみであった場合、ビットシフト部6dおよび下段側のビットシフト部6e〜6nのシフト量(「0」または「1」)が反転することになる。
これにより、「桁あふれ」の発生を抑制しつつ、さらに小さい回路規模で高速フーリエ変換演算装置を実現することができる。
(A)最終段のバタフライ演算部5nで発生したと見なす。
(B)シフト量が「0」であるビットシフト部のうち、最も上段側に位置するビットシフト部の直後のバタフライ演算部で発生したものと見なす。
上記基準(A)、(B)のいずれを採用するかは、高速フーリエ変換演算装置の使用目的などに応じて任意に選択され得る。
なお、上記実施の形態1(図1)では、最終段のビットシフト部6nを出力線4に接続したが、図2のように、ビットシフト部6nと出力線4との間に最大値検出部7を挿入してもよい。
この場合、図1との相違点は、高速フーリエ変換部2A内に最大値検出部7が追加された点のみである。
図2において、最大値検出部7は、ビットシフト部6nからの出力データに基づいて、FFT(または、IFFT)の演算結果の塊ごとに絶対値の最大値を検出し、最大値をシフト量制御部3Aに報告するとともに、出力線4を介して外部に出力する。
たとえば、各データのビット幅が「16ビット」であるのに対し、受け取った最大値が213(=8192)未満であった場合には、出力データ値を4倍にしても16ビットの表現範囲内に収まることが明らかなので、ビットシフト部6a〜6nのうちでシフト量が「1」以上で、かつ、最も下段側に位置するビットシフト部のシフト量を「1」だけ減らす。
(A2)シフト量の変更履歴を保持し、「桁あふれ」が発生しない期間が設定値を超えるごとに、変更履歴を逆にたどって、順次に変更を元に戻す。
なお、上記実施の形態3(図2)では、出力線4の上段側に最大値検出部7のみを挿入したが、図3のように、入力線1の下段側に入力バッファ8を挿入するとともに、出力線4の上段側にさらに出力バッファ9を挿入してもよい。
この場合、図2との相違点は、高速フーリエ変換部2B内に入力バッファ8および出力バッファ9が追加された点のみである。
また、出力バッファ9は、「桁あふれ」の発生時において、シフト量制御部3Bの制御下で、蓄積した出力データを破棄する。
まず、入力線1から入力されたデータは、一度、入力バッファ8に蓄えられ、入力バッファ8を介して高速フーリエ変換部2Bに取り込まれる。
(B1)「桁あふれ」が発生したバタフライ演算部は、「桁あふれ」をシフト量制御部3Bに報告する。
(B2)すべてのバタフライ演算部5a〜5nは、一度、演算処理を打ち切る。
(B3)出力バッファ9は、既に演算済みのデータを途中まで受け取っていたとしても、これを破棄する。
(B4)シフト量制御部3Bは、ビットシフト部6a〜6nのシフト量を更新する。
(B5)シフト量制御部3Bは、入力バッファ8にデータの再送を指示する。
これにより、「桁あふれ」が生じていないFFT(または、IFFT)の演算結果を、出力線4の下段側に送ることができる。
なお、上記実施の形態4(図3)では、各FFT(または、IFFT)演算を独立に扱うものとしたが、複数回分(たとえば、8000個分)を1つの塊として扱い、その塊内においては、同一のシフト量で演算処理を施してもよい。
したがって、処理時間の増大を回避するために、シフト量制御部3Bの制御下で、以下の動作を行うことが望ましい。
以下、高速フーリエ変換部2Bによる演算処理において「桁あふれ」が発生すれば、前述のようにシフト量を調整し、すべてのサンプルに対して上記を施す。この間、出力バッファ9は、受け取るデータをすべて破棄する。
上記動作により、「桁あふれ」を完全には抑制することができないものの、処理時間の大幅な増加を招かずに処理を行う高速フーリエ変換演算装置を得ることができる。
また、シフト量制御部3Bは、1つの塊の中からサンプルを取得して、サンプルに対してビットシフト量を決定する。
また、出力線4よりも後段の処理において、同一塊内の異なるFFT(または、IFFT)の演算結果について、相互に比較および参照する処理を行うことができる。
なお、上記実施の形態1〜5(図1〜図3)では、単一の高速フーリエ変換部に対してビットシフト量を制御したが、図4のように、複数の高速フーリエ変換部2a〜2dに対してビットシフト量を制御してもよい。
シフト量制御部3Cは、高速フーリエ変換部2a〜2dのビットシフト量を制御する。
高速フーリエ変換部2a〜2dは、それぞれ、前述の実施の形態1〜5のいずれかで示したものと同様の構成を有している。
図5において、2次元FFTは、2次元データ100に対して、横軸の1次元FFT演算と縦軸の1次元FFT演算との両方を行うことにより実現する。
(C1)まず、入力線1を介して、高速フーリエ変換部2aに2次元データが入力される。
(C2)高速フーリエ変換部2aは、シフト量制御部3Cの指示にしたがって、図5内の横軸の1次元FFT演算を行う。
(C3)高速フーリエ変換部2aは、FFTの演算結果をメモリ11aに格納する。
(C5)高速フーリエ変換部2bは、シフト量制御部3Cの指示にしたがって、図5内の縦軸の1次元FFT演算を行う。
(C6)高速フーリエ変換部2bは、FFTの演算結果を中間処理部12に送る。
(C8)高速フーリエ変換部2cは、シフト量制御部3Cの指示にしたがって、図5内の縦軸の1次元IFFT演算を行う。
(C9)高速フーリエ変換部2cは、FFTの演算結果をメモリ11bに格納する。
(C11)高速フーリエ変換部2dは、シフト量制御部3Cの指示にしたがって、図5内の横軸の1次元IFFT演算を行う。
また、シフト量制御部3Cは、たとえば高速フーリエ変換2b内の最上段のバタフライ演算部で「桁あふれ」が発生した場合に、前述の実施の形態1で述べた複数の高速フーリエ変換部に対するシフト量制御も行う。
Claims (6)
- 入力データに対して、固定ビット長の固定小数点演算で高速フーリエ変換を行う複数のバタフライ演算部を有する高速フーリエ変換演算装置であって、
前記入力データを取り込む入力線と、
前記複数のバタフライ演算部の少なくとも1つの演算データに対してビットシフトを行うビットシフト部と、
前記ビットシフト部のうちの最終段のビットシフト部に接続されて演算結果を出力する出力線と、
前記ビットシフト部におけるビットシフト量を制御するシフト量制御部と、を備え、
前記複数のバタフライ演算部の少なくとも1つは、自身の桁あふれを検出する機能を有し、
前記シフト量制御部は、前記複数のバタフライ演算部のいずれかで桁あふれが検出された場合に、前記ビットシフト量を調整することを特徴とする高速フーリエ変換演算装置。 - 前記出力線の上段側に挿入された最大値検出部を備え、
前記シフト量制御部は、前記最大値検出部の検出結果に応じて、前記ビットシフト量を調整することを特徴とする請求項1に記載の高速フーリエ変換演算装置。 - 前記入力線の下段側に挿入されて前記入力データを蓄積する入力バッファと、
前記出力線の上段側に挿入されて前記演算結果を蓄積する出力バッファと、を備え、
前記シフト量制御部は、
前記前記複数のバタフライ演算部のいずれかで桁あふれが発生した場合に、
前記ビットシフト量を調整するとともに、前記入力バッファに蓄積された入力データを、前記複数のバタフライ演算部のうちの最上段のバタフライ演算部に導入して、演算処理を再実行させることを特徴とする請求項1または請求項2に記載の高速フーリエ変換演算装置。 - 前記シフト量制御部は、複数回の高速フーリエ変換演算処理を1つの塊として、前記1つの塊の間のビットシフト量を共通に設定することを特徴とする請求項3に記載の高速フーリエ変換演算装置。
- 前記シフト量制御部は、前記1つの塊の中からサンプルを取得して、前記サンプルに対して前記ビットシフト量を決定することを特徴とする請求項4に記載の高速フーリエ変換演算装置。
- 前記シフト量制御部は、前記複数の高速フーリエ変換演算処理のうちの、複数の同じ高速フーリエ変換演算処理に対しても、それぞれに異なるビットシフト量を与え、各ビットシフト量を調整することを特徴とする請求項1から請求項5までのいずれか1項に記載の高速フーリエ変換演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009211576A JP5414434B2 (ja) | 2009-09-14 | 2009-09-14 | 高速フーリエ変換演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009211576A JP5414434B2 (ja) | 2009-09-14 | 2009-09-14 | 高速フーリエ変換演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011060177A true JP2011060177A (ja) | 2011-03-24 |
JP5414434B2 JP5414434B2 (ja) | 2014-02-12 |
Family
ID=43947704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009211576A Expired - Fee Related JP5414434B2 (ja) | 2009-09-14 | 2009-09-14 | 高速フーリエ変換演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5414434B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639922B2 (en) | 2013-11-22 | 2017-05-02 | Canon Kabushiki Kaisha | Generation method of image restoration filter, image processing method, image pickup apparatus, image processing apparatus, and recording medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60225279A (ja) * | 1984-04-23 | 1985-11-09 | Mitsubishi Electric Corp | フーリエ変換装置 |
JPH09319733A (ja) * | 1996-05-30 | 1997-12-12 | Jisedai Digital Television Hoso Syst Kenkyusho:Kk | Fft演算方法とfft演算回路 |
-
2009
- 2009-09-14 JP JP2009211576A patent/JP5414434B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60225279A (ja) * | 1984-04-23 | 1985-11-09 | Mitsubishi Electric Corp | フーリエ変換装置 |
JPH09319733A (ja) * | 1996-05-30 | 1997-12-12 | Jisedai Digital Television Hoso Syst Kenkyusho:Kk | Fft演算方法とfft演算回路 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639922B2 (en) | 2013-11-22 | 2017-05-02 | Canon Kabushiki Kaisha | Generation method of image restoration filter, image processing method, image pickup apparatus, image processing apparatus, and recording medium |
Also Published As
Publication number | Publication date |
---|---|
JP5414434B2 (ja) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012231401A5 (ja) | ||
WO2018023847A1 (zh) | 用于缩放图像的处理器和方法 | |
JP5414434B2 (ja) | 高速フーリエ変換演算装置 | |
EP2800010A1 (en) | Fft/dft reverse arrangement system and method and computing system thereof | |
JP2012086450A5 (ja) | 画像形成装置、画像形成方法、およびプログラム | |
JP5327482B2 (ja) | 画像処理装置及び画像処理方法 | |
JP4900680B2 (ja) | 半導体メモリ試験装置 | |
JP2008219195A (ja) | コントローラ装置、ライン同期エラー判定方法、及び画像処理装置 | |
CN1232219A (zh) | 流水线型多处理器*** | |
JP2001157049A5 (ja) | ||
US9880974B2 (en) | Folded butterfly module, pipelined FFT processor using the same, and control method of the same | |
JP2017194509A5 (ja) | 表示端末装置、表示装置、データ処理方法及びデータ処理プログラム | |
JP5630798B1 (ja) | プロセッサーおよび方法 | |
CN105096247B (zh) | 图像插值方法和装置 | |
JP2011080949A (ja) | レーダ画像処理装置 | |
JP6199203B2 (ja) | 最適化システム | |
JP5932855B2 (ja) | 画像処理システム、画像処理方法及び画像処理プログラム | |
CN103227128B (zh) | 调整具有停留时间限制的工艺阶段产能的方法及*** | |
CN112037118B (zh) | 图像缩放硬件加速方法、装置、***及可读存储介质 | |
JP2012059131A (ja) | Simd型マイクロプロセッサ及びその処理方法 | |
JP6005578B2 (ja) | 情報処理装置および情報処理方法 | |
JP2009205573A (ja) | バッファ制御装置およびバッファ制御方法 | |
JP6981297B2 (ja) | データ処理装置、データ量調整方法、及びデータ量調整プログラム | |
TW201643746A (zh) | 資料分配裝置、訊號處理裝置及其資料分配方法 | |
JP2009211959A (ja) | 画像前処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130625 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130809 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131112 |
|
LAPS | Cancellation because of no payment of annual fees |