系統結構 整個(gè)系統主要由n臺PC基站、m×n臺手持移動(dòng)終端(每臺PC基站負責m臺手持移動(dòng)終端)組成。其中PC基站以USB2.0為核心,通過(guò)藍牙無(wú)線(xiàn)傳輸協(xié)議實(shí)現手持移動(dòng)終端與基站的高速通信。手持移動(dòng)終端以TMS320VC5402為核心實(shí)現系統控制,以TMS320C6713為處理器實(shí)現JPEG2000圖像編碼算法。 系統硬件設計 硬件結構 如圖1所示,整個(gè)系統采用類(lèi)似于PC104的棧式結構,主要由LM9627攝像頭、圖像處理子板和系統控制主板三個(gè)部分組成。LM9627模塊設計為了提高系統的可擴展性,本系統把攝像頭作為單獨的一個(gè)模塊設計,主要包括模擬部分、數據接口和控制接口三個(gè)部分。其中J2為數據接口,連接到圖像處理子板的FPGA上;J1為控制接口,連接到系統控制主板上。圖像處理子板圖像處理子板由采集控制協(xié)處理器FPGA、C6713和兩片“乒乓”工作的SRAM組成。兩片視頻采集FPGA芯片EP1C6Q240分別采集奇數幀和偶數幀(每幀包含奇數場(chǎng)和偶數場(chǎng))圖像,每個(gè)FPGA對LM9627的視頻流進(jìn)行格式分析,將相應的RGB分量轉換為YUV分量,并以4:1:1的格式存儲在SRAM內。兩片SRAM以“乒乓”的方式工作,即同一時(shí)刻一片用于采集視頻圖像,另一片用做DSP的圖像緩沖區。兩片C6713實(shí)現復雜的JPEG2000壓縮算法。為了后續的擴展,使得C6713能夠處理更大尺寸的圖像,每片DSP擴展16MB的SDRAM,SDRAM以100MHz的頻率工作,滿(mǎn)足圖像壓縮過(guò)程中大量數據交換的要求。 系統控制主板 系統控制主板以DSP C5402為核心處理器,主要負責三個(gè)任務(wù):通過(guò) 控制LM9627攝像頭;讓多塊圖像處理子板協(xié)調工作,通過(guò)MailBox—FIFO讀取它們的壓縮結果;將讀取的壓縮結果按照藍牙協(xié)議發(fā)送到PC基站。為了滿(mǎn)足高的數據交換速度,主處理器TMS320VC5402以100MHz工作,一邊通過(guò)MailBox—FIFO讀取壓縮結果,一邊將讀取的壓縮結果按照藍牙協(xié)議發(fā)送到PC基站,從而實(shí)現JPEG2000的實(shí)時(shí)壓縮與解碼顯示。 系統軟件設計 圖像采集軟件設計為了讓系統做到實(shí)時(shí),可通過(guò)LM9627的I2C控制總線(xiàn)讓它工作在隔行掃描方式,則輸出640×480分辨率的圖像數據。而場(chǎng)頻,則:幀頻 (隔行掃描),行頻。本文采用Verilog HDL語(yǔ)言,實(shí)現了LM9627的實(shí)時(shí)圖像采集。C6713上JPEG2000算法設計本系統的JPEG2000編碼算法在C6713上的開(kāi)發(fā)包括兩個(gè)階段。 算法實(shí)現第一階段: 用C語(yǔ)言模擬DSP的JPEG2000算法,以判斷代碼的正確性,驗證JPEG2000算法的復雜度、可靠性,以及JPEG2000自身的壓縮性能。本系統的JPEG2000編碼器包括小波變換(wavelet)、熵編碼(MQenc)、碼率控制和打包(rateallocation)三個(gè)主要模塊。LM9627輸出為RGB,把它轉化為Y:U:V=4:1:1的視頻數據流,分別對三個(gè)分量進(jìn)行DC位移、小波變換、熵編碼,然后將三個(gè)分量所有碼塊的編碼流根據碼率控制要求進(jìn)行分層組織,其中包括碼流截斷操作,編碼器的輸出即是打包后的分層位流。進(jìn)行DC電平位移(預處理)的目的是為了在解碼時(shí)能夠從有符號的數值中正確恢復重構無(wú)符號采樣值。傳統小波變換的運算量相當大,而且往往將8位圖像數據變換為浮點(diǎn)型,在編碼中引入量化失真,不利于圖像數據的無(wú)損壓縮,因此JPEG2000主要采用基于UMDFB(抽2取1濾波器組)提升小波算法。其優(yōu)點(diǎn)在于速度快、運算復雜度低、所需的存儲空間少,而且得到的小波系數與使用傳統小波變換得到的結果相同。 JPEG2000選用兩種濾波器:LeGall5/3濾波器和Daubechies9/7濾波器?紤]到本系統的實(shí)時(shí)性要求以及無(wú)損壓縮需求,選用5/3小波運算。當小波分解級數提高的時(shí)候分解系數的能量更為集中,但小波分解級數的提高會(huì )使編碼效率有所下降,對于本系統,4CIF(704×576)分辨率采樣圖像進(jìn)行5級小波分解,CIF(352×288)圖像進(jìn)行4級小波分解就足夠 了。由于采用整型模式運算,所有的量化步長(cháng)均被置為1,即量化過(guò)程可以忽略。多分辨率支持可通過(guò)小波變換來(lái)實(shí)現,多失真度支持則可通過(guò)熵編碼來(lái)解決。 傳統Huffman編碼采取依次對每個(gè)系數進(jìn)行熵編碼的方式;JPEG2000編碼系統則是將小波變換后的子帶劃分成小的碼塊,并將碼塊中的小波系數組織成若干位平面進(jìn)行編碼。以“位平面”為編碼元,有兩點(diǎn)好處:可以更好地利用圖像局部的統計特性,為隨機獲取圖像壓縮位流提供支持;有助于提高壓縮碼流的抗誤碼性能。在進(jìn)行塊編碼時(shí),JPEG2000強調多截斷點(diǎn)的支持,截斷點(diǎn)越多,表明圖像可提供更多的質(zhì)量選擇。如果對每個(gè)碼塊僅進(jìn)行位平面編碼,那么對于數據最高位數為N的塊,最多可得到N個(gè)截斷點(diǎn)。很多時(shí)候這種截斷是粗糙的而且截斷點(diǎn)數目過(guò)少。為了獲得更多的截斷點(diǎn),EBCOT引入“編碼通道”的概念,將每個(gè)位平面進(jìn)一步分成子位平面(編碼通道)。在JPEG2000編碼系統中使用三個(gè)編碼通道:有效性通道、幅度細化通道和清除通道。這樣對某個(gè)碼塊Bi來(lái)說(shuō),可能的截斷點(diǎn)可以有3N個(gè)。進(jìn)行位平面編碼時(shí),JPEG2000采用的是快速自適應二進(jìn)制算術(shù)編碼。 算法實(shí)現第二階段 編寫(xiě)JPEG2000匯編代碼,并抽出對性能影響比較大的代碼段進(jìn)一步優(yōu)化。TMS320C67l3基于TI的VLIW技術(shù),利用VLIW結構設計程序可以充分利用DSP多個(gè)功能單元并行工作的特性。DSP的每一個(gè)通道都有四個(gè)功能單元(L、S、M、D),每個(gè)功能單元負責完成一定的邏輯或者算術(shù)運算,另外A、B兩個(gè)通道的互訪(fǎng)可以通過(guò)交叉單元1x、2x完成。TM320C6713的大部分指令都可在單周期內完成,可以直接對8/16/32位數據進(jìn)行操作。同時(shí),它最多可以有8條指令并行執行;所有指令均可條件執行。 以上所有特點(diǎn)提高了指令的執行效率、減小了代碼長(cháng)度、提高了編碼效率。C6713只有兩個(gè)D單元負責數據存取,在一個(gè)時(shí)鐘周期中最多有兩條數據存取指令并行執行,并且從存儲區取數據的LDB/LDH/LDW指令有4個(gè)時(shí)鐘周期的延時(shí),嚴重影響了CPU的效率。為此在編碼時(shí)應盡量減少從存儲區中取數據的次數。 例如在小波變換中,我們在對SRAM里的8位采樣值數據進(jìn)行取操作(LDB)時(shí),可以充分利用C6713的32位寄存器,一次從存儲區中取地址相鄰的4個(gè)8位數(用32位操作指令LDW),然后分別進(jìn)行運算,這樣就充分利用了CPU的資源,減少了4倍的數據存取量。流水線(xiàn)操作是DSP實(shí)現高速度、高效率的關(guān)鍵技術(shù)之一。當一條指令的處理已經(jīng)準備好后到流水線(xiàn)的下一級,但是那一級卻還沒(méi)有準備接收新的輸入時(shí),流水線(xiàn)沖突就不可避免。 流水線(xiàn)沖突可以分為三大類(lèi):跳轉沖突、寄存器沖突和存儲器沖突。為解決流水線(xiàn)沖突問(wèn)題,在使用匯編語(yǔ)言時(shí)需要特別注意C6000指令的延遲情況,有些指令并不是立刻就能得到結果。此外,為了保證代碼效率,必須提前知道每一條指令的運行周期數,并提前安排該指令或重新調整指令順序。只有盡量將這些指令的前后指令放在它們所需的延遲間隙內并行執行,才能達到減少等待周期、提高程序效率的效果。經(jīng)過(guò)C語(yǔ)言模擬算法到全匯編實(shí)現的優(yōu)化,然后再對匯編代碼進(jìn)行優(yōu)化,使得系統的性能大大提高。 基站的設計 PC基站主要由藍牙接收和上位機JPEG2000解碼兩個(gè)部分組成,其原理如圖2所示。而上位機解壓軟件主要包括LM9627傳感器設置和圖像采集控制,前者主要發(fā)送從地址和設置值給終端,終端通過(guò) 設置LM9627;后者控制系統的圖像采集分辨率和壓縮比。 圖2 基站設計 測試結果主觀(guān)圖像質(zhì)量比較由于采取了上述技術(shù),理論上JPEG2000應提供更好的性能和更多的功能,下面通過(guò)幾組對比數據加以驗證。用作參考的JPEG算法是當前業(yè)界硬件平臺上使用最廣泛的壓縮算法,測試圖片為24位真彩色lenna圖。 實(shí)驗采用的壓縮性能度量是峰值信噪比(PSNR):PSNR反映的是圖像信噪比變化情況的統計平均,它是目前廣泛應用的衡量圖像主觀(guān)質(zhì)量的方法。由表1的數據可以得出以下結論:在較高壓縮比率情況下,JPEG2000的信噪比均高出JPEG 6~9dB;在高分辨率情況下,JPEG2000的信噪比值下降度低于碼率下降度,這意味著(zhù),分辨率越高,越能體現JPEG2000的高壓縮比性能。當信噪比低于26dB時(shí),JPEG的重構圖由于嚴重的馬賽克效應已經(jīng)無(wú)法分辨,而此時(shí)的JPEG2000重構圖像雖然在細節部分已經(jīng)有所損失,但是圖像輪廓仍舊比較明晰。表中“—”表示此時(shí)圖像質(zhì)量已經(jīng)很低,計算的PSNR值不再具有實(shí)際意義。系統處理速度本系統在系統控制主板DSP—VC5402的控制下,讓兩塊圖像處理子板穩定可靠地并行工作,具體測試結果如表2所示。 結語(yǔ) 本系統以低成本實(shí)現了高質(zhì)量的圖像壓縮功能,具有廣泛的應用價(jià)值。主要應用領(lǐng)域可概略分成兩部分:一為傳統的JPEG市場(chǎng),像打印機、掃描儀和數碼相機等,一為新興的應用領(lǐng)域,像網(wǎng)絡(luò )傳輸、無(wú)線(xiàn)通信和醫療圖像等。由于早先的Motion JPEG不提供無(wú)損模式,未能廣泛應用到視頻編碼領(lǐng)域。而本系統所采用的JPEG2000算法結合DSP系統的高效率處理性能,能夠很好地把靜態(tài)圖像壓縮技術(shù)引入視頻編碼領(lǐng)域。 |