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

圖1 基于編碼統(tǒng)計(jì)的滑窗結(jié)構(gòu)示意圖
將信源編碼與信道編碼結(jié)合在一起,本文設(shè)計(jì)了一種結(jié)合SPIHT編碼和基于編碼統(tǒng)計(jì)的滑窗BATS碼的圖像傳輸方案,如圖2所示。

圖2 基于BTAS碼的圖像傳輸方案框圖
根據(jù)算法需求和設(shè)計(jì)目標(biāo),方案中需要設(shè)定的參數(shù)包括:信源編碼壓縮比 r atio、壓縮數(shù)據(jù)包的長(zhǎng)度T、小波分解級(jí)數(shù)N、滑窗BATS碼的窗長(zhǎng)w、滑動(dòng)窗的滑動(dòng)步長(zhǎng)s′、 每個(gè)窗的編碼開(kāi)銷(xiāo)ε、BATS碼編碼批次大小M、有限域的大小Fq。

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

考慮在刪除信道下,由于信道中存在的干擾、噪聲等因素導(dǎo)致部分編碼包在傳輸過(guò)程中發(fā)生丟失。為了提高傳輸可靠性,編碼包由發(fā)送端傳輸?shù)街欣^節(jié)點(diǎn)后,在中繼節(jié)點(diǎn)采用網(wǎng)絡(luò)編碼對(duì)接收到的編碼批次依次進(jìn)行再編碼,編碼算法采用隨機(jī)線性網(wǎng)絡(luò)編碼,每個(gè)批次在完成內(nèi)碼編碼后又重新生成M個(gè)編碼包,并依次發(fā)送至接收端。第i個(gè)編碼批次的內(nèi)碼編碼過(guò)程的矩陣表示形式如下:

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

7) 重復(fù)步驟1)和步驟2),直到譯碼窗滑動(dòng)到數(shù)據(jù)的末端,完成所有接收批次碼的譯碼并輸出。
兩跳線性網(wǎng)絡(luò)的仿真模型如圖3所示,以?xún)商木€性刪除網(wǎng)絡(luò)為信道傳輸模型,刪除概率設(shè)為0.1。圖像傳輸方案分別采用傳統(tǒng)BATS碼、普通滑窗BATS碼和基于編碼統(tǒng)計(jì)的滑窗BATS碼對(duì)分辨率為 512×512的標(biāo)準(zhǔn)靜態(tài)圖像Lena進(jìn)行了仿真和測(cè)試。由于在圖像通信系統(tǒng)中,用戶(hù)體驗(yàn)質(zhì)量主要由重構(gòu)圖像質(zhì)量、傳輸時(shí)延以及圖像傳輸與顯示方式3個(gè)因素影響。因此,本文從重構(gòu)圖像質(zhì)量、漸進(jìn)傳輸特性以及傳輸時(shí)延3個(gè)方面對(duì)不同的圖像傳輸方案進(jìn)行分析和比較。

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

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

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

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

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

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

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

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