專(zhuān)利名稱(chēng):用于處理音頻文件的共享緩沖器管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音頻裝置,且更特定來(lái)說(shuō),涉及基于例如樂(lè)器數(shù)字接口 (MIDI)或類(lèi)似 格式等音頻格式產(chǎn)生音頻輸出的音頻裝置。
背景技術(shù):
樂(lè)器數(shù)字接口 (MIDI)是用于產(chǎn)生、傳送及/或回放例如音樂(lè)、話(huà)音、音調(diào)、警報(bào) 及其類(lèi)似物的音頻聲音的格式。支持MIDI格式回放的裝置可存儲(chǔ)可用以產(chǎn)生各種"語(yǔ) 音"的音頻信息的集合。每一語(yǔ)音可對(duì)應(yīng)于一個(gè)或一個(gè)以上聲音,例如由特定器具產(chǎn)生 的音符。舉例來(lái)說(shuō),第一語(yǔ)音可對(duì)應(yīng)于如由鋼琴演奏的中音C,第二語(yǔ)音可對(duì)應(yīng)于如由 長(zhǎng)號(hào)演奏的中音C,第三語(yǔ)音可對(duì)應(yīng)于如由長(zhǎng)號(hào)演奏的D弁,等等。為了復(fù)制由特定器具 演奏的音符,兼容MIDI的裝置可包括指定各種音頻特征(例如低頻振蕩器的特性、例 如顫音等效果及可影響對(duì)聲音的感知的許多其它音頻特征)的語(yǔ)音信息的集合。可界定、 在MIDI文件中輸送并由支持MIDI格式的裝置重現(xiàn)幾乎任何聲音。
支持MIDI格式的裝置可在指示裝置應(yīng)開(kāi)始產(chǎn)生音符的事件發(fā)生時(shí)產(chǎn)生音符(或其 它聲音)。類(lèi)似地,裝置在指示裝置應(yīng)停止產(chǎn)生音符的事件發(fā)生時(shí)停止產(chǎn)生音符。可通 過(guò)指定指示特定語(yǔ)音何時(shí)應(yīng)開(kāi)始及停止的事件而根據(jù)MIDI格式對(duì)整個(gè)音樂(lè)作品進(jìn)行編 碼。以此方式,可以根據(jù)MIDI格式的緊湊文件格式來(lái)存儲(chǔ)及傳輸音樂(lè)作品。
多種裝置中支持MIDI。舉例來(lái)說(shuō),例如無(wú)線(xiàn)電電話(huà)等無(wú)線(xiàn)通信裝置可支持用于例 如鈴聲或其它音頻輸出等可下載的聲音的MIDI文件。例如蘋(píng)果計(jì)算機(jī)有限公司(Apple Computer, Inc)售賣(mài)的"iPod"裝置及微軟公司(Microsoft Corporation)售賣(mài)的"Zune" 裝置等數(shù)字音樂(lè)播放器也可支持MIDI文件格式。其它支持MIDI格式的裝置可包括各種音樂(lè)合成器、無(wú)線(xiàn)移動(dòng)裝置、直接雙向通信裝置(有時(shí)稱(chēng)為對(duì)講機(jī))、網(wǎng)絡(luò)電話(huà)、個(gè) 人計(jì)算機(jī)、桌上型及膝上型計(jì)算機(jī)、工作站、衛(wèi)星無(wú)線(xiàn)電裝置、內(nèi)部通信裝置、無(wú)線(xiàn)電 廣播裝置、手持型游戲裝置、安裝在裝置中的電路板、信息查詢(xún)站(information kiosk)、 各種用于兒童的計(jì)算機(jī)化玩具、用于汽車(chē)、船只及飛機(jī)中的機(jī)載計(jì)算機(jī)及多種其它裝置。
發(fā)明內(nèi)容
一般來(lái)說(shuō),本發(fā)明描述用于處理音頻文件的技術(shù)。盡管所述技術(shù)可與其它音頻格式、 技術(shù)或標(biāo)準(zhǔn)一起使用,但所述技術(shù)對(duì)于遵照樂(lè)器數(shù)字接口 (MIDI)格式的音頻文件的回 放可尤為有用。如本文所使用,術(shù)語(yǔ)MIDI文件指含有符合MIDI格式的至少一個(gè)音軌 的任何文件。根據(jù)本發(fā)明,技術(shù)利用操作以從多個(gè)音頻處理硬件元件接收波形樣本的求 和緩沖器。當(dāng)求和緩沖器從處理元件中的一者接收到經(jīng)計(jì)算的波形時(shí),求和緩沖器將經(jīng) 計(jì)算的波形添加到與MIDI幀的整體波形相關(guān)聯(lián)的適當(dāng)時(shí)間實(shí)例。因此,求和緩沖器組 合多個(gè)處理元件的輸出。以此方式,求和緩沖器累加并存儲(chǔ)完整MIDI幀的波形的整體 數(shù)字表示。求和緩沖器本質(zhì)上對(duì)與來(lái)自處理元件中的不同者的不同的所產(chǎn)生的語(yǔ)音相關(guān) 聯(lián)的不同時(shí)間實(shí)例進(jìn)行求和以產(chǎn)生表示給定音頻幀內(nèi)的整體音頻編輯的音頻樣本。
求和緩沖器將第一音頻幀的音頻樣本傳送到例如數(shù)字信號(hào)處理器(DSP)等外部處 理器。求和緩沖器包括存儲(chǔ)器模塊,其可在邏輯上被分割為多個(gè)存儲(chǔ)器塊,所述多個(gè)存 儲(chǔ)器塊可由求和緩沖器獨(dú)立地鎖定與解鎖(即,在逐塊的基礎(chǔ)上)。當(dāng)針對(duì)存儲(chǔ)器模塊 內(nèi)的給定存儲(chǔ)器塊完成到DSP的傳送時(shí),求和緩沖器解鎖存儲(chǔ)器塊。不等待對(duì)于第一幀 的存儲(chǔ)器模塊的所有存儲(chǔ)器塊到DSP的傳送的完成,求和緩沖器開(kāi)始清除經(jīng)解鎖的存儲(chǔ) 器塊的內(nèi)容,且允許將第二幀(即,下一幀)的波形和寫(xiě)入到經(jīng)清除存儲(chǔ)器塊。
由于這些技術(shù),求和緩沖器可從音頻處理硬件元件接收波形樣本且將所得波形和存 儲(chǔ)到存儲(chǔ)器,即使在波形和到數(shù)字信號(hào)處理器(DSP)的傳送對(duì)于先前幀來(lái)說(shuō)仍在進(jìn)行 中時(shí)。以此方式,求和緩沖器經(jīng)設(shè)計(jì)以有效地對(duì)來(lái)自音頻處理元件的波形樣本進(jìn)行求和 且將每一幀的所得波形和提供到DSP。此外,將存儲(chǔ)器管理功能從音頻處理硬件元件卸 載到求和緩沖器可增加音頻處理硬件元件的通過(guò)量。
在一個(gè)方面中,本發(fā)明提供一種方法,其包含對(duì)從音頻處理元件接收到的波形樣 本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和;將與第一音頻幀相關(guān)聯(lián)的波形和存儲(chǔ) 于存儲(chǔ)器中,其中存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;以及鎖定含有與所述第一音
頻幀相關(guān)聯(lián)的波形和的存儲(chǔ)器塊。所述方法進(jìn)一步包含在逐塊基礎(chǔ)上將經(jīng)鎖定的存儲(chǔ)器 塊的內(nèi)容傳送到外部處理器;在存儲(chǔ)器塊的內(nèi)容已被傳送到外部處理器之后解鎖存儲(chǔ)器塊;以及在傳送含有與第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同 時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
在另一方面中,本發(fā)明提供一種裝置,其包含累加器,其對(duì)從音頻處理元件接收 到的波形樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和;存儲(chǔ)器,其存儲(chǔ)與第一音 頻幀相關(guān)聯(lián)的波形和,其中所述存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;以及控制單元, 其鎖定含有與第一音頻幀相關(guān)聯(lián)的波形和的存儲(chǔ)器塊。所述控制單元在逐塊基礎(chǔ)上將經(jīng) 鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器,且在存儲(chǔ)器塊的內(nèi)容已被傳送到外部處理器 之后解鎖一存儲(chǔ)器塊。在所述控制單元傳送含有與第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng) 鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)存儲(chǔ)器將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于經(jīng)解鎖的 存儲(chǔ)器塊內(nèi)。
在另一方面中,本發(fā)明提供一種裝置,其包含用于對(duì)從音頻處理元件接收到的波形 樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和的裝置;用于存儲(chǔ)與第一音頻幀相關(guān) 聯(lián)的波形和的裝置,其中用于存儲(chǔ)的裝置在邏輯上被分割為多個(gè)存儲(chǔ)器塊;以及用于鎖 定含有與第一音頻幀相關(guān)聯(lián)的波形和的塊的裝置。所述裝置還包括用于在逐塊基礎(chǔ)上將 經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器的裝置,和用于在存儲(chǔ)器塊的內(nèi)容已被傳送 到外部處理器之后解鎖存儲(chǔ)器塊的裝置,其中通過(guò)用于存儲(chǔ)的裝置在通過(guò)用于傳送的裝 置將含有與第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處
理器的同時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
在另一方面中,本發(fā)明提供一種計(jì)算機(jī)可讀媒體,其包含在執(zhí)行后使一個(gè)或一個(gè)以 上處理器執(zhí)行以下操作的指令對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以產(chǎn)生與 第一音頻幀相關(guān)聯(lián)的波形和;將與第一音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于存儲(chǔ)器中,其中存 儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;鎖定含有與第一音頻幀相關(guān)聯(lián)的波形和的存儲(chǔ)器 塊;在逐塊基礎(chǔ)上將經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器;在所述存儲(chǔ)器塊的內(nèi) 容已被傳送到外部處理器之后解鎖存儲(chǔ)器塊;以及在傳送含有與第一音頻幀相關(guān)聯(lián)的波 形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于經(jīng) 解鎖的存儲(chǔ)器塊內(nèi)。
在另一方面中,本發(fā)明提供一種電路,其適于對(duì)從音頻處理元件接收到的波形樣 本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和;將與第一音頻幀相關(guān)聯(lián)的波形和存儲(chǔ) 于存儲(chǔ)器中,其中存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;鎖定含有與第一音頻幀相關(guān) 聯(lián)的波形和的存儲(chǔ)器塊;在逐塊基礎(chǔ)上將經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器; 在存儲(chǔ)器塊的內(nèi)容已被傳送到外部處理器之后解鎖存儲(chǔ)器塊;以及在傳送含有與第一音
13頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)將與第二音頻幀相關(guān)聯(lián)的 波形和存儲(chǔ)于經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
在附圖和以下描述中陳述本發(fā)明的一個(gè)或一個(gè)以上方面的細(xì)節(jié)。根據(jù)描述和圖式并 根據(jù)權(quán)利要求書(shū)將明白本發(fā)明的其它特征、目的和優(yōu)勢(shì)。
圖1為說(shuō)明可實(shí)施根據(jù)本發(fā)明的用于處理音頻文件的技術(shù)的示范性音頻裝置的框圖。
圖2為根據(jù)本發(fā)明的用于處理音頻合成參數(shù)的硬件單元的一個(gè)實(shí)例的框圖。 圖3為說(shuō)明與本發(fā)明的教示相一致的示范性技術(shù)的流程圖。 圖4為說(shuō)明根據(jù)本發(fā)明的求和緩沖器的示范性架構(gòu)的框圖。 圖5為說(shuō)明由求和緩沖器維持的示范性存儲(chǔ)器模塊的框圖。 圖6為說(shuō)明與本發(fā)明的教示相一致的示范性技術(shù)的流程圖。
具體實(shí)施例方式
本發(fā)明描述用于處理音頻文件的技術(shù)。盡管所述技術(shù)可與利用合成參數(shù)的其它音頻 格式、技術(shù)或標(biāo)準(zhǔn)一起使用,但所述技術(shù)對(duì)于遵照樂(lè)器數(shù)字接口 (MIDI)格式的音頻文 件的回放可尤為有用。如本文所使用,術(shù)語(yǔ)MIDI文件指含有符合MIDI格式的至少一 個(gè)音軌的任何音頻數(shù)據(jù)或文件。可包括MIDI音軌的各種文件格式的實(shí)例包括(例如) CMX、 SMAF、 XMF、 SP-MIDI。 CMX代表由高通有限公司(Qualcomm Inc.)開(kāi)發(fā)的 緊湊媒體擴(kuò)展。SMAF代表由雅馬哈公司(Yamaha Corp.)開(kāi)發(fā)的合成音樂(lè)移動(dòng)應(yīng)用格 式。XMF代表可擴(kuò)展音樂(lè)格式且SP-MIDI代表可縮放多音MIDI。
可在可包括音頻信息或音頻-視頻(多媒體)信息的音頻幀內(nèi)在裝置之間輸送MIDI 文件或其它音頻文件。音頻幀可包含單一音頻文件、多個(gè)音頻文件或(可能) 一個(gè)或一 個(gè)以上音頻文件和例如經(jīng)編碼視頻幀的其它信息。如本文所使用,可將音頻幀內(nèi)的任何 音頻數(shù)據(jù)稱(chēng)為音頻文件,其包括串流音頻數(shù)據(jù)或上文列出的一個(gè)或一個(gè)以上音頻文件格 式。根據(jù)本發(fā)明,技術(shù)利用求和緩沖器,所述求和緩沖器從多個(gè)處理元件(例如,在專(zhuān) 用MIDI硬件內(nèi))中的每一者接收波形樣本且累加波形樣本以產(chǎn)生波形和,所述波形和 接著被傳送到數(shù)字信號(hào)處理器(DSP)。
所描述的技術(shù)可改進(jìn)對(duì)例如MIDI文件等音頻文件的處理。所述技術(shù)可將不同任務(wù) 分離到軟件、固件和硬件中。通用處理器可執(zhí)行軟件以剖析音頻幀的音頻文件且借此識(shí)別時(shí)序參數(shù),且對(duì)與音頻文件相關(guān)聯(lián)的事件進(jìn)行調(diào)度。接著可由DSP以同步方式(如由 音頻文件中的時(shí)序參數(shù)所指定)服務(wù)于經(jīng)調(diào)度的事件。通用處理器以時(shí)間同步方式將事 件分派到DSP,且DSP根據(jù)時(shí)間同步調(diào)度來(lái)處理所述事件以產(chǎn)生合成參數(shù)。DSP接著 對(duì)硬件單元中的合成參數(shù)的處理進(jìn)行調(diào)度,且硬件單元可基于合成參數(shù)產(chǎn)生音頻樣本。 根據(jù)本發(fā)明,當(dāng)求和緩沖器從處理元件中的一者接收到經(jīng)計(jì)算的波形時(shí),求和緩沖 器將經(jīng)計(jì)算的波形添加到與MIDI幀的整體波形相關(guān)聯(lián)的適當(dāng)時(shí)間實(shí)例。因此,求和緩 沖器組合多個(gè)處理元件的輸出。以此方式,求和緩沖器累加并存儲(chǔ)完整MIDI幀的波形 的整體數(shù)字表示。求和緩沖器本質(zhì)上對(duì)與來(lái)自處理元件中的不同者的不同的所產(chǎn)生的語(yǔ) 音相關(guān)聯(lián)的不同時(shí)間實(shí)例進(jìn)行求和以產(chǎn)生表示給定音頻幀內(nèi)的整體音頻編輯的音頻樣 本。
圖1為說(shuō)明示范性音頻裝置4的框圖。音頻裝置4可包含能夠處理MIDI文件(例 如,包括至少一個(gè)MIDI音軌的文件)的任何裝置。音頻裝置4的實(shí)例包括無(wú)線(xiàn)通信裝 置,例如無(wú)線(xiàn)電電話(huà)、網(wǎng)絡(luò)電話(huà)、數(shù)字音樂(lè)播放器、音樂(lè)合成器、無(wú)線(xiàn)移動(dòng)裝置、直接 雙向通信裝置(有時(shí)稱(chēng)為對(duì)講機(jī))、個(gè)人計(jì)算機(jī)、桌上型或膝上型計(jì)算機(jī)、工作站、衛(wèi) 星無(wú)線(xiàn)電裝置、內(nèi)部通信裝置、無(wú)線(xiàn)電廣播裝置、手持型游戲裝置、安裝于裝置中的電 路板、公共査詢(xún)站裝置、視頻游戲控制臺(tái)、各種用于兒童的計(jì)算機(jī)化玩具、用于汽車(chē)、 船只或飛機(jī)中的機(jī)載計(jì)算機(jī)或多種其它裝置。
提供圖1中所說(shuō)明的各種組件來(lái)闡釋本發(fā)明的方面。然而,在一些實(shí)施方案中,其 它組件可能存在,且可能不包括所說(shuō)明的組件中的一些。舉例來(lái)說(shuō),如果音頻裝置4為 無(wú)線(xiàn)電電話(huà),則可包括天線(xiàn)、發(fā)射器、接收器和調(diào)制解調(diào)器(調(diào)制器-解調(diào)制器)以促進(jìn) 音頻文件的無(wú)線(xiàn)通信。
如圖1的實(shí)例中所說(shuō)明,音頻裝置4包括音頻存儲(chǔ)單元6以存儲(chǔ)MIDI文件。而且, MIDI文件一般指包括以MIDI格式編碼的至少一個(gè)音軌的任何音頻文件。音頻存儲(chǔ)單元 6可包含任何易失性或非易失性存儲(chǔ)器或存儲(chǔ)裝置。出于本發(fā)明的目的,可將音頻存儲(chǔ) 單元6視為將MIDI文件轉(zhuǎn)發(fā)到處理器8的存儲(chǔ)單元,或者處理器8從音頻存儲(chǔ)單元6 檢索MIDI文件,以使得所述文件得以處理。當(dāng)然,音頻存儲(chǔ)單元6還可為與數(shù)字音樂(lè) 播放器相關(guān)聯(lián)的存儲(chǔ)單元或與從另一裝置進(jìn)行信息傳送相關(guān)聯(lián)的臨時(shí)存儲(chǔ)單元。音頻存 儲(chǔ)單元6可為經(jīng)由數(shù)據(jù)總線(xiàn)或其它連接耦合到處理器8的單獨(dú)的易失性存儲(chǔ)器芯片或非 易失性存儲(chǔ)裝置??砂ù鎯?chǔ)器或存儲(chǔ)裝置控制器(未圖示)以促進(jìn)信息從音頻存儲(chǔ)單 元6的傳送。
根據(jù)本發(fā)明,裝置4實(shí)施在軟件、硬件和固件之間分離MIDI處理任務(wù)的架構(gòu)。具體來(lái)說(shuō),裝置4包括處理器8、 DSP12和音頻硬件單元14。這些組件中的每一者可(例 如)直接或經(jīng)由總線(xiàn)耦合到存儲(chǔ)器單元10。處理器8可包含執(zhí)行軟件以剖析MIDI文件 且對(duì)與MIDI文件相關(guān)聯(lián)的MIDI事件進(jìn)行調(diào)度的通用處理器。經(jīng)調(diào)度的事件可以時(shí)間 同步方式被分派到DSP 12且借此由DSP 12以同步方式(如由MIDI文件中的時(shí)序參數(shù) 所指定)服務(wù)。DSP 12根據(jù)通用處理器8所產(chǎn)生的時(shí)間同步調(diào)度來(lái)處理MIDI事件以產(chǎn) 生MIDI合成參數(shù)。DSP 12還可對(duì)由音頻硬件單元14進(jìn)行的對(duì)MIDI合成參數(shù)的后續(xù)處 理進(jìn)行調(diào)度。音頻硬件單元14基于合成參數(shù)產(chǎn)生音頻樣本。在替代實(shí)施例中,可以另 一方式實(shí)施本文描述的功能性,例如在軟件中或在適于執(zhí)行本文描述的技術(shù)的電路中。
處理器8可包含多種通用單芯片或多芯片微處理器中的任一者。處理器8可實(shí)施 CISC (復(fù)雜指令集計(jì)算機(jī))設(shè)計(jì)或RISC (精簡(jiǎn)指令集計(jì)算機(jī))設(shè)計(jì)。 一般來(lái)說(shuō),處理 器8包含執(zhí)行軟件的中央處理單元(CPU)。實(shí)例包括來(lái)自例如因特爾公司(Intel Corporation^蘋(píng)果計(jì)算機(jī)有限公司(Apple Computer, Inc)、太陽(yáng)微系統(tǒng)有限公司(Sun Microsystems Inc.)、高級(jí)微裝置(AMD)有限公司(Advanced Micro Devices (AMD) Inc.) 等公司的16位、32位或64位微處理器。其它實(shí)例包括來(lái)自例如國(guó)際商業(yè)機(jī)器(IBM) 公司(International Business Machines (IBM) Corporation)、紅帽有限公司(RedHat Inc.) 等公司的基于Unix或基于Linux的微處理器。通用處理器可包含可購(gòu)自ARM有限公司 (ARM Inc.)的ARM9,且DSP可包含由高通有限公司(Qualcomm Inc.)開(kāi)發(fā)的QDSP4 DSP。
處理器8可服務(wù)于第一幀(幀N)的MIDI文件,且當(dāng)?shù)谝粠?幀N)由DSP12服 務(wù)時(shí),第二幀(幀N+1)可同時(shí)由處理器8服務(wù)。當(dāng)?shù)谝粠?幀N)由音頻硬件單元14 服務(wù)時(shí),第二幀(幀N+1)同時(shí)由DSP 12服務(wù),同時(shí)第三幀(幀N+2)由處理器8服 務(wù)。以此方式,將MIDI文件處理分離為可同時(shí)處理的管線(xiàn)化級(jí),此可改進(jìn)效率且可能 減少給定級(jí)所需的計(jì)算資源。舉例來(lái)說(shuō),DSP12可相對(duì)于在沒(méi)有處理器8或MIDI硬件 14的輔助下執(zhí)行完整MIDI算法的常規(guī)DSP而得到簡(jiǎn)化。
在一些情況下,(例如)經(jīng)由中斷驅(qū)動(dòng)技術(shù)將MIDI硬件14所產(chǎn)生的音頻樣本傳遞 回DSP12。在此情況下,DSP也可對(duì)音頻樣本執(zhí)行后處理技術(shù)。DAC16將數(shù)字音頻樣 本轉(zhuǎn)換為模擬信號(hào),其可由驅(qū)動(dòng)電路18用以驅(qū)動(dòng)揚(yáng)聲器19A及19B以用于向用戶(hù)輸出 音頻聲音。
對(duì)于每一音頻幀,處理器8讀取一個(gè)或一個(gè)以上MIDI文件且可從MIDI文件提取 MIDI指令?;谶@些MIDI指令,處理器8對(duì)MIDI事件進(jìn)行調(diào)度以用于由DSP 12處 理,且根據(jù)此調(diào)度將MIDI事件分派到DSP12。具體來(lái)說(shuō),由處理器8進(jìn)行的此調(diào)度可
16包括與MIDI事件相關(guān)聯(lián)的時(shí)序的同步,所述時(shí)序同步可基于MIDI文件中所指定的時(shí) 序參數(shù)來(lái)識(shí)別。MIDI文件中的MIDI指令可指令特定MIDI語(yǔ)音開(kāi)始或停止。其它MIDI 指令可涉及觸摸后效果、呼吸控制效果、程序改變、音高折曲(pitch bend)效果、例如 左右搖動(dòng)(pan)等控制消息、延音踏板(sustain pedal)效果、主音量控制、例如時(shí)序 參數(shù)等系統(tǒng)消息、例如燈光效果提示(cue)等MIDI控制消息及/或其它聲音效果。在 對(duì)MIDI事件進(jìn)行調(diào)度之后,處理器8可將調(diào)度提供到存儲(chǔ)器10或DSP 12以使得DSP 12 可處理所述事件。或者,處理器8可通過(guò)以時(shí)間同步方式將MIDI事件分派到DSP 12 而執(zhí)行調(diào)度。
存儲(chǔ)器10可被構(gòu)造成使得處理器8、 DSP 12及MIDI硬件14可存取執(zhí)行委派給這 些不同組件的各種任務(wù)所需的任何信息。在一些情況下,可對(duì)MIDI信息在存儲(chǔ)器10 中的存儲(chǔ)布局進(jìn)行布置以允許從不同組件8、 12及14進(jìn)行有效存取。
當(dāng)DSP 12從處理器8 (或從存儲(chǔ)器IO)接收到經(jīng)調(diào)度的MIDI事件時(shí),DSP 12可處 理MIDI事件以便產(chǎn)生可被存儲(chǔ)回存儲(chǔ)器10中的MIDI合成參數(shù)。而且,由處理器8調(diào) 度這些MIDI事件由DSP服務(wù)的時(shí)序,此通過(guò)消除DSP 12執(zhí)行此些調(diào)度任務(wù)的需要而 產(chǎn)生效率。因此,DSP12可在處理器8正對(duì)下一音頻幀的MIDI事件進(jìn)行調(diào)度的同時(shí)服 務(wù)于第一音頻幀的MIDI事件。音頻幀可包含時(shí)間塊(例如,IO毫秒(ms)的時(shí)間間隔), 其可包括若干音頻樣本。舉例來(lái)說(shuō),數(shù)字輸出可每幀產(chǎn)生480個(gè)樣本,可將所述樣本轉(zhuǎn) 換為模擬音頻信號(hào)。許多事件可對(duì)應(yīng)于一個(gè)時(shí)間實(shí)例以使得許多音符或聲音可根據(jù) MIDI格式包括于一個(gè)時(shí)間實(shí)例中。當(dāng)然,委派給任何音頻幀的時(shí)間量以及每幀的樣本 的數(shù)目在不同實(shí)施方案中可變化。
一旦DSP 12已產(chǎn)生MIDI合成參數(shù),音頻硬件單元14便基于合成參數(shù)產(chǎn)生音頻樣 本。DSP 12可對(duì)由音頻硬件單元14對(duì)MIDI合成參數(shù)進(jìn)行的處理進(jìn)行調(diào)度。由音頻硬 件單元14產(chǎn)生的音頻樣本可包含脈沖編碼調(diào)制(PCM)樣本,所述樣本是對(duì)以規(guī)律時(shí) 間間隔取樣的模擬信號(hào)的數(shù)字表示。下文參看圖2論述由音頻硬件單元14進(jìn)行的示范 性音頻產(chǎn)生的額外細(xì)節(jié)。
在一些情況下,可能需要對(duì)音頻樣本執(zhí)行后處理。在此情況下,音頻硬件單元14 可向DSP12發(fā)送中斷命令以指令DSP12執(zhí)行所述后處理。后處理可包括濾波、縮放、
音量調(diào)節(jié)或可最終增強(qiáng)聲音輸出的廣泛多種音頻后處理。
在后處理之后,DSP 12可將經(jīng)后處理的音頻樣本輸出到數(shù)/模轉(zhuǎn)換器(DAC) 16。 DAC 16將數(shù)字音頻信號(hào)轉(zhuǎn)換為模擬信號(hào)且將模擬信號(hào)輸出到驅(qū)動(dòng)電路18。驅(qū)動(dòng)電路18 可放大信號(hào)以驅(qū)動(dòng)一個(gè)或一個(gè)以上揚(yáng)聲器19A及19B來(lái)產(chǎn)生可聽(tīng)的聲音。
17圖2為說(shuō)明可對(duì)應(yīng)于圖1的音頻裝置4的音頻硬件單元14的示范性音頻硬件單元 20的框圖。圖2所示的實(shí)施方案僅為示范性的,因?yàn)檫€可界定其它MIDI硬件實(shí)施方案 以與本發(fā)明的教示相一致。如圖2的實(shí)例中所說(shuō)明,音頻硬件單元20包括用以發(fā)送和 接收數(shù)據(jù)的總線(xiàn)接口 30。舉例來(lái)說(shuō),總線(xiàn)接口 30可包括AMBA高性能總線(xiàn)(AHB)主 接口、 AHB從屬接口和存儲(chǔ)器總線(xiàn)接口。 AMBA代表高級(jí)微處理器總線(xiàn)架構(gòu)?;蛘?, 總線(xiàn)接口 30可包括AXI總線(xiàn)接口或另一類(lèi)型的總線(xiàn)接口。 AXI代表高級(jí)可擴(kuò)展接口。
另外,音頻硬件單元20可包括協(xié)調(diào)模塊32。協(xié)調(diào)模塊32協(xié)調(diào)音頻硬件單元20內(nèi) 的數(shù)據(jù)流。當(dāng)音頻硬件單元20從DSP 12 (圖1)接收指令以開(kāi)始合成音頻樣本時(shí),協(xié) 調(diào)模塊32讀取音頻幀的合成參數(shù)(其由DSP12 (圖l)產(chǎn)生)。這些合成參數(shù)可用以重 建音頻幀。對(duì)于MIDI格式,合成參數(shù)描述給定幀內(nèi)的一個(gè)或一個(gè)以上MIDI語(yǔ)音的各 種聲學(xué)特性。舉例來(lái)說(shuō),MIDI合成參數(shù)的集合可指定諧振水平、交混回響、音量和/或 可影響一個(gè)或一個(gè)以上語(yǔ)音的其它特征。
在協(xié)調(diào)模塊32的指導(dǎo)下,可直接從存儲(chǔ)器單元10 (圖1)將合成參數(shù)加載到與相 應(yīng)處理元件34A或34N相關(guān)聯(lián)的語(yǔ)音參數(shù)集合(VPS) RAM 46A或46N中。在DSP 12 (圖1)的指導(dǎo)下,從存儲(chǔ)器10將程序指令加載到與相應(yīng)處理元件34A或34N相關(guān)聯(lián)的 程序RAM單元44A或44N中。
加載到程序RAM單元44A或44N中的指令指令相關(guān)聯(lián)的處理元件34A或34N合 成VPS RAM單元46A或46N中的合成參數(shù)的列表中所指示的語(yǔ)音中的一者??赡艽嬖?任何數(shù)目的處理元件34A到34N (統(tǒng)稱(chēng)為"處理元件34"),且每一者可包含能夠執(zhí)行 數(shù)學(xué)運(yùn)算的一個(gè)或一個(gè)以上ALU以及用以讀取和寫(xiě)入數(shù)據(jù)的一個(gè)或一個(gè)以上單元。為 簡(jiǎn)單起見(jiàn)僅說(shuō)明兩個(gè)處理元件34A和34N,但硬件單元20中可包括更多處理元件。處 理元件34可以彼此并行的方式合成語(yǔ)音。具體來(lái)說(shuō),多個(gè)不同處理元件34并行工作以 處理不同合成參數(shù)。以此方式,音頻硬件單元20內(nèi)的多個(gè)處理元件34可加速且可能增 加所產(chǎn)生的語(yǔ)音的數(shù)目,借此改進(jìn)音頻樣本的產(chǎn)生。
當(dāng)協(xié)調(diào)模塊32指令處理元件34中的一者合成語(yǔ)音時(shí),處理元件34中的相應(yīng)者可 執(zhí)行由合成參數(shù)界定的一個(gè)或一個(gè)以上指令。而且,可將這些指令加載到程序RAM單 元44A或44N中。加載到程序RAM單元44A或44N中的指令使處理元件34中的相應(yīng) 者執(zhí)行語(yǔ)音合成。舉例來(lái)說(shuō),處理元件34可向波形獲取單元(WFU) 36發(fā)送對(duì)合成參 數(shù)中所指定的波形的請(qǐng)求。處理元件34中的每一者可使用WFU 36。處理元件34中的 每一者可使用WFU 36。如果兩個(gè)或兩個(gè)以上處理元件34同時(shí)請(qǐng)求使用WFU 36,則 WFU 36使用仲裁方案以解決任何沖突。響應(yīng)于來(lái)自處理元件34中的一者的請(qǐng)求,WFU 36向請(qǐng)求處理元件傳回一個(gè)或一個(gè) 以上波形樣本。然而,因?yàn)椴稍跇颖緝?nèi)相移(例如,高達(dá)一個(gè)波循環(huán)),所以WFU36 可傳回兩個(gè)樣本以使用內(nèi)插來(lái)補(bǔ)償相移。此外,因?yàn)榱Ⅲw聲信號(hào)可包括用于兩個(gè)立體聲 通道的兩個(gè)單獨(dú)的波,所以WFU 36可傳回用于不同通道的單獨(dú)樣本,(例如)從而導(dǎo) 致立體聲輸出的高達(dá)四個(gè)單獨(dú)樣本。
在WFU 36將音頻樣本傳回到處理元件34中的一者之后,相應(yīng)處理元件可基于音 頻合成參數(shù)執(zhí)行額外程序指令。具體來(lái)說(shuō),指令使處理元件34中的一者從音頻硬件單 元20中的低頻振蕩器(LFO) 38請(qǐng)求不對(duì)稱(chēng)三角形波。通過(guò)使WFU 36傳回的波形乘 以L(fǎng)FO 38傳回的三角形波,相應(yīng)處理元件可操縱波形的各種聲學(xué)特性以實(shí)現(xiàn)所要音頻 效果。舉例來(lái)說(shuō),使波形乘以三角形波可導(dǎo)致聽(tīng)起來(lái)更像所要樂(lè)器的波形。
基于合成參數(shù)執(zhí)行的其它指令可使處理元件34中的相應(yīng)者使波形循環(huán)特定數(shù)目次、 調(diào)節(jié)波形的振幅、添加交混回響、添加顫音效果或造成其它效果。以此方式,處理元件 34可計(jì)算持續(xù)一個(gè)MIDI幀的語(yǔ)音的波形。最后,相應(yīng)處理元件可遇到退出指令。當(dāng)處 理元件34中的一者遇到退出指令時(shí),處理元件以信號(hào)向協(xié)調(diào)模塊32通知語(yǔ)音合成的結(jié) 束??稍诔绦蛑噶畹膱?zhí)行期間在另一存儲(chǔ)指令的指導(dǎo)下將經(jīng)計(jì)算的語(yǔ)音波形提供到求和 緩沖器40。此使求和緩沖器40存儲(chǔ)經(jīng)計(jì)算的語(yǔ)音波形。
當(dāng)求和緩沖器40從處理元件34中的一者接收到經(jīng)計(jì)算的波形時(shí),求和緩沖器40 將經(jīng)計(jì)算的波形添加到與MIDI幀的整體波形相關(guān)聯(lián)的適當(dāng)時(shí)間實(shí)例。因此,求和緩沖 器40組合多個(gè)處理元件34的輸出。舉例來(lái)說(shuō),求和緩沖器40最初可存儲(chǔ)平頂波(即, 所有數(shù)字樣本均為零的波)。當(dāng)求和緩沖器40從處理元件34中的一者接收到例如經(jīng)計(jì) 算的波形等音頻信息時(shí),求和緩沖器40可將經(jīng)計(jì)算的波形的每一數(shù)字樣本添加到存儲(chǔ) 于求和緩沖器40中的波形的相應(yīng)樣本。以此方式,求和緩沖器40累加并存儲(chǔ)完整音頻 幀的波形的整體數(shù)字表示。
求和緩沖器40本質(zhì)上對(duì)來(lái)自處理元件34中的不同者的不同音頻信息進(jìn)行求和。不
同音頻信息指示與不同的所產(chǎn)生的語(yǔ)音相關(guān)聯(lián)的不同時(shí)間實(shí)例。以此方式,求和緩沖器 40產(chǎn)生表示給定音頻幀內(nèi)的整體音頻編輯的音頻樣本。
最后,協(xié)調(diào)模塊32可確定處理元件34已完成合成當(dāng)前MIDI幀所需要的所有語(yǔ)音 且已將那些語(yǔ)音提供到求和緩沖器40。此時(shí),求和緩沖器40含有指示當(dāng)前MIDI幀的 完整波形的數(shù)字樣本。在協(xié)調(diào)模塊32作出此確定時(shí),協(xié)調(diào)模塊32向DSP12 (圖l)發(fā) 送中斷。響應(yīng)于中斷,DSP12可經(jīng)由直接存儲(chǔ)器交換(DME)向求和緩沖器40中的控 制單元(未圖示)發(fā)送請(qǐng)求以接收求和緩沖器40的內(nèi)容。或者,DSP10還可經(jīng)預(yù)編程以執(zhí)行DME。 DME指允許在DSP 12忙于做別的事情的同時(shí)在背景過(guò)程中將數(shù)據(jù)從一 個(gè)存儲(chǔ)器組傳送回另一者的存儲(chǔ)器傳送程序。在求和緩沖器40的內(nèi)容到DSP 12的DME 之后,DSP 12可接著在將數(shù)字音頻樣本提供到DAC 16以用于轉(zhuǎn)換到模擬域中之前對(duì)數(shù) 字音頻樣本執(zhí)行任何后處理。重要的是,由音頻硬件單元20關(guān)于幀N而執(zhí)行的處理與 由DSP12 (圖l)關(guān)于幀N+1而進(jìn)行的合成參數(shù)產(chǎn)生和由處理器8 (圖l)關(guān)于幀N+2 進(jìn)行的調(diào)度操作同時(shí)發(fā)生。
此外,如本文中所描述,求和緩沖器40包括在邏輯上被分割為多個(gè)存儲(chǔ)器塊的存 儲(chǔ)器,且通過(guò)允許在逐塊基礎(chǔ)上的存儲(chǔ)和從存儲(chǔ)器到DSP 12的DME傳送而有效地操作。 具體來(lái)說(shuō),當(dāng)求和緩沖器40已結(jié)束傳送關(guān)于幀N的特定存儲(chǔ)器塊的內(nèi)容時(shí),求和緩沖 器40解鎖并清除存儲(chǔ)器塊且將關(guān)于幀N+1的數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器塊,即使在其它存儲(chǔ)器 塊仍經(jīng)受關(guān)于幀N的DME傳送時(shí)。
圖2中還展示高速緩沖存儲(chǔ)器48、 WFU/LFO存儲(chǔ)器39和鏈接列表存儲(chǔ)器42。高 速緩沖存儲(chǔ)器48可由WFU 36用來(lái)以快速且有效的方式獲取基本波形。WFU/LFO存儲(chǔ) 器39可由協(xié)調(diào)模塊32用以存儲(chǔ)語(yǔ)音參數(shù)集合的語(yǔ)音參數(shù)。以此方式,可將WFU/LFO 存儲(chǔ)器39視為專(zhuān)用于波形獲取單元36和LFO 38的操作的存儲(chǔ)器。鏈接列表存儲(chǔ)器42 可包含用以存儲(chǔ)由DSP 12產(chǎn)生的語(yǔ)音指示符的列表的存儲(chǔ)器。語(yǔ)音指示符可包含指向 存儲(chǔ)于存儲(chǔ)器10中的一個(gè)或一個(gè)以上合成參數(shù)的指針。列表中的每一語(yǔ)音指示符可指 定存儲(chǔ)相應(yīng)MIDI語(yǔ)音的語(yǔ)音參數(shù)集合的存儲(chǔ)器位置。圖2中所示的各種存儲(chǔ)器和存儲(chǔ) 器的布置僅為示范性的??捎枚喾N其它存儲(chǔ)器布置實(shí)施本文所描述的技術(shù)。
圖3為說(shuō)明與本發(fā)明的教示相一致的示范性技術(shù)的流程圖。將參看圖1的裝置4和 圖2的硬件單元20來(lái)描述圖3。然而,其它裝置可實(shí)施圖3的技術(shù)。如圖3所示,存儲(chǔ) 器10存儲(chǔ)音頻幀的音頻合成參數(shù)(50)。舉例來(lái)說(shuō),可由DSP 12在處理音頻幀的一個(gè) 或一個(gè)以上音頻文件中所指定的經(jīng)調(diào)度事件中產(chǎn)生音頻合成參數(shù)。
多個(gè)不同處理元件34接著同時(shí)處理不同合成參數(shù)(52A、 52B和52N)。具體來(lái)說(shuō), 在第一處理元件34A中處理第一合成參數(shù)(52A),在第二處理元件34B中處理第二合 成參數(shù)(52B),且在第N個(gè)處理元件34N中處理第N個(gè)合成參數(shù)(52N)。合成參數(shù)可 包括界定音高、諧振、交混回響、音量和/或可影響一個(gè)或一個(gè)以上語(yǔ)音的其它特征的參 數(shù)。
可使用任何數(shù)目的處理元件34。任何時(shí)候處理元件34中的一者完成相應(yīng)處理時(shí), 與那個(gè)處理元件相關(guān)聯(lián)的所產(chǎn)生的音頻信息均在求和緩沖器40中累加(54)以產(chǎn)生音 頻樣本。如果音頻幀存在更多合成參數(shù)(56的"是"分支),則相應(yīng)處理元件34接著處理下一合成參數(shù)(52A、 52B或52N)。此過(guò)程繼續(xù)到音頻幀的所有合成參數(shù)均得到服務(wù) 為止(56的"否"分支)。此時(shí),求和緩沖器40輸出音頻幀的音頻樣本(58)。舉例來(lái) 說(shuō),協(xié)調(diào)模塊32可向DSP 12 (圖1)發(fā)送中斷命令以使音頻樣本被發(fā)送到DSP 12進(jìn)行 后處理。
圖4為說(shuō)明根據(jù)本發(fā)明的求和緩沖器40的示范性架構(gòu)的框圖。循環(huán)仲裁器60從處 理元件34A到34N接收請(qǐng)求以對(duì)波形樣本進(jìn)行求和,且以循環(huán)方式對(duì)請(qǐng)求進(jìn)行仲裁。 累加器和飽和邏輯單元62對(duì)從處理元件34接收到的波形樣本進(jìn)行累加。舉例來(lái)說(shuō),累 加器和飽和邏輯單元62可包括用于將波形樣本累加到波形和的二進(jìn)制補(bǔ)碼(2C)累加 器,且可以給定數(shù)目的位(例如,24位)飽和。累加器和飽和邏輯單元62可具有用于 兩個(gè)音頻通道(左和右)的獨(dú)立累加器,且可單獨(dú)地對(duì)每一通道進(jìn)行求和??刂茊卧?6 將表示所有音頻語(yǔ)音(例如,MIDI語(yǔ)音)的累加的經(jīng)累加波形樣本(在本文中稱(chēng)為"波 形和")存儲(chǔ)于存儲(chǔ)器模塊64內(nèi)。舉例來(lái)說(shuō),存儲(chǔ)器模塊64可存儲(chǔ)對(duì)應(yīng)于一個(gè)音頻幀 的波形和。在一些實(shí)例中,波形和可呈脈沖編碼調(diào)制(PCM)的形式。
處理元件34向求和緩沖器40發(fā)送請(qǐng)求以對(duì)波形樣本求和。請(qǐng)求可包括待求和的波 形樣本(例如,以包括左樣本和右樣本的立體聲格式)和指示應(yīng)在其處累加樣本的位置 的地址(即,存儲(chǔ)器內(nèi)應(yīng)存儲(chǔ)經(jīng)求和波形樣本的目標(biāo)存儲(chǔ)器塊的地址)的波形樣本的樣 本編號(hào)。所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在此環(huán)境下,目標(biāo)存儲(chǔ)器可為在對(duì)波形樣本進(jìn) 行求和的持續(xù)時(shí)間期間擱置的任何存儲(chǔ)器位置。每一請(qǐng)求還可包括指定在求和之后是否 使累加器的結(jié)果飽和以及是否累加結(jié)果或?qū)ζ溥M(jìn)行蓋寫(xiě)的兩個(gè)額外信號(hào)。由于處理元件 34中的每一者連同波形樣本一起發(fā)送目標(biāo)存儲(chǔ)器塊位置的地址,因此處理元件34無(wú)需 使其執(zhí)行同步,且處理元件34中的每一者可發(fā)送對(duì)應(yīng)于不同地址的波形。在求和緩沖 器40服務(wù)于來(lái)自處理元件34中的一者的請(qǐng)求之后,循環(huán)仲裁器60將被服務(wù)的處理元 件移動(dòng)到最低優(yōu)先級(jí)水平。循環(huán)仲裁器60借此確保所有處理元件34具有對(duì)求和緩沖器 40的相同存取權(quán)。
控制單元66從DSP 12接收請(qǐng)求以起始存儲(chǔ)器模塊64的內(nèi)容的直接存儲(chǔ)器交換 (DME)傳送。作為響應(yīng),控制單元66鎖定存儲(chǔ)器模塊64,此具有阻止對(duì)存儲(chǔ)器模塊 64的經(jīng)鎖定部分的任何請(qǐng)求的效果。存儲(chǔ)器模塊64可在邏輯上被分割為多個(gè)存儲(chǔ)器塊, 所述多個(gè)存儲(chǔ)器塊可由求和緩沖器40獨(dú)立地鎖定與解鎖(即,在逐塊的基礎(chǔ)上)。在針 對(duì)存儲(chǔ)器模塊64內(nèi)的給定存儲(chǔ)器塊完成DME傳送時(shí),控制單元66解鎖其內(nèi)容已被傳 送到DSP 12的存儲(chǔ)器塊。不等待存儲(chǔ)器模塊64的所有存儲(chǔ)器塊的DME傳送的完成, 控制單元66開(kāi)始清除經(jīng)解鎖的存儲(chǔ)器塊的內(nèi)容,且允許將下一幀的波形和寫(xiě)入到經(jīng)清
21除的存儲(chǔ)器塊。
由于這些技術(shù),求和緩沖器40可從處理元件34接收波形樣本且針對(duì)給定幀將所得 波形和存儲(chǔ)到存儲(chǔ)器模塊64,即使在波形和的DME傳送對(duì)于先前幀來(lái)說(shuō)仍在進(jìn)行中時(shí)。 以此方式,求和緩沖器40經(jīng)設(shè)計(jì)以有效地對(duì)來(lái)自音頻處理元件34的波形樣本進(jìn)行求和 且將每一幀的所得波形和提供到DSP 12。本文所描述的技術(shù)可改進(jìn)音頻裝置4 (圖l) 的通過(guò)量,因?yàn)楫?dāng)DSP 12正從求和緩沖器40讀取數(shù)據(jù)時(shí)處理元件34不閑置,且當(dāng)處 理元件34正將數(shù)據(jù)提供到求和緩沖器40時(shí)DSP 12不閑置。求和緩沖器40可向DSP 12 提供呈立體聲格式的波形和。
累加器和飽和邏輯單元62可響應(yīng)于與請(qǐng)求一起從處理元件34接收到的信號(hào)而在不 同模式中操作。所述信號(hào)可啟用和停用飽和及累加。在正常模式中,從處理元件34接 收到的信號(hào)停用飽和但啟用累加。在此模式中,求和緩沖器40從存儲(chǔ)器模塊64讀取, 用處理元件34中的一者所提供的值進(jìn)行累加且在不飽和的情況下將其存儲(chǔ)回存儲(chǔ)器。 在飽和及累加模式中,從處理元件34接收到的信號(hào)啟用累加及飽和,且求和緩沖器40 操作以累加波形和且飽和。在非飽和直寫(xiě)模式中,從處理元件34接收到的信號(hào)停用累 加及飽和兩者。求和緩沖器40跳過(guò)對(duì)存儲(chǔ)器模塊64的讀取,且從處理元件34接收到 的波形樣本的左通道位和右通道位被寫(xiě)入到存儲(chǔ)器模塊64。造成溢出的操作數(shù)將使所得 和翻轉(zhuǎn)。在飽和直寫(xiě)模式中,從處理元件34接收到的信號(hào)啟用飽和但停用累加。求和 緩沖器40跳過(guò)對(duì)存儲(chǔ)器模塊64的讀取,且從處理元件34接收到的波形樣本的左通道 位和右通道位被寫(xiě)入到存儲(chǔ)器模塊64。假設(shè)溢出在位31:23 (對(duì)于右通道來(lái)說(shuō)為63:55) 并不全為一或全為零的情況下發(fā)生。在溢出的情況下,樣本基于位31 (對(duì)于右通道來(lái)說(shuō) 為位63)而正飽和或負(fù)飽和。
圖5為說(shuō)明由求和緩沖器40維持的示范性存儲(chǔ)器模塊64的框圖。在圖5的實(shí)例中, 存儲(chǔ)器模塊64在邏輯上被分割為多個(gè)存儲(chǔ)器塊70A到70N (統(tǒng)稱(chēng)為"存儲(chǔ)器塊70")。 每一存儲(chǔ)器塊70可包括一個(gè)或一個(gè)以上字72,其中字72中的每一者對(duì)應(yīng)于不同的波形 和。如所說(shuō)明,存儲(chǔ)器塊70和存儲(chǔ)器塊70內(nèi)的字72可對(duì)應(yīng)于從存儲(chǔ)器模塊64的頂部 到底部的增加的時(shí)間實(shí)例。存儲(chǔ)器塊70可為可獨(dú)立地鎖定的,以防止給定存儲(chǔ)器塊70 被清除或被寫(xiě)入。在一實(shí)例中,存儲(chǔ)器模塊64含有十六個(gè)存儲(chǔ)器塊,其中每一存儲(chǔ)器 塊由三十二個(gè)字72組成,每一字72具有48個(gè)位的大小。
在一個(gè)實(shí)例實(shí)施方案中,存儲(chǔ)器模塊64存儲(chǔ)對(duì)應(yīng)于一個(gè)音頻幀的波形和,其中將 一個(gè)音頻幀界定為十毫秒的音頻數(shù)據(jù)。以48 kHz的取樣頻率,每一幀的波形和的數(shù)目 將為每幀480個(gè)波形和。求和緩沖器40可經(jīng)設(shè)計(jì)以能夠每循環(huán)清除來(lái)自存儲(chǔ)器模塊64的數(shù)據(jù)的一個(gè)波形和的值。因此,以48 kHz的取樣頻率,求和緩沖器40可花費(fèi)最少480 個(gè)循環(huán)來(lái)清除全部存儲(chǔ)器模塊64。
在一個(gè)實(shí)例中,求和緩沖器40從音頻處理元件34接收64位的波形樣本,其中位 55:32為24位的二進(jìn)制補(bǔ)碼(2C)右樣本,且位23:0為24位的2C左樣本。累加器和 飽和邏輯單元62基于與波形樣本一起接收的樣本編號(hào)將所接收的波形樣本添加到與 MIDI幀的整體波形相關(guān)聯(lián)的適當(dāng)時(shí)間實(shí)例。樣本編號(hào)指示應(yīng)在其處累加波形樣本(即, 2C右樣本和2C左樣本)的位置的地址。舉例來(lái)說(shuō),求和緩沖器40最初可在存儲(chǔ)器模 塊64內(nèi)存儲(chǔ)平頂波(即,所有數(shù)字樣本均為零的波)。當(dāng)求和緩沖器40從處理元件34 中的一者接收到波形樣本時(shí),求和緩沖器40可將波形樣本的每一數(shù)字樣本添加到存儲(chǔ) 于存儲(chǔ)器模塊64中的波形的相應(yīng)樣本的和。因此,累加器和飽和邏輯單元62將從處理 元件34中的每一者接收到的對(duì)應(yīng)于給定時(shí)間實(shí)例(且因此對(duì)應(yīng)于存儲(chǔ)器模塊64內(nèi)的給 定位置)的所有波形樣本加到一起,且將和存儲(chǔ)于所述位置處。以此方式,求和緩沖器 40累加并存儲(chǔ)完整MIDI幀的波形的整體數(shù)字表示。求和緩沖器40可將波形和作為48 位的字72存儲(chǔ)于存儲(chǔ)器模塊64內(nèi),每一字72包括2C右通道和及2C左通道和。舉例 來(lái)說(shuō),可將波形和存儲(chǔ)于存儲(chǔ)器模塊64內(nèi),其中位47:24為2C右通道和,且位23:0為 2C左通道和。
圖6為說(shuō)明與本發(fā)明的教示相一致的示范性技術(shù)的流程圖。求和緩沖器40的控制 單元66從DSP 12接收請(qǐng)求以起始存儲(chǔ)器模塊64的內(nèi)容的直接存儲(chǔ)器交換(DME)傳 送(74)。作為響應(yīng),控制單元66鎖定存儲(chǔ)器模塊64 (76),其具有阻止對(duì)存儲(chǔ)器模塊 64的經(jīng)鎖定部分的任何請(qǐng)求的效果。在針對(duì)存儲(chǔ)器模塊64內(nèi)的給定存儲(chǔ)器塊完成DME 傳送(80)時(shí),控制單元66解鎖其內(nèi)容已被傳送到DSP 12的存儲(chǔ)器塊(82)。不等待 存儲(chǔ)器模塊64的所有存儲(chǔ)器塊的DME傳送的完成,求和緩沖器40開(kāi)始清除經(jīng)解鎖的 存儲(chǔ)器塊的內(nèi)容(84)??刂茊卧?6可在協(xié)調(diào)模塊32 (圖2)進(jìn)行的請(qǐng)求之后便開(kāi)始清 除動(dòng)作??刂茊卧?6在其到達(dá)仍被鎖定的存儲(chǔ)器塊時(shí)阻止清除動(dòng)作。
當(dāng)協(xié)調(diào)模塊32請(qǐng)求求和緩沖器40清除存儲(chǔ)器模塊64的經(jīng)解鎖塊時(shí),協(xié)調(diào)模塊32 啟用音頻處理元件34以向求和緩沖器40發(fā)送對(duì)下一音頻幀的波形樣本進(jìn)行求和的請(qǐng) 求。協(xié)調(diào)模塊32可在求和緩沖器40實(shí)際執(zhí)行清除動(dòng)作之前啟用處理元件34。求和緩沖 器40從處理元件34接收波形樣本(86)。求和緩沖器40可經(jīng)由循環(huán)仲裁器60向處理 元件34A到34N中的每一者呈現(xiàn)類(lèi)似或相同的接口。循環(huán)仲裁器60以循環(huán)方式仲裁來(lái) 自處理元件34的請(qǐng)求,且依次處理獲勝的請(qǐng)求(88)。循環(huán)仲裁器60阻止來(lái)自輸?shù)糁?裁的處理元件34的請(qǐng)求(90),直到求和緩沖器40已結(jié)束服務(wù)于當(dāng)前請(qǐng)求(此時(shí)循環(huán)仲裁器60重新開(kāi)始仲裁)為止。
當(dāng)處理元件34中的一者在贏得仲裁(88的"是"分支)時(shí),控制單元66檢査與處 理元件34進(jìn)行的請(qǐng)求一起包括的波形樣本的地址以確定波形樣本將位于鎖定存儲(chǔ)器塊 內(nèi)或位于經(jīng)解鎖的存儲(chǔ)器塊內(nèi)(92)。舉例來(lái)說(shuō),控制單元66可將波形樣本的地址與指 示鎖定存儲(chǔ)器塊在存儲(chǔ)器模塊64內(nèi)所在處的開(kāi)始地址的鎖定"溫度計(jì)"值進(jìn)行比較。 如果比較指示波形樣本地址處于鎖定存儲(chǔ)器塊內(nèi),則控制單元66阻止請(qǐng)求(94)。
如果地址處于經(jīng)解鎖的存儲(chǔ)器塊內(nèi)(92的"是"分支),則控制單元66在累加功能 被啟用時(shí)將請(qǐng)求轉(zhuǎn)發(fā)到存儲(chǔ)器模塊64。當(dāng)累加功能被停用時(shí),控制單元66跳過(guò)對(duì)存儲(chǔ) 器模塊64的讀取,且簡(jiǎn)單地將所接收的波形樣本寫(xiě)入存儲(chǔ)器模塊64。如上文所描述, 控制單元66此時(shí)可依據(jù)如與處理元件請(qǐng)求一起接收的信號(hào)所規(guī)定的模式而以不同方式 操作??刂茊卧?6在當(dāng)前請(qǐng)求被服務(wù)時(shí)阻止其它請(qǐng)求被轉(zhuǎn)發(fā)到存儲(chǔ)器模塊64。在當(dāng)前 2C通道和(同時(shí)檢索左通道和與右通道和)從存儲(chǔ)器模塊64可用時(shí),累加器和飽和邏 輯單元62使用2C加法累加每一和與其從處理元件接收到的對(duì)應(yīng)的2C通道樣本且可在 24位處飽和(96)。循環(huán)仲裁器60接著在處理元件34中重新開(kāi)始仲裁??刂茊卧?6將 累加的波形和寫(xiě)入到存儲(chǔ)器模塊64 (假設(shè)無(wú)回寫(xiě)停止)(98)。在求和緩沖器40接收到 對(duì)當(dāng)前正寫(xiě)入的相同地址的新請(qǐng)求的情況下,存儲(chǔ)器模塊64給予回寫(xiě)操作優(yōu)先級(jí)以防 止數(shù)據(jù)崩潰。如果清除操作當(dāng)前在進(jìn)行中且發(fā)生回寫(xiě),則存儲(chǔ)器模塊64給予回寫(xiě)操作 優(yōu)先級(jí)(例如,使用固定優(yōu)先級(jí)仲裁器)。
當(dāng)針對(duì)正讀取的先前幀,所有存儲(chǔ)器塊已經(jīng)由DME被傳送到DSP 12 (100的"否" 分支),且針對(duì)當(dāng)前正寫(xiě)入的幀無(wú)更多樣本和仍待寫(xiě)入存儲(chǔ)器模塊64 (102的"否"分 支)時(shí),協(xié)調(diào)模塊32向DSP 12發(fā)送中斷,其起始針對(duì)當(dāng)前幀的存儲(chǔ)器模塊64的內(nèi)容 的新DME傳送。DME可在DSP12空閑時(shí)發(fā)生,且因此,任何DME停止將減少下一幀 的可用處理時(shí)間。
由于這些技術(shù),求和緩沖器40可從處理元件34接收波形樣本且針對(duì)給定幀將所得 波形和存儲(chǔ)到存儲(chǔ)器模塊64,即使在波形和的DME傳送對(duì)于先前幀來(lái)說(shuō)仍在進(jìn)行中時(shí)。 以此方式,求和緩沖器40經(jīng)設(shè)計(jì)以有效地對(duì)來(lái)自音頻處理元件34的波形樣本進(jìn)行求和 且將每一幀的所得波形和提供到DSP 12。
己描述各個(gè)實(shí)例。可以硬件、軟件、固件或其組合實(shí)施本文所描述的技術(shù)的一個(gè)或 一個(gè)以上方面。描述為模塊或組件的任何特征可一起實(shí)施于整合邏輯裝置中或單獨(dú)地實(shí) 施為離散但可互操作的邏輯裝置。如果以軟件實(shí)施,則所述技術(shù)的一個(gè)或一個(gè)以上方面 可至少部分通過(guò)包含指令的計(jì)算機(jī)可讀媒體實(shí)現(xiàn),所述指令在執(zhí)行時(shí)執(zhí)行上文所述的方法中的一者或一者以上。計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)媒體可形成可包括封裝材料的計(jì)算機(jī)程序 產(chǎn)品的部分。計(jì)算機(jī)可讀媒體可包含例如同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)的隨機(jī) 存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)、電 可擦可編程只讀存儲(chǔ)器(EEPROM)、快閃存儲(chǔ)器、磁性或光學(xué)數(shù)據(jù)存儲(chǔ)媒體和其類(lèi)似 物。另外或替代地,可至少部分地通過(guò)計(jì)算機(jī)可讀通信媒體來(lái)實(shí)現(xiàn)所述技術(shù),所述計(jì)算 機(jī)可讀通信媒體以指令或數(shù)據(jù)結(jié)構(gòu)的形式來(lái)攜載或傳送代碼且可由計(jì)算機(jī)存取、讀取和 /或執(zhí)行。
可由例如一個(gè)或一個(gè)以上數(shù)字信號(hào)處理器(DSP)、通用微處理器、專(zhuān)用集成電路 (ASIC)、現(xiàn)場(chǎng)可編程邏輯(FPGA)或其它等效整合或離散邏輯電路的一個(gè)或一個(gè)以上 處理器來(lái)執(zhí)行所述指令。因此,如本文中所使用,術(shù)語(yǔ)"處理器"可指上述結(jié)構(gòu)或適于 實(shí)施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)中的任一者。另外,在一些方面中,可在經(jīng)配 置或適于執(zhí)行本發(fā)明的技術(shù)的專(zhuān)用軟件模塊或硬件模塊內(nèi)提供本文中所描述的功能性。
如果實(shí)施于硬件中,則本發(fā)明的一個(gè)或一個(gè)以上方面可針對(duì)經(jīng)配置或適于執(zhí)行本文 所描述的技術(shù)中的一者或一者以上的例如集成電路、芯片組、ASIC、 FPGA、邏輯或其 各種組合等電路。電路可包括(如本文中所描述)集成電路或芯片組中的處理器和一個(gè) 或一個(gè)以上硬件單元。
還應(yīng)注意,所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,電路可實(shí)施上文所描述的功能中的一些 或全部。可能存在實(shí)施所有功能的一個(gè)電路,或者還可能存在實(shí)施功能的電路的多個(gè)部 分。在當(dāng)前移動(dòng)平臺(tái)技術(shù)的情況下,集成電路可包含至少一個(gè)DSP和至少一個(gè)高級(jí)精簡(jiǎn) 指令集計(jì)算機(jī)(RISC)機(jī)器(ARM)處理器以控制和/或傳送到一個(gè)或一個(gè)以上DSP。 另外,電路可經(jīng)設(shè)計(jì)或?qū)嵤┯谌舾刹糠种?,且在一些情況下,可重新使用若干部分以執(zhí) 行本發(fā)明中所描述的不同功能。
己描述各種方面和實(shí)例。然而,可在不脫離所附權(quán)利要求書(shū)的范圍的情況下對(duì)本發(fā) 明的結(jié)構(gòu)或技術(shù)進(jìn)行修改。舉例來(lái)說(shuō),其它類(lèi)型的裝置還可實(shí)施本文所描述的音頻處理 技術(shù)。而且,雖然圖2中所示的示范性硬件單元20使用基于波表的方法進(jìn)行語(yǔ)音合成, 但還可使用包括頻率調(diào)制合成方法的其它方法。這些和其它實(shí)施例處于所附權(quán)利要求書(shū) 的范圍內(nèi)。
2權(quán)利要求
1.一種方法,其包含對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和;將與所述第一音頻幀相關(guān)聯(lián)的所述波形和存儲(chǔ)于存儲(chǔ)器中,其中所述存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;鎖定含有與所述第一音頻幀相關(guān)聯(lián)的所述波形和的存儲(chǔ)器塊;在逐塊基礎(chǔ)上將所述經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器;在所述存儲(chǔ)器塊的內(nèi)容已被傳送到所述外部處理器之后解鎖存儲(chǔ)器塊;以及在傳送含有與所述第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
2. 根據(jù)權(quán)利要求1所述的方法,其中鎖定所述存儲(chǔ)器塊包含防止所述經(jīng)鎖定的存儲(chǔ)器 塊被存取。
3. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含在將與所述第二音頻幀相關(guān)聯(lián)的所述波 形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)之前清除所述經(jīng)解鎖的存儲(chǔ)器塊。
4. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含接收指示所述存儲(chǔ)器內(nèi)應(yīng)存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波形和的目標(biāo)存儲(chǔ)器塊的地址的樣本編號(hào);以及將所述樣本編號(hào)與表示經(jīng)鎖定的存儲(chǔ)器塊在存儲(chǔ)器內(nèi)的位置的值進(jìn)行比較以確 定與所述所指示的地址相關(guān)聯(lián)的存儲(chǔ)器塊當(dāng)前是否被鎖定,且其中在所述目標(biāo)存儲(chǔ)器塊當(dāng)前未被鎖定時(shí),所述存儲(chǔ)器存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波形和。
5. 根據(jù)權(quán)利要求4所述的方法,其進(jìn)一步包含在與所述所指示的地址相關(guān)聯(lián)的所述存 儲(chǔ)器塊當(dāng)前被鎖定時(shí)阻止與所述第 一 音頻幀相關(guān)聯(lián)的所述波形和被存儲(chǔ)。
6. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含從多個(gè)音頻處理元件接收多個(gè)波形樣本,其中對(duì)所述波形樣本求和包含在所述第一音頻幀內(nèi)的相應(yīng)時(shí)間實(shí)例處添加從所 述多個(gè)音頻處理元件接收到的所述波形樣本中的每一者。
7. 根據(jù)權(quán)利要求1所述的方法,其中傳送內(nèi)容包含輸出表示所述第一音頻幀內(nèi)的整體 音頻編輯的音頻樣本。
8. 根據(jù)權(quán)利要求1所述的方法,其中鎖定所述存儲(chǔ)器塊包含響應(yīng)于從所述外部處理器 接收到的傳送所述存儲(chǔ)器的所述內(nèi)容的請(qǐng)求而鎖定所述存儲(chǔ)器塊。
9. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含根據(jù)循環(huán)仲裁來(lái)仲裁請(qǐng)求以對(duì)從多個(gè)音 頻處理元件接收到的波形樣本進(jìn)行求和。
10. 根據(jù)權(quán)利要求1所述的方法,其中對(duì)所述波形樣本進(jìn)行求和包含使用二進(jìn)制補(bǔ)碼累 加來(lái)累加所述波形樣本。
11. 根據(jù)權(quán)利要求1所述的方法,其中對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以 產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和包含對(duì)從樂(lè)器數(shù)字接口 (MIDI)處理元件接 收到的MIDI波形樣本進(jìn)行求和以產(chǎn)生與第一 MIDI幀相關(guān)聯(lián)的MIDI波形和。
12. —種裝置,其包含累加器,其對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和,以產(chǎn)生與第一音頻幀 相關(guān)聯(lián)的波形和;存儲(chǔ)器,其存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波形和,其中所述存儲(chǔ)器在邏輯 上被分割為多個(gè)存儲(chǔ)器塊;以及控制單元,其鎖定含有與所述第一音頻幀相關(guān)聯(lián)的所述波形和的存儲(chǔ)器塊,其中 所述控制單元在逐塊基礎(chǔ)上將所述經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器,且 在所述存儲(chǔ)器塊的內(nèi)容已被傳送到所述外部處理器之后解鎖存儲(chǔ)器塊,且其中在所述控制單元傳送含有與所述第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定 的存儲(chǔ)器塊的內(nèi)容的同時(shí),所述存儲(chǔ)器將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于所述 經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
13. 根據(jù)權(quán)利要求12所述的裝置,其中所述存儲(chǔ)器塊被所述控制單元鎖定可防止所述 經(jīng)鎖定的存儲(chǔ)器塊被存取。
14. 根據(jù)權(quán)利要求12所述的裝置,其中所述控制單元在將與所述第二音頻幀相關(guān)聯(lián)的 所述波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)之前清除所述經(jīng)解鎖的存儲(chǔ)器塊。
15. 根據(jù)權(quán)利要求12所述的裝置,其中所述裝置接收指示所述存儲(chǔ)器內(nèi)應(yīng)存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波 形和的目標(biāo)存儲(chǔ)器塊的地址的樣本編號(hào),其中所述控制單元將所述樣本編號(hào)與表示當(dāng)前鎖定存儲(chǔ)器塊在存儲(chǔ)器內(nèi)的位置 的值進(jìn)行比較,以確定與所述所指示的地址相關(guān)聯(lián)的存儲(chǔ)器塊當(dāng)前是否被鎖定,且其中在所述目標(biāo)存儲(chǔ)器塊當(dāng)前未被鎖定時(shí),所述存儲(chǔ)器存儲(chǔ)與所述第一音頻幀相 關(guān)聯(lián)的所述波形和。
16. 根據(jù)權(quán)利要求15所述的裝置,其中在與所述所指示的地址相關(guān)聯(lián)的所述存儲(chǔ)器塊 當(dāng)前被鎖定時(shí),所述控制單元阻止所述存儲(chǔ)器存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述 波形和。
17. 根據(jù)權(quán)利要求12所述的裝置,其中所述裝置從多個(gè)音頻處理元件接收多個(gè)波形樣 本,且其中所述累加器在所述第一音頻幀內(nèi)的相應(yīng)時(shí)間實(shí)例處添加從所述多個(gè)音頻 處理元件接收到的所述波形樣本中的每一者。
18. 根據(jù)權(quán)利要求12所述的裝置,其中所述控制單元輸出表示所述第一音頻幀內(nèi)的整 體音頻編輯的音頻樣本。
19. 根據(jù)權(quán)利要求12所述的裝置,其中所述控制單元響應(yīng)于從所述外部處理器接收到 的傳送所述存儲(chǔ)器的所述內(nèi)容的請(qǐng)求而鎖定所述存儲(chǔ)器塊。
20. 根據(jù)權(quán)利要求12所述的裝置,其進(jìn)一步包含仲裁器,所述仲裁器根據(jù)循環(huán)仲裁來(lái) 仲裁請(qǐng)求以對(duì)從多個(gè)音頻處理元件接收到的波形樣本進(jìn)行求和。
21. 根據(jù)權(quán)利要求12所述的裝置,其中所述累加器使用二進(jìn)制補(bǔ)碼累加來(lái)累加所述波形樣本。
22. 根據(jù)權(quán)利要求12所述的裝置,其中所述波形樣本包含樂(lè)器數(shù)字接口 (MIDI)波形 樣本,所述波形和包含MIDI波形和,且所述第一音頻幀和第二音頻幀包含第一 MIDI幀和第二 MIDI幀。
23. —種裝置,其包含用于對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián) 的波形和的裝置;用于存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波形和的裝置,其中所述用于存儲(chǔ)的裝 置在邏輯上被分割為多個(gè)存儲(chǔ)器塊;用于鎖定含有與所述第一音頻幀相關(guān)聯(lián)的所述波形和的塊的裝置; 用于在逐塊基礎(chǔ)上將所述經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器的裝置;以及用于在所述存儲(chǔ)器塊的內(nèi)容已被傳送到所述外部處理器之后解鎖存儲(chǔ)器塊的裝 置,其中與第二音頻幀相關(guān)聯(lián)的波形和是在由所述用于傳送的裝置將含有與所述第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到所述外部處理器 的同時(shí)由所述用于存儲(chǔ)的裝置存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
24. 根據(jù)權(quán)利要求23所述的裝置,其中所述用于鎖定的裝置可防止所述經(jīng)鎖定的存儲(chǔ) 器塊被存取。
25. 根據(jù)權(quán)利要求23所述的裝置,其進(jìn)一步包含用于在將與所述第二音頻幀相關(guān)聯(lián)的 所述波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)之前清除所述經(jīng)解鎖的存儲(chǔ)器塊的裝置。
26. 根據(jù)權(quán)利要求23所述的裝置,其進(jìn)一步包含用于接收指示所述用于存儲(chǔ)的裝置內(nèi)應(yīng)存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波 形和的目標(biāo)存儲(chǔ)器塊的地址的樣本編號(hào)的裝置;用于將所述樣本編號(hào)與表示當(dāng)前鎖定存儲(chǔ)器塊在所述存儲(chǔ)裝置內(nèi)的位置的值進(jìn)行比較以確定與所述所指示的地址相關(guān)聯(lián)的存儲(chǔ)器塊當(dāng)前是否被鎖定的裝置,其中在所述目標(biāo)存儲(chǔ)器塊當(dāng)前未被鎖定時(shí),所述用于存儲(chǔ)的裝置存儲(chǔ)與所述第一 音頻幀相關(guān)聯(lián)的所述波形和。
27. 根據(jù)權(quán)利要求26所述的裝置,其進(jìn)一步包含用于在與所述所指示的地址相關(guān)聯(lián)的 所述存儲(chǔ)器塊當(dāng)前被鎖定時(shí),阻止所述存儲(chǔ)器存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述 波形和的裝置。
28. 根據(jù)權(quán)利要求23所述的裝置,其進(jìn)一步包含-用于從多個(gè)音頻處理元件接收多個(gè)波形樣本的裝置,其中所述用于求和的裝置在所述第一音頻幀內(nèi)的相應(yīng)時(shí)間實(shí)例處添加從所述多 個(gè)音頻處理元件接收到的所述波形樣本中的每一者。
29. 根據(jù)權(quán)利要求23所述的裝置,其中所述用于鎖定的裝置響應(yīng)于從所述外部處理器 接收到的傳送所述用于存儲(chǔ)的裝置的所述內(nèi)容的請(qǐng)求而鎖定所述存儲(chǔ)器塊。
30. 根據(jù)權(quán)利要求23所述的裝置,其進(jìn)一步包含用于根據(jù)循環(huán)仲裁來(lái)仲裁請(qǐng)求以對(duì)從 多個(gè)音頻處理元件接收到的波形樣本進(jìn)行求和的裝置。
31. 根據(jù)權(quán)利要求23所述的裝置,其中所述用于求和的裝置使用二進(jìn)制補(bǔ)碼累加來(lái)累 加所述波形樣本。
32. 根據(jù)權(quán)利要求23所述的裝置,其中所述波形樣本包含樂(lè)器數(shù)字接口 (MIDI)波形 樣本,所述波形和包含MIDI波形和,且所述第一音頻幀和第二音頻幀包含第一 MIDI幀和第二 MIDI幀。
33. —種計(jì)算機(jī)可讀媒體,其包含在執(zhí)行后使一個(gè)或一個(gè)以上處理器執(zhí)行以下操作的指 令對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波 形和;將與所述第一音頻幀相關(guān)聯(lián)的所述波形和存儲(chǔ)于存儲(chǔ)器中,其中所述存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;鎖定含有與所述第一音頻幀相關(guān)聯(lián)的所述波形和的存儲(chǔ)器塊; 在逐塊基礎(chǔ)上將所述經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器; 在所述存儲(chǔ)器塊的內(nèi)容已被傳送到所述外部處理器之后解鎖存儲(chǔ)器塊;以及 在傳送含有與所述第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
34. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其中鎖定所述存儲(chǔ)器塊包含防止所述經(jīng)鎖定的存儲(chǔ)器塊被存取。
35. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含在執(zhí)行后使所述一個(gè)或一個(gè)以上處理器在將與所述第二音頻幀相關(guān)聯(lián)的所述波形和存儲(chǔ)于所述經(jīng)解鎖的存 儲(chǔ)器塊內(nèi)之前清除所述經(jīng)解鎖的存儲(chǔ)器塊的指令。
36. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含在執(zhí)行后使所述一個(gè)或一個(gè)以上處理器執(zhí)行以下操作的指令-接收指示所述存儲(chǔ)器內(nèi)應(yīng)存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波形和的目標(biāo)存 儲(chǔ)器塊的地址的樣本編號(hào);以及將所述樣本編號(hào)與表示經(jīng)鎖定的存儲(chǔ)器塊在存儲(chǔ)器內(nèi)的位置的值進(jìn)行比較以確 定與所述所指示的地址相關(guān)聯(lián)的存儲(chǔ)器塊當(dāng)前是否被鎖定,其中將與所述第一音頻幀相關(guān)聯(lián)的所述波形和存儲(chǔ)于所述存儲(chǔ)器中包含在所述 目標(biāo)存儲(chǔ)器塊當(dāng)前未被鎖定時(shí)存儲(chǔ)所述波形和。
37. 根據(jù)權(quán)利要求36所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含在執(zhí)行后使所述一個(gè)或一個(gè)以上處理器在與所述所指示的地址相關(guān)聯(lián)的所述存儲(chǔ)器塊當(dāng)前被鎖定時(shí)阻止與 所述第一音頻幀相關(guān)聯(lián)的所述波形和被存儲(chǔ)的指令。
38. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含在執(zhí)行后使所述一個(gè)或一個(gè)以上處理器執(zhí)行以下操作的指令從多個(gè)音頻處理元件接收多個(gè)波形樣本,其中對(duì)所述波形樣本求和包含在所述第 一 音頻幀內(nèi)的相應(yīng)時(shí)間實(shí)例處添加從所 述多個(gè)音頻處理元件接收到的所述波形樣本中的每一者。
39. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其中傳送內(nèi)容包含輸出表示所述第一音 頻幀內(nèi)的整體音頻編輯的音頻樣本。
40. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其中鎖定所述存儲(chǔ)器塊包含響應(yīng)于從所 述外部處理器接收到的傳送所述存儲(chǔ)器的所述內(nèi)容的請(qǐng)求而鎖定所述存儲(chǔ)器塊。
41. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含在執(zhí)行后使所述一個(gè)或一個(gè)以上處理器根據(jù)循環(huán)仲裁來(lái)仲裁請(qǐng)求以對(duì)從多個(gè)音頻處理元件接收到的波形樣 本進(jìn)行求和的指令。
42. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其中對(duì)所述波形樣本進(jìn)行求和包含使用 二進(jìn)制補(bǔ)碼累加來(lái)累加所述波形樣本。
43. 根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其中對(duì)從音頻處理元件接收到的波形樣 本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和包含對(duì)從樂(lè)器數(shù)字接口 (MIDI) 處理元件接收到的MIDI波形樣本進(jìn)行求和以產(chǎn)生與第一 MIDI幀相關(guān)聯(lián)的MIDI 波形和。
44. 一種電路,其適于對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波 形和;將與所述第一音頻幀相關(guān)聯(lián)的所述波形和存儲(chǔ)于存儲(chǔ)器中,其中所述存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;鎖定含有與所述第一音頻幀相關(guān)聯(lián)的所述波形和的存儲(chǔ)器塊; 在逐塊基礎(chǔ)上將所述經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器; 在所述存儲(chǔ)器塊的內(nèi)容已被傳送到所述外部處理器之后解鎖存儲(chǔ)器塊;以及 在傳送含有與所述第一音頻幀相關(guān)聯(lián)的波形和的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
45. 根據(jù)權(quán)利要求44所述的電路,其中鎖定所述存儲(chǔ)器塊包含防止所述經(jīng)鎖定的存儲(chǔ) 器塊被存取。
46. 根據(jù)權(quán)利要求44所述的電路,其中所述電路適于在將與所述第二音頻幀相關(guān)聯(lián)的 所述波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)之前清除所述經(jīng)解鎖的存儲(chǔ)器塊。
47. 根據(jù)權(quán)利要求44所述的電路,其中所述電路適于接收指示所述存儲(chǔ)器內(nèi)應(yīng)存儲(chǔ)與所述第一音頻幀相關(guān)聯(lián)的所述波形和的目標(biāo)存 儲(chǔ)器塊的地址的樣本編號(hào);以及將所述樣本編號(hào)與表示經(jīng)鎖定存儲(chǔ)器塊在存儲(chǔ)器內(nèi)的位置的值進(jìn)行比較以確定 與所述所指示的地址相關(guān)聯(lián)的存儲(chǔ)器塊當(dāng)前是否被鎖定,其中將與所述第一音頻幀相關(guān)聯(lián)的所述波形和存儲(chǔ)于所述存儲(chǔ)器中包含在所述 目標(biāo)存儲(chǔ)器塊當(dāng)前未被鎖定時(shí)存儲(chǔ)所述波形和。
48. 根據(jù)權(quán)利要求47所述的電路,其中所述電路適于在與所述所指示的地址相關(guān)聯(lián)的 所述存儲(chǔ)器塊當(dāng)前被鎖定時(shí)阻止與所述第一音頻幀相關(guān)聯(lián)的所述波形和被存儲(chǔ)。
49. 根據(jù)權(quán)利要求44所述的電路,其中所述電路適于從多個(gè)音頻處理元件接收多個(gè)波形樣本,其中對(duì)所述波形樣本求和包含在所述第一音頻幀內(nèi)的相應(yīng)時(shí)間實(shí)例處添加從所 述多個(gè)音頻處理元件接收到的所述波形樣本中的每一者。
50. 根據(jù)權(quán)利要求44所述的電路,其中傳送內(nèi)容包含輸出表示所述第一音頻幀內(nèi)的整 體音頻編輯的音頻樣本。
51. 根據(jù)權(quán)利要求44所述的電路,其中鎖定所述存儲(chǔ)器塊包含響應(yīng)于從所述外部處理 器接收到的傳送所述存儲(chǔ)器的所述內(nèi)容的請(qǐng)求而鎖定所述存儲(chǔ)器塊。
52. 根據(jù)權(quán)利要求44所述的電路,其中所述電路適于根據(jù)循環(huán)仲裁來(lái)仲裁請(qǐng)求以對(duì)從 多個(gè)音頻處理元件接收到的波形樣本進(jìn)行求和。
53. 根據(jù)權(quán)利要求44所述的電路,其中對(duì)所述波形樣本進(jìn)行求和包含使用二進(jìn)制補(bǔ)碼累加來(lái)累加所述波形樣本。
54.根據(jù)權(quán)利要求44所述的電路,其中對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和 以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和包含對(duì)從樂(lè)器數(shù)字接口 (MIDI)處理元件 接收到的MIDI波形樣本進(jìn)行求和以產(chǎn)生與第一 MIDI幀相關(guān)聯(lián)的MIDI波形和。
全文摘要
本發(fā)明描述利用求和緩沖器的技術(shù),所述求和緩沖器從音頻處理元件接收波形樣本,且對(duì)給定幀的波形和進(jìn)行求和及存儲(chǔ)。在一個(gè)實(shí)例中,一種方法包含對(duì)從音頻處理元件接收到的波形樣本進(jìn)行求和以產(chǎn)生與第一音頻幀相關(guān)聯(lián)的波形和;將所述波形和存儲(chǔ)于存儲(chǔ)器中,其中所述存儲(chǔ)器在邏輯上被分割為多個(gè)存儲(chǔ)器塊;以及鎖定含有與所述第一音頻幀相關(guān)聯(lián)的所述波形和的存儲(chǔ)器塊;將經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容傳送到外部處理器;在存儲(chǔ)器塊的內(nèi)容已被傳送到所述外部處理器之后解鎖所述存儲(chǔ)器塊,以及在傳送與所述第一音頻幀相關(guān)聯(lián)的剩余經(jīng)鎖定的存儲(chǔ)器塊的內(nèi)容的同時(shí)將與第二音頻幀相關(guān)聯(lián)的波形和存儲(chǔ)于所述經(jīng)解鎖的存儲(chǔ)器塊內(nèi)。
文檔編號(hào)G10H7/00GK101636781SQ200880008749
公開(kāi)日2010年1月27日 申請(qǐng)日期2008年3月17日 優(yōu)先權(quán)日2007年3月22日
發(fā)明者尼迪什·拉馬錢(qián)德拉·卡馬特, 普拉加克特·V·庫(kù)爾卡尼, 蘇雷什·德瓦拉帕里, 阿利斯特·阿勒馬尼亞 申請(qǐng)人:高通股份有限公司