首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 视频解码的方法和装置、计算机设备及存储介质

视频解码的方法和装置、计算机设备及存储介质

阅读:431发布:2020-05-12

专利汇可以提供视频解码的方法和装置、计算机设备及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 实施例 提供视频解码的方法和装置、计算机设备及存储介质。在方法中,当仿射 运动补偿 用于 视频编码 序列中的 帧 间预测时,接收指示仿射运动补偿类型的第一指示符;基于接收的第一指示符,确定仿射运动补偿类型,所述仿射运动补偿类型包括4参数仿射运动补偿模型、6参数仿射运动补偿模型或4参数仿射运动补偿模型和6参数仿射运动补偿模型的组合;当仿射运动补偿类型被确定为4参数仿射运动补偿模型和6参数仿射运动补偿模型的组合时,基于接收到的第二指示符,确定使用4参数仿射运动补偿模型和6参数仿射运动补偿模型中的其中一个来生成编码单元预测样本;基于第一和/或第二指示符重建当前 块 的至少一个样本。,下面是视频解码的方法和装置、计算机设备及存储介质专利的具体信息内容。

1.一种视频解码的方法,其特征在于,包括:
当仿射运动补偿用于视频编码序列中的间预测时,接收指示仿射运动补偿类型的第一指示符;
基于接收的所述第一指示符,确定所述仿射运动补偿类型,所述仿射运动补偿类型包括4参数仿射运动补偿模型、6参数仿射运动补偿模型或所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合;
当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合时,基于接收到的第二指示符,确定使用所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型中的其中一个来生成编码单元的预测样本;以及基于所述第一指示符和/或所述第二指示符重建当前的至少一个样本。
2.根据权利要求1所述的方法,其特征在于,进一步包括:
基于接收到的第三指示符确定所述仿射运动补偿是否用于所述视频编码序列中的帧间预测。
3.根据权利要求1所述的方法,其特征在于,所述第一指示符还用于指示所述仿射运动补偿是否用于所述视频编码序列中的帧间预测。
4.根据权利要求1所述的方法,其特征在于,所述第一指示符包括在所述视频编码序列的序列参数集中。
5.根据权利要求1所述的方法,其特征在于,进一步包括:
如果有多个所述第一指示符,则所述多个第一指示符中的每一个与所述视频编码序列中的不同条带、不同图块组或不同图片中的一个相关联。
6.根据权利要求1所述的方法,其特征在于,进一步包括:
当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型时,在生成所述视频编码序列的条带或图块的预测样本期间,或对所述视频编码序列的各个条带或图块组的所有块进行编码期间,仅使用所述4参数仿射运动补偿模型执行仿射运动补偿。
7.根据权利要求1所述的方法,其特征在于,进一步包括:
当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型时,在生成所述视频编码序列的预测样本期间,或对所述视频编码序列进行编码期间,仅使用所述4参数仿射运动补偿模型执行仿射运动补偿。
8.根据权利要求1所述的方法,其特征在于,
当使用基于模型的仿射合并来重建所述当前块的所述至少一个样本,且所述当前块与编码树单元的顶部边界相邻时,位于包括所述当前块的所述编码树单元上方的、所述当前块的一个或多个相邻块中的每一个不用作候选块。
9.根据权利要求8所述的方法,其特征在于,所述当前块的所述一个或多个相邻块的运动信息不存储于运动数据线缓冲器中。
10.一种视频解码的装置,其特征在于,包括:
接收模块,用于当仿射运动补偿用于视频编码序列中的帧间预测时,接收指示仿射运动补偿类型的第一指示符;
第一确定模块,用于基于接收的所述第一指示符,确定所述仿射运动补偿类型,所述仿射运动补偿类型包括4参数仿射运动补偿模型、6参数仿射运动补偿模型或所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的所述组合;
第二确定模块,用于当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合时,基于接收到的第二指示符,确定使用所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型中的其中一个来生成编码单元的预测样本;以及
重建模块,用于基于所述第一指示符和/或所述第二指示符重建当前块的至少一个样本。
11.根据权利要求10所述的装置,其特征在于,所述第一确定模块进一步用于基于所接收的第三指示符确定所述仿射运动补偿是否用于所述视频编码序列中的帧间预测。
12.根据权利要求10所述的装置,其特征在于,所述第一指示符包括在所述视频编码序列的序列参数集中,且所述第一指示符还用于指示所述仿射运动补偿是否用于所述视频编码序列中的帧间预测。
13.根据权利要求10所述的装置,其特征在于,进一步包括:
如果有多个所述第一指示符,则所述多个第一指示符中的每一个与所述视频编码序列中的不同条带、不同图块组或不同图片中的一个相关联。
14.根据权利要求10所述的装置,其特征在于,进一步包括仿射运动补偿模块,用于当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型时,在生成所述视频编码序列的条带或图块的预测样本期间仅使用所述4参数仿射运动补偿模型来执行仿射运动补偿;或
用于当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型时,在生成所述视频编码序列的图片的预测样本期间仅使用所述4参数仿射运动补偿模型执行仿射运动补偿。
15.根据权利要求10所述的装置,其特征在于,
当使用基于模型的仿射合并来重建所述当前块的所述至少一个样本,且所述当前块与编码树单元的顶部边界相邻时,位于包括所述当前块的所述编码树单元上方的、所述当前块的一个或多个相邻块中的每一个不用作候选块。
16.一种计算机设备,其特征在于,所述设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如权利要求1-9任一项所述的视频解码的方法。
17.一种非易失性计算机可读存储介质,其特征在于,其存储指令,当用于视频解码的计算机执行所述指令时,使得所述计算机执行如权利要求1-9任一项所述的视频解码的方法。

说明书全文

视频解码的方法和装置、计算机设备及存储介质

[0001] 通过引用并入本文
[0002] 本申请要求于2018年9月21日提交的、申请号为62/734,992、发明名称为"视频编码中仿射运动补偿和信令的方法"的美国临时申请、以及于2019年5月22日提交的、申请号为16/419,244、发明名称为“视频编码的方法”的美国申请的优先权,其全部内容通过引用并入本申请中。

技术领域

[0003] 本申请涉及视频编解码技术,特别涉及视频解码的方法和装置、计算机设备及存储介质。

背景技术

[0004] 通过具有运动补偿的间图片预测技术,可以进行视频编码和解码。未压缩的数字视频可包括一系列图片,每个图片具有例如1920×1080亮度样本及相关色度样本的空间维度。所述系列图片具有固定的或可变的图片速率(也非正式地称为帧率),例如每秒60个图片或60Hz。未压缩的视频具有非常大的比特率要求。例如,每个样本8比特的1080p60 4:2:0的视频(1920x1080亮度样本分辨率,60Hz帧率)要求接近1.5Gbit/s带宽。一小时这样的视频就需要超过600GB的存储空间。
[0005] 视频编码和解码的一个目的,是通过压缩减少输入视频信号的冗余信息。视频压缩可以帮助降低对上述带宽或存储空间的要求,在某些情况下可降低两个或更多数量级。无损和有损压缩,以及两者的组合均可采用。无损压缩是指从压缩的原始信号中重建原始信号精确副本的技术。当使用有损压缩时,重建信号可能与原始信号不完全相同,但是原始信号和重建信号之间的失真足够小,使得重建信号可用于预期应用。有损压缩广泛应用于视频。容许的失真量取决于应用。例如,相比于电视应用的用户,某些消费流媒体应用的用户可以容忍更高的失真。可实现的压缩比反映出:较高的允许/容许失真可产生较高的压缩比。
[0006] 运动补偿可以是一种有损压缩技术,且可涉及如下技术:来自先前重建的图片或重建图片一部分(参考图片)的样本数据在空间上按运动矢量(下文称为MV)指示的方向移位后,用于新重建的图片或图片部分的预测。在某些情况下,参考图片可与当前正在重建的图片相同。MV可具有两个维度X和Y,或者三个维度,其中第三个维度表示使用中的参考图片(后者间接地可为时间维度)。
[0007] 在一些视频压缩技术中,应用于某个样本数据区域的MV可根据其它MV来预测,例如根据与正在重建的区域空间相邻的另一个样本数据区域相关的、且按解码顺序在该MV前面的那些MV。这样做可以大大减少编码MV所需的数据量,从而消除冗余信息并增加压缩量。MV预测可以有效地进行,例如,当对从相机导出的输入视频信号(称为自然视频)进行编码时,存在一种统计上的可能性,即面积大于单个MV适用区域的区域,会朝着类似的方向移动,因此,在某些情况下,可以用邻近区域的MV导出的相似运动矢量进行预测。这导致针对给定区域发现的MV与根据周围MV预测的MV相似或相同,并且在熵编码之后,又可以用比直接编码MV时使用的比特数更少的比特数来表示。在某些情况下,MV预测可以是对从原始信号(即样本流)导出的信号(即MV)进行无损压缩的示例。在其它情况下,MV预测本身可能是有损的,例如由于根据几个周围MV计算预测值时产生的取整误差。
[0008] H.265/HEVC(ITU-T Rec.H.265,“高效视频编码”,2016年12月)描述了各种MV预测机制。在H.265所提供的多种MV预测机制中,本文描述的是一种下文称为“空间合并”的技术。

发明内容

[0009] 本申请的实施例提供了视频解码的方法和装置、计算机设备及存储介质,旨在解决现有技术中需要针对每个编码单元发信号通知用于指示仿射运动补偿模型的标志和/或指示符,从而导致编码效率低的问题。
[0010] 根据本申请的实施例,提供了一种视频解码的方法。该方法包括:
[0011] 当仿射运动补偿用于视频编码序列中的帧间预测时,接收指示仿射运动补偿类型的第一指示符;
[0012] 基于接收的所述第一指示符,确定所述仿射运动补偿类型,所述仿射运动补偿类型包括4参数仿射运动补偿模型、6参数仿射运动补偿模型或所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合;
[0013] 当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合时,基于接收到的第二指示符,确定使用所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型中的其中一个来生成编码单元的预测样本;以及[0014] 基于所述第一指示符和/或所述第二指示符重建当前块的至少一个样本。
[0015] 根据本申请的实施例,提供了一种视频解码的装置。该装置包括:
[0016] 接收模块,用于当仿射运动补偿用于视频编码序列中的帧间预测时,接收指示仿射运动补偿类型的第一指示符;
[0017] 第一确定模块,用于基于接收的所述第一指示符,确定所述仿射运动补偿类型,所述仿射运动补偿类型包括4参数仿射运动补偿模型、6参数仿射运动补偿模型或所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的所述组合;
[0018] 第二确定模块,用于当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合时,基于接收到的第二指示符,确定使用所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型中的其中一个来生成编码单元的预测样本;以及
[0019] 重建模块,用于基于所述第一指示符和/或所述第二指示符重建当前块的至少一个样本。
[0020] 本申请的实施例还提供了一种计算机设备,所述设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如上所述的视频解码的方法。
[0021] 本申请的实施例还提供了一种非易失性计算机可读存储介质,其存储指令,当所述指令由用于视频解码的计算机执行时,使得所述计算机执行用于视频解码的方法。
[0022] 在本申请的实施例中,通过将4参数或6参数仿射运动补偿模型使用的控制级别设置在不同的级别,例如设置在序列参数集(SPS)级别、图片级别、条带级别和/或块级别,可以提高编码效率。附图说明
[0023] 根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:
[0024] 图1是根据一实施例的当前块及其周围空间合并候选的示意图。
[0025] 图2是根据一实施例的通信系统的简化框图的示意图。
[0026] 图3是根据另一实施例的通信系统的简化框图的示意图。
[0027] 图4是根据一实施例的解码器的简化框图的示意图。
[0028] 图5是根据一实施例的编码器的简化框图的示意图。
[0029] 图6是根据另一实施例的编码器的框图。
[0030] 图7是根据另一实施例的解码器的框图。
[0031] 图8是根据一实施例的空间和时间候选的示意图。
[0032] 图9是根据一实施例的具有仿射模型的块的示意图。
[0033] 图10是根据一实施例的仿射变换的示意图。
[0034] 图11是根据一实施例的当前块以及当前块的两个控制点CP0和CP1的示意图。
[0035] 图12是根据一实施例的仿射模式中的运动矢量预测的示意图。
[0036] 图13是根据另一实施例的仿射模式中的运动矢量预测的示意图。
[0037] 图14A是根据一实施例的用于复合合并模式的候选位置的示意图。
[0038] 图14B是根据另一实施例的用于复合合并模式的候选位置的示意图。
[0039] 图15是根据一实施例的示例性过程的流程图
[0040] 图16是根据一实施例的计算机系统的示意图。

具体实施方式

