文件標(biāo)識碼: B
文章編號: 0258-7998(2011)12-0025-04
在嵌入式車載監(jiān)控終端的應(yīng)用中,設(shè)備運(yùn)行穩(wěn)定可靠、監(jiān)控視頻壓縮率和分辨率及多種功能可根據(jù)需要定制等性能指標(biāo),已成該領(lǐng)域關(guān)鍵的應(yīng)用需求。但已有的解決方案存在如下不足:(1)按照視頻服務(wù)器來設(shè)計[1],只能點(diǎn)播回放而不能做進(jìn)一步的數(shù)據(jù)分析;(2)設(shè)備主要目的是用于定位移動設(shè)備的位置,而對視頻和信息數(shù)據(jù)的處理不夠詳細(xì)[2];(3)作為通用型的設(shè)計[3],并不適應(yīng)特定的環(huán)境。本文針對列車使用的特定環(huán)境及以上方案的不足,設(shè)計了適應(yīng)列車特點(diǎn)的可定制、可分析監(jiān)控數(shù)據(jù)的列車專用型監(jiān)控系統(tǒng)。
本系統(tǒng)使用的主控芯片為Hi3512,是深圳華為海思半導(dǎo)體有限公司推出的第二代嵌入式高性能通信多媒體處理芯片,其硬件支持H.264和MJPEG等多種協(xié)議[4],可廣泛應(yīng)用于實(shí)時視頻通信、數(shù)字圖像監(jiān)控、網(wǎng)絡(luò)攝像機(jī)等領(lǐng)域。
1 列車車載監(jiān)控的總體結(jié)構(gòu)
車載監(jiān)控主要用于汽車,列車使用相對較少,主要原因在于列車上的電源系統(tǒng)差異較大,同時列車對車載產(chǎn)品的安全等級要求較高,需要經(jīng)過相關(guān)部門的嚴(yán)格檢驗才能使用。
本文設(shè)計的嵌入式列車車載監(jiān)控系統(tǒng)由嵌入式列車車載錄像機(jī)和PC端錄像回放分析系統(tǒng)兩部分組成。由于列車存在移動距離遠(yuǎn)、行駛地點(diǎn)偏僻等特點(diǎn),使得實(shí)時監(jiān)控并不適用于列車。同時考慮到列車的運(yùn)行時間較長,因此選擇較低成本較大容量的硬盤作為監(jiān)控錄像存儲介質(zhì)。列車運(yùn)行到站后,將硬盤取下到PC端做回放分析。
PC端回放分析軟件不僅要回放音視頻監(jiān)控畫面,更重要的是要取出混合于視頻中的機(jī)車號、機(jī)車速度、機(jī)車位置、車重、計長等信息數(shù)據(jù)和各種報警信息。這些信息數(shù)據(jù)和報警信息是通過串口從機(jī)車安全信息綜合監(jiān)控裝置(TAX箱)采集進(jìn)監(jiān)控系統(tǒng),然后與音視頻文件一起混合打包,最后在PC端分離,做進(jìn)一步分析。通常的機(jī)車TAX箱上能夠監(jiān)控到機(jī)車運(yùn)行狀況的各種信息,并且可以實(shí)時顯示出來,但是并不能保存下來。而通過本系統(tǒng),就可以在回放視頻監(jiān)控畫面的同時,回放機(jī)車運(yùn)行的一切操作信息,對分析監(jiān)控機(jī)車的運(yùn)行狀況,有非常重要的作用。
本文設(shè)計的列車車載監(jiān)控系統(tǒng),可以同時錄制4路視頻,其中有2路視頻用于監(jiān)控機(jī)車主要部件的運(yùn)行狀況,傳輸至駕駛艙進(jìn)行實(shí)時顯示,并同時寫入錄像文件中;另2路視頻監(jiān)控并記錄駕駛員的操作,以預(yù)防操作失誤。這樣一個文件就能全面監(jiān)控列車的運(yùn)行信息、機(jī)器狀況、駕駛員操作、現(xiàn)場環(huán)境狀況等各種信息,為列車的運(yùn)行提供了安全保障,可以滿足分析潛在隱患、查找分析事故原因等多種功能要求。
2 嵌入式車載系統(tǒng)的硬件設(shè)計
主控芯片采用華為海思的Hi3512,該芯片是基于H.264 BP算法的視頻壓縮芯片,采用ARM9+DSP+硬件加速引擎多核的高度集成的SoC架構(gòu),具備強(qiáng)大的視頻處理能力。片內(nèi)具有獨(dú)立的16 KB的指令cache和16 KB的數(shù)據(jù)cache,內(nèi)置MMU。內(nèi)嵌的DSP內(nèi)核具有3個ALU,8級流水線設(shè)計,支持MPEG-4 AVC/H.264等協(xié)議。
整機(jī)硬件框圖如圖1所示,系統(tǒng)采集到的模擬視頻信號和模擬音頻信號,經(jīng)過A/D轉(zhuǎn)換后送入Hi3512芯片中的DSP進(jìn)行壓縮;同時又將采集到的數(shù)字信號進(jìn)行合成, 經(jīng)D/A轉(zhuǎn)換后送入駕駛艙實(shí)時顯示。車次號、機(jī)車號、機(jī)車速度、機(jī)車位置、車重、計長等信息數(shù)據(jù)和各種警報信息等TAX箱數(shù)據(jù),通過RS485傳入主控芯片,與壓縮好的音視頻數(shù)據(jù)一起混合打包和存儲。
本系統(tǒng)的轉(zhuǎn)換器采用Techwell公司的TW2835,該芯片可以同時支持4路模擬音頻輸入,4路模擬視頻輸入,1路模擬音頻輸出,2路模擬視頻輸出。Flash用于存儲機(jī)內(nèi)嵌入式Linux操作系統(tǒng)和應(yīng)用程序等相關(guān)文件。DDR2作為程序運(yùn)行內(nèi)存使用。SATA接口與硬盤連接,用于存儲錄像文件。RS232接口用于調(diào)試機(jī)內(nèi)軟件。網(wǎng)絡(luò)接口用于下載機(jī)內(nèi)軟件。USB接口可以升級機(jī)內(nèi)軟件,也可以用于存儲或?qū)С鲣浵裎募?br/> 列車上的電源為110 V直流電源。由于列車上的用電設(shè)備多,電路復(fù)雜,因此,列車上的用電設(shè)備對可靠性、穩(wěn)定性等要求很高,需要經(jīng)過相關(guān)部門專業(yè)檢測才能使用。本系統(tǒng)電源部分電路可以適應(yīng)輸入電壓在60 V~130 V之間的變化,峰值可過濾300 V,穩(wěn)定輸出為12 V且已經(jīng)通過相關(guān)部門的檢測。圖2是車載監(jiān)控系統(tǒng)電源部分的電路。
3 嵌入式車載系統(tǒng)的軟件設(shè)計
該嵌入式列車車載監(jiān)控系統(tǒng)采用嵌入式Linux系統(tǒng)[5],海思公司針對Hi3512芯片,提供了一個Linux的軟件開發(fā)包(SDK)。SDK中包括基于U-boot1.1.4開發(fā)的Bootloader和基于標(biāo)準(zhǔn)Linux內(nèi)核2.6.14移植的Linux內(nèi)核文件,以及基于busybox 1.1.2版本制作的根文件系統(tǒng),也包含了一些常用的Linux命令。用戶程序開發(fā)庫則依賴于glibc 2.3.4版本。同時還提供了音視頻開發(fā)工程的函數(shù)庫,利用這些函數(shù)庫,用戶可以比較容易地直接使用硬件資源,以快速開發(fā)充分利用芯片性能的用戶應(yīng)用程序。
本系統(tǒng)的應(yīng)用程序用來完成控制視頻的采集、壓縮、存儲等功能。應(yīng)用軟件采用模塊化設(shè)計,分為VI(VideoInput)、AI(AudioInput)、VIU(VideoInsertUserdate)等幾個模塊,當(dāng)需要時可加載運(yùn)行。
主控芯片硬件支持H.264編碼和解碼,并且具有基于H.264視頻壓縮的一系列優(yōu)點(diǎn)[6],本系統(tǒng)選擇H.264視頻編解碼處理視頻。音頻部分采用8 kHz采樣率、16 bit精度的ADPCM(Adaptive Differential Pulse Modulation)編碼。
視頻、音頻、信息數(shù)據(jù)分別按照各自規(guī)則壓縮編碼、添加時間戳,最后混合打包成一個文件。此文件可以在監(jiān)控機(jī)上回放,也可以在PC端做進(jìn)一步分析。
圖3為音視頻采集復(fù)合軟件模塊流程圖,圖4為用戶數(shù)據(jù)插入軟件模塊流程圖。
4 PC端分析回放系統(tǒng)設(shè)計
錄制的音視頻文件有一個文件頭,其中保存一些固定信息,如車次、司機(jī)號、錄像文件通道、制式、碼率以及清晰度等,其后是交錯排列的音頻幀和視頻幀。其中信息數(shù)據(jù)幀添加在視頻幀中,根據(jù)H.264標(biāo)準(zhǔn),I幀包含的信息量大,為關(guān)鍵幀。以每秒25幀的錄制速度為例,每秒只有一幀I幀,其余為P幀,P幀包含的是與前一幀的差值。同時,TAX箱中的數(shù)據(jù)并不是更新得很快,所以在每秒1幀的I幀中插入TAX數(shù)據(jù),P幀為全部視頻數(shù)據(jù),這樣就能夠滿足存儲所有的TAX箱數(shù)據(jù),也大大減小了冗余數(shù)據(jù)的存儲。必要時也可添加TAX箱數(shù)據(jù)到P幀,其中音、視頻幀交錯排列,音頻幀就可以不需要時間戳等與視頻幀同步的信息,解碼完一幀視頻數(shù)據(jù)后立即解碼音頻幀,就可以做到音視頻同步。
視頻幀結(jié)構(gòu)如圖5所示。音頻幀結(jié)構(gòu)如圖6所示。
其中音視頻幀數(shù)據(jù)都是8 B對齊,即包括幀頭在內(nèi),占用磁盤空間大小為8的整數(shù)倍個字節(jié),當(dāng)一幀數(shù)據(jù)不是8的整數(shù)倍時,末尾加0填充,這樣解碼時就可以快速搜索到幀頭,在用戶拉動進(jìn)度條跳播時,可以快速定位。
根據(jù)視頻文件結(jié)構(gòu),PC端視頻文件處理的主程序結(jié)構(gòu)如下:
while (1)
{
Int nFrameType = 0;//取4 B的數(shù)據(jù),標(biāo)識符以
//4 bit加以區(qū)別
if(m_pVideoWnd->Search(filename,&nFrameType)==-1)
break;
switch (nFrameType)
{
case FRAME_I_TYPE://視頻I幀幀頭,標(biāo)識符x0dc
{
Userdate(); //提取用戶數(shù)據(jù),如TAX箱數(shù)據(jù)
Displayframe(); //送視頻解碼器,
//以及直接顯示到屏幕
}
break;
case FRAME_P_TYPE://視頻P幀幀頭,標(biāo)識符x1dc
{
Displayframe()//查找到本幀前一個I幀,
//然后送解碼器并顯示
}
break;
case FRAME_A_TYPE://音頻幀頭,標(biāo)識符x3wb
{
Playsound();//提取音頻幀數(shù)據(jù),
//送音頻解碼器
}
break;
default:
break;
}
}
其中,視頻幀中的TAX箱數(shù)據(jù)和視頻數(shù)據(jù)是放在一起的,當(dāng)判斷出是視頻幀后,程序立即進(jìn)入TAX箱數(shù)據(jù)提取,提取的TAX箱數(shù)據(jù)送到TAX箱數(shù)據(jù)的處理線程,將車次、司機(jī)號、速度、公里標(biāo)等信息輸出到屏幕上相應(yīng)位置。提取出TAX箱數(shù)據(jù)后的視頻幀數(shù)據(jù),送入H.264視頻解碼器,視頻解碼后輸出的是YUV視頻數(shù)據(jù),再借助微軟公司的DirectX SDK9.0中的Directshow,將視頻YUV數(shù)據(jù)繪制到用戶屏幕。
判斷出是音頻幀后,將音頻幀中的音頻數(shù)據(jù),送入音頻解碼器。注意音頻幀數(shù)據(jù)中還包含有音頻幀頭,其幀頭中包含的信息是幀長度和循環(huán)次數(shù)信息,解碼后輸出的是脈碼調(diào)制PCM(Pulse Code Modulation)錄音原始音頻采樣數(shù)據(jù)。PCM音頻數(shù)據(jù)也通過微軟公司的DirectX SDK9.0中的Directsound進(jìn)行回放。需要注意的是,音頻壓縮幀是160 B/幀,解碼后是480 B/幀。逐幀音頻回放時會有停頓的情況,若將多幀融合,再做回放,又會產(chǎn)生明顯的音視頻不同步現(xiàn)象,所以最終是將兩幀音頻合在一起一次回放。
PC端軟件是基于Microsoft Visual Studio 2005 MFC文檔/視圖結(jié)構(gòu)開發(fā)的,其中,視頻解碼和音頻解碼均使用了海思公司提供的解碼庫,音視頻回放使用了DirectX SDK9.0。
本文給出了一種基于Hi3512芯片的嵌入式列車車載監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)方案,Hi3512采用ASIC芯片硬件實(shí)現(xiàn)視頻的編解碼,與采用ARM芯片加DSP軟件編解碼方案相比,開發(fā)難度和成本都比較低。使用與Hi3512芯片相配合的操作系統(tǒng)和應(yīng)用軟件開發(fā)包,進(jìn)一步降低了系統(tǒng)的開發(fā)周期和成本。同時,本文還介紹了一種視頻信號中混合機(jī)車TAX箱信號的方法以及視頻信號混合機(jī)車運(yùn)行信號的設(shè)計和回放分析提取的具體流程。近一年的調(diào)試和實(shí)際運(yùn)行測試表明,本設(shè)計產(chǎn)品能夠完成最初的設(shè)計要求,可以規(guī)?;褂?,有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1] 孫戈,郭小玄.基于Hi3510的Linux嵌入式視頻服務(wù)器的設(shè)計[J].煤炭技術(shù),2009,28(11):146-148.
[2] 周輝,葉樺,仰燕蘭.基于WebGIS與車載移動視頻的智能車輛監(jiān)控系統(tǒng)[J].東南大學(xué)學(xué)報,2010,40:192-197.
[3] 李淵,于海勛.基于Hi3510的車載監(jiān)控系統(tǒng)的設(shè)計[J].微計算機(jī)應(yīng)用,2008,29(1):67-69.
[4] 深圳市海思半導(dǎo)體有限公司.Hi3511/Hi3512硬件設(shè)計用戶指南[z].2009.
[5] 深圳市海思半導(dǎo)體有限公司.Hi3511/Hi3512_linux開發(fā)環(huán)境用戶指南[z].2008.
[6] 畢厚杰.新一代視頻壓縮標(biāo)準(zhǔn)—H.264/AVC[M].北京:人民郵電出版社,2005.