视频编码和解码方法、装置、计算机设备及存储介质与流程

文档序号:16008555发布日期:2018-11-20 20:22阅读:191来源:国知局

本发明涉及计算机技术领域,特别是涉及一种视频编码和解码方法、装置、计算机设备及存储介质。



背景技术:

随着数字媒体技术和计算机技术的发展,视频应用于各个领域,如移动通信、网络监控、网络电视等。随着硬件性能和屏幕分辨率的提高,用户对高清视频的需求日益强烈。

在带宽有限的条件下,传统的编码器对视频帧无区分地进行编码,可能出现某些场景视频质量差的问题,如在750kbps时,对于所有视频帧不加区分地进行编码时,存在部分视频帧质量差的情况,分析H.264\H.265\iOS等编码器都存在相似问题。



技术实现要素:

本发明实施例提供一种视频编码和解码方法、装置、计算机设备及存储介质,能够解决传统视频编解码方法所导致的视频质量差的问题。

一种视频编码方法,包括:

获取待编码视频帧;不同的所述待编码视频帧存在分辨率不同的情况;

根据所述待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;

在所述目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;

获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量;

根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

一种视频编码装置,包括:

获取模块,用于获取待编码视频帧;不同的所述待编码视频帧存在分辨率不同的情况;根据所述待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;

确定模块,用于在所述目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;

所述获取模块还用于获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量;

编码模块,用于根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

获取待编码视频帧;不同的所述待编码视频帧存在分辨率不同的情况;

根据所述待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;

在所述目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;

获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量;

根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

获取待编码视频帧;不同的所述待编码视频帧存在分辨率不同的情况;

根据所述待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;

在所述目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;

获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量;

根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

上述视频编码方法、装置、计算机设备和存储介质,在对存在不同分辨率情况的编码视频帧进行编码时,在根据分辨率配置信息确定的目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量和预测运动矢量,这样一来,根据同一分辨率下的目标运动矢量和对应的预测运动矢量间的运动残差,得到的编码数据更加的准确,从而提高了编码质量。而且,根据同一分辨率下的目标运动矢量和对应的预测运动矢量间的运动残差得到的编码数据,减少了编码数据的数据量。此外,通过该视频编码方法,能够实现对不同分辨率的待编码视频帧的编码处理,提高了编码的灵活性。

一种视频解码方法,包括:

获取待解码视频帧所对应的编码数据;

提取编码数据中与所述待解码视频帧中各待解码块各自对应的运动残差;所述运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率;

确定各所述待解码块各自对应的预测运动矢量;

当所述待解码视频帧的分辨率与所述目标分辨率不一致时,则对各所述待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在所述待解码视频帧的分辨率下的运动矢量;

根据各所述待解码块各自对应的运动矢量,确定各所述待解码块各自对应的参考块;

根据各所述参考块和所述编码数据,得到重建视频帧。

一种视频解码装置,包括:

获取模块,用于获取待解码视频帧所对应的编码数据;提取编码数据中与所述待解码视频帧中各待解码块各自对应的运动残差;所述运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率;

确定模块,用于确定各所述待解码块各自对应的预测运动矢量;当所述待解码视频帧的分辨率与所述目标分辨率不一致时,则对各所述待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在所述待解码视频帧的分辨率下的运动矢量;根据各所述待解码块各自对应的运动矢量,确定各所述待解码块各自对应的参考块;

解码模块,用于根据各所述参考块和所述编码数据,得到重建视频帧。

一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

获取待解码视频帧所对应的编码数据;

提取编码数据中与所述待解码视频帧中各待解码块各自对应的运动残差;所述运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率;

确定各所述待解码块各自对应的预测运动矢量;

当所述待解码视频帧的分辨率与所述目标分辨率不一致时,则对各所述待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在所述待解码视频帧的分辨率下的运动矢量;

根据各所述待解码块各自对应的运动矢量,确定各所述待解码块各自对应的参考块;

根据各所述参考块和所述编码数据,得到重建视频帧。

一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

获取待解码视频帧所对应的编码数据;

提取编码数据中与所述待解码视频帧中各待解码块各自对应的运动残差;所述运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率;

确定各所述待解码块各自对应的预测运动矢量;

当所述待解码视频帧的分辨率与所述目标分辨率不一致时,则对各所述待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在所述待解码视频帧的分辨率下的运动矢量;

根据各所述待解码块各自对应的运动矢量,确定各所述待解码块各自对应的参考块;

根据各所述参考块和所述编码数据,得到重建视频帧。

上述视频解码方法、装置、计算机设备和存储介质,编码数据包括与待解码视频帧中各待解码块各自对应的运动残差,其中,运动残差所对应分辨率为分辨率配置信息所对应的目标分辨率,当所述待解码视频帧的分辨率与所述目标分辨率不一致时,则对各所述待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到各待解码块所对应的、且在所述待解码视频帧的分辨率下的运动矢量,使得确定的运动矢量更加的准确,从而能够准确找到各待解码块各自对应的参考块,根据准确的参考块和编码数据,得到的重建视频帧更加的准确,进而提高了解码图像的质量。

附图说明

图1为一个实施例中提供的视频编码方法的应用环境图;

图2为一个实施例中视频编码方法对应的编码框架图;

图3为一个实施例中视频解码方法对应的解码框架图;

图4为一个实施例中编码块对应的示意图;

图5为一个实施例中提供的视频编码方法的流程图;

图6为一个实施例中提供的编码数据的示意图;

图7示出了一个实施例中选取预测运动矢量的原理示意图;

图8为一个实施例中提供的对当前参考帧进行插值的示意图;

图9为一个实施例中提供的对当前参考帧进行插值的示意图;

图10为一个实施例中提供的当前参考帧与待编码帧的示意图;

图11为一个实施例中提供的视频编码框架的示意图;

图12为一个实施例中视频解码方法的流程图;

图13为一个实施例中视频编码装置的框图;

图14为一个实施例中视频解码装置的框图;

图15为一个实施例中计算机设备的内部结构框图;

图16为另一个实施例中计算机设备的内部结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”和“第三”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一矢量变换系数称为第二矢量变换系数,且类似地,可将第二矢量变换系数称为第一矢量变换系数。

图1为一个实施例中提供的视频编码和/或视频解码方法的应用环境图,如图1所示,在该应用环境中,包括终端110以及服务器120。

视频编码方法和/或视频解码方法可以在终端110或服务器120中完成,终端110可将输入的原始视频帧采用本发明实施例提供的视频编码方法进行编码后,将编码数据发送至服务器120,也可从服务器120接收编码数据进行解码后生成解码视频帧。服务器120可以对原始视频帧进行编码,此时视频编码方法在服务器120完成,如果服务器120需要对编码数据进行解码,则视频解码方法在服务器120完成。当然,服务器120也可以在接收终端110发送的编码数据后,发送到对应的接收终端中,由接收终端进行解码。

终端110和服务器120通过网络连接。服务器120可以通过输入接口或输出接口与终端110进行通信,比如,接收或发送编码数据。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑以及笔记本电脑等中的至少一种,但并不局限于此。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

终端110或服务器120可以通过编码器进行视频编码,或者通过解码器进行视频解码。终端110或服务器120也可以通过处理器运行视频编码程序进行视频编码,或者通过处理器运行视频解码程序进行视频解码。服务器120通过输入接口接收到终端110发送的编码数据后,可直接传递至处理器进行解码,也可存储至数据库中等待后续解码。服务器120在通过处理器对原始视频帧编码得到编码数据后,可直接通过输出接口发送至终端110,也可将编码数据存储至数据库中等待后续传递。

图2为一个实施例中提供的视频编码方法对应的编码框架图,本发明实施例提供的视频编码方法可以获取输入视频序列的各个原始视频帧进行编码,得到对应的编码数据,并通过存储发送单元222存储或者发送编码数据,或者存储并发送编码数据。其中,在处理方式决策单元202处,可以对原始视频帧进行处理方式决策,得到原始视频帧对应的处理方式。在处理单元204处,可以根据处理方式对原始视频帧进行处理,得到待编码视频帧。在第一预测单元206处,可以在待编码视频帧的分辨率下,可以对待编码视频帧的各个待编码块进行帧内预测或者帧间预测,根据待编码块对应的参考块的图像值得到预测像素值,并确定待编码块所对应的运动矢量,将待编码块实际值与预测像素值相减得到像素残差,运动矢量表示待编码块相对于参考块的位移。在变换单元208处,将空间域中的像素残差以及矢量信息变换到频率域,并可以对变换系数进行编码。变换的方法可以为离散傅里叶变换或者离散余弦变换等等,矢量信息可以为表示位移的实际运动矢量或者运动残差,运动残差为实际运动矢量与预测运动矢量的差值。

在量化单元210处,将变换后的数据映射成另一个数值,例如可以通过变换后的数据除以量化步长得到一个较小的值。量化参数是量化步长对应的的序号,根据量化参数可以查找到对应的量化步长。量化参数小,则图像帧的大部分的细节都会被保留,对应的码率高。量化参数大,则对应的码率低,但图像失真较大、质量不高。量化的原理用公式表示如下:FQ=round(y/Qstep)。其中,y为量化之前视频帧对应的值,Qstep为量化步长,FQ为对y进行量化得到的量化值。Round(x)函数指将取值进行四舍五入取偶,即四舍六入五取偶。量化参数与量化步长的对应关系具体可以根据需要进行设置。例如,在一些视频编码标准中,对于亮度编码而言,量化步长共有52个值,为0~51之间的整数,对于色度编码,量化步长的取值为0~39之间的整数,且量化步长随着量化参数的增加而增加,每当量化参数增加6,量化步长便增加一倍。

熵编码单元220用于进行熵编码,熵编码为按熵原理进行编码,且不丢失任何信息的数据编码方式,能够利用较小的字符来表达一定的信息。熵编码方法例如可以为香农编码(shannon)或者哈夫曼编码(huffman)等。

第一反量化单元212、第一反变换单元214、第一重建单元216以及参考信息自适应单元218是重建路径对应的单元,利用重建路径的各个单元进行帧的重建得到参考帧,能够保持编码以及解码中参考帧的一致。其中第一反量化单元212进行的步骤是进行量化的逆过程,第一反变换单元214进行的步骤是变换单元210进行变换的逆过程,第一重建单元216用于将反变换得到的残差数据加上预测数据得到重建参考帧。第一参考信息自适应单元218用于在待编码视频帧的分辨率下,对重建得到的参考帧、待编码视频帧的各个待编码块对应的位置信息、参考帧的各个参考块对应的位置信息以及运动矢量中等参考信息中的至少一个进行自适应处理,使第一预测单元206根据自适应处理后的参考信息进行预测。

图3为一个实施例中提供的视频解码方法对应的解码框架图,本发明实施例提供的视频解码方法可以通过编码数据获取单元300获取待解码视频序列的各个待解码视频帧对应的编码数据,通过熵解码单元302进行熵解码后,得到熵解码数据,第二反量化单元304对熵解码数据进行反量化,得到反量化数据,第二反变换单元306对反量化数据进行反变换,得到反变换的数据,该反变换的数据可以与图2中第一反变换单元214进行反变换后得到的数据是一致的,分辨率信息获取单元308用于获取待解码视频帧对应的分辨率信息。第二参考信息自适应单元312用于获取第二重建单元重建得到参考帧,根据待解码视频帧的分辨率信息对参考帧、待解码帧的各个待解码块对应的位置信息、参考帧的各个参考块对应的位置信息以及运动矢量等参考信息中的至少一个进行自适应处理,根据自适应处理后的信息进行预测。第二预测单元314根据自适应后得到的参考信息获取待解码块对应的参考块,根据参考块的图像值得到与图2中的预测像素值一致的预测像素值。第二重建单元310根据预测像素值以及反变换的数据即像素残差进行重建,得到重建视频帧。第二处理单元316根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。播放存储单元318可以对解码视频帧进行播放或者存储,或者进行播放以及存储。

可以理解,上述的编码框架图、解码框架图仅是一种示例,并不构成对本申请方案所应用于的编码方法的限定,具体的编码框架图以及解码框架图可以包括比图中所示更多或更少的单元,或者组合某些单元,或者具有不同的部件单元不知。例如,还可以对重建视频帧进行环路滤波,降低视频帧的方块效应,以提高视频质量。

可以将待编码视频帧划分为多个待编码块,待编码块的大小可以根据需要进行设置或者计算得到。例如待编码块的大小可以均为8*8像素。或者可以通过计算各种待编码块的划分方式对应的率失真代价,选择率失真代价小的划分方式进行待编码块的划分。如图4所示为一个64*64像素图像块的划分示意图,一个方块代表一个待编码块。由图4可知,待编码块的大小可以包括32*32像素、16*16像素、8*8像素以及4*4像素。当然,待编码块的大小也可是其他大小,例如可以是32*16像素或者是64*64像素。可以理解,在解码时,由于待编码块与待解码块是一一对应的,因此待解码块的像素大小也可以包括32*32像素、16*16像素、8*8像素以及4*4像素等。

如图5所示,在一个实施例中,提供了一种视频编码方法。本实施例主要以该方法应用于计算机设备来举例说明,计算机设备可以是上述图1中的终端110或服务器120。参照图5,该视频编码方法具体包括如下步骤:

S502,获取待编码视频帧;不同的待编码视频帧存在分辨率不同的情况。

其中,待编码视频帧是由输入的原始视频帧按照对应的处理方式进行处理得到。不同的待编码视频帧存在分辨率不同的情况,表示不同的待编码视频帧的分辨率可以相同也可以不同。比如,视频序列中包括原始视频帧A和原始视频帧B,其中,原始视频帧A和原始视频帧B可能按照不同的处理方式进行处理,因此,原始视频帧A和原始视频帧B各自对应的待编码视频帧的分辨率可能不同。

视频帧是构成视频的单位。一个视频对应一个或多个视频帧序列。一个视频序列可以包括多个原始视频帧。原始视频帧可以是实时采集的视频帧,例如可以是通过终端的摄像头实时获取的视频帧,也可以是预先存储的视频序列对应的视频帧。原始视频帧可以是I帧、P帧或者B帧,其中I帧为帧内预测帧,P帧为前向预测帧,B帧为双向预测帧,P帧与B帧的各个编码块可以采用帧内预测方式也可以采用帧间预测方式进行编码。

需要说明的是,待编码视频帧可以直接是输入的原始视频帧。比如,按照全分辨率处理方式进行处理,则相当于直接将原始视频帧作为待编码视频帧。全分辨率处理方式,是指按原始视频帧自身的完整分辨率进行处理。

在一个实施例中,当待编码视频帧直接为输入的原始视频帧时,若输入的各原始视频帧的分辨率一致,那么此时不同的待编码视频帧的分辨率相同;若输入的各原始视频帧存在分辨率不同的情况,那么此时不同的待编码视频帧也存在分辨率不同的情况。

在一个实施例中,当待编码视频帧是对输入的原始视频帧按某种处理方式进行处理后得到的视频帧时,由于对原始视频帧的处理方式可能不同(例如不同的采样比例等),那么处理得到的待编码视频帧也存在分辨率不同的情况。例如,原始视频帧的分辨率为800*800像素,当处理方式为水平以及垂直方向均进行1/2下采样时,下采样得到待编码视频帧的分辨率为400*400像素;当处理方式为水平以及垂直方向均进行1/4下采样时,下采样得到待编码视频帧的分辨率为200*200像素。这样,处理得到的待处理视频帧的分辨率不同。其中,采用比例为采样后的分辨率除以采样前的分辨率得到的比值。下采样时,采样比例小于1,上采样时采样比例大于1,当采样比例为1时,不改变分辨率。可以理解,视频编码包括一个循环的过程。在获取到一帧待编码视频帧并编码得到该待编码视频帧的编码数据后,继续获取新的一帧待编码视频帧进行编码,直至对所有的待编码视频帧完成编码。其中,计算机设备在对待编码视频帧进行编码时,可多帧待编码视频帧并行编码。

