视频处理方法、电子设备和存储介质与流程

文档序号:20040258发布日期:2020-02-28 11:49阅读:134来源:国知局
视频处理方法、电子设备和存储介质与流程

本发明实施例涉及多媒体处理领域,特别涉及一种视频处理方法、电子设备和存储介质。



背景技术:

在传统视频技术处理上,视频处理技术通常在终端进行处理,如视频拖拉播放、视频快进快退、视频抽帧、视频图片压缩上传、视频渲染、视频解码等等视频处理任务,均在终端侧进行处理。

然而,发明人发现,移动终端接收到视频计算任务时,如基于直播播放图片的抽帧生成图片,需要把直播流内容进行边获取边抽取,对终端能耗消耗明显,不利于支持其他同时并发的计算任务。而且,目前的视频处理方式大大依赖了移动端的计算性能,从而使部分计算能力偏弱的移动终端处理响应滞后,存在影响视频处理体验的问题。



技术实现要素:

本发明实施方式的目的在于提供一种视频处理方法、电子设备和存储介质,使得视频播放对移动终端自身的视频计算性能消耗降低,视频处理速度得到提升。

为解决上述技术问题,本发明的实施方式提供了一种视频处理方法,包括:通过以预设周期获取当前接入的边缘节点的视频处理能力,视频处理能力包括应用列表和应用列表中各应用的运行时间;根据边缘节点的视频处理能力,确定目标视频处理任务在边缘节点处理所需的第一处理运行时间,并确定目标视频处理任务在本地处理所需的第二处理运行时间;若第一处理运行时间小于第二处理运行时间,则将目标视频处理任务卸载至边缘节点中进行处理。

本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的视频处理方法。

本发明的实施方式还提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的视频处理方法。

本发明相对于现有技术而言,通过获取终端当前所接入的边缘节点的视频处理能力,并比较视频处理任务在终端所消耗的时间和视频处理任务在边缘节点所消耗的时间,决定是否在边缘节点上执行视频处理任务,达到将一部分视频处理任务卸载至边缘节点上的目的,从而大大缓解移动终端自身的视频处理性能消耗,提高了视频处理速度,使得一部分较低性能的终端设备也能够提供正常的视频服务,提高了这部分终端用户的性能体验。

另外,应用的运行时间根据应用的理论运行时间和应用的实际可用动态系数计算得到;其中,应用的实际可用动态系数根据应用的多个实际平均运行时间和与实际平均运行时间对应的实际负载计算得到。使得通过计算预测的边缘节点上视频处理的时间更加准确,在判断在哪一侧进行视频处理的过程中决策更加合理,提供给用户更佳的用户体验。

另外,若第一处理运行时间大于第二处理运行时间,则获取完成目标视频处理任务所调用的各应用分别在本地完成所需的运行时间cdi,和在边缘节点完成所需的运行时间csi;在本地执行cdi大于csi的应用,在边缘节点中执行cdi小于或等于csi的应用。精细地将视频处理子任务根据预测的运行时间分配至终端本地或是卸载至边缘节点,使得视频处理任务整体消耗地时间更加逼近理论最小值,将视频处理速度进一步的减小。

另外,若当前接入的边缘节点发生变化,且目标视频处理任务尚未完成,则获取目标视频处理任务的处理标记,处理标记用于指示目标视频处理任务的处理方;若处理标记指示的处理方为边缘节点,则将目标视频处理任务切换为本地处理。在用户终端快速移动的场景下,位置的变化会影响终端所连接的边缘节点,根据当前边缘节点的视频处理能力,重新决策视频处理任务的执行端,达到最优的视频任务处理方式,进一步提高了用户体验。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1是根据本发明第一实施方式中视频处理方法的流程图;

图2是根据本发明第二实施方式中视频处理方法的流程图;

图3是根据本发明第三实施方式中接入的边缘节点发生变化后视频处理方法的流程图;

图4是根据本发明第四实施方式中电子设备的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施方式涉及一种视频处理方法。本实施方式应用在终端设备中,如手机、平板电脑等,在此不一一例举,本实施方式的视频处理方法,包括:以预设周期获取当前接入的边缘节点的视频处理能力,视频处理能力包括应用列表和应用列表中各应用的运行时间;根据边缘节点的视频处理能力,确定目标视频处理任务在边缘节点处理所需的第一处理运行时间,并确定目标视频处理任务在本地处理所需的第二处理运行时间;若第一处理运行时间小于第二处理运行时间,则将目标视频处理任务卸载至边缘节点中进行处理。

下面对本实施方式的视频处理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非本实施方案的必须。

本实施方式中的视频处理方法流程如图1所示,具体包括:

步骤101,获取当前接入的边缘节点的视频处理能力。其中,视频处理能力包括应用列表和应用列表中各应用的运行时间。

具体的说,在本实施方式中,以智能手机为终端设备,当智能手机的接入网络为5g网络时,用户操作终端进行视频播放。由于在5g网络的mec服务器,也就是上述的边缘节点可就近为终端用户提供所需服务和云端计算功能,此时借助于5g环境下的高带宽、低延迟,可以使得终端与边缘节点间的交互响应低至1毫秒。因此在边缘节点上运行有视频处理应用时,则可以将视频处理任务放到边缘节点上执行,从而在不影响用户体验的情况下,降低终端的计算性能消耗。所以当用户操作终端进行视频播放后,终端首先需获取当前接入的边缘节点的视频处理能力。

在一个具体实现中,首先终端需要运行视频播放的应用程序,该应用程序需要通过接入网连接5g网络中的mec服务器,然后通过restful接口来对这个mec服务器上所运行的服务应用列表进行查询,获取到当前边缘节点上正在运行的应用列表l{a1,a2,a3,...,an},然后将该获取到的应用列表缓存在终端本地,并根据用户设定的过期时间来进行周期性的更新。过期时间一般默认为1小时,运维人员可以根据具体的使用环境来针对性地设置更加合理的过期时间,以保证本地所换成的应用列表的有效性。另外,每一个部署在mec服务器上的应用,都具有对自身能力的性能管理,并且对外提供相应的性能查询接口,以使得终端在获取应用列表的同时获取列表中各应用的运行时间kn,其中kn用于衡量当前服务应用的性能状态。终端需要周期性地获取应用的运行时间kn,同样,在mec服务器上,应用服务也需要周期性地计算自身性能能力,更新至当前性能状态下的运行时间。

应用列表中各应用的运行时间可根据所述应用的理论运行时间和所述应用的实际可用动态系数计算得到,具体地,可以计算应用的理论运行时间kn和应用的实际可用动态系数un的乘积,得到应用的运行时间,即kn=f(nn)*un。其中,un可根据应用的多个实际平均运行时间和与实际平均运行时间对应的实际负载计算得到,具体计算过程如下:

首先设定应用n的测试经验静态数据表集群qn,该集群中包含应用n在测试时的性能负载与测试系统运行时间的对应关系。然后,设定理论运行时间为f(nn)=qn(nn),nn为n应用当前负载。其中应用n的前m个实际运行时间构成一个数据集合xn{x1,x2,...,xm};应用n的前m个实际负载数据集合yn{y1,y2,...,ym};然后设定应用n的实际可用动态系数un,un表示前m个同类任务实际运行时间/相应负载理论运行时间的平均值,即:其中m为一个可以根据需求设定的值,默认为100。

在具体应用中,每一次终端接入时,边缘节点会将视频处理任务决策的数据保存在服务器中,也就是每一次不断地更新上述由运行时间构成的数据集合xn以及同类任务实际运行时间/相应负载理论运行时间的平均值的数据集un。使得预测运行时间kn能够不断地逼近实际所花费的运行时间,使kn的值更加准确,视频处理的决策更加合理。

通过上述数据可以得到应用n当前的运行时间预测值为kn=f(nn)*un。

步骤102,根据边缘节点的视频处理能力确定目标视频处理任务的第一处理运行时间,同时确定第二处理运行时间。

