资源描述:
《基于fpga的快速dct医学图像的压缩算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于FPGA的快速DCT医学图像的压缩算法 Abstract:AFPGAdesignforfastDiscreteCosinetransform(DCT)implementationarchitectureusedinmedicalimagepressionispresented.Thearchitectureisachievedusingrondeposition.First,the8×8tensionalDCTisdeposedintotensionalDCT,simplifyingthecoefficientmatrix,berofadderandmul
2、tipliertominimum,andusingtheparallelpipelinetechnologyofFPGA,theputationtimeisgreatlysavedandimageprocessingspeedisimproved. Keyagepression;Rondeposition;Parallelpipeline 1引言 DCT变换是视频压缩编解码器中很重要的一部分,被广泛应用于各种视频格式的编码算法中,例如:JPEG,MPEG1,MPEG2,H.264等[1]。DCT变换虽然不能直接降低数据量,但是它可以利用图像的统计特性使得各
3、种降低数据量的方法更为有效地工作。它能把图像的能量集中到少数的几个数据上,在很大程度上消除数据间的冗余性和相关性。 一般来讲,医学图像都比较大,例如腹部横断面的CT图像(512×512的bmp图像),对于此类图像,如果要在整体上进行DCT变换,将耗费大量的时间,因此我们需要将整幅图像切割成若干的子块,对子块进行DCT变换,在本研究中采用的是8×8pixels的字块。 二维DCT变换需要进行大量的运算,大量的乘法及加法运算严重影响了变换速度,为减少运算次数,缩短运算时间,人们作了不懈的努力,并提出了多种快速算法,但处理过程中数学运算仍然相当复杂。我们在前人工作
4、的基础上,对用行列分解法实现DCT变换的方法进行了优化,并充分利用了FPGA器件的嵌入式乘法器及存储器资源,明显缩短了变换时间。 2DCT算法原理 2.1一维DCT算法原理 设{x(n)}表示N个有限的一维实数信号序列集合,n=0,1,2,…,N-1,则一维DCT定义为: y(k)=2Nc(k)∑N-1n=0x(n)cos((2n+1)kπ2N), 其中c(k)=12k=0 1k=1,2,…,N-1 2.2二维DCT算法 对于一个N×N的图像,x(i,j)表示图像样值,其二维DCT变换公式如下: y(u,v)=2Ne(u)e(v)∑N-1i=0
5、∑N-1j=0x(i,j) cos(2i+1)uπ2Ncos(2j+1)vπ2N, 其中 e(u),e(v)=12u,v=0 1u,v≠0(u,v=0,1,2,…,N1) 生物医学工程研究第28卷第3期王宁,等:基于FPGA的快速DCT医学图像的压缩算法二维DCT变换具有很高的复杂度,从上式我们可以看出,二维DCT可以分解为两个一维的DCT变换: y(u,v)=2Ne(v)∑N-1j=0 2Ne(u)∑N-1i=0x(i,j)cos(2i+1)uπ2Ncos(2j+1)vπ2N, 首先对二维DCT进行一维列变换: x(u,j)=2Ne(u)∑
6、N-1i=0x(i,j)cos(2i+1)uπ2N 转置之后再次进行一维列变换: y(u,v)=2Ne(v)∑N-1j=0x(u,j)cos(2i+1)vπ2N 至此,我们就完成了一次完整的二维DCT变换。 y3 y4 y5 y6 y7=d〖〗ddddddd aceg-g-e-c-a bf-f-b-b-ffb c-g-a-eeag-c d-d-ddd-d-dd e-agc-c-ga-e f-bb-f-fb-bf g-ec-aa-ce-gx0 x1 x2 x3 x4 x5 x6 x7, 其中a b c d e
7、 f g=12cosπ/16 cosπ/8 cos3π/16 cosπ/4 cos5π/16 cos3π/8 cos7π/16 要完成一次列向量的DCT变换需要64次乘法和56次加法,根据三角函数性质和矩阵系数对称性,上式可以分解为两个矩阵表达式: y0 y2 y4 y6=dddd bf-f-b d-d-dd f-bb-fx0+x7 x1+x6 x2+x5 x3+x4, y1 y3 y5 y7=aceg c-g-a-e e-a-gc g-ec-ax0-x7 x1-x6 x2-x5 x3-x4, 现在只需3
8、2个乘法器和32个加法器