首页> 中国专利> 用于视频编码的用虚拟参考图片进行帧间图片预测的方法和装置

用于视频编码的用虚拟参考图片进行帧间图片预测的方法和装置

摘要

执行视频序列的当前图片的帧间图片预测的方法由至少一个处理器执行,且该方法包括:确定当前图片是否使用虚拟参考图片,以及基于确定当前图片使用虚拟参考图片,对于当前图片,从与虚拟参考图片最邻近的相邻参考图片生成虚拟参考图片,将所生成的虚拟参考图片存储在已解码图片缓冲器中,以及将所生成的虚拟参考图片添加到活动参考图片列表中。该方法还包括:基于添加了虚拟参考图片的活动参考图片列表,执行当前图片的帧间图片预测。

著录项

  • 公开/公告号CN114787870A

    专利类型发明专利

  • 公开/公告日2022-07-22

    原文格式PDF

  • 申请/专利权人 腾讯美国有限责任公司;

    申请/专利号CN202180006627.6

  • 申请日2021-06-15

  • 分类号G06T9/00;H04N19/102;H04N19/105;H04N19/109;H04N19/114;H04N19/137;

  • 代理机构北京派特恩知识产权代理有限公司;

  • 代理人王花丽;蒋雅洁

  • 地址 美国加利福尼亚州帕洛阿尔托公园大道2747号

  • 入库时间 2023-06-19 16:04:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-22

    公开

    国际专利申请公布

说明书

相关申请的交叉引用

本申请要求在美国专利商标局于2020年9月24日提交的编号为63/082,784的美国临时专利申请、于2020年9月25日提交的编号为63/083,527的美国临时专利申请、于2021年5月25日提交的编号为17/329,751的美国专利申请的优先权,前述申请的公开内容通过引入并入本文。

技术领域

与实施例一致的方法和装置涉及视频编码,更具体地,涉及用于视频编码的使用虚拟参考图片进行图片帧间预测的方法和装置。

背景技术

使用具有运动补偿的帧间图片预测来进行视频编码和解码已经有几十年了。未压缩的数字视频可以包括一系列图片,每个图片具有例如为1920×1080的亮度样本和相关的色度样本的空间大小。该一系列图片可以具有例如每秒60幅图片或60Hz的固定的或可变的图片速率(也非正式地也称为帧率)。未压缩的视频具有很高的位速率要求。例如,每样本8位的1080p60 4:2:0的视频(60Hz帧率的1920×1080亮度样本分辨率)需要接近1.5Gbit/s带宽。一小时的此类视频需要600GB以上的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可以有助于减少上述带宽或存储空间需求,在某些情况下可以减小两个数量级或大于两个数量级。可以采用无损压缩和有损压缩,以及它们的组合。无损压缩是指可以从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,已重建的信号可能与原始信号不同,但是原始信号和已重建的信号之间的失真足够小,以使已重建的信号可用于预期的应用。在视频的情况下,广泛使用有损压缩。可容忍的失真量取决于应用,例如某些消费流式应用的用户相比电视分布应用的用户来说可以容忍更高的失真。可达到的压缩率可以反映:更高的可允许/可容忍的失真可以产生更高的压缩率。

视频编码器和解码器可利用来自若干广泛类别的技术,包括例如运动补偿、变换、量化和熵编码,下面将介绍其中的一些。

发明内容

根据实施例,一种执行视频序列的当前图片的帧间图片预测的方法由至少一个处理器执行且该方法包括:确定当前图片是否使用虚拟参考图片,以及基于确定当前图片使用虚拟参考图片,对于当前图片,从与虚拟参考图片最邻近的相邻参考图片生成虚拟参考图片,将所生成的虚拟参考图片存储在已解码图片缓冲器中,以及将所生成的虚拟参考图片添加到活动参考图片列表中。该方法还包括:基于添加了虚拟参考图片的活动参考图片列表,执行当前图片的帧间图片预测。

根据实施例,一种用于执行视频序列的当前图片的帧间图片预测的装置包括至少一个存储器以及至少一个处理器,至少一个存储器被配置为存储计算机程序代码,至少一个处理器被配置为访问至少一个存储器并根据计算机程序代码进行操作。计算机程序代码包括:第一确定代码,被配置为使至少一个处理器确定当前图片是否使用虚拟参考图片;生成代码,被配置为使至少一个处理器基于确定当前图片使用虚拟参考图片,对于当前图片,从与虚拟参考图片最邻近的相邻参考图片生成虚拟参考图片;存储代码,被配置为使至少一个处理器将所生成的虚拟参考图片存储在已解码图片缓冲器中;添加代码,被配置为使至少一个处理器将生成的虚拟参考图片添加到活动参考图片列表中;以及执行代码,被配置为使至少一个处理器基于添加了虚拟参考图片的活动参考图片列表,执行当前图片的帧间图片预测。

根据实施例,一种非瞬态计算机可读存储介质存储指令,该指令当由至少一个处理器执行以进行视频序列的当前图片的帧间图片预测时,使得至少一个处理器:确定当前图片是否使用虚拟参考图片,以及基于确定当前图片使用虚拟参考图片,对于当前图片,从与虚拟参考图片最邻近的相邻参考图片生成虚拟参考图片,将所生成的虚拟参考图片存储在已解码图片缓冲器中,以及将所生成的虚拟参考图片添加到活动参考图片列表中。所述指令当由至少一个处理器执行时,还使至少一个处理器基于添加了虚拟参考图片的活动参考图片列表,执行当前图片的帧间图片预测。

附图说明

图1是根据实施例的通信系统的简化框图的示意图。

图2是根据实施例的流式系统的简化框图的示意图。

图3是根据实施例的解码器的简化框图的示意图。

图4是根据实施例的编码器的简化框图的示意图。

图5A是根据实施例的虚拟参考图片生成和插入到参考图片列表中的示意图。

图5B是根据实施例的虚拟参考图片生成处理的示意图。

图6A是根据实施例的用虚拟参考图片对已编码视频流进行解码的方法的流程图。

图6B是根据实施例的用虚拟参考子图片对已编码视频流进行解码的方法的流程图。

图7是根据实施例的计算机系统的示意图。

图8是根据实施例的仿射预测模式的示意图。

