專(zhuān)利名稱(chēng):高光譜遙感圖像的無(wú)損壓縮編碼器及其譯碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于高光譜遙感圖像的無(wú)損壓縮編碼器和譯碼器,屬移動(dòng)通信信源編碼領(lǐng)域。
背景技術(shù):
遙感是一種遠(yuǎn)離目標(biāo),通過(guò)識(shí)別目標(biāo)發(fā)射或輻射的電磁波而判定、測(cè)量并分析目標(biāo)性質(zhì)的技術(shù),廣泛應(yīng)用于軍事偵查、資源探測(cè)、糧食估產(chǎn)和災(zāi)難預(yù)防等各個(gè)方面。遙感圖像就是從遠(yuǎn)離地球的不同高度的遙感平臺(tái)上,使用光譜傳感器接收來(lái)自地球表層各類(lèi)地物的各種信息而構(gòu)成的圖像。多光譜圖像是指利用多光譜傳感器對(duì)同一對(duì)象(區(qū)域或目標(biāo)) 在多個(gè)窄光譜波段范圍上獲得的圖像,它記錄了成像地物在多個(gè)光譜波段的響應(yīng)特性。成像光譜技術(shù)是從上世紀(jì)80年代初發(fā)展起來(lái)的遙感技術(shù),它將成像與光譜技術(shù)結(jié)合起來(lái),能夠在連續(xù)光譜段上對(duì)同一地物同時(shí)成像,在探測(cè)物體空間特征的同時(shí),又將每個(gè)空間像元色散形成幾十到數(shù)百個(gè)窄波段、帶寬為幾個(gè)nm至20nm的連續(xù)光譜覆蓋帶,具有高空間和光譜分辨率、超多波段和圖譜合一等特點(diǎn)。利用這種技術(shù)既能夠?qū)δ繕?biāo)成像,又可以測(cè)量目標(biāo)物波譜特性。由于成像光譜儀產(chǎn)生的光譜圖像具有極高的光譜分辨率,因此也稱(chēng)之為高光譜圖像。隨著成像光譜儀的普及應(yīng)用,高光譜遙感圖像的空間、譜間和時(shí)間分辨率越來(lái)越高,使得成像光譜數(shù)據(jù)量急劇增長(zhǎng),對(duì)海量數(shù)據(jù)進(jìn)行有效地壓縮成了遙感技術(shù)發(fā)展中迫切需要解決的一個(gè)問(wèn)題。一方面,成像光譜數(shù)據(jù)獲取代價(jià)非常昂貴,又具有長(zhǎng)期的保存價(jià)值; 另一方面,高光譜遙感圖像的最終用途可能是不斷變化的,而有損壓縮將會(huì)丟失一些對(duì)進(jìn)一步處理非常有用的信息,并且不能從壓縮碼流中恢復(fù)原始數(shù)據(jù),因此,無(wú)損壓縮方法對(duì)于高光譜圖像的應(yīng)用有著特殊重要的意義。雖然連續(xù)色調(diào)靜止圖像無(wú)損/接近無(wú)損壓縮標(biāo)準(zhǔn)JPEG-LS能夠?qū)崿F(xiàn)無(wú)損壓縮,并且有著很好的壓縮性能。但是算法只消除空間相關(guān)性,沒(méi)有很好地利用高光譜遙感圖像的譜間相關(guān)性,并且算法復(fù)雜度高,很難實(shí)現(xiàn)實(shí)時(shí)處理,不易于硬件實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有高光譜遙感圖像壓縮技術(shù)存在的不足,提供一種能夠在降低硬件實(shí)現(xiàn)復(fù)雜度的條件下實(shí)現(xiàn)壓縮性能接近JPEG-LS壓縮比的高光譜遙感圖像的無(wú)損壓縮編碼器,同時(shí)提供一種能夠從該編碼器的壓縮碼流中恢復(fù)出原始數(shù)據(jù)的譯碼器。本發(fā)明的高光譜遙感圖像的無(wú)損壓縮編碼器采用以下技術(shù)解決方案該高光譜遙感圖像的無(wú)損壓縮編碼器,包括預(yù)測(cè)差分模塊、熵編碼模塊、輸出控制模塊,各模塊間是串行關(guān)系,由同一時(shí)鐘信號(hào)CLKl控制,并且由同一復(fù)位信號(hào)RESETl控制所有模塊進(jìn)入復(fù)位狀態(tài);預(yù)測(cè)差分模塊是數(shù)據(jù)輸入模塊,同時(shí)完成預(yù)測(cè)和差分功能;熵編碼模塊的功能是針對(duì)預(yù)測(cè)差分值進(jìn)行無(wú)失真的熵編碼;輸出控制模塊將碼字經(jīng)移位器處理后寫(xiě)入輸出緩沖區(qū);當(dāng)復(fù)位信號(hào)RESETl從高電平變?yōu)榈碗娖降钠陂g,編碼器系統(tǒng)中的所有
3模塊被初始化為復(fù)位狀態(tài),再向各個(gè)模塊發(fā)送同步時(shí)鐘信號(hào)CLKl ;預(yù)測(cè)差分模塊在每個(gè)時(shí)鐘周期讀入一個(gè)16位的原始數(shù)據(jù),然后判斷數(shù)據(jù)位置并且根據(jù)不同的位置選擇不同的預(yù)測(cè)方式,接著將原始數(shù)據(jù)與預(yù)測(cè)數(shù)據(jù)進(jìn)行差分運(yùn)算,得到預(yù)測(cè)差分?jǐn)?shù)據(jù);通過(guò)熵編碼器對(duì)得到的差分?jǐn)?shù)據(jù)進(jìn)行非等長(zhǎng)編碼;待編碼碼流累積到32位甚至超過(guò)32位時(shí),通過(guò)輸出控制模塊將其打包成32位有效數(shù)據(jù)并且輸出,當(dāng)圖像所有數(shù)據(jù)編碼完成后,剩余碼流不能恰好湊足32位時(shí),需要在模塊內(nèi)部自動(dòng)補(bǔ)零至32位輸出,完成一幅圖形的壓縮編碼。預(yù)測(cè)方式包括邊緣檢測(cè)預(yù)測(cè)和梯度調(diào)節(jié)預(yù)測(cè)。輸出緩沖區(qū)是一個(gè)長(zhǎng)度為52位的存儲(chǔ)空間,高32位用于存放每次準(zhǔn)備輸出數(shù)據(jù), 低20位是保護(hù)空間,存放當(dāng)寫(xiě)入數(shù)據(jù)超出32位時(shí)未能輸出地剩余片段。用于上述編碼器壓縮碼流恢復(fù)原始數(shù)據(jù)的譯碼器采用以下技術(shù)解決方案該譯碼器包括輸入控制模塊、熵譯碼模塊和預(yù)測(cè)差分模塊,各模塊間是串行關(guān)系, 由同一時(shí)鐘信號(hào)CLK2控制,并且由同一復(fù)位信號(hào)RESET2控制所有模塊進(jìn)入復(fù)位狀態(tài);輸入控制模塊在時(shí)鐘信號(hào)的控制下,將32位待譯碼字讀入輸入緩沖區(qū);熵譯碼模塊是一個(gè)熵譯碼器,內(nèi)有個(gè)40位的輸入緩存區(qū),低20位用來(lái)存放從輸入控制模塊讀入的數(shù)據(jù),高20位用來(lái)存放之前讀入的還沒(méi)譯出的剩余數(shù)據(jù),每譯出一個(gè)數(shù)據(jù),則令剩余的數(shù)據(jù)移向最高位,當(dāng)緩存區(qū)內(nèi)的剩余碼字不夠譯出一個(gè)數(shù)據(jù)時(shí),則向輸入控制模塊發(fā)送一個(gè)時(shí)鐘信號(hào),讓其輸出一個(gè)20位的數(shù)據(jù)到譯碼模塊;預(yù)測(cè)差分模塊的輸入是12位數(shù)據(jù),其功能是完成除第一波段或第一列以外數(shù)據(jù)的預(yù)測(cè)差分;當(dāng)復(fù)位信號(hào)RESET2從高電平變?yōu)榈碗娖降钠陂g,譯碼器系統(tǒng)中的所有模塊被初始化為復(fù)位狀態(tài),再向各個(gè)模塊發(fā)送同步時(shí)鐘信號(hào)CLK2 ;輸入控制模塊在每個(gè)時(shí)鐘周期都會(huì)讀入一個(gè)32位數(shù)據(jù)并將其分解;通過(guò)熵譯碼器將非等長(zhǎng)碼流譯成預(yù)測(cè)差分?jǐn)?shù)據(jù);在預(yù)測(cè)差分模塊內(nèi)判斷待譯數(shù)據(jù)的位置并且根據(jù)不同的位置選擇不同的預(yù)測(cè)方式,最后將預(yù)測(cè)差分?jǐn)?shù)據(jù)與預(yù)測(cè)值通過(guò)加法器無(wú)失真恢復(fù)出原始圖像數(shù)據(jù)。譯碼和編碼的過(guò)程是非常對(duì)稱(chēng)的,譯碼完全是編碼的逆過(guò)程。也就是說(shuō),譯碼器和編碼器使用相同的基本過(guò)程,模塊相同但處理次序相反。本發(fā)明編碼器具有低復(fù)雜度,能夠在降低硬件復(fù)雜度的條件下實(shí)現(xiàn)較好的壓縮性能,同時(shí)提供的譯碼器能夠從該編碼器的壓縮碼流中恢復(fù)出原始數(shù)據(jù),實(shí)現(xiàn)了將讀入連續(xù)壓縮碼流無(wú)失真恢復(fù)出12位原始圖像數(shù)據(jù)。
圖1是本發(fā)明中編碼器的模塊結(jié)構(gòu)圖。圖2是本發(fā)明中編碼器的工作流程圖。圖3是本發(fā)明中編碼器的第一種預(yù)測(cè)方式因果模型圖。圖4是本發(fā)明中編碼器的第二種預(yù)測(cè)方式關(guān)聯(lián)模型圖。圖5是本發(fā)明中譯碼器的模塊結(jié)構(gòu)圖。圖6是是本發(fā)明中譯碼器的工作流程圖。
具體實(shí)施例方式本發(fā)明的高光譜遙感圖像的無(wú)損壓縮編碼器實(shí)現(xiàn)了將讀入的16位圖像數(shù)據(jù)進(jìn)行壓縮編碼輸出連續(xù)的壓縮碼流,編碼器的模塊結(jié)構(gòu)如圖1所示,其內(nèi)部包括預(yù)測(cè)差分模塊、
4熵編碼模塊、輸出控制模塊,各模塊間是串行關(guān)系,由同一時(shí)鐘信號(hào)CLKl控制,流水作業(yè), 并且由同一復(fù)位信號(hào)RESETl控制所有模塊進(jìn)入復(fù)位狀態(tài)。編碼器的各模塊工作之前,在復(fù)位信號(hào)RESETl從高電平變?yōu)榈碗娖降钠陂g,所有模塊都被初始化為復(fù)位狀態(tài),再向各個(gè)模塊發(fā)送同步時(shí)鐘信號(hào)CLKl ;接下來(lái)編碼器各模塊的串行工作流程如圖2表示,分為三步1、在每個(gè)時(shí)鐘周期通過(guò)預(yù)測(cè)差分模塊讀入一個(gè)16 位的原始數(shù)據(jù),然后判斷數(shù)據(jù)位置并且根據(jù)不同的位置選擇不同的預(yù)測(cè)方式,接著將原始數(shù)據(jù)與預(yù)測(cè)數(shù)據(jù)進(jìn)行差分運(yùn)算,得到預(yù)測(cè)差分?jǐn)?shù)據(jù)。2、通過(guò)熵編碼器對(duì)得到的差分?jǐn)?shù)據(jù)進(jìn)行非等長(zhǎng)編碼。3、待編碼碼流累積到32位甚至超過(guò)32位時(shí),通過(guò)輸出控制模塊將其打包成32位有效數(shù)據(jù)并且輸出。另外需要特別注意的是,當(dāng)圖像所有數(shù)據(jù)編碼完成后,此時(shí)剩余碼流可能不能恰好湊足32位,需要在模塊內(nèi)部自動(dòng)補(bǔ)零至32位輸出,這樣就完成了圖形的壓縮編碼。下面從各個(gè)模塊出發(fā),詳細(xì)介紹高光譜遙感圖像的無(wú)損壓縮編碼過(guò)程。(1)預(yù)測(cè)差分模塊預(yù)測(cè)差分模塊是編碼器的數(shù)據(jù)輸入模塊,同時(shí)完成預(yù)測(cè)和差分功能,是編碼器的核心模塊。在時(shí)鐘信號(hào)的每個(gè)上升沿,模塊讀入一個(gè)16位的圖像數(shù)據(jù),并自動(dòng)舍棄低四位無(wú)效數(shù)據(jù)。同時(shí)三個(gè)內(nèi)部計(jì)數(shù)器自動(dòng)加一記錄當(dāng)前被編碼數(shù)據(jù)所在的波段、行和列數(shù)。這里需要注意的是對(duì)于高光譜遙感圖像,為了更好的利用圖像空間和譜間相關(guān)性,圖像數(shù)據(jù)輸入的順序是先輸入第一個(gè)波段的第一行,接著是第二個(gè)波段的第一行,然后是第三個(gè)波段的第一行,交叉輸入直到波段總數(shù)為止。每個(gè)波段隨后的行按照類(lèi)似的方式交叉輸入。如果當(dāng)前數(shù)據(jù)處在第一波段或第一列時(shí),模塊直接輸出當(dāng)前12位數(shù)據(jù);否者如果處在第二波段或第二列或最后一列時(shí),模塊輸出當(dāng)前數(shù)據(jù)與經(jīng)過(guò)預(yù)測(cè)方式一得到的預(yù)測(cè)值的差分值;其他位置則輸出當(dāng)前數(shù)據(jù)與經(jīng)過(guò)預(yù)測(cè)方式二得到的預(yù)測(cè)值的差分值。差分運(yùn)算是有符號(hào)減法,因此差分結(jié)果應(yīng)當(dāng)擴(kuò)充一位符號(hào)位,但考慮到編碼器輸入數(shù)據(jù)的高度相關(guān)性,預(yù)測(cè)結(jié)果與當(dāng)前數(shù)據(jù)應(yīng)十分接近,即差分結(jié)果接近零,因此仍保持?jǐn)?shù)據(jù)寬度12,高位為符號(hào)位,負(fù)數(shù)用反碼表示。在硬件實(shí)現(xiàn)上,首先判斷減數(shù)與被減數(shù)大小,由此判斷若相減為負(fù)數(shù)則直接相減得到結(jié)果再減一,也就是將補(bǔ)碼轉(zhuǎn)換為反碼,否則直接相減。所述預(yù)測(cè)方式一也稱(chēng)為邊緣檢測(cè)預(yù)測(cè)(Median Edge Detector MED),它是一個(gè)非線性自適應(yīng)預(yù)測(cè)器,預(yù)測(cè)器所采用的因果模型如圖3所示,其思想是根據(jù)因果模板中待編碼像素X的領(lǐng)域像素A、B、C,基于簡(jiǎn)單的中值邊緣檢測(cè)法,進(jìn)行垂直與水平邊界的檢測(cè),從而優(yōu)選當(dāng)前待編碼像素X的預(yù)測(cè)值。即在當(dāng)前像素X的左側(cè)出現(xiàn)豎直邊緣時(shí)選擇上方領(lǐng)域點(diǎn)預(yù)測(cè),在上方出現(xiàn)水平邊緣時(shí)選擇左側(cè)領(lǐng)域點(diǎn)預(yù)測(cè),在沒(méi)有發(fā)現(xiàn)明顯的邊緣時(shí)則選擇較平均的(A+B-C)作為預(yù)測(cè)值。這是一個(gè)復(fù)雜度低而預(yù)測(cè)效果好的自適應(yīng)預(yù)測(cè)器,采上述預(yù)測(cè)器的模型可以表示如下,其中&表示像素X的預(yù)測(cè)值。
權(quán)利要求
1.一種高光譜遙感圖像的無(wú)損壓縮編碼器,其特征是包括預(yù)測(cè)差分模塊、熵編碼模塊、輸出控制模塊,各模塊間是串行關(guān)系,由同一時(shí)鐘信號(hào)CLKl控制,并且由同一復(fù)位信號(hào) RESETl控制所有模塊進(jìn)入復(fù)位狀態(tài);預(yù)測(cè)差分模塊是數(shù)據(jù)輸入模塊,同時(shí)完成預(yù)測(cè)和差分功能;熵編碼模塊是針對(duì)預(yù)測(cè)差分值進(jìn)行無(wú)失真的熵編碼器;輸出控制模塊將碼字經(jīng)移位器處理后寫(xiě)入輸出緩沖區(qū);當(dāng)復(fù)位信號(hào)從高電平變?yōu)榈碗娖降钠陂g,編碼器系統(tǒng)中的所有模塊被初始化為復(fù)位狀態(tài),再向各個(gè)模塊發(fā)送同步時(shí)鐘信號(hào)CLKl ;預(yù)測(cè)差分模塊在每個(gè)時(shí)鐘周期讀入一個(gè)16位的原始數(shù)據(jù),然后判斷數(shù)據(jù)位置并且根據(jù)不同的位置選擇不同的預(yù)測(cè)方式,接著將原始數(shù)據(jù)與預(yù)測(cè)數(shù)據(jù)進(jìn)行差分運(yùn)算,得到預(yù)測(cè)差分?jǐn)?shù)據(jù);通過(guò)熵編碼器對(duì)得到的差分?jǐn)?shù)據(jù)進(jìn)行非等長(zhǎng)編碼;待編碼碼流累積到32位甚至超過(guò)32位時(shí),通過(guò)輸出控制模塊將其打包成32位有效數(shù)據(jù)并且輸出,當(dāng)圖像所有數(shù)據(jù)編碼完成后,剩余碼流不能恰好湊足32位時(shí),需要在模塊內(nèi)部自動(dòng)補(bǔ)零至32位輸出,完成一幅圖形的壓縮編碼。
2.根據(jù)權(quán)利要求1所述的高光譜遙感圖像的無(wú)損壓縮編碼器,其特征是所述預(yù)測(cè)方式包括邊緣檢測(cè)預(yù)測(cè)和梯度調(diào)節(jié)預(yù)測(cè)。
3.根據(jù)權(quán)利要求1所述的高光譜遙感圖像的無(wú)損壓縮編碼器,其特征是所述輸出緩沖區(qū)是一個(gè)長(zhǎng)度為52位的存儲(chǔ)空間,高32位用于存放每次準(zhǔn)備輸出數(shù)據(jù),低20位是保護(hù)空間,存放當(dāng)寫(xiě)入數(shù)據(jù)超出32位時(shí)未能輸出地剩余片段。
4.一種用于權(quán)利要求1所述高光譜遙感圖像的無(wú)損壓縮編碼器的譯碼器,其特征是 包括輸入控制模塊、熵譯碼模塊和預(yù)測(cè)差分模塊,各模塊間是串行關(guān)系,由同一時(shí)鐘信號(hào) CLK2控制,并且由同一復(fù)位信號(hào)RESET2控制所有模塊進(jìn)入復(fù)位狀態(tài);輸入控制模塊在時(shí)鐘信號(hào)的控制下,將32位待譯碼字讀入輸入緩沖區(qū);熵譯碼模塊是一個(gè)熵譯碼器,內(nèi)有個(gè)40 位的輸入緩存區(qū),低20位用來(lái)存放從輸入控制模塊讀入的數(shù)據(jù),高20位用來(lái)存放之前讀入的還沒(méi)譯出的剩余數(shù)據(jù),每譯出一個(gè)數(shù)據(jù),則令剩余的數(shù)據(jù)移向最高位,當(dāng)緩存區(qū)內(nèi)的剩余碼字不夠譯出一個(gè)數(shù)據(jù)時(shí),則向輸入控制模塊發(fā)送一個(gè)時(shí)鐘信號(hào),讓其輸出一個(gè)20位的數(shù)據(jù)到譯碼模塊;預(yù)測(cè)差分模塊的輸入是12位數(shù)據(jù),其功能是完成除第一波段或第一列以外數(shù)據(jù)的預(yù)測(cè)差分;當(dāng)復(fù)位信號(hào)RESET2從高電平變?yōu)榈碗娖降钠陂g,譯碼器系統(tǒng)中的所有模塊被初始化為復(fù)位狀態(tài),再向各個(gè)模塊發(fā)送同步時(shí)鐘信號(hào)CLK2 ;輸入控制模塊在每個(gè)時(shí)鐘周期都會(huì)讀入一個(gè)32位數(shù)據(jù)并將其分解;通過(guò)熵譯碼器將非等長(zhǎng)碼流譯成預(yù)測(cè)差分?jǐn)?shù)據(jù); 在預(yù)測(cè)差分模塊內(nèi)判斷待譯數(shù)據(jù)的位置并且根據(jù)不同的位置選擇不同的預(yù)測(cè)方式,最后將預(yù)測(cè)差分?jǐn)?shù)據(jù)與預(yù)測(cè)值通過(guò)加法器無(wú)失真恢復(fù)出原始圖像數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種高光譜遙感圖像的無(wú)損壓縮編碼器及其譯碼器,編碼器包括預(yù)測(cè)差分模塊、熵編碼模塊、輸出控制模塊,各模塊間是串行關(guān)系,由同一時(shí)鐘控制;預(yù)測(cè)差分模塊是數(shù)據(jù)輸入模塊,同時(shí)完成預(yù)測(cè)和差分功能;熵編碼模塊是針對(duì)預(yù)測(cè)差分值進(jìn)行無(wú)失真的熵編碼器;輸出控制模塊在時(shí)鐘信號(hào)的控制下,將碼字經(jīng)移位器處理后寫(xiě)入輸出緩沖區(qū)。譯碼和編碼的過(guò)程是非常對(duì)稱(chēng)的,譯碼完全是編碼的逆過(guò)程,譯碼器和編碼器使用相同的基本過(guò)程,模塊相同但處理次序相反。本發(fā)明編碼器具有低復(fù)雜度,能夠在降低硬件復(fù)雜度的條件下實(shí)現(xiàn)較好的壓縮性能,譯碼器能夠從該編碼器的壓縮碼流中恢復(fù)出原始數(shù)據(jù)。
文檔編號(hào)H04N7/26GK102170568SQ20111005911
公開(kāi)日2011年8月31日 申請(qǐng)日期2011年3月11日 優(yōu)先權(quán)日2011年3月11日
發(fā)明者王旭葉, 馬丕明 申請(qǐng)人:山東大學(xué)