范海震
概述
近年來,數(shù)字視頻監(jiān)控技術(shù)得到了越來越廣泛的應(yīng)用:同時,對視頻圖像的分辨率、壓縮編碼的實時性也提出了更高的要求。針對上述需求,本文介紹的網(wǎng)絡(luò)視頻服務(wù)器,采用ADI公司的Blackfin系列的高端BF561雙核DSP芯片,完成了達到720×s76D1分辨率的PAL制視頻信號的采集、MPEG-4格式壓縮等運算量大及實時性要求高的功能,發(fā)揮了BF561雙核處理器運算功能強大的優(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-BFS61處理器是Blackfin系列中的高性能產(chǎn)品,針對于多媒體和通信方面的各種應(yīng)用。該器件的核心由兩枚獨立的Blackfin BFS33 DSP處理器組成。這些Blackfin處理器將藝術(shù)級的dual-MAC處理引擎,簡潔的RISC式微處理器指令集的優(yōu)點,以及單指令多數(shù)據(jù)(SIMD)多媒體能力結(jié)合起來,形成了一套獨特的指令集結(jié)構(gòu)。ADSP-BFS61集成了一套通用的數(shù)字圖像處理外圍設(shè)備,為數(shù)字圖像處理和多媒體應(yīng)用創(chuàng)建了一個完整的系統(tǒng)級片上解決方案。
ADSP-BF537也是Blackfin系列家族中的一員,但其集成了ADSP-BFS61處理器沒有的網(wǎng)絡(luò)接口,在網(wǎng)絡(luò)視頻服務(wù)器中很方便的完成網(wǎng)絡(luò)功能。系統(tǒng)的硬件組成如圖1所示。
ADSP-BF56l和ADSP-BFS37處理器在網(wǎng)絡(luò)視頻服務(wù)器中分別完成如下功能:
·ADSP-BFS61完成網(wǎng)絡(luò)視頻服務(wù)器視音頻采集和MPEG-4視頻壓縮編碼;
·ADSP-BFS37完成網(wǎng)絡(luò)視頻服務(wù)器網(wǎng)絡(luò)接口、本地文件存儲功能;
·ADSP-BF561和ADSP-BF537處理器,都具有豐富的外部擴展接口。
ADSP BF561的視音頻接口
網(wǎng)絡(luò)視頻服務(wù)器的視頻解碼器采用ADI公司的專用視頻解碼芯片ADV7183:音頻解碼器同樣采用ADI公司的音頻解碼芯片ADvl836A。
ADSP-BP561提供兩個并行接口(PP11和PP12)。每個PPI接口包括一個專用時鐘引腳,多達3個幀同步引腳和多達16個數(shù)據(jù)引腳。該PPI接口可以直接與并行A/D和D/A轉(zhuǎn)換器、符合ITU-601/656標準的視頻編碼和解碼器,以及其他通用外設(shè)連接。
通過BF561處理器的PPI外圍接口電路。視頻解碼芯片ADV7183與BF561的并行PPl2接口連接,并且PP12接口需要設(shè)置為專用的ITU-6S6模式:在ITU-R 656模式下,PP12接口提供8或10位視頻數(shù)據(jù)的接收和解析。支持內(nèi)嵌導(dǎo)言控制信號和同步信號的片內(nèi)解碼。
ADSP-BF561提供2個雙通道同步串行端口(SPORTO和SPORT1)來完成串行和多處理器的通信工作。SPORT有以下特點:支持I2S功能:每個SPORT都有2套獨立的發(fā)送和接收引腳,支持8通道I2S立體聲;每個端口都有一個數(shù)據(jù)寄存器,用以同其它部件間進行雙向數(shù)據(jù)傳輸:每個發(fā)送或接收端口可以使用外部串行時鐘或者使用自己產(chǎn)生的時鐘:每個SPORT都可以自動發(fā)送和接收多個緩沖區(qū)的數(shù)據(jù)信息。
網(wǎng)絡(luò)視頻服務(wù)器中,音頻解碼芯片AD1836A則使用BFS61處理器的其中一個SPORT端口連接,完成音頻解碼和傳輸操作。ADSP BF561的視音頻接口電路如圖2所示。
ADSP BF561的視音頻壓縮算法
網(wǎng)絡(luò)視頻服務(wù)器的視音頻壓縮算法采用ADI公司提供的MPEG-4 SP/ASP編碼庫實現(xiàn)。MPEG-4 SP/ASP是由ISO/LEC 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)運行時根據(jù)場景和網(wǎng)絡(luò)帶寬的變化改變編碼的碼率、幀率、關(guān)鍵幀間隔、量化值等等。
值得提出的是,對于雙核的ADSP BFS61處理器來說,在開發(fā)時需投入大量的精力進行兩個處理器之間的任務(wù)調(diào)度和通信處理。而ADI公司提供的MPEG-4 SP/ASP編碼庫則提供了對ADsp BF561雙核協(xié)同工作的支持,該視頻編碼庫在調(diào)度ADsP BF561處理器的雙核協(xié)同工作的流程如圖3所示。
ADSP BF561在處理需要編碼的圖像資源時,雙核之間可以采用采用對稱負載模式和非對稱負載兩種模式進行;對稱負載就是把需要壓縮的視頻圖像平均分為上下兩個半幀進行壓縮(例如:PAL制D1圖像分為720×288兩個部分):本文采取的是非對稱負載模式,如圖3所示,這是由于核A還需要處理其他的功能,本系統(tǒng)中約需耗費150MIPS的指令周期,所以可動態(tài)分配一些核A的編碼工作給核B完成,這就是所謂的非對稱負載模式。
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中,PPll CLK為專用的時鐘引腳。利用BFs611的TIMER1產(chǎn)生ppI的時鐘信號,而PP11 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)。它集成了標準Linux操作系統(tǒng)的穩(wěn)定性、強大網(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具有相當優(yōu)勢。
使用uClinux操作系統(tǒng)進行開發(fā)時,無法像傳統(tǒng)的Linux開發(fā)那樣實現(xiàn)本機開發(fā)、本機調(diào)試和本機運行的“native”的方式完成:通常采用交叉編譯模式進行。
通過網(wǎng)上能下載到的移植在BF537上的Linux內(nèi)核和uClinux的軟件包,因為Lmux是一個開放源代碼的操作系統(tǒng):這也是選擇uClinux的最大優(yōu)勢。軟件包中包含了Lmux內(nèi)核、庫和應(yīng)用程序等。開發(fā)人員可任意對Linux內(nèi)核進行裁減,來定制自己的Linux內(nèi)核的行為和特性,重新進行編譯。
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格式的實時編碼、壓縮;同時提供了功能強大的網(wǎng)絡(luò)視頻服務(wù)。
Blackfin系列DSP是功能強大的嵌入式處理器,在多種領(lǐng)域都有很好的應(yīng)用前景。本文的網(wǎng)絡(luò)視頻服務(wù)器只是其一個具體的應(yīng)用。本文中提到的DSP間通信和ADsP BF561的雙核調(diào)度等技術(shù)點,在針對更高分辨率和更高幀率的視頻圖像的壓縮處理設(shè)計中,應(yīng)該具有很好的研究和應(yīng)用價值。