【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)屬于圖像壓縮
,更具體地,涉及到一種防誤碼擴(kuò)散的無(wú)損/近無(wú)損圖像壓縮方法及其硬件實(shí)現(xiàn),本專利技術(shù)適用于空間運(yùn)用的星載圖像無(wú)損/近無(wú)損壓縮系統(tǒng)。
技術(shù)介紹
近年來(lái)我國(guó)在外太空探索和對(duì)地觀測(cè)等空間應(yīng)用領(lǐng)域正處于高速發(fā)展階段,傳感器的性能也隨之得到了極大的提升,遙感數(shù)據(jù)量日益龐大,使得有限的信道帶寬和數(shù)據(jù)存儲(chǔ)容量與傳輸大量遙感數(shù)據(jù)之間的矛盾日益突出。顯然,數(shù)據(jù)壓縮技術(shù)是解決這一問(wèn)題的一個(gè)有效途徑,使其在遙感領(lǐng)域越來(lái)越受到重視。JPEG-LS壓縮算法是已建立的對(duì)于彩色及灰度圖像無(wú)損壓縮的標(biāo)準(zhǔn),是基于Weinberger等提出的低復(fù)雜度的無(wú)損圖像壓縮方法(LOCO-I:lowcomplexitylosslesscompressionforimages),廣泛應(yīng)用于衛(wèi)星圖像無(wú)損壓縮,是CCSDS推薦的無(wú)損/近無(wú)損壓縮算法。作為圖像數(shù)據(jù)無(wú)損/近無(wú)損壓縮標(biāo)準(zhǔn),在壓縮性能和壓縮效率方面具有很多優(yōu)越性,因此成為目前圖像無(wú)損壓縮應(yīng)用中最廣泛被采用的方法之一。
遙感數(shù)據(jù)的極為寶貴且獲取不易,因此在對(duì)遙感數(shù)據(jù)壓縮時(shí)無(wú)損/近無(wú)損壓縮起到了極為重要的作用。同時(shí),在軍事應(yīng)用領(lǐng)域,實(shí)時(shí)性是遙感數(shù)據(jù)獲取、傳輸和處理的首要指標(biāo),因此對(duì)遙感數(shù)據(jù)的壓縮處理還必須滿足高實(shí)時(shí)性的要求。再者,星上空間極為復(fù)雜而惡劣,電路易因單粒子翻轉(zhuǎn)等出錯(cuò),而星地鏈路則易受天氣狀況影響,在惡劣天氣下易產(chǎn)生信道誤碼,因此壓縮系統(tǒng)必須具有極高的可靠性。因此,JPEG-LS壓縮算法的在這樣的應(yīng)用背景下,會(huì)存在一些技術(shù)難點(diǎn):實(shí)時(shí)實(shí)現(xiàn)問(wèn)題和誤碼擴(kuò)散問(wèn)題。
JPEG- ...
【技術(shù)保護(hù)點(diǎn)】
一種防誤碼擴(kuò)散的JPEG?LS圖像無(wú)損/近無(wú)損壓縮算法硬件實(shí)現(xiàn)方法,其特征在于,包括以下步驟:(1)預(yù)設(shè)參數(shù)(1.1)讀入像素位寬參數(shù)pixel_width;(1.2)讀入子塊大小參數(shù):子塊行數(shù)row_size和子塊列數(shù)column_size,確定最小編碼單元MCU(Minimum_Coded_Unit)子塊大小;(1.3)讀入檢糾錯(cuò)模式選擇參數(shù)correction_mode,選通所需的檢糾錯(cuò)編碼方式:RS編碼或者屏蔽檢糾錯(cuò)編碼;(1.4)利用圖像的幀同步信號(hào)對(duì)上述參數(shù)進(jìn)行鎖定,保持在一幅圖像進(jìn)行壓縮的時(shí)候,子塊大小參數(shù)和檢糾錯(cuò)模式選擇這兩種參數(shù)不變;(2)輸入像素值和近無(wú)損度參數(shù)Near,進(jìn)行圖像分塊(2.1)將需要壓縮的圖像像素?cái)?shù)據(jù)和與每一個(gè)像素對(duì)應(yīng)的近無(wú)損度參數(shù)Near一起輸入至圖像緩存與分塊模塊中;(2.2)根據(jù)讀入的子塊大小參數(shù)控制圖像的緩存量,當(dāng)存儲(chǔ)器中圖像的行數(shù)等于子塊行數(shù)時(shí),通過(guò)控制讀地址按照設(shè)定好的子塊大小參數(shù)逐塊讀出圖像像素Ix和與該像素所對(duì)應(yīng)的近無(wú)損度參數(shù)Near,通過(guò)這種方式將整幅圖像分成若干子塊,并以子塊作為最小編碼單元進(jìn)行壓縮編碼;(3)以圖像子塊為單位,將 ...
【技術(shù)特征摘要】
1.一種防誤碼擴(kuò)散的JPEG-LS圖像無(wú)損/近無(wú)損壓縮算法硬件實(shí)現(xiàn)方
法,其特征在于,包括以下步驟:
(1)預(yù)設(shè)參數(shù)
(1.1)讀入像素位寬參數(shù)pixel_width;
(1.2)讀入子塊大小參數(shù):子塊行數(shù)row_size和子塊列數(shù)column_size,
確定最小編碼單元MCU(Minimum_Coded_Unit)子塊大小;
(1.3)讀入檢糾錯(cuò)模式選擇參數(shù)correction_mode,選通所需的檢糾錯(cuò)
編碼方式:RS編碼或者屏蔽檢糾錯(cuò)編碼;
(1.4)利用圖像的幀同步信號(hào)對(duì)上述參數(shù)進(jìn)行鎖定,保持在一幅圖像
進(jìn)行壓縮的時(shí)候,子塊大小參數(shù)和檢糾錯(cuò)模式選擇這兩種參數(shù)不變;
(2)輸入像素值和近無(wú)損度參數(shù)Near,進(jìn)行圖像分塊
(2.1)將需要壓縮的圖像像素?cái)?shù)據(jù)和與每一個(gè)像素對(duì)應(yīng)的近無(wú)損度參
數(shù)Near一起輸入至圖像緩存與分塊模塊中;
(2.2)根據(jù)讀入的子塊大小參數(shù)控制圖像的緩存量,當(dāng)存儲(chǔ)器中圖像
的行數(shù)等于子塊行數(shù)時(shí),通過(guò)控制讀地址按照設(shè)定好的子塊大小參數(shù)逐塊
讀出圖像像素Ix和與該像素所對(duì)應(yīng)的近無(wú)損度參數(shù)Near,通過(guò)這種方式將
整幅圖像分成若干子塊,并以子塊作為最小編碼單元進(jìn)行壓縮編碼;
(3)以圖像子塊為單位,將串行數(shù)據(jù)轉(zhuǎn)換為兩路并行數(shù)據(jù)
(3.1)像素?cái)?shù)據(jù)和與之對(duì)應(yīng)的近無(wú)損度參數(shù)Near按子塊為單位串行輸
入到4個(gè)FIFO所組成的結(jié)構(gòu)中;第1個(gè)子塊的像素按照像素時(shí)鐘連續(xù)寫入
FIFO1中,寫完一個(gè)子塊后,第2個(gè)子塊的像素按照像素時(shí)鐘連續(xù)寫入FIFO3
中,以此類推,第3個(gè)子塊的像素按照像素時(shí)鐘連續(xù)寫入FIFO2中,之后
第4個(gè)子塊的像素按照像素時(shí)鐘連續(xù)寫入FIFO4中,后續(xù)子塊按照以上順
序依次寫入四個(gè)FIFO中;
(3.2)像素?cái)?shù)據(jù)按子塊為單位分為并行兩路輸出到兩路預(yù)測(cè)編碼模塊;
FIFO1和FIFO2以圖像子塊為單位交替輸出像素Ix和與該像素所對(duì)應(yīng)的近無(wú)
損度參數(shù)Near至預(yù)測(cè)編碼模塊1,并且每個(gè)像素之間間隔一個(gè)像素時(shí)鐘周期;
同樣的,F(xiàn)IFO3和FIFO4以圖像子塊為單位交替輸出像素Ix和與該像素所對(duì)
應(yīng)的近無(wú)損度參數(shù)Near至預(yù)測(cè)編碼模塊2,并且每個(gè)像素之間間隔一個(gè)像素
時(shí)鐘周期;
(3.3)上下文參數(shù)RAM初始化:在每一個(gè)子塊的像素寫入FIFO之前,
對(duì)該子塊所對(duì)應(yīng)的近無(wú)損度參數(shù)Near值進(jìn)行采樣,并對(duì)上下文參數(shù)RAM進(jìn)
行初始化操作;
(4)并行預(yù)測(cè)編碼模塊:采用空間并行原理,設(shè)置兩路預(yù)測(cè)編碼模塊,
同時(shí)進(jìn)行預(yù)測(cè)編碼,生成Golomb編碼所需的變量;
(4.1)上下文建模:把重建后的像素值Rx輸入到“FIFO+寄存器”緩
存結(jié)構(gòu)中,根據(jù)子塊大小參數(shù)控制FIFO的讀時(shí)機(jī),當(dāng)已經(jīng)緩存了子塊中一
行的像素后,開始從FIFO中讀出數(shù)據(jù),從寄存器上依次獲得當(dāng)前像素值的
近鄰a、c、b、d,同時(shí)統(tǒng)計(jì)當(dāng)前像素在子塊中的坐標(biāo)值;根據(jù)行列計(jì)數(shù)
得到當(dāng)前像素的坐標(biāo)值,并讀取每一個(gè)子塊的第一個(gè)像素,即首像素Fp;
再根據(jù)當(dāng)前像素值的行列坐標(biāo)和子塊大小參數(shù)對(duì)當(dāng)前像素的4個(gè)近鄰進(jìn)行
邊緣處理,獲得重建值Ra、Rc、Rb、Rd:當(dāng)前像素的坐標(biāo)為子塊的第一
行第一列時(shí),Ra、Rc、Rb、Rd均等于首像素Fp;當(dāng)前像素的坐標(biāo)為子塊
的第一行非第一列時(shí),Ra等于對(duì)應(yīng)坐標(biāo)的像素值a,而Rc、Rb、Rd均等于
首像素Fp;當(dāng)前像素的坐標(biāo)為子塊的第一列非第一行時(shí),Ra與Rb等于b,
Rc等于Ra在前一行時(shí)的重建值;當(dāng)前像素的坐標(biāo)為子塊的最后一列時(shí),Rb、
Rd等于b的像素值,Ra、Rc等于a、c的像素值;在其他位置時(shí),Ra、Rc、
Rb、Rd依次等于a、c、b、d;
(4.2)分為兩個(gè)計(jì)算環(huán)節(jié)同時(shí)進(jìn)行:索引值計(jì)算和像素預(yù)測(cè)
像素預(yù)測(cè):
根據(jù)JPEG-LS算法原理,通過(guò)上下文建模中Ra值、Rb值以及Rc計(jì)算出
像素預(yù)測(cè)值Px,用寄存器輸出;
索引值計(jì)算:
(4.2.1)根據(jù)上下文建模的結(jié)果計(jì)算三個(gè)梯度值:Rd與Rb相減得到
梯度一D[0];Rb與Rc相減得到梯度二D[1];Rc與Ra相減得到梯度三D[2];
(4.2.2)根據(jù)初始化得到的梯度量化閾值(T1、T2、T3)分別對(duì)三個(gè)
梯度進(jìn)行量化,具體處理方法為:將三個(gè)梯度值分別并行地與八個(gè)閾值(-T3、
-T2、-T1、-NEAR、NEAR、T1、T2、T3)作比較,每個(gè)比較結(jié)果對(duì)應(yīng)于8
位的最終比較結(jié)果中的一位,三個(gè)梯度生成3個(gè)8bit的比較結(jié)果;即若梯
度大于門限第i級(jí)門限,但小于或等于該級(jí)門限,則8bit的比較結(jié)果的
0~i-1位均為1,i~7位為0;
(4.2.3)根據(jù)比較結(jié)果即可知道梯度位于哪個(gè)門限區(qū)間內(nèi),由此把該
區(qū)間對(duì)應(yīng)的量化值賦給量化結(jié)果即可得到三個(gè)量化結(jié)果Q_0,Q_1,Q_2;
(4.2.4)梯度修正與符號(hào)判斷:分別判斷三個(gè)梯度量化值Q_0,Q_1,
Q_2是否為負(fù)數(shù),若三個(gè)量化值從左到右第一個(gè)不為0的數(shù)是負(fù)數(shù),那么
就把三個(gè)量化值的絕對(duì)值賦給三個(gè)梯度修正值Q0,Q1,Q2,同時(shí)符號(hào)標(biāo)志
SIGN等于-1,否則直接把三個(gè)量化值依次賦給梯度修正值Q0,Q1,Q2,
同時(shí)符號(hào)標(biāo)志SIGN等于1,SIGN值用寄存器輸出;
(4.2.5)索引地址計(jì)算:把三個(gè)梯度值依Q0,Q1,Q2依次與81、9、
1相乘,再把三個(gè)乘積相加,算出索引值Q,用寄存器輸出至流水線下一級(jí);
同時(shí),寄存器輸出之前,索引值Q直接作用至“上下文參數(shù)RAM”,以數(shù)據(jù)
伴隨的有效信號(hào)為讀使能,讀出索引值Q所對(duì)應(yīng)的A、B、C、N四個(gè)參數(shù);
(4.3)數(shù)據(jù)預(yù)處理:包含上下文參數(shù)C、N選擇,預(yù)測(cè)值修正,殘差
計(jì)算,殘差量化,像素重建,殘差取模以及N參數(shù)更新;
(4.3.1)索引值Q不經(jīng)過(guò)任何計(jì)算直接用寄存器鎖存一級(jí)輸出至下一
級(jí),以供步驟4.4中使用;
(4.3.2)上下文參數(shù)C、N選擇:在步驟4.2中,索引值Q和數(shù)據(jù)有
效信號(hào)作用于“上下文參數(shù)RAM”一周期后,參數(shù)A、B、C、N輸出;根
據(jù)“沖突控制”模塊輸出的“沖突指示信號(hào)”collosion,從步驟4.5回傳
的更新后的參數(shù)C_update、N_update和剛從“上下文參數(shù)RAM”讀出的參數(shù)
C、N當(dāng)中進(jìn)行選擇,輸出需要使用的參數(shù)C_sel、N_sel;當(dāng)collosion
為0時(shí),選擇從“上下文參數(shù)RAM”讀出的參數(shù)C、N,而collosion為1
時(shí),選擇從步驟4.5回傳的更新后的參數(shù)C_update、N_update;參數(shù)選擇
采用組合邏輯實(shí)現(xiàn);參數(shù)A和B不做任何計(jì)算,由寄存器鎖存一級(jí)輸出;
(4.3.3)N參數(shù)更新:根據(jù)JPEG-LS標(biāo)準(zhǔn),使用符號(hào)標(biāo)志SIGN與步驟
“上下文參數(shù)C、N選擇”所獲取的參數(shù)N_sel進(jìn)行N參數(shù)的更新,更新后
得到N_update;當(dāng)N參數(shù)進(jìn)行更新時(shí),若N_sel==RESET條件滿足時(shí),將
N_flag置1,否則置0;根據(jù)JPEG-LS標(biāo)準(zhǔn),上下文參數(shù)更新時(shí),
N_sel==RESET這一條件的滿足與否會(huì)影響參數(shù)A、B的更新選擇,因此
N_flag隨N_update一起通過(guò)寄存器輸出至下一級(jí),以供上下文參數(shù)A、B、
C更新時(shí)使用;N_sel也用寄存器輸出至下一級(jí);
(4.3.4)預(yù)測(cè)值修正:根據(jù)JPEG-LS標(biāo)準(zhǔn),使用符號(hào)標(biāo)志SIGN與步驟
“上下文參數(shù)C、N選擇”所獲取的參數(shù)C_sel對(duì)預(yù)測(cè)值Px進(jìn)行修正,獲得
預(yù)測(cè)修正值Px_c;
(4.3.5)殘差計(jì)算:根據(jù)JPEG-LS標(biāo)準(zhǔn),利用符號(hào)標(biāo)志SIGN、當(dāng)前像
素值Ix與預(yù)測(cè)修正值Px_c運(yùn)算獲得殘差值Errval;
(4.3.6)殘差量化:根據(jù)JPEG-LS標(biāo)準(zhǔn),對(duì)殘差值Errval進(jìn)行量化,
得到殘差量化值Errval_q;
(4.3.7)像素重建:根據(jù)JPEG-LS標(biāo)準(zhǔn),通過(guò)符號(hào)標(biāo)志SIGN、當(dāng)前像
素值Ix、殘差量化值Errval_q以及近無(wú)損度參數(shù)Near值計(jì)算得到像素重建
值Rx,再將像素重建值Rx反饋至上下文建模模塊中,用來(lái)提供步驟4.1中
當(dāng)前像素上下文建模的環(huán)境模板;在無(wú)損壓縮模式下,像素重建值Rx等于
\t原像素值Ix;
(4.3.8)殘差取模:根據(jù)JPEG-LS標(biāo)準(zhǔn),利用殘差取模范圍RANGE對(duì)
殘差量化值Errval_q進(jìn)行取模,使殘差映射到取模范圍內(nèi),得到殘差取模值
Errval_Mod,并用寄存器輸出至下一級(jí);
(4.4)上下文參數(shù)更新,包含兩個(gè)環(huán)節(jié):上下文參數(shù)A、B選擇,上下
文參數(shù)A、B、C更新;
(4.4.1)上下文參數(shù)A、B選擇:根據(jù)“沖突控制”模塊輸出的“沖
突指示信號(hào)”collosion,從步驟4.6回傳的更新后的參數(shù)A_update、
B_update和步驟4.3輸出的參數(shù)A、B當(dāng)中進(jìn)行選擇,輸出需要使用的參數(shù)
A_sel、B_sel;當(dāng)collosion為0時(shí),選擇步驟4.3輸出的參數(shù)A、B,
而collosion為1時(shí),選擇從步驟4.6回傳的更新后的參數(shù)A_update、
B_update;參數(shù)選擇采用組合邏輯實(shí)現(xiàn);
(4.4.2)上下文參數(shù)A、B、C更新:根據(jù)JPEG-LS標(biāo)準(zhǔn),使用殘差
取模值Errval_Mod,選擇后的參數(shù)A_sel、B_sel、C_sel,以及步驟4.3中N
參數(shù)更新后輸出的N_flag信號(hào),采用組合邏輯對(duì)上下文參數(shù)選擇后獲取的
A、B、C參數(shù)進(jìn)行更新計(jì)算(每一個(gè)子塊所對(duì)應(yīng)的近無(wú)損度參數(shù)Near會(huì)伴
隨像素進(jìn)入預(yù)測(cè)編碼流水線中,根據(jù)當(dāng)前使用的近無(wú)損度參數(shù)Near進(jìn)行參
數(shù)更新計(jì)算),得到更新的參數(shù)A_update、B_update、C_update,連同步驟
4.3中輸出過(guò)來(lái)的N_update一起,寫入“上下文參數(shù)RAM”,伴隨的數(shù)據(jù)有
效信號(hào)作為RAM的“寫使能”信號(hào),步驟4.3中輸出的索引值Q作為RAM
的“寫地址”;與此同時(shí),A_update、B_update、C_update、N_update通過(guò)
寄存器輸出至下一級(jí);篩選后的用來(lái)進(jìn)行參數(shù)更新的三個(gè)參數(shù)A_sel、B_sel、
N_sel和殘差取模值Errval_Mod也通過(guò)寄存器輸出至下一級(jí),以供殘差映射
和K值計(jì)算使用;
(4.5)包括主要的兩個(gè)環(huán)節(jié),即殘差映射和K值計(jì)算;
(4.5.1)Stage4輸出的C_update、N_update參數(shù)直接回傳至步驟4.3
\t參與預(yù)處理運(yùn)算中的上下文參數(shù)C、N選擇;A_update、B_update參數(shù)則直
接經(jīng)寄存器輸出至步驟4.6;
(4.5.2)殘差映射:根據(jù)JPEG-LS標(biāo)準(zhǔn),使用殘差取模值Errval_Mod,
選擇后的參數(shù)A_sel、B_sel計(jì)算出映射后的殘差值MErrval,經(jīng)寄存器輸出
至步驟4.6;
(4.5.3)K值計(jì)算:JPEG-LS標(biāo)準(zhǔn)中實(shí)現(xiàn)方法為比較A與
向左移位后的N,當(dāng)A=N時(shí),則K=0;當(dāng)N<A≤(N<<...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:顏露新,張?zhí)煨?/a>,陳立群,桑紅石,鐘勝,李軍,
申請(qǐng)(專利權(quán))人:華中科技大學(xué),
類型:發(fā)明
國(guó)別省市:湖北;42
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。