共享三维音频床的制作方法

文档序号:17729203发布日期:2019-05-22 02:43阅读:346来源:国知局
共享三维音频床的制作方法

一些传统软件应用被配置为提供丰富的环绕声体验。例如,视频游戏或媒体播放器可以利用dolby5.1环绕声系统产生输出。随着多年来的进步,一些系统现在可以利用涉及越来越多的扬声器布置的不同技术。多年来介绍的各种扬声器布置涉及五个以上的扬声器,并且一些布置可以提供独特的特殊效果。

尽管多年来已经发生了进步,但是当涉及其特征库的多样性时,许多现有系统仍然非常有限。大多数现有系统专注于限于个体平面的扬声器布置。例如,虽然dolby技术已从5.1升级到7.1及更高,但扬声器布置仍然固定在个体平面上。这种系统在为用户传递完整的环绕声体验方面非常有限。

关于这些和其他考虑,提出了本文所公开的内容。



技术实现要素:

本文公开的技术使得系统能够提供一种共享的三维(“3d”)音频床,其永久可用于从在应用层执行的多个资源接收和绘制定制音频数据。在一些配置中,系统管理定义3d音频床的多个扬声器对象的床元数据。3d音频床的扬声器对象可包括虚拟扬声器或实际扬声器。床元数据还将每个扬声器对象与位置相关联,该位置在一些配置中由三维坐标系定义。床元数据可以被传送到在应用层处执行的多个应用。然后,应用可以生成定制3d音频数据,该定制3d音频数据将个体音频流与3d音频床的个体扬声器对象相关联。然后,应用可以将定制3d音频数据传送到3d音频床引擎,这使得利用诸如dolbyatmos、hrtf等的所选择的空间化技术处理定制3d音频数据和并将定制3d音频数据绘制到输出设备。

本文公开的技术提供了许多增强用户体验的特征。在一个方面,本文公开的技术允许多个应用共享定制3d音频床。每个应用通过可以将床元数据动态地传达给一个或多个应用的3d床引擎的使用来了解音频床配置,并且3d音频床引擎被配置为从每个应用接收和绘制定制3d音频数据。在一个示意性示例中,3d音频床可包括预定数量的扬声器对象,例如,在固定位置处的16个扬声器。在系统上运行的任意应用都可以在任意时间点向任意扬声器对象发送媒体流,并且扬声器对象始终可用于任意应用,即使在其他应用正在向扬声器对象发送音频数据时。

本文公开的技术还使得应用能够利用多于一个3d音频床配置。在一个示意性示例中,当系统在诸如dolbyatmos的第一空间化技术下绘制音频数据时,计算系统可以选择具有第一扬声器位置布置的第一3d音频床;当系统在诸如hrtf的第二空间化技术下绘制音频时,系统可以选择具有第二扬声器位置布置的第二3d音频床。因此,当系统在空间化技术之间转换或输出设备之间转换时,系统还可以选择针对所选择的空间化技术或所选输出设备而优化的个体3d床配置。通过允许系统利用具有不同扬声器位置的不同3d音频床,并且将这些变化与应用协调,提供了更丰富,动态的体验,其扩展到限于个体平面的扬声器位置之外。

应当理解,上述主题还可以实现为计算机控制的装置、计算机过程、计算系统、或者诸如计算机可读介质的制品。通过阅读以下具体实施方式和对相关联附图的回顾,这些和各种其他特征将是显而易见的。提供本发明内容是为了以简化的形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。

本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任意部分中提到的任意或所有缺点的实现。

附图说明

参考附图描述了具体实施方式。在附图中,附图标记的最左边的数字标识首次出现附图标记的图。不同图中的相同附图标记表示相似或完全相同的项目。

图1示出了用于支持共享3d音频床的示例系统。

图2a图示了示出用于支持共享3d音频床的数据的通信的示例场景的第一状态。

图2b图示了示出用于支持共享3d音频床的数据的通信的示例场景的第二状态。

图2c图示了示出用于支持共享3d音频床的数据的通信的示例场景的第三状态。

图2d图示了示出用于支持共享3d音频床的数据的通信的示例场景的第四状态。

图3a图示了共享3d音频床的第一表示。

图3b图示了共享3d音频床的第二表示。

图3c图示了共享3d音频床的第三表示。

