DCT算法的原理及实现简介

上传人:人*** 文档编号:498228874 上传时间:2023-11-12 格式:DOCX 页数:3 大小:31.27KB
返回 下载 相关 举报
DCT算法的原理及实现简介_第1页
第1页 / 共3页
DCT算法的原理及实现简介_第2页
第2页 / 共3页
DCT算法的原理及实现简介_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《DCT算法的原理及实现简介》由会员分享,可在线阅读,更多相关《DCT算法的原理及实现简介(3页珍藏版)》请在金锄头文库上搜索。

1、DCT 算法的原理及实现简介1. DCT算法:DCT变换的全称是离散余弦变换(Discrete Cosine Transform),离散余弦 变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对 一个实偶函数进行的。通过数字信号处理的学习我们知道实函数的傅立叶变换获 得的频谱大多是复数,而偶函数的傅立叶变换结果是实函数。以此为基础,使信 号函数成为偶函数,去掉频谱函数的虚部,是余弦变换的特点之一。它可以将将 一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些 修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却 是不容易辨认出来。压缩时,

2、将原始图像数据分成8*8数据单元矩阵,例如亮度 值的第一个矩阵内。维DCT:维函数f(x),频谱函数Q)正/反变换:C(w)=/(.x)=cos( 2t + 1)-1/1(n = 0) 0 = 0)二维DCT:二维函数f(x, y) ?频谱函数v) 正/反变换:C(II)C(v) y) cosC(n) C(v) G(h, y) cos劝(工丫 + 1)-23/-和(2x + 1)2Mcoscos,n(2r +1J-27V-IN(/= 0; v = 0;)淇它)2. DCT产生的工程背景:视频信号的频谱线在0-6MHz范围内,而且1幅视频图像内包含的大多数为 低频频谱线,只在占图像区域比例很低的

3、图像边缘的视频信号中才含有高频的谱 线。因此,在视频信号数字处理时,可根据频谱因素分配比特数:对包含信息量 大的低频谱区域分配较多的比特数,对包含信息量低的高频谱区域分配较少的 比特数,而图像质量并没有可察觉的损伤,达到码率压缩的目的。然而,这一切 要在低熵(Entropy)值的情况下,才能达到有效的编码。能否对一串数据进行有 效的编码,取决于每个数据出现的概率。每个数据出现的概率差别大,就表明熵 值低,可以对该串数据进行高效编码。反之,出现的概率差别小,熵值高,则 不能进行高效编码。视频信号的数字化是在规定的取样频率下由A/D转换器对视 频电平转换而来的,每个像素的视频信号幅度随着每层的时间

4、而周期性地变化。 每个像素的平均信息量的总和为总平均信息量,即熵值。由于每个视频电平发生 几乎具有相等的概率,所以视频信号的熵值很高。熵值是一个定义码率压缩率 的参数,视频图像的压缩率依赖于视频信号的熵值,在多数情况下视频信号为高 熵值,要进行高效编码,就要将高熵值变为低熵值。怎样变成低熵值呢?这就需 要分析视频频谱的特点。大多数情况下,视频频谱的幅度随着频率的升高而降低。 其中低频频谱在几乎相等的概率下获得0到最高的电平。与此相对照,高频频 谱通常得到的是低电平及稀少的高电平。显然,低频频谱具有较高的熵值,高频 频谱具有较低的熵值。据此,可对视频的低频分量和高频分量分别处理,获得高 频的压缩

5、值。自从Ahmed和Rao于1974年给出了离散余弦变换(DCT)的定义以来,离散 余弦变换(DCT)与改进型离散余弦变换(MDCT)就成为广泛应用于信号处理和 图像处理特别是用于图像压缩和语音压缩编解码的重要工具和技术,一直是国际 学术界和高科技产业界的研究热点。现在的很多图像和视频编码标准(如 MPEG-1, MEPG-2,MEPG-4中的第二部分)都要求实现整数的8X8的DCT和 IDCT,而MDCT和IMDCT则主要被应用于音频信号的编解码中(如MPEG-1, MEPG-2和AC-等标准的音频编码部分)。正是由于这类变换被广泛采用,对于 这类变换的快速算法的研究才显得尤为重要。特别是针

6、对特定的应用条件下的快 速算法的研究对于提高整个系统的性能表现有很大帮助。由上面的引用可见,码率压缩基于变换编码和熵值编码两种算法。前者用于 降低熵值,后者将数据变为可降低比特数的有效编码方式。在MPEG标准中,变 换编码采用的是DCT,变换过程本身虽然并不产生码率压缩作用,但是变换后的 频率系数却非常有利于码率压缩。实际上压缩数字视频信号的整个过程分为块 取样、DCT、量化、编码4个主要过程进行首先在时间域将原始图像分成N(水平)XN (垂直)取样块,根据需要可选择4X4、4X8、8X8、8X16、16X16 等块,这些取样的像素块代表了原图像帧各像素的灰度值,其范围在139-163 之间,

7、并依序送入DCT编码器,以便将取样块由时间域转换为频率域的DCT系数 块。DCT系统的转换分别在每个取样块中进行,这些块中每个取样是数字化后的 值,表示一场中对应像素的视频信号幅度值3. 离散余弦变换的实现:实现DCT的方法很多,最直接的是根据DCT的定义来计算。以二维8xSDCT 为例,需要作4096次乘法和3584次加法。这种算法的实现需要巨大的计算量, 不具有实用价值。在应用中,需要寻找快速而又精确的算法。较为常用的方法是 利用DCT的可拆分特性,同样以二维8xSDCT为例,先进行8行一维DCT需要64x S次乘法和56xS次加法,再进行8列一维DCT要64xS次乘法和56xS次加法, 共需要64x8xZ=1024次乘法和56x8xZ=896次加法,计算量大为减少。除此之外,DCT还有很多公开的快速算法。快速算法主要是通过减少运算次 数而减少运算时间,这对于设计快速的硬件系统非常有效。二维DCT的快速算法 则一般采用行列分离DCT算法,即转换为两次一维变换,其间通过转置矩阵连接。 最为经典和常用的快速算法是由Arai等人于1988年提出的AAN算法以及 Loeffier等人于1989年提出的LLM算法。但是,由于行列分离DCT算法能够重 复使用一维变换结构,因此在实际实现上,尤其在硬件上比二维直接计算算法更 有优势。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号