基于TRIMEDIA平臺(tái)的數(shù)字監(jiān)控DVR的設(shè)計(jì)實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:本文結(jié)合實(shí)際開(kāi)發(fā)經(jīng)驗(yàn),系統(tǒng)闡述了基于PHILIPS公司TRIMEDIA平臺(tái)開(kāi)發(fā)多通道數(shù)字監(jiān)控DVR的硬件系統(tǒng)設(shè)計(jì)及關(guān)鍵技術(shù),并對(duì)開(kāi)發(fā)過(guò)程中難點(diǎn)問(wèn)題的處理提出了一些建議。
關(guān)鍵詞:嵌入式系統(tǒng);DVR TRIMEDIA;MPEG-4;代碼優(yōu)化;運(yùn)動(dòng)估計(jì);網(wǎng)絡(luò)協(xié)議棧
概述
隨著數(shù)字化時(shí)代的到來(lái),在安防監(jiān)控領(lǐng)域,集成了多媒體技術(shù)、數(shù)字圖像處理及遠(yuǎn)程網(wǎng)絡(luò)傳輸?shù)茸钚录夹g(shù)的數(shù)字監(jiān)控系統(tǒng)正在逐步取代傳統(tǒng)的模擬監(jiān)控系統(tǒng)。采用最新的嵌入式系統(tǒng)設(shè)計(jì)技術(shù)和MPEG-4壓縮編碼技術(shù)的嵌入式DVR產(chǎn)品正在逐漸引起業(yè)內(nèi)的廣泛關(guān)注。
本文介紹的針對(duì)市場(chǎng)客戶需求,利用PHILIPS公司TRIMEDIA技術(shù)平臺(tái)成功開(kāi)發(fā)的基于MPEG-4編解碼技術(shù)的長(zhǎng)虹“銳眼王”系列嵌入式數(shù)字硬盤錄象機(jī),在國(guó)內(nèi)居于行業(yè)領(lǐng)先水平,取得了較好的社會(huì)及經(jīng)濟(jì)效益。
圖1 硬件的系統(tǒng)結(jié)構(gòu)圖
硬件系統(tǒng)設(shè)計(jì)(以4路機(jī)為例)
如圖1所示,系統(tǒng)主要由以下幾個(gè)模塊組成:視音頻編碼器、主處理器、硬盤控制器、網(wǎng)絡(luò)控制器、PCI橋、PCI總線仲裁器、系統(tǒng)存儲(chǔ)器、外圍控制器和其他系統(tǒng)模塊。
視音頻編碼器
該模塊主要由視頻解碼器、音頻CODEC和DSP處理器組成。其中視頻解碼器將模擬視頻轉(zhuǎn)化為數(shù)字視頻,音頻CODEC將模擬音頻轉(zhuǎn)化為數(shù)字音頻,并通過(guò)專用接口傳輸給DSP處理器進(jìn)行編碼。DSP編碼后的數(shù)據(jù)通過(guò)PCI總線傳輸給主處理器,用于本地存儲(chǔ)和網(wǎng)絡(luò)傳輸。
主處理器
主處理器完成的工作包括:
從PCI總線上獲得編碼視頻、音頻數(shù)據(jù);
將編碼后的視頻、音頻數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸;
將編碼后的視頻、音頻數(shù)據(jù)進(jìn)行本地存儲(chǔ);
實(shí)現(xiàn)視頻預(yù)覽及音頻監(jiān)聽(tīng);
接收外圍控制器的命令,并將相關(guān)操作通知相關(guān)設(shè)備;
從硬盤中讀出存儲(chǔ)的數(shù)據(jù),并進(jìn)行本地播放及與播放相關(guān)的各項(xiàng)操作;
在系統(tǒng)啟動(dòng)時(shí),給其他DSP處理器加載程序代碼;
運(yùn)行嵌入式操作系統(tǒng),進(jìn)行系統(tǒng)管理和進(jìn)程調(diào)度。
硬盤控制器
該控制器負(fù)責(zé)從PCI總線上獲得數(shù)據(jù)流,并將數(shù)據(jù)流以特定的格式存儲(chǔ)到硬盤中。
網(wǎng)絡(luò)控制器
該控制器負(fù)責(zé)從PCI總線上獲得數(shù)據(jù)流,并將數(shù)據(jù)流以特定的格式實(shí)現(xiàn)網(wǎng)絡(luò)傳輸。
PCI橋
負(fù)責(zé)PCI橋編碼器之間的總線仲裁以及硬盤控制器和網(wǎng)絡(luò)控制器之間的總線仲裁。
PCI總線仲裁器
負(fù)責(zé)兩個(gè)PCI橋和主DSP之間的總線仲裁,使主DSP獲得相應(yīng)較高的優(yōu)先級(jí),進(jìn)行有效的非PCI總線操作,以便和外圍控制器之間進(jìn)行有效數(shù)據(jù)傳輸。
系統(tǒng)存儲(chǔ)器
系統(tǒng)存儲(chǔ)器由系統(tǒng)啟動(dòng)代碼存儲(chǔ)器、子系統(tǒng)啟動(dòng)代碼存儲(chǔ)器、程序存儲(chǔ)器和雙端口RAM組成。其中系統(tǒng)啟動(dòng)代碼存儲(chǔ)器存儲(chǔ)主處理器的BootLoader代碼,主處理器的程序代碼存儲(chǔ)在程序存儲(chǔ)器中。雙端口RAM負(fù)責(zé)外圍控制器和主處理器之間的數(shù)據(jù)交換。子系統(tǒng)啟動(dòng)代碼存儲(chǔ)器存儲(chǔ)4路編碼處理器的啟動(dòng)代碼。編碼處理器的主代碼由主處理器在運(yùn)行時(shí)進(jìn)行加載,程序可以放于程序存儲(chǔ)器中,也可放于硬盤中。
外圍控制器
主要負(fù)責(zé)外圍的一些操作控制,例如按鍵輸入、遙控器輸入、報(bào)警器輸入和輸出等。
其他系統(tǒng)模塊
包括電源管理等其他系統(tǒng)設(shè)備。
項(xiàng)目開(kāi)發(fā)過(guò)程中的難點(diǎn)及關(guān)鍵技術(shù)
高速數(shù)字電路設(shè)計(jì)
TRIMEDIA方案中處理器主頻往往超過(guò)100MHz,對(duì)信號(hào)完整性及EMC性能構(gòu)成極大挑戰(zhàn)。電路板設(shè)計(jì)應(yīng)按4~6層板考慮。在元器件布局及布線過(guò)程中嚴(yán)格遵守高速電路設(shè)計(jì)原則,確保系統(tǒng)功能的實(shí)現(xiàn)以及整機(jī)性能指標(biāo)達(dá)到檢測(cè)標(biāo)準(zhǔn)。
CODEC設(shè)計(jì)實(shí)現(xiàn)
評(píng)價(jià)嵌入式DVR最重要的指標(biāo)是CODEC實(shí)現(xiàn)的質(zhì)量,直接體現(xiàn)在同等碼率條件下,音視頻編解碼算法及代碼執(zhí)行的效率。設(shè)計(jì)優(yōu)良的CODEC應(yīng)具有如下特征:
·高性能的運(yùn)動(dòng)估計(jì)
MPEG-4編碼的運(yùn)算量主要集中在運(yùn)動(dòng)估計(jì)部分,運(yùn)動(dòng)估計(jì)的好壞直接影響編碼的質(zhì)量和效率。運(yùn)動(dòng)估計(jì)可采用多種算法:一是基于碼率失真模型的運(yùn)動(dòng)估計(jì);二是碼率受限的模式選擇;三是基于時(shí)域和空域相關(guān)的自適應(yīng)預(yù)測(cè);四是大搜索范圍預(yù)測(cè);五是無(wú)限制的運(yùn)動(dòng)估計(jì)。算法在保證較高的計(jì)算效率基礎(chǔ)上,估計(jì)的精度應(yīng)接近全局運(yùn)動(dòng)估計(jì)。
·高精度的DCT/IDCT變換
在Trimedia定點(diǎn)處理器上,實(shí)現(xiàn)的DCT/IDCT變換算法在保證高的計(jì)算效率基礎(chǔ)上,也要保證運(yùn)算精度符合IEEE 1180-1900標(biāo)準(zhǔn)。
·支持差錯(cuò)掩蓋和自動(dòng)恢復(fù)功能,即使在較差的傳輸信道上,也能有較好的圖像重建質(zhì)量。
·支持多種GOP結(jié)構(gòu),可設(shè)定M,N,以支持IBBP,IBP,IP,I等多種GOB結(jié)構(gòu)。
·С值耐枷穹直媛飾猀CIF-D1,在垂直和水平方向上能以步長(zhǎng)的倍數(shù)遞增。
·自適應(yīng)的幀場(chǎng)DCT變換,支持幀場(chǎng)運(yùn)動(dòng)估計(jì)。自適應(yīng)Inter/Intra選擇。
·精確和靈活的碼率控制,支持VBR,CBR和Hybrid 等多種碼率控制方法。
·碼流完全兼容ISO/IEC-14496-2,MPEG4 ASP@LEVEL3規(guī)范。
·解碼器根據(jù)編碼器引入的噪聲類型,自動(dòng)選擇自適應(yīng)的濾波器,具有多重去噪的能力。
·具有良好的可移植性。
基于TRIMEDIA平臺(tái)的CODEC既可自行開(kāi)發(fā),也可購(gòu)買成熟的第三方軟件庫(kù)。
BSP設(shè)計(jì)與調(diào)試
首先是最小系統(tǒng)的調(diào)試。由于最小系統(tǒng)的調(diào)試手段有限,建議使用與DEMO板相同或相近的硬件結(jié)構(gòu),這樣只需對(duì)DEMO板BSP相關(guān)的文件進(jìn)行修改,以適應(yīng)于自己的目標(biāo)板。另外,這一階段可能有許多硬件問(wèn)題尚未完全解決,會(huì)很難定位各種故障。除非有硬件調(diào)試器的支持,否則不建議在最小系統(tǒng)中使用過(guò)多未曾用過(guò)的硬件芯片。
接下來(lái)是外圍設(shè)備驅(qū)動(dòng)程序的調(diào)試??梢苑譃閮刹絹?lái)進(jìn)行:首先通過(guò)一些簡(jiǎn)單的配置及測(cè)試程序進(jìn)行硬件調(diào)試,這一階段盡可能排除各種硬件故障。接著就是調(diào)試驅(qū)動(dòng)程序本身,由于通常各種外設(shè)驅(qū)動(dòng)程序都會(huì)與操作系統(tǒng)交互信息,而且隨著信息量的增大,使得驅(qū)動(dòng)程序的運(yùn)行頻率會(huì)變得非常高。因此,設(shè)計(jì)驅(qū)動(dòng)程序時(shí),一定要注意程序的穩(wěn)定性及效率,它將直接影響到整個(gè)系統(tǒng)的性能及穩(wěn)定性。大部分通用設(shè)備的驅(qū)動(dòng)程序都可以由兩部分來(lái)實(shí)現(xiàn),一部分是與CPU相關(guān)的代碼,這部分主要是一些配置參數(shù),以及一些代碼功能,這些程序很少。另一部分就是與CPU不相關(guān)的驅(qū)動(dòng)程序代碼,它實(shí)現(xiàn)了與OS的絕大部分接口。
BSP的調(diào)試方法有如下幾種:硬件仿真器調(diào)試、純軟件方法調(diào)試、軟件調(diào)試器調(diào)試。
網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)
網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控的效果與網(wǎng)絡(luò)協(xié)議棧的性能直接相關(guān),目前使用得最多的就是TCP/IP協(xié)議棧。在TriMedia軟件架構(gòu)中,可以將網(wǎng)絡(luò)驅(qū)動(dòng)設(shè)計(jì)成pSOS網(wǎng)絡(luò)部件pNA+訪問(wèn)網(wǎng)絡(luò)接口。這樣設(shè)計(jì)的優(yōu)點(diǎn)是:上層軟件可以使用pSOS系統(tǒng)的pNA+軟件部件豐富的系統(tǒng)調(diào)用函數(shù),這些函數(shù)不但可以操作網(wǎng)絡(luò)接口,而且可以操作套節(jié)字(Socket)進(jìn)行高級(jí)TCP/IP網(wǎng)絡(luò)編程,而不需用軟件來(lái)實(shí)現(xiàn)TCP/IP協(xié)議棧。盡管如此,但往往實(shí)際效果最好的當(dāng)屬專用商用網(wǎng)絡(luò)協(xié)議棧,如FUSION公司提供的產(chǎn)品。
一般而言,網(wǎng)絡(luò)接口底層的通信協(xié)議由專用芯片硬件實(shí)現(xiàn),而上層的通信協(xié)議才需軟件編程實(shí)現(xiàn)。TRIMEDIA方案中網(wǎng)絡(luò)接口的實(shí)現(xiàn)可在PCI總線或同步串行口(SSI)掛上不同的專用網(wǎng)絡(luò)接口芯片,接入不同的通信網(wǎng)絡(luò)環(huán)境中。
當(dāng)然,如果設(shè)計(jì)成本許可,也可直接使用自帶網(wǎng)絡(luò)協(xié)議棧的網(wǎng)絡(luò)接口控制芯片(如RABBIT公司的產(chǎn)品),減小開(kāi)發(fā)工作量。
文件系統(tǒng)的實(shí)現(xiàn)
在嵌入式DVR設(shè)計(jì)中,文件系統(tǒng)的實(shí)現(xiàn)非常復(fù)雜,技術(shù)含量相當(dāng)高。與通常PC機(jī)使用的文件系統(tǒng)不同的是,嵌入式DVR中通常采用音視頻交叉存儲(chǔ)文件格式,為有效解決大量文件索引占用CPU資源過(guò)多、斷電損傷、TIME-SHIFTING等問(wèn)題,需要建立特別的AV文件系統(tǒng),在不增加冗余的同時(shí)仍能快速索引定位。該文件系統(tǒng)實(shí)現(xiàn)效率高低將直接影響到整機(jī)性能及可靠性。其中純音頻的保存、快速定位、音視頻同步問(wèn)題值得重點(diǎn)關(guān)注。由于該問(wèn)題足可構(gòu)成專題論述,本文不作深入討論。
網(wǎng)絡(luò)客戶端軟件的實(shí)現(xiàn)
目前幾乎所有的嵌入式DVR均提供網(wǎng)絡(luò)客戶端軟件以進(jìn)行遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控。主要分為內(nèi)嵌于通用 WEB瀏覽器以及專用軟件兩種類型。開(kāi)發(fā)難點(diǎn)集中在遠(yuǎn)端DVR設(shè)備的地址自動(dòng)解析識(shí)別、針對(duì)不同網(wǎng)絡(luò)帶寬情況下的碼率/幀率自適應(yīng)調(diào)整、多通道監(jiān)控。