專利名稱:基于單服務器實現大容量會議服務的系統及方法
技術領域:
本發明涉及通信技術領域,尤其涉及一種電話會議、語音會議大容量服務的混音、視頻優化技術。
背景技術:
目前,針對電話會議和視頻會議涉及到的音、視頻子系統,如何在提升音、視頻品質的同時提高并發容量,一直是學術界、技術界積極探索的課題。針對并發容量有采用服務器級聯技術實現大規模并發會議需求;也有采用硬件板卡去分擔混音給其CPU帶來的負載;還有通過P2P (peer-to-peer,即點對點)技術實現超大規模的會議。針對音、視頻品質而言,有采用先進的音、視頻編解碼實現會議的高品質,如采用GIPS (Global IP Sound)語音引擎,它是采用ILBC (Internet Low Bitrate Codec)的編、解碼,是一種適合互聯網低比特率傳輸的編、解碼技術。視頻方面大都采用H. 264或基于多層自適應傳輸編解碼技 術。雖然這些技術在一定程度上滿足了大容量會議的需求,同時會議品質也有了一定保證。但是以上技術或策略同樣也存在弊端,如服務器級聯或通過板卡技術會加劇系統的硬件投入,P2P模式滿足了大容量,而P2P天生延遲性的弊端導致在交互性很強的會議系統中體現的尤為明顯。因此,如何在低廉的單臺服務器下滿足大規模、高品質會議需求還是亟需解決的一個技術難題。
發明內容
本發明目的是提供一種基于單服務器實現大容量會議服務的系統及方法,其中采用音、視頻優化技術實現了單臺服務器下高品質、大容量的會議服務。一種基于單服務器大容量會議服務實現的系統,包括多個與會者客戶端和會議服務器,其特征在于所述會議服務器包括多個前置處理單元、一個混音處理模塊、一個后置處理單元;所述前置處理單元包括依次連接的緩沖模塊、解碼模塊和降噪模塊;所述每個緩沖模塊的輸入端與一個與會者客戶端相連,用于緩沖該與會者客戶端的音頻數據并輸出;所述解碼單元將相應與會者客戶端緩沖后的音頻數據進行編碼后轉換成線性數據;所述降噪模塊用于過濾相應解碼單元輸出的線性數據中因傳輸或干擾形成的噪音并輸出線性數據至混音處理模塊;所述混音處理模塊將多個降噪模塊送入的線性數據進行時域線性疊加并送入后置處理單元;所述后置處理單元包括一個語音代理模塊、多個編碼模塊以及與編碼模塊一一對應的多個線性分離模塊;所述語音代理模塊接收混音模塊輸出的數據或者直接接收單一發言與會者客戶端降噪模塊輸出的數據,再將上述數據進行緩沖,再根據所有靜音狀態的與會者客戶端支持的解碼能力進行分類編碼后依次送入相應的與會者客戶端;所述每個線性分離模塊用于從疊加的線性數據中分離并過濾掉相應與會者客戶端自身的音頻數據后將余下音頻數據送入所對應的編碼模塊;所述每個編碼模塊采用互不相同的編碼格式,用于將語音代理模塊輸出的或者線性分離模塊線性分離后的數據按照相應的編碼格式進行編碼后送入具有相應解碼能力的一個或多個與會者客戶端。上述編碼模塊包括ULAW/ALAW編碼模塊、ILBC編碼模塊和G. 729編碼模塊中的一種或多種。一種基于單服務器大容量會議服務實現的方法,其特殊之處在于包括音頻處理步驟,所述音頻處理步驟包括I音頻數據的前置處理I. I正在發言的與會者客戶端的音頻數據通過網絡進入會議服務器,單獨進行緩沖處理;
·無,則將緩沖后的數據直接進行降噪處理,轉至步驟4 ;若有,則轉至步驟I. 3 ;I. 3將緩沖處理后的數據進行解碼和降噪處理;2音頻數據的混音降噪處理后的多個不同與會者客戶端音頻數據通過線性疊加的方式進行混音;3數據的后置處理會議服務器根據其他與會者的發言或靜音狀態進行分類處理,其中針對所有靜音狀態的與會者客戶端而言,會議服務器會將混音后的數據發給語音代理模塊,轉至步驟4 ;針對所有發言狀態的與會者客戶端,會議服務器依次將混音后的數據通過分離和過濾技術,過濾掉該與會者客戶端自身的音頻輸入數據,然后對過濾后的音頻數據根據與會者客戶端自身解碼能力進行對應編碼,并將編碼后的數據發送給與會者客戶端;4語音代理處理語音代理模塊首先將接收到單一發言的與會者客戶端降噪后的數據或混音模塊輸出的數據進行緩沖,然后根據輸入數據類型判斷,若輸入的數據為單一發言的與會者客戶端降噪后的數據,則轉至步驟5 ;若為混音模塊輸出的數據則轉至步驟6 ;5依次判斷所有靜音狀態的與會者客戶端解碼能力是否支持發言狀態與會者客戶端的編碼格式,若支持,則直接進行音頻數據的轉發,若不支持,則進行分類編碼,并將編碼后的數據分別發送給具有相應解碼能力靜音狀態的與會者客戶端;6根據所有靜音狀態的與會者客戶端解碼能力分類編碼,并將編碼后的數據分別發送給具有相應解碼能力靜音狀態的與會者客戶端。還包括與音頻處理步驟同時進行的視頻處理步驟,所述視頻處理步驟包括I與會者客戶端向會議服務器發送訂閱消息,請求訂閱另一與會者客戶端的視頻;2會議服務器接收訂閱消息,判斷另一與會者客戶端是否已經被訂閱,若沒有訂閱,會議服務器向另一個與會者客戶端發送開啟視頻的命令,轉步驟3 ;若已訂閱,轉步驟4 ;3另一與會者客戶端接收開啟視頻的命令后,發送視頻幀到會議服務器;4會議服務器按照該視頻源與會者客戶端的訂閱清單逐一轉發另一與會者客戶端的視頻幀給與會者客戶端,實現會議服務;5會議服務期間與會者客戶端需要切換視頻或自身退出會議時,與會者客戶端向會議服務器發送取消訂閱消息;6會議服務器接收取消訂閱消息,判斷另一會者客戶端是否被其他與會者客戶端訂閱,若有其他與會者客戶端訂閱,則從該視頻源與會者客戶端的訂閱清單中刪除該取消訂閱的與會者客戶端的信息,轉步驟4;若沒有其他與會者客戶端訂閱,會議服務器向另一與會者客戶端發送停止視頻的命令;7另一與會者客戶端接收停止視頻的命令后,停止發送視頻幀到會議服務器。本發明的優點I、本發明是混音完后對音頻數據進行分類編碼,即根據所有與會者客戶端協商后的支持解碼格式進行分類,這樣就把針對每路編碼的工作變成針對幾大類的編碼工作量, 從而可有效地降低由于過多的編碼帶來的CPU運算。2、本發明針對特定會議場合做了特殊直接轉發的策略,如當前會議僅有一人發言,這時不進行混音,會議服務器針對單一發言者不用進行混音,也就不用將其數據線性化,所以可以省去解碼、混音步驟。如果其他與會者客戶端解碼能力是支持發言人編碼格式時,直接進行音頻數據的轉發,若是其他與會者客戶端解碼能力不支持發言人編碼格式時,通過編碼轉換后再將音頻數據分發給與會者客戶端。通過這種特殊策略可以顯著提高單臺服務器會議服務的與會者客戶端數量。3、本發明通過增加打開、關閉視頻的命令,在需要與會者客戶端上傳視頻時通過發送打開視頻的命令,此后與會者客戶端再將視頻傳至服務器。當沒人觀看某與會者客戶端的視頻時,通過發送結束視頻命令以停止某與會者客戶端的視頻上傳,通過這種“按需發送”的策略可以有效地降低對服務器及客戶端的帶寬消耗,也減輕了服務器處理視頻數據的壓力。4、本發明改變了多畫面的組合視頻模式,因為在網絡視頻會議中,視頻僅作為輔助功能,且相比音頻而言消耗了更多的帶寬,為此我們引入了用戶自主選擇視頻展現的單畫面機制,即用戶通過選擇想要觀看的視頻畫面,或者通過服務器制定視頻轉發策略,如統一分派發言人視頻、輪詢分派會議與會者客戶端視頻等。通過這種有效地策略我們可以極大地節約服務器端及客戶端的帶寬和降低合成多畫面的CPU負載,從而使得會議音質有好的提升,通過這種策略也為單服務器多并發容量會議服務提供了有利保障。
圖I是傳統服務器會議混音結構示意圖。圖2是服務器采用音頻優化技術的會議混音結構示意圖,其中相比較圖I傳統服務器混音結構而言,圖2結構中針對每路發言信道增加降噪處理。同時與會者客戶端若為靜音狀態,則無需進行緩沖、編碼、降噪和混音的過程,僅接收混音模塊輸出并經語音代理模塊處理后的數據。圖3是語音代理處理流程示意圖。圖4是會議處于單一發言者情況下服務器音頻處理流程示意圖。圖5是視頻優化轉發流程示意圖。
具體實施例方式(I)降噪處理模塊;噪音的產生是由客戶端采集設備引入或數據在網絡傳輸中受到干擾形成,是影響會議品質的罪魁禍首,雖然客戶端通過采用靜音檢測技術可以有效地降低噪音形成,但是傳輸中出現的噪音卻不可避免,尤其在混音疊加后,影響更大。為此我們通過在服務器端針對每個信道通過降噪處理模塊過濾掉噪音部分,使得純音質部分進入混音模塊從而提生大容量會議服務的品質。(2)語音代理模塊;會議中處于靜音狀態的與會者客戶端不發送語音流,它們需要聽到的聲音完全相同,就是當前所有發言者的聲音。根據混音原理可以得出結論,任意時刻處于靜音狀態的與會者客戶端所要接收的語音流完全相同,是當前所有發言的與會者客戶端的混音流。為了降低運算復雜度,可以對處于靜音狀態的與會者客戶端的語音媒體做統一處理和發送。因
此語音代理模塊是針對所有靜音狀態的與會者客戶端采用分類編碼,減小CPU的負載,從而達到提升并發容量的目的。( 3 )視頻優化轉發模塊;視頻優化轉發模塊主要目的是為了有效降低服務器帶寬的消耗。我們通過增加打開、關閉視頻的命令,以便達到在確實需要與會者客戶端上傳視頻時通過發送打開視頻的命令,從而將視頻傳至服務器。當沒人觀看某與會者客戶端的視頻時,可以通過發送結束視頻命令以停止某與會者客戶端的視頻上傳,通過這種“按需發送”的策略可以有效的降低對服務器帶寬的消耗。同時我們改變了多畫面的組合視頻模式,因為在網絡視頻會議中,視頻僅是作為輔助功能,且相比音頻而言消耗了更多的帶寬,為此我們引入了用戶自主選擇視頻展現的單畫面機制,即用戶通過選擇想要觀看的視頻畫面,或者通過服務器制定視頻轉發策略,如統一分派發言人視頻、輪詢分派會議與會者客戶端視頻等。通過這種有效的策略我們可以極大地節約服務器端及客戶端的帶寬和降低合成多畫面的CPU負載,從而使得會議音質有好的提升,通過這種策略也為單服務器多并發容量會議服務提供了有利保障。如附圖I所示描述了傳統會議混音的流程和步驟。步驟I :發言狀態的與會者客戶端進入會議室后,音頻數據進入緩沖區,設置緩沖區的目的是為了有效地防止網絡抖動、延遲造成的音質下降;步驟2 :從緩沖區出來的數據進入編碼轉化,因為只有變為線性數據才可以進行混首和置加;步驟3 :編碼轉換后的數據直接進入混音模塊進行混音處理;步驟4 :混音后的數據通過遍歷所有與會者客戶端并逐一進行線性分離;步驟5 :分離后的數據再根據與會者客戶端的解碼格式進行編碼;步驟6 :將編碼后的數據發送給相應與會者客戶端;如附圖2所示描述了本發明方法的會議中降噪和混音優化的流程和步驟;步驟I :正在發言的與會者客戶端的音頻數據通過網絡進入會議服務器中與其相對應的緩沖模塊;
步驟2 :會議服務器判斷當前會議是否還有其他正在發言的與會者客戶端的音頻數據輸入,若無(即當前會議就一個發言者),則將緩沖模塊出來的數據直接進行降噪處理后,轉至步驟10。若有,則轉至步驟3;步驟3 :從緩沖模塊出來的數據進行編碼轉換;步驟4 :編碼轉換后的數據進行降噪處理;步驟5 :降噪處理后的不同發言的與會者客戶端音頻數據分別送入混音處理模塊;步驟6 :混音處理模塊進行混音(即音頻數據進行線性疊加);步驟7 :判斷其他與會者客戶端是否為靜音狀態,若是,則轉至步驟8,否則轉至步驟9;步驟8 :混音后的數據進入語音代理模塊,轉至步驟10 ;·步驟9 :混音后的數據進入對應的線性分離模塊,通過分離技術過濾掉與會者客戶端自身音頻輸入的數據,然后再根據與會者客戶端的解碼能力對過濾后的音頻數據進行編碼,編碼后的數據發送給與會者客戶端;步驟10 :進入語音代理模塊的音頻數據首先被放入緩沖模塊,然后服務器需要根據所有靜音狀態與會者客戶端所支持的解碼能力進行分類,并按照分類對音頻數據進行相應的編碼。其中針對單一發言的會議情形,若靜音狀態與會者客戶端所支持的解碼能力支持單一發言客戶端的編碼格式,則數據直接進行轉發,無需再進行編碼操作;步驟11 :針對每個類別編碼后的音頻數據均逐一發送給所支持解碼能力的靜音狀態與會者客戶端。如附圖3所示描述了語音代理處理流程和步驟示意。步驟I :從混音模塊出來的數據先進入緩沖模塊;步驟2 :服務器根據所有靜音與會者客戶端的解碼格式進行分類,然后分別對緩沖模塊的數據進行對應的編碼;步驟3 :分別將編碼后的音頻數據按照同類型解碼格式轉發相同數據的原則逐一發送給對應與會者客戶端。如附圖4所示描述了特殊會議場合,音頻數據直接轉發策略的流程和步驟示意,下面具體描述。步驟I :發言狀態的與會者客戶端進入會議室后,音頻數據先進入緩沖區;步驟2 :從緩沖區出來的數據進行降噪處理;步驟3 :降噪處理后的音頻數據進入語音代理模塊完成數據的轉發。如附圖5所示描述了會議中視頻的優化處理流程和步驟示意,下面具體描述。步驟I :主持人進入會議室,默認打開自身視頻發送模塊,并在其客戶端顯示本地視頻;步驟2 :與會者客戶端進入會議時,不啟動自身視頻發送模塊,默認看到主持人的視頻;步驟3 :若與會者客戶端I選擇查看與會者客戶端2的視頻,此時服務器需要判斷與會者客戶端2是否已經被其他與會者客戶端訂閱其視頻,若訂閱了,則直接將與會者客戶端2的視頻持續不斷地轉發給與會者客戶端I。若沒有訂閱者,則轉到步驟3 ;
步驟3 :服務器向與會者客戶端2發送開啟視頻命令,且與會者客戶端2客戶端啟動自身視頻模塊并向服務器上傳視頻數據;步驟4 :服務器將收到的視頻數據按照視頻源的訂閱清單逐一轉發;步驟5 :與會者客戶端I切換視頻或者離開會議室時,發送取消訂閱原視頻的請求(異常掉線情況通過服務器超時檢測),此時服務器需要判斷原來視頻源與會者客戶端是否還有其他用戶訂閱其視頻,若沒有,則轉到步驟6。若有,則簡單從該視頻源與會者客戶端的訂閱清單中刪除取消與會者客戶端的信息,同時針對切換視頻的情況下,與會者客戶端I的處理轉至步驟3,只是此時請求訂閱的數據變成其他與會者客戶端而已;步驟6 :服務器向與會者客戶端2發送停止視頻發送命令;
步驟7:與會者客戶端2在收到服務器發送的停止命令后,停止向服務器發送視頻數據。
權利要求
1.一種基于單服務器大容量會議服務實現的系統,包括多個與會者客戶端和會議服務器,其特征在于 所述會議服務器包括多個前置處理單元、一個混音處理模塊、一個后置處理單元; 所述前置處理單元包括依次連接的緩沖模塊、解碼模塊和降噪模塊;所述每個緩沖模塊的輸入端與一個與會者客戶端相連,用于緩沖該與會者客戶端的音頻數據并輸出;所述解碼單元將相應與會者客戶端緩沖后的音頻數據進行編碼后轉換成線性數據;所述降噪模塊用于過濾相應解碼單元輸出的線性數據中因傳輸或干擾形成的噪音并輸出線性數據至混音處理模塊; 所述混音處理模塊將多個降噪模塊送入的線性數據進行時域線性疊加并送入后置處理單元; 所述后置處理單元包括一個語音代理模塊、多個編碼模塊以及與編碼模塊一一對應的多個線性分離模塊;所述語音代理模塊接收混音模塊輸出的數據或者直接接收單一發言與會者客戶端降噪模塊輸出的數據,再將上述數據進行緩沖,再根據所有靜音狀態的與會者客戶端支持的解碼能力進行分類編碼后依次送入相應的與會者客戶端;所述每個線性分離模塊用于從疊加的線性數據中分離并過濾掉相應與會者客戶端自身的音頻數據后將余下音頻數據送入所對應的編碼模塊;所述每個編碼模塊采用互不相同的編碼格式,用于將語音代理模塊輸出的或者線性分離模塊線性分離后的數據按照相應的編碼格式進行編碼后送入具有相應解碼能力的一個或多個與會者客戶端。
2.根據權利要求I所述的基于單服務器大容量會議服務實現的系統,其特征在于所述編碼模塊包括ULAW/ALAW編碼模塊、ILBC編碼模塊和G. 729編碼模塊中的一種或多種。
3.一種基于單服務器大容量會議服務實現的方法,其特征在于包括音頻處理步驟,所述音頻處理步驟包括 I音頻數據的前置處理 .1.1正在發言的與會者客戶端的音頻數據通過網絡進入會議服務器,單獨進行緩沖處理; .I. 2會議服務器判斷當前會議是否還有其他與會者客戶端的音頻數據輸入,若無,則將緩沖后的數據直接進行降噪處理,轉至步驟4 ;若有,則轉至步驟I. 3 ; I.3將緩沖處理后的數據進行解碼和降噪處理; .2音頻數據的混音 降噪處理后的多個不同與會者客戶端音頻數據通過線性疊加的方式進行混音; . 3數據的后置處理 會議服務器根據其他與會者的發言或靜音狀態進行分類處理,其中針對所有靜音狀態的與會者客戶端而言,會議服務器會將混音后的數據發給語音代理模塊,轉至步驟4 ;針對所有發言狀態的與會者客戶端,會議服務器依次將混音后的數據通過分離和過濾技術,過濾掉該與會者客戶端自身的音頻輸入數據,然后對過濾后的音頻數據根據與會者客戶端自身解碼能力進行對應編碼,并將編碼后的數據發送給與會者客戶端; 4語音代理處理 語音代理模塊首先將接收到單一發言的與會者客戶端降噪后的數據或混音模塊輸出的數據進行緩沖,然后根據輸入數據類型判斷,若輸入的數據為單一發言的與會者客戶端降噪后的數據,則轉至步驟5 ;若為混音模塊輸出的數據則轉至步驟6 ; 5依次判斷所有靜音狀態的與會者客戶端解碼能力是否支持發言狀態與會者客戶端的編碼格式,若支持,則直接進行音頻數據的轉發,若不支持,則進行分類編碼,并將編碼后的數據分別發送給具有相應解碼能力靜音狀態的與會者客戶端; 6根據所有靜音狀態的與會者客戶端解碼能力分類編碼,并將編碼后的數據分別發送給具有相應解碼能力靜音狀態的與會者客戶端。
4.根據權利要求3所述的基于單服務器大容量會議服務實現的方法,其特征在于還包括與音頻處理步驟同時進行的視頻處理步驟,所述視頻處理步驟包括 I與會者客戶端向會議服務器發送訂閱消息,請求訂閱另一與會者客戶端的視頻; 2會議服務器接收訂閱消息,判斷另一與會者客戶端是否已經被訂閱,若沒有訂閱,會議服務器向另一個與會者客戶端發送開啟視頻的命令,轉步驟3 ;若已訂閱,轉步驟4 ; 3另一與會者客戶端接收開啟視頻的命令后,發送視頻幀到會議服務器; 4會議服務器按照該視頻源與會者客戶端的訂閱清單逐一轉發另一與會者客戶端的視頻幀給與會者客戶端,實現會議服務; 5會議服務期間與會者客戶端需要切換視頻或自身退出會議時,與會者客戶端向會議服務器發送取消訂閱消息; 6會議服務器接收取消訂閱消息,判斷另一會者客戶端是否被其他與會者客戶端訂閱,若有其他與會者客戶端訂閱,則從該視頻源與會者客戶端的訂閱清單中刪除該取消訂閱的與會者客戶端的信息,轉步驟4;若沒有其他與會者客戶端訂閱,會議服務器向另一與會者客戶端發送停止視頻的命令; 7另一與會者客戶端接收停止視頻的命令后,停止發送視頻幀到會議服務器。
全文摘要
本發明涉及一種基于單服務器實現大容量會議服務的系統及方法,包括多個與會者客戶端和會議服務器,會議服務器包括多個前置處理單元、一個混音處理模塊、一個后置處理單元;前置處理單元包括依次連接的緩沖模塊、解碼模塊和降噪模塊;每個緩沖模塊的輸入端與一個與會者客戶端相連,用于緩沖該與會者客戶端的音頻數據并輸出;解碼單元將相應與會者客戶端緩沖后的音頻數據進行編碼后轉換成線性數據。本發明是混音完后對音頻數據進行分類編碼,即根據所有與會者客戶端協商后的支持解碼格式進行分類,這樣就把針對每路編碼的工作變成針對幾大類的編碼工作量,從而可有效地降低由于過多的編碼帶來的CPU運算。
文檔編號H04N7/15GK102883133SQ20121039632
公開日2013年1月16日 申請日期2012年10月17日 優先權日2012年10月17日
發明者耿小峰, 魏佳, 劉宏倉 申請人:西安融科通信技術有限公司