[发明专利]一种音视频通话的内存管理方法及Linux嵌入式音视频系统在审
申请号: | 202210607113.2 | 申请日: | 2022-05-31 |
公开(公告)号: | CN115016936A | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 袁观福;王居辉 | 申请(专利权)人: | 睿云联(厦门)网络通讯技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/02;H04N7/14 |
代理公司: | 厦门原创专利事务所(普通合伙) 35101 | 代理人: | 高巍 |
地址: | 361000 福建省厦门市火*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 视频 通话 内存 管理 方法 linux 嵌入式 系统 | ||
本发明公开了一种音视频通话的内存管理方法及Linux嵌入式音视频系统,涉及计算机技术领域,该内存管理方法将页式管理内存进行大块内存和小块内存的划分,大块内存直接分配,小块内存按照每个页面作为一个节点分配,当内存申请时通过移动小块尾部指针进行内存分配,直到分配到链表尾部或者剩余不足时,会分配新的存储页。这里使用加速匹配的方式,利用相邻优先匹配原则将时间复杂度减低,将音视频会话内的所有内存统一管理、分配和释放,降低了内存泄漏风险,减少系统调用。
技术领域
本发明涉及计算机技术领域,更具体的讲是一种音视频通话的内存管理方法及Linux嵌入式音视频系统。
背景技术
随着网络带宽增加和市场对于音视频产品的需求不断提升,嵌入式终端对音视频的需求量迅速攀升,但是嵌入式本身由于成本各方面的要求在产品性能和内存方面大部分无法直接使用主流的音视频框架,存在内存池分配不合理,频繁调用,分配效率低,系统调用能力差,泄漏风险大等问题。因此,需要开发一种针对音视频通话中内存调用的管理方法。
此外,虽然现有Linux嵌入式产品的芯片平台众多,但是受限于芯片flash和内存限制,而且内存管理以及功能模块管理的策略存在不足,目前不存在一种通用的音视频解决方案支持各种嵌入式设备,无法满足各种特定需求的扩展。
发明内容
本发明提供一种音视频通话的内存管理方法,目的在于解决现有技术中存在的上述问题。
本发明采用如下技术方案:
一种音视频通话的内存管理方法,包括以下步骤:
(1)申请内存;
(2)判断申请内存的大小是否大于第一阈值,若否,则执行步骤(3);若是,则分配大块内存节点,然后执行步骤(8);
(3)获取小块内存管理链表的当前节点,并获取头指针字节;
(4)判断当前节点的剩余内存大小是否满足申请内存的大小;若是,则执行步骤(8);若否,执行步骤(5);
(5)申请内存的失败次数加一;然后判断失败次数是否大于或等于第二阈值;若否,则执行步骤(6);若是,则执行步骤(7);
(6)判断当前节点是否为链表尾部;若否,则指向下一节点,然后执行步骤(4);若是,则执行步骤(7);
(7)分配新的小块内存节点;
(8)返回分配地址;
(9)结束。
进一步,所述步骤(1)之前还包括:接收第一指令后,建立内存池。
更进一步,所述第一指令是:启动音视频会话。
进一步,所述内存池采用页式存储,且所述第一阈值与页式存储的页面大小相同。
进一步,所述步骤(2)中,分配大块内存节点具体包括:首先通过步骤(3)至步骤(8)所记载的方式获得小块内存节点;然后将获得的小块内存节点加入大块内存管理链表;申请大块内存;返回分配地址。
进一步,所述第二阈值取值为3。所述第一阈值取值为4K。
进一步,所述步骤(7)具体是:分配新的小块内存节点,将其加入小块内存管理链表;然后,获取该新的小块内存节点的当前节点,将其更新为当前节点位置。
一种Linux嵌入式音视频系统,包括内存管理模块,该内存管理模块使用上述任一所述的一种音视频通话的内存管理方法。
进一步,该系统包括相互连接的组件管理模块、网络管理模块、所述内存管理模块、高性能无锁队列模块、音视频处理组件、跨平台适应模块和音视频采集模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于睿云联(厦门)网络通讯技术有限公司,未经睿云联(厦门)网络通讯技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210607113.2/2.html,转载请声明来源钻瓜专利网。