一种视频处理方法、视频处理装置、智能设备及存储介质与流程

文档序号:23347782发布日期:2020-12-18 16:50阅读:129来源:国知局
一种视频处理方法、视频处理装置、智能设备及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种视频处理方法、视频处理装置、智能设备以及计算机可读存储介质。



背景技术:

目前,视频编码技术广泛应用于视频会话、视频点播等场景中;例如,采用视频编码技术对视频会话场景中涉及的会话视频进行处理,采用视频编码技术对视频点播场景中涉及的点播视频进行处理等等。视频编码技术是指按照编码模式对视频进行压缩编码的技术;对视频进行压缩编码能够有效节省视频的存储空间,提升视频的传输效率。

在视频编码过程中准确地确定较为合适的编码模式,并按照该编码模式对视频进行编码能够加速整个视频编码过程,提升视频编码效率,因此,在视频编码过程中如何较为准确地确定编码模式进行视频帧编码成为当前研究的热点问题。



技术实现要素:

本申请实施例提供了一种视频处理方法、装置、设备及存储介质,可以较为准确地选择合适的编码模式进行视频帧编码。

一方面,本申请实施例提供一种视频处理方法,该视频处理方法包括:

从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块;

对目标数据块进行场景复杂度分析,得到数据块指标信息;

将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数;

根据数据块指标信息和子块指标信息,确定对目标数据块的编码模式;

按照确定的编码模式对目标数据块进行编码。

另一方面,本申请实施例提供一种视频处理装置,该视频处理装置包括:

获取单元,用于从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块;

处理单元,用于对目标数据块进行场景复杂度分析,得到数据块指标信息;将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数;根据数据块指标信息和子块指标信息,确定对目标数据块的编码模式;以及,按照确定的编码模式对目标数据块进行编码。

另一方面,本申请实施例提供一种智能设备,该智能设备包括:

处理器,适于实现计算机程序;以及,

存储器,所述存储器存储有计算机程序,所述计算机程序由处理器加载并运行,实现上述的视频处理方法。

另一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,实现上述的视频处理方法。

另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,实现上述的视频处理方法。

本申请实施例中,通过对目标视频帧中待编码的目标数据块进行场景复杂度分析,分别得到对整个待编码的目标数据块的分析结果和将待编码的目标数据块划分成多个子数据块后的分析结果,并基于这些分析结果选择编码模式,可以为当前待编码的目标数据块较为准确地确定出合适的编码模式,能够有效提升对目标数据块的编码速度,提升视频编码效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a是本申请实施例提供的一种视频帧的递归划分过程的示意图;

图1b是本申请实施例提供的一种视频帧的划分结果的示意图;

图2是本申请实施例提供的一种编码器的结构示意图;

图3是本申请实施例提供的一种关联数据块的示意图;

图4是本申请实施例提供的一种视频处理系统的架构示意图;

图5是本申请实施例提供的一种视频处理方法的流程示意图;

图6是本申请实施例提供的另一种视频处理方法的流程示意图;

图7是本申请实施例提供的另一种视频处理方法的流程示意图;

图8是本申请实施例提供的一种视频处理装置的结构示意图;

图9是本申请实施例提供的一种智能设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例涉及云技术(cloudtechnology),本申请实施例可以利用云技术实现视频处理过程。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

