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