小波视频编码器(精选七篇)
小波视频编码器 篇1
随着计算机技术、网络技术和通信技术的迅速发展,视频信息的处理、存储和传输在社会生活中的作用越来越突出,人们对视频图像质量的期望也越来越高。码率控制算法的性能直接影响视频通信的质量[1],作为提高视频编码图像质量的一项关键技术,码率控制技术的发展已引起人们的广泛关注。
目前的码率控制技术分为基于DCT视频编码器的码率控制技术和基于小波视频编码器的码率控制技术。小波编码器不仅能提供更好的图像主观质量,而且还具有嵌入式特性[2]。嵌入式编码器能提供更好的率失真折衷,它可以在码流的任何点处截取编码比特流而没有明显的可感知的失真。对小波视频编码器的码率控制算法要比基于DCT视频编码器的码率控制方法相对简单一些,更便于调节。
2 小波视频编码器简介
本文算法所基于的编码器是在2D小波域进行运动估计/补偿的视频编码器。该编码器具有空间可分级、质量可分级、空间和质量混合可分级的特点。它主要由5个模块组成,包括I帧编码模块、P帧编码模块、运动估计/补偿模块、码率控制模块和熵编码模块。
其中,I帧编码方法采用了基于形状自适应提升方案整数小波和二分量化方案的EZW编码算法[3];该编码器采用与I帧不同的方法对P帧进行处理,它根据帧差图像的统计特性,采用了新的双重量化方法和位平面技术,实现了帧差图像的质量可分级编码[4];运动估计/补偿模块利用了一种基于低频子带平移的小波域可分级运动估计方案[5];熵编码阶段对运动矢量采用了DPCM和行程编码进行处理。
3 本文算法
3.1 算法基本思想
将视频序列分组,每个图像组GOP里第一帧为I帧,后跟n个P帧,每个图像组可用的比特数是固定的,为RGOP。码率分配的目的就是将RGOP适当的分配给组内各帧,最大化经过恒定信道传输后解码得到的视频序列质量。
算法中将图像的方差值作为图像能量大小的衡量,对I帧、P帧分别采用不同的比特分配方法。I帧根据缓冲器的容量分配固定的比特数;而P帧则根据当前帧的能量占之前已经分配完比特数的各P帧平均能量的比重进行比特分配,使得各帧的重建质量及总体GOP的重建质量达到最佳,且使各帧之间的质量波动很小。
3.2 图像能量的选取
算法中用各帧的方差值的大小表示图像能量的大小,即图像的复杂程度。实验表明,图像越复杂,纹理越多,其方差值越大,需分配的比特数越多;反之,图像越平滑,细节越少,其计算得到的方差值也越小,可少分配一些比特数。方差σ2的表示式如下所示:
其中,M×N为图像的大小,f(i,j)为当前帧(i,j)处的象素值,avg为当前帧的平均象素值。
3.3 I帧比特分配
一个GOP内除了含有一个I帧外,其余均为P帧,由于每个GOP内仅有一个I帧,I帧重建图像质量的好坏直接影响着下一预测帧图像的质量,乃至关系到整个GOP内各帧图像的质量,所以我们根据缓冲器的容量给I帧分配固定的比特数,在缓冲器控制允许的条件下给I帧分配尽可能多的比特数。
3.4 P帧比特分配
在给P帧分配比特数时,考虑了图像内容的复杂程度,根据当前帧的能量占前面已分配比特数的P帧的平均能量的比重来给P帧分配比特数,各帧的能量用方差来计算得到。
第一个P帧指定比特数为RP1=R/F,R为信道码率,F为帧率;其他P帧用当前帧的能量跟前面已经分配完比特数的P帧的平均能量进行比较,给第i个P帧分配的比特数RPi为:
其中,σi2表示当前第i帧的方差值,avgR表示前面i-1个P帧已分配比特数的平均值。
3.5 缓冲器控制及跳帧控制
为防止缓冲器溢出或不足,确保当前帧进入缓冲器后不超过缓冲器总容量的90%也不小于缓冲器总容量的10%。若当前缓冲器容量已超过总容量的80%时,则跳过该帧,解码时用前面的帧替代当前跳过的帧。
3.6 码率控制具体实现步骤
Step1:初始化信道码率R、帧率F、缓冲器容量Bs、图像组GOP的大小等。
Step2:给I帧分配固定的比特数。按分配的比特数对该帧进行解码重建,将重建帧作为参考帧预测帧差P帧。
Step3:若是第一个P帧,则给该P帧分配固定的比特数,并计算当前P帧的方差值;否则,计算P帧方差值,按公式(3)计算给该帧分配的目标比特数。
Step4:缓冲器控制。
Step5:按分配的比特数对P帧进行压缩。
Step6:参数更新:当前缓冲器容量Bc,当前帧数等。
Step7:跳帧控制,返回步骤3,直到当前GOP分配完为止。若已为当前GOP中的最后一帧分配完比特数,则返回步骤2。
4 实验结果
实验中分别对四个MPEG标准序列进行了测试,分别为:Forman,Football,News,Stefan。这些序列均为CIF格式,大小为352×288,每个序列中含有90帧。每个GOP内含有15帧,其中第一帧为I帧,后跟14个P帧。目标比特率为1.152Mb/s,帧率为30帧/s,I帧分配的比特数为缓冲器容量的80%。
用峰值信噪比PSNR(Peak Signal to Noise Ratio)来评价重构视频的质量,它能够客观地度量视频编码质量,并且使客观度量结果和人的视觉感受一致,PSNR值越大,重构图像质量越好,反之,则重构效果越差,图像越不清晰。PSNR定义为:
其中,M,N分别为图像的宽和高;f(i,j)表示原始图像的像素值,f''(i,j)表示重建图像的像素值。计算各视频序列经过本文算法重构后得到的平均PSNR值,实验结果如表1所示。
5 小结
在小波视频编码器的基础上,提出了一种基于小波视频编码器的码率控制算法,该算法将图像的方差值作为图像能量大小的衡量,对I帧、P帧分别采用不同的比特分配方法。I帧根据缓冲器的容量分配固定的比特数;而P帧则采用基于能量的码率分配策略。实验结果表明该算法简单有效,能够获得很好的重建视频质量。
相对于MPEG的码率控制研究,针对小波视频编码器的码率控制研究数量还非常少,随着小波变换在视频编码和视频信息传输方面的应用,这方面的工作将成为一个研究热点。
摘要:码率控制是视频编码的重要组成部分。根据小波视频编码器的特点,提出了一种基于小波视频编码器的码率控制算法,给出了I帧根据缓冲器的容量分配固定的比特数的策略;提出了基于能量的P帧的码率分配策略,实验效果验证了所提出算法的有效性。
关键词:小波视频编码器,码率控制,缓冲器
参考文献
[1]赵波,吴成柯.一种新的低时延视频编码码速率控制算法[J].计算机学报,2005,28(1):53-59.
[2]毕迎春,王相海.视频传输中的码率控制技术研究进展[J].中国图象图形学报.2008,13(12):2251-2259.
[3]宋传鸣,王相海.一种基于新量化方案的形状自适应整数小波编码算法[J].计算机研究与发展,2006,43(4):695-701.
[4]刘丹.小波域视频帧内帧差图像可分级编码研究[D].大连:辽宁师范大学,2007.
小波视频编码器 篇2
随着通信和多媒体技术的发展,通过互联网和无线信道传输高质量的视频成为一项广泛应用的业务,但是网络和无线信道很不可靠,网络拥塞、信道带宽的波动、各种网络的差异性以及路由选择造成的延时等问题都会造成传输的视频信息丢失。20世纪70年代,贝尔实验室提出了多描述编码问题,90年代,多描述编码应用到图像编码中。
多描述编码[1](Multiple Descriptions Videoing Coding,MDSQ)是一种错误恢复编码方式,在编码端产生多种形式描述的码流(称为描述),各描述之间存在一定量的互补冗余信息,并且具有同等的独立性和重要性,即每一路描述均可独立编码和解码。同时,在相互独立的信道中传送不同的描述,各个信道丢失相同部分图像数据的概率很小。所以,源视频的任意一个描述都可以解码出质量可接受的视频,而多个描述联合解码可以重构出高质量的视频。多描述编码的方法主要有基于量化的方法(包括标量和矢量量化)、基于变换的方法、基于运动补偿预测的方法、基于框架扩展的方法等。
1993年,Vaishampayan首次提出利用带有渐进特性的多描述标量量化器构造实用的多描述编码器[2]。他提出利用Lloyd迭代算法来设计标量量化器,然后将量化后的高斯无记忆信源信号经索引分配产生两路描述。之后,Vaishampayan在原有基础上提出受熵约束的MDSQ(ECMDSQ)[3],采用变长码来代替定长码,但ECMDSQ的编码复杂度较高。之后,这种方法应用到两个以上的多描述情况[4],该算法中的MDSQ使用通用多描述标量量化器(UMDSQ),能够获得中央失真和边缘失真之间连续的折中点[5],以较低的复杂度实现了与ECMDSQ相同的性能。Gavrilescu提出嵌入式的多描述标量量化器[6],它使用多描述统一标量量化器对索引值进行量化,并对量化后的基本层的系数进行分级,使用嵌入式标量量化器对各级进行标量量化和索引分配,得到可分级的码流。程国华提出将过完备小波变换与凸集投影(POCS)相结合[7],使用过完备小波变换得到基本信号与冗余信号,通过对它们使用不同的量化步长来控制编码中的冗余度。根据基本信号与冗余信号之间的相关性,利用POCS算法来进行解码器端的图像重建。张文琴引入冗余小波变换技术[8],在变换域中进行运动估计与补偿,对多描述分解码流采用嵌入式编码方法。王宁提出将小波变换后的每个子带信号看做一个描述[9],得到多描述子带编码系统。
本文结合多描述标量量化思想,提出了一种基于小波变换的多描述视频编码方案,将小波变换后的系数使用多描述统一标量量化(Multiple Description Uniform Scalar Quantization,MDUSQ)和嵌入式的索引分配策略,结合位比特平面编码和算术编码,产生可以渐进传输的码流,提高了在不稳定信道中传输的稳健性。
1 系统框架
本文在MJPEG2000的框架下,结合多描述标量量化的思想,产生基于小波变换的多描述码流[10]。编码端框图如图1所示,解码端框图如图2所示。
若编码端输入的视频序列为无符号数,由于小波变换处理的是有符号数,则需首先进行前向DC电位平移将无符号数转变为有符号数。再经过正向小波变换形成各种分辨力级的小波系数,各子带小波系数经过量化和索引分配后产生相互间含有一定冗余的两路描述,两路描述再分别经过最优截断嵌入式块编码[11](Embedded Block Coding with Optimized Truncation,EBCOT)和打包的过程形成最终的码流。
解码端是一个相反的过程,若解码端收到两路描述,则根据熵解码后的两路描述进行中央索引合成,若其中一路描述完全丢失,则只能根据剩余一路描述的码流进行边路的索引合成。索引合成后的系数经过反量化、反DCT变换和电位平移得到最终的解码视频。
1.1 离散小波变换
二维图像的离散小波变换的实质是对原始图像进行高通和低通滤波,将原始图像分为低频平滑近似和高频细节两部分。对图像的每一行和每一列都进行滤波后产生4个子带,分别是LL,HL,LH和HH,下一级的分解在LL子带上进行。重建时利用不同级分解后的子带得到不同分辨力的图像。
1.2 多描述标量量化
多描述标量量化包括量化和索引分配两部分,系统中采用了带死区的均匀量化方法。为了保证解码端能够恢复出可接受的图像质量,又能够得到更大的压缩比,关键是采用合适的量化步长。小波分解使低频子带和高频子带的动态范围不同,所以量化步长的设计应根据小波变换后子带的动态范围而变化。
量化后的系数要进行索引分配,产生两路相互间含有冗余的描述。索引分配就是将每个系数通过映射函数A(·)映射为两个索引号,即分解成两个描述,如式(1)所示
式中:N是自然数集;i, j代表两路描述索引号。
为了保证只收到一路描述时解码器能得到质量可接受的视频,每路描述都应包含解码所需的足够的信息,这就造成两路描述间含有大量的冗余。两路描述间含有的冗余越多,压缩码流的容错性能就越高,但中央编解码器的率失真性能降低。所以应在容错性能和率失真性能之间寻求最佳平衡。因为索引分配控制着两路描述间的冗余,所以MDSQ的核心问题是怎样将量化后的系数分配为索引对,并且这种分配能合理地控制两路描述间的冗余。另外,这种分配必须是可逆的,这样才能保证解码端准确恢复出信源。Vaishampayan提出索引分配问题可以用索引分配矩阵来解决[2]。以下是索引分配矩阵的设计原则[2]:首先建立一个N×N的矩阵,将量化后的信息从0到N-1方向、从左上到右下、从主对角线向外填入该矩阵。图3是本系统使用的索引分配矩阵。
经过索引分配的小波变换系数要经过比特平面编码,并按照比特平面分层打包成嵌入式码块位流,以保证在可利用的信道带宽减小时,优先传输高位比特平面,低比特平面丢失,得到一个模糊的图像,假设两路描述分别收到bi和bj个比特平面,对于独立同分布的高斯信源,中央解码器的失真为
式中:
在图3所示的嵌入式索引分配矩阵中,若i路和j路描述分别收到一个比特平面。则重建值由索引矩阵中阴影区域的值确定,也就是使重建值为阴影区域的重心。根据式(2),为使重建失真最小,应根据信源统计特性对不同系数改变索引分配矩阵,使收到的两路比特平面数与信源概率密度分布决定的中央失真最小。这样一来,不仅计算极为复杂,而且在传输码流时不仅要传输两路描述还要传输相应的索引分配矩阵,造成很大的开销。为解决上述问题,本系统采用了统一标量量化,并对所有系数用相同的索引分配矩阵产生两路描述,两路描述再分别根据信源统计特性进行熵编码。
1.3 EBCOT熵编码
将小波变换以后的子带划分为大小固定的码块,码块是EBCOT熵编码的最小单位。每个码块独立编码,在解码端若一个码块的数据出现错误,并不影响其余码块的解码,防止了错误在码块间的传播。对每个码块首先进行位平面编码,位平面编码的判决输出符号经过基于上下文的算术编码和PCRD优化截断算法后打包成为最终码流。
2 实验结果和分析
本文将基于小波变换的多描述视频编码方案在PC机上进行仿真,采用帧率为25 f/s的CIF格式foreman,football和container视频测试序列,色度采样格式为4∶2∶0。对测试序列分别进行MPEG-2,H.264,MJPEG2000单描述编码和基于小波变换的多描述编码。为方便描述,基于小波变换的多描述编码方案用DWT-MDSQ来表示,索引分配矩阵如图3所示,des-mdsq表示描述2完全丢失、解码端只收到一路描述的情况。MPEG-2和H.264采用I-B-B-P的GoP结构,将一个slice封装成一个数据包,每个丢失的数据包都用前向复制的方法进行错误隐藏。多描述编码产生两路码流,两路多描述码流的总码率与单描述码流的码率相等。DWT-MDSQ在实验中进行3级无损(5,3)小波分解,打包成一个质量层的码流。单描述与多描述码流分别在丢包率为0.02,0.05,0.08,0.10的信道中传输,解码端对有丢包的码流进行解码重建。
图4中,基于运动补偿预测的H.264和MPEG-2对于运动较慢的container序列效果较好,对于运动快的序列,运动补偿预测的误差增大,PSNR下降。而MJPEG2000只运用了帧内编码,所以不管序列运动的快慢,编码性能较为接近。由于在多描述方案中,两路描述中含有冗余,所以丢包率为0时,单描述编码方案的PSNR都高于多描述编码方案。在高丢包率情况,多描述编码方案的PSNR要高于单描述编码方案,这是因为H.264和MPEG-2运用前向复制的方法进行错误隐藏,由此造成的误差比多描述方案中用收到的一路描述预测另一路描述的误差大。另外,在有丢包时DWT-MDSQ比MJPEG2000的PSNR高5~10 dB。在一路描述完全丢失情况下,边解码器解码剩余一路描述时的PSNR较低,但随着丢包率的增加,其PSNR逐渐与MJPEG2000接近,解码端也可获得质量可接受的视频。
图5是在码率为5.5 Mbit/s,4 Mbit/s,3 Mbit/s,2 Mbit/s,1.5 Mbit/s和0.8 Mbit/s时重建序列和原始序列的峰值信噪比。从图5可看出,在高码率时,多描述方案的两路描述的码率都较高,而且丢失相同信息的概率较小,所以DWT-MDSQ的性能都比MJPEG2000好。当码率下降时,两路描述的码率都要降低,所以多描述方案的PSNR下降较快。由于H.264和MPEG-2使用的前向复制错误隐藏对运动慢的视频效果好,所以对于运动较快的football序列,多描述编码方案和MJPEG2000的 PSNR较高。
3 结语
本文在MJPEG2000视频编码框架下,对小波变换后的系数进行量化和索引分配产生互有冗余的两路描述,提高在有丢包信道中传输的稳健性。实验结果表明对于运动较慢的序列在高码率的情况下,基于小波变换的多描述编码方案的重建图像质量好于H.264,MPEG-2,MJPEG2000单描述方案。另外,基于小波变换的编码方案在有丢包时没有块效应。多描述编码方案适合在信道不稳定,有丢包的网络信道和无线信道中传输。
参考文献
[1]骆超,史萍.基于标量量化分割的视频多描述编码研究[J].电视技术,2011,35(2):33-36.
[2]VAISHAMPAYAN V A.Design of multiple description scalar quantizers[J].IEEE Trans.Information Theory,1993,39(3):821-834.
[3]VAISHAMPAYAN V,DOMASZEWICZ J.Design of entropy-constrainedmultiple-description scalar quantizers[J].IEEE Trans.InformationTheory,1994,40(1):245-250.
[4]BERGER-WOLF T Y,REINGOLD E M.Index assignment for multi-channel communication under failure[J].IEEE Trans.Information The-ory,2002,48(10):2656-2668.
[5]TIAN Chao,HEMAMI S S.Universal multiple description scalar quanti-zation:Analysis and design[J].IEEE Trans.Information Theory,2003,50(9):2089-2102.
[6]GAVRILESCU A I,MUNTEANU A,SCHELKENS P.Embedded multipledescription scalar quantizers for progressive image transmation[J].IEEEElectronics Letters,2003,39(13):979-980.
[7]程国华.周源华.一种对信道差错鲁棒性的多描述编码算法[J].上海交通大学学报,2004,32(11):1781-1784.
[8]张文琴.先进的小波视频压缩方法及其应用研究[D].北京:中国科学院研究生院,2005.
[9]王宁.基于子带分解的多描述变换编码[D].北京:北京大学,2010.
[10]CRAVE O,PESQUET-POPESCU B,GUILLEMOT C.Robust videocoding based on multiple description scalar quantization with side infor-mation[J].IEEE Trans.Circuits and Systems for Video Technology,2010,20(6):769-779.
小波视频编码器 篇3
现代社会是信息社会,通过视觉获取的信息占人类获取信息的80%以上,因此,图像成为了信息社会的重要支柱元素[1]。而遥感技术作为人类获取地球信息的主要手段,具有覆盖区域大、持续时间长、成像质量高、不受地理条件影响等特点。在区域规划、资源普查和灾害预防领域都发挥巨大的不可替代的作用[2]。
遥感技术的迅猛发展,产生了海量的遥感图像数据,这些数据对传统的信息传输、存储和处理过程都带来了巨大的挑战。其中,对遥感图像数据进行压缩编码处理是解决这一问题的重要途径[3]。国际上已经出现的高清图像压缩编码标准,如H.264和JPEG2000等,大多针对通用问题,对遥感图像的处理效果还有较大的提升空间。为此,本文提出一种基于小波变换的遥感图像压缩算法,总结遥感图像的高低频系数特征,并据此先验知识来提高算法性能。
1算法原理
1.1小波变换原理
小波分析是20世纪80年代后期发展起来的新兴学科,具有良好的时频伸缩性能,在图像处理、信号分析、量子力学及非线性系统领域具有广泛的应用[4]。在图像压缩处理中,图像中的局部特征,如边缘和纹理等,是人们感兴趣的,而这些也是小波变换所擅长处理的。
对于平方可积空间L2( R) 中的2个函数f,g∈ L2( R) ,定义其内积为:
对于函数 ψ∈L2( R) ,如果其满足容许性条件:
则称 ψ 为一个“基小波”。将 ψ 进行伸缩和平移变换可以得到一个小波族:
函数f∈L2( R) 关于该小波族的连续小波变换定义( CWT) 为:
对小波族中的参数a,b取离散值:
式中,m,n ∈ Z,a0≠0,记 ψm,n( x) = a0-m / 2ψ ( a0-mx - nb0) ,那么函数f ∈ L2( R ) 的离散小波变换( DWT) 为:
1.2小波滤波器的特性
小波变换的快速实现通常由小波滤波器来完成,因此,小波滤波器的选择对遥感图像的压缩编码效果影响很大[5]。要获得较好的压缩编码效果,需要根据待处理的图像来选择小波基,选取时考虑的因素主要有紧支撑性、消失矩、正则性和对称性等。 目前在图像压缩编码领域广泛应用的小波有CDF9/7双正交小波和样条5 /3小波。
图像压缩算法的主要性能指标为压缩质量和压缩时间,对应到算法实现上为小波变换的能量聚集特性和算法复杂度。利用以上2种滤波器处理实际获取的100余幅常见的遥感图像,利用CDF9 /7滤波器处理后,低频子带的能量比约为95%±1%,而利用样条5 /3滤波器处理的低频子带能量约为91%± 2%。显然,CDF9 / 7滤波器比样条5 / 3滤波器具有更好的能量聚集性能。
对于长度为M的一维实信号,如果分析滤波器与综合滤波器的长度分别为L和 ,那么J级DWT所需的浮点数加法运算次数为:
据此可以得到2种滤波器的计算复杂度。其中CDF9 / 7滤波器进行N点运算需要5N次乘法和8N次加法( 低通) ,4N次乘法和6N次加法( 高通) ; 而样条5 /3滤波器需要3N次乘法和4N次加法( 低通) ,1N次乘法和2N次加法( 高通) 。
从以上分析可以看出,5 /3滤波器的运算量较少,但是能量聚集性不高,可用于实时性要求较高的场合,CDF9 /7滤波器的运算量较大,但是能量聚集性较好,可用于实时性要求不高,但对图像质量要求高的场合。
1.3遥感图像小波变换系数的特点
图像压缩编码技术的关键是如何根据小波变换系数的特点,利用各种先验信息和估计信息调整变换系数,使其在有效提高压缩比的同时保留尽可能多的图像信息。这样,在确定编码算法之前,需要先分析图像小波系数的特点,以此指导编码算法。根据理论分析和实验计算,遥感图像的小波变换系数的主要特征包括: 良好的空间局部化特征、方向选择特性、细节信息的统计特性、细节信息的空间聚集性和子带间系数的相似性等[6]。
由于小波变换对于高频子图上的细节信息采用逐渐细化的空间采样步长,对低频模糊信息采用较为稀疏的采样。这样无论是高频或低频系数都反映了原始图像在某个区域上的局部信息,因此小波变换具有较好的空间局部化特征,如图1所示。
小波变换把图像的高频信息划分为3个子带, LH子带主要包含原图像水平方向的高频成分,HL子带主要包含垂直方向的高频信息,而HH子带是图像中对角线方向上高频信息的表征。图2显示了该特性。由于人眼视觉系统对水平和垂直方向上的误差较为敏感,对对角线方向上的误差较不敏感,所以在对高频子带编码时要优先考虑水平和垂直方向[7]。
根据相关理论,图像进行小波变换后各个高频子带分量的灰度统计分布非常相似,基本符合拉普拉斯分布。而且,高频系数具有较小的动态范围,大部分值为零。可以利用系数分布的直方图,设计最优的量化器来对图像进行编码[8]。
小波变换系数中绝对值大于某一阈值T的系数,称为重要系数。这些系数集中了该子带的大部分能量,对图像处理的意义较大。遥感图像经过小波变换后,高频分量的系数大部分都为零,即不重要的。而重要系数大部分都集中在图像的边缘和纹理区域,如图3所示。利用这一特性可以提高压缩算法的性能。
图像的细节分量是对图像的边缘和纹理信息的描述,因此同一级次不同方向上的细节分量存在相似性,同一方向不同级次下的细节分量也存在相似性[9]。根据实验统计,2种情况的相关系数分布为0.93和0.89。
1.4图像压缩编码算法
由上述分析可知,遥感图像经过小波变换后的能量大部分集中在最低频的子带中,并且各子带的能量与其频率成反比关系。在同级的子带中,水平或者竖直方向的细节子带比对角线方向所含的能量高。
本文算法的处理流程如图4所示。
算法步骤如下:
1根据大量遥感图像的统计数据,确定各高频子带小波系数的权重经验值wdkn,其中n表示分解级数,dk表示子带方向。简单处理时可以近似取:
2对最低频子带应用DPCM无损编码方案进行编码,保留最重要的信息。
3根据给定的图像压缩率、各级子带的小波系数统计特性( 最大值、平均值、非零值数量) 和各子带的权重值,为每个子带设置初始门限T,并设定门限增量值dt。
4统计各子带大于门限值T的重要系数数量, 如果大于预期值E,则增加门限值T = T+dt,重新进行统计。
5根据各级子带的最终门限值T和重要系数数量,确定量化值Q。
6对各级子带进行重要系数位置、幅度和正负符号的编码,对非重要系数的区域合并编码。
2实验结果分析
为了验证本文算法的性能,选取100幅遥感图像,利用本文算法和成熟的SPIHT算法分别进行压缩编码。在重构图像的峰值信噪比( PSNR) 相近的情况下,算法运行时间如图5所示。本文算法在相同的压缩比下,所需的运行时间降低了约50%。由此可见,本文算法在相同性能的条件下,运算速度大大优于现有的通用算法。
3结束语
本文研究利用小波变换对遥感图像进行压缩编码的问题。首先分析了不同小波滤波器的性能特点,确定了小波函数的选用原则。然后重点对遥感图像的统计特性进行分析,发现遥感图像具有良好的空间局部化特征、方向选择特性、细节信息的统计特性、细节信息的空间聚集性和子带间系数的相似性等特征,据此设计了算法参数的优选过程,并基于遥感图像的先验知识和小波系数的统计特性设计了图像的快速压缩编码算法。与传统的SPIHT算法相比,本文算法在相同性能的情况下,运算速度提高了1倍。因此,本文算法非常适于遥感图像的实时编码处理,对于现代大数据遥感应用具有重要意义。
摘要:遥感技术在人民生活和社会生产的应用非常广泛。随之而来的海量遥感数据对信息的传输、处理和存储都是巨大的挑战,应对这个问题的重要方法之一就是对图像进行压缩编码处理。提出一种基于小波变换的压缩编码方法,利用遥感图像的先验知识来提高算法的压缩性能和效率。实验结果表明,新算法性能较传统压缩算法提高约1倍。
关键词:遥感图像,小波变换,压缩编码,先验知识,高频系数
参考文献
[1]阮秋琦.数字图像处理[M].北京:电子工业出版社,2011:221-232.
[2]STACY N J,CRAIG D W,STARCOMLYNSKA J,et al.The Global Hawk UAV Australian Deployment Imaging Radar Sensor Modifications and Employment for Maritime Surveillance[J].IEEE IGARSS’02,2002,2:24-28.
[3]MALLAT S G.Multifrequency Channel Decomposition of Images and Wavelet Models[J].IEEE Trans.ICASSP,1989,37(12):2 091-2 110.
[4]DAUBECHIES I.Orthonormal Bases of Compactly Supported Wavelets[J].Comm.Pure and Appl.Math.1988,41:909-969.
[5]SWELDENS W.The Lifting Scheme:a Construction of Second Generation Wavelets[J].SIAM J.Math.Anal,1997,29(2):511-546.
[6]彭媛,崔艳平,高娟.一种新的彩色图像压缩方法[J].无线电通信技术,2013,39(2):87-89.
[7]马文波.基于小波变换的航空遥感图像压缩方法研究与实现[D].北京:北京理工大学,2007.
[8]SHAPRIO J M.Embedded Image Coding Using Zerotree of Wavelet Coefficients[J].IEEE Trans.on Signal Processing,1993,41(12):3 445-3 462.
[9]BILGIN A,SEMENTILLI P,MARCELLIN M.Progressive Image Coding Using Trellis Coded Quantization[J].IEEE Trans.on Image Processing,1999,8(11):1 638-1 643.
[10]何国栋,丁绪星,秦慧平,等.一种新的图像自适应阈值去噪方法[J].无线电通信技术,2014,40(2):60-62.
[11]LAI Y K,JAY K.A Harr Wavelet Approach to Compressed Image Quality Measurement[J].Journal of Visual Communication and Image Representation,2000,11(1):17-40.
小波视频编码器 篇4
随着多媒体技术的应用及Internet的迅猛发展,图像的应用范围不断扩大。然而图像的数据量是巨大的。为了存储、处理和传输这些数据,必须要对图像信息进行压缩处理。这就要求图像压缩技术不仅有良好的压缩效率,而且还要能灵活地处理压缩码率;并可根据实际需要获得不同分辨率或质量的重构图像。传统的基于离散余弦变换的图像压缩方法主要采用的是基于块的变换消除图像的空间冗余,通过块运动估计和补偿技术消除时间冗余。虽然在较高码率下能够提供较好的图像质量,但在码率较低时重构图像会出现明显的方块效应和飞蚊噪声,严重影响了图像质量。针对这一问题,近年来发展起来的小波变换方法越来越成为图像压缩领域的研究热点。小波变换的一些优良性能已使得它成为JPEG 2000的核心编码技术。借助于小波变换,可以把图像信号分解成许多具有不同空间分辨率、频率特性和方向特性的子带信号,实现低频长时特征和高频短时特征的同时处理,使得图像信号的分解更适合于人的视觉特性和数据压缩的要求。利用小波变换可以将图像分层次按小波基展开,所以可以根据图像信号的性质以及事先给定的图像处理要求确定要展开到哪一级为止,从而实现累进传输编码。小波变换具有放大、缩小和平移的数学显微镜的功能,可以方便地产生各种分辨率的图像,从而适应于不同分辨率的图像I/O设备和不同传输速率的通信系统[1]。
1 小波变换在图像压缩中的应用
1.1 小波变换
所谓小波(Wavelet),就是存在于一个较小区域的波。小波变换是一种同时具有时间-频率二维分辨率的变换。是当前应用数学与工程学科中一个迅速发展的新领域。由于小波变换具有良好的时-频局部化特征,因此非常适合对静止图像进行处理,具有良好的图像压缩性能,大有取代DCT(Discrete Cosine Transformation)的趋势,在图像编码领域得到广泛的应用[1,2]。
一个小波母函数经过伸缩和平移得到小波基函数,将伸缩因子和平移因子经过采样并离散化得到离散化的小波函数。所谓小波变换或小波分解,实际上就是寻求空间L2(R)上的标准正交小波基,将信号在这组小波基上分解,以便进行分析和处理,并且还可以通过这些分解系数重建原来的信号。
1.2 分析小波
设ψ∈L2∩L1,且
称为分析小波或连续小波。式(1)中,ψ(t)称为基本小波或母小波。其中a是尺度参数,b是时移参数。改变a的值,对函数ψa,b(t)具有伸展和收缩的作用;即
(1)定义域应是紧支撑的。即在一个很小的区间之外,函数为零,也就是函数应有速降特性。
(2)平均值为零。
1.3 连续小波变换[3]
设函数f(t)具有有限能量,即f(t)∈L2(R),则小波变换的定义如下:
式(2)中:f(t)对应于目标信号;ψa,b(t)代表具有变焦功能照相机的镜头,b相当于镜头相对于目标平行移动,a的作用相当于镜头的变焦环。当a较大时,目标远推视野变宽而分析频率降低,可以做平滑部分的观察;当a较小时,目标拉近视野变窄而分析频率提高,可以对细节进行观察。
1.4 离散小波变换[3]
在连续小波变换中,由于伸缩参数和平移参数连续取值不利于计算机处理,因此连续小波变换主要用于理论分析,在实际应用中离散小波变换更适用于计算机处理。离散小波的定义可由
表示。式(3)中,m、n为整数,a0>1,b0>0。相对应的离散小波变换可表示为
为了便于计算机处理,对平移时间也进行离散化处理,且保证小波函数生成的小波为标准正交基。选择a0=2,b0=1,则式(4)变为二进离散小波变换:
式(5)简称为小波变换。进一步推广可以得到二维小波变换。
1.5 Mallat算法
Mallat算法[4]可以快速实现数字图像经过二维小波变换的分解与重构过程。如一幅二维离散图像{c(m,n)},二维小波变换可以将它分解为各层各个分辨率上的近似分量cAj,水平方向细节分量cHj,垂直方向细节分量cVj和对角线方向细节分量cDj。其二层小波图像分解过程见图1,其二层小波图像重构过程正好与此相反,如图2所示。基于小波变换的图像处理,是通过对图像分解过程中所产生的近似分量与细节分量系数的调整,使重构图像满足特定条件,从而实现对图像的处理[5]。
2 实际应用及结果性能的对比分析
本文将以标准的像素值为256×256的数字图像处理图像Cameraman为对象,分别进行DCT图像压缩和小波变换图像压缩实验,进行结果对比分析,从而得出小波变换图像压缩算法的优点所在。
DCT变换的基本思路是将图像分解为8×8的子块或16×16的子块,并对每一个子块进行单独的DCT变换,然后对变换结果进行量化、编码。随着子块尺寸的增加,算法的复杂度急剧上升,因此,实用中通常采用8×8的子块进行变换,但采用较大的子块可以明显减少图像分块效应。图像经过DCT变换后,图像的系数能量主要集中在左上角部分,也就是低频部分,其余大部分系数接近于零,而低频部分正是人眼所能识别的部位,因此这说明DCT具有适用于图像压缩的特性。在JEPG图像压缩算法中,其基本原理是:首先将输入图像分割成8×8或者16×16的小块,然后计算每一小块的二维离散余弦变换,进行量化、编码;传输后,JPEG接收端解码已量化的DCT系数,计算每一块的逆二维离散余弦变换,然后重组这些小块成为一幅图像。通常,经过变换后大部分DCT系数都近似为0,因此这些系数对重构的影响很小,进而可以忽略不计。
在本实验中只保留了10/64的DCT系数,压缩率为15.625%,抛弃了约85%的DCT系数。从解压缩恢复图像可以看到由于图像采用分块DCT运算,经过DCT变换后的压缩图像存在明显的方块效应,压缩图像的质量较差。
下面对Cameraman图像利用二维离散小波变换进行压缩。我们已知一幅图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不同的。高分辨率(即高频)子图像上大部分点的数值都接近于0,越是高频这种现象越明显。对一幅图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。本实验即采用此最简单的方法进行图像的恢复。从恢复图像图4中可以直观地看出第一次解压缩提取的是原始图像中小波分解第一层的低频信息,此时压缩效果非常好,压缩比较小,为25%;第二次解压缩是提取第一层分解低频部分的低频部分,其压缩比较大,达到了6.25%,依然具有较好的视觉效果,此时的恢复图像虽然效果有所下降但是依然较清楚完整地保留了主要信息。这是一种简单的压缩方法,只保留原始图像中低频信息,不经过其他处理即可获得较好的压缩效果。而且从理论上来说,我们可以获得任意压缩比的压缩图像。具体数据如表1所示。
3 结论
本文将小波变换压缩编码与离散余弦变换编码进行了对比实验。相比于传统的DCT编码方法,小波变换编码方法去除了图像整体相关性,具有时间-频率局部化特性和多分辨率特性;Mallat算法的复杂度低、实现简单;小波变换的多分辨率分析特点使码流组织更加灵活。小波变换的这些优点使得其能够更加有效地应用于图像数据压缩,可以达到更高的压缩效率,而且理论上可以获得任意压缩比的压缩图像,从而适应于不同分辨率的图像I/O设备和不同传输速率的通信系统。
参考文献
[1]刘贵忠,邸双亮.小波分析及其应用.西安:西安电子科技大学出版社,2001
[2]靳济芳.Visual C++小波变换技术与工程实践.北京:人民邮电出版社,2004
[3]关履泰.小波方法与应用.北京:高等教育出版社,2007
[4] Castleman K R.数字图像处理技术.北京:电子工业出版社,1998
小波视频编码器 篇5
简单的说EZW编码过程做了两件事, 一是使用小波变换技术, 对图像信号完成多分辨率分析;其次, 从小波变换结果中提取出内嵌的零树, 进而完成量化和编码。
EZW编码采用可变长编码, 随着编码长度的增加, 每像素细节信息越多;解码时, 若接收的每像素编码越多, 则解码后的图像就越接近源图像, 这就是EZW及SPIHT、JPEG2000等的核心压缩机制。
显然, 从成本、效率角度看, 每像素编码长度不是越长越好, 但是, 若编码长度短了, 则解码后的图像又不容易满足人的视觉要求。下面尝试通过一系列实验, 结合客观指标和人眼直观判断, 找到一些基于嵌入零树小波编码的图像压缩参数的经验数据, 能够平衡编码长度和人的视觉要求。
1 EZW图像压缩原理
1.1 DWT的多分辨率分析原理
下面以一维空间为例, 说明DWT的原理。其中, 函数x (t) 为某一维图像, 可以将它想象一条斑斓的七彩直线, 或者深浅不一的黑色线。
且, 函数集合
分别为V0和W0中的基, 它们正交。相应的, 一维图像函数x (t) 在V0空间上的投影 (近似影像) 为:
其中,
1.2 EZW压缩原理及算法思想
如图1, 为三层DWT多分辨率分析产物的结构, 左上角空白方块为LL3。
设, LL3, LH3, HL3, HH3的像素分别组成n×n的矩阵, 则, 整幅图就是由“嵌在其中”3×n×n个四叉树再加上LL3构成的, 这些四叉树成为零树。易知, 在二维图像的多分辨率分析形成的细节空间中存在大量的“零”值。若将全为“零”的分支“砍”掉, 显然节省了空间, 可以实现压缩。这些所谓的“零”值都是相对于设定的阈值“2n”来确定的, EZW算法中有一套机制来设置该阈值。
总体而言, EZW算法采用一种渐进式的可变码长的算法。在编码时, 对图像的概貌信息先进行编码, 随之逐步添加细节信息。每像素编码的长度越长, 细节信息添加的越多。在解码时, 每像素获得的bit越多, 图像的细节信息呈现的越多。
2 EZW图像压缩的客观指标
1) MSE:指均方误差, 定义如下
其中, X (i, j) 为压缩前像素值, Xc (i, j) 为压缩再解压后像素值。此指标值越小越好, 该值越小表示误差越小。
2) PSNR:指峰值信噪比, 定义如下
此指标值越大越好, 该值越高, 表示解压缩后图像质量越高。
3) CR:指图像的压缩率。
4) BPP:指图像每像素使用的比特数。
3 EZW图像压缩实验结果分析
3.1 图像EZW压缩解压缩实验结果
下面的图像采用的256×256像素的图像。实验中采用了lighthous, woman, trees, fl owers四个分别代表风景、人物、树木、花草的源图像, 其中将人物woman的实验图像作为示例展现如图2。
3.2 结果分析
将实验的各项数据分类罗列在表1中, 如下。
分析表1下面的数据, 并结合人眼直观判断, 可以有如下结论:
1) Steps在10~16之间将取得压缩率 (CR, BPP) 和人眼主观感觉的一个均衡, 即:
a) 若, Steps<10, 则, CR, BPP值很好, 但, 人眼主观感觉不能接受;
b) 若, Steps>16, 则, 人眼主观感觉超好, 但, CR, BPP值不好;
c) 当, 10≤Steps≤1时, 此时, PSNR大概在30d B至40d B之间。
2) 细节丰富的图像, 如trees图像, 误差MSE总是偏大的 (当然, 相应的PSNR总是偏小的) 。
3) 无论如何, 每幅图像, 在Steps逐渐增大的过程中, 确实实现了图像的“渐进 (progressive) ”清晰, 这是EZW的重要特性, 在JPEG2000也有类似特性。
上面提到的参数Steps就是阈值2n中的n值。
4 总结
通过上面的实验, 可以看到, 在EZW压缩算法中, Steps参数取值在10~16是合理的, 不至于压缩成本过高, 又能为人眼所接受。若为成本考虑, Steps参数取值可以左移靠近10;而若想更清晰一些, 则Steps参数取值可右移靠近16。
基于woman图像, 对上述结论进一步验证, 结果如表2和图3所示。
结合人眼观察图3和表2的数据, 在参数Steps=11, 12时, 确实可以取得压缩率 (CR, BPP) 和人眼主观感觉的一个均衡。
摘要:基于小波变换的多分辨率分析技术, 是基于EZW的图像压缩、传输、解压缩工作的基础之一。在多分辨率分析的产物中提取出内嵌的零树, 并进行可变长度的量化、编码, 则是该工作的另一基础。渐进的、可变长度的编、解码是EZW技术的关键特征, 编码长度越长, 传输的源图像的信息越多, 则解码后的目标图像越接近源图像。在基于EZW的图像压缩、传输、解压缩的过程中, 如何在编码量 (即编码长度) 和人的视觉要求间取得一个平衡, 就是一个问题。下面通过一系列实验, 结合客观指标和人眼直观判断, 尝试找到基于嵌入零树小波编码的图像压缩参数Steps的经验数据, 从而平衡编码长度和人的视觉要求。
关键词:多分辨率分析,离散小波变换,嵌入零树小波编码算法,图像压缩
参考文献
[1]郭慧杰, 赵保军.基于能量树编码的小波图像压缩算法[J].激光与红外, Vol.42, No.10, Oct.2013.
[2]吴德龄, 胡栋.基于不对称树结构的3D-SPIHT算法改进[J].计算机技术与发展, Vol.20, No.8, Aug.2010.
[3]Adams M D.The JPEG-2000 Still Image Compression Standard[M].2005.
[4]A.Said, W.A.Pearlman, A new fast and efficient image codec based on set partitioning in hierarchical trees[J], IEEE Transactions on Circuits and Systems for Video Technology, Vol.6, Jun.1996.
基于DSP的视频编码器设计与实现 篇6
图像压缩编码器的实现主要有3种方法:① 采用专用的图像压缩芯片来完成。使用专用图像压缩芯片的优点是系统实现简单;缺点是灵活性差,只能选用标准算法,且一般都不满足宽温的需求。② 采用FPGA来实现,这种方法的优点是系统实现简单、成本低、图像压缩速度快;缺点是用FPGA来实现压缩算法的设计难度大、周期长、且不容易修改。③ 采用DSP平台进行视频图像的压缩编码,其特点是应用灵活可变、能够满足特殊视频格式需求、扩展性好、升级容易、适应性好、用途广泛。用DSP进行图像压缩编码,首先要构造DSP硬件平台,然后进行软件设计,移植源代码程序、进行程序优化等,实现实时编码。
1硬件设计
1.1硬件平台设计
编码器DSP选用TI公司的高性能定点信号处理器TMS320C64XX系列芯片,采用了先进的超长指令字(VLIW)结构,核内有64个32位的通用寄存器、8个高度独立的功能单元(2个32位乘法器和6个算术逻辑单元),能够每秒做1 200兆个32位或4 800兆个8位乘加操作。采用了程序总线和数据总线分离的修正哈佛结构,能够同时取数据和指令,减少了冲突,大大提高了内存的访问速度。采用流水深度已经达到8级的流水结构,大大增强了处理器的并行处理能力。而且TI公司的C语言编译器产生的代码的平均效率是其他DSP编译器的3倍[1]。
视频编码器硬件结构框图如图1所示。主要由视频采集电路、FPGA、DSP、程序存储器和数据存储器组成。其中视频采集电路采用专用视频模拟信号处理芯片,外部数据存储器采用同步动态数据存储器(SDRAM),程序存储器采用内闪存储器(FLASH)。
模拟视频信号送到视频采集处理芯片,视频采集处理芯片对模拟视频信号进行采集处理转换成4∶2∶2格式YUV复合数据,然后送给FPGA处理,输出格式符合ITU-BT.656标准,分辨率为720×576。FPGA对复合YUV数据进行滤波、抽取和分离,形成Y分量、U分量和V分量数据,形成以适合数据压缩的切片(SLICE)为单位的数据存送给DSP。
64XX系列DSP具有2个外部存储器接口(EMIF),FPGA接口和FLASH接口的速率低,共用EMIFB接口,SDRAM是高速接口,用EMIFA接口。系统上电后,DSP从FLASH存储器中加载程序,传送到片内存储器,视频压缩程序对FPGA送来的图像数据进行压缩编码。程序运行过程中所需要的数据一部分存储于片内存储器,另一部分存储于主板上的SDRAM中。生成的压缩码流通过DSP芯片的多通道缓冲串口(McBSP)发送出去。
数据传输利用DSP的增强性直接存储器存取(EDMA)进行。图像压缩运算时需要大量的数据信息交换,利用CPU传输数据将会占用大量的CPU时间,影响CPU的运算能力。64X系列DSP具有64个EDMA通道,当CPU在前台编码时,在后台使用EDMA完成数据传送。
1.2印制板叠层设计
外部存储采用同步动态SDRAM存储器,存取速度在100 MHz以上,信号的上升沿时间小于1 ns。这个上升沿沿着一条FR-4印刷电路板内层走线传播时,其有效长度为5.6英寸,通常传输线长度大于有效长度的1/6时,电路表现为分布状态[2]。显然SDRAM的信号线长度远远大于有效长度的1/6,属分布式系统,不能采用普通的点对点布线,而需采用传输线,也就是微带线和带状线。在印制板设计中采用地平面和叠层设计;电路板采用8层印制板,叠层方案如图2所示,其中4层为地/电源层,4层为信号线层。地平面和电源平面可以为数字信号的转换提供稳定的参考电压,为电路中的DSP、FPGA和SDRAM等期间分配电源,控制信号之间的串扰,为高速信号电流提供了最小路径。采用传输线以后信号畸变小,电磁辐射小,各信号线之间串扰小。
1.3外部存储器的信号完整性设计
外部存储器存储速高,高速信号传输时信号会出现上冲、下冲、振铃和非单调等现象,不能再沿用低速电路设计方法,必须采用基于信号完整性分析的高速数字系统设计方法。为了防止信号反射,传输线上需要端接电阻,端接电阻有串行端接和末端端接2种方式。通常采用串行端接,串行端接可以减少电路的功耗,同时还可以减少电路的电磁辐射。DSP外部存储器信号线主要包括数据线和地址线,数据线64位,地址线22位。由于一片SDRAM的数据线是32位,所以需要2片SDRAM芯片。数据线DSP和SDRAM之间一一对应连接,一个发送器驱动一个,传输线属于单支路拓扑结构。地址线一个地址信号要同时驱动2个SDRAM接收,传输线属于双支路拓扑结构。单支路信号端接比较简单,多支路比较困难。
信号线传输模型如图3所示。图3(a)是电路中数据线传输模型,采用串行端接方式。通过仿真验证,信号波形很好,过冲和振铃都很小。地址线传输模型属于双支路拓扑结构,确定合适的端接方式比较困难。用Mentor Graphics软件进行仿真、测试,确定使用的传输模型。图3(b)是比较常用的传输模型,端接电阻采用单电阻;仿真时发现信号波形很差,上冲、下冲、振铃很严重。经过多次仿真,最后采用了图3(c)所示的传输模型,双支路双电阻串行端接传输模型,模型中每个支路都用了一个串行端接电阻;经过仿真测试,波形比较好。图3模型中传输线阻抗50 Ω,串行端接电阻都是33 Ω。
图4为单支路串行端接信号仿真波形,信号在3.3~0 V变化,信号宽度5 ns。图4(a)是没有端接电阻的信号仿真波形,信号过冲很大,上冲达到5 V,下冲到-1.5 V,波形畸变很严重。图4(b)采用串形电阻端接后的信号仿真波形,可以看出信号得到明显改善,信号上冲最大到3.3 V,下冲到-0.8 V,波形畸变比较小。
图5为双支路串行端接信号仿真波形,图5(a)采用单电阻端接,图5(b)采用双电阻端接。从图中可以看出,双电阻端接信号波形比单电阻端接信号波形明显改善。
2软件设计
2.1软件框架结构
编码器采用H.264编码方式,框架结构如图6所示[3]。主要由变换编码、量化、排序和熵编码、帧内预测、环路滤波、运动估计和补偿预测等模块。
2.1.1 变换编码
变换编码将图像时域信号转换为频率域信号,在频域中,图像信号的能量大部分集中在低频区域,这样就可能只编码和传输少数系数而不严重影响图像质量。
2.1.2 量化
量化是针对变换后的系数进行的,量化步长越小,量化精度就越细,包含的信息越多,但所需的传输频带越高。DCT变换系数中,低频系数对视觉感应的重要性较高,因此分配的量化精度较细;高频系数对视觉感应的重要性较低,分配的量化精度较粗。
2.1.3 排序和熵编码
经量化后,大多数非零系数集中于二维矩阵的左上角,即低频分量区,经过重排序,这些非零DCT系数就集中于一维排列数组的前部,后面跟着长串的量化为零的系数,然后进行熵编码,得到宏块的压缩编码数据。
2.1.4 帧内预测
利用当前块周围已建立的图像值对当前块进行预测,然后对预测块和实际块的残差进行变换、量化、熵编码,从而消除空间冗余信息。
2.1.5 环路滤波
在基于块的视频编码过程中,在编码器进行反变换量化后经常会产生“块效应”,环路滤波器可以消除或减弱快效应的影响。
2.1.6 图像重建
由于接收端只能根据解码的I、P帧(而不是原图像)来恢复其他P帧,为了减少累计误差,要求编码端使用同样的图像进行运动估计和补偿,也就是说当对一帧图像压缩后需要马上对其解码,以便作为下一帧的参考帧,该环节包括反量化、反变换和帧存。
2.1.7 运动估计与补偿预测
通过利用已经重建的参考帧对当前帧进行预测编码,可以对当前块与参考块的运动矢量以及相应的运动补偿残差值进行编码,有效消除视频编码中的时间冗余,降低编码码率,提高编码效率。
目前的运动估计算法主要采用方块匹配算法,典型的运动估计算法有菱形搜索算法[4]、六边形搜索算法[5]和非对称十字多层六边形搜索算法[6]。通过仿真比较,3种算法的编码性能差别比较小,菱形搜索算法时间最短,这里选择菱形搜索算法为运动搜索的方法。
2.1.8 流量控制
经过变换、量化和熵编码后,产生的比特流的速率是变化的,随着视频图像的统计特性变化,而信道的传输速率是恒定的,因此在编码比特流进入信道前需设置缓存器。当编码输出的瞬时速率过高,增大量化步长以降低编码数据速率,当然也相应增大了图像的损失,当编码器的瞬时输出速率过低,减小量化步长以提高编码数据速率。
2.2软件程序优化策略
图像压缩的源代码是基于PC机的,经过删减移植到DSP平台,进行一定的调整,满足DSP的语法规范,就可以初步运行。但这时编码效率很低,只能每秒压缩几帧图像,不能够实时编码,必须对程序进行优化。充分利用C64XX的特点,如软件流水和芯片特性等可以有效地提高编码效率。
软件流水是一种安排循环内的指令运行方式、使循环的多次迭代能够并行执行的一种技术。C64XX具有8个并行功能单元,一个时钟周期可并行执行8条指令[7]。为了充分发挥指令并行执行功能,需要采用循环展开技术,把程序里的叠代次数较少的FOR循环体一一展开,虽然并行的指令数会有所增加,但是这样有利于合理地编排循环的软件流水,提高代码的执行效率。如果循环内有条件判断语句,将引入跳转指令,进而破坏了软件流水。因此在循环语句中不要加入复杂的条件判断语句。
内联函数是指用函数本身来代替函数调用这一过程。当调用内联函数时,源代码把此函数插入到调用点,而不采用传统的跳转。将函数设定为内联函数后,可以去掉复杂的函数调用过程来提高函数的执行效率。
为了降低DSP开发难度,节省软件开发时间,TI提供了专用的C64X系列DSP的图像函数库。这些函数经过TI优化后,代码效率很高,可以直接拿来使用到编码器中。如16*16的SAD计算函数,运行时间仅67个机器周期[8]。
采用函数合并。在编码过程中变换、量化、排序、反变换、反量化调用非常频繁,反复的调用会在函数调用上花费大量的时间,为了提高速度,可以将变换、量化、排序、反变换和反量化等进行优化,合并成一个函数,减少不必要的函数调用。
经过软件优化以后,每秒压缩达到25帧,满足实时压缩编码的要求。
3结束语
构造DSP硬件平台的关键是高速数字信号传输问题,需要进行印制板叠层设计和信号完整性设计。信号线拓扑结构为单支路时信号完整性设计比较简单,采用串行电阻端接一般都可以满足要求;多支路时设计比较困难,需要采用专用的印制板设计软件(Mentor Graphics、Cadence等)进行反复的仿真、测试和调整。本文提出的双支路双电阻串行端接传输模型,仿真效果好,实际应用稳定、可靠,不足之处是端接电阻较多。
程序优化是DSP视频压缩编码的一个重要环节,需要进行大量、繁琐的编程工作。本文涉及软件优化主要是程序级优化。根据DSP的硬件特点,对编码算法进行改进、优化,结合程序优化,可以进一步提高编码效率。本编码器已在多个工程项目中得到应用,性能稳定可靠。
参考文献
[1]江思敏,刘畅.TMS320C6000DSP应用开发教程[M].北京:机械工业出版社,2005.
[2]霍华德.约翰逊.高速数字设计[M].北京:电子工业出版社,2006.
[3]余兆明.图像编码标准H.264技术[M].北京:人民邮电出版社,2006.
[4]THAM J Y,RANGANATH S,RANGANATH M,et al.ANovel Unrestricted Center-biased Diamond Search Algo-rithm for Block Motion Estimation[J].Trans.CircuitsSyst.Video TECHNOL,1998(8):369-377.
[5]ZHU C,LIN X,CHAU L.Hexagon-based Search Pattern forFast Block Motion Estimation[J].IEEE Trans.CircuitsSyst.Video Techn,2002,12(5):425-437.
[6]CHEN Z,ZHOU P,HE Y,et al.Fast Motion Estimation forJVT[C]∥JVT-G016,7th Meeting,Pattaya,Thailand,2003:7-14.
[7]Texas Instruments.TMS320C6000 Programmer's Reference[R].USA:Texas Instruments,2002.
小波视频编码器 篇7
美国学者Shapiro首先完整地提出了基于比特连续逼近的图像编码方法:按位平面(Bit-plane)分层进行孤立系数和零树的判决和熵编码,而判决阈值则逐层折半递减,故可称之为多层(或位平面)零树编码方法。嵌入式零树小波编码方法十分有效,已经成为基于小波的静止图像压缩的一个里程碑,是迄今为止最优秀的小波图像编码方法之一。
针对其不足之处,本文提出了一种改进的EZW算法IEZW,获得了比原算法更优的压缩效果。具体改进如下:
1.1 取消级间排序步骤
EZW零树量化算法的编码效率非常高,压缩性能优越,但缺点是运算量大,计算复杂。
级间排序指的是副表中的重要系数被细化编码输出后,在阈值减半进行下一次扫描前,将副表中细化后的重要系数按它们所在区间进行排序,完成后,对当前扫描得到的重要系数及以前扫描得到的重要系数按照先后顺序进行细化编码输出。这样,本次扫描得到的重要系数、上一级阈值细化比特为1的系数经排序后,将排在上一级细化比特为0的系数的前面。在本级的编码中,这些被排在前面的系数的细化比特优先编码输出,幅度大的系数优先编码。
这样在每一次副表扫描后,都要根据当前的阈值对所有重要系数进行排序,从而保证把经过细化后的系数进一步排序。然而仔细分析排序的作用,就会发现它大大增加了运算量,但带来的压缩效率却是有限的。分析前一章的零树预测过程可以知道,排序其实只对同一级的系数(即在同一阈值被检测为重要系数)起作用,对不同级间的系数是没有影响的,因为不同级间的系数的大小是确定的,先后顺序也是确定的。排序其实只是同级系数由于细化精度不够(编码输出的比特还不够多,压缩比还较高),因此才在一定误差范围内进行的。这主要是为了编解码的同步,因为解码端只能根据主表的节点符号和副表的细化比特来重构系数,并确定重构系数所在的空间位置。因而只能是细化一级,误差范围缩小一级,系数排序一次,不断进行,直到编码或解码停止为止,非常复杂。而复杂的排序带来的性能改善却非常小。因为排序只是在同级系数之间进行,只是把同级系数大的排在同级系数小的前面,并且还不能彻底按照系数本身的大小一次到位,而只能随着不断的细化逐渐进行。这样,排序带来的性能改善主要由同级系数差别大小来确定:级间系数差别大,排序带来的改善就大,反之就小。由此,排序带来的性能改善主要来自于大阈值得到的重要系数,小阈值得到的重要系数排序带来的改善则较小。然而,实际图像的小波系数中总是大幅值的系数非常少,而小幅值的系数非常多。这样,当重构图像的质量达到一定水平时,传输的系数阈值已经非常小了,系数的误差范围也非常小。例如,对于256×256×8bi的Lena图像,压缩比为32时,PSNR已小于28db,重构图像质量已经较差,而此时系数的阈值已经为8,而误差范围为8/2=4。就是说,此时排序已经只对小于8而大于等于4的系数有效了,因为大于8的系数肯定要先小于8的系数传输。如果压缩比更大些,排序的作用更加不明显。所以,可以取消级间排序,以得到算法更快的执行速度。
1.2 低频子带单独编码
由小波图像的特性可知,最低频子带图像包含了原始图像的绝大部分能量,其系数的绝对值相对其它子带的系数要大几个数量级。EZW算法把分解后的所有子带统一处理,因此,要提高重构图像的质量,必须增加逐次逼近量化的次数,否则,对最低频子带的较小损失,可能会较大地影响重构图像的质量。因此本文提出要把最低频子带与其它子带分开处理,对其进行单独编码。可以采用DPCM方法,对该子带进行无损压缩,这样可以有效地保证最后的失真很小,其构造如图1所示。
当前像素的预测值按照如下公式计算:
p=0.5a+0.25b+0.25c
遇到边际情况,当a、b、c三者有一个或者两个不存在时,上式变形为:
对于左上角的第一个像素来说,当三者均不存在时,该像素将不做预测,其值可作为单独的信息保存在输出码流的头信息中。
1.3 选取整数平方量化阈值代替2的整数次幂
整数小波变换在能量集中性上较传统小波变换差很多,低频子带没有集中大量的能量,而各高频子带中没有完全去除图像的相关性。在整数小波变换后,各子带系数分布的动态变化范围较小,各子带小波系数幅值相对集中,如果采用2的整数次幂作为量化阈值有以下3个弊端: (1) 由于阈值成倍上升,从而使较多幅值接近的系数集中在同一重要图中,减少了重要图的层数,即减少了零树的数量; (2) 在传统小波变换中,因为较高阈值下的重要系数很少,并且系数幅值很高,因此相对误差较小。而在整数小波变换中,较高阈值下存在较多的重要系数,如果有很多系数量化误差较大,就会引起总的相对误差增大; (3) 采用2的整数次幂将使前后两个较高阈值间的相对距离较大,从而使两阈值间的重要系数经过处理后在下一两个量化值中出现的概率很大。
基于以上分析,本文采用了整数平方量化阈值选取法,用正整数的平方取代2的整数次幂作为量化阈值,使得除了在最低量化阈值区间外的每个量化阈值区间内,重要系数的个数随着量化阈值的降低线性增加。同时在每一级中,重要系数的取值更接近于原系数值。具体算法步骤如下: (1) 建立数组s (k) ,令s (k) =k2, k= (0, 1, 2…) 。数组中的数值即为各级量化阈值,找出各子带中绝对值最大的像素幅值fmax,将其与s (k) 做比较。如果fmax>s (k) ,则k=k+1,依次循环,直到fmax
2 实验结果及性能分析
基于上述方法,本文设计实现一个可分级图像编码系统,对标准测试图像512×512×8bit的Lena图像进行了实验。实验采用基于提升方法的CDF (4, 2) 整数小波变换,进行4级小波变换;然后采用本文的IEZE编码方法;最后进行熵编码。表1给出了IEXW与EZW算法和SPIHT算法在不同压缩比下对Lena图像编码的PSNR比较结果。
可见,在相同压缩比下,采用本文方法获得的压缩效果要明显优于EZW算法和PSNR算法,重构图像质量更高。
参考文献
[1]崔锦泰.小波分析导论[M].西安.西安交通大学出版社, 1995.
[2]程正兴.小波分析算法与应用[M].西安:西安交通大学出版社, 1998.
[3]陈武凡.小波分析及其在图像处理中的应用[M].北京:科学出版社, 2002.
[4]Allen Gerso.Optimal nonlinear interpolative vector quantization.IEEE Trans.Commun, 1990 (9) .
[5]沈兰荪.图像编码与异步传输[M].北京:人民邮电出版社, 1996.
[6]沈兰荪.ATM网络的视频编码[M].北京:人民邮电出版社, 1996.
[7]Castleman K R.Digital image processing.Prentice Hall1996.
【小波视频编码器】相关文章:
全新的视频编码器06-26
效率视频编码06-14
音视频编码标准07-27
视频会议系统编码与设计研究09-11
网络音视频编解码器讲解04-25
一种基于提升小波的改进EZW图像编码方法研究与仿真09-11
编码器软件07-11
自动编码器07-28
编码器实验小结04-28