一种数据缓冲区管理方法及系统

文档序号:360564 发布日期:2021-12-07 浏览:16次 >En<

阅读说明:本技术 一种数据缓冲区管理方法及系统 (Data buffer area management method and system ) 是由 冯国荣 于 2020-06-03 设计创作,主要内容包括:本发明实施例的主要目的在于提供一种数据缓冲区管理方法,包括如下步骤:检测缓冲区当前存储的数据量与预定阈值的大小关系;记录当前检测次数值;根据所述当前检测次数值调整采样率。相应的本发明实施例还提供一种数据缓冲区管理系统。通过本发明实施例提供的技术方案,可以有效减少至少两个无线设备间通信时的交互次数。(An embodiment of the present invention mainly aims to provide a data buffer management method, including the following steps: detecting the size relation between the data quantity currently stored in the buffer area and a preset threshold value; recording the current detection number value; and adjusting the sampling rate according to the current detection frequency value. Correspondingly, the embodiment of the invention also provides a data buffer area management system. By the technical scheme provided by the embodiment of the invention, the interaction times during the communication between at least two wireless devices can be effectively reduced.)

一种数据缓冲区管理方法及系统

技术领域

本申请涉及数据处理及管理技术,具体涉及一种数据缓冲区管理方法及系统。

背景技术

现有技术中,在电子设备的无线数据传输,例如蓝牙通信传输例如蓝牙TWS、蓝牙CSB或者其他无线通信中,都需要利用到数据缓存的技术,数据缓存中的一个重要技术在于缓冲区的管理。以手机与蓝牙耳机的音频数据通过蓝牙传输为例,当连接蓝牙耳机播放音乐或者进行通话的时候,虽然两个耳机(主副耳机)设置了一样的采样率,但由于主副耳机因为硬件晶振频率的细微差异,导致两边的耳机音频CLK也会有细微偏差,这种细微偏差在较长播放时间后会变现为两边播放速度不一致。如果蓝牙耳机没有调节自己的播放速度,则手机发过来的数据会出现两种极端的问题:保存数据的缓冲区溢出或者缓冲区为空。目前解决这种问题的方式采用普通的缓冲区调节方式:设置一个缓冲区门限制threshold,读取当前缓冲区数据量btdata_length,如果btdata_length>threshold,则调快播放速度,如果btdata_length<threshold,则调慢播放速度。现有这种调节方式存在如下的问题,由于手机发过来的数据不是匀速的且波动不小,所以这种调节方式会很频繁,而同时需要保证TWS两个主副蓝牙耳机的步调一致,当其中一个耳机调节的时候需要发包告诉另一个耳机,这样会加重两个耳机之间的传输负担和带宽消耗,极端情况下会影响正常的播放。

发明内容

有鉴于此,本发明实施例的主要目的在于提供一种数据缓冲区管理方法,可以有效减少至少两个无线设备间通信时的交互次数。

本发明实施例是这样实现的,一种数据缓冲区管理方法,包括:

检测缓冲区当前存储的数据量与预定阈值的大小关系;

记录当前检测次数值;

根据所述当前检测次数值调整采样率。

进一步地,所述记录当前检测次数值包括:

当所述当前存储的数据量大于预定阈值时,当前检测次数值加1;

当所述当前存储的数据量小于预定阈值时,当前检测次数值减1。

进一步地,所述根据所述当前检测次数值调整采样率包括:

当所述当前检测次数值大于预定最大检测次数时,提高所述采样率;

当所述当前检测次数值小于预定最小检测次数时,降低所述采样率。

进一步地,所述预定最大检测次数和所述预定最小检测次数设有预定的上限值和下限值。

进一步地,所述采样率包括N级速度调节,在所述N级速度调节包括一个最接近标准采样率的速度级别Lx,其中N>x>0。

进一步地,所述方法进一步包括:判断所述数据量的改变趋势,

当所述数据量的改变趋势为从小于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为最接近标准采样率的速度级别;

当所述数据量的改变趋势为从大于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为最接近标准采样率的速度级别。

进一步地,所述N级速度调节为8级速度调节,分别为L0~L7,所述最接近标准采样率的速度级别Lx为L3,

当所述数据量的改变趋势为从小于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为L3;

当所述数据量的改变趋势为从大于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为L3。

根据本发明实施例的另一方面,本发明实施例还提供一种数据缓冲区管理系统,可以有效减少至少两个无线设备间通信时的交互次数。

本发明实施例是这样实现的,一种数据缓冲区管理系统,包括:

检测装置,用于检测缓冲区当前存储的数据量与预定阈值的大小关系;

记录装置,用于记录当前检测次数值;

调整装置,用于根据所述当前检测次数值调整采样率。

进一步地,所述记录装置包括计数单元,用于当所述当前存储的数据量大于预定阈值时,当前检测次数值加1;或用于当所述当前存储的数据量小于预定阈值时,当前检测次数值减1。

进一步地,所述调整装置进一步包括:

加速单元,用于当所述当前检测次数值大于预定最大检测次数时,提高所述采样率;

减速单元,用于当所述当前检测次数值小于预定最小检测次数时,降低所述采样率。

根据上述技术方案,本发明实施例具有如下效果:本技术方案不针对特定的应用场景,可应用于比如蓝牙、蓝牙TWS、蓝牙CSB或其他无线通信场景中针对至少两个无线设备或者至少两个有线设备、两地的缓冲区的数据对齐;通过控制检测次数以调节播放速度,避免缓冲区的波动带了的频繁调节问题,减少至少两个通信设备之间的交互;设定检测次数的上下限,设定上限可以避免调节时间间隔太久,设定下限可以在保证至少两个耳机正常传输带宽的情况下可以及时作出低延时的快速调节响应;播放速度的调节过程中,判断缓冲区的改变趋势,直接调整到最接近真是采样速率的播放速度,可以避免缓冲区数据量在回归正常水位时继续往上升或者继续往下探。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出了本申请提供的一种数据缓冲区管理方法的流程图;

图2示出了本申请提供的一种数据缓冲区管理系统的系统框图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请,以下实施例中的步骤顺序仅为列举,在不冲突的情况下可以调整。

如图1所示,是本发明实施例提供的一种数据缓冲区管理方法的流程图,包括如下步骤:

S101,检测缓冲区当前存储的数据量与预定阈值的大小关系;

S102,记录当前检测次数值;

S103,根据所述当前检测次数值调整采样率。

具体来说,检测设备的缓冲区中当前存储带数据量和预定阈值的大小关系,并记录当前检测的次数值,根据当前检测次数值来调整设备的采样频率从而达到调整播放速度的目的。调整采样率的目的是为了实现播放速度调节,实际上是调节采样率,也就是在标准采样率的基础上增加或者减小,调节范围是标准采样率的0.02%~0.2%,通过提高采样率来加快播放速度,降低采样率来降低播放速度。记录当前检测次数值具体为包括:当所述当前存储的数据量大于预定阈值时,当前检测次数值加1;当所述当前存储的数据量小于预定阈值时,当前检测次数值减1。根据所述当前检测次数值调整采样率包括:当所述当前检测次数值大于预定最大检测次数时,提高所述采样率;当所述当前检测次数值小于预定最小检测次数时,降低所述采样率。所述预定最大检测次数和所述预定最小检测次数设有预定上限值和预定下限值。

