張?zhí)毂瑥堅葡瑁韱?,馮敏,王鵬,羅旺
(1.南瑞集團公司(國網電力科學研究院)江蘇南京210003;2.國網江蘇省電力公司信息通信分公司江蘇南京210024)
基于混雜模式的音視頻質量分析的設計與實現(xiàn)
張?zhí)毂?,張云翔2,彭啟偉1,馮敏1,王鵬1,羅旺1
(1.南瑞集團公司(國網電力科學研究院)江蘇南京210003;2.國網江蘇省電力公司信息通信分公司江蘇南京210024)
近些年,隨著網絡音視頻會議日益普及,會議中的終端音視頻流質量問題,例如視頻流圖像模糊,音頻丟幀等也受到越來越多的關注。本文提供了一種檢測方式:會前音視頻質量檢測,該方式一定程度上解決了終端音視頻質量問題。這個方式采用特殊網絡模式——混雜模式,該模式抓取從交換機指定端口鏡像出來的實時數據,送給服務器解碼,解碼后數據交給音視頻質量檢測模塊,最后將檢測結果送報業(yè)務檢測模塊。試驗結果表明,該服務能很好的預警會前檢測終端音視頻質量問題,并且工程實施方便。
混雜模式;FFmpeg;音視頻質量分析;音視頻數據解碼
近幾年,隨著網絡技術的發(fā)展,網絡帶寬越來越高,多媒體技術發(fā)展迅猛,視頻監(jiān)控、會議電視等多媒體系統(tǒng)也得到了迅速的發(fā)展,在上述系統(tǒng)中,音視頻質量是影響系統(tǒng)質量的關鍵因素。本文分析網卡在混雜模式下,音視頻質量的評估方法,我們采用開源程序FFmpeg和WINCAP來實現(xiàn)音視頻質量評估服務模塊,并將此模塊運用在會議電視智能化運維系統(tǒng)中,通過對該服務模塊的部署,完成視頻會議系統(tǒng)中對音視頻質量的評估工作,最終體現(xiàn)出本文所設計服務模塊的可行性。
音視頻會議,即提供音頻和視頻服務的遠程會議。音視頻會議系統(tǒng)則是通過網絡通信技術來建立虛擬會議,使得在地理上分散的用戶可以通過圖形、聲音等方式進行交流,支持遠距離的信息實時通訊與共享。音視頻會議為人員之間的協(xié)同工作提供了較為真實、直觀的體驗,對教育、醫(yī)療等行業(yè)也有著舉足輕重的作用。
典型的音視頻會議系統(tǒng)由音視頻終端,通信網絡及MCU(網絡音視頻轉發(fā)單元)構成。
在音視頻設備中使用較多的音頻編碼格式主要有:G722、G711、G729;視頻格式則主要為H264。
本設計選用的音頻編碼格式是Gxx系列,視頻編碼格式是H264。經簡單的測試比較,我們選定G729為音頻編碼格式。表1為音頻編碼標準數據。
從表1可以看出,G729打包時間短,帶寬占用低,同時能夠很好的保證動態(tài)音頻質量,較之其它格式最適合在網絡音視頻會議中使用。
H.264/AVC是一種新的視頻標準。與舊標準相比,它提供了較為簡易的設計標準,能夠在更低帶寬下實現(xiàn)高質量的視頻。另一優(yōu)勢在于,它為各種應用、網絡及各類的視頻系統(tǒng)提供了足夠的靈活性,如中,高、低帶寬,高、低視頻分辨率,廣播,DVD存儲,RTP/IP網絡,ITU_T多媒體電話系統(tǒng)等。
本服務部署的操作系統(tǒng)環(huán)境是Windows server,開發(fā)工具選用Microsoft Visua1 studio c++2010。
2.1整體設計
2.1.1整體設計框架
圖1 音視頻會議系統(tǒng)框架圖
音視頻會議系統(tǒng)的整體設計方案如圖2所示,MCU控制系統(tǒng)由網絡管理和會議控制兩部分系統(tǒng)組成,此中的網絡管理系統(tǒng)管理MCU級的主級網絡架構,通過MCU獲取音視頻終端的信息,并對其進行控制此中的網絡管理系統(tǒng)管理音視頻終端級的次級網絡架構。這也是大多數音視頻會議所采用的設計方案,如遇一些大型企業(yè)下設多個分公司的情況,那么就需要設計分層轉發(fā)音視頻的方案,將MCU設立多級級聯(lián)以實現(xiàn)各個分公司聯(lián)動。
2.1.2音視頻質量評估框架
所有終端先接入交換機,再通過交換機接入到MCU。此部署方案是在交換機上做一個端口鏡像,只要是由該交換機交換的音視頻數據都會通過混雜模式抓取,將得到的音視頻數據整合處理并分析,最后解碼成音視頻幀,發(fā)送給質量分析服務模塊,最終得到該終端的音視頻質量詳細數據。
2.2邏輯設計
音視頻質量分析的整體流程如圖2所示。
圖2 質量分析流程
圖示是一次音視頻質量評估的過程,細節(jié)包括以下幾點。
2.2.1端口鏡像獲取音視頻數據
端口鏡像(port Mirroring)功能通過在交換機或路由器上,將一個或多個源端口的數據流量轉發(fā)到某一指定的端口來實現(xiàn)對網絡的監(jiān)聽,指定端口稱之為“鏡像端口”或“目的端口”,在不嚴重影響源端口正常吞吐流量的情況下,可以通過鏡像端口對網絡的流量進行監(jiān)控分析。我們利用這個特性,將音視頻源發(fā)送到指定端口,然后進行網卡混雜抓取。之所以采用端口鏡像,是因為本方式對網絡的改造代價最低,只需要開放交換機或者路由器的一個端口作為專用的端口鏡像就可以了,相當于減少了一套終端數量。端口鏡像的設置簡單,按照交換機說明書設置即可。
2.2.2網絡環(huán)境探測
網絡環(huán)境是指將分布在不同地點的多個多媒體計算機在物理上進行互聯(lián),依據某種協(xié)議互相通信,實現(xiàn)軟、硬件及其網絡文件共享的系統(tǒng)。這個環(huán)境通常會根據各個公司的需求來進行定制,如針對安全級別的需求。音視頻設備通常是在私有網絡環(huán)境中架設,所以它的網絡環(huán)境也是復雜多樣。評估服務采用的算法是特殊值分析算法,在網絡音視頻流的開始都帶有特殊字節(jié)碼,根據該字節(jié)碼獲取到音視頻流的開始段。將得到的數據過濾掉IP層,再過濾掉UDP層,得到UDP的數據,這個數據就是音視頻數據。
2.2.3音視頻解碼
音視頻解碼的流程,首先整合從網絡中傳輸出來并經過封裝后的數據包,根據音頻數據特征參數,獲取原始音視頻數據起始地址,根據起始地址從網絡數據中提取原始音視頻數據,將音視頻數據按照幀格式重新組裝,最后通過FFMPEG來解碼。
2.2.4音視頻質量評估
音視頻質量評估算法是模塊的關鍵。通過無參考的音視頻質量評估算法,軟件模塊可以對數據包中的音視頻進行檢測,從而評估終端的音視頻質量??紤]到音視頻質量評估算法的研究超出本文的描述范圍,本文只做簡要的介紹。
2.3交互設計
圖3 質量分析模塊
音視頻服務器中各個模塊都分工很明確,其中包過濾、音視頻解碼、質量檢測模塊是核心。
2.3.1Web模塊
本Web模塊是屬于評估服務的一部分,負責與業(yè)務服務層的數據交換。
Web模塊應用1ibevent函數庫完成網絡服務器功能,1ibevent是一個用來開發(fā)可擴展的網絡服務器的事件通知函數庫。當一個文件描述符上的特定事件發(fā)生或是一個超時時間到達后,1ibevent API提供一種執(zhí)行回調函數的機制。而且,1ibevent還支持基于信號或定期超時的回調功能。1ibevent由C++封裝,具有優(yōu)良的實時性能,并且開發(fā)更容易。
圖4 Web服務流程圖
上述的流程圖說明了整個Web服務的作用:Web服務在啟動后,等待用戶的檢測請求,當接收到用戶的檢測請求后,發(fā)起質量檢測服務會話,待檢測完畢后,發(fā)送該次質量檢測服務結果給業(yè)務服務該終端的狀況。
2.3.2WINCAP抓包
WINCAP(windows packet capture)是windows平臺下一個免費,公共的網絡訪問系統(tǒng)。開發(fā)WINCAP的目的在于為win32應用程序提供訪問網絡底層的能力。它用于windows系統(tǒng)下的直接的網絡編程。WINCAP提供了一個強大的編程接口,它可以在各類操作系統(tǒng)上進行移植,方便了程序員的跨平臺開發(fā)。WINCAP特別適用于下面這幾個經典領域:1)網絡及協(xié)議分析。2)網絡監(jiān)控。3)通信日志記錄。4)traffic generators(流量產生器)。5)用戶級別的橋路和路由。6)網絡入侵檢測系統(tǒng)(NIDS)。7)網絡掃描。8)安全工具。我們利用WINCAP的網絡及協(xié)議分析功能來獲取混雜模式下的網絡包。
圖5 WINCAP抓包流程圖
1)選定網卡,開啟網絡模式
打開網卡并設為混雜模式
網卡具有如下的幾種工作模式:
廣播模式(Broad Cast Mode1):廣播發(fā)送網絡包的物理地址(MAC)地址是0Xffffff的幀為廣播幀,工作在廣播模式的網卡接收廣播幀。
多播傳送(Mu1tiCast Mode1):多播傳送地址作為目的物理地址的幀可以被組內的其它主機同時接收,而組外主機卻接收不到。但是,如果將網卡設置為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內成員。
直接模式(Direct Mode1):工作在直接模式下的網卡只接收目地址是自己Mac地址的幀。
混雜模式(Promiscuous Mode1):工作在混雜模式下的網卡接收所有的流過網卡的幀,網絡抓包捕獲程序就是在這種模式下運行的。
服務利用混雜模式監(jiān)聽從服務器端口鏡像來的數據。
2)設置過濾條件
過濾條件的設置也需要深入研究,音視頻傳輸協(xié)議是RTP協(xié)議,如果視頻端口是10004,音頻端口是10002,那么這里的fi1ter就需要設置為“src%1 and udp src port%2”,這里的%1和%2分別是10004和10002,這樣WINCAP從過濾包中出來的都是已經過濾好的UDP的包,在這個基礎上再進行包的精細過濾,獲得UDP包,過濾出特定的音視頻頭,然后獲得原始音視頻數據。
2.3.3組包和FFMPEG解碼
1)FFmpeg解碼視頻
在解碼之前,闡述3個基本概念:
SPS(Sequence Parameter?Sets,序列參數集),該集中包含了一個圖像序列的所有參數信息,包括編碼所用的profi1e,1eve1,圖像的寬和高,deb1ock濾波器等。
PPS(Picture Parameter?Set,圖像的參數集),主要針對SPS后的視頻數據補充,是最主要的視頻圖像幀數據。
這兩個參數集是解碼的關鍵部分,SPS負責傳遞參數,PPS負責傳遞數據。
I幀指視頻解碼中的關鍵幀,含有長寬碼率等等參數。
FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。我們利用該開源庫來解碼音視頻。在解碼視頻的中遇到無法獲取I幀的問題。I幀的獲取方式是視頻解碼的關鍵問題。經過分析存在如下兩種獲取方式:一是通過向終端設備發(fā)送RTP請求獲得I幀;二是業(yè)務系統(tǒng)通過調用設備廠商切換視頻源的接口,進行會場查看,獲得I幀。會議電視設備廠商都包含私有的協(xié)議,第一種標準RTP請求的方式不可取。因此,解碼模塊中的I幀通過第一種方式獲得。
以下是判斷是否獲取到I幀的方式。
接下來就是獲取P幀(附帶數據的視頻幀),P幀是時時刻刻都能獲取的,但是如果沒有I幀,也就是所謂的關鍵幀,就無法解碼,所以我們獲取I幀永遠在前P幀在后。到下一個SPS(I幀)的開始,就代表上一幀結束了,然后把拿到的數據交付給音頻解碼程序。這里也有一個關鍵點需要解決,就是如何將獲取的分散的I幀和P幀組裝成一個視頻幀問題。需要將每一個視頻幀的I幀和P幀部分除了I幀頭部和最后一個P幀尾部都添加以下字節(jié)數據:0x00000001,然后把該組裝好的幀交給解碼程序[7]。
2)視頻幀
需要明確該視頻序列是否由一個視頻圖像幀組成。有的視頻序列可能是由兩張或者兩張以上的圖片壓縮而成,這樣就需要多次解碼,并且做好圖片分割任務,本次采用的是一幀視頻序列就是一張圖片的方式,所以不做特殊處理,如果采用多圖的方式,還需要做好分割。視頻的長寬預先是知道的,把這些參數傳給FFmpeg,然后FFmpeg才能有具體的參數去解碼,同時也要帶上幀率,這個幀率同樣是由上層傳遞過來的參數,比如720p是1 280×720的分辨率,幀率我們設定為每秒30幀。
圖6 視頻幀解碼流程圖
在解碼的時候需要注意,最后一個視頻幀片段末尾的幀間填充代碼,不需要添加分隔符0x00000001,這個步驟容易被忽略,造成圖像會不規(guī)則模糊,代碼調試很困難。
3)音頻解碼
正常人聽覺的頻率范圍大約在20 Hz~20 kHz之間。
采樣頻率是指將模擬聲音波形進行數字化時,每秒鐘抽取聲波幅度樣本的次數。根據奈奎斯特采樣理論,為了保證聲音不失真,采樣頻率應該在40 kHz左右。
常用的音頻采樣頻率有8 kHz、11.025 kHz、22.05 kHz、16 kHz、37.8 kHz、44.1 kHz、48 kHz等。如果采用更高的采樣頻率,還可以達到DVD的音質。
對采樣率為44.1 kHz的AAC音頻進行解碼時,一幀的解碼時間須控制在23.22 ms內,通常是按1 024個采樣點一幀。
4)音視頻質量評估
解碼視頻后獲得YUV格式圖片數據,將這一幀的YUV格式圖片送給質量分析工具。音頻是PCM數據,同時也送給質量檢測服務,完成一幀的檢測,就能夠得到音視頻質量的數據。
視頻質量結果該結構中包括以下參數:
①模糊度指數
概念:模糊度指圖像空間細節(jié)的丟失和邊界銳度的降低。
產生原因:模糊產生的原因有很多,可能來自于視頻采集、處理或壓縮,也可能是失焦拍攝導致的。
計算方法:先通過Sobe1或者Canny算法檢測圖像邊緣,然后計算圖像邊緣的失真值,再利用HVS(human visua1 system)適應邊界失真值,從而計算模糊指數。
②對比度指數
概念:圖像對比度包含亮度對比度和色度對比度。亮度對比度指圖像灰度反差的大小,色度對比度指圖像色彩反差的大小。
產生原因:為了降低馬賽克現(xiàn)象,H.264包含一個平滑宏塊邊界的解塊過濾器。這種過濾器的使用導致宏塊之間對比度的丟失。
計算方法:通過計算整幅圖像的色度和亮度的變化差異獲得對比度指數。B1ur
③卡頓指數
概念:卡頓指數描述視頻幀的不流暢和不光滑的程度。
產生:當抖動和視頻凍結發(fā)生時,就產生了卡頓現(xiàn)象。
計算方法:基于圖像均方差,計算相對顯示時間和所有幀的運動強度,綜合這兩個因素的結果得到卡頓指數。
④MOS評分
在主觀視頻質量評估測試中,MOS(平均意見)分值是專家對呈現(xiàn)給他們的視頻的打分值。無參考質量評估中,MOS評分值是通過馬賽克檢測、模糊度檢測、對比度檢測、卡頓檢測和一些小參數的加權組合得到的。這種組合及其權重是在IVC的MOS主觀視頻數據庫的基礎上獲得的最優(yōu)值。
音頻質量結果該結構中包括以下參數:
1)頻寬
指會議電話的音響裝置能夠處理或通過的一段頻率范圍。音頻信號的頻帶越寬,所包含的音頻信號分量越豐富,音質越好。
2)高頻指數
指高頻分量的數量與低頻分量的數量的比值,比值太低說明音頻存在失真情況。
3)飽和度
指處理后的音頻段包含兩個連續(xù)的樣本,且都具有最小或最大可能的采樣值,符合條件的連續(xù)樣本出現(xiàn)次數越多,飽和度越好。
4)MOS評分
對信號先計算上述感知模型的關鍵屬性,然后在變換后的空間上進行距離計算,獲得的MOS值。
該套設備已經測試級別的部署了,從測試數據來看:
表2 實驗數據
試驗結果證明該服務能夠明顯提升在會議前發(fā)現(xiàn)問題的能力,能夠保證會議在開始之前各項指數滿足需求,保證會議中音視頻終端無故障。
整個音視頻質量檢測服務立足實際應用:網絡音視頻會議質量檢測需求,充分利用現(xiàn)有網絡技術,對提供更好的網絡音視頻會議的用戶體驗,提供了一個很好的解決方案。
通過該套服務的部署,會議電視在音視頻質量保障方面已經初見成效。該套設備已經成為現(xiàn)場音視頻會議的重要組成部分,成為每次發(fā)起音視頻會議的會前必備工具,該套質量分析工具為網絡音視頻會議順利召開提供了有力的保障。
[1]周城,馮偉東,周正.視頻會議系統(tǒng)音視頻質量評價體系研究[J].電視技術,2013,37(8):80_85.
[2]王彤.基于FFmpeg的H.264解碼器實現(xiàn)[D].大連:大連理工大學,2011.
[3]李器宇.視頻質量評價系統(tǒng)及其關鍵技術的研究[D].天津:天津大學,2011.
[4]劉馬飛,曾學文,倪宏.Windows平臺下應用FFMPEG實現(xiàn)H1264視頻回放[J].微計算機應用,2008(11):61_65.
[5]劉飛,楊飛.基于winpcap的網絡抓包系統(tǒng)[J].計算機光盤軟件與應用,2012(8):132_133.
[6]FU_A分包方式以及從RTP包里面得到H.264數據和AAC數據的方法[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)信息與通信。