專利名稱:處理數(shù)字媒體流的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及處理數(shù)字媒體流領(lǐng)域。更具體地說,在一個(gè)實(shí)施例 中,本發(fā)明涉及在時(shí)域和頻域中處理數(shù)字?jǐn)?shù)據(jù)的方法和系統(tǒng)。
背景技術(shù):
在對(duì)數(shù)字媒體流(例如,數(shù)字音頻流)進(jìn)行處理時(shí),需要兩類算法 1)基于塊的(BB)算法,其中音頻數(shù)據(jù)塊被累積然后作為一個(gè)單元處
理,以及2)逐采樣(SS)算法,該算法以每次一個(gè)采樣的方式處理音頻 數(shù)據(jù)。頻域或者BB算法具有計(jì)算靈活性更大的優(yōu)點(diǎn),例如,可以實(shí)現(xiàn)更 長(zhǎng)的有限沖激響應(yīng)或者FIR濾波器,能夠?qū)崿F(xiàn)基于快速傅立葉變換或者 FFT的算法,其代價(jià)是在可以開始處理之前必須累積數(shù)據(jù)塊,從而添加了 等待時(shí)間。SS處理具有等待時(shí)間和開銷非常低、對(duì)參數(shù)改變基本上立即作 出響應(yīng)的優(yōu)點(diǎn),這在例如改變到圖形均衡器的參數(shù)的應(yīng)用中可能非常有 益。SS處理的低開銷極大地簡(jiǎn)化了音頻系統(tǒng)中不同SS軟件算法的動(dòng)態(tài)加 載和卸載,這使得能夠?qū)崿F(xiàn)響應(yīng)于實(shí)時(shí)輸入對(duì)音頻流的效果處理進(jìn)行快速 修改。
現(xiàn)有數(shù)字信號(hào)處理或者DSP系統(tǒng)被設(shè)計(jì)為專門充當(dāng)BB和SS處理 器,而不是同時(shí)充當(dāng)二者。因此,標(biāo)準(zhǔn)的現(xiàn)有方法要么在單獨(dú)的引擎中處 理SS和BB算法,要么將SS算法轉(zhuǎn)換成BB算法,并且承受等待時(shí)間和 開銷對(duì)SS算法的性能的不利影響。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供了一種用于處理媒體數(shù)據(jù)(例如,數(shù)字音頻、視頻 等)的數(shù)字處理設(shè)備和方法。
本發(fā)明擴(kuò)展到包含指令序列的機(jī)器可讀介質(zhì),所述指令序列在被機(jī)器
執(zhí)行時(shí)致使所述機(jī)器執(zhí)行這里所述的任何方法。
從所附附圖和下面的詳細(xì)描述將清楚看出本發(fā)明的其他特征。
現(xiàn)在參考附圖通過示例描述本發(fā)明。在附圖中,
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的示例性數(shù)字處理器模塊的示意框 圖,該數(shù)字處理器模塊用于在單個(gè)設(shè)備中在時(shí)域和頻域中處理數(shù)據(jù);
圖2示出了根據(jù)本發(fā)明的示例性方法的示意流程圖,該方法用于處理 時(shí)域數(shù)據(jù)或者逐采樣數(shù)據(jù);
圖3示出了也是根據(jù)本發(fā)明的示例性時(shí)域中斷子例程(TDISR)的示 意流程圖4示出了示例性數(shù)字信號(hào)處理器(DSP)內(nèi)的前臺(tái)和后臺(tái)處理的示 意流程圖5示出了也是根據(jù)本發(fā)明的示例性DSP的示意框圖; 圖6示出了圖5的示例性DSP的進(jìn)一步細(xì)節(jié);
圖7示出了用于執(zhí)行前臺(tái)例程或處理的示例性基本方法的示意流程
圖8示出了利用公共存儲(chǔ)器或共享存儲(chǔ)器的逐采樣和基于塊的功能之 間的示例性交互的示意流程圖9示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的示例性數(shù)字處理系統(tǒng)或子系統(tǒng)的 示意流程圖,該系統(tǒng)或子系統(tǒng)包括根據(jù)本發(fā)明的DSP模塊;
圖10示出了根據(jù)本發(fā)明實(shí)施例的示例性路由控制器或主機(jī)接口的示 意框圖,該路由控制器或主機(jī)接口用于在圖9的數(shù)字處理系統(tǒng)中路由數(shù)字 數(shù)據(jù);以及
圖11示出了示例性主機(jī)接口與圖5和圖6的DSP之間的示例性互連 的示意框圖。
具體實(shí)施例方式
下面描述用于處理數(shù)字媒體數(shù)據(jù)的方法和設(shè)備。在下面的描述中,為
了說明目的,闡述了許多具體細(xì)節(jié),以便于充分理解本發(fā)明。但是,對(duì)于 本領(lǐng)域的技術(shù)人員來說很明顯的,沒有這些具體細(xì)節(jié)也可以實(shí)施本發(fā)明。 此外,盡管通過參考處理音頻數(shù)據(jù)的示例描述了本發(fā)明,但是應(yīng)當(dāng)注意到 本發(fā)明可以用來處理任何數(shù)字?jǐn)?shù)據(jù)(包括視頻數(shù)據(jù))。
參考圖1,標(biāo)號(hào)20總地指示數(shù)字信號(hào)處理器(DSP)模塊的體系結(jié)
構(gòu),在一個(gè)實(shí)施例中,該體系結(jié)構(gòu)給出了用于在同一處理引擎中處理逐采
樣(SS)或時(shí)域處理算法,以及基于塊的(BB)或頻域算法的統(tǒng)一編程 環(huán)境。該處理引擎可以是包括用于在SS和BB域之間傳遞數(shù)據(jù)的共享存儲(chǔ) 器接口 24 (參見圖5)的DSP 22。例如,可以在BB或頻域處理引擎26 和SS或時(shí)域處理引擎28之間傳遞數(shù)據(jù)。因此,由DSP 22處理的不同效 果可以在不同處理或效果引擎之間被鏈接或傳遞。在圖1所示的處理引擎 22中,為了清楚起見,省略了這種引擎中包括的各種標(biāo)準(zhǔn)組件。本領(lǐng)域技 術(shù)人員將容易地認(rèn)識(shí)到已被省略的標(biāo)準(zhǔn)組件。在一個(gè)實(shí)施例中,DSP模塊 20限定或者形成音頻處理設(shè)備(例如聲卡等)的一部分。因此,DSP模塊 20可以是個(gè)人計(jì)算機(jī)、MP3播放器、便攜式數(shù)字媒體播放器、個(gè)人數(shù)字助 理(PDA)、蜂窩電話,或者用于對(duì)諸如音頻和/或視頻之類的數(shù)字媒體進(jìn) 行處理的任何其他裝置或設(shè)備的一部分。
DSP 22的示例性體系結(jié)構(gòu)可以將具有本地通用寄存器(GPR) 30的 標(biāo)準(zhǔn)DSP編程模塊和X和Y存儲(chǔ)器32組合起來。在一個(gè)實(shí)施例中,與具 有非常大的寄存器空間(例如,通用寄存器30)和用于在其他音頻處理引 擎(其可能是采樣鎖定的)之間傳遞數(shù)據(jù)的緩沖器(例如,采樣速率鎖定 往復(fù)式緩沖器(sample rate locked ping-pong buffers) 34,參見圖1)的逐 采樣編程模塊一起提供有并行地址產(chǎn)生。BB和SS環(huán)境可通過中斷(例 如,低等待時(shí)間采樣速率鎖定中斷36)被鏈接到一起,該中斷對(duì)示例采樣 速率鎖定往復(fù)式緩沖器34的切換進(jìn)行同步。在一個(gè)實(shí)施例中,采樣速率 鎖定中斷36是由采樣鎖定時(shí)基(timebase)模塊38產(chǎn)生的。在一個(gè)實(shí)施 例中,DSP 22、采樣鎖定時(shí)基模塊38和緩沖器34都被集成在單個(gè)VLSI 芯片或電路上。采樣鎖定時(shí)基模塊38和緩沖器34同樣也可以被集成在 DSP 22的電路內(nèi)。
在一個(gè)示例性實(shí)施例中,在共享存儲(chǔ)器環(huán)境40 (參見圖5)中提供對(duì) 多個(gè)軟件DSP效果(例如,混響、回聲、合聲、圖形均衡、空間化等)的 同時(shí)動(dòng)態(tài)分配,該共享存儲(chǔ)器環(huán)境40采用用于DSP 22的線程交織處理器 體系結(jié)構(gòu)。例如,每個(gè)DSP線程可以對(duì)用于SS處理的唯一的或?qū)S玫拇?寄存器組進(jìn)行處理,但是可以通過可以被映射到特定線程的1/0空間中的 采樣速率鎖定往復(fù)式緩沖器34或者通過共享存儲(chǔ)器40 (在傳遞數(shù)據(jù)塊用 于BB處理時(shí)可能有用)通信。從而每個(gè)DSP線程能夠?qū)⒉蓸铀俾舒i定數(shù) 據(jù)發(fā)送和接收到/自另一個(gè)線程,或者例如經(jīng)由音頻總線42或者DMA接 口或控制器44將采樣速率鎖定數(shù)據(jù)發(fā)送和接收到/自DSP 22外的外部采樣 速率鎖定處理引擎。每個(gè)交織線程可以被同一個(gè)低等待時(shí)間采樣鎖定中斷 源(例如中斷36)中斷,以進(jìn)行同步SS處理。共享存儲(chǔ)器環(huán)境40可以被 集成在DSP 22內(nèi),并且可以被映射到DSP的I/O空間中。
在一個(gè)實(shí)施例中,往復(fù)式緩沖器34在其輸入和輸出上是雙緩沖的。 采樣速率鎖定多路復(fù)用器可以對(duì)位于音頻總線42和DSP 22之間的往復(fù)式 緩沖器34進(jìn)行控制,使得在給定的采樣周期中DSP 22和音頻總線42中 只有一個(gè)可以訪問給定的緩沖器。因此,在一個(gè)實(shí)施例中,DSP22和音頻 總線42同時(shí)訪問給定的緩沖器是不允許的。在往復(fù)式緩沖器34中,當(dāng)一 個(gè)緩沖器正接收或發(fā)送新數(shù)字?jǐn)?shù)據(jù)發(fā)送時(shí),另一個(gè)緩沖器保持對(duì)正被操作 的數(shù)據(jù)的先前發(fā)送。
圖1的示例性DSP模塊22可以是線程交織的DSP,其包括嵌套中斷 控制器46,嵌套中斷控制器46接收來自采樣鎖定時(shí)基模塊38的采樣速率 鎖定中斷36 (采樣鎖定中斷通知),采樣鎖定時(shí)基模塊38又被與示例采 樣同步音頻總線42的采樣速率同步(例如,經(jīng)由采樣時(shí)鐘參考)。DSP 22還被耦合到采樣速率鎖定往復(fù)式緩沖器34,具體而言,耦合到其采樣 同步輸入緩沖器48和其采樣同步輸出緩沖器50。輸入和輸出緩沖器48和 50是與前述采樣鎖定中斷36同步地切換的往復(fù)式緩沖器。每個(gè)往復(fù)式緩 沖器48和50的一側(cè)通過I/O數(shù)據(jù)路徑52和54對(duì)DSP 22可見,I/O數(shù)據(jù) 路徑52和54可以通過DSP 22的I/O寄存器圖56被讀取和寫入。每個(gè)往 復(fù)式緩沖器48和50的另一側(cè)對(duì)采樣同步音頻數(shù)據(jù)總線42可見,通過總線
42可以在DSP和其他音頻處理塊或模塊(例如,在VLSI芯片中)之間傳 遞采樣同步數(shù)據(jù)。
在一個(gè)實(shí)施例中,嵌套中斷控制器46允許采樣鎖定中斷先占任何其 他中斷或DSP線程的前臺(tái)活動(dòng),從而導(dǎo)致DSP 22進(jìn)入時(shí)域中斷子例程 (TDISR),在此期間SS處理被執(zhí)行。中斷控制器46的用于這種時(shí)域中 斷子例程的先占特性可以向每個(gè)DSP線程提供有保證的最大中斷等待時(shí) 間。例如,4線程流水線交織DSP體系結(jié)構(gòu)向每個(gè)線程提供了非常低的流 水線等待時(shí)間,可以確保這種最大等待時(shí)間相當(dāng)?shù)?,并且是可預(yù)測(cè)的,這 一般要求3-4線程指令周期。
標(biāo)號(hào)70總地指示根據(jù)本發(fā)明的用于處理時(shí)域或逐采樣數(shù)據(jù)的示例方 法。方法70可以作為響應(yīng)于對(duì)前臺(tái)例程的中斷而被執(zhí)行的后臺(tái)例程。如 判決操作72所示,方法70監(jiān)控中斷(例如,采樣鎖定中斷36)發(fā)生的時(shí) 間,并且如果發(fā)生了,方法70則前進(jìn)到操作74。中斷36可能先占所有其 他DSP中斷和任何DSP線程的前臺(tái)活動(dòng)(參見操作74)。此后,如76所 示,方法70致使DSP進(jìn)入特定線程的時(shí)域中斷子例程。
在時(shí)域中斷子例程中執(zhí)行的功能可能隨效果而不同,并且每個(gè)DSP 22 可以包括多個(gè)不同的子例程,每個(gè)子例程專用于不同的效果。例如,可以 提供用于回聲的時(shí)域中斷子例程,并且可以提供用于混響的另一個(gè)不同的 時(shí)域中斷子例程,等等。每種效果都具有專用的通用寄存器(參見通用寄 存器30),用于處理該效果。返回到判決操作72,在沒有中斷36時(shí),方 法70如操作78所示可繼續(xù)其他前臺(tái)活動(dòng)。
時(shí)域中斷子例程的示例性功能在圖3中示出。如操作80所示, 一旦 接收到中斷通知,就可以從輸入緩沖器48讀入傳入采樣??梢詾槊總€(gè)正 被處理的音頻流讀入一個(gè)傳入采樣。在一個(gè)實(shí)施例中,音頻緩沖器48中 的采樣數(shù)據(jù)針對(duì)每種效果布置,并且因此可以針對(duì)每種效果從輸入緩沖器 48讀入采樣數(shù)據(jù)。此后,利用單獨(dú)引用DSP 22中的塊分配的寄存器位置 的指令代碼,該采樣數(shù)據(jù)被處理(參見操作82)。塊分配寄存器位置可以 不需要保存和恢復(fù)開銷。在一個(gè)實(shí)施例中,DSP22中的非常大(一般 1000+)的寄存器空間使得這種寄存器的專用分配成為可能。如上所述,
塊分配寄存器位置可以針對(duì)每種效果布置。
一旦數(shù)據(jù)采樣被處理,處理后
的采樣就被寫入到音頻輸出緩沖器50,如操作84所示。將認(rèn)識(shí)到,逐采 樣處理的數(shù)據(jù)采樣也可以從DMA控制器44接收到和被寫到DMA控制器 44。 DMA控制器44可以將DSP模塊20接口到個(gè)人計(jì)算機(jī)等中的主機(jī)存 儲(chǔ)器。但是,應(yīng)當(dāng)意識(shí)到在DSP模塊20中包括DMA控制器44是可選 的,數(shù)據(jù)采樣可以僅源自音頻總線42。
在一個(gè)實(shí)施例中,時(shí)域中斷子例程是中斷服務(wù)例程,該中斷訪問例程 在每個(gè)采樣周期中被調(diào)用一次,并且被設(shè)計(jì)為對(duì)于每個(gè)中斷處理每個(gè)音頻 通道的一個(gè)音頻采樣。例如,采樣速率可以是48KHz,但可以意識(shí)到其他 采樣速率也是可以的,并且因此每秒鐘時(shí)域中斷子例程可以被執(zhí)行48000 次。在一個(gè)實(shí)施例中,為了允許每個(gè)采樣周期執(zhí)行有保證的最少數(shù)目的 DSP線程指令,除了前述有保證的最大中斷等待時(shí)間之外,時(shí)域中斷子例 程還具有額外的品質(zhì),即它是優(yōu)先級(jí)最高的中斷,從而不能被任何其他中 斷先占。在一個(gè)實(shí)施例中, 一旦接收到在數(shù)據(jù)總線42上提供的每個(gè)音頻 或數(shù)據(jù)通道的采樣,就產(chǎn)生中斷36。因此,數(shù)據(jù)采樣進(jìn)入DSP 22可以與 數(shù)據(jù)采樣在音頻總線42上傳輸或傳送同步。
在時(shí)域中斷子例程(例如,每種效果一個(gè))在一個(gè)或多個(gè)DSP線程的 后臺(tái)中執(zhí)行的同時(shí),前臺(tái)程序代碼可以專用于等待時(shí)間不那么重要的基于 塊的算法(頻域處理)。基于塊的代碼可以利用標(biāo)準(zhǔn)的DSP結(jié)構(gòu),例如, 循環(huán)、調(diào)用和跳轉(zhuǎn),并且還可以對(duì)優(yōu)先級(jí)比時(shí)域中斷子例程低的其他中斷 作出響應(yīng)。
時(shí)域中斷子例程的最高優(yōu)先級(jí)狀態(tài)在示例性DSP 22的體系結(jié)構(gòu)中可 能具有某些微妙的后果。在一個(gè)實(shí)施例中,DSP22包括專用硬件程序計(jì)數(shù) 器棧(HCPS) 86 (參見圖5) , HCPS 86可以針對(duì)每個(gè)線程單獨(dú)地被分 配。出于成本原因,在某些實(shí)施例中,這些示例性硬件棧86不能如給定 的程序所需的那么大。因此,硬件棧84可能變滿。在每個(gè)線程中可以提 供棧接近滿指令陷阱(trap),用于檢測(cè)硬件棧84接近滿的時(shí)間,并且如 果接近滿的話,可以調(diào)用訪問例程將特定硬件棧84部分清空到存儲(chǔ)器緩 沖器中,以使得可以繼續(xù)利用特定硬件棧86。這可以允許程序計(jì)數(shù)器棧
86擴(kuò)展到存儲(chǔ)器緩沖器允許的任何大小。在一個(gè)實(shí)施例中,僅允許時(shí)域中 斷子例程中斷棧接近滿指令陷阱,以增強(qiáng)時(shí)域中斷子例程的較低的可預(yù)測(cè) 的等待時(shí)間。作為這種情形的必然結(jié)果,在一個(gè)實(shí)施例中,可能不向時(shí)域 中斷子例程提供棧接近滿陷阱,并且時(shí)域中斷子例程不能利用多于固定數(shù) 目的硬件棧位置,其在棧接近滿陷阱被斷言時(shí)必然小于剩余的可用硬件棧 位置的數(shù)目。在一個(gè)實(shí)施例中,時(shí)域中斷子例程代碼的可以加強(qiáng)各自每次 處理一個(gè)采樣的專用寄存器組之間的瞬時(shí)切換的性質(zhì)可以與不要求程序計(jì) 數(shù)器??臻g一致??梢杂|發(fā)棧接近滿陷阱的棧水平可由軟件(例如,軟件 指令)設(shè)置為可調(diào)節(jié)的,以允許在不同的實(shí)施例中對(duì)時(shí)域中斷子例程可用 的棧位置的數(shù)目可以不同。
應(yīng)當(dāng)意識(shí)到,其他方法也可以用于處理較大的棧需求。 一種示例性方
法是使硬件棧86較大,并且不支持超過硬件棧86大小的棧擴(kuò)展。然而, 在這種示例性實(shí)施例中,可能有額外的硬件成本,并且對(duì)于某些軟件環(huán)境 硬件棧可能太小。在另一個(gè)示例性實(shí)施例中,可以不使用棧接近滿中斷, 并且每當(dāng)硬件棧86變滿,示例性DSP控制單元88就可以直接將程序棧值 寫到存儲(chǔ)器和直接從存儲(chǔ)器讀取它們。然而,在棧水平高時(shí)這可能導(dǎo)致 CPU性能降低,并且額外的不能預(yù)測(cè)的等待時(shí)間可能被添加到時(shí)域中斷子
如上所述,采樣同步音頻緩沖器48和50可以是雙向往復(fù)式緩沖器, 并且可以與用于產(chǎn)生時(shí)域中斷36的時(shí)鐘同步地切換。在一個(gè)實(shí)施例中, 緩沖器48和50被實(shí)現(xiàn)為隨機(jī)存取存儲(chǔ)器(RAM),其中高位地址可以選 擇"ping"和"pong"功能。如上所述,DSP 22和采樣同步音頻數(shù)據(jù)總線 42可能總是訪問緩沖器48和55的相對(duì)側(cè)。因此,當(dāng)DSP 22正訪問RAM 地址空間的上半部分時(shí),采樣同步音頻數(shù)據(jù)總線42將正訪問RAM地址空 間的下半部分。在連續(xù)的采樣周期中,DSP 22和采樣同步音頻數(shù)據(jù)總線 42交換地址空間,產(chǎn)生往復(fù)式行為。時(shí)域中斷子例程與對(duì)往復(fù)式緩沖器 48的切換的同步使得DSP 22能夠在采樣周期(其是時(shí)域中斷子例程的長(zhǎng) 度上限)中的任何時(shí)刻訪問傳入采樣,而不管時(shí)域中斷子例程內(nèi)的正訪問 緩沖器48的指令的位置如何。類似地,DSP 22可以在時(shí)域中斷子例程內(nèi)
的任何時(shí)刻對(duì)輸出緩沖器50進(jìn)行寫入。在利用多線程交織DSP的DSP系 統(tǒng)中,采樣同步緩沖器48和50對(duì)于所有線程可以具有全局可見性。
在一個(gè)示例性實(shí)施例中,采樣同步音頻總線輸入和輸出緩沖器48和 50可以具有很大數(shù)目的位置,例如,256或512個(gè)位置,每個(gè)位置可以對(duì) 應(yīng)于一個(gè)音頻流。音頻總線可以包括多個(gè)音頻通道和任何下述采樣同步音 頻總線輸入或輸出通道,所述采樣同步音頻總線輸入或輸出通道沒有正被 用來接收或發(fā)送音頻數(shù)據(jù)采樣,并且沒有正被采樣同步音頻數(shù)據(jù)總線更 新,并且可用作對(duì)所有DSP線程可見的采樣鎖定線程間數(shù)據(jù)通道。這種配 置可以提供一種機(jī)構(gòu)(例如,主要機(jī)構(gòu)),用于在運(yùn)行于不同DSP線程中 的時(shí)域中斷子例程之間傳遞數(shù)據(jù)。當(dāng)未使用的輸出緩沖器通道被用于線程 間數(shù)據(jù)傳遞時(shí),被傳遞的數(shù)據(jù)在被分配用于該輸出緩沖器通道的DSP采樣 同步音頻總線中的釆樣同步音頻總線上可能仍看起來像有效數(shù)據(jù)。應(yīng)當(dāng)意 識(shí)到,被輸出到音頻總線42的數(shù)據(jù)采樣可能隨后經(jīng)由音頻采樣總線42被 返回到DSP22,以便由另一個(gè)不同的DSP線程處理。
被寫到用于線程間數(shù)據(jù)傳遞的可用輸入或輸出采樣同步音頻總線緩沖 器48和50的數(shù)據(jù)在其被寫的采樣周期中的剩余時(shí)間中可能立即對(duì)所有的 線程可見。這種約束可能僅適用于線程間數(shù)據(jù)傳遞,而不適用于如上所述 正被傳遞到和傳遞自采樣同步音頻總線42的數(shù)據(jù)。在從采樣周期開始到 線程向可用緩沖器位置寫的時(shí)間中,根據(jù)所使用的前述雙緩沖往復(fù)式方 案,由另一個(gè)不同DSP線程從同一緩沖器位置讀出的任何數(shù)據(jù)的年齡可能 是兩個(gè)采樣周期。
因此,在每個(gè)DSP線程處理不同效果的實(shí)施例中,線程間傳遞可以被 用來在正被處理的不同效果之間傳遞采樣數(shù)據(jù)。因此,采樣數(shù)據(jù)可以從時(shí) 域處理或者逐采樣效果/算法被傳遞到頻域效果或者基于塊的效果/算法。 一種示例性的頻域效果是音頻清空(clean-up)效果,該效果可以消除音 頻流中的噼啪聲,或者增強(qiáng)音頻頻譜中的某些子帶。
當(dāng)要求對(duì)采樣單元或塊執(zhí)行基于塊的處理時(shí),個(gè)體采樣可以隨后經(jīng)由 音頻總線42被接收到,并且被存儲(chǔ)在DSP 22的存儲(chǔ)器中。當(dāng)包括該塊或 單元的所有數(shù)據(jù)采樣都已被接收到時(shí),該數(shù)據(jù)采樣塊可被處理。例如,時(shí)
域DSP線程可以從音頻總線42讀取個(gè)體采樣,并且將這些采樣每次一個(gè)
地寫到于該線程相關(guān)聯(lián)的循環(huán)緩沖器中。當(dāng)關(guān)聯(lián)的緩沖器已滿時(shí),時(shí)域線
程可以ping或者告知頻域例程數(shù)據(jù)塊可用于頻域處理。從而,在一個(gè)實(shí) 施例中,時(shí)域線程可以收集用于頻域線程的數(shù)據(jù)。類似地,已被DSP22 處理的數(shù)據(jù)塊可以每次一個(gè)采樣地被寫到音頻總線42。此外,頻域算法 (例如,低音增強(qiáng))或過程的輸出數(shù)據(jù)采樣可以作為輸入數(shù)據(jù)采樣被傳遞 到時(shí)域算法或過程(例如,混響)。
具體參考圖6,該圖示出了示例性DSP 22的一個(gè)更詳細(xì)實(shí)施例。DSP 22包括DSP控制單元88、 X和Y存儲(chǔ)器32、通用寄存器30、嵌套中斷控 制器46,以及可選的DMA控制器44。在一個(gè)示例性實(shí)施例中,通用寄存 器30可以是相對(duì)較大的寄存器組,用于存儲(chǔ)多個(gè)音頻通道的數(shù)據(jù)采樣。X 和Y存儲(chǔ)器32可以包括X系數(shù)RAM IOO和X數(shù)據(jù)存儲(chǔ)器102。類似地, X和Y存儲(chǔ)器32也可以包括Y系數(shù)RAM 104和Y數(shù)據(jù)存儲(chǔ)器106。例 如,X系數(shù)RAM IOO和Y系數(shù)RAM 104可以是32位寬,并且X數(shù)據(jù)存 儲(chǔ)器102和Y數(shù)據(jù)存儲(chǔ)器106也可以是32位寬。X和Y存儲(chǔ)器32限定由 頻域和時(shí)域引擎26和28用來處理頻域線程和時(shí)域線程的公共或者共享存 儲(chǔ)器。因此,X和Y存儲(chǔ)器32是共享存儲(chǔ)器,并且允許線程彼此傳遞或 交換采樣數(shù)據(jù)。通用寄存器30包括X通用RAM (X-GPRAM) 108, X、 Y、 A、 B旋轉(zhuǎn)寄存器陣列110,以及Y通用RAM (Y-GPRAM) 112。在 一個(gè)示例性實(shí)施例中,X-GPRAM 108和Y-GPRAM 112是256X32位的。 來自X-GPRAM 108, X、 Y、 A、 B旋轉(zhuǎn)寄存器陣列IIO和Y-GPRAM 112 的輸出被饋送到操作數(shù)多路復(fù)用器114中。在一個(gè)實(shí)施例中,X-GPRAM 108, X、 Y、 A、 B旋轉(zhuǎn)寄存器陣列110和Y-GPRAM 112可以針對(duì)每個(gè) DSP線程布置,并且采樣數(shù)據(jù)被逐采樣地饋送到操作數(shù)選擇多路復(fù)用器 114中。操作數(shù)選擇多路復(fù)用器114為執(zhí)行算術(shù)和邏輯操作的雙路徑流水 線FPU/整數(shù)單元/ALU 116提供饋送,雙路徑流水線FPU/整數(shù)單元/ALU 116又為用于結(jié)果寫回和轉(zhuǎn)發(fā)的電路118提供饋送。處理過的采樣隨后經(jīng) 由I/O數(shù)據(jù)路徑54被寫到采樣同步音頻緩沖器50中的寄存器文件和 RAM。地址發(fā)生器120被連接到DSP控制單元88、中斷控制器46和間隔定 時(shí)器122。 DSP控制單元88還被連接到全局交織指令存儲(chǔ)器124 (例如, 包括頻域和時(shí)域算法),并且還通過總線126被連接到所示各個(gè)功能單元
(例如,效果處理器)。另外,在一個(gè)實(shí)施例中,DSP控制單元88被連 接到DMA控制器44和信號(hào)量(semaphore)寄存器128。作為示例,DSP 控制單元88被示為包括程序計(jì)數(shù)器陣列單元或模塊130、指令取得和解碼 單元或模塊132、操作數(shù)選擇控制單元134、分支控制單元136、并發(fā)移動(dòng) 單元138、分頁(每線程)循環(huán)棧140和分頁(每線程)程序計(jì)數(shù)器
(PC)棧142。
具體參考圖7,標(biāo)號(hào)150總地指示一種根據(jù)本發(fā)明的示例性方法,用 于在DSP 22中執(zhí)行前臺(tái)例程或功能。方法150可以首先(如操作152所 示)執(zhí)行檢查來確定輸入緩沖器48是否填充有要處理的新數(shù)據(jù)。如果 是,則方法然后可以獲得指向適當(dāng)緩沖器的指針(如操作154所示),然 后處理該緩沖器中的該數(shù)據(jù)(見操作156)。此后,如操作158所示,數(shù) 據(jù)被寫回音頻輸出緩沖器50。如上所述,方法150—般用在前臺(tái)循環(huán)中執(zhí) 行頻域算法或者基于塊的算法。此外,當(dāng)DSP22接收到時(shí)域中斷36時(shí), 它退出方法152,并且執(zhí)行后臺(tái)時(shí)域中斷子例程。在一個(gè)實(shí)施例中,方法 150可由DSP 22的線程執(zhí)行,并且可以運(yùn)行類似于"微型操作系統(tǒng)"或者 OS的微內(nèi)核程序,從而控制DSP22的操作。因此,線程可以負(fù)責(zé)路由傳 入采樣流,將每個(gè)流路由到DSP 22的適當(dāng)?shù)男Ч嬉员闾幚?,并且?處理后的采樣流寫或者傳輸回音頻總線42。
具體參見圖8,標(biāo)號(hào)160示出了前臺(tái)例程162和后臺(tái)例程164之間的 示例性交互(另參見圖4)。如上所述,當(dāng)中斷36發(fā)生時(shí),進(jìn)入示例性后 臺(tái)例程。如操作166所示,輸入采樣數(shù)據(jù)被讀入通用寄存器30,并且在一 個(gè)實(shí)施例中,通用寄存器30是針對(duì)每種效果分配的。因此,DSP22處理 的每種效果具有其自己專用的通用寄存器。此后,如操作168和170所 示,每種效果隨后被單獨(dú)地處理。例如,效果1可以在操作168中被處 理,并且在處理該效果時(shí),用于效果1的通用寄存器30可以被讀取,寄 存器中的數(shù)據(jù)采樣可以被處理,然后被寫到通用寄存器輸出。該過程可以
繼續(xù),直到所有效果都已被處理(參見操作170)。
然而,如上所述,數(shù)據(jù)采樣可以在后臺(tái)例程164和前臺(tái)例程162之間 被傳遞。具體而言,數(shù)據(jù)采樣可以從逐采樣處理被傳送到基于塊的處理線 程,如箭頭172總地指示。類似地,數(shù)據(jù)采樣可以從基于塊的處理線程被 傳送到逐采樣處理線程,如箭頭174總地指示。
返回到從逐采樣到基于塊的線程的數(shù)據(jù)傳送(參見箭頭172),在操 作176中,數(shù)據(jù)可以從后臺(tái)例程164被接收到,并且緩沖器收集例程可以 讀通用寄存器30,并且將它們的寄存器中的數(shù)據(jù)采樣拷貝到所提供的共享 存儲(chǔ)器中,例如,X和Y存儲(chǔ)器32中。在一個(gè)示例性實(shí)施例中,緩沖器 可以是循環(huán)緩沖器。此后,如判決操作178所示,確定是否己達(dá)到緩沖器 的末尾,并且如果是,則數(shù)據(jù)傳送例程可以返回到后臺(tái)例程,如線180所 示。但是,如果否,則如操作182所示,指針可以被交換,并且產(chǎn)生信號(hào) 指示新緩沖器應(yīng)當(dāng)被加載,此后,如操作184所示,數(shù)據(jù)傳送例程可以返 回到后臺(tái)例程164。
類似地,利用傳送例程可以實(shí)現(xiàn)從基于塊的算法到逐采樣算法的數(shù)據(jù) 采樣傳送(參見箭頭174)。如操作186所示,緩沖器分派例程可以讀共 享存儲(chǔ)器(例如,X和Y RAM 32),并且例如循環(huán)緩沖器可以將數(shù)據(jù)采 樣寫到通用寄存器30。如判決操作188所示,如果尚未達(dá)到緩沖器的末 尾,則數(shù)據(jù)傳送例程可以返回到后臺(tái)例程164。但是,如果已達(dá)到緩沖器 末尾,則對(duì)于給定的DSP體系結(jié)構(gòu)可以以適當(dāng)?shù)姆绞教幚磉_(dá)到緩沖器末尾 的情形(參見操作190)。此后,可以退出前臺(tái)例程162,并且后臺(tái)例程 164可以再次接手。
DSP模塊22的一種示例性實(shí)現(xiàn)方式在圖9中示出。具體而言,標(biāo)號(hào) 200總地指示根據(jù)本發(fā)明一個(gè)方面的示例性數(shù)字處理設(shè)備的示意性框圖。 設(shè)備200被示為包括多個(gè)處理模塊,S卩,數(shù)字信號(hào)處理(DSP)模塊22、 延遲模塊202、采樣速率轉(zhuǎn)換器(SRC)模塊204、濾波器模塊206和混頻 器模塊208。設(shè)備200還包括數(shù)字音頻輸入/輸出(I/O)模塊210和音頻存 儲(chǔ)器傳輸模塊218。模塊22、 202-210經(jīng)由數(shù)據(jù)路徑212串行互連,數(shù)據(jù) 路徑212被布置為環(huán)形配置,其中數(shù)據(jù)從任一處理模塊順序被傳輸?shù)饺魏?其他處理模塊。不同于傳統(tǒng)數(shù)字處理設(shè)備,根據(jù)本發(fā)明的設(shè)備200允許每
個(gè)模塊22、 202-210與連接到數(shù)據(jù)路徑212的任何其他模塊22、 202-210 進(jìn)行數(shù)據(jù)通信,下面將更詳細(xì)地描述。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)路 徑212是時(shí)分復(fù)用的,其中路由控制器控制各個(gè)模塊22、 202-210之間的 數(shù)據(jù)通信。此外,應(yīng)當(dāng)意識(shí)到,模塊22、 202-210僅是示例性的模塊,并 且其他模塊(具有相同或不同處理能力)也可以被包括在設(shè)備200中,并 且/或者這些模塊中的任何一個(gè)或多個(gè)可以被去除,而其功能例如被包括在 任何其他模塊中。
因此,在一個(gè)實(shí)施例中,模塊22、 202-210中的任何一個(gè)可以在路由 控制器的控制下將數(shù)據(jù)傳輸?shù)狡渌K22、 202-210中的任何一個(gè)或多 個(gè)。因此,正被數(shù)字處理設(shè)備200處理的數(shù)據(jù)可以在不同模塊22、 202-210之間被靈活地路由,并且不需要被限制為像傳統(tǒng)設(shè)備中那樣的預(yù)定通 路。將意識(shí)到,模塊22、 202-210也可以經(jīng)由音頻總線214將數(shù)據(jù)傳輸回 其自身。因此,可由同一個(gè)處理模塊對(duì)數(shù)據(jù)執(zhí)行重復(fù)處理。將數(shù)據(jù)提供到 數(shù)據(jù)路徑212的處理模塊22、 202-210可以被看作源處理模塊,而要對(duì)該 數(shù)據(jù)進(jìn)行處理的特定處理模塊22、 202-210可以被看作目標(biāo)或者目的地處 理模塊。由于處理模塊22、 202-210可以將處理過的數(shù)據(jù)返回到其自身, 因此在一種操作模式中,處理模塊22、 202-210可以定義源和目的地處理 模塊二者。因此,例如,濾波器模塊206可以形成級(jí)聯(lián)濾波器布置,其中 其輸出或者被處理過的數(shù)據(jù)在被發(fā)送到另一個(gè)處理模塊22、 202-210之前 可以被發(fā)送回其自身以便進(jìn)行進(jìn)一步處理。
音頻存儲(chǔ)器傳輸模塊218經(jīng)由總線220與接口模塊222通信,接口模 塊222例如可以形成計(jì)算機(jī)設(shè)備(例如,個(gè)人計(jì)算機(jī)或者說PC)的總線 的一部分。在一個(gè)實(shí)施例中,接口模塊222包括橋接器224和將橋接器 224接口到傳統(tǒng)PC總線228的兩個(gè)PCI-X總線接口 226。數(shù)字I/O模塊 210可以接收數(shù)字音頻輸入,并且提供數(shù)字音頻輸出到輸出設(shè)備。數(shù)據(jù)路 徑212將模塊22、 202-210和218串行互連。
設(shè)備200的數(shù)據(jù)路徑212包括采取音頻數(shù)據(jù)路徑或音頻總線214這一 示例性形式的媒體數(shù)據(jù)路徑(在本實(shí)施例中其對(duì)應(yīng)于圖1中的數(shù)據(jù)總線
42),以及采取參數(shù)總線216這一示例性形式的處理控制路徑。在一個(gè)實(shí) 施例中,音頻總線214和參數(shù)總線216都被布置為環(huán)形配置,其中數(shù)據(jù)以 時(shí)分復(fù)用的方式在各個(gè)處理模塊22、 202-210之間被傳輸。因此,采樣數(shù) 據(jù)可由采樣同步音頻輸入緩沖器48順序接收到,并且被饋送到DSP 22 中。類似地,處理后的采樣數(shù)據(jù)可以從采樣同步音頻輸出緩沖器50被輸 出到音頻總線214。采樣鎖定時(shí)基模塊38可以監(jiān)控音頻總線214,并且在 檢測(cè)到已從音頻環(huán)或總線214讀出的數(shù)據(jù)采樣的完整循環(huán)時(shí)輸出其中斷 36。由于各個(gè)模塊沿音頻總線214布置,所以音頻數(shù)據(jù)可以在模塊之間路 由,而不要求該數(shù)據(jù)通過中央集線器(例如,DSP22)被路由。在某些實(shí) 施例中,設(shè)備200包括傳輸總線215,傳輸總線215經(jīng)由音頻存儲(chǔ)器傳輸 模塊218將外部計(jì)算機(jī)接口到處理模塊22、 208-210。
為了控制在數(shù)據(jù)路徑212 (包括例如音頻總線214、參數(shù)總線216和 傳輸總線215)上路由數(shù)據(jù),在某些實(shí)施例中設(shè)備200包括主機(jī)接口或路 由控制器230 (參見圖10),路由控制器230對(duì)沿?cái)?shù)據(jù)路徑212路由數(shù)據(jù) 進(jìn)行控制。具體而言,如標(biāo)號(hào)232總地指示,在一個(gè)實(shí)施例中,路由控制 器230對(duì)經(jīng)由片選線路236和地址、寫數(shù)據(jù)和寫使能線路238將數(shù)據(jù)路由 到每個(gè)處理模塊22、 202-210和218進(jìn)行控制。每個(gè)模塊22、 202-210和 218經(jīng)由讀數(shù)據(jù)和確認(rèn)線路240將數(shù)據(jù)傳輸?shù)街鳈C(jī)接口或路由控制器 230。在一個(gè)實(shí)施例中,路由控制器230限定使用完全同步握手方法并接 口到設(shè)備200的各個(gè)處理模塊22、 202-210和218的主機(jī)接口。例如,路 由控制器230可以產(chǎn)生片選信號(hào),該片選信號(hào)被保持活動(dòng)直到從所選中的 處理模塊22、 202-210和218接收到確認(rèn)信號(hào)為止。在一個(gè)實(shí)施例中,路 由控制器230對(duì)主機(jī)地址的最高有效位進(jìn)行解碼,并且響應(yīng)于此產(chǎn)生片選 信號(hào),該片選信號(hào)使能所選中的處理模塊22、 202-210和218。每個(gè)模塊 22、 202-210和218可以在本地對(duì)主機(jī)地址的有效的剩余最低有效位進(jìn)行 解碼,從而標(biāo)識(shí)出數(shù)據(jù)要被路由到的特定模塊22、 202-210和218。
在本發(fā)明的一個(gè)實(shí)施例中,DSP模塊被以下述方式接口到路由控制器 230:該方式使得DSP模塊22可以訪問在模塊22、 202-210和218中每一 個(gè)中設(shè)置的寄存器和隨機(jī)存取存儲(chǔ)器(RAM)。具體而言,如圖11所
示,DSP模塊22可以經(jīng)由數(shù)據(jù)總線242、地址總線244、確認(rèn)線路248、 寫使能線路250、請(qǐng)求線路252和片選線路254與路由控制器230通信。 為了訪問可能在模塊202-210和218中設(shè)置的寄存器和RAM, DSP模塊 22經(jīng)由線路252傳輸請(qǐng)求到路由控制器230。路由控制器230隨后可以經(jīng) 由確認(rèn)線路248對(duì)該請(qǐng)求作出確認(rèn),此后可以利用地址總線244和數(shù)據(jù)總 線242執(zhí)行所請(qǐng)求的功能。
在在數(shù)字音頻I/O模塊210內(nèi)設(shè)置了采樣速率跟蹤器的實(shí)施例中,其 也可以被接口到路由控制器230,從而提供對(duì)模塊22、 202-210和218中 的寄存器和/或RAM的訪問。在一個(gè)實(shí)施例中,設(shè)備200具有兩個(gè)基址寄 存器, 一個(gè)映射到I/O,另一個(gè)映射到存儲(chǔ)器。這兩個(gè)寄存器可以同時(shí)是 活動(dòng)的,并且兩個(gè)地址寄存器可以允許訪問其上設(shè)置著設(shè)備200的芯片的 相同內(nèi)部寄存器和存儲(chǔ)器。
在本發(fā)明的一個(gè)實(shí)施例中,音頻總線214提供時(shí)分復(fù)用的音頻通道。 每個(gè)處理模塊22、 202-210和218可以具有分配給其的固定輸出時(shí)隙和可 編程或可變輸入時(shí)隙。因此,在這種實(shí)施例中,模塊22、 202-210和218 在路由控制器230控制下,可以始終在相同的預(yù)定時(shí)隙中輸出數(shù)據(jù)到音頻 總線214,而在不同的時(shí)隙中接收數(shù)據(jù)。因此,由于與每個(gè)模塊22、 202-210和218相關(guān)聯(lián)的輸入時(shí)隙是可編程的,所以可以以靈活的方式在各個(gè) 模塊22、 202-210和218之間路由數(shù)據(jù)。通道標(biāo)識(shí)總線可以被提供來標(biāo)識(shí) 時(shí)隙被關(guān)聯(lián)到的模塊22、 202-210和218。在一個(gè)實(shí)施例中,通道標(biāo)識(shí)總 線標(biāo)識(shí)源處理模塊22、 202-210和218,并且目標(biāo)或目的地處理模塊22、 202-210和218包括用于標(biāo)識(shí)將要被處理的數(shù)據(jù)來自的數(shù)據(jù)源的列表。然 而,應(yīng)當(dāng)意識(shí)到,通道標(biāo)識(shí)也可以標(biāo)識(shí)目標(biāo)處理模塊22、 202-210和 218。在一個(gè)實(shí)施例中,通道標(biāo)識(shí)可被采樣鎖定時(shí)基模塊38監(jiān)控,以在來 自每個(gè)通道的采樣被接收到之后產(chǎn)生中斷36。因此,在接收到新的采樣組 或群(對(duì)每個(gè)通道提供一個(gè)采樣)之前,已產(chǎn)生了中斷36。因此,如上所 述,DSP 22隨后將利用例如時(shí)域中斷子例程對(duì)采樣數(shù)據(jù)組進(jìn)行處理。因 此,對(duì)經(jīng)由音頻總線42接收到的數(shù)據(jù)采樣進(jìn)行時(shí)域處理或著逐采樣處理 可以與經(jīng)由音頻總線214傳輸數(shù)據(jù)同步。就此而言,往復(fù)式緩沖器48和
50可以在每次產(chǎn)生中斷36時(shí)翻轉(zhuǎn)。在一個(gè)示例性實(shí)施例中,圖1的音頻 總線42 (例如,對(duì)應(yīng)于圖9中的音頻總線214)可被視為類似于包括多個(gè) 數(shù)據(jù)通道的數(shù)據(jù)采樣的循環(huán)緩沖器,并且一旦每個(gè)通道的數(shù)據(jù)采樣已被讀 取,該"循環(huán)緩沖器"就巻繞。就此示例而言,可以產(chǎn)生中斷36,以提供 采樣同步數(shù)據(jù)到DSP 22。
在某些實(shí)施例中,設(shè)備200允許數(shù)字?jǐn)?shù)據(jù)(例如,數(shù)字音頻數(shù)據(jù))以 不同的采樣速率(例如,由DSP模塊22設(shè)置的采樣速率)沿音頻總線 214被傳輸。例如,在本發(fā)明的一個(gè)實(shí)施例中,在音頻總線214上提供 4096個(gè)緩沖通道或者時(shí)隙。在這種示例性配置中,音頻總線214可以通過 為48 kHz分配一個(gè)時(shí)隙、為96 kHz分配兩個(gè)時(shí)隙、為192 kHz分配四個(gè) 時(shí)隙并且為384 kHz分配八個(gè)時(shí)隙,來支持最高達(dá)384 kHz的采樣速率。 因此,由于在給定的采樣中有總共4096個(gè)通道或者時(shí)隙,因此僅2048個(gè) 通道或時(shí)隙在96 kHz下可用,1024個(gè)時(shí)隙在192 kHz下可用,512個(gè)時(shí)隙 在384 kHz下可用。但是,應(yīng)當(dāng)意識(shí)到,在設(shè)備200工作期間,在任何給 定時(shí)刻用于每種采樣速率的時(shí)隙數(shù)可以不同,并且例如可能發(fā)生以下情 形提供3348個(gè)48 kHz時(shí)隙、提供204個(gè)96 kHz時(shí)隙,并且提供85個(gè) 192kHz時(shí)隙。但是,各種配置(例如,比特速率)或者時(shí)隙數(shù)目可以根 據(jù)要由設(shè)備200執(zhí)行的功能而變。例如,在其他實(shí)施例中,可以提供可編 程操作時(shí)鐘頻率。例如,可以提供150MHz、 175 MHz和200 MHz的時(shí)鐘 頻率,分別對(duì)應(yīng)于20072、 3584和4096個(gè)時(shí)隙。然而,應(yīng)當(dāng)意識(shí)到,這 些僅是頻率和時(shí)隙的示例,并且它們可能隨實(shí)施例不同而改變。因此,在 一個(gè)實(shí)施例,媒體數(shù)據(jù)路徑可能包括用于以多種不同的比特速率傳輸媒體 數(shù)據(jù)的多個(gè)時(shí)隙,其中分配給這多種比特速率中每種的時(shí)隙數(shù)目的總和等 于時(shí)隙總數(shù)。采樣鎖定時(shí)基模塊210將產(chǎn)生中斷36作為依賴于音頻總線 214上的采樣速率的頻率。
在某些實(shí)施例中,任意的采樣速率(例如,44.1 kHz的CD標(biāo)準(zhǔn))可 以利用指示符位(例如,有效位)經(jīng)由音頻總線46被傳輸或路由,其中 指示符位向接收模塊22、 202-210和218指示新的有效采樣將從音頻總線 214被取得或提取以用于處理。當(dāng)任意的采樣速率(例如,44.1 kHz采樣
速率)經(jīng)由音頻總線214被傳輸,并且示例性有效位為高時(shí),相應(yīng)模塊
22、 202-210和218可以將數(shù)據(jù)作為有效數(shù)據(jù)接受。反之,當(dāng)有效位變低 時(shí),模塊22、 202-210和218從而被告知后續(xù)采樣可以不考慮。
盡管在一個(gè)實(shí)施例中,可變采樣速率可以經(jīng)由音頻總線214被傳輸, 但是參數(shù)總線216可以以獨(dú)立于音頻總線214的采樣速率的固定采樣速率 (例如,48 kHz)傳輸控制數(shù)據(jù)。
在一個(gè)實(shí)施例中,音頻總線214傳輸將由各個(gè)模塊22、 202-210和 218處理的音頻數(shù)據(jù)。然而,參數(shù)總線216包括參數(shù)或處理數(shù)據(jù),該數(shù)據(jù) 由關(guān)聯(lián)模塊22、 202-210和218用來定義關(guān)聯(lián)模塊22、 202-210和218的 功能(例如,算法)。因此,控制數(shù)據(jù)從而可以控制特定模塊22、 202-210和218將如何處理音頻總線214上的數(shù)據(jù)。例如,參數(shù)總線214可以 用來將濾波器參數(shù)傳輸?shù)綖V波器模塊206,將采樣速率轉(zhuǎn)換器參數(shù)傳輸?shù)?采樣速率轉(zhuǎn)換器模塊204,將延遲數(shù)據(jù)傳輸?shù)较薅ㄒ纛l數(shù)據(jù)將被延遲的期 間的模塊202,等等。因此,逐采樣或者基于時(shí)間的算法數(shù)據(jù)和基于塊的 算法數(shù)據(jù)可以被傳輸?shù)紻SP 22以執(zhí)行所選算法。
將意識(shí)到,為了減少設(shè)備200中的任何處理等待時(shí)間,參數(shù)數(shù)據(jù)應(yīng)當(dāng) 在每個(gè)特定處理模塊22、 202-210和218將輸出處理過的音頻數(shù)據(jù)之前被 提供給每個(gè)處理模塊22、 202-210和218。因此,參數(shù)數(shù)據(jù)在音頻數(shù)據(jù)經(jīng) 由音頻總線214到達(dá)特定處理模塊22、 202-210和218之前經(jīng)由參數(shù)總線 216被傳輸?shù)教囟ㄌ幚砟K22、 202-210和218。
本發(fā)明延伸到包括在被機(jī)器(例如,PC、處理器等)執(zhí)行時(shí)致使該機(jī) 器執(zhí)行這里所述的任何功能的指令/軟件的機(jī)器可讀介質(zhì)(例如, RAM)。在本說明書中,術(shù)語"機(jī)器可讀介質(zhì)"應(yīng)當(dāng)被理解為包括能夠存 儲(chǔ)或者編碼用于由機(jī)器執(zhí)行并且致使該機(jī)器執(zhí)行本發(fā)明的任何方法之一的 指令序列的任何介質(zhì)。因此,術(shù)語"機(jī)器可讀介質(zhì)"應(yīng)當(dāng)被理解為包括但 不限于固態(tài)存儲(chǔ)器、光盤和磁盤以及載波信號(hào)。
因此,已描述了用于處理數(shù)字媒體流的方法和設(shè)備。盡管結(jié)合對(duì)數(shù)字 音頻流形式的數(shù)字媒體流的處理描述了本發(fā)明,但是應(yīng)當(dāng)意識(shí)到本發(fā)明可 以適用于處理任何其他數(shù)字媒體流,例如數(shù)字視頻流等。此外,盡管已結(jié)
合特定示例性實(shí)施例描述了本發(fā)明,但是很明顯在不脫離本發(fā)明寬廣的精 神和范圍的情況下,可以對(duì)這些實(shí)施例作出修改和改變。因此,說明書和 附圖應(yīng)當(dāng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種用于處理數(shù)字采樣的數(shù)字處理器,該處理器包括時(shí)域處理引擎,用于在時(shí)域中處理數(shù)字采樣;頻域處理引擎,用于在頻域中處理數(shù)字采樣;在所述數(shù)字處理器中設(shè)置的共享存儲(chǔ)器,利用所述共享存儲(chǔ)器可交換經(jīng)時(shí)域處理的采樣和經(jīng)頻域處理的采樣。
2. 如權(quán)利要求1所述的處理器,其中,所述時(shí)域處理引擎以逐采樣方 式處理數(shù)據(jù)采樣,并且所述頻域處理引擎以基于塊的方式處理數(shù)據(jù)采樣。
3. 如權(quán)利要求1所述的處理器,其中,所述時(shí)域處理引擎和所述頻域 處理引擎被集成在數(shù)字信號(hào)處理器(DSP)芯片中。
4. 如權(quán)利要求3所述的處理器,其中,所述共享存儲(chǔ)器是所述DSP芯 片上設(shè)置的X和Y隨機(jī)存取存儲(chǔ)器(RAM)。
5. 如權(quán)利要求1所述的處理器,包括將所述處理器接口到數(shù)字采樣總 線的至少一個(gè)輸入/輸出緩沖器,所述數(shù)字采樣總線將所述數(shù)字采樣提供給 所述處理器并且從所述處理器接收經(jīng)處理的數(shù)字采樣。
6. 如權(quán)利要求5所述的處理器,其中,所述數(shù)字采樣總線是采樣同步 的數(shù)字音頻總線和數(shù)字視頻總線之一。
7. 如權(quán)利要求6所述的處理器,其中,所述數(shù)字采樣總線在多個(gè)時(shí)隙 中傳輸所述數(shù)字采樣,所述多個(gè)時(shí)隙將數(shù)據(jù)采樣提供給所述處理器和從所 述處理器接收數(shù)據(jù)采樣。
8. 如權(quán)利要求5所述的處理器,包括用于從所述數(shù)字采樣總線接收數(shù) 據(jù)采樣的輸入緩沖器和用于將數(shù)據(jù)采樣提供給所述數(shù)字采樣總線的輸出緩 沖器。
9. 如權(quán)利要求8所述的處理器,其中,所述輸入緩沖器和輸出緩沖器 是往復(fù)式緩沖器。
10. 如權(quán)利要求9所述的處理器,包括基于所述數(shù)字采樣總線產(chǎn)生中 斷的中斷發(fā)生器,其中所述輸入緩沖器響應(yīng)于所述中斷將輸入數(shù)據(jù)采樣傳 輸?shù)剿鎏幚砥?,并且所述輸出緩沖器響應(yīng)于所述中斷將輸出數(shù)據(jù)采樣傳 輸?shù)剿鰯?shù)字采樣總線。
11. 如權(quán)利要求5所述的處理器,其中,所述數(shù)字采樣被逐采樣地在所述DSP和所述數(shù)字采樣總線之間交換。
12. 如權(quán)利要求1所述的處理器,其中,所述處理器是線程交織數(shù)字 信號(hào)處理器(DSP),并且數(shù)字采樣可經(jīng)由所述共享存儲(chǔ)器在所述時(shí)域處 理引擎的線程和所述頻域處理引擎之間交換。
13. 如權(quán)利要求1所述的處理器,包括輸入緩沖器和輸出緩沖器,其 中所述處理器-從數(shù)字采樣總線有選擇地提取數(shù)字采樣以進(jìn)行處理,所述數(shù)字采樣是 在分配給所述處理器的所述數(shù)字采樣總線的至少一個(gè)時(shí)隙中提供的; 有選擇地將經(jīng)處理的數(shù)字采樣插入分配給其的時(shí)隙中;并且 沿所述數(shù)字采樣總線不加改變地傳遞其接收到的并且與其他處理設(shè)備 相關(guān)聯(lián)的數(shù)字采樣。
14. 如權(quán)利要求1所述的處理器,其 以逐采樣方式累積來自數(shù)字采樣總線的數(shù)字采樣; 標(biāo)識(shí)已接收到一塊數(shù)字采樣的時(shí)間;在已接收到一個(gè)完整的塊后在所述頻域中處理所述塊;并且 將經(jīng)處理的采樣塊以逐采樣方式傳輸?shù)剿鰯?shù)字采樣總線。
15. 如權(quán)利要求1所述的處理器,其中,頻域處理在前臺(tái)例程中執(zhí) 行,并且時(shí)域處理在后臺(tái)例程中執(zhí)行,響應(yīng)于中斷進(jìn)入所述后臺(tái)例程。
16. 如權(quán)利要求15所述的處理器,其中,所述數(shù)字采樣總線是以環(huán)形 配置布置的時(shí)分復(fù)用總線。
17. 如權(quán)利要求16所述的處理器,其中,所述數(shù)字采樣總線包括 由時(shí)分復(fù)用時(shí)隙限定的多個(gè)媒體通道;以及包括用來向所述處理器標(biāo)識(shí)每個(gè)媒體通道的通道標(biāo)識(shí)數(shù)據(jù)的通道標(biāo)識(shí) 路徑。
18. 如權(quán)利要求17所述的處理器,包括用來標(biāo)識(shí)所述處理器接收到來 自每個(gè)通道的數(shù)字采樣的時(shí)間的標(biāo)識(shí)符,其中所述中斷響應(yīng)于所述標(biāo)識(shí)符 而被產(chǎn)生。
19. 如權(quán)利要求1所述的處理器,其中,所述處理器被設(shè)置在數(shù)字音頻處理設(shè)備的超大規(guī)模集成電路(VLSI)中。
20. —種用于數(shù)字處理器中處理數(shù)據(jù)采樣的方法,該方法包括 在設(shè)置在所述數(shù)字處理器中的共享存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)采樣存儲(chǔ); 在時(shí)域中對(duì)在所述共享存儲(chǔ)器中提供的數(shù)字采樣進(jìn)行處理;以及 在頻域中對(duì)在所述共享存儲(chǔ)器中提供的數(shù)字采樣進(jìn)行處理,其中經(jīng)時(shí)域處理的采樣和經(jīng)頻域處理的采樣可經(jīng)由所述共享存儲(chǔ)器交換。
21. 如權(quán)利要求20所述的方法,其中,在時(shí)域處理期間,數(shù)據(jù)采樣以 逐采樣方式被處理,并且在頻域中,數(shù)據(jù)采樣以基于塊的方式被處理。
22. 如權(quán)利要求20所述的方法,包括在單個(gè)集成數(shù)字信號(hào)處理器 (DSP)芯片中在所述時(shí)域和所述頻域數(shù)據(jù)中處理數(shù)據(jù)采樣。
23. 如權(quán)利要求20所述的方法,其中,所述共享存儲(chǔ)器是所述DSP芯 片上設(shè)置的X和Y隨機(jī)存取存儲(chǔ)器(RAM),該方法包括在所述RAM和 時(shí)域處理引擎之間以及所述RAM和頻域處理引擎之間交換采樣數(shù)據(jù)。
24. 如權(quán)利要求20所述的方法,包括經(jīng)由至少一個(gè)輸入/輸出緩沖器將 所述處理器接口到數(shù)字采樣總線,所述輸入/輸出緩沖器將所述數(shù)字采樣提 供給所述處理器并且從所述處理器接收經(jīng)處理的數(shù)字采樣。
25. 如權(quán)利要求24所述的方法,其中,所述數(shù)字采樣總線是采樣同步 的數(shù)字音頻總線和數(shù)字視頻總線之一。
26. 如權(quán)利要求25所述的方法,包括在多個(gè)時(shí)隙中在所述處理器和所 述采樣總線之間傳輸所述數(shù)字采樣,所述多個(gè)時(shí)隙將數(shù)據(jù)采樣提供給所述 處理器和從所述處理器接收數(shù)據(jù)采樣。
27. 如權(quán)利要求24所述的方法,包括從所述數(shù)字采樣總線經(jīng)由輸入緩 沖器接收數(shù)據(jù)采樣和經(jīng)由輸出緩沖器將數(shù)據(jù)采樣提供給所述數(shù)字采樣總 線。
28. 如權(quán)利要求27所述的方法,其中,所述輸入緩沖器和輸出緩沖器 是往復(fù)式緩沖器。
29. 如權(quán)利要求28所述的方法,包括基于所述數(shù)字采樣總線產(chǎn)生中 斷,其中所述輸入緩沖器響應(yīng)于所述中斷將輸入數(shù)據(jù)采樣傳輸?shù)剿鎏幚?器,并且所述輸出緩沖器響應(yīng)于所述中斷將輸出數(shù)據(jù)采樣傳輸?shù)剿鰯?shù)字 采樣總線。
30. 如權(quán)利要求24所述的方法,其中包括在所述處理器和所述數(shù)字采 樣總線之間逐采樣地交換數(shù)字采樣。
31. 如權(quán)利要求20所述的方法,其中,所述處理器是線程交織數(shù)字信 號(hào)處理器(DSP),并且該方法包括經(jīng)由所述共享存儲(chǔ)器在時(shí)域處理引擎 的線程和頻域處理引擎之間交換數(shù)字采樣。
32. 如權(quán)利要求20所述的方法,其中所述處理器包括輸入緩沖器和輸 出緩沖器,該方法包括從數(shù)字采樣總線有選擇地提取數(shù)字采樣以進(jìn)行處理,所述數(shù)字采樣是 在分配給所述處理器的所述數(shù)字采樣總線的至少一個(gè)時(shí)隙中提供的; 有選擇地將經(jīng)處理的數(shù)字采樣插入分配給其的時(shí)隙中;并且 沿所述數(shù)字采樣總線不加改變地傳遞其接收到的并且與其他處理設(shè)備 相關(guān)聯(lián)的數(shù)字采樣。
33. 如權(quán)利要求20所述的方法,包括 以逐采樣方式累積來自數(shù)字采樣總線的數(shù)字采樣; 標(biāo)識(shí)己接收到一塊數(shù)字采樣的時(shí)間;在己接收到一個(gè)完整的塊后在所述頻域中處理所述塊;并且 將經(jīng)處理的采樣塊以逐采樣方式傳輸?shù)剿鰯?shù)字采樣總線。
34. 如權(quán)利要求20所述的方法,包括 在前臺(tái)例程中執(zhí)行頻域處理; 在后臺(tái)例程中執(zhí)行時(shí)域處理;以及 響應(yīng)于中斷進(jìn)入所述后臺(tái)例程。
35. 如權(quán)利要求34所述的方法,包括以環(huán)形配置將所述數(shù)字采樣總線 布置為時(shí)分復(fù)用總線。
36. 如權(quán)利要求35所述的方法,包括在時(shí)分復(fù)用時(shí)隙中提供多個(gè)媒體通道;以及提供包括用來向所述處理器標(biāo)識(shí)每個(gè)媒體通道的通道標(biāo)識(shí)數(shù)據(jù)的通道 標(biāo)識(shí)路徑。
37. 如權(quán)利要求36所述的方法,包括標(biāo)識(shí)所述處理器接收到來自每個(gè) 通道的數(shù)字采樣的時(shí)間,并且響應(yīng)于所述標(biāo)識(shí)符而產(chǎn)生所述中斷。
38. 如權(quán)利要求20所述的方法,其中,該方法是在數(shù)字音頻處理設(shè)備 的超大規(guī)模集成電路(VLSI)中執(zhí)行的。
39. —種機(jī)器可讀介質(zhì),該機(jī)器可讀介質(zhì)包含在被所述機(jī)器執(zhí)行時(shí)致 使所述機(jī)器執(zhí)行以下步驟的指令序列在設(shè)置在數(shù)字處理器中的共享存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)采樣; 在時(shí)域中對(duì)在所述共享存儲(chǔ)器中提供的數(shù)字采樣進(jìn)行處理;以及在頻域中對(duì)在所述共享存儲(chǔ)器中提供的數(shù)字采樣進(jìn)行處理,其中經(jīng)時(shí) 域處理的采樣和經(jīng)頻域處理的采樣可經(jīng)由所述共享存儲(chǔ)器交換。
40. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所示指令致使所述機(jī) 器在時(shí)域處理期間以逐采樣方式處理數(shù)據(jù)采樣,并且在頻域處理期間以基 于塊的方式處理數(shù)據(jù)采樣。
41. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī) 器在單個(gè)集成數(shù)字信號(hào)處理器(DSP)芯片中在所述時(shí)域和所述頻域中處 理數(shù)據(jù)采樣。
42. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述共享存儲(chǔ)器是所 述DSP芯片上設(shè)置的X和Y隨機(jī)存取存儲(chǔ)器(RAM),并且所述指令致 使所述機(jī)器在所述RAM和時(shí)域處理引擎之間以及所述RAM和頻域處理 引擎之間交換采樣數(shù)據(jù)。
43. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī) 器在多個(gè)時(shí)隙中在所述處理器和采樣總線之間傳輸所述數(shù)字采樣,所述多 個(gè)時(shí)隙將數(shù)據(jù)采樣提供給所述處理器和從所述處理器接收數(shù)據(jù)采樣。
44. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī) 器基于數(shù)字采樣總線產(chǎn)生中斷,并且其中輸入緩沖器響應(yīng)于所述中斷將輸 入數(shù)據(jù)采樣傳輸?shù)剿鎏幚砥?,輸出緩沖器響應(yīng)于所述中斷將輸出數(shù)據(jù)采 樣傳輸?shù)剿鰯?shù)字采樣總線。
45. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī) 器在所述處理器和所述數(shù)字采樣總線之間逐采樣地交換數(shù)字采樣。
46. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述處理器是線程交 織數(shù)字信號(hào)處理器(DSP),并且其中所述指令致使所述機(jī)器經(jīng)由所述共 享存儲(chǔ)器在時(shí)域處理引擎的線程和頻域處理引擎之間交換數(shù)字采樣。
47. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī)器以逐采樣方式累積來自數(shù)字采樣總線的數(shù)字采樣; 標(biāo)識(shí)已接收到一塊數(shù)字采樣的時(shí)間;在已接收到一個(gè)完整的塊后在所述頻域中處理所述塊;并且 將經(jīng)處理的采樣塊以逐采樣方式傳輸?shù)剿鰯?shù)字采樣總線。
48. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī)器在前臺(tái)例程中執(zhí)行頻域處理; 在后臺(tái)例程中執(zhí)行時(shí)域處理;以及 響應(yīng)于中斷進(jìn)入所述后臺(tái)例程。
49. 如權(quán)利要求39所述的機(jī)器可讀介質(zhì),其中,所述指令致使所述機(jī)器在時(shí)分復(fù)用時(shí)隙中提供多個(gè)媒體通道;提供包括用來向所述處理器標(biāo)識(shí)每個(gè)媒體通道的通道標(biāo)識(shí)數(shù)據(jù)的通道 標(biāo)識(shí)路徑;以及標(biāo)識(shí)所述處理器接收到來自每個(gè)通道的數(shù)字采樣的時(shí)間,并且響應(yīng)于 所述標(biāo)識(shí)符而產(chǎn)生所述中斷。
全文摘要
本發(fā)明提供了用于處理數(shù)字采樣的方法和數(shù)字處理器。該處理器(20)可以包括用于在時(shí)域中處理數(shù)字采樣的時(shí)域處理引擎和用于在頻域中處理數(shù)字采樣的頻域處理引擎。在該處理器(20)中設(shè)置有共享存儲(chǔ)器(34),利用該共享存儲(chǔ)器可交換經(jīng)時(shí)域處理的采樣和經(jīng)頻域處理的采樣。時(shí)域處理引擎可以以逐采樣的方式處理數(shù)據(jù)采樣,而頻域處理引擎以基于塊的方式處理數(shù)據(jù)采樣。處理引擎可以被集成在單個(gè)DSP芯片中。提供了產(chǎn)生中斷的中斷發(fā)生器,輸入緩沖器響響應(yīng)于中斷將輸入數(shù)據(jù)采樣傳輸?shù)教幚砥?,并且輸出緩沖器響應(yīng)于中斷將輸出數(shù)據(jù)采樣傳輸?shù)綌?shù)字采樣總線。
文檔編號(hào)G06F7/00GK101185057SQ200580021126
公開日2008年5月21日 申請(qǐng)日期2005年6月22日 優(yōu)先權(quán)日2004年6月23日
發(fā)明者卡爾·K·威克蘭德 申請(qǐng)人:創(chuàng)新科技有限公司