图9是根据实施例的解码器侧运动矢量细化的示意图。

具体实施方式

在压缩原始视频数据时,利用帧间/帧内相关来减少编码比特流中的冗余数据。特别地,帧间图片预测技术已经广泛应用于用运动估计和补偿来消除帧间图片冗余。通过对目标和背景的运动进行补偿,更准确的预测可以降低残差数据的熵。在各种视频编码框架和标准中,利用更多前向或后向的参考图片提供了更有效的压缩。然而,尽管许多具有运动补偿的有效算法提高了编码效率,但帧间预测后的残差数据仍然保留,增加了编码比特的大小。在本公开中,为了减少残差数据并提高编码效率,从其他已解码参考图片生成更准确的参考图片。借助于突出的算法或神经网络处理,生成的参考图片可以为视频压缩带来更准确的预测。

图1是根据实施例的通信系统(100)的简化框图的示意图。

系统(100)可以包括通过网络(150)互连的至少两个终端(110-120)。对于数据的单向传输,第一终端(110)可以在本地位置对视频数据进行编码,以通过网络(150)传输到另一终端(120)。第二终端(120)可以从网络(150)接收另一终端的已编码视频数据,对已编码数据进行解码并显示恢复的视频数据。可以在媒体服务应用等中执行单向数据传输。

图1示出了第二终端对(130,140),该第二终端对(130,140)用于支持例如在视频会议期间可能发生的编码视频的双向传输。对于数据的双向传输,每个终端(130,140)可以对在本地位置采集的视频数据进行编码,以通过网络(150)传输到另一终端。每个终端(130,140)还可以接收由另一终端发送的已编码视频数据,可以对已编码数据进行解码,并且可以在本地显示装置上显示恢复的视频数据。

在图1中,终端(110-140)可被示出为服务器、个人计算机以及智能电话,但是本公开的原理不限于此。本公开的实施例找到了与膝上型计算机、平板计算机、媒体播放器和/或专用视频会议的应用。网络(150)表示在终端(110-140)之间传送编码视频数据的任意数量的网络,包括例如有线和/或无线通信网络。通信网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,除非在下文中解释,否则网络(150)的体系结构和拓扑对于本公开的操作可能是不重要的,

图2是根据实施例的流式系统(200)的简化框图的示意图。

作为所公开的主题的应用的示例,图2示出了视频编码器和视频解码器在流式环境中的放置。所公开的主题可同等地适用于其他支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。

流式系统可以包括采集子系统(213),该采集子系统可包括例如数码相机的视频源(201),该视频源创建例如未压缩的视频样本流(202)。相较于已编码视频比特流,被描绘为粗线以强调高数据量的样本流(202)可以由耦接到相机(201)的编码器(203)处理。编码器(203)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于样本流,被描绘为细线以强调较低数据量的已编码视频比特流(204)可以存储在流式服务器(205)上以供将来使用。一个或多个流式客户端(206,208)可访问流式服务器(205)以检索已编码视频比特流(204)的副本(207,209)。客户端(206)可以包括视频解码器(210),该视频解码器(210)对已编码视频比特流的传入副本(207)进行解码,并产生可在显示器(212)或另一渲染装置(未描绘)上渲染的输出视频样本流(211)。在一些流式系统中,可根据视频编码/压缩标准对视频比特流(204、207、209)进行编码。非正式地称为下一代视频编码(Versatile Video Coding,VVC)的视频编码标准正在被开发。所公开的主题可用于VVC的上下文中。

图3是根据实施例的解码器(210)的简化框图的示意图。

接收器(310)可接收将由视频解码器(210)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列的解码。可从信道(312)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器(310)可接收已编码视频数据以及其他数据例如,已编码音频数据和/或辅助数据流,其可以被转发到它们各自的使用实体(未描绘)的。接收器(310)可将已编码视频序列与其他数据分开。为了防止网络抖动,缓冲存储器(315)可耦接在接收器(310)与熵解码器/解析器(320)(此后称为“解析器”)之间。当接收器(310)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要缓冲存储器(315),或该缓冲存储器可以较小。为了在互联网等业务分组网络上使用,可能需要缓冲存储器(315),该缓冲存储器可相对较大且可有利地具有自适应性大小。

视频解码器(210)可包括解析器(320),以从熵编码视频序列重建符号(321)。如图2所示,这些符号的类别包括用于管理解码器(210)的操作的信息,以及用以控制诸如显示器等的渲染装置(212)的潜在信息,该显示器不是解码器的整体部分,但可耦接到解码器。用于一个(或多个)渲染装置的控制信息可以是辅助增强信息(Supplemental EnhancementInformation,SEI消息)或视频可用性信息(Video Usability Information,VUI)的参数集片段(未描绘)的形式。解析器(320)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员已知的原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(320)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的任意一个子群或任意子群组合的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。熵解码器/解析器还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

解析器(320)可对从缓冲器(315)接收的视频序列执行熵解码/解析操作,从而创建符号(321)。

取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其他因素,符号(321)的重建可以涉及多个不同的单元。涉及哪些单元以及涉及方式可由解析器(320)从已编码视频序列解析的子群控制信息来控制。为了简洁起见,未描绘解析器(320)与下文的多个单元之间的此类子群控制信息流。

除已经提及的功能块以外,解码器210可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分成下文的功能单元是适当的。

第一单元是缩放器/逆变换单元(351)。缩放器/逆变换单元(351)从解析器(320)接收作为符号(321)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元可输出包括样本值的块,该样本值可输入到聚合器(355)中。

在一些情况下,缩放器/逆变换单元(351)的输出样本可以属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测信息可以由帧内图片预测单元(352)提供。在一些情况下,帧内图片预测单元(352)使用从当前(部分重建的)图片(356)提取的周围已重建信息生成大小和形状与正在重建的块相同的块。在一些情况下,聚合器(355)基于每个样本,将帧内图片预测单元(352)生成的预测信息添加到由缩放器/逆变换单元(351)提供的输出样本信息中。

在其他情况下,缩放器/逆变换单元(351)的输出样本可以属于帧间编码的和潜在的运动补偿块。在这种情况下,运动补偿预测单元(353)可以访问参考图片存储器(357)以提取用于预测的样本。在根据属于块的符号(321)对所提取的样本进行运动补偿之后,这些样本可以由聚合器(355)添加到缩放器/逆变换单元的输出(在这种情况下被称为残差样本或残差信号),从而生成输出样本信息。运动补偿单元从参考图片存储器内的地址获取预测样本可受到运动矢量控制,且该运动矢量以符号(321)的形式而供运动补偿单元使用,该符号(321)可以具有例如X、Y和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时,从参考图片存储器提取的样本值的内插、运动矢量预测机制等。

聚合器(355)的输出样本可经受环路滤波器单元(358)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频码比特流中并且作为来自解析器(320)的符号(321)可用于环路滤波器单元(358)的参数,然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(358)的输出可以是样本流,该样本流可输出到渲染装置(212)以及存储在参考图片存储器(357)中,以用于后续的帧间图片预测。

一旦完全重建,已编码图片就可用作参考图片以用于将来预测。一旦已编码图片被完全重建,且已编码图片(通过例如解析器(320))被识别为参考图片,则当前参考图片(356)可变为参考图片缓冲器(357)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。

视频解码器320可根据可以记录在标准中的预定视频压缩技术执行解码操作。如在视频压缩技术文档或标准以及配置文件中规定的,在已编码视频序列遵循视频压缩技术或标准的语法的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。对于合规性,还可要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

在一实施例中,接收器(310)可连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为已编码视频序列的一部分。该附加数据可由视频解码器(210)使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。

图4是根据实施例的编码器(203)的简化框图的示意图。

编码器(203)可从视频源(201)(并非编码器的一部分)接收视频样本,该视频源可采集将由编码器(203)编码的视频图像。

视频源(201)可提供将由编码器(203)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适采样结构(例如Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(201)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(201)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。

根据一实施例,编码器(203)可实时或在由应用所要求的任何其他时间约束下,对源视频序列的图片进行编码并压缩成已编码视频序列(443)。施行适当的编码速度是控制器(450)的一个功能。控制器控制如下文所描述的其他功能单元且在功能上耦接到这些单元。为了简洁起见,图中未描绘耦接。由控制器设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片群组(group of pictures,GOP)布局、最大运动矢量搜索范围等。由于控制器(450)的其他功能可涉及系统设计优化的视频编码器(203),本领域技术人员可以容易地识别这些功能。

一些视频编码器在本领域的技术人员容易识别的“编码环路”中进行操作。作为简单的描述,编码环路可包括编码器(430)(此后称为“源编码器”)的编码部分(负责基于待编码的输入图片和参考图片创建符号)和嵌入于编码器(203)中的(本地)解码器(433),编码器(203)重建符号以创建(远程)解码器也会创建的样本数据(因为在所公开的主题所考虑的视频压缩技术中,符号与已编码视频比特流之间的任何压缩是无损的)。将重建的样本流输入到参考图片存储器(434)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片缓冲器内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)对本领域的技术人员来说是公知的。

“本地”解码器(433)的操作可与已在上文结合图3详细描述的“远程”解码器(210)的操作相同。然而,另外简要参考图3,当符号可用且熵编码器(445)和解析器(320)可能够无损地将符号编码/解码为已编码视频序列时,包括信道(312)、接收器(310)、缓冲器(315)和解析器(320)在内的解码器(210)的熵解码部分,可能无法完全在本地解码器(433)中实施。

此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,所公开的主题侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在区域中需要更详细的描述,并且在下文提供。

作为其操作的一部分,源编码器(430)可执行运动补偿预测编码,参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,该运动补偿预测编码对输入帧进行预测性编码。以此方式,编码引擎(432)对输入帧的像素块与参考帧的像素块之间的差异进行编码,该参考帧可被选作该输入图片的预测参考。

本地视频解码器(433)可以基于源编码器(430)创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎(432)的操作可有利地为有损过程。当已编码视频数据可在视频解码器处被解码时,已重建视频序列可以是带有一些误差的源视频序列的副本。本地视频解码器(433)复制解码过程,该解码过程可由视频解码器对参考帧执行,且可使重建的参考帧存储在参考图片高速缓存(434)中。以此方式,编码器(203)可在本地存储重建参考帧的副本,该副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。

预测器(435)可针对编码引擎(432)执行预测搜索。也就是说,对于要编码的新帧,预测器(435)可在参考图片存储器(434)中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或元数据,例如参考图片运动矢量、块形状等。预测器(435)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(435)获得的搜索结果所确定的那样,输入图片可具有从参考图片存储器(434)中存储的多个参考图片取得的预测参考。

控制器(450)可以管理视频编码器(430)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可以在熵编码器(445)中对所有上述功能单元的输出进行熵编码。熵编码器根据例如霍夫曼编码、可变长度编码、算术编码等本领域技术人员已知的技术对各种功能单元生成的符号进行无损压缩以将该符号变换成已编码视频序列。

传输器(440)可缓冲由熵编码器(445)创建的已编码视频序列,从而为通过通信信道(460)进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储装置的硬件/软件链路。传输器(440)可将来自视频编码器(430)的已编码视频数据与要传输的其他数据合并,该其他数据例如是已编码音频数据和/或辅助数据流。

控制器(450)可以管理编码器(203)的操作。在编码期间,控制器(450)可以为每个已编码图片分配已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种帧类型:

帧内图片(I图片),其可以是不将序列中的任何其他帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。

源图片可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其他(已编码)块进行预测性编码,该其他块由应用于块的相应图片的编码分配来确定。例如,I图片的块可进行非预测性编码,或该块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间域预测进行非预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测进行非预测性编码。

传统仿射运动模型包括6个参数。对于具有给定仿射模式的位置(x,y)处的每个像素,其运动矢量(MV)(vx,vy)可通过三个角控制点运动矢量进行线性内插,如图8的部分(a)所示。还考虑了仿射模式的简化版本,其中只需要4个参数(或在两个控制点位置处的等效运动矢量)来描述仿射对象中的运动,如图8的部分(b)所示。在这种情况下,位置(x,y)处的运动矢量可以通过使用左上角和右上角的运动矢量来表示,如公式(1)中所示。根据该公式,当前块内每个像素的运动矢量将被计算为两个(或三个,在6个参数的情况下)角控制点的运动矢量的加权平均值。在VVC标准中,CU级标志用于在4参数仿射模式和6参数仿射模式之间进行切换。

