CN102290051A - 预测重新采样器调度器算法 - Google Patents
预测重新采样器调度器算法 Download PDFInfo
- Publication number
- CN102290051A CN102290051A CN2011101789586A CN201110178958A CN102290051A CN 102290051 A CN102290051 A CN 102290051A CN 2011101789586 A CN2011101789586 A CN 2011101789586A CN 201110178958 A CN201110178958 A CN 201110178958A CN 102290051 A CN102290051 A CN 102290051A
- Authority
- CN
- China
- Prior art keywords
- frame
- consumer
- threshold range
- delay
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 65
- 238000012545 processing Methods 0.000 claims description 24
- 238000012952 Resampling Methods 0.000 claims description 23
- 239000000872 buffer Substances 0.000 claims description 19
- 238000005070 sampling Methods 0.000 claims description 17
- 238000005259 measurement Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000000717 retained effect Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 206010043458 Thirst Diseases 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035922 thirst Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Communication Control (AREA)
Abstract
可提供预测重新采样器调度器算法。可从生产者接收音频帧。音频帧可被传送给消费者,并且可计算在接收音频帧和传送音频帧之间的延迟。响应于确定延迟包括不在阈值时间范围内的值,可以在将帧传送给消费者之前修改音频帧的大小。
Description
技术领域
本发明涉及预测重新采样器调度器算法。
背景技术
预测重新采样器调度器算法是用于修改音频缓冲器的大小的过程。在一些情况下,音频编码器可以以和耦合的音频解码器不同的时钟速度进行操作。例如,在音频提供者/消费者环境中,每次生产者的时钟计时时,新的音频帧变得可用。每次消费者的时钟计时时,它渴望一个音频帧。在常规的各系统中,如果生产者的时钟比消费者的时钟计时快,则太多数据可累积并且溢出消费者的缓冲器,这可导致音频输出中的跳跃。如果生产者的时钟比消费者的时钟计时慢,消费者将会极度缺乏数据并且可经历音频输出中的间隙。
发明内容
提供本发明内容以便以简化形式介绍在以下的具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征。本发明内容亦非旨在用于限制所要求保护的主题的范围。
可提供预测重新采样器调度器算法。可从生产者接收音频帧。音频帧可传送给消费者,并且可计算在接收音频帧和传送音频帧之间的延迟。响应于确定延迟包括不在阈值时间范围内的值,在将音频帧传送给消费者之前可修改该音频帧的大小。
前述概括描述和以下详细描述两者都提供示例并且都只是说明性的。因此,前述概括描述和以下详细描述不应被认为是限制性的。此外,除了此处所阐明的那些之外还可提供其他特征或变型。例如,各实施例可涉及在详细描述中描述的各种特征组合和子组合。
附图说明
合并在本公开中并且构成其一部分的附图示出本发明的各种实施例。在附图中:
图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可传输等待音频帧和下一音频帧的一部分。例如,每一个生产的音频帧可包括10毫秒的数据。该时间的一半是5毫秒,其可包括在生产者和消费者计时之间的目标时间。如果消费者计时在生产者计时6毫秒之后发生,工具130可传输一数据量以同步消费者时钟,该数据量等于全帧加上目标时间减去在生产者和消费者计时之间的实际时间。例如,对于10毫秒的全帧时间、5毫秒的目标和6毫秒的实际时间,工具130可传输等于((10+5)-6)即9毫秒的音频数据。下一消费者计时可随后被延迟1毫秒的数据,并且可被同步以在生产者的计时之后目标时间处(例如,3毫秒)发生。如果接收的下一事件包括生产者事件,方法200可返回到阶段210并且重新启动同步。
如果在消费者事件和前一生产者事件之间的时间等于目标时间,方法200可前进到阶段240,在阶段240计算设备400可进入同步状态。如果对齐的生产者事件被计算设备400在阶段225处接收和/或如果对齐的消费者事件被计算设备400在阶段235处接收,方法200还可前进到阶段240。一旦在阶段240的同步状态中,只要每一个音频帧一从生产者110接收,计算设备400就可将它传输给消费者120。
在阶段240中,如果相同类型的两个时钟计时顺序发生(例如,没有居间消费者计时的两个生产者计时或有居间生产者计时的两个消费者计时),方法200可返回到阶段210以重新同步生产者和消费者计时。如果时钟计时变得超过可配置容忍度而不同步,可以根据以下参考图3描述的方法300的各阶段调节音频帧大小。一旦完成音频帧,方法200就可在阶段250处结束。
图3是阐明用于调度音频重新采样操作的方法300中所涉及的各概略阶段的状态图。方法300可使用如以下参考图4更详细地描述的计算设备400来实现。以下将更详细地描述实现方法300的各阶段的方式。方法300可在阶段305处开始,在阶段305计算设备400可处于空闲状态。根据本发明的各实施例,计算设备400可在执行以上描述的方法200的初始同步之后进入阶段305的空闲状态。
在阶段305中,计算设备400可从生产者接收数据帧,并且将数据帧发送给消费者。工具130可计算移动平均,该移动平均包括在与从生产者110接收数据帧相关联的每一个生产者计时和与将数据帧提供给消费者120相关联的后续消费者计时之间的延迟时间。只要平均计时延迟保留在生产者计时之后半帧的阈值内,方法300就可保留在阶段305中。例如,每一帧可包括10毫秒的数据,并且阈值可包括1毫秒。如果平均计时延迟保留在4毫秒和6毫秒之间,方法300可保留在阶段305的空闲状态中,并且在从生产者110接收帧时继续将它们不变地发送给消费者120。如果在阶段305中计时延迟超过阈值,方法300可前进到阶段320,在阶段320计算设备400可开始花费缓冲器板将平均计时延迟带回到阈值范围中。工具130可调度消费者120早于常规计时,从而消费全帧的较少部分。例如,工具130可将从生产者110接收的帧的90%传送给消费者120,并且将该帧的剩余的10%存储在“板”中。剩余数据可存储在存储器缓冲器中,并且可增加传送等待时间。
方法300可从阶段320前进到阶段325,在阶段325计算设备400可开始消费板。例如,当板包括前一帧的10%时,可重新采样来自生产者110的接下来10个音频帧以减小它们的大小并且在板中为十分之一的数据腾出空间。在这个状态中,发送给消费者120的每一帧可包括收缩到它的原始大小的99%的原始音频,加上来自板的帧的1%。一旦板被全部花费了(即,所有的已缓冲数据被传送了),方法200就可返回到阶段305并且重新进入空闲状态。
如果在阶段305中计时延迟降至阈值以下,方法300可前进到阶段330,在阶段330计算设备400可开始构建缓冲器板以将平均计时延迟带回到阈值范围中。例如,对于接下来10个音频帧,可上采样工具130以创建是常规帧的大小的101%的数据帧。等于常规帧的数据帧可被传送给消费者120,并且额外的1%可被存储在存储器缓冲器板中。在必要时这可重复(例如,创建大于帧的10%的板)以提供充足的数据量以便将计时延迟带回到阈值范围中。
一旦在阶段330中准备板,方法300就可前进到阶段335,在阶段335计算设备400可使用板来传送大于常规的帧。例如,工具130可调度消费者120晚于常规计时,从而诸如通过传送是常规帧大小的110%的帧(即,一个常规帧加上存储在板中的数据帧的10%)来消费多于一个全帧。方法300可随后返回到阶段305,并且重新进入空闲状态。
方法300可从阶段320前进到阶段325,在阶段325计算设备400可开始消费板。例如,当板包括前一帧的10%时,可重新采样来自生产者110的接下来10个音频帧以减小它们的大小并且在板中为十分之一的数据腾出空间。在这个状态中,发送给消费者120的每一帧可包括收缩到它的原始大小的99%的原始音频,加上来自板的帧的1%。一旦板被全部花费了(即,所有的已缓冲数据已被传送),方法300就可返回到阶段305并且重新进入空闲状态。
根据本发明的各实施例,各种因素可包括可配置变量。例如,虽然以上使用了10%,但用于在任一方向上(例如,伸展或收缩)纠正的量和/或扩展伸展/收缩的帧数可以是可配置的。扼流常量也可被配置成值“N”,使得只伸展或收缩每第N个帧。
根据本发明的一实施例可包括用于提供音频流调度的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。处理单元可用于从生产者接收音频帧,从消费者接收多个帧请求,以及计算在接收音频帧和传送音频帧之间的延迟,并且确定延迟是否包括在阈值范围内的值。响应于确定延迟包括不在所述阈值范围的值,处理单元还可用于在将帧传送给消费者之前修改音频帧的大小。
根据本发明的另一实施例可包括用于提供音频流调度的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。处理单元可用于从生产者接收第一帧,从生产者接收第二帧,测量在第一帧和第二帧之间的时间,从消费者接收帧请求,以及确定帧请求是否在从接收第二帧的时间起目标延迟的阈值范围内发生。响应于确定帧请求在目标延迟的阈值范围内没有发生,处理单元还可用于修改第一帧的大小并且将已修改的第一帧传送给消费者。
根据本发明再一实施例可包括用于提供音频帧重新采样和调度的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。处理单元可用于从生产者接收第一帧,从生产者接收第二帧,测量在第一帧和第二帧之间的时间,建立等于在第一帧和第二帧之间时间的一半的延迟目标,从消费者接收帧请求,以及确定从接收第二帧的时间起目标延迟的阈值范围之前是否接收帧请求。响应于确定在目标延迟的阈值范围之前接收帧请求,处理单元可用于发送包括第一数据量的第一帧的一部分,第一数据量包括目标延迟减去在接收第二帧和接收给消费者的帧请求之间的实际时间。处理单元还可用于确定从接收第二帧的时间起目标延迟的阈值范围之后是否接收帧请求,以及响应于确定在接收第二帧的时间起目标延迟的阈值范围之后接收帧请求,将第一帧和第二帧的一部分发送给消费者作为单个帧,单个帧包括第二数据量,第二数据量包括全帧加上目标延迟减去在接收第二帧和接收帧请求之间的实际时间。
处理单元可用于从生产者接收音频帧,从消费者接收多个帧请求,计算在接收音频帧和传送音频帧之间的延迟,以及确定延迟是否包括在阈值范围内的值。响应于确定延迟包括小于阈值范围的值,处理单元还可用于在将对应的帧传送给消费者之前从对应的帧中移除数据子集,将数据子集存储在缓冲器板中,对在对应的帧之后的多个后续帧中的至少一个进行下采样,以及将缓冲器板中的数据子集中的至少一部分添加给经下采样的帧。响应于确定从接收对应的帧的时间起目标延迟的阈值范围之后接收多个后续帧请求中的对应的一个,处理单元还可用于从对应的帧和多个后续帧的子集中的每一个中移除第二数据子集,对对应的帧和多个后续帧的子集中的每一个进行上采样,将经上采样的对应的帧和多个经上采样的后续帧的子集中的每一个传送给消费者,将第二数据子集存储在缓冲器板中,从生产者接收下一后续帧,将来自缓冲器的第二数据子集添加给下一后续帧,以及将下一后续帧传送给消费者。
图4是包括计算设备400的系统的框图。根据本发明的一个实施例,上述存储器存储和处理单元可在诸如图4的计算设备400的计算设备中实现。可使用硬件、软件、或固件的任何合适的组合来实现该存储器存储和处理单元。例如,存储器存储和处理单元可用计算设备400或结合计算设备400的任何其他计算设备418来实现。根据本发明的各实施例,上述系统、设备和处理器是示例,而其他系统、设备和处理器可包括上述存储器存储和处理单元。此外,计算设备400可包括如上所述的操作环境100。操作环境100并不限于计算设备400。
参考图4,根据本发明的一个实施例的系统可包括诸如计算设备400的计算设备。在基本配置中,计算设备400可包括至少一个处理单元402和系统存储器404。取决于计算设备的配置和类型,系统存储器404可包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。系统存储器404可包括操作系统405,一个或多个编程模块406,并且可包括重新采样器调度器工具130。例如,操作系统405可适用于控制计算设备400的操作。在一些实施例中,系统存储器404可包括缓冲器板420。此外,本发明的各实施例可结合图形库、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图4中由虚线408内的那些组件示出。
计算设备400可具有附加特征或功能。例如,计算设备400还可包括附加数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘、或磁带。这些附加存储在图4中由可移动存储409和不可移动存储410示出。计算设备400还可包含可允许设备400诸如通过例如内联网或因特网的分布式计算环境中的网络来与其他计算设备418通信的通信连接416。通信连接416是通信介质的一个示例。
此处所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器404,可移动存储409和不可移动存储410都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息并且可由计算设备400访问的任何其它介质。任何这样的计算机存储介质可以是设备400的一部分。计算设备400还可具有诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等输入设备412。还可包括诸如显示器、扬声器、打印机等输出设备414。上述设备是示例并且可使用其他设备。
此处所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如载波或其他传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可描述具有以对该信号中的信息编码的方式设定或者改变的一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接线连接的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质的无线介质。
如上所述,多个程序模块和数据文件可存储在包括操作系统405的系统存储器404中。当在处理单元402上执行时,编程模块406(例如,重新采样器调度器工具130)可执行各过程,包括例如,如上所述的方法200或方法300的各阶段中的一个或多个。前述过程是示例,并且处理单元402可执行其他过程。根据本发明的各实施例可使用的其他编程模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
一般而言,根据本发明的各实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的各实施例可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的各实施例也可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的各实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中,或在包含电子元件或微处理器的单个芯片上实践。本发明的各实施例还可使用能够执行诸如,例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施例可在通用计算机或任何其他电路或系统内实践。
例如,本发明的各实施例可被实现为计算机过程(方法)、计算系统、或诸如计算机程序产品或计算机可读介质的制品。计算机程序产品可以是计算机系统可读并且对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。计算机程序产品还可以是计算系统可读并且对用于执行计算机过程的指令的计算机程序编码的载体上的传播信号。因此,本发明可在硬件和/或软件(包括固件、常驻软件、微码等)中体现。换言之,本发明的各实施例可采用其上包含在供指令执行系统使用或结合其使用的介质中的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序供指令执行系统、装置、或设备使用或结合其使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备、或传播介质。更具体的计算机可读介质示例(非穷尽列表),计算机可读介质可包括以下:具有一条或多条导线的电连接、便携式计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、以及便携式压缩盘只读存储器(CD-ROM)。注意,计算机可使用或计算机可读介质甚至可以是其上打印程序的纸张或另一合适的介质,因为程序可经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并且随后存储在计算机存储器中。
以上参考根据本发明的各实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本上同时执行,或者这些框有时可按相反的次序来执行。
尽管描述了本发明的某些实施例,但是可存在其他实施例。此外,虽然本发明的各实施例被描述为与存储在存储器和其他存储介质中的数据相关联,但数据还可存储在或读取自其他类型的计算机可读介质,诸如辅助存储设备,像硬盘、软盘、或CD-ROM,来自因特网的载波,或其他形式的RAM或ROM。此外,所公开的各方法的各阶段可以任何方式来修改,包括通过对各阶段重新排序和/或插入或删除各阶段,而不背离本发明。
包括此处所包括的代码中的版权在内的所有权利都归属于申请人并且是本申请人的财产。申请人保持并且保留此处所包括的代码中的所有权利,并且授予仅关于所授权的专利的再现且未出于其他目的再现该材料的许可。
虽然本说明书包括各示例,但本发明的范围由所附权利要求书来指示。此外,尽管用结构特征和/或方法动作专用的语言描述了本说明书,但是权利要求书并不限于上述特征或动作。相反,上述具体特征和动作是作为本发明的各实施例的示例来公开的。
Claims (10)
1.一种用于提供音频流调度的方法,其特征在于,所述方法包括:
从生产者(110)接收音频帧;
将所述音频帧传送给消费者(120);
计算在接收所述音频帧和传送所述音频帧之间的延迟;
确定所述延迟是否包括在阈值范围内的值;以及
响应于确定所述延迟包括不在所述阈值范围内的值,在将所述帧传送给所述消费者(120)之前修改所述音频帧的大小。
2.如权利要求1所述的方法,其特征在于,确定所述延迟是否包括不在所述阈值范围内的值包括:确定所述延迟是否包括大于所述阈值范围的值;以及
响应于确定所述延迟包括大于所述阈值范围的值:
在将所述音频帧传送给所述消费者(120)之前,从所述音频帧中移除数据子集,以及
将所述数据子集存储在缓冲器板中。
3.如权利要求2所述的方法,其特征在于,还包括:
从所述生产者(110)接收下一音频帧;
下采样所述下一音频帧;
将所述缓冲器板中的所述数据子集的至少一部分添加到经下采样的下一音频帧;以及
将所述经下采样的下一音频帧传送给所述消费者(120)。
4.如权利要求1所述的方法,其特征在于,确定所述延迟是否包括不在所述阈值范围内的值包括确定所述延迟是否包括小于所述阈值范围的值;以及
响应于确定所述延迟包括小于所述阈值范围的值:
从所述音频帧和多个后续帧中的每一个中移除数据子集,
对所述音频帧和所述多个后续帧中的每一个进行上采样,将经上采样的音频帧和所述多个后续帧中的每一个传送给所述消费者(120),以及
将所移除的数据子集存储在缓冲器板中。
5.如权利要求4所述的方法,其特征在于,还包括:
从所述生产者(110)接收下一音频帧;
将所述缓冲器板中的所移除的数据子集添加到所述下一音频帧;以及
将所述下一音频帧传送给所述消费者(120)。
6.一种存储指令集的计算机可读介质,所述指令集在被执行时执行一种用于提供音频帧调度的方法,其特征在于,所述指令集执行的所述方法包括:
从生产者(110)接收第一帧;
从生产者(110)接收第二帧;
测量在所述第一帧和所述第二帧之间的时间;
从消费者(120)接收帧请求;
确定所述帧请求是否在从接收所述第二帧的时间起目标延迟的阈值范围内发生,所述目标延迟包括所述第一帧的一半,并且所述阈值范围包括所述第一帧的10%;以及
响应于确定所述帧请求在所述目标延迟的所述阈值范围内没有发生:
修改所述第一帧的大小,以及
将经修改的第一帧传送给所述消费者(120)。
7.如权利要求6所述的计算机可读介质,其特征在于,确定所述帧请求是否在所述阈值范围内发生包括确定所述帧请求是否在所述目标延迟的所述阈值范围之前发生;以及
响应于确定所述帧请求在所述目标延迟的所述阈值范围之前发生,将所述第一帧的一部分发送给所述消费者(120)。
8.如权利要求7所述的计算机可读介质,其特征在于,所述第一帧的所述一部分包括数据量,所述数据量包括所述目标延迟减去在接收所述第二帧和接收所述帧请求之间的实际时间。
9.如权利要求6所述的计算机可读介质,其特征在于,确定所述帧请求是否在所述阈值范围内发生包括确定所述帧请求是否在所述目标延迟的所述阈值范围之后发生;以及
响应于确定所述帧请求在所述目标延迟的所述阈值范围之后发生,将所述第一帧和所述第二帧的一部分作为单个帧发送给所述消费者(120),所述单个帧包括数据量,所述数据量包括全帧加上所述目标延迟减去在接收所述第二帧和接收所述帧请求之间的实际时间。
10.一种用于提供音频帧重新采样和调度的系统,其特征在于,所述系统包括:
存储器存储(404);以及
耦合到所述存储器存储(404)的处理单元(402),所述处理单元(402)用于:
从生产者(110)接收第一帧,
从生产者(110)接收第二帧,
测量在所述第一帧和所述第二帧之间的时间,
建立等于在所述第一帧和所述第二帧之间的一半时间的延迟目标,
从消费者(120)接收帧请求,
确定从接收所述第二帧的时间起所述目标延迟的阈值范围之前是否接收所述帧请求,
响应于确定在所述目标延迟的所述阈值范围之前接收所述帧请求,将包括第一数据量的所述第一帧的一部分发送给所述消费者(120),所述第一数据量包括所述目标延迟减去在接收所述第二帧和接收所述帧请求之间的实际时间,
响应于确定所述帧请求在所述目标延迟的所述阈值范围之前没有发生,确定从接收所述第二帧的时间起所述目标延迟的所述阈值范围之后是否接收所述帧请求,
响应于确定从接收所述第二帧的时间起所述目标延迟的所述阈值范围之后接收所述帧请求,将所述第一帧和所述第二帧的一部分发送给所述消费者(120)作为单个帧,所述单个帧包括第二数据量,所述第二数据量包括全帧加上所述目标延迟减去在接收所述第二帧和接收所述帧请求之间的实际时间,
从所述生产者(110)接收多个后续帧,
从所述消费者(120)接收多个后续帧请求,
对于所述多个后续帧中的至少一个,确定从接收对应的帧的时间起所述目标延迟的所述阈值范围之前是否接收所述多个后续帧请求中的对应的一个,
响应于确定在所述目标延迟的所述阈值范围之前接收所述多个后续帧请求中的所述对应的一个:
在将所述对应的帧传送给所述消费者(120)之前,从所述对应的帧中移除数据子集,
将所述数据子集存储在缓冲器板中,
对所述对应的帧之后的所述多个后续帧中的至少一个进行下采样,以及
将所述缓冲器板中的所述数据子集的至少一部分添加到经下采样的帧,以及
将经下采样的帧发送给所述消费者(120),
响应于确定在所述目标的所述阈值范围之前未接收所述多个后续帧请求中的所述对应的一个,确定从接收所述对应的帧的时间起所述目标延迟的所述阈值范围之后是否接收所述多个后续帧请求中的所述对应的一个,以及
响应于确定从接收所述对应的帧的时间起所述目标延迟的所述阈值范围之后接收所述多个后续帧中的所述对应的一个:
从所述对应的帧和所述多个后续帧的子集中的每一个中移除第二数据子集,
对所述对应的帧和所述多个后续帧的所述子集中的每一个进行上采样,
将经上采样的对应的帧和多个经上采样的后续帧的所述子集中的每一个发送给所述消费者(120),
将所述第二数据子集存储在所述缓冲器板中,
从所述生产者(110)接收下一后续帧,
将来自所述缓冲器板的所述第二数据子集添加到所述下一后续帧,以及
将所述下一后续帧发送给所述消费者(120)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/819,052 US8532804B2 (en) | 2010-06-18 | 2010-06-18 | Predictive resampler scheduler algorithm |
US12/819,052 | 2010-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102290051A true CN102290051A (zh) | 2011-12-21 |
CN102290051B CN102290051B (zh) | 2015-11-25 |
Family
ID=45329352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110178958.6A Active CN102290051B (zh) | 2010-06-18 | 2011-06-20 | 预测重新采样器调度器算法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8532804B2 (zh) |
CN (1) | CN102290051B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062537A (zh) * | 2018-08-30 | 2018-12-21 | 倪兴炜 | 一种音频延迟的降低方法、装置、介质及设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3704691B1 (en) * | 2017-11-01 | 2023-08-16 | Razer (Asia-Pacific) Pte. Ltd. | Method and apparatus for resampling audio signal |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002045273A2 (en) * | 2000-11-30 | 2002-06-06 | Scientific Generics Limited | Communication system |
WO2005099243A1 (ja) * | 2004-04-09 | 2005-10-20 | Nec Corporation | 音声通信方法及び装置 |
CN1926824A (zh) * | 2004-05-26 | 2007-03-07 | 日本电信电话株式会社 | 声音分组再现方法、声音分组再现装置、声音分组再现程序、记录介质 |
CN101000768A (zh) * | 2006-06-21 | 2007-07-18 | 北京工业大学 | 嵌入式语音编解码的方法及编解码器 |
CN101048813A (zh) * | 2004-08-30 | 2007-10-03 | 高通股份有限公司 | 用于语音ip传输的自适应去抖动缓冲器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247072B1 (en) * | 1998-01-27 | 2001-06-12 | Cisco Technology, Inc. | Real-time data rate matching across a medium |
DE10102159C2 (de) * | 2001-01-18 | 2002-12-12 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Erzeugen bzw. Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkasse, Codierer und skalierbarer Codierer |
FI118830B (fi) * | 2001-02-08 | 2008-03-31 | Nokia Corp | Tietovirran toisto |
US7006511B2 (en) * | 2001-07-17 | 2006-02-28 | Avaya Technology Corp. | Dynamic jitter buffering for voice-over-IP and other packet-based communication systems |
US7706901B2 (en) | 2004-10-01 | 2010-04-27 | Microsoft Corporation | Low latency real-time audio streaming |
US7620137B2 (en) | 2004-11-13 | 2009-11-17 | Microsoft Corporation | System and method for clock drift correction for broadcast audio/video streaming |
CN100442858C (zh) | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
WO2008026976A1 (en) * | 2006-08-28 | 2008-03-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Clock skew compensation |
US7733785B2 (en) * | 2007-01-31 | 2010-06-08 | International Business Machines Corporation | Method and system for dynamically adjusting packet size to decrease delays of streaming data transmissions on noisy transmission lines |
US7822011B2 (en) | 2007-03-30 | 2010-10-26 | Texas Instruments Incorporated | Self-synchronized streaming architecture |
US8006007B1 (en) * | 2009-01-02 | 2011-08-23 | BICOM, Inc. | Time scale normalization of a digitized signal |
US9565397B2 (en) * | 2009-02-26 | 2017-02-07 | Akamai Technologies, Inc. | Deterministically skewing transmission of content streams |
-
2010
- 2010-06-18 US US12/819,052 patent/US8532804B2/en active Active
-
2011
- 2011-06-20 CN CN201110178958.6A patent/CN102290051B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002045273A2 (en) * | 2000-11-30 | 2002-06-06 | Scientific Generics Limited | Communication system |
WO2005099243A1 (ja) * | 2004-04-09 | 2005-10-20 | Nec Corporation | 音声通信方法及び装置 |
CN1926824A (zh) * | 2004-05-26 | 2007-03-07 | 日本电信电话株式会社 | 声音分组再现方法、声音分组再现装置、声音分组再现程序、记录介质 |
CN101048813A (zh) * | 2004-08-30 | 2007-10-03 | 高通股份有限公司 | 用于语音ip传输的自适应去抖动缓冲器 |
CN101000768A (zh) * | 2006-06-21 | 2007-07-18 | 北京工业大学 | 嵌入式语音编解码的方法及编解码器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062537A (zh) * | 2018-08-30 | 2018-12-21 | 倪兴炜 | 一种音频延迟的降低方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
US8532804B2 (en) | 2013-09-10 |
CN102290051B (zh) | 2015-11-25 |
US20110313553A1 (en) | 2011-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101416221B (zh) | 用于同步动画系统的通信协议 | |
US9794605B2 (en) | Using time-stamped event entries to facilitate synchronizing data streams | |
US9846705B2 (en) | Techniques for managing a data replication mode | |
US10509588B2 (en) | System and method for controlling memory frequency using feed-forward compression statistics | |
US20060190943A1 (en) | System and a method for scheduling tasks | |
CN102455909B (zh) | 一种演示文稿文档异步加载的方法 | |
JP2023527195A (ja) | ベースライン監視方法、装置、読み取り可能な媒体、及び電子機器 | |
CN112685224A (zh) | 任务管理的方法、设备和计算机程序产品 | |
US20230064057A1 (en) | Large model support in deep learning | |
EP3198870B1 (en) | Processing parameters for operations on blocks while decoding images | |
CN102323969A (zh) | 使用形式化方法的定时分析 | |
CN102290051A (zh) | 预测重新采样器调度器算法 | |
US20140172488A1 (en) | Synthesis of a schedule representation from a process model | |
Hartmanns et al. | Flexible support for time and costs in scenario-aware dataflow | |
CN103208062B (zh) | 信息处理设备和信息处理方法 | |
US20220300322A1 (en) | Cascading of Graph Streaming Processors | |
CN101866692A (zh) | 用于写入和擦除非易失性存储器的方法 | |
US20220375465A1 (en) | Methods to employ compaction in asr service usage | |
CN112988497B (zh) | 管理备份系统的方法、电子设备和计算机程序产品 | |
US11340825B1 (en) | Method, device, and computer program product for managing storage system | |
CN108551580A (zh) | 一种电子设备中视频文件转码方法及电子设备 | |
JP2008134993A (ja) | シミュレーション管理装置及びシミュレーション管理方法及びプログラム | |
Holenderski et al. | Reducing memory requirements in a multimedia streaming application | |
US11853167B2 (en) | Method, electronic device and computer program product for backup | |
Staehli et al. | Script-based QOS specifications for multimedia presentations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |