一种二维离散余弦变换系数快速算法
图像压缩中的离散余弦变换算法

图像压缩中的离散余弦变换算法图像压缩是现代计算机技术中非常重要的一个领域。
在传输和存储图像时,为了节省空间和时间,需要对图像进行压缩。
其中,一种常见的压缩技术是使用离散余弦变换算法(DCT)。
本文将介绍离散余弦变换的基本原理和算法实现,并讨论它在图像压缩中的应用。
一、离散余弦变换的基本原理离散余弦变换是一种把时域信号变换到频域的方法。
在数学上,它可以理解为把一个信号分解成若干个正弦函数的加权和。
与傅里叶变换类似,离散余弦变换也可以用来分析和处理信号的频域特性。
离散余弦变换的基本思想是将一个N维向量f看成由N个基函数构成的线性组合,即:f(x)=∑(k=0~N-1) ckφk(x)其中,φk(x)是一组正交基,ck是f(x)在φk(x)上的投影系数。
常用的一组正交基是斯特林函数。
通过计算ck的值,就可以得到信号f在这组基下的频域表示。
二、离散余弦变换的算法实现离散余弦变换可以通过快速傅里叶变换(FFT)的变种算法实现。
具体步骤如下:1. 将N维向量f分成两部分,分别进行离散余弦变换(DCT)得到F0和F1。
2. 将F0和F1通过矩阵乘法与一个Hadamard矩阵相乘,得到新的N维向量F。
3. 重复步骤1和2,直到无法再分割出子向量为止。
离散余弦变换的实现比傅里叶变换更加高效,因为它只需要计算实数变量,而不是复数变量,从而减少了计算的时间和空间复杂度。
三、离散余弦变换在图像压缩中的应用离散余弦变换在图像压缩中被广泛应用。
它的主要思想是把一幅图像分成若干个小块,分别进行离散余弦变换,再选择一定数量的低频分量来表示这个块。
由于图像中的低频分量通常比较重要,选择它们可以保留图像的主要特征,并且同时减小了数据的体积。
在实际应用中,常用的图像压缩格式包括JPEG和MPEG。
其中,JPEG是基于离散余弦变换的压缩格式,具体步骤如下:1. 将一幅图像分成8×8的小块。
2. 对每个小块进行离散余弦变换,得到其频域表示。
dct压缩算法

dct压缩算法摘要:1.引言2.DCT 压缩算法的基本原理3.DCT 压缩算法的优缺点4.DCT 压缩算法在图像压缩领域的应用5.总结正文:1.引言数字信号处理(Digital Signal Processing,简称DSP)是现代通信、图像处理、音频处理等领域的重要技术。
在图像处理中,DCT(Discrete Cosine Transform,离散余弦变换)压缩算法是一种广泛应用的压缩方法。
本文将详细介绍DCT 压缩算法的基本原理、优缺点以及在图像压缩领域的应用。
2.DCT 压缩算法的基本原理DCT 压缩算法是一种基于离散余弦变换的压缩方法。
其基本原理是将图像的二维空间域数据变换到一维频域数据,以降低数据冗余。
在频域中,可以对数据进行更高效的编码和传输。
DCT 变换后的系数具有能量集中在低频部分的特点,这使得数据在压缩后具有较高的重建质量。
3.DCT 压缩算法的优缺点DCT 压缩算法的优点有:(1)变换后的系数具有能量集中在低频部分的特点,有利于数据的压缩和传输。
(2)DCT 变换具有可逆性,可以通过逆变换将压缩后的数据还原为原始数据。
(3)DCT 变换适用于各种图像压缩标准,如JPEG、JPEG2000 等。
然而,DCT 压缩算法也存在一定的缺点:(1)计算复杂度较高,对于大规模图像处理,计算时间和内存消耗可能成为一个限制因素。
(2)DCT 变换仅适用于图像压缩,对于其他类型的数据,如音频、视频等,需要采用其他变换方法。
4.DCT 压缩算法在图像压缩领域的应用DCT 压缩算法在图像压缩领域具有广泛的应用,如JPEG、JPEG2000 等图像压缩标准均采用了DCT 变换。
以JPEG 为例,它采用了基于DCT 的二维预测编码方法,通过对图像的二维数据进行预测、变换、量化、编码等步骤,实现图像的高效压缩。
同时,JPEG 标准还采用了二维哈达玛变换、小波变换等方法,以进一步降低图像的冗余信息。
5.总结DCT 压缩算法是一种基于离散余弦变换的压缩方法,适用于图像压缩领域。
二维离散傅里叶变换计算过程

