在图像编码系统中使用仿射mvp候选列表的基于仿射运动预测的图像解码方法及设备

文档序号:1358580 发布日期:2020-07-24 浏览:16次 >En<

阅读说明:本技术 在图像编码系统中使用仿射mvp候选列表的基于仿射运动预测的图像解码方法及设备 (Affine motion prediction based image decoding method and apparatus using affine MVP candidate list in image coding system ) 是由 李在镐 于 2019-09-10 设计创作,主要内容包括:根据本文档的由解码设备执行图像解码的方法包括以下步骤:从比特流获得关于当前块的运动预测信息;生成当前块的仿射MVP候选列表;以仿射MVP候选列表为基础推导当前块的CP的CPMVP;以运动预测信息为基础推导当前块的CP的CPMVD;以CPMVP和CPMVD为基础推导当前块的CP的CPMV;以及以CPMV为基础推导当前块的预测样本。(The method of performing image decoding by a decoding apparatus according to the present document includes the steps of: obtaining motion prediction information on a current block from a bitstream; generating an affine MVP candidate list of the current block; deriving the CPMVP of the CP of the current block on the basis of the affine MVP candidate list; deriving a CPMVD of the CP of the current block based on the motion prediction information; deriving the CPMV of the CP of the current block on the basis of the CPMVP and the CPMVD; and deriving prediction samples for the current block based on the CPMV.)

在图像编码系统中使用仿射MVP候选列表的基于仿射运动预 测的图像解码方法及设备

技术领域

本公开涉及视频编码技术,更具体地,涉及在视频编码系统中基于仿射运动预测的视频解码方法及设备。

背景技术

在各种领域中,对诸如HD(高清)图像和UHD(超高清)图像这样的高分辨率、高质量图像的需求正在增长。因为图像数据具有高分辨率和高质量,所以相对于传统图像数据,待传输的信息或比特的量增加。因此,当使用诸如传统有线/无线宽带线路这样的介质发送图像数据或者使用现有存储介质存储图像数据时,其传输成本和存储成本增加。

因此,需要用于有效地发送、存储和再现高分辨率高质量图像的信息的高效图像压缩技术。

发明内容

技术问题

本公开的技术目的是提供一种用于提高视频编码效率的方法及设备。

本公开的另一技术目的是提供一种视频解码方法及设备,该视频解码方法及设备通过仅当CP的所有候选运动矢量可用时通过基于相邻块推导构造的仿射MVP候选来构造当前块的仿射MVP候选列表并且基于构造的仿射MVP候选列表执行当前块的预测。

本公开的又一技术目的是提供一种视频解码方法及设备,该视频解码方法及设备通过使用从以下处理中推导的候选运动矢量来推导仿射MVP候选,该处理是用于在可用的继承的仿射MVP候选和构造的仿射MVP候选的数目(即,MVP候选列表的候选的数目)小于最大数目时将构造的仿射MVP候选推导为增加的仿射MVP候选的处理;以及基于构造的仿射MVP候选列表执行当前块的预测。

技术方案

根据本公开的一个实施方式,提供了一种由解码设备执行的视频解码方法。该方法包括:从比特流获得当前块的运动预测信息;构造当前块的仿射运动矢量预测子(MVP)候选列表;基于仿射MVP候选列表,推导当前块的控制点(CP)的控制点运动矢量预测子(CPMVP);基于运动预测信息,推导当前块的CP的控制点运动矢量差(CPMVD);基于CPMVP和CPMVD,推导当前块的CP的控制点运动矢量(CPMV);基于CPMV,推导当前块的预测样本;以及基于推导的预测样本,生成当前块的重构图片,其中,构造仿射MVP候选列表的步骤包括:检查当前块的继承的仿射MVP候选是否可用,其中,当继承的仿射MVP候选可用时推导继承的仿射MVP候选;检查当前块的构造的仿射MVP候选是否可用,其中,当构造的仿射MVP候选可用时推导构造的仿射MVP候选,并且构造的仿射MVP候选包括当前块的CP0的候选运动矢量、当前块的CP1的候选运动矢量以及当前块的CP2的候选运动矢量;当推导的仿射MVP候选的数目小于2并且CP0的运动矢量可用时,推导第一仿射MVP候选,其中,第一仿射MVP候选是包括作为CP的候选运动矢量的CP0的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP1的运动矢量可用时,推导第二仿射MVP候选,其中,第二仿射MVP候选是包括作为CP的候选运动矢量的CP1的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP2的运动矢量可用时,推导第三仿射MVP候选,其中,第三仿射MVP候选是包括作为CP的候选运动矢量的CP2的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2时,推导第四仿射MVP候选,第四仿射MVP候选包括作为CP的候选运动矢量的、基于当前块的时间相邻块推导的时间MVP;以及当推导的仿射MVP候选的数目小于2时,推导第五仿射MVP候选,第五仿射MVP候选包括作为CP的候选运动矢量的零运动矢量。

根据本公开的另一实施方式,提供了一种执行视频编码的解码设备。该解码设备包括:熵解码器,其获得当前块的运动预测信息;预测器,其构造当前块的仿射运动矢量预测子(MVP)候选列表,基于仿射MVP候选列表推导当前块的控制点(CP)的控制点运动矢量预测子(CPMVP),基于运动预测信息推导当前块的CP的控制点运动矢量差(CPMVD);基于CPMVD,推导当前块的CP的控制点运动矢量(CPMV);基于CPMV,推导当前块的预测样本;以及加法器,其基于推导的预测样本生成当前块的重构图片,其中,仿射MVP候选列表是基于以下操作而构造的:检查当前块的继承的仿射MVP候选是否可用,其中当继承的仿射MVP候选可用时推导继承的仿射MVP候选;检查当前块的构造的仿射MVP候选是否可用,其中,当构造的仿射MVP候选可用时推导构造的仿射MVP候选,并且构造的仿射MVP候选包括当前块的CP0的候选运动矢量、当前块的CP1的候选运动矢量以及当前块的CP2的候选运动矢量;当推导的仿射MVP候选的数目小于2并且CP0的运动矢量可用时,推导第一仿射MVP候选,其中第一仿射MVP候选是包括作为CP的候选运动矢量的CP0的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP1的运动矢量可用时,推导第二仿射MVP候选,其中第二仿射MVP候选是包括作为CP的候选运动矢量的CP1的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP2的运动矢量可用时,推导第三仿射MVP候选,其中第三仿射MVP候选是包括作为CP的候选运动矢量的CP2的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2时,推导第四仿射MVP候选,第四仿射MVP候选包括作为CP的候选运动矢量的、基于当前块的时间相邻块推导的时间MVP;以及当推导的仿射MVP候选的数目小于2时,推导第五仿射MVP候选,第五仿射MVP候选包括作为CP的候选运动矢量的零运动矢量。

根据本公开的又一实施方式,提供了一种由编码设备执行的视频编码方法。该方法包括:构造当前块的仿射运动矢量预测子(MVP)候选列表;基于仿射MVP候选列表,推导当前块的控制点(CP)的控制点运动矢量预测子(CPMVP);推导当前块的CP的CPMV;基于CPMVP和CPMV,推导当前块的CP的控制点运动矢量差(CPMVD);以及对包括关于CPMVD的信息的运动预测信息进行编码,其中,构造仿射MVP候选列表的步骤包括:检查当前块的继承的仿射MVP候选是否可用,其中当继承的仿射MVP候选可用时推导继承的仿射MVP候选;检查当前块的构造的仿射MVP候选是否可用,其中当构造的仿射MVP候选可用时推导构造的仿射MVP候选,并且构造的仿射MVP候选包括当前块的CP0的候选运动矢量、当前块的CP1的候选运动矢量以及当前块的CP2的候选运动矢量;当推导的仿射MVP候选的数目小于2并且CP0的运动矢量可用时,推导第一仿射MVP候选,其中第一仿射MVP候选是包括作为CP的候选运动矢量的CP0的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP1的运动矢量可用时,推导第二仿射MVP候选,其中第二仿射MVP候选是包括作为CP的候选运动矢量的CP1的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP2的运动矢量可用时,推导第三仿射MVP候选,其中第三仿射MVP候选是包括作为CP的候选运动矢量的CP2的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2时,推导第四仿射MVP候选,第四仿射MVP候选包括作为CP的候选运动矢量的、基于当前块的时间相邻块推导的时间MVP;以及当推导的仿射MVP候选的数目小于2时,推导第五仿射MVP候选,第五仿射MVP候选包括作为CP的候选运动矢量的零运动矢量。

根据本公开的再一实施方式,提供了一种视频编码设备。该编码设备包括:预测器,其构造当前块的仿射运动矢量预测子(MVP)候选列表,推导当前块的控制点(CP)的控制点运动矢量预测子(CPMVP),以及推导当前块的CP的CPMV;减法器,其基于CPMVP和CPMV推导当前块的CP的控制点运动矢量差(CPMVD);以及熵编码器,其对包括关于CPMVD的信息的运动预测信息进行编码,其中,仿射MVP候选列表是基于以下操作而构造的:检查当前块的继承的仿射MVP候选是否可用,其中当继承的仿射MVP候选可用时推导继承的仿射MVP候选;检查当前块的构造的仿射MVP候选是否可用,其中当构造的仿射MVP候选可用时推导构造的仿射MVP候选,并且构造的仿射MVP候选包括当前块的CP0的候选运动矢量、当前块的CP1的候选运动矢量以及当前块的CP2的候选运动矢量;当推导的仿射MVP候选的数目小于2并且CP0的运动矢量可用时,推导第一仿射MVP候选,其中第一仿射MVP候选是包括作为CP的候选运动矢量的CP0的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP1的运动矢量可用时,推导第二仿射MVP候选,其中第二仿射MVP候选是包括作为CP的候选运动矢量的CP1的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2并且CP2的运动矢量可用时,推导第三仿射MVP候选,其中第三仿射MVP候选是包括作为CP的候选运动矢量的CP2的运动矢量的仿射MVP候选;当推导的仿射MVP候选的数目小于2时,推导第四仿射MVP候选,第四仿射MVP候选包括作为CP的候选运动矢量的、基于当前块的时间相邻块推导的时间MVP;以及当推导的仿射MVP候选的数目小于2时,推导第五仿射MVP候选,第五仿射MVP候选包括作为CP的候选运动矢量的零运动矢量。

有益效果

根据本公开,可以提高整体图像/视频压缩效率。

根据本公开,可以提高基于仿射运动预测的视频编码的效率。

根据本公开,在推导仿射MVP候选列表中,仅当构造的仿射MVP候选的CP的全部候选运动矢量可用时,才可以添加构造的仿射MVP候选,由此可以降低推导构造的仿射MVP候选和构造仿射MVP候选列表的复杂度,并且可以提高编码效率。

根据本公开,在推导仿射MVP候选列表中,可以基于从用于推导构造的仿射MVP候选的处理所推导的CP的候选运动矢量,来推导附加的仿射MVP候选,由此可以降低构造仿射MVP候选列表的复杂度,并且可以提高编码效率。

根据本公开,在推导继承的仿射MVP候选中,仅当上相邻块被包括在当前CTU中时,才可以通过使用上相邻块来推导继承的仿射MVP候选,由此可以减少用于仿射预测的行缓冲器的存储量,并且可以使硬件成本最小化。

附图说明

图1例示了可以应用本公开的视频/图像编码系统的示例。

图2是例示了可以应用本文档的实施方式的视频/图像编码设备的配置的示意图。

图3是例示了可以应用本文档的实施方式的视频/图像解码设备的配置的示意图。

图4例示了通过仿射运动模型表示的运动。

图5例示了使用3个控制点的运动矢量的仿射运动模型。

图6例示了使用2个控制点的运动矢量的仿射运动模型。

图7例示了基于仿射运动模型以子块为基础推导运动矢量的方法。

图8是例示了根据本公开的一个实施方式的仿射运动预测方法的流程图。

图9例示了根据本公开的一个实施方式的用于推导控制点处的运动矢量预测子(motion vector predictor)的方法。

图10例示了根据本公开一个实施方式的用于推导控制点处的运动矢量预测子的方法。

图11例示了当选择相邻块A作为仿射合并候选时执行的仿射预测的一个示例。

图12例示了用于推导继承的仿射候选的相邻块。

图13例示了用于构造的仿射候选的空间候选。

图14例示了构建仿射MVP列表的一个示例。

图15例示了推导构造候选的一个示例。

图16例示了推导构造候选的一个示例。

图17例示了为了推导继承的仿射候选而扫描的相邻块的位置。

图18例示了当四参数仿射运动模型应用于当前块时推导构造候选的一个示例。

图19例示了当六参数仿射运动模型应用于当前块时推导构造候选的一个示例。

图20a和图20b例示了用于推导继承的仿射候选的实施方式。

图21例示了根据本公开的由编码设备执行的视频编码方法。

图22例示了根据本公开的执行视频编码方法的编码设备。

图23例示了根据本公开的由解码设备执行的视频解码方法。

图24例示出了根据本公开的执行视频解码方法的解码设备。

图25例示了应用本公开的实施方式的内容流系统结构。

具体实施方式

本公开可以以各种形式修改,并且将在附图中描述和例示其特定实施方式。然而,实施方式并非旨在限制本公开。在以下描述中使用的术语仅用于描述特定实施方式,并非意图限制本公开。只要清楚地以不同的方式理解,单数的表达包括复数的表达。诸如“包括”和“具有”之类的术语旨在表示存在以下描述中使用的特征、数量、步骤、操作、元件、组件或其组合,因此应理解并不排除存在或添加一个或更多个不同特征、数量、步骤、操作、元件、组件或其组合的可能性。

另一方面,在本公开中描述的附图中的元件是为了方便地解释不同的特定功能而独立地绘制的,并不意味着这些元件由独立的硬件或独立的软件来体现。例如,可以将元件中的两个或更多个元件组合以形成单个元件,或者可以将一个元件划分为多个元件。其中组合元件和/或划分元件的实施方式属于本公开,而没有脱离本公开的概念。

在下文中,将参照附图详细描述本公开的实施方式。另外,在整个附图中,相似的附图标记用于指示相似的元件,并且将省略对相似元件的相同描述。

图1例示了可以应用本公开的视频/图像编码系统的示例。

参照图1,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收装置)。源装置可以经由数字存储介质或网络以文件或流的形式向接收装置发送编码视频/图像信息或数据。

源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以称为视频/图像编码设备,并且解码设备可以称为视频/图像解码设备。发送器可以包括在编码设备中。接收器可以包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。

视频源可以通过捕获、合成或生成视频/图像的处理来获取视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板电脑和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以由生成相关数据的处理代替。

编码设备可以对输入的视频/图像进行编码。编码设备可以执行诸如预测、变换和量化的一系列过程,以实现压缩和编码效率。编码数据(编码视频/图像信息)可以以比特流的形式输出。

发送器可以通过数字存储介质或网络以文件或流的形式向接收装置的接收器发送以比特流形式输出的编码后的图像/图像信息或数据。数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并向解码设备发送接收到的比特流。

解码设备可以通过执行与编码设备的操作相对应的诸如反量化、逆变换和预测之类的一系列过程,来对视频/图像进行解码。

渲染器可以渲染经解码的视频/图像。经渲染的视频/图像可以通过显示器显示。

本文档涉及视频/图像编码。例如,本文档中公开的方法/实施方式可以应用于在多功能视频编码(VVC)、EVC(基本视频编码)标准、AOMedia Video 1(AV1)标准、第2代音频视频编码标准(AVS2)或下一代视频/图像编码标准(例如,H.267、或H.268等)中公开的方法。

本文档呈现了视频/图像编码的各种实施方式,并且除非另外提及,否则实施方式可以彼此组合地执行。

在本文档中,视频可以是指一段时间上的一系列图像。图片通常是指在特定时间区域表示一幅图像的单位,而条带(slice)/切片(tile)是在编码中组成图片的一部分的单位。条带/切片可以包括一个或更多个编码树单元(CTU)。一幅图片可以包括一个或更多个条带/切片。一幅图片可以包括一个或更多个切片组。一个切片组可以包括一个或更多个切片。砖块(brick)可以表示图片中切片内CTU行的矩形区域。一个切片可以分割为多个砖块,每个砖块包括切片内的一个或更多个CTU行。没有分割为多个砖块的切片也可以称为砖块。砖块扫描是对其中CTU在砖块的CTU光栅扫描中连续排序的图片进行分割的CTU的特定顺序排序,切片内的砖块在切片的砖块的光栅扫描中是连续排列的,并且图片中的切片在图片的切片的光栅扫描中是连续排序的。切片是图片中特定切片列和特定切片行内的CTU的矩形区域。切片列是高度等于图片的高度并且宽度由图片参数集中的语法元素指定的CTU的矩形区域。切片行是高度由图片参数集中的语法元素指定并且宽度等于图片宽度的CTU的矩形区域。切片扫描是指对其中CTU在切片的CTU光栅扫描中是连续排序的图片进行分割的CTU的特定顺序排序,而图片中的切片在图片的切片的光栅扫描中是连续排序的。条带包括可以唯一地包含在单个NAL单元中的图片的整数个砖块。条带可以包括多个完整的切片,或者仅一个切片的完整砖块的连续序列。切片组和条带在该文件中可以互换使用。例如,在本文档中,切片组/切片组头可以被称为条带/条带头。

像素或画素可以表示组成一幅图片(或图像)的最小单位。另外,“样本”可以用作与像素相对应的术语。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。

单元可以表示图像处理的基本单位。单元可以包括图片的特定区域和与该区域有关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。在一些情况下,单元可以与诸如块或区域之类的术语互换使用。在一般情况下,M×N块可以包括M列和N行的样本(或样本阵列)或变换系数的集合(或阵列)。

在本文档中,术语“/”和“、”应解释为指示“和/或”。例如,表述“A/B”可以表示“A和/或B”。此外,“A、B”可以表示“A和/或B”。此外,“A/B/C”可以表示“A、B和/或C中的至少一个”。另外,“A/B/C”可以表示“A、B和/或C中的至少一个”。

此外,在本文档中,术语“或”应解释为指示“和/或”。例如,表述“A或B”可包括1)仅A,2)仅B,和/或3)A和B两者。换句话说,本文中的术语“或”应解释为指示“附加地或另选地。”

图2是例示了可以应用本文档的实施方式的视频/图像编码设备的配置的示意图。在下文中,视频编码设备可以包括图像编码设备。

参照图2,编码设备200包括图像分割器210、预测器220、残差处理器230和熵编码器240、加法器250、滤波器260和存储器270。预测器220可以包括帧间预测器221和帧内预测器222。残差处理器230可以包括变换器232、量化器233、反量化器234和逆变换器235。残差处理器230还可以包括减法器231。加法器250可以称为重构器或重构块生成器。根据实施方式,图像分割器210、预测器220、残差处理器230、熵编码器240、加法器250和滤波器260可以由至少一个硬件组件(例如,编码器芯片组或处理器)构成。另外,存储器270可以包括解码图片缓冲器(DPB)或者可以由数字存储介质构成。硬件组件还可以包括作为内部/外部组件的存储器270。

图像分割器210可以将输入到编码设备200的输入图像(或图片或帧)分割到一个或更多个处理器中。例如,处理器可以被称为编码单元(CU)。在这种情况下,可以根据四叉树二叉树三叉树(QTBTTT)结构从编码树单元(CTU)或最大编码单元(LCU)来递归地分割编码单元。例如,一个编码单元可以基于四叉树结构、二叉树结构和/或三元结构而被分割为深度更深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,随后可以应用二叉树结构和/或三元结构。另选地,可以首先应用二叉树结构。可以基于不再分割的最终编码单元来执行根据本文档的编码过程。在这种情况下,可以根据图像特性基于编码效率将最大编码单元用作最终编码单元,或者如果需要,可以将编码单元递归地分割为深度更深的编码单元并且具有最佳尺寸的编码单元可以用作最终编码单元。这里,编码过程可以包括预测、变换和重构的过程,这将在后面描述。作为另一示例,处理器还可以包括预测单元(PU)或变换单元(TU)。在这种情况下,可以从上述最终编码单元来分离或分割预测单元和变换单元。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。

在一些情况下,单元可以与诸如块或区域之类的术语互换使用。在一般情况下,M×N块可以表示由M列和N行组成的样本或变换系数的集合。样本通常可以表示像素或像素值,可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可用作与像素或画素的一幅图片(或图像)相对应的术语。

在编码设备200中,从输入图像信号(原始块、原始样本阵列)中减去从帧间预测器221或帧内预测器222输出的预测信号(预测块、预测样本阵列),以生成残差信号(残差块、残差样本阵列)并且所生成的残差信号被发送到变换器232。在这种情况下,如图所示,在编码器200中用于从输入图像信号(原始块、原始样本阵列)减去预测信号(预测块、预测样本阵列)的单元可以称为减法器231。预测器可以对要处理的块(在下文中称为当前块)执行预测,并生成包括当前块的预测样本的预测块。预测器可以以当前块或CU为基础来确定是应用帧内预测还是应用帧间预测。如稍后在每个预测模式的描述中所述,预测器可以生成与预测有关的、诸如预测模式信息之类的各种信息,并向熵编码器240发送所生成的信息。关于预测的信息可以在熵编码器240中编码并以比特流的形式输出。

帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以位于当前块的附近,或者可以远离当前块。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅是示例,依据设置,可以使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于相邻块的预测模式来确定应用于当前块的预测模式。

帧间预测器221可以基于由参考图片上的运动矢量指定的参考块(参考样本阵列)来推导当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于相邻块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,相邻块可以包括存在于当前图片中的空间相邻块和存在于参考图片中的时间相邻块。包括参考块的参考图片和包括时间相邻块的参考图片可以相同或不同。时间相邻块可以称为并置参考块、共位CU(colCU)等,并且包括时间相邻块的参考图片可以称为并置图片(colPic)。例如,帧间预测器221可以基于相邻块来配置运动信息候选列表,并且生成指示使用哪个候选来推导当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以将相邻块的运动信息用作当前块的运动信息。在跳过模式下,与合并模式不同,可能无法发送残差信号。在运动矢量预测(MVP)模式的情况下,可以将相邻块的运动矢量用作运动矢量预测子,并且可以通过发信号通知运动矢量差来指示当前块的运动矢量。

预测器220可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测二者。这可以称为帧间帧内组合预测(CIIP)。另外,预测器可以基于帧内块复制(IBC)预测模式或调色板模式来预测块。IBC预测模式或调色板模式可用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测来执行IBC,因为参考块是在当前图片中推导出的。即,IBC可以使用本文中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。

由预测器(包括帧间预测器221和/或帧内预测器222)生成的预测信号可以用于生成重构信号或生成残差信号。变换器232可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、karhunen-loève变换(KLT)、基于图的变换(GBT)或条件非线性变换(CNT)中的至少一种。这里,GBT表示当像素之间的关系信息由图表示时从图获得的变换。CNT是指基于使用所有先前重构的像素生成的预测信号而生成的变换。另外,变换处理可以应用于具有相同尺寸的正方形像素块,或者可以应用于具有可变尺寸而非正方形的块。

量化器233可以对变换系数进行量化,并且将它们发送给熵编码器240,并且熵编码器240可以对量化信号(关于量化变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以称为残差信息。量化器233可以基于系数扫描顺序将块类型量化变换系数重新布置为一维矢量形式,并且基于一维矢量形式的量化变换系数来生成关于量化变换系数的信息。可以生成关于变换系数的信息。熵编码器240可以执行各种编码方法,诸如,例如指数哥伦布(Golomb)、上下文自适应变长编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。熵编码器240可以对除了量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)一起或分开地进行编码。可以以比特流的形式以NAL(网络抽象层)为单位发送或存储编码信息(例如,编码视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)之类的各种参数集的信息。另外,视频/图像信息还可包括一般约束信息。在本文档中,从编码设备向解码设备发送/发信号通知的信息和/或语法元素可以包括在视频/图片信息中。视频/图像信息可以通过上述编码过程被编码并且被包括在比特流中。比特流可以通过网络发送,或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。可以包括发送从熵编码器240输出的信号的发送器(未示出)和/或存储该信号的存储介质(未示出)作为编码设备200的内部/外部元件,另选地,发送器可以包括在熵编码器240中。

从量化器233输出的量化变换系数可以用于生成预测信号。例如,可以通过利用反量化器234和逆变换器235对量化变换系数应用反量化和逆变换,来重构残差信号(残差块或残差样本)。加法器250将重构的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加,以生成重构信号(重构图片、重构块、重构样本阵列)。如果要处理的块没有残差(诸如应用了跳过模式的情况),则可以将预测块用作重构块。加法器250可以称为重构器或重构块生成器。所生成的重构信号可以用于在当前图片中要处理的下一块的帧内预测,并且可以通过如下所述的滤波用于下一图片的帧间预测。

此外,在图片编码和/或重构期间,可以应用具有色度缩放的亮度映射(LMCS)。

滤波器260可以通过对重构信号应用滤波来改善主观/客观图像质量。例如,滤波器260可以通过对重构图片应用各种滤波方法来生成修改后的重构图片,并将修改后的重构图片存储在存储器270(具体地,存储器270的DPB)中。各种滤波方法可包括例如去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。滤波器260可以生成与滤波有关的各种信息,并且将生成的信息发送给熵编码器240,如稍后在各种滤波方法的描述中所述。与滤波有关的信息可以由熵编码器240编码并且以比特流的形式输出。

发送给存储器270的修改后的重构图片可以用作帧间预测器221中的参考图片。当通过编码设备应用帧间预测时,可以避免编码设备200与解码设备之间的预测不匹配,并且可以提高编码效率。

