亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

提高等級樹集合分裂算法編解碼器抗誤碼能力的方法

文檔序號:7953165閱讀:183來源:國知局
專利名稱:提高等級樹集合分裂算法編解碼器抗誤碼能力的方法
技術領域
本發(fā)明涉及靜止圖像編解碼技術,特別是一種提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,采用該方法能夠有效控制誤碼錯誤的大范圍傳播,增強等級樹集合分裂算法(SPIHT)的容錯性能。
背景技術
在當今信息化時代,網絡已經無處不在,圖像的存儲和傳輸則變得越來越重要。而要在有限容量,并且?guī)в性肼暤男诺乐袀鞑グ薮笮畔⒘康膱D像,那么對圖像數據的壓縮就必不可少。于是對圖像壓縮編碼的研究越來越多,其中以有損壓縮領域尤為活躍。這些方法雖然使編碼效率得到不斷提高,但同時編碼的復雜度也隨之提高。然而零樹小波編碼(EZW)的出現改變了這種狀況,此算法具有許多優(yōu)良的特性,如復雜度低、嵌入式碼流、可控壓縮比率等等。由于EZW編碼方法有許多優(yōu)點,于是很多國內外專家開始研究并對其進行改進,以等級樹集合分裂算法(SPIHT)影響最大,在靜止圖像壓縮編碼領域是公認的編碼效率最高的算法之一。
SPIHT算法定義了一種集合分裂規(guī)則①O(i,j)節(jié)點(i,j)的所有直接子節(jié)點(Offspring)的坐標的集合;②D(i,j)節(jié)點(i,j)的所有子節(jié)點(Descendants)的坐標的集合;③H小波分解后最高層中所有節(jié)點的坐標的集合(包括高頻和低頻);④L(i,j)為所有非直接后代的節(jié)點坐標的集合,L(i,j)=D(i,j)-O(i,j)。在SPIHT算法的具體實現中,將顯著性信息保存在三個排過序的表內,它們分別為不顯著集合表(LIS),不顯著像素表(LIP)以及顯著像素表(LSP)。正是由于這種集合分割機制,才得以實現其高效率的編碼。
SPIHT編碼方法實現方法如圖1所示,包括以下幾個步驟(1)對輸入圖像做小波變換獲得小波系數矩陣P;(2)計算矩陣P中系數的最大值max,并生成一個矩陣Q,維數均為P的1/2,其中的元素(i,j)為對應D(i,j)中的最大值。
(3)初始化迭代次數n和閾值T,不重要系數表(LIP),重要系數表(LSP),不重要集合表(LIS);(4)對LIP,LIS表中的元素進行重要性掃描(Sorting Pass);
(5)對LSP中的元素進行細化掃描(Refinement Pass);(6)重復(3)(4),直到n為0,或者壓縮比達到要求;(7)對壓縮后的碼流進行自適應算術編碼;其核心編碼部分為(3)(4)(5),詳細實現方法如圖2所示,以下是核心編碼的工作過程首先,計算n=|log2(max)|,T=2n,并將所有(i,j)∈H的坐標加到LIP中,即將H中的低頻系數加入到LIP中,同時將所有子節(jié)點的(i,j)∈H的坐標加到LIS中,即將所有子樹的根結點加入到LIS中,LSP則置為空表,其次,對LIP中的元素進行重要性掃描(Node Test),即將LIP中的元素與T比較,若元素值大于T則為重要,輸出1,然后將其移入LSP中;否則仍然將其置于LIP中,然后輸出0。
再者,對LIS集合進行重要性掃描(Desc Test)。當某一集合中最大值小于T,輸出0;否則輸出1,然后將其入口坐標從LIS中刪除并按照集合分割規(guī)則將其分割。如果分割所得的新的子集包含的元素多于一個,則將該子集加到LIS的尾部形成相應的新的表項,并同時對此元素做Node Test;如果分割所得的新的子集只包含一個元素,則將該元素根據其顯著性測試的不同結果分別加到LIP中或LSP的尾部,并分別輸出0或1。
最后,對LSP中的部分元素(此次重要性掃描之前移入LSP的那部分)進行細化,即將要細化的元素與T比較,若大于T則輸出此比特位1,否則輸出0。
注意,解碼過程同編碼過程一致,只要把輸出地方改為輸入即可。SPIHT編碼方法中的一個主要特性是排序信息不是明顯地傳輸的,任何該算法的執(zhí)行路徑都由顯著性測試的結果來決定。成功的解碼不僅依賴于當前輸入,而且依賴于之前的NT(node tests)和DT(descendent tests)的結果。因此單個的NT或DT的錯誤往往會導致錯誤擴散到整個圖像區(qū)域,從而對圖像質量造成嚴重的破壞,這也正是此算法的不足之處,即非常小的一個誤碼(比如單個比特的錯誤),就有可能使整個圖像質量變得很差。這在有噪聲干擾的信道中傳播是基本不可行,也在很大程度上限制了此算法的廣泛應用。

發(fā)明內容
本發(fā)明針對現有技術中存在的缺陷或不足,提供一種提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,采用該方法能夠有效控制誤碼錯誤的大范圍傳播,增強等級樹集合分裂算法(SPIHT)的容錯性能。
本發(fā)明的技術構思為,在原有的等級樹集合分裂算法(SPIHT)的基礎上,通過分塊打包、錯誤發(fā)現和同步機制,以包的形式將誤碼出現導致的錯誤控制在包的內部,在略微增加了冗余碼流和運行時間的前提下,能夠有效地控制錯誤的大范圍傳播,從而增強此算法的容錯性能。
本發(fā)明的技術方案如下提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,包括編碼方法和相應的解碼方法,其特征在于所述編碼方法包括以下步驟對輸入圖像進行小波變換,對小波變換后得到的最低頻區(qū)域進行分割,形成若干個n×n矩陣,然后對每一個矩陣內對應的空間方向樹集合進行編碼,并對每一個矩陣的編碼結果打包。
所述對每一個編碼結果打包是指,將用于錯誤防止或誤差檢測,以及分離的信息以頭的方式添加到編碼后生成的每一個碼流中,并加入起始標志和結束標志,形成一個包。
所述對每一個編碼結果打包所形成的信息包結構包含一個起始標志,一個信息頭,一個碼流段或信息體,以及一個結束標志。
所述信息頭包括兩個參數,其參數1存儲信息包中重要性節(jié)點的個數,該參數1能夠在重要性掃描過程中,通過在節(jié)點被判別為重要之后累加的形式得到;其參數2存儲信息包中信息體的長度,該參數2能夠在重要性掃描過程中通過在輸出碼流之后累加相應的碼流長度的形式獲得。
所述解碼方法包括以下步驟讀取包的附加信息,包括起始標志和信息頭,接著對信息體的數據進行重要性掃描;將掃描后得到的實際的信息體長度值與信息頭相應的參數值進行比較,若相等則不做任何處理,否則開始對誤碼導致的錯誤進行處理;迭代執(zhí)行此過程,直到所有包的重要性掃描完畢。
所述解碼方法還包括對包信息體的數據進行重要性掃描后獲得的重要系數表進行細化掃描,若上次掃描沒有出現過錯誤且沒有到達出錯位置,則不做任何處理,否則開始執(zhí)行同步處理跳過發(fā)生錯誤的地方,錯誤發(fā)生的位置在出錯時進行記錄,跳過的元素的個數通過錯誤包的信息頭獲得。
在讀取包起始標志后進行以下判定,判定條件有兩個,一個是前一個包是否發(fā)生過錯誤,另一個是起始標志是否正確,這兩個條件是或的關系;在讀取信息頭時將讀取的參數即重要性節(jié)點的個數的值存儲在2個變量中,其中一個用于細化時的同步處理。
所述對誤碼導致的錯誤進行處理包括(a)重置當前包的重要系數表,(b)記錄發(fā)生錯誤的位置,(c)重置當前包的不重要系數表和不重要集合表,(d)定位下一個包頭位置。
如果信息體出現錯誤,直接通過信息頭同步,若信息體和信息頭都發(fā)生錯誤,則通過包起始和結束標志進行同步。
錯誤發(fā)生的位置與對應的應該跳過的碼流長度的數據同時保存在一個結構體當中。
本發(fā)明的技術效果如下本發(fā)明在原有編碼方法的基礎上,以包的形式將誤碼出現導致的錯誤控制在包的內部,在略微增加了冗余碼流和運行時間的前提下,有效的控制了錯誤的大范圍傳播,增強了此算法的容錯性能,并且在不出現誤碼的情況下重建后的圖像質量與現有算法重建后的相比,基本沒有變化。
本發(fā)明與現有技術相比有如下特點第一,將最低頻子帶分為一系列n×n的相鄰矩陣,對每一個矩陣內對應的空間方向樹集合進行編碼。這樣誤碼出現導致的破壞就可以控制在這個集合內部,而不會擴散出去。
第二,將每一個空間方向樹集合編碼的結果打包,誤差檢測和分離的關鍵信息以頭的形式包含在集合編碼信息中。這樣可以通過頭信息發(fā)現錯誤并在下一個同步位繼續(xù)解碼,從而達到防止錯誤擴散的目的。
第三,包的結構簡單(如圖3所示),能有效發(fā)現錯誤,并包含2套同步方案,且增加的碼流長度很小。


