
4 JPEG-LS圖像編碼
系統(tǒng)采集的原始圖像相關性大、數(shù)據(jù)量大,需要進行圖像壓縮。醫(yī)學圖像要求將圖像質量放在首位,因此必須采用無損壓縮算法。本系統(tǒng)采用靜態(tài)圖像無損壓縮技術JPEG-LS,它是目前無損壓縮算法中性能較好的一種算法。JPEG-LS是ISO/ITU組織提出的最新的連續(xù)靜態(tài)圖像近無損壓縮標準。該標準采用LOCO-I(Low Complexity Lossless Compression for Images)核心算法,建立簡單的上下文模型,在低復雜度的情況下實現(xiàn)了高壓縮率;同時,算法對圖像逐行進行壓縮,降低了系統(tǒng)對圖像緩沖區(qū)的要求。
4.1 JPEG-LS工作原理簡介
如圖5所示,JPEG-LS的編碼過程主要包括預測、上下文建模和熵編碼。核心算法LOCO-I采用鄰域非線性預測和Golomb熵編碼。

上下文建模是JPEG-LS編碼的基礎,使用的建模方法是基于對上下文的認識。上下文首先根據(jù)圖5中a、b、c、d處像素值決定對x處像素足采用常規(guī)模式編碼還是采用游程模式編碼。當從上下文估計的連續(xù)像素在近似無失真編碼要求的容限內幾乎完全相同時,選擇游程模式;否則,選擇常規(guī)模式。
常規(guī)模式下首先完成預測。預測器對位于a、b、c等3個鄰近像素的重建組值Ra、Rb、Rc進行綜合,形成x像素的預測值Px,即:

預測誤差是x像索的實際值和預測值的差分。通過一個與上下文有關的項對預測誤差進行修正,以補償預測中的系統(tǒng)偏移。如果采用近無損編碼,則要對預測誤差進行量化,所允許的最大誤差用一個“NEAR"參數(shù)表示。對已修正的預測誤差進行Golomb編碼。Golomb編碼相當于幾何分布下的Huffman編碼。它依賴于上下文,而前面編碼的預測誤差也是以相同的上下文為基礎。
為進一步提高數(shù)據(jù)壓縮效率,JPEG-LS引入了游程模式。此時編碼過程直接跳過預測和誤差編碼程序:編碼器從x處開始對像素值和a處像素重建值相同的一系列連續(xù)像素進行計數(shù),即統(tǒng)計游程的長度。當遇到一個具有不同值的像素或當前行的行尾時,游程終止。該游程長度經(jīng)過一個專門的性能更好、更適用的Golomb編碼擴展程序來編碼。
4.2 JPEG-LS的移植問題
本系統(tǒng)使用HP實驗室提供的開源JPEG-LS開發(fā)包。完整的JPEG-LS開發(fā)包支持多種顏色模型,如多平面壓縮、逐行或者逐點等壓縮方式。本系統(tǒng)考慮到ARM系統(tǒng)資源的限制,只裁減了其中的逐行單文件壓縮方式。原始開發(fā)包運行在Linux或者Windows平臺上,移植過程最主要的工作包括3點。
①裁減不必要的功能,如原始開發(fā)包中對多圖像編碼的支持。
②針對系統(tǒng)設計移植后的接口,如本模塊移植后,只提供以下幾個接口:
◇jls_global_init,全局初始化函數(shù),計算查詢表等,只需要啟動時調用一次;
◇jls_image_init,每幀圖像開始壓縮時都要調用一次的初始化;
◇jls_encode_one_line,壓縮一行圖像。
③對原開發(fā)包中使用的動態(tài)內存分配需要移植,解決的方案有2個:
◇開發(fā)一個簡單的內存管理模塊;
◇手動分配內存。
考慮到源碼包中使用的動態(tài)內存不多,系統(tǒng)采用第2種方案。在移植過程中,建議先在PC上分配好一大塊內存,然后,給開發(fā)包中需要分配的地方手動分配。在PC上調試通過之后,就可以直接在ARM上面使用了。
5 調試及優(yōu)化方法
5.1調試方法
嵌入式系統(tǒng)的調試是一個很繁瑣而復雜的過程。在調試之前劃分好模塊,可以大大提高調試效率;另外為了調試,還需要添加一些計劃項目之外的調試工具。
本系統(tǒng)的調試工作分為3個部分。
(1)藍牙無線鏈路層調試
藍牙無線鏈路層的調試可以直接借助PC上很多現(xiàn)有的串口工具來實現(xiàn)。
(2)CMOS攝像頭調試
CMOS攝像頭的調試有兩個部分:SCCB配置時序、RGB圖像數(shù)據(jù)時序。
一般的處理器都不帶SCCB接口,因此要用處理器的口線模擬SCCB時序。此時的調試一般都是通過示波器觀察模擬的時序,看足否符合芯片手冊上的要求。為了驗證是否正確,一般可先讀一個指定的寄存器(這些寄存器都有出廠默認值);然后寫一個數(shù)據(jù),讀取出來驗證是否吻合。
RGB圖像數(shù)據(jù)時序由CPLD產(chǎn)生,此時的調試需要ARM來配合。本系統(tǒng)在調試時,在PC上編寫了一個簡單的串口接收程序,ARM把SRAM中的圖像數(shù)據(jù)通過串口發(fā)送給該PC,PC上的程序把這些原始的RGB數(shù)據(jù)插值并顯示出來,從而可以得知CPLD的時序是否正確。當然,調試時序時,示波器仍然是必不可少的工具。
(3)JPEG-LS算法調試
JPEG-LS算法的調試分為兩個步驟:PC上的算法驗證和目標板上的調試。
PC上的算法驗證使用VC6.O模擬目標板上的運行環(huán)境,測試目標板上的各個功能接口。本部分的驗證代碼可供下載。
目標板上調試時,還是要借助串口,把壓縮的圖像和原始圖像通過串口發(fā)送至PC。Pc上的JPEG-LS解碼程序解碼壓縮圖像,然后與原始圖像對比,從而找出算法中的錯誤。
5.2 優(yōu)化方法
為提高圖像傳輸?shù)膸,本系統(tǒng)主要采用了2種優(yōu)化方法。
(1)硬件優(yōu)化
硬件優(yōu)化主要是在CPLD采集數(shù)據(jù)時,使用雙緩沖,使得連續(xù)采集下一幀圖像和傳輸上一幀圖像可以并行,從而提高系統(tǒng)的