[0041] 参照图1,当前块(101)包括编码器在运动搜索过程中发现的样本,所述样本可以根据空间移动了相同大小的先前块进行预测。不直接对该MV进行编码,而是通过使用与五个周围样本中的任何一个相关联的MV,从与一个或多个参考图片相关联的元数据中导出该MV,例如从最近的(按解码顺序)参考图片中导出该MV。其中,五个周围样本分别用A0、A1和B0、B1、B2(分别为102到106)表示。在H.265中,MV预测可使用相邻块正在使用的同一参考图片的预测值。
[0042] 图2是根据本申请公开的实施例的通信系统(200)的简化框图。通信系统(200)包括多个终端装置,所述终端装置可通过例如网络(250)彼此通信。举例来说,通信系统(200)包括通过网络(250)互连的第一终端装置(210)和第二终端装置(220)。在图2的实施例中,第一终端装置(210)和第二终端装置(220)执行单向数据传输。举例来说,第一终端装置(210)可对视频数据(例如由终端装置(210)采集的视频图片流)进行编码以通过网络(250)传输到第二端装置(220)。已编码的视频数据以一个或多个已编码视频码流形式传输。第二终端装置(220)可从网络(250)接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。单向数据传输在媒体服务应用等中可能很常见。
[0043] 在另一实施例中,通信系统(200)包括执行已编码视频数据的双向传输的第三终端装置(230)和第四终端装置(240),所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三终端装置(230)和第四终端装置(240)中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络(250)传输到第三终端装置(230)和第四终端装置(240)中的另一终端装置。第三终端装置(230)和第四终端装置(240)中的每个终端装置还可接收由第三终端装置(230)和第四终端装置(240)中的另一终端装置传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
[0044] 在图2的实施例中,第一终端装置(210)、第二终端装置(220)、第三终端装置(230)和第四终端装置(240)可为服务器、个人计算机和智能电话,但本申请公开的原理可不限于此。本申请公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在第一终端装置(210)、第二终端装置(220)、第三终端装置(230)和第四终端装置(240)之间传送已编码视频数据的任何数目的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
[0045] 作为实施例,图3示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
[0046] 流式传输系统可包括采集子系统(313),所述采集子系统可包括数码相机等视频源(301),所述视频源创建未压缩的视频图片流(302)。在实施例中,视频图片流(302)包括由数码相机拍摄的样本。相较于已编码的视频数据(304)(或已编码的视频码流),视频图片流(302)被描绘为粗线以强调高数据量的视频图片流,视频图片流(302)可由电子装置(320)处理,所述电子装置(320)包括耦接到视频源(301)的视频编码器(303)。视频编码器(303)可包括硬件软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流(302),已编码的视频数据(304)(或已编码的视频码流(304))被描绘为细线以强调较低数据量的已编码的视频数据(304)(或已编码的视频码流(304)),其可存储在流式传输服务器(305)上以供将来使用。一个或多个流式传输客户端子系统,例如图3中的客户端子系统(306)和客户端子系统(308),可访问流式传输服务器(305)以检索已编码的视频数据(304)的副本(307)和副本(309)。客户端子系统(306)可包括例如电子装置(330)中的视频解码器(310)。视频解码器(310)对已编码的视频数据的传入副本(307)进行解码,且产生可在显示器(312)(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流(311)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据(304)、视频数据(307)和视频数据(309)(例如视频码流)进行编码。该些标准的实施例包括ITU-T H.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC),本申请可用于VVC标准的上下文中。
[0047] 应注意,电子装置(320)和电子装置(330)可包括其它组件(未示出)。举例来说,电子装置(320)可包括视频解码器(未示出),且电子装置(330)还可包括视频编码器(未示出)。
[0048] 图4是根据本申请公开的实施例的视频解码器(410)的框图。视频解码器(410)可设置在电子装置(430)中。电子装置(430)可包括接收器(431)(例如接收电路)。视频解码器(410)可用于代替图3实施例中的视频解码器(310)。
[0049] 接收器(431)可接收将由视频解码器(410)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道(401)接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器(431)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器(431)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(415)可耦接在接收器(431)与熵解码器/解析器(420)(此后称为“解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其它情况下,所述缓冲存储器(415)可设置在视频解码器(410)外部(未标示)。而在其它情况下,视频解码器(410)的外部设置缓冲存储器(未标示)以例如防止网络抖动,且在视频解码器(410)的内部可配置另一缓冲存储器(415)以例如处理播出定时。而当接收器(431)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(415),或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,也可能需要缓冲存储器(415),所述缓冲存储器可相对较大且可具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(410)外部的类似元件(未标示)中。
[0050] 视频解码器(410)可包括解析器(420)以根据已编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及用以控制显示装置(412)(例如,显示屏)等显示装置的潜在信息,所述显示装置不是电子装置(430)的组成部分,但可耦接到电子装置(430),如图4中所示。用于显示装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(Video Usability Information,VUI)的参数集片段(未标示)。解析器(420)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(420)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、条带、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(420)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
[0051] 解析器(420)可对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。
[0052] 取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(421)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(420)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(420)与下文的多个单元之间的此类子群控制信息流。
[0053] 除已经提及的功能块以外,视频解码器(410)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
[0054] 第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可输出包括样本值的块,所述样本值可输入到聚合器(455)中。
[0055] 在一些情况下,缩放器/逆变换单元(451)的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)采用从当前图片缓冲器(458)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(458)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。
[0056] 在其它情况下,缩放器/逆变换单元(451)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(453)可访问参考图片存储器(457)以提取用于预测的样本。在根据符号(421)对提取的样本进行运动补偿之后,这些样本可由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(453)从参考图片存储器(457)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(421)的形式而供运动补偿预测单元(453)使用,所述符号(421)例如是包括X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(457)提取的样本值的内插、运动矢量预测机制等等。
[0057] 聚合器(455)的输出样本可在环路滤波器单元(456)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
[0058] 环路滤波器单元(456)的输出可以是样本流,所述样本流可输出到显示装置(412)以及存储在参考图片存储器(457),以用于后续的帧间图片预测。
[0059] 一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(420))被识别为参考图片,则当前图片缓冲器(458)可变为参考图片存储器(457)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
[0060] 视频解码器(410)可根据例如ITU-T H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。
在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
[0061] 在实施例中,接收器(431)可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器(410)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余条带、冗余图片、前向纠错码等形式。
[0062] 图5是根据本申请公开的实施例的视频编码器(503)的框图。视频编码器(503)设置于电子装置(520)中。电子装置(520)包括传输器(540)(例如传输电路)。视频编码器(503)可用于代替图3实施例中的视频编码器(303)。
[0063] 视频编码器(503)可从视频源(501)(并非图5实施例中的电子装置(520)的一部分)接收视频样本,所述视频源可采集将由视频编码器(503)编码的视频图像。在另一实施例中,视频源(501)是电子装置(520)的一部分。
[0064] 视频源(501)可提供将由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适取样结构(例如Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(501)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
[0065] 根据实施例,视频编码器(503)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施例中,控制器(550)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(550)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。控制器(550)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。
[0066] 在一些实施例中,视频编码器(503)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(530)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本申请所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。
[0067] “本地”解码器(533)的操作可与例如已在上文结合图4详细描述视频解码器(410)的“远程”解码器相同。然而,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分,可能无法完全在本地解码器(533)中实施。
[0068] 此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本申请侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
[0069] 在操作期间,在一些实施例中,源编码器(530)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(532)对输入图片的像素块与参考图片的像素块之间的差异进行编码,所述参考图片可被选作所述输入图片的预测参考。
[0070] 本地视频解码器(533)可基于源编码器(530)创建的符号,对可指定为参考图片的已编码视频数据进行解码。编码引擎(532)的操作可为有损过程。当已编码视频数据可在视频解码器(图5中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(534)中。以此方式,视频编码器(503)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0071] 预测器(535)可针对编码引擎(532)执行预测搜索。即,对于将要编码的新图片,预测器(535)可在参考图片存储器(534)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(535)获得的搜索结果,可确定输入图片可具有从参考图片存储器(534)中存储的多个参考图片取得的预测参考。
[0072] 控制器(550)可管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0073] 可在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0074] 传输器(540)可缓冲由熵编码器(545)创建的已编码视频序列,从而为通过通信信道(560)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(540)可将来自视频编码器(503)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0075] 控制器(550)可管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
[0076] 帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
[0077] 预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0078] 双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0079] 源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。
[0080] 视频编码器(503)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(503)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0081] 在实施例中,传输器(540)可在传输已编码的视频时传输附加数据。源编码器(530)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和条带等其它形式的冗余数据、SEI消息、VUI参数集片段等。
[0082] 采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
[0083] 在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。
[0084] 此外,合并模式技术可用于帧间图片预测中以改善编码效率。
[0085] 根据本申请公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(coding tree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),所述三个编码树块是一个亮度CTB和两个色度CTB。更进一步的,还可将每个CTU以四叉树拆分为一个或多个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在实施例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将CU拆分为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8×8像素、16×16像素、8×16像素、16×8像素等等。
[0086] 图6是根据本申请公开的另一实施例的视频编码器(603)的图。视频编码器(603)用于接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将所述处理块编码到作为已编码视频序列的一部分的已编码图片中。在本实施例中,视频编码器(603)用于代替图3实施例中的视频编码器(303)。
[0087] 在HEVC实施例中,视频编码器(603)接收用于处理块的样本值的矩阵,所述处理块为例如8×8样本的预测块等。视频编码器(603)使用例如率失真(rate-distortion,RD)优化来确定是否使用帧内模式、帧间模式或双向预测模式来编码所述处理块。当在帧内模式中编码处理块时,视频编码器(603)可使用帧内预测技术以将处理块编码到已编码图片中;且当在帧间模式或双向预测模式中编码处理块时,视频编码器(603)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助预测值外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测值导出运动矢量。在某些其它视频编码技术中,可存在适用于主题块的运动矢量分量。在实施例中,视频编码器(603)包括其它组件,例如用于确定处理块模式的模式决策模块(未示出)。
[0088] 在图6的实施例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。
[0089] 帧间编码器(630)用于接收当前块(例如处理块)的样本、比较所述块与参考图片中的一个或多个参考块(例如先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些实施例中,参考图片是基于已编码的视频信息解码的已解码参考图片。
[0090] 帧内编码器(622)用于接收当前块(例如处理块)的样本、在一些情况下比较所述块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据一个或多个帧内编码技术的帧内预测方向信息)生成帧内预测信息。在实施例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如已预测块)。
[0091] 通用控制器(621)用于确定通用控制数据,且基于所述通用控制数据控制视频编码器(603)的其它组件。在实施例中,通用控制器(621)确定块的模式,且基于所述模式将控制信号提供到开关(626)。举例来说,当所述模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,且控制熵编码器(625)以选择帧内预测信息且将所述帧内预测信息添加在码流中;以及当所述模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,且控制熵编码器(625)以选择帧间预测信息且将所述帧间预测信息添加在码流中。
[0092] 残差计算器(623)用于计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。残差编码器(624)用于基于残差数据操作,以对残差数据进行编码以生成变换系数。在实施例中,残差编码器(624)用于在频域中转换残差数据,且生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)用于执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(622)和帧间编码器(630)使用。举例来说,帧间编码器(630)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(622)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且在一些实施例中,所述已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。
[0093] 熵编码器(625)用于将码流格式化以产生已编码的块。熵编码器(625)根据HEVC标准等合适标准产生各种信息。在实施例中,熵编码器(625)用于获得通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和码流中的其它合适的信息。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。
[0094] 图7是根据本申请公开的另一实施例的视频解码器(710)的图。视频解码器(710)用于接收作为已编码视频序列的一部分的已编码图像,且对所述已编码图像进行解码以生成重建的图片。在实施例中,视频解码器(710)用于代替图3实施例中的视频解码器(310)。
[0095] 在图7实施例中,视频解码器(710)包括如图7中所示耦接到一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。
[0096] 熵解码器(771)可用于根据已编码图片来重建某些符号,这些符号表示构成所述已编码图片的语法元素。此类符号可包括例如用于对所述块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可分别识别供帧内解码器(772)或帧间解码器(780)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在实施例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(772)。残差信息可经由逆量化并提供到残差解码器(773)。
[0097] 帧间解码器(780)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
[0098] 帧内解码器(772)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
[0099] 残差解码器(773)用于执行逆量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(773)还可能需要某些控制信息(用以获得量化器参数QP),且所述信息可由熵解码器(771)提供(未标示数据路径,因为这仅仅是低量控制信息)。
[0100] 重建模块(774)用于在空间域中组合由残差解码器(773)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块可以是重建的图片的一部分,所述重建的图片继而可以是重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量
[0101] 应注意,可使用任何合适的技术来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在实施例中,可使用一个或多个集成电路来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。
[0102] 本申请的实施例提供了仿射运动补偿中的参数推导技术。仿射运动补偿可用于帧间图片预测和帧内块复制模式中。
[0103] 通常,块的运动矢量可以以显式方式进行编码,以便将差值通过信号通知给运动矢量预测器(例如,高级运动矢量预测(AMVP)模式),或者以隐式方式进行编码,以便完全由先前编码的或生成的运动矢量表示。后者称为合并模式,即使用当前块的运动信息将当前块合并到先前编码的块中。
[0104] AMVP模式和合并模式都在解码期间构建候选列表。
[0105] 图8示出了空间和时间候选的示例。对于帧间预测中的合并模式,候选列表中的合并候选主要通过检查当前块的空间或时间相邻块的运动信息来形成。如图8所示,依次检查候选块A1、B1、B0、A0和B2。当任一候选块是有效候选时,则可将有效候选块的运动信息添加到合并候选列表中。执行修剪操作以避免列表中包括重复的候选项。候选块A1、B1、B0、A0和B2与当前块的相邻,称为角候选。
[0106] 在检查空间候选之后,检查时间候选是否包括在列表中。在一些实施例中,可以找到指定参考图片中的当前块的共置块。位于共置块的C0位置(当前块的右下角)处的运动信息可用作时间合并候选。如果在此位置处的块没有以帧间模式编码或不可用,则可以替代地使用C1位置(在共置块的中心的外部右下角)。
[0107] 根据本申请的实施例,仿射运动补偿,例如通过描述用于编码块的6参数(或简化的4参数)仿射模型,可有效地预测当前块内的样本的运动信息。更具体地,在仿射编码或描述的编码块中,样本的不同部分可具有不同的运动矢量。在仿射编码块中具有运动矢量的基本单元被称为子块。子块的大小可以小到只有1个样本;也可以与当前块的大小一样大。
[0108] 当确定仿射模式后,对于当前块中的每个样本,可使用这样的模型(例如,6参数仿射模型或4参数仿射模型)导出其运动矢量(相对于目标参考图片)。为了降低实现复杂度,仿射运动补偿在子块的基础上而非样本的基础上执行。即,每个子块导出其运动矢量,并且对于各个子块中的样本,运动矢量是相同的。假设每个子块的特定位置,例如子块的左上角或中心点,为代表性位置。在一实施例中,这种子块的大小包含4×4个样本。
[0109] 通常,仿射模型具有6个参数以描述块的运动信息。在仿射变换之后,矩形块将变成平行四边形。在一实施例中,仿射编码块的6个参数可由块的三个不同位置处的3个运动矢量表示。
[0110] 图9示出了由来自角A、角B和角C的运动矢量表示的仿射编码块(900)的示例。块(900)在三个角位置A、B和C处使用运动矢量 和 来描述用于块(900)的仿射模型的运动信息。这些位置A、B和C被称为控制点。
[0111] 在简化的示例中,仿射模型使用4个参数来描述块的运动信息。在该示例中,假设块的形状在仿射变换之后不改变。因此,矩形块在变换之后将保持矩形并且具有相同的纵横比(例如,高度/宽度)。这种块的仿射模型可由两个不同位置处的两个运动矢量来表示,例如角位置A和B,如图9所示。
[0112] 图10示出了6参数仿射模式模型和4参数仿射模型之间的比较。当使用仿射运动补偿时,可使用两种信令技术。第一信令技术用于合并模式,第二信令技术用于残差模式或高级运动矢量预测(AMVP)模式。
[0113] 在合并模式中,当前块的仿射信息是从先前仿射编码块中预测的。可以使用各种技术来预测仿射信息。在一实施例中,假设参考块和当前块在同一仿射对象中,使得当前块的控制点处的运动矢量(MV)可以从参考块的模型(例如,参考块的对应点)中导出。此外,以与参考块中从一个控制点到另一个控制点相同的方式,对当前块的其它位置处的MV进行线性修改。在本实施例中使用的技术被称为基于模型的仿射预测。
[0114] 在另一实施例中,相邻块的运动矢量被直接用作当前块的控制点处的运动矢量。然后,使用来自控制点的信息生成块的其余部分处的运动矢量。在本实施例中使用的技术被称为基于控制点的仿射预测。
[0115] 无论在基于模型的仿射预测还是基于控制点的仿射预测中,都不用信号通知当前块的MV的残差分量。MV的残差分量假设为零。
[0116] 在残差模式(或AMVP模式)中,可以预测仿射参数或当前块的控制点处的MV。在一实施例中,因为要预测多于一个的运动矢量,所以控制点处的运动矢量的候选列表以分组方式组织,使得候选列表中的每个候选项包括一组用于所有控制点的运动矢量预测器。例如,候选项1={用于控制点A的预测器1A、用于控制点B的预测器1B、用于控制点C的预测器1C};候选项2={用于控制点A的预测器2A、用于控制点B的预测器2B、用于控制点C的预测器
2C}等。不同候选中相同控制点的预测器(例如,预测器1A和预测器2A)可以相同或不同。运动矢量预测器标志(用于列表0的mvp_l0_flag或用于列表1的mvp_l1_flag)用于指示从列表中选择哪个候选。在预测之后,参数的残差部分(例如,参数与预测器预测的参数之间的差值),或控制点处的MV的差值(例如,MV与MV预测器预测的MV之间的差值)将通过信号通知。每个控制点处的MV预测器还可以使用上文所描述的关于仿射合并模式的技术并通过基于模型的仿射预测从其相邻者中的一个导出。
[0117] 在一些实施例中,对于以仿射模式进行编码的块,一旦确定了仿射模型的参数,例如当确定了控制点处的MV时,就可以使用仿射模型来计算块的剩余位置处的MV。
[0118] 例如,当前块中的位置(x,y)和参考图片中的对应位置(x’,y’)之间的像素对应关系在(等式1)中使用4参数仿射模型示出。在(等式1)中,ρ是用于缩放的缩放因子,θ是用于旋转的角度因子,以及(c,f)是描述平移运动的运动矢量。即,四个参数是,ρ、θ、c和f。
[0119]
[0120] 在一实施例中,对于当前块中的任意位置(x,y),其指向参考图片的运动矢量可以基于参考图片中的相应像素的相应位置(x’,y’)并使用(等式1)来确定。在参考图片中,位置(x,y)处的运动矢量MV0将是MV0=(x’-x,y’-y)。在一个示例中,通过将当前块划分为最小单元的阵列来执行仿射补偿。单元内的像素共享同一运动矢量。每个单元(例如,最小单元)的位置都是通过所述单元中的选定位置(代表性位置)来确定的,例如左上角像素、单元的中心等。仿射补偿的最小单元的大小可以是1像素、4×4像素、M×N像素等,其中M和N是正整数。
[0121] 在一些实施例中,当前块被划分为子块。在子块中选择一个位置,所选择位置的运动矢量被称为该子块的运动矢量场(MVF)。在一个示例中,子块是仿射补偿的最小单元。子块的MVF可以基于当前块的控制点处的运动矢量来确定。
[0122] 图11示出了根据本申请实施例的当前块以及当前块的两个控制点CP0和CP1的示意图。如图11所示,CP0是位于当前块的左上角的控制点,并且具有运动矢量V0=(v0x,v0y),CP1是位于当前块的右上角的控制点,并且具有运动矢量V1=(v1x,v1y)。当子块的选定位置是(x,y)((x,y)是当前块的左上角的相对位置)时,子块的MVF是V=(vx,vy),并且可以使用(等式2)来计算:
[0123]
[0124] 其中w表示当前块的宽度和高度(例如,当前块具有正方形形状)。
[0125] 根据本申请的实施例,可使用各种技术生成用于当前块的仿射预测器,使用来自多个相邻仿射编码块的基于模型的仿射预测,或使用来自多个相邻MV的基于多控制点的仿射预测。
[0126] 图12示出了根据本申请一实施例的仿射运动矢量预测的示意图。图12示出了可以被选作控制点CP0、CP1和CP2的三个角。CP0是位于当前块的左上角的控制点,并且具有运动矢量v0=(v0x,v0y)。CP1是位于当前块的右上角的控制点,并且具有运动矢量v1=(v1x,v1y)。CP2是位于当前块的左下角的控制点,并且具有运动矢量v2=(v2x,v2y)。
[0127] 在一实施例中,在仿射AMVP模式中,使用一对控制点{CP0,CP1},并使用相邻块构建具有{CP0,CP1}的运动矢量对的候选列表。例如,候选列表由{(v0,v1)|v0={vB2,vB3,vA2},v1={vB1,vB0}}表示。如图12所示,v0选自块B2、B3或A2的运动矢量。根据参考列表以及相邻块的参考图片的图片顺序号(POC)、当前CU的参考图片的POC和当前CU的POC之间的关系,对相邻块的运动矢量进行缩放。类似地,从相邻块B1和B0的运动矢量中选择v1。在一个示例中,如果候选列表中候选的数量小于预定数量(例如,2),则候选列表由通过复制每个AMVP候选组成的一个或多个运动矢量对来填充。例如,在v1={vB1,vB0}中,如果vB0不可用,则{CP0,CP1}对中的每个CP1将使用vB1。在另一示例中,当候选列表中候选的数量大于2时,首先根据相邻运动矢量的一致性(例如,基于一对候选中的两个运动矢量之间的相似性)对候选进行排序,并且仅保留前两个候选。在一些示例中,在编码器侧,速率失真(RD)成本检查被用于确定选择哪个运动矢量对候选作为当前块的控制点的运动矢量预测器(MVP)。此外,在编码视频比特流中,用信号通知一个索引,该索引指示候选列表中的控制点的所选MVP的位置。在确定当前仿射块的控制点的MVP之后,应用仿射运动估计并找到控制点的运动矢量。然后,在编码视频比特流中,用信号通知控制点的MV和控制点的MVP之间的差值。
[0128] 值得注意的是,在解码器侧,候选列表以与编码器侧类似的方式构建。此外,解码器从编码视频比特流中对索引进行解码,该索引指示候选列表中的控制点的所选MVP的位置,并对控制点的MVP和MV之间的差值进行解码。基于控制点的MVP和差值,解码器确定控制点的MV。
[0129] 在另一实施例中,使用了一种称为基于模型的仿射合并的技术。例如,当以仿射合并模式应用块时,检查来自有效相邻重建块的候选块以选择以仿射模式进行编码的块。例如,选择以仿射模式编码的第一块作为合并候选。
[0130] 根据选择顺序选择第一块。在一个示例中,候选块的选择顺序是从左、上、右上、左下至左上,例如图12示例中的{A1,B1,B0,A0,B2}的顺序。值得注意的是,在其它实施例中可以使用其它合适的选择顺序。例如,如图12所示的相邻左块A1以仿射模式进行编码。相邻左块A1在编码单元N1中。然后导出控制点的运动矢量,例如编码单元N1左上角、右上角和左下角处的CP1A1、CP2A1以及CP3A1。然后,在示例中,根据CP1A1、CP2A1和CP3A1的运动矢量来计算当前CU(或当前块)上的左上角控制点(CP0)的运动矢量。此外,根据CP1A1、CP2A1和CP3A1的运动矢量来计算当前CU(或当前块)的右上方控制点(CP1)的运动矢量。
[0131] 在导出当前CU的控制点CP0和CP1的MV之后,根据示例中的简化仿射运动模型,例如根据(等式2),可以计算出当前CU的MVF。在一实施例中,当当前CU的至少一个相邻块以仿射模式进行编码时,编码器在编码视频比特流中发信号通知仿射标志,以便识别当前CU是否以仿射合并模式进行编码。在解码器侧,解码器可以从编码视频比特流中解码仿射标志,并基于仿射标志确定当前块是否以仿射合并模式进行编码。
[0132] 图13示出了根据本申请另一实施例的仿射模式中的运动矢量预测的示意图。如图13所示,当前块处于CTU顶部边界。因此,一些相邻块,例如上方相邻块N2、N3等,处于不同的CTU中。在一个示例中,如图13所示,相邻块B2以仿射模式进行编码并被选择。相邻块B2在编码单元N2中。由此,导出控制点的运动矢量,例如编码单元N2的左上角、右上角和左下角处的CP1B2、CP2B2以及CP3B2。在一个示例中,根据CP1B2、CP2B2和CP3B2的运动矢量来计算当前CU(或当前块)中左上角控制点(CP0)的运动矢量。此外,根据CP1B2、CP2B2和CP3B2的运动矢量来计算当前CU(或当前块)的右上方控制点(CP1)的运动矢量。
[0133] 在一些示例中,当当前块处于如图13所示的CTU顶部边界时,将一个或多个相邻块的运动信息保存在线缓冲器中。例如,线缓冲器保存相邻块的控制点的所有MV的信息以及相应的块的大小。因此,线缓冲器可能需要具有相对大的尺寸。此外,当当前块处于当前CTU顶部边界时,位于当前CTU边界之上的任何相邻块将不被用作基于模型推导的候选。然而,位于当前CTU边界之上的相邻块仍可用于基于控制点的仿射合并模式中。在这种情况下,运动数据线缓冲器可能不需要存储任何仿射运动信息和仿射控制点信息,或者仿射标志可能不需要保存在线缓冲器中。
[0134] 在一实施例中,当如上所述在CTU顶部边界处使用基于模型的仿射合并限制时,位于CTU边界之上位置以外的其它候选仍可用于基于模型的仿射合并模式,以导出当前块的仿射模型。之后还可以将基于控制点的仿射合并候选添加到仿射合并候选列表中。在另一实施例中,当如上所述在当前CTU顶部边界处使用基于模型的仿射合并限制时,位于CTU边界之上位置以外的其它候选仍可用于基于模型的仿射合并,以导出当前块的仿射模型。之后还可以将基于控制点的仿射合并候选添加到仿射合并候选列表中,只是修改了基于控制点的候选的顺序。基于控制点的仿射合并候选包括当前块顶部的控制点,例如图13所示的CP0和CP1,可以先于其他基于控制点的候选添加到仿射合并候选项列表中。例如,在当前CTU的顶部边界处,可排除B2、B3、B1和B0处的四个基于模型的仿射合并候选,且仅A0、A1或A2可用于基于模型的仿射合并。在导出基于模型的候选并将其添加到候选列表之后,可导出基于控制点的合并候选。基于控制点的候选不是按照图14A和图14B所描述的原有顺序导出,而是可使用新的顺序以赋予具有控制点CP0和CP1的候选更高的优先级。
[0135] 例如,可以构建11个模型或其子集。第一模型是使用三个控制点(CP1、CP2、CP3)构建的仿射模型;第二模型是使用两个控制点(CP1、CP2)构建的仿射模型;第三模型是使用三个控制点(CP1、CP2、CP4)构建的仿射模型;第四模型是使用三个控制点(CP2、CP3、CP4)构建的仿射模型;第五模型是使用三个控制点(CP1、CP3、CP4)构建的仿射模型;第六模型是使用两个控制点(CP2、CP3)构建的仿射模型;第七模型是使用两个控制点(CP1、CP3)构建的仿射模型;第八模型是使用两个控制点(CP2、CP4)构建的仿射模型;第九模型是使用两个控制点(CP3、CP4)构建的仿射模型;第十模型是使用两个控制点(CP1、CP4)构建的仿射模型;第十一模型为双线性模型。基于控制点的候选的顺序可以不限于该示例。
[0136] 在另一实施例中,可以使用基于多个控制点的仿射合并。基于多个控制点的仿射合并称为复合合并模式。
[0137] 图14A和14B示出了复合合并模式的示例性候选位置。图14A示出了用于复合合并模式的空间候选的示例性位置,图14B示出了用于复合合并模式的时间候选的示例性位置。
[0138] 在复合合并模式中,需要控制点来确定运动模型。在复合合并模式的第一步骤中,确定控制点的候选。用于预测控制点的候选示于图14A和14B中。CPk表示第k个控制点。例如,控制点CP1、CP2、CP3和CP4位于当前块的角落。如图14A-14B所示,CP1是位于当前块左上角的控制点,CP2是位于当前块右上角的控制点,CP3是位于当前块左下角的控制点,CP4是位于当前块右下角的控制点。
[0139] 图14A示出了用于预测CP1、CP2和CP3的运动信息的空间候选。图14B示出了用于预测CP4的运动信息的时间候选的位置。具体地,用于预测CP1的运动信息的示例性空间候选被示为B2、A2和B3,用于预测CP2的运动信息的空间候选被示为B0和B1,以及用于预测CP3的运动信息的空间候选被示为A0和A1。用于预测CP4的运动信息的时间候选被示为TRb。
[0140] 在一些示例中,控制点具有多个候选,并且控制点的运动信息根据优先级顺序从候选中确定。例如,对于CP1,检查的优先级顺序可以是B2、A2,然后是B3;对于CP2,检查的优先级顺序可以是B0,然后是B1;对于CP3,检查的优先级顺序可以是A0,然后是A1;对于CP4,使用TRb。然而,在其它实施例中可以使用其它优先级顺序。
[0141] 然后使用控制点来构建候选模型列表。基于控制点的子集可以构建各种模型,例如CP1、CP2、CP3和CP4。例如,可以构建11个模型。第一模型是使用三个控制点(CP1、CP2、CP3)构建的仿射模型;第二模型是使用三个控制点(CP1、CP2、CP4)构建的仿射模型;第三模型是使用三个控制点(CP2、CP3、CP4)构建的仿射模型;第四模型是使用三个控制点(CP1、CP3、CP4)构建的仿射模型;第五模型是使用两个控制点(CP1、CP2)构建的仿射模型;第六模型是使用两个控制点(CP2、CP3)构建的仿射模型;第七模型是使用两个控制点(CP1、CP3)构建的仿射模型;第八模型是使用两个控制点(CP2、CP4)构建的仿射模型;第九模型是使用两个控制点(CP3、CP4)构建的仿射模型;第十模型是使用两个控制点(CP1、CP4)构建的仿射模型;第十一模型为双线性模型。基于控制点的候选的顺序不限于该示例。
[0142] 根据顺序构建候选模型列表,诸如从第一模型到第十一模型的顺序。例如,当模型的所选控制点的运动信息可以导出且与至少一个参考图片列表(如L0或L1)中的模型不一致时,该模型可以作为候选模型之一包括在候选模型列表中。在一实施例中,编码器针对候选模型列表中的模型对编码视频流中的索引(例如,复合合并索引)进行编码,所述候选模型列表在编码器侧用于复合合并模式中的预测。可以使用相等长度二进制化将索引编码为3个二进制比特。在解码器侧,解码器根据来自编码视频比特流的3个二进制比特对索引进行解码。解码器启动构建候选模型列表的过程。当待包括在候选模型列表中的模型的候选索引等于解码的复合合并索引时,该过程停止,并且解码器确定该模型与编码器所使用的模型相同。在另一实施例中,可以使用基于当前块的形状来选择控制点的技术。块的控制点可以来自许多可能的位置。当使用4参数仿射模型时,块的顶部两个角通常用作控制点。可以基于当前块的形状来确定控制点的选择。
[0143] 仿射运动补偿的使用通常由高级语法启用,例如sps_affine_enabled_flag。如图10所述,用于仿射运动补偿的运动模型包括4参数仿射模型和6参数仿射模型。这两个模型可在块级别切换,这意味着对于每个仿射编码块,可发信号通知(例如,在块级别)标志/指示符cu_affine_type_flag,以指示使用哪个仿射运动补偿模型(例如,6参数仿射模型)。例如,如果标志为真,则确定当前块使用6参数仿射模型,在待重建的3个控制点处具有3个运动矢量。如果标志为假,则确定当前块使用4参数仿射模型,在待重建的2个控制点处具有2个运动矢量。
[0144] 在一些实施例中,如果还使用不同级别的一个或多个其它标志,则不需要针对每个编码单元发信号通知诸如cu_affine_type_flag之类的标志。通过使用多种类型的标志来发信号通知仿射运动模型,可以提高编码效率。
[0145] 可以将4参数或6参数仿射模型使用的控制级别设置在不同的级别,例如设置在序列参数集(SPS)级别、图片级别、条带级别和/或块级别,以便基于仿射模型更有效地构建块。在本申请的实施例中,通过SPS级别的多值标志来用信号通知仿射运动补偿类型。例如,使用SPS标志“sps_affine_type_control_idc”。此标志的值可以指示是否使用仿射运动补偿,以及当使用仿射运动补偿时,指示仿射运动补偿类型。仿射运动补偿类型包括,例如4参数仿射模型、6参数仿射模型以及4参数仿射模型和6参数仿射模型的组合。
[0146] 在该示例中,sps_affine_type_control_idc指定用于编码视频序列(CVS)中的帧间预测的仿射运动补偿类型。sps_affine_type_control_idc的值指示哪个仿射运动补偿类型用于CVS中的帧间预测。例如,如果sps_affine_type_control_idc等于0,则约束语法使得在CVS中不使用基于仿射模型的运动补偿,并且在CVS的编码单元语法中不存在诸如merge_affine_flag、inter_affine_flag和cu_affine_type_flag的其它标志/指示符。如果sps_affine_type_control_idc等于1,则约束语法使得在CVS中仅使用基于4参数仿射模型的运动补偿,并且在CVS的编码单元语法中不存在cu_affine_type_flag。如果sps_affine_type_control_idc等于2,则约束语法使得在CVS中仅使用基于6参数仿射模型的运动补偿,并且在CVS的编码单元语法中不存在cu_affine_type_flag。如果sps_affine_type_control_idc等于3,则在CVS中可以使用基于4参数仿射模型和6参数仿射模型的运动补偿,并且在CVS的编码单元语法中存在cu_affine_type_flag。当CVS的编码单元语法中不存在sps_affine_type_control_idc时,推断cu_affine_type_flag的值等于sps_affine_type_control_idc-1,并且推断sps_affine_type_control_idc的值等于0。表1示出了根据本实施例的SPS级别的示例性语法和语义表。
[0147] 表1 SPS级别的示例性语法和语义表
[0148]……  
sps_amvr_enabled_flag u(1)
sps_affine_type_control_idc u(2)
sps_mts_intra_enabled_flag u(1)
sps_mts_inter_enabled_flag u(1)
……  
[0149] 当sps_affine_type_control_idc等于3且基于4参数仿射模型和6参数仿射模型的运动补偿均可用于CVS中时,编码单元仿射类型标志/指示符存在于CVS中的编码单元语法中并被发信号通知以指定每个编码单元的仿射模型类型。例如,如果cu_affine_type_flag[x0][y0]等于1,则cu_affine_type_flag[x0][y0]指示对于当前编码单元,当解码P或B条带时,使用基于6参数仿射模型的运动补偿来生成当前编码单元的预测样本。如果cu_affine_type_flag[x0][y0]等于0,则cu_affine_type_flag[x0][y0]指定使用基于4参数仿射模型的运动补偿来生成当前编码单元的预测样本。当在CVS的编码单元语法中不存在cu_affine_type_flag[x0][y0]时,推断cu_affine_type_flag的值等于0。表2示出了根据本实施例的块级别的示例性语法和语义表。
[0150] 表2 块级别的示例性语法和语义表
[0151]
[0152] 在本申请的另一实施例中,sps_affine_type_control_idc不指示SPS级别的6参数仿射模型。相反,如果sps_affine_type_control_idc等于0,则约束语法使得在CVS中不使用基于仿射模型的运动补偿,并且在CVS的编码单元语法中不存在merge_affine_flag、inter_affine_flag和cu_affine_type_flag。如果sps_affine_type_control_idc等于1,则约束语法使得在CVS中仅使用基于4参数仿射模型的运动补偿,并且在CVS的编码单元语法中不存在cu_affine_type_flag。如果sps_affine_type_control_idc等于2,则可以在CVS中使用基于4参数仿射模型和6参数仿射模型的运动补偿,并且在CVS的编码单元语法中存在cu_affine_type_flag。当不存在sps_affine_type_control_idc时,推断cu_affine_type_flag的值等于sps_affine_type_control_idc-1。保留sps_affine_type_control_idc的值3以备将来使用。当不存在sps_affine_type_control_idc时,推断sps_affine_type_control_idc的值等于0。表3示出了根据本实施例的SPS级别的示例性语法和语义表。
[0153] 表3 SPS级别的示例性语法和语义表
[0154]
[0155] 当sps_affine_type_control_idc等于2且基于4参数仿射模型和6参数仿射模型的运动补偿均可用于CVS中时,编码单元仿射类型标志/指示符存在于CVS的编码单元语法中并被发信号通知以指定每个编码单元的仿射模型类型。例如,如果cu_affine_type_flag[x0][y0]等于1,则cu_affine_type_flag[x0][y0]指示对于当前编码单元,当解码P或B条带时,基于6参数仿射模型的运动补偿来生成当前编码单元的预测样本。如果cu_affine_type_flag[x0][y0]等于0,则cu_affine_type_flag[x0][y0]指示使用基于4参数仿射模型的运动补偿来生成当前编码单元的预测样本。当不存在cu_affine_type_flag[x0][y0]时,推断cu_affine_type_flag的值等于0。表4示出了根据本实施例的块级别的示例性语法和语义表。
[0156] 表4 块级别的示例性语法和语义表
[0157]
[0158] 在本申请的另一实施例中,可以在SPS级别发信号通知SPS标志,并且可以根据SPS标志的值在图片或条带级别发信号通知条带仿射类型标志。此外,编码单元仿射类型标志可基于条带仿射类型标志的值在块级别发信号通知。
[0159] 在本实施例中,sps_affine_enabled_flag指示基于仿射模型的运动补偿是否可用于帧间预测。例如,如果sps_affine_enabled_flag等于0,则约束语法使得在CVS中不使用基于仿射模型的运动补偿,并且在CVS的编码单元语法中不存在merge_affine_flag、inter_affine_flag和cu_affine_type_flag。如果sps_affine_enabled_flag等于1,则sps_affine_enabled_flag指示可以在CVS中使用基于仿射模型的运动补偿。表5示出了根据本实施例的SPS级别的示例性语法和语义表。
[0160] 表5 SPS级别的示例性语法和语义表
[0161]
[0162]
[0163] 如果sps_affine_enabled_flag等于1,则发信号通知slice_affine_type_idc以指定基于4参数或6参数仿射模型的运动补偿是否可用于帧间预测。例如,如果slice_affine_type_idc等于0,则约束语法使得在CVS中仅使用基于4参数仿射模型的运动补偿,并且在CVS的编码单元语法中不存在cu_affine_type_idc。如果slice_affine_type_idc等于1,则约束语法使得在CVS中仅使用基于6参数仿射模型的运动补偿,并且在CVS的编码单元语法中不存在cu_affine_type_flag。如果slice_affine_type_idc等于2,则可以在CVS中使用基于4参数和6参数仿射模型的运动补偿。保留slice_affine_type_flag的值3以备将来使用。当slice_affine_type_idc不存在时,推断slice_affine_type_idc的值等于0。表6示出了根据本实施例的条带级别的示例性语法和语义表。
[0164] 表6 条带级别的示例性语法和语义表
[0165]
[0166] 如果slice_affine_type_idc等于2,则发信号通知cu_affine_type_flag[x0][y0]以指示编码单元的仿射模型类型。例如,如果cu_affine_type_flag[x0][y0]等于1,则cu_affine_type_flag[x0][y0]指示对于当前编码单元,当解码P或B条带时,基于6参数仿射模型的运动补偿用于生成当前编码单元的预测样本。如果cu_affine_type_flag[x0][y0]等于0,则cu_affine_type_flag[x0][y0]指示使用基于4参数仿射模型的运动补偿来生成当前编码单元的预测样本。当cu_affine_type_flag[x0][y0]不存在时,推断cu_affine_type_flag的值等于slice_affine_type_idc的值。表7示出了根据本实施例的块级别的示例性语法和语义表。
[0167] 表7 块级别的示例性语法和语义表
[0168]
[0169]
[0170] 在本申请的另一实施例中,sps_affine_enabled_flag指示基于仿射模型的运动补偿是否可用于帧间预测。例如,如果sps_affine_enabled_flag等于0,则约束语法使得在CVS中不使用基于仿射模型的运动补偿,并且在CVS的编码单元语法中不存在merge_affine_flag、inter_affine_flag和cu_affine_type_flag。如果sps_affine_enabled_flag等于1,则sps_affine_enabled_flag指示可以在CVS中使用基于仿射模型的运动补偿。表8示出了根据本实施例的SPS级别的示例性语法和语义表。
[0171] 表8 SPS级别的示例性语法和语义表
[0172]
[0173] 如果sps_affine_enabled_flag等于1,则发信号通知slice_affine_type_idc以指示基于4参数或6参数仿射模型的运动补偿是否可用于帧间预测。例如,如果slice_affine_type_flag等于0,则约束语法使得在CVS中仅使用基于4参数仿射模型的运动补偿,并且在CVS的编码单元语法中不存在cu_affine_type_flag。如果slice_affine_type_flag等于1,则可以在CVS中使用基于4参数和6参数仿射模型的运动补偿。当slice_affine_type_flag不存在时,推断slice_affine_type_flag的值等于0。表9示出了根据本实施例的条带级别的示例性语法和语义表。
[0174] 表9 条带级别的示例性语法和语义表
[0175]
[0176]
[0177] 如果slice_affine_type_idc等于1,则发信号通知cu_affine_type_flag[x0][y0]以指示编码单元的仿射模型类型。例如,如果cu_affine_type_flag[x0][y0]等于1,则cu_affine_type_flag[x0][y0]指示对于当前编码单元,当解码P或B条带时,基于6参数仿射模型的运动补偿用于生成当前编码单元的预测样本。如果cu_affine_type_flag[x0][y0]等于0,则cu_affine_type_flag[x0][y0]指示使用基于4参数仿射模型的运动补偿来生成当前编码单元的预测样本。当cu_affine_type_flag[x0][y0]不存在时,推断cu_affine_type_flag的值等于0。表10示出了根据本实施例的块级别的示例性语法和语义表。
[0178] 表10 块级别的示例性语法和语义表
[0179]
[0180] 图15示出了根据本申请实施例的概述视频解码过程(1500)的流程图。该过程(1500)可以用于以帧内模式编码的块的重建,以便为正在重建的块生成预测块。该过程(1500)可以由处理电路执行,例如终端设备(210)、(220)、(230)和(240)中的处理电路、执行视频编码器(303)的功能的处理电路、执行视频解码器(310)的功能的处理电路、执行视频解码器(410)的功能的处理电路、执行帧内预测模块(452)的功能的处理电路、执行视频编码器(503)的功能的处理电路、执行预测器(535)的功能的处理电路、执行帧内编码器(622)的功能的处理电路、执行帧内解码器(772)的功能的处理电路等。在一些实施例中,该过程(1500)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行该过程(1500)。该过程开始于步骤(S1501)并进行到步骤(S1510)。
[0181] 在步骤(1510)中,当仿射运动补偿用于视频编码序列中的帧间预测时,接收指示仿射运动补偿类型的第一指示符。例如,第一指示符对应于上述一些实施例中描述的sps_affine_type_control_idc。第一指示符还可对应于slice_affine_type_flag。在一些实施例中,如果有多个第一指示符,则多个第一指示符中的每一个与所述视频编码序列中的不同条带、不同图块组或不同图片中的一个相关联。
[0182] 在步骤(1520)中,基于接收到的第一指示符指示的仿射运动补偿类型,将仿射运动补偿类型确定为多个仿射运动补偿类型中的一个。接收到的第一指示符指示使用多个仿射运动补偿类型中的哪一个。如上所述,多个仿射运动补偿类型可以包括4参数仿射运动补偿模型、6参数仿射运动补偿模型和/或4参数仿射模型和6参数仿射运动补偿模型的组合。
[0183] 在步骤(1530)中,当仿射运动补偿类型确定为4参数仿射运动补偿模型和6参数仿射运动补偿模型的组合时,基于接收到的第二指示符(例如,cu_affine_type_flag),确定使用4参数仿射运动补偿模型和6参数仿射运动补偿模型中的一个来生成编码单元的预测样本。
[0184] 在步骤(1540)中,基于第一和/或第二指示符重建当前块的至少一个样本。然后,该过程进行到步骤(1599)并结束。
[0185] 在本实施例中,该视频解码过程还可进一步包括:基于接收到的第三指示符确定仿射运动补偿是否用于视频编码序列中的帧间预测。第三指示符可以为上述实施例中描述的sps_affine_enabled_flag。
[0186] 在本申请一实施例中,当仿射运动补偿类型被确定为4参数仿射运动补偿模型时,在生成视频编码序列的条带或图块的预测样本期间,或对视频编码序列的各个条带或图块组的所有块进行编码期间,仅使用4参数仿射运动补偿模型执行仿射运动补偿。在本实施例中,用于确定仿射运动补偿类型的指示符的作用范围是条带级别的。
[0187] 在本申请另一实施例中,当仿射运动补偿类型被确定为4参数仿射运动补偿模型时,在生成视频编码序列的预测样本期间,或对视频编码序列进行编码期间,仅使用4参数仿射运动补偿模型执行仿射运动补偿。在本实施例中,用于确定仿射运动补偿类型的指示符的作用范围是序列级别的。
[0188] 本申请的实施例还提供了一种视频解码的装置,包括:
[0189] 接收模块,用于当仿射运动补偿用于视频编码序列中的帧间预测时,接收指示仿射运动补偿类型的第一指示符;
[0190] 第一确定模块,用于基于接收的所述第一指示符,确定所述仿射运动补偿类型为多个仿射运动补偿类型中的一个,所述多个仿射运动补偿类型包括4参数仿射运动补偿模型、6参数仿射运动补偿模型以及所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的所述组合;
[0191] 第二确定模块,用于当所述仿射运动补偿类型被确定为所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型的组合时,基于接收到的第二指示符确定使用所述4参数仿射运动补偿模型和所述6参数仿射运动补偿模型中的哪一个来生成编码单元的预测样本;以及
[0192] 重建模块,用于基于所述第一指示符和/或所述第二指示符重建当前块的至少一个样本。
[0193] 本实施例中所述模块的具体功能及实现可参照上述实施例中的视频解码方法的具体流程。
[0194] 本申请实施例还提供了一种计算机设备,所述设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如上实施例所述的视频解码的方法。
[0195] 上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图16示出了计算机系统(1600),其适于实现所公开主题的某些实施例。
[0196] 所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。
[0197] 所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
[0198] 图16所示的用于计算机系统(1600)的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统(1600)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
[0199] 计算机系统(1600)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0200] 人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘(1601)、鼠标(1602)、触控板(1603)、触摸屏(1610)、数据手套(未示出)、操纵杆(1605)、麦克(1606)、扫描仪(1607)、照相机(1608)。
[0201] 计算机系统(1600)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(1610)、数据手套(未示出)或操纵杆(1605)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(1609)、机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(1610),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
[0202] 计算机系统(1600)还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)(1620)或类似介质(1621)的光学介质、拇指驱动器(1622)、可移动硬盘驱动器或固体状态驱动器(1623),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。
[0203] 本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
[0204] 计算机系统(1600)还可以包括通往一个或多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1649)(例如,计算机系统(1600)的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统(1600)的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统(1600)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
[0205] 上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统(1600)的核心(1640)。
[0206] 核心(1640)可包括一个或多个中央处理单元(CPU)(1641)、图形处理单元(GPU)(1642)、以现场可编程阵列(FPGA)(1643)形式的专用可编程处理单元、用于特定任务的硬件加速器(1644)等。这些设备以及只读存储器(ROM)(1645)、随机存取存储器(1646)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(1647)等可通过系统总线(1648)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1648),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(1648),或通过外围总线(1649)进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。
[0207] CPU(1641)、GPU(1642)、FPGA(1643)和加速器(1644)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1645)或RAM(1646)中。过渡数据也可以存储在RAM(1646)中,而永久数据可以存储在例如内部大容量存储器(1647)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个CPU(1641)、GPU(1642)、大容量存储器(1647)、ROM(1645)、RAM(1646)等紧密关联。
[0208] 所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
[0209] 作为实施例而非限制,具有体系结构(1600)的计算机系统,特别是核心(1640),可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(1640)的特定存储器,例如核心内部大容量存储器(1647)或ROM(1645)。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心(1640)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(1640)特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM(1646)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(1644))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。
[0210] 附录A:首字母缩略词
[0211] JEM:联合开发模式
[0212] VVC:通用视频编码
[0213] BMS:基准集合
[0214] MV:运动向量
[0215] HEVC:高效视频编码
[0216] SEI:补充增强信息
[0217] VUI:视频可用性信息
[0218] GOP:图片组
[0219] TU:变换单元
[0220] PU:预测单元
[0221] CTU:编码树单元
[0222] CTB:编码树块
[0223] PB:预测块
[0224] HRD:假设参考解码器
[0225] SNR:信噪比
[0226] CPU:中央处理单元
[0227] GPU:图形处理单元
[0228] CRT:阴极射线管
[0229] LCD:液晶显示
[0230] OLED:有机发光二极管
[0231] CD:光盘
[0232] DVD:数字化视频光盘
[0233] ROM:只读存储器
[0234] RAM:随机存取存储器
[0235] ASIC:专用集成电路
[0236] PLD:可编程逻辑设备
[0237] LAN:局域网
[0238] GSM:全球移动通信系统
[0239] LTE:长期演进
[0240] CANBus:控制器局域网络总线
[0241] USB:通用串行总线
[0242] PCI:外围设备互连
[0244] SSD:固态驱动器
[0245] IC:集成电路
[0246] CU:编码单元
[0247] 虽然本申请已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