掌桥专利:专业的专利平台
掌桥专利
首页

视频编解码方法、装置和计算机可读存储介质

文献发布时间:2023-06-19 09:29:07


视频编解码方法、装置和计算机可读存储介质

技术领域

本申请总体上涉及视频编解码技术领域,更具体地涉及一种视频编解码方法、装置和计算机可读存储介质。

背景技术

预测是主流视频编码框架的重要模块,预测可以包括帧内预测和帧间预测。目前主要的视频编码标准帧间预测部分在从运动矢量候选列表中选择运动矢量后,需要基于所选择运动矢量的类型确定对应的插值滤波器,该过程较为繁琐,引入了不必要的编解码负担。

发明内容

本申请实施例提供一种视频编解码方案,可以降低编解码复杂度,节省硬件开销。下面简要描述本申请提出的视频编解码方案,更多细节将在后续结合附图在具体实施方式中加以描述。

根据本申请实施例一方面,提供了一种视频编解码方法,所述方法包括:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;采用默认插值滤波器对所述参考块进行像素插值。

根据本申请实施例另一方面,提供了一种视频编解码方法,所述方法包括:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;如果所述选择的运动矢量为成对平均运动矢量,则采用默认插值滤波器对所述参考块进行像素插值,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。

根据本申请实施例再一方面,提供了一种视频编解码装置,所述装置包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述处理器由于读取所述存储器中存储的计算机程序,执行如下操作:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;采用默认插值滤波器对所述参考块进行像素插值。

根据本申请实施例又一方面,提供了一种视频编解码装置,所述装置包括存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述处理器由于读取所述存储器中存储的计算机程序,执行如下操作:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;如果所述选择的运动矢量为成对平均运动矢量,则采用默认插值滤波器对所述参考块进行像素插值,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。

根据本申请实施例再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器运行时执行上述任一项所述的视频编解码方法。

根据本申请实施例的视频编解码方法、装置和计算机可读存储介质在从运动矢量预测值候选列表中确定运动矢量预测值并基于运动矢量预测值确定当前块的参考块后,无需繁琐的选择、判断插值滤波器的类型,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下降低编解码复杂度,节省硬件开销。

附图说明

图1示出根据本申请实施例的技术方案的架构图。

图2示出根据本申请实施例的视频编码框架的示意图。

图3示出根据本申请实施例的视频编解码方法的示意性流程图。

图4示出根据本申请实施例的视频编解码方法中采用的空域运动矢量候选列表的建立的示意图。

图5示出根据本申请实施例的视频编解码方法中采用的时域运动矢量候选列表的建立的示意图。

图6示出根据本申请实施例的视频编解码装置的示意性框图。

具体实施方式

下面将参照附图描述本申请的示例实施例。

在此使用的术语的目的仅在于描述具体实施例并且不作为本申请的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。本申请实施例中所提及的多个包括至少两个,至少两个例如可以是2个、3个、4个或者更大的数值。本申请实施例中的“A或B”,既包括单独的A,也包括单独的B,还包括A和B的结合。

为了彻底理解本申请实施例,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本申请实施例提出的技术方案。

图1是应用本申请实施例的技术方案的架构图。

如图1所示,系统100可以接收待处理数据102,对待处理数据102进行处理,产生处理后的数据108。例如,系统100可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统100可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统100中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是移动设备(例如手机、相机、无人机等)中的处理器。该处理器可以为任意种类的处理器,本申请实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统100中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本申请实施例的技术方案的计算机可执行指令、待处理数据102、处理后的数据108等。该存储器可以为任意种类的存储器,本申请实施例对此也不做限定。

待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、DNA采样等。

图2是根据本申请实施例的视频编码框架的示意图。如图2所示,在接收待编码视频后,从待编码视频的第一帧开始,依次对待编码视频中的每一帧进行编码。其中,当前编码帧主要经过:预测(Prediction)、变换(Transform)、量化(Quantization)和熵编码(Entropy Coding)等处理,最终输出当前编码帧的码流。对应的,解码过程通常是按照上述过程的逆过程对接收到的码流进行解码,以恢复出解码前的视频帧信息。

具体地,如图2所示,所述视频编码框架2中包括一个编码控制模块201,用于进行编码过程中的决策控制动作,以及参数的选择。例如,如图2所示,编码控制模块202控制变换、量化、反量化、反变换的中用到的参数,控制进行帧内或者帧间模式的选择,以及运动估计和滤波的参数控制,且编码控制模块202的控制参数也将输入至熵编码模块中,进行编码形成编码码流中的一部分。

对当前编码帧开始编码时,对编码帧进行划分202处理,具体地,首先对其进行条带(slice)划分,再进行块划分。可选地,在一个示例中,编码帧划分为多个互不重叠的最大的编码树单元(coding tree unit,CTU),各CTU还可以分别按四叉树、或二叉树、或三叉树的方式迭代划分为一系列更小的编码单元(coding unit,CU),一些示例中,CU还可以包含与之相关联的预测单元(prediction unit,PU)和变换单元(transform unit,TU),其中PU为预测的基本单元,TU为变换和量化的基本单元。一些示例中,PU和TU分别是在CU的基础上划分成一个或多个块得到的,其中一个PU包含多个预测块(prediction block,PB)以及相关语法元素。一些示例中,PU和TU可以是相同的,或者,是由CU通过不同的划分方法得到的。一些示例中,CU、PU和TU中的至少两种是相同的,例如,不区分CU、PU和TU,全部是以CU为单位进行预测、量化和变换。为方便描述,下文中将CTU、CU或者其它形成的数据单元均称为编码块。

应理解,在本申请实施例中,视频编码针对的数据单元可以为帧,条带,编码树单元,编码单元,编码块或以上任一种的组。在不同的实施例中,数据单元的大小可以变化。

具体地,如图2所示,编码帧划分为多个编码块后,进行预测过程,用于去除当前编码帧的空域和时域冗余信息。当前比较常用的预测编码方法包括帧内预测和帧间预测两种方法。帧内预测仅利用本帧图像中己重建的信息对当前编码块进行预测,而帧间预测会利用到之前已经重建过的其它帧图像(也被称作参考帧)中的信息对当前编码块进行预测。具体地,在本申请实施例中,编码控制模块202用于决策选择帧内预测或者帧间预测。

当选择帧内预测模式时,帧内预测203的过程包括获取当前编码块周围已编码相邻块的重建块作为参考块,基于该参考块的像素值,采用预测模式方法计算预测值生成预测块,将当前编码块与预测块的相应像素值相减得到当前编码块的残差,当前编码块的残差经过变换204、量化205以及熵编码210后形成当前编码块的码流。进一步的,当前编码帧的全部编码块经过上述编码过程后,形成编码帧的编码码流中的一部分。此外,帧内预测203中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。

具体地,变换204用于去除图像块的残差的相关性,以便提高编码效率。对于当前编码块残差数据的变换通常采用二维离散余弦变换(discrete cosine transform,DCT)变换和二维离散正弦变换(discrete sine transform,DST)变换,例如在编码端将编码块的残差信息分别与一个N×M的变换矩阵及其转置矩阵相乘,相乘之后得到当前编码块的变换系数。

在产生变换系数之后用量化205进一步提高压缩效率,变换系数经量化可以得到量化后的系数,然后将量化后的系数进行熵编码210得到当前编码块的残差码流,其中,熵编码方法包括但不限于内容自适应二进制算术编码(context adaptive binaryarithmetic coding,CABAC)熵编码。

具体地,帧内预测203过程中的已编码相邻块为:当前编码块编码之前,已进行编码的相邻块,该相邻块的编码过程中产生的残差经过变换204、量化205、反量化206、和反变换207后,与该相邻块的预测块相加得到的重建块。对应的,反量化206和反变换207为量化206和变换204的逆过程,用于恢复量化和变换前的残差数据。

如图2所示,当选择帧间预测模式时,帧间预测过程包括运动估计(motionestimation,ME)208和运动补偿(motion compensation,MC)209。具体地,根据重建视频帧中的参考帧图像进行运动估计208,在一张或多张参考帧图像中根据一定的匹配准则搜索到与当前编码块最相似的图像块为匹配块,该匹配块与当前编码块的相对位移即为当前编码块的运动矢量(motion vector,MV)。然后基于该运动矢量和参考帧对当前编码块进行运动补偿209,获得当前编码块的预测块。并将该编码块像素的原始值与对应的预测块像素值相减得到编码块的残差。当前编码块的残差经过变换204、量化205以及熵编码210后形成编码帧的编码码流中的一部分。此外,运动补偿209中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。

其中,如图2所示,重建视频帧为经过滤波211之后得到视频帧。滤波211用于减少编码过程中产生的块效应和振铃效应等压缩失真,重建视频帧在编码过程中用于为帧间预测提供参考帧,在解码过程中,重建视频帧经过后处理后输出为最终的解码视频。

其中,视频编码标准中的帧间预测模式可以包括高级运动矢量预测(advancedmotion vector prediction,AMVP)模式和合并(Merge)模式。

对于AMVP模式而言,可以先确定运动矢量的预测值(motion vector prediction,MVP),在得到MVP之后,可以根据MVP确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕之后得到最优的MV,由MV确定参考块在参考图像中的位置,参考块减去当前块得到残差块,MV减去MVP得到运动矢量差值(motion vector difference,MVD),并将该MVD通过码流传输给解码端。

对于Merge模式而言,可以先确定MVP,并直接将MVP确定为MV其中,为了得到MVP,可以先构建一个MVP候选列表(merge candidate list),在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索引对应的MVP,以实现对图像块的解码。

为了更加清楚地理解Merge模式,以下将介绍采用Merge模式进行编码的操作流程。

步骤一、获取MVP候选列表;

步骤二、从MVP候选列表中选出最优的一个MVP,同时得到该MVP在MVP候选列表中的索引;

步骤三、把该MVP作为当前块的MV;

步骤四、根据MV确定参考块在参考图像中的位置;

步骤五、参考块减去当前块得到残差块;

步骤六、把残差数据和MVP的索引传给解码器。

应理解,以下流程只是Merge模式的一种具体实现方式。Merge模式还可以具有其他的实现方式。

在基于块运动补偿的视频编码框架中,运动搜索(motion estimation,ME)是最为重要的环节之一。由于自然界物体运动不一定是以整像素为基本单位的,而有可能以半像素(1/2像素)、1/4像素甚至1/8像素为单位。如果这种情况下仍使用整像素精度运动估计可能会导致搜索不准确的问题,导致运动补偿残差幅度较大,影响编码效率。因此这种情况下应该使用亚像素精度进行运动估计。亚像素精度运动估计意味着需要对参考图像进行插值,好的插值方式能够大幅度改善运动补偿的性能。

如前所述,在目前的Merge模式中,在从MVP候选列表中确定MVP并基于MVP确定当前块的参考块后,如果所确定的MVP是空域候选MV,则对参考块进行像素插值时是直接继承该空域MV的插值滤波器。如果所确定的MVP是时域候选MV,则对参考块进行像素插值时是默认使用8抽头(8-tap)的插值滤波器。如果所确定的MVP是基于历史的候选MV(historymotion vector prediction,HMVP),则对参考块进行像素插值时是直接继承该HMVP的插值滤波器。如果所确定的MVP是成对平均(pairwise)候选MV,则需要进行以下步骤:首先判断进行平均的两个候选MV是否使用了相同的插值滤波器,如果相同,则对参考块进行像素插值时是使用与这两个候选MV相同的插值滤波器;如果不同,则对参考块进行像素插值时是默认使用8抽头的插值滤波器。上述Merge模式在确定对参考块使用的插值滤波器时过程较为繁琐,引入了不必要的编解码负担。

为此,本申请实施例提供的以下方案,可以降低编解码复杂度,节省硬件开销。

图3示出了根据本申请实施例的视频编解码方法300的示意性流程图。方法300可以用于编码端,也可以用于解码端。如图3所示,方法300包括以下步骤:

在步骤S310,获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量。

在步骤S330,根据选择的运动矢量确定当前块的参考块。

在步骤S330,采用默认插值滤波器对所述参考块进行像素插值。

在以上方法300中,可以获取MVP候选列表,并从中确定MVP以预测当前块的参考块的位置,在获得参考块的位置后,无需繁琐的选择、判断插值滤波器类型的过程,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下节省编解码流程、降低编解码复杂度,节省硬件开销。

为了更加清楚地理解本申请,以下将对本申请实施例的具体实现方式进行说明。应理解,以下的描述可以适用以上的方法300。

本申请实施例中的运动矢量候选列表(即MVP候选列表)可以包括空域候选运动矢量、时域候选运动矢量、HMVP候选运动矢量、pairwise候选运动矢量以及零运动矢量,这些运动矢量中的部分或者全部用于构成本申请实施例中的运动矢量候选列表。下面简要描述上述候选运动矢量及运动矢量候选列表的建立。

在本申请的实施例中,空域候选运动矢量可以如图4所示,图4中灰色块是当前编码单元(即当前块),A1表示当前编码单元左侧最下方的编码单元,B1表示当前编码单元上侧最右方的编码单元,B0和A0分别表示当前预测单元右上方和左下方距离最近的编码单元,B2表示当前编码单元左上方距离最近的编码单元。示例性地,空域最多提供4个候选MV,在选择空域运动矢量时,按照A1->B1->B0->A0->(B2)的顺序选择,其中B2为替补。

在本申请的实施例中,时域候选运动矢量可以基于当前编码单元在邻近已编码图像中对应位置编码单元的运动信息而得到。与空域情形不同,时域候选运动矢量不能直接使用候选块的运动信息,而需要根据与参考图像的位置关系做相应的比例伸缩调整。示例性地,一般提供一个时域候选运动矢量,如图5所示,灰色块是当前编码单元(即当前块),候选运动矢量由当前帧的前一帧(前向预测)或后一帧(后向预测)中的C0的位置得到,如果C0不可得,则采用C1位置对应的编码单元的运动矢量作为候选运动矢量。

在本申请的实施例中,HMVP候选运动矢量存储的为已编码的块的运动信息。在Merge模式中,若前面的空域、时域候选MV没有填充满运动矢量候选列表,则会使用HMVP候选运动矢量进行填充,填充时按照已编码块距离当前编码块的远近由近到远地将存储已编码块的运动信息的HMVP候选运动矢量填充到运动矢量候选列表中。

在本申请的实施例中,当空域候选运动矢量、时域候选运动矢量、HMVP候选运动矢量没有填满运动矢量候选列表时,可以使用pairwise模式进行运动矢量候选列表的填充。pairwise使用运动矢量候选列表中的已有的至少两个候选运动矢量(例如列表中的前两个候选运动矢量)进行平均,得到新的候选运动矢量,填充至运动矢量候选列表中。若所述两个候选运动矢量中的某一个在前向或后向参考方向上没有运动矢量,则只使用存在运动矢量的那一个进行候选运动矢量填充;若所述两个候选运动矢量在某参考方向均不存在运动矢量,则不进行pairwise候选运动矢量的填充。

在本申请的实施例中,如果空域候选运动矢量、时域候选运动矢量、HMVP候选运动矢量、pairwise候选运动矢量仍然填满运动矢量候选列表,则对运动矢量候选列表填充零运动矢量,直到填满运动矢量候选列表。

基于上述构建好的运动矢量候选列表,方法300在步骤S310可以获取该运动矢量候选列表,并从该运动矢量候选列表中选择用于确定当前块的参考块的运动矢量。示例性地,可以从该运动矢量候选列表中选择最优运动矢量以用于确定当前块的参考块。示例性地,可以通过如下方式来选择最优运动矢量:遍历运动矢量候选列表中的所有候选运动矢量,并进行率失真代价的计算,最终选择率失真代价最小的一个候选运动矢量作为最优运动矢量。编解码端可以依照同样的方式建立该运动矢量候选列表,编码器只需要传输最优运动矢量在运动矢量候选列表中的索引即可,这样大幅节省了运动信息的编码比特数。

基于在步骤S310选择的运动矢量,可以根据该运动矢量确定参考块在参考图像(每个候选运动矢量均对应于一个参考图像)中的位置,即得到当前块的参考块(或预测块)。基于在步骤S320得到的参考块,可以在步骤S330中对参考图像中的该参考块进行像素插值。在本申请的实施例中,当前块可以采用单向预测模式,也可以采用双运动矢量模式。双运动矢量模式包括双前向预测模式、双后向预测模式和双向预测模式。双前向预测模式包括两个前向运动矢量,双后向预测模式包括两个后向运动矢量。其中,双向预测模式包括前向预测模式和后向预测模式。在当前块采用单向预测模式时,步骤S310中获取的运动矢量候选列表的数目为一个。示例性地,该运动矢量候选列表可以是基于前向参考帧确定的,也可以是基于后向参考帧确定的。在当前块采用双运动矢量模式时,步骤S310中获取的运动矢量候选列表的数目为两个。示例性地,对于双运动矢量模式中的双向预测模式来说,所述两个运动矢量候选列表可以分别基于前向参考帧和后向参考帧来确定。对于双运动矢量模式中的双前向预测模式来说,所述两个运动矢量候选列表分别基于前向参考帧来确定。对于双运动矢量模式中的后向预测模式来说,所述两个运动矢量候选列表分别基于后向参考帧来确定。在当前块采用双运动矢量模式时,由于获取两个运动矢量候选列表,因此在步骤S310从这两个运动矢量候选列表各自选择运动矢量,并在步骤S320根据各自选择的运动矢量各自确定参考块,在步骤S330根据各自确定的参考块各自进行像素插值。

在本申请的实施例中,采用默认插值滤波器对步骤S320中所得到的参考块进行像素插值。其中,该默认插值滤波器可以是默认抽头数量的插值滤波器或其他任何适合对参考块进行像素插值的插值滤波器。插值精度可以例如为1/2像素精度、1/4像素精度等亚像素精度,或者1像素精度、2像素精度、4像素精度等整像素精度。

在本申请的实施例中,在步骤S320选择的运动矢量可以是pairwise运动矢量。pairwise运动矢量是根据步骤S310中获取的运动矢量候选列表中的至少两个候选运动矢量确定的(例如pairwise运动矢量等于所述至少两个候选运动矢量的平均值,诸如加权平均值),所述至少两个候选运动矢量各自对应的插值滤波器可以相同或不同。此处,与候选运动矢量对应的插值滤波器是指:在对当前块的相邻块的参考块进行像素插值时使用的插值滤波器,其中,相邻块即为运动矢量候选列表中记录的运动矢量所对应的块,换言之,运动矢量候选列表中记录的运动矢量为当前块的相邻块的运动矢量。因此,候选运动矢量对应的插值滤波器即为对当前块的相邻块的参考块进行像素插值时使用的插值滤波器。相邻块可以包括时域相邻块或空域相邻块。时域相邻块是指即当前块所在的当前帧的前一帧图像或后一帧图像中的块,空域相邻块是指当前帧中其他已编码的块。

