消費類音頻應(yīng)用的解決方案
諸如移動音頻播放器、機(jī)頂盒(STB)、數(shù)字電視(DTV)和數(shù)字通用光盤(DVD) 播放機(jī)和刻錄機(jī)等消費設(shè)備,通常都是采用多功能系統(tǒng)芯片(SOC)來實現(xiàn)的。這樣的SOC主要執(zhí)行兩種功能:應(yīng)用處理和視頻/音頻信號處理。應(yīng)用處理(或主處理)通常是通過像MIPS處理器這樣的一個可編程內(nèi)核實現(xiàn)的。由于其計算復(fù)雜性的程度,視頻信號處理是使用專用的硬件完成的。在某種程度上,與視頻信號的處理相比,音頻信號處理的計算需求并沒有那么大,在過去,都是采用固定線路邏輯或一個數(shù)字信號處理器(DSP)進(jìn)行處理。
本文引用地址:http://m.butianyuan.cn/article/80458.htm然而,由于用戶的產(chǎn)品需要支持更多復(fù)雜的算法,音頻子系統(tǒng)的需求也在增加,先進(jìn)的前/后處理和全雙工需要進(jìn)行同時編解碼。當(dāng)音頻需求增加時,因架構(gòu)上的創(chuàng)新,處理器的頻率也在提高,使像MIPS科技這樣的可編程處理器能夠與主功能一起實現(xiàn)要求苛刻的音頻應(yīng)用。
在一個MIPS內(nèi)核上構(gòu)建兩種類型的執(zhí)行音頻應(yīng)用的SOC結(jié)構(gòu)是可能的:(1)一個是作為主處理CPU,另一個是進(jìn)行音頻處理的專用CPU(參見圖1),或者(2)采用一個單CPU作為主處理和音頻處理。使用MIPS處理器可以為音頻處理帶來顯著的好處。最重要的是優(yōu)點,這類解決方案可以提供以下的功能:
⊙單處理器架構(gòu)的高度集成的SOC解決方案
⊙減少整個SOC設(shè)計和制造過程的成本
⊙可編程音頻處理器可以延長SOC設(shè)計的生命周期
⊙快速投放市場的優(yōu)勢
⊙MIPS的軟音頻接口有利于應(yīng)用軟件的開發(fā)和集成
多內(nèi)核SOC音頻架構(gòu)
在多內(nèi)核的情況下,主CPU運行操作系統(tǒng)、最終用戶應(yīng)用和服務(wù),而用一個專用音頻處理器運行音頻處理功能。獲得MIPS科技的若干授權(quán)就可以得到專門用于MIPS音頻處理內(nèi)核的消費電子設(shè)備的SOC工具。簡而言之,使用MIPS用于音頻設(shè)計的處理器就可獲得一種可編程解決方案??删幊绦砸馕吨粋€現(xiàn)有的設(shè)計可以簡便地適用于各種各樣的音頻算法。這可以提供兩個重要的優(yōu)勢:單SOC的能力可用于多最終用戶的應(yīng)用;同時延長SOC設(shè)計的生命周期,以跟上音頻標(biāo)準(zhǔn)迅速不斷進(jìn)化和變化的腳步。
專用音頻處理器的優(yōu)點在于它不會與其他應(yīng)用爭奪CPU的周期,因此有許多余??臻g。這種音頻協(xié)處理器的余??臻g能用于多種方式:(1)備用的CPU周期可以同時用于對多數(shù)據(jù)流的編碼和解碼;(2)它可保證高檔設(shè)計中的最高音頻質(zhì)量;或者(3)余??臻g可以通過降低電壓減低處理器的頻率,因此而降低音頻子系統(tǒng)和整個SOC的功耗。
使用可編程處理器實現(xiàn)音頻算法的優(yōu)點在其配置方面的表現(xiàn)尤為明顯,因為它具有符合不斷進(jìn)化形成的全球音頻標(biāo)準(zhǔn)的靈活性。利用專用的DSP,電流性能和功率需求可能得到滿足,但是它們可能無法根據(jù)變化滿足未來的需要。MIPS的音頻處理器可為通往高性能處理器提供一條清晰而簡便的遷徙途徑,而且與其上一代產(chǎn)品是二進(jìn)制兼容的。
圖1 音頻處理架構(gòu)
當(dāng)一個內(nèi)核的音頻處理功能與主CPU單獨完成時,在主CPU和音頻處理器之間需要一種通信機(jī)制。在兩個MIPS內(nèi)核之間建立一個通信接口要比在一個MIPS CPU和一個DSP之間簡單得多。例如,MIPS CPU上可使用的LL和SC(加載-連接/存儲-條件)指令能被用來十分簡便地建立起通信和同步化機(jī)制。
單內(nèi)核SOC音頻架構(gòu)
在一個單內(nèi)核環(huán)境中,最大的好處是通過完全省掉DSP或固定線路音頻模塊,而在MIPS主處理器上執(zhí)行音頻。這既減少了裸片尺寸,又節(jié)省了總的系統(tǒng)調(diào)試時間。反過來,這也保證了減少成本和更為迅速地投放市場。
利用一個運行在主CPU上的實時操作系統(tǒng)(RTOS),音頻處理可以完成系統(tǒng)的線程(任務(wù))之一。RTOS必須保證這個音頻線程得到足夠的時序時隙,以一種適時的方式完成其任務(wù)。通常,音頻處理將僅僅需要一小部分CPU周期;因此,這個要求可以容易地得到滿足。除了RTOS之外,這個單處理器也能執(zhí)行其他諸如視頻控制等應(yīng)用。適當(dāng)?shù)臅r序機(jī)制是保證準(zhǔn)時地完成所有任務(wù)所必需的。
在一個單內(nèi)核解決方案中,由于指令和/或數(shù)據(jù)高速緩存的干擾會使音頻應(yīng)用的性能下降。這種降級是操作系統(tǒng)與處理器上執(zhí)行的其他控制功能的特定組合功能。如果性能的下降不可接受,那么就可能需要使用兩種方法中的一種。一旦引起降級的原因與指令或數(shù)據(jù)高速緩存隔離開來,第一種需要的方法是鎖定控制關(guān)鍵功能或數(shù)據(jù)數(shù)組占用的高速緩存線路。
如果高速緩存線鎖方法不理想的話,那么可以使用一個專用的高速暫存存儲器RAM(Scratchpad RAM,SPRAM)。SPRAM是為MIPS處理器執(zhí)行選擇提供可預(yù)測的低等待時間的片上存儲器。如果必要的話,SPRAM的容量可能比高速緩存的容量大得多,不過,通常小容量的SPRAM可能有助于為應(yīng)用帶來顯著的性能。通過在SPRAM中加載軟件音頻解碼器的關(guān)鍵功能的“文本”(代碼)段,能夠減少音頻解碼器中的指令高速緩存的錯誤。交替地使用SPRAM可保持常用的數(shù)據(jù)數(shù)組,以減少數(shù)據(jù)高速緩存的錯誤。
最低成本的整體解決方案:將MIPS處理器用于音頻
當(dāng)做出系統(tǒng)架構(gòu)決定的時候,需要考慮若干主要的成本因素,例如:授權(quán)、版稅、裸片尺寸、開發(fā)工具和設(shè)計時間。尤其是在低檔系統(tǒng)中,如果使用一個單內(nèi)核SOC架構(gòu),可以完全省掉DSP,縮小整個裸片的尺寸,且無需支付DSP的授權(quán)費用和版稅。這將使SOC制造商和OEM的總體成本顯著減少。
不論SOC廠商選擇在一個專用的內(nèi)核上運行音頻,還是在主CPU上進(jìn)行音頻處理,由于同樣的工具鏈能用于開發(fā)基于主CPU和音頻的應(yīng)用,所以軟件開發(fā)工具的成本更低。開發(fā)工具成本的一個主要組成部分是與工具有關(guān)的維護(hù)。在專用DSP的情況下,這可能是整個成本的很大一部分。
那些使用一個MIPS內(nèi)核實現(xiàn)控制功能和使用DSP進(jìn)行音頻處理的開發(fā)商必須熟悉兩種不同的開發(fā)環(huán)境。一種典型的開發(fā)環(huán)境可能包括操作系統(tǒng)、編譯器、模擬器、仿真器、調(diào)試程序、線跡工具、探針和剖面儀。然而,當(dāng)同樣的內(nèi)核再度使用時,只需熟悉一種開發(fā)環(huán)境,從而減少總體設(shè)計時間和設(shè)計成本。
前優(yōu)化音頻軟件提供上市時間優(yōu)勢
MIPS科技和其音頻軟件合作伙伴可為MIPS32內(nèi)核提供各種各樣經(jīng)過優(yōu)化的音頻應(yīng)用軟件。這些應(yīng)用軟件包括多種用于數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、機(jī)頂盒、數(shù)字電視和DVD播放機(jī)等消費產(chǎn)品的標(biāo)準(zhǔn)音頻多媒體數(shù)字信號編解碼器。這些高度優(yōu)化的算法與MIPS科技提供的高性能開發(fā)工具一道,可幫助開發(fā)商把重點放在驅(qū)動應(yīng)用的開發(fā)和集成方面,而無需對標(biāo)準(zhǔn)音頻的算法進(jìn)行優(yōu)化。
對于那些希望調(diào)整其他音頻/DSP算法的用戶,MIPS DSP程序庫(MIPS DSP Library)作為MIPS軟件工具包的一部分可供使用。這個程序庫具有廣泛的適用于語音壓縮、回聲消除、噪音消除、通道均衡、音頻處理等信號處理功能,還包括濾波器和FFT等通用功能。這些功能已在MIPS科技的多種處理器系列中實現(xiàn)了優(yōu)化。
MIPS內(nèi)核有許多特性有助于有效地實現(xiàn)像DSP這樣的應(yīng)用。經(jīng)過優(yōu)化的音頻多媒體數(shù)字信號編解碼器和DSP程序庫可利用這些特性提供重要的優(yōu)勢:
⊙為在所有音頻算法中使用32位整數(shù)數(shù)據(jù)的內(nèi)部計算提供盡可能最優(yōu)異的音頻質(zhì)量。
⊙MIPS32乘法積累(Multiply-Accumulate,MADD)指令在對DSP MAC運行進(jìn)行編碼時是非常有效的。
⊙在DSP回路中適當(dāng)?shù)臅r候,可使用MIPS32架構(gòu)中的數(shù)據(jù)預(yù)取指令。這可使數(shù)據(jù)預(yù)取進(jìn)入高速緩存的下一個反復(fù),同時執(zhí)行當(dāng)前的反復(fù)指令。由于可避免高速緩存的錯誤等待時間,可以顯著地節(jié)省總體運行時間。
⊙存儲器占板面積小對大多數(shù)最節(jié)省成本的解決方案都是很理想的,MIPS16應(yīng)用特定擴(kuò)展(Application Specific Extension,ASE)可用于 減少程序代碼容量。這可以通過簡便地使用一個編輯時間選擇來實現(xiàn),以顯著減少程序代碼的容量。
圖2 MIPS音頻解碼的應(yīng)用實例
除了上述的特性之外,該軟件還利用其他技術(shù)得到盡可能最高的性能:
⊙MIPS32匯編工具具備加強(qiáng)關(guān)鍵運算計算的人工編碼能力;
⊙建立在內(nèi)核到內(nèi)核基礎(chǔ)上的人工時序可以最大限度地減少加載使用(在指令需要的數(shù)據(jù)開始執(zhí)行之后,來自高速緩存/存儲器系統(tǒng)的加載指令數(shù)據(jù)到達(dá)—直到數(shù)據(jù)可供使用之前,處理器都不會運行)的瓶頸;
⊙循環(huán)展開和軟件流水線操作可用于最佳的代碼時序。
為了提供最大限度的靈活性,可在軟件中執(zhí)行MIPS消費音頻平臺的所有算法。不過,SOC設(shè)計者還是可以通過CorExtend的特性使用MIPS內(nèi)核指令集來滿足新出現(xiàn)的音頻標(biāo)準(zhǔn)。用戶定義的指令(UDI)或CorExtend可為應(yīng)用加速增加新的指令和狀態(tài)。這種定制能力為SOC廠商提供了改進(jìn)性能和產(chǎn)品個性化的功能。
遷徙途徑
MIPS科技不斷開發(fā)越來越先進(jìn)的內(nèi)核設(shè)計,并實現(xiàn)架構(gòu)方面的進(jìn)展,在持續(xù)改善性能方面積累了豐富的經(jīng)驗。在內(nèi)核領(lǐng)域,MIPS科技已在產(chǎn)品中增加了一個8段流水線,從而改進(jìn)了時鐘速度性能。在架構(gòu)方面,MIPS科技已通過增加第二版架構(gòu)(Release 2 Architecture)改善了IPC性能。
MIPS科技繼續(xù)承諾改進(jìn)性能,最近又為多線程(Multi-Threading,MT)發(fā)布了ASE MIPS處理器。這種產(chǎn)品與音頻市場有著特殊的關(guān)系。MIPS MT ASE利用來自另一個可用線程的有用的工作填充流水線固定位置的方法,改善了整個系統(tǒng)的性能。但是,MT ASE在音頻方面更為顯著的特性是其提供了服務(wù)質(zhì)量(QoS)時序機(jī)制。
MT ASE采用了一個可以共享一條單流水線的多重虛擬處理元素(Virtual Processing Elements,VPE)的概念。在一個音頻環(huán)境中,可以使用兩個VPE:一個運行OS(操作系統(tǒng)),另一個運行音頻應(yīng)用。MT ASE可以利用時序政策,保證使特定任務(wù)的處理器帶寬分配最小。此外,它還可提供服務(wù)質(zhì)量特性。這兩個特性的結(jié)合可以在不跳過任何音頻幀的情況下保證音頻應(yīng)用的實時執(zhí)行,同時也維護(hù)了所有其他的實時任務(wù),以及適時方式的OS。
QoS特性根本上消除了OS中斷對音頻功能表現(xiàn)的影響。通常,中斷服務(wù)可在“發(fā)生”異常的線程執(zhí)行時間方面引起相當(dāng)大的可變性。MT ASE可提供一個機(jī)制,它可使任何異步異常得到延緩,直到OS線程(非豁免線程)被預(yù)定。這增加了在一種有限的和受控的方式下OS任務(wù)的中斷等待時間,同時保持了音頻任務(wù)的執(zhí)行。如果中斷處理程序的執(zhí)行僅僅是發(fā)生在輸出時隙未分配豁免實時QoS線程期間,那么,中斷服務(wù)對這樣的實時代碼執(zhí)行時間沒有直接的影響。
MIPS音頻解碼器應(yīng)用實例
音頻解碼器通常作為驅(qū)動器應(yīng)用進(jìn)行存取。驅(qū)動器的作用是從適當(dāng)?shù)妮斎朐O(shè)備提取引入的位流,并將經(jīng)過解碼的位流發(fā)送到音頻輸出設(shè)備,如圖2所顯示的那樣。它也可以執(zhí)行其他后處理功能,例如在發(fā)送到輸出設(shè)備之前,對經(jīng)過解碼的音頻位流進(jìn)行低音控制。驅(qū)動器通過一個標(biāo)準(zhǔn)接口機(jī)制訪問MIPS的音頻產(chǎn)品,也就是MIPS的軟音頻接口(Soft Audio Interface,SAI)。這個通用接口可使各種來自MIPS科技的音頻解碼器易于與主應(yīng)用進(jìn)行連接。
MIPS SAI可提供解碼器和主程序,或高級控制和運算監(jiān)控解碼器RTOS之間的接口功能和結(jié)構(gòu)。這種接口為訪問控制解碼器運算和訪問狀態(tài)和差錯信息參數(shù)提供了機(jī)會。該接口可執(zhí)行三個基本功能:一個是對解碼器進(jìn)行初始化,第二個是閱讀幀標(biāo)題,第三個實際上是進(jìn)行解碼處理。所有的解碼器都具有與特定解碼器有關(guān)的預(yù)確認(rèn)字段數(shù)據(jù)結(jié)構(gòu)。解碼器對所有的幀進(jìn)行閱讀和結(jié)構(gòu)更新。在幀開始或結(jié)束時,主程序可訪問數(shù)據(jù)結(jié)構(gòu),閱讀狀態(tài)或改變控制參數(shù)。參考下面的代碼實例,它說明了驅(qū)動程序的運行情況。MIPS SAI的功能用粗體字表示。
int main(void)
{
decoder_specific_struct dec_ptr;
//Initialize the decoder.
mips_sai_dec_init(&dec_ptr);
//Open the bitstream input device.
open_input();
//Open the audio output device.
open_output();
//Allocate buffers for decoder operation.
allocate_buffers(&dec_ptr);
while(not-end-of-input-bitstream)
//Read the input bitstream.
read_input(&dec_ptr);
//Read the frame header for encoded stream parameters.
mips_sai_dec_readheader(&dec_ptr);
//Set up params for decoder operation.
setup_params(&dec_ptr);
//Decode the frame
mips_sai_dec_process(&dec_ptr);
//write the decoder output to the device driver.
write_output(&dec_ptr);
end-while
//Close the input and output devices.
close_input();
close_output();
return 0;
}
結(jié)語
MIPS處理器可供使用的各種特性為實現(xiàn)消費音頻算法提供了一系列的優(yōu)勢。這些優(yōu)勢包括單一的可編程架構(gòu)、更低的系統(tǒng)成本和縮短上市時間。這使MIPS處理器成為從電池供電的移動音頻播放器到高性能DVD刻錄設(shè)備等消費電子產(chǎn)品音頻應(yīng)用的一種可行和具有吸引力的解決方案。
評論