具体地说,上述目标视频处理任务的第一处理运行时间为由边缘节点处理目标视频处理任务所需花费的时间;目标视频处理任务的第二处理运行时间为终端在本地上处理目标视频处理任务所需花费的时间。在终端从边缘节点获取一系列对视频处理所花费时间有影响的性能参数后,根据公式分别计算出第一处理运行时间和第二处理运行时间。

在一个具体实现中,当终端需要处理视频任务时,可以按照下面的算法逐个进行评估:

其中,csn表示第一处理运行时间,n表示目标视频处理任务所调用的应用个数,εn表示目标视频处理任务所调用的应用集合,di表示第i个应用与调用第i个应用的模块的交互信息量;b表示网络带宽;ki表示步骤101中从边缘节点获取到的第i个应用的预测运行时间,这一参数的大小是边缘节点对于视频处理任务的主要性能体现,ki越小,则意味着边缘节点上进行视频处理的速度越快。可以理解,任一个视频处理任务都可以调动多个不同的应用来进行处理。其中第一处理运行时间受到终端网络连接带宽b以及模块与应用间交互信息量di的影响。

cdn表示第二处理运行时间,tn表示处理目标视频处理任务的模块自身的运行时间,n表示目标视频处理任务所调用的应用个数,εn表示目标视频处理任务所调用的应用集合,pi表示边缘节点是否具备目标视频处理任务调用的第i个应用。同时在计算第二处理运行时间之前,终端还需要根据步骤101中获取到的当前服务器上正在运行的应用列表,来判断视频处理任务所需要调用的应用是否在当前边缘节点上运行。

在一个具体实现中,如果任务所调用的应用i是一个实现渲染的应用,获取的正在运行的应用列表中存在一个应用能够实现渲染,则取pi=1,也就是说当前接入的边缘节点具备实现渲染的能力,任务中渲染的部分会被分配至边缘节点上的应用来实现;如果获取的正在运行的应用列表中不存在一个应用能够实现渲染,则取pi=+∞,也就是说当前接入的边缘节点不具备实现渲染的能力,此时意味着csi*pi的值为+∞,必然大于cdi的值,表示该视频处理任务中实现渲染的部分,由本地应用来实现。

当计算出上述第一处理运行时间以及第二处理运行时间后执行下一步骤。

步骤103,判断第一处理运行时间是否小于第二处理运行时间。若第一处理运行时间小于第二处理运行时间,则执行步骤104。否则,执行步骤105。

步骤104,将目标视频处理任务卸载至边缘节点中进行处理。

步骤105,将目标视频处理任务分配至终端本地进行处理。

具体的说,在计算得到第一处理运行时间以及第二处理运行时间后,比较两者的大小,当第一处理运行时间小于第二处理运行时间时,表示该视频处理任务在边缘节点上运行所花费的时间小于在终端本地运行所花费的时间,因此将该视频处理任务卸载至边缘节点进行处理能够给终端用户更好的视频播放体验。而当第一处理运行时间不小于第二处理运行时间时,则默认将视频处理任务分配在本地进行处理。

需要说明的是,本实施方式中的上述各示例均为为方便理解进行的举例说明,并不对本发明的技术方案构成限定。

与现有技术相比,本实施方式在终端当前所连接的边缘节点上具备视频处理能力时,通过比较视频处理任务在终端所消耗的时间和视频处理任务在边缘节点所消耗的时间,决定是否在边缘节点上执行视频处理任务,达到将一部分视频处理任务卸载至边缘节点上的目的,从而大大缓解移动终端自身的视频处理性能消耗,提高视频处理速度。

本发明的第二实施方式涉及一种视频处理方法,具体流程如图2所示,包括:

步骤201和步骤202与本发明第一实施方式中步骤101和步骤102相似,在此不再赘述。

步骤203,判断第一处理运行时间是否小于第二处理运行时间。若判断结果为是,则执行步骤204;其中步骤204与本发明第一实施方式中步骤104类似,在此不再赘述。

若判断结果为否,则执行步骤205;