存储器270的DPB可以存储用作帧间预测器221中的参考图片的修改后的重构图片。存储器270可以存储从中推导(或编码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器221,并且用作空间相邻块的运动信息或时间相邻块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器222。

图3是例示了可以应用本文档的实施方式的视频/图像解码设备的配置的示意图。

参照图3,解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350、存储器360。预测器330可以包括帧间预测器332和帧内预测器331。残差处理器320可以包括反量化器321和逆变换器322。根据实施方式,熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由硬件组件(例如,解码器芯片组或处理器)构成。另外,存储器360可以包括解码图片缓冲器(DPB),或者可以由数字存储介质构成。硬件组件还可以包括存储器360作为内部/外部组件。

当输入了包括视频/图像信息的比特流时,解码设备300可以与在图2的编码设备中处理视频/图像信息的处理相对应地重构图像。例如,解码设备300可以基于从比特流获得的块分割相关信息来推导单元/块。解码设备300可以使用在编码设备中应用的处理器来执行解码。因此,解码的处理器例如可以是编码单元,并且可以根据四叉树结构、二叉树结构和/或三叉树结构,从编码树单元或最大编码单元对编码单元进行分割。可以从编码单元推导一个或更多个变换单元。可以通过再现设备来再现通过解码设备300解码并输出的重构图像信号。

解码设备300可以接收以比特流形式从图2的编码设备输出的信号,并且可以通过熵解码器310对接收到的信号进行解码。例如,熵解码器310可以解析比特流,以推导图像重构(或图片重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)之类的各种参数集的信息。另外,视频/图像信息还可以包括一般约束信息。解码设备还可以基于关于参数集的信息和/或一般约束信息来对图片进行解码。本文中稍后描述的发信号通知的/接收的信息和/或语法元素可以通过解码过程被解码,并从比特流中获取。例如,熵解码器310基于诸如指数哥伦布编码、CAVLC或CABAC之类的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素和残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素相对应的bin(位),使用解码目标语法元素信息、解码目标块的解码信息或在先前级中解码的符号/bin的信息来确定上下文模型,并通过根据所确定的上下文模型预测bin的出现概率来对该bin进行算术解码,并且生成与每个语法元素的值相对应的符号。在这种情况下,在确定上下文模型之后,CABAC熵解码方法可以通过将经解码的符号/bin的信息用于下一符号/bin的上下文模型来更新上下文模型。由熵解码器310解码的信息当中与预测有关的信息可以提供给预测器(帧间预测器332和帧内预测器331),并且在熵解码器310中对其执行了熵解码的残差值(也就是说,量化变换系数和相关参数信息)可以被输入到残差处理器320。残差处理器320可以推导残差信号(残差块、残差样本、残差样本阵列)。另外,由熵解码器310解码的信息当中关于滤波的信息可以提供给滤波器350。此外,用于接收从编码设备输出的信号的接收器(未示出)可以进一步被配置为解码设备300的内部/外部元件,或者接收器可以是熵解码器310的组件。此外,根据本文档的解码设备可以称为视频/图像/图片解码设备,并且解码设备可以分类为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器310,并且样本解码器可以包括反量化器321、逆变换器322、加法器340、滤波器350、存储器360、帧间预测器332和帧内预测器331中的至少一个。

反量化器321可以对量化变换系数进行反量化并且输出变换系数。反量化器321可以以二维块的形式重新布置量化变换系数。在这种情况下,可以基于在编码设备中执行的系数扫描顺序来执行重新布置。反量化器321可以通过使用量化参数(例如,量化步长信息)对量化变换系数执行反量化,并且获得变换系数。

逆变换器322对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。

预测器可以对当前块执行预测,并生成包括当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且可以确定具体的帧内/帧间预测模式。

预测器320可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测。这可以称为帧间和帧内组合预测(CIIP)。另外,预测器可以基于帧内块复制(IBC)预测模式或调色板模式来预测块。IBC预测模式或调色板模式可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测来执行IBC,因为在当前图片中推导参考块。即,IBC可以使用本文档中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。

帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以位于当前块的附近,或者可以远离当前块。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。帧内预测器331可以通过使用应用于相邻块的预测模式来确定应用于当前块的预测模式。

帧间预测器332可以基于由参考图片上的运动矢量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中发送的运动信息的量,可以基于相邻块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,相邻块可以包括存在于当前图片中的空间相邻块和存在于参考图片中的时间相邻块。例如,帧间预测器332可以基于相邻块来配置运动信息候选列表,并基于接收到的候选选择信息来推导当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。

加法器340可以通过将所获得的残差信号与从预测器(包括帧间预测器332和/或帧内预测器331)输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。如果要处理的块没有残差(例如当应用跳过模式时),则可以将预测块用作重构块。

加法器340可以称为重构器或重构块生成器。所生成的重构信号可以用于当前图片中要处理的下一块的帧内预测,可以通过如下所述的滤波输出,或者可以用于下一图片的帧间预测。

此外,在图片解码处理中可以应用具有色度缩放的亮度映射(LMCS)。

滤波器350可以通过向重构信号应用滤波来改善主观/客观图像质量。例如,滤波器350可以通过对重构图片应用各种滤波方法来生成修改后的重构图片,并将修改后的重构图片存储在存储器360(具体地,存储器360的DPB)中。各种滤波方法可包括例如去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。

存储器360的DPB中存储的(修改后的)重构图片可以用作帧间预测器332中的参考图片。存储器360可以存储从中推导(或解码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器260,以作为空间相邻块的运动信息或时间相邻块的运动信息来利用。存储器360可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器331。

在本公开中,在编码设备200的滤波器260、帧间预测器221和帧内预测器222中描述的实施方式可以与解码设备300的滤波器350、帧间预测器332和帧内预测器331相同或者分别被应用以对应于解码设备300的滤波器350、帧间预测器332和帧内预测器331。相同的内容也可以应用于帧间预测器332和帧内预测器331。

此外,关于帧间预测,已经提出了考虑图像失真的帧间预测方法。更具体地,已经提出了仿射运动模型,该仿射运动模型有效地推导当前块的子块或样本点的运动矢量,并且提高帧间预测的准确性,而与由于图像旋转、放大或缩小引起的变形无关。换句话说,提出了推导当前块的子块或样本点的运动矢量的仿射运动模型。采用仿射运动模型的预测可以被称为仿射帧间预测或仿射运动预测。

例如,使用仿射运动模型的仿射帧间预测可以有效地表示如下所述的四个运动,即,四个变形。

图4例示了通过仿射运动模型表示的运动。参照图4,可以通过仿射运动模型表示的运动可以包括平移运动、缩放运动、旋转运动和剪切运动。即,可以如图3所示地有效地表示图4所示的图像的(一部分)根据时间的流逝而缩放的缩放运动、图像的(一部分)根据时间的流逝而旋转的旋转运动、以及图像(的一部分)根据时间的流逝而平行四边形地变形的剪切运动、以及图像(的一部分)根据图像的时间流逝而平面地移动的平移运动。

编码设备/解码设备可以通过仿射帧间预测,基于当前块的控制点(CP)处的运动矢量来预测图像的失真形状,可以通过提高预测精度来改善图像的压缩性能。另外,由于可以使用当前块的相邻块的运动矢量来推导当前块的至少一个控制点的运动矢量,所以可以减少关于附加信息的数据量的负担,并且可以显著提高帧间预测效率。

作为仿射帧间预测的示例,可以需要在三个控制点(即,三个参考点)处的运动信息。

图5例示了使用三个控制点的运动矢量的仿射运动模型。

在当前块500中的左上样本位置为(0,0)时,样本位置(0,0)、(w,0)和(0,h)可以定义为控制点,如图5所示。在下文中,样本位置(0,0)的控制点可以表示为CP0,样本位置(w,0)的控制点可以表示为CP1,并且样本位置(0,h)的控制点可以表示为CP2。

可以使用上述控制点和相应控制点的运动矢量来推导仿射运动模型的公式。仿射运动模型的公式可以表示如下。

[式1]

在此,w表示当前块500的宽度,h表示当前块500的高度,v0x和v0y分别表示CP0的运动矢量的x分量和y分量,v1x和v1y分别表示CP1的运动矢量的x分量和y分量,并且v2x和v2y分别表示CP2的运动矢量的x分量和y分量。另外,x表示当前块500中目标样本的位置的x分量,y表示当前块500中目标样本的位置的y分量,vx表示当前块500中目标样本的运动矢量的x分量,并且vy表示当前块500中目标样本的运动矢量的y分量。

由于CP0的运动矢量、CP1的运动矢量和CP2的运动矢量是已知的,所以可以基于式1推导出基于当前块中的样本位置的运动矢量。即,根据仿射运动模型,控制点处的运动矢量v0(v0x,v0y)、v1(v1x,v1y)和v2(v2x,v2y)可以基于目标样本的坐标(x,y)与三个控制点之间的距离比进行缩放,以根据目标样本的位置推导目标样本的运动矢量。即,根据仿射运动模型,可以基于控制点的运动矢量来推导当前块中的每个样本的运动矢量。此外,根据仿射运动模型推导的当前块中的样本的运动矢量的集合可以被称为仿射运动矢量场(MVF)。

此外,式1的六个参数可由如下式所示的a、b、c、d、e和f表示,并且由六个参数表示的仿射运动模型的公式可以如下。

[式2]

在此,w表示当前块500的宽度,h表示当前块500的高度,v0x和v0y表示CP0的运动矢量的x分量、y分量,v1x和v1y分别表示CP1的运动矢量的x分量和y分量,并且v2x和v2y分别代表CP2的运动矢量的x分量和y分量。另外,x表示当前块500中目标样本的位置的x分量,y表示当前块500中目标样本的位置的y分量,vx表示当前块500中目标样本的运动矢量的x分量,并且vy表示当前块500中目标样本的运动矢量的y分量。

使用六个参数的仿射运动模型或仿射帧间预测可以称为6参数仿射运动模型或AF6。

此外,作为仿射帧间预测的示例,可以需要两个控制点(即,两个参考点)处的运动信息。

图6例示了使用两个控制点的运动矢量的仿射运动模型。使用两个控制点的仿射运动模型可以表示包括平移运动、缩放运动和旋转运动的三种运动。表示三种运动的仿射运动模型可以称为相似仿射运动模型或简化仿射运动模型。

在当前块600中的左上样本位置为(0,0)时,样本位置(0,0)和(w,0)可以定义为控制点,如图6所示。在下文中,样本位置(0,0)的控制点可以表示为CP0,并且样本位置(w,0)的控制点可以表示为CP1。

可以使用上述控制点和相应控制点的运动矢量来推导仿射运动模型的公式。仿射运动模型的公式可以表示如下。

[式3]

在此,w表示当前块600的宽度,v0x和v0y分别表示CP0的运动矢量的x分量和y分量,并且v1x和v1y表示CP1的运动矢量的x分量和y分量。另外,x表示当前块600中目标样本的位置的x分量,y表示当前块600中目标样本的位置的y分量,vx表示当前块600中目标样本的运动矢量的x分量,并且vy表示当前块600中目标样本的运动矢量的y分量。

此外,式3的四个参数可以由如下式中的a、b、c和d表示,并且由四个参数表示的仿射运动模型的公式可以如下。

[式4]

在此,w表示当前块600的宽度,v0x和v0y分别表示CP0的运动矢量的x分量和y分量,并且v1x和v1y分别表示CP1的运动矢量的x分量和y分量。另外,x表示当前块600中目标样本的位置的x分量,y表示当前块600中目标样本的位置的y分量,vx表示当前块600中目标样本的运动矢量的x分量,并且vy表示当前块600中目标样本的运动矢量的y分量。使用两个控制点的仿射运动模型可以由如式4所示的四个参数a、b、c和d表示,并且因此,使用四个参数的仿射运动模型或仿射帧间预测可以称为4参数仿射运动模型或AF4。即,根据仿射运动模型,可以基于控制点的运动矢量来推导当前块中的每个样本的运动矢量。此外,根据仿射运动模型推导的当前块中的样本的运动矢量的集合可以称为仿射运动矢量场(MVF)。

此外,如上所述,可以通过仿射运动模型来推导样本单元的运动矢量,因此可以显著提高帧间预测的准确性。然而,在这种情况下,可能会极大地增加运动补偿处理中的复杂性。

因此,可以进行限制,从而推导当前块的子块单元的运动矢量,而不是样本单元的运动矢量。

图7例示了基于仿射运动模型以子块为基础推导运动矢量的方法。图7例示了当前块的尺寸为16×16并且以4×4子块为单位推导运动矢量的情况。子块可以设置为各种尺寸。例如,当子块被设置为n×n尺寸(n是正整数,例如,n为4)时,可以基于仿射运动模型以当前块中的n×n个子块为单位推导运动矢量,并且可以应用用于推导表示每个子块的运动矢量的各种方法。

例如,参照图7,可以使用每个子块的中心或右下方样本位置作为代表坐标来推导每个子块的运动矢量。在此,中心右下位置可以指示位于子块中心的四个样本当中的位于右下侧的样本位置。例如,当n是奇数时,一个样本可以位于子块的中心,并且在这种情况下,中心样本位置可以用于推导子块的运动矢量。然而,当n是偶数时,四个样本可以定位为在子块的中心处相邻,并且在这种情况下,右下样本位置可以用于推导运动矢量。例如,参照图7,每个子块的代表坐标可以被推导为(2,2)、(6,2)、(10,2)、……、(14,14),并且编码设备/解码设备可以通过将子块的每个代表坐标代入上述式1或式3,来推导每个子块的运动矢量。通过仿射运动模型推导的当前块中的子块的运动矢量可以称为仿射MVF。

此外,作为示例,可以基于下式推导当前块中的子块的尺寸。

[式5]

这里,M表示子块的宽度,N表示子块的高度。另外,v0x和v0y表示当前块的CPMV0的x分量和y分量,v1x和v1y表示当前块的CPMV1的x分量和y分量,w表示当前块的宽度,h表示当前块的高度,并且MvPre表示运动矢量分数精度。例如,运动矢量分数精度可以被设置为1/16。

此外,在使用上述仿射运动模型的帧间预测(即,仿射运动预测)中,可以具有仿射合并模式AF_MERGE和仿射帧间模式AF_INTER。在此,仿射帧间模式可以称为仿射MVP模式AF_MVP。

仿射合并模式与现有合并模式的相似之处在于,不传输控制点的运动矢量的MVD。即,类似于现有的跳过/合并模式,仿射合并模式可以是指通过从当前块的相邻块针对两个或三个控制点中的每一个推导CPMV来执行预测的编码/解码方法。

例如,当AF_MRG模式应用于当前块时,可以从当前块的相邻块当中的已经应用了仿射模式的相邻块推导CP0和CP1的运动矢量(即,CPMV0和CPMV1)。换句话说,已经应用了仿射模式的相邻块的CPMV0和CPMV1可以被推导为合并候选,或者可以基于合并候选而被推导为当前块的CPMV0和CPMV1。可以基于由合并候选表示的相邻块的CPMV0和CPMV1来推导仿射运动模型,并且基于仿射运动模型,可以推导当前块的CPMV0和CPMV1。

仿射帧间模式可以表示这样的帧间预测,该帧间预测推导控制点的运动矢量的运动矢量预测子(MVP),基于接收到的运动矢量差(MVD)和MVP推导控制点的运动矢量并且基于控制点的运动矢量推导当前块的仿射MVF;并根据仿射MVF执行预测。在此,控制点的运动矢量可以被称为控制点运动矢量(CPMV),控制点的MVP可以被称为控制点运动矢量预测子(CPMVP),并且控制点的MVD可以被称为控制点运动矢量差(CPMVD)。更具体地,例如,编码设备可以分别推导CP0和CP1(或者CP0、CP1和CP2)的控制点运动矢量预测子(CPMVP)和控制点运动矢量(CPMV),并且发送或存储关于CPMVP和/或表示CPMVP和CPMV之间的差CPMVD的信息。

在此,如果仿射帧间模式应用于当前块,则编码/解码设备可以基于当前块的相邻块来构造仿射MVP候选列表,其中,仿射MVP候选可以称为CPMVP对候选,并且仿射MVP候选列表可以称为CPMVP候选列表。

另外,每个仿射MVP候选可以代表四参数仿射运动模型中CP0和CP1的CPMVP的组合,以及六参数仿射运动模型中CP0、CP1和CP2的CPMVP的组合。

图8是例示了根据本公开的一个实施方式的仿射运动预测方法的流程图。

参照图8,仿射运动预测方法可以主要描述如下。一旦仿射运动预测方法开始,则在S800首先获得CPMV对。在此,如果使用四参数仿射模型,则CPMV对可以包括CPMV0和CPMV1。

之后,在S810,可以基于CPMV对来执行仿射运动补偿,此后可以终止仿射运动预测。

另外,可以定义两个仿射预测模式以确定CPMV0和CPMV1。在此,两个仿射预测模式可以包括仿射帧间模式和仿射合并模式。仿射帧间模式可以用信号通知关于CPMV0和CPMV1的两个运动矢量之间的运动矢量差(MVD)的信息,以清楚地确定CPMV0和CPMV1。另一方面,仿射合并模式可以在无需用信号通知MVD信息的情况下推导CPMV对。

换句话说,仿射合并模式可以通过使用以仿射模式编码的相邻块的CPMV来推导当前块的CPMV,并且如果运动矢量是由子块单元确定的,则仿射合并模式可以称为子块合并模式。

在仿射合并模式中,编码设备可以向解码设备发信号通知以仿射模式编码的相邻块的索引,用于推导当前块的CPMV,并且还可以用信号通知相邻块的CPMV和当前块的CPMV之间的差值。在此,仿射合并模式可以基于相邻块构造仿射合并候选列表,其中,相邻块的索引可以指示仿射合并候选列表内要被利用以推导当前块的CPMV的相邻块。仿射合并候选列表也可以称为子块合并候选列表。

仿射帧间模式也可以称为仿射MVP模式。在仿射MVP模式下,可以基于控制点运动矢量预测子(CPMVP)和控制点运动矢量差(CPMVD)来推导当前块的CPMV。换句话说,编码设备可以确定当前块的CPMV的CPMVP,推导作为当前块的CPMV和CPMVP之间的差值的CPMVD,并且向解码设备用信号通知关于CPMVP的信息和关于CPMVD的信息。在此,仿射MVP模式可以基于相邻块来构造仿射MVP候选列表,并且关于CPMVP的信息可以指示从仿射MVP候选列表推导当前块的CPMV的CPMVP所要利用的相邻块。仿射MVP候选列表也可以称为控制点运动矢量预测子候选列表。

例如,当应用六参数仿射运动模型的仿射帧间模式时,可以如下所述地对当前块进行编码。

图9例示了根据本公开的一个实施方式的用于推导控制点处的运动矢量预测子的方法。

参照图9,当前块的CP0的运动矢量可以由v0指代,CP1的运动矢量可以由v1表示,左下样本位置处的控制点的运动矢量可以由v2指代,并且CP2的运动矢量可以由v3指代。换句话说,v0可以表示CP0的CPMVP,v1可以表示CP1的CPMVP,并且v2可以表示CP2的CPMVP。

仿射MVP候选可以是CP0的CPMVP候选、CP1的CPMVP候选和CP2的CPMVP候选的组合。

例如,可以如下推导仿射MVP候选。

更具体地说,可以确定最多12个CPMVP候选组合,如下式所示。

[式6]

{(v0,v1,v2)|v0={vA,vB,vc},v1={vD,vE},v2={vF,vG}}

在此,vA表示相邻块A的运动矢量,vB表示相邻块B的运动矢量,vc表示相邻块C的运动矢量,vD表示相邻块D的运动矢量,vE表示相邻块E的运动矢量,vF表示相邻块F的运动矢量,并且vG表示相邻块G的运动矢量。

附加地,相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块,相邻块B可以表示位于当前块的左上样本位置的上方的相邻块,并且相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块。附加地,相邻块D可以表示位于当前块的右上样本位置的上方的相邻块,并且相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块。并且,相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块,并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

换句话说,参照上式6,CP0的CPMVP候选可以包括相邻块A的运动矢量vA、相邻块B的运动矢量vB和/或相邻块C的运动矢量vC;CP1的CPMVP候选可以包括相邻块D的运动矢量vD和/或相邻块E的运动矢量vE;CP2的CPMVP候选可以包括相邻块F的运动矢量vF和/或相邻块G的运动矢量vG

换句话说,可以基于相对于左上样本位置的相邻块A、B和C的至少一个运动矢量来推导CP0的CPMVPv0。在此,相邻块A可以表示位于当前块的左上样本位置的左上方的块,相邻块B可以表示位于当前块的左上样本位置的上方的块,并且相邻块C可以表示位于当前块的左上样本位置的左侧的块。

基于相邻块的运动矢量,可以推导包括CP0的CPMVP候选、CP1的CPMVP候选和CP2的CPMVP候选在内的最多12个CPMVP候选组合。

之后,将所推导的CPMVP候选组合按DV的升序排列,并且前两个CPMVP候选组合可以被推导为仿射MVP候选。

通过下式来推导CPMVP候选组合的DV。

[式7]

DV=|(v1x-v0x)*h-(v2y-v0y)*w|+|(v1y-v0y)*h+(v2x-v0x)*w|

之后,编码设备可以确定各个仿射MVP候选的CPMV,比较CPMV之间的速率失真(RD)成本,并且选择具有最小RD成本的仿射MVP候选作为当前块的最佳仿射MVP候选。编码设备可以编码并发信号通知指示最佳候选的索引和CPMVD。

另外,例如,如果应用仿射合并模式,则可以如下所述地对当前块进行编码。

图10例示了根据本公开的一个实施方式的用于推导控制点处的运动矢量预测子的方法。

基于图10所示的当前块的相邻块,可以构造当前块的仿射合并候选列表。相邻块可以包括相邻块A、相邻块B、相邻块C、相邻块D和相邻块E。相邻块A可以表示当前块的左相邻块,相邻块B可以表示当前块的上相邻块,相邻块C可以表示当前块的右上角相邻块,相邻块D可以表示当前块的左下角相邻块,相邻块E可以表示当前块的左上角相邻块。

例如,当当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,左相邻块可以是包括在坐标(-1,H-1)处的样本的块,上相邻块可以是包括在坐标(W-1,-1)处的样本的块,右上角相邻块可以是包括在坐标(W,-1)处的样本的块,左下角相邻块可以是包括在坐标(-1,H)处的样本的块,并且左上角相邻块可以是包括在坐标(-1,-1)处的样本的块。

更具体地,例如,编码设备可以按照特定扫描顺序扫描当前块的相邻块A、相邻块B、相邻块C、相邻块D和相邻块E;将根据扫描顺序在仿射预测模式下首先编码的相邻块确定为仿射合并模式的候选块,即,仿射合并候选。换句话说,可以按照相邻块A、相邻块B、相邻块C、相邻块D和相邻块E的顺序来执行特定扫描顺序。

之后,编码设备可以通过使用所确定的候选块的CPMV来确定当前块的仿射运动模型,基于仿射运动模型来确定当前块的CPMV,并基于CPMV来确定当前块的仿射MVF。

作为一个示例,如果将相邻块A确定为当前块的候选块,则可以如下所述地执行编码。

图11例示了当选择相邻块A作为仿射合并候选时执行的仿射预测的一个示例。

参照图11,编码设备可以将当前块的相邻块A确定为候选块,并基于相邻块的CPMV(v2和v3)来推导当前块的仿射运动模型。之后,编码设备可以基于仿射运动模型来确定当前块的CPMV(v0和v1)。编码设备可以基于当前块的CPMV(v0和v1)确定仿射MVF,并且基于仿射MVF执行用于对当前块进行编码的处理。

此外,与仿射帧间预测有关,作为构造仿射MVP候选列表的手段,正在考虑继承的仿射候选和构造的仿射候选。

在此,继承的仿射候选可以描述如下。

例如,如果当前块的相邻块是仿射块,并且当前块的参考图片与相邻块的参考图片相同,则可以从相邻块的仿射运动模型确定当前块的仿射MVP对。在此,仿射块可以表示已经应用了仿射帧间预测的块。继承的仿射候选可以表示基于相邻块的仿射运动模型所推导的CPMVP(例如,仿射MVP对)。

更具体地,作为一个示例,可以如下所述地推导继承的仿射候选。

图12例示了用于推导继承的仿射候选的相邻块。

参照图12,当前块的相邻块可以包括当前块的左相邻块A0、当前块的左下角相邻块A1、当前块的上相邻块B0、当前块的右上角相邻块B1和当前块的左上角相邻块B2。

例如,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,左相邻块可以是包括在坐标(-1,H-1)处的样本的块,上相邻块可以是包括在坐标(W-1,-1)处的样本的块,右上角相邻块可以是包括在坐标(W,-1)处的样本的块,左下角相邻块可以是包括在坐标(-1,H)处的样本的块,并且左上角相邻块可以是包括在坐标(-1,-1)处的样本的块。

编码/解码设备可以依次检查相邻块A0、A1、B0、B1和B2,并且如果相邻块是根据仿射运动模型而编码的,并且当前块的参考图片与相邻块的参考图片相同,则可以基于相邻块的仿射运动模型来推导当前块的两个CPMV或三个CPMV。可以将CPMV推导为当前块的仿射MVP候选。仿射MVP候选可以表示继承的仿射候选。

作为一个示例,可以基于相邻块推导最多两个继承的仿射候选。

例如,编码/解码设备可以基于相邻块当中的第一块来推导当前块的第一仿射MVP候选。在此,第一块可以是根据仿射运动模型而编码的,并且第一块的参考图片可以与当前块的参考图片相同。换句话说,第一块可以是从根据特定顺序检查相邻块首先被确认为满足条件的块。该条件可以是根据仿射运动模型而编码的,并且该块的参考图片可以与当前块的参考图片相同。

之后,编码/解码设备可以基于相邻块当中的第二块来推导第二仿射MVP候选。在此,第二块可以是根据仿射运动模型而编码的,并且第二块的参考图片可以与当前块的参考图片相同。换句话说,第二块可以是从根据特定顺序检查相邻块第二个被确认为满足条件的块。该条件可以是根据仿射运动模型而编码的,并且该块的参考图片可以与当前块的参考图片相同。

此外,例如,当可用的继承的仿射候选的数目小于2时(即,当推导出的继承的仿射候选的数目小于2时),可以考虑构造的仿射候选。可以如下推导构造的仿射候选。

图13例示了构造的仿射候选的空间候选。

如图13所示,当前块的相邻块的运动矢量可以划分为三个组。参照图13,相邻块可以包括相邻块A、相邻块B、相邻块C、相邻块D、相邻块E、相邻块F和相邻块G。

相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块;相邻块B可以表示位于当前块的左上样本位置的上方的相邻块;并且相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块。另外,相邻块D可以表示位于当前块的右上样本位置的上方的相邻块,并且相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块。另外,相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块;并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

例如,三个组可以包括S0、S1、和S2,其中,可以如下表所示地推导S0、S1、和S2

[表1]

在此,mvA表示相邻块A的运动矢量,mvB表示相邻块B的运动矢量,mvC表示相邻块C的运动矢量,mvD表示相邻块D的运动矢量,mvE表示相邻块E的运动矢量,mvF表示相邻块F的运动矢量,并且mvG表示相邻块G的运动矢量。S0可以指示第一组,S1可以指示第二组,并且S2可以指示第三组。

编码/解码设备可以从S0推导mv0,从S1推导mv1,从S2推导mv2,以及推导包括mv0、mv1和mv2的仿射MVP候选。仿射MVP候选可以指示构造的仿射候选。另外,mv0可以是CP0的CPMVP候选,mv1可以是CP1的CPMVP候选,并且mv2可以是CP2的CPMVP候选。

在此,mv0的参考图片可以与当前块的参考图片相同。换句话说,mv0可以是从检查S0内的运动矢量而首先被确认为满足条件的运动矢量。该条件可以使得运动矢量的参考图片与当前块的参考图片相同。特定顺序可以使得按照相邻块A、相邻块B和相邻块C的顺序来检查S0内的运动矢量。此外,检查顺序可以与上述不同地执行,并且可以不限于以上示例。

此外,mv1的参考图片可以与当前块的参考图片相同。换句话说,mv1可以是从检查S1内的运动矢量而首先被确认为满足条件的运动矢量。该条件可以使得运动矢量的参考图片与当前块的参考图片相同。特定顺序可以使得以相邻块D和相邻块E的顺序检查S1内的运动矢量。另外,检查顺序可以与上述不同地执行,并且可以不限于以上示例。

此外,mv2的参考图片可以与当前块的参考图片相同。换句话说,mv2可以是从检查S2内的运动矢量而首先被确认为满足条件的运动矢量。该条件可以使得运动矢量的参考图片与当前块的参考图片相同。特定顺序可以使得以相邻块F和相邻块G的顺序检查S2内的运动矢量。另外,检查顺序可以与上述不同地执行,并且可以不限于以上示例。

此外,仅当mv0和mv1可用时,即,仅当推导出mv0和mv1时,可以通过下式推导mv2

[式8]

在此,表示mv2的x分量,表示mv2的y分量,表示mv0的x分量,表示mv0的y分量,表示mv1的x分量,并且表示mv1的y分量。另外,w表示当前块的宽度,并且h表示当前块的高度。

此外,当仅推导出mv0和mv2时,可以通过下式推导mv1

[式9]

在此,表示mv1的x分量,表示mv1的y分量,表示mv0的x分量,表示mv0的y分量,表示mv2的x分量,并且表示mv2的y分量。另外,w表示当前块的宽度,并且h表示当前块的高度。

此外,当可用的继承的仿射候选的数目和/或构造的仿射候选的数目小于2时,可以应用现有HEVC标准的AMVP处理以构造仿射MVP列表。换句话说,当可用的继承的仿射候选的数目和/或构造的仿射候选的数目小于2时,可以执行用于构造在现有HEVC标准中指定的MVP候选的处理。

此外,用于构造仿射MVP列表的实施方式的流程图可以描述如下。

图14例示了构造仿射MVP列表的一个示例。

参照图14,在S1400,编码/解码设备可以将继承的候选添加到当前块的仿射MVP列表。继承的候选可以表示上述继承的仿射候选。

更具体地,在S1405,编码/解码设备可以从当前块的相邻块推导最多两个继承的仿射候选。在此,相邻块可以包括当前块的左相邻块A0、当前块的左下角相邻块A1、当前块的上相邻块B0、当前块的右上角相邻块B1以及当前块的左上角相邻块B2。

例如,编码/解码设备可以基于相邻块当中的第一块来推导当前块的第一仿射MVP候选。在此,第一块可以是根据仿射运动模型而编码的,并且第一块的参考图片可以与当前块的参考图片相同。换句话说,第一块可以是从根据特定顺序检查相邻块而首先被确认为满足条件的块。条件可以是根据仿射运动模型而编码的,并且该块的参考图片可以与当前块的参考图片相同。

之后,编码/解码设备可以基于相邻块当中的第二块来推导第二仿射MVP候选。在此,第二块可以是根据仿射运动模型而编码的,并且第二块的参考图片可以与当前块的参考图片相同。换句话说,第二块可以是从根据特定顺序检查相邻块而第二个被确认为满足条件的块。条件可以是根据仿射运动模型而编码的,并且该块的参考图片可以与当前块的参考图片相同。

此外,特定顺序可以使得以左相邻块A0、左下角相邻块A1、上相邻块B0、右上角相邻块B1和左上角相邻块B2的顺序检查相邻块。另外,检查顺序可以与上述不同地执行,并且可以不限于以上示例。

在S1410,编码/解码设备可以将构造的候选添加到当前块的仿射MVP列表。构造的候选可以表示以上构造的仿射候选。构造的候选也可以称为构造的仿射MVP候选。如果可用的继承候选的数目小于2,则编码/解码设备可以将构造的候选添加到当前块的仿射MVP列表。例如,编码/解码设备可以推导一个构造的仿射候选。

此外,用于推导构造的仿射候选的方法可以依据应用于当前块的仿射运动模型是六参数仿射运动模型还是四参数仿射运动模型而有所不同。稍后将提供关于如何推导构造的候选的详细描述。

在S1420,编码/解码设备可以将HEVC AMVP候选添加到当前块的仿射MVP列表。如果可用的继承候选的数目和/或构造候选的数目小于2,则编码/解码设备可以将HEVC AMVP候选添加到当前块的仿射MVP列表。换句话说,当可用的继承候选的数目和/或构造候选的数目小于2时,编码/解码设备可以执行用于构造现有HEVC标准中指定的MVP候选的处理。

此外,可以如下执行用于推导构造的候选的方法。

例如,如果应用于当前块的仿射运动模型是六参数仿射运动模型,则可以如图15的实施方式中所示地推导构造的候选。

图15例示了推导构造候选的一个示例。

参照图15,在S1500,编码/解码设备可以针对当前块检查mv0、mv1和mv2。换句话说,编码/解码设备可以确定mv0、mv1和mv2在当前块的相邻块当中是否可用。在此,mv0可以表示当前块的CP0的CPMVP候选,mv1可以表示当前块的CP1的CPMVP候选,并且mv2可以表示当前块的CP2的CPMVP候选。另外,mv0、mv1、和mv2可以表示各个CP的候选运动矢量。

例如,编码/解码设备可以根据特定顺序检查第一组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv0。换句话说,mv0可以是从根据特定顺序检查第一组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第一组内的相邻块的运动矢量不满足特定条件,则可用mv0可以不存在。在此,例如,可以按照第一组中的相邻块A、相邻块B和相邻块C的顺序来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,例如,编码/解码设备可以根据特定顺序检查第二组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv1。换句话说,mv1可以是从根据特定顺序检查第二组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第二组内的相邻块的运动矢量不满足特定条件,则可用mv1可以不存在。在此,例如,可以从第二组中的相邻块D到相邻块E来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,例如,编码/解码设备可以根据特定顺序检查第三组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认满足条件的相邻块的运动矢量推导为mv2。换句话说,mv2可以是从根据特定顺序检查第三组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第三组内的相邻块的运动矢量不满足特定条件,则可用mv2可以不存在。在此,例如,可以从第三组内的相邻块F到相邻块G来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

此外,第一组可以包括相邻块A的运动矢量、相邻块B的运动矢量和相邻块C的运动矢量;第二组可以包括相邻块D的运动矢量以及相邻块E的运动矢量;并且第三组可以包括相邻块F的运动矢量和相邻块G的运动矢量。相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块;相邻块B可以表示位于当前块的左上样本位置的上方的相邻块;相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块;相邻块D可以表示位于当前块的右上样本位置的上方的相邻块;相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块;相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块;并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

当仅mv0和mv1对于当前块可用时,即,当仅推导出当前块的mv0和mv1时,编码/解码设备在S1510可以基于上式8推导当前块的mv2。编码/解码设备可以通过将推导的mv0和mv1插入上式8中来推导mv2

当仅mv0和mv2对于当前块可用时,即,当仅推导出当前块的mv0和mv2时,编码/解码设备在S1520可以基于上式9推导当前块的mv1。编码/解码设备可以通过将推导的mv0和mv2插入上式9中来推导mv1

在S1530,编码/解码设备可以提供推导的mv0、mv1和mv2作为当前块的构造的候选。当mv0、mv1和mv2可用时,即,当基于当前块的相邻块推导出mv0、mv1和mv2时,编码/解码设备可以提供推导的mv0、mv1和mv2作为当前块的构造的候选。

另外,当仅mv0和mv1对于当前块可用时,即,当仅推导出当前块的mv0和mv1时,编码/解码设备可以提供推导的mv0、mv1以及基于上式8推导出的mv2作为当前块的构造的候选。

另外,当仅mv0和mv2对于当前块可用时,即,当仅推导出当前块的mv0和mv2时,编码/解码设备可以提供推导的mv0、mv2以及基于上式9推导出的mv1作为当前块的构造的候选。

另外,例如,如果应用于当前块的仿射运动模型是四参数仿射运动模型,则可以如图15的实施方式中所示地推导构造的候选。

图16例示了推导构造的候选的一个示例。

参照图16,在S1600,编码/解码设备可以检查mv0、mv1和mv2。换句话说,编码/解码设备可以确定mv0、mv1和mv2在当前块的相邻块当中是否可用。在此,mv0可以表示当前块的CP0的CPMVP候选,mv1可以表示当前块的CP1的CPMVP候选,并且mv2可以表示当前块的CP2的CPMVP候选。

例如,编码/解码设备可以根据特定顺序检查第一组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv0。换句话说,mv0可以是从根据特定顺序检查第一组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第一组内的相邻块的运动矢量不满足特定条件,则可用mv0可以不存在。在此,例如,可以按照第一组内的相邻块A、相邻块B和相邻块C的顺序来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,例如,编码/解码设备可以根据特定顺序检查第二组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认满足条件的相邻块的运动矢量推导为mv1。换句话说,mv1可以是从根据特定顺序检查第二组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第二组内的相邻块的运动矢量不满足特定条件,则可用mv1可以不存在。在此,例如,可以从第二组内的相邻块D到相邻块E来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,例如,编码/解码设备可以根据特定顺序检查第三组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv2。换句话说,mv2可以是从根据特定顺序检查第三组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第三组内的相邻块的运动矢量不满足特定条件,则可用mv2可以不存在。在此,例如,可以从第三组内的相邻块F到相邻块G来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

此外,第一组可以包括相邻块A的运动矢量、相邻块B的运动矢量和相邻块C的运动矢量;第二组可以包括相邻块D的运动矢量以及相邻块E的运动矢量;并且第三组可以包括相邻块F的运动矢量和相邻块G的运动矢量。相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块;相邻块B可以表示位于当前块的左上样本位置的上方的相邻块;相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块;相邻块D可以表示位于当前块的右上样本位置的上方的相邻块;相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块;相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块;并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

当仅mv0和mv1对于当前块可用时,或当mv0、mv1和mv2对于当前块可用时,即,当针对当前块仅推导出了mv0和mv1时,或当针对当前块推导出了mv0、mv1和mv2时,在S1610,编码/解码设备可以提供推导出的mv0和mv1作为当前块的构造的候选。

此外,当仅mv0和mv2对于当前块可用时,即,当针对当前块仅推导出了mv0和mv2时,在S1620,编码/解码设备可以基于上式9推导当前块的mv1。编码/解码设备可以通过将推导的mv0和mv2插入上式9中来推导mv1

之后,在S1610,编码/解码设备可以提供推导的mv0和mv1作为当前块的构造的候选。

此外,将提出根据本公开的用于推导继承的仿射候选的另一实施方式。在推导继承的仿射候选时,提出的实施方式可以降低计算复杂度,从而提高编码性能。

图17例示了为了推导继承的仿射候选而扫描的相邻块的位置。

编码/解码设备可以从当前块的相邻块推导最多两个继承的仿射候选。图17例示了继承的仿射候选的相邻块。例如,相邻块可以包括图17所示的相邻块A和相邻块B。相邻块A可以表示左相邻块A0,并且相邻块B可以表示上相邻块B0。

例如,编码/解码设备可以以特定顺序检查相邻块的可用性,并且可以基于首先被确认为可用的相邻块来推导当前块的继承的仿射候选。换句话说,编码/解码设备可以以特定顺序检查相邻块,以查看相邻块是否满足特定条件,并基于首先被确认为可用的相邻块来推导当前块的继承的仿射候选。另外,编码/解码设备可以基于第二个被确认为满足特定条件的相邻块来推导当前块的继承的仿射候选。换句话说,编码/解码设备可以基于第二个被确认为满足特定条件的相邻块来推导当前块的继承的仿射候选。在此,可用性可以意味着块是基于仿射运动模型而编码的,并且该块的参考图片与当前块的参考图片相同。换句话说,特定条件可以指示块是基于仿射运动模型而编码的,并且该块的参考图片与当前块的参考图片相同。另外,例如,可以从相邻块A到相邻块B来执行特定顺序。此外,可以在两个继承的仿射候选(即,所推导的继承的仿射候选)之间不执行修剪检查处理。修剪检查处理可以表示检查候选是否彼此相同并且如果发现候选相同则去除之后推导出的候选的处理。

以上实施方式提出了一种用于检查仅两个相邻块(即,相邻块A和相邻块B)并推导继承的仿射候选,而不是检查全部现有相邻块(即,相邻块A、相邻块B、相邻块C、相邻块D和相邻块E)并推导继承的仿射候选的方法。在此,相邻块C可以表示右上角相邻块B1,相邻块D可以表示左下角相邻块A1,并且相邻块E表示左上角相邻块B2。

当仿射预测被应用于每个相邻块以分析相邻块和当前块之间的空间相关性时,可以利用将仿射预测应用于当前块的概率。当将仿射预测应用于每个相邻块时,可以如下表所示地推导将仿射预测应用于当前块的概率。

[表2]

参考块 A B C D E
概率 65% 41% 5% 3% 1%

参照上表2,可以发现对于相邻块当中的相邻块A和相邻块B,与当前块的空间相关性高。因此,通过仅使用展现出高空间相关性的相邻块A和相邻块B来推导继承的仿射候选的实施方式,可以减少处理时间,并且可以实现高解码性能。

此外,可以执行修剪检查处理以防止在候选列表中存在相同的候选。由于修剪检查处理可以去除冗余,因此就编码效率而言可以获得有益效果,但是同时,计算复杂度可以由于修剪检查处理而增加。具体地,由于必须考虑仿射类型(例如,仿射运动模型是四参数仿射运动模型还是六参数仿射运动模型)、参考图片(或者参考图片索引)以及CP0、CP1和CP2的MV,来执行针对仿射候选的修剪检查处理,因此计算复杂度非常高。因此,本实施方式提出了一种在基于相邻块A推导出的继承的仿射候选(例如,inherited_A)和基于相邻块B推导出的继承的仿射候选(例如,inherited_B)之间不执行修剪检查处理的方法。在相邻块A和B的情况下,它们彼此相距远,因此显示出低空间相关性。因此,inherited_A和inherited_B相同的概率低。因此,可以期望在继承的仿射候选之间不执行修剪检查处理。

另外,基于上述理由,可以提出一种用于尽可能少地执行修剪检查处理的方法。例如,编码/解码设备可以以仅将继承的仿射候选中CP0的MV彼此比较的方式来执行修剪检查处理。

另外,本公开提出了一种用于推导与通过以上实施方式获得的构造候选不同的构造候选的方法。与以上用于推导构造候选的实施方式相比,所提出的实施方式可以通过降低复杂度来提高编码性能。所提出的实施方式可以描述如下。另外,当可用的继承仿射候选的数目小于2时(即,当推导出的继承仿射候选的数目小于2时),可以考虑构造的仿射候选。

例如,编码/解码设备可以针对当前块检查mv0、mv1和mv2。换句话说,编码/解码设备可以确定mv0、mv1和mv2在当前块的相邻块当中是否可用。在此,mv0可以表示当前块的CP0的CPMVP候选,mv1可以表示当前块的CP1的CPMVP候选,并且mv2可以表示当前块的CP2的CPMVP候选。

具体地,当前块的相邻块可以划分为三个组,并且相邻块可以包括相邻块A、相邻块B、相邻块C、相邻块D、相邻块E、相邻块F和相邻块G。第一组可以包括相邻块A的运动矢量、相邻块B的运动矢量和相邻块C的运动矢量;第二组可以包括相邻块D的运动矢量和相邻块E的运动矢量;并且第三组可以包括相邻块F的运动矢量和相邻块G的运动矢量。相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块;相邻块B可以表示位于当前块的左上样本位置的上方的相邻块;相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块;相邻块D可以表示位于当前块的右上样本位置的上方的相邻块;相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块;相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块;并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

编码/解码设备可以确定第一组内mv0的可用性,确定第二组内mv1的可用性和确定第三组内mv2的可用性。

更具体地,例如,编码/解码设备可以根据特定顺序检查第一组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv0。换句话说,mv0可以是从根据特定顺序检查第一组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第一组内的相邻块的运动矢量不满足特定条件,则可用mv0可以不存在。在此,例如,可以按照第一组内的相邻块A、相邻块B和相邻块C的顺序来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,编码/解码设备可以根据特定顺序检查第二组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv1。换句话说,mv1可以是从根据特定顺序检查第二组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第二组内的相邻块的运动矢量不满足特定条件,则可用mv1可以不存在。在此,例如,可以从第二组内的相邻块D到相邻块E来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,编码/解码设备可以根据特定顺序检查第三组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv2。换句话说,mv2可以是从根据特定顺序检查第三组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第三组内的相邻块的运动矢量不满足特定条件,则可用mv2可以不存在。在此,例如,可以从第三组内的相邻块F到相邻块G来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

然后,如果应用于当前块的仿射运动模型是4参数仿射运动模型,并且当前块的mv0和mv1可用,则编码/解码设备可以提供推导出的mv0和mv1作为当前块的构造的候选。此外,如果当前块的mv0和/或mv1不可用,即,如果从当前块的相邻块没有推导出mv0和mv1中的至少一个,则编码/解码设备可以不向当前块的仿射MVP列表添加构造的候选。

此外,如果应用于当前块的仿射运动模型是6参数仿射运动模型,并且当前块的mv0、mv1和mv2可用,则编码/解码设备可以提供推导的mv0、mv1和mv2作为当前块的构造候选。此外,如果当前块的mv0、mv1和/或mv2不可用,即,如果从当前块的相邻块没有推导出mv0、mv1和mv2中的至少一个,则编码/解码设备可以不向当前块的仿射MVP列表添加构造的候选。

所提出的实施方式描述了一种仅当全部运动矢量可用时才考虑将用于生成当前块的仿射运动模型的CP的运动矢量作为构造的候选的方法。在此,可用性可以意味着相邻块的参考图片与当前块的参考图片相同。换句话说,仅当当前块的各个CP的相邻块的运动矢量当中存在满足条件的运动矢量时,才可以推导构造的候选。因此,如果应用于当前块的仿射运动模型是4参数仿射运动模型,则仅当当前块的CP0和CP1的运动矢量(即,mv0和mv1)可用时,才可以考虑构造的候选。另外,如果应用于当前块的仿射运动模型是6参数仿射运动模型,则仅当当前块的CP0、CP1和CP2的运动矢量(即,mv0、mv1和mv2)可用时,才可以考虑构造的候选。因此,根据所提出的实施方式,可能不需要用于基于式8或式9推导CP的运动矢量的附加构造。通过提出的实施方式,可以降低用于推导构造的候选的计算复杂度。另外,由于仅当具有相同参考图片的CPMVP候选可用时才确定构造的候选,因此可以提高整体编码性能。

此外,在推导的继承的仿射候选和构造的仿射候选之间可以不执行修剪检查处理。修剪检查处理可以表示检查候选是否彼此相同并且如果发现候选相同则去除之后推导出的候选的处理。

上述实施方式可以如图18和图19所示。

图18例示了当将四参数仿射运动模型应用于当前块时推导构造的候选的一个示例。

参照图18,在S1800,编码/解码设备可以确定当前块的mv0和mv1是否可用。换句话说,编码/解码设备可以确定在当前块的相邻块中是否存在可用mv0和mv1。在此,mv0可以是当前块的CP0的CPMVP候选,并且mv1可以是CP1的CPMVP候选。

编码/解码设备可以确定mv0在第一组中是否可用以及mv1在第二组中是否可用。

具体地,当前块的相邻块可以划分为三个组,并且相邻块可以包括相邻块A、相邻块B、相邻块C、相邻块D、相邻块E、相邻块F和相邻块G。第一组可以包括相邻块A的运动矢量、相邻块B的运动矢量和相邻块C的运动矢量;第二组可以包括相邻块D的运动矢量和相邻块E的运动矢量;并且第三组可以包括相邻块F的运动矢量和相邻块G的运动矢量。相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块;相邻块B可以表示位于当前块的左上样本位置的上方的相邻块;相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块;相邻块D可以表示位于当前块的右上样本位置的上方的相邻块;相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块;相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块;并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

编码/解码设备可以根据特定顺序检查第一组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv0。换句话说,mv0可以是从根据特定顺序检查第一组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第一组内的相邻块的运动矢量不满足特定条件,则可用mv0可以不存在。在此,例如,可以按照第一组内的相邻块A、相邻块B和相邻块C的顺序来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,编码/解码设备可以根据特定顺序检查第二组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认满足条件的相邻块的运动矢量推导为mv1。换句话说,mv1可以是从根据特定顺序检查第二组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第二组内的相邻块的运动矢量不满足特定条件,则可用mv1可以不存在。在此,例如,可以从第二组内的相邻块D到相邻块E来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

如果当前块的mv0和mv1可用,即,如果推导出当前块的mv0和mv1,则在S1810,编码/解码设备可以提供推导出的mv0和mv1作为当前块的构造的候选。此外,如果当前块的mv0和mv1不可用,即,如果从当前块的相邻块没有推导出mv0和mv1中的至少一个,则编码/解码设备可以不向当前块的仿射MVP列表添加构造的候选。

此外,在推导的继承的仿射候选和构造的仿射候选之间可以不执行修剪检查处理。修剪检查处理可以表示检查候选是否彼此相同并且如果发现候选相同则去除之后推导出的候选的处理。

图19例示了当六参数仿射运动模型应用于当前块时推导构造的候选的一个示例。

参照图19,在S1900,编码/解码设备可以确定当前块的相邻块当中mv0、mv1和mv2是否可用。换句话说,编码/解码设备可以确定在当前块的相邻块中是否存在可用mv0、mv1和mv2。在此,mv0可以表示当前块的CP0的CPMVP候选,mv1可以表示当前块的CP1的CPMVP候选,并且mv2可以表示当前块的CP2的CPMVP候选。

编码/解码设备可以确定mv0在第一组中是否可用,mv1在第二组中是否可用以及mv2在第三组中是否可用。

具体地,当前块的相邻块可以划分为三个组,并且相邻块可以包括相邻块A、相邻块B、相邻块C、相邻块D、相邻块E、相邻块F和相邻块G。第一组可以包括相邻块A的运动矢量、相邻块B的运动矢量和相邻块C的运动矢量;第二组可以包括相邻块D的运动矢量和相邻块E的运动矢量;并且第三组可以包括相邻块F的运动矢量和相邻块G的运动矢量。相邻块A可以表示位于当前块的左上样本位置的左上方的相邻块;相邻块B可以表示位于当前块的左上样本位置的上方的相邻块;相邻块C可以表示位于当前块的左上样本位置的左侧的相邻块;相邻块D可以表示位于当前块的右上样本位置的上方的相邻块;相邻块E可以表示位于当前块的右上样本位置的右上方的相邻块;相邻块F可以表示位于当前块的左下样本位置的左侧的相邻块;并且相邻块G可以表示位于当前块的左下样本位置的左下方的相邻块。

编码/解码设备可以根据特定顺序检查第一组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv0。换句话说,mv0可以是从根据特定顺序检查第一组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第一组内的相邻块的运动矢量不满足特定条件,则可用mv0可以不存在。在此,例如,可以按照第一组内的相邻块A、相邻块B和相邻块C的顺序来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,编码/解码设备可以根据特定顺序检查第二组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv1。换句话说,mv1可以是从根据特定顺序检查第二组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第二组内的相邻块的运动矢量不满足特定条件,则可用mv1可以不存在。在此,例如,可以从第二组内的相邻块D到相邻块E来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

另外,编码/解码设备可以根据特定顺序检查第三组内的相邻块的运动矢量是否满足特定条件。编码/解码设备可以将在检查处理期间首先被确认为满足条件的相邻块的运动矢量推导为mv2。换句话说,mv2可以是从根据特定顺序检查第三组内的运动矢量而首先被确认为满足特定条件的运动矢量。如果第三组内的相邻块的运动矢量不满足特定条件,则可用mv2可以不存在。在此,例如,可以从第三组内的相邻块F到相邻块G来执行特定顺序。另外,例如,特定条件可以使得相邻块的运动矢量的参考图片与当前块的参考图片相同。

如果当前块的mv0、mv1和mv2可用,即,如果推导出了当前块的mv0、mv1和mv2,则在S1910,编码/解码设备可以提供推导的mv0、mv1和mv2作为当前块的构造的候选。此外,如果当前块的mv0、mv1和/或mv2不可用,即,如果从当前块的相邻块没有推导出mv0、mv1和mv2中的至少一个,则编码/解码设备可以不向当前块的仿射MVP列表添加构造的候选。

此外,在推导的继承的仿射候选和构造的仿射候选之间可以不执行修剪检查处理。

此外,当推导出的仿射候选的数目小于2时(即,当继承的仿射候选的数目和/或构造的仿射候选的数目小于2时),可以向当前块的仿射MVP列表添加HEVC AMVP候选。

例如,可以按以下顺序推导HEVC AMVP候选。

更具体地,当推导出的仿射候选的数目小于2,并且构造的仿射候选的CPMV0可用时,CPMV0可以用作仿射MVP候选。换句话说,当推导出的仿射候选的数目小于2并且构造的仿射候选的CPMV0可用(即,当推导出的仿射候选的数目小于2,并且推导出了构造的仿射候选的CPMV0时),构造的仿射候选的CPMV0可以推导为包括CPMV0、CPMV1和CPMV2的第一仿射MVP候选。

另外,接下来,当推导的仿射候选的数目小于2,并且构造的仿射候选的CPMV1可用时,CPMV1可以用作仿射MVP候选。换句话说,当推导的仿射候选的数目小于2,并且构造的仿射候选的CPMV1可用时(即,当推导的仿射候选的数目小于2,并且推导出了构造的仿射候选的CPMV1时),构造的仿射候选的CPMV1可以推导为包括CPMV0、CPMV1和CPMV2的第二仿射MVP候选。

另外,接下来,当推导的仿射候选的数目小于2,并且构造的仿射候选的CPMV2可用时,CPMV2可以用作仿射MVP候选。换句话说,当推导的仿射候选的数目小于2,并且构造的仿射候选的CPMV2可用时(即,当推导的仿射候选的数目小于2,并且推导出了构造的仿射候选的CPMV2时),构造的仿射候选的CPMV2可以推导为包括CPMV0、CPMV1和CPMV2的第三仿射MVP候选。

另外,接下来,当推导的仿射候选的数目小于2时,HEVC时间运动矢量预测子(TMVP)可以用作仿射MVP候选。可以基于当前块的时间相邻块的运动信息来推导HEVCTMVP。换句话说,当推导的仿射候选的数目小于2时,当前块的时间相邻块的运动矢量可以推导为包括CPMV0、CPMV1和CPMV2的第三仿射MVP候选。时间相邻块可以指示在与当前块相对应的并置图片内的并置块。

另外,接下来,当推导的仿射候选的数目小于2时,零运动矢量(MV)可以用作仿射MVP候选。换句话说,当推导的仿射候选的数目小于2时,零运动矢量可以被推导为包括CPMV0、CPMV1和CPMV2的第三仿射MVP候选。零运动矢量可以表示其元素全为零的运动矢量。

使用构造的仿射候选的CPMV的处理步骤重新使用已经考虑的生成构造的仿射候选的MV,从而与用于推导HEVC AMVP候选的现有方法相比,降低了处理复杂度。

此外,本公开提出了用于推导继承的仿射候选的另一实施方式。

为了推导继承的仿射候选,需要相邻块的仿射预测信息,并且更具体地说,需要以下仿射预测信息:

1)仿射标志(affine_flag),其指示是否已经向相邻块应用了基于仿射预测的编码,以及

2)相邻块的运动信息。