二维离散傅里叶变换计算过程二维离散傅里叶变换(2D DFT)是一种将二维离散信号转换为频域表示的数学工具。
它是离散傅里叶变换在二维空间上的推广,可以用于图像处理、信号处理和通信等领域。
在本文中,我们将介绍二维离散傅里叶变换的计算过程。
我们需要了解离散傅里叶变换(DFT)的基本概念。
DFT是一种将离散信号转换为频域表示的技术,它可以将一个长度为N的离散信号转换为长度为N的复数序列。
在二维情况下,DFT可以将一个二维离散信号转换为一个二维复数序列。
二维离散傅里叶变换的计算过程可以分为以下几个步骤:1. 输入二维离散信号我们需要输入一个二维离散信号。
这个信号可以是一个图像或者一个二维数据矩阵,其中每个元素代表信号在相应位置的幅度。
2. 对每个元素进行加权和在二维离散傅里叶变换中,我们需要对每个元素进行加权和操作。
加权和的计算公式为:X(k, l) = Σ Σ x(n, m) * e^(-i*2π*(nk/N + lm/M))其中,X(k, l)代表频域中的一个点,x(n, m)代表原始信号中的一个点,N和M分别为信号的宽度和高度,k和l为频域中的坐标,e为自然对数的底数。
3. 计算频域表示通过对每个元素进行加权和操作,我们可以计算得到频域表示。
频域表示是一个二维复数序列,其中每个元素代表信号在频域中的幅度和相位。
4. 可视化频域表示为了更好地理解信号在频域中的表示,我们可以对频域表示进行可视化。
可以使用图像或者矩阵的形式来展示频域表示,其中颜色或者灰度值表示幅度,相位可以通过颜色的变化或者箭头的方向表示。
二维离散傅里叶变换的计算过程与一维离散傅里叶变换类似,只是在计算加权和时需要考虑两个方向的变化。
通过计算二维离散傅里叶变换,我们可以将一个二维离散信号转换为频域表示,从而可以进行频域处理,如滤波、压缩和特征提取等操作。
总结起来,二维离散傅里叶变换是一种将二维离散信号转换为频域表示的数学工具。
它的计算过程包括输入二维离散信号、对每个元素进行加权和、计算频域表示和可视化频域表示。
DCT--离散余弦变换

K. R. Rao and P. Yip, 离散余弦变换 : 算法、优点和应用 (Discrete Cosine Transform: Algorithms, Advantages, Applications) (Academic Press, Boston, 1990).
A. V. Oppenheim, R. W. Schafer, and J. R. Buck, 时间离散信号处理 (Discrete-Time Signal Processing), second edition (Prentice-Hall, New Jersey, 1999).
mhtml:file://C:\Documents%20and%20Settings\Administrator\桌面\FAT3... 2010-10-22
Hale Waihona Puke 反变换DCT-I的反变换是把DCT-I乘以系数
。 DCT-IV的反变换是把DCT-IV乘以系数 。
DCT-II的反变换是把DCT-III乘以系数 ,反之亦然。
离散余弦变换
维基百科,自由的百科全书
离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一 种变换,它类似于离散傅里叶变换 (DFT for Discrete Fourier Transform),但 是只使用实数。离散余弦变换相当于 一个长度大概是它两倍的离散傅里叶 变换,这个离散傅里叶变换是对一个 实偶函数进行的(因为一个实偶函数的 傅里叶变换仍然是一个实偶函数),在 有些变形里面需要将输入或者输出的 位置移动半个单位(DCT有8种标准类 型,其中4种是常见的)。
和离散傅里叶变换类似,变化前面的归一化系数仅仅是常规而已,改变这个系数并不改变变
离散余弦变换(DCT)