在现有的方法中,当选择的运动矢量是pairwise运动矢量时,需要比较用于确定pairwise运动矢量的两个候选运动矢量各自对应的插值滤波器;如果所述两个候选运动矢量各自对应的插值滤波器相同,则采用与所述两个候选运动矢量对应的插值滤波器对当前块的参考块进行像素插值;如果所述两个候选运动矢量各自对应的插值滤波器不同,则默认采用8抽头插值滤波器对当前块的参考块进行像素插值。这样的方法需要额外引入比较、判断过程,一定程度上增加了硬件的负担,使得流水更加紧张,引入延迟。在本申请的方法300中,在步骤S320选择的运动矢量是pairwise运动矢量时,不进行上述比较和判断操作,无论用于确定pairwise运动矢量的两个候选运动矢量各自对应的插值滤波器相同与否,均直接采用默认插值滤波器对当前块的参考块进行像素插值。因此,可以简化逻辑,节省硬件开销。其中,该默认插值滤波器可以为8抽头插值滤波器或6抽头插值滤波器或者其他抽头的插值滤波器,本申请实施例对此不作限定。其中,6抽头插值滤波器有更平坦的特性,且所需要的带宽更小,插值复杂度也更小。

在本申请的实施例中,在步骤S320选择的运动矢量可以是空域候选运动矢量。在现有的方法中,当选择的运动矢量是空域候选运动矢量时,对当前块的参考块进行像素插值时是继承该空域候选运动矢量的插值滤波器。在本申请的方法300中,在步骤S320选择的运动矢量是空域候选运动矢量时,不进行继承操作,而是直接采用默认插值滤波器(例如8抽头插值滤波器或6抽头插值滤波器)对当前块的参考块进行像素插值。相较于现有技术,本申请实施例无需执行从存储区buffer中获取空域候选运动矢量对应的插值滤波器的类型,因此,节省了处理流程,降低了编解码的复杂度。

在本申请的实施例中,在步骤S320选择的运动矢量可以是时域候选运动矢量。在现有的方法中,当选择的运动矢量是时域候选运动矢量时,对当前块的参考块进行像素插值时是默认使用8抽头的插值滤波器。在本申请的方法300中,在步骤S320选择的运动矢量是空域候选运动矢量时,除了8抽头插值滤波器,也可以采用6抽头插值滤波器对当前块的参考块进行像素插值。如前所述,6抽头插值滤波器有更平坦的特性,且所需要的带宽更小,插值复杂度也更小。

在本申请的实施例中,在步骤S320选择的运动矢量可以是基于历史的候选运动矢量。在现有的方法中,当选择的运动矢量是基于历史的候选运动矢量时,对参考块进行像素插值时是直接继承与该基于历史的候选运动矢量相对应的插值滤波器。在本申请的方法300中,在步骤S320选择的运动矢量是基于历史的候选运动矢量时,不进行继承操作,而是直接采用默认插值滤波器(例如8抽头插值滤波器或6抽头插值滤波器)对当前块的参考块进行像素插值。相较于现有技术,本申请实施例无需执行从buffer中获取基于历史的候选运动矢量对应的插值滤波器的类型,因此,节省了处理流程,降低了编解码的复杂度。

在上述的实施例中,不论在步骤S320中选择的运动矢量是何种类型的运动矢量,均可以采用默认插值滤波器对当前块的参考块进行像素插值,这样可以简化逻辑,降低编解码复杂度,节省硬件开销。

在本申请的又一个实施例中,在步骤S320中选择的运动矢量可以仅包括pairwise候选运动矢量。在该实施例中,仅在步骤S320中选择的运动矢量是pairwise候选运动矢量时,对采用默认插值滤波器对当前块的参考块进行像素插值,这样也省略了原有的比较和判断逻辑,亦可以降低编解码复杂度,节省硬件开销。

基于上面的描述,根据本申请实施例的视频编解码方法在从运动矢量预测值候选列表中确定运动矢量预测值并基于运动矢量预测值确定当前块的参考块后,无需繁琐的选择、判断逻辑,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下降低编解码复杂度,节省硬件开销。

下面结合图6描述根据本申请另一方面提供的视频编解码装置。图6示出了根据本申请实施例的视频编解码装置600的示意性框图。视频编解码装置600包括存储器610以及处理器620。视频编解码装置600可以实现为编码器、解码器、手机、相机、无人机等可实现编解码流程的装置、产品或设备。

其中,存储器610存储用于实现根据本申请实施例的视频编解码方法中的相应步骤的程序。处理器620用于运行存储器610中存储的程序,以执行根据本申请实施例的视频编解码方法的相应步骤。

