一種改進(jìn)的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)
掃描二維碼
隨時隨地手機(jī)看文章
1 引言 基于pc的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)在20世紀(jì)90年代末得到迅速發(fā)展,目前仍然是視頻監(jiān)控系統(tǒng)的主流,但這種系統(tǒng)有穩(wěn)定性不夠好、功耗高、軟件開放性較差的缺點(diǎn)。隨著嵌入式系統(tǒng)的廣泛應(yīng)用,出現(xiàn)了基于嵌入式的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),它結(jié)合多媒體技術(shù)、圖像處理技術(shù)、嵌入式操作系統(tǒng)技術(shù)和網(wǎng)絡(luò)技術(shù),使視頻監(jiān)控技術(shù)發(fā)展到一個新階段。當(dāng)前,這種嵌入式視頻監(jiān)控系統(tǒng)正以其體積小、功耗低、成本低、穩(wěn)定性高、操作簡單、軟件開放性好等優(yōu)點(diǎn)獲得越來越多的應(yīng)用。 2 嵌入式視頻監(jiān)控系統(tǒng)總體構(gòu)架 本系統(tǒng)由視頻監(jiān)控終端和監(jiān)視控制中心系統(tǒng)兩部分組成,如圖1所示。其中視頻監(jiān)控終端由運(yùn)行著視頻監(jiān)控軟件的嵌入式操作系統(tǒng)和攝像機(jī)構(gòu)成。攝像機(jī)采集視頻,采用h.263編碼,進(jìn)行軟件壓縮后,采用h.263編碼,利用ip網(wǎng)傳送給監(jiān)控中心,接收監(jiān)控中心的控制命令,改變監(jiān)視圖像的分辨率和幀率等參數(shù)。監(jiān)控中心一般由一臺運(yùn)行監(jiān)控中心軟件的計(jì)算機(jī)承擔(dān),接收來自遠(yuǎn)程監(jiān)控終端的壓縮視頻流,對其進(jìn)行解碼,利用顯示模塊顯示監(jiān)視畫面,同時將壓縮視頻流存儲。 3 傳統(tǒng)嵌入式視頻監(jiān)控終端方案介紹 一般的嵌入式系統(tǒng)多用單arm核的芯片作為中央處理器。arm采用risc指令集,它適合處理控制代碼,而不適合語音處理、視頻編解碼等實(shí)時數(shù)字信號處理。在網(wǎng)絡(luò)監(jiān)視終端中不但有復(fù)雜的控制代碼,還有相當(dāng)頻繁的視頻編碼任務(wù),單arm核的嵌入式系統(tǒng)很難勝任視頻監(jiān)控終端的全部工作,用這種系統(tǒng)實(shí)現(xiàn)的視頻監(jiān)控終端由于arm核本身數(shù)字運(yùn)算能力的限制,會造成視頻編碼幀率很低,不能滿足人眼對監(jiān)視視頻流暢度的需求。dsp是專門為數(shù)字信號處理設(shè)計(jì)的芯片,它具備語音、視頻應(yīng)用所需要的實(shí)時信號處理功能。如果利用arm和dsp各自的優(yōu)勢將視頻監(jiān)控終端的任務(wù)合理分配給兩個核來完成,將會大大提高整個系統(tǒng)的性能。視頻監(jiān)控終端的軟件系統(tǒng)框圖如圖2所示。 4 基于omap5912的改進(jìn)方案設(shè)計(jì) omap5912是ti公司開發(fā)的arm+dsp雙核架構(gòu)的處理器。它集成了高功效的tms320c55x數(shù)字信號處理器(dsp)和高性能arm9 risc微處理器。因此,omap5912可提供視頻壓縮編碼所需要的算術(shù)運(yùn)算集中的處理能力,同時還可提供系統(tǒng)層操作所需要的通用性能。dsp和arm通過一套共享式存儲器架構(gòu),利用ti提供的dsp/bios bridge的api,可方便地把需要大量運(yùn)算的功能交給dsp組件,以異步方式執(zhí)行,且不占用arm處理器的核心資源。對于基于omap的開發(fā),軟件開發(fā)者可利用ti獨(dú)特的dsp/bios bridge快速地完成整個系統(tǒng)的程序開發(fā),并不必分別替兩顆處理器書寫程序,也不必在較困難的dsp程序語言環(huán)境下工作。 根據(jù)嵌入式視頻監(jiān)控終端所要執(zhí)行的任務(wù),可將視頻采集模塊、網(wǎng)絡(luò)傳輸模塊、界面控制模塊和操作系統(tǒng)交由arm執(zhí)行,而把視頻編碼模塊交由dsp單獨(dú)完成。arm通過dsp/bios bridge提供的應(yīng)用程序接口控制dsp中視頻編碼任務(wù)的執(zhí)行,并與dsp交換任務(wù)運(yùn)行結(jié)果和狀態(tài)信息。在本系統(tǒng)中視頻編碼部分程序,可通過標(biāo)準(zhǔn)的多媒體應(yīng)用編程接口(mm api),使用多媒體引擎,對相關(guān)的dsp任務(wù)通過dsp api接口用dsp/bios bridge來完成;最后由dsp/bios bridge對數(shù)據(jù)、i/o流和dsp任務(wù)控制進(jìn)行協(xié)調(diào)。改進(jìn)的視頻監(jiān)控終端軟件系統(tǒng)如圖3所示。 在具體實(shí)現(xiàn)過程中,還需特別考慮dsp端視頻編碼算法的代碼優(yōu)化。 首先,合理分配片內(nèi)存儲器(速度快但容量小),把使用頻繁的變量(如各種編碼量化表、idct系數(shù)等)存放在片內(nèi)存儲器,由于原始視頻數(shù)據(jù)的數(shù)據(jù)量很大,一幀yuv420的qcif圖像,需要37 kbyte,因此,不能將一幀圖像的全部數(shù)據(jù)都存放在片內(nèi),可將一幀圖像數(shù)據(jù)通過dma分多次從片外存儲器讀入到片內(nèi)處理。 其次,盡量使用ti提供的圖像處理函數(shù)庫,即imglib(它是專門為圖像和視頻處理開發(fā)的庫,ti對該庫進(jìn)行了深度優(yōu)化,使用imglib既簡化了開發(fā)過程,又能最大限度地提高視頻編碼算法的效率)。 第三,使用dsp內(nèi)部自帶的一些特殊運(yùn)算指令(主要執(zhí)行一些簡單的算術(shù)操作,它們是由優(yōu)化的匯編代碼寫成),可提高代碼執(zhí)行的效率;最后,為了使程序的執(zhí)行效率更高,可采取一些代碼優(yōu)化技巧,例如多用并行操作,減少判斷分支轉(zhuǎn)移,合理地使用多重循環(huán),為運(yùn)算方便可將浮點(diǎn)數(shù)定點(diǎn)化,使用移位加減操作代替乘除法等。 本系統(tǒng)實(shí)現(xiàn)了雙核架構(gòu)協(xié)調(diào)工作,克服了傳統(tǒng)單arm核實(shí)現(xiàn)方案的數(shù)字運(yùn)算能力不足和單dsp核控制代碼復(fù)雜,易用性不好的缺點(diǎn)。在實(shí)際應(yīng)用中,用戶能體驗(yàn)到它所提供的監(jiān)控圖像質(zhì)量及幀率都比單arm核的系統(tǒng)有明顯提高,并且系統(tǒng)的易用性沒有因?yàn)樵黾恿薲sp核而降低。下面,將給出實(shí)驗(yàn)數(shù)據(jù),說明兩種方案的差距,讓讀者更直觀體會到改進(jìn)方案的優(yōu)勢。 5 測試結(jié)果 測試硬件平臺為單arm9核的三星s3c