呂金娜,張志軍
(1.河南科技學(xué)院,河南新鄉(xiāng)453003;2.空軍工程大學(xué),北京100195)
隨著網(wǎng)絡(luò)技術(shù)與多媒體技術(shù)的發(fā)展,嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)廣泛應(yīng)用于智能小區(qū)、交通系統(tǒng)、通信系統(tǒng)、金融系統(tǒng)等領(lǐng)域.這些系統(tǒng)支持錄像監(jiān)控、視頻回放、攝像機(jī)遠(yuǎn)程控制等功能,且具有體積小、一體化、可操作性強(qiáng)、存儲(chǔ)容量大、易維護(hù)等特點(diǎn),但系統(tǒng)開放性較差、結(jié)構(gòu)差異較大、尤其在多路存儲(chǔ)與檢索方案方面,結(jié)構(gòu)復(fù)雜,效率低,非模塊化結(jié)構(gòu),可復(fù)用性差.視頻存儲(chǔ)與檢索是視頻監(jiān)控系統(tǒng)的關(guān)鍵部分,然而在多路存儲(chǔ)與檢索時(shí)造成的I/O瓶頸,以及多用戶回放的穩(wěn)態(tài)性和連續(xù)性較差等問(wèn)題容易導(dǎo)致整個(gè)監(jiān)控系統(tǒng)的效率低下與不穩(wěn)定性[1].針對(duì)以上存在的視頻存儲(chǔ)與檢索問(wèn)題,同時(shí)為了提高網(wǎng)絡(luò)數(shù)字視頻監(jiān)控系統(tǒng)的多路視頻存儲(chǔ)與多用戶同時(shí)檢索的效率與模塊化的通用性,基于組件化思想,提出一種多維硬盤存儲(chǔ)調(diào)度方案,有效地解決了I/O瓶頸問(wèn)題,提高了視頻存儲(chǔ)的高效快捷性.
B/S架構(gòu)的網(wǎng)絡(luò)數(shù)字視頻監(jiān)控系統(tǒng)分為瀏覽器、前方監(jiān)控端、arm-Linux服務(wù)器、存儲(chǔ)磁盤,其結(jié)構(gòu)如圖1.本方案原型系統(tǒng)的arm-Linux服務(wù)器采用組件化思想設(shè)計(jì)分為網(wǎng)絡(luò)通信組件、視頻采集和壓縮組件、視頻存儲(chǔ)組件、視頻檢索組件和SQLite組件:
圖1 整體框架
(1)網(wǎng)絡(luò)通信組件包括Webserver組件與CGI組件,Webserver實(shí)現(xiàn)TCP/IP協(xié)議、處理用戶請(qǐng)求、實(shí)現(xiàn)獨(dú)立通信.CGI是嵌入式Web服務(wù)器與外部擴(kuò)展應(yīng)用程序交互的一種標(biāo)準(zhǔn)接口,實(shí)現(xiàn)瀏覽器與前端設(shè)備的動(dòng)態(tài)數(shù)據(jù)交互.
(2)視頻采集和壓縮組件通過(guò)串口通信采集前端設(shè)備拍攝的視頻,采用H.264的編碼標(biāo)準(zhǔn)實(shí)現(xiàn)硬件視頻壓縮[2-3].
(3)視頻存儲(chǔ)組件負(fù)責(zé)把視頻采集與壓縮組件編碼壓縮好的H.264視頻數(shù)據(jù)通過(guò)合理的視頻調(diào)度策略存入磁盤,并將視頻文件索引信息存入SQLite數(shù)據(jù)庫(kù)相關(guān)信息表.
(4)視頻檢索組件根據(jù)用戶提供的視頻特征信息利用SQLite數(shù)據(jù)庫(kù)檢索視頻文件,通過(guò)網(wǎng)絡(luò)傳輸給瀏覽器[4],并且調(diào)用設(shè)計(jì)的檢索控制策略分配多用戶同時(shí)請(qǐng)求.
(5)SQLite組件主要負(fù)責(zé)視頻索引的管理及數(shù)據(jù)庫(kù)的維護(hù),并為上層程序提供數(shù)據(jù)查詢、數(shù)據(jù)存取和數(shù)據(jù)庫(kù)管理的編程接口.
在嵌入式視頻監(jiān)控系統(tǒng)中,視頻數(shù)據(jù)的存儲(chǔ)需要占用大量的空間,往往要外掛多個(gè)硬盤的方法,而且長(zhǎng)時(shí)間的視頻數(shù)據(jù)存儲(chǔ)需要經(jīng)常更換硬盤,為此出現(xiàn)了多硬盤設(shè)計(jì).然而現(xiàn)有多數(shù)設(shè)計(jì)存在著不適用性,如數(shù)據(jù)安全性考慮得不周全、通信效率低、價(jià)格昂貴、性價(jià)比低等,在多硬盤情況下如何進(jìn)行有效的硬盤存儲(chǔ)調(diào)度,使得嵌入式視頻監(jiān)控系統(tǒng)的多路視頻同時(shí)存儲(chǔ)效率高是視頻存儲(chǔ)的關(guān)鍵問(wèn)題[5-6].
傳統(tǒng)的輪巡法是將所有硬盤組成一個(gè)循環(huán)鏈表,先將當(dāng)前所有要存儲(chǔ)的視頻信息存儲(chǔ)于一個(gè)硬盤中,待該硬盤存滿了以后,再將信息存到下一個(gè)硬盤,如此循環(huán)下去,一直到鏈表最后的一個(gè)硬盤滿了,再將第一個(gè)硬盤的視頻信息覆蓋.這種方法適用于存儲(chǔ)路數(shù)比較少的簡(jiǎn)單系統(tǒng),當(dāng)路數(shù)多時(shí),容易造成多路同時(shí)訪問(wèn)一個(gè)硬盤,而其他硬盤長(zhǎng)時(shí)間又沒(méi)有訪問(wèn),使得硬盤訪問(wèn)效率低下,成為整個(gè)監(jiān)控系統(tǒng)的瓶頸[7].
以存儲(chǔ)線程多少為依據(jù)的多硬盤存儲(chǔ)調(diào)度算法將目前存儲(chǔ)線程最少的硬盤作為當(dāng)前最新的存儲(chǔ)硬盤,這種方法很好的提高了硬盤訪問(wèn)效率.但是由于監(jiān)控系統(tǒng)是一種實(shí)時(shí)系統(tǒng),在視頻存儲(chǔ)的同時(shí)還有視頻的檢索的回放,而當(dāng)某硬盤存儲(chǔ)線程較少,不過(guò)檢索回放線程較多時(shí)還是容易造成該硬盤的I/O負(fù)載過(guò)重問(wèn)題,降低了整個(gè)系統(tǒng)的效率.
多維硬盤存儲(chǔ)調(diào)度算法根據(jù)硬盤根據(jù)特定閾值和空閑空間比作為條件進(jìn)行排序,考慮回放線程的多少來(lái)分配下一個(gè)存儲(chǔ)請(qǐng)求,很好地解決了I/O瓶頸問(wèn)題,使視頻存儲(chǔ)相對(duì)平均分配硬盤,提高了視頻存儲(chǔ)效率.
實(shí)現(xiàn)設(shè)計(jì)η-dispatching硬盤信息結(jié)構(gòu)diskInfo如下:
定義一個(gè)diskInfo結(jié)構(gòu)數(shù)組記錄當(dāng)前硬盤的信息:
η-dispatching算法步驟如下:
Step1:計(jì)算系統(tǒng)硬盤可用的空間大小freeSpace;
Step2:計(jì)算系統(tǒng)硬盤的空間大小totalSpace;
Step5:計(jì)算出各存儲(chǔ)硬盤最大存儲(chǔ)線程數(shù)目:maxTn=Store_needKm×ηi;
Step6:計(jì)算出各存儲(chǔ)硬盤存儲(chǔ)線程數(shù)目閾值:如果 ηi>η時(shí),amaxTn=Store_needKm×η,否則amaxTn=Store_needKm×ηi;
Step7:以η為樞軸進(jìn)行排序.把ηi≥η的硬盤按freeSpace的大小對(duì)diskInfoArr由大到小排序;把ηi≤η的硬盤按freeSpace的大小對(duì)diskInfoArr由大到小排序;
Step8:根據(jù)Sept7的diskInfoArr排序,把當(dāng)前線程訪問(wèn)數(shù)目未達(dá)到amaxTn的diskInfoArr中元素按Play_needKm的大小再次從小到大排序,然后把第一個(gè)元素而且分配給當(dāng)前存儲(chǔ)線程.如果達(dá)到amaxTn,選擇下一個(gè)剩余空間比較大而且Store_needKm未達(dá)到amaxTn的存儲(chǔ)硬盤再次按Play_needKm的大小從小到大排序,然后把第一硬盤分配給最新存儲(chǔ)線程訪問(wèn)請(qǐng)求;
Step9:當(dāng)所有硬盤的線程訪問(wèn)數(shù)都達(dá)到amaxTn時(shí),把剩余空間大并且Store_needKm未達(dá)到maxTn,而且Play_needKm最小的存儲(chǔ)硬盤分配給最新存儲(chǔ)線程訪問(wèn)請(qǐng)求;
Step10:如果diskInfoArr排序的最后一個(gè)元素已經(jīng)達(dá)到maxTn,則返回?zé)o可硬盤可用.
算法流程如圖2所示:
多維硬盤存儲(chǔ)調(diào)度算法通過(guò)使用數(shù)學(xué)期望η定義閾值,有效利用磁盤空間,使存儲(chǔ)線程盡量平均的分配到各個(gè)硬盤,文獻(xiàn)[8]中提出的多硬盤存儲(chǔ)調(diào)度算法單一的以1/2作為參數(shù)確定存儲(chǔ)最大線程閾值具有一定的片面性,而且未考慮回放線程,本文的算法雖然計(jì)算稍微復(fù)雜一點(diǎn),但是都是線性計(jì)算,不增加計(jì)算復(fù)雜度,但是大大提高了視頻存儲(chǔ)的魯棒性和高效性.
算法分析:設(shè)目前有10路的視頻監(jiān)控系統(tǒng),存儲(chǔ)硬盤有5個(gè),分別是 Disk1、Disk2、Disk3、Disk4、Disk5,某一時(shí)刻,硬盤信息如表1所示,當(dāng)有新的存儲(chǔ)線程請(qǐng)求時(shí),對(duì)文獻(xiàn)[8]的存儲(chǔ)線程最小法與本文算法的比較見下表:
圖2 η-dispatching存儲(chǔ)調(diào)度算法流程
表1 當(dāng)前硬盤信息
表2 最小存儲(chǔ)線程最小法硬盤信息分析
表3 本文算法硬盤信息分析
在本文算法執(zhí)行過(guò)程中,始終考慮各硬盤剩余空間與硬盤訪問(wèn)頻率.不僅依據(jù)當(dāng)前硬盤存儲(chǔ)訪問(wèn)線程數(shù),還依據(jù)當(dāng)前硬盤回放訪問(wèn)線程確定下一個(gè)存儲(chǔ)線程的選擇硬盤.依據(jù)表1的信息,當(dāng)前未達(dá)到存儲(chǔ)線程閾值的存儲(chǔ)硬盤有Disk1、Disk2、Disk3、Disk4,依據(jù)文獻(xiàn)[8]中的算法,下一步應(yīng)該選擇Disk1,但是這樣一來(lái),當(dāng)前硬盤總線程數(shù)目就會(huì)達(dá)到5(見表2),為當(dāng)前硬盤總線程最高,容易造成該硬盤I/O瓶頸問(wèn)題.該方案同時(shí)考慮該硬盤的回放訪問(wèn)線程,根據(jù)回放線程數(shù)目的大小進(jìn)行排序,選取回放線程數(shù)目最小的硬盤Disk3作為存儲(chǔ)線程的下一個(gè)選擇硬盤(見表3),這樣達(dá)到了硬盤的線程分配相對(duì)平均,緩解某一個(gè)硬盤I/O訪問(wèn)頻率過(guò)大的壓力.
視頻存儲(chǔ)與檢索是視頻監(jiān)控系統(tǒng)的關(guān)鍵部分,本文基于組件化思想提出一種嵌入式Linux數(shù)字視頻監(jiān)控系統(tǒng)η-dispatching多維硬盤存儲(chǔ)調(diào)度方案有效地解決I/O瓶頸問(wèn)題,提高了存儲(chǔ)高效快捷性與多用戶回放的穩(wěn)態(tài)性和連續(xù)性,從而有效提高了整個(gè)視頻監(jiān)控系統(tǒng)的效率與魯棒性,同時(shí)改善了網(wǎng)絡(luò)數(shù)字視頻監(jiān)控系統(tǒng)的多路視頻存儲(chǔ)與多用戶同時(shí)檢索效率與系統(tǒng)模塊化結(jié)構(gòu).
[1]Presti LL,Cascia ML.Real-Time Object Detection in Embedded VideoSurveillance Systems[J].IEEE,2008:151-154.
[2]王曉玲,王猛.基于WEB的視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2004(7):221-223.
[3]馮萬(wàn)梅.多硬盤視頻存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004(7):156-158.
[4]Zhou J,Ntafos S.Fault Detection Framework for Video Surveillance Systems[C].Advanced Video and Signal Based Surveillance,2008.AVSS'08.IEEE Fifth International Conference on 1-3 Sept,2008:219-226.
[5]Diakopoulos N,Volmer S.Temporally Tolerant Video Matching[C].Proc of the ACMSIGIR Workshop on Multimedia Information Retrieval,IEEE,2003:201-203.
[6]Liu Y,Li R F,Xu C.Design and Implementation of Embedded Multimedia Surveillance System[C].2008 Workshop on Kowledge Discoveryand Data Mining,2008:570-573.
[7]楊茂林,程偉明.H.264在分層網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用研究,2006,23(4):155-157.
[8]李曉丹.嵌入式H.264視頻監(jiān)控服務(wù)器軟件設(shè)計(jì)與實(shí)現(xiàn)[D].鄭州:鄭州大學(xué),2008.