在本申请的一个实施例中,在所述程序被处理器620运行时使得视频编解码装置600执行以下步骤:获取运动矢量候选列表,并从所述运动矢量候选列表中选择运动矢量;根据选择的运动矢量确定当前块的参考块;采用默认插值滤波器对所述参考块进行像素插值。

在本申请的一个实施例中,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的至少两个候选运动矢量确定的,所述至少两个候选运动矢量各自对应的插值滤波器相同或不同。

在本申请的一个实施例中,所述默认插值滤波器为默认抽头数量的插值滤波器。

在本申请的一个实施例中,所述默认抽头数量的插值滤波器包括8抽头插值滤波器或6抽头插值滤波器。

在本申请的一个实施例中,在所述程序被处理器620运行时使得视频编解码装置600执行的所述采用默认插值滤波器对所述参考块进行像素插值,包括:采用1/2像素精度的所述默认插值滤波器对所述参考块进行像素插值。

在本申请的一个实施例中,所述选择的运动矢量是成对平均运动矢量,所述成对平均运动矢量是根据所述运动矢量候选列表中的一个候选运动矢量确定的。

在本申请的一个实施例中,所述选择的运动矢量是时域候选运动矢量。

在本申请的一个实施例中,所述选择的运动矢量是空域候选运动矢量。

在本申请的一个实施例中,所述选择的运动矢量是基于历史的候选运动矢量。

在本申请的一个实施例中,所述当前块采用单向预测模式,所述运动矢量候选列表的数目为一个。

在本申请的一个实施例中,所述运动矢量候选列表是基于前向参考帧或后向参考帧确定的。

在本申请的一个实施例中,所述当前块采用双向预测模式,所述运动矢量候选列表的数目为两个。

在本申请的一个实施例中,所述两个运动矢量候选列表分别是基于前向参考帧和后向参考帧确定的。

在本申请的一个实施例中,所述成对平均运动矢量是所述至少两个候选运动矢量的平均值。

在本申请的一个实施例中,所述成对平均运动矢量是所述至少两个候选运动矢量的加权平均值。

此外,根据本申请实施例,还提供了一种计算机可读存储介质,在所述计算机可读存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本申请实施例的视频编解码方法的相应步骤。所述计算机可读存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述计算机可读存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。

在一个实施例中,所述计算机程序指令在被计算机运行时可以执行根据本申请实施例的视频编解码方法。

本申请实施例还提供一种视频编解码的装置,包括处理器和存储器,该存储器用于存储程序指令,该处理器用于调用所述程序指令,执行上述本申请各种实施例的视频编解码方法。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述方法实施例的方法。

本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。

还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本申请实施例对此并不限定。

以上示例性地描述了根据本申请实施例的视频编解码方法、装置以及计算机可读存储介质。基于上面的描述,根据本申请实施例的视频编解码方法、装置和计算机可读存储介质在从运动矢量预测值候选列表中确定运动矢量预测值并基于运动矢量预测值确定当前块的参考块后,无需繁琐的选择、判断插值滤波器的类型,而是直接采用默认插值滤波器对参考块进行像素插值,可以实现在不降低编解码效率的前提下降低编解码复杂度,节省硬件开销。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本申请实施例的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本申请实施例的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本申请实施例的范围之内。

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

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本申请实施例并帮助理解各个发明方面中的一个或多个,在对本申请实施例的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本申请实施例的方法解释成反映如下意图:即所要求保护的本申请实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请实施例的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请实施例的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本申请实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的一些模块的一些或者全部功能。本申请实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请实施例的程序可以存储在计算机可读存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本申请实施例进行说明而不是对本申请实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。本申请实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

以上所述,仅为本申请实施例的具体实施方式或对具体实施方式的说明,本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。本申请实施例的保护范围应以权利要求的保护范围为准。

相关技术
  • 视频编解码的方法、装置、计算机设备及计算机可读存储介质
  • 一种视频编解码方法、装置以及计算机可读存储介质
技术分类

06120112182293