离散余弦变换(DCT)DCT变换、DCT反变换、分块DCT变换⼀、引⾔DCT变换的全称是离散余弦变换(Discrete Cosine Transform),主要⽤于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能。
DCT变换本⾝是⽆损的,但是在图像编码等领域给接下来的量化、哈弗曼编码等创造了很好的条件,同时,由于DCT变换时对称的,所以,我们可以在量化编码后利⽤DCT反变换,在接收端恢复原始的图像信息。
DCT变换在当前的图像分析已经压缩领域有着极为⼴⼤的⽤途,我们常见的JPEG静态图像编码以及MJPEG、MPEG动态编码等标准中都使⽤了DCT变换。
⼆、⼀维DCT变换⼀维DCT变换时⼆维DCT变换的基础,所以我们先来讨论下⼀维DCT变换。
⼀维DCT变换共有8种形式,其中最常⽤的是第⼆种形式,由于其运算简单、适⽤范围⼴。
我们在这⾥只讨论这种形式,其表达式如下:其中,f(i)为原始的信号,F(u)是DCT变换后的系数,N为原始信号的点数,c(u)可以认为是⼀个补偿系数,可以使DCT变换矩阵为正交矩阵。
三、⼆维DCT变换⼆维DCT变换其实是在⼀维DCT变换的基础上在做了⼀次DCT变换,其公式如下:由公式我们可以看出,上⾯只讨论了⼆维图像数据为⽅阵的情况,在实际应⽤中,如果不是⽅阵的数据⼀般都是补齐之后再做变换的,重构之后可以去掉补齐的部分,得到原始的图像信息,这个尝试⼀下,应该⽐较容易理解。
另外,由于DCT变换⾼度的对称性,在使⽤Matlab进⾏相关的运算时,我们可以使⽤更简单的矩阵处理⽅式:接下来利⽤Matlab对这个过程进⾏仿真处理:1clear;2clc;3 X=round(rand(4)*100) %产⽣随机矩阵4 A=zeros(4);5for i=0:36for j=0:37if i==08 a=sqrt(1/4);9else10 a=sqrt(2/4);11 end12 A(i+1,j+1)=a*cos(pi*(j+0.5)*i/4);13 end14end15 Y=A*X*A' %DCT变换16 YY=dct2(X) %Matlab⾃带的dct变换运⾏结果为:1 X =23 42 66 68 664 92 4 76 175 79 85 74 716 96 93 39 3789 Y =1011 242.7500 48.4317 -9.7500 23.505212 -12.6428 -54.0659 7.4278 22.795013 -6.2500 10.7158 -19.7500 -38.804614 40.6852 -38.7050 -11.4653 -45.9341151617 YY =1819 242.7500 48.4317 -9.7500 23.505220 -12.6428 -54.0659 7.4278 22.795021 -6.2500 10.7158 -19.7500 -38.804622 40.6852 -38.7050 -11.4653 -45.9341由上⾯的结果我们可以看出,我们采⽤的公式的⽅法和Matlab⾃带的dct变化⽅法结果是⼀致的,所以验证了我们⽅法的正确性。
一种用dsp实现离散余弦变换的方法

