媒体处理方式的选择方法及媒体处理方法与流程

文档序号:23552324发布日期:2021-01-05 21:11阅读:110来源:国知局
媒体处理方式的选择方法及媒体处理方法与流程

本发明属于云处理系统领域,尤其是一种媒体处理方式的选择方法及媒体处理方法。



背景技术:

随着视觉媒体的迅速发展,虚拟现实(virtualreality,vr),点云(pointcloud,pc)应用到越来越多的消费场景,例如游戏、比赛直播、医疗等。在这些场景中,往往要求具有较低的响应时延,这对数据的处理与传输时延提出了更高的要求。以全景视频为例,服务器需要收集多路相机流,然后通过拼接、渲染,将多路视频拼接成一个球形数据,然后供用户消费。其中拼接这一过程比较复杂,在本地处理器能力有限的情况下,往往会产生一定时延。在直播场景下,这种时延会对用户的体验会造成一定的影响。点云数据则是通过扫描或者电脑直接生成,一个简单的点云对象拥有几万甚至十几万的点,对这些点的几何及属性信息进行压缩十分耗时,难以达到实时的要求。针对以上存在的问题,现在的解决方案是将复杂的媒体处理过程放到云端,利用云端服务器强大的处理能力来加速数据的处理速度。mpeg专家组已针对媒体云处理建立networkbasedmediaprocessing(nbmp)工作组,就媒体云处理的一系列机制进行标准化研究。而目前针对沉浸式媒体处理的研究发展极为迅速,其中以深度学习为代表的方法表现出了较好的性能。通过训练学习网络,可以提高媒体处理效率。以点云压缩为例,南京大学提出使用基于三维卷积神经网络(3dcnn)的变分自编码器(vae)进行点云的几何压缩,达到了良好的压缩性能。

现实中,用户或其他第三方可能会针对媒体处理形成自己的解决方案,提供媒体处理方式或媒体处理函数,这些解决方案可以指导云系统中的服务器进行媒体处理。但目前的云系统没有允许用户上传媒体处理方式或者媒体处理函数的机制或者接口,如何使云系统采用用户或第三方形成的解决方案是本领域的一个难题。



技术实现要素:

本发明提供了一种媒体处理方式的选择方法及媒体处理方法,设计云系统与用户端或第三方的交互机制,实现云系统对用户端或第三方提供的媒体处理解决方案的收集和上传。

依据上述目的,实施本发明的一种媒体处理方式的选择方法,其特征在于,包括如下步骤:

步骤s1,根据媒体流的媒体处理描述,判断云系统上是否存在满足媒体处理描述的要求的媒体处理方式或媒体处理函数,如果是,执行步骤s2;否则,执行步骤s3;

步骤s2,从云系统中选取满足媒体处理描述的要求的媒体处理方式或媒体处理函数;

步骤s3,从云系统外部选取满足媒体处理描述的要求的媒体处理方式或媒体处理函数,并通过应用程序接口上传至云系统。

可选的,所述步骤s1包括如下步骤:

步骤s11,查找所有可用的媒体处理方式和/或媒体处理函数;

步骤s12,采用关键字匹配和/或确定优先级的方式,判断云系统上是否存在满足媒体处理描述的要求的媒体处理方式或媒体处理函数。

可选的,所述步骤s12中,当满足关键字匹配的媒体处理方式或媒体处理函数的个数≥2时,根据媒体处理描述的要求的需求指标与媒体处理方式或媒体处理函数对应的性能指标,确定各媒体处理方式或媒体处理函数的优先级。

可选的,所述步骤s2中,从云系统中选取唯一满足关键字匹配或优先级最高的媒体处理方式或媒体处理函数。

可选的,所述应用程序接口包含的信息如下表所示:

依据上述目的,实施本发明的一种媒体处理方法,其特征在于,包括如下步骤:

获取媒体流的媒体处理描述;

采用如权利要求前述的媒体处理方式的选择方法,选取媒体处理方式或媒体处理函数;

根据选取的媒体处理方式或媒体处理函数生成媒体处理任务;

根据所述媒体处理任务对媒体流进行处理。

采用了本发明的技术方案,针对现有技术的不足,通过在现有云系统中添加系统层应用程序接口的钩子程序(hookapi)或者函数库上传应用程序接口api的方式,可上传用户或第三方提供的媒体处理方式或媒体处理函数,实现基于用户端或第三方的个性化媒体处理。

附图说明

图1是:采用应用程序接口的钩子程序(hookapi)方案的云系统结构图;

图2是:采用函数库上传应用程序接口(api)方案的云系统结构图。

具体实施方式

