專利名稱:多路視頻通訊系統(tǒng)及處理方法
多路視頻通訊系統(tǒng)及處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻通訊系統(tǒng)和方法,尤其是涉及一種多路視頻通訊系統(tǒng) 及處理方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)和無線通信的發(fā)展和普及,群體視頻聊天,視頻會議,網(wǎng) 絡(luò)視頻游戲等多路視頻通信形式使得人與人之間的溝通交流更加方便快捷,娛 樂方式更加豐富直觀,因而越來越受到人們的歡迎。
在多路;f見頻通信過程中,由于多路網(wǎng)絡(luò)狀況存在異構(gòu)性和時變性,且終端
設(shè)備(如手機(jī),PC機(jī))的處理能力也有所差異,這就要求視頻編碼生成的碼流
能夠適應(yīng)多種不同需求,同時要根據(jù)不同網(wǎng)絡(luò)的波動狀況進(jìn)行自適應(yīng)調(diào)節(jié)。另 外,參與視頻通信人數(shù)的增加會導(dǎo)致網(wǎng)絡(luò)傳輸數(shù)據(jù)量的增加,也對終端設(shè)備處 理能力造成巨大的壓力,因此,需要合理分配多人視頻通信的帶寬占用,在有 限的帶寬資源條件下達(dá)到最優(yōu)的視頻通話質(zhì)量。
在視頻通訊技術(shù)中,參與視頻通訊的每個客戶端都有一個視頻編解碼器, 按照平均或者多數(shù)用戶的網(wǎng)絡(luò)狀況或終端處理能力對視頻編解碼設(shè)定編碼參 數(shù),對原始視頻數(shù)據(jù)進(jìn)行編碼,生成具有特定解碼視頻質(zhì)量的單一碼流,對參 與通話的所有用戶廣播該單一碼流,對于同一個發(fā)送的視頻源,所有接收的客
戶端具有相同的^L頻質(zhì)量。這種技術(shù)的缺點顯而易見,即無法適應(yīng)終端處理能 力和網(wǎng)絡(luò)狀況的多樣性,對于網(wǎng)絡(luò)狀況較好(如具有較大的網(wǎng)絡(luò)帶寬)或者終 端設(shè)備處理能力較強(qiáng)(如能夠處理大部分用戶都不能處理的高分辨率的圖像) 的用戶,會帶來資源(網(wǎng)絡(luò)帶寬或設(shè)備處理能力)的浪費卻沒有達(dá)到最優(yōu)的視 頻通話質(zhì)量,而對于網(wǎng)絡(luò)狀況較差(如帶寬較小、或處于上網(wǎng)高峰期)或者終 端處理能力較低(如設(shè)備僅能處理分辨率較低的圖像)的用戶,會造成網(wǎng)絡(luò)擁 塞(導(dǎo)致長時間的視頻緩沖)或者終端設(shè)備無法正常處理(如不能正常顯示視 頻)等狀況。針對上述問題,可以在每個客戶端為與其通話的每一條連接通路啟動一個 獨立的視頻編解碼器,根據(jù)各連接通路的網(wǎng)絡(luò)狀況和終端設(shè)備處理能力的差異 獨立調(diào)節(jié)各視頻編解碼器的編碼參數(shù),生成具有不同解碼視頻質(zhì)量且能適應(yīng)不 同終端的碼流進(jìn)行傳輸。但同時由于視頻編碼具有較高的計算復(fù)雜性,并且每 連接一個新的客戶端都要啟動一個獨立的視頻編解碼器,因而這種技術(shù)的缺點 是,在視頻通訊的連接數(shù)量逐漸增多時,勢必會占有終端機(jī)大量的處理器和消 耗過多的內(nèi)存資源,以致在某些手持設(shè)備上可能無法實現(xiàn)多路通訊。
發(fā)明內(nèi)容
有鑒于此,有必要提供一種適應(yīng)不同網(wǎng)絡(luò)狀況及終端設(shè)備的多路視頻通訊 系統(tǒng)。
此外,還才是供一種適應(yīng)不同網(wǎng)絡(luò)狀況及終端設(shè)備多鴻4見頻通訊處理方法。
一種多路-現(xiàn)頻通訊系統(tǒng),包括
可伸縮視頻編解碼器,用于對視頻源進(jìn)行編碼生成具有可伸縮性的原始視 頻編碼碼流,及對接收的遠(yuǎn)程客戶端的最終碎見頻編碼碼流進(jìn)4于解碼生成視頻;
篩選模塊,所述篩選模塊與所述可伸縮視頻編解碼器連接獲取由所述可伸
縮視頻編解碼器生成的原始^L頻編碼碼流并根據(jù)篩選參數(shù)進(jìn)行篩選,得到最終 -見頻編碼碼流;
網(wǎng)絡(luò)模塊,與篩選模塊和可伸縮視頻編解碼器相連,用于連接遠(yuǎn)程客戶端、 獲取遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況傳遞給篩選模塊,并傳輸最終視頻編碼 碼流;
篩選控制模塊,所述篩選控制模塊與篩選模塊及可伸縮視頻編解碼器連接, 根據(jù)遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況設(shè)定篩選模塊的篩選參數(shù)。
優(yōu)選地,所述篩選控制模塊包括存儲單元和計算單元,所述存儲單元保存 與篩選有關(guān)的參數(shù)信息,所述計算單元根據(jù)遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況 結(jié)合參數(shù)信息計算得到所述篩選模塊的篩選參數(shù)。
優(yōu)選地,所述篩選模塊包括兩個或兩個以上碼流截取器,所述網(wǎng)絡(luò)模塊包 括兩個或兩個以上網(wǎng)絡(luò)連接單元,所述碼流截取器與網(wǎng)絡(luò)連接單元--對應(yīng)連接,所述網(wǎng)絡(luò)連接單元與遠(yuǎn)程客戶端對應(yīng)連接;所述碼流截取器對原始視頻編 碼碼流按照篩選控制才莫塊的篩選參數(shù)進(jìn)行截取,得到最終^見頻編碼碼流;所述 網(wǎng)絡(luò)連接單元荻取遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況并傳輸給碼流截取器,接 收遠(yuǎn)程客戶端的最終視頻編碼碼流傳輸給可伸縮視頻編解碼器或?qū)⒈镜乜蛻舳?的最終視頻編碼碼流傳輸給遠(yuǎn)程客戶端。
優(yōu)選地,還包括客戶端信息表,所述客戶端信息表包含本地客戶端及其所 有連接的遠(yuǎn)程客戶端的通信信息,所述通信信息包括IP地址或網(wǎng)絡(luò)物理地址、 最大分辨率、最大幀率及最大上行帶寬中的一種或多種。
一種多路-見頻通訊處理方法,包括以下步驟
將視頻源編碼得到具有可伸縮性的原始視頻編碼碼流;
獲取遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況;
沖艮據(jù)所述設(shè)備能力和網(wǎng)絡(luò)狀況設(shè)置篩選參數(shù);
根據(jù)所述篩選參數(shù)對所述原始視頻編碼碼流進(jìn)行篩選得到最終視頻編碼碼 流并發(fā)送給遠(yuǎn)程客戶端。
其中,所述的篩選參數(shù)是指根據(jù)視頻編碼碼流中碼流包的優(yōu)先級進(jìn)行篩選 時的優(yōu)先級閾值,所述優(yōu)先級閾值根據(jù)遠(yuǎn)程客戶端終端設(shè)備能力和網(wǎng)絡(luò)狀況結(jié) 合存儲單元中的參數(shù)信息計算獲得,所述參數(shù)信息是指最近一個圖像組內(nèi)所有 碼流包信息的循環(huán)隊列。
其中,所述碼流包信息包括
優(yōu)先級,即表示碼流包優(yōu)先傳輸?shù)牡燃墸?br>
時域等級,每一幀圖像屬于一個時域等級,高時域等級圖像可以將低時域 等級的圖像作為參考幀進(jìn)行運(yùn)動補(bǔ)償預(yù)測;碼流中包含圖像的時域等級越高, 視頻的幀率就越高;
空域等級, 一個空間-現(xiàn)頻分辨率對應(yīng) 一個空域等級;
碼率增量,即碼流包的長度相對于圖像組內(nèi)圖像數(shù)目的比例與最大時域等 級對應(yīng)的幀率的乘積,代表傳輸該碼流包會在多大程度上增加網(wǎng)絡(luò)資源的消耗; 在一個圖像組內(nèi),每編碼一幀圖像,都將碼流包信息加入循環(huán)隊列。 優(yōu)選地,還包括檢測即將連接的客戶端是否是第一個連接的客戶端的步驟,如果是則創(chuàng)建可伸縮-見頻編解碼器,如果不是則可直接進(jìn)行^L頻源的編碼。 優(yōu)選地,還包括檢測本地客戶端是否關(guān)閉的步驟,如果本地客戶端關(guān)閉則
刪除所有網(wǎng)絡(luò)模塊和篩選模塊以及可伸縮視頻編解碼器;如果本地客戶端沒有
關(guān)閉,則在一段時間之后檢測網(wǎng)絡(luò)狀況。
優(yōu)選地,還包括檢測遠(yuǎn)程客戶端是否關(guān)閉的步驟,如果檢測到有遠(yuǎn)程客戶
端關(guān)閉,則刪除與遠(yuǎn)程客戶端對應(yīng)的碼流截取器和網(wǎng)絡(luò)連接單元,并檢測是否
還有其他連接,如果沒有其他連接則刪除可伸縮視頻編解碼器。 其中,所述設(shè)置篩選參數(shù)的處理步驟包括
將循環(huán)隊列中的碼流包信息按照優(yōu)先級由高到低的順序進(jìn)行排序,并從高 到低賦予由小到大的索引號;
按照索引號從小到大的順序,對每一個碼流包信息遍歷檢查每一個碼流截 取器,根據(jù)所有連接的終端設(shè)備處理能力和網(wǎng)絡(luò)帶寬判斷是否滿足優(yōu)先級閾值 的更新條件,若滿足,則更新優(yōu)先級閾值;若不滿足,則檢查是否所有的碼流 包遍歷完成。
若所有碼流包的遍歷完成,結(jié)束本次處理;否則進(jìn)行下一個碼流包的處理。 其中,所述更新條件是指
當(dāng)前碼流包的空域等級不大于所檢查的客戶端終端設(shè)備最大顯示分辨率對 應(yīng)的空域等級;
當(dāng)前碼流包的時域等級不大于所檢查的客戶端終端設(shè)備最大幀率對應(yīng)的空 域等級;
當(dāng)前輸出到所檢查的客戶端的碼率,即當(dāng)前碼率與碼率增量的和不大于所 檢查的客戶端終端設(shè)備最大可用下行帶寬;
當(dāng)前輸出的總碼率,即當(dāng)前總碼率與碼率增量的和不大于本地客戶端的終 端設(shè)備最大可用上行帶寬;
當(dāng)上述條件同時滿足時,將優(yōu)先級闊值設(shè)定為當(dāng)前檢查的碼流包的優(yōu)先級 的值,并將當(dāng)前碼率與碼率增量的和更新為新的當(dāng)前碼率,當(dāng)前總碼率與碼率 增量的和更新為新的當(dāng)前總碼率。
采用可伸縮視頻編解碼器的多路視頻通信系統(tǒng),利用碼流的可伸縮性適應(yīng)不同終端設(shè)備處理能力和網(wǎng)絡(luò)帶寬狀況,相對廣播單一傳統(tǒng)碼流的方式,具有
更高的靈活性;同時,可伸縮視頻編碼的復(fù)雜度接近傳統(tǒng)視頻編碼,相對于采 用多個傳統(tǒng)視頻編碼器的多路視頻通信系統(tǒng),又使得復(fù)雜度大大降低。
利用當(dāng)前編碼幀之前距離在一個圖像組大小內(nèi)所有碼流包的優(yōu)先級關(guān)系, 根據(jù)終端處理能力和定時的網(wǎng)絡(luò)帶寬狀況反饋,計算各碼流截取器的優(yōu)先級閾 值,在保證截取碼流實時性的同時,能使截取碼流的碼率準(zhǔn)確地適應(yīng)帶寬要求。 另外,綜合考慮多路碼流的率失真特性,合理分配多路視頻之間的帶寬占用, 使多路視頻的整體質(zhì)量逼近率失真最優(yōu),從而提高多人視頻通信的整體視頻通 話質(zhì)量。
圖1為可伸縮一見頻編碼標(biāo)準(zhǔn)(JVTSVC)碼流結(jié)構(gòu);
圖2為實施例一的系統(tǒng)模塊圖3為多路視頻通訊處理流程圖4為設(shè)定優(yōu)先級閾值的處理流程圖5為實施例二的系統(tǒng)模塊圖。
下面結(jié)合附圖進(jìn)行進(jìn)一步的說明。
具體實施方式
可伸縮視頻編碼是針對網(wǎng)絡(luò)異構(gòu)和終端設(shè)備多樣的特點而發(fā)展起來的一種 視頻編碼方案。它^f吏碼流在空域、時域、質(zhì)量三個方面具有可伸縮性。利用碼 流的可伸縮性,在多路視頻通訊中根據(jù)連接的遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀 況傳輸最適合遠(yuǎn)程客戶端的碼流,從而合理利用網(wǎng)絡(luò)帶寬資源和終端設(shè)備處理 能力,提高多人視頻通訊的整體視頻通話質(zhì)量。
可同時提供空域、時域和質(zhì)量可伸縮性。分述如下
空域可伸縮性,由于不同的顯示設(shè)備能夠顯示圖像的最大分辨率不同,因 而為視頻中每幀圖像都提供多個空間分辨率來實現(xiàn)空域的可伸縮性,每個空間分辨率對應(yīng)一個空域等級,用不同的空域等級代表不同的分辨率,主要應(yīng)用于 接收端設(shè)備顯示屏幕分辨率不同的情況。
時域可伸縮性,是通過等級B圖像編碼結(jié)構(gòu)實現(xiàn)的,每一巾貞圖像屬于一個 時域等級,高時域等級的圖像通過低時域等級的圖像作為參考幀進(jìn)行運(yùn)動補(bǔ)償 預(yù)測。
等級B圖像編碼是一個完全符合R264/AVC標(biāo)準(zhǔn)的編碼方法,只是在這個 方法中使用了金字塔式的編碼順序。在這個方法中,涉及關(guān)鍵幀的概念,即若 某一幀圖像前面所有^^編碼的圖像在顯示順序上都先于這幀圖像,那么這幀圖 像就叫關(guān)鍵幀。使用等級B圖像編碼時, 一見頻序列的第一幀編碼為I幀,然后 編碼關(guān)鍵幀。關(guān)鍵幀既可以編碼為I幀,也可以利用前一個關(guān)鍵幀作為參考圖像 編碼為P幀。圖像組中的其它圖像使用B幀編碼,但是編碼的順序是按照金字 塔似的分級順序進(jìn)行的。以一個8幀的圖像組為例,首先編碼第8幀,然后編碼 第4幀,接下來是第2和第6幀,最后編碼第1, 3, 5, 7幀。通過這樣的金字塔 似的編碼順序就實現(xiàn)了時間可分級。所有的關(guān)鍵幀組成了最粗糙時間分辨率的 視頻序列,隨著在編碼順序上的圖像的遞增,時間分辨率也跟著增加,最后達(dá)到 完全時間分辨率的視頻序列。
質(zhì)量可伸縮性,將原始視頻編碼生成若干碼流層,碼流層分為一個基本質(zhì) 量層和若干增強(qiáng)質(zhì)量層。在每一個空間分辨率下,碼流層可以是基本質(zhì)量層, 也可以是若干增強(qiáng)質(zhì)量層中的一個?;举|(zhì)量層包含視頻信號是基本的也是最 重要的信息,接收端接收到包含基本質(zhì)量層的信息后經(jīng)過處理就可得到基本質(zhì) 量(即能夠滿足最基本的識別要求)的圖像;增強(qiáng)質(zhì)量層包含視頻信號的細(xì)節(jié) 信息,接收端接收到包含增強(qiáng)質(zhì)量層和基本質(zhì)量層的信息后一起處理,得到更 高質(zhì)量的圖像。采用逐 步減小的量化步長進(jìn)行編碼得到各增強(qiáng)質(zhì)量層,使得從 基本質(zhì)量層到增強(qiáng)質(zhì)量層解碼圖像質(zhì)量也相應(yīng)地逐步提高。
JVT SVC把一個空間分辨率下,每一幀的一個質(zhì)量層的碼流數(shù)據(jù)作為一個 碼流包。圖1給出了一種具有2個空域等級(空域等級0和1分別對應(yīng)QCIF (176像素*144像素)和CIF ( 352像素*288像素)分辨率),4個時域等級(時 域等級0-3分別對應(yīng)幀率為3.75fps, 7.5fps, 15fps, 30fys ),每個空域等級上的包含3個質(zhì)量層的碼流結(jié)構(gòu)示例。 實施例一
在多方^f見頻通話中,網(wǎng)絡(luò)上三方或三方以上同時進(jìn)4亍即時一見頻通信。各方 通過多路視頻通訊系統(tǒng)客戶端互聯(lián)。
如圖2所示,為多路視頻通訊系統(tǒng)模塊圖。圖2中,本地客戶端500與其 他N ()個遠(yuǎn)程客戶端進(jìn)行;f見頻通訊。
多路視頻通訊系統(tǒng)包括可伸縮視頻編解碼器100、包括N個碼流截取器的 篩選模塊200、包括與N個與碼流截取器對應(yīng)連接的N個網(wǎng)絡(luò)連接單元的網(wǎng)絡(luò) 模塊300,以及作為篩選控制模塊并與N個碼流截取器連接的多路碼流截取控 制模塊400。
在進(jìn)行^L頻通話時,為處理與其他遠(yuǎn)程客戶端的通訊,為每個遠(yuǎn)程客戶端 都建立一個碼流截iF又器和一個網(wǎng)絡(luò)連接單元。
如圖2所示,根據(jù)本地客戶端數(shù)據(jù)的流向,可伸縮^L頻編解碼器100與N 個碼流截取器,即第一碼流截取器202,第二碼流截取器204,......,第N碼流
截取器206相連;第一碼流截取器202與第一網(wǎng)絡(luò)連接單元302相連,第二碼 流截取器204與第二網(wǎng)絡(luò)連接單元304相連,......,第N碼流截取器206與第N
網(wǎng)絡(luò)連接單元306相連;第一網(wǎng)絡(luò)連接單元302與第一客戶端502連接,第二 網(wǎng)絡(luò)連接單元304與第二客戶端504連接,......,第N網(wǎng)絡(luò)連接單元306與第N
客戶端506連4姿。
網(wǎng)絡(luò)才莫塊300的N個網(wǎng)絡(luò)連4孌單元均與可伸縮岸見頻編解碼器100相連。 多路碼流截取控制模塊400包括存儲單元402和計算單元404。
以圖2所示的本地客戶端500與第一遠(yuǎn)程客戶端502從建立通信到連接斷 開為例,利用上述結(jié)構(gòu)的多路視頻通訊系統(tǒng)進(jìn)行多路^f見頻通話的處理步驟如圖3 所示,包括
步驟SlOl,本地客戶端500檢查新建立連接的第一遠(yuǎn)程客戶端502是否是 第一個連接的客戶端。本地客戶端500的多路視頻通訊系統(tǒng)中只需要一個可伸 縮視頻編解碼器100,如果檢測到第一遠(yuǎn)程客戶端502是第一個連接的遠(yuǎn)程客戶端,則需要建立一個可伸縮視頻編解碼器100,在后面連接新的客戶端時就沒有
必要再建立,因此檢測每個連接的客戶端是否是第一個連接的客戶端。
步驟S102,將^L頻源編碼得到具有可伸縮性的原始^L頻編碼碼流??缮炜s
伸縮性的原始視頻編碼碼流,即上述具有不同時域等級、空域等級和質(zhì)量等級 的碼流包的碼流。每個碼流包中都含有表示碼流包這些信息的標(biāo)識部分,這些 標(biāo)識部分的信息,即碼流包信息被傳入多路碼流截取控制器400的存儲單元402 中保存。
步驟S103,獲取網(wǎng)絡(luò)狀況和終端設(shè)備能力。由第一網(wǎng)絡(luò)連接單元302獲取 網(wǎng)絡(luò)狀況和終端設(shè)備能力。網(wǎng)絡(luò)狀況包括本地客戶端500的最大可用上行帶寬 及第一遠(yuǎn)程客戶端502的最大可用下行帶寬;終端設(shè)備能力包括第一遠(yuǎn)程客戶 端502的最大顯示分辨率和幀率。所有這些信息都被傳入第一碼流截取器202。
步驟S104,根據(jù)終端設(shè)備能力和網(wǎng)絡(luò)狀況設(shè)置篩選參數(shù)。即根據(jù)所連接的 客戶端502的終端設(shè)備能力和網(wǎng)絡(luò)狀況調(diào)整第一碼流截取器202的篩選參數(shù)。 不滿足篩選參數(shù)的條件的的碼流包將不會通過第一碼流截取器202。
步驟S105,根據(jù)篩選參數(shù)對原始視頻編碼碼流進(jìn)行萍選得到最終視頻編碼 碼流并發(fā)送給遠(yuǎn)程客戶端。在確定篩選參數(shù)后,第一碼流截取器202對原始碎見 頻編碼碼流進(jìn)行截取,得到最終4見頻編碼碼流并通過第一網(wǎng)絡(luò)連4妄單元302發(fā) 送給第一遠(yuǎn)程客戶端502。
步驟S106,;險測遠(yuǎn)程客戶端是否關(guān)閉。當(dāng)?shù)谝贿h(yuǎn)程客戶端502關(guān)閉后,為 其分配的第一碼流截取器202和第一網(wǎng)絡(luò)連接單元302就不再需要,刪除第一 碼流截取器202和第一網(wǎng)絡(luò)連接單元302以釋放其占有的資源。若檢測到第一 客戶端502關(guān)閉,則轉(zhuǎn)入步驟S109;若第一遠(yuǎn)程客戶端502沒有關(guān)閉則轉(zhuǎn)入步 驟S107。
步驟S107,檢測本地客戶端500是否關(guān)閉。當(dāng)本地不再有-見頻通訊要求時, 本地客戶端500就要關(guān)閉,所有有關(guān)模塊占用的資源也需要釋放。若本地客戶 端500關(guān)閉,則轉(zhuǎn)入步驟S110;若本地客戶端500仍在繼續(xù)工作,則轉(zhuǎn)入步驟 S108。步驟S108, —段時間之后,檢測網(wǎng)絡(luò)狀況。由于網(wǎng)絡(luò)的狀況不是保持恒定
的狀態(tài)不變,當(dāng)網(wǎng)絡(luò)狀況改變的時候,篩選參數(shù)就要作相應(yīng)的改變,因此有必
要每隔一段時間對第一遠(yuǎn)程客戶端502的網(wǎng)絡(luò)狀況做-險測以便隨時了解網(wǎng)絡(luò)狀 況。
步驟S109,刪除相應(yīng)的網(wǎng)絡(luò)連接單元和碼流截取器。第一遠(yuǎn)程客戶端502 關(guān)閉視頻通話時,刪除為其分配的第一網(wǎng)絡(luò)連接單元302和第一碼流截取器202 就不再需要。
步驟SllO,刪除網(wǎng)絡(luò)模塊和篩選模塊。當(dāng)本地客戶端500關(guān)閉后,即與所 有的遠(yuǎn)程客戶端都斷開視頻通話連接,所以與視頻通話有關(guān)的篩選模塊200和 網(wǎng)絡(luò)模塊300也不再需要,刪除它們以釋放其所占用的系統(tǒng)資源,轉(zhuǎn)入步驟Sl 12。
步驟Slll,檢測是否還有客戶端與本地客戶端500連4婁。4全測到第一遠(yuǎn)程 客戶端502關(guān)閉后,檢查關(guān)閉的是不是最后一個客戶端。如果所有連接的遠(yuǎn)程 客戶端都關(guān)閉了,則轉(zhuǎn)入步驟S112;如果不是,則結(jié)束本地客戶端500與第一 遠(yuǎn)程客戶端502的處理流^f呈。
步驟S112,刪除可伸縮碎見頻編解碼器100,結(jié)束-見頻通訊處理。
能夠得到自適應(yīng)的碼流的關(guān)鍵在于實時的碼流截取,即實時的設(shè)定篩選參 數(shù)。針對該問題提出了一種根據(jù)當(dāng)前編碼幀距離在一個圖像組大小內(nèi)所有碼流 包的優(yōu)先級關(guān)系計算各碼流截取器的優(yōu)先級閾值的方法。應(yīng)用該方法得到優(yōu)先 級閾值后,優(yōu)先級高于優(yōu)先級閾值的碼流包可以通過碼流截取器進(jìn)行傳輸,而 優(yōu)先級低于優(yōu)先級閾值的碼流包則不能通過碼流截取器。其中圖像組由關(guān)鍵幀 和該關(guān)4定幀之前的關(guān)4建幀之間的所有幀構(gòu)成。
多路碼流截取控制模塊400的存儲單元402中保存了最近一個圖像組內(nèi)所 有碼流包信息的循環(huán)隊列,其中每一個碼流包信息包括碼流包A:的優(yōu)先級A、 時域等級&、空域等級^及碼率增量/ ;t。 i f^xi^vJGop&'ze,代表傳輸該碼流 包消耗的網(wǎng)絡(luò)資源的增加量,其中4為碼流包A的長度,/^5 ^為最大時域等級 對應(yīng)的幀率,Go/ &ze為 一個圖像組包含的圖像數(shù)目。
令本地客戶端500的可伸縮視頻編碼器100具有5"個空域等級,r個時域等 級。s。 乂分別表示與本地客戶端連接的第/ ^各客戶端終端i殳備最大顯示分辨率對應(yīng)的空域等級,最大幀率對應(yīng)的時域等級;^分別表示本地客戶端的最 大可用上行帶寬,以及與本地客戶端連接時客戶端/的最大可用下行帶寬。在計 算優(yōu)先級閾值的過程中,還需要在多路碼流截取控制模塊400中保存當(dāng)前截取 到的每一路碼流的碼率,即當(dāng)前碼率凡,當(dāng)前截取到的各路碼流碼率總和,即 總碼率i , OT,以及各碼流截取器z'的當(dāng)前優(yōu)先級閾值7T7ms/7oW。
在步驟S104中,篩選參數(shù)是指根據(jù)視頻編碼碼流中碼流包的優(yōu)先級進(jìn)行篩 選時的優(yōu)先級閾值。計算單元404設(shè)定優(yōu)先級閾值更詳細(xì)的步驟如圖3所示, 敘述如下
步驟S402,將保存在存儲單元402中的循環(huán)隊列中的碼流包信息按照優(yōu)先 級由高到低的順序進(jìn)行排序,并賦以索引號/mfe^O, 1, 2,…n(n為循環(huán)隊列 中碼流包的數(shù)目)。
步驟S404,按照碼流包優(yōu)先級由高到低的順序,即按照索引號由小到大的 順序,對每一個碼流包遍歷所有的碼流截取器。
步驟S406,檢查是否滿足優(yōu)先級閾值的更新條件。所述更新條件是
s(7"Axj, /f7"血x人/ rlwfe^分別表示索引號為/mfec的碼流包的空域等級, 幀率及碼率增量。上述更新條件所表示的意思是,傳輸當(dāng)前碼流包所在質(zhì)量層 形成的圖像沒有超過連接的客戶端/的設(shè)備能力,上行傳輸碼率沒有超過本地客 戶端的上行帶寬,下行傳輸碼率沒有超過連接客戶端/的最大可用下行帶寬。表 示可以降低優(yōu)先級閾值以傳輸質(zhì)量較高,優(yōu)先級較低的碼流包。若滿足條件則 轉(zhuǎn)入步驟S408;若不滿足,轉(zhuǎn)入步驟S410。
步驟S408,更新相應(yīng)碼流截取器的優(yōu)先級閾值、當(dāng)前碼率及當(dāng)前總碼率。
即,
凡二 ^ +耀"鄉(xiāng)
丑扁=U耀"flfexj
將優(yōu)先級閾值設(shè)為當(dāng)前滿足更新條件的碼流包的優(yōu)先級的值,當(dāng)前碼率與碼率增量的和為新的當(dāng)前碼率,當(dāng)前總碼率與碼率增量的和為新的當(dāng)前總碼率。
S410,檢查是否所有碼流包和所有碼流截取器遍歷完成。若遍歷完成,則 結(jié)束比較處理;若未遍歷完成,轉(zhuǎn)入步驟S404,進(jìn)行下一個碼流包的處理。
由于^f見頻序列內(nèi)容在i^小的一段時間間隔內(nèi)具有相似性,而且在等級B圖 像編碼結(jié)構(gòu)下一個圖像組內(nèi)所有碼流包的優(yōu)先級關(guān)系可以近似地反映了整個視 頻序列碼流包的優(yōu)先級關(guān)系,因此,這種利用與當(dāng)前編碼幀距離在一個圖像組 大小內(nèi)所有碼流包的優(yōu)先級關(guān)系計算各碼流截取器的優(yōu)先級闊值,不僅保證了 碼流截取的實時性,同時能使截取碼流的碼率較為準(zhǔn)確地滿足帶寬要求,并能 達(dá)到近似最優(yōu)的視頻質(zhì)量。
實施例二
在本實施例中,在多路一見頻通訊系統(tǒng)中,如圖5所示,還包括一個客戶端 信息表600,客戶端信息表600中的表項是關(guān)于客戶端與視頻通訊有關(guān)的各種信 息,諸如客戶端的IP地址或網(wǎng)絡(luò)物理地址、最大分辨率、最大幀率及最大上行
帶寬等。
在加入客戶端信息表后,獲取遠(yuǎn)程客戶端設(shè)備能力的方法有所不同,當(dāng)新 連接一個遠(yuǎn)程客戶端時,向該遠(yuǎn)程客戶端發(fā)送客戶端信息表,在未建立任何連 接之前,本地客戶端的客戶端信息表中僅包含本地客戶端所在終端設(shè)備的各項 信息,建立連接之后,將接收到的客戶端信息表與本地的客戶端信息表合并得 到新的客戶端信息表。因此在發(fā)送碼流前可以通過查詢客戶端信息表來獲取各 個客戶端與視頻通訊有關(guān)的信息。
以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì), 但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域 的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和 改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附 權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種多路視頻通訊系統(tǒng),其特征在于,包括可伸縮視頻編解碼器,用于對視頻源進(jìn)行編碼生成具有可伸縮性的原始視頻編碼碼流,及對接收的遠(yuǎn)程客戶端的最終視頻編碼碼流進(jìn)行解碼生成視頻;篩選模塊,所述篩選模塊與所述可伸縮視頻編解碼器連接獲取由所述可伸縮視頻編解碼器生成的原始視頻編碼碼流并根據(jù)篩選參數(shù)進(jìn)行篩選,得到最終視頻編碼碼流;網(wǎng)絡(luò)模塊,與篩選模塊和可伸縮視頻編解碼器相連,用于連接遠(yuǎn)程客戶端、獲取遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況后傳遞給篩選模塊,并傳輸最終視頻編碼碼流;篩選控制模塊,所述篩選控制模塊與篩選模塊及可伸縮視頻編解碼器連接,根據(jù)遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況設(shè)定篩選模塊的篩選參數(shù)。
2. 如權(quán)利要求1所述的多路視頻通訊系統(tǒng),其特征在于,所述篩選控制才莫 塊包括存儲單元和計算單元,所述存儲單元保存與篩選有關(guān)的參數(shù)信息,所述 計算單元根據(jù)遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況結(jié)合參數(shù)信息計算得到所述篩選模塊的篩選參數(shù)。
3. 如權(quán)利要求1或2所述的多路視頻通訊系統(tǒng),其特征在于,所述篩選模 塊包括兩個或兩個以上碼流截取器,所述網(wǎng)絡(luò)模塊包括兩個或兩個以上網(wǎng)絡(luò)連 接單元,所述碼流截取器與網(wǎng)絡(luò)連接單元——對應(yīng)連接,所述網(wǎng)絡(luò)連接單元與 遠(yuǎn)程客戶端對應(yīng)連接;所述碼流截取器對原始視頻編碼碼流按照篩選控制模塊 的篩選參數(shù)進(jìn)行截取,得到最終視頻編碼碼流;所述網(wǎng)絡(luò)連接單元獲取遠(yuǎn)程客 戶端的設(shè)備能力和網(wǎng)絡(luò)狀況并傳輸給碼流截取器,接收遠(yuǎn)程客戶端的最終視頻 編碼碼流傳輸給可伸縮視頻編解碼器或?qū)⒈镜乜蛻舳说淖罱K視頻編碼碼流傳輸 給遠(yuǎn)程客戶端。
4. 如權(quán)利要求1所述的多路視頻通訊系統(tǒng),其特征在于,還包括客戶端信 息表,所述客戶端信息表包含本地客戶端及其所有連接的遠(yuǎn)程客戶端的通信信 息,所述通信信息包括IP地址或網(wǎng)絡(luò)物理地址、最大分辨率、最大幀率及最大 上行帶寬中的一種或多種。
5. —種多路視頻通訊處理方法,其特征在于,包括以下步驟 將視頻源編碼得到具有可伸縮性的原始視頻編碼碼流; 獲取遠(yuǎn)程客戶端的設(shè)備能力和網(wǎng)絡(luò)狀況; 根據(jù)所述設(shè)備能力和網(wǎng)絡(luò)狀況設(shè)置篩選參數(shù);根據(jù)所述篩選參數(shù)對所述原始視頻編碼碼流進(jìn)行篩選得到最終視頻編碼碼 流并發(fā)送給遠(yuǎn)程客戶端。
6. 如權(quán)利要求5所述的多路枧頻通訊處理方法,其特征在于,所述的篩選 參數(shù)是指根據(jù)視頻編碼碼流中碼流包的優(yōu)先級進(jìn)行篩選時的優(yōu)先級閾值,所述 優(yōu)先級閾值結(jié)合參數(shù)信息計算獲得,所述參數(shù)信息是指最近一個圖像組內(nèi)所有 碼流包信息的循環(huán)隊列。
7. 如權(quán)利要求6所述的多路視頻通訊處理方法,其特征在于,所述碼流包 信息包括優(yōu)先級、時域等級、空域等級和碼率增量,在一個圖像組內(nèi),每編碼 一幀圖像,都將該圖像對應(yīng)的碼流包信息加入循環(huán)隊列。
8. 如權(quán)利要求5所述的多路視頻通訊處理方法,其特征在于,還包括4企測 即將連接的客戶端是否是第一個連接的客戶端的步驟,如果是則創(chuàng)建可伸縮視 頻編解碼器,如果不是則可直接進(jìn)行視頻源的編碼。
9. 如權(quán)利要求5所述的多路視頻通訊處理方法,其特征在于,還包括4全測 本地客戶端是否關(guān)閉的步驟,如果本地客戶端關(guān)閉則刪除網(wǎng)絡(luò)模塊和篩選模塊 以及可伸縮視頻編解碼器;如果本地客戶端沒有關(guān)閉,則在一段時間之后檢測 網(wǎng)絡(luò)狀況。
10. 如權(quán)利要求9所述的多路視頻通訊處理方法,其特征在于,還包括檢測 遠(yuǎn)程客戶端是否關(guān)閉的步驟,如果檢測到有遠(yuǎn)程客戶端關(guān)閉,則刪除與遠(yuǎn)程客 戶端對應(yīng)的碼流截取器和網(wǎng)絡(luò)連接單元,并檢測是否還有其他連接,如果沒有 其他連接則刪除可伸縮視頻編解碼器。
11. 如權(quán)利要求6所述的多路視頻通訊處理方法,其特征在于,所述設(shè)置篩 選參數(shù)的處理步驟包括將循環(huán)隊列中的碼流包信息按照優(yōu)先級由高到低的順序進(jìn)行排序,并從高到底賦予由小到大的索引號;按照索引號從小到大的順序,對每一個碼流包遍歷檢查每一個碼流截取器, 根據(jù)所有連接的終端設(shè)備處理能力和網(wǎng)絡(luò)帶寬判斷是否滿足優(yōu)先級閾值的更新 條件,若滿足,則更新優(yōu)先級閾值;若不滿足,則檢查是否所有的碼流包遍歷 完成;若所有碼流包的遍歷完成,結(jié)束本次處理;否則進(jìn)行下一個碼流包的處理。
12.如權(quán)利要求11所述的多路視頻通訊處理方法,其特征在于,所述更新 條件是指當(dāng)前碼流包的空域等級不大于所檢查的客戶端終端設(shè)備最大顯示分辨率對 應(yīng)的空域等級;當(dāng)前碼流包的時域等級不大于所檢查的客戶端終端設(shè)備最大幀率對應(yīng)的空域等級;當(dāng)前輸出到所檢查的客戶端的碼率,即當(dāng)前碼率與碼率增量的和不大于所 檢查的客戶端終端設(shè)備最大可用下行帶寬;當(dāng)前輸出的總碼率,即當(dāng)前總碼率與碼率增量的和不大于本地客戶端的終 端設(shè)備最大可用上行帶寬;當(dāng)上述條件同時滿足時,將優(yōu)先級閾值設(shè)定為當(dāng)前檢查的碼流包的優(yōu)先級 的值,并將當(dāng)前碼率與碼率增量的和更新為新的當(dāng)前碼率,當(dāng)前總碼率與碼率 增量的和更新為新的當(dāng)前總碼率。
全文摘要
本發(fā)明涉及一種多路視頻通訊系統(tǒng),包括可伸縮視頻編解碼器、篩選模塊、網(wǎng)絡(luò)模塊及篩選控制模塊,可伸縮視頻編解碼器與網(wǎng)絡(luò)模塊相連用于接收來自遠(yuǎn)程客戶端的碼流,篩選模塊設(shè)于可伸縮視頻編解碼器和網(wǎng)絡(luò)模塊之間用于將本地客戶端的碼流進(jìn)行篩選并通過網(wǎng)絡(luò)模塊傳輸給遠(yuǎn)程客戶端,篩選控制模塊與篩選模塊相連。本發(fā)明還涉及一種利用上述多路視頻通訊系統(tǒng)進(jìn)行多方視頻通訊的方法,利用可伸縮視頻編解碼器生成的在時域、空域和質(zhì)量上具有可伸縮性的視頻編碼碼流,所得到的碼流由篩選控制模塊提供篩選條件,然后篩選模塊根據(jù)篩選條件進(jìn)行篩選,得到適合不同設(shè)備能力和網(wǎng)絡(luò)狀況的終端的碼流進(jìn)行傳輸,具有很好的靈活性。
文檔編號H04N7/26GK101552913SQ20091003939
公開日2009年10月7日 申請日期2009年5月12日 優(yōu)先權(quán)日2009年5月12日
發(fā)明者谷沉沉 申請人:騰訊科技(深圳)有限公司