摘 要: 在視頻壓縮編碼算法的硬件實時實現(xiàn)中,針對專用芯片系統(tǒng)不夠靈活、無法進行算法升級與更新等問題,利用雙Nios Ⅱ處理器,主處理器完成管理功能和處理人機交互界面,協(xié)處理器做圖像的編解碼以及完成與計算機之間的數(shù)據(jù)傳輸,通過軟硬件設(shè)計開發(fā),實現(xiàn)實時圖像采集系統(tǒng)。該方案算法易于升級,而且硬件系統(tǒng)也易于做相應的升級和更新,降低了系統(tǒng)成本。
關(guān)鍵詞: Nios Ⅱ處理器; 嵌入式系統(tǒng); 圖像采集; 圖像壓縮
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)08?0109?03
0 引 言
嵌入式系統(tǒng)是當前最熱門的概念和應用最廣泛的技術(shù)之一[1?4]。嵌入式處理器是嵌入式系統(tǒng)的核心,有軟核和硬核之分,其中嵌入式處理器軟核以Altera公司開發(fā)的第一代Nios及第二代Nios Ⅱ為先進代表[1?3,5]。從未來電子系統(tǒng)設(shè)計技術(shù)走勢上看,以嵌入式軟核處理器為主要應用的SoPC技術(shù)更具發(fā)展性和前瞻性[2]。
對視頻圖像進行數(shù)字化的存儲,或更通俗地稱為數(shù)字錄像,是當前業(yè)界的熱點之一[6?7],具有巨大的市場需求??梢詮V泛應用于廠礦、企業(yè)、公路交通、政府機構(gòu)、學校等需要實時監(jiān)控的領(lǐng)域,此外也可以應用于家用消費品領(lǐng)域和軍事領(lǐng)域,例如數(shù)字錄像機等。較之以前的模擬方式存儲,數(shù)字錄像有著許多不可替代的優(yōu)點,同時也帶來了技術(shù)上需要解決的一些問題。高效的視頻圖像壓縮算法及其硬件實時實現(xiàn)是解決視頻圖像數(shù)字化存儲問題的核心所在。
通常的數(shù)字錄像一般都采用專用芯片來完成視頻壓縮編碼算法的硬件實時實現(xiàn)。采用專用芯片方法的最大優(yōu)點是實現(xiàn)相對簡單,而且隨著芯片批量的增加,單片價格會大幅下降。
作為一個成熟和長期的產(chǎn)品,這種方法不失為一種最佳的方案。比如電視臺等對圖像質(zhì)量要求很高的應用場合,基于MPEG?2編碼/解碼芯片的解決方案可以提供良好的性價比,并在較長的一段時間內(nèi)都能滿足應用的需求。但采用專用芯片最大的缺點是系統(tǒng)不夠靈活,無法進行算法的升級與更新。只有當某一種視頻壓縮編碼算法相對成熟,為業(yè)界普遍接受后,相應的專用芯片才會出現(xiàn)。
這一方面大大延長了產(chǎn)品的上市時間;另一方面,用戶原有的基于老的視頻壓縮編碼標準的系統(tǒng)可能都會被淘汰,對用戶的投資是一個損失。特別是在科技飛速發(fā)展的今天,新技術(shù)與新標準不斷涌現(xiàn),技術(shù)的更新周期大大加快,單純采用專用芯片的解決方案其生命周期勢必會縮短,廠家的技術(shù)風險則會越來越大。
雖然DSP+ARM系統(tǒng)架構(gòu)也可以進行算法的更新與升級,但是算法設(shè)計的靈活性還遠不如Nios Ⅱ系統(tǒng),并且其硬件無法升級和更新,開發(fā)成本也遠高于Nios Ⅱ系統(tǒng)。
1 系統(tǒng)功能描述
因為本系統(tǒng)不僅要完成大量的控制功能,而且還要實現(xiàn)實時數(shù)字信號處理(DSP),所以采用雙Nios Ⅱ處理器。
其中一個Nios Ⅱ軟核處理器作為主處理器,完成管理功能和處理人機交互界面;
另一個Nios Ⅱ軟核處理器作為協(xié)處理器,做圖像的編解碼,同時完成與計算機之間數(shù)據(jù)傳輸。
1.1 圖像采集、壓縮和存儲
圖像采集采用Philips半導體公司的多制式TV解碼芯片SAA7114H將CCD輸出的模擬圖像數(shù)字化,然后在主Nios Ⅱ處理器的控制下形成系統(tǒng)總線,將圖像存入大容量緩存SDRAM1中。
SDRAM1中的數(shù)據(jù)通過FIFO傳送給從Nios Ⅱ處理器進行靜態(tài)圖像壓縮,然后寫入SDRAM2緩存,最后把壓縮后的圖像再存儲到硬盤中保存。圖像壓縮由從Nios Ⅱ處理器完成,使用Nios Ⅱ片上系統(tǒng)(SoC)開發(fā)包來實現(xiàn)JEPG編碼器/解碼器,自定制DCT和逆DCT指令。
1.2 視頻回放
視頻回放包括監(jiān)視器回放和計算機回放。監(jiān)視器回放是把保存在硬盤中的數(shù)字圖像通過監(jiān)視器回放回放出來。
用戶邏輯把硬盤中的數(shù)據(jù)讀出來回寫到SDRAM2中,然后從Nios Ⅱ處理器進行解壓縮,解壓縮后的圖像數(shù)據(jù)送給數(shù)字視頻編碼芯片SAA7121將數(shù)字圖像轉(zhuǎn)換成復合視頻信號送到監(jiān)視器上顯示。
計算機回放是通過USB口把圖像傳送到計算機上顯示,用戶邏輯把硬盤中的數(shù)據(jù)讀出來回寫到SDRAM2中,然后從Nios Ⅱ處理器進行解壓縮,解壓縮后的數(shù)據(jù)送給USB芯片CY7C68013,再發(fā)送到計算機上。
2 系統(tǒng)設(shè)計
與傳統(tǒng)嵌入式系統(tǒng)設(shè)計不同,Nios Ⅱ系統(tǒng)的開發(fā)分硬件開發(fā)和軟件開發(fā)2個流程[3?4],硬件開發(fā)過程包括由用戶定制系統(tǒng)硬件構(gòu)建,然后由計算機完成系統(tǒng)硬件系統(tǒng)和對應的開發(fā)軟件系統(tǒng)生成;軟件設(shè)計則與傳統(tǒng)方法比較接近。
2.1 硬件設(shè)計
系統(tǒng)采用雙Nios處理器分別處理不同的任務,由通信模塊實現(xiàn)系統(tǒng)兩個處理器之間的握手。兩片SDRAM分別做兩個處理器的大容量數(shù)據(jù)緩沖。
FIFO是兩個Nios處理器數(shù)據(jù)交換通道。40 GB大容量存儲介質(zhì)(可以擴展更大容量)用來存儲壓縮后的圖像數(shù)據(jù)。FLASH I用來存放主處理器的用戶程序和FPGA配置數(shù)據(jù);FLASH Ⅱ存放協(xié)處理器用戶程序。E2PROM用來存放系統(tǒng)重要參數(shù)和視頻編解碼芯片SAA7114H和SAA7121的配置參數(shù)。
系統(tǒng)框圖如圖1所示。
2.2 軟件設(shè)計
系統(tǒng)軟件包括兩個部分,一部分是主處理器的系統(tǒng)軟件;另一部分是協(xié)處理器的系統(tǒng)軟件,兩者通過通信協(xié)議實現(xiàn)握手。
2.2.1 主處理器系統(tǒng)軟件流程
硬件系統(tǒng)中定義了5個功能鍵:上翻、下翻、確定、取消和復位。主處理器系統(tǒng)軟件流程如圖2所示。
2.2.2 協(xié)處理器系統(tǒng)軟件流程
協(xié)處理器完成圖像JEPG編解碼和數(shù)據(jù)傳輸功能,軟件流程如圖3所示。
3 結(jié) 語
本系統(tǒng)采用雙Nios Ⅱ軟核處理器對視頻圖像進行壓縮和存儲,定制了DCT和逆DCT指令,不僅算法易于升級,而且硬件系統(tǒng)也易于做相應的升級和更新,縮短開發(fā)周期,并且降低了系統(tǒng)成本。
參考文獻
[1] 潘松,黃繼業(yè),曾毓.SoPC技術(shù)實用教程[M].北京:清華大學出版社,2005.
[2] 彭澄廉,周博,邱衛(wèi)東,等.挑戰(zhàn)SoC:基于Nios的SoPC設(shè)計與實踐[M].北京:清華大學出版社,2004.
[3] 郭書軍.嵌入式處理器原理及應用:Nios系統(tǒng)設(shè)計和C語言編程[M].北京:清華大學出版社,2004.
[4] 任愛峰.基于FPGA的嵌入式系統(tǒng)設(shè)計[M].西安:西安電子科技大學出版社,2004.
[5] Anon. Nios Ⅱ processor reference handbook [EB/OL]. [2005?05?22]. http://www.altera.com.
[6] 單洋,張小進,周敏,等.基于嵌入式ARM平臺下視頻圖像壓縮的實現(xiàn)[J].福建電腦,2010(4):17?18.
[7] 曾霞霞,張小進.嵌入式系統(tǒng)視頻圖像壓縮技術(shù)的研究[J].唐山學院學報,2010(6):56?59.