嵌入式視頻網(wǎng)絡服務器的開發(fā)及其應用
摘 要:本文詳細介紹了一套嵌入式視頻網(wǎng)絡服務器系統(tǒng):視頻數(shù)據(jù)壓縮部分由MPEG-X協(xié)議的ASIC芯片完成,嵌入式CPU只負責控制。它采用了壓縮與控制分離的方式,提高了系統(tǒng)的靈活性和整體性價比。最后,本文給出了該視頻服務器在校園親子監(jiān)控系統(tǒng)中的一個應用實例。
關鍵詞:MPEG-X; RISC CPU; 親子監(jiān)控系統(tǒng)
引言
近幾年隨著嵌入式技術的蓬勃發(fā)展,出現(xiàn)了基于嵌入式視頻服務器技術的遠程網(wǎng)絡視頻監(jiān)控設備。嵌入式視頻服務器的主要工作原理是:模擬視頻信號經(jīng)A/D后,采用MPEG-2或MPEG-4協(xié)議壓縮,然后將壓縮后的視頻數(shù)據(jù)打包,傳送到網(wǎng)絡上。用戶可以直接用瀏覽器或者客戶端專用軟件觀看視頻服務器上的圖像,授權用戶還可以控制攝像機云臺鏡頭的動作或對該嵌入式系統(tǒng)進行配置。壓縮部分可以采用專用的硬件芯片或由嵌入式CPU進行軟壓縮實現(xiàn)。如果采用后者,則要求該CPU有較強的運算功能。
嵌入式視頻網(wǎng)絡服務器主要可以應用于城域教育網(wǎng)、遠程網(wǎng)上培訓、網(wǎng)絡電視/電臺、實時數(shù)字監(jiān)控、遠程視頻會議等領域。
軟壓縮視頻服務器
已有的視頻服務器采用CPU軟壓縮方式(見圖1)。4路模擬視頻數(shù)據(jù)接入到視頻解碼器上,然后解碼器將數(shù)字化后的視頻流數(shù)據(jù)傳送給CPU—— PNX1300, MPEG壓縮協(xié)議存儲在Flash上,PNX1300將視頻數(shù)據(jù)壓縮后,輸出給以太網(wǎng)控制芯片,然后視頻數(shù)據(jù)通過RJ-45端口上傳到以太網(wǎng)上。
PNX1300是Philips公司專為多媒體應用而優(yōu)化設計的高性能低功耗芯片,其內核為32位通用VLIW結構的DSP 。可以較好地實現(xiàn)音視頻壓縮和解壓縮算法。
但軟壓縮速度比硬壓縮慢,而且要實現(xiàn)MPEG-X壓縮協(xié)議,工作量非常大。另外,協(xié)議升級代價也很大。
硬壓縮視頻服務器
針對軟壓縮視頻服務器的這些缺點,本文設計開發(fā)了采用硬壓縮芯片的視頻服務器,如圖2所示。
多路視頻數(shù)據(jù)的采集、A/D及傳輸格式
攝像機的模擬視頻信號輸入到視頻解碼器后,轉換為數(shù)字視頻信號。以Philips的SAA7113為例,說明視頻解碼器解碼后的數(shù)據(jù)格式。
SAA7113支持NTSC/PAL/SECAM制式,A/D精度是9位,并行8位輸出。在PAL制式下每一幀模擬視頻信號數(shù)字化后的輸出圖像大小是 1728×625,實際有效像素數(shù)是720×576,每一秒為25幀,所以視頻輸出帶為27MHz。每一個時鐘周期(1/27MHz)并行輸出一個字節(jié),每兩個時鐘周期輸出一個完整的像素點,即每個像素點占用2個字節(jié)。輸出的數(shù)據(jù)格式遵循ITU-R656標準,即YUV為4:2:2,所以每個像素點亮度信號占8位,兩個色度信號共占8位。除了輸出數(shù)字像素外,A/D還需傳輸同步時鐘信號。CPU可以通過I2C總線設置SAA7113的相關寄存器,以對轉化后的數(shù)字圖像進行參數(shù)控制。
打包和視頻信號的本地顯示
ADC將多路模擬視頻圖像數(shù)字化后,為了便于壓縮,需要將多路圖像打包成一路數(shù)據(jù),可以用AT4012來實現(xiàn)。
多路數(shù)據(jù)打包器將4路數(shù)字視頻信號整合成1路視頻數(shù)據(jù)流,并在每路視頻數(shù)據(jù)頭上打上ID號,以供壓縮芯片分別壓縮。同一時間它只能為某一路視頻數(shù)據(jù)打包。例如當為第1路數(shù)據(jù)打包時,暫時還不能處理其他3路數(shù)據(jù),這時它將其它3路數(shù)據(jù)暫存到SDRAM中。待完成當前數(shù)據(jù)的打包后,再將SDRAM中的數(shù)據(jù)取出處理。
除了將多路數(shù)據(jù)打包外, AT4012還有畫面分割功能,即給AT4012接上視頻D/A芯片后,可將1路復合數(shù)字視頻流轉換為模擬圖像, 這樣用戶就可以在本地的1個監(jiān)視器上看到4路攝像機攝到的圖像,如果在多路打包器前接9路攝像機,用戶就可以在一個監(jiān)視器上看到9個畫面。
視頻數(shù)據(jù)的壓縮
多路數(shù)據(jù)打包器將數(shù)據(jù)整合為一路后,輸入給專用硬件壓縮芯片處理。以AT2021(集成MPEG-2協(xié)議)芯片為例,硬件壓縮算法由幾部分構成。
視頻輸入接口:提供視頻信號輸入接口,并進行一些壓縮前的預處理以提高壓縮比。
運動預測補償單元:根據(jù)MPEG推薦的BMA算法進行圖像的運動預測補償壓縮。
DCT/量化單元:為每幅圖像的宏塊進行DCT和逆DCT變換,然后再依據(jù)試驗得到的量化矩陣對DCT系數(shù)進行量化。
VLC和熵編碼單元:對量化后的DCT直流系數(shù)進行DPCM編碼,以及對量化后的DCT交流系數(shù)進行變長編碼,最后再對交直流系數(shù)進行熵編碼。
系統(tǒng)CPU部分及其它
多路視頻數(shù)據(jù)壓縮以后,需要輸入到CPU中打包,以發(fā)送到網(wǎng)絡上。
CPU選取三星公司的32位RISC芯片S3C4510, 該芯片是專為嵌入式以太網(wǎng)應用開發(fā)的,內核為ARM7TDMI,支持高代碼密度的THUMB指令集。通過其外設I2C總線,可以控制前端的視頻采集、壓縮模塊芯片的工作模式,如可以設置視頻解碼器解碼時的亮度、色度、飽和度控制寄存器,S3C4510支持UART,外接上RS-232口后,可以將視頻服務器與主機相連以進行主機與服務器的數(shù)據(jù)交換。
S3C4510支持10M、100M單工和雙工模式的以太網(wǎng)傳輸。在單工模式下,它支持CSMA/CD協(xié)議,在雙工模式下,支持IEEE 802.3的MAC層。因此還需給S3C4510連接上控制網(wǎng)絡物理層的芯片,如Intel的LXT970A,從而構成了以太網(wǎng)從應用層到物理層完整的網(wǎng)絡結構。
圖3中,壓縮芯片以AT2021、CPU以S3C4510為例,給出壓縮芯片與CPU的接口。
S3C4510通過地址總線LA[0..3]尋址AT2021的相關寄存器,通過數(shù)據(jù)總線LD[0..15]讀寫數(shù)據(jù)以設置AT2021的工作參數(shù)、監(jiān)控AT2021內核的工作狀況,并獲取壓縮后的數(shù)據(jù)。例如可以設置壓縮后的視頻輸出流的格式為IPP或IBBP。
S3C4510將數(shù)據(jù)取到內存后,按照每路視頻數(shù)據(jù)前的ID號,區(qū)分當前數(shù)據(jù),然后給數(shù)據(jù)分塊打包,設置好其IP目的地址,然后傳送到網(wǎng)絡上,遠端就可以接收。當然打包后的數(shù)據(jù)也可以直接存儲到本地的硬盤中,以供以后查詢,即硬盤錄像機(DVR)。
視頻服務器功能擴展
由于采用壓縮芯片和CPU分離設計,極大地提高了系統(tǒng)靈活性。將圖2中的CPU替換為PCI9054總線主控芯片,就變成基于PC的多路實時圖像采集壓縮卡,這是基于PC的硬盤錄像機的關鍵設備。
視頻服務器軟件體系
由于本系統(tǒng)的RISC芯片核是ARM7TDMI,沒有內存管理模塊(MMU),所以Linux選用mClinux。它具有強大的網(wǎng)絡功能,支持PPP、 Ethernet等多種網(wǎng)絡連接方式,包括完整的TCP/IP協(xié)議棧及大量的其他協(xié)議。嵌入式Linux軟件開發(fā)平臺的系統(tǒng)結構如圖4所示。[!--empirenews.page--]
在某些實時性要求較高的場合,需要加入一些實時控制補丁。標準的Linux內核沒提供嵌入式應用程序所需要的可預測響應時間,這主要是過長的中斷反應時間和任務切換反應時間造成的。在一個標準的Linux內核里,系統(tǒng)調用或者運行在內核里的其他代碼會不停地運行,直到完成或者直到代碼主動地對其他線程發(fā)起控制。在這期間,內核不會在線程之間切換。線程切換時,漫長的反應時間不能為多線程的實時應用程序所接受。
搶先任務補丁改變了這個狀況:它允許線程幾乎在內核里的任何地方以及任何時間被搶先運行。它通過用對稱多處理(SMP)自旋塊(spinlock)來指示內核中關鍵的非搶先任務區(qū)域實現(xiàn)。內核的所有其他區(qū)域都被認為是搶先任務的。
應用實例
在幼兒園或小學教室里安裝視頻服務器,學生家長就可以通過互聯(lián)網(wǎng)觀看到孩子在校學習生活情況。如圖5所示,在每個教室里安裝一臺攝像機,在操場上安裝2臺攝像機,然后將攝像機連接到視頻服務器上,視頻服務器將壓縮后的多路圖像上傳到網(wǎng)絡。家長就可以觀看孩子在校情況,同時也可以通過視頻服務器外接監(jiān)視器觀看。視頻網(wǎng)絡服務器也可以將圖像存儲在本地硬盤中,家長通過訪問校方的視頻服務器實現(xiàn)視頻點播(VOD)。
結語
采用專用壓縮芯片進行數(shù)據(jù)壓縮,既降低了視頻服務器的開發(fā)難度和成本,也易于壓縮協(xié)議升級。隨著嵌入式技術快速發(fā)展和普及,嵌入式設備將在整個后PC時代越來越多地替代傳統(tǒng)PC,滲透到工業(yè)生產(chǎn)和人們的日常生活中去。