图4图示了用于支持共享3d音频床的例程的流程图。

图5是图示了用于能够实现本文给出的技术和技艺的各方面的计算系统的说明性计算机硬件和软件架构的计算机架构图。

具体实施方式

以下具体实施方式公开了使系统能够提供3d音频床(本文也称为“3d床”)的技术和技艺,该3d音频床永久可用于从在应用层处执行的多个资源接收和渲染定制音频数据。在一些配置中,系统管理定义3d音频床的多个扬声器对象的床元数据。3d音频床的扬声器对象包括虚拟扬声器或实际扬声器。床元数据还将每个扬声器对象与位置相关联,该位置在一些配置中由三维坐标系定义。床元数据可以被传送到在应用层执行的多个应用。然后,应用可以生成定制3d音频数据,该定制3d音频数据将个体音频流与3d音频床的个体扬声器对象相关联。然后,应用可以将定制3d音频数据传送到3d音频床引擎,这使得利用诸如dolbyatmos、hrtf等的所选择的空间化技术处理定制3d音频数据和将定制3d音频数据绘制到输出设备。

本文公开的技术提供了许多用于增强用户体验的特征。在一个方面,本文公开的技术允许多个应用共享定制3d音频床。每个应用通过将床元数据传送到每个应用来了解音频床配置,并且3d音频床引擎被配置为从每个应用接收和绘制定制3d音频数据。在一个示意性示例中,3d音频床可包括预定数量的扬声器对象,例如,在固定位置处的16个扬声器。在系统上运行的任意应用都可以在任意时间点向任意扬声器对象发送媒体流,并且扬声器对象始终可用于任意应用,即使在其他应用正在向扬声器对象发送音频数据时。

本文公开的技术还使应用能够使用多于一个3d床配置。在一个示意性示例中,当系统在诸如dolbyatmos的第一空间化技术下绘制音频数据时,计算系统可以选择具有第一扬声器位置布置的第一3d音频床;当系统在诸如hrtf的第二空间化技术下绘制音频时,系统可以选择具有第二扬声器位置布置的第二3d音频床。因此,当系统在空间化技术之间转换或输出设备之间转换时,系统还可以选择针对所选择的空间化技术或所选输出设备而优化的各个3d床配置。通过允许系统利用具有不同扬声器位置的不同三维音频床,并且将这些变化与应用协调,提供了更丰富的动态体验,其扩展到限于单个平面的扬声器位置之外。出于示意性目的,空间化技术在本文中也称为用于编码一个或多个音频信号的功能类别。在本公开中,例如,第一类功能可以是hrtf,第二类功能可以是dolbyatmos,第三类功能可以是基于microsoft的技术等。定义空间化技术的计算机实现的指令使编码器从编码器生成绘制的输出信号到一个或多个端点设备,以产生由一个或多个应用提供的个体音频流的音频输出。

应当理解,上述主题可以实现为计算机控制的装置、计算机过程、计算系统、或者诸如计算机可读存储介质的制品。在许多其他益处中,本文的技术提高了关于各种计算资源的效率。例如,可以改进与设备的人工交互,因为本文公开的技术的使用使得用户能够如它们被预期的听到音频生成的音频信号。此外,改进的人员交互改善了其他计算资源,诸如处理器和网络资源。除了本文提到的那些之外的其他技术效果也可以从本文公开的技术的实现中实现。

虽然在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了本文描述的主题,但是本领域技术人员将认识到其他实现可以与其他类型的程序模块结合执行。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将理解,本文描述的主题可以用其他计算机系统配置来实践,包括手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。

在以下详细描述中,参考形成其一部分的附图,并且其中通过图示的具体配置或示例示出。现在参考附图,其中相同的附图标记在若干附图、用于支持共享的三维音频床的计算系统、计算机可读存储介质和计算机实现的方法的各方面中表示相同的元件。如下面将参考图5更详细地描述的,存在可以体现本文描述的功能和技术的许多应用和模块。

