缓存数据管理方法及装置与流程

文档序号:17985394发布日期:2019-06-22 00:22阅读:174来源:国知局
缓存数据管理方法及装置与流程

本申请涉及通信技术领域,具体而言,涉及一种缓存数据管理方法及装置。



背景技术:

数据包在传输过程中受网速波动等因素影响后,会导致其写入缓存器的码率产生抖动。在抖动过程中,如果有大码率数据写入缓存器,则极有可能会导致缓存溢出,进而导致数据丢包的问题,影响通信质量。

现有技术中,可以采用超大缓存来避免缓存溢出,但是,该方法抗抖效果并不明显,并且还会增加资源占用。因此,对本领域技术人员而言,研究一种资源占用少,并且能够有效抗抖的处理方法具有重要意义。



技术实现要素:

为了克服现有技术中的上述不足,本申请提供一种缓存数据管理方法及装置,以降低码率抖动对通信质量的影响,提高设备缓存的抗抖性能。

为了实现上述目的,本申请较佳实施例采用的技术方案如下:

第一方面,本申请实施例提供一种缓存数据管理方法,所述方法包括:

基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率;

检测当前缓存的缓存量;

根据所述平均数据写入码率及所述缓存量对缓存数据的输出码率进行比例-积分-微分pid调节,得到目标输出码率;

采用所述目标输出码率从所述缓存中读取数据。

可选地,在本申请实施例中,所述基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率的步骤,包括:

获取写入缓存的实时数据写入码率;

根据卡尔曼滤波算法对所述实时数据写入码率进行处理,得到预测数据写入码率;

根据所述实时数据写入码率在第一预设周期内的最大值和最小值对所述预测数据写入码率中的坏点进行调整,其中,所述坏点包括大于所述最大值及小于所述最小值的预测数据写入码率;

对调整后的预测数据写入码率进行滑动均值滤波处理,得到目标周期内写入缓存的平均数据写入码率。

可选地,在本申请实施例中,所述获取写入缓存的实时数据写入码率的步骤,包括:

统计单位时间内写入缓存的数据量;

根据所述数据量得到写入缓存的实时数据写入码率。

可选地,在本申请实施例中,所述根据卡尔曼滤波算法对所述实时数据写入码率进行处理,得到预测数据写入码率的步骤,包括:

根据所述实时数据写入码率计算第二预设周期内的平均码率,其中,所述第二预设周期小于所述第一预设周期;

根据卡尔曼滤波算法对所述平均码率进行计算,得到目标周期内写入缓存的预测数据写入码率。

可选地,在本申请实施例中,所述根据所述实时数据写入码率在第一预设周期内的最大值和最小值对所述预测数据写入码率中的坏点进行调整的步骤,包括:

将大于所述最大值的预测数据写入码率设置为所述最大值,将小于所述最小值的预测数据写入码率设置为所述最小值。

可选地,在本申请实施例中,所述对调整后的预测数据写入码率进行滑动均值滤波处理,得到目标周期内写入缓存的平均数据写入码率的步骤,包括:

计算调整坏点后的预测数据写入码率的平均值,将所述平均值作为目标周期内写入缓存的平均数据写入码率。

第二方面,本申请实施例提供一种缓存数据管理装置,所述装置包括:

计算模块,用于基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率;

检测模块,用于检测当前缓存的缓存量;

调节模块,用于根据所述平均数据写入码率及所述缓存量对缓存数据的输出码率进行比例-积分-微分pid调节,得到目标输出码率;

读取模块,用于采用所述目标输出码率从所述缓存中读取数据。

可选地,在本申请实施例中,所述计算模块具体用于:

获取写入缓存的实时数据写入码率;

根据卡尔曼滤波算法对所述实时数据写入码率进行处理,得到预测数据写入码率;

根据所述实时数据写入码率在第一预设周期内的最大值和最小值对所述预测数据写入码率中的坏点进行调整,其中,所述坏点包括大于所述最大值及小于所述最小值的预测数据写入码率;

对调整后的预测数据写入码率进行滑动均值滤波处理,得到目标周期内写入缓存的平均数据写入码率。

可选地,在本申请实施例中,所述计算模块具体用于:

统计单位时间内写入缓存的数据量;

根据所述数据量得到写入缓存的实时数据写入码率。

可选地,在本申请实施例中,所述计算模块还具体用于:

根据所述实时数据写入码率计算第二预设周期内的平均码率,其中,所述第二预设周期小于所述第一预设周期;

根据卡尔曼滤波算法对所述平均码率进行计算,得到目标周期内写入缓存的预测数据写入码率;

将大于所述最大值的预测数据写入码率设置为所述最大值,将小于所述最小值的预测数据写入码率设置为所述最小值,以消除所述预测数据写入码率中的坏点;

计算调整坏点后的预测数据写入码率的平均值,将所述平均值作为目标周期内写入缓存的平均数据写入码率。

相对于现有技术而言,本申请具有以下有益效果:

本申请实施例提供的缓存数据管理方法及装置,首先基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率,并检测当前缓存的缓存量;然后根据所述平均数据写入码率及所述缓存量对缓存数据的输出码率进行pid调节,得到目标输出码率;最后采用所述目标输出码率从所述缓存中读取数据。通过该方法及装置,可以根据预测得到的写入缓存的平均数据写入码率及检测到的当前缓存量对缓存数据的输出码率进行动态调节,从而避免数据码率抖动导致缓存溢出,进而提高数据的通信质量。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的电子设备的结构示意图;

图2为本申请实施例提供的缓存数据管理方法的步骤流程示意图;

图3为图2中步骤s10的子步骤流程示意图;

图4为本申请实施例提供的缓存数据管理装置的模块示意图。

图标:100-电子设备;111-存储器;112-存储控制器;113-处理器;70-缓存数据管理装置;701-计算模块;702-检测模块;703-调节模块;704-读取模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,需要说明的是,术语“第一”、“第二”等命名方式仅是为了区分本申请的不同特征,简化描述,而不是指示或暗示其相对重要性,因此不能理解为对本申请的限制。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参照图1,为本申请实施例提供的一种电子设备100,所述电子设备100包括缓存数据管理装置70、存储器111、存储控制器112及处理器113。

所述存储器111、存储控制器112及处理器113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述缓存数据管理装置70可以包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述电子设备100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器113用于执行所述存储器111中存储的可执行模块,例如所述缓存数据管理装置70所包括的软件功能模块及计算机程序等。

其中,所述存储器111可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序。所述处理器113以及其他可能的组件对存储器111的访问可在所述存储控制器112的控制下进行。

所述处理器113可能是一种集成电路芯片,具有信号的处理能力;也可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。

应当理解的是,图1所示的结构仅为示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

参照图2,为本申请实施例提供的缓存数据管理方法的步骤流程示意图,该方法可以应用于图1所示的电子设备100,为所述电子设备100提供缓存数据管理功能。

下面结合图2对本申请实施例提供的缓存数据管理方法进行详细解释,在本申请实施例中,该方法包括:

步骤s10,基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率。

步骤s20,检测当前缓存的缓存量。

在本申请实施例中,为了平衡缓存数据的写入码率及输出码率,避免写入码率长时间大于输出码率导致缓存溢出,以及写入码率长时间小于输出码率导致缓存读空的情况,采用预测的方式计算下一缓存周期写入缓存的平均数据写入码率,然后结合缓存器中当前缓存的缓存量对缓存数据的输出码率进行动态调节。其中,所述缓存数据可以包括,但不限于基于ip协议的ip数据包,ts流(transportstream)等。

具体地,请参照图3,在本申请实施例中,所述步骤s10可以包括以下子步骤:

子步骤s11,获取写入缓存的实时数据写入码率。

在本申请实施例中,所述写入缓存的实时数据写入码率可以通过统计单位时间写入缓存的数据量得到。举例而言,若1秒内写入缓存的数据量为1mbit,则可以得到写入缓存的实时写入码率为1mbps,其中,所述数据量为1秒内写入缓存的若干个数据包的大小的总和。

进一步地,继续参照图3,在所述子步骤s11之后,所述步骤s10还包括:

子步骤s12,根据卡尔曼滤波算法对所述实时数据写入码率进行处理,得到预测数据写入码率。

具体而言,在本申请实施例中,通过上述步骤s11获取到写入缓存的实时数据写入码率之后,根据该实时数据写入码率计算出一个或多个第二预设周期内的平均码率,然后采用卡尔曼滤波算法对计算得到的平均码率进行计算,即可预测下一个第二预设周期对应的预测数据写入码率。例如,经过统计的数据计算得到1-5秒对应的平均码率为0.5mbps,6-10秒对应的平均码率为2mbps,则根据该平均码率的变化趋势及变化幅度进行卡尔曼滤波处理之后可以预测到11-15秒的平均码率(即所述预测数据写入码率)。

进一步地,继续参照图3,在所述子步骤s12之后,所述步骤s10还包括:

子步骤s13,根据所述实时数据写入码率在第一预设周期内的最大值和最小值对所述预测数据写入码率中的坏点进行调整。

在子步骤s13中,所述坏点包括大于所述最大值及小于所述最小值的预测数据写入码率。在本申请实施例中,为了确保通过上述子步骤s12预测得到的预测数据写入码率处于正常范围之内,采用所述实时数据写入码率在第一预设周期内的最大值和最小值分别作为预测数据写入码率的上限和下限对预测结果进行限制和调整。其中,所述第一预设周期可以根据用户设定的统计周期进行确定,所述第一预设周期中可以包括多个所述第一预设周期。

具体地,在本申请实施例中,所述坏点的调整方式可以是,但不限于将大于所述最大值的坏点设置为所述最大值,将小于所述最大值的坏点设置为所述最小值。

进一步地,继续参照图3,在所述子步骤s13之后,所述方法还包括:

子步骤s14,对调整后的预测数据写入码率进行滑动均值滤波处理,得到目标周期内写入缓存的平均数据写入码率。

