史治平,黃文才,王臣璽,羅 萱
(1. 電子科技大學通信抗干擾技術國家級重點實驗室 成都 611731;2. 通信網信息傳輸與分發技術重點實驗室 石家莊 050081)
近年來多媒體技術逐漸滲透進人們的日常生活中。圖像通信作為多媒體技術的一個重要組成部分,應用越來越廣泛,如遠程監控、遠程會議、可視電話以及遙感遙測等。在圖像數據傳輸中,信源編碼和信道編碼作為兩種關鍵技術可用于保證數據傳輸的有效性和可靠性。
目前在圖像通信傳輸技術中,針對靜態圖像數據應用的信源編碼方案主要包括基于離散余弦變換(discrete cosine transform, DCT)的圖像壓縮編碼方案[1]以及基于離散小波變換(discrete wavelet transform, DWT)的圖像壓縮編碼方案[2]。前者在高壓縮比條件下會出現明顯的方塊效應,采用這種方案會嚴重影響圖像的主觀質量;后者不但可以彌補DCT的缺陷,還能為后續的壓縮編碼提供頻率分離的變換數據。因此,基于DWT的信源編碼方案成為了比較常用的圖像壓縮算法。其中應用最為廣泛的3種基于DWT的圖像壓縮編碼算法分別是:多集樹集合分裂編碼算法(set partitioning in hierarchical trees, SPIHT)[3]、優化截斷點嵌入式塊編碼算法(embedded block coding with optimized truncation, EBCOT)[4]以及嵌入式零樹編碼算法(embedded zerotree wavelets, EZW)[5]。上述3種算法都利用了小波變換后圖像子帶分離的性質,把小波系數構造排列為一個樹狀結構,將所有數據根據其重要程度完成量化和熵編碼。因此,3種算法都具有中斷可譯性以及漸進傳輸特性。
在信道編碼的方案設計中,采用BATS碼編譯碼方案。BATS碼是噴泉碼以及網絡編碼的一種組合形式,能保證數據在端到端的無線刪除網絡中進行可靠傳輸[6-10]。對于碼長較長的BATS碼,由于編碼過程存在隨機性導致了譯碼過程的無序性,且根據譯碼算法接收端需在接收到足夠多的編碼包之后才能開始譯碼并恢復圖像,這一特性使得傳統的BATS碼在譯碼過程中產生了大量的等待時延。因此考慮將滑窗策略應用于BATS碼編碼方案中可較好地解決上述問題[11]。滑窗BATS碼的滑動窗從數據前端開始,按照固定步長逐漸向數據末端滑動,窗和窗之間存在重疊部分,采用滑窗策略不僅可以降低傳輸時延,還能實現數據的漸進順序傳輸。但是,由于滑動窗對數據的截取降低了碼長,因此譯碼性能也隨之下降。針對上述問題,本文提出了一種基于編碼統計的滑窗BATS碼,并將其與SPIHT編碼相結合,實現高可靠、低時延的圖像漸進傳輸,從而提升圖像通信系統的QoE。
由于傳統BATS碼編碼時,參與編碼的信息包是隨機選擇的,有些編碼包可能恰好未被選擇參與編碼,導致譯碼產生較高的錯誤平層。為了降低平層,本文提出基于編碼統計的滑窗BATS碼,如圖1所示。在優化方法中,通過在發送端分析統計每個窗口編碼后的窗內信息包的編碼情況,提取出未參與編碼的信息包并將其加入到下一個窗口中進行編碼,從而提高各個信息包的編碼概率,避免隨機編碼導致的未參與編碼的信息包數過高的問題,最終達到降低錯誤平層的目的。

圖1 基于編碼統計的滑窗結構示意圖
將信源編碼與信道編碼結合在一起,本文設計了一種結合SPIHT編碼和基于編碼統計的滑窗BATS碼的圖像傳輸方案,如圖2所示。

圖2 基于BTAS碼的圖像傳輸方案框圖
根據算法需求和設計目標,方案中需要設定的參數包括:信源編碼壓縮比 r atio、壓縮數據包的長度T、小波分解級數N、滑窗BATS碼的窗長w、滑動窗的滑動步長s′、 每個窗的編碼開銷ε、BATS碼編碼批次大小M、有限域的大小Fq。

然后對K個壓縮數據包進行BATS碼編碼,取出前w個數據包,構成第一個窗口的信息包集合B,并用集合B初始化當前窗未參與編碼的數據包集合Si,即令Si=B,此時i=1;對集合B中的信息包進行BATS外碼編碼,編碼過程如下所述:
1) 對外碼編碼度分布按概率Ω=[Ω1,Ω2,···,Ωw]進行采樣,得到一個度值d;
2) 從集合B中隨機選取d個不同的壓縮數據包,按列組合成當前的編碼信息包集合Bi;
3) 產生一個大小為d×M的系數生成矩陣Gi,矩陣中的每一個元素都隨機選取自有限域Fq中;
4) 將d個壓縮數據包進行M次隨機線性組合,得到M個編碼包,即一個編碼批次并發送至中繼節點。第i個編碼批次Xi生成過程的矩陣表示形式如下:
Xi=Bi·Gi
按照上述步驟持續產生編碼批次,直到生成足夠多的編碼批次為止。

