概述
近年來,數(shù)字視頻監(jiān)控技術(shù)得到了越來越廣泛的應(yīng)用;同時,,對視頻圖像的分辨率,、壓縮編碼的實時性也提出了更高的要求。針對上述需求,,本文介紹的網(wǎng)絡(luò)視頻服務(wù)器,,采用ADI公司的Blackfin系列的高端BF561雙核DSP芯片,,完成了達(dá)到720×576 D1分辨率的PAL制視頻信號的采集,、MPEG-4格式壓縮等運(yùn)算量大及實時性要求高的功能,發(fā)揮了BF561雙核處理器運(yùn)算功能強(qiáng)大的優(yōu)勢,。在處理壓縮后視頻碼流的本地存儲,、網(wǎng)絡(luò)傳輸?shù)裙δ軙r又使用了BF537 DSP處理器;并且,在BF537處理器中選用了嵌入式uCLinux操作系統(tǒng),,更利于充分發(fā)揮網(wǎng)絡(luò)視頻服務(wù)器的文件系統(tǒng)操作和網(wǎng)絡(luò)服務(wù)的效能,。
系統(tǒng)設(shè)計
Blackfin系列DSP是ADI公司推出的專為滿足目前音頻、視頻和通信應(yīng)用等方面需求的嵌入式處理器,,該系列DSP處理器在嵌入式網(wǎng)絡(luò)多媒體中的應(yīng)用有著顯著的優(yōu)點:性價比高,、體積小、功耗低和外圍接口電路設(shè)計簡單,。
ADSP-BF561處理器是Blackfin系列中的高性能產(chǎn)品,,針對于多媒體和通信方面的各種應(yīng)用。該器件的核心由兩枚獨立的Blackfin BF533 DSP處理器組成,。這些Blackfin處理器將藝術(shù)級的dual-MAC處理引擎,,簡潔的RISC式微處理器指令集的優(yōu)點,以及單指令多數(shù)據(jù)(SIMD)多媒體能力結(jié)合起來,,形成了一套獨特的指令集結(jié)構(gòu),。ADSP-BF561集成了一套通用的數(shù)字圖像處理外圍設(shè)備,為數(shù)字圖像處理和多媒體應(yīng)用創(chuàng)建了一個完整的系統(tǒng)級片上解決方案[1],。
ADSP-BF537也是Blackfin系列家族中的一員,,但其集成了ADSP-BF561處理器沒有的網(wǎng)絡(luò)接口,在網(wǎng)絡(luò)視頻服務(wù)器中很方便的完成網(wǎng)絡(luò)功能,。系統(tǒng)的硬件組成如圖1所示,。
ADSP-BF561和ADSP-BF537處理器在網(wǎng)絡(luò)視頻服務(wù)器中分別完成如下功能:
ADSP-BF561完成網(wǎng)絡(luò)視頻服務(wù)器視音頻采集和MPEG-4視頻壓縮編碼;
ADSP-BF537完成網(wǎng)絡(luò)視頻服務(wù)器網(wǎng)絡(luò)接口、本地文件存儲功能;
ADSP-BF561和ADSP-BF537處理器,,都具有豐富的外部擴(kuò)展接口,。
ADSP BF561的視音頻接口
網(wǎng)絡(luò)視頻服務(wù)器的視頻解碼器采用ADI公司的專用視頻解碼芯片ADV7183;音頻解碼器同樣采用ADI公司的音頻解碼芯片ADV1836A。
ADSP-BF561提供兩個并行接口(PPI1和PPI2),。每個PPI接口包括一個專用時鐘引腳,,多達(dá)3個幀同步引腳和多達(dá)16個數(shù)據(jù)引腳。該P(yáng)PI接口可以直接與并行A/D和D/A轉(zhuǎn)換器,、符合ITU-601/656標(biāo)準(zhǔn)的視頻編碼和解碼器,,以及其他通用外設(shè)連接。
通過BF561處理器的PPI外圍接口電路,,視頻解碼芯片ADV7183與BF561的并行PPI2接口連接,,并且PPI2接口需要設(shè)置為專用的ITU-656模式;在ITU-R 656模式下,PPI2接口提供8或10位視頻數(shù)據(jù)的接收和解析,,支持內(nèi)嵌導(dǎo)言控制信號和同步信號的片內(nèi)解碼,。
ADSP-BF561提供2個雙通道同步串行端口(SPORT0和SPORT1)來完成串行和多處理器的通信工作,。SPORT有以下特點:支持I2S功能;每個SPORT都有2套獨立的發(fā)送和接收引腳,支持8通道I2S立體聲;每個端口都有一個數(shù)據(jù)寄存器,,用以同其它部件間進(jìn)行雙向數(shù)據(jù)傳輸;每個發(fā)送或接收端口可以使用外部串行時鐘或者使用自己產(chǎn)生的時鐘;每個SPORT都可以自動發(fā)送和接收多個緩沖區(qū)的數(shù)據(jù)信息 [3],。
網(wǎng)絡(luò)視頻服務(wù)器中,音頻解碼芯片AD1836A則使用BF561處理器的其中一個SPORT端口連接,,完成音頻解碼和傳輸操作,。ADSP BF561的視音頻接口電路如圖2所示。
ADSP BF561的視音頻壓縮算法
網(wǎng)絡(luò)視頻服務(wù)器的視音頻壓縮算法采用ADI公司提供的MPEG-4 SP/ASP編碼庫實現(xiàn),。MPEG-4 SP/ASP是由ISO/IEC 14496-2描述的MPEG-4 的簡單類(SP)和高級簡單類(ASP),。其中,SP用于下一代便攜式終端和窄帶互聯(lián)網(wǎng),。而ASP增加若干工具,,編碼效率提高了1.5~2倍;它們兩個均在市場上獲得越來越多的接受。該編碼庫提供一系列對Blackfin系列DSP的視音頻編碼的支持,,可以在ADSP BF561上實現(xiàn)D1分辨率的實時視頻圖像的編碼,,并且支持完全動態(tài)的參數(shù)配置,用戶可在系統(tǒng)運(yùn)行時根據(jù)場景和網(wǎng)絡(luò)帶寬的變化改變編碼的碼率,、幀率,、關(guān)鍵幀間隔、量化值等等[4],。
值得提出的是,,對于雙核的ADSP BF561處理器來說,在開發(fā)時需投入大量的精力進(jìn)行兩個處理器之間的任務(wù)調(diào)度和通信處理,。而ADI公司提供的MPEG-4 SP/ASP編碼庫則提供了對ADSP BF561雙核協(xié)同工作的支持,,該視頻編碼庫在調(diào)度ADSP BF561處理器的雙核協(xié)同工作的流程如圖3所示。
ADSP BF561在處理需要編碼的圖像資源時,,雙核之間可以采用采用對稱負(fù)載模式和非對稱負(fù)載兩種模式進(jìn)行;對稱負(fù)載就是把需要壓縮的視頻圖像平均分為上下兩個半幀進(jìn)行壓縮(例如:PAL制D1圖像分為720×288兩個部分);本文采取的是非對稱負(fù)載模式,,如圖3所示,這是由于核A還需要處理其他的功能,,本系統(tǒng)中約需耗費150MIPS的指令周期,,所以可動態(tài)分配一些核A的編碼工作給核B完成,這就是所謂的非對稱負(fù)載模式,。
ADSP BF561有通過sicb_sysr提交中斷和shared memory中信號量兩種方式實現(xiàn)同步的方式,。而此處BF561雙核算法中采取的是第二種方式,來實現(xiàn)ADSP BF561處理器雙核之間視頻壓縮時的同步,。
ADSP BF561與BF537的PPI數(shù)據(jù)傳輸接口
ADSP BF561和ADSP BF537處理器之間的通訊連接,,利用DSP芯片提供的PPI接口完成。區(qū)別于視頻解碼芯片采用專用的ITU-656模式,,在此處的通訊連接使用的是通用的PPI模式,。使用兩個芯片的PPI 1接口完成,,連接的電路圖如圖3所示。
圖3中,,PPI1 CLK為專用的時鐘引腳,利用BF5611的TIMER1產(chǎn)生PPI的時鐘信號,,而PPI1 SYNC1~3用于產(chǎn)生同步信號,,從而完成數(shù)據(jù)的高速傳輸。
ADSP BF537網(wǎng)絡(luò)接口
網(wǎng)絡(luò)傳輸接口是網(wǎng)絡(luò)視頻服務(wù)器必需的接口單元,,在BF537處理器內(nèi)部集成了一個網(wǎng)絡(luò)控制芯片,,因此只需外部提供100M以太網(wǎng)物理層接口即可完成一個網(wǎng)絡(luò)接口的硬件設(shè)計,網(wǎng)絡(luò)接口芯片選用LAN83C185,,與BF537的連接電路如圖4所示,。
通過該網(wǎng)絡(luò)接口,網(wǎng)絡(luò)視頻服務(wù)器實現(xiàn)了點播,、組播和本地存儲視頻的FTP下載等網(wǎng)絡(luò)功能,。
ADSP BF537的嵌入式操作系統(tǒng)
完成網(wǎng)絡(luò)視頻服務(wù)器的壓縮后視頻碼流的本地存儲、網(wǎng)絡(luò)傳輸?shù)裙δ艿腁DSP BF537處理器,,選用的操作系統(tǒng)是uClinux,。uClinux是一種與UNIX系統(tǒng)兼容、開放源代碼的操作系統(tǒng),。它集成了標(biāo)準(zhǔn)Linux操作系統(tǒng)的穩(wěn)定性,、強(qiáng)大網(wǎng)絡(luò)功能和出色的文件系統(tǒng)等主要優(yōu)點。對比其他常用的操作系統(tǒng),,它具有對多種文件系統(tǒng)的支持能力,、內(nèi)嵌了TCP/IP協(xié)議,可以借鑒Linux豐富的資源,,對于包含網(wǎng)絡(luò)和文件系統(tǒng)等處理的復(fù)雜應(yīng)用,, uClinux具有相當(dāng)優(yōu)勢。
使用uClinux操作系統(tǒng)進(jìn)行開發(fā)時,,無法像傳統(tǒng)的Linux開發(fā)那樣實現(xiàn)本機(jī)開發(fā),、本機(jī)調(diào)試和本機(jī)運(yùn)行的“native”的方式完成;通常采用交叉編譯模式進(jìn)行。
通過網(wǎng)上能下載到的移植在BF537上的Linux內(nèi)核和uClinux的軟件包,,因為Linux是一個開放源代碼的操作系統(tǒng);這也是選擇uClinux的最大優(yōu)勢,。軟件包中包含了Linux內(nèi)核、庫和應(yīng)用程序等,。開發(fā)人員可任意對Linux內(nèi)核進(jìn)行裁減,,來定制自己的Linux內(nèi)核的行為和特性,重新進(jìn)行編譯,。
BF537操作系統(tǒng),,也可以選擇ADI公司提供的嵌入式操作系統(tǒng),,但在實現(xiàn)本地存儲的文件系統(tǒng)、FTP下載等功能時,,會有很大的難度和工作量,。
結(jié)語
本設(shè)計利用ADI公司的Blackfin系列的ADSP BF561和ADSP BF337處理器設(shè)計的網(wǎng)絡(luò)視頻服務(wù)器,對高分辨率的視頻圖像實現(xiàn)了MPEG-4格式的實時編碼,、壓縮;同時提供了功能強(qiáng)大的網(wǎng)絡(luò)視頻服務(wù),。
Blackfin系列DSP是功能強(qiáng)大的嵌入式處理器,在多種領(lǐng)域都有很好的應(yīng)用前景,,本文的網(wǎng)絡(luò)視頻服務(wù)器只是其一個具體的應(yīng)用,。本文中提到的DSP間通信和ADSP BF561的雙核調(diào)度等技術(shù)點,在針對更高分辨率和更高幀率的視頻圖像的壓縮處理設(shè)計中,,應(yīng)該具有很好的研究和應(yīng)用價值,。
參考文獻(xiàn):
[1] 陳 峰. Blackfin系列DSP原理與系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社, 2004
[2] Analog Devices Inc. ADSP-BF561 Blackfin Processor Hardware Reference Rev3.0[M].2004
[3] Analog Devices Inc. Blackfin Embedded Processor ADSP-BF537 Rev B[M]. 2006
[4] Analog Devices Inc. MPEG-4 SP/ASP Encoder Developer’s Guide Rev2.2.0[M].2008
[5] uClinux. http//www.uclinux.org[R/OL]
[6] Analog Devices Inc. uClinux在Blackfin處理器上的應(yīng)用[J].世界電子元器件,,2005(1):92-96