首页 / 专利库 / 电脑零配件 / 硬件实现 / 多操作系统多媒体编解码方法、装置及电子设备

操作系统多媒体编解码方法、装置及电子设备

阅读:339发布:2024-02-11

专利汇可以提供操作系统多媒体编解码方法、装置及电子设备专利检索,专利查询,专利分析的服务。并且一种多 操作系统 多媒体编解码方法、装置及 电子 设备,包括:在客户机操作系统中,接收适配层发送的多媒体处理 请求 并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件(201);在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的 硬件 编 解码器 对所述多媒体文件进行编解码(202)。上述方法可以实现客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件 加速 的目的。,下面是操作系统多媒体编解码方法、装置及电子设备专利的具体信息内容。

1.一种多操作系统多媒体编解码方法,其特征在于,包括:
在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;
在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件解码器对所述多媒体文件进行编解码。
2.如权利要求1所述的方法,其特征在于,在所述接收适配层发送的多媒体处理请求之前,进一步包括:
在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。
3.如权利要求1所述的方法,其特征在于,
所述接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,具体为:在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;
所述在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体为:在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。
4.如权利要求1所述的方法,其特征在于,所述在客户机操作系统中将多媒体处理请求发送至主机操作系统,在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体为:
在所述客户机操作系统中向所述主机操作系统发送通知消息,在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;
在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,在所述主机操作系统的OpenMAX集成层IL中,控制所述硬件编解码器对所述多媒体文件进行编解码。
5.如权利要求1所述的方法,其特征在于,所述主机操作系统的硬件编解码器对所述多媒体文件完成编解码之后,进一步包括:
将编解码后的数据传回所述客户机操作系统;或者,
在所述主机操作系统侧显示编解码处理状态。
6.一种多操作系统多媒体编解码装置,其特征在于,包括:主机操作系统、客户机操作系统以及位于客户机操作系统中的vOpenMAX前端Front end和位于主机操作系统中的vOpenMAX后端Back end;
所述vOpenMAX前端Front end,用于在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;
所述vOpenMAX后端Back end,用于在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
7.如权利要求6所述的装置,其特征在于,所述客户机操作系统进一步包括:
适配模,用于在所述接收适配层发送的多媒体处理请求之前,在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。
8.如权利要求6所述的装置,其特征在于,
所述vOpenMAX Front end具体用于在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;
所述vOpenMAX Back end具体用于在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。
9.如权利要求6所述的装置,其特征在于,所述vOpenMAX Front end具体用于在所述客户机操作系统中向所述主机操作系统发送通知消息,所述vOpenMAX Back end具体用于在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;所述vOpenMAX Front end还用于在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,所述vOpenMAX Back end还用于在所述主机操作系统的OpenMAX集成层IL中,控制所述主机操作系统的硬件编解码器对所述多媒体文件进行编解码。
10.如权利要求6所述的装置,其特征在于,进一步包括:
数据回传模块,用于在所述主机操作系统的OpenMAX集成层IL中,将编解码后的数据传回所述客户机操作系统;或者,
显示模块,用于在所述主机操作系统侧显示编解码处理状态。
11.一种电子设备,其特征在于,所述电子设备包括:存储器、一个或多个处理器、以及一个或多个模块,所述一个或多个模块被存储于所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个模块包括用于执行如权利要求1至5任一所述方法中各个步骤的指令。
12.一种计算机程序产品,其特征在于,所述计算机程序产品对用于执行一种过程的指令进行编码,所述过程包括根据权利要求1至5任一所述的方法。

说明书全文

操作系统多媒体编解码方法、装置及电子设备

技术领域

[0001] 本申请涉及虚拟化技术领域,特别涉及多操作系统多媒体编解码方法、装置及电子设备。

背景技术

[0002] 移动终端已成为用户日常工作生活的重要工具,在移动终端推动移动互联网快速发展的同时,由于移动终端包含了丰富多样化的信息(例如:企业数据的访问、商务沟通、社交网络、财务管理、游戏等等),移动终端成了网络犯罪的新焦点。为了信息安全、保护隐私,移动虚拟化成为了移动终端未来的发展方向。
[0003] 移动虚拟化允许多个操作系统或者虚拟机同时运行在移动手机或者无线手持设备上,使用Hypervisor在底层硬件上创建安全独立的软件运行环境。通过移动虚拟化,用户无需携带两台或多台移动设备,可在一个物理手持设备上访问多个操作系统,移动虚拟化在安全性方面具有显著的特性。
[0004] 通过虚拟化技术带来的隔离性可实现单一终端上多个操作系统的隔离,避免各操作系统上的进程对其他操作系统产生不利影响,典型的应用场景为通过虚拟化技术在手机等移动设备上实现企业系统和个人系统的分离,防范个人系统上的进程给企业带来的潜在危害,满足一些具有安全要求的企业对“自带设备”(BYOD,Bring Your Own Device)的需求。
[0005] 随着多媒体应用在生活中运用的深入发展,终端的各个虚拟机都必须有多媒体编解码器,而目前客户机操作系统(Guest OS)只能通过CPU实现软件编解码,导致很多格式的视频文件无法支持、功耗大、播放不流畅。
[0006] 现有技术不足在于:
[0007] 终端的Guest OS只能通过CPU实现软件编解码,导致很多格式的视频文件无法支持、播放不流畅,而且功耗大(发热、缩短电池使用时间)。发明内容
[0008] 本申请实施例的一个目的在于解决现有技术中终端的Guest OS只能通过CPU实现软件编解码,导致很多格式的视频文件无法支持、播放不流畅这一技术问题。
[0009] 第一个方面,本申请实施例提供了一种多操作系统多媒体编解码方法,包括:
[0010] 在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;
[0011] 在主机操作系统OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
[0012] 第二个方面,本申请实施例提供了一种多操作系统多媒体编解码装置,包括:主机操作系统、客户机操作系统以及位于客户机操作系统中的vOpenMAX前端Front end和位于主机操作系统中的vOpenMAX后端Back end;
[0013] 所述vOpenMAX前端Front end,用于在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;
[0014] 所述vOpenMAX后端Back end,用于在主机操作系统OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
[0015] 第三个方面,本申请实施例还提供了一种电子设备,所述电子设备包括:存储器、一个或多个处理器、以及一个或多个模,所述一个或多个模块被存储于所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个模块包括用于执行如上所述方法中各个步骤的指令。
[0016] 第四个方面,本申请实施例提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行如上所述方法中各个步骤的指令。
[0017] 有益效果如下:
[0018] 本申请实施例可以在客户机操作系统的OpenMAX的集成层IL中通过跨系统通信使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,从而实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现为客户机操作系统提供硬件加速的目的,进一步地由于硬件编解码可以支持多格式文件、且编解码速度较快、无需耗费CPU,因此采用本申请实施例所提供的方案可以支持多格式的文件、播放流畅、且功耗低,可以延长电池使用时间,解决了现有很多格式的视频文件无法支持、播放不流畅、而且功耗大等问题。附图说明
[0019] 下面将参照附图描述本申请的具体实施例,其中:
[0020] 图1示出了现有技术中虚拟化模型的结构示意图;
[0021] 图2示出了本申请实施例一中多操作系统多媒体编解码方法实施的流程示意图;
[0022] 图3示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图一;
[0023] 图4示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图二;
[0024] 图5示出了本申请实施例三中电子设备的结构示意图;
[0025] 图6示出了本申请实施例五中手机的结构示意图;
[0026] 图7示出了现有Android多媒体框架的多操作系统结构示意图;
[0027] 图8示出了本申请实施例六中Android多媒体框架的多操作系统结构示意图;
[0028] 图9示出了本申请实施例七中平板电脑的结构示意图。

具体实施方式

