一种基于多GPU的视频转码方法及装置制造方法及图纸

技术编号:22888568 阅读:22 留言:0更新日期:2019-12-21 09:00
本发明专利技术公开了一种基于多GPU的视频转码方法及装置,此方法包括:维护GPU集合的GPU集合转码能力信息,所述GPU集合转码能力信息包括各GPU的转码能力信息;确定待转码的视频数据,确定所述视频数据的转码操作的类型;所述转码操作的类型是编码或解码时,从所述GPU集合中选择N个GPU,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行所述转码操作;控制选择出的GPU对所述视频数据执行所述转码操作。本发明专利技术可以提高视频转码速度和效率,还可以更精准的调度GPU资源,在GPU扩容、拔出、损坏的情况下使转码处理不中断,有效保证转码处理的可靠性能。

A method and device of video transcoding based on multi GPU

【技术实现步骤摘要】
一种基于多GPU的视频转码方法及装置
本专利技术涉及互联网
,尤其涉及一种基于多GPU的视频转码方法及装置。
技术介绍
对视频数据进行编解码处理时,需要进行大量的计算,耗费大量的计算资源,例如对h.264格式的视频数据需进行以下处理:宏块的处理,帧内预测,帧间预测,熵编码处理等。现有技术采用由CPU执行调度同时由GPU执行实际编解码处理的方式,但现有技术中通常使用单块GPU编解码,例如公开号为CN105228000A、专利技术名称为“一种基于GPU的完全硬件转码的方法和系统”的中国专利文件中使用同一GPU进行编码和解码的工作。现有技术也有使用多块GPU进行编解码的方案,例如公开号为CN201510930440、专利技术名称为“一种用于实现转码任务调度的方法和系统”的中国专利文件的核心思想为动态调整单台GPU卡编解码权重系数,最终达到整个GPU矩阵编解码能力平衡的问题,但是实际的解码过程中,一个GPU需要完成视频数据中至少一个宏块的解码,而不能只完成一个宏块中部分数据的解码。此专利文件中在计算CPU集合总编码能力时引入了统一的系数k,在GPU进行编解码时,编解码操作的相互影响的临界点并不可控,此种使用统一的系数k的方式在实际应用中的效果并不理想,并且还会导致只采用了各个GPU的一小部分处理能力,但这种将GPU的整个处理能力分成小部分的方式,会响GPU的解码。在使用多个GPU同时对多个视频流进行转码时,在保证转码的有效性的同时如何提高处理速度是需要解决的技术问题。r>
技术实现思路
为了解决上述技术问题,本专利技术提供了一种基于多GPU的视频转码方法及装置。本专利技术提供的基于多GPU的视频转码方法,包括:维护GPU集合的GPU集合转码能力信息,所述GPU集合转码能力信息包括各GPU的转码能力信息;确定待转码的视频数据,确定所述视频数据的转码操作的类型;所述转码操作的类型是编码或解码时,从所述GPU集合中选择N个GPU,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行所述转码操作;控制选择出的GPU对所述视频数据执行所述转码操作;所述转码操作的类型是从第一格式转换为第二格式时,从所述GPU集合中选择S个GPU称为第一GPU子集,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行第一格式的解码操作,控制第一GPU子集对所述视频数据执行第一格式的解码操作,获得原始未压缩数据,从所述GPU集合中选择T个GPU称为第二GPU子集,选择条件是此GPU的转码能力信息能够支持对所述原始未压缩数据执行第二格式的编码操作,控制第二GPU子集对所述原始未压缩数据执行第二格式的编码操作;其中,N、S、T为大于或等于1的整数。上述方法还具有以下特点:所述方法还包括:设置GPU的转码类型,所述转码类型是编码或解码;所述转码操作的类型是编码或解码时,所述从GPU集合中选择N个GPU包括:从GPU集合中选择出转码类型与所述转码操作相同的GPU子集合,从所述GPU子集合中选择出N个能够完成对所述视频数据执行所述转码操作的GPU;所述转码操作的类型是从第一格式转换为第二格式时,从所述GPU集合中选择S个GPU称为第一GPU子集包括:从GPU集合中选择出转码类型为解码的GPU子集合,从所述GPU子集合中选择出S个能够完成对所述视频数据执行所述第一格式的解码操作的GPU;从所述GPU集合中选择T个GPU称为第二GPU子集包括:从GPU集合中选择出转码类型为编码的GPU子集合,从所述GPU子集合中选择出T个能够完成对所述原始未压缩视频数据执行所述第二格式的编码操作的GPU。上述方法还具有以下特点:所述方法还包括:检测各GPU的插拔状态,检测到正在对所述视频数据执行所述转码操作的GPU拔出或故障时,在所述GPU集合中除检测到的拔出的GPU之外的GPU子集合中选择至少一个GPU,将所述拔出的GPU的内存数据复制到新选择出的GPU的内存中。上述方法还具有以下特点:所述方法还包括:为每个GPU分配固定的内存分页;所述控制选择出的GPU对所述视频数据执行所述转码操作包括:控制选择出的GPU在所述GPU对应的固定内存分页上对所述视频数据执行所述转码操作;所述控制第一GPU子集对视频数据执行第一格式的解码操作包括:控制选择出的第一GPU子集在所述GPU对应的固定内存分页上对所述视频数据执行解码操作;所述控制第二GPU子集对原始未压缩数据执行第二格式的编码操作包括:控制选择出的第二GPU子集在所述GPU对应的固定内存分页上对所述原始未压缩视频数据执行编码操作。上述方法还具有以下特点:所述方法还包括:根据各GPU的转码能力将GPU集合分成一个以上的分组,每个分组中不同GPU的转码能力的差异小于预设阈值;从GPU集合中选择N个GPU包括:根据所述视频数据的清晰度参数确定相应的标准转码能力,选择平均转码能力大于所述标准转码能力的分组,从选择出的分组中选择N个GPU;从GPU集合中选择S个GPU包括:根据所述视频数据的清晰度参数确定相应的标准转码能力,选择平均转码能力大于所述标准转码能力的分组,从选择出的分组中选择S个GPU;从GPU集合中选择T个GPU包括:根据所述视频数据的清晰度参数确定相应的标准转码能力,选择平均转码能力大于所述标准转码能力的分组,从选择出的分组中选择T个GPU。上述方法还具有以下特点:所述方法还包括:从GPU集合中无法选择一能够完成对所述视频数据执行所述转码操作的GPU时,从GPU集合中选择一负载最小的GPU。上述方法还具有以下特点:所述转码操作的类型为编码、所述视频数据为原始未压缩数据时,所述控制选择出的GPU对所述视频数据执行所述转码操作包括:判断所述原始未压缩数据的位宽和/或格式与选择出的GPU的位宽和/或格式不符合时,将所述原始未压缩数据的位宽和/或格式转换为所述选择出的GPU支持的位宽和/或格式,控制选择出的GPU对转换后的视频数据执行所述转码操作;所述转码操作的类型是从第一格式转换为第二格式时,控制第二GPU子集对所述视频数据执行第二格式的编码操作包括:判断所述原始未压缩数据的位宽和/或格式与选择出的GPU的位宽和/或格式不符合时,将所述原始未压缩数据的位宽和/或格式转换为所述选择出的GPU支持的位宽和/或格式,控制选择出的GPU对转换后的视频数据执行所述第二格式的编码操作。本专利技术提供的基于多GPU的视频转码装置包括:维护模块,用于维护GPU集合的GPU集合转码能力信息,所述GPU集合转码能力信息包括各GPU的转码能力信息;确定模块,用于确定待转码的视频数据,确定所述视频数据的转码操作的类型;判断模块,用于判断转码操作的类型;控制模块,用于在所述判断模块确定所述转码操作的类型是编码或解码时,从所述GPU集合中选择N个GPU,此GPU的转码能力信息能够支持对所述视本文档来自技高网...

