编码方法、解码方法及装置与流程

文档序号:17898206发布日期:2019-06-13 16:08阅读:239来源:国知局
编码方法、解码方法及装置与流程

本申请涉及视频编解码技术,尤其涉及一种编码方法、解码方法及装置。



背景技术:

预测编码是视频压缩中常见的编码方式,预测编码的常见预测模式类型可以包括(intraprediction,可以记为mode_intra)和帧间预测(interprediction,可以记为mode_inter)。帧内预测是指仅采用当前帧的数据元素(dataelements)(如像素值)来完成预测。帧间预测是指采用除当前帧外的其他已编码帧的数据元素(如像素值或运动矢量)来完成预测。

视频的帧类型可以包括i帧、p帧和b帧。i帧表示当前帧的编码块仅采用帧内预测。p帧表示当前帧的编码块可以通过帧内预测或最多一个运动矢量和参考帧索引值来获得预测块。b帧表示当前帧的编码块可以通过帧内预测或最多两个运动矢量和参考帧索引来获得预测块。

帧内块复制模式又称为帧内块匹配,其采用当前帧已编码的区域作为参考区域进行预测编码。

然而实践发现,在目前的预测编码方案中,对于采用帧内块复制模式的编码单元,其预测模式类型为帧间预测,在解码端,需要根据帧间预测的语法元素确定编码单元是否采用帧内块复制模式,语法和语义不一致。



技术实现要素:

有鉴于此,本申请提供一种编码方法、解码方法及装置。

具体地,本申请是通过如下技术方案实现的:

根据本申请实施例的第一方面,提供一种编码方法,应用于编码端设备,所述方法包括:

当确定所述当前数据块采用帧内块复制模式时,在所述当前数据块对应的编码流中携带第一指示信息和第二指示信息;其中,所述第一指示信息用于指示所述当前数据块的预测模式类型为帧内预测,所述第二指示信息用于指示所述当前数据块采用帧内块复制模式;

发送携带有所述第一指示信息和第二指示信息的编码流。

根据本申请实施例的第二方面,提供一种解码方法,应用于解码端设备,其特征在于,所述方法包括:

获取当前数据块对应的编码流;

当确定所述当前数据块对应的编码流中携带有第一指示信息和第二指示信息时,确定所述当前数据块采用帧内块复制模式,其中,所述第一指示信息用于指示所述当前数据块的预测模式为帧内预测,所述第二指示信息用于指示所述当前数据块采用帧内块复制模式。

根据本申请实施例的第三方面,提供一种编码装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述编码方法。

根据本申请实施例的第四方面,提供一种解码装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述解码方法。

本申请实施例的编码方法和解码方法,对于采用帧内块复制模式进行预测编码的数据块,通过在数据块对应的编码流中携带用于指示该数据块采用帧内预测的第一指示信息,以及用于指示该数据块采用帧内块复制模式的第二指示信息,提高了解码端设备识别数据块采用帧内块复制模式的效率,并保证了使用帧内块复制模式进行预测编码的数据块在编解码时语法与语义的一致性。

附图说明

图1为本申请一示例性实施例示出的一种编码方法的流程示意图;

图2为本申请一示例性实施例示出的一种解码方法的流程示意图;

图3a为本申请一示例性实施例示出的一种预测模式类型分类的示意图;

图3b为本申请一示例性实施例示出的一种获取边界强度所参考的块的示意图;

图4为本申请一示例性实施例示出的一种亮度与色度的位置对应示意图;

图5为本申请一示例性实施例示出的一种当前数据块的相邻数据块的示意图;

图6为本申请一示例性实施例示出的一种编码装置的硬件结构示意图;

图7为本申请一示例性实施例示出的一种解码装置的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

为了使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

请参见图1,为本申请实施例提供的一种编码方法的流程示意图,其中,该编码方法可以应用于编码端设备,如图1所示,该编码方法可以包括以下步骤:

步骤s100、当确定当前数据块采用帧内块复制模式时,在当前数据块对应的编码流中携带第一指示信息和第二指示信息;其中,第一指示信息用于指示当前数据块的预测模式类型为帧内预测,第二指示信息用于指示当前数据块采用帧内块复制模式。

步骤s110、发送携带有该第一指示信息和第二指示信息的编码流。

本申请实施例中,为了保证使用帧内块复制模式进行预测编码的数据块在编解码时语法与语义的一致性,并提高解码端设备识别数据块采用帧内块复制模式的效率,当编码端设备采用帧内块复制模式对当前数据块进行预测编码时,可以在当前数据块中携带用于指示当前数据块的预测模式类型为帧内预测的指示信息(本文中称为第一指示信息),以及用于指示当前数据块采用帧内块复制模式的指示信息(本文中称为第二指示信息)。

本申请实施例中,编码端设备按照步骤s100中描述的方式得到编码流之后,可以发送携带上述第一指示信息和第二指示信息的编码流,如发送给解码端设备,或发送给专用于进行编码流存储的设备等,其具体实现在此不做赘述。

可见,在图1所示方法流程中,对于采用帧内块复制模式进行预测编码的数据块,通过在数据块对应的编码流中携带用于指示该数据块采用帧内预测的第一指示信息,以及用于指示该数据块采用帧内块复制模式的第二指示信息,提高了解码端设备识别数据块采用帧内块复制模式的效率,并保证了使用帧内块复制模式进行预测编码的数据块在编解码时语法与语义的一致性。

在本申请其中一个实施例中,上述第一指示信息可以包括第一标识,该第一标识可以用于标识当前数据块所在的视频帧的类型为i帧;

上述确定当前数据块采用帧内块复制模式,可以包括:

当确定率失真代价最小的帧内预测模式为帧内块复制模式时,确定当前数据块采用帧内块复制模式。

在本申请实施例中,预测模式类型分类可以如图3a所示,其中,帧内预测可以包括但不限于plannar模式、dc模式、角度模式、跨分量预测模式以及帧内块复制模式等;帧间预测可以包括但不限于merge(合并)模式、amvp(advancedmotionvectorprediction,高级运动矢量预测)模式、skip(跳跃)模式、affine(仿射)模式等。

即在本申请实施例中,帧内块复制模式不再作为帧间预测的一种模式,而是属于帧内预测的一种模式。

此外,在本申请实施例中,i帧中预测模式类型为帧内预测的数据块进行帧内预测时可以允许采用帧内块复制模式;若b帧或者p帧中存在使用帧内预测的数据块,也允许对这些数据块采用帧内块复制模式。

在该实施例中,考虑到i帧的编码块仅允许采用帧内预测,因此,对于i帧中的数据块,上述第一指示信息可以包括用于标识当前数据块所在的视频帧为i帧的标识(本文中称为第一标识),即编码端设备可以使用用于标识当前数据块所在的视频帧为i帧的第一标识来标识当前数据块采用帧内预测,而不需要额外携带其他专门用于标识当前数据块采用帧内预测的信息,减少了当前数据块的码率开销,提升了编码性能。

在该实施例中,当编码端设备确定当前数据块采用帧内预测时,编码端设备可以确定各帧内预测模式的率失真代价,并选择率失真代价最小的帧内预测模式为当前数据块采用的模式。

例如,编码端设备可以分别确定使用帧内块复制模式、dc模式、plannar模式、角度模式或跨分量预测模式等帧内预测模式对当前数据块进行编码时的率失真代价,并将率失真代价最小的模式确定为当前数据块采用的模式。

其中,当编码端设备确定采用帧内块复制模式对当前数据块进行编码时率失真代价最小时,编码端设备可以确定当前数据块采用帧内块复制模式。

进一步地,在本申请实施例中,为了更直观地标识当前数据块是否采用帧内块复制模式,并避免帧内块复制模式的标识对帧间模式比特的影响,编码端设备可以采用单独的标记位显式地标识当前数据块是否采用帧内块复制模式。

相应地,在本申请其中一个实施例中,上述第二指示信息可以包括第二标识,若第二标识的取值为第一取值,则第二标识用于标识当前数据块采用帧内块复制模式。

在该实施例中,编码端设备可以在当前数据块的编码流中携带一个用于标识当前数据块是否采用帧内块复制模式的标记位(本文中称为第二标识),当该第二标识的取值为第一取值(如1)时,该第二标识可以标识当前数据块采用帧内块复制模式。

需要说明的是,在该实施例中,当该第二标识的取值为第二取值(如0)时,该第二标识可以标识当前数据块未采用帧内块复制模式。

在一个示例中,当亮度块和色度块被允许使用独立的块划分结构时,对于色度块和亮度块均可以通过一个显式的标记位来标识当前数据块是否采用帧内块复制模式。

相应地,在该示例中,当当前数据块为亮度块或色度块时,若第二标识的取值为第一取值,则第二标识用于指示该色度块和亮度块采用帧内块复制模式。

进一步地,在本申请实施例中,考虑到色度块的可用模式中包括对应亮度分量模式(dm,directmode),当对应亮度分量模式开启时,可以根据对应亮度分量对应的一个亮度块采用的预测模式确定色度块采用的预测模式或色度块对应的全部亮度块的预测模式确定色度块采用的预测模式(可以由编码端设备和解码端设备预先协商采用前者或后者,或者,预先在编码端设备和解码端设备中进行相同的配置),因此,可以使用亮度分量模式信息来标识色度块的预测模式,以节省编码比特。

相应地,在一个示例中,当当前数据块为色度块时,第二指示信息包括第三标识,第三标识为色度块的对应亮度分量模式信息;

其中,当对应亮度分量模式信息对应的一个亮度块采用帧内块复制模式时,确定色度块也采用帧内块复制模式;

或,

当根据所述对应亮度分量模式信息确定所述色度块对应的全部亮度块都采用帧内块复制模式时,确定所述色度块也采用帧内块复制模式。

在该示例中,可以使用色度块的对应亮度分量模式信息作为第二指示信息,用于指示色度块是否采用帧内块复制模式,避免额外对色度块编码标记位,节省编码比特。

进一步地,在本申请实施例中,考虑到p帧或b帧可以使用帧间预测进行预测编码,禁止p帧或b帧使用帧内块复制模式对p帧或b帧带来的性能损失较小,但可以较为明显地降低p帧或b帧的编码复杂度,因此,可以禁止p帧或b帧的帧间预测块使用帧内块复制模式。

此外,考虑到现有预测编码方案中,当对i帧使用帧内块复制模式进行预测编码时,i帧的帧类型会被修改为p帧,因此,对于帧类型标识为p帧的视频帧,其实际帧类型可能为i帧(此时的i帧可以称为伪p帧),但由于i帧不允许使用当前帧之外的参考帧作为预测参考,因此,帧类型为p帧,且使用除当前帧之外的参考帧作为预测参考的视频帧,可以确定为p帧。

相应地,在本申请其中一个实施例中,当确定当前数据块的视频帧类型为p帧或b帧,且使用除当前帧之外的参考帧作为预测参考时,可以确定当前数据块不采用帧内块复制模式,即对p帧或b帧的帧间预测块进行帧间预测编码时(不包括参考当前帧的帧内预测块,下同),将帧内块复制模式从候选模式中排除,从而,可以降低p帧或b帧的编码复杂度。

进一步地,在本申请实施例中,考虑到现有预测编码方案中,采用帧内块复制模式的视频帧和禁止采用帧内块复制模式的视频帧的共用语法元素的熵编码状态初始值会存在不同,与熵编码状态初始值的定义不相符,因此,为了提高熵编码状态初始值设置的合理性,使其与熵编码状态初始值的定义相符,可以使采用帧内块复制模式的视频帧和禁止采用帧内块复制模式的视频帧的共用语法元素保持相同的熵编码状态初始值。

相应地,在本申请其中一个实施例中,对于采用帧内块复制模式的第一视频帧和禁止采用帧内块复制模式的第二视频帧,该第一视频帧和第二视频帧的共用语法元素保持相同的熵编码状态初始值。

