相關申請的交叉引用
本申請要求2014年12月19日提交的美國臨時專利申請no.62/094200的優(yōu)先權,該申請全文通過引用并入于此。
本發(fā)明涉及音頻信號處理,更具體地,涉及音頻處理方法的基準(benchmark)(例如,指示功耗以及可選地至少一個其他重要特性的數(shù)據(jù))的確定。在一些實施例中,音頻處理方法的基準是在該方法(或與該方法相對應的假想音頻處理算法)以模擬部署系統(tǒng)對該方法(或與該方法相類似的音頻處理方法)的預期實時執(zhí)行的模式被執(zhí)行時確定的。
背景技術:
貫穿本公開,包括在權利要求書中,術語“處理器”廣義地用于表示可編程或可以其他方式配置(例如,用軟件或固件配置)為對數(shù)據(jù)(例如,音頻或視頻或其他圖像數(shù)據(jù))執(zhí)行操作的系統(tǒng)或裝置。處理器的示例包括現(xiàn)場可編程門陣列(或其他可配置集成電路或芯片組)、被編程和/或被以其他方式配置為對音頻或其他聲音數(shù)據(jù)執(zhí)行流水線處理的數(shù)字信號處理器、可編程通用處理器或計算機、以及可編程微處理器芯片或芯片組。
貫穿本公開,包括在權利要求書中,表述“音頻處理器”和“音頻處理單元”可互換地且廣義地用于表示被配置為對音頻數(shù)據(jù)進行處理的處理器。音頻處理單元的示例包括但不限于編碼器(例如,代碼轉換器)、解碼器、編解碼器、預處理系統(tǒng)、后處理系統(tǒng)以及比特流處理系統(tǒng)。音頻處理器的示例包括被適當?shù)嘏渲玫默F(xiàn)場可編程門陣列(或其他可配置集成電路或芯片組)、被編程和/或被以其他方式配置為對音頻或其他聲音數(shù)據(jù)執(zhí)行流水線處理的數(shù)字信號處理器、被適當?shù)鼐幊?和/或被以其他方式配置)的可編程通用處理器或計算機、以及被適當?shù)鼐幊?和/或被以其他方式配置)的可編程微處理器芯片或芯片組。
在本文中,表述“音頻處理方法”和“音頻處理算法”作為同義詞可互換地用于表示音頻處理器執(zhí)行的對輸入音頻數(shù)據(jù)進行處理以響應于輸入的音頻數(shù)據(jù)產(chǎn)生輸出(處理)音頻數(shù)據(jù)的方法。
商業(yè)上使用各種音頻處理算法來對音頻數(shù)據(jù)執(zhí)行各種類型的有用處理。
通常有用的是,執(zhí)行音頻處理算法(“apa”)的基準測試(benchmarking)以確定基準,該基準指示該apa當由被配置為執(zhí)行該apa的音頻處理器執(zhí)行時(即,當該音頻處理器上運行時)的功耗以及可選地至少一個其他性能特性(例如,循環(huán)復雜度)。
在現(xiàn)代音頻處理器(尤其是便攜式裝置)上運行的apa的功率測量和性能(例如,循環(huán)復雜度)測量這兩者都是至關重要的(因為功耗影響電池壽命)且非常困難的。發(fā)明人已經(jīng)認識到,一部分困難源于現(xiàn)代處理器使用動態(tài)電壓和時鐘頻率縮放來在最大化峰值或突發(fā)功耗的同時最小化穩(wěn)態(tài)功耗的方式。發(fā)明人已經(jīng)進一步認識到,這些特征的存在妨礙apa的傳統(tǒng)基準準確地表示以“實時”模式(即,至少在關鍵的方面與它被預期按真正部署運行的相同方式)運行的相同的apa中的每個apa的成本(例如,功耗),其中apa的傳統(tǒng)基準是在每個節(jié)點以“批”模式運行(即,在相關音頻數(shù)據(jù)的處理完成之前它盡可能地快地運行)的基準測試操作中確定的。
貫穿本公開,包括在權利要求書中,在處理器中以“實時模式”執(zhí)行(或運行)正被基準測試的apa以產(chǎn)生處理后的音頻的表述表示音頻處理是以模擬設想的執(zhí)行要基準測試的apa的部署系統(tǒng)(將由終端用戶部署的音頻處理系統(tǒng))對apa的預期實時執(zhí)行的方式執(zhí)行的。例如,在本發(fā)明的一些實施例中,apa被以運行時間模式執(zhí)行(在基準測試期間),在運行時間模式下,僅在處理間隔(每個處理間隔具有選定時長)期間以如下方式對音頻數(shù)據(jù)的突發(fā)執(zhí)行音頻處理(音頻數(shù)據(jù)的突發(fā)在每個處理間隔內經(jīng)過處理),即,防止信號輸出緩沖器(其緩沖處理的音頻)為空,并且與音頻處理在部署系統(tǒng)對apa的預期實時執(zhí)行期間將被執(zhí)行的相同方式相匹配或意圖與之相匹配(至少在其音頻采樣處理的平均速率與真正部署中的音頻采樣處理的預期平均速率相匹配這方面,以及可選地還在至少一個其他方面),其中音頻數(shù)據(jù)的突發(fā)被其中不執(zhí)行音頻處理的選定時長的間隔(“休眠間隔”)(每個休眠間隔發(fā)生在兩個連續(xù)的處理間隔之間)隔開。在實時模式下運行的apa的基準測試意圖使所得到的基準指示apa在真正的音頻處理框架中的執(zhí)行,以使得正被基準測試的每個apa(在基準測試期間)被以在真正部署中它被預期執(zhí)行相同的方式執(zhí)行(至少在其音頻采樣處理平均速率與真正部署中的音頻采樣處理的預期平均速率相匹配的關鍵方面)。通常,正被基準測試的apa在實時模式下的執(zhí)行模擬(例如,通過對突發(fā)大小和休眠間隔時長的適當選擇)設想的部署系統(tǒng)對cpu電壓和/或頻率的變化(“節(jié)流(throttle)”)(例如,節(jié)流升至最大值,然后,如果所述處理繼續(xù)進行足夠的時長并且足夠快以至于測得的處理器溫度的上升快于熱量可被消散的速度,則回降至較低值)。
隨著更多的音頻處理算法被開發(fā)出來以供移動設備(例如,平板和智能電話)執(zhí)行,對于產(chǎn)品(其被編程或被以其他方式配置為執(zhí)行這種算法)在算法的執(zhí)行期間將消耗的功率的敏感度大大地提高。在目標硬件平臺已經(jīng)達到更好性能和效率的摩爾定律進展放緩的同時,這與對于需要明顯更加精細和復雜的音頻處理算法的更好的且更沉浸的體驗的需求相反。目前非常重要的是,測量執(zhí)行音頻處理算法的系統(tǒng)(特別是移動設備)的執(zhí)行時間(例如,由對相關的音頻數(shù)據(jù)進行處理所需的處理速率(例如,mcps或每秒多少百萬個時鐘周期)和時鐘周期數(shù)量確定)以及更重要地功耗這兩者。
不幸的是,正如這種基準測試測量變得越來越重要,這樣做也變得越來越困難。發(fā)明人已經(jīng)認識到,難度增大的一個原因是硬件平臺正在越來越多地使用激進的處理器電壓和時鐘縮放,這通常使得基準測試的傳統(tǒng)的、迭代的批模式變得不適當。傳統(tǒng)上,經(jīng)過基準測試的apa將被緊接著執(zhí)行很多次,以使得單次迭代的執(zhí)行時間可以被準確地估計。在典型的現(xiàn)代硬件上,這樣的處理表示峰值計算負載,該峰值計算負載通常將使cpu電壓和頻率被節(jié)流升至最大值,并且(如果測試持續(xù)長時間)當系統(tǒng)測量到處理器溫度的上升快于熱量可被消散的速度時,可能使cpu電壓和頻率被節(jié)流回降。該節(jié)流使常規(guī)的長時間平均測量在很大程度上是沒有意義的。更糟糕的是,處理器的功耗與電壓是非線性的(并且電壓通常被按比例放大以支持更高的cpu頻率),因為寬泛地說,它遵循v2r定律。發(fā)明人已經(jīng)認識到,準確地測量在大量現(xiàn)代設備中運行的apa的功耗(和復雜度性能)的唯一方式是,在apa(或與apa相對應的假想apa)以盡可能接近它們的預期的最終遞送形式運行的情況下,對apa(或對應的假想apa)執(zhí)行測量。他們還已經(jīng)認識到,這暗示著apa的基準測試(至少在典型的環(huán)境中)應在該apa(或與該apa相對應的假想apa)在實時模式下運行的情況下執(zhí)行,該實時模式模擬部署系統(tǒng)對apa的預期實時執(zhí)行(例如,通過使用盡可能少的處理器資源來與真正部署中的預期吞吐率(throughputrate)匹配,音頻處理在音頻數(shù)據(jù)塊上的周期性地出現(xiàn)的突發(fā)中)。
發(fā)明人還已經(jīng)認識到,類似于在被基準測試的算法的預期真正部署中預期發(fā)生的那樣(例如,將被遞送到意向用戶的音頻處理代碼的典型意向用途),通過使用處理系統(tǒng)存儲器來在大小和訪問模式兩者上確定apa的被遞送的基準也是重要的。作為該認識的基礎是他們認識到,在具有低頻選擇性的情況下(因此以相當大的緩沖和延時)存儲和處理音頻數(shù)據(jù)的許多聲道所需的相對較大的存儲器空間通常使終端用戶實現(xiàn)比在基準測試操作中可實現(xiàn)的最佳性能差(例如,由于高速緩存丟失的成本相對較高,在消耗的直接功率和在真正部署中發(fā)生的處理器停頓周期這兩者)。
發(fā)明人還已經(jīng)認識到將可取的是,提供和傳播一種用于對apa進行基準測試的系統(tǒng)(或用于將系統(tǒng)編程為執(zhí)行這樣的基準測試的計算機可實現(xiàn)代碼),就好像該apa在一個或多個部署的音頻處理系統(tǒng)中的每個上運行而無需實際傳播該apa。例如,apa可以包括機密,使得并不希望傳播實際的apa。鑒于該認識,本發(fā)明的一些實施例的一方面是一種用于對“虛假”apa進行基準測試的方法和系統(tǒng)(或用于將系統(tǒng)編程為執(zhí)行這種基準測試的計算機可實現(xiàn)代碼),就好像該“虛假”apa在一個或多個部署的音頻處理系統(tǒng)中的每個上運行,其中,假想apa對應于并且(如本文中所描述的那樣)模仿真正的(功能性)apa,其中,功能性apa(或其變型)意圖用于真正使用(在部署系統(tǒng)上運行),并且其中,當希望對功能性apa(或其變型)進行基準測試時,就好像該功能性apa(或其變型)在部署系統(tǒng)上運行。這種假想apa可以是自由傳播的(例如,被包括在用于將系統(tǒng)編程為執(zhí)行本發(fā)明的基準測試方法的實施例的計算機可實現(xiàn)代碼中),而對應的功能性apa則被作為機密維護。
技術實現(xiàn)要素:
在一類實施例中,本發(fā)明的方法是一種用于在音頻處理算法(“apa”)被以(例如,根據(jù)從可選基準測試參數(shù)中確定的至少一個基準測試參數(shù))模擬設想的部署系統(tǒng)(將由終端用戶部署的音頻處理系統(tǒng))執(zhí)行該apa的預期實時執(zhí)行的方式執(zhí)行時對該apa進行基準測試的方法。該方法包括以下步驟:
(a)操作音頻處理器以模擬設想的執(zhí)行apa的部署系統(tǒng)的預期實時操作的方式執(zhí)行apa,包括通過對音頻數(shù)據(jù)進行處理;以及
(b)在執(zhí)行步驟(a)的同時,產(chǎn)生指示apa在音頻數(shù)據(jù)的處理期間的至少一個性能特性的基準測試數(shù)據(jù),由此基準測試數(shù)據(jù)確定apa的基準。
步驟(b)通常包括對音頻處理器在音頻數(shù)據(jù)的處理期間的功耗的測量,并且基準指示該功耗。在一些實施例中,將被基準測試的apa是與配對apa(counterpartapa)(意圖供部署系統(tǒng)真正使用的功能性apa)相對應的假想音頻處理算法(在本文中有時被稱為“節(jié)點”或“假想apa”)。假想apa(“節(jié)點”)使得當假想apa由被配置為執(zhí)行本發(fā)明的基準測試方法的實施例的處理器進行基準測試(根據(jù)基準測試參數(shù)集合)時,所得到的基準與作為根據(jù)相同的基準測試參數(shù)對對應的配對apa進行基準測試的結果而由同一個處理器確定的基準相匹配(至少基本上與該基準相同)。假想apa預期是配對apa(或大于假想apa并且包括與假想apa相對應的至少一個配對apa的apa)的各種用戶、潛在用戶和開發(fā)者有用的。在一些實施例中,作為對至少一個可選基準測試參數(shù)的用戶選擇的結果,apa的基準測試以模擬設想的運行該apa的部署系統(tǒng)(或在該apa是節(jié)點的情況下,設想的運行與該節(jié)點相對應的配對apa的部署系統(tǒng))的預期實時操作的方式(在本文中有時被稱為“實時模式”)被方便地執(zhí)行。這允許進行現(xiàn)實的基準測試測量,而基準測試框架仍是跨平臺和設想的(目標)部署處理器而相對輕便的。
通常,正被基準測試的apa被以突發(fā)模式執(zhí)行,其含義是該apa按被休眠間隔隔開的處理間隔的序列對音頻數(shù)據(jù)的塊(突發(fā))進行處理,其中,音頻數(shù)據(jù)的塊在每個處理間隔期間被處理,并且沒有音頻數(shù)據(jù)在休眠間隔期間被處理。可選基準測試參數(shù)可以確定占空度(dutycycle)和/或塊大小,通常是為了使得用戶能夠選擇使(突發(fā)模式基準測試操作的)平均吞吐率和塊大小與當設想的部署系統(tǒng)運行被基準測試的apa或與該apa類似的apa(或在apa是節(jié)點的情況下,與被基準測試的節(jié)點相對應的配對apa)時預期的平均吞吐率和塊大小相匹配的參數(shù)。例如,可選基準測試參數(shù)的菜單可以指示一組可選的假想apa(其具有不同的復雜度水平),并且為基準測試而選擇假想apa之一可以確定在基準測試期間將被利用的占空度和塊大小(其中,占空度和塊大小已經(jīng)被預先確定以使得選定的假想apa在基準測試期間的執(zhí)行模仿設想的部署系統(tǒng)對選定的假想apa的執(zhí)行)。在另一個示例中,可選基準測試參數(shù)的菜單既指示一組可選的假想apa(其通常具有不同的復雜度水平),又指示一組可選的占空度和/或塊大小參數(shù)(以使得用戶可以選擇將被基準測試的apa和在基準測試期間將被利用的占空度和/或塊大小參數(shù)的希望組合來模仿設想的部署系統(tǒng)對該apa的執(zhí)行)。突發(fā)模式操作可以(并且通常會)模擬設想的部署系統(tǒng)利用處理器(例如,cpu)電壓和/或處理速率或頻率的預期節(jié)流(例如,升至最大限度的預期節(jié)流,然后如果測得的處理器溫度的上升快于熱量可被消散的速度,則節(jié)流回降)對apa(或與該apa相類似的apa)的執(zhí)行。通常,突發(fā)模式操作包括在整個時間上均勻地展開的短處理間隔(在這些處理間隔內,音頻數(shù)據(jù)的小塊被處理)的序列以防止信號輸出緩沖器為空。
在優(yōu)選實施例中,基準測試方法(以及被編程和被以其他方式配置為執(zhí)行該方法的處理器)提供使得用戶能夠方便地以如下方式執(zhí)行apa(例如,節(jié)點)的基準測試的用戶控制,所述方式模擬(例如,作為用戶可指定的基準測試參數(shù)的用戶選擇的結果來模擬或模仿)設想的運行該apa的部署系統(tǒng)(或在該apa是節(jié)點的情況下,設想的運行與該節(jié)點相對應的配對apa的部署系統(tǒng))的預期實時操作(在本文中有時被稱為“實時模式”)。所得的基準因此可用于對執(zhí)行被基準測試的apa(或與該apa相類似的apa)的預期操作(在真正部署中)進行評估。在優(yōu)選實施例中,所述方法(以及被配置為執(zhí)行該方法的處理器)對于對各種不同的apa(例如,選定的對輸入音頻文件進行處理的音頻解碼節(jié)點和選定的與后處理節(jié)點依次運行的音頻后處理節(jié)點(其對解碼節(jié)點的輸出進行處理)的各種可選組合)進行基準測試是有用的。在一些實施例中,提供允許對以下項的選擇的用戶控制:至少兩個可用的音頻解碼節(jié)點(音頻編解碼器通常實現(xiàn)的類型的算法)中的任何一個、和/或至少兩個可用的音頻后處理節(jié)點(音頻后處理器一般實現(xiàn)的類型的算法)中的任何一個、和/或音頻解碼節(jié)點和音頻后處理節(jié)點(例如,與音頻后處理節(jié)點依次運行的音頻解碼節(jié)點)的至少兩個可用組合中的任何一個。
在第二類實施例中,本發(fā)明的方法包括以下步驟:確定與配對apa(意圖供設想的第一部署系統(tǒng)真正使用的功能性apa)相對應的假想音頻處理算法(在本文中有時被稱為“節(jié)點”或“假想apa”),并且確定該節(jié)點(或包括該節(jié)點的apa)的基準,以作為在所述節(jié)點(或包括所述節(jié)點的apa)被基準測試系統(tǒng)以模擬(例如,作為對至少一個可選基準測試參數(shù)的用戶選擇的結果)設想的執(zhí)行所述節(jié)點(或包括所述節(jié)點的apa)的第二部署系統(tǒng)的預期實時操作的方式執(zhí)行的同時對所述節(jié)點進行基準測試的結果。
設想的第二部署系統(tǒng)是設想供終端用戶部署(或終端用戶預期部署)的音頻處理系統(tǒng),其可以、但無需與第一部署系統(tǒng)相同(或至少基本上相同)。節(jié)點被確定為使得當被配置為執(zhí)行本發(fā)明的基準測試方法的實施例的處理器對該節(jié)點進行基準測試(通過使用基準測試參數(shù)集合)時,所得到的基準與由同一個處理器作為使用相同的基準測試參數(shù)對對應的配對apa進行基準測試的結果而確定的基準相匹配(至少基本上與該基準相同)。因此,節(jié)點可以被確定為對應于機密的配對apa(其希望保持作為機密)。節(jié)點然后可以被傳播給用戶(通過用于將系統(tǒng)編程為執(zhí)行本發(fā)明的基準測試方法的實施例的軟件)以允許對用戶確定的配對apa進行基準測試(或包括這種配對apa的apa的基準測試)而無需實際傳播機密的配對apa,其中用戶確定的配對apa對應于(或類似于)節(jié)點和機密的配對apa并且意圖在各種設想的部署系統(tǒng)上運行。
通常,在第二類方法的基準測試步驟期間,正被基準測試的節(jié)點(或包括該節(jié)點的apa)被以突發(fā)模式執(zhí)行,突發(fā)模式包括被休眠間隔隔開的處理間隔的序列,其中,音頻數(shù)據(jù)的塊在每個處理間隔期間被處理,并且沒有音頻數(shù)據(jù)在休眠間隔期間被處理。可選基準測試參數(shù)可以確定占空度(處理間隔與隨后的休眠間隔的時長之比)和/或塊大小,通常使得(突發(fā)模式操作的)平均吞吐率和塊大小與當設想的第二部署系統(tǒng)運行該節(jié)點(或與該節(jié)點相對應的配對apa)時預期的平均吞吐率和塊大小相匹配。
通過第二類方法確定的節(jié)點(假想apa)可以包括對用于實現(xiàn)信號處理功能的代碼的調用(或甚至主要由這些調用組成),該代碼被假定被存儲在(系統(tǒng)的存儲器中的)庫中,以使得基準測試系統(tǒng)對節(jié)點的執(zhí)行包括調用(存儲在系統(tǒng)的存儲器中的)被執(zhí)行以使系統(tǒng)執(zhí)行信號處理功能序列的代碼中的至少一些。在這種情況下,(由基準測試系統(tǒng))對節(jié)點的執(zhí)行優(yōu)選地模仿對應的配對apa的執(zhí)行的動態(tài)工作負載和存儲器要求(例如,節(jié)點對基準測試系統(tǒng)的庫中的處理函數(shù)的調用的數(shù)量和順序與對應的配對apa對第一部署系統(tǒng)的庫中的對應的處理函數(shù)的調用的數(shù)量和順序相匹配)??梢员籥pa調用的信號處理函數(shù)的示例包括(但不限于)fft、dct、dst、iir和fir濾波器、矩陣和矢量數(shù)學運算以及標量數(shù)學運算(例如,乘積-累加、加法和移位)。
在確定“節(jié)點”(假想apa)和/或對“節(jié)點”(假想apa)進行基準測試的一些實施例中,該節(jié)點模仿整個參考apa(參考代碼),其含義是該節(jié)點的執(zhí)行模仿同一個處理器對參考代碼的執(zhí)行的性能特性中的至少重要的性能特性。例如,參考apa可以是解碼方法或音頻后處理方法(或解碼方法,以及對解碼方法的解碼音頻輸出進行處理的音頻后處理方法)。
在確定“節(jié)點”(假想apa)和/或對“節(jié)點”(假想apa)進行基準測試的一些實施例中,節(jié)點被確定為對應于機密的配對apa(希望將其保持為機密)。節(jié)點然后可以被傳播給用戶(通過用于將系統(tǒng)編程為執(zhí)行本發(fā)明的基準測試方法的實施例的軟件)以允許對用戶確定的配對apa進行基準測試(或對包括這樣的用戶確定的配對apa進行基準測試),其中用戶確定的配對apa對應于(或類似于)節(jié)點和機密的配對apa并且意圖在各種設想的部署系統(tǒng)上運行。這可以在實際上不傳播機密的配對apa的情況下實現(xiàn)。例如,在確定“節(jié)點”(假想apa)和/或對“節(jié)點”(假想apa)進行基準測試的一些實施例中,節(jié)點可以被寫為以與參考代碼(其中,可能希望將參考代碼保持為機密)類似的方式調用信號處理函數(shù)(假定被存儲在庫中),但是關鍵差別在于,節(jié)點模擬參考代碼的性能特性而不實際實現(xiàn)與參考代碼相同的算法。這樣,節(jié)點(以及對節(jié)點進行基準測試的方法)可以與參考代碼相獨立地被修改,并且節(jié)點可以被比參考代碼更自由地分發(fā)。
機密apa可以具有改變其行為和功能的參數(shù)集合,這可以影響其性能(例如,功耗和/或另一個復雜度屬性)。例如,執(zhí)行dolbydigitalplus解碼方法(或另一種解碼方法)的apa可以具有基于其輸出模式(或其他)解碼設置可變的計算/功率負載。類似地,音頻后處理apa可以根據(jù)哪些特征被啟用而改變其負載。在提供有可選假想節(jié)點的庫(例如,圖2所示的x個可選code節(jié)點和x個可選后處理節(jié)點的庫)的一些實施例中,可選節(jié)點可以是或可以包括與機密apa相對應的假想節(jié)點和/或至少一個機密apa的關鍵(例如,典型的或重要的)配置。例如,一個機密apa可以具有不同的操作模式,并且本發(fā)明的實施例可以提供至少兩個可選假想節(jié)點,其中每個可選假想節(jié)點對應于(并且模仿)這些模式中的不同的一種模式。后一個實施例的一個實現(xiàn)可以為每類(或每個子類)對應節(jié)點(例如,例如,一類節(jié)點可以是編解碼器節(jié)點,例如,圖2的x個可選編解碼器節(jié)點,另一類可以是后處理節(jié)點,例如,圖2的x個可選后處理節(jié)點)提供僅一組假想apa代碼,并且硬編碼的軟件配置參數(shù)(例如,由基準測試系統(tǒng)用戶經(jīng)由系統(tǒng)的用戶接口指定)可以使基準測試系統(tǒng)實現(xiàn)假想apa代碼(對應于其中一類的不同假想節(jié)點)的多個不同實例化(或變型)中的任何一個(并且對其進行基準測試)。
在一些實施例中,本發(fā)明的基準測試方法由(根據(jù)本發(fā)明)利用常被稱為“僅命令行”軟件的類型的基準測試軟件來編程的音頻處理器實現(xiàn)(即,被編程的處理器執(zhí)行基準測試軟件以響應于作為文本行輸入的用戶命令來執(zhí)行基準測試)。在其他實施例中,處理器(根據(jù)本發(fā)明)利用實現(xiàn)圖形用戶界面(gui)的基準測試軟件來編程,該gui可供用戶用于控制本發(fā)明的基準測試方法的執(zhí)行。例如,本發(fā)明的系統(tǒng)可以通過利用包括可用于控制本發(fā)明的方法的執(zhí)行的gui的基準測試軟件的實施例對常規(guī)處理器(例如,智能電話或其他移動設備)進行編程來實現(xiàn),但是常規(guī)處理器的操作系統(tǒng)不允許用命令行界面運行基準測試軟件。在后一個示例中,基準測試軟件將自己實現(xiàn)gui,并且用戶將利用該gui來控制被編程的系統(tǒng)執(zhí)行根據(jù)本發(fā)明的基準測試。
在一些實施例中,本發(fā)明的基準測試方法和系統(tǒng)提供以下用戶控制中的一個或多個:
允許用戶(優(yōu)選地,方便地且容易地)選擇將被基準測試的apa的可選版本(例如,選定的音頻處理操作被啟用(“開”)或被禁用(“關”)而其他都相同的版本)并且允許在基準測試期間測量apa的每個選定版本的執(zhí)行期間消耗的功率的至少一個控制;
允許用戶從具有不同復雜度水平的可選apa的菜單選擇將被基準測試的apa的至少一個復雜度控制。用戶通常被提供每個可選apa的復雜度(例如,工作負載和存儲器占用空間)的指示,并且菜單可以按復雜度順序呈現(xiàn)可選apa(例如,按復雜度順序提供apa的代表性工作負載和存儲器占用空間的指示)??蛇xapa可以對應于一定范圍的技術和典型用例(例如,它們可以是模仿一定范圍的技術和用例的假想apa),并且可選apa的菜單可以提供目標處理器(預期由終端用戶部署的音頻處理器)的能力等級描述(或啟用能力等級描述的提供),能力等級描述指示哪個水平的技術復雜度可以被每個目標處理器高效地適應,并且哪些目標處理器(如果有的話)(當運行指定的apa時)可能由于過大的存儲器總線周期或其他因素而具有不可接受的性能。
本發(fā)明的其他方面包括被編程和被以其他方式配置為執(zhí)行本發(fā)明的基準測試方法的任何實施例的處理器、被配置(例如,被編程)為實現(xiàn)本發(fā)明的方法的任何實施例的系統(tǒng)或裝置(例如,被適當編程的通用處理器、計算機系統(tǒng)或移動設備)、包括存儲(例如,以非暫時性的方式)指示根據(jù)本發(fā)明的方法或其步驟的任何實施例確定的至少一個假想apa的數(shù)據(jù)或通過本發(fā)明的方法或其步驟產(chǎn)生的基準(即,指示基準的數(shù)據(jù))的存儲器(例如,緩沖器)的系統(tǒng)或裝置、以及存儲用于實現(xiàn)本發(fā)明的方法或其步驟的任何實施例的代碼(例如,以非暫時性的方式)的計算機可讀介質(例如,盤)。例如,本發(fā)明的系統(tǒng)可以是或可以包括可編程的通用處理器、數(shù)字信號處理器或微處理器,其被編程軟件或固件和/或被以其他方式配置為對數(shù)據(jù)執(zhí)行各種操作中的任何一種操作,包括本發(fā)明的方法或其步驟的實施例。這樣的通用處理器可以是或可以包括計算機系統(tǒng),其包括輸入裝置、存儲器以及被編程(和/或被以其他方式配置)為響應于向其斷言的數(shù)據(jù)來執(zhí)行本發(fā)明的方法(或其步驟)的實施例的處理電路。
附圖說明
圖1是音頻數(shù)據(jù)處理系統(tǒng)的簡化框圖,該音頻數(shù)據(jù)處理系統(tǒng)包括根據(jù)本發(fā)明的實施例被配置為執(zhí)行apa的基準測試的處理器40。
圖2是根據(jù)本發(fā)明的實施例被配置為執(zhí)行apa的基準測試的處理器的簡化框圖。apa可以是包括編解碼器節(jié)點(由子系統(tǒng)5執(zhí)行)和后處理節(jié)點(由子系統(tǒng)7執(zhí)行)的假想apa、或僅包括編解碼器節(jié)點(由子系統(tǒng)5執(zhí)行)的假想apa、或僅包括后處理節(jié)點(由子系統(tǒng)7執(zhí)行)的假想apa、或另一種apa。
圖3是存儲用于實現(xiàn)本發(fā)明的基準測試方法的實施例的代碼(以非暫時性的方式)的計算機可讀介質(盤)的簡化立面圖。
符號和術語
貫穿本公開,包括在權利要求書中,表述“對”信號或數(shù)據(jù)執(zhí)行操作(例如,對信號或數(shù)據(jù)進行濾波、縮放、變換或施加增益)廣義地用于表示直接對信號或數(shù)據(jù)執(zhí)行操作或對信號或數(shù)據(jù)的處理版本(例如,在對執(zhí)行操作之前已經(jīng)經(jīng)過初步濾波或預處理的信號的版本)執(zhí)行操作。
貫穿本公開,包括在權利要求書中,表述“系統(tǒng)”廣義地用于表示設備、系統(tǒng)或子系統(tǒng)。例如,實現(xiàn)解碼器的子系統(tǒng)可以被稱為解碼器系統(tǒng),并且包括這種子系統(tǒng)的系統(tǒng)(例如,響應于多個輸入產(chǎn)生x個輸出信號的系統(tǒng),在該系統(tǒng)中,子系統(tǒng)產(chǎn)生輸入中的m個,其他x-m個輸入則從外部源接收)也可以被稱為解碼器系統(tǒng)。
貫穿本公開,包括在權利要求書中,術語“耦合”或“被耦合”用于意指要么直接的、要么間接的連接。因此,如果第一裝置耦合到第二裝置,則連接可以是通過直接連接,或通過經(jīng)由其他設備和連接的間接連接。
貫穿本公開,包括在權利要求書中,以下表述具有以下定義:
揚聲器和擴音器同義地用于表示任何發(fā)聲換能器。該定義包括被實現(xiàn)為多個換能器的擴音器(例如,低音揚聲器和高音揚聲器);
揚聲器饋送:將被直接施加于擴音器的音頻信號,或將被連續(xù)地施加于放大器和擴音器的音頻信號;
聲道(或“音頻聲道”):單聲道音頻信號。這種信號通??梢砸缘韧趯⑿盘栔苯邮┘佑谙M驑朔Q位置處的擴音器的這種方式渲染。希望的位置可以是靜態(tài)的,如通常物理擴音器的情況那樣,或者是動態(tài)的;
音頻節(jié)目:一個或多個音頻聲道(至少一個揚聲器聲道和/或至少一個對象聲道)的集合以及可選地還有相關聯(lián)的元數(shù)據(jù)(例如,描述希望的空間音頻呈現(xiàn)的元數(shù)據(jù));以及
渲染:將音頻節(jié)目轉換為一個或多個揚聲器饋送的過程,或將音頻節(jié)目轉換為一個或多個揚聲器饋送并且使用一個或多個擴音器將(一個或多個)揚聲器饋送轉換為聲音的過程(在后一種情況下,渲染在本文中有時被稱為“被”擴音器(一個或多個)渲染)。音頻聲道可以通過將信號直接施加于希望的位置處的物理擴音器而被平凡地渲染(“在”希望的位置處),或者一個或多個音頻聲道可以使用被設計為基本上等同于(對于收聽者來說)這種平凡渲染的各種虛擬化技術中的一種虛擬化技術來進行渲染。在這個后一種情況下,每個音頻聲道可以被轉換為將被施加于一般不同于希望的位置的已知位置上的(一個或多個)擴音器的一個或多個揚聲器饋送,以使得(一個或多個)擴音器響應于(一個或多個)饋送發(fā)出的聲音將被感知為從希望的位置發(fā)出。
具體實施方式
將參照圖1和圖2來描述本發(fā)明的實施例的示例。
圖1是音頻數(shù)據(jù)處理系統(tǒng)的簡化框圖,該音頻數(shù)據(jù)處理系統(tǒng)包括根據(jù)本發(fā)明的實施例被配置為執(zhí)行根據(jù)本發(fā)明的實施例的基準測試的音頻處理器40。圖1系統(tǒng)包括如所示出的那樣連接的用戶接口子系統(tǒng)50、存儲器54(其存儲將被子系統(tǒng)52在基準測試期間處理的音頻數(shù)據(jù))、音頻處理子系統(tǒng)52、基準數(shù)據(jù)產(chǎn)生子系統(tǒng)62、處理時間采樣子系統(tǒng)56和60、處理延遲控制子系統(tǒng)58、傳感器子系統(tǒng)64、存儲器66(其存儲可被子系統(tǒng)52在經(jīng)過基準測試的apa的執(zhí)行期間調用的用于實現(xiàn)信號處理功能的代碼)、以及存儲器68(其存儲在基準測試操作期間產(chǎn)生的基準數(shù)據(jù))。處理器40可以是已經(jīng)通過如下方式被配置為執(zhí)行根據(jù)本發(fā)明的實施例的基準測試的通用處理器(或其他處理器),即通過將傳感器子系統(tǒng)64耦合到處理器的電路元件(通常是電池或其他電源)以測量功耗(例如,如下所述)、利用使得被編程的處理器40能夠執(zhí)行基準測試的軟件來對子系統(tǒng)50、52、56、58、60、62和64編程、并且將所需要的數(shù)據(jù)和代碼存儲在元件54和66中。
用戶接口50可以響應于用戶輸入41進行操作以控制圖1系統(tǒng)的基準測試操作,包括將子系統(tǒng)52、62和58配置為響應于用戶輸入41(其指示命令)和/或根據(jù)默認設置來執(zhí)行基準測試。用戶接口50可操作為使顯示器43顯示在子系統(tǒng)62中產(chǎn)生的基準數(shù)據(jù)、指示用戶可選參數(shù)(例如,可被選擇用于基準測試的音頻處理算法(“apa”))的菜單、通常還有關于系統(tǒng)配置和狀態(tài)的其他信息。所述系統(tǒng)響應于開始命令42來開始基準測試操作。響應于“退出”命令,所述系統(tǒng)終止基準測試操作,并且輸出指示在該操作期間產(chǎn)生的基準數(shù)據(jù)的報告(簡檔報告44)的最近更新版本。
存儲器54可以(以非暫時性的方式)存儲音頻數(shù)據(jù),其指示將被apa(由子系統(tǒng)52實現(xiàn))在該apa的基準測試期間處理的已編碼的多聲道音頻節(jié)目的至少一段。在操作中,指示音頻數(shù)據(jù)的塊序列(其又指示節(jié)目或節(jié)目段)的比特流從存儲器54輸出到基準測試處理子系統(tǒng)52。
在圖1系統(tǒng)執(zhí)行本發(fā)明的方法的典型實施例的操作中,處理器40(即,處理器40的子系統(tǒng)52)以運行時間模式執(zhí)行apa(在apa的基準測試期間),在運行時間模式下,子系統(tǒng)52僅在處理間隔(每個處理間隔具有選定時長)期間對音頻數(shù)據(jù)的突發(fā)(通常每個突發(fā)是塊之一)執(zhí)行音頻處理,其中音頻數(shù)據(jù)的突發(fā)(例如,塊)在每個處理間隔內經(jīng)受處理。處理間隔被選定時長的間隔(“休眠間隔”)隔開,在休眠間隔內子系統(tǒng)52不執(zhí)行音頻處理。每個休眠間隔通常以如下方式發(fā)生在兩個連續(xù)的處理間隔之間,即,防止子系統(tǒng)52的信號輸出緩沖器(其緩沖處理的音頻)為空,并且與音頻處理在部署系統(tǒng)對apa的預期實時執(zhí)行期間將被執(zhí)行的相同方式相匹配或意圖與之相匹配(至少在其音頻采樣處理平均速率與真正部署中的音頻采樣處理的預期平均速率相匹配這方面,以及可選地還在至少一個其他方面)。
在基準測試操作期間,子系統(tǒng)56測量(識別)每個處理間隔的結束時間,并且指示每個結束時間的數(shù)據(jù)被提供給子系統(tǒng)62。在每個處理間隔結束時,子系統(tǒng)58使系統(tǒng)在選定的休眠間隔時長內停止音頻處理(即,使系統(tǒng)進入休眠間隔),從而對系統(tǒng)執(zhí)行音頻處理的平均音頻數(shù)據(jù)幀速率進行節(jié)流。在基準測試操作期間,子系統(tǒng)60測量(識別)每個休眠間隔的結束時間(即,下一個處理間隔的起始時間),并且指示每個這種處理間隔的數(shù)據(jù)被提供給子系統(tǒng)62。
在基準測試期間,正被子系統(tǒng)52執(zhí)行的apa可以斷言對(作為庫)存儲在存儲器66中的用于實現(xiàn)信號處理功能的代碼的調用。因此,子系統(tǒng)52對apa的執(zhí)行可以包括對存儲在存儲器66中的代碼的調用序列,并且這種代碼然后被子系統(tǒng)52執(zhí)行以執(zhí)行信號處理功能序列。
在基準測試期間,傳感器子系統(tǒng)64測量處理器40在每個處理間隔(或每個處理間隔和每個休眠間隔)期間消耗的功率,并且指示功耗的數(shù)據(jù)從子系統(tǒng)64被提供給子系統(tǒng)62。在典型的實施例中,子系統(tǒng)64包括與處理器40的電源(通常是電池)串聯(lián)耦合的電流感測電阻器。在電阻器如此與電源耦合的情況下,子系統(tǒng)64以足夠高的采樣速率監(jiān)視負載和電阻器這兩者上的電壓。在將電流感測電阻器上的電壓校準為相等電流之后,對所捕捉的數(shù)據(jù)計算負載電壓和電流的乘積的逐個樣本的平均以生成傳送到負載的平均功率的估計。
子系統(tǒng)62產(chǎn)生基準數(shù)據(jù),基準數(shù)據(jù)指示在基準測試操作期間正被子系統(tǒng)52執(zhí)行(通常是以突發(fā)的方式)的apa的基準?;鶞蕼y試數(shù)據(jù)通常在基準測試期間被不時地更新(例如,在每個處理間隔之后),并且最近更新的基準測試數(shù)據(jù)集合被斷言到用戶接口50(以使得它可以被顯示器43顯示),并且被存儲在存儲器68中。響應于“退出”命令,所述系統(tǒng)終止基準測試操作,并且輸出指示基準測試數(shù)據(jù)的最近更新版本(通常是以指示基準數(shù)據(jù)的簡檔報告44的形式)。
圖2是被用軟件編程(和被以其他方式配置)為執(zhí)行本發(fā)明的基準測試方法的實施例以執(zhí)行apa的基準測試的音頻處理器(被編程的音頻處理器3)的簡化框圖。apa是假想apa,其包括編解碼器節(jié)點(由子系統(tǒng)5執(zhí)行)和音頻后處理節(jié)點(由子系統(tǒng)7執(zhí)行)。子系統(tǒng)5(當被啟用時)被耦合并且被配置為執(zhí)行模仿對輸入音頻(已編碼的音頻數(shù)據(jù))的解碼操作(編解碼器節(jié)點,通常是用戶選擇的編解碼器節(jié)點)的操作。子系統(tǒng)7(當被啟用時)被耦合并且被配置為模仿對由被啟用的子系統(tǒng)5產(chǎn)生的處理音頻(或在子系統(tǒng)5被禁用的情況下為輸入音頻)的音頻后處理(音頻后處理節(jié)點,其通常是用戶選擇的音頻后處理節(jié)點)的操作。子系統(tǒng)5和7一起構成(或如果它們中的一個被禁用的話,則子系統(tǒng)5和7中的每個單獨構成)圖2系統(tǒng)的音頻處理子系統(tǒng)。
軟件將處理器3編程為實現(xiàn)用戶接口和控制子系統(tǒng)11,用戶接口和控制子系統(tǒng)11將處理器配置為響應于輸入到處理器3的用戶輸入(指示命令)和/或根據(jù)默認設置而執(zhí)行多個可用的基準測試操作(各自根據(jù)本發(fā)明的實施例)中的選定的一個基準測試操作。子系統(tǒng)11可操作為控制被編程的處理器的基準測試操作,包括通過將子系統(tǒng)5、7和15配置為響應于用戶輸入和/或根據(jù)默認設置來執(zhí)行基準測試。通常,顯示器被耦合到處理器3,以用于顯示在分析子系統(tǒng)15中產(chǎn)生的基準數(shù)據(jù)、指示用戶可選參數(shù)(例如,可以被選擇用于供子系統(tǒng)5和7執(zhí)行從而用于基準測試的編解碼器節(jié)點和后處理節(jié)點)的菜單、以及關于系統(tǒng)配置和狀態(tài)的其他信息。所述系統(tǒng)響應于開始命令來開始基準測試操作。響應于退出命令,所述系統(tǒng)終止基準測試操作,并且輸出子系統(tǒng)15在該操作期間產(chǎn)生(并且被以非暫時性的方式存儲在緩沖器17中)的基準數(shù)據(jù)的最近更新版本。
圖2的處理器3還包括如所示的那樣連接的緩沖器1(其以非暫時性的方式存儲將被子系統(tǒng)5和/或子系統(tǒng)7在基準測試期間處理的音頻數(shù)據(jù))、傳感器子系統(tǒng)16、存儲器13(其存儲可以被子系統(tǒng)5和/或子系統(tǒng)7在經(jīng)過基準測試的apa的執(zhí)行期間調用的用于實現(xiàn)信號處理功能的代碼)、以及緩沖器9(其以非暫時性的方式存儲已經(jīng)被子系統(tǒng)5和7中的每個被啟用的子系統(tǒng)在基準測試操作期間處理的處理音頻數(shù)據(jù))。處理器3可以是已經(jīng)通過如下方式被配置為執(zhí)行根據(jù)本發(fā)明的實施例的基準測試的通用處理器(或其他處理器),即,通過將傳感器子系統(tǒng)16耦合到處理器的電路元件(通常是電池或其他電源)以測量功耗(例如,如下所述)、利用使得被編程的處理器能夠執(zhí)行基準測試的軟件來對子系統(tǒng)5、7、11和15進行編程、并且將所需要的數(shù)據(jù)和代碼存儲在元件13中。
在圖2系統(tǒng)執(zhí)行根據(jù)本發(fā)明的實施例的基準測試的操作中,假想apa(由子系統(tǒng)5和/或子系統(tǒng)7實現(xiàn))對指示已編碼的多聲道音頻節(jié)目的至少一段的音頻數(shù)據(jù)進行處理,并且假想apa被基準測試。通常,指示音頻數(shù)據(jù)的塊序列(其又指示節(jié)目或節(jié)目段)的比特流從緩沖器1被斷言到子系統(tǒng)5。
在典型的實施例中,被啟用的子系統(tǒng)5以運行時間模式執(zhí)行選定的編解碼器節(jié)點(在基準測試期間),在運行時間模式下,子系統(tǒng)5僅在處理間隔(各自具有選定時長)期間對音頻數(shù)據(jù)的突發(fā)(通常每個突發(fā)是塊之一)執(zhí)行音頻處理(模仿解碼),其中音頻數(shù)據(jù)的突發(fā)(例如,塊)在每個處理間隔內經(jīng)受處理。處理間隔被選定時長的間隔(“休眠間隔”)隔開,在休眠間隔內子系統(tǒng)5不執(zhí)行音頻處理。每個休眠間隔通常以如下方式發(fā)生在兩個連續(xù)的處理間隔之間,即,防止子系統(tǒng)5的信號輸出緩沖器(其緩沖處理的音頻)為空,并且與音頻處理將在部署系統(tǒng)對節(jié)點的預期實時執(zhí)行期間被執(zhí)行的相同方式相匹配或意圖與之相匹配(至少在其音頻采樣處理平均速率與真正部署中的音頻采樣處理的預期平均速率相匹配這方面,以及可選地還在至少一個其他方面)。
另外在典型的實施例中,被啟用的子系統(tǒng)7以運行時間模式執(zhí)行選定的后處理節(jié)點(在基準測試期間),在運行時間模式下,子系統(tǒng)7執(zhí)行如下音頻處理:該音頻處理模仿僅在處理間隔(各自具有選定時長)期間對在被啟用的子系統(tǒng)5中產(chǎn)生(并從其輸出)的已處理音頻數(shù)據(jù)的突發(fā)(或在子系統(tǒng)5的處理被禁用的情況下被傳遞通過子系統(tǒng)5的輸入音頻的突發(fā))的后處理。通常,每個突發(fā)是塊。音頻數(shù)據(jù)的突發(fā)(例如,塊)在每個處理間隔內經(jīng)受處理。處理間隔被選定時長的間隔(“休眠間隔”)隔開,在休眠間隔內子系統(tǒng)7不執(zhí)行音頻處理。每個休眠間隔通常以如下方式發(fā)生在兩個連續(xù)的處理間隔之間,即,防止子系統(tǒng)7的信號輸出緩沖器(其緩沖處理的音頻)為空,并且與音頻處理將在部署系統(tǒng)對節(jié)點的預期實時執(zhí)行期間被執(zhí)行的相同方式相匹配或意圖與之相匹配(至少在其音頻采樣處理平均速率與真正部署中的音頻采樣處理的預期平均速率相匹配這方面,以及可選地還在至少一個其他方面)。
在基準測試期間,正被子系統(tǒng)5和/或子系統(tǒng)7執(zhí)行的假想apa可以斷言對(作為庫)存儲在存儲器13中的用于實現(xiàn)信號處理功能的代碼的調用。因此,對假想apa的執(zhí)行可以包括對存儲在存儲器13中的代碼的調用序列,并且這種代碼然后被子系統(tǒng)5(和/或子系統(tǒng)7)執(zhí)行以執(zhí)行信號處理功能序列。
在基準測試期間,傳感器子系統(tǒng)16測量處理器3在每個處理間隔(或每個處理間隔和每個休眠間隔)期間消耗的功率,并且指示功耗的數(shù)據(jù)從子系統(tǒng)16被提供給子系統(tǒng)15。在典型的實施例中,子系統(tǒng)16包括與處理器3的電源(通常是電池)串聯(lián)耦合的電流感測電阻器。在電阻器如此與電源耦合的情況下,子系統(tǒng)16以足夠高的采樣速率監(jiān)視負載和電阻器這兩者上的電壓。在將電流感測電阻器上的電壓校準為相等電流之后,對所捕捉的數(shù)據(jù)計算負載電壓和電流的乘積的逐個樣本的平均以生成遞送到負載的平均功率的估計。
處理器3還被用實現(xiàn)配置文件分析子系統(tǒng)15(節(jié)點/代碼配置文件分析器)的軟件來編程。在基準測試操作中,子系統(tǒng)15對作為子系統(tǒng)5和7中的每個被啟用的子系統(tǒng)的操作的結果而產(chǎn)生的基準測試數(shù)據(jù)進行處理以產(chǎn)生基準測試輸出數(shù)據(jù)(在圖2中被標識為“復雜度/統(tǒng)計報告”)?;鶞蕼y試輸出數(shù)據(jù)指示由子系統(tǒng)5和7中的每個被啟用的子系統(tǒng)執(zhí)行(通常是以突發(fā)的方式)的假想apa的基準。基準測試輸出數(shù)據(jù)通常在基準測試期間被不時地更新(例如,在每個處理間隔之后),并且最近更新的基準測試數(shù)據(jù)集合被斷言到用戶接口11(以使得它可以被顯示器顯示),并且被存儲在緩沖器17中。響應于退出命令,所述系統(tǒng)終止基準測試操作,并且輸出指示基準測試數(shù)據(jù)的最近更新版本(通常是以指示基準輸出數(shù)據(jù)的復雜度/統(tǒng)計簡檔報告的形式)。
圖2的實施例支持選定的音頻解碼節(jié)點(由子系統(tǒng)5執(zhí)行的假想apa,其模仿音頻編解碼器通常實現(xiàn)的類型的解碼過程)的基準測試、和/或選定的音頻后處理節(jié)點7(由子系統(tǒng)7執(zhí)行的假想apa,其模仿音頻后處理器通常實現(xiàn)的類型的音頻處理算法)的基準測試、和/或選定的音頻解碼節(jié)點(其對從緩沖器1斷言到子系統(tǒng)5的輸入音頻的塊進行處理,通常是逐個塊地處理)和與音頻解碼節(jié)點依次運行的選定的音頻后處理節(jié)點(其對響應于輸入音頻的塊從子系統(tǒng)5輸出的音頻的每個已處理的塊進行處理)的組合。子系統(tǒng)5和7中的每個被啟用的子系統(tǒng)響應于輸入音頻文件的操作導致產(chǎn)生輸出音頻文件。在操作中,子系統(tǒng)5和7中的一個或兩個可以調用已經(jīng)被(作為庫)預存儲在存儲器13中的子例程(或已經(jīng)被(作為庫)預存儲在存儲器13中的其他代碼)。
子系統(tǒng)11的典型實現(xiàn)是響應于用戶輸入來執(zhí)行一組用戶控制(其可以使用gui來實現(xiàn),或實現(xiàn)為輸入到命令行界面的文本行)。例如,用戶可以具有播放/停止控制(其中“播放”發(fā)起基準測試操作),以及可選地用于選擇各種模式的基準測試操作的控制(例如,允許調整負載和存儲器占用空間來模擬對幾個不同聲道配置進行處理的控制)。在示例性實現(xiàn)中,子系統(tǒng)11提供包括以下各項的用戶控制:
在一些實施例中,(例如,由圖1的用戶接口子系統(tǒng)50或圖2的子系統(tǒng)11)提供允許用戶控制音頻數(shù)據(jù)的塊經(jīng)受音頻處理的占空度(在包括處理間隔、其后接著是休眠(非處理)間隔的周期內,其中一個塊在每個處理間隔內被處理)和每個塊的大小的用戶控制,而不管音頻采樣速率如何。例如,如果基準測試是模擬由特定的設想的部署系統(tǒng)(例如,具有安卓操作系統(tǒng)的移動設備)對(正被基準測試的)apa的實時執(zhí)行,則不管采樣速率如何,可以優(yōu)選音頻塊大小x(其中,在部署系統(tǒng)是具有安卓操作系統(tǒng)的移動設備的情況下,x可以等于5ms),并且占空度(每個處理間隔的時長與后面的休眠間隔的時長之比)可以被選為使得基準測試期間的總平均處理速率與部署系統(tǒng)的實時操作中的預期總處理速率相匹配。采樣速率通常由真實世界系統(tǒng)中的輸出音頻的時鐘速率確定。例如,音頻通常被以每秒48000個樣本播放。通過使用具有安卓操作系統(tǒng)的移動設備的示例,在使用這種裝置執(zhí)行音頻基準測試期間,該設備可能被控制對5ms時長(在48khz時,其為200個樣本)的塊中的音頻進行處理。在這種情況下,周期為5ms,并且占空度為對200個樣本進行apa處理所需的處理器時間除以周期的剩余時間。周期的剩余時間是休眠間隔。
在一些實施例中,根據(jù)本發(fā)明的基準測試(例如,用基準測試軟件根據(jù)本發(fā)明進行編程的音頻處理器)單個地執(zhí)行選定的解碼節(jié)點或選定的后處理節(jié)點的基準測試(例如,在圖2的子系統(tǒng)5或7中)、或執(zhí)行同時運行的選定的解碼節(jié)點和選定的后處理節(jié)點(例如,在圖2的子系統(tǒng)5和7中)這兩者是可控的。
在典型的操作中,圖1(或圖2)系統(tǒng)執(zhí)行本發(fā)明的用于對apa進行基準測試的方法的實施例,同時該apa被圖1(或圖2)系統(tǒng)以模擬設想的部署系統(tǒng)(將由終端用戶部署的音頻處理系統(tǒng))對該apa(或與該apa相類似的apa)的預期實時執(zhí)行(例如,作為可選基準測試參數(shù)的用戶選擇的結果)的方式執(zhí)行。在一些實施例中,被基準測試的apa是與配對apa(意圖供部署系統(tǒng)真正使用的功能性apa)相對應的假想apa(在本文中有時被稱為“節(jié)點”)。假想apa使得當假想apa被所述系統(tǒng)進行基準測試(根據(jù)預定或用戶指定基準測試參數(shù)集合)時,所得到的基準與作為根據(jù)相同的基準測試參數(shù)對對應的配對apa進行基準測試的結果由同一個處理器確定的基準相匹配(至少基本上與該基準相同)。
通常,在圖1(或圖2)系統(tǒng)的基準測試操作期間,正被基準測試的apa被以突發(fā)模式執(zhí)行,其含義是該apa按被休眠間隔隔開的處理間隔的序列對音頻數(shù)據(jù)的塊(突發(fā))進行處理,其中,音頻數(shù)據(jù)的塊在每個處理間隔期間被處理,并且沒有音頻數(shù)據(jù)在休眠間隔期間被處理??蛇x基準測試參數(shù)可以確定占空度和/或塊大小,通常使得用戶能夠選擇使(突發(fā)模式基準測試操作的)平均吞吐率和塊大小與當設想的部署系統(tǒng)運行被基準測試的apa或與該apa類似的apa(或在apa是節(jié)點的情況下,與被基準測試的節(jié)點相對應的配對apa)時預期的平均吞吐率和塊大小相匹配的參數(shù)。例如,可選基準測試參數(shù)的菜單(例如,由圖1的用戶接口50或圖2的子系統(tǒng)11提供)可以指示一組可選的假想apa(其具有不同的復雜度水平),并且從假想apa中選擇一個以用于基準測試可以確定在基準測試期間將被利用的占空度和塊大小(其中,占空度和塊大小已經(jīng)被預先確定以使得選定的假想apa在基準測試期間的執(zhí)行模仿設想的部署系統(tǒng)對選定的假想apa的執(zhí)行)。在另一個示例中,可選基準測試參數(shù)的菜單既指示一組可選的假想apa(其通常具有不同的復雜度水平),又指示一組可選的占空度和/或塊大小參數(shù)(以使得用戶可以選擇將被基準測試的apa和在基準測試期間將被利用的占空度和/或塊大小參數(shù)的希望組合來模仿設想的部署系統(tǒng)對該apa的執(zhí)行)。突發(fā)模式操作可以(并且通常會)模擬設想的部署系統(tǒng)以處理器(例如,cpu)電壓和/或處理速率或頻率的預期節(jié)流(例如,升至最大限度的預期節(jié)流,隨后如果測得的處理器溫度的上升快于熱量可被消散的速度,則節(jié)流回降)執(zhí)行apa(或與該apa相類似的apa)。通常,突發(fā)模式操作包括在整個時間上均勻地展開的短處理間隔(在這些處理間隔內,音頻數(shù)據(jù)的小塊被處理)的序列以防止信號輸出緩沖器為空。
在圖1(或圖2)系統(tǒng)的典型操作中,所述系統(tǒng)提供使得用戶能夠方便地以如下方式執(zhí)行apa(例如,節(jié)點)的基準測試的用戶控制,所述方式是指模擬(例如,作為用戶可指定的基準測試參數(shù)的用戶選擇的結果模擬或模仿)設想的運行該apa的部署系統(tǒng)(或在該apa是節(jié)點的情況下,設想的運行與該節(jié)點相對應的配對apa的部署系統(tǒng))的預期實時操作的方式(在本文中有時被稱為“實時模式”)。所得到的基準因此可用于對執(zhí)行被基準測試的apa(或與該apa相類似的apa)(在真正部署中)的預期操作進行評估。在典型的操作中,圖1(或圖2)系統(tǒng)對于對各種不同的apa(例如,由圖2的子系統(tǒng)5執(zhí)行以對輸入音頻文件進行處理的選定的音頻解碼節(jié)點和與后處理節(jié)點依次運行的選定的音頻后處理節(jié)點(由圖2的子系統(tǒng)7執(zhí)行以對解碼節(jié)點的輸出進行處理)的各種可選組合)進行基準測試是有用的。在一些實施例中,提供允許選擇以下各項的用戶控制(例如,由圖2的子系統(tǒng)11提供):至少兩個可用的音頻解碼節(jié)點(音頻編解碼器通常實現(xiàn)的類型的算法)中的任何一個、和/或至少兩個可用的音頻后處理節(jié)點(音頻后處理器通常實現(xiàn)的類型的算法)中的任何一個、和/或音頻解碼節(jié)點和音頻后處理節(jié)點的至少兩個可用組合中的任何一個(例如,與音頻后處理節(jié)點依次運行的音頻解碼節(jié)點)。
圖2系統(tǒng)可以被操作為執(zhí)行本發(fā)明的基準測試方法的實施例,該方法包括確定與配對apa(意圖供第一部署系統(tǒng)真正使用的功能性apa)相對應的假想apa(“節(jié)點”)的步驟。每個這種節(jié)點可以是預先確定的,并且用于在子系統(tǒng)5和/或子系統(tǒng)7中執(zhí)行每個這種節(jié)點的代碼可以被存儲在存儲器13中。由子系統(tǒng)11提供的可選基準測試參數(shù)的菜單可以指示節(jié)點中的一組可選節(jié)點(用于這些可選節(jié)點的預定可執(zhí)行代碼已經(jīng)被存儲在13中),并且可選地還可以指示一組可選的占空度和/或塊大小參數(shù)(以使得用戶可以選擇將被基準測試的希望的節(jié)點和/或在基準測試期間將被利用的占空度和/或塊大小參數(shù)來模仿設想的部署系統(tǒng)對節(jié)點的執(zhí)行)。
圖2系統(tǒng)可執(zhí)行的每個節(jié)點可以模仿整個參考apa(參考代碼),其含義是節(jié)點的執(zhí)行至少模仿圖2系統(tǒng)對參考代碼的執(zhí)行的性能特性中的重要的性能特性。參考apa可以是解碼方法或音頻后處理方法(或解碼方法,以及對解碼方法的解碼音頻輸出進行處理的音頻后處理方法)。
例如,在圖2系統(tǒng)的一些實現(xiàn)中,子系統(tǒng)11提供允許選擇一組預定節(jié)點中的任何一個(用于基準測試)的用戶控制,該組預定節(jié)點包括以下節(jié)點:
模仿第一參考apa的第一節(jié)點(具有最低復雜度水平),第一參考apa是具有最低復雜度水平的第一解碼方法(例如,7.1聲道音頻節(jié)目(包括7個全頻率范圍聲道)的常規(guī)的增強ac3(e-ac3)解碼)以及對第一解碼方法的解碼音頻輸出進行處理的第一音頻后處理方法;
模仿第二參考apa的第二節(jié)點(具有比第一參考apa高的復雜度水平),其中,第二參考apa是具有比第一解碼方法高的復雜度水平的第二解碼方法,后面接著是對第二解碼方法的解碼音頻輸出進行處理的第一音頻后處理方法(由第一節(jié)點模仿的相同的音頻后處理方法)。例如,第二解碼方法可以通過對基于對象的編碼音頻節(jié)目進行解碼來產(chǎn)生m聲道解碼輸出(包括m個揚聲器聲道,其中,m大于2),其中,基于對象的編碼音頻節(jié)目包括8個音頻對象聲道、以及7.1聲道格式的一組揚聲器聲道(即,包括7個全頻率范圍揚聲器聲道),這些揚聲器聲道已經(jīng)根據(jù)e-ac3編碼進行了編碼;
模仿第三參考apa的第三節(jié)點(具有比第二參考apa高的復雜度水平),其中,第三參考apa是第二解碼方法(由第二節(jié)點模仿的相同的解碼方法),后面接著是對第二解碼方法的解碼音頻輸出進行處理的第二音頻后處理方法(具有比第一音頻后處理方法高的復雜度水平)。例如,第二音頻后處理方法可以執(zhí)行由第一音頻后處理器方法(對第二解碼方法的m聲道解碼輸出)執(zhí)行的所有處理,并且還實現(xiàn)響應于m聲道后處理音頻來產(chǎn)生兩聲道虛擬化輸出的耳機虛擬器;以及
模仿第四參考apa的第四節(jié)點(具有比第三參考apa高的復雜度水平),其中,第四參考apa是具有比第二解碼方法高的復雜度水平的第三解碼方法,后面接著是對第三解碼方法的解碼音頻輸出進行處理的第二音頻后處理方法(由第三節(jié)點模仿的相同的音頻后處理方法)。例如,第三解碼方法可以通過對基于對象的編碼音頻節(jié)目進行解碼來產(chǎn)生m聲道解碼輸出(包括m個揚聲器聲道),其中,基于對象的編碼音頻節(jié)目包括16個音頻對象聲道、以及7.1聲道格式的一組揚聲器聲道(即,包括7個全頻率范圍揚聲器聲道),這些揚聲器聲道已經(jīng)根據(jù)e-ac3編碼進行了編碼。
圖2系統(tǒng)通常用如下代碼來實現(xiàn):可被子系統(tǒng)5在基準測試期間執(zhí)行以執(zhí)行第一解碼方法、第二解碼方法和第三節(jié)目方法中的任何選定的一種解碼方法的代碼(例如,預存儲在存儲器13中的代碼)、以及可被子系統(tǒng)7在基準測試期間執(zhí)行以執(zhí)行第一音頻后處理方法和第二音頻后處理方法中的任何選定的一種音頻后處理方法的代碼(例如,預存儲在存儲器13中的代碼)。響應于對上述“第一節(jié)點”的用戶選擇,在基準測試期間,子系統(tǒng)5執(zhí)行第一解碼方法來對輸入音頻進行處理,并且子系統(tǒng)7執(zhí)行第一音頻后處理方法來對子系統(tǒng)5的輸出進行處理。響應于對上述“第二節(jié)點”的用戶選擇,在基準測試期間,子系統(tǒng)5執(zhí)行第二解碼方法來對輸入音頻進行處理,并且子系統(tǒng)7執(zhí)行第一音頻后處理方法來對子系統(tǒng)5的輸出進行處理。響應于對上述“第三節(jié)點”的用戶選擇,在基準測試期間,子系統(tǒng)5執(zhí)行第二解碼方法來對輸入音頻進行處理,并且子系統(tǒng)7執(zhí)行第二音頻后處理方法來對子系統(tǒng)5的輸出進行處理。響應于對上述“第四節(jié)點”的用戶選擇,在基準測試期間,子系統(tǒng)5執(zhí)行第三解碼方法來對輸入音頻進行處理,并且子系統(tǒng)7執(zhí)行第二音頻后處理方法來對子系統(tǒng)5的輸出進行處理。
優(yōu)選地,圖2系統(tǒng)被實現(xiàn)為使得子系統(tǒng)11提供允許選擇上述第一節(jié)點、第二節(jié)點、第三節(jié)點和第四節(jié)點的以下變型中的一個(用于在基準測試期間執(zhí)行)的用戶控制:
第一節(jié)點的簡化版本,其僅模仿第一解碼方法(即,通過啟用子系統(tǒng)5的操作并且禁用子系統(tǒng)7,以使得在基準測試期間,子系統(tǒng)7不執(zhí)行第一音頻后處理方法,而子系統(tǒng)5執(zhí)行第一解碼方法);
第一節(jié)點的第二簡化版本(如果將在基準測試期間被處理的音頻數(shù)據(jù)指示解碼的7.1聲道音頻節(jié)目,則是有用的),其僅模仿第一音頻后處理方法(即,通過禁用子系統(tǒng)5的操作并且啟用子系統(tǒng)7的操作,以使得在基準測試期間,子系統(tǒng)7執(zhí)行第一音頻后處理方法,而子系統(tǒng)5不執(zhí)行第一解碼方法);
第二節(jié)點的簡化版本,其僅模仿第二解碼方法(即,通過啟用子系統(tǒng)5的操作并且禁用子系統(tǒng)7,以使得在基準測試期間,子系統(tǒng)7不執(zhí)行第一音頻后處理方法,而子系統(tǒng)5執(zhí)行第二解碼方法);
第三節(jié)點的簡化版本(如果將在基準測試期間被處理的音頻數(shù)據(jù)指示包括m個揚聲器聲道的已解碼的m聲道音頻,則是有用的),其僅模仿第二音頻后處理方法(即,通過禁用子系統(tǒng)5的操作并且啟用子系統(tǒng)7的操作,以使得在基準測試期間,子系統(tǒng)7執(zhí)行第二音頻后處理方法,而子系統(tǒng)5不執(zhí)行第二解碼方法);
第四節(jié)點的簡化版本,其僅模仿第三解碼方法(即,通過啟用子系統(tǒng)5的操作并且禁用子系統(tǒng)7,以使得在基準測試期間,子系統(tǒng)7不執(zhí)行第二音頻后處理方法,而子系統(tǒng)5執(zhí)行第三解碼方法)。
在確定“節(jié)點”(假想apa)和/或對“節(jié)點”(假想apa)進行基準測試的一些實施例中,節(jié)點被確定為對應于機密的配對apa(希望將其保持為機密)。節(jié)點然后可以被傳播給用戶(通過用于將系統(tǒng)編程為執(zhí)行本發(fā)明的基準測試方法的實施例的軟件)以使得可以對用戶確定的配對apa進行基準測試(或對包括這樣的用戶確定的配對apa進行基準測試),用戶確定的配對apa對應于(或類似于)節(jié)點和機密的配對apa并且意圖在各種設想的部署系統(tǒng)上運行。這可以在不實際傳播機密的配對apa的情況下實現(xiàn)。例如,在圖2的(確定節(jié)點和/或對節(jié)點進行基準測試的)一些實現(xiàn)中,節(jié)點可以被確定為以與參考代碼(其中可能希望將參考代碼保持為機密)類似的方式調用信號處理功能(其也作為庫被存儲在存儲器13中)(并且用于在子系統(tǒng)5和/或子系統(tǒng)7中執(zhí)行該節(jié)點的代碼可以被存儲在存儲器13中),但是關鍵差別在于,節(jié)點模擬參考代碼的性能特性而無需實際實現(xiàn)與參考代碼相同的算法。這樣,節(jié)點(以及對節(jié)點進行基準測試的方法)可以與參考代碼相獨立地被修改,并且節(jié)點可以比參考代碼更自由地被分發(fā)。
在圖2系統(tǒng)的典型實現(xiàn)的操作中,選定的節(jié)點在系統(tǒng)執(zhí)行該節(jié)點的同時被基準測試,方式是模擬(例如,作為可選基準測試參數(shù)的用戶選擇的結果)設想的執(zhí)行該節(jié)點的第二部署系統(tǒng)對該節(jié)點的預期實時執(zhí)行。設想的第二部署系統(tǒng)是被設想供終端用戶部署(或預期由終端用戶部署)的音頻處理系統(tǒng),其可以但無需與上述第一部署系統(tǒng)相同。節(jié)點被確定為使得當節(jié)點被圖2系統(tǒng)進行基準測試(根據(jù)基準測試參數(shù)集合)時,所得到的基準與作為根據(jù)相同的基準測試參數(shù)對對應的配對apa進行基準測試的結果由圖2系統(tǒng)確定的基準相匹配(至少基本上與該基準相同)。因此,節(jié)點可以被確定為對應于機密的配對apa(希望將其保持為機密)。節(jié)點然后可以被傳播給用戶(通過用于將圖2系統(tǒng)編程為執(zhí)行本發(fā)明的基準測試方法的實施例的軟件傳播)以允許對用戶確定的配對apa進行基準測試(或包括這種配對apa的apa的基準測試)而無需實際傳播機密的配對apa,用戶確定的配對apa對應于(或類似于)節(jié)點和機密的配對apa并且意圖在各種設想的部署系統(tǒng)上運行。
通常,在節(jié)點的基準測試期間,圖2系統(tǒng)以突發(fā)模式執(zhí)行節(jié)點,其含義是節(jié)點按被休眠間隔隔開的處理間隔的序列對音頻數(shù)據(jù)的塊(突發(fā))進行處理,其中,音頻數(shù)據(jù)的塊在每個處理間隔期間被處理,并且沒有音頻數(shù)據(jù)在休眠間隔期間被處理。子系統(tǒng)11優(yōu)選地提供可被選擇以確定占空度和/或塊大小的可選基準測試參數(shù)的菜單,通常使得(突發(fā)模式操作的)平均吞吐率和塊大小與當設想的第二部署系統(tǒng)運行節(jié)點(或與該節(jié)點相對應的配對apa)時預期的平均吞吐率和塊大小相匹配。
圖2(或圖1)系統(tǒng)執(zhí)行的節(jié)點可以包括對用于實現(xiàn)信號處理功能的代碼的調用(或甚至主要由這些調用組成),該代碼假定被存儲在(圖2系統(tǒng)的存儲器13中的)庫中,以使得該系統(tǒng)對節(jié)點的執(zhí)行包括調用(存儲在該系統(tǒng)的存儲器中的)被執(zhí)行為使該系統(tǒng)執(zhí)行信號處理功能序列的代碼。在這種情況下,(由基準測試系統(tǒng))對節(jié)點的執(zhí)行優(yōu)選地模仿對應的配對apa的執(zhí)行的動態(tài)工作負載和存儲器要求(例如,節(jié)點對基準測試系統(tǒng)的庫中的處理功能的調用的數(shù)量和順序與對應的配對apa對第一部署系統(tǒng)的庫中的對應的處理功能的調用的數(shù)量和順序相匹配)??梢员籥pa調用的信號處理功能的示例包括(但不限于)fft、濾波器、混音器以及矢量乘法。
在一些實施例中,本發(fā)明的基準測試方法由(根據(jù)本發(fā)明)利用常被稱為“僅命令行”軟件的類型的基準測試軟件來編程的音頻處理器(例如,圖1的處理器40或圖2的處理器3)實現(xiàn)(即,被編程的處理器執(zhí)行基準測試軟件以響應于作為文本行輸入的用戶命令來執(zhí)行基準測試)。在其他實施例中,處理器(根據(jù)本發(fā)明)利用實現(xiàn)圖形用戶界面(gui)的基準測試軟件來編程,該gui可供用戶用于控制本發(fā)明的基準測試方法的執(zhí)行。例如,本發(fā)明的系統(tǒng)可以通過利用包括可用于控制本發(fā)明的方法的執(zhí)行的gui的基準測試軟件的實施例編程常規(guī)處理器(例如,智能電話或其他移動設備)來實現(xiàn),但是常規(guī)處理器的操作系統(tǒng)不允許用命令行界面來運行基準測試軟件。在后一個示例中,基準測試軟件將自己實現(xiàn)gui,并且用戶將利用該gui來控制被編程的系統(tǒng)執(zhí)行根據(jù)本發(fā)明的基準測試。
在一些實施例中,本發(fā)明的基準測試方法和系統(tǒng)提供批操作模式,在該模式下,等同的功能可以經(jīng)由基準框架的命令行實例化來實現(xiàn)??蓤?zhí)行的命令行可能是基準測試方法可與一些處理器板交互(并且由這些處理器板實現(xiàn))的唯一方式,而對于一些其他的處理器(例如,在一些移動設備中),gui是基準測試方法可與這種處理器交互(并且由這種處理器實現(xiàn))的唯一方式。
在一些實施例中,本發(fā)明的基準測試方法和系統(tǒng)提供以下用戶控制中的一個或多個:
允許用戶(優(yōu)選地,方便地且容易地)選擇將被基準測試的apa(例如,假想apa)的可選版本(例如,其中選定的音頻處理操作被啟用(“開”)或被禁用(“關”)但是其他都相同的版本)并且允許測量apa的每個選定版本在基準測試期間消耗的功率的至少一個控制(例如,上述“復雜度用戶撥號”控制);
允許用戶從具有不同復雜度水平的可選apa的菜單選擇將被基準測試的apa的至少一個復雜度控制(例如,上述“復雜度用戶撥號”控制,其在圖2系統(tǒng)的上述示例性實現(xiàn)中可以在“第一節(jié)點”、“第二節(jié)點”、“第三節(jié)點”和“第四節(jié)點”之間進行選擇)。用戶通常被提供每個可選apa的復雜度(例如,工作負載和存儲器占用空間)的指示,并且菜單可以按復雜度順序呈現(xiàn)可選apa(例如,按復雜度順序提供apa的代表性工作負載和存儲器占用空間的指示)??蛇xapa可以對應于一定范圍的技術和典型的用例(例如,它們可以是模仿一定范圍的技術和用例的假想apa),并且可選apa的菜單可以提供目標處理器(預期由終端用戶部署的音頻處理器)的能力等級描述(或啟用能力等級描述的提供),能力等級描述指示哪個水平的技術復雜度可以被每個目標處理器高效地適應,并且哪些目標處理器(如果有的話)可能由于過大的存儲器總線周期或其他因素而具有不可接受的性能(當運行指定的apa時)。
在典型的實施例中,本發(fā)明的基準測試軟件支持音頻文件的輸入和在選定的apa已經(jīng)被執(zhí)行(即,在該apa對音頻數(shù)據(jù)進行處理的同時已經(jīng)經(jīng)受基準測試)之后的經(jīng)處理的音頻文件的輸出。
在一些實施例中,本發(fā)明的基準測試方法產(chǎn)生指示對選定的且被基準測試的apa的復雜度測量的基準(例如,由圖1的存儲器68或圖2的緩沖器17中的數(shù)據(jù)指示的基準)。例如,基準測試方法的示例性實施例產(chǎn)生指示關于被基準測試的apa的以下復雜度測量(以及功耗以及可選地還有其他測得值)中的全部或一些的基準:
處理器使用(例如,圖2系統(tǒng)響應于輸入音頻1產(chǎn)生輸出音頻9所需的平均mcps(每秒百萬周期數(shù))和/或cpi(每指令的周期數(shù)));以及
存儲器使用(例如,用于圖2系統(tǒng)響應于輸入音頻1產(chǎn)生輸出音頻9的代碼大小(千字節(jié))、靜態(tài)存儲器(千字節(jié))、動態(tài)存儲器(千字節(jié))和堆棧大小(千字節(jié)))。
優(yōu)選地,本發(fā)明的方法單獨地確定指示解碼節(jié)點(例如,由圖2的子系統(tǒng)5執(zhí)行)和后處理節(jié)點(例如,由圖2的子系統(tǒng)7執(zhí)行)的基準(例如,由圖2的緩沖器17中的數(shù)據(jù)指示的基準),即使兩個節(jié)點在基準測試操作期間被同時執(zhí)行。優(yōu)選地,基準由被收集在日志文件中并且被存儲以供未來參考的數(shù)據(jù)指示。優(yōu)選地,基準指示逐個塊地報告的統(tǒng)計以及平均和峰值信息,并且指示響應于輸入音頻產(chǎn)生輸出音頻所需的功耗(例如,以毫瓦為單位測量)和延時(例如,以毫秒為單位測量)。
設想根據(jù)本發(fā)明的用于對音頻處理器進行編程的基準測試軟件的一些實施例可由移動操作系統(tǒng)(例如,安卓)執(zhí)行,或者與linux或另一種常規(guī)的操作系統(tǒng)兼容(例如,是與linux或另一種常規(guī)的操作系統(tǒng)兼容的c代碼)。
在一些實施例中,本發(fā)明的方法由(根據(jù)本發(fā)明)被用基準測試軟件編程的音頻處理器執(zhí)行,該基準測試軟件:
(a)響應于選定的輸入音頻數(shù)據(jù)(例如,指示選定的一組音頻聲道的一組輸入音頻比特流)和用戶命令(經(jīng)由gui或其他用戶接口輸入的開始或播放命令),使傳輸系統(tǒng)連續(xù)循環(huán)地播放音頻數(shù)據(jù)(以供正被基準測試的apa循環(huán)地處理)。在一些情況下,可能優(yōu)選的是,比特流不指示整個塊,以使得塊時間對齊的特有性質變得均等?;鶞蕼y試軟件決定對于系統(tǒng)來說適當?shù)奶幚韷K大小,該處理塊大小可以對應于或者可以不對應于基本處理塊大??;
(b)對選定的將被基準測試的apa(例如,音頻解碼節(jié)點(用于由圖2的子系統(tǒng)5執(zhí)行)和/或音頻后處理節(jié)點(例如,用于由圖2的子系統(tǒng)7執(zhí)行))進行實例化(并且視情況對該apa進行配置);
(c)對于音頻數(shù)據(jù)的每個os大小的塊,將選定的apa(例如,(一個或多個)節(jié)點)應用于音頻數(shù)據(jù),然后使該apa休眠足夠長的時間以使得平均總處理速率與預期的實時平均吞吐量相匹配。
實現(xiàn)該時序控制(即,音頻數(shù)據(jù)處理的突發(fā)的占空度的控制,每個突發(fā)后面接著是休眠間隔)以實現(xiàn)(設想的部署處理器在真正執(zhí)行中預期的)平均吞吐量處理速率的方式的示例包括以下:
通過在設想由終端用戶部署的實際處理器(或其操作特性已知與設想的部署處理器的操作特性相匹配的處理器)上執(zhí)行將被基準測試的apa(例如,假想apa)來執(zhí)行基準測試。在這樣做的同時,依賴處理器的實際輸出調用來實現(xiàn)時序控制(每個輸出調用被正被基準測試的apa識別為音頻數(shù)據(jù)的突發(fā)的新處理周期的開始的實例)。例如,按音頻時鐘速率的特定子間隔(例如,512/48000秒的每個間隔一次,其中,采樣速率為48khz),調用程序可能需要提供音頻數(shù)據(jù)的新塊(包括512個采樣)以便處理,因此,在基準測試軟件知道突發(fā)的每個新處理周期的起始的時序的情況下,對512個樣本突發(fā)音頻數(shù)據(jù)突發(fā)執(zhí)行處理。該技術可以具有使音頻處理操作(在基準測試期間)適合os具有可用于這種情況的任何實時音頻優(yōu)先級狀態(tài)的優(yōu)點;或
通過在除了設想由終端用戶部署的處理器之外的處理器上執(zhí)行將被基準測試的apa、但是知道設想的部署處理器的預期操作特性來執(zhí)行基準測試。在這種情況下,(對于將被基準測試的apa和設想的部署處理器的每個相關對)占空度通常會被配置為基準系統(tǒng)設置的一部分。在設置之后,基準系統(tǒng)用戶通常無需對它進行修改。在設置期間,基準測試系統(tǒng)可以被配置為以包括以下方式的各種方式中的任何一種方式控制音頻數(shù)據(jù)處理的突發(fā)的占空度(每個突發(fā)后面接著是休眠間隔)來實現(xiàn)設想的部署處理器在相關apa的真正執(zhí)行中預期的平均吞吐量處理速率:
使用具有小的足夠的超時的os阻塞調用(例如,select()、poll()等);
使用軟件鎖相環(huán)適應來調節(jié)希望的休眠時間以保持穩(wěn)定的處理速率;
使用os提供的循環(huán)計時器(例如,setitimer()/sigwait());或
在線程-信號量上阻塞,并且具有運行如上的計時器的另一個線程,并且按正確的間隔發(fā)送信號。
在一些實施例中,本發(fā)明的基準測試方法包括以下步驟中的一個或多個:
查詢dlb_intrinstics/instrument/profiling狀態(tài),并且在音頻數(shù)據(jù)的每個塊的處理(由正被基準測試的apa處理)每一次完成之后記錄該狀態(tài)。如果可獲得,系統(tǒng)信息(比如瞬時cpu頻率和處理器id)也與來自處理器狀態(tài)寄存器的其他有用信息(比如高速緩存未命中計數(shù))一起被記錄。在僅本地操作模式下,該信息可以被記錄到對于gui上的顯示需要足夠大的圓形緩沖器;
響應于用戶“停止”命令(或經(jīng)由gui或其他用戶接口輸入的其他狀態(tài)改變命令),使得將當前分析狀態(tài)從圓形記錄緩沖器捕捉到被標注特定狀態(tài)或配置的另一個日志中。這種上卷的分析數(shù)據(jù)連同關于正在測試的apa和設想的部署處理器的標識信息一起,以及可能還有用戶的id,可以通過網(wǎng)絡被記錄到數(shù)據(jù)庫系統(tǒng);
gui(或其他用戶接口)提供有用的性能統(tǒng)計的全部或子集的周期性更新的顯示,以使得用戶可以進行手動標注或對照他們的預期來檢查行為;以及
基準測試過程無限期地持續(xù)進行或在用戶明確地終止它之前持續(xù)進行(基準測試數(shù)據(jù)被不時地更新)。這將允許進行電池耗盡測試以及使用物理的功率測量夾具或os層次分析儀表。
本發(fā)明的典型實施例預計具有包括以下的有用商業(yè)應用:
soc硬件架構師使用:在每一個硅公司內,駐存設計下一代soc(片上系統(tǒng))器件的若干個硬件架構。他們架構包括多個cpu、互連總線系統(tǒng)、存儲器子系統(tǒng)以及存儲器接口(例如,與外部ddr3/4存儲器器件的存儲器接口)的器件的每個關鍵組件的布局。設想,這些個體將利用根據(jù)本發(fā)明的實施例確定的基準來扼要描述他們的未來架構如何改進未來的音頻技術(例如,被基準測試的apa)的功率效率、延時、計算要求以及潛在的高速緩存丟失。這些個體通常具有使得他們能夠對架構權衡進行實驗并且研究在給定特定基準的情況下結果將如何變化的仿真器。根據(jù)典型實施例確定的基準將是易于使用的基準,該基準可以被容易地插入到它們目前的基礎設施中以使得他們能夠理解對于他們目前的架構決策和調整的權衡;
sw編譯器工程師使用:典型的基于cpu的soc和cpuip提供商具有專門進行編譯器開發(fā)的團隊。這些編譯器采用通用的或手工制作的代碼(例如,c代碼),并且將該代碼向下編譯為用于特定指令集和soc的機器代碼。為了減小存儲器占用空間、計算復雜度、高速緩存未命中以及功耗,使這些編譯盡可能地高效是至關重要的。經(jīng)常,編譯器團隊用來優(yōu)化他們的用于音頻代碼的編譯器的示例是過時的,并且沒有反映在接下來的12個月內將進入市場的音頻算法的高級性質。根據(jù)本發(fā)明的典型實施例產(chǎn)生的基準套件將使得編譯工程師能夠扼要描述他們的編譯器中的變化,并且還使得他們能夠實際測量具有在市場上可購得的評估平臺的現(xiàn)有的目標soc上的功耗。結果將使得他們能夠發(fā)布比以前幾代更高效的編譯器,并且可以演示實際差別;
微架構ip架構師使用:在典型的cpuip和dspip公司或群組內,存在設計下一代cpu/dsp器件的若干個cpu/dsp和存儲器總線微架構。類似于soc硬件架構師,這些個體可以利用根據(jù)本發(fā)明的實施例確定的基準來扼要描述他們未來的架構如何改進與基準測試技術相類似的未來技術的功率效率、延時、計算要求以及高速緩存丟失。這些個體通常具有并且使用與功率仿真器耦合的rtl仿真器,這些rtl仿真器使得他們能夠對架構權衡進行實驗并且研究在給定特定的被基準測試的apa的情況下結果將如何變化;
cpusoc基準技術營銷工程師使用:目前發(fā)布到市場的soc器件的基準測試是非常普遍且活躍的營銷差異化領域。技術營銷工程師通常被指派確保完成對于性能和功率的基準測試并且向目標客戶公布結果。根據(jù)典型實施例產(chǎn)生的基準將為這些個體提供與在如今市場上可購得的音頻技術的相關性大得多的基準,并且傳達和展示他們的技術關于音頻的益處。
本發(fā)明的其他方面包括:
包括存儲(例如,以非暫時性的方式)指示根據(jù)本發(fā)明方法或其步驟的任何實施例確定的至少一個假想apa的數(shù)據(jù)的存儲器(例如,圖2系統(tǒng)的實現(xiàn)的存儲可選預定節(jié)點的存儲器13)的系統(tǒng)或裝置;
包括存儲(例如,以非暫時性的方式)指示通過本發(fā)明方法或其步驟的任何實施例產(chǎn)生的至少一個基準的數(shù)據(jù)(即,指示基準的數(shù)據(jù))的存儲器(例如,圖2的緩沖器17或圖1系統(tǒng)的存儲器68)的系統(tǒng)或裝置;以及
存儲(例如,以非暫時性的方式)用于實現(xiàn)本發(fā)明方法或其步驟的任何實施例的代碼的計算機可讀介質(例如,盤)。這種介質的示例包括:圖3的計算機可讀介質100,其是存儲(以非暫時性的方式)用于實現(xiàn)本發(fā)明的基準測試方法的實施例(例如,將處理器編程為執(zhí)行本發(fā)明的基準測試方法的實施例)的計算機可執(zhí)行代碼的盤;以及其中存儲有可選預定節(jié)點的(圖2系統(tǒng)的實現(xiàn)的)存儲器13。
本發(fā)明的實施例可以用硬件、固件或軟件或它們的組合來實現(xiàn)(例如,實現(xiàn)為可編程邏輯陣列)。例如,圖1的處理器40或圖2的處理器3可以在被適當?shù)鼐幊痰?或被以其他方式配置的)硬件或固件中實現(xiàn),例如,實現(xiàn)為被編程的通用處理器、數(shù)字信號處理器或微處理器。除非另外指明,否則被包括作為本發(fā)明的一部分的算法或過程與任何特定的計算機或其他設備沒有固有關系。具體地說,各種通用機器可以與根據(jù)本文中的教導編寫的程序一起使用,或者可能更方便的是將更專門的設備(例如,集成電路)構造為執(zhí)行所需要的方法步驟。因此,本發(fā)明可以在在一個或多個可編程計算機系統(tǒng)(例如,實現(xiàn)圖1的系統(tǒng)或圖2的系統(tǒng)的計算機系統(tǒng))上執(zhí)行的一個或多個計算機程序中實現(xiàn),每個可編程計算機系統(tǒng)包括至少一個處理器、至少一個數(shù)據(jù)存儲系統(tǒng)(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備或端口、以及至少一個輸出設備或端口。程序代碼被應用于輸入數(shù)據(jù)以執(zhí)行本文中所描述的功能并且產(chǎn)生輸出信息。輸出信息以已知方式被應用于一個或多個輸出設備。
每個這樣的程序可以用任何希望的計算機語言(包括機器、匯編或高級過程式、邏輯或面向對象的編程語言)實現(xiàn)為與計算機系統(tǒng)進行通信。在任何情況下,語言可以是編譯或解釋語言。
例如,當通過計算機軟件指令序列實現(xiàn)時,本發(fā)明的實施例的各種功能和步驟可以通過在合適的數(shù)字信號處理硬件中運行的多線程軟件指令序列來實現(xiàn),在這種情況下,實施例的各種設備、步驟和功能可以對應于軟件指令的部分。
每個這樣的計算機程序優(yōu)選地被(例如,以非暫時性的方式)存儲在通用或專用可編程計算機可讀的存儲介質或裝置(例如,固態(tài)存儲器或介質、或磁性或光學介質)上或被下載到該存儲介質或裝置,以便當該存儲介質或裝置被計算機系統(tǒng)讀取以執(zhí)行本文中所描述的過程時對計算機進行配置和操作。本發(fā)明系統(tǒng)還可以被實現(xiàn)為配置有(即,以非暫時性的方式存儲)計算機程序的計算機可讀存儲介質,其中,如此配置的存儲介質使計算機系統(tǒng)以特定的預定義的方式進行操作以執(zhí)行本文中所描述的功能。
雖然已經(jīng)以舉例的方式就示例性的特定實施例描述了實現(xiàn),但是要理解的是,本發(fā)明的實現(xiàn)不限于所公開的實施例。相反,意圖涵蓋本領域技術人員將顯而易見的各種修改和類似布置。因此,所附權利要求的范圍應被給予最廣泛的揭示以便包含所有這樣的修改和類似布置。