其中,云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台),一般称为iaas(infrastructureasaservice,基础设施即服务)平台,在云计算资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在iaas层上可以部署paas(platformasaservice,平台即服务)层,paas层之上再部署saas(softwareasaservice,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件(例如数据库、web容器等)运行的平台。saas为各式各样的业务软件(例如web门户网站、短信群发器等)。一般来说,saas和paas相对于iaas是上层。云计算还指it(internettechnology,互联网技术)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(gridcomputing)、分布式计算(distributedcomputing)、并行计算(parallelcomputing)、效用计算(utilitycomputing)、网络存储(networkstoragetechnologies)、虚拟化(virtualization)、负载均衡(loadbalance)等传统计算机和网络技术发展融合的产物。

云计算可以用于云会议领域,云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。目前国内云会议主要集中在以saas模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,使用者完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在政府、军队、交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。

本申请实施例涉及视频(video),视频是由连续的视频帧构成的视频帧序列。由于人眼的视觉暂留效应,当视频帧序列以一定的速率播放时,我们看到的就是动作连续的视频。由于连续的视频帧之间相似性极高,每一个视频帧内部以及连续的视频帧之间均存在大量的冗余信息,因此在对视频进行存储或传输之前,往往需要采用视频编码(videoencoding)技术对视频进行编码,去除视频在空间、时间等维度上的冗余信息,以节省存储空间、提升视频传输效率。

其中,视频编码技术也可以称为视频压缩技术,是指按照编码模式对视频中的每一个视频帧进行压缩编码的技术;具体地,在对视频进行编码的过程中,需要将视频中的每一个视频帧递归地划分成多种尺寸的数据块,然后分别将每一个划分得到的数据块输入编码器中进行编码。下面结合图1a对本申请实施例涉及的递归划分过程进介绍,图1a是本申请实施例提供的一种视频帧的递归划分过程的示意图,如图1a所示,视频帧10由若干第一尺寸的数据块101组成;视频帧10的递归划分方式可以包括:①直接将第一尺寸的数据块101输入编码器中进行编码,也就是说,不对第一尺寸的数据块101进行划分,直接将第一尺寸的数据块输入编码器中进行编码;②将第一尺寸的数据块101划分为4个尺寸相同的第二尺寸的数据块102,不对第二尺寸的数据块102进行进一步划分,将第二尺寸的数据块102输入编码器中进行编码;③对第二尺寸的数据块102进行进一步划分,划分得到4个尺寸相同的第三尺寸的数据块103,不对第三尺寸的数据块103进行进一步划分,将第三尺寸的数据块103输入编码器中进行编码;以此类推,还可以对第三尺寸的数据块103进行进一步划分,从而将视频帧10递归地划分成多种尺寸的数据块,视频帧10的划分结果可参见图1b。图1b是本申请实施例提供的一种视频帧的划分结果的示意图,如图1b所示,划分后的视频帧10由三种尺寸的数据块组成,分别是第一尺寸的数据块101、第二尺寸的数据块102和第三尺寸的数据块103。

在实际视频编码的过程中,视频帧中包含的多个数据块的划分策略不同,对视频帧进行编码的编码模式也不相同,对视频帧的编码速度也不相同;本申请实施例提供一种视频处理方案,该视频处理方案提供两种不同的数据块划分策略,分别是自顶向下的数据块划分策略和自底向上的数据块划分策略;这两种数据块划分策略均能确定出视频帧中每一个数据块的最优划分方式;最优划分方式可以理解为按照该数据块划分方式对数据块进行划分后,对划分得到的数据块进行编码时的编码质量较好、编码码率较低;编码码率可以是指对编码得到的视频数据流进行传输时单位时间(例如1秒)传输的数据量,单位时间内传输的数据量越多,编码码率越高。下面分别对以上两种数据块划分策略进行详细介绍:

(1)自顶向下的数据块划分策略

在对视频进行编码的过程中,对视频帧中的每一个数据块进行自顶向下的、递归的划分。具体地,自顶向下的、递归的划分可以是指从视频帧中数据块的最大尺寸向视频帧中数据块的最小尺寸进行划分,直至找到数据块的最优划分方式的过程。举例来说,视频帧中数据块的最大尺寸为64px(pixel,像素)×64px,视频帧中数据块的最小尺寸为4px×4px;数据块的最大尺寸为64px×64px,数据块的最小尺寸为4px×4px仅用于举例,并不构成对本申请实施例的限定,例如数据块的最大尺寸还可以为128px×128px,数据块的最小尺寸还可以为8px×8px等等;可以将64px×64px的数据块划分为4个32px×32px的数据块;分别计算对4个32px×32px的数据块中的每一个32px×32px的数据块进行编码得到的率失真参数(rate-distortioncost,rdcost),以及计算4个32px×32px的数据块的rdcost之和(即计算得到4个32px×32px的数据块的第一总和rdcost),以及计算直接对64px×64px的数据块进行编码得到的rdcost;如果第一总和rdcost大于64px×64px的数据块的rdcost,此时确定得到数据块的划分尺寸为64px×64px,即无需对64px×64px的数据块进行划分;如果第一总和rdcost小于或等于64px×64px的数据块的rdcost,此时确定得到数据块的划分尺寸为32px×32px,还可以继续将32px×32px的数据块划分为4个16px×16px的数据块进行编码,以此类推,直至找到数据块的最优划分方式。自顶向下的数据块划分策略通常情况下都能够较为准确的确定出最优划分方式。对于场景复杂程度较低的数据块,数据块的最优划分尺寸比较大,因此对于场景复杂程度较低的数据块,通过自顶向下的数据块划分策略能够快速确定该数据块的最优划分方式。对于场景复杂程度较高的数据块,数据块的最优划分尺寸比较小,因此对于场景复杂程度较高的数据块,通过自顶向下的数据块划分策略确定该数据块的最优划分方式的过程需要耗费大量的时间成本,进而影响了该数据块的编码速度。

数据块的最优划分尺寸可以理解为当划分得到的数据块的尺寸为该尺寸时,对划分得到的数据块进行编码时的编码质量较好、编码码率较低;一般而言,场景复杂程度较低的数据块对应的最优划分尺寸比较大,场景复杂程度较高的数据块对应的最优划分尺寸比较小。数据块的场景复杂程度可以采用空间信息(spatialinformation,si)或时间信息(temporalinformation)等方法进行衡量。空间信息可以用于表征数据块的空间细节量,数据块中包含的元素越多,数据块的空间信息的数值越高,数据块的场景复杂程度越高;例如,数据块a中包含5个元素(一只猫、一条狗、一棵树、一朵花和一个太阳),数据块b中包含2个元素(一只猫和一条狗),数据块a中包含的元素多于数据块b中包含的元素,那么数据块a的空间信息的数值高于数据块b的空间信息的数值,数据块a的场景复杂程度高于数据块b的场景复杂程度。时间信息可以用于表征数据块的时间变化量,当前正在处理的目标视频帧中的目标数据块相对于目标视频帧的参考视频帧中的参考数据块的运动程度越高,目标数据块的时间信息的数值越大,目标数据块的场景复杂程度越高;参考视频帧是视频帧序列中编码顺序位于目标视频帧之前的视频帧,目标数据块在目标视频帧中的位置与参考数据块在参考视频帧中的位置相同;例如,目标数据块中包含一个元素(例如汽车元素),参考数据块中同样包含该元素,目标数据块中汽车元素相对于参考数据块中汽车元素的位移越大,目标视频帧中的目标数据块相对于参考视频帧中的参考数据块的运动程度越高,目标数据块的时间信息的数值越大,目标数据块的场景复杂程度越高。

(2)自底向上的视频帧划分策略

在对视频进行编码的过程中,对视频帧中的每一个数据块进行自底向上的、递归的划分。具体地,自底向上的、递归的划分可以是指从视频帧中数据块的最小尺寸向视频帧中数据块的最大尺寸进行划分,直至找到数据块的最优划分方式的过程。举例来说,视频帧中数据块的最小尺寸为4px×4px,视频帧中数据块的最大尺寸为64px×64px;分别对4个4px×4px的数据块中的每一个4px×4px的数据块进行编码,再对由4个4px×4px的数据块组成的8px×8px的数据块进行编码,分别计算对4个4px×4px的数据块中的每一个4px×4px的数据块进行编码得到的rdcost,以及4个4px×4px的数据块的rdcost之和(即计算得到4个4px×4px的数据块的第二总和rdcost);以及计算对8px×8px的数据块进行编码得到的rdcost;如果第二总和rdcost小于或等于8px×8px的数据块的rdcost,此时确定得到数据块的划分尺寸为4px×4px;如果第二总和rdcost大于8px×8px的数据块的rdcost,此时确定得到数据块的划分尺寸为8px×8px,还可以继续对由4个8px×8px的数据块组成的16px×16px的数据块进行编码,以此类推,直至找到数据块的最优划分方式。自底向上的视频帧划分策略通常情况下都能够较为准确的确定出最优划分方式。对于场景复杂程度较高的数据块,数据块的最优划分尺寸比较小,因此对于场景复杂程度较高的数据块,通过自底向上的视频帧划分策略能够快速确定该数据块的最优划分方式;对于场景复杂程度较低的数据块,数据块的最优划分尺寸比较大,因此对于场景复杂程度较低的数据块,通过自底向上的视频帧划分策略确定该数据块的最优划分方式的过程需要耗费大量的时间成本,进而影响了该数据块的编码速度。

由此可见,自顶向下的数据块划分策略和自底向上的视频帧划分策略通常情况下都能较为准确地确定出视频帧中每一个数据块的最优划分方式,自顶向下的数据块划分策略更适用于场景复杂程度较低的数据块,自底向上的视频帧划分策略更适用于场景复杂程度较高的数据块。

在此基础上,本申请实施例提供了进一步的视频处理方案,该视频处理方案对待编码视频帧中待编码的目标数据块进行场景复杂度分析;将目标数据块划分成多个子数据块,并分别对每一个子数据块进行场景复杂度分析;通过目标数据块的场景复杂度分析结果,以及划分得到的多个子数据块中每一个子数据块的场景复杂度分析结果,确定对目标数据块的较优划分方式,进而确定对目标数据块的编码模式,从而可以按照确定的编码模式对目标数据块进行编码。本申请实施例提及的较优划分方式是指在编码质量与编码码率之间取得平衡的前提下,能够在一定程度上提升编码速度的数据块划分方式。该视频处理方案能够根据目标数据块的场景复杂度制定与目标数据块的场景复杂度相适应的编码模式,有效提升了对目标数据块的编码速度,从而提升了视频编码速度;并且该视频处理方案更具普适性,适用于任意视频编码场景,既能确定出适用于场景复杂程度较低的数据块的编码模式,又能确定出适用于场景复杂程度较高的数据块的编码模式。

基于上述描述,本申请实施例提供一种编码器,该编码器可以用于实现上述的视频处理方案,该视频编码器可以是av1(allianceforopenmediavideo1,开放媒体视频联盟1)标准编码器,图2是本申请实施例提供的一种编码器的结构示意图,如图2所示,该编码器20包括场景复杂度分析模块201、自适应划分决策模块202和划分提前终止模块203。其中:

场景复杂度分析模块201可以用于对待编码视频帧中待编码的目标数据块进行场景复杂度分析,得到数据块指标信息;场景复杂度分析模块201还可以用于将目标数据块划分为n个子数据块,并对n个子数据块中的每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数;在实际编码场景中,n的取值一般为4,本申请实施例对此不作限定;将目标数据块划分为n个子数据块可以是指将目标数据块划分为4个尺寸相同的子数据块。

自适应划分决策模块202可以用于根据数据块指标信息和子块指标信息确定对目标数据块的编码模式。编码模式可以包括第一模式或第二模式中的任意一种,即自适应划分决策模块202可以根据数据块指标信息和子块指标信息确定出对目标数据块的编码模式为第一模式或第二模式。第一模式是指将数据块划分为n个子数据块,并对分别n个子数据块中的每一个子数据块进行编码的编码模式;第二模式是指不对目标数据块进行划分,直接对目标数据块进行编码的编码模式。若自适应划分决策模块202不能根据数据块指标信息和子块指标信息确定出对目标数据块的编码模式,那么自适应划分决策模块202还可以用于获取与目标数据块相关的m个关联数据块的关联块指标信息,并根据关联块指标信息确定对目标数据块的尝试编码顺序,m为正整数。在实际编码场景中,m的取值一般为3,本申请实施例对此不作限定。图3是本申请实施例提供的一种关联数据块的示意图,如图3所示,与目标数据块相关的m个关联数据块可以是指位于目标数据块301左部位置的关联数据块302、位于目标数据块301顶部位置的关联数据块303、位于目标数据块301左上部位置的关联数据块304。尝试编码顺序可以包括第一尝试编码顺序或第二尝试编码顺序中的任意一种,即自适应划分决策模块202可以根据关联块指标信息确定对目标数据块的尝试编码顺序为第一尝试编码顺序或第二尝试编码顺序。第一尝试编码顺序是指优先尝试按照第一模式对目标数据块进行编码,再尝试按照第二模式对目标数据块进行编码的编码顺序;第二尝试编码顺序是优先尝试按照第二模式对目标数据块进行编码,再尝试按照第一模式对目标数据块进行编码的编码顺序。

划分提前终止模块203用于在自适应划分决策模块202无法确定出对目标数据块的编码模式时设置划分终止条件,并根据设置的划分终止条件确定对目标数据块的编码模式。具体地,若自适应划分决策模块202确定对目标数据块的尝试编码顺序为第一尝试编码顺序,则划分提前终止模块203获取按照第一模式对目标数据块进行编码得到的n个子数据块的编码信息,若n个子数据块的编码信息满足第一划分终止条件(即下文中的第五条件),则划分提前终止模块203确定对目标数据块的编码模式为第一模式。若自适应划分决策模块202确定对目标数据块的尝试编码顺序为第二尝试编码顺序,则划分提前终止模块203获取按照第二模式对目标数据块进行编码得到的目标数据块的编码信息,若目标数据块的编码信息满足第二划分终止条件(即下文中的第六条件),则划分提前终止模块203确定对目标数据块的编码模式为第二模式。

图2所示的编码器20能够根据目标数据块的场景复杂度制定与目标数据块的场景复杂度相适应的编码模式,有效提升了对目标数据块的编码速度,从而提升了视频编码速度。此外,编码器20中的划分提前终止模块203能够在编码信息满足划分终止条件时确定出目标数据块的编码模式,终止对目标数据块的进一步划分,在目标数据块的编码速度与编码码率取得平衡的前提下进一步提升目标数据块的编码速度,进一步提升了视频编码效率。下面将结合图4所示的视频处理系统对本申请实施例提供的视频处理方案以及图2所示实施例提供的编码器20的具体应用场景进行介绍。

图4是本申请实施例提供的一种视频处理系统的架构示意图,如图4所示,该视频处理系统包括p个终端(例如第一终端401、第二终端402等)和服务器403,p为大于1的整数。其中,p个终端中的任一个终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能可穿戴设备等带摄像功能的设备,但并不局限于此。p个终端中的任一个终端可以支持各种应用程序的安装及运行,此处的应用程序可以包括但不限于社交应用程序(例如即时通信应用程序、音频会话应用程序、视频会话应用程序等等)、音视频应用程序(例如音视频点播应用程序、音视频播放器等等)、游戏应用程序等等;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,本申请实施例在此不作限制。p个终端与服务器403可以通过有线通信或者无线通信方式进行直接或间接地连接,本申请在此不做限制。下面以视频会话场景为例,对本申请实施例提供的视频处理方案进行介绍:

(1)编码器20分别部署于p个终端中,由p个终端进行视频处理。

p个用户分别使用p个终端中运行的视频会话应用程序参与视频会话,例如用户1使用第一终端401中运行的视频会话应用程序参与视频会话,用户2使用第二终端402中运行的视频会话应用程序参与视频会话等等;服务器403用于对p个终端在视频会话过程中产生的目标视频进行传输。其中,目标视频可以包括p个终端在视频会话过程中产生的会话视频。第一终端401是p个终端中的任一个终端,此处以第一终端401对目标视频进行处理为例进行说明,p个终端中除第一终端401之外的其他终端对目标视频的处理过程与第一终端401对目标视频的处理过程相同。

目标视频由多个连续的视频帧组成,目标视频包含的每一个视频帧中包括多个待编码的数据块。编码器20部署于第一终端401中,第一终端401调用编码器20对目标视频包含的每一个视频帧中的各个数据块的场景复杂度进行分析,确定出对每一个数据块的编码模式,并分别按照确定得到的编码模式对每一个数据块进行编码,最终得到编码后的目标视频。第一终端401可以将编码后的目标视频发送至服务器403,由服务器403将编码后的目标视频传输至参与视频会话的其他终端中;或者,第一终端401还可以直接将编码后的目标视频传输至参与视频会话的其他终端中;其他终端接收到编码后的目标视频,解析并播放目标视频,以实现p个终端参与的视频会话。

(2)编码器20部署于服务器403中,由服务器403进行视频处理。

p个用户分别使用p个终端中运行的视频会话应用程序参与视频会话,例如用户1使用第一终端401中运行的视频会话应用程序参与视频会话,用户2使用第二终端402中运行的视频会话应用程序参与视频会话等等;服务器403用于对p个终端在视频会话过程中产生的目标视频进行处理和传输。其中,目标视频可以包括p个终端在视频会话过程中产生的会话视频。

目标视频可以是第一终端401在参与视频会话的过程中产生的会话视频,第一终端401将目标视频传输至服务器403,目标视频由多个连续的视频帧组成,目标视频包含的每一个视频帧中包括多个待编码的数据块。编码器20部署于服务器403中,服务器403调用编码器20对目标视频包含的每一个视频帧中的各个数据块的场景复杂度进行分析,确定出对每一个数据块的编码模式,并分别按照确定得到的编码模式对每一个数据块进行编码,最终得到编码后的目标视频。服务器403将编码后的目标视频传输至参与视频会话的其他终端中;其他终端接收到编码后的目标视频,解析并播放目标视频,以实现p个终端参与的视频会话。

本申请实施例中,参与视频会话的各个终端或服务器可以调用编码器对视频会话过程中产生的目标视频进行编码,并且各个终端或服务器对目标视频中包含的各个数据块的编码模式是根据各个数据块的场景复杂度确定得到的,有效提升了对数据块的编码速度,从而提升了对目标视频的编码速度,在保障目标视频质量的同时,大幅度加快目标视频的编码速度,从而提升目标视频的流畅性,在一定程度上提升了视频会话的会话质量,优化视频会话效果,提升用户体验。

图5是本申请实施例提供的一种视频处理方法的流程示意图,该视频处理方法可以由一个智能设备来执行,该智能设备可以是用户终端或者服务器,该用户终端可以是智能手机、平板电脑、智能可穿戴设备等带摄像功能的设备,该智能设备例如可以是图4所示的视频处理系统中的任一个终端或服务器,该视频处理方法包括以下步骤s501至步骤s505:

s501,从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块。待编码视频由多个连续的视频帧组成,从待编码视频中获取目标视频帧,目标视频帧是待编码视频中的任一个视频帧;目标视频帧中包含多个数据块,多个数据块中可能存在已编码的数据块和待编码的数据块,从目标视频帧中确定待编码的目标数据块,目标数据块是目标视频帧中任一个待编码的数据块。

s502,对目标数据块进行场景复杂度分析,得到数据块指标信息。对目标数据块进行场景复杂度分析得到的数据块指标信息可以包括但不限于以下至少一种:目标数据块的预估失真参数、目标数据块的空间信息参数、目标数据块的时间信息参数。其中,预估失真(distortion,dist)参数是对帧内预测编码或帧间预测编码过程中的失真程度进行估计得到的;目标数据块的预估失真参数可以用于衡量重建后的目标数据块相比于原始的目标数据块的失真程度;原始的目标数据块是指未进行编码的目标数据块,重建后的目标数据块是指对目标数据块进行帧内预测编码或帧间预测编码后得到的编码后的目标数据块。目标数据块的空间信息参数可以是指对目标数据块进行计算得到的空间信息的数值;目标数据块的时间信息参数可以是指对目标数据块进行计算得到的时间信息的数值。

s503,将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数。

子块指标信息可以包括n个子块指标数据,第i个子数据块是n个子数据块中的任一个子数据块,第i个子块指标数据是n个子块指标数据中的任一个子块指标数据,第i个子数据块与第i个子块指标数据对应,第i个子块指标数据是对第i个子数据块进行场景复杂度分析得到的,i∈[1,n]。

第i个子块指标数据可以包括但不限于以下至少一种:第i个子数据块的失真估计参数、第i个子数据块的空间信息参数、第i个子数据块的时间信息参数。其中,第i个子数据块的预估失真参数可以用于衡量重建后的第i个子数据块相比于原始的第i个子数据块的失真程度;原始的第i个子数据块是指未进行编码的第i个子数据块,重建后的第i个子数据块是指对第i个子数据块进行帧内预测编码或帧间预测编码后得到的编码后的第i个子数据块。第i个子数据块的空间信息参数可以是指对第i个子数据块进行计算得到的空间信息的数值;第i个子数据块的时间信息参数可以是指对第i个子数据块进行计算得到的时间信息的数值。

s504,根据数据块指标信息和子块指标信息,确定对目标数据块的编码模式。

在一个实施例中,可以将数据块指标信息和子块指标信息输入联合统计模型,采用联合统计模型对数据块指标信息和子块指标信息进行计算;获取联合统计模型对数据块指标信息和子块指标信息进行计算后得到的输出值,并根据联合统计模型的输出值确定对目标数据块的编码模式。联合统计模型可以是采用已确定编码模式的数据块的数据块指标信息,以及对已确定编码模式的数据块进行划分得到的n个子数据块的子块指标信息进行训练得到的。

若联合统计模型的输出值满足第一条件,即输出值大于第一划分阈值,则确定对目标数据块的编码模式为第一模式;联合统计模型的输出值满足第一条件表明,对目标数据块进行划分得到的n个子数据块之间的关联性较弱,更倾向于将目标数据块划分为n个子数据块后分别对每一个子数据块进行编码。若联合统计模型的输出值满足第二条件,即输出值小于第二划分阈值,则确定对目标数据块的编码模式为第二模式;联合统计模型的输出值满足第二条件表明,对目标数据块进行划分得到的n个子数据块之间的关联性较强,更倾向于不对目标数据块进行划分,而直接对目标数据块进行编码。需要说明的是,第一划分阈值和第二划分阈值可以是在联合统计模型的训练过程中训练得到的。

s505,按照确定的编码模式对目标数据块进行编码。若编码模式为第一模式,则按照确定的编码模式对目标数据块进行编码可以是指按照第一模式对目标数据块进行编码,具体可以是指将目标数据块划分成n个子数据块,并分别将每一个子数据块输入编码器中进行编码。若编码模式为第二模式,则按照确定的编码模式对目标数据块进行编码可以是指按照第二模式对目标数据块进行编码,具体可以是指直接将目标数据块输入编码器中进行编码。

本申请实施例中,将对目标数据块进行场景复杂度分析的场景复杂度分析结果(即数据块指标信息和子块指标信息)输入联合统计模型中进行计算,并根据联合统计模型计算后的输出值确定对目标数据块的编码模式;本申请实施例提供的视频处理方案适用于任意视频场景中,能够根据任意视频中待编码的目标数据块的场景复杂度自适应地对目标数据块的编码模式进行调整,从而确定出与目标数据块的场景复杂度相适应的编码模式,有效提升了对目标数据块的编码速度,进而提升视频编码速度,并且能够获得视频的编码速度与视频的编码码率之间的最佳平衡。

图6是本申请实施例提供的另一种视频处理方法的流程示意图,该视频处理方法可以由一个智能设备来执行,该智能设备可以是用户终端或者服务器,该用户终端可以是智能手机、平板电脑、智能可穿戴设备等带摄像功能的设备,该智能设备例如可以是图4所示的视频处理系统中的任一个终端或服务器,该视频处理方法包括以下步骤s601至步骤s608:

s601,从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块。

s602,对目标数据块进行场景复杂度分析,得到数据块指标信息。

s603,将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数。

本申请实施例中步骤s601的执行过程与图5所示实施例中步骤s501的执行过程相同,步骤s602的执行过程与图5所示实施例中步骤s502的执行过程相同,步骤s603的执行过程与图5所示实施例中步骤s503的执行过程相同,具体执行过程可参见图5所示实施例的描述,在此不再赘述。

s604,将数据块指标信息和子块指标信息输入联合统计模型。

s605,获取联合统计模型对数据块指标信息和子块指标信息进行计算后得到的输出值。

s606,若输出值满足第三条件,则对与目标数据块相关的m个关联数据块进行场景复杂度分析,得到m个关联数据块的关联块指标信息,m为正整数。

s607,根据关联块指标信息确定对目标数据块的编码模式。

s606至s607中,若联合统计模型的输出值满足第三条件,即输出值小于或等于第一划分阈值,且输出值大于或等于第二划分阈值,表明对目标数据块进行划分得到的n个子数据块之间的关联性处于较强和较弱之间,没有明显倾向于将目标数据块划分为n个子数据块后分别对每一个子数据块进行编码,也没有明显倾向于不对目标数据块进行划分而直接对目标数据块进行编码。在这种情况下,确定与目标数据块相关的m个关联数据块,并对m个关联数据块进行场景复杂度分析,得到m个关联数据块的关联块指标信息,并根据m个关联数据块的关联块指标信息确定对目标数据块的编码模式,m为正整数。m个关联数据块的关联块指标信息可以包括m个关联数据块中被划分为多个子数据块进行编码的关联数据块的第一数量。

在一个实施例中,若第一数量满足第四条件,即第一数量大于或等于第一数量阈值,则表明与目标数据块相关的m个关联数据块的场景复杂程度较高,可以先尝试将目标数据块划分成n个待分析子数据块(即n个子数据块),并对n个待分析子数据块进行场景复杂度分析,得到n个待分析子数据块的待分析子数据块指标信息,并根据待分析子数据块指标信息进一步确定对目标数据块的编码模式。需要说明的是,第一数量阈值可以是根据经验值设定的,例如,与目标数据块相关的关联数据块的数量为3个,可以将第一数量阈值设置为2;以图3为例,与目标数据块301相关的3个关联数据块分别是关联数据块302、关联数据块303和关联数据块304,关联数据块302和关联数据块303被划分为多个子数据块进行编码,关联数据块304未被划分而直接进行编码,即3个关联数据块中被划分为多个子数据块进行编码的关联数据块的第一数量为2个,第一数量满足第四条件,那么可以确定与目标数据块301相关的3个关联数据块的场景复杂程度较高,可以先尝试将目标数据块301划分成n个待分析子数据块。待分析子数据块指标信息可以包括n个待分析子数据块中满足进一步划分条件的待分析子数据块的第二数量;具体地,待分析子数据块指标信息可以是指采用联合统计模型对n个待分析子数据块中的每一个待分析子数据块的数据块指标信息和将每一个待分析数据块划分成的n个子数据块的子块指示信息进行计算得到的n个输出值中,满足第一条件的输出值的第二数量。

在一个实施例中,若第二数量满足第五条件,即第二数量大于或等于第二数量阈值,可以确定对目标数据块的编码模式为第一模式。若第二数量不满足第五条件,即第二数量小于第二数量阈值,再尝试直接对目标数据块进行编码,并根据直接对目标数据块进行编码得到目标数据块的编码信息,以及根据将目标数据块划分成n个子数据块并分别对每一个子数据块进行编码得到的n个子数据块的编码信息确定对目标数据块的编码模式。需要说明的是,第二数量阈值也可以是根据经验值设定的;例如,将目标数据块划分成4个待分析子数据块,可以将第二数量阈值设置为3,若4个待分析子数据块全部满足进一步划分条件,即4个待分析子数据块中满足进一步划分条件的待分析子数据块的第二数量为4个,第二数量满足第五条件,可以确定对目标数据块的编码模式为第一模式。

在一个实施例中,若第一数量不满足第四条件,即第一数量小于第一数量阈值,则表明与目标数据块相关的m个关联数据块的场景复杂程度较低,可以先尝试不对数据块进行划分而直接对目标数据块进行编码,并获取对目标数据块进行编码得到目标数据块的编码信息,目标数据块的编码信息可以包括目标数据块的编码失真参数。需要说明的是,目标数据块的失真估计参数可以是指目标数据块的编码过程中失真程度的估计值,而目标数据块的编码失真参数可以用于衡量编码后的目标数据块(即重建后的目标数据块)相比于编码前的目标数据块(即原始的目标数据块)的实际失真程度。进一步地,根据目标数据块的编码失真参数和对目标数据块进行量化的量化参数(quatizationparameter,qp)计算得到编码参数,编码参数的计算过程可参见下述公式1:

code=dist/qp2公式1

如上述公式1,code表示编码参数,dist表示目标数据块的编码失真参数,qp表示量化参数。

在一个实施例中,若编码参数满足第六条件,即编码参数小于第三划分阈值,则可以确定对目标数据块的编码模式为第二模式。在另一个实施例中,若编码参数不满足第六条件,即编码参数大于或等于第三划分阈值,再尝试将目标数据块划分成n个子数据块,并分别对每一个子数据块进行编码,并根据直接对目标数据块进行编码得到目标数据块的编码信息,以及根据将目标数据块划分成n个子数据块并分别对每一个子数据块进行编码得到的n个子数据块的编码信息确定对目标数据块的编码模式。需要说明的是,第三划分阈值可以是在联合统计模型的训练过程中训练得到的。

在以上两个实施例中,目标数据块的编码信息还可以包括目标数据块的第一编码率失真损失参数;n个子数据块的编码信息可以包括n个子数据块的第二编码率失真损失参数,第二编码率失真损失参数是根据n个子数据块中的每一个子数据块的第三编码率失真损失参数计算得到的,例如第二编码率失真损失参数可以是n个子数据块中的每一个子数据块的第三编码率失真损失参数的和。其中,第一编码率失真损失参数是根据按照直接对目标数据块进行编码的编码模式的编码码率与编码失真参数计算得到的,例如第一编码率失真损失参数可以是编码码率与编码失真参数的比值,第一编码率失真损失参数可以用于衡量直接对目标数据块进行编码的编码效果,第一编码率失真损失参数越小,对目标数据块进行编码的效果越好,目标数据块的编码效果好可以是指在保证编码后的目标数据块相比于编码器前的目标数据块的失真程度较低的情况下,目标数据块的编码码率较低。类似的,第二编码率失真损失参数可以用于衡量将目标数据块划分成n个子数据块并分别对每一个子数据块进行编码的编码效果,第二编码率失真损失参数越小,对目标数据块进行编码的效果越好。若第一编码率失真损失参数大于或等于第二编码率失真损失参数,则确定对目标数据块的编码模式为第一模式;若第一编码率失真损失参数小于第二编码率失真损失参数,则确定对目标数据块的编码模式为第二模式。

s608,按照确定的编码模式对目标数据块进行编码。

本申请实施例中步骤s608的执行过程与图5所示实施例中步骤s505的执行过程相同,具体执行过程可参见图5所示实施例的描述,在此不再赘述。

本申请实施例中,与目标数据块相关的关联数据块的场景复杂度在一定程度也能反映目标数据块的场景复杂程度,因此,本申请实施例根据目标数据块的场景复杂度(即联合统计模型的输出值)以及与目标数据块相关的关联数据块的场景复杂度(即关联块指示信息)联合确定对目标数据块的编码模式。本申请实施例提供的视频处理方案具有普适性,能够根据任意视频中待编码的目标数据块的场景复杂度自适应地对目标数据块的编码模式进行调整,从而确定出与目标数据块的场景复杂度相适应的编码模式,有效提升了对目标数据块的编码速度,进而提升视频编码速度,并且能够在不损失视频编码效率的情况下,有效提升视频编码速度,并获得视频编码速度与视频编码码率之间的最佳平衡。

图7是本申请实施例提供的另一种视频处理方法的流程示意图,该视频处理方法可以由一个智能设备来执行,该智能设备可以是用户终端或者服务器,该用户终端可以是智能手机、平板电脑、智能可穿戴设备等带摄像功能的设备,该智能设备例如可以是图4所示的视频处理系统中的任一个终端或服务器,该视频处理方法包括以下步骤s701至步骤s720:

s701,从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块。

s702,对目标数据块进行场景复杂度分析,得到数据块指标信息。

s703,将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息。

s704,将数据块指标信息和子块指标信息输入联合统计模型中进行计算,得到联合统计模型的输出值。

s705,判断输出值是否满足第一条件。若输出值满足第一条件,则执行步骤s706;若输出值不满足第一条件,则执行步骤s707。

s706,若输出值满足第一条件,则确定对目标数据块的编码模式为第一模式。步骤s706执行结束后,执行步骤s720。

s707,若输出值不满足第一条件,则判断输出值是否满足第二条件。若输出值满足第二条件,则执行步骤s708;若输出值不满足第二条件,则执行步骤s709。

s708,若输出值满足第二条件,则确定对目标数据块的编码模式为第二模式。步骤s708执行结束后,执行步骤s720。

s709,输出值不满足第二条件,则判断输出值是否满足第三条件。若输出值满足第三条件,则执行步骤s710。

s710,若输出值满足第三条件,则确定与目标数据块相关的m个关联数据块中被划分为多个子数据块进行编码的关联数据块的第一数量。

s711,判断第一数量是否满足第四条件。若第一数量满足第四条件,则执行步骤s712;若第一数量不满足第四条件,则执行步骤s716。

s712,若第一数量满足第四条件,则优先尝试将目标子数据块划分成n个子数据块,并分别对每一个子数据块进行编码。

s713,确定n个子数据块中满足进一步划分条件的子数据块的第二数量。

s714,判断第二数量是否满足第五条件。若第二数量满足第五条件,则确定对目标数据块的编码模式为第一模式,并执行步骤s720。若第二数量不满足第五条件,则执行步骤s715。

s715,再尝试不对目标数据进行划分,直接对目标数据块进行编码,并根据编码信息确定对目标数据块的编码模式。具体地,获取直接对目标数据块进行编码得到的目标数据块的编码信息,以及获取将目标数据块划分成n个子数据块并分别对每一个子数据块进行编码得到的n个子数据块的编码信息,并根据目标数据块的编码信息和n个子数据块的编码信息确定对目标数据块的编码模式。具体执行过程可参见图6所示实施例,步骤s715执行结束后,执行步骤s720。

s716,若第一数量不满足第四条件,则优先尝试不对目标数据块进行划分,直接对目标数据块进行编码,并确定目标数据块的编码失真参数。

s717,根据编码失真参数和量化参数计算得到编码参数。

s718,判断编码参数是否满足第六条件。若编码参数满足第六条件,则确定对目标数据块的编码模式为第二模式,并执行步骤s720;若编码参数不满足第六条件,则执行步骤s719。

s719,再尝试将目标子数据块划分成n个子数据块,并分别对每一个子数据块进行编码,并根据编码信息确定对目标数据块的编码模式。具体地,获取直接对目标数据块进行编码得到的目标数据块的编码信息,以及获取将目标数据块划分成n个子数据块并分别对每一个子数据块进行编码得到的n个子数据块的编码信息,并根据目标数据块的编码信息和n个子数据块的编码信息确定对目标数据块的编码模式。具体执行过程可参见图6所示实施例,步骤s719执行结束后,执行步骤s720。

s720,按照确定得到的编码模式对目标数据块进行编码。按照确定得到的编码模式对目标数据块进行编码后,可以从待编码视频帧中确定除目标数据块之外的另一个待编码的数据块,并根据该待编码的数据块的场景复杂度确定对该待编码的数据块的编码模式,并按照确定得到的编码模式,对该待编码的数据块进行编码。根据待编码的数据块的场景复杂度确定对该待编码的数据块的编码模式的过程,与根据目标数据块的场景复杂度确定对目标数据块的编码模式的过程相同。

本申请实施例中,与目标数据块相关的关联数据块的场景复杂度在一定程度也能反映目标数据块的场景复杂程度,因此,本申请实施例根据目标数据块的场景复杂度(即联合统计模型的输出值)以及与目标数据块相关的关联数据块的场景复杂度(即关联块指示信息)联合确定对目标数据块的编码模式。本申请实施例设置了6个判断条件,对目标数据块的场景复杂度进行多角度综合分析,从而使得最终确定得到的对目标数据块的编码模式与目标数据块的场景复杂度的适应程度较高,有效提升了对目标数据块的编码速度,进而提升视频编码速度,并且能够在保证编码后的视频的清晰度与流畅度的同时,在不损失视频编码质量与视频编码效率的情况下,有效提升视频编码速度。

请参见图8,图8是本申请实施例提供的一种视频处理装置的结构示意图,本申请实施例的所述视频处理装置80可以设置在智能设备中,该智能设备可以是智能终端,也可以是服务器,该视频处理装置80可以用于执行图5、图6或图7所示的视频处理方法中的相应步骤,该视频处理装置80包括如下单元。

获取单元801,用于从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块;

处理单元802,用于对目标数据块进行场景复杂度分析,得到数据块指标信息;将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数;根据数据块指标信息和子块指标信息,确定对目标数据块的编码模式;以及,按照确定的编码模式对目标数据块进行编码。

在一个实施例中,数据块指标信息包括:目标数据块的失真估计参数、目标数据块的空间信息参数、目标数据块的时间信息参数中的任意一种或多种;

子块指标信息包括:n个子块指标数据,其中,n个子块指标数据中的第i个子块指标数据包括:n个子数据块中的第i个子数据块的失真估计参数、第i个子数据块的空间信息参数、第i个子数据块的时间信息参数中的任意一种或多种,i∈[1,n]。

在一个实施例中,处理单元802,具体用于:

将数据块指标信息和子块指标信息输入联合统计模型;

获取联合统计模型对数据块指标信息和子块指标信息进行计算后得到的输出值;

根据输出值确定对目标数据块的编码模式。

在一个实施例中,处理单元802,具体用于:

若输出值满足第一条件,则确定编码模式为第一模式;

将目标数据块划分成n个子数据块,并分别将每一个子数据块输入编码器中进行编码;

输出值满足第一条件是指:输出值大于第一划分阈值。

在一个实施例中,处理单元802,具体用于:

若输出值满足第二条件,则确定编码模式为第二模式;

将目标数据块输入编码器中进行编码;

输出值满足第二条件是指:输出值小于第二划分阈值。

在一个实施例中,处理单元802,具体用于:

若输出值满足第三条件,则对与目标数据块相关的m个关联数据块进行场景复杂度分析,得到m个关联数据块的关联块指标信息,m为正整数;

根据关联块指标信息确定对目标数据块的编码模式;

输出值满足第三条件是指:输出值小于或等于第一划分阈值,且输出值大于或等于第二划分阈值。

在一个实施例中,处理单元802,具体用于:

获取关联块指标信息,关联块指标信息包括:m个关联数据块中被划分为多个子数据块进行编码的关联数据块的第一数量;

若第一数量满足第四条件,则将目标数据块划分成n个待分析子数据块;

对n个待分析子数据块进行场景复杂度分析,确定n个待分析子数据块的待分析子数据块指标信息;

根据待分析子数据块指标信息确定对目标数据块的编码模式;

第一数量满足第四条件是指:第一数量大于或等于第一数量阈值。

在一个实施例中,处理单元802,具体用于:

获取待分析子数据块指标信息,待分析子数据块指标信息包括:n个待分析子数据块中满足进一步划分条件的待分析子数据块的第二数量;

若第二数量满足第五条件,则确定编码模式为第一模式;

若第二数量不满足第五条件,则将目标数据块输入编码器中进行编码,并根据编码得到的目标数据块的编码信息确定对目标数据块的编码模式;

第二数量满足第五条件是指:第二数量大于或等于第二数量阈值;第二数量不满足第五条件是指:第二数量小于第二数量阈值。

在一个实施例中,处理单元802,还用于:

若第一数量不满足第四条件,则将目标数据块输入编码器中进行编码;

根据编码得到的目标数据块的编码信息确定对目标数据块的编码模式;

第一数量不满足第四条件是指:第一数量小于第一数量阈值。

在一个实施例中,目标数据块的编码信息包括目标数据块的编码失真参数;处理单元802,具体用于:

根据目标数据块的编码失真参数和对目标数据块进行量化的量化参数计算得到编码参数;

若编码参数满足第六条件,则确定编码模式为第二模式;

若编码参数不满足第六条件,则将目标数据块划分成n个子数据块,并分别将n个子数据块中的每一个子数据块输入编码器中进行编码;

根据目标数据块的编码信息和编码得到的n个子数据块的编码信息确定对目标数据块的编码模式;

编码参数满足第六条件是指:编码参数小于第三划分阈值;编码参数不满足第六条件是指:编码参数大于或等于第三划分阈值。

在一个实施例中,目标数据块的编码信息还包括目标数据块的第一编码率失真损失参数;n个子数据块的编码信息包括n个子数据块的第二编码率失真损失参数,第二编码率失真损失参数是根据n个子数据块中的每一个子数据块的第三编码率失真损失参数计算得到的;处理单元802,具体用于:

若第一编码率失真损失参数大于或等于第二编码率失真损失参数,则确定对目标数据块的编码模式为第一模式;

若第一编码率失真损失参数小于第二编码率失真损失参数,则确定对目标数据块的编码模式为第二模式。

根据本申请的一个实施例,图8所示的视频处理装置80中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再划分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该视频处理装置80也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行如图5、图6或图7中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的视频处理装置80,以及来实现本申请实施例的视频处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于图4所示的视频处理系统的任一个终端(例如第一终端401或第二终端402等等)或服务器403中,并在其中运行。

本申请实施例中,通过对目标视频帧中待编码的目标数据块进行场景复杂度分析,分别得到对整个待编码的目标数据块的分析结果和将待编码的目标数据块划分成多个子数据块后的分析结果,并基于这些分析结果选择编码模式,可以为当前待编码的目标数据块较为准确地确定出合适的编码模式,能够有效提升对目标数据块的编码速度,提升视频编码效率。

请参见图9,图9是本申请实施例提供的一种智能设备的结构示意图,该智能设备90至少包括处理器901以及存储器902。其中,处理器901以及存储器902可通过总线或者其它方式连接。

处理器901可以是中央处理器(centralprocessingunit,cpu)。处理器901还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)等。上述pld可以是现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)等。

存储器902可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器902也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),固态硬盘(solid-statedrive,ssd)等;存储器902还可以包括上述种类的存储器的组合。

存储器902用于存储计算机程序,计算机程序包括计算机指令,处理器901用于执行计算机指令。处理器901(或称cpu(centralprocessingunit,中央处理器))是智能设备90的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。

该智能设备90可以是图4所示的视频处理系统中的任一个终端(例如第一终端401或第二终端402等等)或服务器403;该存储器902中存储有计算机程序,计算机程序包括一条或多条计算机指令;由处理器901加载并执行一条或多条计算机指令,以实现图5、图6或图7所示方法实施例中的相应步骤;具体实现中,存储器902中的计算机指令由处理器901加载并执行如下步骤:

从待编码视频中获取目标视频帧,并从目标视频帧中确定待编码的目标数据块;

对目标数据块进行场景复杂度分析,得到数据块指标信息;

将目标数据块划分成n个子数据块,并分别对每一个子数据块进行场景复杂度分析,得到子块指标信息,n为大于或等于2的整数;

根据数据块指标信息和子块指标信息,确定对目标数据块的编码模式;

按照确定的编码模式对目标数据块进行编码。

在一个实施例中,数据块指标信息包括:目标数据块的失真估计参数、目标数据块的空间信息参数、目标数据块的时间信息参数中的任意一种或多种;

子块指标信息包括:n个子块指标数据,其中,n个子块指标数据中的第i个子块指标数据包括:n个子数据块中的第i个子数据块的失真估计参数、第i个子数据块的空间信息参数、第i个子数据块的时间信息参数中的任意一种或多种,i∈[1,n]。

在一个实施例中,存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

将数据块指标信息和子块指标信息输入联合统计模型;

获取联合统计模型对数据块指标信息和子块指标信息进行计算后得到的输出值;

根据输出值确定对目标数据块的编码模式。

在一个实施例中,存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

若输出值满足第一条件,则确定编码模式为第一模式;

将目标数据块划分成n个子数据块,并分别将每一个子数据块输入编码器中进行编码;

输出值满足第一条件是指:输出值大于第一划分阈值。

在一个实施例中,存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

若输出值满足第二条件,则确定编码模式为第二模式;

将目标数据块输入编码器中进行编码;

输出值满足第二条件是指:输出值小于第二划分阈值。

在一个实施例中,存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

若输出值满足第三条件,则对与目标数据块相关的m个关联数据块进行场景复杂度分析,得到m个关联数据块的关联块指标信息,m为正整数;

根据关联块指标信息确定对目标数据块的编码模式;

输出值满足第三条件是指:输出值小于或等于第一划分阈值,且输出值大于或等于第二划分阈值。

