基于Blackfin的網絡視頻壓縮系統(tǒng)設計
摘要:利用視頻解碼芯片ADV7183A來完成模擬視頻信號的采集量化,進而由ADSP-BF561完成視頻數據的壓縮,再通過PPI傳輸將壓縮過的視頻數據傳送到由ADSP-BF537和LAN8187等芯片組成的網絡傳輸模塊,網絡傳輸模塊再將處理后的視頻數據流通過組播和單播方式發(fā)送給指定用戶。能夠滿足觀頻監(jiān)控系統(tǒng)的實時性和遠程化要求。
關鍵詞:BF561;ADV7183A;視頻壓縮;網絡傳輸
隨著視頻社會的發(fā)展和科技的進步,視頻信息業(yè)務得到快速增長,視頻信息技術經歷了由模擬到數字的轉變,數字視頻是以數字形式記錄的視頻,數字化對視頻信息的傳輸和存儲創(chuàng)造了有利條件,但末處理的數字視頻流有較高的帶寬,因此在保證視頻圖像清晰度、流暢度、實時性的條件下,進行視頻縮和網絡傳輸成為一項重要的技術。
1 設計方案
文中網絡視頻壓縮硬件系統(tǒng)結構如圖1所示。在本網絡視頻壓縮系統(tǒng)中,采用Analog Device公司的ADSP-BF561、ADSP-BF537、ADV7183A心片;SMSC公司的LAN8187網絡芯片;系統(tǒng)可分為視頻采集壓縮模塊及網絡控制模塊,其中視頻采集壓縮模塊由ADI高性能雙核處理器DSP BF5 61和視頻解碼芯片ADV7183A構成,并輔以SDRAM和Flash等外圍器件。網絡控制模塊由ADI高性能DSP BF537和以太網接口芯片LAN8187構成,同樣輔以SDRAM和Flash等外圍器件。前端輸入的模擬視頻信號經過視頻解碼芯片ADV7183A采集量化變換為數字視頻信號,通過BF561的并行PPI接口進入BF561的緩沖存儲區(qū),由BF561完成覦頻數據的壓縮處理,壓縮形成的MPEG4視頻流通過并行PPI接口進入BF537,經過封裝處理后通過以太網接口進行分發(fā)。
2 硬件電路設計
2.1 視頻采集壓縮模塊設計
視頻采集壓縮模塊由核心壓縮處理器BF561和前端視頻解碼器ADV7183構成,并輔以外圍的SDRAM和Flash。
(1)視頻壓縮處理器BF561。BF561處理器是Blackfin系列中的高性能產品,BF561的核心由兩枚獨立的Blackfin處理器組成。BF561集成了一套通用的數字圖像處理外圍設備,為數字圖像處理和多媒體應用創(chuàng)建了一個完整的系統(tǒng)級片上解決方案。利用BF561雙核結構,將前端視頻解碼器采集的視頻信號分割為上下半幀數據,并將分割的視頻數據分別由其雙核獨立進行壓縮處理,為完整地恢復壓縮前的畫面,在其雙核之間進行了同步處理,使得根據輸出的數據信息解碼后能夠完整流暢的恢復壓縮前的畫面,同時為平衡兩個內核工作量,還將系統(tǒng)的初始化、控制前端視頻解碼器等工作交給主核來處理,給視頻畫面疊加動態(tài)輔助信息的工作交給另一個內核進行處理。
(2)視頻解碼器ADV7183A ADV7183A是美國摸擬器件公司(ADI)推出的集成了10位ADC的增強型視頻解M碼器。它內含3個精確模數轉換器(ADCs)和完整的自動增益控制(AGC)電路。其靈活的數字式輸出接口能夠與BF561的PPI接口進行無縫連接,消除了由于數據信息傳輸速度造成整體壓縮處理能力的瓶頸。ADV7183A與DSP之間的配置通信遵循I2C協(xié)議,因此ADV7183A提供了標準I2C接口,與BF561的PF接口相連接。
BF561的PF,引腳和ADV7183A的0E引腳相連,控制視頻解碼器的數據輸出,這里輸出的數據可以選擇16/8位輸出,系統(tǒng)選擇8位輸出數據格式;
BF561的PF2引腳和ADV7183A的SDATA引腳相連,ADV7183A的SDATA引腳是I2C總線的串行數據輸入/輸出引腳;
BF561的PF0引腳和ADV7183A的SCLK引腳相連,ADV7183A的SCLK引腳是I2C總線的串行數據輸入/輸出引腳,為視頻解碼器提供串行時鐘輸入;
BF561的PPI2CLK引腳和ADV7183A的LLC1引腳相連,由ADV7183A的LLC1引腳為BF561提供視頻像素輸出同步時鐘;
BF561的PF13引腳和ADV7183A的RESFT引腳相連,為視頻解碼器提供復位信號;
BF561的PPI2D0~7引腳和ADV7183A的,P8-P15引腳相連,作為視頻數據傳輸總線。
同時為ADV7183A提供27 MHz的晶振輸入列XTAL引腳,選擇模擬輸入通道AIN1,在AIN1引腳上輸入模擬信號,對于系統(tǒng)而言,采取默認配置,不再對I2C總線進行配置。完成這些設置后,接上電源,ADV7183A就可以在默認配置下正常工T作了,默認輸入為PAL制的圖像,輸出是P8~P15的8位ITU—BT656的YCrCb型4:2:2視頻數據。
2.2 網絡傳輸模塊設計
網絡傳輸模塊是將視頻采集壓縮模塊處理過后的輸出數據流發(fā)送到外界用戶的通道,所以要求其核心處理理器既可以與BF561方便地連接又有很好的網絡擴展性,所以選擇了同一系列的BF537處理器,充分利用其PPI接口實現(xiàn)與BF561的快速無縫連接;由于BF537集成了以太網MAC控制器,所以又可以和用BF537的網絡擴展性能,輔以SMSC公司的以太網接口芯片LAN8187,同時由于LwIP(LightweightTCP/IP Stack,輕量級TCP/IP協(xié)議棧)有效地減少TCP/IP協(xié)議棧所占用的空間,LwIP約占用40 kB的內存空間和ROM存儲空間,比在內核中實現(xiàn)的TCP/IP協(xié)議棧要小得多,并且LwIP支持多網絡接口下的IP轉發(fā),支持ICMP協(xié)議,支持擴展性的UDP報文,支持轉發(fā)的TCP報文,提供專門的內部回調接口(RawAPI)。RAW API直接使用了LwIP協(xié)議棧中的回調函數(Call Back Functions),從而使應用程序和協(xié)議棧代碼能夠更好地集成在一起,運行在同一個進程中,以提高應用程序性能,使之適合于嵌入式系統(tǒng)的需要。
系統(tǒng)中的SDRAM主要用以加載系統(tǒng)程序和開辟視頻數據信息的存儲緩沖區(qū),F(xiàn)lash用于燒寫調試完成后的系統(tǒng)加載程序。它們通過核心處理器BF561和BF537的外部總線接口單元(EBIU)進行擴展。
3 系統(tǒng)軟件設計
3.1 視頻采集壓縮模塊
視頻采集壓縮模塊:由于BF561為雙核處理器,為充分利用其雙核結構來提高視頻壓縮能力,在這個模塊的軟件設計中,對系統(tǒng)工作量進行了合理的分配,系統(tǒng)加電后,首先在其主核中對系統(tǒng)進行初始化,設置系統(tǒng)的工作倍頻,并對前端視頻解碼芯片ADV7183A進行配置,管理和前段視頻解碼器的通信傳輸工作,然后進入循環(huán)等待開始視頻壓縮命令,同時其另一個核也處于等待狀態(tài),在接收到視頻壓縮開始命令后,在主核中將前端采集的視頻數據分割為上下各半幀數據,分別交給雙核進行壓縮處理,為保證每一幀壓縮之后的視頻數據的完整性,在每一幀視頻數據壓縮的前后采用了信號量同步的方式,保證了雙核工作的同步性和視頻數據輸出的完整性,視頻采集壓縮處理部分程序流程如圖2所示。
3.2 網絡傳輸模塊
網絡傳輸模塊:網絡傳輸模塊主要負責本系統(tǒng)和用戶之間的交互,包括接收用戶命令和向用戶提供視頻數據流,其中向用戶提供數據流包括發(fā)送視頻數據和提供組播服務兩種方式,視頻采集壓縮模塊每壓縮處理完一幀數據后,就通過中斷的方式提醒BF537以DMA方式讀取壓縮完成后的視頻數據,對于要求嚴格保證數據傳輸穩(wěn)定性與可靠性的用戶,網絡傳輸模塊以TCP的傳輸方式將讀取的視頻數據發(fā)送給指定用戶,對于主要以局域網用戶為主,用戶數量不定,且對傳輸穩(wěn)定性與可靠性要求不是很高的用戶,網絡傳輸模塊采用DP的傳輸方式將讀取的視頻數據發(fā)送給組播中的群成員,這里之所以用組播的方式也為了節(jié)省網絡帶寬資源。在系統(tǒng)工作中為防止接收視頻數據和發(fā)送之間的協(xié)調性,采用信號量的方式來約束接收和發(fā)送數據的邏輯,防止了發(fā)送重復數據或者空數據的問題,網絡傳輸模塊的程序流程如圖3所示。
4 結束語
網絡視頻壓縮系統(tǒng)利用核心處理器BF561、BF537以及外圍芯片,完成視頻信息的采集、壓縮處理、網絡傳輸等功能,能夠滿足視頻監(jiān)控系統(tǒng)的實時性和遠程化要求,提供了單播和組播兩種不同的遠程監(jiān)控方式。