一种图像数据的内存管理方法及装置的制作方法

文档序号:6429565阅读:207来源:国知局
专利名称:一种图像数据的内存管理方法及装置的制作方法
技术领域
本发明涉及图像采集技术,特别涉及一种图像数据的内存管理方法及装置。
背景技术
申请号为01118873. 1的发明专利公开了 “自适应动态内存管理方法”,如图1所示。现结合图1,对上述发明的方法进行说明,具体如下步骤101,检查该种字节数分片类型的页面簇中是否有空闲分片,如果有,转步骤 105 ;如果无,继续步骤102 ;步骤102,判断空闲内存区占整个内存空间的比例是否小于等于设定值,如果是,转步骤104 ;如果否,执行步骤103 ;步骤103,从空闲内存区中划出一个相应类型的页面簇,转步骤105 ;步骤104,从其他类型的页面簇中找出所有分片均处于空闲的页面簇,将其改变为所需类型的页面簇;继续步骤105 ;步骤105,从页面簇中分配分片。现有的自适应动态内存管理方法中,对内存空间依各种分片的字节数划分不同类型的页面簇,以页面簇为单位从占整个内存空间一定比例的空闲内存区中分配以供申请, 每个页面簇中至少包含一个页面,每个页面能且只能容纳一个分片;现有的内存管理方法引入页面簇作为划分内存空间的单位,每个页面簇中的页面数量可任意设定,在使用中,可以链表的形式对页面簇进行管理,给每个页面簇设置一个用以记录页面簇类型、页面数和空闲指针的页面簇头;其中,空闲指针在本页面簇空闲时,指向同一类型的下一个空闲页面簇的页面簇头。现有的自适应动态内存管理方法中,还公开了对相同类型的空闲分片采用链表方式管理,设置空闲分片头指针用以指向此空闲分片链的链首,同一个页面簇中的空闲分片被连在链表中相连的区段,每个页面簇设置用以指向本页面簇中第一个分片的头指针和用以指向本页面簇中最后一个分片的尾指针,这样便于对空闲页面簇进行回收转换处理。目前,摄像机及其他视频监控产品中的系统对采集获得的图像数据进行保存时, 由于内存的存储空间的限制,可能需要对已保存于内存中的部分数据进行释放,以获得用来继续保存图像数据的空闲存储空间。由于现有的视频监控产品多采用多路转发的方式进行工作,即保存于内存的数据不是按照保存的时间先后顺序被释放,而是根据外部指令释放部分存储空间或随机地释放部分存储空间,这样就可能造成内存中空闲的存储空间不是连续地,此时,若采用现有的自适应动态内存管理方法进行管理,则不仅会在空闲页面簇保存图像数据的过程中产生较多的碎片式的页面簇,而且容量较大的数据申请内存存储时, 查找支持同一类型的空闲页面簇的多个空闲分片的效率将会大幅降低。综上所述,现有的自适应动态内存管理方法在对视频监控产品的前端采集的图像数据进行数据的内存管理时,可能会产生较多的碎片式的页面簇,降低了内存空间的利用率,同时可能会存在查找空闲分片的效率低下的问题,进一步影响图像数据的存储效率
发明内容
有鉴于此,本发明的目的在于提供一种图像数据的内存管理方法,该方法能够避免碎片的产生,提高内存空间的利用率和图像数据的存储效率。本发明的目的在于提供一种图像数据的内存管理装置,该装置能够避免碎片的产生,提高内存空间的利用率和图像数据的存储效率。为达到上述目的,本发明的技术方案具体是这样实现的一种图像数据的内存管理方法,该方法包括A、将内存池划分为数据区和信息区,将数据区划分为数据簇、和用以保存簇链及数据簇的标识信息的索引簇;所述数据簇包含第一数据簇和/或第二数据簇;所述簇链为利用簇链指针表示第二数据簇的先后顺序的信息;所述第一数据簇为具有第一标识的数据簇;所述第一标识为用以表示该数据簇未被写入数据或其保存的数据能被覆盖的信息;所述第二数据簇为具有第二标识的数据簇; 所述第二标识为用以表示该数据簇已被写入数据且其保存的数据不能被覆盖的信息;B、判断数据区包含的第一数据簇形成的内存空间是否大于或等于待存储数据所需的内存空间,如果是,则执行步骤C,否则执行步骤D ;C、在信息区生成链表结点,在数据区的索引簇中生成与链表结点建立链接的簇链,执行步骤E ;D、从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将与簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点,执行步骤B;E、将待存储数据写入数据区中、与生成的链表结点建立链接的簇链所对应的第二数据簇。上述方法中,步骤C所述在信息区生成链表结点包括Cl、在信息区包含的信息链的末尾挂接一个空链表结点;C2、将获得的待存储数据的附加信息写入所述空链表结点;所述待存储数据的附加信息至少包含待存储数据所需的内存空间。
上述方法中,步骤C所述在数据区的索引簇中生成与链表结点建立链接的簇链包括C3、根据索引簇中的第一标识,获得数据区中的第一数据簇及其簇地址;所述簇地址为数据簇相对于数据区的首地址的偏移量;C4、将步骤C3所述第一数据簇在索引簇中标记为第二标识,并根据簇地址生成簇链及簇链的索引值;C5、判断步骤C4所述簇链对应的第二数据簇的内存空间是否小于待存储数据所需的内存空间,如果是,执行步骤C3,否则执行步骤C6 ;C6、将步骤C4所述簇链的索引值写入生成的链表结点。上述方法中,步骤C4所述根据簇地址生成簇链及簇链的索引值包括C41、将在索引簇中标记为第二标识的第一数据簇作为当前的第二数据簇;C42、判断当前的第二数据簇是否位于簇链的首位,如果是,则执行C44,否则执行步骤C43 ;C43、生成当前的第二数据簇指向前一个第二数据簇的簇链指针,根据生成的簇链
5指针和当前的第二数据簇更新簇链;C44、将位于簇链首位的第二数据簇的簇地址作为该簇链的索引值。一种图像数据的内存管理装置,该装置包含内存池,该装置还包含内存划分模块,将内存池划分为数据区和信息区,将数据区划分为数据簇、和用以保存簇链及数据簇的标识信息的索引簇;所述数据簇包含第一数据簇和/或第二数据簇; 所述簇链为利用簇链指针表示第二数据簇的先后顺序的信息;内存管理模块,用于根据簇链生成指令,在数据区包含的第一数据簇形成的内存空间小于待存储数据所需的内存空间,从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点;所述内存管理模块在数据区包含的第一数据簇形成的内存空间大于或等于待存储数据所需的内存空间,在数据区的索引簇中生成与链表结点建立链接的簇链并输出至数据管理模块;数据管理模块,用于在内存池中的信息区生成链表结点,并输出簇链生成指令至内存管理模块,将接收到的簇链与生成的链表结点建立链接,并将待存储数据写入与链表结点建立链接的簇链对应的第二数据簇;所述第一数据簇为具有第一标识的数据簇;所述第二数据簇为具有第二标识的数据簇;所述第一标识为用以表示该数据簇未被写入数据或其保存的数据能被覆盖的信息; 所述第二标识为用以表示该数据簇已被写入数据且其保存的数据不能被覆盖的信息。上述装置中,所述内存管理模块包括控制单元,用于根据簇链生成指令,比较数据区包含的第一数据簇形成的内存空间与待存储数据所需的内存空间的大小关系,确认大于或等于时触发第二管理单元,确认小于时触发第一管理单元;输出簇链及其索引值至数据管理模块;第一管理单元,用于根据控制单元的触发,从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点,触发第二管理单元;第二管理单元,用于根据控制单元的触发或第一管理单元的触发,根据索引簇中的第一标识,获得与待存储数据所需的内存空间匹配的多个第一数据簇及其簇地址;将多个第一数据簇在索引簇中标记为第二标识,并根据簇地址生成簇链及簇链的索引值;将簇链及其索引值输出至控制单元;所述簇地址为数据簇相对于数据区的首地址的偏移量;所述簇链的索引值为位于簇链首位的第二数据簇的簇地址。上述装置中,所述数据管理模块包括结点生成单元,用于在信息区包含的信息链的末尾挂接一个空链表结点,将获得的待存储数据的附加信息写入空链表结点,输出簇链生成指令至控制单元,将接收到的簇链的索引值写入生成的链表结点,输出存储指令及链表结点至数据存储单元;所述待存储数据的附加信息至少包含待存储数据所需的内存空间;数据存储单元,用于根据存储指令,将待存储数据写入数据区中与链表结点建立链接的簇链对应的第二数据簇。
由上述的技术方案可见,本发明提供了一种图像数据的内存管理方法及装置,以簇作为存储数据的最小存储单元,将内存池划分为信息区和数据簇,在保存数据的过程中, 在信息区生成信息链的链表结点的同时,在数据区生成簇链,并将簇链与链表结点建立一一对应的关系,这样,即便未写入数据的内存空间在地址上不是连续的,也可以通过簇链和链表结点,将数据连续性地写入簇链对应的多个第二数据簇中或连续地从簇链对应的多个第二数据簇中读取数据。采用本发明的方法及装置,能够有效地实现数据的多路转发,也避免在存储数据的过程中产生碎片,提高了存储效率。


