<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 消費(fèi)類音頻應(yīng)用的解決方案

          消費(fèi)類音頻應(yīng)用的解決方案

          作者:MIPS科技公司  Rajesh Palani, Radhika Thekkath 時(shí)間:2008-03-21 來源:電子產(chǎn)品世界 收藏

            諸如移動(dòng)音頻播放器、機(jī)頂盒(STB)、數(shù)字電視(DTV)和數(shù)字通用光盤(DVD) 播放機(jī)和刻錄機(jī)等消費(fèi)設(shè)備,通常都是采用多功能系統(tǒng)芯片()來實(shí)現(xiàn)的。這樣的主要執(zhí)行兩種功能:應(yīng)用處理和視頻/音頻信號(hào)處理。應(yīng)用處理(或主處理)通常是通過像這樣的一個(gè)可編程內(nèi)核實(shí)現(xiàn)的。由于其計(jì)算復(fù)雜性的程度,視頻信號(hào)處理是使用專用的硬件完成的。在某種程度上,與視頻信號(hào)的處理相比,音頻信號(hào)處理的計(jì)算需求并沒有那么大,在過去,都是采用固定線路邏輯或一個(gè)數(shù)字信號(hào)處理器(DSP)進(jìn)行處理。

          本文引用地址:http://www.ex-cimer.com/article/80458.htm

            然而,由于用戶的產(chǎn)品需要支持更多復(fù)雜的算法,音頻子系統(tǒng)的需求也在增加,先進(jìn)的前/后處理和全雙工需要進(jìn)行同時(shí)編解碼。當(dāng)音頻需求增加時(shí),因架構(gòu)上的創(chuàng)新,處理器的頻率也在提高,使像MIPS科技這樣的可編程處理器能夠與主功能一起實(shí)現(xiàn)要求苛刻的音頻應(yīng)用。

            在一個(gè)MIPS內(nèi)核上構(gòu)建兩種類型的執(zhí)行音頻應(yīng)用的結(jié)構(gòu)是可能的:(1)一個(gè)是作為主處理CPU,另一個(gè)是進(jìn)行音頻處理的專用CPU(參見圖1),或者(2)采用一個(gè)單CPU作為主處理和音頻處理。使用可以為音頻處理帶來顯著的好處。最重要的是優(yōu)點(diǎn),這類解決方案可以提供以下的功能:

            ⊙單處理器架構(gòu)的高度集成的SOC解決方案

            ⊙減少整個(gè)SOC設(shè)計(jì)和制造過程的成本

            ⊙可編程音頻處理器可以延長(zhǎng)SOC設(shè)計(jì)的生命周期

            ⊙快速投放市場(chǎng)的優(yōu)勢(shì)

            ⊙MIPS的軟音頻接口有利于應(yīng)用軟件的開發(fā)和集成

            多內(nèi)核SOC音頻架構(gòu)

            在多內(nèi)核的情況下,主CPU運(yùn)行操作系統(tǒng)、最終用戶應(yīng)用和服務(wù),而用一個(gè)專用音頻處理器運(yùn)行音頻處理功能。獲得MIPS科技的若干授權(quán)就可以得到專門用于MIPS音頻處理內(nèi)核的消費(fèi)電子設(shè)備的SOC工具。簡(jiǎn)而言之,使用MIPS用于音頻設(shè)計(jì)的處理器就可獲得一種可編程解決方案。可編程性意味著一個(gè)現(xiàn)有的設(shè)計(jì)可以簡(jiǎn)便地適用于各種各樣的音頻算法。這可以提供兩個(gè)重要的優(yōu)勢(shì):?jiǎn)蜸OC的能力可用于多最終用戶的應(yīng)用;同時(shí)延長(zhǎng)SOC設(shè)計(jì)的生命周期,以跟上音頻標(biāo)準(zhǔn)迅速不斷進(jìn)化和變化的腳步。

            專用音頻處理器的優(yōu)點(diǎn)在于它不會(huì)與其他應(yīng)用爭(zhēng)奪CPU的周期,因此有許多余裕空間。這種音頻協(xié)處理器的余??臻g能用于多種方式:(1)備用的CPU周期可以同時(shí)用于對(duì)多數(shù)據(jù)流的編碼和解碼;(2)它可保證高檔設(shè)計(jì)中的最高音頻質(zhì)量;或者(3)余??臻g可以通過降低電壓減低處理器的頻率,因此而降低音頻子系統(tǒng)和整個(gè)SOC的功耗。

            使用可編程處理器實(shí)現(xiàn)音頻算法的優(yōu)點(diǎn)在其配置方面的表現(xiàn)尤為明顯,因?yàn)樗哂蟹喜粩噙M(jìn)化形成的全球音頻標(biāo)準(zhǔn)的靈活性。利用專用的DSP,電流性能和功率需求可能得到滿足,但是它們可能無法根據(jù)變化滿足未來的需要。MIPS的音頻處理器可為通往高性能處理器提供一條清晰而簡(jiǎn)便的遷徙途徑,而且與其上一代產(chǎn)品是二進(jìn)制兼容的。


          圖1 音頻處理架構(gòu)

            當(dāng)一個(gè)內(nèi)核的音頻處理功能與主CPU單獨(dú)完成時(shí),在主CPU和音頻處理器之間需要一種通信機(jī)制。在兩個(gè)MIPS內(nèi)核之間建立一個(gè)通信接口要比在一個(gè)MIPS CPU和一個(gè)DSP之間簡(jiǎn)單得多。例如,MIPS CPU上可使用的LL和SC(加載-連接/存儲(chǔ)-條件)指令能被用來十分簡(jiǎn)便地建立起通信和同步化機(jī)制。

            單內(nèi)核SOC音頻架構(gòu)

            在一個(gè)單內(nèi)核環(huán)境中,最大的好處是通過完全省掉DSP或固定線路音頻模塊,而在MIPS主處理器上執(zhí)行音頻。這既減少了裸片尺寸,又節(jié)省了總的系統(tǒng)調(diào)試時(shí)間。反過來,這也保證了減少成本和更為迅速地投放市場(chǎng)。

            利用一個(gè)運(yùn)行在主CPU上的實(shí)時(shí)操作系統(tǒng)(RTOS),音頻處理可以完成系統(tǒng)的線程(任務(wù))之一。RTOS必須保證這個(gè)音頻線程得到足夠的時(shí)序時(shí)隙,以一種適時(shí)的方式完成其任務(wù)。通常,音頻處理將僅僅需要一小部分CPU周期;因此,這個(gè)要求可以容易地得到滿足。除了RTOS之外,這個(gè)單處理器也能執(zhí)行其他諸如視頻控制等應(yīng)用。適當(dāng)?shù)臅r(shí)序機(jī)制是保證準(zhǔn)時(shí)地完成所有任務(wù)所必需的。

            在一個(gè)單內(nèi)核解決方案中,由于指令和/或數(shù)據(jù)高速緩存的干擾會(huì)使音頻應(yīng)用的性能下降。這種降級(jí)是操作系統(tǒng)與處理器上執(zhí)行的其他控制功能的特定組合功能。如果性能的下降不可接受,那么就可能需要使用兩種方法中的一種。一旦引起降級(jí)的原因與指令或數(shù)據(jù)高速緩存隔離開來,第一種需要的方法是鎖定控制關(guān)鍵功能或數(shù)據(jù)數(shù)組占用的高速緩存線路。

            如果高速緩存線鎖方法不理想的話,那么可以使用一個(gè)專用的高速暫存存儲(chǔ)器RAM(Scratchpad RAM,SPRAM)。SPRAM是為執(zhí)行選擇提供可預(yù)測(cè)的低等待時(shí)間的片上存儲(chǔ)器。如果必要的話,SPRAM的容量可能比高速緩存的容量大得多,不過,通常小容量的SPRAM可能有助于為應(yīng)用帶來顯著的性能。通過在SPRAM中加載軟件音頻解碼器的關(guān)鍵功能的“文本”(代碼)段,能夠減少音頻解碼器中的指令高速緩存的錯(cuò)誤。交替地使用SPRAM可保持常用的數(shù)據(jù)數(shù)組,以減少數(shù)據(jù)高速緩存的錯(cuò)誤。

            最低成本的整體解決方案:將MIPS處理器用于音頻

            當(dāng)做出系統(tǒng)架構(gòu)決定的時(shí)候,需要考慮若干主要的成本因素,例如:授權(quán)、版稅、裸片尺寸、開發(fā)工具和設(shè)計(jì)時(shí)間。尤其是在低檔系統(tǒng)中,如果使用一個(gè)單內(nèi)核SOC架構(gòu),可以完全省掉DSP,縮小整個(gè)裸片的尺寸,且無需支付DSP的授權(quán)費(fèi)用和版稅。這將使SOC制造商和OEM的總體成本顯著減少。

            不論SOC廠商選擇在一個(gè)專用的內(nèi)核上運(yùn)行音頻,還是在主CPU上進(jìn)行音頻處理,由于同樣的工具鏈能用于開發(fā)基于主CPU和音頻的應(yīng)用,所以軟件開發(fā)工具的成本更低。開發(fā)工具成本的一個(gè)主要組成部分是與工具有關(guān)的維護(hù)。在專用DSP的情況下,這可能是整個(gè)成本的很大一部分。
          那些使用一個(gè)MIPS內(nèi)核實(shí)現(xiàn)控制功能和使用DSP進(jìn)行音頻處理的開發(fā)商必須熟悉兩種不同的開發(fā)環(huán)境。一種典型的開發(fā)環(huán)境可能包括操作系統(tǒng)、編譯器、模擬器、仿真器、調(diào)試程序、線跡工具、探針和剖面儀。然而,當(dāng)同樣的內(nèi)核再度使用時(shí),只需熟悉一種開發(fā)環(huán)境,從而減少總體設(shè)計(jì)時(shí)間和設(shè)計(jì)成本。

            前優(yōu)化音頻軟件提供上市時(shí)間優(yōu)勢(shì)

            MIPS科技和其音頻軟件合作伙伴可為MIPS32內(nèi)核提供各種各樣經(jīng)過優(yōu)化的音頻應(yīng)用軟件。這些應(yīng)用軟件包括多種用于數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、機(jī)頂盒、數(shù)字電視和DVD播放機(jī)等消費(fèi)產(chǎn)品的標(biāo)準(zhǔn)音頻多媒體數(shù)字信號(hào)編解碼器。這些高度優(yōu)化的算法與MIPS科技提供的高性能開發(fā)工具一道,可幫助開發(fā)商把重點(diǎn)放在驅(qū)動(dòng)應(yīng)用的開發(fā)和集成方面,而無需對(duì)標(biāo)準(zhǔn)音頻的算法進(jìn)行優(yōu)化。
            對(duì)于那些希望調(diào)整其他音頻/DSP算法的用戶,MIPS  DSP程序庫(MIPS  DSP Library)作為MIPS軟件工具包的一部分可供使用。這個(gè)程序庫具有廣泛的適用于語音壓縮、回聲消除、噪音消除、通道均衡、音頻處理等信號(hào)處理功能,還包括濾波器和FFT等通用功能。這些功能已在MIPS科技的多種處理器系列中實(shí)現(xiàn)了優(yōu)化。

            MIPS內(nèi)核有許多特性有助于有效地實(shí)現(xiàn)像DSP這樣的應(yīng)用。經(jīng)過優(yōu)化的音頻多媒體數(shù)字信號(hào)編解碼器和DSP程序庫可利用這些特性提供重要的優(yōu)勢(shì):

            ⊙為在所有音頻算法中使用32位整數(shù)數(shù)據(jù)的內(nèi)部計(jì)算提供盡可能最優(yōu)異的音頻質(zhì)量。

            ⊙MIPS32乘法積累(Multiply-Accumulate,MADD)指令在對(duì)DSP MAC運(yùn)行進(jìn)行編碼時(shí)是非常有效的。

            ⊙在DSP回路中適當(dāng)?shù)臅r(shí)候,可使用MIPS32架構(gòu)中的數(shù)據(jù)預(yù)取指令。這可使數(shù)據(jù)預(yù)取進(jìn)入高速緩存的下一個(gè)反復(fù),同時(shí)執(zhí)行當(dāng)前的反復(fù)指令。由于可避免高速緩存的錯(cuò)誤等待時(shí)間,可以顯著地節(jié)省總體運(yùn)行時(shí)間。

            ⊙存儲(chǔ)器占板面積小對(duì)大多數(shù)最節(jié)省成本的解決方案都是很理想的,MIPS16應(yīng)用特定擴(kuò)展(Application Specific Extension,ASE)可用于  減少程序代碼容量。這可以通過簡(jiǎn)便地使用一個(gè)編輯時(shí)間選擇來實(shí)現(xiàn),以顯著減少程序代碼的容量。


          圖2  MIPS音頻解碼的應(yīng)用實(shí)例

            除了上述的特性之外,該軟件還利用其他技術(shù)得到盡可能最高的性能:

            ⊙MIPS32匯編工具具備加強(qiáng)關(guān)鍵運(yùn)算計(jì)算的人工編碼能力;

            ⊙建立在內(nèi)核到內(nèi)核基礎(chǔ)上的人工時(shí)序可以最大限度地減少加載使用(在指令需要的數(shù)據(jù)開始執(zhí)行之后,來自高速緩存/存儲(chǔ)器系統(tǒng)的加載指令數(shù)據(jù)到達(dá)—直到數(shù)據(jù)可供使用之前,處理器都不會(huì)運(yùn)行)的瓶頸;

            ⊙循環(huán)展開和軟件流水線操作可用于最佳的代碼時(shí)序。

            為了提供最大限度的靈活性,可在軟件中執(zhí)行MIPS消費(fèi)音頻平臺(tái)的所有算法。不過,SOC設(shè)計(jì)者還是可以通過CorExtend的特性使用MIPS內(nèi)核指令集來滿足新出現(xiàn)的音頻標(biāo)準(zhǔn)。用戶定義的指令(UDI)或CorExtend可為應(yīng)用加速增加新的指令和狀態(tài)。這種定制能力為SOC廠商提供了改進(jìn)性能和產(chǎn)品個(gè)性化的功能。

            遷徙途徑

            MIPS科技不斷開發(fā)越來越先進(jìn)的內(nèi)核設(shè)計(jì),并實(shí)現(xiàn)架構(gòu)方面的進(jìn)展,在持續(xù)改善性能方面積累了豐富的經(jīng)驗(yàn)。在內(nèi)核領(lǐng)域,MIPS科技已在產(chǎn)品中增加了一個(gè)8段流水線,從而改進(jìn)了時(shí)鐘速度性能。在架構(gòu)方面,MIPS科技已通過增加第二版架構(gòu)(Release 2 Architecture)改善了IPC性能。
            MIPS科技繼續(xù)承諾改進(jìn)性能,最近又為多線程(Multi-Threading,MT)發(fā)布了ASE MIPS處理器。這種產(chǎn)品與音頻市場(chǎng)有著特殊的關(guān)系。MIPS MT ASE利用來自另一個(gè)可用線程的有用的工作填充流水線固定位置的方法,改善了整個(gè)系統(tǒng)的性能。但是,MT ASE在音頻方面更為顯著的特性是其提供了服務(wù)質(zhì)量(QoS)時(shí)序機(jī)制。
            MT ASE采用了一個(gè)可以共享一條單流水線的多重虛擬處理元素(Virtual Processing Elements,VPE)的概念。在一個(gè)音頻環(huán)境中,可以使用兩個(gè)VPE:一個(gè)運(yùn)行OS(操作系統(tǒng)),另一個(gè)運(yùn)行音頻應(yīng)用。MT ASE可以利用時(shí)序政策,保證使特定任務(wù)的處理器帶寬分配最小。此外,它還可提供服務(wù)質(zhì)量特性。這兩個(gè)特性的結(jié)合可以在不跳過任何音頻幀的情況下保證音頻應(yīng)用的實(shí)時(shí)執(zhí)行,同時(shí)也維護(hù)了所有其他的實(shí)時(shí)任務(wù),以及適時(shí)方式的OS。
            QoS特性根本上消除了OS中斷對(duì)音頻功能表現(xiàn)的影響。通常,中斷服務(wù)可在“發(fā)生”異常的線程執(zhí)行時(shí)間方面引起相當(dāng)大的可變性。MT ASE可提供一個(gè)機(jī)制,它可使任何異步異常得到延緩,直到OS線程(非豁免線程)被預(yù)定。這增加了在一種有限的和受控的方式下OS任務(wù)的中斷等待時(shí)間,同時(shí)保持了音頻任務(wù)的執(zhí)行。如果中斷處理程序的執(zhí)行僅僅是發(fā)生在輸出時(shí)隙未分配豁免實(shí)時(shí)QoS線程期間,那么,中斷服務(wù)對(duì)這樣的實(shí)時(shí)代碼執(zhí)行時(shí)間沒有直接的影響。

            MIPS音頻解碼器應(yīng)用實(shí)例

            音頻解碼器通常作為驅(qū)動(dòng)器應(yīng)用進(jìn)行存取。驅(qū)動(dòng)器的作用是從適當(dāng)?shù)妮斎朐O(shè)備提取引入的位流,并將經(jīng)過解碼的位流發(fā)送到音頻輸出設(shè)備,如圖2所顯示的那樣。它也可以執(zhí)行其他后處理功能,例如在發(fā)送到輸出設(shè)備之前,對(duì)經(jīng)過解碼的音頻位流進(jìn)行低音控制。驅(qū)動(dòng)器通過一個(gè)標(biāo)準(zhǔn)接口機(jī)制訪問MIPS的音頻產(chǎn)品,也就是MIPS的軟音頻接口(Soft Audio Interface,SAI)。這個(gè)通用接口可使各種來自MIPS科技的音頻解碼器易于與主應(yīng)用進(jìn)行連接。
            MIPS SAI可提供解碼器和主程序,或高級(jí)控制和運(yùn)算監(jiān)控解碼器RTOS之間的接口功能和結(jié)構(gòu)。這種接口為訪問控制解碼器運(yùn)算和訪問狀態(tài)和差錯(cuò)信息參數(shù)提供了機(jī)會(huì)。該接口可執(zhí)行三個(gè)基本功能:一個(gè)是對(duì)解碼器進(jìn)行初始化,第二個(gè)是閱讀幀標(biāo)題,第三個(gè)實(shí)際上是進(jìn)行解碼處理。所有的解碼器都具有與特定解碼器有關(guān)的預(yù)確認(rèn)字段數(shù)據(jù)結(jié)構(gòu)。解碼器對(duì)所有的幀進(jìn)行閱讀和結(jié)構(gòu)更新。在幀開始或結(jié)束時(shí),主程序可訪問數(shù)據(jù)結(jié)構(gòu),閱讀狀態(tài)或改變控制參數(shù)。參考下面的代碼實(shí)例,它說明了驅(qū)動(dòng)程序的運(yùn)行情況。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處理器可供使用的各種特性為實(shí)現(xiàn)消費(fèi)音頻算法提供了一系列的優(yōu)勢(shì)。這些優(yōu)勢(shì)包括單一的可編程架構(gòu)、更低的系統(tǒng)成本和縮短上市時(shí)間。這使MIPS處理器成為從電池供電的移動(dòng)音頻播放器到高性能DVD刻錄設(shè)備等消費(fèi)電子產(chǎn)品音頻應(yīng)用的一種可行和具有吸引力的解決方案。



          關(guān)鍵詞: SOC MIPS處理器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();