虽然仿射编码块中的每个样本可以使用上述公式导出其自身的运动矢量,但实际上VVC标准中的仿射运动补偿是在子块基础上进行操作,以降低实现的复杂度。也就是说,将当前编码单元中的每个4×4亮度区域视为整体单元(使用该子块的中心位置作为代表位置)以导出其子块运动矢量。为了提高仿射运动补偿的精度,使用1/16像素亮度MV分辨率和1/32色度MV分辨率。对于仿射编码块,可以通过从相邻仿射编码块导出来预测其控制点运动矢量(Control Point Motion Vector,CPMV)。假设相邻块和当前块在同一仿射对象中,则可以使用相邻块的CPMV加上它们之间的距离来导出当前块的CPMV。这种预测称为导出仿射预测。也可以通过每个角的空间相邻编码块的MV来预测仿射编码块的CPMV。这种预测称为构建仿射预测。在预测之后,对于当前块的每个CPMV,以与常规帧间运动矢量方向(Motion Vector Direction,MVD)编码相同的方式对预测差异进行熵编码。在仿射情况下,对于每个预测列表,将对每个参考列表最多3个MV差进行编码。具有用信号表示的MV差的仿射模式和使用来自两个导出预测的候选的仿射合并模式都能支持。

为了提高合并模式的MV的准确性,在VVC软件的当前草案中应用基于双边匹配(bilateral-matching,BM)的解码器侧运动矢量细化。在双预测操作中,围绕参考图片列表L0和参考图片列表L1中的初始MV搜索细化的MV。BM方法计算参考图片列表L0和列表L1中的两个候选块之间的失真。如图9所示,基于初始MV周围的每个MV候选计算黑色块之间的绝对差值之和(Sum of Absolute Difference,SAD)。具有最小SAD的MV候选成为细化的MV并用于生成双预测信号。通过解码器侧运动矢量细化(DMVR)处理导出的细化的MV用于生成帧间预测样本,且还用于后续图片编码的时间运动矢量预测。原始MV用于解块处理,并用于空间运动矢量预测,以用于后续的CU编码。

视频编码器(203)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(203)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。

在一实施例中,传输器(440)可在传输已编码的视频时传输附加数据。视频编码器(430)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其他形式的冗余数据、SEI消息、VUI参数集片段等。

在更详细地描述所公开的主题的方面之前,需要介绍一些将在本说明的其余部分中涉及的术语。

在一些情况下,此后子图片是指样本、块、宏块、编码单元等在语义上被分组、并且可以以改变的分辨率独立编码的类似实体的矩形排列。一个或多个子图片可用于图片。一个或多个已编码子图片可以形成已编码图片。可以将一个或多个子图片组合成图片,并且可以从图片中提取一个或多个子图片。在环境中,可以在压缩域中组合一个或多个已编码子图片,而不需要转码到样本级成为已编码图片,并且在相同情况或其他情况下,可以从压缩域中的已编码图片中提取一个或多个已编码子图片。

在VVC或其他视频编码框架或标准中,已解码图片可包括在参考图片列表(Reference Picture List,RPL)中,并可作为参考图片用于运动补偿预测以及用于以编码或解码顺序对后续图片进行编码的其他参数预测,或者可用于针对当前图片的不同区域或块进行编码的帧内预测或帧内块复制。

在一实施例中,一个或多个虚拟参考可在编码器和解码器中、或仅在解码器中生成并包括在RPL中。虚拟参考图片可通过一个或多个过程生成,该过程包括信号处理、空间或时间滤波、缩放、加权平均、上/下采样、池化、具有存储器的递归处理、线性系统处理、非线性系统处理、神经网络处理、基于深度学习的处理、人工智能处理、预先训练的网络处理、基于机器学习的处理、在线训练网络处理、基于计算机视觉的处理或其组合。对于生成虚拟参考的处理,零个或多个前向参考图片和零个或多个后向参考图片被用作输入数据,该零个或多个后前参考图片在输出/显示顺序和编码/解码顺序两者中都在当前图片之前,该零个或多个后向参考图片在输出/显示顺序中在当前图片之后但在编码/解码顺序中在当前图片之前。处理的输出是用作新参考图片的虚拟/已生成图片。

图5A是根据实施例的虚拟参考图片生成和插入到参考图片列表中的示意图。

在同一实施例中,图5A示出了虚拟参考图片生成和插入到参考图片列表中的示例。图5A中给出了分层GOP结构510,在当前图片的图片顺序计数(Picture Order Count,POC)等于3时,通常POC等于0、2、4或8的已解码图片可以存储在已解码图片缓冲器中,并且其中一些包括在用于对当前图片(POC3)进行解码的参考图片列表520中。作为示例,可以将POC等于2或4的最邻近已解码图片作为输入数据被馈送到虚拟参考生成处理器530中。可以通过一个或多个过程生成虚拟参考图片。所生成的虚拟参考图片可以存储在已解码图片缓冲器中,并包括在当前图片或在解码顺序中的一个或多个后续图片的参考图片列表520中。如果虚拟参考图片包括在当前图片的参考图片列表520中,则当通过参考索引指示使用虚拟参考图片时,虚拟参考图片的生成的像素数据可作为参考数据用于运动补偿预测。

在同一或另一实施例中,整个虚拟参考生成处理可以包括具有一个或多个预训练神经网络模型或任何预定义参数的多个信令处理模块中的一个信令处理模块。例如,如图5A所示,整个虚拟参考生成处理可以包括光流估计模块540、虚拟参考数据的光流补偿模块550和细节增强模块560。

在另一示例中,整个虚拟参考生成处理可以包括特征流估计、粗略中间帧合成和细节增强过程。

在一实施例中,虚拟参考生成处理可包括一个或多个神经网络。

图5B是根据实施例的虚拟参考图片生成处理的示意图。

图5B示出了虚拟参考生成处理的示例,该虚拟参考生成处理包括三个子过程:特征流估计、粗略中间帧合成和细节增强过程。默认情况下,输入一个或多个前向参考图片和一个或多个后向参考图片,而一个输出图片用作针对视频编码的生成的虚拟参考图片。可选地,通过编码器配置或相邻上下文(例如,GOP结构),两个或更多个前向参考图片用作输入数据,或两个或更多个后向参考图片用作输入数据。

