亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

主機(jī)CPU輔助的音頻處理方法及執(zhí)行該方法的計(jì)算系統(tǒng)與流程

文檔序號:12462802閱讀:394來源:國知局
主機(jī)CPU輔助的音頻處理方法及執(zhí)行該方法的計(jì)算系統(tǒng)與流程

技術(shù)領(lǐng)域

與示例實(shí)施例一致的設(shè)備、方法和系統(tǒng)涉及音頻處理方法,更具體地講,涉及一種主機(jī)中央處理器輔助的(主機(jī)CPU輔助的)音頻處理方法以及執(zhí)行該音頻處理方法的計(jì)算系統(tǒng)。



背景技術(shù):

音頻處理可包括例如用于通過處理音頻數(shù)據(jù)來生成聲音的音頻回放以及用于通過處理所接收的聲音來生成音頻數(shù)據(jù)的聲音記錄二者。音頻數(shù)據(jù)可以是基于音頻編解碼器壓縮的數(shù)據(jù),音頻回放可包括基于音頻編解碼器將壓縮的源音頻數(shù)據(jù)解碼的操作,聲音記錄可包括基于音頻編解碼器對聲音進(jìn)行編碼的操作。此外,音頻回放可包括用于對源音頻數(shù)據(jù)被解碼時(shí)所生成的音頻流執(zhí)行各種處理的后處理,聲音記錄可包括用于對從聲音生成的音頻流或者通過對音頻流進(jìn)行編碼而獲得的音頻數(shù)據(jù)執(zhí)行各種處理的預(yù)處理。

音頻處理可由處理器或者專用邏輯塊來執(zhí)行。當(dāng)執(zhí)行音頻回放或聲音記錄時(shí),音頻數(shù)據(jù)的量或者數(shù)據(jù)的壓縮率可增加以提供高聲音質(zhì)量。此外,音頻處理的復(fù)雜度可增加以提供各種聲音效果。因此,可能需要高性能硬件以在有限時(shí)間內(nèi)從音頻數(shù)據(jù)輸出聲音或者在有限時(shí)間內(nèi)從聲音生成音頻數(shù)據(jù)。然而,這種高性能硬件可增加功耗以及增加音頻硬件和使用該音頻硬件的裝置二者的成本,因此用于回放音頻數(shù)據(jù)或者用于記錄聲音數(shù)據(jù)的電子裝置中可能出現(xiàn)針對成本和電力的問題,特別是在移動電子裝置中。



技術(shù)實(shí)現(xiàn)要素:

一個(gè)或更多個(gè)示例性實(shí)施例提供一種有效地利用計(jì)算系統(tǒng)的資源的音頻處理方法。

一個(gè)或更多個(gè)示例性實(shí)施例還提供一種執(zhí)行所述音頻處理方法的計(jì)算系統(tǒng)。

根據(jù)示例性實(shí)施例的一方面,提供一種由包括主機(jī)中央處理器(CPU)和音頻處理引擎的計(jì)算系統(tǒng)執(zhí)行的音頻處理方法,所述音頻處理方法包括:由音頻處理引擎基于針對第一音頻數(shù)據(jù)的第一處理的運(yùn)行時(shí)間來確定音頻處理引擎是否可執(zhí)行針對第一音頻數(shù)據(jù)的第一處理;基于確定的結(jié)果,由音頻處理引擎執(zhí)行第一處理,或者請求主機(jī)CPU執(zhí)行第一處理;由主機(jī)CPU通過響應(yīng)于音頻處理引擎的請求執(zhí)行第一處理來生成第二音頻數(shù)據(jù)。

根據(jù)另一示例性實(shí)施例的一方面,提供一種由包括主機(jī)中央處理器(CPU)和音頻處理引擎的計(jì)算系統(tǒng)執(zhí)行的音頻處理方法,所述音頻處理方法包括:由主機(jī)CPU將關(guān)于針對音頻數(shù)據(jù)的多個(gè)處理的信息發(fā)送至音頻處理引擎;由音頻處理引擎基于所述多個(gè)處理的運(yùn)行時(shí)間來確定音頻處理引擎是否可執(zhí)行所述多個(gè)處理;基于確定的結(jié)果,由音頻處理引擎執(zhí)行所述多個(gè)處理中的至少一個(gè)處理,或者請求主機(jī)CPU執(zhí)行所述多個(gè)處理中的所述至少一個(gè)處理。

根據(jù)另一示例性實(shí)施例的一方面,提供存儲有程序的指令的一個(gè)或更多個(gè)非暫時(shí)性計(jì)算機(jī)可讀存儲裝置,所述程序通過使用計(jì)算系統(tǒng)實(shí)現(xiàn)音頻處理方法,其中,所述計(jì)算系統(tǒng)包括主機(jī)中央處理器(CPU)和音頻處理引擎,其中,所述音頻處理方法包括:由音頻處理引擎基于針對第一音頻數(shù)據(jù)的第一處理的運(yùn)行時(shí)間來確定音頻處理引擎是否可執(zhí)行針對第一音頻數(shù)據(jù)的第一處理;基于確定的結(jié)果,由音頻處理引擎執(zhí)行第一處理,或者請求主機(jī)CPU執(zhí)行第一處理。

根據(jù)另一示例性實(shí)施例的一方面,提供一種用于執(zhí)行音頻處理的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括:主機(jī)中央處理器(CPU);音頻處理引擎,與主機(jī)CPU分離地設(shè)置,音頻處理引擎被配置為基于針對第一音頻數(shù)據(jù)的第一處理的運(yùn)行時(shí)間來確定音頻處理引擎是否可執(zhí)行針對第一音頻數(shù)據(jù)的第一處理,并且基于確定的結(jié)果,由音頻處理引擎執(zhí)行第一處理或者請求主機(jī)CPU執(zhí)行第一處理。

根據(jù)另一示例性實(shí)施例的一方面,提供一種用于執(zhí)行音頻處理的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括:主機(jī)中央處理器(CPU);音頻處理引擎,與主機(jī)CPU分離地設(shè)置并且不能按照充分輸出處理的音頻數(shù)據(jù)的速度執(zhí)行將要對音頻數(shù)據(jù)執(zhí)行的多個(gè)處理中的至少一個(gè)處理,音頻處理引擎被配置為確定音頻處理引擎是否可執(zhí)行所述多個(gè)處理中的第一處理,并且基于確定的結(jié)果,由音頻處理引擎執(zhí)行第一處理或者請求主機(jī)CPU執(zhí)行第一處理。

附圖說明

以上和/或其它方面將從下面結(jié)合附圖進(jìn)行的詳細(xì)描述更清楚地理解,其中:

圖1是根據(jù)示例性實(shí)施例的計(jì)算系統(tǒng)的框圖;

圖2A和圖2B是示出執(zhí)行音頻處理的多個(gè)處理的操作的示例的示圖;

圖3是根據(jù)示例性實(shí)施例的圖1的計(jì)算系統(tǒng)的音頻處理引擎的操作方法的流程圖;

圖4是示出根據(jù)示例性實(shí)施例的圖1的計(jì)算系統(tǒng)的音頻子系統(tǒng)的示例的框圖;

圖5A和圖5B是示出當(dāng)對源音頻數(shù)據(jù)執(zhí)行具有高復(fù)雜度的處理時(shí)圖4的音頻子系統(tǒng)的流緩沖器的操作的示圖;

圖6是示出根據(jù)示例性實(shí)施例的圖3的操作方法的操作S10的示例的流程圖;

圖7A和圖7B是示出當(dāng)執(zhí)行具有高復(fù)雜度的處理以生成目標(biāo)音頻數(shù)據(jù)時(shí)圖4的音頻子系統(tǒng)的流緩沖器的操作的示圖;

圖8是示出根據(jù)示例性實(shí)施例的圖3的操作方法的操作S10的示例的流程圖;

圖9是示出根據(jù)示例性實(shí)施例的在圖3的操作方法的操作S30和S40中在主機(jī)中央處理器(CPU)和音頻處理引擎之間的數(shù)據(jù)移動的示圖;

圖10A和圖10B是示出根據(jù)示例性實(shí)施例的主機(jī)CPU和音頻處理引擎的操作的示圖;

圖11是示出根據(jù)示例性實(shí)施例的主機(jī)CPU和音頻處理引擎的操作的示圖;

圖12是根據(jù)示例性實(shí)施例的音頻子系統(tǒng)的框圖;

圖13是示出根據(jù)示例性實(shí)施例的用于圖12的音頻子系統(tǒng)的查找表的示例的示圖;

圖14是示出根據(jù)示例性實(shí)施例的主機(jī)CPU與音頻處理引擎之間的操作的示圖;

圖15是示出根據(jù)示例性實(shí)施例的主機(jī)CPU與音頻處理引擎之間的操作的示圖;

圖16是示出根據(jù)示例性實(shí)施例的主機(jī)CPU與音頻處理引擎之間的操作的示圖;

圖17是根據(jù)示例性實(shí)施例的作為卸載音頻處理系統(tǒng)操作的計(jì)算系統(tǒng)的框圖;

圖18是示出根據(jù)示例性實(shí)施例的計(jì)算機(jī)可讀存儲裝置的示圖。

具體實(shí)施方式

圖1是根據(jù)示例性實(shí)施例的計(jì)算系統(tǒng)1000的框圖。參照圖1,計(jì)算系統(tǒng)1000可包括連接至系統(tǒng)總線500以彼此通信的主機(jī)中央處理器(CPU)100、音頻子系統(tǒng)200、外圍設(shè)備300和存儲器子系統(tǒng)400,并且還可包括脈沖編碼調(diào)制(PCM)混合器600、揚(yáng)聲器700和麥克風(fēng)800。

作為非限制性示例,計(jì)算系統(tǒng)1000可被實(shí)現(xiàn)為個(gè)人計(jì)算機(jī)(PC)、平板PC、移動電話、智能電話、電子閱讀器、個(gè)人數(shù)字助理(PDA)、企業(yè)數(shù)字助理(EDA)、數(shù)字靜止相機(jī)、數(shù)字視頻相機(jī)、便攜式多媒體播放器(PMP)、個(gè)人(或便攜式)導(dǎo)航裝置(PND)或者手持游戲機(jī)。

計(jì)算系統(tǒng)1000可從音頻數(shù)據(jù)(或源音頻數(shù)據(jù))輸出聲音,或者可通過接收從計(jì)算系統(tǒng)1000的外部生成的聲音并且記錄所接收的聲音來生成音頻數(shù)據(jù)(或目標(biāo)音頻數(shù)據(jù))。音頻數(shù)據(jù)可以是可被存儲在計(jì)算機(jī)可讀存儲裝置(例如,半導(dǎo)體存儲器裝置)中的數(shù)字?jǐn)?shù)據(jù),或者可以是通過音頻編解碼器壓縮的數(shù)據(jù)。作為非限制性示例,音頻數(shù)據(jù)可以是具有諸如wma、mp3、mpga、rbs、mpeg3、wav、ra、rm、ram、m4a、m4b、mp4、m4r、mp4a、flac、aac、au、mp2、aif、aiff、aifc、amr、awb、ogg、oga、voc、wv、asf、mpc、ac3、mod、s3m、xm、it、669、amf、ams、dbm、dmf、dsm、far、mdl、med、mtm、okt、ptm、stm、ult、umx、mt2、psm、spx、3gp、3gpp、3ga、3g2、ape、shn、vqf、tta、qcp、qcelp、dts、caf、gsm、mus、w64、act、opus、alaw、oma或adx的文件擴(kuò)展名的文件。如下所述,音頻子系統(tǒng)200可包括音頻處理引擎220,音頻處理引擎220可包括用于處理音頻數(shù)據(jù)的音頻編解碼器。

主機(jī)CPU 100是用于控制計(jì)算系統(tǒng)1000的元件,它可執(zhí)行存儲在存儲器子系統(tǒng)400中所包括的存儲器裝置中的程序或者處理存儲在存儲器裝置中的數(shù)據(jù)。例如,主機(jī)CPU 100可執(zhí)行操作系統(tǒng)(OS),或者可在OS上執(zhí)行應(yīng)用程序。主機(jī)CPU 100可利用包括兩個(gè)或更多個(gè)獨(dú)立和實(shí)際的處理器(可被稱作核)的多核處理器來實(shí)現(xiàn)。程序可包括多個(gè)指令,各個(gè)核可通過獨(dú)立地執(zhí)行指令來執(zhí)行程序。

音頻子系統(tǒng)200可通過處理源音頻數(shù)據(jù)來生成RX PCM數(shù)據(jù)RX_PCM,或者可通過處理從PCM混合器600接收的TX PCM數(shù)據(jù)TX_PCM來生成音頻數(shù)據(jù)。PCM數(shù)據(jù)(即,RX PCM數(shù)據(jù)RX_PCM和/或TX PCM數(shù)據(jù)TX_PCM)是以數(shù)字方式指示采樣的模擬信號的數(shù)據(jù),音頻子系統(tǒng)200可向PCM混合器600發(fā)送或者從PCM混合器600接收PCM數(shù)據(jù)RX_PCM和/或TX_PCM。如圖1所示,音頻子系統(tǒng)200可包括音頻處理引擎220。音頻處理引擎(APE)220是用于處理源音頻數(shù)據(jù)或者從源音頻數(shù)據(jù)生成的音頻數(shù)據(jù),或者用于處理從TX PCM數(shù)據(jù)TX_PCM生成的音頻數(shù)據(jù)的硬件塊。例如,APE 220可以是通用處理器、數(shù)字信號處理器(DSP)或者專用邏輯塊。

計(jì)算系統(tǒng)1000可包括諸如音頻子系統(tǒng)200的專用硬件塊,以處理特定數(shù)據(jù)。由于主機(jī)CPU 100可將音頻數(shù)據(jù)卸載到音頻子系統(tǒng)200以便于處理,當(dāng)音頻數(shù)據(jù)被卸載到音頻子系統(tǒng)200時(shí),計(jì)算系統(tǒng)的效率可增加。例如,可在回放音頻的同時(shí)按照恒定速率消耗RX PCM數(shù)據(jù)RX_PCM,為此,從源音頻數(shù)據(jù)生成RX PCM數(shù)據(jù)RX_PCM的操作可使用特定級別以上的吞吐量。如果主機(jī)CPU 100直接處理音頻數(shù)據(jù),則主機(jī)CPU 100可執(zhí)行周期性地處理音頻數(shù)據(jù)的處理,因此,執(zhí)行另一處理的操作的中斷和重新開始可被重復(fù),結(jié)果,計(jì)算系統(tǒng)1000的效率可下降。由于主機(jī)CPU 100可將音頻處理卸載到音頻子系統(tǒng)200,使得音頻子系統(tǒng)負(fù)責(zé)音頻處理,主機(jī)CPU 100可執(zhí)行另一處理,因此,計(jì)算系統(tǒng)1000的效率可增加。以這樣的方式使用與主機(jī)CPU 100分離的獨(dú)立硬件塊的音頻處理可被稱作卸載音頻處理。在主機(jī)CPU 100中執(zhí)行的OS可提供能夠與音頻子系統(tǒng)200(或音頻處理引擎220)接口以支持卸載音頻處理的各種功能。

隨著音頻處理的復(fù)雜度增加,需要高性能音頻處理引擎220。然而,諸如主機(jī)CPU 100和音頻處理引擎220的數(shù)字?jǐn)?shù)據(jù)處理塊可由于其數(shù)據(jù)處理能力的增加而消耗大量的成本和電力。因此,音頻處理引擎220需要具有適合于音頻處理的性能能力。換言之,在音頻處理引擎220具有過高性能的情況下,音頻處理引擎220可增加計(jì)算系統(tǒng)1000的成本和功耗。另一方面,在音頻處理引擎220具有顯著低的性能能力的情況下,因?yàn)橐纛l處理引擎200無法在有限的時(shí)間內(nèi)執(zhí)行具有高復(fù)雜度的處理,所以音頻處理引擎220可能無法正常地回放或記錄聲音。

根據(jù)示例性實(shí)施例,音頻處理引擎220可基于形成音頻處理的處理的復(fù)雜度來確定是否可執(zhí)行音頻處理的處理,并且當(dāng)確定音頻處理引擎220無法在有限的時(shí)間內(nèi)執(zhí)行該處理時(shí)可請求主機(jī)CPU 100執(zhí)行該處理或者該處理的一部分。主機(jī)CPU 100可響應(yīng)于來自音頻處理引擎220的請求執(zhí)行該處理或者該處理的一部分。然后,當(dāng)主機(jī)CPU 100執(zhí)行該處理或者該處理的一部分時(shí),音頻處理引擎220可將從源音頻數(shù)據(jù)生成的RX PCM數(shù)據(jù)RX_PCM提供給PCM混合器600,或者將從TX PCM數(shù)據(jù)TX_PCM生成的目標(biāo)音頻數(shù)據(jù)提供給計(jì)算系統(tǒng)1000的另一元件(例如,存儲器子系統(tǒng)400)。由于性能高于音頻處理引擎220的主機(jī)CPU 100處理具有高復(fù)雜度的處理,所以可避免聲音中斷的情況,因此可正常地輸出或記錄聲音。

外圍設(shè)備300可包括執(zhí)行各種相應(yīng)功能的多個(gè)邏輯塊。例如,外圍設(shè)備300可包括處理用戶的輸入的邏輯塊,并且可包括支持用于與在計(jì)算系統(tǒng)1000之外的裝置通信的通信標(biāo)準(zhǔn)的邏輯塊等。

存儲器子系統(tǒng)400可包括一個(gè)或更多個(gè)存儲器裝置以及存儲器控制器。在示例性實(shí)施例中,存儲器子系統(tǒng)400可包括易失性存儲器裝置,易失性存儲器裝置可用作主機(jī)CPU 100的高速緩沖存儲器或者數(shù)據(jù)緩沖器。例如,存儲器子系統(tǒng)400可包括動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、移動DRAM、雙倍數(shù)據(jù)速率同步DRAM(DDR SDRAM)、低功耗DDR(LPDDR)SDRAM、圖形DDR(GDDR)SDRAM或者Rambus DRAM(RDRAM)作為易失性存儲器裝置。

在示例性實(shí)施例中,存儲器子系統(tǒng)400可包括非易失性存儲器裝置,非易失性存儲器裝置可存儲形成在主機(jī)CPU 100和/或音頻處理引擎220中執(zhí)行的程序的多個(gè)指令,或者存儲諸如源音頻數(shù)據(jù)的數(shù)據(jù)。存儲器子系統(tǒng)400可包括電可擦除可編程只讀存儲器(EEPROM)、閃速存儲器、相變隨機(jī)存取存儲器(PRAM)、電阻隨機(jī)存取存儲器(RRAM)、納米浮柵存儲器(NFGM)、聚合物隨機(jī)存取存儲器(PoRAM)、磁隨機(jī)存取存儲器(MRAM)或者鐵電隨機(jī)存取存儲器(FRAM)作為非易失性存儲器裝置。

PCM混合器600可從RX PCM數(shù)據(jù)RX_PCM生成模擬信號,所生成的模擬信號可作為聲音通過揚(yáng)聲器700輸出。此外,PCM混合器600可從接收自麥克風(fēng)800的模擬信號生成TX PCM數(shù)據(jù)TX_PCM,所生成的TX PCM數(shù)據(jù)TX_PCM可被提供給計(jì)算系統(tǒng)1000的另一元件。如上所述,PCM混合器600可按照恒定的速率消耗RX PCM數(shù)據(jù)RX_PCM以回放(或輸出)聲音。如果沒有充足地供應(yīng)(沒有按照足以回放的速率供應(yīng))RX PCM數(shù)據(jù)RX_PCM,則聲音可能中斷,或者可能輸出不同于源音頻數(shù)據(jù)的聲音。類似地,PCM混合器600可按照恒定的速率生成TX PCM數(shù)據(jù)TX_PCM以記錄聲音。如果按照恒定的速率生成的TX PCM數(shù)據(jù)TX_PCM未被音頻子系統(tǒng)200充分處理(即,未按照足夠的速率處理),則所生成的目標(biāo)音頻數(shù)據(jù)可能對應(yīng)于與記錄時(shí)的聲音不同的聲音。

在圖1中,盡管PCM混合器600向音頻子系統(tǒng)200發(fā)送或者從音頻子系統(tǒng)200接收PCM數(shù)據(jù)RX_PCM或TX_PCM,但是PCM混合器600可向計(jì)算系統(tǒng)1000的另一元件發(fā)送或者從計(jì)算系統(tǒng)1000的另一元件接收PCM數(shù)據(jù)RX_PCM或TX_PCM。在示例性實(shí)施例中,PCM混合器600可支持諸如集成芯片間聲音(I2S)接口的串行總線接口標(biāo)準(zhǔn),并且可向包括在外圍設(shè)備300中的支持該串行總線接口標(biāo)準(zhǔn)的塊發(fā)送或者從該塊接收PCM數(shù)據(jù)RX_PCM或TX_PCM。

圖2A和圖2B是示出執(zhí)行形成音頻處理的多個(gè)處理的操作的示例的示圖。具體地講,圖2A示出從源音頻數(shù)據(jù)D_SRC生成RX PCM數(shù)據(jù)RX_PCM的操作,圖2B示出從TX PCM數(shù)據(jù)TX_PCM生成目標(biāo)音頻數(shù)據(jù)D_TGT的操作。圖2A和圖2B所示的處理僅是用于音頻處理的處理的示例,還可執(zhí)行圖2A和圖2B中未示出的各種處理。

參照圖2A,可對源音頻數(shù)據(jù)D_SRC執(zhí)行解碼處理11。解碼處理11可通過使用與源音頻數(shù)據(jù)D_SRC的格式對應(yīng)的音頻編解碼器將源音頻數(shù)據(jù)D_SRC解碼。通過將源音頻數(shù)據(jù)D_SRC解碼而生成的第一音頻數(shù)據(jù)D_M1a可以是包括根據(jù)時(shí)間的流逝列出的樣本的流數(shù)據(jù)。

可對第一音頻數(shù)據(jù)D_M1a執(zhí)行變速回放(VSP)處理12,并且可生成第二音頻數(shù)據(jù)D_M2a。例如,計(jì)算系統(tǒng)1000的用戶可改變聲音回放速度,VSP處理12可通過執(zhí)行插值或抽取來調(diào)節(jié)音頻回放速度。

可對第二音頻數(shù)據(jù)D_M2執(zhí)行采樣率轉(zhuǎn)換(SRC)處理13,并且可生成第三音頻數(shù)據(jù)D_M3a。例如,源音頻數(shù)據(jù)D_SRC可具有不同于計(jì)算系統(tǒng)1000(或PCM混合器600)所支持的采樣率的采樣率。因此,SRC處理13可通過執(zhí)行插值、抽取、下采樣或上采樣來校正與計(jì)算系統(tǒng)1000的采樣率不同的源音頻數(shù)據(jù)D_SRC的采樣率。

可對第三音頻數(shù)據(jù)D_M3a執(zhí)行聲音效果處理14,并且可生成RX PCM數(shù)據(jù)RX_PCM。通過執(zhí)行聲音效果處理14,計(jì)算系統(tǒng)1000可通過揚(yáng)聲器700輸出應(yīng)用了由用戶設(shè)置的或者默認(rèn)設(shè)置的聲音效果的聲音。例如,聲音效果可包括回聲、合聲、均衡、機(jī)器人語音效果和三維(3D)音頻效果,并且聲音效果處理14的復(fù)雜度可根據(jù)所應(yīng)用的聲音效果來確定。

參照圖2B,可對TX PCM數(shù)據(jù)TX_PCM執(zhí)行濾波處理21。濾波處理21可以是將特定類型的濾波器應(yīng)用于聲音的處理,可通過將具有有限數(shù)量的樣本的數(shù)字濾波器應(yīng)用于TX PCM數(shù)據(jù)TX_PCM來生成第一音頻數(shù)據(jù)D_M1b。

可對第一音頻數(shù)據(jù)D_M1b執(zhí)行采樣率轉(zhuǎn)換(SRC)處理22,并且可生成第二音頻數(shù)據(jù)D_M2b。例如,目標(biāo)音頻數(shù)據(jù)D_TGT可具有與計(jì)算系統(tǒng)1000(或PCM混合器600)所支持的采樣率不同的采樣率。因此,類似于圖2A的SRC處理13,SRC處理22可校正與計(jì)算系統(tǒng)1000的采樣率不同的TX PCM數(shù)據(jù)TX_PCM的采樣率。

可對第二音頻數(shù)據(jù)D_M2b執(zhí)行語音增強(qiáng)處理23,并且可生成第三音頻數(shù)據(jù)D_M3b。例如,計(jì)算系統(tǒng)1000的用戶可使用計(jì)算系統(tǒng)1000的聲音記錄來記錄語音,因此,可執(zhí)行從TX PCM數(shù)據(jù)TX_PCM提取語音并且處理所提取的語音的操作。

可對第三音頻數(shù)據(jù)D_M3b執(zhí)行編碼處理24。編碼處理24可通過使用與目標(biāo)音頻數(shù)據(jù)D_TGT的格式對應(yīng)的音頻編解碼器來對第三音頻數(shù)據(jù)D_M3b進(jìn)行編碼。

為了滿足特定級別以上的吞吐量,必須在有限的時(shí)間內(nèi)完成針對源音頻數(shù)據(jù)D_SRC的一系列處理(即,處理11至14)和/或針對TX PCM數(shù)據(jù)TX_PCM的一系列處理(即,處理21至24)。因此,在現(xiàn)有技術(shù)的卸載音頻處理系統(tǒng)中,可考慮在其上安裝具有高性能的音頻處理引擎來執(zhí)行具有高復(fù)雜度的處理(例如,聲音效果處理14或語音增強(qiáng)處理23)。然而,如上所述,現(xiàn)有技術(shù)的具有高性能的音頻處理引擎可導(dǎo)致高成本和高功耗,并且當(dāng)具有高復(fù)雜度的處理沒有頻繁地執(zhí)行時(shí)還可能降低卸載音頻處理系統(tǒng)的效率。此外,即使在設(shè)計(jì)卸載音頻處理系統(tǒng)的時(shí)候具有適合于處理級別的性能的音頻處理引擎被安裝在卸載音頻處理系統(tǒng)上,當(dāng)新的處理(例如,與新的聲音效果對應(yīng)的處理)具有高于現(xiàn)有處理的復(fù)雜度時(shí),該音頻處理引擎也可能無法執(zhí)行新的處理。

相比之下,在根據(jù)示例性實(shí)施例的音頻處理方法中,主機(jī)CPU 100可執(zhí)行具有高復(fù)雜度的處理或者處理的一部分,因此,可考慮成本、功耗和性能最佳地提供音頻處理引擎220,并且由于將新處理或者新處理的一部分卸載以由主機(jī)CPU 100執(zhí)行的能力,計(jì)算系統(tǒng)1000能夠執(zhí)行具有高于現(xiàn)有處理的復(fù)雜度的新處理。

圖3是示出根據(jù)示例性實(shí)施例的圖1的計(jì)算系統(tǒng)1000的音頻處理引擎220的操作方法的流程圖。具體地講,圖3示出從第一處理的開始到第一處理的結(jié)束音頻處理引擎220的操作方法。將理解,該操作方法可被應(yīng)用于構(gòu)成音頻處理引擎220所執(zhí)行的操作的任何處理(例如,圖2A和圖2B所示的任何處理)。當(dāng)音頻處理引擎220利用處理器實(shí)現(xiàn)時(shí)圖3所示的音頻處理引擎220的操作方法可通過執(zhí)行軟件程序的多個(gè)指令來執(zhí)行,或者當(dāng)音頻處理引擎220利用專用邏輯塊實(shí)現(xiàn)時(shí)圖3所示的音頻處理引擎220的操作方法可通過狀態(tài)機(jī)來執(zhí)行。如圖3所示,音頻處理引擎220的操作方法可包括操作S10至S40。

在操作S10中,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間來確定是否可執(zhí)行第一處理。第一處理可以是針對音頻數(shù)據(jù)或PCM數(shù)據(jù)的多個(gè)處理中的一個(gè)。第一處理的運(yùn)行時(shí)間可表示當(dāng)?shù)谝惶幚碓谝纛l處理引擎220中執(zhí)行時(shí)的執(zhí)行時(shí)間,并且當(dāng)?shù)谝惶幚砭哂懈邚?fù)雜度時(shí)可較長。如下所述,音頻處理引擎220可通過使用各種方法來獲取關(guān)于第一處理的運(yùn)行時(shí)間的信息,并且可基于第一處理的運(yùn)行時(shí)間確定是否可執(zhí)行第一處理。例如,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間,確定當(dāng)音頻處理引擎220執(zhí)行第一處理時(shí)音頻處理引擎220是否可按照等于或大于PCM混合器600消耗RX PCM數(shù)據(jù)RX_PCM的速率的速率來生成RX PCM數(shù)據(jù)RX_PCM。此外,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間,確定當(dāng)音頻處理引擎220執(zhí)行第一處理時(shí)音頻處理引擎220是否可按照等于或大于PCM混合器600生成TXPCM數(shù)據(jù)TX_PCM的速率的速率來處理TX PCM數(shù)據(jù)TX_PCM。

如果在操作S15中確定可執(zhí)行第一處理(S15,是),則音頻處理引擎220可在操作S20中執(zhí)行第一處理。如果在操作S15中確定無法執(zhí)行第一處理(S15,否),則音頻處理引擎220可在操作S30中請求主機(jī)CPU 100執(zhí)行第一處理。在一些情況下,音頻處理引擎220可請求主機(jī)CPU 100執(zhí)行第一處理的一部分。主機(jī)CPU 100可響應(yīng)于音頻處理引擎220的請求執(zhí)行第一處理或者第一處理的一部分。在操作S40中,音頻處理引擎220可從主機(jī)CPU 100接收關(guān)于執(zhí)行第一處理的結(jié)果的信息。在一些情況下,音頻處理引擎220可從主機(jī)CPU 100接收關(guān)于執(zhí)行第一處理的一部分的結(jié)果的信息。在一些示例性實(shí)施例中,該操作方法被應(yīng)用于操作方法的各個(gè)處理。即,針對操作方法的各個(gè)處理,音頻處理引擎220確定是執(zhí)行該處理還是請求主機(jī)CPU 100執(zhí)行該處理或者該處理的一部分。以下,將參照附圖更詳細(xì)地描述圖3的操作S10至S40。

圖4是根據(jù)示例性實(shí)施例的音頻子系統(tǒng)200a(圖1的計(jì)算機(jī)系統(tǒng)1000的音頻子系統(tǒng)200的示例)的框圖。如參照圖1所述,音頻子系統(tǒng)200a可從源音頻數(shù)據(jù)生成RX PCM數(shù)據(jù)RX_PCM,或者從TX PCM數(shù)據(jù)TX_PCM生成目標(biāo)音頻數(shù)據(jù)。

參照圖4,音頻子系統(tǒng)200a可包括音頻處理引擎220a和流緩沖器240a。音頻處理引擎220a和流緩沖器240a可經(jīng)由系統(tǒng)總線500與計(jì)算系統(tǒng)1000的其它元件通信。流緩沖器240a可存儲當(dāng)針對源音頻數(shù)據(jù)的處理被執(zhí)行時(shí)所生成的數(shù)據(jù),或者當(dāng)針對TX PCM數(shù)據(jù)TX_PCM的處理被執(zhí)行所生成的數(shù)據(jù)。例如,流緩沖器240a可存儲圖2A的第一音頻數(shù)據(jù)D_M1a至第三音頻數(shù)據(jù)D_M3a和/或圖2B的第一音頻數(shù)據(jù)D_M1b至第三音頻數(shù)據(jù)D_M3b或者其某一部分,并且還可存儲PCM數(shù)據(jù)RX_PCM或TX_PCM或者其某一部分。PCM混合器600可接收存儲在流緩沖器240a中的RX PCM數(shù)據(jù)RX_PCM并且生成模擬信號,并且還可生成TX PCM數(shù)據(jù)TX_PCM并且將所生成的TX PCM數(shù)據(jù)TX_PCM存儲在流緩沖器240a中。

圖5A和圖5B是示出當(dāng)對源音頻數(shù)據(jù)執(zhí)行具有高復(fù)雜度的處理時(shí)圖4的音頻子系統(tǒng)200a的流緩沖器240a的操作的示圖。具體地講,圖5A示出當(dāng)具有高復(fù)雜度的處理由圖4的音頻處理引擎220a執(zhí)行時(shí)流緩沖器240a的操作,圖5B示出當(dāng)具有高復(fù)雜度的處理由主機(jī)CPU 100a執(zhí)行時(shí)流緩沖器240a的操作。

在圖5A和圖5B中,假設(shè)流緩沖器240a可存儲RX PCM數(shù)據(jù)RX_PCM,并且具有高復(fù)雜度的處理是多個(gè)處理的最終處理并且是生成發(fā)送至PCM混合器600的RX PCM數(shù)據(jù)RX_PCM的處理。如圖5A和圖5B所示,PCM混合器600可按照恒定的速率消耗RX PCM數(shù)據(jù)RX_PCM以生成模擬信號并且將所生成的模擬信號發(fā)送至揚(yáng)聲器700。

為了使PCM混合器600穩(wěn)定地生成模擬信號,可供應(yīng)RX PCM數(shù)據(jù)RX_PCM以使得流緩沖器240a可存儲等于或大于參考量RX_REF(可以是與將要在特定時(shí)間段期間回放的聲音對應(yīng)的RX PCM數(shù)據(jù)RX_PCM的量)的RX PCM數(shù)據(jù)RX_PCM。例如,參考量RX_REF可以是與將要在約40ms期間回放的聲音對應(yīng)的RX PCM數(shù)據(jù)RX_PCM的量。在回放聲音的同時(shí)流緩沖器240a存儲小于參考量RX_REF的RX PCM數(shù)據(jù)RX_PCM的現(xiàn)象可被稱作欠運(yùn)行(underrun)。RX PCM數(shù)據(jù)RX_PCM被供應(yīng)給流緩沖器240a以使得在流緩沖器240中不會發(fā)生欠運(yùn)行。另一方面,可供應(yīng)RX PCM數(shù)據(jù)RX_PCM以使得存儲在流緩沖器240a中的RX PCM數(shù)據(jù)RX_PCM的量超過參考量RX_REF。例如,當(dāng)在聲音的回放期間在流緩沖器240a存儲大于參考量RX_REF的量的RX PCM數(shù)據(jù)RX_PCM的狀態(tài)下根據(jù)用戶的輸入增加、改變或者取消聲音效果時(shí),反應(yīng)了用戶的輸入的聲音可能被延遲并且可輸出延遲的聲音。

參照圖5A,當(dāng)執(zhí)行具有高復(fù)雜度的處理時(shí),具有低于主機(jī)CPU 100a的性能的性能的音頻處理引擎220a可能按照比PCM混合器600消耗RX PCM數(shù)據(jù)RX_PCM的速率低的速率生成RX PCM數(shù)據(jù)RX_PCM。因此,存儲在流緩沖器240a中的RX PCM數(shù)據(jù)RX_PCM的量可逐漸減少,并且如圖5A所示,可發(fā)生存儲在流緩沖器240a中的RX PCM數(shù)據(jù)RX_PCM的量小于參考量RX_REF的現(xiàn)象(即,欠運(yùn)行)。

參照圖5B,當(dāng)執(zhí)行具有高復(fù)雜度的處理時(shí),具有高于音頻處理引擎220a的性能的性能的主機(jī)CPU 100a可按照等于或大于PCM混合器600消耗RX PCM數(shù)據(jù)RX_PCM的速率的速率生成RX PCM數(shù)據(jù)RX_PCM。因此,如圖5B所示,存儲在流緩沖器240a中的RX PCM數(shù)據(jù)RX_PCM的量可大于參考量RX_REF,因此,PCM混合器600可穩(wěn)定地生成模擬信號。

圖6是示出根據(jù)示例性實(shí)施例的圖3的操作S10的示例的流程圖。如上面參照圖3所述,音頻處理引擎220可在操作S10中基于第一處理的運(yùn)行時(shí)間確定是否可執(zhí)行第一處理。在圖6的示例中,第一處理可以是針對源音頻數(shù)據(jù)的后處理中的一個(gè)。

參照圖6,音頻處理引擎220可計(jì)算當(dāng)執(zhí)行第一處理時(shí)RX PCM數(shù)據(jù)RX_PCM的生成速率(操作S11)。例如,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間來計(jì)算當(dāng)音頻處理引擎220執(zhí)行第一處理時(shí)RX PCM數(shù)據(jù)RX_PCM的生成速率。

在操作S12中,音頻處理引擎220可將RX PCM數(shù)據(jù)RX_PCM的生成速率與RX PCM數(shù)據(jù)RX_PCM的消耗速率進(jìn)行比較。換言之,音頻處理引擎220可將在操作S11中計(jì)算的RX PCM數(shù)據(jù)RX_PCM的生成速率與PCM混合器600消耗RX PCM數(shù)據(jù)RX_PCM的速率進(jìn)行比較。

當(dāng)RX PCM數(shù)據(jù)RX_PCM的生成速率等于或大于RX PCM數(shù)據(jù)RX_PCM的消耗速率時(shí)(S12,是),音頻處理引擎220可確定可在音頻處理引擎220中執(zhí)行第一處理(操作S13)。另一方面,當(dāng)RX PCM數(shù)據(jù)RX_PCM的生成速率小于RX PCM數(shù)據(jù)RX_PCM的消耗速率時(shí)(S12,否),如圖5A所示可發(fā)生欠運(yùn)行,因此,音頻處理引擎220可確定無法在音頻處理引擎220中執(zhí)行第一處理(操作S14)。

圖7A和圖7B是示出當(dāng)具有高復(fù)雜度的處理被執(zhí)行以生成目標(biāo)音頻數(shù)據(jù)時(shí)圖4的流緩沖器240a的操作的示圖。具體地講,圖7A示出當(dāng)具有高復(fù)雜度的處理由圖4的音頻處理引擎220a執(zhí)行時(shí)流緩沖器240a的操作,圖7B示出當(dāng)具有高復(fù)雜度的處理由主機(jī)CPU 100a執(zhí)行時(shí)流緩沖器240a的操作。

在圖7A和圖7B中,假設(shè)流緩沖器240a可存儲TX PCM數(shù)據(jù)TX_PCM,并且具有高復(fù)雜度的處理是多個(gè)處理中的第一處理并且是處理從PCM混合器600接收的TX PCM數(shù)據(jù)TX_PCM的處理。如圖7A和圖7B所示,PCM混合器600可從麥克風(fēng)800接收模擬信號,因此按照恒定的速率生成TX PCM數(shù)據(jù)TX_PCM。

為了不遺漏PCM混合器600所接收的模擬信號,即,為了沒有遺漏的記錄聲音,TX PCM數(shù)據(jù)TX_PCM可被處理或消耗以使得等于或小于參考量TX_REF的TX PCM數(shù)據(jù)TX_PCM可被存儲在流緩沖器240a中。例如,參考量TX_REF可以是與在特定時(shí)間段(例如,約40ms)期間接收的聲音對應(yīng)的TX PCM數(shù)據(jù)TX_PCM的量。在記錄聲音的同時(shí)流緩沖器240a存儲超過參考量TX_REF的TX PCM數(shù)據(jù)TX_PCM的現(xiàn)象可被稱作溢出(overflow)。在流緩沖器240a中處理或消耗TX PCM數(shù)據(jù)TX_PCM以使得在流緩沖器240中不發(fā)生溢出。

參照圖7A,當(dāng)執(zhí)行具有高復(fù)雜度的處理時(shí),具有低于主機(jī)CPU 100a的性能的性能的音頻處理引擎220a可按照比PCM混合器600供應(yīng)TX PCM數(shù)據(jù)TX_PCM的速率低的速率處理TX PCM數(shù)據(jù)TX_PCM。因此,存儲在流緩沖器240a中的TX PCM數(shù)據(jù)TX_PCM的量可逐漸增加,并且如圖7A所示,可發(fā)生存儲在流緩沖器240a中的TX PCM數(shù)據(jù)TX_PCM的量大于參考量TX_REF的現(xiàn)象(即,溢出)。

參照圖7B,當(dāng)執(zhí)行具有高復(fù)雜度的處理時(shí),具有高于音頻處理引擎220a的性能的性能的主機(jī)CPU 100a可按照等于或大于PCM混合器600供應(yīng)TX PCM數(shù)據(jù)TX_PCM的速率的速率處理TX PCM數(shù)據(jù)TX_PCM。因此,如圖7B所示,存儲在流緩沖器240a中的TX PCM數(shù)據(jù)TX_PCM的量可小于參考量TX_REF,因此,從PCM混合器600供應(yīng)的TX PCM數(shù)據(jù)TX_PCM可被沒有遺漏地處理。

圖8是示出根據(jù)示例性實(shí)施例的圖3的操作S10的示例的流程圖。如上面參照圖3所述,音頻處理引擎220可在操作S10中基于第一處理的運(yùn)行時(shí)間確定是否可執(zhí)行第一處理。在圖8的示例中,第一處理可以是用于從聲音生成目標(biāo)音頻數(shù)據(jù)的預(yù)處理中的一個(gè)。

參照圖8,音頻處理引擎220可計(jì)算當(dāng)執(zhí)行第一處理時(shí)TX PCM數(shù)據(jù)TX_PCM的處理速率(操作S16)。例如,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間來計(jì)算當(dāng)音頻處理引擎220執(zhí)行第一處理時(shí)TX PCM數(shù)據(jù)TX_PCM的處理速率。

在操作S17中,音頻處理引擎220可將TX PCM數(shù)據(jù)TX_PCM的處理速率與TX PCM數(shù)據(jù)TX_PCM的生成速率進(jìn)行比較。換言之,音頻處理引擎220可將在操作S16中計(jì)算的TX PCM數(shù)據(jù)TX_PCM的處理速率與PCM混合器600生成(或供應(yīng))TX PCM數(shù)據(jù)TX_PCM的速率進(jìn)行比較。

當(dāng)TX PCM數(shù)據(jù)TX_PCM的處理速率等于或大于TX PCM數(shù)據(jù)TX_PCM的生成速率時(shí)(S17,是),音頻處理引擎220可確定可在音頻處理引擎220中執(zhí)行第一處理(操作S18)。另一方面,當(dāng)TX PCM數(shù)據(jù)TX_PCM的處理速率小于TX PCM數(shù)據(jù)TX_PCM的生成速率時(shí)(S17,否),可如圖7A所示發(fā)生溢出,因此,音頻處理引擎220可確定不可在音頻處理引擎220中執(zhí)行第一處理(操作S19)。

圖9是示出根據(jù)示例性實(shí)施例的在圖3的操作S30和S40中在主機(jī)CPU 100b與音頻處理引擎220b之間的數(shù)據(jù)移動的示圖。如上面參照圖3所述,音頻處理引擎220b可請求主機(jī)CPU 100b執(zhí)行第一處理(操作S30),并且可從主機(jī)CPU 100b接收關(guān)于執(zhí)行第一處理的結(jié)果的信息(操作S40)。

當(dāng)音頻處理引擎220b請求主機(jī)CPU 100b執(zhí)行第一處理時(shí),關(guān)于第一處理的執(zhí)行的信息可被發(fā)送至主機(jī)CPU 100b。主機(jī)CPU 100b可基于從音頻處理引擎220b接收的信息來執(zhí)行第一處理。例如,如圖9所示,第一處理的標(biāo)識符ID_P1、輸入數(shù)據(jù)的訪問信息ACC_IN、輸出數(shù)據(jù)的訪問信息ACC_OUT以及多個(gè)參數(shù)PAR_1、PAR_2等可從音頻處理引擎220b被發(fā)送至主機(jī)CPU 100b作為關(guān)于第一處理的信息。

第一處理的標(biāo)識符ID_P1可使得主機(jī)CPU 100b知道音頻處理引擎220b請求主機(jī)CPU 100b執(zhí)行的處理是第一處理,并且主機(jī)CPU 100B可由于第一處理的標(biāo)識符ID_P1而識別第一處理,然后執(zhí)行第一處理。

輸入數(shù)據(jù)的訪問信息ACC_IN可包括關(guān)于與第一處理的目標(biāo)對應(yīng)的數(shù)據(jù)的訪問信息。例如,與第一處理的目標(biāo)對應(yīng)的數(shù)據(jù)可被存儲在圖1的存儲器子系統(tǒng)400中所包括的存儲器裝置(例如,DRAM)中。輸入數(shù)據(jù)的訪問信息ACC_IN可包括存儲在DRAM中的數(shù)據(jù)的起始地址,主機(jī)CPU 100b可基于該起始地址來訪問DRAM并且從DRAM接收第一處理的輸入數(shù)據(jù)。

輸出數(shù)據(jù)的訪問信息ACC_OUT可包括關(guān)于執(zhí)行第一處理時(shí)所生成的數(shù)據(jù)的訪問信息。例如,當(dāng)主機(jī)CPU 100b執(zhí)行第一處理時(shí)所生成的數(shù)據(jù)可被存儲在圖1的存儲器子系統(tǒng)400中所包括的存儲器裝置(例如,DRAM)中。音頻處理引擎200b可指定執(zhí)行第一處理時(shí)所生成的數(shù)據(jù)將要被存儲的地址,輸出數(shù)據(jù)的訪問信息ACC_OUT可包括所生成的數(shù)據(jù)將要被存儲的地址。主機(jī)CPU 100b可基于所生成的數(shù)據(jù)將要被存儲的地址來訪問DRAM,并且將第一處理的輸出數(shù)據(jù)存儲在DRAM中。

多個(gè)參數(shù)PAR_1、PAR_2等可將第一處理的性質(zhì)定義為第一處理的參數(shù)。例如,當(dāng)?shù)谝惶幚韺?yīng)于使用回聲效果作為聲音效果的操作時(shí),所述多個(gè)參數(shù)PAR_1、PAR_2等中的一個(gè)可具有指示回聲效果的程度的值。當(dāng)?shù)谝惶幚韺?yīng)于使用均衡的操作時(shí),所述多個(gè)參數(shù)PAR_1、PAR_2等中的至少一個(gè)可具有指示濾波器的類型或者定義濾波器的特性的值。主機(jī)CPU 100b可基于所述多個(gè)參數(shù)PAR_1、PAR_2等來執(zhí)行第一處理。

主機(jī)CPU 100b可執(zhí)行第一處理并且將關(guān)于執(zhí)行第一處理的結(jié)果的信息發(fā)送至音頻處理引擎220。音頻處理引擎220b可基于關(guān)于執(zhí)行第一處理的結(jié)果的信息來檢查第一處理是否被完整地執(zhí)行,并且可在執(zhí)行隨后的處理時(shí)參考關(guān)于執(zhí)行第一處理的結(jié)果的信息。例如,如圖9所示,錯(cuò)誤信息ERR、日志信息LOG等可從主機(jī)CPU 100b被發(fā)送至音頻處理引擎220b作為關(guān)于執(zhí)行第一處理的結(jié)果的信息。

錯(cuò)誤信息ERR可包括關(guān)于主機(jī)CPU 100b執(zhí)行第一處理時(shí)所發(fā)生的錯(cuò)誤的信息。例如,當(dāng)沒有檢測到與從音頻處理引擎220b接收的第一處理的標(biāo)識符ID_P1對應(yīng)的第一處理或者根據(jù)輸入數(shù)據(jù)的訪問信息ACC_IN輸入數(shù)據(jù)不可訪問時(shí),無法正常地執(zhí)行第一處理,主機(jī)CPU 100b可向音頻處理引擎220b發(fā)送錯(cuò)誤信息ERR,錯(cuò)誤信息ERR包括無法正常地執(zhí)行第一處理的原因。此外,即使在主機(jī)CPU 100b完成第一處理的執(zhí)行的情況下,主機(jī)CPU 100b也可向音頻處理引擎220b發(fā)送錯(cuò)誤信息ERR,錯(cuò)誤信息ERR包括關(guān)于執(zhí)行第一處理時(shí)發(fā)生的錯(cuò)誤的信息。例如,當(dāng)參數(shù)PAR_1(第一參數(shù))超過允許的最大值時(shí),主機(jī)CPU 100b可通過使用允許的最大值來完成第一處理的執(zhí)行,并且可向音頻處理引擎220b發(fā)送包括第一參數(shù)PAR_1超過允許的最大值的內(nèi)容的錯(cuò)誤信息ERR。

日志信息LOG可包括關(guān)于主機(jī)CPU 100執(zhí)行第一處理時(shí)所發(fā)生的事件的信息。例如,日志信息LOG可包括用于執(zhí)行第一處理的時(shí)間、輸出數(shù)據(jù)的大小以及主機(jī)CPU 100中的第一處理的共享。音頻處理引擎220可基于所接收的日志信息LOG來執(zhí)行隨后的處理,并且可在請求主機(jī)CPU 100執(zhí)行第一處理時(shí)參考日志信息LOG。

圖10A和圖10B是示出根據(jù)示例性實(shí)施例的主機(jī)CPU和音頻處理引擎的操作的示圖。具體地講,圖10A示出在音頻回放期間主機(jī)CPU 100c和音頻處理引擎220c的操作,圖10B示出在聲音記錄期間主機(jī)CPU 100d和音頻處理引擎220d的操作。在圖10A的示例中,可對源音頻數(shù)據(jù)D_SRC執(zhí)行圖2A所示的處理,并且聲音效果處理14(具有高復(fù)雜度的處理)可由主機(jī)CPU 100c執(zhí)行。在圖10B的示例中,可對TX PCM數(shù)據(jù)TX_PCM執(zhí)行圖2B所示的處理,并且語音增強(qiáng)處理23(具有高復(fù)雜度的處理)可由主機(jī)CPU 100d執(zhí)行。在圖10A和圖10B中,包括在主機(jī)CPU 100c和100d或者音頻處理引擎220c和220d中的各個(gè)塊可以是包括多個(gè)指令的軟件模塊。

根據(jù)示例性實(shí)施例,主機(jī)CPU 100c可執(zhí)行操作系統(tǒng)。如圖10A和圖10B所示,操作系統(tǒng)可提供在內(nèi)核空間中執(zhí)行的內(nèi)核40以及在用戶空間中執(zhí)行的框架30。內(nèi)核40可翻譯來自用戶空間的輸入和輸出請求并且將該請求提供給硬件??蚣?0可向應(yīng)用程序提供功能,應(yīng)用程序可基于框架30來有效地設(shè)計(jì)。

參照圖10A,音頻處理引擎220c可接收源音頻數(shù)據(jù)D_SRC。例如,在主機(jī)CPU 100c中執(zhí)行的音頻播放器是應(yīng)用程序,并且可響應(yīng)于從圖1的外圍設(shè)備300接收的用戶輸入提取關(guān)于源音頻數(shù)據(jù)D_SRC存儲在存儲器子系統(tǒng)400中的位置的信息。音頻處理引擎220c可從主機(jī)CPU 100c接收關(guān)于源音頻數(shù)據(jù)D_SRC的位置的信息,因此可讀取源音頻數(shù)據(jù)D_SRC并且接收讀取的源音頻數(shù)據(jù)D_SRC。

類似于圖2A的示例,當(dāng)對源音頻數(shù)據(jù)D_DRC執(zhí)行解碼處理11時(shí)可生成第一音頻數(shù)據(jù)D_M1a,當(dāng)對第一音頻數(shù)據(jù)D_M1a執(zhí)行VSP處理12時(shí)可生成第二音頻數(shù)據(jù)_M2a,當(dāng)對第二音頻數(shù)據(jù)D_M2a執(zhí)行SRC處理13時(shí)可生成第三音頻數(shù)據(jù)D_M3a。接下來,當(dāng)對第三音頻數(shù)據(jù)D_M3a執(zhí)行圖2A的聲音效果處理14時(shí)可生成RX PCM數(shù)據(jù)RX_PCM。根據(jù)示例性實(shí)施例,音頻處理引擎220c可基于圖2A的聲音效果處理14的運(yùn)行時(shí)間執(zhí)行請求主機(jī)CPU 100c執(zhí)行聲音效果處理14的操作19。然而,如上面所討論的,這僅是示例,音頻處理引擎220c可執(zhí)行請求主機(jī)CPU 100c執(zhí)行操作方法的一個(gè)或更多個(gè)處理(例如,解碼、VSP、SRC等處理)的操作。

執(zhí)行聲音效果處理14的請求19可通過使用各種方法從音頻處理引擎220c被發(fā)送至主機(jī)CPU 100c。例如,如圖10A所示,音頻處理引擎220c可針對主機(jī)CPU 100c生成中斷。可選地,在主機(jī)CPU 100c指示音頻處理引擎220c從源音頻數(shù)據(jù)D_SRC回放聲音之后,主機(jī)CPU 1000c可通過輪詢檢查是否從音頻處理引擎220c發(fā)生執(zhí)行處理的請求19。

參照圖10A,內(nèi)核40的音頻處理引擎(APE)驅(qū)動器41可響應(yīng)于由音頻處理引擎220c生成的中斷將從音頻處理引擎220c接收的請求發(fā)送至用戶空間。例如,如圖10A所示,音頻處理引擎驅(qū)動器41可通過使用用于將針對硬件裝置生成的事件發(fā)送至用戶空間的“uevent”來將從音頻處理引擎220c接收的請求19發(fā)送至用戶空間。

被音頻處理引擎驅(qū)動器41發(fā)送至用戶空間的音頻處理引擎220c的請求可由音頻硬件抽象層(HAL)31處理??商峁┮纛lHAL 31以使得應(yīng)用程序(例如,聲音效果程序32)不直接處理對內(nèi)核40的硬件(即,音頻處理引擎220c)的調(diào)用和響應(yīng),以使得應(yīng)用程序(例如,在此示例中,聲音效果程序)可獨(dú)立于硬件來設(shè)計(jì)并且被有效地設(shè)計(jì)。

聲音效果程序32(應(yīng)用程序)可實(shí)現(xiàn)音頻處理引擎220c請求主機(jī)CPU 100c執(zhí)行的處理。換言之,聲音效果程序32可通過針對第三音頻數(shù)據(jù)D_M3a實(shí)現(xiàn)聲音效果處理14來生成RX PCM數(shù)據(jù)RX_PCM。這樣,由于針對音頻數(shù)據(jù)的處理由應(yīng)用程序執(zhí)行,因此計(jì)算系統(tǒng)1000可通過增加和/或改變應(yīng)用程序來支持新的音頻處理。因此,計(jì)算系統(tǒng)1000針對音頻處理的靈活性可增加。

