CN111754393B - 图像处理方法、系统、电子设备和介质 - Google Patents

图像处理方法、系统、电子设备和介质 Download PDF

Info

Publication number
CN111754393B
CN111754393B CN202010598240.1A CN202010598240A CN111754393B CN 111754393 B CN111754393 B CN 111754393B CN 202010598240 A CN202010598240 A CN 202010598240A CN 111754393 B CN111754393 B CN 111754393B
Authority
CN
China
Prior art keywords
image
data
butterfly
frequency domain
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.)
Active
Application number
CN202010598240.1A
Other languages
English (en)
Other versions
CN111754393A (zh
Inventor
张晓盟
刘晓伟
陈欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN202010598240.1A priority Critical patent/CN111754393B/zh
Priority to CN202211321342.4A priority patent/CN115601228A/zh
Publication of CN111754393A publication Critical patent/CN111754393A/zh
Application granted granted Critical
Publication of CN111754393B publication Critical patent/CN111754393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20056Discrete and fast Fourier transform, [DFT, FFT]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种图像处理方法、系统、电子设备和介质,其中图像处理方法包括以下步骤:将待处理图像划分为若干图像块;对图像块进行整形FFT变换以得到图像块频域数据;对图像块频域数据进行频域处理以得到图像块频域处理后数据;对图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果;根据各个图像块对应的图像块IFFT变换结果得到结果图像。本发明有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。

Description

图像处理方法、系统、电子设备和介质
技术领域
本发明属于图像处理技术领域,尤其涉及一种图像处理方法、系统、电子设备和介质。
背景技术
傅立叶变换的快速实现方法最常见的便是Cooley和Tukey发明的FFT(FastFourier Transform,快速傅里叶变换)算法,FFT的的基本思想是将原有N点序列分解成两个或更多的较短序列并重新组合成原序列的DFT(离散傅里叶变换),使间接算法的运算次数比直接计算DFT的运算次数少得多,从而提高DFT的计算速度。
一方面,FFT/IFFT(反快速傅里叶变换)的分解运算基本可分为两类:一类是将时间序列x(n)进行逐次分解,称为按时间抽取算法(Decimation In Time,DIT);另一类将傅立叶变换序列X(k)进行分解,称为按频率抽取算法(Decimation In Frequency,DIF)。而按照FFT分解的短序列的个数M,可以将FFT/IFFT算法可以分为若干种,一般称为基-M算法。例如,基2FFT算法可以将N点DFT运算分解成N/2*log2N个2点DFT运算过程;基4FFT算法可以将N点DFT运算分解成N/4*log4N个4点DFT运算过程。
目前存在许多关于FFT运算器的优化,优化方向主要是针对硬件实现结构的优化,目标是优化占用硬件资源及功耗时效等方面。与硬件的FFT处理器相比,传统的FFT软件运行速度缓慢。
SRFFT(分裂基FFT)算法是FFT优化的典型代表,它将FFT计算所需的乘法与加法个数进一步明显减少。但尽管如此,当需要执行多次FFT运算时,串行的处理时间仍然不能满足实际应用的需要。
受耗时与计算复杂度大的影响,针对产品级应用而开发的图像处理算法大概率是基于空间像素域做处理,较少涉及频域处理。原因不是频域的算法处理复杂度高低,而是时频空间转换所涉及的傅立叶正变换与反变换两个过程太过耗时。为解决这个问题,许多算法利用时频空间的特性绕过频域处理,例如,利用时域的卷积去替代频域的点乘运算。
然而,对于诸如自适应的频域滤波器,这种方法就会容易失效,原因是等效的空间滤波器阶数太大或者过于复杂而难以应用,从而使频域处理无法被时域处理合理替代。另一种解决方法是将频域处理的过程硬件化以提升速度。然而由于硬件化不仅受制于硬件面积等的制约,且开发周期长,灵活性欠缺,不适合快速开发与更新。
移动端的应用,以手机为例,强调实时性,并要求对硬件资源占用少。这些条件很大程度上限制了图像的频域处理技术被采用,主要原因在于时频空间变换基于软件的实现太耗时,满足不了时间要求。
发明内容
本发明要解决的技术问题是为了克服现有技术中图像处理耗时较长的缺陷,提供一种图像处理方法、系统、电子设备和介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种图像处理方法,包括以下步骤:
将待处理图像划分为若干图像块;
对图像块进行整形FFT变换以得到图像块频域数据;
对图像块频域数据进行频域处理以得到图像块频域处理后数据;
对图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果;
根据各个图像块对应的图像块IFFT变换结果得到结果图像。
较佳地,将待处理图像划分为若干图像块的步骤包括:
将待处理图像划分为若干图像单元,图像单元由相邻的像素组成,任意两个图像单元不交叠;图像单元包括第一类图像单元和第二类图像单元,第一类图像单元具有N行N列像素,N为2的整数次幂,第二类图像单元为第一类图像单元以外的图像单元;
将第二类图像单元拓展为具有N行N列像素的拓展后单元;
以第一类图像单元和拓展后单元作为图像块。
较佳地,对图像块进行整形FFT变换的步骤包括:
构建第一整形数组和第二整形数组,第一整形数组包括N个第一元素,每一个第一元素用于存储输入数据的实部,第二整形数组包括N个第二元素,每一个第二元素用于存储输入数据的虚部;
提升输入数据的数值部分的位宽至第一目标位宽以形成扩展数据;
基于扩展数据进行蝶形运算。
较佳地,N小于等于64。
较佳地,第一目标位宽Wt=N_in_fft+N_up,其中,N_in_fft表征输入数据的数值部分的位宽,N_up=32-1-N_in_fft-2*k,k=log2(N),k表征FFT需要的蝶形运算阶段的个数。
较佳地,基于扩展数据进行蝶形运算的步骤包括:
对用于蝶形运算的权重因子进行整形化处理。
较佳地,基于扩展数据进行蝶形运算的步骤包括:
先按行方向进行蝶形运算,然后按列方向进行蝶形运算;
或,先按列方向进行蝶形运算,然后按行方向进行蝶形运算。
较佳地,在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行;在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。
较佳地,对图像块进行整形FFT变换以得到图像块频域数据的步骤包括:
对各个图像块并行进行整形FFT变换以得到每一个图像块对应的图像块频域数据;
对图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果的步骤包括:
对各个图像块频域处理后数据并行进行IFFT变换以得到每一个图像块对应的图像块IFFT变换结果。
较佳地,对图像块频域处理后数据进行IFFT变换的步骤包括:
对图像块频域处理后数据进行共轭处理以得到共轭数据;
提升共轭数据的数值部分的位宽至第二目标位宽以形成扩展共轭数据;
对扩展共轭数据进行蝶形运算。
较佳地,第二目标位宽为N_in_ifft+N_iup,其中,N_iup=32-2-N_in_ifft,N_in_ifft=N_in+2*k,N_in表征图像块的原始数据的数值部分的位宽,k表征IFFT需要的蝶形运算阶段的个数。
较佳地,对共轭数据进行蝶形运算的步骤包括:
先按行方向进行蝶形运算,再按列方向进行蝶形运算。
较佳地,先按行方向进行蝶形运算的步骤包括:
每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;或,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位;
再按列方向进行蝶形运算的步骤包括:
每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;或,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位。
较佳地,根据各个图像块对应的图像块IFFT变换结果得到结果图像的步骤包括:
将各个图像块对应的图像块IFFT变换结果拼接为中间图像;
对中间图像进行平滑滤波处理以得到结果图像。
较佳地,基于扩展数据进行蝶形运算的步骤包括:
先按行方向对各行并行进行蝶形运算,然后按列方向对若干目标列并行进行蝶形运算以得到局部频域数据,然后基于局部频域数据根据傅里叶变换的共轭对称性得到图像块频域数据,若干目标列为图像块的[1,N/2+1]列;
或,基于扩展数据进行蝶形运算的步骤包括:
先按列方向对各列并行进行蝶形运算,然后按行方向对若干目标行并行进行蝶形运算以得到局部频域数据,然后基于局部频域数据根据傅里叶变换的共轭对称性得到图像块频域数据,若干目标行为图像块的[1,N/2+1]行。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本发明的图像处理方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本发明的图像处理方法的步骤。
本发明还提供一种图像处理系统,包括划分单元、整形FFT变换单元、频域处理单元、IFFT变换单元、结果图像生成单元;
划分单元用于将待处理图像划分为若干图像块;
整形FFT变换单元用于对图像块进行整形FFT变换以得到图像块频域数据;
频域处理单元用于对图像块频域数据进行频域处理以得到图像块频域处理后数据;
IFFT变换单元用于对图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果;
结果图像生成单元用于根据各个图像块对应的图像块IFFT变换结果得到结果图像。
较佳地,划分单元还用于将待处理图像划分为若干图像单元,图像单元由相邻的像素组成,任意两个图像单元不交叠;图像单元包括第一类图像单元和第二类图像单元,第一类图像单元具有N行N列像素,N为2的整数次幂,第二类图像单元为第一类图像单元以外的图像单元;
划分单元还用于将第二类图像单元拓展为具有N行N列像素的拓展后单元;
划分单元还用于以第一类图像单元和拓展后单元作为图像块。
较佳地,整形FFT变换单元还用于构建第一整形数组和第二整形数组,第一整形数组包括N个第一元素,每一个第一元素用于存储输入数据的实部,第二整形数组包括N个第二元素,每一个第二元素用于存储输入数据的虚部;
整形FFT变换单元还用于提升输入数据的数值部分的位宽至第一目标位宽以形成扩展数据;
整形FFT变换单元还用于基于扩展数据进行蝶形运算。
较佳地,N小于等于64。
较佳地,第一目标位宽Wt=N_in_fft+N_up,其中,N_in_fft表征输入数据的数值部分的位宽,N_up=32-1-N_in_fft-2*k,k=log2(N),k表征FFT需要的蝶形运算阶段的个数。
较佳地,整形FFT变换单元还用于对用于蝶形运算的权重因子进行整形化处理。
较佳地,整形FFT变换单元还用于先按行方向进行蝶形运算,然后按列方向进行蝶形运算;
或,整形FFT变换单元还用于先按列方向进行蝶形运算,然后按行方向进行蝶形运算。
较佳地,在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行;在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。
较佳地,整形FFT变换单元还用于对各个图像块并行进行整形FFT变换以得到每一个图像块对应的图像块频域数据;
IFFT变换单元还用于对各个图像块频域处理后数据并行进行IFFT变换以得到每一个图像块对应的图像块IFFT变换结果。
较佳地,IFFT变换单元还用于对图像块频域处理后数据进行共轭处理以得到共轭数据;
IFFT变换单元还用于提升共轭数据的数值部分的位宽至第二目标位宽以形成扩展共轭数据;
IFFT变换单元还用于对扩展共轭数据进行蝶形运算。
较佳地,第二目标位宽为N_in_ifft+N_iup,其中,N_iup=32-2-N_in_ifft,N_in_ifft=N_in+2*k,N_in表征图像块的原始数据的数值部分的位宽,k表征IFFT需要的蝶形运算阶段的个数。
较佳地,IFFT变换单元还用于先按行方向进行蝶形运算,再按列方向进行蝶形运算。
较佳地,按行方向进行蝶形运算时,IFFT变换单元还用于每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;
或,IFFT变换单元还用于依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位;
按列方向进行蝶形运算时,IFFT变换单元还用于每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;
或,IFFT变换单元还用于依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位。
较佳地,结果图像生成单元还用于将各个图像块对应的图像块IFFT变换结果拼接为中间图像;
结果图像生成单元还用于对中间图像进行平滑滤波处理以得到结果图像。
较佳地,整形FFT变换单元先按行方向对各行并行进行蝶形运算,然后按列方向对若干目标列并行进行蝶形运算以得到局部频域数据,然后基于局部频域数据根据傅里叶变换的共轭对称性得到图像块频域数据,若干目标列为图像块的[1,N/2+1]列;
或,整形FFT变换单元先按列方向对各列并行进行蝶形运算,然后按行方向对若干目标行并行进行蝶形运算以得到局部频域数据,然后基于局部频域数据根据傅里叶变换的共轭对称性得到图像块频域数据,若干目标行为图像块的[1,N/2+1]行。
本发明的积极进步效果在于:本发明有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
附图说明
图1为本发明的实施例1的图像处理方法的流程图。
图2为本发明的实施例1的图像处理方法的步骤S2的流程图。
图3为本发明的实施例9的电子设备的结构示意图。
图4为本发明的实施例11的图像处理系统的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种图像处理方法。参照图1,该图像处理方法包括以下步骤:
步骤S1、将待处理图像划分为若干图像块。
作为一种可选的实施方式,在步骤S1中,首先将待处理图像划分为若干图像单元。划分时,鉴于待处理图像的整体尺寸,以及图像单元在待处理图像中的位置,形成两类图像单元,其中第一类图像单元具有预设基本尺寸;第二类图像单元不具有预设基本尺寸。
具体实施时,每个图像单元均由相邻的像素组成,各个图像单元互不交叠。第一类图像单元为正方形,由N行N列像素组成,N为2的整数次幂。
为了实现较佳的频谱控制,N的较佳范围为不大于64。在一种可选的实施方式中,N为64;在其他可选的实施方式中,N小于64。第一类图像单元作为待处理的图像块。
第二类图像单元为划分过程中,待处理图像的边缘区域或角区不具有预设尺寸的图像单元,是对待处理图像进行划分之后形成的“残余区域”。
作为一种可选的实施方式,将第二类图像单元拓展为具有预设基本尺寸的图像块。具体实施时,在第二类图像单元的周边增加相应数量的像素,以形成具有预设基本尺寸的图像块,增加的像素对应的数据为0。
步骤S2、对图像块进行整形FFT变换。
具体实施时,将二维的FFT变换转换为行与列2个一维FFT变换实现。参照图2,步骤S2包括以下步骤:
步骤S21、构建第一整形数组和第二整形数组。第一整形数组包括N个第一元素,每一个所述第一元素用于存储输入数据的实部,所述第二整形数组包括N个第二元素,每一个所述第二元素用于存储输入数据的虚部。第一整形数组的每一个元素分别存储实部数据In_r[i](i∈[1,N]),第二整形数组的每一个元素分别存储虚部数据In_i[i],(i∈[1,N])。
以按行方向进行蝶形运算为例,实部数据In_r[i]为图像块中的行的第i个像素对应的数据的实部,虚部数据In_i[i]为图像块中的行的第i个像素对应的数据的虚部。初始输入数据的虚部设为0。
以按列方向进行蝶形运算为例,实部数据In_r[i]为图像块中的列的第i个像素对应的数据的实部,虚部数据In_i[i]为图像块中的列的第i个像素对应的数据的虚部。初始输入数据的虚部设为0。
步骤S22、提升输入数据的位宽至第一目标位宽以形成扩展数据。具体实施时,提升输入数据的数值部分的位宽至N_in_fft+N_up。通过提升输入数据的数值部分的位宽,可以有效保证运算过程的精度。N_in_fft是原始输入数据的数值部分的位宽。当原始数据以有符号数表征时,原始输入数据的位宽为N_in_fft+1,其中,最高位为原始输入数据的符号位。
在一种可选的实施方式中,以32位整形运算(即,运算过程采用32位整形数据进行运算)为例,用于精度提升的拓展位宽N_up=32-1-N_in_fft-2*k,其中扣除的1对应数据中的一个符号位;k=log2(N),表征FFT需要的蝶形运算阶段个数,式中扣除2*k是考虑到行与列2个方向上所有的累加和可能导致的最大进位。在提升输入数据的位宽之后,拓展之后的输入数据的位宽为N_in_fft+N_up+1,其中,最高位为符号位,拓展之后的输入数据的数值部分的位宽为N_in_fft+N_up。也即,在本实施例中,为输入数据设置了N_up的动态拓展位宽,通过提升输入数据的位宽,并自适应地根据原始输入数据的位宽对应地设置拓展位宽,可以有效保证运算的精度。
步骤S23、基于扩展数据进行蝶形运算。
为了实现较高的计算精度,在一种可选的实施方式中,先将原始数值范围在[-1,1]区间内的权重因子进行整形化,以使权重因子的值域处于更大的范围。作为一种可选的实施方式,放大后的权重因子的值域为[-32768,32767]。因为在进行在蝶形运算的过程中,为了获得较高的计算精度,将权重因子放大了预设倍数,所以,在得到乘积后,将所得的乘积对应缩小对应的预设倍数。具体实施时,先将原始的权重因子左移预设位宽W,也即,放大后的权重因子为原始权重因子的2w倍。则在得到乘积后,将所得的乘积右移W位。
从0至k-1,逐个阶段完成蝶形运算的加减与乘积和。
在一种可选的实施方式中,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。然后,按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。这样,有效提高了运算的并行度,提高处理速度。
在另一种可选的实施方式中,先按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。然后,按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。
蝶形运算为扩展数据与权重因子乘积及数据的加减运算。蝶形运算的具体实现方式是本领域技术人员根据本领域知识能够实现的,此处不再赘述。权重因子合理值的设置是本领域技术人员根据本领域知识能够实现的,此处不再赘述。
对图像块进行FFT变换后,得到图像块频域数据。
在一种可选的实施方式中,对各个图像块进行FFT变换是同步并行进行的,也即,对各个图像块并行进行整形FFT变换以得到每一个图像块对应的图像块频域数据。将各个图像块对应的FFT变换操作同时执行,可以进一步提高运算的并行度。
步骤S3、对图像块频域数据进行频域处理。
频域处理可以包括降噪、图像增强等。频域处理的具体实现方式是本领域技术人员能够实现的,此处不再赘述。对图像块频域数据进行频域处理后得到图像块频域处理后数据。
步骤S4、对图像块频域处理后数据进行IFFT变换。
IFFT变换的运算过程与FFT变换相似。
进行IFFT变换时,先对图像块频域处理后数据进行共轭处理。然后,基于共轭处理后的数据,参照FFT变换的运算方式进行相应的蝶形运算,即可实现IFFT变换。
因为进行了FFT,因此,图像块频域数据的实部和虚部的数值位宽相比于图像块原始数据(时域数据)的数值位宽扩大了2*k位。在进行IFFT的过程,数据的数值部分采用的位宽为N_in_ifft+N_iup,也即,将图像块频域处理后数据的数值部分的位宽提升为N_in_ifft+N_iup,则图像块频域处理后数据的位宽为N_in_ifft+N_iup+1(最高位为符号位);其中,N_in_ifft为图像块频域处理后数据的数值部分的位宽,即图像块频域处理后数据除去一位符号位之外的部分的位宽;拓展位宽N_iup=32-2-N_in_ifft;此时的N_in_ifft=N_in+2*k,N_in=N_in_fft。
在本实施例中,为IFFT的输入数据设置了N_iup的动态拓展位宽,通过提升输入数据的位宽,并自适应地根据原始输入数据的位宽对应地设置拓展位宽,可以有效保证运算的精度。拓展位宽N_iup=32-2-N_in_ifft,其中,减2的设置,其中一位对应符号位,另外一位是为了避免数值计算中发生溢出而预留的冗余位。
在一种可选的实施方式中,在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成,从而得到IFFT变换的结果。
在一种可选的实施方式中,对各个图像块进行IFFT变换是同步并行进行的,也即,对各个图像块频域处理后数据并行进行IFFT变换以得到每一个图像块对应的图像块IFFT变换结果。将各个图像块对应的IFFT变换操作同时执行,可以进一步提高运算的并行度。
步骤S5、输出结果图像。具体实施时,将各个图像块对应的IFFT变换的结果按照各个图像块在原始图像中的位置对应拼接,即得到结果图像。
本实施例的图像处理方法有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例2
本实施例提供一种图像处理方法。本实施例的图像处理方法与实施例1图像处理方法大体相同,区别在于,在步骤S2中,对各个图像块进行FFT变换是串行进行的。也即,对每一个图像块依次进行整形FFT变换以得到每一个图像块对应的图像块频域数据。
对每一个图像块依次进行整形FFT变换的过程中,每一次执行整形FFT变换采用相同的运算资源,因此,对各个图像块进行FFT变换串行实现,有利于节省运算资源。
另外,作为一种可选的实施方式,在步骤则S4中,对各个图像块进行IFFT变换是串行进行的,也即,对每一个图像块频域处理后数据依次进行IFFT变换以得到每一个图像块对应的图像块IFFT变换结果。
对每一个图像块频域处理后数据依次进行IFFT变换的过程中,每一次执行IFFT变换采用相同的运算资源,因此,对各个图像块进行IFFT变换串行实现,有利于节省运算资源。
实施例3
本实施例提供一种图像处理方法。本实施例的图像处理方法与实施例1或实施例2的图像处理方法大体相同,区别在于,在本实施例中,对图像块进行整形FFT变换的步骤S2有所不同。
在本实施例中,在步骤S2中,先按行方向对各行并行进行蝶形运算,然后,按列方向对若干目标列并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据。
在一种可选的实施方式中,若干目标列为所述图像块的[1,N/2+1]列。也即,若干目标列为该图像块的第1至第(N/2+1)列。即,在按列方向进行蝶形运算时,不使用按行方向进行蝶形运算得到的全部数据,而只采用局部数据进行蝶形运算,从而得到局部频域数据。
根据傅里叶变换的共轭对称性,即F*(u,v)=F(-u,-v),在得到局部频域数据之后,根据傅里叶变换的共轭对称性即可快速得到图像块频域数据。这样,可以有效减少运算量,提高运算效率。
实施例4
本实施例提供一种图像处理方法。本实施例的图像处理方法与实施例1或实施例2的图像处理方法大体相同,区别在于,在本实施例中,对图像块进行整形FFT变换的步骤S2有所不同。
在本实施例中,在步骤S2中,先按列方向对各列并行进行蝶形运算,然后,按行方向对若干目标行并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据。
在一种可选的实施方式中,若干目标行为所述图像块的[1,N/2+1]行。也即,若干目标行为该图像块的第1至第(N/2+1)行。即,在按行方向进行蝶形运算时,不使用按列方向进行蝶形运算得到的全部数据,而只采用局部数据进行蝶形运算,从而得到局部频域数据。
根据傅里叶变换的共轭对称性,即F*(u,v)=F(-u,-v),在得到局部频域数据之后,根据傅里叶变换的共轭对称性即可快速得到图像块频域数据。这样,可以有效减少运算量,提高运算效率。
实施例5
本实施例提供一种图像处理方法。本实施例的图像处理方法与实施例1至实施例4中任意一个实施例的图像处理方法大体相同,区别在于对图像块频域处理后数据进行IFFT变换的步骤S4有所不同。
在本实施例中,在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算的总的结果右移k位,从而得到IFFT变换的结果。
本实施例的图像处理方法有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例6
本实施例提供一种图像处理方法。本实施例的图像处理方法与实施例1至实施例4中任意一个实施例的图像处理方法大体相同,区别在于对图像块频域处理后数据进行IFFT变换的步骤S4有所不同。
在本实施例中,在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将按行进行蝶形运算得到的结果右移k位。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成,从而得到IFFT变换的结果。
本实施例的图像处理方法有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例7
本实施例提供一种图像处理方法。本实施例的图像处理方法与实施例1至实施例4中任意一个实施例的图像处理方法大体相同,区别在于对图像块频域处理后数据进行IFFT变换的步骤S4有所不同。
在本实施例中,在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将按行进行蝶形运算得到的结果右移k位。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算的总的结果右移k位,从而得到IFFT变换的结果。
本实施例的图像处理方法有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例8
在实施例1至实施例7中任意一个实施例的图像处理方法的基础上,本实施例提供一种图像处理方法。本实施例的图像处理方法与上述实施例中的图像处理方法基本相同,区别在于步骤5。
本实施例中,在步骤5中,将各个图像块对应的IFFT变换的结果按照各个图像块在原始图像中的位置对应拼接,将拼接得到的图像作为中间图像。
鉴于前期的处理均基于图像块进行,而图像块之间互不交叠,因此,经过前期处理之后,相邻的两个图像块对应的IFFT变换的结果之间可能存在不连续的情况,即两个图像块对应的IFFT变换的结果的边界处不连续。
为了提升相邻图像块的边界处的像素数据与周围相关像素数据的连续性,在步骤S5中,对该中间图像进行平滑滤波处理以得到结果图像。
在一种可选的实施方式中,平滑滤波处理基于该中间图像的全部像素进行。
在另一种可选的实施方式中,平滑滤波处理基于中间图像中对应于图像块的边界处的像素,以及处于图像块的边界的附近的若干行/列像素进行。这样,可以有效降低平滑滤波处理的运算量,提高运算效率。
经过平滑滤波处理,可以提升图像块边缘处相关像素数据的连续性。
实施例9
图3为本实施例提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1至实施例8中任意一个实施例的图像处理方法。图3显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1至实施例8中任意一个实施例的图像处理方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例10
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1至实施例8中任意一个实施例的图像处理方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1至实施例8中任意一个实施例的图像处理方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
实施例11
本实施例提供一种图像处理系统。参照图4,该图像处理系统包括划分单元101、整形FFT变换单元102、频域处理单元103、IFFT变换单元104、结果图像生成单元105。
划分单元101用于将待处理图像划分为若干图像块;
整形FFT变换单元102用于对图像块进行整形FFT变换以得到图像块频域数据;
频域处理单元103用于对图像块频域数据进行频域处理以得到图像块频域处理后数据;
IFFT变换单元104用于对图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果;
结果图像生成单元105用于根据各个图像块对应的图像块IFFT变换结果得到结果图像。
作为一种可选的实施方式,划分单元101首先将待处理图像划分为若干图像单元。划分时,鉴于待处理图像的整体尺寸,以及图像单元在待处理图像中的位置,形成两类图像单元,其中第一类图像单元具有预设基本尺寸;第二类图像单元不具有预设基本尺寸。具体实施时,每个图像单元均由相邻的像素组成,各个图像单元互不交叠。第一类图像单元为正方形,由N行N列像素组成,N为2的整数次幂。为了实现较佳的频谱控制,N的较佳范围为不大于64。在一种可选的实施方式中,N为64;在其他可选的实施方式中,N小于64。第一类图像单元作为待处理的图像块。
第二类图像单元为划分过程中,待处理图像的边缘区域或角区不具有预设尺寸的图像单元,是对待处理图像进行划分之后形成的“残余区域”。作为一种可选的实施方式,将第二类图像单元拓展为具有预设基本尺寸的图像块。具体实施时,在第二类图像单元的周边增加相应数量的像素,以形成具有预设基本尺寸的图像块,增加的像素对应的数据为0。
然后,整形FFT变换单元102对图像块进行整形FFT变换。
具体实施时,将二维的FFT变换转换为行与列2个一维FFT变换实现。整形FFT变换单元102首先构建第一整形数组和第二整形数组。第一整形数组包括N个第一元素,每一个所述第一元素用于存储输入数据的实部,所述第二整形数组包括N个第二元素,每一个所述第二元素用于存储输入数据的虚部。第一整形数组的每一个元素分别存储实部数据In_r[i](i∈[1,N]),第二整形数组的每一个元素分别存储虚部数据In_i[i],(i∈[1,N])。
以按行方向进行蝶形运算为例,实部数据In_r[i]为图像块中的行的第i个像素对应的数据的实部,虚部数据In_i[i]为图像块中的行的第i个像素对应的数据的虚部。初始输入数据的虚部设为0。
以按列方向进行蝶形运算为例,实部数据In_r[i]为图像块中的列的第i个像素对应的数据的实部,虚部数据In_i[i]为图像块中的列的第i个像素对应的数据的虚部。初始输入数据的虚部设为0。
然后,整形FFT变换单元102提升输入数据的位宽至第一目标位宽以形成扩展数据。具体实施时,提升输入数据的数值部分的位宽至N_in_fft+N_up。通过提升输入数据的数值部分的位宽,可以有效保证运算过程的精度。N_in_fft是原始输入数据的数值部分的位宽。
当原始数据以有符号数表征时,原始输入数据的位宽为N_in_fft+1,其中,最高位为原始输入数据的符号位。在一种可选的实施方式中,以32位整形运算(即,运算过程采用32位整形数据进行运算)为例,用于精度提升的拓展位宽N_up=32-1-N_in_fft-2*k,其中扣除的1对应数据中的一个符号位;k=log2(N),表征FFT需要的蝶形运算阶段个数,式中扣除2*k是考虑到行与列2个方向上所有的累加和可能导致的最大进位。在提升输入数据的位宽之后,拓展之后的输入数据的位宽为N_in_fft+N_up+1,其中,最高位为符号位,拓展之后的输入数据的数值部分的位宽为N_in_fft+N_up。也即,在本实施例中,为输入数据设置了N_up的动态拓展位宽,通过提升输入数据的位宽,并自适应地根据原始输入数据的位宽对应地设置拓展位宽,可以有效保证运算的精度。
然后,整形FFT变换单元102基于扩展数据进行蝶形运算。
为了实现较高的计算精度,在一种可选的实施方式中,先将原始数值范围在[-1,1]区间内的权重因子进行整形化,以使权重因子的值域处于更大的范围。作为一种可选的实施方式,放大后的权重因子的值域为[-32768,32767]。因为在进行在蝶形运算的过程中,为了获得较高的计算精度,将权重因子放大了预设倍数,所以,在得到乘积后,将所得的乘积对应缩小对应的预设倍数。
具体实施时,先将原始的权重因子左移预设位宽W,也即,放大后的权重因子为原始权重因子的2w倍。则在得到乘积后,将所得的乘积右移W位。
从0至k-1,逐个阶段完成蝶形运算的加减与乘积和。
在一种可选的实施方式中,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。然后,按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。这样,有效提高了运算的并行度,提高处理速度。
在另一种可选的实施方式中,先按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。然后,按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。
蝶形运算为拓展数据与权重因子乘积及数据的加减运算。蝶形运算的具体实现方式是本领域技术人员根据本领域知识能够实现的,此处不再赘述。权重因子合理值的设置是本领域技术人员根据本领域知识能够实现的,此处不再赘述。
整形FFT变换单元102对图像块进行FFT变换后,得到图像块频域数据。
在一种可选的实施方式中,整形FFT变换单元102对各个图像块进行FFT变换是同步并行进行的。也即,整形FFT变换单元102对各个图像块并行进行整形FFT变换以得到每一个图像块对应的图像块频域数据。将各个图像块对应的FFT变换操作同时执行,可以进一步提高运算的并行度。
接下来,频域处理单元103对图像块频域数据进行频域处理。频域处理可以包括降噪、图像增强等。频域处理的具体实现方式是本领域技术人员能够实现的,此处不再赘述。对图像块频域数据进行频域处理后得到图像块频域处理后数据。
然后,IFFT变换单元104对图像块频域处理后数据进行IFFT变换。
IFFT变换的运算过程与FFT变换相似。进行IFFT变换时,先对图像块频域处理后数据进行共轭处理。然后,基于共轭处理后的数据,参照FFT变换的运算方式进行相应的蝶形运算,即可实现IFFT变换。
因为进行了FFT,因此,图像块频域数据的实部和虚部的数值位宽相比于图像块原始数据(时域数据)的数值位宽扩大了2*k位。
在进行IFFT的过程,数据的数值部分采用的位宽为N_in_ifft+N_iup,也即,将图像块频域处理后数据的数值部分的位宽提升为N_in_ifft+N_iup,则图像块频域处理后数据的位宽为N_in_ifft+N_iup+1(最高位为符号位);其中,N_in_ifft为图像块频域处理后数据的数值部分的位宽,即图像块频域处理后数据除去一位符号位之外的部分的位宽;拓展位宽N_iup=32-2-N_in_ifft;此时的N_in_ifft=N_in+2*k,N_in=N_in_fft。
在本实施例中,为IFFT的输入数据设置了N_iup的动态拓展位宽,通过提升输入数据的位宽,并自适应地根据原始输入数据的位宽对应地设置拓展位宽,可以有效保证运算的精度。拓展位宽N_iup=32-2-N_in_ifft,其中,减2的设置,其中一位对应符号位,另外一位是为了避免数值计算中发生溢出而预留的冗余位。
在一种可选的实施方式中,在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成,从而得到IFFT变换的结果。
在一种可选的实施方式中,IFFT变换单元104对各个图像块进行IFFT变换是同步并行进行的。也即,IFFT变换单元104对各个图像块频域处理后数据并行进行IFFT变换以得到每一个图像块对应的图像块IFFT变换结果。将各个图像块对应的IFFT变换操作同时执行,可以进一步提高运算的并行度。
最后,结果图像生成单元105输出结果图像。具体实施时,将各个图像块对应的IFFT变换的结果按照各个图像块在原始图像中的位置对应拼接,即得到结果图像。
本实施例的图像处理系统有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例12
本实施例提供一种图像处理系统。本实施例的图像处理系统与实施例11图像处理系统大体相同,区别在于,整形FFT变换单元102对各个图像块进行FFT变换是串行进行的。也即,整形FFT变换单元102对每一个图像块依次进行整形FFT变换以得到每一个图像块对应的图像块频域数据。
对每一个图像块依次进行整形FFT变换的过程中,每一次执行整形FFT变换采用相同的运算资源,因此,对各个图像块进行FFT变换串行实现,有利于节省运算资源。
另外,作为一种可选的实施方式,IFFT变换单元104对各个图像块进行IFFT变换是串行进行的,也即,IFFT变换单元104对每一个图像块频域处理后数据依次进行IFFT变换以得到每一个图像块对应的图像块IFFT变换结果。
对每一个图像块频域处理后数据依次进行IFFT变换的过程中,每一次执行IFFT变换采用相同的运算资源,因此,对各个图像块进行IFFT变换串行实现,有利于节省运算资源。
实施例13
本实施例提供一种图像处理系统。本实施例的图像处理系统与实施例11或实施例12的图像处理系统大体相同,区别在于,在本实施例中,对图像块进行整形FFT变换的过程有所不同。
在本实施例中,整形FFT变换单元102先按行方向对各行并行进行蝶形运算,然后,按列方向对若干目标列并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据。
在一种可选的实施方式中,若干目标列为所述图像块的[1,N/2+1]列。也即,若干目标列为该图像块的第1至第(N/2+1)列。即,在按列方向进行蝶形运算时,不使用按行方向进行蝶形运算得到的全部数据,而只采用局部数据进行蝶形运算,从而得到局部频域数据。
根据傅里叶变换的共轭对称性,即F*(u,v)=F(-u,-v),在得到局部频域数据之后,根据傅里叶变换的共轭对称性即可快速得到图像块频域数据。这样,可以有效减少运算量,提高运算效率。
实施例14
本实施例提供一种图像处理系统。本实施例的图像处理方法与实施例11或实施例12的图像处理系统大体相同,区别在于,在本实施例中,对图像块进行整形FFT变换的过程有所不同。
在本实施例中,整形FFT变换单元102先按列方向对各列并行进行蝶形运算,然后,按行方向对若干目标行并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据。
在一种可选的实施方式中,若干目标行为所述图像块的[1,N/2+1]行。也即,若干目标行为该图像块的第1至第(N/2+1)行。即,在按行方向进行蝶形运算时,不使用按列方向进行蝶形运算得到的全部数据,而只采用局部数据进行蝶形运算,从而得到局部频域数据。
根据傅里叶变换的共轭对称性,即F*(u,v)=F(-u,-v),在得到局部频域数据之后,根据傅里叶变换的共轭对称性即可快速得到图像块频域数据。这样,可以有效减少运算量,提高运算效率。
实施例15
本实施例提供一种图像处理系统。本实施例的图像处理系统与实施例11至实施例14中任意一个实施例的图像处理系统大体相同,区别在于对图像块频域处理后数据进行IFFT变换的过程有所不同。
在本实施例中,IFFT变换单元104在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算的总的结果右移k位,从而得到IFFT变换的结果。
本实施例的图像处理系统有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例16
本实施例提供一种图像处理系统。本实施例的图像处理系统与实施例11至实施例14中任意一个实施例的图像处理系统大体相同,区别在于对图像块频域处理后数据进行IFFT变换的过程有所不同。
在本实施例中,IFFT变换单元104在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将按行进行蝶形运算得到的结果右移k位。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成,从而得到IFFT变换的结果。
本实施例的图像处理系统有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例17
本实施例提供一种图像处理系统。本实施例的图像处理系统与实施例11实施例14中任意一个实施例的图像处理系统大体相同,区别在于对图像块频域处理后数据进行IFFT变换的过程有所不同。
在本实施例中,IFFT变换单元104在进行IFFT变换时,先按行方向进行蝶形运算。在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将按行进行蝶形运算得到的结果右移k位。
在完成行方向的蝶形运算之后,再按列方向进行蝶形运算。在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。具体实施时,从0至k-1,依次完成一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算的总的结果右移k位,从而得到IFFT变换的结果。
本实施例的图像处理系统有效提高了运算的并行度,提高处理速度;并且,通过对运算过程中数据位宽的合理设置,在保证运算精度的同时,也有效节省了资源。
实施例18
在实施例11至实施例17中任意一个实施例的图像处理系统的基础上,本实施例提供一种图像处理系统。本实施例的图像处理系统与上述实施例中的图像处理系统基本相同,区别在于结果图像生成单元105不同。
本实施例中,结果图像生成单元105将各个图像块对应的IFFT变换的结果按照各个图像块在原始图像中的位置对应拼接,将拼接得到的图像作为中间图像。
鉴于前期的处理均基于图像块进行,而图像块之间互不交叠,因此,经过前期处理之后,相邻的两个图像块对应的IFFT变换的结果之间可能存在不连续的情况,即两个图像块对应的IFFT变换的结果的边界处不连续。
为了提升相邻图像块的边界处的像素数据与周围相关像素数据的连续性,结果图像生成单元105对该中间图像进行平滑滤波处理以得到结果图像。
在一种可选的实施方式中,平滑滤波处理基于该中间图像的全部像素进行。
在另一种可选的实施方式中,平滑滤波处理基于中间图像中对应于图像块的边界处的像素,以及处于图像块的边界的附近的若干行/列像素进行。这样,可以有效降低平滑滤波处理的运算量,提高运算效率。
经过平滑滤波处理,可以提升图像块边缘处相关像素数据的连续性。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (28)

1.一种图像处理方法,其特征在于,包括以下步骤:
将待处理图像划分为若干图像块;
对所述图像块进行整形FFT变换以得到图像块频域数据;
对所述图像块频域数据进行频域处理以得到图像块频域处理后数据;
对所述图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果;
根据各个所述图像块对应的所述图像块IFFT变换结果得到结果图像;
所述对所述图像块进行整形FFT变换的步骤包括:
构建第一整形数组和第二整形数组,所述第一整形数组包括N个第一元素,每一个所述第一元素用于存储输入数据的实部,所述第二整形数组包括N个第二元素,每一个所述第二元素用于存储输入数据的虚部;
提升所述输入数据的数值部分的位宽至第一目标位宽以形成扩展数据;
基于所述扩展数据进行蝶形运算;
所述第一目标位宽Wt=N_in_fft+N_up,其中,N_in_fft表征所述输入数据的数值部分的位宽,N_up=32-1-N_in_fft-2*k,k=log2(N),k表征FFT需要的蝶形运算阶段的个数。
2.如权利要求1所述的图像处理方法,其特征在于,所述将待处理图像划分为若干图像块的步骤包括:
将所述待处理图像划分为若干图像单元,所述图像单元由相邻的像素组成,任意两个所述图像单元不交叠;所述图像单元包括第一类图像单元和第二类图像单元,所述第一类图像单元具有N行N列像素,N为2的整数次幂,所述第二类图像单元为所述第一类图像单元以外的所述图像单元;
将所述第二类图像单元拓展为具有N行N列像素的拓展后单元;
以所述第一类图像单元和所述拓展后单元作为所述图像块。
3.如权利要求1所述的图像处理方法,其特征在于,N小于等于64。
4.如权利要求1所述的图像处理方法,其特征在于,所述基于所述扩展数据进行蝶形运算的步骤包括:
对用于蝶形运算的权重因子进行整形化处理。
5.如权利要求1所述的图像处理方法,其特征在于,所述基于所述扩展数据进行蝶形运算的步骤包括:
先按行方向进行蝶形运算,然后按列方向进行蝶形运算;
或,先按列方向进行蝶形运算,然后按行方向进行蝶形运算。
6.如权利要求5所述的图像处理方法,其特征在于,在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行;在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。
7.如权利要求1所述的图像处理方法,其特征在于,所述对所述图像块进行整形FFT变换以得到图像块频域数据的步骤包括:
对各个所述图像块并行进行整形FFT变换以得到每一个所述图像块对应的所述图像块频域数据;
所述对所述图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果的步骤包括:
对各个所述图像块频域处理后数据并行进行IFFT变换以得到每一个所述图像块对应的所述图像块IFFT变换结果。
8.如权利要求1所述的图像处理方法,其特征在于,对所述图像块频域处理后数据进行IFFT变换的步骤包括:
对所述图像块频域处理后数据进行共轭处理以得到共轭数据;
提升所述共轭数据的数值部分的位宽至第二目标位宽以形成扩展共轭数据;
对所述扩展共轭数据进行蝶形运算。
9.如权利要求8所述的图像处理方法,其特征在于,所述第二目标位宽为N_in_ifft+N_iup,其中,N_iup=32-2-N_in_ifft,N_in_ifft=N_in+2*k,N_in表征所述图像块的原始数据的数值部分的位宽,k表征IFFT需要的蝶形运算阶段的个数。
10.如权利要求8所述的图像处理方法,其特征在于,所述对所述扩展共轭数据进行蝶形运算的步骤包括:
先按行方向进行蝶形运算,再按列方向进行蝶形运算。
11.如权利要求10所述的图像处理方法,其特征在于,所述先按行方向进行蝶形运算的步骤包括:
每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;或,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位;
所述再按列方向进行蝶形运算的步骤包括:
每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;或,依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位。
12.如权利要求1所述的图像处理方法,其特征在于,所述根据各个所述图像块对应的所述图像块IFFT变换结果得到结果图像的步骤包括:
将各个所述图像块对应的所述图像块IFFT变换结果拼接为中间图像;
对所述中间图像进行平滑滤波处理以得到所述结果图像。
13.如权利要求1所述的图像处理方法,其特征在于,所述基于所述扩展数据进行蝶形运算的步骤包括:
先按行方向对各行并行进行蝶形运算,然后按列方向对若干目标列并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据,所述若干目标列为所述图像块的[1,N/2+1]列;
或,所述基于所述扩展数据进行蝶形运算的步骤包括:
先按列方向对各列并行进行蝶形运算,然后按行方向对若干目标行并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据,若干所述目标行为所述图像块的[1,N/2+1]行。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-13中任一项所述的图像处理方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-13中任一项所述的图像处理方法的步骤。
16.一种图像处理系统,其特征在于,包括划分单元、整形FFT变换单元、频域处理单元、IFFT变换单元、结果图像生成单元;
所述划分单元用于将待处理图像划分为若干图像块;
所述整形FFT变换单元用于对所述图像块进行整形FFT变换以得到图像块频域数据;
所述频域处理单元用于对所述图像块频域数据进行频域处理以得到图像块频域处理后数据;
所述IFFT变换单元用于对所述图像块频域处理后数据进行IFFT变换以得到图像块IFFT变换结果;
所述结果图像生成单元用于根据各个所述图像块对应的所述图像块IFFT变换结果得到结果图像;
所述整形FFT变换单元还用于构建第一整形数组和第二整形数组,所述第一整形数组包括N个第一元素,每一个所述第一元素用于存储输入数据的实部,所述第二整形数组包括N个第二元素,每一个所述第二元素用于存储输入数据的虚部;
所述整形FFT变换单元还用于提升所述输入数据的数值部分的位宽至第一目标位宽以形成扩展数据;
所述整形FFT变换单元还用于基于所述扩展数据进行蝶形运算;
所述第一目标位宽Wt=N_in_fft+N_up,其中,N_in_fft表征所述输入数据的数值部分的位宽,N_up=32-1-N_in_fft-2*k,k=log2(N),k表征FFT需要的蝶形运算阶段的个数。
17.如权利要求16所述的图像处理系统,其特征在于,所述划分单元还用于将所述待处理图像划分为若干图像单元,所述图像单元由相邻的像素组成,任意两个所述图像单元不交叠;所述图像单元包括第一类图像单元和第二类图像单元,所述第一类图像单元具有N行N列像素,N为2的整数次幂,所述第二类图像单元为所述第一类图像单元以外的所述图像单元;
所述划分单元还用于将所述第二类图像单元拓展为具有N行N列像素的拓展后单元;
所述划分单元还用于以所述第一类图像单元和所述拓展后单元作为所述图像块。
18.如权利要求16所述的图像处理系统,其特征在于,N小于等于64。
19.如权利要求16所述的图像处理系统,其特征在于,所述整形FFT变换单元还用于对用于蝶形运算的权重因子进行整形化处理。
20.如权利要求16所述的图像处理系统,其特征在于,所述整形FFT变换单元还用于先按行方向进行蝶形运算,然后按列方向进行蝶形运算;
或,所述整形FFT变换单元还用于先按列方向进行蝶形运算,然后按行方向进行蝶形运算。
21.如权利要求20所述的图像处理系统,其特征在于,在按行方向进行蝶形运算的过程中,各行对应的蝶形运算并行进行;在按列方向进行蝶形运算的过程中,各列对应的蝶形运算并行进行。
22.如权利要求16所述的图像处理系统,其特征在于,所述整形FFT变换单元还用于对各个所述图像块并行进行整形FFT变换以得到每一个所述图像块对应的所述图像块频域数据;
所述IFFT变换单元还用于对各个所述图像块频域处理后数据并行进行IFFT变换以得到每一个所述图像块对应的所述图像块IFFT变换结果。
23.如权利要求16所述的图像处理系统,其特征在于,所述IFFT变换单元还用于对图像块频域处理后数据进行共轭处理以得到共轭数据;
所述IFFT变换单元还用于提升所述共轭数据的数值部分的位宽至第二目标位宽以形成扩展共轭数据;
所述IFFT变换单元还用于对所述扩展共轭数据进行蝶形运算。
24.如权利要求23所述的图像处理系统,其特征在于,所述第二目标位宽为N_in_ifft+N_iup,其中,N_iup=32-2-N_in_ifft,N_in_ifft=N_in+2*k,N_in表征所述图像块的原始数据的数值部分的位宽,k表征IFFT需要的蝶形运算阶段的个数。
25.如权利要求23所述的图像处理系统,其特征在于,所述IFFT变换单元还用于先按行方向进行蝶形运算,再按列方向进行蝶形运算。
26.如权利要求25所述的图像处理系统,其特征在于,按行方向进行蝶形运算时,所述IFFT变换单元还用于每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;或,所述IFFT变换单元还用于依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位;
按列方向进行蝶形运算时,所述IFFT变换单元还用于每完成一个阶段对应的蝶形运算,则将该阶段蝶形运算的结果右移一位,直至k个阶段的蝶形运算均已完成;或,所述IFFT变换单元还用于依次完成每一个阶段对应的蝶形运算,直至k个阶段的蝶形运算均已完成,然后,将蝶形运算所得的结果右移k位。
27.如权利要求16所述的图像处理系统,其特征在于,所述结果图像生成单元还用于将各个所述图像块对应的所述图像块IFFT变换结果拼接为中间图像;
所述结果图像生成单元还用于对所述中间图像进行平滑滤波处理以得到所述结果图像。
28.如权利要求16所述的图像处理系统,其特征在于,所述整形FFT变换单元先按行方向对各行并行进行蝶形运算,然后按列方向对若干目标列并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据,所述若干目标列为所述图像块的[1,N/2+1]列;
或,所述整形FFT变换单元先按列方向对各列并行进行蝶形运算,然后按行方向对若干目标行并行进行蝶形运算以得到局部频域数据,然后基于所述局部频域数据根据傅里叶变换的共轭对称性得到所述图像块频域数据,若干所述目标行为所述图像块的[1,N/2+1]行。
CN202010598240.1A 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质 Active CN111754393B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010598240.1A CN111754393B (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质
CN202211321342.4A CN115601228A (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010598240.1A CN111754393B (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211321342.4A Division CN115601228A (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质

Publications (2)

Publication Number Publication Date
CN111754393A CN111754393A (zh) 2020-10-09
CN111754393B true CN111754393B (zh) 2022-09-27

Family

ID=72677624

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010598240.1A Active CN111754393B (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质
CN202211321342.4A Pending CN115601228A (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211321342.4A Pending CN115601228A (zh) 2020-06-28 2020-06-28 图像处理方法、系统、电子设备和介质

Country Status (1)

Country Link
CN (2) CN111754393B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212721A1 (en) * 2002-05-07 2003-11-13 Infineon Technologies Aktiengesellschaft Architecture for performing fast fourier transforms and inverse fast fourier transforms
CN102298570A (zh) * 2011-09-13 2011-12-28 浙江大学 一种点数可变的混合基 fft/ifft实现装置及其方法
CN107451955A (zh) * 2017-06-20 2017-12-08 昆明理工大学 一种k‑t算法重建天文图像中斑点图的并行化实现方法
CN107292851B (zh) * 2017-07-14 2019-09-27 重庆理工大学 一种基于伪3d变换的bm3d图像降噪方法
CN109493281A (zh) * 2018-11-05 2019-03-19 北京旷视科技有限公司 图像处理方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN111754393A (zh) 2020-10-09
CN115601228A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
Anderson et al. Communication-avoiding QR decomposition for GPUs
JP5689282B2 (ja) 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム
Jiang et al. Lifting factorization-based discrete wavelet transform architecture design
JP5708720B2 (ja) データ処理方法および装置
JP3639206B2 (ja) 共有メモリ型スカラ並列計算機における並列行列処理方法、及び記録媒体
US7640284B1 (en) Bit reversal methods for a parallel processor
CN106846235B (zh) 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统
US8271569B2 (en) Techniques for performing discrete fourier transforms on radix-2 platforms
US7761495B2 (en) Fourier transform processor
CN111639701B (zh) 一种图像特征提取的方法、系统、设备及可读存储介质
US7657587B2 (en) Multi-dimensional fast fourier transform
CN111754393B (zh) 图像处理方法、系统、电子设备和介质
CN112188214B (zh) 图像处理方法、系统、电子设备和介质
CN112559954A (zh) 基于软件定义可重构处理器的fft算法处理方法及装置
US6728742B1 (en) Data storage patterns for fast fourier transforms
KR20220017638A (ko) 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법
WO2023045516A1 (zh) 执行fft的方法、装置及设备
Sakr et al. Memory-efficient CMSIS-NN with replacement strategy
Zeng et al. Optimizing frequency domain implementation of CNNs on FPGAs
CN115034360A (zh) 三维卷积神经网络卷积层的处理方法和处理装置
CN113344768A (zh) 一种图像矩阵卷积的实现方法、计算设备及储存介质
Wang et al. An FPGA-Based Reconfigurable CNN Training Accelerator Using Decomposable Winograd
CN115878957B (zh) 一种矩阵乘法加速装置及方法
US11379558B2 (en) System enhancement methodology via matrix multiplication efficiency speedup using sparse basis approach
JP7058810B2 (ja) 信号処理システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant