隨著計算機、網(wǎng)絡(luò)及多媒體通信技術(shù)的發(fā)展,視頻監(jiān)控在業(yè)界得到了廣泛的應(yīng)用,許多先進(jìn)的技術(shù)被逐漸引入視頻監(jiān)控系統(tǒng)。本文采用了遞進(jìn)的方式,先介紹了IP網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的組成及其關(guān)鍵技術(shù),接著闡述了MPEG-4視頻流的RTP分組凈荷格式。最后,在視頻流的RTP傳輸中,著重分析了MPEG-4視頻流的封裝格式,并給出相應(yīng)的實現(xiàn)方法。
一、引言
隨著計算機、網(wǎng)絡(luò)及通信技術(shù)的快速發(fā)展和成熟,視頻監(jiān)控系統(tǒng)從模擬視頻監(jiān)控系統(tǒng)逐漸轉(zhuǎn)向以數(shù)字化和網(wǎng)絡(luò)化為特色的網(wǎng)絡(luò)數(shù)字視頻監(jiān)控系統(tǒng)。早期的模擬視頻監(jiān)控系統(tǒng)主要應(yīng)用于閉路電視的監(jiān)控,監(jiān)控的范圍僅限于本地網(wǎng)絡(luò)。近十多年來,市場對視頻監(jiān)控業(yè)務(wù)的需求量越來越大,特別是需求形式越來越廣泛。計算機系統(tǒng)處理能力的提升,圖像壓縮技術(shù)的更加完善,以及互聯(lián)網(wǎng)應(yīng)用的蓬勃興起,這些技術(shù)的進(jìn)步為視頻監(jiān)控的發(fā)展提供了保證,給視頻監(jiān)控系統(tǒng)帶來了巨大商機。受到市場和技術(shù)的驅(qū)動,視頻監(jiān)控的應(yīng)用領(lǐng)域和應(yīng)用的靈活性也已經(jīng)遠(yuǎn)遠(yuǎn)超出傳統(tǒng)的安防監(jiān)控所定義的范疇,其應(yīng)用面得到了大大地推廣,逐步滲透到許多對視頻業(yè)務(wù)有極大需求的新興行業(yè)市場。如銀行監(jiān)控、交通監(jiān)控、醫(yī)療監(jiān)護(hù)、通信機房監(jiān)控等系統(tǒng),給人們的生活和工作帶來了極大的便利。
視頻監(jiān)控系統(tǒng)既可以采用專線組網(wǎng),也可用IP方式組網(wǎng)。采用專線組網(wǎng)的視頻監(jiān)控系統(tǒng)具有帶寬充足、圖像質(zhì)量好、易維護(hù)等特點,但是費用高。TCP/IP網(wǎng)絡(luò)是面向全球用戶,資源共享是TCP/IP最大的優(yōu)點。TCP/IP是目前最流行采用的互聯(lián)網(wǎng)技術(shù),而且使用價格低廉,滿足大眾化的需求,其應(yīng)用前景十分廣闊。因此,采用IP組網(wǎng)是視頻監(jiān)控系統(tǒng)朝網(wǎng)絡(luò)化發(fā)展的趨勢。下文主要介紹IP網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的特點及其采用的關(guān)鍵技術(shù)。
二、IP網(wǎng)絡(luò)監(jiān)控系統(tǒng)結(jié)構(gòu)
IP網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)主要由視頻監(jiān)控端、服務(wù)器端和客戶端組成。其中視頻監(jiān)控端包括若干臺攝像機、一臺矩陣切換器和一臺MPEG-4編碼器;服務(wù)器端由一個主控中心組成,包括用于業(yè)務(wù)平臺管理和調(diào)度的網(wǎng)絡(luò)服務(wù)器,MPEG-4解碼器和顯示設(shè)備;客戶端包括一個接入IP網(wǎng)的集線器和各個PC機終端。各部分通過以太網(wǎng)相連接。
從網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)可以看出,系統(tǒng)中主要存在兩種數(shù)據(jù)流:視頻監(jiān)控端向客戶端發(fā)送的媒體流和客戶端向視頻監(jiān)控端發(fā)送的控制信息流。系統(tǒng)的數(shù)據(jù)流程如圖1所示。
圖1系統(tǒng)數(shù)據(jù)流程圖
傳輸兩種數(shù)據(jù)流所采用的協(xié)議是不一樣的。控制信息流對服務(wù)器平臺業(yè)務(wù)管理、客戶端與視頻端的接入、調(diào)度及解碼顯示等都是十分重要的,可見在控制信息流的傳輸過程中不允許有丟包,因此采用面向連接、可靠傳輸?shù)腡CP協(xié)議傳輸控制信息。然而TCP傳輸需要的網(wǎng)絡(luò)開銷較大,通過降低有效性來換取傳輸?shù)目煽啃裕荒苓_(dá)到實時傳輸媒體流的目的。UDP協(xié)議是面向無連接、不可靠傳輸?shù)目刂茀f(xié)議,傳輸之前不需要先建立連接,在傳輸時延及帶寬利用率方面都要強于TCP,正好滿足了媒體流實時性的特點,通常采用UDP作為媒體流的傳輸協(xié)議。不過,采用UDP傳輸媒體流同樣存在不可靠性的問題:UDP數(shù)據(jù)包沒有編號,無法提供差錯控制,也不保證包不丟失,更不能加載媒體流的時間信息。導(dǎo)致在客戶端顯示的視頻圖像存在延時和抖動,在一定程度上仍然不能達(dá)到實時傳輸?shù)男Ч?。?給出的是中國電信有關(guān)IP承載網(wǎng)絡(luò)端到端通信質(zhì)量要求,可供參考。
表1網(wǎng)絡(luò)通信質(zhì)量要求
[nextpage] 為了彌補UDP協(xié)議存在的缺點,使IP網(wǎng)絡(luò)具有提供媒體流實時傳輸?shù)哪芰?,IP網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)采用由IETF制定的實時傳輸協(xié)議RTP。RTP由兩個相關(guān)協(xié)議組成:實時傳輸協(xié)議RTP和實時傳輸控制協(xié)議RTCP。
視頻壓縮編解碼技術(shù)是視頻監(jiān)控系統(tǒng)的核心技術(shù)。視頻監(jiān)控端采集的原始數(shù)據(jù)量很大,不適合直接在帶寬受限的網(wǎng)絡(luò)中傳輸,需要先對原始數(shù)據(jù)進(jìn)行壓縮。視頻壓縮標(biāo)準(zhǔn)主要有兩個系列,一個是由ITU-T制定的H.26x系列,另一個是由ISO制定的MPEG-x系列。目前比較看好的國際標(biāo)準(zhǔn)是H.264和MPEG-4。綜合考慮算法的復(fù)雜度、性能、市場占有率及今后的發(fā)展等因素,選擇MPEG-4作為視頻監(jiān)控系統(tǒng)的壓縮編碼框架。
三、視頻監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)
1.MPEG-4壓縮標(biāo)準(zhǔn)
MPEG-4標(biāo)準(zhǔn)采用的仍然是以前標(biāo)準(zhǔn)(H.261/3和MPEG-1/2)的基本編碼框架,即典型的三步:預(yù)測編碼、變換量化和熵編碼。新的壓縮編碼標(biāo)準(zhǔn)都是基于優(yōu)化的思想進(jìn)行設(shè)計的,將先前標(biāo)準(zhǔn)中的某些技術(shù)加以改進(jìn),例如在原來的基礎(chǔ)上提出1/4和1/8像素精度的運動補償技術(shù),使得預(yù)測編碼的性能大大提高,或加入以前標(biāo)準(zhǔn)中沒有的新技術(shù)。與MPEG-1和MPEG-2有很大的不同,MPEG-4標(biāo)準(zhǔn)不僅僅給出了具體壓縮算法,它是針對數(shù)字電視、交互式多媒體應(yīng)用、視頻監(jiān)控等整合及壓縮技術(shù)的需要而制定的。MPEG-4將多種多媒體應(yīng)用集成在一個完整的框架里,為不同的應(yīng)用提供相應(yīng)地檔次和級別。
MPEG-4標(biāo)準(zhǔn)中最大的特點是:采用了基于對象的編碼理念。傳統(tǒng)的視頻編碼方法依照信源編碼理論的框架,利用輸入信號的隨機特性達(dá)到壓縮的目的,而并沒有考慮信息獲取者的主觀意義和主觀特性,還有事件本身的具體含義、重要性及后果等。MPEG-4標(biāo)準(zhǔn)中引用了視頻對象的概念,打破了過去以宏塊為單位編碼的限制,其目的在于采用現(xiàn)代圖像編碼方法,利用人眼視覺特性,抓住圖像信息傳輸?shù)谋举|(zhì),從輪廓、紋理的思路出發(fā),支持基于視頻內(nèi)容的交互功能。以上這些都是根據(jù)人眼感興趣的一些特性提出來的。
視頻序列中每一幀由不同的場景組成,這些場景可以根據(jù)人的主觀性進(jìn)行劃分,每一個場景可看成是一個VOP,而同一對象連續(xù)的VOP稱為視頻對象VO。VO可以是視頻序列中的人物或具體的景物,也可以是計算機生成的二維或三維圖形。視頻監(jiān)控系統(tǒng)中,視頻監(jiān)控端主要采集的是自然景物的圖片,因此這里只考慮MPEG-4中自然視頻序列的編碼檔次。MPEG-4是以VOP為單位進(jìn)行編解碼,編解碼過程如圖2所示。
圖2 MPEG-4編解碼基本過程
編碼器包含三個主要部分,形狀編碼、運動信息編碼及紋理編碼。
(1)形狀編碼
VOP的形狀信息有兩類:二值形狀信息和灰度形狀信息。二值形狀信息用0,1來表示VOP的形狀;灰度形狀信息用0~255之間的數(shù)值表示VOP內(nèi)各像素的透明度。目前的標(biāo)準(zhǔn)中采用矩陣的形式來表示二值或灰度形狀信息,稱之為位圖(或alpha平面)。試驗表明,位圖表示法具有較高的編碼效率和較低的運算復(fù)雜度。 [nextpage]
(2)運動信息編碼
VOP的編碼有三種模式,即幀內(nèi)編碼模式(I-VOP),幀間預(yù)測編碼模式(P-VOP),幀間雙向預(yù)測編碼模式(B-VOP)。為了適應(yīng)任意形狀的VOP,MPEG-4引入了圖像填充技術(shù)和多邊形匹配技術(shù)。對于標(biāo)準(zhǔn)宏塊的運動估計和補償,可采用傳統(tǒng)的基于塊的方法。而對于VOP邊界的輪廓宏塊,則要采用圖像填充技術(shù),再用多邊形匹配技術(shù)進(jìn)行運動估計/補償。
(3)紋理編碼
一個視頻平面的紋理信息可以表示為亮度Y和兩個色度成分Cr、Cb。在幀內(nèi)情況下,紋理信息直接包含亮度和色度成分,在運動補償?shù)那闆r下,紋理信息表示經(jīng)過運動補償后的殘差。
2.RTP協(xié)議
RTP是由IETF音視頻工作組制定的實時傳輸協(xié)議,專門用于交互式語音、視頻傳輸?shù)葘崟r多媒體應(yīng)用。RTP可以在點對點或點對多點的傳輸情況下工作,而且通常使用UDP來傳送數(shù)據(jù)。當(dāng)應(yīng)用程序開始一個RTP會話時,同時還要開啟RTCP協(xié)議,因為RTP協(xié)議并不能提供差錯控制和保證的網(wǎng)絡(luò)的QoS,需要和RTCP配合使用。此時的會話將使用兩個端口:一個給RTP,另一個給RTCP。
RTP協(xié)議的設(shè)計目的是提供實時數(shù)據(jù)傳輸中的時間戳信息及各數(shù)據(jù)流的同步功能。RTP提供序列號以恢復(fù)數(shù)據(jù)包的順序,實現(xiàn)丟包檢測,為實時傳輸提供網(wǎng)絡(luò)擁塞等信息;提供時間戳用于媒體同步,使接收端按正確的速率回放數(shù)據(jù);提供同步源標(biāo)志使接收端有可能獲得有關(guān)發(fā)送方的信息。RTCP的主要功能是提供有關(guān)QoS的信息反饋。網(wǎng)絡(luò)終端系統(tǒng)可根據(jù)這些反饋信息來調(diào)整數(shù)據(jù)的發(fā)送速率。RTCP包共有五種類型:發(fā)送端報告(SR)、接收端報告(RR)、源描述(SDES)、BYE和APP。其中,SR用來描述發(fā)送端的發(fā)送和接收統(tǒng)計數(shù)據(jù);RR用來描述接收端的接收統(tǒng)計數(shù)據(jù)。這些統(tǒng)計數(shù)據(jù)包括發(fā)送包數(shù)、發(fā)送字節(jié)數(shù)、累計丟包數(shù)、已收報文的最大序列號、達(dá)到時間間隔抖動等。實時傳輸協(xié)議RTP和傳輸控制協(xié)議RTCP一起提供流量控制和擁塞控制服務(wù)。在RTP會話期間,各參與者周期性地傳輸RTCP包。服務(wù)器利用RTCP包中所包含的信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型。因此,RTP用來傳送實時多媒體數(shù)據(jù)信息,而RTCP用來傳送控制信息。
四、視頻監(jiān)控系統(tǒng)的視頻流傳輸
視頻監(jiān)控端采集的視頻數(shù)據(jù),先被送入MPEG-4編碼器進(jìn)行壓縮,生成MPEG-4視頻流,然后將此視頻流打包成RTP數(shù)據(jù)包再傳輸。以下將詳細(xì)分析這個過程。
1.RTP打包傳輸
視頻流通過RTP打包傳輸,RTP數(shù)據(jù)包由RTP包頭和不定長的連續(xù)媒體數(shù)據(jù)載荷組成。RTP數(shù)據(jù)包如圖3所示,其中的載荷是MPEG-4視頻流。
圖3 RTP數(shù)據(jù)包格式
幾個關(guān)鍵字段的含義前面已給出,RTP包頭字段的含義與以前的IP數(shù)據(jù)包頭的類似,這里不再詳細(xì)說明。其中,MPEG-4Visualstream表示MPEG-4的視頻流,被稱為RTP分組凈荷(payload)。
采用RTP協(xié)議發(fā)送MPEG-4碼流的好處:
(1)可以將MPEG-4碼流和其他的RTP凈荷相同步;
(2)可以通過RTCP監(jiān)視MPEG-4的傳送性能;
(3)使用RTP混合器能將從多個終端系統(tǒng)接收到的MPEG-4和其他實時數(shù)據(jù)流復(fù)合成一系列合并的碼流;
(4)通過使用RTP轉(zhuǎn)換器實現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換。 [nextpage]
2.MPEG-4視頻流格式
視頻監(jiān)控系統(tǒng)中,視頻壓縮編碼采用的是MPEG-4標(biāo)準(zhǔn)。而MPEG-4標(biāo)準(zhǔn)定義了Profile&Level來適應(yīng)不同的應(yīng)用。Profile定義了一個碼流可以采用哪些技術(shù),Level則規(guī)定了復(fù)雜度,譬如支持多大的圖像格式和大小,需要的緩存量。先進(jìn)簡單檔次(AdvancedSimpleProfile)是為了適應(yīng)因特網(wǎng)上流媒體應(yīng)用的需求而新增加的,在簡單檔次的基礎(chǔ)上改善了壓縮性能,而且支持隔行掃描視頻編碼。本文討論的視頻監(jiān)控系統(tǒng)采用的是MPEG-4標(biāo)準(zhǔn)中的先進(jìn)簡單檔次(ASP)。
(1)視頻流的分片規(guī)則
由于IP網(wǎng)絡(luò)中傳輸?shù)姆纸M大小受限制,加上MPEG-4視頻流是以VOP為單位編碼的特點,傳輸MPEG-4視頻流時,需要先將視頻流加上包頭信息,進(jìn)行RTP打包封裝。MPEG-4視頻流的打包要遵循兩個原則:
?為了提高效率和充分利用MPEG-4的編碼特性,以VOP為單位進(jìn)行打包;
?考慮IP分組網(wǎng)絡(luò)傳送包長的限制,打包的長度L小于最大傳輸單元(MTU)。
基于以上的兩個原則,相應(yīng)給出碼流的分片規(guī)則如下:
?原則上是:一個VOP包單獨放入單個RTP包中。但是,一個VOP在一個RTP包中放不下的情況下,此時要考慮將VOP進(jìn)行分片,分別放入多個RTP包,此時須把VOP頭部信息復(fù)制到每個RTP包,以去除包間的相關(guān)性,達(dá)到丟包的魯棒性;
?當(dāng)一個VOP太小時,此時為了提高RTP傳輸?shù)挠行?減少包數(shù)和降低開銷),需要將多個VOP放入一個RTP包中,這些VOP應(yīng)該按照解碼順序放入RTP中。但是,即使最后一個包中仍有剩余空間,也不能將另一VOP中的宏塊放入此包中;
?同屬于一個VOP的控制信息和數(shù)據(jù)信息必須同時出現(xiàn)在一個RTP包中;
?一個VOP頭不能分開放在兩個或兩個以上的RTP包中;
?當(dāng)將多個視頻包串聯(lián)到一個RTP包中時,VOP頭不應(yīng)放到RTP負(fù)載的中間。
(2)視頻流的封裝
MPEG-4視頻流是RTP數(shù)據(jù)包中的載荷,給MPEG-4視頻流打包的目的是為了適應(yīng)網(wǎng)絡(luò)的傳輸,讓解碼端能夠恢復(fù)MPEG-4數(shù)據(jù)流并進(jìn)行回放。依照MPEG-4視頻流的分片規(guī)則,可以將包格式簡單的分為幀頭配置信息和基本流信息。每個VO可對應(yīng)多個視頻對象層(VOL),而且每個VOL可能屬于多個VO。圖4是MPEG-4視頻流封裝結(jié)構(gòu)。
圖4視頻流封裝結(jié)構(gòu)
從圖中可以看出,傳輸視頻對象每一層的基本流信息時,都需要將這個基本流的屬性同時傳輸。比如,傳輸VO1Layer1的基本流信息,需要將所屬的視頻序列頭、視頻對象頭和視頻對象層頭一同傳輸。而且傳輸VO1Layer2的基本流信息時,也需要將這些屬性再次傳輸。既可以保證基本流信息的完整性,又具有魯棒性。
MPEG-4視頻流由若干個視頻對象序列(VS)組成。VS的每一幀可分割為一些任意形狀的VO,一個視頻對象VO又是由同一VOP的連續(xù)系列構(gòu)成。在具體的實現(xiàn)中,需用分層的方式組織各個頭信息。圖5給出了視頻流的分層語法結(jié)構(gòu)。[nextpage]
圖5 MPEG-4視頻流分層結(jié)構(gòu)
上圖中每個模塊代表一個函數(shù)實現(xiàn),模塊的名字取于對應(yīng)函數(shù)的首寫字母組合。對應(yīng)關(guān)系及功能如下:
?VS:VisualObjectSequence(),表示完整的MPEG-4的場景,給出了檔次和級別信息;
?VO:VisualObject(),表示一個視頻對象對應(yīng)著場景中的一個特定對象;
?VOL:VideoObjectLayer(),給出了當(dāng)前視頻流的一些特性;
?GOP:Group_of_VideoObjectPlane(),提供碼流的隨機訪問點;
?VOP:VideoObjectPlane(),包含了視頻對象的運動參數(shù)、形狀信息和紋理信息;
?MST:Motion_shape_texture(),給出了運動參數(shù)、形狀信息和紋理信息;
?VPH:Video_packet_header(),視頻包頭信息;
?DPMST:data_partitioned_motion_shape_texture(),運動信息和紋理數(shù)據(jù)分開編碼;
?CMST:combined_motion_shape_texture(),運動信息和紋理數(shù)據(jù)聯(lián)合編碼;
?MB:Macroblock(),給出了宏塊數(shù)據(jù),包括運動矢量和紋理信息。
從以上的實現(xiàn)函數(shù)可以看到,在加入一系列頭信息的情況下,整個視頻流是以VOP對單位封裝傳輸。而每個VOP的編碼都是以宏塊為單位,有關(guān)宏塊級的數(shù)據(jù)流分析就不在加以描述了。
MPEG-4視頻流出現(xiàn)在RTP數(shù)據(jù)包的載荷部分,RTP數(shù)據(jù)包的結(jié)構(gòu)比較清晰,因此RTP的組包過程比較容易實現(xiàn)。然而,MPEG-4視頻流的分析過程非常復(fù)雜。MPEG-4視頻標(biāo)準(zhǔn)一共定義了19種編碼檔次,其中用于自然編碼的檔次有15種,每一檔次可能支持幾種視頻對象和級別。可見,設(shè)計一個視頻監(jiān)控系統(tǒng),MPEG-4視頻流的封裝過程是十分重要的。
五、結(jié)束語
在視頻監(jiān)控系統(tǒng)的研究中,MPEG-4視頻流實時傳輸是網(wǎng)絡(luò)監(jiān)控系統(tǒng)的一個重要課題,也是網(wǎng)絡(luò)化進(jìn)程中的難題。近年來,網(wǎng)絡(luò)技術(shù)和視頻壓縮編碼技術(shù)取得了極大的進(jìn)步,特別是MPEG-4標(biāo)準(zhǔn)和RTP網(wǎng)絡(luò)傳輸協(xié)議的提出,很好的解決了這個難題。文中將這兩種關(guān)鍵技術(shù)相結(jié)合,給出了一種視頻監(jiān)控系統(tǒng)的碼流傳輸方案。但是,隨著科技的不斷發(fā)展和市場需求的日益增多,目前的技術(shù)可能會被繼續(xù)淘汰。因此不能安于現(xiàn)狀,需要在網(wǎng)絡(luò)音視頻傳輸技術(shù)領(lǐng)域開展更多、更深入的研究。