一种适用于无线多媒体传感器网络的JPEG图像编码算法*

2011-10-20 10:54熊哲源樊晓平刘少强李勇周瞿志华
传感技术学报 2011年10期
关键词:变化检测复杂度像素

熊哲源,樊晓平,2* ,刘少强,李勇周,瞿志华,3,钟 智

(1.中南大学信息科学与工程学院,长沙 410075; 2.湖南财政经济学院 网络化系统研究所,长沙 410205; 3.美国中佛罗里达大学电气与计算机工程系,奥兰多FL32816-2450,USA)

无线多媒体传感器网络(Wireless Multimedia Sensor Networks,WMSN)中的视频节点装备有摄像头,能产生大量视频数据[1]。由于WMSN在能量、计算和存储等方面受到的限制,为了节点节约资源,在传输视频数据之前必须对其进行压缩编码。传统有线和无线网络中传输的视频帧速率高、数据量大,通常采用帧内编码结合帧间编码的混合编码方式以提高压缩率。但帧间编码计算复杂度高、数据存储量大,且图像失真率较高,不适用于资源受限、无线多跳的WMSN[2]。而且,图像压缩率越高,图像重建质量越低,图像编码的计算复杂度也更高。

WMSN主要用于区域监控,如公共场所、交通场景和智能家居等,监控图像的帧速率低,数据量小,但要求图像质量高,以便于目标跟踪和分析。使用计算复杂度低的帧内编码可以满足其应用要求。此外,传感器节点的通信能耗大,且存储转发能力有限,应减少数据通信量[3]。因此,WMSN中图像编码方案的设计目标是在保证图像质量的情况下,在计算复杂度和数据通信量之间达到一个平衡。

虽然JPEG 2000的压缩率比JPEG更高,但由于其计算复杂度高,在WMSN中主要研究关于JPEG算法的改进。Chiasserini等将JPEG中的浮点DCT运算用定点DCT运算替换以减少计算复杂度[4]。Magli等提出一种基于变化检测和兴趣区域编码的改进JPEG编码方案[5]。Feng等设计了一个视频传感器节点平台[6],使用 JPEG、差异 JPEG和条件补给的压缩方式。Mammeri等研究JPEG中8×8 DCT系数矩阵的裁剪优化[7-9],提出了全局法和局部法两种选择系数区域尺寸的方法。Lee等提出在保证较好的图像质量的情况下,通过分析法决定如何分配最优整数和带宽给压缩过程的信号路径,以降低JPEG计算复杂度[10-11]。这些关于JPEG的改进算法在降低计算复杂度和改善图像质量方面做了许多工作,却仍然没有很好地解决压缩率和图像质量之间的矛盾。

目前WMSN中图像编码的研究主要关注降低计算复杂度和改善图像质量,大多忽略了数据率和图像质量之间的关系,而无线传感器节点的存储转发能力十分有限。现在较为先进的无线多媒体传感器节点平台,如美国克尔斯博公司的Imote2,仍然难以满足WMSN的区域监控需求,因此有必要在保证一定图像质量的情况下,进一步降低图像数据率。

根据WMSN区域监控的应用需求,考虑到无线传感器节点的存储转发能力受限、图像数据率大的特点,本文提出一种适用于WMSN的计算复杂度低、数据率低的图像编码方案。首先,对监控图像中的兴趣区域进行定位以减少数据传输量;然后,对DCT变换和量子化过程进行优化以降低计算复杂度。这样,在减少通信数据量、节约能量的同时也保证了一定的图像质量。通常情况下,用户只对监控图像序列中的目标物体感兴趣,而监控区域中一般没有物体运动,除非有异常情况。因此,可以只传输目标物体图像,而不是每次都传输一帧完整图像到基站,以减少数据通信量。此外,在基于DCT图像编码的视频监控应用中,DCT高频系数的重要性通常较小,在量子化之后容易变为零。而且量子化步长较大时,DCT系数也会被粗糙地量子化[12]。因此,对JPEG算法中的DCT变换和量子化进行优化研究。

1 兴趣区域的定位

在视频监控应用中,用户的兴趣区域一般是场景中的运动目标,也是发生变化的区域。检测同一场景在不同时刻所拍摄图像的变化区域,可以区分图像序列和先前图像之间的差异,检测场景中物体的出现、运动和消失,物体形状的变化等。使用变化检测定位监控图像中的变化区域,由此确定兴趣区域,并对其进行编码传输,可以有效降低数据通信量,从而降低能耗。在数据通信量已经较小的情况下,可适当降低压缩率来保证较好的图像质量。

变化检测算法用于检测同一场景中不同时间捕获的图像序列中的变化区域,通过当前帧和参考帧的比较找到活动的块,由此获得与移动目标相关的连通区域[13]。视频监控的目标是探测并跟踪进入监控区域的目标,根据应用场景的不同,用户关注的目标也不尽相同。变化检测算法可以定位图像中可能存在的目标,包含这些目标的区域都是潜在的兴趣区域。确定兴趣区域的第一步是定位变化区域,标记变化区域之后,再进行深入处理,可实现对目标的跟踪和识别。兴趣区域的最终确定应根据实际场景和应用需求来选择,这里暂不讨论。本文使用变化检测算法定位监控图像中的变化区域,即定位潜在的兴趣区域。

初始阶段,视频节点将一幅参考帧传输至汇聚节点;然后,视频节点仅传输当前捕获的视频帧和参考帧不同的部分。文献[6]作者提出周期性的产生并传输参考帧,而本文使用一幅固定的参考帧,因为这样能够探测出新进入场景的物体,即使它突然停止运动,还可以探测从场景中消失的物体,且这些是大多数视频监控应用中所要关注的重要特征。此外,参考帧的质量要求较高,压缩率较低,仅传输一次参考帧可以有效的节约能量。

在各类变化检测的方法中图像差值法是一种简单且应用较多的方法,先计算两幅图像的差值,然后通过阈值判断确定图像的变化部分。文献[5]将当前帧和参考帧中所有按照特定规则选择的像素逐个比较计算差值,再与选定的阈值进行比较判断,这样似乎可以很好的保持目标物体的边缘细节。但是,该算法并不能有效地去除噪声的影响,而且计算量相当大。考虑到JPEG是以块为单位进行编码计算,本文计算当前帧和参考帧对应的每个DCT块中部分特定像素的绝对差值和,将绝对差值和与选定的阈值进行比较,这样可以在保证一定图像质量的同时,有效地降低计算复杂度。

当前帧和参考帧中所有DCT块内对应位置像素点的差值之和称为绝对差值和(Sum of Absolute Difference,SAD)。因为宏观运动主要是由从一个块运动到另一个块的像素组成,所以最重要的像素点分布在DCT块的边缘。为了降低计算复杂度,增加检测可靠性,本文计算SAD时仅选取DCT块边缘的部分像素点,如图1(a)所示,计算标记为“1”的DCT块,不计算标记为“0”的DCT块。而对每一个8×8的DCT块,仅计算标记为“a”的像素点(这些点组成集合A),如图1(b)所示。一帧图像中选定的像素点的位置如图1(c)所示。SAD的计算公式如下所示:

式中C((i-1)·8+k,(j-1)·8+l)是当前帧中一个DCT块内属于集合A的一个像素点的像素值,R((i-1)·8+k,(j-1)·8+l)是参考帧中一个 DCT 块内属于集合A的一个像素点的像素值,(i,j)表示DCT块在一帧图像中的位置,1≤i≤⎿m/8」和 1≤j≤⎿n/8」表示图像的大小。

图1 像素扫描模式

计算当前帧和参考帧中所有DCT块内属于集合A的像素点的绝对差值之和,如果某个DCT块的绝对差值和大于零,就认为该DCT块发生变化,否则认为该块没有发生变化。DCT块的变化也可能是由于噪声等其他外部原因造成,比如相机移动、传感器噪声、光源变化、大气变化等。通过选择合适的阈值进行分割,可以将由目标运动引起的变化和其他原因引起的变化区分开来。尽管如此,变化检测不能区分运动目标的阴影和倒影,而会将它们都看作变化区域。为此,文献[5]中选取了两个阈值,以区分运动目标、阴影和光照变化以及噪声。但是,将阴影和光照变化与运动目标区分开来是不必要的,这样会增加计算复杂度并消耗许多能量。对于资源受限的WMSN,检测到目标的粗糙边缘比精细边缘的更节约能量。因此,本文只选取一个阈值,来区分噪声引起的变化和运动目标引起的变化。通过与参考帧的比较,将图像中的DCT块划分为三种类型:静止,噪声和运动。判断准则如下:

如果(SAD=0),将块标记为静止;

如果(0<SAD<TH),将块标记为噪声;

如果(TH<SAD),将块标记为运动。

变化检测能否区分噪声和运动目标,阈值的选择十分关键。阈值的选择依赖于场景和可能的相机移动程度,还有随时间而变化的观察条件(如光照)[14]。一般来说,根据图像内容选择分割阈值显然更加合理,但是本文使用的阈值是依靠经验选取。

2 JPEG编码算法优化

文献[7-9]中的JPEG改进算法主要是对DCT变换进行裁剪优化,即仅计算部分DCT系数,这样降低计算复杂度的效果有限。DCT变换主要是加法和乘法运算,文中没有分析裁剪优化对于DCT中加法和乘法运算次数的影响。此外,量子化过程没有对低频和高频系数区别对待。本文对参考帧和当前帧使用不同的编码方案,提出使用DCT近似计算,并定量分析该方法对加法和乘法运算次数的影响。还探讨了根据DCT系数重要性的不同,选择量子化的步长,以保证图像质量。

2.1 快速DCT变换

JPEG编码过程如图2所示,先将源图像划分成若干个8×8的块,然后对每块进行DCT变换,使用统一的量子化表格对变换后的系数进行量子化,接着把量子化的结果按照频率由低到高的顺序排列为Z字形序列,用游程编码减小序列的长度,最后进行熵编码以进一步压缩。

图2 JPEG编码过程

前向DCT变换公式如下

对于参考帧,为了保持其图像质量,计算所有64个DCT系数,并使用快速近似计算法来减少计算复杂度,其计算式如下:

其中⎿x」是小于等于x的最大整数。虽然进行近似计算会引入误差,但由于DCT之后的量子化步长较大,这种误差并不会造成什么影响[15]。

对于视频节点所捕获的当前帧,根据DCT块划分的类型的不同,采用不同的处理方式,保证变化区域的图像质量。对于标记为静止或噪声的块,不执行DCT运算,将所有系数置零;对于标记为运动的块,使用DCT近似计算结合裁剪优化,计算4×4的低频DCT系数,将其他系数置零。

图像中最有价值的信息通常保存在DCT的低频部分。在量子化之后,许多DCT高频系数都变为零。因此,仅需计算包含图像主要能量的4×4 DCT低频系数,将其他48个系数置零,这样还可以降低量子化阶段的计算复杂度。

如图3所示,如果仅计算2-D DCT中的k×k(k=1,…,8)部分系数,降低计算复杂度的同时也降低了图像重建质量,图像内容和选取的k共同决定了图像质量。对于N×N的DCT所需的乘法数量(M)和加法数量(A)由以下公式计算[16]:

图3 方形的DCT系数块

当用裁剪算法计算DCT的低频系数时,N0是2的幂,计算N0×N0的乘法数量(MN0)和加法数量(AN0)的计算公式如下:

2.2 量子化表的优化选取

量子化的目的是进一步压缩,将每个DCT系数除以其相对应的量子化步长,得到其结果取整数,计算式如下。

量子化表的选取是量子化过程的关键,量子化表是一个8×8的矩阵,与DCT块中对应位置的系数作除运算,量子化步长选择将影响输出结果。DCT块中DC系数和一些接近中频的AC系数占据了信号的绝大部分能量,丢弃部分高频的AC系数造成的信息损失不大。而且,DC系数的方差大于AC系数的方差,这意味着量子化后AC系数比DC系数更容易变成零。因此,需要把DC系数和AC系数区别处理。

如图4所示,A区(DC系数)十分重要,因为A区的值不足会产生错误的外形。B区的数值(低频部分),C区的数值(中频部分),D区的数值(高频部分)则相对次要些。因为人的眼睛对较低频率的变化比较敏感,对DC系数应该比AC系数更加谨慎。DCT系数的精度由量子化过程决定。量子化步长越大,信号能量越小,DCT系数在量子化之后变为零的可能性越高。为了保持参考帧的高精度,应该在A、B、C区使用较小的量子化步长,在D区使用较大的量子化步长。为了增加压缩率,降低计算复杂度,其他由节点捕获的当前帧在A区用小的量子化步长,在B、C、D区用大的量子化步长。

图4 DCT系数的区域