一种用dsp实现离散余弦变换的方法离散余弦变换(DiscreteCosineTransform)是一种数字图像处理和数字信号处理技术,它对最近一段时间范围内的一系列数据(例如帧)进行变换,以得到它们的频谱,并以此构建相应的滤波器。
DCT 的应用特别广泛,从图像处理的JPEG编码/解码到语音信号处理的量化和编码/解码,都用到了DCT。
随着数字信号处理(DSP)技术的发展,DCT的实现变得更加容易。
DSP技术使DCT更加有效,可以在更少的时间内实现更多复杂的操作,使特定的应用程序更加高效。
文将介绍一种使用DSP实现DCT的方法。
一种使用DSP实现DCT的方法是基于离散余弦重构(DCR)算法,它可以提高DCT的运行速度多倍。
DCR算法将DCT的复杂运算量分解成一系列简单的数学运算,如乘法和加法,其中每一步都可以单独实现,以便更快地执行此操作。
DCR算法的基本思想是,“将同一帧里的点分解成多个小帧,再将每个小帧进行一次DCT变换”。
先,将要处理的源数据划分成若干幅图像,称为子图。
每一幅图像都可以单独处理,对其进行DCT变换。
然后,将这些子图合并成一幅变换后的DCT图像。
这样就可以获得较高的变换速度。
与常规的DCT算法相比,DCR算法的复杂性较小,因为只需要考虑简单的乘法和加法操作,从而大大提高了DCT的运行效率。
DCR算法的变换速度要比常规的DCT算法快得多,因为只需要处理较少的子图像,而不是处理完整图像。
为了在DSP中实现DCT,我们需要考虑优化技术。
优化技术很重要,可以帮助提高DCT的运行效率。
例如,使用DCR算法,可以有效地优化计算,帮助提高DCT运行效率。
外,也可以使用其他优化技术,如抖动和矢量重新排列,以更有效地执行DCT变换。
总的来说,DCT的实现受到DSP技术的贡献,使之更加易于实现。
使用DCR算法,将DCT的复杂运算量分解为简单的数学运算。
此外,优化技术也有助于提高DCT的运行效率。
快速二维离散余弦变换的VLSI设计
Ke od :d c t cs et nfr D T ;m l—a dr aeadv e oig J E yw rs i r e oi as m( C ) uts n adi g n i ocdn ; P G;M E 4; 2 se n r o it m d P G H.6 4
乘法 器 , 提高 频率 上取得 了 比较好 的效果 , 是 即使 在 但
Z U Z uqn , U u su , I ig H h —i G O Y — n Q N X n g h
(ntueo ire crnc A Istt f col t i C D,H n zo i z U iesy a gh u3 0 1 , hn ) i M e o s a gh uDa i nvri ,H nzo 10 8 C i n t a
第2 7卷 第 7期
21 0 0年 7月
机
电
工
程
Vo . 7 No 7 I2 .
J u n lo c a ia o r a fMe h nc l& E e t c lE g n e i g l cr a n i e r i n
J1 0 0 u .2 1
快 速 二 维 离 散 余 弦 变 换 的 V S 设 计 LI
0 引 言
自 17 94年 N. h d等 人 提 出 了离 散 余 弦 变 换 A me ( i rt C s eTas r D T 算法 后 , 多学 者对 Ds ee oi rnfm, C ) c n o 很
D T算 法 的实 现 进 行 了研 究 。陈 禾 等 人 ¨ 总 结 了前 C 人 的研究 , D T算 法 的 结 构归 纳 为 5类 , 中基 于 将 C 其 乘法 器 的 D T结构 一 直是很 多 学者研 究 的对 象 , C 具有 代表性 的有 w. . h n L M_ 、 A 3等算 法 。L M H C e 、 L 2 A Nl J L
离散余弦变换;dct
离散余弦变换;dct离散余弦变换(Discrete Cosine Transform,DCT)是一种广泛应用于数字信号处理领域的数学变换,可以将一个长度为N的信号(比如音频、图像等)转换为一组N个离散余弦函数的系数。
DCT的应用很广泛,比如JPEG、H.264等压缩算法都使用了DCT,具有较好的压缩性能和鲁棒性。
下面我们就来看一看DCT的一些基本概念和原理。
一、离散余弦变换的定义离散余弦变换的定义可以用下面的公式表示:$ X_k = \sum_{n=0}^{N-1} x_n \cos \left[ \frac{\pi}{N} \left( n +\frac{1}{2} \right) k \right] $其中,x(n)是原始的离散信号,X(k)是它的DCT系数,N是信号的长度,k为DCT系数的下标,它的范围是0~N-1。
二、离散余弦变换的性质DCT具有诸多良好的性质,包括:1. 对称性:DCT在奇偶性、中心对称等方面具有较强的对称性,这有利于算法的实现和计算速度的提高。
2. 能量集中性:DCT可以将信号的能量分为前面的几个系数,这些系数包含了大部分信号的信息,后面的系数则可以舍弃,从而达到压缩和降噪的目的。
3. 可逆性:DCT是一种可逆变换,可以通过逆变换将DCT系数还原为原始信号。
三、离散余弦变换的种类DCT的种类比较多,常用的有DCT-I、DCT-II、DCT-III和DCT-IV等,它们的定义和公式略有不同。
其中,DCT-II是应用最广泛的一种,在JPEG和其他压缩算法中大量应用。
四、离散余弦变换的应用DCT的应用非常广泛,比如:1. 图像和视频压缩:JPEG、H.264等压缩算法都使用了DCT,能够将信号压缩到很小的数据量。
2. 语音信号处理:DCT可以将语音信号转换为频域表示,对于语音的噪声消除、识别和压缩等方面具有重要应用。
3. 数字水印:DCT可以将数字水印嵌入到信号的某些DCT系数中,从而实现数字版权保护、信息隐藏等应用。
第七章 两种正交变换---沃尔什变换和离散余弦变换_01
第七章 两种正交变换--- 沃尔什变换与离散余弦变换信号作为信号空间的一个向量,可以用一组正交基来表示。
任何正交而完备的函数族可以用作这样的正交基。
正弦、余弦函数各自都是正交函数。
但它们都是不完备的。
偶对称信号可以用余弦函数族表出;而奇对称信号只包含正弦分量。
一般信号可以分解为偶对称和奇对称分量。
所以,必须同时用余弦、正弦函数族才能完整地表示一般信号。
复指数函数族通常被用作正交基来表示、分析信号的频谱,因为复指数函数既包含余弦分量,又包含正弦分量。
换句话说,复指数函数族是正交的,完备的。
它所张成的空间便是我们通常所说的频域。
在实践中,除了付里叶变换大家族外,还有许多完备正交函数系可以代替复指数函数族来表示信号。
在这领域,人们不断地进行探索。
将无限维空间的时域信号用所选定的正交基来表示,这是一种正交变换。
本章介绍付里叶变换之外的两种最常见的正交变换,即沃尔什变换和离散余弦变换,说明它们的特点和快速算法。
7.1 沃尔什变换7.1.1 概述基于复指数函数系(正弦-余弦函数系)的付里叶变换方法是目前信号与系统分析中的主要工具,其原因之一是这类信号易于获得,易于变换,便于检测,也容易理解。
在电信技术发展史上,正弦-余弦信号以及付里叶变换方法首先得到广泛应用。
但非正弦信号的研究与应用也一直受到重视。
20世纪60年代末至70年代初,数字技术与计算机科学迅速发展,利用开关元件产生和处理数字信号十分简便易行。
大规模集成电路的迅猛发展提供了体积小、重量轻、可靠性很高的数字硬件。
在这种背景下,人们对非正弦信号的研究和应用又再度重视起来。
事实上,正弦-余弦函数系仅仅是完备正交函数系的一种。
它作为变换核,在付里叶变换过程中要进行复数乘法、加法运算,其量化误差是累积的。
因此,寻找其它更好的完备正交函数系一直是人们的追求。
在这种探索中,应该记住● 1910年,匈牙利数学家哈尔(A.Haar )提出哈尔函数,这是一组完备的正交函数。
离散余弦变换
第七章 频域处理 基于DCT算法的数字水印产生原理
原始图像 水印图像
DCT变换 DCT变换
DCT 系数 组合
反DCT变换
含水 印的 图像
待测图像 原始图像
水印嵌入框图
水印 提取
提取的水印
水印检测框图
水印检测
第七章 频域处理 算法实现过程为: (1)计算图像和水印的离散余弦变换 (DCT)。 (2)将水印叠加到DCT域中幅值最大的前k系数上(不包括直 流分量),通常为图像的低频分量。
2M
2N
式中:x, u=0, 1, 2, …, M-1; y, v=0, 1, 2, …, N-1。
第七章 频域处理
通常根据可分离性, 二维DCT可用两次一维DCT来完成, 其算法流程与DFT类似, 即
f (x, y) F行[ f (x, y)] F(x, v)
转置
F(x, v)T F列[F(x, v)T ] F(u, v)T
第七章 频域处理 1. 正向离散余弦变换
第七章 频域处理
2. 量化 量化是对经过FDCT变换后的频率系数进行量化。量化的
目的是减小非“0”系数的幅度以及增加“0”值系数的数目。
(a)亮度量化值 表
(b)色度量化值表
第七章 频域处理 3. Z字形编排
量化后的系数要重新编排,把一个8×8的矩阵变成一个 1×64的矢量,频率较低的系数放在矢量的顶部。
N x0
2N
第七章 频域处理
将变换式展开整理后, 可以写成矩阵的形式, 即
F=Gf
其中
1/ N
1
1
1
2/N
cos( / 2N )
cos(3 / 2N ) cos((2N 1) / 2N )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第28卷 第2期华侨大学学报(自然科学版)Vol.28 No.2
2007年4月JournalofHuaqiaoUniversity(NaturalScience)Apr.2007
文章编号: 1000‐5013(2007)02‐0131‐04
一种二维离散余弦变换系数快速算法
黄杏英,黄华灿(华侨大学信息科学与工程学院,福建泉州362021)摘要: 研究二维离散余弦变换与二维离散哈脱莱变换间的关系,基于二维哈脱莱变换算法,提出一种计算二维离散余弦变换系数的快速算法畅该算法使二维离散余弦变换的算法复杂度大大降低,从而大幅度提高二维余弦变换的速度.关键词: 离散余弦变换;离散哈脱莱变换;复杂度;降低;快速中图分类号: TP301.6;TN919.8文献标识码: A
变换编码已经被证明是一种有效的图像压缩方法,是迄今为止所有有损压缩国际标准的基础.K‐L(Karhunen‐Loeve)变换是一种最佳变换,它所产生的系数互不相关,即去掉空间冗余度畅同时,变换后的能量也主要集中在少数几个变换系数上.离散余弦变换(DCT)是性能接近K‐L变换的准最佳变换,成为变换编码中使用最广泛的变换方法.DCT变换算法基本上有两大类:一类是DCT本身的递归分解算法,它们是利用4类DCT变换之间的关系推导出来的;另一类是利用DCT变换和离散傅里叶变换(DFT)或离散哈脱莱变换(DHT)之间的关系,用DFT或DHT的快速算法计算DCT[1‐2].本文借鉴二维哈脱莱变换算法计算二维DCT变换系数的快速算法,可使二维DCT变换的复杂度降低,提高了二维DCT变换的速度.
1 二维离散余弦变换
对于二维实序列f(x,y),二维离散余弦变换(2DDCT)可以写成[3]F(u,v)=2Nc(u)c(v)ΣN-1x=0ΣN-1y=0f(x,y)cos[(2x+1)uπ2N]cos[(2y+1)vπ2N],(1)
其逆变换(IDCT)为f(x,y)=2NΣN-1u=0ΣN-1v=0c(u)c(v)F(u,v)cos[(2x+1)uπ2N]cos[(2y+1)vπ2N],(2)
上两式中,x,y=0,1,…,N-1;当u,v=0时,c(u),c(v)=1/2;当u,v≠0时,c(u),c(v)=1畅可见,二维离散余弦变换具有可分离特性,即可以把二维DCT分解成行方向一维DCT计算和列方向一维DCT计算的组合运算.
首先,对f(x,y)行方向做一维DCT计算,有G(u,y)=2Nc(u)・ΣN-1x=0f(x,y)cos[(2x+1)uπ2N],再
对G(u,y)做列方向做一维DCT计算,得F(u,v)=2Nc(v)・ΣN-1y=0G(u,y)cos[(2y+1)vπ2N].
2 二维离散哈脱莱变换
离散哈脱莱变换是一种正交变换,它和离散傅里叶变换之间有着密切关系,且具有正反变换核相同
收稿日期: 2006‐06‐20
作者简介: 黄杏英(1979‐),女,硕士研究生,主要从事数字视频处理与传输的研究;通信作者:黄华灿(1948‐),男,教授,E‐mail:hchuangqz@yahoo.com.cn畅的优点,已被广泛应用于信号处理和图像处理中.二维离散哈脱莱变换(2DDHT)的一种定义为H(u,v)=ΣN-1x=0ΣN-1y=0f(x,y)cas[2π(xu+yv)N], u,v=0,1,…,N-1,(3)
其逆变换(IDHT)为f(x,y)=1N2ΣN-1x=0ΣN-1y=0H(u,v)cas[2π(xu+yv)N], u,v=0,1,…,N-1畅(4)
在式(3),(4)中,变换核cas[2πN(xu+yv)]=cos[2πN(xu+yv)]+sin[2πN(xu+yv)].
3 计算二维离散余弦变换的快速算法
为了简单起见,以后将略去标量因子,则实序列f(x,y)的2DDCT可以写为F(u,v)=ΣN-1x=0ΣN-1y=0f(x,y)cos[vπ(2x+1)2N]cos[vπ(2y+1)
2N], u,v=0,1,…,N-1畅(5)
设g(x,y)=f(2x,2y),x,y=0,1,…,N2-1畅则式(5)可写为
F(u,v)=ΣN-1x=0ΣN-1y=0g(x,y)cos[πu(4x+1)2N]cos[πv(4y+1)2N],(6)
cos[πu(4x+1)2N]cos[πv(4y+1)2N]=
12{cos[2π(xu+yv)N]cos[π(u+v)2N]-sin[2π(xu+yv)N]sin[π(u+v)2N]+
cos[2π[xu+y(N-v)]N]cos[π(u-v)2N]-sin[2π[xu+y(N-v)]N]sin[π(u-v)2N]}畅(7)
由式(6)和(7)可得F(u,v)=12{cos[π(u+v)2N]cos[DFT(u,v)]-sin[π(u+v)2N]sin[DFT(u,v)]+
cos[π(u-v)2N]cos[DFT(u,N-v)]-sin[π(u-v)2N]sin[DFT(u,N-v)}]畅(8)
式中,cos[DFT(u,v)]=ΣN-1x=0ΣN-1y=0g(x,y)cos[2π(ux+vy)N],sin[DFT(u,v)]=ΣN-1x=0ΣN-1y=0g(x,y)・
sin[2π(ux+vy)N]畅他们分别称作g(x,y)的余弦离散傅里叶变换和正弦离散傅里叶变换,可以用
2DDHT表示,即可转化为H(u,v)及其移位来表示畅具体计算为cos[DFT(u,v)]=ΣN-1x=0ΣN-1y=0g(x,y)cos[2πN(ux+vy)]=12ΣN-1x=0ΣN-1
y=0g(x,y){cos[2π
N(ux+vy)]+
sin[2πN(ux+vy)]+cos[2πN[N(x+y)-(ux+vy)]]+sin[2πN[N(x+y)-(ux+vy)]]}=
12ΣN-1x=0ΣN-1y=0g(x,y){cas[2πN(ux+vy)]+cos[2πN[(N-u)x+(N-v)y]]+
sin[2πN[(N-u)x+(N-v)y]]}=12[H(u,v)+H(N-u,N-v)]畅(9)
同理可得sin[DFT(u,v)]=12[H(u,v)-H(N-u,N-v)]畅由上式及式(9)可知,式(8)为
F(u,v)=14{H(u,v)cms[π(u+v)2N]+H(N-u,N-v)cas[π(u+v)2N]+
H(u,N-v)cms[π(u-v)2N]+H(N-u,v)cas[π(u-v)2N]}畅(10)
式中,cas[π(u+v)2N]=cos[π(u+v)2N]+sin[π(u+v)2N],cms[π(u+v)2N]=cos[π(u+v)2N]-sin[π(u+v)2N]畅
由于cas[π[(N-u)+v]2N]=cos[π2-π(u-v)2N]+sin[π2-π(u-v)2N]=sin[π(u-v)2N]+cos[π(u-v)2N]=
231华侨大学学报(自然科学版) 2007年cas[π(u-v)2N]畅同理,也可以得到
cas[π[u+(N-v)]2N]=cms[π(u-v)2N],cas[π[(N-u)+(N-v)]2N]=-cms[π(u+v)2N],
cms[π[(N-u)+v]2N]=-cms[π(u-v)2N],cms[π[u+(N-v)]2N]=-cas[π(u-v)2N],
cms[π[(N-u)+(N-v)]2N]=-cas[π(u+v)2N],cas[π[(N-u)-v]2N]=cas[π(u+v)2N],
cas[π[u-(N-v)]2N]=-cms[π(u+v)2N],cas[π[(N-u)-(N-v)]2N]=cms[π(u-v)2N],
cms[π[(N-u)-v]2N]=-cms[π(u+v)2N],cms[π[u-(N-v)]2N]=cas[π(u+v)2N],
cms[π[(N-u)-(N-v)]2N]=cas[π(u-v)2N]畅
利用式(10)及上面的式子,可得F(N-u,N-v)=14{-H(u,v)cms[π(u+v)2N]-H(N-u,N-v)cas[π(u+v)2N]+
H(u,N-v)cms[π(u-v)2N]+H(N-u,v)cas[π(u-v)2N]},(11)
F(N-u,v)=14{H(u,v)cas[π(u+v)2N]-H(N-u,N-v)cms[π(u+v)2N]+
H(u,N-v)cas[π(u-v)2N]-H(N-u,v)cms[π(u-v)2N]},(12)
F(u,N-v)=14{H(u,v)cas[π(u+v)2N]-H(N-u,N-v)cms[π(u+v)2N]-
H(u,N-v)cas[π(u-v)2N]+H(N-u,v)cms[π(u-v)2N]}畅(13)
从式(10)和式(11)~(13)可知,二维实序列f(x,y)的点f(x,y),f(N-x,y),f(x,N-y)和f(N-x,N-y)的DCT变换系数可由这4点的DHT变换求得畅这4点是关于轴x=N2和y=N
2轴对称的,如
图1所示.得到实序列f(x,y)的点(x,y)的离散哈脱莱变换H(u,v)后,通过移位可得到H(N-u,v),
图1 实序列的点之间对称Fig.1 Thesymmetryoftherealsequeace 图2 用2DDHT计算2DDCT流图Fig.2 Thefigureofcalculation2DDCTby2DDHT
H(u,N-v)和H(N-u,N-v),再利用图2的算法流图,可得到4点对应的离散余弦变换系数.
4 计算复杂性比较
1986年,Kumaresan等提出了式(3)的矢量基算法,使得实数乘和实数加的次数大大减少畅其中,实数乘法的次数Ms(N×N)=(3/2)N2log2N,实数加法和移位的次数As(N×N)=2N2log2N.文[4]
中提出了一种新的分离矢量基2DDHT算法,其算法复杂性是M(N×N)=3Ms(N2×N2)+4Ms(N4×N4)+6(N2×N
2)=3N22log2N-3N28,(14)
331第2期 黄杏英,等:一种二维离散余弦变换系数快速算法