一种音频采样同步方法及其设备与流程

文档序号:39020016发布日期:2024-08-16 15:46阅读:15来源:国知局
一种音频采样同步方法及其设备与流程

本发明涉及音频播放,特别是涉及一种音频采样同步方法及其设备。


背景技术:

1、usb音频系统由音源端(audio source)和音频接收端(audio sink)组成。最常见的音源端一般是电脑(usb host)、音频接收端一般是usb外置声卡(usb device)。

2、音源端把音频数据按照一定的采样率(比如48khz)发送至音频接收端,音频接收端再将收到的音频数据按照一定的速率(比如48khz)发送给音频解码器(audio codec),以将读取的数字音频信息转换成模拟音频信号输出,即播放音频。但是由于链路传输延迟、软件处理延迟、主机和设备时钟不匹配等原因,会导致主机产生数据速率和设备处理数据速率不是绝对相等。这样就会导致设备端缓存(积累)的数据越来越多而丢失、或者设备端音频数据不够用导致播放音频断断续续。

3、为解决这个问题,usb规范定义了3种方法对主机和设备的速率进行同步,分别是异步模式(asynchronous)、同步模式(synchronous)和自适应模式(adaptive)。

4、在异步模式中,设备会定时给主机发送自身的采样率信息,主机根据收到的信息调整发送到设备的采样数,从而保证设备端缓存的音频数据处于动态变化中,既不会溢出(overflow)也不会断流(underflow)。

5、设备对自身消耗的采样率感知越准确,给主机的反馈就越精确,主机的调控也就越准确,这样设备需要占用的缓存空间(ram)就越小。然而现实中,设备对音频的处理一部分是软件,一部分是交给硬件(dma)处理,因此无法精确计算出当前设备中未处理的缓存字节,无法得出精确的采样率,所以主机无法准确调控发送到设备的采样数而导致设备端音频不同步等问题。


技术实现思路

1、本发明的主要目的在于提供一种音频采样同步方法及其设备,旨在确保主机与设备之间的数据传输速度保持基本同步。

2、为实现上述目的,本发明提供一种音频采样同步方法,主机端根据预设速率发送数据信息至设备端,所述设备端处理所述数据信息、并输出音频信息;包括以下步骤:

3、s1、在设备端预设缓存区域,并预设缓存区域的高、低缓存容量报警线,将主机端发送的数据信息缓存在所述缓存区域中,实时监测所述缓存区域的缓存容量;

4、s2、当所述缓存区域的缓存容量达到高/低缓存容量报警线时,所述设备端将当前实际播放速率反馈至所述主机端,所述主机端根据所述实际播放速率调整发送数据信息的速率:

5、s21、当所述缓存区域的数据容量达到高缓存容量报警线时,所述设备端将实际播放速率反馈至主机端,所述主机端减小发送数据信息的速率;

6、s22、当所述缓存区域的数据容量达到低缓存容量报警线时,所述设备端将实际播放速率反馈至主机端,所述主机端增加发送数据信息的速率;

7、重复上述步骤s21、s22,直至所述主机端的数据信息发送完成。

8、优选地,所述主机端发送数据信息至缓存区域后,当缓存区域的缓存容量达到50%时,所述设备端处理所述数据信息、根据预设采样率播放音频信息,开始计时并实时监控所述缓存容量。

9、优选地,预设高、低缓存容量报警线分别为所述缓存区域缓存的数据容量的75%、25%。

10、优选地,当所述缓存区域的缓存容量达到高/低缓存容量报警线时,所述设备端将当前实际播放速率反馈至所述主机端,所述主机端根据所述实际播放速率调整发送数据信息的速率,还包括:

11、当所述缓存区域的数据容量达到高缓存容量报警线时,获取当前所述设备端的播放时间,根据等式rate = 第一采样率 - (缓存容量í缓存容量占比变化值)/t计算当前所述设备端的实际播放率,将计算得到的实际播放速率设为第二采样率并反馈至所述主机端,所述主机端根据第二采样率发送数据信息至所述设备端,并重新开始计时;