【技术保护点】
1.一种基于多GPU的视频转码方法,其特征在于,包括:/n维护GPU集合的GPU集合转码能力信息,所述GPU集合转码能力信息包括各GPU的转码能力信息;/n确定待转码的视频数据,确定所述视频数据的转码操作的类型;/n所述转码操作的类型是编码或解码时,从所述GPU集合中选择N个GPU,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行所述转码操作;控制选择出的GPU对所述视频数据执行所述转码操作;/n所述转码操作的类型是从第一格式转换为第二格式时,从所述GPU集合中选择S个GPU称为第一GPU子集,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行第一格式的解码操作,控制第一GPU子集对所述视频数据执行第一格式的解码操作,获得原始未压缩数据,从所述GPU集合中选择T个GPU称为第二GPU子集,选择条件是此GPU的转码能力信息能够支持对所述原始未压缩数据执行第二格式的编码操作,控制第二GPU子集对所述原始未压缩数据执行第二格式的编码操作;/n其中,N、S、T为大于或等于1的整数。/n

【技术特征摘要】
1.一种基于多GPU的视频转码方法,其特征在于,包括:
维护GPU集合的GPU集合转码能力信息,所述GPU集合转码能力信息包括各GPU的转码能力信息;
确定待转码的视频数据,确定所述视频数据的转码操作的类型;
所述转码操作的类型是编码或解码时,从所述GPU集合中选择N个GPU,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行所述转码操作;控制选择出的GPU对所述视频数据执行所述转码操作;
所述转码操作的类型是从第一格式转换为第二格式时,从所述GPU集合中选择S个GPU称为第一GPU子集,选择条件是此GPU的转码能力信息能够支持对所述视频数据执行第一格式的解码操作,控制第一GPU子集对所述视频数据执行第一格式的解码操作,获得原始未压缩数据,从所述GPU集合中选择T个GPU称为第二GPU子集,选择条件是此GPU的转码能力信息能够支持对所述原始未压缩数据执行第二格式的编码操作,控制第二GPU子集对所述原始未压缩数据执行第二格式的编码操作;
其中,N、S、T为大于或等于1的整数。


2.如权利要求1所述的基于多GPU的视频转码方法,其特征在于,
所述方法还包括:设置GPU的转码类型,所述转码类型是编码或解码;
所述转码操作的类型是编码或解码时,所述从GPU集合中选择N个GPU包括:从GPU集合中选择出转码类型与所述转码操作相同的GPU子集合,从所述GPU子集合中选择出N个能够完成对所述视频数据执行所述转码操作的GPU;
所述转码操作的类型是从第一格式转换为第二格式时,从所述GPU集合中选择S个GPU称为第一GPU子集包括:从GPU集合中选择出转码类型为解码的GPU子集合,从所述GPU子集合中选择出S个能够完成对所述视频数据执行所述第一格式的解码操作的GPU;
从所述GPU集合中选择T个GPU称为第二GPU子集包括:从GPU集合中选择出转码类型为编码的GPU子集合,从所述GPU子集合中选择出T个能够完成对所述原始未压缩视频数据执行所述第二格式的编码操作的GPU。


3.如权利要求1所述的基于多GPU的视频转码方法,其特征在于,
所述方法还包括:检测各GPU的插拔状态,检测到正在对所述视频数据执行所述转码操作的GPU拔出或故障时,在所述GPU集合中除检测到的拔出的GPU之外的GPU子集合中选择至少一个GPU,将所述拔出的GPU的内存数据复制到新选择出的GPU的内存中。


4.如权利要求1所述的基于多GPU的视频转码方法,其特征在于,
所述方法还包括:为每个GPU分配固定的内存分页;
所述控制选择出的GPU对所述视频数据执行所述转码操作包括:控制选择出的GPU在所述GPU对应的固定内存分页上对所述视频数据执行所述转码操作;
所述控制第一GPU子集对视频数据执行第一格式的解码操作包括:控制选择出的第一GPU子集在所述GPU对应的固定内存分页上对所述视频数据执行解码操作;
所述控制第二GPU子集对原始未压缩数据执行第二格式的编码操作包括:控制选择出的第二GPU子集在所述GPU对应的固定内存分页上对所述原始未压缩视频数据执行编码操作。


5.如权利要求1所述的基于多GPU的视频转码方法,其特征在于,
所述方法还包括:根据各GPU的转码能力将GPU集合分成一个以上的分组,每个分组中不同GPU的转码能力的差异小于预设阈值;
从GPU集合中选择N个GPU包括:根据所述视频数据的清晰度参数确定相应的标准转码能力,选择平均转码能力大于所述标准转码能力的分组,从选择出的分组中选择N个GPU;
从GPU集合中选择S个GPU包括:根据所述视频数据的清晰度参数确定相应的标准转码能力,选择平均转码能力大于所述标准转码能力的分组,从选择出的分组中选择S个GPU;
从GPU集合中选择T个GPU包括:根据所述视频数据的清晰度参数确定相应的标准转码能力,选择平均转码能力大于所述标准转码能力的分组,从选择出的分组中选择T个GPU。


6.如权利要求1所述的基于多GPU的视频转码方法,其特征在于,
所述方法还包括:从GPU集合中无法选择一能够完成对所述视频数据执行所述转码操作的GPU时,从GPU集合中选择一负载最小的GPU。


7.如权利要求1所述的基于多GPU的视频转码方法,其特征在于,
所述转码操作的类型为编码、所述视频数据为原始未压缩数据时,所述控制选择出的GPU对所述视频数据执行所述转码操作包括:判断所述原始未压缩数据的位宽和/或格式与选择出的GPU的位宽和/或格式不符合时,将所述原始未压缩数据的位宽和/或格式转换为所述选择出的GPU支持的位宽和/或格式,控制选择出的GPU对转换后的视频数据执行所述转码操作;
所述转码操作的类型是从第一格式转换为第二格式时,控制第二GPU子集对所述视频数据执行第二格式的编码操作包括:判断所述原始未压缩数据的位宽和/或格式与选择出的GPU的位宽和/或格式不符合时,将所述原始未压缩数据的位宽和/或格式转换为所述选择出的GPU支持的位宽和/或格式,控制选择出的GPU对转换后的视频数据执行所述第二格式的编码操作。


8.一种基于多GPU的视频转码装置,其特征在于,包括:
维护模块,用于维护GPU集合的GPU集合转码能力信息,所述GPU集合转码能力信息包括各GPU的转码能力信息;<...

【专利技术属性】
技术研发人员:明万程曾东方苗辉
申请(专利权)人:贵州白山云科技股份有限公司
类型:发明
国别省市:贵州;52

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

1