一种多进程编解码同源文件的方法、系统、终端及介质技术方案

技术编号:38030750 阅读:9 留言:0更新日期:2023-06-30 10:57
本发明专利技术涉及视频编解码领域,具体公开一种多进程编解码同源文件的方法、系统、终端及介质,判断源文件是否已被打开;若未打开,则打开源文件获取源文件全局上下文,并申请内存缓存区,在内存缓存区内填充源文件帧数据,从内存缓存区内提取帧数据进行编解码;若已打开,则直接从内存缓存区内提取帧数据进行编解码。本发明专利技术多个编解码进程优先使用同一个内存缓存区,从一个内存缓存区内提取数据进行编解码,减少等待问题,提高编解码效率,且节省内存空间,提高内存利用率。提高内存利用率。提高内存利用率。

【技术实现步骤摘要】
一种多进程编解码同源文件的方法、系统、终端及介质


[0001]本专利技术涉及视频编解码领域,具体涉及一种多进程编解码同源文件的方法、系统、终端及介质。

技术介绍

[0002]数据显示,近年来在线视频市场规模逐年上升,在线视频行业近年来保持较高增速,体现了行业强大的活力和乐观的产业前景,在线视频的影响力也在与日俱增。视频编解码技术是网络电视发展的最初条件,高效的视频编码保证在现实的互联网环境下提供视频服务。
[0003]视频压缩编码技术可以分为两大类:无损压缩和有损压缩。无损压缩也称为可逆编码,指使用压缩后的数据进行重构(即:解压缩)时,重构后的数据与原来的数据完全相同。有损压缩也称为不可逆编码,指使用压缩后的数据进行重构(即:解压缩)时,重构后的数据与原来的数据有差异,但不影响人们对原始资料所表达的信息造成误解。
[0004]当前视频公司为每个视频源提供了不同的分辨率以供用户自行选择,例如1080P、520P等,这个过程需要将视频文件进行各自不同分辨率的编解码,当在使用多个编解码进程对同一个源文件进行编解码得到多个不同分辨率视频时,每个编解码进程都会各自申请内存空间,将读取的源文件内容存储到自己的内存空间,然后进行数据处理,然而由于硬盘等存储设备的读写限制,当前多编码进程同时读取源文件的方式会出现等待问题以及造成内存空间的浪费。

技术实现思路

