片上系统平台上的用于音频分布的音频管线的制作方法

文档序号:6497808阅读:198来源:国知局
片上系统平台上的用于音频分布的音频管线的制作方法
【专利摘要】描述了一种片上系统上的用于音频分布的音频管线。在一个示例中,方法包括:使用耦合到在处理器上运行的操作系统的管线管理器向硬件音频模块添加音频输入端,连接音频输入端至音频源,向硬件音频模块添加音频输出端,以及使用管线管理器连接音频输出端至音频池。
【专利说明】片上系统平台上的用于音频分布的音频管线

【背景技术】
[0001] ATSC(高级电视标准委员会)以及其它数字电视和音频回放标准已经进步了电子 电视的时代。为了支持电子节目指南、电子文件播放器、因特网接入和其它特点,已经开发 了复杂的软件驱动系统。结果是,电视和机顶盒可以在微处理器控制下使用操作系统(0S), 而不是具有很少的用户输入选项的单芯片硬件解决方案,例如那些用于视频磁带记录器或 数字多功能光盘播放器的方案。操作系统顾及了复杂的用户输入设备(例如全键盘和运动 控制器)以及广泛的可配置选项和增加用于额外功能的应用的能力。
[0002] 目前很多不同的操作系统用于操作电视和机顶盒。一些是复杂的,例如Microsoft Windows、Apple OS X以及Linux。在一些情况下,这些复杂的全功能操作系统被消除了未使 用的功能,但依然严重地依赖于主中央处理单元来执行其功能。最近,智能电话操作系统, 例如Windows CE、Apple iOS以及Android,已经被用来在机顶盒和电视中使用。这些操作 系统虽然更加简洁,但是设计其的目的在于在智能电话中使用并且支持主要依赖于单个微 处理器的硬件架构中的多种不同功能。
[0003] 即使当专门被采用来用作电视或机顶盒操作系统时,基本的0S设计也是针对用 于用于执行任何以及所有期望功能并且驱动任何附接设备的单个通用微处理器的。附接设 备通常是输入和输出设备,例如无线电单元、有线数据总线、触摸屏或键盘,或用于输出,扬 声器和显不器。
[0004] Google TV是专门为电视或机顶盒开发的操作系统的示例。其基于Android平 台并且包括如果蓝牙配置文件以及其它智能电话功能,包括蓝牙高级音频分布配置文件 (A2DP)。正如适合于智能电话架构,数据流通过软件进入A2DP软件栈并从那里直接去向蓝 牙无线电单元以便传输。处理器执行音频取样率转换及混合过程,并且管理数据向蓝牙无 线电单元的输出。然而,这严重地消耗了中央处理单元(CPU)的带宽并且影响了其性能。 在CPU被中断以用于其它任务时,输出音频可能是起伏不定的或者具有跳跃。软件配置在 其能够同时支持多少并发视频流方面也是受到限制的。在Google TV示例中,A2DP耳机和 TV扬声器不能同时输出来自媒体流的音频。相似地,A2DP耳机不能同时地输出TalkBack 声音和系统声音。TalkBack声音是菜单文本阅读。这些限制来自0S的结构以及它与CPU 一起操作的方式。

【专利附图】

【附图说明】
[0005] 在附图的图中,通过示例的方式而不是限制的方式示出了本发明的实施例,在附 图中,相同的参考标记指代相同的元素。
[0006] 图1是根据本发明的实施例使用管线管理器连接硬件音频模块的在过程流程图。
[0007] 图2是根据本发明的实施例的音频和视频播放器中的管线管理器的层级图。
[0008] 图3是根据本发明的实施例的音频和视频播放器内的连接的框图。
[0009] 图4是根据本发明的实施例的音频和视频播放器的框图。

