新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于VW2010的視頻壓縮存儲系統(tǒng)的軟硬件設計

基于VW2010的視頻壓縮存儲系統(tǒng)的軟硬件設計

作者: 時間:2008-07-09 來源:網(wǎng)絡 收藏

0 引言

MPEG-4 (ISO/IEC 14496)是第二代編碼技術制定的國際標準,該標準具有高比、可擴展性和可交互性等優(yōu)點。在MPEG-4應用方面,由于它能以較少的帶寬傳輸高質(zhì)量的畫面,并可將多種多媒體通信加以綜合,所以有著很好的應用前景。為此,本文針對實際需求,提出了采用編解碼芯片為核心的嵌人式MPEG-4音方案,詳盡介紹了原理,給出了芯片的HOST引導模式程序方法。

1硬件設計

1.1 的主要特點

VW2010是VWEB公司開發(fā)的實時MPEG-4音壓縮/解壓芯片(CODEC)。該芯片具有以下主要特點:

◇片內(nèi)集成有3個信號處理/控制單元,其中包括一個編碼(壓縮)器、一個視頻解碼(解壓)器和一個片內(nèi)CPU(內(nèi)部擴展了一個音頻編碼DSP、一個音頻解碼DSP、一個多路復合單元和一個多路解復合單元);

◇具有可編程、高性能和低功耗特點,芯片內(nèi)的每個信號處理/控制單元都由一個RISC處理器和專用的硬件加速器構成,此外,片內(nèi)視頻編解碼器中還集成了一個專用的SDRAM;

◇在系統(tǒng)上電/復位時,視頻編解碼器的固件程序可由外部主機(host)載人各自專用的SDRAM,而片內(nèi)CPU的固件程序則可載人VW2010外掛的SDRAM;

◇芯片的主機接口采用標準PCI接口,符合PCI局部總線規(guī)范2.2;

◇為了使編解碼性能達到最佳,VW2010內(nèi)部集成有一個雙通道DMAC,系統(tǒng)host可直接通過主機接口對VW2010進行控制,MPEG數(shù)據(jù)流則采用DMA方式傳輸。

◇提供有與PHILIPS公司兼容的I2C總線,可方便地對外圍芯片進行控制。

1.2VW2010的壓縮卡硬件設計

本系統(tǒng)集成了2塊VW2010芯片,可以同時對2路音視頻流進行編碼,并可與IDE硬盤進行無縫連接。具體的系統(tǒng)硬件框圖如圖1所示。

圖1中,復合視頻信號先經(jīng)過視頻接收電路進行前端處理(包括阻抗匹配、限幅和鉗位),然后通過視頻解碼電路產(chǎn)生符合VW2010視頻接口標準的ITU656信號。視頻解碼電路的核心是一個視頻解碼芯片,該芯片可對視頻信號進行A/D轉(zhuǎn)換和編碼,以產(chǎn)生ITU656標準的并行數(shù)字電視信號。本文選取SAA7113作為視頻解碼芯片。

模擬音頻信號經(jīng)過模擬音頻接收電路進行前端處理后,通過音頻ADC電路產(chǎn)生符合VW2010音頻接口標準的I2S信號。

VW2010是壓縮卡的核心處理芯片,該芯片除可完成音、視頻信號的編碼外,還可提供對解碼器和ADC的控制(通過I℃總線),其編碼產(chǎn)生的MPEG流可通過芯片內(nèi)部集成的HOST接口和CDO接口輸出。VW2010必須在微碼和固件代碼下工作,VW2010提供有從ROM引導、從ICI引導、從主機(Host)引導三種引導方式。本文使用的方案是從主機(Host)引導。該方式不同于一般市面上的產(chǎn)品所采用的ROM引導模式。它只進行編碼,設計時可通過設置相關的寄存器來將微代碼下載到編碼SDRAM中。

系統(tǒng)中的FPGA用來進行總線擴展和數(shù)據(jù)緩存。它一方面可通過HOST-intel總線接口與2片VW2010芯片連接,以用來下載固件代碼和VW2010的參數(shù)配置,同時通過CDO接口接收VW2010的編碼視頻流并進行緩存;另一方面,F(xiàn)PGA也可通過IDE接口和硬盤進行連接,以用來進行編碼數(shù)據(jù)的

DSP是本系統(tǒng)的核心控制芯片,可配合FPGA模擬HOST-intel總線接口和IDE接口,從而控制VW2010固件代碼的下載和硬盤的讀寫,同時建立FAT32格式的文件目錄系統(tǒng)。本設計中的DSP芯片選用TI公司的TMS320VC5416。

2系統(tǒng)軟件設計

本系統(tǒng)的軟件主要分為3大模塊:VW2010控制模塊、硬盤控制模塊和數(shù)據(jù)傳輸模塊。VW2010控制模塊主要用于下載固件代碼和配置參數(shù),是啟動VW2010正常工作的基礎,因此也是程序設計的核心模塊。本文將著重討論如何通過HOST-intel總線接口控制VW2010芯片,以進行固件代碼的下載和參數(shù)的配置。

2.1 固件代碼的下載

VW2010需要在固件的支持下工作。固件主要有2部分,一是boot.sre,二是pscodec.sre(PS流)或tscodec.sre(TS流)。HOST接口通過訪問相關的寄存器和編碼SDRAM來下載固件。對寄存器和SDRAM的訪問在有關文獻中已有詳細討論,在此不再贅述。具體的固件下載流程如下:

(1)設置寄存器REG_DHIU3,使VW2010處于固件下載狀態(tài);

(2)設置寄存器REG_DHIU6,設置VW2010處于VW2005工作模式,并使VW2010的系統(tǒng)時鐘為162 MHz;因為本系統(tǒng)只進行編碼壓縮,所以應設置寄存器REG_DHIU6,使VW2010處于VW2005工作模式,這樣,VW2010就會自動分配編碼SDRAM的地址,以用于存放固件代碼。

(3)設置編碼軟件寄存器;

(4)設置解碼軟件寄存器;

(5)通過向0x3F1800地址發(fā)送0x0,清除FirmwareReadyCode;

(6)下載boot.sre和pscodec.sre或tscodec.sre;此處要把sre文件中的數(shù)據(jù)部分按順序?qū)懭刖幋aSDRAM中的相應地址處。

(7)設置REG_DHIU3來啟動VW2010;

(8)通過讀取SDRAM中的FirmwareReadyCode區(qū)來確認固件已經(jīng)下載并準備好;Firmwar-eReadyCode是編碼SDRAM的0x3F1800地址中內(nèi)容的高16位,如果讀到0x0A00,則說明固件已經(jīng)下載成功。

2.2參數(shù)配置

因為固件代碼所對應的參數(shù)設置是某種模式的默認值,所以要通過參數(shù)配置來調(diào)整某些參數(shù)以適合自己的電路設計。參數(shù)配置可通過發(fā)IOCTL碼進行。VW2010采用共享存儲區(qū)機制來接收HOST命令并返回命令執(zhí)行結果。HOST與VW2010進行通信的共享存儲區(qū)位于編碼SDRAM中地址3F1800處,共128字節(jié);而VW2010與HOST進行通信的共享存儲區(qū)則位于編碼SDRAM中的地址3F1880處,也是128字節(jié)。共享存儲區(qū)的格式如表1和2所列。

在發(fā)送IOCTL命令前,必須首先發(fā)送OPEN命令。OPEN命令可用來打開設備以獲得"devicehandle"和輔助參數(shù)區(qū)的首地址等參數(shù)。

要發(fā)送的IOCLT命令全部發(fā)送完以后,還必須發(fā)送CLOSE命令來釋放"device handle"。

所有的IOCTL命令都是在OPEN命令和CLOSE命令之間發(fā)送的,VW2010提供的IOCTL碼共32位寬,由3部分組成。第一部分是固件類型,可形成IOCTL碼的高8位;第二部分是操作類型(分為讀和寫),可作為IOCTL碼的[23..16]位;第三部分是要發(fā)送的IOCTL命令。其參數(shù)配置流程如圖2所示。發(fā)送IOCTL命令的詳細過程如下:

(1)讀共享存儲區(qū)的0x3F1884至0x3F1894中的內(nèi)容,并在0x3F1888處存放返回碼,0x3F188C存放返回的"handle",0x3F1890處存放輔助參數(shù)區(qū)地址。如果返回碼的數(shù)值是0,則說明無錯,這時,DSP將存儲這些返回的參數(shù)以備后用;

(2)讀REG_INT1,如果REG_INT1=0x01,則表示設備已準備好接受IOCTL命令;如果設備準備好,則繼續(xù)下一步;否則,重復檢查Firmwar-eReadyCode和REG_INT1,直到設備準備好;

(3)寫IOCTL命令碼到共享存儲區(qū)0x3F1800地址的CMD區(qū),并寫中斷指示碼到共享存儲區(qū)0x3F1800地址的Int Flag區(qū)(0=關中斷,1=開中斷)。然后把從第一步中OPEN命令返回的"de-vice handle"寫到0x3F180C處,再把從第一步中OPEN命令返回的輔助參數(shù)區(qū)的地址"x"寫到0x3F1810處;

(4)把要發(fā)送的IOCTL碼參數(shù)個數(shù)寫到輔助參數(shù)區(qū)的"x"地址處,把要發(fā)送的IOCTL碼寫到輔助參數(shù)區(qū)的"x+4"地址處,再把要發(fā)送的IOCTL碼參數(shù)寫到輔助參數(shù)區(qū)的"x+8"地址處;

(5)給寄存器REG_DHIU5寫0x0,以發(fā)送一個中斷給VW2010。在處理IOCTL命令前,芯片會鎖定semaphore寄存器(REG_INT1=0x0),處理完IOCTL命令后,芯片則會釋放semaphore寄存器(REG_INT1=0x01);

(6)處理中斷。

3 結束語

本文在介紹VW2010內(nèi)部結構的背景下,提出了采用DSP作為外部主機的方法。該方法沒有采用VW2010的SDK中所采用的利用PC作為主機的壓縮編碼系統(tǒng)設計方案。文章從系統(tǒng)的工作原理及流程到系統(tǒng)的設計,特別是VW2010固件代碼的下載和參數(shù)的配置,都進行了詳細的闡述。測試結果表明,該設計方案簡單可行,可以在低比特率的條件下完成良好的圖象壓縮編碼和存儲。



評論


相關推薦

技術專區(qū)

關閉