可提供预测重新采样器调度器算法。可从生产者接收音频帧。音频帧可被传送给消费者,并且可计算在接收音频帧和传送音频帧之间的延迟。响应于确定延迟包括不在阈值时间范围内的值,可以在将帧传送给消费者之前修改音频帧的大小。
【技术实现步骤摘要】
本专利技术涉及预测重新采样器调度器算法。
技术介绍
预测重新采样器调度器算法是用于修改音频缓冲器的大小的过程。在一些情况下,音频编码器可以以和耦合的音频解码器不同的时钟速度进行操作。例如,在音频提供者 /消费者环境中,每次生产者的时钟计时时,新的音频帧变得可用。每次消费者的时钟计时时,它渴望一个音频帧。在常规的各系统中,如果生产者的时钟比消费者的时钟计时快,则太多数据可累积并且溢出消费者的缓冲器,这可导致音频输出中的跳跃。如果生产者的时钟比消费者的时钟计时慢,消费者将会极度缺乏数据并且可经历音频输出中的间隙。
技术实现思路
提供本
技术实现思路
以便以简化形式介绍在以下的具体实施方式中进一步描述的一些概念。本
技术实现思路
并非旨在标识所要求保护的主题的关键特征或必要特征。本
技术实现思路
亦非旨在用于限制所要求保护的主题的范围。可提供预测重新采样器调度器算法。可从生产者接收音频帧。音频帧可传送给消费者,并且可计算在接收音频帧和传送音频帧之间的延迟。响应于确定延迟包括不在阈值时间范围内的值,在将音频帧传送给消费者之前可修改该音频帧的大小。前述概括描述和以下详细描述两者都提供示例并且都只是说明性的。因此,前述概括描述和以下详细描述不应被认为是限制性的。此外,除了此处所阐明的那些之外还可提供其他特征或变型。例如,各实施例可涉及在详细描述中描述的各种特征组合和子组合。附图说明合并在本公开中并且构成其一部分的附图示出本专利技术的各种实施例。在附图中图1是操作环境的框图;图2是用于初始化重新采样器调度器算法的方法的状态图;图3是用于调度音频重新采样操作的方法300的状态图;以及图4是包括计算设备的系统的框图。具体实施例方式以下详细描述参考各附图。只要可能,就在附图和以下描述中使用相同的附图标记来指示相同或类似的元件。尽管可能描述了本专利技术的各实施例,但是修改、改编和其他实现也是可能的。例如,可对附图中所示出的元件进行置换、添加、或修改,并且可通过对所公开的方法置换、重新排序、或添加阶段来修改此处所描述的方法。因此,以下详细描述并不限制本专利技术。相反,本专利技术的正确范围由所附权利要求书定义。可提供预测重新采样器调度器算法。根据本专利技术的各实施例,可修改音频流生产者和/或消费者的缓冲器大小以迫使在生产者和消费者的定时器计时之间的延迟为已知的时间跨度。这个时间跨度此处可称为生产者-到-消费者延迟。生产者-到-消费者延迟可以是可调的,并且在一些实施例中,可包括半个缓冲器。在流传送活动期间,重新采样器调度器可跟踪最后几个缓冲器的生产者-到-消费者延迟的移动平均。只要移动平均开始在一个方向上摇动,重新采样器调度器就可决定调度重新采样操作(伸展或收缩一个音频帧)以迫使平均延迟在摇动的相反方向上。以此方式,重新采样器调度器是可预测的,因为它迫使时钟速率的纠正(通过重新采样缓冲器)在它显著地影响流中的等待时间之前发生。图1是用于提供重新采样器调度器算法的操作环境100的框图。操作环境100可包括音频流生产者110,音频流消费者120和调度器重新采样器工具130。例如,生产者110 可包括诸如参考图4如下所述的计算设备400的计算机中的音频卡,并且消费者120可包括诸如经由通用串行总线(USB)连接耦合至计算机的一组头戴式耳机的音频输出设备。调度器重新采样器工具可包括在计算机上执行的用于启动、监视、修改、停止和/或以其他方式帮助将音频流从生产者110传送给消费者120的软件应用、服务和/或其他过程。FIG.图2是阐明用于初始化重新采样器调度器算法的方法200中所涉及的各概略阶段的状态图。方法200可使用如以下参考图4更详细地描述的计算设备400来实现。以下将更详细地描述实现方法200的各阶段的方式。方法200可开始于起始框205并且前进到阶段210,在阶段210计算设备400可开始等待生产者事件。为了描述方法200,工具130 可与生产者110相关联。与生产者110相关联的事件可在图2上用“P”指定,并且与消费者120相关联的事件可在图2上用“C”指定。根据本专利技术的各实施例,可实现方法200,工具130与消费者120相关联,在这种情况下,消费者/生产者事件指定可以被倒转。例如, 操作环境100可与相同计算机的两个组件相关联,其中工具130可以诸如通过暂停和/或重启定时器时钟和/或调节与生产者110和/或消费者120相关联的缓冲器大小来监视和 /或控制生产者110和消费者120。又例如,操作环境100可与两个单独的设备相关联,并且工具130可只控制生产者110或消费者120中的一个。在阶段210中,工具130可开始等待生产者110以经历时钟计时和/或提供音频流数据中的一帧。根据本专利技术的各实施例,每一帧可包括一音频数据量,该音频数据量填充生产者110的编码缓冲器并且可与音频流的可配置时间期间相关联。例如,每一个生产的帧可包括5毫秒的音频数据。在阶段210中,工具130可测量在生产者110和/或消费者 120的连续帧事件之间的时间量。如果消费者事件(例如,与对下一数据帧的请求相关联的时钟计时)在阶段210 中时发生,则计算设备400可保留在阶段210中并且等待生产者事件。根据本专利技术的各实施例,工具130可测量在消费者时钟计时之间的时间和/或在等待生产者事件时停止消费者时钟。当生产者事件发生时,方法200可前进到阶段215,在阶段215计算设备400可开始等待下一消费者事件。如果计算设备400在阶段215中时接收后续生产者事件,则计算设备400可保留在阶段215中。否则,当接收消费者事件时,方法200可确定在上一个生产者事件和消费者事件之间经过了多少时间。例如,在阶段210中时,可发生生产者事件,并且方法200可前进到阶段215。另一生产者事件可在10毫秒之后发生,并且方法200可保留在阶段215中。可建立在生产者计时之间的一半时间(例如,5毫秒)的目标延迟。当发生消费者事件时,工具130可确定在消费者事件和前一生产者事件之间经过了多少时间。如果在消费者事件和前一生产者事件之间的时间小于目标时间,方法200可前进到阶段220,在阶段220计算设备400可传输等待音频帧的一部分。例如,每一个生产的帧可包括6毫秒的数据。该时间的一半是3毫秒,其可包括在生产者和消费者计时之间的目标时间。如果消费者计时在生产者计时2毫秒之后发生,工具130可传输缓冲器的一部分以同步消费者时钟。这可通过传输等于目标时间减去在计时之间的实际时间的数据量(例如,从等待帧传输的3毫秒减去2毫秒等于1毫秒的数据)来完成。下一消费者计时可随后被延迟1毫秒的数据,并且可被同步以在生产者计时之后的目标时间处(例如,3毫秒) 发生。如果接收的下一事件包括生产者事件,方法200可返回到阶段210并且重新启动同步。然而,如果接收的下一事件包括同步的消费者事件,方法200可前进到阶段225, 在阶段225计算设备400可等待下一生产者事件。下一生产者事件可包括基于生产者和消费者时钟的目标同步的对齐的帧。然而,如果接收的下一事件不是生产者事件,方法200可返回到阶段210并且重新启动同步。如果在消费者事件和前一生产者事件之间的时间大于目标时间,方法200可前进到阶段230,在阶段230计算设备400可传输等待音频本文档来自技高网...
【技术保护点】
1.一种用于提供音频流调度的方法,其特征在于,所述方法包括:从生产者(110)接收音频帧;将所述音频帧传送给消费者(120);计算在接收所述音频帧和传送所述音频帧之间的延迟;确定所述延迟是否包括在阈值范围内的值;以及响应于确定所述延迟包括不在所述阈值范围内的值,在将所述帧传送给所述消费者(120)之前修改所述音频帧的大小。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:A·M·吉梅内斯,
申请(专利权)人:微软公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。