图1为现有的自适应动态内存管理方法的流程图。图2为本发明图像数据的内存管理方法的流程图。图3为本发明图像数据的内存管理装置的结构示意图.图4为本发明的内存管理装置包含的内存池的结构示意图。
具体实施例方式为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例, 对本发明进一步详细说明。为了表述清楚,先对本发明的方法及装置进行定义说明,具体为本发明的内存池是在将数据存储于内存之前,从系统中申请的一定数量的内存块,在有待存储数据请求内存分配时,按照本发明的以簇为最小存储单位进行内存分配或覆盖,这样既避免了内存碎片的产生,又避免了频繁地从系统申请分配内存空间所导致的内存分配效率较低的问题。 本发明的簇(cluster)是指可分配的用以保存数据的最小磁盘或内存空间,比如磁盘中 FAT文件格式对最小存储空间定义为512B至32KB,一般将数值为2的N次方的存储空间称为簇。图2为本发明图像数据的内存管理方法的流程图。现结合图2,对本发明图像数据的内存管理方法进行说明,具体如下步骤200 将内存池划分为数据区和信息区,并将数据区划分为索引簇和数据簇;索引簇用以保存簇链及数据簇的标识信息。其中,簇链为利用簇链指针表示第二数据簇的先后顺序的信息,换句话说,簇链为一条由簇链指针和具有先后顺序的第二数据簇形成的链条,该链条中的第二数据簇是以其名称或簇地址表示的,通过簇链能够得知该簇链对应的第二数据簇及第二数据簇在链条中的先后顺序。数据簇的标识信息为数据簇所具有的第一标识或第二标识;第一标识为用以表示该数据簇未被写入数据或其保存的数据能被覆盖的信息;第二标识为用以表示该数据簇已被写入数据且其保存的数据不能被覆盖的信息。数据簇包含第一数据簇和/或第二数据簇;第一数据簇为具有第一标识的数据簇;第二数据簇为具有第二标识的数据簇。信息区中保存了由多个链条结点组成的一个信息链;每个链条结点保存有数据的附加信息和与该链条结点建立链接的簇链的索引值。步骤201 判断内存池中数据区包含的第一数据簇形成的内存空间是否大于或等于待存储数据所需的内存空间,如果是,执行步骤202,否则执行步骤208 ;根据数据区中索引簇包含的数据簇的标识信息,获得数据区包含的未写入数据的第一数据簇所形成的空闲的内存空间的大小;根据待存储数据的附加信息获得待存储数据所需的内存空间。待存储数据的附加信息至少包含待存储数据所需的内存空间,待存储数据的附加信息还可进一步包含待存储数据的采集时间等与数据采集相关的信息。步骤202 在内存池中的信息区生成链表结点;该步骤包括步骤2021,在内存池中的信息区保存的信息链的末尾挂接一个空链表结点;步骤2022,将待存储数据的附加信息写入步骤2021生成的空链表结点。本发明的信息区包含的信息链中的每一个链表结点是按照保存数据的先后顺序生成的,信息链中除位于链首的链表结点之外,其余的链表结点都具有一个指向前一个链表结点的链表指针,以便在信息链中的链表结点被删除时,可通过改变链表指针所指向的链表结点,保证信息链的连续性。步骤203 获得数据区所包含的第一数据簇;根据数据区的索引簇中保存的数据簇的标识信息,获得数据区所包含的第一数据簇及其簇地址。数据区中除第一个簇之外,每一个簇的簇地址为该簇在数据区中相对于数据区的第一个簇的偏移量;数据区的第一个簇的地址为该簇在内存中的物理地址;上述的簇可以为索引簇,也可以为第一数据簇或第二数据簇。步骤204 将索引簇中第一数据簇的标识信息更改为第二标识并生成簇链;该步骤包括步骤2041,将步骤203选择的第一数据簇在索引簇中的数据簇的标识信息标记为第二标识;步骤2042,将索引簇中的标识信息标记为第二标识的第一数据簇作为当前的第二数据簇;步骤2043,判断当前的第二数据簇是否位于簇链的首位,如果是, 执行步骤2045,否则执行步骤2044 ;步骤2044,生成当前的第二数据簇指向前一个第二数据簇的簇链指针,并根据簇链指针及当前的第二数据簇,更新簇链中第二数据簇的先后顺序;步骤2045,将位于簇链首位的第二数据簇的簇地址作为该簇链的索引值;。其中,步骤2044中,簇链指针为待存储数据写入簇链对应的第二数据簇提供一个先后顺序。步骤205 判断簇链对应的第二数据簇的内存空间是否小于待存储数据所需的内存空间,如果是,执行步骤203,否则执行步骤206 ;该步骤具体是判断已形成的簇链所对应的多个第二数据簇的内存空间的大小是否满足待存储数据的需求。步骤206 将簇链的索引值写入步骤202生成的链表结点;将簇链的索引值写入信息区的链表结点,形成了信息区的链表结点与数据区的簇链的对应关系,即簇链与链表结点建立链接。至此,信息区保存的信息链形成了一种静态双向链表,链表中的链表结点在与前后链表结点形成一定的先后顺序的同时,与数据区中的索引簇中的簇链形成了对应的关系,这种静态双向链表,不仅能够在不产生碎片的前提下进行数据存储,而且能够满足多路转发的需要。
步骤207 将待存储数据写入簇链对应的第二数据簇,之后执行步骤211 ;按照簇链所表示的第二数据簇的先后顺序,将待存储数据写入数据区中簇链对应的第二数据簇中。该步骤提及的第二数据簇是被标记为第二标识的第一数据簇,即被标记为第二标识的未被写入数据的数据簇或其保存的数据能被覆盖的数据簇。步骤208 从数据区的索引簇中获得与待存储数据所需的内存空间匹配的簇链;根据数据区的索引簇中簇链对应的第二数据簇形成的内存空间,获得大于或等于待存储数据所需的内存空间的簇链。该步骤中,为了有效利用存储空间,避免产生多余的碎片,在数据区中存在多个满足对应的内存空间大于或等于待存储数据所需的内存空间的簇链时,优先选择较早形成的簇链,换句话说,优先选择信息区中靠近信息链的链首位置的链表结点对应的簇链。步骤209 将步骤208的簇链对应的第二数据簇在索引簇中的标识信息标记为第一标识;在数据区的索引簇中,将步骤208的簇链对应的第二数据簇的标识信息更改为第一标识。该步骤更改索引簇中第二数据簇所对应的标识信息,就可实现对簇链对应的第二数据簇所形成的内存空间的进行覆盖式存储,无需释放或清空簇链对应的第二数据簇中保存的数据。步骤210 删除步骤208中的簇链及与该簇链建立链接的链表结点,之后执行步骤 201 ;该步骤包括步骤2101,根据步骤208的簇链的索引值,从信息区的信息链中查找包含簇链的索引值的链表结点,即与簇链建立链接的链表结点;步骤2102,删除步骤2101 中的链表结点;步骤2103,更改被删除的链表结点的后一个链表结点的链表指针的指向, 以保证信息链的连续性;步骤2104,从数据区的索引簇中删除步骤208的簇链。步骤211:结束。图3为本发明图像数据的内存管理装置的结构示意图。图4为本发明的内存管理装置包含的内存池的结构示意图。现结合图3及图4,对本发明图像数据的内存管理装置的结构进行说明,具体如下本发明的图像数据的内存管理装置包含内存池30、内存管理模块31、数据管理模块32和内存划分模块33。内存划分模块33用于将内存池30划分为数据区301和信息区302,将数据区301 划分为数据簇3012、和用以保存簇链及数据簇的标识信息的索引簇3011。信息区302用于保存由链表节点3021组成的信息链。其中,索引簇3011用以保存簇链及数据簇的标识信息;数据簇的标识信息为第一标识或第二标识。内存管理模块31用于根据簇链生成指令,在内存池30中的数据区301包含的第一数据簇形成的内存空间小于待存储数据所需的内存空间,从索引簇中3011获得与待存储数据所需的内存空间匹配的簇链,将簇链对应的第二数据簇在索引簇3011中标记为第一标识,并删除索引簇3011中的簇链及信息区302中与簇链建立链接的链表结点3021。
内存管理模块31在内存池30中的数据区301包含的第一数据簇形成的内存空间大于或等于待存储数据所需的内存空间,在数据区301的索引簇3011中生成与链表结点 3021建立链接的簇链,并输出簇链至数据管理模块32。数据管理模块32用于在内存池30中的信息区302生成链表结点3021,并输出簇链生成指令至内存管理模块31,将接收到的簇链与生成的链表结点3021建立链接,并将待存储数据写入与链表结点3021建立链接的簇链对应的第二数据簇。其中,内存管理模块31包含控制单元311、第一管理单元312和第二管理单元 313。控制单元311用于根据簇链生成指令,比较内存池30中的数据区301包含的第一数据簇形成的内存空间与待存储数据所需的内存空间的大小关系,确认大于或等于时触发第二管理单元313,确认小于时触发第一管理单元312 ;输出簇链及其索引值至数据管理模块32。第一管理单元312用于根据控制单元311的触发,从索引簇3011中获得与待存储数据所需的内存空间匹配的簇链,将簇链对应的第二数据簇在索引簇3011中标记为第一标识,并删除索引簇3011中的簇链及信息区302中与簇链建立链接的链表结点3021,并触发第二管理单元313。第二管理单元313用于根据控制单元311的触发或第一管理单元312的触发,根据索引簇3011中的第一标识,获得与待存储数据所需的内存空间匹配的多个第一数据簇及其簇地址;将多个第一数据簇在索引簇3011中标记为第二标识,并根据簇地址生成簇链及簇链的索引值;将簇链及其索引值输出至控制单元311。其中,数据管理模块32包括结点生成单元321和数据存储单元322。结点生成单元321用于在内存池30中的信息区302包含的信息链的末尾挂接一个空链表结点3021,将获得的待存储数据的附加信息写入空链表结点3021,输出簇链生成指令至控制单元311,将接收到的簇链的索引值写入生成的链表结点3021,输出存储指令及链表结点3021至数据存储单元322。数据存储单元322用于根据存储指令,将待存储数据写入数据区301中与链表结点3021建立链接的簇链对应的第二数据簇中。本发明的上述较佳实施例中,以簇作为存储数据的最小存储单元,将内存池划分为信息区和数据簇,在保存数据的过程中,在信息区生成信息链的链表结点的同时,在数据区生成簇链,并将簇链与链表结点建立一一对应的关系,这样,即便未写入数据的数据簇或可进行覆盖式存储的数据簇在地址上不是连续的,通过本发明的方法,根据上述多个地址不连续的数据簇的信息生成一个簇链,虽然数据簇的地址仍然是不连续的,但是通过簇链中的先后顺序,在写入数据时,就能够按照簇链中的先后顺序进行连续性地操作,从簇链对应的数据簇中也能够连续地读取其保存的数据,避免了碎片的产生,有效地实现了数据的多路转发,提高了存储效率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种图像数据的内存管理方法,其特征在于,该方法包括A、将内存池划分为数据区和信息区,将数据区划分为数据簇、和用以保存簇链及数据簇的标识信息的索引簇;所述数据簇包含第一数据簇和/或第二数据簇;所述簇链为利用簇链指针表示第二数据簇的先后顺序的信息;所述第一数据簇为具有第一标识的数据簇;所述第一标识为用以表示该数据簇未被写入数据或其保存的数据能被覆盖的信息;所述第二数据簇为具有第二标识的数据簇;所述第二标识为用以表示该数据簇已被写入数据且其保存的数据不能被覆盖的信息;B、判断数据区包含的第一数据簇形成的内存空间是否大于或等于待存储数据所需的内存空间,如果是,则执行步骤C,否则执行步骤D ;C、在信息区生成链表结点,在数据区的索引簇中生成与链表结点建立链接的簇链,执行步骤E;D、从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将与簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点,执行步骤B;E、将待存储数据写入数据区中、与生成的链表结点建立链接的簇链所对应的第二数据簇。
2.根据权利要求1所述的方法,其特征在于,步骤C所述在信息区生成链表结点包括 Cl、在信息区包含的信息链的末尾挂接一个空链表结点;C2、将获得的待存储数据的附加信息写入所述空链表结点; 所述待存储数据的附加信息至少包含待存储数据所需的内存空间。
3.根据权利要求1所述的方法,其特征在于,步骤C所述在数据区的索引簇中生成与链表结点建立链接的簇链包括C3、根据索引簇中的第一标识,获得数据区中的第一数据簇及其簇地址;所述簇地址为数据簇相对于数据区的首地址的偏移量;C4、将步骤C3所述第一数据簇在索引簇中标记为第二标识,并根据簇地址生成簇链及簇链的索引值;C5、判断步骤C4所述簇链对应的第二数据簇的内存空间是否小于待存储数据所需的内存空间,如果是,执行步骤C3,否则执行步骤C6 ;C6、将步骤C4所述簇链的索引值写入生成的链表结点。
4.根据权利要求3所述的方法,其特征在于,步骤C4所述根据簇地址生成簇链及簇链的索引值包括C41、将在索引簇中标记为第二标识的第一数据簇作为当前的第二数据簇;C42、判断当前的第二数据簇是否位于簇链的首位,如果是,则执行C44,否则执行步骤C43 ;C43、生成当前的第二数据簇指向前一个第二数据簇的簇链指针,根据生成的簇链指针和当前的第二数据簇更新簇链;C44、将位于簇链首位的第二数据簇的簇地址作为该簇链的索引值。
5.一种图像数据的内存管理装置,该装置包含内存池,其特征在于,该装置还包含 内存划分模块,将内存池划分为数据区和信息区,将数据区划分为数据簇、和用以保存簇链及数据簇的标识信息的索引簇;所述数据簇包含第一数据簇和/或第二数据簇;所述簇链为利用簇链指针表示第二数据簇的先后顺序的信息;内存管理模块,用于根据簇链生成指令,在数据区包含的第一数据簇形成的内存空间小于待存储数据所需的内存空间,从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点;所述内存管理模块在数据区包含的第一数据簇形成的内存空间大于或等于待存储数据所需的内存空间,在数据区的索引簇中生成与链表结点建立链接的簇链并输出至数据管理模块;数据管理模块,用于在内存池中的信息区生成链表结点,并输出簇链生成指令至内存管理模块,将接收到的簇链与生成的链表结点建立链接,并将待存储数据写入与链表结点建立链接的簇链对应的第二数据簇;所述第一数据簇为具有第一标识的数据簇;所述第二数据簇为具有第二标识的数据簇;所述第一标识为用以表示该数据簇未被写入数据或其保存的数据能被覆盖的信息;所述第二标识为用以表示该数据簇已被写入数据且其保存的数据不能被覆盖的信息。
6.根据权利要求5所述的装置,其特征在于,所述内存管理模块包括控制单元,用于根据簇链生成指令,比较数据区包含的第一数据簇形成的内存空间与待存储数据所需的内存空间的大小关系,确认大于或等于时触发第二管理单元,确认小于时触发第一管理单元;输出簇链及其索引值至数据管理模块;第一管理单元,用于根据控制单元的触发,从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点,触发第二管理单元;第二管理单元,用于根据控制单元的触发或第一管理单元的触发,根据索引簇中的第一标识,获得与待存储数据所需的内存空间匹配的多个第一数据簇及其簇地址;将多个第一数据簇在索引簇中标记为第二标识,并根据簇地址生成簇链及簇链的索引值;将簇链及其索引值输出至控制单元;所述簇地址为数据簇相对于数据区的首地址的偏移量;所述簇链的索引值为位于簇链首位的第二数据簇的簇地址。
7.根据权利要求6所述的装置,其特征在于,所述数据管理模块包括结点生成单元,用于在信息区包含的信息链的末尾挂接一个空链表结点,将获得的待存储数据的附加信息写入空链表结点,输出簇链生成指令至控制单元,将接收到的簇链的索引值写入生成的链表结点,输出存储指令及链表结点至数据存储单元;所述待存储数据的附加信息至少包含待存储数据所需的内存空间;数据存储单元,用于根据存储指令,将待存储数据写入数据区中与链表结点建立链接的簇链对应的第二数据簇。
全文摘要
本发明提供了一种图像数据的内存管理方法及装置,该方法包括,A、将内存池划分为数据区和信息区,将数据区划分为数据簇和索引簇;B、判断数据区包含的第一数据簇形成的内存空间是否大于或等于待存储数据所需的内存空间,如果是,则执行步骤C,否则执行步骤D;C、在信息区生成链表结点,在数据区的索引簇中生成簇链,执行步骤E;D、从索引簇中获得与待存储数据所需的内存空间匹配的簇链,将与簇链对应的第二数据簇在索引簇中标记为第一标识,并删除簇链及与簇链建立链接的链表结点,执行步骤B;E、将待存储数据写入数据区中的第二数据簇。采用本发明的方法及装置,能够避免碎片的产生,提高内存空间的利用率和图像数据的存储效率。
文档编号G06T1/60GK102253898SQ201110212568
公开日2011年11月23日 申请日期2011年7月22日 优先权日2011年7月22日
发明者鲍敦桥 申请人:杭州海康威视数字技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1