《一种内存分配方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种内存分配方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104182355A43申请公布日20141203CN104182355A21申请号201410438502222申请日20140829G06F12/0220060171申请人广州华多网络科技有限公司地址510655广东省广州市黄埔大道中309号羊城创意产业园308栋72发明人李锦陈杰施剑华74专利代理机构广州三环专利代理有限公司44202代理人郝传鑫熊永强54发明名称一种内存分配方法及装置57摘要本发明公开了一种内存分配方法及装置,所述方法包括在检测到视频数据的内存请求时,获取视频数据块的大小,视频数据包括多个视频数据块;获取目标内存池中预先分配的预设内存块的大小,目标内存。
2、池包括多个预设内存块;比较视频数据块的大小和预设内存块的大小,在视频数据块的大小与预设内存块的大小不一致时,根据视频数据块的大小为视频数据分配目标内存块。通过本发明实施例,可根据实时的视频数据中的视频数据块的大小进行内存分配,分配的内存块大小与视频数据块的大小适配,提升了视频数据内存分配方案的灵活性,提高了内存使用率。51INTCL权利要求书2页说明书9页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图4页10申请公布号CN104182355ACN104182355A1/2页21一种内存分配方法,其特征在于,所述方法包括在检测到视频数据的内存请求时,获取视频。
3、数据块的大小,所述视频数据包括多个所述视频数据块;获取目标内存池中预先分配的预设内存块的大小,所述目标内存池包括多个所述预设内存块;比较所述视频数据块的大小和所述预设内存块的大小;在所述比较结果为所述视频数据块的大小与所述预设内存块的大小不一致时,根据所述视频数据块的大小为所述视频数据分配目标内存块。2如权利要求1所述的方法,其特征在于,所述获取视频数据块的大小包括获取预设时间内接收到的每个视频数据块的大小,在所述预设时间内接收到的每个视频数据块的大小与所述预设内存块的大小不一致时,确定所述比较结果为所述视频数据块的大小与所述预设内存块的大小不一致;或获取接收到的前N个视频数据块中每个视频数据。
4、块的大小,其中,N为预设数量,在所述接收到的前N个视频数据块中每个视频数据块的大小与所述预设内存块的大小不一致时,确定所述比较结果为所述视频数据块的大小与所述预设内存块的大小不一致。3如权利要求1所述的方法,其特征在于,所述比较所述视频数据块的大小和所述预设内存块的大小,包括计算所述视频数据块的大小与所述预设内存块的大小的差值,在所述差值满足预设第一差值阈值时,确定所述比较结果为所述视频数据块的大小与所述预设内存块的大小不一致。4如权利要求1所述的方法,其特征在于,所述比较所述视频数据块的大小和所述预设内存块的大小,包括比较所述预设内存块的大小是否多于所述视频数据块的大小的第一比例值,或比较所。
5、述预设内存块的大小是否少于所述视频数据块的大小的第二比例值;在所述预设内存块的大小多于所述视频数据块的大小的第一比例值,或所述预设内存块的大小少于所述视频数据块的大小的第二比例值时,确定所述比较结果为所述视频数据块的大小与所述预设内存块的大小不一致。5如权利要求14任一所述的方法,其特征在于,所述根据所述视频数据块的大小为所述视频数据分配目标内存块,包括计算所述视频数据块的大小与预设第二差值阈值的和,或计算所述视频数据块的大小与预设比值阈值的乘积,由所述计算结果得到所述目标内存块的大小;根据所述目标内存块的大小从所述目标内存池中申请多个所述目标内存块,并为所述视频数据块分配所述目标内存块。6一。
6、种内存分配装置,其特征在于,所述装置包括数据块获取模块,用于在检测到视频数据的内存请求时,获取视频数据块的大小,所述视频数据包括多个所述视频数据块;内存块获取模块,用于获取目标内存池中预先分配的预设内存块的大小,所述目标内存池包括多个所述预设内存块;比较模块,用于比较所述视频数据块的大小和所述预设内存块的大小;权利要求书CN104182355A2/2页3分配模块,在所述比较模块的比较结果为所述视频数据块的大小与所述预设内存块的大小不一致时,根据所述视频数据块的大小为所述视频数据分配目标内存块。7如权利要求6所述的装置,其特征在于,所述数据块获取模块包括第一获取单元或第二获取单元;所述第一获取单。
7、元,用于获取预设时间内接收到的每个视频数据块的大小,在所述预设时间内接收到的每个视频数据块的大小与所述预设内存块的大小不一致时,确定所述视频数据块的大小与所述预设内存块的大小不一致;所述第二获取单元,用于获取接收到的前N个视频数据块中每个视频数据块的大小,其中,N为预设数量,在所述接收到的前N个视频数据块中每个视频数据块的大小与所述预设内存块的大小不一致时,确定所述视频数据块的大小与所述预设内存块的大小不一致。8如权利要求6所述的装置,其特征在于,所述比较模块包括第一计算单元,用于计算所述视频数据块的大小与所述预设内存块的大小的差值,在所述差值满足预设第一差值阈值时,确定所述比较模块的比较结果。
8、为视频数据块的大小与所述预设内存块的大小不一致。9如权利要求6所述的装置,其特征在于,所述比较模块还包括比例值比较单元,用于比较所述预设内存块的大小是否多于所述视频数据块的大小的第一比例值,或比较所述预设内存块的大小是否少于所述视频数据块的大小的第二比例值;在所述预设内存块的大小多于所述视频数据块的大小的第一比例值,或所述预设内存块的大小少于所述视频数据块的大小的第二比例值时,确定所述比较模块的比较结果为所述视频数据块的大小与所述预设内存块的大小不一致。10如权利要求69任一所述的装置,其特征在于,所述分配模块包括第二计算单元,用于计算所述视频数据块的大小与预设第二差值阈值的和,或计算所述视频。
9、数据块的大小与预设比值阈值的乘积,由所述计算结果得到所述目标内存块的大小;分配单元,用于根据所述目标内存块的大小从所述目标内存池中申请多个所述目标内存块,并为所述视频数据块分配所述目标内存块。权利要求书CN104182355A1/9页4一种内存分配方法及装置技术领域0001本发明涉及计算机领域,尤其涉及一种内存分配方法及装置。背景技术0002在对播放的视频数据进行缓存时,将视频数据缓存到内存池中,内存池包括多个内存块,每个内存块的大小一样,多个内存块的总大小多于视频数据的大小,为每一个视频数据块分配一个空闲的内存块,其中,视频数据包括多个视频数据块,视频数据块可以为一帧视频数据,也可以为几帧视。
10、频数据。视频数据在不同分辨率的播放界面下,视频数据块的大小是不相同的,例如不同大小的播放界面对应不同的分辨率,但为每个视频数据块分配的内存块的大小固定不变,若视频数据块的大小多于内存块的大小,则视频数据块无法完整存储到内存间中,若视频数据块的大小少于内存空间的大小,则会造成内存空间的浪费,该内存分配方案缺乏灵活性,且大大降低了内存使用率。发明内容0003本发明实施例提供一种内存分配方法及装置,可提高视频数据的内存分配方案的灵活性,且可提高内存使用率。0004本发明第一方面提供一种内存分配方法,可包括0005在检测到视频数据的内存请求时,获取视频数据块的大小,所述视频数据包括多个所述视频数据块;。
11、0006获取目标内存池中预先分配的预设内存块的大小,所述目标内存池包括多个所述预设内存块;0007比较所述视频数据块的大小和所述预设内存块的大小;0008在所述比较结果为所述视频数据块的大小与所述预设内存块的大小不一致时,根据所述视频数据块的大小为所述视频数据分配目标内存块。0009本发明第二方面提供一种内存分配装置,可包括0010数据块获取模块,用于在检测到视频数据的内存请求时,获取视频数据块的大小,所述视频数据包括多个所述视频数据块;0011内存块获取模块,用于获取目标内存池中预先分配的预设内存块的大小,所述目标内存池包括多个预设内存块;0012比较模块,用于比较所述视频数据块的大小和所述。
12、预设内存块的大小;0013分配模块,用于在所述比较模块的比较结果为所述视频数据块的大小与所述预设内存块的大小不一致时,根据所述视频数据块的大小为所述视频数据分配目标内存块。0014实施本发明实施例,具有如下有益效果0015本发明实施例可在检测到视频数据的内存请求时,获取视频数据块的大小,还可获取目标内存池中预先分配的预设内存块的大小,进而可比较视频数据块的大小和预设内存块的大小,在比较结果为视频数据块的大小与预设内存块的大小不一致时,根据视频数说明书CN104182355A2/9页5据块的大小为视频数据分配目标内存块,本发明实施例可根据实时的视频数据中的视频数据块的大小进行内存分配,分配的内存。
13、块大小与视频数据块的大小适配,提升了视频数据内存分配方案的灵活性,提高了内存使用率。附图说明0016为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0017图1为本发明实施例提供的一种内存分配方法的流程图;0018图2为本发明实施例提供的另一种内存分配方法的流程图0019图3为本发明实施例提供的一种内存分配示意图;0020图4为本发明实施例提供的一种内存分配装置的结构示意图;0021图5为。
14、本发明实施例提供的比较模块的结构示意图;0022图6为本发明实施例提供的分配模块的结构示意图。具体实施方式0023下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0024本发明实施例提供一种内存分配方法及装置,可为视频数据分配目标内存块,其中,视频数据包括多个视频数据块,视频数据块可以为一帧视频数据,也可以为几帧视频数据,视频数据的视频数据块的大小是变化的,例如,对于同一视频数据,在手。
15、机中播放时,手机横屏与手机竖屏的情况下分别对应不同的播放界面分辨率,则不同的播放界面分辨率下的视频数据块的大小不一样。本发明实施例中,可根据当前获取到的视频数据块的大小,与预设内存块的大小比较,在视频数据块的大小与预设内存块的大小不一致时,根据视频数据块的大小为视频数据分配目标内存块,从而避免了视频数据块的大小多于内存块的大小导致视频数据块无法完整存储到内存间中的情况,也避免了视频数据块的大小少于内存空间的大小造成内存空间的浪费的情况。0025进一步的,本发明实施例中的预设内存块为目标内存池中空闲的内存块,本发明实施例中的目标内存块为目标内存池中空闲的内存块。0026进一步可选的,本发明实施例。
16、在播放视频数据之前进行,在为视频数据分配目标内存块之后,视频数据的视频数据块缓存到目标内存块中,再从目标内存块中读取一帧的视频数据,从而进行视频数据的播放,从而可自适应各种视频质量,使得视频数据的视频数据块大小与目标内存块的大小适配,提升了视频数据内存分配方案的灵活性。0027本发明实施例提供一种内存分配装置可以为个人计算机、平板电脑、智能手机、笔记本电脑等可播放视频数据的终端设备,也可以为终端设备中的如视频播放器客户端、网页浏览器客户端等客户端模块。本发明实施例提供的一种内存分配方案例如在网页中播说明书CN104182355A3/9页6放视频时,缓存视频时需对缓存的视频数据进行内存分配的场景。
17、等等。0028下面将结合附图1附图3,对本发明实施例提供的内存分配方法进行详细介绍。0029请参见图1,为本发明实施例提供的一种内存分配方法的流程图;该方法可包括以下步骤S101S104。0030S101,在检测到视频数据的内存请求时,获取视频数据块的大小,视频数据包括多个视频数据块。0031作为一种可选的实施方式,在检测到视频数据的内存请求时,具体的,可以在接收到用户对视频数据的播放操作时确定检测到视频数据的内存请求,在检测到视频数据的内存请求后,获取视频数据块的大小,其中,视频数据包括多个视频数据块,视频数据块可以为一帧视频数据,也可以为几帧视频数据,具体不受本发明实施例的限制。0032进。
18、一步的,步骤S101获取视频数据块的大小具体可以包括0033获取预设时间内接收到的每个视频数据块的大小,在预设时间内接收到的每个视频数据块的大小与预设内存块的大小不一致时,确定比较结果为视频数据块的大小与预设内存块的大小不一致;或0034获取接收到的前N个视频数据块中每个视频数据块的大小,其中,N为预设数量,在接收到的前N个视频数据块中每个视频数据块的大小与预设内存块的大小不一致时,确定比较结果为视频数据块的大小与预设内存块的大小不一致。0035具体实现中,预设时间可以为根据每帧视频数据的传送时间的整数倍进行设置的时间数值,例如20MS、15MS等,预设时间可设置定时器进行控制,则预设时间内可。
19、接收到M个视频数据块,M为大于1的正整数,获取M个视频数据块中每个视频数据块的大小。0036进一步的,获取接收到的前N个视频数据块中每个视频数据块的大小,其中,N为预设数量,具体的,还可对视频数据块的数量进行计数,每收到一个视频数据块,递增内部计数,在内部计数的数值达到预设数量N时,获取该N个视频数据块中每个视频数据块的大小,即对接收到的第一个视频数据块、第二个视频数据块第N个视频数据块进行处理,获取前N个视频数据块中每个视频数据块的大小。0037S102,获取目标内存池中预先分配的预设内存块的大小,目标内存池包括多个预设内存块。0038作为一种可选的实施方式,可获取目标内存池中预先分配的预设。
20、内存块的大小,其中,目标内存池包括多个预设内存块,预设内存块的大小为预先设定的一数值,目标内存池为在接收到内存请求时从内存池中申请的一个足够内存空间的内存池,目标内存池的大小多于视频数据的大小。0039进一步可选的,步骤S101、S102的执行无先后之分,可以先执行其中一个,再执行另一个步骤,也可同时执行。0040S103,比较视频数据块的大小和预设内存块的大小。0041作为一种可选的实施方式,可比较视频数据块的大小和预设内存块的大小。具体实现中,可计算视频数据块的大小与预设内存块的大小的差值。进一步的,可比较预设内存块的大小是否多于视频数据块的大小的第一比例值,或比较预设内存块的大小是否少于。
21、视频数据块的大小的第二比例值。其中,第一比例值可以为预先设定的预设内存块的大小比视频数据块的大小多的比例值,例如第一比例值可以为120,若预设内存块的大小为说明书CN104182355A4/9页780KB,视频数据块的大小为30KB,则8030120;第二比例值可以为预先设定的预设内存块的大小比视频数据块的大小少的比例值,例如第二比例值可以为110,若预设内存块的大小为80KB,视频数据块的大小为80KB,则8030120;第二比例值可以为预先设定的预设内存块的大小比视频数据块的大小少的比例值,例如第二比例值可以为110,若预设内存块的大小为80KB,视频数据块的大小为80KB,则808011。
22、0。0091分配模块404,在比较模块403的比较结果为视频数据块的大小与预设内存块的大小不一致时,根据视频数据块的大小为视频数据分配目标内存块。0092作为一种可选的实施方式,在比较模块403的比较结果为视频数据块的大小与预设内存块的大小不一致时,分配模块404可清空预设内存块,并根据视频数据块的大小为视频数据分配目标内存块。具体的,分配模块404可清空预先分配的预设内存块,再重新为视频数据分配内存块,具体为视频数据分配目标内存块。进一步的,也可直接根据视频数据块的大小为视频数据分配目标内存块,具体不受本发明实施例的限制。0093进一步的,数据块获取模块401在获取预设时间内接收到的每个视频。
23、数据块的大小之后,在预设时间内接收到的每个视频数据块的大小与预设内存块的大小不一致时,比较模块403可确定比较结果为视频数据块的大小与预设内存块的大小不一致。0094进一步的,在获取接收到的前N个视频数据块中每个视频数据块的大小之后,在接收到的前N个视频数据块中每个视频数据块的大小与预设内存块的大小不一致时,确定比较模块403的比较结果为视频数据块的大小与预设内存块的大小不一致。0095进一步的,在计算视频数据块的大小与预设内存块的大小的差值中所得到的差值满足预设第一差值阈值时,可确定比较模块403的比较结果为视频数据块的大小与预设内存块的大小不一致。其中,预设第一差值阈值为预先设定的视频数据。
24、块的大小与预设内存块的大小的差值的最小值和最大值,例如,预设第一差值阈值可以为15,1单位为KB,即视频数据块的大小与预设内存块的大小的差值的最小值可以为15KB,最大值可以为1KB。0096进一步的,在预设内存块的大小多于视频数据块的大小的第一比例值,或预设内存块的大小少于视频数据块的大小的第二比例值时,课确定比较模块403的比较结果为视频数据块的大小与预设内存块的大小不一致。0097进一步可选的,如图6所示,为本发明实施例提供的分配模块的结构示意图,如图所示,分配模块404可以包括第二计算单元61和分配单元62。0098第二计算单元61,用于计算视频数据块的大小与预设第二差值阈值的和,或计。
25、算视频数据块的大小与预设比值阈值的乘积,由计算结果得到目标内存块的大小。0099分配单元62,用于根据目标内存块的大小从目标内存池中申请多个目标内存块,说明书CN104182355A119/9页12并为视频数据块分配目标内存块。0100具体实现中,预设第二差值阈值为预先设定的预设内存块的大小与视频数据块的大小的差值的最小值和最大值,例如,预设第二差值阈值可以为1,20单位为KB,即视频数据块的大小与预设内存块的大小的差值的最小值可以为1KB,最大值可以为20KB,具体的,可从预设第二差值阈值中选一个作为最终值,例如,可以选1,则若视频数据块的大小为30KB,则目标内存块的大小可以设为30131。
26、KB。0101其中,预设比值阈值可以为预先设定的目标内存块的大小与视频数据块的大小的比值的最小值和最大值,例如,预设比值阈值可以为11,15,即目标内存块的大小与视频数据块的大小的比值的最小值可以为11,比值的最大值可以为15。例如,视频数据块的大小为30KB,则目标内存块的大小可以设为301133KB。0102具体实现中,在第二计算单元61计算得到目标内存块的大小后,分配单元62可根据目标内存块的大小从目标内存池中申请多个目标内存块,例如,计算得到目标内存块的大小为31KB,则可从目标内存池中申请多个31KB的目标内存块。进一步的,为每个视频数据块分配一个目标内存块,从而可将接收到的视频数据。
27、块缓存到目标内存块中。0103进一步可选的,在比较模块403的比较结果为视频数据块的大小与预设内存块的大小一致时,分配模块404还可将接收到的视频数据块缓存到预设内存块中。0104进一步可选的,在比较模块403的比较结果为视频数据块的大小与预设内存块的大小不一致时,清空预设内存块,分配模块404可为视频数据分配目标内存块,其中,目标内存块的大小与视频数据块的大小相同。0105本发明实施例提供一种内存分配装置,数据块获取模块可在检测到视频数据的内存请求时,获取视频数据块的大小,内存块获取模块可获取目标内存池中预先分配的预设内存块的大小,进而比较模块可比较视频数据块的大小和预设内存块的大小,在比较。
28、模块的比较结果为视频数据块的大小与预设内存块的大小不一致时,分配模块可根据视频数据块的大小为视频数据分配目标内存块,本发明实施例可根据实时的视频数据中的视频数据块的大小进行内存分配,分配的内存块大小与视频数据块的大小适配,提升了视频数据内存分配方案的灵活性,提高了内存使用率。0106本发明实施例还公开了一种终端,包括图4图6任一所示的装置;该装置的结构和功能可参见图4图6任一所示实施例的相关描述,在此不赘述。需要说明的是,本实施例提供的服务器与图1、图2所示的内存分配方法相对应,为基于图1或图2所示的内存分配方法的执行主体。0107本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程。
29、,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体READONLYMEMORY,ROM或随机存储记忆体RANDOMACCESSMEMORY,RAM等。0108以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。说明书CN104182355A121/4页13图1说明书附图CN104182355A132/4页14图2说明书附图CN104182355A143/4页15图3说明书附图CN104182355A154/4页16图4图5图6说明书附图CN104182355A16。