嵌入式視頻圖像壓縮模塊的設(shè)計與實現(xiàn)
摘要: 本文提出了一種基于SAA7111芯片和ZR36060芯片的靜態(tài)視頻圖像壓縮設(shè)計方案,并對其影響因素進行了分析。
關(guān)鍵詞: 嵌入式; 圖像壓縮; JPEG
前言
視頻圖像監(jiān)控技術(shù)已經(jīng)得到了廣泛應(yīng)用,但是在一些特殊場合,比如遠程車輛、船舶、機車等移動目標的圖像監(jiān)控,由于受到無線通信網(wǎng)絡(luò)數(shù)據(jù)傳輸速率以及通信費用等問題的限制,實時圖像監(jiān)控難以實現(xiàn)。采用靜態(tài)圖像采集壓縮技術(shù)通過控制命令來獲取圖像信息,生成JPEG圖片,可實現(xiàn)對移動目標的隨機圖像監(jiān)控,甚至在有些場合,根本不需要實時圖像監(jiān)控。由此看來,研究和設(shè)計滿足工業(yè)級要求的靜態(tài)圖像壓縮模塊對于特殊場合的視頻圖像監(jiān)控有非常重要的意義。
靜態(tài)圖像壓縮技術(shù)及模塊功能分析
JPEG (聯(lián)合圖像專家組)是一個由ISO和IEC兩個組織機構(gòu)聯(lián)合組成的一個專家組,負責制定靜態(tài)的數(shù)字圖像數(shù)據(jù)壓縮編碼標準,因此又稱為JPEG標準。JPEG是一個適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標準,既可用于灰度圖像又可用于彩色圖像。JPEG壓縮技術(shù)十分先進,它用有損壓縮方式去除冗余的圖像數(shù)據(jù),在獲得極高的壓縮率的同時能展現(xiàn)十分豐富生動的圖像,換句話說,就是可以用最少的磁盤空間得到較好的圖像品質(zhì)。而且 JPEG是一種很靈活的格式,具有調(diào)節(jié)圖像質(zhì)量的功能,允許用不同的壓縮比對文件進行壓縮,支持多種壓縮級別。
由于JPEG格式圖像數(shù)據(jù)量小,設(shè)計以JPEG壓縮為核心的嵌入式視頻圖像壓縮模塊將能夠滿足目前窄帶無線信道圖像監(jiān)控的需求。通過對目前市場的研究和分析,該圖像壓縮模塊主要實現(xiàn)以下基本功能:四路視頻通道(輸入信號為PAL制式);壓縮格式為JPEG;圖像壓縮格式可調(diào);圖像壓縮比可調(diào);接口通信速率可調(diào);對比度可調(diào);亮度可調(diào);飽和度可調(diào)。
嵌入式視頻圖像壓縮模塊設(shè)計
嵌入式視頻圖像壓縮模塊主要實現(xiàn)對模擬視頻信號的A/D轉(zhuǎn)換、JPEG壓縮編碼、接口協(xié)議處理、芯片工作狀態(tài)自檢?;究驁D如圖1所示。
圖1 嵌入式視頻圖像壓縮模塊框圖
SAA7111與ATmega8515的接口電路及工作模式設(shè)置
SAA7111是Philips(現(xiàn)NXP)公司的視頻圖像處理芯片,它可以對PAL制式、NTSC制式的復合視頻信號(CVBS)或S-Video方式的Y/C分量信號和復合全電視信號進行采集編碼,輸出數(shù)據(jù)格式可以是8位的CCIR-656、12位的411 YUV、16位的422 YUV。ATmega8515通過I2C總線來獲取SAA7111內(nèi)部的狀態(tài)信息以及設(shè)置SAA7111的工作模式。在SAA7111初始化時,對前16個寄存器采用如下的配置參數(shù):
const uchar SAA7111_Init[] ={0x00, 0x00, 0xc0, 0x33, 0x00, 0x00, 0xEB, 0xE0, 0x00, 0x41, 0x80, 0x47, 0x40, 0x00, 0x01, 0x00, 0xC8, 0x0C, 0x00}
使輸出數(shù)據(jù)為8位的CCIR-656格式。在正常工作過程中,可以對其0x02、0x0A、0x0B、0x0C寄存器設(shè)置來選擇輸入通道、亮度、對比度、飽和度。
ZR36060接口電路
ZR36060是ZORAN公司的視頻信號實時壓縮/解壓縮芯片。在進行壓縮時,ZR36060將接收CCIR-656數(shù)字視頻信號編碼為JPEG碼流輸出;在解壓縮時,它將接收到的JPEG碼流解碼為CCIR-656數(shù)字視頻信號輸出。作為嵌入式視頻圖像壓縮模塊的核心芯片,ZR36060要和SAA7111、ATmega8515、CPLD、SRAM相連,由于ZR36060是專用的數(shù)字視頻處理芯片,其接口數(shù)據(jù)速率比較高,因此在設(shè)計時,要充分考慮到連線間的干擾問題以及器件的相關(guān)特性。接口電路連接示意圖如圖2所示。
圖2 ZR36060接口電路示意圖
ZR26060的接口分三個部分,分別為視頻接口、代碼與主機接口和控制接口。視頻接口的功能是完成輸入/輸出視頻信號;代碼與主機接口的功能是通過主機完成對芯片的控制字的初始化,并且在主動方式下JPEG壓縮碼流也經(jīng)過CODE[7:0]輸入/輸出;控制接口則完成一系列簡單的工作順序控制操作。
兩種視頻同步方式:同步主模式和同步從模式。同步主模式指芯片內(nèi)部產(chǎn)生所有的控制和定時信號;同步從模式則是芯片作為從機同步于一個外部的視頻源。ZR26060的視頻接口與SAA7111可以通過編程配置實現(xiàn)ZR36060和多種視頻編解碼器的連接,當在同步主模式下輸出視頻同步信號,在同步從模式下輸入視頻同步信號。同步信號有行同步信號HSYNC、場同步信號VSYNC 和奇偶場指示信號FI。視頻接口還輸出或輸入的數(shù)字視頻信號。本設(shè)計將ZR36060初始化為同步從模式,因此視頻同步信號必須依賴與SAA7111。由于本方案涉及到數(shù)據(jù)總線共享問題,所以在ZR36060、ATmega8515與SRAM相連接時,還需要74HC245芯片及相應(yīng)的片選控制信號。
圖像存儲及控制接口的CPLD設(shè)計
ZR36060被設(shè)置為主編碼模式,采用8位并行數(shù)據(jù)線CODE[7..0],將壓縮后的JPEG圖片數(shù)據(jù)送給SRAM,同時在CWE引腳送出寫信號。由于ZR36060和MCU都要對SRAM進行操作,并且圖片數(shù)據(jù)超過1K,因此要采用EPM7032S CPLD構(gòu)造16位地址發(fā)生器。EPM7032S根據(jù)MCU送來的ZR_SEL選擇信號,確定地址觸發(fā)信號是來自MCU的讀寫信號線還是來自ZR36060的寫信號線,并在清零信號線MCU_CLR無效的情況下開始產(chǎn)生地址信號,其仿真時序如圖3所示。
圖3 基于EPM7032S圖像存儲及控制接口的仿真波形圖
嵌入式視頻圖像壓縮模塊影響因素分析
SAA7111的晶體振蕩器對圖像壓縮效果的影響
SAA7111采用24.576MHz晶體振蕩器,要求頻率穩(wěn)定度在50ppm內(nèi),頻率的溫度漂移不能超過20ppm,負載電容至少為8pF。由于SAA7111本身工作狀態(tài)及輸出信號頻率完全依賴于外部晶體振蕩器的振蕩頻率,因此,晶體振蕩器的性能及相關(guān)連接電路對SAA7111的工作狀態(tài)起著決定性作用。
在具體設(shè)計過程中,可以采用無源晶體振蕩器,也可以采用有源晶體振蕩器,無源晶體振蕩器需要相應(yīng)的輔助電路來消除一些諧波和干擾,因此電路比較復雜,而且要經(jīng)過具體調(diào)試才能確定外圍元器件的最終參數(shù)。采用有源晶體振蕩器可以簡化外圍電路,而且穩(wěn)定度比較高,調(diào)試方便。
當晶體振蕩器工作頻率漂移比較大或帶有一些諧波時,將會導致壓縮后的JPEG圖片顏色發(fā)生變化,比如彩色圖片變?yōu)楹诎讏D片,或者圖片的整個背景顏色發(fā)生變化。因此在應(yīng)用SAA7111芯片進行模擬視頻信號采集和編碼時,要確保晶體的各項指標符合相應(yīng)的規(guī)格要求。
電源設(shè)計對圖像壓縮過程的影響
ZR36060圖像壓縮芯片對經(jīng)過SAA7111采集編碼的視頻信號進行壓縮,形成JPEG圖片并保存到SRAM中。由于在整個圖像壓縮過程中,ZR36060需要超過200mA的工作電流,因此,和ZR36060相關(guān)電源電路的設(shè)計直接影響壓縮是否成功。
在設(shè)計過程中,對ZR36060電源引腳要接100μF/16V的電解電容和100nF的去耦電容,并且要確保電源能夠快速提供超過200mA的電流。如果電源設(shè)計不當,會造成圖像壓縮失敗或在壓縮小圖片時成功,大圖片時失敗。其主要原因就是由于圖像壓縮過程中ZR36060需要吸收大電流。
ZR36060參數(shù)設(shè)置及問題分析
ZR36060參數(shù)設(shè)置包括兩個過程:參數(shù)寫入內(nèi)部寄存器和參數(shù)加載到內(nèi)部電路。只有參數(shù)正確寫入到內(nèi)部寄存器后,才能加載成功,否則芯片一直會處于忙狀態(tài)。
ZR36060內(nèi)部寄存器設(shè)置包括以下幾項:const uchar zr36060_COM[];const uchar zr36060_APP[];const uchar zr36060_DHT[];const uchar zr36060_DQT[];const uchar zr36060_DRI[];const uchar zr36060_SOS[];const uchar zr36060_SOF[];const uchar zr36060_GCR[];const uchar DQT_SEL[];const uchar Picture_format[]。其中對圖像格式的設(shè)置有兩部分寄存器,一部分起始地址為:0x42,共八個寄存器,用來確定圖像的活動區(qū)域,另一部分起始地址為:0x65,共四個寄存器,用來確定圖像像素。如果這兩個區(qū)域的設(shè)置數(shù)值不滿足相關(guān)的計算關(guān)系式,那么所有參數(shù)加載將會失敗,此時檢測0x01寄存器的busy位,會發(fā)現(xiàn)芯片一直處于忙狀態(tài)。
結(jié)語
嵌入式視頻圖像壓縮模塊操作方便,協(xié)議簡潔,可直接嵌入到大多數(shù)無線視頻圖像監(jiān)控系統(tǒng)中,解決了無線視頻監(jiān)控系統(tǒng)中對視頻圖像信息處理的難題。采用本設(shè)計方案的視頻圖像壓縮模塊已廣泛應(yīng)用于GPS車載導航監(jiān)控、電力設(shè)備監(jiān)控、基站設(shè)備監(jiān)控、環(huán)境監(jiān)控等眾多監(jiān)控行業(yè)。
參考文獻:
1.SAA7111 Enhanced Video Input Processor(EVIP) Datasheet, May 1998 ,Philips Semiconductors
2.ZR36060 Integrated JPEG Codec Datasheet, January 1998, ZORAN Corporation
3.ATmega8515 Datasheet, December 2003,Atmel Corporation
4.MAX7000 Programmable Logic Device Family Datasheet, August 2000,Altera Corporation
評論