一种视频数据处理方法、装置、计算机设备及存储介质与流程

文档序号:23665063发布日期:2021-01-15 14:04阅读:89来源:国知局
一种视频数据处理方法、装置、计算机设备及存储介质与流程

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



背景技术:

在数据传输场景(例如,视频通话场景、直播场景等)中,具有视频编码功能的计算机设备需要对待传输的视频数据进行编码处理,得到视频数据对应的视频码流,以提高传输效率。可以理解的是,该计算机设备能够从视频数据中获取待进行编码处理的目标视频帧的待编码单元,进而可以分别对待编码单元进行帧间预测和帧内预测这样的预测处理,以确定出最优预测模式。其中,在帧间预测过程中,帧间预测模式可以包括单参考帧模式和组合参考帧模式。这里的单参考帧模式中可以包括非运动估计模式和运动估计模式。

应当理解,计算机设备在基于非运动估计模式,对待编码单元进行帧间预测处理时,可以获取非运动估计模式对应的编码策略。这里的编码策略可以包括非运动估计模式1(例如,nearestmv模式),非运动估计模式2(例如,nearmv模式)和非运动估计模式3(例如,globalmv模式)这样的非运动估计模式。其中,每个非运动估计模式均会对应多个参考帧。例如,在目标视频帧的帧类型为b帧时,每个非运动估计模式均会对应7个参考帧。这意味着在计算机设备基于非运动估计模式,对待编码单元进行帧间预测处理时,将会进行21次帧间预测处理,计算复杂度较大,进而导致该计算机设备在非运动估计模式下,降低了对最优参考帧进行选择的效率。



技术实现要素:

本申请实施例提供一种视频数据处理方法、装置、计算机设备及存储介质,可以提高最优参考帧的选择效率。

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

获取目标视频帧中的待编码单元以及待编码单元对应的非运动估计模式;非运动估计模式包括第一非运动估计模式;

在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧,根据参考视频帧的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板;

获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板;

在参考块满足第三模板生成条件时,获取与第三模板生成条件相关联的补充参考帧,基于补充参考帧构建与待编码单元相关联的第三模板;

基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板;第一预测模板用于预测待编码单元在第一非运动估计模式下的目标最优参考帧。

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

模式获取模块,用于获取目标视频帧中的待编码单元以及待编码单元对应的非运动估计模式;非运动估计模式包括第一非运动估计模式;

第一模板构建模块,用于在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧,根据参考视频帧的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板;

第二模板构建模块,用于获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板;

第三模板构建模块,用于在参考块满足第三模板生成条件时,获取与第三模板生成条件相关联的补充参考帧,基于补充参考帧构建与待编码单元相关联的第三模板;

预测模板生成模块,用于基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板;第一预测模板用于预测待编码单元在第一非运动估计模式下的目标最优参考帧。

其中,该模式获取模块包括:

目标视频帧获取单元,用于获取由图像采集器所采集到的视频数据,从视频数据中获取待进行编码处理的视频帧,将获取到的视频帧作为目标视频帧;

图像块划分处理单元,用于通过视频编码器对目标视频帧进行图像块划分处理,得到目标视频帧的一个或者多个图像块,从一个或者多个图像块中获取待编码单元;

模式获取单元,用于获取视频编码器的编码策略,从与编码策略相关联的编码模式中获取第一非运动估计模式,将第一非运动估计模式作为待编码单元对应的非运动估计模式。

其中,该第一模板构建模块包括:

参考帧确定单元,用于在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧;参考视频帧包括n个参考帧;n为正整数;

初始失真参数确定单元,用于对每个参考帧的失真参数分别进行初始化处理,得到每个参考帧对应的初始失真参数;

候选列表确定单元,用于在目标视频帧中获取与待编码单元具有相邻位置关系的相邻块,基于相邻块的参考帧信息、相邻块对应的运动向量以及向量记录条件,确定与待编码单元相关联的运动向量候选列表;运动向量候选列表中的目标运动向量是由相邻块对应的运动向量所确定的;

目标失真参数确定单元,用于基于目标运动向量确定待编码单元对应的初始预测单元,基于待编码单元和初始预测单元,确定目标运动向量的目标失真参数;

失真确定单元,用于基于初始失真参数、目标失真参数以及图像失真条件,分别确定每个参考帧对应的第一失真参数;

第一模板构建单元,用于基于每个参考帧对应的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。

其中,该候选列表确定单元包括:

相邻块获取子单元,用于获取与目标视频帧相关联的向量记录条件,在目标视频帧中获取与待编码单元具有相邻位置关系的相邻块,且获取相邻块的参考帧信息以及相邻块的最优预测模式;

目标运动向量确定子单元,用于从n个参考帧中遍历获取参考帧xk,在相邻块的最优预测模式为帧间预测模式,且相邻块的参考帧信息与参考帧xk相同时,将相邻块对应的运动向量确定为满足向量记录条件的目标运动向量,将目标运动向量记录至参考帧xk所在的目标列表栏;目标列表栏属于初始运动向量候选列表中的列表栏;k为小于或者等于n的正整数;

候选列表确定子单元,用于将记录有目标运动向量的初始运动向量候选列表作为与待编码单元相关联的运动向量候选列表。

其中,待编码单元的图像尺寸为m×n;m和n均为非负整数;

该目标失真参数确定单元包括:

初始确定子单元,用于基于目标运动向量,确定待编码单元对应的初始预测单元;

原始像素值确定子单元,用于从图像尺寸为m×n的待编码单元中获取像素点pij,在待编码单元中确定像素点pij的原始像素值;像素点pij为待编码单元中的第i行第j列上的像素点;i为小于或者等于m的非负整数;j为小于或者等于n的非负整数;

预测像素值确定子单元,用于在初始预测单元中确定像素点pij所映射的预测像素点pij的预测像素值;

目标失真参数确定子单元,用于确定像素点pij的原始像素值与预测像素点pij的预测像素值的像素差值,基于像素差值得到目标运动向量的目标失真参数。

其中,该第一模板构建单元包括:

失真确定子单元,用于在每个参考帧对应的第一失真参数中,将最小第一失真参数确定为第二失真参数;

权重参数确定子单元,用于获取与第一模板生成条件相关联的权重等级表,在权重等级表中确定目标视频帧对应的权重等级,基于权重等级与权重参数之间的映射关系,确定权重等级对应的权重参数;

预测阈值确定子单元,用于基于第二失真参数以及权重参数,确定第一模板生成条件中的预测阈值;

参考帧获取子单元,用于基于每个参考帧对应的第一失真参数以及预测阈值,从n个参考帧中获取满足第一模板生成条件的参考帧;

第一模板构建子单元,用于基于满足第一模板生成条件的参考帧,构建与待编码单元相关联的第一模板。

其中,该第二模板构建模块包括:

第一帧信息记录单元,用于获取与待编码单元具有相邻位置关系的相邻块,若相邻块中存在最优预测模式为帧间预测模式的相邻块,则将最优预测模式为帧间预测模式的相邻块确定为目标相邻块,记录目标相邻块的第一参考帧信息;

第二帧信息记录单元,用于获取待编码单元对应的块划分策略,基于块划分策略对待编码单元进行划分处理,得到待编码单元对应的子块,若子块中存在最优预测模式为帧间预测模式的子块,则将最优预测模式为帧间预测模式的子块确定为目标子块,记录目标子块的第二参考帧信息;

参考帧信息确定单元,用于将相邻块和子块确定为待编码单元对应的参考块,基于第一参考帧信息以及第二参考帧信息,确定参考块的参考帧信息;

第二模板构建单元,用于对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板。

其中,该第二模板构建单元包括:

排序处理子单元,用于在参考块的参考帧信息中,基于第一参考帧信息和第二参考帧信息,统计参考视频帧中的n个参考帧分别被选中的第一数量,基于第一数量确定整理后的参考帧信息,按照整理后的参考帧信息对n个参考帧进行排序处理,得到排序处理结果;n为正整数;

关键帧确定子单元,用于在排序处理结果中,选取具有最大第一数量的参考帧,将所选取的参考帧作为满足第二模板生成条件的关键参考帧;

第二模板构建子单元,用于基于关键参考帧,构建与待编码单元相关联的第二模板。

其中,该第三模板构建模块包括:

总数量确定单元,用于获取参考块对应的总数量以及参考块对应的预测模式,将预测模式为帧间预测模式的参考块的数量确定为第二数量,将预测模式为帧内预测模式的参考块的数量确定为第三数量;总数量为第二数量与第三数量之和;

补充帧获取单元,用于获取第三模板生成条件中的数量阈值,若总数量小于数量阈值,且第二数量大于第三数量,则确定参考块满足第三模板生成条件,且获取与第三模板生成条件相关联的补充参考帧;

第三模板构建单元,用于基于补充参考帧,构建与待编码单元相关联的第三模板。

其中,该预测模板生成模块包括:

初始模板获取单元,用于获取与第一非运动估计模式相关联的第一初始预测模板;第一初始预测模板包括(n+1)个位置;(n+1)个位置对应的数值均为第一数值;n为参考视频帧中的参考帧的总帧数量;n为正整数;一个位置对应一个参考帧;

目标帧确定单元,用于将第一模板中的参考帧、第二模板中的参考帧以及第三模板中的参考帧进行合并处理,得到与第一模板、第二模板以及第三模板相关联的并集集合,将并集集合中的参考帧确定为目标参考帧;

数值更新单元,用于在第一初始预测模板中,依次将目标参考帧对应的位置的数值由第一数值更新为第二数值;

预测模板生成单元,用于将更新后的第一初始预测模板作为第一非运动估计模式对应的第一预测模板。

其中,该非运动估计模式包括编码模式中的第二非运动估计模式;编码模式是由视频编码器的编码策略所确定的;

该装置还包括:

初始最优帧确定模块,用于基于第一预测模板,确定待编码单元在第一非运动估计模式下的初始最优参考帧;初始最优参考帧是基于初始最优率失真代价所得到的;初始最优率失真代价是基于第一预测模板中的参考帧对应的第一率失真代价所确定的;

初始模板获取模块,用于获取与第二非运动估计模式相关联的第二初始预测模板;第二初始预测模板与第一初始预测模板相同;

数值更新模块,用于在第二初始预测模板中,将初始最优参考帧对应的位置的数值由第一数值更新为第二数值;

预测模板确定模块,用于将更新后的第二初始预测模板作为第二非运动估计模式对应的第二预测模板;该第二预测模板用于预测待编码单元在第二非运动估计模式下的目标最优参考帧。

其中,该装置还包括:

模板获取模块,用于在基于非运动估计模式对待编码单元进行帧间预测处理时,获取非运动估计模式对应的编码策略,基于编码策略确定待编码单元对应的预测模板;预测模板至少包括第一预测模板;

预测处理模块,用于从参考视频帧的n个参考帧中获取参考帧xk,若参考帧xk在预测模板中的对应位置的数值为第二数值,则基于参考帧xk,对待编码单元进行预测处理,得到待编码单元对应的目标预测单元;n为参考视频帧中的参考帧的总帧数量;n为正整数;k为小于或者等于n的正整数;

目标代价确定模块,用于基于目标预测单元、待编码单元、以及非运动估计模式对应的编码辅助参数,确定待编码单元对应的第二率失真代价;

目标最优帧确定模块,用于当k的值大于n时,完成对编码单元的预测处理,在第二率失真代价中,将最小第二率失真代价确定为目标最优率失真代价,将目标最优率失真代价对应的参考帧作为待编码单元在非运动估计模式下的目标最优参考帧。

本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;

处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。

本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的算计设备执行本申请实施例提供的方法。

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

在本申请实施例中,具有视频编码功能的计算机设备可以获取目标视频帧中的待编码单元,在基于非运动估计模式对待编码单元进行帧间预测处理时,该计算机设备可以生成该非运动估计模式对应的预测模板。其中,这里的预测模板至少可以包括第一非运动估计模式对应的第一预测模板,第一预测模板是基于第一模板、第二模板以及第三模板生成的。可以理解的是,这里的第一模板是根据与待编码单元相关联的参考视频帧的第一失真参数以及第一模板生成条件所构建的;这里的第二模板是基于满足第二模板生成条件的关键参考帧所构建的;这里的第三模板是基于与第三模板生成条件相关联的补充参考帧所构建的。因此,在后续基于非运动估计模式对待编码单元进行帧间预测处理时,可以应用第一非运动估计模式对应的第一预测模板,自适应的选择待编码单元对应的目标最优参考帧。换言之,该计算机设备可以直接对预测模板中的参考帧进行帧间预测处理,而无需对参考视频帧中的每个参考帧进行帧间预测处理,从而可以减少计算量,进而可以提高该计算机设备在非运动估计模式下,选择最优参考帧的效率。

附图说明

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

图1是本申请实施例提供的一种网络架构的结构示意图;

图2是本申请实施例提供的一种进行数据交互的场景示意图;

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

图4是本申请实施例提供的一种视频编码器的编码策略的示意图;

图5是本申请实施例提供的一种获取运动向量候选列表的场景示意图;

图6是本申请实施例提供的一种不同帧类型对应的参考关系示意图;

图7是本申请实施例提供的一种构建第一模板的流程图;

图8是本申请实施例提供的一种块划分策略的示意图;

图9是本申请实施例提供的一种生成第一预测模板的场景示意图;

图10是本申请实施例提供的一种通过预测模板进行预测处理的流程图;

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

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

图13是本申请实施例提供的一种计算机设备的示意图。

具体实施方式

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

请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括服务器10和用户终端集群。该用户终端集群可以包括一个或者多个用户终端,这里将不对用户终端的数量进行限制。如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。如图1所示,用户终端100a、用户终端100b、用户终端100c、…、用户终端100n可以分别与上述服务器10进行网络连接,以便于每个用户终端可以通过该网络连接与服务器10进行数据交互。其中,这里的网络连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请在此不做限制。

其中,该用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备等具有视频数据处理功能的智能终端。应当理解,如图1所示的用户终端集群中的每个用户终端均可以安装有目标应用(即应用客户端),当该应用客户端运行于各用户终端中时,可以分别与上述图1所示的服务器10之间进行数据交互。其中,该应用客户端可以包括社交客户端、多媒体客户端(例如,视频客户端)、娱乐客户端(例如,游戏客户端)、教育客户端、直播客户端等具有视频编码功能的应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。

如图1所示,本申请实施例中的服务器10可以为该应用客户端对应的服务器。该服务器10可以是独立的物理服务器,也可以是由多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。

为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端。例如,本申请实施例可以将图1所示的用户终端100a作为目标用户终端,该目标用户终端中可以集成有具备视频编码功能的目标应用(即应用客户端)。此时,该目标用户终端可以通过该应用客户端对应的业务数据平台与服务器10之间实现数据交互。

应当理解,本申请实施例中的具有视频编码功能的计算机设备(例如,用户终端100a)可以通过云技术,实现对多媒体数据(例如,视频数据)的数据编码以及数据传输。其中,云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。

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

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

应当理解,具有视频编码功能的计算机设备(例如,用户终端100a)可以通过视频编码器对视频数据进行编码处理,以得到该视频数据对应的视频码流,进而可以提升视频数据的传输效率。例如,视频编码器可以为av1视频编码器,h.266视频编码器,avs3视频编码器等。其中,该av1视频编码器的视频压缩标准是开放媒体联盟(allianceforopenmedia,简称aom)开发的第一代视频编码标准。

其中,本申请实施例可以将视频数据中待进行编码处理的视频帧称之为目标视频帧。可以理解的是,目标视频帧的帧类型不同,在对该目标视频帧的待编码单元进行编码处理时所选择的参考帧也就不同。这里的目标视频帧的帧类型可以包括第一类型,第二类型以及第三类型。其中,本申请实施例可以将帧内编码帧(intrapicture,简称i帧)这种帧类型称之为第一类型,将双向预测编码帧(bi-directionalinterpolatedpredictionframe,简称b帧)这种帧类型称之为第二类型,将前向预测编码帧(predictive-frame,简称p帧)这种帧类型称之为第三类型。

为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的用户终端2a可以为上述图1所示的用户终端集群中的任意一个用户终端。其中,用户终端2a可以为用于发送视频数据(例如,图2所示的视频数据1)的发送终端,该用户终端2a对应的用户可以为用户a。其中,图2所示的服务器200可以为与用户终端2a具有网络连接关系的服务器,该服务器200可以为上述图1所示的服务器10。

应当理解,在视频传输场景中,用户终端2a可以获取由图像采集器(例如,摄像头)所采集到的与用户a相关联的视频数据1。进一步地,该用户终端2a需要通过视频编码器(例如,av1视频编码器)对该视频数据1进行编码处理,以生成与该视频数据1相关联的视频码流1。此时,用户终端2a可以将该视频码流1发送至服务器200。该服务器200在接收到该视频码流1时,可以对该视频码流1进行解码处理,以得到视频数据1。

可以理解的是,用户终端2a在对视频数据1进行编码处理时,可以从视频数据1中获取需要进行编码处理的目标视频帧,进而可以从该目标视频帧中获取待编码单元(codinguint,简称cu)。进一步地,该用户终端2a可以基于该视频编码器的编码策略,对该待编码单元进行预测处理,以得到该待编码单元对应的最优预测模式,进而可以基于该最优预测模式对该待编码单元进行编码处理,以得到该待编码单元对应的压缩码流。应当理解,在该用户终端2a完成对目标视频帧中的每个待编码单元的编码处理时,可以分别得到每个待编码单元对应的压缩码流,进而可以将这些压缩码流封装成与该视频数据1相关联的视频码流(如图2所示的视频码流1)。

其中,这里的编码策略可以包括帧内预测模式和帧间预测模式。可以理解的是,在帧内预测过程中,本申请实施例所提供的视频编码器在方向预测的粒度上进行进一步升级,而非方向性的预测纳入了梯度和相关性,亮度的一致性和色度信号也得到充分利用。

比如,这里的非方向性预测的帧内预测模式可以包括多个,比如,帧内预测模式1(例如,dc_pred模式,适用于大面积平坦区域,基于左边和(或)上边参考像素的平均值进行预测),帧内预测模式2(例如,smooth_pred模式,用于在水平和垂直方向上使用二次插值进行预测)、帧内预测模式3(例如,smooth_v_pred模式,用于在垂直方向上使用二次插值进行预测)、帧内预测模式4(例如,smooth_h_pred模式,用于在水平方向上使用二次插值进行预测)、帧内预测模式5(paeth_pred,用于在梯度最小方向上进行预测)。

比如,这里的方向预测的帧内预测模式可以包括8个角度预测模式。这8个角度预测模式具体可以包括:角度预测模式1(例如,v_pred模式,用于在垂直方向上预测),角度预测模式2(例如,h_pred,用于在水平方向上预测),角度预测模式3(例如,d45_pred,用于在45度角方向预测)、角度预测模式4(例如,d135_pred,用于在135度角方向预测),角度预测模式5(例如,d113_pred,用于在113度角方向预测),角度预测模式6(例如,d157_pred模式,用于在157度角方向预测),角度预测模式7(例如,d203_pred模式,用于在203度角方向预测)以及角度预测模式8(例如,d67_pred模式,用于在67度角方向预测)。其中,每个角度又包括了6个角度偏移,分别为加减3度、加减6度、加减9度。另外,帧内预测模式还可以包括调色板预测模式和帧内块拷贝预测模式。

可以理解的是,在帧间预测过程中,帧间预测模式可以包括单参考帧模式和组合参考帧模式。其中,这里的单参考帧模式可以包括运动估计模式和非运动估计模式。

比如,这里的运动估计模式可以为newmv模式,该newmv模式在编码过程中需要传输待编码单元与预测单元之间的残差(motionvectordifference,简称mvd)。

比如,这里的非运动估计模式可以包括非运动估计模式1(例如,nearestmv模式),非运动估计模式2(例如,nearmv模式)和非运动估计模式3(例如,globalmv模式)。其中,nearestmv模式和nearmv模式中预测块的运动向量(motionvector,简称mv)是根据周围块信息推导得到的,不需要传输残差;globalmv模式中预测块的运动向量需要根据全局运动推导得到。其中,本申请实施例可以将具有最高选中概率的非运动估计模式1(例如,nearestmv模式)称之为第一非运动估计模式,将非运动估计模式2(例如,nearmv模式)和非运动估计模式3(例如,globalmv模式)统称为第二非运动估计模式。

比如,这里的组合参考帧模式可以包括组合参考帧模式1(例如,nearest_nearestmv模式),组合参考帧模式2(例如,near_nearmv模式),组合参考帧模式3(例如,nearest_newmv模式),组合参考帧模式4(例如,new_nearestmv模式),组合参考帧模式5(例如,near_newmv模式),组合参考帧模式6(例如,new_nearmv模式),组合参考帧模式7(例如,global_globalmv模式),组合参考帧模式8(例如,new_newmv模式)。

可以理解的是,在用户终端2a确定最优预测模式的过程中,该用户终端2a需要在帧内预测模式中选择中具有最优率失真代价对应的预测模式,进而可以将所选择出的预测模式作为最优帧内预测模式。同理,该用户终端2a需要从帧间预测模式中选择中具有最优率失真代价对应的预测模式,进而可以将所选择出的预测模式作为最优帧间预测模式。进一步地,该用户终端2a可以基于最优帧内预测模式和最优帧间预测模式的率失真代价,进行模式择优处理,得到最优预测模式。换言之,用户终端2a可以在最优帧内预测模式和最优帧间预测模式中,选择出具有最小率失真代价的预测模式,进而可以将具有最小率失真代价的预测模式作为最优预测模式。

为了提升编码效率,在基于非运动估计模式对待编码单元进行预测处理时,该用户终端2a可以生成非运动估计模式对应的预测模板。其中,本申请实施例中的预测模板至少可以包括第一预测模板(例如,图2所示的预测模板1)和第二预测模板(例如,图2所示的预测模板2)。该第一预测模板可以为第一非运动估计模式对应的预测模板,该第二预测模板可以为第二非运动估计模式对应的预测模板。

应当理解,在基于第一非运动估计模式对待编码单元进行预测处理的过程中,该用户终端2a可以生成该第一非运动估计模式对应的预测模板1。其中,可以理解的是,在基于第一非运动估计模式对待编码单元进行帧间预测处理时,该用户终端2a可以基于待编码单元所属目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧。进一步地,该用户终端2a可以根据参考视频帧的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。这里的第一失真参数是指参考视频帧中每个参考帧分别对应的最小失真参数。应当理解,用户终端2a还可以获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,进而可以基于关键参考帧,构建与待编码单元相关联的第二模板。在参考块满足第三模板生成条件时,用户终端2a可以获取与第三模板生成条件相关联的补充参考帧,进而可以基于补充参考帧,构建与待编码单元相关联的第三模板。此时,用户终端2a可以基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板(例如,预测模板1)。

进一步地,该用户终端2a可以基于第一预测模板,确定待编码单元在第一非运动估计模式下所选择的初始最优参考帧,进而可以根据所选择的初始最优参考帧自适应地生成第二非运动估计模式对应的预测模板2。

由此可见,用户终端2a在基于非运动估计模式,对待编码单元进行帧间预测处理时,无需对与该待编码单元相关联的参考视频帧中的每个参考帧进行遍历预测,可以直接通过生成的预测模板(例如,预测模板1和预测模板2),自适应地对预测模板中所包括的参考帧进行预测处理,以减少计算量,从而可以快速选择出目标最优参考帧,进而可以提升选择目标最优参考帧的效率。由于目标最优参考帧的选择效率提升,从而导致用户终端2a在对视频数据1进行编码处理时的编码效率得以提升,进而能够有效减少中央处理器(centralprocessingunit,简称cpu)的占用,节省客户端资源。进一步地,编码效率的提升还可以导致视频数据的编码效率大于视频数据的视频帧率,进而能够实现视频编码的实时性。

其中,具有视频编码功能的计算机设备基于非运动估计模式中的第一非运动估计模式,对待编码单元进行预测处理,以生成第一非运动估计模式对应的第一预测模板的具体实现方式可以参见下述图3-图11所对应的实施例。

进一步地,请参见图3,图3是本申请实施例提供的一种视频数据处理方法的流程示意图。如图3所示,该方法可以由具有视频编码功能的计算机设备执行,该计算机设备可以为用户终端(例如,上述图1所示的用户终端100a),也可以为服务器(例如,上述图1所示的服务器10),在此不做限定。为便于理解,本申请实施例以该方法由用户终端执行为例进行说明,该方法至少可以包括以下步骤s101-步骤s105:

步骤s101,获取目标视频帧中的待编码单元以及待编码单元对应的非运动估计模式。

具体地,具有视频编码功能的计算机设备(例如,用户终端)可以在数据传输场景中,获取由图像采集器(例如,用户终端的摄像头)所采集到的视频数据。进一步地,该计算机设备可以从视频数据中获取待进行编码处理的视频帧,将获取到的视频帧作为目标视频帧。可以理解的是,该计算机设备可以通过视频编码器对目标视频帧进行图像块划分处理,得到目标视频帧的一个或者多个图像块,并且可以从一个或者多个图像块中获取待编码单元。进一步地,该计算机设备可以获取视频编码器的编码策略,从与编码策略相关联的编码模式中获取第一非运动估计模式,进而可以将第一非运动估计模式作为待编码单元对应的非运动估计模式。

其中,可以理解的是,这里的视频数据还可以为其他场景下的任意一个需要进行编码处理的视频数据。例如,该视频数据可以为在音视频通话场景中,通过用户终端的摄像头所采集的视频数据,该视频数据也可以为用户终端的相册中所保存的视频数据,该视频数据还可以为用户终端在网络上所下载的视频数据,在此不做限定。

可以理解的是,与编码策略相关联的编码模式中可以包括帧间预测模式和帧内预测模式。这里的帧间预测模式和帧内预测模式可以参见上述图2所示的帧间预测模式和帧内预测模式,这里将不再继续赘述。其中,帧间预测模式中的非运动估计模式可以包括nearestmv模式、nearmv模式以及globalmv模式。

为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种视频编码器的编码策略的示意图。如图4所示,本申请实施例中的编码策略4可以为计算机设备中视频编码器(例如,av1视频编码器)在非运动估计模式下的编码策略。

其中,该编码策略可以包括非运动估计模式41,非运动估计模式42以及非运动估计模式43。这里的非运动估计模式41(即第一非运动估计模式)可以为具有最高选中概率的帧间预测模式,例如,nearestmv模式。非运动估计模式42和非运动估计模式43可以统称为第二非运动估计模式。可以理解的是,非运动估计模式42可以为nearmv模式,非运动估计模式43可以为globalmv模式,即nearmv模式的预测顺序在globalmv模式之前。可选的,编码策略中的非运动估计模式42可以为globalmv模式,非运动估计模式43可以为nearmv模式,即nearmv模式的预测顺序在globalmv模式之后。这里将不对第二非运动估计模式中的预测顺序进行限定。

可以理解的是,在基于非运动估计模式对待编码单元进行预测处理时,计算机设备可以基于非运动估计模式41对该待编码单元进行预测处理,以得到非运动估计模式41对应的预测结果1。然后,该计算机设备可以基于非运动估计模式42对该待编码单元进行预测处理,以得到非运动估计模式42对应的预测结果2。最后,该计算机设备可以基于非运动估计模式43对该待编码单元进行预测处理,以得到非运动估计模式43对应的预测结果3。

进一步地,计算机设备可以基于预测结果1、预测结果2以及预测结果3,对非运动估计模式41,非运动估计模式42以及非运动估计模式43进行模式择优处理,以在非运动估计模式下选择最优预测模式。

步骤s102,在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧,根据参考视频帧的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。

具体地,该计算机设备在基于第一非运动估计模式,对待编码单元进行帧间预测处理时,可以基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧。其中,这里的参考视频帧可以包括n个参考帧;n为正整数。进一步地,该计算机设备可以对每个参考帧的失真参数分别进行初始化处理,得到每个参考帧对应的初始失真参数。应当理解,该计算机设备可以在目标视频帧中,获取与待编码单元具有相邻位置关系的相邻块,进而可以基于相邻块的参考帧信息、相邻块对应的运动向量以及向量记录条件,确定与待编码单元相关联的运动向量候选列表。这里的运动向量候选列表中的目标运动向量是由相邻块对应的运动向量所确定的。进一步地,该计算机设备可以基于目标运动向量确定待编码单元对应的初始预测单元,从而可以基于待编码单元和初始预测单元,确定目标运动向量的目标失真参数。此时,该计算机设备可以基于初始失真参数、目标失真参数以及图像失真条件,分别确定每个参考帧对应的第一失真参数,进而可以基于每个参考帧对应的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。

可以理解的是,该计算机设备在基于第一非运动估计模式对待编码单元进行帧间预测处理时,可以基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧。其中,这里的参考视频帧可以包括n个参考帧;n为正整数。若目标视频帧的帧类型为b帧(即第二类型),则与该待编码单元相关联的参考视频帧中的总帧数量可以为7,这7个参考帧可以包括下述表1中的参考帧x1、参考帧x2、参考帧x3、参考帧x4、参考帧x5、参考帧x6以及参考帧x7。若目标视频帧的帧类型为p帧(即第三类型),则与该待编码单元相关联的参考视频帧中的总帧数量可以为4,这4个参考帧可以包括参考帧x1、参考帧x2、参考帧x3以及参考帧x4。

为便于理解,进一步地,请参见表1,表1是本申请实施例提供的一种与参考视频帧相关联的列表。这里的参考视频帧可以为视频编码器(例如,av1视频编码器)相关联的参考视频帧。

表1

例如,在表1所示的与av1视频编码器相关联的参考视频帧中,参考帧x0可以为intra_frame;参考帧x1可以为last_frame;参考帧x2可以为last2_frame;参考帧x3可以为last3_frame;参考帧x4可以为golden_frame;参考帧x5可以为bwdref_frame;参考帧x6可以为altref2_frame;参考帧x7可以为altref_frame。当然,不同的视频压缩标准可以对应不同的参考视频帧,例如,与h.265视频编码器相关联的参考视频帧的总帧数量可以为16个,在此不进行一一举例。

进一步地,计算机设备需要获取参考视频帧中的每个参考帧的失真参数,将每个参考帧中的最小失真参数作为对应参考帧的第一失真参数。这里的失真参数可以用于记录待编码单元中的原始像素值和待编码单元对应的预测单元的预测像素值的差值。可以理解的是,失真参数可以通过反映时域差异的绝对误差和(sumofabsolutedifference,简称sad)、或者反映频域差异的绝对误差和(sumofabsolutetransformeddifference,简称satd)等得到。其中,satd需要将残差进行哈达玛变换后,再求各像素点之间的绝对值总和。satd相比于sad的计算量要复杂一些,但精度较高。

其中,可以理解的是,该计算机设备可以对参考视频帧中的每个参考帧的失真参数分别进行初始化处理,以得到每个参考帧对应的初始失真参数。可以理解的是,该计算机设备可以将每个参考帧对应的失真参数,初始化为32位最大数,即int32_max。

进一步地,该计算机设备可以获取与目标视频帧相关联的向量记录条件。其中,该向量记录条件可以为:相邻块的最优预测模式为帧间预测模式,且该相邻块的参考帧信息与从参考视频帧中遍历获取的参考帧xk相同。这里的k为小于或者等于n的正整数,n为参考视频帧中的参考帧的总帧数量。

与此同时,该计算机设备可以在目标视频帧中,获取与待编码单元具有相邻位置关系的相邻块,且获取相邻块的参考帧信息以及相邻块的最优预测模式。应当理解,计算机设备可以从n个参考帧中遍历获取参考帧xk,在相邻块的最优预测模式为帧间预测模式,且相邻块的参考帧信息与参考帧xk相同时,该计算机设备可以将相邻块对应的运动向量确定为满足向量记录条件的目标运动向量,进而可以将目标运动向量记录至参考帧xk所在的目标列表栏。其中,目标列表栏属于初始运动向量候选列表中的列表栏。此时,该计算机设备可以将记录有目标运动向量的初始运动向量候选列表作为与待编码单元相关联的运动向量候选列表。

为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种获取运动向量候选列表的场景示意图。如图5所示,本申请实施例中的视频帧500可以为具有视频编码功能的计算机设备,从视频数据中获取的待进行编码处理的目标视频帧。

如图5所示,该计算机设备可以通过视频编码器对视频帧500进行图像块划分处理,得到该视频帧500对应的一个或者多个图像块,进而可以从这一个或者多个图像块中获取待编码单元(例如,待编码单元5)。其中,待编码单元5可以为该视频帧500中的位置e所对应的图像块。

应当理解,计算机设备可以获取与视频帧500相关联的向量记录条件,以选出满足向量记录条件的目标运动向量。其中,该向量记录条件可以为:相邻块的最优预测模式为帧间预测模式,且该相邻块的参考帧信息与从参考视频帧中遍历获取的参考帧相同。

可以理解的是,该计算机设备可以在该视频帧500中获取与待编码单元5具有相邻位置关系的相邻块。可以理解的是,若待编码单元5处于该视频帧500中的边缘图像块对应的位置中,则与该待编码单元5具有相邻位置关系的位置处可能不存在图像块。

如图5所示,位置a、位置b、位置c以及位置d均与待编码单元5具有相邻位置关系。此时,该计算机设备所获取的该待编码单元5的相邻块可以为这4个位置对应的图像块。例如,计算机设备所获取的相邻块可以包括图5所示的相邻块1、相邻块2、相邻块3以及相邻块4。其中,相邻块1可以为位置a对应的图像块,相邻块2可以为位置b对应的图像块,相邻块3可以为位置c对应的图像块,相邻块4可以为位置d对应的图像块。

与此同时,该计算机设备可以获取这4个相邻块的参考帧信息以及最优预测模式。例如,相邻块1的参考帧信息可以为目标视频帧,最优预测模式可以为帧内预测模式;相邻块2的参考帧信息可以为参考帧x2,最优预测模式可以为帧间预测模式;相邻块3的参考帧信息可以为参考帧x2,最优预测模式可以为帧间预测模式;相邻块4的参考帧信息可以为参考帧xn,最优预测模式可以为帧间预测模式。这里的n可以为基于视频帧500的帧类型所获取的参考视频帧的总帧数量。

进一步地,该计算机设备可以从n个参考帧中遍历获取参考帧xk,确定满足向量记录条件的目标运动向量。可以理解的是,在遍历参考帧xk的过程中,若待编码单元对应的相邻块的参考帧均不为该参考帧xk,则该计算机设备确定在参考帧xk下不存在满足向量记录条件的目标运动向量,此时,该计算机设备可以将运动向量(0,0)作为目标运动向量,并记录在该参考帧xk对应的目标列表栏中。

比如,在该计算机设备遍历获取到的参考视频帧为参考帧x1时,由于该计算机设备未获取到参考帧信息为参考帧x1的相邻块,因此该计算机设备可以将运动向量(0,0)直接记录在参考帧x1对应的目标列表栏中。

又比如,在该计算机设备遍历获取到的参考视频帧为参考帧x2时,由于相邻块2和相邻块3的最优预测模式均为帧间预测模式,且相邻块2和相邻块3的参考帧信息均与参考帧x2相同,因此,该计算机设备可以获取相邻块2的运动向量(如图5所示的运动向量510),以及相邻块3的运动向量(如图5所示的运动向量520)。进一步地,该计算机设备可以将运动向量510和运动向量520确定为满足向量记录条件的目标运动向量,进而可以在图5所示的候选列表1(即初始运动向量候选列表)中,将运动向量510和运动向量520记录至参考帧x2所在的目标列表栏。

比如,在该计算机设备遍历获取到的参考视频帧为参考帧xn时,由于相邻块4的最优预测模式为帧间预测模式,且相邻块4的参考帧信息与参考帧xn相同,因此,该计算机设备可以获取相邻块4的运动向量(如图5所示的运动向量530),进而可以将运动向量530确定为满足向量记录条件的目标运动向量。此时,该计算机设备可以在图5所示的候选列表1(即初始运动向量候选列表)中,将运动向量530记录至参考帧xn所在的目标列表栏。

此时,该计算机设备可以将记录有目标运动向量的候选列表1作为与待编码单元5相关联的运动向量候选列表。该运动向量候选列表可以为如图5所示的候选列表2,以便于后续根据候选列表2中的目标运动向量,确定待编码单元5对应的初始预测单元,进而基于该待编码单元5和初始预测单元,确定目标运动向量的目标失真参数。

具体地,该计算机设备确定目标运动向量的目标失真参数的计算公式可以如下述公式(1)所示:

,(1)

其中,这里的sad可以用于指示目标运动向量的目标失真参数,其中,m和n可以用于指示待编码单元的图像尺寸。这里的m和n均为非负整数。这里的dst(i,j)可以为待编码单元中的像素点pij的原始像素值,像素点pij可以为待编码单元中的第i行第j列上的像素点。这里的i可以为小于或者等于m的非负整数;这里的j可以为小于或者等于n的非负整数。src(i,j)可以为像素点pij在待编码单元对应的预测单元(即初始预测单元)中所映射的预测像素点pij的预测像素值。该初始预测单元可以基于运动向量候选列表中的目标运动向量所确定。

可以理解的是,该计算机设备可以基于运动向量候选列表中的目标运动向量,确定该待编码单元对应的初始预测单元。然后,该计算机设备可以从图像尺寸为m×n的待编码单元中获取像素点pij,在待编码单元中确定像素点pij的原始像素值。此时,该计算机设备可以在初始预测单元中,确定像素点pij所映射的预测像素点pij的预测像素值,进而可以确定像素点pij的原始像素值与预测像素点pij的预测像素值的像素差值,通过上述公式(1),基于像素差值得到目标运动向量的目标失真参数。

进一步地,该计算机设备可以基于初始失真参数、目标失真参数以及该图像失真条件,分别确定每个参考帧对应的第一失真参数。其中,这里的图像失真条件可以用于指示计算机设备从参考视频帧中每个参考帧对应的失真参数(例如,初始失真参数、目标失真参数)中获取最小失真参数(即第一失真参数)。

比如,图5所对应实施例中,参考帧x2下可以包括失真参数1(即初始失真参数,初始化处理所得到的失真参数),失真参数2(即目标失真参数,运动向量510对应的失真参数)以及失真参数3(即目标失真参数,运动向量520对应的失真参数)。该计算机设备可以将从失真参数1、失真参数2和失真参数3中选择的最小失真参数(例如,失真参数2)作为该参考帧x2的第一失真参数。

此时,该计算机设备可以基于每个参考帧对应的第一失真参数以及第一模板生成条件,构建与该待编码单元相关联的第一模板。可以理解的是,该计算机设备可以在每个参考帧对应的第一失真参数中,将最小第一失真参数确定为第二失真参数。

应当理解,视频数据中的视频帧的帧类型可以按照参考关系,确定重要性。其中,可以理解的是,重要性由大到小排序是:i帧>p帧>b1帧>b2帧>b3帧>…>非参考b帧。这里的b1帧、b2帧、b3帧、…以及非参考b帧可以统称为b帧,其区别是由于参考关系不同,从而导致编码顺序不同,进而使得对应的权重等级也不同。

例如,若b2帧需要参考b1帧,而b3帧需要参考b2帧。此时,如果计算机设备在对b1帧进行编码处理时出现错误,将会直接导致b2帧编码错误,由于b3帧需要参考b2帧,进而导致b3帧编码错误。因此b1帧的重要性大于b2帧。

为便于理解,进一步地,请参见图6,图6是本申请实施例提供的一种不同帧类型对应的参考关系示意图。如图6所示,帧组6可以为视频数据中的一组连续的视频帧(groupofpictures,简称gop),一个帧组中可以包括多个视频帧,本申请实施例中的帧组6可以以gop16为例,用以阐述帧组6的参考关系示意图。其中,帧组6可以包括17个视频帧。根据帧组6对应的参考关系可以得知:这17个视频帧中可以包括一个i帧(例如,视频帧0),一个p帧或者gpb帧(例如,视频帧16)以及15个b帧(例如,视频帧1,视频帧2,视频帧3,视频帧4,视频帧5,视频帧6,视频帧7,视频帧8,视频帧9,视频帧10,视频帧11,视频帧12,视频帧13,视频帧14以及视频帧15)。其中,视频帧0中的数值0可以表示该视频帧0的显示顺序。例如,视频帧0的显示顺序早于视频帧1。

如图6所示,本申请实施例中的线610、线620、线630、线640以及线650均可以指示视频帧的参考关系。例如,视频帧16通过线610指向视频帧0可以表示,在对视频帧16进行编码处理时,需要参考视频帧0。因此,该计算机设备需要先对视频帧0进行编码处理。可以理解的是,该计算机设备可以通过视频编码器从该视频帧0中获取待编码单元,进而可以对该待编码单元进行预测处理,以得到预测单元。此时,该计算机设备可以确定该预测单元与待编码单元之间的内容变化度,进而可以基于该内容变化度,确定该预测单元与待编码单元之间的残差。然后,该计算机设备可以对该残差进行变换处理和量化处理,得到量化系数,进而可以对量化参数进行熵编码,以得到该待编码单元对应的压缩码流。

与此同时,该计算机设备可以对量化系数进行反量化处理以及反变换处理之后,得到重构图像对应的残差值,进而可以基于残差值以及预测单元,从而可以得到重构图像。进一步地,该计算机设备可以对重构图像进行滤波处理,得到滤波处理后的图像。在对视频帧0编码完成后,可以基于滤波处理后的图像,得到视频帧0对应的重构帧,进而可以将该重构帧进入参考帧队列,作为下一帧(例如,视频帧16)的参考帧,从而可以依次向后进行编码处理。

如图6所示,视频帧8在编码过程中需要参考视频帧0和视频帧16,因此在视频帧16编码完成时,该计算机设备可以对视频帧8进行编码处理。其中,视频帧8的帧类型可以称之为b1帧。

视频帧4在编码过程中需要参考视频帧0和视频帧8,视频帧12在编码过程中需要参考视频帧8和视频帧16,因此,在视频帧8编码完成时,该计算机设备可以分别视频帧4和视频帧12进行编码处理。其中,视频帧4和视频帧12的帧类型均可以称之为b2帧。

视频帧2在编码过程中需要参考视频帧0和视频帧4,视频帧6在编码过程中需要参考视频帧4和视频帧8,因此,在视频帧4编码完成时,该计算机设备可以分别对视频帧2和视频帧6进行编码处理。视频帧10在编码过程中需要参考视频帧8和视频帧12,视频帧14在编码过程中需要参考视频帧12和视频帧16。因此,在视频帧12编码完成时,可以对视频帧10和视频帧14进行编码处理。其中,视频帧2、视频帧6、视频帧10以及视频帧14的帧类型均可以称之为b3帧。

视频帧1在编码过程中需要参考视频帧0和视频帧2,视频帧3在编码过程中需要参考视频帧2和视频帧4,因此,在视频帧2编码完成时,该计算机设备可以分别对视频帧1和视频帧3进行编码处理。视频帧5在编码过程中需要参考视频帧4和视频帧6,视频帧7在编码过程中需要参考视频帧6和视频帧8,因此,在视频帧6编码完成时,该计算机设备可以分别对视频帧5和视频帧7进行编码处理。视频帧9在编码过程中需要参考视频帧8和视频帧10,视频帧11在编码过程中需要参考视频帧10和视频帧12,因此,在视频帧10编码完成时,该计算机设备可以分别对视频帧9和视频帧11进行编码处理。视频帧13在编码过程中需要参考视频帧12和视频帧14,视频帧15在编码过程中需要参考视频帧14和视频帧16,因此,在视频帧14编码完成时,该计算机设备可以分别对视频帧13和视频帧15进行编码处理。其中,视频帧1、视频帧3、视频帧5、视频帧7、视频帧9、视频帧11、视频帧13和视频帧15不被参考,因此这8个参考帧的帧类型均可以称之为b帧(即非参考b帧)。

可以理解的是,计算机设备可以获取与第一模板生成条件相关联的权重等级表,在权重等级表中确定待编码单元所属目标视频帧对应的权重等级,进而可以基于权重等级与权重参数之间的映射关系,确定权重等级对应的权重参数。

为便于理解,进一步地,请参见表2,表2是本申请实施例提供的一种权重等级表。其中,该权重等级表可以为根据上述图6所示的帧组6对应的参考关系所确定的等级表。如表2所示,权重等级0>权重等级1>权重等级2>权重等级3>权重等级4>权重等级5。可以理解的是,每一个权重等级可以映射一个权重参数,不同权重等级对应的权重参数也可以相同,在此不做限定。

表2

例如,与帧组6具有映射关系的权重参数可以为:param[6]={1,6,6,6,5,5}。其中,权重等级0对应的权重参数的数值可以为一个根据实际需求所设定的模板启用阈值,该模板启用阈值(例如,阈值1和阈值2)可以作为第三模板(例如,增强模板)的开关。这里的阈值1(例如,1)可以表示开启第三模板,这里的阈值2(例如,0)可以表示关闭第三模板。比如,为了提高预测效率(例如,加速比这一衡量指标大于某一阈值),可以在损失误差允许范围内,允许预测过程中出现一定的损失值,此时,该计算机设备可以将模板启用阈值设置为0,以关闭第三模板。可选的,为了提高预测准确率,需要将某些参考帧强制加入预测过程,此时,该计算机设备可以将模板启用阈值设置为1,以开启第三模板。权重等级1对应的权重参数的值可以为6,权重等级2对应的权重参数的值可以为6,权重等级3对应的权重参数的值可以为6,权重等级4对应的权重参数的值可以为5,权重等级5对应的权重参数的值可以为5。

进一步地,该计算机设备可以基于第二失真参数以及权重参数,确定第一模板生成条件中的预测阈值。具体地,该计算机设备确定预测阈值(即thr)的计算公式可以如公式(2)所示:

thr=param[slice_level]*sad_min,(2)

其中,param[slice_level]是指目标视频帧对应的权重参数,sad_min是指第二失真参数。

应当理解,该计算机设备可以基于每个参考帧对应的第一失真参数以及预测阈值,从n个参考帧中获取满足第一模板生成条件的参考帧,进而可以基于满足第一模板生成条件的参考帧,构建与待编码单元相关联的第一模板。可以理解的是,第一模板可以称之为与待编码单元相关联的主模板,记作mask_main。具体地,第一模板的构建公式可以如下述公式(3)所示:

mask_main|=(1<<k),(3)

其中,k可以为满足第一模板生成条件的参考帧xk。

为便于理解,进一步地,请参见图7,图7是本申请实施例提供的一种构建第一模板的流程图。如图7所示,具有视频编码功能的计算机设备所获取的参考视频帧中的参考帧的总帧数量可以为n,其中n为正整数。

应当理解,该计算机设备可以获取用于构建第一模板的第一模板生成条件。其中,第一模板生成条件可以为:权重系数与第一失真参数之间的乘积小于预测阈值。例如,该第一模板生成条件可以为:4×sad[k]<thr,其中,4可以用于指示权重系数,sad[k]可以为参考帧xk对应的第一失真参数,thr可以为根据待编码单元所属目标视频帧的帧类型所确定的预测阈值。

可以理解的是,该计算机设备还可以获取与第一模板生成条件相关联的第一遍历条件,这里的第一遍历条件可以用于指示计算机设备继续对参考视频帧中的n个参考帧的遍历。其中,该第一遍历条件可以为:k<n+1。可以理解的是,若目标视频帧的帧类型为b帧,则第一遍历条件可以为k<8。

应当理解,该计算机设备可以执行步骤s71,即从n个参考帧中获取参考帧x1,进而在执行步骤s72时,可以确定参考帧x1满足该第一遍历条件。进一步地,该计算机设备可以执行步骤s73,以确定参考帧x1是否满足第一模板生成条件。若该计算机设备确定参考帧x1对应的第一失真参数与权重系数的乘积小于预测阈值,则该计算机设备可以确定参考帧x1满足第一模板生成条件,进而可以执行步骤s74,在第一模板中记录该参考帧x1。可选的,若该计算机设备确定参考帧x1对应的第一失真参数与权重系数的乘积大于或者等于预测阈值,则该计算机设备可以确定参考帧x1不满足第一模板生成条件,进而可以执行步骤s75,将k的值更新为2,即从n个参考帧中获取参考帧x2。进一步地,该计算机设备可以继续执行步骤s72,以判定参考帧x2是否为满足第一模板生成条件的参考帧。以此类推,当k的值大于7(即已经完成对参考帧x7的判定时)时,该计算机设备可以确定不满足第一遍历条件,进而可以执行步骤s75,结束对n个参考帧的遍历。

步骤s103,获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板。

具体地,该计算机设备可以获取与待编码单元具有相邻位置关系的相邻块,若相邻块中存在最优预测模式为帧间预测模式的相邻块,则该计算机设备可以将最优预测模式为帧间预测模式的相邻块确定为目标相邻块,记录目标相邻块的第一参考帧信息。进一步地,该计算机设备可以获取待编码单元对应的块划分策略,进而可以基于块划分策略对待编码单元进行划分处理,得到待编码单元对应的子块。若子块中存在最优预测模式为帧间预测模式的子块,则该计算机设备可以将最优预测模式为帧间预测模式的子块确定为目标子块,记录目标子块的第二参考帧信息。此时,该计算机设备可以将相邻块和子块确定为待编码单元对应的参考块,进而可以基于第一参考帧信息以及第二参考帧信息,确定参考块的参考帧信息。进一步地,该计算机设备可以对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板。

应当理解,如图5所示,该计算机设备可以获取与待编码单元5具有相邻位置关系的相邻块,例如,相邻块1、相邻块2、相邻块3以及相邻块4。其中,相邻块1的最优预测模式可以为帧内预测模式,相邻块2、相邻块3以及相邻块4的最优预测模式均可以为帧间预测模式。此时,该计算机设备可以将相邻块2、相邻块3以及相邻块4确定为目标相邻块,进而可以记录这3个相邻块的参考帧信息(即第一参考帧信息)。这3个相邻块的参考帧信息可以记作:ref_nb[3]={ref_b,ref_c,ref_d}。其中,ref_b可以为相邻块2对应的参考帧信息,ref_c可以为相邻块3对应的参考帧信息,ref_d可以为相邻块4对应的参考帧信息。

进一步地,该计算机设备可以获取待编码单元对应的块划分策略,进而可以基于块划分策略对待编码单元进行划分处理,得到待编码单元对应的子块。若子块中存在最优预测模式为帧间预测模式的子块,则该计算机设备可以将最优预测模式为帧间预测模式的子块确定为目标子块,记录目标子块的第二参考帧信息。

为便于理解,进一步地,请参见图8,图8是本申请实施例提供的一种块划分策略的示意图。如图8所示,本申请实施例中的块划分策略(例如,块划分策略8)中可以用于指示对待编码单元进行划分处理的预测顺序。其中,本申请实施例中的划分类型的种类和划分顺序均在此不做限定。

该块划分策略8中可以包括多种预测方式。其中,本申请实施例可以以10种为例,具体可以包括第一划分预测、第二划分预测、第三划分预测、第四划分预测、第五划分预测、第六划分预测、第七划分预测、第八划分预测、第九划分预测以及第十划分预测。

应当理解,块划分策略8中的一种划分预测是指计算机设备可以基于某一种划分类型,对待编码单元进行划分处理,以得到待编码单元对应的划分块,进而能够确定当前划分类型对应的划分块的参考帧信息。如图8所示的划分类型具体可以包括多种,这里可以以10种划分类型为例,用以阐述计算机设备对待编码单元进行划分处理,得到待编码单元对应的划分块的过程。

这10种划分类型可以包括划分类型1(例如,none划分类型),划分类型2(例如,horz划分类型),划分类型3(例如,vert划分类型),划分类型4(例如,splitnone划分类型),划分类型5(例如,horz_a划分类型),划分类型6(例如,horz_b划分类型),划分类型7(例如,vert_a划分类型),划分类型8(例如,vert_b划分类型),划分类型9(例如,horz_4划分类型),划分类型10(例如,vert_4划分类型)。

可以理解的是,该计算机设备基于这10种划分类型,所得到的划分块可以对应这22种块大小,分别可以为4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、128×128、4×16、16×4、8×32、32×8、16×64、64×16。

例如,第一划分预测是指:该计算机设备基于划分类型1,对待编码单元进行划分处理,以得到待编码单元对应的划分块,进而该计算机设备可以确定划分类型1对应的划分块的参考帧信息。

可以理解的是,由于计算机设备在预测待编码单元的过程中是根据块划分策略8中的顺序所执行的,因此,在对待编码单元进行划分预测时,可能进行过其他划分预测,进而确定出的某些划分信息可以直接使用,以提高划分预测效率。

比如,该计算机设备在根据块划分策略8,首次对待编码单元进行第一划分预测之前,并未对该待编码单元进行过其他划分预测,因此,该计算机设备将无法获取到已经确定的划分块的参考帧信息,此时,该计算机设备可以将相邻块作为该编码单元对应的参考块。可以理解的是,在该计算机设备基于划分类型1,对待编码单元进行第一划分预测时,可以得到待编码单元对应的第一划分块(即该待编码单元对应的图像块)的参考帧信息。

进一步地,该计算机设备在根据块划分策略8,对待编码单元进行第二划分预测之前,对待编码单元进行过第一划分预测,此时,该计算机设备所得到的已经确定的划分块可以为第一划分预测所得到的第一划分块,进而可以直接将相邻块和第一划分块作为用于执行第二划分预测时的参考块。若存在第一划分块,且存在最优预测模式为帧间预测模式的第一划分块,则该计算机设备可以记录最优预测模式为帧间预测模式的第一划分块的参考帧信息,根据记录到的第一划分块的参考帧信息确定第一划分预测下的最优参考帧信息(例如,最优参考帧信息1),进而可以将最优参考帧信息1作为第二划分预测下的第二参考帧信息。应当理解,在该计算机设备基于划分类型2,对待编码单元进行第二划分预测时,可以分别得到待编码单元对应的第二划分块的参考帧信息。

进一步地,该计算机设备在根据块划分策略8,对待编码单元进行第三划分预测之前,对该待编码单元进行过第一划分预测和第二划分预测,此时,该计算机设备所得到的已经确定的划分块可以为第一划分预测所得到的第一划分块、以及第二划分预测所得到的第二划分块。进一步地,该计算机设备可以将相邻块、第一划分块、第二划分块作为用于执行第三划分预测时的参考块。若存在第二划分块,且存在最优预测模式为帧间预测模式的第二划分块,则该计算机设备可以记录最优预测模式为帧间预测模式的第二划分块的参考帧信息,根据记录到的第二划分块的参考帧信息确定第二划分预测下的最优参考帧信息(例如,最优参考帧信息2),进而可以将最优参考帧信息1和最优参考帧信息2作为第三划分预测下的第二参考帧信息。应当理解,在该计算机设备基于划分类型3,对待编码单元进行第三划分预测时,该计算机设备可以分别得到待编码单元对应的第三划分块的参考帧信息。

进一步地,该计算机设备在根据块划分策略8,对待编码单元进行第四划分预测之前,对待编码单元进行过第一划分预测、第二划分预测以及第三划分预测,此时,该计算机设备所得到的已经确定的划分块可以为第一划分预测所得到的第一划分块、第二划分预测所得到的第二划分块以及第三划分预测所得到的第三划分块。进一步地,该计算机设备可以将相邻块、第一划分块、第二划分块以及第三划分块作为用于执行第四划分预测时的参考块。若存在第三划分块,且存在最优预测模式为帧间预测模式的第三划分块,则该计算机设备可以记录最优预测模式为帧间预测模式的第三划分块的参考帧信息,根据记录到的第三划分块的参考帧信息确定第三划分预测下的最优参考帧信息(例如,最优参考帧信息3),进而可以将最优参考帧信息1、最优参考帧信息2以及最优参考帧信息3作为第四划分预测下的第二参考帧信息。应当理解,在该计算机设备基于划分类型4,对待编码单元进行第四划分预测时,该计算机设备可以分别得到待编码单元对应的第四划分块的参考帧信息。

以此类推,该计算机设备在根据块划分策略8,对待编码单元进行其他划分预测时,可以将该待编码单元的相邻块,和在执行当前划分预测之前已经确定的划分块作为用于执行当前划分预测时的参考块,进而可以基于已经确定的划分块的参考帧信息,确定出在当前划分预测下的第二参考帧信息,在此将不再进行赘述。

进一步地,该计算机设备可以基于第一参考帧信息以及当前划分预测下的第二参考帧信息,确定参考块的参考帧信息。然后,该计算机设备在参考块的参考帧信息中,基于第一参考帧信息和第二参考帧信息,统计参考视频帧中的n个参考帧分别被选中的第一数量,基于第一数量确定整理后的参考帧信息,进而可以按照整理后的参考帧信息对n个参考帧进行排序处理,以得到排序处理结果。例如,这里的排序处理结果可以为:参考帧x6>参考帧x2>参考帧x4>参考帧x3>参考帧x7>参考帧x5>参考帧x1。

应当理解,该计算机设备可以获取用于构建第二模板的第二模板生成条件。例如,这里的第二模板生成条件可以为:选取具有最大第一数量的参考帧。可选的,这里的第二模板生成条件还可以为:选取排序处理结果中的靠前的2个参考帧。可以理解的是,由于加入的参考帧越多,后续选出最优参考帧的效率会明显减低,因此,本申请实施例中,该计算机设备可以在排序处理结果中,选取具有最大第一数量的参考帧(例如,参考帧x6),进而可以将所选取的参考帧作为满足第二模板生成条件的关键参考帧。

进一步地,该计算机设备可以基于关键参考帧,构建与待编码单元相关联的第二模板。这里的第二模板可以为与该待编码单元相关联的初始化模板,记为mask_init。具体地,第二模板的构建公式可以如下述公式(4)所示:

mask_init|=(1<<xk),(4)

其中,参考帧xk是指计算机设备所选择的满足第二模板生成条件的关键参考帧。

步骤s104,在参考块满足第三模板生成条件时,获取与第三模板生成条件相关联的补充参考帧,基于补充参考帧构建与待编码单元相关联的第三模板。

具体地,该计算机设备可以获取参考块对应的总数量以及参考块对应的预测模式,进而可以将预测模式为帧间预测模式的参考块(即帧间块)的数量确定为第二数量,将预测模式为帧内预测模式的参考块(即帧内块)的数量确定为第三数量。其中,这里的总数量可以为第二数量与第三数量之和。进一步地,该计算机设备可以获取第三模板生成条件中的数量阈值(例如,4)。若总数量小于数量阈值,且第二数量大于第三数量,则该计算机设备可以确定参考块满足第三模板生成条件,且获取与第三模板生成条件相关联的补充参考帧。此时,该计算机设备可以基于补充参考帧,构建与待编码单元相关联的第三模板。

其中,这里的第三模板生成条件可以为:参考块的总数量小于数量阈值(例如,4),且帧间块的第二数量(记作:inter_block_total)大于帧内块的第三数量(记作:intra_block_total)。

例如,在该计算机设备获取的参考块对应的总数量为3,且获取到帧间块的第二数量为2,获取到的帧内块的第三数量为1时,该计算机设备可以确定参考块满足第三模板生成条件。此时,该计算机设备可以获取与第三模板生成条件相关联的补充参考帧。可以理解的是,若该待编码单元所属目标视频帧的帧类型为b帧时,则该计算机设备获取到的补充参考帧可以为上述表1所示的参考帧x1(例如,last_frame)、参考帧x4(例如,golden_frame)以及参考帧x5(例如,bwdref_frame)这3个参考帧。若该待编码单元所属目标视频帧的帧类型为p帧时,则该计算机设备获取到的补充参考帧可以为上述表1所示的参考帧x1(例如,last_frame)和参考帧x4(例如,golden_frame)这2个参考帧。

此时,该计算机设备可以基于补充参考帧,构建与待编码单元相关联的第三模板。可以理解的是,该第三模板可以称之为与待编码单元相关联的增强模板,记作mask_add。具体地,在目标视频帧的帧类型为b帧时,计算机设备确定第三模板的构建公式可以如下述公式(5)所示:

mask_add=(1<<xk1)|(1<<xk2)(1<<xk3),(5)

其中,该参考帧xk1、参考帧xk2以及参考帧xk3均可以为该计算机设备所获取的补充参考帧。

步骤s105,基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板。

具体地,该计算机设备可以获取与第一非运动估计模式相关联的第一初始预测模板。其中,第一初始预测模板可以包括(n+1)个位置;这(n+1)个位置对应的数值均可以为第一数值;n可以为参考视频帧中的参考帧的总帧数量;n为正整数;一个位置对应一个参考帧。进一步地,该计算机设备可以将第一模板中的参考帧、第二模板中的参考帧以及第三模板中的参考帧进行合并处理,得到与第一模板、第二模板以及第三模板相关联的并集集合,将并集集合中的参考帧确定为目标参考帧。可以理解的是,该计算机设备可以在第一初始预测模板中,依次将目标参考帧对应的位置的数值由第一数值更新为第二数值。此时,该计算机设备可以将更新后的第一初始预测模板作为第一非运动估计模式对应的第一预测模板,这里的第一预测模板可以用于预测该待编码单元在第一非运动估计模式下的目标最优参考帧。

其中,第一预测模板的生成公式可以如下述公式(6)所示:

mask_nearestmv=mask_init|mask_main|mask_add,(6)

其中,mask_nearestmv是指第一非运动估计模式(例如,nearestmv模式)对应的预测模板,mask_init是指第二模板(例如,初始化模板),mask_main是指第一模板(例如,主模板),mask_add是指第三模板(例如,增强模板)。

为便于理解,进一步地,请参见图9,图9是本申请实施例提供的一种生成第一预测模板的场景示意图。如图9所示,本申请实施例提供的初始预测模板中可以包括(n+1)个位置,这里的n可以为参考视频帧中的参考帧的总帧数量,n为正整数。可以理解的是,本申请实施例中的待编码单元所属的目标视频帧的帧类型可以为b帧,即计算机设备获取的总帧数量可以为7,因此,初始预测模板可以包括8个位置。一个位置对应一个参考帧。

可以理解的是,这8个位置具体可以包括位置1、位置2、位置3、位置4、位置5、位置6、位置7以及位置8。其中,位置1可以对应参考帧x0,位置2可以对应参考帧x1,位置3可以对应参考帧x2,位置4可以对应参考帧x3,位置5可以对应参考帧x4,位置6可以对应参考帧x5,位置7可以对应参考帧x6,位置8可以对应参考帧x7。这8个位置的数值均为第一数值(例如,0)。

应当理解,图9所示的模板91可以为与待编码单元相关联的第一模板(例如,00000110),即该模板91中的参考帧可以为参考帧x1和参考帧x2。模板92可以为与待编码单元相关联的第二模板(例如,00000100),即该模板92中的参考帧可以为参考帧x2。模板93可以为与待编码单元相关联的第三模板(例如,00110010),即该模板93中的参考帧可以为参考帧x1、参考帧x4和参考帧x5。

进一步地,该计算机设备可以将模板91中的参考帧、模板92中的参考帧以及模板93中的参考帧进行合并处理,得到与模板91、模板92以及模板93相关联的并集集合,将并集集合中的参考帧确定为目标参考帧。如图9所示,该并集集合中的目标参考帧可以包括参考帧x1、参考帧x2、参考帧x4和参考帧x5。此时,该计算机设备可以在初始预测模板中,依次将目标参考帧对应的位置的数值由第一数值更新为第二数值。换言之,该计算机设备可以依次将参考帧x1对应的位置2、参考帧x2对应的位置3、参考帧x4对应的位置5和参考帧x5对应的位置6中的数值由第一数值(例如,0)更新为第二数值(例如,1)。在更新完成后,该计算机设备可以将更新后的初始预测模板作为第一非运动估计模式对应的第一预测模板(如图9所示的预测模板900)。

其中,可以理解的是,该计算机设备可以基于非运动估计模式下对应的预测模板,对待编码单元进行预测处理,以快速得到该待编码单元在非运动估计模式下的目标最优参考帧。其中,这里的预测模板至少可以包括第一非运动估计模式对应的第一预测模板。在视频编码过程中,率失真代价可以作为编码性能的评估标准,用于多种选项的择优,因此,该计算机设备在对待编码单元进行预测处理的过程中,需要基于预测单元、待编码单元、以及非运动估计模式对应的编码辅助参数(例如,编码码率参数、编码失真参数),确定待编码单元对应的率失真代价。选择最小率失真代价对应的编码模式能够获取最优编码性能。其中,编码码率也表现为数据压缩的程度,编码码率越低,视频数据压缩的越厉害。具体地,率失真代价的计算公式可以参见下述公式(7):

rdcost=dist+bit×λ,(7)

其中,rdcost是指率失真代价,dist表示编码失真参数,bit是指与编码模式(例如,非运动估计模式)相关联的编码码率参数,λ是拉格朗日因子。

可以理解的是,在实际应用中,计算机设备常采用平均误差(sse)、反映时域的绝对误差和(sad)或者反映频域的绝对误差和(satd)等客观质量评估标准作为编码失真参数的失真测度。可以理解的是,sse表示原始像素与重构像素误差的平方和,需要对残差信号做变换、量化、逆量化、逆变换的过程,估算出的码子和真实编码出来的一样,选出的模式最节省码子,但计算复杂度也最大。

为便于理解,进一步地,请参见图10,图10是本申请实施例提供的一种通过预测模板进行预测处理的流程图。如图10所示,具有视频编码功能的计算机设备所获取的参考视频帧中可以包括n个参考帧,其中n为正整数。

如图10所示,这里的预测模板至少可以包括第一非运动估计模式对应的第一预测模板。可以理解的是,该计算机设备在基于第一非运动估计模式对待编码单元进行帧间预测处理时,可以获取第一非运动估计模式对应的第一预测模板。例如,该计算机设备在基于nearestmv模式,对待编码单元进行预测处理时,该计算机设备所获取的第一预测模板可以为mask_nearestmv。

可以理解的是,该计算机设备可以获取与第一预测模板相关联的第二遍历条件,这里的第二遍历条件可以用于指示计算机设备继续对参考视频帧中的n个参考帧的遍历。其中,该第二遍历条件可以为:k<=n。例如,若目标视频帧的帧类型为b帧,则第二遍历条件可以为k<=7。

应当理解,该计算机设备可以执行步骤s1010,从n个参考帧中获取参考帧x1,进而在执行步骤s1020时,可以确定参考帧x1满足该第二遍历条件。此时,该计算机设备可以执行步骤s1030,以确定参考帧x1在预测模板(即第一预测模板)中对应位置的数值。

可以理解的是,若参考帧x1在第一预测模板中对应位置的数值为第二数值(例如,1),则该计算机设备可以执行步骤s1040,基于参考帧x1,对待编码单元进行预测处理,进而可以得到该待编码单元对应的目测预测单元。此时,该计算机设备可以基于目标预测单元、待编码单元、以及非运动估计模式对应的编码辅助参数,确定待编码单元对应的率失真代价(即第一率失真代价)。进一步地,该计算机设备可以执行步骤s1050,将k的值更新为2,即从n个参考帧中获取参考帧x2,进而可以判定是否需要基于参考帧x2,对待编码单元进行预测处理。

可选的,若参考帧x1在第一预测模板中对应位置的数值为第一数值(例如,0),则该计算机设备可以直接执行步骤s1050,无需基于参考帧x1,对待编码单元进行预测处理,进而可以减少计算量,以提高最优参考帧的选择效率。

以此类推,当k的值大于7(即已经完成对参考帧x7的判定时)时,该计算机设备可以完成对编码单元的预测处理,进而可以在得到的第一率失真代价中,将最小第一率失真代价确定为初始最优率失真代价,且将该初始最优率失真代价对应的参考帧作为待编码单元的初始最优参考帧。可以理解的是,这里的初始最优参考帧可以为该待编码单元在第一非运动估计模式下的目标最优参考帧。

在本申请实施例中,具有视频编码功能的计算机设备可以获取目标视频帧中的待编码单元,在基于非运动估计模式对待编码单元进行帧间预测处理时,该计算机设备可以生成该非运动估计模式对应的预测模板。其中,这里的预测模板至少可以包括第一非运动估计模式对应的第一预测模板。第一预测模板是基于第一模板、第二模板以及第三模板生成的。可以理解的是,这里的第一模板是根据与待编码单元相关联的参考视频帧的第一失真参数以及第一模板生成条件所构建的;这里的第二模板是基于满足第二模板生成条件的关键参考帧所构建的;这里的第三模板是基于与第三模板生成条件相关联的补充参考帧所构建的。因此,在后续基于非运动估计模式对待编码单元进行帧间预测处理时,可以应用第一非运动估计模式对应的第一预测模板,自适应的选择待编码单元对应的目标最优参考帧。换言之,该计算机设备可以直接对预测模板中的参考帧进行帧间预测处理,而无需对参考视频帧中的每个参考帧进行帧间预测处理,从而可以减少计算量,进而可以提高该计算机设备在非运动估计模式下,选择最优参考帧的效率。

进一步地,请参见图11,图11是本申请实施例提供的一种视频数据处理方法的流程示意图。如图11所示,该方法可以由具有视频编码功能的计算机设备执行,该计算机设备可以为用户终端(例如,上述图1所示的用户终端100a),也可以为服务器(例如,上述图1所示的服务器10),在此不做限定。为便于理解,本申请实施例以该方法由用户终端执行为例进行说明,该方法至少可以包括以下步骤s201-步骤s210:

步骤s201,获取目标视频帧中的待编码单元以及待编码单元对应的非运动估计模式;

步骤s202,在目标视频帧中获取与待编码单元具有相邻位置关系的相邻块,基于相邻块的参考帧信息、相邻块对应的运动向量以及向量记录条件,确定与待编码单元相关联的运动向量候选列表;

步骤s203,通过对每个参考帧的失真参数进行初始化处理,得到每个参考帧对应的初始失真参数,且获取运动向量候选列表中的目标运动向量的目标失真参数,基于初始失真参数、目标失真参数以及图像失真条件,分别确定每个参考帧对应的第一失真参数;

步骤s204,基于每个参考帧对应的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。

其中,步骤s202-步骤s204可以用于构建与待编码单元相关联的第一模板(即主模板),该步骤s201-步骤s204的具体实施方式可参见上述图3所对应实施例中对步骤s101-步骤s102的描述,这里将不再赘述。