通过控制当前检测次数cur_check_count的方式来达到这个目的,每一次检测缓冲区当前存储的数据量与预定阈值的大小关系的时候,都会改变当前检测次数,同时记录下当前检测次数值cur_check_count,如果当前缓冲区存储的数据量stream_length大于预定阈值stream_threshold,那么cur_check_count会加1;如果当前缓冲区存储的数据量stream_length小于预定阈值stream_threshold,那么cur_check_count减1。当cur_check_count大于设定为最大检测次数max_check_count的时候,才提高播放速度,当cur_check_count小于最大检测次数min_check_count的时候,才降低播放速度。在本发明实施例中,由于播放速度快和慢是对称的,设定最大检测次数和最小检测次数是正负值对称关系,这样保证播放速度快慢的对称,在设计过程中设定其他的最大检测次数和最小检测次数亦可。

本发明提供一实施例,例如检测蓝牙副耳机中的缓冲区当前存储的数据量与预定阈值的大小关系,检测当前的存储的数据量和预定阈值大小关系的次数,当前的数据量就是蓝牙主耳机发送过来的数据量,是会波动的,比如当前数据量stream_length为7900,设定的预定阈值stream_threshold为8000,stream_threshold是一个定值,表示在进行系统设计时希望缓冲区中保存的蓝牙音频数据量,比如8000字节,stream_length就是当前保存的蓝牙音频数据,这个值在进行设计时可以需求进行调整,当前存储的数据量小于预定阈值,那么当前检测次数值cur_check_count减1;如果当前的数据量为8100,当前存储的数据量大于预定阈值,那么当前检测次数值加1。当正在播放的时候,循环检测并更新当前检测次数值,次数满足之后相应调整采样率后,当前检测次数值清0,并继续检测。当当前检测次数值cur_check_count大于预定最大检测次数max_check_count或者小于预定最小检测次数min_check_count的时候,就相应增加或者降低播放速度,预定最大检测次数和最小检测次数会根据当前数据量stream_threshold进行调整,调整的范围在high_count和low_count之间。设定前述调整范围,是为了让缓冲区数据量保持在一个很低的水平,如果预定最大检测次数max_check_count是固定的,则有可能还没等到调节开始,就因为缓冲区没有数据播放导致卡顿了。所以需要设定预定最大检测次数max_check_count的预定上限值high_count和预定下限值low_count,设定上限值的目的为了避免调节时间间隔太久,设定下限值的目的是为了可以在保证至少两个耳机正常传输带宽的情况下可以及时作出调节响应。

本发明提供另一实施例,在上述实施例中,根据所述当前检测次数值调整采样率,一般来说,采样率可以设计为包括N级速度调节,在所述N级速度调节包括一个最接近标准采样率的速度级别Lx,其中N>x>0。这里提供一实施例,所述N级速度调节为8级速度调节,分别为L0~L7,所述最接近标准采样率的速度级别Lx为L3,不同的IC有不同的速度调节级别,可以根据不同场景和需求进行相应的设定,一般来说,调节范围是标准采样率的0.02%~0.2%

本发明提供另一实施例,在前述所有实施例的基础上,在根据当前检测次数值调整采样率的步骤之前进一步包括判断缓冲区中数据量的改变趋势的步骤,当所述数据量的改变趋势为从小于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为最接近标准采样率的速度级别;当所述数据量的改变趋势为从大于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为最接近标准采样率的速度级别。

以上述8级速度调节为例,L0~L7这几个level的播放速度中,L3是最接近真实采样率速度的,当所述数据量的改变趋势为从小于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为L3;当所述数据量的改变趋势为从大于所述预定阈值趋向于所述预定阈值时,所述根据所述当前检测次数值调整采样率包括:直接将所述采样率调整为L3。具体来说,当缓冲区的数据量stream_length接近预定阈值stream_threshold的时候,先判断缓冲区数据量的改变趋势,如果数据量是从小于预定阈值stream_threshold趋向于预定阈值stream_threshold,那么接近预定阈值stream_threshold的时候就直接将level调节为L3级速度,而不是从L0,L1,L2再到L3,同样的,当数据量是从大于预定阈值stream_threshold趋向于预定阈值stream_threshold,那么接近stream_threshold的时候也需要将level调节为L3,而不是L7,L6,L5,L4再到L3,这样设计可以避免缓冲区数据量在回归正常水位时继续往上升或者继续往下探。

