電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1890|回復(fù): 0
收起左側(cè)

嵌入式培訓(xùn)實(shí)戰(zhàn)項(xiàng)目_嵌入式視頻網(wǎng)絡(luò)服務(wù)器的開發(fā)及其應(yīng)用

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-7 11:31:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
嵌入式培訓(xùn)實(shí)戰(zhàn)項(xiàng)目_嵌入式視頻網(wǎng)絡(luò)服務(wù)器的開發(fā)及其應(yīng)用,   

摘 要:本文詳細(xì)介紹了一套嵌入式視頻網(wǎng)絡(luò)服務(wù)器系統(tǒng):視頻數(shù)據(jù)壓縮部分由MPEG-X協(xié)議的ASIC芯片完成,嵌入式CPU只負(fù)責(zé)控制。它采用了壓縮與控制分離的方式,提高了系統(tǒng)的靈活性和整體性價(jià)比。最后,本文給出了該視頻服務(wù)器在校園親子監(jiān)控系統(tǒng)中的一個(gè)應(yīng)用實(shí)例。

關(guān)鍵詞:MPEG-X; RISC CPU; 親子監(jiān)控系統(tǒng)

引言

近幾年隨著嵌入式技術(shù)的蓬勃發(fā)展,出現(xiàn)了基于嵌入式視頻服務(wù)器技術(shù)的遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控設(shè)備。嵌入式視頻服務(wù)器的主要工作原理是:模擬視頻信號經(jīng)A/D后,采用MPEG-2或MPEG-4協(xié)議壓縮,然后將壓縮后的視頻數(shù)據(jù)打包,傳送到網(wǎng)絡(luò)上。用戶可以直接用瀏覽器或者客戶端專用軟件觀看視頻服務(wù)器上的圖像,授權(quán)用戶還可以控制攝像機(jī)云臺鏡頭的動(dòng)作或?qū)υ撉度胧较到y(tǒng)進(jìn)行配置。壓縮部分可以采用專用的硬件芯片或由嵌入式CPU進(jìn)行軟壓縮實(shí)現(xiàn)。如果采用后者,則要求該CPU有較強(qiáng)的運(yùn)算功能。

嵌入式視頻網(wǎng)絡(luò)服務(wù)器主要可以應(yīng)用于城域教育網(wǎng)、遠(yuǎn)程網(wǎng)上培訓(xùn)、網(wǎng)絡(luò)電視/電臺、實(shí)時(shí)數(shù)字監(jiān)控、遠(yuǎ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è)計(jì)的高性能低功耗芯片,其內(nèi)核為32位通用VLIW結(jié)構(gòu)的DSP ?梢暂^好地實(shí)現(xiàn)音視頻壓縮和解壓縮算法。

但軟壓縮速度比硬壓縮慢,而且要實(shí)現(xiàn)MPEG-X壓縮協(xié)議,工作量非常大。另外,協(xié)議升級代價(jià)也很大。

硬壓縮視頻服務(wù)器

針對軟壓縮視頻服務(wù)器的這些缺點(diǎn),本文設(shè)計(jì)開發(fā)了采用硬壓縮芯片的視頻服務(wù)器,如圖2所示。

多路視頻數(shù)據(jù)的采集、A/D及傳輸格式

攝像機(jī)的模擬視頻信號輸入到視頻解碼器后,轉(zhuǎn)換為數(shù)字視頻信號。以Philips的SAA7113為例,說明視頻解碼器解碼后的數(shù)據(jù)格式。

SAA7113支持NTSC/PAL/SECAM制式,A/D精度是9位,并行8位輸出。在PAL制式下每一幀模擬視頻信號數(shù)字化后的輸出圖像大小是 1728×625,實(shí)際有效像素?cái)?shù)是720×576,每一秒為25幀,所以視頻輸出帶為27MHz。每一個(gè)時(shí)鐘周期(1/27MHz)并行輸出一個(gè)字節(jié),每兩個(gè)時(shí)鐘周期輸出一個(gè)完整的像素點(diǎn),即每個(gè)像素點(diǎn)占用2個(gè)字節(jié)。輸出的數(shù)據(jù)格式遵循ITU-R656標(biāo)準(zhǔn),即YUV為4:2:2,所以每個(gè)像素點(diǎn)亮度信號占8位,兩個(gè)色度信號共占8位。除了輸出數(shù)字像素外,A/D還需傳輸同步時(shí)鐘信號。CPU可以通過I2C總線設(shè)置SAA7113的相關(guān)寄存器,以對轉(zhuǎn)化后的數(shù)字圖像進(jìn)行參數(shù)控制。

