張?zhí)毂瑥堅葡瑁韱ィT敏,王鵬,羅旺
(1.南瑞集團公司(國網(wǎng)電力科學研究院)江蘇南京210003;2.國網(wǎng)江蘇省電力公司信息通信分公司江蘇南京210024)
基于混雜模式的音視頻質(zhì)量分析的設(shè)計與實現(xiàn)
張?zhí)毂?,張云翔2,彭啟偉1,馮敏1,王鵬1,羅旺1
(1.南瑞集團公司(國網(wǎng)電力科學研究院)江蘇南京210003;2.國網(wǎng)江蘇省電力公司信息通信分公司江蘇南京210024)
近些年,隨著網(wǎng)絡(luò)音視頻會議日益普及,會議中的終端音視頻流質(zhì)量問題,例如視頻流圖像模糊,音頻丟幀等也受到越來越多的關(guān)注。本文提供了一種檢測方式:會前音視頻質(zhì)量檢測,該方式一定程度上解決了終端音視頻質(zhì)量問題。這個方式采用特殊網(wǎng)絡(luò)模式——混雜模式,該模式抓取從交換機指定端口鏡像出來的實時數(shù)據(jù),送給服務(wù)器解碼,解碼后數(shù)據(jù)交給音視頻質(zhì)量檢測模塊,最后將檢測結(jié)果送報業(yè)務(wù)檢測模塊。試驗結(jié)果表明,該服務(wù)能很好的預(yù)警會前檢測終端音視頻質(zhì)量問題,并且工程實施方便。
混雜模式;FFmpeg;音視頻質(zhì)量分析;音視頻數(shù)據(jù)解碼
近幾年,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)帶寬越來越高,多媒體技術(shù)發(fā)展迅猛,視頻監(jiān)控、會議電視等多媒體系統(tǒng)也得到了迅速的發(fā)展,在上述系統(tǒng)中,音視頻質(zhì)量是影響系統(tǒng)質(zhì)量的關(guān)鍵因素。本文分析網(wǎng)卡在混雜模式下,音視頻質(zhì)量的評估方法,我們采用開源程序FFmpeg和WINCAP來實現(xiàn)音視頻質(zhì)量評估服務(wù)模塊,并將此模塊運用在會議電視智能化運維系統(tǒng)中,通過對該服務(wù)模塊的部署,完成視頻會議系統(tǒng)中對音視頻質(zhì)量的評估工作,最終體現(xiàn)出本文所設(shè)計服務(wù)模塊的可行性。
音視頻會議,即提供音頻和視頻服務(wù)的遠程會議。音視頻會議系統(tǒng)則是通過網(wǎng)絡(luò)通信技術(shù)來建立虛擬會議,使得在地理上分散的用戶可以通過圖形、聲音等方式進行交流,支持遠距離的信息實時通訊與共享。音視頻會議為人員之間的協(xié)同工作提供了較為真實、直觀的體驗,對教育、醫(yī)療等行業(yè)也有著舉足輕重的作用。
典型的音視頻會議系統(tǒng)由音視頻終端,通信網(wǎng)絡(luò)及MCU(網(wǎng)絡(luò)音視頻轉(zhuǎn)發(fā)單元)構(gòu)成。
在音視頻設(shè)備中使用較多的音頻編碼格式主要有:G722、G711、G729;視頻格式則主要為H264。
本設(shè)計選用的音頻編碼格式是Gxx系列,視頻編碼格式是H264。經(jīng)簡單的測試比較,我們選定G729為音頻編碼格式。表1為音頻編碼標準數(shù)據(jù)。
從表1可以看出,G729打包時間短,帶寬占用低,同時能夠很好的保證動態(tài)音頻質(zhì)量,較之其它格式最適合在網(wǎng)絡(luò)音視頻會議中使用。
H.264/AVC是一種新的視頻標準。與舊標準相比,它提供了較為簡易的設(shè)計標準,能夠在更低帶寬下實現(xiàn)高質(zhì)量的視頻。另一優(yōu)勢在于,它為各種應(yīng)用、網(wǎng)絡(luò)及各類的視頻系統(tǒng)提供了足夠的靈活性,如中,高、低帶寬,高、低視頻分辨率,廣播,DVD存儲,RTP/IP網(wǎng)絡(luò),ITU_T多媒體電話系統(tǒng)等。
本服務(wù)部署的操作系統(tǒng)環(huán)境是Windows server,開發(fā)工具選用Microsoft Visua1 studio c++2010。
2.1整體設(shè)計
2.1.1整體設(shè)計框架

