CN101174258A - 二维快速傅里叶变换运算方法和运算装置 - Google Patents
二维快速傅里叶变换运算方法和运算装置 Download PDFInfo
- Publication number
- CN101174258A CN101174258A CNA2007101808909A CN200710180890A CN101174258A CN 101174258 A CN101174258 A CN 101174258A CN A2007101808909 A CNA2007101808909 A CN A2007101808909A CN 200710180890 A CN200710180890 A CN 200710180890A CN 101174258 A CN101174258 A CN 101174258A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- data
- fast fourier
- dimension
- operand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000009466 transformation Effects 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 32
- 238000013016 damping Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- ZVQOOHYFBIDMTQ-UHFFFAOYSA-N [methyl(oxido){1-[6-(trifluoromethyl)pyridin-3-yl]ethyl}-lambda(6)-sulfanylidene]cyanamide Chemical compound N#CN=S(C)(=O)C(C)C1=CC=C(C(F)(F)F)N=C1 ZVQOOHYFBIDMTQ-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种二维快速傅里叶变换运算方法和二维快速傅里叶变换运算装置。二维快速傅里叶变换运算方法具有:纵向处理执行步骤(ST102~ST104),执行如下处理,即,每次1纵行地依次对运算对象数据进行一维FFT运算而生成第一运算结果数据,每当生成1行第一运算结果数据时,都使内部缓冲器(103)保持第一运算结果数据中的指定位置(第M个)的第二运算对象数据,直到将1行第二运算对象数据保持到内部缓冲器(103)为止;横向处理执行步骤(ST106~ST108),当将1行第二运算对象数据保持到内部缓冲器(103)后,对第二运算对象数据进行一维FFT运算,生成第二运算结果数据;以及变更指定位置(使M递增)来重复进行纵向处理执行步骤和横向处理执行步骤的步骤。
Description
技术领域
本发明涉及半导体集成电路中的二维快速傅里叶变换运算方法和二维快速傅里叶变换运算装置。
背景技术
图11是概略地表示对存储在存储器1中的第一运算对象数据实施二维快速傅里叶变换(FFT)运算的、以往的二维FFT运算装置300的结构的框图,图12是表示包括多个第一运算对象数据(小区域)12的图像数据(FFT运算对象区域)11的说明图。如图11所示,二维FFT运算装置300具有纵向一维FFT运算电路301、横向一维FFT运算电路302、内部缓冲器303、存储器接口304、307以及中间缓冲器接口305、306。
图13是概略地表示纵向一维FFT运算电路301的结构的框图。如图13所示,纵向一维FFT运算电路301具有与存储器接口304和中间缓冲器接口305连接的访问控制电路311、FFT运算电路312以及数据总线313。在纵向一维FFT运算电路301中,当接收到FFT运算启动信号Ss后,访问控制电路311从存储器1经由存储器接口304读出第一运算对象数据的1纵行量的数据,向FFT运算电路312发送数据准备完成信号Sr311,并且,经由数据总线313发送读出数据D304。FFT运算电路312对读出数据D304执行一维FFT运算,在该运算完成后,将一维FFT运算完成信号Sd312通知给访问控制电路311。当接收到一维FFT运算完成信号Sd312后,访问控制电路311经由数据总线313取入第一运算结果数据D305,将1纵行量的第一运算结果数据经由内部缓冲器接口305写入到内部缓冲器303中。纵向一维FFT运算电路301对第一运算对象数据整体每次1纵行地依次生成第一运算结果数据D305,写入到内部缓冲器303中。
图14是概略地表示横向一维FFT运算电路302的结构的框图。如图14所示,横向一维FFT运算电路302具有与存储器接口307和中间缓冲器接口306连接的访问控制电路321、FFT运算电路322以及数据总线323。在横向一维FFT运算电路302中,当接收到一维FFT运算完成信号Sd后,访问控制电路321从保持在内部缓冲器303中的第一运算结果数据(即第二运算对象数据)中经由中间缓冲器接口306读出1横行量的数据,向FFT运算电路322发送数据准备完成信号Sr321,并且,经由数据总线323发送读出数据D306。FFT运算电路322对读出数据D306执行一维FFT运算,在该运算完成后,将一维FFT运算完成信号Sd322通知给访问控制电路321。当接收到一维FFT运算完成信号Sd322后,访问控制电路321经由数据总线323取入第二运算结果数据D307,将1横行量的第二运算结果数据经由存储器接口307写入到存储器1中。横向一维FFT运算电路302对横向的所有行依次生成第二运算结果数据,并写入到存储器1中。
图15是表示以往的二维FFT运算方法的流程图,图16是表示以往的二维FFT运算方法的说明图。如图15和图16所示,在二维FFT运算装置300中,纵向一维FFT运算电路301从存储器1读出第一运算对象数据的1纵行量的数据(步骤ST301),执行针对1纵行的一维FFT运算(步骤ST302),将第一运算结果数据整体写入到内部缓冲器303中(步骤ST303)。纵向一维FFT运算电路301重复进行32次(与小区域12的横向数据数量相当的次数)该处理(步骤ST304)。然后,横向一维FFT运算电路302从保持在内部缓冲器303中的第一运算结果数据(即第二运算对象数据)中读出1横行量的数据(步骤ST305),执行针对1横行的一维FFT运算(步骤ST306),将第二运算结果数据写入到存储器1中(步骤ST307)。横向一维FFT运算电路302重复进行32次(与小区域12的纵向数据数量相当的次数)该处理(步骤ST308)。通过步骤ST301~步骤ST308的处理,完成针对32行×32行的1个小区域的二维FFT运算,接着,对其它小区域重复进行同样的处理。
这样,在对小区域12整体依次执行二维FFT运算时,为了运算处理的高速化,在横向一维FFT运算电路302对某一小区域执行一维FFT运算的期间,由纵向一维FFT运算电路301先行开始对下一个小区域的一维FFT运算(即,进行纵向FFT运算和横向FFT运算的管道(pipeline)处理)来缩短处理时间。为了进行这样的管道处理,除了横向一维FFT运算电路302使用的内部缓冲器之外,还需要用于由纵向一维FFT运算电路301写入FFT运算结果的内部缓冲器,内部缓冲器量需要32行(纵)×32行(横)×2面的量。
另外,与以往的多维傅里叶变换相关的技术例如记载在专利文献1中。
专利文献1: 日本特开2002-163247号公报
但是,在上述以往的二维FFT运算装置中,内部缓冲器303的缓冲器量需要与FFT运算对象区域11的小区域12同等的量以上,例如32行×32行×1面的量以上。此外,在进行管道处理时,需要32行×32行×2面的量以上的缓冲器量,存在缓冲器量的增多使装置的成本增大这样的问题。
此外,FFT运算对象区域11的小区域12越大,所需要的缓冲器量就越多,所以还存在不能过分增大FFT运算对象区域,可执行FFT运算的区域受到限制这样的问题。
另外,为了缩小电路规模,即便采用不进行管道处理的结构,可削减的电路结构也仅有1个FFT运算电路、和与小区域1面对应的内部缓冲器1面,仍然需要与小区域1面对应的内部缓冲器,无法充分解决缓冲器量增大而引起的成本增大的问题。
此外,为了削减内部缓冲器量,还可以考虑将纵向一维FFT运算结果写出到外部存储器的方法,但在由CPU访问外部存储器和由FFT运算电路访问外部存储器发生竞争时,将产生无法保证在特定时间内完成处理这样的其它问题。
发明内容
因此,本发明正是为了解决上述现有技术的问题而完成的,其目的在于,提供一种能够削减内部缓冲器量的二维快速傅里叶变换运算方法和二维快速傅里叶变换运算装置。
本发明提供一种二维快速傅里叶变换运算方法,其通过具有内部缓冲器的电路从而对二维排列在第一方向和第二方向上的第一运算对象数据进行二维快速傅里叶变换运算,其特征在于,上述二维快速傅里叶变换运算方法具有:第一方向处理执行步骤,对上述第一运算对象数据整体执行如下处理,即,每次第一方向一行地依次对上述第一运算对象数据进行一维快速傅里叶变换运算而生成第一运算结果数据,每当生成第一方向一行的上述第一运算结果数据时,都使上述内部缓冲器将上述第一运算结果数据中的指定位置的数据作为第二运算对象数据进行保持;第二方向处理执行步骤,每次第二方向一行地依次对所保持的上述第二运算对象数据进行一维快速傅里叶变换运算,生成第二运算结果数据;以及处理重复步骤,变更上述指定位置来重复进行上述第一方向处理执行步骤和上述第二方向处理执行步骤,直到对上述第一运算对象数据整体生成上述第二运算结果数据为止,上述内部缓冲器所保持的上述第二运算对象数据是排列在第一方向上的预定数量行的数据,上述预定数量是比上述第一运算对象数据排列在第一方向上的数据数量少的值。
此外,本发明提供一种二维快速傅里叶变换运算装置,其对二维排列在第一方向和第二方向上的第一运算对象数据进行二维快速傅里叶变换运算,其特征在于,上述二维快速傅里叶变换运算装置具有:内部缓冲器;第一一维快速傅里叶变换运算电路,其对上述第一运算对象数据整体执行如下处理,即,每次第一方向一行地依次对上述第一运算对象数据进行一维快速傅里叶变换运算而生成第一运算结果数据,每当生成第一方向一行的上述第一运算结果数据时,都使上述内部缓冲器将上述第一运算结果数据中的指定位置的数据作为第二运算对象数据进行保持;以及第二一维快速傅里叶变换运算电路,其每次第二方向一行地依次对所保持的上述第二运算对象数据进行一维快速傅里叶变换运算,生成第二运算结果数据,变更上述指定位置来重复进行上述第一一维快速傅里叶变换运算电路的处理和上述第二一维快速傅里叶变换运算电路的处理,直到对上述第一运算对象数据整体生成上述第二运算结果数据为止,上述内部缓冲器所保持的上述第二运算对象数据是排列在第一方向上的预定数量行的数据,上述预定数量是比上述第一运算对象数据排列在第一方向上的数据数量少的值。
如以上说明的那样,根据本发明,具有能够大幅削减内部缓冲器量,并能够实现装置的制造成本降低这样的效果。
此外,根据本发明,由于使用了二维FFT运算专用的内部缓冲器,因此,具有能够使二维FFT运算在一定时间内完成这样的效果。
附图说明
图1是概略地表示本发明的第1实施方式的二维FFT运算装置(即实施第1实施方式的二维FFT运算方法的装置)的结构的框图。
图2是概略地表示图1的纵向一维FFT运算电路的结构的框图。
图3是概略地表示图1的横向一维FFT运算电路的结构的框图。
图4是表示第1实施方式的二维FFT运算装置的动作的流程图。
图5是表示第1实施方式的二维FFT运算装置的处理顺序的说明图。
图6是概略地表示本发明的第2实施方式的二维FFT运算装置(即实施第2实施方式的二维FFT运算方法的装置)的结构的框图。
图7是概略地表示图6的纵向一维FFT运算电路的结构的框图。
图8是概略地表示图6的横向一维FFT运算电路的结构的框图。
图9是表示第2实施方式的二维FFT运算装置的动作的流程图。
图10是表示第2实施方式的二维FFT运算装置的处理顺序的说明图。
图11是概略地表示现有例的二维FFT运算装置的电路结构的框图。
图12是FFT运算对象区域的说明图。
图13是概略地表示图11的纵向一维FFT运算电路的结构的框图。
图14是概略地表示图11的横向一维FFT运算电路的结构的框图。
图15是表示现有例的二维FFT运算装置的动作的流程图。
图16是表示现有例的二维FFT运算装置的处理顺序的说明图。
具体实施方式
第1实施方式
图1是概略地表示本发明的第1实施方式的二维快速傅里叶变换(FFT)运算装置100(即实施第1实施方式的二维FFT运算方法的装置)的结构的框图。如图1所示,第1实施方式的二维FFT运算装置100是对在第一方向(例如纵向)和第二方向(例如横向)上二维配置的第一运算对象数据进行二维FFT运算的装置。该第一运算对象数据存储在存储器1中,与上述图12所示的小区域12相当。小区域12例如是纵向32行、横向32行的数据,但纵向和横向的行数不限于32行。
如图1所示,二维FFT运算装置100具有:对第一运算对象数据中的排在纵向的1行数据(在第1实施方式中为32个数据)进行一维FFT运算的纵向一维FFT运算电路101;在横向对1行数据(在第1实施方式中为32个数据)进行一维FFT运算的横向一维FFT运算电路102;内部缓冲器103;与存储器1连接的存储器接口104、107;以及与内部缓冲器103连接的中间缓冲器接口105、106。第1实施方式中的内部缓冲器103具有与作为第一运算对象数据的小区域(图12的标号12)的横向数据数量相等的缓冲器量,例如作为缓冲器量具有“32”(=32行(横)×1行(纵))。此外,在由二维FFT运算装置100进行管道处理时,内部缓冲器103作为缓冲器量具有“64”(=32行(横)×1行(纵)×2面)。
纵向一维FFT运算电路101每次1纵行地依次对第一运算对象数据进行一维FFT运算而生成第一运算结果数据,每当生成1纵行的第一运算结果数据时,都执行将第一运算结果数据中的指定位置(纵向第M行)的数据作为第二运算对象数据保持到内部缓冲器103的处理,直到将预定数量行的第二运算对象数据保持到内部缓冲器103为止。预定数量是比第一运算对象数据的纵向数据数量少的值,在第1实施方式中是“1”。
在由纵向一维FFT运算电路101将1横行的第二运算对象数据保持到内部缓冲器103后,横向一维FFT运算电路102对所保持的1横行的第二运算对象数据进行一维快速傅里叶变换运算,生成1横行的第二运算结果数据,保持到存储器1内。
每当对1横行的第二运算对象数据进行一维FFT运算时,纵向一维FFT运算电路101和横向一维FFT运算电路102都变更指定位置(例如使指定位置的行序号M递增1),重复进行用于生成运算结果数据的上述处理,直到针对第一运算对象数据整体的第二运算结果数据的生成完成为止。
图2是概略地表示图1的纵向一维FFT运算电路101的结构的框图。如图2所示,纵向一维FFT运算电路101具有:与存储器接口104和中间缓冲器接口105连接的存取控制电路111、FFT运算电路112、连接存取控制电路111和FFT运算电路112的数据总线113、N比特计数器114、N比特寄存器115以及比较器116。
当接收到FFT运算启动信号Ss后,存取控制电路111经由存储器接口104从存储器1读出第一运算对象数据的1纵行量的数据,向FFT运算电路112发送数据准备完成信号Sr111,并且,经由数据总线113发送读出数据D104。
FFT运算电路112对读出数据D104执行一维FFT运算,在该运算完成后,将一维FFT运算完成信号Sd112通知给存取控制电路111。在接收到一维FFT运算完成信号Sd112后,存取控制电路111经由数据总线113取入运算结果数据D105,将1行量的运算结果数据的一部分作为第一运算结果数据,而经由中间缓冲器接口105写入到内部缓冲器103内。
N比特计数器114将纵向一维FFT运算完成信号Sd作为向上计数信号,输出计数值C114。
N比特寄存器115存储并输出特定的值C115。在作为第一运算对象数据的小区域为32行(横)×32行(纵)的数据区域时,在纵向一维FFT运算电路101的N比特寄存器115中存储作为纵向数据数量的“32”。
比较器116对N比特计数器114的计数值C114和N比特寄存器115的值C115进行比较,在比较数据一致时,断言(assert)一致信号Sm116;在比较数据不一致时,断言不一致信号Sn116。
在由比较器116断言了一致信号Sm116后,存取控制电路111从存储器1读出下一个小区域的数据,并控制纵向一维FFT运算。此外,在由比较器116断言了不一致信号Sn116后,存取控制电路111从存储器1读出与前次相同的小区域的数据,控制纵向一维FFT运算,向内部缓冲器1 03仅写入1纵行中的指定位置的第M(M=1、2、...、32)个数据。在此,每当断言不一致信号时M值递增1,当断言一致信号Sm116后M值复位为0。
图3是概略地表示图1的横向一维FFT运算电路102的结构的框图。如图3所示,横向一维FFT运算电路102具有:与存储器接口104和中间缓冲器接口105连接的存取控制电路121、FFT运算电路122、连接存取控制电路121和FFT运算电路122的数据总线123、N比特计数器124、N比特寄存器125以及比较器126。
当接收到纵向一维FFT运算完成信号Sd后,存取控制电路121经由内部缓冲器接口106从内部缓冲器103读出第二运算对象数据的1横行量的数据,向FFT运算电路122发送数据准备完成信号Sr121,并且,经由数据总线123发送读出数据D106。
FFT运算电路122对来自内部缓冲器103的读出数据D106执行横向一维FFT运算,在该运算完成后,将一维FFT运算完成信号Sd122通知给存取控制电路121。在接收到一维FFT运算完成信号Sd122后,存取控制电路121经由数据总线123取入第二运算结果数据D107,将1行量的运算结果数据经由存储器接口107写入到存储器1内。
N比特计数器124将横向一维FFT运算完成信号Sd122作为向上计数信号,输出计数值C124。
N比特寄存器125存储并输出特定的值C125。在作为第一运算对象数据的小区域为32行(横)×32行(纵)的数据区域时,在横向一维FFT运算电路102的N比特寄存器125中存储有作为横向数据数量的“32”。
比较器126对N比特计数器124的计数值C124和N比特寄存器125的值C125进行比较,在比较数据一致时,断言一致信号Sm126;在比较数据不一致时,断言不一致信号Sn126。
在由比较器126断言不一致信号Sn126后,存取控制电路121从存储器1读出与前次相同的小区域的数据,并控制纵向一维FFT运算,向内部缓冲器103仅写入1纵行中的指定位置的第M个数据(步骤ST102~ST104)。在由比较器126断言一致信号Sm126后,存取控制电路121从存储器1读出下一个小区域的数据,控制纵向一维FFT运算,向内部缓冲器103仅写入1纵行中的指定位置的第M个数据(ST102~ST104)。
接着,说明第1实施方式的二维FFT运算装置100的动作(即第1实施方式的二维FFT运算方法)。图4是表示第1实施方式的二维FFT运算装置100的动作(即第1实施方式的二维FFT运算方法)的流程图,图5是表示第1实施方式的二维FFT运算装置100的动作(即第1实施方式的二维FFT运算方法)的说明图。
如图4和图5所示,在二维FFT运算装置100中,纵向一维FFT运算电路101将用于确定第一运算对象数据的横行的序号M设为初始值0(步骤ST100),接着,使M递增1(步骤ST101)。接着,从存储器1读出第一运算对象数据的纵向1行量的数据(步骤ST102),执行对1纵行的一维FFT运算,生成第一运算结果数据(步骤ST103),将第一运算结果数据内的第M(在此,M=1)行的数据写入内部缓冲器103内(步骤ST104)。接着,纵向一维FFT运算电路101使1纵行量的数据每次1行地横向移动,重复进行32次(相当于小区域12的横向数据数量)步骤ST102~ST104的处理(步骤ST105)。其结果,在内部缓冲器103中保持第1行的1横行量的第一运算结果数据。
接着,横向一维FFT运算电路102从内部缓冲器103读出1横行量的第一运算结果数据(即第二运算对象数据)(步骤ST106),执行对1横行的一维FFT运算(步骤ST107),将作为一维FFT运算结果的第二运算结果数据写入到存储器1内(步骤ST108)。
接着,纵向一维FFT运算电路101和横向一维FFT运算电路102对M=1~32的各行依次重复进行步骤ST101~ST108的处理(合计重复32次)(步骤ST109),由此,使存储器1存储针对32行×32行小区域12的二维FFT运算结果数据(第二运算结果数据)。另外,为了运算处理的高速化,在横向一维FFT运算电路102对某一小区域执行一维FFT运算的期间,通过由纵向一维FFT运算电路101先行开始对下一个小区域的一维FFT运算(即,进行纵向FFT运算和横向FFT运算的管道(pipeline)处理),能够缩短处理时间。
如以上说明的那样,根据第1实施方式的二维FFT运算装置100(或者第1实施方式的二维FFT运算方法),能够大幅削减内部缓冲器量。具体而言,与以往例相比,能够将内部缓冲器量削减为1/32。
此外,根据第1实施方式的二维FFT运算装置100(或者第1实施方式的二维FFT运算方法),由于使用二维FFT运算专用的内部缓冲器,因此能够在一定时间内完成二维FFT运算。
第2实施方式
第2实施方式的二维FFT运算装置和二维FFT运算方法在将纵向1行FFT运算数据中的第M1和第M2这两个数据写入内部缓冲器这一点上,与将纵向1行FFT运算数据中的1个数据写入内部缓冲器的、第1实施方式的二维FFT运算装置和二维FFT运算方法不同。以下,说明第2实施方式的二维FFT运算装置和二维FFT运算方法。
图6是概略地表示本发明的第2实施方式的二维FFT运算装置200(即实施第2实施方式的二维FFT运算方法的装置)的结构的框图。如图6所示,二维FFT运算装置200是对二维排列的第一运算对象数据进行二维FFT运算的装置。
如图6所示,二维FFT运算装置200具有:对第一运算对象数据中的纵向1行(1纵行)数据进行一维FFT运算的纵向一维FFT运算电路201;对横向1行(1横行)数据进行一维FFT运算的横向一维FFT运算电路202;内部缓冲器203;与存储器1连接的存储器接口204、207;以及与内部缓冲器203连接的中间缓冲器接口205、206。第2实施方式中的内部缓冲器203具有作为第一运算对象数据的小区域的横向数据数量的2倍的缓冲器量,例如作为缓冲器量具有“64”(=32行(横)×2行(纵))。此外,在由二维FFT运算装置100进行管道处理时,内部缓冲器203作为缓冲器量具有“128”(=32行(横)×1行(纵)×2面)。
纵向一维FFT运算电路201执行如下处理:每次1纵行地依次对第一运算对象数据进行一维FFT运算而生成第一运算结果数据,每当生成1纵行的第一运算结果数据时,都将第一运算结果数据中的指定位置(纵向第M1行、纵向第M2行)的数据作为第二运算对象数据保持到内部缓冲器203,执行以上处理直到将预定数量行的第二运算对象数据保持到内部缓冲器203为止。预定数量是比第一运算对象数据的纵向数据数量少的值,在第2实施方式中是“2”。不过,预定数量不限于“2”,只要是将第一运算对象数据的排列在纵向的数据数量除以预定数量时能除尽的值,也能够取为其它值(例如“4”)。
在由纵向一维FFT运算电路201将第M1和第M2的2横行的第二运算对象数据保持到内部缓冲器203后,横向一维FFT运算电路202对所保持的1横行的第二运算对象数据进行一维快速傅里叶变换运算,生成2横行的第二运算结果数据,并保持到存储器1内。
每当对2横行的第二运算对象数据进行一维FFT运算时,纵向一维FFT运算电路201和横向一维FFT运算电路202都变更指定位置(例如使指定位置的行序号M1、M2递增1),重复进行用于生成运算结果数据的上述处理,直到针对第一运算对象数据整体的第二运算结果数据的生成完成为止。
图7是概略地表示图6的纵向一维FFT运算电路201的结构的框图。如图7所示,纵向一维FFT运算电路201具有:与存储器接口204和中间缓冲器接口205连接的存取控制电路211、FFT运算电路212、连接存取控制电路211和FFT运算电路212的数据总线213、N比特计数器214、N比特寄存器215以及比较器216。
当接收到FFT运算启动信号Ss后,存取控制电路211经由存储器接口204从存储器1读出第一运算对象数据的1纵行量的数据,向FFT运算电路212发送数据准备完成信号Sr211,并且,经由数据总线213发送读出数据D204。
FFT运算电路212对读出数据D204执行一维FFT运算,在该运算完成后,将一维FFT运算完成信号Sd212通知给存取控制电路211。在接收到一维FFT运算完成信号Sd212后,存取控制电路211经由数据总线213取入运算结果数据D205,将2行量的运算结果数据的一部分作为第一运算结果数据经由中间缓冲器接口205写入到内部缓冲器203内。
N比特计数器214将纵向一维FFT运算完成信号Sd作为向上计数信号,输出计数值C214。
N比特寄存器215存储并输出特定的值C215。在作为第一运算对象数据的小区域为32行(横)×32行(纵)的数据区域时,在纵向一维FFT运算电路201的N比特寄存器215中存储作为纵向数据数量的1/2的“16”。
比较器216对N比特计数器214的计数值C214和N比特寄存器215的值C215进行比较,在比较数据一致时,断言一致信号Sm216;在比较数据不一致时,断言不一致信号Sn216。
在由比较器216断言一致信号Sm216后,存取控制电路211从存储器1读出下一个小区域的数据,并控制纵向一维FFT运算。此外,在由比较器216断言不一致信号Sn216后,存取控制电路211从存储器1读出与前次相同的小区域的数据,控制纵向一维FFT运算,向内部缓冲器203仅写入1纵行中的作为指定位置的第M1(M1=1、2、...、16)个数据和第M2(M2=17、18、...、32)个数据。在此,每当断言不一致信号时M1和M2值分别递增1,当断言一致信号Sm216后M1和M2值复位为初始值0和16。
图8是概略地表示图6的横向一维FFT运算电路202的结构的框图。如图8所示,横向一维FFT运算电路202具有:与存储器接口204和中间缓冲器接口205连接的存取控制电路221、FFT运算电路222、连接存取控制电路221和FFT运算电路222的数据总线223、N比特计数器224、N比特寄存器225以及比较器226。
当接收到纵向一维FFT运算完成信号Sd后,存取控制电路221经由内部缓冲器接口206从内部缓冲器203读出第二运算对象数据的横向2行量的数据,对第M1和第M2的各行执行如下处理:向FFT运算电路222发送数据准备完成信号Sr221,并且,经由数据总线223发送读出数据D206。
FFT运算电路222对来自内部缓冲器203的读出数据D206执行横向一维FFT运算,在该运算完成后,将一维FFT运算完成信号Sd222通知给存取控制电路221。在接收到一维FFT运算完成信号Sd222后,存取控制电路221经由数据总线223取入第二运算结果数据D207,将2行量的第二运算结果数据经由存储器接口207写入到存储器1内。
N比特计数器224将横向一维FFT运算完成信号Sd222作为向上计数信号,输出计数值C224。
N比特寄存器225存储并输出特定的值C225。在作为第一运算对象数据的小区域为32行(横)×32行(纵)的数据区域时,在横向一维FFT运算电路202的N比特寄存器225中存储作为横向数据数量的“32”。
比较器226对N比特计数器224的计数值C224和N比特寄存器225的值C225进行比较,在比较数据一致时,断言一致信号Sm226;在比较数据不一致时,断言不一致信号Sn226。
在由比较器226断言不一致信号Sn226后,存取控制电路221从存储器1读出与前次相同的小区域的数据,控制纵向一维FFT运算,向内部缓冲器203仅写入1纵行中的指定位置的第M1个和第M2个数据。在由比较器226断言一致信号Sm226后,存取控制电路221从存储器1读出下一个小区域的数据,控制纵向一维FFT运算,向内部缓冲器203仅写入1纵行中的指定位置的第M1个和第M2个数据。
接着,说明第2实施方式的二维FFT运算装置200的动作(即第2实施方式的二维FFT运算方法)。图9是表示第2实施方式的二维FFT运算装置200的动作(即第2实施方式的二维FFT运算方法)的流程图,图10是表示第2实施方式的二维FFT运算装置200的动作(即第2实施方式的二维FFT运算方法)的说明图。
如图9和图10所示,在二维FFT运算装置200中,纵向一维FFT运算电路201将用于确定第一运算对象数据的横行的序号M1设为初始值0,将M2设为初始值16(步骤ST200),接着,使M1和M2递增1(步骤ST201)。接着,从存储器1读出第一运算对象数据的1纵行量的数据(步骤ST202),执行对1纵行的一维FFT运算,生成第一运算结果数据(步骤ST203),将第一运算结果数据内的第M1(在此,M=1)行和第M2(在此,M=17)行的数据写入内部缓冲器203内(步骤ST204)。接着,纵向一维FFT运算电路201使1纵行量的数据每次1行地横向移动,重复进行32次(相当于小区域12的横向数据数量)步骤ST202~ST204的处理(步骤ST205)。其结果,在内部缓冲器203中保持第1行的1横行量和第17行的1横行量的第一运算结果数据。
接着,横向一维FFT运算电路202从内部缓冲器203读出第一运算结果数据(即第二运算对象数据)(步骤ST206),执行对2横行的一维FFT运算(步骤ST207),将作为一维FFT运算结果的第二运算结果数据写入到存储器1内(步骤ST208)。
接着,纵向一维FFT运算电路201和横向一维FFT运算电路202对M1=1~16、M2=17~32的各行依次重复进行步骤ST201~ST208的处理(合计重复16次)(步骤ST209),由此,使存储器1存储针对32行×32行小区域12的二维FFT运算结果数据(第二运算结果数据)。
如以上说明的那样,根据第2实施方式的二维FFT运算装置200(或者第2实施方式的二维FFT运算方法),能够大幅削减内部缓冲器量。具体而言,与以往例相比,能够将内部缓冲器量削减为1/16。
此外,根据第2实施方式的二维FFT运算装置200(或者第2实施方式的二维FFT运算方法),与第1实施方式的情况相比,虽然内部缓冲器量变为2倍,但能够使处理次数变为1/2。
此外,根据第2实施方式的二维FFT运算装置200(或者第2实施方式的二维FFT运算方法),由于使用二维FFT运算专用的内部缓冲器,因此能够在固定时间内完成二维FFT运算。
另外,在第2实施方式中,上述以外的方面与上述第1实施方式的情况相同。
Claims (10)
1.一种二维快速傅里叶变换运算方法,其通过具有内部缓冲器的电路从而对二维排列在第一方向和第二方向上的第一运算对象数据进行二维快速傅里叶变换运算,其特征在于,上述二维快速傅里叶变换运算方法具有以下步骤:
第一方向处理执行步骤,对上述第一运算对象数据整体执行如下处理,即,每次第一方向一行地依次对上述第一运算对象数据进行一维快速傅里叶变换运算而生成第一运算结果数据,每当生成第一方向一行的上述第一运算结果数据时,都使上述内部缓冲器将上述第一运算结果数据中的指定位置的数据作为第二运算对象数据进行保持;
第二方向处理执行步骤,每次第二方向一行地依次对所保持的上述第二运算对象数据进行一维快速傅里叶变换运算,生成第二运算结果数据;以及
处理重复步骤,变更上述指定位置来重复进行上述第一方向处理执行步骤和上述第二方向处理执行步骤,直到对上述第一运算对象数据整体生成上述第二运算结果数据为止,
上述内部缓冲器所保持的上述第二运算对象数据是排列在第一方向上的预定数量行的数据,
上述预定数量是比上述第一运算对象数据排列在第一方向上的数据数量少的值。
2.根据权利要求1所述的二维快速傅里叶变换运算方法,其特征在于,在上述处理重复步骤结束后,将上述第一运算对象数据变更为其它运算对象数据,执行上述第一方向处理执行步骤、上述第二方向处理执行步骤以及上述处理重复步骤。
3.根据权利要求1或2所述的二维快速傅里叶变换运算方法,其特征在于,上述预定数量是1。
4.根据权利要求1或2所述的二维快速傅里叶变换运算方法,其特征在于,上述预定数量是2以上的整数,并且是将排列在上述第一方向上的数据数量除以上述预定数量时能除尽的值。
5.根据权利要求2所述的二维快速傅里叶变换运算方法,其特征在于,上述内部缓冲器的缓冲器量是上述预定数量行的数据量的2倍以上,
在执行上述第二方向处理执行步骤的过程中,对下一个成为运算对象的第一运算对象数据执行上述第一方向处理执行步骤。
6.一种二维快速傅里叶变换运算装置,其对二维排列在第一方向和第二方向上的第一运算对象数据进行二维快速傅里叶变换运算,其特征在于,上述二维快速傅里叶变换运算装置具有:
内部缓冲器;
第一一维快速傅里叶变换运算电路,其对上述第一运算对象数据整体执行如下处理,即,每次第一方向一行地依次对上述第一运算对象数据进行一维快速傅里叶变换运算而生成第一运算结果数据,每当生成第一方向一行的上述第一运算结果数据时,都使上述内部缓冲器将上述第一运算结果数据中的指定位置的数据作为第二运算对象数据进行保持;以及
第二一维快速傅里叶变换运算电路,其每次第二方向一行地依次对所保持的上述第二运算对象数据进行一维快速傅里叶变换运算,生成第二运算结果数据,
上述二维快速傅里叶变换运算装置变更上述指定位置来重复进行上述第一一维快速傅里叶变换运算电路的处理和上述第二一维快速傅里叶变换运算电路的处理,直到对上述第一运算对象数据整体生成上述第二运算结果数据为止,
上述内部缓冲器所保持的上述第二运算对象数据是排列在第一方向上的预定数量行的数据,
上述预定数量是比上述第一运算对象数据排列在第一方向上的数据数量少的值。
7.根据权利要求6所述的二维快速傅里叶变换运算装置,其特征在于,上述第一一维快速傅里叶变换运算电路和上述第二一维快速傅里叶变换运算电路将上述第一运算对象数据变更为其它运算对象数据,再次执行上述处理。
8.根据权利要求6或7所述的二维快速傅里叶变换运算装置,其特征在于,上述预定数量是1。
9.根据权利要求6或7所述的二维快速傅里叶变换运算装置,其特征在于,上述预定数量是2以上的整数,并且是将排列在上述第一方向上的数据数量除以上述预定数量时能除尽的值。
10.根据权利要求7所述的二维快速傅里叶变换运算装置,其特征在于,上述内部缓冲器的缓冲器量是上述预定数量行的数据量的2倍以上,
在执行上述第二一维快速傅里叶变换运算电路的处理的过程中,上述第一一维快速傅里叶变换运算电路执行针对下一个成为运算对象的第一运算对象数据的处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006297638 | 2006-11-01 | ||
JP2006297638A JP2008117044A (ja) | 2006-11-01 | 2006-11-01 | 2次元高速フーリエ変換演算方法及び2次元高速フーリエ変換演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101174258A true CN101174258A (zh) | 2008-05-07 |
Family
ID=38987661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101808909A Pending CN101174258A (zh) | 2006-11-01 | 2007-10-19 | 二维快速傅里叶变换运算方法和运算装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080028013A1 (zh) |
JP (1) | JP2008117044A (zh) |
KR (1) | KR20080039793A (zh) |
CN (1) | CN101174258A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104990514A (zh) * | 2015-07-09 | 2015-10-21 | 三峡大学 | 一种动态傅里叶变换轮廓术数据处理装置及方法 |
CN106485669A (zh) * | 2015-08-27 | 2017-03-08 | 三星电子株式会社 | 执行傅立叶变换的装置和方法 |
CN107038678A (zh) * | 2015-12-17 | 2017-08-11 | 三星电子株式会社 | 用于执行傅里叶变换的装置和方法 |
CN107783933A (zh) * | 2016-08-31 | 2018-03-09 | 三星电子株式会社 | 图像处理方法和设备 |
CN108154473A (zh) * | 2016-12-06 | 2018-06-12 | 三星电子株式会社 | 用于处理图像的方法和装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8457502B2 (en) | 2011-07-26 | 2013-06-04 | ByteLight, Inc. | Method and system for modulating a beacon light source in a light based positioning system |
US8436896B2 (en) * | 2011-07-26 | 2013-05-07 | ByteLight, Inc. | Method and system for demodulating a digital pulse recognition signal in a light based positioning system using a Fourier transform |
US8432438B2 (en) | 2011-07-26 | 2013-04-30 | ByteLight, Inc. | Device for dimming a beacon light source used in a light based positioning system |
US8334901B1 (en) | 2011-07-26 | 2012-12-18 | ByteLight, Inc. | Method and system for modulating a light source in a light based positioning system using a DC bias |
US9787397B2 (en) | 2011-07-26 | 2017-10-10 | Abl Ip Holding Llc | Self identifying modulated light source |
US9418115B2 (en) | 2011-07-26 | 2016-08-16 | Abl Ip Holding Llc | Location-based mobile services and applications |
US8520065B2 (en) | 2011-07-26 | 2013-08-27 | ByteLight, Inc. | Method and system for video processing to determine digital pulse recognition tones |
US9287976B2 (en) | 2011-07-26 | 2016-03-15 | Abl Ip Holding Llc | Independent beacon based light position system |
US8334898B1 (en) | 2011-07-26 | 2012-12-18 | ByteLight, Inc. | Method and system for configuring an imaging device for the reception of digital pulse recognition information |
US8416290B2 (en) | 2011-07-26 | 2013-04-09 | ByteLight, Inc. | Method and system for digital pulse recognition demodulation |
US9723676B2 (en) | 2011-07-26 | 2017-08-01 | Abl Ip Holding Llc | Method and system for modifying a beacon light source for use in a light based positioning system |
US8866391B2 (en) | 2011-07-26 | 2014-10-21 | ByteLight, Inc. | Self identifying modulated light source |
US9444547B2 (en) | 2011-07-26 | 2016-09-13 | Abl Ip Holding Llc | Self-identifying one-way authentication method using optical signals |
US8994799B2 (en) | 2011-07-26 | 2015-03-31 | ByteLight, Inc. | Method and system for determining the position of a device in a light based positioning system using locally stored maps |
US9705600B1 (en) | 2013-06-05 | 2017-07-11 | Abl Ip Holding Llc | Method and system for optical communication |
EP3075106A4 (en) | 2013-11-25 | 2017-06-14 | ABL IP Holding LLC | System and method for communication with a mobile device via a positioning system including rf communication devices and modulated beacon light sources |
KR102477093B1 (ko) * | 2015-10-13 | 2022-12-13 | 삼성전자주식회사 | 푸리에 변환을 수행하는 방법 및 장치 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3675537B2 (ja) * | 1995-11-29 | 2005-07-27 | 富士通株式会社 | 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法 |
JP3639207B2 (ja) * | 2000-11-24 | 2005-04-20 | 富士通株式会社 | 共有メモリ型スカラ並列計算機における多次元フーリエ変換の並列処理方法 |
US7315877B2 (en) * | 2001-02-24 | 2008-01-01 | International Business Machines Corporation | Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer |
US7483932B1 (en) * | 2004-05-05 | 2009-01-27 | Sun Microsystems, Inc. | Method and system for computing multidimensional fast Fourier transforms |
GB2425860A (en) * | 2005-05-05 | 2006-11-08 | Advanced Risc Mach Ltd | Multi-dimensional fast fourier transform |
US9342486B2 (en) * | 2008-10-03 | 2016-05-17 | Microsoft Technology Licensing, Llc | Fast computation of general fourier transforms on graphics processing units |
-
2006
- 2006-11-01 JP JP2006297638A patent/JP2008117044A/ja active Pending
-
2007
- 2007-10-02 US US11/865,792 patent/US20080028013A1/en not_active Abandoned
- 2007-10-19 KR KR1020070105409A patent/KR20080039793A/ko not_active Application Discontinuation
- 2007-10-19 CN CNA2007101808909A patent/CN101174258A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104990514A (zh) * | 2015-07-09 | 2015-10-21 | 三峡大学 | 一种动态傅里叶变换轮廓术数据处理装置及方法 |
CN106485669A (zh) * | 2015-08-27 | 2017-03-08 | 三星电子株式会社 | 执行傅立叶变换的装置和方法 |
CN106485669B (zh) * | 2015-08-27 | 2022-01-04 | 三星电子株式会社 | 执行傅立叶变换的装置和方法 |
CN107038678A (zh) * | 2015-12-17 | 2017-08-11 | 三星电子株式会社 | 用于执行傅里叶变换的装置和方法 |
CN107038678B (zh) * | 2015-12-17 | 2021-11-02 | 三星电子株式会社 | 用于执行傅里叶变换的装置和方法 |
CN107783933A (zh) * | 2016-08-31 | 2018-03-09 | 三星电子株式会社 | 图像处理方法和设备 |
CN107783933B (zh) * | 2016-08-31 | 2024-01-09 | 三星电子株式会社 | 图像处理方法和设备 |
CN108154473A (zh) * | 2016-12-06 | 2018-06-12 | 三星电子株式会社 | 用于处理图像的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2008117044A (ja) | 2008-05-22 |
KR20080039793A (ko) | 2008-05-07 |
US20080028013A1 (en) | 2008-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101174258A (zh) | 二维快速傅里叶变换运算方法和运算装置 | |
KR102642853B1 (ko) | 컨볼루션 회로, 그것을 포함하는 어플리케이션 프로세서 및 그것의 동작 방법 | |
CN108171317B (zh) | 一种基于soc的数据复用卷积神经网络加速器 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
JP2019522850A (ja) | ディープニューラルネットワーク用のアクセラレータ | |
CN104899182A (zh) | 一种支持可变分块的矩阵乘加速方法 | |
WO2020076392A1 (en) | Modifying machine learning models to improve locality | |
CN110135565B (zh) | 针对神经网络算法在集成电路上实现性能的评估系统 | |
WO1989012300A1 (en) | Pipelined "best match" content addressable memory | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
Li et al. | K-nearest neighbor algorithm implementation on FPGA using high level synthesis | |
TWI537980B (zh) | 用於寫入經遮罩資料至緩衝器之裝置及方法 | |
Luo et al. | AILC: Accelerate on-chip incremental learning with compute-in-memory technology | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer | |
CN113539318B (zh) | 基于磁性缓存的存内计算电路芯片和计算装置 | |
CN112306951A (zh) | 一种基于fpga的cnn-svm资源高效型加速架构 | |
US10430088B2 (en) | Storage device configured to perform two-way communication with host and operating method thereof | |
Hsiao et al. | Flexible Multi-Precision Accelerator Design for Deep Convolutional Neural Networks Considering Both Data Computation and Communication | |
US9952779B2 (en) | Parallel scheduling of write commands to multiple memory devices | |
CN111563580B (zh) | 一种卷积神经网络实现装置及方法 | |
CN111199307A (zh) | 基于决策树的生产线生产状态预测方法及系统 | |
US20220230060A1 (en) | Neuromorphic device | |
You et al. | A flexible dnn accelerator design with layer pipeline for fpgas | |
US9620237B2 (en) | Semiconductor device and search circuit for and method of searching for erasure count in semiconductor memory | |
Tiejun et al. | An FPGA-based random functional verification method for cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080507 |