|
基于DCT變換的數(shù)字圖像分層壓縮編碼本文以DCT變換為基礎(chǔ),提出一種可以適用于不同網(wǎng)絡(luò)傳輸環(huán)境下的分層編碼方法。基于系數(shù)重要性的分層編碼根據(jù)域中系數(shù)重要程度不同和信道傳輸特性,有選擇地舍棄部分系數(shù)達(dá)到分層壓縮的目的;基于比特平面的分層編碼通過(guò)分析系數(shù)的比特平面,按照比特平面進(jìn)行分層,根據(jù)設(shè)置的參數(shù)實(shí)現(xiàn)不同質(zhì)量的圖像壓縮編碼。 互聯(lián)網(wǎng)和電信網(wǎng)絡(luò)的迅速發(fā)展為數(shù)字圖像的傳輸提供了必要條件,但是不同接入方式其傳輸帶寬有很大的差別,因此,研究具有可伸縮性的圖像編碼方法具有重要的意義。可伸縮性編碼是指同一編碼源可以隨著接入方式的不同,提供不同質(zhì)量的數(shù) 字圖像。本文針對(duì)這種需求,提出了一種可以適應(yīng)不同網(wǎng)絡(luò)傳輸條件的數(shù)字圖像編碼方法,即分層編碼。 目前,無(wú)論是互聯(lián)網(wǎng)的UDP連接還是ATM網(wǎng)絡(luò)上都存在丟信元/幀的問(wèn)題,而現(xiàn)在還沒(méi)有可以完全避免信源元丟失的技術(shù)方案。分層編碼方法將數(shù)字圖像按照人眼視覺特性對(duì)不同頻率分量信息的敏感度不同,將圖像信息分量分為不同的層次,當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí)有選擇地丟棄低優(yōu)先級(jí)的信息,在給定的信道帶寬的條件下,提供盡可能高質(zhì)量的數(shù)字圖像。本文以DCT變換為基礎(chǔ),研究DCT變換中分層壓縮編碼,并且給出不同分層條件下的實(shí)驗(yàn)結(jié)果。 DCT變換 DCT變換的基本思路是將圖像分解為8×8的子塊或16×16的子塊,并對(duì)每一個(gè)子塊進(jìn)行單獨(dú)的DCT變換,然后對(duì)變換結(jié)果進(jìn)行量化、編碼。隨著子塊尺寸的增加,算法的復(fù)雜度急劇上升,因此,實(shí)用中通常采用8×8的子塊進(jìn)行變換,但采用較大的子塊可以明顯減少圖像分塊效應(yīng)。 在圖像壓縮中,一般把圖像分解為8×8的子塊,然后對(duì)每一個(gè)子塊進(jìn)行DCT變換、量化,并對(duì)量化后的數(shù)據(jù)進(jìn)行Huffman編碼。DCT變換可以消除圖像的空間冗余,Huffman編碼可以消除圖像的信息熵冗余。 DCT是無(wú)損的,它只將圖像從空間域轉(zhuǎn)換到變換域上,使之更能有效地被編碼。對(duì)一個(gè)圖像子塊而言,將對(duì)變換后的64個(gè)系數(shù)進(jìn)行量化,并對(duì)Z字順序掃描系數(shù)表進(jìn)行編碼。這種排列方法有助于將低頻非0系數(shù)置于高頻系數(shù)之前,直流系數(shù)由于包含了所有圖像特征中的關(guān)鍵部分而被單獨(dú)編碼。量化后的系數(shù)經(jīng)過(guò)熵編碼進(jìn)一步無(wú)損壓縮,通常采用的是Huffman編碼。這種壓縮編碼方法中,圖像質(zhì)量的降低主要是由于對(duì)系數(shù)的量化造成,且不可恢復(fù)。假設(shè)子圖像為f(x, y),則DCT變換可以由下面的公式實(shí)現(xiàn):
其中式(1)的f(u, v)表示變換域的高頻成分,也稱為交流系數(shù);式(2)中F(0, 0)表示變換域中的低頻成分,也稱為直流系數(shù)。對(duì)變換結(jié)果進(jìn)行分析,可以看出能量主要集中到左上角。DCT變換具有良好的去相關(guān)特性。在圖像的壓縮編碼 中,N一般取8。 在解碼時(shí)首先得到各點(diǎn)的DCT系數(shù),然后根據(jù)下面的DCT反變換即可恢復(fù)出原圖像。DCT的反變換公式為:
利用公式(3)可以無(wú)損地恢復(fù)原圖像。在實(shí)際的應(yīng)用中,使用DCT變換的矩陣描述形式更容易理解。 基于系數(shù)重要性的分層編碼 按照上面的方法對(duì)圖像變換之后的系數(shù)進(jìn)行編碼,產(chǎn)生的碼流不具有分層的特性,因而不具有分級(jí)傳輸?shù)?能力。為了實(shí)現(xiàn)分層壓縮,我們對(duì)變換后的系數(shù)進(jìn)行重新排列(見圖1),再進(jìn)行支持分級(jí)傳輸特性的編碼。 由上面圖中的方法可知,變換后能量集中到變換域的左上角。因此基于DCT變換的圖像壓縮方法是對(duì)系數(shù)采用“Z”字型掃描的方式處理。為了實(shí)現(xiàn)分層編碼,我們將這些系數(shù)重新排列,然后進(jìn)行分層次的編碼:左上角的4個(gè)系數(shù)作為基本層的數(shù)據(jù);左上角16個(gè)系數(shù)作為第一增強(qiáng)層的數(shù)據(jù),這16個(gè)系數(shù)是除基本層中的四個(gè)系數(shù)以外的其余系數(shù);從16-47的數(shù)據(jù)作為第二增強(qiáng)層的數(shù)據(jù);其余的16個(gè)系數(shù)作為第三增強(qiáng)層數(shù)據(jù)。 經(jīng)過(guò)重排并進(jìn)行分層壓縮之后,在各個(gè)層次上進(jìn)行測(cè)試可以發(fā)現(xiàn),在只傳輸基本層時(shí)可提供峰值信噪比為23.23dB以上的圖像;增加一個(gè)增強(qiáng)層,圖像的峰值信噪比強(qiáng)達(dá)到28.9dB以上;如果加入第二個(gè)增強(qiáng)層,恢復(fù)圖像的峰值信噪比可以達(dá)到37.35dB。 采用這種方法,通過(guò)對(duì)DCT變換后的系數(shù)按照其重要性進(jìn)行取舍,可以非常方便地實(shí)現(xiàn)圖像序列的分層壓縮和分級(jí)傳輸,大大提高壓縮算法對(duì)不同傳輸通道的適應(yīng)能力,并兼顧到幀內(nèi)圖像質(zhì)量與幀速率。在一般的應(yīng)用場(chǎng)合下,只傳輸?shù)谝辉鰪?qiáng)層的數(shù)據(jù)即可達(dá)到較好的視覺效果,此時(shí)需要熵編碼的數(shù)據(jù)量已經(jīng)減少為原數(shù)據(jù)量的1/4,通過(guò)熵編碼的方法,可以獲得很高的壓縮比。 基于比特平面的分層編碼 另外一種支持分層分級(jí)壓縮編碼的方案是采用比特平面分層的方法。在經(jīng)過(guò)DCT變換之后的數(shù)據(jù)中,通常較大的系數(shù)集中在左上角,同時(shí)它也是重要的系數(shù)。分析這些系數(shù)可以發(fā)現(xiàn),左上角的系數(shù)的值比較大,因此可以在不同的傳輸特性下將圖像變換后的數(shù)據(jù)按比特平面的先后次序進(jìn)行編碼,先將高比特的比特平面編碼,對(duì)于一些小的系數(shù),其高數(shù)據(jù)比特必然為零,從而減少編碼的數(shù)據(jù)量,實(shí)際上等價(jià)于減少系數(shù)的個(gè)數(shù),忽略較小的系數(shù),從而得到一個(gè)低速碼流。在該低速碼流中,由于 包括了所有系數(shù)的較高比特,因此,可以將其作為圖像的基本層。依次將不同比特平面上的數(shù)據(jù)編碼為不同的層,從而實(shí)現(xiàn)基于DCT變換的另外一種壓縮方法。整個(gè)處理的過(guò)程如圖2所示。 對(duì)量化之后的數(shù)據(jù)按照比特的重要性進(jìn)行分層,按照分層的策略掃描比特平面的順序如圖3所示。將分層后的數(shù)據(jù)采用游長(zhǎng)編碼的方法進(jìn)行壓縮編碼。 圖3(a)表示掃描所有比特時(shí)的掃描順序,(b)表示有選擇掃描時(shí)的掃描順序。對(duì)DCT變換后的系數(shù)量化,將其用9個(gè)比特來(lái)表示。將Bit8~Bit4作為基本層的數(shù)據(jù),Bit3和Bit2作為第一增強(qiáng)層的數(shù)據(jù),Bit1和Bit0作為第二個(gè)增強(qiáng)層數(shù)據(jù)。采用這種劃分方法,按照比特平面重要程度的不同,將其編碼到不同邏輯信道,從而實(shí)現(xiàn)數(shù)字圖像分層壓縮編碼。 需要注意的是,在比特分層的測(cè)試中,對(duì)于DC系數(shù)不能采用分層的方法進(jìn)行編碼,必須采用原來(lái)的編碼方法,否則將使圖像的質(zhì)量極度惡化,幾乎無(wú)法得到任何有用的信息。 與前一方法相比,這種方法的實(shí)現(xiàn)顯然更復(fù)雜,但同時(shí)也更靈活。也有專家提出一種比特分層的壓縮算法,在進(jìn)行分層壓縮時(shí),如果在基本層或上一個(gè)增強(qiáng)層中出現(xiàn)過(guò)不為零的比特時(shí),對(duì)于后一增強(qiáng)層中的非零比特采取忽略的辦法,以獲得更加高的壓縮比。但實(shí)際上對(duì)這種壓縮方法進(jìn)行測(cè)試時(shí),無(wú)法得到其聲稱的壓縮效果,因此在本文中仍然采用全部掃描的方法。 實(shí)際上,采用按照比特平面掃描編碼方法可以實(shí)現(xiàn)更細(xì)的分層,在特定的傳輸特性下取得最有效的編碼效率。表1是針對(duì)不同的圖像采用逐個(gè)比特分層時(shí)的實(shí)驗(yàn)結(jié)果。 比較兩種方案可知,在只考慮基本層數(shù)據(jù)的情況下,前者的PSNR比后者大約要高出2dB,而且其實(shí)現(xiàn)也更加容易,因此,前一方案是首選的分層分級(jí)壓縮編碼方法。本文的所有測(cè)試圖像尺寸為512×512、256級(jí)灰度,其中“Lena”為一般的人物圖像,“Pepper”為自然物體圖像,“Camera”為幾何形狀明顯的圖像,“Women”為具有分付細(xì)節(jié)特征的人物圖像。從結(jié)果可以看出,對(duì)不同類圖像均可以獲得相近的實(shí)驗(yàn)結(jié)果,說(shuō)明這種方法可以適用于所有的數(shù)字圖像。 本文小結(jié) 本文介紹了數(shù)字圖像的分層壓縮方法,并且對(duì)兩種分層壓縮的結(jié)果進(jìn)行了比較。第一種實(shí)現(xiàn)方案中,根據(jù)DCT變換后各系數(shù)的重要程度,通過(guò)對(duì)系數(shù)有選擇的丟棄實(shí)現(xiàn)分層壓縮編碼,因而最為簡(jiǎn)單,它的特點(diǎn)是增強(qiáng)層的數(shù)據(jù)量比較大。而針對(duì)比特平面的分層壓縮算法的計(jì)算復(fù)雜度高于前者,但是它具有最明顯的分層效果,根據(jù)傳輸信道的不同,可以實(shí)現(xiàn)更多級(jí)別的分層,因此是基于DCT變換最靈活的分層壓縮算法。 參考文獻(xiàn):
1.JPEG(ISO/IEC JTC1/SC2/WG8) Diagital Compression and Coding of Continous Time Still Pictures [S].ISO CD10918-1, 1991.3。
2.MPEG(ISO/IEC JTC1/SC29/WG11) Coding of Moving Pictures and Associated Audio for Digital Storage Media at Up to 1.5Mbps [S].ISO CD11172, 1991.11。
3.A Layered DCT Coder for Internet Video. Elan Amir, Steven McCanne,Martin Vetterli University of California Berkeley, CA
4.郁曉宏、姚敏,小波變換及在圖象變換中小波系數(shù)地分析,計(jì)算機(jī)工程,2001 No.2 Vol.21,pp35-38。
5.張正炳、朱光喜、朱耀庭,基于亞取樣分形插值預(yù)測(cè)的混合圖象編碼方法,通信學(xué)報(bào),1998 No.8。 |
|