如果对相邻块应用了四参数仿射运动模型,则相邻块的运动信息可以包括针对CP0的L0运动信息和L1运动信息,以及针对CP1的L0运动信息和L1运动信息。另外,如果对相邻块应用了六参数仿射运动模型,则相邻块的运动信息可以包括针对CP0的L0运动信息和L1运动信息,以及针对CP2的L0运动信息和L1运动信息。在此,L0运动信息可以表示针对列表0(L0)的运动信息,并且L1运动信息可以表示针对列表1(L1)的运动信息。L0运动信息可以包括L0参考图片索引和L0运动矢量,并且L1运动信息可以包括L1参考图片索引和L1运动矢量。

如上所述,在仿射预测的情况下,必须存储大量信息,这可能是在编码/解码设备的实际实现中硬件成本增加的主要原因。具体地,如果相邻块位于当前块上方并且属于CTU边界,则需要使用行缓冲器来存储与相邻块的仿射预测有关的信息,这可以进一步增加实现成本。在下文中,该问题可以称为行缓冲器问题。就这一点而言,本公开提出了一种用于推导继承的仿射候选的实施方式,该实施方式通过在行缓冲器中不存储仿射预测有关信息或通过在行缓冲器中减少仿射预测有关信息,使硬件成本最小化。所提出的实施方式可以通过减少推导继承的仿射候选中的计算复杂度,提高编码性能。此外,应当注意,行缓冲器已经存储了关于4×4尺寸的块的运动信息,并且如果附加存储了仿射预测有关信息,则存储的信息量可以增加为现有存储量的三倍。

在本实施方式中,可以不在行缓冲器中存储关于仿射预测的附加信息,并且当必须利用行缓冲器内的信息来生成继承的仿射候选时,可以限制继承的仿射候选的生成。

图20a和图20b例示了用于推导继承的仿射候选的实施方式。

参照图20a,在当前块的相邻块B(即,当前块上方的相邻块)与当前块不属于相同的CTU时,相邻块B可以不用于生成继承的仿射候选。此外,尽管相邻块A也与当前块不属于相同的CTU,但是关于相邻块A的信息没有存储在行缓冲器中,因此相邻块A可以用于生成继承的仿射候选。因此,根据本实施方式,仅在当前块上方的相邻块与当前块属于相同的CTU时,相邻块才可以用于推导继承的仿射候选。另外,在当前块上方的相邻块与当前块不属于相同的CTU时,上相邻块可以不用于推导继承的仿射候选。

参照图20b,当前块的相邻块B(即,当前块上方的相邻块)可以与当前块属于相同的CTU。在这种情况下,编码/解码设备可以通过参考相邻块B来生成继承的仿射候选。

图21例示了根据本公开的由编码设备执行的视频编码方法。图21中公开的方法可以由图2中公开的编码设备来执行。更具体地,例如,可以由编码设备的预测器执行S2100至S2120步骤,由编码设备的减法器执行S2130步骤,并且由编码设备的熵编码器执行S2140步骤。另外,尽管在图中未示出,但是可以由编码设备的预测器执行用于基于CPMV推导当前块的预测样本的处理,可以由编码设备的减法器执行用于基于当前块的原始样本和预测样本来推导当前块的残差样本的处理,可以由编码设备的变换器执行用于基于残差样本生成关于当前块的残差的信息的处理,以及可以由编码设备的编码器执行用于对关于残差的信息进行编码的处理。

在S2100,编码设备构造当前块的仿射运动矢量预测子(MVP)候选列表。编码设备可以构造当前块的包括仿射MVP候选的仿射MVP候选列表。仿射MVP候选列表中的仿射MVP候选的最大数目可以是2。

另外,作为一个示例,仿射MVP候选列表可以包括继承的仿射MVP候选。编码设备可以检查当前块的继承的仿射MVP候选是否可用,并且如果继承的仿射MVP候选可用,则可以推导继承的仿射MVP候选。例如,可以基于当前块的相邻块来推导继承的仿射MVP候选,并且继承的仿射MVP候选的最大数目可以为2。可以以特定顺序检查相邻块的可用性,并且可以基于检查出的可用相邻块来推导继承的仿射MVP候选。换句话说,可以以特定顺序检查相邻块的可用性,可以基于首先检查出的可用相邻块来推导第一继承的仿射MVP候选,并且可以基于第二个检查出的可用相邻块来推导第二继承的仿射MVP候选。可用性可以意味着相邻块是基于仿射运动模型而编码的,并且该相邻块的参考图片与当前块的参考图片相同。换句话说,可用相邻块可以是指根据仿射运动模型而编码(即,被应用了仿射预测的相邻块)并且其参考图片与当前块的参考图片相同的相邻块。更具体地,编码设备可以基于首先检查出的可用相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第一继承的仿射MVP候选推导为CPMVP候选。另外,编码设备可以基于第二个检查出的可用相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第二继承的仿射MVP候选推导为CPMVP候选。可以按照上式1或上式3来推导仿射运动模型。

另外,换句话说,可以以特定顺序检查相邻块以查看相邻块是否满足特定条件,并且可以基于满足检查的特定条件的相邻块来推导继承的仿射MVP候选。换句话说,可以以特定顺序检查相邻块以查看相邻块是否满足特定条件,可以基于首先检查出满足特定条件的相邻块来推导第一继承的仿射MVP候选,以及可以基于第二个检查出满足特定条件的相邻块来推导第二继承的仿射MVP候选。更具体地,编码设备可以基于首先检查出满足特定条件的相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第一继承的仿射MVP候选推导为CPMVP候选。另外,编码设备可以基于第二个检查出满足特定条件的相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第二继承的仿射MVP候选推导为CPMVP候选。可以按照上式1或上式3来推导仿射运动模型。此外,特定条件可以指示相邻块是根据仿射运动模型而编码的,并且该相邻块的参考图片与当前块的参考图片相同。换句话说,满足特定条件的相邻块可以是根据仿射运动模型而编码的(即,仿射预测应用于相邻块),并且参考图片与当前块的参考图片相同。

在此,例如,相邻块可以包括当前块的左相邻块、上相邻块、右上角相邻块、左下角相邻块和左上角相邻块。在这种情况下,特定顺序可以是从左相邻块到左下角相邻块到上相邻块到右上角相邻块到左上角相邻块的顺序。

或者,例如,相邻块可以仅包括左相邻块和上相邻块。在这种情况下,特定顺序可以是从左相邻块到上相邻块的顺序。

或者,例如,相邻块可以包括左相邻块,并且如果上相邻块属于包括当前块的当前CTU,则相邻块可以进一步包括上相邻块。在这种情况下,特定顺序可以是从左相邻块到上相邻块的顺序。另外,如果上相邻块不属于当前CTU,则相邻块可以不包括上相邻块。在这种情况下,可以仅检查左相邻块。

此外,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,左下角相邻块可以是包括在坐标(-1,H)处的样本的块,左相邻块可以是包括在坐标(-1,H-1)处的样本的块,右上角相邻块可以是包括在坐标(W,-1)处的样本的块,上相邻块可以是包括在坐标(W-1,-1)处的样本的块,左上角相邻块可以是包括在坐标(-1,-1)处的样本的块。换句话说,左相邻块可以是当前块的左相邻块当中在最低位置处的左相邻块,并且上相邻块可以是当前块的上相邻块当中在最左位置处的上相邻块。

另外,作为一个示例,如果构造的仿射MVP候选可用,则仿射MVP候选列表可以包括构造的仿射MVP候选。编码设备可以检查当前块的构造的仿射MVP候选是否可用,并且如果构造的仿射MVP候选可用,则可以推导构造的仿射MVP候选。另外,例如,在推导出继承的仿射MVP候选之后,可以推导构造的仿射MVP候选。如果推导的仿射MVP候选的数目(即,继承的仿射MVP的数目)小于2,并且构造的仿射MVP候选可用,则仿射MVP候选列表可以包括构造的仿射MVP候选。在此,构造的仿射MVP候选可以包括CP的候选运动矢量。当全部候选运动矢量可用时,构造的仿射MVP候选可以是可用的。

例如,如果四参数仿射运动模型被应用于当前块,则当前块的CP可以包括CP0和CP1。如果CP0的候选运动矢量可用,并且CP1的候选运动矢量可用,则构造的仿射MVP候选可以是可用的,并且仿射MVP候选列表可以包括构造的仿射MVP候选。在此,CP0可以表示当前块的左上位置,而CP1可以表示当前块的右上位置。

构造的仿射MVP候选可以包括CP0的候选运动矢量和CP1的候选运动矢量。CP0的候选运动矢量可以是第一块的运动矢量,并且CP1的候选运动矢量可以是第二块的运动矢量。

另外,第一块可以是在以第一特定顺序检查第一组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。换句话说,CP1的候选运动矢量可以是通过根据第一顺序检查第一组内的相邻块而首先被确认的其参考图片与当前块的参考图片相同的块的运动矢量。可用性可以指示存在相邻块,并且相邻块是通过帧间预测而编码的。在此,如果第一组内的第一块的参考图片与当前块的参考图片相同,则CP0的候选运动矢量可以是可用的。另外,例如,第一组可以包括相邻块A、相邻块B和相邻块C,并且第一特定顺序可以是从相邻块A到相邻块B,然后到相邻块C的顺序。

另外,第二块可以是在以第二特定顺序检查第二组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第二组内的第二块的参考图片与当前块的参考图片相同,则CP1的候选运动矢量可以是可用的。另外,例如,第二组可以包括相邻块D和相邻块E,并且第二特定顺序可以是从相邻块D到相邻块E的顺序。

此外,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,相邻块A可以是包括在坐标(-1,-1)处的样本的块,相邻块B可以是包括在坐标(0,-1)处的样本的块,相邻块C可以是包括在坐标(-1,0)处的样本的块,相邻块D可以是包括在坐标(W-1,-1)处的样本的块,并且相邻块E可以是包括在坐标(W,-1)处的样本的块。换句话说,相邻块A可以是当前块的左上角相邻块,相邻块B可以是当前块的上相邻块当中在最左位置处的上相邻块,相邻块C可以是当前块的左相邻块当中在最高位置处的左相邻块,相邻块D可以是当前块的上相邻块当中在最右位置处的上相邻块,并且相邻块E可以是当前块的右上角相邻块。

