用于处理音频文件的波形获取单元的制作方法

文档序号:2831740阅读:266来源:国知局
专利名称:用于处理音频文件的波形获取单元的制作方法
技术领域
本发明涉及音频装置,且更确切地说,涉及基于例如乐器数字接口 (MIDI)等音频格式产生音频输出的音频装置。
背景技术
乐器数字接口 (MIDI)是用于产生、传送及/或回放例如音乐、话音、音调、警报及其类似物的音频声音的格式。支持MIDI格式回放的装置可存储可用以产生各种"语音"的音频信息的集合。每一语音可对应于一个或一个以上声音,例如由特定器具产生的音符。举例来说,第一语音可对应于如由钢琴演奏的中音C,第二语音可对应于如由长号演奏的中音C,第三语音可对应于如由长号演奏的D弁音,等等。为了复制由特定器具演奏的音符,兼容MIDI的装置可包括指定各种音频特征(例如低频振荡器的行为、例如颤音等效果及可影响对声音的感知的许多其它音频特征)的语音信息的集合。可界定、在MIDI文件中输送并由支持MIDI格式的装置重现几乎任何声音。
支持MIDI格式的装置可在指示装置应开始产生音符的事件发生时产生音符(或其它声音)。类似地,装置在指示装置应停止产生音符的事件发生时停止产生音符。可通过指定指示特定语音何时应开始及停止的事件而根据MIDI格式对整个音乐作品进行编码。以此方式,可以根据MIDI格式的紧凑文件格式来存储及传输音乐作品。
多种装置中支持MIDI。举例来说,例如无线电电话等无线通信装置可支持用于例如铃声或其它音频输出等可下载的声音的MIDI文件。例如苹果计算机有限公司(AppleComputer, Inc)售卖的"iPod"装置及微软公司(Microsoft Corporation)售卖的"Zune"装置等数字音乐播放器也可支持MIDI文件格式。其它支持MIDI格式的装置可包括各种音乐合成器、无线移动装置、直接双向通信装置(有时称为对讲机)、网络电话、个 人计算机、桌上型及膝上型计算机、工作站、卫星无线电装置、内部通信装置、无线电 广播装置、手持型游戏装置、安装在装置中的电路板、信息查询站(information kiosk)、 视频游戏控制台、各种儿童计算机化玩具、用于汽车、船只及飞机中的机载计算机及多 种其它装置。

发明内容
大体而言,本发明描述用于处理音频文件的技术。尽管所述技术对于其它音频格式、 技术或标准可为有用的,但是所述技术对于遵照乐器数字接口 (MIDI)格式的音频文件 的回放可尤为有用。在本文中使用时,术语MIDI文件指代含有符合MIDI格式的至少 一个音轨的任何文件。根据本发明,技术利用操作以代表多个硬件处理元件中的每一者
检索波形样本的波形获取单元,所述多个硬件处理元件同时操作以服务于从例如MIDI 文件等一个或一个以上音频文件产生的各种音频合成参数。
在一方面中,本发明提供一种方法,其包含从音频处理元件接收对于波形样本的请 求及通过以下操作而服务于所述请求基于所述请求中所含有的相位增量及与所请求的 波形样本相关联的音频合成参数控制字而计算所请求的波形样本的波形样本号码,使用 所述波形样本号码从本地高速缓冲存储器检索波形样本,及将检索的波形样本发送到请 求音频处理元件。
在另一方面中,本发明提供一种装置,其包含从音频处理元件接收对波形样本的请 求的音频处理元件接口、获得与所请求的波形样本相关联的音频合成参数控制字的合成 参数接口、用于存储所请求的波形样本的本地高速缓冲存储器。所述装置进一步包含获 取单元,其基于所述请求中所含有的相位增量及音频合成参数控制字而计算所请求的波 形样本的波形样本号码,且使用所述波形样本号码从本地高速缓冲存储器检索波形样 本。所述音频处理元件接口将检索的波形样本发送到请求音频处理元件。
在另一方面中,本发明提供一种装置,其包含用于从音频处理元件接收对于波形样 本的请求的装置、用于获得与所请求的波形样本相关联的音频合成参数控制字的装置及 用于存储所请求的波形样本的装置。所述装置进一步包含用于基于所述请求中所含有的 相位增量及所述音频合成参数控制字而计算所请求的波形样本的波形样本号码的装置、 用于使用所述波形样本号码从本地高速缓冲存储器检索波形样本的装置及用于将检索 的波形样本发送到请求音频处理元件的装置。
在另一方面中,本发明提供一种包含指令的计算机可读媒体,所述指令在于一个或一个以上处理器中执行时致使所述一个或一个以上处理器从音频处理元件接收对于波 形样本的请求,且服务于所述请求。服务于所述请求可包括基于所述请求中所含有的相 位增量及与所请求的波形样本相关联的音频合成参数控制字而计算所请求的波形样本 的波形样本号码,使用所述波形样本号码从本地高速缓冲存储器检索波形样本,及将检 索的波形样本发送到请求音频处理元件。
在另一方面中,本发明提供一种电路,其适于从音频处理元件接收对于波形样本的 请求且服务于所述请求,其中服务于所述请求包括基于所述请求中所含有的相位增量及 与所请求的波形样本相关联的音频合成参数控制字而计算所请求的波形样本的波形样 本号码,使用所述波形样本号码从本地高速缓冲存储器检索波形样本,及将检索的波形 样本发送到请求音频处理元件。
在附图和以下描述中陈述本发明的一个或一个以上方面的细节。根据描述和图式并 根据权利要求书将明白本发明的其它特征、目的和优势。