圖1 音視頻會議系統(tǒng)框架圖
音視頻會議系統(tǒng)的整體設(shè)計方案如圖2所示,MCU控制系統(tǒng)由網(wǎng)絡(luò)管理和會議控制兩部分系統(tǒng)組成,此中的網(wǎng)絡(luò)管理系統(tǒng)管理MCU級的主級網(wǎng)絡(luò)架構(gòu),通過MCU獲取音視頻終端的信息,并對其進行控制此中的網(wǎng)絡(luò)管理系統(tǒng)管理音視頻終端級的次級網(wǎng)絡(luò)架構(gòu)。這也是大多數(shù)音視頻會議所采用的設(shè)計方案,如遇一些大型企業(yè)下設(shè)多個分公司的情況,那么就需要設(shè)計分層轉(zhuǎn)發(fā)音視頻的方案,將MCU設(shè)立多級級聯(lián)以實現(xiàn)各個分公司聯(lián)動。
2.1.2音視頻質(zhì)量評估框架
所有終端先接入交換機,再通過交換機接入到MCU。此部署方案是在交換機上做一個端口鏡像,只要是由該交換機交換的音視頻數(shù)據(jù)都會通過混雜模式抓取,將得到的音視頻數(shù)據(jù)整合處理并分析,最后解碼成音視頻幀,發(fā)送給質(zhì)量分析服務(wù)模塊,最終得到該終端的音視頻質(zhì)量詳細數(shù)據(jù)。
2.2邏輯設(shè)計
音視頻質(zhì)量分析的整體流程如圖2所示。

圖2 質(zhì)量分析流程
圖示是一次音視頻質(zhì)量評估的過程,細節(jié)包括以下幾點。
2.2.1端口鏡像獲取音視頻數(shù)據(jù)
端口鏡像(port Mirroring)功能通過在交換機或路由器上,將一個或多個源端口的數(shù)據(jù)流量轉(zhuǎn)發(fā)到某一指定的端口來實現(xiàn)對網(wǎng)絡(luò)的監(jiān)聽,指定端口稱之為“鏡像端口”或“目的端口”,在不嚴重影響源端口正常吞吐流量的情況下,可以通過鏡像端口對網(wǎng)絡(luò)的流量進行監(jiān)控分析。我們利用這個特性,將音視頻源發(fā)送到指定端口,然后進行網(wǎng)卡混雜抓取。之所以采用端口鏡像,是因為本方式對網(wǎng)絡(luò)的改造代價最低,只需要開放交換機或者路由器的一個端口作為專用的端口鏡像就可以了,相當于減少了一套終端數(shù)量。端口鏡像的設(shè)置簡單,按照交換機說明書設(shè)置即可。
2.2.2網(wǎng)絡(luò)環(huán)境探測
網(wǎng)絡(luò)環(huán)境是指將分布在不同地點的多個多媒體計算機在物理上進行互聯(lián),依據(jù)某種協(xié)議互相通信,實現(xiàn)軟、硬件及其網(wǎng)絡(luò)文件共享的系統(tǒng)。這個環(huán)境通常會根據(jù)各個公司的需求來進行定制,如針對安全級別的需求。音視頻設(shè)備通常是在私有網(wǎng)絡(luò)環(huán)境中架設(shè),所以它的網(wǎng)絡(luò)環(huán)境也是復(fù)雜多樣。評估服務(wù)采用的算法是特殊值分析算法,在網(wǎng)絡(luò)音視頻流的開始都帶有特殊字節(jié)碼,根據(jù)該字節(jié)碼獲取到音視頻流的開始段。將得到的數(shù)據(jù)過濾掉IP層,再過濾掉UDP層,得到UDP的數(shù)據(jù),這個數(shù)據(jù)就是音視頻數(shù)據(jù)。
2.2.3音視頻解碼
音視頻解碼的流程,首先整合從網(wǎng)絡(luò)中傳輸出來并經(jīng)過封裝后的數(shù)據(jù)包,根據(jù)音頻數(shù)據(jù)特征參數(shù),獲取原始音視頻數(shù)據(jù)起始地址,根據(jù)起始地址從網(wǎng)絡(luò)數(shù)據(jù)中提取原始音視頻數(shù)據(jù),將音視頻數(shù)據(jù)按照幀格式重新組裝,最后通過FFMPEG來解碼。
2.2.4音視頻質(zhì)量評估
音視頻質(zhì)量評估算法是模塊的關(guān)鍵。通過無參考的音視頻質(zhì)量評估算法,軟件模塊可以對數(shù)據(jù)包中的音視頻進行檢測,從而評估終端的音視頻質(zhì)量。考慮到音視頻質(zhì)量評估算法的研究超出本文的描述范圍,本文只做簡要的介紹。
2.3交互設(shè)計