图1是被配置为提供共享的三维音频床的系统100的示意性示例。系统100包括在宿层(sinklayer)152处执行的控制器101,用于存储、传送和处理本文描述的音频数据和元数据。控制器101包括3d床引擎111,其被配置为提供3d音频床,3d音频床永久可用于从应用级别的多个资源接收和绘制可定制的音频数据。3d床引擎111被配置为将床元数据175传送到一个或多个应用102。如下面更详细描述的,床元数据175使应用102能够生成根据由床元数据175定义的3d床定制的3d音频数据。3d床引擎111还被配置为从一个或多个应用102接收输入信号,例如,为特定3d床形成的定制3d音频数据。3d床引擎111还可以被配置为处理定制3d音频数据和将定制3d音频数据传送到一个或多个编码器106,其中定制3d音频数据根据所选择的空间化技术(例如,dolbyatmos、hrtf等)处理,并被绘制给输出设备105。

床元数据175定义3d床的配置。通常,3d床可包括多个扬声器,这些扬声器在本文中也称为扬声器对象。3d床可以为扬声器的布置建模,并且模型可以涉及实际扬声器和/或虚拟扬声器。在一个示例中,床元数据175可以为3d床定义多个扬声器对象,并为每个扬声器对象提供特定的三维坐标。例如,床元数据175可以指示前中心扬声器具有特定位置,例如三维区域的(x,y,z)坐标。3d床的其他扬声器对象可以以相同的方式与位置相关联。任意合适的坐标系或用于在三维区域中定义对象的位置的任意其他合适的数据格式可以与本文公开的技术一起使用。在另一示例中,特定扬声器对象的位置可以基于矢量数据。

床元数据175还可以定义关于每个扬声器对象的属性。例如,床元数据175可以指示扬声器对象被配置为根据特定形状或模式运行、例如、全向、双向、心形、抛物线、霰弹枪等。床元数据175还可以指示,除了其他属性之外,扬声器对象的方向。

3d床引擎111可以配置有接口112,用于与在应用层151处执行的任意数量(n个)的应用102传送床元数据175和其他数据。如图2a所示,床元数据175可以被推送到个体应用102,或者床元数据175可以响应于接收来自应用102的查询174而被传送到应用102。为了说明的目的,一些示例应用102在本文中个体称为第一应用102a、第二应用102b和第三应用102c。个体应用102还可以包括用于执行被配置为执行本文公开的技术的代码的一个或多个预处理器。

应用102可以包括被配置为处理基于对象的音频(本文也称为“3d床音频”和“3d对象音频”)和/或基于声道的音频(在本文中也称为“2d床音频”)的任意可执行代码。应用102的示例可以包括但不限于媒体播放器、网络浏览器、视频游戏、虚拟现实应用和通信应用。应用102还可以包括生成系统声音的操作系统的组件。

除了提供用于与用户交互的功能之外,应用102还可以将一个或多个操作应用于基于对象的音频,包括但不限于一个或多个折叠操作和共同定位操作,其可以涉及将多个对象组合成一个对象。在另一示例中,应用102可以利用一个或多个剔除操作,其可以涉及一个或多个所选择的音频对象的消除。

应用102可以生成根据床元数据175定制的3d音频数据。在一个示意性示例中,如果第一应用102a是生成具有300个音频对象的基于原始对象的音频数据的视频游戏,并且床元数据175定义了在三维区域的特定位置处具有10个扬声器的3d床,则应用102a可以处理300个音频对象,例如折叠、共同定位和/或过滤对象,以适当地将原始音频数据的个体或组合音频流与具10个扬声器及其相应的位置相关联。应用102可以生成包含音频数据的定制3d音频数据176以及将音频流与一个或多个扬声器对象相关联的其他定义。如图2b所示,定制3d音频数据176可以经由接口112从每个应用102传送到3d床引擎111。

如图2c所示,除了从个体应用102接收音频数据之外,个体应用102内的组件(例如,源a133a和源b133b)还可以单独地生成根据床元数据配置的音频数据。例如,如果第三应用102c是视频游戏,并且视频游戏具有一个用于背景音乐的音频源133a和用于声音效果的另一个音频源133b,则每个源可以生成定制3d音频数据175并将定制3d音频数据175传送到3d床引擎111。

上述功能可以由应用102的模块执行,或者应用可以与用于执行所述功能的预处理器相关联,或者可以包括用于执行所述功能的预处理器。在一些配置中,系统100可以包括在应用层151和宿层152之间的预处理器层,其包括被配置为与应用和3d床引擎111通信的一个或多个预处理器。包括用作应用102和3d床引擎111之间的接口的预处理器的配置可用于从应用102和3d床引擎111卸载计算任务的部分。

控制器101可包括合适数量(n)的编码器106。为了说明的目的,一些示例编码器106在本文中单独地被称为第一编码器106a、第二编码器106b和第三编码器106c。编码器106可以与合适数量(n)的输出设备105相关联。为了说明的目的,一些示例输出设备105在本文中单独地称为第一输出设备105a、第二输出设备105b、第三输出设备105c。提供该示例系统100是出于示意性目的,而不应被解释为限制。可以理解,系统100可以包括比图1中所示的组件更少或更多的组件。

编码器106被配置为根据一个或多个选择的空间化技术处理基于声道的音频和基于对象的音频。由编码器106生成的绘制流可以被传送到一个或多个输出设备105。在本文也称为“端点设备”的输出设备105的示例包括但不限于扬声器系统和耳机。编码器106和/或输出设备105可以被配置为利用诸如dolbyatmos、hrtf等的一种或多种空间化技术。

编码器106还可以实现其他功能,诸如一种或多种回声消除技术。这些技术有利于在应用环境之外进行选择和利用,因为个体应用不具有其他应用的任意上下文,因此不能确定何时应该使用回声消除和其他类似技术。

如上所述,本文公开的技术还使应用102能够使用多于一个3d床配置。在一个示意性示例中,当系统在诸如dolbyatmos的第一空间化技术下绘制音频时,系统100可以选择具有第一扬声器位置布置的第一3d音频床;并且当系统在诸如hrtf的第二空间化技术下绘制音频时,系统100可以选择具有第二扬声器位置布置的第二3d音频床。因此,当系统在空间化技术之间转换或不同输出设备之间转换时,系统100还可以选择针对所选择的空间化技术和/或输出设备而优化的个体3d床配置。

在一些配置中,系统100可以基于一个或多个动作在第一空间化技术和第二空间化技术之间转换。例如,如果用户如果系统100在hrtf下绘制音频,并且用户插入dolbyatmos扬声器系统或dolbyatmos耳机,则系统可以从hrtf空间化技术转换到dolbyatmos空间化技术。当系统100检测到不同空间化技术之间的转换时,系统可以选择最适合于所选空间化技术的3d音频床配置。为了促进这样的配置,系统100可以将不同的3d音频床配置与个体的空间化技术和/或诸如专用耳机或扬声器系统的特定的端点设备相关联。当发生这种转换时,如图2c所示,3d床引擎111可以将来自3d床引擎111的新床元数据175传送到一个或多个应用102。新床位元数据175的接收使得每个应用生成新的定制3d音频数据,新的定制3d音频数据将个体音频流与新床元数据175中定义的扬声器位置相关联。如图2d所示,每个应用102然后可以经由接口112将新的定制3d音频数据传送到3d床引擎111。

现在参考图3a-3c,下面示出并描述了示出示例3d音频床的各种配置的图示。图3a示出了具有多个扬声器对象301-303的第一3d音频床300a。每个扬声器对象与三维区域内的特定位置相关联。例如,特定扬声器对象可以具有由x、y和z值指定的位置。在该示例中,第一3d音频床300a包括围绕平面的周边定位的多个扬声器对象302a-302h。在该示例中,第一扬声器对象302a是右前扬声器对象,第二扬声器对象302b是前中央扬声器,第三扬声器对象302c是左前扬声器。其他扬声器对象302d-302h包括平面内的周围扬声器位置。第一3d音频床300a还包括位于平面下方的多个扬声器301a-301d,以及位于该平面上方的多个扬声器303a-303d。

3d床引擎111被配置为接收与个体扬声器位置相关联的音频流“信号”。3d床引擎111可以立即从多个应用102接收用于个体扬声器对象的音频流。例如,参考图3a,3d床引擎111可以为扬声器对象301-303中的每一个从多个应用102接收音频信号。该特征使得每个应用能够利用3d音频床300a的所有方面而无需隔离某些应用102使用这些资源。

床元数据175可用于定义与每个扬声器对象301-303相关联的属性,其包括每个扬声器对象的位置、每个扬声器对象的形状、每个扬声器对象的方向等。床元数据175可以被传送到一个或多个应用102,以使应用102能够将音频流与每个扬声器对象相关联。例如,应用和/或预处理器可以将一个或多个基于对象的音频轨道与第一3d音频床300a的一个或多个扬声器对象相关联。可以使用许多不同的技术来建立关联。