在同一实施例中,如图5B中的示例所示,光流估计模块540包括边缘检测器565、特征提取器570和特征流估计器575,特征流估计器575具有用于每个参考帧的边缘映射和特征映射。例如,当参考数据被馈送到特征流估计器575中时,用预先训练的边缘检测神经网络或预定义算法检测参考图片的边缘。边缘映射级联为第四信道以增强动态场景的结构信息。一旦获得边缘、边界或特征,将计算一个或多个特征/流映射以馈送特征流预测器580。光流估计处理的输出是两个或更多个深度特征映射。

在同一实施例中,如图5B所示,粗略中间帧合成的处理包括具有偏移补偿的翘曲处理和具有加权特征的混合。光流补偿模块550包括特征流预测器580和混合器585。当两个或更多个参考图片以其相应边缘映射作为输入时,特征流预测器580生成用于可变形卷积的偏移映射以产生翘曲特征。利用所获得的偏移映射对每个像素或特征进行空间移位。因为有时一个或多个流偏移将1到N个像素从参考特征连接到中间虚拟参考特征,所以可以在生成的虚拟参考图片中应用孔洞填充(例如,图像修整)。还对多注意力预测器也应用于特征,以得到包装特征的权重映射。如果从多个输入参考图片生成两个或更多个中间虚拟参考图片,则混合器585使用加权平均或组合将那些中间帧混合或合成为一个虚拟参考图片。一旦合成粗略中间帧,所有三个帧将被馈送到细节增强模块560,以使用时间空间信息的更多融合来提高中间帧质量。

在同一实施例中,可以通过多种技术来计算每个中间参考图片的混合权重。一个示例是,计算关于当前图片和作为虚拟参考图片生成模块的输入的已解码参考图片之间的(通过POC值获得)时间距离的权重值。另一个示例是,基于每个像素、区域或图片的图像质量来(本地)计算权重值。可以使用任何测量度量来确定哪些区域具有用于生成参考图片的良好质量或不良质量。在另一示例中,考虑到注意力,可以获得权重作为一个或多个预先训练的神经网络的推理处理的输出。

在同一或另一实施例中,可以使用一个或多个卷积网络模型。一个示例是可变形卷积网络模型,该可变形卷积网络模型可对每个特征像素具有偏移值。使得能够更灵活的局部平移运动,可变形卷积网络模型可以估计和补偿偏移流。另一示例是可分离卷积网络模型,其可以有效地表示空间自适应的水平或垂直运动。多种网络模型的结合可提高网络推理的性能。

在同一或另一实施例中,比特流中的已编码运动矢量可用于光流的预估计。因此,已编码运动矢量可用作具有粗略分辨率的光流的初始值,以及任何神经网络推理处理都可提高光流的分辨率和精度。为了使得能够比其他参数或已编码系数更早地对运动矢量进行解析和解码,可以在每个已编码图片的较早位置(例如,图片头、切片头或图片的第一切片)对具有运动矢量预测指示符的运动矢量或运动矢量delta值进行编码。

在同一或另一实施例中,任何解码器侧运动矢量或光流估计器(例如,DMVR)可用于估计光流的初始值。可以组合或协调两个或更多个解码器侧运动矢量估计器和神经网络推理过程以找到光流的光学值。

在同一或另一实施例中,当通过光流估计和补偿过程生成虚拟参考图片时,可以使用两个或更多个输入参考图片及其预先获得的边缘和特征数据,通过后处理来增强虚拟参考图片的图像质量。通常,由于两个或更多个图片经过平滑处理被混合,因此通过光流估计和补偿的生成的参考图片可能变得模糊。一个或多个预先训练或预先定义的边缘增强、恢复、去模糊、去噪、去块、压缩降噪、维纳滤波(wiener filtering)、超分辨率重建、锐化、颜色恢复或增强、主观质量增强。

在同一实施例中,可以使用预先训练的网络模块对从每个(输入的)已解码参考图片获得的每个浅边缘或特征进行空间补偿或移位,并再次与生成的虚拟参考图片混合以增强细节。

在同一或另一实施例中,生成虚拟参考图片的处理可在逐帧、正方形或非正方形局部区域(例如,图块、图块组或子图片)或小块级(例如,编码单元或编码树单元)中处理。是按逐帧还是按逐区域/逐块处理虚拟参考数据的生成可以通过编码器选择、用户的输入数据、预先训练的网络或任何决策算法来确定。

在同一实施例中,可以在已编码比特流中的高级语法结构(例如,SPS、PPS、APS、SEI消息或元数据框)中用信号表示一个或多个语法元素、指示符或标志,该一个或多个语法元素、指示符或标志指示处理是应用于整个帧还是应用于一个或多个区域/块。

在同一或另一实施例中,可在对当前图片解码完成后部分地更新现有虚拟参考图片。在一个示例中,现有虚拟参考图片中的一个或多个区域可由类似于上述的生成处理来代替,但将已解码当前图片作为附加输入数据。其可以通过不同的方法来部分地更新,例如用当前已解码图片的一个或多个同位部分代替一个或多个区域。

在同一实施例中,可以在高级语法结构(例如,与当前已解码图片相关联的图片头、PPS或切片头)中指示现有虚拟参考图片的部分更新的选项和参数。参数可以包括区域位置、大小、更新虚拟参考图片的方法选择。

在同一或另一实施例中,可以从其他用信号表示的语法元素/参数/元数据、或相邻序列/帧/块的已编码信息、任何预定义的推理规则或任何自动处理(包括神经网络处理)中推断出一个或多个内部变量,该一个或多个内部变量指示处理是应用于整个帧还是应用于一个或多个区域/块。

在一个实施例中,当参考图片列表中包括一个或多个虚拟参考图片时,如果针对每个CU显式地用信号表示或从先前已编码上下文信息(例如,先前已编码CU的参考索引,例如,相邻CU、生成的成对平均运动信息,其中使用虚拟参考图片对成对平均运动信息中的至少一个原始候选进行编码、在基于历史的运动缓冲器中存储的条目等)隐式导出的参考图片指示符指示虚拟参考图片,则通过前述处理生成的参考像素数据可用作帧间模式的预测数据。

