分組網絡中多媒體實時傳輸的唇同步方法及其裝置的製作方法
2023-09-23 02:11:25
專利名稱:分組網絡中多媒體實時傳輸的唇同步方法及其裝置的製作方法
技術領域:
本發明涉及分組網絡中的多媒體實時傳輸,特別涉及分組網絡中多媒體實時傳輸的唇同步方法裝置。
背景技術:
隨著網際網路(Internet)的飛速發展,流媒體技術的應用越來越廣泛,從網上廣播、電影播放到遠程教學以及在線的新聞網站等都用到了流媒體技術。當前網上傳輸視頻、音頻主要有下載(Download)和流式傳輸(Streaming)兩種方式。流式傳輸是連續傳送視/音頻信號,當流媒體在客戶機播放時其餘部分在後臺繼續下載。流式傳輸有順序流式傳輸(Progressive Streaming)和實時流式傳輸(Realtime Streaming)兩種方式。實時流式傳輸是實時傳送,特別適合現場事件,實時流式傳輸必須匹配連接帶寬,這意味著圖像質量會因網絡速度降低而變差,以減少對傳輸帶寬的需求。「實時」的概念是指在一個應用中數據的交付必須與數據的產生保持精確的時間關係。在網際網路中使用流式傳輸技術的連續時基媒體就稱為流媒體,通常也將其視頻與音頻稱為視頻流和音頻流。
流媒體傳輸需要幾個基本組件,這些組件在各個不同層面上互相通信以實現流媒體傳輸,基本的流媒體系統包含以下3個組件播放器(Player),用來播放流媒體的軟體;伺服器(Server),用來向用戶發送流媒體的軟體;編碼器(Encode),用來將原始的音頻視頻轉化為流媒體格式的軟體。這些組件之間通過特定的協議互相通信,按照特定的格式互相交換文件數據。有些文件中包含了由特定編解碼器解碼的數據,這種編解碼器通過特定算法壓縮文件的數據量。
目前流媒體傳輸基本上都是採用實時傳輸協議(Real-time TransportProtocol,簡稱「RTP」)及其控制協議(Real-time Transport Control Protocol,簡稱「RTCP」)。RTP是針對Internet上多媒體數據流的一個傳輸協議,由網際網路工程任務組(Internet Engineering Task Force,簡稱「IETF」)發布。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間信息和實現流同步。RTP的典型應用建立在用戶數據包協議(User DatagramProtocol,簡稱「UDP」)上,但也可以在傳輸控制協議(Transport ControlProtocol,簡稱「TCP」)或異步傳輸模式(Asynchronous Transfer Mode,簡稱「ATM」)等其他協議之上工作。RTP本身只保證實時數據的傳輸,並不能為按順序傳送數據包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務。RTCP負責管理傳輸質量在當前應用進程之間交換控制信息。在RTP會話期間,各參與者周期性地傳送RTCP包,包中含有已發送的數據包的數量、丟失的數據包的數量等統計資料,因此,伺服器可以利用這些信息動態地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網上的實時數據。
在RTP協議中為了實現接收端能夠正確恢復多媒體數據包的順序並進行播放,給出了根據時間戳進行同步的方法。時間戳欄位是RTP首部中說明數據包時間的同步信息,是數據能以正確的時間順序恢復的關鍵。時間戳的值給出了分組中數據的第一個字節的採樣時間(Sampling Instant),要求發送方時間戳的時鐘是連續、單調增長的,即使在沒有數據輸入或發送數據時也是如此。在靜默時,發送方不必發送數據,保持時間戳的增長,在接收端,由於接收到的數據分組的序號沒有丟失,就知道沒有發生數據丟失,而且只要比較前後分組的時間戳的差異,就可以確定輸出的時間間隔。一次會話的初始時間戳必須隨機選擇,時間戳的單位是由負載類型來確定的。
另外,多媒體傳輸往往包含多種不同的流一起傳輸,播放時也需要同時播。因此如何實現多種流的同步將是多媒體流傳輸的一大難題。RTCP的一個關鍵作用就是能讓接收方同步多個RTP流,例如當音頻與視頻一起傳輸的時候,由於編碼的不同,RTP使用兩個流分別進行傳輸,這樣兩個流的時間戳以不同的速率運行,接收方必須同步兩個流,以保證聲音與影像的一致。
為能進行流同步,RTCP要求發送方給每個傳送一個唯一的標識數據源的規範名(Canonical Name),由一個數據源發出的不同的流具有相同的規範名,這樣接收方就知道哪些流是有關聯的。而發送方報告報文所包含的信息可被接收方用於協調兩個流中的時間戳值。發送方報告中含有一個以網絡時間協議(Network Time Protocol,簡稱「NTP」)格式表示的絕對時間值,產生該值的時鐘就是產生RTP分組中的時間戳欄位的那個時鐘。由於發送方發出的所有流和發送方報告都使用同一個絕對時鐘,接收方就可以比較來自同一數據源的兩個流的絕對時間,從而確定如何將一個流中的時間戳值映射為另一個流中的時間戳值。
但是,由於多媒體流的各個流如音頻流、視頻流等各自的傳輸路徑和環境都不同,網絡傳輸情況變化複雜且不可預測,會造成音頻流和視頻流傳輸的延時和抖動。為了消除抖動的現象,接收端在接受到多媒體流後還要進行緩衝,即有個緩衝器在緩存接受到的數據包,然後進行同步後播放。加上抖動和緩衝處理後,多種流同步的問題將變得比原來複雜得多,而僅僅靠RTP/RTCP協議無法實現很好的同步。
對於音頻流和視頻流之間的同步,稱為唇同步,是多媒體傳輸的主要問題之一。為了聲音和圖像能夠更好的表達事物及含義,唇同步是為了實現聲音及其畫面的一致,保證音頻所表達的含義和圖像所表達的含義實時的相符合。如何在分組網絡環境下結合現有多媒體實時傳輸技術來實現唇同步是網絡多媒體傳輸急需解決的一個關鍵問題。
現有的網絡多媒體傳輸中,為了消除抖動在接收端設置了抖動緩衝(Jitter Buffer)。每個Jitter Buffer設置一定的緩衝深度,而且設置有固定時延。比如音頻流和視頻流的Jitter Buffer中分別設置固定的延時A1和A2。在緩存中的媒體流數據經過延時後一旦到達允許的播放時間,即分別播放音頻流和視頻流。圖1是現有技術中兩個Jitter Buffer的設置及其作用機制示意圖。
在現有技術中,由於每個流在Jitter Buffer中的時延是固定的,雖然緩衝可以消除抖動帶來的影響,同時也可以根據兩個流之間的延時確定補償其同步偏差。但是同步偏差是固定,這對於比較穩定的網絡情況是適用的。而對於分組網絡的傳輸情況,兩個獨立的流由於路徑不同、服務質量登記不同,導致音頻和視頻流在網絡傳輸中本身具有不同的延時,再加上抖動的情況使得網絡傳輸的延時也變化很大、不穩定,使得Jitter Buffer中固定的延時無法補償同步偏差,最終導致音頻流、視頻流失步而唇同步失敗。
在實際應用中,上述方案存在以下問題首先,音頻流和視頻流在JitterBuffer中的時延是固定的,不能夠動態調節,這對於網絡情況變化不能適應。比如當網絡條件好時,本身多媒體傳輸較快,緩衝時延太大會導致系統延時的浪費;而當網絡條件較差時抖動強烈而無法消除,導致兩個流失去同步關係,不能達到同步的效果。
其次,在固定時延後,兩個流之間同步偏差也是固定的,這在網絡條件發生變化時,比如變好或者惡化,導致同步偏差變化,但是經過同步處理後,反而增加了兩個流的同步偏差。
再次,音頻流和視頻流的獨立處理且在同步時相互間沒有同步的參考量,只是簡單通過增加固定延時的方法使得兩個流達到同步,不能根據兩個流同步結果反饋調整。
造成這種情況的主要原因在於,對於多媒體流的各個不同流即音頻流和視頻流進行緩衝Jitter Buffer處理時設置固定的延時,沒有調整機制。
發明內容
有鑑於此,本發明的主要目的在於提供一種分組網絡中多媒體實時傳輸的唇同步方法及其裝置,使得能夠通過簡單而有效的調整來克服網絡抖動、變化,實現音頻流和視頻流的唇同步。
為實現上述目的,本發明提供了一種分組網絡中多媒體實時傳輸的唇同步方法,所述多媒體包含音頻流和視頻流,該音頻流、視頻流在接收端通過各自的緩衝器緩存後再播放,包含以下步驟,A分別測量所述音頻流、視頻流的平均傳輸時延;B分別測量所述音頻流、視頻流的傳輸時延抖動;C根據所述音頻流、視頻流的所述平均傳輸時延、傳輸時延抖動,計算並設定所述音頻流、視頻流的緩衝器的緩存時長。
此外,還包含以下步驟,D所述音頻流或視頻流的緩衝器中的第一方周期性提供自身播放時間給第二方作為同步時間參考點,所述第二方根據該同步時間參考點調整播放。
此外在所述方法中,所述步驟A中,根據所述音頻流、視頻流數據包的發送時刻和接收時刻計算所述平均傳輸時延。
此外在所述方法中,所述步驟A中,通過迭代算法計算所述平均傳輸時延,包含以下子步驟,計算當前多媒體數據包的傳輸時延;迭代修正所述平均傳輸時延,使其更趨近所述當前多媒體數據包的傳輸時延。
此外在所述方法中,所述步驟C中,按以下方式計算所述音頻流、視頻流的緩衝器的緩存時長如果所述音頻流、視頻流的平均傳輸時延之差在允許的同步偏差範圍內,且均小於最大緩存時長,則直接按所述傳輸時延設置所述緩衝器的緩存時長;如果所述音頻流、視頻流的平均傳輸時延之差超出允許的同步偏差範圍內,則限定所述其中一者在同步偏差範圍內;如果所述音頻流、視頻流的平均傳輸時延超出所述最大緩存時長,則限定在最大緩存時長。
本發明還提供了一種分組網絡中多媒體實時傳輸的唇同步裝置,所述多媒體包含音頻流和視頻流,各自設置有緩衝器。該音頻流、視頻流在接收端通過各自的緩衝器緩存後再播放,還包含時延檢測模塊、同步模塊。
其中所述緩衝器還用於計算所述音頻流、視頻流的傳輸時延抖動;所述時延檢測模塊用於計算所述音頻流、視頻流的平均傳輸時延;所述同步模塊用於根據所述音頻流、視頻流的所述平均傳輸時延、傳輸時延抖動,計算所述音頻流、視頻流的緩衝器的緩存時長,所述緩衝器按該緩存時長設定。
其中,所述音頻流或視頻流的緩衝器中的第一方周期性提供自身播放時間給第二方作為同步時間參考點,所述第二方根據該同步時間參考點調整播放。
此外,所述時延檢測模塊根據所述音頻流、視頻流數據包的發送時刻和接收時刻計算所述平均傳輸時延。
此外,所述時延檢測模塊通過迭代算法計算所述平均傳輸時延。
通過比較可以發現,本發明的技術方案與現有技術的主要區別在於,設置了可以根據網絡時延信息來靈活調解緩衝時長的緩衝器,通過分別對音頻、視頻流的緩衝時長調整來實現兩者的同步;設置了時延檢測模塊來檢測音頻、視頻數據在分組網絡中的傳輸時延,然後由同步模塊參考音頻、視頻流的平均傳輸時延和傳輸時延抖動進行音頻、視頻模塊的同步;用同步模塊計算音頻、視頻緩衝器的緩存時長並進行靈活設置,以抵抗網絡傳輸抖動,同時調整兩者同步播放;由音頻或視頻兩方中一方給另一方定期發送同步時間參考點,以協調解決雙方的同步問題,增強唇同步精確度。
這種技術方案上的區別,帶來了較為明顯的有益效果,即通過網絡傳輸時延和抖動的檢測及基於此的唇同步,並結合音頻、視頻之間的同步參考點對照機制,通過簡單、準確的方法,能夠簡便快速地實現音頻、視頻流的同步,提高網絡多媒體傳輸的服務質量和執行效率,及其有利於服務提供商的市場拓展和業務提升。
圖1是現有技術方案中網絡多媒體傳輸的唇同步裝置示意圖;圖2是根據本發明的實施例的網絡多媒體傳輸的唇同步裝置示意圖;圖3是根據本發明的實施例的網絡多媒體傳輸的唇同步方法流程圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步地詳細描述。
由於IP分組網絡不是一個面向連接的網絡,其所提供的服務也是盡力而為的服務,網絡的服務質量得不到保證。數據在傳送時必將受到網絡的時延和抖動的影響。這樣在傳送多媒體業務時,必然會導致音頻流和視頻流失步,從而影響圖像和聲音所表達的效果。本發明力求在保證系統較小延時的情況克服分組網絡的影響,最終實現音頻流和視頻流的唇同步的處理。
本發明基於動態調整緩存時長的緩衝器來實現音頻和視頻流之間的唇同步。調整的依據是通過對分組網絡音頻、視頻數據包傳送時延及其抖動信息的分析。前端設置時延檢測模塊,根據數據包的發送時刻和接收時刻來計算相對傳輸時延,再由緩衝器本身來統計時延的抖動,將兩個信息傳給同步模塊,由其計算緩衝器中應該設置多長時間的緩存,並告知緩衝器。兩個流的緩衝器均按照同步模塊提供的參數設置緩存時長。同時緩衝器之間還由一方提供另一方自身播放時刻作為同步參考點,以增強唇同步精確度。
下面結合本發明的實施例討論技術實現細節。圖2給出本發明的第一實施例的多媒體網絡傳輸唇同步裝置的組成框圖,包括各個模塊的功能及其相互協作關係。可見,多媒體實時傳輸的唇同步裝置中,對於音頻流和視頻流各自設置有緩衝器,即音頻緩衝器(Jitter Buffer)和視頻緩衝器(Jitter Buffer)。多媒體數據在接收端通過各自的緩衝器緩存後再播放,圖中示出了音頻、視頻緩衝器的緩存時長分別是A1和A2。
前面已經提及,多媒體流再分組網絡上傳輸會有一定的延時,變化的延時就是網絡的抖動。不同數據包的延時不同,抖動就是延時的變化程度、方差或範圍。如果有網絡抖動,多媒體數據包到達的間隔都不同,這導致播放的時候不順暢或者不連續,而緩衝器的設置就可以避免或消除抖動帶來的影響。Jitter Buffer在物理上是一塊緩存,音頻幀或視頻幀要在這塊緩存中保留足夠長的時間然後再播放,它的大小反映了抵抗網絡抖動的能力。
與現有技術方案不同的是,本發明還包含時延檢測模塊和同步模塊,並且緩存時長A1和A2都是可以動態調整的。同步模塊用於根據音頻流、視頻流的平均傳輸時延、傳輸時延抖動,計算音頻流、視頻流的緩衝器的緩存時長A1、A2的最佳值應該取多少,然後通知Jitter Buffer由其進行調整緩存時長設定。為了獲取時延抖動等信息,設置的時延檢測模塊就是用於計算音頻流、視頻流的平均傳輸時延。而緩衝器則還用於計算音頻流、視頻流的傳輸時延抖動。
可見,本發明的唇同步裝置的關鍵原理就是,由同步模塊根據網絡傳輸情況實時調整Jitter Buffer的延時。這個延時差就是兩個流播放時和數據接收時的同步偏差。通過對兩個流延時的調整,不僅可以使得各個流都能滿足消除抖動的影響,而且可以產生偏差來彌補網絡傳輸差異引起的失步。
但是上述裝置中兩個流之間從開始播放之後就沒有在接收端有統一的時間參考點,這對於唇同步是一個潛在的威脅。當播放時間長了以後,由於技術、方法上的誤差,導致同步時間參考相差累積越來越大。考慮到這一點,本發明的第二實施例在第一實施例的基礎上,引入兩個流之間的同步時刻參考點更新機制。即音頻流或視頻流的緩衝器中的第一方周期性提供自身播放時間給第二方作為同步時間參考點,然後第二方根據該同步時間參考點調整播放。這個提供的機制使得音頻和視頻流能夠在一個周期內重新建立一致的同步參考。避免因誤差累積導致的潛在失步危險。
上面提及各個模塊之間的協作關係可以描述如下同步模塊從時延檢測模塊、音頻Jitter Buffer、視頻Jitter Buffer模塊獲取信息,如網絡延時信息、音頻和視頻的抖動信息;同時同步模塊又給音頻Jitter Buffer模塊,視頻JitterBuffer模塊提供設定緩存時長的信息。該關係在圖2中可以清除的看出。
本發明的第三實施例在第二實施例的基礎上,採用根據網絡數據包傳輸時刻計算統計其時延的方法來實現時延檢測模塊。時延檢測模塊根據音頻流、視頻流數據包的發送時刻和接收時刻計算平均傳輸時延。
首先根據音頻流和視頻流的到達時間和發送時間確定每一音頻包和視頻包在網絡上傳送相對延時。這裡每個數據包按照RTP協議在發送出時會打上一個時間戳(Time Stamp)這樣接收端即可以根據包上時間戳獲知發送時刻。另外,這裡之所以稱為相對延時就是因為發送方和接收端的絕對時刻可能不一致,因此只能計算相對時刻。
值得注意的是時延檢測模塊統計的是平均時延,因此需要採用迭代的算法根據之前數據包的歷時時延慢慢累積計算當前時刻平均時延。在本發明的第四實施例中,採用迭代算法計算出網絡的平均時延。同樣的Jitter Buffer中也要採用迭代算法來將每次設置的時延統計,計算一個平均的網絡抖動。該迭代方法的具體流程在下文中有詳細描述。
本發明的第五實施例在第三實施例的基礎上,同步模塊的實現方法如下所述從上面的實現方案可知同步模塊的輸入參數有音頻抖動值,視頻抖動值,音頻流和視頻流的網絡傳輸延時值。同步模塊接收到上述的信息後要將音頻流的延時值和抖動值與視頻流的延時值和抖動值進行比較,以此調整音頻流和視頻流之間總的延時差,使得音頻流和視頻流同步,最後再統一給出音頻Jitter Buffer模塊和視頻Jitter Buffer模塊各自總的延時A1和A2。
其中同步模塊計算音頻流、視頻流的緩衝器的緩存時長的原則是設置緩存時長,使得同步偏差在限定的範圍內並且儘量的小。具體就是要考慮到以下幾條如果音頻流、視頻流的平均傳輸時延之差在允許的同步偏差範圍內,且均小於最大緩存時長,則直接按傳輸時延設置緩衝器的緩存時長;如果音頻流、視頻流的平均傳輸時延之差超出允許的同步偏差範圍內,則限定其中一者在同步偏差範圍內;如果音頻流、視頻流的平均傳輸時延超出最大緩存時長,則限定在最大緩存時長。關於具體同步模塊如何進行比較判斷和設定的技術細節在下文中描述。
為了更加清晰的描述本發明的多媒體網絡傳輸唇同步裝置的工作機理,下面詳細給出一個上述裝置的一個動態工作過程。
從分組網絡側接收的音頻流和視頻流經過傳輸時延檢測模塊的處理計算出它們在網絡上的傳輸時間給同步模塊。音頻流和視頻流分別經過各自的動態Jitter Buffer模塊計算出各自的網絡抖動值給同步模塊。同步模塊根據上述的四個輸入參數按照一定算法分別計算出音頻Jitter Buffer的緩衝時長A1和視頻Jitter Buffer的緩衝時長A2,並送給音頻、視頻Jitter Buffer動態更新其緩衝時長。同時,音頻Jitter Buffer模塊根據A1計算出音頻的播放時間及其對應播放的音頻幀,並將這個播放時間發送給視頻Jitter Buffer,作為其播放的同步時間參考點,當然也可以反過來由視頻發給音頻。視頻Jitter Buffer根據同步參考點和A2值計算並調整播放緩衝器中的視頻幀。從而實現音頻與視頻的同步播放即唇同步。
熟悉本領域的技術人員可以理解,對於上述各實施例中,在模塊劃分、角色分配等方面若採用其它表現形式,比如同步模塊和音頻Jitter Buffer在物理上結合,共同實現同步信息的計算和音頻抖動的處理;又或者時延檢測模塊和同步模塊結合,共同實現傳輸延時的計算和同步信息的計算;或者同步模塊和視頻Jitter Buffer結合,共同實現同步信息的計算和視頻抖動的處理等,對於角色劃分比如由視頻Jitter Buffer發送同步時間參考點給音頻JitterBuffer,這些不同的表現形式有著同樣一個實現原理,都能實現發明目的,並不影響本發明的實質和範圍。
對於上文描述的網絡多媒體實時傳輸的唇同步裝置,下面將詳細給出相應的一些工作流程,即網絡多媒體實時傳輸的唇同步方法。本發明的第六實例中唇同步方法流程圖如圖3所示。
首先步驟301中,在分組網絡側接收多媒體流數據,多媒體包含音頻流和視頻流,該音頻流、視頻流在接收端通過各自的緩衝器緩存後再播放。
接著在步驟302中,分別測量音頻流、視頻流的平均傳輸時延。如前所述,在分組網絡側,最先通過處理的就是時延檢測模塊,根據音頻流、視頻流數據包的發送時刻和接收時刻,通過迭代算法計算平均傳輸時延。
接著在步驟303中,分別測量音頻流、視頻流的傳輸時延抖動。這一步由Jitter Buffer完成。由於Jitter Buffer本身處理和記錄網絡數據包的延時間隔,通過這些間隔的變化,可以很容易的計算網絡抖動。這裡也通過迭代算法計算。
接著在步驟304中,根據音頻流、視頻流的平均傳輸時延、傳輸時延抖動,計算並設定音頻流、視頻流的緩衝器的緩存時長。
同步模塊計算音頻流、視頻流的緩衝器的緩存時長的原則是設置緩存時長,使得同步偏差在限定的範圍內並且儘量的小。具體就是要考慮到以下幾條如果音頻流、視頻流的平均傳輸時延之差在允許的同步偏差範圍內,且均小於最大緩存時長,則直接按傳輸時延設置緩衝器的緩存時長;如果音頻流、視頻流的平均傳輸時延之差超出允許的同步偏差範圍內,則限定其中一者在同步偏差範圍內;如果音頻流、視頻流的平均傳輸時延超出最大緩存時長,則限定在最大緩存時長。
接著在步驟305中,音頻流或視頻流的Jitter Buffer中的一方周期性提供自身播放時間給另一方作為同步時間參考點,使其根據該同步時間參考點調整播放。這樣便完成了唇同步過程。
本發明的第七實施例在第六實施例的基礎上,通過以下步驟實現步驟302中的迭代方法計算平均傳輸時延根據數據包上的時間戳及本地時鐘,可以得知第i個媒體數據包的發送時刻和接收時刻分別為S(i),R(i)。於是相對傳輸時延為L(i)=R(i)-S(i)則迭代計算平均傳輸時延L的公式為
L:=L+1N[L(i)-L]]]>其中N為一個較大的常數,其取值與平均時延的精度有關。
可以看出,每當接收到一個新的數據包後,都會對原有的平均時延進行矯正,矯正的程度跟設置的N大小有關,該值越大表示當前值對平均時延影響越大,反之則越小。N應該取一個合適的值,如果太大則不能很好反映當前網絡狀況,如果太小則太容易受到起伏的影響,不能體現平均的效果,比如當L有32比特時取N=16。
該迭代方法也適用於步驟303中Jitter Buffer對抖動的估計。由上,第i包和第j包兩個包的傳輸時延之差D(i,j)可以計算為D(i,j)=[R(j)-R(i)]-[S(j)-S(i)]而所謂網絡抖動就是定義為不同包傳輸時延變化的標準差,也就是不同包之間時延差的平均值,於是網絡抖動按下式計算J:=J+1M[|D(i-1,i)|-J]]]>這裡的M與上面的N類似。
本發明的第八實施例在第六實施例的基礎上,通過以下判斷法則來實現步驟304中的幾條準則,從而根據平均傳輸時延、抖動來確定A1和A2的設定值。
比如先假設唇同步要求同步偏差的範圍為[-e1,e2],即音頻超前視頻的最大偏差為e1,音頻滯後視頻的最大偏差為e2。那麼唇同步最終的結果要使得兩個流的偏差在這個範圍內。另外設緩衝器緩存的最大深度為X1和X2,且在一般情況下有X1<X2,就是說A1(A1)和A2(A2)不能超過這個最大深度。
下面根據上面幾條原則,給出一種比較簡單的僅由前面計算得到的網絡傳輸平均時延L1,L2來確定緩存時長A1,A2的方法
如果滿足L2<L1<X1且有L1-L2>e2,則置A1=L1,A2=L1;如果滿足L2<L1<X1且有L1-L2≤e2,則置A1=L1,A2=L2;如果滿足L2<X1<L1,則置A1=X1,A2=X1;如果滿足X1<L2<L1,則置A1=X1,A2=min(L2,X2);如果滿足L1<L2<X1且有L2-L1>e1,則置A1=L2,A2=L2;如果滿足L1<L2<X1且有L2-L1≤e1,則置A1=L1,A2=L2;如果滿足L1<X1<L2<X2且有L2-L1>e1,則置A1=X1,A2=L2;如果滿足L1<X1<L2<X2且有L2-L1≤e1,則置A1=L1,A2=L2;如果滿足L1<X1<X2<L2,則置A1=max(L1,X1,X2-e1),A2=X2;如果滿足X1<L1<L2,則置A1=X1,A2=min(L2,X2,X1+e1)。
從上面的準則,很容易歸納出這樣的設置準則,即在物理可以實現的範圍內,設置緩存時長,使得同步偏差在限定的範圍內並且儘量的小。通過這種方法,能夠簡便、快速的計算出音頻流和視頻流能夠保證同步的動態延時A1和A2,根據同步時間參考點,能夠簡便、快速的實現兩個流的同步,根據不同的網絡狀況,動態的計算出最小延時,以保證同步質量。
綜上,本發明給出了分組網絡中多媒體實時傳輸的唇同步方法,則對當今網絡流媒體業務發展具有很大意義。流媒體技術的應用日益廣泛,本發明針對RTP/RTCP等多媒體實時傳輸協議的研究,分析流媒體伺服器的一般功能和結構,給出構建一個基本的流媒體伺服器的實現方案,實驗證明可以同時滿足多個實時和文件客戶的要求,並已經應用於一個遠程監控系統中。
雖然通過參照本發明的某些優選實施例,已經對本發明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和範圍。
權利要求
1.一種分組網絡中多媒體實時傳輸的唇同步方法,所述多媒體包含音頻流和視頻流,該音頻流、視頻流在接收端通過各自的緩衝器緩存後再播放,其特徵在於,包含以下步驟,A分別測量所述音頻流、視頻流的平均傳輸時延;B分別測量所述音頻流、視頻流的傳輸時延抖動;C根據所述音頻流、視頻流的所述平均傳輸時延、傳輸時延抖動,計算並設定所述音頻流、視頻流的緩衝器的緩存時長。
2.根據權利要求1所述的分組網絡中多媒體實時傳輸的唇同步方法,其特徵在於,還包含步驟,D所述音頻流或視頻流的緩衝器中的第一方周期性提供自身播放時間給第二方作為同步時間參考點,所述第二方根據該同步時間參考點調整播放。
3.根據權利要求2所述的分組網絡中多媒體實時傳輸的唇同步方法,其特徵在於,所述步驟A中,根據所述音頻流、視頻流數據包的發送時刻和接收時刻計算所述平均傳輸時延。
4.根據權利要求3所述的分組網絡中多媒體實時傳輸的唇同步方法,其特徵在於,所述步驟A中,通過迭代算法計算所述平均傳輸時延,包含以下子步驟,計算當前多媒體數據包的傳輸時延;迭代修正所述平均傳輸時延,使其更趨近所述當前多媒體數據包的傳輸時延。
5.根據權利要求3所述的分組網絡中多媒體實時傳輸的唇同步方法,其特徵在於,所述步驟C中,按以下方式計算所述音頻流、視頻流的緩衝器的緩存時長如果所述音頻流、視頻流的平均傳輸時延之差在允許的同步偏差範圍內,且均小於最大緩存時長,則直接按所述傳輸時延設置所述緩衝器的緩存時長;如果所述音頻流、視頻流的平均傳輸時延之差超出所述允許的同步偏差範圍內,則限定所述其中一者在同步偏差範圍內;如果所述音頻流、視頻流的平均傳輸時延超出所述最大緩存時長,則限定在最大緩存時長。
6.一種分組網絡中多媒體實時傳輸的唇同步裝置,所述多媒體包含音頻流和視頻流,各自設置有緩衝器,該音頻流、視頻流在接收端通過各自的緩衝器緩存後再播放,其特徵在於,還包含時延檢測模塊、同步模塊,其中所述緩衝器還用於計算所述音頻流、視頻流的傳輸時延抖動;所述時延檢測模塊用於計算所述音頻流、視頻流的平均傳輸時延;所述同步模塊用於根據所述音頻流、視頻流的所述平均傳輸時延、傳輸時延抖動,計算所述音頻流、視頻流的緩衝器的緩存時長,所述緩衝器按該緩存時長設定。
7.根據權利要求6所述的分組網絡中多媒體實時傳輸的唇同步裝置,其特徵在於,所述音頻流或視頻流的緩衝器中的第一方周期性提供自身播放時間給第二方作為同步時間參考點,所述第二方根據該同步時間參考點調整播放。
8.根據權利要求7所述的分組網絡中多媒體實時傳輸的唇同步裝置,其特徵在於,所述時延檢測模塊根據所述音頻流、視頻流數據包的發送時刻和接收時刻計算所述平均傳輸時延。
9.根據權利要求8所述的分組網絡中多媒體實時傳輸的唇同步裝置,其特徵在於,所述時延檢測模塊通過迭代算法計算所述平均傳輸時延。
全文摘要
本發明涉及分組網絡中的多媒體實時傳輸,公開了一種分組網絡中多媒體實時傳輸的唇同步方法及其裝置,使得能夠通過簡單而有效的調整來克服網絡抖動、變化,實現音頻流和視頻流的唇同步。本發明中,設置了可以根據網絡時延信息來靈活調解緩衝時長的緩衝器,通過分別對音頻、視頻流的緩衝時長調整來實現兩者的同步;設置了時延檢測模塊來檢測音頻、視頻數據在分組網絡中的傳輸時延,然後由同步模塊參考音頻、視頻流的平均傳輸時延和傳輸時延抖動進行音頻、視頻模塊的同步;用同步模塊計算音頻、視頻緩衝器的緩存時長並進行靈活設置,以抵抗網絡傳輸抖動;由音頻或視頻兩方中一方給另一方定期發送同步時間參考點,以協調雙方的同步。
文檔編號H04N7/52GK1949879SQ20051010029
公開日2007年4月18日 申請日期2005年10月11日 優先權日2005年10月11日
發明者馬輝 申請人:華為技術有限公司