在一个示例中,上述第一视频帧为采用帧内块复制模式的i帧,第二视频帧为禁止采用帧内块复制模式的i帧。

进一步地,考虑到帧内块复制模式属于帧内预测模式,而当编码端设备对采用帧内块复制模式对当前数据块进行预测编码时,在当前数据块的编码流中携带采用非当前帧作为参考帧的预测的帧间模式信息对于解码性能不存在明显提升,因此,对于采用帧内块复制模式的数据块,可以不在编码流中携带采用非当前帧作为参考帧的预测的帧间模式信息,以减少码率开销,提升编码性能。

相应地,在本申请其中一个实施例中,当确定当前数据块采用帧内块复制模式之后,还可以包括:

对采用当前帧作为参考帧的帧间预测的帧间模式信息不进行编码。

在该实施例中,当编码端设备确定当前数据块采用帧内块复制模式之后,可以不对采用非当前帧作为参考帧的帧间预测的帧间模式信息进行编码,以减少码率开销,提升编码性能。

在一个示例中,上述帧间模式信息可以包括但不限于以下之一或多个模式的相关信息:

当前数据块的mvd(编码运动矢量残差)的运动信息合并模式、仿射模式(affinemode)、帧内帧间多假设预测模式(multihypothesisintramode)以及三角预测模式(trianglemode)。

进一步地,在本申请实施例中,考虑到帧内块复制模式无时域候选者,且帧内块复制模式的空域相关性也比帧间预测模式的空域相关性弱,因此,对于采用帧内块复制模式的数据块,可以减少其在合并模式下构建的合并列表中候选者个数。

其中,合并列表中候选者列表中可以包括当前数据块的空域候选者、时域候选者、合并候选者以及零运动矢量等候选者中的一种或多种。

相应地,在本申请其中一个实施例中,对于采用帧内块复制模式的数据块(本文中称为第一数据块)和不采用帧内块复制模式的数据块(本文中称为第二数据块),第一数据块在合并模式下构建的合并列表中候选者个数小于第二数据块在合并模式下构建的合并列表中候选者的个数,从而,可以减少候选者索引值的编码比特。

进一步地,在本申请实施例中,考虑到使用帧内块复制模式对数据块进行预测编码的编码性能还会受数据块所在视频帧的已重建区域信息的影响,因此,在编码端设备和解码端设备预先协商好判断策略或在编码端设备和解码端设备配置有相同的判断策略的情况下,可以根据数据块所在视频帧的已重建区域信息确定数据块是否采用帧内块复制模式,进而,在不需要在数据块的编码流中携带指示信息的情况下,能够有效地确定是否采用帧内块复制模式。

相应地,在本申请其中一个实施例中,确定当前数据块采用帧内块复制模式,可以包括:

根据当前数据块所在的视频帧的已重建区域信息确定当前数据块是否采用帧内块复制模式。

可选地,上述已重建区域信息可以包括以下信息之一或多个:

当前数据块的周边区域的梯度值或者当前数据块的相邻数据块的模式信息。

例如,当前数据块的周边区域可以包括当前数据块所在视频帧的左边m列和上方n列;其中,m、n均为正整数。

在一个示例中,当已重建区域信息包括当前数据块的周边区域的梯度值时,

上述根据当前数据块所在的视频帧的已重建区域信息确定当前数据块是否采用帧内块复制模式,可以包括:

若当前数据块的周边区域的梯度值大于第一预设阈值,则确定当前数据块采用帧内块复制模式;

若当前数据块的周边区域的梯度值小于第二预设阈值,则确定当前数据块不采用帧内块复制模式;

其中,第一预设阈值大于第二预设阈值。

在该示例中,编码端设备对当前数据块进行编码时,可以计算当前数据块的周边区域的梯度值,并比较当前数据块的周边区域的梯度值与预设阈值。

若当前数据块的周边区域的梯度值大于第一预设阈值(可以根据实际场景设定),则编码端设备可以确定当前数据块采用帧内块复制模式。

若当前数据块的周边区域的梯度值小于第二预设阈值(可以根据实际场景设定,且第二预设阈值小于第一预设阈值),则编码端设备可以确定当前数据块不采用帧内块复制模式。

在另一个示例中,当已重建区域信息包括当前数据块的相邻数据块的模式信息时,

上述根据当前数据块所在的视频帧的已重建区域信息确定当前数据块是否采用帧内块复制模式,包括:

若当前数据块的相邻数据块中采用帧间预测模式的数据块的比例超过第三预设阈值,则确定当前数据块不采用帧内块复制模式。

在该示例中,编码端设备对当前数据块进行编码时,可以统计当前数据块的相邻数据块中采用帧间预测模式的数据块的比例(即当前数据块的相邻数据块中采用帧间预测模式的数据块的数量与当前数据块的相邻数据块的数量的比值),并比较当前数据块的相邻数据块中采用帧间预测模式的数据块的比例与预设阈值(本文中称为第三预设阈值,可以根据实际场景设定,如50%)。

若当前数据块的相邻数据块中采用帧间预测模式的数据块的比例超过第三预设阈值,则编码端设备可以确定当前数据块不采用帧内块复制模式。

需要说明的是,在该示例中,当当前数据块的相邻数据块中采用帧间预测模式的数据块的比例未超过第三预设阈值时,编码端设备可以采用其他策略确定当前数据块是否采用帧内块复制模式,如按照上文中描述的根据率失真代价确定当前数据块是否采用帧内块复制模式,其具体实现在此不做赘述。

可选地,在该示例中,当前数据块的相邻数据块为空域候选块,包括当前数据块左侧最下方的空域相邻块、当前数据块上侧最右侧的空域相邻块、当前数据块右上角距离最近的空域相邻块、当前数据块左下角距离最近的空域相邻块以及当前数据块左上角距离最近的空域相邻块。

请参见图2,为本申请实施例提供的一种解码方法的流程示意图,其中,该解码方法可以应用于解码端设备,如图2所示,该解码方法可以包括以下步骤:

步骤s200、获取编码流。

本申请实施例中,解码端设备可以通过接收到编码端设备发送的编码流的方式获取编码流,或者,也可以从专用于存储编码流的设备中获取编码流,其具体实现在此不做赘述。

步骤s210、当确定当前数据块对应的编码流中携带有第一指示信息和第二指示信息时,确定当前数据块采用帧内块复制模式,其中,第一指示信息用于指示当前数据块的预测模式为帧内预测,第二指示信息用于指示当前数据块采用帧内块复制模式。

本申请实施例中,解码端设备对当前数据块进行解码时,可以确定当前数据块对应的编码流中是否携带有第一指示信息和第二指示信息,并当当前数据块对应的编码流中携带有第一指示信息和第二指示信息时,解码端设备而可以确定当前数据块采用帧内块复制模式。

可见,在图2所示方法流程中,通过在确定数据块对应的编码流中携带有用于指示当前数据块的预测模式为帧内预测的第一指示信息,以及用于指示当前数据块采用帧内块复制模式的第二指示信息时,确定当前数据块采用帧内块复制模式,提高了解码端设备识别数据块采用帧内块复制模式的效率,并保证了使用帧内块复制模式进行预测编码的数据块在编解码时语法与语义的一致性。

在本申请其中一个实施例中,上述第一指示信息可以包括第一标识,该第一标识可以用于标识当前数据块所在的视频帧的类型为i帧。

在该实施例中,考虑到i帧的编码块仅允许采用帧内预测,因此,当解码端设备确定当前数据块的编码流中携带有用于标识当前数据块所在的视频帧的类型为i帧的标识(本文中称为第一标识)时,解码端设备可以确定当前数据块采用帧内块复制模式,从而,在不需要额外携带其他专门用于标识当前数据块采用帧内预测的信息的情况下,解码端设备能够高效准确地确定当前数据块是否采用帧内预测,减少了当前数据块的码率开销,提升了编码性能。

进一步地,在本申请实施例中,为了更直观地标识当前数据块是否采用帧内块复制模式,并避免帧内块复制模式的标识对帧间模式比特的影响,可以采用单独的标记位显式地标识当前数据块是否采用帧内块复制模式。

相应地,当解码端设备对当前数据块进行解码时,可以根据当前数据块的编码流中携带的第二标识的取值确定当前数据块是否采用帧内块复制模式。

其中,若当前数据块的编码流中携带的第二标识的取值为第一取值(如1),则解码端设备可以确定当前数据块采用帧内块复制模式。

在一个示例中,当当前数据块为亮度块或色度块时,若当前数据块的编码流中携带有第二标识,且第二标识的取值为第一取值,则解码端设备可以确定该亮度块或色度块采用帧内块复制模式。

进一步地,在本申请实施例中,考虑到色度块的可用模式中包括对应亮度分量模式,当对应亮度分量模式开启时,可以根据对应亮度分量对应的一个亮度块采用的预测模式确定色度块采用的预测模式或色度块对应的全部亮度块的预测模式确定色度块采用的预测模式(可以由编码端设备和解码端设备预先协商采用前者或后者,或者,预先在编码端设备和解码端设备中进行相同的配置),因此,可以使用亮度分量模式信息来标识色度块的预测模式,以节省编码比特。

相应地,在一个示例中,当当前数据块为色度块时,第二指示信息包括第三标识,第三标识为所述色度块的对应亮度分量模式信息;

上述当确定当前数据块对应的编码流中携带有第二指示信息时,确定当前数据块采用帧内块复制模式,可以包括:

当对应亮度分量模式信息对应的一个亮度块采用帧内块复制模式时,确定色度块采用帧内块复制模式;

或,

当根据对应亮度分量模式信息确定色度块对应的全部亮度块都采用帧内块复制模式时,确定色度块采用帧内块复制模式。

在该示例中,当当前数据块为色度块,且当前数据块开启对应亮度分量模式时,解码端设备可以获取当前数据块的编码流中的对应亮度分量模式信息。

当解码端设备确定该对应亮度分量模式信息对应的亮度块采用帧内块复制模式时,解码端设备可以确定色度块采用帧内块复制模式。

例如,当解码端设备确定该色度块的中心坐标(不限于中心坐标,也可以为色度块的其他位置的坐标)对应的亮度坐标所属的亮度块采用帧内块复制模式时,解码端设备可以确定色度块采用帧内块复制模式。

或者,

当解码端设备确定该色度块对应的全部亮度块都采用帧内块复制模式时,解码端设备可以确定色度块采用帧内块复制模式。

进一步地,在该示例中,当当前数据块为色度块时,若对应亮度分量模式信息对应的亮度块采用帧内块复制模式,但该色度块对应的多个亮度块中存在未采用帧内块复制模式的亮度块,则确定该色度块采用预设帧内预测模式;

若对应亮度分量模式信息对应的一个亮度块采用帧内预测,但未采用帧内块复制模式时,则确定该色度块采用与对应亮度分量模式信息对应的一个亮度块相同的帧内预测模式。

进一步地,在本申请实施例中,考虑到现有预测编码方案中,对于采用帧内块复制模式的数据块,解码端设备进行去块效应滤波时,会直接将该数据块的边界强度设置为预设值,如常数2,其准确性较差,因此,为了提高采用帧内块复制模式的数据块的边界强度确定的准确性,可以参照帧间预测的数据块的边界强度方式进行数据块的边界强度确定。

相应地,在本申请其中一个实施例中,当当前数据块的预测模式为帧内预测,且采用帧内块复制模式时,根据当前数据块的模式信息确定当前数据块进行去块滤波时的边界强度。

在该实施例中,若解码端设备确定当前数据块的预测模式为帧内预测,且采用帧内块复制模式,则当解码端设备对当前数据块进行去块滤波时,解码端设备不再直接将该当前数据块的边界强度设置为预设值,而是根据当前数据块的模式信息确定当前数据块的边界强度,提高了所确定的当前数据块的边界强度的准确性。