在一个实施例中,存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

获取关联块指标信息,关联块指标信息包括:m个关联数据块中被划分为多个子数据块进行编码的关联数据块的第一数量;

若第一数量满足第四条件,则将目标数据块划分成n个待分析子数据块;

对n个待分析子数据块进行场景复杂度分析,确定n个待分析子数据块的待分析子数据块指标信息;

根据待分析子数据块指标信息确定对目标数据块的编码模式;

第一数量满足第四条件是指:第一数量大于或等于第一数量阈值。

在一个实施例中,存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

获取待分析子数据块指标信息,待分析子数据块指标信息包括:n个待分析子数据块中满足进一步划分条件的待分析子数据块的第二数量;

若第二数量满足第五条件,则确定编码模式为第一模式;

若第二数量不满足第五条件,则将目标数据块输入编码器中进行编码,并根据编码得到的目标数据块的编码信息确定对目标数据块的编码模式;

第二数量满足第五条件是指:第二数量大于或等于第二数量阈值;第二数量不满足第五条件是指:第二数量小于第二数量阈值。

在一个实施例中,存储器902中的计算机指令由处理器901加载时还执行如下步骤:

若第一数量不满足第四条件,则将目标数据块输入编码器中进行编码;

根据编码得到的目标数据块的编码信息确定对目标数据块的编码模式;

