欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于仿射模型的图像编码/解码方法和装置独创技术71179字

基于仿射模型的图像编码/解码方法和装置

2021-03-12 01:21:06

基于仿射模型的图像编码/解码方法和装置

  技术领域

  本发明涉及图像编码/解码方法和装置。

  背景技术

  近来,在各种应用领域中对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求正在增加,并且相应地,正在讨论高效图像压缩技术。

  对于图像压缩技术,存在各种技术,例如使用图像压缩技术根据当前图片之前或之后的图片来预测包括在当前图片中的像素值的帧间预测技术、通过使用当前图片中的像素信息来预测包括在当前图片中的像素值的帧内预测技术、将短码分配给具有高出现频率的值并将长码分配给具有低出现频率的值的熵编码技术,并且通过使用这样的图像压缩技术,可以有效地压缩和传输或存储图像数据。

  发明内容

  技术问题

  本发明的目的是提供帧间预测方法和装置。

  本发明的目的是提供基于仿射模型的预测方法和装置。

  本发明的目的是提供用于以子块为单位进行运动补偿的方法和装置。

  技术解决方案

  根据本发明的视频编码/解码方法和装置可以生成用于当前块的运动信息预测的候选列表,基于候选列表和候选索引来得出当前块的控制点矢量,基于当前块的控制点矢量来得出当前块的运动矢量,并且使用该运动矢量来执行对当前块的帧间预测。

  在根据本发明的视频编码/解码方法和装置中,候选列表可以包括多个仿射候选或时间候选中的至少一个。

  在根据本发明的视频编码/解码方法和装置中,仿射候选可以包括空间候选或构造候选中的至少一个。

  在根据本发明的视频编码/解码方法和装置中,当前块的控制点矢量可以包括以下矢量中的至少一个:与当前块的左上样本对应的第一控制点矢量、与当前块的右上样本对应的第二控制点矢量或与当前块的左下样本对应的第三控制点矢量。

  在根据本发明的视频编码/解码方法和装置中,可以通过考虑当前块的边界是否位于编码树块(CTU)的边界上来得出当前块的控制点矢量。

  在根据本发明的视频编码/解码方法和装置中,可以基于与当前块的每个角对应的控制点矢量中的至少两个控制点矢量的组合来确定构造候选。

  在根据本发明的视频编码/解码方法和装置中,可以基于与当前块对应的并置块的运动信息来得出时间候选的运动信息,并且可以以并置块的子块为单位来得出时间候选的运动信息。

  在根据本发明的视频编码/解码方法和装置中,可以以当前块的子块为单位来得出当前块的运动矢量,其中,可以使用第一控制点矢量、第二控制点矢量、子块的位置或当前块的尺寸中的至少一个来得出当前块的每个子块的运动矢量。

  在根据本发明的视频编码/解码方法和装置中,生成候选列表可以通过考虑当前块的相邻块的预测模式或当前块的尺寸中的至少一个来选择性地执行。

  有益效果

  根据本发明,可以通过基于仿射模型的预测来提高图像的编码/解码性能。

  根据本发明,可以通过以子块为单位进行运动补偿来提高预测准确度。

  根据本发明,可以通过使用最佳仿射候选和时间候选来提高基于仿射模型的预测编码/解码效率。

  附图说明

  图1是示出根据本发明的图像编码装置的框图。

  图2是示出根据本发明的图像解码装置的框图。

  图3示出了作为应用本发明的实施方式的基于仿射模型来执行帧间预测的概念。

  图4示出了作为应用本发明的实施方式的基于仿射模型的帧间预测方法。

  图5示出了作为应用本发明的实施方式的从空间/时间相邻块的控制点矢量得出仿射候选的方法。

  图6示出了作为应用本发明的实施方式的基于空间/时间相邻块的运动矢量的组合来得出构造候选的方法。

  图7示出了作为应用本发明的实施方式的得出基于子块的时间候选的运动信息的方法。

  图8示出了作为应用本发明的实施方式的以子块为单位得出运动矢量的方法。

  图9示出了作为应用本发明的实施方式的根据用于执行基于仿射模型的预测的单元的滤波方法。

  图10示出了作为应用本发明的实施方式的选择性地使用基于仿射模型的预测的方法。

  最佳实施方式

  根据本发明的图像编码/解码方法和装置可以生成用于当前块的运动信息预测的候选列表,基于候选列表和候选索引来得出当前块的控制点矢量,基于当前块的控制点矢量来得出当前块的运动矢量,并且使用该运动矢量执行对当前块的帧间预测。

  在根据本发明的图像编码/解码方法和装置中,候选列表可以包括多个仿射候选或时间候选中的至少一个。

  在根据本发明的图像编码/解码方法和装置中,仿射候选可以包括空间候选或构造候选中的至少一个。

  在根据本发明的图像编码/解码方法和装置中,当前块的控制点矢量可以包括以下矢量中的至少一个:与当前块的左上样本对应的第一控制点矢量、与当前块的右上样本对应的第二控制点矢量或与当前块的左下样本对应的第三控制点矢量。

  在根据本发明的图像编码/解码方法和装置中,可以通过考虑当前块的边界是否位于编码树块(CTU)的边界上来得出当前块的控制点矢量。

  在根据本发明的图像编码/解码装置中,可以基于与当前块的每个角对应的控制点矢量中的至少两个控制点矢量的组合来确定构造候选。

  在根据本发明的图像编码/解码方法和装置中,可以基于与当前块对应的并置块的运动信息来得出时间候选的运动信息,并且可以以并置块的子块为单位来得出时间候选的运动信息。

  在根据本发明的图像编码/解码方法和装置中,可以以当前块的子块为单位来得出当前块的运动矢量,其中,可以使用第一控制点矢量、第二控制点矢量、子块的位置或当前块的尺寸中的至少一个来得出当前块的每个子块的运动矢量。

  在根据本发明的图像编码/解码方法和装置中,生成候选列表可以通过考虑当前块的相邻块的预测模式或当前块的尺寸中的至少一个来选择性地执行。

  具体实施方式

  在下文中,将参照本发明的附图详细描述本发明的实施方式,使得本领域技术人员可以容易地实现本发明。然而,本发明可以以许多不同的形式实施,并且不应被解释为限于本文中阐述的实施方式。为了清楚地说明本发明,省略了与描述无关的部分并且在整个说明书中用相似的附图标记表示类似的部分。

  在整个说明书中,当声称一个部分“连接”至另一部分时,不仅包括这两个部分直接连接的示例,而且包括该部分与另一部分在其间电连接的示例。

  此外,在整个说明书中当声称一个部分“包括”元件时,应当理解,除非另有特别说明,否则该元件也可以包括其他元件而不是排除其他元件。

  另外,可以使用术语第一、第二等来描述各种部件,但是部件不应受这些术语的限制。这些术语仅用于将一个部件与另一部件区分开的目的。

  另外,在本文中描述的装置和方法的实施方式中,可以省略装置的一些部件或者方法的一些步骤。另外,可以改变装置的一些部件的顺序或者方法的一些步骤的顺序。此外,可以将其他部件或者其他步骤插入装置的一些部件或者方法的一些步骤中。

  另外,本发明的第一实施方式的一些部件或者步骤可以被添加到本发明的第二实施方式,或者可以替换第二实施方式的一些部件或步骤。

  另外,本发明的实施方式中示出的部件被独立示出以指示不同的特征功能,而不意味着每个部件都由单独的硬件或一个软件部件单元组成。即,为了便于描述,每个部件被列出为各个部件,并且每个部件的至少两个部件可以被组合以形成一个部件,或者一个部件可以被划分成多个部件以执行功能。在不脱离本发明的本质的情况下,这些部件中的每个部件的集成实施方式和单独的实施方式也被包括在本发明的范围内。

  首先,将如下简要描述本申请中使用的术语。

  稍后将描述的解码装置(视频解码装置)可以是民用安全摄像装置、民用安全系统、军用安全摄像装置、军用安全系统、个人计算机(PC)、笔记本计算机、便携式多媒体播放器(PMP)、无线通信终端、智能电话、包括在诸如TV应用服务器和服务服务器的服务器终端中的装置,并且可以表示诸如各种装置的用户终端、诸如用于执行与有线/无线通信网络的通信的调制解调器的通信装置、用于存储用于对图像进行解码或者执行用于解码的帧间预测或帧内预测的各种程序和数据的存储器、配备有用于执行程序和计算以及控制程序的微处理器等的各种装置。

  另外,被编码器编码为比特流的图像可以通过实时或者非实时的有线/无线通信网络(例如因特网、局域无线通信网络、无线LAN网络、WiBro网络、移动通信网络),或者通过诸如线缆、通用串行总线(USB)等的各种通信接口被发送到图像解码装置,被解码、重建为图像并且被再现。替选地,由编码器生成的比特流可以存储在存储器中。存储器可以包括易失性存储器和非易失性存储器两者。在本说明书中,存储器可以被表示为存储比特流的记录介质。

  通常,视频可以由一系列图片组成,并且每个图片可以被划分为诸如块的编码单元。另外,具有本实施方式所属技术领域的普通知识的人可以理解,可以通过将下文描述的术语“图片”替换为具有等同含义的另一术语如“图像”或“帧”来使用该术语。另外,本实施方式所属领域的普通技术人员将理解,术语“编码单元”可以被具有相同含义的其他术语(例如“单元块”和“块”)代替和使用。

  在下文中,将参照附图详细描述本发明的示例性实施方式。在描述本发明时,将省略对相同部件的冗余描述。

  图1是示出根据本发明的图像编码装置的框图。

  参照图1,常规的图像编码装置(100)包括:图片划分单元(110)、预测单元(120、125)、变换单元(130)、量化单元(135)、重排单元(160)、熵编码单元(165)、逆量化单元(140)、逆变换单元(145)、滤波器单元(150)和存储器(155)。

  图片划分单元(110)可以将输入图片划分成至少一个处理单元。在这种情况下,处理单元可以是预测单元(PU)、变换单元(TU)或编码单元(CU)。在下文中,在本发明的实施方式中,编码单元可以用作执行编码的单元的含义,或者可以用作执行解码的单元的含义。

  可以通过将一个编码单元划分成至少一个具有相同尺寸的正方形或非正方形形状来获得预测单元。可以划分一个编码单元,使得各个预测单元的一个预测单元具有与另一预测单元不同的形状和/或尺寸。当基于编码单元执行帧内预测的预测单元不是最小编码单元时,可以在不将编码单元划分成多个NxN个预测单元的情况下执行帧内预测。

  预测单元(120、125)可以包括执行帧间预测的帧间预测单元(120)和执行帧内预测的帧内预测单元(125)。可以确定对于预测单元使用帧间预测还是帧内预测,并且可以确定根据每个预测方法的特定信息(例如,帧内预测模式、运动矢量、参考图片等)。生成的预测块与原始块之间的残差值(残差块)可以被输入至变换单元(130)。另外,用于预测的预测模式信息、运动矢量信息等可以与残差值一起被熵编码单元(165)编码,并且被发送至解码器。然而,当应用根据本发明的解码器侧的运动信息得出方法时,由于在编码器中不生成预测模式信息、运动矢量信息等,因此不将相应的信息发送至解码器。另一方面,可以从编码器用信号通知指示运动信息在解码器侧被得出并使用的信息以及关于用于得出运动信息的方法的信息。

  帧间预测单元(120)可以基于当前图片的之前图片或后续图片中至少一个的信息来预测预测单元,并且在一些情况下,可以基于当前图片中已完成编码的一些区域的信息来预测预测单元。帧间预测单元(120)可以包括参考图片内插单元、运动预测单元以及运动补偿单元。

  参考图片内插单元可以从存储器(155)接收参考图片信息,并且生成参考图片中的整数像素或者小于整数像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器系数的基于DCT的8抽头内插滤波器(基于DCT的内插滤波器)以1/4像素为单位生成整数像素或者更小的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于DCT的4抽头内插滤波器(基于DCT的内插滤波器)以1/8像素为单位生成整数像素或者更小的像素信息。

  运动预测单元可以基于通过参考图片内插单元内插的参考图片执行运动预测。作为用于计算运动矢量的方法,可以使用各种方法,例如基于全搜索的块匹配算法(FBMA)、三步搜索(TSS)和新三步搜索算法(NTS)。运动矢量可以具有基于内插像素的以1/2像素或1/4像素为单位的运动矢量值。运动预测单元可以通过不同地使用运动预测方法来预测当前预测单元。可以使用诸如跳过方法、合并方法、AMVP(高级运动矢量预测)方法和帧内块复制方法的各种方法作为运动预测方法。另外,当应用根据本发明的解码器侧的运动信息得出方法时,可以应用使用运动轨迹的模板匹配方法和双向匹配(双边匹配)方法作为由运动预测单元执行的方法。关于这一点,后面将在图3中详细描述模板匹配方法和双向匹配方法。

  帧内预测单元(125)可以基于当前块周围的参考像素信息来生成预测单元,所述参考像素信息是当前图片中的像素信息。在当前预测单元的相邻块是执行帧间预测的块并且参考像素是执行帧间预测的像素时,可以通过用执行帧间预测的块周围的执行帧内预测的块的参考像素信息替换执行帧间预测的块来使用执行帧间预测的块中包括的参考像素。即,当参考像素不可用时,可以通过用可用参考像素中的至少一个参考像素替换不可用参考像素来使用不可用参考像素信息。

  另外,可以生成包括残差信息的残差块,残差信息是基于由预测单元(120、125)生成的预测单元执行预测的预测单元与该预测单元的原始块之间的差值。所生成的残差块可以被输入至变换单元(130)。

  变换单元(130)可以通过使用诸如DCT(离散余弦变换)、DST(离散正弦变换)和KLT的变换方法对残差块进行变换,该残差块包括有由预测单元(120、125)生成的预测单元与原始块之间的残差信息。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用DCT、DST还是KLT以对残差块进行变换。

  量化单元(135)可以量化由变换单元(130)变换到频域的值。量化系数可以根据图像的块或重要性而变化。由量化单元(135)计算的值可以被提供给逆量化单元(140)和重排单元(160)。

  重排单元(160)可以对经量化的残差值的系数值执行重排。

  重排单元(160)可以通过系数扫描方法将二维块形式的系数改变成一维矢量形式。例如,根据Z字形扫描方法,重排单元(160)可以通过从DC系数到高频区域中的系数进行扫描来改变成一维矢量形式。根据变换单元的尺寸和帧内预测模式,可以使用在列方向上对二维块形式的扫描系数的垂直扫描以及在行方向上对二维块形式的扫描系数的水平扫描来代替Z字形扫描。即,根据变换单元的尺寸和帧内预测模式,可以确定使用Z字形扫描、垂直扫描和水平扫描中的哪一个。

  熵编码单元(165)可以基于由重排单元(160)计算的值来执行熵编码。可以使用各种编码方法,例如指数哥伦布、CAVLC(上下文自适应可变长度编码)和CABAC(上下文自适应二进制算术编码),来用于进行熵编码。关于这一点,熵编码单元(165)可以对来自重排单元(160)以及预测单元(120、125)的编码单元的残差值系数信息进行编码。另外,根据本发明,可以从编码器用信号通知指示运动信息在解码器侧得出并使用的信息以及关于用于得出运动信息的方法的信息。

  逆量化单元(140)和逆变换单元(145)对由量化单元(135)量化的值进行逆量化并且对由变换单元(130)变换的值进行逆变换。可以通过将由逆量化单元(140)和逆变换单元(145)生成的残差值与通过包括在预测单元(120、125)中的运动估计单元、运动补偿单元和帧内预测单元预测的预测单元进行组合来生成重建块。

  滤波器单元(150)可以包括去块滤波器、偏移校正单元和自适应环路滤波器(ALF)中的至少一个。去块滤波器可以去除由重建的图片中的块之间的边界引起的块失真。偏移校正单元可以针对去块滤波的图像以像素为单位校正相对于原始图像的偏移。为了对特定图片执行偏移校正,在将图像中包括的像素分类为一定数目的区域并且确定要应用偏移的区域之后,可以使用将偏移应用于区域偏移的方法或者通过考虑每个像素的边缘信息来应用偏移的方法。可以基于通过将经滤波的重建图像与原始图像进行比较而获得的值来执行ALF(自适应环路滤波)。在将图像中包括的像素分类为预定组之后,可以确定要应用于该组的一个滤波器以针对每个组不同地执行滤波。

  存储器(155)可以存储从滤波器单元150输出的重建块或重建图片,并且当执行帧间预测时,可以将所存储的重建块或重建图片提供给预测单元(120、125)。

  图2是示出根据本发明的图像解码装置的框图。

  参照图2,图像解码器(200)可以包括:熵解码单元(210)、重排单元(215)、逆量化单元(220)、逆变换单元(225)、预测单元(230、235)以及滤波器单元(240)、存储器(245)。

  当从图像编码器输入图像比特流时,可以以与图像编码器的过程相反的过程对输入的比特流进行解码。

  熵解码单元(210)可以以与在图像编码器的熵编码单元中通过熵编码执行的过程相反的过程执行熵解码。例如,可以应用与在图像编码器中执行的方法对应的各种方法,例如指数哥伦布、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)。

  熵解码单元(210)可以对与由编码器执行的帧内预测和帧间预测有关的信息进行解码。

  重排单元(215)可以基于编码单元的重排方法来执行对由熵解码单元(210)熵解码的比特流的重排。可以将一维矢量形式的系数再次重排为二维块形式的系数。

  逆量化单元(220)可以基于由编码器提供的量化参数和重排的块的系数来执行逆量化。

  逆变换单元(225)可以针对图像编码器执行的量化结果执行与由变换单元执行的变换(即DCT、DST和KLT)相对应的逆变换,即逆DCT、逆DST和逆KLT。可以基于由图像编码器确定的传输单元来执行逆变换。在图像解码器的逆变换单元(225)中,可以根据多个信息例如预测方法、当前块的尺寸和预测方向来选择性地执行变换方法(例如,DCT、DST、KLT)。

  预测单元(230、235)可以基于由熵解码单元(210)提供的关于预测块生成的信息以及由存储器(245)提供的先前已解码的块或图片信息来生成预测块。

  如上所述,当在以与图像编码器中相同的方式执行帧内预测时如果预测单元的尺寸与变换单元的尺寸相同,可以基于位于预测单元的左、左上和上侧的像素执行预测单元的帧内预测。然而,当在执行帧内预测时如果预测单元的尺寸与变换单元的尺寸不同,则可以使用基于变换单元的参考像素来执行帧内预测。另外,使用N×N划分的帧内预测可以仅用于最小解码单元。

  预测单元(230、235)可以包括预测单元确定单元、帧间预测单元和帧内预测单元。预测单元确定单元可以接收来自熵解码单元(210)的各种信息,例如预测单元信息、帧内预测方法的预测模式信息以及帧间预测方法的运动预测相关信息,根据当前编码单元对预测单元进行分类,并且确定预测单元执行帧间预测还是帧内预测。另一方面,如果不从编码器(100)发送用于帧间预测的运动预测相关信息,而是发送指示运动信息在解码器侧得出并使用的信息以及关于用于得出运动信息的方法的信息,则预测单元确定单元基于从编码器(100)发送的信息来确定帧间预测单元(23)的预测性能。

  帧间预测单元(230)可以通过使用由图像编码器提供的当前预测单元的帧间预测所需的信息,基于包括当前预测单元的当前图片的之前图片或后续图片的至少一个中包括的信息,对当前预测单元执行帧间预测。为了执行帧间预测,可以在跳过模式、合并模式、AMVP模式和帧内块复制模式中确定编码单元中包括的预测单元的运动预测方法。替选地,帧间预测单元(230)可以通过从由图像编码器提供的以下信息得出运动信息来执行帧间预测:指示运动信息在解码器侧得出并使用的信息以及关于用于得出运动信息的方法的信息。

  帧内预测单元(235)可以基于当前图片中的像素信息来生成预测块。在预测单元是已经执行帧内预测的预测单元时,可以基于由图像编码器提供的预测单元的帧内预测模式信息来执行帧内预测。帧内预测单元(235)可以包括自适应帧内平滑(AIS)滤波器、参考像素内插单元和DC滤波器。AIS滤波器是对当前块的参考像素执行滤波的部分,并且可以通过根据当前预测单元的预测模式确定是否应用滤波器而应用。可以通过使用由图像编码器提供的预测单元的预测模式和AIS滤波器信息来对当前块的参考像素执行AIS滤波。在当前块的预测模式是不执行AIS滤波的模式时,可以不应用AIS滤波器。

  当预测单元的预测模式是基于通过对参考像素进行内插而获得的像素值来执行帧内预测的预测单元时,参考像素内插单元可以对参考像素进行内插,以生成具有整数像素或小于整数像素的参考像素。在当前预测单元的预测模式是在不对参考像素进行内插的情况下生成预测块的预测模式时,可以不对参考像素进行内插。在当前块的预测模式是DC模式时,DC滤波器可以通过滤波生成预测块。

  重建块或重建图片可以被提供至滤波器单元(240)。滤波器单元(240)可以包括去块滤波器、偏移校正单元和ALF。

  可以从视频编码器提供关于是否对相应的块或图片应用去块滤波器的信息以及关于在应用去块滤波器时应用强滤波器还是应用弱滤波器的信息。在视频解码器的去块滤波器中,可以提供与由视频编码器提供的去块滤波器有关的信息,并且视频解码器可以对相应的块执行去块滤波。

  偏移校正单元可以基于在编码期间应用于图像的偏移校正的类型和偏移值信息对重建图像执行偏移校正。可以基于由编码器提供的关于是否应用ALF的信息、ALF系数信息等,对编码单元应用ALF。可以从特定参数集提供该ALF信息。

  存储器(245)可以存储重建的图片或块,使得重建的图片或块可以用作参考图片或参考块,并且还可以将重建的图片提供给输出单元。

  图3示出了作为应用本发明的实施方式的基于仿射模型来执行帧间预测的概念。

  一般的基于块的预测方法支持使用以块为单位的代表性运动矢量基于平移运动的运动预测。在本发明中,使用仿射模型的预测方法用于处理各种复杂的运动模型,例如难以用一般的基于块的预测方法来处理的旋转和缩放。

  基于仿射模型的预测是通过生成与当前块的像素和参考图片的像素之间的点对应的运动矢量来以任意形状进行预测的方法。然而,基于仿射模型的预测不限于以像素为单位进行预测,并且可以通过将当前块分成多个子块来以子块为单位执行预测。

  在上述一般的基于块的预测方法的情况下,当前块可以使用一个运动矢量执行逐块运动预测。在这种情况下,每个预测方向可能存在一个运动矢量,并且当前块可以表示通过将一个编码单元(CU)划分成多个而生成的子块以及一个编码单元。

  在使用参考图片(310)中的参考块(311)、表示当前块的多个控制点(控制点)来执行对当前图片(300)中的当前块(301)的预测时,基于仿射模型的预测可以使用与每个控制点对应的控制点矢量(320、321)以任意形式执行运动预测。在基于仿射模型的预测中,可以使用多个控制点矢量以当前块(301)的像素为单位计算运动矢量,或者可以以构成当前块的子块为单位计算运动矢量。在下文中,将参照图4至图9详细描述基于仿射模型的帧间预测方法。

  图4示出了作为应用本发明的实施方式的基于仿射模型的帧间预测方法。

  参照图4,可以生成用于预测当前块的运动信息的候选列表(S400)。

  候选列表可以包括一个或更多个基于仿射模型的候选(在下文中,称为仿射候选)。仿射候选可以表示具有控制点矢量的候选。控制点矢量表示用于仿射模型的控制点的运动矢量,并且可以针对块的角位置(例如,左上角、右上角、左下角或右下角中的至少一个)而定义。

  仿射候选可以包括空间候选、时间候选或构造候选中的至少一个。此处,空间候选可以从与当前块空间相邻的相邻块的矢量得出,并且时间候选可以从与当前块时间相邻的相邻块的矢量得出。此处,相邻块可以表示利用仿射模型编码的块。矢量可以表示运动矢量或控制点矢量。

  将参照图5详细描述基于空间/时间相邻块的矢量得出空间/时间候选的方法。

  同时,可以基于当前块的空间/时间相邻块的运动矢量之间的组合来得出构造候选,这将参照图6进行详细描述。

  可以基于预定优先级在候选列表中布置上述多个仿射候选。例如,可以以空间候选、时间候选和构造候选的顺序在候选列表中布置多个仿射候选。替选地,可以以时间候选、空间候选和构造候选的顺序在候选列表中布置多个仿射候选。然而,本发明不限于此,并且时间候选也可以布置在构造候选之后。替选地,构造候选中的一些构造候选可以布置在空间候选之前,而其余的构造候选可以布置在空间候选之后。

  候选列表还可以包括基于子块的时间候选。可以得出时间候选的运动信息,作为与当前块对应的并置块,这将参照图7进行详细描述。

  可以基于候选列表和候选索引得出当前块的控制点矢量(S410)。

  候选索引可以表示被编码以得出当前块的控制点矢量的索引。候选索引可以指定包括在候选列表中的多个仿射候选的任何一个仿射候选。可以使用由候选索引指定的仿射候选的控制点矢量来得出当前块的控制点矢量。

  例如,假设当前块的仿射模型的类型是4参数的(即,当确定当前块使用两个控制点矢量时)。在这种情况下,当由候选索引指定的仿射候选具有三个控制点矢量时,从三个控制点矢量中仅选择两个控制点矢量(例如,Idx=0,1的控制点矢量),并且可以将其设置为当前块的控制点矢量。替选地,可以将指定的仿射候选的三个控制点矢量设置为当前块的控制点矢量。在这种情况下,可以将当前块的仿射模型的类型更新为6参数的。

  另一方面,假设当前块的仿射模型的类型是6参数的(即,当确定当前块使用三个控制点矢量时)。在这种情况下,当由候选索引指定的仿射候选具有两个控制点矢量时,可以生成一个附加控制点矢量,并且可以将仿射候选的两个控制点矢量和附加控制点矢量设置为当前块的控制点矢量。可以基于仿射候选的两个控制点矢量、当前/相邻块的尺寸或当前/相邻块的位置信息中的至少一个来得出附加控制点矢量。

  替选地,可以将指定的仿射候选的两个控制点矢量设置为当前块的控制点矢量。在这种情况下,可以将当前块的仿射模型的类型更新为4参数的。

  可以基于当前块的控制点矢量来得出当前块的运动矢量(S420)。

  可以以当前块的子块为单位得出运动矢量。为此,当前块可以被划分成多个N×M子块。此处,N×M子块可以是矩形(N>M或N<M)或正方形(N=M)的形式。N和M的值可以是4、8、16、32或更大。将参照图8详细描述以子块为单位得出运动矢量的方法。

  运动矢量得出过程还可以包括将预定偏移应用于基于控制点矢量得出的运动矢量的过程。偏移可以表示用于改善预得出的运动矢量的矢量。可以基于关于偏移的绝对值或方向中的至少一个的信息来确定该偏移。绝对值可以是1、2、3或更大的整数。方向可以包括左、右、上和下中的至少一个。可以通过编码装置对关于偏移的绝对值和/或方向的信息进行编码并且用信号通知。替选地,偏移的绝对值可以是解码装置中的预定固定值。

  可以使用得出的运动矢量对当前块执行帧间预测(S430)。

  具体地,可以使用当前块的运动矢量来指定参考块。可以为当前块的每个子块指定参考块。每个子块的参考块可以属于一个参考图片。即,属于当前块的子块可以共享一个参考图片。替选地,可以针对当前块的每个子块独立地设置参考图片索引。

  可以通过将预定的内插滤波器应用于参考图片来指定参考块。编码/解码装置可以定义n个内插滤波器。此处,n可以是1、2、3或更大的整数。n个内插滤波器中的至少一个可以具有与其他滤波器不同的滤波器属性。滤波器属性可以包括滤波器抽头尺寸或滤波器系数中的至少一个。

  例如,第一内插滤波器的抽头的数目可以是p,并且第二内插滤波器的抽头的数目可以是q。此处,p可以是小于q的自然数。p可以是小于7的自然数(例如6、5、4),并且q可以是大于7的自然数(例如8、9、10)。

  下面的表1是p=6的6抽头内插滤波器的滤波器系数的示例。

  [表1]

  

  

  考虑到块尺寸或预测模式中的至少一个,可以选择性地使用上述多个内插滤波器中的任何一个内插滤波器。此处,块可以表示当前块或当前块的子块。预测模式可以表示跳过模式、合并模式、AMVP模式、基于仿射模型的预测模式、当前图片参考模式等。当前图片参考模式可以表示通过参考当前块所属的当前图片中的预重建区域来预测当前块的模式。

  例如,在当前块(或当前块的子块)的尺寸小于或等于预定阈值尺寸时,可以使用第一内插滤波器,否则,可以使用第二内插滤波器。阈值尺寸可以被定义为其中宽度和高度中的至少一个是4、8或16的块尺寸。

  替选地,当以第一预测模式对当前块进行编码时,可以应用第一内插滤波器,否则,可以应用第二内插滤波器。此处,第一预测模式可以表示上述预测模式中的任何一个预测模式。例如,第一预测模式可以表示基于仿射模型的预测模式或当前图片参考模式。

  同时,得出的运动矢量可以包括L0运动矢量或L1运动矢量中的至少一个。当运动矢量包括L0运动矢量和L1运动矢量时,解码装置可以通过将L0运动矢量和L1运动矢量中的任何一个设置为0来执行单向预测。

  可以考虑块尺寸或预测模式中的至少一个来选择性地执行设置。此处,块可以表示当前块或当前块的子块。预测模式可以表示跳过模式、合并模式、AMVP模式、基于仿射模型的预测模式、当前图片参考模式等。

  例如,如果当前块(或当前块的子块)的尺寸小于或等于预定阈值尺寸,则可以通过将L1运动矢量设置为0来执行单向预测,否则,可以使用L0运动矢量和L1运动矢量来执行双向预测。此处,阈值尺寸可以被定义为其中宽度和高度中的至少一个是4、8或16的块尺寸。

  替选地,当以第一预测模式对当前块进行编码时,可以通过将L1运动矢量设置为0来执行单向预测,否则,可以使用L0运动矢量和L1运动矢量来执行双向预测。

  可以将指定的参考块设置为当前块的预测块。可以通过将残差块加到预测块来重建当前块。可以将环路滤波器应用于重建的当前块,这将参照图8进行描述。

  可以以相同/类似的方式将上述实施方式不仅应用于合并模式,而且还应用于其他帧间模式(例如,AMVP模式等)。然而,即使当以合并模式或其他帧间图片模式对当前块进行编码时,也可以选择性地执行基于仿射模型的预测,这将参照图9进行描述。

  图5示出了作为应用本发明的实施方式的从空间/时间相邻块的控制点矢量得出仿射候选的方法。

  当前块(500)的宽度和高度分别为cbW和cbH,并且当前块的位置为(xCb,yCb)。空间相邻块(510-550)的宽度和高度分别为nbW和nbH,并且空间相邻块的位置为(xNb,yNb)。空间相邻块可以包括当前块的左块(510)、左下块(540)、右上块(430)、上块(420)或左上块(450)中的至少一个。替选地,空间相邻块还可以包括与左上块(450)的右侧相邻的块或与下侧相邻的块中的至少一个。

  空间候选可以具有n个控制点矢量(cpMV)。此处,n值可以是1、2、3或更大的整数。可以基于关于是否以子块为单位进行解码的信息、关于是否利用仿射模型对块进行编码的信息或关于仿射模型的类型(4参数或6参数)的信息中的至少一个来确定n值。

  例如,根据该信息,当以子块为单位对块进行解码或者通过仿射模型对块进行编码时,块可以具有两个控制点矢量。另一方面,如果不是如此,块可以不执行基于仿射模型的预测。

  替选地,根据该信息,当该块是用仿射模型进行编码的块且仿射模型的类型是6参数时,该块可以具有三个控制点矢量。另一方面,如果不是如此,块可以不执行基于仿射模型的预测。

  上述信息可以通过编码设备进行编码并且用信号通知。替选地,可以基于块的属性从解码设备得出信息的全部或部分。此处,块可以表示当前块或当前块的空间/时间相邻块。属性可以表示尺寸、形状、位置、分区类型、帧间模式、与残差系数相关的参数等。帧间模式可以是在解码装置中预定义的模式,并且可以表示合并模式、跳过模式、AMVP模式、仿射模型、帧内/帧间组合模式、当前图片参考模式等。替选地,可以基于上述块属性从解码设备得出n的值。

  在本实施方式中,n个控制点矢量可以表示为第一控制点矢量(cpMV[0])、第二控制点矢量(cpMV[1])、第三控制点矢量(cpMV[2])......第n控制点矢量(cpMV[n-1])。

  例如,第一控制点矢量(cpMV[0])、第二控制点矢量(cpMV[1])、第三控制点矢量(cpMV[2])和第四控制点矢量(cpMV[3])可以分别是与左上样本、右上样本、左下样本和右下样本的位置对应的矢量。此处,假设空间候选可以具有三个控制点矢量,并且这三个控制点矢量可以是从第一控制点矢量至第n控制点矢量中选择的任意控制点矢量。然而,本发明不限于此,并且空间候选可以具有两个控制点矢量,并且这两个控制点矢量可以是从第一控制点矢量至第n控制点矢量中选择的任意控制点矢量。

  在下文中,将描述得出空间候选的控制点矢量的方法。

  1.在当前块的边界不位于CTU边界上时

  可以基于空间相邻块的第一控制点矢量、预定差值、当前块的位置信息(xCb,yCb)或关于空间相邻块的位置信息(xNb,yNb)中的至少一个来得出第一控制点矢量。

  差值的数目可以是1、2、3或更多。可以考虑块的上述属性来可变地确定差值的数目,或者差值的数目可以是预先赋予解码装置的固定值。该差值可以被定义为多个控制点矢量中的一个控制点矢量与另一控制点矢量之间的差值。例如,差值可以包括以下差值中的至少一个:第二控制点矢量与第一控制点矢量之间的第一差值、第三控制点矢量与第一控制点矢量之间的第二差值、第四控制点矢量与第三控制点矢量之间的第三差值、或第四控制点矢量与第二控制点矢量之间的第四差值。

  例如,可以根据下面的等式1得出第一控制点矢量。

  [等式1]

  cpMvLX[0][0]=(mvScaleHor+dHorX*(xCb-xNb)+dHorY*(yCb-yNb))

  cpMvLX[0][1]=(mvScaleVer+dVerX*(xCb-xNb)+dVerY*(yCb-yNb))

  在等式1中,变量mvScaleHor和变量mvScaleVer可以表示空间相邻块的第一控制点矢量,或者是通过对第一控制点矢量应用k的移位运算而得出的值。此处,k可以是1、2、3、4、5、6、7、8、9或更大的整数。变量dHorX和变量dVerX分别对应于第二控制点矢量与第一控制点矢量之间的第一差值的x分量和y分量。变量dHorY和变量dVerY分别对应于第三控制点矢量与第一控制点矢量之间的第二差值的x分量和y分量。可以根据下面的等式2得出上述变量。

  [等式2]

  mvScaleHor=CpMvLX[xNb][yNb][O][O]<<7

  mvSealeVer=CpMvLX[xNb][yNb][o][1]<<7

  dHorX=(CpMvLX[xNb+nNbW-1][yNb][1][0]-CpMvLX[xNb][yNb][0][0])<<(7-log2NbW)

  dVerX=(CpMvLX[xNb+nNbW-1][yNb][1][1]-CpMvLX[xNb][yNb][0][1])<<(7-log2NbW)

  dHorY=(CpMvLX[xNb][yNb+nNbH-1][2][0]-CpMvLX[xNb][yNb][2][0])<<(7-log2NbH)

  dVerY=(CpMvLX[xNb][yNb+nNbH-1][2][1]-CpMvLX[xNb][yNb][2][1])<<(7-log2NbH)

  可以基于空间相邻块的第一控制点矢量、预定差值、当前块的位置信息(xCb,yCb)、块尺寸(宽度或高度)、或空间相邻块的位置信息(xNb,yNb)中的至少一个来得出第二控制点矢量。此处,块尺寸可以表示当前块和/或空间相邻块的尺寸。差值如第一控制点矢量中所述,并且将省略对其的详细描述。然而,在得出第二控制点矢量的过程中使用的差值的范围和/或数目可以与得出第一控制点矢量的过程中使用的差值的范围和/或数目不同。

  例如,可以根据下面的等式3得出第二控制点矢量。

  [等式3]

  cpMvLX[1][0]=(mvScaleHor+dHorX*(xCb+cbWidth-xNb)+dHorY*(yCb-yNb))

  cpMvLX[1][1]=(mvScaleVer+dVerX*(xCb+cbWidth-xNb)+dVerY*(yCb-yNb))

  在等式3中,变量mvScaleHor、mvScaleVer、dHorX、dVerX、dHorY和dVerY如等式1中所述,并且将省略对其的详细描述。

  可以基于空间相邻块的第一控制点矢量、预定差值、当前块的位置信息(xCb,yCb)、块尺寸(宽度或高度)、或空间相邻块的位置信息(xNb,yNb)中的至少一个来得出第三控制点矢量。此处,块尺寸可以表示当前块和/或空间相邻块的尺寸。差值如第一控制点矢量中所述,并且将省略对其的详细描述。然而,在得出第三控制点矢量的过程中使用的差值的范围和/或数目可以与得出第一控制点矢量或第二控制点矢量的过程中使用的差值的范围和/或数目不同。

  例如,可以根据下面的等式4中得出第三控制点矢量。

  [等式4]

  cpMvLX[2][0]=(mvScaleHor+dHorX*(xCb-xNb)+dHorY*(yCb+cbHeight-yNb))

  cpMvLX[2][1]=(mvScaleVer+dVerX*(xCb-xNb)+dVerY*(yCb+cbHeight-yNb))

  在等式4中,变量mvScaleHor、mvScaleVer、dHorX、dVerX、dHorY和dVerY如等式1中所述,并且将省略对其的详细描述。同时,通过上述过程,可以得出空间候选的第n控制点矢量。

  2.在当前块的边界位于CTU边界上时

  可以基于空间相邻块的运动矢量(MV)、预定差值、当前块的位置信息(xCb,yCb)或空间相邻块的位置信息(xNb,yNb)中的至少一个来得出第一控制点矢量。

  运动矢量可以是位于空间相邻块的下侧的子块的运动矢量。子块可以位于处于空间相邻块的下侧的多个子块中的最左侧、中心或最右侧。替选地,运动矢量可以表示子块的各个运动矢量的平均值、最大值或最小值。

  差值的数目可以是1、2、3或更多。可以考虑块的上述属性来可变地确定差值的数目,或者差值的数目可以是预先赋予解码装置的固定值。差值可以被定义为以空间相邻块中的子块为单位存储的多个运动矢量中的一个运动矢量与另一运动矢量之间的差值。例如,差值可以表示空间相邻块的右下子块的运动矢量与左下子块的运动矢量之间的差值。

  例如,可以根据下面的等式5中得出第一控制点矢量。

  [等式5]

  cpMvLX[0][0]=(mvScaleHor+dHorX*(xCb-xNb)+dHorY*(yCb-yNb))

  cpMvLX[0][1]=(mvScaleVer+dVerX*(xCb-xNb)+dVerY*(yCb-yNb))

  在等式5中,变量mvScaleHor和变量mvScaleVer可以表示上述空间相邻块的运动矢量(MV),或者是通过对运动矢量应用k的移位运算而得出的值。此处,k可以是1、2、3、4、5、6、7、8、9或更大的整数。

  变量dHorX和变量dVerX分别对应于预定差值的x分量和y分量。此处,差值表示空间相邻块中的右下子块的运动矢量与左下子块的运动矢量之间的差值。可以基于变量dHorX和变量dVerX得出变量dHorY和变量dVerY。可以根据下面的等式6得出上述变量。

  [等式6]

  mvScaleHor=MvLX[xNb][yNb+nNbH-1][o]<<7

  mvScaleVer=MvLX[xNb][yNb+nNbH-1][1]<<7

  dHorX=(MvLX[xNb+nNbW-1][yNb+nNbH-1][0]-MvLX[xNb][yNb+nNbH-1][0])<<(7-log2NbW)

  dVerX=(MvLX[xNb+nNbW-1][yNb+nNbH-1][1]-MvLX[xNb][yNb+nNbH-1][1])<<(7-log2NbW)

  dHorY=-dVerX

  dVerY=dHorX

  可以基于空间相邻块的运动矢量(MV)、预定差值、当前块的位置信息(xCb,yCb)、块尺寸(宽度或高度)、或空间相邻块的位置信息(xNb,yNb)中的至少一个来得出第二控制点矢量。此处,块尺寸可以表示当前块和/或空间相邻块的尺寸。运动矢量和差值如在第一控制点矢量中所述,并且将省略对其的详细描述。然而,在对第二控制点矢量的得出过程中使用的运动矢量的位置、差值的范围和/或数目可以与对第一控制点矢量的得出过程中使用的运动矢量的位置、差值的范围和/或数目不同。

  例如,可以根据下面的等式7得出第二控制点矢量。

  [等式7]

  cpMvLX[1][0]=(mvScaleHor+dHorX*(xCb+cbWidth-xNb)+dHorY*(yCb-yNb))

  cpMvLX[1][1]=(mvScaleVer+dVerX*(xCb+cbWidth-xNb)+dVerY*(yCb-yNb))

  在等式7中,变量mvScaleHor、mvScaleVer、dHorX、dVerX、dHorY和dVerY如等式5中所述,并且将省略对其的详细描述。

  可以基于空间相邻块的运动矢量(MV)、预定差值、当前块的位置信息(xCb,yCb)、块尺寸(宽度或高度)、或空间相邻块的位置信息(xNb,yNb)中的至少一个来得出第三控制点矢量。此处,块尺寸可以表示当前块和/或空间相邻块的尺寸。运动矢量和差值如在第一控制点矢量中所述,并且将省略对其的详细描述。然而,在对第三控制点矢量的得出过程中使用的运动矢量的位置、差值的范围和/或数目可以与对第一控制点矢量或第二控制点矢量的得出过程中使用的运动矢量的位置、差值的范围和/或数目不同。

  例如,可以根据下面的等式8得出第三控制点矢量。

  [等式8]

  cpMvLX[2][0]=(mvScalcHor+dHorX*(xCb-xNb)+dHorY*(yCb+cbHeight-yNb))

  cpMvLX[2][1]=(mvScaleVer+dVerX*(xCb-xNb)+dVerY*(yCb+cbHeight-yNb))

  在等式8中,变量mvScaleHor、mvScaleVer、dHorX、dVerX、dHorY和dVerY如等式5中所述,并且将省略对其的详细描述。同时,通过上述过程,可以得出空间候选的第n控制点矢量。

  可以针对每个预定义的空间相邻块执行上述得出仿射候选的过程。预定义空间相邻块可以包括当前块的左块、左下块、右上块、上块或左上块中的至少一个

  替选地,可以针对空间邻近块的每个组执行得出仿射候选的过程。此处,可以将空间相邻块分类成:包括左块和左下块的第一组,以及包括右上块、上块和左上块的第二组。

  例如,可以从属于第一组的空间相邻块得出一个仿射候选。可以执行得出过程直到基于预定优先级找到可用的仿射候选。优先级可以按左块→左下块的顺序,或者左下块→左块的顺序。根据优先级,确定第一组中的空间相邻块是否是通过基于仿射模型的预测进行解码的块,并且可以选择通过基于仿射模型的预测解码的第一块作为仿射候选。

  类似地,可以从属于第二组的空间相邻块得出一个仿射候选。可以执行得出过程直到基于预定优先级找到可用的仿射候选。优先级可以按右上块→上块→左上块的顺序,或者左上块→上块→右上块的顺序。根据优先级,确定第二组中的空间相邻块是否是通过基于仿射模型的预测进行解码的块,并且可以选择通过基于仿射模型的预测解码的第一块作为仿射候选。

  可以以相同/相似的方式将上述实施方式应用于时间相邻块。此处,时间相邻块可以是与当前块属于不同的图片但与当前块处于相同位置的块。并置块可以是包括当前块的左上样本的位置、中心位置或与当前块的右下样本相邻的样本的位置的块。

  替选地,时间相邻块可以表示与相同位置处的块偏移预定视差矢量的位置处的块。此处,可以基于当前块的上述空间相邻块中的任何一个空间相邻块的运动矢量来确定视差矢量。

  图6示出了作为应用本发明的实施方式的基于空间/时间相邻块的运动矢量的组合来得出构建候选的方法。

  可以基于与当前块的每个角对应的各个控制点矢量(在下文中称为控制点矢量(cpMVCorner[n]))中的至少两个控制点矢量的组合来得出本发明的构造候选。此处,n可以为0、1、2或3。

  可以基于空间和/或时间相邻块的运动矢量来得出控制点矢量(cpMVCorner[n])。此处,空间相邻块可以包括与当前块的左上样本相邻的第一相邻块(A、B或C)、与当前块的右上样本相邻的第二相邻块(D或E)或与当前块的左下样本相邻的第三相邻块(F或G)中的至少一个。时间相邻块是属于与当前块不同的图片的块,并且可以表示与当前块处于相同位置的块(在下文中,称为第四相邻块(Col))。此处,第四相邻块可以表示包括当前块的左上样本、右上样本或左下样本的位置的块(H、I或J),或者与当前块的右下样本的位置相邻的块。

  第一相邻块可以表示当前块的左上(A)、上(B)或左(C)处的相邻块。根据预定优先级确定相邻块A、B和C的运动矢量是否可用,并且可以使用可用相邻块的运动矢量来确定控制点矢量。可以执行可用性确定,直到找到具有可用的运动矢量的相邻块。此处,优先级可以是A→B→C的顺序,然而,本发明不限于此,并且优先级可以是A→C→B、C→A→B、B→A→C的顺序。

  第二相邻块可以表示在当前块的上(D)或右上(E)处的相邻块。同样,根据预定优先级确定相邻块D和相邻块E的运动矢量是否可用,并且可以使用可用相邻块的运动矢量来确定控制点矢量。可以执行可用性确定,直到找到具有可用的运动矢量的相邻块。此处,优先级可以是D→E的顺序,或者是E→D的顺序。

  第三相邻块可以表示当前块的左(F)或左下(G)处的相邻块。同样地,根据预定优先级确定相邻块的运动矢量是否可用,并且使用可用的相邻块的运动矢量确定控制点矢量。可以执行可用性确定,直到找到具有可用的运动矢量的相邻块。此处,优先级可以是G→F的顺序,或者是F→G的顺序。

  例如,第一控制点矢量(cpMVCorner[0])可以被设置为第一相邻块的运动矢量,并且第二控制点矢量(cpMVCorner[1])可以被设置为第二相邻块的运动矢量。另外,第三控制点矢量cpMVCorner[2]可以被设置为第三相邻块的运动矢量。第四控制点矢量cpMVCorner[3]可以被设置为第四相邻块的运动矢量。

  替选地,可以使用第一相邻块或第四相邻块的至少一个运动矢量来得出第一控制点矢量,其中第四相邻块可以是包括左上样本的位置的块H。可以使用第二相邻块或第四相邻块的至少一个运动矢量来得出第二控制点矢量。此处,第四相邻块可以是包括右上样本的位置的块I。可以使用第三相邻块或第四相邻块的至少一个运动矢量来得出第三控制点矢量。此处,第四相邻块可以是包括左下样本的位置的块J。

  替选地,第一控制点矢量至第四控制点矢量中的任何一个控制点矢量可以基于其他控制点矢量来得出。例如,可以通过将预定的偏移矢量应用于第一控制点矢量来得出第二控制点矢量。偏移矢量可以是第三控制点矢量与第一控制点矢量之间的差矢量,或者可以通过将预定的缩放因子应用于差矢量来得出偏移矢量。可以基于当前块和/或相邻块的宽度或高度中的至少一个来确定缩放因子。

  通过上述第一控制点矢量至第四控制点矢量中的至少两个控制点矢量的组合,可以确定根据本发明的K个构造候选ConstK。K值可以是1、2、3、4、5、6、7或更大的整数。K值可以基于由编码装置用信号通知的信息来得出,或者可以是预先赋予给解码装置的值。该信息可以包括指示包括在候选列表中的构造候选的最大数目的信息。

  具体地,可以通过组合第一控制点矢量至第三控制点矢量来得出第一构造候选Const1。例如,第一构造候选Const1可以具有如下面的表2所示的控制点矢量。同时,仅当第一相邻块的参考图片信息与第二相邻块和第三相邻块的参考图片信息相同时,可以如表2所示配置控制点矢量。此处,参考图片信息可以表示指示参考图片在参考图片列表中的位置的参考图片索引,或者指示输出顺序的图片顺序计数(POC)值。

  [表2]

  可以通过组合第一制点矢量、第二制点矢量和第四控制点矢量来得出第二构造候选Const2。例如,第二构造候选Const2可以具有如下面的表3所示的控制点矢量。同时,仅当第一相邻块的参考图片信息与第二相邻块和第四相邻块的参考图片信息相同时,可以如表3所示配置控制点矢量。此处,参考图片信息如上所述。

  [表3]

  

  

  可以通过组合第一制点矢量、第三制点矢量和第四控制点矢量来得出第三构造候选Const3。例如,第三构造候选Const3可以具有如下面的表4所示的控制点矢量。同时,仅当第一相邻块的参考图片信息与第三相邻块和第四相邻块的参考图片信息相同时,可以如表4所示配置控制点矢量。此处,参考图片信息如上所述。

  [表4]

  

  可以通过组合第二制点矢量、第三制点矢量和第四控制点矢量来得出第四构造候选Const4。例如,第四构造候选Const4可以具有如下面的表5所示的控制点矢量。同时,仅当第二相邻块的参考图片信息与第三相邻块和第四相邻块的参考图片信息相同时,可以限制如表5所示的配置。此处,参考图片信息如上所述。

  [表5]

  

  可以通过组合第一控制点矢量和第二控制点矢量来得出第五构造候选Const5。例如,第五构造候选Const5可以具有如下面的表6所示的控制点矢量。另一方面,仅当第一相邻块的参考图片信息与第二相邻块的参考图片信息相同时,可以如表6所示配置控制点矢量。此处,参考图片信息如上所述。

  [表6]

  可以通过组合第一控制点矢量和第三控制点矢量来得出第六构造候选Const6。例如,第六构造候选Const6可以具有如下面的表7所示的控制点矢量。同时,仅当第一相邻块的参考图片信息与第三相邻块的参考图片信息相同时,可以如表7所示配置控制点矢量。此处,参考图片信息如上所述。

  [表7]

  在表7中,cpMVCorner[1]可以是基于第一控制点矢量和第三控制点矢量得出的第二控制点矢量。可以基于第一控制点矢量、预定差值或当前/周围块的尺寸中的至少一个来得出第二控制点矢量。例如,可以根据下面的等式9得出第二控制点矢量。

  [等式9]

  cpMvComer[1][0]=(cpMvComer[0][0]<<7)+((cpMvCorner[2][1]-cpMvCorner[0][1])<<(7+Log2(cbHeight/cbWidth)))

  cpMvCorner[1][1]=(cpMvCorner[0][1]<<7)+((cpMvCorner[2][0]-cpMvCorner[0][0])<<(7+Log2(cbHeight/cbWidth)))

  在上述K个构造候选(ConstK)中,K值不限制布置在候选列表中的构造候选的位置或优先级。

  另外,第一构造候选至第六构造候选的全部可以被包括在候选列表中,或者第一构造候选至第六构造候选中的仅一些可以被包括在候选列表中。

  例如,当确定当前块使用三个控制点矢量时,可以仅使用通过第一制点矢量至第四控制点矢量中的三个控制点矢量的组合生成的构造候选。当确定当前块使用两个控制点矢量时,可以使用通过第一制点矢量至第四控制点矢量中的至少两个控制点矢量的组合生成的构造候选,或者仅通过第一制点矢量至第四控制点矢量中的两个组合生成的构造候选。

  替选地,考虑到候选列表中包括的仿射候选的最大数目,可以仅将构造候选的一部分包括在候选列表中。此处,可以基于由编码装置发信号通知的最大数目信息来确定最大数目,或者可以考虑当前块的上述属性来可变地确定最大数目。在这种情况下,构造候选(ConstK)的K值可以表示要被插入到候选列表中的优先级。

  同时,当属于构造候选的两个控制点矢量之间的差值小于预定阈值时,可以不将构造候选插入到候选列表中。可以将两个控制点矢量之间的差值划分为水平方向上的差值和垂直方向上的差值。此处,水平方向上的差值可以表示第一控制点矢量610与第二控制点矢量620之间的差值,并且垂直方向上的差值可以表示第一控制点矢量610与第三控制点矢量630之间的差值。阈值可以表示0或预先赋予给编码/解码装置的尺寸的矢量。

  图7示出了作为应用本发明的实施方式的得出基于子块的时间候选的运动信息的方法。

  可以从并置块的运动信息得出根据本发明的时间候选的运动信息。可以以子块为单位得出运动信息。

  此处,并置块可以是属于与当前块710不同的图片的块(即,并置图片),并且可以是与当前块处于相同位置的块740或从当前块的位置偏移时间矢量的块730。可以基于当前块的空间相邻块的运动矢量来确定时间矢量。空间相邻块可以表示与当前块的左、左下、上、右上或左上侧的至少一个相邻的块。可以仅使用在预先赋予给编码/解码装置的位置处的相邻块来确定时间矢量。例如,预先指定的位置可以是左侧711或上侧712,或者左侧711和上侧712。当在左侧存在多个相邻块时,可以使用多个相邻块中位于最低、最高或中心之一的块。当在上侧存在多个相邻块时,可以使用位于多个相邻块的最左、最右或中心之一的块。

  在得出基于子块的时间候选时,当前块和/或并置块可以被划分成多个子块。

  此处,子块可以具有在编码/解码装置中预先赋予的固定尺寸/形状。例如,子块由N×M块表示,并且N和M的值可以是4、8或更大的整数。子块可以是正方形(N=M)或矩形(N>M,N<M)。可以表示尺寸。替选地,编码装置可以对关于子块的尺寸/形状的信息进行编码并且用信号通知所述信息,并且解码装置可以基于用信号通知的信息确定子块的尺寸/形状。

  替选地,可以基于预定数目将当前块和/或并置块划分成多个子块。此处,该数目可以是预先赋予给编码/解码装置的固定数目,或者可以考虑块尺寸/形状而可变地确定该数目。替选地,可以基于由编码装置用信号通知的数目信息来确定该数目。

  在下文中,将描述以子块为单位得出时间候选的运动信息的方法。时间候选运动矢量可以被设置为针对并置块的每个子块存储的运动矢量。时间候选的参考图片索引可以被设置为在编码/解码装置中预定义的值(例如,0)。替选地,时间候选参考图片索引可以被设置为并置块的参考图片索引或子块中的左上子块的参考图片索引。替选地,与运动矢量一样,时间候选的参考图片索引可以被设置为针对每个子块存储的参考图片索引。

  然而,当在属于所述并置块的子块中存在不可用子块时,可以用并置块内的可用子块的运动矢量来替换不可用子块的运动矢量。此处,可用子块可以表示与不可用子块的左、右、上或下中的任何一侧相邻的块。替选地,可用子块可以是预先赋予给编码/解码装置的位置处的块。例如,预先赋予位置可以是并置块中的右下子块的位置或者包括并置块的中心位置的子块的位置。可以在仅当存在可用子块时,将上述基于子块的时间候选添加到候选列表。替选地,可以在仅当预先指定的位置的子块可用时,将上述基于子块的时间候选添加到候选列表。

  图8示出了作为应用本发明的实施方式的以子块为单位得出运动矢量的方法。

  如上所述,可以使用当前块的控制点矢量来得出当前块的运动矢量。在这种情况下,当前块被划分成多个子块,并且可以以子块为单位得出运动矢量。

  子块的尺寸/形状可以是在解码装置中预定义的固定尺寸/形状。例如,子块的尺寸/形状可以是诸如4×4、8×8、16×16等的正方形,或者诸如2×4、2×8、4×8、4×16等的矩形。替选地,子块可以被定义为其中宽度和高度的和为8、12、16或更大的块。替选地,子块可以被定义为其中宽度和高度的乘积是16、32、64或更大的整数的块。

  替选地,可以基于上述块的属性可变地得出子块的尺寸/形状。例如,如果当前块的尺寸大于或等于预定阈值尺寸,则可以以第一子块(例如,8×8、16×16)为单位划分当前块,否则,可以以第二子块(例如,4×4)为单位划分当前块。

  替选地,可以通过编码装置对关于子块的尺寸/形状的信息进行编码并且用信号通知该信息。该信息指示子块的尺寸或形状中的至少一个,可以在序列、图片、图块组、图块、CTU中的至少一个层级处用信号通知该信息。

  替选地,可以通过使用当前块的控制点矢量按照下面的等式10计算子块的尺寸/形状。

  [等式10]

  

  如图8所示,表示当前块(800)的控制点可以包括左上位置(811)和右上位置(821)。然而,本发明不限于此,并且控制点可以包括左上位置(811)、右上位置(821)和左下位置(831)这三个点,或者还可以包括多个附加点。

  当使用两个控制点(811、812)时,可以使用当前块的位置(x,y)或尺寸(w或h)中的至少一个来得出与第一控制点(811)对应的第一控制点矢量(810)、与第二控制点(821)对应的第二控制点矢量(820)以及当前块的每个子块的子块运动矢量。例如,可以按照下面的等式11得出每个子块的运动矢量。

  [等式11]

  

  当使用三个控制点时,可以使用与第一控制点(811)对应的第一控制点矢量(810)、与第二控制点(821)对应的第二控制点矢量(820)、与第三控制点矢量(830)对应的第三控制点(831)、子块的位置(x,y)、或当前块的尺寸(w或h)中的至少一个来得出当前块的每个子块的运动矢量。在这种情况下,可以使用第二控制点矢量与第一控制点矢量之间的差矢量,并且可以使用第三控制点矢量与第一控制点矢量之间的差矢量。可以针对水平方向(x轴方向)和垂直方向(y轴方向)中的每一个计算差矢量。

  图9示出了作为应用本发明的实施方式的根据用于执行基于仿射模型的预测的单元的滤波方法。

  可以考虑用于执行基于仿射模型的预测的单元来确定滤波方法。用于基于仿射模型执行预测的单元可以是当前块的像素、由多个像素组成的子块或当前块。此处,滤波器可以包括交叠块运动补偿(OBMC)、去块滤波器、样本自适应偏移(SAO)、自适应环路滤波器(ALF)等。

  例如,当在逐个像素的基础上执行基于仿射模型的预测时,滤波器中的至少一个可以不在像素边界处执行。替选地,当以子块为单位执行基于仿射模型的预测时,可以在子块的边界(900)处执行滤波器中的至少一个。

  当基于子块执行基于仿射模型的预测时,可以与应用于当前块的边界的滤波器属性不同地确定应用于子块的边界的滤波器属性。此处,滤波器属性可以包括边界强度(BS)值、滤波器系数、滤波器抽头的数目和滤波器强度中的至少一个。

  例如,用于子块的边界的BS值可以小于或等于用于当前块的边界的BS值。替选地,用于子块的边界的滤波器抽头的数目(p)可以小于或等于用于当前块的边界的滤波器抽头的数目(q)。此处,p和q可以是1、2、3或更大。替选地,用于子块的边界的滤波器强度可以小于用于当前块的边界的滤波器强度。然而,这仅是示例。即,用于子块的边界的BS值可以大于用于当前块的边界的BS值。替选地,用于子块的边界的滤波器抽头的数目p可以大于用于当前块的边界的滤波器抽头的数目q。此处,p和q可以是1、2、3或更大。替选地,用于子块的边界的滤波器强度可以大于用于当前块的边界的滤波器强度。

  图10示出了作为应用本发明的实施方式的选择性地使用基于仿射模型的预测的方法。

  参照图10,可以确定当前块是否是以跳过模式或合并模式进行编码的块(S1000)。

  在当前块是以跳过模式或合并模式进行编码的块时,可以确定是否通过基于仿射模型的预测(条件A-1)对当前块的相邻块中的至少一个块进行编码(S1010)。

  此处,当前块的相邻块可以限于空间相邻的相邻块,或者可以包括所有空间/时间相邻的相邻块。空间/时间相邻块如上所述,并且将省略对其的详细描述。

  另外,可以确定当前块的尺寸是否等于或大于预定的第一阈值尺寸(条件A-2)(S1010)。

  第一阈值尺寸可以是预定义的块尺寸。例如,阈值尺寸可以被定义为其中块的宽度和高度的乘积为64的块尺寸、宽度和高度的和为16的块尺寸、以及宽度和高度中的至少一个为8的块尺寸等。替选地,编码装置可以对关于第一阈值尺寸的信息进行编码并且用信号通知该信息,并且解码装置可以基于用信号通知的信息来确定第一阈值尺寸。可以在视频序列、图片、图块组、图块或块的至少一个层级处用信号通知该信息。

  当满足上述条件A-1或条件A-2中的至少一个时,可以确定是否对当前块执行基于仿射模型的预测(S1030)。在这种情况下,可以以标志的形式用信号通知是否执行基于仿射模型的预测。在当前块处于跳过模式或合并模式并且执行基于仿射模型的预测时,可以不用信号通知除用于基于仿射模型进行预测的信息之外的附加运动信息。

  用于基于仿射模型进行预测的信息可以包括候选索引,并且候选索引可以指定属于如上述的候选列表的多个候选中的任何一个候选。候选索引可以用于从候选列表确定当前块的运动预测器。

  在当前块不是以跳过模式或合并模式进行编码的块时,可以确定当前块的尺寸是否等于或大于预定的第二阈值(条件B)(S1020)。

  第二阈值尺寸可以是预定义的块尺寸。例如,阈值尺寸可以被定义为其中块的宽度和高度的乘积为64的块尺寸、宽度和高度的和为16的块尺寸、以及宽度和高度中的至少一个为8的块尺寸等。替选地,编码装置可以对关于第二阈值尺寸的信息进行编码并且用信号通知该信息,并且解码装置可以基于用信号通知的信息来确定第二阈值尺寸。可以在视频序列、图片、图块组、图块或块的至少一个层级处用信号通知该信息。然而,可以与上述第一阈值尺寸不同地设置第二阈值尺寸。例如,第二阈值尺寸可以小于第一阈值尺寸。替选地,第二阈值尺寸可以大于第一阈值尺寸。

  当满足条件B时,可以确定是否对当前块执行基于仿射模型的预测(S1030)。在这种情况下,可以以标志的形式用信号通知是否执行基于仿射模型的预测。在当前块不处于跳过模式或合并模式并且执行基于仿射模型的预测时,可以用信号通知附加运动信息。附加运动信息可以包括运动矢量差、参考图片索引和用于双向预测的权重中的至少一个。

  附加运动信息可以包括候选索引,并且候选索引可以指定属于如上述的候选列表的多个候选中的任何一个候选。候选索引可以用于从候选列表确定当前块的运动预测器。

  根据本发明的方法可以以程序指令的形式来实现,该程序指令可以通过各种计算机装置被执行并记录在计算机可读介质中。计算机可读介质可以单独地或组合地包括程序指令、数据文件、数据结构等。记录在计算机可读介质上的程序指令可以针对本发明进行专门设计和配置,或者可以由计算机软件领域的技术人员获知并使用。

  计算机可读介质的示例可以包括被专门配置成存储和执行程序指令的硬件设备,例如ROM、RAM、闪速存储器等。程序指令的示例不仅可以包括机器语言代码(例如由编译器产生的机器语言代码),还包括可以由计算机使用解释器等执行的高级语言代码。上述硬件设备可以被配置成作为至少一个软件模块进行操作以执行本发明的操作,并且反之亦然。

  另外,上述方法或装置可以通过组合其配置或功能的全部或一部分来实现,或者可以单独地实现。

  尽管以上参照本发明的优选实施方式进行了描述,但是本领域技术人员将在不脱离所附权利要求中描述的本发明的精神和范围的情况下对本发明进行各种修改和改变。

  工业适用性

  本发明可以用于对视频信号进行编码/解码。

《基于仿射模型的图像编码/解码方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)