步骤s205,获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理;

步骤s206,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板;

步骤s207,在参考块满足第三模板生成条件时,获取与第三模板生成条件相关联的补充参考帧,基于补充参考帧构建与待编码单元相关联的第三模板;

其中,步骤s205-步骤s207可以用于指示计算机设备通过对参考块的参考帧信息进行信息整理,构建与该编码单元相关联的第二模板(即初始化模板)以及第三模板(即增强模板)。该步骤s205-步骤s207的具体实施方式可参见上述图3所对应实施例中对步骤s103-步骤s104的描述,这里将不再赘述。

步骤s208,基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板。

其中,该步骤s208的具体实施方式可参见上述图3所对应实施例中对步骤s105的描述,这里将不再赘述。

应当理解,本申请实施例中的第一预测模板可以用于生成非运动估计模式中的第二非运动估计模式对应的第二预测模板。

步骤s209,基于第一预测模板生成第二非运动估计模式的第二预测模板。

具体地,该计算机设备可以基于第一预测模板,确定待编码单元在第一非运动估计模式下的初始最优参考帧。其中,该初始最优参考帧是基于初始最优率失真代价所得到的;这里的初始最优率失真代价是基于第一预测模板中的参考帧对应的第一率失真代价所确定的。可以理解的是,该计算机设备可以获取与第二非运动估计模式相关联的第二初始预测模板。这里的第二初始预测模板与第一初始预测模板相同。进一步地,该计算机设备可以在第二初始预测模板中,将初始最优参考帧对应的位置的数值由第一数值更新为第二数值,进而可以将更新后的第二初始预测模板作为第二非运动估计模式对应的第二预测模板,这里的第二预测模板用于预测待编码单元在第二非运动估计模式下的目标最优参考帧。

其中,第二预测模板的生成公式可以如下述公式(8)所示:

mask_nearmv=mask_globalmv=mask_init|(1<<ref_nearestmv_best),(8)

其中,mask_nearmv和mask_globalmv均可以称之为第二非运动估计模式对应的第二预测模板,这里的mask_nearm是指第二非运动估计模式(例如,nearmv模式)对应的预测模板,这里的mask_globalmv是指第二非运动估计模式(例如,globalmv模式)对应的预测模板。ref_nearestmv_best是指基于第一预测模板,在第一非运动估计模式(例如,nearestmv模式)下所确定的初始最优参考帧。

如图9所示,该计算机设备可以基于图9所示的预测模板900(即第一预测模板)中的参考帧,对待编码单元进行预测处理,进而可以得到参考帧x1对应的第一率失真代价(例如,率失真代价1)、参考帧x2对应的第一率失真代价(例如,率失真代价2)、参考帧x4对应的第一率失真代价(例如,率失真代价3)和参考帧x5对应的第一率失真代价(例如,率失真代价4)。此时,该计算机设备可以从这4个率失真代价中选取最小率失真代价对应的参考帧(例如,参考帧x5),进而可以将所选取的参考帧作为待编码单元在第一非运动估计模式下的初始最优参考帧。

可以理解的是,该计算机设备可以获取与第二非运动估计模式相关联的第二初始预测模板,该第二初始预测模板与第一初始预测模板(例如,图9所示的初始预测模板)相同,例如,00000000。进一步地,该计算机设备可以在第二初始预测模板中,将初始最优参考帧(例如,参考帧x5)对应的位置的数值由第一数值更新为第二数值,进而可以将更新后的第二初始预测模板作为第二非运动估计模式对应的第二预测模板(例如,00100000)。换言之,nearmv模式所对应的预测模板可以为00100000,globalmv模式所对应的预测模板也可以为00100000。

其中,步骤s208和步骤s209可以用于指示计算机设备生成第一预测模板以及第二预测模板。

步骤s210,基于第一预测模板,第二预测模板,获取待编码单元对应的目标最优参考帧。

具体地,该计算机设备在基于非运动估计模式对待编码单元进行帧间预测处理时,可以获取非运动估计模式对应的编码策略,基于编码策略确定待编码单元对应的预测模板。这里的预测模板至少可以包括第一预测模板和第二预测模板。进一步地,该计算机设备可以从参考视频帧的n个参考帧中获取参考帧xk,若参考帧xk在预测模板中的对应位置的数值为第二数值,则该计算机设备可以基于参考帧xk,对待编码单元进行预测处理,得到待编码单元对应的目标预测单元。其中,n可以为参考视频帧中的参考帧的总帧数量;n为正整数;k为小于或者等于n的正整数。进一步地,该计算机设备可以基于目标预测单元、待编码单元、以及非运动估计模式对应的编码辅助参数,确定待编码单元对应的第二率失真代价。当k的值大于n时,该计算机设备可以完成对编码单元的预测处理,进而可以在第二率失真代价中,将最小第二率失真代价确定为目标最优率失真代价,且将目标最优率失真代价对应的参考帧作为待编码单元在非运动估计模式下的目标最优参考帧。

应当理解,在基于非运动估计模式对待编码单元进行帧间预测处理时,可以获取非运动估计模式对应的预测模板。其中,这里的预测模板至少可以包括第一非运动估计模型对应的第一预测模板以及第二非运动估计模式对应的第二预测模板。

可以理解的是,根据上述图4所示的编码策略4,在基于非运动估计模式41(即第一非运动估计模式,例如,nearestmv模式)对待编码单元进行预测处理时,该计算机设备所获取的预测模板可以为第一非运动估计模式对应的第一预测模板(例如,mask_nearestmv),即mask=mask_nearestmv。此时,该计算机设备可以基于该第一预测模板,预测该待编码单元在nearestmv模式下的目标最优参考帧。

进一步地,根据上述图4所示的编码策略4,在基于非运动估计模式42,(即第二非运动估计模式,例如,nearmv模式),对待编码单元进行预测处理时,该计算机设备所获取的预测模板可以为第二预测模板(例如,mask_nearmv),即mask=mask_nearmv。此时,该计算机设备可以基于该第二预测模板,预测该待编码单元在nearmv模式下的目标最优参考帧。

进一步地,根据上述图4所示的编码策略4,在基于非运动估计模式43(即第二非运动估计模式,例如,globalmv模式),对待编码单元进行预测处理时,该计算机设备所获取的预测模板可以为第二预测模板(例如,mask_globalmv),即mask=mask_globalmv。此时,该计算机设备可以基于该第二预测模板,预测该待编码单元在globalmv模式下的目标最优参考帧。

可以理解的是,该计算机设备在选择出非运动估计模式下的目标最优参考帧之后,可以确定待编码单元在该非运动估计模式下对应的率失真代价。例如,这里的率失真代价可以包括该待编码单元在nearestmv模式下对应的率失真代价1,在nearmv模式下对应的率失真代价2,以及在globalmv模式下对应的率失真代价3。进一步地,该计算机设备可以基于这3个率失真代价,选择出具有最小率失真代价所对应的非运动估计模式,进而可以将最小率失真代价所对应的非运动估计模式作为该待编码单元从非运动估计模式中所确定的最优预测模式。其中,由于该计算机设备可以快速选择出非运动估计模式下的目标最优参考帧,进而使得该计算机设备从非运动估计模式中确定最优预测模式的效率得以提升。

其中,该计算机设备基于第二预测模板对待编码单元进行预测处理的具体实施方式,可以参见上述图10基于第一预测模板对待编码单元进行预测处理的具体实施方式,在此不再继续进行赘述。

可以理解的是,视频编码质量的好坏可以由质量指标来衡量。其中,质量指标可以包括峰值信噪比(peaksignaltonoiseratio,简称psnr)、结构相似性指数(structuralsimilarityindex,简称ssim)以及视频融合评估指标(videomultimethodassessmentfusion,简称vmaf)。经实验结果表明,该计算机设备在编码65帧的视频数据时,psnr降低了0.09%,对应加速比为59.1447;ssim降低了0.07%,对应加速比为76.6818;vmaf降低了0.03%,对应加速比为209.5790;编码效率提升了5.47%。因此,本申请实施例中在基于非运动估计模式对待编码单元进行预测处理时,通过应用生成的预测模板,能够快速选择出最优参考帧(即目标最优参考帧),进而可以明显提升了该计算机设备在对该待编码单元进行编码时的编码效率。

进一步地,请参见图12,图12是本申请实施例提供的一种视频数据处理装置的结构示意图。如图12所示,该视频数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该视频数据处理装置1为一个应用软件;该视频数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图12所示,该视频数据处理装置1可以运行于具有视频编码功能的计算机设备,该计算机设备可以为上述图2所对应实施例中的用户终端2a。该视频数据处理装置1可以包括:模式获取模块11,第一模板构建模块12,第二模板构建模块13,第三模板构建模块14,预测模板生成模块15,初始最优帧确定模块16,初始模板获取模块17,数值更新模块18,预测模板确定模块19,模板获取模块20,预测处理模块21,目标代价确定模块22以及目标最优帧确定模块23。

该模式获取模块11,用于获取目标视频帧中的待编码单元以及待编码单元对应的非运动估计模式;非运动估计模式包括第一非运动估计模式。

其中,该模式获取模块11包括:目标视频帧获取单元111,图像块划分处理单元112以及模式获取单元113。

该目标视频帧获取单元111,用于获取由图像采集器所采集到的视频数据,从视频数据中获取待进行编码处理的视频帧,将获取到的视频帧作为目标视频帧;

该图像块划分处理单元112,用于通过视频编码器对目标视频帧进行图像块划分处理,得到目标视频帧的一个或者多个图像块,从一个或者多个图像块中获取待编码单元;

该模式获取单元113,用于获取视频编码器的编码策略,从与编码策略相关联的编码模式中获取第一非运动估计模式,将第一非运动估计模式作为待编码单元对应的非运动估计模式。

其中,该目标视频帧获取单元111,图像块划分处理单元112以及模式获取单元113的具体实现方式可以参见上述图3所对应实施例中对步骤s101的描述,这里将不再继续进行赘述。

该第一模板构建模块12,用于在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧,根据参考视频帧的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。

其中,该第一模板构建模块12包括:参考帧确定单元121,初始失真参数确定单元122,候选列表确定单元123,目标失真参数确定单元124,失真确定单元125以及第一模板构建单元126。

该参考帧确定单元121,用于在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧;参考视频帧包括n个参考帧;n为正整数;

该初始失真参数确定单元122,用于对每个参考帧的失真参数分别进行初始化处理,得到每个参考帧对应的初始失真参数;

该候选列表确定单元123,用于在目标视频帧中获取与待编码单元具有相邻位置关系的相邻块,基于相邻块的参考帧信息、相邻块对应的运动向量以及向量记录条件,确定与待编码单元相关联的运动向量候选列表;运动向量候选列表中的目标运动向量是由相邻块对应的运动向量所确定的。

其中,该候选列表确定单元123包括:相邻块获取子单元1231,目标运动向量确定子单元1232以及候选列表确定子单元1233。

该相邻块获取子单元1231,用于获取与目标视频帧相关联的向量记录条件,在目标视频帧中获取与待编码单元具有相邻位置关系的相邻块,且获取相邻块的参考帧信息以及相邻块的最优预测模式;

该目标运动向量确定子单元1232,用于从n个参考帧中遍历获取参考帧xk,在相邻块的最优预测模式为帧间预测模式,且相邻块的参考帧信息与参考帧xk相同时,将相邻块对应的运动向量确定为满足向量记录条件的目标运动向量,将目标运动向量记录至参考帧xk所在的目标列表栏;目标列表栏属于初始运动向量候选列表中的列表栏;k为小于或者等于n的正整数;

该候选列表确定子单元1233,用于将记录有目标运动向量的初始运动向量候选列表作为与待编码单元相关联的运动向量候选列表。

