影像编码和解码方法及装置
文献发布时间:2023-06-19 13:48:08
技术领域
本发明涉及视频的编码和解码,更具体地,本发明涉及将每个图像分区为能够独立显示的子图像并且对每个子图像编码和解码。
背景技术
由于视频数据量大于语音数据量或静止影像数据量,因此在不进行压缩处理的情况下存储或传输视频数据需要大量的硬件资源,包括存储器。
相应地,在存储或传输视频数据时,通常利用编码器来压缩视频数据,以便于存储或传输视频数据。然后,解码器接收压缩后的视频数据,且解压并再现视频数据。用于这种视频的压缩技术包括H.264/AVC和高效率视频编码(High Efficiency Video Coding,HEVC),所述高效率视频编码(HEVC)比H.264/AVC的编码效率提高了大约40%。
然而,视频影像的大小、分辨率和帧速率逐渐增加,因此要编码的数据量也在增多。因此,需要一种与现有的压缩技术相比具有更好的编码效率和更高的影像质量的新压缩技术。
此外,由于诸如360视频的各种应用的出现,需要一种不仅显示解码的图像的整个区域,还显示图像的部分区域的技术。
发明内容
技术问题
本发明涉及用于将每个图像分区为可以彼此独立显示的子图像的技术,以及用于对每个子图像编码和解码的技术。
技术方案
根据本发明的一个方面,提供了一种视频解码方法,其用于解码包含编码的图像序列的比特流,所述图像被分区为包括多个编码树块的多个子图像。所述方法包括:从比特流中解码关于来自包括在序列中的图像的分区的子图像的布局信息;在由布局信息识别的子图像的任意一个中以树结构分割要解码的编码树块,并且确定目标块;从比特流中解码用于预测目标块的预测信息和关于目标块的残差信号的信息;基于预测信息来预测目标块中的像素,并且生成预测块;基于关于残差信号的信息来生成目标块的残差块;通过将预测块与残差块相加来重构目标块。
根据本发明的另一方面,提供了一种视频解码装置,其用于解码包含编码的图像序列的比特流,所述图像被分区为包括多个编码树块的多个子图像。所述装置包括:解码器、预测器、残差重构器和加法器,所述解码器配置为从比特流中解码关于来自包括在序列中的图像的分区的子图像的布局信息,在由布局信息识别的子图像的任意一个中以树结构分割要解码的编码树块,并且确定目标块,以及从比特流中解码用于预测目标块的预测信息和关于目标块的残差信号的信息;所述预测器配置为基于预测信息来预测目标块中的像素,并且生成预测块;所述残差重构器配置为基于关于残差信号的信息来生成目标块的残差块;所述加法器配置为通过将预测块与残差块相加来重构目标块。
在本文中,构成图像的子图像是能够彼此独立显示的单元。
附图说明
图1是能够实现本发明的技术的视频编码装置的示例性框图。
图2是示出利用QTBTTT结构的块分割的示意图。
图3是示出多个帧内预测模式的示意图。
图4是能够实现本发明的技术的视频解码装置的示例性框图。
图5是显示比特流的结构的示例性图。
图6是示出包含第三参数集的NAL单元的结构的示例性图。
图7是示出构成每个图像的子图像的布局的示例性图。
图8是示出构成每个图像的子图像的布局的另一示例性图。
图9是示出处理彼此重叠的子图像的方法的示例性图。
具体实施方式
在下文中,将参考所附附图对本发明的一些实施方案进行详细描述。应当注意,在将附图标记分配给各个附图中的组成元件时,尽管元件在不同的附图中示出,但是相同的附图标记表示相同的元件。此外,在本发明的以下描述中,将省略合并于本文中的已知功能和配置的详细描述,以避免模糊本发明的主题。
图1是能够实现本发明的技术的视频编码装置的示例性框图。在下文中,将参考图1描述视频编码装置以及该装置的元件。
视频编码装置包括:块分割器110、预测器120、减法器130、变换器140、量化器145、重组器150、熵编码器155、逆量化器160、逆变换器165、加法器170、环路滤波单元180和存储器190。
视频编码装置的每个元件可以以硬件或软件或者硬件和软件的组合来实现。各个元件的功能可以实现为软件,并且微处理器可以实现为执行对应于各个元件的软件功能。
一个视频包括多个图像。每个图像分割为多个区域,并且对每个区域执行编码。例如,一个图像分割为一个或更多个瓦片(tile)和/或切片(slice)。这里,一个或更多个瓦片可以被定义为瓦片组。每个瓦片或切片被分割为一个或更多个编码树单元(coding treeunit,CTU)。每个CTU通过树结构分割为一个或更多个编码单元(coding unit,CU)。应用于每个CU的信息被编码为CU的语法,并且共同应用于包括在一个CTU中的CU的信息被编码为CTU的语法。另外,共同应用于一个切片中的所有块的信息被编码为切片头的语法,而应用于构成一个或更多个图像的所有块的信息被编码在图像参数集(Picture Parameter Set,PPS)或图像头中。此外,由多个图像组成的序列共同参考的信息被编码在序列参数集(Sequence Parameter Set,SPS)中。共同应用于一个瓦片或瓦片组的信息可以被编码为瓦片头或瓦片组头的语法。
块分割器110确定编码树单元(CTU)的大小。关于CTU的大小(CTU尺寸)的信息被编码为SPS或PPS的语法,并且被传输至视频解码装置。
块分割器110将构成视频的每个图像分割为具有预定大小的多个CTU,然后利用树结构递归地分割CTU。在树结构中,叶节点用作编码单元(CU),所述编码单元(CU)是编码的基本单元。
树结构可以是四叉树(QuadTree,QT)、二叉树(BinaryTree,BT)、三叉树(TernaryTree,TT)、或由两个或更多个QT结构、BT结构和TT结构组合形成的结构,所述四叉树(QT)即节点(或父节点)被分割为相同大小的四个从节点(或子节点),所述二叉树(BT)即节点被分割为两个从节点,所述三叉树(TT)即节点以1:2:1的比率被分割为三个从节点。例如,可以使用四叉树加二叉树(QuadTree plus BinaryTree,QTBT)结构,或者可以使用四叉树加二叉树三叉树(QuadTree plus BinaryTree TernaryTree,QTBTTT)结构。这里,BTTT可以统称为多类型树(multiple-type tree,MTT)。
图2示例性地示出QTBTTT分割树结构。如图2所示,CTU可以首先分割为QT结构。可以重复QT分割,直到分割块的大小达到QT中允许的叶节点的最小块大小MinQTSize。由熵编码器155对指示QT结构的每个节点是否被分割为下层的四个节点的第一标志(QT_split_flag)编码,并将其用信号通知视频解码装置。当QT的叶节点不大于BT中允许的根节点的最大块大小(MaxBTSize)时,可以进一步将其分割为一个或更多个BT结构或TT结构。BT结构和/或TT结构可以具有多个分割方向。例如,可以存在两个方向,即,水平地分割节点的块的方向和竖直地分割块的方向。如图2所示,当MTT分割开始时,通过熵编码器155来对指示节点是否被分割的第二标志(mtt_split_flag)、指示分割情况下的分割方向(竖直或水平)的标志、和/或指示分割类型(二叉或三叉)的标志编码,并将其用信号通知视频解码装置。替选地,在对指示每个节点是否被分割为下层的4个节点的第一标志(QT_split_flag)编码之前,可以对指示节点是否被分割的CU分割标志(split_cu_flag)编码。当CU分割标志(split_cu_flag)的值指示出没有执行分割时,节点的块成为分割树结构中的叶节点,并用作编码单元(CU),这是编码的基本单元。当CU分割标志(split_cu_flag)的值指示出执行分割时,视频编码装置开始以上述方式从第一标志起对标志编码。
当使用QTBT作为树结构的另一个示例时,可以存在两种分割类型,即将块水平地分割为相同大小的两个块的类型(即,对称水平分割)和将块竖直地分割为相同大小的两个块的类型(即,对称竖直分割)。由熵编码器155对指示BT结构的每个节点是否被分割为下层的块的分割标志(split_flag)和指示分割类型的分割类型信息进行编码,并将其传输至视频解码装置。可以存在将节点的块分割为两个非对称块的附加类型。非对称分割类型可以包括以1:3的大小比率将块分割为两个矩形块的类型,或者对角线地分割节点的块的类型。
CU可以根据CTU的QTBT或QTBTTT分割而具有各种大小。在下文中,与要编码或解码的CU(即,QTBTTT的叶节点)相对应的块被称为“当前块”。在采用QTBTTT分割时,当前块的形状可以是正方形或矩形。
预测器120对当前块进行预测以生成预测块。预测器120包括帧内预测器122和帧间预测器124。
帧内预测器122利用位于包括当前块的当前图像中的当前块周围的像素(参考像素)来预测当前块中的像素。根据预测方向,存在多个帧内预测模式。例如,如图3所示,多个帧内预测模式可以包括2种非方向模式和65种方向模式,所述2种非方向模式包括平面(planar)模式和DC模式。针对每种预测模式不同地定义要使用的相邻像素和等式。
帧内预测器122可以确定对当前块编码时要使用的帧内预测模式。在一些示例中,帧内预测器122可以利用若干帧内预测模式来对当前块编码,并且从测试的模式中选择要使用的适当的帧内预测模式。例如,帧内预测器122可以利用若干测试的帧内预测模式的率失真(rate-distortion)分析来计算率失真值,并且可以在测试的模式中选择具有最佳率失真特性的帧内预测模式。
帧内预测器122从多个帧内预测模式中选择一个帧内预测模式,并且利用根据选择的帧内预测模式确定的相邻像素(参考像素)和等式来预测当前块。由熵编码器155对关于选择的帧内预测模式的信息编码,并将其传输至视频解码装置。
帧间预测器124通过运动补偿来生成当前块的预测块。帧间预测器124在比当前图像更早已被编码和解码的参考图像中搜索与当前块最相似的块,并且利用搜索到的块来生成当前块的预测块。然后,帧间预测器生成与当前图像中的当前块和参考图像中的预测块之间的位移(displacement)相对应的运动矢量(motion vector)。通常,对亮度分量执行运动估计,并且基于亮度分量计算的运动矢量用于亮度分量和色度分量两者。由熵编码器155对包括关于参考图像的信息和关于用于预测当前块的运动矢量的信息的运动信息进行编码,并将其传输至视频解码装置。帧间预测器124可以在参考图像或参考块上执行插值,以增加预测的准确性。也就是说,通过向包括两个整数像素的多个连续整数像素应用滤波系数来在两个连续整数像素之间插值子像素。当执行搜索与插值的参考图像的当前块最相似的块的过程时,运动向量可以不表达为整数像素的精度,而表达为小数单位的精度。对要编码的目标区域的每个单元,例如,切片、瓦片、CTU或CU可以不同地设置运动矢量的精度或分辨率。
减法器130将当前块减去由帧内预测器122或帧间预测器124生成的预测块来生成残差块。
变换器140可以将残差块分割为一个或更多个子块,并且对一个或更多个子块应用变换,从而将变换块的残差值从像素域变换到频域。在频域中,变换块被称为包含一个或更多个变换系数值的系数块或变换块。二维变换核可以用于变换,而一维变换核可以分别用于水平变换和竖直变换。变换核可以基于离散余弦变换(DCT)、离散正弦变换(DST)等。
变换器140可以利用残差块的整个大小作为变换单元来变换残差块中的残差信号。替选地,可以将残差块分区为多个子块,并且可以利用子块作为变换单元对子块中的残差信号进行变换。
变换器140可以在水平方向和竖直方向上单独地变换残差块。对于变换,可以使用各种类型的变换函数或变换矩阵。例如,用于在水平方向和竖直方向上变换的一对变换函数可以被定义为多变换集(multiple transform set,MTS)。变换器140可以选择MTS中具有最佳变换效率的一对变换函数,并且分别在水平方向和竖直方向上变换残差块。由熵编码器155对关于从MTS中选择的变换函数对的信息(mts_idx)编码,并将其用信号通知视频解码装置。
量化器145利用量化参数对从变换器140输出的变换系数进行量化,并且将量化的变换系数输出到熵编码器155。对于一些块或帧,量化器145可以不经变换直接对相关残差块进行量化。量化器145可以根据变换块中的变换系数的位置来应用不同的量化系数(缩放值)。可以对应用于布置为二维的量化的变换系数的量化系数矩阵进行编码,并且将其用信号通知视频解码装置。
重组器150可以对量化的残差值的系数值进行重组。重组器150可以通过系数扫描(coefficient scanning)来将2维系数阵列改变为1维系数序列。例如,重组器150可以利用锯齿形扫描(zig-zag scan)或对角线扫描(diagonal scan)从DC系数向高频区域中的系数对系数进行扫描,以输出1维系数序列。根据变换单元的大小和帧内预测模式,可以使用竖直扫描(vertical scan)或水平扫描(horizontal scan)代替锯齿形扫描(zig-zag scan),所述竖直扫描即在列方向上扫描系数的二维阵列,所述水平扫描即在行方向上扫描二维块形状的系数。也就是说,可以根据变换单元的大小和帧内预测模式在锯齿形扫描、对角线扫描、竖直扫描和水平扫描中确定要使用的扫描模式。
熵编码器155利用诸如基于上下文的自适应二进制算术编码(Context-basedAdaptive Binary Arithmetic Code,CABAC)和指数哥伦布(exponential Golomb)的各种编码技术来对从重组器150输出的一维量化的变换系数进行编码,以生成比特流。
熵编码器155对与块分割相关的信息(例如,CTU大小、CU分割标志、QT分割标志、MTT分割类型和MTT分割方向)编码,使得视频解码装置可以以与视频编码装置相同的方式来分割块。另外,熵编码器155对关于指示当前块是由帧内预测编码还是帧间预测编码的预测类型的信息进行编码,并且根据预测类型来对帧内预测信息(即,关于帧内预测模式的信息)或帧间预测信息(即,关于参考图像索引和运动矢量的信息)编码。此外,熵编码器155对与量化有关的信息进行编码,也就是对关于量化参数的信息和关于量化矩阵的信息进行编码。
逆量化器160对从量化器145输出的量化的变换系数进行逆量化,以生成变换系数。逆变换器165将从逆量化器160输出的变换系数从频域变换到空域,并且重构残差块。
加法器170将重构的残差块与由预测器120生成的预测块相加,以重构当前块。重构的当前块中的像素在执行后续块的帧内预测时用作参考像素。
环路滤波单元180对重构的像素进行滤波,以减少由于基于块的预测和变换/量化而产生的块伪影(blocking artifacts)、振铃伪影(ringing artifacts)和模糊伪影(blurring artifacts)。环路滤波单元180可以包括去块滤波器182、样本自适应偏移(SAO)滤波器184或自适应环路滤波器(ALF)186的一个或更多个。
去块滤波器182对重构的块之间的边界进行滤波,以去除由逐块编码/解码而引起的块伪影,并且SAO滤波器184对去块滤波的视频执行额外的滤波。SAO滤波器184是用于对由有损编码引起的重构的像素与原始的像素之间的差进行补偿的滤波器,并且以将相对应的偏移与每个重构的像素相加的方式来执行滤波。ALF 186通过对目标像素和目标像素的相邻像素应用滤波系数来对要滤波的目标像素执行滤波。ALF 186可以将包括在图像中的像素划分为预定组,然后确定要应用于相应组的一个滤波器,以对每个组有差别地执行滤波。可以对关于要用于ALF的滤波系数的信息进行编码,并且将其用信号通知视频解码装置。
通过环路滤波单元180滤波的重构的块存储在存储器190中。一旦一个图像中的所有块被重构,则重构的图像可以用作对后续要被编码的图像中的块进行帧间预测的参考图像。
图4是能够实现本发明的技术的视频解码装置的示例性功能框图。在下文中,将参考图4描述视频解码装置和该装置的元件。
视频解码装置可以包括:熵解码器410、重组器415、逆量化器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_flag)。在分割操作中,在零个或多个递归QT分割之后,每个节点都可能发生零个或多个递归MTT分割。例如,CTU可以直接经历MTT分割而不经历QT分割,或者仅经历多次QT分割。
作为另一个示例,当利用QTBT结构来分割CTU时,提取与QT分割相关的第一标志(QT_split_flag),并且将每个节点分割为下层的四个节点。然后,提取指示是否以BT进一步分割与QT的叶节点相对应的节点的分割标志(split_flag)以及分割方向信息。
一旦通过树结构分割来确定要解码的当前块,熵解码器410就提取关于指示当前块是被帧内预测还是被帧间预测的预测类型的信息。当预测类型信息指示帧内预测时,熵解码器410提取当前块的帧内预测信息(帧内预测模式)的语法元素。当预测类型信息指示帧间预测时,熵解码器410提取用于帧间预测信息的语法元素,也就是说,指示运动矢量和由运动矢量参考的参考图像的信息。
熵解码器410还提取关于量化的当前块的变换系数的信息作为与量化相关的信息和关于残差信号的信息。
重组器415可以以由视频编码装置执行的系数扫描的相反顺序,将由熵解码器410进行熵解码的一维量化的变换系数的序列改变为2维系数阵列(即,块)。
逆量化器420利用量化参数对量化的变换系数进行逆量化。逆量化器420可以向布置为二维的量化的变换系数应用不同的量化系数(缩放值)。逆量化器420可以通过向量化的变换系数的2维阵列应用来自视频编码装置的量化系数(缩放值)矩阵来执行逆量化。
逆变换器430将逆量化的变换系数从频域逆变换到空域,以重构残差信号,从而生成重构的当前块的残差块。另外,当应用MTS时,逆变换器430利用从视频编码装置用信号通知的MTS信息(mts_idx)来确定要分别在水平方向和竖直方向上应用的变换函数或变换矩阵,并且使用确定的变换函数在水平方向和竖直方向上对变换块中的变换系数进行逆变换。
预测器440可以包括帧内预测器442和帧间预测器444。在当前块的预测类型是帧内预测时,激活帧内预测器442,而在当前块的预测类型是帧间预测时,激活帧间预测器444。
帧内预测器442基于从熵解码器410提取的帧内预测模式的语法元素,在多个帧内预测模式中确定当前块的帧内预测模式,并且根据帧内预测模式,利用当前块周围的参考像素来预测当前块。
帧间预测器444利用从熵解码器410提取的帧内预测模式的语法元素来确定当前块的运动矢量和由运动矢量参考的参考图像,并且基于运动矢量和参考图像来预测当前块。
加法器450通过将从逆变换器输出的残差块与从帧间预测器或帧内预测器输出的预测块相加来重构当前块。在对后续要被解码的块进行帧内预测时,重构的当前块中的像素用作参考像素。
环路滤波单元460可以包括去块滤波器462、SAO滤波器464或ALF 466的至少一个。去块滤波器462对重构的块之间的边界进行去块滤波,以去除由逐块解码引起的块伪影。SAO滤波器464以在对相应偏移进行去块滤波之后添加重构的块的方式执行滤波,以便补偿由有损编码引起的重构的像素与原始的像素之间的差。ALF 466通过将滤波系数应用于目标像素和目标像素的相邻像素来对要滤波的目标像素执行滤波。ALF 466可以将图像中的像素划分为预定组,然后确定要应用于相应组的一个滤波器,以对每个组有差别地执行滤波。基于关于从比特流中解码的滤波系数的信息来确定ALF的滤波系数。
通过环路滤波单元460滤波的重构的块存储在存储器470中。当一个图像中的所有块被重构时,重构的图像用作后续要被编码的图像中的块的帧间预测的参考图像。
如上所述,视频编码装置传输包含关于视频的编码的数据的比特流,视频解码装置解码比特流以重构构成视频的每个图像。
根据本发明的一个方面,比特流可以由多个传输单元组成,也就是说,网络提取层(network abstraction layer,NAL)单元。如图5所示,NAL单元可以包括NAL单元头和通过NAL单元承载的数据。为了以字节为单位匹配NAL单元的大小,可以向构成NAL单元的数据的后部添加位。NAL单元头包括用于指示通过NAL单元承载的数据的类型的NAL单元类型和NAL单元的时间层ID。
根据包括在数据字段中的数据类型,NAL单元可以分类为视频编码层(videocoding layer,VCL)类型和非VCL类型。VCL类型NAL单元是包含数据字段中的编码的像素组的图像数据的NAL单元,并且通常包含关于
此外,可以进一步定义承载第三参数集的NAL单元,所述第三参数集包括共同应用于图像或比图像小的像素组的参数,例如,一个或更多个切片。在本发明中,表示一个序列的比特流包括承载第三参数集的一个或更多个NAL单元。
图6是示出包含第三参数集的NAL单元的结构的示例性图。
第三参数集包含在NAL单元的数据字段中。第三参数集包括ID信息和参数类型信息的至少一个。所述第三参数集还包括与参数类型信息相对应的参数。
根据编码工具,每个第三参数集与多个参数类型的任意一个相关联,并且由集携带的参数与所述编码工具相关联。如图6的(a)所示,指示参数类型的信息可以包括在第三参数集中。图6的(a)的结构中的NAL单元类型可以通过特定索引值来指示NAL单元是否与第三参数集相关。通过包括在第三参数集中的参数类型信息来识别包括在第三参数集中的参数类型。替选地,如图6的(b)所示,可以由包含在NAL单元头中的NAL单元类型来指示参数类型。在这种情况下,根据包括在第三参数集中的参数的类型来进一步细分NAL单元类型。例如,在图6的(b)的结构中,根据第三参数集中承载的参数的类型,NAL单元类型可以有不同的索引值。根据NAL单元类型的值,识别包含在NAL单元中的数据是否是第三参数集,此外还识别第三参数集的参数类型。作为另一示例,如图6的(c)所示,NAL单元的数据字段中仅可以包含参数类型信息,而不包含ID信息。在这种情况下,根据编码或解码次序来分配第三参数集的ID。可以针对每个参数类型在解码中顺序地分配ID值,或者可以不管参数类型如何根据解码次序顺序地分配ID值。
第三参数集的参数类型可以包括例如环路滤波类型、缩放列表类型和预测信息类型。当参数类型信息是环路滤波类型时,第三参数集包括关于用于环路滤波的一组或更多组滤波系数的信息。这里,属于每个组的滤波系数可以由滤波系数的绝对值和滤波系数的符号表达。当参数类型信息是缩放列表类型时,第三参数集包括缩放值,即,用于每个变换系数的量化的量化矩阵的系数。当参数类型信息是预测信息类型时,第三参数集包括用于在特定预测模式下生成预测信号的滤波系数集。
视频解码装置对与第三参数集相关的NAL单元进行解码,并且将第三参数集存储在存储器中。根据NAL单元的解码来确定第三参数集的ID和参数类型。对于每个参数类型,m个参数集(其中,m是大于或等于1的整数)可以存储在存储器中,其中m可以根据参数类型而变化。当存储器中已经存储有m个参数集时,视频解码装置删除现有的参数集并存储新解码的第三参数集。例如,可以从存储器中删除与新解码的第三参数集具有相同的ID和参数类型的参数类型。替选地,可以删除最早存储的第三参数集。替选地,可以从比特流中提取ID和参数类型信息,以删除与提取的信息相对应的第三参数集。
由于诸如360视频的各种应用程序的出现,需要一种不仅显示解码的图像的整个区域而且还显示图像的部分区域的技术。为了支持该技术要求,本发明的另一方面提供了一种将图像分区为多个子图像并对每个子图像编码和解码的方法。本发明能够独立编码或独立传输构成每个图像的子图像。此外,可以独立地从整个比特流中提取或解码与子图像的每个相对应的数据。进一步地,可以彼此独立显示来自图像的分区的子图像。
图7是示出构成每个图像的子图像的布局的示例性图。
为了表示来自图像的分区的子图像的布局,可以定义编码单元(CU)组。CU组可以是CTU、切片、瓦片或预定义大小的网格。CU组可以分类为第一CU组和第二CU组,所述第一CU组是构成子图像的基本单元,所述第二CU组由多个第一CU组组成。例如,第一CU组可以是CTU,第二CU组可以是与如上所述的传输单元相对应的切片。子图像可以由一个或更多个第二CU组组成。在下文中,为了简单起见,假设第一CU组是CTU,第二CU组是切片,但显而易见的是本发明不限于此。例如,第一CU组可以是具有预定义大小的网格,第二CU组可以是切片或瓦片。
布局信息由图像中子图像的数量、每个子图像的ID、以及图像中每个子图像的位置和大小表示。这里,每个子图像的位置和大小可以表示为用于识别构成每个子图像的CTU的信息。
可以通过以光栅扫描次序构成子图像的第一CTU和最后CTU来识别构成每个子图像的CTU。对于矩形子图像,以光栅扫描次序的第一CTU和最后CTU是指每个子图像中位于左上方的CTU和位于右下方的CTU。相应地,用于识别构成子图像的CTU的信息可以包括用于识别左上方CTU的位置的识别信息(例如,关于左上方CTU的坐标信息)和用于识别位于右下方的CTU的识别信息(例如,关于右下方CTU的坐标信息)。替选地,用于识别构成子图像的CTU的信息可以由用于识别左上方CTU的位置、子图像的水平方向上的CTU的数量和竖直方向上的CTU的数量的识别信息来表达。
图8是示出构成每个图像的子图像的布局的另一示例性图。
在图8的示例中,作为构成子图像的基本单元的第一CU组是将多个像素聚集成组的网格。子图像可以是网格组。
关于子图像的布局信息可以由网格表示。作为关于图像中子图像的布局信息,首先定义网格的大小。网格的大小可以由网格的水平和竖直长度,或者在图像的水平和竖直方向上的网格的数量来定义。
关于子图像的布局信息包括图像中的子图像的数量、每个子图像的ID、以及用于识别构成每个子图像的网格的识别信息。例如,识别信息包括子图像内以光栅扫描次序的关于第一网格的识别信息和关于最后网格的识别信息。在矩形子图像中,第一网格对应于子图像中的左上方网格,最后网格对应于子图像内的右下方网格。相应地,识别信息包括关于子图像中的左上方网格和右下方网格的识别信息。替选地,识别信息可以包括关于子图像中的左上方网格的识别信息和关于水平方向和竖直方向上的网格的数量的信息。在实施示例中,识别信息可以是网格的位置。在另一实施示例中,识别信息可以表示为网格的ID或地址。这里,可以根据特定扫描次序,例如光栅扫描次序,以从0开始的升序来分配图像中网格的ID或地址。
视频编码装置对用于将每个图像分区为子图像的分区信息,也就是说布局信息进行编码。布局信息可以包括在上述第一参数集或第二参数集中。视频解码装置提取包括在第一参数集或第二参数集中的布局信息,以识别构成每个图像的子图像。
视频编码装置对作为传输单元的每个切片的子图像ID进行编码。视频解码装置可以基于每个切片通过提取子图像ID来确定切片属于哪个子图像。另外,通过上述解码处理,由对构成子图像的一个或更多个切片中的块进行解码来重构每个子图像。
应当使得对子图像独立传输和编码/解码,并且彼此独立显示。相应地,本发明的视频编码装置和视频解码装置可以在对子图像编码或解码的过程中执行不允许参考子图像边界外部的重构的像素的处理。这里,可以通过布局信息来识别子图像的边界。
在实施方案中,视频编码装置的预测器120和视频解码装置的预测器440基于关于当前块的预测信息(帧间预测信息或帧内预测信息)根据预先重构的像素来预测当前块内的像素。当基于预测信息确定的像素位置在当前子图像的边界外部时,即使在预先重构的像素存在于确定的位置处的情况下,预测器120和440也基于代替确定位置处的预先重构的像素的替代像素来预测当前块中的像素。这里,替代像素可以具有预定义的固定像素值,或者可以是在当前子图像中的预定义位置处的像素,例如,与当前子图像中的子图像边界接触的像素。
在各种预测处理中可以包括利用替代像素来代替当前子图像的边界外部的预先重构的像素的处理。例如,当在当前块周围并用于当前块的帧内预测的预先重构的参考像素在子图像的边界外部时,可以用预定义的固定像素值来替换参考像素。作为另一示例,当用于帧间预测中子像素的插值的整数像素的至少一些在当前子图像的边界外部时,可以使用子图像中邻近边界的整数像素来代替当前子图像的边界外部的整数像素。
在另一实施方案中,视频编码装置的环路滤波单元180和视频解码装置的环路滤波单元460可以通过在当前重构的块中向目标像素和目标像素周围的相邻像素应用滤波系数来对要滤波的目标像素执行环路滤波。当相邻像素的至少一个在当前子图像的边界外部时,环路滤波单元180和460基于替代像素代替当前子图像的边界外部的相邻像素来对目标像素执行环路滤波。替代像素可以具有预定义的固定像素值,或者可以是在当前子图像中的预定义位置处的像素,例如,在当前子图像中并与当前子图像的边界接触的像素。
可以从上述第三参数集确定用于环路滤波的滤波系数。对于每个CU组,例如,每个切片,视频编码装置用信号通知与环路滤波类型相关的第三参数集的ID信息。视频解码装置从诸如切片头的CU组的头解码关于与环路滤波有关的第三参数集的ID信息,并且从存储在存储器中的第三参数集中选择与解码的ID信息相对应的第三参数集。
可以基于每个切片用信号通知关于与环路滤波有关的多个第三参数集的ID信息。为此,首先用信号通知关于包括在切片中的第三参数集的ID的数量的信息,并且用信号通知与所述数量一样多的关于第三参数集的ID信息条。用信号通知的ID信息条的数量可以根据要滤波的像素的颜色分量,也就是说,根据颜色分量是亮度还是色度而变化。例如,在亮度分量的情况下,首先用信号通知ID信息条的数量,并且用信号通知关于与所述数量相对应的第三参数集的ID信息条。另一方面,在色度分量的情况下,可以始终使用环路滤波类型的单个第三参数集。因此,可以仅用信号通知ID信息的一条而不用信号通知关于ID信息条的数量的信息。
利用基于每个切片选择的第三参数集,可以基于每个CTU来确定要应用于切片中的块的滤波系数。包括在一个CTU中的所有块共享相同的滤波系数。
如上所述,每个第三参数集可以包括一个或更多个滤波系数集。一个滤波系数集包括多个滤波系数。根据用于对一个像素进行滤波的像素的数量来确定滤波系数的数量。例如,当总共使用n个像素(滤波目标像素和目标像素周围的像素)来对一个像素进行滤波时,一个滤波集包括与n个像素相对应的n个滤波系数。
视频编码装置基于每个CTU用信号通知用于相应CTU的环路滤波的滤波信息。视频解码装置基于每个CTU利用用信号通知的滤波信息来确定要应用于CTU的滤波系数集。
在基于每个切片来选择一个第三参数集的实施方案中,可以基于每个CTU用信号通知指示来自包括在一个第三参数集中的滤波系数集中的一个滤波系数集的滤波索引信息。
在基于每个切片来确定多个第三参数集的另一实施方案中,可以基于每个CTU用信号通知指示要使用多个第三参数集的哪个的参数ID信息。另外,可以额外用信号通知指示包括在与参数ID信息相对应的第三参数集中的滤波系数集中的一个滤波系数集的滤波索引信息。替选地,可以基于CTU中要滤波的目标像素的特性来获得包括在与参数ID信息相对应的第三参数集中的滤波系数集中要使用的滤波系数集。例如,可以利用目标像素和周围像素来计算诸如目标像素的方向性或活动性的特性,并且根据计算出的特性来选择要应用于每个目标像素的滤波系数集。这里,可以基于目标像素和其附近的相邻像素,例如包括目标像素的预定区域内的像素,通过梯度运算来计算像素的特征,例如目标像素的方向或活动。在此替选的实施方案中,不需要用信号通知指示包括在与参数ID信息相对应的第三参数集中的滤波系数集中的要使用的滤波系数集的滤波索引信息。视频编码装置和视频解码装置可以计算目标滤波器的特性,并且根据计算出的特性来选择滤波集。
除了包括在第三参数集中的滤波系数集之外,可以进一步使用预定义的多个滤波系数集。这里,预定义的多个滤波系数集可以是用于确定以解码次序紧接在当前CTU之前解码的一个或更多个CTU的滤波系数集,或者可以是用于确定邻近当前CTU的预定义位置(例如,位于当前CTU的顶侧和/或左侧的CTU)处的相邻CTU的滤波系数集。替选地,多个预定义的滤波系数集可以是用于固定地预设所有CTU的滤波系数集。在下文中,在先前解码的CTU中使用的预设滤波系数集称为“滤波集参考列表”。首先,用信号通知指示滤波集参考列表是否用于当前CTU的信息。
当不使用滤波集参考列表时,可以为当前CTU中要使用的滤波系数集用信号通知第三参数集中的参数ID信息和滤波索引信息的一个或更多个,并且视频解码装置基于如上所述的用信号通知的信息来获得要应用于当前CTU或当前CTU的每个像素的滤波系数集。
当使用滤波集参考列表时,从包括在预设滤波集参考列表中的滤波集中选择要应用于当前CTU的滤波集。可以通过从视频编码装置向视频解码装置用信号通知的滤波索引信息来执行选择,或者可以在如上所述计算当前CTU中的每个像素的特性之后根据特性对每个像素的选择进行推断。
通过上述解码处理重构的子图像可以彼此独立显示。子图像可以存储在存储器中不同的存储空间中,或者可以单独存储在多个存储器中。
当多个子图像存储在相同的存储器中时,子图像之间可以以预定的间隔存储。
以子图像为单位的存储器存储结构可以基于每个图像或每个子图像从视频编码装置向视频解码装置用信号通知,或者可以通过子图像的索引、坐标和参考关系来获得。作为示例,不具有参考关系的多个子图像可以存储在不同的存储器中。作为另一示例,具有相同位置、相同大小、相同子图像索引或相同存储器索引的多个子图像可以存储在相同的存储器中。
存储在不同存储器中的多个重构的子图像可以在显示之前存储在相同的存储器中。在相同的存储器中不连续地存储的多个重构的子图像可以在显示之前连续地存储。
如图9所示,每个图像可以分区为多个子图像,以便具备有重叠子图像的区域。视频解码装置可以从构成重叠区域的不同的子图像的像素中选择一个子图像的像素,并且将其存储在存储器中或进行显示。可以从视频编码装置向视频解码装置用信号通知子图像中像素的选择。替选地,视频解码装置可以通过对构成重叠区域的多个子图像应用诸如平均或加权平均的数学运算来获得要存储或显示的重叠区域中的像素值。
应当理解的是,可以以许多不同的方式来实现上述示例性实施方案。在一个或多个示例中描述的功能可以实现为硬件、软件、固件、或其任意组合。应当理解的是,本文中描述的功能组件已被标记为“单元”,以进一步强调其实施独立性。
本发明中描述的各种功能或方法可以用存储在非易失性记录介质中的指令来实现,所述指令可以由一个或更多个处理器读取和执行。非易失性记录介质包括,例如,所有类型的记录器件,其中数据以计算机系统可读的形式存储。例如,非易失性记录介质包括存储介质,例如可擦除可编程只读存储器(EPROM)、闪存驱动器,光盘驱动器、磁性硬盘驱动器和固态驱动器(SSD)。
尽管已经出于说明的目的描述了示例性实施方案,但是本领域技术人员将理解的是,在不脱离实施方案的思想和范围的情况下,各种修改和变化是可能的。为了简洁和清楚起见,已经描述了示例性实施方案。相应地,普通技术人员应当理解的是,实施方案的范围不受以上明确描述的实施方案限制,而是包括在权利要求及其等同形式内。
相关申请的交叉引用
本申请要求2019年5月15日提交的韩国专利申请No.10-2019-0056973、2019年9月30日提交的韩国专利申请No.10-2019-0121030以及2020年5月15日提交的韩国专利申请No.10-2020-0058245的优先权,其全部内容通过引用合并于本文中。
- 影像编码装置、影像编码方法、影像编码程序、影像解码装置、影像解码方法和影像解码程序
- 立体影像编码装置、立体影像解码装置、立体影像编码方法、立体影像解码方法、立体影像编码程序以及立体影像解码程序