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

一种视频编码和解码方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 19:28:50


一种视频编码和解码方法、装置、电子设备及存储介质

技术领域

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

背景技术

在视频编码中,变换是去除预测残差空间冗余的重要工具。预测残差空间冗余特性与预测模式有关,特别是在帧内编码模式下,当使用方向预测模式时,预测残差具有方向性。在对预测残差进行主变换后,其中一些低频系数仍可能是可预测的模式。H.266/VVC(新一代国际视频编解码标准)在主变换之后又引入了一种称为低频不可分变换(Low-frequency Non-separable Transform,LFNST)的二次变换,以进一步处理这些仍具有预测模式的低频系数,进而对经过二次变换后的变换系数进行量化以实现视频编码,二次变换可以进一步去除冗余,但会使整个视频编码过程更复杂。

发明内容

本发明实施例的目的在于提供一种视频编码和解码方法、装置、电子设备及存储介质,以降低视频编码的复杂度。具体技术方案如下:

在本发明实施的第一方面,首先提供了一种视频编码方法,包括:

获取待编码视频中视频帧对应的二次变换标识信息,所述二次变换标识信息用于标识是否需要针对所述视频帧的编码块进行二次变换;其中,所述二次变换标识信息根据所述视频帧的图像内容确定;

若所述二次变换标识信息标识不需要针对所述视频帧的编码块进行二次变换,则跳过针对所述编码块的低频不可分变换而进行后续编码过程。

可选地,所述方法还包括:

获取所述待编码视频中的视频帧;

基于所述视频帧的像素值,计算所述视频帧的图像梯度;

若所述图像梯度大于预设梯度阈值,则确定所述视频帧对应的二次变换标识信息标识不需要针对所述视频帧的编码块进行二次变换;

若所述图像梯度不大于预设梯度阈值,则确定所述视频帧对应的二次变换标识信息标识需要针对所述视频帧的编码块进行二次变换。

可选地,所述基于所述视频帧的像素值,计算所述视频帧的图像梯度,包括:

针对所述视频帧中每行的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每行对应的差值之和;

将每行的差值之和相加,得到所述视频帧的水平梯度;

针对所述视频帧中每列的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每列对应的差值之和;

将每列的差值之和相加,得到所述视频帧的垂直梯度;

基于所述水平梯度和所述垂直梯度,计算所述视频帧的图像梯度。

可选地,在所述获取所述视频帧对应的二次变换标识信息之后,所述方法还包括:

获取所述编码块对应的主变换系数,所述主变换系数为对所述编码块进行主变换得到的;

若所述二次变换标识信息标识需要针对所述视频帧的编码块进行二次变换,则对所述主变换系数进行低频不可分变换。

可选地,所述方法还包括:

对所述编码块添加标志位,所述标志位用于标识在视频编码过程中针对所述编码块是否进行了低频不可分变换。

在本发明实施的第二方面,还提供了一种视频解码方法,包括:

获取编码块对应的标志位;

若所述标志位标识在视频编码过程中针对所述编码块未进行低频不可分变换,则在针对所述编码块的编码结果进行反量化之后跳过反低频不可分变换而进行后续解码过程,其中,所述标志位是在获取待编码视频中视频帧对应的二次变换标识信息,若所述二次变换标识信息标识不需要针对所述视频帧的编码块进行二次变换跳过针对所述编码块的低频不可分变换而进行后续编码过程之后对所述编码块添加的,所述二次变换标识信息用于标识是否需要针对所述视频帧的编码块进行二次变换,其中,所述二次变换标识信息根据所述视频帧的图像内容确定。

在本发明实施的第三方面,还提供了一种视频编码装置,包括:

第一获取模块,用于获取待编码视频中视频帧对应的二次变换标识信息,所述二次变换标识信息用于标识是否需要针对所述视频帧的编码块进行二次变换;其中,所述二次变换标识信息根据所述视频帧的图像内容确定;

跳过模块,用于若所述二次变换标识信息标识不需要针对所述视频帧的编码块进行二次变换,则跳过针对所述编码块的低频不可分变换而进行后续编码过程。

可选地,所述装置还包括:

第二获取模块,用于获取所述待编码视频中的视频帧;

计算模块,用于基于所述视频帧的像素值,计算所述视频帧的图像梯度;

确定模块,用于若所述图像梯度大于预设梯度阈值,则确定所述视频帧对应的二次变换标识信息标识不需要针对所述视频帧的编码块进行二次变换;若所述图像梯度不大于预设梯度阈值,则确定所述视频帧对应的二次变换标识信息标识需要针对所述视频帧的编码块进行二次变换。

