二维离散余弦变换/逆离散余弦变换电路及方法

文档序号:6594856阅读:431来源:国知局
专利名称:二维离散余弦变换/逆离散余弦变换电路及方法
技术领域
本发明涉及图像与视频压缩技术中使用的离散余弦变换(DCT变换)和离散余弦反变换(IDCT变换)的FPGA硬件结构及变换方法,尤其涉及对8X8块的图像数据进行二维DCT变换或二维IDCT变换的电路及其方法。
背景技术
离散余弦变换是数字图像处理和压缩领域的重要变换之一,采用非均量量化的方法来降低图像中的高频分量,消除图像内部的空间冗余信息,同时将图像数据转换成可归一、量化和可变长编码的频域系数。图像信息经过DCT变换后绝大部分的能量集中直流分量和少数低频分量上,广泛应用于静态图像压缩标准JPEG、动态图像压缩标准MPEG和
H.26x中。因而如何提高DCT/IDCT性能,并将其应用于集成电路中,已成为重要的课题。此夕卜,作为DCT/IDCT运算功能的电路部分,除了需满足高效率、实时处理数据外,需尽量简化电路,以最少的硬件结构达到最快的运行目的。二维DCT变换的计算公式如下:
权利要求
1.二维离散余弦变换/逆离散余弦变换电路,其特征在于:包括输入存储器和输出存储器,用于缓冲需要处理的数据的寄存器表,用于数据转置处理的解复用器、第一复用器、第二复用器,用于控制数据处理流程的控制单元,用于产生时钟信号的时钟模块,以及离散余弦变换/逆离散余弦变换单元,输入存储器、第一复用器、寄存器表、解复用器、离散余弦变换/逆离散余弦变换单元、第二复用器、输出存储器依次连接;所述离散余弦变换/逆离散余弦变换单元包括寄存器、对寄存器的数据进行一次和或差运算的第一和差运算单元、对寄存器的数据进行移位后依次进行两次和或差运算的第二和差运算单元,第一和差运算单元、第二和差运算单元的输入端、输出端均与寄存器相连接,寄存器还分别与解复用器、第二复用器相连接。
2.根据权利要求1所述的二维离散余弦变换/逆离散余弦变换电路,其特征在于:所述第一和差运算单元包括4个并行的第一加减法器、4个输入端、4个输出端,所述4个输入端中任一个均被2个第一加减法器所共用,每一个第一加减法器的输出端均作为第一和差运算单元的输出端。
3.根据权利要求1所述的二维离散余弦变换/逆离散余弦变换电路,其特征在于:所述第二和差运算单元包括16个移位器、8个第二加减法器、4个第三加减法器、4个输入端、4个输出端;每4个移位器共用一个输入端,每2个移位器后均对应连接一个第二加减法器,每2个第二加减法器后还均对应连接一个第三加减法器,每一个第三加减法器的输出端均作为第二和差运算单元的输出端。
4.根据权利要求1所述的二维离散余弦变换/逆离散余弦变换电路,其特征在于:所述输入存储器和输出存储器均为先进先出存储器。
5.根据权利要求1所述电路的二维离散余弦变换/逆离散余弦变换方法,其特征在于: 离散余弦变换包括以下步骤:` 步骤101:从寄存器中取出{fl,f6,f2,f5}作为第一和差运算单元的输入,则第一和差运算单元的输出为Iul,u6,u2,u5}并存入寄存器中; 步骤102:从寄存器中取出{f0,f7,f3,f4}作为第一和差运算单元的输入,则第一和差运算单元的输出为{u0,u7,u3,u4}并存入寄存器中; 步骤103:从寄存器中取出{U1,U2,U3,U0}作为第一和差运算单元的输入,则第一和差运算单元的输出为{vl,v2, v3, v0}并存入寄存器;同时,从寄存器中取得{u7,u4,u5,u6}作为第二和差运算单元的输入,则第二和差运算单元的输出为{v4,v7,v5,v6}并存入寄存器; 步骤104:从寄存器中取出{v4,v5,v6,v7}作为第一和差运算单元的输入,则第一和差运算单元的输出为{w4,w5,w5,《7}并存入寄存器;同时,从寄存器中取得{vl,vO,v2,v3}作为第二和差运算单元的输入,则第二和差运算单元的输出为{xl,x0,x3,x2}并存入寄存器; 步骤105:从寄存器中取出{w4,w5,w6,w7}作为第二和差运算单元的输入,则第二和差运算单元的输出为{ x7, x6, x5, x4 }并存入寄存器;同时,从寄存器中取出下一次一维离散余弦变换的{H,f6,f2,f5}作为第一和差运算单元的输入,则第一和差运算单元的输出为下一次离散余弦变换的Iul,u6,u2,u5},存入寄存器;步骤106:重复步骤102 步骤105,直至16次一维离散余弦变换全部完成; 逆离散余弦变换包括以下步骤: 步骤201:从寄存器中取出{X4,X7,X5,X6}作为第二和差运算单元的输入,则第二和差运算单元的输出为{w7, w4, w6, w5}并存入寄存器; 步骤202:从寄存器中取出{w4,w5,w6,w7}作为第一和差运算单元的输入,则第一和差运算单元的输出为Iv4,v5, v6, v7}并存入寄存器;同时,从寄存器中取得{xl,x0, x2, x3}作为第二和差运算单元的输入,则第二和差运算单元的输出为{vl,v0,v3,v2}并存入寄存器; 步骤203:从寄存器中取出{vl,v2,v3,v0}作为第一和差运算单元的输入,则第一和差运算单元的输出为lul,u2,u3,u0}并存入寄存器;同时,从寄存器中取得{v7,v4, v5, v6}作为第二和差运算单元的输入,则第二和差运算单元的输出为Iu4,u7, u5, u6},存入寄存器; 步骤204:从寄存器中取出{U0,U7,U3,U4}作为第一和差运算单元的输入,则第一和差运算单元的输出为{f0,f7,f3,f4},存入寄存器; 步骤205:从寄存器中取出{ul,u6,u2,u5}作为第一和差运算单元的输入,则第一和差运算单元的输出为{fl,f6,f2, f5},存入寄存器;同时,从寄存器中取出下一次一维逆离散余弦变换的{X4,X7,X5,X6}作为第二和差运算单元的输入,则第二和差运算单元的输出为下一次逆离散余弦变换的{w7,w4, w6, w5},存入寄存器; 步骤206:重复步骤202 步 骤205,直至16次一维逆离散余弦变换全部完成。
全文摘要
本发明涉及二维离散余弦变换/逆离散余弦变换电路及方法,其电路包括依次连接的输入存储器、第一复用器、寄存器表、解复用器、离散余弦变换/逆离散余弦变换单元、第二复用器、输出存储器;离散余弦变换/逆离散余弦变换单元包括寄存器、对寄存器的数据进行一次和或差运算的第一和差运算单元、对寄存器的数据进行移位后依次进行两次和或差运算的第二和差运算单元,第一、第二和差运算单元的输入端、输出端均与寄存器相连接,寄存器还分别与解复用器、第二复用器相连接。本发明采用一个加减法器和两个移位器代替了一个乘法器,通过选择特定的系数,使得硬件电路无需使用耗费资源较多、速度较慢的乘法器,硬件计算单元可重复利用。
文档编号G06F17/14GK103237219SQ20131014461
公开日2013年8月7日 申请日期2013年4月24日 优先权日2013年4月24日
发明者陈勇, 宋晓宁, 罗俊海, 祁云嵩, 乔崇, 吴少校, 徐钊 申请人:南京龙渊微电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1