3 仿真实验及分析

假设将无线多媒体传感器网络应用于区域监控,采用分层结构,基站、簇头节点和普通的视频传感器节点。视频传感器节点均匀部署,完全覆盖监控区域。所有节点是不可移动的,并且由电池供电。视频节点负责捕获和编码监控区域的图像,并将编码后的图像传输给簇头节点。

3.1 仿真实验结果

本文选取 PETS’2000(2000 IEEE International Workshop on Performance Evaluation of Tracking and Surveillance)的测试图像序列在MATLAB上进行仿真实验。图像场景是户外停车场,一个装在高处的摄像头以25 Hz的速度在58.08 s内拍摄了1 452帧图像,期间有人员和车辆进入监控区域。图像原始格式为768像素×578像素的彩色图像。选取编号为 0000,0120,0130,0140,0150,0160,0180 的图像,将它们变换为SIF格式,即320像素×240像素的灰度图像,然后用本文提出的图像编码算法进行仿真实验。

图5(a)是0000帧,被选作参考帧,图5(b)参考帧使用DCT近似计算JPEG算法压缩后的图像。JPEG标准算法压缩的图像PNSR是36.1141,DCT近似计算JPEG算法的PSNR是328226,近似计算造成3.291 5 dB的损失。图5(c)是编号为0180的当前帧,其中一辆车正在通过停车场,一个人在向停车场行进。

图5 参考帧和当前帧

图6 变化检测方法的比较

若将参考帧和当前帧中所有对应位置的像素逐个取差值并和阈值比较时,变化检测的结果如图6(a)所示,检测出的汽车和人的边缘都比较精确,但是残留了许多噪声,计算复杂度也较高。若将参考帧和当前帧中所有对应位置的DCT块的绝对差值和与阈值进行比较时,检测结果如图6(b)所示,检测结果滤除了大部分噪声,但是没有检测到人,而且其计算复杂度也较高。本文所提出算法的检测结果如图6(c)所示,仍有少数噪声残留,但是运动的车辆和行人都被检测到,且计算复杂度更低。图6(d)所示是使用优化的JPEG算法压缩后的检测结果图像。

编号0120、0130、0140、0150、0160 图像帧的变化检测和图像编码结果如图7所示。

图7 变化检测与压缩的结果

3.2 计算复杂度分析

将传统的快速DCT运算,文献[5-7]中使用的DCT裁剪运算,文献[2]中使用的变化检测结合本文所提出DCT近似计算,以及本文所提出的编码算法进行比较,各算法所需的乘法和加法的次数如表1所示。可以看出,本文所提出的算法的乘法和加法次数最小,计算复杂度低于其他算法。此外,在DCT计算中,内存访问和产生地址的操作占到全部计算量的75%,所提出的算法不仅可以减少加法和乘法的计算次数,还可以降低内存访问和产生地址的操作。

表1 2D-DCT的加法和乘法运算次数

美国克尔斯博公司的无线传感器节点平台Imote 2是目前比较先进的节点平台,它具有256 kbit的SRAM,传输速率为250 kbit/s的无线收发装置。如果一帧图像的大小为48 kbit,以25 Hz的速度采集320像素×240像素的监控图像时,1 s就会产生1 200 kbit的数据。这些图像数据超过了SRAM的存储空间和无线电的传输能力。节点无法完成数据传输任务,且会消耗大量能量。在进行变化检测之后,仅保留运动目标,如表2所示,检测结果每帧图像大小约为5 kbit,远小于原始图像。这样1 s内产生的图像数据只有大约125 kbit,Imote 2是可以完成数据传输任务的,并可以有效节约计算和通信能耗。

表2 变化检测后图像与原始图像尺寸对比 单位:bit

如表3所示,对于320像素×240像素的图像,如果逐个像素比较,需要进行153 600次加法,如果逐个块比较,需要进行78 000次加法,如果按所提出算法,比较每个块中边缘的14个像素,需要18 000次加法。

表3 变化检测运算量比较

通常情况下,进入场景的车辆和人员数量都较少,因此变化检测结果图像也较小,从而显著地降低了数据率,可以有效地节约通信能耗。

4 结论

本文提出一种适用于WMSN的基于变化检测和优化JPEG的低复杂度的图像编码算法。变化检测算法使用单一的参考帧和检测阈值,可以有效滤除图像中的大部分噪声,检测到运动目标,且运算量较小。优化后的DCT运算和量子化表格以极小的图像质量损失为代价,显著降低了计算复杂度。仿真实验结果表明,检测算法检测精度较高,有效减少了数据传输量。优化后的图像编码算法有效地降低节了计算复杂度,保证了图像质量。

[1]Akyildiz I F,Melodia T,Chowdhury K R.A Survey on Wireless Multimedia Sensor Networks[J].Computer Networks,2007,51(4):921-960.

[2]鲁琴,罗武胜,张勇.多媒体传感器网络中基于两跳簇结构的图像传输方案[J].传感技术学报,2007,20(11):2476-2480.

[3]张正宜,金心宇.无线多媒体传感器网络实时任务分配算法[J].传感技术学报,2009,22(5):688-693.

[4]Chiasserini C,Magli E.Energy Consumption and Image Quality in Wireless Video-Surveillance Networks[C]//Proceedings of 13th IEEE International Symposium on Personal,Indoor and Mobile Radio Communications.Lisbon:IEEE,2002:2357-2361.

[5]Magli E,Mancin M,Merello L.Low Complexity Video Compression for Wireless Sensor Networks[C]//Proceedings of 2003 International Conference on Multimedia and Expo.Baltimore:IEEE,2003.585-588.

[6]Feng W,Kaiser E,Feng W C,et al.Panoptes:Scalable Low-Power Video Sensor Networking Technologies[J].ACM Transactions on Multimedia Computing,Communications,and Applications.2005,1(2):151-167.

[7]Mammeri A,Khoumsi A,Ziou D,et al.Energy-Aware JPEG for Visual Sensor Networks[C]//Proceedings of 2008 Maghrebian Conference on Software Engineering and Artificial Intelligence.O-ran:IEEE,2008:1-7.

[8]Mammeri A,Khoumsi A,Ziou D,et al.Modeling and Adapting JPEG to the Energy Requirements of Visual Sensor Networks[C]//Proceedings of 2008 International IEEE Workshop on Sensor Networks.Virgin Islands:IEEE,2008:1-6.

[9]Mammeri A,KhoumsiA,Ziou D,etal.EnergyEfficient Transmission Scheme of JPEG Images over VSN[C]//Proceedings of 2008 International IEEE Workshop on Performance and Management of Wireless and Mobile Networks.Montreal:IEEE,2008:639-647.

[10]LeeD,Kim H,Tu S,etal.Energy-Optimized Image Communication on Resource-Constrained Sensor Platforms[C]//Proceedings of 6th International Symposium on Information Processing in Sensor Networks.Cambridge:IEEE,2007:216-225.

[11]Lee D,Kim H,Tu S,et al.Energy-Efficient image Compression on Resource-Constrained Platforms[J].IEEE Transactions on Image Processing,2009,18(9):2100-2113.

[12]Wallace G.The JPEG Still Picture Compression Standard[J].Communication of ACM,1991,34(4):30-44.

[13]Radke R J,Andra S,Al-Kofahi O,et al.Image Change Detection Algorithms:A Systematic Survey[J].IEEE Transactions on Image Processing,2005,14(3):294-307.

[14]Pao I M,Sun M T.Modeling DCT Coefficients for Fast Video Encoding[J].IEEE Transactions on Circuits and Systems for Video Technology,1999,9(4):608-616.

[15]Pan Z,Pan W D,Milenkovic A.Complexity-Distortion Tradeoffs in Variable Complexity 2-D DCT[C]//Proceedings of the 42nd annual Southeast regional conference.Huntsville:ACM,2004:460-465.

[16]Christopoulos C A,Bormans J,Cornelis J,et al.The Vector-Radix Fast Cosine Transform:Pruning and complexity analysis[J].Signal Processing,1995,43(2):197-205.

猜你喜欢
变化检测复杂度像素
用于遥感图像变化检测的全尺度特征聚合网络
像素前线之“幻影”2000
基于多尺度纹理特征的SAR影像变化检测
“像素”仙人掌
基于稀疏表示的视网膜图像对变化检测
一种低复杂度的惯性/GNSS矢量深组合方法
基于Landsat影像的黄丰桥林场森林变化检测研究
ÉVOLUTIONDIGAE Style de vie tactile
求图上广探树的时间复杂度
高像素不是全部