在传统的视频编码系统中,例如在VVC中,包括运动矢量、参考图片索引、参考图片列表的运动参数可以以显式(AMVP)或隐式(合并或跳过)的方式用信号来表示。当使用AMVP模式时,参考图片索引可指示用于帧间预测的零个或多个虚拟参考图片。当使用合并模式时,从在一些先前已编码CU(例如,相邻CU、生成的成对平均运动信息、在基于历史的运动缓冲器中存储的条目等)中编码的候选中的一个候选复制参考图片索引信息。在VVC中的一个示例中,通过按顺序包括以下五种类型的候选来构建合并候选列表:来自空间相邻CU的空间MVP、来自同位CU的时间MVP、来自FIFO表的基于历史的MVP、成对平均MVP、零MV。在一个实施例中,可以在列表中插入附加合并模式候选。只有在当前图片具有在参考图片列表中的至少一个虚拟参考图片时,才激活附加合并模式。合并模式可使用虚拟参考图片中的同位块(具有零运动)中的像素数据作为帧间预测数据。

在同一实施例中,包括具有虚拟参考图片的新候选的合并候选的顺序可以通过高级语法结构中的任何显式信号表示或来自先前已编码上下文信息(例如,合并候选的命中率)的任何隐式推导来重新排序。

在另一实施例中,虚拟参考图片可用于执行基于子块的运动补偿,例如仿射运动补偿。可不使用预测而从直接信号表示中导出仿射参数的控制点MV(CPMV)。CPMV也可通过部分或全部参考一些先前的已编码仿射块模型来导出。例如,使用虚拟参考图片的当前块的左上CPMV可以用信号表示或假定为零,并且可以使用来自先前的已编码仿射块的仿射模型来导出块的其他CPMV。

在另一实施例中,虚拟参考图片可用于执行解码侧运动矢量推导技术,例如用于MV推导的DMVR或模板匹配。在一个示例中,虚拟参考图片可以在DMVR模式下用作两个参考图片中的一个参考图片。在另一示例中,来自虚拟参考图片的预测块可用作目标块,以执行DMVR中的解码器搜索,而不使用DMVR中最初提出的SAD机制,该DMVR是通过比较来自两个参考图片的两个预测块(由双向运动矢量对指示)生成的。在该示例中,来自虚拟参考图片的预测块可用于在DMVR搜索中与来自修改的MV的新预测值对进行比较。当与来自虚拟参考图片的预测值相比较时,具有最小化SAD的对可以被认为是细化。

在同一或另一实施例中,从虚拟参考图片生成的样本预测值可以与通过帧间或帧内预测方法得到的与一个(或多个)样本预测值一起使用。在一个示例中,其可以与针对最终预测块中的每个样本的帧间或帧间预测值一起加权平均。在另一示例中,块中的样本位置可用于确定虚拟参考预测值与一个(或多个)帧间或帧内预测值之间的权重。

在同一或另一实施例中,如果通过编码器配置或隐式判定确定虚拟参考图片是按区域生成的,则虚拟参考图片可被划分为两个或更多个虚拟子图片,从而通过上述过程独立地生成每个虚拟子图片。这种虚拟子图片的划分布局可以在一个或多个高级语法结构(例如,VPS、SPS、PPS、SEI消息)中用信号表示。通常,虚拟子图片的宽度和高度可是图块(如果存在)或CTU大小的整数倍。下面图6B用虚拟子图片划分总结整个处理。

在同一实施例中,将虚拟参考图片划分为多个虚拟参考图片的原因之一是:由于存储器或计算能力的限制,可能需要神经网络推理处理的逐区域独立处理以生成虚拟参考。另一个原因是用多个CPU或GPU并行处理如4K或8K这样的大序列。另一个原因是针对视图端口相关的VR360流或云游戏内容流的逐区域独立下载或流传输。

在同一实施例中,当已编码图片被划分成多个子图片时,高级语法结构中的标志可以指示虚拟子图片布局是否与子图片布局相同。如果一致,则虚拟子图片布局不显式地用信号表示,而是推断为等于子图片划分布局。

在同一或另一实施例中,当虚拟参考图片被划分为多个虚拟子图片并且通过上述过程独立地生成每个虚拟子图片时,通常整个生成的虚拟参考可能在虚拟子图片的边界上具有阻塞伪影。阻塞伪影可能会降低编码性能。为了消除虚拟参考图片中的伪影,可以在边界上应用任意平滑滤波器/处理。可在编码比特流中用信号表示、预先训练或预定义滤波器系数。当用信号表示时,可以在高级语法结构中用信号表示一组或多组系数,并且每个虚拟参考图片或子图片可以通过用信号表示索引来选择其中的一个。

在同一实施例中,用于视频编码系统的现有解块处理,例如VVC的解块处理,可应用于有效地减轻块伪影。在这种情况下,边界强度(boundary strength,BS)值可被设置为默认等于预定义值(例如,1)。

在同一实施例中,解块处理的BS值从以下值中的一个或多个值导出:1)相邻虚拟参考子图片之间的光流差(光流差大可指示边界伪影强),2)当前图片或其他参考图片中的同位块(或CU)的BS值或其他编码参数,3)虚拟参考图片生成处理的边缘或特征信息,或4)当其他选项不可用时的默认值。

在同一或另一实施例中,当对子图片进行独立地编码并将子图片作为具图片使用边界填充处理进行处理时,虚拟参考图片可被划分为多个虚拟参考子图片,多个虚拟参考子图片具有与当前图片的子图片相同的划分布局。在这种情况下,跨虚拟子图片边界的任何滤波处理都是不允许的。

在同一或另一实施例中,当在解码器侧不将虚拟参考子图片用于帧间预测时,不从前述过程导出虚拟参考子图片。相反,如果存在,则可以用一个或多个默认值填充。

在同一实施例或另一实施例中,当逐帧对生成处理进行处理时,生成整个参考图片,并且可将整个参考图片添加到RPL中。类似于其他已解码参考帧,可以在已解码图片缓冲器(decoded picture buffer,DPB)中将所生成的帧作为参考图片进行存储和处理。

