應(yīng)用背景
由于寬帶網(wǎng)絡(luò)近年來(lái)在世界各地的高速發(fā)展,高品質(zhì)的音視頻壓縮技術(shù)不斷推陳出新,更高的壓縮比率加上更寬的帶寬,使得互聯(lián)網(wǎng)用戶在互聯(lián)網(wǎng)上觀看高品質(zhì)電視節(jié)目的愿望不再是幻想。美國(guó)、意大利、法國(guó)、加拿大等國(guó)網(wǎng)絡(luò)視頻市場(chǎng)的日漸成熟,國(guó)內(nèi)哈爾濱、泉州、上海等地的小試牛刀,都證明了以更強(qiáng)的互動(dòng)性作為賣點(diǎn)、基于互聯(lián)網(wǎng)技術(shù)和P2P傳輸技術(shù)的網(wǎng)絡(luò)視頻服務(wù)已經(jīng)漸成氣候。網(wǎng)絡(luò)視頻是對(duì)基于互聯(lián)網(wǎng)技術(shù)傳播的所謂寬帶視頻的統(tǒng)稱,可以是用戶自己制作、在線上傳或點(diǎn)播視頻節(jié)目,自主性和自助性強(qiáng)。各種視頻網(wǎng)站和流媒體服務(wù)器隨著人們對(duì)網(wǎng)絡(luò)視頻服務(wù)的需求快速增長(zhǎng),民營(yíng)網(wǎng)絡(luò)視頻企業(yè)更是如雨后春筍。2007年是網(wǎng)絡(luò)視頻用戶基數(shù)迅速成長(zhǎng)的一年。據(jù)CNNIC今年1月份發(fā)布中國(guó)互聯(lián)網(wǎng)調(diào)查報(bào)告,76.9%的網(wǎng)絡(luò)用戶使用網(wǎng)絡(luò)視頻,成為繼音樂(lè)、即時(shí)通信之后的第三大互聯(lián)網(wǎng)應(yīng)用。這也是網(wǎng)絡(luò)家庭娛樂(lè)應(yīng)用第一次全面超過(guò)了網(wǎng)絡(luò)商務(wù)應(yīng)用,即郵件、搜索引擎和新聞等傳統(tǒng)資訊應(yīng)用。但隨著網(wǎng)絡(luò)視頻的高速成長(zhǎng),各種黃色、暴力和反動(dòng)等垃圾信息也摻雜在網(wǎng)絡(luò)視頻中在寬帶網(wǎng)絡(luò)上肆意泛濫,嚴(yán)重影響了人們的正常工作和生活,也對(duì)社會(huì)精神文明建設(shè)和未成年人教育帶來(lái)了巨大的隱患。由于寬帶視頻網(wǎng)絡(luò)的高速數(shù)據(jù)包傳送,傳統(tǒng)的信息安全監(jiān)控設(shè)備在這方面顯得力不從心,因此,我們提出應(yīng)用關(guān)鍵幀提取技術(shù)來(lái)抽取網(wǎng)絡(luò)視頻中的關(guān)鍵幀,從而減小處理的負(fù)載和存儲(chǔ)空間,降低設(shè)備成本并提高處理效率。建立相應(yīng)的垃圾視頻關(guān)鍵幀匹配庫(kù),通過(guò)視頻關(guān)鍵幀匹配算法和模式,從高速的視頻流中監(jiān)測(cè)出垃圾信息。應(yīng)用此視頻監(jiān)控系統(tǒng)和其他網(wǎng)絡(luò)安全設(shè)備,可以為企業(yè)、學(xué)校和家庭打造一個(gè)高速干凈的網(wǎng)絡(luò)視頻環(huán)境,讓人們輕松盡情享受寬帶視頻服務(wù)。系統(tǒng)方案
1.視頻解碼方案論證
方案一:利用Xilinx公司的FPGA產(chǎn)品Spartan 3E實(shí)現(xiàn)系統(tǒng)的視頻解碼。在Spartan 3E支持的MicroBlaze微處理器軟核上移植開(kāi)源視頻解碼器,由于MicroBlaze最高處理頻率為50MHz,遠(yuǎn)不能滿足現(xiàn)在的高速視頻數(shù)據(jù)包的解碼;方案二:通過(guò)在最新嵌入式微處理機(jī)eBox-4300上移植嵌入式操作系統(tǒng)WinCE來(lái)實(shí)現(xiàn)開(kāi)源視頻解碼器。eBox處理器主頻為500MHz,可以滿足10/100MHz網(wǎng)絡(luò)的視頻解碼,且在eBox上的WinCE操作系統(tǒng)可移植性較好,便于以后在系統(tǒng)中加入更多的視頻格式解碼器。2.數(shù)據(jù)包前端處理方案論證方案一:利用Xilinx公司FPGA產(chǎn)品系列Spartan 3E來(lái)捕獲網(wǎng)絡(luò)中的視頻數(shù)據(jù)包。高速的邏輯結(jié)構(gòu)和并行特性是FPGA的特性,通過(guò)FPGA來(lái)識(shí)別并捕獲視頻數(shù)據(jù)包能降低系統(tǒng)的丟包率和漏報(bào)率;方案二:利用eBox-4300自帶的以太網(wǎng)接口直接連接到網(wǎng)絡(luò)上。由于WinCE操作系統(tǒng)下的以太網(wǎng)操作已封裝好,為了兼顧可移植性,因此其效率沒(méi)有直接在FPGA上實(shí)現(xiàn)的IP核好。3.關(guān)鍵幀匹配方案論證
方案一:利用Xilinx公司的FPGA產(chǎn)品系列Spartan 3E來(lái)實(shí)現(xiàn)視頻關(guān)鍵幀標(biāo)準(zhǔn)庫(kù)的查找和匹配。由于FPGA特有的存儲(chǔ)單元結(jié)構(gòu),便于快速查找。
方案二:利用ADI公司的Blackfin 535數(shù)字信號(hào)處理器來(lái)實(shí)現(xiàn)視頻幀的匹配算法。DSP特有的快速音視頻處理能力能很好滿足系統(tǒng)的性能要求。但Blackfin的片上存儲(chǔ)空間有限,如果增加外部存儲(chǔ)器將降低關(guān)鍵幀查找速率,從而成為整個(gè)系統(tǒng)的瓶頸。綜合上述:系統(tǒng)采用Xilinx公司的FPGA產(chǎn)品系列Spartan 3E來(lái)作為數(shù)據(jù)包前端處理,識(shí)別并捕獲相應(yīng)格式的網(wǎng)絡(luò)視頻數(shù)據(jù)包,按序列將視頻數(shù)據(jù)包傳送到eBox-4300處理器上的視頻解碼單元。在eBox-4300處理器上抽取出視頻的關(guān)鍵幀后,將視頻關(guān)鍵幀傳送到在Spartan 3E上實(shí)現(xiàn)的關(guān)鍵幀匹配單元中進(jìn)行匹配模式檢驗(yàn)。
圖 1 系統(tǒng)示意圖
[page]實(shí)現(xiàn)原理1. 視頻數(shù)據(jù)包識(shí)別捕獲實(shí)時(shí)流協(xié)議RTSP是一個(gè)應(yīng)用層協(xié)議,用于控制具有實(shí)時(shí)特性的數(shù)據(jù)如多媒體流的傳送。為多媒體數(shù)據(jù)流提供遠(yuǎn)程控制功能,如播放、 停止、快進(jìn)等。該協(xié)議支持以下操作:
1. 從媒體服務(wù)器上獲取媒體;2. 邀請(qǐng)媒體服務(wù)器加入會(huì)議;
3. 在一個(gè)已存在的演示中加入新的媒體流。
RTSP協(xié)議一般與RTP/RTCP和RSVP等底層協(xié)議一起協(xié)同工作,提供基于Internet的整套的流服務(wù)。它可以選擇發(fā)送通道如UDP、組播UDP和TCP和基于RTP的發(fā)送機(jī)制。它可以應(yīng)用于組播和點(diǎn)播。RTSP協(xié)議負(fù)責(zé)在服務(wù)器和客戶端之間建立并控制一個(gè)或多個(gè)時(shí)間上同步的連續(xù)流媒體,其目標(biāo)是像HTTP協(xié)議為用戶提供文字和圖形服務(wù)那樣為用戶提供連續(xù)媒體服務(wù)。因此,RTSP協(xié)議的設(shè)計(jì)在語(yǔ)法和操作上與HTTP協(xié)議很相似,這樣,對(duì)于HTTP的大部分?jǐn)U展也適用于RTSP。但是RTSP協(xié)議和HTTP協(xié)議在很多方面有著區(qū)別:
1. HTTP是一個(gè)無(wú)狀態(tài)協(xié)議,而RTSP協(xié)議是有狀態(tài)的。
2. HTTP本質(zhì)上是一個(gè)非對(duì)稱協(xié)議,客戶端提出請(qǐng)求而服務(wù)器響應(yīng);而RTSP是對(duì)稱的,服務(wù)器和客戶端都可發(fā)送和響應(yīng)請(qǐng)求。
在RTSP中,每個(gè)演示及其所對(duì)應(yīng)的媒體流都由一個(gè)RTSP URL標(biāo)識(shí)。整個(gè)演示及媒體特性都在一個(gè)演示描述文件中定義,該文件可能包括媒體編碼方式、語(yǔ)言、RTSP URLs、目標(biāo)地址、端口及其它參數(shù)。用戶在向服務(wù)器請(qǐng)求某個(gè)連續(xù)媒體流的服務(wù)之前,必須首先從服務(wù)器獲得該媒體流的演示描述文件以得到必需的參數(shù),演示描述文件的獲取可采用HTTP、Email或其他方法。
RTSP中的所有的操作都是通過(guò)服務(wù)器和客戶方的消息應(yīng)答來(lái)完成的,其消息包括請(qǐng)求和響應(yīng)兩種,RTSP正是通過(guò)服務(wù)器和客戶端的消息 應(yīng)答來(lái)完成媒體流的創(chuàng)建、初始化、VCR控制以及拆線等操作的。在基于客服端/服務(wù)器結(jié)構(gòu)的分布式視頻點(diǎn)播系統(tǒng)中,RTSP協(xié)議的操作過(guò)程如下所示:
圖 2 基于RTSP的流媒體服務(wù)器
客戶機(jī)在向視頻服務(wù)器請(qǐng)求視頻服務(wù)之前,首先通過(guò)HTTP協(xié)議從Web服務(wù)器獲取所請(qǐng)求視頻服務(wù)的演示描述文件,利用該文件提供的信息定位視頻服務(wù)地址包括視頻服務(wù)器地址和端口號(hào),及視頻服務(wù)的編碼方式等信息。然后客戶機(jī)根據(jù)上述信息向視頻服務(wù)器請(qǐng)求視頻服務(wù)。視頻服務(wù)初始化完畢,視頻服務(wù)器為該客戶建立一個(gè)新的視頻服務(wù)流,客戶端與服務(wù)器運(yùn)行實(shí)時(shí)流控制協(xié)議RTCP,以對(duì)該流進(jìn)行各種VCR控制信號(hào)的交 換,如播放、暫停、快進(jìn)、快退等。當(dāng)服務(wù)完畢,客戶端提出拆線請(qǐng)求,需要說(shuō)明的是,服務(wù)器使用RTP/UDP協(xié)議將媒體數(shù)據(jù)傳輸給客戶端,一旦數(shù)據(jù)抵達(dá)客戶端,客戶端應(yīng)用程序即可播放輸出。在流式傳輸中,使用RTP/RTCP/UDP和RTSP/TCP兩種不同的通信協(xié)議在客戶端和服務(wù)器間建立聯(lián)系。Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。微軟將ASF 定義為同步媒體的統(tǒng)一容器文件格式。ASF是一種數(shù)據(jù)格式,音頻、視頻、圖像以及控制命令腳本等多媒體信息通過(guò)這種格式,以網(wǎng)絡(luò)數(shù)據(jù)包的形式傳輸,實(shí)現(xiàn)流 式多媒體內(nèi)容發(fā)布。ASF最大優(yōu)點(diǎn)就是體積小,因此適合網(wǎng)絡(luò)傳輸,使用微軟公司的最新媒體播放器可以直接播放該格式的文件。用戶可以將圖形、聲音和動(dòng)畫數(shù)據(jù)組合成一個(gè)ASF格式的文件,當(dāng)然也可以將其他格式的視頻和音頻轉(zhuǎn)換為ASF格 式,而且用戶還可以通過(guò)聲卡和視頻捕獲卡將諸如麥克風(fēng)、錄像機(jī)等等外設(shè)的數(shù)據(jù)保存為ASF格式 [page]ASF具有可擴(kuò)展的媒體類型,ASF文件允許制作者很容易地定義新的媒體類型。ASF格式提供了非常有效的靈活地定義符合ASF文件格式定義的新的媒體流類型。任一存儲(chǔ)的媒體流邏輯上都是獨(dú)立于其他媒體流的,除非在文件頭部分明顯地定義了其與另一媒體流的關(guān)系。
ASF是設(shè)計(jì)用來(lái)表示可伸縮的媒體類型的帶寬之間的依賴關(guān)系。ASF存儲(chǔ)各個(gè)帶寬就像一個(gè)單獨(dú)的媒體流。媒體流之間的依賴關(guān)系存儲(chǔ)在文件頭部分,為客戶機(jī)以一個(gè)獨(dú)立于壓縮的方式解釋可伸縮的選項(xiàng)提供了豐富的信息流的優(yōu)先級(jí),現(xiàn)代的多媒體傳輸系統(tǒng)能夠動(dòng)態(tài)地調(diào)整以適應(yīng)網(wǎng)絡(luò)資源緊張的情況如帶寬不足。多媒體內(nèi)容的制作者要能夠根據(jù)流的優(yōu)先級(jí)表達(dá)他們的參考信息,如最低保證音頻流的傳輸。隨著可伸縮媒體類型的出現(xiàn),流的優(yōu)先級(jí)的安排變得復(fù)雜起來(lái),因?yàn)樵谥谱鞯臅r(shí)候很難決定各媒體流的順序。
ASF設(shè)計(jì)為支持多語(yǔ)言。媒體流能夠可選地指示所含媒體的語(yǔ)言。這個(gè)功能常用于音頻和文本流。一個(gè)多語(yǔ)言ASF文件指的是包含不同語(yǔ)言版本的同一內(nèi)容的一系列媒體流,其允許客戶機(jī)在播放的過(guò)程中選擇最合適的版本。
ASF提供可繼續(xù)擴(kuò)展的目錄信息的功能,該功能的擴(kuò)展性和靈活性都非常好。所有的目錄信息都以無(wú)格式編碼的形式存儲(chǔ)在文件頭部分,并且支持多語(yǔ)言,如果需要,目錄信息既可預(yù)先定義如作者和標(biāo)題,也可以是制作者自定義。目錄信息功能既可以用于整個(gè)文件也可以用于單個(gè)媒體流。ASF文件主要有三種數(shù)據(jù)對(duì)象組成Header Object,Data Object,Index Object。Header Object包括ASF文件的主要信息,必須位于文件首部。Data Object包含數(shù)據(jù)信息,緊跟在Header Object之后,Index Object是非必須,提供跳躍索引,位于文件結(jié)尾。RTSP協(xié)議中,ASF的Header Object用Base64編碼加密以后放在SDP(Session Description Protocol)數(shù)據(jù)包中。在系統(tǒng)中,我們采用了移植在eBox-4300上的WinCE作為系統(tǒng)的嵌入式操作系統(tǒng),為了解碼器的工作效率和移植方便,我們采用ASF流媒體文件格式。根據(jù)搭建的基于RTSP協(xié)議的流媒體服務(wù)器,可以校驗(yàn)在網(wǎng)絡(luò)中截取到數(shù)據(jù)包的特定協(xié)議字段,如果應(yīng)用層協(xié)議有RTSP的協(xié)議字段,就將數(shù)據(jù)包取出,按協(xié)議進(jìn)行對(duì)包的卸載,提取出ASF文件,再將ASF文件按序列傳輸?shù)较乱惶幚韱卧M(jìn)行視頻解碼,并提取出關(guān)鍵幀。2.網(wǎng)絡(luò)視頻關(guān)鍵幀提取視頻數(shù)據(jù)是分層結(jié)構(gòu),結(jié)構(gòu)粒度從上到下逐漸減小。最頂層是粒度最大的視頻,即一段視頻流。最底層是粒度最小的幀,即單個(gè)的視頻幀圖像,對(duì)幀圖像的處理可以采用圖像特征提取技術(shù),提取諸如顏色、紋理、形狀等靜態(tài)特征或空間運(yùn)動(dòng)的動(dòng)態(tài)特征。鏡頭是一組時(shí)間上連續(xù)的幀序列,它代表一個(gè)場(chǎng)景中在時(shí)間上和空間上連續(xù)的動(dòng)作,對(duì)應(yīng)著攝像機(jī)的一次記錄起停操作,也稱為剪裁或拍攝。鏡頭是視頻數(shù)據(jù)的最小單元,視頻檢索的結(jié)果就是獲得符合條件的若干鏡頭。場(chǎng)景是一組語(yǔ)義上相關(guān)聯(lián)及在時(shí)間上相鄰的鏡頭的集合。
圖3 視頻層次結(jié)構(gòu)示意圖
關(guān)鍵幀是反映一組鏡頭中主要信息內(nèi)容的一幀或若干幀圖像,可以簡(jiǎn)潔地表達(dá)鏡頭內(nèi)容。因?yàn)槊總€(gè)鏡頭都是在同一場(chǎng)景下拍攝的,同一個(gè)鏡頭中的各幀圖像有相當(dāng)大的重復(fù)信息。考慮到存儲(chǔ)容量和處理效率的因素,僅需要存儲(chǔ)鏡頭關(guān)鍵幀,可達(dá)到降低系統(tǒng)存儲(chǔ)容量和減少處理器冗余工作的效果。其次,從關(guān)鍵幀的匹配效率考慮,用關(guān)鍵幀來(lái)代表鏡頭,作用類似于入侵檢測(cè)系統(tǒng)中的匹配規(guī)則,這樣對(duì)網(wǎng)絡(luò)視頻流可用圖像匹配技術(shù)進(jìn)行處理。針對(duì)關(guān)鍵幀的特點(diǎn),選取時(shí)有兩個(gè)基本要求:第一,所選幀必須能夠反映鏡頭中的主要事件,描述應(yīng)盡可能準(zhǔn)確完全,所以一般采用保守原則,寧可錯(cuò)選,也不能少提取;第二,為了減少系統(tǒng)存儲(chǔ)設(shè)備,提高處理數(shù)據(jù)包的效率,數(shù)據(jù)處理量應(yīng)盡量小,計(jì)算不宜過(guò)于復(fù)雜,因此關(guān)鍵幀的抽取應(yīng)盡量少而精確。 [page]早期的提取關(guān)鍵幀的嘗試主要是采用顏色特征。一個(gè)簡(jiǎn)單的提取關(guān)鍵幀的想法是選擇鏡頭片段的第一幀作為關(guān)鍵幀。當(dāng)然這樣提取的關(guān)鍵幀是很不準(zhǔn)確的。在基于鏡頭的方法中,比較經(jīng)典的有幀平均法和直方圖平均法。幀平均法是從鏡頭中取所有幀在某個(gè)位置上像素值的平均值,然后將鏡頭中該點(diǎn)位置的像素值最接近平均值的幀作為關(guān)鍵幀。直方圖平均法則是將鏡頭中所有幀的統(tǒng)計(jì)直方圖取平均,然后選擇與該平均直方圖最接近的幀作為關(guān)鍵幀。這些方法的優(yōu)點(diǎn)是計(jì)算比較簡(jiǎn)單,所選取的幀具有平均代表意義。缺點(diǎn)是只從一個(gè)鏡頭中選取一個(gè)關(guān)鍵幀,無(wú)法處理運(yùn)動(dòng)強(qiáng)度較高的鏡頭。一般說(shuō)來(lái),從鏡頭中選取一幀或固定數(shù)目的關(guān)鍵幀的方法并不是很好,因?yàn)楫?dāng)處理變化很少的鏡頭時(shí),這樣選取的關(guān)鍵幀過(guò)多,而對(duì)于運(yùn)動(dòng)較多的鏡頭,用一兩個(gè)關(guān)鍵幀又無(wú)法充分描述其內(nèi)容。所以有人提出了基于內(nèi)容分析的方法。
綜合前人的研究成果,我們?cè)诒鞠到y(tǒng)采用漸變控制的方法。首先選取每個(gè)鏡頭的第一幀作為關(guān)鍵幀,同時(shí)作為其他候選關(guān)鍵幀的參考幀,將后續(xù)每幀和參考幀比較,當(dāng)其差別大于預(yù)定的閥值時(shí),即將當(dāng)前幀作為新的關(guān)鍵幀,同時(shí)將此幀作為新的參考幀。3. 視頻關(guān)鍵幀匹配
常用的圖像特征有顏色特征、紋理特征、形狀特征、空間關(guān)系特征等。
顏色特征是一種全局特征,描述了圖像或圖像區(qū)域所對(duì)應(yīng)的景物的表面性質(zhì)。一般顏色特征是基于像素點(diǎn)的特征,此時(shí)所有屬于圖像或圖像區(qū)域的像素都有各自的貢獻(xiàn)。由于顏色對(duì)圖像或圖像區(qū)域的方向、大小等變化不敏感,所以顏色特征不能很好地捕捉圖像中對(duì)象的局部特征。顏色直方圖是最常用的表達(dá)顏色特征的方法,其優(yōu)點(diǎn)是不受圖像旋轉(zhuǎn)和平移變化的影響,進(jìn)一步借助歸一化還可不受圖像尺度變化的影響,基缺點(diǎn)是沒(méi)有表達(dá)出顏色空間分布的信息。顏色直方圖簡(jiǎn)單描述一幅圖像中顏色的全局分布,即不同色彩在整幅圖像中所占的比例,特別適用于描述那些難以自動(dòng)分割的圖像和不需要考慮物體空間位置的圖像。紋理特征也是一種全局特征,它也描述了圖像或圖像區(qū)域所對(duì)應(yīng)景物的表面性質(zhì)。但由于紋理只是一種物體表面的特性,并不能完全反映出物體的本質(zhì)屬性,所以僅僅利用紋理特征是無(wú)法獲得高層次圖像內(nèi)容的。與顏色特征不同,紋理特征不是基于像素點(diǎn)的特征,它需要在包含多個(gè)像素點(diǎn)的區(qū)域中進(jìn)行統(tǒng)計(jì)計(jì)算。在模式匹配中,這種區(qū)域性的特征具有較大的優(yōu)越性,不會(huì)由于局部的偏差而無(wú)法匹配成功。作為一種統(tǒng)計(jì)特征,紋理特征常具有旋轉(zhuǎn)不變性,并且對(duì)于噪聲有較強(qiáng)的抵抗能力。但是,紋理特征也有其缺點(diǎn),一個(gè)很明顯的缺點(diǎn)是當(dāng)圖像的分辨率變化的時(shí)候,所計(jì)算出來(lái)的紋理可能會(huì)有較大偏差。通常情況下,形狀特征有兩類表示方法,一類是輪廓特征,另一類是區(qū)域特征。圖像的輪廓特征主要針對(duì)物體的外邊界,而圖像的區(qū)域特征則關(guān)系到整個(gè)形狀區(qū)域。形狀的表達(dá)和匹配采用更為簡(jiǎn)單的區(qū)域特征描述方法,例如采用有關(guān)形狀定量測(cè)度(如矩、面積、周長(zhǎng)等)的形狀參數(shù)法。空間關(guān)系,是指圖像中分割出來(lái)的多個(gè)目標(biāo)之間的相互的空間位置或相對(duì)方向關(guān)系,這些關(guān)系也可分為連接或鄰接關(guān)系、交疊或重疊關(guān)系和包含包容關(guān)系等。通常空間位置信息可以分為兩類:相對(duì)空間位置信息和絕對(duì)空間位置信息。前一種關(guān)系強(qiáng)調(diào)的是目標(biāo)之間的相對(duì)情況,如上下左右關(guān)系等,后一種關(guān)系強(qiáng)調(diào)的是目標(biāo)之間的距離大小以及方位。顯而易見(jiàn),由絕對(duì)空間位置可推出相對(duì)空間位置,但表達(dá)相對(duì)空間位置信息常比較簡(jiǎn)單。空間關(guān)系特征的使用可加強(qiáng)對(duì)圖像內(nèi)容的描述區(qū)分能力,但空間關(guān)系特征常對(duì)圖像或目標(biāo)的旋轉(zhuǎn)、反轉(zhuǎn)、尺度變化等比較敏感。另外,實(shí)際應(yīng)用中,僅僅利用空間信息往往是不夠的,不能有效準(zhǔn)確地表達(dá)場(chǎng)景信息。優(yōu)秀的匹配算法是系統(tǒng)工作效率和辨識(shí)能力的保證,而高效的匹配算法需要準(zhǔn)確地描述出關(guān)鍵幀的特征。在本系統(tǒng)中,我們考慮到系統(tǒng)計(jì)算能力和穩(wěn)定性的要求,采用顏色直方圖和形狀特征相結(jié)合的描述算法。當(dāng)提取出當(dāng)前網(wǎng)絡(luò)視頻流的關(guān)鍵幀序列后,將關(guān)鍵幀以流水線作業(yè)的方式后匹配規(guī)則庫(kù)中的匹配圖像做比較,若相似率大于預(yù)定的閥值時(shí),我們就有理由相信當(dāng)前視頻流是垃圾視頻。如果相似率低于預(yù)定的閥值,但落在了一個(gè)預(yù)定的有嫌疑的區(qū)間中,我們可以提取當(dāng)前關(guān)鍵幀的顏色直方圖和輪廓特征,與匹配圖像的顏色直方圖和輪廓特征相比較,如果其匹配概率大于預(yù)警閥值,系統(tǒng)可向管理員提出告警,再通過(guò)人工識(shí)別的方式來(lái)判斷當(dāng)前視頻流是否非法。4. 告警響應(yīng)和處理
隨著網(wǎng)絡(luò)風(fēng)險(xiǎn)系數(shù)不斷提高,網(wǎng)絡(luò)攻擊技術(shù)和病毒木馬技術(shù)日益更新,單純的網(wǎng)絡(luò)安全設(shè)備已經(jīng)不能滿足企業(yè)、學(xué)校和家庭的安全保障。因此,本系統(tǒng)對(duì)視頻信息的監(jiān)測(cè)也將和其它網(wǎng)絡(luò)安全設(shè)備結(jié)合在一起,構(gòu)成全方位的網(wǎng)絡(luò)安全保障體系結(jié)構(gòu)來(lái)保證一個(gè)安全和諧的網(wǎng)絡(luò)環(huán)境。
基于系統(tǒng)特有的預(yù)警機(jī)制,可以降低誤報(bào)率和提高監(jiān)測(cè)效率。當(dāng)系統(tǒng)檢測(cè)到垃圾視頻信息時(shí),將提取出該視頻數(shù)據(jù)包的源IP地址和端口等信息,并將信息顯示在系統(tǒng)報(bào)警頁(yè)面通知系統(tǒng)管理員的同時(shí),也會(huì)將信息傳輸?shù)骄W(wǎng)絡(luò)安全保障體系結(jié)構(gòu)中的其他相關(guān)安全設(shè)備,如防火墻等。防火墻將第一時(shí)間將此非法IP地址和端口列入黑名單中,禁止該IP地址的視頻數(shù)據(jù)包通過(guò)防火墻。圖4 安全保障體系結(jié)構(gòu)
系統(tǒng)也可和入侵檢測(cè)及安全審計(jì)等安全設(shè)備結(jié)合,來(lái)防止病毒和木馬等捆綁在視頻信息中對(duì)用戶進(jìn)行攻擊。系統(tǒng)首先將關(guān)鍵幀進(jìn)行匹配校驗(yàn),如果相似率低于預(yù)警閥值,我們也不能掉以輕心,不排除其圖像中隱藏有病毒和木馬等信息,導(dǎo)致圖像像素發(fā)生了肉眼無(wú)法區(qū)別的改變,由于圖像像素結(jié)構(gòu)的改變,可能會(huì)欺騙視頻監(jiān)測(cè)系統(tǒng),從而通過(guò)了檢驗(yàn)。因此,此時(shí)系統(tǒng)會(huì)將關(guān)鍵幀傳輸?shù)讲《緬呙柘到y(tǒng)進(jìn)行進(jìn)一步的檢查。
由于系統(tǒng)本身的匹配校驗(yàn)和預(yù)警機(jī)制,同時(shí)結(jié)合網(wǎng)絡(luò)安全保障體系中其他安全設(shè)備的資源來(lái)對(duì)視頻流進(jìn)行監(jiān)測(cè),可以保障視頻信息的干凈和安全,同時(shí)不影響用戶對(duì)視頻服務(wù)的享受。系統(tǒng)實(shí)現(xiàn)
I.硬件實(shí)現(xiàn)
系統(tǒng)分別由視頻數(shù)據(jù)包識(shí)別捕獲單元、視頻解碼關(guān)鍵幀提取處理單元、關(guān)鍵幀查詢單元、視頻關(guān)鍵幀匹配單元、關(guān)鍵幀匹配規(guī)則庫(kù)和告警響應(yīng)處理單元六個(gè)模塊組成。
視頻數(shù)據(jù)包識(shí)別捕獲單元視頻數(shù)據(jù)包識(shí)別捕獲單元由FPGA Spartan 3E板卡來(lái)實(shí)現(xiàn)。FPGA具有高速并行處理的邏輯編程結(jié)構(gòu),可以實(shí)現(xiàn)流水線識(shí)別源IP地址、源端口和目的IP地址、目的端口,以及協(xié)議類型、視頻標(biāo)志字段等信息的處理。根據(jù)用戶特定需要監(jiān)測(cè)的視頻類型和流媒體協(xié)議,用戶可以自定義視頻特定位置的標(biāo)志字段。識(shí)別捕獲數(shù)據(jù)包單元過(guò)濾到相應(yīng)的視頻數(shù)據(jù)包時(shí),將按照特定的流媒體協(xié)議對(duì)數(shù)據(jù)包進(jìn)行卸載,提取出視頻信息后傳輸?shù)胶罄^視頻解碼單元,提取出視頻的關(guān)鍵幀。視頻解碼關(guān)鍵幀提取處理單元視頻解碼關(guān)鍵幀提取單元在eBox-4300上的Wince操作系統(tǒng)上實(shí)現(xiàn)。Wince是微軟公司開(kāi)發(fā)的嵌入式操作系統(tǒng),具有很好的移植性和視頻處理庫(kù),開(kāi)發(fā)容易上手等優(yōu)點(diǎn)。同時(shí)考慮到當(dāng)前視頻格式標(biāo)準(zhǔn)多樣,為了提高系統(tǒng)的功能,以后一定會(huì)不斷向系統(tǒng)添加新的解碼器。而Wince上軟件的兼容性相對(duì)其他的操作系統(tǒng)較強(qiáng),當(dāng)用戶添加其他解碼器時(shí)更簡(jiǎn)單。關(guān)鍵幀查詢單元關(guān)鍵幀的查詢是為了方便系統(tǒng)管理員對(duì)系統(tǒng)的工作效能進(jìn)行控制。在系統(tǒng)管理過(guò)程中,管理員可以通過(guò)身份驗(yàn)證登錄到系統(tǒng)管理頁(yè)面,查看當(dāng)前時(shí)間段的告警信息和相應(yīng)的關(guān)鍵幀,并可根據(jù)人為識(shí)別的方法,決定是否向關(guān)鍵幀匹配庫(kù)中添加新的匹配圖像。視頻關(guān)鍵幀匹配單元視頻關(guān)鍵幀的匹配是系統(tǒng)的主要部分,系統(tǒng)監(jiān)測(cè)的準(zhǔn)確性主要取決于關(guān)鍵幀的匹配算法和模式。FPGA中,與RAM存儲(chǔ)單元相關(guān)的資源有三類:Block RAM、LUT、寄存器。這三類資源可以通過(guò)配置和粘合邏輯實(shí)現(xiàn)為不同類型和位寬大小的單端口/雙端口RAM、ROM、CAM、FIFO等。FPGA中CAM的實(shí)現(xiàn)和配置非常靈活,CAM是實(shí)現(xiàn)模式匹配的核心資源。CAM即內(nèi)容可尋址存儲(chǔ)器。CAM這種存儲(chǔ)器在其每個(gè)存儲(chǔ)單元都包含了一個(gè)內(nèi)嵌的比較邏輯,CAM基于內(nèi)容尋址,通過(guò)硬件電路并行查找,實(shí)現(xiàn)快速匹配。一般來(lái)說(shuō)在一個(gè)時(shí)鐘周期內(nèi),寫入CAM的待比較數(shù)據(jù)和其內(nèi)部存儲(chǔ)的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的內(nèi)部數(shù)據(jù)存儲(chǔ)的地址和是否匹配的標(biāo)識(shí)符。CAM的這種并行處理特性使得它在數(shù)據(jù)分選領(lǐng)域倍受青睞,被廣泛應(yīng)用在以太網(wǎng)網(wǎng)址搜尋、路由器中的地址交換表、高速數(shù)據(jù)處理等方面。基于CAM在模式匹配方面的良好特性,我們將關(guān)鍵幀的匹配單元在FPGA中實(shí)現(xiàn)。由于Spartan 3E的BRAM資源有限,所以系統(tǒng)存儲(chǔ)的關(guān)鍵幀數(shù)據(jù)不會(huì)很多。將匹配圖像的顏色直方圖和形狀輪廓信息存儲(chǔ)在CAM中后,提取關(guān)鍵幀的顏色直方圖和形狀輪廓信息進(jìn)行匹配。用這種方法可以提高關(guān)鍵幀匹配的速率,避免了系統(tǒng)的瓶頸。關(guān)鍵幀匹配規(guī)則庫(kù)視頻關(guān)鍵幀匹配規(guī)則庫(kù)的更新是提高視頻監(jiān)測(cè)準(zhǔn)確性的關(guān)鍵。因此,視頻匹配規(guī)則庫(kù)良好的接口設(shè)計(jì)是用戶交互的重要方面,在本系統(tǒng)中,我們將關(guān)鍵幀信息存儲(chǔ)在CAM中,當(dāng)用戶根據(jù)自己的需求,提取出自定義圖像的顏色直方圖和形狀輪廓特征信息后,可在線寫入CAM中,作為新的匹配規(guī)則。告警響應(yīng)處理單元鑒于當(dāng)前網(wǎng)絡(luò)攻擊方式的多種多樣和系統(tǒng)本身的處理能力有限,我們建議將此系統(tǒng)和其它網(wǎng)絡(luò)安全設(shè)備相結(jié)合構(gòu)成網(wǎng)絡(luò)安全保障體系結(jié)構(gòu)。綜合各種安全監(jiān)測(cè)設(shè)備自身的優(yōu)點(diǎn)和不足,合理利用有限的資源,全方位保障內(nèi)部網(wǎng)絡(luò)的安全。在此系統(tǒng)中,我們可以提取出視頻源的IP地址和端口號(hào),如果確定當(dāng)前視頻含有垃圾信息,系統(tǒng)將其IP地址和端口號(hào)傳輸?shù)襟w系中的防火墻等設(shè)備,由防火墻截?cái)嗥鋽?shù)據(jù)包的傳輸,并將其列入黑名單重點(diǎn)監(jiān)測(cè)。同時(shí),提取出的關(guān)鍵幀還將由病毒掃描系統(tǒng)等安全審計(jì)設(shè)備進(jìn)行檢查,防止視頻中捆綁有病毒和木馬等攻擊信息。圖5 硬件實(shí)現(xiàn)示意圖
II.軟件實(shí)現(xiàn)
系統(tǒng)網(wǎng)絡(luò)接口Lwip是瑞士計(jì)算機(jī)科學(xué)院(Swedish Institute of Computer Science)的Adam Dunkels等開(kāi)發(fā)的一套用于嵌入式系統(tǒng)的開(kāi)放源代碼TCP/IP協(xié)議棧。Lwip既可以移植到操作系統(tǒng)上,又可以在無(wú)操作系統(tǒng)的情況下獨(dú)立運(yùn)行.LwIP的特性如下:
(1) 支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā);
(2) 支持ICMP協(xié)議 ;
(4) 包括阻塞控制,RTT估算和快速恢復(fù)和快速轉(zhuǎn)發(fā)的TCP協(xié)議;
(5) 提供專門的內(nèi)部回調(diào)接口(Raw API)用于提高應(yīng)用程序性能;
(6) 可選擇的Berkeley接口API(多線程情況下);
(7) 在最新的版本中支持PPP;
(8) 新版本中增加了的IP fragment的支持;
(9) 支持DHCP協(xié)議,動(dòng)態(tài)分配ip地址。
在Xilinx公司提供的ISE 10.1開(kāi)發(fā)套件中,EDK開(kāi)發(fā)軟件支持Lwip的應(yīng)用,同時(shí)軟件自身包含Lwip的庫(kù)。因此,系統(tǒng)中的網(wǎng)絡(luò)接口我們?nèi)炕贚wip的RAW IP模式開(kāi)發(fā)。關(guān)鍵幀提取FFmpeg是用于制作和轉(zhuǎn)化流媒體音頻和視頻的完整解決方案, 包括 libavcodec ,一套先進(jìn)的的音視頻編解碼類庫(kù)。FFmpeg 在Linux上開(kāi)發(fā),當(dāng)可以在大多數(shù)操作系統(tǒng)下編譯,包括Windows。Ffmpeg開(kāi)源項(xiàng)目由以下幾部分組成:
FFmpeg 視頻文件轉(zhuǎn)換命令行工具,也支持經(jīng)過(guò)實(shí)時(shí)電視卡抓取和編碼成視頻文件;FFserver 基于HTTP(RTSP正在開(kāi)發(fā)中)用于實(shí)時(shí)廣播的多媒體服務(wù)器.也支持時(shí)間平移;FFplay 用 SDL和FFmpeg庫(kù)開(kāi)發(fā)的一個(gè)簡(jiǎn)單的媒體播放器; libavcodec 一個(gè)包含了所有FFmpeg音視頻編解碼器的庫(kù).為了保證最優(yōu)性能和高可復(fù)用性,大多數(shù)編解碼器從頭開(kāi)發(fā)的;libavformat 一個(gè)包含了所有的普通音視格式的解析器和產(chǎn)生器的庫(kù).在系統(tǒng)中的網(wǎng)絡(luò)視頻解碼和關(guān)鍵幀提取單元,解碼器的實(shí)現(xiàn)是在開(kāi)源音視頻解碼器庫(kù)libavccodec的開(kāi)發(fā)上實(shí)現(xiàn)的。RS232串口通信1K Xmodem文件傳輸協(xié)議為基于點(diǎn)對(duì)點(diǎn)連接的服務(wù)與客戶端間的通信,提供了一種固定包長(zhǎng)度的簡(jiǎn)單的連續(xù)文件傳輸協(xié)議。每一個(gè)包都包含1024字節(jié)的文件數(shù)據(jù),并且都單獨(dú)的被接收客戶端響應(yīng)。每次只能傳輸一個(gè)文件,并且失敗后只能從新開(kāi)始傳輸。
圖 6
文件數(shù)據(jù)包格式1K Xmodem文件傳輸協(xié)議并不需要向接收客戶端發(fā)送待發(fā)送文件的名稱 ,該文件將會(huì)被接收方授予一個(gè)局部有效的文件名。 要開(kāi)始文件傳輸?shù)倪^(guò)程,首先接收方向發(fā)送方發(fā)送一個(gè)輪詢字符,來(lái)提示發(fā)送方客戶端已經(jīng)準(zhǔn)備好了。如果接收方支持check-sum (CRC)校驗(yàn),則輪詢字符可以用0x43 (ASCII 字母 C);如果接收方只支持舊的checksum (求總和)校驗(yàn),則輪詢字符可以用0x15 (NACK線控制字符)。發(fā)送方響應(yīng)接收方的啟動(dòng)字符,開(kāi)始發(fā)送文件數(shù)據(jù)包,每個(gè)包都是1024字節(jié)的固定長(zhǎng)度。如果最后一個(gè)文件數(shù)據(jù)包不足1024字節(jié),則利用NACK(0x1A)填充到1024字節(jié)。接收方通過(guò)ACK(正常接收)或者NACK(非正接收)來(lái)響應(yīng)每一個(gè)包。如果發(fā)送方收到ACK,則發(fā)送下一個(gè)包知道文件傳輸完成;如果發(fā)送方收到NACK,則重新發(fā)送上一個(gè)包。當(dāng)發(fā)送方發(fā)送完成后,發(fā)送EOT通知接收方文件傳輸結(jié)束,接收方發(fā)送ACK來(lái)響應(yīng),發(fā)送方收到ACK后則文件傳輸完成。在系統(tǒng)中,eBox-4300通過(guò)1K Xmodem文件傳輸協(xié)議和Spartan 3E的RS232串口進(jìn)行關(guān)鍵幀的傳輸。同時(shí),系統(tǒng)也可以通過(guò)串口和系統(tǒng)管理主機(jī)進(jìn)行通信。
圖 7 軟件實(shí)現(xiàn)流程圖
1.捕獲分析:用戶可根據(jù)實(shí)際情況,調(diào)整視頻數(shù)據(jù)包捕獲的標(biāo)志字段,來(lái)截取當(dāng)前網(wǎng)絡(luò)中的視頻數(shù)據(jù)包; 2.靈活的解碼系統(tǒng):由于當(dāng)前流媒體文件格式多樣,我們?cè)诖讼到y(tǒng)中只進(jìn)行了ASF格式流媒體文件的解碼,但用戶可以自己編譯自定義的解碼器并添加到當(dāng)前系統(tǒng)中; 3.匹配規(guī)則更新:匹配規(guī)則的更新是系統(tǒng)高效工作的前提,系統(tǒng)良好的用戶交互界面,將幫助用戶輕松添加新的匹配規(guī)則到當(dāng)前系統(tǒng)中; 4.協(xié)調(diào)功能:系統(tǒng)架構(gòu)初期充分考慮到目前的網(wǎng)絡(luò)安全設(shè)備已經(jīng)多種多樣,為了充分利用網(wǎng)絡(luò)中已有安全設(shè)備的資源,對(duì)一些常見(jiàn)的防御功能不再設(shè)計(jì)。因此,本系統(tǒng)可以很好地和其他安全設(shè)備交互網(wǎng)絡(luò)信息,協(xié)調(diào)工作功能,從而保障網(wǎng)絡(luò)各方面的安全。