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