圖3 質(zhì)量分析模塊
音視頻服務(wù)器中各個模塊都分工很明確,其中包過濾、音視頻解碼、質(zhì)量檢測模塊是核心。
2.3.1Web模塊
本W(wǎng)eb模塊是屬于評估服務(wù)的一部分,負責與業(yè)務(wù)服務(wù)層的數(shù)據(jù)交換。
Web模塊應(yīng)用1ibevent函數(shù)庫完成網(wǎng)絡(luò)服務(wù)器功能,1ibevent是一個用來開發(fā)可擴展的網(wǎng)絡(luò)服務(wù)器的事件通知函數(shù)庫。當一個文件描述符上的特定事件發(fā)生或是一個超時時間到達后,1ibevent API提供一種執(zhí)行回調(diào)函數(shù)的機制。而且,1ibevent還支持基于信號或定期超時的回調(diào)功能。1ibevent由C++封裝,具有優(yōu)良的實時性能,并且開發(fā)更容易。

圖4 Web服務(wù)流程圖
上述的流程圖說明了整個Web服務(wù)的作用:Web服務(wù)在啟動后,等待用戶的檢測請求,當接收到用戶的檢測請求后,發(fā)起質(zhì)量檢測服務(wù)會話,待檢測完畢后,發(fā)送該次質(zhì)量檢測服務(wù)結(jié)果給業(yè)務(wù)服務(wù)該終端的狀況。
2.3.2WINCAP抓包
WINCAP(windows packet capture)是windows平臺下一個免費,公共的網(wǎng)絡(luò)訪問系統(tǒng)。開發(fā)WINCAP的目的在于為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。它用于windows系統(tǒng)下的直接的網(wǎng)絡(luò)編程。WINCAP提供了一個強大的編程接口,它可以在各類操作系統(tǒng)上進行移植,方便了程序員的跨平臺開發(fā)。WINCAP特別適用于下面這幾個經(jīng)典領(lǐng)域:1)網(wǎng)絡(luò)及協(xié)議分析。2)網(wǎng)絡(luò)監(jiān)控。3)通信日志記錄。4)traffic generators(流量產(chǎn)生器)。5)用戶級別的橋路和路由。6)網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS)。7)網(wǎng)絡(luò)掃描。8)安全工具。我們利用WINCAP的網(wǎng)絡(luò)及協(xié)議分析功能來獲取混雜模式下的網(wǎng)絡(luò)包。