打包和視頻信號的本地顯示

ADC將多路模擬視頻圖像數(shù)字化后,為了便于壓縮,需要將多路圖像打包成一路數(shù)據(jù),可以用AT4012來實(shí)現(xiàn)。

多路數(shù)據(jù)打包器將4路數(shù)字視頻信號整合成1路視頻數(shù)據(jù)流,并在每路視頻數(shù)據(jù)頭上打上ID號,以供壓縮芯片分別壓縮。同一時(shí)間它只能為某一路視頻數(shù)據(jù)打包。例如當(dāng)為第1路數(shù)據(jù)打包時(shí),暫時(shí)還不能處理其他3路數(shù)據(jù),這時(shí)它將其它3路數(shù)據(jù)暫存到SDRAM中。待完成當(dāng)前數(shù)據(jù)的打包后,再將SDRAM中的數(shù)據(jù)取出處理。

除了將多路數(shù)據(jù)打包外, AT4012還有畫面分割功能,即給AT4012接上視頻D/A芯片后,可將1路復(fù)合數(shù)字視頻流轉(zhuǎn)換為模擬圖像, 這樣用戶就可以在本地的1個(gè)監(jiān)視器上看到4路攝像機(jī)攝到的圖像,如果在多路打包器前接9路攝像機(jī),用戶就可以在一個(gè)監(jiān)視器上看到9個(gè)畫面。

視頻數(shù)據(jù)的壓縮

多路數(shù)據(jù)打包器將數(shù)據(jù)整合為一路后,輸入給專用硬件壓縮芯片處理。以AT2021(集成MPEG-2協(xié)議)芯片為例,硬件壓縮算法由幾部分構(gòu)成。嵌入式雙核教材, 單片機(jī)嵌入式?, 嵌入式樓梯防滑條, 嵌入式友鏈代碼, 嵌入式系統(tǒng)指的什么, 嵌入式網(wǎng)絡(luò)電量儀, 嵌入式系統(tǒng)輸出字母, 嵌入式防火墻公司, 嵌入式原理精品課程, 半嵌入式保險(xiǎn)箱, 電子相冊嵌入式, 嵌入式ping回令, 嵌入式毛巾情景陳列, fpga嵌入式教程, 嵌入式構(gòu)架系統(tǒng), 嵌入式培訓(xùn)、, 嵌入式中的gpio, 嵌入式位運(yùn)算, 考嵌入式學(xué)那種語言, 醫(yī)學(xué)生嵌入式, 嵌入式的實(shí)驗(yàn)心得, 以太網(wǎng)嵌入式路由器, 嵌入式系統(tǒng)c名稱,

視頻輸入接口:提供視頻信號輸入接口,并進(jìn)行一些壓縮前的預(yù)處理以提高壓縮比。

運(yùn)動(dòng)預(yù)測補(bǔ)償單元:根據(jù)MPEG推薦的BMA算法進(jìn)行圖像的運(yùn)動(dòng)預(yù)測補(bǔ)償壓縮。

DCT/量化單元:為每幅圖像的宏塊進(jìn)行DCT和逆DCT變換,然后再依據(jù)試驗(yàn)得到的量化矩陣對DCT系數(shù)進(jìn)行量化。

VLC和熵編碼單元:對量化后的DCT直流系數(shù)進(jìn)行DPCM編碼,以及對量化后的DCT交流系數(shù)進(jìn)行變長編碼,最后再對交直流系數(shù)進(jìn)行熵編碼。