[0029] 为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
[0030] 图1示出了现有技术中虚拟化模型的结构示意图,如图所示,处于底层的是整个物理系统,即系统硬件,主要包括处理器、内存和输入输出设备;在物理系统之上的是虚拟化层,运行的是虚拟机监控器(简称为VMM或Hypervisor),所述虚拟机监控器的主要职能是管理真实的物理硬件平台并为每个虚拟客户机提供对应的虚拟硬件平台。Hypervisor通过主机(Host)实现上述功能,主机上运行一虚拟机(Host VM),在该虚拟机上运行有主机操作系统(Host OS)。
[0031] 图1示出了三个虚拟机(VM)的实例,每个虚拟机可看作是一个小的但是完整的计算机系统,具有自己的“系统硬件”,包括自己的处理器、内存和输入输出设备。在这个计算机系统上,运行着虚拟机自己的操作系统(Guest OS),例如:Android、Windows或Linux等。
[0032] 发明人在发明过程中注意到:
[0033] 当前只有Host OS具有硬件加速能力,而Guest OS只能通过CPU来实现软件编解码,对于Guest OS则有以下弊端:
[0034] 1)格式支持受限
[0035] 对于普通分辨率的AVI、RMVB等文件,绝大多数的CPU都可以胜任,随着高清视频(1080i/p)的普及,CPU变的越来越难以胜任。所以很多格式的视频文件在只有软解码的终端上是无法支持的。
[0036] 2)CPU占用率高、播放不流畅、功耗大
[0037] 由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高,再加上VC-1和H.264编码的压缩率很高,解码运算的运算量很大。因此常规地直接用CPU解码(即常说的“软解”)会极大地消耗CPU的运算能力,一些较老的CPU软解H.264时CPU占用率往往高达90%以上,更老的CPU可能就根本无法播放了。
[0038] 针对上述不足,本申请实施例提出了一种基于OpenMAX IL Core的多系统多媒体硬件虚拟化方案,使得Guest OS可以通过虚拟化技术使用Host OS的硬件实现加速,Guest OS上层仍然可以支持软件编解码和硬件编解码的选择,即Guest OS与Host OS一样,可以同时支持两种编解码方式,下面进行说明。
[0039] 开放多媒体加速OpenMAX(Open Media Acceleration),是一个多媒体应用程序标准,包括应用层AI、集成层IL和开发层DL,嵌入式处理器或者多媒体编解码模块的硬件生产者,可以提供标准的OpenMAX IL层的软件接口,软件开发者可以基于这个层次的标准化接口进行多媒体程序的开发。
[0040] 本申请实施例所提供的技术方案可以适用于所有采用OpenMAX框架标准的多媒体系统实现硬件虚拟化,包括Android多媒体框架(StageFright+OpenMAX)但不限于Android。
[0041] 实施例一、
[0042] 图2示出了本申请实施例中多操作系统多媒体编解码方法实施的流程示意图,如图所示,所述多操作系统多媒体编解码方法可以包括如下步骤:
[0043] 步骤201、在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;
[0044] 步骤202、在主机操作系统OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
[0045] 具体实施时,所述多操作系统可以包括主机操作系统和客户机操作系统,所述客户机操作系统可以为一个、两个或更多个。
[0046] 本申请实施例可以在客户机操作系统的OpenMAX集成层IL中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求可以包括多媒体文件;在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
[0047] 本申请实施例可以在客户机操作系统的OpenMAX的集成层IL中通过跨系统通信使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,从而实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现为客户机操作系统提供硬件加速能力的目的,进一步地由于硬件编解码可以支持多格式文件、且编解码速度较快、无需耗费CPU,因此采用本申请实施例所提供的方案可以支持多格式的文件、播放流畅、且功耗低,可以延长电池使用时间,解决了现有很多格式的视频文件无法支持、播放不流畅、而且功耗大等问题。
[0048] 实施中,在所述接收适配层发送的多媒体处理请求之前,所述方法可以进一步包括:
[0049] 在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。
[0050] 具体实施时,当所述客户机操作系统中的多媒体应用程序接收到用户多媒体处理请求后,在所述客户机操作系统的适配层可以为所述多媒体文件选择一个合适的编解码器,并确定该编解码器的类别。所述编解码器的类别可以包括软件编解码器和硬件编解码器。
[0051] 所述为多媒体文件适配编解码器,具体可以根据所述多媒体文件的编码方式确定所述多媒体文件的解码器,或者,根据所述多媒体文件的解码方式确定所述多媒体文件的编码器
[0052] 具体实施时,支持同一格式的编解码器可以为多个,其中可以包括硬件编解码器和软件编解码器,在适配编解码器时可以根据预设规则选择最适合的编解码器,例如:为分辨率要求低的多媒体文件选择软件编解码器、为分辨率要求高的多媒体文件选择硬件编解码器等。
[0053] 在确定所述多媒体文件的编解码器为硬件编解码器时,通过跨系统通信向主机操作系统中的硬编解码组件发送命令,调用所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
[0054] 本申请实施例所提供的方法,可以通过修改客户机操作系统中的适配层,增加了确定所述编解码器类别的步骤,并在确定所述多媒体文件的编解码器为硬件编解码器时,通过跨系统通信的使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件加速的目的。
[0055] 实施中,所述方法可以进一步包括:
[0056] 如果所述多媒体文件的编解码器为软件编解码器,在所述客户机操作系统中的软件OpenMAX IL加载并控制所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码。
[0057] 本申请实施例中对于软件编解码器(SW Codec),可以仍然使用所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码。
[0058] 实施中,所述接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,具体可以为:在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;
[0059] 所述在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体可以为:在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。
[0060] 具体实施时,在OpenMAX集成层IL具体可以是通过虚拟vOpenMAX跨系统通信加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,所述vOpenMAX可以包括:位于客户机操作系统中的vOpenMAX前端Front end和位于主机操作系统中的vOpenMAX后端Back end;
[0061] 在确定所述多媒体文件的编解码器为硬件编解码器时,所述vOpenMAX Front end与所述vOpenMAX Back end跨系统通信;
[0062] 所述vOpenMAX Back end调用主机操作系统中的硬件编解码器对客户机操作系统传递的多媒体文件进行编解码。
[0063] 具体实施时,本申请实施例可以将硬件编解码操作所需要的OpenMAX Core分为vOpenMAX Front end和vOpenMAX Back end两部分。vOpenMAX Front end位于Guest OS,作为客户机操作系统的HW OpenMAX Core的接口;vOpenMAX Back end位于Host OS,其作为vOpenMAX Core的服务器完成OpenMAX Core的所有功能以及OpenMAX IL的所有功能,可以包括vOpenMAX Core和vOpenMAX Component,通过加载Host OS的HW Codec,为前端(即,客户机操作系统)提供硬件加速的能力。
[0064] vOpenMAX Front end与vOpenMAX Back end可以通过现有的QEMU PIPE、Socket等跨系统通信方式来通信。
[0065] 实施中,所述在客户机操作系统中将多媒体处理请求发送至主机操作系统,在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体可以为:
[0066] 在所述客户机操作系统中向所述主机操作系统发送通知消息,在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;
[0067] 在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,在所述主机操作系统的OpenMAX集成层IL中,控制所述硬件编解码器对所述多媒体文件进行编解码。
[0068] 具体实施时,所述客户机操作系统通过所述vOpenMAX Front end与所述vOpenMAX Back end之间的跨系统通信向所述主机操作系统发送通知消息,所述主机操作系统根据所述通知消息加载相应的硬件编解码器;所述客户机操作系统通过所述vOpenMAX Front end与所述vOpenMAX Back end之间的跨系统通信将多媒体文件发送给所述主机操作系统的硬件编解码器,由所述主机操作系统的硬件编解码器对所述多媒体文件进行编解码。
[0069] 具体实施时,所述客户机操作系统可以通过所述vOpenMAX Front end与所述vOpenMAX Back end之间的跨系统通信,向所述主机操作系统发送控制命令和所要传递的数据(例如:参数等信息),所述控制命令和所要传递的数据可以在虚拟机监控器Hypervisor管理下传递给主机操作系统的vOpenMAX Back end。
[0070] 实施中,所述主机操作系统的硬件编解码器对所述多媒体文件完成编解码之后,可以进一步包括:
[0071] 将编解码后的数据传回所述客户机操作系统;或者,
[0072] 在所述主机操作系统侧显示编解码处理状态。
[0073] 具体实施时,在所述主机操作系统的硬件编解码器对所述多媒体文件完成编解码操作之后,可以将编解码后的数据传回所述客户机操作系统,也可以直接在主机操作系统侧显示编解码完成。
[0074] 本申请实施例提供了一种基于OpenMAX IL Core的多系统多媒体硬件虚拟化方案,Guest OS可以通过虚拟化技术使用Host OS的硬件实现加速,Guest OS上层仍然可以支持软件编解码和硬件编解码的选择,即,Guest OS与Host OS一样,可以同时支持两种编解码方式。
[0075] 实施例二、
[0076] 基于同一发明构思,本申请实施例中还提供了一种多操作系统多媒体编解码装置,由于这些设备解决问题的原理与一种多操作系统多媒体编解码方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
[0077] 图3示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图一,如图所示,所述多操作系统多媒体编解码装置可以包括:主机操作系统301、客户机操作系统302以及位于客户机操作系统302中的vOpenMAX前端Front end 3021和位于主机操作系统
301中的vOpenMAX后端Back end 3011;
[0078] 所述vOpenMAX前端Front end,用于在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;
[0079] 所述vOpenMAX后端Back end,用于在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。
[0080] 具体实施时,多媒体应用程序可以通过OpenMAX IL核心Core和组件通信,组件可以操作音频、视频、图片或其它数据。
[0081] 本申请实施例所提供的多操作系统多媒体编解码装置,可以在客户机操作系统的OpenMAX集成层IL中,通过vOpenMAX跨系统通信使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件加速的目的。
[0082] 图4示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图二,如图所示,所述客户机操作系统302可以进一步包括:
[0083] 适配模块3022,用于在所述接收适配层发送的多媒体处理请求之前,在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。
[0084] 具体实施时,所述客户机操作系统302中还可以包括:
[0085] 客户机软件编解码器3023,用于如果所述多媒体文件的编解码器为软件编解码器,在所述客户机操作系统中的软件OpenMAX IL加载并控制所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码。
[0086] 实施中,所述vOpenMAX Front end具体可以用于在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;
[0087] 所述vOpenMAX Back end具体可以用于在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。
[0088] 实施中,所述vOpenMAX Front end具体可以用于在所述客户机操作系统中向所述主机操作系统发送通知消息,所述vOpenMAX Back end具体可以用于在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;
[0089] 所述vOpenMAX Front end还可以用于在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,所述vOpenMAX Back end还可以用于在所述主机操作系统的OpenMAX集成层IL中,控制所述主机操作系统的硬件编解码器对所述多媒体文件进行编解码。
[0090] 实施中,所述装置可以进一步包括:
[0091] 数据回传模块,用于在所述主机操作系统的OpenMAX集成层IL中,将编解码后的数据传回所述客户机操作系统;
[0092] 或者,
[0093] 显示模块,用于在所述主机操作系统侧显示编解码处理状态。
[0094] 实施例三、
[0095] 基于同一发明构思,本申请实施例还提供了一种电子设备,下面进行说明。
[0096] 图5示出了本申请实施例三中电子设备的结构示意图,如图所示,所述电子设备包括:存储器401、一个或多个处理器402、以及一个或多个模块,所述一个或多个模块被存储于所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个模块包括用于执行如上所述多操作系统多媒体编解码方法中各个步骤的指令。
[0097] 本申请实施例所提供的电子设备,通过修改客户机操作系统中的适配层,增加了确定所述编解码器类别的步骤,并在确定所述多媒体文件的编解码器为硬件编解码器时,通过vOpenMAX跨系统通信的使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件加速的目的。
[0098] 实施例四、
[0099] 基于同一发明构思,本申请实施例还提供了一种计算机程序产品,下面进行说明。
[0100] 本申请实施例所提供的计算机程序产品,对用于执行一种过程的指令进行编码,所述过程包括如上所述多操作系统多媒体编解码的方法。
[0101] 具体实施时,所述计算机程序产品可以与电子设备结合使用。
[0102] 为了便于本申请的实施,下面以实例进行说明。
[0103] 实施例五、
[0104] 本申请实施例以手机播放高清视频为例。
[0105] 图6示出了本申请实施例五中手机的结构示意图,如图所示,假设所述手机为双操作系统的移动通信终端,所述双操作系统具体可以为:个人操作系统和企业操作系统,假设企业操作系统为主机操作系统(Host OS)、个人操作系统为客户机操作系统(Guest OS)。
[0106] (1)用户在个人操作系统中打开多媒体应用程序播放一个视频文件;
[0107] (2)本申请实施例可以在所述个人操作系统的适配层(adaptation layer)中为所述视频文件选择合适的解码器,然后可以确定该解码器是硬件编解码器(HW Codec)还是软件编解码器(SW Codec):
[0108] 如果是SW Codec,则可以调用个人操作系统中的软件解码器对所述视频文件进行解码操作;
[0109] 如果是HW Codec,则可以通过vOpenMAX Front end与企业操作系统中的vOpenMAX Back end跨系统通信,调用企业操作系统中的硬件编解码器对所述视频文件进行解码操作。
[0110] 具体实施时,所述个人操作系统可以通过跨系统通信技术(例如:QemuPipe、Socket等)通知企业操作系统加载相应的编解码器Codec;所述企业操作系统加载相应的Codec;
[0111] 之后,所述个人操作系统可以通过vOpenMAX Front end与企业操作系统中的vOpenMAX Back end的跨系统通信将压缩的数据传递给企业操作系统侧的Codec;所述企业操作系统侧的硬件编解码器HW Codec对所述视频文件进行解码。
[0112] 在企业操作系统的Codec解码完成后,本申请实施例可以根据显示系统实现方式直接在企业操作系统侧完成显示,也可以将解码后的数据再传回个人操作系统。
[0113] 实施例六、
[0114] 本申请实施例以采用Android多媒体框架(StageFright+OpenMAX)的多媒体系统为例,StageFright的编解码功能是利用OpenMAX框架实现的,OpenMAX的适配层是OpenMAX IL层之上的封装层,可以被StageFright调用。
[0115] 图7示出了现有Android多媒体框架的多操作系统结构示意图,如图所示,主机操作系统(Host OS)中OpenMAX IL APP发起一个多媒体处理事件event之后,由主机的OpenMAX Core调用OpenMAX Component,进而操作Android Kernel的H/W Codec;
[0116] 客户机操作系统(Guest OS)中OpenMAX IL APP发起一个多媒体处理事件之后,由客户机的OpenMAX Core调用OpenMAX Component,进而操作Android Kernel的S/W Codec。
[0117] 本申请实施例可以修改OpenMAX Core的接口,使得客户机操作系统可以支持硬件编解码。
[0118] 图8示出了本申请实施例六中Android多媒体框架的多操作系统结构示意图,下面以Android系统中播放AVC(高级视频编码,Advanced Video Coding)编码的视频文件的视频解码为例进行说明。
[0119] StageFright的播放器类AwesomePlayer创建一个事件调度器,根据该视频文件的头部选择合适的分离器对所述视频文件进行音视频轨道的分离;
[0120] 通过setVideoSource()产生独立的mVideoTrack(视频)数据流,为视频解码器提供有需要的数据流;通过setAudioSource()产生独立的mAudioTrack(音频)数据流,为音频解码器提供有需要的数据流。
[0121] AwesomePlayer调用OMX Client::connect函数,通过共用IMOX变量来获得OMX服务。
[0122] 本申请实施例可以为分离得到的视频轨道、音频轨道选择合适的解码器,以视频轨道为例:
[0123] 在预先设置的配置文件XML中可以存储系统支持的所有解码器,AVC编码类型对应AVC Decoder,假设支持AVC格式的解码器包括软件解码器和硬件解码器,此时,可以根据分辨率的高低和应用场景等预设规则进一步确定合适的解码器。
[0124] 例如:如果该AVC视频文件的分辨率较低(低于预设阈值)那么可以确定支持AVC格式的软件解码器,如果该AVC视频文件的分辨率较高(高于预设阈值)那么可以确定支持AVC格式的硬件解码器;
[0125] 具体实施时,对于需要CPU运算较大的情况可以选择软件解码器,对于需要CPU运算较小的情况可以选择硬件解码器。例如:如果当前应用场景是为视频文件生成小缩略图视频文件(所需运算量较小),那么可以确定支持AVC格式的软件解码器,如果当前应用场景是播放原始视频文件(所需运算量较大),那么可以确定支持AVC格式的硬件解码器。
[0126] OpenMAX进行准备工作初始化,根据传进来的视频文件,创建一个OMXNodeInstance实例,将所述解码器的组件与实例关联。
[0127] 对于软件解码器,OpenMAX在OpenMAX IL通过客户机操作系统中的OpenMAX Core来调用SW Codec,SW Codec在编解码实施过程中可以调用Android kernel的所述SW Codec的驱动Driver来实现具体的软件编解码操作;
[0128] 对于硬件编解码器,OpenMAX则在OpenMAX IL通过客户机操作系统的虚拟OpenMAX Front end(即vOpenMAX Front end)与主机操作系统中的vOpenMAX Back end跨系统通信,调用主机操作系统中的OpenMAX Core调用Android kernel的HW Codec,HW Codec在编解码实施过程中可以调用Android kernel的所述HW Codec的驱动Driver来实现具体的硬件编解码操作。
[0129] 具体的,客户机操作系统中的虚拟OpenMAX硬编解码接口(vOpenMAX Front end)与主机操作系统中的虚拟OpenMAX服务器(vOpenMAX Back end)之间的跨系统通信,可以在虚拟机监控器Hypervisor的管理下通过虚拟机KVM和模拟器Qemu实现控制流和数据流的传输。
[0130] 实施例七、
[0131] 本申请实施例以平板电脑为例进行说明。
[0132] 图9示出了本申请实施例七中平板电脑的结构示意图,如图所示,所述平板电脑可以包括主机操作系统(Host OS)、客户机操作系统(Guest OS),其中所述客户机操作系统(Guest OS)可以包括个人操作系统(POS)和企业操作系统(EOS)。
[0133] 主机操作系统(Host OS)可以在主机操作系统内的多媒体应用程序接收到多媒体处理请求后,调用主机操作系统中的OpenMAX组件,编解码组件在实现过程中调用硬件的编解码接口,利用H/W Codec对多媒体文件进行编解码。
[0134] 个人操作系统(POS)和企业操作系统(EOS)均可以在各自系统的多媒体应用程序接收到处理请求后,对于软件编解码器调用各自系统内的软件编解码器对所述多媒体文件进行编解码,即利用CPU进行编解码;对于硬件编解码器则可以通过各自系统内的vOpenMAX Front end与主机操作系统的vOpenMAX Back end跨系统通信,从而调用主机操作系统中的OpenMAX组件,主机操作系统中的OpenMAX组件在实现过程中调用硬件的编解码接口,实现利用H/W Codec对多媒体文件进行编解码的目的。
[0135] 采用本申请实施例所提供的技术方案,无论用户处于哪个操作系统(个人操作系统、或者企业操作系统)均可以利用主机操作系统的硬件编解码器为所在操作系统提供硬件加速能力。
[0136] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0137] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0138] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0139] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0140] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