CN116016992A - 一种编码方法和装置 - Google Patents
一种编码方法和装置 Download PDFInfo
- Publication number
- CN116016992A CN116016992A CN202211735833.3A CN202211735833A CN116016992A CN 116016992 A CN116016992 A CN 116016992A CN 202211735833 A CN202211735833 A CN 202211735833A CN 116016992 A CN116016992 A CN 116016992A
- Authority
- CN
- China
- Prior art keywords
- encoding
- multimedia data
- determining
- coding
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种编码方法和装置,所述方法包括:获得待编码的多媒体数据;基于多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对多媒体数据执行编码操作,其中,不同编码策略下执行编码操作的目标硬件部件不同,目标硬件部件是电子设备中能够执行编码操作的部件。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种编码方法和装置。
背景技术
目前可利用电子设备中的CPU(处理器)或DGPU(独立显卡)对多媒体数据进行编码。利用CPU进行编码,编码效率较低且对系统资源占用较大。而目前并未基于多媒体数据确定编码策略,从而确定利用哪种硬件对多媒体数据进行编码,不够智能。且也未利用其他部分硬件如IGPU(核心显卡)等,造成了硬件资源的浪费。
发明内容
本申请提供一种编码方法和装置。
为此,本申请实施例一方面提供一种编码方法,所述方法包括:
获得待编码的多媒体数据;
基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,其中,不同编码策略下执行所述编码操作的目标硬件部件不同,所述目标硬件部件是电子设备中能够执行编码操作的部件。
其中,基于所述多媒体数据的属性信息确定对应的编码策略,包括以下至少之一:
基于所述多媒体数据的属性信息对编码任务进行评价,基于评价结果确定对应的编码策略,其中,所述编码任务是响应于获得所述待编码的多媒体数据生成的任务;
获得电子设备的任务负载信息,基于所述任务负载信息和所述属性信息确定对应的编码策略;
获得所述多媒体数据的使用信息,基于所述使用信息和所述属性信息确定对应的编码策略;
获得电子设备的硬件配置信息,基于所述硬件配置信息和所述属性信息确定对应的编码策略。
其中,基于评价结果确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
如果所述多媒体数据为音频数据,基于所述音频数据的第一属性参数所处的阈值范围对所述编码任务进行评价,得到第一评价结果,基于所述第一评价结果确定以电子设备的第一目标硬件部件执行所述编码操作;
如果所述多媒体数据为视频数据,基于所述视频数据的第二属性参数和第三属性参数所处的阈值范围对所述编码任务进行评价,得到第二评价结果,基于所述第二评价结果确定以电子设备的第二目标硬件部件执行所述编码操作。
其中,基于所述任务负载信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第三评价结果,基于所述任务负载信息确定电子设备各硬件部件的当前使用情况,基于所述第三评价结果和所述当前使用情况确定以电子设备的第三目标硬件部件执行所述编码操作;
基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第四评价结果,基于所述任务负载信息确定电子设备各硬件部件在第一目标时长后的预计使用情况,基于所述第四评价结果和所述预计使用情况确定以电子设备的第四目标硬件部件执行所述编码操作;
基于所述任务负载信息确定电子设备能够执行编码操作的各硬件部件的使用情况,基于所述属性信息确定所述各硬件部件的匹配优先级,基于所述使用情况及所述匹配优先级确定以电子设备的第五目标硬件部件执行所述编码操作。
其中,基于所述使用信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
如果所述使用信息表征目标多媒体数据的使用用途,确定所述使用用途对应的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第一差异,基于所述第一差异确定以电子设备的第六目标硬件部件执行所述编码操作;
如果所述使用信息表征目标多媒体数据的使用场景,确定所述使用场景所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第二差异,基于所述第二差异确定以电子设备的第六目标硬件部件执行所述编码操作;
如果所述使用信息表征目标多媒体数据的使用对象,确定所述使用对象所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第三差异,基于所述第三差异确定以电子设备的第六目标硬件部件执行所述编码操作。
其中,基于所述硬件配置信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
基于所述硬件配置信息确定电子设备的各硬件部件的编码能力,至少基于所述属性信息确定待编码的多媒体数据的格式转换信息,基于所述编码能力与所述格式转换信息确定以电子设备的第七目标硬件部件执行所述编码操作;
如果所述硬件配置信息表征所述电子设备配置的各硬件部件不唯一,基于所述各硬件部件的编码能力和所述属性信息确定以电子设备的多个第八目标硬件部件执行所述编码操作。
其中,基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
基于目标参考信息和所述属性信息对所述多媒体数据进行分片或分段处理,基于得到的每一多媒体数据片段确定对应的编码策略,以基于确定的编码策略通过电子设备的多个目标硬件部件同步或异步执行所述编码操作;
如果获得多路待编码的多媒体数据,基于各路多媒体数据的属性信息确定对应的编码策略,以确定的编码策略通过电子设备的多个目标硬件部件对所述多路多媒体数据同步或异步执行所述编码操作。
其中,以确定的编码策略对所述多媒体数据执行编码操作,包括:
确定所述编码策略依赖的目标硬件部件,基于所述目标硬件部件对应的目标接口或编码程序控制所述目标硬件部件响应用于执行所述编码操作的调度指令;以及,
通过所述目标接口或程序代码将编码后得到的目标多媒体数据输出至目标节点。
其中,还包括:
响应于获得电子设备的执行环境参考信息,基于所述执行环境参考信息调整所述编码策略,其中,所述执行环境参考信息包括以下至少之一:电子设备的任务状态更新信息、来自目标多媒体数据接收端的请求信息、电子设备所在多设备协同系统变化信息。
本申请实施例另一方面提供一种编码装置,所述装置包括:
通信模块,用于获得待编码的多媒体数据;
处理模块,用于基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,其中,不同编码策略下执行所述编码操作的目标硬件部件不同,所述目标硬件部件是电子设备中能够执行编码操作的部件。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一项所述的方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述任一项所述的方法。
根据本申请的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述任一项所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
在上述的方案中,基于多媒体数据的属性信息确定对应的编码策略,不同编码策略下对多媒体数据执行编码操作的硬件部件不同。因此,可基于多媒体数据的属性信息,如分辨率、帧率、码率、多媒体数据类型等,可以充分考虑多媒体数据的数据大小、类型等,智能选择对多媒体数据执行编码操作的硬件部件。提高了编码的智能性。且针对电子设备中能够执行编码操作的部件,均有对应的编码策略,因此,提高了电子设备中的硬件资源的利用率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了根据本申请的一个实施例的编码方法的流程图;
图2示出了根据本申请的另一个实施例的编码方法的示意图;
图3示出了根据本申请的另一个实施例的编码方法的流程图;
图4示出了根据本申请的另一个实施例的编码方法的流程图;
图5示出了根据本申请的另一个实施例的电子设备的结构示意图;
图6示出了根据本申请的一个实施例的编码装置的结构示意图。
具体实施方式
为使本申请的目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高编码的智能性和电子设备中的硬件资源的利用率,本申请一实施例提供了一种编码方法,如图1所示,该方法包括:
步骤101,获得待编码的多媒体数据。
多媒体数据可以是音频、图像、视频等。
步骤102,基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,其中,不同编码策略下执行所述编码操作的目标硬件部件不同,所述目标硬件部件是电子设备中能够执行编码操作的部件。
属性信息可以是分辨率、帧率、码率、采样率、多媒体数据类型等。目标硬件部件可以是CPU(处理器)、DGPU(独立显卡)、IGPU(核心显卡)等电子设备中能够执行编码操作的部件。
例如,获取到视频数据,基于该视频数据的分辨率和帧率确定该视频数据的编码策略为利用DGPU进行编码,则将该视频数据发送给DGPU执行编码操作。
再例如,获取到图像数据,基于该图像数据的分辨率确定该图像数据的编码策略为利用IGPU进行编码,则将该图像数据发送给IGPU执行编码操作。
在上述方案中,基于多媒体数据的属性信息确定对应的编码策略,不同编码策略下对多媒体数据执行编码操作的硬件部件不同。因此,可基于多媒体数据的属性信息,如分辨率、帧率、码率、多媒体数据类型等,可以充分考虑多媒体数据的数据大小、类型等,智能选择对多媒体数据执行编码操作的硬件部件。提高了编码的智能性。且针对电子设备中能够执行编码操作的部件,均有对应的编码策略,因此,提高了电子设备中的硬件资源的利用率。
在一个示例中,基于所述多媒体数据的属性信息确定对应的编码策略,可通过以下至少一种方式实现:
方式一:基于所述多媒体数据的属性信息对编码任务进行评价,基于评价结果确定对应的编码策略,其中,所述编码任务是响应于获得所述待编码的多媒体数据生成的任务。
方式二:获取目标参考信息,基于所述目标参考信息和所述属性信息确定对应的编码策略。
属性信息可以是分辨率、帧率、码率、采样率、多媒体数据类型等。基于多媒体数据的属性信息对编码任务进行评价,得到评价结果。再基于评价结果确定对应的编码策略。
例如,某个视频数据的码率为1952kbps,时长为2分钟。则基于该视频数据的这两个属性信息计算出该视频数据的大小为28.6M。将该视频数据的大小与预设大小进行对比,确定该视频数据的大小小于等于预设大小。则确定该视频数据的评价结果为任务量较小,基于该评价结果确定对应的编码策略为利用CPU执行该视频数据的编码任务。
目标参考信息可以包括电子设备的任务负载信息、硬件配置信息、多媒体数据的使用信息中的至少一种。
在一个示例中,获取目标参考信息,基于所述目标参考信息和所述属性信息确定对应的编码策略,可通过以下至少一种方式实现:
方式一:获得电子设备的任务负载信息,基于所述任务负载信息和所述属性信息确定对应的编码策略。
方式二:获得所述多媒体数据的使用信息,基于所述使用信息和所述属性信息确定对应的编码策略。
方式三:获得电子设备的硬件配置信息,基于所述硬件配置信息和所述属性信息确定对应的编码策略。
电子设备的任务负载信息可以包括任务量大小、任务的紧急程度、完成任务所需时长(任务的时限性或者延时编码)、任务优先级等,基于任务负载信息和属性信息确定对应的编码策略,可以充分考虑任务压力大小、对任务的时效控制等,以提高编码的智能性。
例如,获取某个视频数据对应任务的任务负载信息,其中包括任务量大小为60.5M、任务紧急程度为3级、优先级为最高优先级,任务量大小超过预设大小,任务紧急程度超过预设等级,优先级超过预设优先级,三项数据均超过预设数值,则可以确定编码策略为利用DGPU执行编码任务。
再例如,获取某个视频数据对应任务的任务负载信息,其中包括任务量大小为35.8M、任务程度为3级、优先级为最高优先级,任务量大小未超过预设大小,任务紧急程度超过预设等级,优先级超过预设优先级,三项数据中有两项超过预设数值,则可以确定编码策略为利用IGPU执行编码任务。
在其他实施方式中,电子设备的任务负载信息还可以包括用电负载和散热的数据,电子设备的用电负载和散热会影响CPU的性能,因此,在确认编码策略时考虑用电负载和散热的数据,能够充分考虑CPU的当前性能,以提高编码的智能性。
例如,用电负载和/或硬件温度较高(即散热不好),则可以确定编码策略为利用DGPU或IGPU执行编码任务。
再例如,用电负载和硬件温度不高,则可以确定编码策略为利用CPU执行编码任务。
多媒体数据的使用信息可以包括使用用途信息(如该多媒体数据是用作预览还是用作输出展示)、使用场景信息(如产品展示场景、娱乐场景等)、使用对象信息(如内部测试人员、不同的用户等)。
多媒体数据的使用用途不同,对多媒体数据的输出参数的要求不同。
例如,某个视频数据用作预览时,要求输出视频的宽高比为4:3,确定任务压力为低。则可以确定编码策略为利用CPU或IGPU执行编码任务,而此时获取的CPU的当前负载和IGPU的当前使用情况,CPU负载较高而IGPU当前有空闲的编码单元,因此,最终确定编码策略为利用IGPU执行编码任务。
再例如,某个视频数据用作输出展示时,要求输出视频的宽高比为16:9,确定任务压力为高。则可以确定编码策略为利用DGPU执行编码任务。
多媒体数据的使用场景不同,对多媒体数据的输出参数的要求也不同。
例如,某个视频数据用于产品展示场景时,要求输出视频的清晰度为1080P,且延迟要求不能超过200ms,确定时限要求和任务压力均为高,则可以确定编码策略为利用DGPU执行编码任务。
再例如,某个视频数据用于娱乐场景时,要求输出视频的清晰度为480P,但延迟要求不能超过50ms,确定时限要求为高但任务压力为低,则可以确定编码策略为利用IGPU执行编码任务。
多媒体数据的使用对象不同,对多媒体数据的输出参数的要求也不同。
例如,当内部测试人员使用时,对多媒体数据的时效性要求不高,输出参数则需要基于内部测试人员的要求而改变,则可以基于内部测试人员的要求来确定编码策略利用哪种硬件部件执行编码任务。
再例如,而当不同的用户使用时,对多媒体数据的时效性要求较高,输出参数也需要基于不同用户的要求而改变,则可以确定编码策略为利用DGPU或IGPU来执行编码任务,而此时获取的DGPU和IGPU的当前使用情况,DGPU当前没有空闲的编码单元,而IGPU当前有空闲的编码单元,因此,最终确定编码策略为利用IGPU执行编码任务。
因此,基于多媒体数据的使用信息来确定对应的编码策略,可以充分考虑使用用途、使用场景和/或使用对象的需求,以提高编码的智能性。
电子设备的硬件配置信息可以包括电子设备是否有多个DGPU和/或多个IGPU、电子设备中各个CPU的编码能力、GDPU的编码能力、IGPU的编码能力、GDPU支持的编码格式、IGPU支持的编码格式、GDPU和IGPU是否有空闲的编码单元。
基于多媒体数据的属性信息,将编码任务分发给支持该编码任务的编码格式且有空闲的编码单元的硬件执行。可以避免将编码任务分发给不支持该编码任务的编码格式或正在执行编码任务的编码单元已满的硬件,从而造成编码失败,影响编码任务的时效性。进而提高编码的稳定性和时效性。
将性能要求较高的编码任务分发给编码能力较高的硬件执行。可以避免将性能要求较高的编码任务分发给编码能力较低的硬件执行,从而造成编码效果不好,影响用户使用。进而提高编码的效果。
还可以基于电子设备的任务负载信息、多媒体数据的使用信息和电子设备的硬件配置信息,结合属性信息来确定对应的编码策略。
例如,获取电子设备的任务负载信息和多媒体数据的使用信息,基于电子设备的任务负载信息、多媒体数据的使用信息和属性信息确定对应的编码策略。
再例如,获取电子设备的硬件配置信息和多媒体数据的使用信息,基于电子设备的硬件配置信息、多媒体数据的使用信息和属性信息确定对应的编码策略。
在一示例中,基于评价结果确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,可通过以下至少一种方式实现:
方式一:如果所述多媒体数据为音频数据,基于所述音频数据的第一属性参数所处的阈值范围对所述编码任务进行评价,得到第一评价结果,基于所述第一评价结果确定以电子设备的第一目标硬件部件执行所述编码操作。
方式二:如果所述多媒体数据为视频数据,基于所述视频数据的第二属性参数所处的阈值范围对所述编码任务进行评价,得到第二评价结果,基于所述第二评价结果确定以电子设备的第二目标硬件部件执行所述编码操作。
多媒体数据为音频数据时,则第一属性参数可以包括音频数据的采样率、音频时长、音频频率、声道数、量化位中的至少一种。根据第一属性参数确定出的第一评价结果可以表征该音频数据对应编码任务的任务量大小。第一评价结果可以通过与预设数值进行对比、与多个范围进行匹配等方式来确定第一目标硬件部件。第一目标硬件部件可以包括CPU、DGPU、IGPU、DSP中的其中之一。
例如,获取音频数据的采样率、音频时长、音频频率、声道、量化位,该音频数据的采样率为1000hz,时长为3分钟,频率为44.1KHz,声道为双声道,量化位为16位量化位,该音频数据的任务量大小为31752000bt,确定第一评价结果为该音频数据的任务量较大,则确定第一目标硬件部件可以为IGPU或DGPU。
多媒体数据为视频数据时,则第二属性参数可以包括视频数据的分辨率、帧率、视频时长、色彩位数、码率中的至少一种。根据第二属性参数确定出的第二评价结果可以表征该视频数据对应编码任务的任务量大小。第二评价结果可以通过与预设数值进行对比、与多个范围进行匹配等方式来确定第二目标硬件部件。第二目标硬件部件可以包括CPU、DGPU、IGPU中的其中之一。
例如,获取视频数据的码率,该视频数据的码率大于100Mbps,确定第二评价结果为该视频数据的任务量较大,则确定第二目标硬件部件可以为IGPU或DGPU。
在一示例中,基于所述任务负载信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,可通过以下至少一种方式实现:
方式一:基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第三评价结果,基于所述任务负载信息确定电子设备各硬件部件的当前使用情况,基于所述第三评价结果和所述当前使用情况确定以电子设备的第三目标硬件部件执行所述编码操作。
方式二:基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第四评价结果,基于所述任务负载信息确定电子设备各硬件部件在第一目标时长后的预计使用情况,基于所述第四评价结果和所述预计使用情况确定以电子设备的第四目标硬件部件执行所述编码操作。
方式三:基于所述任务负载信息确定电子设备能够执行编码操作的各硬件部件的使用情况,基于所述属性信息确定所述各硬件部件的匹配优先级,基于所述使用情况及所述匹配优先级确定以电子设备的第五目标硬件部件执行所述编码操作。
多媒体数据的对应属性参数可以是音频的采样率、音频时长、音频频率、声道、量化位,视频的分辨率、帧率、视频时长、色彩位数、码率等。电子设备各硬件部件的当前使用情况可以是各个硬件部件的空闲编码单元数量和CPU的负载。基于多媒体数据的对应属性参数所处的阈值范围确定编码任务的第三评价结果,基于第三评价结果和当前使用情况确定第三目标硬件部件。
例如,获取视频数据的码率,该视频数据的码率为200Mbps,大于100Mbps,则确定第三评价结果为该视频数据的任务量较大。基于任务负载信息确定电子设备各硬件部件的当前使用情况为DGPU没有空闲的编码单元,IGPU还有空闲的编码单元,则确定第三目标硬件部件可以是IGPU。
第一目标时长可以是设备完成至少一项当前任务的预计时长,也可以是需要编码任务在多长时间内完成的期望时长,而当将期望时长作为第一目标时长时,还可以是待编码的音频数据或视频数据的时长等。预计使用情况可以是第一目标时长后电子设备各个硬件部件的空闲编码单元数量和CPU的负载。
例如,获取视频数据的码率,该视频数据的码率为200Mbps,大于100Mbps,则确定第三评价结果为该视频数据的任务量较大。而第一目标时长为2分钟,基于任务负载信息确定电子设备在2分钟后,DGPU有空闲的编码单元,则确定第四目标硬件部件可以是DGPU。
电子设备能够执行编码操作的各硬件部件的使用情况包括当前使用情况和预计使用情况,也就是各个硬件部件当前的空闲编码单元数量和CPU的负载,各个硬件部件第一目标时长后的空闲编码单元数量和CPU的负载。基于各个硬件部件支持的编码格式确定匹配优先级,还可以基于多媒体数据的原始格式、希望编码后转换的格式、转换效率、转换质量等来确定匹配优先级。
可以直接基于匹配优先级来确定第五目标硬件部件。
例如,对于当前的编码任务,基于编码任务的多媒体数据的属性信息确定电子设备中的DGPU与该编码任务的匹配优先级为高,IGPU与该编码任务的匹配优先级为较高,CPU的匹配优先级为低。则确定第五目标硬件部件为DGPU。
也可以基于各硬件部件的使用情况和匹配优先级来确定第五目标硬件部件。
例如,对于当前的编码任务,基于编码任务的多媒体数据的属性信息确定电子设备中的DGPU与该编码任务的匹配优先级为高,IGPU与该编码任务的匹配优先级为较高,CPU的匹配优先级为低。但DGPU、IGPU当前均没有空闲的编码单元,CPU的负载较低。因此,确定第五目标硬件部件为CPU。
在一示例中,基于所述使用信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,可通过以下至少一种方式实现:
方式一:如果所述使用信息表征目标多媒体数据的使用用途,确定所述使用用途对应的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第一差异,基于所述第一差异确定以电子设备的第六目标硬件部件执行所述编码操作。
方式二:如果所述使用信息表征目标多媒体数据的使用场景,确定所述使用场景所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第二差异,基于所述第二差异确定以电子设备的第六目标硬件部件执行所述编码操作。
方式三:如果所述使用信息表征目标多媒体数据的使用对象,确定所述使用对象所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第三差异,基于所述第三差异确定以电子设备的第六目标硬件部件执行所述编码操作。
目标输出参数可以包括分辨率、输出格式、帧率等。
可以基于多媒体数据的使用用途、使用场景、使用对象中的至少一种来确定目标输出参数。并基于目标输出参数与多媒体数据的原始输出参数的差异。最后基于差异确定第六目标硬件部件。
例如,视频会议中需要对视频数据进行编码,该视频数据的使用场景为会议,会议场景对视频数据的时效性和性能要求均较高,则确定出的目标输出参数较高,与多媒体数据的原始输出参数的差异较大。因此,确定第六目标硬件部件为DGPU,以满足对该视频数据编码的时效性和性能要求。
在一示例中,基于所述硬件配置信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,可通过以下至少一种方式实现:
方式一:基于所述硬件配置信息确定电子设备的各硬件部件的编码能力,至少基于所述属性信息确定待编码的多媒体数据的格式转换信息,基于所述编码能力与所述格式转换信息确定以电子设备的第七目标硬件部件执行所述编码操作。
方式二:如果所述硬件配置信息表征所述电子设备配置的各硬件部件不唯一,基于所述各硬件部件的编码能力和所述属性信息确定以电子设备的多个第八目标硬件部件执行所述编码操作。
各硬件部件的的编码能力可以包括各硬件部件的编码速率和支持的转码格式等。格式转换信息可以是原始格式到目标格式的转换需求。将支持从编码任务的原始格式转换为目标格式的硬件部件确定为第七目标硬件部件。
当电子设备配置的各硬件部件不唯一时,也就是存在多个硬件部件时,可以将多个硬件部件均确定为第八目标硬件部件。
例如,电子设备中配置有多个DGPU、多个CPU和多个IGPU,而某个编码任务确定的第八目标硬件部件为DGPU,则将多个DGPU均确定为第八目标硬件部件,并利用这些第八目标硬件部件共同执行编码任务。
再例如,电子设备中配置有多个DGPU、多个CPU和多个IGPU,而某个编码任务确定的第八目标硬件部件为IGPU,则将多个IGPU均确定为第八目标硬件部件,并利用这些第八目标硬件部件共同执行编码任务。
在一示例中,基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,可通过以下至少一种方式实现:
方式一:基于目标参考信息和所述属性信息对所述多媒体数据进行分片或分段处理,基于得到的每一多媒体数据片段确定对应的编码策略,以基于确定的编码策略通过电子设备的多个目标硬件部件同步或异步执行所述编码操作。
方式二:如果获得多路待编码的多媒体数据,基于各路多媒体数据的属性信息确定对应的编码策略,以确定的编码策略通过电子设备的多个目标硬件部件对所述多路多媒体数据同步或异步执行所述编码操作。
如果多媒体数据的任务量较大且任务时限紧急,还可以基于目标参考信息和属性信息对该多媒体数据进行分片或分段处理。再基于得到的每一多媒体数据片段确定对应的编码策略,以基于确定的编码策略通过电子设备的多个目标硬件部件同步或异步执行编码任务。
例如,某个视频数据的任务量较大且任务时限紧急,则将该视频数据分为3份视频数据片段,该3份视频数据片段对应的编码策略均为利用DGPU执行编码任务,而电子设备正好配置了3个DGPU,则利用这3个DGPU异步执行该3个视频数据片段的编码任务。
再例如,某个视频数据的任务量较大且任务时限紧急,则将该视频数据分为3份视频数据片段,该3份视频数据片段对应的编码策略均为利用DGPU执行编码任务,而电子设备只配置了1个DGPU,则利用这1个DGPU同步执行该3个视频数据片段的编码任务。
同理可得,如果同时获得多路待编码的多媒体数据,也可以基于各路多媒体数据的属性信息确定对应的编码策略,以确定的编码策略通过电子设备的多个目标硬件部件对多路多媒体数据同步或异步执行所述编码操作。
而如果获得的多路待编码的多媒体数据中,某一路待编码的多媒体数据的任务量较大且任务时限紧急,也可以将该路待编码的多媒体数据进行分片或分段处理。再确定每一多媒体数据片段对应的编码策略和其他多路多媒体数据的对应的编码策略。基于确定的编码策略通过电子设备的多个目标硬件部件同步或异步执行编码任务。
在一示例中,以确定的编码策略对所述多媒体数据执行编码操作,包括:
确定所述编码策略依赖的目标硬件部件,基于所述目标硬件部件对应的目标接口或编码程序控制所述目标硬件部件响应用于执行所述编码操作的调度指令;以及,
通过所述目标接口或程序代码将编码后得到的目标多媒体数据输出至目标节点。
其中,目标接口可以是API(应用程序编程接口,Application ProgrammingInterface)接口或encode(编码)代码。目标节点可以是WebRTC(网页实时通信技术,WebReal-Time Communications)节点。
如图5所示,在一实施例中,电子设备可通过智能编码引擎向NvidiaAPI(在本实施例中为DGPU接口)发送指令,控制DGPU中的NVENC编码单元(在本实施例中为DGPU中的编码单元)响应用于执行执行编码操作的调度指令。或,AMDAPI(在本实施例中为IGPU接口)发送指令,控制IGPU中的Radeon编码单元(在本实施例中为IGPU中的编码单元)响应用于执行执行编码操作的调度指令。或,执行SWencode(编码程序)来控制CPU响应用于执行执行编码操作的调度指令。并在目标硬件部件完成编码后,将通过目标接口或程序代码将编码后得到的目标多媒体数据输出至WebRTC节点(即目标节点)。
在一示例中,方法还包括:
响应于获得电子设备的执行环境参考信息,基于所述执行环境参考信息调整所述编码策略,其中,所述执行环境参考信息包括以下至少之一:电子设备的任务状态更新信息、来自目标多媒体数据接收端的请求信息、电子设备所在多设备协同系统变化信息。
其中,电子设备的任务状态更新信息可以包括编码或其他任务占用各个硬件部件的信息(如任务完成、任务暂停或任务取消等)。来自目标多媒体数据接收端的请求信息可以包括显示画面的反馈或者接收端的回传信息。电子设备所在多设备协同系统变化信息可以包括分布式系统或算力共享系统中的变化信息。
例如,某个视频数据基于电子设备中的DGPU没有空闲的编码单元,而确定对应的编码策略为利用IGPU进行编码,此时,接收到电子设备中DGPU中某项编码任务的任务完成信息,则DGPU有空闲的编码单元。那么将该视频数据的编码策略调整为利用DGPU进行编码。
再例如,某个视频数据对应的编码策略为利用CPU进行编码,此时,接收到显示画面的反馈为画面不够清晰。那么将该视频数据的编码策略调整为利用DGPU或IGPU进行编码,以提高输出画面的清晰度。
再例如,某个视频数据基于电子设备中的DGPU没有空闲的编码单元,而确定对应的编码策略为利用IGPU进行编码,此时,接收到该电子设备所处分布式系统中其他电子设备中的DGPU有空闲的编码单元。那么将该视频数据的编码策略调整为利用DGPU进行编码。
结合电子设备的任务状态更新信息、来自目标多媒体数据接收端的请求信息、电子设备所在多设备协同系统变化信息对多媒体数据的编码策略进行调整,进一步提高了编码的智能性。
如图3所示,下面提供一个结合具体场景的实施例来进行说明:
步骤201,获取待编码的视频数据。
步骤202,获取所述视频数据的分辨率、帧率、视频时长、色彩位数。
步骤203,基于所述视频数据的分辨率、帧率、视频时长、色彩位数确定编码任务的评价结果。
步骤204,确定所述编码任务的评价结果为任务压力高,则确定编码策略为利用DGPU执行编码操作。
步骤205,确定所述编码任务的评价结果为任务压力低,则确定编码策略为利用IGPU或CPU执行编码操作。
步骤206,获取编码任务的紧急程度和任务优先级。
步骤207,确定编码任务的紧急程度和任务优先级均超过预设阈值,则确定编码策略为利用DGPU执行编码操作。
步骤208,确定编码任务的紧急程度或任务优先级超过预设阈值,则确定编码策略为利用IGPU执行编码操作。
步骤209,确定编码任务的紧急程度和任务优先级均未超过预设阈值,则确定编码策略为利用CPU执行编码操作。
步骤210,获取视频数据的使用用途信息、使用场景信息和使用对象信息。
步骤211,基于视频数据的使用用途信息、使用场景信息确定所述视频数据的宽高比、清晰度。
步骤212,确定所述视频数据的宽高比超过预设比例且清晰度超过预设阈值,则确定编码策略为利用DGPU执行编码操作。
步骤213,确定所述视频数据的宽高未超过预设比例且清晰度未超过预设阈值,则确定编码策略为利用CPU执行编码操作。
步骤214,确定所述视频数据的宽高比超过预设比例或清晰度超过预设阈值,则基于使用对象信息确定编码策略。
步骤215,确定使用对象信息为用户,则确定编码策略为利用IGPU执行编码操作。
步骤216,确定使用对象信息为内部测试人员,则确定编码策略为利用CPU执行编码操作。
步骤217,获取电子设备各DGPU的编码能力、各IGPU的编码能力、各CPU的编码能力、各DGPU支持的编码格式、各IGPU支持的编码格式。
步骤218,基于多媒体数据的属性信息确定编码任务的任务压力。
步骤219,确定编码任务的任务压力超过IGPU和CPU的编码能力且DGPU支持所述编码任务的编码格式,则确定编码策略为利用DGPU执行编码操作。
步骤220,确定编码任务的任务压力未超过CPU的编码能力,则确定编码策略为利用CPU执行编码操作。
步骤221,确定编码任务的任务压力超过CPU的编码能力,则基于DGPU和IGPU支持的编码格式确定编码策略。
步骤222,确定DGPU支持编码任务的编码格式,而IGPU不支持,则确定编码策略为利用DGPU执行编码操作。
步骤223,确定IGPU支持编码任务的编码格式,而DGPU不支持,则确定编码策略为利用IGPU执行编码操作。
步骤224,确定多个编码策略中存在利用DGPU执行编码操作的编码策略,则确定编码策略为利用DGPU执行编码操作。
步骤225,确定多个编码策略中不存在利用DGPU执行编码操作的编码策略,但存在利用IGPU执行编码操作的编码策略,则确定编码策略为利用IGPU执行编码操作。
步骤226,确定多个编码策略中均不存在利用DGPU执行编码操作和利用IGPU执行编码操作的编码策略,则确定编码策略为利用CPU执行编码操作。
如图4所示,下面通过一个结合具体场景的实施例来进行说明:
步骤301,获取待编码的视频数据。
步骤302,获取所述视频数据的码率。
步骤303,确定所述视频数据的码率大于预设码率,则确定第三评价结果为任务压力为高。
步骤304,确定所述视频数据的码率小于等于预设码率,则获取所述视频数据的分辨率和帧率。
步骤305,确定所述帧率大于预设帧率且分辨率大于预设第一分辨率,则确定第三评价结果为任务压力为高;或,确定所述帧率小于等于预设帧率且分辨率大于预设第二分辨率,则确定第三评价结果为任务压力为高。
步骤306,确定所述帧率大于预设帧率且分辨率小于等于预设第一分辨率,则确定第三评价结果为任务压力为低;或,确定所述视频流的帧率小于等于预设帧率且分辨率小于等于预设第二分辨率,则确定第三评价结果为任务压力为低。
步骤307,基于任务负载信息确定电子设备各硬件部件的当前使用情况,并获取电子设备的任务负载信息,所述任务负载信息包含各硬件部件的负载。
如图5所示,该电子设备只配置了单个CPU、单个DGPU和单个IGPU。DGPU为Navidia独显,NVENC编码单元为DGPU的编码单元。IGPU为AMD核显,Radeon编码单元为IGPU的编码单元。CPU中包含通用计算单元,用于执行编码任务。获取DGPU和IGPU的当前使用情况,CPU、DGPU和IGPU的负载。
步骤308,确定第三评价结果为任务压力为高、DGPU负载小于等于预设DGPU负载且DGPU当前有空闲的编码单元,则确定第三目标硬件部件为DGPU,并以电子设备的第三目标硬件部件执行所述编码操作。
步骤309,确定第三评价结果为任务压力为高且DGPU负载小于等于预设DGPU负载,但DGPU当前没有空闲的编码单元而IGPU当前有空闲的编码单元,则确定第三目标硬件部件为IGPU,并以电子设备的第三目标硬件部件执行所述编码操作。
步骤310,确定第三评价结果为任务压力为高,但DGPU负载大于预设DGPU负载,则确定第三目标硬件部件为CPU,并以电子设备的第三目标硬件部件执行所述编码操作。
步骤311,确定第三评价结果为任务压力为低、CPU负载大于预设CPU负载且DGPU当前有空闲的编码单元,则确定第三目标硬件部件为DGPU,并以电子设备的第三目标硬件部件执行所述编码操作。
步骤312,确定第三评价结果为任务压力为低且CPU负载大于预设CPU负载,但DGPU当前没有空闲的编码单元而IGPU当前有空闲的编码单元,则确定第三目标硬件部件为IGPU,并以电子设备的第三目标硬件部件执行所述编码操作。
步骤313,确定第三评价结果为任务压力为低,但CPU负载小于等于预设CPU负载,则确定第三目标硬件部件为CPU,并以电子设备的第三目标硬件部件执行所述编码操作。
为了实现上述的编码方法,如图6所示,本申请一示例来提供了一种编码装置,包括:
通信模块10,用于获得待编码的多媒体数据;
处理模块20,用于基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,其中,不同编码策略下执行所述编码操作的目标硬件部件不同,所述目标硬件部件是电子设备中能够执行编码操作的部件。
其中,所述处理模块20,还用于基于所述多媒体数据的属性信息对编码任务进行评价,基于评价结果确定对应的编码策略,其中,所述编码任务是响应于获得所述待编码的多媒体数据生成的任务;
所述处理模块20,还用于获得电子设备的任务负载信息,基于所述任务负载信息和所述属性信息确定对应的编码策略;
所述处理模块20,还用于获得所述多媒体数据的使用信息,基于所述使用信息和所述属性信息确定对应的编码策略;
所述处理模块20,还用于获得电子设备的硬件配置信息,基于所述硬件配置信息和所述属性信息确定对应的编码策略。
其中,还包括:
评价模块30,用于如果所述多媒体数据为音频数据,基于所述音频数据的第一属性参数所处的阈值范围对所述编码任务进行评价,得到第一评价结果,基于所述第一评价结果确定以电子设备的第一目标硬件部件执行所述编码操作;
所述评价模块30,还用于如果所述多媒体数据为视频数据,基于所述视频数据的第二属性参数所处的阈值范围对所述编码任务进行评价,得到第二评价结果,基于所述第二评价结果确定以电子设备的第二目标硬件部件执行所述编码操作。
其中,所述评价模块30,还用于基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第三评价结果,基于所述任务负载信息确定电子设备各硬件部件的当前使用情况,基于所述第三评价结果和所述当前使用情况确定以电子设备的第三目标硬件部件执行所述编码操作;
所述评价模块30,还用于基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第四评价结果,基于所述任务负载信息确定电子设备各硬件部件在第一目标时长后的预计使用情况,基于所述第四评价结果和所述预计使用情况确定以电子设备的第四目标硬件部件执行所述编码操作;
所述评价模块30,还用于基于所述任务负载信息确定电子设备能够执行编码操作的各硬件部件的使用情况,基于所述属性信息确定所述各硬件部件的匹配优先级,基于所述使用情况及所述匹配优先级确定以电子设备的第五目标硬件部件执行所述编码操作。
其中,所述处理模块20,还用于如果所述使用信息表征目标多媒体数据的使用用途,确定所述使用用途对应的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第一差异,基于所述第一差异确定以电子设备的第六目标硬件部件执行所述编码操作;
所述处理模块20,还用于如果所述使用信息表征目标多媒体数据的使用场景,确定所述使用场景所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第二差异,基于所述第二差异确定以电子设备的第六目标硬件部件执行所述编码操作;
所述处理模块20,还用于如果所述使用信息表征目标多媒体数据的使用对象,确定所述使用对象所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第三差异,基于所述第三差异确定以电子设备的第六目标硬件部件执行所述编码操作。
其中,所述处理模块20,还用于基于所述硬件配置信息确定电子设备的各硬件部件的编码能力,至少基于所述属性信息确定待编码的多媒体数据的格式转换信息,基于所述编码能力与所述格式转换信息确定以电子设备的第七目标硬件部件执行所述编码操作;
所述处理模块20,还用于如果所述硬件配置信息表征所述电子设备配置的各硬件部件不唯一,基于所述各硬件部件的编码能力和所述属性信息确定以电子设备的多个第八目标硬件部件执行所述编码操作。
其中,所述处理模块20,还用于基于目标参考信息和所述属性信息对所述多媒体数据进行分片或分段处理,基于得到的每一多媒体数据片段确定对应的编码策略,以基于确定的编码策略通过电子设备的多个目标硬件部件同步或异步执行所述编码操作;
所述处理模块20,还用于如果获得多路待编码的多媒体数据,基于各路多媒体数据的属性信息确定对应的编码策略,以确定的编码策略通过电子设备的多个目标硬件部件对所述多路多媒体数据同步或异步执行所述编码操作。
其中,所述处理模块20,还用于确定所述编码策略依赖的目标硬件部件,基于所述目标硬件部件对应的目标接口或编码程序控制所述目标硬件部件响应用于执行所述编码操作的调度指令;以及,
所述通信模块10,还用于通过所述目标接口或程序代码将编码后得到的目标多媒体数据输出至目标节点。
其中,所述处理模块20,还用于响应于获得电子设备的执行环境参考信息,基于所述执行环境参考信息调整所述编码策略,其中,所述执行环境参考信息包括以下至少之一:电子设备的任务状态更新信息、来自目标多媒体数据接收端的请求信息、电子设备所在多设备协同系统变化信息。
在上述的方案中,基于多媒体数据的属性信息确定对应的编码策略,不同编码策略下对多媒体数据执行编码操作的硬件部件不同。因此,可基于多媒体数据的属性信息,如分辨率、帧率、码率、多媒体数据类型等,可以充分考虑多媒体数据的数据大小、类型等,智能选择对多媒体数据执行编码操作的硬件部件。提高了编码的智能性。且针对电子设备中能够执行编码操作的部件,均有对应的编码策略,因此,提高了电子设备中的硬件资源的利用率。
在一个示例中,本申请实施例还提供了一种移动终端,该移动终端包括至少一个存储器,以及与所述至少一个存储器通信连接的处理器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述图1至图5实施例中任一项所述的编码方法。
另外,本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述图1至图5实施例中任一项所述的编码方法流程。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种编码方法,包括:
获得待编码的多媒体数据;
基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,其中,不同编码策略下执行所述编码操作的目标硬件部件不同,所述目标硬件部件是电子设备中能够执行编码操作的部件。
2.根据权利要求1所述的方法,其中,基于所述多媒体数据的属性信息确定对应的编码策略,包括以下至少之一:
基于所述多媒体数据的属性信息对编码任务进行评价,基于评价结果确定对应的编码策略,其中,所述编码任务是响应于获得所述待编码的多媒体数据生成的任务;
获得电子设备的任务负载信息,基于所述任务负载信息和所述属性信息确定对应的编码策略;
获得所述多媒体数据的使用信息,基于所述使用信息和所述属性信息确定对应的编码策略;
获得电子设备的硬件配置信息,基于所述硬件配置信息和所述属性信息确定对应的编码策略。
3.根据权利要求2所述的方法,其中,基于评价结果确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
如果所述多媒体数据为音频数据,基于所述音频数据的第一属性参数所处的阈值范围对所述编码任务进行评价,得到第一评价结果,基于所述第一评价结果确定以电子设备的第一目标硬件部件执行所述编码操作;
如果所述多媒体数据为视频数据,基于所述视频数据的第二属性参数和第三属性参数所处的阈值范围对所述编码任务进行评价,得到第二评价结果,基于所述第二评价结果确定以电子设备的第二目标硬件部件执行所述编码操作。
4.根据权利要求2所述的方法,其中,基于所述任务负载信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第三评价结果,基于所述任务负载信息确定电子设备各硬件部件的当前使用情况,基于所述第三评价结果和所述当前使用情况确定以电子设备的第三目标硬件部件执行所述编码操作;
基于所述多媒体数据的对应属性参数所处的阈值范围对所述编码任务进行评价,得到第四评价结果,基于所述任务负载信息确定电子设备各硬件部件在第一目标时长后的预计使用情况,基于所述第四评价结果和所述预计使用情况确定以电子设备的第四目标硬件部件执行所述编码操作;
基于所述任务负载信息确定电子设备能够执行编码操作的各硬件部件的使用情况,基于所述属性信息确定所述各硬件部件的匹配优先级,基于所述使用情况及所述匹配优先级确定以电子设备的第五目标硬件部件执行所述编码操作。
5.根据权利要求2所述的方法,其中,基于所述使用信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
如果所述使用信息表征目标多媒体数据的使用用途,确定所述使用用途对应的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第一差异,基于所述第一差异确定以电子设备的第六目标硬件部件执行所述编码操作;
如果所述使用信息表征目标多媒体数据的使用场景,确定所述使用场景所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第二差异,基于所述第二差异确定以电子设备的第六目标硬件部件执行所述编码操作;
如果所述使用信息表征目标多媒体数据的使用对象,确定所述使用对象所需的目标多媒体数据的目标输出参数与所述属性信息包括的待编码的多媒体数据的原始输出参数之间的第三差异,基于所述第三差异确定以电子设备的第六目标硬件部件执行所述编码操作。
6.根据权利要求2所述的方法,其中,基于所述硬件配置信息和所述属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
基于所述硬件配置信息确定电子设备的各硬件部件的编码能力,至少基于所述属性信息确定待编码的多媒体数据的格式转换信息,基于所述编码能力与所述格式转换信息确定以电子设备的第七目标硬件部件执行所述编码操作;
如果所述硬件配置信息表征所述电子设备配置的各硬件部件不唯一,基于所述各硬件部件的编码能力和所述属性信息确定以电子设备的多个第八目标硬件部件执行所述编码操作。
7.根据权利要求1所述的方法,其中,基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,包括以下至少之一:
基于目标参考信息和所述属性信息对所述多媒体数据进行分片或分段处理,基于得到的每一多媒体数据片段确定对应的编码策略,以基于确定的编码策略通过电子设备的多个目标硬件部件同步或异步执行所述编码操作;
如果获得多路待编码的多媒体数据,基于各路多媒体数据的属性信息确定对应的编码策略,以确定的编码策略通过电子设备的多个目标硬件部件对所述多路多媒体数据同步或异步执行所述编码操作。
8.根据权利要求1至7任一项所述的方法,其中,以确定的编码策略对所述多媒体数据执行编码操作,包括:
确定所述编码策略依赖的目标硬件部件,基于所述目标硬件部件对应的目标接口或编码程序控制所述目标硬件部件响应用于执行所述编码操作的调度指令;以及,
通过所述目标接口或程序代码将编码后得到的目标多媒体数据输出至目标节点。
9.根据权利要求8所述的方法,还包括:
响应于获得电子设备的执行环境参考信息,基于所述执行环境参考信息调整所述编码策略,其中,所述执行环境参考信息包括以下至少之一:电子设备的任务状态更新信息、来自目标多媒体数据接收端的请求信息、电子设备所在多设备协同系统变化信息。
10.一种编码装置,包括:
通信模块,用于获得待编码的多媒体数据;
处理模块,用于基于所述多媒体数据的属性信息确定对应的编码策略,以确定的编码策略对所述多媒体数据执行编码操作,其中,不同编码策略下执行所述编码操作的目标硬件部件不同,所述目标硬件部件是电子设备中能够执行编码操作的部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735833.3A CN116016992A (zh) | 2022-12-30 | 2022-12-30 | 一种编码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211735833.3A CN116016992A (zh) | 2022-12-30 | 2022-12-30 | 一种编码方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016992A true CN116016992A (zh) | 2023-04-25 |
Family
ID=86029805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211735833.3A Pending CN116016992A (zh) | 2022-12-30 | 2022-12-30 | 一种编码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016992A (zh) |
-
2022
- 2022-12-30 CN CN202211735833.3A patent/CN116016992A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2506715C2 (ru) | Передача изменяющегося визуального контента | |
US8510763B2 (en) | Changing streaming media quality level based on current device resource usage | |
KR20180031547A (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
CN108337127B (zh) | 应用性能监控方法、系统、终端及计算机可读存储介质 | |
CN112868265B (zh) | 网络资源的管理方法、管理装置、电子设备及存储介质 | |
US11949853B2 (en) | Data decoding method and apparatus, and data coding method and apparatus | |
EP2272237B1 (en) | Method of transmitting data in a communication system | |
WO2023174254A1 (zh) | 视频发布方法、装置、设备及存储介质 | |
US8620096B2 (en) | Virtualization server for presentation virtualization and image data encoding method | |
JP2022509191A (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN111970565A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
US8681860B2 (en) | Moving picture compression apparatus and method of controlling operation of same | |
CN111836092A (zh) | 一种虚拟桌面的数据处理方法、装置及相关组件 | |
CN110784731B (zh) | 一种数据流转码方法、装置、设备及介质 | |
CN116016992A (zh) | 一种编码方法和装置 | |
CN111614526A (zh) | 一种hinoc链路快速维护方法、装置、存储介质及终端 | |
CN110912922A (zh) | 一种图像传输方法、装置、电子设备及存储介质 | |
CN116980662A (zh) | 流媒体播放方法、装置、电子设备、存储介质及程序产品 | |
CN112675535B (zh) | 显示界面调整方法、装置、网络设备及存储介质 | |
CN111510715B (zh) | 视频处理方法、系统、计算机设备及存储介质 | |
CN114302180A (zh) | 视频单帧播放方法、设备、服务器、系统及存储介质 | |
CN114051144A (zh) | 视频的压缩方法、装置、计算机设备及存储介质 | |
CN110377258B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN112449209A (zh) | 视频存储方法、装置、云服务器及计算机可读存储介质 | |
CN115278308B (zh) | 媒体流处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |