摘 要: ADV202是美國AD公司開發的實時JPEG2000編解碼" title="編解碼">編解碼芯片。介紹了一種基于ADV202芯片的嵌入式" title="的嵌入式">的嵌入式視頻壓縮系統" title="壓縮系統">壓縮系統,該系統把PAL/NTSC制式的視頻信號壓縮為JPEG2000標準的視頻碼流輸出,具有廣闊的應用前景。重點討論了系統硬件電路設計及軟件流程設計。
關鍵詞: JPEG2000 ADV202 嵌入式 視頻壓縮
國際標準化組織ISO和國際電信聯盟ITU于2000年12月正式推出了JPEG2000標準,該標準采用以離散小波" title="小波">小波變換為主的多解析編碼方法,具有許多優良的特性,然而一直未獲得廣泛的應用。AD公司于2004年推出了能實時壓縮和解壓縮高質量運動圖像和靜止數字圖像的JPEG2000編解碼芯片ADV202。本文基于ADV202設計一個完整的嵌入式視頻壓縮系統,其中包括硬件電路設計和軟件流程設計,該系統具有USB接口,支持熱插拔,無需主機控制。
1 ADV202芯片介紹
ADV202是美國AD公司新近推出的一款用于視頻和高帶寬靜止圖像壓縮的單片JPEG2000(ISO/IEC15444-1圖像壓縮標準)編解碼芯片,是當今市場上惟一具有實時壓縮和解壓縮標準(SD)視頻信號和高清晰度(HDTV)視頻信號的芯片,專利的空間高效遞歸濾波(SURF)技術使其具有低功耗和低成本的小波壓縮。它提供的專用視頻接口可以無縫連接到ITU.R-BT656、SMPTE125M、SMPTE293M[525p]等標準的數字視頻接口,靈活的異步SRAM風格的主機接口允許無縫連接到大多數16/32位的微控制器和ASIC器件。
ADV202的內部功能框圖如圖1所示,輸入的視頻或圖像數據進入視頻接口后經過解交錯傳輸到小波變換引擎中。在小波引擎中,每幀圖像或每個圖塊通過5/3或9/7濾波器分解成許多子帶,生成的小波系數寫入內部寄存器中。熵編碼器將圖像數據編碼為符合JPEG2000標準的數據。內部DMA引擎提供存儲器之間的高帶寬傳輸以及各模塊和存儲器之間的高性能傳輸。內部FIFO提供像素數據、碼流數據、特征數據和輔助數據的存儲空間,既可由外部主機通過標準地址讀寫周期直接訪問,也可以采用DREQ/DACK協議通過DMA方式訪問或專用硬件握手機制訪問。主機接口提供16/32位的控制總線和8/16/32位的數據傳輸總線,用于對內部寄存器的配置、控制和狀態傳遞以及壓縮數據流的傳輸。
2 視頻壓縮系統硬件設計
2.1 系統硬件整體構架
系統硬件整體框架如圖2所示,來自電視機或攝像機的單路PAL/NTSC制式的視頻信號,經過SAA7113編碼為SAV/EAV模式、ITU.R-BT656 YUV4:2:2格式(8位)的視頻信號,由VPO[7..0]傳輸到ADV202的視頻接口。在ADV202內部,視頻信號經過硬件編碼產生.jp2格式的視頻信號,由主機接口D[31..0]輸入到TMS320VC33 DSP。經DSP壓縮后的視頻信號由USB接口芯片USBN9602轉換后通過USB口輸出。另外,DSP還通過數據總線D[31..0]和地址總線A[3..0]對ADV202內部直接及間接寄存器進行配置,加載ADV202編碼模式所需的固件(由AD公司提供),對ADV202編碼參數進行設置。USB口只作為壓縮數據流的輸出口,由DSP完全控制。
2.2 DSP小系統
出于對系統易實現性和性價比的考慮,DSP芯片選擇TI公司的32位高性能數字信號處理器TMS320VC33。TMS320VC33工作在75MHz主頻時,運算能力可達150MFLOPS,可以訪問的總存儲空間為16M×32bit,程序空間、數據空間和I/O空間都包含在整個16M×32bit空間中,且統一編址。片內提供了34K×32bit SRAM,考慮到系統處理對象是視頻信號,要求較大的程序空間和數據空間,片內RAM通常不能滿足系統要求,因而在DSP片外要進行存儲器擴展。
DSP外部擴展了兩片CY7C1041V33(256K×16bit)SRAM和1片SST39VF400A(256K×16bit) FLASH。兩片CY7C1041V33按照數據位擴展方式擴展成為256K×32bit的數據存儲空間,用于存儲壓縮后的視頻數據。DSP工作在微計算機/引導模式(MCBL/=1)下,SST39VF400A用于存儲DSP的引導程序。
2.3 系統時序控制電路
系統時序控制電路由一片Altera EPM7128 CPLD芯片構成,完成的主要功能有:
(1)將DSP通用I/O引腳信號XF1、XF0擴展為I2C總線所需的SCL、SDA信號,完成DSP對SAA7113的初始化設置;
(2)產生ADV202的片選信號和復位信號
,將DSP的讀寫信號R/
擴展為ADV202的讀信號
及寫信號
;
(3)產生DSP外擴存儲器SRAM和FLASH的接口信號:地址譯碼選通信號、寫脈沖信號
、讀信號
等;
(4)產生USBN9602的接口信號:片選信號、讀信號
、寫信號
、地址引腳信號A0。
2.4 USB接口設計
USBN9602是美國國家半導體公司推出的一款專用USB接口芯片,支持USB1.1標準,內部具有較大的FIFO,可以緩存大量數據,從而減輕處理器的負擔。在本系統中,USBN9602通過并行接口與TMS320VC33相連,接口信號由CPLD控制,工作于非總線復用模式(MODE0=0,MODE1=0),連接示意圖如圖3所示。USBN9602操作時序是先往地址寄存器中寫入地址,然后通過數據輸入寄存器和數據輸出寄存器讀寫數據,而地址寄存器和數據寄存器的選擇則是通過A0實現的。
2.5 時鐘信號的設計
本系統選用3片晶振" title="晶振">晶振,其中24.576MHz晶振提供SAA7113所需的外部時鐘,LLC產生的27MHz 時鐘輸出信號提供給ADV202編碼芯片使用;5V供電的15MHz晶振提供給CPLD,并經過CPLD間接提供給DSP使用,從而解決了不同電平之間的匹配問題,DSP內部鎖相環使用×5模式(CLKMD0=CLKMD1=1),工作主頻為75MHz;48MHz晶振提供USBN9602所需的輸入時鐘。在電路板設計中,時鐘信號應盡可能接近相應輸入引腳。
2.6 電源及系統復位電路的設計
本系統需要四種電源供電:5V、3.3V、1.8V和1.5V。其中,5V由系統外部電源提供,3.3V、1.8V和1.5V由TI公司的電源芯片TPS767D301通過5V變換提供。TPS767D301可將5V的電源輸入轉換為3.3V的固定電源輸出和1.5~5.5V的可變電源輸出,同時產生CPLD的復位信號。
3 視頻壓縮系統軟件設計
3.1 系統軟件流程及總體設計
本系統的軟件設計主要分為DSP初始化程序(dspinit.c)、I2C器件SAA7113初始化程序(iic.c)、ADV202初始化程序(init202.c)、DSP主控制程序(dspctl.c)以及USB通訊軟件的設計[5]。這些程序全部在DSP上完成。用C語言開發DSP程序可以縮短開發周期,提高程序開發的效率,也可以使程序的可讀性、可移植性大大提高,并且能為系統的改進和升級換代帶來極大的便利;對于C語言編寫的代碼,采用優化編譯器生成高效率的匯編代碼,可提高程序的運行速度,減少目標代碼的長度。故在系統軟件的總體設計上,采取了以上方法。系統軟件流程圖如圖4所示。
3.2 主要程序實現舉例
ADV202初始化程序(init202.c)主要完成以下功能:
(1)校驗和配置ADV202內部直接寄存器和間接寄存器;
(2)加載編碼模式下ADV202所需的固件程序;
(3)對固件配置寄存器進行配置,設置其工作狀態;
(4)檢驗應用程序ID;
(5)清除中斷標記,使ADV202進入運行狀態。
ADV202初始化流程圖如圖5所示。
本系統具有體積小、實時性好、壓縮信號易恢復等優點,可以廣泛應用于非線性編輯系統、遠程閉路監視系統、視頻信號采集系統、圖像和視頻檔案系統、高質量視頻會議系統等。隨著ADV202的廣泛應用,JPEG2000技術必將成為業界圖像視頻壓縮的主流技術之一。
參考文獻
1 ADV202 JPEG2000 Video Processor User′s Guide(Revision3.0).Analog Devices Inc., June 02, 2005.
2 TMS320VC33 Digital Signal Processor Data Sheet(Literature number:SPRS087D). Texas Instruments Incorporated (TI), February 1999, Revised July 2002
3 SAA7113H 9-bit video input processor [DB/OL]. Philips Semiconductors, July 01,1999
4 USBN9602 (Universal Serial Bus) Full Speed Function Con-troller With DMA Support. National Semiconductor Corpora-tion, November 1998
5 汪春梅,賈紅濤. USB在實時數據采集處理系統中的應用[J]. 上海師范大學學報(自然科學版),2004;33(3):53~57