系統(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è)置視頻解碼器解碼時(shí)的亮度、色度、飽和度控制寄存器,S3C4510支持UART,外接上RS-232口后,可以將視頻服務(wù)器與主機(jī)相連以進(jìn)行主機(jī)與服務(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ò)上,遠(yuǎn)端就可以接收。當(dāng)然打包后的數(shù)據(jù)也可以直接存儲到本地的硬盤中,以供以后查詢,即硬盤錄像機(jī)(DVR)。

視頻服務(wù)器功能擴(kuò)展

由于采用壓縮芯片和CPU分離設(shè)計(jì),極大地提高了系統(tǒng)靈活性。將圖2中的CPU替換為PCI9054總線主控芯片,就變成基于PC的多路實(shí)時(shí)圖像采集壓縮卡,這是基于PC的硬盤錄像機(jī)的關(guān)鍵設(shè)備。

視頻服務(wù)器軟件體系

由于本系統(tǒng)的RISC芯片核是ARM7TDMI,沒有內(nèi)存管理模塊(MMU),所以Linux選用mClinux。它具有強(qiáng)大的網(wǎng)絡(luò)功能,支持PPP、 Ethernet等多種網(wǎng)絡(luò)連接方式,包括完整的TCP/IP協(xié)議棧及大量的其他協(xié)議。嵌入式Linux軟件開發(fā)平臺的系統(tǒng)結(jié)構(gòu)如圖4所示。[!--empirenews.page--]

在某些實(shí)時(shí)性要求較高的場合,需要加入一些實(shí)時(shí)控制補(bǔ)丁。標(biāo)準(zhǔn)的Linux內(nèi)核沒提供嵌入式應(yīng)用程序所需要的可預(yù)測響應(yīng)時(shí)間,這主要是過長的中斷反應(yīng)時(shí)間和任務(wù)切換反應(yīng)時(shí)間造成的。在一個(gè)標(biāo)準(zhǔn)的Linux內(nèi)核里,系統(tǒng)調(diào)用或者運(yùn)行在內(nèi)核里的其他代碼會不停地運(yùn)行,直到完成或者直到代碼主動(dòng)地對其他線程發(fā)起控制。在這期間,內(nèi)核不會在線程之間切換。線程切換時(shí),漫長的反應(yīng)時(shí)間不能為多線程的實(shí)時(shí)應(yīng)用程序所接受。

搶先任務(wù)補(bǔ)丁改變了這個(gè)狀況:它允許線程幾乎在內(nèi)核里的任何地方以及任何時(shí)間被搶先運(yùn)行。它通過用對稱多處理(SMP)自旋塊(spinlock)來指示內(nèi)核中關(guān)鍵的非搶先任務(wù)區(qū)域?qū)崿F(xiàn)。內(nèi)核的所有其他區(qū)域都被認(rèn)為是搶先任務(wù)的。

應(yīng)用實(shí)例

在幼兒園或小學(xué)教室里安裝視頻服務(wù)器,學(xué)生家長就可以通過互聯(lián)網(wǎng)觀看到孩子在校學(xué)習(xí)生活情況。如圖5所示,在每個(gè)教室里安裝一臺攝像機(jī),在操場上安裝2臺攝像機(jī),然后將攝像機(jī)連接到視頻服務(wù)器上,視頻服務(wù)器將壓縮后的多路圖像上傳到網(wǎng)絡(luò)。家長就可以觀看孩子在校情況,同時(shí)也可以通過視頻服務(wù)器外接監(jiān)視器觀看。視頻網(wǎng)絡(luò)服務(wù)器也可以將圖像存儲在本地硬盤中,家長通過訪問校方的視頻服務(wù)器實(shí)現(xiàn)視頻點(diǎn)播(VOD)。

結(jié)語

采用專用壓縮芯片進(jìn)行數(shù)據(jù)壓縮,既降低了視頻服務(wù)器的開發(fā)難度和成本,也易于壓縮協(xié)議升級。隨著嵌入式技術(shù)快速發(fā)展和普及,嵌入式設(shè)備將在整個(gè)后PC時(shí)代越來越多地替代傳統(tǒng)PC,滲透到工業(yè)生產(chǎn)和人們的日常生活中去。

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表