技術(shù)領(lǐng)域
本發(fā)明涉及視頻數(shù)據(jù)的處理。
背景技術(shù):
視頻電話(VT)涉及運(yùn)載音頻和視頻數(shù)據(jù)的包的實(shí)時(shí)通信。VT裝置包含從視頻捕獲裝置(例如攝像機(jī)或視頻存檔)獲得視頻的視頻編碼器,且產(chǎn)生視頻包。類似地,VT裝置中的音頻編碼器從例如麥克風(fēng)或語音合成器等音頻捕獲裝置獲得音頻并且產(chǎn)生音頻包。將所述視頻包和音頻包放入無線電鏈路協(xié)議(RLP)隊(duì)列中。媒體接入控制(MAC)層單元從RLP隊(duì)列的內(nèi)容產(chǎn)生媒體接入控制(MAC)層包。將MAC層包轉(zhuǎn)換成物理(PHY)層包,以在通信信道上發(fā)射到另一VT裝置。
在移動(dòng)VT應(yīng)用中,VT裝置經(jīng)由從基站到作為無線終端的VT裝置的無線前向鏈路(FL)(或“下行鏈路”)接收物理層包。VT裝置經(jīng)由無線反向鏈路(RL)(或“上行鏈路”)將PHY層包發(fā)射到基站。每一VT裝置包含PHY和MAC層以轉(zhuǎn)換接收到的PHY和MAC層包,且將包有效負(fù)載重新組合到音頻包和視頻包中。VT裝置內(nèi)的視頻解碼器對(duì)所述視頻數(shù)據(jù)進(jìn)行解碼,以供經(jīng)由顯示裝置呈現(xiàn)給用戶。VT裝置內(nèi)的音頻解碼器對(duì)所述音頻數(shù)據(jù)進(jìn)行解碼,以用于經(jīng)由音頻揚(yáng)聲器輸出。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)涉及基于網(wǎng)絡(luò)條件確定用于編碼數(shù)據(jù)的位速率。舉例來說,本發(fā)明的各方面涉及響應(yīng)于網(wǎng)絡(luò)鏈路速率的降低,將發(fā)送位速率(也簡(jiǎn)稱為速率)從第一速率降低為第二速率。根據(jù)本發(fā)明的方面,在識(shí)別到網(wǎng)絡(luò)鏈路速率的降低后,發(fā)送器裝置可使發(fā)送速率降低到低于第二網(wǎng)絡(luò)鏈路速率的減小的速率,(例如)下沖所述第二網(wǎng)絡(luò)鏈路速率。所述發(fā)送器裝置可在基于減小的速率且基于識(shí)別網(wǎng)絡(luò)鏈路速率的降低與對(duì)網(wǎng)絡(luò)鏈路速率的降低作出反應(yīng)之間的持續(xù)時(shí)間的時(shí)間周期內(nèi),使發(fā)送速率維護(hù)在減小的速率,在所述時(shí)間周期期間,在所述發(fā)送器裝置處或在與所述網(wǎng)絡(luò)相關(guān)聯(lián)的另一裝置處緩沖數(shù)據(jù)。以此方式,所述發(fā)送器裝置可相對(duì)快速地以網(wǎng)絡(luò)鏈路速率減少在減小期間已緩沖的數(shù)據(jù)的量,而不過度影響用戶體驗(yàn)。
本發(fā)明的方面還涉及在其中不完全利用網(wǎng)絡(luò)鏈路速率的實(shí)例中增加發(fā)送速率。舉例來說,根據(jù)本發(fā)明的方面,一種接收器裝置可基于在安排數(shù)據(jù)播出的時(shí)間之前在接收器裝置處接收到的所述數(shù)據(jù),來確定網(wǎng)絡(luò)鏈路速率未充分利用。接收器裝置可基于接收到數(shù)據(jù)的時(shí)間與安排所述數(shù)據(jù)播出的時(shí)間之間的時(shí)間差來確定可允許的過多延遲參數(shù)。接收器裝置可根據(jù)可允許的過多延遲參數(shù)來確定發(fā)送速率增加。在一些情況下,接收器裝置可將發(fā)送速率增加的指示發(fā)射到發(fā)送器裝置,使得所述發(fā)送器裝置可更好地利用網(wǎng)絡(luò)鏈路速率,而不超過所述網(wǎng)絡(luò)鏈路速率。
在實(shí)例中,一種處理數(shù)據(jù)的方法包含:經(jīng)由網(wǎng)絡(luò)以第一位速率發(fā)射數(shù)據(jù);識(shí)別所述網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路速率從第一網(wǎng)絡(luò)鏈路速率到第二網(wǎng)絡(luò)鏈路速率的降低;響應(yīng)于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低,確定經(jīng)由網(wǎng)絡(luò)發(fā)射數(shù)據(jù)的恢復(fù)位速率,其中所述恢復(fù)位速率小于第二網(wǎng)絡(luò)鏈路速率;基于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低的時(shí)間與網(wǎng)絡(luò)鏈路速率的降低的所估計(jì)實(shí)際時(shí)間之間的差來確定緩沖持續(xù)時(shí)間;以及基于所述恢復(fù)位速率和緩沖持續(xù)時(shí)間,確定其間以恢復(fù)位速率發(fā)射所述數(shù)據(jù)的恢復(fù)速率持續(xù)時(shí)間。
在另一實(shí)例中,一種處理數(shù)據(jù)的裝置包含:存儲(chǔ)器,其經(jīng)配置以存儲(chǔ)數(shù)據(jù);以及一或多個(gè)處理器,所述一或多個(gè)處理器經(jīng)配置以:經(jīng)由網(wǎng)絡(luò)以第一位速率發(fā)射所述數(shù)據(jù);識(shí)別所述網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路速率從第一網(wǎng)絡(luò)鏈路速率到第二網(wǎng)絡(luò)鏈路速率的降低;響應(yīng)于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低,確定經(jīng)由所述網(wǎng)絡(luò)發(fā)射所述數(shù)據(jù)的恢復(fù)位速率,其中所述恢復(fù)位速率小于第二網(wǎng)絡(luò)鏈路速率;基于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低的時(shí)間與網(wǎng)絡(luò)鏈路速率的降低的所估計(jì)實(shí)際時(shí)間之間的差來確定緩沖持續(xù)時(shí)間;且基于所述恢復(fù)位速率和所述緩沖持續(xù)時(shí)間,來確定其間以恢復(fù)位速率發(fā)射所述數(shù)據(jù)的恢復(fù)率持續(xù)時(shí)間。
在另一實(shí)例中,一種用于處理數(shù)據(jù)的設(shè)備包含:用于經(jīng)由網(wǎng)絡(luò)以第一位速率發(fā)射數(shù)據(jù)的裝置;用于識(shí)別所述網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路速率從第一網(wǎng)絡(luò)鏈路速率到第二網(wǎng)絡(luò)鏈路速率的降低的裝置;用于響應(yīng)于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低而確定經(jīng)由所述網(wǎng)絡(luò)發(fā)射數(shù)據(jù)的恢復(fù)位速率的裝置,其中所述恢復(fù)位速率小于第二網(wǎng)絡(luò)鏈路速率;用于基于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低的時(shí)間與網(wǎng)絡(luò)鏈路速率的降低的所估計(jì)實(shí)際時(shí)間之間的差來確定緩沖持續(xù)時(shí)間的裝置;以及用于基于所述恢復(fù)位速率和所述緩沖持續(xù)時(shí)間來確定其間以所述恢復(fù)位速率來發(fā)射所述數(shù)據(jù)的恢復(fù)率持續(xù)時(shí)間的裝置。
在另一實(shí)例中,一種非暫時(shí)性計(jì)算機(jī)可讀媒體上面存儲(chǔ)有指令,所述指令在被執(zhí)行時(shí),致使一或多個(gè)處理器:經(jīng)由網(wǎng)絡(luò)以第一位速率發(fā)射數(shù)據(jù);識(shí)別所述網(wǎng)絡(luò)的網(wǎng)絡(luò)鏈路速率從第一網(wǎng)絡(luò)鏈路速率到第二網(wǎng)絡(luò)鏈路速率的降低;響應(yīng)于識(shí)別到所述網(wǎng)絡(luò)鏈路速率的降低,確定經(jīng)由所述網(wǎng)絡(luò)發(fā)射所述數(shù)據(jù)的恢復(fù)位速率,其中所述恢復(fù)位速率小于所述第二網(wǎng)絡(luò)鏈路速率;基于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低的時(shí)間與網(wǎng)絡(luò)鏈路速率的降低的所估計(jì)實(shí)際時(shí)間之間的差來確定緩沖持續(xù)時(shí)間;且基于所述恢復(fù)位速率和所述緩沖持續(xù)時(shí)間來確定其間以所述恢復(fù)位速率發(fā)射所述數(shù)據(jù)的恢復(fù)率持續(xù)時(shí)間。
在另一實(shí)例中,一種處理數(shù)據(jù)的方法包含:通過接收器裝置,基于接收器裝置接收到所接收數(shù)據(jù)的時(shí)間與安排所述接收到的數(shù)據(jù)播出的時(shí)間之間的差,來確定可允許的過多延遲參數(shù),其中所述可允許的過多延遲參數(shù)指示發(fā)送器裝置與接收器裝置之間的信道可支持的延遲的量;通過接收器裝置,基于所述所確定的可允許的過多延遲參數(shù),確定用于增加將從所述發(fā)送器裝置向接收器裝置發(fā)送數(shù)據(jù)的位速率的發(fā)送器位速率增加;以及將所述發(fā)送器位速率增加的指示發(fā)射到所述發(fā)送器裝置。
在另一實(shí)例中,一種用于處理數(shù)據(jù)的接收器裝置包含:存儲(chǔ)器,其經(jīng)配置存儲(chǔ)數(shù)據(jù);以及一或多個(gè)處理器,其經(jīng)配置以:基于接收器裝置接收到所述數(shù)據(jù)的時(shí)間與安排所述數(shù)據(jù)播出的時(shí)間之間的差,來確定可允許的過多延遲參數(shù),其中所述可允許的過多延遲參數(shù)指示發(fā)送器裝置與接收器裝置之間的信道可支持的延遲的量;基于所述所確定的可允許的過多延遲參數(shù),確定用于增加將從所述發(fā)送器裝置向接收器裝置發(fā)送數(shù)據(jù)的位速率的發(fā)送器位速率增加;且將所述發(fā)送器位速率增加的指示發(fā)射到所述發(fā)送器裝置。
在另一實(shí)例中,一種用于處理數(shù)據(jù)的設(shè)備包含:用于基于接收器裝置接收到所接收數(shù)據(jù)的時(shí)間與安排所述接收到的數(shù)據(jù)播出的時(shí)間之間的差來確定可允許的過多延遲參數(shù)的裝置,其中所述可允許的過多延遲參數(shù)指示發(fā)送器裝置與接收器裝置之間的信道可支持的延遲的量;用于基于所述所確定的可允許的過多延遲參數(shù)來確定用于增加將從所述發(fā)送器裝置向接收器裝置發(fā)送數(shù)據(jù)的位速率的發(fā)送器位速率增加的裝置;以及用于將所述發(fā)送器位速率增加的指示發(fā)射到所述發(fā)送器裝置的裝置。
在另一實(shí)例中,一種非暫時(shí)性計(jì)算機(jī)可讀媒體上面存儲(chǔ)有指令,所述指令在被執(zhí)行時(shí),致使一或多個(gè)處理器:基于接收器裝置接收到所述所接收數(shù)據(jù)的時(shí)間與安排所述數(shù)據(jù)播出的時(shí)間之間的差,來確定可允許的過多延遲參數(shù),其中所述可允許的過多延遲參數(shù)指示發(fā)送器裝置與接收器裝置之間的信道可支持的延遲的量;基于所述所確定的可允許的過多延遲參數(shù),確定用于增加將從所述發(fā)送器裝置向接收器裝置發(fā)送數(shù)據(jù)的位速率的發(fā)送器位速率增加;且將所述發(fā)送器位速率增加的指示發(fā)射到所述發(fā)送器裝置。
在附圖和下文描述中陳述本發(fā)明的一或多個(gè)實(shí)例的細(xì)節(jié)。其它特征、目標(biāo)和優(yōu)點(diǎn)將從所述描述、圖式以及所附權(quán)利要求書顯而易見。
附圖說明
圖1是說明用于視頻電話(VT)應(yīng)用的音頻/視頻編碼和解碼系統(tǒng)的框圖。
圖2是說明可實(shí)施符合本發(fā)明的技術(shù)的視頻源速率適應(yīng)的視頻編碼系統(tǒng)的框圖。
圖3是說明可實(shí)施符合本發(fā)明的技術(shù)的視頻源速率適應(yīng)的視頻解碼系統(tǒng)的框圖。
圖4A和4B是說明符合本發(fā)明的技術(shù)的視頻源速率適應(yīng)技術(shù)的曲線圖。
圖5是說明符合本發(fā)明的技術(shù)的緩沖持續(xù)時(shí)間的確定的概念圖。
圖6A和6B是分別說明網(wǎng)絡(luò)鏈路速率減小和對(duì)應(yīng)延遲時(shí)間的曲線圖。
圖7A和7B分別是說明網(wǎng)絡(luò)鏈路速率減小和對(duì)應(yīng)延遲時(shí)間的曲線圖。
圖8是說明符合本發(fā)明的技術(shù)的用于向下切換發(fā)射數(shù)據(jù)的速率的實(shí)例過程的流程圖。
圖9是說明符合本發(fā)明的技術(shù)的用于向上切換發(fā)射數(shù)據(jù)的速率的實(shí)例過程的流程圖。
具體實(shí)施方式
可經(jīng)由用于進(jìn)行VT會(huì)話(例如在VT裝置之間發(fā)射音頻和/或視頻數(shù)據(jù))的有線或無線網(wǎng)絡(luò)來連接視頻電話(VT)裝置。處理音頻和/或視頻數(shù)據(jù)以發(fā)射到另一VT裝置的VT裝置可被稱為發(fā)送器裝置。同樣地,處理接收到的音頻和/或視頻數(shù)據(jù)(例如以供呈現(xiàn)給VT裝置的用戶)的VT裝置可被稱為接收器裝置。
發(fā)送器裝置可以特定速率(其在本文中可互換地被稱作位速率)編碼音頻和/或視頻數(shù)據(jù)。發(fā)送器裝置可基于網(wǎng)絡(luò)條件來選擇所述速率。舉例來說,發(fā)送器裝置可基于正用于VT會(huì)話的網(wǎng)絡(luò)所支持的最大(或近最大)網(wǎng)絡(luò)鏈路速率來選擇所述速率。以此方式,發(fā)送器裝置可使用網(wǎng)絡(luò)所支持的的相對(duì)最高質(zhì)量來準(zhǔn)備待發(fā)送的數(shù)據(jù),而不超過所述網(wǎng)絡(luò)的限制。
在一些情況下,連接VT裝置的網(wǎng)絡(luò)鏈路速率可變化,尤其是在經(jīng)由例如Wi-Fi或蜂窩式網(wǎng)絡(luò)等無線網(wǎng)絡(luò)使用VT時(shí)。在一些情況下,網(wǎng)絡(luò)設(shè)備可使用緩沖器來處置鏈路速率波動(dòng)和/或執(zhí)行隊(duì)列管理。舉例來說,發(fā)送器裝置可包含用于在將所述數(shù)據(jù)發(fā)射到接收器裝置之前緩沖經(jīng)編碼的音頻和/或視頻數(shù)據(jù)的緩沖器。網(wǎng)絡(luò)鏈路速率的突然降低可導(dǎo)致可不利地影響VT會(huì)話的瓶頸。舉例來說,當(dāng)網(wǎng)絡(luò)鏈路速率降低時(shí),發(fā)送器裝置累加緩沖器中的經(jīng)編碼視頻數(shù)據(jù),其可導(dǎo)致接收器裝置處的VT會(huì)話中的中斷和/或急動(dòng)。
發(fā)送器裝置可響應(yīng)于網(wǎng)絡(luò)鏈路速率的降低而更改發(fā)送視頻數(shù)據(jù)的速率(其在本文中可被稱作發(fā)送速率,正貫穿本發(fā)明用來指代位速率的速率)。在一些實(shí)例中,發(fā)送器裝置可通過改變編碼音頻和/或視頻數(shù)據(jù)的速率來更改發(fā)送速率。然而,歸因于接收器裝置擁塞控制反饋延遲、從接收器裝置到發(fā)送器裝置的返回路徑中的延遲、速率適應(yīng)反應(yīng)延遲或類似者,降低所述速率時(shí)可能存在反應(yīng)延遲。因此,在網(wǎng)絡(luò)鏈路速率的降低之后某一時(shí)間周期內(nèi),發(fā)送速率可保持顯著高于網(wǎng)絡(luò)鏈路速率。發(fā)送速率和網(wǎng)絡(luò)鏈路速率的失配可導(dǎo)致瓶頸鏈路處增加的緩沖器等級(jí),且因此增加的端對(duì)端延遲(或甚至丟失的包),這可不利地影響VT會(huì)話的質(zhì)量體驗(yàn)。
另外,即使在發(fā)送器裝置響應(yīng)于網(wǎng)絡(luò)鏈路速率的降低而減小發(fā)送速率之后,所建立的延遲可持續(xù)一段時(shí)間。舉例來說,一般來說,延遲可指數(shù)據(jù)可用于跨網(wǎng)絡(luò)鏈路發(fā)射與所述數(shù)據(jù)實(shí)際上發(fā)射到所述網(wǎng)絡(luò)的時(shí)間之間的時(shí)間。因此,延遲可與數(shù)據(jù)的緩沖相關(guān)聯(lián)。舉例來說,延遲的增加導(dǎo)致增加的緩沖器等級(jí),因?yàn)樵诰幋a之后且在發(fā)射到所述網(wǎng)絡(luò)之前,必須存儲(chǔ)數(shù)據(jù)。
取決于發(fā)送速率與瓶頸網(wǎng)絡(luò)鏈路速率之間的差,發(fā)送器裝置可相對(duì)緩慢地減少經(jīng)緩沖數(shù)據(jù)的數(shù)量。就是說,如果降低的發(fā)送速率與網(wǎng)絡(luò)鏈路速率之間的差相對(duì)較小,那么發(fā)送器裝置可相對(duì)緩慢地減少所建立的延遲,且對(duì)VT會(huì)話的影響可持續(xù)。
減少經(jīng)緩沖數(shù)據(jù)的數(shù)量的一種方法是使發(fā)送速率降低到低于所估計(jì)的網(wǎng)絡(luò)鏈路速率。例如使用顯著低于所估計(jì)的網(wǎng)絡(luò)鏈路速率的發(fā)送速率的相對(duì)保守的方法可導(dǎo)致鏈路的使用不足,以及接收器裝置處的視頻質(zhì)量體驗(yàn)的總體降低。然而,此類保守方法也可相對(duì)快速地減少瓶頸鏈路緩沖器。相反,例如僅使發(fā)送速率降低到網(wǎng)絡(luò)鏈路速率的相對(duì)積極的方法可導(dǎo)致鏈路和較高質(zhì)量經(jīng)編碼數(shù)據(jù)的充分使用。然而,如上所述,此方法可致使數(shù)據(jù)在緩沖器中保持相對(duì)較長(zhǎng)的時(shí)間周期。
本發(fā)明的各方面涉及基于網(wǎng)絡(luò)條件來確定發(fā)送速率(例如用于在發(fā)送器裝置處編碼音頻和/或視頻數(shù)據(jù)的位速率)。明確地說,所述技術(shù)包含響應(yīng)于網(wǎng)絡(luò)鏈路速率的降低而降低發(fā)送速率。根據(jù)本發(fā)明的方面,在識(shí)別到降低的網(wǎng)絡(luò)鏈路速率后,發(fā)送器裝置可即刻使發(fā)送速率降低到低于網(wǎng)絡(luò)鏈路速率的速率。在一些實(shí)例中,接收器裝置可請(qǐng)求接著由發(fā)送器裝置實(shí)施的降低的發(fā)送速率。使發(fā)送速率降低到低于網(wǎng)絡(luò)鏈路速率的速率可被稱為下沖網(wǎng)絡(luò)鏈路速率。
所述技術(shù)還包含確定使發(fā)送速率維護(hù)在降低的速率的時(shí)間量。在一些實(shí)例中,本發(fā)明的各方面包含:基于緩沖持續(xù)時(shí)間、網(wǎng)絡(luò)鏈路速率的降低的量值、速率降低因子和/或其它因素,來確定恢復(fù)速率持續(xù)時(shí)間(還被稱作下沖周期),如下文更詳細(xì)描述。以此方式,所述技術(shù)可用于確定最佳下沖周期。舉例來說,在返回到所述網(wǎng)絡(luò)所支持的增加的發(fā)送速率之前,發(fā)送器裝置可使降低的發(fā)送速率維持僅減少經(jīng)緩沖數(shù)據(jù)的數(shù)量所需的那么長(zhǎng)時(shí)間。所述技術(shù)可實(shí)現(xiàn)保守方法與上文所述的積極方法之間的平衡,使得可相對(duì)快速地減少緩沖的數(shù)據(jù)的量,而不過度影響用戶體驗(yàn)。
本發(fā)明的各方面還包含發(fā)信號(hào)通知與處理經(jīng)編碼音頻和/或視頻數(shù)據(jù)相關(guān)聯(lián)的延遲數(shù)據(jù)。本發(fā)明的技術(shù)包含產(chǎn)生數(shù)據(jù)以用于確定發(fā)送器裝置處的緩沖持續(xù)時(shí)間。緩沖持續(xù)時(shí)間可與實(shí)際網(wǎng)絡(luò)鏈路速率的減小與檢測(cè)到所述網(wǎng)絡(luò)鏈路速率的減小的時(shí)間之間的延遲相關(guān)聯(lián)(例如假定發(fā)送器和/或接收器裝置并未立即辨識(shí)到網(wǎng)絡(luò)鏈路速率的減小并對(duì)其作出反應(yīng))。在此滯后時(shí)間期間,發(fā)送器裝置通常緩沖以原始發(fā)送速率準(zhǔn)備/編碼的數(shù)據(jù),但無法以降低的網(wǎng)絡(luò)鏈路速率實(shí)時(shí)(或近實(shí)時(shí))發(fā)送所述數(shù)據(jù)。數(shù)據(jù)的緩沖在接收器裝置處產(chǎn)生延遲,在此期間不接收數(shù)據(jù)。如上所述,可使用緩沖時(shí)間來確定在發(fā)送器裝置處緩沖的數(shù)據(jù)的量和/或恢復(fù)速率持續(xù)時(shí)間。
本發(fā)明的方面可涉及在其中不完全利用網(wǎng)絡(luò)鏈路速率的實(shí)例中增加發(fā)送速率。舉例來說,發(fā)送器裝置可增加數(shù)據(jù)的發(fā)送速率,以增加用戶體驗(yàn)實(shí)例的質(zhì)量,其中所述發(fā)送速率小于將發(fā)送器裝置鏈接到接收器裝置的網(wǎng)絡(luò)可支持的鏈路速率。增加編碼數(shù)據(jù)的位速率在本文中可被稱作向上切換。然而,以過大的增量向上切換發(fā)送速率可導(dǎo)致網(wǎng)絡(luò)鏈路速率的過沖,其可以所描述的方式使用戶體驗(yàn)降級(jí)。相反,以過小的增量向上切換發(fā)送速率可導(dǎo)致網(wǎng)絡(luò)鏈路速率的持續(xù)下沖,這可導(dǎo)致所述網(wǎng)絡(luò)鏈路速率可支持的較低質(zhì)量用戶體驗(yàn)。
根據(jù)本發(fā)明的方面,一種接收器裝置可基于在安排數(shù)據(jù)播出的時(shí)間之前接收到的數(shù)據(jù)來確定網(wǎng)絡(luò)鏈路速率未充分利用。接收器裝置可基于接收到數(shù)據(jù)的時(shí)間與安排所述數(shù)據(jù)播出的時(shí)間之間的差來確定可允許的過多延遲參數(shù),且接收器裝置可根據(jù)所述可允許的過多延遲參數(shù)來確定發(fā)送速率增加。在一些情況下,接收器裝置可將發(fā)送速率增加的指示發(fā)射到發(fā)送器裝置,使得發(fā)送器裝置可更好地利用所述網(wǎng)絡(luò)鏈路速率,而不過沖所述網(wǎng)絡(luò)鏈路速率。
因此,本發(fā)明的各方面包含用于控制源自發(fā)送器裝置且經(jīng)由具有時(shí)變帶寬的網(wǎng)絡(luò)信道(還被稱作網(wǎng)絡(luò)鏈路)發(fā)射到接收器裝置的視頻流的速率適應(yīng)或擁塞控制技術(shù)。明確地說,所述技術(shù)包含以受控方式來向上切換視頻流的平均位速率,以改進(jìn)用戶體驗(yàn)而不引入網(wǎng)絡(luò)中的擁塞。此類速率適應(yīng)技術(shù)可避免顯著增加可導(dǎo)致丟包的端對(duì)端延遲。
舉例來說,根據(jù)本發(fā)明的方面,一種接收器裝置可檢查接收到的視頻包,且確定所述數(shù)據(jù)對(duì)于所安排的所述數(shù)據(jù)的播出來說早、準(zhǔn)時(shí)或太遲到達(dá)。如果所述數(shù)據(jù)比既定播出晚到達(dá),那么接收器裝置可確定網(wǎng)絡(luò)鏈路速率低于發(fā)送速率(例如發(fā)送器裝置處所實(shí)施的編碼速率)。因此,接收器裝置可將減小發(fā)送速率的請(qǐng)求發(fā)送到發(fā)送器裝置。在一些實(shí)例中,接收器裝置可請(qǐng)求低于網(wǎng)絡(luò)鏈路速率的可持續(xù)速率(例如可用帶寬)的初始速率,以允許所述系統(tǒng)消除網(wǎng)絡(luò)信道的擁塞。
在一些情況下,本文所述的技術(shù)可由用于IP多媒體子系統(tǒng)(IMS)(MTSI)裝置的多媒體電話服務(wù)執(zhí)行。舉例來說,MTSI裝置可使用本文所述的技術(shù)來執(zhí)行位速率適應(yīng)和/或擁塞控制。
圖1是說明編碼和解碼系統(tǒng)10的框圖。如圖1中所示,系統(tǒng)10包含通過發(fā)射信道16連接的編碼器系統(tǒng)12和解碼器系統(tǒng)14。在圖1的實(shí)例中,編碼器系統(tǒng)12與第一視頻通信裝置相關(guān)聯(lián),且包含音頻源17、視頻源18、視頻編碼器20、音頻編碼器22、實(shí)時(shí)傳輸協(xié)議(RTP)/實(shí)時(shí)傳輸協(xié)議(RTCP)/用戶數(shù)據(jù)報(bào)協(xié)議(UDP)/因特網(wǎng)協(xié)議(IP)/點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)轉(zhuǎn)換單元26、無線電鏈路協(xié)議(RLP)隊(duì)列28、MAC層單元30和物理(PHY)層單元32。解碼器系統(tǒng)14可與另一視頻通信裝置相關(guān)聯(lián),且包含PHY層單元34、MAC層單元36、RLP隊(duì)列38、RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元40、視頻解碼器42、音頻解碼器44、音頻輸出裝置46和視頻輸出裝置48。
如下文更詳細(xì)地描述,編碼器系統(tǒng)12和/或解碼器系統(tǒng)14可使用本發(fā)明的技術(shù)來基于網(wǎng)絡(luò)條件修改編碼速率。舉例來說,視頻編碼器20可至少部分依據(jù)網(wǎng)絡(luò)帶寬來控制視頻源編碼速率。明確地說,視頻編碼器20可響應(yīng)于網(wǎng)絡(luò)鏈路速率的降低而降低視頻和/或音頻數(shù)據(jù)的編碼速率。同樣地,視頻編碼器20可響應(yīng)于網(wǎng)絡(luò)鏈路速率的未充分利用的指示而增加視頻和/或音頻數(shù)據(jù)的編碼速率。
系統(tǒng)10可經(jīng)由發(fā)射信道16提供雙向視頻和音頻發(fā)射,例如用于視頻電話。因此,可在信道16的相對(duì)端上提供通?;ツ娴木幋a、解碼和轉(zhuǎn)換單元。在一些實(shí)施例中,編碼器系統(tǒng)12和解碼器系統(tǒng)14可實(shí)施于視頻通信裝置內(nèi),例如裝備用于視頻串流、視頻電話或兩者的無線移動(dòng)終端。移動(dòng)終端可根據(jù)例如RTP、RTCP、UDP、IP或PPP的包交換標(biāo)準(zhǔn)來支持VT。
舉例來說,在編碼器系統(tǒng)12處,RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元26將適當(dāng)?shù)腞TP/RTCP/UDP/IP/PPP標(biāo)頭數(shù)據(jù)添加到從視頻編碼器20和音頻編碼器22接收到的音頻和視頻數(shù)據(jù),并將所述數(shù)據(jù)放置在RLP隊(duì)列28中。實(shí)例位流可包含MAC標(biāo)頭、IP標(biāo)頭、UDP標(biāo)頭、RTCP標(biāo)頭和有效負(fù)荷數(shù)據(jù)。在一些實(shí)例中,RTP/RTCP在UDP之上運(yùn)行,而UDP在IP之上運(yùn)行,且IP在PPP之上運(yùn)行。在一些實(shí)例中,如本文所述的,符合特定標(biāo)準(zhǔn)的RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元26,例如“RFC 3550:RTP:實(shí)時(shí)應(yīng)用程序的輸送協(xié)議”,H.舒茨萊寧(H.Schulzrinne)等人,2003年7月;“RFC 5104:RTP具備反饋的視聽(AVPF)中的編解碼器控制消息”,S.威戈(S.Wenger)等人,2008年2月(下文RFC 5104),和/或用于數(shù)據(jù)的實(shí)時(shí)或近實(shí)時(shí)輸送的其它適用標(biāo)準(zhǔn)。MAC層單元30從RLP隊(duì)列28的內(nèi)容中產(chǎn)生MAC RLP包。PHY層單元32將MAC RLP包轉(zhuǎn)換成PHY層包以在信道16上發(fā)射。
解碼器系統(tǒng)14的PHY層單元34和MAC層單元36以互逆方式操作。PHY層單元34將從信道16接收到的PHY層包轉(zhuǎn)換成MAC RLP包。MAC層單元36將MAC RLP包放入RLP隊(duì)列38中。RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元40從RLP隊(duì)列38中的數(shù)據(jù)除去標(biāo)頭信息,并且重新組合視頻和音頻數(shù)據(jù)以分別傳遞到視頻解碼器42和音頻解碼器44。
系統(tǒng)10可經(jīng)設(shè)計(jì)以支持一或多個(gè)無線通信技術(shù),例如碼分多址(CDMA)、頻分多址(FDMA)、時(shí)分多址(TDMA),或正交頻分多路復(fù)用(OFDM)或另一合適的無線技術(shù)。以上無線通信技術(shù)可根據(jù)多種無線電接入技術(shù)中的任一者提供。舉例來說,可根據(jù)cdma2000或?qū)拵DMA(WCDMA)標(biāo)準(zhǔn)來提供CDMA。TDMA可根據(jù)全球移動(dòng)通信系統(tǒng)(GSM)標(biāo)準(zhǔn)提供。通用移動(dòng)通信系統(tǒng)(UMTS)標(biāo)準(zhǔn)準(zhǔn)許GSM或WCDMA操作。通常,對(duì)于VT應(yīng)用,系統(tǒng)10可設(shè)計(jì)成支持高數(shù)據(jù)速率(HDR)技術(shù)。
視頻編碼器20根據(jù)例如MPEG-4、高級(jí)視頻譯碼(HEVC)或另一視頻譯碼標(biāo)準(zhǔn)的視頻壓縮方法產(chǎn)生經(jīng)編碼視頻數(shù)據(jù)。其它視頻壓縮方法包含國際電信聯(lián)盟(ITU)H.263、ITU H.264或MPEG-2方法。音頻編碼器22可對(duì)音頻數(shù)據(jù)進(jìn)行編碼以伴隨視頻數(shù)據(jù)。視頻源18可為視頻捕獲裝置,例如一或多個(gè)攝像機(jī)、一或多個(gè)視頻存檔,或攝像機(jī)與視頻存檔的組合。
可根據(jù)例如自適應(yīng)多速率窄帶(AMR-NB)或其它技術(shù)等音頻壓縮方法來編碼音頻數(shù)據(jù)。音頻源17可為例如麥克風(fēng)等音頻捕獲裝置或語音合成器裝置。對(duì)于VT應(yīng)用,視頻將準(zhǔn)許一方觀看VT會(huì)議,且音頻將準(zhǔn)許該方的說話聲被聽到。
在操作中,RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元26從視頻編碼器20和音頻編碼器22獲得視頻和音頻數(shù)據(jù)包。如先前所提到,RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元26將適當(dāng)?shù)臉?biāo)頭信息添加到音頻包,并將所得數(shù)據(jù)插入RLP隊(duì)列28內(nèi)。同樣地,RTP/RTCP/UDP/IP/PPP轉(zhuǎn)換單元26將適當(dāng)?shù)臉?biāo)頭信息添加到視頻包,并將所得數(shù)據(jù)插入RLP隊(duì)列28內(nèi)。MAC層單元30從RLP隊(duì)列28檢索數(shù)據(jù),并形成MAC層包。每個(gè)MAC層包運(yùn)載RLP隊(duì)列28內(nèi)所含有的RTP/RTCP/UDP/IP/PPP標(biāo)頭信息以及音頻或視頻包數(shù)據(jù)。音頻包可獨(dú)立于視頻包而被插入到RLP隊(duì)列28中。
在一些情況下,從RLP隊(duì)列28的內(nèi)容產(chǎn)生的MAC層包將僅運(yùn)載標(biāo)頭信息和視頻包數(shù)據(jù)。在其它情況下,MAC層包將僅運(yùn)載標(biāo)頭信息和音頻包數(shù)據(jù)。在許多情況下,MAC層包將取決于RLP隊(duì)列28的內(nèi)容而運(yùn)載標(biāo)頭信息、音頻包數(shù)據(jù)和視頻包數(shù)據(jù)。MAC層包可根據(jù)無線電鏈路協(xié)議(RLP)進(jìn)行配置,并且可稱為MAC RLP包。PHY層單元32將MAC RLP音頻-視頻包轉(zhuǎn)換成PHY層包以在信道16上發(fā)射。
信道16將PHY層包運(yùn)載到解碼器系統(tǒng)14。信道16可為編碼器系統(tǒng)12與解碼器系統(tǒng)14之間的任何物理連接。舉例來說,信道16可為有線連接,例如局域或廣域有線網(wǎng)絡(luò)?;蛘?,如本文所描述,信道16可為無線連接,例如蜂窩式、衛(wèi)星或光學(xué)連接。信道條件可為有線和無線信道的關(guān)注點(diǎn),但對(duì)于在無線信道16上執(zhí)行的移動(dòng)VT應(yīng)用尤其存在問題,其中信道條件可由于時(shí)強(qiáng)時(shí)弱或擁塞而受損。信道16可支持特定網(wǎng)絡(luò)鏈路速率(例如特定帶寬),其可根據(jù)信道條件而波動(dòng)。舉例來說,信道16的特征可在于具有根據(jù)信道條件變化的通過量的反向鏈路(RL)。
一般來說,解碼器系統(tǒng)14的PHY層單元34從PHY層包識(shí)別MAC層包,并且將內(nèi)容重新組合到MAC RLP包中。MAC層單元36接著重新組合MAC RLP包的內(nèi)容,以提供視頻和音頻包來插入RLP隊(duì)列38內(nèi)。RTP/RCTP/UDP/IP/PPP單元40去除伴隨的標(biāo)頭信息,并且將視頻包提供到視頻解碼器42,且將音頻包提供到音頻解碼器44。視頻解碼器42對(duì)視頻數(shù)據(jù)幀進(jìn)行解碼,以產(chǎn)生視頻數(shù)據(jù)流以用于驅(qū)動(dòng)顯示裝置。音頻解碼器44對(duì)音頻數(shù)據(jù)進(jìn)行解碼以產(chǎn)生音頻信息以例如經(jīng)由音頻揚(yáng)聲器呈現(xiàn)給用戶。
如上所述,系統(tǒng)10可經(jīng)由發(fā)射信道16提供雙向視頻和音頻發(fā)射,例如用于視頻電話。在一些實(shí)例中,當(dāng)信道16的網(wǎng)絡(luò)鏈路速率變化(這可能在Wi-Fi、蜂窩式或其它網(wǎng)絡(luò)鏈路的情況下發(fā)生)時(shí),可能出現(xiàn)問題。如下文相對(duì)于圖2更詳細(xì)地描述,一或多個(gè)緩沖器可包含于網(wǎng)絡(luò)設(shè)備中,以處置速率波動(dòng)且潛在地執(zhí)行隊(duì)列管理。
舉例來說,具有某一發(fā)送速率(例如視頻編碼器20所使用的編碼速率)的VT流可經(jīng)歷鏈路速率的突然降低,這對(duì)于所述流來說可造成瓶頸。歸因于編碼器系統(tǒng)12處對(duì)此鏈路速率降低的反應(yīng)延遲(例如其可因接收器擁塞控制反饋延遲、從接收器到發(fā)送器的返回路徑上的延遲、速率適應(yīng)反應(yīng)延遲或類似者導(dǎo)致),發(fā)送速率可在某一時(shí)間周期內(nèi)保持顯著高于鏈路速率。這可導(dǎo)致瓶頸鏈路處增加的緩沖器等級(jí),且因此編碼器系統(tǒng)12與解碼器系統(tǒng)14之間增加的端對(duì)端延遲(或甚至丟失的包),這可不利地影響VT會(huì)話的質(zhì)量體驗(yàn)。
在編碼器系統(tǒng)12減小經(jīng)由信道16發(fā)射數(shù)據(jù)的位速率(例如減小發(fā)送速率)之后,所建立的延遲可持續(xù)一段時(shí)間。舉例來說,在一些情況下,所建立的延遲持續(xù)的時(shí)間長(zhǎng)度可取決于發(fā)送速率與降低的鏈路速率(例如導(dǎo)致瓶頸的鏈路速率)之間的差。如果發(fā)送速率的減小太小,所建立的延遲將相對(duì)緩慢地減小,這可影響解碼器系統(tǒng)14處的用戶體驗(yàn)。保守發(fā)送速率方法是以比所估計(jì)的鏈路速率顯著低的速率一致地發(fā)送。然而,此方法可導(dǎo)致信道16處的鏈路的使用不足,以及總體降低的視頻質(zhì)量體驗(yàn)。
根據(jù)本發(fā)明中描述的技術(shù),視頻編碼器20可基于信道16的條件來編碼來自視頻源18的視頻。明確地說,視頻編碼器20可基于信道16處的帶寬的減少而降低編碼速率(在本文中也被稱作發(fā)送速率)。降低編碼速率可在本文中被稱作向下切換。編碼器系統(tǒng)12可在檢測(cè)到信道16處的鏈路速率的有效降低之后,例如在已在編碼器系統(tǒng)12處接收到解碼器系統(tǒng)14處所產(chǎn)生的接收器側(cè)擁塞控制反饋消息之后,臨時(shí)降低在視頻編碼器20處編碼的數(shù)據(jù)的發(fā)送速率。
在一個(gè)實(shí)例中,根據(jù)本發(fā)明的方面,編碼器系統(tǒng)12最初可經(jīng)由信道16以第一位速率發(fā)射數(shù)據(jù)。編碼器系統(tǒng)12可識(shí)別信道16處的網(wǎng)絡(luò)鏈路速率從第一網(wǎng)絡(luò)鏈路速率降低到第二網(wǎng)絡(luò)鏈路速率。在一些實(shí)例中,編碼器系統(tǒng)12可基于從解碼器系統(tǒng)14接收到的一或多個(gè)報(bào)告,識(shí)別網(wǎng)絡(luò)鏈路速率的降低。
根據(jù)本發(fā)明的方面,響應(yīng)于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低,編碼器系統(tǒng)12可確定經(jīng)由信道16發(fā)射所述數(shù)據(jù)的恢復(fù)位速率,其中所述恢復(fù)位速率小于第二網(wǎng)絡(luò)鏈路速率。編碼器系統(tǒng)12還可確定緩沖持續(xù)時(shí)間,其包含識(shí)別到網(wǎng)絡(luò)鏈路速率的降低的時(shí)間與網(wǎng)絡(luò)鏈路速率的降低的所估計(jì)實(shí)際時(shí)間之間的差。舉例來說,如上所述,可存在與識(shí)別延遲且調(diào)整視頻編碼器20編碼數(shù)據(jù)的速率相關(guān)聯(lián)的一些反應(yīng)時(shí)間。編碼器系統(tǒng)12可以初始(較高)網(wǎng)絡(luò)鏈路速率或所述速率附近緩沖由視頻編碼器20編碼的數(shù)據(jù),直到視頻編碼器20有時(shí)間來識(shí)別編碼速率并將其調(diào)整到較低速率為止。
編碼器系統(tǒng)12可基于恢復(fù)位速率和緩沖持續(xù)時(shí)間來確定其間以恢復(fù)位速率發(fā)射所述數(shù)據(jù)的恢復(fù)速率持續(xù)時(shí)間。編碼器系統(tǒng)接著可以恢復(fù)位速率來發(fā)射所述數(shù)據(jù),持續(xù)所述所確定的恢復(fù)速率持續(xù)時(shí)間。以此方式,所述技術(shù)可相對(duì)快速地減少所建立的端對(duì)端延遲,且可在端對(duì)端延遲已降低之后,通過使用可用鏈路速率來保留用戶體驗(yàn)的質(zhì)量(例如與使發(fā)送速率維持在降低的速率持續(xù)延長(zhǎng)的時(shí)間周期相比)。雖然出于實(shí)例的目的相對(duì)于編碼器系統(tǒng)12來描述,應(yīng)理解上文所述的技術(shù)中的某些技術(shù)可另外或替代地由解碼器系統(tǒng)14執(zhí)行。
本發(fā)明的其它技術(shù)包含用于向上切換(例如增加)基于網(wǎng)絡(luò)條件來編碼數(shù)據(jù)的速率的技術(shù)。舉例來說,在“對(duì)向上切換原理的論述(Discussion on Upswitch Principals)”E2EMTSI-S4、S4-AHM215的端對(duì)端視頻速率適應(yīng)的SA4MTSI SWG 4號(hào)電話會(huì)議(2014年6月24日)的陳述期間,(“AHM215”),發(fā)現(xiàn)了向上切換的若干問題。如在“來自E2EMTSI-S4的端對(duì)端視頻速率適應(yīng)的SA4MTSI SWG 4號(hào)電話會(huì)議的報(bào)告(2014年6月24日)”中記錄,Tdoc S4(14)0768,在同意向上切換的原理之前,需要進(jìn)一步論述來調(diào)查來自電話會(huì)議的新理念。
一般來說,AHM215中呈現(xiàn)的模型依靠斜升探測(cè)模型,其可具有不足之處,因?yàn)楫?dāng)所述探測(cè)與信道條件不匹配時(shí),所述探測(cè)可將延遲引入到所述系統(tǒng)中。較穩(wěn)健的模型是允許接收器(例如解碼器系統(tǒng)14)被動(dòng)地測(cè)量信道16的狀態(tài),以確定所述系統(tǒng)中是否可存在過多的容量?;诖?,解碼器系統(tǒng)14可作出所述系統(tǒng)的可持續(xù)速率的較準(zhǔn)確估計(jì)。
AHM215中所呈現(xiàn)的模型還表明兩階段方法,藉此編碼器系統(tǒng)12首先探測(cè)所述信道,來看是否存在較多容量。如果探測(cè)階段成功,那么視頻編碼器20在“斜升階段”期間可更積極地增加其速率。此模型可將相對(duì)大的量的擁塞引入到所述系統(tǒng)中,因?yàn)榫哂袛?shù)據(jù)速率的較小增加的成功探測(cè)可不暗示所述系統(tǒng)可處置大得多的向后增加。實(shí)際上,當(dāng)增加視頻編碼器20的速率以與系統(tǒng)容量匹配時(shí),較穩(wěn)健的方法是首先使速率增加相對(duì)較大的量,接著隨著速率會(huì)聚到信道16所支持的可持續(xù)速率,采取較小的步驟。
為了遵循以上文所描述的方式在可持續(xù)速率上會(huì)聚的潛在地較穩(wěn)健的方法,驅(qū)動(dòng)適應(yīng)(例如發(fā)送器(編碼器系統(tǒng)12)或接收器(解碼器系統(tǒng)14)的實(shí)體必須具有所述系統(tǒng)的可持續(xù)速率的估計(jì)。發(fā)送器可依靠RTCP接收器報(bào)告來檢測(cè)端對(duì)端信道條件,且可計(jì)算凈通過量,盡管歸因于RTCP報(bào)告具有一些測(cè)量延遲。接收器可計(jì)算在包在解碼器系統(tǒng)14處對(duì)于其安排的播出太晚到達(dá)之前可接受的凈通過量和額外延遲量?jī)烧摺R虼?,如果在接收器處?jì)算的相關(guān)度量直接發(fā)送到發(fā)送器,那么實(shí)現(xiàn)接收器驅(qū)動(dòng)的適應(yīng)模型,且可能較穩(wěn)健,且應(yīng)用于確定最小適應(yīng)性能。
根據(jù)本發(fā)明的方面,解碼器系統(tǒng)14在確定信道16處的帶寬未充分利用后,可實(shí)施接收器驅(qū)動(dòng)的速率向上切換技術(shù)。舉例來說,根據(jù)本發(fā)明的方面,解碼器系統(tǒng)14可將數(shù)據(jù)提供到編碼器系統(tǒng)12,所述數(shù)據(jù)提示視頻編碼器20增加編碼速率。
在一些實(shí)例中,根據(jù)本發(fā)明的方面,解碼器系統(tǒng)14可基于解碼器系統(tǒng)14接收到數(shù)據(jù)的時(shí)間與安排所述接收到的數(shù)據(jù)播出的時(shí)間之間的差,來確定可允許的過多延遲參數(shù)。所述可允許的過多延遲參數(shù)可指示在影響用戶體驗(yàn)(例如數(shù)據(jù)太晚到達(dá)而不能在適當(dāng)時(shí)間解碼和播出)之前,信道16可支持的延遲的量。解碼器系統(tǒng)14還可基于所述所確定的可允許的過多延遲參數(shù),來確定用于增加將數(shù)據(jù)從編碼器系統(tǒng)12發(fā)送到解碼器系統(tǒng)14的位速率的發(fā)送器位速率增加。解碼器系統(tǒng)14還可將發(fā)送器位速率增加的指示發(fā)射到編碼器系統(tǒng)12。
以此方式,解碼器系統(tǒng)14可以受控方式來控制視頻流的平均位速率,以改進(jìn)用戶體驗(yàn)而不引入網(wǎng)絡(luò)中的擁塞。所述技術(shù)可避免顯著增加端對(duì)端延遲,端對(duì)端延遲可導(dǎo)致丟包。
圖2是說明可實(shí)施根據(jù)本發(fā)明的技術(shù)的視頻源速率適應(yīng)的編碼器系統(tǒng)12的框圖。如圖2中所示,視頻編碼器20包含視頻編碼引擎50、視頻緩沖器52和視頻速率控制器54。視頻編碼器20還接收網(wǎng)絡(luò)鏈路速率信息56,其可由解碼器系統(tǒng)14準(zhǔn)備(如下文更詳細(xì)描述)。
視頻編碼引擎50從視頻源18獲得視頻數(shù)據(jù),且以視頻速率控制器54控制的速率來編碼所述視頻數(shù)據(jù)。視頻編碼引擎50接著將經(jīng)編碼視頻放入在視頻緩沖器52中。視頻速率控制器54可監(jiān)視視頻緩沖器52的充滿度,且至少部分地基于所述充滿度來控制視頻編碼引擎50所應(yīng)用的視頻編碼速率。另外,如下文更詳細(xì)地描述,視頻速率控制器54可基于網(wǎng)絡(luò)鏈路速率信息56和/或與信道16(圖1)的條件相關(guān)聯(lián)的其它數(shù)據(jù)來控制所述速率。
在一些實(shí)例中,視頻編碼器20可提供通常與編解碼器無關(guān)的視頻源速率控制方案。舉例來說,視頻編碼器20可適合用于根據(jù)HEVC、MPEG4、ITU H.263或ITU H.264的視頻編碼。另外,視頻編碼器20可容易在DSP或嵌入式邏輯芯內(nèi)實(shí)施。在一些實(shí)施例中,視頻編碼器20(例如視頻編碼器20的視頻速率控制器54)可應(yīng)用基于模型的速率控制,例如在ρ域中應(yīng)用視頻塊速率控制。舉例來說,一旦為特定視頻幀建立幀位預(yù)算,就可在使用ρ域速率控制在所述幀內(nèi)的視頻塊(例如譯碼單元(CU)和/或宏塊(MB)之間分配幀位預(yù)算。接著可將個(gè)別MB的ρ域值映射到量化參數(shù)(QP)值。
根據(jù)本發(fā)明的方面,視頻速率控制器54可基于網(wǎng)絡(luò)條件來執(zhí)行速率向下切換。舉例來說,視頻編碼引擎50最初可以第一位速率編碼數(shù)據(jù)以經(jīng)由輸送媒體(例如信道16(圖1))發(fā)射。視頻速率控制器54可識(shí)別網(wǎng)絡(luò)鏈路速率從第一網(wǎng)絡(luò)鏈路速率到第二網(wǎng)絡(luò)鏈路速率的降低。在一些實(shí)例中,視頻速率控制器54可根據(jù)視頻編碼器20處的反饋來識(shí)別網(wǎng)絡(luò)鏈路速率的降低。在其它實(shí)例中,視頻速率控制器54可基于網(wǎng)絡(luò)鏈路速率信息56來識(shí)別網(wǎng)絡(luò)鏈路速率的降低。
響應(yīng)于識(shí)別到網(wǎng)絡(luò)鏈路速率的降低,視頻速率控制器54可確定小于第二(降低的)網(wǎng)絡(luò)鏈路速率的視頻編碼器20的恢復(fù)位速率??墒褂没謴?fù)速率來減少已在網(wǎng)絡(luò)鏈路速率的減小的實(shí)際時(shí)間與網(wǎng)絡(luò)鏈路速率的減小的識(shí)別之間緩沖的數(shù)據(jù)的量。減少此類經(jīng)緩沖數(shù)據(jù)可幫助確保用戶體驗(yàn)在接收器裝置處不受影響。因此,視頻速率控制器54可確定恢復(fù)位速率以在視頻編碼器20處使用,其下沖降低的網(wǎng)絡(luò)鏈路速率,以便減少視頻編碼器20處的經(jīng)緩沖數(shù)據(jù)的量。
根據(jù)本發(fā)明的方面,視頻速率控制器54可基于下沖因子來確定恢復(fù)速率。視頻速率控制器54可基于第一網(wǎng)絡(luò)鏈路速率與降低的網(wǎng)絡(luò)鏈路速率之間的差來確定下沖因子。就是說,視頻速率控制器54可確定具有基于網(wǎng)絡(luò)鏈路速率的降低的量值而變化的量值的下沖因子。因此,如果網(wǎng)絡(luò)鏈路速率的降低相對(duì)較高,那么視頻速率控制器54可確定相對(duì)較高的下沖因子。同樣地,如果網(wǎng)絡(luò)鏈路速率的降低相對(duì)較低,那么視頻速率控制器54可確定相對(duì)較低的下沖因子。
在一些實(shí)例中,視頻速率控制器54可確定可應(yīng)用于降低的網(wǎng)絡(luò)鏈路速率以確定恢復(fù)速率的下沖因子。舉例來說,視頻速率控制器54可確定分?jǐn)?shù)下沖因子,且可將分?jǐn)?shù)下沖因子應(yīng)用于降低的網(wǎng)絡(luò)鏈路速率以確定所述恢復(fù)速率。在一個(gè)實(shí)例中,視頻速率控制器54可基于網(wǎng)絡(luò)鏈路速率到第一網(wǎng)絡(luò)鏈路速率的降低的量值的比率來確定下沖因子。
根據(jù)本發(fā)明的方面,視頻速率控制器54可基于在識(shí)別到網(wǎng)絡(luò)鏈路速率的降低的時(shí)間與網(wǎng)絡(luò)鏈路速率的降低的所估計(jì)實(shí)際時(shí)間之間,在視頻編碼器20處緩沖多少數(shù)據(jù)(或更一般化地,在包含視頻編碼器20的發(fā)送器裝置處緩沖多少數(shù)據(jù)),來確定維持恢復(fù)速率多長(zhǎng)時(shí)間。與在發(fā)送器裝置處緩沖數(shù)據(jù)相關(guān)聯(lián)的時(shí)間可在本文中被稱作緩沖持續(xù)時(shí)間(或緩沖時(shí)間周期),而維持恢復(fù)速率的持續(xù)時(shí)間可在本文中被稱作恢復(fù)速率持續(xù)時(shí)間(或降低速率時(shí)間周期)。在一些情況下,恢復(fù)速率持續(xù)時(shí)間還可被稱作下沖持續(xù)時(shí)間或周期,因?yàn)樵诨謴?fù)速率持續(xù)時(shí)間期間編碼數(shù)據(jù)的速率小于網(wǎng)絡(luò)鏈路速率。
如下文相對(duì)于圖5較詳細(xì)描述,視頻速率控制器54可以多種方式確定緩沖持續(xù)時(shí)間。舉例來說,視頻速率控制器54可通過從網(wǎng)絡(luò)鏈路速率信息56(例如并入有視頻編碼器20的發(fā)送器裝置與接收器裝置之間的往返時(shí)間(RTT)、下行鏈路延遲(例如接收器到發(fā)送器延遲)、關(guān)于速率適應(yīng)反應(yīng)延遲的數(shù)據(jù)、擁塞控制(例如鏈路速率的估計(jì))的反應(yīng)延遲、消息產(chǎn)生延遲(RTCP包)或類似者)估計(jì)緩沖持續(xù)時(shí)間來確定緩沖持續(xù)時(shí)間。網(wǎng)絡(luò)鏈路速率信息56可在視頻編碼器20處可用,或可通過接收器裝置發(fā)信號(hào)通知到視頻編碼器20。
根據(jù)本發(fā)明的方面,視頻速率控制器54可基于恢復(fù)速率的量值且基于緩沖持續(xù)時(shí)間來確定恢復(fù)速率持續(xù)時(shí)間。在一些實(shí)例中,視頻速率控制器54可確定與網(wǎng)絡(luò)鏈路速率的降低的量值(例如,如由恢復(fù)速率指示)以及與對(duì)網(wǎng)絡(luò)鏈路速率的降低作出反應(yīng)相關(guān)聯(lián)的時(shí)間量(例如,如由緩沖持續(xù)時(shí)間指示)成比例的緩沖持續(xù)時(shí)間。就是說,如果網(wǎng)絡(luò)鏈路速率的降低相對(duì)較大,和/或?qū)W(wǎng)絡(luò)鏈路速率的降低作出反應(yīng)所需的時(shí)間相對(duì)較長(zhǎng),那么視頻速率控制器54可確定成比例地較長(zhǎng)的恢復(fù)速率持續(xù)時(shí)間。同樣地,如果網(wǎng)絡(luò)鏈路速率的降低相對(duì)較小,和/或?qū)W(wǎng)絡(luò)鏈路速率的降低作出反應(yīng)所需的時(shí)間相對(duì)較短,那么視頻速率控制器54可確定成比例地較短的恢復(fù)速率持續(xù)時(shí)間。
根據(jù)本發(fā)明的其它方面,視頻速率控制器54可另外或替代地基于網(wǎng)絡(luò)條件執(zhí)行速率向上切換。舉例來說,視頻速率控制器54可從例如包含解碼器系統(tǒng)14(圖1)的裝置的接收器裝置接收網(wǎng)絡(luò)鏈路速率信息56。視頻速率控制器54可使用接收到的網(wǎng)絡(luò)鏈路速率信息56來向上切換視頻編碼引擎50正用來編碼數(shù)據(jù)的發(fā)送速率(例如編碼速率)。
在一些實(shí)例中,接收到的網(wǎng)絡(luò)鏈路速率信息56可包含視頻編碼引擎50正實(shí)施的特定所請(qǐng)求發(fā)送速率(例如編碼速率)。在其它實(shí)例中,接收到的網(wǎng)絡(luò)鏈路速率信息56可包含將添加到當(dāng)前發(fā)送速率的速率步長(zhǎng)增加(例如發(fā)送速率步長(zhǎng))。在任一情況下,如下文相對(duì)于圖3較詳細(xì)描述,接收到的網(wǎng)絡(luò)鏈路速率信息56可基于指示在安排包播出之前已在接收器裝置處接收到所述包的過多延遲參數(shù)。在此類情況下,視頻速率控制器54可增加視頻編碼引擎50所使用的發(fā)送速率,直到包的到達(dá)時(shí)間更接近地與所述包在接收器裝置處的所安排播出時(shí)間一致為止。
應(yīng)理解,雖然將圖2的技術(shù)描述為正由圖2特定組件(例如,視頻速率控制器54)進(jìn)行,但此類技術(shù)可另外或替代地由視頻電話裝置的一或多個(gè)其它組件執(zhí)行。舉例來說,MTSI裝置可進(jìn)行上文所述的某些技術(shù)來執(zhí)行速率適應(yīng)和/或擁塞控制。在此實(shí)例中,MTSI裝置接著可將數(shù)據(jù)提供到視頻速率控制器54,以在視頻編碼器處實(shí)施適當(dāng)?shù)乃俾士刂啤?/p>
圖3是說明根據(jù)本發(fā)明的技術(shù)的可實(shí)施視頻源速率適應(yīng)的視頻解碼器系統(tǒng)14的框圖。如圖3中所示,視頻解碼器42接收經(jīng)編碼數(shù)據(jù)和網(wǎng)絡(luò)鏈路速率信息60,且包含視頻解碼引擎62、播出確定單元64,以及產(chǎn)生速率控制數(shù)據(jù)68的速率控制單元66。
視頻解碼引擎62接收經(jīng)編碼數(shù)據(jù)和網(wǎng)絡(luò)鏈路速率信息60,并對(duì)所述視頻數(shù)據(jù)進(jìn)行解碼。在一些實(shí)例中,視頻解碼引擎62可符合一或多個(gè)視頻譯碼標(biāo)準(zhǔn)。如上所述,實(shí)例視頻譯碼標(biāo)準(zhǔn)包含HEVC、MPEG4、ITU H.263或ITU H.264。
視頻編碼器20(圖2)的視頻速率控制器54可控制接收視頻數(shù)據(jù)的速率。根據(jù)本發(fā)明的方面,速率控制單元66可準(zhǔn)備速率控制數(shù)據(jù)68并將其發(fā)送到視頻編碼器20,以用于調(diào)整編碼速率。在一些實(shí)例中,速率控制數(shù)據(jù)68可包含用于在發(fā)送器裝置處執(zhí)行向下切換的數(shù)據(jù)。在其它實(shí)例中,另外或替代地,速率控制數(shù)據(jù)68可包含用于在發(fā)送器裝置處執(zhí)行向上切換的數(shù)據(jù)。速率控制單元66可準(zhǔn)備允許發(fā)送器裝置確定適當(dāng)?shù)奈凰俾实臄?shù)據(jù),或可從發(fā)送器裝置請(qǐng)求特定位速率。
相對(duì)于準(zhǔn)備用于向下切換的數(shù)據(jù),根據(jù)本發(fā)明的方面,速率控制單元66可以與上文相對(duì)于圖2所述的方式類似的方式,確定恢復(fù)速率、緩沖持續(xù)時(shí)間和/或恢復(fù)速率持續(xù)時(shí)間。在其它實(shí)例中,速率控制單元66可產(chǎn)生數(shù)據(jù)和/或發(fā)射消息,其可由發(fā)送器裝置(例如編碼器系統(tǒng)12)用來確定恢復(fù)速率、緩沖持續(xù)時(shí)間和/或恢復(fù)速率持續(xù)時(shí)間。
在一個(gè)實(shí)例中,速率控制單元66可產(chǎn)生對(duì)發(fā)送器裝置的RTCP臨時(shí)最大媒體流位速率請(qǐng)求(TMMBR)消息,其針對(duì)正向信道具有所估計(jì)的最大位速率,以指示網(wǎng)絡(luò)鏈路速率的降低。一般來說,如上文提到RFC 5104中所描述,接收器、轉(zhuǎn)譯器或混頻器可使用TMMBR(被稱作“木材(timber)”)來請(qǐng)求發(fā)送器將媒體流的最大位速率限制為或低于所提供的值。臨時(shí)最大媒體流位速率通知(TMMBN)含有媒體發(fā)送器的其已接收到的TMMBR定義的限制的最限制性子集的當(dāng)前視圖,來幫助參與者抑制TMMBR,使其不會(huì)進(jìn)一步限定媒體發(fā)送器。
根據(jù)本發(fā)明的方面,正向信道的所估計(jì)最大位速率從第一速率到第二較低速率的改變指示網(wǎng)絡(luò)鏈路速率的降低。在一些實(shí)例中,速率控制單元66可在檢測(cè)到擁塞之后立即或幾乎立即發(fā)送TMMBR(例如,可存在與產(chǎn)生TMMBR消息相關(guān)聯(lián)的消息產(chǎn)生延遲)。雖然出于說明的目的描述TMMBR消息,但應(yīng)理解,可使用指示延遲/擁塞的多種其它消息。
為了促進(jìn)發(fā)送器裝置估計(jì)本文所述的緩沖持續(xù)時(shí)間,速率控制單元66還可產(chǎn)生和發(fā)射RTCP接收器報(bào)告(RR)消息。舉例來說,如上文提到的RFC 3550中所描述,可使用若干RTCP包類型來運(yùn)載多種控制信息。發(fā)送器報(bào)告(SR)可用于來自作為作用中發(fā)送器的參與者的發(fā)射和接收統(tǒng)計(jì)。RR可用于來自不是作用中發(fā)送器的參與者的接收統(tǒng)計(jì),且結(jié)合SR用于超過31個(gè)來源上的作用中發(fā)送器報(bào)告。
根據(jù)本發(fā)明的方面,速率控制單元66可在TMMBR消息之后,例如在TMMBR消息之后立即或幾乎立即,產(chǎn)生和發(fā)射RR消息。在此實(shí)例中,發(fā)送器裝置可接收TMMBR消息和RR消息,且可確定緩沖持續(xù)時(shí)間的上限為發(fā)送RR中由包含于RR中的最后一個(gè)SR時(shí)戳(LSR數(shù)據(jù))提到的SR的時(shí)間與發(fā)送器裝置接收到所述RR的時(shí)間之間的時(shí)間差。換句話說,速率控制單元66可發(fā)送指示對(duì)位速率限制的請(qǐng)求的第一數(shù)據(jù)(例如TMMBR消息),以及指示產(chǎn)生消息的時(shí)間的第二數(shù)據(jù)(例如LSR數(shù)據(jù))。LSR數(shù)據(jù)可包含出自作為最近RTCP SR包的一部分從來源接收到的64位網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)時(shí)戳的中間32個(gè)位。如果尚未接收到SR,那么可將LSR時(shí)戳字段設(shè)定成零。發(fā)送器裝置可接收上文所述的數(shù)據(jù),且可使用所述數(shù)據(jù)來確定緩沖持續(xù)時(shí)間,其可在向下切換期間使用。
在另一實(shí)例中,并非發(fā)送兩個(gè)單獨(dú)的連續(xù)消息(例如TMMBR和RTCP RR),速率控制單元66可將TMMBR數(shù)據(jù)和RTCP RR數(shù)據(jù)分組到單個(gè)RTCP消息中,且可將所述單個(gè)消息發(fā)送到發(fā)送器裝置。在最低限度,速率控制單元66可發(fā)送LSR數(shù)據(jù),其允許發(fā)送器裝置估計(jì)緩沖持續(xù)時(shí)間。在此實(shí)例中,消息大小可相對(duì)于發(fā)送兩個(gè)單獨(dú)消息而減小。
在一些實(shí)例中,速率控制單元66可使用最后一個(gè)接收到的RTCP SR的LSR來發(fā)送到發(fā)送器裝置,即使速率控制單元66先前已發(fā)送了具有相同LSR的RTCP RR。如果速率控制單元66尚未發(fā)送RR,那么速率控制單元66可組合完整RR與TMMBR。在其它實(shí)例中,為了減小消息大小,速率控制單元66可僅連同TMMBR發(fā)送LSR數(shù)據(jù),發(fā)送器裝置可接收所述數(shù)據(jù)并用來確定RTT。在又一實(shí)例中,如果速率控制單元66已經(jīng)發(fā)送了RR,那么發(fā)送器裝置可更準(zhǔn)確地將緩沖持續(xù)時(shí)間計(jì)算為接收到最后一個(gè)所接收RR的時(shí)間與接收到新RR(例如在檢測(cè)到擁塞之后速率控制單元66所發(fā)送的RR)的時(shí)間之間的時(shí)間差。
速率控制單元66還可確定恢復(fù)速率持續(xù)時(shí)間,和/或產(chǎn)生數(shù)據(jù)并將其發(fā)送到發(fā)送器裝置,以確定恢復(fù)速率持續(xù)時(shí)間。舉例來說,代替于或結(jié)合上文所述的技術(shù),速率控制單元66(或發(fā)送器裝置)可監(jiān)視RTCP RR幀間到達(dá)抖動(dòng),以確定何時(shí)結(jié)束恢復(fù)速率持續(xù)時(shí)間。一般來說,幀間到達(dá)抖動(dòng)數(shù)據(jù)可提供一時(shí)戳單位測(cè)量且表達(dá)為無符號(hào)整數(shù)的RTP數(shù)據(jù)包幀間到達(dá)時(shí)間的統(tǒng)計(jì)方差的估計(jì)??蓪g到達(dá)抖動(dòng)J定義為針對(duì)一對(duì)包,與發(fā)送器相比,接收器處的包間距的差異D的平均偏差(經(jīng)平滑絕對(duì)值)。如下文在等式(1)中示出,這等效于兩個(gè)包的“相對(duì)運(yùn)送時(shí)間”的差;相對(duì)運(yùn)送時(shí)間是以相同單位測(cè)得的包的RTP時(shí)戳與接收器在到達(dá)時(shí)間的時(shí)鐘之間的差。如果Si是來自包ⅰ的RTP時(shí)戳,且Ri是包ⅰ的以RTP時(shí)戳單位的到達(dá)時(shí)間,那么對(duì)于兩個(gè)包ⅰ和j,可將D表達(dá)為:
D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si) (1)
根據(jù)本發(fā)明的方面,如果幀間到達(dá)抖動(dòng)變?yōu)榱慊蛐∮陂撝?,那么發(fā)送器裝置可終止速率降低(例如發(fā)送器裝置可使發(fā)送速率從降低的速率增加到大約網(wǎng)絡(luò)鏈路速率)。所述閾值可為恒定的,或適合變化的網(wǎng)絡(luò)條件。在一些實(shí)例中,在幀間到達(dá)抖動(dòng)維持在零或小于閾值持續(xù)最小時(shí)間周期后,發(fā)送器裝置可即刻終止速率降低。在一些情況下,速率控制單元66越頻繁地發(fā)信號(hào)通知RTCP SR和RR,發(fā)送器裝置就可越準(zhǔn)確地監(jiān)視幀間到達(dá)抖動(dòng)。
在再一實(shí)例中,發(fā)送器裝置(例如編碼器系統(tǒng)12)可監(jiān)視延遲(例如RTT),且發(fā)送器可使發(fā)送速率維持在降低的速率,直到延遲充分降低為止。舉例來說,發(fā)送器裝置可使發(fā)送速率維持在降低的速率,直到存儲(chǔ)到緩沖器的數(shù)據(jù)的數(shù)量低于閾值水平為止。
在本發(fā)明的其它技術(shù)中,播出確定單元64可檢查接收到的視頻包,并確定接收到的數(shù)據(jù)對(duì)于其安排的播出來說,早、及時(shí)還是太晚到達(dá)??捎媒?jīng)編碼數(shù)據(jù)來指示安排的播出時(shí)序。如果所述包晚到達(dá)(例如播出時(shí)間在接收到/檢查到所述包之前發(fā)生),那么速率控制單元66可請(qǐng)求發(fā)送器裝置減小發(fā)送位速率。在一些實(shí)例中,速率控制單元66可以選定速率發(fā)送TMMBR消息。
根據(jù)一些方面,速率控制單元66可通過確定需要去除的過多延遲的量,并使此過多延遲參數(shù)乘以如速率控制單元66所測(cè)量的到達(dá)視頻的數(shù)據(jù)速率,來估計(jì)向后記錄的數(shù)據(jù)(例如在發(fā)送器裝置處緩沖的數(shù)據(jù))的量。換句話說,速率控制單元66可基于接收到/檢查到數(shù)據(jù)的時(shí)間與用所述數(shù)據(jù)指示的播出時(shí)間之間的差來確定延遲。速率控制單元66接著可使此延遲時(shí)間乘以正接收數(shù)據(jù)的位速率,以確定發(fā)送器正緩沖的數(shù)據(jù)的量。
在一些實(shí)例中,速率控制單元66可請(qǐng)求低于視頻解碼器42與發(fā)送器裝置之間的輸送路徑的可持續(xù)速率(例如網(wǎng)絡(luò)鏈路的可使用的帶寬)的初始速率(例如,在TMMBR消息中),以允許所述系統(tǒng)解除信道的擁塞。在實(shí)例中,速率控制單元66可選擇低到足以使所述系統(tǒng)能夠在固定時(shí)間量(由變量T_decongest指示)內(nèi)解除信道的擁塞的初始速率。如果變量R_sustain等于所述信道的可持續(xù)速率,且變量ΔDelay等于需要去除的延遲的量,那么速率控制單元66可最初請(qǐng)求發(fā)送器裝置根據(jù)下文的等式(2)來以位速率R編碼數(shù)據(jù):
R=R_sustain(1-ΔDelay/T_decongest) (2)
在發(fā)送包含所請(qǐng)求的位速率的消息(例如消息)之后,速率控制單元66可等待解除擁塞時(shí)間(T_decongest)過去。速率控制單元66接著可以網(wǎng)絡(luò)鏈路可持續(xù)的速率(R_sustain)來發(fā)送另一所請(qǐng)求的位速率(例如額外消息),從而結(jié)束解除擁塞周期。
在另一實(shí)例中,速率控制單元66可不發(fā)送另一消息(例如額外TMMBR消息)來增加速率。在此實(shí)例中,速率控制單元66可僅開始測(cè)量可允許的延遲量(例如低于預(yù)定閾值的延遲)。如果速率控制單元66確定延遲量小于所需的(例如,對(duì)于恰當(dāng)安排的播出,包比所需的早到達(dá)),那么速率控制單元66可發(fā)送另一消息(例如另一TMMBR消息)來增加/提高發(fā)送器裝置編碼速率。
相對(duì)于向上切換,當(dāng)發(fā)送器裝置正利用發(fā)送器裝置與接收器裝置之間的信道(例如編碼器系統(tǒng)12與解碼器系統(tǒng)14(圖1)之間的信道16)時(shí),很可能視頻包向視頻解碼器42的遞送將在實(shí)際上需要播出此類視頻包之前出現(xiàn)(例如,在用所述數(shù)據(jù)指示的播出時(shí)間之前接收)。在此類情況下,可增加發(fā)送器速率,且可將一些額外延遲引入到系統(tǒng)中,而不會(huì)不利地影響用戶體驗(yàn)。
在信道帶寬等于在速率控制單元66測(cè)得的平均接收速率的實(shí)例(例如無備用任何信道帶寬可用的最壞情況)中,可根據(jù)下文的等式(3)來計(jì)算可引入到發(fā)射路徑中的過多位:
excess_bits=rate_increase_step*(RTT+receiver_detection_delay) (3)
其中excess_bits指示正引入到所述系統(tǒng)中的額外位,rate_increase_step指示編碼速率的增加,RTT指示往返時(shí)間,且receiver_detection_delay指示與接收器檢測(cè)到系統(tǒng)中的延遲(其可根據(jù)本文所述的技術(shù)中的任一者來確定)相關(guān)聯(lián)的延遲。
在一些實(shí)例中,速率控制單元66可確定歸因于根據(jù)下文的等式(4)引入的過多位(excess_bits)而導(dǎo)致的對(duì)應(yīng)的最壞情況過多延遲(excess_delay):
excess_delay=rate_increase_step*(RTT+receiver_detection_delay)/
avg_receiving_rate (4)
其中excess_delay指示在發(fā)送器裝置處引入的延遲的量,rate_increase_step指示編碼速率的增加,RTT指示發(fā)送器裝置與視頻解碼器42之間的往返時(shí)間,receiver_detection_delay指示與速率控制單元66在所述系統(tǒng)中檢測(cè)到延遲相關(guān)聯(lián)的延遲,且avg_receiving_rate指示正在視頻解碼器42處接收數(shù)據(jù)的速率。
因此,在一些實(shí)例中,根據(jù)本發(fā)明的方面,視頻解碼器42的速率控制單元66可確定與特定速率增加相關(guān)聯(lián)的若干過多位(例如excess_bits),以及與所述過多位的引入相關(guān)聯(lián)的延遲(例如excess_delay)。
速率控制單元66可基于可允許的過多延遲參數(shù)來計(jì)算速率增加量。舉例來說,速率控制單元66可根據(jù)下文的等式(5)來確定發(fā)送器裝置將發(fā)送速率增加了多少,而不將擁塞和/或延遲導(dǎo)入到系統(tǒng)中:
rate_increase_step=allowable_excess_delay*avg_receiving_rate/
(RTT+receiver_detection_delay) (5)
其中rate_increase_step指示可增加發(fā)送速率的量(其可被稱為發(fā)送器位速率增加),allowable_excess_delay指示可允許的過多延遲參數(shù)(如下文更詳細(xì)描述),avg_receiving_rate指示在確定速率增加之前已接收數(shù)據(jù)的平均速率,RTT指示視頻解碼器42與發(fā)送器裝置(例如視頻編碼器20)之間的往返時(shí)間,且receiver_detection_delay指示識(shí)別視頻解碼器42處的延遲所需的時(shí)間量。在一些情況下,接收器檢測(cè)延遲參數(shù)可取決于實(shí)施方案,且可在離線測(cè)試中估計(jì)或測(cè)量。如果此類接收器檢測(cè)延遲不可用,那么速率控制單元66可經(jīng)配置以使用所估計(jì)的反應(yīng)延遲,其可為速率控制單元66識(shí)別到延遲所需的時(shí)間的相對(duì)保守的估計(jì)。
因?yàn)閺陌l(fā)送器裝置到包含視頻解碼器42的接收器裝置的單向延遲通常對(duì)于接收器裝置來說是未知的,所以接收器裝置通??刹皇褂么藖碛?jì)算可允許的過多延遲參數(shù)(allowable_excess_delay)。實(shí)情為,根據(jù)本發(fā)明的方面,速率控制單元66可從所述接收到的視頻包確定可允許的過多延遲的量。舉例來說,速率控制單元66可確定在視頻解碼器42處接收到和/或處理視頻包的時(shí)間。速率控制單元66還可確定指定與視頻包相關(guān)聯(lián)的視頻數(shù)據(jù)播出(例如顯示給用戶)的時(shí)間。速率控制單元66可基于接收到和/或評(píng)估所述包的時(shí)間與播出時(shí)間之間的差來確定可允許的過多延遲參數(shù)。
可允許的過多延遲參數(shù)通??芍甘景l(fā)送器裝置可利用的時(shí)間量,作為增加位速率而不影響用戶體驗(yàn)的基礎(chǔ)。舉例來說,可允許的過多延遲參數(shù)可指示可用于增加發(fā)送速率而不影響用戶體驗(yàn)的時(shí)間量,例如不使發(fā)送速率增加到信道16可支持的速率,使得數(shù)據(jù)在視頻解碼器42太晚到達(dá),以致無法在適當(dāng)?shù)臅r(shí)間解碼和播出。從用戶體驗(yàn)角度來說,可允許的過多延遲度量可更準(zhǔn)確,因?yàn)榭稍试S的過多延遲參數(shù)直接指示接收到的包中的視頻信息是否可實(shí)際上顯示給用戶而無降級(jí)(例如抖動(dòng)、突突聲或丟幀)。
根據(jù)本發(fā)明的方面,基于以上分析,速率控制單元66可在接收器裝置和發(fā)送器裝置處強(qiáng)加以下要求來執(zhí)行向上切換:
●接收器將檢查包的到達(dá),并將此與其有規(guī)律地安排的播出時(shí)間進(jìn)行比較,以確定是否存在可引入到發(fā)射路徑中的可接受量的延遲:allowable_excess_delay
●接收器將檢查包的到達(dá),以計(jì)算平均接收速率:avg_receiving_rate
●接收器將計(jì)算往返時(shí)間:RTT
●接收器將如下計(jì)算rate_increase_step:
rate_increase_step=allowable_excess_delay*avg_receiving_rate/(RTT+receiver_detection_delay)
●當(dāng)具有反饋的音頻視覺提供(AVPF)RTCP發(fā)射規(guī)則允許時(shí),接收器:
在檢測(cè)到rate_increase_step>5%x avg_receiving_rate時(shí),應(yīng)發(fā)送臨時(shí)最大媒體流位速率請(qǐng)求(TMMBR),且
當(dāng)檢測(cè)到rate_increase_step>15%x avg_receiving_rate時(shí),將發(fā)送TMMBR
●當(dāng)發(fā)送TMMBR消息時(shí),TMMBR中的requested_rate:
應(yīng)等于:
avg_receiving_rate+rate_increase_step
將為:
avg_receiving_rate+0.80(rate_increase_step)<=requested_rate<=avg_receiving_rate+rate_increase_step
另外,根據(jù)本發(fā)明的方面,可在發(fā)送器裝置處強(qiáng)加以下要求以執(zhí)行向上切換:
●在接收到臨時(shí)最大媒體流位速率請(qǐng)求(TMMBR)后,視頻發(fā)送器應(yīng)即刻在500ms內(nèi)將其發(fā)送速率提高到requested_rate,且將在1秒內(nèi)使其提高。
應(yīng)理解,出于實(shí)例的目的提供上文提到“要求”,且還可使用與上文所述的特定值不同的值來應(yīng)用本發(fā)明的技術(shù)。另外,雖然出于解釋的目的,特定技術(shù)可歸于圖3的特定單元(例如速率控制單元66),但應(yīng)理解,視頻解碼器42的一或多個(gè)其它單元也可負(fù)責(zé)實(shí)行此些技術(shù)。此外,因?yàn)閂T常常是雙向通信流,還可例如通過本文指定為發(fā)送器裝置的裝置(例如并入有圖2的視頻編碼器20的裝置)和本文指定為接收器裝置的裝置(例如并入有圖3的視頻解碼器42的裝置)兩者,在正向和反向網(wǎng)絡(luò)路徑兩者上應(yīng)用類似技術(shù)。
圖4A和圖4B是說明符合本發(fā)明的視頻源速率適應(yīng)技術(shù)的曲線圖。舉例來說,圖4A大體上說明在包含網(wǎng)絡(luò)鏈路速率的減小的時(shí)間期間,在發(fā)送器裝置(例如編碼器系統(tǒng)12)處的經(jīng)編碼數(shù)據(jù)的位速率。圖4B通常說明與網(wǎng)絡(luò)鏈路速率的減小相關(guān)聯(lián)的所得延遲。相對(duì)于編碼器系統(tǒng)12來描述圖4A和4B的技術(shù),應(yīng)理解,可通過具有多種其它組件的多種其它發(fā)送器裝置來進(jìn)行所述技術(shù)。
在圖4A的實(shí)例中,在時(shí)刻t0,鏈路速率(還被稱作網(wǎng)絡(luò)鏈路速率或帶寬)從R0減小到R1,如由線80所說明,其中發(fā)送速率=鏈路速率)。響應(yīng)于網(wǎng)絡(luò)鏈路速率的減小,編碼器系統(tǒng)12可降低發(fā)送速率。然而,如圖4A的實(shí)例中示出,存在與降低發(fā)送速率相關(guān)聯(lián)的從t0到t1的響應(yīng)延遲(ΔT),如由虛線82所說明。所述響應(yīng)延遲本文中還可描述為緩沖持續(xù)時(shí)間,在此時(shí)間期間,發(fā)送速率過沖網(wǎng)絡(luò)鏈路速率,且編碼器系統(tǒng)12負(fù)責(zé)緩沖網(wǎng)絡(luò)鏈路無法容納的數(shù)據(jù)。
如圖4B的實(shí)例中的線84所說明,延遲(例如經(jīng)編碼數(shù)據(jù)可用于發(fā)射與實(shí)際上發(fā)射經(jīng)編碼數(shù)據(jù)的時(shí)間之間的時(shí)間)在響應(yīng)延遲(ΔT)期間,相對(duì)快速地從D0增加到D1。就是說,延遲在網(wǎng)絡(luò)鏈路速率的減小的時(shí)間t0與識(shí)別到網(wǎng)絡(luò)鏈路速率的所述減小的時(shí)間t1之間,相對(duì)快速地從D0增加到D1。所述延遲可為與在編碼器系統(tǒng)12處緩沖的數(shù)據(jù)的量成比例。
在時(shí)間t1,圖4A和4B的實(shí)例說明發(fā)散發(fā)送速率技術(shù)。舉例來說,實(shí)線80說明其中編碼器系統(tǒng)12使發(fā)送速率維持在網(wǎng)絡(luò)鏈路速率的第一實(shí)例。舉例來說,在識(shí)別到網(wǎng)絡(luò)鏈路速率的減小后,編碼器系統(tǒng)12即刻使發(fā)送速率從原始速率R0降低到新的降低的網(wǎng)絡(luò)鏈路速率R1。在此實(shí)例中,對(duì)應(yīng)延遲保持相對(duì)較高,如實(shí)線88所說明。就是說,因?yàn)閷l(fā)送速率設(shè)定為網(wǎng)絡(luò)鏈路速率R1,因此不存在以之減少已緩沖的數(shù)據(jù)量的過多帶寬。
短劃線82和86說明第二實(shí)例,其中編碼器系統(tǒng)12將發(fā)送從原始速率R0降低到小于網(wǎng)絡(luò)鏈路速率R1的降低的速率RU。這可被稱為“下沖”網(wǎng)絡(luò)鏈路速率。在此實(shí)例中,編碼器系統(tǒng)12可維持降低的速率Ru持續(xù)所確定的恢復(fù)速率持續(xù)時(shí)間(ΔTu)。在此時(shí)間期間,如通過虛線90所說明,編碼器系統(tǒng)12減少時(shí)間t2時(shí)從D1到D2的延遲。
如本文所述,編碼器系統(tǒng)12可使用多種技術(shù)來確定降低的速率(RU)、緩沖持續(xù)時(shí)間(ΔT)和恢復(fù)速率持續(xù)時(shí)間(ΔTu)。在一個(gè)實(shí)例中,編碼器系統(tǒng)12可基于表達(dá)(1-fU)×R1來確定降低的速率RU,其中fU是下沖因子,且R1是降低的鏈路速率,且其中fU確定速率下沖因子(1-fU)且0<fU<1,其使發(fā)送速率與鏈路速率R1有關(guān)。在一些實(shí)例中,fU可取決于網(wǎng)絡(luò)鏈路速率降低的量值,其可由等式ΔR=(R0-R1)表示。在此實(shí)例中,如圖4A所示,R0在降低之前是第一網(wǎng)絡(luò)鏈路速率。如果網(wǎng)絡(luò)鏈路速率減小ΔR的量值較大,fU可按比例較大。在其它實(shí)例中,如果ΔR較小,那么fU可按比例較小,如下文在等式(6)中示出:
fU=ΔR/R0 (6)
如果編碼器系統(tǒng)12在緩沖持續(xù)時(shí)間(ΔT)期間緩沖所有所述位,并促成延遲,那么編碼器系統(tǒng)12可基于下文的等式(7)來確定恢復(fù)速率持續(xù)時(shí)間(ΔTu):
ΔTu=ΔT(R0-R1)/(fUR1) (7)
其中ΔTu是恢復(fù)速率持續(xù)時(shí)間,ΔT包括緩沖持續(xù)時(shí)間,R0包括第一網(wǎng)絡(luò)鏈路速率,R1包括第二、降低的網(wǎng)絡(luò)鏈路速率,且fU包括速率降低因子。
在一些實(shí)例中,編碼器系統(tǒng)12可應(yīng)用最小位速率要求。最小位速率要求可基于視頻編碼器20的能力、對(duì)用戶體驗(yàn)的最小系統(tǒng)要求,或類似者。在其中編碼器系統(tǒng)12應(yīng)用最小位速率要求的實(shí)例中,視頻編碼器20可將最小位速率要求應(yīng)用于RU,且因此還應(yīng)用于下沖因子fU。舉例來說,編碼器系統(tǒng)12可應(yīng)用下文的等式(8)和(9)來確定降低的速率RU和下沖因子fU:
RU>=Rmin (8)
fU<=1-(Rmin/R1)其中R1>Rmin (9)
其中RU是降低的位速率,Rmin是最小編碼速率,R1是第二、降低的網(wǎng)絡(luò)鏈路速率,且fU是下沖因子。
如果在恢復(fù)速率持續(xù)時(shí)間(ΔTu)期間,編碼器系統(tǒng)12接收到運(yùn)載新速率值R2的TMMBR消息,且R2顯著大于R1(例如R2大于或等于1.2乘以R1),那么編碼器系統(tǒng)12可縮短恢復(fù)速率持續(xù)時(shí)間。相反,如果R2小于R1,那么編碼器系統(tǒng)12可確定額外或延長(zhǎng)的恢復(fù)速率持續(xù)時(shí)間。
一般來說,如上文相對(duì)于圖2和3所提到,編碼器系統(tǒng)12可從網(wǎng)絡(luò)信息(例如RTT、下行鏈路延遲(例如接收器到發(fā)送器)、關(guān)于速率控制反應(yīng)延遲的了解、擁塞控制的反應(yīng)延遲(例如鏈路速率的估計(jì))、消息產(chǎn)生延遲(例如與產(chǎn)生RTCP包相關(guān)聯(lián)的延遲,或類似者)估計(jì)緩沖持續(xù)時(shí)間(ΔT)。此網(wǎng)絡(luò)信息可在發(fā)送器側(cè)可用,或可通過接收器裝置(例如并入有視頻解碼器42(圖3)的裝置)向編碼器系統(tǒng)12發(fā)信號(hào)通知。
雖然圖4A和4B的實(shí)例出于說明的目的說明逐步變化(例如R0與RU之間的單個(gè)速率改變,應(yīng)理解,可為反復(fù)地應(yīng)用所述技術(shù),使得下沖曲線更漸進(jìn)。
圖5是說明符合本發(fā)明的技術(shù)的確定緩沖持續(xù)時(shí)間的概念圖。在圖5的實(shí)例中,發(fā)送器裝置(例如編碼器系統(tǒng)12)可在時(shí)間120將RTCP發(fā)送器報(bào)告(SR)發(fā)送到接收器裝置(例如解碼器系統(tǒng)14)。舉例來說,如上文提到的RFC 3550中所描述,可使用若干RTCP包類型來運(yùn)載多種控制信息。發(fā)送器報(bào)告(SR)可用于來自作為作用中發(fā)送器的參與者的發(fā)射和接收統(tǒng)計(jì)。同樣地,接收器報(bào)告(RR)可用于來自不是作用中發(fā)送器的參與者的接收統(tǒng)計(jì),且結(jié)合SR用于作用中發(fā)送器對(duì)超過31個(gè)來源進(jìn)行報(bào)告。接收器裝置可在時(shí)間122接收RTCP SR。
接收器裝置可在時(shí)間124以正向信道的所估計(jì)最大位速率,將RTCP TMMBR消息發(fā)送到發(fā)送器裝置。在一些實(shí)例中,雖然可存在與產(chǎn)生所述消息相關(guān)聯(lián)的延遲,接收器裝置可在檢測(cè)到擁塞之后立即發(fā)送TMMBR消息。雖然出于說明的目的描述TMMBR消息,但可使用可指示延遲/擁塞的多種其它消息。
為了促進(jìn)發(fā)送器裝置估計(jì)緩沖持續(xù)時(shí)間(ΔT),接收器裝置還可在時(shí)間124發(fā)送RTCP RR消息。根據(jù)本發(fā)明的方面,接收器裝置可在TMMBR消息之后立即發(fā)送RR消息。以此方式,發(fā)送器裝置可在時(shí)間126接收TMMBR消息和RR消息,且可將緩沖持續(xù)時(shí)間(ΔT)128的上限計(jì)算為發(fā)送在RR中由包含于所述RR中的最后一個(gè)SR時(shí)戳(LSR數(shù)據(jù))指代的SR的時(shí)間與接收到所述RR的時(shí)間之間的時(shí)間差。換句話說,接收器裝置可發(fā)送指示對(duì)位速率限制的請(qǐng)求的第一數(shù)據(jù)(例如TMMBR消息),以及指示產(chǎn)生消息的時(shí)間的第二數(shù)據(jù)(例如LSR數(shù)據(jù))。LSR數(shù)據(jù)可包含出自作為最近RTCP SR包的一部分從來源接收到的64位網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)時(shí)戳的中間32個(gè)位。如果尚未接收到SR,那么可將LSR時(shí)戳字段設(shè)定成零。
在另一實(shí)例中,不是發(fā)送具有上文所述數(shù)據(jù)的兩個(gè)單獨(dú)連續(xù)消息(例如TMMBR和RTCP RR),可將TMMBR數(shù)據(jù)和RTCP RR數(shù)據(jù)分組成單個(gè)RTCP消息。在最低限度,接收器裝置可發(fā)送LSR數(shù)據(jù),其允許發(fā)送器裝置估計(jì)緩沖持續(xù)時(shí)間(ΔT)128。在此實(shí)例中,可減小消息大小。
接收器裝置可使用最后一個(gè)接收到的RTCP SR消息的LSR,即使接收器裝置先前已發(fā)送了具有相同LSR的RTCP RR消息也是如此。如果接收器裝置尚未發(fā)送RR,那么接收器裝置可將完整RR消息與TMMBR消息組合。在其它實(shí)例中,為了減小消息大小,接收器裝置可僅連同TMMBR消息發(fā)送LSR數(shù)據(jù),其可用于計(jì)算RTT。
在另一實(shí)例中,如果接收器裝置已經(jīng)發(fā)送了RR,那么發(fā)送器裝置可更準(zhǔn)確地將緩沖持續(xù)時(shí)間(ΔT)128計(jì)算為接收到最后一個(gè)接收到的RR消息和新RR消息(例如在檢測(cè)到擁塞之后,由接收器發(fā)送的消息)之間的時(shí)間差。
在再一實(shí)例中,發(fā)送器裝置可監(jiān)視所述延遲(例如RTT),且發(fā)送器裝置可保持以降低的速率Ru發(fā)送數(shù)據(jù),直到所述延遲充分降低為止。舉例來說,發(fā)送器裝置可使發(fā)送速率維持在降低的速率Ru,直到存儲(chǔ)到發(fā)送器裝置的緩沖器的數(shù)據(jù)的數(shù)量低于閾值水平為止。
圖6A和6B是分別說明網(wǎng)絡(luò)鏈路速率減小和對(duì)應(yīng)延遲時(shí)間的曲線圖。圖6A的曲線圖可與圖4A的線80相關(guān)聯(lián),而圖6B的曲線圖可與圖4B的線88相關(guān)聯(lián)。舉例來說,圖6A示出由虛線說明的網(wǎng)絡(luò)帶寬140(還被稱作網(wǎng)絡(luò)鏈路速率),以及由實(shí)線說明的發(fā)送速率142(還被稱作編碼位速率)(例如以千字節(jié)每秒(KBPS)測(cè)量)。如圖6A中所示,發(fā)送器裝置(例如編碼器系統(tǒng)12)可以處于與帶寬140相同或類似的速率的發(fā)送速率142編碼數(shù)據(jù)。因此,當(dāng)帶寬140在時(shí)間144減小時(shí),發(fā)送器裝置可使發(fā)送速率142降低到與帶寬140大致相同的值。
如圖6B的對(duì)應(yīng)延遲曲線圖中示出,在帶寬140的減小之后,編碼器系統(tǒng)12處的延遲可從第一水平146增加到第二水平148(例如以毫秒(MS)測(cè)量)。如本文所述,在帶寬的減小后,延遲即刻升高,因?yàn)榇嬖谂c使發(fā)送速率142降低到帶寬140的水平相關(guān)聯(lián)的反應(yīng)時(shí)間。編碼器系統(tǒng)12可在降低發(fā)送速率142以與帶寬140匹配之前,緩沖以原始(較高)速率編碼的緩沖器數(shù)據(jù)。如圖6B中示出,如果不應(yīng)用減少延遲的技術(shù),那么延遲可持續(xù)相對(duì)較長(zhǎng)的持續(xù)時(shí)間。
圖7A和7B分別是說明網(wǎng)絡(luò)鏈路速率減小和對(duì)應(yīng)延遲時(shí)間的曲線圖。圖7A的曲線圖可與圖4A的線82和86相關(guān)聯(lián),而圖7B的曲線圖可與圖4B的虛線90相關(guān)聯(lián)。舉例來說,圖7A示出由虛線說明的網(wǎng)絡(luò)帶寬160(還被稱作網(wǎng)絡(luò)鏈路速率),以及由實(shí)線說明的發(fā)送速率162(還被稱作編碼位速率)(例如以千字節(jié)每秒(KBPS)測(cè)量)。如圖7A中所示,發(fā)送器裝置(例如編碼器系統(tǒng)12)可最初以處于與帶寬160相同或類似的速率的發(fā)送速率162來編碼數(shù)據(jù)。
根據(jù)本發(fā)明的方面,當(dāng)帶寬160在時(shí)間164減小時(shí),發(fā)送器裝置可使發(fā)送速率降低到小于帶寬160的降低的速率。就是說,發(fā)送器裝置可確定下沖帶寬140的發(fā)送速率162,以便減少與帶寬160的減小相關(guān)聯(lián)的延遲。如本文所述,發(fā)送器裝置可根據(jù)本發(fā)明的技術(shù)來確定緩沖持續(xù)時(shí)間、降低的速率和/或恢復(fù)速率持續(xù)時(shí)間。
如圖7B的對(duì)應(yīng)延遲曲線圖中示出,在帶寬160的減小之后,編碼器系統(tǒng)12處的延遲可從第一水平166增加到第二水平168(例如以毫秒(MS)測(cè)量)。如上所述,在帶寬的減小后,延遲即刻升高,因?yàn)榇嬖谂c響應(yīng)于帶寬160的減小而降低發(fā)送速率162相關(guān)聯(lián)的反應(yīng)時(shí)間。然而,通過使發(fā)送速率162降低到降低的速率(下沖帶寬160),編碼器系統(tǒng)12可比圖6B中所示的實(shí)例更快地減少延遲。
圖8是說明用于向下切換發(fā)射數(shù)據(jù)的速率的實(shí)例過程的流程圖。出于說明的目的,相對(duì)于編碼器系統(tǒng)12來描述圖8的實(shí)例。然而,應(yīng)理解,圖8的過程可由多種其它裝置和/或處理器進(jìn)行。
編碼器系統(tǒng)12可編碼數(shù)據(jù),并以第一速率經(jīng)由網(wǎng)絡(luò)發(fā)射所述數(shù)據(jù)(180)。在以第一速率發(fā)射所述數(shù)據(jù)時(shí),編碼器系統(tǒng)12可識(shí)別網(wǎng)絡(luò)鏈路速率從第一速率到第二速率的降低(182)。舉例來說,編碼器系統(tǒng)12可監(jiān)視網(wǎng)絡(luò)條件,和/或接收指示網(wǎng)絡(luò)鏈路速率的降低的一或多個(gè)消息。
編碼器系統(tǒng)12可確定小于第二(降低的)網(wǎng)絡(luò)鏈路速率的恢復(fù)位速率(184)。舉例來說,編碼器系統(tǒng)12可確定用于編碼下沖新網(wǎng)絡(luò)鏈路速率的數(shù)據(jù)的位速率。根據(jù)本發(fā)明的方面,編碼器系統(tǒng)12可基于第一網(wǎng)絡(luò)鏈路速率與降低的網(wǎng)絡(luò)鏈路速率之間的差來確定恢復(fù)位速率。舉例來說,如果網(wǎng)絡(luò)鏈路速率的降低相對(duì)較大,那么編碼器系統(tǒng)12可確定相對(duì)積極的恢復(fù)位速率(例如使降低的速率下沖相當(dāng)大的裕度)。同樣地,如果網(wǎng)絡(luò)鏈路速率的降低相對(duì)較低,那么編碼器系統(tǒng)12可確定相對(duì)保守的恢復(fù)位速率(例如使降低的速率下沖相對(duì)較小的裕度)。
編碼器系統(tǒng)12還可基于反應(yīng)延遲(例如與響應(yīng)于網(wǎng)絡(luò)鏈路速率的降低而降低發(fā)送速率相關(guān)聯(lián)的時(shí)間)來確定緩沖持續(xù)時(shí)間(186)。編碼器系統(tǒng)12可以多種方式確定緩沖持續(xù)時(shí)間。舉例來說,編碼器系統(tǒng)12可通過從網(wǎng)絡(luò)信息(例如編碼器系統(tǒng)12與接收器裝置之間的往返時(shí)間(RTT)、下行鏈路延遲、速率適應(yīng)反應(yīng)延遲、擁塞控制的反應(yīng)延遲、消息產(chǎn)生延遲或類似者)估計(jì)緩沖持續(xù)時(shí)間來確定緩沖持續(xù)時(shí)間。編碼器系統(tǒng)12可獨(dú)立地確定網(wǎng)絡(luò)信息,或可從接收器裝置接收所述網(wǎng)絡(luò)信息。
編碼器系統(tǒng)12接著可確定維持恢復(fù)位速率的恢復(fù)速率持續(xù)時(shí)間(188)。在一些實(shí)例中,編碼器系統(tǒng)12可基于恢復(fù)速率的量值且基于緩沖持續(xù)時(shí)間,確定恢復(fù)速率持續(xù)時(shí)間。在一些實(shí)例中,編碼器系統(tǒng)12可確定與網(wǎng)絡(luò)鏈路速率(例如如由恢復(fù)速率指示)的降低的量值以及與對(duì)網(wǎng)絡(luò)鏈路速率的降低作出反應(yīng)相關(guān)聯(lián)的時(shí)間量(例如如由緩沖持續(xù)時(shí)間指示)成比例的緩沖持續(xù)時(shí)間。
編碼器系統(tǒng)12可以恢復(fù)位速率來發(fā)射數(shù)據(jù),持續(xù)所述恢復(fù)速率持續(xù)時(shí)間(190)。在一些實(shí)例中,如果網(wǎng)絡(luò)鏈路速率在恢復(fù)速率持續(xù)時(shí)間期間增加,那么編碼器系統(tǒng)12可較早終止恢復(fù)速率持續(xù)時(shí)間,且可向上切換到較高發(fā)送速率。應(yīng)理解,取決于實(shí)例,相對(duì)于圖8所描述的技術(shù)中的任一者的某些動(dòng)作或事件可以不同序列執(zhí)行,可添加、合并或完全忽略(例如不是所有所描述的動(dòng)作或事件均為實(shí)踐所述技術(shù)所必需的)。
圖9是說明用于向上切換發(fā)射數(shù)據(jù)的速率的實(shí)例過程的流程圖。出于說明的目的,相對(duì)于解碼器系統(tǒng)14來描述圖9的實(shí)例。然而,應(yīng)理解,圖9的過程可由多種其它裝置和/或處理器進(jìn)行。
解碼器系統(tǒng)14可確定接收到數(shù)據(jù)的時(shí)間(200)。舉例來說,在一些情況下,解碼器系統(tǒng)14可識(shí)別接收到數(shù)據(jù)并將其存儲(chǔ)在解碼器系統(tǒng)14處的時(shí)間。在其他情況下,解碼器系統(tǒng)14可識(shí)別通過解碼器系統(tǒng)14來處理(例如解碼)數(shù)據(jù)的時(shí)間。
解碼器系統(tǒng)14還可確定接收到的數(shù)據(jù)的播出時(shí)間(202)。舉例來說,所述接收到的數(shù)據(jù)可包含既定輸出數(shù)據(jù)來向用戶顯示的時(shí)間的指示。因此,播出時(shí)間的指示可輔助解碼器系統(tǒng)14組織數(shù)據(jù)以用于輸出。
解碼器系統(tǒng)14可確定可允許的過多延遲參數(shù)(204)。舉例來說,解碼器系統(tǒng)14可基于接收到數(shù)據(jù)的時(shí)間與安排所述接收到的數(shù)據(jù)播出的時(shí)間之間的差來確定可允許的過多延遲參數(shù)。如本文所述,延遲可指數(shù)據(jù)可用于跨網(wǎng)絡(luò)鏈路發(fā)射的時(shí)間與所述數(shù)據(jù)實(shí)際上在發(fā)送器裝置處發(fā)射到所述網(wǎng)絡(luò)的時(shí)間之間的時(shí)間。因此,所述可允許的過多延遲參數(shù)可指示在應(yīng)用用戶體驗(yàn)之前,所述系統(tǒng)可支持的延遲的量。就是說,可允許的過多延遲參數(shù)通??芍甘景l(fā)送器裝置可利用的時(shí)間量,作為增加位速率而不影響用戶體驗(yàn)的基礎(chǔ)。
解碼器系統(tǒng)14接著可確定發(fā)送器位速率增加(206)。舉例來說,根據(jù)本發(fā)明的方面,解碼器系統(tǒng)14可基于可允許的過多延遲參數(shù)來確定發(fā)送器位速率增加。就是說,解碼器系統(tǒng)14可確定發(fā)送器裝置可使發(fā)送速率增加多少,而不將擁塞引入到所述系統(tǒng)中。
在一些實(shí)例中,解碼器系統(tǒng)14可確定將添加到發(fā)送速率的逐步速率增加。舉例來說,解碼器系統(tǒng)14可基于可允許的過多延遲參數(shù)以及在確定發(fā)送速率增加(例如當(dāng)前接收速率)之前接收數(shù)據(jù)的當(dāng)前平均發(fā)送速率,來確定所述發(fā)送器位速率增加。在此實(shí)例中,解碼器系統(tǒng)14可確定可使當(dāng)前發(fā)送速率增加多少,而不使所述速率增加超出可持續(xù)鏈路速率(例如在包的所安排播出時(shí)間之后,所述包到達(dá)解碼器系統(tǒng)14的速率)。
在一些情況下,解碼器系統(tǒng)14還可考慮在解碼器系統(tǒng)14與發(fā)送器裝置之間發(fā)射消息所需的時(shí)間(例如往返時(shí)間)的量和/或與識(shí)別解碼器系統(tǒng)14處的延遲相關(guān)聯(lián)的延遲。舉例來說,解碼器系統(tǒng)14可基于可允許的過多延遲參數(shù)乘以接收速率的積與往返時(shí)間和用于檢測(cè)解碼器系統(tǒng)14處的延遲的時(shí)間的總和的比率,來確定發(fā)送器位速率增加。
解碼器系統(tǒng)14接著可發(fā)射發(fā)送速率增加的指示(208)。舉例來說,解碼器系統(tǒng)14可將表示逐步發(fā)送速率增加的數(shù)據(jù)發(fā)送到發(fā)送器裝置,以供所述發(fā)送器裝置添加到發(fā)送速率。在另一實(shí)例中,解碼器系統(tǒng)14可將表示并入有發(fā)送速率增加的所請(qǐng)求發(fā)送速率的數(shù)據(jù)發(fā)送到所述發(fā)送器裝置。
在一些實(shí)例中,當(dāng)發(fā)送器位速率增加超過閾值量時(shí),解碼器系統(tǒng)14可僅發(fā)射發(fā)送器位速率增加的指示。舉例來說,解碼器系統(tǒng)14可將發(fā)送器位速率增加與預(yù)定閾值進(jìn)行比較。在一個(gè)實(shí)例中,解碼器系統(tǒng)14可僅在發(fā)送器位速率增加超過所述接收速率的大約5%時(shí),發(fā)射發(fā)送器位速率增加的所述指示。在另一實(shí)例中,解碼器系統(tǒng)14可僅在發(fā)送器位速率增加超過接收速率的大約15%時(shí)發(fā)射所述發(fā)送器位速率增加的所述指示。其它閾值或百分比也是可能的。
應(yīng)理解,取決于實(shí)例,相對(duì)于圖9所描述的技術(shù)中的任一者的某些動(dòng)作或事件可以不同序列執(zhí)行,可添加、合并或完全忽略(例如不是所有所描述的動(dòng)作或事件均為實(shí)踐所述技術(shù)所必需的)。
雖然已相對(duì)于特定角度描述了本文所述的某些實(shí)例(例如由“發(fā)送器裝置”或“接收器裝置”執(zhí)行),但應(yīng)理解,本發(fā)明的技術(shù)不以此方式受限。舉例來說,如上所述,VT通常是雙向通信流。因此,可例如通過“發(fā)送器裝置”和“接收器裝置”兩者來對(duì)正向和反向網(wǎng)絡(luò)路徑應(yīng)用類似技術(shù)。此外,雖然出于說明的目的,相對(duì)于某一角度來示出和描述某些裝置,但應(yīng)理解,本文所述的裝置可具有比示出的組件多或少的組件。舉例來說,發(fā)送器裝置可并入有視頻編碼器20(圖2)和視頻解碼器42(圖3)兩者,且可執(zhí)行本文所述的技術(shù)中的每一者。
在一或多個(gè)實(shí)例中,所描述的功能可以硬件、軟件、固件或其任何組合來實(shí)施。如果用軟件實(shí)施,那么所述功能可作為一或多個(gè)指令或代碼在計(jì)算機(jī)可讀媒體上存儲(chǔ)或傳輸,且由基于硬件的處理單元執(zhí)行。計(jì)算機(jī)可讀媒體可包含計(jì)算機(jī)可讀存儲(chǔ)媒體,其對(duì)應(yīng)于例如數(shù)據(jù)存儲(chǔ)媒體等有形媒體,或包含任何促進(jìn)將計(jì)算機(jī)程序從一處傳送到另一處的媒體(例如,根據(jù)一種通信協(xié)議)的通信媒體。以此方式,計(jì)算機(jī)可讀媒體通??蓪?duì)應(yīng)于(1)非暫時(shí)性的有形計(jì)算機(jī)可讀存儲(chǔ)媒體或(2)通信媒體,例如信號(hào)或載波。數(shù)據(jù)存儲(chǔ)媒體可為可由一或多個(gè)計(jì)算機(jī)或一個(gè)或多個(gè)處理器存取以檢索用于實(shí)施本發(fā)明中描述的技術(shù)的指令、代碼及/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。計(jì)算機(jī)程序產(chǎn)品可包含計(jì)算機(jī)可讀媒體。
借助于實(shí)例而非限制,此類計(jì)算機(jī)可讀存儲(chǔ)媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器或可用來存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)的形式的期望程序代碼并且可由計(jì)算機(jī)存取的任何其它媒體。并且,任何連接被恰當(dāng)?shù)胤Q作計(jì)算機(jī)可讀媒體。舉例來說,如果使用同軸纜線、光纖纜線、雙絞線、數(shù)字訂戶線(DSL)或例如紅外線、無線電和微波等無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸指令,那么同軸纜線、光纖纜線、雙絞線、DSL或例如紅外線、無線電和微波等無線技術(shù)包含在媒體的定義中。但是,應(yīng)理解,所述計(jì)算機(jī)可讀存儲(chǔ)媒體和數(shù)據(jù)存儲(chǔ)媒體并不包括連接、載波、信號(hào)或其它暫時(shí)媒體,而是實(shí)際上針對(duì)于非暫時(shí)性有形存儲(chǔ)媒體。如本文中所使用,磁盤和光盤包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟性磁盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤利用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各項(xiàng)的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
可由例如一或多個(gè)數(shù)字信號(hào)處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一或多個(gè)處理器來執(zhí)行指令。因此,如本文中所使用的術(shù)語“處理器”可指前述結(jié)構(gòu)或適合于實(shí)施本文中所描述的技術(shù)的任一其它結(jié)構(gòu)中的任一者。另外,在一些方面,本文所述的功能性可為在專用硬件和/或軟件單元或經(jīng)配置以用于編碼和解碼的模塊內(nèi)提供,或并入在組合的編解碼器中。而且,所述技術(shù)可完全實(shí)施于一或多個(gè)電路或邏輯元件中。
本發(fā)明的技術(shù)可在廣泛多種裝置或設(shè)備中實(shí)施,包含無線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所公開的技術(shù)的裝置的功能方面,但未必需要由不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上文所描述,各種單元可結(jié)合合適的軟件和/或固件組合在編解碼器硬件單元中,或者通過互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。
已描述了各種實(shí)例。這些和其它實(shí)例在所附權(quán)利要求書的范圍內(nèi)。