[0005]为解决上述问题,本专利技术提供一种多进程编解码同源文件的方法、系统、终端及介质,多个编解码进程优先使用同一个内存缓存区,从一个内存缓存区内提取数据进行编解码,减少等待问题,提高编解码效率,且节省内存空间,提高内存利用率。
[0006]第一方面,本专利技术的技术方案提供一种多进程编解码同源文件的方法,包括以下步骤:判断源文件是否已被打开;若未打开,则打开源文件获取源文件全局上下文,并申请内存缓存区,在内存缓存区内填充源文件帧数据,从内存缓存区内提取帧数据进行编解码;若已打开,则直接从内存缓存区内提取帧数据进行编解码。
[0007]在一个可选的实施方式中,判断目标源文件是否已被打开之前,还包括以下步骤:对编解码进程进行注册;注册过程中对编解码进程添加标记点。
[0008]在一个可选的实施方式中,该方法还包括以下步骤:响应于判断到目标源文件未被打开,将当前编解码进程的标记点设置为第一标记;
响应于判断到目标源文件已被打开,将当前编解码进程的标记点设置为第二标记。
[0009]在一个可选的实施方式中,判断到目标源文件已被打开之后,还包括以下步骤:判断内存缓存区是否已扩容;若未扩容,则通知具有第一标记的编解码进程对已申请的内存缓存区进行扩容;具有第一标记的编解码进程从源文件中提取帧数据将扩容后的内存缓存区填充满。
[0010]在一个可选的实施方式中,从内存缓存区内提取帧数据进行编解码,具体包括:检测当前编解码进程的标记点标识;响应于当前编解码进程的标记点标识为第一标记,从内存缓存区内提取第一帧数据包;对第一帧数据包进行编解码,编解码完成后继续执行从内存缓存区内提取第二帧数据包的操作;对第二帧数据包进行编解码,编解码完成后继续执行从内存缓存区内提取第三帧数据包的操作;以此类推,直到从内存缓存区内提取数据失败,表示当前编解码进程已将内存缓存区内的数据全部编解完成,从源文件中提取下一段的帧数据填充并覆盖到内存缓存区内。
[0011]在一个可选的实施方式中,从内存缓存区内提取帧数据进行编解码,具体还包括:检测当前编解码进程的标记点标识;响应于当前编解码进程的标记点标识为第二标记,从内存缓存区内提取第一帧数据包;对第一帧数据包进行编解码,编解码完成后继续执行从内存缓存区内提取第二帧数据包的操作;检测第二帧数据包是否提取成功;若第二帧数据包提取不成功,则判断提取次数是否已达到阈值;若未达到,则继续执行从内存缓存区内提取第二帧数据包的操作;若达到,则当前编解码进程将自身标记点的标识修改为第一标识,并重新申请的独享的内存缓存区,从源文件中提取已编解码完成的帧数据的下一段的帧数据填充到所重新申请的独享的内存缓存区;从重新申请的独享的内存缓存区提取帧数据包进行编解码;若第二帧数据包提取成功,对第二帧数据包进行编解码,编解码完成后继续执行从内存缓存区内提取第三帧数据包的操作,以此类推。
[0012]在一个可选的实施方式中,从内存缓存区内提取帧数据进行编解码前,还包括以下步骤:探测流信息,获取编码格式;根据编码格式查找对应的编解码器;打开所查找的编解码器;申请缩放数据格式转换结构体;
从内存缓存区内提取帧数据进行编解码后,还包括以下步骤:释放转换结构体;关闭编解码器;关闭源文件。
[0013]第二方面,本专利技术的技术方案提供一种多进程编解码同源文件的系统,包括,文件状态判断模块:判断源文件是否已被打开;第一编解码模块:若判断源文件未打开,则打开源文件获取源文件全局上下文,并申请内存缓存区,在内存缓存区内填充源文件帧数据,从内存缓存区内提取帧数据进行编解码;第二编解码模块:若判断源文件已打开,则直接从内存缓存区内提取帧数据进行编解码。
[0014]第三方面,本专利技术的技术方案提供一种终端,包括:存储器,用于存储多进程编解码同源文件的程序;处理器,用于执行所述多进程编解码同源文件的程序时实现如上述任一项所述多进程编解码同源文件的方法的步骤。
[0015]第四方面,本专利技术的技术方案提供一种计算机可读存储介质,所述可读存储介质上存储有多进程编解码同源文件的程序,所述多进程编解码同源文件的程序被处理器执行时实现如上述任一项所述多进程编解码同源文件的方法的步骤。
[0016]本专利技术提供的一种多进程编解码同源文件的方法、系统、终端及介质,相对于现有技术,具有以下有益效果:编解码进程首先检测源文件是否已打开,如果还未打开,说明当前编解码进程是第一个编解码进程,需要打开源文件并申请内存缓存区,将源文件中的帧数据存放到内存缓存区,之后从该内存缓存区提取数据进行编解码;如果源文件已经打开,说明当前编解码进程是第一个之后的编解码进程,当前编码进程直接从第一个编解码进程申请的内存缓存区中提取数据进行编解码,而无需自己再申请内存缓存区。本专利技术多个编解码进程优先使用同一个内存缓存区,从一个内存缓存区内提取数据进行编解码,减少等待问题,提高编解码效率,且节省内存空间,提高内存利用率。
附图说明
[0017]为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1是当前多编解码进程数据处理原理示意图。
[0019]图2是本专利技术实施例提供的一种多进程编解码同源文件的方法数据处理原理示意图。
[0020]图3是本专利技术实施例提供的一种多进程编解码同源文件的方法流程示意图。
[0021]图4是本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多进程编解码同源文件的方法,其特征在于,包括以下步骤:判断源文件是否已被打开;若未打开,则打开源文件获取源文件全局上下文,并申请内存缓存区,在内存缓存区内填充源文件帧数据,从内存缓存区内提取帧数据进行编解码;若已打开,则直接从内存缓存区内提取帧数据进行编解码。2.根据权利要求1所述的多进程编解码同源文件的方法,其特征在于,判断目标源文件是否已被打开之前,还包括以下步骤:对编解码进程进行注册;注册过程中对编解码进程添加标记点。3.根据权利要求2所述的多进程编解码同源文件的方法,其特征在于,该方法还包括以下步骤:响应于判断到目标源文件未被打开,将当前编解码进程的标记点设置为第一标记;响应于判断到目标源文件已被打开,将当前编解码进程的标记点设置为第二标记。4.根据权利要求3所述的多进程编解码同源文件的方法,其特征在于,判断到目标源文件已被打开之后,还包括以下步骤:判断内存缓存区是否已扩容;若未扩容,则通知具有第一标记的编解码进程对已申请的内存缓存区进行扩容;具有第一标记的编解码进程从源文件中提取帧数据将扩容后的内存缓存区填充满。5.根据权利要求3或4所述的多进程编解码同源文件的方法,其特征在于,从内存缓存区内提取帧数据进行编解码,具体包括:检测当前编解码进程的标记点标识;响应于当前编解码进程的标记点标识为第一标记,从内存缓存区内提取第一帧数据包;对第一帧数据包进行编解码,编解码完成后继续执行从内存缓存区内提取第二帧数据包的操作;对第二帧数据包进行编解码,编解码完成后继续执行从内存缓存区内提取第三帧数据包的操作;以此类推,直到从内存缓存区内提取数据失败,表示当前编解码进程已将内存缓存区内的数据全部编解完成,从源文件中提取下一段的帧数据填充并覆盖到内存缓存区内。6.根据权利要求5所述的多进程编解码同源文件的方法,其特征在于,从内存缓存区内提取帧数据进行编解码,具体还包括:检测当前编解码进程的标记点标识;响应于当前编解码进程的标记点标识为第二标记,从内存缓存区内提取第一帧数据...

【专利技术属性】
技术研发人员:王晓飞
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1