解析數(shù)字門禁可視對(duì)講中的音視頻同步原理
本文介紹了一種基于新型的音視頻同步解決方案。闡述了方案的構(gòu)思,設(shè)計(jì)和實(shí)現(xiàn)方法。該方案已在一種新型的數(shù)字化智能家居門禁系統(tǒng)中得到了應(yīng)用,并取得良好的效果。
一、引言
目前,成熟的智能家居系統(tǒng)的室外機(jī)、門禁可視對(duì)講和門禁控制幾乎全部采用模擬信號(hào),安裝時(shí)需要架設(shè)專用網(wǎng)絡(luò),布線復(fù)雜,不可擴(kuò)展,靈活性差,傳輸距離短,投資大,維護(hù)成本高。隨著市場(chǎng)需求的增長(zhǎng)、消費(fèi)者消費(fèi)觀念的提高以及模擬系統(tǒng)沉重的工程維護(hù)代價(jià),結(jié)合以太網(wǎng)技術(shù)的全數(shù)字室外機(jī)和門禁產(chǎn)品成為研發(fā)的熱點(diǎn)。但是在諸多因素影響下,當(dāng)前的數(shù)字門禁產(chǎn)品不成熟、不穩(wěn)定、價(jià)格高昂,特別是門禁對(duì)講中的音視頻同步問題,一直以來都是數(shù)字可視對(duì)講的短板。
二、音視頻同步問題概述
音視頻同步問題是可視對(duì)講中的重點(diǎn)需要解決的問題之一,也是一直以來被模擬門禁產(chǎn)品廠商攻擊的一個(gè)弱點(diǎn),因?yàn)槟M可視對(duì)講產(chǎn)品都采用專線傳輸,不存在這個(gè)問題。解決同步問題的方法有很多種,其中時(shí)間戳是最成熟最完美也是最復(fù)雜的解決辦法,可以解決任何多媒體領(lǐng)域的音視頻同步問題;其原理是選擇一個(gè)參考時(shí)間,在生成數(shù)據(jù)流時(shí)依據(jù)參考時(shí)間上的時(shí)間給每個(gè)數(shù)據(jù)塊都打上時(shí)間戳;在播放時(shí),讀取數(shù)據(jù)塊上的時(shí)間戳,同時(shí)參考當(dāng)前時(shí)鐘上的時(shí)間來安排播放,讓快于這個(gè)參考時(shí)間的包等待,丟棄慢于這個(gè)參考時(shí)間的包。在基于時(shí)間戳的同步機(jī)制中,僅僅對(duì)不同步的數(shù)據(jù)進(jìn)行處理是不完備的,還需要反饋機(jī)制,如基于Windows平臺(tái)的DirectShow就提供這樣一個(gè)反饋機(jī)制,它的質(zhì)量控制(QualityControl)可以將播放的狀態(tài)反饋給源,讓源端加快或者放慢數(shù)據(jù)流的速度。
在多媒體文件采集,播放及對(duì)同步的要求都非常嚴(yán)格,如果從多媒體文件中分離出音視頻數(shù)據(jù)的數(shù)據(jù)不同步,音視頻的時(shí)間差則會(huì)越來越大,這是無法忍受的,所以在多媒體文件中,不但要求有同步機(jī)制,還要求有反饋機(jī)制。
三、數(shù)字可視對(duì)講中的音視頻同步方案
在數(shù)字可視對(duì)講中,可以考慮的音視頻同步方案有兩種:一是發(fā)送端解決;二是接收端解決。
發(fā)送端解決方法比較簡(jiǎn)單,具體措施是在發(fā)送端先將一段時(shí)間內(nèi)采集到音視頻數(shù)據(jù)打包。比如采集到一幀視頻圖像,將這幀圖像與采集這幀視頻的時(shí)間內(nèi)采集到的視頻數(shù)據(jù)打成一個(gè)包,接收端接收到這個(gè)包之后解包分別播放就可以了。發(fā)送端解決的控制方法比較簡(jiǎn)單,但是在高清要求清晰度比較高的情況下就不是很理想,清晰度高,意味著每個(gè)音視頻包數(shù)據(jù)量就大,能保證同步,卻難以保證連續(xù)。我們?cè)谕粋€(gè)線程中按照先后順序發(fā)送PCM音頻和H.264視頻,測(cè)試結(jié)果表明這種方法確實(shí)存在連續(xù)問題。
接收端解決方案繞不開的問題是時(shí)間戳,接收端根據(jù)接收到的音視頻數(shù)據(jù)的時(shí)間戳安排播放。時(shí)間戳需要一個(gè)參考時(shí)間,而采集過程中視頻的時(shí)間是不定的,數(shù)字?jǐn)z像頭采集圖像的幀率是一個(gè)平均值,不宜用來做參考時(shí)間,所以只能用音頻時(shí)間作為參考時(shí)間。
四、聲卡編程和聲卡驅(qū)動(dòng)的時(shí)間機(jī)制
門禁可視對(duì)講中音頻是雙向的。本文的門禁可視對(duì)講方案中,音頻的采用PCM(PulseCodeModulation——脈碼調(diào)制錄音)采集,在網(wǎng)絡(luò)中傳送的也是原始數(shù)據(jù),之所以沒有對(duì)音頻數(shù)據(jù)進(jìn)行編碼處理是基于以下原因:一是S3C6410沒有提供對(duì)音頻的硬編解碼,如果使用軟件實(shí)現(xiàn)編解碼,在有限的系統(tǒng)資源條件下難以實(shí)現(xiàn);二是音頻數(shù)據(jù)量較?。翰捎?000采樣率和量化位數(shù)為8位的電話語音標(biāo)準(zhǔn),一秒的音頻數(shù)據(jù)是8K字節(jié),只相當(dāng)于視頻1幀數(shù)據(jù)的兩倍,這對(duì)普遍擁有百兆網(wǎng)卡的局域網(wǎng)來說,數(shù)據(jù)量很小。實(shí)驗(yàn)的結(jié)果表明,這種簡(jiǎn)單的處理方式被證明是有效的。
評(píng)論