如上所述,系统100可以针对不同场景使用不同的3d音频床配置。例如,3d床引擎111可以利用具有特定空间化技术的第一3d音频床300a(图3a)。当系统100利用另一种空间化技术时,系统100可以转换到另一种3d音频床配置,诸如第二3d音频床300b(图3b)。这种类型的转换使系统100能够利用对于特定空间化技术而言最佳的3d音频床配置。当系统转换到新的输出设备时,可能会发生相同的转换。例如,当系统100从扬声器系统转换到耳机时,3d床引擎111可以从第一3d床配置转换到第二3d床配置。提供本文公开的示例是为了说明的目的,而不应解释为限制。可以理解,不同3d音频床配置之间的转换可以包括转换到具有完全不同布局的不同数量的扬声器的3d音频床配置。例如,系统100可以从图3a中所示的第一3d音频床300a转换到图3c中所示的第三3d音频床300c。

在上述示意性示例中,与第一配置(图3a)的扬声器对象相比,第二配置(图3b)的一些扬声器对象处于不同的位置。除了提供不同的位置之外,每个配置还可以关联每个扬声器对象的不同属性,例如,不同的形状属性、不同的方向等。如图3c所示,诸如第三3d音频床300c的其他3d音频床配置可以包括不同数量的扬声器对象。因此,当系统转换到不同的空间化技术或转换到不同的输出设备时,系统可以转换到具有任意合适数量的扬声器对象和任意合适数量的相关属性的新3d音频床。

现在转向图4,示出并描述了用于支持共享三维音频床的例程400的各方面。应该理解的是,本文公开的方法的操作不一定以任意特定的顺序呈现,并且以可替换的顺序执行一些或所有操作是可能的并且是可预期的。为了便于描述和说明,已经以示出的顺序呈现了操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。

还应该理解,所示方法可以在任意时间结束,并且不需要完整地执行。可以通过包括在计算机存储介质上的计算机可读指令的执行来执行方法的一些或所有操作和/或基本等同的操作,如下面所定义的。如在说明书和权利要求中使用的术语“计算机可读指令”及其变体在本文中被广泛使用,以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器、可编程消费电子产品、其组合等。

因此,应当理解,本文描述的逻辑操作被实现为(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)作为计算系统内的互连机器逻辑电路或电路模块。实现是一个选择问题,取决于计算系统的性能和其他要求。因此,本文描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任意组合来实现。

例如,例程400的操作在本文中被描述为至少部分地由应用、组件和/或电路实现,诸如3d床引擎111。在一些配置中,资源管理器190可以是动态链接库(dll)、静态链接库、由应用编程接口(api)产生的功能、编译程序、解释程序、脚本或任意其他可执行指令集。数据和/或模块、3d床引擎111可以存储在一个或多个存储器组件中的数据结构中。可以通过寻址对数据结构的链接或引用来从数据结构中取回数据。

尽管以下说明涉及图1和图5的组件,但是可以理解,例程400的操作也可以以许多其他方式实现。例如,例程400可以至少部分地由另一个远程计算机的处理器或本地电路实现。另外,例程400的一个或多个操作可以替代地或附加地至少部分地由个体工作或与其他软件模块一起工作的芯片组实现。适合于提供本文公开的技术的任意服务、电路或应用可以用于本文描述的操作中。

参考图4,例程400开始于操作401,其中3d床引擎111将3d床元数据175传送到多个应用102。如上所述,3d床元数据175定义用于三维音频床中的多个扬声器对象的个体扬声器对象的位置。床元数据175还可以定义关于每个扬声器对象的属性。例如,床元数据175可以指示扬声器对象被配置为根据特定形状或模式运行,例如,全向、双向、心形、抛物线、霰弹枪等。床元数据175还可以指示,除了其他属性(也称为“特性”),扬声器对象的方向。

在操作403,3d床引擎111选择空间化技术。在一些配置中,可以基于编码器或输出设备的能力来选择空间化技术。例如,如果编码器配置为适应dolbyatmos空间化技术,则资源管理器可以选择dolbyatmos空间化技术。在一些配置中,可以基于一个或多个偏好来选择空间化技术。例如,当耳机可用时,用户可以指示在扬声器系统上使用耳机的偏好。如果耳机被配置为适应特定的空间化技术,诸如hrtf,并且耳机被插入系统100,则可以选择特定的空间化技术。提供这些实施例是为了说明的目的,不应解释为限制。