第一数量不满足第四条件是指:第一数量小于第一数量阈值。

在一个实施例中,目标数据块的编码信息包括目标数据块的编码失真参数;存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

根据目标数据块的编码失真参数和对目标数据块进行量化的量化参数计算得到编码参数;

若编码参数满足第六条件,则确定编码模式为第二模式;

若编码参数不满足第六条件,则将目标数据块划分成n个子数据块,并分别将n个子数据块中的每一个子数据块输入编码器中进行编码;

根据目标数据块的编码信息和编码得到的n个子数据块的编码信息确定对目标数据块的编码模式;

编码参数满足第六条件是指:编码参数小于第三划分阈值;编码参数不满足第六条件是指:编码参数大于或等于第三划分阈值。

在一个实施例中,目标数据块的编码信息还包括目标数据块的第一编码率失真损失参数;n个子数据块的编码信息包括n个子数据块的第二编码率失真损失参数,第二编码率失真损失参数是根据n个子数据块中的每一个子数据块的第三编码率失真损失参数计算得到的;存储器902中的计算机指令由处理器901加载时具体执行如下步骤:

若第一编码率失真损失参数大于或等于第二编码率失真损失参数,则确定对目标数据块的编码模式为第一模式;

若第一编码率失真损失参数小于第二编码率失真损失参数,则确定对目标数据块的编码模式为第二模式。

本申请实施例中,通过对目标视频帧中待编码的目标数据块进行场景复杂度分析,分别得到对整个待编码的目标数据块的分析结果和将待编码的目标数据块划分成多个子数据块后的分析结果,并基于这些分析结果选择编码模式,可以为当前待编码的目标数据块较为准确地确定出合适的编码模式,能够有效提升对目标数据块的编码速度,提升视频编码效率。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的视频处理方法。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,计算机可读存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。

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