本發(fā)明涉及用于估計(jì)處理器的負(fù)荷的方法和設(shè)備。
背景技術(shù):
互聯(lián)網(wǎng)上的多媒體內(nèi)容的流傳輸近年來已經(jīng)成為越來越普遍的應(yīng)用。諸如點(diǎn)播電視、直播電視觀看、直播視頻流傳輸、音頻流傳輸、視頻會議、網(wǎng)絡(luò)會議、可視電話、互聯(lián)網(wǎng)協(xié)議語音(VoIP)以及許多其它的廣泛的多媒體應(yīng)用依靠端到端流傳輸解決方案。對以高質(zhì)量播放流傳輸媒體存在逐漸增加的需求。
高質(zhì)量的媒體通常需要能以高分辨率和幀率(除其它參數(shù)以外)捕捉媒體的媒體源。例如,許多攝像機(jī)現(xiàn)在能夠以高清晰度(HD)、4K或甚至8K的分辨率捕捉視頻。甚至更大的分辨率被設(shè)想用于未來的視頻應(yīng)用。來自這樣的媒體源的原始數(shù)據(jù)由于高數(shù)據(jù)速率而不適于通過互聯(lián)網(wǎng)傳輸。例如,HD視頻具有超過100MBps的持續(xù)數(shù)據(jù)速率。因此,原始的媒體數(shù)據(jù)在通過互聯(lián)網(wǎng)傳輸之前被壓縮。
存在許多用于壓縮媒體數(shù)據(jù)的編解碼器。編碼原始媒體數(shù)據(jù)減小其數(shù)據(jù)速率同時(shí)保持該原始源材料的質(zhì)量的特定水平。編碼媒體要求顯著的處理能力,尤其是當(dāng)編碼高質(zhì)量的媒體時(shí)。設(shè)備上的處理容量通常與其它應(yīng)用共享,并且來自其它應(yīng)用的高處理需求可能導(dǎo)致處理器負(fù)荷的增加以及用于編碼媒體的可用容量的減小。該處理器負(fù)荷的增加可能導(dǎo)致編碼和發(fā)送媒體流的延遲。這樣的延遲可能具有不期望的影響,諸如“實(shí)時(shí)”媒體的重放的延遲、分組未及時(shí)到達(dá)重放設(shè)備以便重放等。因此,需要估計(jì)處理器上的負(fù)荷從而(例如)調(diào)整媒體流以消除由處理器上的負(fù)荷所導(dǎo)致的任何影響。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)第一方面,提供了一種在用于發(fā)送媒體流的設(shè)備處估計(jì)處理器負(fù)荷的方法,所述設(shè)備包括編碼器和能夠執(zhí)行用于所述編碼器的指令的處理器,所述方法包括以下步驟:在所述編碼器處對第一媒體幀和第二媒體幀進(jìn)行編碼;確定與所述第一媒體幀相關(guān)聯(lián)的第一時(shí)間戳和與所述第二媒體幀相關(guān)聯(lián)的第二時(shí)間戳之間的第一時(shí)段;確定代表所述第一媒體幀的編碼完成的第一完成時(shí)間與代表所述第二媒體幀的編碼完成的第二完成時(shí)間之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成處理器負(fù)荷的度量。
所述設(shè)備可包括分組器,根據(jù)在所述分組器處接收到的第一編碼幀來確定所述第一完成時(shí)間,并且根據(jù)在所述分組器處接收到的第二編碼幀來確定所述第二完成時(shí)間。
所述設(shè)備可包括被配置成對編碼幀進(jìn)行分組的分組器,并且其中,根據(jù)從所述分組器輸出的第一編碼幀的第一分組來確定所述第一完成時(shí)間;并且根據(jù)從所述分組器輸出的第二編碼幀的第一分組來確定所述第二完成時(shí)間。
所述分組器可被配置成將編碼幀分組成RTP分組。
該方法還可包括以下步驟:將所述度量發(fā)送至用于接收所述媒體流的設(shè)備。
該方法還可包括以下步驟:接收網(wǎng)絡(luò)的延遲的度量;以及根據(jù)所述延遲的度量和所估計(jì)的處理器負(fù)荷來調(diào)整用于所述媒體流的發(fā)送帶寬。
該方法還可包括在所述接收設(shè)備處的以下步驟:形成所述網(wǎng)絡(luò)的延遲的度量;經(jīng)由所述網(wǎng)絡(luò)接收所述處理器負(fù)荷的度量;以及根據(jù)所述處理器負(fù)荷的度量調(diào)整所述延遲的度量。
可通過下列步驟形成所述網(wǎng)絡(luò)的延遲的度量:確定在接收設(shè)備處接收所述第一媒體幀的第一接收到的分組與接收所述第二媒體幀的第一接收到的分組之間的第三時(shí)段,其中,所述第一媒體幀的所述分組包括所述第一時(shí)間戳,并且所述第二媒體幀的所述分組包括所述第二時(shí)間戳;確定所述第一時(shí)間戳與所述第二時(shí)間戳之間的第四時(shí)段;以及根據(jù)所述第三時(shí)段與所述第四時(shí)段之間的差形成所述延遲的度量。
可通過下列步驟形成所述網(wǎng)絡(luò)的延遲的度量:確定在接收所述第一媒體幀與接收所述第二媒體幀之間的第三時(shí)段,其中,所述第一媒體幀包括所述第一時(shí)間戳,并且所述第二媒體幀包括所述第二時(shí)間戳;確定所述第一時(shí)間戳與所述第二時(shí)間戳之間的第四時(shí)段;以及根據(jù)所述第三時(shí)段與所述第四時(shí)段之間的差形成所述延遲的度量。
該方法還可包括以下步驟:如果所述第二時(shí)段大于所述第一時(shí)段,則確定所述處理器超負(fù)荷。
該方法還可包括以下步驟:響應(yīng)于確定所述處理器超負(fù)荷,改變用于對所述媒體幀進(jìn)行編碼的參數(shù),以便使要被所述編碼器輸出的幀的質(zhì)量降低。
根據(jù)第二方面,提供了一種用于識別一對網(wǎng)絡(luò)設(shè)備之間的網(wǎng)絡(luò)狀況的方法,其中,所述設(shè)備中的一個(gè)包括能夠執(zhí)行用于形成通過網(wǎng)絡(luò)傳輸媒體流的指令的處理器,所述方法包括以下步驟:監(jiān)測在通過所述網(wǎng)絡(luò)接收媒體中的延遲的度量;監(jiān)測所述處理器上的負(fù)荷的度量;以及根據(jù)所述延遲的度量的變化和所述處理器上的所述負(fù)荷的度量識別網(wǎng)絡(luò)狀況。
識別的步驟可包括:如果所述延遲的度量的變化表示網(wǎng)絡(luò)延遲增加,并且所述負(fù)荷的度量表示所述處理器未超負(fù)荷,則識別出所述網(wǎng)絡(luò)擁塞。
識別的步驟可包括:如果所述延遲的度量的變化表示網(wǎng)絡(luò)延遲增加,并且所述負(fù)荷的度量表示所述處理器超負(fù)荷,則識別出所述網(wǎng)絡(luò)未擁塞。
監(jiān)測延遲的度量的步驟可包括:確定接收初始媒體幀的第一接收到的分組與接收隨后媒體幀的第一接收到的分組之間的第一時(shí)段,其中,每個(gè)接收到的分組都包括時(shí)間戳;確定所述初始媒體幀的分組的時(shí)間戳與所述隨后媒體幀的分組的時(shí)間戳之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成所述延遲的度量。
所述分組可以是RTP分組??筛鶕?jù)RTP時(shí)間戳確定所述延遲的度量。
監(jiān)測延遲的度量的步驟可包括:確定接收初始媒體幀與接收隨后媒體幀之間的第一時(shí)段,其中,每個(gè)接收到的幀都包括時(shí)間戳;確定所述初始媒體幀的時(shí)間戳與所述隨后媒體幀的時(shí)間戳之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成所述延遲的度量。
根據(jù)第三方面,提供了一種用于發(fā)送媒體流的設(shè)備,所述設(shè)備包括:編碼器,所述編碼器被配置成對第一媒體幀和第二媒體幀進(jìn)行編碼;處理器,所述處理器能夠執(zhí)行用于所述編碼器的指令;以及控制器,所述控制器被配置成:確定與所述第一媒體幀相關(guān)聯(lián)的第一時(shí)間戳和與所述第二媒體幀相關(guān)聯(lián)的第二時(shí)間戳之間的第一時(shí)段;確定代表所述第一媒體幀的編碼完成的第一完成時(shí)間與代表所述第二媒體幀的編碼完成的第二完成時(shí)間之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成處理器負(fù)荷的度量。
該設(shè)備還可包括分組器,該分組器被配置成對編碼幀進(jìn)行分組,其中,所述控制器被配置成根據(jù)在所述分組器處接收到的第一編碼幀來確定所述第一完成時(shí)間,并且根據(jù)在所述分組器處接收到的第二編碼幀來確定所述第二完成時(shí)間。
該設(shè)備還可包括分組器,該分組器被配置成對編碼幀進(jìn)行分組,其中,所述控制器被配置成根據(jù)從所述分組器輸出的第一編碼幀的第一分組來確定所述第一完成時(shí)間,并且根據(jù)從所述分組器輸出的第二編碼幀的第一分組來確定所述第二完成時(shí)間。
所述分組器可被配置成將編碼幀分組成RTP分組
所述控制器可被配置成,如果所述第二時(shí)段大于所述第一時(shí)段,則確定所述處理器超負(fù)荷。
響應(yīng)于確定所述處理器超負(fù)荷,所述控制器可被配置成改變用于對所述媒體幀進(jìn)行編碼的參數(shù),以便使要被所述編碼器輸出的幀的質(zhì)量降低。
該設(shè)備還可包括收發(fā)器,所述收發(fā)器被配置成將所述度量發(fā)送至用于接收所述媒體流的設(shè)備。
所述收發(fā)器可被配置成接收所述網(wǎng)絡(luò)的延遲的度量;并且所述控制器被配置成根據(jù)所述延遲的度量和所估計(jì)的處理器負(fù)荷來調(diào)整用于所述媒體流的發(fā)送帶寬。
根據(jù)第四方面,提供了一種用于經(jīng)由網(wǎng)絡(luò)接收媒體流的設(shè)備,所述設(shè)備包括:控制器,所述控制器被配置成形成所述網(wǎng)絡(luò)的延遲的度量;以及收發(fā)器,所述收發(fā)器被配置成從發(fā)送所述媒體流的設(shè)備接收處理器負(fù)荷的度量;所述控制器被配置成根據(jù)所述處理器負(fù)荷的度量調(diào)整所述延遲的度量。
可以通過下列步驟形成所述網(wǎng)絡(luò)延遲的度量:確定在所述設(shè)備處接收第一媒體幀的第一接收到的分組與接收第二媒體幀的第一接收到的分組之間的第一時(shí)段,其中,所述第一媒體幀的分組包括第一時(shí)間戳,并且所述第二媒體幀的分組包括第二時(shí)間戳;確定所述第一時(shí)間戳與所述第二時(shí)間戳之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成所述延遲的度量。
可以通過下列步驟形成所述網(wǎng)絡(luò)延遲的度量:確定接收第一媒體幀與接收第二媒體幀之間的第一時(shí)段,其中,所述第一媒體幀包括第一時(shí)間戳,并且所述第二媒體幀包括第二時(shí)間戳;確定所述第一時(shí)間戳與所述第二時(shí)間戳之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成所述延遲的度量。
根據(jù)第五方面,提供了一種用于識別網(wǎng)絡(luò)狀況的設(shè)備,所述設(shè)備包括控制器,該控制器被配置成:監(jiān)測在通過網(wǎng)絡(luò)接收媒體流中的延遲的度量;監(jiān)測能夠執(zhí)行用于形成所述媒體流的指令的處理器上的負(fù)荷的度量;以及根據(jù)所述延遲的度量的變化和所述處理器上的所述負(fù)荷的度量識別網(wǎng)絡(luò)狀況。
所述控制器可被配置成,如果所述延遲的度量的變化表示網(wǎng)絡(luò)延遲增加,并且所述負(fù)荷的度量表示所述處理器未超負(fù)荷,則識別出所述網(wǎng)絡(luò)擁塞。
所述控制器可被配置成,如果所述延遲的度量的變化表示網(wǎng)絡(luò)延遲增加,并且所述負(fù)荷的度量表示所述處理器超負(fù)荷,則識別出所述網(wǎng)絡(luò)未擁塞。
所述控制器可被配置成通過以下操作監(jiān)測所述延遲的度量:確定接收初始媒體幀的第一接收到的分組與接收隨后媒體幀的第一接收到的分組之間的第一時(shí)段,其中,每個(gè)接收到的分組都包括時(shí)間戳;確定所述初始媒體幀的分組的時(shí)間戳與所述隨后媒體幀的分組的時(shí)間戳之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成所述延遲的度量。
所述分組可以是RTP分組??筛鶕?jù)RTP時(shí)間戳確定所述延遲的度量。
所述控制器可被配置成通過以下操作監(jiān)測所述延遲的度量:確定接收初始媒體幀與接收隨后媒體幀之間的第一時(shí)段,其中,每個(gè)接收到的幀都包括時(shí)間戳;確定所述初始媒體幀的時(shí)間戳與所述隨后媒體幀的時(shí)間戳之間的第二時(shí)段;以及根據(jù)所述第一時(shí)段與所述第二時(shí)段之間的差形成所述延遲的度量。
根據(jù)第六方面,提供了用于實(shí)現(xiàn)上述方法的機(jī)器可讀代碼。
根據(jù)第七方面,提供了一種其上編碼有用于實(shí)現(xiàn)上述的方法的機(jī)器可讀代碼的機(jī)器可讀非瞬時(shí)存儲介質(zhì)。
附圖說明
現(xiàn)在將參照附圖,通過示例的方式描述本發(fā)明。在附圖中:
圖1示出發(fā)送設(shè)備和接收設(shè)備的示例;
圖2a至圖2d示出在各種處理器負(fù)荷和編碼器參數(shù)下的幀接收時(shí)序;
圖3a至圖3d示出在各種網(wǎng)絡(luò)狀況下的幀接收時(shí)序;以及
圖4是示出估計(jì)處理器負(fù)荷的示例的流程圖。
具體實(shí)施方式
提供以下描述以使得本領(lǐng)域的任何技術(shù)人員都能夠制作和使用本發(fā)明。對所公開的實(shí)施方式的各種修改對于本領(lǐng)域的技術(shù)人員來說將是顯而易見的。
本文所定義的通用原理在不脫離本發(fā)明的精神和范圍的情況下可以被應(yīng)用到其它實(shí)施方式和應(yīng)用。因此本發(fā)明不旨在被限制于所示實(shí)施方式,而是旨在賦予本發(fā)明與本文所公開的原理和特征一致的最寬的范圍。
圖1描繪了發(fā)送設(shè)備10,其可以是能夠產(chǎn)生基于分組的數(shù)據(jù)的任何適合的設(shè)備,諸如計(jì)算機(jī)、智能電話、可視電話等。發(fā)送設(shè)備10包括用于連接到諸如互聯(lián)網(wǎng)或其它基于分組的網(wǎng)絡(luò)的通信網(wǎng)絡(luò)的收發(fā)器11。發(fā)送設(shè)備10可以經(jīng)由收發(fā)器11向和/或從通信網(wǎng)絡(luò)12發(fā)送和/或接收分組。
發(fā)送設(shè)備10包括媒體源13。媒體源13例如可以是照相機(jī)、麥克風(fēng)、存儲設(shè)備(例如閃存、硬盤)、可拆卸存儲設(shè)備(例如存儲卡、CD)、網(wǎng)路存儲設(shè)備(例如網(wǎng)絡(luò)驅(qū)動(dòng)器或者云)、互聯(lián)網(wǎng)媒體提供商(例如流傳輸服務(wù))、無線電(例如DAB)等。媒體源13可以被包括在發(fā)送設(shè)備10內(nèi)或者經(jīng)由有線或無線接口(諸如HDMI、USB、模擬信號線輸入(line-in)、I2S、S/PDIF、藍(lán)牙、以太網(wǎng)、Wi-Fi、DAB等)連接到發(fā)送設(shè)備10。
發(fā)送設(shè)備10包括用于編碼來自媒體源13的媒體數(shù)據(jù)(例如視頻和/或音頻數(shù)據(jù))的編碼器14。來自媒體源13的媒體可以作為媒體幀被提供。編碼器14可以根據(jù)諸如ITU-T建議書H.264或ISO/IEC國際標(biāo)準(zhǔn)14496-10(二者也被稱為高級視頻編碼(AVC))、MPEG-DASH、HTTP實(shí)時(shí)流傳輸或任何其它適合的編解碼器的編碼標(biāo)準(zhǔn)來編碼媒體幀。
發(fā)送設(shè)備10可以包括分組器15,其從編碼器14接收經(jīng)編碼的媒體幀并將這些幀分組成一系列分組,以便經(jīng)由收發(fā)器11通過網(wǎng)絡(luò)12進(jìn)行發(fā)送。每幀可以被分組成一個(gè)或更多個(gè)分組。分組器15可以根據(jù)實(shí)時(shí)傳輸協(xié)議(RTP)標(biāo)準(zhǔn)來分組媒體??梢允褂闷渌鼧?biāo)準(zhǔn)化的分組格式。分組器15將這些分組提供至收發(fā)器11,以便通過網(wǎng)絡(luò)12發(fā)送至接收設(shè)備20。
接收設(shè)備20包括用于從網(wǎng)絡(luò)12接收分組的收發(fā)器21。分組可以被提供至緩沖區(qū)22,其可以是能夠根據(jù)媒體數(shù)據(jù)在分組中的播放順序?qū)Ψ纸M進(jìn)行排序的抖動(dòng)緩沖區(qū)。該序列可以通過包含在每一分組中的序列號或時(shí)間戳來表示。解碼器23對由緩沖區(qū)22按順序提供至該解碼器23的分組進(jìn)行解碼以形成媒體流。解碼器23根據(jù)編碼器13所使用的編解碼器對分組進(jìn)行解碼。媒體用戶24接收經(jīng)解碼的媒體流以便進(jìn)行重放。媒體用戶24例如可以是音頻和/或視頻播放器。
發(fā)送設(shè)備10包括處理器16(其例如可以是CPU或GPU)。處理器16執(zhí)行用于在發(fā)送設(shè)備10處運(yùn)行的應(yīng)用的指令。這些指令可能來自用于對從媒體源13接收到的媒體幀進(jìn)行編碼的編碼器14、來自用于分組經(jīng)編碼的媒體幀的分組器15、或來自可以在發(fā)送設(shè)備10處運(yùn)行的其它應(yīng)用(未示出)。
如上所述,有時(shí)處理器16可能變得超負(fù)荷。通常,當(dāng)其它應(yīng)用正使用大多數(shù)的處理器資源而使得其影響編碼器13的操作時(shí),處理器16可被認(rèn)為超負(fù)荷。處理器16的超負(fù)荷可能由需求的峰值、熱節(jié)流(throttling)、流氓(rogue)處理或其它原因而引起。處理器16的超負(fù)荷可能導(dǎo)致正被發(fā)送至接收設(shè)備20的媒體流出現(xiàn)問題。因此,期望確定處理器16上的負(fù)荷以使得可以適當(dāng)?shù)卣{(diào)整需要由處理器16執(zhí)行的工作量。
發(fā)送設(shè)備10可以包括控制器17,其能夠估計(jì)處理器16上的負(fù)荷并且基于所估計(jì)的負(fù)荷使得需要由處理器16執(zhí)行的工作量得以調(diào)整。例如,如果控制器17確定處理器16超負(fù)荷,則其可以使編碼器14使用對處理器16需求更少的編解碼器。
控制器17可以通過比較幀被提供至編碼器14的速率與經(jīng)編碼的幀從該編碼器14輸出的速率之間的差來估計(jì)處理器16上的負(fù)荷。如上所述,編碼媒體幀通常需要顯著的處理能力并且因此對編碼器14編碼幀所花費(fèi)的時(shí)間量的測量提供了處理器16上的負(fù)荷的指征。
來自媒體源13的每一幀都與時(shí)間戳相關(guān)聯(lián)。時(shí)間戳可以表示來自媒體源13的媒體根據(jù)時(shí)鐘(未示出)被采樣的時(shí)間(即,采樣時(shí)刻),該時(shí)鐘可以是在發(fā)送設(shè)備10和接收設(shè)備20處同步的掛鐘。幀從媒體源13被提供至編碼器14的速率可以根據(jù)這些幀的時(shí)間戳來確定。經(jīng)編碼的幀從編碼器14輸出的速率可以根據(jù)在編碼器14之后的媒體處理流水線中的數(shù)據(jù)處理單元(例如分組器15或收發(fā)器11或可能在編碼器14與收發(fā)器11之間出現(xiàn)的任何其它適合的單元)中的一個(gè)處接收到每個(gè)經(jīng)編碼的幀的時(shí)間來確定。將輸入幀率與輸出幀率進(jìn)行比較以形成對處理器上的負(fù)荷的估計(jì)。例如,如果輸出幀率小于輸入幀率,則這可以表示處理器16超負(fù)荷。然后控制器17可以采取適當(dāng)?shù)男袆?dòng)來降低對處理器16的需求。
優(yōu)選地,控制器17形成用于估計(jì)處理器16上的負(fù)荷的負(fù)荷度量。該負(fù)荷度量可以基于從編碼器14接收每個(gè)新編碼的幀的時(shí)間與從編碼器14接收基準(zhǔn)編碼的幀的時(shí)間之間的時(shí)間差以及該時(shí)間差與這些幀的時(shí)間戳之間的時(shí)間差的比較。公式1是可以如何進(jìn)行比較的示例:
負(fù)荷度量=(CurrentFramePk-RefFramePk)-(CurrentFrameTS-RefFrameTS)
(1)
其中,CurrentFramePk是在分組器15處接收到經(jīng)編碼的當(dāng)前幀的時(shí)間,RefFramePk是在分組器15處接收到經(jīng)編碼的基準(zhǔn)幀的時(shí)間,CurrentFrameTS是經(jīng)編碼的當(dāng)前幀的時(shí)間戳,并且RefFrameTS是經(jīng)編碼的基準(zhǔn)幀的時(shí)間戳。幀的時(shí)間戳可以被包括在該幀內(nèi)。
在該示例以及下面的示例中,在分組器15處接收到經(jīng)編碼的幀的時(shí)間得以確定。然而,如上所述,接收到經(jīng)編碼的幀的時(shí)間被確定的點(diǎn)可能是該幀的編碼已經(jīng)完成之后的任何點(diǎn),其通常將是編碼器14之后的某一點(diǎn)。例如,用于經(jīng)編碼的幀的第一分組從分組器15被收發(fā)器11接收到的時(shí)間可以被用于確定CurrentFrameRx和RefFrameRx。相比于編碼媒體,分組器15使用用于分組化的處理資源的量是可相對忽略不計(jì)的,并因此確定在分組器15之前接收經(jīng)編碼的幀的時(shí)間或者在分組器15之后接收這些幀的分組的時(shí)間之間沒有明顯的差。
公式2是在使用RTP分組來發(fā)送媒體數(shù)據(jù)的系統(tǒng)中可以如何確定擁塞度量的示例:
負(fù)荷度量=(CurFrameWALLTS-RefFrameWALLTS)-[(CurFrameRTPTS-RefFrameRTPTS)/90](2)
其中,CurFrameWALLTS是在分組器15處接收到當(dāng)前幀的時(shí)間(以毫秒為單位),RefFrameWALLTS是在分組器15處接收到基準(zhǔn)幀的時(shí)間(以毫秒為單位),CurFrameRTPTS是包括在當(dāng)前幀中的時(shí)間戳,以及RefFrameRTPTS是包括在基準(zhǔn)幀中的時(shí)間戳。CurFrameRTPTS和RefFrameRTPTS時(shí)間戳可以由編碼器基于由媒體源13提供的幀率信息確定并應(yīng)用。除以90將時(shí)間戳的RTP時(shí)間單位轉(zhuǎn)換成毫秒。
基準(zhǔn)幀根據(jù)最佳可用知識被認(rèn)為是以盡可能最短的時(shí)間被編碼的幀。最初,媒體流的第一幀被選擇為基準(zhǔn)幀。隨后,每當(dāng)幀比之前的基準(zhǔn)幀更快地被編碼時(shí)就更新基準(zhǔn)幀。
圖2a至圖2d示出了顯示如何確定負(fù)荷度量以及其如何用于估計(jì)處理器16上的負(fù)荷的不同情況。
圖2a示出了其中處理器具有較低負(fù)荷并且在正常情況下運(yùn)行的情況。各箭頭代表已經(jīng)被編碼器14編碼的媒體幀。箭頭上面表示該幀的RTP時(shí)間戳(RTPTS)。由箭頭下面的時(shí)間(以毫秒為單位)表示各個(gè)經(jīng)編碼的幀在分組器15處被接收的時(shí)間。該時(shí)間作為相對于第一幀的時(shí)間被示出,但是其也可能是絕對時(shí)間。在這種情況下,第一幀被選擇為基準(zhǔn)幀。針對具有RTP時(shí)間戳的幀使用公式2,如下計(jì)算出針對各個(gè)幀的負(fù)荷度量:
第1幀:
負(fù)荷度量=(0-0)-((10000-10000)/90)=0
第2幀:
負(fù)荷度量=(100-0)-((19000-10000)/90)=(100-100)=0
第3幀:
負(fù)荷度量=(200-0)-((28000-10000)/90)=(200-200)=0
第4幀:
負(fù)荷度量=(300-0)-((37000-10000)/90)=(300-300)=0
第11幀:
負(fù)荷度量=(10000-0)-((910000-10000)/90)=(10000-10000)=0
第21幀:
負(fù)荷度量=(20000-0)-((1810000-10000)/90)=(20000-20000)=0
在該情況下,從第1幀至第21幀,負(fù)荷度量是恒定值零。這表示幀由編碼器14以最熟知的速率進(jìn)行編碼,并且因此處理器未超負(fù)荷并且為了發(fā)送媒體流的目的而令人滿意地運(yùn)行。
圖2b示出了其中處理器超負(fù)荷的情況。使用公式2,如下計(jì)算出針對各個(gè)幀的負(fù)荷度量:
第1幀:
負(fù)荷度量=(0-0)-((10000-10000)/90)=0
第2幀:
負(fù)荷度量=(200-0)-((19000-10000)/90)=(200-100)=100
第3幀:
負(fù)荷度量=(400-0)-((28000-10000)/90)=(400-200)=200
第4幀:
負(fù)荷度量=(1000-0)-((37000-10000)/90)=(1000-300)=700
第11幀:
負(fù)荷度量=(20000-0)-((910000-10000)/90)=(20000-10000)=10000
第21幀:
擁塞度量=(40000-0)-((1810000-10000)/90)=(40000-20000)=20000
由于第2幀至第21幀在分組器15處以漸增地延遲的方式被接收,所以該情況不同于圖2a的情況。當(dāng)處理器16超負(fù)荷時(shí),存在較少的處理能力可用于編碼器14編碼輸入幀。因此,花費(fèi)更大量的時(shí)間來完成幀的編碼,這導(dǎo)致在分組器15處接收經(jīng)編碼的幀的延遲。編碼器14的減速可能會導(dǎo)致在編碼器14的輸入緩沖器處幀的累積。這導(dǎo)致幀被漸增地延遲,因此針對各隨后的幀,負(fù)荷度量值增加。因此,漸增的負(fù)荷度量表示處理器16超負(fù)荷。
圖2c示出了其中存在編碼器14編碼幀所花費(fèi)的時(shí)間增加的情況,這可能是例如由于由編碼器14輸出的幀所需的像素分辨率的改變或者可能需要更多處理資源用于編碼幀的任何其它改變。該改變可能由于其它控制算法(諸如可以響應(yīng)于可用網(wǎng)絡(luò)帶寬的改變調(diào)整傳輸比特率的網(wǎng)絡(luò)帶寬自適應(yīng)算法)已經(jīng)開始。在圖2c的示例中,由于幀的像素分辨率的增加導(dǎo)致在第二幀與第三幀之間出現(xiàn)的編碼時(shí)間的增加(如圖所示)。使用公式2,如下計(jì)算出針對各個(gè)幀的負(fù)荷度量:
第1幀:
負(fù)荷度量=(0-0)-((10000-10000)/90)=0
第2幀:
負(fù)荷度量=(100-0)-((19000-10000)/90)=(100-100)=0
第3幀:
負(fù)荷度量=(250-0)-((28000-10000)/90)=(250-200)=50
第4幀:
負(fù)荷度量=(350-0)-((37000-10000)/90)=(350-300)=50
第11幀:
負(fù)荷度量=(10050-0)-((910000-10000)/90)=(10050-10000)=50
第21幀:
負(fù)荷度量=(20050-0)-((1810000-10000)/90)=(20050-20000)=50
在這種情況下,針對第三幀的負(fù)荷度量增加并且與針對隨后幀的增加值保持恒定。由于幀被輸入的速率和幀被編碼器14輸出的速率相同,所以這表示處理器16未超負(fù)荷并且令人滿意地運(yùn)行。延遲增加例如表示已經(jīng)存在在第二幀之后的各幀的編碼時(shí)間的增加(這可能是由于由編碼器14編碼的幀的像素分辨率的改變所導(dǎo)致的)。優(yōu)選地,當(dāng)通過質(zhì)量控制器15確定這種情況時(shí),從負(fù)荷度量的計(jì)算結(jié)果減去該恒定值(在本示例中是50),直到基準(zhǔn)幀被更新為止。
圖2d示出了其中存在編碼器14編碼幀所花費(fèi)的時(shí)間減少的情況,這可能是例如由于由編碼器14輸出的幀所需的使用的像素分辨率的改變或者編碼幀可能需要更少的處理資源的任何其它改變所導(dǎo)致的。在本示例中,由于幀的像素分辨率的減小而導(dǎo)致在第三幀與第四幀之間出現(xiàn)編碼時(shí)間的減少(如圖所示)。使用公式2,如下計(jì)算出針對各個(gè)幀的負(fù)荷度量:
第1幀:
負(fù)荷度量=(0-0)-((10000-10000)/90)=0
第2幀:
負(fù)荷度量=(100-0)-((19000-10000)/90)=(100-100)=0
第3幀:
負(fù)荷度量=(200-0)-((28000-10000)/90)=(200-200)=0
第4幀:
負(fù)荷度量=(250-0)-((37000-10000)/90)=(250-300)=-50
更新基準(zhǔn)幀,RefFrame=第四幀
第11幀:
負(fù)荷度量=(9950-250)-((910000-37000)/90)=(9700-9700)=0
第21幀:
負(fù)荷度量=(19950-250)-((1810000-37000)/90)=(19700-19700)=0
在這種情況下,針對第四幀的負(fù)荷度量減小。該減小例如表示從第四幀開始已經(jīng)存在像素分辨率的改變,這導(dǎo)致在編碼器14處需要更少量的時(shí)間來編碼幀。在這種情況下,第四幀被認(rèn)為是比第一幀更快地被編碼的幀,并因此基準(zhǔn)幀被從第一幀更新成第四幀,用于計(jì)算針對隨后幀的負(fù)荷度量。
控制器17可以監(jiān)測負(fù)荷度量的改變以確定處理器16上的負(fù)荷,如通過上述情況所描述的。基于所確定的處理器上的負(fù)荷,控制器17可以調(diào)整用于編碼器14的編碼參數(shù),以便降低對處理器的需求,使得幀可以按及時(shí)方式被發(fā)送。例如,如果確定處理器16超負(fù)荷,則控制器17可以使編碼器14降低要被該編碼器14輸出的幀的質(zhì)量(例如通過降低像素分辨率),使得編碼過程占用更少的資源。這將減少每幀所需的處理并因此減少編碼各幀所需的時(shí)間量??梢皂憫?yīng)于處理器超負(fù)荷通過控制器15對其它編碼器參數(shù)(諸如輸出幀率、比特率、顏色的數(shù)量、幀類型等)進(jìn)行調(diào)整??刂破?7可以被配置成如果處理器16超負(fù)荷則使發(fā)送設(shè)備10上的其它應(yīng)用降低對該處理器16的需求。通過該方法,將存在更多的處理資源可用于編碼器14,并因此媒體流的質(zhì)量能夠得以保持。
處理器上的負(fù)荷的確定可以與網(wǎng)絡(luò)延遲的度量結(jié)合使用以準(zhǔn)確地確定網(wǎng)絡(luò)12的狀況。網(wǎng)絡(luò)12的狀況可能會改變(例如,其可能變得擁塞),這可能會導(dǎo)致在接收設(shè)備20處接收分組的延遲。該延遲可能會導(dǎo)致太晚接收到媒體用戶24要按時(shí)播放的完整的幀。因此,期望確定網(wǎng)絡(luò)12的狀況是否已經(jīng)改變以及如何改變,使得發(fā)送設(shè)備10可以適當(dāng)?shù)卣{(diào)整其發(fā)送以便補(bǔ)償該改變。
接收設(shè)備20包括用于識別網(wǎng)絡(luò)12的改變的控制器25。該控制器25能夠確定分組何時(shí)被接收設(shè)備20接收。分組被接收的時(shí)間可以根據(jù)掛鐘或內(nèi)部時(shí)鐘(未示出)推導(dǎo)出,該內(nèi)部時(shí)鐘可能不一定與所述掛鐘同步??刂破?5還能夠確定由包括在各個(gè)接收到的分組中的時(shí)間戳表示的時(shí)間。控制器25能夠通過將在接收設(shè)備20處接收到分組的時(shí)間與由這些分組的時(shí)間戳表示的時(shí)間進(jìn)行比較來識別網(wǎng)絡(luò)狀況的改變(如下面更詳細(xì)地討論的)。控制器25可以將標(biāo)識出的改變的指征發(fā)送至發(fā)送設(shè)備10,使得該發(fā)送設(shè)備10可以適當(dāng)?shù)卣{(diào)整其發(fā)送參數(shù)??刂破?5還可以響應(yīng)于某些網(wǎng)絡(luò)狀況調(diào)整其接收參數(shù)(例如,目標(biāo)抖動(dòng)緩沖器大小)中的一些。
優(yōu)選地,(下面所描述的)擁塞度量被用作網(wǎng)絡(luò)延遲的度量。然而,可以使用網(wǎng)絡(luò)延遲的其它度量,諸如:
-分組往返時(shí)間。
-測量完整的幀之間的到達(dá)間(inter-arrival)時(shí)間。
-測量經(jīng)固定的時(shí)段(例如一秒)接收到的幀或分組的時(shí)間戳之間的時(shí)段并將該時(shí)段與所述固定的時(shí)段進(jìn)行比較。
-測量不同大小的分組對之間的擴(kuò)展,并作為成對的分組之間的時(shí)間擴(kuò)展以及它們的大小的函數(shù)估計(jì)可用帶寬。根據(jù)可用帶寬,分組對隨著它們穿過網(wǎng)絡(luò)元素而在時(shí)間上擴(kuò)展。
質(zhì)量控制器25可以使用擁塞度量來識別發(fā)送設(shè)備10與接收設(shè)備20之間的網(wǎng)絡(luò)狀況,諸如擁塞、路線改變等。使用每個(gè)新接收到的幀與基準(zhǔn)幀之間的到達(dá)間時(shí)間來確定擁塞度量。每個(gè)幀都可以由具有相同時(shí)間戳的一個(gè)或更多個(gè)分組構(gòu)成??梢酝ㄟ^比較完整的幀的到達(dá)或針對每個(gè)幀第一個(gè)接收到的分組的到達(dá)來確定幀之間的到達(dá)間時(shí)間。由于網(wǎng)絡(luò)12中的分組丟失、改變的網(wǎng)絡(luò)路徑等,所以針對每個(gè)幀第一個(gè)接收的分組可能不一定是被分組或被發(fā)送設(shè)備10發(fā)送的第一分組。
將新接收到的幀與基準(zhǔn)幀之間的到達(dá)時(shí)間間隔與這些幀的時(shí)間戳之間的時(shí)間差相比較。該比較被用于形成擁塞度量。公式3是可以如何進(jìn)行該比較的示例:
擁塞度量=(CurrentFrameRx-RefFrameRx)-(CurrentFrameTS-RefFrameTS)
(3)
其中,CurrentFrameRx是在接收設(shè)備20處針對當(dāng)前幀接收到第一分組的時(shí)間,RefFrameRX是在接收設(shè)備20處針對基準(zhǔn)幀接收到第一分組的時(shí)間,CurrentFrameTS是當(dāng)前幀的時(shí)間戳,以及RefFrameTS是基準(zhǔn)幀中的時(shí)間戳。另選地,CurrentFrameRx和RefFrameRX可以分別是接收到當(dāng)前幀的時(shí)間和接收到基準(zhǔn)幀的時(shí)間。
公式4是在使用RTP分組來發(fā)送媒體數(shù)據(jù)的系統(tǒng)中可以如何確定擁塞度量的示例:
擁塞度量=(CurrentFrameRx-RefFrameRx)-[(CurrentFrameTS-RefFrameTS)/90](4)
其中,CurrentFrameRx是在接收設(shè)備20處針對當(dāng)前幀接收到第一個(gè)RTP分組的時(shí)間(以毫秒為單位),RefFrameRX是在接收設(shè)備20處針對基準(zhǔn)幀接收到第一個(gè)RTP分組的時(shí)間(以毫秒為單位),CurrentFrameTS是包括在當(dāng)前幀的第一個(gè)RTP分組的RTP報(bào)頭中的時(shí)間戳,以及RefFrameTS是包括在基準(zhǔn)幀的第一個(gè)RTP分組的RTP報(bào)頭中的時(shí)間戳。另選地,CurrentFrameRx是接收到當(dāng)前幀的時(shí)間(以毫秒為單位)、RefFrameRX是接收到基準(zhǔn)幀的時(shí)間(以毫秒為單位),以及CurrentFrameTS和RefFrameTS分別是包括在當(dāng)前幀和基準(zhǔn)幀中的時(shí)間戳。除以90將RTP時(shí)間單位轉(zhuǎn)換成毫秒。
如果擁塞度量是零或是在接近于零的某一閥值內(nèi),則認(rèn)為從網(wǎng)絡(luò)接收到的分組是“準(zhǔn)時(shí)(on-time)”的,并因此網(wǎng)絡(luò)正為了媒體流的目的而令人滿意地運(yùn)行?;鶞?zhǔn)幀根據(jù)最佳可用知識被認(rèn)為是準(zhǔn)時(shí)到達(dá)的幀。最初,媒體流的第一幀被選擇為基準(zhǔn)幀。隨后,每當(dāng)幀準(zhǔn)時(shí)或在某一閥值內(nèi)到達(dá)時(shí),則更新基準(zhǔn)幀。
圖3a至圖3d示出了顯示可如何使用擁塞度量以確定網(wǎng)絡(luò)狀況的各種情況。
圖3a示出了其中網(wǎng)絡(luò)在正常情況下運(yùn)行的情況。各箭頭表示使用RTP協(xié)議發(fā)送的媒體幀。箭頭上面是表示幀的RTP時(shí)間戳(RTPTS)。各個(gè)幀的第一分組被接收的時(shí)間則由箭頭下面的時(shí)間(以毫秒為單位)表示。該時(shí)間作為相對于第一幀的時(shí)間被示出,但是其也可能是絕對時(shí)間。在這種情況下,第一幀被選擇為基準(zhǔn)幀。針對RTP分組使用公式4,如下計(jì)算出針對各個(gè)幀的擁塞度量:
第1幀:
擁塞度量=(0-0)-((10000-10000)/90)=0
第2幀:
擁塞度量=(100-0)-((19000-10000)/90)=(100-100)=0
第3幀:
擁塞度量=(200-0)-((28000-10000)/90)=(200-200)=0
第4幀:
擁塞度量=(300-0)-((37000-10000)/90)=(300-300)=0
第11幀:
擁塞度量=(10000-0)-((910000-10000)/90)=(10000-10000)=0
第21幀:
擁塞度量=(20000-0)-((1810000-10000)/90)=(20000-20000)=0
在該情況下,從第1幀至第21幀,擁塞度量是恒定值零。這表示幀準(zhǔn)時(shí)到達(dá)接收設(shè)備20,并且因此網(wǎng)絡(luò)為了媒體流的目的而正在令人滿意地運(yùn)行。
圖3b示出了網(wǎng)絡(luò)中存在擁塞的情況。使用公式4,如下計(jì)算出針對各個(gè)幀的擁塞度量:
第1幀:
擁塞度量=(0-0)-((10000-10000)/90)=0
第2幀:
擁塞度量=(200-0)-((19000-10000)/90)=(200-100)=100
第3幀:
擁塞度量=(400-0)-((28000-10000)/90)=(400-200)=200
第4幀:
負(fù)荷度量=(1000-0)-((37000-10000)/90)=(1000-300)=700
第11幀:
擁塞度量=(20000-0)-((910000-10000)/90)=(20000-10000)=10000
第21幀:
擁塞度量=(40000-0)-((1810000-10000)/90)=(40000-20000)=20000
該情況由于針對第2幀至第21幀的第一個(gè)接收到的分組是以漸增地延遲的方式被接收的而不同于圖3a的情況。在擁塞期間,針對各個(gè)幀的擁塞度量與發(fā)送速率和瓶頸帶寬之間的失配成比例。在其它時(shí)間,擁塞度量接近于零或低于表示不擁塞的某一閥值。其中擁塞度量根據(jù)發(fā)送帶寬、瓶頸帶寬(或節(jié)流)以及網(wǎng)絡(luò)使用率而增加。
圖3c示出了其中存在單次網(wǎng)絡(luò)延遲增加的情況,單次網(wǎng)絡(luò)延遲增加發(fā)生在第二幀與第三幀之間(如圖所示)。使用公式4,如下計(jì)算出針對各個(gè)幀的擁塞度量:
第1幀:
擁塞度量=(0-0)-((10000-10000)/90)=0
第2幀:
擁塞度量=(100-0)-((19000-10000)/90)=(100-100)=0
第3幀:
擁塞度量=(250-0)-((28000-10000)/90)=(250-200)=50
第4幀:
擁塞度量=(350-0)-((37000-10000)/90)=(350-300)=50
第11幀:
擁塞度量=(10050-0)-((910000-10000)/90)=(10050-10000)=50
第21幀:
擁塞度量=(20050-0)-((1810000-10000)/90)=(20050-20000)=50
在這種情況下,針對第三幀的擁塞度量增加并且針對隨后幀的增加值保持不變。由于延遲是恒定的(而不是像圖3b的情況那樣漸增的),因此這表示該延遲不是由于擁塞所引起的。該延遲的增加例如表示存在網(wǎng)絡(luò)路徑的變化(如圖3c中路線改變箭頭所描繪的),其導(dǎo)致將分組從發(fā)送設(shè)備10傳送至接收設(shè)備20更長的時(shí)間量。優(yōu)選地,當(dāng)通過質(zhì)量控制器25確定這種情況時(shí),從擁塞度量的計(jì)算結(jié)果減去該恒定值(在本示例中是50)直到基準(zhǔn)幀被更新為止。
圖3d示出了其中存在單次網(wǎng)絡(luò)延遲減小的情況,單次網(wǎng)絡(luò)延遲減小發(fā)生在第三幀與第四幀之間(如圖所示)。使用公式4,如下計(jì)算出針對各個(gè)幀的擁塞度量:
第1幀:
擁塞度量=(0-0)-((10000-10000)/90)=0
第2幀:
擁塞度量=(100-0)-((19000-10000)/90)=(100-100)=0
第3幀:
擁塞度量=(200-0)-((28000-10000)/90)=(200-200)=0
第4幀:
擁塞度量=(250-0)-((37000-10000)/90)=(250-300)=-50
更新基準(zhǔn)幀,RefFrame=第四幀
第11幀:
擁塞度量=(9950-250)-((910000-37000)/90)=(9700-9700)=0
第21幀:
擁塞度量=(19950-250)-((1810000-37000)/90)=(19700-19700)=0
在這種情況下,針對第四幀的擁塞度量減小。該減小例如表示存在網(wǎng)絡(luò)路徑的變化(如圖3d中路線改變箭頭所描繪的),這導(dǎo)致將分組從發(fā)送設(shè)備10傳送至接收設(shè)備20更短的時(shí)間量。在這種情況下,第四幀被認(rèn)為是被準(zhǔn)時(shí)接收的,并因此基準(zhǔn)幀被從第一幀更新成第四幀,用于計(jì)算針對隨后的幀的擁塞度量。
將所描述的關(guān)于網(wǎng)絡(luò)擁塞度量的情況(圖3a至圖3d)與所描述的關(guān)于處理器負(fù)荷度量的情況(圖2a至圖2d)進(jìn)行比較,可以看出,發(fā)送設(shè)備10處的特定狀況可以將其自身表現(xiàn)為至接收設(shè)備20的網(wǎng)絡(luò)狀況。例如,當(dāng)處理器16在發(fā)送設(shè)備10處變得超負(fù)荷時(shí)(如上關(guān)于圖2b所描述的),在對幀進(jìn)行編碼期間存在漸增的延遲。該漸增的延遲導(dǎo)致分組的延遲發(fā)送,這進(jìn)而導(dǎo)致在接收設(shè)備20處接收分組的延遲。這導(dǎo)致盡管網(wǎng)絡(luò)表現(xiàn)正常但接收設(shè)備20觀察到漸增的擁塞度量。因此在發(fā)送設(shè)備10處超負(fù)荷的處理器將其自身表現(xiàn)為在接收設(shè)備20處至控制器25的網(wǎng)絡(luò)擁塞。同樣,與圖2c和圖2d相關(guān)描述的像素分辨率的改變可以表現(xiàn)為與圖3c和圖3d相關(guān)描述的網(wǎng)絡(luò)路徑的改變。
可以根據(jù)處理器負(fù)荷度量調(diào)整網(wǎng)絡(luò)擁塞度量,以避免將其自身表現(xiàn)為網(wǎng)絡(luò)12中的變化的發(fā)送設(shè)備10處的任何變化。這可以通過從針對各相應(yīng)幀的網(wǎng)絡(luò)擁塞度量減去針對各幀的處理器負(fù)荷度量來實(shí)現(xiàn)。發(fā)送設(shè)備10處的控制器17可以將針對各幀的處理器負(fù)荷度量的指征發(fā)送至接收設(shè)備20。接收設(shè)備20處的控制器25可以確定針對各幀的擁塞度量,然后減去接收到的針對相應(yīng)幀的負(fù)荷度量,并使用所得出的值來確定網(wǎng)絡(luò)的狀況。
另選地,接收設(shè)備20的控制器25可以將針對各幀的擁塞度量發(fā)送至發(fā)送設(shè)備10,以便控制器17可以確定網(wǎng)絡(luò)12的狀況??刂破?7可以暫時(shí)存儲針對各幀的處理器負(fù)荷度量,發(fā)送設(shè)備10發(fā)送處理器負(fù)荷度量,然后從其針對各幀接收的擁塞度量中減去處理器負(fù)荷度量。所得出的值然后可被用于確定網(wǎng)絡(luò)的狀況。發(fā)送設(shè)備10然后可根據(jù)所確定的網(wǎng)絡(luò)狀況來調(diào)整其媒體發(fā)送。例如,如果確定網(wǎng)絡(luò)是擁塞的,則質(zhì)量控制器15可以(作為響應(yīng))使發(fā)送設(shè)備10減小其發(fā)送帶寬。這可以通過(例如)降低要被發(fā)送的媒體的質(zhì)量、增加分組大小(這降低分組化消耗)、減少糾錯(cuò)冗余等來實(shí)現(xiàn)。優(yōu)選地,發(fā)送帶寬將被減小至低于擁塞的網(wǎng)絡(luò)帶寬,以便可以避免進(jìn)一步的擁塞。這將確保所發(fā)送的媒體分組以及時(shí)方式到達(dá)傳輸設(shè)備以便用于重放。
負(fù)荷度量向媒體流應(yīng)用提供了監(jiān)測處理器負(fù)荷的簡單且高效利用資源的方法。這消除了用于專門監(jiān)測處理器負(fù)荷并向媒體流應(yīng)用報(bào)告處理器負(fù)荷的任何單獨(dú)的處理或應(yīng)用的需求。負(fù)荷度量可以另外與擁塞度量結(jié)合使用以提供準(zhǔn)確的網(wǎng)絡(luò)延遲度量,所述網(wǎng)絡(luò)延遲度量然后可以被用于可靠地確定網(wǎng)絡(luò)狀況的變化以及這些變化的原因。發(fā)送設(shè)備可以適當(dāng)?shù)卣{(diào)整其編碼和/或發(fā)送參數(shù)以補(bǔ)償處理器負(fù)荷的變化和/或網(wǎng)絡(luò)的變化,以維持接收設(shè)備重放媒體流的質(zhì)量等級。
圖4是示出可以如何估計(jì)處理器16上的負(fù)荷的流程圖。
在步驟401,編碼器14從媒體源13接收用于編碼的幀。在步驟402,編碼器對幀進(jìn)行編碼并且將時(shí)間戳應(yīng)用到該幀。時(shí)間戳可以是以由媒體源13輸出的媒體的幀率為基礎(chǔ)的。在步驟403,幀的編碼完成的時(shí)間(例如,經(jīng)編碼的幀被分組器15接收到的時(shí)間)被存儲。
在步驟404,檢查是否設(shè)置了基準(zhǔn)幀。如果有,則該處理進(jìn)行至步驟406。如果沒有,則在步驟405將該幀設(shè)置為基準(zhǔn)幀,并且該處理返回至步驟401,用于由編碼器14接收到的下一幀。
在步驟406,將所應(yīng)用的時(shí)間戳與基準(zhǔn)幀的時(shí)間戳進(jìn)行比較以確定第一時(shí)段。在步驟407,將所存儲的完成時(shí)間(在步驟403存儲的)與基準(zhǔn)幀的編碼完成的時(shí)間進(jìn)行比較以確定第二時(shí)段。在步驟408,確定第一時(shí)段與第二時(shí)段之間的差以提供處理器負(fù)荷的度量。
可以針對從媒體源接收到的每一幀執(zhí)行圖4的處理(如循環(huán)返回至步驟401所表示的)。
根據(jù)本文所描述的示例配置的發(fā)送設(shè)備和接收設(shè)備可以以硬件、軟件或硬件和軟件的任何適當(dāng)?shù)慕M合的形式來實(shí)現(xiàn)。發(fā)送設(shè)備可以具有與接收設(shè)備相同的性能并且反之亦然。如本文所述的設(shè)備可以包括(例如)用于在一個(gè)或更多個(gè)處理器(諸如在CPU和/或GPU)、和/或一個(gè)或更多個(gè)專用處理器(諸如ASIC)、和/或被適當(dāng)?shù)鼐幊桃员闾峁┰O(shè)備的功能的一個(gè)或更多個(gè)可編程處理器(諸如FPGA)、和/或包括一個(gè)或更多個(gè)專用的、可編程的并且通用的處理功能的異構(gòu)處理器執(zhí)行的軟件。本文所描述的設(shè)備可以包括一個(gè)或更多個(gè)處理器以及具有存儲其上的程序代碼的一個(gè)或更多個(gè)存儲器,所述處理器和存儲器這樣以便(相結(jié)合)提供所要求保護(hù)的設(shè)備和/或執(zhí)行所要求保護(hù)的方法。
本文所描述的數(shù)據(jù)處理單元(例如,編碼器、控制器和分組器)不需要被設(shè)置為分立單元并且代表可以(a)以任何方式相結(jié)合并且(b)自身包括一個(gè)或更多個(gè)數(shù)據(jù)處理實(shí)體的功能。數(shù)據(jù)處理單元可以通過任何適當(dāng)?shù)挠布蜍浖δ芑蛘哂布蛙浖δ艿慕M合來提供。
如本文所使用的術(shù)語軟件包括用于處理器(例如,CPU和/或GPU)的可執(zhí)行代碼、固件、字節(jié)碼、諸如C或OpenCL的編程語言代碼、以及諸如FPGA的用于可重配置邏輯器件的模塊。機(jī)器可讀代碼包括用于限定硬件的軟件和代碼,諸如可能在Verilog或VHDL中生成的寄存器傳送級(RTL)代碼。
本文所描述的任何一種或更多種方法可以由一個(gè)或更多個(gè)物理處理單元來執(zhí)行,所述物理處理單元執(zhí)行使得該單元執(zhí)行所述方法的程序代碼。該或每個(gè)物理處理單元都可以是任何合適處理器,諸如CPU或GPU(或其內(nèi)核)、或固定功能或可編程硬件。程序代碼可以以非暫時(shí)形式存儲在機(jī)器可讀介質(zhì)中,諸如集成電路存儲器、或光或磁存儲器。機(jī)器可讀介質(zhì)可以包括多個(gè)存儲器,諸如片上存儲器、計(jì)算機(jī)工作存儲器、以及非易失性存儲設(shè)備。
由此,申請人單獨(dú)公開了在此描述的每個(gè)單獨(dú)特征以及兩個(gè)以上這樣的特征的任何結(jié)合,在這個(gè)意義上,這樣的特征或結(jié)合能夠根據(jù)本領(lǐng)域技術(shù)人員的公知常識,作為一個(gè)整體基于本說明書被實(shí)現(xiàn),而不管這樣的特征或特征的結(jié)合是否解決了在此公開的任何問題,并且不限制權(quán)利要求的范圍。申請人指出,本發(fā)明的多個(gè)方面可以由任何這樣的單獨(dú)特征或特征的結(jié)構(gòu)構(gòu)成??紤]前述說明,可以在本發(fā)明的范圍內(nèi)作出多種修改,對于本領(lǐng)域技術(shù)人員來說是顯而易見的。