新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VW2005的MPEG-4音視頻壓縮卡的設(shè)計(jì)

基于VW2005的MPEG-4音視頻壓縮卡的設(shè)計(jì)

——
作者:西北工業(yè)大學(xué) 余建宇 李勇 侯顏平 時間:2006-07-29 來源:電子設(shè)計(jì)應(yīng)用 收藏

摘  要:本文提出了一種基于VW2005芯片的音視頻壓縮卡的設(shè)計(jì)方案,包括硬件設(shè)計(jì)和Windows下設(shè)備驅(qū)動程序的設(shè)計(jì)。該方案較其它基于DSP編碼或軟件編碼的方案在性能上有很大的提高。
關(guān)鍵詞:MPEG-4;VW2005;USB2.0;音視頻壓縮

    由于MPEG-4標(biāo)準(zhǔn)具有出色的壓縮速率和良好的圖像效果,目前無論是壓縮電影、視頻電話,還是數(shù)碼攝像機(jī)、數(shù)碼相機(jī),都將MPEG-4作為首選的視頻壓縮標(biāo)準(zhǔn)。

    本文設(shè)計(jì)的壓縮卡基于MPEG-4音視頻編碼技術(shù),具有USB2.0接口,支持熱插拔,在實(shí)現(xiàn)上采用硬壓縮,所用壓縮芯片為Vweb公司的VW2005。

硬件設(shè)計(jì)
VW2005芯片的主要特點(diǎn)
    VW2005是Vweb公司開發(fā)的實(shí)時MPEG-4音視頻編碼芯片。該芯片將未壓縮的ITU-R.BT.656數(shù)字視頻信號壓縮為MPEG-1/2/4或H.263視頻格式,將兩路獨(dú)立通道的I2S數(shù)字音頻信號壓縮為MPEG-1/2、MP3、AAC或AC3音頻格式。該芯片既可以輸出用于網(wǎng)絡(luò)領(lǐng)域的傳輸流(TS),也可以輸出用于存儲的程序流(PS)。

該芯片具有以下主要特點(diǎn):
1. 片內(nèi)集成2個信號處理/控制單元,包括一個嵌入式處理器RISC/DSP(內(nèi)部擴(kuò)展一個音頻編碼DSP),用于總體控制VW2005、音頻編碼及A/V多路復(fù)用,還有一個視頻編碼器。
2. 具有2個數(shù)據(jù)輸出端:壓縮數(shù)據(jù)輸出端(CDO)和主機(jī)/PCI輸出端,但同一時刻只能使用其中一個。
3. 主機(jī)/PCI接口用于與外部處理器、存儲器及其它設(shè)備的連接,有三種工作模式:16位Motorola模式、16位Intel模式和PCI目標(biāo)機(jī)模式,可由上電/復(fù)位來選擇。
4. 外部ROM用于存儲引導(dǎo)程序及內(nèi)部寄存器的初始值,可由內(nèi)部RISC處理器和外部主機(jī)處理器使用。
5. 提供了與Philips公司的I2C接口功能類似的內(nèi)部設(shè)備通信接口(ICI),方便對外圍設(shè)備的控制。提供了12個通用I/O口(GPIO),可以用作普通I/O口或配置成特殊功能的接口。

壓縮卡硬件設(shè)計(jì)原理
    壓縮卡的原理框圖如圖1所示。SAA7113完成系統(tǒng)前端數(shù)字圖像的采集,與VW2005可以直接無縫連接,無需其它邏輯電路。SAA7113是一個9位可編程視頻解碼芯片,片外只需提供一個24.576MHz的晶振,片內(nèi)時鐘產(chǎn)生器自動產(chǎn)生內(nèi)部電路所需的工作頻率。SAA7113在CY7C68013的I2C總線的時序控制下,將采集到的ITU656 YUV4:2:2格式(8位)的數(shù)字圖像數(shù)據(jù)以27MB/s的速率通過片外數(shù)據(jù)總線VPO0~VPO7傳輸?shù)絍W2005,完成數(shù)字圖像的MPEG-4編碼。

    AK5355完成系統(tǒng)前端音頻信號的采集,與VW2005可以實(shí)現(xiàn)無縫連接,無需其它邏輯電路。AK5355是用于數(shù)字音頻系統(tǒng)的雙聲道單片品型16位ADC,信噪比為91dB,動態(tài)范圍為91dB,其內(nèi)部嵌有增益放大器和數(shù)字高通濾波器,模擬信號單端輸入,無需外接濾波器,通過將DIF引腳置高使之具有I2S的音頻數(shù)據(jù)格式輸出,本系統(tǒng)將AK5355設(shè)置為受控模式,即時鐘信號MCLK、BCLK和LRCK分別由VW2005的音頻系統(tǒng)時鐘輸出amclk_enc、sck_enc和ws_enc提供。

    8MB的SDRAM芯片MT48LC2M32B2具有32位寬的數(shù)據(jù)總線,用于存儲輸入VW2005的音視頻原始數(shù)據(jù)及壓縮過程中產(chǎn)生的中間數(shù)據(jù)和壓縮結(jié)果數(shù)據(jù)。本系統(tǒng)壓縮后的數(shù)據(jù)由VW2005內(nèi)部的多路復(fù)用器控制并從主機(jī)接口輸出。

    2MB的Flash芯片AT49BV1614用于存儲VW2005內(nèi)部各模塊所有的微碼(microcode)及引導(dǎo)程序,上電復(fù)位后,F(xiàn)lash中存儲的數(shù)據(jù)通過總線讀入VW2005的內(nèi)部寄存器中,之后寄存器的值可由軟件讀取。

    本系統(tǒng)中主機(jī)/PCI接口工作于16位Motorola模式,可以與CY7C68013無縫連接。CY7C68013作為一款USB2.0接口芯片,集成了USB2.0收發(fā)器、串行接口引擎、增強(qiáng)的8051微處理器和可編程的外圍接口。主機(jī)通過調(diào)用SDK中提供的API函數(shù),能方便地完成對VW2005的初始化和配置,并編寫USB設(shè)備驅(qū)動程序。VW2005通過主機(jī)接口將壓縮后的MPEG-4音視頻流傳輸?shù)浇涌谛酒珻Y7C68013,通過USB2.0接口能實(shí)時地將數(shù)據(jù)流傳送到主機(jī)。


圖1  壓縮卡原理框圖


圖2 系統(tǒng)驅(qū)動程序軟件結(jié)構(gòu)

圖3 壓縮卡程序流程圖

Windows下VW2005設(shè)備驅(qū)動程序設(shè)計(jì)
驅(qū)動程序總體設(shè)計(jì)
    設(shè)備驅(qū)動程序軟件結(jié)構(gòu)如圖2所示。應(yīng)用程序由用戶根據(jù)不同的應(yīng)用場合來編寫,它只與Vweb USB驅(qū)動程序通信,而不與硬件內(nèi)部的固件或微碼通信。在Windows下,應(yīng)用程序只需三個函數(shù)與驅(qū)動程序通信:CreatFile()用來打開一個基于VW2005的板卡;CloseHandle用來關(guān)閉一個基于VW2005的板卡;DeviceIoControl用來對VW2005板卡進(jìn)行各種控制和設(shè)置。為了支持VW2005芯片的運(yùn)行,Vweb公司提供了用于系統(tǒng)設(shè)計(jì)的USB驅(qū)動API、USB驅(qū)動、芯片級API、固件及微碼。上電/復(fù)位后,固件從ROM中導(dǎo)入SDRAM,VW2005的RISC處理器有片內(nèi)高速緩存(如dmem)用于執(zhí)行固件程序,微碼下載到特殊的內(nèi)部RISC引擎,每個RISC引擎都有片內(nèi)RAM和高速緩沖,用于存儲和執(zhí)行寫入內(nèi)部的微碼。