考慮在刪除信道下,由于信道中存在的干擾、噪聲等因素導致部分編碼包在傳輸過程中發生丟失。為了提高傳輸可靠性,編碼包由發送端傳輸到中繼節點后,在中繼節點采用網絡編碼對接收到的編碼批次依次進行再編碼,編碼算法采用隨機線性網絡編碼,每個批次在完成內碼編碼后又重新生成M個編碼包,并依次發送至接收端。第i個編碼批次的內碼編碼過程的矩陣表示形式如下:

式中,Xi′為中繼節點接收到的第i個編碼批次;Hi是大小為 d im(Xi′,2)×M的轉移矩陣;Yi為接收端接收到的第i個編碼批次。
接收端譯碼與圖像重構的具體過程如下:
1) 接收端將接收到的批次碼與之前緩存的未譯出的批次碼合并進行聯合譯碼,譯碼完成后將未譯出的批次碼以及已譯出的壓縮數據包進行緩存。
2) 完成譯碼后,如有數據包譯碼成功,則執行步驟3)~步驟7);否則跳轉回步驟1)。
3) 將譯出的壓縮數據包按照包號進行排序,如果緩存的壓縮數據包數量為m個 ,則在這m個壓縮數據包中至多有n(n≤m)個連續的數據包,包號從1~n, 將這n個壓縮數據包稱為有效壓縮數據包;

7) 重復步驟1)和步驟2),直到譯碼窗滑動到數據的末端,完成所有接收批次碼的譯碼并輸出。
兩跳線性網絡的仿真模型如圖3所示,以兩跳的線性刪除網絡為信道傳輸模型,刪除概率設為0.1。圖像傳輸方案分別采用傳統BATS碼、普通滑窗BATS碼和基于編碼統計的滑窗BATS碼對分辨率為 512×512的標準靜態圖像Lena進行了仿真和測試。由于在圖像通信系統中,用戶體驗質量主要由重構圖像質量、傳輸時延以及圖像傳輸與顯示方式3個因素影響。因此,本文從重構圖像質量、漸進傳輸特性以及傳輸時延3個方面對不同的圖像傳輸方案進行分析和比較。

圖3 兩跳線性網絡的仿真模型
首先,采用信源編碼對原始圖像Lena進行3級小波分解,得到一個子帶分離的小波系數矩陣,再對小波系數矩陣進行SPIHT編碼可以得到長度分別為25 000、300 000、350 000、400 000、450 000、500 000的二元位流信息,相應的壓縮比分 別 設 為8.388 6、6.990 5、5.991 9、5.242 9、4.660 3、4.194 3,然后以T=100 bit為單位對上述位流信息進行打包即可得到原始信息包,長度分別為K={2500,3000,3500,4000,4500,5000}。
然后考慮信道編碼,有限域大小設為 GF(2),批次碼批次大小設為M=32。在滑窗BATS碼方案中,窗長設置為 ?=1000 , 滑動步長為s=500,每個窗的編碼開銷設為 ε =0.6。窗口的編碼度分布根據有限長BATS碼的度分布設計方法生成。
接收端譯碼器在完成第二個窗的譯碼后開始輸出并重構顯示譯碼成功的有效壓縮數據包。
峰值信噪比 PSNR是用于評測重構圖像質量的一個重要參數,本文用它作為衡量不同傳輸方案性能好壞的指標。分辨率為N×M,像素為255的圖像的P SNR可由下式進行計算:

式中,f(x,y)表 示原始圖像;g(x,y)表示重構圖像。PSNR值越高表明重構圖像質量越好,PSNR值越低表明重構圖像質量越差。
在本文的仿真過程中,先對基于編碼統計的滑窗改進方案進行多次仿真,仿真次數設為100,仿真結束后經統計可得到平均編碼批次數,再采用普通滑窗方案設定與編碼統計方案相同的編碼批次數進行仿真,在相同的編碼開銷下對重構圖像質量進行比較。在不同壓縮比下,滑窗改進方案的平均編碼批次總數經統計分別為{205, 260, 320, 358, 410,465},相應地,在普通滑窗BATS碼方案中每個窗口需產生的編碼批次數約為{51, 52, 53, 51, 51,52}。不同的壓縮比下,3種方案的峰值信噪比對比如圖4所示。
從圖4看出,基于編碼統計的滑窗BATS碼的圖像傳輸方案的重構圖像質量優于另外兩種方案。由于基于編碼統計的滑窗BATS碼能夠將未參與編碼的壓縮數據包放入下一次編碼的待選數據包中,通過降低原始數據包未參與編碼的概率來提高有效壓縮數據包的譯碼成功率,以此減少由于BATS碼編碼隨機性所造成的錯誤平層高對重構圖像質量的影響。而另外兩種方案由于BATS碼編碼的隨機性,使得一些原始數據包始終未參與編碼,因此譯碼性能比基于編碼統計的滑窗BATS碼差。

圖4 3種方案的重構圖像質量曲線
漸進傳輸特性是指隨著圖像數據的傳輸和譯碼,用戶能逐漸清晰地觀看圖片內容的過程。本文關注重構圖像的輸出時間和重構圖像質量二者的關系,通過統計重構圖像質量隨輸出時間變化的規律作為判定設計方案漸進傳輸特性好壞的衡量標準。
在壓縮比均為r atio=4.1943的情況下,表1給出了重構圖像質量隨時間的變化情況。表1中,PSNRT為傳統BATS碼的PSNR值,PSNRS為普通滑窗的PSNR值,PSNRopt為編碼統計滑窗的值。本文假設用一個單位時間譯碼完成并輸出一個窗口的原始數據包,那么完成并輸出第i(i>1)個窗口的原始數據包的時間為i。按照以上假設,基于傳統BATS碼和普通滑窗BATS碼的圖像傳輸方案的數據輸出時間范圍為 [ 2,9],基于編碼統計的滑窗BATS碼的圖像傳輸方案的數據輸出時間范圍為[ 2,10]。

表1 3種不同方案下不同輸出時間的PSNR值
基于BATS碼圖像傳輸中不同輸出時間重構的圖像如圖5所示。結合表1和圖5可以知道,幾種方案的重構圖像質量都隨輸出時間遞增,且不同輸出時間下的重構圖像都具有漸進完善特性,因此3種圖像傳輸方案都可實現漸進傳輸。但通過對比3種傳輸方案在不同輸出時間的 PSNR值以及具體的重構圖像質量,可得知與傳統BATS碼的傳輸方案相比,普通滑窗BATS碼的時延性能得到了顯著提升,重構圖像能夠得以更快恢復;同時,與普通滑窗BATS碼相比,基于編碼統計的滑窗BATS碼在相同的時延下能夠得到更高質量的重構圖像。

圖5 基于BATS碼圖像傳輸中不同輸出時間重構的圖像
為了簡化計算,本文只統計壓縮數據包的傳輸時延,而忽略小波變換、SPIHT編解碼和BATS碼編譯碼的處理時延。針對傳統BATS碼,由于接收端需要在接收到所有K個壓縮數據包的編碼批次后才開始進行譯碼操作,因此可以設定每個壓縮數據包的傳輸時延為K。
針對滑窗BATS碼,當接收端接收到第L(本文設定L=2)個窗口的編碼批次后,開始進行譯碼并輸出已恢復的壓縮數據包并據此得到對應的位流信息,對位流信息進行SPIHT譯碼和小波逆變換后,就可以重構圖像并進行輸出顯示。假如接收端完成了對第j(j≥L,j≠Nw)個窗口的壓縮數據包譯碼后,計算得到當前譯出nj個有效數據包,那么這nj個有效數據包中每一個包的傳輸時延就為w+js。根據上述方法可得到最后一個窗譯碼結束后所對應譯出的壓縮數據包的傳輸時延為K。因此,第i次仿真中每個譯出的有效壓縮數據包所需的平均傳輸時延可由下式計算:

完成m次 仿真后,對m次Tdielay之和取平均值就可以得到每次每個有效壓縮數據包的平均傳輸時延,計算方法如下式所示:

由圖6可以看出,基于編碼統計的滑窗BATS碼的傳輸時延比傳統BATS碼降低了20%~35%,相對普通滑窗BATS碼降低了8%~15%。圖像傳輸時延越低,則用戶能越快看到傳輸圖像并據此做出下一步的決策。

圖6 不同壓縮比下3種方案的傳輸時延對比圖
本文設計了一種圖像傳輸方案,將SPIHT編碼與BATS碼相結合。在BATS碼的編碼方案中引入滑窗策略對SPIHT編碼產生的壓縮數據包進行編碼,從而有效降低圖像數據的傳輸時延。仿真結果表明采用滑窗策略后,用戶能夠更快觀看到傳輸圖像,提升了用戶體驗。由于BATS碼在編碼過程中的隨機性,導致一些原始數據包可能從未參與編碼,使其具有較高的誤碼率和錯誤平層。針對此問題,本文提出了一種基于統計的滑窗編碼方案,經仿真驗證,與滑窗BATS碼相比,改進的基于編碼統計的滑窗BATS碼的可靠性得到了進一步的提高。