英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料
使用不精确计算的近似DCT图像压缩
IEEE高级成员Haider A.F. Almurib,IEEE高级成员Thulasiraman Nandha Kumar和IEEE研究员Fabrizio Lombardi
摘要──本文提出了一种新的数字图像处理框架。 它依靠不精确的计算来解决与离散余弦变换(DCT)压缩相关的一些挑战。 提议的框架具有三个处理级别: 第一级使用近似DCT进行图像压缩,以消除所有计算密集型浮点乘法,并通过整数加法(在某些情况下为逻辑右移/左移)执行DCT处理。 第二级通过过滤人类感知无法检测到的频率,进一步减少了需要处理的数据量(来自第一级)。最后,为了降低功耗和延迟,第三级引入了电路级不精确加法器来计算DCT。 为了进行评估,本文使用提出的三级框架压缩了一组标准化图像,将不同的优劣指标(例如能耗,延迟,功率信噪比,平均差和绝对最大差)与现有压缩方法进行了比较,还进行误差分析以确认仿真结果。 结果表明,本文提出的方法在减少能量和延迟方面取得了非常好的改进,同时保持了图像处理应用可接受的精度水平。
关键词──近似计算,DCT,不精确计算,图像压缩
1引言
当今的计算机系统通常会处理大量信息,这些信息需要强大的计算能力。 通常在移动/无线环境下,数字信号处理(DSP)系统被广泛用于处理图像和视频信息。这些DSP系统使用图像/视频压缩方法和算法,尽管如此,它们对功率和性能的要求仍然非常严格。压缩方法通常用于减轻这种要求。图像/视频压缩方法分为两大类:无损压缩和有损压缩。后一类的硬件效率更高,但以最终解压缩的图像/视频的质量为代价。对于图像处理,联合图像专家组(JPEG)方法是广泛使用的有损方法,而运动图像专家组(MPEG)方法是广泛用于视频处理的有损方法。 两种标准都使用离散余弦变换(DCT)算法作为基本处理步骤。
针对图像和视频应用,许多用于DCT [1],[2]计算的不同快速算法被开发出来。 但是,由于所有这些算法仍需要浮点乘法; 它们是计算密集型的,需要大量的硬件资源。 为了解决这些问题,许多算法(例如[3])中的系数都可以按比例缩放和近似,以便可以用整数乘法[4],[5]代替浮点乘法。生成的算法比原始版本要快得多,因此,它们在实际应用中得到了广泛使用。 因此,在过去的几年中,通过更窄的总线宽度和更简单的算术运算(例如移位和加法)来实现DCT的良好近似设计已经引起了相当大的关注[6]。
图像/视频处理的一个优点是其高度容错的特性;人类的感觉通常无法感知性能的下降,例如视觉和音频信息的质量。因此,不精确的计算可以用在许多可以忍受精度损失和不确定性程度[7],[8]的应用中,例如图像/视频处理。
在DCT计算中,电路级别上不准确度的引入是针对特定的品质因数(例如功耗,延迟和电路复杂度[9],[10],[11],[12],[13],[14]),这也是非常具有挑战性的。 该方案的目标是低功耗,并且基于精确电路的逻辑/门/晶体管级重新设计,从而实现了工艺公差。 一种逻辑综合方法[9]提出,可以通过考虑所谓的错误率(ER)作为容错性的度量标准来设计用于实现给定功能的不精确版本的电路。与传统的低功耗设计技术相比,降低加法器电路晶体管级的电路复杂度(例如通过在最低位位置将电路截断)可以降低功耗。 除了ER,[11]中还提出了用于估计不精确加法器中误差的新品质因数。
文献[10]提出了一种近似镜像加法器(AMA)电路,与传统的镜像加法器(MA)方案相比,该电路降低加法器单元电路的复杂性,使用单元替换。 单元更换通常提供了较短的关键路径,它还可以实现电压定标并减小开关电容。 [13]基于“异或”和“异或”实现提出了“近似”加法器单元(AXA)。 在[13]的AXA设计中,节点电容和功率也降低了。
[14]作为与本篇文章手稿的最为相关的资料,设计了一种具有较少晶体管数量的加法器单元电路,从而也实现了功耗的降低。 [14]提出了三种新的不精确加法器单元设计,它们在电气和误差特性方面都非常适合进行近似计算。 特别优秀的 是它们只需少量晶体管,只有少量错误输出,却能使延迟和能量耗散明显减少。 关于不精确/近似计算和相关的硬件设计,已有大量文献[9],[10],[11],[12],[13],[14],[15]; 然而,在这些论文中,不精确/近似的程度通常仅限于算术函数和/或,最终目标是在电路级上降低特定的品质因数(例如功耗/能耗,误差和延迟)。 这种类型的分析假定操作是顺畅的,因为一旦考虑了特定的应用程序(和相关的算法),它就不会考虑许多近似域的可能。 该手稿(DSP中最常用的处理算法之一)通过将近似域扩展到更全面的框架中,从而对DCT做出思考。因此,本文提出了一种近似DCT图像压缩的新框架。 该框架基于不精确的计算,它包括三个层次。
- 第1层 由无乘数的DCT转换组成,因此仅涉及加法;
- 第2层 由高频成分(系数)滤波组成;
- 第3层 包含使用不精确加法器的计算
在技术文献中[1],[17],[18]对第一层进行了广泛的研究。 第2层是一种直观的技术,可以降低计算的复杂性,同时仅在图像压缩中获得少量降级。 第3层遵循电路级技术,通过该技术可以进行不精确的计算(尽管在此手稿中使用了新的有效的不精确加法器单元)。 因此,在这三个层次的综合影响中发现了该手稿的贡献。所提出的框架已得到广泛的分析和评估。 仿真和错误分析表明,图像压缩作为不精确计算的应用在结果上有着显着的一致性。
此后,为避免混淆,单词“approximate”仅用于DCT算法,而单词“ inexact”用于涉及DCT计算的非精确硬件电路和设计。
本文的组织结构如下:第2节介绍了DCT,第3节介绍了使用不精确加法器的近似DCT实现。第4节介绍了建议的框架,第5节介绍了其评估。最后,结论是在第6节中提供。
2回顾DCT
为了本文的完整性,接下来是一些近似DCT的初步知识和相关主题的介绍 。
2.1离散余弦变换(DCT)
为了获得图像块的第i和第j个DCT变换元素(由大小为N的矩阵p表示),使用以下公式:
其中p(x,y)是图像的位于坐标(x,y)的元素。 该方程式根据原始图像矩阵的像素值计算出转换图像的一个条目(i,j)。 对于常用的JPEG压缩8x8块,N等于8,x和y的范围为0到7。因此,D(i,j)也由以下公式给出:
对于矩阵计算,可从以下项获得DCT矩阵:
因此,除非使用近似算法,否则DCT的计算量很大,可能需要浮点运算才能进行处理。
2.2联合图像专家组(JPEG)
首先可以通过DCT将图像转换到频域来启动JPEG处理; 这样可以将图像分成不同频率的部分。 然后,执行量化以使得重要性较低的频率被丢弃。 这反映出人类具有相当好的能力,能够在较大的区域内关注到较小的亮度差异,但是他们通常无法区分快速变化的亮度变化的确切强度。 压缩发生在该量化步骤中,其中频域中的每个分量都除以一个常数,然后四舍五入为最接近的整数。 这导致许多高频分量具有非常小甚至为零的值,几乎都是很小的值。 然后在解压过程中遍历检索图像,该过程仅使用已保留的重要频率执行。
对于JPEG处理,必须执行以下步骤:
1. 首先将图像(彩色或灰度级)细分为若干个k x k像素块(通常k = 8)。
2. 然后从左到右,从上到下,将DCT应用于每个块。
3. 这会生成k x k个系数(对于k = 8会生成64个系数),然后对其进行量化以减小幅度
4. 得到的压缩块阵列表示压缩图像,即存储或传输的图像。
5. 为了重新找回图像,使用逆DCT(IDCT)对压缩图像(块阵列)进行解压缩。
为了图像和视频应用,许多不同的DCT [1],[2]计算快速算法已经被开发。 Loeffler等人提出的方法 [19]需要11次乘法和29次加法,这被认为是最有效的,因为一维八点DCT所需的乘法次数的理论下限已被证明是11 [20],[21]。 为了进一步降低计算复杂度,可以将DCT的某些操作合并到量化步骤中。 这些所谓的扩展DCT可以带来显着的改进。例如,Arai的方法只需要五个乘法和很少的加法,准确的说就是29 [3]。
所有上述快速算法仍然需要浮点乘法,因此它们实现起来缓慢且复杂。 为了实现更快的计算速度,许多算法(例如Arai的方法[3])中的系数都可以缩放并近似为整数,从而可以用整数乘法[4],[5]代替浮点乘法。 生成的算法比原始算法要快得多,因此具有广泛的实际应用。
这些快速算法所需的定点乘法通常需要大宽度的数据总线(通常为32位),因此在硬件和功耗上都是昂贵的VLSI实现。 因此,通过更窄的总线宽度和更简单的算术运算(例如移位和加法)来实现DCT的良好近似设计非常有吸引力[6]。
近年来,在技术文献中可以找到低复杂度的方法来有效地计算8点DCT [22]。 近似技术包括带符号的DCT(SDCT)[23],Lengwehasatit-Ortega提出的的近似第1层[24],Bouguezel-Ahmad-Swamy(BAS)系列算法[25],[26],[27]和 DCT舍入近似[28]。 但是,考虑实施时,并非文献中发现的所有近似技术都是有益的。 例如,[24]在计算DCT之前需要其他步骤来确定适当的近似值。 通常,近似DCT方法的变换矩阵项仅为{0,plusmn;1/2,plusmn;1,plusmn;2}; 因此,所谓的空乘复杂性是可能的,因为所涉及的运算可以仅通过加法和移位运算来实现[29]。
这些近似DCT方法的推导依赖于SDCT,可以通过将符号函数运算符应用于DCT矩阵系数(即
因此,除了1/项,DCT矩阵仅包含正/负1和零,因此意味着加/减或无运算。
通过将的某些系数设置为零,可以实现近似的DCT。 因此,获得8x8变换矩阵C可以通过两个步骤获得:(1)在8 x 8 SDCT矩阵中引入几个零和1/2,以生成修改的变换矩阵T; (2)引入对角矩阵D,以使所得的变换矩阵C=DT正交,即。因此,只需变换矩阵及其转置即可执行DCT。 带符号的DCT [23]需要两个唯一的变换(正向和逆向),因为T不正交。
以BAS2008 [25]给出的第一个近似转换为例;
D =
例如,令X为图像的8x8块矩阵,令F为变换域中的对应块矩阵。 然后,可以分别使用近似变换F = CXCrsquo; = D(TXTrsquo;)D和X = Crsquo;FC = Trsquo;(DFD)T来执行正向和逆变换操作。 上面的近似变换(以及文献中发现的所有其他变换)不是无乘法的。 但是,通过在变换域中将量化/去量化应用于块矩阵,将对角线矩阵D合并到量化/去量化矩阵中,可以做到这一点。 与传统的DCT变换相比,给定精确的变换矩阵T,F=TXTrsquo;,反之为X=Trsquo; Frsquo; T,其中Frsquo;是解码图像部分。
表1说明了近似DCT方法的8点DCT计算复杂度,并与原始DFT,Cooley–Tukey DFT和原始DCT进行了比较。
除了DCT矩阵近似操作之外,还提出了用于计算DCT的快速算法,例如使用无乘数逼近[18]和像素级行为决策[30]。 通常,这些近似方法依赖于精度和低功耗之间的权衡。
3不精确的加法和近似DCT
算术电路非常适合不精确的计算; 加法已经在技术文献中进行了广泛的分析,并且是涉及到不精确计算的许多应用中的基本算术运算之一[31]。 在加法器电路中的晶体管级降低电路复杂度通常可以很好地降低功耗,比传统的低功耗设计技术要高[10]。 [12]中对不精确加法器设计进行了评估:通过用较低电路复杂度的近似单元代替模块化加法器设计的精确单元,或通过在加法过程中修改进位的生成和传播,引入了不精确操作 。
[14]提出了三种新的不精确加法器单元设计(分别表示为InXA1,InXA2和InXA3)。 这些单元具有电气和误差功能,非常适合进行近似计算。 表2所示的这些加法器单元具有以下优于先前设计[10],[13]的优势:(i)晶体管数量很少; (ii)两个输出(即“和”和“进位”)中的错误输出数量很少;(iii)较小的开关电容(以最小尺寸的NMOS的Cgn栅极电容表示),从而导致延迟和能量耗散(表3)(及其乘积以组合度量)显著降低。
表3列出了平均情况和最差情况下不精确电池的延迟,耗能和EDP(能量延迟乘积)等指标。在不精确电池中,InXA1的平均和最坏情况延迟最少,而InXA2的发生最少。 平均和最差情况下的功耗以及最小的平均EDP。加法器单元的平均和最坏情况下的延迟以及能量耗散已通过详尽的仿真确定。 对于每个输入信号,在输出达到最大值的90%时测量延迟,而在输出达到90%的时间内测量所有晶体管的功耗。根据这些优点,接下来将在DCT应用中考虑基于InXA1和InXA2的加法器。
表4总结了使用基于InXA1和InXA2的加法器实现近似DCT方法的仿真结果,这两种方法针对不同的NAB值导致最低的EDP [14],其中NAB定义如下。
定义 近似位数(NAB)定义为从使用不精确单元的LSB开始的位数。
该表中的数据是使用不同的不精确加法来计算一个8x8图像块大小的DCT变换的结果。为了获得表4的数据,将具有表3的详尽输入的单个加法器单元的平均节省情况与表1结合使用,以计算所有近似DCT方法的延迟,耗能和EDP结果。 请注意,为简化计算,未考虑BAS08,BAS11(
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[237654],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。