在本申请实施例中,为了进一步降低数据写入码率抖动造成的影响,使缓存数据的输出码率更加稳定,在对上述预测数据写入码率进行调整之后,还通过滑动均值滤波算法对调整后的预测数据写入码率进行处理,具体而言,即对调整坏点后的预测数据写入码率进行均值计算,然后将均值计算得到的平均值作为目标周期内写入缓存的平均数据写入码率。具体地,在本申请实施例中,所述目标周期可以为上述的下一个第二预设周期。

继续参照图2,本申请实施例提供的缓存数据管理方法在上述步骤s10和s20之后,还包括:

步骤s30,根据所述平均数据写入码率及所述缓存量对缓存数据的输出码率进行比例-积分-微分pid调节,得到目标输出码率。

步骤s40,采用所述目标输出码率从所述缓存中读取数据。

在本申请实施例中,通过上述步骤s10计算得到目标周期内的平均数据写入码率,并通过上述步骤s20检测到当前缓存的缓存量后,将该平均数据写入码率及缓存量反馈到pid(proportionintegrationdifferentiation,比例-积分-微分)控制器,然后由pid控制器对缓存数据的输出码率进行pid调节,即可得到与当前缓存量及预测的目标周期内的平均数据写入码率相适应的目标输出码率。

具体而言,即在本申请实施例中,若当前缓存量和预测得到的平均数据写入码率呈上升趋势,通过pid调节后可将缓存数据的输出码率增加,从而使得缓存器中的缓存量保持相对稳定,避免数据写入码率抖动过大导致缓存溢出,同时也可以避免缓存数据被读空导致缓存数据输出不连续。

应当注意的是,在本申请实施例中,所述pid控制器对缓存数据的输出码率的调节方式可以包括,但不限于上述情况,具体可以通过pid控制接收到的反馈参数及预先设定的控制参数得到。并且,对于当前缓存量的控制,在本申请实施例中可以通过设定缓存占用阈值(如25%~75%)对当前缓存量进行控制,进一步确保当前缓存量保持稳定。

进一步地,在通过pid调节确定与预测得到的平均数据写入码率及检测得到的当前缓存量相适应的目标输出码率之后,通过dds(directdigitalsynthesizer,直接数字式频率合成器)生成相应的使能信号使处理器113根据该目标输出码率从缓存数据进行数据读取,即可避免写入缓存的数据写入码率抖动导致缓存溢出的问题,换言之,即通过上述方法得到的目标输出码率对缓存数据进行读取可以降低数据写入码率抖动对通信质量的影响。

参照图4,本申请实施例还提供一种缓存数据管理装置70,所述装置包括:

计算模块701,用于基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率。

检测模块702,用于检测当前缓存的缓存量。

调节模块703,用于根据所述平均数据写入码率及所述缓存量对缓存数据的输出码率进行比例-积分-微分pid调节,得到目标输出码率。

读取模块704,用于采用所述目标输出码率从所述缓存中读取数据。

进一步地,在本申请实施例中,所述计算模块701具体用于:

获取写入缓存的实时数据写入码率;

根据卡尔曼滤波算法对所述实时数据写入码率进行处理,得到预测数据写入码率;

根据所述实时数据写入码率在第一预设周期内的最大值和最小值对所述预测数据写入码率中的坏点进行调整,其中,所述坏点包括大于所述最大值及小于所述最小值的预测数据写入码率;

对调整后的预测数据写入码率进行滑动均值滤波处理,得到目标周期内写入缓存的平均数据写入码率。

可选地,在本申请实施例中,所述计算模块701具体用于:

统计单位时间内写入缓存的数据量;

根据所述数据量得到写入缓存的实时数据写入码率。

可选地,在本申请实施例中,所述计算模块701还具体用于:

根据所述实时数据写入码率计算第二预设周期内的平均码率,其中,所述第二预设周期小于所述第一预设周期;

根据卡尔曼滤波算法对所述平均码率进行计算,得到目标周期内写入缓存的预测数据写入码率;

将大于所述最大值的预测数据写入码率设置为所述最大值,将小于所述最小值的预测数据写入码率设置为所述最小值,以消除所述预测数据写入码率中的坏点;

计算调整坏点后的预测数据写入码率的平均值,将所述平均值作为目标周期内写入缓存的平均数据写入码率。

在本申请实施例中,以上各模块可以以程序代码的形式存储在存储器111中,然后由处理器113执行所述程序代码,以实现上述的各个功能。其中,各个功能的具体实现过程可以参照上述方法,此处不再进行赘述。

综上所述,本申请实施例提供一种缓存数据管理方法及装置,该方法及装置首先基于写入缓存的历史数据写入码率预测目标周期内写入缓存的平均数据写入码率,并检测当前缓存的缓存量;然后根据所述平均数据写入码率及所述缓存量对缓存数据的输出码率进行pid调节,得到目标输出码率;最后采用所述目标输出码率从所述缓存中读取数据。通过该方法及装置,可以根据预测得到的写入缓存的平均数据写入码率及检测到的当前缓存量对缓存数据的输出码率进行动态调节,从而避免数据码率抖动导致缓存溢出,进而提高数据的通信质量。

应当注意的是,在本申请实施例中所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1