當(dāng)由聲音效果程序32完成聲音效果處理14時(shí),聲音效果程序32可通過音頻HAL 31將關(guān)于通過執(zhí)行聲音效果處理14而獲得的結(jié)果的信息發(fā)送至內(nèi)核40的音頻處理引擎(APE)驅(qū)動器41。例如,如圖10A所示,音頻HAL 31可通過使用允許用戶空間的應(yīng)用程序與硬件裝置或者內(nèi)核40的元件通信的“ioctl”將關(guān)于執(zhí)行聲音效果處理14的結(jié)果的信息發(fā)送至音頻處理引擎驅(qū)動器41。

響應(yīng)于音頻HAL 31的調(diào)用,音頻處理引擎(APE)驅(qū)動器41可將關(guān)于執(zhí)行聲音效果處理14的結(jié)果的信息發(fā)送至音頻處理引擎220c。例如,如圖10A所示,音頻處理引擎(APE)驅(qū)動器41可通過使用通過隊(duì)列消息和中斷驅(qū)動的信號來控制硬件裝置之間的通信的“郵箱”將關(guān)于執(zhí)行聲音效果處理14的結(jié)果的信息發(fā)送至音頻處理引擎220c。

參照圖10B,音頻處理引擎220d可接收TX PCM數(shù)據(jù)TX_PCM。例如,音頻處理引擎220d可基于關(guān)于由圖1的PCM混合器600生成的TX PCM數(shù)據(jù)TX_PCM被存儲的位置的信息來讀取TX PCM數(shù)據(jù)TX_PCM,并且可接收所讀取的TX PCM數(shù)據(jù)TX_PCM。類似于圖2B的示例,濾波處理21、SRC處理22、語音增強(qiáng)處理23和編碼處理24可被順序地執(zhí)行,因此,可生成第一音頻數(shù)據(jù)D_M1b、第二音頻數(shù)據(jù)D_M2b和第三音頻數(shù)據(jù)D_M3b以及目標(biāo)音頻數(shù)據(jù)D_TGT。根據(jù)示例性實(shí)施例,音頻處理引擎220d可基于圖2B的語音增強(qiáng)處理23的運(yùn)行時(shí)間來執(zhí)行請求主機(jī)CPU 100d執(zhí)行語音增強(qiáng)處理23的操作。然而,如上面所討論的,這僅是示例,音頻處理引擎220d可執(zhí)行請求主機(jī)CPU 100d執(zhí)行操作方法的一個(gè)或更多個(gè)處理(例如,濾波、SRC、編碼等處理)的操作。

類似于圖10A,音頻處理引擎200d的請求29可經(jīng)由音頻處理引擎(APE)驅(qū)動器42和音頻HAL 33被發(fā)送至語音增強(qiáng)程序34。語音增強(qiáng)程序34(應(yīng)用程序)可通過實(shí)現(xiàn)音頻處理引擎220d所請求的語音增強(qiáng)處理23來生成第三音頻數(shù)據(jù)D_M3b。

圖11是示出根據(jù)示例性實(shí)施例的主機(jī)CPU 100e和音頻處理引擎220e的操作的示圖。具體地講,圖11是示出RX PCM數(shù)據(jù)RX_PCM和TX PCM數(shù)據(jù)TX_PCM在主機(jī)CPU 100e和音頻處理引擎220e中被并行地處理的操作的示圖。在圖11中,RX PCM數(shù)據(jù)RX_PCM處理被示出為沒有陰影,TX PCM數(shù)據(jù)TX_PCM處理被示出為有陰影。例如,當(dāng)包括圖11的主機(jī)CPU 100e和音頻處理引擎220e的圖1的計(jì)算系統(tǒng)1000是移動電話時(shí),處理由PCM混合器600從用戶的語音生成的TX PCM數(shù)據(jù)TX_PCM的操作以及從接收自另一方的終端(例如,移動電話)的音頻數(shù)據(jù)生成RX PCM數(shù)據(jù)RX_PCM的操作可由主機(jī)CPU 100e和音頻處理引擎220e并行地執(zhí)行。因此,計(jì)算系統(tǒng)1000可提供高吞吐量。

RX PCM數(shù)據(jù)RX_PCM可包括按照規(guī)則的時(shí)間間隔對齊的多個(gè)樣本RX_SAM1和RX_SAM2,TX PCM數(shù)據(jù)TX_PCM可包括按照規(guī)則的時(shí)間間隔對齊的多個(gè)樣本TX_SAM1和TX_SAM2。例如,如圖11所示,兩個(gè)相鄰樣本(例如,RX_SAM1和RX_SAM2)之間的時(shí)間間隔可為約20毫秒(ms)。當(dāng)如移動電話中一樣PCM數(shù)據(jù)(即,TX PCM數(shù)據(jù)TX_PCM和RX PCM數(shù)據(jù)RX_PCM)對應(yīng)于語音時(shí),樣本之間的時(shí)間間隔可被稱作語音幀。在語音幀內(nèi)處理或生成RX PCM數(shù)據(jù)RX_PCM的樣本RX_SAM1和RX_SAM2以及TX PCM數(shù)據(jù)TX_PCM的樣本TX_SAM1和TX_SAM2,以使得可正常地輸出或記錄聲音。根據(jù)示例性實(shí)施例,由于復(fù)雜的處理由主機(jī)CPU 100e執(zhí)行,所以可在語音幀內(nèi)處理或生成RX PCM數(shù)據(jù)RX_PCM的樣本RX_SAM1和RX_SAM2以及TX PCM數(shù)據(jù)TX_PCM的樣本TX_SAM1和TX_SAM2。

參照圖11,音頻處理引擎220e可通過輪詢檢查是否生成TX PCM數(shù)據(jù)TX_PCM的樣本。因此,如圖11所示,音頻處理引擎220e可在時(shí)間T1執(zhí)行第一語音增強(qiáng)處理VE1作為針對TX PCM數(shù)據(jù)TX_PCM的樣本TX_SAM1的處理。

在第一語音增強(qiáng)處理VE1結(jié)束的時(shí)間T2,音頻處理引擎220e可確定是否執(zhí)行將要在第一語音增強(qiáng)處理VE1之后執(zhí)行的第二語音增強(qiáng)處理VE2。換言之,當(dāng)基于第二語音增強(qiáng)處理VE2的運(yùn)行時(shí)間,音頻處理引擎220e直接執(zhí)行第二語音增強(qiáng)處理VE2時(shí),音頻處理引擎220e可確定第二語音增強(qiáng)處理VE2和編碼處理是否可在TX PCM數(shù)據(jù)TX_PCM的樣本TX_SAM2被生成之前完成。此外,由于如上所述在20ms內(nèi)處理或生成TX PCM數(shù)據(jù)TX_PCM的樣本TX_SAM1和RX PCM數(shù)據(jù)RX_PCM的樣本RX_SAM1以便正常地輸出或記錄聲音,所以音頻處理引擎220e可考慮針對RX PCM數(shù)據(jù)RX_PCM的處理以及針對TX PCM數(shù)據(jù)TX_PCM的處理的運(yùn)行時(shí)間。

如圖11所示,音頻處理引擎220e可請求主機(jī)CPU 100e執(zhí)行第二語音增強(qiáng)處理VE2,主機(jī)CPU 100e可響應(yīng)于音頻處理引擎220e的請求執(zhí)行第二語音增強(qiáng)處理VE2。當(dāng)完成第二語音增強(qiáng)處理VE2時(shí),主機(jī)CPU 100e可向音頻處理引擎220e告知第二語音增強(qiáng)處理VE2的完成。

在音頻處理引擎220e請求主機(jī)CPU 100e執(zhí)行第二語音增強(qiáng)處理VE2之后,音頻處理引擎220e可使用中斷,因此識別出從另一方終端接收到將要作為聲音通過揚(yáng)聲器700輸出的音頻數(shù)據(jù)。因此,如圖11所示,音頻處理引擎220e可在時(shí)間T3執(zhí)行將所接收的音頻數(shù)據(jù)解碼的處理。

在時(shí)間T4,音頻處理引擎220e可完成將所接收的音頻數(shù)據(jù)解碼的處理,并且確定是否執(zhí)行第三語音增強(qiáng)處理VE3。在時(shí)間T5,基于第三語音增強(qiáng)處理VE3的運(yùn)行時(shí)間,音頻處理引擎220e可執(zhí)行第三語音增強(qiáng)處理VE3。

在時(shí)間T6,音頻處理引擎220e可完成第三語音增強(qiáng)處理VE3并且確定是否執(zhí)行第四語音增強(qiáng)處理VE4?;诘谒恼Z音增強(qiáng)處理VE4的運(yùn)行時(shí)間,音頻處理引擎220e可請求主機(jī)CPU 100e執(zhí)行第四語音增強(qiáng)處理VE4,主機(jī)CPU可響應(yīng)于音頻處理引擎220e的請求執(zhí)行第四語音增強(qiáng)處理VE4。

在音頻處理引擎220e請求主機(jī)CPU 100e執(zhí)行第四語音增強(qiáng)處理VE4之后,音頻處理引擎220e可等待直至主機(jī)CPU 100e完成針對TX PCM數(shù)據(jù)TX_PCM的樣本TX_SAM1的第二語音增強(qiáng)處理VE2為止。如圖11所示,由于主機(jī)CPU 100e在時(shí)間T4之前完成第二語音增強(qiáng)處理VE2,所以音頻處理引擎220e可在時(shí)間T7對通過執(zhí)行第二語音增強(qiáng)處理VE2而獲得的結(jié)果數(shù)據(jù)執(zhí)行編碼處理。編碼處理可在時(shí)間T8完成,所編碼的音頻數(shù)據(jù)可被發(fā)送至另一方終端裝置。在時(shí)間T9,音頻處理引擎220e可將作為由主機(jī)CPU 100e執(zhí)行的第四語音增強(qiáng)處理VE4的結(jié)果的RX PCM數(shù)據(jù)RX_PCM的樣本RX_SAM2發(fā)送至PCM混合器600。

圖12是根據(jù)示例性實(shí)施例的音頻子系統(tǒng)200f的框圖。如上面參照圖1所述,音頻子系統(tǒng)200f可通過處理源音頻數(shù)據(jù)來生成RX PCM數(shù)據(jù)RX_PCM,和/或可通過處理TX PCM數(shù)據(jù)TX_PCM來生成目標(biāo)音頻數(shù)據(jù)。

如圖12所示,音頻子系統(tǒng)200f可包括音頻處理引擎220f、流緩沖器240f和查找表260f。圖12的音頻處理引擎220f和流緩沖器240f可分別類似于圖4的音頻處理引擎220a和流緩沖器240a。