可选地,所述计算模块,具体用于针对所述视频帧中每行的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每行对应的差值之和;将每行的差值之和相加,得到所述视频帧的水平梯度;针对所述视频帧中每列的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每列对应的差值之和;将每列的差值之和相加,得到所述视频帧的垂直梯度;基于所述水平梯度和所述垂直梯度,计算所述视频帧的图像梯度。

可选地,所述装置还包括:

第三获取模块,用于在所述获取所述视频帧对应的二次变换标识信息之后,获取所述编码块对应的主变换系数,所述主变换系数为对所述编码块进行主变换得到的;

变换模块,用于若所述二次变换标识信息标识需要针对所述视频帧的编码块进行二次变换,则对所述主变换系数进行低频不可分变换。

可选地,所述装置还包括:

添加模块,用于对所述编码块添加标志位,所述标志位用于标识在视频编码过程中针对所述编码块是否进行了低频不可分变换。

在本发明实施的第四方面,还提供了一种视频解码装置,包括:

获取模块,用于获取编码块对应的标志位;

解码模块,用于若所述标志位标识在视频编码过程中针对所述编码块未进行低频不可分变换,则在针对所述编码块的编码结果进行反量化之后跳过反低频不可分变换而进行后续解码过程,其中,所述标志位是在获取待编码视频中视频帧对应的二次变换标识信息,若所述二次变换标识信息标识不需要针对所述视频帧的编码块进行二次变换跳过针对所述编码块的低频不可分变换而进行后续编码过程之后对所述编码块添加的,所述二次变换标识信息用于标识是否需要针对所述视频帧的编码块进行二次变换,其中,所述二次变换标识信息根据所述视频帧的图像内容确定。

在本发明实施的第五方面,还提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

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

处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面任一所述的方法步骤。

在本发明实施的第六方面,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面任一所述的方法步骤。

在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面任一所述的方法步骤。

本发明实施例提供的视频编码和解码方法、装置、电子设备及存储介质,在二次变换标识信息标识不需要针对视频帧的编码块进行二次变换的情况下,则跳过针对编码块的低频不可分变换而进行后续编码过程,如此能够降低视频编码的复杂度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的视频编码方法的流程图;

图2为本发明实施例中确定二次变换标识信息的流程图;

图3为本发明实施例提供的视频解码方法的流程图;

图4为应用本发明实施例提供的视频编码方法和视频解码方法的示意图;

图5为本发明实施例中一个具体实施例的示意图;

图6为本发明实施例中变换以及反变换的示意图;

图7为本发明实施例提供的视频编码装置的一种结构示意图;

图8为本发明实施例提供的视频编码装置的另一种结构示意图;

图9为本发明实施例提供的视频编码装置的又一种结构示意图;

图10为本发明实施例提供的视频编码装置的再一种结构示意图;

图11为本发明实施例提供的视频解码装置的结构示意图;

图12为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

为了进一步去除变换域的冗余,H.266/VVC引入了二次变换技术,二次变换采用低频不可分变换。二次变换只针对帧内模式,并且主变换为离散余弦变换(Discrete CosineTransform,DCT)如二维DCT(DCT2)的情形,只对主变换系数的低频部分进行处理。多功能视频编码(Versatile Video Coding,VVC)相对于高效率视频编码(High Efficiency VideoCoding,HEVC)能节省30%的码率,其中,HEVC是目前编码效率最高的编码标准之一。但是复杂度也是HEVC的10倍。为了降低视频编码过程的复杂度,本发明实施例提供了一种视频编码方法。

本发明实施例提供了的视频编码方法可以应用于电子设备,具体地电子设备可以是服务器、终端等,如编码器等等。

本发明实施例提供了一种视频编码方法,可以包括:

获取待编码视频中视频帧对应的二次变换标识信息,二次变换标识信息用于标识是否需要针对视频帧的编码块进行二次变换;二次变换标识信息根据视频帧的图像内容确定;

若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程。

本发明实施例中,在二次变换标识信息标识不需要针对视频帧的编码块进行二次变换的情况下,则跳过针对编码块的低频不可分变换而进行后续编码过程,如此能够降低视频编码的复杂度。

图1为本发明实施例提供的视频编码方法的流程图。参照图1,本发明实施例提供的视频编码方法可以包括:

S101,获取待编码视频中视频帧对应的二次变换标识信息,二次变换标识信息用于标识是否需要针对视频帧的编码块进行二次变换;二次变换标识信息根据视频帧的图像内容确定;

S102,若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程。

简单理解,即根据视频帧自身的图像内容确定是否需要针对视频帧的编码块进行二次变换。

一种可实现方式中,可以根据视频帧的像素值等确定二次变换标识信息。

