一种基于Linux系统实现虚拟化硬件编解码加速的方法及系统与流程

文档序号:28329055发布日期:2022-01-05 02:08阅读:315来源:国知局
一种基于Linux系统实现虚拟化硬件编解码加速的方法及系统与流程
一种基于linux系统实现虚拟化硬件编解码加速的方法及系统
技术领域
1.本发明涉及视频编解码技术领域,具体涉及一种基于linux系统实现虚拟化硬件编解码加速的方法及系统。


背景技术:

2.越来越多云手机应用已经在5g时代来临,提供一个独立的移动设备安装虚拟手机,业务应用和数据仅在服务端运行和存储,个人终端上仅做加密流媒体呈现和触控,从而有效保障企业数据的安全性。
3.云手机通过创建虚拟手机为企事业单位提供app应用平台,用户仅需在手机端安装云手机客户端(android或ios版本),并通过该客户端认证鉴权,既可确保员工能够随时随地使用移动设备访问企事业单位的数据和应用程序,同时确保企事业单位数据和应用程序的终端零留存不泄露。
4.android云手机是一个典型的应用,其技术核心是对云端的硬件资源虚拟化一个android系统,然后再对虚拟化系统(在云服务器)进行桌面编码然后传输到云手机终端(在本地手机),这需要虚拟化的系统提供视频编码服务。
5.同时虚拟化的云手机要支持视频点播类业务的app,需要虚拟化的系统提供视频解码服务。
6.传统的虚拟化的android系统无法直接在虚拟化的宿主机(云服务器所在主机)上调用硬件视频编解码服务,采取了基于cpu主控之上提供软件方式的编解码服务,这会大大的影响宿主机的性能,导致功耗增加,其虚拟化子系统的数量受到限制,系统帧率也会大大降低从而影响体验。
7.因此,现有技术存在不足,需要提供一种新的方案解决上述问题。


技术实现要素:

8.针对现有技术存在的问题,本发明提供一种基于linux系统实现虚拟化硬件编解码加速的方法及系统。
9.为实现上述目的,本发明的具体方案如下:
10.本发明提供一种基于linux系统实现虚拟化硬件编解码加速的方法,包括如下步骤:
11.一种基于linux系统实现虚拟化硬件编解码加速的方法,其特征在于,包括如下步骤:
12.s1.将视频编解码硬件模块、linux内核、docker、虚拟化android系统,从底层到上层依次连接;
13.s2.通过linux内核与docker,导出关联设备节点;
14.s3.虚拟化android系统,通过openmax封装层对视频编解码器的组件进行封装,通
过驱动层对驱动访问进行封装;
15.s4、虚拟化android系统的framework通过封装的驱动访问,以及linux内核与docker导出的关联设备节点,直接访问视频编解码硬件模块。
16.本发明还提供一种基于linux系统实现虚拟化硬件编解码加速的系统,包括:视频编解码硬件模块、linux内核模块、docker、虚拟化android系统;
17.所述视频编解码硬件模块,用于提供硬件的视频编解码功能;
18.所述linux内核模块,用于提供系统内核;
19.所述docker,用于提供虚拟android系统的容器;
20.所述虚拟化android系统包括openmax封装层和访问视频视频编解码硬件的驱动层;
21.所述openmax封装层,用于对视频编解码器的组件进行封装;
22.所述访问视频编解码硬件模块的驱动层,用于对驱动访问进行封装。
23.优选地,所述linux内核模块,具体用于对硬件编解码器dsp的支持,支持多进程并发访问,以便支持多个虚拟化的android系统同时访问。
24.优选地,所述docker,具体用于提供一种容器虚拟化的技术环境支撑,将linux相关联的视频硬件编解码驱动的设备节点导出到虚拟化android系统,以实现虚拟化android系统对相关设备驱动进行访问。
25.优选地,所述虚拟化android系统的openmax封装层,具体用于通过openmax的封装层对虚拟化android系统的视频编解码器的组件进行封装;
26.所述openmax是一个多媒体应用程序的框架标准,所述openmax自上而下分为三层:应用层、封装层和开发层,具体到所述虚拟化android系统使用了封装层。
27.优选地,所述虚拟化android系统访问视频编解码的驱动层,用于对openmax封装层相关的视频编解码器的组件提供具体的实现,用于对驱动访问进行封装。
28.采用本发明的技术方案,具有以下有益效果:
29.本发明在linux宿主机中,在docker技术支撑下,虚拟若干个虚拟化的android子系统,然后在每个虚拟化的android子系统调用的基于linux宿主机的处理器内部视频编解码硬件模块,将编解码的服务递交给dsp硬件模块,从而减少在主控cpu进行软编解码服务产生的负载。
附图说明
30.图1是本发明具体实施方式的虚拟化android系统直接调用硬件编解码资源的示意图;
31.图2是本发明具体实施方式的整体流程图。
具体实施方式
32.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
33.在本发明的描述中,除非另有明确的规定和限定,术语“相连”、“连接”、“固定”应
做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
34.在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
35.在本实施例的描述中,术语“上”、“下”、“前”、“后”、“左”、“右”等方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述和简化操作,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅仅用于在描述上加以区分,并没有特殊的含义。
36.结合图1

图2所示,本发明提供一种基于linux系统实现虚拟化硬件编解码加速的方法及系统,该方法包括如下步骤:
37.s1.将视频编解码硬件模块、linux内核、docker、虚拟化android系统,从底层到上层依次连接;
38.s2.通过linux内核与docker,导出关联设备节点;
39.s3.虚拟化android系统,通过openmax封装层对视频编解码器的组件进行封装,通过驱动层对驱动访问进行封装;
40.s4、虚拟化android系统的framework通过封装的驱动访问,以及linux内核与docker导出的关联设备节点,直接访问视频编解码硬件模块。
41.本发明的原理和具体实施方式如下:
42.应用场景
43.此专利应用场景是在linux宿主机,在docker技术支撑下,虚拟若干个虚拟化的android子系统,然后在每个虚拟化的android子系统调用的基于linux宿主机的处理器内部视频编解码硬件模块,将编解码的服务递交给dsp硬件模块(视频编解码硬件模块),从而减少在主控cpu进行软编解码服务产生的负载。
44.功能介绍
45.虚拟化硬件编解码加速包括4个模块:
46.linux内核模块,docker,虚拟化android系统的openmax封装层,虚拟化android系统访问视频编解码的驱动层。
47.下面分别予以介绍各个模块的功能。
48.linux内核模块,支持包括对硬件编解码器dsp(digital signal processing)的支持,并且可以多进程并发访问,这样可以支持多个虚拟化的android系统同时访问。
49.docker,提供一种容器虚拟化的技术环境支撑,是一种常见的虚拟化实现方式,但是还需要将linux相关联视频硬件编解码驱动的设备节点导出到虚拟化android系统,以实现虚拟化android系统对相关设备驱动进行访问。
50.虚拟化android系统的openmax封装层,用于对视频编解码器的组件进行封装,openmax是一个多媒体应用程序的框架标准。它自上而下分为三层:应用层、封装层和开发层,具体到虚拟化android系统使用了封装层。
51.虚拟化android系统访问视频编解码的驱动层,是针对openmax封装层相关的视频编解码器的组件提供具体的实现,就是对驱动访问的的封装。
52.流程介绍
53.下面具体介绍此方法的具体流程,参见附图1
54.具体应用过程包括:
55.虚拟化android系统的framework多媒体(mediacodec)访问符合openmax标准的视频编解码器的组件。
56.openmax封装层对于特定硬件平台进行相关的编解码器的组件封装,这一过程具体的依赖驱动实现,由驱动访问模块进行封装。
57.要做到可以访问视频相关驱动设备节点,需要通过docker将关联的设备节点对虚拟化android系统可见,并且有访问权限。
58.相较于现有技术,采用本发明的技术方案,具有以下有益效果:
59.在linux宿主机中,在docker技术支撑下,虚拟若干个虚拟化的android子系统,然后在每个虚拟化的android子系统调用的基于linux宿主机的处理器内部视频编解码硬件模块,将编解码的服务递交给dsp硬件模块,从而减少在主控cpu进行软编解码服务产生的负载。
60.以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1