主機(jī)與VW2005的通信
    VW2005內(nèi)部的編碼存儲器(encoder SDRAM)中有兩個雙端口、128字節(jié)的共享存儲區(qū),作為主機(jī)與VW2005的通信媒介。

    用于主機(jī)到VW2005通信的128字節(jié)的共享存儲區(qū)(以下簡稱host_VW_SM)位于encoder SDRAM中地址0x3F1800處。Host_VW_SM格式如表1所示。

表1 主機(jī)到VW2005的共享存儲區(qū)格式

表2  VW2005到主機(jī)的共享存儲區(qū)格式

    VW2005在Firmware ReadyCode中寫入0x0A00,表示準(zhǔn)備接收命令;CMD為命令碼,分別是讀數(shù)據(jù)(CMD=1)、發(fā)IOCTL碼(CMD=2)、寫數(shù)據(jù)(CMD=3)、打開命令(CMD=4)和關(guān)閉命令(CMD=5);Int Flag為中斷標(biāo)識,Int Flag=1則VW2005執(zhí)行完命令后產(chǎn)生一個中斷,Int Flag=0則不產(chǎn)生中斷;Device Handle由打開命令從固件中獲得;Paremeters為附加參數(shù)。

    用于VW2005到主機(jī)通信的128字節(jié)的共享存儲區(qū)(以下簡稱VW_host_SM)位于encoder SDRAM中地址0x3F1880處。VW_host_SM格式如表2所示。

    ACK/NACK的含義是:如果Int Flag=1,命令CMD執(zhí)行成功后則為ACK,失敗則為NACK,并將錯誤代碼保存在Return Code字段。Return Code的含義是:無錯誤產(chǎn)生則為0,有錯誤產(chǎn)生則為錯誤代碼。其它參數(shù)與host_VW_SM類似,不再贅述。

信號燈

     由于共享存儲區(qū)是臨界資源,所以必須提供一種機(jī)制,用以保證主機(jī)和VW2005使用它們時是互斥的。為此,VW2005分別給host_VW_SM和VW_host_SM提供了兩個硬件信號燈,分別由寄存器REG_INT1和REG_INT2的最低位實(shí)現(xiàn)。驅(qū)動程序通過REG_INT1檢查固件是否為來自主機(jī)的下一個命令作好準(zhǔn)備,通過REG_INT2告知固件主機(jī)已處理完成前一個命令。VW2005為信號燈定義了兩種操作:
寫操作:向REG_INT1或REG_INT2的最低位寫入1,釋放共享存儲區(qū)。
讀操作:返回REG_INT1或REG_INT2的最低位的值,同時將該位清零。

壓縮卡程序流程圖
    壓縮結(jié)果是傳輸流時的程序流程如圖3所示。
   
    主機(jī)只需在編碼開始前對壓縮卡進(jìn)行初始化操作,之后的編碼壓縮完全由VW2005芯片獨(dú)立完成,這樣大大降低了壓縮卡對主機(jī)CPU的要求。

結(jié)語
    本文詳細(xì)介紹了基于VW2005芯片的MPEG-4音視頻壓縮卡的設(shè)計(jì)方案,包括硬件設(shè)計(jì)和Windows下設(shè)備驅(qū)動程序的設(shè)計(jì)。該系統(tǒng)采用專用MPEG-4音視頻編碼芯片VW2005,較其它基于DSP編碼或軟件編碼的方案在性能上有很大的提高,采用USB2.0接口,可以滿足不同傳輸速率的要求,能廣泛地應(yīng)用于遠(yuǎn)程音視頻監(jiān)控、網(wǎng)絡(luò)數(shù)字?jǐn)z像機(jī)和高清晰數(shù)字電視等多個領(lǐng)域。

參考文獻(xiàn)
1 VW2005 A/V/S Encoder Chip Hardware Description Manual (Revision 0.95) [DB/OL]. Vweb corporation, December 15, 2003
2 SAA7113H 9-bit video input processor [DB/OL]. Philips Semiconductors, July 01,1999
3 AK5355 low power 16bit Δ∑ ADC [DB/OL]. AKM corporation,2001,08
4 CY7C68013 EZ-USB FX2 USB Microcontroller [DB/OL]. Cypress Semiconductor Corporation, December 19, 2002





評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