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

文档序号:15981824发布日期:2018-11-17 00:25阅读:129来源:国知局

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

背景技术

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

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



技术实现要素:

本发明实施例提出了一种可以自适应地选择下采样信息,可以提高在带宽有限下的视频质量的视频编码方法、视频解码方法、装置、计算机设备及存储介质。

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

获取输入视频帧;

当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;

根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

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

视频帧获取模块,用于获取输入视频帧;

第一确定模块,用于当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;

编码模块,用于根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取输入视频帧;

当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;

根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取输入视频帧;

当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;

根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

上述视频编码方法、装置、计算机设备及存储介质,通过获取输入视频帧,当输入视频帧对应的目标处理方式为下采样处理方式时,获取输入视频帧对应的采样参数,采样参数在解码过程中重现,根据采样参数确定输入视频帧对应的下采样信息,然后根据下采样信息对输入视频帧进行编码得到对应的编码数据。上述编码方法通过获取采样参数,然后采样参数确定下采样信息,并且采样参数在解码端能够重现,从而可以在编码过程中为每个输入视频帧灵活地自适应地选择更加适合的下采样信息,有利于提高在带宽有限下的视频质量。

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

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

当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;

根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

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

编码数据获取模块,用于获取待解码视频帧对应的编码数据;

第二确定模块,用于当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;

解码模块,用于根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

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

当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;

根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

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

当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;

根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

上述视频解码方法、装置、计算机设备及存储介质,通过获取待解码视频帧对应的编码数据,当确定目标处理方式为下采样处理方式时,通过获取待解码视频帧对应的采样参数确定与待解码视频帧对应的下采样信息,采样参数与编码过程中的对应的采样参数保持一致。通过从编码数据中获取与待解码视频帧对应的下采样信息,然后根据下采样信息进行解码,提供了对自适应的选择下采样信息进行编码得到的编码数据的解码支持。

附图说明

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

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

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

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

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

图6为一个实施例中确定输入视频帧对应的下采样信息的流程图;

图7为另一个实施例中确定输入视频帧对应的下采样信息的流程图;

图8为又一个实施例中确定输入视频帧对应的下采样信息的流程图;

图9为另一个实施例中视频编码方法的流程图;

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

图11为一个实施例中对待编码帧进行编码得到编码数据的流程图;

图12为一个实施例中根据当前参考帧进行编码得到编码数据的流程图;

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

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

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

图15为另一个实施例中对待编码帧进行编码得到编码数据的流程图;

图16为又一个实施例中视频编码方法的流程图;

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

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

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

图20为一个实施例中得到重建视频帧的流程图;

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

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

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

具体实施方式

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

图1为一个实施例中视频编码方法、视频解码方法的应用环境图。如图1所示,该应用环境包括终端110和服务器120,其中终端110、服务器120通过网络进行通信。终端110具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。视频编码方法、视频解码方法可以在终端110或服务器120中完成。终端110可将输入视频帧采用视频编码方法进行自适应地编码得到编码数据,然后发送至服务器120,也可从服务器120接收自适应采样得到的编码数据,并采用视频解码方法进行解码后生成解码视频帧。服务器120可以对码流进行存储时进行转码,此时视频编码方法在服务器完成,如果服务器120需要对码流进行解码,则视频解码方法在服务器完成。

图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所示,在一个实施例中,提供了一种视频编码方法。既可以应用于服务器,也可以用于终端,本实施例以应用于终端举例说明。该视频编码方法具体包括如下步骤:

步骤s502,获取输入视频帧。

其中,视频是由一帧帧的视频帧组成的,进行编码时,需要对每一视频帧进行编码。输入视频帧是指当前待编码的视频帧。输入视频帧可以是实时采集的视频帧,比如,用于即时通信的视频帧。也可以是存储的视频对应的视频帧。

步骤s504,当确定输入视频帧对应的目标处理方式为下采样处理方式时,获取与输入视频帧对应的采样参数,采样参数在解码过程中重现,根据采样参数确定输入视频帧对应的下采样信息。

其中,采样参数是用来确定下采样信息的参数,采样参数在解码过程中能够重现是指在解码的过程中能够得到或者产生该采样参数,从而不需要将下采样信息携带在编码数据中,解码端在获取到与编码端一样的采样参数后,便能够确定与编码端一致的下采样信息。具体采用的采样参数可以根据需要自定义设置,只需要保证在解码端能够重现,例如,采样参数可以包括前序视频帧或输入视频帧的帧类型、也可以包括前序视频帧的已编码信息等在解码端能够重现的采样参数。采样参数在解码过程中能够重现的信息都是在码流中存在的信息或者是能够通过码流中编码的信息推导的信息,但是一些编码端进行多次尝试和搜索过程都是非最优选择,则并不会在解码端重现,这样的信息就认为不能在解码过程中能够重现。

目标处理方式是从候选的处理方式中选取的,候选的处理方式包括全分辨率处理方式和下采样处理方式。其中全分辨率处理方式是指对输入视频帧进行全分辨率处理,得到待编码帧。而下采样处理方式是指对输入视频帧进行下采样处理,得到待编码帧。例如,当输入视频帧的分辨率为800*800像素,处理方式为水平以及垂直方向均进行2倍下采样时,下采样待编码帧的分辨率为400*400像素。

下采样信息包括下采样比例、下采样方法中的至少一种。根据采样参数确定与输入视频帧对应的下采样比例和/或下采样方法。下采样包括:水平(宽)下采样、垂直(高)下采样、水平和垂直下采样。下采样比例是指采样前与采样后的分辨率之间的比值,包括水平下采样比例和垂直下采样比例。采样比例可以采用采样后/采样前的分辨率比值来表示,也可以采用采样前/采样后的分辨率比值来表示。比如,在水平下采样上,水平下采样后的分辨率是采样前的二分之一,那么如果采用采样后/采样前的分辨率比值来表示,为1/2;如果采用采样前/采样后的分辨率比值来表示为2。

为了描述上的清楚,下文中的下采样比例、上采样比例是指采用采样前/采样后的分辨率比值来表示的。

下采样比例分包括垂直下采样比例(高)、水平下采样(宽)比例。比如,对输入视频帧进行水平(宽)2倍下采样,采样后的图像的宽度为原始输入视频帧的一半。如果同时对输入视频帧进行宽2倍下采样和高2倍下采样,那么采样后的宽、高都是原来的一半,采样后的分辨率为原来的1/4。为了自适应地选择下采样比例,可以预先设置多个下采样比例供选择,比如,宽2倍下采样x高2倍下采样,宽3倍下采样x高3倍下采样、宽4倍下采样x高4倍下采样、宽2倍下采样x高3倍下采样等等。在一个实施例中,下采样比例的选择与输入视频帧的帧类型有关,如果帧类型为b帧,倾向于选择下采样比例比较高的分辨率,因为p帧可作为b帧的参考帧,p帧图像质量影响了后续b帧的图像质量,所以如果帧类型为p帧,则倾向于选择下采样比例比较低的分辨率。

下采样方法是指具体采用的采样方法,常见的采样方法包括:抽点、直接平均、滤波器、双线性插值、双三次插值、基于cnn(卷积神经网络)的算法,基于统计特性的方法等。不同的采样方法对应的计算复杂度不同。在一个实施例中,下采样方法的选择与应用类型有关,应用分为实时性应用类型和非实时性应用类型,如果是实时性应用类型,偏向于选择计算复杂度低的下采样方法,如果是非实时性应用类型,偏向于选择计算复杂度高的下采样方法。

步骤s506,根据下采样信息对输入视频帧进行编码得到输入视频帧对应的编码数据。

其中,当下采样信息中包括下采样比例时,根据下采样比例对输入视频帧进行下采样得到待编码帧,然后对待编码帧进行编码得到输入视频帧对应的编码数据。编码数据是指编码后得到的数据。当下采样信息中还包括下采样方法时,终端根据下采样方法对输入视频帧进行下采样得到待编码帧,然后对待编码帧进行编码得到编码数据。当下采样信息同时包括下采样比例和下采样方法时,终端先根据下采样比例对输入视频帧进行下采样得到待编码帧,然后采用下采样方法对待编码帧进行编码得到输入视频帧对应的编码数据。

上述视频编码方法,通过获取输入视频帧,当输入视频帧对应的目标处理方式为下采样处理方式时,获取输入视频帧对应的采样参数,采样参数在解码过程中重现,根据采样参数确定输入视频帧对应的下采样信息,然后根据下采样信息对输入视频帧进行编码得到对应的编码数据。上述编码方法通过获取采样参数,然后采样参数确定下采样信息,并且采样参数在解码端能够重现,从而可以在编码过程中为每个输入视频帧灵活地自适应地选择更加适合的下采样信息,有利于提高在带宽有限下的视频质量。

在一个实施例中,获取与输入视频帧对应的采样参数,采样参数在解码过程中重现,包括:当采样参数为传输至解码端的编码数据;和/或根据传输至解码端的编码数据得到的处理数据时,确定采样参数为在解码过程中重现的参数。

其中,输入视频帧对应的采样参数可以是但不限于,输入视频帧对应的第一编码数据,和/或输入视频帧之前的前序视频帧对应的第二编码数据,和/或根据第一编码数据和/或第二编码数据得到的处理数据,和/或输入视频帧之前的重建视频帧对应的图像特征。其中,图像特征是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。具体地,当输入视频帧对应的采样参数为输入视频帧对应的第一编码数据时,确定输入视频帧对应的采样参数为在解码过程中重现的参数,和/或当输入视频帧对应的采样参数为输入视频帧之前的前序视频帧对应的第二编码数据时,确定输入视频帧对应的采样参数为在解码过程中重现的参数,和/或当输入视频帧对应的采样参数为根据第一编码数据和/或第二编码数据得到的处理数据时,确定输入视频帧对应的采样参数为在解码过程中重现的参数,和/或当输入视频帧之前的重建视频帧对应的图像特征时,确定输入视频帧对应的采样参数为在解码过程中重现的参数。

如图6所示,在一个实施例中,下采样信息包括:下采样比例;采样参数包括:输入视频帧的帧信息、与输入视频帧对应的前序视频帧的编码信息中的至少一种;根据采样参数确定输入视频帧对应的下采样信息,包括:

步骤s504a,根据采样参数计算得到目标采样函数值。

其中,目标采样函数值是指通过将采样参数代入预先设置的采样函数中计算得到的函数值。前序视频帧是指在当前输入视频帧之前已编码的视频帧,与当前视频帧(输入视频帧)对应的前序视频帧可以自定义选择,前序视频帧可以是一帧,也可以是多帧。比如,可以将当前视频帧的前一视频帧作为与之对应的前序视频帧,也可以将当前视频帧的前多个视频帧作为与之对应的前序视频帧。

采样参数包括当前视频帧的帧信息、输入视频帧对应的前序视频帧的编码信息中的至少一种。其中,帧信息包括:帧类型、图像特征信息等中的至少一种。图像特征信息是指视频帧对应的图像本身的特征,包括运动特征和纹理复杂度特征等。编码信息包括:帧类型、分辨率、码率、帧内编码块与帧间编码块的比值(即帧内帧间比例)等中的至少一种。通过将获取到的采样参数代入预先设置的采样函数中便可得到目标采样函数值。

根据采样参数确定下采样比例,就相当于根据采样参数来确定输入视频帧对应的分辨率信息。在一个实施例中,当前视频帧的分辨率与前序视频帧的分辨率成正相关,即前序视频帧的分辨率越大,当前视频帧的分辨率越大,相应的下采样比例应该越小。这是由于相邻视频帧之间的纹理和内容比较相似,编码难度也相似,所以分辨率也相似。

在另一个实施例中,当前视频帧的分辨率与前序视频帧的码率成反相关,即前序视频帧的码率越大,当前视频帧的分辨率越小,相应的选择较高的下采样比例。这是因为前序视频帧的码率高说明该帧的编码的难度高,当前帧与之相似,为了降低码率或者提高编码质量,此时应该采用分辨率较小的分辨率,即选择较高的下采样比例。

在一个实施例中,当前视频帧的分辨率与前序视频帧的帧内帧间比例成反相关,即前序视频帧的帧内帧间比例越大,当前视频帧的分辨率越小,下采样比例越大。这是由于前序视频帧的帧内帧间比例高说明该帧的帧间编码的难度高,说明该段视频序列局部的帧与帧之间相关性不高,则当前视频帧应该更多依赖帧内编码,而帧内编码可以选择分辨率低的编码,即下采样比例大。

在一个实施例中,当前视频帧的分辨率与前序视频帧的帧类型有关。如果前序视频帧的帧类型为i帧,则当前视频帧倾向于选择较大的下采样比例。如果前序视频帧的帧类型为p帧,则倾向于选择小一点的下采样比例,如果前序视频帧的帧类型为b帧,则倾向于选择更小一点的下采样比例。

目标采样函数值可以自定义设置,比如,在一个实施例中,采样参数为前序视频帧的分辨率信息,通过设置目标采样函数值与前序视频帧的分辨率信息成反相关,即前序视频帧的分辨率信息越大,目标采样函数值越小,然后设置目标采样函数值与下采样比例之间的对应关系,比如,目标采样函数值越小,对应的下采样比例越小。

步骤s504b,获取候选采样函数值与候选下采样比例之间的对应关系。

其中,预先设置采样函数值与下采样比例之间的对应关系,当计算得到目标采用函数值时,便可以直接获取对应的目标下采样比例。

在一个实施例中,采样参数包括:前序视频帧的分辨率、前序视频帧的码率、前序视频帧的帧内帧间比例。即采样函数是与前序视频帧的分辨率、前序视频帧的码率、前序视频帧的帧内帧间比例的函数,获取到前序视频帧的分辨率、前序视频帧的码率、前序视频帧的帧内帧间比例后,便可得到相应的目标采样函数值。

假设当前视频帧的分辨率与前序视频帧的分辨率成正相关,当前视频帧的分辨率与前序视频帧的码率成反相关,当前视频帧的分辨率与前序视频帧的帧内帧间比例成反相关。若设置采样函数值与下采样比例成正相关,即采样函数值越大,相应的下采样比例越大。那么前序视频帧的分辨率与采样函数值成反相关,前序视频帧的码率与采样函数值成正相关,前序视频帧的帧内帧间比例与采样函数值成正相关。在一个实施例中,可以设置采样函数f(s,b,r)=α*s*b/r,其中,s代表前序视频帧的帧内帧间比例、b代表前序视频帧的码率,r代表前序视频帧的分辨率,α为常数。然后设置目标采样函数值与下采样比例之间的对应关系,比如,将目标采样函数值在(0,t1]范围内时,设置下采样比例为2,设置目标采样函数值在(t1,t2)范围内时,其中,t2>t1>0,设置下采样比例为3等。通过设置采样函数,以及采样函数值与下采样比例之间的对应关系,后续根据采样函数中包含的采样参数即可计算得到目标采样函数,然后即可确定相应的目标下采样比例。

步骤s504c,根据候选采样函数值与候选下采样比例之间的对应关系,确定与目标采样函数值对应的目标下采样比例。

其中,目标下采样比例是指与计算得到的目标采样函数值对应的下采样比例,也是输入视频帧对应的下采样比例。后续根据目标下采样比例对输入视频帧进行采样得到待编码帧,然后对待编码帧进行编码得到编码数据。由于采样参数可以在解码端重现,所以在解码端根据同样的计算方法可以计算得到目标下采样比例,这样无需提前在编码端将下采样信息加入到编码数据,就能够实现自适应地选择下采样比例,然后根据下采样比例进行编码,提高了在带宽有限下的视频质量。

在一个实施例中,前序视频帧的编码信息包括:前序视频帧的分辨率信息;根据采样参数计算得到目标采样函数值包括:根据前序视频帧的分辨率信息计算得到目标采样函数值。

其中,当前序视频帧为一帧时,则前序视频帧的分辨率即是指该帧编码时采用的分辨率。如果前序视频帧为多帧时,则前序视频帧的分辨率可以是该多帧视频帧的分辨率的平均值。前序视频帧的分辨率可以在解码端重现,所以可以将前序视频帧的分辨率作为采样参数,并根据前序视频帧的分辨率信息计算得到目标采样函数值。在一个实施例中,由于相邻帧之间的纹理和内容比较相似,编码难度也相似,所以当前视频帧的分辨率与前序视频帧的分辨率成正相关,即前序视频帧的分辨率越大,当前视频帧的分辨率越大,相应的下采样比例越小。当目标采样函数值与下采样比例成反相关时,相应的,目标采样函数值与前序视频帧的分辨率成正相关。反之,当目标采样函数值与下采样比例成正相关时,相应的,目标采样函数值与前序视频帧的分辨率成反相关。

在一个实施例中,前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

其中,采样参数除了包括前序视频帧的分辨率信息外,还包括前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率等可以在解码端重现的参数中的至少一种。通过根据在解码端重现的参数得到下采样信息,不需要将下采样信息添加到编码数据中,在解码端也能够获取到相应的下采样信息,从而实现自适应地选择下采样信息,提高在带宽有限下的视频质量。

如图7所示,在一个实施例中,下采样信息包括:下采样方法;确定与输入视频帧对应的采样参数,根据采样参数确定输入视频帧对应的下采样信息,包括:

步骤s702,获取输入视频帧对应的当前应用。

其中,当前应用是指输入视频帧当前所属的应用程序。由于不同的应用对视频的需求不同,有的应用需求的是实时性,即对编码速度要求高,此时倾向于选择计算复杂度低的下采样方法。有的应用需求的视频清晰度,对实时性要求不高,此时倾向于选择计算复杂度高下采样方法。

步骤s704,获取候选应用与候选下采样方法之间的对应关系。

其中,预先针对不同的应用,设置候选应用与候选下采样方法之间的对应关系,通过获取输入视频帧对应的当前应用,来选择相应的下采样方法。举个例子,假设有三个不同的应用,分别为应用a,应用b,应用c,由于应用a要求编码速度快,所以预先为应用a设置对应的计算复杂度低的下采样方法1,应用b要求在保证编码质量的前提下,尽量提高速度,可以为应用b设置计算复杂度中等的下采样方法2,应用c不要求速度,只要求视频的清晰度,此时为应用b设置计算复杂度高的下采样方法3。

步骤s706,根据候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

其中,通过获取预先设置的候选应用与候选下采样方法之间的对应关系来确定与当前应用对应的目标下采样方法。目标下采样方法即是对输入视频帧进行下采样所使用的采样方法。通过采用合适的下采样方法对输入视频帧进行下采样,有利于在带宽有限的前提下,根据不同的应用选择最适合的下采样方法,有利于在提高编码速度的前提下,提高视频的编码质量。

如图8所示,在一个实施例中,下采样信息包括:下采样方法;确定与输入视频帧对应的采样参数,根据采样参数获取输入视频帧对应的下采样信息,包括:

步骤s802,获取输入视频帧对应的应用类型,当应用类型为实时性应用类型时,获取通信双方的硬件处理能力。

其中,应用类型分为实时性应用和非实时性应用。当应用类型为实时性应用类型时,比如,视频通话就属于实时性应用类型,此时获取到通信双方的硬件处理能力,即获取到编码端和解码端的硬件处理能力。硬件处理能力包括:cpu占用率、cpu核数、cpu内存、主频、系统类型、机型等中的至少一个。系统类型是指当前终端所采用的操作系统类型,比如,是ios系统,还是android系统,或者是windows系统等,在其他条件相同的情况下,不同系统所对应的处理能力也是不同的,所以可以将系统类型作为确定下采样比例的条件。cpu占用率、cpu核数、cpu内存、主频、机型等都是代表硬件处理能力的参数,一般来说,处理能力越强,越偏向于选择较低的下采样比例,即处理的分辨率越高。

步骤s804,根据通信双方的硬件处理能力确定对应的下采样方法。

其中,获取编码端和解码端的硬件处理能力,然后根据两者的硬件处理能力获取对应的采样方法。在一个实施例中,预先设置候选硬件处理能力与候选下采样方法之间的对应关系,获取到编码端和解码端的硬件处理能力后,就可以获取到对应的下采样方法。在另一个实施例中,根据通信双方的硬件处理能力计算得到能够承担的计算复杂度,然后根据计算复杂度来获取相应的下采样方法。为了保证通信双方对实时性的要求,综合通信双方的硬件处理能力,选择一种最为合适的下采样方法对输入视频帧进行处理,从而在保证视频质量的同时,提高视频编解码的速度。

在一个实施例中,下采样信息包括下采样比例;根据下采样信息对输入视频帧进行编码得到输入视频帧对应的编码数据,包括:根据下采样比例对输入视频帧进行处理得到待编码帧;获取待编码帧对应的当前参考帧;根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。

其中,根据下采样比例对输入视频帧进行下采样处理得到待编码帧。帧间编码帧在编码时需要根据参考帧进行编码,如果输入视频帧为帧间编码帧,还需要获取与待编码帧对应的当前参考帧,然后根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。

在一个实施例中,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据,包括:获取待编码帧对应的下采样比例,根据下采样比例对当前参考帧进行处理得到目标参考帧;根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。

其中,为了能够更好地参考编码,将参考帧与待编码帧的分辨率处理为一致。在获取待编码帧对应的下采样比例后,根据下采样比例对当前参考帧进行采样处理。其中,在已知输入视频帧的原始分辨率和下采样比例的情况下,显然可以得到待编码帧的分辨率信息。当当前参考帧的分辨率小于待编码帧的分辨率时,则对当前参考帧进行上采样得到目标参考帧。当当前参考帧的分辨率大于待编码帧的分辨率时,需要对当前参考帧进行下采样得到目标参考帧,然后根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。

在一个实施例中,下采样信息还包括下采样方法;根据下采样比例对输入视频帧进行处理得到待编码帧,包括:根据下采样比例采用下采样方法对输入视频帧进行下采样处理得到待编码帧。

其中,为了减少编码的数据量,提高编码速度,在编码之前需要对输入视频帧进行下采样处理,在对输入视频帧进行下采样之前,首先获取对应的下采样比例,根据下采样比例对输入视频帧进行下采样得到待编码帧,同时,对输入视频帧进行下采样还需要确定相应的下采样方法,然后根据下采样方法对输入视频帧进行下采样处理得到待解码帧。

如图9所示,在一个实施例中,提出了一种视频编码方法,包括以下步骤:

步骤s902,获取输入视频帧。

步骤s904,获取输入视频帧对应的处理方式,当处理方式为下采样处理方式时,进入步骤s906,若处理方式为全分辨率处理方式时,直接将输入视频帧作为待编码帧,进入步骤s910。

其中,输入视频帧对应的处理方式是从候选的处理方式中选取的,候选的处理方式可以是全分辨率处理方式以及下采样处理方式。得到输入视频帧对应的处理方式的方法可以根据实际需要设置。例如,可以是获取输入视频帧对应的处理参数,根据处理参数得到对应的处理方式。处理参数是用于确定处理方式的参数,具体采用的处理参数可以根据需要进行设置。例如处理参数可以包括输入视频帧对应的当前编码信息以及图像特征的至少一种。

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

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

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

步骤s906,获取与输入视频帧对应的采样参数,采样参数在解码过程中重现,根据采样参数确定输入视频帧对应的下采样信息。

步骤s908,根据下采样信息对输入视频帧进行处理得到待编码帧。

其中,待编码帧是根据下采样信息对输入视频帧进行处理得到的。当处理方式包括下采样处理方式时,则可以根据下采样信息对输入视频帧进行下采样处理,得到待编码帧。例如,当输入视频帧的分辨率为800*800像素,处理方式为水平以及垂直方向均进行2/1下采样时,下采样得到的待编码帧的分辨率为400*400像素。

步骤s910,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。

其中,编码可以包括预测、变换、量化以及熵编码中的至少一个。当待编码帧为i帧时,在待编码帧的分辨率下对待编码帧进行帧内预测。当待编码帧为p帧以及b帧时,可以获取待编码帧对应的当前参考帧,根据当前参考帧进行预测得到预测残差,并对预测残差进行变换、量化以及熵编码得到输入视频帧对应的编码数据,其中,得到编码数据的过程中,根据待编码帧的分辨率对当前参考帧、待编码帧的各个编码块对应的位置信息、当前参考帧的各个参考块对应的位置信息以及运动矢量中的至少一个进行处理。例如,在计算预测残差时,可以根据待编码帧的分辨率信息对当前参考帧进行处理,得到目标参考帧,从目标参考帧中获取待编码帧中各个编码块对应的目标参考块,根据目标参考块进行预测,得到编码块对应的预测值,再根据编码块的实际值与预测值的差值得到预测残差。计算目标运动矢量时,如果当前参考帧的分辨率与待编码帧的分辨率不同,可以根据当前参考帧与待编码帧的分辨率信息对编码块的位置信息或者解码块的位置信息进行变换,使得待编码帧对应的位置信息与当前参考帧的位置信息处于同一量化尺度下,再根据变换后的位置信息得到目标运动矢量,以减少目标运动矢量的值,减少编码数据的数据量。或者,如果目标运动矢量对应的分辨率信息与待编码帧的分辨率信息不同,则在待编码帧的分辨率下,计算得到待编码帧的编码块对应的第一运动矢量时,根据待编码帧的分辨率信息以及目标运动矢量单位辨率信息对第一运动矢量进行变换,得到目标分辨率下的目标运动矢量。例如,假设待编码帧的分辨率为400*800像素,当前参考帧的分辨率为800*1600像素。则可以根据待编码帧的分辨率对当前参考帧进行2/1下采样,得到目标参考帧的分辨率为400*800像素,再根据目标参考帧进行视频编码。

本实施例中,在获取到处理方式为下采样处理方式时,还需要获取下采样信息,下采样信息是根据采样参数确定的,然后根据下采样信息对输入视频帧进行处理得到待编码帧,在待编码帧的分辨率下,对待编码帧进行编码得到编码数据。通过灵活地选择处理方式以及下采样信息,可以自适应地调整输入视频帧的分辨率以及调整待编码数据的数据量,在有限带宽下,提高了视频质量。

在一个实施例中,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。

其中,处理方式信息用于描述输入视频帧是采用的处理方式,可以在编码数据中加入描述处理方式的标志位frame_resolution_flag,即在编码数据中加入描述处理方式信息的语法元素。各个处理方式对应的标志位的值可以根据需要设置。例如,当处理方式为全分辨率处理方式时,对应的frame_resolution_flag可以为0,当处理方式为下采样处理方式时,对应的frame_resolution_flag可以为1。在一个实施例中,处理方式信息添加至编码数据对应的帧级头信息中,例如可以添加到帧级头信息的预设位置中,帧级头信息是输入视频帧对应的编码数据的头信息,序列级头信息是指视频序列对应的编码数据的头信息,组级头信息是指视频组(gop,groupsofpicture)对应的编码数据的头信息。一个视频帧序列可以包括多个视频组,一个视频组可以包括多个视频帧。图10中虚线所指的方框表示各个输入视频帧对应的编码数据的帧级头信息,frame分别代表第1个、第2个以及第n个视频帧对应的编码数据。其中,图10中,第一个输入视频帧以及第二个输入视频帧对应的处理方式为全分辨率处理方式,第三个输入视频帧对应的处理方式为下采样处理方式。

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

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

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

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

在一个实施例中,如图11所示,步骤s910即在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:

步骤s910a,获取待编码帧对应的当前参考帧。

其中,当前参考帧是对待编码帧进行编码时所需参考的视频帧,当前参考帧是待编码帧之前已编码得到的数据进行重建得到的视频帧。待编码帧对应的当前参考帧的个数可为一个或多个。例如当待编码帧为p帧,则对应的参考帧可以为1个。当待编码帧为b帧,则对应的参考帧可以为2个。待编码帧对应的参考帧可以是根据参考关系得到的,参考关系根据各个视频编解码标准确定。例如,对于一个视频图像组(gop、groupofpicture)中的第二个视频帧假设为b帧,其对应的参考帧可以是该视频组的i帧以及视频组的第3帧,也可以是第1帧和第4帧,具体可以自定义设置。

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

其中,第一参考规则确定了待编码帧与当前参考帧的分辨率大小限制关系,分辨率大小关系包括待编码帧与当前参考帧的分辨率相同以及不同的至少一种。当第一参考规则包括待编码帧与当前参考帧的分辨率相同时,第一参考规则还可以包括待编码帧与当前参考帧的分辨率的处理方式参考规则。例如处理方式参考规则可以包括全分辨处理方式的待编码帧可以参考全分辨率处理方式的参考帧以及下采样处理方式的待编码帧可以参考下采样处理方式的参考帧的一种或两种。当第一参考规则包括待编码帧与参考帧的分辨率不相同时,第一参考规则还可以包括待编码帧的分辨率大于参考帧的分辨率以及待编码帧的分辨率小于参考帧的分辨率的一种或两种。因此,在一个实施例中,第一参考规则具体可以包括原始分辨率待编码帧可以参考下采样分辨率参考帧、下采样分辨率待编码帧可以参考原始分辨率参考帧、原始分辨率待编码帧可以参考原始分辨率参考帧、以及下采样分辨率待编码帧可以参考下采样分辨率的参考帧中的一种或多种。其中原始分辨率待编码帧是指该待编码帧的分辨率与其对应的输入视频帧的分辨率相同,原始分辨率参考帧是指该参考帧的分辨率与其对应的输入视频帧的分辨率相同。下采样分辨率待编码帧是指该待编码帧是对应的输入视频帧进行下采样处理得到的。下采样分辨率参考帧是指该参考帧是对应的输入视频帧进行下采样处理得到的。得到第一参考规则后,根据第一参考规则获取待编码帧对应的当前参考帧,使得到的当前参考帧满足第一参考规则。

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

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

步骤s910b,在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。

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

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

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

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

在一个实施例中,如图12所示,步骤s910b即根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:

步骤s1202,根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧。

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

分像素插值是通过当前参考帧中整像素的参考数据插值得到分像素级别的参考数据的过程。比如,如图13a、13b所示,为一个实施例中对当前参考帧进行插值的示意图。参照图13a,a1、a2、a3、b1、b2、b3等像素点为当前参考帧中的2*2整像素点,根据这些整像素点的参考数据计算得到分像素点的参考数据,比如,可根据a1、a2、a3三个整像素点的参考数据取平均值计算得到分像素点a23的参考数据,根据a2、b2、c2三个整像素点的参考数据取平均值计算得到分像素点a21的参考数据,再根据分像素点a23、a21的参考数据计算得到分像素点a22的参考数据,实现对当前参考帧进行1/2像素精度插值。参照图13b,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,那么就确定对当前参考帧以宽1/2、高1的采样比例进行上采样处理,得到与待编码帧分辨率相同的帧。若通过对当前输入视频帧按照下采样处理方式进行处理,下采样后得到的待编码帧的分辨率为m*n,而对可作为参考帧的输入视频帧按照全分辨率处理方式进行处理,那么重建后得到的当前参考帧的分辨率为2m*2n,则确定对当前参考帧以宽、高均为2/1的采样比例进行下采样处理,得到与待编码帧分辨率相同的帧。

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

在一个实施例中,对当前参考帧进行采样的采样方法与对输入视频帧进行下采样得到待编码帧的采样算法匹配,即如果需要对当前参考帧进行下采样,则下采样算法与对待编码视频帧进行下采样得到待编码帧的下采样算法相同。如果需要对当前参考帧进行上采样,则上采样算法与对输入视频帧进行下采样得到当前待编码帧的下采样算法匹配的相反的采样算法。

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

步骤s1204,根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。

其中,得到目标参考帧后,从目标参考帧中搜索得到与编码块相似的图像块作为参考块,计算编码块与参考块的像素差值得到预测残差。根据编码块与对应的目标参考块的位移得到第一运动矢量。根据第一运动矢量以及预测残差得到编码数据。

在一个实施例中,可以根据目标运动矢量分辨率单位信息对第一运动矢量进行变换,得到在目标分辨率下的目标运动矢量,根据目标运动矢量以及预测残差得生成编码数据。其中,根据目标运动矢量分辨率单位信息对第一运动矢量进行变换,得到目标运动矢量的方法在后面描述。

在一个实施例中,也可以计算目标运动矢量和对应的预测运动矢量之间的矢量差值,对矢量差值进行编码,得到编码数据,进一步减少编码数据量。计算矢量差值的步骤可以包括:获取当前编码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量;根据目标运动矢量和目标预测运动矢量得到运动矢量差。其中,目标预测运动矢量是在目标分辨率下的运动矢量,计算矢量差值的方法在后面描述。

在一个实施例中,步骤s1202根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。

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

其中,可获取当前参考帧的分辨率信息,根据待编码帧采用的分像素插值方式,以及待编码帧的分辨率信息、当前参考帧的分辨率信息以及待编码帧对应的运动估计像素精度确定对当前参考帧进行何种采样处理方法、采样处理对应的采样比例以及像素插值精度。运动估计像素精度的大小可以根据需要设置,例如一般为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(全分辨率处理方式),则对当前参考帧按照2/1的采样比例进行下采样处理得到分辨率为m*n的中间参考帧,若获取的待编码帧对应的运动估计像素精度为1/2,再对中间参考帧按照与运动估计像素精度相同的像素插值精度,即1/2分像素插值精度进行分像素插值处理,得到目标参考帧;若获取的待编码帧对应的运动估计像素精度为1/4,则对中间参考帧按照1/4分像素插值精度进行分像素插值处理,得到目标参考帧。

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

步骤s910b在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息,根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。

其中,第一矢量变换参数用于对得到运动矢量的位置信息或者运动矢量进行变换。分辨率信息是与分辨率相关的信息,例如可以是分辨率本身或者下采样比例等。第一矢量变换参数可以是待编码帧的分辨率信息和第一分辨率信息之间的比例。例如,假设当前参考帧的下采样比例为3/1,待编码帧的下采样比例为6/1。则第一矢量变换参数可以为6除以3等于2。

在一个实施例中,得到第一矢量变换参数后,根据第一矢量变换参数对得到的运动矢量或者运动矢量对应的位置信息进行变换,得到目标运动矢量。当利用第一矢量变换参数对目标运动矢量进行变换时,使得目标运动矢量是在目标运动矢量单位分辨率信息所表示的目标分辨率下的运动矢量,目标运动矢量单位分辨率信息与目标运动矢量的单位所对应的目标分辨率对应的信息,例如可以是目标分辨率本身或者下采样比例。当利用第一矢量变换参数对运动矢量对应的位置信息进行变换时,使得待编码帧对应的位置信息与当前参考帧的位置信息处于同一量化尺度下,根据变换后的位置信息得到第二运动矢量,将第二运动矢量变换为目标分辨下的目标运动矢量。

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

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

在一个实施例中,可以利用第一矢量变换参数对第一位置信息进行变换,得到对应的第一变换位置信息,根据第一变换位置信息与第二位置信息的差值得到目标运动矢量。或者可以利用第一矢量变换参数对第二位置信息进行变换,得到对应的第二变换位置信息,根据第一位置信息与第二位变换置信息的差值得到目标运动矢量。

在一个实施例中,第一矢量变换参数是待编码帧的分辨率与当前参考帧的分辨率信息中,大分辨率信息除以小分辨率信息得到的比例,其中,大分辨率信息对应的分辨率比小分辨率对应的分辨率大。第一矢量变换参数用于与待编码帧与当前参考帧中小分辨率信息的帧的位置信息进行变换。例如,待编码帧的分辨率为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)。

本发明实施例中,通过第一矢量变换参数对位置信息进行变换,使得得到的位置信息处于同一量化尺度下,可以降低目标运动矢量的值,减少编码数据的数据量。例如,如图14所示,当前参考帧的分辨率为待编码帧的分辨率的2倍,当前编码块为像素(1、1)、(1、2)、(2、1)以及(2、2)组成的,对应的目标参考块为像素(4、2)、(4、3)、(5、2)以及(5、3)组成的,如果不进行变换,则目标运动矢量为(-3,-1),而如果在计算目标运动矢量时,将待编码帧中对应的位置信息乘以2,再计算目标运动矢量,则目标运动矢量为(-2,0),比(-3,-1)小。

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

其中,目标运动矢量单位分辨率信息是指与目标运动矢量的单位对应的目标分辨率对应的信息,例如可以是目标分辨率或者对应的下采样比例。目标运动矢量是以该分辨率下的矢量单位为标准计算的。由于输入视频序列的对应的各个待编码帧可能有一些分辨率与输入视频帧的原始分辨率相同,而另一些待编码帧的分辨率比输入视频帧的原始分辨率小,即视频序列中待编码帧的分辨率有多种,因此需要确定目标运动矢量的单位对应的分辨率。目标运动矢量的单位对应的分辨率可以是在编码前已经设定或者根据编码过程的参数得到,具体可以根据需要进行设置。

第一运动矢量是根据当前编码块与对应的目标参考块的位移得到的,目标参考块可以是从当前参考帧中获取的,也可以从对当前参考帧进行处理后得到的目标参考帧中获取的,当得到第一运动矢量后,可以将第一矢量变换参数以及第一运动矢量相乘,将得到的乘积作为目标运动矢量。比如,假设目标运动矢量单位对应的分辨率是原始分辨率,而待编码帧对应的下采样比例为2/1。由于目标运动矢量单位是原始分辨率,而第一运动矢量是在待编码帧的分辨率下计算得到的,因此需要对第一运动矢量进行变换,第一矢量变换参数等于2,当得到的第一运动矢量为(2,2,),则目标运动矢量为(4,4)。得到目标运动矢量后,可以根据目标运动矢量进行编码,例如可以对目标运动矢量以及当前编码块对应的预测残差进行编码,得到编码数据。

在一个实施例中,当目标参考块是从当前参考帧中获取的,可以理解,对于同一编码块,第一运动矢量可等于第二运动矢量。

在一个实施例中,目标运动矢量的单位对应的分辨率可以是输入视频帧对应的分辨率,即原始分辨率,或者目标运动矢量的单位对应的分辨率可以是待编码帧对应的分辨率。第一矢量变换参数可以是目标运动矢量单位对应的分辨率信息与待编码帧的分辨率信息的比例。例如,假设目标运动矢量单位对应的分辨率是原始分辨率,目标运动矢量单位对应的采样比例为1,待编码帧的分辨率的采样比例为2/1,则,第一矢量变换参数可以为2除以1等于2。或者,假设目标运动矢量单位对应的分辨率是原始分辨率,为900*900像素,目待编码帧的分辨率的采样比例为450*600像素,第一矢量变换参数可以包括两个,水平方向的第一矢量变换参数以及垂直方向的第一矢量变换参数。则水平方向的第一矢量变换参数为900/450=2,垂直方向的第一矢量变换参数为900/600=1.5。

在一个实施例中,可以根据进行编码的设备的计算能力得到目标运动矢量单位分辨率信息,例如,当进行编码的设备只能对整数进行运算或者当数值为小数时运算耗时长,则目标运动矢量单位对应的分辨率可以为输入视频帧对应的原始分辨率,当进行编码的设备能够快速进行小数的运算,目标运动矢量单位对应的分辨率可以为待编码帧对应的分辨率。

在一个实施例中,当待编码帧的分辨率信息和目标运动矢量单位分辨率信息一致时,第一矢量变换参数为1,第一运动矢量与目标运动矢量相同,因此,可以跳过步骤9802,将第一运动矢量作为目标运动矢量。当待编码帧的分辨率信息和目标运动矢量单位分辨率信息不一致时,则执行步骤s902。

本发明实施例中,当目标运动矢量的单位对应的分辨率为输入视频帧对应的分辨率,即原始分辨率,对于分辨率统一的视频序列,各个输入视频帧对应目标分辨率是一致的,可以保持目标运动矢量的统一性。当目标运动矢量的单位对应的分辨率为待编码视频帧对应的分辨率时,由于待编码帧的分辨率信息和目标运动矢量单位分辨率信息一致,因此不需要需对第一运动矢量进行变换,可以减少计算时间。

在一个实施例中,可以将表示目标运动矢量单位分辨率信息的标识信息添加至编码数据中,使解码端可以获取得到目标运动矢量对应的目标分辨率。如果不携带标识信息,则编码端与解码端可以约定目标运动矢量对应的目标分辨率。该标识信息用于表示目标运动矢量所对应的分辨率信息。标识信息在编码数据的添加位置可以是组级头信息、序列级头信息帧级头信息以及块级头信息中的一个或多个,其中块级头信息是指编码块对应的编码数据的头信息。标识信息在编码数据的添加位置可以根据目标运动矢量单位分辨率信息的作用范围确定。例如,若视频序列中矢量单位对应的分辨率一致,则添加位置可以是序列级头信息。具体的标志位的值所代表的分辨率信息可以根据需要设置。例如,当目标运动矢量单位分辨率信息对应的分辨率为原始分辨率时,对应的标志位mv_scale_adaptive为0,当目标运动矢量单位分辨率信息对应的分辨率为待编码帧对应的分辨率时,对应的标志位mv_scale_adaptive为1。

在一个实施例,如图15所示,步骤s910即根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:

步骤s1502,获取当前编码块对应的初始预测运动矢量。

其中,为了降低用于编码数据的比特数,可以对当前编码块的运动矢量进行预测,得到预测值,计算目标运动矢量与预测值的差值,得到运动矢量差值,对运动矢量差值进行编码。初始预测运动矢量用于对当前编码块的运动矢量进行预测。初始预测运动矢量的数量可以为一个或多个,具体可以根据需要进行设置。初始预测运动矢量的获取规则可以根据需要进行设置,由于当前编码块与其相邻编码块的往往具有空间相关性,因此可以将当前编码块对应的一个或多个相邻已编码块的对应的目标运动矢量值作为初始预测运动矢量。例如,可以将当前编码块中右上角以及左上角的相邻已编码块对应的第一运动矢量值作为初始预测运动矢量。或者,可以将当前编码块对应的目标参考块所对应的目标参考块的运动矢量值作为初始预测运动矢量。

步骤s1504,根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数。

其中,当前运动矢量单位分辨率信息是指与初始预测运动矢量的单位对应的当前分辨率对应的信息,例如可以是当前分辨率或者下采样比例。初始预测运动矢量的单位对应的分辨率是指该初始预测运动矢量的单位是以当前分辨率下的矢量单位为标准计算的,即是当前分辨率下的运动矢量。当初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息不同,则需要根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息得到第二矢量变换系数。第二矢量变换参数用于将初始预测运动矢量变换为目标分辨率下的运动矢量,第二矢量变换参数可以是目标运动矢量单位对应的分辨率信息与当前运动矢量单位分辨率信息的比例。例如,假设目标运动矢量单位对应的分辨率是200*200像素,当前运动矢量单位分辨率信息是100*100像素,则第一矢量变换参数可以是2。

步骤s1506,根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量。

其中,得到第二矢量变换参数后,根据初始预测运动矢量与第二矢量变换系数进行运算,得到目标预测运动矢量,目标预测运动矢量是目标分辨率下的预测运动矢量。例如,当初始预测运动矢量为一个时,可以将初始预测运动矢量与第二矢量变换系数的乘积作为目标预测运动矢量。当初始预测运动矢量为多个时,可以对初始预测运动矢量进行计算,得到计算结果,根据计算结果与第二矢量变换系数得到目标运动矢量。计算结果可以是初始预测运动矢量中的最小值、平均值以及中位数值中的一种或多种。可以理解,根据初始预测运动矢量和第二矢量变换系数得到目标预测运动矢量的算法可以自定义,在解码端可以利用一致的自定义的算法计算得到相同的目标预测运动矢量。

步骤s1508,根据目标运动矢量和目标预测运动矢量得到运动矢量差。

其中,将运动目标矢量与目标预测运动矢量的差值作为运动矢量差,以根据运动矢量差进行编码,得到编码数据,减少编码数据的数据量。

本发明实施例中,通过对初始预测运动矢量进行变换,得到在目标分辨率下的目标预测运动矢量,使目标预测运动矢量以及目标运动矢量的单位是在匹配的量化尺度下的,因此得到的运动矢量差值小,减少了编码数据的数据量。

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

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

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

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

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

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

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

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

在一个实施例中,如图16所示,获取输入视频帧之前,视频编码方法还包括:

步骤s1602,获取输入视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式。

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

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

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

步骤s1604,判断目标视频序列编码模式是否为混合分辨率编码模式。

如果是,进入步骤s902,如果否,进入步骤s1606。

步骤s1606,对输入视频序列的各个输入视频帧进行恒定分辨率编码。

其中,当视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个输入视频帧进行恒定分辨率编码。

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

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

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

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

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

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

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

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

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

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

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

如图18所示,在一个实施例中,提出了一种视频解码方法,该方法包括:

步骤s1802,获取待解码视频帧对应的编码数据。

其中,待解码视频帧是需要进行解码的视频帧。编码数据是指编码后得到的数据。解码端获取待解码视频帧对应的编码数据,通过对编码数据进行解码得到解码视频帧。一个待解码视频序列可以包括多个待解码视频帧。待解码视频帧可以是实时获取的视频帧,也可以是预先存储的待解码视频序列中获取的视频帧。

步骤s1804,当确定待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致。

其中,采样参数是用来确定下采样信息的参数,采样参数与编码过程中对应的采样参数保持一致,即解码端获取到的采样参数是与编码端一样的采样参数,从而便能够确定与编码端一致的下采样信息。具体采用的采样参数可以根据需要自定义设置,只需要保证在编码端和解码端能够获取到同样的采样参数,例如,采样参数可以包括前序视频帧或输入视频帧的帧类型、也可以包括前序视频帧的已编码信息等在解码端能够重现的采样参数。采样参数在解码过程中能够重现的信息都是在码流中存在的信息或者是能够通过码流中编码的信息推导的信息,但是一些编码端进行多次尝试和搜索过程都是非最优选择,则并不会在解码端重现,这样的信息就认为不能在解码过程中能够重现。

目标处理方式是从候选的处理方式中选取的其中一种,候选的处理方式可以是但不限于全分辨率处理方式或者下采样处理方式。目标处理方式可以是在编码数据中直接读取的处理方式,也可以是根据解码端获取处理参数,然后根据处理参数得到的处理方式。

步骤s1806,根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

其中,获取到下采样信息后,根据下采样信息对编码数据进行解码,得到对应的解码视频帧。如果下采样信息中包括有下采样比例,那么采用与下采样比例对应的上采样比例对编码数据进行解码得到对应的解码视频帧。如果下采样信息中包括下采样方法,则采用与下采样方法对应的上采样方法对编码数据进行解码得到对应的解码视频帧。其中,上采样方法和下采样方法采用的采样方法可以相同,也可以不同,比如,可以都采用双线性插值的采样方法,也可以一个采用双线性插值的采样方法,一个采用cnn的采样方法。

上述视频解码方法,通过获取待解码视频帧对应的编码数据,当确定目标处理方式为下采样处理方式时,通过获取待解码视频帧对应的采样参数确定与待解码视频帧对应的下采样信息,采样参数与编码过程中的对应的采样参数保持一致。通过从编码数据中获取与待解码视频帧对应的下采样信息,然后根据下采样信息进行解码,提供了对自适应的选择下采样信息进行编码得到的编码数据的解码支持。

在一个实施例中,所述获取所述待解码视频帧对应的采样参数,包括:当所述采样参数为解码端接收到的编码数据;和/或根据所述解码端接收到的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

其中,解码视频帧对应的采样参数可以是但不限于,解码视频帧对应的第一编码数据,和/或解码视频帧之前的前序视频帧对应的第二编码数据,和/或根据第一编码数据和/或第二编码数据得到的处理数据,和/或解码视频帧之前的重建视频帧对应的图像特征。其中,图像特征是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。具体地,当解码视频帧对应的采样参数为解码视频帧对应的第一编码数据时,确定解码视频帧对应的采样参数为在解码过程中重现的参数,和/或当解码视频帧对应的采样参数为解码视频帧之前的前序视频帧对应的第二编码数据时,确定解码视频帧对应的采样参数为在解码过程中重现的参数,和/或当解码视频帧对应的采样参数为根据第一编码数据和/或第二编码数据得到的处理数据时,确定解码视频帧对应的采样参数为在解码过程中重现的参数,和/或当解码视频帧之前的重建视频帧对应的图像特征时,确定解码视频帧对应的采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述待解码视频帧的帧类型、与所述待解码视频帧对应的前序视频帧的编码信息中的至少一种;所述根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

其中,目标采样函数值是指通过将采样参数代入预先设置的采样函数中计算得到的函数值。解码端的采样函数与编码端的采样函数相同,且选取的采样参数与编码端中选取的采样参数一致。

前序视频帧是指在当前待解码视频帧之前已编码的视频帧,与当前待解码视频帧对应的前序视频帧可以自定义选择,前序视频帧可以是一帧,也可以是多帧,但是需要与编码端中选取的前序视频帧保持一致。

采样参数包括待解码视频帧的帧信息、待解码视频帧对应的前序视频帧的编码信息中的至少一种。其中,帧信息包括:帧类型、图像特征信息等中的至少一种。图像特征信息是指视频帧对应的图像本身的特征,包括运动特征和纹理复杂度特征等。编码信息包括:帧类型、分辨率、码率、帧内编码块与帧间编码块的比值(即帧内帧间比例)等中的至少一种。通过将获取到的采样参数代入预先设置的采样函数中便可得到目标采样函数值。通过预先设置的采样函数值与下采样比例之间的对应关系,便可以根据计算得到目标采样函数值获取对应的目标下采样比例。后续根据目标下采样比例对应的目标上采样比例对待解码视频帧进行解码得到解码视频帧。目标下采样比例与目标上采样比例互为倒数。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述根据所述采样参数计算得到目标采样函数值包括:根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

其中,当前序视频帧为一帧时,则前序视频帧的分辨率即是指该帧编码时采用的分辨率。如果前序视频帧为多帧时,则前序视频帧的分辨率可以是该多帧视频帧的分辨率的平均值。前序视频帧的分辨率可以在解码端重现,所以解码端同样将前序视频帧的分辨率作为采样参数,并根据前序视频帧的分辨率信息计算得到目标采样函数值。在一个实施例中,由于相邻帧之间的纹理和内容比较相似,编码难度也相似,所以待解码视频帧的分辨率与前序视频帧的分辨率成正相关,即前序视频帧的分辨率越大,待解码视频帧的分辨率越大,相应的下采样比例越小。当目标采样函数值与下采样比例成反相关时,相应的,目标采样函数值与前序视频帧的分辨率成正相关。反之,当目标采样函数值与下采样比例成正相关时,相应的,目标采样函数值与前序视频帧的分辨率成反相关。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

其中,采样参数除了包括前序视频帧的分辨率信息外,还包括前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率等可以在解码端重现的参数中的至少一种。通过根据在解码端重现的参数得到下采样信息,不需要将下采样信息添加到编码数据中,在解码端也能够获取到相应的下采样信息,从而实现自适应地选择下采样信息,提高在带宽有限下的视频质量。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:获取所述待解码视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

其中,当前应用是指待解码视频帧当前所属的应用程序。由于不同的应用对视频的需求不同,有的应用需求的是实时性,即对编码速度要求高,此时倾向于选择计算复杂度低的下采样方法。有的应用需求的视频清晰度,对实时性要求不高,此时倾向于选择计算复杂度高下采样方法。待解码视频帧对应的应用程序与编码端在编码时输入视频帧对应的应用程序是相同的,所以根据待解码视频帧当前所属的应用程序就可以获取编码端所使用的下采样方法,然后根据下采样方法对应的上采样方法对解码视频帧进行解码,得到解码视频帧,上采样方法和下采样方法可以相同,也可以不同,但是下采样方法和上采样方法的对应关系是提前设置的。

通过获取预先设置的候选应用与候选下采样方法之间的对应关系来确定与当前应用对应的目标下采样方法。目标下采样方法即是编码端对输入视频帧进行下采样所使用的采样方法。后续根据目标下采样方法对应的目标上采样方法对待解码视频帧进行解码得到解码视频帧。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:获取所述待解码视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

其中,应用类型分为实时性应用和非实时性应用。当应用类型为实时性应用类型时,比如,视频通话就属于实时性应用类型,此时获取到通信双方的硬件处理能力,即获取到编码端和解码端的硬件处理能力。硬件处理能力包括:cpu占用率、cpu核数、cpu内存、主频、系统类型、机型等中的至少一个。系统类型是指当前终端所采用的操作系统类型,比如,是ios系统,还是android系统,或者是windows系统等,在其他条件相同的情况下,不同系统所对应的处理能力也是不同的,所以可以将系统类型作为确定下采样比例的条件。cpu占用率、cpu核数、cpu内存、主频、机型等都是代表硬件处理能力的参数,一般来说,处理能力越强,越偏向于选择较低的下采样比例,即处理的分辨率越高。在一个实施例中,预先设置候选硬件处理能力与候选下采样方法之间的对应关系,获取到编码端和解码端的硬件处理能力后,就可以获取到对应的下采样方法。在另一个实施例中,根据通信双方的硬件处理能力计算得到能够承担的计算复杂度,然后根据计算复杂度来获取相应的下采样方法。为了保证通信双方对实时性的要求,综合通信双方的硬件处理能力,选择一种最为合适的下采样方法对输入视频帧进行处理,从而在保证视频质量的同时,提高视频编解码的速度。

在一个实施例中,所述下采样信息包括:下采样比例;所述根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧,包括:根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧;根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧。

其中,下采样信息中包括下采样比例。对重建视频帧进行上采样所选择的上采样比例与编码端的下采样比例互为倒数。首先,根据下采样比例对编码数据进行解码得到重建视频帧,由于重建视频帧的分辨率比较低,需要对重建视频帧进行上采样得到最终的解码视频帧。

在一个实施例中,所述根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧,包括:获取所述待解码视频帧对应的当前参考帧;根据所述待解码视频帧对应的下采样比例确定与所述待解码视频帧对应的分辨率信息;根据所述分辨率信息对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧。

其中,在进行编码时,需要根据参考帧进行编码,同样地,在解码时,也需要依据参考帧进行解码。获取待解码视频帧对应的当前参考帧,根据下采样比例确定当前参考帧所对应的分辨率信息,然后根据分辨率信息对当前参考帧进行采样(上采样或下采样)得到与待解码视频帧具有相同分辨率信息的目标参考帧,然后根据目标参考帧对编码数据进行解码得到重建视频帧,继而对重建视频帧根据下采样比例对应的上采样比例进行上采样处理即可得到解码视频帧。

在一个实施例中,所述下采样信息还包括:下采样方法;所述根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧,包括:根据所述下采样比例对应的上采样比例,采用与所述下采样方法对应的上采样方法对所述重建视频帧进行上采样处理得到解码视频帧。

其中,对编码数据对解码得到重建视频帧后,根据获取到的下采样方法获取与之匹配的上采样方法,然后采用上采样方法根据下采样比例对应的上采样比例对重建视频帧进行上采样处理得到解码视频帧。

如图19所示,在一个实施例中,提出了一种视频解码方法,具体包括以下步骤:

步骤s1902,获取待解码视频帧对应的编码数据。

步骤s1904,确定待解码视频帧对应的目标处理方式,当目标处理方式为下采样处理方式时,进入步骤s1905,当目标处理方式为全分辨率处理方式时,进入步骤s1910。

步骤s1905,获取待解码视频帧对应的采样参数,根据采样参数确定待解码视频帧对应的下采样信息,所述下采样信息包括:下采样比例,所述采样参数与编码过程中对应的采样参数保持一致,根据下采样比例确定待解码视频帧对应的分辨率信息。

步骤s1906,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧。

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

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

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

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

其中,将运动矢量差值和初始预测运动矢量都变换到相同分辨率下对应的运动矢量。例如可以将初始预测运动矢量变换为目标分辨率下的目标预测运动矢量,根据目标预测运动矢量以及运动矢量差值得到目标运动矢量,再将目标运动矢量变换到待解码视频帧的分辨率下的第一运动矢量。也可以将初始预测运动矢量变换为待解码视频帧的分辨率下的预测运动矢量,将运动矢量差值变换到待解码视频帧的分辨率下的运动矢量差值,根据待解码视频帧的分辨率下的运动矢量差值以及待解码视频帧的分辨率下的预测运动矢量得到第一运动矢量。

步骤s1908,根据待解码视频帧对应的下采样信息对重建视频帧进行处理,得到对应的解码视频帧。

其中,对重建视频帧进行处理可以是采样处理,例如为上采样处理。对重建视频帧进行处理的方法与编码中对输入视频帧的处理方法可以是相对应的。例如,当输入视频帧的处理方式是下采样处理方式时,且下采样比例是2/1,则对重建视频帧进行上采样处理,上采样比例可以是1/2。

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

步骤s1910,获取待解码视频帧的原始分辨率信息,根据待解码视频帧的原始分辨率信息进行解码,得到对应的解码视频帧。

其中,当目标处理方式为全分辨率处理方式时,直接根据待解码视频帧的原始分辨率信息进行解码,得到解码视频帧。

上述视频解码方法,获取待解码视频帧对应的编码数据,获取待解码视频帧对应的分辨率信息和采样方法,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧,根据待解码视频帧对应的分辨率信息和采样方法对重建视频帧进行处理,得到对应的解码视频帧。因此进行解码时,可以灵活地根据待解码视频帧对应的分辨率信息和采样方法进行解码,得到解码视频帧,在有限带宽下提高了视频解码得到的视频质量。

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

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

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

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

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

在一个实施例中,可以从当前参考帧中获取与待解码视频帧的待解码块对应的参考块,根据参考块对待解码块进行解码。也可以根据待解码视频帧的分辨率信息对当前参考帧进行处理,得到对应的目标参考帧,从目标参考帧中获取与待解码视频帧的待解码块对应的目标参考块,根据目标参考块对编码块进行解码,待解码视频帧对应的重建视频帧。

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

其中,根据携带的运动矢量信息从目标参考帧中获取目标参考块,根据目标参考块得到待解码块对应的预测值,并根据编码数据中的预测残差与预测值得到重建视频帧。

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

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

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

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

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

如图20所示,在一个实施例中,步骤s1906b即根据待解码视频帧对应的分辨率信息以及当前参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧包括:

步骤s2002,根据待解码视频帧对应的分辨率信息以及第一分辨率信息确定第三矢量变换参数,第一分辨率信息包括目标运动矢量单位分辨率信息或者当前参考帧的分辨率信息。

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

步骤s2004,根据编码数据获取待解码视频帧中各个待解码块对应的目标运动矢量。

其中,当编码数据中携带目标运动矢量时,从编码数据中读取目标运动矢量。当编码数据中携带的是运动矢量差时,则可以计算得到目标预测运动矢量,根据运动矢量差以及目标预测运动矢量得到目标运动矢量。

步骤s20206,根据第三矢量变换参数以及目标运动矢量得到待解码视频帧中各个待解码块对应的目标参考块。

其中,得到第三矢量变换参数后,根据第三矢量变换参数对得到的运动矢量或者运动矢量对应的位置信息进行变换,得到目标参考块对应的位置信息,从而得到目标参考块。

步骤s2008,根据目标参考块对编码数据进行解码,得到待解码视频帧对应的重建视频帧。

其中,得到目标参考块后,根据目标参考块的像素值以及编码数据中携带待解码块的预测残差,得到重建视频帧各个图像块的像素值,得到重建视频帧。

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

其中,可以根据第一位置信息、第三矢量变换参数以及目标运动矢量得到目标参考块对应的第二位置信息,根据第二位置信息得到目标参考块。由于编码与解码的对应性,如果编码端中第一矢量变换参数用于对第一位置信息进行变换,则由于待解码块与编码块的位置信息相同,因此第三矢量变换参数与第一矢量变换参数相同。如果编码端中第一矢量变换参数用于对第二位置信息进行变换,由于根据目标运动矢量以及第一位置信息计算得到的位置值,是编码端中根据第一矢量变换参数对第二位置信息进行变换后的位置值,因此第三矢量变换参数为第一矢量变换参数的倒数。

例如,待解码视频帧的分辨率为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)。

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

其中,第三矢量变换参数是根据待解码视频帧对应的分辨率信息和目标运动矢量单位分辨率信息确定的,用于将目标运动矢量变换到带解码帧对应的分辨率下对应的第一运动矢量。当得到第三矢量变换参数后,可以将第三矢量变换参数以及目标运动矢量相乘,将得到的乘积作为第一运动矢量。可以理解,根据第三矢量变换参数以及目标运动矢量得到第一运动矢量这一过程与根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量是逆过程。例如如果编码端中,该待解码块对应的编码块第一矢量变换参数等于2。得到的第一运动矢量为(2,2),根据第一矢量变换参数与第一运动矢量为(2,2,)的乘积得到目标运动矢量为(4,4)。那么解码过程中,第三矢量变换参数为1/2,得到的目标运动矢量为(4,4),根据第三矢量变换参数1/2与目标运动矢量(4,4)的乘积得到第一运动矢量为(2,2)。

在一个实施例中,当编码数据中携带的是运动矢量差时,则根据编码数据获取待解码视频帧中各个待解码块对应的目标运动矢量包括:根据编码数据获取待解码视频帧中的当前待解码块对应的运动矢量差;

获取当前待解码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前解码块对应的目标预测运动矢量;根据目标预测运动矢量以及运动矢量差得到目标运动矢量。

其中,由于解码与编码过程中待解码块与待编码块是对应的,初始预测运动矢量获取规则相同,因此当前待解码块对应的初始运动预测矢量与当前待编码块对应的初始预测运动矢量是一致的,得到目标预测运动矢量的方法可以参照编码过程中的方法,具体不再赘述。目标运动矢量是目标预测运动矢量以及运动矢量差的和。

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

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

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

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

其中目标阈值可根据待解码视频帧对应的参考帧的处理方式进行确定。当待解码视频帧对应的参考帧的处理方式为下采样处理方式时,获取第一预设阈值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进行编码得到的数据。对e进行帧内解码,得到重建视频帧e1,由于e对应的分辨率信息为1/2,因此,可以对重建视频帧e1进行采样比例为1/2的上采样处理,得到解码视频帧e2。

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

解码过程如下:由于f为帧间预测帧,因此需要将重建视频帧e1作为当前参考帧,可以理解,e1与a2是相同的,对e1进行与a2相同的采样处理,得到e3,这里的e3与a3是相同的,为目标参考帧。从编码数据中获取得到当前待解码块对应的运动矢量差为mvd1,由于mvd1是目标分辨率即原始分辨率下的,因此需要将mvd1转换为f对应的分辨率下,因此可以得到mvd3为mvd1/4。获取初始预测矢量为mv2,由于初始预测矢量是在4/1下采样比例对应的分辨率下计算得到,与f对应的分辨率相同,故可以得到第一运动矢量为mv1等于mvd1/4+mv2。根据mv1获取得到目标参考块。根据目标参考块得到待解码块对应的预测值,将预测残差p1加上预测值重建得到重建视频帧f1对应的重建块。

4、混合分辨率解码框架的分辨率信息获取单元获取第三个待解码视频帧g对应的编码数据,可以理解,g对应的编码数据为对c1进行编码得到的数据。对g进行帧间解码,得到重建视频帧g1,由于g对应的分辨率信息为1/8,因此,可以对重建视频帧f1进行采样比例为1/8的上采样处理,得到解码视频帧g2。

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

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

如图21所示,在一个实施例中,提出了一种视频编码装置,该装置包括:

视频帧获取模块2102,用于获取输入视频帧;

第一确定模块2104,用于当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;

编码模块2106,用于根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

在一个实施例中,所述第一确定模块还用于当所述采样参数为传输至解码端的编码数据;和/或根据所述传输至解码端的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述输入视频帧的帧信息、与所述输入视频帧对应的前序视频帧的编码信息中的至少一种;所述第一确定模块还用于根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述第一确定模块还用于根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

在一个实施例中,所述下采样信息包括:下采样方法;所述第一确定模块还用于获取所述输入视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

在一个实施例中,所述下采样信息包括:下采样方法;所述第一确定模块还用于获取所述输入视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

在一个实施例中,所述下采样信息包括下采样比例;所述编码模块还用于根据所述下采样比例对所述输入视频帧进行处理得到待编码帧;获取所述待编码帧对应的当前参考帧;根据所述当前参考帧对所述待编码帧进行编码,得到输入视频帧对应的编码数据。

在一个实施例中,所述编码模块还用于获取待编码帧对应的下采样比例,根据所述下采样比例对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述待编码帧进行编码,得到所述输入视频帧对应的编码数据。

在一个实施例中,所述下采样信息还包括下采样方法;所述编码模块还用于根据所述下采样比例采用所述下采样方法对所述输入视频帧进行下采样处理得到待编码帧。

如图22所示,在一个实施例中,提出了一种视频解码装置,该装置包括:

编码数据获取模块2202,用于获取待解码视频帧对应的编码数据;

第二确定模块2204,用于当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;

解码模块2206,用于根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

在一个实施例中,所述第二确定模块还用于当所述采样参数为解码端接收到的编码数据;和/或根据所述解码端接收到的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述待解码视频帧的帧类型、与所述待解码视频帧对应的前序视频帧的编码信息中的至少一种;所述第二确定模块还用于根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述第二确定模块还用于根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

在一个实施例中,所述下采样信息包括:下采样方法;所述第二确定模块还用于获取所述待解码视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

在一个实施例中,所述下采样信息包括:下采样方法;所述第二确定模块还用于获取所述待解码视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

在一个实施例中,所述下采样信息包括:下采样比例;所述解码模块还用于根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧;根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧。

在一个实施例中,所述解码模块还用于获取所述待解码视频帧对应的当前参考帧;根据所述待解码视频帧对应的下采样比例确定与所述待解码视频帧对应的分辨率信息;根据所述分辨率信息对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧。

在一个实施例中,所述下采样信息还包括:下采样方法;所述解码模块还用于根据所述下采样比例对应的上采样比例,采用与所述下采样方法对应的上采样方法对所述重建视频帧进行上采样处理得到解码视频帧。

图2323示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图2323所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法及视频解码方法的至少一种方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法及视频解码方法的至少一种方法。本领域技术人员可以理解,图23中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的视频解码装置可以实现为一种计算机程序的形式,计算机程序可在如图23所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频解码装置的各个程序模块,比如,图21所示的视频帧获取模块2102、第一确定模块2104、编码模块2106及添加模块2108。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。例如,图23所示的计算机设备可以通过如图21所示的视频编码装置中的视频帧获取模块2102获取输入视频帧;通过第一确定模块2104当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;通过编码模块2106根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

在一个实施例中,本申请提供的视频解码装置可以实现为一种计算机程序的形式,计算机程序可在如图23所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频解码装置的各个程序模块,比如,图22所示的编码数据获取模块2202、第二确定模块2204和解码模块2206。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频解码方法中的步骤。例如,图22所示的计算机设备可以通过如图22所示的视频解码装置中的编码数据获取模块2202获取待解码视频帧对应的编码数据;通过第二确定模块2204当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;通过解码模块2206,用于根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取输入视频帧;当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

在一个实施例中,所述获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,包括:当所述采样参数为传输至解码端的编码数据;和/或根据所述传输至解码端的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述输入视频帧的帧信息、与所述输入视频帧对应的前序视频帧的编码信息中的至少一种;所述根据所述采样参数确定所述输入视频帧对应的下采样信息,包括:根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述根据所述采样参数计算得到目标采样函数值包括:根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取与所述输入视频帧对应的采样参数,根据所述采样参数确定所述输入视频帧对应的下采样信息,包括:获取所述输入视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

在一个实施例中,所述下采样信息包括:下采样方法;所述确定与所述输入视频帧对应的采样参数,根据所述采样参数获取所述输入视频帧对应的下采样信息,包括:获取所述输入视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

在一个实施例中,所述下采样信息包括下采样比例;所述根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据,包括:根据所述下采样比例对所述输入视频帧进行处理得到待编码帧;获取所述待编码帧对应的当前参考帧;根据所述当前参考帧对所述待编码帧进行编码,得到输入视频帧对应的编码数据。

在一个实施例中,所述根据所述当前参考帧对所述待编码帧进行编码,得到输入视频帧对应的编码数据,包括:获取待编码帧对应的下采样比例,根据所述下采样比例对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述待编码帧进行编码,得到所述输入视频帧对应的编码数据。

在一个实施例中,所述下采样信息还包括下采样方法;所述根据所述下采样比例对所述输入视频帧进行处理得到待编码帧,包括:根据所述下采样比例采用所述下采样方法对所述输入视频帧进行下采样处理得到待编码帧。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取待解码视频帧对应的编码数据;当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

在一个实施例中,所述获取所述待解码视频帧对应的采样参数,包括:当所述采样参数为解码端接收到的编码数据;和/或根据所述解码端接收到的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述待解码视频帧的帧类型、与所述待解码视频帧对应的前序视频帧的编码信息中的至少一种;所述根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述根据所述采样参数计算得到目标采样函数值包括:根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:获取所述待解码视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:获取所述待解码视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

在一个实施例中,所述下采样信息包括:下采样比例;所述根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧,包括:根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧;根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧。

在一个实施例中,所述根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧,包括:获取所述待解码视频帧对应的当前参考帧;根据所述待解码视频帧对应的下采样比例确定与所述待解码视频帧对应的分辨率信息;根据所述分辨率信息对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧。

在一个实施例中,所述下采样信息还包括:下采样方法;所述根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧,包括:根据所述下采样比例对应的上采样比例,采用与所述下采样方法对应的上采样方法对所述重建视频帧进行上采样处理得到解码视频帧。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取输入视频帧;当确定所述输入视频帧对应的目标处理方式为下采样处理方式时,获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,根据所述采样参数确定所述输入视频帧对应的下采样信息;根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。

在一个实施例中,所述获取与所述输入视频帧对应的采样参数,所述采样参数在解码过程中重现,包括:当所述采样参数为传输至解码端的编码数据;和/或根据所述传输至解码端的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述输入视频帧的帧信息、与所述输入视频帧对应的前序视频帧的编码信息中的至少一种;所述根据所述采样参数确定所述输入视频帧对应的下采样信息,包括:根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述根据所述采样参数计算得到目标采样函数值包括:根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取与所述输入视频帧对应的采样参数,根据所述采样参数确定所述输入视频帧对应的下采样信息,包括:获取所述输入视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

在一个实施例中,所述下采样信息包括:下采样方法;所述确定与所述输入视频帧对应的采样参数,根据所述采样参数获取所述输入视频帧对应的下采样信息,包括:获取所述输入视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

在一个实施例中,所述下采样信息包括下采样比例;所述根据所述下采样信息对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据,包括:根据所述下采样比例对所述输入视频帧进行处理得到待编码帧;获取所述待编码帧对应的当前参考帧;根据所述当前参考帧对所述待编码帧进行编码,得到输入视频帧对应的编码数据。

在一个实施例中,所述根据所述当前参考帧对所述待编码帧进行编码,得到输入视频帧对应的编码数据,包括:获取待编码帧对应的下采样比例,根据所述下采样比例对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述待编码帧进行编码,得到所述输入视频帧对应的编码数据。

在一个实施例中,所述下采样信息还包括下采样方法;所述根据所述下采样比例对所述输入视频帧进行处理得到待编码帧,包括:根据所述下采样比例采用所述下采样方法对所述输入视频帧进行下采样处理得到待编码帧。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取待解码视频帧对应的编码数据;当确定所述待解码视频帧对应的目标处理方式为下采样处理方式时,获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,所述采样参数与编码过程中对应的采样参数保持一致;根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧。

在一个实施例中,所述获取所述待解码视频帧对应的采样参数,包括:当所述采样参数为解码端接收到的编码数据;和/或根据所述解码端接收到的编码数据得到的处理数据时,确定所述采样参数为在解码过程中重现的参数。

在一个实施例中,所述下采样信息包括:下采样比例;所述采样参数包括:所述待解码视频帧的帧类型、与所述待解码视频帧对应的前序视频帧的编码信息中的至少一种;所述根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:根据所述采样参数计算得到目标采样函数值;获取候选采样函数值与候选下采样比例之间的对应关系;根据所述候选采样函数值与候选下采样比例之间的对应关系,确定与所述目标采样函数值对应的目标下采样比例。

在一个实施例中,所述前序视频帧的编码信息包括:前序视频帧的分辨率信息;所述根据所述采样参数计算得到目标采样函数值包括:根据所述前序视频帧的分辨率信息计算得到目标采样函数值。

在一个实施例中,所述前序视频帧的编码信息还包括:前序视频帧的帧内编码块与帧间编码块的比例、前序视频帧的帧类型、前序视频帧的码率中的至少一种。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:获取所述待解码视频帧对应的当前应用;获取候选应用与候选下采样方法之间的对应关系;根据所述候选应用与候选下采样方法之间的对应关系,确定与当前应用对应的目标下采样方法。

在一个实施例中,所述下采样信息包括:下采样方法;所述获取所述待解码视频帧对应的采样参数,根据所述采样参数确定与所述待解码视频对应的下采样信息,包括:获取所述待解码视频帧对应的应用类型,当所述应用类型为实时性应用类型时,获取通信双方的硬件处理能力;根据所述通信双方的硬件处理能力确定对应的采样方法。

在一个实施例中,所述下采样信息包括:下采样比例;所述根据所述待解码视频帧对应的下采样信息对所述编码数据进行解码,得到对应的解码视频帧,包括:根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧;根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧。

在一个实施例中,所述根据所述待解码视频帧对应的下采样比例对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧,包括:获取所述待解码视频帧对应的当前参考帧;根据所述待解码视频帧对应的下采样比例确定与所述待解码视频帧对应的分辨率信息;根据所述分辨率信息对所述当前参考帧进行处理得到目标参考帧;根据所述目标参考帧对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧。

在一个实施例中,所述下采样信息还包括:下采样方法;所述根据所述下采样比例对应的上采样比例对所述重建视频帧进行上采样处理得到解码视频帧,包括:根据所述下采样比例对应的上采样比例,采用与所述下采样方法对应的上采样方法对所述重建视频帧进行上采样处理得到解码视频帧。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1