專利名稱:連接的媒體通信設(shè)備間的媒體質(zhì)量增強(qiáng)的制作方法
技術(shù)領(lǐng)域:
本說(shuō)明 書涉及與媒體內(nèi)容生成結(jié)合執(zhí)行的程序。
背景技術(shù):
因特網(wǎng)廣泛用于分發(fā)媒體內(nèi)容,包括視頻、圖形、音頻和腳本數(shù)據(jù)。媒體內(nèi)容可以作為文件被下載,或者可以向客戶端計(jì)算機(jī)流式傳輸,其中媒體播放器應(yīng)用可以處理媒體內(nèi)容并且將其向顯示設(shè)備以及一個(gè)或多個(gè)揚(yáng)聲器傳輸(如果適用的話)。在某些示例中, 媒體播放器應(yīng)用或者包括媒體播放器功能的應(yīng)用可以是針對(duì)計(jì)算機(jī)平臺(tái)上的特定操作系統(tǒng)(OS)而編寫的程序,或者在計(jì)算機(jī)平臺(tái)上的另一程序(諸如,運(yùn)行時(shí)環(huán)境)內(nèi)運(yùn)行的基于“插件”的軟件。數(shù)字內(nèi)容可以在無(wú)需介入中央中繼服務(wù)器的情況下使用端對(duì)端(P2P)通信架構(gòu)直接在兩個(gè)設(shè)備之間共享,其中參與者向一個(gè)或多個(gè)其他參與者提供資源的部分(例如, 處理器、存儲(chǔ)器、網(wǎng)絡(luò)帶寬)。端通常創(chuàng)建共享關(guān)系,其中每個(gè)端既是資源(例如,數(shù)字內(nèi)容) 的消費(fèi)者也是提供者。在用戶設(shè)備上呈現(xiàn)媒體內(nèi)容的速率可能取決于多個(gè)因素,包括網(wǎng)絡(luò)連接的帶寬和速度、接收設(shè)備的處理器速度、接收設(shè)備上的處理器負(fù)載以及網(wǎng)絡(luò)擁塞。如果處理器過(guò)慢, 或者處理器具有過(guò)多應(yīng)用同時(shí)競(jìng)爭(zhēng)處理時(shí)間,則在用戶設(shè)備上呈現(xiàn)的特定媒體內(nèi)容的幀速率可能降低為過(guò)慢的幀率,以至于用戶無(wú)法適當(dāng)?shù)伢w驗(yàn)。例如,媒體內(nèi)容可能看上去是停止的或者不連貫的。在網(wǎng)絡(luò)擁塞或者處理器過(guò)載期間,可以由用戶手動(dòng)地調(diào)節(jié)視頻質(zhì)量或者音頻質(zhì)量以改進(jìn)媒體呈現(xiàn)。例如,用戶可以通過(guò)手動(dòng)調(diào)節(jié)來(lái)減小視頻比特率或者視頻復(fù)雜度(例如, 像素密度)。可以通過(guò)減小采樣速率或者質(zhì)量水平來(lái)類似地調(diào)節(jié)音頻質(zhì)量。
發(fā)明內(nèi)容
本說(shuō)明書描述了涉及與媒體內(nèi)容生成相結(jié)合而獲得和執(zhí)行的程序的技術(shù)??傮w上,本說(shuō)明書中描述的主題的一個(gè)創(chuàng)新方面可以具體化在方法中,該方法包括動(dòng)作在發(fā)送設(shè)備處收集信息,該信息包括與視頻編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息,以及與向傳輸層網(wǎng)絡(luò)協(xié)議棧遞送至但尚未由其傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的第二信息;根據(jù)第一信息計(jì)算所產(chǎn)生的已編碼視頻數(shù)據(jù)的中間量,并且根據(jù)第一信息和第二信息計(jì)算傳輸層網(wǎng)絡(luò)協(xié)議棧的已編碼視頻數(shù)據(jù)傳輸速率;以及當(dāng)中間量與針對(duì)向視頻編碼器提供的視頻數(shù)據(jù)而設(shè)置的當(dāng)前視頻速率相比較高時(shí),將當(dāng)前視頻速率增加速率調(diào)節(jié)量,當(dāng)已編碼視頻數(shù)據(jù)傳輸速率與當(dāng)前視頻速率相比較低時(shí),減小當(dāng)前視頻速率,否則維持當(dāng)前視頻速率。本發(fā)明的其他實(shí)施方式包括配置用于執(zhí)行該方法的動(dòng)作的相應(yīng)系統(tǒng)、 裝置和計(jì)算機(jī)程序,其編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上。這些以及其他實(shí)施方式每個(gè)可以可選地包括一個(gè)或多個(gè)以下特征。動(dòng)作還可以包括當(dāng)不止一次增加當(dāng)前視頻速率時(shí),提高速率調(diào)節(jié)量;當(dāng)已編碼視頻數(shù)據(jù)傳輸速率與當(dāng)前視頻速率相比較高并且先前增 加了視頻速率時(shí),降低速率調(diào)節(jié)量,否則維持速率調(diào)節(jié)量。 另外,減小當(dāng)前視頻速率可以包括將當(dāng)前視頻速率設(shè)置為低于已編碼視頻數(shù)據(jù)傳輸速率, 其中在減小當(dāng)前視頻速率之后降低速率調(diào)節(jié)量??梢愿鶕?jù)第一時(shí)間間隔周期性地執(zhí)行收集,可以根據(jù)至少是第一時(shí)間間隔的五倍的第二時(shí)間間隔周期性地執(zhí)行計(jì)算,當(dāng)前視頻速率可以是當(dāng)前視頻比特率,并且中間量可以是所產(chǎn)生的已編碼視頻數(shù)據(jù)的移動(dòng)平均。傳輸層網(wǎng)絡(luò)協(xié)議??梢苑习ǘ藢?duì)端連接性特征的傳輸層網(wǎng)絡(luò)協(xié)議,動(dòng)作還包括打開發(fā)送設(shè)備與第一端設(shè)備之間的端對(duì)端連接,該端對(duì)端連接允許發(fā)送設(shè)備與第一端設(shè)備之間的實(shí)時(shí)視頻協(xié)同;向?qū)崟r(shí)視頻協(xié)同添加一個(gè)或多個(gè)附加端設(shè)備,每個(gè)附加端設(shè)備通過(guò)附加端對(duì)端連接與發(fā)送設(shè)備通信;確定端設(shè)備的總數(shù)目超過(guò)預(yù)定義數(shù)目;以及基于該確定將每個(gè)端對(duì)端連接重新配置為使用客戶端_服務(wù)器傳送機(jī)制??梢酝ㄟ^(guò)應(yīng)用編程接口(API)從媒體播放器運(yùn)行時(shí)環(huán)境收集第一信息和第二信息,媒體播放器運(yùn)行時(shí)環(huán)境通過(guò)傳輸層網(wǎng)絡(luò)協(xié)議棧提供端對(duì)端連接性特征,該端對(duì)端連接性特征包括數(shù)據(jù)優(yōu)先級(jí)設(shè)置特征,其允許音頻數(shù)據(jù)的優(yōu)先級(jí)設(shè)置在視頻數(shù)據(jù)之上,傳輸層網(wǎng)絡(luò)協(xié)議棧具有關(guān)聯(lián)的音頻數(shù)據(jù)緩沖區(qū)和關(guān)聯(lián)的視頻數(shù)據(jù)緩沖區(qū),音頻數(shù)據(jù)緩沖區(qū)與視頻數(shù)據(jù)緩沖區(qū)分離,并且所產(chǎn)生的已編碼視頻數(shù)據(jù)可以包括分層視頻。本說(shuō)明書中描述的主題的其他創(chuàng)新方面可以具體化在計(jì)算機(jī)存儲(chǔ)介質(zhì)中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)編碼有包括指令的計(jì)算機(jī)程序,該指令在由數(shù)據(jù)處理裝置執(zhí)行時(shí)使得數(shù)據(jù)處理裝置執(zhí)行所描述的操作。另外,一種系統(tǒng),可以包括接口設(shè)備、網(wǎng)絡(luò)連接以及與接口設(shè)備和網(wǎng)絡(luò)連接耦合的計(jì)算機(jī),該計(jì)算機(jī)編程有運(yùn)行時(shí)環(huán)境,該運(yùn)行時(shí)環(huán)境包括媒體編碼器、音頻數(shù)據(jù)緩沖區(qū)和視頻數(shù)據(jù)緩沖區(qū),音頻數(shù)據(jù)緩沖區(qū)與視頻數(shù)據(jù)緩沖區(qū)分離,并且該運(yùn)行時(shí)環(huán)境可以配置用于基于響應(yīng)于所提供的與媒體編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)并且與向視頻數(shù)據(jù)緩沖區(qū)遞送但尚未被傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的輸出而接收的輸入來(lái)增強(qiáng)傳輸媒體質(zhì)量。接口設(shè)備和計(jì)算機(jī)可以是單個(gè)消費(fèi)者電子設(shè)備的一部分,消費(fèi)者電子設(shè)備諸如移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、移動(dòng)音頻或者視頻播放器等。備選地,接口設(shè)備和計(jì)算機(jī)可以劃分在兩個(gè)或者更多不同的組件上,其可以本地連接或者通過(guò)網(wǎng)絡(luò)遠(yuǎn)程連接??梢詫?shí)現(xiàn)本說(shuō)明書中描述的主題的特定實(shí)施方式以便實(shí)現(xiàn)一個(gè)或多個(gè)以下優(yōu)點(diǎn)。 端對(duì)端帶寬增強(qiáng)方案可以用于基于遠(yuǎn)程端的可用帶寬來(lái)調(diào)節(jié)發(fā)送方處的媒體內(nèi)容質(zhì)量或者媒體傳輸速率。通過(guò)監(jiān)測(cè)傳輸層網(wǎng)絡(luò)協(xié)議棧的排出速率,可以確定遠(yuǎn)程端的可用帶寬。通過(guò)使媒體內(nèi)容傳輸速率與遠(yuǎn)程端的可用帶寬相匹配,遠(yuǎn)程端可以獲得比使用默認(rèn)傳輸速率可能經(jīng)歷的更低的延遲和更好的媒體內(nèi)容呈現(xiàn)體驗(yàn)。如果數(shù)據(jù)優(yōu)先級(jí)設(shè)置方案與帶寬增強(qiáng)方案一起使用,則可以提供具有很小延遲或者沒(méi)有延遲的音頻數(shù)據(jù),即使在擁塞時(shí)也是如此。在附圖和下文的描述中闡明本說(shuō)明書所描述的主題的一個(gè)或多個(gè)實(shí)施方式的細(xì)節(jié)。根據(jù)描述、附圖和權(quán)利要求,主題的其他特征、方面和優(yōu)點(diǎn)將變得明顯。
圖1是用于增強(qiáng)直接連接的媒體播放器端點(diǎn)之間的媒體質(zhì)量的示例系統(tǒng)的框圖。
圖2是媒體播放器端點(diǎn)的示例架構(gòu)。圖3是用于增強(qiáng)直接連接的媒體播放器端點(diǎn)之間的媒體質(zhì)量的示例過(guò)程的流程圖。圖4是用于 增強(qiáng)媒體播放器端點(diǎn)之間的媒體質(zhì)量的另一示例過(guò)程的流程圖。圖5是用于執(zhí)行直接連接的媒體播放器端點(diǎn)之間的媒體質(zhì)量曾倩的示例裝置的框圖。各附圖中的相似參考標(biāo)號(hào)和標(biāo)記指示相似的元素。
具體實(shí)施例方式圖1是用于增強(qiáng)直接連接的媒體播放器端點(diǎn)之間的媒體質(zhì)量的示例系統(tǒng)100的框圖。媒體播放器端點(diǎn)例如可以包括第一端計(jì)算設(shè)備102,其使用用于視頻會(huì)議的媒體播放器應(yīng)用通過(guò)網(wǎng)絡(luò)106與第二端計(jì)算設(shè)備104通信,包括流式傳輸音頻和視頻數(shù)據(jù)。第一端計(jì)算設(shè)備102可以直接向第二端計(jì)算設(shè)備104提供由端對(duì)端(P2P)媒體編碼器110編碼的音頻和視頻數(shù)據(jù)。第一端計(jì)算設(shè)備102可以基于第二端計(jì)算設(shè)備104的消耗速率,使用流量?jī)?yōu)化器112自動(dòng)地調(diào)節(jié)媒體流的傳輸速率,以增強(qiáng)第二端計(jì)算設(shè)備104處的用戶體驗(yàn),而無(wú)需抑制其他網(wǎng)絡(luò)流量。流量?jī)?yōu)化器112例如可以向媒體播放器應(yīng)用108提供信息,以請(qǐng)求視頻比特率(VBR)調(diào)節(jié)、視頻分辨率調(diào)節(jié)和/或音頻質(zhì)量調(diào)節(jié),以便更好地匹配感知到的第二端計(jì)算設(shè)備104的可用帶寬。在某些實(shí)現(xiàn)中,流量?jī)?yōu)化器112可以觸發(fā)調(diào)節(jié),其在沒(méi)有媒體播放器應(yīng)用108的知識(shí)的情況下發(fā)送媒體播放器應(yīng)用108生成的較少視頻幀,或者傳輸分層視頻比特流的較低質(zhì)量分段。在某些實(shí)現(xiàn)中,流量?jī)?yōu)化器112或者媒體編碼器110也可以應(yīng)用數(shù)據(jù)優(yōu)先級(jí)設(shè)置(例如,音頻高于視頻)。當(dāng)?shù)谝欢擞?jì)算設(shè)備102和第二端計(jì)算設(shè)備104開始視頻會(huì)議會(huì)話時(shí),例如,可以由媒體編碼器110向兩個(gè)端點(diǎn)之間的P2P數(shù)據(jù)連接提供音頻和視頻數(shù)據(jù)(例如,由網(wǎng)絡(luò)攝像機(jī)116和麥克風(fēng)捕獲的)。在某些示例中,P2P協(xié)議可以基于實(shí)時(shí)傳輸協(xié)議(RTP)或者用戶數(shù)據(jù)報(bào)協(xié)議(UDP)協(xié)議標(biāo)準(zhǔn)。在某些實(shí)現(xiàn)中,P2P協(xié)議是實(shí)時(shí)媒體流協(xié)議(RTMFP)的一個(gè)版本,該協(xié)議是由加利福尼亞州圣荷西的Adobe System開發(fā)的協(xié)議。通過(guò)經(jīng)由P2P連接進(jìn)行傳輸,視頻會(huì)議會(huì)話可以享有比可實(shí)現(xiàn)的典型的客戶端-服務(wù)器連接更高的帶寬和更低的延遲。在傳輸期間,流量?jī)?yōu)化器112可以按照第一時(shí)間間隔周期性地收集與數(shù)據(jù)的創(chuàng)建和消耗有關(guān)的統(tǒng)計(jì)。已編碼數(shù)據(jù)例如可以被緩沖在數(shù)據(jù)棧114中以用于向第二端計(jì)算設(shè)備 104傳輸。基于第二端計(jì)算設(shè)備104消耗所緩沖的編碼數(shù)據(jù)的速率,例如,流量?jī)?yōu)化器112 可以向媒體播放器應(yīng)用108或者媒體編碼器110提供反饋,從而使媒體數(shù)據(jù)的傳輸速率得到相應(yīng)調(diào)節(jié)。在某些實(shí)現(xiàn)中,關(guān)于編碼數(shù)據(jù)的提供和消耗的統(tǒng)計(jì)分析可以包括計(jì)算第二時(shí)間間隔上的移動(dòng)平均,其可以用于確定要發(fā)送的媒體數(shù)據(jù)的量(例如,字節(jié))。該量可以部分根據(jù)所計(jì)算的數(shù)據(jù)棧114的排出速率(例如,編碼數(shù)據(jù)量與緩沖數(shù)據(jù)量的比較)來(lái)確定。例如,如果在數(shù)據(jù)棧114中沒(méi)有聚集已編碼數(shù)據(jù),則流量?jī)?yōu)化器112可以請(qǐng)求媒體播放器應(yīng)用 108增加視頻分辨率、VBR或者音頻輸出質(zhì)量。反之,如果在數(shù)據(jù)棧114中收集了可觀的數(shù)據(jù)量,則流量?jī)?yōu)化器112可以請(qǐng)求媒體播放器應(yīng)用108減小VBR或者視頻分辨率,或者降低音頻輸出質(zhì)量。在某些示例中,為了修改音頻傳輸帶寬,使用Speex音頻壓縮編解碼器,可以通過(guò)指定質(zhì)量參數(shù)來(lái)改變Speex音頻速率;或者使用Nellymoser Asao編解碼器,可以通過(guò)指定不同的編解碼器采樣頻率來(lái)改變Nellymoser音頻速率。在某些實(shí)現(xiàn)中,所調(diào)節(jié)的數(shù)據(jù)傳輸速率的量可以部分取決于數(shù)據(jù)傳輸速率先前是否被調(diào)節(jié)。例如,如果數(shù)據(jù)傳輸速率先前被向上調(diào)節(jié),并且流量?jī)?yōu)化器112確定可以向視頻會(huì)議會(huì)話分配附加帶寬,則可以提高速率調(diào)節(jié)量。例如,提高速率調(diào)節(jié)可以允許傳輸速率較快地收斂至增強(qiáng)或者優(yōu)化的速率。另一方面,如果數(shù)據(jù)傳輸速率先前被向上調(diào)節(jié) ,并且流量?jī)?yōu)化器112確定當(dāng)前傳輸速率高于第二端計(jì)算設(shè)備104可以消耗的傳輸速率,則可以減小傳輸速率。例如,基于第二端計(jì)算設(shè)備104的當(dāng)前平均消耗速率,可以設(shè)置速率調(diào)節(jié)量以實(shí)現(xiàn)近似與當(dāng)前數(shù)據(jù)棧排出速率的一定百分比(例如,80%、90%等)相對(duì)應(yīng)的傳輸速率。在另一示例中,可以將傳輸速率減小為先前的“良好”速率(例如,通過(guò)與先前用于增加的相同的速率調(diào)節(jié)量)。在某些實(shí)現(xiàn)中,用于提高傳輸速率的速率調(diào)節(jié)量可以與用于降低傳輸速率的速率調(diào)節(jié)量不同。例如,降低傳輸速率可以比提高傳輸速率更加迅速。雖然系統(tǒng)100包括兩個(gè)端計(jì)算設(shè)備102、104,但是在某些實(shí)現(xiàn)中,可以在第一端計(jì)算設(shè)備102與兩個(gè)或者更多附加端計(jì)算設(shè)備之間創(chuàng)建P2P連接。在某些實(shí)現(xiàn)中,每個(gè)附加端計(jì)算設(shè)備可以按照這樣的數(shù)據(jù)傳輸速率接收媒體數(shù)據(jù),該數(shù)據(jù)傳輸速率得到增強(qiáng)以提供具有足夠媒體消耗體驗(yàn)的最低帶寬端。每個(gè)端的總帶寬可用性例如可以取決于在第一端計(jì)算設(shè)備102與附加端計(jì)算設(shè)備之間分配的上行鏈路帶寬,因?yàn)樯闲墟溌穾捦ㄟ^(guò)顯著低于下行鏈路帶寬。在某些實(shí)現(xiàn)中,可以為每個(gè)附加端計(jì)算設(shè)備分配獨(dú)立的網(wǎng)絡(luò)套接字以及數(shù)據(jù)棧114中的獨(dú)立傳輸隊(duì)列。在本示例中,可以針對(duì)每個(gè)附加的端計(jì)算設(shè)備獨(dú)立地增強(qiáng)數(shù)據(jù)傳輸速率。圖2是媒體播放器端點(diǎn)202的示例架構(gòu)200。媒體播放器端點(diǎn)202可以使用點(diǎn)對(duì)點(diǎn)通信路徑206或者通過(guò)中央中繼服務(wù)器208中繼通信來(lái)參與流式傳輸與一個(gè)或多個(gè)遠(yuǎn)程端204共享的媒體。例如,通信方法可以部分地基于參與流式傳輸媒體連接的遠(yuǎn)程端204 的數(shù)目來(lái)確定。另外,在某些實(shí)現(xiàn)中,中央服務(wù)器208可以充當(dāng)各個(gè)端點(diǎn)之間的協(xié)調(diào)器,包括支持P2P通信的初始建立。媒體播放器端點(diǎn)202包括用于編碼和傳輸流式傳輸媒體數(shù)據(jù)的運(yùn)行時(shí)環(huán)境210, 以及用于收集和分析傳輸速率統(tǒng)計(jì)并且由此調(diào)節(jié)流式傳輸媒體數(shù)據(jù)的傳輸速率的優(yōu)化框架212。運(yùn)行時(shí)環(huán)境210例如可以向優(yōu)化框架212提供與媒體編碼器216所編碼的數(shù)據(jù)量有關(guān)的編碼統(tǒng)計(jì)214以及與協(xié)議棧220所緩沖的數(shù)據(jù)量有關(guān)的緩沖統(tǒng)計(jì)218 二者。優(yōu)化框架212可以收集并且分析統(tǒng)計(jì)214和218,并且向在運(yùn)行時(shí)環(huán)境210上執(zhí)行的相機(jī)應(yīng)用224 提供一個(gè)或多個(gè)經(jīng)調(diào)節(jié)的相機(jī)屬性。當(dāng)媒體播放器端點(diǎn)202與第一遠(yuǎn)程端204進(jìn)入P2P通信會(huì)話時(shí),媒體播放器端點(diǎn) 202可以接收帶寬分配聲明(例如,從服務(wù)器208或者另一網(wǎng)絡(luò)服務(wù)器)。帶寬分配可被用作建立初始媒體傳輸速率的基礎(chǔ),或者傳輸可被初始化為默認(rèn)速率??梢韵騼?yōu)化框架212 提供初始媒體傳輸速率,在優(yōu)化框架212中,初始媒體傳輸速率可以作為開始速率230而被存儲(chǔ)在統(tǒng)計(jì)數(shù)據(jù)存儲(chǔ)228中。當(dāng)前速率232可被類似地初始化為開始速率230的值。速率調(diào)節(jié)量234可被初始化為初始速率調(diào)節(jié)量,例如作為開始速率230或者默認(rèn)值的百分比,諸如200千比特每秒(kbps)或者500kbps。相機(jī)應(yīng)用224可以開始生成基于初始媒體傳輸速率確定的視頻質(zhì)量和/或幀速率的視頻幀。在某些實(shí)現(xiàn)中,相機(jī)應(yīng)用224生成 的單個(gè)媒體幀的大小可以部分地取決于特定幀是否為關(guān)鍵幀而在幀之間改變。因此,向媒體編碼器216提供的媒體數(shù)據(jù)可能呈現(xiàn)突發(fā)性,而不是由相似大小的幀生成的平滑數(shù)據(jù)速率。媒體編碼器216可以將媒體數(shù)據(jù)編碼為P2P傳輸分組。編碼數(shù)據(jù)總量(例如,比特、字節(jié)、字等)以及編碼數(shù)據(jù)分組的總數(shù)目可以由媒體編碼器216收集以作為編碼統(tǒng)計(jì) 214。在某些實(shí)現(xiàn)中,運(yùn)行時(shí)環(huán)境類指定與用于音頻、視頻和數(shù)據(jù)的流緩沖有關(guān)的各種服務(wù)質(zhì)量(QOS)統(tǒng)計(jì)。在某些實(shí)現(xiàn)中,P2P協(xié)議傳輸層包括QOS報(bào)告機(jī)制,其包括與編碼數(shù)據(jù)量以及與傳輸緩沖區(qū)中待傳輸?shù)臄?shù)據(jù)量有關(guān)的統(tǒng)計(jì)。優(yōu)化框架212可以根據(jù)描述第一時(shí)間間隔的集合統(tǒng)計(jì)收集調(diào)度226來(lái)采樣編碼統(tǒng)計(jì)214。例如,統(tǒng)計(jì)收集調(diào)度226可被設(shè)置為若干毫秒(例如,50ms、200ms、400ms等)。在某些實(shí)現(xiàn)中,統(tǒng)計(jì)收集調(diào)度226以視頻幀速率為基礎(chǔ)。例如,統(tǒng)計(jì)收集調(diào)度226可以設(shè)置為相機(jī)應(yīng)用224生成的視頻幀速率的整數(shù)倍。統(tǒng)計(jì)可以存儲(chǔ)在統(tǒng)計(jì)數(shù)據(jù)存儲(chǔ)228中。在某些實(shí)現(xiàn)中,通過(guò)應(yīng)用編程接口(API)來(lái)采樣編碼統(tǒng)計(jì)214。如果通過(guò)API庫(kù)來(lái)提供統(tǒng)計(jì),則例如還可以向優(yōu)化框架212顯示網(wǎng)絡(luò)條件事件,以使得優(yōu)化框架212可以部分基于當(dāng)前網(wǎng)絡(luò)狀態(tài)來(lái)提供經(jīng)調(diào)節(jié)的相機(jī)屬性222。編碼媒體數(shù)據(jù)可以適當(dāng)?shù)卦趨f(xié)議棧220、音頻緩沖區(qū)236或者視頻緩沖區(qū)238中緩沖以用于傳輸。運(yùn)行時(shí)環(huán)境210例如可以按照統(tǒng)計(jì)收集調(diào)度226向優(yōu)化框架212提供與視頻數(shù)據(jù)緩沖區(qū)238以及可選的音頻數(shù)據(jù)緩沖區(qū)236中積累的數(shù)據(jù)量有關(guān)的緩沖統(tǒng)計(jì)218。在某些實(shí)現(xiàn)中,可以向緩沖的數(shù)據(jù)應(yīng)用數(shù)據(jù)優(yōu)先級(jí)設(shè)置方案240,例如用于為音頻緩沖區(qū)236中的音頻數(shù)據(jù)設(shè)置優(yōu)先級(jí),以使得可以在網(wǎng)絡(luò)擁塞或者大量視頻分組緩沖期間向遠(yuǎn)程端204提供足夠的音頻質(zhì)量。例如,在流量擁塞期間,可能發(fā)生視頻延遲或者視頻丟失,但是音頻丟失可以保持最小值??梢曰谙南蜻h(yuǎn)程端204提供協(xié)議棧220中收集的數(shù)據(jù)。例如,遠(yuǎn)程端204可以基于消耗所提供數(shù)據(jù)的能力來(lái)設(shè)置來(lái)自協(xié)議棧220的數(shù)據(jù)的傳輸速率。如果遠(yuǎn)程端204 難以按照開始速率230消耗數(shù)據(jù),則數(shù)據(jù)可以積累在協(xié)議棧220中。為了避免數(shù)據(jù)積累,優(yōu)化框架212可以將統(tǒng)計(jì)分析調(diào)度242設(shè)置為第二時(shí)間間隔, 優(yōu)化框架212按照該第二時(shí)間間隔,基于協(xié)議棧220中積累的數(shù)據(jù)量與媒體編碼器216編碼的數(shù)據(jù)量的比較來(lái)計(jì)算端消耗速率(或者協(xié)議棧排出速率)。優(yōu)化框架212可以例如通過(guò)從所生成的總數(shù)據(jù)中減去緩沖的數(shù)據(jù),來(lái)基于排出速率而感知遠(yuǎn)程端處的估計(jì)可用帶寬??梢栽诹鲃?dòng)平均(rolling average) 244內(nèi)收集消耗速率。流動(dòng)平均244例如可以包括消耗速率計(jì)算前的若干秒。例如,可以將統(tǒng)計(jì)分析調(diào)度242設(shè)置為統(tǒng)計(jì)收集調(diào)度226的整數(shù)倍(例如,三倍、五倍或者十倍等)。在某些實(shí)現(xiàn)中,優(yōu)化框架212以每200毫秒的統(tǒng)計(jì)收集調(diào)度226收集編碼統(tǒng)計(jì)214 和緩沖統(tǒng)計(jì)218,并且以接近每秒(例如,每第五個(gè)收集周期)一次的統(tǒng)計(jì)分析調(diào)度242計(jì)算消耗速率。流動(dòng)平均244例如可以收集十個(gè)最近的消耗速率計(jì)算。響應(yīng)于每個(gè)統(tǒng)計(jì)分析調(diào)度242周期,優(yōu)化框架212還可以分析流動(dòng)平均244內(nèi)收集的消耗速率,以確定遠(yuǎn)程端204是否跟得上當(dāng)前速率232,并且如果如此,則可以將傳輸速率調(diào)節(jié)速率調(diào)節(jié)量234。如果相反,遠(yuǎn)程端204似乎落后于當(dāng)前速率232,則優(yōu)化框架212 可以確定是否將傳輸速率減小速率調(diào)節(jié)量234,以緩和協(xié)議棧220內(nèi)積累的編碼數(shù)據(jù)。
如果優(yōu)化框架212確定遠(yuǎn)程端204可以受益于傳輸速率的修改,則優(yōu)化框架212 向運(yùn)行時(shí)環(huán)境210提供經(jīng)調(diào)節(jié)的相機(jī)屬性222。經(jīng)調(diào)節(jié)的相機(jī)屬性222例如可以包括經(jīng)調(diào)節(jié)的針對(duì)視頻數(shù)據(jù)生成的VBR、視頻質(zhì)量修改、音頻質(zhì)量修改或者其他媒體捕獲調(diào)節(jié),當(dāng)相機(jī)應(yīng)用224支持時(shí),這可以改變向媒體編碼器216提供以用于傳輸?shù)臄?shù)據(jù)質(zhì)量。附加地,優(yōu)化框架212可以將新傳輸速率存儲(chǔ)在當(dāng)前速率232中。在某些實(shí)現(xiàn)中,優(yōu)化框架212還跟蹤傳輸速率被調(diào)節(jié)的次數(shù)以及方向(例如,提高或者降低)。在某些實(shí)現(xiàn)中,作為替代,優(yōu)化框架212可以基于開始速率230與當(dāng)前速率232之間的差異來(lái)導(dǎo)出對(duì)速率調(diào)節(jié)量的向上或者向下修改。在某些實(shí) 現(xiàn)中,優(yōu)化框架212可以向媒體編碼器216提供經(jīng)調(diào)節(jié)的數(shù)據(jù)編碼速率, 而不是向相機(jī)應(yīng)用224提供經(jīng)調(diào)節(jié)的相機(jī)屬性222。例如,如果運(yùn)行時(shí)環(huán)境210沒(méi)有對(duì)相機(jī)應(yīng)用224的功能的輸入,則作為替代,媒體編碼器216可以通過(guò)丟棄相機(jī)應(yīng)用224生成的視頻幀的部分(例如,丟棄每第N個(gè)幀,以與緩沖排出速率相匹配)而節(jié)流向協(xié)議棧220提供的數(shù)據(jù)量。如果另一遠(yuǎn)程端204隨后加入到P2P連接206中,則可以在兩個(gè)遠(yuǎn)程端204之間共享所分配的帶寬。以這種方式,較小的總帶寬可用于每個(gè)遠(yuǎn)程端。在某些實(shí)現(xiàn)中,優(yōu)化框架212為共享的P2P連接206確定新的開始速率230。在某些實(shí)現(xiàn)中,可以向每個(gè)遠(yuǎn)程端204分配獨(dú)立的協(xié)議棧220,同時(shí)兩個(gè)協(xié)議棧由相同的媒體編碼器216進(jìn)行伺服。如果媒體編碼器216編碼分層比特流,則媒體編碼器216 可以根據(jù)每個(gè)遠(yuǎn)程端204的消耗能力向每個(gè)遠(yuǎn)程端204提供不同的質(zhì)量水平。例如,如果第一遠(yuǎn)程端204通過(guò)局域網(wǎng)(LAN)連接與媒體播放器端點(diǎn)202連接,而第二遠(yuǎn)程端204通過(guò)家庭集成服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)連接與媒體播放器端點(diǎn)202連接,則可以為第一遠(yuǎn)程端204 提供增強(qiáng)的質(zhì)量視頻數(shù)據(jù)和寬帶音頻,并且可以為第二遠(yuǎn)程端204提供基本的質(zhì)量視頻數(shù)據(jù)和窄帶音頻,兩種數(shù)據(jù)都以相同的幀速率提供。如果媒體編碼器216不編碼分層比特流, 則優(yōu)化框架212可以與運(yùn)行時(shí)環(huán)境210合作以確定足以用于第一和第二遠(yuǎn)程端204 二者的 “最小公分母”傳輸速率。在某些實(shí)現(xiàn)中,除了獨(dú)立協(xié)議棧220以外,還可以分配獨(dú)立的媒體編碼器216。以這種方式,每個(gè)媒體編碼器和協(xié)議??梢园凑张c上文描述的單個(gè)遠(yuǎn)程端場(chǎng)景中類似的方式來(lái)運(yùn)轉(zhuǎn),同時(shí)優(yōu)化框架212可以跟蹤針對(duì)每個(gè)遠(yuǎn)程端204的獨(dú)立統(tǒng)計(jì)。在某個(gè)時(shí)刻,當(dāng)遠(yuǎn)程端204被添加到P2P連接206中時(shí),所分配的帶寬可能變得太過(guò)分散,以至于無(wú)法為遠(yuǎn)程端204提供足夠的質(zhì)量。在某些實(shí)現(xiàn)中,運(yùn)行時(shí)環(huán)境210可以自動(dòng)地拆除每個(gè)遠(yuǎn)程端204與媒體播放器端點(diǎn)202之間的每個(gè)P2P接口,并且將連接切換至中央中繼服務(wù)器208。只要閾值數(shù)目的遠(yuǎn)程端204與媒體播放器端點(diǎn)202保持通信,中央中繼服務(wù)器208就可以繼續(xù)處理流量。在某些實(shí)現(xiàn)中,如果丟棄遠(yuǎn)程端204中的一個(gè)或多個(gè)與媒體播放器端點(diǎn)202的通信,則媒體播放器端點(diǎn)202可以返回P2P連接206。圖3是用于增強(qiáng)直接連接的媒體播放器端點(diǎn)之間的媒體質(zhì)量的示例過(guò)程300的流程圖。過(guò)程300例如可以由優(yōu)化框架212執(zhí)行,如結(jié)合圖2所述。總體上,過(guò)程300描述了收集關(guān)于被生成以用于向遠(yuǎn)程端傳輸?shù)囊丫幋a視頻數(shù)據(jù)的統(tǒng)計(jì)??梢詫?duì)統(tǒng)計(jì)進(jìn)行分析以調(diào)節(jié)已編碼視頻數(shù)據(jù)的傳輸速率,以更好地匹配遠(yuǎn)程端的消耗能力。過(guò)程300開始于收集與視頻編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息(302)。已編碼視頻數(shù)據(jù)的量例如可被報(bào)告為由媒體編碼器從相機(jī)應(yīng)用接收并且編碼為分組的字節(jié)的數(shù)目,或者被報(bào)告為由網(wǎng)絡(luò)協(xié)議棧從媒體編碼器接收的編碼分組的數(shù)目。 收集與向傳輸層網(wǎng)絡(luò)協(xié)議棧遞送但尚未由其傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的第二信息(304)。例如,已編碼視頻數(shù)據(jù)可以在協(xié)議棧的視頻數(shù)據(jù)緩沖區(qū)中積累。在某些實(shí)現(xiàn)中,第二信息可以報(bào)告為緩沖以用于向端計(jì)算設(shè)備傳輸?shù)淖止?jié)數(shù)目。在某些實(shí)現(xiàn)中,可以附加地(或者備選地)收集緩沖的分組數(shù)目或者所使用的緩沖區(qū)空間的百分比。例如可以按照第一時(shí)間間隔周期性地收集第一信息和第二信息;可以按照第二時(shí)間間隔對(duì)數(shù)據(jù)點(diǎn)收集中存儲(chǔ)的信息進(jìn)行分析。在某些實(shí)現(xiàn)中,可以從特定協(xié)議標(biāo)準(zhǔn)收集的統(tǒng)計(jì)導(dǎo)出第一信息和第二信息。在某些實(shí)現(xiàn)中,統(tǒng)計(jì)可以是執(zhí)行媒體編碼器的運(yùn)行時(shí)所收集的標(biāo)準(zhǔn)統(tǒng)計(jì)。第一信息和第二信息例如可以通過(guò)運(yùn)行時(shí)API獲取。計(jì)算產(chǎn)生的已編碼視頻數(shù)據(jù)的中間量(306)。例如,產(chǎn)生的已編碼視頻數(shù)據(jù)的量的流動(dòng)平均可以用于確定第二時(shí)間間隔上的平均視頻數(shù)據(jù)產(chǎn)生速率。計(jì)算傳輸層網(wǎng)絡(luò)協(xié)議棧的已編碼視頻數(shù)據(jù)傳輸速率(308)。通過(guò)將已編碼視頻數(shù)據(jù)的平均產(chǎn)生速率與協(xié)議棧中收集的已編碼視頻數(shù)據(jù)的平均量進(jìn)行比較,可以導(dǎo)出平均傳輸速率(例如,已經(jīng)與遠(yuǎn)程端共享的已編碼視頻數(shù)據(jù))。例如,平均傳輸速率建議遠(yuǎn)程端的消耗能力。如果中間量與當(dāng)前視頻速率相比較高(310),則過(guò)程300增加當(dāng)前視頻速率 (316)。例如,如果協(xié)議棧中積累了很少或者沒(méi)有積累已編碼視頻數(shù)據(jù),則遠(yuǎn)程端可以能夠接受較高的數(shù)據(jù)傳輸速率。例如,如果協(xié)議棧中積累了小于百分之十的已編碼視頻數(shù)據(jù),則可以將排出速率視為適宜增加傳輸速率。例如,基于500kbps的編碼速率,在給定時(shí)刻可以積累最大50千比特。在某些實(shí)現(xiàn)中,計(jì)算可以基于幀速率的百分比。例如,基于30幀每秒(fps)的幀速率,適宜量可以與不多于100毫秒的數(shù)據(jù)積累相關(guān)聯(lián)。從幀總數(shù)的角度考慮該示例,基于 30fps的幀速率,可以在任意一個(gè)時(shí)刻最多緩沖3個(gè)幀。另外,在增加當(dāng)前視頻速率之前,過(guò)程300可以確定先前是否提高了視頻傳輸速率(312)。如果先前提高了視頻傳輸速率(312),則增加傳輸速率調(diào)節(jié)量(314)。例如,如果遠(yuǎn)程端已經(jīng)處理了先前傳輸速率增加,則遠(yuǎn)程端可以能夠處理更多的數(shù)據(jù)??梢哉{(diào)節(jié)傳輸速率增加的增量以更好地適應(yīng)遠(yuǎn)程端處的最終用戶體驗(yàn)。在某些示例中,可以將傳輸速率調(diào)節(jié)量增加某個(gè)數(shù)量(例如,100kbps)或者當(dāng)前傳輸速率的百分比。不管是否修改速率調(diào)節(jié)量,都增加當(dāng)前視頻速率(316)。在某些實(shí)現(xiàn)中,可以指示媒體播放器應(yīng)用增加視頻輸出質(zhì)量或者增加VBR。在某些實(shí)現(xiàn)中,如果媒體編碼器編碼分層視頻數(shù)據(jù),則可以指示媒體編碼器向遠(yuǎn)程端提供較高質(zhì)量的編碼層。在對(duì)視頻數(shù)據(jù)傳輸速率進(jìn)行修改之后,過(guò)程300返回收集與已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息(302)。返回階段(310),如果中間量與當(dāng)前視頻速率相比不高,則過(guò)程300確定中間量與當(dāng)前視頻速率相比是否較低(318)。例如,可以將協(xié)議棧中緩沖的編碼數(shù)據(jù)量與字節(jié)或者分組的閾值數(shù)目進(jìn)行比較。如果該比較在可接受的范圍內(nèi),則過(guò)程300返回收集與已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息(302)。例如,該過(guò)程可以確定當(dāng)前傳輸速率與遠(yuǎn)程端的消耗能力處于良好平衡。例如,協(xié)議棧內(nèi)百分之十到百分之二十之間的平均數(shù)可被視為指示傳輸速率與可用帶寬處于良好平衡。
在某些實(shí)現(xiàn)中,計(jì)算可以基于幀 速率的百分比。例如,基于30fps的幀速率,適宜量可以與100到200毫秒之間的數(shù)據(jù)積累相關(guān)聯(lián)。從幀總數(shù)的角度考慮該示例,基于30fps 的幀速率,在任意一個(gè)時(shí)刻最多可以緩沖6個(gè)幀。另外,在某些示例中,過(guò)程300可以監(jiān)測(cè)所緩沖的幀的平均數(shù)目(例如,平均不多于3個(gè)或者4個(gè))。相反,如果沒(méi)有發(fā)現(xiàn)相比較低,則減小當(dāng)前視頻傳輸速率(320)。在某些實(shí)現(xiàn)中,可以指示媒體播放器應(yīng)用減小視頻輸出質(zhì)量或者減小VBR。在某些實(shí)現(xiàn)中,如果媒體編碼器編碼分層視頻數(shù)據(jù),則可以指示媒體編碼器向遠(yuǎn)程端提供較低質(zhì)量的編碼層。例如,如果協(xié)議棧中已經(jīng)積累了多于百分之二十的已編碼視頻數(shù)據(jù),則可以確定傳輸速率減小是有益的。在某些實(shí)現(xiàn)中,如果發(fā)現(xiàn)相比較非常低(例如,存在網(wǎng)絡(luò)溢出),則可以將傳輸速率臨時(shí)設(shè)置為遠(yuǎn)遠(yuǎn)低于估計(jì)協(xié)議棧排出速率。例如,為了允許積累的視頻數(shù)據(jù)排出,可以將傳輸速率重新指派為所計(jì)算的協(xié)議棧排出速率的75%。在網(wǎng)絡(luò)溢出期間,在某些實(shí)現(xiàn)中,可以將傳輸速率重置為先前確定為有益的傳輸速率(例如,速率增加之前的傳輸速率),而不是調(diào)節(jié)速率調(diào)節(jié)量。另外,在減小當(dāng)前傳輸速率之后,過(guò)程300可以確定先前是否增加了視頻傳輸速率(322)。例如,先前應(yīng)用的速率調(diào)節(jié)量可能過(guò)大,超過(guò)了遠(yuǎn)程端的消耗能力。如果這樣,則降低速率調(diào)節(jié)量(324)。在某些實(shí)現(xiàn)中,將速率調(diào)節(jié)量降低將其先前提高的百分比量。在某些實(shí)現(xiàn)中,可以將速率調(diào)節(jié)量重置為初始速率調(diào)節(jié)量,或者將其減小先前提高的相同量。在對(duì)傳輸速率進(jìn)行調(diào)節(jié)并且可選地調(diào)節(jié)了速率調(diào)節(jié)量之后,過(guò)程返回收集與已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息(302)。在某些實(shí)現(xiàn)中,可以在降低傳輸速率之前減小速率調(diào)節(jié)量。例如,為了精細(xì)地調(diào)整當(dāng)前視頻速率的調(diào)節(jié)以最佳地匹配遠(yuǎn)程端的消耗能力,當(dāng)前視頻速率可以減小較小的量, 與減小的速率調(diào)節(jié)量相對(duì)應(yīng)。圖4是用于通過(guò)基于活躍共享實(shí)時(shí)流式傳輸媒體的端的數(shù)目而在端對(duì)端傳送和客戶端_服務(wù)器傳送之間切換協(xié)議傳送機(jī)制來(lái)增強(qiáng)媒體播放器端點(diǎn)之間的媒體質(zhì)量的示例過(guò)程400的流程圖。例如,在視頻會(huì)議會(huì)話期間,用于在各個(gè)媒體播放器端點(diǎn)之間通信的網(wǎng)絡(luò)連接可以根據(jù)參與視頻會(huì)議會(huì)話的數(shù)目而改變。過(guò)程400開始于打開與第一端計(jì)算設(shè)備的端對(duì)端連接(402)。該連接例如可以包括點(diǎn)對(duì)點(diǎn)流式傳輸媒體連接,諸如視頻會(huì)議應(yīng)用。只要端的數(shù)目不超過(guò)最大閾值(406),便向端對(duì)端連接添加附加的端(404)。在某些實(shí)現(xiàn)中,最大閾值可以由端對(duì)端連接可用的帶寬確定。例如,對(duì)于每個(gè)附加端,P2P帶寬分配在參與方之間分割。當(dāng)P2P帶寬分配變得太小以至于無(wú)法為每個(gè)參與方提供足夠的最終用戶體驗(yàn)時(shí),已經(jīng)達(dá)到閾值。在某些實(shí)現(xiàn)中,最大閾值可以是參與方的默認(rèn)數(shù)目。例如,基于參與方之間的最小公分母消耗速率,向每個(gè)參與方提供的帶寬可以是相同的。在某些實(shí)現(xiàn)中,如果基于例如每個(gè)參與方的處理能力或者網(wǎng)絡(luò)連接類型而提供不同的分層比特流質(zhì)量水平,則最大閾值可以基于接收每種服務(wù)水平的參與方的數(shù)目。例如,給定的P2P連接可以能夠以增強(qiáng)的質(zhì)量速率服務(wù)于兩個(gè)遠(yuǎn)程端計(jì)算設(shè)備,或者以基本的質(zhì)量速率服務(wù)于四個(gè)遠(yuǎn)程端計(jì)算設(shè)備。作為另一示例,當(dāng)不止三個(gè)客戶端參與時(shí),可以將端對(duì)端通信切換到客戶端_服務(wù)器架構(gòu)。當(dāng)?shù)竭_(dá)端的最大閾值時(shí)(406),將每個(gè)端對(duì)端連接重新配置為客戶端-服務(wù)器傳送(408)。可以關(guān)閉過(guò)程400執(zhí)行的端點(diǎn)之間的P2P傳送機(jī)制以及每個(gè)遠(yuǎn)程參與方,并且代之以構(gòu)造客戶端-服務(wù)器傳送機(jī)制。在某些實(shí)現(xiàn)中,過(guò)程400可以拒絕添加新的端,而不是接受附加端并且重新配置連接。例如,特定系統(tǒng)配置(諸如,特定的云計(jì)算配置)可以不為服務(wù)器中繼的媒體提供機(jī)會(huì)。通過(guò)阻止添加多于閾值數(shù)目的端,系統(tǒng)可以繼續(xù)提供端對(duì)端媒體共享。圖5是用于執(zhí)行直接連接的媒體播放器端點(diǎn)之間的媒體質(zhì)量增強(qiáng)的示例裝置500 的框圖。數(shù)據(jù)處理裝置510可以包括硬件525、固件515和軟件505,并且可以包括一個(gè)或多個(gè)媒體播放 器程序520、媒體編碼器522和流量?jī)?yōu)化器524,其與數(shù)據(jù)處理裝置510結(jié)合操作以實(shí)現(xiàn)本說(shuō)明書中描述的各種操作。媒體播放器程序520、媒體編碼器522和流量?jī)?yōu)化器524與數(shù)據(jù)處理裝置510的各個(gè)硬件525、固件515和軟件505組件相結(jié)合,表示系統(tǒng) 500中的一個(gè)或多個(gè)結(jié)構(gòu)組件,其中可以實(shí)現(xiàn)在此描述的算法。媒體播放器程序520可以是用于輸入、處理和/或輸出媒體內(nèi)容(例如,音頻、視頻、圖形和/或文本數(shù)據(jù))的一個(gè)或多個(gè)應(yīng)用。媒體播放器程序520可以輸入來(lái)自相機(jī)設(shè)備575以及可選的麥克風(fēng)設(shè)備的媒體信息。媒體播放器程序520可以向諸如顯示設(shè)備570 以及可選的一個(gè)或多個(gè)揚(yáng)聲器一個(gè)或多個(gè)輸出設(shè)備輸出媒體信息,輸出設(shè)備和。應(yīng)用是指用戶視為用于定義目的的不同計(jì)算機(jī)工具的計(jì)算機(jī)程序。應(yīng)用可以完全在操作系統(tǒng)或者其他操作環(huán)境中構(gòu)建,或者其可以具有不同位置處的不同的組件(例如,遠(yuǎn)程服務(wù)器)。媒體播放器程序520可以包括其他軟件或者與其對(duì)接。在某些示例中,媒體播放器程序520 可以包括獨(dú)立媒體播放器程序、依賴于運(yùn)行時(shí)環(huán)境來(lái)操作(例如,JAVA 虛擬機(jī)或者 Adobe AIR 運(yùn)行時(shí)環(huán)境)的媒體播放器程序、或者可以是獨(dú)立的、基于瀏覽器的或者基于運(yùn)行時(shí)環(huán)境的多個(gè)不同的媒體播放器程序。還可以包括接口軟件,其在網(wǎng)絡(luò)上操作以用于與諸如視頻會(huì)議會(huì)話中與數(shù)據(jù)處理裝置510通信的遠(yuǎn)程端使用的計(jì)算機(jī)中的其他處理器對(duì)接。例如,媒體編碼器522可以包括用于向通過(guò)網(wǎng)絡(luò)可訪問(wèn)的另一計(jì)算機(jī)傳輸媒體數(shù)據(jù)的軟件方法,其使用端對(duì)端數(shù)據(jù)連接以到達(dá)遠(yuǎn)程端計(jì)算設(shè)備。流量?jī)?yōu)化器524可以對(duì)接在媒體編碼器522與媒體播放器程序520之間,或者以其他方式在流式傳輸媒體會(huì)話期間與媒體編碼器522以及可選的媒體播放器程序520合作,用以增強(qiáng)端計(jì)算設(shè)備處的媒體質(zhì)量。數(shù)據(jù)處理裝置510的硬件級(jí)525包括一個(gè)或多個(gè)處理器530、存儲(chǔ)器580和至少一個(gè)計(jì)算機(jī)可讀介質(zhì)540 (例如,隨機(jī)訪問(wèn)存儲(chǔ)器、存儲(chǔ)設(shè)備等)。硬件級(jí)525還可以包括一個(gè)或多個(gè)輸入/輸出設(shè)備550,其包括一個(gè)或多個(gè)用戶接口設(shè)備。每個(gè)組件530、540、550和580使用系統(tǒng)總線590互連。處理器530可以處理用于在系統(tǒng)500內(nèi)執(zhí)行的指令。在某些實(shí)現(xiàn)中,處理器530內(nèi)可以包括一個(gè)或多個(gè)單線程處理器。在其他實(shí)現(xiàn)中,處理器530內(nèi)可以包括一個(gè)或多個(gè)多線程處理器。在某些實(shí)現(xiàn)中,處理器530可以處理存儲(chǔ)在存儲(chǔ)器580中或者存儲(chǔ)設(shè)備540上的指令,以在顯示設(shè)備570上顯示圖形信息。存儲(chǔ)器580可以是用于在系統(tǒng)500內(nèi)存儲(chǔ)信息的計(jì)算機(jī)可讀介質(zhì),并且可以包括易失性存儲(chǔ)器單元、非易失性存儲(chǔ)器單元或者二者。存儲(chǔ)設(shè)備540可以為系統(tǒng)500提供海量存儲(chǔ)。存儲(chǔ)設(shè)備540可以包括軟盤設(shè)備、硬盤設(shè)備、光盤設(shè)備或者磁帶設(shè)備。
輸入/輸出設(shè)備550為系統(tǒng)500提供輸入/輸出操作。作為少數(shù)示例,輸入/輸出設(shè)備550可以包括鍵盤、鼠標(biāo)、觸筆或者定點(diǎn)設(shè)備、用于顯示圖形用戶接口的顯示單元(諸如顯示設(shè)備570)、相機(jī)(諸如相機(jī)設(shè)備575)、調(diào)制解調(diào)器或者其他聯(lián)網(wǎng)硬件/固件,或者其任何組合。本說(shuō)明書中描述的主題還可以與其他輸入/輸出設(shè)備(諸如打印機(jī)或者掃描儀) 結(jié)合使用。輸入/輸出設(shè)備可以用于向網(wǎng)絡(luò)連接,并且另外可以經(jīng)由網(wǎng)絡(luò)(例如,因特網(wǎng)) 向一個(gè)或多個(gè)處理器連接。因此,媒體 播放器程序520、媒體編碼器522或者流量?jī)?yōu)化器524的用戶不需要是本地的,并且可以使用個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、智能電話(例如,包括操作系統(tǒng)和高級(jí)計(jì)算能力的蜂窩電話)上的互聯(lián)網(wǎng)或者內(nèi)聯(lián)網(wǎng)連接,或者使用遠(yuǎn)程位置處的其他適合硬件和軟件,以有線或者無(wú)線的方式連接。例如,用戶可以經(jīng)由遠(yuǎn)程處理器訪問(wèn)web接口, 以加入視頻會(huì)議會(huì)話。在任何情況下,可以通過(guò)網(wǎng)絡(luò)向/從數(shù)據(jù)處理裝置510傳輸數(shù)據(jù)。注意,數(shù)據(jù)處理裝置510本身可以視為用戶接口設(shè)備(例如,當(dāng)由作為web服務(wù)的遠(yuǎn)程服務(wù)器實(shí)現(xiàn)媒體播放器程序520或者流量?jī)?yōu)化器524時(shí))。系統(tǒng)500可以用于生成并且通過(guò)P2P數(shù)據(jù)通信傳輸向遠(yuǎn)程端提供基于幀的媒體內(nèi)容,同時(shí)基于感知到的遠(yuǎn)程端計(jì)算設(shè)備的消耗能力來(lái)動(dòng)態(tài)調(diào)節(jié)傳輸速率。例如,在媒體播放器程序520生成媒體數(shù)據(jù)期間,可以由流量?jī)?yōu)化器524以統(tǒng)計(jì)收集調(diào)度收集與媒體播放器程序520產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息以及與媒體編碼器522向傳輸層網(wǎng)絡(luò)協(xié)議棧遞送的已編碼視頻數(shù)據(jù)的量有關(guān)的第二信息,并且臨時(shí)存儲(chǔ)在存儲(chǔ)器580內(nèi),該統(tǒng)計(jì)收集調(diào)度例如基于系統(tǒng)500所維護(hù)的系統(tǒng)時(shí)鐘值(例如,處理器時(shí)鐘輸出)??梢韵蚨擞?jì)算設(shè)備傳輸媒體內(nèi)容,該端計(jì)算設(shè)備經(jīng)由網(wǎng)絡(luò)連接于數(shù)據(jù)處理裝置510連接?;趯?duì)所收集的統(tǒng)計(jì)的分析,流量?jī)?yōu)化器524可以調(diào)節(jié)媒體內(nèi)容的傳輸速率,以更好地滿足端計(jì)算設(shè)備的消耗能力,以便緩解網(wǎng)絡(luò)擁塞。本說(shuō)明書中描述的主題和操作的實(shí)施方式可以在包括本說(shuō)明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等效物的數(shù)字電子電路、或者在計(jì)算機(jī)軟件、固件或者硬件,或者其一個(gè)或多個(gè)的組合中實(shí)現(xiàn)。本說(shuō)明書中描述的主題的實(shí)施方式可以實(shí)現(xiàn)為編碼在計(jì)算機(jī)存儲(chǔ)介質(zhì)上的一個(gè)或多個(gè)計(jì)算機(jī)程序,即一個(gè)或多個(gè)計(jì)算機(jī)程序指令模塊,以用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作。備選地或者附加地,程序質(zhì)量可以編碼在人為生成的傳播信號(hào) (例如,機(jī)器生成的電、光或者電磁信號(hào))上,其生成用于編碼信息以用于向適當(dāng)?shù)慕邮諜C(jī)傳輸,以便由數(shù)據(jù)處理裝置執(zhí)行。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)襯底、隨機(jī)或者序列訪問(wèn)存儲(chǔ)器陣列或者設(shè)備或者其一個(gè)或多個(gè)的組合,或者包括在其中。另外,雖然計(jì)算機(jī)存儲(chǔ)介質(zhì)不是傳播信號(hào),但是計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是編碼在人為生成的傳播信號(hào)中的計(jì)算機(jī)程序指令的源或者目的地。計(jì)算機(jī)存儲(chǔ)介質(zhì)還可以是一個(gè)或多個(gè)獨(dú)立的物理組件或者介質(zhì)(例如,多個(gè)⑶、盤或者其他存儲(chǔ)設(shè)備),或者包括在其中。本說(shuō)明書中描述的操作可以實(shí)現(xiàn)為數(shù)據(jù)處理裝置對(duì)存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)設(shè)備上或者從其他源接收的數(shù)據(jù)執(zhí)行的操作。術(shù)語(yǔ)“數(shù)據(jù)處理裝置”包括用于處理數(shù)據(jù)的所有種類的裝置、設(shè)備和機(jī)器,以示例的方式包括可編程處理器、計(jì)算機(jī)、片上系統(tǒng)或者以上中的多個(gè)或者組合。裝置可以包括專用邏輯電路,例如FPGA(線程可編程門陣列) 或者ASIC(專用集成電路)。除了硬件以外,裝置還可以包括創(chuàng)建用于考慮中的計(jì)算機(jī)程序的運(yùn)行環(huán)境的代碼,例如,構(gòu)建處理器固件、協(xié)議棧、數(shù)據(jù)庫(kù)管 理系統(tǒng)、操作系統(tǒng)、跨平臺(tái)運(yùn)行時(shí)環(huán)境、虛擬機(jī)或者其一個(gè)或多個(gè)的組合的代碼。裝置和運(yùn)行環(huán)境可以實(shí)現(xiàn)各種不同的計(jì)算模型基礎(chǔ)架構(gòu),諸如web服務(wù)、分布式計(jì)算和網(wǎng)格計(jì)算基礎(chǔ)架構(gòu)。計(jì)算機(jī)程序(也稱為程序、軟件、軟件應(yīng)用、腳本或者代碼)可以以任何形式的編程語(yǔ)言(包括編譯或者解釋語(yǔ)言、聲明或者過(guò)程語(yǔ)言)編寫,并且其可以部署在任何形式中,包括獨(dú)立程序或者模塊、組件、子例程、對(duì)象或者適于在計(jì)算環(huán)境中使用的其他單元。計(jì)算機(jī)程序可以但不必與文件系統(tǒng)中的文件相對(duì)應(yīng)。程序可以存儲(chǔ)在保持其他程序或者數(shù)據(jù)的文件部分(例如,存儲(chǔ)在標(biāo)記語(yǔ)言文檔中的一個(gè)或多個(gè)腳本)、專用于考慮中的程序的單個(gè)文件或者多個(gè)協(xié)作的文件(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、子程序或者代碼部分的文件) 中。計(jì)算機(jī)程序可以部署用于在一個(gè)計(jì)算機(jī)或者位于一個(gè)站點(diǎn)或者跨多個(gè)站點(diǎn)分布并且通過(guò)通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行。本說(shuō)明書中描述的過(guò)程和邏輯流可以由一個(gè)或多個(gè)可編程處理器執(zhí)行,其執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序以通過(guò)對(duì)輸入數(shù)據(jù)進(jìn)行操作并且生成輸出來(lái)執(zhí)行動(dòng)作。過(guò)程和邏輯流還可以由專用邏輯電路來(lái)執(zhí)行,并且裝置也可以實(shí)現(xiàn)為專用邏輯電路,例如FPGA(現(xiàn)場(chǎng)可編程門陣列)或者ASIC(專用集成電路)。適于執(zhí)行計(jì)算機(jī)程序的處理器例如可以包括通用和專用微處理器二者,以及任何類型的數(shù)字計(jì)算機(jī)的任何一個(gè)或多個(gè)處理器。一般而言,處理器將接收來(lái)自只讀存儲(chǔ)器或者隨機(jī)訪問(wèn)存儲(chǔ)器或者二者的指令和數(shù)據(jù)。計(jì)算機(jī)的主要元件是根據(jù)指令執(zhí)行動(dòng)作的處理器以及用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。一般而言,計(jì)算機(jī)還將包括或者可操作地耦合以接收來(lái)自用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)海量存儲(chǔ)設(shè)備(例如,磁、磁光盤或者光盤)的數(shù)據(jù)或者向其傳送數(shù)據(jù)或者二者。然而,計(jì)算機(jī)不需要具有此類設(shè)備。另外,計(jì)算機(jī)可以嵌入在另一設(shè)備中,例如移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、移動(dòng)音頻或者視頻播放器、 游戲機(jī)、全球定位系統(tǒng)(GPS)接收機(jī)或者便攜式存儲(chǔ)設(shè)備(例如,通用串行總線(USB)閃速驅(qū)動(dòng)器),僅作為示例。適于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的設(shè)備包括所有形式的非易失性存儲(chǔ)器、媒體和存儲(chǔ)器設(shè)備,以示例的形式包括半導(dǎo)體存儲(chǔ)器設(shè)備,例如EPROM、EEPROM和閃速存儲(chǔ)器設(shè)備;磁盤,例如內(nèi)部硬盤或者可移動(dòng)盤;磁光盤;以及CD-ROM和DVD-ROM盤。處理器和存儲(chǔ)器可以由專用邏輯電路進(jìn)行補(bǔ)充或者并入其中。為了提供與用戶的交互,本說(shuō)明書中描述的主題的實(shí)施方式可以在計(jì)算機(jī)上實(shí)現(xiàn),計(jì)算機(jī)具有用于向用戶顯示信息的顯示設(shè)備(例如,CRT (陰極射線管)或者LCD (液晶顯示)監(jiān)視器)以及用戶可以通過(guò)其向計(jì)算機(jī)提供輸入的定點(diǎn)設(shè)備,例如鼠標(biāo)或者軌跡球。 其他種類的設(shè)備也可以用于提供與用戶的交互;例如,向用戶提供的反饋可以是任何形式的感覺(jué)反饋,例如視覺(jué)反饋、聽覺(jué)反饋或者觸覺(jué)反饋;并且來(lái)自用戶的輸入可以按照任何形式接收,包括聲音、語(yǔ)音或者觸覺(jué)輸入。另外,計(jì)算機(jī)可以通過(guò)向用戶使用的設(shè)備發(fā)送文檔或者從其接收文檔而與用戶交互;例如,通過(guò)響應(yīng)于從用戶的客戶端設(shè)備上的web瀏覽器接收的請(qǐng)求,向web瀏覽器發(fā)送web頁(yè)面。本說(shuō)明書中描述的主題的實(shí)施方式可以在包括后端組件(例如作為數(shù)據(jù)服務(wù)器) 或者包括中間件組件,(例如,應(yīng)用服務(wù)器)或者包括前端組件(例如具有圖形用戶接口或者Web瀏覽器的客戶端計(jì)算機(jī))的計(jì)算系統(tǒng)中實(shí)現(xiàn),用戶可以通過(guò)其與本說(shuō)明書中描述的主題的實(shí)現(xiàn)交互,或者一個(gè)或多個(gè)此類后端、中間件或者前端組件的任意組合。系統(tǒng)的組件可以通過(guò)數(shù)字?jǐn)?shù)據(jù)通信的任何形式或者介質(zhì)(例如,通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)和廣域網(wǎng)(“WAN”)、互聯(lián)網(wǎng)絡(luò)(例如,因特網(wǎng))和端對(duì)端網(wǎng)絡(luò)(例如, ad hoc端對(duì)端網(wǎng)絡(luò))。計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器通常彼此遠(yuǎn)離并且通常通過(guò)通信網(wǎng)絡(luò)進(jìn)行交互??蛻舳撕头?wù)器的關(guān)系借助于相應(yīng)計(jì)算機(jī)上運(yùn)行并且彼此具有客戶端_服務(wù)器關(guān)系的計(jì)算機(jī)程序來(lái)體現(xiàn)。在某些實(shí)施方式中,服務(wù)器向客戶端設(shè)備傳輸數(shù)據(jù) (例如,HTML頁(yè)面)(例如,用于向與客戶端設(shè)備交互的用戶顯示數(shù)據(jù)或者從其接收用戶 輸入的目的)??梢栽诜?wù)器處從客戶端設(shè)備接收客戶端設(shè)備處生成的數(shù)據(jù)(例如,用戶交互的結(jié)果)。雖然本說(shuō)明書包含很多特定實(shí)現(xiàn)細(xì)節(jié),但是這些不應(yīng)當(dāng)視為對(duì)本發(fā)明或者可以要求保護(hù)的范圍的限制,而是作為特定于本發(fā)明的特定實(shí)施方式的特征的描述。本說(shuō)明書在獨(dú)立實(shí)施方式的上下文中描述的特定特征可以在單個(gè)實(shí)施方式中組合實(shí)現(xiàn)。相反,在單個(gè)實(shí)施方式的上下文中描述的各種特征也可以在多個(gè)實(shí)施方式中或者在任意適當(dāng)?shù)淖咏M合中分開實(shí)現(xiàn)。另外,雖然上文可以將特征描述為在特定組合中進(jìn)行并且甚至初始如此要求保護(hù),但是在某些情況下,所要求保護(hù)的組合中的一個(gè)或多個(gè)特征可以從組合中去除,并且所要求保護(hù)的組合可以旨在子組合或者子組合的變體。類似地,雖然附圖中以特定次序描繪了操作,但是這不應(yīng)理解為需要以所示出的特定次序或者順序執(zhí)行此類操作或者執(zhí)行所有示出的操作來(lái)達(dá)到期望的結(jié)果。在某些情況下,多任務(wù)和并行處理可以是有益的。另外,上文描述的實(shí)施方式中的各個(gè)系統(tǒng)組件的獨(dú)立不應(yīng)當(dāng)理解為在所有實(shí)施方式中需要此類獨(dú)立,并且應(yīng)當(dāng)理解,所描述的程序組件和系統(tǒng)通??梢砸黄鸺稍趩蝹€(gè)軟件產(chǎn)品中或者封裝為多個(gè)軟件產(chǎn)品。由此,描述了本發(fā)明的特定實(shí)施方式。其他實(shí)施方式也在所附權(quán)利要求的范圍內(nèi)。 在某些情況下,權(quán)利要求中限定的動(dòng)作可以按照不同的次序來(lái)執(zhí)行并且仍然達(dá)到期望的結(jié)果。另外,附圖中繪出的過(guò)程未必需要所示出的特定次序或者順序來(lái)達(dá)到期望的結(jié)果。在某些實(shí)現(xiàn)中,多任務(wù)和并行處理可以是有益的。
權(quán)利要求
1.一種方法,包括在發(fā)送設(shè)備處收集信息,所述信息包括 與視頻編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息,以及與向傳輸層網(wǎng)絡(luò)協(xié)議棧遞送但尚未由所述傳輸層網(wǎng)絡(luò)協(xié)議棧傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的第二信息;根據(jù)所述第一信息計(jì)算產(chǎn)生的已編碼視頻數(shù)據(jù)的中間量,以及根據(jù)所述第一信息和所述第二信息計(jì)算所述傳輸層網(wǎng)絡(luò)協(xié)議棧的已編碼視頻數(shù)據(jù)傳輸速率;以及當(dāng)所述中間量與針對(duì)向所述視頻編碼器提供的視頻數(shù)據(jù)而設(shè)置的當(dāng)前視頻速率相比較高時(shí),將所述當(dāng)前視頻速率增加速率調(diào)節(jié)量,當(dāng)所述已編碼視頻數(shù)據(jù)傳輸速率與所述當(dāng)前視頻速率相比較低時(shí),減小所述當(dāng)前視頻速率,否則,維持所述當(dāng)前視頻速率。
2.根據(jù)權(quán)利要求1所述的方法,還包括 當(dāng)所述當(dāng)前視頻速率被增加不止一次時(shí), 提高所述速率調(diào)節(jié)量,當(dāng)所述已編碼視頻數(shù)據(jù)傳輸速率與所述當(dāng)前視頻速率相比較低并且所述視頻速率先前被增加時(shí),降低所述速率調(diào)節(jié)量, 否則,維持所述速率調(diào)節(jié)量。
3.根據(jù)權(quán)利要求2所述的方法,其中減小所述當(dāng)前視頻速率包括將所述當(dāng)前視頻速率設(shè)置為低于所述已編碼視頻數(shù)據(jù)傳輸速率的值,并且其中所述速率調(diào)節(jié)量在所述當(dāng)前視頻速率減小之后被降低。
4.根據(jù)權(quán)利要求2所述的方法,其中所述收集根據(jù)第一時(shí)間間隔而周期性地執(zhí)行,所述計(jì)算根據(jù)第二時(shí)間間隔而周期性地執(zhí)行,所述第二時(shí)間間隔至少比所述第一時(shí)間間隔長(zhǎng)五倍,所述當(dāng)前視頻速率是當(dāng)前視頻比特率,并且所述中間量是所述產(chǎn)生的已編碼視頻數(shù)據(jù)的移動(dòng)平均。
5.根據(jù)權(quán)利要求2所述的方法,其中所述傳輸層網(wǎng)絡(luò)協(xié)議棧符合包括端對(duì)端連接性特征的傳輸層網(wǎng)絡(luò)協(xié)議,所述方法還包括打開所述發(fā)送設(shè)備與第一端設(shè)備之間的端對(duì)端連接,所述端對(duì)端連接允許所述發(fā)送設(shè)備與所述第一端設(shè)備之間的實(shí)時(shí)視頻協(xié)同;向所述實(shí)時(shí)視頻協(xié)同添加一個(gè)或多個(gè)附加端設(shè)備,每個(gè)附加端設(shè)備通過(guò)附加端對(duì)端連接與所述發(fā)送設(shè)備通信;確定端設(shè)備的總數(shù)目超過(guò)預(yù)定義數(shù)目;以及基于所述確定,將每個(gè)端對(duì)端連接重新配置為使用客戶端_服務(wù)器傳送機(jī)制。
6.根據(jù)權(quán)利要求2所述的方法,其中通過(guò)應(yīng)用編程接口(API)從媒體播 放器運(yùn)行時(shí)環(huán)境收集所述第一信息和所述第二信息,所述媒體播放器運(yùn)行環(huán)境通過(guò)所述傳輸層網(wǎng)絡(luò)協(xié)議棧提供端對(duì)端連接性特征,其包括數(shù)據(jù)優(yōu)先級(jí)設(shè)置特征,所述數(shù)據(jù)優(yōu)先級(jí)設(shè)置特征允許音頻數(shù)據(jù)的優(yōu)先級(jí)設(shè)置在視頻數(shù)據(jù)之上,所述傳輸層網(wǎng)絡(luò)協(xié)議棧具有關(guān)聯(lián)的音頻數(shù)據(jù)緩沖區(qū)和關(guān)聯(lián)的視頻數(shù)據(jù)緩沖區(qū),所述音頻數(shù)據(jù)緩沖區(qū)與所述視頻數(shù)據(jù)緩沖區(qū)分離,并且所述產(chǎn)生的已編碼視頻數(shù)據(jù)包括分層視頻。
7.一種編碼計(jì)算機(jī)程序產(chǎn)品的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序產(chǎn)品可操作用于使得數(shù)據(jù)處理裝置執(zhí)行包括以下的操作在發(fā)送設(shè)備處收集信息,所述信息包括 與視頻編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息,以及與向傳輸層網(wǎng)絡(luò)協(xié)議棧遞送但尚未由所述傳輸層網(wǎng)絡(luò)協(xié)議棧傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的第二信息;根據(jù)所述第一信息計(jì)算產(chǎn)生的已編碼視頻數(shù)據(jù)的中間量,以及根據(jù)所述第一信息和所述第二信息計(jì)算所述傳輸層網(wǎng)絡(luò)協(xié)議棧的已編碼視頻數(shù)據(jù)傳輸速率;以及當(dāng)所述中間量與針對(duì)向所述視頻編碼器提供的視頻數(shù)據(jù)而設(shè)置的當(dāng)前視頻速率相比較高時(shí),將所述當(dāng)前視頻速率增加速率調(diào)節(jié)量,當(dāng)所述已編碼視頻數(shù)據(jù)傳輸速率與所述當(dāng)前視頻速率相比較低時(shí),減小所述當(dāng)前視頻速率,否則,維持所述當(dāng)前視頻速率。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)可讀介質(zhì),其中所述操作還包括 當(dāng)所述當(dāng)前視頻速率被增加不止一次時(shí),提高所述速率調(diào)節(jié)量,當(dāng)所述已編碼視頻數(shù)據(jù)傳輸速率與所述當(dāng)前視頻速率相比較低并且所述視頻速率先前被增加時(shí),降低所述速率調(diào)節(jié)量, 否則,維持所述速率調(diào)節(jié)量。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其中減小所述當(dāng)前視頻速率包括將所述當(dāng)前視頻速率設(shè)置為低于所述已編碼視頻數(shù)據(jù)傳輸速率的值,并且其中所述速率調(diào)節(jié)量在所述當(dāng)前視頻速率減小之后被降低。
10.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其中所述收集根據(jù)第一時(shí)間間隔而周期性地執(zhí)行,所述計(jì)算根據(jù)第二時(shí)間間隔而周期性地執(zhí)行,所述第二時(shí)間間隔至少比所述第一時(shí)間間隔長(zhǎng)五倍,所述當(dāng)前視頻速率是當(dāng)前視頻比特率,并且所述中間量是所述產(chǎn)生的已編碼視頻數(shù)據(jù)的移動(dòng)平均。
11.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其中所述傳輸層網(wǎng)絡(luò)協(xié)議棧符合包括端對(duì)端連接性特征的傳輸層網(wǎng)絡(luò)協(xié)議,并且其中所述操作還包括打開所述發(fā)送設(shè)備與第一端設(shè)備之間的端對(duì)端連接,所述端對(duì)端連接允許所述發(fā)送設(shè)備與所述第一端設(shè)備之間的實(shí)時(shí)視頻協(xié)同;向所述實(shí)時(shí)視頻協(xié)同添加一個(gè)或多個(gè)附加端設(shè)備,每個(gè)附加端設(shè)備通過(guò)附加端對(duì)端連接與所述發(fā)送設(shè)備通信;確定端設(shè)備的總數(shù)目超過(guò)預(yù)定義數(shù)目;以及基于所述確定,將每個(gè)端對(duì)端連接重新配置為使用客戶端-服務(wù)器傳送機(jī)制。
12.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其中通過(guò)應(yīng)用編程接口(API)從媒體播放器運(yùn)行時(shí)環(huán)境收集所述第一信息和所述第二信息,所述媒體播放器運(yùn)行環(huán)境通過(guò)所述傳輸層網(wǎng)絡(luò)協(xié)議棧提供端對(duì)端連接性特征,其包括數(shù)據(jù)優(yōu)先級(jí)設(shè)置特征,所述數(shù)據(jù)優(yōu)先級(jí)設(shè)置特征允許音頻數(shù)據(jù)的優(yōu)先級(jí)設(shè)置在視頻數(shù)據(jù)之上,所述傳輸層網(wǎng)絡(luò)協(xié)議棧具有關(guān)聯(lián)的音頻數(shù)據(jù)緩沖區(qū)和關(guān)聯(lián)的視頻數(shù)據(jù)緩沖區(qū),所述音頻數(shù)據(jù)緩沖區(qū)與所述視頻數(shù)據(jù)緩沖區(qū)分離,并且所述產(chǎn)生的已編碼視頻數(shù)據(jù)包括分層視頻。
13.一種系統(tǒng),包括接口設(shè)備;網(wǎng)絡(luò)連接;以及計(jì)算機(jī),其與所述接口設(shè)備和所述網(wǎng)絡(luò)連接耦合,并且編程有包括媒體編碼器、音頻數(shù)據(jù)緩沖區(qū)和視頻數(shù)據(jù)緩沖區(qū)的運(yùn)行時(shí)環(huán)境,所述音頻數(shù)據(jù)緩沖區(qū)與所述視頻數(shù)據(jù)緩沖區(qū)分離,并且所述運(yùn)行時(shí)環(huán)境配置用于基于響應(yīng)于所提供的與所述媒體編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)并且與向所述視頻數(shù)據(jù)緩沖區(qū)遞送但尚未被傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的輸出而接收的輸入,來(lái)增強(qiáng)傳輸?shù)拿襟w質(zhì)量。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),還包括流量?jī)?yōu)化框架,其配置用于根據(jù)第一時(shí)間間隔周期性地收集所述媒體編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量以及向所述視頻數(shù)據(jù)緩沖區(qū)遞送但尚未被傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量,所述流量?jī)?yōu)化框架確定用于增強(qiáng)所傳輸媒體質(zhì)量的速率調(diào)節(jié)量,其中所述確定包括根據(jù)第二時(shí)間間隔,根據(jù)所述媒體編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量,周期性地計(jì)算產(chǎn)生的已編碼視頻數(shù)據(jù)的中間量,以及根據(jù)所述媒體編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量以及向所述視頻數(shù)據(jù)緩沖區(qū)遞送但尚未被傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量,周期性地計(jì)算來(lái)自所述視頻緩沖區(qū)的已編碼視頻數(shù)據(jù)傳輸速率,將所述中間量與當(dāng)前視頻速率進(jìn)行比較,其中當(dāng)所述中間量與針對(duì)向所述視頻編碼器提供的視頻數(shù)據(jù)而設(shè)置的當(dāng)前視頻速率相比較高時(shí),將當(dāng)前視頻速率增加速率調(diào)節(jié)量,當(dāng)所述已編碼視頻數(shù)據(jù)傳輸速率與所述當(dāng)前視頻速率相比較低時(shí),將所述當(dāng)前視頻速率減小所述速率調(diào)節(jié)量,否則,維持所述當(dāng)前視頻速率,以及響應(yīng)于所述當(dāng)前視頻速率的改變,向所述運(yùn)行時(shí)環(huán)境提供與所述當(dāng)前視頻速率有關(guān)的輸入。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中當(dāng)所述當(dāng)前傳輸速率被增加不止一次時(shí), 提高所述速率調(diào)節(jié)量,當(dāng)所述已編碼視頻數(shù)據(jù)傳輸速率與所述當(dāng)前視頻速率相比較低并且所述視頻速率先前被增加時(shí),降低所述速率調(diào)節(jié)量, 否則,維持所述速率調(diào)節(jié)量。
16.根據(jù)權(quán)利要求14所述的系統(tǒng),其中減小所述當(dāng)前視頻速率包括將所述當(dāng)前視頻速率設(shè)置為低于所述已編碼視頻數(shù)據(jù)傳輸速率的值,并且其中所述速率調(diào)節(jié)在所述當(dāng)前視頻速率減小之后被降低。
17.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述第二時(shí)間間隔至少比所述第一時(shí)間間隔長(zhǎng)五倍, 所述當(dāng)前視頻速率是當(dāng)前視頻比特率,以及所述中間量是所述產(chǎn)生的已編碼視頻數(shù)據(jù)的移動(dòng)平均。
18.根據(jù)權(quán)利要求14所述的系統(tǒng),還包括傳輸層網(wǎng)絡(luò)協(xié)議棧,其符合包括端對(duì)端連接性特征的傳輸層網(wǎng)絡(luò)協(xié)議,所述傳輸層網(wǎng)絡(luò)協(xié)議棧包括所述音頻數(shù)據(jù)緩沖區(qū)和所述視頻數(shù)據(jù)緩沖區(qū),并且所述產(chǎn)生的已編碼視頻數(shù)據(jù)包括分層視頻,其中所述運(yùn)行時(shí)環(huán)境進(jìn)一步配置用于打開所述系統(tǒng)與第一端設(shè)備之間的端對(duì)端連接,所述端對(duì)端連接允許所述系統(tǒng)與所述第一端設(shè)備之間的實(shí)時(shí)視頻協(xié)同;向所述實(shí)時(shí)視頻協(xié)同添加一個(gè)或多個(gè)附加端設(shè)備,每個(gè)附加端設(shè)備通過(guò)附加端對(duì)端連接與所述系統(tǒng)通信;確定端設(shè)備的總數(shù)目超過(guò)預(yù)定義數(shù)目;以及基于所述確定,將每個(gè)端對(duì)端連接重新配置為使用客戶端-服務(wù)器傳送機(jī)制。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中所述傳輸層網(wǎng)絡(luò)協(xié)議棧包括數(shù)據(jù)優(yōu)先級(jí)設(shè)置特征,其允許所述音頻數(shù)據(jù)緩沖區(qū)中積累的音頻數(shù)據(jù)的優(yōu)先級(jí)設(shè)置在所述視頻數(shù)據(jù)緩沖區(qū)中積累的視頻數(shù)據(jù)之上。
20.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述流量?jī)?yōu)化框架通過(guò)所述運(yùn)行時(shí)環(huán)境的應(yīng)用編程接口(API)收集所述媒體編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量以及向所述視頻數(shù)據(jù)緩沖區(qū)遞送但尚未被傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量。
全文摘要
本發(fā)明的實(shí)施方式涉及連接的媒體通信設(shè)備間的媒體質(zhì)量增強(qiáng)。在一個(gè)方面,一種方法包括在發(fā)送設(shè)備處收集信息,該信息包括與視頻編碼器產(chǎn)生的已編碼視頻數(shù)據(jù)的量有關(guān)的第一信息以及與向傳輸層網(wǎng)絡(luò)協(xié)議棧遞送但尚未由其傳輸?shù)囊丫幋a視頻數(shù)據(jù)的量有關(guān)的第二信息;根據(jù)第一信息計(jì)算產(chǎn)生的已編碼視頻數(shù)據(jù)的中間量,以及根據(jù)第一信息和第二信息計(jì)算傳輸層網(wǎng)絡(luò)協(xié)議棧的已編碼視頻數(shù)據(jù)傳輸速率;以及如果中間量與針對(duì)向視頻編碼器提供的視頻數(shù)據(jù)而設(shè)置的當(dāng)前視頻速率相比較高,則將當(dāng)前視頻速率增加速率調(diào)節(jié)量,如果已編碼視頻數(shù)據(jù)傳輸速率與當(dāng)前視頻速率相比較低,則減小當(dāng)前視頻速率,否則,維持當(dāng)前視頻速率。
文檔編號(hào)H04L29/08GK102223516SQ201110097488
公開日2011年10月19日 申請(qǐng)日期2011年4月13日 優(yōu)先權(quán)日2010年4月14日
發(fā)明者J·瓦斯 申請(qǐng)人:奧多比公司