圖5 WINCAP抓包流程圖
1)選定網(wǎng)卡,開啟網(wǎng)絡(luò)模式
打開網(wǎng)卡并設(shè)為混雜模式
網(wǎng)卡具有如下的幾種工作模式:
廣播模式(Broad Cast Mode1):廣播發(fā)送網(wǎng)絡(luò)包的物理地址(MAC)地址是0Xffffff的幀為廣播幀,工作在廣播模式的網(wǎng)卡接收廣播幀。
多播傳送(Mu1tiCast Mode1):多播傳送地址作為目的物理地址的幀可以被組內(nèi)的其它主機同時接收,而組外主機卻接收不到。但是,如果將網(wǎng)卡設(shè)置為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內(nèi)成員。
直接模式(Direct Mode1):工作在直接模式下的網(wǎng)卡只接收目地址是自己Mac地址的幀。
混雜模式(Promiscuous Mode1):工作在混雜模式下的網(wǎng)卡接收所有的流過網(wǎng)卡的幀,網(wǎng)絡(luò)抓包捕獲程序就是在這種模式下運行的。
服務(wù)利用混雜模式監(jiān)聽從服務(wù)器端口鏡像來的數(shù)據(jù)。
2)設(shè)置過濾條件
過濾條件的設(shè)置也需要深入研究,音視頻傳輸協(xié)議是RTP協(xié)議,如果視頻端口是10004,音頻端口是10002,那么這里的fi1ter就需要設(shè)置為“src%1 and udp src port%2”,這里的%1和%2分別是10004和10002,這樣WINCAP從過濾包中出來的都是已經(jīng)過濾好的UDP的包,在這個基礎(chǔ)上再進行包的精細過濾,獲得UDP包,過濾出特定的音視頻頭,然后獲得原始音視頻數(shù)據(jù)。
2.3.3組包和FFMPEG解碼
1)FFmpeg解碼視頻
在解碼之前,闡述3個基本概念:
SPS(Sequence Parameter?Sets,序列參數(shù)集),該集中包含了一個圖像序列的所有參數(shù)信息,包括編碼所用的profi1e,1eve1,圖像的寬和高,deb1ock濾波器等。
PPS(Picture Parameter?Set,圖像的參數(shù)集),主要針對SPS后的視頻數(shù)據(jù)補充,是最主要的視頻圖像幀數(shù)據(jù)。
這兩個參數(shù)集是解碼的關(guān)鍵部分,SPS負責傳遞參數(shù),PPS負責傳遞數(shù)據(jù)。
I幀指視頻解碼中的關(guān)鍵幀,含有長寬碼率等等參數(shù)。
FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。我們利用該開源庫來解碼音視頻。在解碼視頻的中遇到無法獲取I幀的問題。I幀的獲取方式是視頻解碼的關(guān)鍵問題。經(jīng)過分析存在如下兩種獲取方式:一是通過向終端設(shè)備發(fā)送RTP請求獲得I幀;二是業(yè)務(wù)系統(tǒng)通過調(diào)用設(shè)備廠商切換視頻源的接口,進行會場查看,獲得I幀。會議電視設(shè)備廠商都包含私有的協(xié)議,第一種標準RTP請求的方式不可取。因此,解碼模塊中的I幀通過第一種方式獲得。
以下是判斷是否獲取到I幀的方式。



接下來就是獲取P幀(附帶數(shù)據(jù)的視頻幀),P幀是時時刻刻都能獲取的,但是如果沒有I幀,也就是所謂的關(guān)鍵幀,就無法解碼,所以我們獲取I幀永遠在前P幀在后。到下一個SPS(I幀)的開始,就代表上一幀結(jié)束了,然后把拿到的數(shù)據(jù)交付給音頻解碼程序。這里也有一個關(guān)鍵點需要解決,就是如何將獲取的分散的I幀和P幀組裝成一個視頻幀問題。需要將每一個視頻幀的I幀和P幀部分除了I幀頭部和最后一個P幀尾部都添加以下字節(jié)數(shù)據(jù):0x00000001,然后把該組裝好的幀交給解碼程序[7]。
2)視頻幀
需要明確該視頻序列是否由一個視頻圖像幀組成。有的視頻序列可能是由兩張或者兩張以上的圖片壓縮而成,這樣就需要多次解碼,并且做好圖片分割任務(wù),本次采用的是一幀視頻序列就是一張圖片的方式,所以不做特殊處理,如果采用多圖的方式,還需要做好分割。視頻的長寬預(yù)先是知道的,把這些參數(shù)傳給FFmpeg,然后FFmpeg才能有具體的參數(shù)去解碼,同時也要帶上幀率,這個幀率同樣是由上層傳遞過來的參數(shù),比如720p是1 280×720的分辨率,幀率我們設(shè)定為每秒30幀。