本发明实施例中可以预先确定好二次变换标识信息,例如,在视频编码之前确定好待编码视频中每一个视频帧的二次变换标识信息,并将各视频帧对应的二次变换标识信息保存下来,例如,待编码视频包括视频帧1、视频帧2和视频帧3,确定各视频帧的二次变换标识信息之后保存各视频帧对应的二次变换标识信息,如标识信息1标识需要针对视频帧的编码块进行二次变换,标识信息2标识不需要针对视频帧的编码块进行二次变换,视频帧1对应标识信息1,视频帧2对应标识信息2,视频帧3对应标识信息2。如此,在视频编码过程中,可以直接获取预先确定好的二次变换标识信息,并根据二次变换标识信息判断是否跳过针对编码块的低频不可分变换而进行后续编码过程,若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程。

本发明实施例也可以在视频编码过程中实时确定视频帧对应的二次变换标识信息,如在对编码块进行主变换之后,先确定待编码视频中视频帧对应的二次变换标识信息,然后根据二次变换标识信息判断是否跳过针对编码块的低频不可分变换而进行后续编码过程,若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程。

另外,视频编码的复杂度高还会导致视频编码比较耗时,且耗费计算资源和成本,本发明实施例提供的视频编码方法降低了视频编码过程的复杂度,进而还能够缩短视频编码的耗时,降低计算资源的消耗和降低计算成本。

一种可实现方式中,二次变换标识信息可以是否需要针对视频帧的编码块进行二次变换的条件,例如,二次变换标识信息可以包括条件1和条件2,条件1标识不需要针对视频帧的编码块进行二次变换,条件2标识需要针对视频帧的编码块进行二次变换。本发明实施例在视频编码过程中实时确定视频帧对应的二次变换标识信息过程中可以采用二次变换标识信息的这种形式。

另一种可实现方式中,二次变换标识信息的形式可以是基于是否需要针对视频帧的编码块进行二次变换的条件而确定的标识信息值,例如,可以是文字、数字、字母等,二次变换标识信息可以采用不同的值区分是否需要针对视频帧的编码块进行二次变换即可。例如,标识信息值为数字“1”,则标识需要针对视频帧的编码块进行二次变换;标识信息值为数字“0”,则标识不需要针对视频帧的编码块进行二次变换。例如,标识信息值为文字“开启”,则标识需要针对视频帧的编码块进行二次变换;标识信息值为文字“关闭”,则标识不需要针对视频帧的编码块进行二次变换,简单理解,文字“开启”标识针对视频帧的编码块开启二次变换,即在针对视频帧的编码块进行主变换之后需要进行二次变换,文字“关闭”标识针对视频帧的编码块关闭二次变换,即在针对视频帧的编码块进行主变换之后不需要进行二次变换。

视频编码过程中,对视频帧进行编码,一般情况下,是将视频帧划分为编码块进行编码。待编码视频中每一视频帧分别对应有一个二次变换标识信息,在针对对视频帧中的变换块进行编码的过程中,获取该编码块对应的视频帧所对应的二次变换标识信息,并根据该二次变换标识信息确定是否跳过针对编码块的低频不可分变换,也可以理解为根据该二次变换标识信息确定是否进行针对编码块的低频不可分变换。

可以理解,本发明实施例中是针对视频帧确定的二次变换标识信息,在视频编码过程中,同一视频帧的编码块是否进行低频不可分变换的情况应该是相同。例如,视频帧1包括编码块10、编码块11和编码块12,则编码块10、编码块11和编码块12要么均进行低频不可分变换,要么均跳过低频不可分变换。具体地针对同一视频帧的编码块编码时,获取的均是该视频帧的二次变换标识信息。简单理解,本发明实施例是以帧为单位进行或者跳过低频不可分变换,形象地讲,本发明实施例是以帧为单位开启或者关闭低频不可分变换。

若二次变换标识信息标识需要针对视频帧的编码块进行二次变换,则针对编码块进行低频不可分变换。

一种可选地实施例中,在获取视频帧对应的二次变换标识信息之后,方法还包括:

获取编码块对应的主变换系数,主变换系数为对编码块进行主变换得到的;若二次变换标识信息标识需要针对视频帧的编码块进行二次变换,则对主变换系数进行低频不可分变换。

根据二次变换标识信息判断是否针对编码块的低频不可分变换,若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程;若二次变换标识信息标识需要针对视频帧的编码块进行二次变换,则先针对编码块进行低频不可分变换之后进行后续编码过程。

其中,主变换采用的变换方式可以根据实际变换需求确定,例如VVC编码过程中在进行预测之后所执行的DCT。

低频不可分变换的具体过程如下:

低频不可分变换只处理主变换系数中的低频部分,因此将剩余的主变换系数中的高频系数置0。在一种可以实现的方式中,对于4*4型低频不可分变换,保留主变换矩阵左上角4*4区域的数值,其余数值置0,输入16个主变换系数。

进行低频不可分变换时,4*4型低频不可分变换的系数矩阵为

将矩阵X展开成一维向量

为得到变换后的变换系数向量

例如,在8x8的RT中,N=48,R=16,变换矩阵T

在H.266/VVC中,4*4型低频不可分变换,未使用简化不可分变换,因此变换矩阵的尺寸为16*16。而对于8*8型低频不可分变换,则采用约简因子为1/3的简化不可分变换技术,将变换矩阵尺寸由48*48缩减为16*48,对于8*8型低频不可分变换,输入48个主变换系数,在简化不可分变换之后得到16个二次变换系数。针对得到的二次变换系数,进行后续编码过程,以实现对待编码视频的编码。

与DCT、(离散正弦变换(Discrete Sine Transform,DST)直接根据表达式进行数学推到不同,LFNST的变换核是由离线训练(Off-Line Training)得到的。最终采用了4个变换集、每个变换集包含2个变换核的方式。

本发明实施例中根据二次变换标识信息对不需要进行二次变换的视频帧的编码块直接跳过低频不可分变换,具体地在视频编码过程中在进行主变换之后直接进行量化、熵编码等后续编码过程,而对需要进行二次变换的视频帧的编码块,在视频编码过程中在进行主变换之后,先进行低频不可分变换,在进行低频不可分变换之后再进行量化、熵编码等后续编码过程。如此,对不需要进行二次变换的视频帧的编码块直接跳过低频不可分变换能够降低视频编码的复杂度,且对需要进行二次变换的视频帧的编码块进行了低频不可分变换,降低了对视频编码效果的影响。

本发明实施例中若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程加速了变换的过程,也可以理解为一种加速二次变换过程的方法。且本发明实施例中基于视频帧的图像内容确定视频帧对应的二次变换标识信息,进而根据二次变换标识信息判断是否跳过低频不可分变换,也可以理解为一种基于视频内容的加速二次变换过程的快速方法。

视频帧的二次变换标识信息可以根据视频帧的图像梯度确定,二次变换标识信息用于标识视频帧的图像梯度是否不大于预设梯度阈值,若图像梯度大于预设梯度阈值,则用于标识不需要针对视频帧的编码块进行二次变换;若图像梯度不大于预设梯度阈值的二次变换标识信息,则用于标识需要针对视频帧的编码块进行二次变换。

一种可选地实施例中,如图2所示,本发明实施例提供的视频编码方法还可以包括:

S201,获取待编码视频中的视频帧;

S202,基于视频帧的像素值,计算视频帧的图像梯度。

针对视频帧中每行的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每行对应的差值之和;将每行的差值之和相加,得到视频帧的水平梯度;针对视频帧中每列的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每列对应的差值之和;将每列的差值之和相加,得到视频帧的垂直梯度;基于水平梯度和垂直梯度,计算视频帧的图像梯度。

可以将水平梯度与垂直梯度求和,并将求和得到的值与视频帧的像素值个数相除,得到该视频帧的图像梯度。

为了说明简便,以视频帧大小为8x8为例进行说明。实际情况视频帧的大小一般更大,比如1920x1080,1280x720等。

例如,视频帧的的像素值如下:

A00 A01 A02 A03 A04 A05 A06 A07;

A10 A11 A12 A13 A14 A15 A16 A17;

A20 A21 A22 A23 A24 A25 A26 A27;

A30 A31 A32 A33 A34 A35 A36 A37;

A40 A41 A42 A43 A44 A45 A46 A47;

A50 A51 A52 A53 A54 A55 A56 A57;

A60 A61 A62 A63 A64 A65 A66 A67;

A70 A71 A72 A73 A74 A75 A76 A77;

根据视频帧的像素值计算水平梯度grad_hor:

grad_hor=|A01-A00|+|A02-A01|+…+|A07-A06|+|A11-A10|+|A12-A11|+…+|A17-A16|+……|A71-A70|+|A72-A71|+…+|A77-A76|;

根据视频帧的像素值计算垂直梯度grad_ver:

grad_ver=|A10-A00|+|A11-A01|+…+|A17-A07|+|A20-A10|+|A21-A11|+…+|A27-A17|+……|A70-A60|+|A71-A61|+…+|A77-A67|;

得到水平梯度和垂直梯度之后,基于基于水平梯度和垂直梯度,计算视频帧的图像梯度:

图像梯度=(grad_hor+grad_ver)/64;

图像梯度也可以理解为平均梯度值。

S203,若图像梯度大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识不需要针对视频帧的编码块进行二次变换;若图像梯度不大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识需要针对视频帧的编码块进行二次变换。

其中,预设梯度阈值可以根据实际需求或经验等确定。一种可实现方式中,预设梯度阈值为30。

一种可实现方式中,可以直接将图像梯度大于预设梯度阈值或者图像梯度不大于预设梯度阈值作为二次变换标识信息。即二次变换标识信息可以是图像梯度大于预设梯度阈值或者图像梯度不大于预设梯度阈值,图像梯度大于预设梯度阈值标识不需要针对视频帧的编码块进行二次变换,图像梯度大于预设梯度阈值或者图像梯度不大于预设梯度阈值标识需要针对视频帧的编码块进行二次变换。

另一种可实现方式中,根据图像梯度大于预设梯度阈值,或者图像梯度不大于预设梯度阈值,确定二次变换标识信息为不同的标识信息值,不同的标识信息值标识需要或者不需要针对视频帧的编码块进行二次变换。具体地标识信息值可以是文字、数字、字母等。

例如,若图像梯度大于预设梯度阈值,可以确定标识信息值为数字“1”,标识信息值为数字“1”,则标识需要针对视频帧的编码块进行二次变换;若图像梯度不大于预设梯度阈值,可以确定表示信息值为数字“0”,标识信息值为数字“0”,则标识不需要针对视频帧的编码块进行二次变换。

例如,若图像梯度不大于预设梯度阈值,可以确定标识信息值为文字“开启”,标识信息值为文字“开启”,则标识需要针对视频帧的编码块进行二次变换;若图像梯度大于预设梯度阈值,可以确定标识信息值为文字“关闭”,标识信息值为文字“关闭”,则标识不需要针对视频帧的编码块进行二次变换。简单理解,文字“开启”标识针对视频帧的编码块开启二次变换,即在针对视频帧的编码块进行主变换之后需要进行二次变换,文字“关闭”标识针对视频帧的编码块关闭二次变换,即在针对视频帧的编码块进行主变换之后不需要进行二次变换。

通过大量的统计和分析,发现LFNST工具对某些内容的视频帧能够有效去除冗余以提升编码效率,而对于某些某些内容的视频帧则效果不佳。

图像的梯度值大的时候,图像的复杂度一般偏高,而图像复杂度偏高,则说明图像的频域信息较复杂,变换到频域所带来的信息压缩有限,而低频不可分变换就是将主变换得到的结果变换到频域,即若图像的梯度值大的时候,针对图像进行低频不可分变换对整个视频编码的效果并不好,如并不能很好地去除冗余。基于此,本发明实施例对图像梯度值大的视频帧关闭低频不可分变换,也可以理解为在视频编码过程中不对图像梯度值大的视频帧进行低频不可分变换。

本发明实施例中根据图像梯度大于预设梯度阈值表示视频帧的梯度值较大。具体地,根据视频帧的像素值确定视频帧的图像梯度,根据图像梯度是否不大于预设梯度阈值,确定不同的二次变换标识信息,若图像梯度大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识不需要针对视频帧的编码块进行二次变换;若图像梯度不大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识需要针对视频帧的编码块进行二次变换。如此,在视频编码过程中,可以根据图像帧对应的二次变换标识信息有选择地的对视频帧进行或者跳过二次变换,也即低频不可分变换。

本发明实施例中对于进行低频不可分变换对整个视频编码的效果并不好的视频帧进行编码时,跳过针对视频帧的编码块的低频不可分变换;而对于进行低频不可分变换对整个视频编码的效果比较好的视频帧进行编码时,再对主变换系数进行低频不可分变换,如此,能够降低视频编码的复杂度,且降低对视频编码效果的影响。

一种可选地实施例中,本发明实施例提供的视频编码方法还可以包括:

对编码块添加标志位,标志位用于标识在视频编码过程中针对编码块是否进行了低频不可分变换。

具体地,可以在二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,跳过针对编码块的低频不可分变换而进行后续编码过程之后,对编码块添加未进行低频不可分变换的标志位,例如,添加标志位“0”。

也可以在二次变换标识信息标识需要针对视频帧的编码块进行二次变换,对主变换系数进行低频不可分变换之后,对编码块添加进行了低频不可分变换的标志位,例如,添加标志位“1”。

为了后续解码过程中方便地判断是否需要针对编码块进行反低频不可分变换,本发明实施例中视频编码过程中在判断二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,跳过针对编码块的低频不可分变换而进行后续编码过程之后,对编码块添加标志位。

可以理解,本发明实施例中是针对视频帧确定的二次变换标识信息,在视频编码过程中,同一视频帧的编码块是否进行了低频不可分变换的情况应该是相同。例如,视频帧1包括编码块10、编码块11和编码块12,则编码块10、编码块11和编码块12要么均进行了低频不可分变换,要么均未进行低频不可分变换。

本发明实施例提供了的视频解码方法可以应用于电子设备,该电子设备可以是与上述视频编码方法的电子设备相同的设备,也可以是不同的设备,具体地电子设备可以是服务器、终端等,如解码器等等。

本发明实施例还提供了一种视频解码方法,如图3所示,可以包括:

S301,获取编码块对应的标志位;

S302,若标志位标识在视频编码过程中针对编码块未进行低频不可分变换,则在针对编码块的编码结果进行反量化之后跳过反低频不可分变换而进行后续解码过程。

其中,标志位是在获取待编码视频中视频帧对应的二次变换标识信息,若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换跳过针对编码块的低频不可分变换而进行后续编码过程之后对编码块添加的,二次变换标识信息用于标识是否需要针对视频帧的编码块进行二次变换,其中,所述二次变换标识信息根据所述视频帧的图像内容确定。

本发明实施例中针对视频编码过程中未进行低频不可分变换的编码块进行解码时,如此,在视频解码过程中也无需进行反低频不可分变换,降低了视频解码的复杂度。

本发明实施例中在视频编码过程中可以在二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,跳过针对编码块的低频不可分变换而进行后续编码过程之后,对编码块添加未进行低频不可分变换的标志位。

也可以在二次变换标识信息标识需要针对视频帧的编码块进行二次变换,对主变换系数进行低频不可分变换之后,对编码块添加进行了低频不可分变换的标志位。

视频解码过程中,若标志位标识在视频编码过程中针对编码块进行了低频不可分变换,则在针对编码块的编码结果进行反量化之后先进行反低频不可分变换,之后再进行后续解码过程。

总的来讲,在视频编码过程针对编码块是否进行了低频不可分变换添加不同的标识位,如此,在针对编码块的解码过程中,在针对编码块进行反主变换之后,先根据标志位进行判断,若标志位标识在视频编码过程中针对编码块未进行低频不可分变换,则在针对编码块的编码结果进行反量化之后跳过反低频不可分变换而进行后续解码过程;若标志位标识在视频编码过程中针对编码块进行了低频不可分变换,则在在针对编码块的编码结果进行反量化之后先进行反低频不可分变换,然后再进行后续解码过程如反主变换、重建等。

图4为应用本发明实施例提供的视频编码方法和视频解码方法的示意图。参照图4,变换量化是编码器中占时非常耗时的一个模块,包含主变换、二次变换、量化等过程。本发明实施例在视频编码过程中,先进行预测,如帧内预测、帧间预测的等;然后进行主变换,主变换之后先判断是否需要进行二次变换,也即判断是否需要进行低频不可分变换。

具体地,计算待编码视频中当前编码块对应的视频帧的图像梯度(简单理解为当前帧的平均梯度),然后判断图像梯度是否大于预设梯度阈值,如果图像梯度大于预设梯度阈值,则关闭低频不可分变换,即在进行主变换之后直接进行量化等后续编码过程;如果图像梯度不大于预设梯度阈值,则开启低频不可分变换,即在进行主变换之后先进行低频不可分变换然后再进行量化等后续编码过程。

其中,可以预先计算待编码视频中当前编码块对应的视频帧的图像梯度,然后根据图像梯度是否大于预设梯度阈值确定视频帧的二次变换标识信息,如此,在针对编码块进行主变换之后,获取二次变换标识信息,然后根据二次变换标识信息直接判断是否需要进行低频不可分变换。若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程;若二次变换标识信息标识需要针对视频帧的编码块进行二次变换,则针对编码块进行低频不可分变换。

针对每一编码块,在跳过针对编码块的低频不可分变换而进行后续编码过程之后,对编码块添加未进行低频不可分变换的标志位;对主变换系数进行低频不可分变换之后,对编码块添加进行了低频不可分变换的标志位。

参照图4,在视频解码过程中,先对编码块的编码结果进行反量化,反量化之后先根据编码块对应的标志位判断是否进行反二次变换,即反低频不可分变换。若编码块的标志位标识在视频编码过程中针对编码块未进行低频不可分变换,则在针对编码块的编码结果进行反量化之后跳过反二次变换而进行后续解码过程如反主变换、重建;若标志位标识在视频编码过程中针对编码块进行了低频不可分变换,则在在针对编码块的编码结果进行反量化之后先进行反低频不可分变换,然后再进行反主变换、重建等后续解码过程。

对不需要进行二次变换的视频帧的编码块直接跳过低频不可分变换能够降低视频编码的复杂度,且对需要进行二次变换的视频帧的编码块进行了低频不可分变换,降低了对视频编码效果的影响。进而还能够缩短视频编码的耗时,降低计算资源的消耗和降低计算成本,节省计算和带宽成本。对应地,本发明实施例中针对视频编码过程中未进行低频不可分变换的编码块进行解码时,如此,在视频解码过程中也无需进行反低频不可分变换,降低了视频解码的复杂度。

本发明实施例中的视频编码可以是VVC编码,对应地,视频解码可以是VVC解码。本发明实施例提供的视频编码方法可以应用于VVC编码器,如此,VVC编码器可以大幅节省公司带宽成本,且可以解决由于复杂度太高还不太具有实用性的问题,即更具有实用性。另外,还有利于更快的上线VVC编码器。

本发明实施例中可以对用户观看的视频进行处理,例如,待编码视频是待提供给用户观看的视频,通过本发明实施例提供的方法能够降低视频编码、视频解码的复杂度,总的来讲,降低了对视频处理的复杂度,如此,在提供给用户观看的过程中,可以更流畅地向用户提供观看的视频,可以给用户带来更加极致的观看体验如观影体验。

一种可实现的方式中,如图5所示,可以通过如下步骤实现对待处理视频编码和解码。

S501,输入视频(Input video)。

S502,变换、量化(transform/quantization)

S503,帧内预测(Intra prediction);

S504;运动补偿、运动估计(Motion est./comp.);

S505,熵编码(Entropy coding);

S506,反量化、反变换(inv.quant/inv.transform);

S507,环路滤波器(In loop filter);

S508,参考帧缓存(decoded picture buffer)。

首先进行预测编码,帧内预测编码可以采用帧内预测或者帧间预测。通常帧间预测性编码包括运动补偿、运动估计。

输入视频经过帧内预测或者帧间预测得到的预测残差作变换、量化,具体地,对预测残差进行变换,得到变换系数,对变换系数进行量化,得到量化系数。

量化之后进行熵编码,进而可以得到编码结果。

其中,变换可以包括主变换、二次变换,主变换可以采用离散余弦变换,二次变换可以采用低频不可分变换。

其中,如图6所示,以8*8型低频不可分变换作为二次变换为例,在S601:正向主变换(Forward primary transform)之后,执行S602:正向低频不可分变换(Forward low-frequency non-separable transform),然后执行S603:量化。具体地,正向低频不可分变换采用简化不可分变换,在输入48个主变换系数之后,得到16个二次变换系数,再对着这16个二次变换系数进行量化(Quantization)。

低频不可分变换的变换核是由离线训练(Off-Line Training)得到的,采用4个变换集,每个变换集包含两个变换核的方案。

相关技术中首先输入一帧待编码的图像,按照CTU(例如128X128大小的正方形块)为单位逐个进行编码。然后对CTU进行块划分,划分为CU。然后进行预测编码(包括帧内预测、帧间预测模式,二选一),然后进行变换、量化、最后进行熵编码。为了得到参考帧,需要对变换量化之后的数据进行反变换、反量化,然后加上预测块,得到重建块,重建块进行滤波得到最终重建块,保存到DPB(decoded picture buffer)中,用于帧间预测备用。

本发明实施例中在S502变换、量化的过程中可以获取待编码视频中视频帧对应的二次变换标识信息,根据二次变换标识信息判断是否进行二次变换,也即是否进行低频不可分变换。二次变换标识信息可以预先确定,例如,或者到视频后,针对视频的每一视频帧,基于视频帧的像素值,计算视频帧的图像梯度,若图像梯度大于预设梯度阈值,则确定视频帧对应的二次变换标识信息为“关闭”,标识不需要针对视频帧的编码块进行二次变换;若图像梯度不大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识为“开启”,标识需要针对视频帧的编码块进行二次变换。

例如,输入视频帧之后,先对视频帧进行图像分析,判断是否关闭二次变换并记录下来,如此,在视频编码过程中,根据记录的信息判断是否对视频帧的编码块进行二次变换。如果当前帧被判定为需要开启LFNST,则标记下来,后面对这帧所有的块进行变换的时候,都先做主变换,再做二次变换。如果当前帧被判定为不需要做LFNST,也标记下来,则后面对这帧所有的块进行变换的时候,都只做主变换,不做二次变换。

具体地确定二次变换标识信息以及基于二次变换标识信息判断是跳过二次变换还是进行二次变换在上述实施例中已经进行了详细说明,这里不再赘述。

熵编码是将得到的所有数据包括运动矢量、残差的量化系数、还有预测性编码的一些参数进行压缩。熵编码包括可变长度编码,算术编码和霍夫曼编码。

后续可以对编码结果进行解码。视频解码可以看作视频编码的逆过程,对应于变换、量化,将反量化后得到的系数进行反变换后得到残差数据。

在视频解码时,根据熵编码的类型,将编码的数据展开,得到转换编码数据,对应编码过程,转换编码数据包括运动矢量、残差的量化系数、还有预测性编码的一些参数。

具体地,可以对编码结果进行反量化、反变换等。

环路滤波器是线性的低通滤波器,通过环路滤波器可以滤除高频分量和噪声。根据帧间预测或帧内预测的预测模式,在参考帧缓存的基础上,处理运动矢量,产生预测帧,在预测帧的基础上,叠加残差数据,得到当前帧,实现对编码视频的解码。

对应图6所示的变换量化方式,视频解码过程中,获取视频编码的结果,如量化后进行熵编码等的结果,执行S604:反量化;S605:反向低频不可分变换;S606:反向主变换。具体地,反量化、反变换可以是在接收到比特流传输的数据后,对接收到的数据进行反量化,之后对应正向低频不可分变换,进行反向低频不可分变换(Inverse low-frequency non-separable transform),具体地,在进行反向低频不可分变换(Inverse low-frequencynon-separable transform)时,采用反向简化不可分变换,得到48个变换系数,其中反简化不可分变换的变换矩阵是正向简化不可分变换变换矩阵的转置。最后针对这48个变换系数进行反向主变换(Inverse primary transform)后,完成反变换过程。

对应变换过程中可以包括主变换、二次变换,在视频解码过程中,反变换可以包括反主变换、反二次变换,反主变换可以理解为上述主变换的逆过程,反二次变换可以理解为上述二次变换的逆过程。本发明实施例中,针对视频帧的变那块,可以获取编码块对应的标志位;若标志位标识在视频编码过程中针对编码块未进行低频不可分变换,则在针对编码块的编码结果进行反量化之后跳过反低频不可分变换而进行后续解码过程。

本发明实施例还提供了一种视频编码装置,如图7所示,可以包括:

第一获取模块701,用于获取待编码视频中视频帧对应的二次变换标识信息,二次变换标识信息用于标识是否需要针对视频帧的编码块进行二次变换;其中,所述二次变换标识信息根据所述视频帧的图像内容确定;

跳过模块702,用于若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换,则跳过针对编码块的低频不可分变换而进行后续编码过程。

可选地,如图8所示,装置还包括:

第二获取模块801,用于获取待编码视频中的视频帧;

计算模块802,用于基于视频帧的像素值,计算视频帧的图像梯度;

确定模块803,用于若图像梯度大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识不需要针对视频帧的编码块进行二次变换;若图像梯度不大于预设梯度阈值,则确定视频帧对应的二次变换标识信息标识需要针对视频帧的编码块进行二次变换。

可选地,计算模块802,具体用于针对视频帧中每行的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每行对应的差值之和;将每行的差值之和相加,得到视频帧的水平梯度;针对视频帧中每列的像素值,依次计算两两相邻像素值之间差值的绝对值,并将两两相邻像素值之间差值的绝对值求和,得到每列对应的差值之和;将每列的差值之和相加,得到视频帧的垂直梯度;基于水平梯度和垂直梯度,计算视频帧的图像梯度。

可选地,如图9所示,装置还包括:

第三获取模块901,用于在获取视频帧对应的二次变换标识信息之后,获取编码块对应的主变换系数,主变换系数为对编码块进行主变换得到的;

变换模块902,用于若二次变换标识信息标识需要针对视频帧的编码块进行二次变换,则对主变换系数进行低频不可分变换。

可选地,如图10所示,装置还包括:

添加模块1001,用于对编码块添加标志位,标志位用于标识在视频编码过程中针对编码块是否进行了低频不可分变换。

本发明实施例还提供了一种视频解码装置,如图11所示,包括:

获取模块1101,用于获取编码块对应的标志位;

解码模块1102,用于若标志位标识在视频编码过程中针对编码块未进行低频不可分变换,则在针对编码块的编码结果进行反量化之后跳过反低频不可分变换而进行后续解码过程,其中,标志位是在获取待编码视频中视频帧对应的二次变换标识信息,若二次变换标识信息标识不需要针对视频帧的编码块进行二次变换跳过针对编码块的低频不可分变换而进行后续编码过程之后对编码块添加的,二次变换标识信息用于标识是否需要针对视频帧的编码块进行二次变换,其中,所述二次变换标识信息根据所述视频帧的图像内容确定。

本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,

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

处理器1201,用于执行存储器1203上所存放的程序时,实现上述实施例提供的视频编码方法或视频解码方法。

上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述终端与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的视频编码方法或视频解码方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频编码方法或视频解码方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种视频编码方法、解码方法、装置及电子设备
  • 一种视频编码、解码方法、装置、电子设备及系统
  • 解码方法、装置、电子设备以及存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种编码方法、解码方法及装置、计算机可读存储介质
  • 视频编码/解码方法、视频编码/解码装置和存储介质
  • 一种视频编码和解码方法、装置、电子设备及存储介质
技术分类

06120115928826