其中,该相邻块获取子单元1231,目标运动向量确定子单元1232以及候选列表确定子单元1233的具体实现方式可以参见上述图5所对应实施例中对运动向量候选列表的描述,这里将不再继续进行赘述。

该目标失真参数确定单元124,用于基于目标运动向量确定待编码单元对应的初始预测单元,基于待编码单元和初始预测单元,确定目标运动向量的目标失真参数。

其中,待编码单元的图像尺寸为m×n;m和n均为非负整数;

该目标失真参数确定单元124包括:初始确定子单元1241,原始像素值确定子单元1242,预测像素值确定子单元1243以及目标失真参数确定子单元1244。

该初始确定子单元1241,用于基于目标运动向量,确定待编码单元对应的初始预测单元;

该原始像素值确定子单元1242,用于从图像尺寸为m×n的待编码单元中获取像素点pij,在待编码单元中确定像素点pij的原始像素值;像素点pij为待编码单元中的第i行第j列上的像素点;i为小于或者等于m的非负整数;j为小于或者等于n的非负整数;

该预测像素值确定子单元1243,用于在初始预测单元中确定像素点pij所映射的预测像素点pij的预测像素值;

该目标失真参数确定子单元1244,用于确定像素点pij的原始像素值与预测像素点pij的预测像素值的像素差值,基于像素差值得到目标运动向量的目标失真参数。

其中,该初始确定子单元1241,原始像素值确定子单元1242,预测像素值确定子单元1243以及目标失真参数确定子单元1244的具体实现方式可以参见上述图3所对应实施例中对目标失真参数的描述,这里将不再继续进行赘述。

该失真确定单元125,用于基于初始失真参数、目标失真参数以及图像失真条件,分别确定每个参考帧对应的第一失真参数;

该第一模板构建单元126,用于基于每个参考帧对应的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板。

其中,该第一模板构建单元126包括:失真确定子单元1261,权重参数确定子单元1262,预测阈值确定子单元1263,参考帧获取子单元1264以及第一模板构建子单元1265。

该失真确定子单元1261,用于在每个参考帧对应的第一失真参数中,将最小第一失真参数确定为第二失真参数;

该权重参数确定子单元1262,用于获取与第一模板生成条件相关联的权重等级表,在权重等级表中确定目标视频帧对应的权重等级,基于权重等级与权重参数之间的映射关系,确定权重等级对应的权重参数;

该预测阈值确定子单元1263,用于基于第二失真参数以及权重参数,确定第一模板生成条件中的预测阈值;

该参考帧获取子单元1264,用于基于每个参考帧对应的第一失真参数以及预测阈值,从n个参考帧中获取满足第一模板生成条件的参考帧;

该第一模板构建子单元1265,用于基于满足第一模板生成条件的参考帧,构建与待编码单元相关联的第一模板。

其中,该失真确定子单元1261,权重参数确定子单元1262,预测阈值确定子单元1263,参考帧获取子单元1264以及第一模板构建子单元1265的具体实现方式可以参见上述图7所对应实施例中对第一模板的描述,这里将不再继续进行赘述。

其中,该参考帧确定单元121,初始失真参数确定单元122,候选列表确定单元123,目标失真参数确定单元124,失真确定单元125以及第一模板构建单元126的具体实现方式可以参见上述图3所对应实施例中对步骤s102的描述,这里将不再继续进行赘述。

该第二模板构建模块13,用于获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板。

其中,该第二模板构建模块13包括:第一帧信息记录单元131,第二帧信息记录单元132,参考帧信息确定单元133以及第二模板构建单元134。

该第一帧信息记录单元131,用于获取与待编码单元具有相邻位置关系的相邻块,若相邻块中存在最优预测模式为帧间预测模式的相邻块,则将最优预测模式为帧间预测模式的相邻块确定为目标相邻块,记录目标相邻块的第一参考帧信息;

该第二帧信息记录单元132,用于获取待编码单元对应的块划分策略,基于块划分策略对待编码单元进行划分处理,得到待编码单元对应的子块,若子块中存在最优预测模式为帧间预测模式的子块,则将最优预测模式为帧间预测模式的子块确定为目标子块,记录目标子块的第二参考帧信息;

该参考帧信息确定单元133,用于将相邻块和子块确定为待编码单元对应的参考块,基于第一参考帧信息以及第二参考帧信息,确定参考块的参考帧信息;

该第二模板构建单元134,用于对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板。

其中,该第二模板构建单元134包括:排序处理子单元1341,关键帧确定子单元1342以及第二模板构建子单元1343。

该排序处理子单元1341,用于在参考块的参考帧信息中,基于第一参考帧信息和第二参考帧信息,统计参考视频帧中的n个参考帧分别被选中的第一数量,基于第一数量确定整理后的参考帧信息,按照整理后的参考帧信息对n个参考帧进行排序处理,得到排序处理结果;n为正整数;

该关键帧确定子单元1342,用于在排序处理结果中,选取具有最大第一数量的参考帧,将所选取的参考帧作为满足第二模板生成条件的关键参考帧;

该第二模板构建子单元1343,用于基于关键参考帧,构建与待编码单元相关联的第二模板。

其中,该排序处理子单元1341,关键帧确定子单元1342以及第二模板构建子单元1343的具体实现方式可以参见上述图3所对应实施例中对第二模板的描述,这里将不再继续进行赘述。

其中,该第一帧信息记录单元131,第二帧信息记录单元132,参考帧信息确定单元133以及第二模板构建单元134的具体实现方式可以参见上述图3所对应实施例中对步骤s103的描述,这里将不再继续进行赘述。

该第三模板构建模块14,用于在参考块满足第三模板生成条件时,获取与第三模板生成条件相关联的补充参考帧,基于补充参考帧构建与待编码单元相关联的第三模板。

其中,该第三模板构建模块14包括:总数量确定单元141,补充帧获取单元142以及第三模板构建单元143。

该总数量确定单元141,用于获取参考块对应的总数量以及参考块对应的预测模式,将预测模式为帧间预测模式的参考块的数量确定为第二数量,将预测模式为帧内预测模式的参考块的数量确定为第三数量;总数量为第二数量与第三数量之和;

该补充帧获取单元142,用于获取第三模板生成条件中的数量阈值,若总数量小于数量阈值,且第二数量大于第三数量,则确定参考块满足第三模板生成条件,且获取与第三模板生成条件相关联的补充参考帧;

该第三模板构建单元143,用于基于补充参考帧,构建与待编码单元相关联的第三模板。

其中,该总数量确定单元141,补充帧获取单元142以及第三模板构建单元143的具体实现方式可以参见上述图3所对应实施例中对步骤s104的描述,这里将不再继续进行赘述。

该预测模板生成模块15,用于基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板;第一预测模板用于预测待编码单元在第一非运动估计模式下的目标最优参考帧。

其中,该预测模板生成模块15包括:初始模板获取单元151,目标帧确定单元152,数值更新单元153以及预测模板生成单元154。

该初始模板获取单元151,用于获取与第一非运动估计模式相关联的第一初始预测模板;第一初始预测模板包括(n+1)个位置;(n+1)个位置对应的数值均为第一数值;n为参考视频帧中的参考帧的总帧数量;n为正整数;一个位置对应一个参考帧;

该目标帧确定单元152,用于将第一模板中的参考帧、第二模板中的参考帧以及第三模板中的参考帧进行合并处理,得到与第一模板、第二模板以及第三模板相关联的并集集合,将并集集合中的参考帧确定为目标参考帧;

该数值更新单元153,用于在第一初始预测模板中,依次将目标参考帧对应的位置的数值由第一数值更新为第二数值;

该预测模板生成单元154,用于将更新后的第一初始预测模板作为第一非运动估计模式对应的第一预测模板。

其中,该初始模板获取单元151,目标帧确定单元152,数值更新单元153以及预测模板生成单元154的具体实现方式可以参见上述图3所对应实施例中对步骤s105的描述,这里将不再继续进行赘述。

其中,该非运动估计模式包括编码模式中的第二非运动估计模式;编码模式是由视频编码器的编码策略所确定的;

该初始最优帧确定模块16,用于基于第一预测模板,确定待编码单元在第一非运动估计模式下的初始最优参考帧;初始最优参考帧是基于初始最优率失真代价所得到的;初始最优率失真代价是基于第一预测模板中的参考帧对应的第一率失真代价所确定的;

该初始模板获取模块17,用于获取与第二非运动估计模式相关联的第二初始预测模板;第二初始预测模板与第一初始预测模板相同;

该数值更新模块18,用于在第二初始预测模板中,将初始最优参考帧对应的位置的数值由第一数值更新为第二数值;

该预测模板确定模块19,用于将更新后的第二初始预测模板作为第二非运动估计模式对应的第二预测模板;第二预测模板用于预测待编码单元在第二非运动估计模式下的目标最优参考帧。

该模板获取模块20,用于在基于非运动估计模式对待编码单元进行帧间预测处理时,获取非运动估计模式对应的编码策略,基于编码策略确定待编码单元对应的预测模板;预测模板至少包括第一预测模板;

该预测处理模块21,用于从参考视频帧的n个参考帧中获取参考帧xk,若参考帧xk在预测模板中的对应位置的数值为第二数值,则基于参考帧xk,对待编码单元进行预测处理,得到待编码单元对应的目标预测单元;n为参考视频帧中的参考帧的总帧数量;n为正整数;k为小于或者等于n的正整数;

该目标代价确定模块22,用于基于目标预测单元、待编码单元、以及非运动估计模式对应的编码辅助参数,确定待编码单元对应的第二率失真代价;

该目标最优帧确定模块23,用于当k的值大于n时,完成对编码单元的预测处理,在第二率失真代价中,将最小第二率失真代价确定为目标最优率失真代价,将目标最优率失真代价对应的参考帧作为待编码单元在非运动估计模式下的目标最优参考帧。

其中,该模式获取模块11,第一模板构建模块12,第二模板构建模块13,第三模板构建模块14,预测模板生成模块15,初始最优帧确定模块16,初始模板获取模块17,数值更新模块18,预测模板确定模块19,模板获取模块20,预测处理模块21,目标代价确定模块22以及目标最优帧确定模块23的具体实现方式可以参见上述图10所对应实施例中对步骤s201-步骤s210的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图13,图13是本申请实施例提供的一种计算机设备的示意图。如图13所示,该计算机设备1000可以为上述图2对应实施例中的用户终端2a,该计算机设备1000可以包括:至少一个处理器1001,例如cpu,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图13所示的计算机设备1000中,网络接口1004主要用于与服务器(如图2所示的服务器200)进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

获取目标视频帧中的待编码单元以及待编码单元对应的非运动估计模式;非运动估计模式包括第一非运动估计模式;

在基于第一非运动估计模式对待编码单元进行帧间预测处理时,基于目标视频帧的帧类型,确定与待编码单元相关联的参考视频帧,根据参考视频帧的第一失真参数以及第一模板生成条件,构建与待编码单元相关联的第一模板;

获取待编码单元的参考块的参考帧信息,对参考块的参考帧信息进行信息整理,基于整理后的参考帧信息在参考视频帧中确定满足第二模板生成条件的关键参考帧,基于关键参考帧构建与待编码单元相关联的第二模板;

在参考块满足第三模板生成条件时,获取与第三模板生成条件相关联的补充参考帧,基于补充参考帧构建与待编码单元相关联的第三模板;

基于第一模板、第二模板以及第三模板,生成第一非运动估计模式对应的第一预测模板;第一预测模板用于预测待编码单元在第一非运动估计模式下的目标最优参考帧。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图10所对应实施例中对该视频数据处理方法的描述,也可执行前文图12所对应实施例中对该视频数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3和图10中各个步骤所提供的视频数据处理方法,具体可参见图3以及图10各个步骤所提供的实现方式,在此不再赘述。

计算机可读存储介质可以是前述任一实施例提供的数据传输装置或者计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图10所对应实施例中对视频数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包括。例如包括了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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