基于分类DCT域快速分形编码方法
- 格式:doc
- 大小:28.00 KB
- 文档页数:8
DCT算法的相关知识与原理DCT(Discrete Cosine Transform,离散余弦变换)是一种基于频域的信号处理技术,广泛应用于图像和音频压缩、数据压缩和信号处理等领域。
其主要原理是将时域的一段信号变换为频域的一组余弦系数,通过保留部分重要系数来减少信号的冗余信息,从而实现信号的压缩和重建。
正变换的具体步骤如下:1.将时域信号分为若干个相同大小的块,并在每个块的边缘上添加一个边界。
2.对每个块进行离散余弦变换,并计算出对应的余弦系数矩阵。
3.对余弦系数矩阵进行量化处理,将其舍入为整数值。
量化矩阵是用于将高频部分的系数舍弃,从而减少冗余信息的重要步骤。
4.保留部分重要的系数,舍弃剩余的系数。
常用的方法是选择一个适当的阈值来判断系数的重要性,将小于阈值的系数置为零。
5.将量化后的系数按照其中一种编码方式进行编码,以便存储和传输。
常用的编码方式包括霍夫曼编码和算术编码等。
逆变换则是正变换的逆过程,用于将频域信号恢复为时域信号。
1.将编码后的系数解码,恢复为量化前的系数。
2.逆量化步骤是将量化后的系数乘以量化矩阵,以恢复出原始大小的系数矩阵。
3.对逆量化后的系数矩阵进行离散余弦逆变换,得到逆变换后的时域信号。
4.去掉边界,得到最终的还原信号。
DCT算法主要应用在图像和音频压缩中。
在图像压缩中,通常将图像分为若干个8x8的图像块,并对每个块进行DCT变换。
由于图像的高频成分较低频成分所占比例较小,因此可以通过量化和舍弃高频系数来减少数据量。
在音频压缩中,也可以将音频信号分帧处理,并使用DCT变换将时域信号转换为频域系数,之后再通过量化和编码来减少数据量。
总之,DCT算法通过将时域信号转换为频域系数,并舍弃冗余信息来实现信号的压缩。
其核心思想是通过保留重要的低频成分来表示原始信号,在不失真的情况下减少信号的体积,并在需要时进行解码和还原。
DCT算法在图像和音频压缩领域有着广泛的应用,是实现高效数据压缩和传输的重要技术。
FDCT快速算法FDCT(快速分散余弦变换)是一种用于图像和视频压缩的算法。
它是DCT(离散余弦变换)的一种实现方式,可将时间复杂度由O(N^2)降低到O(NlogN),其中N是输入图像的大小。
FDCT算法的核心思想是利用DCT变换的特殊性质,将输入图像分成多个小块,并对每个小块进行DCT变换。
然后根据变换后的结果,对小块进行量化和编码,从而实现图像的压缩。
FDCT算法的步骤如下:1.输入图像被分成若干个小块,每个小块的大小为NxN。
2.对每个小块进行DCT变换。
DCT变换会将每个小块映射到频域,得到一个系数矩阵。
该系数矩阵描述了图像在不同频率下的能量分布情况。
3.对DCT变换后的系数矩阵进行量化。
量化是将系数矩阵中的值映射到一个离散的值域,从而减少存储空间。
通常,高频分量会被量化为较小的值,而低频分量会被量化为较大的值。
4.对量化后的系数矩阵进行编码。
编码阶段会对系数矩阵进行熵编码,从而进一步减少存储空间。
5.重复以上步骤,直到对整个图像进行完整的压缩。
由于FDCT算法采用了分块的方式进行处理,它可以并行地处理每个小块,从而实现快速压缩。
此外,FDCT算法中的量化和编码操作,可以选择适当的参数,以权衡图像质量和压缩比。
尽管FDCT算法可以实现图像和视频的高效压缩,但在解压缩过程中,必须按照相反的步骤进行操作,以将压缩数据还原为原始图像或视频。
因此,FDCT算法通常需要一个解码器来实现数据的恢复。
总而言之,FDCT快速算法是一种用于图像和视频压缩的高效算法。
它通过利用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对这个过程进⾏仿真处理:1 clear;2 clc;3 X=round(rand(4)*100) %产⽣随机矩阵4 A=zeros(4);5 for i=0:36 for j=0:37 if i==08 a=sqrt(1/4);9 else10 a=sqrt(2/4);11 end12 A(i+1,j+1)=a*cos(pi*(j+0.5)*i/4);13 end14 end15 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变化⽅法结果是⼀致的,所以验证了我们⽅法的正确性。
DCT变换原理解析汇报DCT(Discrete Cosine Transform)是一种将信号从时域转换为频域的数学变换方法。
它是傅里叶变换的一种特例,适用于对实值信号的频域分析。
DCT广泛应用于图像和音频压缩、视频编码、数据传输等领域,具有高效性和良好的数据压缩性能。
DCT的原理可以通过以下几个步骤来解析:1.信号分块:DCT变换是通过对信号进行分块来实现的。
将信号分为多个小块,每个小块的长度通常为2的整数次幂(如8、16等)。
这是为了方便进行快速算法的设计。
2.构建变换矩阵:DCT变换矩阵是一个正交矩阵,用于将时域信号转换为频域信号。
DCT变换矩阵是一种特殊的余弦变换矩阵,它的元素可以通过公式计算得到。
此外,DCT变换矩阵是奇异矩阵,意味着它的逆矩阵和转置矩阵是相等的。
3.计算DCT系数:对于每个分块的信号,将其与DCT变换矩阵进行点乘运算,得到对应的DCT系数。
DCT系数表示信号在不同频率上的贡献程度。
具体计算方法是将信号和变换矩阵的乘积相加,并乘以一个标准化因子。
4.量化:DCT系数通常是实数形式,但在实际应用中需要将其量化为整数形式。
量化是为了减少系数的精度和数量,从而实现数据的压缩。
通过使用不同的量化步长,可以实现不同程度的压缩。
量化步长越大,压缩率越高,但图像或音频质量也会受到影响。
5.逆变换:逆DCT变换将量化后的系数重新转换为时域信号。
逆DCT变换使用DCT变换矩阵的逆矩阵进行计算。
与DCT变换相似,逆变换也可以通过对每个分块的系数进行点乘运算得到。
1.能量集中性:DCT变换将信号从时域转换为频域,这样可以将信号的能量在频域上进行集中,从而提高信号的压缩效率。
2.信息集中性:与傅里叶变换相比,DCT变换将信号的能量集中在较低频率的系数上,这样在压缩时只需保留较低频率的系数,可以减少数据量,同时保留主要的信息。
3.数据压缩性能:DCT变换可以实现对信号的较高压缩比,同时能够保持较好的重建质量。
基于图像子块特征的快速分形图像编码算法
周一鸣;张超;张曾科
【期刊名称】《计算机应用研究》
【年(卷),期】2008(25)2
【摘要】根据图像子块的像素分布特征,提出了一种基于方差和DCT变换的混合快速分形图像编码算法,并在此基础上引入了平滑块的概念.该算法在大幅度提高分形图像编码速度的同时,很好地改善了压缩率和解码图像的质量.实验表明该方法具有优良的性能,在编码时间优于方差快速编码方法的前提下,解码图像的质量和压缩率可以好于基本分形图像编码算法.
【总页数】3页(P458-459,463)
【作者】周一鸣;张超;张曾科
【作者单位】清华大学,自动化系,北京,100084;清华大学,自动化系,北京,100084;清华大学,自动化系,北京,100084
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.图像子块特征匹配的快速分形编码算法 [J], 李高平;刘莉
2.基于图像块叉迹的快速分形图像编码算法 [J], 何传江;黄席樾
3.基于子块特征的快速分形图像压缩算法 [J], 吴晓燕;刘希玉;徐庆
4.基于规范子块五点和的快速分形图像编码 [J], 何传江;刘维胜;申小娜
5.基于子域对角和的快速分形图像编码算法 [J], 王丽娜;刘晓东;贺兴华;沈灿岭
因版权原因,仅展示原文概要,查看原文内容请购买。
dct编码原理
DCT(离散余弦变换)编码是一种用于图像和音频压缩的常用方法。
它通过将信号转换为基于余弦函数的频域表示,在保留关键信息的同时丢弃冗余数据来实现压缩。
DCT编码的原理是将原始信号分解为不同频率的余弦波形,然后对这些波形进行量化和编码。
具体来说,编码过程包括以下几个步骤:
1. 将输入信号分成块:DCT编码通常将输入信号划分为固定大小的块,例如8x8像素的图像块或音频帧。
2. 应用DCT变换:对每个块应用DCT变换,将其从时域转换到频域。
这意味着对于图像,我们将8x8像素块转换为相应的8x8频谱系数。
3. 量化:对DCT系数进行量化。
由于相邻频域系数通常具有较高的相关性,并且高频系数对图像或音频的质量影响较小,因此可以通过减少高频系数的精度和量化低频系数来减少数据的冗余。
一般来说,采用较低的量化步长(即量化精度更高)将产生更高质量的编码,但也会占用更多的存储空间。
4. 编码:对量化后的DCT系数进行压缩编码。
常用的方法包括哈夫曼编码、算术编码等。
这些编码方法能够根据系数的出现频率来分配更短的编码长度,从而进一步减小数据的存储空间。
通过以上步骤,DCT编码能够在一定程度上压缩信号数据,减小存储空间的使用。
当需要还原原始信号时,可以通过逆向操作进行解码:解码量化系数和逆变换,从频域反转到时域,最终得到近似于原始信号的重建结果。
总的来说,DCT编码通过将信号转换为频域表示,并对频域系数进行量化和编码,以实现压缩。
它是一种广泛应用于图像和音频压缩的有效方法,具有良好的压缩效果和可逆性。
第一章《多媒体技术概论》思考练习题答案填空题:1、国际电讯联盟(ITU)将媒体分为五大类,分别为感觉媒体、表示媒体、表现媒体、存储媒体、传输媒体。
2、多媒体技术中所说的媒体一般指感觉媒体,图像编码应属表示媒体。
3、多媒体信息的主要特点包括信息媒体的多样性、集成性、交互性、实时性,还有数据的海量性、媒体信息表示的空间性和方向性等。
4、多媒体技术的发展历程大致可分为三个阶段,即启蒙发展阶段、标准化阶段、普及应用阶段。
5、ISO和ITU联合制定的数字化图像压缩标准主要有JPEG标准、MPEG系列标准、H.26X 标准。
简答题:1、什么是多媒体?答:从多媒体技术专业角度讲,可理解为:多媒体的“多”是其多种媒体的表现,多种感官的作用,多种设备的使用,多学科的交汇,多领域的应用;“媒“是指人与客观世界的中介;“体”是言其综合、集成一体化。
2、什么是多媒体技术?答:是指多媒体信息的数字化、设计与制作技术、及各种媒体集成一体化,经数据压缩处理和存储,并由新传播媒介发布的具有交互性的多媒体信息技术。
3、JPEG标准(ISO/IEC 10918标准)?答:适用彩色和单色、多灰度连续色调、静态图像压缩国际标准。
4、MPEG-1(ISO/IEC 11172标准)?答:用于数字运动图像,其伴音速率为1.5Mbps的压缩编码。
5、我国国家信息产业部批准成立的数字音频视频的编码技术标准工作组(A VS)的主要工作是什么?答:开展具有自主产权的数字音视频产业的共性基础标准的研究。
并面向我国的信息产业需求,制定数字音视频的压缩、解压缩、处理和表示等共性技术标准A VS,服务于数字音视频产业应用。
第二章多媒体数据压缩技术复习思考题答案填空题:1、多媒体数据能不能被压缩,关键是多媒体数据中是否存在“_____”,即“多媒体数据压缩的可能性”。
答:数据冗余2、“信息量”与“数据量”之间的关系是__________。
答:信息量=数据量-冗余量3、多媒体数据冗余信息包括____、_____、_____、____、____、_____、_____、图像区域的相同性冗余、其它冗余。
使用2-范数匹配的快速分形图像编码算法
李高平;雷开彬;周绪川
【期刊名称】《计算机工程与应用》
【年(卷),期】2008(044)005
【摘要】尽管分形图像压缩在高压缩比时具有高的重建图像质量,但由于它编码过程耗时而未能在图像压缩领域广泛应用.为了提高分形图像编码过程的速度,提出了基于2-范数匹配的快速分形图像编码算法,该算法先把码书里的码块按2-范数大小赋序,然后对每个输入Range块,在赋序码书中寻找与它的2-范数最接近的码块,进而在这个码块的领域内搜索Range块的最佳匹配块.计算机仿真结果显示,在不影响基本分形图像编码算法解码图像质量的情况下,该方案大大加快了它的编码速度.【总页数】4页(P85-87,108)
【作者】李高平;雷开彬;周绪川
【作者单位】西南民族大学,计算机科学与技术学院,成都,610041;西南民族大学,计算机科学与技术学院,成都,610041;西南民族大学,计算机科学与技术学院,成
都,610041
【正文语种】中文
【中图分类】TN919.81
【相关文献】
1.基于2-范数匹配的分形图像编码改进算法 [J], 徐庆;刘弘;吴晓燕
2.改进转动惯量特征的快速分形图像编码算法 [J], 李高平;杨军;陈毅红
3.基于HV分割的快速分形图像编码算法 [J], 张林娜;袁和金
4.2-范数结束条件的分形图像编码算法 [J], 李高平;梅林
5.基于HV分割的快速分形图像编码算法 [J], 张林娜;袁和金
因版权原因,仅展示原文概要,查看原文内容请购买。
dct变换编码python实现DCt变换编码是一种在信号处理和图像处理领域广泛应用的技术,它可以将数学上的连续两个信号之间的关系转化为离散的形式,从而方便后续的处理和分析。
在本文中,我们将学习如何使用Python实现DCT变换编码,并深入了解其原理和应用。
首先,让我们来了解一下DCT是什么以及它的工作原理。
DCT,即离散余弦变换(Discrete Cosine Transform),是一种基于余弦函数的数学变换方法。
它把一个实数序列变换为一组实数的序列,这些实数是在变换的基础上被压缩。
DCT主要用于将图像和音频信号从空域转换到频域,使得信号在频域中的表示更具有稀疏性。
稀疏性是指信号在频域中的表示中很多频率分量的振幅都很小,只有少数几个分量的振幅较大。
这种特性使得DCT编码非常适合于信号的压缩和储存。
接下来,我们将使用Python来实现DCT变换编码。
首先,我们需要导入相关的库和模块。
在Python中,可以使用NumPy库来实现DCT变换。
NumPy是一种数学库,提供了许多用于科学计算的函数和工具。
pythonimport numpy as np然后,我们需要定义一个函数来实现DCT变换。
我们将使用两重循环来计算DCT变换的每个系数。
其中,i和j表示DCT系数的索引,N表示信号的长度。
DCT变换可以通过以下公式来计算:pythondef dct_transform(signal):N = len(signal)dct = np.zeros(N)for i in range(N):for j in range(N):dct[i] += signal[j] * np.cos(np.pi / N * (j + 0.5) * i)return dct现在,我们可以使用上述函数来对一个信号进行DCT变换了。
假设我们有一个长度为8的信号,可以使用以下代码来进行DCT变换:pythonsignal = np.array([1, 2, 3, 4, 5, 6, 7, 8])dct_signal = dct_transform(signal)print(dct_signal)上述代码将输出信号的DCT变换结果。
基于DCT变换和SVD变换的数字水印技术数字水印技术是一种能够在媒体对象中嵌入并提取出一些隐藏信息的技术。
基于离散余弦变换(DCT)和奇异值分解(SVD)的数字水印技术被广泛应用于数字图像和视频的版权保护和认证。
DCT变换是一种将时域信号转换为频域信号的方法,被广泛用于图像和视频编码中。
DCT变换通过将一幅图像分成小的块,对每个块进行频率转换,并对每个块进行量化和编码,从而压缩图像数据。
DCT变换的一个关键特性是,它对图像的频率信息进行了分解和压缩,同时具有较好的鲁棒性和容错性。
这使得DCT变换成为数字水印技术的理想工具。
SVD变换是一种将一个矩阵分解为三个矩阵乘积的方法,被广泛应用于信号处理和图像处理领域。
SVD变换将一个矩阵分解为一个正交矩阵、一个对角矩阵和一个正交矩阵的转置。
在数字水印技术中,SVD变换可以用于将一幅图像分解为一组特征向量和特征值,并在特征向量上嵌入数字水印。
1. 水印嵌入:将原始图像进行DCT变换或SVD变换,得到一组频率信息或特征值。
然后,在这组频率信息或特征值中嵌入数字水印。
嵌入的方法可以是简单的替换或修改频率信息的某些值,或者可以采用更复杂的算法,如正交化嵌入算法或可逆嵌入算法。
3. 水印验证:将提取得到的水印信息与原始水印进行比较,判断水印是否被篡改或伪造。
验证方法可以是简单的比较水印的值或相似度,也可以采用更复杂的算法,如相关性分析或统计学检验。
基于DCT变换和SVD变换的数字水印技术具有一些优势和应用前景。
DCT变换和SVD 变换具有较好的鲁棒性和容错性,能够在一定程度上抵御噪声、失真和攻击。
DCT变换和SVD变换具有较高的计算效率和存储效率,适用于大规模的图像和视频处理。
基于DCT变换和SVD变换的数字水印技术还可以与其他图像和视频处理技术相结合,例如数字签名、加密和压缩等,从而提供更加全面和安全的版权保护和认证方案。
基于DCT变换和SVD变换的数字水印技术也存在一些挑战和问题。
FDCT快速算法FDCT(Fast Discrete Cosine Transform)快速算法是一种用于计算离散余弦变换(DCT)的高效算法。
DCT是一种广泛应用于图像和音频压缩中的数学变换方法,它可以将信号从时域转换到频域,以便更好地表示信号的能量分布。
传统的DCT算法通常使用基于矩阵乘法的方法来计算变换,这种方法的时间复杂度为O(N^2),其中N是信号的长度。
然而,由于DCT变换的特殊性质,可以利用一些优化技巧来加速计算过程。
FDCT快速算法的核心思想是利用离散余弦变换的对称性和周期性来减少乘法和加法的运算量。
具体来说,FDCT算法将DCT变换的计算分解为一系列小规模的子问题,并在计算过程中利用已知的对称性质来避免重复计算。
下面介绍一种常用的FDCT快速算法,称为快速余弦变换算法(Fast Cosine Transform,FCT):1.将输入信号分成两个等长的子序列,分别为偶数位和奇数位序列。
2.对这两个子序列分别进行递归地应用FCT算法,得到它们的DCT变换结果。
3.利用DCT变换的对称性质,将这两个子序列的DCT变换结果合并为整个序列的DCT变换结果。
具体的计算步骤如下:1.将输入信号分为偶数位和奇数位序列:假设输入信号为x[0],x[1],...,x[N-1],其中N是信号的长度。
偶数位序列为x[0],x[2],...,x[N-2],奇数位序列为x[1],x[3],...,x[N-1]。
2.对偶数位序列和奇数位序列分别应用FCT算法,得到它们的DCT变换结果:假设偶数位序列的DCT变换结果为E[0],E[1],...,E[N/2-1],奇数位序列的DCT变换结果为O[0],O[1],...,O[N/2-1]。
3.合并偶数位序列和奇数位序列的DCT变换结果:根据DCT变换的对称性质,可以得到整个序列的DCT变换结果为:D[k]=E[k]+W_N^k*O[k],k=0,1,...,N/2-1D[k+N/2]=E[k]-W_N^k*O[k],k=0,1,...,N/2-1其中,W_N = exp(-2πi/N)是一个复数,表示旋转因子。
基于分类的DCT域快速分形编码方法[摘要] 该文提出了一种基于分类的dct域快速分形编码方法。
考虑到人眼视觉系统的特点,应用视觉亮度掩蔽特性来确定dct域中的均匀块,直接将其直流分量编码输出,无需分形编码。
为进一步缩短编码时间,对于非均匀块,利用两个低频dct系数分为三类:平滑类、对角线类和水平/垂直类,使匹配搜索在同类内进行。
实验表明,该方法解码图像质量无明显下降,编码时间和压缩比均有所提高。
[关键词] 分形编码 dct 分类1、引言分形压缩编码借助于编码效率高、解码速度快、与分辨率无关等潜力,成为当今国际上图像编码领域中令人瞩目的研究方向。
其中,减少搜索范围、加快编码速度一直是分形编码的研究热点之一。
为了在降低dct域分形编码的复杂度的同时保证恢复图像的视觉效果,本文提出应用视觉亮度掩蔽特性确定dct域内的均匀块;同时,为了进一步加快分形匹配搜索的时间,依据低频dct系数将非均匀的图像块分类,只在类内进行匹配查找,使得编码时间大大降低。
而且由于本文方法考虑到人眼的视觉特性,恢复图像的视觉效果也较好,图像质量有保证。
2、分形编码的基本思想分形编码方法一般首先在空间域内把图像分为不同大小的图像块:值域块r和定义域块d,其中r块较小且各块之间互不重叠,而d块较大(边长一般为r块的2倍),各块之间可以有重叠。
然后d块经过像素平均收缩为r块的大小,子块的全体构成定义域块池;对每一个r块,在定义域块池内找到其最佳匹配的d块,使得,其中s是比例因子,o是亮度调整因子,1是亮度均值为1的常值块。
此外,为了改进图像的质量,一般还要对定义域块d进行8种等距变换。
因为每一个r块的分形压缩码只需记录s、o、d块的位置等数据,所以可以达到较高的压缩比,非常适合有限带宽的应用场合。
但是由于在搜索匹配时,一个值域块要搜索全部的定义域块池来寻找最佳匹配块,大量的比较与计算浪费了时间,所以耗时过长限制了经典分形压缩编码(pifs)[1]的实用性发展。
3、基于分类的dct域快速分形编码方法任何图像经过dct后具有能量紧缩的特性,而且每一个图像经过dct后都具有明显的相似性,这正好符合分形编码的基本思想,从而出现了dct域分形编码方法,使得编码速度大为提高[2、3]。
同时研究人员发现,利用图像本身所具有的某一属性为特征将图像块分类,只需在同一类内进行匹配搜索的编码思想,也缩短了编码的时间。
一些文献中利用方差或信噪比将图像块分类。
这些方法虽然缩短了编码时间,但没有考虑到人眼的视觉特性,所以解码图像有时与人的主观视觉效果并不匹配。
3.1基于视觉亮度掩蔽特性进行均匀块的确定不同的图像具有不同的特征,对于这些特征人眼具有不同的响应。
本文主要考虑视觉的亮度掩蔽特性,亮度掩蔽特性是指人眼阈值随图像局部平均亮度的不同而不同。
设在均匀照度的背景i上,眼睛刚刚能够分辨出亮度变化的门限值为:0.02。
一个图像块可以看成为在均匀背景上叠加了一个变化的信号,该信号的幅度必须达到一定的强度()才能够被人眼视觉系统所看到。
因此,如果叠加信号的幅度小于门限值,则该图像块可以被认为是均匀的。
图像块经过dct后,其直流分量可以认为是图像块的平均灰度,看作是背景照度i,而将交流分量看作是,利用上述思想将图像块分为均匀块和非均匀块。
分类的准则为:(1)其中,ac代表交流分量,dc代表直流分量。
由于能量主要集中在dct矩阵的左上角,即直流分量和低频区,而这部分区域恰恰是人眼的敏感部分,因此可以只考虑少数几个低频系数,这样可以进一步缩短编码时间[5]。
3.2 基于dct低频系数的非均匀块快速分类方法为了进一步加快分形编码的速度,本文提出了一种基于图像块边缘特性进行分类的方法,分为三类:平滑类、对角线类和水平/垂直类。
然后在具有相同类别的定义域块中搜索与非均匀的值域块最相似的图像块。
由于限定了匹配搜索的范围,分类可以提高编码的速度,而且也可以保证解码图像的质量。
设是尺寸为图像块中点的亮度值()。
是dct系数矩阵中处的值(),则有:(2)其中:。
通过对图像进行dct变换后的系数研究我们可以知道。
如果两个图像块之间的低频系数相近,由于能量的集中,两个图像块的相似度不会相差很大。
如果两个图像块除了内容上有细节不同之外很相似,那么他们将具有相近的低频dct系数值。
因此,低频的dct系数足以用于两个图像块之间的相似度测量。
对于一个图像块,dct矩阵的两个低频分量f(0,1)和f(1,0)分别反映了水平和垂直两个不同走向的边缘。
当和的值都很小时,图像块含有较少的边缘结构可以分到平滑类中,记为s类;如果图像块的和值都比较大,就可以把它分到对角线类中,记为d类;最后,当或有一个值比较大时,表明图像块含有很明显的边缘结构。
如果图像块含有水平边缘特性,则值大;反之,如果图像块含有垂直边缘特性,则值大。
在全搜索分形编码算法中,采用了8种矩阵变换将水平与垂直边缘关联起来。
所以,我们将其统归为一种类别:水平/垂直类,记为h类。
在分类过程中,设定两个阈值和。
是确定光滑类的门限值,是确定对角线类的门限值。
对于和值的大小比较有很多方法,我们采用最简单而有效的绝对值方法:。
根据公式(2),计算和的值,具体的分类过程如下所示:if andthentype=selse ifthentype=delsetype=h由于低频系数和的比较只需要少量的计算,这种分类方法明显很简单,不会耗费太多的时间用于分类,有助于编码速度的提高。
3.3 阈值和的确定阈值和的确定是非常关键的。
相对于固定的值,我们根据图像的内容而自适应的选择阈值,将定义域块池分割成数量相等的3种类别。
由于定义域块的数量明显比值域块的数量多,确定阈值的排序过程会导致大量的额外计算,花费时间。
因此,我们决定用值域块池代替定义域块池来确定阈值,也可以保证将值域块池中的非均匀块分割成为数量相等的3类。
阈值的具体确定过程如下所示:(1)对于每一个r块,计算出和。
(2)设,将所有块的f按升序排列,记为f升序的1/3处值,则:;(3)对于剩下的2/3块,设,将e按升序排列,记为e升序的1/2处值,则:。
4、算法实现每一个值域块r,先基于人眼的视觉特性分为均匀块和非均匀块,如果是均匀块则直接将其直流分量编码输出,无需进行分形匹配,可以使编码速度有效提高,且解码恢复图像基本没有损失。
而非均匀的图像块要先确定阈值,依据得到的阈值按照本文提出的分类方法将定义域块和非均匀的值域块分为平滑类、水平/垂直类和对角线类,然后在相应的定义域块类中搜索出最佳匹配,进行分形编码。
图1 编码框图由于本文算法对均匀块以直流分量近似,在解码时要对编码码流中记录的均匀块和非均匀块分别处理。
先对均匀块解码,将求得的解码中间图像作为非均匀块解码的初始图像,非均匀块的解码方法与现有算法相同。
5、实验结果与分析我们选择256256的8bit灰度lena图像做实验,将图像分成88的图像块共1024个。
依照式(1)的分类准则,所得到的均匀块的个数为262个。
对于非均匀块,我们采用上述方法确定阈值:40.63,70.26,然后依据阈值分为数量相等的三类。
表1显示了本文算法和其他算法的数值结果对比。
图2 是实验结果图示:a)原始的lena图像;b)本文方法的分类结果图;c)pifs算法解码图;d)本文算法的解码图。
表1 pifs原始算法与本文方法的参数对比编码时间(s) psnr(db)pifs算法345 30.497文献[2]算法63 25.78文献[4]算法196 29.76本文算法67 28.89a) 原始图像b) 分类结果图c) pifs算法解码图d) 本文算法解码图图2 实验结果图示从实验结果可以得到:(1)本文算法采用了基于人眼视觉亮度掩蔽特性进行均匀块的分类,对于非均匀的图像块,采用两个低频dct系数进行分类,只在类内进行分形匹配。
由于匹配搜索区域的减少,且dct系数的计算和阈值的确定仅需要较少量的计算,所以图像压缩速度有较大提高。
(2)本文算法解码图像的质量比经典分形算法(pifs)略有下降,这是因为对于一个给定的值域块,全搜索找到的是最优匹配的定义域块,而在类内搜索,使匹配的误差增大,从而影响了解码图像的质量,使信噪比略有下降。
6、结论本文算法中,首先采用了基于人眼视觉亮度掩蔽特性进行均匀块的分类,被定义为均匀块的不用进行分形编码,而直接将其直流输出。
这样既达到了提高编码速度的目的,且提高了解码恢复的图像与人眼的视觉效果的匹配。
为了进一步提高编码速度,本文还提出一种基于图像块边缘特性进行分类的方法。
该方法采用两个低频的dct系数,确定了两个阈值,将非均匀块以及定义域块分类。
由于这种分类方法是根据图像的内容自适应的确定阈值,依据边缘特性进行分类,恢复图像的质量能够得到较好的保证。
参考文献:[1] jacquin a e. image coding based on a fractal theory of iterated contractive image transformations, ieee transactions on signal processing, 1992, 1(1): 18~30 [2] 何佳,刘政凯.基于dct变换的快速分形编码方法[j],电子学报,2001,29(6):748~750[3] truong trieu kien, jeng jyh horng. a fast encoding algorithm for fractal image compressionusing dct inner product[j], ieee transactions on image processing, 2000, 9(4):529~535[4] 范策.利用方差分形快速编码算法[j],计算机辅助设计与图形学学报,2002,14(7):664~670[5] 冯林,李彦君,邵刚.利用人眼视觉系统理论实现dct域快速分形编码[j],计算机辅助设计与图形学学报,2005,1(17):67~73 [6] 胡睿,徐正光.一种基于分块dct变换和水印置乱的嵌入算法[j],微计算机信息,2005. 7(21):29~31作者简介:吴亮(1977.6--),男,硕士,讲师,从事现代移动通信研究;单位:北方民族大学电信学院。