圖6 視頻幀解碼流程圖
在解碼的時候需要注意,最后一個視頻幀片段末尾的幀間填充代碼,不需要添加分隔符0x00000001,這個步驟容易被忽略,造成圖像會不規(guī)則模糊,代碼調(diào)試很困難。
3)音頻解碼
正常人聽覺的頻率范圍大約在20 Hz~20 kHz之間。
采樣頻率是指將模擬聲音波形進行數(shù)字化時,每秒鐘抽取聲波幅度樣本的次數(shù)。根據(jù)奈奎斯特采樣理論,為了保證聲音不失真,采樣頻率應(yīng)該在40 kHz左右。
常用的音頻采樣頻率有8 kHz、11.025 kHz、22.05 kHz、16 kHz、37.8 kHz、44.1 kHz、48 kHz等。如果采用更高的采樣頻率,還可以達到DVD的音質(zhì)。
對采樣率為44.1 kHz的AAC音頻進行解碼時,一幀的解碼時間須控制在23.22 ms內(nèi),通常是按1 024個采樣點一幀。
4)音視頻質(zhì)量評估
解碼視頻后獲得YUV格式圖片數(shù)據(jù),將這一幀的YUV格式圖片送給質(zhì)量分析工具。音頻是PCM數(shù)據(jù),同時也送給質(zhì)量檢測服務(wù),完成一幀的檢測,就能夠得到音視頻質(zhì)量的數(shù)據(jù)。
視頻質(zhì)量結(jié)果該結(jié)構(gòu)中包括以下參數(shù):
①模糊度指數(shù)
概念:模糊度指圖像空間細節(jié)的丟失和邊界銳度的降低。
產(chǎn)生原因:模糊產(chǎn)生的原因有很多,可能來自于視頻采集、處理或壓縮,也可能是失焦拍攝導(dǎo)致的。
計算方法:先通過Sobe1或者Canny算法檢測圖像邊緣,然后計算圖像邊緣的失真值,再利用HVS(human visua1 system)適應(yīng)邊界失真值,從而計算模糊指數(shù)。
②對比度指數(shù)
概念:圖像對比度包含亮度對比度和色度對比度。亮度對比度指圖像灰度反差的大小,色度對比度指圖像色彩反差的大小。
產(chǎn)生原因:為了降低馬賽克現(xiàn)象,H.264包含一個平滑宏塊邊界的解塊過濾器。這種過濾器的使用導(dǎo)致宏塊之間對比度的丟失。
計算方法:通過計算整幅圖像的色度和亮度的變化差異獲得對比度指數(shù)。B1ur
③卡頓指數(shù)
概念:卡頓指數(shù)描述視頻幀的不流暢和不光滑的程度。
產(chǎn)生:當抖動和視頻凍結(jié)發(fā)生時,就產(chǎn)生了卡頓現(xiàn)象。
計算方法:基于圖像均方差,計算相對顯示時間和所有幀的運動強度,綜合這兩個因素的結(jié)果得到卡頓指數(shù)。
④MOS評分
在主觀視頻質(zhì)量評估測試中,MOS(平均意見)分值是專家對呈現(xiàn)給他們的視頻的打分值。無參考質(zhì)量評估中,MOS評分值是通過馬賽克檢測、模糊度檢測、對比度檢測、卡頓檢測和一些小參數(shù)的加權(quán)組合得到的。這種組合及其權(quán)重是在IVC的MOS主觀視頻數(shù)據(jù)庫的基礎(chǔ)上獲得的最優(yōu)值。
音頻質(zhì)量結(jié)果該結(jié)構(gòu)中包括以下參數(shù):
1)頻寬
指會議電話的音響裝置能夠處理或通過的一段頻率范圍。音頻信號的頻帶越寬,所包含的音頻信號分量越豐富,音質(zhì)越好。
2)高頻指數(shù)
指高頻分量的數(shù)量與低頻分量的數(shù)量的比值,比值太低說明音頻存在失真情況。
3)飽和度
指處理后的音頻段包含兩個連續(xù)的樣本,且都具有最小或最大可能的采樣值,符合條件的連續(xù)樣本出現(xiàn)次數(shù)越多,飽和度越好。
4)MOS評分
對信號先計算上述感知模型的關(guān)鍵屬性,然后在變換后的空間上進行距離計算,獲得的MOS值。
該套設(shè)備已經(jīng)測試級別的部署了,從測試數(shù)據(jù)來看:

表2 實驗數(shù)據(jù)
試驗結(jié)果證明該服務(wù)能夠明顯提升在會議前發(fā)現(xiàn)問題的能力,能夠保證會議在開始之前各項指數(shù)滿足需求,保證會議中音視頻終端無故障。
整個音視頻質(zhì)量檢測服務(wù)立足實際應(yīng)用:網(wǎng)絡(luò)音視頻會議質(zhì)量檢測需求,充分利用現(xiàn)有網(wǎng)絡(luò)技術(shù),對提供更好的網(wǎng)絡(luò)音視頻會議的用戶體驗,提供了一個很好的解決方案。
通過該套服務(wù)的部署,會議電視在音視頻質(zhì)量保障方面已經(jīng)初見成效。該套設(shè)備已經(jīng)成為現(xiàn)場音視頻會議的重要組成部分,成為每次發(fā)起音視頻會議的會前必備工具,該套質(zhì)量分析工具為網(wǎng)絡(luò)音視頻會議順利召開提供了有力的保障。
[1]周城,馮偉東,周正.視頻會議系統(tǒng)音視頻質(zhì)量評價體系研究[J].電視技術(shù),2013,37(8):80_85.
[2]王彤.基于FFmpeg的H.264解碼器實現(xiàn)[D].大連:大連理工大學,2011.
[3]李器宇.視頻質(zhì)量評價系統(tǒng)及其關(guān)鍵技術(shù)的研究[D].天津:天津大學,2011.
[4]劉馬飛,曾學文,倪宏.Windows平臺下應(yīng)用FFMPEG實現(xiàn)H1264視頻回放[J].微計算機應(yīng)用,2008(11):61_65.
[5]劉飛,楊飛.基于winpcap的網(wǎng)絡(luò)抓包系統(tǒng)[J].計算機光盤軟件與應(yīng)用,2012(8):132_133.
[6]FU_A分包方式以及從RTP包里面得到H.264數(shù)據(jù)和AAC數(shù)據(jù)的方法[EB/OL].http://b1og.csdn.net/wudebao5220150/ artic1e/detai1s/13815313.
Audlo and Vldeo quallty analyses based on Promlscuous mode
ZHANG Tian_bing1,ZHANG Yun_xiang2,PENG Qi_wei1,F(xiàn)ENG Min1,WANG Peng1,LUO Wang1
(1.Nari Group Corporation(State Grid Electric Power Research Institute),Nanjing 210003,China;2.State Grid Jiangsu Electric Power Company and Communications Branch,Nanjing 210024,China)
Recent1y,the network videoconference systems are used more wide1y,the qua1ity of audio and video stream transferred by network absorbs more attention,for examp1e,the video frame which transmitted by network,may 1ost,a1so the audio frame.This paper provides a method which used before conference,check the every termina1 who wi11 join the conference,find out which termina1 has simi1ar prob1em,and report this message to network manager,then the manager adjust the network,so1ve the prob1em.This method uses the 1ibrary of Wincap,who is working at mode1 of promiscuous mode,it captures the net stream from specia1 port,send this data to the server,decode,ana1yses,and report the resu1t to the center conference manager. The using of this service shows they can so1ve the prob1em during conference,1ost net frame,and easy to carry out.
promiscuous modej FFmpegj audio and video qua1ity ana1ysesj audio and video data decoding
TN99
A
1674_6236(2016)10_0131_04
2015_06_11稿件編號:201506124
江蘇省電力公司科技項目(J2014048)j江蘇省自然科學基金青年基金項目(BK20130107)
張?zhí)毂?974—),男,四川廣元人,高級工程師。研究方向:電力系統(tǒng)信息與通信。