查找表260f可存儲關(guān)于針對音頻數(shù)據(jù)的處理的運(yùn)行時(shí)間的信息。例如,查找表260f可將對預(yù)定數(shù)量的樣本執(zhí)行第一處理所花費(fèi)的時(shí)間存儲為關(guān)于第一處理的運(yùn)行時(shí)間的信息。為了如上面參照圖3所描述的基于第一處理的運(yùn)行時(shí)間確定是否可執(zhí)行第一處理,音頻處理引擎220f可訪問查找表260f并且獲取關(guān)于第一處理的運(yùn)行時(shí)間的信息。查找表260f的細(xì)節(jié)將在下面參照圖13來描述。

圖13是示出根據(jù)示例性實(shí)施例的與圖12的查找表260f的示例對應(yīng)的查找表260f'的示圖。如上面參照圖12所述,查找表260f'可存儲關(guān)于針對音頻數(shù)據(jù)的處理的運(yùn)行時(shí)間的信息。參照圖13,查找表260f'可包括關(guān)于四個(gè)處理(即,第一處理P1至第四處理P4)的運(yùn)行時(shí)間的信息。

圖1的計(jì)算系統(tǒng)1000可支持多個(gè)操作模式。例如,計(jì)算系統(tǒng)1000可支持正常模式、省電模式(例如,睡眠模式)、深度睡眠模式等,計(jì)算系統(tǒng)1000的元件可根據(jù)設(shè)定的模式來操作。例如,圖12的音頻處理引擎220f在省電模式或深度睡眠模式期間可降低操作速度。因此,查找表260f'可存儲與多個(gè)模式對應(yīng)的關(guān)于處理的運(yùn)行時(shí)間的信息。

參照圖13,音頻處理引擎220f可支持第一模式至第三模式,并且可存儲與第一模式至第三模式對應(yīng)的關(guān)于第一處理P1至第四處理P4的運(yùn)行時(shí)間的信息。例如,第一處理P1在第一模式至第三模式下可分別具有40ms、50ms和60ms的運(yùn)行時(shí)間,第二處理P2在第一模式至第三模式下可分別具有55ms、65ms和75ms的運(yùn)行時(shí)間,等等。

根據(jù)示例性實(shí)施例,查找表260f'可被更新。例如,圖1的主機(jī)CPU 100可從外圍設(shè)備300或者存儲器子系統(tǒng)400獲取關(guān)于新處理的運(yùn)行時(shí)間的信息。音頻子系統(tǒng)200f可接收關(guān)于新處理的運(yùn)行時(shí)間的信息,并且可根據(jù)所接收的信息來更新查找表260f'。

圖14是示出根據(jù)示例性實(shí)施例的主機(jī)CPU 100與音頻處理引擎220之間的操作的示圖。具體地講,圖14順序地示出在音頻回放期間主機(jī)CPU 100與音頻處理引擎220之間的操作。

在操作S101中,主機(jī)CPU 100可請求音頻處理引擎220回放音頻。例如,主機(jī)CPU 100可響應(yīng)于用戶輸入將用于訪問源音頻數(shù)據(jù)的信息以及關(guān)于將要對源音頻數(shù)據(jù)執(zhí)行的處理的信息發(fā)送至音頻處理引擎220。

在操作S102中,音頻處理引擎220可對源音頻數(shù)據(jù)進(jìn)行解碼。例如,源音頻數(shù)據(jù)可以是通過使用音頻編解碼器壓縮的數(shù)據(jù),音頻處理引擎220可通過將源音頻數(shù)據(jù)解碼來生成流數(shù)據(jù)。

在操作S103中,音頻處理引擎220可確定是否可執(zhí)行第一處理。在圖14中,第一處理可以是例如對音頻數(shù)據(jù)執(zhí)行的多個(gè)后處理中的一個(gè)。例如,當(dāng)主機(jī)CPU 100請求音頻回放時(shí)發(fā)送至音頻處理引擎220的關(guān)于處理的信息可包括關(guān)于第一處理的信息,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間來確定是否在音頻處理引擎220中執(zhí)行第一處理。

如果在操作S103-1中確定可執(zhí)行第一處理(S103-1,是),則音頻處理引擎220可在操作S104中執(zhí)行第一處理。如果在操作S103-1中確定不可執(zhí)行第一處理(S103-1,否),則音頻處理引擎220可在操作S105中請求主機(jī)CPU 100執(zhí)行第一處理。例如,音頻處理引擎220可針對主機(jī)CPU 100生成中斷,并且可將用于執(zhí)行第一處理的信息發(fā)送至主機(jī)CPU 100。

在操作S106中,主機(jī)CPU 100可執(zhí)行第一處理。例如,主機(jī)CPU 100可執(zhí)行內(nèi)核以及在內(nèi)核上執(zhí)行的應(yīng)用程序,主機(jī)CPU 100可通過使用所述應(yīng)用程序來執(zhí)行第一處理。

在操作S107中,主機(jī)CPU 100可將關(guān)于執(zhí)行第一處理的結(jié)果的信息發(fā)送至音頻處理引擎220。例如,主機(jī)CPU 100可將與第一處理的執(zhí)行有關(guān)的錯(cuò)誤信息和日志信息以及指示第一處理的執(zhí)行完成的信號發(fā)送至音頻處理引擎220。

圖15是順序地示出根據(jù)示例性實(shí)施例的主機(jī)CPU 100與音頻處理引擎220之間的操作的示圖。具體地講,圖15順序地示出在聲音記錄期間主機(jī)CPU 100與音頻處理引擎220之間的操作。

在操作S201中,主機(jī)CPU 100可請求音頻處理引擎220記錄聲音。例如,主機(jī)CPU 100可將關(guān)于將要對TX PCM數(shù)據(jù)TX_PCM執(zhí)行的處理的信息以及關(guān)于目標(biāo)音頻數(shù)據(jù)將要被存儲的地址的信息發(fā)送至音頻處理引擎220,以在呼叫功能被激活時(shí)記錄用戶的語音。

在操作S202中,音頻處理引擎220可確定是否可執(zhí)行第一處理。在圖15中,第一處理可以是對TX PCM數(shù)據(jù)TX_PCM執(zhí)行的多個(gè)預(yù)處理中的一個(gè)。例如,當(dāng)主機(jī)CPU 100請求聲音記錄時(shí)發(fā)送至音頻處理引擎220的關(guān)于處理的信息可包括關(guān)于第一處理的信息,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間來確定是否在音頻處理引擎220中執(zhí)行第一處理。

如果在操作S202-1中確定可執(zhí)行第一處理(S202-1,是),則音頻處理引擎220可在操作S203中執(zhí)行第一處理。如果在操作S202-1中確定不可執(zhí)行第一處理(S202-1,否),則音頻處理引擎220可在操作S204中請求主機(jī)CPU 100執(zhí)行第一處理。例如,音頻處理引擎220可針對主機(jī)CPU 100生成中斷,并且可將用于執(zhí)行第一處理的信息發(fā)送至主機(jī)CPU 100。

在操作S205中,主機(jī)CPU 100可執(zhí)行第一處理。在操作S206中,主機(jī)CPU 100可將關(guān)于執(zhí)行第一處理的結(jié)果的信息發(fā)送至音頻處理引擎220。音頻處理引擎220可直接對通過執(zhí)行第一處理而獲得的數(shù)據(jù)執(zhí)行附加的預(yù)處理,或者請求主機(jī)CPU 100執(zhí)行附加的預(yù)處理。

在操作S207中,音頻處理引擎220可生成目標(biāo)音頻數(shù)據(jù)。換言之,在操作S201中主機(jī)CPU 100請求聲音記錄時(shí)發(fā)送至音頻處理引擎220的預(yù)處理被執(zhí)行完成之后,音頻處理引擎220可通過對數(shù)據(jù)進(jìn)行編碼來生成目標(biāo)音頻數(shù)據(jù)。所生成的目標(biāo)音頻數(shù)據(jù)可被存儲在計(jì)算系統(tǒng)1000中或者被發(fā)送至計(jì)算系統(tǒng)1000的外部。

圖16是順序地示出根據(jù)示例性實(shí)施例的主機(jī)CPU 100與音頻處理引擎220之間的操作的示圖。具體地講,圖16順序地示出當(dāng)在回放音頻的同時(shí)用戶提供關(guān)于音頻回放的輸入時(shí)主機(jī)CPU 100與音頻處理引擎220之間的操作。

在操作S301中,主機(jī)CPU 100可請求音頻處理引擎220回放音頻。在操作S302中,音頻處理引擎220可對源音頻數(shù)據(jù)進(jìn)行解碼。音頻處理引擎220還可對通過將源音頻數(shù)據(jù)解碼而生成的流數(shù)據(jù)執(zhí)行至少一個(gè)處理。

在音頻回放期間,主機(jī)CPU 100可在操作S303中接收指示執(zhí)行第一處理的用戶輸入。例如,用戶可激活聲音效果功能,在這種情況下,主機(jī)CPU 100可將用戶的輸入解釋為指示聲音效果處理。

在操作S304中,主機(jī)CPU 100可請求音頻處理引擎220執(zhí)行第一處理。例如,主機(jī)CPU 100可利用圖10A的“郵箱”來請求音頻處理引擎220執(zhí)行第一處理。在示例性實(shí)施例中,除了請求音頻處理引擎220執(zhí)行第一處理以外,主機(jī)CPU 100可將關(guān)于第一處理的運(yùn)行時(shí)間的信息發(fā)送至音頻處理引擎220。換言之,音頻處理引擎220可參考從主機(jī)CPU 100接收的關(guān)于第一處理的運(yùn)行時(shí)間的信息以及如上面參照圖13所描述的查找表260f。在示例性實(shí)施例中,當(dāng)?shù)谝惶幚碓谥鳈C(jī)CPU 100中的運(yùn)行時(shí)間短于第一處理在音頻處理引擎220中的運(yùn)行時(shí)間時(shí),音頻處理引擎220可確定音頻處理引擎220不能執(zhí)行第一處理。

在操作S305中,音頻處理引擎220可基于第一處理的運(yùn)行時(shí)間確定是否可執(zhí)行第一處理。如果在操作S305-1中確定可執(zhí)行第一處理(S305-1,是),則音頻處理引擎220可在操作S306中執(zhí)行第一處理。如果在操作S305-1中確定不可執(zhí)行第一處理(S305-1,否),則音頻處理引擎220可在操作S307中請求主機(jī)CPU 100執(zhí)行第一處理。在操作S308中,主機(jī)CPU 100可響應(yīng)于音頻處理引擎220的請求執(zhí)行第一處理。在操作S309中,主機(jī)CPU 100可將關(guān)于執(zhí)行第一處理的結(jié)果的信息發(fā)送至音頻處理引擎220。

圖17是根據(jù)示例性實(shí)施例的作為卸載音頻處理系統(tǒng)的計(jì)算系統(tǒng)2000的框圖。類似于圖1的計(jì)算系統(tǒng)1000,計(jì)算系統(tǒng)2000可以是可回放聲音和/或記錄聲音的系統(tǒng)。作為非限制性示例,計(jì)算系統(tǒng)2000可被實(shí)現(xiàn)為PC、平板PC、移動電話、智能電話、電子閱讀器、PDA、EDA、數(shù)字靜止相機(jī)、數(shù)字視頻相機(jī)、PMP、PND或者手持游戲機(jī)。

如圖17所示,計(jì)算系統(tǒng)2000可包括應(yīng)用處理器(AP)2100、PCM混合器2200、揚(yáng)聲器2300、麥克風(fēng)2400、調(diào)制解調(diào)器2500、外部存儲器2600和存儲卡2700。

作為用于激活用于計(jì)算系統(tǒng)2000的操作系統(tǒng)和應(yīng)用的片上系統(tǒng)(SoC)的應(yīng)用處理器2100可控制計(jì)算系統(tǒng)2000的其它元件。如圖17所示,應(yīng)用處理器2100可包括主機(jī)CPU 2110、多媒體加速塊2120、外圍設(shè)備2130、內(nèi)部存儲器2140和存儲器接口2150。應(yīng)用處理器2100的元件可連接至系統(tǒng)總線2160以彼此通信,系統(tǒng)總線2160可以是多層總線。

如圖17所示,主機(jī)CPU 2110可包括多個(gè)核2111至2114,所述多個(gè)核2111至2114中的每一個(gè)可獨(dú)立地執(zhí)行指令。主機(jī)CPU 2110可包括層次高速緩沖存儲器。圖17所示的核的數(shù)量僅是示例,主機(jī)CPU 2110可包括少于四個(gè)核或者多于四個(gè)核。根據(jù)示例性實(shí)施例,主機(jī)CPU 2110可響應(yīng)于音頻處理引擎(例如,包括在音頻處理模塊2121中的處理器)的請求執(zhí)行音頻處理。

多媒體加速塊2120可包括處理多媒體數(shù)據(jù)的多個(gè)邏輯塊。多媒體加速塊2120的所述多個(gè)邏輯塊中的每一個(gè)可用于處理多媒體數(shù)據(jù),因此增加應(yīng)用處理器2100和計(jì)算系統(tǒng)2000的效率。例如,如圖17所示,多媒體加速塊2120可包括音頻處理模塊(Audio)2121、視頻處理模塊(Video)2122、顯示驅(qū)動模塊(Display)2123和圖像處理模塊(Image)2124。音頻處理模塊(Audio)2121可處理源音頻數(shù)據(jù)并且生成用于回放聲音的數(shù)據(jù),即,RX PCM數(shù)據(jù)RX_PCM。此外,音頻處理模塊(Audio)2121可處理從聲音生成的TX PCM數(shù)據(jù)TX_PCM并且生成目標(biāo)音頻數(shù)據(jù)。視頻處理模塊(Video)2122可對通過視頻編解碼器壓縮的源視頻數(shù)據(jù)進(jìn)行解碼。顯示驅(qū)動模塊(Display)2123可生成與提供給計(jì)算系統(tǒng)2000的顯示裝置的信號對應(yīng)的數(shù)據(jù)。圖像處理模塊(Image)2124可對通過圖像編解碼器壓縮的源圖像數(shù)據(jù)進(jìn)行解碼。

根據(jù)示例性實(shí)施例,音頻處理模塊(Audio)2121可用作根據(jù)上述示例性實(shí)施例的音頻處理引擎中的任一個(gè),并且可確定是否可執(zhí)行針對音頻數(shù)據(jù)的處理。因此,即使音頻處理模塊(Audio)2121不具有過高性能,也可由主機(jī)CPU 2110代替音頻處理模塊2121執(zhí)行具有高復(fù)雜度的處理。

外圍設(shè)備2130可包括各自執(zhí)行各種功能的多個(gè)邏輯塊。例如,如圖17所示,外圍設(shè)備2130可包括直接存儲器存取(DMA)控制器2131、連接性模塊(Connectivity)2132和模數(shù)轉(zhuǎn)換器(ADC)2133。

DMA控制器2131可控制通過系統(tǒng)總線2160執(zhí)行的DMA操作。例如,DMA控制器2131可控制主機(jī)CPU 2110未參與的操作,音頻處理模塊2121通過存儲器接口2150來訪問存儲在內(nèi)部存儲器2140中的數(shù)據(jù)或者存儲在外部存儲器2600中的數(shù)據(jù)。

連接性模塊2131可包括多個(gè)邏輯塊,多個(gè)邏輯塊支持用于與應(yīng)用處理器2100、計(jì)算系統(tǒng)2000的其它元件或者計(jì)算系統(tǒng)200的外部裝置通信的通信標(biāo)準(zhǔn)。例如,如圖17所示,連接性模塊2132可包括諸如I2S接口的支持串行總線接口標(biāo)準(zhǔn)的邏輯塊,并且可通過該I2S接口將通過音頻處理模塊2121生成的PCM數(shù)據(jù)發(fā)送至PCM混合器2200,PCM混合器2200從PCM數(shù)據(jù)生成模擬信號。

參照圖17,連接性模塊2132可包括支持與調(diào)制解調(diào)器2500的通信的邏輯塊。調(diào)制解調(diào)器2500可提供接口,計(jì)算系統(tǒng)2000通過該接口來與計(jì)算系統(tǒng)2000外部的另一計(jì)算系統(tǒng)通信。例如,調(diào)制解調(diào)器2500可提供用于無線移動通信的接口,并且可通過天線從另一計(jì)算系統(tǒng)接收源音頻數(shù)據(jù)并且將目標(biāo)音頻數(shù)據(jù)發(fā)送至另一計(jì)算系統(tǒng)。

此外,連接性模塊2132可包括支持卡接口的邏輯塊,諸如緊湊閃存卡(CFC)的接口、微硬盤的接口、智能媒體卡(SMC)的接口、多媒體卡(MMC)的接口、安全數(shù)字卡(SDC)的接口或者記憶棒的接口。連接性模塊2132可從存儲卡2700讀取源音頻數(shù)據(jù),并且可將讀取的源音頻數(shù)據(jù)發(fā)送至音頻處理模塊2121、內(nèi)部存儲器或外部存儲器2600。ADC 2133可接收模擬信號并輸出數(shù)字?jǐn)?shù)據(jù)。例如,ADC 2133可用于將通過包括在計(jì)算系統(tǒng)2000中的觸摸屏接收的用戶輸入轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)。主機(jī)CPU 2110可參考外圍設(shè)備2130的ADC 2133的輸出數(shù)據(jù)來分析用戶輸入。

作為包括在應(yīng)用處理器2100中的存儲器子系統(tǒng)的內(nèi)部存儲器2140可連接至系統(tǒng)總線2160以與另一元件通信。如圖17所示,內(nèi)部存儲器2140可包括SRAM 2141和只讀存儲器(ROM)2142,應(yīng)用處理器2100的元件可經(jīng)由系統(tǒng)總線2160訪問SRAM 2141和ROM 2142。

存儲器接口2150可在應(yīng)用處理器2100與外部存儲器2600之間提供接口。例如,外部存儲器2600可包括DRAM 2610和閃速存儲器(Flash)2620,存儲器接口2150可包括DRAM控制器和閃存控制器。在音頻處理模塊2121執(zhí)行音頻處理的同時(shí)生成的音頻數(shù)據(jù)和/或在主機(jī)CPU 2110根據(jù)音頻處理模塊2121的音頻處理引擎的請求執(zhí)行處理的同時(shí)生成的音頻數(shù)據(jù)可被存儲在外部存儲器2600的DRAM 2610或者內(nèi)部存儲器2140的SRAM 2141中。

圖18是示出根據(jù)示例性實(shí)施例的計(jì)算機(jī)可讀存儲裝置3000的示圖。計(jì)算機(jī)可讀存儲裝置3000可包括在用于向計(jì)算機(jī)提供指令和/或數(shù)據(jù)的同時(shí)可由計(jì)算機(jī)讀取的存儲裝置。例如,計(jì)算機(jī)可讀存儲裝置3000可包括磁介質(zhì)或光學(xué)介質(zhì)(諸如盤、帶、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R或者DVD-RW)、易失性或非易失性存儲器(諸如RAM、ROM或閃速存儲器)、可通過USB接口訪問的非易失性存儲器和/或微機(jī)電系統(tǒng)(MEMS)。計(jì)算機(jī)可讀存儲裝置3000可被插入計(jì)算機(jī)中,集成在計(jì)算機(jī)中,或者通過通信介質(zhì)(諸如網(wǎng)絡(luò)和/或無線鏈路)與計(jì)算機(jī)組合。參照圖18,計(jì)算機(jī)可讀存儲裝置3000可包括可由主機(jī)CPU 100訪問的區(qū)域3100以及可由音頻處理引擎220訪問的區(qū)域3200。

可由主機(jī)CPU 100訪問的區(qū)域3100可包括程序,該程序包括由主機(jī)CPU 100執(zhí)行以執(zhí)行根據(jù)示例性實(shí)施例的音頻處理方法的多個(gè)指令,主機(jī)CPU 100可訪問區(qū)域3100并且執(zhí)行所述多個(gè)指令。例如,可由主機(jī)CPU 100訪問的區(qū)域3100可包括與從圖10A所示的音頻處理引擎驅(qū)動器41、音頻HAL 31和聲音效果程序32選擇的至少一個(gè)對應(yīng)的指令。

可由音頻處理引擎220訪問的區(qū)域3200可包括程序,該程序包括由音頻處理引擎220執(zhí)行以執(zhí)行根據(jù)示例性實(shí)施例的音頻處理方法的多個(gè)指令,音頻處理引擎220可訪問區(qū)域3200并且執(zhí)行所述多個(gè)指令。例如,可由音頻處理引擎220訪問的區(qū)域3200可包括與從圖10A所示的解碼處理11、VSP處理12和SRC處理13選擇的至少一個(gè)對應(yīng)的指令,并且可包括與請求主機(jī)CPU 100執(zhí)行處理的操作(圖10A的請求處理19)對應(yīng)的指令。此外,可由音頻處理引擎220訪問的區(qū)域3200可包括與從圖10B所示的濾波處理21、SRC處理22和編碼處理24選擇的至少一個(gè)對應(yīng)的指令,并且可包括與請求主機(jī)CPU 100執(zhí)行處理的操作(圖10B的請求處理29)對應(yīng)的指令。

盡管在圖18中單個(gè)計(jì)算機(jī)可讀存儲裝置3000包括可由主機(jī)CPU 100訪問的區(qū)域3100和可由音頻處理引擎220訪問的區(qū)域3200二者,但是本發(fā)明構(gòu)思不限于此。例如,可由主機(jī)CPU 100訪問的區(qū)域3100和可由音頻處理引擎220訪問的區(qū)域3200可被包括在兩個(gè)或更多個(gè)不同的存儲裝置中。

盡管具體地示出并描述了示例性實(shí)施例,但是將理解,在不脫離權(quán)利要求的精神和范圍的情況下可對示例性實(shí)施例進(jìn)行各種形式和細(xì)節(jié)上的改變。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1