分配執(zhí)行具有可配置復(fù)雜度的多媒體數(shù)據(jù)處理組件的處理器的資源的制作方法
【專(zhuān)利說(shuō)明】分配執(zhí)行具有可配置復(fù)雜度的多媒體數(shù)據(jù)處理組件的處理器 的資源
【背景技術(shù)】
[0001] 現(xiàn)代音頻和視頻處理組件(諸如編碼器、解碼器、回波抵消器、降噪器、抗混疊濾波 器等)通常能夠通過(guò)采用更復(fù)雜的音頻/視頻算法處理操作來(lái)實(shí)現(xiàn)更高的輸出音頻/視頻質(zhì) 量。這些操作典型地由計(jì)算系統(tǒng)的處理器(例如,CPU)執(zhí)行的一個(gè)或多個(gè)軟件應(yīng)用來(lái)實(shí)現(xiàn)。 應(yīng)用可以包括多個(gè)代碼組件(例如,單獨(dú)的音頻和視頻處理組件),其中每個(gè)代碼組件均實(shí) 現(xiàn)單獨(dú)的處理算法。本上下文中的處理器資源管理涉及使得這些算法的復(fù)雜度適應(yīng)這種處 理器的處理能力。如本文所使用的、用于實(shí)現(xiàn)算法的代碼組件的"復(fù)雜度"是指基礎(chǔ)算法 (underlying algorithm)的時(shí)間算法復(fù)雜度。如本領(lǐng)域公知的,算法的時(shí)間復(fù)雜度是該算 法的固有特性,其確定該算法處理任何給定輸入所需的多個(gè)基本操作,其中,相比于不太錯(cuò) 綜復(fù)雜的算法,更復(fù)雜的算法要求要求每輸入的更多的基本處理操作。因此,該提高的質(zhì)量 以更復(fù)雜的、更高質(zhì)量的算法為代價(jià),該更復(fù)雜的、更高質(zhì)量的算法要求更多的時(shí)間來(lái)處理 每個(gè)輸入,或者這些算法要求更多的處理器資源,并且如果它們要以相當(dāng)于不太復(fù)雜的、較 低質(zhì)量的處理算法的速率處理輸入數(shù)據(jù),則從而導(dǎo)致更高的CHJ負(fù)荷。
[0002] 對(duì)于"實(shí)時(shí)"數(shù)據(jù)處理,諸如在由通信客戶端應(yīng)用的實(shí)時(shí)音頻/視頻代碼構(gòu)件實(shí)現(xiàn) 的音頻/視頻會(huì)議的上下文中對(duì)音頻/視頻數(shù)據(jù)的處理,輸出的質(zhì)量不是唯一考慮:這些算 法操作"實(shí)時(shí)"地結(jié)束也是嚴(yán)格必需的。如本文所使用的,一般而言,"實(shí)時(shí)"數(shù)據(jù)處理是指以 至少與接收輸入數(shù)據(jù)的輸入速率一樣快的速率對(duì)輸入數(shù)據(jù)流的處理(即,使得如果在一毫 秒內(nèi)接收到N個(gè)比特,則對(duì)這N個(gè)比特的處理所花費(fèi)的時(shí)間必須不多于一毫秒"實(shí)時(shí)操作" 是指滿足該標(biāo)準(zhǔn)的處理操作。因此,允許更復(fù)雜的算法具有更多的處理時(shí)間不是一個(gè)選項(xiàng), 這是因?yàn)樗惴▋H具有在其中要處理流的N個(gè)比特的有限窗口,該窗口從接收到該N個(gè)比特的 時(shí)間和接收到該流中下N個(gè)比特的時(shí)間而運(yùn)行一一如果要保持實(shí)時(shí)操作,則處理N個(gè)比特所 需的算法操作都必需在該窗口內(nèi)執(zhí)行且不能推遲。因此,如果要保持實(shí)時(shí)操作,隨著代碼組 件復(fù)雜度增加,代碼組件要求更多的處理器資源。此外,如果CPU負(fù)荷增加至超過(guò)某個(gè) 點(diǎn)一一例如,由于運(yùn)行過(guò)于復(fù)雜的音頻/視頻處理算法一一則實(shí)時(shí)操作將是不可能的,這是 因?yàn)橐纛l和/或視頻組件將為了實(shí)時(shí)操作而需要比實(shí)際上可供使用的處理器資源更多的處 理器資源。因此,在一方面最大化輸出質(zhì)量與另一方面保留實(shí)時(shí)操作之間存在折中。
[0003] 具體地在音頻/視頻處理的上下文中,原始音頻和視頻數(shù)據(jù)按部分地進(jìn)行處理,然 后被打包傳輸。每個(gè)音頻數(shù)據(jù)部分可以是(例如)音頻的20ms的音頻幀;每個(gè)視頻數(shù)據(jù)部分 可以是(例如)包括圖像序列中的單個(gè)捕獲的圖像的視頻幀。為了保持實(shí)時(shí)操作,對(duì)音頻幀 的處理應(yīng)當(dāng)在完成對(duì)下一音頻診斷的捕獲之前結(jié)束;否則,后續(xù)的音頻幀將被緩存,并且在 計(jì)算系統(tǒng)中引入了增加的延遲。同樣,基于相同的原因,對(duì)視頻幀的處理應(yīng)當(dāng)在捕獲下一視 頻幀之前結(jié)束。對(duì)于過(guò)于復(fù)雜的音頻/視頻算法,處理器可能不具有足夠?qū)ζ溥M(jìn)行實(shí)現(xiàn)的資 源。
【發(fā)明內(nèi)容】
[0004] 提供該概述以便以簡(jiǎn)化的形式引入對(duì)構(gòu)思的選擇,以下在詳細(xì)描述中將對(duì)其進(jìn)一 步描述。該概述不旨在標(biāo)識(shí)出權(quán)利要求主題的關(guān)鍵特征或主要特征,也不旨在用于限制權(quán) 利要求主題的范圍。
[0005] 根據(jù)第一方面,本公開(kāi)內(nèi)容涉及一種分配處理器資源的方法,該處理器執(zhí)行用于 處理第一序列的數(shù)據(jù)部分的第一實(shí)時(shí)代碼組件和用于處理第二序列的數(shù)據(jù)部分的第二代 碼組件。至少該第二代碼組件具有可配置復(fù)雜度。該方法包括:估計(jì)針對(duì)該第一代碼組件的 第一實(shí)時(shí)性能度量,以及基于所估計(jì)的第一實(shí)時(shí)性能度量來(lái)配置該第二代碼組件的復(fù)雜 度。
[0006] 通過(guò)如此配置所述復(fù)雜度,處理器的處理資源有效地以對(duì)于第一組件的實(shí)時(shí)性能 要求敏感的方式分配給第二代碼組件。在實(shí)施例中,第二實(shí)時(shí)組件也可以是實(shí)時(shí)組件,但是 這不是必需的。
[0007] 第一數(shù)據(jù)序列和第二數(shù)據(jù)序列可以是不同類(lèi)型的數(shù)據(jù)。例如,第一序列可以是音 頻數(shù)據(jù)幀序列,第二序列可以是視頻數(shù)據(jù)幀序列,第一代碼組件是實(shí)現(xiàn)音頻編碼算法的音 頻代碼組件,而第二代碼組件是實(shí)現(xiàn)視頻編碼算法的視頻組件(或者反之亦然)。
【附圖說(shuō)明】
[0008] 為了更好地理解所描述的實(shí)施例以及示出如何實(shí)現(xiàn)所描述的實(shí)施例,將通過(guò)示例 的方式參照以下附圖,在以下附圖中:
[0009]圖1示出了通信系統(tǒng)的示意圖;
[0010] 圖2是用戶設(shè)備的示意性框圖;
[0011] 圖3A是音頻和視頻處理的示意性框圖;
[0012]圖3B是在圖3A之后的時(shí)間的、首頻和視頻處理的不意性框圖;
[0013] 圖4是示出了處理器資源管理的示意性框圖。
【具體實(shí)施方式】
[0014] 為輔助理解,考慮以下示例是有用的:假設(shè)未處理的音頻幀包括N個(gè)樣本,每個(gè)具 有Μ比特。第一最基本的下采樣算法可能僅起到通過(guò)在每隔一個(gè)樣本進(jìn)行'跳過(guò)'來(lái)簡(jiǎn)單地 將多個(gè)樣本取半的作用。另一方面,第二略微更復(fù)雜的下采樣算法可以執(zhí)行對(duì)音頻幀的低 通濾波(例如,使用適合的正弦濾波器)以在每隔一個(gè)濾波后樣本進(jìn)行'跳過(guò)'之前適當(dāng)?shù)販p 小信號(hào)帶寬。第二算法比第一算法更復(fù)雜,因?yàn)橐话愣?,?duì)于每個(gè)樣本來(lái)說(shuō)需要相同數(shù)量 的基本操作來(lái)執(zhí)行'跳過(guò)'步驟,而執(zhí)行第二方法的額外濾波步驟需要額外的基本操作。因 此,當(dāng)處理音頻數(shù)據(jù)流時(shí),第二算法將需要比第一算法更多的處理器資源來(lái)保持實(shí)時(shí)操作, 但是如本領(lǐng)域公知的,根據(jù)奈奎斯特(Nyquist)采樣定理,一般預(yù)期第二算法將實(shí)現(xiàn)比第一 算法高的輸出質(zhì)量。盡管如此,但是如果該增加的質(zhì)量是以折衷的實(shí)時(shí)操作為代價(jià)的(這是 由于沒(méi)有可用于實(shí)時(shí)地處置第二算法的額外操作的充足資源而導(dǎo)致的),則在實(shí)時(shí)上下文 中,期望的是通過(guò)使用第一算法使得質(zhì)量降級(jí)而不是利用第二算法來(lái)遭遇累積的延遲。當(dāng) 然,將意識(shí)到的是,這是僅出于示例的目的的極度簡(jiǎn)化的示例(實(shí)際上,現(xiàn)代的CPU足夠快而 使得LP濾波不是實(shí)際存在的問(wèn)題)。
[0015] -種控制系統(tǒng)負(fù)荷的方式是在實(shí)際應(yīng)用調(diào)用之前運(yùn)行基準(zhǔn)測(cè)試,并且關(guān)于與實(shí)時(shí) 代碼組件相關(guān)的復(fù)雜度來(lái)配置應(yīng)用的實(shí)時(shí)代碼組件(諸如實(shí)時(shí)音頻和視頻處理代碼組件), BP,將復(fù)雜度設(shè)定在最大化質(zhì)量而在運(yùn)行時(shí)(run-time)之前不折衷實(shí)時(shí)操作的水平。然而, 該方法不能適應(yīng)變化的條件,諸如由于過(guò)熱導(dǎo)致的CHJ時(shí)鐘頻率降低,或者其它應(yīng)用啟動(dòng)或 停止,從而減少或釋放出可用的系統(tǒng)資源。
[0016] 這可以通過(guò)監(jiān)測(cè)由操作系統(tǒng)(0S)報(bào)告的系統(tǒng)CPU負(fù)荷,以及調(diào)節(jié)算法復(fù)雜度以保 持系統(tǒng)負(fù)荷低于某預(yù)規(guī)定目標(biāo)(例如95% )來(lái)防止。然而,保持系統(tǒng)負(fù)荷低于某預(yù)規(guī)定目標(biāo) 很難,這是因?yàn)椴豢赡苓x擇這樣的預(yù)規(guī)定目標(biāo):其確保跨越不同系統(tǒng)的實(shí)時(shí)操作、其不會(huì)在 至少一些系統(tǒng)上導(dǎo)致不必要地折衷的質(zhì)量。這是因?yàn)?,在某些系統(tǒng)上,在 CPU負(fù)荷低至(例 如)60 %時(shí)實(shí)時(shí)操作可能折衷,而其它系統(tǒng)可能負(fù)載至(例如)99 %而沒(méi)有任何問(wèn)題。因此, 目標(biāo)需要預(yù)設(shè)為(例如)60%以確??绱蠖鄶?shù)系統(tǒng)的實(shí)時(shí)操作,這意味著那些在不折衷實(shí)時(shí) 操作的情況下能夠負(fù)載至高于60 %并從而實(shí)現(xiàn)更高的質(zhì)量的系統(tǒng)是利用不足的 (underutilized),從而使得質(zhì)量不必要地降級(jí)。而且,額外的難題是,某些計(jì)算設(shè)備甚至不 能夠首先報(bào)告系統(tǒng)負(fù)荷。
[0017] 另一選項(xiàng)將基于以下技術(shù)來(lái)"動(dòng)態(tài)"調(diào)節(jié)計(jì)算復(fù)雜度:通過(guò)該技術(shù),(例如)音頻編 碼復(fù)雜度是基于監(jiān)視相對(duì)于目標(biāo)來(lái)說(shuō)對(duì)每個(gè)音頻幀進(jìn)行編碼所花費(fèi)的時(shí)間(這指示處理器 資源使用情況)來(lái)調(diào)節(jié)的。
[0018] 也就是說(shuō),可以通過(guò)以下各項(xiàng)來(lái)管理資源:監(jiān)控代碼組件,以確定是否該代碼組件 正使用處理器資源達(dá)到了折衷其自身實(shí)時(shí)操作的程度(即,確定實(shí)時(shí)操作將需要更多可用 的資源),或者確定正在欠使用處理器資源(即,確定組件可以占用更多的資源,并從而實(shí)現(xiàn) 更高的輸出質(zhì)量,而不折衷其自身的實(shí)時(shí)操作),以及根據(jù)所確定的處理器資源使用情況來(lái) 重新配置該代碼組件的復(fù)雜度。
[0019] 然而,發(fā)明人已經(jīng)認(rèn)識(shí)到,這種技術(shù)由于以下原因而有缺陷。由于同時(shí)執(zhí)行的、實(shí) 現(xiàn)不同功能(諸如音頻編碼、視頻編碼等)的實(shí)時(shí)代碼組件共享相同的處理器資源,因此當(dāng) 第一組件(例如,音頻)經(jīng)歷實(shí)時(shí)問(wèn)題時(shí),可能實(shí)際上更為適當(dāng)?shù)氖墙档土硪坏诙M件(例 如,視頻)的復(fù)雜度從而減少第二組件所需的資源量并且因此釋放出資源以供第一組件使 用,而不是降低第一組件自身的復(fù)雜度。例如,在視頻電話場(chǎng)景中(其中音頻和視頻必需被 捕獲且被實(shí)時(shí)處理以通過(guò)網(wǎng)絡(luò)傳輸),重要的可能是保持高質(zhì)量音頻,甚至以降低視頻質(zhì)量 為代價(jià)(以以下情況為基礎(chǔ):對(duì)電話參與者來(lái)說(shuō),相比于清楚地看到彼此,清楚地聽(tīng)到彼此 更為重要)。也就是說(shuō),將視頻質(zhì)量降級(jí)至有利于保持音頻質(zhì)量的程度是可接受的。
[0020] 而且,如果多個(gè)組件要同時(shí)實(shí)現(xiàn)該技術(shù),則將是多個(gè)組件彼此'戰(zhàn)斗'(即,多個(gè)組 件均'盲目地'試圖將它們的個(gè)體負(fù)荷推高至例如0.95)。這將導(dǎo)致最進(jìn)取的組件趨于贏得 全部的系統(tǒng)資源,或者,如果所有組件是同等進(jìn)取的,則可能導(dǎo)致如下振蕩:自由的系統(tǒng)