视频编码方法、视频解码方法和传输比特流的方法与流程
未命名
09-17
阅读:78
评论:0

视频编码方法、视频解码方法和传输比特流的方法
1.本技术是原案申请号为201880056369.0的发明专利申请(国际申请号:pct/kr2018/009940,申请日:2018年8月29日,发明名称:使用双向光流的运动补偿方法和设备)的分案申请。
技术领域
2.本公开涉及图像编码或解码。更具体地,本公开涉及用于运动补偿的双向光流。
背景技术:
3.本部分中的陈述仅提供与本公开有关的背景信息,并且可能不构成现有技术。
4.在视频编码中,使用空间维度和时间维度的数据冗余来执行压缩。通过变换编码极大地减少空间冗余。通过预测编码减少时间冗余。观察到时间相关性沿着运动轨迹被最大化,为此目的,使用用于运动补偿的预测。在这种情况下,运动估计的主要目的不是在场景中找到“真实”运动,而是使压缩效率最大化。换句话说,运动矢量必须提供信号的准确预测。另外,由于运动信息必须在压缩比特流中作为开销被发送,因此必须启用压缩表示。有效运动估计在视频编码中实现高压缩是非常重要的。
5.运动是视频序列中的重要信息来源。发生运动不仅是由于对象的移动,还因为相机的移动。视运动(也称为光流)捕获图像序列中的像素强度的时空变化。
6.双向光流(bio)是一种基于光流和稳定运动的假设进行运动细化的运动估计/补偿技术,其在jctvc-c204和vceg-az05 bio中被公开。当前正在讨论的双向光流估计方法在允许对运动矢量信息进行精细校正方面具有优势,但是与用于对运动矢量信息进行精细校正的常规双向预测相比,需要更高的计算复杂度。
7.非专利文件1:jctvc-c204(e.alshina等人,双向光流,itu-t sg 16wp 3和iso/iec jtc 1/sc 29/wg 11的视频编码联合协作小组(jct-vc),第3次会议:中国广州,2010年10月7-15日)
8.非专利文件2:vceg-az05(e.alshina等人,下一代视频编码的已知工具性能研究,itu-t sg 16问题6,视频编码专家组(vceg),第52次会议:2015年6月19-26日,波兰华沙)
技术实现要素:
9.技术问题
10.本公开的目的是在降低双向光流(bio)的计算复杂度的同时减少图像质量的下降。
11.技术方案
12.根据本公开的一个方面,提供了一种用于在视频编码或解码时使用双向光流(bio)进行运动补偿的方法,该方法包括以下步骤:通过参考第一参考图片的第一运动矢量生成第一参考块,并且通过参考第二参考图片的第二运动矢量生成第二参考块;使用第一参考块和第二参考块计算当前块的纹理复杂度;以及通过基于纹理复杂度选择性地应用或
跳过bio处理,基于第一参考块和第二参考块生成当前块的预测块。
13.根据本公开的另一方面,提供了一种用于在视频编码或解码时使用双向光流(bio)执行运动补偿的设备,该设备包括:参考块生成器,该参考块生成器被配置为通过参考第一参考图片的第一运动矢量生成第一参考块,并且通过参考第二参考图片的第二运动矢量生成第二参考块;跳过确定器,该跳过确定器被配置为使用第一参考块和第二参考块来计算当前块的纹理复杂度,并且通过将纹理复杂度与阈值进行比较来确定是否跳过bio处理;以及预测块生成器,该预测块生成器被配置为通过基于跳过确定器的确定选择性地应用或跳过bio处理,基于第一参考块和第二参考块生成当前块的预测块。
附图说明
14.图1是根据本公开的实施方式的视频编码装置的示例性框图;
15.图2是当前块的相邻块的示意图;
16.图3是根据本公开的实施方式的视频解码装置的示例性框图;
17.图4是用于解释bio的基本概念的参考图;
18.图5是在基于像素的bio中以当前像素为中心的掩模的形状的示意图;
19.图6是用于解释以填充方式对掩模内的参考块以外的位置的像素设定亮度值和梯度的示意图。
20.图7是在基于子块的bio中以子块为中心的掩模的形状的示意图。
21.图8是用于解释在基于子块的bio中逐像素应用掩模的示意图。
22.图9是在基于子块的bio中以子块为中心的另一掩模的形状的示意图;
23.图10是示出根据本公开的实施方式的被配置为通过选择性地应用bio处理来执行运动补偿的设备的配置的框图;
24.图11是示出根据本公开的实施方式的通过基于当前块的纹理复杂度选择性地应用bio处理来执行运动补偿的过程的示意图;
25.图12是示出根据本公开的实施方式的通过基于当前块的纹理复杂度选择性地应用bio处理来执行运动补偿的过程的另一示意图;
26.图13是示出根据本公开的实施方式的通过基于当前块的纹理复杂度选择性地应用bio处理来执行运动补偿的过程的又一示意图;
27.图14是示出根据本公开的实施方式的通过基于当前块的大小和运动矢量的编码模式选择性地应用bio处理来执行运动补偿的过程的示意图;
28.图15是示出根据本公开的实施方式的通过基于cvc条件和bcc条件选择性地应用bio处理来执行运动补偿的过程的示意图;以及
29.图16是示出根据本公开的实施方式的通过基于相邻块的运动矢量方差选择性地应用bio处理来执行运动补偿的过程的示意图。
具体实施方式
30.在下文中,将参考附图详细地描述本发明的一些实施方式。应当注意,尽管元件在不同附图中示出,但是在将附图标记添加到各个附图中的组成元件时,相同的附图标记表示相同的元件。此外,在本发明的以下描述中,当对本文中并入的已知功能和配置的详细描
述可能使本发明的主题不清楚时,将省略该详细描述。
31.本公开的技术通常涉及降低双向光流(bio)技术的复杂度和/或成本。在运动补偿期间可以应用bio。通常,bio用于通过光流为当前块中的每个像素或子块计算运动矢量,并且基于为每个像素或子块计算的运动矢量值来更新相应像素或子块的预测值。
32.图1是能够实现本公开的技术的视频编码装置的示例性框图。
33.视频编码装置包括分块器110、预测器120、减法器130、变换器140、量化器145、编码器150、逆量化器160、逆变换器165、加法器170、滤波器单元180和存储器190。视频编码装置的每个元件可以被实现为硬件芯片,或者可以被实现为软件,并且一个或更多个微处理器可以被实现为执行与各个元件相对应的软件的功能。
34.分块器110将构成视频的每个图片分割为多个编码树单元(ctu),然后使用树结构来递归地分割ctu。树结构中的叶节点是编码单位(cu),它是基本编码单位。四叉树(qt)结构(在四叉树结构中,节点(或父节点)被分割为相同大小的四个子节点(或孩子节点)或者组合qt结构和二叉树(bt)结构(在二叉树结构中,一个节点被分割为两个子节点)的四叉树加二叉树(qtbt)结构可以用作树结构。也就是说,可以使用qtbt将ctu分割为多个cu。
35.在四叉树加二叉树(qtbt)结构中,可以根据qt结构首先分割ctu。可以重复四叉树分割,直到分割块的大小达到qt中允许的叶节点的最小块大小minqtsize。如果qt的叶节点不大于bt中允许的根节点的最大块大小maxbtsize,则可以将其进一步分割为bt结构。bt可以具有多种分割类型。例如,在一些示例中,可以存在两种分割类型,这两种分割类型是将节点的块水平分割为相同大小的两个块的类型(即,对称水平分割)和将节点的块垂直分割成大小相同的两个块的类型(即,对称垂直分割)。此外,可能存在以非对称形式将节点的块分割成两个块的分割类型。非对称分割可以包括以1:3的大小比率将节点的块分割为两个矩形块,或者在对角线方向上分割节点的块。
36.通过按qtbt结构分割ctu而由分块器110生成的分割信息通过编码器150被编码,并且被发送至视频解码装置。
37.cu可以具有取决于ctu的qtbt分割的多种大小。此后,与要被编码或解码的cu(即,qtbt的叶节点)相对应的块被称为“当前块”。
38.预测器120通过预测当前块来生成预测块。预测器120包括帧内预测器122和帧间预测器124。
39.通常,图片内的当前块可以各自被预测性地编码。通常,可以使用帧内预测技术或帧间预测技术来完成对当前块的预测,帧内预测技术使用来自包含当前块的图片的数据,帧间预测技术使用来自在包含当前块的图片之前被编码的图片的数据。帧间预测包括单向预测和双向预测。
40.对于每个帧间预测块,运动信息集可用。一组运动信息可以包括关于前向预测方向和后向预测方向的运动信息。这里,前向预测方向和后向预测方向是双向预测模式中的两个预测方向,并且术语“前向”和“后向”不必具有几何含义。相反,它们通常对应于在当前图片之前(“后向方向”)还是之后(“前向方向”)显示参考图片。在一些示例中,“前向”预测方向和“后向”预测方向可以对应于当前图片的参考图片列表0(refpiclist0)和参考图片列表1(refpiclist1)。
41.对于每个预测方向,运动信息包括参考索引和运动矢量。参考索引可用于识别当
前参考图片列表(refpiclist0或refpiclist1)中的参考图片。运动矢量具有水平分量x和垂直分量y。通常,水平分量表示参考图片中相对于当前图片中的当前块的位置的水平位移,这是定位参考块的x坐标所需要的。垂直分量表示参考图片中相对于当前块的位置的垂直位移,这是定位参考块的y坐标所需要的。
42.帧间预测器124通过运动补偿过程为当前块生成预测块。帧间预测器124在比当前图片更早编码和解码的参考图片中搜索与当前块最相似的块,并且使用搜索到的块为当前块生成预测块。然后,帧间预测器生成与当前图片中的当前块和参考图片中的预测块之间的位移相对应的运动矢量。通常,对亮度分量执行运动估计,并且基于亮度分量计算的运动矢量被用于亮度分量和色度分量。包括关于参考图片的信息和用于预测当前块的运动矢量的运动信息由编码器150编码,并且被发送到视频解码装置。
43.在双向预测的情况下,帧间预测器124分别从参考图片列表0和参考图片列表1中选择第一参考图片和第二参考图片,并且在每个参考图片中搜索与当前块相似的块,以生成第一参考块和第二参考块。然后,帧间预测器124通过对第一参考块和第二参考块进行求平均或加权平均来生成用于当前块的预测块。然后,帧间预测器将包括关于两个参考图片的信息和关于用于预测当前块的两个运动矢量的信息的运动信息发送到编码器150。这里,两个运动矢量表示与当前块在当前图片中的位置和第一参考块在第一参考图片中的位置之间的位移相对应的第一运动矢量(即,参考第一参考图片的运动矢量)、以及与当前块在当前图片中的位置和第二参考块在第二参考图片中的位置之间的位移相对应的第二运动矢量(即,参考第二参考图片的运动矢量)。
44.此外,帧间预测器124可以执行本公开的双向光流(bio)处理,以通过双向预测来生成当前块的预测块。换句话说,在确定用于当前块的双向运动矢量之后,帧间预测器124可以基于每图像像素或基于每子块根据bio处理通过运动补偿来生成针对当前块的预测块。在其它示例中,编码装置的一个或更多个其它单元可以另外参与执行本公开的bio处理。另外,由于通过使用在编码装置和解码装置之间共享的预解码信息应用显式方程式(explicit equation)来执行bio处理,因此不需要用信号通知用于bio处理的附加信息。
45.在通过双向预测的运动补偿中,可以以各种方式确定是否应用bio处理。将参考图4和随后附图描述bio处理的细节以及在运动补偿过程中是否应用bio处理的细节。
46.可以使用各种方法来最小化对运动信息编码所需的比特数。
47.例如,当当前块的运动矢量和参考图片与相邻块的运动矢量和参考图片相同时,关于当前块的运动信息可以通过对用于识别相邻块的信息进行编码被发送到解码装置。该方法被称为“合并模式”。
48.在合并模式中,帧间预测器124从当前块的相邻块中选择预定数量的合并候选块(以下称为“合并候选”)。
49.如图2中所示,作为用于推导合并候选的相邻块,可以使用与当前图片中的当前块相邻的左块l、上块a、右上块ar、左下块bl和左上块al的全部或部分。另外,除了当前块所在的当前图片之外,位于参考图片(其可以与用于预测当前块的参考图片相同或不同)内的块可以用作合并候选。例如,参考图片中的与当前块位于相同位置的共定位块或与该共定位块相邻的块也可以用作合并候选。
50.帧间预测器124使用这样的相邻块来配置包括预定数量的合并候选的合并列表。
从包括在合并列表中的合并候选中选择将被用作与当前块有关的运动信息的合并候选,并且生成用于识别所选候选的合并索引信息。所生成的合并索引信息由编码器150编码并且被发送到解码装置。
51.对运动信息编码的另一种方法是对运动矢量差编码。
52.在该方法中,帧间预测器124使用当前块的相邻块来推导用于当前块的运动矢量的预测运动矢量候选。作为用于推导预测运动矢量候选的相邻块,可以使用与当前图片中的当前块相邻的左块l、上块a、右上块ar、左下块bl和左上块al的全部或部分,如图2所示。另外,除了当前块所在的当前图片之外,位于参考图片(其可以与用于预测当前块的参考图片相同或不同)内的块可以用作用于推导预测运动矢量候选的相邻块。例如,可以使用参考图片中的与当前块在相同位置处的共定位块或者与共定位块相邻的块。
53.帧间预测器124使用相邻块的运动矢量来推导预测运动矢量候选,并且使用预测运动矢量候选来确定用于当前块的运动矢量的预测运动矢量。然后,通过从当前块的运动矢量减去预测运动矢量来计算运动矢量差。
54.可以通过将预定函数(例如,用于计算中位数、平均数等的函数)应用于预测运动矢量候选来获得预测运动矢量。在这种情况下,视频解码装置也知道预定函数。由于用于推导预测运动矢量候选的相邻块已经被编码和解码,因此视频解码装置也已经知道相邻块的运动矢量。因此,视频编码装置不需要对用于识别预测运动矢量候选的信息进行编码。因此,在这种情况下,与运动矢量差有关的信息和与用于预测当前块的参考图片有关的信息被编码。
55.可以通过选择预测运动矢量候选中的任一个来确定预测运动矢量。在这种情况下,用于识别所选预测运动矢量候选的信息与关于运动矢量差的信息和关于用于预测当前块的参考图片的信息一起被进一步编码。
56.帧内预测器122使用位于包括当前块的当前图片中的当前块周围的像素(参考像素)来预测当前块中的像素。根据预测方向存在多种帧内预测模式,并且根据每种预测模式不同地定义要使用的参考像素和方程式。特别地,帧内预测器122可以确定将在对当前块进行编码时使用的帧内预测模式。在一些示例中,帧内预测器122可以使用几种帧内预测模式对当前块进行编码,并且从被测试模式中选择合适的帧内预测模式以使用。例如,帧内预测器122可以使用几种被测试的帧内预测模式的速率失真分析来计算速率失真值,并且可以在被测试模式中选择具有最佳速率失真特性的帧内预测模式。
57.帧内预测器122从多个帧内预测模式中选择一个帧内预测模式,并且使用相邻像素(参考像素)和根据所选帧内预测模式确定的方程式来预测当前块。关于所选帧内预测模式的信息被编码器150编码,并且被发送到视频解码装置。
58.减法器130从当前块中减去由帧内预测器122或帧间预测器124生成的预测块,以生成残差块。
59.变换器140将在空间域中具有像素值的残差块中的残差信号变换为频域中的变换系数。变换器140可以通过使用当前块的大小作为变换单元来变换残差块中的残差信号,或者可以将残差块分割成多个较小子块,并且以与变换块的大小相对应的变换单元来变换残差信号。可能存在将残差块分割成较小子块的多种方法。例如,残差块可以被分割成相同预定大小的子块,或者可以以将残差块作为根节点的四叉树(qt)的方式被分割。
60.量化器145对从变换器140输出的变换系数进行量化,并且将量化后的变换系数输出至编码器150。
61.编码器150使用诸如cabac的编码方案来对量化后的变换系数进行编码以生成比特流。编码器150对与块分割相关联的信息(诸如ctu大小、minqtsize、maxbtsize、maxbtdepth、minbtsize、qt分割标记、bt分割标记和分割类型)进行编码,使得视频解码装置以与视频编码装置相同的方式分割块。
62.编码器150对与指示当前块是通过帧内预测还是帧间预测编码的预测类型有关的信息进行编码,并且根据预测类型对帧内预测信息或帧间预测信息进行编码。
63.当当前块被帧内预测时,用于帧内预测模式的语法元素被编码为帧内预测信息。当当前块被帧间预测时,编码器150对用于帧间预测信息的语法元素进行编码。用于帧间预测信息的语法元素包括以下信息。
64.(1)模式信息,该模式信息指示关于当前块的运动信息是在合并模式下被编码还是在用于对运动矢量差进行编码的模式下被编码。
65.(2)用于运动信息的语法元素
66.当在合并模式下对运动信息进行编码时,编码器150可以将指示哪个合并候选被选择为用于从合并候选中提取关于当前块的运动信息的候选的合并索引信息编码为用于运动信息的语法元素。
67.另一方面,当在用于对运动矢量差进行编码的模式下对运动信息进行编码时,与运动矢量差有关的信息和与参考图片有关的信息被编码为用于运动信息的语法元素。当以选择多个预测运动矢量候选中的一个的方式确定预测运动矢量时,用于运动信息的语法元素还包括用于识别所选候选的预测运动矢量识别信息。
68.逆量化器160对从量化器145输出的量化变换系数进行逆量化以生成变换系数。逆变换器165将从逆量化器160输出的变换系数从频域变换到空间域,并重构残差块。
69.加法器170将重构的残差块与由预测器120生成的预测块相加,以重构当前块。重构的当前块中的像素在依次执行下一个块的帧内预测时用作参考样本。
70.滤波器单元180对重构块之间的边界进行解块滤波,以便消除由逐块编码/解码引起的块伪像,并将块存储在存储器190中。当重构一个图片中的所有块时,将重构图片用作要编码的后续图片中的帧间预测块的参考图片。
71.在下文中,将描述视频解码装置。
72.图3是能够实现本公开的技术的视频解码装置的示例性框图。
73.视频解码装置包括解码器310、逆量化器320、逆变换器330、预测器340、加法器350、滤波器单元360和存储器370。如在图2的视频编码装置的情况下,视频编码装置的每个元素可以被实现为硬件芯片,或者可以被实现为软件,并且微处理器可以被实现为执行与各个元件相对应的软件的功能。
74.解码器310对从视频编码装置接收到的比特流进行解码,提取与块分割有关的信息以确定要被解码的当前块,并且提取重构当前块所需的预测信息和与残差信号有关的信息。
75.解码器310从序列参数集(sps)或图片参数集(pps)中提取有关ctu大小的信息,确定ctu的大小,并且将图片分割为所确定大小的ctu。然后,解码器将ctu确定为树结构的最
上层(即,根节点),并且提取有关ctu的分割信息以使用树结构分割ctu。例如,当使用qtbt结构分割ctu时,提取与qt的分割有关的第一标记(qt_split_flag),以将每个节点分割为子层的四个节点。对于与qt的叶节点相对应的节点,提取第二标记(bt_split_flag)和与bt的分割有关的分割类型信息,以将叶节点分割为bt结构。
76.在通过树结构的分割确定要解码的当前块时,解码器310提取与指示当前块被帧内预测还是帧间预测的预测类型有关的信息。
77.当预测类型信息指示帧内预测时,解码器310提取用于与当前块有关的帧内预测信息(帧内预测模式)的语法元素。
78.当预测类型信息指示帧间预测时,解码器310提取用于帧间预测信息的语法元素。首先,解码器提取指示编码模式的模式信息,在该编码模式中,与当前块有关的运动信息在多个编码模式中被编码。这里,多个编码模式包括合并模式和运动矢量差编码模式。当模式信息指示合并模式时,解码器310从合并候选中提取指示将从其推导当前块的运动矢量的合并候选的合并索引信息,作为用于运动信息的语法元素。另一方面,当模式信息指示运动矢量差编码模式时,解码器310提取与运动矢量差有关的信息和与当前块的运动矢量参考的参考图片有关的信息,作为用于运动矢量的语法元素。当视频编码装置使用多个预测运动矢量候选中的一个作为当前块的预测运动矢量时,预测运动矢量识别信息被包括在比特流中。因此,在这种情况下,不仅提取与运动矢量差和参考图片有关的信息,而且提取预测运动矢量识别信息作为用于运动矢量的语法元素。
79.解码器310提取与当前块的量化变换系数有关的信息作为与残差信号有关的信息。
80.逆量化器320对量化变换系数进行逆量化。逆变换器330将逆量化变换系数从频域逆变换到空间域以重构残差信号,从而生成用于当前块的残差块。
81.预测器340包括帧内预测器342和帧间预测器344。当当前块的预测类型是帧内预测时,帧内预测器342被激活,并且当当前块的类型是帧间预测时,帧间预测器344被激活。
82.帧内预测器342使用从解码器310提取的用于帧内预测模式的语法元素来在多个帧内预测模式中确定当前块的帧内预测模式,并且根据帧内预测模式使用当前块周围的参考像素来预测当前块。
83.帧间预测器344使用用于从解码器310提取的帧间预测信息的语法元素来确定关于当前块的运动信息,并且使用所确定的运动信息来预测当前块。
84.首先,帧间预测器344检查从解码器310提取的用于帧间预测的模式信息。当模式信息指示合并模式时,帧间预测器344使用当前块的相邻块配置包括预定数量的合并候选的合并列表。帧间预测器344以与视频编码装置的帧间预测器124相同的方式配置合并列表。然后,使用从解码器310发送的合并索引信息从合并列表中的合并候选中选择一个合并候选。与所选合并候选有关的运动信息(即,合并候选的运动矢量和参考图片)被设置为当前块的运动矢量和参考图片。
85.另一方面,当模式信息指示运动矢量差编码模式时,帧间预测器344使用当前块的相邻块的运动矢量来推导预测运动矢量候选,并且使用预测运动矢量候选确定用于当前块的运动矢量的预测运动矢量。帧间预测器344以与视频编码装置的帧间预测器124相同的方式推导预测运动矢量候选。在视频编码装置使用多个预测运动矢量候选中的一个作为当前
块的预测运动矢量的情况下,用于运动信息的语法元素包括预测运动矢量识别信息。因此,在这种情况下,帧间预测器344可以在预测运动矢量候选中选择由预测运动矢量识别信息指示的候选作为预测运动矢量。然而,当视频编码装置通过将预定义函数应用于多个预测运动矢量候选来确定预测运动矢量时,帧间预测器344可以使用与视频编码装置所使用的函数相同的函数来确定预测运动矢量。一旦确定了当前块的预测运动矢量,帧间预测器344就将预测运动矢量和从解码器310发送的运动矢量差相加以确定当前块的运动矢量。使用与从解码器310传递的参考图片有关的信息来确定当前块的运动矢量所参考的参考图片。
86.当在合并模式或运动矢量差编码模式下确定当前块的运动矢量和参考图片时,帧间预测器344使用由参考图片中的运动矢量指示的位置处的块来生成用于当前块的预测块。
87.在双向预测的情况下,帧间预测器344使用用于帧间预测信息的语法元素分别从参考图片列表0和参考图片列表1中选择第一参考图片和第二参考图片,并且确定参考各个参考图片的第一运动矢量和第二运动矢量。然后,通过参考第一参考图片的第一运动矢量生成第一参考块,并且通过参考第二参考图片的第二运动矢量生成第二参考块。通过对第一参考块和第二参考块进行求平均或加权平均来生成用于当前块的预测块。
88.此外,帧间预测器344可以执行本公开的双向光流(bio)处理以通过双向预测来生成当前块的预测块。换句话说,在确定用于当前块的双向运动矢量之后,帧间预测器344可以以每像素为基础或以每子块为基础根据bio处理通过运动补偿来生成用于当前块的预测块。
89.在通过双向预测的运动补偿中,可以以各种方式确定是否应用bio处理。将参考图4和随后附图描述bio处理的细节以及在运动补偿过程中是否应用bio处理的细节。
90.加法器350将从逆变换器输出的残差块与从帧间预测器或帧内预测器输出的预测块相加以重构当前块。重构的当前块中的像素被用作用于稍后将解码的块的帧内预测的参考样本。
91.滤波器单元360对重构块之间的边界进行解块滤波,以便去除由逐块解码引起的块伪像,并将解块滤波后的块存储在存储器370中。当重构一个图片中的所有块时,将重构图片用作用于要解码的后续图片中的块的帧间预测的参考图片。
92.编码装置在帧间预测操作中以编码单元(cu)执行运动估计和补偿,然后将所得运动矢量(mv)值发送到解码装置。编码装置和解码装置可以进一步使用bio以小于cu的像素单位或子块单位(即,子cu)校正mv值。即,bio可以以1
×
1块(即,一个像素)或n
×
n块为单位精确地补偿编码块cu的运动。另外,由于通过使用在编码装置和解码装置之间共享的预解码信息应用显式方程式来执行bio处理,因此不需要从编码装置向解码装置发信号通知用于bio处理的附加信息。
93.图4是用于解释bio的基本概念的参考图。
94.用于视频编码和解码的bio基于以下假设:运动矢量信息应为双向预测信息,并且构成图像的像素以恒定速度移动,并且像素值几乎没有变化。
95.首先,假定已经通过要在当前图片中编码的当前块的(常规)双向运动预测确定了双向运动矢量mv0和mv1。双向运动矢量mv0和mv1指向参考图片ref0和ref1中的与当前块最相似的对应区域(即,参考块)。两个双向运动矢量具有表示当前块的运动的值。即,双向运动
矢量是通过将当前块设置为一个单元并估计整个单元的运动而获得的值。
96.在图4的示例中,将参考图片ref0中的由运动矢量mv0指示的并且与当前块中的像素p相对应的像素表示为p0,并且将参考图片ref1中的由运动矢量mv1指示的并且与当前块中的像素p相对应的像素表示为p1。此外,假设图4中的像素p的运动与当前块的整体运动略有不同。例如,当位于图4的ref0中的像素a处的对象经由当前图片的当前块中的像素p移动到ref1中的像素b时,像素a和像素b可以具有彼此非常相似的值。同样,在这种情况下,ref0中的与当前块中的像素p最相似的点不是由运动矢量mv0指示的p0,而是从p0偏移了预定位移矢量(v
x
τ0,vyτ0)的像素a。ref1中的与当前块中的像素p最相似的点不是由运动矢量mv1表示的p1,而是从p1偏移了预定位移矢量(-v
x
τ1,-vyτ1)的像素b。τ0和τ1分别表示ref0和ref1相对于当前图片的时域距离,并且基于图片顺序计数(poc)被计算。在下文中,为了简单起见,将(v
x
,vy)称为“光流”或“bio运动矢量”。
97.因此,在预测当前图片中的当前块的像素p的值时,使用两个参考像素a和b的值比使用由双向运动矢量mv0和mv1指示的参考像素p0和p1能够进行更准确的预测。考虑到如上所述由光流(v
x
,vy)指定的像素级运动来改变用于预测当前块的一个像素的参考像素的概念可以扩展到以从当前块分割的子块为单位考虑子块级运动的概念。
98.在下文中,将描述根据bio技术生成用于当前块中的像素的预测值的理论方法。为了简单起见,假定基于bio的双向运动补偿是基于像素执行的。
99.假设已经通过用于当前块的(常规)双向运动预测在参考图片ref0和ref1中确定了指向与在当前图片中编码的当前块最相似的对应区域(即,参考块)的双向运动矢量mv0和mv1。解码装置可以根据包括在比特流中的运动矢量信息来确定双向运动矢量mv0和mv1。另外,将由运动矢量mv0表示的并且与当前块中的像素(i,j)相对应的参考图片ref0中的像素的亮度值定义为i
(0)
(i,j),并且将由运动矢量mv1表示的并且与当前块中的像素(i,j)相对应的参考图片ref1中的像素的亮度值定义为i
(1)
(i,j)。
100.可以将参考图片ref0中的指示bio运动矢量(v
x
,vy)对应于当前块中的像素的像素a的亮度值定义为i
(0)
(i+v
x
τ0,j+vyτ0),并且可以将参考图片ref1中的像素b的亮度值定义为i
(1)
(i-v
x
τ1,j-vyτ1)。在此,当仅使用泰勒级数的一阶项进行线性近似时,a和b可以表示为方程式1。
101.[方程式1]
[0102][0103]
这里,i
x(k)
和i
y(k)
(k=0,1)是在ref0和ref1的位置(i,j)处在水平方向和垂直方向上的梯度值。τ0和τ1分别表示ref0和ref1相对于当前图片的时域距离,并且基于poc被计算:τ0=poc(current)-poc(ref0),τ1=poc(ref1)-poc(current)。
[0104]
块中的每个像素的双向光流(v
x
,vy)被确定为最小化δ的解决方案,δ被定义为像素a和像素b之间的差。δ通过使用由方程式1推导的a和b的线性近似的方程式2来限定。
[0105]
[方程式2]
[0106][0107]
为了简单起见,从以上方程式2的每一项中省略了像素的位置(i,j)。
[0108]
为了实现更鲁棒的光流估计,假设运动与相邻像素局部一致。对于当前要预测的像素(i,j)的bio运动矢量,考虑方程式2中的针对存在于大小为(2m+1)
×
(2m+1)的掩模ω中的所有像素(i',j')的差δ,掩模以当前要预测的像素(i,j)为中心。即,可以将用于当前像素(i,j)的光流确定为使目标函数φ(v
x
,vy)最小化的矢量,该目标函数是针对掩模ω中的各个像素获得的差δ[i',j']的平方和,如方程式3所示。
[0109]
[方程式3]
[0110][0111]
这里,(i',j')表示像素在掩模ω中的位置。例如,当m=2时,掩模具有如图5所示的形状。位于掩模的中心处的阴影区域中的像素是当前像素(i,j),并且掩模ω中的像素由(i',j')表示。
[0112]
为了估计块中的每个像素(i,j)的光流(v
x
,vy),通过分析方法计算使目标函数φ(v
x
,vy)最小化的解决方案。和可以通过目标函数φ(v
x
,vy)关于v
x
和vy的偏导数推导,并且方程式4可以通过将两个方程式求解为联立方程式获得。
[0113]
[方程式4]
[0114]
s1v
x
(i,j)+s2vy(i,j)=-s3[0115]
s4v
x
(i,j)+s5vy(i,j)=-s6[0116]
如方程式5所示,给出在方程式4中的s1、s2、s3、s4、s5和s6。
[0117]
[方程式5]
[0118][0119][0120][0121][0122][0123][0124]
这里,由于s2=s4,所以s4被s2代替。
[0125]
通过求解作为方程式系统的方程式4,可以估计v
x
和vy。例如,使用克莱姆(cramer)法则,可以将v
x
和vy推导为方程式6。
[0126]
[方程式6]
[0127][0128][0129]
作为另一示例,可以使用通过将vy=0代入方程式4的第一方程式来计算v
x
的近似值并且通过将计算出的v
x
的值代入第二方程式来计算vy的近似值的简化方法。在这种情况下,v
x
和vy如方程式7所示。
[0130]
[方程式7]
[0131][0132][0133]
其中r和m是被引入以避免执行除以0或很小值的标准化参数。在方程式7中,当不满足s1+r>m时,设置v
x
(i,j)=0。当不满足s5+r》m时,设置vy(i,j)=0。
[0134]
作为另一示例,可以通过将vy=0代入方程式4的第一方程式来计算v
x
的近似值,并且可以通过将v
x
=0代入第二方程式来计算vy的近似值。利用此方法,v
x
和vy可以被独立计算,并且可以表示为方程式8。
[0135]
[方程式8]
[0136][0137][0138]
作为另一个示例,可以通过将vy=0代入方程式4的第一方程式来计算v
x
的近似值,并且可以将vy计算为通过将v
x
的近似值代入第二方程式获得的vy的第一近似值和通过将v
x
=0代入第二方程式获得的vy的第二近似值的平均值。使用该方法,可以如方程式9所示那样获得v
x
和vy。
[0139]
[方程式9]
[0140][0141][0142]
方程式7至9中使用的归一化参数r和m可以如方程式10中那样定义。
[0143]
[方程式10]
[0144]
r=500
·4d-8
[0145]
m=700
·4d-8
[0146]
这里,d表示图像的像素的比特深度。
[0147]
对于块中的每个像素,通过使用方程式6至9的计算来获得块中的各个像素的光流v
x
和vy。
[0148]
一旦确定了当前像素的光流(v
x
,vy),就可以通过方程式11计算根据bio的当前像素(i,j)的双向预测值pred
bio
。
[0149]
[方程式11]
[0150]
或
[0151][0152]
在方程式11中,(i
(0)
+i
(1)
)/2是基于块的典型双向运动补偿,因此其余项可以被称为bio偏移。
[0153]
在典型双向运动补偿中,使用参考块中的像素来生成当前块的预测块。另一方面,为了使用掩模,应允许访问参考块中的像素以外的像素。例如,用于如图6的(a)所示的参考块的最左上位置(位置(0,0))处的像素的掩模包括位于参考块外部的位置处的像素。为了维持与典型双向运动补偿中相同的内存访问并降低bio的计算复杂度,参考块外部的被定位在掩模中的像素的i
(k)
、i
x(k)
和i
y(k)
可以用参考块中的最接近像素的相应值填充。例如,如图6的(b)所示,当掩模的大小为5
×
5时,位于参考块上方的外部像素的i
(k)
、i
x(k)
和i
y(k)
可以用参考块的顶行中的像素的i
(k)
、i
x(k)
和i
y(k)
填充。参考块左侧的外部像素i
(k)
、i
x(k)
和i
y(k)
可以用参考块的最左列中的像素的i
(k)
、i
x(k)
和i
y(k)
填充。
[0154]
已经描述了基于当前块中的像素的bio处理。然而,为了降低计算复杂度,可以以块为基础(例如以4
×
4块为基础)来执行bio处理。通过在当前块中以每子块为基础进行bio,可以使用方程式6至9在当前块中以每子块为基础获得光流v
x
和vy。除了掩模的范围之外,基于子块的bio基于与基于像素的bio相同的原理。
[0155]
作为示例,掩模ω的范围可以被扩展为包括子块的范围。当子块的大小为n
×
n时,掩模ω的大小为(2m+n)
×
(2m+n)。例如,当m=2并且子块的大小是4
×
4时,掩模具有如图7所示的形状。可以针对包括子块的掩模ω中的所有像素计算方程式2的δs,以获得用于子块的方程式3的目标函数,并且可以通过应用方程式4至9以子块为基础计算光流(v
x
,vy)。
[0156]
作为另一示例,可以通过以逐个像素为基础对子块中的所有像素应用掩模来计算方程式2的δs,并且可以通过获得δs的平方和来获得用于子块的方程式3的目标函数。然后,可以以使目标函数最小化的方式来计算用于子块的光流(v
x
,vy)。例如,参考图8,可以通过将掩模810a应用至当前块中的4
×
4子块820的位置(0,0)处的像素,来针对5
×
5掩模810a中的所有像素计算方程式2的δs。然后,可以通过将掩模810b应用至位置(0,1)处的像素,来针对5
×
5掩模810b中的所有像素计算方程式2的δs。通过该处理,可以通过对子块中的所有像素的所计算δs的平方求和来获得方程式3的目标函数。然后,可以计算使目标函数最小化的光流(v
x
,vy)。在此示例中,目标函数被表示为方程式12。
[0157]
[方程式12]
[0158][0159]
其中,bk表示当前块中的第k个子块,而ω(x,y)表示第k个子块中的具有坐标(x,y)的像素的掩码。用于计算光流(v
x
,vy)的s1至s6按方程式13被修改。
[0160]
[方程式13]
[0161][0162][0163][0164]
在以上方程式中,和分别表示i
x(k)
和i
y(k)
,即,水平梯度和垂直梯度。
[0165]
作为另一示例,如图7所示的基于子块的掩模可以被使用,并且可以在掩模的每个位置上应用权重。在靠近子块的中心的位置处应用较高权重。例如,参考图8,当在子块中逐像素地应用掩模时,可以冗余地计算用于相同位置的δs。位于以子块820的位置(0,0)为中心的掩模810a内的大多数像素也位于以子块820的位置(1,0)为中心的掩模810b内。因此,δs可能会被冗余地计算。代替重复计算交叠δ,可以根据交叠的数量将权重分配给掩模中的每个位置。例如,当m=2并且子块的大小是4
×
4时,可以使用如图9中所示的加权掩模。这样,可以简化方程式12和13的运算,从而降低计算复杂度。
[0166]
上述基于像素或基于子块的bio需要大量计算。因此,在视频编码或解码中需要一种用于减少根据bio的计算量的方法。为此,本公开提出当满足特定条件时在运动补偿中跳过bio处理。
[0167]
图10是示出根据本公开的实施方式的被配置为通过选择性地应用bio处理来执行运动补偿的设备的配置的框图。
[0168]
可以在视频编码装置的帧间预测器124和/或视频解码装置的帧间预测器344中实现的本实施方式中描述的运动补偿设备1000可以包括参考块生成器1010、跳过确定器1020和预测块生成器1030。这些组件中的每个可以被实现为硬件芯片或可以被实现为软件,并且一个或更多个微处理器可以被实现为执行与各个组件相对应的软件的功能。
[0169]
参考块生成器1010使用参考参考图片列表0中的第一参考图片的第一运动矢量来生成第一参考块,并且使用参考参考图片列表1中的第二参考图片的第二运动矢量来生成第二参考图片。
[0170]
跳过确定器1020确定是否在运动补偿过程中应用bio处理。
[0171]
当跳过确定器1020确定跳过bio处理时,预测块生成器1030通过典型运动补偿来生成当前块的预测块。即,通过对第一参考块和第二参考块进行求平均或加权平均来生成当前块的预测块。另一方面,当由跳过确定器1020确定应用bio处理时,预测块生成器1030根据bio处理使用第一参考块和第二参考块来生成当前块的预测块。即,可以通过应用方程式11来生成当前块的预测块。
[0172]
跳过确定器1020可以基于以下条件中的一个或更多个来确定是否应用bio处理:
[0173]-当前块的纹理复杂度;
[0174]-当前块的大小和/或指示运动信息编码模式的模式信息;
[0175]-双向运动矢量(第一运动矢量和第二运动矢量)是否满足恒定速度约束(cvc)和/或亮度恒定约束(bcc);以及
[0176]-相邻块的运动矢量的变化程度。
[0177]
在下文中,将描述使用每个条件确定是否应用bio处理的详细方法。
[0178]
实施方式1:根据纹理复杂度的bio跳过
[0179]
光流往往会导致在局部特征很少的平滑区域(诸如边缘或拐角)中产生不健壮的结果。另外,很可能通过传统的基于块的运动估计已经充分地预测了具有这种平滑纹理的区域。因此,在本实施方式中,计算当前块的纹理复杂度,并且根据纹理复杂度跳过bio处理。
[0180]
为了允许编码装置和解码装置在没有附加信令的情况下计算纹理复杂度,可以使用在编码装置和解码装置之间共享的第一参考块和第二参考块来计算当前块的纹理复杂度。即,在编码装置和解码装置中的每个中实现的跳过确定器通过计算当前块的纹理复杂度来确定是否跳过bio处理。
[0181]
对于纹理复杂度,可以使用具有少量计算(例如,与相邻像素的差、梯度和moravec)的局部特征检测器。在该实施方式中,使用梯度来计算纹理复杂度。用于参考块的梯度是在bio处理中使用的值。因此,该实施方式的优点在于,可以将以纹理复杂度计算出的梯度值直接应用于执行bio处理。
[0182]
根据本实施方式的运动补偿设备1000使用第一参考块和第二参考块中的每个像素的水平梯度和垂直梯度来计算纹理复杂度。作为一个示例,运动补偿设备1000使用第一参考块和第二参考块中的各个像素的水平梯度来计算水平复杂度,并且使用第一参考块和第二参考块中的各个像素的垂直梯度来计算垂直复杂度。例如,可以通过方程式14来计算水平复杂度和垂直复杂度。
[0183]
[方程式14]
[0184][0185][0186]
其中,d1和d5分别表示水平复杂度和垂直复杂度,并且cu表示在第一参考块和第二参考块中的与当前块中的各个像素的位置相对应的一组像素位置。[i,j]表示在第一参考块和第二参考块中的与当前块中的每个像素相对应的位置。d1(i,j)和d5(i,j)可以由方程式15计算。
[0187]
[方程式15]
[0188][0189][0190][0191][0192][0193]
使用方程式15的d1和d5,可以在方程式14中计算水平复杂度和垂直复杂度。也就是说,可以通过考虑用于第一参考块和第二参考块中的相互对应的位置处的像素的时域距离(τ0,τ1)计算用于每个像素位置的水平梯度(τ0i
x(0)
(i,j)、τ1i
x(1)
(i,j))之和并且对和的平方求和,来计算水平复杂度d1。然后,可以通过考虑第一参考块和第二参考块中的彼此相对
应的位置处的像素的时域距离计算用于每个像素位置的垂直梯度(τ0i
y(0)
(i,j)、τ1i
y(1)
(i,j))之和并且对和的平方求和,来计算垂直复杂度d5。
[0194]
在方程式15中,d4被省略。d4具有与d2相同的值。可以看出,方程式15的d1至d6与方程式5的s1至s6相关联。d1至d6表示在一个像素位置处的值,并且s1至s6表示在以一个像素为中心的掩模中的所有像素位置处计算的d1至d6中的每个的和。即,使用方程式15,方程式5可以被表达为下面的方程式16。在方程式16中,因为s4具有与s2相同的值,所以省略了s4。
[0195]
[方程式16]
[0196][0197][0198][0199][0200][0201]
用于当前块的纹理复杂度可以被设置为水平复杂度和垂直复杂度的最小值min(d1,d5)、最大值max(d1,d5)或平均值ave(d1,d5)中的任一个。运动补偿设备1000在纹理复杂度小于阈值t时跳过bio处理,而在纹理复杂度大于或等于阈值t时应用bio处理。当应用bio处理时,方程式14中计算的d1至d6可用于计算s1至s6。即,根据该实施方式,使用要在bio处理期间计算的值来获得当前块的纹理复杂度,并且基于该值来确定是否跳过bio处理。因此,可以减少用于确定是否跳过bio处理的附加计算。
[0202]
对于阈值t,可以使用缩放方程式7至9中使用的归一化参数的方法。归一化参数r和m的关系为s1》m
–
r和s5》m-r。当s1《=m
–
r时,即使执行bio,v
x
也为0。当s5《=m-r时,即使执行bio,vy也为0。
[0203]
因此,当基于归一化参数的关系设置阈值t时,即使执行bio,通过以cu为基础预先确定被设置为0的区域也可以跳过bio。d1是用于cu中的所有像素位置的d1之和,而s1是掩模ω中的d1之和。因此,当cu的大小是w
×
h并且掩模ω的大小是(2m+1)
×
(2m+1)时,阈值t可以如方程式17中那样设置。
[0204]
[方程式17]
[0205][0206]
图11是示出根据本公开的实施方式的通过基于当前块的纹理复杂度选择性地应用bio处理来执行运动补偿的过程的示意图。
[0207]
运动补偿设备1000为第一参考块和第二参考块中的每个像素计算水平梯度i
x(k)
和垂直梯度i
y(k)
(s1102)。然后,使用方程式15计算d1至d6,并且使用d1和d5根据方程式14计算水平复杂度d1和垂直复杂度d5(s1104)。确定当前块的纹理复杂度(其是水平复杂度d1和
垂直复杂度d5中的最小值)是否小于阈值t(s1106)。尽管在该示例中将当前块的纹理复杂度描述为水平复杂度d1和垂直复杂度d5之间的最小值,但是可以将纹理复杂度设置为最大值或平均值。
[0208]
当当前块的纹理复杂度小于阈值t时,跳过bio处理,并且通过典型运动补偿来生成当前块的预测块(s1108)。即,通过对第一参考块和第二参考块求平均或加权平均来生成当前块的预测块。
[0209]
当当前块的纹理复杂度大于或等于阈值t时,根据bio处理,使用第一参考块和第二参考块生成用于当前块的预测块。首先,计算s1至s6。由于已经在s1102中计算了参考块中的像素的水平梯度和垂直梯度,因此仅需要针对掩模中存在的参考块之外的像素计算水平梯度和垂直梯度,以获得s1至s6。另选地,如上所述,当参考块外部的像素的水平梯度和垂直梯度被填充有与其接近的参考块的像素的对应值时,可以仅使用用于参考块中的像素的已经计算出的水平梯度和垂直梯度来获得s1至s6。
[0210]
另选地,由于d1至d6与s1至s6相关联(参见方程式16),因此可以在计算s1至s6时使用d1至d6的计算值。
[0211]
一旦计算出s1至s6,就使用方程式6至9中的一个来确定基于像素或基于子块的光流(v
x
,vy)(s1112)。然后,通过将光流(v
x
,vy)应用于当前块中的对应像素或子块,根据方程式11生成当前块的预测块(s1114)。
[0212]
图12是示出根据本公开的实施方式的通过基于当前块的纹理复杂度选择性地应用bio处理来执行运动补偿的过程的另一示意图。
[0213]
在图12中公开的示例仅在计算d1至d6的顺序方面不同于图11的示例。即,仅需要d1至d6中的d1和d5来计算当前块的纹理复杂度。因此,如在s1204中一样,首先获得d1和d5。当纹理复杂度大于阈值时,计算d2、d3、d4(等于d2)和d6,从而执行bio处理(s1210)。其它操作与图11中的操作基本相同。
[0214]
下表示出了根据本实施方式的将根据bio处理的运动补偿与通过基于纹理复杂度选择性地应用bio处理而执行的运动补偿进行比较的实验结果。
[0215]
[表1]
[0216][0217]
实验中使用的序列分别为4个用于a1类(4k),5个用于b类(fhd),4个用于c类(832
×
480)和4个用于d类(416
×
240),并且实验使用相应视频的所有帧进行。实验环境是随机
访问(ra)配置,并且通过将qp设置为22、27、32和37进行实验来比较bd速率。
[0218]
根据本实施方式,bio平均被跳过约19%,并且在计算量最大的a1类(4k)中,bio被跳过了32%。实验表明,随着图像分辨率的提高,跳过的比例也会增加。实验的结果可以被认为是有意义的,因为分辨率的提高实质上增加了计算量方面的负担。
[0219]
此外,尽管y bd率平均提高0.02%,但通常认为为0.1%或以下的bd率差可以忽略不计。因此,可以看出,即使根据该示例选择性地跳过了bio,压缩效率也几乎相同。
[0220]
上述示例与确定是否跳过整个bio处理有关。代替跳过整个bio处理,可以独立地跳过水平光流v
x
和垂直光流vy。即,当水平复杂度d1小于阈值t时,通过设置v
x
=0来跳过水平方向上的bio处理,并且当垂直复杂度d5小于阈值t时,通过设置vy=0来跳过垂直方向上的bio处理。
[0221]
图13是示出根据本公开的实施方式的通过基于当前块的纹理复杂度选择性地应用bio处理来执行运动补偿的过程的又一示意图。
[0222]
运动补偿设备1000为第一参考块和第二参考块中的每个像素计算水平梯度i
x(k)
和垂直梯度i
y(k)
(s1310)。然后,使用方程式15来计算d1和d5,使用d1来计算水平复杂度d1,并且使用d5来计算垂直复杂度d5(s1320)。
[0223]
一旦在s1320中计算了水平复杂度d1和垂直复杂度d5,就执行确定是否跳过水平光流的操作(s1330)和确定是否跳过垂直光流的操作(s1340)。虽然图13示出了首先确定是否跳过水平光流,但是可以首先确定是否跳过垂直光流。
[0224]
在s1330中,运动补偿设备1000确定水平复杂度d1是否小于阈值t(s1331)。当水平复杂度d1小于阈值t时,将水平光流v
x
设置为0(s1332)。这意味着不应用水平光流。当水平复杂度d1大于或等于阈值t时,计算d3(s1333),并且使用d1和d3计算s1和s3(s1334)。参考方程式7至9,当计算水平光流v
x
时,仅需要s1和s3。由于已经在s1320中计算了d1,因此在s1333中计算d3,并且在s1334中使用d1和d3计算s1和s3。然后,根据方程式7至9中的任一个,使用s1和s3计算水平光流v
x
(s1335)。
[0225]
然后,处理进行到s1340以确定是否跳过垂直方向光流。确定垂直复杂度d5是否小于阈值t(s1341)。当垂直复杂度d5小于阈值t时,将垂直光流vy设置为0(s1342)。这意味着不应用垂直光流。当垂直复杂度d5大于或等于阈值t时,计算d2和d6(s1343),并且使用d2、d5和d6计算s2、s5和s6(s1344)。当使用方程式7或9计算垂直光流vy时,仅需要s2、s5和s6。由于已经在s1320中计算了d5,因此在s1343中计算d2和d6,并且在s1344中使用d2、d5和d6计算s2、s5和s6。然后,根据方程式7或9使用s2、s5和s6计算垂直光流vy(s1345)。
[0226]
当使用方程式8计算垂直光流vy时,仅需要s5和s6。因此,在这种情况下,可以在s1343和s1344中省略d2和s2的计算。
[0227]
将以此方式计算出的水平光流v
x
和垂直光流vy代入方程式11产生当前块的预测块。当跳过水平光流时,方程式11中的v
x
=0,因此水平光流v
x
不会有助于生成预测块。类似地,当跳过垂直光流时,vy=0,因此垂直光流vy不会有助于生成预测块。当水平光流和垂直光流都被跳过时,v
x
=0和vy=0,因此通过对第一参考块和第二参考块求平均来生成预测块。即,通过典型运动补偿来生成预测块。
[0228]
在上述实施方式1中,使用参考块中的像素来估计当前块的纹理复杂度。然而,可以使用当前块中的实际像素来计算当前块的纹理复杂度。例如,编码装置可以使用当前块
中的像素的水平梯度和垂直梯度来计算水平复杂度和垂直复杂度。即,使用当前块中的各个像素的水平梯度的平方和来计算水平复杂度,并且使用垂直梯度的平方和来计算垂直复杂度。然后使用水平复杂度和垂直复杂度来确定是否跳过bio处理。在这种情况下,与编码装置不同,解码装置不知道当前块中的像素。因此,解码装置不能以与编码装置相同的方式计算纹理复杂度。因此,编码装置应该另外向解码装置发信号通知指示是否跳过bio的信息。即,在解码装置中实现的跳过确定器对指示是否跳过从编码装置接收到的bio的信息进行解码,并且选择性地跳过该信息指示的bio处理。
[0229]
实施方式2:根据当前块的大小和/或运动信息编码模式的bio跳过
[0230]
如上所述,根据从ctu分割的树结构,与树结构的叶节点相对应的cu(即,当前块)可以具有各种大小。
[0231]
当当前块的大小足够小时,当前块的运动矢量可能具有与基于像素或基于子块的bio基本相似的值,因此通过执行bio获得的补偿效果可能很小。在这种情况下,通过跳过bio所获得的复杂度降低可能比由于跳过bio而导致的精度损失具有更大的益处。
[0232]
如上所述,当前块的运动矢量可以以合并模式或用于对运动矢量差编码的模式被编码。当以合并模式对当前块的运动矢量进行编码时,将当前块的运动矢量与相邻块的运动矢量合并。即,当前块的运动矢量被设置为等于相邻块的运动矢量。在这种情况下,可以通过bio获得另外的补偿效果。
[0233]
因此,在本实施方式中,基于当前块的大小或指示运动矢量的编码模式的模式信息中的至少一个来跳过bio处理。
[0234]
图14是示出根据本公开的实施方式的通过基于当前块的大小和运动矢量的编码模式选择性地应用bio处理来执行运动补偿的过程的示意图。虽然图14示出了使用当前块的大小和运动矢量的编码模式两者来确定是否跳过bio,但是使用它们中的任一种在本公开的范围内。
[0235]
运动补偿设备1000首先确定作为要编码的块的当前块cu的大小是否小于或等于阈值大小(s1402)。当当前块cu的大小大于阈值大小时,根据bio处理来生成当前块的预测块(s1408)。
[0236]
另一方面,当当前块cu的大小小于或等于阈值大小时,确定当前块cu的运动矢量mv是否通过合并模式编码(s1404)。当没有通过合并模式对运动矢量进行编码时,跳过bio处理,并且通过典型运动补偿来生成当前块的预测块(s1406)。当通过合并模式对运动矢量进行编码时,根据bio处理来生成当前块的预测块(s1408)。
[0237]
例如,当wt
×ht
被定义为8
×
8,并且大小为8
×
8、8
×
4、4
×
8或4
×
4(其小于或等于8
×
8)的当前块的运动矢量不是通过合并模式被编码时,跳过bio处理。
[0238]
在根据s1308中的bio处理生成预测块时,可以根据实施方式1(即,当前块的纹理复杂度)进一步确定是否跳过bio。
[0239]
实施方式3:根据cvc和/或bcc的bio跳过
[0240]
bio基于以下假设:视频中的对象以恒定速度移动,并且像素值几乎没有变化。这些假设分别被定义为恒定速度约束(cvc)和亮度恒定约束(bcc)。
[0241]
当基于当前块估计的双向运动矢量(mvx0,mvy0)和(mvx1,mvy1)满足cvc和bcc的两个条件时,基于相同假设进行操作的bio也可能具有与当前块的双向运动矢量类似的值。
[0242]
通过当前块的双向运动矢量(mvx0,mvy0)和(mvx1,mvy1)满足cvc条件意味着这两个运动矢量具有相反的符号并且具有每次相同的运动位移。
[0243]
通过当前块的双向运动矢量满足bcc条件意味着位于第一参考图片ref0中的由(mvx0,mvy0)指示的第一参考块与位于第二参考图片ref1中的由(mvx1,mvy1)指示的参考块之间的差是0。两个参考块之间的差可以通过绝对差之和(sad)、平方误差和(sse)等来计算。
[0244]
作为示例,cvc条件和bcc条件可以表示如下。
[0245]
[方程式18]
[0246]
|mvx0/τ0+mvx1/τ1|<t
cvc
&|mvy0/τ0+mvy1/τ1|<t
cvc
[0247]
∑
(i,j)
|i
(0)
(i+mvx0,j+mvy0)-i
(1)
(i+mvx1,j+mvy1)|<t
bcc
[0248]
其中,t
cvc
和t
bcc
分别是cvc条件和bcc条件的阈值。
[0249]
参考图4,bio假设用于第一参考图片ref0的光流(+v
x
,+vy)和用于第二参考图片ref1的光流(-v
x
,-vy)具有相同大小但是不同符号。因此,为了使双向运动矢量(mvx0,mvy0)和(mvx1,mvy1)满足bio假设,双向运动矢量的x分量mvx0和mvx1应该具有不同符号,并且y分量mvy0和mvy1应该也具有不同符号。此外,为了满足cvc条件,mvx0除以τ0的绝对值(其是当前图片与第一参考图片之间的时域距离)应等于mvx1除以τ1的绝对值(其是当前图片和第二张参考图片之间的时域距离)。类似地,mvy0除以τ0的绝对值和mvy1除以τ1的绝对值应彼此相等。因此,基于阈值的概念,可以推导出如上所述的cvc条件。
[0250]
当双向运动矢量(mvx0,mvy0)和(mvx1,mvy1)分别参考的参考块之间的sad小于或等于阈值t
bcc
时,满足bcc条件。当然,可以使用能够表示两个参考块之间的差的其它指示符(诸如sse)来代替sad。
[0251]
图15是示出根据本公开的实施方式的通过基于cvc条件和bcc条件选择性地应用bio处理来执行运动补偿的过程的示意图。
[0252]
运动补偿设备1000确定当前块的双向运动矢量(mvx0,mvy0)和(mvx1,mvy1)是否满足cvc条件和bcc条件(s1502)。当两个条件都满足时,跳过bio处理,并且根据典型运动补偿来生成预测块(s1504)。
[0253]
另一方面,当不满足两个条件中的任一个时,根据bio处理来生成当前块的预测块(s1506)。
[0254]
虽然图15示出了当同时满足cvc条件和bcc条件时跳过bio处理,但是这仅是示例。可以基于cvc条件和bcc条件中的一个来确定是否跳过bio。
[0255]
实施方式4:根据相邻块的运动矢量的变化程度的bio跳过
[0256]
当在当前块的相邻块中以每块为基础估计的双向运动矢量具有相似值时,当前块中的以每像素为基础或每子块为基础估计的光流也可能具有相似值。
[0257]
因此,可以基于相邻块的运动矢量的变化程度(例如,方差或标准偏差)来确定是否跳过当前块的bio。举一个极端的例子,当相邻块的运动矢量的方差为0时,当前块中的基于每像素或每子块的光流也可能具有与当前块的运动矢量相同的值,因此跳过bio。
[0258]
作为示例,相邻块的运动矢量方差可以表示为方程式19。
[0259]
[方程式19]
[0260]
var
mv
=var
x
+vary[0261][0262][0263]
其中,l是一组相邻块,并且l是相邻块的总数。(m,n)表示相邻块的索引,并且t∈(0,1)。
[0264]
图16是示出根据本公开的实施方式的通过基于相邻块的运动矢量方差选择性地应用bio处理来执行运动补偿的过程的示意图。
[0265]
运动补偿设备1000将相邻块的运动矢量的方差与预定阈值进行比较(s1602)。当相邻块的运动矢量方差小于阈值时,跳过bio处理,并且根据典型运动补偿来生成预测块(s1604)。另一方面,当相邻块的运动矢量方差大于阈值时,根据bio处理来生成当前块的预测块(s1606)。
[0266]
在实施方式1至4中,已经描述了使用各个条件分别确定是否跳过bio。然而,本公开不限于使用任一个条件来确定是否跳过bio。通过选择性地组合在本公开中描述的多个条件来确定是否跳过bio也应被解释为在本公开的范围内。例如,选择性地组合本公开中描述的各种方法,诸如基于当前块的大小和纹理复杂度确定是否跳过bio,基于当前块的大小、cvc条件和/或bcc条件确定是否跳过bio,以及基于cvc条件和bcc条件以及当前块的纹理复杂度中的一项或多项来确定是否跳过bio,应解释为在本公开的范围内。
[0267]
尽管出于示例性目的描述了示例性实施方式,但是本领域技术人员将理解,在不脱离实施方式的思想和范围的情况下,可以进行各种修改和改变。为了简单和清楚起见,已经描述了示例性实施方式。因此,本领域的普通技术人员将理解,实施方式的范围不限于上面明确描述的实施方式,而是包括权利要求及其等同物。
[0268]
相关申请的交叉引用
[0269]
本技术要求于2017年8月29日在韩国提交的专利申请no.10-2017-0109632和在2017年12月19日在韩国提交的专利申请no.10-2017-0175587的优先权,其全部内容通过引用合并于此。
技术特征:
1.一种使用双向光流预测当前块的视频编码方法,该视频编码方法包括以下步骤:使用参考第一参考图片的第一运动矢量生成第一参考块,并且使用参考第二参考图片的第二运动矢量生成第二参考块;推导所述第一参考块和所述第二参考块之间的差值,其中,所述差值是绝对差之和或平方误差之和;以及基于所述差值,确定是否应用所述双向光流,其中,当所述差值小于预定阈值时,跳过所述双向光流,并且其中,当所述差值大于所述预定阈值时,以所述当前块中的样本为单位或以从所述当前块分割的子块为单位应用所述双向光流。2.一种使用双向光流预测当前块的视频解码方法,该视频解码方法包括以下步骤:使用参考第一参考图片的第一运动矢量生成第一参考块,并且使用参考第二参考图片的第二运动矢量生成第二参考块;推导所述第一参考块和所述第二参考块之间的差值,其中,所述差值是绝对差之和或平方误差之和;以及基于所述差值,确定是否应用所述双向光流,其中,当所述差值小于预定阈值时,跳过所述双向光流,并且其中,当所述差值大于所述预定阈值时,以所述当前块中的样本为单位或以从所述当前块分割的子块为单位应用所述双向光流。3.一种用于传输与视频数据相关联的比特流的方法,该方法包括以下步骤:生成包含当前块的编码数据的比特流;以及发送所述比特流,其中,生成所述比特流的步骤包括:使用参考第一参考图片的第一运动矢量生成第一参考块,并且使用参考第二参考图片的第二运动矢量生成第二参考块;推导所述第一参考块和所述第二参考块之间的差值,其中,所述差值是绝对差之和或平方误差之和;基于所述差值,通过应用或跳过双向光流来生成所述当前块的预测块;以及通过从所述当前块中减去所述预测块来生成残差信号;以及通过对所述残差信号进行编码来生成所述比特流,其中,当所述差值小于预定阈值时,跳过所述双向光流,并且其中,当所述差值大于所述预定阈值时,以所述当前块中的样本为单位或以从所述当前块分割的子块为单位应用所述双向光流。
技术总结
视频编码方法、视频解码方法和传输比特流的方法。公开了一种用于在视频编码处理期间估计用于帧间预测校正的自适应双向光流(BIO)的方法,并且更具体地,该方法包括以下步骤:由参考第一参考图片的第一运动矢量生成第一参考块,并且由参考第二参考图片的第二运动矢量生成第二参考块;通过使用第一参考块和第二参考块运行当前块的纹理复杂度;以及生成当前块的预测块,其中,通过基于纹理复杂度根据BIO处理选择性地使用第一参考块和第二参考块来生成当前块的预测块,或者通过使用第一参考块和第二参考块而不应用BIO处理来生成当前块的预测块。本发明可以降低像素级或子块级的双向光流的复杂度和/或成本。的复杂度和/或成本。的复杂度和/或成本。
技术研发人员:林晶娟 金孝性 金炯德 孙世勋 申在燮 李京泽 李善英
受保护的技术使用者:SK电信有限公司
技术研发日:2018.08.29
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/