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