CN103533378B - 基于fpga的三维整数dct变换系统及其变换方法 - Google Patents
基于fpga的三维整数dct变换系统及其变换方法 Download PDFInfo
- Publication number
- CN103533378B CN103533378B CN201310467153.2A CN201310467153A CN103533378B CN 103533378 B CN103533378 B CN 103533378B CN 201310467153 A CN201310467153 A CN 201310467153A CN 103533378 B CN103533378 B CN 103533378B
- Authority
- CN
- China
- Prior art keywords
- dct
- conversion
- integer
- dct conversion
- data
- 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.)
- Expired - Fee Related
Links
- 230000009466 transformation Effects 0.000 title claims abstract description 28
- 238000011426 transformation method Methods 0.000 title abstract 2
- 238000006243 chemical reaction Methods 0.000 claims abstract description 179
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000017105 transposition Effects 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims description 17
- 230000003139 buffering effect Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 12
- 230000007704 transition Effects 0.000 claims description 9
- 238000013459 approach Methods 0.000 claims description 7
- 238000013461 design Methods 0.000 abstract description 23
- 238000004088 simulation Methods 0.000 abstract description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 241001269238 Data Species 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 102000008297 Nuclear Matrix-Associated Proteins Human genes 0.000 description 1
- 108010035916 Nuclear Matrix-Associated Proteins Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 210000000299 nuclear matrix Anatomy 0.000 description 1
- 210000004940 nucleus Anatomy 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了基于FPGA的三维整数DCT变换系统及其变换方法,选取数字图像里的相似块群做整数三维DCT变换,该系统包括数字图像的原始数据输入端、控制模块、系统的整数1D‑DCT变换模块、以及针对数字图像中任意n个相似图像块的多组三维整数DCT变换单元,该单元依序包括第一串/并转换模块、第一整数1D‑DCT变换模块、转置RAM模块、第二串/并转换模块、第二整数1D‑DCT变换模块以及并/串转换模块。与现有技术相比,本发明专门用于FPGA硬件实现的三维DCT变换算法,模块化设计是FPGA设计中一个很重要的技巧,它能够使一个大型设计的分工协作、仿真测试更加容易,使代码维护或升级更加便利,方法简单,算法复杂度低,容易实现。
Description
技术领域
本发明涉及数字图像处理中的数字图像去噪技术,尤其是涉及一种有关FPGA(Field Programmable Gate Array,现场可编程门阵列)数字图像去噪的方法。
背景技术
随着多媒体技术的发展,数字图像处理已经成为众多应用系统的核心和基础。数字图像在获取和传输的过程中容易受到各种因素的影响而引入不同类型的噪声。而图像去噪的主要目的是通过对带有各种不同类型噪声的图像进行处理,提高信息识别的准确性。
随着对图像分辨率的要求越来越高,图像的数据量越来越大,对于图像处理速率的要求也越来越高。因此实用的图像去噪系统都要求能实现高速处理。目前图像去噪高速处理广泛使用软件实现,采用并行计算机系统以提高处理速度,但是并行计算机系统存在着成本高、系统规模大等问题。
随着FPGA技术的发展,可为图像去噪算法设计相应的专用硬件结构来实现,不仅满足了实时性,同时满足了低功耗和便携性的要求,正成为实现图像处理系统的一个热门研究领域。但是在目前,基于FPGA的DCT变换均是二维。
数字图像去噪算法的核心是DCT(Discrete Cosine Transform,离散余弦变换)变换。离散余弦变换是一种与傅里叶变换(Fourier Transform)紧密相关的数学运算。在傅里叶级数展开式中,如果被展开的函数是实偶数,那么其傅里叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换(DCT变换)。由于DCT变换具有非常好的去相关性和能量集中特性,经过DCT变换后,信号能量集中分布在低频区域,再对高频系数进行抑制后再进行逆DCT变换,就可以达到数字图像去噪的目标。DCT变换常被认为是对语音和图像信号进行变换的最佳方法。但是传统的DCT变换含有大量的浮点数操作与乘法运算,增加了运算复杂度,为了工程实现得需要,国内外许多学者花费了很大精力去寻找或改进DCT变换的快速算法。
例如,针对于作为数码相机的核心器件的电荷耦合器件CCD(Charge-coupledDevice)的噪声类型,提出了一种基于三维DCT变换的CCD图像的去噪方法。由于数字图像存在明显的结构和纹理信息(这也是图像和噪声的区别),因此图像中每一个像素不是孤立存在的。由于自然图像中存在着大量的相似结构或者冗余信息,即使是一个存在着较多边缘或纹理的图像块,仍然可以在整个图像中找到它的相似块。图像的自相似性如图1所示,其中黑色方框内的图像块都具有很强的相似性。将这些相似图像块重叠在一起,构成一个相似块群,再进行DCT变换。这样对任一个图像块,不管块内像素之间的相关性如何,在对其所在的相似块群进行三维DCT变换后,都能获得很好的能量集中特性。而噪声信号的相关性很弱,变换后会发散在所有系数上,这样可以通过抑制高频系数达到降噪的目标。相似块群内的图像块彼此之间具有的相关性越高,经过DCT变换后能量会越集中,通过收缩高频系数得到的去噪效果就会越好。但是针对于三维DCT变换,只是存在简单的基于软件实现方法,运算复杂,速度慢,且不能直接移植到FPGA硬件中。为了更高效快速的实现CCD噪声类型的去噪,必须设计一种快速的基于FPGA的三维DCT变换器和变换方法。
发明内容
为了克服现有技术中DCT变换算法存在的问题,本发明提出一种基于FPGA的三维整数DCT变换器及其变换方法,为了更低成本地进行图像去噪,达到图像去噪系统实用化的目标,采用FPGA硬件化的方法进行图像去噪。利用FPGA,用户不仅可以方便地设计出所需要的硬件逻辑功能,而且可以进行静态重复编写,使系统的硬件功能可以像软件一样来编程修改,大大提高了系统设计的灵活性和通用性。同时基于FPGA设计的系统能在硬件上实现流水线和并行化,这样就大大加快了系统的运行速度。基于FPGA的图像去噪算法实现与基于软件的图像算法实现相比具有明显的速度优势,具有更广泛的应用价值。
本发明提出一种基于FPGA的三维整数DCT变换系统,选取数字图像里的相似块群做整数三维DCT变换,其特征在于,该系统包括数字图像的原始数据输入端、控制模块、系统的整数1D-DCT变换模块、以及针对数字图像中任意n个相似图像块的多组三维整数DCT变换单元,每组三维整数DCT变换单元依序包括第一串/并转换模块、第一整数1D-DCT变换模块、转置RAM模块、第二串/并转换模块、第二整数1D-DCT变换模块以及并/串转换模块;其中:
控制模块用于设定整个系统的运算时序,即:系统复位时初始状态为空闲状态,当有数据输入时,依序先进入x方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块在x方向的1D-DCT变换完毕后,进入y方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块的y方向1D-DCT变换完毕后,进入z方向的1D-DCT变换,完成一次相似块的二维DCT变换;
系统的整数1D-DCT变换模块,用于实现系统的整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法,该模块分别连接三维整数DCT变换单元和系统输出端;
第一串/并转换模块,用于数字图像原始数据的串行读取与x方向的1D-DCT变换的n组并行输入数据需求的转换;
转置RAM模块,用于将每个相似图像块x方向的1D-DCT变换后的第一行的n个数据分别存在n个RAM中,即dout(0)存入RAM0的第一个存储单元,dout(1)存入RAM1的第一个存储单元,……,dout(n)存入RAM7的第一个存储单元,下一行的n个数据分别放在各自RAM存储器的下一个存储单元,依次类推,直到所有行运算都完成;
第二串/并转换模块,用于转置RAM模块串行输出与y方向的1D-DCT变换n组并行输入数据需求的转换;
并/串转换模块,用于将每个相似图像块y方向的1D-DCT变换结果串行输出,使得相似图像块的串行输出正好构成z方向1D-DCT变换的输入数据;
第一、第二整数1D-DCT变换模块,用于实现三维整数DCT变换单元的整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法;
在每个相似图像块中的二维DCT变换由两个整数1D-DCT变换共同完成,由一个n×n RAM将x方向1D-DCT变换结果存储起来,直到x方向的n组n点1D-DCT变换全部完成后,再按照y方向读取8×8RAM中的图像数据。
所述转置RAM模块在第一个缓冲周期,将x方向的1D-DCT变换的输出数据流缓存到RAM1中;在第二个缓冲周期,y方向的1D-DCT变换的输出数据流缓存到RAM2中的同时,控制模块将RAM1第一个缓冲周期缓存的数据流输入到第一串/并转换模块中;在第三个缓冲周期,x方向1D-DCT变换的输出数据流再次缓存到RAM1中,与此同时,控制模块也相应进行切换,将RAM2在第二个缓冲周期缓存的数据流输入到第二串/并转换模块中;如此反复,这样处理的好处在于转置RAM在处理8×8图像数据时,使比较缓慢的图像数据流能够连续地进行传输;这里正是利用了乒乓操作完成数据的无缝缓冲与处理;乒乓操作通过“输入数据选择控制”和“输出数据选择控制”按节拍、互相配合地进行来回切换,将经过缓冲的数据流没有停顿地送到“后续处理”。
本发明还提出了一种基于FPGA的三维整数DCT变换方法,选取数字图像里的相似块群做整数三维DCT变换,该方法包括以下步骤:
步骤一,对数字图像原始数据进行串行读取与x方向的1D-DCT变换的n组并行输入数据需求的转换;
步骤二,实现整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法;
步骤三,将每个相似图像块x方向的1D-DCT变换后的第一行的n个数据分别存在n个RAM中,即dout(0)存入RAM0的第一个存储单元,dout(1)存入RAM1的第一个存储单元,……,dout(n)存入RAM7的第一个存储单元,下一行的n个数据分别放在各自RAM存储器的下一个存储单元,依次类推,直到所有行运算都完成;
步骤四,将串行输出转换为与y方向的1D-DCT变换n组并行输入数据需求;
步骤五,实现整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法;
步骤六,将每个相似图像块y方向的1D-DCT变换结果串行输出,使得相似图像块的串行输出正好构成z方向1D-DCT变换的输入数据;
上述流程的运算时序由控制模块实现控制,该控制时序遵循:系统复位时初始状态为空闲状态,当有数据输入时,依序先进入x方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块在x方向的1D-DCT变换完毕后,进入y方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块的y方向1D-DCT变换完毕后,进入z方向的1D-DCT变换,完成一次相似块的二维DCT变换。
所述步骤三还包括以下处理:在第一个缓冲周期,将x方向的1D-DCT变换的输出数据流缓存到RAM1中;在第二个缓冲周期,y方向的1D-DCT变换的输出数据流缓存到RAM2中的同时,控制模块将RAM1第一个缓冲周期缓存的数据流输入到第一串/并转换模块中;在第三个缓冲周期,x方向1D-DCT变换的输出数据流再次缓存到RAM1中,与此同时,控制模块也相应进行切换,将RAM2在第二个缓冲周期缓存的数据流输入到第一串/并转换模块中;如此反复,这样处理的好处在于转置RAM在处理8×8图像数据时,使比较缓慢的图像数据流能够连续地进行传输;利用了乒乓操作完成数据的无缝缓冲与处理;乒乓操作通过“输入数据选择控制”和“输出数据选择控制”按节拍、互相配合地进行来回切换,将经过缓冲的数据流没有停顿地送到“后续处理”。
与现有技术相比,本发明的技术特点及有益效果包括以下内容:
1、方法简单,算法复杂度低,容易实现。
2、本发明是专门用于FPGA硬件实现的三维DCT变换算法。
3、本发明采用模块化设计,模块化设计是FPGA设计中一个很重要的技巧,它能够使一个大型设计的分工协作、仿真测试更加容易,使代码维护或升级更加便利。
4、本发明采用了乒乓操作设计,乒乓操作是一种主要用于数据流控制的处理技巧,以完成数据的无缝缓冲与处理。
5、本发明不仅可以实现8×8×8整数三维DCT变换,只要找到一维N点的DCT变换核矩阵,对代码稍加修改就可以实现N×N×M三维DCT变换,设计灵活,易于修改。将三维DCT变换分解为三个方向的一维DCT变换,利于FPGA硬件实现。
6、采用基于HEVC视频编码标准的整数1D-DCT变换,使运算只有移位与相加运算,减小了运算量与计算复杂度,易于FPGA实现。
附图说明
图1为本发明的图像的自相似性原理图;
图2为本发明实施例的8×8×8相似块群示意图;
图3为本发明的基于FPGA的三维整数DCT变换系统的系统结构示意图;
图4为本发明的转置RAM模块采用乒乓操作的流程示意图;
图5 8×8×8数字图像相似块群三维矩阵A示意图;
图6为本发明采用的HEVC蝶形算法示意图。
具体实施方式
下面结合附图,进一步详细说明本发明的具体实施方式。
本发明利用FPGA进行三维DCT变换实现更高效地进行三维DCT变换,所采用的技术方案详述如下:
在相似图像块搜索完成后,将相似图像块重叠在一起,构成一个相似块群,因相似块群内的图像块相互之间具有更好的相关性,所以经过DCT变换后能量更集中。而相似块群是一个N×N×M的三维矩阵,因此需要对其进行三维DCT变换。本实施例以8×8×8(N=M=8)为例,介绍基于FPGA的整数三维DCT变换算法。
如图2所示,为8×8×8相似块群示意图。利用DCT变换的可分离性,将三维矩阵的DCT变换分解为对三维矩阵的三个方向依次做一维DCT变换,而每次一维DCT变换采用蝶形快速运算,以节省计算时间。
本发明的整个基于FPGA的三维整数DCT变换系统包括数字图像的原始数据输入端、控制模块、系统的整数1D-DCT变换模块、以及并行设计的针对任一相似图像块的多组三维整数DCT变换单元,该单元依序包括第一串/并转换模块、第一整数1D-DCT变换模块、转置RAM模块、第二串/并转换模块、第二整数1D-DCT变换模块以及并/串转换模块,系统结构如图3所示。
其中,控制模块用于设定整个系统的运算时序,即:系统复位时初始状态为空闲状态,当有数据输入时,依序先进入x方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块在x方向的1D-DCT变换完毕后,进入y方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块的y方向1D-DCT变换完毕后,进入z方向的1D-DCT变换,完成一次相似块的二维DCT变换,此时序满足流水线设计,从而提高了系统的效率。由于FPGA可进行并行处理,因此8个相似块可同时进行二维DCT变换;以及产生各模块之间、各模块与外界的握手信号。
第一、第二串并转换模块,均采用寄存器实现,用于将串行输入的数据转换为并行数据输出,以满足下一个模块对输入数据的格式要求:
第一串/并转换模块,用于数字图像原始数据的串行读取与x方向的1D-DCT变换的8组并行输入数据需求的转换,此串/并转换需要8个clk周期完成。该模块的原理是每个相似图像块中的二维DCT变换的输入数据均从存储数字图像数据的ROM中直接串行输入,而8点1D-DCT变换((8点DCT变换就是8个一维数据进行DCT变换)需要8组并行数据同时输入。
第二串/并转换模块,用于转置RAM模块串行输出与y方向的1D-DCT变换8组并行输入数据需求的转换,在每个相似图像块中,经过转置RAM模块后数据为串行输出。而下一过程的y方向的8点1D-DCT变换(同上)需要8组并行数据的同时输入。
并/串转换模块也采用寄存器,用于将每个相似图像块y方向的1D-DCT变换结果串行输出,使得8个相似图像块的8个串行输出正好构成z方向1D-DCT变换的8组输入数据;由于在每个相似图像块中,进行完y方向的1D-DCT变换后输出其二维DCT变换结果;需对此结果以8个相似块组成的相似块群形式做z方向的1D-DCT变换。每个相似图像块中坐标相同的像素点构成z方向1D-DCT变换的8组输入数据。并/串转换模块使得整个设计只需要一个z方向的1D-DCT变换模块,节省了整个设计的资源。
整数1D-DCT变换模块在整个基于FPGA的三维整数DCT系统的设计中,是核心模块,也是影响整个设计优劣最重要的模块。
一维N点DCT变换可以表示为:
其中,xn是输入时域序列中的第n项;Yk是输出频域序列中的第k项;系数k=0;k=1,2,…,N-1。
但是,上式中含有大量的浮点数操作与乘法运算,提高了运算复杂度,降低了运算速度,不能满足图像去噪的实时性要求。为了提高运算速度,更好的适用于FPGA的设计要求,本发明采用了HEVC(High Efficiency Video Coding)标准中的整数DCT变换。HEVC是新一代视频编码标准,采用的整数操作使得DCT变换消除浮点运算,减少运算量,有效的降低对存储器的要求,同时可以消除正变换和逆变换之间的漂移,不损失数字图像准确度。使得计算复杂度减少,而且只有移位操作和加减操作,更适合FPGA的特点。
整数DCT变换是基于DCT的,但是又有一些不同:
1、它是一个整数变换(所有的操作都可以使用整数算法,而不丢失逆变换精度),更适合FPGA的设计要求;
2、它可以实现正变换与反变换之间的零误差匹配;
3、变换的核心部分可以只使用加法和移位操作运算。
在HEVC中,每个8点1D-DCT变换采用蝶形快速算法,节省了计算时间。8点DCT正变换的变换核矩阵A为:
转置RAM模块,用于将每个相似图像块x方向的1D-DCT变换后的第一行的8个数据分别存在8个RAM中,即dout(0)存入RAM0的第一个存储单元,dout(1)存入RAM1的第一个存储单元,……,dout(7)存入RAM7的第一个存储单元,下一行的8个数据分别放在各自RAM存储器的下一个存储单元,依次类推,直到8行运算都完成,这样存放到每个RAM中的8个数据刚好是y方向1D-DCT变换需要的一列数据。因此,在y方向的1D-DCT变换中只需要按存放顺序依次串行的读出每个RAM块中的图像数据即可。
在每个相似图像块中的二维DCT变换需要两个整数1D-DCT变换共同完成,但是第一次x方向的1D-DCT变换运算得到的中间结果并不是直接输入到y方向的1D-DCT变换中,需要一个8×8RAM将x方向1D-DCT变换结果存储起来,等到x方向的8组8点1D-DCT变换全部完成后,再按照y方向读取8×8RAM中的图像数据,因此此8×8RAM称为转置RAM。
为了节省转置RAM的等待时间,进一步提高本设计的工作频率,转置RAM模块采用乒乓操作设计。
转置RAM模块采用乒乓操作,其具体操作流程如图4所示。
在第一个缓冲周期,将x方向的1D-DCT变换的输出数据流缓存到RAM1中;在第二个缓冲周期,y方向的1D-DCT变换的输出数据流缓存到RAM2中的同时,控制模块将RAM1第一个缓冲周期缓存的数据流输入到串/并转换模块中;在第三个缓冲周期,x方向1D-DCT变换的输出数据流再次缓存到RAM1中,与此同时,控制模块也相应进行切换,将RAM2在第二个缓冲周期缓存的数据流输入到串并转换模块中。如此反复,这样处理的好处在于转置RAM在处理8×8图像数据时,使比较缓慢的图像数据流能够连续地进行传输。这里正是利用了乒乓操作完成数据的无缝缓冲与处理。乒乓操作可以通过“输入数据选择控制”和“输出数据选择控制”按节拍、互相配合地进行来回切换,将经过缓冲的数据流没有停顿地送到“后续处理”。
在本发明中,选取了一个数字图像里的相似块群做整数三维DCT变换,并在Matlab中进行验证。如图5所示,为输入的8×8×8相似块群三维矩阵A。为了验证本发明的输出结果,利用FPGA进行整数三维DCT变换在Modesim中的仿真结果,在Matlab中进行验证。可以看出,在Modesim中的仿真结果与在Matlab中的输出结果完全一致,说明此发明的输出结果正确,能满足设计要求。
Claims (4)
1.一种基于FPGA的三维整数DCT变换系统,选取数字图像里的相似块群做整数三维DCT变换,其特征在于,该系统包括数字图像的原始数据输入端、控制模块、系统的整数1D-DCT变换模块、以及针对数字图像中任意n个相似图像块的多组三维整数DCT变换单元,每组三维整数DCT变换单元依序包括第一串/并转换模块、第一整数1D-DCT变换模块、转置RAM模块、第二串/并转换模块、第二整数1D-DCT变换模块以及并/串转换模块;其中:
控制模块用于设定整个系统的运算时序,即:系统复位时初始状态为空闲状态,当有数据输入时,依序先进入x方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块在x方向的1D-DCT变换完毕后,进入y方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块的y方向1D-DCT变换完毕后,进入z方向的1D-DCT变换,完成一次相似块的二维DCT变换;
系统的整数1D-DCT变换模块,用于实现系统的整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法,该模块分别连接三维整数DCT变换单元和系统输出端;
第一串/并转换模块,用于数字图像原始数据的串行读取与x方向的1D-DCT变换的n组并行输入数据需求的转换;
转置RAM模块,用于将每个相似图像块x方向的1D-DCT变换后的第一行的n个数据分别存在n个RAM中,即dout(0)存入RAM0的第一个存储单元,dout(1)存入RAM1的第一个存储单元,……,dout(n)存入RAM7的第一个存储单元,下一行的n个数据分别放在各自RAM存储器的下一个存储单元,依次类推,直到所有行运算都完成;
第二串/并转换模块,用于转置RAM模块串行输出与y方向的1D-DCT变换n组并行输入数据需求的转换;
并/串转换模块,用于将每个相似图像块y方向的1D-DCT变换结果串行输出,使得相似图像块的串行输出正好构成z方向1D-DCT变换的输入数据;
第一、第二整数1D-DCT变换模块,用于实现三维整数DCT变换单元的整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法;
在每个相似图像块中的二维DCT变换由两个整数1D-DCT变换共同完成,由一个n×nRAM将x方向1D-DCT变换结果存储起来,直到x方向的n组n点1D-DCT变换全部完成后,再按照y方向读取8×8RAM中的图像数据。
2.如权利要求1所述的基于FPGA的三维整数DCT变换系统,其特征在于,所述转置RAM模块在第一个缓冲周期,将x方向的1D-DCT变换的输出数据流缓存到RAM1中;在第二个缓冲周期,y方向的1D-DCT变换的输出数据流缓存到RAM2中的同时,控制模块将RAM1第一个缓冲周期缓存的数据流输入到第一串/并转换模块中;在第三个缓冲周期,x方向1D-DCT变换的输出数据流再次缓存到RAM1中,与此同时,控制模块也相应进行切换,将RAM2在第二个缓冲周期缓存的数据流输入到第二串/并转换模块中;如此反复,这样处理的好处在于转置RAM在处理8×8图像数据时,使比较缓慢的图像数据流能够连续地进行传输;这里正是利用了乒乓操作完成数据的无缝缓冲与处理;乒乓操作通过“输入数据选择控制”和“输出数据选择控制”按节拍、互相配合地进行来回切换,将经过缓冲的数据流没有停顿地送到“后续处理”。
3.一种基于FPGA的三维整数DCT变换方法,选取数字图像里的相似块群做整数三维DCT变换,其特征在于,该方法包括以下步骤:
步骤一,对数字图像原始数据进行串行读取与x方向的1D-DCT变换的n组并行输入数据需求的转换;
步骤二,实现整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法;
步骤三,将每个相似图像块x方向的1D-DCT变换后的第一行的n个数据分别存在n个RAM中,即dout(0)存入RAM0的第一个存储单元,dout(1)存入RAM1的第一个存储单元,……,dout(n)存入RAM7的第一个存储单元,下一行的n个数据分别放在各自RAM存储器的下一个存储单元,依次类推,直到所有行运算都完成;
步骤四,将串行输出转换为与y方向的1D-DCT变换n组并行输入数据需求;
步骤五,实现整数1D-DCT变换;在HEVC中,每个8点1D-DCT变换采用蝶形快速算法;
步骤六,将每个相似图像块y方向的1D-DCT变换结果串行输出,使得相似图像块的串行输出正好构成z方向1D-DCT变换的输入数据;
上述流程的运算时序由控制模块实现控制,该控制时序遵循:系统复位时初始状态为空闲状态,当有数据输入时,依序先进入x方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块在x方向的1D-DCT变换完毕后,进入y方向的1D-DCT变换状态,完成一次相似块的二维DCT变换;当检测到相似块群中的每个相似块的y方向1D-DCT变换完毕后,进入z方向的1D-DCT变换,完成一次相似块的二维DCT变换。
4.如权利要求3所述的基于FPGA的三维整数DCT变换方法,其特征在于,所述步骤三还包括以下处理:在第一个缓冲周期,将x方向的1D-DCT变换的输出数据流缓存到RAM1中;在第二个缓冲周期,y方向的1D-DCT变换的输出数据流缓存到RAM2中的同时,控制模块将RAM1第一个缓冲周期缓存的数据流输入到第一串/并转换模块中;在第三个缓冲周期,x方向1D-DCT变换的输出数据流再次缓存到RAM1中,与此同时,控制模块也相应进行切换,将RAM2在第二个缓冲周期缓存的数据流输入到第一串/并转换模块中;如此反复,这样处理的好处在于转置RAM在处理8×8图像数据时,使比较缓慢的图像数据流能够连续地进行传输;利用了乒乓操作完成数据的无缝缓冲与处理;乒乓操作通过“输入数据选择控制”和“输出数据选择控制”按节拍、互相配合地进行来回切换,将经过缓冲的数据流没有停顿地送到“后续处理”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310467153.2A CN103533378B (zh) | 2013-10-09 | 2013-10-09 | 基于fpga的三维整数dct变换系统及其变换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310467153.2A CN103533378B (zh) | 2013-10-09 | 2013-10-09 | 基于fpga的三维整数dct变换系统及其变换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103533378A CN103533378A (zh) | 2014-01-22 |
CN103533378B true CN103533378B (zh) | 2017-01-18 |
Family
ID=49934987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310467153.2A Expired - Fee Related CN103533378B (zh) | 2013-10-09 | 2013-10-09 | 基于fpga的三维整数dct变换系统及其变换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103533378B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454102A (zh) * | 2016-10-27 | 2017-02-22 | 合肥埃科光电科技有限公司 | 一种全硬件高速智能相机的实现方法 |
CN110147880A (zh) * | 2019-05-22 | 2019-08-20 | 苏州浪潮智能科技有限公司 | 一种神经网络数据处理结构、方法、系统及相关装置 |
CN111787320B (zh) * | 2020-07-03 | 2022-02-08 | 北京博雅慧视智能技术研究院有限公司 | 一种变换编码系统和方法 |
CN113093623A (zh) * | 2021-04-08 | 2021-07-09 | 浙江大辰北斗科技有限公司 | 一种导航抗干扰方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977318A (zh) * | 2010-10-29 | 2011-02-16 | 西安电子科技大学 | Dct量化的并行装置及其方法 |
CN102065309A (zh) * | 2010-12-07 | 2011-05-18 | 青岛海信信芯科技有限公司 | 一种dct实现方法及dct实现电路 |
EP1091317B1 (en) * | 1999-10-05 | 2012-05-23 | NEC Personal Computers, Ltd. | System and apparatus for inserting electronic watermark data |
-
2013
- 2013-10-09 CN CN201310467153.2A patent/CN103533378B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1091317B1 (en) * | 1999-10-05 | 2012-05-23 | NEC Personal Computers, Ltd. | System and apparatus for inserting electronic watermark data |
CN101977318A (zh) * | 2010-10-29 | 2011-02-16 | 西安电子科技大学 | Dct量化的并行装置及其方法 |
CN102065309A (zh) * | 2010-12-07 | 2011-05-18 | 青岛海信信芯科技有限公司 | 一种dct实现方法及dct实现电路 |
Non-Patent Citations (2)
Title |
---|
3DDCT变换下的图像去噪与增强方法;张卫华等;《电子科技大学学报》;20110930;第40卷(第5期);742-746 * |
Video denosising by sparse 3D Transfordomain collaborative Filtering;Kostadin Dabov;《15th Eruopean Signal Processing Conference》;20070930;145-149 * |
Also Published As
Publication number | Publication date |
---|---|
CN103533378A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103533378B (zh) | 基于fpga的三维整数dct变换系统及其变换方法 | |
CN101504637B (zh) | 一种点数可变实时fft处理芯片 | |
CN100592285C (zh) | 一种信号处理方法、装置和系统 | |
CN101937424A (zh) | 基于fpga实现高速fft处理的方法 | |
CN110674927A (zh) | 一种用于脉动阵列结构的数据重组方法 | |
CN103337087A (zh) | 一种基于伪逆自适应算法的压缩感知图像重构方法 | |
CN101154216B (zh) | 用于ofdm载波的调制解调的快速傅立叶变换电路及变换方法 | |
CN109859178A (zh) | 一种基于fpga的红外遥感图像实时目标检测方法 | |
Xiao et al. | FPGA-based scalable and highly concurrent convolutional neural network acceleration | |
CN101426134A (zh) | 用于视频编解码的硬件装置及方法 | |
CN117035028A (zh) | 一种基于fpga的卷积加速器高效计算方法 | |
CN106570272A (zh) | 一种二维离散小波变换的vlsi设计方法 | |
CN108008665B (zh) | 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 | |
JP2001101160A (ja) | 高速フーリエ変換用データ記憶パターン | |
Sankaran et al. | Design and Implementation of 1024 Point Pipelined Radix 4 FFT Processor on FPGA for Biomedical Signal Processing Applications | |
CN112561943B (zh) | 一种基于脉动阵列卷积运算数据复用的图像处理方法 | |
CN106095730B (zh) | 一种基于指令级并行ilp和数据级并行dlp的fft浮点优化方法 | |
Li et al. | The implementation of high-speed FFT processor based on FPGA | |
Malathy et al. | A novel VLSI based radix-2 single path delay commutator (R2SDC) FFT architecture design | |
Ranganathan et al. | Efficient hardware implementation of scalable FFT using configurable Radix-4/2 | |
CN113610221A (zh) | 一种基于fpga的可变膨胀卷积运算硬件系统 | |
Jiang et al. | Algorithm-oriented SIMD computer mathematical model and its application | |
Ghosh et al. | FPGA based implementation of FFT processor using different architectures | |
Shan et al. | High performance 2-D IDCT for Image/Video Decoding based on FPGA | |
Wen et al. | FPGA Implementation of efficient FFT algorithm based on complex sequence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |