文件標(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],,只能點播回放而不能做進(jìn)一步的數(shù)據(jù)分析;(2)設(shè)備主要目的是用于定位移動設(shè)備的位置,,而對視頻和信息數(shù)據(jù)的處理不夠詳細(xì)[2],;(3)作為通用型的設(shè)計[3],并不適應(yīng)特定的環(huán)境。本文針對列車使用的特定環(huán)境及以上方案的不足,,設(shè)計了適應(yīng)列車特點的可定制,、可分析監(jiān)控數(shù)據(jù)的列車專用型監(jiān)控系統(tǒng),。
本系統(tǒng)使用的主控芯片為Hi3512,,是深圳華為海思半導(dǎo)體有限公司推出的第二代嵌入式高性能通信多媒體處理芯片,其硬件支持H.264和MJPEG等多種協(xié)議[4],,可廣泛應(yīng)用于實時視頻通信,、數(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),、行駛地點偏僻等特點,使得實時監(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)行狀況的各種信息,,并且可以實時顯示出來,,但是并不能保存下來。而通過本系統(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)行實時顯示,,并同時寫入錄像文件中;另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)具有獨立的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)換后送入駕駛艙實時顯示,。車次號、機(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)點[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è)計與實現(xiàn)方案,,Hi3512采用ASIC芯片硬件實現(xiàn)視頻的編解碼,,與采用ARM芯片加DSP軟件編解碼方案相比,開發(fā)難度和成本都比較低,。使用與Hi3512芯片相配合的操作系統(tǒng)和應(yīng)用軟件開發(fā)包,,進(jìn)一步降低了系統(tǒng)的開發(fā)周期和成本。同時,,本文還介紹了一種視頻信號中混合機(jī)車TAX箱信號的方法以及視頻信號混合機(jī)車運(yùn)行信號的設(shè)計和回放分析提取的具體流程,。近一年的調(diào)試和實際運(yùn)行測試表明,本設(shè)計產(chǎn)品能夠完成最初的設(shè)計要求,,可以規(guī)?;褂茫袕V泛的應(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.