计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置制造方法及图纸

技术编号:28221805 阅读:18 留言:0更新日期:2021-04-28 09:46
本发明专利技术涉及一种计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置,其中该视频编解码方法包含:从来源数据中找出能够被并行处理的部分,其中,所述能够被并行处理的部分包含多张彼此间不互相参考的图像,或者多个彼此间不互相参考的帧;发送命令给视频编解码引擎以请求多个执行单元并行处理所述多个图像或所述多个帧,其中视频编解码引擎包含多个执行单元;从多个执行单元获取所述部分的结果数据;以及将结果数据存储于内存。本发明专利技术通过发出如上所述的命令,让视频编解码引擎中的多个硬件执行单元的运算能力充分被使用,进而可提升数据吞吐量,降低总时间延迟。降低总时间延迟。降低总时间延迟。

【技术实现步骤摘要】
计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置


[0001]本专利技术涉及用于视频编解码,尤指一种使用多个硬件执行单元的视频编解码方法和装置。

技术介绍

[0002]在虚拟化环境下,视频编解码引擎会被多个虚拟机共享使用。随着越来越多的应用程序对视频编解码引擎的需求越来越多,对编解码引擎的性能和质量也变得越来越高。特别是在虚拟化情况下,需要保证每个虚拟机用户的公平性基础之上,也需要考虑到视频编解码引擎的服务质量(Quality of Service,QoS)。
[0003]参考图1,传统上,视频编解码引擎110的虚拟化是将整个编解码引擎110中的所有执行单元110

1至110

4分时地给不同的虚拟机客户120

1至120

4使用。然而,在单个虚拟机客户中能够编码的视频序列的数量或者能够解码的视频流的数量少于物理硬件编解码单元数量的虚拟化场景下,传统的做法每次虚拟机客户获得执行时间时,物理硬件编解码单元总是不会被完全填满,从而导致数据吞吐量下降和总时间延迟上升。例如,在T1时间,虚拟机客户120

2获得执行时间。由于视频流在目前解决方案中是被串行编/解码的,所以在这一时刻,四个执行单元110

1至110

4只有一个能加载视频帧数据和执行编码和解码,使得只有执行单元110

1为虚拟机客户120

2服务,其他执行单元110r/>‑
2至110

4都是闲置状态。在T2时间,虚拟机客户120

1获得执行时间,但只有执行单元110

1为虚拟机客户120

1服务,其他执行单元110

2至110

4都是闲置状态。之后时间的服务状态以此类推,如表1所示:
[0004]表1
[0005]时隙#EU1EU2EU3EU4T1VM2

P1N/AN/AN/AT2VM1

P1N/AN/AN/AT3VM4

P1N/AN/AN/AT4VM3

P1N/AN/AN/AT5
…………
[0006]由于每次虚拟机客户获得执行时间时,总有几个执行单元是处于空转状态,增加总延迟时间,造成硬件资源的浪费。为了解决如上所述的问题,本专利技术提出一种使用多个硬件执行单元的视频编解码方法和装置,用于提升数据吞吐量,减少总时间延迟。

技术实现思路

