利索能及
我要发布
收藏
专利号: 2017105877460
申请人: 杭州海康威视数字技术股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-25
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种内存管理方法,其特征在于,所述方法包括:

基于内存复用队列,为视频帧数据分配第一内存地址,所述内存复用队列用于记录已进行了渲染的视频帧数据所在的内存地址,所述视频帧数据为解码后的数据;

将所述视频帧数据存储至所述第一内存地址所指示的内存空间;

在基于所述视频帧数据进行渲染后,将所述第一内存地址添加到所述内存复用队列中。

2.根据权利要求1所述的方法,其特征在于,所述基于内存复用队列,为视频帧数据分配第一内存地址,包括:如果所述内存复用队列中包含有内存地址,根据所述视频帧数据的数据量,从所述内存复用队列中获取第二内存地址,所述第二内存地址所指示的内存空间不小于所述视频帧数据的数据量;

如果从所述内存复用队列中获取到所述第二内存地址,将所述第二内存地址移出所述内存复用队列,并将所述第二内存地址作为所述第一内存地址。

3.根据权利要求2所述的方法,其特征在于,根据所述视频帧数据的数据量,从所述内存复用队列中获取第二内存地址之后,所述方法还包括:如果未从所述内存复用队列中获取到所述第二内存地址,从所述内存复用队列以外内存地址中获取第三内存地址,所述第三内存地址所指示的内存空间不小于所述视频帧数据的数据量;

将所述第三内存地址作为所述第一内存地址。

4.根据权利要求1所述的方法,其特征在于,所述基于内存复用队列,为视频帧数据分配第一内存地址,包括:如果所述内存复用队列中未包含有内存地址,获取所述内存复用队列所包含内存地址以外的第四内存地址;

将所述第四内存地址作为所述第一内存地址。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到视频流时,获取所述视频流的分辨率;根据所述分辨率所指示的视频帧数据的数据量,执行基于内存复用队列,为视频帧数据分配第一内存地址的步骤;或,在对接收到的视频流进行解码的过程中,当获取到所述视频帧数据时,执行基于内存复用队列,为视频帧数据分配第一内存地址的步骤。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过多媒体浏览应用的指定接口启动子线程;

通过所述子线程对所述视频帧数据进行解码。

7.根据权利要求1或6所述的方法,其特征在于,所述方法还包括:通过多媒体浏览应用的主线程对所述视频帧数据进行渲染;

相应地,所述在基于所述视频帧数据进行渲染后,将所述第一内存地址添加到所述内存复用队列中,包括:通过所述主线程将所述第一内存地址传递给所述多媒体浏览应用的子线程;通过所述子线程将所述第一内存地址添加到所述内存复用队列中;或,通过所述主线程将所述第一内存地址添加到所述内存复用队列中。

8.一种内存管理装置,其特征在于,所述装置包括:

分配模块,用于基于内存复用队列,为视频帧数据分配第一内存地址,所述内存复用队列用于记录已进行了渲染的视频帧数据所在的内存地址,所述视频帧数据为解码后的数据;

存储模块,用于将所述视频帧数据存储至所述第一内存地址所指示的内存空间;

添加模块,用于在基于所述视频帧数据进行渲染后,将所述第一内存地址添加到所述内存复用队列中。

9.根据权利要求8所述的装置,其特征在于,所述分配模块包括:第一获取单元,用于如果所述内存复用队列中包含有内存地址,根据所述视频帧数据的数据量,从所述内存复用队列中获取第二内存地址,所述第二内存地址所指示的内存空间不小于所述视频帧数据的数据量;

第一分配单元,用于如果从所述内存复用队列中获取到所述第二内存地址,将所述第二内存地址移出所述内存复用队列,并将所述第二内存地址作为所述第一内存地址。

10.根据权利要求9所述的装置,其特征在于,所述分配模块还包括:第二获取单元,用于如果未从所述内存复用队列中获取到所述第二内存地址,从所述内存复用队列以外内存地址中获取第三内存地址,所述第三内存地址所指示的内存空间不小于所述视频帧数据的数据量;

第二分配单元,用于将所述第三内存地址作为所述第一内存地址。

11.根据权利要求8所述的装置,其特征在于,所述分配模块还包括:第三获取单元,用于如果所述内存复用队列中未包含有内存地址,获取所述内存复用队列所包含内存地址以外的第四内存地址;

第三分配单元,用于将所述第四内存地址作为所述第一内存地址。

12.根据权利要求8所述的装置,其特征在于,所述分配模块,用于当接收到视频流时,获取所述视频流的分辨率;根据所述分辨率所指示的视频帧数据的数据量,执行基于内存复用队列,为视频帧数据分配第一内存地址的步骤;或,所述分配模块,用于在对接收到的视频流进行解码的过程中,当获取到所述视频帧数据时,执行基于内存复用队列,为视频帧数据分配第一内存地址的步骤。

13.根据权利要求8所述的装置,其特征在于,所述装置还包括:启动模块,用于通过多媒体浏览应用的指定接口启动子线程;

解码模块,用于通过所述子线程对所述视频帧数据进行解码。

14.根据权利要求8或13所述的装置,其特征在于,所述装置还包括:渲染模块,用于通过多媒体浏览应用的主线程对所述视频帧数据进行渲染;

相应地,所述添加模块用于:通过所述主线程将所述第一内存地址传递给所述多媒体浏览应用的子线程;通过所述子线程将所述第一内存地址添加到所述内存复用队列中;或,通过所述主线程将所述第一内存地址添加到所述内存复用队列中。

15.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的计算机程序,实现权利要求1-7任一项所述的方法步骤。

16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法步骤。