欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种视频处理方法、装置、存储介质及设备独创技术28731字

一种视频处理方法、装置、存储介质及设备

2021-02-03 16:54:11

一种视频处理方法、装置、存储介质及设备

  技术领域

  本公开涉及图像处理技术领域,具体而言,涉及一种视频处理方法、装置、存储介质及设备。

  背景技术

  基于云流化技术,可以实现将云游戏、云VR(Virtual Reality,虚拟现实)等应用运行在云渲染服务器,在应用运行过程中由云渲染服务器对应用运行产生的应用场景数据进行渲染得到应用画面,并采集应用运行产生的音频数据,对应用画面和音频数据进行编码后以视频流的方式通过网络发送至电视、手机、PC、VR头盔等终端,由终端进行解码和呈现;该云流化的应用运行模式无需终端对应用进行下载、安装以及应用客户端的更新操作,大大降低了应用运行对终端的硬件条件的依赖。

  相关技术中,云渲染服务器在将视频流传输至终端的过程中,若终端出现网络带宽降低,则会导致视频流的网络传输时延较大,此时终端接收视频流的时间较长,进而会使终端播放的画面出现卡顿或用户操作迟滞响应,影响用户体验。

  发明内容

  有鉴于此,本公开提供一种视频处理方法、装置、存储介质及设备,以实现在终端的网络传输状态出现波动时减小视频传输时延,以保证用户体验不被影响。

  具体地,本公开是通过如下技术方案实现的:

  第一方面,本公开实施例中提供了一种视频处理方法,所述方法应用于云渲染服务器,所述方法包括:

  监测终端的网络传输状态;

  确定所述终端对应的与所述网络传输状态相适配的第一渲染参数和第一编码参数;

  按照确定的与所述网络传输状态相适配的所述第一渲染参数执行所述终端应用的画面渲染,以及对渲染得到的画面按照所述第一编码参数执行编码操作;

  将编码得到的视频数据通过网络传输至所述终端。

  第二方面,本公开实施例提供了一种图像处理的装置,所述装置应用于云渲染服务器,所述装置包括:

  监测模块,用于监测终端的网络传输状态;

  确定模块,用于确定所述终端对应的与所述网络传输状态相适配的第一渲染参数和第一编码参数;

  执行模块,用于按照确定的与所述网络传输状态相适配的所述第一渲染参数执行所述终端应用的画面渲染,以及对渲染得到的画面按照所述第一编码参数执行编码操作;

  传输模块,用于将编码得到的视频数据通过网络传输至所述终端。

  第三方面,本公开实施例提供了一种机器可读存储介质,机器可读存储介质上存储有若干计算机指令,计算机指令被执行时实现如第一方面所述的方法。

  第四方面,本公开实施例提供了一种电子设备,包括:机器可读存储介质和处理器,机器可读存储介质:存储指令代码,处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中的指令代码,实现如第一方面所述的方法。

  本公开实施例中提供的一种视频处理方法及装置,本实施例中通过监测终端的网络传输状态,确定与网络传输状态相适配的第一渲染参数和第一编码参数,并且云渲染服务器按照确定的与当前网络传输状态相适配的第一渲染参数执行终端所对应应用的画面渲染操作,以及对渲染得到的画面按照确定的第一编码参数执行编码操作;然后由云渲染服务器将编码得到的视频数据通过网络传输至终端;本实施例中,云渲染服务器根据监测的终端的网络传输状态的变化动态调整渲染参数和编码参数,进而使得最终得到的视频数据与当前的终端的网络传输状态适配,降低网络传输时延,提高用户体验。

  附图说明

  图1是一种云流化系统架构的示意图;

  图2是本公开一示例性实施例示出的一种视频处理方法的流程示意图;

  图3是本公开一示例性实施例示出的一种确定第一渲染参数与第一编码参数的方法步骤示意图;

  图4是本公开一示例性实施例示出的一种计算第一渲染参数的方法步骤示意图;

  图5是本公开一示例性实施例示出的一种图像处理装置的结构示意图;

  图6是本公开一示例性实施例示出的一种视频处理装置的确定模块的结构示意图;

  图7是本公开一示例性实施例示出的一种电子设备的结构示意图。

  具体实施方式

  这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

  在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

  应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

  图1是一种云流化系统架构的示意图;参照图1所示,在该系统架构下,云游戏、云VR等应用部署在云渲染服务器100上,云渲染服务器100通过网络接收终端200发送的用户控制应用运行的操作指令,解析操作指令,并将解析的操作指令传输至应用本身,云渲染服务器按照应用本身的处理逻辑响应该操作指令生成应用画面数据,对该应用画面数据进行渲染得到视频流,将视频流进行编码处理,将经过编码处理后的视频流通过网络实时传输至终端200,终端200对接收到的视频流进行解码输出。该模式中,若终端当前的网络带宽不足,会导致视频流下发的网络传输时延比较大,此时终端的视频播放会存在着延迟或者卡顿的情况,影响用户体验;基于此,本公开实施例中提供了一种视频处理方法及装置。

  图2是本公开一示例性实施例示出的一种视频处理方法的流程示意图;本实施例中提供的一种视频处理方法,该方法应用于云渲染服务器,本公开对此不做限定。参照图2所示,该方法包括如下步骤S10-S40:

  S10、监测终端的网络传输状态。

  云渲染服务器可以是从数据链路层直接获取终端的网络传输状态或者是从终端侧直接获取终端的网络传输状态,也可以是由云渲染服务器探测得到网络传输状态;上述的网络传输状态包括:网络带宽、网络时延、终端卡顿时间等。

  一可选地实施例中,终端实时检测自身的网络传输状态并实时向云渲染服务器上传网络传输状态,或者终端在每次向云渲染服务器发送用户的操作指令时同步向云渲染服务器发送终端当前的网络传输状态;再或者,如果终端为VR一体机设备、VR+手机/PC的组合设备等的情况下,终端可以是在向云渲染服务器发送姿态信息时同步向云渲染服务器发送终端的当前网络传输状态。

  一可选地实施例中,由于在网络传输时延较大的情况下,应用上述终端上传的网络传输状态确定的第一渲染参数和第一编码参数对应用进行画面渲染和编码会存在一定的滞后性,为充分考虑网络传输时延对上传网络传输状态的影响,终端在检测到自身的网络传输状态后,根据当前检测的网络传输状态预估下一时刻的网络传输状态,该下一时刻是由当前的网络传输时延确定的,网络时延越大该下一时刻距离当前时刻的时间越长;终端将该下一时刻的网络传输状态上传至云渲染服务器,云渲染服务器确定与该网络传输状态相适配的第一渲染参数和第一编码参数,并使用该第一渲染参数和第一编码参数作为第二渲染参数、第二编码参数执行应用的渲染和编码操作,直至该第二渲染参数与第二编码参数与网络传输状态发生不匹配。

  如果上述的网络传输状态包括网络时延,则可以通过云渲染服务器向终端发送时延探测指令,终端接收该时延探测指令以后发送反馈信息,服务端根据从发送时延探测指令时间戳和接收反馈信息时间戳计算得到网络时延。

  如果上述的网络传输状态包括终端卡顿时间,则终端确定发送某一操作指令的第一时间,以及确定终端获取到响应于该操作指令生成的视频帧的第二时间,计算第一时间与第二时间之间的时间差计算得到卡顿时间,并将该卡顿时间或者根据该卡顿时间预测的下一时刻的卡顿时间与下一个操作指令同步发送至云渲染服务器。

  本公开一实施例中,上述的网络传输状态为网络带宽,云渲染服务器实时监测终端的网络带宽,比如云渲染服务器是从数据链路层实时获取终端的网络带宽。

  S20、确定所述终端对应的与所述网络传输状态相适配的第一渲染参数和第一编码参数。

  图3是本公开一示例性实施例示出的一种确定第一渲染参数与第一编码参数的方法步骤示意图;参照图3所示,上述步骤S20中,确定与所述网络传输状态相适配的第一渲染参数和第一编码参数,具体包括如下步骤S201-S203:

  S201、计算得到所述终端对应的与所述网络传输状态适配的第一渲染参数和第一编码参数。

  本公开实施例中,上述第一渲染参数与所述第一编码参数是终端的性能所支持的。针对于不同的终端,上述计算得到终端对应的与当前终端的网络传输状态适配的第一渲染参数和第一编码参数时需要考虑该终端的性能参数,示例性地,有的终端性能参数较弱只能够支持720p的视频画面,而有的终端性能参数较强能够支持更高精度(比如1080p、4k等)的视频画面,再比如VR终端、电视终端和手机终端的性能参数也不同,因此根据不同的终端的性能参数进行配置不同的第一渲染参数和第一编码参数的调整方式。

  S202、获取当前所述云渲染服务器执行应用的渲染和编码操作所使用的第二渲染参数和第二编码参数,判断所述第二渲染参数和第二编码参数是否与所述第一渲染参数和所述第二编码参数一致。

  S203、若不一致,则调整使所述第二渲染参数和第二编码参数与所述第一渲染参数和所述第二编码参数一致。

  S204、若一致,则不进行调整。

  本实施例中,云渲染服务器实时监测终端的网络传输状态,并计算得到与该网络传输状态适配的第一渲染参数和第一编码参数,将该第一渲染参数、第一编码参数分别与当前云渲染服务器执行该应用的渲染和编码操作所使用的第二渲染参数、第二编码参数进行比较,如果一致的话则继续使用该第二渲染参数与第二编码参数进行对该应用的渲染和编码操作,直至在检测到第二渲染参数、第二编码参数与计算得到的与网络传输状态适配的第一渲染参数和第一编码参数不一致,则将云渲染服务器执行应用的渲染和编码操作所使用的第二渲染参数、第二编码参数调整为第一渲染参数、第一编码参数。

  需要说明的是,上述计算第一渲染参数与第一编码参数、判断所述第二渲染参数和第二编码参数是否与所述第一渲染参数和所述第二编码参数一致以及调整第二渲染参数和第二编码参数的时机可以是不同的,本公开对此不作限定。

  本公开一可能的实施例中,上述步骤S201中,计算与网络传输状态相适配的第一渲染参数,具体包括如下步骤A10-430:

  步骤A10、将表征所述网络传输状态的网络参数与该网络参数的预设阈值进行比较。

  本实施例中,上述的预设阈值可以是根据经验值获得,针对不同性能的终端该预设阈值可以是相同的或者不同的。

  步骤A10、若所述网络参数大于等于所述预设阈值,则将设定的所述终端的性能所支持的高级别渲染参数作为与所述网络传输状态适配的第一渲染参数。

  步骤A10、若所述网络参数低于所述预设阈值,则将设定的所述终端的性能所支持的低级别渲染参数作为与所述网络传输状态适配的第一渲染参数。

  进而本实施例中,在当前的网络传输状态较优时采用该终端支持的高级别渲染参数进行画面的高质量渲染;在网络传输状态较差时,采用低级别的渲染参数进行低质量渲染。并且根据确定的编码参数,对高质量渲染得到的画面和低质量渲染得到的画面进行按照不同的编码参数进行压缩,进而避免高质量渲染渲染的画面在经过低质量编码以后清晰度损失,浪费原先高质量渲染工作本不必要消耗的资源。

  图4是本公开一示例性实施例示出的一种计算第一渲染参数的方法步骤示意图;参照图4所示,本实施例中上述步骤S201中,计算与网络传输状态相适配的第一渲染参数,具体包括如下步骤S2011-S2013:

  S2011、将表征所述网络传输状态的网络参数与该网络参数的指定阈值范围进行比较,若所述网络参数超过所述指定阈值范围的上限值,则将设定的第一级别渲染参数作为与所述网络传输状态适配的第一渲染参数。

  S2012、若所述网络参数处于所述指定阈值范围内,则将设定的第二级别渲染参数作为与所述网络传输状态适配的第一渲染参数。

  S2013、若所述网络参数小于所述指定阈值范围的下限值,则将设定的第三级别渲染参数作为与所述网络传输状态适配的第一渲染参数。

  其中,上述第一级别渲染参数为最高级别渲染参数,上述第三级别渲染参数为最低级别渲染参数,上述第二级别渲染参数为介于最高级别渲染参数与最低级别渲染参数之间的渲染参数。

  以上述的表征所述网络传输状态的网络参数为网络带宽为例,网络带宽与渲染参数的映射关系参照如下表1所示:

  上述针对不同带宽配置不同的渲染参数,该渲染参数包括:分辨率、帧率和渲染质量等级中的任意一项或多项;其中,渲染质量等级包括:抗锯齿性能等级参数、光影效果等级参数等。

  本实施例,针对某一类性能参数的终端,示例性地,上述的指定阈值范围为5Mb~10Mb,该指定阈值范围的上限值的上限值BWh为10Mb,该指定阈值范围的上限值BWL为5Mb,当网络带宽大于10Mb时,对应的第一级别渲染参数为:分辨率为1080P,帧率为60帧;当网络带宽小于等于10Mb并大于等于5Mb时,对应的第二级别渲染参数为:分辨率为720P,帧率为30帧;当网络带宽小于5Mb时,对应的第三级别渲染参数为:480P,帧率为20帧。

  本公开一实施例中,上述的编码参数包括编码码率。

  上述计算得到与网络传输状态适配的第一编码参数的方式,包括:根据计算得到的所述第一渲染参数和渲染参数与第一编码参数的映射关系,得到第一编码参数。本实施例中,根据确定的第一渲染参数得到对应的第一编码参数,进而实现了对于不同的第一渲染参数设置不同的第一编码参数,可以避免在渲染的时候使用高质量渲染参数进行渲染得到的视频数据,而在编码过程中却被压缩为低质量视频数据,进而使渲染环节的GPU资源出现浪费的问题。

  或者本公开另一实施例中,根据上述的网络传输状态计算得到适配的第一编码参数;示例性地,云渲染服务器根据当前的实际发送码率确定网络带宽阈值,若出现在连续大于第一预设时间段内的网络带宽小于该网络带宽阈值,则将编码器的编码码率调整至第一指定码率,若出现在连续大于第一预设时间段内的网络带宽大于该网络带宽阈值,则将编码器的编码码率调整至第二指定码率,该第二指定码率大于第一指定码率。

  示例性地,根据实际的网络测试情况配置100M带宽的40%作为实际发送码率,进而得到实际发送码率为100*40%=40M,按照指定倍数的发送码率设置网络带宽阈值,比如设置网络带宽阈值为发送码率的1.3倍,进而得到网络带宽阈值为:40M*1.3=52M;降码率场景:当实测网络带宽连续10秒小于52M时,将码率下调到配置的实际发送码率40M的一半,即第一指定码率为20M;升码率的场景:当检测到网络带宽恢复到52M及以上后,且实测网络带宽连续10秒大于52M,则将码率会恢复到配置的实际发送码率40M。

  本公开一可选的实施例中,用户可以分别选择设置开启或关闭动态码率的调整和开启或关闭动态渲染参数的调整。

  S30、按照确定的与所述网络传输状态相适配的所述第一渲染参数执行所述终端应用的画面渲染,以及对渲染得到的画面按照所述第一编码参数执行编码操作。

  S40、将编码得到的视频数据通过网络传输至所述终端。

  进而上述实施例中,在网络传输状态较差时,进行低质量的渲染和编码使得到的视频数据的数据量较小以适应该网络传输状态,降低网络传输时延,在网络传输状态较好的情况下进行高质量的渲染和编码操作,根据实时监测网络传输状态的变化,动态调整画面渲染参数和编码参数,具有良好的网络自适应特点,提高了用户体验;并且避免了在网络带宽不足的情况下,如果只降低编码参数会导致之前的高质量渲染对GPU等资源的浪费。

  本公开一可能的实施例中,在云渲染服务器未获取到网络传输状态的情况下(比如在针对于应用的首帧画面进行处理的情况下),则按照默认的渲染参数和编码参数进行应用画面的渲染操作和编码操作,该默认渲染参数和编参数可以是上述的最高级别渲染参数和第二指定码率。

  图5是本公开一示例性实施例示出的一种视频处理装置的结构示意图;参照图5所示,该装置应用于云渲染服务器,所述装置包括:

  监测模块501,用于监测终端的网络传输状态;

  确定模块502,用于确定所述终端对应的与所述网络传输状态相适配的第一渲染参数和第一编码参数;

  执行模块503,用于按照确定的与所述网络传输状态相适配的所述第一渲染参数执行所述终端应用的画面渲染,以及对渲染得到的画面按照所述第一编码参数执行编码操作;

  传输模块504,用于将编码得到的视频数据通过网络传输至所述终端。

  可选地,上述确定模块502,具体包括:

  计算单元5021,用于计算得到与所述网络传输状态适配的第一渲染参数和第一编码参数;

  判断单元5022,用于获取当前的第二渲染参数和第二编码参数,判断所述第二渲染参数和第二编码参数是否与所述第一渲染参数和所述第二编码参数一致;

  调整单元5023,用于若不一致,则调整使所述第二渲染参数和第二编码参数与所述第一渲染参数和所述第二编码参数一致;

  若一致,则不进行调整。

  可选地,上述的计算单元5021具体用于通过以下步骤计算得到与所述网络传输状态适配的第一渲染参数:

  将表征所述网络传输状态的网络参数与该网络参数的指定阈值范围进行比较,若所述网络参数超过所述指定阈值范围的上限值,则将设定的第一级别渲染参数作为与所述网络传输状态适配的第一渲染参数;

  若所述网络参数处于所述指定阈值范围内,则将设定的第二低级别渲染参数作为与所述网络传输状态适配的第一渲染参数;

  若所述网络参数小于所述指定阈值范围的下限值,则将设定的第三级别渲染参数作为与所述网络传输状态适配的第一渲染参数;

  其中,所述第一级别渲染参数为最高级别渲染参数,所述第三级别渲染参数为最低级别渲染参数,所述第二级别渲染参数为介于所述最高级别渲染参数与所述最低级别渲染参数之间的渲染参数。

  可选地,上述监测模块501,具体用于:

  监测所述云渲染服务器与所述终端之间的网络带宽。

  可选地,所述渲染参数包括:分辨率和/或帧率。

  可选地,上述的计算单元5021具体用于通过以下步骤计算得到与所述网络传输状态适配的第一编码参数:

  根据计算得到的所述第一渲染参数和渲染参数与第一编码参数的映射关系,得到所述第一编码参数;

  或者,根据所述网络传输状态计算得到与所述网络传输状态适配的所述第一编码参数。

  本公开上述实施例中,实时监测终端网络带宽,根据监测的网络带宽确定与该网络带宽相适配的第一渲染参数和第一编码参数,并按照该第一渲染参数和第一编码参数执行应用的渲染操作和编码操作;进而本实施例中,云渲染服务器根据终端的网络带宽的变化动态调整渲染操作和编码操作,进而使最终传输至终端的视频数据适应当前的网络带宽,并且该方案中由于是对渲染操作也进行了调整,进而避免了至进行动态编码参数调整导致的高质量的渲染工作被浪费掉进而导致GPU资源浪费的情况。

  本公开另一实施例中还提供了一种机器可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的视频处理方法的步骤。以实现云渲染服务器通过监测终端的网络传输状态的变化,动态调整渲染参数和编码参数,进而使得最终得到的视频数据与当前的终端的网络传输状态适配,降低网络传输时延,提高用户体验。

  图7是本公开本公开实施例示出的一种电子设备的结构示意图。参照图7所示,该电子设备500,至少包括存储器(机器可读存储介质)502和处理器501;所述存储器502通过通信总线503和所述处理器501连接,用于存储所述处理器501可执行的指令代码;所述处理器501用于从所述存储器502读取和执行指令代码以实现上述任一实施例所述的视频处理方法的步骤。以实现云渲染服务器监测终端的网络传输状态,根据终端的网络传输状态变化动态调整渲染参数和编码参数,进而使得最终得到的视频数据与当前的终端的网络传输状态适配,降低网络传输时延,提高用户体验。

  上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

  对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

  适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。

  适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

  虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

  类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

  由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

  以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

《一种视频处理方法、装置、存储介质及设备.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)