專利名稱:基于Raptor碼的圖像編碼方法
基于Raptor碼的圖像編碼方法技術領域
本發明屬于圖像處理技術領域,特別是涉及圖像壓縮方法,可用于對復雜度和實時性要求嚴格的漸進式圖像壓縮傳輸。
背景技術:
圖像,是當下最主要的信息記錄方式之一,尤其是隨著可視電話、高清電視、視頻會議、遙感成像和遠程監控等技術的廣泛應用,圖像已成為人們生活中信息交流的主要載體。然而,當圖像通過無線信道傳輸時容易受到噪聲的干擾,圖像的通信質量會大大下降, 因此圖像在無線信道中的可靠傳輸成為了當下研究的熱點。
近年來,許多學者提出了聯合信源信道編碼方案,將無線通信系統的信源編碼和信道編碼聯合考慮進行最優化設計,來充分保證信息傳輸的可靠性,在相同復雜度的情況下能獲得良好的系統性能。在信道編碼過程中,通過在原始信息基礎之上添加冗余信息,來對原始信息進行保護?,F有信道編碼的方法有其固有的缺陷編碼的碼率是固定的,從而基于它們的聯合信源信道編碼也有著不足整個系統的碼率是固定的,碼的結構在信息傳輸之前已經確定,不能在線產生足夠多的編碼符號來譯碼原始信息。當接收端不能正確譯碼原始信息時,編碼信息只能重新發送,這會增加信道的占用率,降低效率。發明內容
本發明的目的在于克服上述已有技術的缺點和不足,提出一種基于Raptor碼的圖像編碼方法,以提高信道的利用效率。
為實現上述目的,本發明的實現步驟包括如下
(1)對原始圖像進行五級9/7小波變換,產生不同頻率的子帶,并對子帶內的系數進行交織,得到具有能容錯的變換圖像系數;
(2)對變換圖像系數采用四舍五入的方法進行量化;
(3)按照從低頻到高頻的順序,對每個子帶逐一進行位平面編碼,并將編碼后的碼流組成一個數據包,每個數據包對應一個子帶;
(4)對每個數據包中的碼流進行Raptor編碼,得到具有糾錯碼信息的待發送碼流;
(5)在發送端,將待發送碼流通過二進制刪除信道進行傳輸,在接收端接收傳輸后的碼流信息;
(6)對接收端接收的碼流信息進行Raptor譯碼,恢復步驟( 所述的數據包信息;
(7)對數據包信息進行位平面解碼,恢復圖像變換系數,并對該系數進行解交織;
(8)對解交織后的圖像變換系數進行9/7小波逆變換,得到最終的解碼圖像。
本發明與現有技術相比具有如下優點
本發明由于采用具有無碼率特性的Raptor碼,不僅能彌補傳統聯合信源信道編碼的碼率固定方式的缺陷,而且能在線產生足夠多的編碼符號以對原始信息進行譯碼,提高了信道的利用效率;同時,由于采用了位平面編碼方式以及對小波變換后的子帶內的系數進行了交織,故可在道條件惡劣的情況下,仍能獲得高質量的恢復圖像;此外本發明具有復雜度低的優點,能進行實時性要求嚴格的漸進式圖像壓縮傳輸。
圖1是本發明的總流程圖2是本發明的子帶系數交織圖3是Raptor編碼前數據包結構圖4是Raptor編碼后數據包結構圖5是本發明的二進制刪除信道模型圖6是本發明編碼時的生成矩陣示意圖7是本發明仿真采用的圖像。
具體實施方式
參照圖1,本發明的具體步驟如下
步驟1,對原始圖像進行五級9/7小波變換,產生不同頻率的子帶,并對子帶內的系數進行交織,得到具有能容錯的變換圖像系數。
參照圖2,子帶內的系數交織步驟如下
la)將子帶進行四分,產生四個相等的塊M1, M2, M3, M4,如圖2(a)所示;
lb)將M1塊分成四個相等的塊,并按照M1所在的位置,交叉放置該四個相等的塊, 如圖2(b)所示;
Ic)按照lb)所述的過程,將M2, M3, M4每個塊分別分成四個相等的塊,并按照它們的位置,交叉放置各自四個相等的塊的位置。
步驟2,對變換圖像系數采用四舍五入的方法進行量化,即變換圖像系數的符號位不變,如果該系數的小數部分的值大于等于0. 5,則取該系數的整數部分的值加1作為量化后的值,否則直接取該系數的整數部分作為量化后的值。
步驟3,按照從低頻到高頻的順序,對每個子帶逐一進行位平面編碼,并將編碼后的碼流組成一個數據包,每個數據包對應一個子帶。
所述位平面編碼的步驟如下
3a)根據子帶內的系數的最大值M,確定最高位平面n,并且η = Llog2 Μ」;
3b)編碼最高位平面n,并計算該最高位平面的閾值為2n,如果子帶內的系數大于該閾值,則輸出1,否則輸出0 ;
3c)編碼次高位平面,η值減1,更新閾值為211-1,如果子帶內的系數大于該閾值,則輸出1,否則輸出0,重復此過程直到η值為0時,編碼位平面0。
每個子帶(Wavelet Band)位平面編碼后的碼流能組成一個數據包,它的結構如圖3所示,由起始標記字節(BeginByte)、數據字節總數(DataNumber)和信源信息 (SourceData) 。
步驟4,對每個數據包中碼流進行Raptor編碼,得到具有糾錯碼信息的待發送碼流。
Raptor編碼是實現本發明目的的關鍵技術,它由兩個環節組成預編碼和LT編碼,這里的預編碼是由低密度校驗編碼LDPC編碼和Half編碼組成;在Raptor編碼過程中, 需要先計算中間符號,該中間符號是進行LT編碼的前提,LT編碼正是對中間符號進行異或的過程;每個數據包中的碼流進行Raptor編碼之后,具有了糾錯碼信息,它的結構如圖4所示,由起始標記字節(BeginByte)、數據字節總數(DataNumber)、信源信息(SourceData)和 Raptor 編碼信息(RaptorData)組成。
Raptor編碼的具體步驟如下
4a)根據信源符號長度K,分別計算LDPC編碼符號個數S、Half編碼符號個數H和中間符號長度L :
對于S,先求解滿足XX (X-I)彡2XK的最小整數X,則S是滿足 S彡ceil (0.01 XK)+X的最小的質數,其中ceil (χ)表示大于等于χ的最小整數;
對于H,它是滿足choose (H,ceil (Η/2))彡K+S的最小整數,其中,choose (i,j)表示從i個元素中選出j個元素的組合數;
對于L,它是 K, S, H 之和,即 L = K+S+H。
4b)根據預編碼關系,構造生成矩陣A
4bl)設定參數并明確預編碼關系
設以0],...,C[L_1]表示L個中間符號,則以0],...,C[K_1]表示前K個中間符號,C[K],. . . C[K+S-1]表示 S 個 LDPC 編碼符號,C[K+S],· · · C[L_1]表示 H 個 Half 編碼符號。預編碼關系是中間符號的前K個符號與后面的L-K個符號之間的關系,它包含兩層含義,即前K個中間符號與S個LDPC編碼符號的關系和前K+S個中間符號與H個Half編碼符號的關系;
4b2)計算 LDPC 編碼矩陣 G_LDPC
G_LDPC是一個SXK階矩陣,它是預編碼的第一層含義,表示LDPC編碼過程,G_ LDPC能通過前K個中間符號與S個LDPC編碼符號的關系來計算。
在文獻 RFC5053 “Raptor Forward Error Correction Scheme for Object Delivery”中,給出前K個中間符號與S個LDPC編碼符號滿足如下關系
i從0開始到K-I,分別作如下處理
a = l+floor(i/S) % (S-I)
b = i% S
C[K+b] = C[K+b]"C[i]
b = (b+a) % S
C[K+b] = C[K+b]"C[i]
b = (b+a) % S
C[K+b] = C[K+b]"C[i]
其中,a,b,i表示整數,表示異或運算,floor (χ)表示小于等于χ的最小整數;
4b3)計算 Half 編碼矩陣 G_Half
GJfalf是一個HX (K+S)階矩陣,它是預編碼的第二層含義,表示Half編碼過程, GJfalf能通過前K+S個中間符號與H個Half編碼符號的關系來計算,為表示前K+S個中間符號與H個Half編碼符號的關系,首先作一個定義
g[i] = i"floor (i/2),Vi >0
這里的g[i]是一個格雷碼序列,即序列中前后兩個碼字之間只有1個比特差異, 用m[H’]表示g[i]的子序列,該子序列的每個碼字的二進制表示中有H’個比特的1,且H’ =⑶^仿/^,并用!!^·,!!,]表示m[H’]序列中的第j個元素,則前K+S個中間符號與H個 Half編碼符號滿足如下關系
設h從0開始到H-I,j從0開始到K+S-1,如果m[j,H’ ] 二進制表示的第h比特位等于1,則c[h+K+s] =c[h+K+src[j],反之不變,其中,h,j表示整數,表示異或運算;
4b4)計算LT編碼矩陣G_LT,并構造生成矩陣A
G_LT是一個1(\1^介矩陣,它按照36 TS沈.346標準中的LT編碼中給出的LT編碼過程來計算。如圖6所示,生成矩陣A是一個LXL階方陣,它由LDPC編碼矩陣G_LDPC、 Half編碼矩陣GJfalf、LT編碼矩陣G_LT、矩陣I_S、矩陣I_H和矩陣0_SXH構成,其中,矩陣I_S是一個S X S階單位矩陣,矩陣I_H是一個HXH階單位矩陣,矩陣0_S X H是一個S X H 階零矩陣;
4c)計算生成矩陣A的逆矩陣,并計算中間符號C
C[L_1]
由于生成矩陣A是方陣,因此采用全選主元高斯消去法計算生成矩陣A的逆矩陣 A—1,得到逆矩陣A—1后,按照如下的關系計算中間符號C
C[L-1]
C = A-1XD1)
其中,C表示由L個中間符號CW],C [1],...,C[L-1]組成的列向量,D表示由L 個符號組成的列向量,且其前S+H個符號為0,后K個符號代表信源符號。根據關系式1), 將生成矩陣A的逆矩陣A—1與列向量D進行矩陣相乘,將列向量C計算出來,即可得到中間符號CW],C[1],…,C[L-1];
4d)利用計算出來的中間符號C
C[L_1],將其進行LT編碼,得到Raptor編碼后符號。
步驟5,在發送端,將待發送碼流通過二進制刪除信道進行傳輸,在接收端接收傳輸后的碼流信息。
二進制刪除信道的模型如圖5所示,二進制信息0/1以1-p的概率正確傳輸到接收端,并以P的概率在信道中丟失,其中P表示信息丟失率,E代表信息丟失。
步驟6,對接收端接收的碼流信息進行Raptor譯碼,恢復步驟3所述的數據包信肩、ο
6a)根據接收到的碼流信息,分別計算接收到的符號長度N和譯碼長度M,M = S+H+N,其中S是LDPC編碼符號個數,H是Half編碼符號個數;
6b)按照編碼生成矩陣A的構建過程,構造譯碼矩陣B
譯碼矩陣B是一個MXL階矩陣,能按照編碼生成矩陣A的構建過程來構造,即譯碼矩陣B的前S+H行和A矩陣相同,后N行按照3GPP TS沈.346標準中的LT編碼過程來計算;
6c)構造譯碼方程
設(表示由1^個中間符號以0],([1],...,([1^-1]組成的列向量,G表示由M個符號組成的列向量,且其前S+H個符號為0,后N個符號為接收到的編碼符號,將中間符號列向量C看作未知數列向量,則譯碼矩陣B、中間符號列向量C和列向量G構成譯碼方程為
BXC = G
2)
6d)計算中間符號C
C[L-1],再經譯碼得到信源信息
利用伽羅華域全選主元高斯消去法求解方程2、,計算出中間符號向量C,得到中間符號列向量C后,將在編碼時產生的LT編碼矩陣G_LT與中間符號列向量C進行矩陣相乘,即能譯碼得到信源信息。
步驟7,對數據包信息進行位平面解碼,恢復圖像變換系數,并對該系數進行解交幺口 /Ν ο
所述位平面解碼具體步驟如下
7a)每個數據包對應一個子帶,子帶內的系數初始化為0,從最高位平面η開始解碼,計算該最高位平面的閾值2η,如果輸入為1,則子帶內的系數與該閾值相加,否則子帶內的系數不變;
7b)解碼次高位平面,η值減1,更新閾值為2114,如果輸入為1,則子帶內的系數與該閾值相加,否則子帶內的系數不變;
7c)重復7b)直到η值為0時,解碼位平面0。
步驟8,對解交織后的圖像變換系數進行9/7小波逆變換,得到最終的解碼圖像。
本發明的效果通過以下具體實驗數據進一步說明。
1.實驗條件
本發明的實驗是取大小為512 X 512,灰度為8比特的Lena、Barbara、GoIdhi 11和 Munar等四幅自然圖像,如圖7所示,其中圖7 (a)為Lena圖,圖7 (b)為Barbara圖,圖7 (c) 為 Goldhill 圖,圖 7(d)為 Munar 圖。
2.實驗內容
按照本發明所述的編碼和解碼的步驟對圖7所示的四幅自然圖像分別進行編碼和解碼。設信源符號長度為40,編碼符號長度為60,每個符號的長度為3字節,二進制刪除信道的丟失率為0. 001,在碼率bpp為0. 125,0. 25、0. 5和1的條件下計算峰值信噪比PSNR, 并在同等情況下,對比傳統的信道編碼RS編碼與本發明的方法的PSNR值,見表1。
2.實驗比較結果
本發明采用峰值信噪比PSNR作為數字對比的指標,其定義如下
權利要求
1.一種基于Raptor碼的圖像編碼方法,包括如下步驟(1)對原始圖像進行五級9/7小波變換,產生不同頻率的子帶,并對子帶內的系數進行交織,得到具有能容錯的變換圖像系數;(2)對變換圖像系數采用四舍五入的方法進行量化;(3)按照從低頻到高頻的順序,對每個子帶逐一進行位平面編碼,并將編碼后的碼流組成一個數據包,每個數據包對應一個子帶;(4)對每個數據包中的碼流進行Raptor編碼,得到具有糾錯碼信息的待發送碼流;(5)在發送端,將待發送碼流通過二進制刪除信道進行傳輸,在接收端接收傳輸后的碼流信息;(6)對接收端接收的碼流信息進行Raptor譯碼,恢復步驟( 所述的數據包信息;(7)對數據包信息進行位平面解碼,恢復圖像變換系數,并對該系數進行解交織;(8)對解交織后的圖像變換系數進行9/7小波逆變換,得到最終的解碼圖像。
2.根據權利要求1所述的基于Raptor碼的圖像編碼方法,其中步驟(1)所述的對子帶內的系數進行交織,按如下步驟進行2a)將子帶進行四分,產生四個相等的塊M1, M2, M3, M4 ;2b)將M1塊分成四個相等的塊,并按照M1所在的位置,交叉放置該四個相等的塊;2c)按照2b)所述的過程,將M2, M3, M4每個塊分別分成四個相等的塊,并按照它們的位置,交叉放置各自四個相等的塊的位置。
3.根據權利要求1所述的基于Raptor碼的圖像編碼方法,其中步驟( 所述的對每個子帶逐一進行位平面編碼,按照如下步驟進行3a)根據子帶內的系數的最大值M,確定最高位平面n,并且η = [Iog2 Mj ;3b)編碼最高位平面n,并計算該最高位平面的閾值為2n,如果子帶內的系數大于該閾值,則輸出1,否則輸出0;3c)編碼次高位平面,η值減1,更新閾值為2"-1,如果子帶內的系數大于該閾值,則輸出 1,否則輸出0,重復此過程直到η值為O時,編碼位平面O。
4.根據權利要求1所述的基于Raptor碼的圖像編碼方法,其中步驟(4)所述的對每個數據包中的碼流進行Raptor編碼,按如下步驟進行4a)根據信源符號長度K,分別計算LDPC編碼符號個數S、Half編碼符號個數H和中間符號長度L ;4b)根據預編碼關系,構造生成矩陣A ;4c)計算生成矩陣A的逆矩陣,并計算中間符號C
C[L-1];4d)利用計算出來的中間符號C
C[L-1],將其進行LT編碼,得到Raptor編碼后符號。
5.根據權利要求1所述的基于Raptor碼的圖像編碼方法,其中步驟(6)所述的對接收端接收的碼流信息進行Raptor譯碼,按如下步驟進行5a)根據接收到的碼流信息,分別計算接收到的符號長度N和譯碼長度M,M = S+H+N, 其中S是LDPC編碼符號個數,H是Half編碼符號個數;5b)按照編碼生成矩陣A的構建過程,構建譯碼矩陣B ;5c)構造譯碼方程;5d)計算中間符號C
C[L-1],再經譯碼得到信源信息。
6.根據權利要求1所述的基于Raptor碼的圖像編碼方法,其中步驟(7)所述的對數據包信息進行位平面解碼,按照如下步驟進行6a)每個數據包對應一個子帶,子帶內的系數初始化為0,從最高位平面η開始解碼,計算該最高位平面的閾值2η,如果輸入為1,則子帶內的系數與該閾值相加,否則不變;6b)解碼次高位平面,η值減1,更新閾值為211-1,如果輸入為1,則子帶內的系數與該閾值相加,否則子帶內的系數不變;6c)重復6b)直到η值為0時,解碼位平面0。
全文摘要
本發明提出了一種基于Raptor碼的圖像編碼方法,主要解決傳統聯合信源信道編碼的碼率固定而導致信道利用率低的缺陷。其實現過程為1.對原始圖像進行五級9/7小波變換,產生不同頻率的子帶,并對子帶內的系數進行交織;2.按照從低頻到高頻的順序,對每個子帶逐一進行位平面編碼,并將編碼后的碼流組成一個數據包,每個數據包對應一個子帶;3.對每個數據包中的碼流進行Raptor編碼,得到具有糾錯碼信息的待發送碼流;4.在發送端,將待發送碼流通過二進制刪除信道進行傳輸,在接收端接收傳輸后的碼流信息;5.對接收到的碼流信息按照與發送端完全相反的順序進行解碼,最后得到重構圖像。本發明具有復雜度低的優點,能進行實時性要求嚴格的漸進式圖像壓縮傳輸。
文檔編號H04N7/26GK102547287SQ201210006949
公開日2012年7月4日 申請日期2012年1月11日 優先權日2012年1月11日
發明者吳信紅, 吳家驥, 方勇, 焦李成 申請人:西安電子科技大學