用于控制高清晰度音频编码解码器的处理器中的音量的系统及方法 附图简述
通过阅读以下详细说明且参照附图,本发明的其它目的与优点会变得显而易见。
图1是说明根据一个实施例的一种系统的硬件结构的功能框图,该系统系具有包含基于DSP的编码解码器的高清晰度音频(HDA)架构。
图2是说明根据一个实施例的一个示例HDA编码解码器中的接口工具集的互连的简图,该HDA编码解码器具有一集成的PWM控制器/放大器。
图3是说明根据一个实施例的用于实施基于处理器的音量控制的一种编码解码器架构的简图。
图4是说明根据一个实施例从一HDA总线读取动词与数据、在一编码解码器的音量/静音寄存器中存储音频音量级、以及为寄存器设置状态标记的流程图。
图5是说明根据一个实施例的用于检查状态标记、当必要时读取音量/静音寄存器、以及更新DSP与PWM输出计算引擎操作的一种方法的流程图。
尽管本发明容易成为种种的修改与替代形式,但其特定实施例藉由举例而在附图与伴随的详细说明中示出。然而,应当理解的是:附图与详细说明不旨在将本发明限制为已经描述的特别实施例。反之,此揭示内容旨在涵盖落入所附权利要求所界定的本发明的范围内的所有修改、等价方案与替代方案。
详细描述
以下描述了本发明的一个或多个实施例。应当注意的是:下文所述的这些与任何其它实施例是示例性的,而且旨在说明本发明而非限制性质。
如本文所述,本发明的多个实施例包含用于启动被纳入个人计算机(PC)中的高清晰度音频(HDA)系统的编码解码器中的处理器(诸如:数字信号处理器(DSP))的系统及方法,其中,DSP处理音量控制,以提供更高效及更高质量的音频。
在一个实施例中,一HDA编码解码器包括耦合至诸如DSP之类的可编程处理器的一个或多个常规HDA接口工具集(widget)。该DSP被配置成起D类PWM控制器的作用,以产生PWM输出信号。该编码解码器从耦合至编码解码器的HDA总线接收时分复用的数字音频信号与HDA动词(verb)。该编码解码器中的接口工具集包括一转换器,该转换器从HDA总线拉取时分复用的音频数据和动词,且将其转换成适合于编码解码器内部使用的格式。当一音量控制动词被该编码解码器接收时,与该动词相关联的音量级被储存于DSP可存取的寄存器中。该DSP读取这些寄存器以确定编码解码器中的信道的音量级,并基于这些音量级调整产生PWM输出信号的方式。这可能不仅包括调整相应信道的音量,而且包括调整涉及产生PWM输出信号的非音量参数。
替代的实施例可包括包含基于处理器的HDA编码解码器的PC系统、及用于通过基于HDA音量控制动词调整该处理器的操作来控制基于处理器的HDA编码解码器中的音量的方法。
基于PC的音频
随着PC的激增与计算机技术的进步,已经存在对具有愈来愈多地先进特征的PC的需求。特别是购买多媒体PC与高端游戏PC的顾客要求优质的音频质量,以从他们的PC实现终极的音频/视觉体验。该需求在某种程度上已经被英特尔公司(Intel)提出的高清晰度音频规范所满足。
当英特尔公司(Intel)的1997音频编码解码器标准(AC’97)提出时,PC用户通常聆听仅具有立体声音的音乐与电影。随着诸如杜比(Dolby)数字与DTS之类的多信道的音频格式变得更加普及,用户变得习惯这些音频格式且开始在PC环境中预期运用这些格式的完全环绕、多喇叭的声音。尽管AC’97技术最初能胜任,但已经无法跟得上使PC能产生更高质量的音频的较新的进展(例如:较新的音频与视频编码/解码算法)。
随着英特尔公司(Intel)的高清晰度音频规范修订版1.0(其通过引用而结合于本文中)于2004年提出而开始,HDA接口已经逐渐普及于PC领域。英特尔公司(Intel)规范所定义的HDA架构试图满足PC领域对高质量音频的需求。此架构定义了利用HDA控制器将高保真音频内容从PC存储器传递至一个或多个音频编码解码器,该HDA控制器在HDA总线上执行音频数据的直接存储器存取(DMA)。在HDA总线上传递的音频数据由编码解码器的多个部件(在HDA规范中称为“接口工具集”)接收、处理、及输出。
尽管HDA规范在PC的HDA系统设计中允许颇多灵活性,但当设计实施时该灵活性丧失。举例而言,尽管一HDA系统可能具有多个编码解码器以执行对音频数据的不同类型的处理,但这些编码解码器硬连接而且他们的功能性无法改变。需要提供能保持HDA系统的灵活性的系统和方法,包括允许在实现之后对系统功能的改变。
通过提供包含数字信号处理器(DSP)的HDA编码解码器而得以在一个系统中提供该灵活性。DSP能对音频信号进行智能处理,且可编程以通过对DSP编程而修改编码解码器的功能。DSP可被编程为控制多种功能,包括诸如在常规HDA编码解码器中由单独的HDA接口工具集所处理的音量与静音的功能。
高清晰度音频(HDA)
随着英特尔公司(Intel)的高清晰度音频规范修订版1.0在2004年提出,HDA接口已经逐渐在PC领域中普及。特别是多媒体PC与高端的游戏PC的用户要求优质的音频质量,以从他们的PC中实现终极的音频/视觉体验。HDA架构解决了从PC的存储器系统向HDA系统的音频编码解码器传递高清晰度音频内容的困难。
HDA规范的主要目的是描述PC环境内被设置成支持高质量音频的一种基础结构。此基础结构提供一种用于经由HDA总线从PC的存储器系统向一个或多个音频编码解码器传输音频数据的机制。典型而言,编码解码器将从存储器接收的数字音频数据转换成模拟信号,且将这些信号处理成可提供作为例如线路输出、调制解调器输出、或至放大器的输出的输出信号。
参考图1,示出了说明具有包含基于DSP的编码解码器的HDA架构的系统的硬件结构的功能框图。如此图中所描绘,PC 100中的HDA架构包括HDA控制器110、HDA总线120、以及若干编码解码器130-132。(尽管图1包括三个编码解码器,但在既定的实施例中可能存在更多或更少编码解码器。)这些部件连同CPU 140与存储器控制器150一起构造在PC的主机板上。
HDA控制器110经由诸如PCI总线之类的总线160或其它类型的系统总线耦合至存储器控制器150。存储器控制器150通过主总线161耦合至CPU 140。存储器控制器150还耦合至系统存储器170。编码解码器130-132可连接至一个或多个转换器,以将编码解码器所处理的音频数据转换成适合的输出格式,或将编码解码器所接收的输入数据转换成适当的格式以供编码解码器使用。编码解码器的音频处理由常规的接口工具集与诸如DSP之类的可编程处理器的组合来执行。这些转换器所产生的输出信号可被提供至诸如放大器、喇叭、或头戴式耳机之类的多种输出装置。
HDA控制器110作用PCI总线上的总线主控输入/输出(I/O)装置。HDA控制器110包括多个DMA引擎111-113。(虽然在图中描述了三个DMA引擎,但在给定的实施例中可能存在更多或更少的引擎。)DMA引擎111-113(经由存储器控制器150与总线160)控制系统存储器170与多个HDA编码解码器130-132之间的数据转移。DMA引擎可将数据从编码解码器转移至系统存储器,以及将数据从系统存储器转移至编码解码器。
HDA总线120被配置成支持HDA控制器110与编码解码器130-132之间的串行数据传输。HDA总线120还用于将来自HDA控制器110的24MHz位线时钟分配至编码解码器130-132。该位线时钟由该控制器与编码解码器使用以实现在HDA总线上的数据转移。编码解码器使用该位线时钟以从HDA总线提取时分复用、串行化的数据。
典型而言,编码解码器130-132中的每一个将在HDA总线120上从时分复用数据中提取数字数据流。此数字数据系将被转换成模拟信号且由编码解码器处理。该处理可包括执行多种功能,诸如:音量控制、静音、混音等。如上所述,经处理后的数据可被提供至转换器,该转换器在必要时可转换经处理的该信号以产生输出信号(例如,转换器可将模拟信号转换成数字输出信号)。除了处理音频数据之外,编码解码器130-132可经由HDA总线120将控制数据提供至HDA控制器110。编码解码器亦可接收输入信号(例如,来自话筒的模拟输入信号)、处理这些信号,并经由HDA总线将这些信号提供给HDA控制器。
数据以“流(streams)”方式在系统存储器170与编码解码器130-132之间传输。在HDA规范中,流是编码解码器之一与系统存储器中的缓冲器之间的逻辑连接。各个流由HDA控制器中相应的一个DMA引擎驱动。DMA引擎可仅驱动单个流,因此若该系统具有相比DMA引擎而言更多的流,则这些流中的一个或多个必须保持为非现用(inactive),直到DMA引擎可用于驱动它们。流可为输入流或输出流,但不能同时为二者。输出流被视为广播流,且可由编码解码器中的一个以上所接收。另一方面,输入流仅与编码解码器中的单个相关联。
如上所述,这些流作为时分复用数据在HDA总线上传输。HDA总线在连续帧中传输数据。帧率为48kHz,因此各帧为20.83微秒长。帧可分解为多个字段(field),包括用于命令及/或响应数据的字段、以及用于一个或多个流中的各个的取样字段。若所传送的流小于最大数目,则帧还可包括零空间。在数据流的各个取样内,通常存在对应于二个信道(例如:左与右立体声信道)的数据的字段。然而,应当注意的是:可传送更多个信道(例如:左、右、左后、与右后)。此外,多个取样字段可用于输送具有大于48kHz帧率的数据率的单个信道的数据。
HDA规范旨在定义一种架构,其中编码解码器具有一种模块式结构。编码解码器利用参数化的构成部分(接口工具集)以形成可显露且可配置的编码解码器。接口工具集以及接口工具集的集合是HDA架构中可唯一寻址的节点。因此,软件驱动程序可标识并控制编码解码器的多个操作。
形成HDA编码解码器的接口工具集互连以形成编码解码器内的功能群组。编码解码器可含有一个以上功能群组。举例而言,编码解码器可含有处理不同音频信道的音频数据的数个音频功能群组。常用于这些音频功能群组的接口工具集包括:音频输出转换器接口工具集、音频输入转换器接口工具集、(i/o)(引脚)接口工具集、混音器接口工具集、选择器(多路复用器)接口工具集、电力状态接口工具集、以及音量接口工具集。
具有整体的处理器的HDA编码解码器
通常,编码解码器中的接口工具集硬连接在一起。特定的编码解码器可被设计成执行多种功能,但这些功能是由具有确定功能的接口工具集所执行,因此一旦其设计为已经建立且编码解码器为已经构成时,该编码解码器的功能亦确定。另一方面,此编码解码器包含诸如数字信号处理器(DSP)之类的可编程处理器。
DSP提供执行对音频数据的智能处理的能力。在一个实施例中,DSP被编程为集成至HDA编码解码器的D类脉宽调制(PWM)控制器的作用。PWM控制器接收数字音频信号,且产生可转发至喇叭、头戴式耳机、或放大器的PWM输出信号。
参考图2,示出了具有集成的PWM控制器/放大器的示例性HDA编码解码器的接口工具集的互连的简图。在该示例中,编码解码器被配置成处理八个通道(四个立体声对)的音频数据。各个立体声对由DDC接口工具集(例如:210)从输入数字格式转换成内部数字格式。因为HDA总线上的数据流是时分复用的,所以DDC接口工具集从总线拉取适当的音频数据分组,且将该数据格式化为可在编码解码器中处理的数字流(例如I2S数据流)。(在本实施例中,编码解码器以数字形式而非模拟形式来处理信号。)该数字信号接着由混音器接口工具集(例如:220)和引脚(pin)接口工具集(例如:230)处理,混音器接口工具集可将该信号与其它信号求和或控制该信号的音量,而引脚接口工具集可将信号静音并将该信号输出至PWM控制器/放大器(例如:240)。
应当注意的是:混音器接口工具集与引脚接口工具集可以是编码解码器的虚拟(或逻辑)部件。尽管DDC接口工具集是从HDA总线拉取数据所必需的硬件部件,但混音器与引脚接口工具集通常执行可由DSP提供的功能。因此,混音器与引脚接口工具集可呈现为硬件(其不须为使用),或DSP可简单地在逻辑上表示这些接口工具集。换言之,编码解码器可如同其包括这些接口工具集而将自身呈现给HDA总线,从而将这些接口工具集的节点ID映射至DSP。因此对这些接口工具集寻址的命令被转发至DSP,这些命令以如同这些接口工具集已经实际存在的方式在DSP中被处理。举例而言,在该混音器接口工具集通常控制由编码解码器所处理的音频信号的音量的情况下,DSP可因变于PWM控制器来控制音量。同理,在该引脚接口工具集通常控制静音与输入/输出功能的情况下,这些功能可在PWM控制器中实现。
全数字式D类PWM控制器因为包含DSP而优于其模拟的对应物。DSP通过实施诸如参数等化、幻觉(psycho-acoustic)音效、空间等化、虚拟的环绕声音、低音增强、混音、定制的滤波器等等音效处理而允许音频定制。DSP也可被配置成执行通常在编码解码器的接口工具集中实现的功能,诸如音量控制(通常在混音器接口工具集中实现)、静音控制以及I/O控制(通常在引脚接口工具集中实现)。
音频编码解码器的音量控制与静音功能系可能看起来是必要但平凡的功能,可在音频处理信道中的任何点处实现而对系统没有显著影响。然而,并非如此。在常规的HDA编码解码器中,转换器将从HDA总线接收的数字数据转换成模拟信号,该模拟信号接着由编码解码器中的其它接口工具集处理。举例而言,混音器接口工具集通过降低信号的幅值来控制模拟音频信号的音量。这减小了信号的动态范围从而降低了信号的质量。另一方面,在本系统中,音频信号在其受处理时保持数字形式,因此在处理器期间无动态范围丧失。当PWM输出脉冲产生时,音量由DSP与PWM计算引擎控制,从而产生较高质量的输出信号。
因为DSP能基于信号的音量级而智能地修改其操作,所以输出信号的质量也能被提高。举例而言,当音量级为高时,音频信号的波形通常具有从零开始的宽的偏移(高的峰对峰值)。为了使该信号的音频失真为最小,高侧与低侧PWM信号之间的空载时间必须被最小化。然而,最小化的空载时间可能增大PWM输出级所抽取的电流,从而提高与音频输出相关联的功耗。反之,若音量级为低,高侧与低侧PWM信号之间的空载时间造成小许多的音频失真,因此能容许更多的空载时间。空档时间的增大会降低与音频输出相关联的功耗。因此,DSP可被配置成根据音量级调整空载时间,以降低失真且降低功耗。
DSP中的静音(muting)控制还具有优于引脚接口工具集中的常规控制的优点。在这两种情形下,当该信道静音,音量级为0,因此动态范围的降低不成问题。然而,在常规的HDA编码解码器中,音频信号受到噪声影响且可能产生一些非零的输出信号。尽管这不是特别有害,但对此0级(但可能有噪声)信号的处理需要功率。此功率被无意义地消耗。另一方面,在这些系统中,DSP可识别音量级为0,从而调整其操作(以及PWM输出计算引擎的操作)以暂停不必要的功能,否则降低功耗。当该通道不再静音时,DSP可调整其操作以返回至正常操作参数。
参考图3,示出了说明用于实施基于处理器的音量控制的编码解码器架构。在此实施例中,在PC上执行应用程序。应用程序向PC操作系统或向驱动程序310发送命令,以使HDA控制器320在HDA总线330上发送音量控制动词和相应的数据至编码解码器340。编码解码器340具有连接至HDA总线330的HDA接口350。HDA接口350从HDA总线330拉取动词与数据。命令解码器360从HDA接口350接收动词与数据且解码这些动词。当命令解码器360解码一音量控制动词时,它取得定义音量级的相关数据,并将此信息存储于一个或多个音量/静音寄存器371-374中。音量控制动词可应用至由编码解码器所处理的一个或多个音频信道,因此在本实施例中提供了四个音量/静音寄存器(四个立体声信道对中的每个各一个)以储存不同信道的音量级。
DSP 391与PWM输出计算引擎392连续处理编码解码器所接收的音频数据。作为其背景任务的一部分,DSP检查音量/静音寄存器。在一个实施例中,当寄存器中存储的音量数据被更新时,可为每个寄存器设置状态标记。然后DSP可检查状态标记以确定特定信道的音量是否需要调整。这样可降低寄存器的读取频率。如果寄存器中的数据已经改变,则DSP可从该寄存器读取音量级并根据新的音量级来修改PWM输出计算引擎的操作。通常,在HDA总线上接收的音量级以分贝(decibel)编码,因此DSP在使用它来修改PWM输出计算引擎的操作之前可将该音量级转换成线性值。
此系统的操作通过图4和5的流程图说明。图4说明从HDA总线读取动词与数据、在编码解码器的音量/静音寄存器中存储音量级、以及为寄存器设置状态标记。图5说明DSP检查状态标记、在必要时读取音量/静音寄存器、以及按需更新DSP与PWM输出计算引擎的操作。
应当注意的是:本文所使用的术语“PC”与“个人计算机”指的是由个体消费者所一般购买及使用的大范围的计算系统。此类系统可包括桌面型计算机、膝上型计算机、平板计算机等等,且可为用于家庭、办公室、移动或其它环境。还应注意的是:虽然上述实施例针对包含DSP的编码解码器,其它实施例可使用除DSP之外的处理器类型(诸如:通用处理器、可编程微控制器等等)以实现通过将处理器用于HDA编码解码器而获得的可编程能力、可配置能力以及其它优点。
以上已经相关于特定的实施例描述了通过本发明可提供的好处和优点。这些好处和优点、以及可致使其为存在或变得较明确的任何要素或限制不旨在被解释为所附权利要求中的任一项或所有项的关键、必需或基本特征。如本文所使用地,术语“包括(comprises)”、“包括(comprising)”或其任何其它变型旨在被解读为非排他式地包括这些术语后跟随的要素或限制。因此,包含一组要素的一种系统、方法、或其它实施例非仅受限于这些要素,且可包括未明确列出或声明要求保护的实施例所固有的其它要素。
尽管已经参照特定实施例描述了本发明,但应当理解的是,这些实施例仅仅是说明性的,而且本发明的范围不限于这些实施例。对上述实施例的多种变化、修改、添加以及改进是可能的。可构想这些变化、修改、添加以及改进落在所附权利要求所详述的本发明的范围内。