<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于H.323高性能MCU的設計與實(shí)現

基于H.323高性能MCU的設計與實(shí)現

作者: 時(shí)間:2010-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏

2 幀緩沖映射的軟交換模式的
綜上所述,在此提出采用幀緩沖映射軟交換的 系統模式,所謂的軟交換模式就是仿照交換機的模式,不對音、視頻流進(jìn)行編解碼的處理,只對數據進(jìn)行轉發(fā)與控制。
也包括MC與MP。軟交換的MP,通過(guò)幀緩沖映射算法,查找終端對應的緩沖區,然后到把接收到的音、視頻流存放到該緩沖區里面,通過(guò)MC控制,把音、視頻數據流轉發(fā)到終端。
2.1 MC部分總體思想
MC部分的設計主要包括會(huì )議組管理、會(huì )議RTP流轉發(fā)管理。
(1)會(huì )議管理。該系統只默認一組會(huì )議,且默認的會(huì )議房間為“rooml01”。對一組會(huì )議來(lái)說(shuō),主要管理會(huì )議的成員信息,處理與會(huì )者的加入與退出等。為了這些功能,建立一個(gè)會(huì )議組類(lèi)、成員信息類(lèi)、成員狀態(tài)類(lèi)、成員身份類(lèi)和成員視頻緩沖類(lèi)。會(huì )議組類(lèi)主要記錄終端所選的會(huì )議ID;成員信息類(lèi)主要記錄終端的Token,IP地址等信息;成員類(lèi)狀態(tài)主要記錄成員是否在線(xiàn);成員身份類(lèi)可以確定是主席,還是聽(tīng)眾;成員視頻緩沖類(lèi)主要是存放在線(xiàn)各個(gè)終端的RTP包,一個(gè)緩沖類(lèi)里面可以存在多個(gè)緩沖區。MC首先通過(guò)設定TCP特定的端口,并在端口上建立一個(gè)TCP監聽(tīng)線(xiàn)程,終端通過(guò)這個(gè)端口與MCU進(jìn)行TCP連接,并由MC建立一個(gè)H.225呼叫線(xiàn)程,用于監聽(tīng)H.225呼叫信令,通過(guò)這個(gè)H.225通道,終端把自己的會(huì )議組ID,IP,Token等身份認證注冊到MC。
圖3為MC的會(huì )議管理系統框圖。


(2)會(huì )議RTP流轉發(fā)管理。MCU對登陸終端進(jìn)行注冊后,MC建立一個(gè)H.245控制信令線(xiàn)程,并與該終端進(jìn)行連接控制,通過(guò)H.245控制信令與Mc進(jìn)行呼叫、信令處理與能力協(xié)商、主從決定;然后建立音、視頻的接收邏輯通道,通過(guò)RTP接收類(lèi)開(kāi)始接收終端發(fā)送的RTP幀。把RTP幀保存到分配給該終端緩存區里。MC為已經(jīng)進(jìn)行了呼叫連接的終端分配了一一對應的視頻緩沖接收區.該緩沖區是一個(gè)分配在堆里面的數據結構,例如:在終端A的在線(xiàn)人員列表上,可以看到登陸注冊到MCU的人員名單;通過(guò)對終端的人員名單的選擇,例如選擇B,那么終端A可以要求MC轉發(fā)終端B的音、視頻,當MC收到終端A提交的要求轉發(fā)終端B的信息后,在MC的A終端緩沖池里面,為終端B新建一個(gè)緩沖區,通過(guò)MP對終端B的Token的幀緩沖映射查找到終端B的音視頻緩沖池,并在終端A與終端B之間建立一條邏輯通道,用于向終端A傳輸終端B的RTP包,當MC的終端A緩沖類(lèi)接收到終端B的RTP包后,把RTP包拷貝到原來(lái)的接收緩沖區里;然后同樣把終端B的惟一Token通過(guò)哈希函數映射到這個(gè)緩沖區上。
圖4為MC的RTP管理系統框圖。MC的軟交換模式如圖5所示。


2.2 MP部分總體設計思想
軟交換的MP,通過(guò)幀緩沖映射算法查找終端對應的緩沖區,然后把接收到的音、視頻流存放到該緩沖區里面,通過(guò)MC的控制,把音、視頻數據流轉發(fā)到終端。由于MCU需要處理大量的實(shí)時(shí)RTP包,效率成為了最主要的問(wèn)題。因此如何從緩沖區里面快速搜索相應的數據包是MP能否快速處理數據的關(guān)鍵??紤]到MP要處理不同的終端,不同的終端對應不同的緩沖區,所以采用哈希函數映射法,它將任意長(cháng)度的二進(jìn)制值映射為固定長(cháng)度的較小二進(jìn)制值,并把這個(gè)哈希表存放到相應的內存區,以便多次的查找,這樣通過(guò)這個(gè)較小的二進(jìn)制值就可以以非??斓乃俣日业奖容^大的數值。因此把視頻緩沖區的首地址存放到一個(gè)哈希表里面,并通過(guò)這個(gè)哈希表把終端的Token映射于這個(gè)緩沖區,這樣通過(guò)終端的惟一TOken便可以迅速找到其對應的緩沖區。
MP部分幀緩沖映射算法的具體設計步驟是:首先MCU把登陸的在線(xiàn)終端Token(終端的惟一標識)與會(huì )議ID默認為roomlol,通過(guò)哈希函數,映射到一個(gè)緩沖區,通過(guò)終端的Token和會(huì )議ID,就可以直接找到本終端的緩沖區,當MP收到終端的RTP包后,通過(guò)RTP包的邊界分析,把多個(gè)RTP合成一個(gè)數據幀,然后把數據幀放到相應的終端緩沖區里面。幀緩沖映射的查找如圖6所示。假設當終端A要求轉發(fā)終端B的音、視頻數據流時(shí),MP通過(guò)哈希函數找到相應終端B的緩沖區域,然后把該緩沖區的數據讀出到數據幀里面,最后通過(guò)RTP包進(jìn)行發(fā)送到終端A,而終端A在接收到MCU發(fā)送的終端B的音視頻數據壓縮包后,再對其進(jìn)行音視頻進(jìn)行解碼。

電能表相關(guān)文章:電能表原理


關(guān)鍵詞: 實(shí)現 設計 MCU 高性能 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>