<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于H.323高性能MCU的設(shè)計(jì)與實(shí)現(xiàn)

          基于H.323高性能MCU的設(shè)計(jì)與實(shí)現(xiàn)

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

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


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


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

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


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();