在一个示例中,当前数据块的模式信息可以包括但不限于以下之一或多个:

参考帧索引、块矢量信息。

进一步地,在本申请实施例中,考虑到p帧或b帧可以使用帧间预测进行预测编码,禁止p帧或b帧使用帧内块复制模式对p帧或b帧带来的性能损失较小,但可以较为明显地降低p帧或b帧的编码复杂度,因此,可以禁止p帧或b帧使用帧内块复制模式。

此外,考虑到现有预测编码方案中,当对i帧使用帧内块复制模式进行预测编码时,i帧的帧类型会被修改为p帧,因此,对于帧类型标识为p帧的视频帧,其实际帧类型可能为i帧(此时的i帧可以称为伪p帧),但由于i帧不允许使用当前帧之外的参考帧作为预测参考,因此,帧类型为p帧,且使用除当前帧之外的参考帧作为预测参考的视频帧,可以确定为p帧。

相应地,在本申请其中一个实施例中,当解码端设备确定当前数据块的视频帧类型为p帧或b帧,且使用除当前帧之外的参考帧作为预测参考时,解码端设备可以确定当前数据块未采用帧内块复制模式。

进一步地,在本申请实施例中,考虑到现有预测编码方案中,采用帧内块复制模式的视频帧和禁止采用帧内块复制模式的视频帧的共用语法元素的熵编码状态初始值会存在不同,与熵编码状态初始值的定义不相符,因此,为了提高熵编码状态初始值设置的合理性,使其与熵编码状态初始值的定义相符,可以使采用帧内块复制模式的视频帧和禁止采用帧内块复制模式的视频帧的共用语法元素保持相同的熵编码状态初始值。

相应地,在本申请其中一个实施例中,当解码端设备确定第一视频帧采用帧内块复制模式,第二视频帧禁止采用帧内块复制模式时,解码端设备可以确定该第一视频帧和第二视频帧的共用语法元素保持相同的熵编码状态初始值。

在一个示例中,上述第一视频帧为采用帧内块复制模式的i帧,第二视频帧为禁止采用帧内块复制模式的i帧。

进一步地,考虑到帧内块复制模式属于帧内预测模式,而当编码端设备对采用帧内块复制模式对当前数据块进行预测编码时,在当前数据块的编码流中携带采用非当前帧作为参考帧的预测的帧间模式信息对于解码性能不存在明显提升,因此,对于采用帧内块复制模式的数据块,可以不在编码流中携带采用非当前帧作为参考帧的预测的帧间模式信息,以减少码率开销,提升编码性能。

相应地,在本申请其中一个实施例中,当解码端设备确定当前数据块采用帧内块复制模式时,解码端设备可以确定对采用非当前帧作为参考帧的帧间预测的帧间模式信息不进行解码,从而,提高了解码效率。

在一个示例中,上述帧间模式信息可以包括以下之一或多个模式的相关信息:

当前数据块的mvd的运动信息合并模式、仿射模式(affinemode)、帧内帧间多假设预测模式(multihypothesisintramode)以及三角预测模式(trianglemode)。

进一步地,在本申请实施例中,考虑到帧内块复制模式无时域候选者,且帧内块复制模式的空域相关性也比帧间预测模式的空域相关性弱,因此,对于采用帧内块复制模式的数据块,可以减少其在合并模式下构建的合并列表中候选者个数。

其中,合并列表中候选者列表中可以包括当前数据块的空域候选者、时域候选者、合并候选者以及零运动矢量等候选者中的一种或多种。

相应地,在本申请其中一个实施例中,对于采用帧内块复制模式的数据块(本文中称为第一数据块)和未采用帧内块复制模式的数据块(本文中称为第二数据块),第一数据块在合并模式下构建的合并列表中候选者个数小于第二数据块在合并模式下构建的合并列表中候选者的个数,从而,可以减少候选者索引值的编码比特。

进一步地,在本申请实施例中,考虑到使用帧内块复制模式对数据块进行预测编码的编码性能还会受数据块所在视频帧的已重建区域信息的影响,因此,在编码端设备和解码端设备预先协商好判断策略或在编码端设备和解码端设备配置有相同的判断策略的情况下,可以根据数据块所在视频帧的已重建区域信息确定数据块是否采用帧内块复制模式,进而,在不需要在数据块的编码流中携带指示信息的情况下,能够有效地确定是否采用帧内块复制模式。

相应地,在本申请其中一个实施例中,上述确定当前数据块对应的编码流中携带有第二指示信息之前,还可以包括:

根据当前数据块所在的视频帧的已重建区域信息确定当前数据块是否采用帧内块复制模式。

在该实施例中,当解码端设备需要对当前数据块进行解码时,解码端设备可以根据当前数据块所在的视频帧的已重建区域信息确定当前数据块采用帧内块复制模式。

可选地,上述已重建区域信息可以包括以下信息之一或多个:

当前数据块的周边区域的梯度值或者当前数据块的相邻数据块的模式信息。

例如,当前数据块的周边区域可以包括当前数据块所在视频帧的左边m列和上方n列;其中,m、n均为正整数。

在一个示例中,当已重建区域信息包括当前数据块的周边区域的梯度值时,

上述根据当前数据块所在的视频帧的已重建区域信息确定当前数据块是否采用帧内块复制模式,可以包括:

若当前数据块的周边区域的梯度值大于第一预设阈值,则确定当前数据块采用帧内块复制模式;

若当前数据块的周边区域的梯度值小于第二预设阈值,则确定当前数据块未采用帧内块复制模式;

其中,第一预设阈值大于第二预设阈值

在该示例中,解码端设备对当前数据块进行解码时,可以计算当前数据块的周边区域的梯度值,并比较当前数据块的周边区域的梯度值与预设阈值。

若当前数据块的周边区域的梯度值大于第一预设阈值(可以根据实际场景设定),则解码端设备可以确定当前数据块采用帧内块复制模式。

若当前数据块的周边区域的梯度值小于第二预设阈值(可以根据实际场景设定,且第二预设阈值小于第一预设阈值),则解码端设备可以确定当前数据块未采用帧内块复制模式。

在另一个示例中,当已重建区域信息包括当前数据块的相邻数据块的模式信息时,

上述根据当前数据块所在的视频帧的已重建区域信息确定当前数据块是否采用帧内块复制模式,可以包括:

若当前数据块的相邻数据块中采用帧间预测模式的数据块的比例超过第三预设阈值,则确定当前数据块未采用帧内块复制模式。

在该示例中,解码端设备对当前数据块进行解码时,可以统计当前数据块的相邻数据块中采用帧间预测模式的数据块的比例(即当前数据块的相邻数据块中采用帧间预测模式的数据块的数量与当前数据块的相邻数据块的数量的比值),并比较当前数据块的相邻数据块中采用帧间预测模式的数据块的比例与预设阈值(本文中称为第三预设阈值,可以根据实际场景设定,如50%)。

若当前数据块的相邻数据块中采用帧间预测模式的数据块的比例超过第三预设阈值,则解码端设备可以确定当前数据块未采用帧内块复制模式。

需要说明的是,在该示例中,当当前数据块的相邻数据块中采用帧间预测模式的数据块的比例未超过第三预设阈值时,解码端设备可以根据当前数据块的编码流中是否携带上述第一指示信息以及第二指示信息确定当前数据块是否采用帧内块复制模式,其具体实现在此不做赘述。

可选地,在该示例中,当前数据块的相邻数据块为空域候选块,包括当前数据块左侧最下方的空域相邻块、当前数据块上侧最右侧的空域相邻块、当前数据块右上角距离最近的空域相邻块、当前数据块左下角距离最近的空域相邻块以及当前数据块左上角距离最近的空域相邻块。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面分别结合具体实例对本申请实施例提供的技术方案进行说明。

实施例一

对于编码端设备,若确定当前数据块采用帧内块复制模式,则其预测模式类型为帧内预测,可以在当前数据块的编码流中携带用于指示当前数据块的预测模式类型为帧内预测的第一指示信息(在该实施例中以pred_mode_flag为例),以及用于标识当前数据块采用帧内块复制模式的第二标识(在该实施例中以cpr_flag为例);其中,当pred_mode_flag取值为1时,表明当前数据块的预测模式类型为帧内预测,当cpr_flag的取值为1时,表明当前数据块采用帧内块复制模式。

需要说明的是,pred_mode_flag以及cpr_flag的取值与模式的对应关系可以由编码端设备和解码端设备协商确定,该实施例以及以下实施例中描述的均为具体示例,本申请实施例后续不再复述。

对于解码端设备,可以获取当前数据块的编码流中的pred_mode_flag以及cpr_flag,若pred_mode_flag以及cpr_flag取值均为1,则确定当前数据块的预测模式类型为帧内预测,且采用帧内块复制模式。

其中,在该实施例中,若pred_mode_flag取值0,则表明当前数据块的预测模式类型为帧间预测;若pred_mode_flag不存在,则以当前数据块的预测模式类型为帧内预测进行处理。

其中,预测模式类型分类可以如图3a所示。

在该实施例中,当解码端设备对当前数据块进行去块效应滤波时,若确定当前数据块的预测模式类型为帧内预测,且采用帧内块复制模式,则不再直接将边界强度置为某预设值,而是根据其参考帧、矢量等当前数据块的模式信息来确定其边界强度。

请参见图3b,若边界两侧的数据块(如图中的p块和q块)的预测模式类型均为帧内预测,但均未采用帧内块复制模式,则将边界强度置为预定义值a。

否则,将根据p块或q块是否包含非零变换系数、p块与q块是否使用相同的参考帧或p块与q块的运动矢量(mv)或块矢量(bv)个数是否相同等因素决定边界强度值。

可见,在该实施例中,对于采用帧内块复制模式进行预测编码的数据块,通过在数据块对应的编码流中携带用于指示该数据块采用帧内预测的第一指示信息,以及用于标识示该数据块采用帧内块复制模式的第二标识,提高了解码端设备识别数据块采用帧内块复制模式的效率,并保证了使用帧内块复制模式进行预测编码的数据块在编解码时语法与语义的一致性。

此外,提高了采用帧内块复制模式的数据块进行去块滤波时边界强度确定的准确性。

实施例二

对于编码端设备,若当前数据块所在的视频帧的类型为i帧,且其采用帧内块复制模式,则当前数据块所在的视频帧的类型仍然为i帧,预测模式类型为帧内预测,可以在当前数据块的编码流中携带用于标识当前数据块所在的视频帧的类型为i帧的第一标识,以及用于标识数据块采用帧内块复制模式的第二标识(在该实施例中以cpr_flag为例);其中,当cpr_flag的取值为1时,表明当前数据块采用帧内块复制模式。

对于解码端设备,可以获取当前数据块的编码流中的第一标识以及cpr_flag。当获取到第一标识时,确定当前数据块的视频帧类型为i帧,由于i帧仅允许采用帧内预测,因此,可以确定当前数据块的预测模式类型为帧内预测;当获取到cpr_flag,且cpr_flag,取值为1,则确定当前数据块采用帧内块复制模式。

可见,在该实施例中,对于采用帧内块复制模式的i帧数据,其视频帧类型仍标识为i帧,并使用视频帧类型标识作为用于指示数据块采用帧内块复制模式的指示信息,在保证语法和语义一致性的同时,减少了编码码率。

实施例三

当i帧采用可分离树划分技术(dualtree)后,其亮度和色度拥有独立的块划分结构。每个亮度块或色度块(一个色度块包含一个cb块和一个cr块)都视为一个数据块。每个亮度块或色度块的编码流均携带一个标记位(即上述第二标识,以cpr_flag为例)来标识是否采用帧内块复制模式;其中,当cpr_flag的取值为1时,表明亮度块或色度块采用帧内块复制模式,该标记位(即cpr_flag)可以采用等概模式编码,也可以采用熵编码模式编码。

