基于数据查找的2D-DCT算法研究与优化.docVIP

基于数据查找的2D-DCT算法研究与优化.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于数据查找的2D-DCT算法研究与优化 摘 要 2D-DCT可由两次1D-DCT间接实现。针对8×8图像块,根据DCT行列分解算法中系数矩阵的结构特点,设计了一种新的查找算法,由输入数据的取值确定寻址范围,每个地址中存贮地址数与系数的乘积值,利用输入数据进行寻址并找到所存数据(共有15169个,约30.4KB),仅需128(320)次加法即可完成一维(二维)DCT,避免了乘法与移位。因第二次1D-DCT的输入数据取值范围增大,且不是整数,本文采取了取整近似,仿真结果证明此算法正确有效。 关键词 DCT算法 存贮 查找 优化 1.引言 在图像与视频压缩领域,DCT(离散余弦变换)算法得到了广泛的应用。数据经DCT算法处理后具有良好的去相关性与能量集中性,为实现数据压缩提供了依据与可能P[1]P。由于DCT算法涉及到大量乘法与加法运算,直接计算运算量很大,难以满足数据处理的实时性要求,算法的优化几乎是必需的。 DCT算法的实现有直接法与间接法两类,基于行列分解的算法是间接法中得以广泛应用的一种。本文针对8×8图像块,根据DCT行列分解算法中系数矩阵的结构特点,设计了一种新的查找算法,减少了需要存取的数据;与文献[2][3]相比,不需要移位,只需要较少次数的加法。 2.2D-DCT的行列分解算法 2.1 DCT算法的定义 N点1D-DCT的公式是: (1) 其中, 。如果N=8,则通过直接计算完成一次1D-DCT需要64次乘法和56次加法。 N×N点2D-DCT公式是: (2) 其中, 。一般取N=8,则通过直接计算完成一次2D-DCT需要4096次乘法和4032次加法。 2.2 2D-DCT的行列分解算法 如果按照公式直接计算2D-DCT,计算量很大,因而出现了大量的快速算法。其中行列分解算法因其结构简单、数据流规则、便于硬件实现等特点而得到广泛应用。对于N×N点图像块,2D-DCT可以通过1D-DCT间接实现:先对N行数据逐行计算1D-DCT,再对其结果进行N列的1D-DCT(或者将上述结果转置后再进行N行的1D-DCT),得到2D-DCT结果。 按照公式(1),当N=8时,1D-DCT可以写成如下矩阵形式: ,其中 ,x(0)~x(7)为输入源数据的第一行,Y(0)~Y(7)为1D-DCT结果的第一列,所以上式可以记为。将矩阵Y转置以后再按列进行一次1D-DCT,可以得到,这是88图像块经过2D-DCT的行列分解算法结果。 3.基于数据查找的DCT算法优化 2D-DCT在实现时,其乘法器所占用的芯片面积与运算时间比例都比较大,为减少或避免乘法,基于数据查找的DCT算法得到广泛研究。其基本思路是:把2D-DCT表达式中所需用到的所有可能的乘法结果都存贮起来,运算时只需按相应条件取出对应值,然后相加,得到变换结果。但现有的优化算法在存贮数据量、乘法与加法次数、移位次数、寻址次数等方面存在相互掣肘的情况P[4,5]P。本文依据1D-DCT结果的简化形式,先建立完整的数据查找表,再确定固定的查找流程,最后仿真验证,结果表明在上述几个方面均有所优化。 3.1 1D-DCT结果的简化形式 从上述矩阵表示式可以看到,系数矩阵C包含8个系数c(0),c(1),c(2),c(3),c(4),c(5), c(6), c(7)。其中c(0)=1,此时有,与矩阵C的第一行相乘以后等于c(4),所以实际上只含有7个系数。 令a=x(0)-x(7),b=x(1)-x(6),c=x(2)-x(5),d=x(3)-x(4),e=x(0)+x(7),f=x(1)+x(6),g=x(2)+x(5),h=x(3)+x(4),可以得到 ,依此 式可以分别写出Y(0)~Y(7)的结果: (3) 式(3)得到了1D-DCT结果的简化形式。 3.2 数据查找表的建立 源图像在利用DCT算法进行处理时,一般被分割成8×8图像块,每个图像块包括64个像素点,每个像素点的取值范围是0~255。上述x(0)~x(7)便是图像块的第一行像素点,0≤x(0),x(1)…x(7) ≤255,变换得到的Y(0)~Y(7)是1D-DCT结果矩阵中的第一列数据。 奇数项Y(1)、Y(3)、Y(5)、Y(7)的值只与a,b,c,d相关。由于a,b,c,d每一行两个位置对称的像素值之差,其取值范围为-255~255,即-255≤a,b,c,d ≤255。针对式(3),可以建立1个数据查找表,每个表的地址数为511,每个地址存贮相应的数据。计算1D-DCT时只需从这个表中

文档评论(0)

企管文库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档