下面结合附图和实施例进一步说明本发明的技术方案。本发明设计了云系统与用户端的交互机制,通过使用定义的应用程序接口(applicationprograminterface,api)收集用户个性化处理方法或者参数指导媒体处理;设计的应用程序接口(api)不仅适用于用户端上传与更新函数,还可满足任何第三方对函数库进行更新。

实施例一

如图1所示为本发明的云媒体处理系统(云系统)的结构。云系统的组成成分主要包括媒体源、用户端、管理器、处理实体和函数库。该云系统的媒体处理方式为:管理器首先从媒体源发送的媒体流中收集媒体处理描述,媒体处理描述可以是需要处理的媒体类型、处理函数调用方式等等,包含压缩、上采样、视频转码等信息。然后管理器根据媒体处理描述从函数库选取可满足要求的具体媒体处理方式或媒体处理函数,例如媒体处理方式可以为h.264视频编码方式,其主要组成部分包括访问单元符分隔、附加增强信息、基本图像编码、冗余图像编码、及时解码刷新、假想参考解码、假象码流调度器等函数模块。管理器通过这些具体的媒体处理方式或者媒体处理函数生成具体的媒体处理任务;管理器在确定函数库中的媒体处理方式或者函数后,会使用该媒体处理方式或者媒体处理函数的地址创建具体的媒体处理任务生成工作流,该工作流首先运行对应的媒体处理方式或者媒体处理函数得到具体的媒体处理参数信息,然后指导媒体处理任务任务的生成。处理实体同时接收从媒体源发送的媒体流和从管理器生成的媒体处理任务,通过生成的媒体处理任务对接受到的媒体流进行处理后发送给用户端。

本发明针对每个媒体处理方式或媒体处理函数设计应用程序接口的钩子程序(hookapi),当需要采用用户或其他第三方形成的解决方案进行媒体处理时,程序接口的钩子程序将用户或第三方提供的媒体处理方式或媒体处理函数上传至云系统。

应用程序接口的钩子程序(hookapi)是一种用于改变应用程序接口(api)执行结果的技术。当诸如控件这些现成的手段不能实现一些功能时,我们还需要借助应用程序接口(api)。例如,对某些应用程序接口(api)函数的功能不太满意,可修改这些应用程序接口(api),使之能够更好的提供服务。通过应用程序接口的钩子程序(hookapi),能够改变一个系统的应用程序接口(api)的原有功能。基本的方法就是通过钩子程序(hook)“接触”到需要修改的应用程序接口(api)函数入口点,改变它的地址指向新的自定义的媒体处理方式或媒体处理函数。

在管理器与处理实体之间存在一个应用程序接口(api),称之为处理实体应用程序接口(处理实体api)。通过应用程序接口的钩子程序(hookapi)技术,用户或第三方可以钩取到处理实体api;钩取的方式使用钩子程序(hook)的基本原理,每一个钩子程序(hook)都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。使用钩子程序(hook)的钩取技术,修改处理实体api中的媒体处理方式或媒体处理函数的函数入口地址,即将原先通过函数库选取的媒体处理方式或媒体处理函数的地址替换为用户或第三方自己媒体处理方式或媒体处理函数的地址;运行的媒体处理方式或者函数后,提供每个参数对应的具体参数值,则可实现媒体处理方式或媒体处理参数的替换。然后通过处理实体api传输给处理实体,执行具体的媒体处理任务。

以基于转码的应用程序接口的钩子程序(hookapi)为例,视频转码时需要指定媒体处理的类别(本处即为视频转码),视频的帧率、分辨率、量化步长、编码器、比特率、采样率等。这些参数原本是通过函数库提供的具体的媒体处理方式或者媒体处理函数生成用于指导任务生成,这些参数定义在处理实体api中,即管理器将该处理实体api中定义的信息传输给处理实体,处理实体根据这些信息具体执行媒体处理。在将处理实体api中函数库的入口函数地址替换为用户或第三方的函数地址,管理器确定用户端或第三方提供的媒体处理方式或者函数后,会使用用户或第三方提供的媒体处理方式或者媒体处理函数的地址创建具体的媒体处理任务生成工作流,该工作流首先运行对应的媒体处理方式或者媒体处理函数得到具体的媒体处理参数信息,然后指导任务的生成。

视频转码采用应用程序接口的钩子程序(hookapi)时,则该应用程序接口的钩子程序(hookapi)所包括的信息如下表一:

表一hookapi_transcode

上述表一中的参数的传输方式不限于mmt,dsah等任何传输协议,所传输的信息须包括但不限于如下信息:

(1)一般参数:用于该传输的识别与传输端口配置;

(2)输入输出描述参数:用于说明该参数指导的媒体处理类型,媒体处理具体细节,例如,转码中的转码参数,包括分辨率、帧率、编码器、编码方式、媒体封装格式等;