对于编码端设备,若当前亮度块或色度块采用帧内块复制模式,则在对应的编码流中携带cpr_flag,且cpr_flag取值为1。

对于解码端设备,对于当前亮度块或色度块,当解析出对应的编码流中携带cpr_flag,且cpr_flag取值为1时,确定该亮度块或色度块采用帧内块复制模式。

可见,在该实施例中,通过显式的标记位标识亮度块或色度块是否采用帧内块复制模式,避免了对帧间模式编码比特的影响,并提高了解码端设备确定亮度块或色度块是否采用帧内块复制模式的效率。

实施例四

当i帧采用可分离树划分技术(dualtree)后,其亮度和色度拥有独立的块划分结构。

亮度块通过一个显式的标记位(即上述第二标识,以cpr_flag为例)来标识当前亮度块是否采用帧内块复制模式。色度块的一个可用模式为对应亮度分量模式,该模式为色度块中心点坐标(以中心点坐标为例,但不限于中心点坐标,也可以为色度块内的其它坐标)对应的亮度坐标位置所属的亮度块所采用的模式。

对于编码端设备,若当前色度块采用帧内块复制模式,则可以通过标记其采用对应亮度分量模式的形式来标识。

例如,可以通过在当前色度块的编码流中携带dm标记位,并将dm标记位的值置为真(可以与解码端设备预先协商,如1为真,0为假)。

对于解码端设备,若解析到当前色度块采用对应亮度分量模式(如当前色度块对应的编码流中携带dm标记位,且dm标记位的值为真),且色度块中心坐标位置所属亮度块采用帧内块复制模式,则确定该色度块采用帧内块复制模式。

实施例五

当i帧采用可分离树划分技术(dualtree)后,其亮度和色度拥有独立的块划分结构。

亮度块通过一个显式的标记位(即上述第二标识,以cpr_flag为例)来标识当前亮度块是否采用帧内块复制模式。色度块的一个可用模式为对应亮度分量模式,该模式根据色度块内所有坐标对应的亮度坐标位置所属的亮度块采用的模式确定色度块采用的模式;其中,该对应亮度分量模式可以是planar、dc、角度模式或帧内块复制模式。

对于编码端设备,若确定当前色度块采用帧内块复制模式,则可以通过标记其采用对应亮度分量模式的形式来标识。

例如,可以通过在当前色度块的编码流中携带dm标记位,并将dm标记位的值置为真(可以与解码端设备预先协商,如1为真,0为假)。

对于解码端设备,若解析到当前色度块采用对应亮度分量模式(如当前色度块对应的编码流中携带dm标记位,且dm标记位的值为真),则可以通过以下方式确定当前色度块采用的模式:

1、若当前色度块内所有坐标对应的亮度坐标所属亮度块均采用帧内块复制模式,则确定当前色度块采用帧内块复制模式;

2、若当前色度块中心坐标对应的亮度坐标所属亮度块采用planar模式、dc模式、角度模式或分量预测模式,则确定当前色度块采用与色度块中心坐标对应的亮度坐标所属亮度块相同的模式;

3、若当前色块中心坐标对应的亮度坐标所属亮度块采用帧内块复制模式,但当前色度块内所有坐标对应的亮度坐标所属亮度块中存在采用planar模式、dc模式、角度模式或分量预测模式的亮度块,则确定当前色度块采用预设帧内预测模式,如planar模式、dc模式、角度模式或分量预测模式。

其中,以图4所示亮度与色度位置对应为例,与当前色度块中心坐标对应的亮度坐标位置所属的亮度块为a块,与色度块内所有坐标对应的亮度坐标位置所属的亮度区域为a、b、c、d及e块。

可见,在实施例四和实施例五中,通过对应亮度分量模式信息来标识色度块是否采用帧内块复制模式,可以避免额外对色度块编码标记位,节省了编码比特。

实施例六

帧内块复制模式仅允许i帧使用。

对于编码端设备,若确定当前数据块的视频帧类型为p帧或b帧,且使用除当前帧之外的参考帧作为预测参考时,确定当前数据块不采用帧内块复制模式。

对于解码端设备,若确定当前数据块的视频帧类型为p帧或b帧,且使用除当前帧之外的参考帧作为预测参考时,确定当前数据块未采用帧内块复制模式。

可见,在该实施例中,通过对p帧和b帧禁用帧内块复制模式,降低了p帧和b帧的编码复杂度。

实施例七

第一视频帧:禁止使用帧内块复制模式;

第二视频帧:允许使用帧内块复制模式。

对于编码端设备和解码端设备,第一视频帧和第二视频帧的共用语法元素保持相同的熵编码状态初始值。

举例来说,假设a帧符合以下条件:1、帧类型为p帧;2、当前帧支持可分离树划分技术(dualtree);3、当前帧允许使用帧内块复制模式;

b帧符合以下条件:1、帧类型为i帧;2、当前帧支持可分离树划分技术(dualtree);3、当前帧禁止使用帧内块复制模式;

对于编码端设备和解码端设备,a帧和b帧共用语法元素,如splitflag,btsplitflag等,保持相同的熵编码状态初始值。

需要说明的是,在该实施例中,i帧允许使用帧内块复制模式后,新增加的语法元素的熵编码状态初始值可以与p帧或b帧使用帧内块复制模式时相同的语法元素的熵编码状态初始值相同,或者,可以与p帧或b帧使用帧内块复制模式时相同的语法元素的熵编码状态初始值不同。

例如,假设i帧允许使用帧内块复制模式后,新增语法元素c(相对禁止使用帧内块复制模式的i帧新增),若p帧或b帧使用帧内块复制模式时也定义了语法元素c,则i帧该新增的语法元素c的熵编码状态初始值可以与p帧或b帧使用帧内块复制模式时定义的语法元素c的熵编码状态初始值相同,或者,可以与p帧和b帧使用帧内块复制模式时定义的语法元素c的熵编码状态初始值均不相同。