此外,如果CP0的候选运动矢量和CP1的候选运动矢量中的至少一个不可用,则构造的仿射MVP候选可能是不可用的。

或者,例如,如果六参数仿射运动模型被应用于当前块,则当前块的CP可以包括CP0、CP1和CP2。如果CP0的候选运动矢量可用,CP1的候选运动矢量可用,以及CP2的候选运动矢量可用,则构造的仿射MVP候选可以是可用的,并且仿射MVP候选列表可以包括构造的仿射MVP候选。在此,CP0可以表示当前块的左上位置,CP1可以表示当前块的右上位置,并且CP2可以表示当前块的左下位置。

构造的仿射MVP候选可以包括CP0的候选运动矢量、CP1的候选运动矢量以及CP2的候选运动矢量。CP0的候选运动矢量可以是第一块的运动矢量,CP1的候选运动矢量可以是第二块的运动矢量,并且CP2的候选运动矢量可以是第三块的运动矢量。

另外,第一块可以是在以第一特定顺序检查第一组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第一组内的第一块的参考图片与当前块的参考图片相同,则CP0的候选运动矢量可以是可用的。另外,例如,第一组可以包括相邻块A、相邻块B和相邻块C,并且第一特定顺序可以是从相邻块A到相邻块B,然后到相邻块C的顺序。

另外,第二块可以是在以第二特定顺序检查第二组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第二组内的第二块的参考图片与当前块的参考图片相同,则CP1的候选运动矢量可以是可用的。另外,例如,第二组可以包括相邻块D和相邻块E,并且第二特定顺序可以是从相邻块D到相邻块E的顺序。

另外,第三块可以是在以第三特定顺序检查第三组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第三组内的第三块的参考图片与当前块的参考图片相同,则CP2的候选运动矢量可以是可用的。另外,例如,第三组可以包括相邻块F和相邻块G,并且第三特定顺序可以是从相邻块F到相邻块G的顺序。

此外,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,相邻块A可以是包括在坐标(-1,-1)处的样本的块,相邻块B可以是包括在坐标(0,-1)处的样本的块,相邻块C可以是包括在坐标(-1,0)处的样本的块,相邻块D可以是包括在坐标(W-1,-1)处的样本的块,相邻块E可以是包括在坐标(W,-1)处的样本的块,相邻块F可以是包括在坐标(-1,H-1)处的样本的块,并且相邻块G可以是包括在坐标(-1,H)处的样本的块。换句话说,相邻块A可以是当前块的左上角相邻块,相邻块B可以是当前块的上相邻块当中在最左位置处的上相邻块,相邻块C可以是当前块的左相邻块当中在最高位置处的左相邻块,相邻块D可以是当前块的上相邻块当中在最右位置处的上相邻块,相邻块E可以是当前块的右上角相邻块,相邻块F可以是当前块的左相邻块当中在最低位置处的左相邻块,并且相邻块G可以是当前块的左下角相邻块。

此外,如果CP0的候选运动矢量、CP1的候选运动矢量和CP2的候选运动矢量中的至少一个不可用,则构造的仿射MVP候选可以是不可用的。

之后,可以基于下面描述的步骤来推导仿射MVP候选列表。

例如,当推导的仿射MVP候选的数目小于2并且CP0的运动矢量可用时,编码设备可以推导第一仿射MVP候选。在此,第一仿射MVP候选可以是包括作为CP的候选运动矢量的CP0的运动矢量的仿射MVP候选。

另外,例如,当推导的仿射MVP候选的数目小于2并且CP1的运动矢量可用时,编码设备可以推导第二仿射MVP候选。在此,第二仿射MVP候选可以是包括作为CP的候选运动矢量的CP1的运动矢量的仿射MVP候选。

另外,例如,当推导的仿射MVP候选的数目小于2并且CP2的运动矢量可用时,编码设备可以推导第三仿射MVP候选。在此,第三仿射MVP候选可以是包括作为CP的候选运动矢量的CP2的运动矢量的仿射MVP候选。

另外,例如,当推导的仿射MVP候选的数目小于2时,编码设备可以推导第四仿射MVP候选,该第四仿射MVP候选包括作为CP的候选运动矢量的、基于当前块的时间相邻块推导的时间MVP。时间相邻块可以是指与当前块相对应的相同并置图片内的相同并置块。可以基于时间相邻块的运动矢量来推导时间MVP。

另外,例如,当推导的仿射MVP候选的数目小于2时,编码设备可以推导第五仿射MVP候选,该第五仿射MVP候选包括作为CP的候选运动矢量的零运动矢量。零运动矢量可以表示其元素全为零的运动矢量。

在S2110,编码设备基于仿射MVP候选列表,推导当前块的控制点(CP)的控制点运动矢量预测子(CPMVP)。编码设备可以推导展现出最佳RD成本的当前块的CP的CPMV,并且可以选择仿射MVP候选当中的与CPMV最相似的仿射MVP候选作为当前块的仿射MVP候选。编码设备可以基于在仿射MVP候选当中所选择的仿射MVP候选,来推导当前块的CP的CPMVP。更具体地,如果仿射MVP候选包括CP0的候选运动矢量和CP1的候选运动矢量,则仿射MVP候选的CP0的候选运动矢量可以被推导为CP0的CPMVP,并且仿射MVP候选的CP1的候选运动矢量可以被推导为CP1的CPMVP。另外,如果仿射MVP候选包括CP0的候选运动矢量、CP1的候选运动矢量和CP2的候选运动矢量,则仿射MVP候选的CP0的候选运动矢量可以被推导为CP0的CPMVP,仿射MVP候选的CP1的候选运动矢量可以被推导为CP1的CPMVP,并且仿射MVP候选的CP2的候选运动矢量可以被推导为CP2的CPMVP。另外,如果仿射MVP候选包括CP0的候选运动矢量和CP2的候选运动矢量,则仿射MVP候选的CP0的候选运动矢量可以被推导为CP0的CPMVP,并且仿射MVP候选的CP2的候选运动矢量可以被推导为CP2的CPMVP。

编码设备可以对指示仿射MVP候选当中的被选仿射MVP候选的仿射MVP候选索引进行编码。仿射MVP候选索引可以指示当前块的仿射运动矢量预测子(MVP)候选列表中所包括的仿射MVP候选当中的一个仿射MVP候选。

在S2120,编码设备推导当前块的CP的CPMV。编码设备可以推导当前块的各个CP的CPMV。

在S2130,编码设备基于CPMVP和CPMV,推导当前块的CP的控制点运动矢量差(CPMVD)。编码设备可以基于各个CP的CPMVP和CPMV来推导当前块的CP的CPMVD。

在S2140,编码设备对包括关于CPMVD的信息的运动预测信息进行编码。编码设备可以以比特流的形式输出包括关于CPMVD的信息的运动预测信息。换句话说,编码设备可以以比特流的形式输出包括运动预测信息的图像信息。编码设备可以对关于各个CP的CPMVD的信息进行编码,其中运动预测信息可以包括关于CPMVD的信息。

另外,运动预测可以包括仿射MVP候选索引。仿射MVP候选索引可以指示在当前块的仿射运动矢量预测子(MVP)候选列表中所包括的仿射MVP候选当中的被选仿射MVP候选。

此外,作为一个示例,编码设备可以基于CPMV推导当前块的预测样本,基于当前块的原始样本和预测样本推导当前块的残差样本,基于残差样本生成关于当前块的残差的信息,并对关于残差的信息进行编码。图像信息可以包括关于残差的信息。

此外,比特流可以通过网络或(数字)存储介质被发送到解码设备。在此,网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括各种类型的存储介质,包括USB、SD、CD、DVD、蓝光、HDD和SSD。

图22例示了根据本公开的执行视频编码方法的编码设备。图21中公开的方法可以由图22中公开的编码设备来执行。更具体地说,例如,编码设备的预测器可以执行图21的S2100至S2130的步骤,并且图22的编码设备的熵编码器可以执行图21的S2140步骤。另外,尽管图中未示出,但是用于基于CPMV推导当前块的预测样本的处理可以由图22的编码设备的预测器执行,用于基于当前块的原始样本和预测样本来推导当前块的残差样本的处理可以由图22的编码设备的减法器执行,用于基于残差样本生成关于当前块的残差的信息的处理可以由编码设备的变换器执行,以及用于对关于残差的信息进行编码的处理可以由图22的编码设备的熵编码器执行。

图23例示了根据本公开的由解码设备执行的视频解码方法。图23中公开的方法可以由图3中公开的解码设备执行。更具体地,例如,可以由解码设备的熵解码器执行图23的S2300步骤,可以由解码设备的预测器执行S2310至S2350步骤,并且可以由解码设备的加法器执行S2360步骤。另外,尽管图中未示出,但是可以由解码设备的熵解码器执行用于通过比特流获得关于当前块的残差的信息的处理,以及可以由解码设备的逆变换器执行用于基于残差信息推导当前块的残差样本的处理。

在S2300,解码设备从比特流获取当前块的运动预测信息。解码设备可以从比特流获得包括运动预测信息的图像信息。

另外,例如,运动预测信息可以包括关于当前块的控制点(CP)的控制点运动矢量差(CPMVD)的信息。换句话说,运动预测信息可以包括关于当前块的各个CP的CPMVD的信息。

另外,例如,运动预测信息可以包括当前块的仿射运动矢量预测子(MVP)候选索引。仿射MVP候选索引可以指示当前块的仿射MVP候选列表中所包括的仿射MVP候选之一。

在S2310,解码设备构造当前块的仿射MVP候选列表。解码设备可以构造当前块的包括仿射MVP候选的仿射MVP候选列表。仿射MVP候选列表中的仿射MVP候选的最大数目可以为2。

此外,作为一个示例,仿射MVP候选列表可以包括继承的仿射MVP候选。解码设备可以检查当前块的继承的仿射MVP候选是否可用,并且如果继承的仿射MVP候选可用,则可以推导继承的仿射MVP候选。例如,可以基于当前块的相邻块来推导继承的仿射MVP候选,并且继承的仿射MVP候选的最大数目可以为2。可以以特定顺序检查相邻块的可用性,并且可以基于检查出的可用相邻块来推导继承的仿射MVP候选。换句话说,可以以特定顺序检查相邻块的可用性,可以基于首先检查出的可用相邻块来推导第一继承的仿射MVP候选,并且可以基于第二个检查出的可用相邻块来推导第二继承的仿射MVP候选。可用性可以意味着相邻块是基于仿射运动模型而编码的,并且该相邻块的参考图片与当前块的参考图片相同。换句话说,可用相邻块可以是指根据仿射运动模型而编码(即,被应用了仿射预测的相邻块)并且其参考图片与当前块的参考图片相同的相邻块。更具体地,解码设备可以基于首先检查出的可用相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第一继承的仿射MVP候选推导为CPMVP候选。另外,解码设备可以基于第二个检查出的可用相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第二继承的仿射MVP候选推导为CPMVP候选。可以按照上式1或上式3来推导仿射运动模型。

另外,换句话说,可以以特定顺序检查相邻块以查看相邻块是否满足特定条件,并且可以基于满足检查的特定条件的相邻块来推导继承的仿射MVP候选。换句话说,可以以特定顺序检查相邻块以查看相邻块是否满足特定条件,可以基于首先检查出满足特定条件的相邻块来推导第一继承的仿射MVP候选,以及可以基于第二个检查出满足特定条件的相邻块来推导第二继承的仿射MVP候选。更具体地,解码设备可以基于首先检查出满足特定条件的相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第一继承的仿射MVP候选推导为CPMVP候选。另外,解码设备可以基于第二个检查出满足特定条件的相邻块的仿射运动模型来推导当前块的CP的运动矢量,并且将包括该运动矢量的第二继承的仿射MVP候选推导为CPMVP候选。可以按照上式1或上式3来推导仿射运动模型。此外,特定条件可以指示相邻块是根据仿射运动模型而编码的,并且该相邻块的参考图片与当前块的参考图片相同。换句话说,满足特定条件的相邻块可以是根据仿射运动模型而编码的(即,仿射预测被应用于相邻块)并且参考图片与当前块的参考图片相同。

在此,例如,相邻块可以包括当前块的左相邻块、上相邻块、右上角相邻块、左下角相邻块和左上角相邻块。在这种情况下,特定顺序可以是从左相邻块到左下角相邻块到上相邻块到右上角相邻块到左上角相邻块的顺序。

或者,例如,相邻块可以仅包括左相邻块和上相邻块。在这种情况下,特定顺序可以是从左相邻块到上相邻块的顺序。

或者,例如,相邻块可以包括左相邻块,并且如果上相邻块属于包括当前块的当前CTU,则相邻块可以进一步包括上相邻块。在这种情况下,特定顺序可以是从左相邻块到上相邻块的顺序。另外,如果上相邻块不属于当前CTU,则相邻块可以不包括上相邻块。在这种情况下,可以仅检查左相邻块。换句话说,如果当前块的上相邻块属于包括当前块的当前编码树单元(CTU),则上相邻块可以用于推导继承的仿射MVP候选,并且如果当前块的上相邻块不属于当前CTU,则上相邻块可以不用于推导继承的仿射MVP候选。

此外,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,左下角相邻块可以是包括在坐标(-1,H)处的样本的块,左相邻块可以是包括在坐标(-1,H-1)处的样本的块,右上角相邻块可以是包括在坐标(W,-1)处的样本的块,上相邻块可以是包括在坐标(W-1,-1)处的样本的块,左上角相邻块可以是包括在坐标(-1,-1)处的样本的块。换句话说,左相邻块可以是当前块的左相邻块当中在最低位置处的左相邻块,并且上相邻块可以是当前块的上相邻块当中在最左位置处的上相邻块。

另外,作为一个示例,如果构造的仿射MVP候选可用,则仿射MVP候选列表可以包括构造的仿射MVP候选。解码设备可以检查当前块的构造的仿射MVP候选是否可用,并且如果构造的仿射MVP候选可用,则可以推导构造的仿射MVP候选。另外,例如,在推导出继承的仿射MVP候选之后,可以推导构造的仿射MVP候选。如果推导的仿射MVP候选的数目(即,继承的仿射MVP的数目)小于2,并且构造的仿射MVP候选可用,则仿射MVP候选列表可以包括构造的仿射MVP候选。在此,构造的仿射MVP候选可以包括CP的候选运动矢量。当全部候选运动矢量可用时,构造的仿射MVP候选可以是可用的。

例如,如果四参数仿射运动模型被应用于当前块,则当前块的CP可以包括CP0和CP1。如果CP0的候选运动矢量可用,并且CP1的候选运动矢量可用,则构造的仿射MVP候选可以是可用的,并且仿射MVP候选列表可以包括构造的仿射MVP候选。在此,CP0可以表示当前块的左上位置,而CP1可以表示当前块的右上位置。

构造的仿射MVP候选可以包括CP0的候选运动矢量和CP1的候选运动矢量。CP0的候选运动矢量可以是第一块的运动矢量,并且CP1的候选运动矢量可以是第二块的运动矢量。

另外,第一块可以是在以第一特定顺序检查第一组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。换句话说,CP1的候选运动矢量可以是通过根据第一顺序检查第一组内的相邻块而首先被确认的其参考图片与当前块的参考图片相同的块的运动矢量。可用性可以指示存在相邻块,并且相邻块是通过帧间预测而编码的。在此,如果第一组内的第一块的参考图片与当前块的参考图片相同,则CP0的候选运动矢量可以是可用的。另外,例如,第一组可以包括相邻块A、相邻块B和相邻块C,并且第一特定顺序可以是从相邻块A到相邻块B,然后到相邻块C的顺序。

另外,第二块可以是在以第二特定顺序检查第二组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第二组内的第二块的参考图片与当前块的参考图片相同,则CP1的候选运动矢量可以是可用的。另外,例如,第二组可以包括相邻块D和相邻块E,并且第二特定顺序可以是从相邻块D到相邻块E的顺序。

此外,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,相邻块A可以是包括在坐标(-1,-1)处的样本的块,相邻块B可以是包括在坐标(0,-1)处的样本的块,相邻块C可以是包括在坐标(-1,0)处的样本的块,相邻块D可以是包括在坐标(W-1,-1)处的样本的块,并且相邻块E可以是包括在坐标(W,-1)处的样本的块。换句话说,相邻块A可以是当前块的左上角相邻块,相邻块B可以是当前块的上相邻块当中在最左位置处的上相邻块,相邻块C可以是当前块的左相邻块当中在最高位置处的左相邻块,相邻块D可以是当前块的上相邻块当中在最右位置处的上相邻块,并且相邻块E可以是当前块的右上角相邻块。

此外,如果CP0的候选运动矢量和CP1的候选运动矢量中的至少一个不可用,则构造的仿射MVP候选可能是不可用的。

或者,例如,如果六参数仿射运动模型被应用于当前块,则当前块的CP可以包括CP0、CP1和CP2。如果CP0的候选运动矢量可用,CP1的候选运动矢量可用,以及CP2的候选运动矢量可用,则构造的仿射MVP候选可以是可用的,并且仿射MVP候选列表可以包括构造的仿射MVP候选。在此,CP0可以表示当前块的左上位置,CP1可以表示当前块的右上位置,并且CP2可以表示当前块的左下位置。

构造的仿射MVP候选可以包括CP0的候选运动矢量、CP1的候选运动矢量以及CP2的候选运动矢量。CP0的候选运动矢量可以是第一块的运动矢量,CP1的候选运动矢量可以是第二块的运动矢量,并且CP2的候选运动矢量可以是第三块的运动矢量。

另外,第一块可以是在以第一特定顺序检查第一组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第一组内的第一块的参考图片与当前块的参考图片相同,则CP0的候选运动矢量可以是可用的。另外,例如,第一组可以包括相邻块A、相邻块B和相邻块C,并且第一特定顺序可以是从相邻块A到相邻块B,然后到相邻块C的顺序。

另外,第二块可以是在以第二特定顺序检查第二组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第二组内的第二块的参考图片与当前块的参考图片相同,则CP1的候选运动矢量可以是可用的。另外,例如,第二组可以包括相邻块D和相邻块E,并且第二特定顺序可以是从相邻块D到相邻块E的顺序。

另外,第三块可以是在以第三特定顺序检查第三组中的相邻块的同时已经首先确认为其参考图片与当前块的参考图片相同的块。在此,如果第三组内的第三块的参考图片与当前块的参考图片相同,则CP2的候选运动矢量可以是可用的。另外,例如,第三组可以包括相邻块F和相邻块G,并且第三特定顺序可以是从相邻块F到相邻块G的顺序。

此外,在当前块的尺寸为W×H,当前块的左上样本位置的x分量为0,并且其y分量为0时,相邻块A可以是包括在坐标(-1,-1)处的样本的块,相邻块B可以是包括在坐标(0,-1)处的样本的块,相邻块C可以是包括在坐标(-1,0)处的样本的块,相邻块D可以是包括在坐标(W-1,-1)处的样本的块,相邻块E可以是包括在坐标(W,-1)处的样本的块,相邻块F可以是包括在坐标(-1,H-1)处的样本的块,并且相邻块G可以是包括在坐标(-1,H)处的样本的块。换句话说,相邻块A可以是当前块的左上角相邻块,相邻块B可以是当前块的上相邻块当中在最左位置处的上相邻块,相邻块C可以是当前块的左相邻块当中在最高位置处的左相邻块,相邻块D可以是当前块的上相邻块当中在最右位置处的上相邻块,相邻块E可以是当前块的右上角相邻块,相邻块F可以是当前块的左相邻块当中在最低位置处的左相邻块,并且相邻块G可以是当前块的左下角相邻块。

此外,如果CP0的候选运动矢量、CP1的候选运动矢量和CP2的候选运动矢量中的至少一个不可用,则构造的仿射MVP候选可以是不可用的。

此外,在继承的仿射MVP候选和构造的仿射MVP候选之间可以不执行修剪检查处理。修剪检查处理可以表示检查构造的仿射MVP候选是否与继承的仿射MVP候选相同,如果发现它们相同则不推导构造的仿射MVP候选的处理。

之后,可以基于下面描述的步骤来推导仿射MVP候选列表。

例如,当推导的仿射MVP候选的数目小于2并且CP0的运动矢量可用时,解码设备可以推导第一仿射MVP候选。在此,第一仿射MVP候选可以是包括作为CP的候选运动矢量的CP0的运动矢量的仿射MVP候选。

另外,例如,当推导的仿射MVP候选的数目小于2并且CP1的运动矢量可用时,解码设备可以推导第二仿射MVP候选。在此,第二仿射MVP候选可以是包括作为CP的候选运动矢量的CP1的运动矢量的仿射MVP候选。

另外,例如,当推导的仿射MVP候选的数目小于2并且CP2的运动矢量可用时,解码设备可以推导第三仿射MVP候选。在此,第三仿射MVP候选可以是包括作为CP的候选运动矢量的CP2的运动矢量的仿射MVP候选。

另外,例如,当推导的仿射MVP候选的数目小于2时,解码设备可以推导第四仿射MVP候选,该第四仿射MVP候选包括作为CP的候选运动矢量的、基于当前块的时间相邻块推导的时间MVP。时间相邻块可以是指与当前块相对应的相同并置图片内的相同并置块。可以基于时间相邻块的运动矢量来推导时间MVP。

另外,例如,当推导的仿射MVP候选的数目小于2时,解码设备可以推导第五仿射MVP候选,该第五仿射MVP候选包括作为CP的候选运动矢量的零运动矢量。零运动矢量可以表示其元素全为零的运动矢量。

在S2320,解码设备基于仿射MVP候选列表,推导当前块的控制点(CP)的控制点运动矢量预测子(CPMVP)。

解码设备可以在仿射MVP候选列表中所包括的仿射MVP候选当中选择特定的仿射MVP候选,并且将被选仿射MVP候选推导为当前块的CP的CPMVP。例如,解码设备可以从比特流获得当前块的仿射MVP候选索引,并且在仿射MVP候选列表中所包括的仿射MVP候选当中,将由仿射MVP候选索引指示的仿射MVP候选推导为当前块的CP的CPMVP。更具体地,如果仿射MVP候选包括CP0的候选运动矢量和CP1的候选运动矢量,则仿射MVP候选的CP0的候选运动矢量可以被推导为CP0的CPMVP,并且仿射MVP候选的CP1的候选运动矢量可以被推导为CP1的CPMVP。另外,如果仿射MVP候选包括CP0的候选运动矢量、CP1的候选运动矢量和CP2的候选运动矢量,则仿射MVP候选的CP0的候选运动矢量可以被推导为CP0的CPMVP,仿射MVP候选的CP1的候选运动矢量可以被推导为CP1的CPMVP,并且仿射MVP候选的CP2的候选运动矢量可以被推导为CP2的CPMVP。另外,如果仿射MVP候选包括CP0的候选运动矢量和CP2的候选运动矢量,则仿射MVP候选的CP0的候选运动矢量可以被推导为CP0的CPMVP,并且仿射MVP候选的CP2的候选运动矢量可以被推导为CP2的CPMVP。

在S2330,解码设备基于运动预测信息来推导当前块的CP的控制点运动矢量差(CPMVD)。运动预测信息可以包括关于每个CP的CPMVD的信息,并且解码设备可以基于关于每个CP的CPMVD的信息来推导当前块的每个CP的CPMVD。

在S2340,解码设备基于CPMVP和CPMVD,推导当前块的CP的控制点运动矢量(CPMV)。解码设备可以基于每个CP的CPMVP和CPMVD来推导每个CP的CPMV。例如,解码设备可以通过将CP的CPMVP和CPMVD相加来推导每个CP的CPMV。

在S2350,解码设备基于CPMV推导当前块的预测样本。解码设备可以基于CPMV以子块或样本为单位推导当前块的运动矢量。换句话说,解码设备可以基于CPMV来推导当前块的每个子块或每个样本的运动矢量。可以按照上式1或上式3来推导以子块或样本为单位的运动矢量。运动矢量可以称为仿射运动矢量场(MVF)或运动矢量阵列。

解码设备可以基于以子块或样本为单位的运动矢量来推导当前块的预测样本。解码设备可以基于以子块或样本为单位的运动矢量推导参考图片内的参考区域,并基于参考区域内的重构样本来生成当前块的预测样本。

在S2360,解码设备基于推导的预测样本生成当前块的重构图片。解码设备可以基于推导的预测样本来生成当前块的重构图片。根据预测模式,解码设备可以直接将预测样本用作重构样本,或者可以通过将残差样本与预测样本来相加来生成重构样本。在存在当前块的残差样本的情况下,解码设备可以从比特流获得关于当前块的残差的信息。关于残差的信息可以包括残差样本的变换系数。解码设备可以基于残差信息来推导当前块的残差样本(或残差样本阵列)。解码设备可以基于预测样本和残差样本来生成重构样本,并且基于重构样本来推导重构块或重构图片。之后,如上所述,解码设备可以根据需要向重构图片应用诸如去块滤波和/或SAO处理之类的环路滤波处理,以提高主观/客观图像质量。

图24例示了根据本公开的执行视频解码方法的解码设备。图23中公开的方法可以由图24中公开的解码设备执行。更具体地,例如,图24的解码设备的熵解码器可以执行图23的S2300步骤,图24的解码设备的预测器可以执行S2310至S2350步骤,并且图24的解码设备的加法器可以执行图23的S2360步骤。另外,尽管图中未示出,但是用于通过比特流获得包括关于当前块的残差的信息的图像信息的处理可以由图24的解码设备的熵解码器执行,并且用于基于残差信息来推导当前块的残差样本的处理可以由图24的解码设备的逆变换器执行。

根据本公开,可以提高基于仿射运动预测的视频编码的效率。

另外,根据本公开,在推导仿射MVP候选列表中,仅当构造的仿射MVP候选的CP的候选运动矢量全部可用时,才可以添加构造的仿射MVP候选,由此可以降低用于推导构造的仿射MVP候选的处理和用于构造仿射MVP候选列表的处理的复杂度,并且可以提高编码效率。

另外,根据本公开,在推导仿射MVP候选列表中,可以基于通过用于推导构造的仿射MVP候选的处理所推导的CP的候选运动矢量,来推导附加的仿射MVP候选,由此可以降低用于构造仿射MVP候选列表的处理的复杂度,并且可以提高编码效率。

另外,根据本公开,在推导继承的仿射MVP候选中,仅在当前CTU中包括上相邻块时,才可以通过使用上相邻块来推导继承的仿射MVP候选,由此可以减少用于仿射预测的行缓冲器的存储量,并且可以使硬件成本最小化。

在以上实施方式中,尽管基于使用一系列步骤或方框的流程图描述了方法,但是本公开对步骤的具体顺序没有限制,并且一些步骤可以以与其余步骤不同的顺序执行或与其余步骤同时执行。此外,本领域技术人员将理解,流程图中所示的步骤不是排它的,并且可以还包括其它步骤,或者可以在不影响本公开的技术范围的情况下删除流程图中的一个或更多个步骤。

可以在处理器、微处理器、控制器或芯片上实现并执行根据本公开的实施方式。例如,每个图中所示的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实现和执行。在这种情况下,用于实现的信息(例如,关于指令的信息)或算法可以存储在数字存储介质中。

另外,应用本公开的实施方式的解码设备和编码设备可以包括多媒体广播发送和接收设备、移动通信终端、家庭影院视频装置、数字影院视频装置、监视相机、视频通信装置、用于视频通信的实时通信装置、移动流装置、存储介质、便携式摄像机、视频点播(VoD)服务提供装置、顶置(OTT)视频装置、互联网流服务提供装置、3D视频装置、视频电话装置、运输工具终端(例如,车辆终端、飞机终端和轮船终端)和医疗视频装置;并且可以用于处理视频信号或数据信号。例如,OTT视频装置可以包括游戏机、蓝光播放器、连接互联网的电视机、家庭影院系统、智能电话、平板电脑、数字视频记录仪(DVR)等。

另外,应用本公开的实施方式的处理方法可以以计算机执行的程序的形式产生,并且可以存储在计算机可读记录介质中。根据本公开的具有数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括其中存储计算机可读数据的所有类型的存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(BD)、通用串行总线(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置。另外,计算机可读记录介质包括以载波(例如,经由互联网的传输)形式实现的介质。另外,根据编码方法生成的比特流可以存储在计算机可读记录介质中或通过有线/无线通信网络来传输。

另外,本公开的实施方式可以以程序代码的形成实现为计算机程序产品,并且根据本公开的实施方式,程序代码可以由计算机执行。程序代码可以存储在计算机可读载体上。

图25例示了应用了本公开的实施方式的内容流系统结构。

应用本公开的实施方式的内容流系统可以主要包括编码服务器、流服务器、网络服务器、媒体存储器、用户装置和多媒体输入装置。

编码服务器将从诸如智能手机、相机或便携式摄像机之类的多媒体输入装置输入的内容压缩为数字数据,以生成比特流并将比特流发送到流服务器。作为另一示例,如果诸如智能手机、相机或便携式摄像机之类的多媒体输入装置直接生成比特流,则可以省略编码服务器。

可以通过应用了本公开的实施方式的编码方法或用于生成比特流的方法来生成比特流,并且流服务器可以在发送或接收比特流的同时临时存储比特流。

流服务器基于用户请求通过网络服务器向用户装置发送多媒体数据,并且网络服务器扮演通知用户哪些服务可用的角色。如果用户从网络服务器请求所需的服务,则网络服务器向流服务器发送请求,然后流服务器向用户发送多媒体数据。在这种情况下,内容流系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流系统内的装置之间的命令/响应。

流服务器可以从媒体存储器和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平稳的流服务,流服务器可以将比特流存储预定时间段。

用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航终端、触屏PC、平板PC、超级本、可穿戴装置(例如,智能手表、智能眼镜和头戴式显示器(HMD))、数字TV、台式计算机和数字标牌。内容流系统内的每个单独的服务器可以作为分布式服务器来操作,在这种情况下,从每个服务器接收的数据可以以分布式方式来处理。

63页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:现场线性节目播放中的媒体节目的受众定义

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类