DM642上開(kāi)發(fā)嵌入式的網(wǎng)絡(luò )視頻服務(wù)器
類(lèi)型:轉載 作者: 最后更新:2005-8-9 23:16:04 推薦指數: 6287
一、系統方案
視頻服務(wù)器的解決方案有多種選擇,但是市場(chǎng)產(chǎn)品的主流一般選擇兩種方案:(1)CPU+ASIC。該方案選擇以ARM為核的CPU和專(zhuān)用媒體處理芯片搭建。優(yōu)點(diǎn)是開(kāi)發(fā)時(shí)間相對較短,但由于采用ASIC,靈活性較差,產(chǎn)品一旦定型,很難更改。(2)采用面向媒體處理的專(zhuān)用DSP。其開(kāi)發(fā)時(shí)間不長(cháng),優(yōu)點(diǎn)是由于算法是軟件代碼,所以可以不斷對產(chǎn)品性能進(jìn)行升級,重復開(kāi)發(fā)成本較低。
TI公司的DM642是一款專(zhuān)門(mén)面向多媒體應用的專(zhuān)用DSP。該DSP時(shí)鐘高達600MHz,8個(gè)并行運算單元,處理能力達4800MIPS.。為了面向多媒體應用,還集成了3個(gè)可配置的Video Port、面向音頻應用的McASP、10/100Mb/s的Ethernet MAC等外設。本文將以DM642為例,簡(jiǎn)要討論在開(kāi)發(fā)視頻服務(wù)器中的技術(shù)難點(diǎn)和可以采用的解決方法。
視頻服務(wù)器最主要的功能是完成圖像和聲音的采集、壓縮及傳輸的功能。附圖是一般的原理框圖:
二、核心技術(shù)
視頻服務(wù)器用到的核心技術(shù)一般包括視頻壓縮算法,音頻壓縮算法,網(wǎng)絡(luò )傳輸協(xié)議。目前市場(chǎng)上的主流技術(shù)主要是MPEG4或H26x視頻壓縮算法、AAC音頻壓縮算法、G.72x語(yǔ)音壓縮算法(或AAC音頻壓縮算法),TCP/IP協(xié)議等。
對于這些核心算法,一般為T(mén)I的第三方公司掌握,如果使用需要支付較高的入門(mén)許可費和每個(gè)產(chǎn)品的License費用。鑒于此,一些有實(shí)力且有相關(guān)技術(shù)背景的公司選擇自主研發(fā)。下面我們對視頻壓縮算法的開(kāi)發(fā)中解決的一些主要問(wèn)題進(jìn)行介紹。
(a)開(kāi)發(fā)平臺的選擇
TI公司提供DM642的EVM板,一般的開(kāi)發(fā)廠(chǎng)商可以在其上進(jìn)行算法的驗證,但開(kāi)發(fā)板價(jià)格較貴,另外在上面開(kāi)發(fā)的程序跟實(shí)際應用畢竟有區別,移植工作會(huì )延長(cháng)最終產(chǎn)品的發(fā)布時(shí)間。因此,建議有較強開(kāi)發(fā)實(shí)力的公司可以直接進(jìn)行視頻服務(wù)器板卡的設計,直接以板卡作為平臺進(jìn)行算法的驗證。我們采用這種方法不但省去了EVM板的購買(mǎi),而且縮短了整個(gè)產(chǎn)品的開(kāi)發(fā)周期。
(b)DM642片內內存有限
DM642有256KB的片內內存,對于直接處理圖像數據還是很有限的。MPEG4算法一般至少要存儲當前待編碼幀數據和上一幀的重建幀數據,一幀 YUV420格式CIF圖像的數據約有150KB,256KB內存對于CIF圖像就不夠了。對于DM642,數據如果放在板卡上的片外內存中,數據的處理速度會(huì )大大降低,這是因為DSP對片外數據的運算慢得多。我們一般采取的方案是對圖像以宏塊為單位處理,只將運算時(shí)該宏塊需要的數據導入片內,其它數據留在片外,這樣的數據量就足夠放在片內了。
(c)充分利用DM642的DMA通道
DSP直接訪(fǎng)問(wèn)內存會(huì )造成等待,浪費大量不必要的時(shí)鐘周期。幸好DM642有強大的DMA能力,因此我們可以在處理當前宏塊數據時(shí),將下一個(gè)宏塊的數據通過(guò)DMA倒入片內,當處理完當前宏塊的時(shí)候,下一個(gè)宏塊的數據就已經(jīng)準備好了,這樣可以極大提高DSP的利用率。但具體實(shí)現的時(shí)候需要對DMA啟動(dòng)的時(shí)機進(jìn)行仔細的考慮,在數據訪(fǎng)問(wèn)不沖突的情況下盡量提前。
(d)充分利用Cache
DM642的片內內存可以有一部分配置成Cache,總的原則是將盡量多的關(guān)鍵數據分配在片內,Cache越大越好,對于不同的應用需要用不同的配置。最優(yōu)配置需要在開(kāi)發(fā)中根據經(jīng)驗和實(shí)際的測試結果進(jìn)行選擇。
(e)提高DM642的編碼速度
TI的CCS編譯器已進(jìn)行了充分的優(yōu)化,再加上DSP本身的強大處理能力,對于一般的處理算法,只要用標準C語(yǔ)言編寫(xiě)就可以達到應用的需求。但是對于視頻服務(wù)器,一般有多路圖像的輸入,這時(shí)編碼速度越快,就意味著(zhù)可以處理更多路的輸入圖像,也就意味著(zhù)更高的產(chǎn)品性?xún)r(jià)比。因此如何發(fā)揮DM642的最高性能是每一個(gè)開(kāi)發(fā)廠(chǎng)商必須面對的問(wèn)題。一般在編譯程序時(shí)使用 ?o3的優(yōu)化級別,對于特別影響速度的地方,如運動(dòng)估計、VLC編碼等部分可以編寫(xiě)線(xiàn)性匯編程序,如果對于編譯器優(yōu)化的線(xiàn)性匯編程序不是很滿(mǎn)意,還可以直接用手工編寫(xiě)并行匯編程序,這樣可以達到最優(yōu)的性能,但這樣對于開(kāi)發(fā)人員的要求很高。因此建議較簡(jiǎn)單的函數采用并行匯編,達到最優(yōu)性能;對于較復雜的函數采用線(xiàn)性匯編,以便加快開(kāi)發(fā)速度。
(f)eXpressDSP標準
由于DSP的靈活性,TI有眾多的提供各種算法的第三方公司,但在每一個(gè)具體的應用中一般需要將多種算法集成在一起,由于各種算法對資源的需求不同,很容易發(fā)生沖突,因此TI制定了eXpressDSP標準。它定義了一套建議算法遵循的接口標準,符合eXpressDSP的算法易于重復使用。由于視頻服務(wù)器的型號繁多,算法更新快,因此開(kāi)發(fā)時(shí),符合eXpressDSP標準尤其重要。
三、相關(guān)技術(shù)
解決了核心技術(shù)的問(wèn)題就有了進(jìn)行視頻服務(wù)器開(kāi)發(fā)的重要基礎。但由于要滿(mǎn)足用戶(hù)的各種各樣的需求,還需要解決很多相關(guān)技術(shù)。下面將選擇一些較為重要的加以介紹。
(a) 操作系統
其實(shí)操作系統的開(kāi)發(fā)是一個(gè)很困難的技術(shù)問(wèn)題,列為核心技術(shù)絕不為過(guò),但是正因為難度太大,僅僅為開(kāi)發(fā)視頻服務(wù)器而開(kāi)發(fā)DM642上的操作系統代價(jià)太大。因此我們建議有兩種選擇:(1)購買(mǎi)TI第三方的操作系統?,F在已經(jīng)有TI第三方可以提供DM642上的Linux操作系統。但是詳情尚不清楚。(2)使用TI提供的BIOS。TI BIOS是一個(gè)能提供操作系統最基本功能的很小的核,用戶(hù)可以在上面開(kāi)發(fā)應用程序。但是相對來(lái)講,開(kāi)發(fā)和調試都會(huì )困難一些??紤]到開(kāi)發(fā)成本和操作系統的可靠性,我們選擇了TI BIOS作為應用程序的簡(jiǎn)單操作系統。
(b)視頻服務(wù)器資源的訪(fǎng)問(wèn)控制
為了滿(mǎn)足監控的實(shí)際需求,一般需要在視頻服務(wù)器上再增加串行口、報警I/O,、硬盤(pán)等資源,因為網(wǎng)絡(luò )是不可靠的,因此如何可靠、及時(shí)、高效的對這些資源進(jìn)行統一的控制訪(fǎng)問(wèn)是非常重要的問(wèn)題。我們?yōu)榇藢?zhuān)門(mén)制定了NRCAP協(xié)議來(lái)解決這些問(wèn)題。關(guān)于該協(xié)議的細節,感興趣的讀者可以和我們聯(lián)系。
(c)媒體流傳輸協(xié)議
監控強調實(shí)時(shí)性、保密性與傳輸的高效性,為此需要開(kāi)發(fā)廠(chǎng)商制定相應的傳輸協(xié)議。
(d)NAT問(wèn)題
因為網(wǎng)絡(luò )的實(shí)際狀況千差萬(wàn)別,用戶(hù)的需求各種各樣,很容易遇到局域網(wǎng)與互聯(lián)網(wǎng)在同一系統中存在的問(wèn)題,這時(shí)如何在網(wǎng)關(guān)解決網(wǎng)內陸址與網(wǎng)外地址的轉換就必須考慮。一般很難提供一種統一的解決方案適合各種情況,因此開(kāi)發(fā)廠(chǎng)商需要定義幾種最常見(jiàn)網(wǎng)絡(luò )情況的解決方案供用戶(hù)選擇。
(e)音視頻同步
因為網(wǎng)絡(luò )傳輸的固有特點(diǎn),聲音數據和視頻數據從視頻服務(wù)器到達客戶(hù)端不可能是均勻的,如果客戶(hù)端不做任何糾正處理,則很難保證音視頻的同步輸出。一般可以在數據包中嵌入時(shí)間戳信息,客戶(hù)端根據這些信息決定媒體數據的合適播放時(shí)間。同時(shí)要強調的是視頻數據最后是一幀一幀的圖像,即在播放的時(shí)間軸上可以認為是一個(gè)一個(gè)孤立的點(diǎn),而音頻數據是一段、一段的數據,即在播放的時(shí)間軸上可以認為是連續的,因此兩種媒體在同步播放的時(shí)機上是不同的。
(f)動(dòng)態(tài)IP
由于現在很多用戶(hù)都是撥號上網(wǎng),在這種情況下視頻服務(wù)器的IP是動(dòng)態(tài)的??蛻?hù)端如何及時(shí)的得知所要監控的視頻服務(wù)器的IP是必須解決的問(wèn)題。我們定義了一套CDDNS協(xié)議,視頻服務(wù)器啟動(dòng)后,會(huì )根據CDDNS協(xié)議定時(shí)向CDDNS服務(wù)器注冊自己的信息,用戶(hù)通過(guò)查詢(xún)CDDNS服務(wù)器就可以獲得視頻服務(wù)器的IP。
(g)移動(dòng)目標偵測
監控時(shí)的很多場(chǎng)景通常是靜止的,一旦有運動(dòng)目標,用戶(hù)希望能夠得到通知。在開(kāi)發(fā)偵測算法時(shí),偵測閾值的選取是要特別研究的問(wèn)題,需要考慮攝像機的噪音、現場(chǎng)的光照、移動(dòng)目標的尺寸、速度等眾多問(wèn)題。
(h)文件系統
有的視頻服務(wù)器帶有本地存儲功能,這樣可以有效防止網(wǎng)絡(luò )存在故障時(shí)重要數據的丟失??紤]到通用性,建議開(kāi)發(fā)廠(chǎng)商選擇主流的文件系統。在DM642平臺上實(shí)現時(shí),在只有TI BIOS的支持的情況下,我們實(shí)現了FAT32文件系統,實(shí)踐證明它穩定可靠,用戶(hù)也樂(lè )于接受。如果開(kāi)發(fā)廠(chǎng)商可以運行成功操作系統,則文件系統就很簡(jiǎn)單了,可以不用再單獨考慮。
(i)文件存儲格式
一般開(kāi)發(fā)廠(chǎng)商應該開(kāi)發(fā)兩種文件存儲格式:專(zhuān)用格式和通用格式。對于強調保密性的用戶(hù),一般應該提供專(zhuān)用的存儲格式,開(kāi)發(fā)廠(chǎng)商通過(guò)不公開(kāi)文件格式比較容易達到保密的目的。對于強調易用性的用戶(hù),一般應該將數據存儲為AVI文件,然后提供用戶(hù)可安裝的插件。
(g)自動(dòng)撥號
這是和動(dòng)態(tài)IP相關(guān)的問(wèn)題,之所以單獨列出,是因為問(wèn)題解決上是和CDDNS完全不相關(guān)的。開(kāi)發(fā)廠(chǎng)商需要開(kāi)發(fā)自己的pppoe等撥號協(xié)議。
以上開(kāi)發(fā)中需要解決的問(wèn)題以及一些問(wèn)題的解決方法,是我們在開(kāi)發(fā)CNVS系列視頻服務(wù)器中總結的,希望對大家有所幫助。目前以附圖解決方案為基礎的安徽創(chuàng )世公司的一系列視頻服務(wù)器產(chǎn)品已經(jīng)推向市場(chǎng)。在實(shí)際的應用中,運行穩定可靠,具有很高的性?xún)r(jià)比,受到了眾多用戶(hù)的肯定。這也從一個(gè)側面證明了這種解決方案的合理性與優(yōu)越性。
最后,我們還要指出的是:對于以上解決方案,由于集中解決了很多在音視頻領(lǐng)域應用的共性問(wèn)題,所以通過(guò)較小的改動(dòng),就可以應用于其他的產(chǎn)品領(lǐng)域。如便攜錄像機(PVR)、可視電話(huà)等,都是開(kāi)發(fā)廠(chǎng)商可以考慮的擴展應用領(lǐng)域。