首页> 中国专利> 以子块为单位恢复的方法和图像解码装置

以子块为单位恢复的方法和图像解码装置

摘要

公开了以子块为单位恢复的方法以及图像解码装置。根据本发明的一个实施方式,提供了一种以子块为单位恢复的方法,其为以包括在当前块中的子块为单位恢复当前块的方法的,该方法包括以下步骤:从比特流解码当前块的变换块中的变换系数、指示子块的划分形式的子块信息以及指示应用于变换块的变换类型的变换类型信息;基于由变换类型信息指示的变换类型和子块信息,从变换系数推导当前块的残差块;以及对当前块的基于残差块推导出的恢复块中的子块的边界进行滤波。[代表图:图4]。

著录项

  • 公开/公告号CN113875255A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利权人 SK电信有限公司;

    申请/专利号CN202080037105.8

  • 申请日2020-03-20

  • 分类号H04N19/625(20060101);H04N19/119(20060101);H04N19/70(20060101);H04N19/176(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人孙东喜;原宏宇

  • 地址 韩国首尔

  • 入库时间 2023-06-19 13:27:45

说明书

技术领域

本发明涉及视频编码和解码,更具体地,涉及一种基于子块的重构方法和视频解码设备,其通过以子块为单位重构视频块来提高编码和解码效率。

背景技术

由于视频数据的体积大于语音数据或静止图像数据的体积,因此在不进行压缩处理的情况下存储或发送视频数据需要包括存储器在内的大量硬件资源。

因此,在存储或发送视频数据时,通常使用编码器对视频数据进行压缩以进行存储或发送。然后,解码器接收经压缩的视频数据,并且解压缩和再现视频数据。针对这种视频的压缩技术包括H.264/AVC和与H.264/AVC相比编码效率提高了约40%的高效视频编码(HEVC)。

然而,视频的尺寸、分辨率和帧率都在逐渐增大,并且相应地,需要编码的数据量也在不断增加。因此,需要一种比现有压缩技术具有更好编码效率和更高图像质量的新压缩技术。

发明内容

技术问题

本发明旨在提供一种改进的视频编码和解码技术,并且更具体地,本发明的一个方面涉及一种用于通过以子块为单位执行变换、重新排列、滤波等来提高编码和解码效率的技术。

技术方案

根据至少一个方面,本公开提供一种以包括在当前块中的子块为单位重构当前块的方法。该方法包括以下步骤:从比特流解码当前块的变换块中的变换系数、指示子块的划分形式的子块信息和指示应用于变换块的变换类型的变换类型信息;基于由变换类型信息指示的变换类型和子块信息,从变换系数推导当前块的残差块;以及对当前块的基于残差块推导出的重构块中的子块的边界进行滤波。

根据另一方面,本公开提供一种用于以包括在当前块中的子块为单位重构当前块的视频解码设备。该设备包括:解码器,该解码器被配置为从比特流中解码当前块的变换块中的变换系数、指示子块的划分形式的子块信息和指示应用于变换块的变换类型的变换类型信息;逆变换器,该逆变换器被配置为基于由变换类型信息指示的变换类型和子块信息从变换系数推导当前块的残差块;以及滤波单元,该滤波单元被配置为对当前块的基于残差块推导出的重构块中的子块的边界进行滤波。

有益效果

如上所述,根据本发明的实施方式,以子块为单位进行变换、量化、系数编码等,因此可以期望压缩性能的提高。

另外,根据本发明的另一实施方式,可以通过重新排列系数来进一步提高变换、量化、系数编码等的效果。

附图说明

图1是用于实现本公开的技术的视频编码设备的示例框图。

图2是例示使用四叉树加二叉树三叉树(QTBTTT)结构划分块的方法的图。

图3是例示多个帧内预测模式的图。

图4是用于实现本公开的技术的视频解码设备的示例框图。

图5是例示根据本发明的实施方式的以子块为单位重构的方法的流程图。

图6至图8是例示子块的划分形式的图。

图9是例示针对变换类型的基函数的波形的一组图。

图10是例示适合于残差信号的能量分布的变换类型的一组图。

图11是例示子块的划分类型的一组图。

图12至图19是例示本发明的用于重新排列残差样本的各个实施方式的图。

具体实施方式

在下文中将结合附图详细描述本公开的一些实施方式。应当注意的是,在各个附图中向组成元件添加附图标记时,尽管元件在不同的附图中示出,但是相同的附图标记表示相同的元件。此外,在本公开的以下描述中,将省略并入本文的已知功能和配置的详细描述以避免混淆本公开的主题。

图1是能够实现本公开的技术的视频编码设备的示例性框图。在下文中,将参照图1描述视频编码设备和该设备的元件。

视频编码设备包括块分割器110、预测器120、减法器130、变换器140、量化器145、编码器150、逆量化器160、逆变换器165、加法器170、滤波器单元180和存储器190。

视频编码设备的每个元件可以以硬件或软件,或者硬件和软件的组合的形式来实现。各个元件的功能可以用软件来实现,并且微处理器可以被实现为执行与各个元件相对应的软件功能。

一个视频由多个图片组成。每个图片被分割成多个区域,并对每个区域执行编码。例如,一个图片被分割成一个或多个图块(tile)和/或切片。这里,一个或更多个图块可以被定义为图块组。每个图块或切片被分割成一个或更多个编码树单元(CTU)。每个CTU通过树结构被分割成一个或更多个编码单元(CU)。应用于每个CU的信息被编码为CU的语法(syntax),并且公共地应用于包括在一个CTU中的CU的信息被编码为CTU的语法。另外,公共地应用于一个图块中的所有块的信息被编码为图块的语法或编码为作为多个图块的集合的图块组的语法,并且应用于构成一个图片的所有块的信息被编码在图片参数集(PPS)或图片头部中。此外,由多个图片共同参考的信息被编码在序列参数集(SPS)中。另外,由一个或更多个SPS共同参考的信息被编码在视频参数集(VPS)中。

块分割器110确定编码树单元(CTU)的尺寸。关于CTU的尺寸(CTU尺寸)的信息被编码为SPS或PPS的语法,并且被发送到视频解码设备。

块分割器110将构成视频的每个图片分割成具有预定尺寸的多个CTU,然后使用树结构递归地分割CTU。在树结构中,叶节点用作作为编码的基本单元的编码单元(CU)。

树结构可以是其中节点(或上代节点)被分割成具有相同尺寸的四个子节点(或子代节点)的四叉树(QT)、其中节点被分割成两个子节点的二叉树(BT)、其中节点以1:2:1的比例被分割成三个子节点的三叉树(TT)、或者由QT结构、BT结构和TT结构中的两个或更多个的组合而形成的结构。例如,可以使用QTBT(四叉树加二叉树)结构或QTBTTT(四叉树加二叉树三叉树)结构。这里,BTTT可以统称为多类型树(MTT)。

图2示出了QTBTTT分割树结构。如图2所示,最初可以以QT结构来分割CTU。可以重复QT分割,直至分割块的尺寸达到QT中所允许的叶节点的最小块尺寸(MinQTSize)。指示QT结构的每个节点是否被分割成下层的四个节点的第一标志(QT_split_flag)由编码器150进行编码并且发信号通知给视频解码设备。当QT的叶节点不大于BT中所允许的根节点的最大块尺寸(MaxBTSize)时,其可以进一步以BT结构或TT结构中的一种或更多种进行分割。在BT结构和/或TT结构中,可以存在多个分割方向。例如,可以存在两个方向,即节点的块的水平分割和垂直分割。如图2所示,当MTT分割开始时,指示节点是否被分割的第二标志(mtt_split_flag)、指示分割方向(垂直或水平)的标志和/或指示分割类型(二叉或三叉)的标志由编码器150进行编码并发信号通知给视频解码设备。

作为树结构的另一示例,当使用QTBTTT结构对块进行分割时,关于指示块已被分割的CU分割标志(split_cu_flag)和指示分割类型是否是QT分割的QT分割标志(split_qt_flag)的信息通过编码器150而被编码并发信号通知给视频解码设备。当split_cu_flag的值指示块尚未被分割时,节点的块变为分割树结构中的叶节点并用作作为编码的基本单元的编码单元(CU)。当split_cu_flag的值指示块已被分割时,通过split_qt_flag的值来区分分割类型是QT还是MTT。当分割类型为QT时,没有附加信息。当分割类型为MTT时,指示MTT分割方向(垂直或水平)的标志(mtt_split_cu_vertical_flag)和/或指示MTT分割类型(二叉或三叉)的标志(mtt_split_cu_binary_flag)通过编码器150而被编码并发信号通知给视频解码设备。

作为树结构的另一示例,当使用QTBT时,可以存在两种分割类型,即将节点的块水平分割(即,对称水平分割)和垂直分割(即,对称垂直分割)成相同尺寸的两个块。指示BT结构的每个节点是否被分割成下层的块的分割标志(split_flag)和指示分割类型的分割类型信息由编码器150进行编码并发送给视频解码设备。可以存在将节点的块分割为两个非对称块的附加类型。非对称分割类型可以包括将块以1:3的尺寸比例分割为两个矩形块的类型以及将节点的块进行斜向分割(diagonally splitting)的类型。

根据CTU的QTBT或QTBTTT分割,CU可以具有各种尺寸。在下文中,将与要编码或解码的CU(即,QTBTTT的叶节点)相对应的块称为“当前块”。

预测器120预测当前块以生成预测块。预测器120包括帧内预测器122和帧间预测器124。

一般来说,可以对图片中的每个当前块进行预测编码。可以使用帧内预测技术(其基于来自包含当前块的图片的数据执行)或帧间预测技术(其基于来自在包含当前块的图片之前被编码的图片的数据执行)来执行当前块的预测。帧间预测包括单向预测和双向预测二者。

帧内预测器122使用包括当前块的当前图片中位于当前块周围的像素(参考像素)来预测当前块中的像素。根据预测方向,存在多种帧内预测模式。例如,如图3所示,多个帧内预测模式可以包括非定向模式以及65个定向模式,非定向模式包括平面模式和DC模式。针对每种预测模式,以不同方式定义了要使用的相邻像素和公式。

帧内预测器122可以确定在对当前块进行编码时要使用的帧内预测模式。在一些示例中,帧内预测器122可以使用若干种帧内预测模式对当前块进行编码并且从测试的模式当中选择适当的帧内预测模式来使用。例如,帧内预测器122可以使用对若干测试的帧内预测模式的率失真分析(rate-distortion analysis)来计算率失真值,并且可以选择在测试的模式当中具有最佳率失真特性的帧内预测模式。

帧内预测器122从多个帧内预测模式当中选择一个帧内预测模式,并使用根据所选帧内预测模式所确定的相邻像素(参考像素)和公式来预测当前块。关于所选帧内预测模式的信息由编码器150进行编码并发送给视频解码设备。

帧间预测器124通过运动补偿处理生成当前块的预测块。帧间预测器在比当前图片更早编码和解码的参考图片中搜索与当前块最相似的块,并基于搜索到的块生成当前块的预测块。然后,帧间预测器生成与当前图片中的当前块和参考图片中的预测块之间的位移相对应的运动矢量。通常,对亮度分量(luma component)执行运动估计,并且针对亮度分量和色度分量二者,使用基于亮度分量计算出的运动矢量。包括关于用于预测当前块的参考图片的信息和关于运动矢量的信息的运动信息由编码器150进行编码并发送给视频解码设备。

减法器130通过从当前块中减去由帧内预测器122或帧间预测器124生成的预测块来生成残差块。

变换器140将空间域中具有像素值的残差块中的残差信号变换为频域中的变换系数。变换器140可以使用当前块的总尺寸作为变换单元来变换残差块中的残差信号。另选地,变换器可以将残差块分割为变换区域和非变换区域的子块,并且仅使用变换区域的子块作为变换单元来变换残差信号。这里,变换区域子块可以是基于水平轴线(或垂直轴线)尺寸比例为1:1的两个矩形块之一。在这种情况下,指示仅子块已被变换的标志(cu_sbt_flag)、方向(垂直/水平)信息(cu_sbt_horizontal_flag)和/或位置信息(cu_sbt_pos_flag)由编码器150进行编码并发信号通知给视频解码设备。另外,变换区域子块的尺寸可以基于水平轴线(或垂直轴线)具有1:3的尺寸比。在这种情况下,用于区分分割的标志(cu_sbt_quad_flag)附加地由编码器150编码并发信号通知给视频解码设备。

变换器140可以选择多个变换类型中的一个并对残差信号进行变换。多个变换类型可以包括基于余弦的变换(例如,离散余弦变换类型II(DCT-II)和DCT VIII)和基于正弦的变换(例如,离散正弦变换类型VII(DST-VII))。此外,变换器140可以跳过变换并将空间域中的残差信号不改变地输出到量化器145。

量化器145对从变换器140输出的变换系数进行量化,并且向编码器150输出量化变换系数。

编码器150通过使用诸如基于上下文的自适应二进制算术编码(CABAC)之类的编码方法对量化变换系数进行编码,从而生成比特流。编码器150对与块分割相关的诸如CTU尺寸、CU分割标志、QT分割标志、MTT分割方向和MTT分割类型之类的信息进行编码,使得视频解码设备与视频编码设备以相同方式分割块。

此外,编码器150对关于指示当前块是通过帧内预测还是通过帧间预测被编码的预测类型的信息进行编码,并且根据预测类型对帧内预测信息(即,关于帧内预测模式的信息)或帧间预测信息(关于参考图片和运动矢量的信息)进行编码。此外,编码器150可以对与变换相关的语法元素进行编码。作为示例,编码器150可以对指示残差信号的变换是否被跳过的变换跳过标志、当不跳过残差信号的变换时指示在多个变换类型当中用于变换残差信号的变换类型的变换类型信息等进行编码。

逆量化器160对从量化器145输出的量化变换系数进行逆量化以生成变换系数。逆变换器165将从逆量化器160输出的变换系数从频域变换到空间域并重构残差块。

加法器170将经重构的残差块与由预测器120生成的预测块相加,以重构当前块。经重构的当前块中的像素用作下一个块的帧内预测的参考像素。

滤波器单元180对经重构的像素进行滤波以减少由于基于块的预测和变换/量化而产生的块伪影(blocking artifact)、振铃伪影和模糊伪影。滤波器单元180可以包括去块滤波器182和样本自适应偏移(SAO)滤波器184。

去块滤波器180对经重构的块之间的边界进行滤波,以去除由逐块编码/解码引起的块伪影,并且SAO滤波器184附加地对去块滤波后的视频进行滤波。SAO滤波器184是用于补偿由有损编码引起的经重构像素和原始像素之间的差异的滤波器。

通过去块滤波器182和SAO滤波器184滤波后的重构块存储在存储器190中。一旦重构了一个图片中的所有块,重构图片就被用作用于要编码的下一幅图片中的块的帧间预测的参考图片。

尽管图1中未示出,但是视频编码设备还可以包括用于重新排列残差块中的残差信号(样本)的控制装置。该控制装置可以与图1所示的子组件一起在同一物理组件(处理器等)中实现,或者与图1所示的子组件在不同的物理组件中实现。下面将详细描述控制装置。

图4是能够实现本公开的技术的视频解码设备的示例性功能框图。在下文中,将参照图4描述视频解码设备和该设备的元件。

视频解码设备可以包括解码器410、逆量化器420、逆变换器430、预测器440、加法器450、滤波器单元460和存储器470。

与图1的视频编码设备类似,视频解码设备的每个元件可以实现为硬件或软件,或者可以实现为硬件和软件的组合。另外,每个元件的功能可以被实现为软件,并且微处理器可以被实现为执行与每个元件相对应的软件的功能。

解码器410通过对从视频编码设备接收到的比特流进行解码并提取与块分割相关的信息来确定要解码的当前块,并且提取重构当前块所需的预测信息和关于残差信号的信息。

解码器410从序列参数集(SPS)或图片参数集(PPS)中提取关于CTU尺寸的信息,确定CTU的尺寸,并将图片分割成具有所确定尺寸的CTU。然后,解码器将CTU确定为最上层(即,树结构的根节点),并且提取关于CTU的分割信息,以利用树结构对CTU进行分割。

例如,当使用QTBTTT结构对CTU进行分割时,首先提取与QT分割相关的第一标志(QT_split_flag),并将每个节点分割为下层的四个节点。然后,针对与QT的叶节点相对应的节点,提取与MTT分割相关的第二标志(MTT_split_flag)和关于分割方向(垂直/水平)和/或分割类型(二叉/三叉)的信息,并且以MTT结构分割叶节点。这样,以BT或TT结构递归地分割QT的叶节点下面的每个节点。

作为另一示例,当使用QTBTTT结构对CTU进行分割时,首先提取指示CU是否被分割的CU分割标志(split_cu_flag)。如果对应的块被分割,则提取QT分割标志(split_qt_flag)。当分割类型不是QT而是MTT时,附加地提取指示MTT分割方向(垂直或水平)的标志(mtt_split_cu_vertical_flag)和/或指示MTT分割类型(二叉或三叉)的标志(mtt_split_cu_binary_flag)。在分割过程中,每个节点可以经历零次或更多次递归QT分割,并且然后经历零次或更多次递归MTT分割。例如,CTU可以直接被MTT分割,或者可以仅被QT分割多次。

作为另一示例,当使用QTBT结构分割CTU时,提取与QT分割相关的第一标志(QT_split_flag),并且每个节点被分割成下层的四个节点。针对与QT的叶子节点相对应的节点,提取指示该节点是否被进一步BT分割的split_flag和分割方向信息。

一旦通过树结构分割确定了要解码的当前块,解码器410就提取关于指示当前块是经历了帧内预测还是帧间预测的预测类型的信息。当预测类型信息指示帧内预测时,解码器410提取针对当前块的帧内预测信息(帧内预测模式)的语法元素。当预测类型信息指示帧间预测时,解码器410提取针对帧间预测信息的语法元素(即,关于运动矢量的信息和关于由运动矢量参考的参考图片的信息)。

同时,解码器410提取关于当前块的量化变换系数的信息作为关于残差信号的信息。此外,解码器410提取与变换相关的语法元素。例如,解码器410可以提取变换跳过标志,并且当变换跳过标志指示不跳过变换时,提取变换类型信息等。当变换跳过标志指示变换跳过时,解码器410提取关于当前块的量化残差信号(其不是量化变换系数)的信息作为关于残差信号的信息。

逆量化器420对量化变换系数(或残差信号)进行逆量化,并且逆变换器430通过将逆量化变换系数从频域逆变换到空间域来恢复残差信号,从而生成针对当前块的残差块。可以基于由解码器410提取的与变换相关的语法元素来执行逆变换。例如,当变换跳过标志指示变换跳过时,跳过由逆变换器430进行的逆变换。在这种情况下,包括逆量化残差信号的块被输出为残差块。当变换跳过标志指示执行变换时,逆变换器430根据由变换类型信息指示的变换类型执行逆变换。例如,当变换类型指示DCT-II时,逆变换器430通过使用DCT-II变换矩阵执行逆变换来生成残差块,并且当变换类型指示DCT-VII时,逆变换器430通过使用DCT-VII变换矩阵执行逆变换来生成残差块。

另外,当逆变换器430仅对变换块的部分区域(子块)进行逆变换时,提取指示仅变换块的子块已被变换的标志(cu_sbt_flag)以及关于子块的方向信息(垂直/水平)(cu_sbt_horizontal_flag)和/或子块位置信息(cu_sbt_pos_flag)。然后,通过将子块的变换系数从频域逆变换到空间域来重构残差信号。针对没有被逆变换的区域,用“0”填充残差信号。从而,创建针对当前块的最终残差块。

预测器440可以包括帧内预测器442和帧间预测器444。在当前块的预测类型为帧内预测时激活帧内预测器442,并且在当前块的预测类型为帧间预测时激活帧间预测器444。

帧内预测器442基于从解码器410提取的帧内预测模式的语法元素,在多个帧内预测模式当中确定当前块的帧内预测模式,并根据帧内预测模式基于当前块周围的参考像素预测当前块。

帧间预测器444通过使用由解码器410提取的与帧间预测信息相关的语法元素确定当前块的运动矢量和由运动矢量参考的参考图片,并使用运动矢量和参考图片预测当前块。

加法器450通过将从逆变换器输出的残差块和从帧间预测器或帧内预测器输出的预测块相加来重构当前块。经重构的当前块中的像素用作针对稍后要解码的块的帧内预测的参考像素。

滤波器单元460可以包括去块滤波器462和SAO滤波器464。去块滤波器462对重构块之间的边界执行去块滤波,以去除由逐块解码引起的块伪影。SAO滤波器464对去块滤波之后的重构块执行附加滤波,以补偿由有损编码引起的重构像素和原始像素之间的差异。通过去块滤波器462和SAO滤波器464滤波的重构块被存储在存储器470中。当重构了一个图片中的所有块时,重构图片用作针对之后要编码的图片中的块的帧间预测的参考图片。

尽管图4中未示出,但是视频解码设备还可以包括用于重新排列残差块中的残差信号的控制装置。该控制装置可以与图4所示的子组件一起在同一物理组件(处理器等)中实现,或者与图4所示的子组件在不同的物理组件中实现。下面将详细描述控制装置。

此外,包括在视频解码设备中的控制装置是在功能方面与包括在视频编码设备中的上述控制装置相对应的组件。在下文中,为了容易区分包括在视频解码设备中的控制装置和包括在视频编码设备中的控制装置,包括在视频解码设备中的控制装置将被称为解码控制装置,并且包括在视频编码设备中的控制装置将被称为编码控制装置。

本发明提出了以子块为单位重构当前块的各种方法。各种重构方法可以包括变换系数的扫描、变换系数的子块的逆变换、残差样本(residual sample)的子块重新排列、子块的边界滤波等。本发明提出的各种编码方法可以包括残差样本的子块的重新排列、残差样本的子块的子块变换、变换系数的扫描、子块的边界滤波等。

如本文所使用的,子块可以是执行扫描、逆变换/变换、重新排列、滤波等的单位。子块可以是变换块TU或包括在变换块中的小块。如本文所使用的,当前块可以是被分成多个子块、由多个子块组成或者被划分成多个子块的单元。因此,当前块可以与执行编码和解码的一般单元块或执行变换的单元块相对应。

在图6至图8中示出子块的划分形式(划分方向和划分类型)的各种示例。图6示出了当前块600以1:1的比例被分离或划分为子块610和620的二元划分类型,并且图7和图8示出了其中当前块600以1:3的比例被分离或划分为子块610和620的四元划分类型。

如图6所示,当前块600可以被划分为具有相同大小的两个子块610和620。根据划分方向,划分形式可以分为垂直方向划分(见图6的(a)和图6的(b))和水平方向划分(见图6的(c)和图6的(d))。

如图7所示,当前块600可以以1:3的比例被划分为两个子块610和620。根据划分方向,划分形式可以被分类为垂直方向划分(见图7的(a)和图7的(b))和水平方向划分(见图7的(c)和图7的(d))。

如图8所示,当前块600可以以1:3的比例被划分为两个子块610和620。根据比例为1的子块610的位置,划分形式可以被分类为左上侧划分(见图8的(a))、右上侧划分(见图8的(b))、左下侧划分(见图8的(c))和右下侧划分(见图8的(d))。

在图6至图8所示的子块划分中,阴影区域(子块)610表示存在残差样本的值并因此执行变换的区域,并且非阴影区域(子块)620表示残差样本的值不存在或几乎不存在并且因此不执行变换的区域。在本说明书中,其中执行变换的区域被称为“变换子块610”,并且其中不执行变换的区域被称为“非变换子块620”。

关于子块被划分的方向,指示划分方向的划分方向信息可以被实现为sbt_direction_flag或sbt_horizontal_flag。在划分方向信息的实现示例当中,“sbt_direction_flag=1”可以表示子块在水平方向上划分,并且“sbt_direction_flag=0”可以表示子块在垂直方向上划分。“sbt_horizontal_flag=1”可以表示子块在水平方向上划分,“sbt_horizontal_flag=0”可以表示子块在垂直方向上划分(不在水平方向上划分)。sbt_direction_flag和sbt_horizontal_flag的值可以被设置为与上述含义相反的含义。

关于子块的划分类型,划分类型信息可以与指示变换子块610和非变换子块620在二元划分类型和四元划分类型之间的划分类型的信息相对应。

划分类型信息可以被实现为sbt_binary_flag或sbt_quad_flag。“sbt_binary_flag=1”可以表示变换子块610和非变换子块620的划分类型与二元划分类型相对应,并且“sbt_binary_flag=0”可以表示变换子块610和非变换子块620的划分类型与四元划分类型相对应(不与二元划分类型相对应)。此外,“sbt_quad_flag=1”可以表示具有当前块600的四分之一大小的子块被包括在当前块600中(四元划分类型),并且“sbt_quad_flag=0”可以表示具有当前块600一半大小的子块被包括在当前块600中(二元划分类型)。

子块变换与仅变换当前块600的分布有非零残差样本值的部分区域(变换子块)而不变换当前块600中的所有变换系数的方法相对应。

视频编码设备可以通过将变换系数包括在比特流中来发信号通知当前块的变换块中的变换系数。当执行子块变换时,发信号通知的变换系数可以与变换子块610中的变换系数相对应。换句话说,在这种情况下,可以不发信号通知非变换子块620中的变换系数。

视频编码设备可以通过在比特流中包括变换类型信息来发信号通知指示应用于变换块的变换类型的变换类型信息。此外,当执行子块变换时,视频编码设备可以通过在比特流中包括子块信息来发信号通知指示子块的划分形式的子块信息。

子块信息可以包括指示子块的划分方向的划分方向信息(例如,sbt_direction_flag或sbt_horizontal_flag)、指示子块的划分类型的划分类型信息(例如,sbt_binary_flag或sbt_quad_flag)以及作为与变换区域相对应的子块的变换子块610的位置信息(例如,sbt_pos_flag)中的至少一个。

解码器410可以从比特流中解码变换系数、子块信息和变换类型信息(S550)。当当前块600被分离为变换子块610和非变换子块620时,经解码的变换系数可以仅由变换子块610中的变换系数组成。

逆变换器430可以基于由变换类型信息指示的变换类型和子块信息从由逆量化器420逆量化的变换系数推导残差样本(残差块)(S560)。这里,残差块可以包括与变换子块610相对应的区域和与非变换子块620相对应的区域。

作为示例,逆变换器430可以使用子块信息来识别当前块600中的变换子块610(区分变换子块和非变换子块),并且通过将变换类型应用于逆量化变换系数来推导残差样本(残差块中与变换子块相对应的区域)。与变换子块610不同,非变换子块620中的残差样本(残差块中与非变换子块相对应的区域)可以用零值填充。换句话说,未变换的区域可以被视为具有全零系数。

作为另一示例,整个残差块(变换子块和非变换子块)填充有全零值,并且然后可以用从逆变换器430推导出的残差样本(变换子块的残差样本)填充与变换子块610相对应的区域。

此外,如上所述,视频编码设备和视频解码设备可以使用当前块的残差块和预测块推导当前块的重构块(S570)并对推导出的重构块(包括重构块的重构图片)进行滤波(S580)。

去块滤波器180和462对重构块之间的边界进行滤波以去除块伪影。当根据本发明以子块为单位执行变换时,子块之间的边界可以被视为将应用滤波的块边界。

换句话说,去块滤波器180和462可以通过将变换子块610和非变换子块620之间的边界视为可以应用滤波的边界来执行滤波。这可以表示,当子块与变换块相对应时,对变换块之间的边界执行滤波。此外,可以表示,当子块610和620是包括在变换块中的小块时,通过将子块610和620之间的边界视为一种变换块边界来执行滤波。

根据一些实施方式,是否执行本发明提出的以子块为单位的重构方法(子块变换)可以通过使能信息(例如,sbt_enabled_flag)和应用信息(例如,sbt_flag)来确定。

使能信息是指示子块变换是被激活还是去激活(被允许或不允许)的信息。使能信息可以被定义在序列级报头、图片级报头和图块组报头中的至少一个中并且从视频编码设备发信号通知给视频解码设备。

应用信息是指示是否应用子块变换的信息并且可以在使能信息指示子块变换被激活时被包括在比特流中并且被发信号通知。当子块610和620与变换块相对应时,可以以当前块为单位发信号通知应用信息(例如,cu_sbt_flag),并且当子块610和620与包括在变换块中的小块相对应时,可以以变换块为单位发信号通知应用信息(例如,tu_sbt_flag)。

当使能信息和应用信息指示执行子块变换时,视频编码设备可以发信号通知变换系数、变换类型信息和子块信息。与此不同,当使能信息指示不允许子块变换或应用信息指示不应用子块变换时,视频编码设备可以仅发信号通知变换系数和变换类型信息。换句话说,可以在执行子块变换时发信号通知子块信息。

首先,解码器410可以从比特流中解码使能信息(S510)。当使能信息指示子块变换被激活时(S520),解码器410可以对应用信息进行解码(S530)。此外,当应用信息指示应用子块变换时,解码器410可以对变换系数、变换类型信息和子块信息进行解码(S550)。当使能信息指示不允许子块变换(S520)或应用信息指示不应用子块变换(S540)时,解码器410可以不解码子块信息并且可以仅解码系数和变换类型信息(S590)。

下面将描述用于通过重新排列残差样本来进一步改进子块变换的本发明的各个实施方式。

变换意指将像素域信号值(输入信号值)变换为频域信号值(系数信号值)的处理。高效视频编码(HEVC)标准使用三种类型的变换(DCT、DST和变换跳过)来执行变换或逆变换。在图9中,示出了针对DCT和DST的基函数,并且这些基函数是通过改变余弦图(cosinegraph)和正弦图的周期获得的。

在DCT变换类型中,图9的(a)中所示的基函数用于将输入信号值变换为系数信号值。在DST变换类型中,图9的(b)所示的基函数用于将输入信号值变换为系数信号值。当要变换的输入信号具有与基函数的波形相似的形状时,可以有效地处理变换。换句话说,当输入信号具有与基函数的波形相似的形状时,输出系数信号值的总量减少,并且因此可以提高压缩性能。

在视频编码标准中,待变换的输入信号在预测后变成残差信号(残差样本)。因此,根据残差样本的形状、形式或波形(残差样本值的形状、形式或波形),可以在变换类型当中选择用于高效变换的变换类型。图10示出详细示例。

如图10的(a)所示,在帧内预测中,待编码或解码的像素a、b、c和d的各个值与参考样本(阴影圆圈)之间的差值(误差值)可以基于距参考样本的距离而增加。具体地,当像素越靠近参考样本时,预测准确度越高,并且因此误差值可以相对较小。当像素离参考样本越远时,预测准确度越低,并且因此误差值可能会相对更大。在图10的(a)中,如双点划线所标记的朝向右上方行进的直线表示基于距参考样本的距离的误差值幅值(magnitude)。

图10的(b)示出了比较双点划线与DCT基函数的波形的示例,并且图10的(c)示出了比较双点划线与DST基函数的波形的示例。双点划线示出幅值随着距离的增大而增大的图案(increasing pattern)。DCT基函数的波形示出幅值的随着距离的增大而减小的图案,并且DST基函数的波形示出幅值随着距离的增大而增大的图案。因此,可以看出DST变换类型适用于逐渐增大的残差样本值。

变换跳过类型可以适用于在从残差块的左上侧到右下侧的方向上残差样本值减小的分布形式。这是因为编码变换系数的传统方法适用于许多系数值分布在低频区域而没有系数值分布在高频区域的情况。

本发明提出了一种将残差块中具有非零值的残差样本的分布调整(或重新排列)到当前块600的左上侧并对重新排列的残差样本进行变换、量化、滤波等的方法。这旨在通过将其中非零系数排列在与变换之后的低频位置相对应的左上侧的变换特性应用于子块变换来使子块变换的效果最大化。

重新排列残差样本的方法可以包括基于一条直线翻转(flipping)或移位(shifting)残差样本的方法。

翻转或移位残差样本的示例在图11中示出。图11的(a)示出重新排列前的残差样本,图11的(b)至图11的(d)示出经翻转的残差样本,并且图11的(e)至图11的(g)示出经移位的残差样本。每个残差样本中示出的数字表示样本的位置。

重新排列前的残差样本(见图11的(a))可以被上下反转以进行基于水平轴线(水平方向上的虚线)的重新排列(H-翻转,见图11的(b)),被左右反转以进行基于垂直轴线(垂直方向上的虚线)的重新排列(V-翻转,见图11的(c)),以及被上下反转和左右反转以进行基于水平轴线和垂直轴线的重新排列(HV-翻转,见图11的(d))。HV-翻转可以被认为是H-翻转和V-翻转两者的结果。

重新排列前的残差样本(见图11的(a))可以被上下移位以进行基于水平轴线的重新排列(H-移位,见图11的(e)),被左右移位以进行基于垂直轴线的重新排列(V-移位,见图11的(f)),以及被上下移位和左右移位以进行基于水平轴线和垂直轴线的重新排列(HV-移位,见图11的(g))。HV-移位可以被认为是H-移位和V-移位两者的结果。

反转残差样本的方法被表示为下面的式1至式3。

[式1]

r′[x][y]=r[nTbS-x-1][y]

[式2]

r′[x][y]=r[x][nTbS-y-1]

[式3]

r′[x][y]=r[nTbS-x-1][nTbS-y-1]

式1表示V-翻转,式2表示H-翻转并且式3表示HV-翻转。

例如,变换子块610和非变换子块620可以如图6的(b)所示被划分。在这种情况下,当应用V-翻转或V-移位时,具有非零值的系数(残差样本)可以重新排列在当前块600的左侧,如图6的(a)所示。此外,变换子块610和非变换子块620可以如图6的(d)所示被划分。在这种情况下,当应用H-翻转或H-移位时,具有非零值的系数可以重新排列在当前块600中的上侧,如图6的(a)所示。

作为另一示例,变换子块610和非变换子块620可以如图8的(b)所示被划分。在这种情况下,当应用V-翻转或V-移位时,具有非零值的系数可以重新排列在当前块600的左上侧,如图8的(a)所示。此外,变换子块610和非变换子块620可以如图8的(c)所示被划分。在这种情况下,当应用H-翻转或H-移位时,具有非零值的系数可以重新排列在当前块600的左上侧,如图8的(a)所示。此外,变换子块610和非变换子块620可以如图8的(d)所示被划分。在这种情况下,当应用HV-翻转或HV-移位时,具有非零值的系数可以重新排列在当前块600的左上侧,如图8的(a)所示。

指示残差样本是否被重新排列的重新排列信息可以被实现为sbt_shifting和sbt_flipping中的任何一个。在重新排列信息的实现示例当中,“sbt_shifting=1”可以表示残差样本被移位(重新排列),并且“sbt_shifting=0”可以表示残差样本没有被移位。“sbt_flipping=1”可以表示残差样本被反转(重新排列),并且“sbt_flipping=0”可以表示残差样本没有被反转。sbt_shifting和sbt_flipping的值可以被设置为与上述含义相反的含义。

实施方式1与一种可以应用于图6所示的二元划分类型和图7所示的四元划分类型中的任何一种的重新排列方法相对应。

当使能信息指示允许子块变换时(S1210),视频编码设备可以发信号通知使能信息并且可以发信号通知应用信息(S1220)。

当应用信息指示应用子块变换时(S1230),视频编码设备可以重新排列残差样本,并且然后对当前块600执行子块变换(S1260)。可以通过变换处理从变换子块610中的残差样本推导变换系数,并且可以在没有变换处理的情况下用零填充非变换子块620中的残差样本。换句话说,非变换子块620中的残差样本可以被视为全零值。

视频编码设备可以发信号通知变换子块610中的变换系数、变换类型信息和指示子块的划分方向的划分方向信息(S1240)。当使能信息不指示子块变换被允许(S1210)或应用信息指示不应用子块变换时(S1230),视频编码设备可以针对整个当前块600执行变换(S1270)。在这种情况下,可以不发信号通知划分方向信息。

视频解码设备可以从比特流解码变换子块610中的变换系数、变换类型信息和子块信息(划分方向信息)(S1310)。此外,视频解码设备可以通过根据由变换类型信息指示的变换类型对变换系数进行逆变换来推导残差样本(残差块)(S1320)。这里,变换子块610中的残差样本可以通过变换系数的逆变换推导,并且非变换子块620中的残差样本可以被设置为零。

视频解码设备可以基于由划分方向信息指示的划分方向来重新排列残差样本(S1340)。这里,经过重新排列处理的残差样本的分布可以与视频编码设备重新排列残差样本之前的残差样本的分布相同。在这种情况下,视频解码设备可以基于重新排列的残差样本推导重构块(S1350)。

根据一些实施方式,可以如由视频编码设备发信号通知的重新排列信息(例如,sbt_shifting或sbt_flipping)所指示的那样执行重新排列残差样本的处理S1340。

视频编码设备还可以发信号通知指示残差样本是否已经被重新排列的重新排列信息(S1250)。当发信号通知的重新排列信息指示重新排列时(S1330),视频解码设备可以基于由划分方向信息指示的划分方向来重新排列残差样本(S1340)。与此不同的是,当重新排列信息指示残差样本没有被重新排列时(S1330),视频解码设备可以基于推导出的残差样本推导重构块而不执行重新排列处理(S1350)。

作为实施方式1的一个示例,当如图6的(b)所示,具有非零值的残差样本被分布到当前块600的右侧时,使能信息和应用信息可以被设置为“1”,划分方向信息可以被设置为“0”(意指垂直方向),并且重新排列信息可以被设置为“1”。结果,残差样本被重新排列,使得具有非零值的残差样本可以被重新排列在当前块600的左侧,如图6的(a)所示。

实施方式2与可以应用于允许二元划分类型和四元划分类型两者的情况的重新排列方法相对应。与实施方式1相比,实施方式2中可以进一步使用划分类型信息。

当应用信息指示允许子块变换时(S1430),视频编码设备可以划分类型信息与将划分方向信息一起包括在子块信息中,并且将子块信息发信号通知给视频解码设备(S1440)。由于子块信息,可以指定变换子块610的位置。

可以以与实施方式1相同的方式执行使能信息信令(S1410)、应用信息信令(S1420)、划分方向信息信令(S1450)、残差样本重新排列(S1460)、子块变换(S1420)和整块变换(S1480)。

视频解码设备可以使用包括在子块信息中的划分类型信息和划分方向信息来识别当前块600中的变换子块610(S1520),并且通过根据由变换类型信息指示的变换类型对变换子块610中的变换系数进行逆变换来推导变换子块610中的残差样本(残差块)(S1530)。

可以以与实施方式1相同的方式执行变换系数、变换类型信息和子块信息的解码(S1510)、残差样本重新排列(S1550)、重构块推导(S1560)等。

作为实施方式2的示例,当具有非零值的残差样本分布到当前块600的右四分之一区域时(当变换子块在当前块的右四分之一区域中时),使能信息和应用信息可以被设置为“1”,划分类型信息(sbt_binary_flag)可以被设置为“0”(意指四元划分类型),划分方向信息(sbt_direction)可以被设置为“0”(意指垂直方向),并且重新排列信息(sbt_shifting)可以被设置为“1”。

结果,在当前块600的右四分之一区域中具有非零值的残差样本(见图7的(b))可以被重新排列在当前块600的左四分之一区域中,如图7的(a)所示。

根据实施方式,可以如由视频编码设备发信号通知的重新排列信息所指示的那样执行重新排列残差样本的处理S1550。

视频编码设备还可以发信号通知指示残差样本是否已经被重新排列的重新排列信息(S1460)。当发信号通知的重新排列信息指示重新排列时(S1540),视频解码设备可以基于由划分方向信息指示的划分方向来重新排列残差样本(S1550)。与此不同的是,当重新排列信息指示残差样本尚未被重新排列时(S1540),视频解码设备可以基于推导出的残差样本来推导重构块而不执行重新排列处理(S1560)。

实施方式3与在图7所示的四元划分类型的情况下通过发送总共四个区域当中的一个区域(变换子块)的位置信息来重新排列残差样本的方法。

位置信息是指定变换子块610在当前块600中的位置的信息。换句话说,位置信息是指示子块600中具有非零变换系数的子块(变换子块)的信息。图17示出了位置信息被表示为2比特索引的示例。根据图17所示的示例,第一四分之一区域1、第二四分之一区域2、第三四分之一区域3和第四四分之一区域4可以分别被表示为“00”、“01”、“10”、和“11”。

当应用子块变换时,视频编码设备可以将位置信息与划分方向信息一起包括在子块信息中,并将子块信息发信号通知给视频解码设备。由于变换子块610可以由于位置信息而被指定,所以可以不发信号通知划分类型信息,并且也可以不发信号通知重新排列信息。

可以以与实施方式1或实施方式2相同的方式执行使能信息信令、应用信息信令、残差样本重新排列、子块变换、整块变换等。

视频解码设备可以使用划分方向信息和位置信息来指定当前块600中的变换子块610,并且通过根据由变换类型信息所指示的变换类型对指定的变换子块610中的变换系数进行逆变换来推导变换子块610中的残差样本。此外,视频解码设备可以根据由划分方向信息指示的划分方向来重新排列残差样本。

可以以与实施方式1或实施方式2相同的方式执行变换系数和变换类型信息的解码、子块变换,重构块推导等。

作为实施方式3的示例,当如图17的(a)所示,具有非零值的残差样本在第三四分之一区域3中时(当变换子块为第三四分之一区域时),应用信息被设置为“1”,分割方向信息(sbt_direction)可以被设置为“0”(意指垂直方向),并且指示变换子块610的位置信息可以被设置为“10”。结果,如图17的(b)所示,第三四分之一区域3中的残差样本可以被重新排列在第一四分之一区域1中。

实施方式4与在四元划分类型的情况下通过发送总共四个区域当中的多个区域(变换子块)的位置信息来重新排列残差样本的方法相对应。

如图18所示,当前块600可以包括多个变换子块610-1和610-2。在这种情况下,视频编码设备可以将多个变换子块610-1和610-2的位置信息与划分方向信息一起包括在子块信息中,并将子块信息发信号通知给视频解码设备。然而,当子块610和620如图8所示被划分时,可以不发信号通知划分方向信息。

在实施方式4中,位置信息是指定多个子块610-1和610-2的位置的信息,并且可以是总共四比特的索引。

在四个比特当中,第一比特表示第一四分之一区域1是否与变换子块610相对应,第二比特表示第二四分之一区域2是否与变换子块610相对应,第三比特表示第三四分之一区域3是否与变换子块610相对应并且第四比特表示第四四分之一区域4是否与变换子块610相对应。

由于变换子块610-1和610-2可以由于位置信息而被指定,所以可以不发信号通知划分类型信息并且也可以不发信号通知重新排列信息。

视频编码设备可以重新排列变换子块610-1和610-2中的两者或一者,使得变换子块610-1和610-2位于当前块600的左侧、上侧或左上侧。当重新排列完成时,曾彼此间隔开的变换子块610-1和610-2变为彼此相邻。结果,变换子块610-1和610-2可以被视为单个变换子块。因此,该处理可以被理解为对变换子块610-1和610-2进行分组。

视频编码设备可以对经分组的变换子块610-1和610-2执行子块变换、量化、滤波等。可以以与实施方式1至3相同的方式执行使能信息信令、应用信息信令、残差样本重新排列、子块变换、整块变换等。

视频解码设备可以使用划分方向信息和位置信息指定当前块600中的变换子块610-1和610-2,并且通过根据由变换类型信息指示的变换类型对指定的变换子块610-1和610-2中的变换系数进行逆变换来推导变换子块610-1和610-2中的残差样本。

此外,视频解码设备可以根据由划分方向信息指示的划分方向来重新排列残差样本。当未发信号通知划分方向信息时(图8的划分形式),视频解码设备可以基于位置信息重新排列残差样本。

可以对变换子块610-1和610-2中的两者或一者执行重新排列。例如,变换子块610-1和610-2当中的位于与位置信息不对应的位置处的变换子块与已经由视频编码设备应用重新排列的块相对应,并且因此可以对该变换子块应用重新排列。与此不同,位于与位置信息相对应的位置处的变换子块与未由视频编码设备应用重新排列的块相对应,并且因此可以不对该变换子块应重新排列。

可以以与实施方式1至3中相同的方式执行变换系数、变换类型信息和子块信息的解码(S1610)、重构块推导(S1650)等。

实施方式4的示例在图18中示出。

图18的(a)示出了重新排列前不相邻的两个变换子块610-1和610-2,并且图18的(b)示出了重新排列之后分组的变换子块610-1和610-2。

在图18的(a)和图18的(b)的示例中,使能信息和应用信息可以被设置为“1”,并且划分方向信息(sbt_direction)可以被设置为“0”(意指垂直方向)。由于重新排列前的变换子块610-1和610-2分别位于第一四分之一区域1和第三四分之一区域3,因此位置信息可以被设置为“1010”。

在图18的(c)和图18的(d)的示例中,使能信息和应用信息可以被设置为“1”。由于重新排列前的变换子块610-1和610-2分别位于按Z扫描顺序的第一四分之一区域1和第四四分之一区域4,因此位置信息可以被设置为“1001”。

实施方式5与仅扫描或重新排列变换子块610中的变换系数的方法相对应。系数扫描处理意指扫描变换子块610中非零系数的处理。可以在量化器145和逆量化器420或其它组件(重新排列单元,未示出)中执行扫描处理。

视频编码设备可以执行重新排列残差样本的处理,然后是变换和量化变换子块610的处理。此外,视频编码设备可以通过系数扫描方法将二维块形式的系数改变(重新排列)为一维矢量的形式,以对经量化的变换系数进行编码。

本发明提出的扫描方法包括区分变换子块610和非变换子块620,并对变换子块610和非变换子块620分别应用扫描。换句话说,视频编码设备不对非变换子块620执行扫描处理,并且可以仅对变换子块610执行扫描处理。非变换子块620被视为量化变换系数未被编码的区域。这可以理解为将变换子块610的cu_cbf设置为“1”并且将非变换子块620的cu_cbf设置为“0”。这里,cu_cbf与指示系数值是否全部为零或是否存在至少一个非零系数值的信息相对应。

与在视频编码设备中执行的系数扫描有关的信息可以从视频编码设备发信号通知给视频解码设备。

视频解码设备可以基于与系数扫描相关的信息以与扫描顺序相反的顺序执行系数扫描。通过该处理,可以将以一维向量形式表示的系数(量化变换系数)恢复(重新排列)为二维块。

与视频编码设备一样,视频解码设备不对非变换子块620执行扫描处理并且可以仅对变换子块610执行扫描处理。因此,可以扫描变换子块610中的变换系数(经量化的变换系数),并且可以用零填充非变换子块620中的所有值。

实施方式5的示例在图19中示出。图19示出了斜向向上扫描方法(diagonal-upscanning method)。如图19的(a)所示,当变换子块610在当前块600的左侧时,可以仅对变换子块610应用斜向向上扫描处理(由箭头指示)。对非变换子块620可以省略扫描处理。如图19的(b)所示,当变换子块610在当前块600的上侧时,可以仅对变换子块610应用斜向向上扫描处理(由箭头指示)。可以省略对非变换子块620的扫描处理。

由于系数扫描处理意指扫描变换子块610中的非零系数的处理,因此应该发信号通知针对要扫描的区域(变换子块)中的非零系数的语法。例如,发信号通知指示变换子块610中的最后一个非零系数的位置的语法,并且分别针对从最左上部的4×4子块到其中存在最后一个非零系数的4×4子块的4×4子块发信号通知指示4×4子块是否具有至少一个非零系数的语法。针对最左上部的4×4子块和其中存在最后一个非零系数的4×4子块,可以不编码指示4×4子块是否具有至少一个非零系数的语法(可以不发信号通知指示其中存在最后一个非零系数的4×4子块是否具有至少一个非零系数以及最左上部的4×4子块是否具有至少一个非零系数的语法)。这里,不发信号通知针对不扫描的区域(非变换子块)中的非零系数的4×4子块单元语法。

例如,扫描处理可以按图19中所示的扫描顺序应用于从最左上部的4×4子块到其中存在最后一个非零系数的4×4子块的4×4子块,并且可以发信号通知指示非零系数的语法。另选地,扫描处理可以按照与图19所示的扫描顺序相反的顺序应用于从存在最后一个非零系数的4×4子块到最左上部的4×4子块的4×4子块,并且可以发信号通知指示非零系数的语法。

尽管出于说明的目的描述了本发明的示例性实施方式,但是本领域技术人员将理解,在不脱离本发明的构思和范围的情况下,各种修改和变化是可能的。已经为了简洁和清楚起见描述了示例性实施方式。因此,普通技术人员将理解,本发明的范围不受上述明确描述的实施方式的限制,而是包括权利要求及其等效物。

相关申请的交叉引用

本申请要求于2019年3月21日提交的韩国专利申请第10-2019-0032578号和2019年11月8日提交的韩国专利申请第10-2019-0142195号的优先权,它们的全部内容通过引用并入本文。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号