在同一或另一实施例中,默认可以不输出和显示虚拟参考图片。然而,内部变量的值、用信号表示的语法元素、算法、推理规则或预定义规则的任何值都可以输出和显示所生成的虚拟参考图片。这可能导致显示侧中帧率的增加,或者为了系统级中的错误隐藏或稳定的解码器管理而替换丢失的图片。

在同一或另一实施例中,虚拟参考图片可针对不同目的被分配POC号。为了提高显示侧的帧率,POC号可在两个现有输出图片之间。例如,两个现有图片可以具有POC值N和N+2,并且虚拟参考图片可被分配有等于N+1的POC号,使得该POC号可以显示在两个图片之间。在另一示例中,两个现有图片可以具有POC值N和N+1,并且虚拟参考图片可以被分配有等于N+0.5(在这种情况下是非整数值)的POC号,以使得该POC号可以显示在两个图片之间。为了替换丢失的图片以用于错误隐藏或稳定的解码器管理,虚拟参考图片可以被分配与丢失图片的POR号相等的POC号。

在同一或另一实施例中,当输出虚拟参考图片时,与其他已解码参考图片类似,可以对虚拟参考图片应用裁剪和拖拽处理。针对虚拟参考图片的裁剪窗口的值可以在一个或多个高级语法元素(例如,参数集或SEI消息)中用信号表示。当在编码比特流中没有显式地用信号表示裁剪窗口信息时,可以使用预定义的默认值进行裁剪,或者可以不应用裁剪。

在同一或另一实施例中,当虚拟参考图片可用于对当前图片进行编码/解码时,虚拟参考图片可包括在当前图片的活动参考图片列表中。

在同一或另一实施例中,当虚拟参考图片不用于对当前图片进行编码/解码时,而是用于对在解码顺序中的一个或多个后续图片进行编码/解码时,虚拟参考图片可以包括在当前图片的非活动参考图片列表中。

在同一或另一实施例中,可以在一个或多个高级语法结构(例如,参数集、图片头、切片头或SEI消息)中显式地用信号表示活动或非活动参考图片列表,或者可以用预定义算法/规则从其他语法元素/参数/内部变量隐式地导出活动或非活动参考图片列表。

图6A是根据实施例的用虚拟参考图片对已编码视频流进行解码的方法的流程图。

在同一或另一实施例中,图6A示出了生成和管理用于对当前图片或后续图片进行解码的虚拟参考图片的框图。当对一些语法元素进行解析或对一些相关参数进行解译时(操作605),解码器可以检查当前图片是否使用一个或多个虚拟参考图片用于帧间预测或运动补偿(操作610)。如果使用,则生成虚拟参考图片(操作615),并将该虚拟参考图片插入活动参考图片列表中(操作620)。如果未用于当前图片,则解码器可再次检查针对当前图片生成的虚拟参考图片是否用于解码顺序中的后续图片(操作625)。如果用于任意随后的图片,则生成虚拟参考图片(操作630),并将该虚拟参考图片包括到非活动参考图片列表中(操作635)。否则,不针对当前图片生成虚拟参考图片(操作640)。

在同一实施例中,当现有的虚拟参考图片不再用于对当前图片、任意后续图片或其他数据进行编码/解码时,虚拟参考图片可以不包括在参考图片列表中,并将从已解码图片缓冲器中去除虚拟参考图片。

在同一实施例中,虚拟参考图片从已解码图片缓冲器中的图片去除时间可以在高级语法结构(参数集、SEI消息)中显式地用信号表示,或者从其他语法元素/参数/内部变量隐式地导出。

在同一或另一实施例中,可以修改包括一个或多个已解码参考图片和一个或多个虚拟参考图片的参考图片列表,使得具有高质量和高命中率的参考图片可以位于列表的较早位置。参考图片在RPL中的最佳顺序可以通过预编码、预确定的算法/规则、预训练的神经网络推理处理或来自如GoP结构的相邻上下文的任何推理规则来确定。

在同一实施例中,高质量可以通过用于图片中的QP信息来测量,例如,在图片/切片头中使用平均值指示的QP值。当一个参考图片用于对上一个图片进行解码时,高命中率可以通过的块级使用频率来测量。块级使用可以包括统计信息,例如,涉及该参考图片的块的数目、涉及该参考图片的样本的数目等。

在同一或另一实施例中,当生成虚拟参考图片时,该参考图片的POC值可以被设置为与当前图片的POC值相等。

在同一或另一实施例中,当生成虚拟参考图片时,该参考图片的层ID的值可以被设置为与当前图片的层ID的值相等。

在同一或另一实施例中,虚拟参考图片可以在RPL中被标记为“长期参考”,使得基于POC的MV缩放不应用于虚拟参考图片。

在同一或另一实施例中,当虚拟参考图片称为用于导出时间运动矢量预测值的参考时,与用于时间MV预测的虚拟参考图片相关联的MV值可以被设置为等于零。

在同一或另一实施例中,标志或另一语法元素可以存在于SPS中。当标志或语法元素等于1时,可以生成一个或多个虚拟参考图片,且该一个或多个虚拟参考图片可用于对涉及SPS的已编码视频序列中的图片进行编码/解码。当标志或语法元素等于0时,不生成虚拟参考图片,也不使用虚拟参考图片对涉及SPS的已编码视频序列中的图片进行编码/解码。

在同一或另一实施例中,标志或另一语法元素可以存在于PPS中。当标志或语法元素等于1时,可以生成一个或多个虚拟参考图片,且该一个或多个虚拟参考图片可用于对涉及PPS的图片进行编码/解码。当标志或语法元素等于0时,不生成虚拟参考图片,也不使用虚拟参考图片对涉及PPS的图片进行编码/解码。

在同一或另一实施例中,标志或另一语法元素可以存在于APS中。当标志或语法元素等于1时,可以生成一个或多个虚拟参考图片,且该一个或多个虚拟参考图片可用于对涉及APS的切片进行编码/解码。当标志或语法元素等于0时,可以不生成虚拟参考图片,也可以不使用虚拟参考图片对涉及APS的切片进行编码/解码。