12、或者,当所述缓存区域的数据容量达到低缓存容量报警线时,获取当前所述设备端的播放时间,根据等式rate = 第一采样率 + (缓存容量í缓存容量占比变化值)/t计算当前所述设备端实际播放率,将计算得到的实际播放速率设为第三采样率并反馈至所述主机端,所述主机端根据第三采样率发送数据信息至所述设备端,并重新开始计时;

13、其中rate为实际播放速率,第一采样率为当前时间段内所述主机端发送数据信息的速率,缓存容量为所述设备端缓存区域的大小,t为所述设备端处理所述数据信息、播放音频信息的时间,缓存容量占比变化值为当前时间段内初始缓存容量占比减去当前缓存容量占比的绝对值。

14、优选地,计算当前所述设备端实际播放率还包括:

15、通过等式dr = sample_rate í sample_length í channel í 2计算得到估算偏差值,并根据所述估值偏差值得到实际播放速率区间[rate-dr,rate+dr];其中,dr为估算偏差值,sample_rate为预设采样率,sample_length为采样深度的字节数,channel为采样通道数量;

16、当所述缓存区域的数据容量达到高缓存容量报警线时,将实际播放速率区间的下限值反馈至所述主机端;

17、当所述缓存区域的数据容量达到低缓存容量报警线时,将实际播放速率区间的上限值反馈至所述主机端。

18、本发明还提供一种音频采样同步设备,包括主机端和设备端,所述主机端和所述设备端根据上述方法进行传输/处理数据信息。

19、本发明技术方案通过在设备端预设缓存区域,将数据信息缓存在缓存区域中,并在缓存区域的容量达到高、低报警线时,将设备端的实际播放速率反馈至主机端,使得主机端根据该实际播放速率调整发送数据信息的速率;通过缓存容量变化计算设备端的实际播放速率,降低了计算难度、同时达到更准确的反馈调控效果,降低了ram的消耗,软件实现简单,降低了对硬件的需求。



技术特征:

1.一种音频采样同步方法,主机端根据预设速率发送数据信息至设备端,所述设备端处理所述数据信息、并输出音频信息;其特征在于,包括以下步骤:

2.根据权利要求1所述的音频采样同步方法,其特征在于,所述主机端发送数据信息至缓存区域后,当缓存区域的缓存容量达到50%时,所述设备端处理所述数据信息、根据预设采样率播放音频信息,开始计时并实时监控所述缓存容量。

3.根据权利要求2所述的音频采样同步方法,其特征在于,预设高、低缓存容量报警线分别为所述缓存区域缓存的数据容量的75%、25%。

4.根据权利要求2所述的音频采样同步方法,其特征在于,当所述缓存区域的缓存容量达到高/低缓存容量报警线时,所述设备端将当前实际播放速率反馈至所述主机端,所述主机端根据所述实际播放速率调整发送数据信息的速率,还包括:

5.根据权利要求4所述的音频采样同步方法,其特征在于,计算当前所述设备端实际播放率还包括:

6.一种音频采样同步设备,其特征在于,包括主机端和设备端,所述主机端和所述设备端根据权利要求1-5中任一项所述的方法进行传输/处理数据信息。


技术总结
本发明公开了一种音频采样同步方法,包括以下步骤:S1、在设备端预设缓存区域,并预设缓存区域的高、低缓存容量报警线,将主机端发送的数据信息缓存在缓存区域中,实时监测缓存区域的缓存容量;S2、当缓存区域的缓存容量达到高/低缓存容量报警线时,设备端将当前实际播放速率反馈至主机端,主机端根据实际播放速率调整发送数据信息的速率:S21、当缓存区域的数据容量达到高缓存容量报警线时,设备端将实际播放速率反馈至主机端,主机端减小发送数据信息的速率;S22、当缓存区域的数据容量达到低缓存容量报警线时,设备端将实际播放速率反馈至主机端,主机端增加发送数据信息的速率;重复上述步骤S21、S22,直至主机端的数据信息发送完成。

技术研发人员:付文军
受保护的技术使用者:成都锐成芯微科技股份有限公司
技术研发日:
技术公布日:2024/8/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1