熊哲源,樊曉平,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變換和量子化進行優化研究。
在視頻監控應用中,用戶的興趣區域一般是場景中的運動目標,也是發生變化的區域。檢測同一場景在不同時刻所拍攝圖像的變化區域,可以區分圖像序列和先前圖像之間的差異,檢測場景中物體的出現、運動和消失,物體形狀的變化等。使用變化檢測定位監控圖像中的變化區域,由此確定興趣區域,并對其進行編碼傳輸,可以有效降低數據通信量,從而降低能耗。在數據通信量已經較小的情況下,可適當降低壓縮率來保證較好的圖像質量。
變化檢測算法用于檢測同一場景中不同時間捕獲的圖像序列中的變化區域,通過當前幀和參考幀的比較找到活動的塊,由此獲得與移動目標相關的連通區域[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]。一般來說,根據圖像內容選擇分割閾值顯然更加合理,但是本文使用的閾值是依靠經驗選取。
文獻[7-9]中的JPEG改進算法主要是對DCT變換進行裁剪優化,即僅計算部分DCT系數,這樣降低計算復雜度的效果有限。DCT變換主要是加法和乘法運算,文中沒有分析裁剪優化對于DCT中加法和乘法運算次數的影響。此外,量子化過程沒有對低頻和高頻系數區別對待。本文對參考幀和當前幀使用不同的編碼方案,提出使用DCT近似計算,并定量分析該方法對加法和乘法運算次數的影響。還探討了根據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)的計算公式如下:

量子化的目的是進一步壓縮,將每個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系數的區域
假設將無線多媒體傳感器網絡應用于區域監控,采用分層結構,基站、簇頭節點和普通的視頻傳感器節點。視頻傳感器節點均勻部署,完全覆蓋監控區域。所有節點是不可移動的,并且由電池供電。視頻節點負責捕獲和編碼監控區域的圖像,并將編碼后的圖像傳輸給簇頭節點。
本文選取 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 變化檢測與壓縮的結果
將傳統的快速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 變化檢測運算量比較
通常情況下,進入場景的車輛和人員數量都較少,因此變化檢測結果圖像也較小,從而顯著地降低了數據率,可以有效地節約通信能耗。
本文提出一種適用于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.