本申请要求2015年8月27日在韩国知识产权局递交的韩国专利申请第10-2015-0121031号的优先权,在此通过引用将该申请的公开内容全部并入。
技术领域
符合示范性实施例的方法和装置涉及用于执行傅立叶变换的方法和装置。
背景技术:
在三维(3D)图像技术的领域中,已经在积极进行研究来开发利用能够同时控制光的幅度和相位的复空间光调制器(spatial light modulator,SLM)实时实现高清晰度全息图的装置。
为了再现全息运动图片,使用了计算机生成全息图(computer-generated hologram,CGH)。图像处理装置执行大量的计算来为全息平面上的每个位置计算全息值。换言之,为了表达空间上的一个点,图像处理装置需要执行傅立叶变换操作。为了表达空间的图像,图像处理装置需要执行的傅立叶变换操作的数目与相应像素的数目相同。
诸如电视(TV)和移动设备之类的图像处理装置可处理图像数据来再现全息图像。在此情况下,图像处理装置可对图像数据执行傅立叶变换并且利用变换的数据来再现图像。
当图像处理装置执行傅立叶变换时,执行大量的计算,并且花费许多时间。尤其,诸如移动设备之类的便携设备在大小和可用电力方面是受限的。从而,对于在图像处理装置执行傅立叶变换时减少计算的数目和/或计算时间的方法,存在需求。
技术实现要素:
一个或多个示范性实施例提供了用于减少执行傅立叶变换时的计算量的方法和装置。
一个或多个示范性实施例还提供了用于减少在执行傅立叶变换时使用的存储器的容量的方法和装置。
一个或多个示范性实施例还提供了一种非暂态计算机可读记录介质,其上记录有计算机程序,该计算机程序当被计算机执行时使得该计算机执行上述方法中的任何一种。
根据一示范性实施例的一方面,提供了一种执行傅立叶变换的方法,该方法包括:通过在行方向上对具有行和列的数据执行一维(1D)快速傅立叶变换(FFT)来生成第一数据;通过在列方向上对第一数据的一部分执行1DFFT来生成第二数据;以及存储第二数据的一部分。
生成第一数据可包括响应于第一数据的该部分被生成而完成行方向上的1D FFT。
生成第二数据可包括响应于第二数据被生成而完成列方向上的1D FFT。
第一数据的该部分可基于第一数据的列的一部分,并且该方法还可包括将第一数据的该部分存储在存储器中。
存储第二数据的该部分可包括将第二数据的行的一部分存储在缓冲器中。
第一数据的该部分可包括第一数据之中的低频成分。
第二数据的该部分可包括第二数据之中的低频成分。
根据一示范性实施例的一方面,提供了一种执行傅立叶变换的方法,该方法包括:通过在数据的列方向上对具有行和列的数据执行一维(1D)快速傅立叶变换(FFT)来生成第一数据;通过在行方向上对第一数据的一部分执行1D FFT来生成第二数据;以及存储第二数据的一部分。
根据一示范性实施例的一方面,提供了一种用于执行傅立叶变换的图像处理装置,该图像处理装置包括:第一核,被配置为通过在行方向上对具有行和列的数据执行一维(1D)快速傅立叶变换(FFT)来生成第一数据;存储器,被配置为存储第一数据的一部分;第二核,被配置为通过在列方向上对第一数据的该部分执行1D FFT来生成第二数据;以及缓冲器,被配置为存储第二数据的一部分。
第一核可响应于第二数据被生成而完成行方向上的1D FFT。
第二核可响应于第二数据被生成而完成列方向上的1D FFT。
第一数据的该部分可对应于第一数据的列的一部分。
第二数据的该部分可对应于第二数据的行的一部分。
第一数据的该部分可包括第一数据之中的低频成分。
第二数据的该部分可包括第二数据之中的低频成分。
根据一示范性实施例的一方面,提供了一种用于执行傅立叶变换的图像处理装置,该图像处理装置包括:第一核,被配置为通过在列方向上对具有行和列的数据执行一维(1D)快速傅立叶变换(FFT)来生成第一数据;存储器,被配置为存储第一数据之中的第一数据的一部分;第二核,被配置为通过在行方向上对第一数据的该部分执行1D FFT来生成第二数据;以及缓冲器,被配置为存储第二数据的一部分。
根据一示范性实施例的一方面,提供了一种非暂态计算机可读记录介质,其上记录有计算机程序,该计算机程序当被计算机执行时使得该计算机执行上述方法。
根据一示范性实施例的一方面,提供了一种用于执行傅立叶变换的图像处理装置,该图像处理装置包括:N个(N是2以上的自然数)第一核,被配置为通过在行方向上对具有N×M(M是2以上的自然数)矩阵形式的数据执行一维(1D)快速傅立叶变换(FFT)来生成第一数据;存储器,被配置为存储第一数据的L列(L是小于M的自然数);L个第二核,被配置为在列方向上对第一数据的L列执行1D FFT;以及缓冲器,被配置为存储由L个第二核输出的第二数据。
N个第一核可分别执行M点FFT。
L个第二核可分别执行N点FFT。
图像处理装置还可包括先进先出(FIFO)缓冲器,该FIFO缓冲器被配置为存储第一数据并且把从第一数据的M列中选择的L列输出到存储器。
图像处理装置还可包括交错缓冲器,该交错缓冲器被配置为将L列分别输出到L个第二核。
根据一示范性实施例的一方面,提供了一种用于执行傅立叶变换的图像处理装置,该图像处理装置包括:第一核,被配置为通过在行方向上对具有行和列的数据执行一维(1D)快速傅立叶变换(FFT)来生成第一数据;存储器,被配置为存储第一数据的一部分;第二核,被配置为通过在行方向上对第一数据的该部分执行1D FFT来生成第二数据;以及缓冲器,被配置为存储第二数据的一部分,其中,第一核的数目对应于数据的列数,并且第二核的数目对应于第一数据的该部分的行数。
根据一示范性实施例的一方面,提供了一种图像处理装置,包括:第一核,被配置为在行方向和列方向的一者上对具有行和列的数据的至少一部分执行第一一维(1D)快速傅立叶变换(FFT);第二核,被配置为在行方向和列方向的另一者上对通过执行第一1D FFT获得的第一数据的一部分执行第二1D FFT;以及控制器,被配置为基于执行第一1D FFT和第二1D FFT的结果生成全息图像。
控制器可选择通过执行第二1D FFT获得的第二数据的一部分,并且基于第二数据的所选部分生成全息图像。
控制器可生成具有与第二数据的所选部分的像素值相对应的像素和具有为零的像素值的其余像素的全息图像。
第一数据的该部分可包括第一数据之中的低频成分和高频成分的至少一者。
附图说明
通过参考附图描述某些示例实施例,上述和/或其他方面将更清楚,附图中:
图1是图示出处理图像数据的过程的示意图;
图2是根据一示范性实施例的傅立叶变换方法的流程图;
图3图示了根据一示范性实施例执行傅立叶变换的操作;
图4图示了根据另一示范性实施例执行傅立叶变换的操作;
图5是根据另一示范性实施例的傅立叶变换的流程图;
图6图示了根据另一示范性实施例执行傅立叶变换的操作;
图7图示了根据另一示范性实施例执行傅立叶变换的操作;
图8是根据一示范性实施例的图像处理装置的框图;
图9是根据另一示范性实施例的图像处理装置的框图;
图10是根据另一示范性实施例的图像处理装置的框图;
图11是用于说明根据数据的大小的傅立叶变换方法的框图;并且
图12是根据另一示范性实施例的图像处理装置的框图。
具体实施方式
将参考附图描述某些示范性实施例如下,附图中相似的标号始终指代相似的元素。示范性实施例可具有不同的形式,而不应当被解释为限于本文记载的描述。从而,下面仅仅是参考附图描述示范性实施例以说明本公开的各方面。
图1是图示出根据一示范性实施例处理图像数据的过程的示意图。参考图1,图像处理装置可接收图像数据并且输出被执行了图像处理的图像。
在操作110中,图像处理装置接收图像数据。例如,在计算机生成全息术(computer-generated holography,CGH)中,当基于层的算法被应用到图像数据时,图像数据可包括颜色数据、深度数据等等。颜色数据可包括对于每个平面表示多个颜色的数据。基于层的算法可用于实现一种基于深度来处理全息图的再现区域被分割成的多个平面的每一者的数据的方法。图像处理装置可通过对每个平面的数据执行傅立叶变换或逆傅立叶变换来生成全息图像。
在操作120中,图像处理装置执行图像质量校正和/或场计算。图像处理装置可校正图像数据以改善图像数据的图像质量。
在操作130中,图像处理装置执行傅立叶变换或快速傅立叶变换(fast Fourier transform,FFT)。例如,图像处理装置可对二维(2D)矩阵型的图像数据执行傅立叶变换。图像处理装置可执行一维(1D)傅立叶变换两次以实现2D傅立叶变换。图像处理装置可在行方向上对图像数据执行1D傅立叶变换并且在列方向上对1D傅立叶变换的结果执行1D傅立叶变换。图像处理装置经由傅立叶变换生成全息图像。
图像处理装置可包括多个核。这多个核可并行对图像数据执行傅立叶变换。例如,图像处理装置可将每个平面的图像数据分配到多个核,并且这多个核可对分配的图像数据执行傅立叶变换。
下面将参考图2至图6详细描述根据示范性实施例的图像处理装置对图像数据执行傅立叶变换的过程。
在操作140中,图像处理装置执行像素编码。图像处理装置经由像素编码生成要被输入来提供屏幕的数据。
在操作150中,图像处理装置将图像输出到图像显示器。
根据一示范性实施例的图像处理装置可通过在操作140中仅对图像数据的一部分执行傅立叶变换来减少计算的数目。例如,图像数据的该部分可以是要对其执行至少一个或多个计算的数据。图像处理装置也可通过在操作140中仅存储图像数据的一部分来减少要存储在存储器中的数据的量。
图2是根据一示范性实施例的傅立叶变换方法的流程图。
在操作210中,根据一示范性实施例的图像处理装置通过在数据的行方向上执行1D FFT来生成中间数据,其中该数据可以是2D矩阵类型的。换言之,根据一示范性实施例的图像处理装置对每一行中包括的像素值执行1D FFT。
在操作220中,根据一示范性实施例的图像处理装置存储中间数据之中的部分数据。图像处理装置可仅存储中间数据之中的例如包括低频成分(或相对低频成分)的部分数据。例如,低频成分可存在于中间数据的中央部分中。图像处理装置可仅将中间数据的中央部分中的一些列中包括的数据存储在存储器中。
类似地,图像处理装置可仅存储中间数据之中的例如包括高频成分(或相对高频成分)的部分数据。例如,高频成分可存在于中间数据的中央部分中。
在操作230中,根据一示范性实施例的图像处理装置通过在部分数据的列方向上执行1D FFT来生成最终数据。图像处理装置对部分数据的每一列中包括的像素值执行1D FFT。
在操作240中,根据一示范性实施例的图像处理装置将最终数据的一部分存储为输出数据。图像处理装置可仅存储最终数据之中的例如包括低频成分的输出数据。例如,低频成分可存在于最终数据的中央部分中。从而,图像处理装置可仅存储最终数据的一些行中包括的数据。
图3图示了根据一示范性实施例执行傅立叶变换的操作。虽然在图3中为了说明的方便将数据表达为矩形,但数据可被理解为像素值的集合,并且箭头指示图像处理装置对像素值执行FFT的过程。
根据一示范性实施例的图像处理装置在行方向上对数据310执行1D FFT。
中间数据320包括通过在行方向上变换数据310而获得的数据。换言之,中间数据320包括变换的像素值。
部分数据330指示中间数据320的一部分。例如,图像处理装置可仅将中间数据320的一部分存储在存储器中。换言之,图像处理装置可只将中间数据320之中的边界301和边界302之间的像素值作为部分数据330存储在存储器中。从而,与将中间数据320的全部部分存储在存储器中的情况相比,图像处理装置通过只将部分数据330存储在存储器中可减少要存储的数据的量(或者对存储器的存储空间的使用)。
图像处理装置可从中间数据320中选择一些像素值并且基于选择的中间数据320的像素值和其余的为零的像素值来生成部分数据330。部分数据330的阴影部分指示所选择的中间数据320的像素值,并且部分数据330的白色部分指示为零的像素值。
图像处理装置在列方向上对部分数据330执行1D FFT。在部分数据330上标记的箭头指示执行1D FFT的方向。
最终数据340包括通过在列方向上变换部分数据330而获得的数据。因此,最终数据340包括通过在行方向和列方向上对数据310执行2D傅立叶变换而获得的数据。
图像处理装置可仅将最终数据340的一部分存储在存储器中。输出数据350指示最终数据340的一部分。图像处理装置可仅将最终数据340之中的由边界301-304限定的像素值作为输出数据330存储在存储器中。
图像处理装置也可从最终数据340中选择一些像素值并且基于选择的最终数据340的像素值和其余的为零的像素值来生成输出数据350。输出数据350的阴影部分指示最终数据340的像素值,并且输出数据350的白色部分指示为零的像素值。
图4图示了根据另一示范性实施例执行傅立叶变换的操作。参考图4,当图像处理装置获取了用于生成输出数据450的数据时,图像处理装置可提早结束傅立叶变换并减少计算量。
图像处理装置在行方向上对数据410执行傅立叶变换,直到数据410的边界401为止。换言之,图像处理装置对边界401内的像素计算傅立叶变换值(或傅立叶变换的像素值)。
中间数据420包括通过在行方向上变换数据410而获得的数据。换言之,中间数据420包括变换的像素值。
图像处理装置把包括中间数据420的边界401、402和403所限定的像素的变换值的部分数据430存储在存储器中。部分数据430包括由边界401-403限定的像素的变换值并且其余像素值可为零。
图像处理装置在列方向上对部分数据430执行傅立叶变换,直到边界403为止。详细地说,图像处理装置对部分数据430的边界401-403所限定的像素值执行傅立叶变换。
最终数据440包括通过在列方向上变换部分数据430而获得的数据。因此,最终数据440包括通过在行方向和列方向上对数据410执行2D傅立叶变换而获得的数据。
图像处理装置可仅将最终数据440的一部分存储在存储器中。输出数据450包括最终数据440的边界401-403和边界404所限定的数据。输出数据450的其余像素值可为零。换言之,输出数据450的阴影部分指示最终数据440的像素值,并且输出数据450的白色部分指示为零的像素值。
图5是根据另一示范性实施例的傅立叶变换的流程图。根据另一示范性实施例,图像处理装置可按列和行的顺序执行傅立叶变换,这与图2的实施例不同。
在操作510中,图像处理装置通过在数据的列方向上执行1D FFT来生成中间数据。数据可以是2D矩阵类型的,并且图像处理装置对每一列中包括的像素值执行1D FFT。
在操作520中,图像处理装置存储中间数据之中的部分数据。图像处理装置可仅存储中间数据之中的包括低频成分的部分数据。例如,低频成分可存在于中间数据的中央部分中。图像处理装置可仅将中间数据的中央部分中的一些行中包括的数据存储在存储器中。
在操作530中,图像处理装置通过在行方向上对部分数据执行1D FFT来生成最终数据。图像处理装置对部分数据的每一行中包括的像素值执行1D FFT。
在操作540中,图像处理装置将最终数据的一部分存储为输出数据。图像处理装置可仅存储最终数据之中的包括低频成分的输出数据。例如,低频成分可存在于最终数据的中央部分中。从而,图像处理装置可仅存储最终数据的一些列中包括的数据。
图6图示了根据另一示范性实施例执行傅立叶变换的操作。虽然在图6中为了说明的方便将数据表达为矩形,但数据可被理解为像素值的集合,并且箭头指示图像处理装置对像素值执行的FFT。
图像处理装置在列方向上对数据610执行1D FFT。
中间数据620包括通过在列方向上变换数据610而获得的数据。换言之,中间数据620包括变换的像素值。
部分数据630指示中间数据620的一部分。图像处理装置可仅将中间数据620的一部分存储在存储器中。换言之,图像处理装置可仅将中间数据620的像素值的一部分存储为部分数据630。例如,图像处理装置可将中间数据620之中的边界601和边界602之间的像素值作为部分数据630存储在存储器中。从而,与将中间数据620的全部部分存储在存储器中相比,图像处理装置通过只将部分数据630存储在存储器中可减少要存储的数据的量(或者对存储器的存储空间的使用)。
图像处理装置可从中间数据620中选择一些像素值并且基于选择的像素值和其余的为零的像素值来生成部分数据630。部分数据630的阴影部分指示中间数据620的像素值,并且部分数据630的白色部分指示为零的像素值。
图像处理装置在行方向上对部分数据630执行1D FFT。在部分数据630上标记的箭头指示执行1D FFT的方向。
最终数据640包括通过在列方向上变换部分数据630而获得的数据。因此,最终数据640包括通过在列方向和行方向上对数据610执行2D傅立叶变换而获得的数据。
图像处理装置可仅将最终数据640的一部分存储在存储器中。输出数据650指示最终数据640的一部分。图像处理装置可仅将最终数据640之中的由边界601、602、603和604限定的像素值作为输出数据630存储在存储器中。
图像处理装置也可从最终数据640中选择一些像素值并且通过用0填充其余像素值来生成输出数据650。输出数据650的阴影部分指示最终数据640的像素值,并且其白色部分指示为0的像素值。
图7图示了根据另一示范性实施例执行傅立叶变换的操作。参考图7,当图像处理装置获取了用于生成输出数据750的数据时,图像处理装置可提早结束傅立叶变换并减少计算量。
图像处理装置在列方向上执行傅立叶变换直到数据710的边界701为止。换言之,图像处理装置对边界701内的像素计算傅立叶变换值。
中间数据720包括通过在列方向上变换数据710而获得的数据。换言之,中间数据720包括变换的像素值。
图像处理装置把包括中间数据720的边界701、702和703所限定的变换值的部分数据730存储在存储器中。部分数据730包括由边界701-703限定的变换值并且其余像素值可为零。
图像处理装置在行方向上对部分数据730执行傅立叶变换,直到边界703为止。详细地说,图像处理装置对部分数据730的边界701-703所限定的像素值执行傅立叶变换。
最终数据740包括通过在行方向上变换部分数据730而获得的数据。因此,最终数据740包括通过在列方向和行方向上对数据710执行2D傅立叶变换而获得的数据。
图像处理装置可仅将最终数据740的一部分存储在存储器中。输出数据750包括最终数据740之中的由边界701-703和边界704所限定的数据。输出数据750的其余像素值可为零。换言之,输出数据750的阴影部分指示最终数据740的像素值,并且其白色部分指示为零的像素值。
图8是根据一示范性实施例的图像处理装置的框图。参考图8,处理器800可以是图像处理装置或傅立叶变换装置的示例。
处理器800包括控制器810、第一核820、存储器830、第二核840和缓冲器850。虽然处理器800在图8中包括两个核,即第一和第二核820和840,但处理器800可包括多于两个核。
控制器810例如控制第一核820、存储器830和第二核840。控制器810可指定第一和第二核820和840要执行的操作。例如,控制器810可控制第一核820在行方向上对数据执行1D FFT。控制器810可控制第一核820在行方向上仅对数据的一部分执行1D FFT。控制器810也可控制第二核840在列方向上对数据执行1D FFT。控制器810可控制第二核840在列方向上仅对数据的一部分执行1D FFT。
控制器810可将第一核820获得的结果数据存储在存储器830中。控制器810可只将结果数据之中的期望数据存储在存储器830中。例如,控制器810可将第一核820获得的结果数据之中的部分数据存储在存储器830中。
控制器810可指定第一核840要从存储器830读取的数据。例如,控制器810可以把在行方向上顺序存储的结果数据在列方向上输出到第二核840。另一方面,控制器810可以把在列方向上顺序存储的结果数据在行方向上输出到第二核840。
控制器810可将第二核840获得的结果数据存储在缓冲器850中。控制器810只将结果数据之中的期望数据存储在缓冲器850中。例如,控制器810可将第二核840获得的结果数据之中的部分数据存储在缓冲器850中。控制器810可利用缓冲器850中存储的部分数据生成三维(3D)图像(例如,全息图像)。
第一核820可对数据执行傅立叶变换。例如,第一核820可在行方向上或在列方向上对图像数据执行1D FFT。第一核820可只将变换的数据的一部分输出到存储器830。例如,第一核820可只将变换的数据的四分之一输出到存储器830,或者可只将变换的数据之中的与低频成分相对应的数据输出到存储器830。
第二核840可对数据执行傅立叶变换。例如,第二核840可在列方向上或在行方向上对图像数据执行1D FFT。第二核840可只将变换的数据的一部分输出到缓冲器850。第二核840可只将变换的数据的四分之一输出到缓冲器850,或者可只将变换的数据之中的与低频成分相对应的数据输出到缓冲器850。
通过只对数据的一部分执行傅立叶变换,处理器800可减少与执行傅立叶变换相关联的计算量和/或计算时间。另外,通过只将数据的一部分存储在存储器830或缓冲器850中,处理器800可具有大小减小的存储器830或大小减小的缓冲器850并且可减少在存储器830或缓冲器850中存储数据所花的时间。
图9是根据另一示范性实施例的图像处理装置的框图。参考图9,处理器900可以是图像处理装置或傅立叶变换装置的示例。虽然图9图示了十六个核920,但核920的数目不限于此并且在处理器900内可包括任意数目的核920。
控制器910、多个核920和存储器930可连接到彼此并从而可向彼此发送或从彼此接收数据和/或控制信号。多个核920和存储器930可连接到彼此,从而多个核920可向存储器930写入数据或从存储器930读取数据。
处理器900可包括控制器910、多个核920和存储器930。控制器910控制多个核920和存储器930。控制器910可指定多个核920分别要执行的操作,并且分配要被多个核920处理的数据。例如,当基于层的算法被应用到图像数据时,控制器910可将与各个层相对应的图像数据分配到多个核920之一。
多个核920可执行图像质量校正和/或场计算或执行像素编码。
多个核920可执行傅立叶变换。例如,多个核920可在行方向上或在列方向上执行1D FFT。控制器910可利用在行方向上或在列方向上执行1D FFT的结果生成三维(3D)图像(例如,全息图像)。
图10是根据另一示范性实施例的图像处理装置的框图。参考图10,处理器1000包括控制器1010、第一核1020、存储器1030、第二核1040和缓冲器1050。
第一核1020可在行方向上或在列方向上对数据执行1D FFT。在第一核1020在行方向上对数据执行1D FFT的情况下,第二核1040可在列方向上对数据执行1D FFT。或者,在第一核1020在列方向上对数据执行1D FFT的情况下,第二核1040可在行方向上对数据执行1D FFT。
现在将举例说明第一核1020在行方向上执行傅立叶变换的情况。第一核1020对数据的每一行执行1D FFT。详细地说,每个第一核1020在数据的每一行的方向上接收数据,对接收到的数据执行1D FFT,并且将变换的数据输出到存储器1030。从而,第一核1020的数目可与数据的行数相同。然而,示范性实施例不限于此。
存储器1030在行方向上存储变换的数据。存储器1030可只存储变换的数据之中的部分数据。
第二核1040对存储器1030中存储的部分数据的每一列执行1D FFT。详细地说,每个第二核1040在变换的数据的每一列的方向上接收数据,对接收到的数据执行1D FFT,并且将变换的数据输出到缓冲器1050。从而,第二核1040的数目可与部分数据的列数相同。然而,示范性实施例不限于此。
控制器1010可利用第二核1040执行1D FFT的结果生成三维(3D)图像(例如,全息图像)。
图11是用于说明根据数据的大小的傅立叶变换方法的框图。为了说明的方便,图11图示了图10的图像处理装置对具有N×M矩阵形式的数据100执行傅立叶变换的示例。
N个第一核1020可对数据100的每一行执行M点FFT。由于数据100包括N行,所以可使用N个第一核1020。由于数据100包括M列,所以第一核1020的每一者执行M点FFT。M点FFT表示对M个像素执行的1D FFT。
存储器1030存储L条列数据。由第一核1020获得的变换数据具有N×M的大小,但N×M变换数据只有一部分被存储在存储器1030中。例如,N×M变换数据之中的L条列数据可被存储在存储器1030中,其中L是小于M的自然数。
L个第二核1040可执行N点FFT。由于存储器1030中存储的数据包括L条列数据,所以可使用L个第二核1040。由于L条列数据包括N行,所以第二核1040的每一者对L条列数据的每一列执行N点FFT。
第二核1040输出的数据可具有N×L矩阵形式。然而,可从N×L数据中选择一些行。例如,当选择K行时(K是小于N的自然数),缓冲器1050可存储K×L数据。例如,K行可以是N×L数据之中的中间行。从而,缓冲器1050可具有足以存储大小为K×L的数据的大小。
图12是根据另一示范性实施例的图像处理装置的框图。参考图12,处理器1200包括第一核1210、存储器1230、第二核1250、先进先出(first in,first out,FIFO)缓冲器1220和交错缓冲器1240。
第一核1210可在行方向上对数据执行1D FFT并且将变换的数据输出到FIFO缓冲器1220。
FIFO缓冲器1220存储由第一核1210输出的数据并且将存储的数据顺序地输出到存储器1230。FIFO缓冲器1220可只将存储的数据的一部分输出到存储器1230。例如,如上文参考图11所述,FIFO缓冲器1220可将大小为N×L的数据输出到存储器1230。
交错缓冲器1240可将从存储器1230接收的数据输出到第二核1250。交错缓冲器1240可将N×L数据输出到第二核1250的每一者以使得第二核1250可在列方向上对N×L数据执行1D FFT。例如,交错缓冲器1240可向第一个第二核1250以1×N的形式输出N×L数据之中的N×1形式的第一列数据。换言之,交错缓冲器1240以1×N形式输出在存储器1230中以N×1形式存储的数据。
第二核1250对接收到的数据执行1D FFT。由于每个第二核1250接收1×N数据,所以每个第二核1250对接收到的1×N数据执行1D FFT。
从全部数据中选择要被执行傅立叶变换的数据,并且对选择的数据执行傅立叶变换,从而减少了执行傅立叶变换时产生的计算量。
此外,从全部数据中选择要被执行傅立叶变换的数据,并且只将选择的数据存储在存储器中,从而减少了执行傅立叶变换时使用的存储器空间。
另外,减少了被执行傅立叶变换的数据,从而可减少执行傅立叶变换的核的数目。
根据示范性实施例的装置可包括用于存储程序数据的存储器、用于执行程序数据的处理器、诸如盘驱动器之类的永久存储单元、用于处理与外部设备的通信的通信端口、以及包括触摸面板、键、按钮等等在内的用户界面设备。当涉及软件模块或算法时,软件模块或算法可在计算机可读介质中被存储为在处理器上可执行的程序指令和/或计算机可读代码。计算机可读记录介质的示例包括磁存储介质(例如,只读存储器(read-only memory,ROM)、随机访问存储器(random-access memory,RAM)、软盘和硬盘等等),以及光记录介质(例如,致密盘(compact disk,CD)-ROM,或数字多功能盘(digital versatile disk,DVD))。计算机可读记录介质还可分布在由网络耦合的计算机系统上,以使得计算机可读代码被以分布方式来存储和执行。此介质可被计算机读取、存储在存储器中并由处理器执行。
可以按功能块组件和/或各种处理步骤来描述示范性实施例。这种功能块可由被配置为执行指定的功能的任意数目的硬件和/或软件组件实现。例如,示范性实施例可采用各种集成电路(integrated circuit,IC)组件,例如存储元件、处理元件、逻辑元件、查找表等等,它们可在一个或多个微处理器或其他控制设备的控制下执行多种功能。类似地,在利用软件编程或软件元素实现元件的情况下,示范性实施例可以用诸如C、C++、Java、汇编语言之类的任何编程或脚本语言来实现,其中各种算法由数据结构、对象、进程、例程或其他编程元素的任何组合实现。功能方面可实现在一个或多个处理器上执行的算法中。另外,示范性实施例可采用任意数目的用于电子器件配置、信号处理和/或控制、数据处理等等的传统技术。词语“机制”、“元素”、“手段”和“配置”这些词被宽泛地使用,并不限于机械或物理实施例,而是可包括结合处理器的软件例程等等。
如附图中所示的方块所表示的组件、元件、模块或单元的至少一者可实现为根据示范性实施例执行上述的各个功能的各种数目的硬件、软件和/或固件结构。例如,这些组件、元件或单元的至少一者可使用可通过一个或多个微处理器或其他控制装置的控制执行各个功能的直接电路结构,例如存储器、处理器、逻辑电路、查找表等等。另外,这些组件、元件或单元的至少一者可由包含用于执行指定的逻辑功能的一个或多个可执行指令的模块、程序或代码的一部分具体实现并且由一个或多个微处理器或其他控制装置执行。另外,这些组件、元件或单元的至少一者还可包括诸如执行各个功能的中央处理单元(central processing unit,CPU)、微处理器等等之类的处理器或者由该处理器实现。这些组件、元件或单元中的两者或更多者可被组合成执行被组合的两个或更多个组件、元件或单元的所有操作或功能的单一一个组件、元件或单元。另外,这些组件、元件或单元的至少一者的功能的至少一部分可由这些组件、元件或单元的另一者执行。另外,虽然在上述框图中没有图示总线,但组件、元件或单元之间的通信可通过总线执行。上述示范性实施例的功能方面可实现在一个或多个处理器上执行的算法中。另外,由方框或处理步骤表示的组件、元件或单元可采用任意数目的用于电子器件配置、信号处理和/或控制、数据处理等等的相关技术。
本文示出和描述的特定实现方式是说明性示例,而并不打算以任何方式在其他方面限制本公开的范围。为了简洁起见,可不详细描述传统的电子器件、控制系统、软件开发和系统的其他功能方面。另外,所给出的各图中示出的连接线或连接器打算表示各种元件之间的示范性功能关系和/或物理或逻辑耦合。应当注意,在实际装置中可存在许多替换或附加功能关系、物理连接或逻辑连接。
在描述本公开的上下文中(尤其是在所附权利要求的上下文中)对术语“一”及类似指称的使用要被解释为既覆盖了单数形式也覆盖了复数形式。此外,除非本文另有指明,否则本文记载值的范围只是想要作为单独提及属于该范围内的每个单独值的快捷方法,并且每个单独值被包含到说明书中,就好像其在本文中被单独记载了那样。另外,本文描述的所有方法的步骤可按任何适当的顺序来执行,除非本文另有指示或者与上下文明显矛盾。本公开不限于所描述的步骤的顺序。对任何和所有示例的使用或者本文提供的示范性语言(例如,“比如”)只是想要更好地说明发明构思,而并不想要对发明构思的范围造成限制,除非权利要求另有限定。在不脱离精神和范围的情况下,本领域普通技术人员将容易清楚许多修改和适应性改变。
示范性实施例应当仅从描述意义上来考虑,而不是用于限制的。对每个实施例内的特征或方面的描述通常应当被认为可用于其他实施例中的其他类似特征或方面。
虽然已示出并描述了几个实施例,但本领域技术人员将会明白,在不脱离本公开的原理和精神的情况下,可对示例实施例进行改变,本公开的范围在权利要求及其等同物中限定。