專利名稱:多媒體視音頻流唇音同步的調(diào)測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及唇音同步的調(diào)測(cè)方法,尤其涉及多媒體通訊視音頻流唇音同步的調(diào)測(cè)方法。
背景技術(shù):
因特網(wǎng)作為包交換網(wǎng)絡(luò),不能如E1或者ISDN這些基于電路交換的網(wǎng)絡(luò)那樣提供及時(shí)的傳送,對(duì)于多媒體應(yīng)用,如果不采用正確的控制方法,會(huì)導(dǎo)致原始數(shù)據(jù)的時(shí)間關(guān)系嚴(yán)重扭曲,具體表現(xiàn)為唇音不同步,大的延遲導(dǎo)致用戶交互的不適應(yīng)和困難。如何通過(guò)自適應(yīng)算法,有效地通過(guò)回放緩沖區(qū)控制來(lái)抵消網(wǎng)絡(luò)抖動(dòng)帶來(lái)的影響,并且同時(shí)做到端與端的延遲最小化,是一個(gè)值得探討并且具有重大實(shí)踐意義的課題,已經(jīng)引起了很多學(xué)術(shù)和工程上的關(guān)注,也提出了很多相關(guān)的算法,這些算法對(duì)網(wǎng)絡(luò)延遲和抖動(dòng)進(jìn)行了建模,根據(jù)一定的準(zhǔn)則建立了一些目標(biāo),并給出了一定的計(jì)算機(jī)模擬,但這些算法直接用于工程實(shí)踐存在一定的問(wèn)題,不能滿足工程上的簡(jiǎn)單合理并且魯棒的要求。下面對(duì)工程上常用的一些控制算法做簡(jiǎn)單回顧并給出優(yōu)缺點(diǎn)分析。
傳統(tǒng)的互聯(lián)網(wǎng)多媒體唇音同步調(diào)測(cè)方法主要有以下幾種 1、手動(dòng)調(diào)整唇音同步 這種算法依賴用戶的主觀感受,在很多媒體播放器中都提供了該選項(xiàng),用戶通過(guò)手工調(diào)整音頻緩沖區(qū)長(zhǎng)度來(lái)獲得一定程度的唇音同步。該方法的優(yōu)點(diǎn)是簡(jiǎn)單易行,并且人為判斷比算法判斷更能符合人的主觀感受。在一些場(chǎng)合下,這種算法很有優(yōu)勢(shì),比如在網(wǎng)絡(luò)延遲固定的情況下,一次調(diào)整基本就能夠使得唇音同步最佳化。缺點(diǎn)是該方法需要人工干預(yù),并且在IP網(wǎng)絡(luò)下,由于延遲的變化,調(diào)整值很容易失效。
2、通過(guò)音頻緩沖區(qū)調(diào)整來(lái)獲得唇音同步 這種方法在簡(jiǎn)單的多媒體應(yīng)用中,可以根據(jù)經(jīng)驗(yàn)值調(diào)整音頻緩沖區(qū)長(zhǎng)度來(lái)獲得近似的唇音同步。在媒體播放過(guò)程中,由于視頻可以在一幀的時(shí)間內(nèi)播放幾幀內(nèi)容,而音頻必須播放滿一定時(shí)間,所以可以通過(guò)把音頻緩沖控制在一定范圍內(nèi)來(lái)獲得近似同步,比如緩沖80ms~160ms的數(shù)據(jù),并且在監(jiān)測(cè)到網(wǎng)絡(luò)狀態(tài)不好的情況下,通過(guò)增加緩沖區(qū)長(zhǎng)度以消除網(wǎng)絡(luò)抖動(dòng)的影響,在網(wǎng)絡(luò)好的情況下,減少緩沖區(qū)長(zhǎng)度以降低端到端的延遲。網(wǎng)絡(luò)狀態(tài)的判斷可以根據(jù)所使用的協(xié)議提供的探測(cè)或者反饋功能(RTP實(shí)時(shí)傳輸協(xié)議中規(guī)定的抖動(dòng)計(jì)算過(guò)程)來(lái)評(píng)估。該方法是目前互聯(lián)網(wǎng)多媒體播放中比較常用的方法,簡(jiǎn)單易行,易于編程,缺點(diǎn)就是比較盲目,在一些特殊情況下魯棒性不夠,而且沒(méi)有綜合考慮視頻信息,是一種“偽同步”。
3、根據(jù)全局時(shí)鐘調(diào)整唇音同步 視音頻同步,主要依賴于原始視音頻信號(hào)時(shí)間關(guān)系的復(fù)現(xiàn),如何記錄或者獲得這一原始時(shí)間關(guān)系,有以下幾種方法 A)在媒體流或封裝中嵌入時(shí)鐘信息。
在視音頻生成的時(shí)候就在碼流中嵌入時(shí)鐘信息,在解碼側(cè)只要按照原始的時(shí)間對(duì)應(yīng)關(guān)系恢復(fù)就可以了,這種方法被一些編解碼器所采用,比如MPEG2就采用了PTS的概念,在播放的時(shí)候就基本不存在唇音同步問(wèn)題。這種方法的缺點(diǎn)就是并非其他媒體編碼規(guī)范也會(huì)嵌入時(shí)鐘信息,如果視頻和音頻編碼過(guò)程中相對(duì)于系統(tǒng)時(shí)鐘的偏移是獨(dú)立的,那么很難在解碼側(cè)建立這種媒體間的時(shí)間對(duì)應(yīng)關(guān)系。
B)在額外信道發(fā)送同步信息 某些協(xié)議可以在帶外數(shù)據(jù)中指明全局時(shí)鐘相關(guān)的同步信息。比如針對(duì)RTP傳輸?shù)腞TCP(實(shí)時(shí)傳輸控制協(xié)議)規(guī)范中采用了發(fā)送者報(bào)告SR的方式給出了視音頻同步信息,解碼側(cè)收到了一個(gè)SR報(bào)告后,就可以根據(jù)相關(guān)信息調(diào)整緩沖區(qū)來(lái)達(dá)到同步的目的。缺點(diǎn)就是可能有些協(xié)議不實(shí)現(xiàn)或者不強(qiáng)制實(shí)現(xiàn)這種同步機(jī)制,協(xié)議實(shí)現(xiàn)并不發(fā)送這種包含同步信息的帶外數(shù)據(jù),這種方法就無(wú)法使用。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明的目的在于提供一種多媒體視音頻流唇音同步的調(diào)測(cè)方法,該方法能夠有效控制多媒體流的唇音同步,同時(shí)為系統(tǒng)的Qos性能提供一個(gè)規(guī)范的量化標(biāo)準(zhǔn)。
為達(dá)到上述目的,本發(fā)明多媒體視音頻流唇音同步的調(diào)測(cè)方法,包括如下步驟 (1)在多媒體視音頻流解碼端真實(shí)時(shí)鐘的基礎(chǔ)上建立虛擬時(shí)鐘模型; (2)根據(jù)自適應(yīng)延遲算法和同步控制算法的計(jì)算結(jié)果,調(diào)整所述虛擬時(shí)鐘,獲得多媒體視音頻流唇音同步。
所述步驟(1)中建立虛擬時(shí)鐘模型的方法為 (11)設(shè)置虛擬時(shí)鐘的初始值為收到的多媒體流的第一個(gè)MDU(媒體數(shù)據(jù)單元)的時(shí)戳; (12)獲取每一個(gè)抵達(dá)的MDU的生成時(shí)間和抵達(dá)時(shí)間; (13)解碼端將所述每一個(gè)抵達(dá)的MDU的生成時(shí)間作為其回放時(shí)間,將每一個(gè)抵達(dá)的MDU的抵達(dá)時(shí)間作為虛擬時(shí)鐘采樣,比較所述生成時(shí)間和抵達(dá)時(shí)間并重新調(diào)度回放時(shí)間,獲得自適應(yīng)的回放期限。
所述步驟(2)中,自適應(yīng)延遲算法包括 (21)計(jì)算媒體流內(nèi)的同步相位扭曲; 所述媒體流內(nèi)的同步相位扭曲通過(guò)計(jì)算流內(nèi)的MDU的回放時(shí)間以及采樣時(shí)間的均方根誤差來(lái)獲得,計(jì)算公式如下 其中,Tgi(n)為流i的第n個(gè)MDU的生成時(shí)間,Tpi(n)為流i的第n個(gè)MDU的播放的時(shí)間,Ni是流i的被播放的所有MDU數(shù)量; (22)計(jì)算媒體流間的同步相位扭曲; 所述媒體流間的同步相位扭曲通過(guò)計(jì)算最近的相應(yīng)流間MDU的回放時(shí)間以及采樣時(shí)間的均方根誤差來(lái)獲得,具體公式如下 其中,音頻的第m個(gè)MDU對(duì)應(yīng)于視頻的第n個(gè)MDU,Tga(m)為音頻的第m個(gè)MDU的生成時(shí)間,Tpa(m)為音頻的第m個(gè)MDU的播放時(shí)間;Tgv(n)為視頻的第n個(gè)MDU的生成時(shí)間,Tpv(n)為視頻的第n個(gè)MDU的播放時(shí)間,Na是所有音頻MDU的數(shù)量。
所述自適應(yīng)延遲算法還可以包括計(jì)算包損失率,采用如下公式計(jì)算 其中,Mi為接收的總包數(shù),Ni為可以播放的包數(shù)。
所述自適應(yīng)延遲算法還可以包括計(jì)算端間平均延遲,采用如下公式計(jì)算 其中,oi(n)為第n個(gè)包相對(duì)于源時(shí)鐘的偏移。
所述步驟(2)中,同步控制算法包括計(jì)算MDU播放時(shí)間,計(jì)算方法為 對(duì)于流i的第n個(gè)MDU,如果成立,且成立,則數(shù)據(jù)落入播放區(qū)并被渲染;如果成立,則拋棄該數(shù)據(jù); 如果流i的第n個(gè)MDU到達(dá)較早,則該MDU在調(diào)度時(shí)間播放出來(lái);否則,如果第n-1個(gè)MDU被及時(shí)渲染,則第n個(gè)MDU在抵達(dá)時(shí)就立即被播放,如果第n-1個(gè)MDU晚于調(diào)度時(shí)間,則利用平滑因子使相位扭曲最?。? 其中,Tgi(n-1)為流i的第n-1個(gè)MDU的生成時(shí)間,Tgi(n)為流i的第n個(gè)MDU的生成時(shí)間,Tai(n)為流i的第n個(gè)MDU的抵達(dá)時(shí)間,δi為設(shè)置的拋棄邊界值。
所述平滑因子對(duì)于音頻設(shè)定為10ms,對(duì)于視頻設(shè)定為16ms。
所述同步控制算法還可以包括媒體流內(nèi)和媒體流間的同步控制,其方法具體為 (23)為每一路流引入同步窗口來(lái)監(jiān)測(cè)同步誤差; 對(duì)于流i,被測(cè)量的同步相位扭曲由下面的公式計(jì)算 其中,Wi是當(dāng)前監(jiān)測(cè)窗口長(zhǎng)度,Wi為最大監(jiān)測(cè)窗口長(zhǎng)度,對(duì)于每個(gè)MDU的播放,滑動(dòng)窗口長(zhǎng)度每次增加1,范圍是從2到Wi; 測(cè)量的丟包率如下 其中ψi是當(dāng)前監(jiān)測(cè)窗口的丟包數(shù); (24)選擇兩個(gè)媒體流中最近配對(duì)的MDU,視頻n和音頻m,利用下述公式計(jì)算媒體流間同步誤差 如果|eint|<τa,v,那么視頻播放時(shí)間Tpv(n)不變; 如果eint>τa,v,則視頻播放時(shí)間Tpv(n)由公式計(jì)算;否則視頻播放時(shí)間由公式計(jì)算; 其中,Tpv(n)為視頻的第n個(gè)MDU的播放時(shí)間,Tpa(m)為音頻的第m個(gè)MDU的播放時(shí)間;Tgv(n)為視頻的第n個(gè)MDU的生成時(shí)間,Tga(m)為音頻的第m個(gè)MDU的生成時(shí)間;τa,v為流間均方根誤差。
所述同步控制算法還可以包括調(diào)整虛擬時(shí)鐘,其方法為在測(cè)量到流i的同步誤差相對(duì)于最大監(jiān)測(cè)窗口Wi都為零的時(shí)候使用;其調(diào)整量為 其中,Δ1i為流MDU的監(jiān)測(cè)窗口中最小緩沖延遲; 當(dāng)同步誤差超過(guò)閾值時(shí),虛擬時(shí)鐘減慢,在網(wǎng)絡(luò)延遲服從對(duì)數(shù)正態(tài)分布的長(zhǎng)尾分布的情況下,按如下公計(jì)算調(diào)整量調(diào)整發(fā)生在原時(shí)鐘和虛擬時(shí)鐘偏差Oi時(shí) 其中,Wi是當(dāng)前監(jiān)測(cè)窗口長(zhǎng)度,Wi為最大監(jiān)測(cè)窗口長(zhǎng)度,δi為設(shè)置的拋棄邊界值,Tai(n)為流i的第n個(gè)MDU的抵達(dá)時(shí)間,Tgi(n)為流i的第n個(gè)MDU的生成時(shí)間。
本發(fā)明提供的方法通過(guò)對(duì)虛擬時(shí)鐘的自適應(yīng)調(diào)整,在媒體流內(nèi)同步的同時(shí)還可以達(dá)到媒體流間的唇音同步,同時(shí)提供了監(jiān)測(cè)系統(tǒng)Qos性能的量化標(biāo)準(zhǔn),極大提高了互聯(lián)網(wǎng)多媒體應(yīng)用唇音同步性能。
圖1是本發(fā)明MDU抵達(dá)的時(shí)間分區(qū)圖; 圖2是本發(fā)明同步控制算法的閉環(huán)同步控制圖; 圖3是本發(fā)明MDU回放時(shí)間算法流程圖; 圖4是本發(fā)明音頻延遲和同步控制流程圖; 圖5是本發(fā)明視頻延遲和同步控制流程圖; 圖6是本發(fā)明網(wǎng)絡(luò)延遲服從對(duì)數(shù)正態(tài)分布的示意圖; 圖7是本發(fā)明特定參數(shù)下的一次唇音同步仿真示意圖。
具體實(shí)施例方式 本發(fā)明是在提出虛擬時(shí)鐘模型的基礎(chǔ)上,通過(guò)自適應(yīng)延遲算法和同步控制算法來(lái)獲得媒體流內(nèi)的媒體流間的同步。具體地說(shuō),是根據(jù)媒體流內(nèi)和媒體流間的均方誤差最小并且丟包滿足一定閾值的要求下,并假設(shè)互聯(lián)網(wǎng)延遲服從長(zhǎng)尾分布(對(duì)數(shù)正態(tài)分布),推導(dǎo)出一些評(píng)估同步性能的公式,然后闡述了具體算法,包括自適應(yīng)延遲算法和同步控制算法以及虛擬時(shí)鐘的調(diào)整等。其中,自適應(yīng)延遲算法包括同步相位扭曲(SPD)的計(jì)算,包損失率的計(jì)算,以及端到端平均延遲(ED)的計(jì)算;同步控制算法包括MDU(Media Data Units,媒體數(shù)據(jù)單元)的播放時(shí)間的決定,媒體流內(nèi)和媒體流間的同步控制以及虛擬時(shí)鐘調(diào)整。
虛擬時(shí)鐘模型 一個(gè)典型的互聯(lián)網(wǎng)多媒體實(shí)時(shí)播放系統(tǒng)包括一路音頻和一路視頻對(duì)象,在源端,音頻和視頻信號(hào)被周期性采集并被編碼,然后分成附加了一定同步信息的MDU(比如,時(shí)戳和序號(hào)),然后被打成包發(fā)送到目的地址。對(duì)端收到的MDU首先被放入接收緩沖區(qū),然后解碼并渲染。這個(gè)過(guò)程中,全部延遲包括 1)采集延遲,在源端的采集編碼和分片所需要的時(shí)間; 2)傳輸延遲,網(wǎng)絡(luò)傳輸所需要的時(shí)間; 3)緩沖延遲,或者稱為補(bǔ)償延遲,為補(bǔ)償網(wǎng)絡(luò)抖動(dòng)而人為引入的時(shí)間; 4)處理延遲,解碼MDU并渲染所花費(fèi)的時(shí)間。
在本發(fā)明中,端到端的延遲被定義為MDU從發(fā)送側(cè)進(jìn)入傳輸層至從接收側(cè)補(bǔ)償緩沖區(qū)輸出耗費(fèi)的時(shí)間,也就是上述2)傳輸延遲和3)緩沖延遲所占用的時(shí)間和。
在互聯(lián)網(wǎng)多媒體應(yīng)用中,由于視音頻數(shù)據(jù)通常是分別進(jìn)行編碼和傳輸?shù)模绻〖右酝娇刂?,?huì)出現(xiàn)嚴(yán)重的不同步現(xiàn)象。為了獲得自適應(yīng)的延遲控制,一個(gè)直接的解決方案是將兩個(gè)端同步到一個(gè)時(shí)鐘上(比如,通過(guò)使用網(wǎng)絡(luò)時(shí)間協(xié)議NTP),然后測(cè)量傳輸延遲并且根據(jù)該時(shí)鐘調(diào)整緩沖區(qū)延遲。事實(shí)上,許多唇音同步方案采用了這個(gè)假定(比如,RTP/RTCP方案)。然而,實(shí)際上并非能靈活地做到將兩個(gè)不同的端同步到一個(gè)時(shí)鐘上。
在本發(fā)明中,采用虛擬時(shí)鐘的概念來(lái)解決這個(gè)問(wèn)題,固有的分布虛擬時(shí)鐘有以下幾個(gè)優(yōu)點(diǎn)1)方便同時(shí)獲得防御性控制和交互控制;2)能以很低的開(kāi)銷實(shí)現(xiàn);3)不需要同步網(wǎng)絡(luò)情況下實(shí)現(xiàn)了局部同步控制。
虛擬時(shí)鐘模型在解碼端真實(shí)時(shí)鐘的基礎(chǔ)上添加了虛擬時(shí)鐘。對(duì)互聯(lián)網(wǎng)多媒體應(yīng)用來(lái)說(shuō),虛擬時(shí)鐘的初始值被初始化成為流的第一個(gè)收到的MDU的時(shí)戳,然后對(duì)于每一個(gè)抵達(dá)的MDU,生成時(shí)間以及抵達(dá)時(shí)間是可用的。生成時(shí)間在采樣的時(shí)候獲得并且被用時(shí)戳表示,抵達(dá)時(shí)間則是包抵達(dá)的虛擬時(shí)鐘采樣。目標(biāo)系統(tǒng)把生成時(shí)間看作是MDU的被調(diào)度的回放時(shí)間,通過(guò)比較這兩個(gè)值并且重新調(diào)度回放時(shí)間來(lái)獲得自適應(yīng)的回放期限。因此,一個(gè)同步的網(wǎng)絡(luò)時(shí)鐘就不再必要了,同步可以通過(guò)操縱虛擬時(shí)鐘來(lái)獲得。
本發(fā)明中提出的自適應(yīng)延遲算法的性能包括 1)同步相位扭曲(SPD) 媒體流內(nèi)的SPD可以通過(guò)流內(nèi)的MDU的回放時(shí)間以及采樣時(shí)間的均方根誤差來(lái)獲得,媒體流間的SPD可以通過(guò)最近的相應(yīng)流間的MDU的回放時(shí)間以及采樣時(shí)間的均方根誤差來(lái)獲得。
下面給出流內(nèi)的均方根誤差公式 其中,Tgi(n)為流i的第n個(gè)MDU被生成時(shí)間,Tpi(n)為流i的第n個(gè)MDU被播放的時(shí)間,Ni是流i的被播放的整個(gè)MDU數(shù)量。
對(duì)于包含一路音頻和一路視頻的媒體,流間的均方根誤差公式為 其中,音頻的第m個(gè)MDU對(duì)應(yīng)于視頻的第n個(gè)MDU,Tpa(m)為音頻的第m個(gè)MDU的播放時(shí)間,Tpv(n)為視頻的第n個(gè)MDU的播放時(shí)間;Tga(m)為音頻的第m個(gè)MDU的生成時(shí)間,Tgv(n)為視頻的第n個(gè)MDU的生成時(shí)間;Na是全部音頻MDU的數(shù)量。
2)包損失率(LR),包損失率的定義為 其中,Mi是總接收包數(shù),Ni是可以播放的包數(shù)。
3)端間平均延遲(ED); 其中,oi(n)為第n個(gè)包的相對(duì)于源時(shí)鐘的偏移。
同步控制算法包括 1)MDU播放時(shí)間計(jì)算 一定程度的渲染抖動(dòng),比如相位扭曲,對(duì)于人的感知系統(tǒng)來(lái)說(shuō)是可以接受的,這就意味著只要MDU調(diào)度時(shí)間沒(méi)拖太久,在正確的控制算法下,仍然可以正常的渲染而不會(huì)導(dǎo)致顯著相位的顯著扭曲。對(duì)于每一個(gè)MDU,設(shè)置一個(gè)拋棄邊界值δi,這樣就將流內(nèi)的MDU抵達(dá)時(shí)間分成播放和拋棄兩個(gè)區(qū)間,如附圖1所示,對(duì)于流i的第n個(gè)MDU,如果那么數(shù)據(jù)就落入播放區(qū)并將被渲染。如果那么就簡(jiǎn)單的拋棄該數(shù)據(jù)以避免錯(cuò)誤。注意,下面的條件必須成立如果流i的第n個(gè)MDU到達(dá)較早,那么就會(huì)被在調(diào)度時(shí)間播放出來(lái),否則依賴于n-1的MDU是如何播放的,如果n-1的MDU被及時(shí)渲染了,那么第n個(gè)MDU在抵達(dá)時(shí)就立即被播放;如果第n-1個(gè)MDU晚于調(diào)度時(shí)間,那么將應(yīng)用一個(gè)平滑因子來(lái)保證SPD最小。具體算法參見(jiàn)說(shuō)明書(shū)附圖2。包括 對(duì)于音頻流(基準(zhǔn))來(lái)說(shuō) 第一步,首先在流內(nèi)誤差的約束下計(jì)算播放時(shí)間,該播放時(shí)間由虛擬時(shí)鐘控制; 第二步,計(jì)算系統(tǒng)誤差,并將該誤差返回虛擬時(shí)鐘; 第三步,將系統(tǒng)誤差解碼和播放。
對(duì)于視頻流(從屬)來(lái)說(shuō) 第一步,首先在流內(nèi)誤差約束下計(jì)算播放時(shí)間,該播放時(shí)間由虛擬時(shí)鐘控制; 第二步,在流間誤差約束下計(jì)算播放時(shí)間; 第三步,計(jì)算系統(tǒng)誤差,并將該誤差返回虛擬時(shí)鐘, 第四步,將系統(tǒng)誤差解碼和播放。
2)媒體流內(nèi)和媒體流間的同步控制 多媒體編解碼設(shè)備不僅需要流內(nèi)同步,也需要流間同步來(lái)保證表現(xiàn)質(zhì)量。由于播放時(shí)間策略能引入大的相位扭曲,在本文的同步算法中,為每一路流引入了同步窗口來(lái)監(jiān)測(cè)同步誤差(包括SPD和丟包率)。對(duì)于流i,被測(cè)量的SPD由下面的公式給出 其中,其中Wi是當(dāng)前窗口長(zhǎng)度,Wi是最大窗口長(zhǎng)度。注意,對(duì)于每個(gè)MDU的播放,滑動(dòng)窗口長(zhǎng)度每次增加1,范圍是從2到Wi。
測(cè)量的丟包率如下 其中ψi是當(dāng)前監(jiān)測(cè)窗口的丟包數(shù)。本發(fā)明的控制算法的實(shí)時(shí)計(jì)算同步誤差由(1.8)和(1.9)定義。在本發(fā)明中選擇了對(duì)于延遲的變化更加敏感的音頻作為基準(zhǔn)流,并將流間同步約束應(yīng)用到作為從屬流的視頻上,算法的本質(zhì)就是由基準(zhǔn)流和從屬流的流內(nèi)誤差驅(qū)動(dòng)計(jì)算,并逐包調(diào)整端到端的延時(shí)來(lái)滿足應(yīng)用要求的誤差閾值。算法參見(jiàn)說(shuō)明書(shū)附圖3。
對(duì)于視頻流,到達(dá)的MDU的播放時(shí)間首先由流內(nèi)同步約束決定,然后再根據(jù)流間同步約束調(diào)整,同步誤差在該步驟之后計(jì)算。對(duì)于音頻流,到達(dá)的MDU的播放時(shí)間僅僅由自己的流內(nèi)同步約束決定。整個(gè)處理過(guò)程中,兩個(gè)流的同步誤差被監(jiān)測(cè),一旦任何一個(gè)流的同步誤差(或者均方根誤差或者丟包率)超過(guò)閾值,虛擬時(shí)鐘將要被相應(yīng)減慢。當(dāng)基準(zhǔn)流的誤差在一段時(shí)間內(nèi)為0的時(shí)候,虛擬時(shí)鐘才可以被加快。
具體的算法參見(jiàn)附圖4和附圖5,附圖5中媒體流間同步對(duì)視頻MDU播放時(shí)間的修正如下 選擇兩個(gè)媒體流中最近配對(duì)的MDU,比如視頻n和音頻m,利用下述公式計(jì)算媒體流間同步誤差 如果|eint|<τa,v,那么視頻播放時(shí)間Tpv(n)不變。
如果eint>τa,v,則視頻播放時(shí)間Tpv(n)由(1.8)決定 否則視頻播放時(shí)間由(1.9)決定 其中,Tpv(n)為視頻的第n個(gè)MDU的播放時(shí)間,Tpa(m)為音頻的第m個(gè)MDU的播放時(shí)間;Tgv(n)為視頻的第n個(gè)MDU的生成時(shí)間,Tga(m)為音頻的第m個(gè)MDU的生成時(shí)間;τa,v為流間均方根誤差。
3)虛擬時(shí)鐘調(diào)整 當(dāng)同步誤差被測(cè)量到的時(shí)候,時(shí)鐘調(diào)整用于擴(kuò)大或者縮小MDU回放的時(shí)間,或者提前跳過(guò)接收MDU,以便過(guò)量誤差被觀察到的時(shí)候減少同步誤差,或者在MDU過(guò)緩沖的時(shí)候減少等價(jià)延遲。但由于時(shí)鐘頻率的調(diào)整產(chǎn)生了額外的誤差,一個(gè)自適應(yīng)的算法應(yīng)當(dāng)避免這種情況發(fā)生,時(shí)鐘加速調(diào)整非常保守,只有在測(cè)量到流i的同步誤差相對(duì)于最大監(jiān)測(cè)窗口Wi都是0的時(shí)候才使用。調(diào)整量為 其中,Δ1i是流MDU的監(jiān)測(cè)窗口中最小緩沖延遲。在調(diào)整后,下一個(gè)監(jiān)測(cè)周期內(nèi)預(yù)期的MDU到達(dá)會(huì)滿足流內(nèi)同步約束。
當(dāng)同步誤差超過(guò)閾值的時(shí)候,虛擬時(shí)鐘需要減慢,按如下方法計(jì)算調(diào)整量。假定網(wǎng)絡(luò)延遲的分布是如圖7所示的對(duì)數(shù)正態(tài)分布的長(zhǎng)尾分布,調(diào)整發(fā)生在原時(shí)鐘和虛擬時(shí)鐘偏差Oi的時(shí)候。根據(jù)推導(dǎo)可得 其中,Wi是當(dāng)前監(jiān)測(cè)窗口長(zhǎng)度,Wi為最大監(jiān)測(cè)窗口長(zhǎng)度,δi為設(shè)置的拋棄邊界值,Tai(n)為流i的第n個(gè)MDU的抵達(dá)時(shí)間,Tgi(n)為流i的第n個(gè)MDU的生成時(shí)間。
上述的自適應(yīng)延遲算法和同步控制算法可以應(yīng)用于多媒體編解碼設(shè)備,媒體傳送采用RTP協(xié)議,每一個(gè)媒體包都有一個(gè)序號(hào)和對(duì)應(yīng)于生成時(shí)間的時(shí)戳,在算法運(yùn)行之前,首先要設(shè)定一些參數(shù) 媒體流內(nèi)SPD閾值對(duì)于音頻一般為2~5ms,設(shè)定為2ms;對(duì)于視頻設(shè)定為5ms; 丟包率閾值對(duì)于音頻一般為1%~2%,設(shè)定為0.02。對(duì)于視頻設(shè)定為0.03; 平滑因子對(duì)于音頻設(shè)定為10ms,對(duì)于視頻設(shè)定為16ms; 媒體流間最大斜扭設(shè)定為80ms; 最大監(jiān)測(cè)窗口長(zhǎng)度對(duì)于音頻和視頻皆設(shè)定為900; 丟包閾值假定網(wǎng)絡(luò)延遲服從對(duì)數(shù)正態(tài)分布,根據(jù)相關(guān)參數(shù),可以通過(guò)算法進(jìn)行仿真,然后根據(jù)性能指標(biāo)在仿真得出的曲面上選擇合適的音頻和視頻丟包閾值。
當(dāng)算法運(yùn)行的時(shí)候,對(duì)于每一個(gè)媒體MDU,按照自適應(yīng)延遲算法和同步控制算法計(jì)算出相關(guān)數(shù)據(jù),然后動(dòng)態(tài)調(diào)整虛擬時(shí)鐘,同時(shí)將實(shí)時(shí)獲得的性能參數(shù)傳遞給調(diào)試日志客戶端進(jìn)行記錄,通過(guò)該記錄,可以在主觀測(cè)試唇音同步的基礎(chǔ)上提供有力的量化數(shù)據(jù),為系統(tǒng)級(jí)唇音同步測(cè)試提供了有效數(shù)據(jù)。
本發(fā)明根據(jù)網(wǎng)絡(luò)延遲分布的特點(diǎn),利用相關(guān)傳輸協(xié)議中相關(guān)的同步信息,在同步誤差的均方根意義下通過(guò)自適應(yīng)的同步控制算法獲得互聯(lián)網(wǎng)多媒體應(yīng)用的唇音同步。相關(guān)性能參數(shù)可以通過(guò)網(wǎng)絡(luò)連接逐包發(fā)送到監(jiān)測(cè)的PC機(jī),對(duì)于每一個(gè)終端,媒體流內(nèi)和媒體流間的SPD以及丟包率和平均端到端的延遲都可以用趨勢(shì)圖動(dòng)態(tài)顯示出來(lái)。并且用戶的監(jiān)測(cè)端可以隨時(shí)將相關(guān)閾值參數(shù)設(shè)置到對(duì)應(yīng)的終端,以方便調(diào)試。而且,在未來(lái)的應(yīng)用中,這些控制算法可以換用其他的算法,但是這些性能參數(shù)的即時(shí)值同樣可以作為系統(tǒng)QoS性能以及唇音同步的性能的度量,用于系統(tǒng)性能的評(píng)價(jià)。仿真以及繪圖可以用sciPy以及matplotlib得到,見(jiàn)說(shuō)明書(shū)附圖7。圖7為特定參數(shù)下的一次唇音同步仿真,所用參數(shù)如下 仿真點(diǎn)數(shù)500次; 網(wǎng)絡(luò)延遲的誤差服從對(duì)數(shù)正態(tài)分布,mu=1,sigma=2; 音頻流內(nèi)同步誤差閾值10ms,視頻同步誤差20ms,音視頻流間同步誤差80ms; 音頻最大窗口400,視頻最大窗口400; 音頻平滑因子10ms,視頻平滑因子10ms; 音頻丟包率閾值3%,視頻丟包率閾值3%; 音頻包拋棄閾值20ms,視頻包拋棄閾值20ms; 仿真效果圖的橫坐標(biāo)為時(shí)間,每單位40ms,對(duì)于視頻,將一幀的最后一個(gè)包到達(dá)時(shí)間作為幀抵達(dá)時(shí)間。各個(gè)子圖從上到下分別為 1.音頻包抵達(dá)時(shí)間誤差,也就是每個(gè)音頻包得抵達(dá)時(shí)間(基于虛擬時(shí)鐘)減去生成時(shí)間(基于對(duì)方時(shí)鐘),由于算法調(diào)整減慢了虛擬時(shí)鐘的緣故,音頻抵達(dá)誤差為很多為負(fù)值; 2.音頻播放時(shí)間誤差,也就是每個(gè)音頻包播放的時(shí)間(基于虛擬時(shí)鐘)減去生成時(shí)間,可以看出誤差很多趨近于0,表明算法調(diào)控效果很好; 3.視頻幀抵達(dá)時(shí)間誤差,效果基本同子圖1; 4.視頻幀播放時(shí)間誤差,效果基本同子圖2; 5.音頻和視頻的同步誤差,在算法調(diào)控下,同步誤差基本是收斂的,某些變大的值是由于相應(yīng)視頻和音頻抵達(dá)時(shí)間誤差比較大所導(dǎo)致,但是這種突變后的收斂說(shuō)明了算法的有效性。
本發(fā)明的方法通過(guò)對(duì)虛擬時(shí)鐘的自適應(yīng)調(diào)整,在媒體流內(nèi)同步的同時(shí)還可以達(dá)到媒體流間的唇音同步,同時(shí)提供了監(jiān)測(cè)系統(tǒng)QoS性能的量化指標(biāo),對(duì)于互聯(lián)網(wǎng)多媒體應(yīng)用唇音同步性能的提高有很大幫助。
權(quán)利要求
1.一種多媒體視音頻流唇音同步的調(diào)測(cè)方法,包括如下步驟
(1)在多媒體視音頻流解碼端真實(shí)時(shí)鐘的基礎(chǔ)上建立虛擬時(shí)鐘模型;
(2)根據(jù)自適應(yīng)延遲算法和同步控制算法的計(jì)算結(jié)果,調(diào)整所述虛擬時(shí)鐘,獲得多媒體視音頻流唇音同步。
2.根據(jù)權(quán)利要求1所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述步驟(1)中建立虛擬時(shí)鐘模型的方法為
(11)設(shè)置虛擬時(shí)鐘的初始值為收到的多媒體流的第一個(gè)媒體數(shù)據(jù)單元的時(shí)戳;
(12)獲取每一個(gè)抵達(dá)的媒體數(shù)據(jù)單元的生成時(shí)間和抵達(dá)時(shí)間;
(13)解碼端將所述每一個(gè)抵達(dá)的媒體數(shù)據(jù)單元的生成時(shí)間作為其回放時(shí)間,將每一個(gè)抵達(dá)的媒體數(shù)據(jù)單元的抵達(dá)時(shí)間作為虛擬時(shí)鐘采樣,比較所述生成時(shí)間和抵達(dá)時(shí)間并重新調(diào)度回放時(shí)間,獲得自適應(yīng)的回放期限。
3.根據(jù)權(quán)利要求2所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述步驟(2)中,自適應(yīng)延遲算法包括
(21)計(jì)算媒體流內(nèi)的同步相位扭曲;
所述媒體流內(nèi)的同步相位扭曲通過(guò)計(jì)算流內(nèi)的媒體數(shù)據(jù)單元的回放時(shí)間以及采樣時(shí)間的均方根誤差來(lái)獲得,計(jì)算公式如下
其中,Tgi(n)為流i的第n個(gè)媒體數(shù)據(jù)單元的生成時(shí)間,Tpi(n)為流i的第n個(gè)媒體數(shù)據(jù)單元的播放的時(shí)間,Ni是流i的被播放的所有媒體數(shù)據(jù)單元的數(shù)量;
(22)計(jì)算媒體流間的同步相位扭曲;
所述媒體流間的同步相位扭曲通過(guò)計(jì)算最近的相應(yīng)流間媒體數(shù)據(jù)單元的回放時(shí)間以及采樣時(shí)間的均方根誤差來(lái)獲得,計(jì)算公式如下
其中,音頻的第m個(gè)媒體數(shù)據(jù)單元對(duì)應(yīng)于視頻的第n個(gè)媒體數(shù)據(jù)單元,Tga(m)為音頻的第m個(gè)媒體數(shù)據(jù)單元的生成時(shí)間,Tpa(m)為音頻的第m個(gè)媒體數(shù)據(jù)單元的播放時(shí)間;Tgv(n)為視頻的第n個(gè)媒體數(shù)據(jù)單元的生成時(shí)間,Tpv(n)為視頻的第n個(gè)媒體數(shù)據(jù)單元的播放時(shí)間,Na是所有音頻媒體數(shù)據(jù)單元的數(shù)量。
4.根據(jù)權(quán)利要求3所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述自適應(yīng)延遲算法還包括計(jì)算包損失率,采用如下公式計(jì)算
其中,Mx為接收的總包數(shù),Ni為可以播放的包數(shù)。
5.根據(jù)權(quán)利要求4所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述自適應(yīng)延遲算法還包括計(jì)算端間平均延遲,采用如下公式計(jì)算
其中,oi(n)為第n個(gè)包相對(duì)于源時(shí)鐘的偏移。
6.根據(jù)權(quán)利要求1或5所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述步驟(2)中,同步控制算法包括計(jì)算媒體數(shù)據(jù)單元播放時(shí)間,計(jì)算方法為
對(duì)于流i的第n個(gè)媒體數(shù)據(jù)單元,如果成立,且成立,則數(shù)據(jù)落入播放區(qū)被渲染;如果成立,則拋棄該數(shù)據(jù);
如果流i的第n個(gè)媒體數(shù)據(jù)單元到達(dá)較早,則該媒體數(shù)據(jù)單元在調(diào)度時(shí)間播放出來(lái);否則,如果第n-1個(gè)媒體數(shù)據(jù)單元被及時(shí)渲染,則第n個(gè)媒體數(shù)據(jù)單元在抵達(dá)時(shí)就立即被播放,如果第n-1個(gè)媒體數(shù)據(jù)單元晚于調(diào)度時(shí)間,則利用平滑因子使相位扭曲最小;
其中,Tgi(n-1)為流i的第n-1個(gè)媒體數(shù)據(jù)單元的生成時(shí)間,Tgi(n)為流i的第n個(gè)媒體數(shù)據(jù)單元的生成時(shí)間,Tai(n)為流i的第n個(gè)媒體數(shù)據(jù)單元的抵達(dá)時(shí)間,δi為設(shè)置的拋棄邊界值。
7.根據(jù)權(quán)利要求6所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述平滑因子對(duì)于音頻設(shè)定為10ms,對(duì)于視頻設(shè)定為16ms。
8.根據(jù)權(quán)利要求6所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述同步控制算法還包括媒體流內(nèi)和媒體流間的同步控制,其方法具體為
(23)為每一路流引入同步窗口來(lái)監(jiān)測(cè)同步誤差;
對(duì)于流i,被測(cè)量的同步相位扭曲由下面的公式計(jì)算
其中,Wi是當(dāng)前窗口長(zhǎng)度,Wi為最大窗口長(zhǎng)度,對(duì)于每個(gè)媒體數(shù)據(jù)單元的播放,滑動(dòng)窗口長(zhǎng)度每次增加1,范圍是從2到Wi;
測(cè)量的丟包率如下
,其中ψi是當(dāng)前監(jiān)測(cè)窗口的丟包數(shù);
(24)選擇兩個(gè)媒體流中最近配對(duì)的媒體數(shù)據(jù)單元,視頻n和音頻m,利用下述公式計(jì)算媒體流間同步誤差
如果|eint|<τa,v,那么視頻播放時(shí)間Tpv(n)不變;
如果eint>τa,v,則視頻播放時(shí)間Tpv(n)由公式計(jì)算;否則視頻播放時(shí)間由公式計(jì)算;
其中,Tpv(n)為視頻的第n個(gè)媒體數(shù)據(jù)單元的播放時(shí)間,Tpa(m)為音頻的第m個(gè)媒體數(shù)據(jù)單元的播放時(shí)間;Tgv(n)為視頻的第n個(gè)媒體數(shù)據(jù)單元的生成時(shí)間,Tga(m)為音頻的第m個(gè)媒體數(shù)據(jù)單元的生成時(shí)間;τa,v為流間均方根誤差。
9.根據(jù)權(quán)利要求8所述的多媒體視音頻流唇音同步的調(diào)測(cè)方法,其特征在于,所述同步控制算法還包括調(diào)整虛擬時(shí)鐘,其方法為在測(cè)量到流i的同步誤差相對(duì)于最大監(jiān)測(cè)窗口Wi都為零的時(shí)候使用;其調(diào)整量為
其中,Δ1i為流媒體數(shù)據(jù)單元的監(jiān)測(cè)窗口中最小緩沖延遲;
當(dāng)同步誤差超過(guò)閾值時(shí),虛擬時(shí)鐘減慢,在網(wǎng)絡(luò)延遲服從對(duì)數(shù)正態(tài)分布的長(zhǎng)尾分布的情況下,按如下公計(jì)算調(diào)整量調(diào)整發(fā)生在原時(shí)鐘和虛擬時(shí)鐘偏差Oi時(shí)
其中,Wi是當(dāng)前監(jiān)測(cè)窗口長(zhǎng)度,Wi為最大監(jiān)測(cè)窗口長(zhǎng)度,δi為設(shè)置的拋棄邊界值,Tai(n)為流i的第n個(gè)媒體數(shù)據(jù)單元的抵達(dá)時(shí)間,Tgi(n)為流i的第n個(gè)媒體數(shù)據(jù)單元的生成時(shí)間。
全文摘要
本發(fā)明公開(kāi)一種多媒體視音頻流唇音同步的調(diào)測(cè)方法,涉及唇音同步的調(diào)測(cè)方法,為解決現(xiàn)有方法不能很好實(shí)現(xiàn)多媒體流的唇音同步的問(wèn)題而發(fā)明。本發(fā)明通過(guò)在多媒體視音頻流解碼端真實(shí)時(shí)鐘的基礎(chǔ)上建立虛擬時(shí)鐘模型;根據(jù)自適應(yīng)延遲算法和同步控制算法的計(jì)算結(jié)果,調(diào)整所述虛擬時(shí)鐘,獲得多媒體視音頻流唇音同步。極大提高了互聯(lián)網(wǎng)多媒體應(yīng)用唇音同步性能。
文檔編號(hào)H04N7/52GK101212690SQ20061017027
公開(kāi)日2008年7月2日 申請(qǐng)日期2006年12月26日 優(yōu)先權(quán)日2006年12月26日
發(fā)明者薛堯舜, 張學(xué)英 申請(qǐng)人:中興通訊股份有限公司