步骤205,根据各应用的最小运行时间分别将各处理过程分配至客户端自身处理或边缘节点处理。

具体的说,当第一处理运行时间小于第二处理运行时间时,表示一个视频处理任务整体运行在边缘节点的时间小于运行在本地终端的时间。当第一处理运行时间大于第二处理运行时间时,也仅表示一个视频处理任务整体运行在边缘节点的时间大于运行在本地终端的时间。由于任一视频处理任务都可以调用多个不同的应用来执行相应的处理过程,所以在这种情况下,可以分别计算一个视频处理任务中,各应用在边缘节点上处理所花费的时间以及在本地终端上处理所花费的时间。然后将各边缘节点上应用的处理运行时间和各本地终端应用的处理运行时间进行比较,可以得到每一个应用在两端处理的差异。此时将在本地终端处理运行时间短的流程分配至客户端应用进行处理,同时将在边缘节点上处理运行时间短的流程分配至边缘节点应用进行处理,以此来实现最小化视频处理任务整体所花费的时间。

在一个具体实现中,假定一个视频处理任务需要调用应用a、应用b、应用c来处理,通过本发明第一实施方式中提到的公式计算出该视频处理任务的第一处理运行时间为800毫秒,第二处理运行时间为700毫秒时。此时如果采用本发明第一实施方式中的技术方案,则决策该视频处理任务在终端本地执行,耗时700毫秒;如果采用第二实施方式中的技术方案,则再进一步计算应用a、应用b、应用c分别在终端本地执行的运行时间和边缘节点上执行的运行时间。假定时间ta1(应用a在边缘节点上的运行时间)为100ms,ta2(应用a在本地终端上的运行时间)为300ms,tb1(应用b在边缘节点上的运行时间)为100ms,tb2(应用b在本地终端上的运行时间)300ms,tc1为600ms,tc2为100ms。由于ta1<ta2,tb1<tb2,tc1>tc2,那么最终决策为在边缘节点上运行应用a和应用b,在本地终端运行应用c,总耗时tt=ta1+tb1+tc2=100ms+100ms+200ms=400ms。从而能够使得视频处理任务的运行更加迅速。

可以看出,第二实施方式是基于本发明第一实施方式的一种优化方案,主要的区别之处在于判断得到第一处理运行时间不小于第二处理运行时间后,在第一实施方式中,默认将视频处理任务分配在本地执行。而在本发明第二实施方式中,则是根据各应用的最小运行时间分别将各处理过程分配至客户端自身处理或边缘节点处理。

此外,本领域技术人员可以理解,通过本发明第二实施例的中的技术手段,能够更加精细的将视频处理任务的分配至终端本地或是边缘节点上,以达到最小化视频处理运行时间的目的,从而给用户提供更加良好的性能体验。

本发明的第三实施方式涉及一种视频处理方法,本实施方式在第一实施方式的基础上做了进一步改进,在根据第一处理运行时间和第二处理运行时间的比较结果,决策目标视频处理任务的处理方后,还需检测当前接入的边缘节点是否发生变化,若当前接入的边缘节点发生变化,且所述目标视频处理任务尚未完成,则获取目标视频处理任务的处理标记,处理标记用于指示所述目标视频处理任务的处理方;若处理标记指示的处理方为边缘节点,则将目标视频处理任务切换为本地处理。

本实施方式与第一实施方式相同的部分,在此不再赘述,下面针对本实施方式相对第一实施方式的改进部分进行具体介绍,具体如图3所示,包括:

步骤301,检测到接入的边缘节点发生变化后,判断当前的视频处理任务是否完成。若当前的视频处理任务还未完成,则执行步骤302;否则结束视频处理流程。