(3)其余参数:用于可选的要求信息,监控信息等。

实施例二

实施例二与实施例一的不同之处在于用户或第三方提供的媒体处理方式或媒体处理函数上传至云系统的方式。

管理器根据媒体处理描述,判断函数库中是否存在可满足要求的具体媒体处理方式或媒体处理函数;如果是,管理器从函数库中选取相对应的媒体处理方式或媒体处理函数;如果否,管理器既可从云系统中选取与媒体处理描述相关的优先级最高的媒体处理方式或媒体处理函数,也可从外部用户或第三方选取与媒体处理描述相对应的媒体处理方式或媒体处理函数,并通过应用程序接口(api)上传至云系统。

如图2所示,本发明采用定义函数库上传应用程序接口(api)的方案。该函数库上传应用程序接口(api)可用来接收用户端或者第三方向函数库传输具体的媒体处理方式或媒体处理函数。管理器通过这些上传的媒体处理方式或者媒体处理函数生成具体的媒体处理任务,处理实体可以使用接收到的媒体处理任务对接收到的媒体流进行媒体处理。

基于云系统的媒体处理还可存在以下工作流程:媒体源在向管理器发送媒体处理描述之前,可以向函数库发出函数查询请求,现有云系统会提供相应的函数查询应用程序接口(函数查询api),通过关键字检索即可查找出所有的对应函数,例如所有可以实现视频编码的函数,包括h.264,h.265等等。关键字匹配可存在多种方式,例如部分匹配(包括头匹配,尾匹配),全匹配。

如果媒体源发现函数库中满足关键字匹配的函数且不止一个,则需要通过优先级计算机制实现函数排序,然后择优使用,具体计算方式如下:

假设函数需求指标有a,b,c,对应函数性能指标有a,b,c,<a,a>为性能指标a(a)匹配程度,范围为(0,1),则函数优先级如下:

s代表某一性能指标,req代表需求指标集合。pf越大,优先级越大。匹配程度的计算方式取决于具体的函数需求指标,并不局限于某一种计算方式。

如果媒体源发现函数库中没有满足要求的函数且媒体源本身有相应的解决方式或者函数,可以通过函数库上传应用程序接口(api)将媒体源有的函数上传至函数库,并在之后的媒体处理任务的生成中使用。

该应用程序接口(api)应包括用户函数的识别信息以及具体的函数描述信息,具体的,该应用程序接口(api)需要包括上传函数的名称、函数输入描述信息、输出描述信息、媒体处理附加信息(例如编码器要求)等等。

若采用函数库上传应用程序接口(api),则管理器向函数库发出函数查找请求,函数库则通过函数库上传应用程序接口(api)接收来自用户端或者第三方的媒体处理方式或媒体处理函数,该函数库上传应用程序接口(api)的具体设计如下表二:

表二functionrepositoryapi(函数库上传应用程序接口)

函数库上传应用程序接口(api)涉及的交互信息应该包括但不限于以下信息:

(1)函数识别信息:该信息用于函数库标记用户提供的函数,并在管理器生成处理任务时调用;

(2)函数位置信息:该信息用于描述用户提供函数的存放位置;

(3)函数输入输出信息:该信息描述该用户提供函数所需的输入参数,及输出参数。

本发明应用程序接口的钩子程序(hookapi)和函数库上传应用程序接口(api)的设计均可扩展到任何媒体处理类型。对于应用程序接口的钩子程序(hookapi),通过修改一般信息、输入输出信息即可针对不同媒体处理类型实现参数获取,例如,general:brand:function_name(通用描述:名牌:函数名),替换function_name(函数名)即可表明不同媒体处理目的,该信息可以是压缩(compression)、上采样(upsampling)等;输入输出参数则可根据媒体处理过程中涉及的具体参数进行设置,只需替换input:value中的value字节,其余同理。对于函数库上传应用程序接口(api),与应用程序接口的钩子程序(hookapi)同理,替换对应字节即可实现不同用户或者第三方函数的上传与使用。

本发明所提供的媒体处理的技术方案,通过在现有云系统中添加系统层应用程序接口的钩子程序(hookapi)或者函数库上传应用程序接口api的方式,可以实现基于用户端或第三方的个性化媒体处理,从而提高用户的消费体验、系统的完整性与鲁棒性。

所属领域的技术人员应当认识到,以上的说明书仅是本发明众多实施例中的两种或几种实施方式,而并非用对本发明的限定。任何对于以上所述实施例的均等变化、变型以及等同替代等技术方案,只要符合本发明的实质精神范围,都将落在本发明的权利要求书所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1