【具体实施方式】
[0010] 基于软件的音频取样率转换和混合对CPU的需求很大,并且可能被其它过程所中 断。通过向CPU增加专用音频处理硬件资源,对CPU处理核心的使用可以独立于音频信号 处理软件栈。在0S适当变化的情况下,这允许蓝牙A2DP、TalkBack、系统声音和其它类型 的音频被输出到A2DP耳机以及输出到音频池(sink),而无需消耗明显更多的CPU带宽。 [0011] 在一个实施例中,电视或机顶盒或其它媒体回放设备具有高效的音频管线方案, 供系统声音、媒体声音和其它声音通过蓝牙A2DP扬声器和其它输出端而被输出。在一个不 例中,S0C(片上系统)包括音频处理资源,例如,Intel CE (消费电子)S0C包括中央处理核 以及大功率硬件音频处理器,使得音频解码、音频取样率转换、以及音频混合能够被专用硬 件来处理,而不是被通用CPU处理。这释放了 CPU的带宽来处理其它任务。
[0012] 图1是可被添加到电视或机顶盒操作系统来改进性能和输出质量的软件栈的通 信流程图。虽然当前示例是在具有集成处理资源的电视或可以作为输入端被连接到电视的 机顶盒的环境中示出的,但是相似的技术还可以被应用到其它娱乐组件,例如接收机、播放 器和调谐器,以及应用到便携媒体播放器、智能电话和相似的设备。在一个实施例中,该过 程流程可以被实现为管线管理器(pipeline manager)。图1示出了可以被配置为通过管线 管理器进行通信的组件。这些组件包括媒体回放应用21、诸如TalkBack应用之类的系统 菜单或用户接口声音应用22、诸如按钮按下和屏幕手势接触之类的系统声音23、硬件音频 处理模块24以及输出组件25 (例如蓝牙栈、WiFi栈、WiDi栈(无线显示)栈、以太网栈、 HDMI (高清晰度多媒体接口)或任何其它输出)。
[0013] 在11处,从音频处理模块获取音频处理器句柄。然后使用所获取的句柄来组装 (assemble)输入端和输出端。在12,音频输出端被添加到音频处理模块。这个操作可以是 使用配置寄存器或音频处理模块的开关的配置操作。在13,输出端被连接。该输出端可以 被连接到范围广泛的不同音频池(包括设备、层级和组件)中的任何一个。在所示的示例 中,输出端被添加到蓝牙A2DP栈。然而,其可以耦合到不同的无线或有线音频协议栈或耦 合到不同的无线或有线接口,这取决于用户配置和选择。
[0014] 在输出端被配置的情况下,多种不同音频资源中的任何一种可以作为输入端被添 加到音频处理模块。在14,按钮声音作为音频输入被添加到音频处理模块。按钮声音来自 系统,用于向用户输入提供反馈。在15, TalkBack声音作为输入被添加到音频处理模块。 TalkBack是Google TV所使用的对讲菜单的名称,然而,其它系统可以将其它名称用于语 音输入、菜单和系统导航。TalkBack声音来自TalkBack应用。相应地,软件栈尚未将应用 所产生的声音连接到音频处理模块以通过A2DP栈进行输出。除了 TalkBack声音以外或者 替代TalkBack声音,可以使用任何其它应用声音。其它应用可以是推送通知、推荐、命令反 馈或用于其它目的的应用声音效果。
[0015] 在16,基本的音频流作为输入被添加到音频处理模块。这种流是播放器将播放的 来自媒体回放应用的音频。该音频可以来自仅音频源,例如音乐播放器应用、因特网无线电 台或电话应用,或者该音频可以来自视频源,无论是存储的视频还是作为流、作为广播数据 或以其它形式接收的视频。
[0016] 在17,配置混合器参数。将这些参数应用到音频处理模块的混合器,以混合来自所 有音频输入端的音频,以便之后供应到音频输出端。在18,将混合的音频应用到所配置的音 频输出端。在所示的示例中,音频输出端是A2CP栈,所以该音频是通过蓝牙A2DP耳机或远 程扬声器回放的。
[0017] 在会话的结束处,在19,从A2DP栈断开输出端,并且在20,从音频输出模块移除音 频输出端。根据特定实施例,可以默认地或通过特定的用户设置来为下一次会话重新设置 软件栈。
[0018] 图2示出了用于实现图1的过程的系统的层级结构。在物理层处的是S0C31。S0C 可以包括视频处理32、音频解码33、音频取样率转换34以及音频混合器。S0C的这些设备 对0S而言都是可访问的并且能被0S配置(如果0S是这样使能的话)。0S软件栈37耦合 到物理层资源来控制它们的操作。如上所述,管线管理器38被添加到0S栈,以在物理层中 配置输入端和输出端。应用39与0S交互,来提供用户接口、源选择以及更高级的过程。
[0019] 图3是图1中的过程以及它们在该示例中如何通过图2的层进行交互的图。硬件 音频处理器24是S0C的一部分,或可以是与CPU相同的封装中的单独的一组组件,或者可 以耦合到CPU。音频处理模块接收来自一个或多个输入端的音频。在该图中,输入包括:由 CPU上的应用产生的功能声音22, CPU上的操作系统产生的系统声音23,以及从耦合到系统 的通信或存储接口接收到的音频或视频流21。依赖于流的性质,其可以在解复用器51中被 解复用以将数据组装为音频和视频分量,或者使复用的分量分离。然后其作为压缩数据被 应用到硬件音频解码器33。
[0020] 硬件音频解码器组件33包括在音频处理模块24中,用来解码音频压缩数据,例如 AAC(高级音频编解码器)、MP3(运动图像专家组V. 3)等。依赖于特定的实施例,可能具有 解码器的一个或多个实例。
[0021] 音频处理模块还包括一个或多个硬件音频取样率转换器(SRC)34-l、34-2、34-3。 这些组件被耦合到音频输入端来对进入的或外出的音频的音频取样率进行转换,例如从通 常用于记录音乐的44. Ik的取样率转换到通常用于记录电影的48k的取样率。第一 SRC34-1 被耦合到音频/视频流21。第二SRC34-2被耦合到应用功能声音22,并且第三SRC被耦合 到系统声音23。在所示的实施例中,使用取样率转换器来在音频混合前将不同采样率的音 频源转换为统一的采样率。
[0022] 使用硬件音频混合器组件35-U35-2来将多个音频数据混合成单个音频输出流。 第一硬件混合器35-1被耦合到在一侧的所有三个音频源以及耦合到另一侧的A2DP栈25。 A2DP栈可被耦合到蓝牙耳机52、扬声器、或任何其它期望的音频输出设备。第二硬件混合 器35-2被耦合到这三个音频源和另一侧的TV扬声器53。混合器,像S0C的音频处理器的 其它组件一样,可以被连接到不同的输入端和输出端,这取决于管线管理器的操作。
[0023] 使用所示的配置,通过引入被嵌入在S0C中的硬件音频解码器、硬件取样率转换 器以及硬件混合器,解决了单个微处理器执行全部所描述功能的性能问题。另外,当S0C被 配置时,通过添加用于A2DP输出的专用硬件混合器,A2DP耳机和TV扬声器能够同时输出 来自媒体流的音频。使用独立的音频混合器,可以根据用户需要来配置每个输出端。通过 改变混合器参数,A2DP耳机可以被配置为在其输出中具有或不具有TalkBack声音和系统 声音。
[0024] 这种结果允许改进性能并且增强了 S0C的优势。蓝牙A2DP音频性能被保持,并且 用户体验的质量也被保持。
[0025] 图4是实现上述技术的电视或机顶盒的框图。系统使用耦合到多个外围设备以及 电源(未示出)的S0C60。S0C的CPU61运行0S栈和应用,并且耦合到S0C内的系统总线 68。0S栈包括由CPU执行的管线管理器,或与之交互,并且被存储在也被耦合到总线的大容 量存储设备66。大容量存储设备可以是闪存存储器、光盘存储器、或任何其它类型的非易失 性存储器。0S、管线管理器、应用以及各种系统和用户参数都在那里存储,以便当系统启动 时被加载。
[0026] S0C还可以包括额外的硬件处理资源,全部通过系统总线被连接起来,以执行可以 由CPU分配的特定的重复性任务。这些包括:视频解码器62,用于对机顶盒被设计来支持 的流格式、存储格式、光盘格式和照相机格式中的任意一种格式的视频进行解码。上述音频 解码器63对来自多种不同源格式中的任何一种格式的音频进行解码,执行取样率转换、混 合以及编码为其它格式。音频解码器还可以将环绕声音或其它音频效果应用到所接收的音 频。
[0027] 可以提供显示处理器来执行视频处理任务,例如,解交织、去锯齿 (anti-aliasing)、降噪或者格式和分辨率调整。图形处理器65可以耦合到总线来执行阴 影化、视频重叠以及混合,并生成多种图形效果。所有硬件处理资源和CPU也可以耦合到诸 如DRAM (动态随机存取存储器)或SRAM (静态RAM)之类的高速缓冲存储器,以用于执行所 分配的任务。每个单元还可以具有用于配置以及用于短期存储指令和变量的内部寄存器。
[0028] 还可以在S0C内提供多种不同的输入和输出接口,并且这些接口通过系统总线或 者专用总线进行耦合,所述专用总线使用适合于特定类型的正在传输的数据的专用协议进 行操作。视频传输器71接收来自多种不同视频源78 (例如,调谐器、外部存储器、光盘播放 器、因特网资源等)的任何一种的视频。音频传输器72接收来自音频源79(例如,调谐器、 播放器、外部存储器以及网络资源)的音频。
[0029] 通用输入/输出块73耦合到系统总线,以连接至用户接口设备80,例如远程控件 或控制器、键盘、控制面板等,并且还连接至用于外部存储器81的其它通用数据接口。外部 存储器81可以是智能卡、光盘存储器、闪存存储器、媒体播放器或任何其它类型的存储器。 这样的设备可以用于提供用于回放的媒体、软件应用或操作系统更改。
[0030] 网络接口 74耦合到总线,来允许连接至多种网络85中的任何一种,包括局域网和 广域网,无论是有线的还是无线的。通过经由系统总线提供数据和指令,可以通过网络接口 来提供因特网媒体和升级以及游戏玩乐和通信。通过网络接口 74向蓝牙无线电单元85馈 送上述蓝牙A2DP栈。
[0031] 音频/视频渲染接口 75也耦合到系统总线68,来向音频/视频渲染驱动器82提 供模拟或数字音频/视频输出。音频/视频渲染驱动器对显示器83和扬声器84进行馈送。 音频/视频渲染驱动器可以对不同的视频和音频池进行馈送。音频/视频渲染驱动器可以 是有线的或无线的。例如,音频/视频渲染驱动器可以被用于向远程扬声器发送无线蓝牙 音频,而不是将网络接口用于蓝牙无线电接口。音频/视频渲染驱动器还可以用于无线地 向远程显示器发送WiDi (无线显示)视频。
[0032] 对于某些实现而言,比上述示例装备得更少或更多的系统可能是优选的。从而,示 例性的片上系统和机顶盒的配置将随着实现的不同而不同,这取决于多种因素,例如价格 约束、性能要求、技术改进或其它环境。
[0033] 实施例可以被实现为以下中的任何一种或组合:使用主板互连的一个或多个微芯 片或者集成电路、硬连线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集 成电路(ASIC)和/或现场可编程门阵列(FPGA)。举例来说,术语"逻辑"可以包括软件或 硬件和/或软件和硬件的组合。
[0034] 例如,可以将实施例提供成计算机程序产品,其可以包括其上存储有机器可执行 指令的一个或多个机器可读介质,所述机器可执行指令在被诸如计算机、计算机网络或其 它电子设备之类的一个或多个机器执行时,可以导致所述一个或多个机器执行根据本发明 实施例的操作。机器可读介质可以包括但不限于:软盘、光盘、CD-ROM(只读压缩光盘存储 器)以及磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPR0M(可擦除可编程只读存 储器)、EEPR0M(电可擦除可编程只读存储器)、磁或光卡、闪存或者适于存储机器可执行指 令的其它类型的介质/机器可读介质。
[0035] 另外,实施例可以作为计算机程序产品被下载,其中,可以经由通信链路(例如, 调制解调器和/或网络连接),通过嵌入在载波或其它传播介质中的和/或被载波或其它传 播介质调制的一个或多个数据信号,将程序从远程计算机(例如,服务器)传输到请求计算 机(例如,客户端)。相应地,如本文中使用的,机器可读介质可以但并不需要包括这样的载 波。
[0036] 在实施例中,本发明可以被并入到个人电脑(PC)、膝上型电脑、超级膝上型电脑、 平板电脑、触摸平板电脑、便携式电脑、手持电脑、掌上电脑、个人数字助理(PDA)、蜂窝电 话、组合蜂窝电话/PAD、电视、智能设备(例如,智能电话、智能平板电脑、智能电视)、移动 因特网设备(MID)、消息传送设备、数据通信设备等等中。
[0037] 对"一个实施例"、"实施例"、"示例性实施例"、"各个实施例"等等的提及是指示这 样描述的本发明的实施例可以包括特定特征、结构或特性,但并不是每个实施例都必须包 括所述特定特征、结构或特性。另外,一些实施例可以具有针对其它实施例所描述的特征中 的一些、全部或不具这些特征中的任何一个。
[0038] 在下面的描述和权利要求书中,可以使用术语"耦合的"及其派生词。"耦合的"用 于指示两个或更多个元件彼此合作或交互,但是它们可以具有或者可以不具有介于它们之 间的物理或电组件。
[0039] 如权利要求中使用的,除非另外指明,否则使用序数形容词"第一"、"第二"、"第 三"等来描述共同元件仅仅指示正在提及相同元件的不同实例,并且并不是要暗示这样描 述的元件必须在时间上、空间上、排序上或以任何其它方式处于给定顺序。
[0040] 附图和前述描述给出了实施例的示例。本领域技术人员将理解的是,所描述的元 件中的一个或多个可以被组合成单个的功能元件。可替换地,某些元件可以被分割为多个 功能元件。来自一个实施例的元件可以被添加到另一实施例中。例如,本文中所描述的过 程的顺序可以被改变,并且并不限于所描述的方式。另外,任意流程图中的动作不必以示出 的顺序来执行;也不是需要执行所有的动作。另外,那些并不依赖于其它动作的动作可以与 所述其它动作并行执行。实施例的范围并不是由这些特定示例来限制的。多种变形,不论 是否在说明书中明确给出,例如结构上、尺寸上以及材料使用上的差异,都是可能的。实施 例的范围至少与以下权利要求所给出的一样宽泛。
【权利要求】
1. 一种方法,包括: 使用耦合到在处理器上运行的操作系统的管线管理器,来向硬件音频模块添加音频输 入端; 使用所述管线管理器将所述音频输入端连接至音频源; 使用所述管线管理器向所述硬件音频模块添加音频输出端;以及 使用所述管线管理器将所述音频输出端连接至音频池。
2. 如权利要求1所述的方法,进一步包括: 向所述硬件音频模块添加第二音频输入端; 将所述第二音频输入端连接至第二音频源; 将所述第一音频输入端和所述第二音频输入端连接至所述硬件音频模块的混合器;以 及 将所述音频输出端连接至所述混合器,使得输入的音频在被提供到所述音频输出端之 前被混合。
3. 如权利要求1所述的方法,进一步包括:使用所述管线管理器来配置所述混合器。
4. 如权利要求1所述的方法,进一步包括: 从所述音频池断开所述输出端;以及 从所述硬件模块移除所述音频输出端。
5. 如权利要求1所述的方法,其中,所述音频池是协议栈。
6. 如权利要求2所述的方法,进一步包括: 向所述硬件音频模块添加取样率转换器; 将所述第二音频输入端连接至所述取样率转换器,以将所述第二音频输入端的取样率 转换成所述第一音频输入端的取样率;以及 使用所述管线管理器将取样率被转换的第二音频输入端提供给所述混合器。
7. 如权利要求1所述的方法,其中,所述管线管理器位于所述操作系统内。
8. 如权利要求1所述的方法,进一步包括:从所述硬件音频模块获取音频处理器句柄, 并且其中,添加音频输入端包括使用所获取的句柄向所述硬件音频模块添加音频输入端。
9. 如权利要求1所述的方法,其中,连接所述音频输出端包括将所述音频输出端连接 至蓝牙音频分布栈。
10. -种装置,包括: 硬件音频模块,具有可配置的音频输入端和可配置的音频输出端; 中央处理单元,用于执行操作系统; 管线管理器,用于响应于来自所述操作系统的调用来配置所述硬件音频模块,所述管 线管理器将所述音频输入端连接至音频源,并且将所述音频输出端连接至音频池。
11. 如权利要求10所述的装置,其中,所述硬件音频模块进一步包括音频混合器和第 二音频输入端,所述管线管理器进一步将所述第二音频输入端连接至第二音频源,将所述 第一音频输入端和所述第二音频输入端连接至所述混合器,以及将所述音频输出端连接至 所述混合器,使得输入的音频在被提供到所述音频输出端之前被混合。
12. 如权利要求11所述的装置,其中,所述硬件音频模块进一步包括取样率转换器,所 述管线管理器进一步将所述第二音频输入端连接至所述取样率转换器,以将所述第二音频 输入端的取样率转换成所述第一音频输入端的取样率,并且配置所述硬件音频模块来将取 样率被转换的第二音频输入端提供给所述混合器。
13. 如权利要求10所述的装置,所述管线管理器进一步从所述音频池断开所述输出 端,并且从所述硬件模块移除所述音频输出端。
14. 如权利要求10所述的装置,其中,所述音频池是协议栈。
15. -种其上具有指令的计算机可读介质,所述指令在被机器执行时导致所述机器执 行包括以下的操作: 使用耦合到在处理器上运行的操作系统的管线管理器,来向硬件音频模块添加音频输 入端; 使用所述管线管理器将所述音频输入端连接至音频源; 使用所述管线管理器向所述硬件音频模块添加音频输出端;以及 使用所述管线管理器将所述音频输出端连接至音频池。
16. 如权利要求15所述的介质,其中,所述操作进一步包括: 向所述硬件音频模块添加第二音频输入端; 将所述第二音频输入端连接至第二音频源; 将所述第一音频输入端和所述第二音频输入端连接至所述硬件音频模块的混合器;以 及 将所述音频输出端连接至所述混合器,使得输入的音频在被提供到所述音频输出端之 前被混合。
17. 如权利要求15所述的介质,其中,所述操作进一步包括:使用所述管线管理器来配 置所述混合器。
【文档编号】G06F3/16GK104094219SQ201280064683
【公开日】2014年10月8日 申请日期:2012年12月12日 优先权日:2011年12月29日
【发明者】J·顾, C·李, H·沈, Y·C·朱 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1