在同一或另一实施例中,标志或另一语法元素可以存在于图片头中。当标志或语法元素等于1时,可以生成一个或多个虚拟参考图片,且该一个或多个虚拟参考图片可用于对与图片头相关联的图片进行编码/解码。当标志或语法元素等于0时,可以不生成虚拟参考图片,也不使用虚拟参考图片对与图片头相关联的图片进行编码/解码。

在同一或另一实施例中,标志或另一语法元素可以存在于切片头中。当标志或语法元素等于1时,可以生成一个或多个虚拟参考图片,且该一个或多个虚拟参考图片用于对与切片头相关联的切片进行编码/解码。当标志或语法元素等于0时,可以不生成虚拟参考图片,也可以不使用虚拟参考图片对与切片头相关联的切片进行编码/解码。

在同一或另一实施例中,高级语法结构中的一个或多个语法元素指示哪些时域子层图片可使用虚拟参考图片进行编码/解码。例如,可在SPS、PPS、APS或PH中用信令表示一个或多个语法元素virtual_ref_use_temporal_id_flag[i],其指示具有第i个时域子层或具有等于i的时域ID的图片是否使用虚拟参考图片进行编码/解码)。

在同一或另一实施例中,任何预定义规则或算法(可涉及图片结构组、其他语法元素、参数或内部变量)可确定哪个时域子层可以使用或不可以使用虚拟参考图片进行编码/解码。例如,只有具有最高时域子层的图片可以使用一个或多个虚拟参考图片进行帧间预测,而其他图片不使用虚拟参考图片。

在同一或另一实施例中,用于生成虚拟参考图片的一个或多个方法、模块、神经网络模型或技术可以是预定义的或预先训练的。对于区域、切片、图块、子图片、图片、时间子层或图片组,编码器可选择用于用预编码、基于率失真的判定或任何算法来生成虚拟参考图片的方法/模型。在高级语法结构中用信号表示的一个或多个语法元素可以指示对于每个区域、切片、图块、子图片、图片、时域子层或图片组使用哪种方法/模型。

在同一或另一实施例中,虚拟参考图片生成方法/模型的全部或部分及其参数、系数、权重或偏移量在编码器和解码器之间是预定义和确认的、在任何文档中明确描述、或登记在任何外部标准参考列表中。

在同一或另一实施例中,虚拟参考图片生成方法/模型的全部或部分及其参数、系数、权重或偏移量显式地编码在已编码视频流中、在任何文件格式的框中用信号表示、或写入附加到已编码流中的任何补充文档中。

图6B是根据实施例的用虚拟参考子图片对已编码视频流进行解码的方法的流程图。

如图6B所示,在操作645中,解码器210对已编码比特流中的语法元素进行解析或对参数进行解译。

在操作650中,解码器210确定当前图片是否使用虚拟参考图片。基于确定当前图片不使用虚拟参考图片,方法继续到操作655。否则,方法继续到操作660。

在操作655中,解码器210用存储在DPB中的参考图片对当前图片进行解码。

在操作660中,解码器210确定虚拟参考图片是否被划分为多个虚拟子图片。基于确定虚拟参考图片没有被划分为多个虚拟子图片,方法继续到操作665。否则,方法继续到操作675。

在操作665中,解码器210从相邻参考图片生成虚拟参考图片。

在操作670中,解码器210将生成的虚拟参考图片存储在DPB中,并用存储在DPB中的参考图片对当前图片进行解码。

在操作675中,解码器210从相邻参考图片生成虚拟参考子图片,并平滑所生成的虚拟参考子图片的边界。

在操作680中,解码器210基于边界被平滑的虚拟参考子图片合成虚拟参考图片,将合成的虚拟参考图片存储在DPB中,并用存储在DPB中的参考图片对当前图片进行解码。

图7是根据实施例的计算机系统700的示意图。

上述用于用虚拟参考图片进行帧间预测的技术可以实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图7示出了适于实施所公开主题的实施例的计算机系统700。

可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码等执行。

指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。

图7中所示的计算机系统700的组件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统700的实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖或要求。

计算机系统700可以包括人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。

输入人机接口设备可以包括下述中的一项或多项(每种中仅示出一个):键盘701、鼠标702、触控板703、触摸屏710、数据手套704、操纵杆705、麦克风706、扫描仪707、相机708。

计算机系统700可以包括人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏710的触觉反馈、数据手套704或操纵杆705,但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器709、耳机(未描绘))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕710,每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。

计算机系统700还可以包括人类可访问存储装置及其关联介质,例如,包括具有CD/DVD等介质721的CD/DVD ROM/RW 720的光学介质、指状驱动器722,可拆卸硬盘驱动器或固态驱动器723、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未描绘)等。

本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号。

计算机系统700还可以包括到一个或多个通信网络的接口。网络可以例如是无线网络、有线网络、光网络。网络还可以是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。网络需要连接到通用数据端口或外围总线(749)的外部网络接口适配器(例如,计算机系统700的USB端口);如下所述,其他网络接口可通过连接到系统总线而集成到计算机系统700的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统700可以使用这些网络中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口中的每一个上使用协议和协议栈。

上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统700的内核740。

内核740可以包括一个或多个中央处理单元(CPU)741,图形处理单元(GPU)742,现场可编程门区域(FPGA)743形式的专用可编程处理单元、用于任务的硬件加速器744等。这些装置以及只读存储器(ROM)745、随机存取存储器746、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器747可以通过系统总线748连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线748,以能够通过附加的CPU、GPU等进行扩展。外围装置可以直接连接到内核的系统总线748或通过外围总线749连接到内核的系统总线748。外围总线的体系结构包括PCI、USB等。

CPU 741、GPU 742、FPGA 743和加速器744可以执行指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在ROM 745或RAM 746中。过渡数据也可以存储在RAM 746,而永久数据可以例如存储在内部大容量存储器747中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU 741、GPU 742、大容量存储器747、ROM 745、RAM 746等。

计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构700,内核740的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及非暂时性的内核740的存储器,例如内核内部大容量存储器747或ROM745。可以将实施本公开的各实施例的软件存储在此类装置中并由内核740执行。计算机可读介质可以包括一个或多个存储器装置或芯片。软件可以使得内核740,其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的过程或过程的部分,包括定义存储在RAM 746中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器744)中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的过程或过程的部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。

尽管本公开已经描述了多个实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号