可见,在该实施例中,对允许采用帧内块复制模式的数据块,和禁止使用帧内块复制模式的数据块,若未增加新的参考信息来源,则两帧的帧类型一致,采用相同的熵编码状态初始值,提高了熵编码状态初始值设置的合理性,且与熵编码状态初始值的定义相符。

实施例八

若数据块采用帧内块复制模式,将禁用采用非当前帧作为参考帧的帧间预测的帧间模式信息,即采用帧内块复制模式的数据块,对采用非当前帧作为参考帧的帧间预测的帧间模式信息不进行编码。

对于编码端设备和解码端设备,当确定当前数据块采用帧内块复制模式,则对采用非当前帧作为参考帧的帧间预测的帧间模式信息不进行编码,其中,帧间模式信息包括当前数据块的编码运动矢量残差的运动信息合并模式相关信息。

可见,在该实施例中,对于采用帧内块复制模式的数据块,对采用非当前帧作为参考帧的帧间预测的帧间模式信息不进行编码,减少了码率开销,提高了编码性能。

实施例九

对于采用帧内块复制模式的数据块在合并模式下构建的合并列表中候选者数量小于不采用帧内块复制模式的数据块在合并模式下构建的合并列表中候选者数量。

举例来说,按照编解码端相同构建逻辑构建帧内块复制模式的合并列表时,仅取前x个有效候选者;其中,不采用帧内块复制模式的合并列表中有效候选者数量为y,x<y。

其中,合并列表中的有效候选者可以包括但不限于空域候选者、时域候选者、合并候选者以及零运动矢量中的一种或多种。

可见,在实施例中,通过结合帧内块复制模式无时域候选者,且空域相关性也比帧间预测模式弱的特性,减少采用帧内块复制模式的数据块在合并模式下构建的合并列表的候选者数量,减少了候选者索引值的编码比特。

实施例十

通过对当前数据块所在的视频帧的已重建区域信息进行预分析,决策当前数据块是否允许采用帧内块复制模式。

其中,已重建区域信息包括但不限于:当前数据块的周边区域的梯度值、当前数据块的相邻数据块的模式信息。

举例来说,若当前数据块的周边区域的梯度值大于预设阈值a,则确定当前数据块采用帧内块复制模式。

若当前数据块的周边区域的梯度值小于预设阈值b,则确定当前数据块不采用帧内块复制模式。

其中,当前数据块的周边区域可以包括当前数据块所在视频帧的左边m列和上方n列;其中,m、n均为正整数;预设阈值a大于预设阈值b。

又举例来说,若当前数据块的相邻数据块中采用帧间预测模式的数据块的比例超过预设比例阈值(如50%),则确定当前数据块不采用帧内块复制模式。

其中,如图5所示,当前数据块的的相邻数据块包括空域候选块,包括当前数据块左侧最下方的空域相邻块(即图中的左块)、当前数据块上侧最右侧的空域相邻块(即图中的上块)、当前数据块右上角距离最近的空域相邻块(即图中的右上块)、当前数据块左下角距离最近的空域相邻块(即图中的左下块)以及当前数据块左上角距离最近的空域相邻块(即图中的左上块)。

需要说明的是,在该实施例中,编码端设备和解码端设备采用相同的策略决策当前数据块是否采用帧内块复制模式,若按照上述策略无法确定当前数据块是否采用帧内块复制模式时,可以采用其他策略进一步确定当前数据块是否采用帧内块复制模式。

举例来说,假设当前数据块的周边区域的梯度值大于预设阈值b,但小于预设阈值a,则对于编码端设备,可以根据率失真代价确定当前数据块是否采用帧内块复制模式,即从帧内块复制模式、dc模式、plannar模式、角度模式和跨分量预测模式中确定率失真代价最小的模式作为当前数据块采用的模式,并当率失真代价最小的模式为帧内块复制模式时,确定当前数据块采用帧内块复制模式,并在当前数据块的编码流中携带第二指示信息。

对于解码端设备,若当前数据块的编码流中携带第二指示信息,则确定当前数据块采用帧内块复制模式。

可见,在该实施例中,通过根据当前数据块所在的视频帧的已重建区域信息决策当前数据块是否采用帧内块复制模式,从而,可以不需要在编码流中携带指示信息,节省了编码比特。

本申请实施例中,对于采用帧内块复制模式进行预测编码的数据块,通过在数据块对应的编码流中携带用于指示该数据块采用帧内预测的第一指示信息,以及用于指示该数据块采用帧内块复制模式的第二指示信息,提高了解码端设备识别数据块采用帧内块复制模式的效率,并保证了使用帧内块复制模式进行预测编码的数据块在编解码时语法与语义的一致性。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

请参见图6,为本申请实施例提供的一种编码装置的硬件结构示意图。其中,该编码装置可以包括处理器601、通信接口602、存储器603和通信总线604。处理器601、通信接口602以及存储器603通过通信总线604完成相互间的通信。其中,存储器603上存放有计算机程序;处理器601可以通过执行存储器603上所存放的程序,实现上述方法实施例中描述的编码方法。

本文中提到的存储器603可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器602可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图6中的存储器603,所述计算机程序可由图6所示编码装置中的处理器601执行上述方法实施例中描述的编码方法。

请参见图7,为本申请实施例提供的一种解码装置的硬件结构示意图。其中,该解码装置可以包括处理器701、通信接口702、存储器703和通信总线704。处理器701、通信接口702以及存储器703通过通信总线704完成相互间的通信。其中,存储器703上存放有计算机程序;处理器701可以通过执行存储器703上所存放的程序,实现上述方法实施例中描述的解码方法。

本文中提到的存储器703可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器702可以是:ram、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图7中的存储器703,所述计算机程序可由图7所示解码装置中的处理器701执行上述方法实施例中描述的解码方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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