3G交互式視頻網關的設計與實現方案二
2 網關總體設計
網關的工作原理如圖3 所示。
圖3 網關工作原理
由圖中可以看出,3G 交互式視頻網關主要負責控制消息和媒體格式的轉換。在3G 電路域一側,3G 手機用戶通過撥打特服號碼撥通到3G 網關,此時通過Q.931 信令建立起了一個B 信道,這個信道是一個64Kbps 的數據信道。在B 信道建立后,3G-324M協議的初始化過程就在B 信道上進行,協議會在B 信道上建立三個邏輯信道,分別用來傳輸H.245 控制消息、音頻數據和視頻數據。在完成了3G-324M 協議的初始化后,網關在IP 域一側通過SIP 協議與增值應用服務器建立一個SIP 會話,獲得RTP 格式的實時媒體流。對于從增值應用服務器獲得的音頻、視頻數據和控制消息,網關轉換格式后,發送到3G-324M 協議棧,3G-324M 協議棧根據H.223 協議將音頻、視頻數據和控制消息復用到B 信道上發送到3G 手機。
對于從B 信道上獲得的數據,網關解復用成相應的音頻、視頻數據和控制消息后封裝成對應的RTP 格式的數據報和SIP 消息,發送到增值應用服務器。網關的交互式功能主要通過控制消息的轉換實現,而控制消息主要來自手機端的DTMF 輸入。
在設計的時候,由于實驗室已有的2G 音頻網關技術平臺已經實現了SIP 協議棧并配有E1 板卡, 所以只要在其基礎上加入3G-324M 協議棧,并實現3G-324M 協議與SIP 協議之間媒體格式和控制消息的轉換即可以完成3G 交互式視頻網關的基本功能。
根據3G-324M 協議標準,3G-324M 協議棧的結構設計如圖4 所示:
圖4 3G-324M 協議棧結構
從圖中可以看出,所設計的3G-324M 協議棧一共有3 個邏輯信道,分別是H.245 控制消息信道、音頻信道和視頻信道。由應用自上而下傳遞的控制消息翻譯成對應的H.245消息,經過CCSR(Control ChannelSegmentation and Reassembly Layer,簡稱CCSR)分段后交NSRP(Numbered Simple RetransmissionProtocol,簡稱NSRP)加上序列號,加入到控制消息發送隊列中,由應用自上而下傳遞的音頻和視頻數據經過H.223 的適配層進行適配后,也加入到相應的媒體數據發送隊列中,H.223 的復用層分別從各隊列中取得數據復用后通過3G 網絡發送到3G 手機上。對于從3G網絡得到的數據,協議棧自下而上通過H.223 進行解復用到各邏輯信道的接收隊列中,應用從各邏輯信道提取控制消息或媒體數據進行處理。
在設計3G-324M 協議棧音視頻發送機制的時候,考慮到媒體流中視頻的數據量較大,而電路域提供給視頻的帶寬只有40kbps 左右,所以如果不做適當處理,肯定會出現音頻超前視頻的情形。因此為音頻數據流設計一個緩沖區,只有當音頻緩沖區中音頻包的個數大于一定域值的時候,才會發送音頻數據,這樣就最大限度的避免了可能出現的音視頻不同步的問題。
在設計協議間媒體格式轉換機制,特別是在將RTP 格式的H.263 視頻數據轉換成3G-324M 協議棧能處理的視頻幀的時候,由于RTP 封裝的H.263視頻數據在圖像開始碼處字節對齊,具有填充位,如果不去掉填充位直接發送到3G 手機終端,則會出現馬賽克,所以設計了一個H.263 視頻幀的緩沖區,將連續兩個圖像開始碼之間的視頻幀緩沖起來,以去掉幀間的填充位。具體的處理流程是讓程序掃描H.263格式的視頻流緩沖區,每遇到圖像開始碼便將其之后的視頻幀緩沖起來,緩沖區的大小動態分配,直到遇到下一個圖像開始碼,然后將兩個圖像開始碼之間的視頻數據去掉填充位后發送到3G-324M 協議棧。
評論