具体的说,当移动终端接入5g网络时,用户可能在快速移动的场景下进行视频播放操作。在这种场景下,由于移动终端在不断地移动,而每一个边缘节点只能覆盖一块固定的区域,因此终端所接入的边缘节点在这个过程中是不断切换的,因此终端需要持续监控当前所接入的边缘节点发生的变化。根据本发明第一实施方式中的描述,每一个边缘节点当前所运行的应用都不尽相同,而每一个边缘节点的地理位置不同也意味着不同的边缘节点当前已经接入的终端,正在进行的业务不同,而导致这个边缘节点能够提供的视频处理性能与接入的上一个边缘节点也不一样。因此在接入不同的边缘节点时,根据上一边缘节点参数所进行的处理决策并不能适用于在终端位置移动后所接入的新的边缘节点,因此在本实施方式中,根据当前边缘节点的实际情况来对当前视频处理任务的处理状态进行改变。

另外,目标视频处理任务的处理状态如果是已经完成的,则不需要进行额外的操作。只有当目标视频处理任务还未完成时,才需要对目标视频处理任务的处理状态做出改变,以使得处理速度达到最快。如果目标视频处理任务已经完成,则意味着终端无需继续提供视频处理的性能资源,也就不需要进行视频处理任务运行的再次决策。

步骤302,判断处理标记指示的处理方是否为边缘节点;若判断结果为是,则直接进入步骤303;若判断结果为否,则直接进入步骤304。

步骤303,将目标视频处理任务切换至本地处理。

具体的说,由于在确定是否将目标视频处理任务卸载至边缘节点执行前,必须要对当前接入的边缘节点进行应用运行列表的获取以及视频处理性能的获取。为了保证视频播放操作的连续性,如果在接入上一个的边缘节点时,视频处理任务处理标记指示的处理方为边缘节点,则首先需要将视频处理任务切换至终端本地来执行。如果在接入上一个边缘节点后,决策结果为终端本地执行,也就是说处理标记指示的处理方为终端本地,则继续执行该视频处理任务。

步骤304,获取当前接入的边缘节点的视频处理能力,并确定目标视频处理任务中尚未完成的子任务当前的剩余运行时间。

具体的说,上述目标视频处理任务中尚未完成的子任务当前的剩余运行时间包括第一剩余运行时间和第二剩余运行时间。和本发明第一实施方式中的第一处理运行时间以及第二处理运行时间类似,由于目标视频处理任务已经在接入上一边缘节点时完成了一部分,所以这两个运行时间用于衡量目标视频处理任务未完成的部分在终端本地执行的速度和在边缘节点上执行的速度。同时在经过与本发明第一实施方式中类似的计算从而获取到这两个剩余运行时间后执行下一步骤。

在一个具体的实现中,首先终端要获取当前目标视频处理任务的处理进度,也就是将当前还没有完成处理的部分进行提取,然后识别执行这部分视频处理任务的所需要的应用,然后向边缘节点查询当前接入的边缘节点上正在运行的应用列表,然后获取当前接入的边缘节点上应用的性能状态,并根据与本发明第一实施方式中相同的公式来计算出对于未处理部分的第一处理运行时间和第二处理运行时间,也就是第一剩余运行时间和第二剩余运行时间。

步骤305,判断第一剩余运行时间是否小于第二剩余运行时间。若第一剩余运行时间小于第二剩余运行时间,则执行步骤306;否则执行步骤307.

该步骤与本发明第一实施方式中步骤103类似,在此不再赘述。

步骤306,将目标视频处理任务卸载至当前接入的边缘节点中进行处理。

该步骤与本发明第一实施方式中步骤104类似,在此不再赘述。

步骤307,将目标视频处理任务分配至终端本地进行处理。

该步骤与本发明第一实施方式中步骤105类似,在此不再赘述。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

相较于现有技术,在本实施方式中,考虑到终端设备可能在快速移动的场景下进行视频操作,由于位置的变化,终端会连接上不同的边缘节点。在这种场景下,通过流程的优化,本实施方式能够实现视频处理任务处理方的无缝切换,最大化的降低对终端计算性能的消耗,从而使得终端依然能够迅速的进行视频任务处理的决策,进一步提高用户在快速移动场景下的视频处理性能体验。

本发明的第四实施方式涉及一种电子设备,具体结构如图4所示,包括:

至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述第一实施方式、第二实施方式以及第三实施方式中的视频处理方法。

其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。

处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。

本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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