接下来,在操作405,3d床引擎111接收符合床元数据175的定制3d音频数据176。在一些配置中,当应用102接收3d床元数据175时,它们将具有多个音频流(诸如媒体文件或视频游戏的基于对象的音频)的原始形式的基于对象的音频数据处理成定制3d音频数据176,该定制3d音频数据176将音频流与3d床元数据175中定义的扬声器对象相关联。应用可以使用多种不同技术(例如,折叠和共同定位音频对象)处理原始形式的基于对象的音频数据,以生成将个体音频流与3d床元数据175中定义的扬声器对象相关联的定制3d音频数据176。在一个示意性示例中,第一应用102a、第二应用102b以及第三应用102c的第一源133a和第二源133b均可以各自将音频流与图3a中所示的第一3d音频床300a的个体扬声器对象相关联。定义关联的定制3d音频数据176可以用音频流与从应用102被传送到3d床引擎111。

在操作405中,3d床引擎111将从应用102接收的音频流混合以用于个体扬声器对象。例如,第一应用102a、第二应用102b以及第三应用102c的第一源133a和第二源133b可以各自发送用于3d音频床的个体扬声器对象的音频流,并且3d床引擎111混合每个扬声器对象的音频流以生成混合音频数据178。在将音频数据发送到编码器106以进行渲染之前,为每个扬声器对象混合音频流有助于将一些处理资源从编码器106移开。

在操作407,3d床引擎111使得编码器106使用所选择的空间化技术从混合音频数据178生成绘制音频。在操作407中可以使用任意合适的空间化技术。此外,操作407还可以包括用于下载被配置为实现所选择的空间化技术的软件的过程。在一些配置中,一个或多个编码器106可以利用所选择的空间化技术来生成空间编码流,例如,绘制音频。

接下来,在操作409,3d床引擎111使得绘制音频到端点设备的传送。例如,绘制音频可以传送到扬声器系统或耳机。在操作409中,3d床引擎111还可以将2d音频与绘制音频组合。从编码器到一个或多个端点设备的绘制输出信号的传送产生了产生个体音频流的音频输出。端点设备产生个体音频流的音频输出(可听波形),其中个体音频流的音频输出(例如,实际声音内容)从与个体音频流相关联的个体扬声器对象的位置发出。在端点设备包括物理扬声器作为扬声器对象的输出的配置中,与该扬声器对象相关联的音频流的音频输出从物理扬声器发出。在扬声器对象与具有相关位置的虚拟扬声器相关联的配置中,与该扬声器对象相关联的音频流的音频输出听起来好像它是从虚拟扬声器的位置发出。出于示意性目的,从个体扬声器对象的位置发出的个体音频流的音频输出意味着从物理扬声器发出的音频输出或被配置为模拟从虚拟扬声器发出的输出的音频输出。

接下来,在操作411,3d床引擎111可以接收指示系统100中的变化的上下文数据。例如,上下文数据可以包括一个或多个改变的偏好、指示空间化技术的更新能力的数据、指示编码器的更新能力的数据、或指示一个或多个端点设备的更新能力的数据。例如,当用户插入被配置为适应特定空间化技术的新耳机时或者当用户或系统100提供改变空间化技术的命令时,可以发生操作411。在这样的示例中,3d床引擎111可以选择新的3d床并因此选择定义新3d床的各方面的新床元数据175。在其他示例中,对计算机的更新可以包括空间化技术的一个或多个更新的组件,例如,功能的类别。功能的类别可以与一个或多个特征相关联,诸如对象数量的限制、处理音频数据的方式等。对空间化技术的更新可以包括对一个或多个参数的更新,诸如空间化技术可以同时处理的对象的数量,或者将个体音频流编码成音频输出的方法中的改变。

当在操作411中选择新的3d床时,例程400返回到操作405,其中编码器使用新的3d床生成绘制音频。进而,例程400继续到其他操作,其中为新3d床生成的绘制音频被传送到一个或多个端点设备。可以理解,例程400可以继续通过操作405和411,以在系统100的偏好和/或能力改变时动态地改变所选择的3d床。

图5示出了能够执行本文描述的程序组件的诸如例如计算设备101(图1)的计算机的示例计算机架构500的附加细节。因此,图5中所示的计算机架构500示出了用于服务器计算机、移动电话、pda、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的架构。计算机架构500可用于执行本文呈现的软件组件的任意方面。

图5中所示的计算机架构500包括中央处理单元502(“cpu”)、系统存储器504、包括随机存取存储器506(“ram”)和只读存储器(“rom”)508、以及将存储器504耦合到cpu502的系统总线510。包含有助于诸如在启动期间在计算机架500内的元件之间传送信息的基本例程的基本输入/输出系统存储在rom中。计算机架构500还包括用于存储操作系统507、一个或多个应用102、资源管理器190、3d床引擎111以及其他数据和/或模块的大容量存储设备512。

大容量存储设备512通过连接到总线510的大容量存储控制器(未示出)连接到cpu502。大容量存储设备512及其相关的计算机可读介质为计算机架构500提供非易失性存储装置。虽然本文包含的计算机可读介质的描述是指大容量存储设备,诸如固态驱动器、硬盘或cd-rom驱动器,但是本领域技术人员应该理解计算机可读介质可以是计算机架构500可以访问的任意可用的计算机存储介质或通信介质。

通信介质包括诸如载波或其他传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据,并且包括任意传送介质。术语“调制数据信号”表示以对信号中的信息进行编码的方式改变或设置其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外和其他无线介质的无线介质。上述任意组合也应包括在计算机可读介质的范围内。

作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任意方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如、计算机介质包括但不限于ram、rom、eprom、eeprom、闪存或其他固态存储器技术、cd-rom、数字通用盘(“dvd”)、hd-dvd、blu-ray。或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或可用于存储所需信息并且可由计算机架构500访问的任意其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体不包括波、信号和/或其他暂时和/或无形通信介质本身。

根据各种配置,计算机架构500可以使用通过网络556和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构500可以通过连接到总线510的网络接口单元514连接到网络556。应当理解,网络接口单元514也可以用于连接到其他类型的网络和远程计算机系统。计算机架构500还可以包括输入/输出控制器516,用于接收和处理来自多个其他设备的输入,包括键盘、鼠标或电子笔(图5中未示出)。类似地,输入/输出控制器516可以向显示屏、打印机或其他类型的输出设备(也未在图5中示出)提供输出。

应当理解,本文描述的软件组件在被加载到cpu502中并且被执行时,可以将cpu502和整个计算机架构500从通用计算系统变换为定制为促进本文呈现的功能的专用计算系统。cpu502可以由任意数量的晶体管或其他分立电路元件构成,其可以个体地或共同地呈现任意数量的状态。更具体地,响应于包含在本文公开的软件模块内的可执行指令,cpu502可以作为有限状态机操作。这些计算机可执行指令可以通过指定cpu502如何在状态之间转换来变换cpu502,从而变换晶体管或构成cpu502的其他分立硬件元件。

对本文呈现的软件模块进行编码还可以变换本文呈现的计算机可读介质的物理结构。在本说明书的不同实施方式中,物理结构的特定变换可取决于各种因素。这些因素的示例可以包括但不限于用于实现计算机可读介质的技术,计算机可读介质是否被表征为主存储器或辅助存储器等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态将本文公开的软件编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。该软件还可以转换这些组件的物理状态,以便在其上存储数据。

作为另一示例,本文公开的计算机可读介质可以使用磁或光技术来实现。在这样的实现中,当在其中编码软件时,本文呈现的软件可以变换磁性或光学介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,其中提供的前述示例仅用于促进该讨论。

鉴于以上所述,应当理解,在计算机架构500中发生了许多类型的物理变换,以便存储和执行本文给出的软件组件。还应当理解,计算机架构500可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还想到计算机架构500可以不包括图5中所示的所有组件,可以包括未在图5中明确示出的其他组件,或者可以利用与图5中所示的完全不同的架构。

最后,尽管已经用结构特征和/或方法动作专用的语言描述了各种配置,但是应该理解,所附表示中定义的主题不必限于所描述的特定特征或动作。相反,公开了特定特征和动作作为实现所要求保护的主题的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1