类似的,在对一帧待编码视频帧进行编码时,也包括一个循环的过程。在对该待编码视频帧中的一个待编码块完成编码后,继续对下一个待编码块进行编码,直至对该待编码视频帧所有的待编码块编码完成。其中,计算机设备在对待编码块进行编码时,可多个待编码块并行编码。

S504,根据待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息。

其中,分辨率信息是与分辨率相关的数据。分辨率信息具体可以是分辨率本身或者采样比例等。举例说明,分辨率信息为:400*400(分辨率本身)、2(上采样比例)或者1/2(下采样比例)等。运动矢量分辨率信息是与运动矢量所对应的分辨率相关的信息。

分辨率配置信息,是预先配置的、且用于指示处理运动矢量时所需要采用的分辨率的信息。可以理解,分辨率配置信息可以直接是配置的处理运动矢量时所需要采用的分辨率信息本身,也可以是配置的分辨率信息确定方式。分辨率信息确定方式,用于确定处理运动矢量时所采用的分辨率信息的类别,即用于确定采用哪种类别的分辨率信息来处理运动矢量。可以理解,分辨率信息本身与分辨率信息确定方式不同,比如,400*400即为分辨率本身,而分辨率信息确定方式可以为一个用于表示相应分辨率信息的类别的标识,比如,分辨率信息确定方式1表示确定的分辨率信息的类别为原始分辨率信息,分辨率信息确定方式2表示确定的分辨率信息的类别为当前分辨率信息。

处理运动矢量时所采用的分辨率信息的类别,可以是原始分辨率信息这一类别或当前分辨率信息这一类别。可以理解,原始分辨率信息是原始视频帧的分辨率信息。当前分辨率信息,是当前待编码视频帧的分辨率信息。可以理解,当分辨率信息确定方式所确定的分辨率信息的类别为原始分辨率信息时,则可以将原始分辨率信息作为目标运动矢量分辨率信息。当分辨率信息确定方式所确定的分辨率信息的类别为当前分辨率信息时,则可以将待编码视频帧的当前分辨率信息作为目标运动矢量分辨率信息。

需要说明的是,由于各待编码视频帧存在分辨率不同的情况,所以当前分辨率并非固定的分辨率,当分辨率信息确定方式所确定的分辨率信息的类别为当前分辨率信息时,不同待编码视频帧根据相应分辨率信息确定方式,所确定的目标运动矢量分辨率信息可以不同。

可以理解,编码端可以和解码端通过配置,预先约定分辨率配置信息,这样,在编码或解码时,就可以默认按照配置的分辨率配置信息所对应的目标运动矢量分辨率信息来对运动矢量进行变换。

在一个实施例中,可为针对帧级(即视频帧这一层级)配置分辨率配置信息;也可针对组级(即视频帧组这一层级)配置分辨率配置信息,还可以针对序列级(即视频序列这一层级)配置分辨率配置信息。举例说明,假设针对组级配置分辨率配置信息,那么对于某一视频帧组下的原始视频帧所对应的待编码视频帧来说,各待编码视频帧所对应的分辨率配置信息即为该视频帧组所对应配置的分辨率配置信息。

可以理解,分辨率配置信息与目标运动矢量分辨率信息对应。目标运动矢量分辨率信息可以是原始视频帧的原始分辨率信息,也可以是待编码视频帧的当前分辨率信息。原始分辨率信息,是与原始视频帧的原始分辨率相关的数据。当前分辨率信息,是与待编码视频帧的当前分辨率相关的数据,用于表示待编码视频帧的当前分辨率。因此,计算机设备可以配置用于指示处理运动矢量时采用原始分辨率信息的分辨率配置信息,也可以配置用于指示处理运动矢量时采用当前分辨率信息的分辨率配置信息。

S506,在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量。

运动矢量(MV,Motion Vector)是视频编码中待编码块相对于该待编码块的参考块的位移。待编码块的参考块是在对待编码块进行编码时所要参考的数据。运动矢量用于在对待解码块进行解码时寻找该待解码块的参考块,以重建待解码块。目标运动矢量即为在目标分辨率下的运动矢量。

运动矢量所对应的分辨率表示运动矢量的单位所对应的分辨率。比如,对于一个待编码块,该待编码块的运动矢量所对应的分辨率为待编码视频帧的分辨率时,该运动矢量的单位1表示从待编码块偏移了待编码视频帧的分辨率上的n个像素(n在H.264框架下为1/4)。目标运动矢量分辨率信息是作为目标的运动矢量分辨率信息。目标运动矢量分辨率信息所表示的分辨率即为目标分辨率。

在一个实施例中,待编码视频帧中各待编码块的参考块所在的参考帧,根据预测类型的不同而不同。待编码视频帧可以是I帧、P帧或者B帧。其中I帧为帧内预测帧,P帧为前向预测帧,B帧为双向预测帧。那么,各待编码块的参考块所在参考帧可为本视频帧、前向参考帧、后向参考帧或双向参考帧。参考帧的数量可为一个或多个。参考帧,是对待编码视频帧进行编码时所需参考的视频帧。本领域技术人员可以理解,参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧。

对于某一待编码视频帧上的待编码块,在参考帧上搜索到该待编码块的参考块后,可以直接在分辨率配置信息所对应的目标运动矢量分辨率信息所表示的目标分辨率下,计算目标运动矢量,也可以在该待编码视频帧的当前分辨率下计算待编码块的运动矢量。如果在该待编码视频帧的当前分辨率下计算待编码块的运动矢量,那么,计算机设备可将目标运动矢量分辨率信息所表示的目标分辨率,与待编码视频帧的分辨率进行比较。当两者一致时,则在待编码视频帧的分辨率下的运动矢量,即为在目标分辨率下的目标运动矢量;当两者不一致时,计算机设备则将在待编码视频帧的分辨率下的运动矢量,变换为在目标分辨率下的目标运动矢量。

举例说明,目标分辨率为800*800,待编码视频帧的分辨率为400*400。假设,在待编码视频帧的分辨率下的运动矢量为A(2,2),那么,此时运动矢量的单位1表示从待编码块偏移了待编码视频帧的分辨率上的n个像素。可以理解,在分辨率为400*400上偏移了n个像素,则在分辨率为800*800上偏移了2n个像素,那么与A(2,2)对应的、在目标分辨率下的运动矢量为B(4,4)。

可以理解,在确定待编码视频帧中各待编码块各自对应的目标运动矢量后,计算机设备可以根据待编码视频帧中各待编码块各自对应的目标运动矢量,得到各编码块所对应的编码数据。步骤S508~S510即为根据待编码视频帧中各待编码块各自对应的目标运动矢量,得到各编码块所对应的编码数据的一个实施例。

S508,获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量。

其中,预测运动矢量(MVP,Motion Vector Prediction)是预测的运动矢量。可以理解,在对待编码视频帧进行编码时,直接对待编码视频帧中各待编码块的运动矢量进行编码,数据量较大。为了降低编码数据的数据量(比特数),可以对待编码视频帧中各待编码块的运动矢量进行预测,得到各编码块的预测运动矢量,从而直接对各待编码块的运动矢量和预测运动矢量的差值进行编码。

需要说明的是,在本发明的实施例中,不限定预测运动矢量的计算方式。计算机设备可以采用已编码块的运动矢量来运算得到待编码块的预测运算矢量。举例说明,可以将当前待编码块的多个相邻已编码块对应的运动矢量的均值,作为当前待编码块的预测运动矢量;或者,可以将参考帧中与当前待编码块在图像位置上对应的图像块的运动矢量,作为当前待编码块的预测运动矢量等。

可以理解,已编码块的运动矢量也是按照步骤S506得到的,已编码块的运动矢量所对应的分辨率,则是目标运动矢量分辨率信息所表示的目标分辨率。那么,既然预测运动矢量是通过已编码块的运动矢量来运算得到的,所以,预测运动矢量所对应的分辨率,也是目标运动矢量分辨率信息所表示的目标分辨率。

这样,在一组待编码视频帧,或者一帧待编码视频帧下,编码的各待编码块的目标运动矢量与预测运动矢量在统一的分辨率下,此时再对目标运动矢量与预测运动矢量进行运算时,各待编码块所对应的运算结果也均在统一的分辨率下,计算机设备的编码器在对各待编码块所对应的运算结果进行编码时,不会因为不同待编码块所对应的运算结果的分辨率不同,需要频繁调整编码器的参数影响编码质量,又可以提高编码效率。

本领域技术人员可以理解,编码器在对不同的分辨率下的数据进行编码时,需要调整编码器的参数。由于在本发明的实施例中,不同的所述待编码视频帧存在分辨率不同的情况,而且对于同一帧待编码视频帧的不同待编码块的用于编码的数据也存在分辨率不同的情况。因此,会在编码一组视频帧组或者编码一帧视频帧时,可以通过分辨率配置信息指定一个目标运动矢量分辨率信息,将用于编码的数据统一至该目标运动矢量分辨率信息所表示的目标分辨率下,既可以保证编码质量,又可以提高编码效率。

S510,根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

可以理解,编码数据,是与待编码视频帧对应的编码数据。

其中,运动残差(MVD,Motion Vector Difference)是运动矢量和预测运动矢量的差值。具体地,计算机设备可对当前待编码视频帧中的每个待编码块,均根据每个待编码块的目标运动矢量和预测运动矢量计算运动残差,再对每个待编码块的运动残差进行编码得到编码数据。这里的编码过程可以包括变换、量化及熵编码中的至少一个。

可以理解,编码数据是对待编码视频帧进行编码得到的数据。编码数据不仅限定于对运动残差进行编码得到的。编码得到编码数据的数据还可以包括像素残差。像素残差是待编码块的实际像素值与预测像素值的差值。预测像素值是根据待编码块的参考块的实际像素值预测得到的。

上述视频编码方法,在对存在不同分辨率情况的编码视频帧进行编码时,在根据分辨率配置信息确定的目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量和预测运动矢量,这样一来,根据同一分辨率下的目标运动矢量和对应的预测运动矢量间的运动残差,得到的编码数据更加的准确,从而提高了编码质量。而且,根据同一分辨率下的目标运动矢量和对应的预测运动矢量间的运动残差得到的编码数据,减少了编码数据的数据量。此外,通过该视频编码方法,能够实现对不同分辨率的待编码视频帧的编码处理,提高了编码的灵活性。

在一个实施例中,计算机设备也可以不用预先配置与待编码视频帧对应的分辨率配置信息,而是可以预设一个或多个运动矢量分辨率信息,从预设的运动矢量分辨率信息中,选中目标运动矢量分辨率信息,然后在选中的目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量。即步骤S504和S506可以被“在选中的目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量”这一步骤替代。计算机设备可以继续执行获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量;以及根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到待编码视频帧的编码数据的步骤。其中,编码数据包括表示目标分辨率的标识信息。可以理解,该标识信息可以告知解码端在编码端进行编码时所使用的目标分辨率。

在一个实施例中,步骤S502包括:获取原始视频帧;获取原始视频帧对应的处理方式;根据处理方式对原始视频帧进行处理,得到待编码视频帧;处理方式为全分辨率处理方式或下采样处理方式。

其中,原始视频帧对应的处理方式是从候选的处理方式中选取的,候选的处理方式包括全分辨率处理方式和下采样处理方式中的至少一种。

可以理解,当处理方式为全分辨率处理方式时,则可以将原始视频帧直接作为待编码视频帧。当处理方式为下采样处理方式时,则可以对原始视频帧进行下采样处理,得到待编码视频帧。采用下采样处理方式得到的待编码视频帧的分辨率,比原始视频帧的分辨率小。例如,当原始视频帧的分辨率为800*800像素,处理方式为水平以及垂直方向均进行1/2下采样时,下采样得到的待编码视频帧的分辨率为400*400像素。

可以理解,得到原始视频帧对应的处理方式的方法可以根据实际需要设置。例如,可以是获取原始视频帧对应的处理参数,根据处理参数得到对应的处理方式。处理参数是用于确定处理方式的参数,具体采用的处理方式可以根据需要进行设置。在一个实施例中,处理参数可以包括根据输入的原始视频帧对应的当前编码信息以及图像特征的至少一种。

在一个实施例中,当原始视频帧对应的处理方式为下采样处理方式时,还可以获取下采样比例以及下采样方法。采样比例为采样后的分辨率除以采样前的分辨率得到的比值。下采样方法可以可采用直接平均、滤波器、bicubic interpolation双三次插值或者bilinear Interpolation双线性插值等。下采样比例可以是预先设置的也可以灵活地调整下采样比例。例如,可以设置下采样的比例均为1/2。可以是输入视频序列的第一个原始视频帧的下采样比例为1/2,第二个原始视频帧的下采样比例为1/4。可以根据原始视频帧在视频组的编码位置得到下采样比例,其中编码位置越后,则下采样比例越小。下采样方向可以是垂直下采样、水平下采样以及垂直和水平下采样结合中的一种。若采样前的视频帧分辨率为800*800像素,当下采样比例为1/2且为进行水平下采样,则采样后视频帧的分辨率为400*800像素。当下采样比例为1/2且为进行垂直下采样,采样后视频帧的分辨率为800*400像素。

在一个实施中,下采样的比例可以根据执行视频编码方法的设备如终端或者服务器的处理器能力得到。处理器处理能力强的设备对应的下采样比例大,处理器处理能力弱的设备对应的下采样比例小。可以设置处理器处理能力与下采样比例的对应关系,当需要进行编码时,获取处理器处理能力,根据处理器处理能力得到对应的下采样比例。例如,可以设置16位处理器对应的下采样比例为1/8,32位处理器对应的下采样比例为1/4。

在一个实施例中,下采样的比例可以根据原始视频帧作为参考帧的频率或者次数得到,可以设置下采样比例与原始视频帧作为参考帧的频率或者次数的对应关系。其中,原始视频帧作为参考帧的频率高或者次数多,则下采样比例大。原始视频帧作为参考帧的频率低或者次数少,则下采样比例小。例如,对于I帧,作为参考帧的频率高,则对应的下采样比例大,可以为1/2。对于P帧,作为参考帧的频率低,则对应的下采样比例小,例如可以为1/4。通过根据原始视频帧作为参考帧的频率或者次数得到下采样比例,当原始视频帧作为参考帧的频率高或者次数多时,图像质量较好,因此能够提高进行预测的准确度,减小像素残差,提高编码图像的质量。

在一个实施例中,下采样的方法可以根据执行视频编码方法的设备如终端或者服务器的处理器能力得到。对于处理器处理能力强的设备对应的下采样方法复杂度高,处理器处理能力弱的设备对应的下采样方法复杂度低。可以设置处理器处理能力与下采样方法的对应关系,当需要进行编码时,获取处理器处理能力,根据处理器处理能力得到对应的下采样方法。例如,bicubic interpolation双三次插值比bilinear Interpolation双线性插值的复杂度高,因此你可以设置16位处理器对应的下采样方法为bilinear Interpolation双线性插值,32位处理器对应的下采样方法bicubic interpolation双三次插值。

本发明实施例中,在对原始视频帧采用下采样处理方式处理时,还可按照不同的下采样方法或下采样比例进行下采样,对原始视频帧进行处理更为灵活。

在一个实施例中,可以根据原始视频帧对应的当前编码信息以及图像特征信息中的至少一种得到原始视频帧对应的处理方式。当前编码信息是指视频在编码时得到的视频压缩参数信息,如帧类型、运动向量、量化参数、视频来源、码率、帧率以及分辨率的一种或多种。图像特征信息是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。当前编码信息以及图像特征信息反映了视频帧对应的场景、细节复杂度或者运动剧烈程度等,如通过运动向量、量化参数或者码率中的一个或多个等可判断运动场景,量化参数大则一般运动剧烈,运动向量大则代表图像场景是大运动场景。还可根据已编码I帧与P帧或已编码I帧与B帧的码率比值判断,如果比值超过第一预设阈值,则判断为静止图像,如果比值小于第二预设阈值,则可判断为运动剧烈图像。或直接根据图像内容跟踪目标对象,根据目标对象的运动速度确定是否为大运动场景。码率一定时能表达的信息量一定,对于运动剧烈的场景,时间域信息量大,相应的可用于表达空间域信息的码率就少,因此采用低分辨率能达到较好的图像质量效果,更倾向于选择下采样模式进行编码。通过帧预测类型可确定画面切换场景,也可根据帧预测类型对其它帧的影响确定倾向于的处理方式。如I帧一般为首帧或存在画面切换,I帧的质量影响了后续P帧或B帧的质量,所以帧内预测帧相比于帧间预测帧更倾向于选择全分辨率处理方式,以保证图像质量。因为P帧可作为B帧的参考帧,P帧图像质量影响了后续B帧的图像质量,所以如果采用P帧编码则相比于采用B帧编码更倾向于选择全分辨率处理方式。通过图像特征信息,如图像纹理信息确定待编码视频帧的纹理复杂度,如果纹理复杂,包含的细节多,则图像空域信息多,如果进行下采样,可能由于下采样损失较多细节信息,影响视频质量,所以纹理复杂的待编码视频帧相比于纹理简单的待编码视频帧更倾向于选择全分辨率处理。

在一个实施例中,可以根据原始视频帧对应的当前量化参数以及量化参数阈值的大小关系,得到原始视频帧对应的处理方式。如果当前量化参数大于量化参数阈值,则确定处理方式为下采样处理方式,否则确定处理方式为全分辨率处理方式。量化参数阈值可以根据在原始视频帧之前,已编码的前向编码视频帧的帧内编码块的比例得到,可以预先设置帧内预测块比例与量化参数阈值的对应关系,从而在确定了当前帧的帧内预测块比例后,可以根据对应关系确定与当前帧的帧内预测块比例对应的量化参数阈值。对于固定量化参数编码,当前量化参数可以是对应的固定量化参数值。对于固定码率编码,则可以根据码率控制模型计算得到原始视频帧对应的当前量化参数。或者,可以将参考帧对应的量化参数作为原始视频帧对应的当前量化参数。本发明实施例中,当前量化参数越大一般运动越剧烈,对于运动剧烈的场景更倾向于选择下采样处理方式。

在一个实施中,帧内预测块比例与量化参数阈值的关系为正相关关系。比如,可以根据经验,预先确定帧内预测块比例Intra0与量化参数阈值QPTH的对应关系为:

上述实施例中,在获取原始视频帧对应的处理方式后,可以根据处理方式对原始视频帧进行处理,得到待编码视频帧,通过灵活选择视频帧的处理方式,对原始视频帧进行处理,减小原始视频帧的分辨率以减小待编码数据的数据量。

在一个实施例中,该方法还包括:将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中。

具体地,处理方式信息用于描述原始视频帧所采用的处理方式,可以在编码数据中加入描述处理方式的标志位Frame_Resolution_Flag。各个处理方式对应的标志位的值可以根据需要设置。例如,当处理方式为全分辨率处理方式时,对应的Frame_Resolution_Flag可以为0,当处理方式为下采样处理方式时,对应的Frame_Resolution_Flag可以为1。在一个实施例中,处理方式信息添加至编码数据对应的帧级头信息中,例如可以添加到帧级头信息的预设位置中,帧级头信息是原始视频帧对应的编码数据的头信息,序列级头信息是指视频序列对应的编码数据的头信息,组级头信息是指视频组(GOP,Groups of Picture)对应的编码数据的头信息。一个视频帧序列可以包括多个视频组,一个视频组可以包括多个原始视频帧。

图6示出了一个实施例中视频帧序列的结构框图。图6中虚线所指的方框表示各个原始视频帧对应的编码数据的帧级头信息,frame分别代表第1个、第2个以及第n个原始视频帧对应的编码数据。由图6可知,第一个原始视频帧以及第二个原始视频帧对应的处理方式为全分辨率处理方式,第三个原始视频帧对应的处理方式为下采样处理方式。

在一个实施例中,还可以将对原始视频帧进行下采样的下采样处理方式信息添加至原始视频帧对应的编码数据中,以使解码端在获取到编码数据时,能够根据下采样处理方式信息获取对应的对重建视频帧进行上采样的方法以及上采样比例。下采样处理方式信息包括下采样方法信息以及下采样比例信息中的至少一种。下采样方法信息在编码数据的添加位置可以是对应的组级头信息、序列级头信息以及帧级头信息中的一个,下采样方法信息在编码数据的添加位置可以根据下采样方法对应的作用范围确定。下采样比例信息在编码数据的添加位置可以是对应的组级头信息、序列级头信息以及帧级头信息中的任一个。下采样比例信息在编码数据的添加位置可以根据下采样比例对应的作用范围确定,作用范围是指适用的范围。例如,如果下采样比例作用的范围是一个视频组,则可以将该视频组对应的下采样比例信息添加到该视频组对应的头信息中。如果下采样比例作用的范围是视频序列,将下采样比例信息添加至该视频序列对应的序列级头信息,表示该视频序列的各个视频帧采用下采样比例信息对应的下采样比例进行下采样处理。

在一个实施例中,步骤S506在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量包括:在待编码视频帧的当前分辨率下,确定待编码视频帧中各待编码块各自对应的初始运动矢量;当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

其中,待编码块的初始运动矢量,是在待编码块所在待编码视频帧的当前分辨率下的运动矢量。

可以理解,通常情况下,对于某一待编码视频帧上的待编码块,在参考帧上搜索到该待编码块的参考块后,可以直接在选中的目标运动矢量分辨率信息所表示的目标分辨率下计算目标运动矢量,也可以在该待编码视频帧的当前分辨率下计算待编码块的运动矢量。如果在该待编码视频帧的当前分辨率下计算待编码块的运动矢量,此时计算得到的运动矢量的单位对应的分辨率即为该待编码视频帧的当前分辨率,此时计算得到的运动矢量即为初始运动矢量。

计算机设备可将目标运动矢量分辨率信息所表示的目标分辨率与待编码视频帧的当前分辨率进行比较,当两个分辨率一致时,则初始运动矢量的单位对应的分辨率即为目标分辨率,也就不需要对初始运动矢量作变换。

在一个实施例中,目标运动矢量分辨率信息所表示的目标分辨率,为待编码视频帧所对应原始视频帧的原始分辨率。当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量包括:当由原始视频帧采用下采样处理方式处理得到待编码视频帧时,则将待编码视频帧各编码块各自对应的初始运动矢量变换为在原始分辨率下的目标运动矢量。

可以理解,原始视频帧采用下采样处理方式处理得到的待编码视频帧,其当前分辨率小于原始视频帧的原始分辨率(即两者不一致),所以,当目标分辨率为原始分辨率时,就需要对待编码视频帧的初始运动矢量进行变换,将待编码视频帧各编码块各自对应的初始运动矢量变换为在原始分辨率下的目标运动矢量。

在一个实施例中,当当前分辨率与目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量包括:根据待编码视频帧的当前分辨率信息和目标运动矢量分辨率信息,确定第一矢量变换系数;按照第一矢量变换系数,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

其中,矢量变换系数用于对运动矢量进行变换。当得到初始运动矢量后,可以将初始运动矢量与第一矢量变换系数相乘,得到的乘积即为目标运动矢量。

可以理解,矢量变换系数,可以通过比例尺的形式进行表示(即矢量变换系数可以是比例尺),也可以以数值的形式进行表示(即矢量变换系数可以是一个数值)。当矢量变换系数通过比例尺的形式进行表示时,计算机设备可以根据该比例尺将运动矢量由一个分辨率空间变换到另一个分辨率空间。比如,根据比例尺,将当前分辨率下(即当前分辨率空间下)的初始运动矢量变换为目标分辨率下(即目标分辨率空间下)的目标运动矢量。

由于分辨率信息可以是分辨率或者采样比例两种类型的数据,那么第一矢量变换系数具体可以是:相同类型下的目标运动矢量分辨率信息,与待编码视频帧的当前分辨率信息的比例。可以理解,相同类型,是指目标运动矢量分辨率信息的类型与待编码视频帧的当前分辨率信息的类型相同,比如,若两者都是分辨率,则就属于相同类型,若两者一个是分辨率,一个是下采样比例,就不属于相同类型。

例如,目标运动矢量分辨率信息为下采样比例,且具体为1/3;待编码视频帧的当前分辨率信息为下采样比例,且具体为1/6,则第一矢量变换系数可以为1/3除以1/6等于2。再例如,目标运动矢量分辨率信息为分辨率,且具体为800*800;待编码视频帧的当前分辨率信息为分辨率,且具体为400*400,则第一矢量变换系数可以为800除以400等于2。那么在矢量变换系数为2时,假设在待编码视频帧的当前分辨率下的运动矢量为A(2,2),与A(2,2)对应的、在目标分辨率下的运动矢量则为B(2*2,2*2),即(4,4)。

在一个实施例中,第一矢量变换系数可以包括两个:水平方向的矢量变换系数以及垂直方向的矢量变换系数。比如,目标运动矢量分辨率信息为分辨率,且具体为900*900,待编码视频帧的当前分辨率信息为分辨率,且具体为450*600。则水平方向的矢量变换系数为900/450=2,垂直方向的矢量变换系数为900/600=1.5。

上述实施例中,在目标运动矢量分辨率信息所表示的目标分辨率与待编码视频帧的当前分辨率不一致,将当前分辨率下的初始运动矢量调整到目标分辨率下,以在后续计算运动残差时,与用于计算运动残差的另一参数,也就是预测运动矢量,统一到相同的分辨率下,来保证运动残差的准确性与控制运动残差的数据量。

在一个实施例中,S508获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量包括:在编码待编码视频帧中各待编码块时,则对于当前待编码块,确定当前待编码块所对应参考块所在的参考帧;在参考帧中,确定与当前待编码块在图像位置上对应的图像块;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。

其中,参考帧,是对待编码视频帧进行编码时所需参考的视频帧。可以理解,参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧。待编码视频帧的参考帧可以是一个或者多个。

具体地,计算机设备在根据预设的参考帧选取策略,选取待编码视频帧的参考帧后,可在参考该参考帧对待编码视频帧中各待编码块进行编码时,对于当前待编码块,在参考帧中搜索与当前待编码块匹配的参考块。在搜索到与当前待编码块匹配的参考块后,继而确定该参考块所在的参考帧。

进一步地,计算机设备可在确定的该参考帧中,确定与当前待编码块在图像位置上对应的图像块,获取该图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。图像位置对应具体可以是图像像素对应,或者是图像坐标对应。

图7示出了一个实施例中选取预测运动矢量的原理示意图。参考图7,该示意图包括待编码视频帧待710、待编码视频帧710中的当前待编码块711、参考帧720、参考帧720中与当前待编码块711在图像位置上对应的图像块721。图像块721的运动矢量即可作为当前待编码块711的预测运动矢量。

可以理解,由于参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧,那么若重建该参考帧的编码数据中存在目标分辨率下的、且与该图像块对应的运动矢量,也就是目标运动矢量时,即可直接获取该目标运动矢量作为当前待编码块的预测运动矢量;若重建该参考帧的编码数据中不存在目标分辨率下的、且与该图像块对应的运动矢量时,则将重建该参考帧的数据中与该图像块对应的运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,重建参考帧的编码数据中是否存在目标分辨率下的、且与参考帧的图像块对应的运动矢量,与编码重建该参考帧的编码数据时所选取的目标运动矢量分辨率信息有关。当编码重建该参考帧的编码数据时选取的目标运动矢量分辨率信息与当前选取的目标运动矢量分辨率信息均表示相同的目标分辨率时,则重建参考帧的编码数据中存在目标分辨率下的、且与参考帧的图像块对应的运动矢量;当编码重建该参考帧的编码数据时选取的目标运动矢量分辨率信息与当前选取的目标运动矢量分辨率信息均表示不同的目标分辨率时,则重建参考帧的编码数据中不存在目标分辨率下的、且与参考帧的图像块对应的运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的分辨率,是待编码视频帧的当前分辨率。获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量,包括:获取图像块在参考帧的分辨率下的初始运动矢量;当参考帧的分辨率与当前分辨率不一致时,则将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

可以理解,由于参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧,在编码重建参考帧的编码数据时也会经过S504至S510的步骤。那么,对于重建参考帧的编码数据所编码自的、且编码在前的待编码视频帧而言,在编码时,也会根据待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息。

在一个实施例中,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量包括:根据参考帧的分辨率信息和目标运动矢量分辨率信息,得到第二矢量变换系数;按照第二矢量变换系数,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量。

在一个实施例中,第二矢量变换系数,可以是参考帧的分辨率信息和目标运动矢量分辨率信息之间的比值。参考帧的分辨率信息用于表示参考帧的分辨率。

计算机设备可以按照第二矢量变换系数,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量,将变换后得到的目标运动矢量作为当前待编码块的预测运动矢量。

上述实施例中,在以参考帧中的图像块的运动矢量作为当前待编码帧的待编码块的预测运动矢量时,根据参考帧的分辨率和针对当前待编码帧选取的目标分辨率,来灵活将待编码块的预测运动矢量调整至与待编码块的运动矢量相同的分辨率上,以提高编码质量,控制编码数据量。

在一个实施例中,获取原始视频帧对应的处理方式包括:获取原始视频帧对应的处理参数,根据处理参数确定原始视频帧对应的处理方式;将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中。

具体地,处理参数可以包括原始视频帧对应的图像编码信息以及图像特征信息中的至少一个。处理参数在解码过程中不能重现是指在解码的过程中不能得到或者不会产生该处理参数。例如,如果处理参数是与原始视频帧的图像内容对应的信息,而在编码过程中图像信息是存在损失的,则解码端的解码视频帧与原始视频帧存在差别,因此,解码过程中不会得到原始视频帧的图像内容对应的信息,即图像内容对应的信息在解码过程中不能重现。编码过程中需要计算率失真代价,而解码过程中不计算率失真代价,则当处理参数包括率失真代价时,则该处理参数不能在解码过程中重现。对于编码过程中得到的重建视频帧与原始视频帧的PSNR(Peak Signal to Noise Ratio,峰值信噪比)信息,解码过程中不能得到,因此PSNR信息在解码过程中不能重现。

在一个实施例中,当处理参数在解码端中能够重现时,可以将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中,也可以不将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中。其中,将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中时,解码端可以从编码数据中读取处理方式信息,无需再根据处理数据得到处理方式。当不将处理方式对应的处理方式信息添加至原始视频帧对应的编码数据中时,由解码设备根据处理参数确定出与编码端一致的处理方式,可以减少编码数据的数据量。

可以理解,计算机设备在得到待编码视频帧后,可以在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据。步骤S502~S508包括于在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据这一步骤。

在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据这一步骤还包括:获取待编码视频帧对应的参考帧;在待编码视频帧的分辨率下,根据参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据。

参考帧,是对待编码视频帧进行编码时所需参考的视频帧。可以理解,参考帧是待编码视频帧之前已编码得到的数据进行重建得到的视频帧。待编码视频帧对应的参考帧的个数可为一个或多个。例如当待编码视频帧为P帧,则对应的参考帧可以为1个。当待编码视频帧为B帧,则对应的参考帧可以为2个。待编码视频帧对应的参考帧可以是根据参考关系得到的,参考关系根据各个视频编解码标准确定。例如,对于一个视频图像组(GOP、Group Of Picture)中的第二个视频帧,为B帧,对应的参考帧可以是该视频组的I帧以及视频组的第4帧对应的进行编码后,再解码重建得到的视频帧。

在一个实施例中,获取待编码视频帧对应的参考帧包括:获取第一参考规则,第一参考规则包括待编码视频帧与参考帧的分辨率大小关系;根据第一参考规则获取待编码视频帧对应的参考帧。

具体地,第一参考规则确定了待编码视频帧与参考帧的分辨率大小限制关系,分辨率大小关系包括待编码视频帧与参考帧的分辨率相同以及不同的至少一种。当第一参考规则包括待编码视频帧与参考帧的分辨率相同时,第一参考规则还可以包括待编码视频帧与参考帧的分辨率的处理方式参考规则。处理方式参考规则可以包括全分辨处理方式的待编码视频帧参考全分辨率处理方式的参考帧,以及下采样处理方式的待编码视频帧参考下采样处理方式的参考帧中的一种或两种。当第一参考规则包括待编码视频帧与参考帧的分辨率不相同时,第一参考规则还可以包括待编码视频帧的分辨率大于参考帧的分辨率以及待编码视频帧的分辨率小于参考帧的分辨率的一种或两种。

在一个实施例中,第一参考规则具体可以包括原始分辨率待编码视频帧可以参考下采样分辨率参考帧、下采样分辨率待编码视频帧可以参考原始分辨率参考帧、原始分辨率待编码视频帧可以参考原始分辨率参考帧、以及下采样分辨率待编码视频帧可以参考下采样分辨率的参考帧中的一种或多种。其中,原始分辨率待编码视频帧,是指该待编码视频帧的分辨率与其对应的原始视频帧的分辨率相同。原始分辨率参考帧,是指该参考帧的分辨率与其对应的原始视频帧的分辨率相同。下采样分辨率待编码视频帧,是指该待编码视频帧是对相应的原始视频帧进行下采样处理得到的。下采样分辨率参考帧,是指该参考帧是对相应的原始视频帧进行下采样处理得到的。得到第一参考规则后,根据第一参考规则获取待编码视频帧对应的参考帧,使得到的参考帧满足第一参考规则。

在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据还包括:将第一参考规则对应的规则信息添加至原始视频帧对应的编码数据中。

具体地,规则信息用于描述采用的参考规则,可以在编码数据中加入描述参考规则的标志位Resolution_Referencer_Rules。具体的标志位的值所代表的参考规则可以根据需要设置。规则信息在编码数据的添加位置可以是组级头信息、序列级头信息以及帧级头信息中的一个或多个,规则信息在编码数据的添加位置可以根据第一处理参考规则的作用范围确定。例如,当第一参考规则为原始分辨率待编码视频帧参考下采样分辨率参考帧时,对应的Resolution_Referencer_Rules可以为1,当第一参考规则为下采样分辨率待编码视频帧参考下采样分辨率的参考帧时,对应的Resolution_Referencer_Rules可以为2。若视频序列采用相同的第一参考规则,则规则信息在编码数据的添加位置可以是序列级头信息。若第一参考规则是其中的一个视频组采用的参考规则,则规则信息在编码数据的添加位置是采用第一参考规则的视频组对应的组级头信息。

在一个实施例中,可以获取待编码视频帧对应的参考帧,根据参考帧进行预测得到像素残差,并对像素残差进行变换、量化以及熵编码得到原始视频帧对应的编码数据。其中,得到编码数据的过程中,根据待编码视频帧的分辨率对参考帧、待编码视频帧的各个待编码块对应的位置信息、参考帧的各个参考块对应的位置信息以及运动矢量中的至少一个进行处理。得到参考帧后,可以从参考帧中获取与待编码视频帧的待编码块对应的参考块,根据参考块对待编码块进行编码。也可以根据待编码视频帧的分辨率对参考帧进行处理,得到对应的目标参考帧,从目标参考帧中获取与待编码视频帧的待编码块对应的目标参考块,根据目标参考块对待编码块进行编码,得到原始视频帧对应的编码数据。

在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据包括:在待编码视频帧的分辨率下,获取待编码视频帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至原始视频帧对应的编码数据中。

具体地,编码方式是与进行编码有关的处理方式。例如可以包括编码时对参考帧进行解码重建后的视频帧采用的上采样方式、参考规则对应的规则以及对参考帧进行采样处理的采样方式以及运动矢量对应的分辨率中的一个或多个。通过将编码方式对应的编码方式信息添加至原始视频帧对应的编码数据,解码时可以根据编码方式信息对待解码视频帧对应的编码数据进行解码。

在一个实施例中,也可以不将编码方式对应的编码方式信息添加到编码数据中。而是在编解码标准中预先设置编码方式,在解码端中设置与该编码方式对应的解码方式。或者编码端与解码端可以根据相同或者对应的算法计算得到匹配的编码方式以及解码方式。例如,在编解码标准中预先设置编码时对参考帧进行上采样方法与解码时对参考帧进行上采样的方法相同。

在一个实施例中,根据参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据包括:根据待编码视频帧的分辨率信息对参考帧进行采样处理;根据采样处理后的参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据。

采样处理是通过待编码视频帧的分辨率信息对参考帧进行采样,使采样处理后的参考帧的分辨率信息匹配的过程。在进行采样处理时,可以先确定采样方式,采样方式包括直接分像素插值方式和采样后分像素插值方式中的一种。直接分像素插值方式直接对参考帧进行分像素插值处理,采样后分像素插值方式对参考帧进行采样处理后再分像素插值处理。

分像素插值是通过参考帧中整像素的参考数据插值得到分像素级别的参考数据的过程。比如,如图8和9所示,为一个实施例中对参考帧进行插值的示意图。参照图8,A1、A2、A3、B1、B2、B3等像素点为参考帧中的2*2整像素点,根据这些整像素点的参考数据计算得到分像素点的参考数据,比如,可根据A1、A2、A3三个整像素点的参考数据取平均值计算得到分像素点a23的参考数据,根据A2、B2、C2三个整像素点的参考数据取平均值计算得到分像素点a21的参考数据,再根据分像素点a23、a21的参考数据计算得到分像素点a22的参考数据,实现对参考帧进行1/2像素精度插值。

参照图9,A1、A2、A3、B1、B2、B3等像素点为参考帧中的4*4整像素点,根据这些整像素点的参考数据计算得到15个分像素点参考数据,实现对参考帧进行1/4像素精度插值。比如,根据A2、B2整像素点的参考数据计算得到分像素点a8的参考数据,根据A2、A3整像素点的参考数据计算得到分像素点a2的参考数据,同理计算得到a1至a15共15个分像素点的参考数据,实现对整像素点A2的1/4像素精度插值。在对待编码视频帧进行编码的过程中,需要在参考帧中采用运动搜索技术找到与待编码视频帧中待编码块相应的参考块,根据待编码块相对于参考块的运动信息计算得到运动矢量,对运动矢量进行编码以告知解码端参考块对应的参考数据在参考帧中的位置,因而,通过对参考帧进行分像素插值处理,分像素插值处理后得到的参考帧的分辨率更高,待编码视频帧就可以根据分辨率更高的参考帧进行运动估计,从而提高运动估计的准确度,提升编码质量。

在一个实施例中,编码端和解码端可在各自的编解码规则中设置对参考帧采用的采样方式,采用的采样方式应当是一致的,在编、解码时就根据配置确定针对参考帧采用的采样方式。

在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据包括:将对参考帧进行采样处理对应的采样方式信息添加至参考帧对应的编码数据中。参考帧进行采样处理对应的采样方式信息在编码数据的添加位置可以是对应的序列级头信息、组级头信息以及帧级头信息中的任一个,采样方式信息在编码数据的添加位置可以根据采样方式对应的作用范围确定。可将采样方式信息添加至原始视频帧对应的编码数据的帧级头信息中,表示原始视频帧在被编码时对应的参考帧采用采样方式信息对应的采样方式进行分像素插值处理。例如,当编码数据的帧级头信息中用于确定采样方式的标识位Pixel_Sourse_Interpolation为0时,表示原始视频帧对应的参考帧采用直接进行分像素插值处理,在Pixel_Sourse_Interpolation为1时,表示原始视频帧对应的参考帧采用采样处理后再分像素插值处理。解码端就可按照编码数据中标识位所表示的分像素插值方式对参考帧进行分像素插值处理,从而可依据进行分像素插值处理得到的参考帧对编码数据进行解码得到重建视频帧。

在一个实施例中,可根据待编码视频帧的分辨率与参考帧的分辨率之间的比例关系确定对参考帧进行采样的比例。比如,原始视频帧的分辨率均为2M*2N,通过对原始视频帧按照全分辨率处理方式进行处理,即直接将原始视频帧作为待编码视频帧,则待编码视频帧的分辨率为2M*2N,而对可作为参考帧的原始视频帧按照下采样处理方式进行处理,得到下采样后的当前待编码参考帧的分辨率为M*2N,则重建后得到的相应的参考帧的分辨率也为M*2N,那么就确定对参考帧以宽2、高1的采样比例进行上采样处理,得到与待编码视频帧分辨率相同的帧。若通过对原始视频帧按照下采样处理方式进行处理,下采样后得到的待编码视频帧的分辨率为M*N,而对可作为参考帧的原始视频帧按照全分辨率处理方式进行处理,那么重建后得到的参考帧的分辨率为2M*2N,则确定对参考帧以宽、高均为1/2的采样比例进行下采样处理,得到与待编码视频帧分辨率相同的帧。

在一个实施例中,由于原始视频帧的分辨率一般是相同的,可根据原始视频帧进行下采样得到待编码视频帧所对应的下采样比例,以及对可作为参考帧的原始视频帧进行下采样得到待编码参考帧所对应的下采样比例,确定对参考帧进行采样的比例。比如,通过对原始视频帧以1/2的采样比例进行下采样处理得到待编码视频帧,通过对可作为参考帧的原始视频帧以1/4的采样比例进行下采样处理得到待编码参考帧,那么根据待编码参考帧的编码数据重建后得到的参考帧对应的下采样比例也是1/4,那么,根据两者下采样比例之间的倍数关系,可确定对参考帧以2的采样比例进行上采样处理得到与待编码视频帧分辨率相同的帧。

在一个实施例中,对参考帧进行采样的采样方法与对原始视频帧进行下采样得到待编码视频帧的采样算法匹配,即对参考帧进行下采样所采用的下采样算法,与对待编码视频帧进行下采样所采用的下采样算法相同。对参考帧进行上采样所采用的上采样算法,是与对原始视频帧进行下采样所采用的下采样算法相反的采样算法。

本实施例中,对参考帧进行采样的采样算法与对待编码视频帧进行下采样采用的采样算法匹配,可进一步提高参考帧与下采样处理后的待编码视频帧的图像匹配度,进一步提高帧间预测的准确度,减小像素残差,提高编码图像的质量。

在一个实施例中,对参考帧进行采样处理后,从采样处理后的参考帧中搜索得到与待编码块相似的图像块作为参考块,计算待编码块与参考块的像素差值得到像素残差;根据待编码块与对应的参考块的位移,得到待编码块对应的运动矢量;根据得到的运动矢量以及像素残差得到编码数据。

在一个实施例中,可以根据目标运动矢量分辨率信息对待编码块对应的运动矢量进行变换,得到在目标分辨率下的目标运动矢量,根据目标运动矢量以及像素残差,生成编码数据。其中,根据目标运动矢量分辨率信息对待编码块对应的运动矢量进行变换,得到目标运动矢量的方法在后面描述。可以理解,目标运动矢量分辨率信息表示的分辨率,即为目标分辨率。

在一个实施例中,可以直接对目标运动矢量自身进行量化等编码处理,得到编码数据。在另一个实施例中,也可以计算目标运动矢量和对应的预测运动矢量之间的运动残差,对运动残差进行编码,得到编码数据,进一步减少编码数据量。

在一个实施例中,根据待编码视频帧的分辨率信息对参考帧进行采样处理包括:根据待编码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理。

其中,运动估计像素精度是待编码视频帧中的待编码块对应的运动矢量的单位长度。编码端在对待编码视频帧中的待编码块进行编码时,可按照获取的运动估计像素精度将待编码块对应的运动矢量的单位长度进行细化,这样得到的运动向量更为精细和准确,因而,需要按照获取的运动估计像素精度对参考帧进行采样处理,再依据采样处理后的参考帧计算待编码视频帧中各待编码块对应的运动矢量,基于该运动矢量进行编码得到待编码视频帧对应的编码数据。

具体地,可获取参考帧的分辨率信息,根据待编码视频帧采用的分像素插值方式,以及待编码视频帧的分辨率信息、参考帧的分辨率信息以及待编码视频帧对应的运动估计像素精度确定对参考帧进行何种采样处理方法、采样处理对应的采样比例以及像素插值精度。运动估计像素精度的大小可以根据需要设置,例如一般为1/2像素精度、1/4像素精度或1/8像素精度。

在一个实施例中,可根据待编码视频帧的图像特征信息为该待编码视频帧配置相应的运动估计像素精度。图像特征信息,是表征待编码视频帧中图像的特征的信息。图像特征信息包括该待编码视频帧的大小、纹理信息、运动速度等中的至少一种,可综合多种图像特征信息确定待编码视频帧对应的运动估计像素精度。

可以理解,待编码视频帧所携带的图像数据越复杂,图像信息越丰富,相应的运动估计像素精度更高。比如,在对P帧进行帧间预测时,可采用较高的运动估计像素精度计算P帧中各待编码块对应的运动矢量,而在对B帧进行帧间预测时,可采用较低的运动估计像素精度计算B帧中各待编码块对应的运动矢量。

在一个实施例中,根据待编码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理包括:根据待编码视频帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对参考帧进行分像素插值处理。

具体地,像素插值精度是对参考帧进行分像素插值对应的像素精度。当分像素插值方式为直接分像素插值方式,表示能够对参考帧直接进行分像素插值处理。因此可以根据待编码视频帧的分辨率信息以及运动估计像素精度计算得到像素插值精度。可以计算参考帧的分辨率信息与待编码视频帧的分辨率信息的比例,根据比例以及运动估计像素精度得到像素插值精度。

在一个实施例中,当参考帧的分辨率大于待编码视频帧的分辨率时,参考帧中部分分像素点的数据可直接复用,可作为与运动估计像素精度相应的分像素点对应的数据。比如,待编码视频帧的分辨率为M*N,参考帧的分辨率为2M*2N,若运动估计像素精度为1/2,像素插值精度为1,那么参考帧可以不用进行分像素插值处理而直接使用;若运动估计像素精度为1/4,那么计算得到像素插值精度为1/2,可对参考帧以1/2像素插值精度进行分像素插值处理。

在一个实施例中,当待编码视频帧的分辨率信息所表示的分辨率与参考帧的分辨率相同时,则根据运动估计像素精度直接对参考帧进行分像素插值处理。

具体地,通过全分辨处理方式对原始视频帧进行处理得到待编码视频帧,且参考帧的分辨率也是原分辨率时,则待编码视频帧的分辨率和参考帧的分辨率相同。可以理解,原分辨率是指原始视频帧的分辨率。或者,通过下采样处理方式对原始视频帧进行处理得到待编码视频帧,且参考帧帧也是采用相同采用比例的下采样处理方式编码得到的编码数据重建得到的,则待编码视频帧的分辨率和参考帧的分辨率相同。那么,就可以直接基于运动估计像素精度直接对参考帧进行分像素插值处理,并且,分像素插值处理对应的像素插值精度和运动估计像素精度相同。

在一个实施例中,根据待编码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理包括:根据待编码视频帧的分辨率信息对参考帧进行采样处理;根据运动估计像素精度,对采样处理得到的参考帧进行分像素插值处理。

可以理解,计算机设备可以根据进行分像素插值处理后的参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据。

具体地,当待编码视频帧对应的分像素插值方式为采样后分像素插值方式,表示要对参考帧先进行采样处理,得到与待编码视频帧分辨率相同的中间参考帧,再对中间参考帧进行分像素插值处理,得到分像素插值处理后的参考帧。

当待编码视频帧的分辨率信息所表示的分辨率小于参考帧的分辨率时,则根据待编码视频帧的分辨率信息对参考帧进行下采样处理,得到中间参考帧,然后基于待编码视频帧对应的运动估计像素精度对中间参考帧进行分像素插值处理,得到分像素插值处理后的参考帧。

举例说明:通过对分辨率为2M*2N的原始视频帧按照下采样处理方式进行下采样处理得到分辨率为M*N的待编码视频帧,而参考帧的分辨率为2M*2N(全分辨率处理方式),则对参考帧按照1/2的采样比例进行下采样处理得到分辨率为M*N的中间参考帧,若获取的待编码视频帧对应的运动估计像素精度为1/2,再对中间参考帧按照与运动估计像素精度相同的像素插值精度(即1/2分像素插值精度)进行分像素插值处理;若获取的待编码视频帧对应的运动估计像素精度为1/4,则对中间参考帧按照1/4分像素插值精度进行分像素插值处理。

当待编码视频帧的分辨率信息所表示的分辨率大于参考帧的分辨率时,则根据待编码视频帧的分辨率信息对参考帧进行上采样处理,得到中间参考帧,然后基于待编码视频帧对应的运动估计像素精度对中间参考帧进行分像素插值处理。比如,待编码视频帧的分辨率为2M*2N,参考帧的分辨率为1/2M*1/2N,则需要按照采样比例为4对参考帧进行上采样处理得到与待编码视频帧分辨率相同的中间参考帧,若运动估计像素精度为1/2,则继续对得到的中间参考帧按照1/2像素插值精度进行分像素插值处理;若运动估计像素精度为1/4,则继续对得到的中间参考帧按照1/4像素插值精度进行分像素插值处理。

在一个实施例中,可不选择目标运动矢量分辨率信息。那么,对于当前编码块,计算机设备可根据待编码视频帧的当前分辨率信息和参考帧的分辨率信息确定坐标变换参数;获取当前待编码块的第一位置信息,获取当前待编码块对应的参考块的第二位置信息;根据坐标变换参数、第一位置信息和第二位置信息计算得到当前待编码块对应的目标运动矢量。

其中,当前分辨率信息,用于表示待编码视频帧的当前分辨率。当前待编码块是原始视频帧中当前需要进行预测编码的待编码块。参考块是参考帧中用于对当前待编码块进行预测编码的图像块。当前待编码块对应的第一位置信息可以用像素的坐标表示。当前待编码块对应的第一位置信息可以包括当前待编码块的全部像素对应的坐标,当前待编码块对应的第一位置信息也可以是包括当前待编码块的一个或多个像素的坐标。参考块对应的第二位置信息可以包括参考块的全部像素对应的坐标,参考块对应的第二位置信息也可以是包括参考块的一个或多个像素的坐标。例如,可以当前待编码块的第一个像素点的坐标作为当前待编码块的坐标值,以参考块的第一个像素点的坐标作为参考块的坐标值。

具体地,计算机设备可以利用坐标变换参数对第一位置信息进行变换,得到对应的第一变换位置信息,根据第一变换位置信息与第二位置信息的差值得到目标运动矢量。或者可以利用坐标变换参数对第二位置信息进行变换,得到对应的第二变换位置信息,根据第一位置信息与第二位变换置信息的差值得到目标运动矢量。

在一个实施例中,坐标变换参数是待编码视频帧的分辨率与参考帧的分辨率信息中,大分辨率信息除以小分辨率信息得到的比例。其中,大分辨率信息对应的分辨率比小分辨率对应的分辨率大。坐标变换参数用于与待编码视频帧与参考帧中小分辨率信息的帧的位置信息进行变换。例如,待编码视频帧的分辨率为1200*1200像素,参考帧的分辨率为600*600像素,则大分辨率为1200*1200像素,小分辨率为600*600像素。第一矢量变换系数可以为2。假设第一位置信息为(6,8),第二位置信息为(3,3)。则目标运动矢量为(6,8)-(3*2,3*2)=(0,2)。本发明实施例中,通过对小分辨率信息的帧对应的位置信息进行变换,可以降低目标运动矢量的值,减少编码数据的数据量。

在一个实施例中,坐标变换参数是待编码视频帧的分辨率与参考帧的分辨率信息中,小分辨率信息除以大分辨率信息得到的比例。坐标变换参数用于对待编码视频帧与参考帧中,大分辨率信息的帧的位置信息进行变换。例如,待编码视频帧的分辨率为1200*1200像素,参考帧的分辨率为600*600像素,第一矢量变换系数可以为1/2。假设第一位置信息为(6,8),第二位置信息为(3,3)。则目标运动矢量为(6*1/2,8*1/2)-(3,3)=(0,1)。

本发明实施例中,通过坐标变换参数对位置信息进行变换,使得得到的位置信息处于同一量化尺度下,可以降低目标运动矢量的值,减少编码数据的数据量。

举例说明,如图10所示,参考帧的分辨率为待编码视频帧的分辨率的2倍,当前待编码块为像素(1、1)、(1、2)、(2、1)以及(2、2)组成的,对应的目标参考块为像素(4、2)、(4、3)、(5、2)以及(5、3)组成的,如果不进行变换,则目标运动矢量为(-3,-1),而如果在计算目标运动矢量时,将待编码视频帧中对应的位置信息乘以2,再计算目标运动矢量,则目标运动矢量为(-2,0),比(-3,-1)小。

在一个实施例中,获取原始视频帧对应的处理方式包括:计算目标预测类型待编码块在原始视频帧对应的前向编码视频帧中的比例;根据比例确定原始视频帧对应的处理方式。

具体地,预测类型待编码块是帧预测类型对应的待编码块。目标预测类型的比例可以是帧内编码块对应的比例以及帧间编码块对应的比例中的一种或两种。目标预测类型待编码块在原始视频帧对应的前向编码视频帧中的比例可以是该目标预测类型待编码块与其他预测类型待编码块的比例,也可以是该类型待编码块与总待编码块数量的比例。具体可以根据需要进行设置。例如可以获取前向编码视频帧中帧内编码块的第一数量,前向编码视频帧中帧间编码块的第二数量。根据第一数量和第二数量计算得到帧内编码块与帧间编码块的比例,或者统计前向编码视频帧的全部待编码块的第三数量,根据第一数量和第三数量计算得到帧内编码块与第三数据量的比例。还可根据第二数量和第三数量计算得到帧间编码块与第三数据量的比例。

前向编码视频帧是指对当前输入的原始视频帧进行编码之前已经编码的视频帧,获取的前向编码视频帧的具体数量可自定义,例如,前向编码视频帧可以是原始视频帧的前一个已编码的编码视频帧,前向编码视频帧也可以是原始视频帧的前3个已编码的编码视频帧。在计算得到目标预测类型待编码块对应的在前向编码视频帧中的比例后,根据计算得到的比例确定原始视频帧对应的处理方式。若获取到的前向编码视频帧的数量为多个时,可以计算得到不同类型待编码块对应的在每一个前向编码视频帧中的比例,根据各个比例进行加权计算得到总比例,再根据总比例和预设阈值确定原始视频帧对应的处理方式。其中,前向视频帧对应的权重可以与前向编码视频帧与原始视频帧的编码距离成负相关关系。

在一个实施例中,可以计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例,当比例大于目标阈值时,确定处理方式为下采样处理方式。

对于帧内编码块对应的比例,可以是当该比例大于目标阈值时,确定原始视频帧对应的处理方式为下采样处理方式,否则确定视频帧对应的处理方式为全分辨率处理方式。如,当比例大于目标阈值时,确定原始视频帧对应的处理方式为下采样处理方式,否则确定视频帧对应的处理方式为全分辨率处理方式。

本发明实施例中,如果帧内编码块的比例大,则说明视频会相对比较复杂或者视频帧之间的相关度比较低,因此得到的像素残差比较大,因此更倾向于采用下采样处理方式进行编码,减少编码数据量。

其中目标阈值可根据原始视频帧对应的参考帧的处理方式进行确定。当原始视频帧对应的参考帧的处理方式为下采样处理方式时,获取第一预设阈值T1,将第一预设阈值T1作为目标阈值。同样地,当原始视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为目标阈值。进一步地,在根据原始视频帧对应的参考帧的分辨率信息获取到目标阈值后,根据目标阈值和前向编码视频帧中帧内编码块在前向编码视频帧中的比例确定当前输入的原始视频帧的处理方式。其中,当前向编码视频帧中帧内编码块在前向编码视频帧中的比例大于目标阈值时,确定原始视频帧对应的处理方式为下采样处理方式。

在一个实施例中,第二预设阈值大于第一预设阈值,这样,当参考帧对应的处理方式全分辨率处理方式时,原始视频帧更倾向于采用全分辨率处理方式,当参考帧为下采样处理方式时,原始视频帧更倾向于采用下采样处理方式。

在一个实施例中,获取原始视频帧之前,视频编码方法还包括:获取原始视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式;判断目标视频序列编码模式是否为混合分辨率编码模式,若是,则执行获取原始视频帧的步骤,若否,则对输入视频序列的各个原始视频帧进行恒定分辨率编码。

具体地,输入视频序列可以包括多个原始视频帧。当目标视频序列编码模式为恒定分辨率编码模式时,输入视频序列的各个原始视频帧是在相同的分辨率例如全分辨率下进行编码的,当目标视频序列编码模式为混合分辨率编码模式时,则获取各个原始视频帧对应的处理方式,根据处理方式对原始视频帧进行处理,得到待编码视频帧,根据待编码视频帧进行编码,待编码视频帧的分辨率可以与原始视频帧的分辨率相同,也可以比原始视频帧的分辨率小,输入视频序列可以存在不同分辨率的待编码视频帧。因此当视频序列编码模式为混合分辨率编码模式时,执行上述实施例中提供的视频编码方法。

在一个实施例中,获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息和当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。

具体地,环境信息可以包括表征执行视频编码方法的设备的处理能力的信息、表征执行视频解码方法的设备的处理能力的信息以及当前应用场景信息中的一种或多种。处理能力可以用处理速度进行表示。例如,对于处理能力强的设备,由于处理速度快,对应的目标视频序列编码模式为全分辨率编码模式(可以理解,全分辨率编码模式是一种特殊情况下的恒定分辨率编码模式),当当前应用场景信息对应的当前应用场景为实时应用场景时,视频序列编码模式为混合分辨率编码模式。当当前应用场景信息对应的当前应用场景非实时应用场景时,视频序列编码模式为恒定分辨率编码模式。可以设置当前环境信息与视频序列编码模式对应的关系,当得到当前环境信息后,根据当前环境信息与视频序列编码模式的对应关系得到输入视频序列对应的目标视频序列编码模式。例如,可以设置视频编码方法的设备的处理速度与执行视频解码方法的设备的处理速度的平均值与视频序列编码模式的对应关系,当得到视频编码方法的设备的处理速度与执行视频解码方法的设备的处理速度后,计算平均值,根据平均值得到目标视频序列编码模式。当前应用场景是否为实时应用场景可以根据需要进行设置。例如,视频通话应用场景、游戏应用场景为实时应用场景,视频网站上的视频编码,离线视频的编码对应的应用场景可以为非实时应用场景。

具体地,当视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个原始视频帧进行恒定分辨率编码。

在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据包括:将目标视频序列编码模式对应的视频序列编码模式信息添加至编码数据中。

具体地,视频序列编码模式信息用于描述输入视频序列采用的编码模式,可以在编码数据中加入描述视频序列编码模式的标志位Sequence_Mix_Resolution_Flag,具体的标志位的值可以根据需要设置。视频序列编码模式信息在编码数据的添加位置可以是序列级头信息。例如,当Sequence_Mix_Resolution_Flag为1时,对应的目标视频序列编码模式可以为混合分辨率编码模式。当Sequence_Mix_Resolution_Flag为0时,对应的目标视频序列编码模式可以为恒定分辨率编码模式。

在一个实施例中,视频编码框架如图11所示。视频编码框架包括恒定分辨率编码框架以及混合分辨率编码框架,混合分辨率编码框架可以与图2中的编码框架对应。当得到输入视频序列后,在视频序列编码模式获取模块处对视频序列编码模式进行决策,当目标视频序列编码模式为混合分辨率编码模式,则采用混合分辨率编码框架进行编码,当目标视频序列编码模式为恒定分辨率编码模式时,利用图11的恒定分辨率编码框架进行恒定分辨率编码。其中恒定分辨率编码框架可以是目前的HEVC编码框架或者H.265编码框架等。

以下假设视频序列A包括三个原始视频帧:a、b以及c,对视频编码方法进行说明。

1、获取视频序列A对应的目标视频序列编码模式,由于当前环境是视频通话环境,目标视频序列编码模式为混合分辨率编码模式。

2、利用混合分辨率编码框架中的处理决策单元对第一个原始视频帧a进行决策,得到处理方式为下采样处理方式,下采样比例为1/2,对a进行下采样处理,得到下采样后的视频帧a1,对a1进行帧内编码,得到a1对应的编码数据d1,并将a1对应的编码数据进行重建,得到对应的重建视频帧a2。

3、利用混合分辨率编码框架中的处理决策单元对第二个原始视频帧b进行决策,得到处理方式为下采样处理方式,采样比例为1/4。对b进行下采样,得到b1,对b1进行编码,得到b对应的编码数据,并在编码数据中携带下采样比例对应的采用比例信息以及处理方式对应的处理方式信息。

其中编码过程包括:由于b为帧间预测帧,因此需要将a2作为参考帧,由于b1与a2的分辨率不同,故需要对a2进行采样处理。确定a2的采样方式为直接分像素插值,运动估计精度为1/4,故像素插值精度为1/4*2=1/2,根据像素插值精度对a2进行1/2分像素插值,得到参考帧a3。计算b1中的当前待编码块与参考帧a3中的目标参考块的第一运动矢量MV1,像素残差为p1。并获取得到目标分辨率为原始分辨率,因此,目标运动矢量为4MV1。计算得到初始预测矢量为MV2,初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,因此,目标预测矢量为4MV2,故当前待编码块对应的运动矢量差MVD1等于4MV1-4MV2。对MVD1以及p1进行变换、量化以及熵编码,得到编码数据。

4、利用混合分辨率编码框架中的处理决策单元对第三个原始视频帧c进行决策,得到处理方式为下采样处理方式,采样比例为1/8。对c进行下采样,得到c1,对c1进行编码,得到c对应的编码数据d2。

其中编码过程包括:由于c为帧间预测帧,对应的参考帧为对b的编码数据重建得到的重建视频帧b2,由于c1与b2的分辨率不同,故需要对b2进行采样处理。确定b2的采样方式为直接分像素插值,运动估计精度为1/4,故像素插值精度为1/4*2=1/2,根据像素插值精度对b2进行1/2分像素插值,得到参考帧b3。计算c1中的当前待编码块与参考帧b3中的目标参考块的第一运动矢量MV3,像素残差为p2。并获取得到目标分辨率为原始分辨率,因此,目标运动矢量为8MV3。获取初始预测矢量为MV4,初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,因此,目标预测矢量为4MV4,故当前待编码块对应的运动矢量差MVD2等于8MV3-4MV4。对MVD2以及p2进行变换、量化以及熵编码,得到编码数据d3。

5、将d1、d2以及d3组成编码数据包,作为视频序列对应的编码数据,发送到接收终端,其中,视频序列对应的编码数据中携带了描述目标视频序列编码模式为混合分辨率编码模式的标志位。

如图12所示,在一个实施例中,提供了一种视频编码方法。本实施例主要以该方法应用于计算机设备来举例说明,计算机设备可以是上述图1中的终端110或服务器120。参照图12,该视频编码方法具体包括如下步骤:

S1202,获取待解码视频帧所对应的编码数据。

其中,待解码视频帧是需要进行解码的视频帧。解码待解码视频帧的编码数据,并参考该待解码视频帧的参考帧,即可重建视频帧。一个待解码视频序列可以包括多个待解码视频帧。待解码视频帧可以是实时获取的视频帧,也可以是预先存储的待解码视频序列中获取的视频帧。

S1204,提取编码数据中与待解码视频帧中各待解码块各自对应的运动残差;运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率。

分辨率配置信息,是与编码端预先约定的。即解码端这里的分辨率配置信息与编码端在编码时所使用的分辨率配置信息一致。也就是说,编码端是按照该分辨率配置信息所对应的目标分辨率,对运动残差进行编码得到编码数据。解码端这边可以与编码端事先约定,在获取到编码端发送过来的残差后,可以默认该运动残差所对应的分辨率为分辨率配置信息所对应的目标分辨率。

对待解码视频帧重建的过程,可以认为是根据编码数据恢复至编码前的过程,也就是恢复至待编码视频帧的过程。如果在编码过程中图像信息不存在损失,则重建视频帧与待编码视频帧是相同的。如果在编码过程中图像信息存在损失,则重建视频帧与待编码视频帧的差异与损失值对应。

由于编码数据是根据待编码视频帧中各待编码块的运动残差以及其他数据(如像素残差等)编码得到的,那么即可从编码数据中解码出待解码视频帧中各待解码块各自对应的运动残差。

具体地,计算机设备对编码数据进行熵解码、反量化或者反变换中的一种或多种运算得到编码块的运动残差。这里的解码过程与编码运动残差得到编码数据的编码过程对应。计算机设备可以根据与编码端预先约定的分辨率配置信息,得知解码得到的运动残差所对应的分辨率。

S1206,确定各待解码块各自对应的预测运动矢量。

需要说明的是,在本发明的实施例中,不限定预测运动矢量的计算方式。计算机设备可以采用已解码块的运动矢量来运算得到待解码块的预测运算矢量。举例说明,可以将当前待解码块的多个相邻已解码块对应的运动矢量的均值,作为当前待解码块的预测运动矢量;或者,可以将参考帧中与当前待解码块在图像位置上对应的图像块的运动矢量,作为当前待解码块的预测运动矢量等。

具体地,编码端与解码端可以事先约定预测运动矢量的计算方式,这样可在解码时获取与编码时相同的预测运动矢量,以保证解码结果的准确性。编码端与解码端也可事先约定选择预测运动矢量的计算方式的策略,这样双方也可取到相同的预测运动矢量,以保证解码结果的准确性。编码端还可在编码数据中写入表示预测运动矢量的计算方式的信息,以告知解码端按照该预测运动矢量的计算方式计算预测运动矢量。

可以理解,运动矢量是用于在参考帧中定位与待解码块匹配的参考块,以重建待解码块的。那么,对于待解码块而言,运动矢量在运用时,是变换到了待解码块所在视频帧的分辨率下的,已解码块已经完成解码,那么已解码块对应有该已解码块所在视频帧的分辨率下的运动矢量。那么,采用已解码块的运动矢量来运算得到待解码块的预测运算矢量,预测运算矢量也是对应于该已解码块所在视频帧的分辨率。但是,在计算已解码块的运动矢量也可能是先在其他的分辨率下得到,再变换至已解码块所在视频帧的分辨率的,所以,已解码块可能存在其他分辨率下的运动矢量。

在一个实施例中,视频解码中的参考帧与视频编码中的参考帧是对应的。也就是说,待解码视频帧所对应的编码数据所编码自的待编码视频帧在编码时,参考了哪一帧参考帧,那该待解码视频帧在重建时即参考该参考帧。

在一个实施例中,编码端的计算机设备可将编码过程中的参考关系写入编码数据中。这样,解码端的计算机设备在对待解码视频帧进行解码时,就可以直接定位各待解码视频帧对应的参考帧。解码端的计算机设备还可以获取参考帧对应的分辨率信息,以及参考帧所对应的编码数据中包括的目标分辨率信息。

S1208,当待解码视频帧的分辨率与目标分辨率不一致时,则对各待解码块各自对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

可以理解,通常情况下,对两个数据进行运算时,需要将这两个数据统一到相同的分辨率下。

在本实施例中,需要对每个待解码块的运动残差和预测运动矢量求和,得到该解码块的运动矢量,而运动矢量用于在参考帧中定位与该待解码块匹配的参考块,则需要运动矢量是在待解码视频帧的分辨率下的。

那么,在目标分辨率与待解码视频帧的分辨率一致时,也就是运动残差在待解码视频帧的分辨率下时,若预测运动矢量也是在待解码视频帧的分辨率下的,那么可直接对运动残差和预测运动矢量求和,得到该待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

在目标分辨率与待解码视频帧的分辨率不一致时,也就是运动残差不在待解码视频帧的分辨率下时,可以先将运动残差和预测运动矢量调整到相同的、且异于待解码视频帧的分辨率的其他分辨率下求和后,再将结果调整至待解码视频帧的分辨率下。比如,将运动残差调整至预设运动矢量对应的分辨率下,或者将预设运动矢量调整到运动残差的分辨率下。

在目标分辨率与待解码视频帧的分辨率不一致时,也就是运动残差不在待解码视频帧的分辨率下时,也可以先将运动残差和预测运动矢量均调整至待解码视频帧的分辨率下后求和,再将结果调整至待解码视频帧的分辨率下。

S1210,根据各待解码块各自对应的运动矢量,确定各待解码块各自对应的参考块。

具体地,对于待解码视频帧的每个待解码块,确定该待解码块在参考帧中对应的起始图像位置,再在参考帧的该起始图像位置处按照该运动矢量,确定目标图像位置,该目标图像位置的图像块即为该待解码块的参考块。

S1212,根据各参考块和编码数据,得到重建视频帧。

可以理解,重建视频帧,是对待解码视频帧进行重建得到的视频帧。

具体地,像素残差是待解码块的实际像素值与预测像素值的差值。待解码块的预测像素值可以根据参考块得到,那么,对于待解码视频帧的每个待解码块,在确定对应的参考块之后,即可根据该参考块确定该待解码块的预测像素值,根据该预测像素值和该待解码块的像素残差,即可重建该待解码帧的图像块,从而重建待解码视频帧的重建视频帧。

上述视频解码方法,在获取到待解码视频帧所对应的编码数据后,即可根据和编码端预先约定的分辨率配置信息,得知编码数据中各待解码块的运动残差所对应的分辨率,那么,在获取到各待解码块的预测运动矢量后,即可对各解码块的运动残差和预测运动矢量在相同分辨率下进行处理,得到各待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量,这样,即可提高找到对应的参考块的准确性,继而准确地解码编码数据,提高解码的准确度,进而提高解码图像的质量。

在一个实施例中,确定各待解码块各自对应的预测运动矢量,包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,确定当前待解码块所对应参考块所在的参考帧;在参考帧中,确定与当前待解码块在图像位置上对应的图像块;将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量。

其中,参考帧,是对待解码视频帧进行解码时所需参考的视频帧。与对相应的编码过程中参考的视频帧是相同的。可以理解,参考帧是在前的待解码视频帧重建得到的视频帧。待解码视频帧的参考帧可以是一个或者多个。

具体地,计算机设备在根据编码时的参考关系,获取待解码视频帧的参考帧后,可在参考该参考帧对待解码视频帧中各待解码块进行解码时,对于当前待解码块,在参考帧中搜索与当前待解码块匹配的参考块。在搜索到与当前待解码块匹配的参考块后,继而确定该参考块所在的参考帧。

进一步地,计算机设备可在确定的参考帧中,确定与当前待解码块在图像位置上对应的图像块,获取该图像块所对应的运动矢量,作为当前待解码块的预测运动矢量。图像位置对应具体可以是图像像素对应,或者是图像坐标对应。

可以理解,由于参考帧是当前待解码视频帧之前已解码重建的视频帧,那么若对应该参考帧存在当前待解码视频帧的分辨率下的、且与该图像块对应的运动矢量,即为前述实施例中,待解码块的预测运动矢量所对应的分辨率与当前待解码视频帧的分辨率一致的场景,可沿用前述实施例中该场景下的处理方式。若对应该参考帧不存在当前待解码视频帧的分辨率下的、且与该图像块对应的运动矢量时,则为前述实施例中,待解码块的预测运动矢量所对应的分辨率与当前待解码视频帧的分辨率不一致的场景,则可沿用前述实施例中该场景下的处理方式。

在一个实施例中,对应参考帧是否存在当前待解码视频帧的分辨率下的、且与参考帧的图像块对应的运动矢量,与该参考帧的分辨率有关。

在一个实施例中,将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量包括:获取图像块在参考帧的分辨率下所对应的运动矢量;当参考帧的分辨率与待解码视频帧的分辨率不一致时,则将图像块所对应的运动矢量,变换为在待解码视频帧的分辨率下的运动矢量,得到当前待解码块的预测运动矢量。

可以理解,待解码视频帧的分辨率与相应待编码视频帧的分辨率一致。而参考帧的分辨率可能与待编码视频帧的分辨率不一致,所以当参考帧的分辨率与待解码视频帧的分辨率不一致时,则获取图像块在参考帧的分辨率下所对应的运动矢量。将图像块所对应的运动矢量,变换为在待解码视频帧的分辨率下的运动矢量。可以理解,变换后的图像块所对应的运动矢量,其所对应的分辨率则为待解码视频帧的分辨率,则可以直接将变换后的图像块所对应的运动矢量,作为当前待解码块的预测运动矢量。

上述实施例中,在以参考帧中的图像块的运动矢量作为当前待解码帧的待解码块的预测运动矢量时,以得到该待解码块的运动矢量,以保证解码的顺利进行,以及解码质量。

在一个实施例中,解码端的计算机设备可将待解码视频帧的分辨率信息所表示的分辨率,与分辨率配置信息所表示的目标分辨率进行比较。

具体地,当待解码视频帧的分辨率信息所表示的分辨率,与目标分辨率一致时,则表示编码数据中的运动残差是在待解码视频帧的分辨率信息所表示的分辨率下。那么在处理待解码视频帧中各待解码块时,对于当前待解码块,将当前待解码块的预测运动矢量,调整至待解码视频帧的分辨率信息所表示的分辨率下,以与运动残差在相同的分辨率下。然后对相同分辨率下的预设运动矢量和运动残差求和,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

当待解码视频帧的分辨率信息所表示的分辨率,与目标分辨率不一致时,则计算机设备可继续将待解码视频帧的分辨率信息所表示的分辨率,与当前待解码块的预测运动矢量所对应的分辨率进行比较。

在一个实施例中,对各待解码块各自对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量,包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量对应待解码视频帧的分辨率时,则将当前待解码块所对应的运动残差,变换为在待解码视频帧的分辨率下的目标运动残差;根据当前待解码块所对应的目标运动残差和预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

具体地,解码端的计算机设备在待解码视频帧的分辨率信息所表示的分辨率,与预先约定的分辨率配置信息所对应的目标分辨率不一致、且待解码视频帧的分辨率信息所表示的分辨率,与当前待解码块的预测运动矢量所对应的分辨率一致时,将当前待解码块所对应的运动残差,变换为在待解码视频帧的分辨率下的目标运动残差;根据当前待解码块所对应的目标运动残差和预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

当将待解码视频帧的分辨率信息所表示的分辨率,与当前待解码块的预测运动矢量所对应的分辨率不一致时,计算机设备可继续将当前待解码块的预测运动矢量所对应的分辨率,与和编码端预先约定的分辨率配置信息所对应的目标分辨率进行比较。

在一个实施例中,对各待解码块各自对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量,包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量未对应待解码视频帧的分辨率、且对应目标分辨率时,则根据当前待解码块所对应的运动残差和预测运动矢量,得到当前待解码块所对应的初始运动矢量;将初始运动矢量变换为在待解码视频帧的分辨率下的运动矢量。

具体地,解码端的计算机设备在待解码视频帧的分辨率信息所表示的分辨率,与预先约定的分辨率配置信息所对应的目标分辨率不一致、且待解码视频帧的分辨率信息所表示的分辨率,与当前待解码块的预测运动矢量所对应的分辨率不一致、且当前待解码块的预测运动矢量所对应的分辨率,与目标分辨率一致时,根据当前待解码块所对应的运动残差和预测运动矢量,得到当前待解码块所对应的初始运动矢量;将当前待解码块所对应的初始运动矢量变换为在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,该视频编码方法还包括:对于当前待解码块,当所述当前待解码块所对应的预测运动矢量未对应所述待解码视频帧的分辨率、且未对应所述目标分辨率时,则分别将当前待解码块所对应的运动残差和预测运动矢量,变换为在待解码视频帧的分辨率下的目标运动残差和目标预测运动矢量;根据目标运动残差和目标预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

具体地,在待解码视频帧的分辨率信息所表示的分辨率,与分辨率配置信息所对应的目标分辨率不一致的情况下,当当前待解码块的预测运动矢量所对应的分辨率,与待解码视频帧的分辨率信息所表示的分辨率和目标分辨率皆不一致时,解码端的计算机设备则可以分别将当前待解码块所对应的运动残差和预测运动矢量,变换为在待解码视频帧的分辨率下的目标运动残差和目标预测运动矢量;根据目标运动残差和目标预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

上述实施例中,提供了不同场景下计算运动矢量的途径,保证了计算出的运动矢量是在当前待解码视频帧的分辨率下,且准确度高。

在一个实施例中,目标分辨率,是编码数据所对应的原始视频帧的分辨率,或者,是待解码视频帧的分辨率。可以理解,原始视频帧的分辨率即为原始分辨率,待解码视频帧的分辨率即为待编码视频帧的当前分辨率。

在一个实施例中,提出了一种视频解码方法,该方法具体可以包括:获取待解码视频帧对应的编码数据;获取待解码视频帧对应的分辨率信息;根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧。可以理解,在一个实施例中,步骤S1204~S1212包括于根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧这一步骤。

待解码视频帧是需要进行解码的视频帧。一个待解码视频序列可以包括多个待解码视频帧。待解码视频帧可以是实时获取的视频帧,也可以是预先存储的待解码视频序列中获取的视频帧。

分辨率信息是与分辨率相关的信息,可以是分辨率本身也可以是下采样比例。待解码视频帧对应的分辨率信息可以是从编码数据中携带的,也可以是解码设备经过计算得到的。

在一个实施例中,编码数据中可以携带待解码视频帧对应的分辨率信息,例如可以携带待解码视频帧对应的分辨率或者下采样比例。

在一个实施例中,编码数据中可以携带处理方式信息,解码设备从编码数据中获取处理方式信息,根据处理方式信息得到待解码视频帧对应的分辨率信息。例如,编码数据中可以携带处理方式信息对应的处理方式为下采样处理方式,编码标准以及解码标准中确定了下采样比例均为1/2或者编码数据中携带对应的下采样比例,则获取得到的分辨率信息为下采样比例为1/2。

重建视频帧是解码重建得到的视频帧。可以理解,该重建视频帧对应的分辨率信息与编码过程中的待编码视频帧的分辨率信息是对应的。如果在编码的过程中图像信息不存在损失,则重建视频帧与待编码视频帧是相同的,如果在编码的过程中图像信息存在损失,则重建视频帧与待编码视频帧的差异与损失值对应。对编码数据进行解码是在待解码视频帧对应的分辨率信息下进行的。解码可以包括预测、反变换、反量化以及熵解码中的至少一个,具体根据编码的过程确定。在解码时,根据待解码视频帧的分辨率信息对参考帧、待解码视频帧的各个待解码块对应的位置信息、参考帧的各个参考块对应的位置信息以及运动矢量中的至少一个进行处理,其中的处理方法与编码端进行编码时的处理方法是匹配的。例如可以获取待解码视频帧对应的参考帧,根据待解码视频帧对应的分辨率信息对参考帧进行处理,根据编码数据所携带的运动矢量信息,确定处理后的参考帧中的目标参考块,基于目标参考块对编码数据进行解码,得到重建视频帧。在一个实施例中,计算机设备可以根据目标参考块得到待解码块对应的预测像素值,并根据编码数据中的像素残差与预测像素值得到重建视频帧。其中,运动矢量信息,是与运动矢量相关的信息。在一个实施例中,运动矢量信息可以包括目标运动矢量或运动残差。

在一个实施例中,当编码端对位置信息进行了变换时,则在解码过程中获取得到相应的位置信息时,需要对该位置信息进行相应的变换,以保持编码端与解码端得到的目标参考块的一致性。

在一个实施例中,当编码数据中携带的运动矢量信息是目标运动矢量时,可以根据目标运动矢量分辨率信息与待解码视频帧对应的分辨率信息将目标运动矢量进行变换,得到在待解码视频帧对应的分辨率信息下的运动矢量,根据运动矢量在参考帧中定位待解码块对应的参考块。

在一个实施例中,当编码数据中携带的运动矢量信息是运动残差时,获取当前待解码块对应的预测运动矢量,对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量,根据运动矢量在参考帧中定位各待解码块各自对应的参考块。

具体地,对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,表示将运动残差和预测运动矢量都变换到相同分辨率下进行运算。例如,将运动残差和预测运动矢量统一到目标分辨率下,即将预测运动矢量变换为目标分辨率下的预测运动矢量,根据变化后的预测运动矢量以及运动残差即可得到运动矢量,再将运动矢量变换到待解码视频帧的分辨率下的运动矢量。再例如,将运动残差和预测运动矢量统一到待解码视频帧的分辨率下,即将预测运动矢量变换为待解码视频帧的分辨率下的预测运动矢量,将运动残差变换到待解码视频帧的分辨率下的运动残差,根据变换后的运动残差以及变换后的预测运动矢量即可得到待解码视频帧的分辨率下的运动矢量。

在一个实施例中,该方法还包括:根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。

具体地,对重建视频帧进行处理可以是采样处理,例如为上采样处理。对重建视频帧进行处理的方法与编码中对原始视频帧的处理方法可以是相对应的。例如,当原始视频帧的处理方式是下采样处理方式时,且分辨率信息是1/2下采样比例,则对重建视频帧进行上采样处理,上采样比例可以是2。

在一个实施例中,当解码端从编码数据的头信息中确定编码数据是通过下采样处理方式进行编码得到的,则解码端还可从头信息中获取所采用的下采样比例信息或下采样方法信息,并采用与下采样比例信息或下采样方法信息匹配的上采样比例、上采样方法对得到的重建视频帧进行上采样处理,得到解码视频帧。比如,下采样比例信息对应的采样比例为1/2,则解码端需要按照采样比例为2以及下采样方法信息匹配的上采样方法对重建视频帧进行上采样处理,得到解码视频帧。解码端可以从序列级头信息、组级头信息以及帧级头信息中的任一个获取到当前编码数据对应的下采样比例信息或下采样方法信息。

上述视频解码方法,获取待解码视频帧对应的编码数据,获取待解码视频帧对应的分辨率信息,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧,根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。因此进行解码时,可以灵活地根据待解码视频帧对应的分辨率信息进行解码,得到解码视频帧,且是在待解码视频帧的分辨率下进行解码的,能够得到准确的解码视频帧。

在一个实施例中,将待解码视频序列的待解码视频帧对应的重建视频帧都处理成相同的分辨率,例如将重建视频帧处理成与原始视频帧的原始分辨率相同的解码视频帧。

在一个实施例中,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧包括:获取待解码视频帧对应的参考帧;根据待解码视频帧对应的分辨率信息以及参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧。

具体地,待解码视频帧对应的参考帧的个数可为一个或多个。例如当待解码视频帧为P帧,则对应的参考帧可以为1个。当待解码视频帧为B帧,则对应的参考帧可以为2个。待编码视频帧对应的参考帧可以是根据参考关系得到的,参考关系根据各个视频编解码标准可以不同。例如,对于一个视频图像组(Group Of Picture,GOP)中的第二个视频帧,为B帧,对应的待解码视频帧可以是该视频组的I帧以及视频组的第4帧。或者待解码视频帧对应的参考帧可以是其前向的已编码视频帧中的前一个或者两个。可以理解,参考帧与编码过程的参考帧是一致的。

在一个实施例中,获取待解码视频帧对应的参考帧包括:获取第二参考规则,第二参考规则包括待解码视频帧与参考帧的分辨率大小关系;根据第二参考规则获取待解码视频帧对应的参考帧。

具体地,第二参考规则确定了待解码视频帧与参考帧的分辨率大小的限制关系,可以理解,为了保证编码过程中获取得到的参考帧与解码过程中获取得到的参考帧的一致性,第一参考规则与第二参考规则是一致的。第一参考规则、第二参考规则可以是在编解码标准中预先设置的。或者,在进行编码时,可以根据编码的应用场景、实时性要求等选择第一参考规则,并在编码数据中携带参考规则信息,解码器根据编码数据中的参考规则信息得到第二参考规则。分辨率大小关系包括待解码视频帧与参考帧相同以及不同的至少一种。当第二参考规则包括待解码视频帧与参考帧的分辨率相同时,第二参考规则还可以包括待解码视频帧与参考帧的分辨率的处理方式参考规则。例如处理方式参考规则可以包括全分辨处理方式的待解码视频帧可以参考全分辨率处理方式的参考帧以及下采样处理方式的待解码视频帧可以参考下采样处理方式的参考帧的一种或两种。当第二参考规则包括待解码视频帧与参考帧的分辨率不相同时,第二参考规则还可以包括待解码视频帧的分辨率大于参考帧的分辨率以及待解码视频帧的分辨率小于参考帧的分辨率的一种或两种。因此,第二参考规则可以包括原始分辨率待解码视频帧参考下采样分辨率参考帧、下采样分辨率待解码视频帧参考原始分辨率参考帧、原始分辨率待解码视频帧参考原始分辨率参考帧以及下采样分辨率待解码视频帧参考下采样分辨率的参考帧中的一种或多种。其中原始分辨率待解码视频帧,是指该待解码视频帧的分辨率与对应的原始视频帧的分辨率相同,原始分辨率参考帧,是指该参考帧的分辨率与其对应的原始视频帧的分辨率相同。下采样分辨率待解码视频帧,是指该待解码视频帧对应的分辨率信息为下采样。下采样分辨率参考帧是指该参考帧对应的分辨率信息为下采样。得到第二参考规则后,根据第二参考规则待解码视频帧对应的参考帧,使得到的参考帧满足第二参考规则。

具体地,可以从参考帧中获取与待解码视频帧的待解码块对应的参考块,根据参考块对待解码块进行解码。也可以根据待解码视频帧的分辨率信息对参考帧进行处理,从处理后的参考帧中获取与待解码视频帧的待解码块对应的目标参考块,根据目标参考块对待编码块进行解码,待解码视频帧对应的重建视频帧。

在一个实施例中,根据待解码视频帧对应的分辨率信息以及参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧包括:根据待解码视频帧对应的分辨率信息对参考帧进行采样处理;根据采样处理后的参考帧对待解码视频帧进行解码,得到待解码视频帧对应的重建视频帧。

具体地,根据携带的运动矢量信息从采样处理后的参考帧中获取目标参考块,根据目标参考块得到待解码块对应的预测像素值,并根据编码数据中的像素残差与预测像素值得到重建视频帧。

在一个实施例中,根据待解码视频帧对应的分辨率信息对参考帧进行采样处理包括:根据待解码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理。

在一个实施例中,根据待解码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理包括:根据待解码视频帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对参考帧进行分像素插值处理。

在一个实施例中,根据待解码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理包括:根据待解码视频帧的分辨率信息对参考帧进行采样处理,得到中间参考帧;根据进行运动估计的像素精度对中间参考帧进行分像素插值处理。

可以理解,计算机设备可以根据分像素插值处理后的参考帧对待解码视频帧进行解码,得到待解码视频帧对应的重建视频帧。

具体地,待解码视频帧与待编码视频帧的分辨率是一致的,得到的目标参考帧也是一致的,因此,根据待解码视频帧对应的分辨率信息对参考帧进行采样处理的方法,与编码端中根据待编码视频帧的分辨率信息对参考帧进行采样处理的方法是一致的,本发明实施例在此不再赘述。

在一个实施例中,解码端还可从编码数据的头信息中获取待解码视频帧对应的采样方式信息。具体可以从序列级头信息、组级头信息以及帧级头信息中的任一个获取到待解码视频帧对应的分像素插值方式信息。例如,当编码数据的帧级头信息中用于确定采样方式的标识位Pixel_Sourse_Interpolation为0时,表示原始视频帧对应的参考帧采用直接进行分像素插值处理,在Pixel_Sourse_Interpolation为1时,表示原始视频帧对应的参考帧采用采样处理后再分像素插值处理。解码端就可按照与编码数据中标识位所表示的分像素插值方式相同对参考帧进行分像素插值处理,从而可依据分像素插值处理后的参考帧对编码数据进行解码,得到重建视频帧。

在一个实施例中,编码端在编码时,对运动矢量进行编码。则根据待解码视频帧对应的分辨率信息以及参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧,包括:根据待解码视频帧对应的分辨率信息以及参考帧的分辨率信息确定坐标反变换参数;根据编码数据获取待解码视频帧中各待解码块对应的运动矢量;再根据坐标反变换参数以及各运动矢量得到待解码视频帧中各待解码块对应的参考块;根据各参考块对编码数据进行解码,得到待解码视频帧对应的重建视频帧。

其中,坐标反变换参数用于对得到运动矢量的位置信息或者运动矢量进行变换。坐标反变换参数可以是参考帧的分辨率信息与待解码视频帧的分辨率信息之间的比例。坐标反变换参数与编码时计算调整运动矢量时的坐标变换参数是对应的。当利用坐标反变换参数对运动矢量进行变换时,可以将运动矢量变换到待解码视频帧对应的分辨率下,则坐标反变换参数可以是坐标变换参数的倒数。当利用坐标反变换参数对运动矢量对应的位置信息进行变换时,如果编码端中坐标变换参数用于对第一位置信息进行变换,则由于待解码块与待编码块的位置信息相同,因此坐标反变换参数与坐标变换参数相同。如果编码端中坐标变换参数用于对第二位置信息进行变换,由于根据运动矢量以及第一位置信息计算得到的位置值,是编码端中对根据坐标变换参数对第二位置信息进行变换后的位置值,因此坐标反变换参数为坐标变换参数的倒数。

具体地,计算机设备在得到坐标反变换参数后,根据坐标反变换参数对得到的运动矢量或者运动矢量对应的位置信息进行变换,得到参考块对应的位置信息,从而得到参考块。在得到参考块后,根据参考块的像素值以及编码数据中携带待解码块的像素残差,得到重建视频帧各个图像块的像素值,得到重建视频帧。

在一个实施例中,根据待解码视频帧对应的分辨率信息以及第一分辨率信息确定坐标反变换参数包括:根据待解码视频帧对应的分辨率信息和参考帧的分辨率信息确定坐标反变换参数;根据坐标反变换参数以及运动矢量得到待解码视频帧中各待解码块对应的参考块包括:获取当前待解码块对应的第一位置信息;根据第一位置信息、坐标反变换参数以及运动矢量得到当前待解码块对应的参考块。

例如,待解码视频帧的分辨率为1200*1200像素,参考帧的分辨率为600*600像素。坐标变换参数用于对第二位置信息进行变换,坐标变换参数为2,则坐标反变换参数为1/2。假设第一位置信息为(6,8),运动矢量为(0,2),则中间位置信息为(6,8)-(0,2)=(6,6),参考块对应的第二位置信息为(6*1/2,6*1/2)=(3,3)。

再例如,待解码视频帧的分辨率为1200*1200像素,参考帧的分辨率为600*600像素,坐标变换参数用于对第一位置信息进行变换,坐标变换参数为1/2,则坐标反变换参数为1/2。假设第一位置信息为(6,8),则运动矢量为(0,1),则第二位置信息为(6*1/2,8*1/2)-(0,1)=(3,3)。

在一个实施例中,还可以计算目标预测类型待解码块在待解码视频帧对应的前向解码视频帧中的比例;根据比例确定待解码视频帧对应的处理方式;根据处理方式得到待解码视频帧对应的分辨率信息。

具体地,目标预测类型待解码块与目标预测类型待编码块是对应的。前向解码视频帧是在待解码视频帧解码的视频帧,前向解码视频帧与前向编码视频帧也是对应的,因此编码端得到的目标预测类型待编码块的比例与解码端得到的目标预测类型待解码块的比例的计算方法以及结果也是一致的,得到目标预测类型待解码块的比例的方法可以参照目标预测类型待编码块的比例的方法,在此不再赘述。得到处理方式后,当处理方式为全分辨率处理方式,则对应的分辨率信息为原始分辨率。当处理方式为下采样处理方式,获取预设的下采样比例或者从编码数据中的头信息中获取下采样比例。

在一个实施例中,可以计算前向解码视频帧中帧内解码块在前向解码视频帧中的比例,当比例大于目标阈值时,确定处理方式为下采样处理方式。

对于帧内解码块对应的比例,可以是当该比例大于目标阈值时,确定待解码视频帧对应的处理方式为下采样处理方式,否则确定视频帧对应的处理方式为全分辨率处理方式。如,当比例大于目标阈值时,确定待解码视频帧对应的处理方式为下采样处理方式,否则确定视频帧对应的处理方式为全分辨率处理方式。

其中目标阈值可根据待解码视频帧对应的参考帧的处理方式进行确定。当待解码视频帧对应的参考帧的处理方式为下采样处理方式时,获取第一预设阈值T1,将第一预设阈值T1作为目标阈值。同样地,当待解码视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为目标阈值。进一步地,在根据待解码视频帧对应的参考帧的分辨率信息获取到目标阈值后,根据目标阈值和前向解码视频帧中帧内解码块在前向解码视频帧中的比例确定待解码视频帧的处理方式。其中,当前向解码视频帧中帧内解码块在前向解码视频帧中的比例大于目标阈值时,确定待解码视频帧对应的处理方式为下采样处理方式。

在一个实施例中,获取待解码视频帧对应的编码数据之前,还包括:获取待解码视频帧对应的待解码视频序列,获取待解码视频序列对应的视频序列解码模式,其中,视频序列解码模式包括恒定分辨率编码模式或者混合分辨率编码模式;当视频序列解码模式为混合分辨率编码模式时,对待解码视频序列的各个待解码视频帧执行混合分辨率解码方法;当视频序列解码模式为恒定分辨率编码模式时,对待解码视频序列进行恒定分辨率解码。

具体地,可以从编码数据中获取视频序列编码模式信息,根据视频序列编码模式信息得到视频序列解码模式。例如,当视频序列编码模式信息对应的视频序列编码模式为恒定分辨率编码模式时,对应的视频序列解码模式为恒定分辨率解码模式,在恒定分辨率解码模式中,视频序列的各个待解码视频帧的分辨率是一致的。当视频序列编码模式信息对应的视频序列编码模式为混合分辨率编码模式时,对应的视频序列解码模式为混合分辨率解码模式,

在一个实施例中,可从编码数据的头信息中确定待解码视频帧对应的解码框架。具体地,解码端可以从编码数据对应的序列级头信息中,获取当前编码数据对应的输入视频序列中每个原始视频帧在被编码时所采用的编码框架,从而确定与之匹配的待解码视频帧的解码框架。比如,当编码数据的序列级头信息中用于确定所采用编码框架的标识位Sequence_Mix_Flag为0时,表示输入视频序列中各个原始视频帧在被编码时均采用恒定分辨率的编码框架,则解码端可采用恒定分辨率的解码框架对编码数据进行解码得到待解码视频帧对应的重建视频帧;在Sequence_Mix_Flag为1时,表示输入视频序列中各个原始视频帧在被编码时均采用混合分辨率的编码框架,解码端就可采用混合适应分辨率的解码框架对编码数据进行解码得到重建视频帧序列。

在一个实施例中,获取待解码视频序列对应的视频序列解码模式可以包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定待解码视频序列对应的目标视频序列解码模式。

具体地,解码端也可以根据与编码端计算视频序列编码模式的方法得到对应的目标视频序列解码模式,因此本发明实施例中根据当前环境信息确定目标视频序列解码模式与根据当前环境信息确定目标视频序列编码模式是一致的,在此不再赘述。

在一个实施例中,当前环境信息包括待解码视频序列对应的应用场景,可以根据应用场景获取待解码视频序列对应的视频序列解码模式。

以下以对视频序列A对应的编码数据进行解码为例,对视频解码方法进行说明。其中,假设原始视频帧a、b、c在解码端对应的待解码视频帧的名称分别为e、f以及g。

1、接收终端获取视频序列A对应的编码数据,从编码数据对应的序列头信息中获取得到目标视频序列编码模式为混合分辨率编码模式,因此,利用混合分辨率解码框架对编码数据进行解码。

2、混合分辨率解码框架的分辨率信息获取单元获取第一个待解码视频帧e对应的分辨率信息,可以理解,e对应的编码数据为对a1进行编码得到的数据。其中,a1是对a以1/2下采样比例进行下采样处理后得到的视频帧。对e进行帧内解码,得到重建视频帧e1,由于e对应的分辨率信息为1/2,因此,可以对重建视频帧e1进行采样比例为2的上采样处理,得到解码视频帧e2。

3、混合分辨率解码框架的分辨率信息获取单元获取第二个待解码视频帧f对应的分辨率信息,可以理解,f对应的编码数据为对b1进行编码得到的数据。其中,b1是对b以1/4下采样比例进行下采样处理后得到的视频帧。对f进行帧间解码,得到重建视频帧f1,由于f对应的分辨率信息为下采样比例为1/4,因此,可以对重建视频帧f1进行采样比例为4的上采样处理,得到解码视频帧f2。

解码过程如下:由于f为帧间预测帧,因此需要将重建视频帧e1作为参考帧,可以理解,e1与对视频编码方法进行说明的描述中所提及到的a2是相同的,对e1进行与a2相同的采样处理,得到e3,这里的e3与a3(a3也在对视频编码方法进行说明的描述中被提及到)是相同的。从编码数据中获取得到当前待解码块对应的运动矢量差为MVD1,由于MVD1是目标分辨率即原始分辨率下的,因此需要将MVD1变换为f对应的分辨率下,因此可以得到MVD3为MVD1/4。获取初始预测矢量为MV2,由于初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,与f对应的分辨率相同,故可以得到第一运动矢量为MV1等于MVD1/4+MV2。根据MV1获取得到目标参考块。根据目标参考块得到待解码块对应的预测像素值,将像素残差p1加上预测像素值重建得到重建视频帧f1对应的重建块。

4、混合分辨率解码框架的分辨率信息获取单元获取第三个待解码视频帧g对应的编码数据,可以理解,g对应的编码数据为对c1进行编码得到的数据。其中,c1是对c以1/8下采样比例进行下采样处理后得到的视频帧(可参见对视频编码方法进行说明的描述内容)。对g进行帧间解码,得到重建视频帧g1,由于g对应的分辨率信息为1/8,因此,可以对重建视频帧f1进行采样比例为8的上采样处理,得到解码视频帧g2。

解码过程如下:由于g为帧间预测帧,因此需要将重建视频帧f1作为参考帧,可以理解,f1与对视频编码方法进行说明的描述中所提及到的b2是相同的,对f1进行与b2相同的采样处理,得到f3,这里的f3与b3((b3也在对视频编码方法进行说明的描述中被提及到))是相同的。从编码数据中获取得到当前待解码块对应的运动矢量差为MVD2,由于MVD2是目标分辨率即原始分辨率下的,因此需要将MVD2变换为g对应的分辨率下,因此可以得到MVD2为MVD1/8。获取初始预测矢量为MV4,由于初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,需要变换为f对应的分辨率下,f对应的下采样比例为1/8,故可以得到第一运动矢量为MV3等于MVD2/8+MV4/2。根据MV3获取得到目标参考块。根据目标参考块得到待解码块对应的预测像素值,将像素残差p2加上预测像素值重建得到重建视频帧g1对应的重建块。

5、接收终端播放e2、f2以及g2。

如图13所示,在一个实施例中,提供了一种视频编码装置1300,该装置1300包括:获取模块1302、确定模块1304及编码模块1306,其中:

获取模块1302,用于获取待编码视频帧;不同的所述待编码视频帧存在分辨率不同的情况;根据所述待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息。

确定模块1304,用于在所述目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量。

所述获取模块1302还用于获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量。

编码模块1306,用于根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

在一个实施例中,确定模块1304还用于在待编码视频帧的当前分辨率下,确定待编码视频帧中各待编码块各自对应的初始运动矢量;当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的目标分辨率,为待编码视频帧所对应原始视频帧的原始分辨率。确定模块1304还用于当由原始视频帧采用下采样处理方式处理得到待编码视频帧时,则将待编码视频帧各编码块各自对应的初始运动矢量变换为在原始分辨率下的目标运动矢量。

在一个实施例中,确定模块1304还用于根据待编码视频帧的当前分辨率信息和目标运动矢量分辨率信息,确定第一矢量变换系数;按照第一矢量变换系数,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,获取模块1302还用于在编码待编码视频帧中各待编码块时,则对于当前待编码块,确定当前待编码块所对应参考块所在的参考帧;在参考帧中,确定与当前待编码块图像位置对应的图像块;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的分辨率,为待编码视频帧的当前分辨率。确定模块1304还用于当参考帧的分辨率与当前分辨率不一致时,则获取图像块在参考帧的分辨率下的初始运动矢量;将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

在一个实施例中,确定模块1304还用于根据参考帧的分辨率信息和目标运动矢量分辨率信息,得到第二矢量变换系数;按照第二矢量变换系数,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

在一个实施例中,获取模块1302还用于获取原始视频帧;获取原始视频帧对应的处理方式;根据处理方式对原始视频帧进行处理,得到待编码视频帧;处理方式为全分辨率处理方式或下采样处理方式。

如图14所示,在一个实施例中,提供了一种视频解码装置1400,该视频解码装置1400包括:获取模块1402、确定模块1404以及解码模块1406,其中:

获取模块1402,用于获取待解码视频帧所对应的编码数据;提取编码数据中与待解码视频帧中各待解码块各自对应的运动残差;运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率。

确定模块1404,用于确定各待解码块各自对应的预测运动矢量;当待解码视频帧的分辨率与目标分辨率不一致时,则对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量;根据各待解码块各自对应的运动矢量,确定各待解码块各自对应的参考块。

解码模块1406,用于根据各参考块和编码数据,得到重建视频帧。

在一个实施例中,确定模块1404还用于在处理待解码视频帧中各待解码块时,则对于当前待解码块,确定当前待解码块所对应参考块所在的参考帧;在参考帧中,确定与当前待解码块在图像位置上对应的图像块;将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量。

在一个实施例中,目标分辨率为待解码视频帧的分辨率。确定模块1404还用于当参考帧的分辨率与待解码视频帧的分辨率不一致时,则获取图像块在参考帧的分辨率下所对应的运动矢量;将图像块所对应的运动矢量,变换为在待解码视频帧的分辨率下的运动矢量,得到当前待解码块的预测运动矢量。

在一个实施例中,确定模块1404还用于在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量对应待解码视频帧的分辨率时,将当前待解码块所对应的运动残差,变换为在待解码视频帧的分辨率下的目标运动残差;根据当前待解码块所对应的目标运动残差和预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,确定模块1404还用于在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量未对应待解码视频帧的分辨率、且对应目标分辨率时,根据当前待解码块所对应的运动残差和预测运动矢量,得到当前待解码块所对应的初始运动矢量;将初始运动矢量变换为在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,目标分辨率,是编码数据所对应的原始视频帧的分辨率,或者,是待解码视频帧的分辨率。

图15示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图15所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法以及视频解码方法中的至少一种方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法以及视频解码方法中的至少一种方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图16所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法以及视频解码方法中的至少一种方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法以及视频解码方法中的至少一种方法。

本领域技术人员可以理解,图15以及图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的视频编码装置可以实现为一种计算机程序的形式,计算机程序可在如图15以及16所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置的各个程序模块,比如,图13所示的视频编码装置1300中的获取模块1302、确定模块1304及编码模块1306。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。

例如,图15以及16所示的计算机设备可以通过如图13所示的视频编码装置1300中的获取模块1302获取待编码视频帧;不同的待编码视频帧存在分辨率不同的情况;根据待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息。计算机设备可以通过确定模块1304在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量,并通过获取模块1302获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量。计算机设备可以通过编码模块1306根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

在一个实施例中,本申请提供的视频解码装置可以实现为一种计算机程序的形式,计算机程序可在如图15以及16所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频解码装置的各个程序模块,比如,图14所示的视频解码装置1400中的获取模块1402、确定模块1404及解码模块1406。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。

例如,图15以及16所示的计算机设备可以通过如图14所示的视频解码装置1400中的获取模块1402获取待解码视频帧所对应的编码数据;提取编码数据中与待解码视频帧中各待解码块各自对应的运动残差;运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率。计算机设备可以通过确定模块1404确定各待解码块各自对应的预测运动矢量;当待解码视频帧的分辨率与目标分辨率不一致时,则对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量;根据各待解码块各自对应的运动矢量,确定各待解码块各自对应的参考块。计算机设备可以通过解码模块1406根据各参考块和编码数据,得到重建视频帧。

一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:获取待编码视频帧;不同的待编码视频帧存在分辨率不同的情况;根据待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量;根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

在一个实施例中,在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量包括:在待编码视频帧的当前分辨率下,确定待编码视频帧中各待编码块各自对应的初始运动矢量;当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的目标分辨率,为待编码视频帧所对应原始视频帧的原始分辨率;当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量包括:当由原始视频帧采用下采样处理方式处理得到待编码视频帧时,则将待编码视频帧各编码块各自对应的初始运动矢量变换为在原始分辨率下的目标运动矢量。

在一个实施例中,将初始运动矢量变换为在目标分辨率下的目标运动矢量包括:根据待编码视频帧的当前分辨率信息和目标运动矢量分辨率信息,确定第一矢量变换系数;按照第一矢量变换系数,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量包括:在编码待编码视频帧中各待编码块时,则对于当前待编码块,确定当前待编码块所对应参考块所在的参考帧;在参考帧中,确定与当前待编码块图像位置对应的图像块;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的分辨率,为待编码视频帧的当前分辨率;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量包括:当参考帧的分辨率与当前分辨率不一致时,则获取图像块在参考帧的分辨率下的初始运动矢量;将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

在一个实施例中,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量包括:根据参考帧的分辨率信息和目标运动矢量分辨率信息,得到第二矢量变换系数;按照第二矢量变换系数,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

在一个实施例中,获取待编码视频帧包括:获取原始视频帧;获取原始视频帧对应的处理方式;根据处理方式对原始视频帧进行处理,得到待编码视频帧;处理方式为全分辨率处理方式或下采样处理方式。

一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如下步骤:获取待编码视频帧;不同的待编码视频帧存在分辨率不同的情况;根据待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量;根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。

在一个实施例中,在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量包括:在待编码视频帧的当前分辨率下,确定待编码视频帧中各待编码块各自对应的初始运动矢量;当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的目标分辨率,为待编码视频帧所对应原始视频帧的原始分辨率;当当前分辨率与目标运动矢量分辨率信息所表示的目标分辨率不一致时,将初始运动矢量变换为在目标分辨率下的目标运动矢量包括:当由原始视频帧采用下采样处理方式处理得到待编码视频帧时,则将待编码视频帧各编码块各自对应的初始运动矢量变换为在原始分辨率下的目标运动矢量。

在一个实施例中,将初始运动矢量变换为在目标分辨率下的目标运动矢量包括:根据待编码视频帧的当前分辨率信息和目标运动矢量分辨率信息,确定第一矢量变换系数;按照第一矢量变换系数,将初始运动矢量变换为在目标分辨率下的目标运动矢量。

在一个实施例中,获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量包括:在编码待编码视频帧中各待编码块时,则对于当前待编码块,确定当前待编码块所对应参考块所在的参考帧;在参考帧中,确定与当前待编码块图像位置对应的图像块;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。

在一个实施例中,目标运动矢量分辨率信息所表示的分辨率,为待编码视频帧的当前分辨率;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量包括:当参考帧的分辨率与当前分辨率不一致时,则获取图像块在参考帧的分辨率下的初始运动矢量;将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

在一个实施例中,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量包括:根据参考帧的分辨率信息和目标运动矢量分辨率信息,得到第二矢量变换系数;按照第二矢量变换系数,将图像块的初始运动矢量变换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。

在一个实施例中,获取待编码视频帧包括:获取原始视频帧;获取原始视频帧对应的处理方式;根据处理方式对原始视频帧进行处理,得到待编码视频帧;处理方式为全分辨率处理方式或下采样处理方式。

一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:获取待解码视频帧所对应的编码数据;提取编码数据中与待解码视频帧中各待解码块各自对应的运动残差;运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率;确定各待解码块各自对应的预测运动矢量;当待解码视频帧的分辨率与目标分辨率不一致时,则对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量;根据各待解码块各自对应的运动矢量,确定各待解码块各自对应的参考块;根据各参考块和编码数据,得到重建视频帧。

在一个实施例中,确定各待解码块各自对应的预测运动矢量包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,确定当前待解码块所对应参考块所在的参考帧;在参考帧中,确定与当前待解码块在图像位置上对应的图像块;将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量。

在一个实施例中,目标分辨率为待解码视频帧的分辨率;将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量包括:当参考帧的分辨率与待解码视频帧的分辨率不一致时,则获取图像块在参考帧的分辨率下所对应的运动矢量;将图像块所对应的运动矢量,变换为在待解码视频帧的分辨率下的运动矢量,得到当前待解码块的预测运动矢量。

在一个实施例中,对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量对应待解码视频帧的分辨率时,将当前待解码块所对应的运动残差,变换为在待解码视频帧的分辨率下的目标运动残差;根据当前待解码块所对应的目标运动残差和预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量,包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量未对应待解码视频帧的分辨率、且对应目标分辨率时,根据当前待解码块所对应的运动残差和预测运动矢量,得到当前待解码块所对应的初始运动矢量;将初始运动矢量变换为在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,目标分辨率,是编码数据所对应的原始视频帧的分辨率,或者,是待解码视频帧的分辨率。

一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如下步骤:获取待解码视频帧所对应的编码数据;提取编码数据中与待解码视频帧中各待解码块各自对应的运动残差;运动残差所对应的分辨率,为分辨率配置信息所对应的目标分辨率;确定各待解码块各自对应的预测运动矢量;当待解码视频帧的分辨率与目标分辨率不一致时,则对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量;根据各待解码块各自对应的运动矢量,确定各待解码块各自对应的参考块;根据各参考块和编码数据,得到重建视频帧。

在一个实施例中,确定各待解码块各自对应的预测运动矢量包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,确定当前待解码块所对应参考块所在的参考帧;在参考帧中,确定与当前待解码块在图像位置上对应的图像块;将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量。

在一个实施例中,目标分辨率为待解码视频帧的分辨率;将图像块所对应的运动矢量,作为当前待解码块的预测运动矢量包括:当参考帧的分辨率与待解码视频帧的分辨率不一致时,则获取图像块在参考帧的分辨率下所对应的运动矢量;将图像块所对应的运动矢量,变换为在待解码视频帧的分辨率下的运动矢量,得到当前待解码块的预测运动矢量。

在一个实施例中,对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量对应待解码视频帧的分辨率时,将当前待解码块所对应的运动残差,变换为在待解码视频帧的分辨率下的目标运动残差;根据当前待解码块所对应的目标运动残差和预测运动矢量,得到当前待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,对各待解码块对应的运动残差和预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的运动矢量,包括:在处理待解码视频帧中各待解码块时,则对于当前待解码块,在当前待解码块所对应的预测运动矢量未对应待解码视频帧的分辨率、且对应目标分辨率时,根据当前待解码块所对应的运动残差和预测运动矢量,得到当前待解码块所对应的初始运动矢量;将初始运动矢量变换为在待解码视频帧的分辨率下的运动矢量。

在一个实施例中,目标分辨率,是编码数据所对应的原始视频帧的分辨率,或者,是待解码视频帧的分辨率。

应该理解的是,虽然本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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