根据本发明实施例的另一方面,本发明实施例还提供一种数据缓冲区管理系统,可以有效减少至少两个无线设备间通信时的交互次数。

本发明实施例是这样实现的,如图2所示,为本发明实施例提供的一种数据缓冲区管理系统2的框图,包括:

检测装置201,用于检测缓冲区当前存储的数据量与预定阈值的大小关系;

记录装置202,用于记录当前检测次数值;

调整装置203,用于根据所述当前检测次数值调整采样率。

具体来说,该管理系统检测装置2用于检测设备的缓冲区中当前存储带数据量和预定阈值的大小关系,利用记录装置202记录当前检测的次数值,根据当前检测次数值通过调整装置203来调整设备的采样频率从而达到调整播放速度的目的。调整采样率的目的是为了实现播放速度调节,实际上是调节采样率,也就是在标准采样率的基础上增加或者减小,调节范围是标准采样率的0.02%~0.2%,通过提高采样率来加快播放速度,降低采样率来降低播放速度。

本发明实施例提供另一实施例,上述记录装置202进一步包括计数单元2021,用于当所述当前存储的数据量大于预定阈值时,当前检测次数值加1;或用于当所述当前存储的数据量小于预定阈值时,当前检测次数值减1。

本发明实施例提供另一实施例,上述调整装置203进一步包括:加速单元2031,用于当所述当前检测次数值大于预定最大检测次数时,提高所述采样率;减速单元2032,用于当所述当前检测次数值小于预定最小检测次数时,降低所述采样率。预定最大检测次数和所述预定最小检测次数设有预定上限值和预定下限值。

本发明提供一实施例,例如检测蓝牙副耳机中的缓冲区当前存储的数据量与预定阈值的大小关系,检测装置检测当前的存储的数据量和预定阈值大小关系并通过记录装置记录次数,当前的数据量就是蓝牙主耳机发送过来的数据量,是会波动的,比如当前数据量stream_length为7900,设定的预定阈值stream_threshold为8000,stream_threshold是一个定值,表示在进行系统设计时希望缓冲区中保存的蓝牙音频数据量,比如8000字节,stream_length就是当前保存的蓝牙音频数据,这个值在进行设计时可以需求进行调整,检测装置检测到当前存储的数据量小于预定阈值,那么记录装置中计数单元将当前检测次数值cur_check_count减1;如果当前的数据量为8100,检测装置检测到当前存储的数据量大于预定阈值,那么记录装置中计数单元将当前检测次数值加1。当正在播放的时候,循环检测并更新当前检测次数值,次数满足之后相应调整采样率后,然后当前检测次数值清0,并继续检测。当当前检测次数值cur_check_count大于预定最大检测次数max_check_count或者小于预定最小检测次数min_check_count的时候,就相应增加或者降低播放速度,预定最大检测次数和最小检测次数会根据当前数据量stream_threshold进行调整,调整的范围在high_count和low_count之间。设定前述调整范围,是为了让缓冲区数据量保持在一个很低的水平,如果预定最大检测次数max_check_count是固定的,则有可能还没等到调节开始,就因为缓冲区没有数据播放导致卡顿了。所以需要设定预定最大检测次数max_check_count的预定上限值high_count和预定下限值low_count,设定上限值的目的是为了避免调节时间间隔太久,设定下限值的目的是为了可以在保证至少两个耳机正常传输带宽的情况下可以及时作出调节响应。根据记录装置记录的当前检测次数值通过调整装置调整设备的采样频率从而达到调整播放速度的目的。

本发明实施例涉及产品装置部分的实施例在上述方法流程中已经详细描述,在本部分中不予以赘述。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:页条带的数据组织以及向页条带写入数据的方法与装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类