图1是说明可实施根据本发明的用于处理音频文件的技术的示范性音频装置的框图。
图2是根据本发明的用于处理音频合成参数的硬件单元的一个实例的框图。
图3是说明根据本发明的波形获取单元的示范性架构的框图。
图4到图5是说明与本发明的教示相一致的示范性技术的流程图。
具体实施例方式
本发明描述用于处理音频文件的技术。尽管所述技术可与利用合成参数的其它音频 格式、技术或标准一起使用,但所述技术对于遵照乐器数字接口 (MIDI)格式的音频文 件的回放可尤为有用。在本文中使用时,术语MIDI文件指含有符合MIDI格式的至少 一个音轨的任何音频数据或文件。可包括MIDI音轨的各种文件格式的实例包括(例如) CMX、 SMAF、 XMF、 SP-MIDI。 CMX代表由高通有限公司(Qualcomm Inc.)开发的 紧凑媒体扩展。SMAF代表由雅马哈公司(Yamaha Corp.)开发的合成音乐移动应用格 式。XMF代表可扩展音乐格式且SP-MIDI代表可縮放复调MIDI。
可在可包括音频信息或音频-视频(多媒体)信息的音频帧内在装置之间输送MIDI 文件或其它音频文件。音频帧可包含单个音频文件、多个音频文件或(可能) 一个或一个以上音频文件和例如经编码视频帧等其它信息。在本文中使用时,可将音频帧内的任 何音频数据称为音频文件,其包括串流音频数据或上文列出的一个或一个以上音频文件 格式。根据本发明,技术利用波形获取单元(WFU),所述波形获取单元代表多个处理 元件(例如,在专用MIDI硬件单元内)中的每一者检索波形样本。
所描述的技术可改进对例如MIDI文件等音频文件的处理。所述技术可将不同任务 分离到软件、固件和硬件中。通用处理器可执行软件以剖析音频帧的音频文件且借此识 别时序参数,且对与音频文件相关联的事件进行调度。接着可由DSP以同步方式(如由 音频文件中的时序参数所指定)服务于经调度的事件。通用处理器以时间同步方式向 DSP分派事件,且DSP根据时间同步调度来处理所述事件以产生合成参数。DSP接着 对硬件单元的处理元件对合成参数的处理进行调度,且硬件单元可使用处理元件、WFU
及其它组件基于合成参数产生音频样本。
根据本发明,由WFU响应于处理元件的请求而检索的确切波形样本取决于由处理 元件供应的相位增量以及当前相位。WFU检查波形样本是否经高速缓存、检索波形样 本且可在将波形样本返回到请求处理元件之前执行数据格式化。将波形样本存储于外部 存储器中,且WFU使用高速缓存策略以减轻总线阻塞。
图1是说明示范性音频装置4的框图。音频装置4可包含能够处理MIDI文件(例 如,包括至少一个MIDI音轨的文件)的任何装置。音频装置4的实例包括无线通信装 置,例如无线电电话、网络电话、数字音乐播放器、音乐合成器、无线移动装置、直接 双向通信装置(有时称为对讲机)、个人计算机、桌上型或膝上型计算机、工作站、卫 星无线电装置、内部通信装置、无线电广播装置、手持型游戏装置、安装于装置中的电 路板、査询站装置、视频游戏控制台、各种儿童计算机化玩具、视频游戏控制台、用于 汽车、船只或飞机中的机载计算机或多种其它装置。
提供图1中所说明的各种组件来解释本发明的方面。然而,在一些实施方案中,可 能存在其它组件,且可能不包括所说明的组件中的一些。举例来说,如果音频装置4为 无线电电话,则可包括天线、发射器、接收器和调制解调器(调制器-解调器)以促进音 频文件的无线传送。
如图1的实例中所说明,音频装置4包括音频存储单元6以存储MIDI文件。同样, MIDI文件一般指包括以MIDI格式编码的至少一个音轨的任何音频文件。音频存储单元 6可包含任何易失性或非易失性存储器或存储装置。出于本发明的目的,可将音频存储 单元6视为将MIDI文件转发到处理器8的存储单元,或者处理器8从音频存储单元6 检索MIDI文件,以使得所述文件得以处理。当然,音频存储单元6还可为与数字音乐播放器相关联的存储单元或与从另一装置进行信息传递相关联的临时存储单元。音频存 储单元6可为经由数据总线或其它连接耦合到处理器8的单独的易失性存储器芯片或非 易失性存储装置。可包括存储器或存储装置控制器(未图示)以促进信息从音频存储单 元6的传递。
根据本发明,装置4实施在软件、硬件和固件之间分离MIDI处理任务的架构。确 切地说,装置4包括处理器8、 DSP12和音频硬件单元14。这些组件中的每一者可(例 如)直接或经由总线耦合到存储器单元10。处理器8可包含执行软件以剖析MIDI文件 且对与MIDI文件相关联的MIDI事件进行调度的通用处理器。经调度的事件可以时间 同步方式向DSP 12分派且借此由DSP 12以同步方式(如由MIDI文件中的时序参数所 指定)服务。DSP12根据通用处理器8所产生的时间同步调度来处理MIDI事件以产生 MIDI合成参数。DSP12还可对由音频硬件单元14对MIDI合成参数进行的后续处理进 行调度。音频硬件单元14基于合成参数产生音频样本。
处理器8可包含多种通用单芯片或多芯片微处理器中的任一者。处理器8可实施 CISC (复杂指令集计算机)设计或RISC (精简指令集计算机)设计。 一般来说,处理 器8包含执行软件的中央处理单元(CPU)。实例包括来自例如因特尔公司(Intel Corporation),苹果计算机有限公司(Apple Computer, Inc)、太阳微系统有限公司(Sun Microsystems Inc.)、高级微型装置(AMD)有限公司(Advanced Micro Devices (AMD) Inc.)等公司的16位、32位或64位微处理器。其它实例包括来自例如国际商业机器(IBM) 公司(International Business Machines (IBM) Corporation)、红帽有限公司(RedHat Inc.) 等公司的基于Unix或基于Linux的微处理器。通用处理器可包含可购自ARM有限公司 (ARM Inc.)的ARM9,且DSP可包含由高通有限公司(Qualcomm Inc.)开发的QDSP4 DSP。
处理器8可服务于第一帧(帧N)的MIDI文件,且当第一帧(帧N)由DSP12服 务时,第二帧(帧N+1)可同时由处理器8服务。当第一帧(帧N)由音频硬件单元14 服务时,第二帧(帧N+1)同时由DSP 12服务,同时第三帧(帧N+2)由处理器8服 务。以此方式,将MIDI文件处理分离为可同时处理的管线化级,此可改进效率且可能 减少给定级所需的计算资源。举例来说,DSP12可相对于在没有处理器8或MIDI硬件 14的辅助下执行完整MIDI算法的常规DSP而得到简化。
在一些情况下,(例如)经由中断驱动技术将MIDI硬件14所产生的音频样本传递 回DSP12。在此情况下,DSP还可对音频样本执行后处理技术。DAC16将数字音频样 本转换为模拟信号,所述模拟信号可由驱动电路18用以驱动扬声器19A及19B以用于向用户输出音频声音。
对于每一音频帧,处理器8读取一个或一个以上MIDI文件且可从MIDI文件提取 MIDI指令。基于这些MIDI指令,处理器8对MIDI事件进行调度以用于由DSP 12处 理,且根据此调度将向DSP 12分派MIDI事件。具体来说,由处理器8进行的此调度可 包括与MIDI事件相关联的时序的同步,所述时序同步可基于MIDI文件中所指定的时 序参数来识别。MIDI文件中的MIDI指令可指令特定MIDI语音开始或停止。其它MIDI 指令可涉及触后效果、呼吸控制效果、程序改变、音高折曲(pitch bend)效果、例如左 右摇动(pan)等控制消息、延音踏板(sustain pedal)效果、主音量控制、例如时序参 数等系统消息、例如灯光效果提示(cue)等MIDI控制消息及/或其它声音效果。在对 MIDI事件进行调度之后,处理器8可将调度提供到存储器10或DSP 12以使得DSP 12 可处理所述事件。或者,处理器8可通过以时间同步方式向DSP12分派MIDI事件而执 行调度。
存储器10可被构造成使得处理器8、 DSP 12及MIDI硬件14可存取执行委派给这 些不同组件的各种任务所需的任何信息。在一些情况下,可对MIDI信息在存储器10 中的存储布局进行布置以允许从不同组件8、 12及14进行有效存取。
当DSP 12从处理器8 (或从存储器IO)接收到经调度的MIDI事件时,DSP 12可处 理MIDI事件以便产生可被存储回存储器10中的MIDI合成参数。同样,由处理器8调 度这些MIDI事件由DSP服务的时序,此通过消除DSP 12执行此些调度任务的需要而 产生效率。因此,DSP 12可在处理器8正对下一音频帧的MIDI事件进行调度的同时服 务于第一音频帧的MIDI事件。音频帧可包含时间块(例如,10毫秒(ms)的间隔), 其可包括若干音频样本。举例来说,数字输出可每帧产生480个样本,可将所述样本转 换为模拟音频信号。许多事件可对应于一个时间实例以使得许多音符或声音可根据 MIDI格式包括于一个时间实例中。当然,委派给任何音频帧的时间量以及每帧的样本 的数目在不同实施方案中可变化。
一旦DSP 12已产生MIDI合成参数,音频硬件单元14便基于合成参数产生音频样 本。DSP 12可对由音频硬件单元14对MIDI合成参数进行的处理进行调度。由音频硬 件单元4产生的音频样本可包含脉冲编码调制(PCM)样本,所述样本是对以规律间 隔取样的模拟信号的数字表示。下文参看图2论述由音频硬件单元14进行的示范性音 频产生的额外细节。
在一些情况下,可能需要对音频样本执行后处理。在此情况下,音频硬件单元14 可向DSP 12发送中断命令以指令DSP12执行所述后处理。后处理可包括滤波、缩放、音量调节或可最终增强声音输出的多种音频后处理。
在后处理之后,DSP 12可将经后处理的音频样本输出到数/模转换器(DAC) 16。 DAC 16将数字音频信号转换为模拟信号且将模拟信号输出到驱动电路18。驱动电路18 可放大信号以驱动一个或一个以上扬声器19A及19B来产生可听的声音。
图2是说明可对应于图1的音频装置4的音频硬件单元14的示范性音频硬件单元 20的框图。图2所示的实施方案仅为示范性的,因为依照本发明的教示还可界定其它 MIDI硬件实施方案。如图2的实例中所说明,音频硬件单元20包括用以发送和接收数 据的总线接口 30。举例来说,总线接口 30可包括AMBA高性能总线(AHB)主接口、 AHB从属接口和存储器总线接口。 AMBA代表高级微处理器总线架构。或者,总线接 口 30可包括AXI总线接口或另一类型的总线接口。 AXI代表高级可扩展接口。
另外,音频硬件单元20可包括协调模块32。协调模块32协调音频硬件单元20内 的数据流。当音频硬件单元20从DSP 12 (图1)接收到开始合成音频样本的指令时, 协调模块32读取音频帧的合成参数(其由DSP12 (图1)产生)。这些合成参数可用以 重建音频帧。对于MIDI格式,合成参数描述给定帧内的一个或一个以上MIDI语音的 各种声音特征。举例来说,MIDI合成参数的集合可指定谐振级、混响、音量和/或可影 响一个或一个以上语音的其它特征。
在协调模块32的指导下,可将合成参数直接从存储器单元10 (图1)加载到与相 应处理元件34A或34N相关联的语音参数集合(VPS) RAM 46A或46N中。在DSP 12 (图1)的指导下,将程序指令从存储器10加载到与相应处理元件34A或34N相关联的 程序RAM单元44A或44N中。
加载到程序RAM单元44A或44N中的指令指令相关联的处理元件34A或34N合 成VPS RAM单元46A或46N中的合成参数的列表中所指示的语音中的一者。可能存在 任何数目的处理元件34A到34N (统称为"处理元件34"),且每一者可包含能够执行 数学运算的一个或一个以上ALU以及用以读取和写入数据的一个或一个以上单元。为 简单起见仅说明两个处理元件34A和34N,但硬件单元20中可包括许多更多处理元件。 处理元件34可以彼此并行的方式合成语音。确切地说,所述多个不同处理元件34并行 工作以处理不同合成参数。以此方式,音频硬件单元20内的多个处理元件34可加速且 可能增加所产生的语音的数目,借此改进音频样本的产生。
当协调模块32指令处理元件34中的一者合成语音时,处理元件34中的相应者可 执行由合成参数界定的一个或一个以上指令。而且,可将这些指令加载到程序RAM单 元44A或44N中。加载到程序RAM单元44A或44N中的指令使得处理元件34中的相应者执行语音合成。举例来说,处理元件34可将对合成参数中所指定的波形的请求发 送到波形获取单元(WFU) 36。处理元件34中的每一者可使用WFU 36。处理元件34 中的每一者可使用WFU 36。如果两个或两个以上处理元件34同时请求使用WFU 36, 则WFU 36使用仲裁方案以解决任何冲突。
基于音高增量、音高包络及LFO到音高参数,处理元件34计算给定语音的给定样 本的相位增量且将相位增量发送到WFU 36。 WFU 36计算波形中的计算当前输出样本 的内插值所需的样本索引。WFU 36还计算内插所需的分数相位且将其发送到请求处理 元件34。 WFU 36经设计以使用高速缓存策略来最小化对存储器单元10的存取且借此 减轻总线接口 30的阻塞。
响应于来自处理元件34中的一者的请求,WFU 36向请求处理元件返回一个或一个 以上波形样本。然而,因为波可在样本内相移(例如,高达一个波循环),所以WFU36 可返回两个样本以使用内插来补偿相移。此外,因为立体声信号可包括用于两个立体声 通道的两个单独的波,所以WFU 36可返回用于不同通道的单独样本,(例如)从而产 生立体声输出的高达四个单独样本。
在一个实例实施方案中,可在存储器单元10内组织波形以使得WFU 36能够在必 须存取存储器单元10之前再使用较大数目的波形样本。每八音度存储一个基本波形样 本,从其可内插八音度内的每隔一个音符。对应于八音度中具有八音度中的较高频率中 的一者(在一些情况下为最高频率)的音符来选择每八音度的基本波形样本。因此,为 了产生八音度中的其它音符而必须获取的数据的量得以减小。此技术可使得与将样本音 符放置于八音度中的较低频率范围中的情况相比,经高速缓存的波形样本命中次数较 多,从而使得对总线接口 30的带宽要求降低。可在选择适当音符时应用听觉测试,以 确保八音度中从存储于存储器单元10中的基本波形样本产生的其它音符的可接受的声 音质量。
在WFU 36将音频样本返回到处理元件34中的一者之后,相应处理元件(PE)可 基于音频合成参数执行额外程序指令。确切地说,指令使得处理元件34中的一者从音 频硬件单元20中的低频振荡器(LFO) 38请求不对称三角波。通过使WFU 36返回的 波形乘以LFO 38返回的三角波,相应处理元件可操纵波形的各种声音特征以实现所要 的音频效果。举例来说,使波形乘以三角波可产生听起来更像所要乐器的波形。
基于合成参数执行的其它指令可使得处理元件34中的相应者使波形循环特定次数、 调节波形的振幅、添加混响、添加颤音效果或造成其它效果。以此方式,处理元件34 可计算持续一个MIDI帧的语音的波形。最后,相应处理元件可能会遇到退出指令。当处理元件34中的一者遇到退出指令时,所述处理元件向协调模块32发信号通知语音合 成的结束。可在程序指令的执行期间在另一存储指令的指导下将所计算的语音波形提供 到求和缓冲器40。此使得求和缓冲器40存储所计算的语音波形。
当求和缓冲器40从处理元件34中的一者接收到所计算的波形时,求和缓冲器40 将所计算的波形添加到与MIDI帧的整体波形相关联的适当时间实例。因此,求和缓冲 器40组合多个处理元件34的输出。举例来说,求和缓冲器40最初可存储平顶波(即, 所有数字样本均为零的波)。当求和缓冲器40从处理元件34中的一者接收到例如所计 算的波形等音频信息时,求和缓冲器40可将所计算的波形的每一数字样本添加到存储 于求和缓冲器40中的波形的相应样本。以此方式,求和缓冲器40累加并存储完整音频 帧的波形的整体数字表示。
求和缓冲器40主要对来自处理元件34中的不同者的不同音频信息进行求和。不同 音频信息指示与不同的所产生的语音相关联的不同时间实例。以此方式,求和缓冲器40 产生表示给定音频帧内的整体音频编辑的音频样本。
最后,协调模块32可确定处理元件34已完成合成当前MIDI帧所需要的所有语音 且已将那些语音提供到求和缓冲器40。此时,求和缓冲器40含有指示当前MIDI帧的 完整波形的数字样本。在协调模块32作出此确定时,协调模块32向DSP12 (图l)发 送中断。响应于中断,DSP 12可经由直接存储器交换(DME)向求和缓冲器40中的控 制单元(未图示)发送请求以接收求和缓冲器40的内容。或者,DSP12还可经预编程 以执行DME。 DSP 12可接着在将数字音频样本提供到DAC 16以用于转换到模拟域中 之前对数字音频样本执行任何后处理。重要的是,由音频硬件单元20关于帧N+2执行 的处理与由DSP 12 (图1)关于帧N+1进行的合成参数产生和由处理器8 (图1)关于 帧N进行的调度操作同时发生。
图2中还展示高速缓冲存储器48、 WFU/LFO存储器39和链接列表存储器42。高 速缓冲存储器48可由WFU 36用来以快速且有效的方式获取基本波形。WFU/LFO存储 器39可由协调模块32用以存储语音参数集合的语音参数。以此方式,可将WFU/LFO 存储器39视为专用于波形获取单元36和LFO 38的操作的存储器。链接列表存储器42 可包含用以存储由DSP 12产生的语音指示符的列表的存储器。语音指示符可包含指向 存储于存储器10中的一个或一个以上合成参数的指针。列表中的每一语音指示符可指 定存储相应MIDI语音的语音参数集合的存储器位置。图2中所示的各种存储器和存储 器的布置仅为示范性的。可用多种其它存储器布置实施本文所描述的技术。
图3是根据本发明的图2的WFU 36的一个实例的框图。如图3所示,WFU 36可包括仲裁器52、合成参数接口 54、获取单元56及高速缓冲存储器58。 WFU 36经设计 以使用高速缓存策略来最小化对外部存储器的存取且借此减轻总线阻塞。如下文进一步 详细描述的,仲裁器54可使用经修改的循环仲裁方案来处置从多个音频处理元件34接 收的请求。
WFU 36从音频处理元件34中的一者接收到对波形样本的请求。所述请求可指示待 添加到当前相位以获得新相位值的相位增量。新相位值的整数部分用于产生待获取的波 形样本的物理地址。将相位值的分数部分反馈到音频处理元件34以用于内插。由于例 如MIDI合成等特定音频处理在跳到下一样本之前大量地使用邻近样本,因此对波形样 本的高速缓存有助于降低音频硬件单元20对总线接口 30的带宽要求。WFU 36还支持 多种音频脉冲编码调制(PCM)格式,例如8位单声道、8位立体声、16位单声道或16 位立体声。WFU 36可在将波形样本返回到音频处理元件34之前将波形样本重新格式化 为统一PCM格式。举例来说,WFU36可以16位立体声格式返回波形样本。
使用合成参数接口 54从合成参数RAM (例如,在WFU/LFO存储器39 (图2)内) 获取波形特定合成参数。波形特定合成参数可包括(例如)循环开始及循环结束指示符。 作为另一实例,波形特定合成参数可包括合成语音寄存器(SVR)控制字。波形特定合 成参数影响WFU36如何服务于波形样本请求。举例来说,WFU36使用SVR控制字来 确定波形样本是循环还是非循环("一次通过(one-shot)")的,此又影响WFU36如何 计算用于将波形样本定位于高速缓冲存储器58或外部存储器中的波形样本号码。
合成参数接口 54从WFU/LFO存储器39检索波形特定合成参数,且WFU 36可在 本地缓冲波形特定合成参数以降低合成参数接口 54上的活动性。在WFU 36可服务于 来自音频处理元件34中的一者的请求之前,WFU 36必须使对应于音频处理元件34所 请求的波形的合成参数得到本地缓冲。合成参数仅在给予音频处理元件34中的相应者 另一语音来合成或由协调模块32指令合成参数接口 54使合成参数无效时变得无效。因 此,在仅所请求的波形样本的格式已从一个请求到下一请求变化(例如,从单声道变为 立体声或从8位变为16位)时,WFU36无需对合成参数进行重新编程。如果WFU36 未针对相应音频处理元件的请求使得有效合成参数受到缓冲,则仲裁器52可将所述请 求转移(bump)到最低优先权且获取单元56可服务于合成参数为有效(亦即,对应于 所请求的波形的合成参数经缓冲)的另一音频处理元件34。 WFU36可继续转移音频处 理元件的相应请求,直到合成参数接口 54已检索并本地缓冲对应合成参数。以此方式, 可避免不必要的停止,因为WFU36无需在继续移动到一请求之前等待无效合成参数变 为有效,而是替代地可转移具有无效合成参数的请求且继续移动以服务于合成参数为有效的其它请求。
合成参数接口 54可使任一音频处理元件34的合成参数无效(但不将其擦除)。如 果获取单元56及合成参数接口 54同时对不同音频处理元件34起作用,则不会出现问 题。然而,在合成参数接口 54及获取单元56两者正对同一音频处理元件34的波形特 定合成参数起作用(亦即,获取单元56正读取合成参数值,同时合成参数接口54正试 图盖写所述合成参数值)的情况下,获取单元56将优先,从而使得合成参数接口 54 — 直阻塞(block)到获取单元56的操作完成为止。因此,来自合成参数接口 54的合成参 数无效请求仅在对于所述音频处理元件34的当前运行的获取单元56操作(如果存在) 已完成时才将生效。合成参数接口 54可实施合成参数的循环缓冲。
WFU 36可针对音频处理元件34中的每一者维持高速缓冲存储器58内的单独高速 缓存空间。因此,在WFU 36从服务于音频处理元件34中的一者切换到另一者时不存 在上下文切换。高速缓冲存储器58的大小可设置为线大小=16字节,集合=1,路=1。 获取单元56检查高速缓冲存储器58以确定所需波形样本是否处于高速缓冲存储器58 内。当发生高速缓冲存储器未中时,获取单元56可基于指向基本波形样本的当前指针 及波形样本号码计算所需数据在外部存储器内的物理地址,且将从外部存储器获取波形 样本的指令放置于队列中。所述指令可包括所计算的物理地址。检索模块57检査队列, 且在发现队列中的从外部存储器检索高速缓冲存储器线的指令之后,检索模块57起始 突发请求以用来自外部存储器的数据替代高速缓冲存储器58内的当前高速缓冲存储器 线。当检索模块57已从外部存储器检索高速缓冲存储器线时,获取单元56接着完成请 求。检索模块57可负责从外部存储器检索突发数据以及处置对高速缓冲存储器58的写 入操作。检索模块57可为与获取单元56分离的有限状态机。因此,获取单元56可在 检索模块57检索高速缓冲存储器线的同时自由处置来自音频处理元件34的其它请求。 因此,可由WFU36服务于导致高速缓冲存储器命中及高速缓冲存储器未中两者的请求, 只要所述请求的合成参数有效且音频处理元件接口 50不繁忙即可。视实施方案而定, 检索模块57可从高速缓冲存储器48 (图2)或存储器单元10 (图1)检索高速缓冲存 储器线。
在其它实施例中,仲裁器52可基于请求的多少波形样本已存在于高速缓冲存储器 内而允许获取单元56服务于音频处理元件请求。举例来说,仲裁器52可在所请求的波 形样本当前不存在于高速缓冲存储器58内时将请求转移到最低优先权,借此服务于波 形样本较早存在于高速缓冲存储器58中的请求。为了防止音频处理元件34在其所请求 的波形样本不存在于高速缓冲存储器内的情况下过饥(亦即,其请求从未得到服务),仲裁器52可将经转移的请求标记为"跳过"。当跳过请求第二次出现时,跳过旗标充当 最优先以防止仲裁器52再次转移所述请求,且可从外部存储器检索波形。在需要时, 可使用增大优先权的若干旗标以允许由仲裁器52进行的多次跳过。
仲裁器52负责仲裁从音频处理元件34传入的请求。获取单元56执行确定返回哪 些样本所需的计算。仲裁器52使用经修改的循环仲裁方案。在被复位时,WFU36向音 频处理元件34中的每一者指派默认优先权,例如,音频处理元件34A为最高且音频处 理元件34N为最低。最初使用标准循环仲裁器来仲裁请求。然而,未必准予此最初仲裁 的胜者存取获取单元56。替代地,检查所述请求以观察其SVR数据是否有效,及对应 音频处理元件接口 50是否繁忙。组合这些检查以产生"优胜"条件。在一些实施例中, 针对优胜条件可能需要额外检査。如果发生优胜条件,则音频处理元件的请求受到服务。 如果对于特定请求未发生优胜条件,则仲裁器52将音频处理元件的请求向下转移且继 续移动而以类似方式检査下一音频处理元件请求。在请求的SVR数据无效或音频处理 元件接口 50繁忙的情况下,可无限地转移请求,因为不能针对所述请求进行任何计算。 因此,将所述循环仲裁称为"经修改的",因为音频处理元件请求在其合成参数无效或 其音频处理元件接口繁忙的情况下可能不受到服务。
WFU 36也可在测试模式中操作,其中WFU 36执行严格循环功能性。亦即,仲裁 器52使得请求以从音频处理元件34A、音频处理元件34B、…、音频处理元件34N返 回到音频处理元件34A等等的次序受到服务。此在功能性上与正常模式不同,因为在正 常模式中,即使音频处理元件34A具有最高优先权,如果音频处理元件34A没有请求 且音频处理元件34B有请求,则WFU 36服务于音频处理元件34B。
一旦音频处理元件34成功地在仲裁中优胜,即可将请求分解为两个部分检索第 一波形样本(表示为Z。及检索第二波形样本(表示为Z2)。当请求从PE进入时,获 取单元56将请求中提供的相位增量添加到当前相位,从而导致具有整数分量及分数分 量的最终相位。视实施方案而定,可使和饱和或允许其翻转(亦即,循环缓冲)。如果 对于所述请求存在优胜条件,则获取单元56将分数相位分量发送到请求音频处理元件 34的音频处理元件接口 50。使用整数相位分量,获取单元56用以下方式计算Z!。如果 波形类型为一次通过(亦即,如由SVR控制字所确定为非循环),则获取单元56将Z! 计算为等于整数相位分量。如果波形类型为循环的且不存在过冲(overshoot),则获取 单元56将Z,计算为等于整数相位分量。如果波形类型为循环的且存在过冲,则获取单 元56将Zt计算为等于整数相位分量减去循环长度。
一旦获取单元56已计算Z,,获取单元56即确定当前在高速缓冲存储器58中是否
22高速缓存对应于Z,的波形样本。如果发生高速缓冲存储器命中,则获取单元56从高速 缓冲存储器58检索波形样本且将其发送到请求处理元件的音频处理元件接口 50。在高 速缓冲存储器未中的情况下,获取单元56将从外部存储器获取波形样本的指令放置于 队列中。检索模块57检查队列,且在发现队列中从外部存储器检索高速缓冲存储器线 的指令之后,检索模块57即开始对外部存储器的突发读取且接着用在突发读取期间检 索的内容替代当前高速缓冲存储器线。所属领域的技术人员将认识到,在高速缓冲存储 器未中的情况下(其中标记号码并非与队列中的标记号码相同的值),检索模块57可在 替代当前高速缓冲存储器线之前在WFU36内部的另一存储器中执行突发读取。另一存 储器可为高速缓冲存储器。作为一实例,高速缓冲存储器58可为L1高速缓冲存储器且 另一存储器可为L2高速缓冲存储器。因此,检索模块57于何处执行突发读取可取决于 存储器的位置(在WFU 36内部还是外部)及高速缓存策略。获取单元56可在检索模 块57检索高速缓冲存储器线的同时自由处置来自音频处理元件34的其它请求。因为波 形査找值是只读的,所以获取单元56可在检索模块57从外部存储器检索新高速缓冲存 储器线时丢弃任何现有高速缓冲存储器线。在整数相位分量过冲且波形为一次通过的情 况下,获取单元56可将0x0作为样本发送到音频处理元件接口 50。 一旦获取单元34已 将对应于Z!的波形样本发送到请求音频处理元件接口 50,获取单元56即对波形样本
Z2执行类似操作,其中基于Z!而计算Z2。
对于每一请求,获取单元56可返回至少两个波形样本,每一循环返回一者。在立 体声波形的情况下,获取单元56可返回四个波形样本。另外,获取单元56可在音频处 理元件34的实施方案需要分数相位以用于内插的情况下返回分数相位。音频处理元件 接口 50将波形样本推出到音频处理元件34。虽然被说明为单个音频处理元件接口 50, 但音频处理元件接口 50在一些情况下可针对音频处理元件34中的每一者包括单独实 例。音频处理元件接口 50可针对音频处理元件34中的每一者使用寄存器的三个集合 用于存储分数相位的十六位寄存器及分别用于存储第一样本及第二样本的两个三十二 位寄存器。当音频处理元件34在仲裁中优胜且由获取单元56服务时,由音频处理元件 接口 50寄存分数相位。音频处理元件接口 50可开始将数据推到适当音频处理元件34 而无需等待所有数据可用,仅在下一所需数据片段尚不可用时停止。
在一个实例实施方案中,可由一同工作的多个无限状态机(FSM)控制WFU 36。 举例来说,WFU 36可针对音频处理元件接口 50 (用于管理数据从WFU 36到音频处理 元件34的迁移)、获取单元56 (用于与高速缓冲存储器58介接)、检索模块57 (用于 与外部存储器介接)、合成参数接口 54 (用于与合成参数RAM介接)及仲裁器52 (用于对从音频处理元件传入的请求进行仲裁且执行确定返回哪些样本所需的计算)中的每一者包括单独的FSM。通过对于获取波形样本及对于管理数据从WFU 36到音频处理元件34的传递使用单独的FSM,仲裁器52在音频处理元件接口 50正传递波形样本的同时得到释放以服务于其它请求音频处理元件。当获取单元56确定所请求的波形样本不处于高速缓冲存储器58中时,获取单元56将从外部存储器接收高速缓冲存储器线的指令置于队列中且接着自由服务于下一请求,同时检索模块57从外部存储器检索高速缓冲存储器线。当获取单元56从高速缓冲存储器58、内部缓冲器或外部存储器接收数据时,并非获取单元56将数据推到请求音频处理元件,而是获取单元56将数据推到对应音频处理元件接口50,借此允许获取单元56继续移动且服务于另一请求。此避免信号交换(handshaking)成本及在音频处理元件未立即确认数据时的任何相关联的延迟。
图4是说明与本发明的教示相一致的示范性技术的流程图。仲裁器52使用经修改的循环仲裁方案对来自音频处理元件34的针对波形样本的传入请求进行仲裁。WFU 36向音频处理元件34中的每一者指派默认优先权,例如,其中音频处理元件34A为最高且音频处理元件34N为最低。当请求正等待受到服务(60)时,仲裁器52使用标准循环仲裁方案来选择下一待服务的音频处理元件。如果等待的请求对应于紧接着受到服务的音频处理元件(62),则接着针对优胜条件来检查请求(64)。举例来说,可针对波形样本的合成参数数据是否有效(亦即,经本地缓冲)及对应的音频处理元件接口 50是否繁忙而检査请求。组合所有这些检查以产生优胜条件。如果发生优胜条件(64的"是"分支),则获取单元56服务于音频处理元件的请求(66)。其它实施例可具有不同检査。
在请求的合成参数无效及/或音频处理元件接口 50繁忙的情况下(64的"否"分支),仲裁器52可将请求转移到最低优先权,因为不能对所述请求进行任何计算(66)。通过使用此技术,WFU 36以及时方式服务于导致高速缓冲存储器命中的请求及导致高速缓冲存储器未中的请求两者。
图5是说明与本发明的教示相一致的示范性技术的流程图。当请求在仲裁中优胜(80)时,WFU 36可如下而服务于请求。获取单元56将请求中所提供的相位增量添加到当前相位,从而产生具有整数分量及分数分量的最终相位(82)。获取单元56接着将待推到请求音频处理元件34以用于内插的分数相位分量发送到音频处理元件接口 50(84)。如上文所提及,WFU 36可向请求音频处理元件返回多个波形样本(例如)以考虑相移或多个通道。获取单元56使用整数相位分量来计算波形样本的波形样本号码(86)。当波形类型为一次通过(亦即,如由SVR控制字所确定为非循环)时,获取单元56将第一波形(Z,)计算为等于整数相位分量。如果波形类型为循环的且不存在过冲,则获取单元56将Z,计算为等于整数相位分量。如果波形类型为循环的且存在过冲,则获取单元56将Z,计算为等于整数相位分量减去循环长度。
一旦获取单元56己计算Z!,获取单元56即确定当前在高速缓冲存储器58中是否高速缓存对应于波形样本号码Z,的波形样本(88)。可通过对照识别当前高速缓存的波形样本的标记(亦即,高速缓存标记)而检査波形样本号码来确定高速缓冲存储器命中。
此可通过从所请求的波形样本的波形样本号码(亦即,Z,或Z2)减去高速缓存标记值(亦
即,识别当前存储于高速缓冲存储器58中的第一样本的标记)而进行。如果结果大于零且小于每一高速缓冲存储器线的样本的数目,则己发生高速缓冲存储器命中。否则,已发生高速缓冲存储器未中。如果发生高速缓冲存储器命中(90的"是"分支),则获取单元56从高速缓冲存储器58检索波形样本(92)且将波形样本发送到音频处理元件接口 50,所述音频处理元件接口 50将波形样本输出到请求处理元件34 (94)。在高速缓冲存储器未中(90的"否"分支)的情况下,获取单元56将从外部存储器检索波形样本的指令放置于队列中(96)。当检索模块57检查队列且发现请求时,检索模块57开始突发读取以用来自外部存储器的线替代当前高速缓冲存储器线(98)。获取单元56接着从高速缓冲存储器58获取波形样本(92)。在发送波形样本之前,WFU 36在一些情况下可对波形样本进行重新格式化(94)。举例来说,如果波形样本尚未呈16位立体声格式,则获取单元56可将波形样本转换为16位立体声格式。以此方式,音频处理元件34从WFU 36接收呈统一格式的波形样本。音频处理元件34可立即使用所接收的波形样本而无需在重新格式化上花费计算循环。WFU 36将波形样本发送到音频处理元件接口 50 (95)。在获取单元56已发送对应于Z,的波形样本之后,获取单元56对波形样本Z2及服务于请求所需的任何额外波形样本执行类似操作(100)。
已在本揭示内容中描述各种实例。本文中描述的技术的一个或一个以上方面可在硬件、软件、固件或其组合中实施。描述为模块或组件的任何特征可一起实施在集成逻辑装置中,或单独地实施为离散但可交互操作的逻辑装置。如果在软件中实施,则所述技术的一个或一个以上方面可至少部分地由包含指令的计算机可读媒体实现,所述指令在被执行时执行上文所述的方法中的一者或一者以上。计算机可读数据存储媒体可形成可包括封装材料的计算机程序产品的部分。计算机可读媒体可包含例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体及其类似物。另外或替代地,所述技术可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式来载运或传送代码,且可由计算机来存取、读取及/或执行。
可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或一个以上处理器来执行所述指令。因此,在本文中使用时,术语"处理器"可指代上述结构中的任一者或适于实施本文中描述的技术的任何其它结构。另外,在一些方面中,本文中描述的功能性可提供于经配置或适于执行本发明的技术的专用软件模块或硬件模块内。
如果在硬件中实施,则本发明的一个或一个以上方面可针对经配置或适于执行本文中描述的技术中的一者或一者以上的例如集成电路、芯片组、ASIC、 FPGA、逻辑或其各种组合等电路。电路可包括集成电路或芯片组中的处理器及一个或一个以上硬件单元
(如本文中所描述)。
也应注意,所属领域的技术人员将认识到电路可实施上文描述的功能中的一些或全部。可能存在实施所有功能的一个电路,或者也可能存在实施功能的电路的多个区段。在当前移动平台技术的情况下,集成电路可包含至少一个DSP及至少一个高级精简指令集计算机(RISC)机器(ARM)处理器以控制及/或通信到DSP。另外,电路可设计或实施于若干区段中,且在一些情况下,可再使用区段以执行本发明中所描述的不同功能。
已描述各种方面及实例。然而,可在不脱离随附权利要求书的范围的情况下对本发明的结构或技术进行修改。举例来说,其它类型的装置也可实施本文中描述的语音处理技术。这些及其它实施例属于随附权利要求书的范围内。
2权利要求
1.一种方法,其包含从音频处理元件接收对于波形样本的请求;以及服务于所述请求,其中服务于所述请求包括基于所述请求中所含有的相位增量及与所述所请求的波形样本相关联的音频合成参数控制字而计算所述所请求的波形样本的波形样本号码;使用所述波形样本号码从本地高速缓冲存储器检索所述波形样本;以及将所述所检索的波形样本发送到所述请求音频处理元件。
2. 根据权利要求1所述的方法,其中计算波形样本号码包含在所述音频合成参数控制 字指示所述所请求的波形样本为循环波形样本时根据第一方法计算所述波形样本 号码,以及在所述音频合成参数控制字指示所述所请求的波形样本为非循环波形样 本时根据第二方法计算所述所请求的波形样本的所述波形样本号码。
3. 根据权利要求l所述的方法,其进一步包含确定识别当前高速缓存的波形样本的标记与所述波形样本号码之间的差值;以及在所述标记与所述波形样本号码之间的所述差值大于零且小于每一高速缓冲存 储器线的样本的数目时将所述波形样本从外部存储器获取到所述本地高速缓冲存 储器。
4. 根据权利要求1所述的方法,其中将所述所检索的波形样本发送到所述请求音频处 理元件包含将所述所检索的波形样本发送到与所述音频处理元件相关联的接口,且 其中所述接口将所述波形样本传递到所述请求音频处理元件。
5. 根据权利要求1所述的方法,其中接收对于波形样本的请求包含从多个音频处理元件接收多个请求,且 其中服务于所述请求包含以根据仲裁的次序服务于所述请求,所述仲裁至少基于循环仲裁,其中向所述音频处理元件中的每一者指派默认优先等级,以及 对所述所请求的波形样本是否巳处于所述本地高速缓冲存储器中的确定。
6. 根据权利要求5所述的方法,其中服务于所述请求包含在所述循环仲裁指示轮到服 务所述请求音频处理元件时服务于所述多个请求中的一者。
7. 根据权利要求5所述的方法,其中进一步通过与所述所请求的波形样本相关联的音 频合成参数是否经本地缓冲而确定所述仲裁。
8. 根据权利要求7所述的方法,其进一步包含在与所述所请求的波形相关联的所述音 频合成参数未经本地缓冲时跳过所述请求;以及 将所述请求移动到最低优先等级。
9. 根据权利要求5所述的方法,其中进一步通过与请求相关联的音频处理元件接口是 否繁忙而确定所述仲裁,其进一步包含在与请求相关联的所述音频处理元件接口繁 忙时将所述请求移动到最低优先等级。
10. 根据权利要求1所述的方法,其进一步包含在将所述波形样本发送到所述请求音频 处理元件之前对所述波形样本进行重新格式化。
11. 根据权利要求10所述的方法,其中对所述波形样本进行重新格式化包含将所述波 形样本转换为16位立体声格式。
12. 根据权利要求1所述的方法,其中接收对于波形样本的请求包含接收对于乐器数字 接口 (MIDI)波形样本的请求,且其中所述音频合成参数控制字包含MIDI合成参 数控制字。
13. —种装置,其包含音频处理元件接口,其从音频处理元件接收对于波形样本的请求; 合成参数接口,其获得与所述所请求的波形样本相关联的音频合成参数控制字; 本地高速缓冲存储器,其用于存储所述所请求的波形样本;以及 获取单元,其基于所述请求中所含有的相位增量及所述音频合成参数控制字而计算所述所请求的波形样本的波形样本号码,且使用所述波形样本号码从所述本地高速缓冲存储器检索所述波形样本,其中所述音频处理元件接口将所述所检索的波形样本发送到所述请求音频处理 元件。
14. 根据权利要求13所述的装置,其中所述获取单元在所述音频合成参数控制字指示 所述所请求的波形样本为循环波形样本时根据第一方法计算所述波形样本号码,且 在所述音频合成参数控制字指示所述所请求的波形样本为非循环波形样本时根据 第二方法计算所述所请求的波形样本的所述波形样本号码。
15. 根据权利要求13所述的装置,其中所述获取单元确定识别当前高速缓存的波形样本的标记与所述波形样本号码之间的差值;且 指令检索模块在所述标记与所述波形样本号码之间的所述差值大于零且小于每一高速缓冲存储器线的样本的数目时将所述波形样本从外部存储器获取到所述本地高速缓冲存储器。
16. 根据权利要求13所述的装置,其中所述获取单元将所述所检索的波形样本发送到 所述音频处理元件接口,且其中所述音频处理元件接口将所述所检索的波形样本传 递到所述请求音频处理元件。
17. 根据权利要求13所述的装置,其中所述音频处理元件接口从多个音频处理元件接 收多个请求,其进一步包含-仲裁器,其根据其中向所述音频处理元件中的每一者指派默认优先等级的循环仲裁而确定所述多个请求待由所述获取单元服务的次序。
18. 根据权利要求17所述的装置,其中所述获取单元在所述仲裁器指示轮到服务所述 请求音频处理元件且所述所请求的波形样本已处于所述本地高速缓冲存储器中时 服务于所述多个请求中的一者。
19. 根据权利要求17所述的装置,其中所述仲裁器进一步基于与所述所请求的波形样 本相关联的音频合成参数是否经本地缓冲而确定待服务于所述多个请求的所述次 序。
20. 根据权利要求19所述的装置,其中在与所述所请求的波形相关联的所述音频合成 参数未经本地缓冲时,所述仲裁器跳过所述请求且将所述请求移动到最低优先等 级。
21. 根据权利要求17所述的装置,其中所述仲裁器进一步基于与所述请求相关联的音 频处理元件接口是否繁忙而确定待服务于所述多个请求的所述次序,且其中所述获 取单元在与请求相关联的所述音频处理元件接口繁忙时将所述请求移动到最低优 先等级。
22. 根据权利要求13所述的装置,其中所述获取单元在将所述波形样本发送到所述请 求音频处理元件之前对所述波形样本进行重新格式化。
23. 根据权利要求22所述的装置,其中所述获取单元通过将所述波形样本转换为16位 立体声格式而对所述波形样本进行重新格式化。
24. 根据权利要求13所述的装置,其中所述波形样本包含乐器数字接口 (MIDI)波形 样本,且其中所述音频合成参数控制字包含MIDI合成参数控制字。
25. 根据权利要求13所述的装置,其中在所述获取单元确定所述所请求的波形样本不存在于所述本地高速缓冲存 储器内时,所述获取单元放置从外部存储器检索所述所请求的波形样本的指令,其进一步包含检索模块,所述检索模块从所述队列读取所述指令,且根据所述指 令将对应于所述所请求的波形样本的高速缓冲存储器线从所述外部存储器检索到 所述本地高速缓冲存储器。
26. —种装置,其包含用于从音频处理元件接收对于波形样本的请求的装置; 用于获得与所述所请求的波形样本相关联的音频合成参数控制字的装置; 用于存储所述所请求的波形样本的装置;以及用于基于所述请求中所含有的相位增量及所述音频合成参数控制字而计算所述 所请求的波形样本的波形样本号码的装置;用于使用所述波形样本号码从本地高速缓冲存储器检索所述波形样本的装置;以及用于将所述所检索的波形样本发送到所述请求音频处理元件的装置。
27. 根据权利要求26所述的装置,其中所述用于计算所述波形样本号码的装置包含用于在所述音频合成参数控制字指示所述所请求的波形样本为循环波形样本时 根据第一方法计算所述波形样本号码且用于在所述音频合成参数控制字指示所述 所请求的波形样本为非循环波形样本时根据第二方法计算所述所请求的波形样本 的所述波形样本号码的装置。
28. 根据权利要求26所述的装置,其进一步包含用于确定识别当前高速缓存的波形样本的标记与所述波形样本号码之间的差值 的装置;以及用于在所述标记与所述波形样本号码之间的所述差值大于零且小于每一高速缓 冲存储器线的样本的数目时将所述波形样本从外部存储器获取到所述本地高速缓 冲存储器的装置。
29. 根据权利要求26所述的装置,其中所述用于接收的装置包含用于接收对于波形样本的多个请求的装置,其进一步包含-用于根据其中向所述请求中的每一者指派默认优先等级的循环仲裁而确定所述多个请求待受到服务的次序的装置。
30. 根据权利要求26所述的装置,其进一步包含用于通过将所述波形样本转换为16位 立体声格式而对所述波形样本进行重新格式化的装置。
31. 根据权利要求26所述的装置,其中所述波形样本包含乐器数字接口 (MIDI)波形 样本,且其中所述音频合成参数控制字包含MIDI合成参数控制字。
32. —种包含指令的计算机可读媒体,所述指令在于一个或一个以上处理器中执行时致 使所述一个或一个以上处理器从音频处理元件接收对于波形样本的请求;且服务于所述请求,其中服务于所述请求包括基于所述请求中所含有的相位增量及与所述所请求的波形样本相关联的音频合成参数控制字而计算所述所请求的波形样本的波形样本号码;使用所述波形样本号码从本地高速缓冲存储器检索所述波形样本;以及将所述所检索的波形样本发送到所述请求音频处理元件。
33. 根据权利要求32所述的计算机可读媒体,其中计算波形样本号码包含在所述音频合成参数控制字指示所述所请求的波形样本为循环波形样本时根据第一方法计算所述波形样本号码,以及在所述音频合成参数控制字指示所述所请求的波形样本为非循环波形样本时根据第二方法计算所述所请求的波形样本的所述波形样本号码。
34. 根据权利要求32所述的计算机可读媒体,其进一步包含在执行时致使所述一个或一个以上处理器进行以下操作的指令确定识别当前高速缓存的波形样本的标记与所述波形样本号码之间的差值;且在所述标记与所述波形样本号码之间的所述差值大于零且小于每一高速缓冲存储器线的样本的数目时将所述波形样本从外部存储器获取到所述本地高速缓冲存储器。
35. 根据权利要求32所述的计算机可读媒体,其中将所述所检索的波形样本发送到所述请求音频处理元件包含将所述所检索的波形样本发送到与所述音频处理元件相关联的接口,且其中所述接口将所述波形样本传递到所述请求音频处理元件。
36. 根据权利要求32所述的计算机可读媒体,其中接收对于波形样本的请求包含从多个音频处理元件接收多个请求,且其中服务于所述请求包含以根据仲裁的次序服务于所述请求,所述仲裁至少基于循环仲裁,其中向所述音频处理元件中的每一者指派默认优先等级,以及对所述所请求的波形样本是否已处于所述本地高速缓冲存储器中的确定。
37. 根据权利要求36所述的计算机可读媒体,其中服务于所述请求包含在所述循环仲裁指示轮到服务所述请求音频处理元件时服务于所述多个请求中的一者。
38. 根据权利要求36所述的计算机可读媒体,其中所述仲裁进一步通过与所述所请求的波形样本相关联的音频合成参数是否经本地缓冲而确定。
39. 根据权利要求38所述的计算机可读媒体,其进一步包含在执行时致使所述一个或一个以上处理器在与所述所请求的波形相关联的所述音频合成参数未经本地缓冲时进行以下操作的指令跳过所述请求;且将所述请求移动到最低优先等级。
40. 根据权利要求36所述的计算机可读媒体,其中所述仲裁进一步通过与请求相关联的音频处理元件接口是否繁忙而确定,其进一步包含在与请求相关联的所述音频处理元件接口繁忙时将所述请求移动到最低优先等级。
41. 根据权利要求32所述的计算机可读媒体,其进一步包含致使所述一个或一个以上处理器在将所述波形样本发送到所述请求音频处理元件之前对所述波形样本进行重新格式化的指令。
42. 根据权利要求41所述的计算机可读媒体,其中对所述波形样本进行重新格式化包含将所述波形样本转换为16位立体声格式。
43. 根据权利要求32所述的计算机可读媒体,其中接收对于波形样本的请求包含接收对于乐器数字接口 (MIDI)波形样本的请求,且其中所述音频合成参数控制字包含MIDI合成参数控制字。
44. 一种电路,其适于从音频处理元件接收对于波形样本的请求;且服务于所述请求,其中服务于所述请求包括基于所述请求中所含有的相位增量及与所述所请求的波形样本相关联的音频合成参数控制字而计算所述所请求的波形样本的波形样本号码;使用所述波形样本号码从本地高速缓冲存储器检索所述波形样本;以及将所述所检索的波形样本发送到所述请求音频处理元件。
45. 根据权利要求44所述的电路,其中计算波形样本号码包含在所述音频合成参数控制字指示所述所请求的波形样本为循环波形样本时根据第一方法计算所述波形样本号码,以及在所述音频合成参数控制字指示所述所请求的波形样本为非循环波形样本时根据第二方法计算所述所请求的波形样本的所述波形样本号码。
46. 根据权利要求44所述的电路,其中所述电路适于确定识别当前高速缓存的波形样本的标记与所述波形样本号码之间的差值;且在所述标记与所述波形样本号码之间的所述差值大于零且小于每一高速缓冲存储器线的样本的数目时将所述波形样本从外部存储器获取到所述本地高速缓冲存储器。
47. 根据权利要求44所述的电路,其中将所述所检索的波形样本发送到所述请求音频处理元件包含将所述所检索的波形样本发送到与所述音频处理元件相关联的接口,且其中所述接口将所述波形样本传递到所述请求音频处理元件。
48. 根据权利要求44所述的电路,其中接收对于波形样本的请求包含从多个音频处理元件接收多个请求,且其中服务于所述请求包含以根据仲裁的次序服务于所述请求,所述仲裁至少基于循环仲裁,其中向所述音频处理元件中的每一者指派默认优先等级,以及对所述所请求的波形样本是否已处于所述本地高速缓冲存储器中的确定。
49. 根据权利要求48所述的电路,其中服务于所述请求包含在所述循环仲裁指示轮到服务所述请求音频处理元件时服务于所述多个请求中的一者。
50. 根据权利要求48所述的电路,其中所述仲裁进一步通过与所述所请求的波形样本相关联的音频合成参数是否经本地缓冲而确定。
51. 根据权利要求50所述的电路,其中所述电路适于在与所述所请求的波形样本相关联的所述音频合成参数未经本地缓冲时跳过所述请求;且将所述请求移动到最低优先等级。
52. 根据权利要求48所述的电路,其中所述仲裁进一步通过与请求相关联的音频处理元件接口是否繁忙而确定,其进一步包含在与请求相关联的所述音频处理元件接口繁忙时将所述请求移动到最低优先等级。
53. 根据权利要求44所述的电路,其中所述电路适于在将所述波形样本发送到所述请求音频处理元件之前对所述波形样本进行重新格式化。
54. 根据权利要求53所述的电路,其中对所述波形样本进行重新格式化包含将所述波形样本转换为16位立体声格式。
55. 根据权利要求44所述的电路,其中接收对于波形样本的请求包含接收对于乐器数字接口 (MIDI)波形样本的请求,且其中所述音频合成参数控制字包含MIDI合成参数控制字。
全文摘要
本发明描述利用波形获取单元的技术,所述波形获取单元操作以代表多个硬件处理元件中的每一者检索波形样本,所述多个硬件处理元件同时操作以服务于从例如乐器数字接口(MIDI)文件等一个或一个以上音频文件产生的各种音频合成参数。在一个实例中,一种方法包含从音频处理元件接收对于波形样本的请求及通过以下操作而服务于所述请求基于所述请求中所含有的相位增量及与所述所请求的波形样本相关联的音频合成参数控制字而计算所述所请求的波形样本的波形样本号码,使用所述波形样本号码从本地高速缓冲存储器检索所述波形样本,及将所述所检索的波形样本发送到所述请求音频处理元件。
文档编号G10H7/00GK101636779SQ200880008713
公开日2010年1月27日 申请日期2008年3月17日 优先权日2007年3月22日
发明者尼迪什·拉马钱德拉·卡马特, 斯蒂芬·莫洛伊, 普拉加卡特·V·库尔卡尼, 苏雷什·德瓦拉帕里, 萨米尔·库马尔·古普塔, 阿利斯托·阿勒马妮亚 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1