历史上的今天
今天是:2025年04月24日(星期四)
2020年04月24日 | 杰理科技专利: 蓝牙音频播放同步方法
2020-04-24 来源:爱集微
在苹果于2016年发布第一代AirPods时,True Wireless Stereo(简称TWS)蓝牙耳机的新形态产品就引起了各大厂商极大的热情,手机供应商、传统耳机供应商,还是新兴品牌,都争先涌入这个市场。
除了苹果和华为这些手机厂商打造自有芯片外,其他如美国高通,中国台湾的络达、瑞昱、原相与中国大陆的恒玄和杰理等更是成为当中的重要参与者。
TWS是真正无线立体声的意思,这种技术的实现是基于芯片技术的发展,从技术上来说是指手机通过连接主音箱,再由主音箱通过蓝牙无线方式连接从音箱,实现真正的蓝牙左右声道无线分离使用。
在通过蓝牙进行数据传输时,可将两个电子设备定义为主从设备,主从设备通过蓝牙协议配对连接后,可通过无线的方式进行数据传输,其中主设备可将音频数据传输给蓝牙耳机或蓝牙音箱进行播放。
蓝牙音频数据在传输过程中,由于蓝牙主从设备自身的时钟源不一致所以需要同步控制,传统的同步算法都是通过调整相位实现的。另一方面由于蓝牙音频数据的传输是基于无线信号传输的,因为信号干扰或者设备之间的距离太大导致信号不稳定,从而导致蓝牙音箱、蓝牙耳机等蓝牙从设备不能实时接收到主机发送的音频文件,甚至出现丢包,导致传统同步算法相位调整的基准很难确定。
为了解决这样的问题,杰理科技在15年8月13日申请了一项名为“蓝牙音频播放同步的方法、装置及蓝牙音频播放装置”的发明专利(申请号:201510497007.3),申请人为珠海市杰理科技股份有限公司。
根据目前公开的专利资料,让我们一起来看看这项蓝牙音频播放同步方法吧。

如上图所示为蓝牙音频播放同步方法的流程图,首先将从主设备接收到的音频数据存储入第一数据缓存区,其次从设备进行音频播放时判断数据量标志的位置,得到判断结果。
最后根据判断结果:
1) 当数据量标志位在中存储段时,直接将从第一数据缓存区提取出的音频数据发送到从设备的播放模块进行播放;
2) 当数据量标志位在高存储段时,对从第一数据缓存区提取出的音频数据进行缩短处理后发送到从设备的播放模块进行播放;
3) 当数据量标志位在低存储段时,对从第一数据缓存区提取出的音频数据进行拉伸处理后发送到从设备的播放模块进行播放。
这里引入了一个存储段的概念,对于第一数据缓存区,高存储段、中存储段和低存储段的分布如下图所示。

数据量标志位表征第一数据缓存区中存储数据的多少,当数据量标志位在高存储段时,则低存储段及中存储段中都是存储满数据的,也即数据量标志位以下的区域中都是存储有数据的,此时第一数据缓存区中存储的数据较多。
当数据量标志位在中存储段时,第一数据缓存区中存储的数据次多,而数据量标志位在低存储段时,第一数据缓存区中存储的数据则较少。
当数据量标志位在中存储段时,就可以认为蓝牙主从设备的时钟是正常的不需要同步处理,此时从设备和主设备的自身的时钟源是基本一致的。当数据量标志位在高存储段时,可以断定从设备来不及取走数据,即从设备的时钟偏慢。
而当数据量标志位在低存储段时,判定从设备从第一数据缓存区中取数据过快,即从设备时钟偏快。从设备通过播放模块进行音频播放,且播放模块可以为喇叭、FM或其他音频输出设备。
下面具体看看进行数据同步处理时第二数据缓存区数据区划分。

如上图所示搜索区域与参考数据区之间要间隔一定的长度,参考数据区和搜索数据区之间的数据段可命名为间隔数据区。且参考数据区中的参考数据、间隔数据区中的间隔数据以及搜索数据区中的搜索数据三者为第二数据缓存区中连续的数据,搜索数据区的长度要大于等于参考数据区的长度。
参考数据区、间隔数据区和搜索数据区的长度可根据数据处理量的大小及播放速度进行确定。例如设置参考数据区X的长度为包含2~3毫秒的数据,间隔数据区的长度为10毫秒左右的数据,而相应的搜索数据区Y的长度可设置为包含5~10毫秒的数据。
以上就是杰理科技发明的蓝牙音频播放同步方法及装置,通过判断缓存区域音频数据剩余量判断从设备与主设备的时钟是否偏移,并在判定发生偏移后根据缓存区中数据量的大小对音频数据进行缩短或者拉伸播放,从而对从设备的时钟进行调整。,从而使得蓝牙音频播放设备达到更好的同步效果。
史海拾趣
|
1905年初,美国汽车工程师学会(SAE)认识到必须标准化。那个年代的汽车制造商都是小公司,从供应商购买零部件,然后组装成整车。当遍及全国的独立经销商销售各种车辆时,车辆需要经常维修。如果不返回汽车或零部件的原制造厂,就很难找到合适的配件,因此, ...… 查看全部问答> |
|
我在程序中创建了一个主表面,因为不能为独占模式,所以采用用覆盖页面over lay的方式来显示图片。因此创建了带一个缓冲的覆盖页面。基本想法是把yuyv格式的图片copy到其中一个覆盖页面,然后再blt到另一个覆盖页面,最后显示出来,实 ...… 查看全部问答> |
|
硬件线路由我方负责。 现寻高手完成固件开发,AP完成常规功能即可,另要求有 GPIO读写功能,自定义网络数据包函数。详细要求请与我联络 leo@aviosys.com … 查看全部问答> |
|
PE7、PE6都悬空:结果如下 PE7接地(电源地)、PE6悬空:结果如下 PE7接地(与手相连)、PE6悬空:结果见附件 怎么PE6和PE7还相互影响呢? [ 本帖最后由 喜鹊王子 于 2012-3-23 09:44 编辑 ]… 查看全部问答> |
|
如图: 问题如下: 1、全波精密整流后U5B的的输出脚不加电容0.47uF为馒头波,加了电容,波形变平,C1的作用是为滤波,请问这里是怎么算出来的? 2、U5B出来的信号接至U7,U7由2个1N4148和一个电容组成,这个运放是干什么用的? 请指 ...… 查看全部问答> |
|
最近人前几天在头问件上折腾了好久,主要是头文件里面的 嵌套问题, 后来曲线救国了。 现在问题是: 一个key.c文件中有些函数,这些函数有一个在key.c中的全局变量i。但这些函数在key.h中声明,在main.c中被调用,但全局变量i定义 ...… 查看全部问答> |




