一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种媒体数据处理方法、装置、电子设备及存储介质与流程

2022-12-07 02:59:19 来源:中国专利 TAG:


1.本技术涉及信息技术领域,特别是涉及一种媒体数据处理方法、装置、电子设备及存储介质。


背景技术:

2.目前,在电子设备中一般均需要运行有操作系统,例如,android系统或linux系统等。通过该操作系统可以进行待处理数据的获取和处理,例如在处理媒体数据,通过该操作系统可以进行媒体数据的解码。
3.然而,当前的电子设备多为单操作系统的设备,在通过该类电子设备进行媒体数据的解码时,由于处理模块不但要进行媒体数据的解码,还需要运行自身其它的系统软件,从而导致能够分配给媒体数据解码的资源较少,导致解码效率较低。


技术实现要素:

4.本技术实施例的目的在于提供一种媒体数据处理方法、装置、电子设备及存储介质,用以提高媒体数据的解码效率。具体技术方案如下:
5.本技术实施例的第一方面,提供了一种媒体数据处理方法,应用于电子设备中的第一处理模块,所述电子设备还包括第二处理模块,所述第一处理模块中运行有第一操作系统,所述第二处理模块中运行有第二操作系统,所述方法包括:
6.获取待处理的媒体数据及第二处理模块的硬件资源信息;
7.在所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理;其中,所述第一预设资源条件表示所述第二处理模块剩余的硬件资源足够处理所述媒体数据。
8.可选的,所述方法还包括:
9.在所述第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过所述第一操作系统建立的解码器对所述媒体数据进行解码处理。
10.可选的,所述在所述第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过所述第一操作系统建立的解码器对所述媒体数据进行解码处理,包括:
11.在所述第二处理模块的硬件资源不满足第一预设资源条件的情况下,判断所述第一处理模块的gpu资源是否满足第二预设资源条件;其中,所述第二预设资源条件表示所述第一处理模块的gpu剩余的硬件资源足够处理所述媒体数据,所述媒体数据包括图像数据;
12.若满足所述第二预设资源条件,利用通过所述第一操作系统基于gpu资源建立的解码器对所述图像数据进行处理;
13.若不满足所述第二预设资源条件,利用通过所述第一操作系统基于cpu资源建立的解码器对所述图像数据进行处理。
14.可选的,所述媒体数据包括图像数据;所述方法还包括:
15.获取所述图像数据的渲染位置信息,并将所述渲染位置信息发送给所述第二处理模块,以使所述第二处理模块按照所述渲染位置信息渲染显示解码后图像数据。
16.可选的,所述第一处理模块与所述第二处理模块之间通过网口链路及媒体接口链路连接;
17.所述获取所述图像数据的渲染位置信息,将所述渲染位置信息发送给所述第二处理模块,以使所述第二处理模块按照所述渲染位置信息渲染显示解码后图像数据,包括:
18.在检测到创建或变更所述图像数据的显示窗口时,获取所述显示窗口的位置信息,得到渲染位置信息;
19.将所述显示窗口的输入源切换为所述媒体接口链路;
20.通过所述网口链路将所述渲染位置信息发送给所述第二处理模块,以使所述第二处理模块按照所述渲染位置信息,将解码后图像数据,通过所述媒体接口链路渲染显示到所述显示窗口中。
21.可选的,所述媒体数据包括图像数据,所述在所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块,包括:
22.在本次处理过程中所述图像数据需要渲染显示、且所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块;
23.和/或,在本次处理过程中所述图像数据不需要渲染显示、且所述第一处理模块的gpu资源不满足第三预设资源条件、且所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块,其中,所述第三预设资源条件表示所述第一处理模块的gpu剩余的硬件资源足够处理所述媒体数据。
24.可选的,在本次处理过程中所述图像数据不需要渲染显示、且所述第一处理模块的gpu资源不满足第三预设资源条件、且所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块的步骤之后,所述方法还包括:
25.获取所述第二处理模块发送的编码后图像数据,其中,所述编码后图像数据为:所述第二处理模块利用通过所述第二操作系统建立的解码器对所述图像数据进行解码处理,并利用预设编码算法对解码后图像数据进行编码所得到的,所述预设编码算法对应的解码算法所需的硬件资源量小于对所述图像数据进行解码处理所需的硬件资源量;利用通过所述第一操作系统基于cpu资源建立的解码器对所述编码后图像数据进行解码;
26.或,获取所述第二处理模块发送的解码后图像数据,其中,所述解码后图像数据为:所述第二处理模块利用通过所述第二操作系统建立的解码器对所述图像数据进行解码处理所得到的。
27.可选的,所述方法还包括:
28.在本次处理过程中所述图像数据不需要渲染显示,且所述第一处理模块的gpu资源满足所述第三预设资源条件的情况下,利用通过所述第一操作系统基于gpu资源建立的解码器对所述图像数据进行处理。
29.本技术实施例的第二方面,提供了一种媒体数据处理方法,应用于电子设备中的第二处理模块,所述电子设备还包括第一处理模块,所述第一处理模块中运行有第一操作系统,所述第二处理模块中运行有第二操作系统,所述方法包括:
30.接收所述第一处理模块发送的媒体数据,其中,所述媒体数据是在所述第二处理模块的硬件资源满足第一预设资源条件的情况下,所述第一处理模块发送给所述第二处理模块的,其中,所述第一预设资源条件表示所述第二处理模块剩余的硬件资源足够处理所述媒体数据;
31.利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理。
32.可选的,所述媒体数据包括图像数据;所述第一处理模块与所述第二处理模块之间通过网口链路及媒体接口链路连接;所述方法还包括:
33.在本次处理过程中所述图像数据需要渲染显示的情况下,获取所述第一处理模块通过所述网口链路发送的渲染位置信息;
34.响应于所述渲染位置信息,将所述解码器输出的解码后图像数据,通过所述媒体接口链路渲染显示到所述显示窗口中。
35.可选的,所述媒体数据包括图像数据;所述第一处理模块与所述第二处理模块之间通过网口链路连接;所述方法还包括:
36.在本次处理过程中所述图像数据不需要渲染显示、且解码后图像数据的码率不高于所述网口链路的带宽的情况下,将解码后图像数据发送给所述第一处理模块;
37.或,在本次处理过程中所述图像数据不需要渲染显示、且所述解码后图像数据的码率高于所述网口链路的带宽的情况下,利用预设编码算法对解码后图像数据进行编码,得到编码后图像数据,并将所述编码后图像数据发送给所述第一处理模块,其中,所述预设编码算法对应的解码算法所需的硬件资源量小于对所述图像数据进行解码处理所需的硬件资源量。
38.可选的,所述方法还包括:
39.在接收所述第一处理模块发送的媒体数据后,利用所述第二操作系统建立解码器;
40.在完成所述媒体数据的解码处理后,删除相应的解码器并释放所述第二处理模块中相应的硬件资源。
41.本技术实施例的第三方面,提供了一种媒体数据处理装置,应用于电子设备中的第一处理模块,所述电子设备还包括第二处理模块,所述第一处理模块中运行有第一操作系统,所述第二处理模块中运行有第二操作系统,所述装置包括:
42.信息获取模块,用于获取待处理的媒体数据及第二处理模块的硬件资源信息;
43.数据发送模块,用于在所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理;其中,所述第一预设资源条件表示所述第二处理模块剩余的硬件资源足够处理所述媒体数据。
44.可选的,所述装置还包括:
45.数据解码模块,用于在所述第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过所述第一操作系统建立的解码器对所述媒体数据进行解码处理;
46.可选的,所述数据解码模块,包括:
47.资源判断子模块,用于在所述第二处理模块的硬件资源不满足第一预设资源条件的情况下,判断所述第一处理模块的gpu资源是否满足第二预设资源条件;其中,所述第二
预设资源条件表示所述第一处理模块的gpu剩余的硬件资源足够处理所述媒体数据,所述媒体数据包括图像数据;
48.第一处理子模块,用于若满足所述第二预设资源条件,利用通过所述第一操作系统基于gpu资源建立的解码器对所述图像数据进行处理;
49.第二处理子模块,用于若不满足所述第二预设资源条件,利用通过所述第一操作系统基于cpu资源建立的解码器对所述图像数据进行处理;
50.可选的,所述媒体数据包括图像数据;所述装置还包括:
51.图像获取模块,用于获取所述图像数据的渲染位置信息,并将所述渲染位置信息发送给所述第二处理模块,以使所述第二处理模块按照所述渲染位置信息渲染显示解码后图像数据;
52.可选的,所述第一处理模块与所述第二处理模块之间通过网口链路及媒体接口链路连接;
53.所述图像获取模块,包括:
54.位置检测子模块,用于在检测到创建或变更所述图像数据的显示窗口时,获取所述显示窗口的位置信息,得到渲染位置信息;
55.输入切换子模块,用于将所述显示窗口的输入源切换为所述媒体接口链路;
56.窗口渲染子模块,用于通过所述网口链路将所述渲染位置信息发送给所述第二处理模块,以使所述第二处理模块按照所述渲染位置信息,将解码后图像数据,通过所述媒体接口链路渲染显示到所述显示窗口中;
57.可选的,所述媒体数据包括图像数据,所述数据发送模块,包括:
58.第一发送子模块,用于在本次处理过程中所述图像数据需要渲染显示、且所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块;
59.第二发送子模块,用于在本次处理过程中所述图像数据不需要渲染显示、且所述第一处理模块的gpu资源不满足第三预设资源条件、且所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块,其中,所述第三预设资源条件表示所述第一处理模块的gpu剩余的硬件资源足够处理所述媒体数据。
60.可选的,所述装置还包括:
61.编码后数据获取模块,用于获取所述第二处理模块发送的编码后图像数据,其中,所述编码后图像数据为:所述第二处理模块利用通过所述第二操作系统建立的解码器对所述图像数据进行解码处理,并利用预设编码算法对解码后图像数据进行编码所得到的,所述预设编码算法对应的解码算法所需的硬件资源量小于对所述图像数据进行解码处理所需的硬件资源量;图像解码子模块,用于利用通过所述第一操作系统基于cpu资源建立的解码器对所述编码后图像数据进行解码;
62.或,解码后数据获取模块,用于获取所述第二处理模块发送的解码后图像数据,其中,所述解码后图像数据为:所述第二处理模块利用通过所述第二操作系统建立的解码器对所述图像数据进行解码处理所得到的。
63.可选的,所述装置还包括:
64.图像处理模块,用于在本次处理过程中所述图像数据不需要渲染显示,且所述第
一处理模块的gpu资源满足所述第三预设资源条件的情况下,利用通过所述第一操作系统基于gpu资源建立的解码器对所述图像数据进行处理。
65.本技术实施例的第四方面,提供了一种媒体数据处理装置,应用于电子设备中的第二处理模块,所述电子设备还包括第一处理模块,所述第一处理模块中运行有第一操作系统,所述第二处理模块中运行有第二操作系统,所述装置包括:
66.媒体数据接收模块,用于接收所述第一处理模块发送的媒体数据,其中,所述媒体数据是在所述第二处理模块的硬件资源满足第一预设资源条件的情况下,所述第一处理模块发送给所述第二处理模的,其中,所述第一预设资源条件表示所述第二处理模块剩余的硬件资源足够处理所述媒体数据;
67.媒体数据解码模块,用于利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理。
68.可选的,所述媒体数据包括图像数据;所述第一处理模块与所述第二处理模块之间通过网口链路及媒体接口链路连接;所述装置还包括:
69.渲染位置获取模块,用于在本次处理过程中所述图像数据需要渲染显示的情况下,获取所述第一处理模块通过所述网口链路发送的渲染位置信息;
70.渲染位置显示模块,用于响应于所述渲染位置信息,将所述解码器输出的解码后图像数据,通过所述媒体接口链路渲染显示到所述显示窗口中;
71.可选的,所述媒体数据包括图像数据;所述第一处理模块与所述第二处理模块之间通过网口链路连接;所述装置包括:
72.编码后图像获取模块,用于在本次处理过程中所述图像数据不需要渲染显示、且解码后图像数据的码率高于所述网口链路的带宽的情况下,利用预设编码算法对解码后图像数据进行编码,得到编码后图像数据,并通过所述网口链路将所述编码后图像数据发送给所述第一处理模块,其中,所述预设编码算法对应的解码算法所需的硬件资源量小于对所述图像数据进行解码处理所需的硬件资源量;
73.或,解码后图像获取模块,用于在本次处理过程中所述图像数据不需要渲染显示、且解码后图像数据的码率不高于所述网口链路的带宽的情况下,通过所述网口链路将所述解码后图像数据发送给所述第一处理模块。
74.可选的,所述装置还包括:
75.解码器建立模块,用于在接收所述第一处理模块发送的媒体数据后,利用所述第二操作系统建立解码器;
76.资源释放模块,用于在完成所述媒体数据的解码处理后,删除相应的解码器并释放所述第二处理模块中相应的硬件资源。
77.本技术实施例的第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于第一处理模块的媒体数据处理方法。
78.本技术实施例的第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于第二处理模块的媒体数据处理方法。
79.本技术实施例的第七方面,提供了一种芯片,包括处理单元、存储单元,其中,存储
单元,用于存放计算机程序;
80.处理单元,用于执行存储单元上所存放的程序时,实现上述任一应用于第一处理模块的媒体数据处理方法。
81.本技术实施例的第八方面,提供了一种芯片,包括处理单元、存储单元,其中,存储单元,用于存放计算机程序;
82.处理单元,用于执行存储单元上所存放的程序时,实现上述任一应用于第二处理模块的媒体数据处理方法。
83.本技术实施例的第九方面,提供一种电子设备,包括:
84.第一处理模块及第二处理模块,所述第一处理模块中运行有第一操作系统,所述第二处理模块中运行有第二操作系统;
85.所述第一处理模块,用于在运行时实现上述任一应用于第一处理模块的媒体数据处理方法;
86.所述第二处理模块,用于在运行时实现上述任一应用于第二处理模块的媒体数据处理方法。
87.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行实现上述任一应用于第一处理模块的媒体数据处理方法。
88.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行实现上述任一应用于第二处理模块的媒体数据处理方法。
89.本技术实施例有益效果:
90.本技术实施例提供的一种媒体数据处理方法、装置、电子设备及存储介质,应用于电子设备中的第一处理模块,所述电子设备还包括第二处理模块,所述第一处理模块中运行有第一操作系统,所述第二处理模块中运行有第二操作系统,所述方法包括:获取待处理的媒体数据及第二处理模块的硬件资源信息;在所述第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理;其中,所述第一预设资源条件表示所述第二处理模块剩余的硬件资源足够处理所述媒体数据。通过本技术实施例的方案,可以在第二处理模块剩余的硬件资源足够处理所述媒体数据,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理,由于系统中运行的软件通过第一处理模块运行,而通过第二处理模块进行媒体数据的解码,从而可以提高媒体数据的解码效率。
91.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
92.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
93.图1为本技术实施例提供的媒体数据处理方法的一种流程示意图;
94.图2为本技术实施例提供的电子设备的一种结构示意图;
95.图3为本技术实施例提供的媒体数据处理方法的另一种流程示意图;
96.图4为本技术实施例提供的媒体数据处理方法的又一种流程示意图;
97.图5为本技术实施例提供的显示解码后的图像数据的流程示意图;
98.图6为本技术实施例提供的媒体数据处理流程的一种实例示意图;
99.图7为本技术实施例提供的通过媒体接口进行链路渲染显示的流程示意图;
100.图8为本技术实施例提供的媒体数据处理方法的实例图;
101.图9为本技术实施例提供的电子设备的一种实例示意图;
102.图10为本技术实施例提供的另一种媒体数据处理方法的流程示意图;
103.图11为本技术实施例提供的媒体数据处理装置的一种结构示意图;
104.图12为本技术实施例提供的媒体数据处理装置的另一种结构示意图。
具体实施方式
105.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
106.首先,对本技术实施例中可能使用到的专业术语进行解释:
107.cpu:中央处理器(central processing unit,简称cpu)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
108.gpu:图形处理器(graphics processing unit,缩写:gpu),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
109.mediacodec:android提供的用于对音视频进行编解码的类,它通过访问底层的codec来实现编解码的功能。是android media基础框架的一部分,通常和mediaextractor,mediasync,mediamuxer,mediacrypto,mediadrm,image,surface和audiotrack一起使用。
110.mediaplayer:可以用来播放音视频文件,或者是音频流。开发者可以用它来播放本地音频,或者是网络在线音频。mediaplayer属于android.media包。
111.ffmpeg:一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用lgpl或gpl许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
112.本技术实施例的第一方面,首先提供了一种媒体数据处理方法,应用于电子设备中的第一处理模块,电子设备还包括第二处理模块,第一处理模块中运行有第一操作系统,第二处理模块中运行有第二操作系统,参见图1,上述方法包括:
113.步骤s11,获取待处理的媒体数据及第二处理模块的硬件资源信息;
114.步骤s12,在第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块,以使第二处理模块利用通过第二操作系统建立的解码器对媒体数据进行解码处理;其中,第一预设资源条件表示第二处理模块剩余的硬件资源足够处
理媒体数据。
115.本技术实施例中的电子设备,可以是平板电脑、手机等,具体的,参见图2,该电子设备上可以安装有第一处理模块和第二处理模块,第一处理模块的硬件资源与第二处理模块的硬件资源不同,一个例子中,该第一处理模块和第二处理模块可以是同一芯片上的不同处理核心,另一个例子中,该第一处理模块和第二处理模块可以是不同的芯片,其中,第一处理模块中运行有第一操作系统,第二处理模块中运行有第二操作系统,该第一操作系统和第二操作系统可以是不同的操作系统,例如,第一操作系统和第二操作系统可以分别为android系统和linux系统等,也可以为相同的操作系统,均在本技术的保护范围内。
116.本技术实施例中的媒体数据包括视频数据,还可以包括音频数据等多种类型的数据,具体的,可以是第一处理模块中运行的第一操作系统通过网络接收或文件读取获取到媒体数据,例如,媒体数据可以是编码后的数据,如,h264/h265等,具有压缩率高、无法直接渲染显示的特点。第一处理模块与第二处理模块之间存在硬件资源信息的交互,一个例子中,第二处理模块可以主动向第一处理模块发送自身的硬件资源信息,具体的,第二处理模块可以在自身的硬件资源的使用情况发生变化时,主动向第一处理模块发送自身的硬件资源信息;第二处理模块还可以周期性的向第一处理模块发送自身的硬件资源信息。此外,第二处理模块还可以响应第一处理模块的查询消息,向第一处理模块发送自身的硬件资源信息,具体的,第一处理模块可以在获取到待处理的媒体数据后,向第二处理模块发送查询消息,第二处理模块响应于该查询消息,向第一处理模块发送自身的硬件资源信息。第二处理模块的硬件资源信息用于判断第二处理模块剩余的硬件资源是否足够处理媒体数据,一个例子中,第二处理模块的硬件资源信息可以为第二处理模块的硬件资源使用率,或直接为第二处理模块发送的剩余的硬件资源是否足够处理媒体数据的判断结果。
117.由于第一处理模块为电子设备的主控模块,第一处理模块中运行有多种软件程序,从而导致能够分配给媒体数据解码的资源较少,倘若通过第一处理模块来解码媒体数据,会导致第一处理模块的处理压力增大,造成媒体数据的解码效率较低,甚至会造成电子设备运行的卡顿。通过本技术实施例的方法,第二处理模块为区别于第一处理模块的处理模块,可以在第二处理模块剩余的硬件资源足够处理所述媒体数据的情况下,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理,而通过第二处理模块进行媒体数据的解码,不会造成第一处理模块卡顿的情况,能够为媒体数据提供更多的硬件资源,从而可以提高媒体数据的解码效率。
118.在第二处理模块硬件资源充足时,可以使用第二处理模块来实现媒体数据的处理,在第二处理模块的硬件资源不足时,可以利用第一处理模块对媒体数据进行解码处理。可选的,参见图3,上述方法还包括:
119.步骤s31,在第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过第一操作系统建立的解码器对媒体数据进行解码处理。
120.第二处理模块的硬件资源不满足第一预设资源条件,表示第二处理模块的硬件资源不足以处理媒体数据,此种情况下可以通过第一处理模块自身的硬件资源来完成媒体数据的处理。一个例子中,第一处理模块可以利用通过第一操作系统建立的解码器对媒体数据进行解码处理。具体的,可以判断第二处理模块的硬件资源是否满足第一预设资源条件,
在第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过第一操作系统建立的解码器对媒体数据进行解码处理。
121.一些场景中,第一处理模块中包括多种类型的硬件资源,例如可以包括gpu资源及cpu资源等。一个例子中,参见图4,在第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过第一操作系统建立的解码器对媒体数据进行解码处理,包括:
122.步骤s311,在第二处理模块的硬件资源不满足第一预设资源条件的情况下,判断第一处理模块的gpu资源是否满足第二预设资源条件;其中,第二预设资源条件表示第一处理模块的gpu剩余的硬件资源足够处理媒体数据;
123.步骤s312,若满足第二预设资源条件,利用通过第一操作系统基于gpu资源建立的解码器对图像数据进行处理;
124.步骤s313,若不满足第二预设资源条件,利用通过第一操作系统基于cpu资源建立的解码器对图像数据进行处理。
125.其中,在实际使用过程中,通过gpu进行媒体数据的解码又称为硬解,而通过cpu进行媒体数据的解码又称为软解。由于gpu的核心数要远高于cpu的核心数,因此gpu的并行运算能力要高于cpu,而针对媒体数据的解码过程是一种并行运算过程(同一视频帧中的多个编码块并行解码),因此针对媒体数据的解码通过gpu进行硬解的效率要高于通过cpu进行软解的效率。由于gpu比cpu更擅长处理媒体数据的解码操作,可以先判断第二处理模块的gpu资源是否满足第二预设资源条件,在第二处理模块的gpu资源满足第二预设资源条件的情况下,利用通过第一操作系统基于gpu资源建立的解码器对图像数据进行处理;若第二处理模块的gpu资源不满足第二预设资源条件,利用通过第一操作系统基于cpu资源建立的解码器对图像数据进行处理。通过该策略,可以将第一处理模块gpu和cpu等资源和第二处理模块的资源结合到一起使用,可以增加解码性能。
126.第一处理模块与第二处理模块中的解码器可以为预先创建好的,也可以为每次接收到媒体数据后实时建立的,在实时建立解码器的情况下,当媒体数据的解码任务完成后,还可以销毁该解码器,以释放其占用的硬件资源。在实际使用过程中,以第一操作系统和第二操作系统分别为android系统和linux系统为例进行说明,对图像数据进行解码可以通过改写android系统标准编解码方法的实现,由于android通过mediacodec和mediaplay实现系统编解码功能,以mediacodec举例,可以通过改写位置在c framework层的mediacodec代码实现解码功能,其中,于java层的mediacodec也是通过调用c 层的mediacodec实现解码的。改写方法如下:1、创建资源:在创建解码器时,如采用amediacodec_createdecoderbytype等系列方法,将第一处理模块的gpu硬解、cpu软解及第一处理模块的解码资源都结合到解码器的创建过程中,按照上述策略选取是采集android系统gpu、cpu等资源、还是采用linux系统的解码资源,以达到最大化的增加编解码性能。2、解码数据:创建好解码器后,当用户调用amediacodec_queueinputbuffer(媒体数据解码器的队列输入缓冲区)等时,第一处理模块确认创建好的解码器类型,如果是第二操作系统的解码器,则通过网口链路将媒体数据发送给第二处理模块;如果是第一操作系统gpu的解码器,则通过android系统模块的gpu解码,如果是第一操作系统cpu的解码器,则将媒体数据送入基于cpu资源的ffmpeg等专属解码器;当调用amediacodec_getoutputbuffer等获取解码后数据时,处理方式类似,例如,如果是第二操作系统的解码器,则尝试从第二处理模块中获取解
码后数据。3、销毁解码器。在媒体数据解码完成中,可以用amediacodec_delete等删除解码器,例如,如果是第二操作系统的解码器,则在第二处理模块中删除该解码器,如果是第一操作系统gpu的解码器,则在第一处理模块中删除该基于gpu资源的解码器;如果是第一操作系统cpu的解码器,在第一处理模块中删除除该基于cpu资源的解码器。
127.针对第一处理模块本地解码的情况,解码后的图像数据可以直接用于渲染显示,一个例子中,可以通过用户下发surface信息,解码后数据通过surface可以直接渲染在指定位置上。其中,本技术实施例中,使用的控件往往并非surface,而是封装surface的view控件,如surfaceview,textview等,创建使用这些view的同时,系统会调用surface的方法,view也提供获取surface信息的方法。
128.实际使用过程中,在本次处理过程中媒体数据中的图像数据需要被渲染的情况下,当第二处理模块完成图像数据的解码后,可以由第二处理模块直接渲染显示。一个例子中,媒体数据包括图像数据;在本次处理过程中媒体数据中的图像数据需要被渲染的情况下,参见图5,上述方法还包括:
129.步骤s51,获取图像数据的渲染位置信息,并将渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息渲染显示解码后图像数据。
130.其中,第一处理模块拥有显示屏的控制权,能够控制图像数据在显示屏上的渲染位置,因此第一处理模块需要将图像数据的渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息,渲染显示解码后的图像数据。其中,渲染位置信息可以是指屏幕上的坐标位置信息,例如,在实际使用过程中,本技术实施例中的电子设备可以包括屏幕,在第一处理模块获取渲染位置信息时,可以获取该屏幕上的某一位置或某一区域的坐标位置,并将该坐标位置作为渲染位置信息,发送至第二处理模块。
131.一个例子中,第一处理模块可以将渲染位置信息写入到显示窗口信息(surface信息)的预设字段中,并通过网口链路将显示窗口信息发送给所述第二处理模块中的解码器。可以将渲染位置信息添加到surface信息结构中,在surface信息中添加预设字段,用于写入渲染位置信息,例如可以为渲染位置的坐标。通过第一处理模块将surface信息发送给第二处理模块,以实现渲染位置信息的发送,一个例子中,可以在surface信息中新增保存位置坐标变量空间,用于存储渲染位置信息。surface信息中除了渲染位置信息外,还包括其他的显示窗口控制信息,具体可以参见相关surface信息结构,此处不再赘述。
132.在实际使用过程中,解码后图像数据的数据量很大,倘若由第一处理模块取回数据后在上屏显示,会造成第一处理模块与第二处理模块之间的通信资源的紧张,在本技术实施例中,由第二处理模块直接将解码后图像数据上屏渲染显示,能够节约第一处理模块与第二处理模块之间的通信资源。
133.第一处理模块与第二处理模块之间可以包括多个通信链路,一个例子中,第一处理模块与第二处理模块之间通过网口链路及媒体接口链路连接。具体的,可以参见图6,图中fapp和g app表示不同的app(application,应用程序),在java framework(java的框架)system server(系统服务)的mediacodec(媒体代码),然后经过jni(java native interface)中的zygote android runtime,在c appndk下,f app和g app通过不同的媒体代码jmediacodec和amediacodec,最后在c framework(c 的框架)中,判断a系统资源是否充足,若是,则通过3559api处理,利用a系统dsp codec渲染,若不充足则判断gpu资源是
否充足,若是,则通过media server(媒体服务)处理,通过use gpu codec渲染,若gpu资源不充足,则判断cpu和内存资源是否充足,若是,则通过ffmpegetc.处理,通过use cpu codec渲染。本技术实施例中的第一操作系统和第二操作系统可以分别为android系统和linux系统,所用到的连接主要有2条,一条是通过网络的双向通路,即网口链路,主要负责控制信令和媒体数据的传输;另一条通路是hdmi的单向通路,负责将解码后的数据渲染到android系统的屏幕上。android系统通过3559api(一种芯片)获取待解码数据,并通过双向通道network将该待解码数据发送至linux系统中的apppro,然后再linux系统中通过dspcore进行解码,得到解码后的数据,最后通过单向通路hdmi将解码后的数据渲染到android系统的屏幕上。
134.可选的,上述步骤s51,获取图像数据的渲染位置信息,将渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息渲染显示解码后图像数据,参见图7,包括:
135.步骤s511,在检测到创建或变更图像数据的显示窗口时,获取显示窗口的位置信息,得到渲染位置信息。
136.例如,在第一处理模块的surface信息结构中,新增预设字段,用于保存获取到的渲染位置信息,具体可以为位置坐标变量字段;创建和改变surface时获取渲染位置坐标,并添加到surface信息的预设字段中。当用户创建view和改变view的位置时,系统内部会调用surfacecreated创建方法和调用surfacechanged位置改变方法,从surfaceflinger中获取到位置信息,将获取到的位置坐标保存到新增的位置坐标变量中。在第一处理模块向第二处理模块发送指定位置信息时,可以将位置坐标信息传输给第二处理模块。当用户下发surface信息给解码器后,在解码器过程中会时刻关注surface保存的位置坐标信息,当坐标信息有所改变时,会通过网络把新的坐标信息传给第二操作系统进行渲染显示位置的更新。具体的,在第一处理模块向第二处理模块发送指定位置信息时,通过新增保存位置坐标变量空间,然后当用户创建view和改变view的位置时,系统内部会调用surfacecreated创建方法和调用surfacechanged位置改变方法,从surfaceflinger中获取位置信息,传输给第二操作系统。
137.步骤s512,将显示窗口的输入源切换为媒体接口链路。
138.步骤s513,通过网口链路将渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息,将解码后图像数据,通过媒体接口链路渲染显示到显示窗口中。
139.本技术实施例中不对步骤s512及步骤s513的执行顺序进行限制,可以先执行步骤s512然后执行步骤s513,也可以执行步骤s513然后执行步骤s513,还可以并行执行步骤s512及步骤s513。一个例子中,可以先完成显示窗口的输入源的切换,然后发送渲染位置信息,从而第二处理模块在接收到渲染位置信息后,可以直接利用媒体接口链路渲染显示视频数据。若先发送渲染位置信息,然后将显示窗口的输入源切换为媒体接口链路,第一处理模块还需要在切换完成后,发送额外的信令以通知第二处理模块显示窗口的输入源已经切换完成,从而可以开始渲染显示。
140.第一处理模块在检测到创建或变更图像数据的显示窗口时,获取显示窗口的位置信息,得到渲染位置信息;将显示窗口的输入源切换为媒体接口链路;通过网口链路将渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息,将解码后图像数据,
通过媒体接口链路渲染显示到显示窗口中,此处的媒体接口链路可以为hdmi(high definition multimedia interface,高清多媒体接口)等媒体接口,本技术中不做具体限定。第一处理模块将显示窗口的输入源切换为媒体接口链路后,第二处理模块可以直接按照渲染位置信息,通过媒体接口链路来实现视频数据的渲染上屏,例如,第二处理模块通过hdmi将图像显示在surface坐标位置上,dspcore将数据解码,通过hdmi显示到android屏幕指定位置。此过程中,第一处理模块无需进行额外操作,仅在变更图像数据的显示窗口时,将变更后的渲染位置信息通知第二处理模块即可。
141.媒体接口链路用于第二处理模块将解码后的视频数据上屏显示,网口链路用于第一处理模块与第二处理模块之间的数据及信令交互,在第二处理模块完成图像数据的解码之后,如果由第一处理模块来渲染显示,则第一处理模块需要通过网口链路从第二处理模块中取回解码后图像数据。但是解码后图像数据的数据量很大,由第一处理模块通过网口链路取回解码后图像数据,会占用第一处理模块与第二处理模块之间的大量的网口链路带宽,不仅解码后图像数据取回时间较长,还会影响第一处理模块与第二处理模块的正常通信过程。而在本技术实施例中,第一处理模块将显示窗口的输入源切换为媒体接口链路,在第二处理模块得到解码后图像数据时,可以直接通过媒体接口链路实现解码后图像数据的渲染显示,大大降低第一处理模块与第二处理模块之间网口链路的通信压力,能够节约第一处理模块与第二处理模块的通信资源,加快图像数据显示的速度,降低数据处理延时。
142.此外,本技术实施例中,第一处理模块与第二处理模块均各自运行有独立的操作系统,且第一处理模块与第二处理模块之间通过网口链路通信,即第一处理模块与第二处理模块为两个相对独立的处理系统,二者基于各自的解码器来实现媒体数据的解码,二者之间通过网口链路来实现两个操作系统之间的数据交互,而相比于第一处理模块通过api接口(application programming interface,应用程序编程接口)调用其他硬件资源的方式,不用单独开发api接口,减少了二次开发的工作量。
143.在媒体数据包括图像数据时,可选的,上述在第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块,包括:
144.在本次处理过程中图像数据需要渲染显示、且第二处理模块的硬件资源信息满足第一预设资源条件的情况下,第一处理模块将媒体数据发送给第二处理模块。
145.和/或,在本次处理过程中图像数据不需要渲染显示、且第一处理模块的gpu资源不满足第三预设资源条件、且第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块,其中,第三预设资源条件表示第一处理模块的gpu剩余的硬件资源足够处理媒体数据。
146.其中,本次处理过程中图像数据是否需要渲染显示,是指本次接收到的针对媒体数据的处理任务中,是否包括图像数据的渲染显示任务;并不包括后续过程中是否对解码后的图像数据是否渲染显示的考虑,这是因为第一处理模块无法预知后续的处理过程,仅能基于当前下达的任务进行判断。
147.一个例子中,在本次处理过程中图像数据不需要渲染显示、且第一处理模块的gpu资源不满足第三预设资源条件、且第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块的步骤之后,上述方法还包括:
148.获取第二处理模块发送的编码后图像数据,其中,编码后图像数据为:第二处理模
块利用通过第二操作系统建立的解码器对图像数据进行解码处理,并利用预设编码算法对解码后图像数据进行编码所得到的,其中,预设编码算法对应的解码算法所需的硬件资源量小于对图像数据进行解码处理所需的硬件资源量;利用通过第一操作系统基于cpu资源建立的解码器对编码后图像数据进行解码。
149.或,获取第二处理模块发送的解码后图像数据,其中,解码后图像数据为:第二处理模块利用通过第二操作系统建立的解码器对图像数据进行解码处理所得到的。
150.可选的,上述方法还包括:在本次处理过程中图像数据不需要渲染显示,且第一处理模块的gpu资源满足第二预设资源条件的情况下,利用通过第一操作系统基于gpu资源建立的解码器对图像数据进行处理。
151.第一处理模块与第二处理模块之间通过网口链路及媒体接口链路连接,其中,媒体接口链路用于第二处理模块将解码后的视频数据上屏显示,网口链路用于第一处理模块与第二处理模块之间的数据及信令交互,在第二处理模块完成图像数据的解码之后,如果图像数据并不上屏显示,而是第一处理模块要取回进行其他操作,那么就需要通过网口链路来完成解码后图像数据的取回。但是解码后图像数据的数据量很大,由第一处理模块通过网口链路取回解码后图像数据,会占用第一处理模块与第二处理模块之间的大量的网口链路带宽,不仅解码后图像数据取回时间较长,还会影响第一处理模块与第二处理模块的正常通信过程。因此,当图像数据不要解码的情况下,为了降低第一处理模块与第二处理模块之间网口链路的通信压力,优先判断第一处理模块中的gpu资源是否足够解码媒体数据,如足够则第一处理模块直接用自身的gpu资源对媒体数据进行处理,无需通过网口链路将媒体数据发送给第二处理模块后,在通过网口链路取回解码后的数据,能够节约第一处理模块与第二处理模块的通信资源,并且能够降低数据处理延时。
152.其中,在实际使用过程中,通过gpu进行媒体数据的解码又称为硬解,而通过cpu进行媒体数据的解码又称为软解。由于gpu的并行运算能力要远远高于cpu,而针对媒体数据的解码由于需要多通道并行运算,因此针对媒体数据的解码通过gpu进行硬解的效率往往较高。因此,为了提高解码的效率,若第一处理模块中的gpu资源不足够解码媒体数据,则通过网口链路将媒体数据发送给第二处理模块。
153.第二处理模块在获取到媒体数据中,利用自身的硬件资源完成媒体数据的解码,得到解码后图像数据。第二处理模块判断解码后图像数据的码率是否高于网口链路的实际带宽,如果解码后图像数据的码率不高于网口链路的实际带宽,则可以直接通过网口链路实现解码后图像数据的回传。如果解码后图像数据的码率高于网口链路的实际带宽,第二处理模块利用预设编码算法对解码后图像数据进行编码,然后通过网口链路将编码后图像数据发送给第一处理模块。在解码后图像数据的码率高于网口链路的实际带宽的情况下,网口链路不能够实现解码后图像数据的实时发送,造成数据发送时间长,数据处理延时高,因此通过预设编码算法对解码后图像数据进行编码,以使得解码后图像数据的码率不高于网口链路的实际带宽。解码后图像数据的码率可以通过相关的码率算法计算得到,例如,解码后图像数据的码率=单帧视频帧图像的大小
×
帧率。
154.预设编码算法侧重于编码算法的简单化,并不追求高的压缩率,具体的,预设编码算法对应的解码算法所需的硬件资源量小于直接对图像数据进行解码处理所需的硬件资源量,从而能够使第一处理模块用较少的硬件资源,便能够完成编码后图像数据的解码。具
体的,通过第二处理模块建立的解码器对媒体数据进行解码处理,得到的解码后图像数据,可以为yuv420,nv12等格式的数据。
155.一个例子中,在第一模块接收到编码后图像数据后,可以先判断自身的gpu资源是否足够解码该编码后图像数据,当gpu资源不足以解码该编码后图像数据时,通过自身的cpu资源完成编码后图像数据的解码。一个例子中,考虑到第一处理模块是在gpu资源不足的情况下,才将解码任务交给第二处理模块的,因此为了简化第一处理模块的判断逻辑,简化不必要的计算资源开销,在第一处理模块接收到编码后图像数据后,可以直接利用基于cpu资源建立的解码器对编码后图像数据进行解码。
156.在一种可能的实施方式中,参见图8,上述过程具体可以通过如下步骤实现:
157.步骤a,响应于接收到媒体数据的处理任务,判断本次处理过程中媒体数据中的图像数据是否需要渲染显示。其中,若需要渲染显示,则执行步骤b;若不需要渲染显示,则执行步骤e。
158.步骤b,若本次处理过程中图像数据需要渲染显示,判断第二处理模块的硬件资源信息是否满足第一预设资源条件。其中,若满足第一预设资源条件,则执行步骤c;若不满足第一预设资源条件,则执行步骤d。
159.步骤c,在第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块,获取图像数据的渲染位置信息,并将渲染位置信息发送给第二处理模块,以使第二处理模块按照所述渲染位置信息渲染显示解码后图像数据。
160.步骤d,在第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过第一操作系统建立的解码器对媒体数据进行解码处理,并将解码后图像数据渲染显示。
161.步骤e,若本次处理过程中图像数据不需要渲染显示,判断第一处理模块的gpu资源是否满足第二预设资源条件。其中,若满足第二预设资源条件,则执行步骤f;若不满足第二预设资源条件,则执行步骤g。
162.步骤f,在第一处理模块的gpu资源满足第二预设资源条件的情况下,利用通过第一操作系统基于gpu资源建立的解码器对图像数据进行处理。
163.步骤g,在第一处理模块的gpu资源不满足第二预设资源条件的情况下,判断第二处理模块的硬件资源信息是否满足第一预设资源条件。其中,若满足第一预设资源条件,则执行步骤h;若不满足第一预设资源条件,则执行步骤j。
164.步骤h,将媒体数据发送给第二处理模块。
165.第二处理模块在接收到媒体数据后,在本次处理过程中图像数据不需要渲染显示、且解码后图像数据的码率不高于网口链路的带宽的情况下,通过网口链路将解码后图像数据发送给所述第一处理模块;在本次处理过程中图像数据不需要渲染显示、且解码后图像数据的码率高于网口链路的带宽的情况下,利用通过第二操作系统建立的解码器对图像数据进行解码处理后,利用预设编码算法对解码后图像数据进行编码,得到编码后图像数据,并通过网口链路将编码后图像数据发送给第一处理模块。
166.步骤i,获取第二处理模块发送的编码后图像数据,利用通过第一操作系统基于cpu资源建立的解码器对编码后图像数据进行解码;或,获取所述第二处理模块发送的解码后图像数据。
167.步骤j,生成当前硬件资源不足的告警信息。
168.通过本技术实施例的电子设备,可以通过通用的方法开发,即系统标准的api开发,而不是基于指定sdk提供的api进行开发,更有通用性。
169.为了说明本技术实施例的方法,以下结合具体实施例进行说明:
170.step1.建立android系统模块(对应第一处理模块)和专属芯片(内部使用linux操作系统)系统模块(对应第二处理模块,以下简称为l系统)的连接,所用到的连接主要有2条,一条是通过网口链路的双向通路,主要负责控制信令和媒体数据的传输;另一条通路是hdmi的单项通路(对应媒体接口链路),负责将解码后的数据渲染到android系统的屏幕上,参见图9,其中,通过3559api为android中的接口接收数据,然后通过network 1000mbps网络通信发送至linux system,由apppro和dspcore渲染和解码,在通过hdmi 4k 60fps接口,渲染至screen上。
171.step2.1.创建资源。在创建解码器时,如采用amediacodec_createdecoderbytype等系列方法,将android系统模块的gpu硬解、cpu软解及将l系统模块的解码资源,都结合到解码器的创建过程中,按照一定的策略(l系统资源充足使用l系统,l系统资源不足而原生androidgpu资源充足使用androidgpu,上述都不足而androidcpu/内存资源占用不高时使用android cpu)将android系统gpu和cpu等资源与其他l系统的资源结合到一起使用,从而达到最大化的增加编解码性能。
172.step2.2.编解码数据。创建好解码器后,当用户调用amediacodec_queueinputbuffer等送回缓存方法时,内部确认创建好的解码器类型,是l系统模块的解码器,则通过网口链路送给l系统模块,如果是android系统模块的gpu,则通过android系统模块的gpu解码,如果是android系统模块的cpu资源,则将图像数据送入ffmpeg等专属解码器;当用户调用amediacodec_getoutputbuffer等获取缓存的方法时,处理方式也类似前者,如果是l系统的则尝试从l系统内获取解码后数据。
173.step2.3.销毁解码器。当用户调用amediacodec_delete等删除解码器时,消除解码器并释放硬件资源。
174.step3.1.新增保存位置坐标变量空间。在原有的surface信息结构中增加预设字段,用于保存获取到的选项位置信息,具体可以为位置坐标变量字段。
175.step3.2.在创建和改变surface时获取位置坐标。当用户创建view和改变view的位置时,系统内部会调用surfacecreated创建方法和调用surfacechanged位置改变方法,此时从surfaceflinger中获取到渲染位置信息,将获取到的位置坐标保存到step3.1新增的位置坐标变量中。
176.step3.3.渲染位置信息传输给l系统模块。当用户下发surface信息给解码器后,在解码器过程中会时刻关注surface保存的位置坐标信息,当渲染位置信息有所改变时,会通过网络把新的渲染位置信息传给l系统模块进行渲染显示位置的更新。
177.step3.4.将surface所在位置的显示权交由l系统模块。当确认解码器使用l系统模块后,通过tvmanager管理模块,修改surface控件输入属性,将surface输入源从android系统默认通道切换到hdmi通道,即在android系统的角度,surface所在位置将不再显示内容,如果l系统不做渲染显示,surface位置将是黑色不显示任何内容的情况。
178.step3.5.l系统模块渲染显示。获取到渲染位置信息后,按照渲染位置信息的坐标渲染显示,l系统模块通过hdmi链路将图像显示在surface坐标位置上,dspcore将数据解
码,通过hdmi显示到android屏幕指定位置。
179.step4.如果不需要通过surface渲染,需要将解码后数据取回,step3介绍的内容无需实施,但需要考虑将解码后数据从l系统取回,由于解码后数据非常大(1路1080p 25fps的数据量达到590mbps),即使千兆网卡也无法支撑,所以需要做如下处理:有解码任务(不通过surface显示)先判断android系统模块的gpu资源是否足够处理媒体数据,如果gpu资源足够处理媒体数据则直接使用gpu资源解码;如果gpu资源不足够处理媒体数据,则判断l系统模块的硬件资源是否足够处理媒体数据;如果l系统模块的硬件资源足够处理媒体数据,将媒体数据发送给l系统模块。和step2不同的是,l系统模块需要对解码后数据进行编码,此时不需要考虑压缩率,仅需要采用编码算法高效的方法,如jpeg(1080p 25fps,数据量大概40mbps,可满足20路1080p),再通过网口链路传回android系统模块,由android系统模块通过cpu进行简单解码即可。如果l系统模块的硬件资源不足以处理媒体数据,则生成处理资源不足的告警信息。
180.本技术实施例的第二方面,提供了一种媒体数据处理方法,应用于电子设备中的第二处理模块,电子设备还包括第一处理模块,第一处理模块中运行有第一操作系统,第二处理模块中运行有第二操作系统,参见图10,上述方法包括:
181.步骤s101,接收第一处理模块发送的媒体数据,其中,媒体数据是在第二处理模块的硬件资源满足第一预设资源条件的情况下,第一处理模块发送给第二处理模的,其中,第一预设资源条件表示第二处理模块剩余的硬件资源足够处理媒体数据;
182.步骤s102,利用通过第二操作系统建立的解码器对媒体数据进行解码处理。
183.可选的,媒体数据包括图像数据;第一处理模块与第二处理模块之间通过网口链路及媒体接口链路连接;上述方法还包括:
184.在本次处理过程中图像数据需要渲染显示的情况下,获取第一处理模块通过网口链路发送的渲染位置信息;
185.响应于渲染位置信息,将解码器输出的解码后图像数据,通过媒体接口链路渲染显示到显示窗口中。
186.可选的,媒体数据包括图像数据;所述第一处理模块与所述第二处理模块之间通过网口链路连接;所述方法还包括:
187.在本次处理过程中所述图像数据不需要渲染显示、且解码后图像数据的码率不高于所述网口链路的带宽的情况下,通过所述网口链路将解码后图像数据发送给所述第一处理模块;
188.或,在本次处理过程中所述图像数据不需要渲染显示、且所述解码后图像数据的码率高于所述网口链路的带宽的情况下,利用预设编码算法对解码后图像数据进行编码,得到编码后图像数据,并通过所述网口链路将所述编码后图像数据发送给所述第一处理模块,其中,所述预设编码算法对应的解码算法所需的硬件资源量小于对所述图像数据进行解码处理所需的硬件资源量。
189.可选的,上述方法还包括:
190.在接收第一处理模块发送的媒体数据后,利用第二操作系统建立解码器;
191.在完成媒体数据的解码处理后,删除相应的解码器并释放第二处理模块中相应的硬件资源。
192.可见,通过本技术实施例的方法,可以在第二处理模块剩余的硬件资源足够处理所述媒体数据,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理,由于系统中运行的软件通过第一处理模块运行,而通过第二处理模块进行媒体数据的解码,从而可以提高媒体数据的解码效率。
193.本技术实施例的第三方面,提供了一种媒体数据处理装置,应用于电子设备中的第一处理模块,电子设备还包括第二处理模块,第一处理模块中运行有第一操作系统,第二处理模块中运行有第二操作系统,参见图11,上述装置包括:
194.信息获取模块1101,用于获取待处理的媒体数据及第二处理模块的硬件资源信息;
195.数据发送模块1102,用于在第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块,以使第二处理模块利用通过第二操作系统建立的解码器对媒体数据进行解码处理;其中,第一预设资源条件表示第二处理模块剩余的硬件资源足够处理媒体数据。
196.可选的,上述装置还包括:
197.数据解码模块,用于在第二处理模块的硬件资源不满足第一预设资源条件的情况下,利用通过第一操作系统建立的解码器对媒体数据进行解码处理;
198.可选的,数据解码模块,包括:
199.资源判断子模块,用于在第二处理模块的硬件资源不满足第一预设资源条件的情况下,判断第一处理模块的gpu资源是否满足第二预设资源条件;其中,第二预设资源条件表示第一处理模块的gpu剩余的硬件资源足够处理媒体数据;
200.第一处理子模块,用于若满足第二预设资源条件,利用通过第一操作系统基于gpu资源建立的解码器对图像数据进行处理;
201.第二处理子模块,用于若不满足第二预设资源条件,利用通过第一操作系统基于cpu资源建立的解码器对图像数据进行处理;
202.可选的,媒体数据包括图像数据;上述装置还包括:
203.图像获取模块,用于获取图像数据的渲染位置信息,并将渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息渲染显示解码后图像数据;
204.可选的,第一处理模块与第二处理模块之间通过网口链路及媒体接口链路连接;
205.图像获取模块,包括:
206.位置检测子模块,用于在检测到创建或变更图像数据的显示窗口时,获取显示窗口的位置信息,得到渲染位置信息;
207.输入切换子模块,用于将显示窗口的输入源切换为媒体接口链路;
208.窗口渲染子模块,用于通过网口链路将渲染位置信息发送给第二处理模块,以使第二处理模块按照渲染位置信息,将解码后图像数据,通过媒体接口链路渲染显示到显示窗口中;
209.可选的,媒体数据包括图像数据,数据发送模块,包括:
210.第一发送子模块,用于在本次处理过程中图像数据需要渲染显示、且第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块;
211.第二发送子模块,用于在本次处理过程中图像数据不需要渲染显示、且第一处理模块的gpu资源不满足第三预设资源条件、且第二处理模块的硬件资源信息满足第一预设资源条件的情况下,将媒体数据发送给第二处理模块,其中,第三预设资源条件表示第一处理模块的gpu剩余的硬件资源足够处理媒体数据。
212.可选的,上述装置还包括:
213.编码后数据获取模块,用于获取第二处理模块发送的编码后图像数据,其中,编码后图像数据为:第二处理模块利用通过第二操作系统建立的解码器对图像数据进行解码处理,并利用预设编码算法对解码后图像数据进行编码所得到的,预设编码算法对应的解码算法所需的硬件资源量小于对图像数据进行解码处理所需的硬件资源量;图像解码子模块,用于利用通过第一操作系统基于cpu资源建立的解码器对编码后图像数据进行解码;
214.或,解码后数据获取模块,用于获取所述第二处理模块发送的解码后图像数据,其中,所述解码后图像数据为:所述第二处理模块利用通过所述第二操作系统建立的解码器对所述图像数据进行解码处理所得到的。
215.可选的,上述装置还包括:
216.图像处理模块,用于在本次处理过程中图像数据不需要渲染显示,且第一处理模块的gpu资源满足第三预设资源条件的情况下,利用通过第一操作系统基于gpu资源建立的解码器对图像数据进行处理。
217.可见,通过本技术实施例的装置,可以在第二处理模块剩余的硬件资源足够处理所述媒体数据,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理,由于系统中运行的软件通过第一处理模块运行,而通过第二处理模块进行媒体数据的解码,从而可以提高媒体数据的解码效率。
218.本技术实施例的第四方面,提供了一种媒体数据处理装置,应用于电子设备中的第二处理模块,电子设备还包括第一处理模块,第一处理模块中运行有第一操作系统,第二处理模块中运行有第二操作系统,参见图12,上述装置包括:
219.媒体数据接收模块1201,用于接收第一处理模块发送的媒体数据,其中,媒体数据是在第二处理模块的硬件资源满足第一预设资源条件的情况下,第一处理模块发送给第二处理模的,其中,第一预设资源条件表示第二处理模块剩余的硬件资源足够处理媒体数据;
220.媒体数据解码模块1202,用于利用通过第二操作系统建立的解码器对媒体数据进行解码处理。
221.可选的,媒体数据包括图像数据;第一处理模块与第二处理模块之间通过网口链路及媒体接口链路连接;上述装置还包括:
222.渲染位置获取模块,用于在本次处理过程中图像数据需要渲染显示的情况下,获取第一处理模块通过网口链路发送的渲染位置信息;
223.渲染位置显示模块,用于响应于渲染位置信息,将解码器输出的解码后图像数据,通过媒体接口链路渲染显示到显示窗口中;
224.可选的,媒体数据包括图像数据;第一处理模块与第二处理模块之间通过网口链路连接;上述装置还包括:
225.编码后图像获取模块,用于在本次处理过程中图像数据不需要渲染显示、且解码
后图像数据的码率高于所述网口链路的带宽的情况下,利用预设编码算法对解码后图像数据进行编码,得到编码后图像数据,并通过所述网口链路将编码后图像数据发送给第一处理模块,其中,预设编码算法对应的解码算法所需的硬件资源量小于对图像数据进行解码处理所需的硬件资源量;
226.或,解码后图像获取模块,用于在本次处理过程中所述图像数据不需要渲染显示、且解码后图像数据的码率不高于所述网口链路的带宽的情况下,通过所述网口链路将所述解码后图像数据发送给所述第一处理模块。
227.可选的,上述装置还包括:
228.解码器建立模块,用于在接收第一处理模块发送的媒体数据后,利用第二操作系统建立解码器;
229.资源释放模块,用于在完成媒体数据的解码处理后,删除相应的解码器并释放第二处理模块中相应的硬件资源。
230.可见,通过本技术实施例的装置,可以在第二处理模块剩余的硬件资源足够处理所述媒体数据,将所述媒体数据发送给所述第二处理模块,以使所述第二处理模块利用通过所述第二操作系统建立的解码器对所述媒体数据进行解码处理,由于系统中运行的软件通过第一处理模块运行,而通过第二处理模块进行媒体数据的解码,从而可以提高媒体数据的解码效率。
231.本技术实施例还提供了一种芯片,包括至少一个处理单元及存储单元;
232.存储单元,用于存放计算机程序;
233.处理单元,用于执行存储单元上所存放的程序时,实现上述任一应用于第一处理模块的媒体数据处理方法。
234.一个例子中,该芯片的处理单元包括gpu及cpu,该芯片的存储单元可以为单独的存储器,也可以为嵌入式的存储核心(die)。
235.本技术实施例还提供了一种芯片,包括至少一个处理单元及存储单元;
236.存储单元,用于存放计算机程序;
237.处理单元,用于执行存储单元上所存放的程序时,实现上述任一应用于第二处理模块的媒体数据处理方法。
238.一个例子中,该芯片的处理单元包括gpu,该芯片的存储单元可以为单独的存储器,也可以为嵌入式的存储核心(die)。
239.上述提到的存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
240.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
241.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一应用于第一处
理模块的媒体数据处理方法。
242.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一应用于第二处理模块的媒体数据处理方法。
243.本技术实施例的第九方面,提供一种电子设备,包括:
244.第一处理模块及第二处理模块,第一处理模块中运行有第一操作系统,第二处理模块中运行有第二操作系统;
245.第一处理模块,用于在运行时实现上述任一应用于第一处理模块的媒体数据处理方法;
246.第二处理模块,用于在运行时实现上述任一应用于第二处理模块的媒体数据处理方法。
247.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于第一处理模块的媒体数据处理方法。
248.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于第二处理模块的媒体数据处理方法。
249.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
250.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
251.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描
述的比较简单,相关之处参见方法实施例的部分说明即可。
252.以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献