[0007]本专利技术涉及一种使用多个执行单元的视频编解码方法,由处理器执行,包含:从来源数据中找出能够被并行处理的部分,其中,所述能够被并行处理的部分包含多张彼此间不互相参考的图像,或者多个彼此间不互相参考的帧;发送命令给视频编解码引擎以请求
多个执行单元并行处理所述多个图像或所述多个帧,其中视频编解码引擎包含多个执行单元;从多个执行单元获取所述部分的结果数据;以及将结果数据存储于内存。
[0008]本专利技术还涉及一种计算机可读取存储介质,用于存储能够被处理器执行的程序代码,并且当程序代码被处理器执行时实现如上所述的使用多个执行单元的视频编解码方法。
[0009]本专利技术涉及一种使用多个执行单元的视频编解码装置,包含:内存;视频编解码引擎,包含多个执行单元;以及处理器。处理器以总线架构耦接所述内存和所述视频编解码引擎,用于从来源数据中找出能够被并行处理的部分,其中,所述能够被并行处理的部分包含多张彼此间不互相参考的图像,或者多个彼此间不互相参考的帧;发送命令给视频编解码引擎以请求多个执行单元并行处理所述多个图像或所述多个帧;从多个执行单元获取所述部分的结果数据;以及将结果数据存储于内存。
[0010]上述实施例的优点之一,通过发出上述的命令,让视频编解码引擎中的多个硬件执行单元的运算能力充分被使用,进而可提升数据吞吐量,降低总时间延迟。
[0011]本专利技术的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
[0012]此处所说明的附图用于提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
[0013]图1为传统多个执行单元为多个虚拟机执行的编解码任务示例。
[0014]图2为依据本专利技术实施例的电子装置的框图。
[0015]图3为依据本专利技术实施例的视频串示例。
[0016]图4为依据本专利技术实施例的使用多个执行单元的视频编解码方法流程图。
[0017]图5为依据本专利技术实施例的多个执行单元为多个虚拟机执行的编解码任务示例。
[0018]其中,附图中符号的简单说明如下:
[0019]110:视频编解码引擎;110

1~110

4:执行单元;120

1~120

4:虚拟机;20:电子装置;210:视频编解码引擎;212:虚拟机调度器;214:执行单元控制器;216

1~216

4:执行单元;230:处理器;230

1~230

4:虚拟机;232:视频分离器;234:介质框架;236:视频驱动程序;250:内存;252:视频序列;254:编码后的视频串;255:参考数据;256:编码结果;258:解码结果;270:总线架构;310、332~338、352~358、370:画面;S410~S470:方法步骤。
具体实施方式
[0020]以下将配合相关附图来说明本专利技术的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
[0021]必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
[0022]本专利技术中使用如“第一”、“第二”、“第三”等词是用于修饰权利要求中的组件,并非用于表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用于区别具有相同名字的组件。
[0023]必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
[0024]参考图2。电子装置20可实施为大型主机、工作站、个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种使用多个执行单元的视频编解码方法,由处理器执行,其特征在于,包括:从来源数据中找出能够被并行处理的部分,其中,所述能够被并行处理的部分包含多张彼此间不互相参考的图像,或者多个彼此间不互相参考的帧;发送命令给视频编解码引擎以请求所述多个执行单元并行处理所述多个图像或所述多个帧,其中所述视频编解码引擎包含所述多个执行单元;从所述多个执行单元获取所述部分的结果数据;以及将所述结果数据存储于所述内存。2.如权利要求1所述的使用多个执行单元的视频编解码方法,其特征在于,所述多张图像或所述多个帧的数目不超过四。3.如权利要求1所述的使用多个执行单元的视频编解码方法,其特征在于,所述多张图像或所述多个帧参考相同的其他图像或其他帧。4.如权利要求1所述的使用多个执行单元的视频编解码方法,其特征在于,包含:在所述内存中准备被所述多张图像或所述多个帧参考的其他图像或其他帧,使得所述多个执行单元在计算过程中能够从所述内存读取所述其他图像或其他帧。5.如权利要求1所述的使用多个执行单元的视频编解码方法,其特征在于,所述多张图像为需要被编码为多个预测编码帧或者双向预测编码帧的图像,以及所述多个帧为多个预测编码帧或者双向预测编码帧。6.如权利要求1所述的使用多个执行单元的视频编解码方法,其特征在于,所述多个执行单元为多个编码单元,所述来源数据为原来的视频序列,以及所述能够被并行处理的部分包含多张彼此间不互相参考的图像。7.如权利要求1所述的使用多个执行单元的视频编解码方法,其特征在于,所述多个执行单元为多个解码单元,所述来源数据为编码后的视频串,以及所述能够被并行处理的部分包含多个彼此间不互相参考的帧。8.一种计算机可读取存储介质,用于存储能够被处理器执行的计算机代码,其特征在于...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

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

1