基于DM642的智能視頻監(jiān)控系統(tǒng)的DSP實(shí)現(xiàn)
DSP軟件包括自啟動(dòng)、初始化、和線程創(chuàng)建,流程如圖2所示。
本文引用地址:http://butianyuan.cn/article/101027.htm圖2中第五步動(dòng)態(tài)創(chuàng)建了1個(gè)算法處理線程(ProcessTsk)、2個(gè)PCI通信線程(SendTsk,ReceiveTsk)以及一個(gè)中斷服務(wù)子程序(PCI_ISR):ProcessTsk根據(jù)客戶端為每個(gè)通道設(shè)定的監(jiān)控規(guī)則,對(duì)通道中的圖像進(jìn)行算法分析,若有目標(biāo)違規(guī),則記錄違規(guī)場(chǎng)景,產(chǎn)生報(bào)警信息,否則送出原始圖像。SendTsk負(fù)責(zé)把ProcessTsk產(chǎn)生的報(bào)警信息或者圖像通過(guò)PCI傳輸?shù)絇C端;ReceiveTsk負(fù)責(zé)接收來(lái)自本地板卡的模擬攝像頭和來(lái)自PC端的網(wǎng)絡(luò)攝像頭圖像,以及PC端來(lái)的信息。并傳遞給ProcessTsk;PCI_ISR負(fù)責(zé)監(jiān)聽(tīng)來(lái)自PC端的請(qǐng)求,根據(jù)不同請(qǐng)求發(fā)送不同的旗語(yǔ),控制線程間的運(yùn)行。
主機(jī)服務(wù)器準(zhǔn)備傳輸控制命令或者圖像的時(shí)候,向DSP發(fā)送中斷請(qǐng)求。PCI_ISR將響應(yīng)這些請(qǐng)求,根據(jù)主機(jī)服務(wù)器的不同信息向其他線程發(fā)送不同的控制旗語(yǔ):如果是PC端接收一幀圖像完畢,則向SendTsk發(fā)旗語(yǔ)PCI_READ_OK,表示可以接收下一幀圖像;如果是斷開(kāi)、連接通道請(qǐng)求,則向ReceiveTsk發(fā)送旗語(yǔ)PCI_WRITE_OK,表示可以接收信息。ReceiveTsk接收網(wǎng)絡(luò)攝像機(jī)或者模擬攝像機(jī)圖像和控制命令。如果收到圖像,將其存儲(chǔ)在SDRAM的一個(gè)緩沖區(qū)中,以待進(jìn)行算法分析;如果收到控制命令,將其存儲(chǔ)在由PC、DSP共同維護(hù)的一個(gè)緩沖區(qū)中。然后發(fā)起SCOM通信,把信息傳送到ProcessTsk維護(hù)的SCOM中。SCOM是RF5框架中的通信模塊,提供了隊(duì)列(Queue)和旗語(yǔ)(Semaphore)的雙重功能。ProcessTsk收到信息后,會(huì)使用視頻緩沖區(qū)和控制命令緩沖區(qū)中的數(shù)據(jù)作為算法參數(shù)進(jìn)行計(jì)算。ProcessTsk計(jì)算完成后,會(huì)產(chǎn)生相應(yīng)的結(jié)果,比如警報(bào)或者處理信息。這些數(shù)據(jù)會(huì)保存在一個(gè)字節(jié)數(shù)組中,然后將其打包封裝成一個(gè)Message對(duì)象,將其發(fā)送到SendTsk維護(hù)的SCOM中,SendTsk接收到這個(gè)Message包后,對(duì)其進(jìn)行相應(yīng)的處理,然后發(fā)送到PC主機(jī)。線程通信如圖3所示。
·PC端軟件
在服務(wù)器主機(jī)端,主要實(shí)現(xiàn)三個(gè)功能:(1)接收來(lái)自網(wǎng)絡(luò)攝像頭的視頻流并解碼,對(duì)應(yīng)模塊為網(wǎng)絡(luò)攝像機(jī)模塊;(2)構(gòu)建用戶界面,即客戶端模塊,記錄用戶算法設(shè)置、控制命令等,用戶可以根據(jù)自己的需求在規(guī)則設(shè)置界面中對(duì)特定的通道設(shè)置算法參數(shù)和控制命令等;(3)將圖像數(shù)據(jù)和算法參數(shù)、控制命令傳給DSP端,對(duì)應(yīng)模塊為后臺(tái)服務(wù)模塊。
評(píng)論