圖1為原有SPIHT編解碼方法框圖。
圖2為原有SPIHT核心編碼框圖。
圖3為本發(fā)明的信息包結構圖。
圖4本發(fā)明的編解碼方法框圖。
圖5為本發(fā)明的同步機制在重要性掃描中的實現流程圖。
圖6為本發(fā)明的同步機制在細化掃描中的實現流程圖。
具體實施例方式
下面結合附圖對本發(fā)明作進一步的詳細說明。
一種改進的SPIHT編碼方法包括對輸入圖像的小波變換,計算最大值和最大值矩陣,初始化,重要性掃描,細化掃描五個部分。小波變換得到小波系數矩陣P;根據這個矩陣計算最大值和最大值矩陣Q;初始化迭代次數n,以分塊的形式初始化不重要系數表(LIP)、重要系數表(LSP)、不重要集合表(LIS);對塊對應的空間方向樹集合進行重要性掃描;對整個重要性掃描得到的LSP表進行細化掃描。其特征在于,在初始化階段,將最低頻小波系數(m×m)按照n×n大小進行分塊,形成m/n組LIP、LSP、LIS表;對每一組進行重要性掃描時,先輸出包起始和包頭信息,并在結束此組重要性掃描后輸出包結束信息。
對于原有的等級樹集合分裂算法(SPIHT),通過分塊打包,錯誤發(fā)現和再同步實現錯誤控制,即在編碼時將最低頻子帶分為一系列n×n的相鄰矩陣,對每一個矩陣內對應的空間方向樹集合進行編碼,同時將一些用于錯誤防止和分離的關鍵信息以頭的方式添加到每一個矩陣編碼后生成的碼流中,并加入起始標志和結束標志以形成一個包。解碼時若發(fā)現錯包,則對編解碼實施再同步,從而使錯誤不影響其它的包,防止了誤碼擴散。
采用本發(fā)明編解碼方法實現靜止圖像編解碼器的實施例子如圖3~圖6所示。
本發(fā)明的信息包結構如圖3所示,它包含一個起始標志FF4F,一個信息頭A,一個碼流段和一個結束標志FFD9。信息頭A包括2個參數,參數1是Num_IP,記錄重要元素的個數,可以在重要性掃描過程中,通過在節(jié)點被判別為重要之后累加的形式得到;參數2是Num_Code,記錄此包的大小,單位是比特,這同樣也可以在重要性掃描過程中通過在輸出碼流之后累加相應的碼流長度的形式獲得。這種信息包的結構能起到2層同步,第一層如果信息體出現錯誤,可以直接通過信息頭同步;第二層若信息體和信息頭都發(fā)生錯誤,則可以通過包起始和結束標志進行同步,同步詳細流程見圖5。
本發(fā)明所述的新的靜止圖像編解碼器的實現框圖如圖4所示,其工作過程為編碼部分(1)對整幅圖像進行小波變換,得到一個系數矩陣P,然后通過P計算出最大值,同時生成一個最大值矩陣Q,維數均為P的1/2,其中的元素(i,j)為對應D(i,j)中的最大值。
(2)將小波變換后得到的最低頻區(qū)域按照某種分割準則(如4×4)分為若干個(N)小的方塊區(qū)域,用O(i)來表示。每個O(i)對應著一組空間方向樹集合,依據原有SPIHT算法中的初始化規(guī)則,使用O(i)對第i組LIP,LSP,LIS表進行初始化,就可以得到一個包含N組LIP,LSP,LIS表的集合LISP(i)。
(3)進入到塊編碼后,添加包開始標志(FF4F),接著添加包頭信息A,然后按照與原有SPIHT相同的掃描方法(如圖2所示)對O(i)進行重要性掃描(只需要在掃描過程中記錄頭信息A的參數值即可),掃描結束后添加包結束標志(FFD9),于是得到包C(i)。當整個集合LISP重要性掃描結束后,對此次之前重要性掃描獲得的所有重要性元素進行細化掃描,掃描方法同原有SPIHT的掃描方法。將閾值減半,重復步驟3,直到滿足壓縮比的要求或閾值為0。
解碼部分(1)按照與編碼同樣的原則對LIP,LSP,LIS表進行初始化,且得到一個包含N組LIP,LSP,LIS表的集合LISP。
(2)進入到塊解碼后,對包C(i)進行重要性掃描,如果發(fā)現包C(i)發(fā)生錯誤,則通過同步機制(如圖5所示)將重要性掃描過程轉到包C(i+1),重新開始重要性掃描。如果沒有發(fā)生錯誤,則掃描繼續(xù)進行,直到C(N)解碼完畢。然后開始進行細化掃描,若上一次掃描發(fā)生過錯誤,則要在此次細化時跳過發(fā)生錯誤的地方(如圖6所示),錯誤發(fā)生的位置可以在出錯時進行記錄,跳過的元素的個數則可以通過錯誤包的頭信息A獲得。如果沒有發(fā)生錯誤,則掃描繼續(xù)進行。將閾值減半,重復步驟2,直到滿足壓縮比的要求或閾值為0。
本發(fā)明所述的同步機制在重要性掃描中的實現流程如圖5所示,詳細描述如下(1)讀取包C(i)的起始標志,若上一個包沒有出錯或者起始標志等于FF4F,則開始讀取頭信息。否則從上一個包頭處開始尋找滿足條件(包結束和包起始標志連著)的位置,即依次連續(xù)讀取4個字節(jié),若結果為FFD9FF4F,則表示找到了正確的包頭,否則繼續(xù)往下尋找,直到滿足條件為止。
(2)讀取頭信息A的2個參數,并保存當前包的重要元素個數到NK,用于細化時的同步。然后開始重要性掃描。將重要性掃描時獲得的實際的參數值與讀取的頭信息的參數值進行比較,若相同,則證明沒有發(fā)生錯誤,或者錯誤不影響編解碼的同步,繼續(xù)對下一個包頭進行重要性掃描。否則進入錯誤處理階段(3)。
(3)當進入錯誤處理階段后,首先將LSP表中新添加的元素值重新置為0;然后記錄發(fā)生錯誤的位置PE;接著重新初始化LIP和LIS表,初始化過程同編碼前的初始化一樣;最后,通過頭信息A的參數2(Num_Code)和當前包的包頭位置計算下一個包頭的位置,并將流程定位到下個包的包頭處,繼續(xù)新的重要性掃描過程。
本發(fā)明所述的同步機制在細化掃描中的實現流程如圖6所示在細化掃描的時候,如果接收到的碼流到達出錯位置PE,則通過保存相應的信息NK(每一個PE和對應的NK保存在同一個結構體中),可以跳過出錯的部分,并將細化流程轉到正確的位置并開始新的細化掃描過程,保證編解碼的同步。
應當指出,以上所述具體實施方式
可以使本領域的技術人員更全面地理解本發(fā)明,但不以任何方式限制本發(fā)明。因此,盡管本說明書參照附圖和實施方式對本發(fā)明已進行了詳細的說明,但是,本領域技術人員應當理解,仍然可以對本發(fā)明進行修改或者等同替換;而一切不脫離本發(fā)明的精神和技術實質的技術方案及其改進,其均應涵蓋在本發(fā)明專利的保護范圍當中。
權利要求
1.提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,包括編碼方法和相應的解碼方法,其特征在于所述編碼方法包括以下步驟對輸入圖像進行小波變換,對小波變換后得到的最低頻區(qū)域進行分割,形成若干個n×n矩陣,然后對每一個矩陣內對應的空間方向樹集合進行編碼,并對每一個矩陣的編碼結果打包。
2.根據權利要求1所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于所述對每一個編碼結果打包是指,將用于錯誤防止或誤差檢測,以及分離的信息以頭的方式添加到編碼后生成的每一個碼流中,并加入起始標志和結束標志,形成一個包。
3.根據權利要求1所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于所述對每一個編碼結果打包所形成的信息包結構包含一個起始標志,一個信息頭,一個碼流段或信息體,以及一個結束標志。
4.根據權利要求3所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于所述信息頭包括兩個參數,其參數1存儲信息包中重要性節(jié)點的個數,該參數1能夠在重要性掃描過程中,通過在節(jié)點被判別為重要之后累加的形式得到;其參數2存儲信息包中信息體的長度,該參數2能夠在重要性掃描過程中通過在輸出碼流之后累加相應的碼流長度的形式獲得。
5.根據權利要求4所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于所述解碼方法包括以下步驟讀取包的附加信息,包括起始標志和信息頭,接著對信息體的數據進行重要性掃描;將掃描后得到的實際的信息體長度值與信息頭相應的參數值進行比較,若相等則不做任何處理,否則開始對誤碼導致的錯誤進行處理;迭代執(zhí)行此過程,直到所有包的重要性掃描完畢。
6.根據權利要求5所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于所述解碼方法還包括對包信息體的數據進行重要性掃描后獲得的重要系數表進行細化掃描,若上次掃描沒有出現過錯誤且沒有到達出錯位置,則不做任何處理,否則開始執(zhí)行同步處理跳過發(fā)生錯誤的地方,錯誤發(fā)生的位置在出錯時進行記錄,跳過的元素的個數通過錯誤包的信息頭獲得。
7.根據權利要求5所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于在讀取包起始標志后進行以下判定,判定條件有兩個,一個是前一個包是否發(fā)生過錯誤,另一個是起始標志是否正確,這兩個條件是或的關系;在讀取信息頭時將讀取的參數即重要性節(jié)點的個數的值存儲在2個變量中,其中一個用于細化時的同步處理。
8.根據權利要求5所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于所述對誤碼導致的錯誤進行處理包括(a)重置當前包的重要系數表,(b)記錄發(fā)生錯誤的位置,(c)重置當前包的不重要系數表和不重要集合表,(d)定位下一個包頭位置。
9.根據權利要求5所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于如果信息體出現錯誤,直接通過信息頭同步,若信息體和信息頭都發(fā)生錯誤,則通過包起始和結束標志進行同步。
10.根據權利要求8所述的提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,其特征在于錯誤發(fā)生的位置與對應的應該跳過的碼流長度的數據同時保存在一個結構體當中。
全文摘要
本發(fā)明提供一種提高等級樹集合分裂算法編解碼器抗誤碼能力的方法,包括編碼方法和相應的解碼方法,其特征在于所述編碼方法包括以下步驟對輸入圖像進行小波變換,對小波變換后得到的最低頻區(qū)域進行分割,形成若干個n×n矩陣,然后對每一個矩陣內對應的空間方向樹集合進行編碼,并對每一個矩陣的編碼結果打包。采用該方法能夠有效控制誤碼錯誤的大范圍傳播,增強等級樹集合分裂算法(SPIHT)的容錯性能。
文檔編號H04N1/419GK1852391SQ20061001186
公開日2006年10月25日 申請日期2006年5月10日 優(yōu)先權日2006年5月10日
發(fā)明者王翼, 唐娉 申請人:北京好望角醫(yī)學影像技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1