System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,具体而言,涉及一种编解码器内存引用方法、编解码器内存引用装置、电子设备及计算机程序产品。
技术介绍
1、ffmpeg(fast forward moving picture experts group,快转动态图像专家组)是一种编解码工具,支持多种编解码器集成,编码解码转码等功能。ffmpeg是领先的多媒体框架,能够解码、编码、转码、复用、解复用、流式传输、过滤和播放人类和机器创建的几乎所有内容,支持从最晦涩的古老格式到最前沿的格式,还具有高度的可移植性。
2、ffmpeg内部可以集成多种编解码器,然而编解码的过程中需要对帧内存进行复制和管理,导致消耗较多的cpu(central processing unit,中央处理器)计算资源,同时对编解码的速度也产生了一定影响。
3、鉴于此,本领域亟需一种能够减少cpu资源消耗,并提高编解码处理速度的方法。
4、需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、本公开的目的在于提供一种编解码器内存引用方法、编解码器内存引用装置、电子设备及计算机程序产品,进而至少在一定程度上能够减少cpu资源消耗,并提高编解码的处理速度。
2、根据本公开的第一个方面,提供一种编解码器内存引用方法,包括:
3、在编解码器中,根据编解码帧的图像像素信息得到所述编解码帧的帧内存,其中,
4、通过所述ffmpeg引用所述编解码器中的帧内存,输出所述编解码帧对应的输出帧。
5、在本公开的一种示例性实施例中,所述方法还包括:
6、获取所述ffmpeg的内存管理方法,并根据所述ffmpeg的内存管理方法生成所述编解码器的帧内存申请接口,以使所述编解码器的帧内存申请接口与所述ffmpeg的接口兼容。
7、在本公开的一种示例性实施例中,所述内存管理方法包括内存申请方法、内存引用方法和内存释放方法。
8、在本公开的一种示例性实施例中,所述在编解码器中,根据编解码帧的图像像素信息得到所述编解码帧的帧内存,包括:
9、在编解码器中,对帧队列中的所述编解码帧的帧内容进行拆分,得到所述编解码帧的图像像素信息和属性信息;
10、根据编解码帧的图像像素信息得到所述编解码帧的帧内存。
11、在本公开的一种示例性实施例中,所述方法还包括:
12、在所述ffmpeg输出所述编解码帧对应的输出帧之后,控制所述ffmpeg解除引用所述编解码器中的帧内存。
13、在本公开的一种示例性实施例中,所述方法还包括:
14、在所述ffmpeg输出所述编解码帧对应的输出帧之后,将所述输出帧对应的帧内存回收至内存池中。
15、在本公开的一种示例性实施例中,所述方法还包括:
16、在所述输出帧对应的帧内存的引用计数为预设数值时,将所述输出帧对应的帧内存回收至内存池中。
17、根据本公开的第二方面,提供一种编解码器内存引用装置,包括:
18、帧内存申请模块,被配置为执行在编解码器中,根据编解码帧的图像像素信息得到所述编解码帧的帧内存,其中,所述编解码器中的帧内存与ffmpeg中的帧内存的数据结构相同;
19、帧内存引用模块,被配置为执行通过所述ffmpeg引用所述编解码器中的帧内存,输出所述编解码帧对应的输出帧。
20、在本公开的一种示例性实施例中,所述编解码器内存引用装置还包括:
21、接口重构模块,被配置为执行获取所述ffmpeg的内存管理方法,并根据所述ffmpeg的内存管理方法生成所述编解码器的帧内存申请接口,以使所述编解码器的帧内存申请接口与所述ffmpeg的接口兼容。
22、在本公开的一种示例性实施例中,所述帧内存申请模块包括:
23、帧内容拆分单元,被配置为执行在编解码器中,对帧队列中的所述编解码帧的帧内容进行拆分,得到所述编解码帧的图像像素信息和属性信息;
24、帧内存申请单元,被配置为执行根据编解码帧的图像像素信息得到所述编解码帧的帧内存。
25、在本公开的一种示例性实施例中,所述编解码器内存引用装置还包括:
26、帧内存解除引用模块,被配置为执行在所述ffmpeg输出所述编解码帧对应的输出帧之后,控制所述ffmpeg解除引用所述编解码器中的帧内存。
27、在本公开的一种示例性实施例中,所述编解码器内存引用装置还包括:
28、帧内存回收模块,被配置为执行在所述ffmpeg输出所述编解码帧对应的输出帧之后,将所述输出帧对应的帧内存回收至内存池中。
29、帧内存回收模块还被配置为执行在所述输出帧对应的帧内存的引用计数为预设数值时,将所述输出帧对应的帧内存回收至内存池中。
30、根据本公开的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述任意一项所述的编解码器内存引用方法。
31、根据本公开的第四方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的编解码器内存引用方法。
32、本公开示例性实施例可以具有以下有益效果:
33、本公开示例实施方式的编解码器内存引用方法中,通过在编解码器中,根据编解码帧的图像像素信息得到编解码帧的帧内存,并通过ffmpeg引用编解码器中的帧内存,输出编解码帧对应的输出帧,其中,编解码器中的帧内存与ffmpeg中的帧内存的数据结构相同。本公开示例实施方式中的编解码器内存引用方法,通过合并编解码器的帧内存和ffmpeg的帧内存申请,避免增加一次帧内存复制过程,使ffmpeg直接引用编解码器中的帧内存,输出编解码帧对应的输出帧,而不再需要复制编解码器中的帧内存,解决了ffmpeg与编解码器之间由于帧内存复制导致的性能损耗和功耗问题,节省了cpu计算资源开销,在提高编解码处理速度的同时降低了系统能耗。
34、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本文档来自技高网...【技术保护点】
1.一种编解码器内存引用方法,其特征在于,包括:
2.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的编解码器内存引用方法,其特征在于,所述内存管理方法包括内存申请方法、内存引用方法和内存释放方法。
4.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述在编解码器中,根据编解码帧的图像像素信息得到所述编解码帧的帧内存,包括:
5.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述方法还包括:
8.一种编解码器内存引用装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的编解码器内存引用方法。
【技术特征摘要】
1.一种编解码器内存引用方法,其特征在于,包括:
2.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的编解码器内存引用方法,其特征在于,所述内存管理方法包括内存申请方法、内存引用方法和内存释放方法。
4.根据权利要求1所述的编解码器内存引用方法,其特征在于,所述在编解码器中,根据编解码帧的图像像素信息得到所述编解码帧的帧内存,包括:
5.根据权利要求1所述的编解码器内存引用方...
【专利技术属性】
技术研发人员:何盈燊,冯伟伦,林镇安,周超,
申请(专利权)人:北京达佳互联信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。