掌桥专利:专业的专利平台
掌桥专利
首页

视频处理的方法、设备和介质

文献发布时间:2024-04-18 20:01:23


视频处理的方法、设备和介质

技术领域

本公开的实施例总体上涉及视频编解码技术,并且更具体地,涉及基于光流的编解码。

背景技术

如今,数字视频功能正被应用于人们生活的各个方面。已经针对视频编码/解码,已经提出了多种类型的视频压缩技术,诸如MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频编解码(AVC)、ITU-T H.265高效视频编解码(HEVC)标准、通用视频编解码(VVC)标准。然而,常规视频编解码技术的编解码效率通常非常低,这是不希望的。

发明内容

本公开的实施例提供了一种用于视频处理的解决方案。

在第一方面,提出了一种视频处理的方法。该方法包括:在视频单元和视频单元的码流之间的转换期间,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,确定基于光流的编解码方法是否被应用于视频单元;以及基于该确定执行转换。根据本公开的第一方面的方法在确定是否或如何应用基于光流的编解码方法时考虑光照信息,这可以有利地提高编解码效率和性能。

在第二方面,提出了一种用于处理视频数据的装置,该装置包括处理器和在其上具有指令的非暂态存储器,其中该指令在由处理器执行时,使处理器执行根据本公开的第一方面的方法。

在第三方面,提出了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储使处理器执行根据本公开的第一方面的方法的指令。

在第四方面,提出了一种非暂态计算机可读记录介质,该非暂态计算机可读记录介质存储视频的通过由视频处理装置执行的方法生成的码流,该方法包括:基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,确定基于光流的编解码方法是否被应用于视频单元;以及基于信息生成视频单元的码流。

在第五方面,提出了一种用于存储视频码流的方法,该方法包括:基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,确定基于光流的编解码方法是否被应用于视频单元;基于该确定生成视频单元的码流;以及将该码流存储在非暂态计算机可读记录介质中。

提供本发明内容部分是为了以简化的形式介绍以下具体实施方式中进一步描述的概念的选择。本发明内容部分不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。

附图说明

通过以下参考附图的详细描述,本公开的示例实施例的上述和其他的目的、特征和优点将变得更加明显。在本公开的示例实施例中,相同的附图标记通常指代相同的组件。

图1示出了根据本公开的一些实施例的示例视频编解码系统的框图;

图2示出了根据本公开的一些实施例的示例视频编码器的框图;

图3示出了根据本公开的一些实施例的示例视频解码器的框图;

图4是示例编码器框图的;

图5是帧内预测模式的示意图;

图6示出了用于广角帧内预测的参考样本的框图;

图7示出了在方向超过45度的情况下不连续性的框图;

图8示出了在双向光流(BDOF)中被使用的扩展的编解码单元(CU)区域的框图;

图9显示了基于控制点的仿射运动模型;

图10显示了每个子块的仿射MVF;

图11示出了继承仿射运动预测器的位置的框图;

图12示出了控制点运动矢量继承的框图;

图13示出了所构建的仿射合并模式的候选位置的位置框图;

图14是用于所提出的组合方法的运动矢量使用的示意图;

图15示出了子块MV V

图16示出了局部光照补偿的框图;

图17显示了短边无二次采样;

图18示出了解码侧运动矢量细化的框图;

图19示出了搜索区域中的菱形区域的框图;

图20示出了空间合并候选的位置的框图;

图21示出了用于空间合并候选的冗余检查的候选对的框图;

图22是用于时间合并候选的运动矢量缩放的示意图;

图23示出了针对时间合并候选C0和C1的候选位置的框图;

图24示出了当前块的VVC空间邻近块;

图25示出了第i轮搜索中的虚拟块;

图26示出了根据本公开的一些实施例的用于视频处理的方法2600的流程图;

图27示出了根据本公开的一些实施例的用于视频处理的方法2700的流程图;

图28示出了根据本公开的一些实施例的用于视频处理的方法2800的流程图;

图29示出了根据本公开的一些实施例的用于视频处理的方法2900的流程图;以及

图30示出了可以在其中实现本公开的各种实施例的计算设备的框图。

在所有附图中,相同或相似的附图标记通常指代相同或相似的元素。

具体实施方式

现在将参考一些实施例来描述本公开的原理。应当理解的是,描述这些实施例仅出于说明并且帮助本领域技术人员理解和实施本公开的目的,而不暗示对本公开的范围的任何限制。除了下文所述的方式之外,本文所描述的公开内容还可以以各种方式实施。

在以下描述和权利要求中,除非另有定义,否则在本文中使用的所有科学术语和技术术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。

本公开中提及的“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可以包括特定的特征、结构或特性,但是并非每个实施例都必须包括该特定的特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合示例实施例描述特定的特征、结构或特性时,无论是否明确描述,认为影响与其他实施例相关的这种特征、结构或特性在本领域技术人员的知识范围内。

应当理解的是,尽管术语“第一”和“第二”等可以用于描述各种元素,但这些元素不应受限于这些术语。这些术语仅用于区分一个元素与另一个元素。例如,第一元素可以被称为第二元素,类似地,第二元素可以被称为第一元素,而不脱离示例实施例的范围。如本文中所使用的,术语“和/或”包括一个或多个所列术语的任何和所有组合。

本文中所使用的术语仅用于描述特定实施例的目的,并不旨在限制示例实施例。如本文中所用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应理解,术语“包括”、“包含”和/或“具有”在本文中使用时表示存在所述特征、元素和/或组件等,但不排除一个或多个其他特征、元素、组件和/或其组合的存在或添加。

示例环境

图1是图示可以利用本公开的技术的示例视频编解码系统100的框图。如所示出的,视频编解码系统100可以包括源设备110和目的设备120。源设备110也可以称为视频编码设备,并且目的设备120也可以称为视频解码设备。在操作中,源设备110可以被配置为生成经编码的视频数据,并且目的设备120可以被配置为对由源设备110生成的经编码的视频数据进行解码。源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。

视频源112可以包括诸如视频捕获设备之类的源。视频捕获设备的示例包括但不限于从视频内容提供商接收视频数据的接口、用于生成视频数据的计算机图形系统和/或其组合。

视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码,以生成码流。码流可以包括形成视频数据的编码表示的位序列。码流可以包括编码图片和相关联的数据。编码图片是图片的编码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口116可以包括调制器/解调器和/或发送器。经编码的视频数据可以通过网络130A经由I/O接口116直接传输至目的设备120。经编码的视频数据也可以存储在存储介质/服务器130B上,以供目的设备120访问。

目的设备120可以包括I/O接口126、视频解码器124和显示设备122。I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130B获取经编码的视频数据。视频解码器124可以对经编码的视频数据进行解码。显示设备122可以向用户显示经解码的视频数据。显示设备122可以与目的设备120集成,或者可以在目的设备120的外部,该目的设备120被配置为与外部显示设备接口连接。

视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(HEVC)标准、通用视频编解码(VVC)标准和其他现有和/或将来的标准。

图2是示出根据本公开的一些实施例的视频编码器200的示例的方框图,视频编码器200可以是图1所示的系统100中的视频编码器114的示例。

视频编码器200可以被配置为实现本公开的任何或所有技术。在图2的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。

在一些实施例中,视频编码器200可以包括划分单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、反量化单元210、反变换单元211、重建单元212、缓冲213和熵编解码单元214,该预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。

在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括块内复制(IBC)单元。IBC单元可以在IBC模式中执行预测,其中至少一个参考图片是当前视频块所位于的图片。

此外,尽管一些组件(诸如运动估计单元204和运动补偿单元205)可以被集成,但是为了解释的目的,这些组件在图2的示例中被分离地示出。

划分单元201可以将图片划分成一个或多个视频块。视频编码器200和视频解码器300(其将在以下详细讨论)可以支持各种视频块大小。

模式选择单元203可以例如基于误差结果来选择多种编解码模式(帧内编码或帧间编码)中的一种编解码模式,并且将所产生的帧内编解码块或帧间编解码块提供给残差生成单元207以生成残差块数据,并且提供给重建单元212以重建编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(CIIP)模式的组合,其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择针对运动矢量的分辨率(例如,亚像素精度或整数像素精度)。

为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲213的一个或多个参考帧与当前视频块进行比较来生成针对当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲213的除了与当前视频块相关联的图片之外的图片的经解码样本,来确定针对当前视频块的预测视频块。

运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。如本文中使用的,“I条带”可以是指由宏块构成的图片的一部分,所有宏块均基于同一图片内的宏块。此外,如本文中使用的,在一些方面中,“P条带”和“B条带”可以是指由独立于同一图片中的宏块的宏块构成的图片的部分。

在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以搜索列表0或列表1的参考图片,以寻找针对当前视频块的参考视频块。运动估计单元204然后可以生成参考索引和运动矢量,该参考索引指示列表0或列表1中的包含参考视频块的参考图片,并且该运动矢量指示当前视频块与参考视频块之间的空间位移。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。

备选地,在其他示例中,运动估计单元204可以对当前视频块执行双向预测。运动估计单元204可以搜索列表0中的参考图片以寻找针对当前视频块的参考视频块,并且还可以搜索列表1中的参考图片以寻找针对当前视频块的另一参考视频块。运动估计单元204然后可以生成多个参考索引和多个运动矢量,该多个参考索引指示列表0和列表1中的包含多个参考视频块的多个参考图片,并且该多个运动矢量指示在多个参考视频块与当前视频块之间的多个空间位移。运动估计单元204可以输出当前视频块的多个参考索引和多个运动矢量以作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的多个参考视频块来生成针对当前视频块的预测视频块。

在一些示例中,运动估计单元204可以输出完整的运动信息集,以用于解码器的解码处理。备选地,在一些实施例中,运动估计单元204可以参考另一视频块的运动信息来通过信号传输当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。

在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中向视频解码器300指示一值,该值指示当前视频块具有与另一视频块相同的运动信息。

在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一视频块和运动矢量差(MVD)。运动矢量差指示在当前视频块的运动矢量与所指示的视频块的运动矢量之间的差异。视频解码器300可以使用所指示的视频块的运动矢量以及运动矢量差来确定当前视频块的运动矢量。

如上所讨论的,视频编码器200可以以预测性的方式通过信号传输运动矢量。可以由视频编码器200实现的预测信令技术的两个示例包括高级运动矢量预测(AMVP)和合并模式信令。

帧内预测单元206可以对当前视频块执行帧内预测。当对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中其他视频块的经解码样本来生成针对当前视频块的预测数据。针对当前视频块的预测数据可以包括预测视频块和各个语法元素。

残差生成单元207可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成针对当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样本的不同样本部分的残差视频块。

在其他示例中,例如在跳过模式中,针对当前视频块可以不存在针对当前视频块的残差数据,并且残差生成单元207可以不执行减去操作。

变换单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块,来生成针对当前视频块的一个或多个变换系数视频块。

在变换单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。

反量化单元210和反变换单元211可以分别对变换系数视频块应用反量化和反变换,以从变换系数视频块重建残差视频块。重建单元212可以将经重建的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样本,以产生与当前视频块相关联的重建视频块,以供存储在缓冲213中。

在重建单元212重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块效应伪像。

熵编解码单元214可以从视频编码器200的其他功能组件接收数据。当数据被接收时,熵编解码单元214可以执行一个或多个熵编码操作,以生成熵编解码数据并且输出包括该熵编解码数据的码流。

图3是示出根据本公开的一些实施例的视频解码器300的示例的方框图,视频解码器300可以是图1所示的系统100中的视频解码器124的示例。

视频解码器300可以被配置为执行本公开的任何或所有技术。在图3的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。

在图3的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、反量化单元304、反变换单元305、以及重建单元306和缓冲307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200所描述的编码过程相对的解码过程。

熵解码单元301可以取回经编码的码流。经编码的码流可以包括经熵编码的视频数据(例如,经编码的视频数据块)。熵解码单元301可以对经熵编码的视频数据进行解码,并且运动补偿单元302可以从经熵解码的视频数据中确定运动信息,该运动信息包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息。运动补偿单元302可以例如通过执行AMVP和合并模式来确定该信息。AMVP被使用,包括基于邻近PB的数据和参考图片得出数个最可能的候选项。运动信息通常包括水平和竖直运动矢量位移值、一个或两个参考图片索引,并且在B条带中的预测区域的情况下,还包括哪个参考图片列表与每个索引相关联的标识。如本文所使用的,在一些方面中,“合并模式”可以是指从空间或时间上邻近的块中导出运动信息。

运动补偿单元302可以产生运动补偿块,可能地基于插值滤波器来执行内插。针对以亚像素精度被使用的插值滤波器的标识符可以被包括在语法元素中。

运动补偿单元302可以使用由视频编码器200在视频块的编码期间使用的插值滤波器来计算用于参考块的亚整数像素的内插值。运动补偿单元302可以根据接收到的语法信息来确定由视频编码器200使用的插值滤波器,并且运动补偿单元302可以使用插值滤波器来产生预测块。

运动补偿单元302可以使用至少部分语法信息来确定用于编码经编码视频序列的(多个)帧和/或(多个)条带的块的大小、描述经编码视频序列的图片的每个宏块如何被划分的划分信息、指示每个划分如何被编码的模式、针对每个帧间编解码块的一个或多个参考帧(和参考帧列表)、以及对经编码视频序列进行解码的其他信息。如本文中所使用的,在一些方面,“条带”可以是指在熵编码、信号预测和残差信号重建方面可以独立于同一图片的其他条带而被解码的数据结构。条带可以是整个图片,或者也可以是图片的区域。

帧内预测单元303可以使用例如在码流中接收的帧内预测模式,以从空间邻近块形成预测块。反量化单元304反量化(即,去量化)在码流中提供的、并且由熵解码单元301解码的量化视频块系数。反变换单元305应用反变换。

重建单元306可以例如通过将残差块与由运动补偿单元302或帧内预测单元303生成的相应预测块相加来获得经解码的块。如果需要的话,还可以应用去块效应滤波器以对经解码的块进行过滤,以便去除块效应伪像。经解码的视频块随后被存储在缓冲307中,缓冲307为后续运动补偿/帧内预测提供参考块,并且缓冲307还产生经解码的视频以供在显示设备上呈现。

下文将详细描述本公开的一些示例实施例。应当注意,在本文件中使用章节标题是为了便于理解,而不是将章节中公开的实施例仅限于该章节。此外,尽管参考通用视频编解码或其他特定视频编解码器描述了一些实施例,但是所公开的技术也适用于其他视频编解码技术。此外,尽管一些实施例详细描述了视频编码步骤,但是应当理解的是取消编码的相应解码步骤将由解码器实现。此外,术语视频处理包括视频编解码或压缩、视频解码或解压缩以及视频转码,在该视频转码中视频像素被从一种压缩格式表示为另一种压缩格式或以不同的压缩码率表示。

1.概述

本公开涉及视频编解码技术,具体而言,涉及图像/视频编解码中考虑光照变化的基于光流的编解码方法、如何和/或是否应用取决于光照信息的基于光流的编解码方法以及其他编解码工具。它可以被应用于现有的视频编解码标准,如HEVC,或通用视频编解码(VVC)。它也可能适用于未来的视频编解码标准或视频编解码器。

2.背景

视频编解码标准主要通过众所周知的ITU-T和ISO/IEC标准的发展而演进。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4 Visual,两个组织联合制定了H.262/MPEG-2Video和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中使用了时间预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合创立了联合视频探索团队(JVET)。此后,JVET采用了许多新方法,并将其放入名为联合探索模型(JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家组(JVET)被创建以在VVC标准上工作,VVC标准的目标是与HEVC相比降低50%的比特率。

最新版本的VVC草案,即通用视频编解码(草案10)可在以下网址找到:

http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/20_Teleconference/wg11/JVET-T2001-v1.zip。

VVC最新的参考软件名为VTM,可在以下网址找到:

https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/tags/VTM-11.0。

2.1.典型视频编解码器的编解码流程

图4显示了VVC的编码器框图示例,其中包含三个环路滤波块:去块滤波器(DF)、样本自适应偏移(SAO)和ALF。与使用预定义滤波器的DF不同,SAO和ALF分别用通过信号传输偏移和滤波器系数的被编解码的辅助信息通过添加偏移和通过应用有限脉冲响应(FIR)滤波器,利用当前图片的原始样本来减少原始样本和重建样本之间的均方误差。ALF位于每个图片的最后处理阶段,可以被视为试图捕获和修复前几个阶段创建的伪像的工具。

2.2.具有67种帧内预测模式的帧内模式编解码

为了捕捉自然视频中呈现的任意边缘方向,定向帧内模式的数量从HEVC中使用的33个扩展到65个,如图5所示,平面和DC模式保持不变。这些更密集的定向帧内预测模式适用于所有块尺寸以及亮度和色度的帧内预测。

在HEVC中,每个帧内编解码块都具有一个正方形,每个正方形的每条边的长度是2的幂。因此,使用DC模式生成帧内预测器不需要除法运算。在VVC中,块可以具有矩形形状,这在一般情况下需要使用每个块的除法运算。为了避免针对DC预测的除法运算,只有较长的边被使用来计算非正方形块的平均值。

2.2.1.广角帧内预测

虽然在VVC中定义了67种模式,但针对给定的帧内预测模式索引的精确预测方向进一步取决于块形状。常规的角度帧内预测方向被定义为顺时针方向的45度到-135度。在VVC中,对于非正方形块,几种常规的角度帧内预测模式被自适应地替换为广角帧内预测模式。替换的模式使用原始模式索引通过信号被传输,原始模式索引在解析后被重新映射到广角模式的索引。帧内预测模式的总数不变,即67个,并且帧内模式编解码方法不变。

为了支持这些预测方向,长度为2W+1的顶部参考和长度为2H+1的左侧参考如图6所示被定义。

广角方向模式中替换的模式的数量取决于块的宽高比。替换的帧内预测模式如表1所示。

表1广角模式替换的帧内预测模式

图7示出了在方向超过45度的情况下不连续性的框图。如图7的图700所示,在广角帧内预测的情况下,两个垂直相邻的预测样本可以使用两个非相邻的参考样本。因此,低通参考样本滤波器和侧平滑被应用于广角预测,以减少增加的间隙Δpα的负面影响。如果广角模式表示非分数偏移。广角模式中有8种模式满足这个条件,8种模式是[-14,-12,-10,-6,72,76,78,80]。当块通过这些模式被预测时,参考缓冲中的样本被直接复制,而不应用任何插值。通过这种修改,需要平滑的样本数量减少了。此外,它对齐了传统预测模式和广角模式中的非分数模式的设计。

在VVC中,支持4:2:2和4:4:4以及4:2:0色度格式。4:2:2色度格式的色度导出模式(DM)导出表最初是从HEVC移植的,HEVC将条目数从35扩展到67,以与帧内预测模式的扩展保持一致。由于HEVC规范不支持低于-135度和高于45度的预测角度,范围从2到5的亮度帧内预测模式被映射到2。因此,针对4:2:2:色度格式的色度DM导出表通过替换映射表的条目的值被更新,以更精确地转换色度块的预测角度。

2.3.帧间预测

对于每个帧间预测的CU,由运动矢量、参考图片索引和参考图片列表使用索引组成的运动参数,以及被用于帧间预测的样本生成的VVC的新编解码特征所需的附加信息。运动参数可以以显式或隐式方式通过信号被传输。当CU用跳过模式被编解码时,CU与一个PU相关联,并且没有显著的残差系数,没有编解码运动矢量增量或参考图片索引。合并模式被指定,由此当前CU的运动参数从邻近的CU被获得,邻近的CU包括空间候选和时间候选,以及VVC中引入的附加安排。合并模式可以被应用于任何帧间预测CU,而不仅仅是跳过模式。合并模式的替代方案是运动参数的显式传输,其中运动矢量,每个参考图片列表的相应参考图片索引和参考图片列表使用标志以及其他所需信息针对每个CU被显式地通过信号传输。

2.4.帧内块内复制(IBC)

帧内块复制(IBC)是SCC上HEVC扩展中采用的工具。众所周知,它显著提高了屏幕内容材料的编解码效率。由于IBC模式以块级编解码模式被实现,因此在编码器处块匹配(BM)被执行,以找到每个CU的最佳块矢量(或运动矢量)。这里,块矢量被用于指示从当前块到参考块的位移,参考块已经在当前图片之中被重建。IBC编解码CU的亮度块矢量是整数精度的。色度块矢量也四舍五入至整数精度。当与AMVR结合时,IBC模式可以在1-像素l和4-像素运动矢量精度之间切换。IBC编解码的CU被视为除帧内或帧间预测模式之外的第三种预测模式。IBC模式适用于宽和高均小于等于64个亮度样本的CU。

在编码器端,基于哈希的运动估计针对IBC被执行。编码器对宽度或高度不大于16个亮度样本的块执行RD检查。对于非合并模式,块矢量搜索首先使用基于哈希的搜索被执行。如果哈希搜索没有返回有效候选,基于块匹配的本地搜索将被执行。

在基于哈希的搜索中,将当前块和参考块之间的哈希键匹配(32位CRC)被扩展到所有允许的块。当前图片中每个位置的哈希键计算是基于4×4子块。对于更大尺寸的当前块,当所有4×4子块的所有哈希键与相应参考位置的哈希键匹配时,哈希键被确定与参考块的哈希键匹配。如果多个参考块的哈希键被发现与当前块的哈希键匹配,则每个匹配参考的块矢量成本被计算,并成本最小的一个被选择。在块匹配搜索中,搜索范围设置为涵盖以前和当前的CTU。

在CU级,IBC模式利用标志通过信号被传输,IBC模式可以通过信号被传输IBCAMVP模式或IBC跳过/合并模式,如下所示:

-IBC跳过/合并模式:合并候选索引被用于指示来自邻近候选IBC编解码块的列表中的哪个块矢量被用于预测当前块。合并列表由空间候选、HMVP候选和成对候选组成。

-IBC AMVP模式:块矢量差以与运动矢量差相同的方式被编解码。块矢量预测方法使用两个候选作为预测器,一个来自左邻居,一个来自上邻居(如果IBC编解码)。当任何一个邻居不可用时,将使用默认块矢量作为预测器。标志通过信号被传输以指示块矢量预测器索引。

2.5.双向光流(BDOF)

双向光流(BDOF)工具被包含在VVC中。BDOF,以前称为BIO,被包含在JEM中。与JEM版本相比,VVC中的BDOF是一个更简单的版本,需要的计算要少得多,特别是在乘法次数和乘法器的尺寸方面。

BDOF被用于在4×4子块级细化CU的双向预测信号。如果满足以下所有条件,则BDOF被应用于CU:

–CU使用“真”双向预测模式被编解码,即两个参考图片中的一个在显示顺序上先于当前图片,并且两个参考图片中的另一个在显示顺序上在当前图片之后

–两个参考图片到当前图片的距离(即POC差)相同

–两张参考图片均为短期参考图片。

–CU未使用仿射模式或SbTMVP合并模式被编解码

–CU有超过64个亮度样本

–CU高度和CU宽度均大于或等于8个亮度样本

–BCW权重索引指示相等的权重

–当前CU未启用WP

–CIIP模式不被用于当前CU

BDOF仅应用于亮度分量。正如其名称所示,BDOF模式基于光流概念,该概念假设物体的运动是平滑的。对于每个4×4子块,运动细化(v

首先,通过直接计算两个邻近样本之间的差异,两个预测信号的水平梯度和垂直梯度,

其中I

然后,梯度S

其中,

其中Ω是围绕4×4子块的6×6窗口,并且n

然后使用互相关项和自相关项运动细化(v

其中

基于运动细化和梯度,针对4×4子块中的每个样本计算以下调整:

最后,通过以如下所示的方式调整双向预测样本,CU的BDOF样本被计算:

pred

选择这些值是为了使BDOF过程中的乘法器不超过15位,并且BDOF过程中中间参数的最大位宽保持在32位以内。

为了导出梯度值,当前CU边界之外的列表k(k=0,1)中的一些预测样本I

当CU的宽度和/或高度大于16个亮度样本时,它将被分成宽度和/或高度等于16个亮度样本的子块,子块边界被视为BDOF过程中的CU边界。BDOF过程的最大单元尺寸被限制为16x16。对于每个子块,BDOF过程可以跳过。当初始L0预测样本和L1预测样本之间的SAD小于阈值时,BDOF过程不被应用于子块。阈值被设置为等于(8*W*(H>>1),其中W表示子块宽度,并且H表示子块高度。为了避免SAD计算的附加复杂度,这里DVMR过程中计算的初始L0预测样本和L1预测样本之间的SAD被重新使用。

如果对当前块启用BCW,即BCW权重索引指示不相等的权重,则禁用双向光流。类似地,如果对当前块启用WP,即两个参考图片中的任何一个的luma_weight_lx_flag是1,则也禁用BDOF;当CU使用对称MVD模式或CIIP模式被编解码时,也禁用BDOF。

2.6.仿射运动补偿预测

在HEVC中,运动补偿预测(MCP)只应用平移运动模型。而在现实世界中,有许多种运动,如放大/缩小、旋转、透视运动和其他不规则运动。在VVC中,基于块的仿射变换运动补偿预测被应用。如图9所示,块的仿射运动场通过两个控制点(4参数)或三个控制点运动矢量(6参数)的运动信息被描述。

针对图9中的4参数仿射运动模型910,块中样本位置(x,y)处的运动矢量导出为:

针对图9中的6参数仿射运动模型920,块中样本位置(x,y)处的运动矢量导出为:

其中(mv

为了简化运动补偿预测,基于块的仿射变换预测被应用。图10示出了每个子块的仿射MVF的示意图1000。为了导出每个4×4亮度子块的运动矢量,根据上述方程每个子块的中心样本的运动矢量被计算,并被四舍五入到1/16分数精度。然后运动补偿插值滤波器被应用生成具有导出运动矢量的每个子块的预测。色度分量的子块尺寸也被设置为4×4。4×4色度子块的MV被计算为四个相应的4×4亮度子块的MVs的平均值。

与平移运动帧间预测一样,还有两种仿射运动帧间预测模式:仿射合并模式和仿射AMVP模式。

2.6.1.仿射合并预测

AF_MERGE模式可以应用于宽度和高度都大于或等于8的CU。在这种模式下,当前CU的CPMV基于空间邻近CU的运动信息被生成。最多可以有五个CPMVP候选,并且索引通过信号被传输以指示被用于当前CU的CPMVP。以下三种类型的CPVM候选被用于形成仿射合并候选列表:

–从邻近CU的CPMV推断出的继承仿射合并候选

–使用邻近CU的平移MV导出的构造的仿射合并候选CPMVP

–零MV

在VVC中,最多有两个继承仿射候选,继承仿射候选从邻近块的仿射运动模型被导出,一个来自左邻近CU,一个来自上邻近CU。图11示出了继承仿射运动预测器的位置的示意图1100。候选块如图11所示。对于左预测器,扫描顺序为A0->A1,并且对于上预测器,扫描顺序为B0->B1->B2。只有来自每边的第一个继承候选被选择。两个继承候选之间修剪检查不被执行。当邻近仿射CU被识别时,其控制点运动矢量被使用以导出当前CU的仿射合并列表中的CPMVP候选。图12示出了控制点运动矢量继承的示意图1200。如图12所示,若邻居左下块A1210以仿射模式被编解码,则包含块A1210的CU1220的左上角、右上角和左下角的运动矢量v

构造仿射候选是指候选通过组合每个控制点的邻近平移运动信息被构造。针对控制点的运动信息从图13所示的指定空间邻居和指定时间邻居被导出,图13示出了构造仿射合并模式候选位置的位置的示意图1300。CPMVk(k=1,2,3,4)表示第k个控制点。对于CPMV1,检查B2->B3->A2块,并且第一个可用块的MV被使用。对于CPMV2,检查B1->B0块,对于CPMV3,检查A1->A0块。对于TMVP,如果可用,则将TMVP用作CPMV4。

在四个控制点的MV被获得后,基于运动信息仿射合并候选被构建。以下控制点MV的组合被用于按顺序构建:

{CPMV

{CPMV

{CPMV

3个CPMV的组合构造6参数仿射合并候选,并且2个CPMV的组合构造4参数仿射合并候选。为避免运动缩放过程,如果控制点的参考指数不同,则控制点MV的相关组合被丢弃。

在继承的仿射合并候选和构造的仿射合并候选被检查后,如果列表仍然未满,则零MV被插入到列表末尾。

2.6.2.仿射AMVP预测

仿射AMVP模式可以被应用于宽度和高度都大于或等于16的CU。CU级的仿射标志在码流中通过信号被传输来指示是否仿射AMVP模式被使用,然后另一个标志通过信号被传输来指示是4参数仿射还是6参数仿射。在这种模式下,当前CU的CPMVP和它们的预测器CPMVP的差异在码流中通过信号被传输。仿射AVMP候选列表大小为2,它是按顺序使用以下四种类型的CPVM候选被生成的:

–从邻近CU的CPMV推断出的继承的仿射AMVP候选

–使用邻近CU的平移MV导出的构造的仿射AMVP候选CPMVP

–来自邻近CU的平移MV

–零MV

继承的仿射AMVP候选的检查顺序与继承的仿射合并候选的检查顺序相同。唯一的区别是,对于AVMP候选,只有与当前块中具有相同参考图片的仿射CU被考虑。在将继承的仿射运动预测器插入候选列表时,没有修剪过程被应用。

构造的AMVP候选从图13所示的指定空间邻居被导出。使用与仿射合并候选构建中相同的检查顺序。此外,还检查邻近块的参考图片索引。使用检查顺序中的第一个块,该块被帧间编解码并且具有与当前CU中相同的参考图片。只有一个。当当前CU是用4参数仿射模式编解码的并且mv

如果在继承的仿射AMVP候选和构造的AMVP候选被检查后,仿射AMVP列表候选仍然小于2,则将mv

2.6.3.仿射运动信息存储

在VVC中,仿射CU的CPMV被存储在单独的缓冲中。存储的CPMV仅用于为最近编解码CU生成仿射合并模式中的继承CPMV和仿射AMVP模式中的继承CPMV。从CPMV导出的子块MV被用于运动补偿、平移MV的合并/AMVP列表的MV导出和去块。

为了避免针对附加的CPMV的图片行缓冲,从上方CTU的CU的仿射运动数据继承不同于从正常邻近的CU的继承而被处理。如果针对仿射运动数据继承的候选CU在上方CTU行,则行缓冲中的左下和右下子块MV代替CPMV被用于仿射MVP导出。这样,CPMV只被存储在本地缓冲中。如果候选CU是6参数仿射编解码的,则仿射模型被降级为4参数模型。如图14所示,沿着顶部CTU边界,CU的左下和右下子块运动矢量被用于底部CTU中CU的仿射继承。

2.6.4.针对仿射模态的利用光流的预测细化

与基于像素的运动补偿相比,基于子块的仿射运动补偿可以节省内存访问带宽并降低计算复杂度,但代价是预测精度的损失。为了实现更细化的运动补偿粒度,利用光流的预测细化(PROF)被使用来细化基于子块的仿射运动补偿预测,而不增加运动补偿的内存访问带宽。在VVC中,在基于子块的仿射运动补偿被执行后,亮度预测样本通过添加光流方程导出的差异被细化。PROF描述为以下四个步骤:

步骤1)基于子块的仿射运动补偿被执行以生成子块预测。

步骤2)使用3抽头滤波器[-1,0,1],子块预测的空间梯度g

g

g

shift1被用于控制梯度的精度。子块(即4x4)预测在梯度计算的每一侧扩展一个样本。为了避免额外的内存带宽和额外的插值计算,扩展边界上的这些扩展样本从参考图片中最近的整数像素位置被复制。

步骤3)通过以下光流方程亮度预测细化被计算。

ΔI(i,j)=g

其中Δv(i,j)是针对样本位置(i,j)计算的样本MV,表示为v(i,j),与样本(i,j)所属子块的子块MV之间的差异,如图15所示。Δv(i,j)以1/32亮度样本精度为单位进行量化。

由于仿射模型参数和相对于子块中心的样本位置从子块到子块没有改变,针对第一个子块Δv(i,j)可以被计算,并针对同一CU中的其他子块被重用。设dx(i,j)和dy(i,j)是样本位置(i,j)到子块中心(x

为了保持准确性,子块(x

针对4参数仿射模型,

针对6参数仿射模型,

其中(v

步骤4)最后,亮度预测细化ΔI(i,j)被添加至子块预测I(i,j),最终预测I’以如下方程被生成。

I′(i,j)=I(i,j)+ΔI(i,j)(2-16)

PROF不适用于两种情况的仿射编解码CU:1)所有控制点MV相同,这表明CU仅具有平移运动;2)仿射运动参数大于指定限制,因为基于子块的仿射MC被降级为基于CU的MC以避免大的存储器访问带宽要求。

快速编解码方法被应用以降低利用PROF的仿射运动估计的编解码复杂度。在以下两种情况下,PROF不应用于仿射运动估计阶段:a)如果该CU不是根块,并且该CU的父块不选择仿射模式作为其最佳模式,则PROF不被应用,因为当前CU选择仿射模式作为最佳模式的可能性低;b)如果四个仿射参数(C、D、E、F)的幅度都小于预定义的阈值,并且当前图片不是低延迟图片,则PROF不被应用。这样,利用PROF的仿射运动估计可以被加速。

2.7.具有CU级权重的双向预测(BCW)

在HEVC中,通过对从两个不同的参考图片获得的两个预测信号进行平均和/或使用两个不同运动矢量来生成双向预测信号。在VVC中,双向预测模式被扩展到简单平均之外,以允许对两个预测信号进行加权平均。

P

在加权平均双向预测中允许五个权重,w∈{-2,3,4,5,10}。对于每个双向预测CU,以两种方式之一确定权重w:1)对于非合并CU,在运动矢量差之后通过信号传输权重索引;2)对于合并CU,基于合并候选索引从邻近块推断权重索引。BCW仅应用于具有256个或更多亮度样本的CU(即CU宽度乘以CU高度大于或等于256)。对于低延迟图片,将使用所有5个权重。对于非低延迟图片,仅使用3个权重(w∈{3,4,5})。

–在编码器处,在不显著增加编码器复杂度的情况下,应用快速搜索算法来找到权重索引。这些算法总结如下。可以参考VTM软件和文档JVET-L0646以获得进一步的细节。当与AMVR组合时,如果当前图片是低延迟图片,则仅有条件地检查1-像素和4-像素运动矢量精度的不等权重。

–当与仿射组合时,在且仅在仿射模式被选择为当前最佳模式的情况下,将针对不相等的权重执行仿射ME。

–当双向预测中的两个参考图片相同时,仅有条件地检查不相等的权重。

–当满足某些条件时,不搜索不等权重,这取决于当前图片与其参考图片之间的POC距离、编解码QP和时间级。

BCW权重索引是使用一个上下文编解码的二进制位然后是旁路编解码的二进制位来编解码的。第一上下文编解码的二进制位指示是否使用相等的权重;并且如果使用不相等的权重,则使用旁路编解码通过信号传输附加二进制位,以指示使用哪个不相等的权重。

加权预测(WP)是H.264/AVC和HEVC标准支持的一种编解码工具,用于在衰落的情况下对视频内容进行高效编解码。VVC标准中还增加了对WP的支持。WP允许为每个参考图片列表L0和列表L1中的每个参考图片通过信号传输加权参数(权重和偏移)。然后,在运动补偿期间,应用对应参考图片的权重和偏移。WP和BCW是为不同类型的视频内容而设计的。为了避免WP和BCW之间的交互(这将使VVC解码器设计复杂化),如果CU使用WP,则BCW权重索引不通过信号被传输,并且w被推断为4(即应用相等的权重)。对于合并CU,权重索引是基于合并候选索引从邻近块推断的。这可以应用于正常合并模式和继承的仿射合并模式。对于构建的仿射合并模式,基于多达3个块的运动信息来构建仿射运动信息。使用构建的仿射合并模式的CU的BCW索引被简单地设置为等于第一控制点MV的BCW索引。

在VVC中,CIIP和BCW不能联合应用于CU。当使用CIIP模式对CU进行编解码时,当前CU的BCW索引设置为2,例如相等的权重。

2.8.局部光照补偿(LIC)

局部亮度补偿(LIC)是一种解决当前图片与其时间参考图片之间局部亮度变化问题的编解码工具。LIC基于线性模型,其中缩放因子和偏移被应用于参考样本以获得当前块的预测样本。具体而言,LIC可以通过以下等式进行数学建模:

P(x,y)=α·P

其中,P(x,y)是当前块在坐标(x,y)处的预测信号;P

为了提高编解码性能,不执行短边的二次采样,如图17所示。

2.9.解码器侧运动矢量细化(DMVR)

为了提高合并模式MV的精度,在VVC中应用了基于双边匹配(BM)的解码器侧运动矢量细化。在双向预测操作中,在参考图片列表L0和参考图片列表L1中的初始MV周围搜索细化的MV。BM方法计算参考图片列表L0和列表L1中两个候选块之间的失真。图18示出了解码侧运动矢量细化的示意图。如图18所示,基于初始MV周围的每个MV候选,计算块1810和块1812之间的SAD,其中针对当前图片1802,块1810在列表L0中的参考图片1801中,块1812在列表L1中的参考图片1803中。具有最低SAD的MV候选成为细化MV,并用于生成双向预测信号。

在VVC中,DMVR的应用受到限制,仅适用于具有以下模式和功能的CU:

–具有双向预测MV的CU级合并模式

–相对于当前图片,一张参考图片是过去的,另一张参考图片是未来的

–从两个参考图片到当前图片的距离(即POC差)相同

–两张参考图片均为短期参考图片

–CU有超过64个亮度样本

–CU高度和CU宽度均大于或等于8个亮度样本

–BCW权重索引指示相等的权重

–当前块未启用WP

–CIIP模式未用于当前块

DMVR过程导出的细化MV用于生成帧间预测样本,并且还用于未来图片编解码的时间运动矢量预测。而原始MV被用于去块过程,并且还被用于未来CU编解码的空间运动矢量预测。

DMVR的附加功能在以下子条款中有所提及。

2.9.1.搜索方案

在DVMR中,搜索点围绕初始MV,并且MV偏移服从MV差镜像规则。换句话说,由候选MV对(MV0,MV1)表示的DMVR检查的任何点遵循以下两个等式:

MV0′=MV0+MV_offset(2-18)

MV1′=MV1-MV_offset(2-19)

其中,MV_offset表示参考图片之一中的初始MV和细化MV之间的细化偏移。细化搜索范围是从初始MV开始的两个整数亮度样本。搜索包括整数样本偏移搜索阶段和分数样本细化阶段。

整数样本偏移搜索采用25点全搜索。首先计算初始MV对的SAD。如果初始MV对的SAD小于阈值,则DMVR的整数采样级终止。否则,剩余24个点的SAD按光栅扫描顺序进行计算和检查。选择SAD最小的点作为整数样本偏移搜索阶段的输出。为了减少DMVR细化不确定性的影响,提出在DMVR过程中支持原始MV。由初始MV候选参考的参考块之间的SAD减少了SAD值的1/4。

整数样本搜索之后是分数样本细化。为了节省计算复杂度,利用参数误差曲面方程导出了分数样本细化,而不是使用SAD比较进行额外搜索。分数样本细化是基于整数样本搜索阶段的输出有条件地调用的。当整数样本搜索阶段在第一次迭代或第二次迭代搜索中以具有最小SAD的中心结束时,进一步应用分数样本细化。

在基于参数误差表面的亚像素偏移估计中,中心位置成本和距中心四个邻近位置的成本用于拟合以下形式的二维抛物型误差曲面方程

E(x,y)=A(x-x

其中(x

x

y

x

2.9.2.双线性插值和样本填充

在VVC中,MV的分辨率是1/16亮度样本。使用8抽头插值滤波器对分数位置处的样本进行插值。在DMVR中,搜索点围绕具有整数样本偏移的初始分数像素MV,因此需要对这些分数位置的样本进行插值以进行DMVR搜索过程。为了降低计算复杂度,双线性插值滤波器用于生成DMVR中搜索过程的分数样本。另一个重要的效果是,通过使用双线性滤波器,在2样本搜索范围内,与正常的运动补偿过程相比,DVMR不会访问更多的参考样本。在通过DMVR搜索过程获得细化的MV之后,应用普通的8抽头插值滤波器来生成最终预测。为了不访问正常MC过程的更多参考样本,将从那些可用样本中填充样本,这些样本对于基于原始MV的插值过程是不需要的,但是对于基于细化MV的插值处理是需要的。

2.9.3.最大DMVR处理单元

当CU的宽度和/或高度大于16个亮度样本时,它将被进一步分割为宽度和/或者高度等于16个亮度样本的子块。DMVR搜索过程的最大单元大小限制为16x16。

2.10多遍次解码器侧运动矢量细化

在这个贡献中,应用多遍次解码器侧运动矢量细化而不是DMVR。在第一遍次中,双边匹配(BM)被应用于一个编解码块。在第二遍次中,BM被应用于编解码块内的每个16x16子块。在第三遍次中,通过应用双向光流(BDOF)来细化每个8x8子块中的MV。细化的MV被存储用于空间和时间运动矢量预测。

2.10.1.第一遍次-基于块的双边匹配MV细化

在第一遍次中,通过将BM应用于编解码块来导出细化的MV。类似于解码器端运动矢量细化(DMVR),在参考图片列表L0和L1中的两个初始MV(MV0和MV1)周围搜索细化的MV。基于L0和L1中的两个参考块之间的最小双边匹配成本,围绕发起MV导出细化的MV(MV0_pass1和MV1_pass1)。

BM执行局部搜索以导出整数样本精度intDeltaMV和半像素(half-pel)样本精度halfDeltaMV。局部搜索应用3×3平方搜索样式,在水平方向的搜索范围[–sHor,sHor]和垂直方向的搜索范围[–sVer,sVer]中循环,其中,sHor和sVer的值由块尺度确定,sHor和sVer的最大值为8。

双边匹配成本计算为:bilCost=mvDistanceCost+sadCost。当块大小cbW*cbH大于64时,应用MRSAD成本函数来去除参考块之间失真的DC效应。当3×3搜索样式的中心点的bilCost具有最小成本时,intDeltaMV或halfDeltaMV局部搜索终止。否则,当前最小成本搜索点成为3×3搜索样式的新中心点,并继续搜索最小成本,直到它到达搜索范围的末尾。

进一步应用现有的分数样本细化来导出最终的deltaMV。然后,第一遍次后的细化MV导出为:

·MV0_pass1=MV0+deltaMV

·MV1_pass1=MV1–deltaMV

2.10.2.第二遍次-基于子块的双边匹配MV细化

在第二遍次中,通过将BM应用于16×16网格子块来导出细化的MV。对于每个子块,在参考图片列表L0和L1中在第一遍次获得的两个MV(MV0_pass1和MV1_pass1)周围搜索细化的MV。基于L0和L1中的两个参考子块之间的最小双边匹配成本来导出细化的MV(MV0_pass2(sbIdx2)和MV1_pass2(sbIdx2))。

对于每个子块,BM执行完全搜索以导出整数样本精度intDeltaMV。全搜索在水平方向上具有搜索范围[–sHor,sHor],在垂直方向上具有搜索范围[–sVer,sVer],其中,sHor和sVer的值由块尺度确定,并且sHor和sVert的最大值为8。

双边匹配成本是通过将成本因子应用于两个参考子块之间的SATD成本来计算的,如:bilCost=satdCost*costFactor。搜索区域(2*sHor+1)*(2*sVer+1)被分为5个菱形搜索区域,如图19中的图示1900所示。每个搜索区域都被分配了一个costFactor,该costFactor由每个搜索点和起始MV之间的距离(intDeltaMV)确定,并且每个菱形区域按照从搜索区域的中心开始的顺序进行处理。在每个区域中,搜索点按光栅扫描顺序进行处理,从区域的左上角开始,一直到右下角。在当前搜索区域内的最小bilCost小于等于sbW*sbH的阈值时,终止整像素(int-pel)完全搜索,否则,int-pel完全搜索继续到下一个搜索区域,直到检查完所有搜索点。

BM执行局部搜索以导出半样本精度halfDeltaMv。搜索模式和成本函数与2.9.1中定义的相同。

进一步应用现有的VVC DMVR分数样本细化来导出最终的deltaMV(sbIdx2)。然后,第二遍次的细化MV导出为:

·MV0_pass2(sbIdx2)=MV0_pass 1+deltaMV(sbIdx2)

·MV1_pass2(sbIdx2)=MV1_pass1–deltaMV(sbIdx2)

2.10.3.第三遍次-基于子块的双向光流MV细化

在第三遍次中,通过将BDOF应用于8×8网格子块来导出细化的MV。对于每个8×8的子块,应用BDOF精化来导出缩放的Vx和Vy,而不从第二遍次的父子块的精化MV开始进行剪裁。导出的bioMv(Vx,Vy)四舍五入到1/16样本精度,并在-32和32之间进行剪裁。

第三遍次的细化MV(MV0_pass3(sbIdx3)和MV1_pass3(sbIdx3))导出为:

·MV0_pass3(sbIdx3)=MV0_pass 2(sbIdx2)+bioMv

·MV1_pass3(sbIdx3)=MV0_pass2(sbIdx2)–bioMv

2.11.基于样本的BDOF

在基于样本的BDOF中,不是基于块导出运动细化(Vx,Vy),它对每个样本执行。

编解码块被分成8×8子块。对于每个子块,是否应用BDOF是通过对照阈值检查两个参考子块之间的SAD来确定的。如果决定对子块应用BDOF,对于子块中的每个样本,使用滑动5×5窗口并对每个滑动窗口应用现有的BDOF过程来导出Vx和Vy。应用导出的运动细化(Vx,Vy)来调整窗口中心样本的双预测样本值。

2.12.扩展合并预测

在VVC中,合并候选列表是通过按顺序包括以下五种类型的候选来构建的:

(1)来自空间邻近CU的空间MVP

(2)来自同位CU的时间MVP

(3)来自FIFO表的基于历史的MVP

(4)成对平均MVP

(5)零MV。

合并列表的大小在序列参数集头中通过信号传输,并且合并列表的最大允许大小是6。对于合并模式中的每个CU码,使用截断的一元二进制化(TU)对最佳合并候选的索引进行编解码。合并索引的第一个二进制位(bin)使用上下文进行编解码,而旁路编解码用于其他二进制位。

每个类别的合并候选的导出过程在本节中提供。正如在HEVC中所操作的那样,VVC还支持在一定大小的区域内对所有CU的合并候选列表的并行导出。

2.12.1.空间候选导出

VVC中空间合并候选的导出与HEVC中的导出相同,只是前两个合并候选的位置被交换。图20是示出空间合并候选的位置的示意图2000。在位于图20所示位置的候选中,最多选择四个合并候选。导出顺序为B

2.12.2.时间候选导出

在这个步骤中,只有一个候选被添加到列表中。特别地,在该时间合并候选的导出中,基于属于同位参考图片的同位CU来导出缩放运动矢量。在条带头中显式地通过信号传输要用于导出同位的CU的参考图片列表。如图22的图示2200中的虚线所示,针对时间合并候选的缩放的运动矢量被获得,该矢量是使用POC距离,tb和td,从同位的CU的运动矢量缩放而来的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,td被定义为同位的图片的参考图片与同位的图片之间的POC差。时间合并候选的参考图片索引被设置为等于零。

图23是示出了针对时间合并候选C

2.12.3.基于历史的合并候选导出

基于历史的MVP(HMVP)合并候选被添加到空间MVP和TMVP之后的合并列表中。在该方法中,将先前编解码块的运动信息存储在表中,并用作当前CU的MVP。在编码/解码过程中维护具有多个HMVP候选的表。当遇到新的CTU行时,该表被重置(清空)。每当存在非子块帧间编解码CU时,将相关联的运动信息作为新的HMVP候选添加到表的最后一个条目。

HMVP表大小S被设置为6,这指示可以向该表添加多达6个基于历史的MVP(HMVP)候选。当将新的运动候选插入到表中时,使用受约束的先进先出(FIFO)规则,其中首先应用冗余检查来发现表中是否存在相同的HMVP。如果找到,则从表中移除相同的HMVP,然后将所有HMVP候选向前运动。

HMVP候选可以用于合并候选列表构建过程。按顺序检查表中最近的几个HMVP候选,并将其插入TMVP候选之后的候选列表中。冗余检查被应用于HMVP候选至空间或时间合并候选。

为了减少冗余检查操作的数目,引入了以下简化:

用于合并列表生成的HMPV候选数目设置为(N<=4)?M:(8-N),其中N指示合并列表中现有候选的数目,M指示表中可用HMVP候选的数目。

一旦可用合并候选的总数达到最大允许合并候选减1,则终止来自HMVP的合并候选列表构建过程。

2.12.4.成对平均合并候选导出

成对平均候选是通过对现有合并候选列表中的预定义候选对进行平均来生成的,并且预定义对被定义为{(0,1)、(0,2)、(1,2),(0,3)、(1,3),(2,3)},其中数字表示合并候选列表的合并索引。对于每个参考列表单独计算平均运动矢量。如果两个运动矢量在一个列表中都可用,则即使这两个运动矢量指向不同的参考图片,也会对其进行平均;如果只有一个运动矢量可用,则直接使用该运动矢量;如果没有可用的运动矢量,保持此列表无效。

当添加成对平均合并候选后合并列表未满时,将在最后插入零MVP,直到遇到最大合并候选数目。

2.12.5.合并估计区域

合并估计区域(MER)允许在同一合并估计区域(MER)中针对CU独立导出合并候选列表。针对生成当前CU的合并候选列表,与当前CU在相同MER内的候选块被不包括。此外,仅当(xCb+cbWidth)>>Log2ParMrgLevel大于xCb>>Log2Par MrgLevel并且(yCb+cbHeight)>>Log2parMrglevel大于(yCb>>Log2ParMrgLevel),针对基于历史的运动矢量预测器候选列表的更新过程被更新,并且其中(xCb,yCb)是图片中当前CU的左上方亮度样本位置并且(cbWidth,cbHeight)是CU尺寸。MER大小在编码器端被选择,并在序列参数集中以log2_parallel_merge_level_minus2的形式来通过信号传输。

2.13.新合并候选

2.13.1.非相邻合并候选导出

图24示出了当前块的VVC空间邻近块的示意图2400。在VVC中,使用图24所示的五个空间邻近块以及一个时间邻近来导出合并候选。

建议使用与VVC相同的模式从与当前块非相邻的位置导出附加的合并候选。为此,针对每个搜索轮i,基于当前块生成一个虚拟块,如下所示:

第一,通过以下方式计算虚拟块与当前块的相对位置:

Offsetx=-i×gridX,Offsety=-i×gridY

其中Offsetx和Offsety表示虚拟块左上角相对于当前块左上角的偏移,gridX和gridY是搜索网格的宽度和高度。

第二,虚拟块的宽度和高度是通过以下方式计算的:newWidth=i×2×gridX+currWidth newHeight=i×2×gridY+currHeight.其中currWidth和currHeight是当前块的宽度和高度。newWidth和newHeight是新虚拟块的宽度和高度。

gridX和gridY当前分别被设置为currWidth和currHeight。

图25示出了第i轮搜索中的虚拟块的示意图,其示出了虚拟块与当前块之间的关系。

生成虚拟块后,块A

在构建合并候选列表时,修剪被执行以保证合并候选列表中每个元素的唯一性。最大搜索轮次被设置为1,这意味着五个非相邻的空间邻居块被利用。

非相邻的空间合并候选按照B

2.13.2.STMVP

提出使用三个空间合并候选和一个时间合并候选来导出平均候选作为STMVP候选。

STMVP被插入在左上方的空间合并候选之前。

STMVP候选与合并列表中所有先前的合并候选一起被修剪。

对于空间候选,使用当前合并候选列表中的前三个候选。

对于时间候选,使用与VTM/HEVC同位位置相同的位置。

对于空间候选,在STMVP之前插入到当前合并候选列表中的第一、第二和第三候选被表示为F、S和T。

具有与TMVP中使用的VTM/HEVC同位位置相同的位置的时间候选表示为Col。

STMVP候选在预测方向X上的运动矢量(表示为mvLX)如下被导出:

1)如果四个合并候选的参考索引都是有效的并且在预测方向X上都等于零(X=0或1),

mvLX=(mvLX_F+mvLX_S+mvLX_T+mvLX_Col)>>2

2)如果四个合并候选中的三个合并候选的参考索引是有效的并且在预测方向X上等于零(X=0或1),

mvLX=(mvLX_F×3+mvLX_S×3+mvLX_Col×2)>>3或

mvLX=(mvLX_F×3+mvLX_T×3+mvLX_Col×2)>>3或

mvLX=(mvLX_S×3+mvLX_T×3+mvLX_Col×2)>>3

3)如果四个合并候选中的两个合并候选的参考索引是有效的并且在预测方向X上等于零(X=0或1),

mvLX=(mvLX_F+mvLX_Col)>>1或

mvLX=(mvLX_S+mvLX_Col)>>1或

mvLX=(mvLX_T+mvLX_Col)>>1

注意:如果时间候选不可用,则STMVP模式关闭。

2.13.3.合并列表大小

如果考虑非相邻合并候选和STMVP合并候选两者,则在序列参数集头中通过信号传输合并列表的大小,并且合并列表的最大允许大小被增加(例如,8)。

3.问题

在目前基于光流的编解码方法(如双向光流(BDOF)和利用光流的预测细化(PROF))的当前设计中,光照变化没有被考虑。当光照变化发生时,如何处理基于光流的编解码方法需要探索。

4.本公开的实施例

下面的详细公开应被视为解释一般概念的示例。这些公开不应以狭隘的方式来解释。此外,这些公开可以以任何方式组合。

利用光照信息的基于光流的编解码方法的确定

1.是否将基于光流的编解码方法应用于视频单元可以取决于是否发生光照变化。

a.在一个示例中,基于光流的编解码方法可以在发生光照变化时不被应用于视频单元。

i.在一个示例中,如何检测光照变化可以取决于视频单元的邻近样本(相邻或非相邻)。

ii.在一个示例中,是否发生视频单元的光照变化可以通过语法元素被指示并且在码流中通过信号被传输。

iii.在一个示例中,是否发生视频单元的光照变化可以取决于是否和/或如何某种编解码工具(例如LIC和BCW)被应用。

iv.在一个示例中,基于光流的编解码方法可以在样本/像素的光照存在变化时不被应用于视频单元的样本/像素。

2.如何将基于光流的编解码方法应用于视频单元可以取决于是否发生光照变化。

a.在一个示例中,光照变化可以被包括在基于光流的编解码方法的过程中。

i.在一个示例中,在基于光流的编解码方法的过程中,在梯度的计算中,值被减去。

ii.在一个示例中,当计算第一预测块中的样本/像素与第二预测块中的样本/像素的差异时,可以首先从第一预测块中的样本/像素中减去第一值,并且可以首先从第二预测块中的样本/像素中减去第二值。

iii.代替使用从运动信息直接被获得的第一/第二预测块,建议首先通过函数来修订获得的预测块,即f(Pi)在光流过程中被使用,而不是样本值Pi。

1)在一个示例中,该函数是线性函数,(例如,f(Pi)=a*Pi+b)其中a和b是线性参数,并且Pi表示预测块中的样本/像素。

2)在一个示例中,a和/b可以通过诸如LIC和BCW的编解码工具被确定。

3)备选地,此外,线性参数(a,b)可以使用邻近样本/像素被导出。

4)备选地,此外,线性参数(a,b)可以通过信号被传输。

5)备选地,此外,线性参数集(a,b)针对两个预测块可以不同。

6)备选地,此外,获得的预测块可以使用非线性函数,例如多项式函数,被修订。

iv.光照变化的线性模型等模型参数可以与光流参数一起被联合优化。

1)一个块的光照变化模型参数和光流参数可以用最小二乘回归法被迭代求解。

3.光照变化的检测和/或计算可以在第一级中被执行,并且如何和/或是否应用基于光流的编解码方法的决定可以在第二级中被完成。

a.在一个示例中,第1/第2级都是块级。

b.在一个示例中,第1/第2级都是图片级。

c.在一个示例中,第1/第2级都是子块级。

d.在一个示例中,第1级是块级,第2级是子块级。

e.在一个示例中,第一级中的所有样本/像素可以被利用。

i.备选地,它们中的一部分可以被利用。

4.针对块级的基于光流的编解码方法,光照变化的检测和/或计算还可以涉及除了当前块的预测块之外的更多样本。

5.针对子块级的基于光流的编解码方法,光照变化的检测和/或计算还可以涉及块中的除了当前子块的预测块之外的更多样本。

6.是否和/或如何将基于光流的编解码方法应用于视频单元可以取决于是否和/或如何解决光照变化的编解码工具(例如,BCW、LIC)被应用于视频单元。

a.在一个示例中,编解码工具可以指局部光照补偿方法、和/或利用CU级权重方法的双向预测、和/或仿射补偿方法。

b.在一个示例中,基于光流的编解码方法可以在编解码工具被应用于视频单元时不被应用。

c.在一个示例中,基于光流的编解码方法可以在编解码工具被应用于视频单元时被应用于视频单元。

7.在一个示例中,是否针对视频单元启用基于光流的编解码方法可以取决于视频单元的光照信息和/或参考视频单元。

a.在一个示例中,是否启用针对视频单元的基于光流的编解码方法可以取决于两个参考图片的光照信息。

i.在一个示例中,如果在两个参考图片之中发生光照变化,则不允许启用基于光流的编解码方法。

ii.在一个示例中,两个参考图片中的一个参考图片来自列表X,另一个参考图片来自列表Y。

iii.在一个示例中,两个参考图片的绝对POC距离等于一个参考图片相对于当前视频单元的绝对POC距离的两倍。

iv.在计算光照信息时,两个参考图片中的所有样本/像素或所有样本/像素中的部分可以被利用。

b.在一个示例中,视频单元可以指图片/子图片/图块/条带/编解码树单元/编解码树单元组/编解码单元。

c.在一个示例中,是否针对视频单元启用基于光流的编解码方法可以取决于当前图片的光照信息和一个或多个参考图片。

i.在一个示例中,是否发生光照变化的确定取决于当前图片和/或一个或多个参考图片。

1)在一个示例中,参考图片中的原始样本或重建样本可以被用于确定光照变化是否发生。

2)在一个示例中,当前图片的原始样本或部分重建样本或预测样本可以被用于确定光照变化是否发生。

3)在一个示例中,针对一个或多个参考图片直方图被计算,并且确定当直方图的差异大于T时发生光照变化。

a)在一个示例中,T可以自适应地被设置为取决于当前图片的尺寸。

b)在一个示例中,T可以取决于编解码信息。

c)在一个示例中,T可以取决于当前图片。

d)在一个示例中,T可以使用当前图片和参考图片的直方图被计算。

ii.在一个示例中,如果在当前图片和参考图片之中发生光照变化,则不允许启用基于光流的编解码方法。

d.在一个示例中,光照信息可以指视频单元与视频单元的参考视频单元之间的一个或多个分量的样本值。

i.在一个示例中,分量可以指亮度分量。

ii.在一个示例中,分量可以指一个或多个色度分量。

iii.在一个示例中,视频单元和/或参考视频单元可以是编解码块,例如编解码单元/预测单元/变换单元。

iv.在一个示例中,针对视频单元的样本值的第一特征被计算,并且针对参考视频单元的样本值的第二特征被计算,当第一特征和第二特征的差异大于T时,基于光流的方法可以不被应用于视频单元。

1)在一个示例中,针对视频单元的第一特征可以使用视频单元的邻近样本(相邻或非相邻)被计算。

a)备选地,针对视频单元的预测信号可以被导出(例如,帧内预测),并且视频单元的第一特征可以使用预测信号被计算。

2)在一个示例中,第二特征可以使用参考单元的重建样本被计算。

3)在一个示例中,该特征可以指平均值和/或方差值。

4)在一个示例中,该特征可以指样本值的直方图。

5)在一个示例中,T的确定可以取决于编解码信息。

b)在一个示例中,编解码信息可以指视频单元的维度和/或尺寸。

8.在上述示例中,基于光流的编解码方法可以指双向光流方法,在双向光流方法中光流被用于细化编解码块的双向预测信号,和/或针对仿射模式的利用光流的预测细化,在预测细化中光流被用于细化仿射运动补偿预测,和/或其他编解码方法,在其他编解码方法中光流被用于生成/细化编解码块的预测/重建信号。

a.在一个示例中,它可能是PROF。

b.在一个示例中,它可以是BDOF。

9.样本/像素的"光照变化"一词可以指样本/像素值在两个不同视频单元(例如,当前图片及其参考图片)之间变化很大。例如,d=abs(P1-P2)其中P1和P2表示两个不同视频单元中的两个样本/像素,当d大于某个值D时发生光照变化。

10.视频单元的“光照变化”一词可以指大多数样本/像素的值,和/或视频单元中样本/像素的平均值在两个不同的视频单元之间变化很大。

a.例如,d=abs(m1-m2),其中m1和m2表示被应用于两个相关联的视频单元的函数的输出。

i.在一个示例中,该函数被定义为平均值,例如,两个不同视频单元中样本/像素的两个平均值分别被计算为m1和m2。

ii.在一个示例中,当d大于某个值D时发生光照变化。

11.在上述示例中,变量D可以是预定义的。

a.备选地,D可以被即时导出,例如,根据解码信息(例如,当前图片/不同图片中的相邻或非相邻样本/像素)。

b.备选地,D可以在码流中通过信号被传输。

12.在上述示例中,视频单元可以指视频单元可以指颜色分量/子图片/条带/图块/编解码树单元(CTU)/CTU行/CTU组/编解码单元(CU)/预测单元(PU)/变换单元(TU)/编解码树块(CTB)/编解码块(CB)/预测块(PB)/变换块(TB)/块/块的子块/块内的子区域/包含多于一个样本或像素的任何其它区域。

a.在一个示例中,光照变化/信息的确定可以指亮度分量和/或色度分量。

13.是否和/或如何应用上面公开的方法可以在序列级/图片组级/图片级/条带级/图块组级通过信号被传输,诸如在序列头/图片头/SPS/VPS/DPS/DCI/PPS/APS/条带头/图块组头中。

14.是否和/或如何应用上面公开的方法可以在PB/TB/CB/PU/TU/CU/VPDU/CTU/CTU行/条带/图块/子图片/包含多于一个样本或像素的其它种类的区域通过信号被传输。

15.是否和/或如何应用上面公开的方法可以取决于编解码信息,例如块尺寸、颜色格式、单/双树划分、颜色分量、条带/图片类型。

本公开的实施例涉及基于光照信息确定是否和/或如何将基于光流的编解码方法应用于视频单元。

如本文所用,术语“视频单元”可以指以下中的一个或多个:颜色分量、子图片、条带、图块、编解码树单元(CTU)、CTU行、CTU组、编解码单元(CU)、预测单元(PU)、变换单元(TU)、编解码树块(CTB)、编解码块(CB)、预测块(PB)、变换块(TB)、块、块中的子块、块内的子区域、或包括多于一个样本或像素的区域。

图26示出了根据本公开的一些实施例的用于视频处理的方法2600的流程图,该方法2600可以在视频单元和视频单元的码流之间的转换期间被实施。

在框2610,在视频单元和视频单元的码流之间的转换期间,基于视频单元的光照信息,关于将基于光流的编解码方法应用于视频单元的信息被确定。根据本公开的实施例,关于将基于光流的编解码方法应用于视频单元的信息包括是否将基于光流的编解码方法应用于视频单元。根据本公开的实施例,关于将基于光流的编解码方法应用于视频单元的信息包括如何将基于光流的编解码方法应用于视频单元。

在框2620,转换基于该信息被执行。在一些实施例中,转换可以包括将视频单元编码到码流中。在一些实施例中,转换可以包括从码流解码视频单元。

在一些实施例中,视频的码流可以被存储在非暂态计算机可读记录介质中。视频的码流可以通过由视频处理设备执行的方法被生成,根据该方法,基于视频单元的光照信息,关于将基于光流的编解码方法应用于视频单元的信息被确定,并且基于该信息视频单元的码流被生成。

在一些实施例中,基于视频单元的光照信息,关于将基于光流的编解码方法应用于视频单元的信息被确定,基于该信息视频单元的码流被生成,以及码流被存储在非暂态计算机可读记录介质中。

根据本公开的实施例,在确定是否或如何应用基于光流的编解码方法时光照信息可以被考虑。与现有方案相比,本公开的一些实施例可以有利地提高编解码效率和编解码性能。

图27示出了根据本公开的一些实施例的用于视频处理的方法2700的流程图,该方法2700可以在视频单元和视频单元的码流之间的转换期间被实施。

在框2710,在视频单元和视频单元的码流之间的转换期间,基于视频单元的光照信息是否基于光流的编解码方法被应用于视频单元被确定。

在框2720,转换基于该确定被执行。在一些实施例中,转换可以包括将视频单元编码到码流中。在一些实施例中,转换可以包括从码流解码视频单元。

根据本公开的实施例,在确定是否应用基于光流的编解码方法时光照信息可以被考虑。与现有方案相比,本公开的一些实施例可以有利地提高编解码效率和编解码性能。

在一些实施例中,基于光流的编解码方法是否应用于视频单元可以取决于是否发生光照变化,在一些实施例中,如果发生光照变化,则基于光流的编解码方法可以不被应用于视频单元。这样,可以确保基于光流的编解码方法在适当的场景中被应用。

在一些实施例中,视频单元的光照变化是否发生可以基于视频单元的一组邻近样本被确定。在一些实施例中,一组邻近样本可以与视频单元相邻。在一些实施例中,一组邻近样本可以与视频单元非相邻。

在一些实施例中,码流中的语法元素可以指示是否发生光照变化。换句话说,是否发生视频单元的光照变化可以通过语法元素被指示并且在码流中通过信号被传输。通过这种方式,可以减轻解码器侧在确定是否应用基于光流的编解码方法时的计算负担。

在一些实施例中,是否发生视频单元的光照变化可以基于编解码工具是否被应用于视频单元被确定。在一些实施例中,是否发生视频单元的光照变化可以基于编解码工具如何被应用于视频单元被确定。在一些实施例中,编解码工具可指以下至少一项:局部光照补偿方法、具有CU级权重方法的双向预测或仿射补偿方法。例如,在一些实施例中,编解码工具可以包括BCW。在一些实施例中,编解码工具可以包括LIC。在一些实施例中,如果编解码工具被应用,则可能意味着光照发生变化。

在一些实施例中,如果光照变化发生在视频单元的样本或像素上,则基于光流的编解码方法可以不被应用于视频单元的样本或像素。例如,如果光照变化发生在左上方样本或像素上,则基于光流的编解码方法可以不被应用于左上方样本或像素。

在一些实施例中,视频单元的光照变化的确定可以在第一级中被执行。在一些实施例中,是否和/或如何进行基于光流的编解码方法的确定可以在第二级中被执行。在一些实施例中,第一级和第二级可以都是块级。在一些实施例中,第一级和第二级可以都是图片级。在一些实施例中,第一级和第二级可以都是子块级。在一些实施例中,第一级可以是块级并且第二级可以是子块级。在一些实施例中,第一级中的所有样本或像素可以被利用。在一些实施例中,第一级中的部分样本或像素可以被利用。

在一些实施例中,如果基于光流的编解码方法是块级的,则视频单元的光照变化的检测或计算中的至少一个还可以涉及除了与视频单元相关联的当前块的一组预测块之外的样本。在一些实施例中,如果基于光流的编解码方法是子块级的,则视频单元的光照变化的检测或计算中的至少一个还可以涉及块中的除了与视频单元相关联的当前子块的一组预测块之外的样本。

在一些实施例中,基于光流的编解码方法是否被应用于视频单元可以基于以下至少一项被确定:编解码工具是否被应用于视频单元,或者编解码工具如何被应用于视频单元。在一些实施例中,编解码工具可以指以下至少一项:局部光照补偿方法、具有CU级权重的双向预测方法或仿射补偿方法。例如,在一些实施例中,编解码工具可以包括BCW。在一些实施例中,如果编解码工具被应用于视频单元,则基于光流的编解码方法不被应用于视频单元。在一些实施例中,如果编解码工具被应用于视频单元,则基于光流的编解码方法可以被应用于视频单元。

在一些实施例中,基于光流的编解码方法可以指以下至少一项:双向光流方法,在双向光流方法中光流被用于细化编解码块的双向预测信号,针对仿射模式的利用光流的预测细化,在预测细化中光流被用于细化仿射运动补偿预测,或者编解码方法,在编解码方法中光流被用于生成或细化编解码块的预测/重建信号。在一些实施例中,基于光流的编解码方法可以是双向光流(BDOF)。在一些实施例中,基于光流的编解码方法可以是利用光流的预测细化(PROF)。

在一些实施例中,样本/像素的光照变化可以指在两个不同视频单元(例如,当前图片及其参考图片)之间样本/像素值变化很大。在一些实施例中,如果两个视频单元之间的样本值或像素值的变化大于第一阈值,则可以发生光照变化。例如,变化可以通过d=abs(P1-P2)被计算,其中P1和P2表示两个不同视频单元中的两个样本/两个像素,并且abs表示绝对值运算。在这种情况下,如果d大于某个值D,则可以发生光照变化。在一些实施例中,第一阈值可以是预定义的。在一些实施例中,第一阈值可以被动态地导出。例如,第一阈值可以根据解码信息(例如,在当前图片/不同的图片中相邻或非相邻的样本/像素)被导出。在一些实施例中,第一阈值可以在码流被指示。

在一些实施例中,视频单元的光照变化可以指两个不同视频单元之间的大多数样本/像素的值变化很大,和/或视频单元中的样本/像素的平均值变化很大。在一些实施例中,如果两个视频单元之间的视频单元中的样本或像素值的变化大于第二阈值,则发生光照变化。在一些实施例中,如果两个视频单元之间的视频单元中的样本值或像素值的平均值的变化大于第二阈值,则可以发生光照变化。例如,变化可以通过d=abs(m1-m2)被计算,其中m1和m2表示被应用于两个相关联的视频单元的函数的输出,并且abs表示绝对值运算。在一些实施例中,函数可以被定义为平均值。例如,两个不同视频单元中的样本/像素的两个平均值分别被计算为m1和m2。在一些实施例中,第二阈值可以是预定义的。在一些实施例中,第二阈值可以被动态地导出。例如,第二阈值可以根据解码信息(例如,当前图片/不同的图片中相邻或非相邻的样本/像素)被导出。在一些实施例中,第二阈值可以在码流中被指示。

在一些实施例中,视频单元的光照信息或光照变化可以包括以下至少之一:亮度分量或色度分量。

在一些实施例中,是否应用基于光流的编解码方法的指示可以在以下中的一项被指示:序列级、图片组级、图片级、条带级或图块组级。例如,在一些实施例中,是否应用基于光流的编解码方法的指示可以在以下中的一项被指示:序列头、图片头、序列参数集(SPS)、视频参数集(VPS)、依赖参数集(DPS)、解码能力信息(DCI)、图片参数集(PPS)、自适应参数集(APS)、条带头或图块组头。

在一些实施例中,是否应用基于光流的编解码方法的指示可以被包括在以下中的一项中:预测块(PB)、变换块(TB)、编解码块(CB)、预测单元(PU)、变换单元(TU)、编解码单元(CU)、虚拟流水线数据单元(VPDU)、编解码树单元(CTU)、CTU行、条带、图块、子图片、或包含多于一个样本或像素的区域。

在一些实施例中,基于视频单元的编解码信息,基于光流的编解码方法是否被应用可以被确定,编解码信息可以包括以下至少一项:块尺寸、颜色格式、单树和/或双树划分、颜色分量、条带类型或图片类型。

在一些实施例中,视频的码流可以被存储在非暂态计算机可读记录介质中,视频的码流可以通过由视频处理设备执行的方法被生成。根据该方法,基于视频单元的光照信息,基于光流的编解码方法是否被应用于视频单元被确定,并基于该确定视频单元的码流被生成。

在一些实施例中,基于视频单元的光照信息,基于光流的编解码方法是否被应用于视频单元被确定,基于该确定视频单元的码流被生成,并且码流被存储在非暂态计算机可读记录介质中。

图28示出了根据本公开的一些实施例的用于视频处理的方法2800的流程图,该方法2800可以在视频单元和视频单元的码流之间的转换期间被实施。

在框2810,在视频单元和视频单元的码流之间的转换期间,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,基于光流的编解码方法是否被应用于视频单元被确定。

在框2820,转换基于该确定被执行。在一些实施例中,转换可以包括将视频单元编码到码流中。在一些实施例中,转换可以包括从码流解码视频单元。

根据本公开的实施例,在确定是否应用基于光流的编解码方法时光照信息可以被考虑。与现有方案相比,本公开的一些实施例可以有利地提高编解码效率和编解码性能。

在一些实施例中,基于视频单元的两个参考图片的光照信息,是否启用基于光流的编解码方法可以被确定。在一些实施例中,如果在两个参考图片之间发生光照变化,则可以不允许启用基于光流的编解码方法。

在一些实施例中,两个参考图片中的第一参考图片可以来自第一参考图片列表,并且两个参考图片中的第二参考图片可以来自第二参考图片列表。例如,两个参考图片中的一个可以来自列表X,而另一个可以来自列表Y。

在一些实施例中,两个参考图片的绝对图片顺序编解码(POC)距离可以等于两个参考图片中的一项相对于视频单元的绝对POC距离的两倍。例如,视频单元的当前图片可以在POC方面处于两个参考图片的中间。

在一些实施例中,两个参考图片中的所有样本或所有像素可以被用于确定光照信息。在一些实施例中,两个参考图片中的部分样本或部分像素可以被用于确定光照信息。

在一些实施例中,基于当前图片的光照信息和与视频单元相关联的一个或多个参考图片的光照信息,是否启用基于光流的编解码方法可以被确定。

在一些实施例中,基于当前图片和一个或多个参考图片,是否发生视频单元的光照变化可以被确定。在一些实施例中,基于以下至少一项,是否发生视频单元的光照变化可以被确定:一个或多个参考图片中的原始样本或者一个或多个参考图片中的重建样本。

在一些实施例中,基于以下至少一项,是否发生视频单元的光照变化可以被确定:当前图片的原始样本、当前图片的重建样本,或者当前图片的预测样本。

在一些实施例中,针对一个或多个参考图片的一组直方图可以被确定。在这种情况下,在一些实施例中,如果一组直方图的差异大于第一阈值,则可以发生光照变化。在一些实施例中,第一阈值可以基于以下至少一项被设置:当前图片的尺寸、视频单元的编解码信息、当前图片,或者一组直方图。

在一些实施例中,如果在当前图片和一个或多个参考图片之中发生光照变化,则可以不启用基于光流的编解码方法。

在一些实施例中,光照信息可以包括在视频单元和视频单元的参考视频单元之间的一个或多个分量的样本值。在一些实施例中,一个或多个分量包括亮度分量。在一些实施例中,一个或多个分量可以包括一个或多个色度分量。在一些实施例中,视频单元和/或参考视频单元可以是编解码块,例如编解码单元/预测单元/变换单元。

在一些实施例中,针对视频单元的样本值的第一特征可以被确定。在一些实施例中,针对参考视频单元的样本值的第二特征可以被确定。在一些实施例中,如果第一特征和第二特征之间的差异大于第二阈值,则可以确定不应用基于光流的编解码方法。在一些实施例中,第一特征可以基于视频单元的邻近样本被确定。在一些实施例中,邻近样本可以与视频单元相邻。在一些实施例中,邻近样本可以与视频单元非相邻。在一些实施例中,针对视频单元的预测信号可以被导出。在这种情况下,基于预测信号第一特征可以被确定。在一些实施例中,预测信号可以是帧内预测信号。在一些实施例中,第二特征可以基于参考视频单元的重建样本被确定。

在一些实施例中,第一特征可以包括以下至少一项:针对视频单元的样本值的平均值、针对视频单元的样本值的方差值、或者针对视频单元的样本值的直方图。

在一些实施例中,第二特征可以包括以下至少一项:针对参考视频单元的样本值的平均值、针对参考视频单元的样本值的方差值、或者针对参考视频单元的样本值的直方图。

在一些实施例中,第二阈值可以基于视频单元的编解码信息被确定。在一些实施例中,编解码信息可以包括以下至少一项:视频单元的维度,或者视频单元的尺寸。

在一些实施例中,视频单元的光照变化的确定可以在第一级中被执行。在一些实施例中,是否和/或如何进行基于光流的编解码方法的确定可以在第二级中被执行。在一些实施例中,第一级和第二级都可以是块级。在一些实施例中,第一级和第二级都可以是图片级。在一些实施例中,第一级和第二级都可以是子块级。在一些实施例中,第一级可以是块级并且第二级可以是子块级。在一些实施例中,第一级中的所有样本或所有像素可以被利用。在一些实施例中,第一级中的部分样本或部分像素可以被利用。

在一些实施例中,如果基于光流的编解码方法是块级的,则视频单元的光照变化的检测或计算中的至少一项可以还涉及除了与视频单元相关联的当前块的一组预测块之外的样本。在一些实施例中,如果基于光流的编解码方法是子块级的,则视频单元的光照变化的检测或计算中的至少一项可以还涉及块中的除了与视频单元相关联的当前子块的一组预测块之外的样本。

在一些实施例中,基于光流的编解码方法可以指以下至少一项:双向光流方法,在双向光流方法中光流被用于细化编解码块的双向预测信号,针对仿射模式的利用光流的预测细化,在预测细化中光流被用于细化仿射运动补偿预测,或者编解码方法,在编解码方法中光流被用于生成或细化编解码块的预测/重建信号。在一些实施例中,基于光流的编解码方法可以是双向光流(BDOF)。在一些实施例中,基于光流的编解码方法可以是利用光流的预测细化(PROF)。

在一些实施例中,样本/像素的光照变化可以指样本/像素值在两个不同视频单元(例如,当前图片及其参考图片)之间变化很大。在一些实施例中,如果两个视频单元之间的样本值或像素值的变化大于第一阈值,则可以发生光照变化。例如,变化可以通过d=abs(P1-P2)被计算,其中P1和P2表示两个不同视频单元中的两个样本/两个像素,并且abs表示绝对值运算。在这种情况下,如果d大于某个值D,则可以发生光照变化。在一些实施例中,第一阈值可以是预定义的。在一些实施例中,第一阈值可以被动态地导出。例如,第一阈值可以根据解码信息(例如,在当前图片/不同的图片中相邻或非相邻的样本/像素)被导出。在一些实施例中,第一阈值可以在码流中被指示。

在一些实施例中,视频单元的光照变化可以指两个不同视频单元之间的大多数样本/像素的值变化很大,和/或视频单元中的样本/像素的平均值变化很大。在一些实施例中,如果两个视频单元之间的视频单元中的样本值或像素值的变化大于第二阈值,则发生光照变化。在一些实施例中,如果两个视频单元之间的视频单元中的样本值或像素值的平均值的变化大于第二阈值,则可以发生光照变化。例如,变化可以通过d=abs(m1-m2)被计算,其中m1和m2表示被应用于两个相关联的视频单元的函数的输出,并且abs表示绝对值运算。在一些实施例中,函数可以被定义为平均值的导出。例如,两个不同视频单元中的样本/像素的两个平均值分别被计算为m1和m2。在一些实施例中,第二阈值可以是预定义的。在一些实施例中,第二阈值可以被动态地导出。例如,第二阈值可以根据解码信息(例如,当前图片/不同的图片中的相邻或非相邻额样本/像素)被导出。在一些实施例中,第二阈值可以在码流中被指示。

在一些实施例中,视频单元的光照信息或光照变化可以包括以下至少一项:亮度分量或色度分量。

在一些实施例中,是否应用基于光流的编解码方法的指示可以在以下中的一项被指示:序列级、图片组级、图片级、条带级或者图块组级。例如,在一些实施例中,是否应用基于光流的编解码方法的指示可以在以下中的一项被指示:序列头、图片头、序列参数集(SPS)、视频参数集(VPS)、依赖参数集(DPS)、解码能力信息(DCI)、图片参数集(PPS)、自适应参数集(APS)、条带头或者图块组头。

在一些实施例中,是否应用基于光流的编解码方法的指示可以被包括在以下中的一项中:预测块(PB)、变换块(TB)、编解码块(CB)、预测单元(PU)、变换单元(TU)、编解码单元(CU)、虚拟流水线数据单元(VPDU)、编解码树单元(CTU)、CTU行、条带、图块、子图片、或者包含多于一个样本或像素的区域。

在一些实施例中,基于视频单元的编解码信息,基于光流的编解码方法是否被应用可以被确定,编解码信息可以包括以下至少一项:块尺寸、颜色格式、单树和/或双树划分、颜色分量、条带类型或者图片类型。

在一些实施例中,视频的码流被存储在非暂态计算机可读记录介质中。视频的码流可以通过由视频处理设备执行的方法被生成。根据该方法,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,基于光流的编解码方法是否被应用于视频单元被确定,以及视频单元的码流基于该确定被生成。

在一些实施例中,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,基于光流的编解码方法是否被应用于视频单元被确定。视频单元的码流基于该确定被生成,并且码流被存储在非暂态计算机可读记录介质中。

图29示出了根据本公开的一些实施例的用于视频处理的方法2900的流程图,该方法2900可以在视频单元和视频单元的码流之间的转换期间实施。

在框2910,在视频单元和视频单元的码流之间的转换期间,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,基于光流的编解码方法如何应用于视频单元被确定。

在框2920,转换基于该确定被执行。在一些实施例中,转换可以包括将视频单元编码到码流中。在一些实施例中,转换可以包括从码流解码视频单元。

根据本公开的实施例,在确定如何应用基于光流的编解码方法时光照信息可以被考虑。与现有方案相比,本公开的一些实施例可以有利地提高编解码效率和编解码性能。

在一些实施例中,基于是否发生视频单元的光照变化,基于光流的编解码过程可以被应用于视频单元。在一些实施例中,光照变化可以被包括在基于光流的编解码方法的过程中。

在一些实施例中,在基于光流的编解码方法的过程中,在梯度的计算中,值可以被减去。

在一些实施例中,在基于光流的编解码方法的过程期间,第一值可以从视频单元的第一预测块中的第一样本或第一像素中被减去。在一些实施例中,第二值可以从视频单元的第二预测块中的第二样本或第二像素中被减去。在一些实施例中,第一样本或第一像素与第二样本或第二像素的差异可以被确定。

在一些实施例中,视频单元的预测块可以经由基于光流的编解码方法中被使用的函数被修正。在一些实施例中,该函数可以是线性函数:f(Pi)=a*Pi+b,其中a和b分别表示线性参数,Pi表示视频单元的预测块中的样本或像素。代替使用直接从运动信息被获得的第一预测块/第二预测块,提出首先经由函数修正获得的预测块,即在光流过程中f(Pi)被使用,而不是样本值Pi。

在一些实施例中,线性参数中的至少一个可以基于以下中的一项被确定:编解码工具(例如,LIC和/或BCW),或者视频单元的一组邻近样本或邻近像素。在一些实施例中,至少一个线性参数可以在码流中被指示。在一些实施例中,针对视频单元中不同的预测块,函数可以不同。

在一些实施例中,函数可以是非线性函数。在一些实施例中,光照变化的一组模型参数可以与基于光流的编解码方法的一组参数一起被联合优化。在一些实施例中,光照变化的一组模型参数和基于光流的编解码方法的一组参数可以以最小二乘回归方法被迭代地更新。

在一些实施例中,视频单元的光照变化的确定可以在第一级中被执行,并且如何基于光流的编解码方法的确定可以在第二级中被执行。

在一些实施例中,第一级和第二级可以都是块级。在一些实施例中,第一级和第二级可以都是图片级。在一些实施例中,第一级和第二级可以都是子块级。在一些实施例中,第一级可以是块级,第二级可以是子块级。在一些实施例中,第一级中的所有样本或所有像素可以被利用。在一些实施例中,第一级中的部分样本或部分像素可以被利用。

在一些实施例中,如何应用基于光流的编解码方法的指示可以在以下中的一项被指示:序列级、图片组级、图片级、条带级或者图块组级。例如,在一些实施例中,如何应用基于光流的编解码方法的指示可以在以下中的一项被指示:序列头、图片头、序列参数集(SPS)、视频参数集(VPS)、依赖参数集(DPS)、解码能力信息(DCI)、图片参数集(PPS)、自适应参数集(APS)、条带头或者图块组头。

在一些实施例中,如何应用基于光流的编解码方法的指示可以被包括在以下中的一项:预测块(PB)、变换块(TB)、编解码块(CB)、预测单元(PU)、变换单元(TU)、编解码单元(CU)、虚拟流水线数据单元(VPDU)、编解码树单元(CTU)、CTU行、条带、图块、子图片、或包含多于一个样本或像素的区域。

在一些实施例中,基于视频单元的编解码信息,基于光流的编解码方法如何被应用可以被确定。编解码信息可以包括以下至少一项:块尺寸、颜色格式、单树和/或双树划分、颜色分量、条带类型或者图片类型。

在一些实施例中,视频的码流可以被存储在非暂态计算机可读记录介质中,视频的码流可以通过由视频处理设备执行的方法被生成。根据该方法,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,如何将基于光流的编解码方法应用于视频单元可以被确定,以及视频单元的码流基于该确定被生成。

在一些实施例中,基于与视频单元或者视频单元的参考视频单元中的至少一项相关联的光照信息,如何将基于光流的编解码方法应用于视频单元被确定。视频单元的码流基于该确定被生成,并且码流被存储在非暂态计算机可读记录介质中。

本公开的实施可以根据以下条款进行描述,其特征可以以任何合理的方式组合。

条款1.一种视频处理的方法,包括:在视频单元和所述视频单元的码流之间的转换期间,基于与所述视频单元或者所述视频单元的参考视频单元中的至少一项相关联的光照信息,确定基于光流的编解码方法是否被应用于所述视频单元;以及基于所述确定执行所述转换。

条款2.根据条款1所述的方法,其中确定所述基于光流的编解码方法是否被应用于所述视频单元包括:基于所述视频单元的两个参考图片的光照信息,确定是否启用所述基于光流的编解码方法。

条款3.根据条款2所述的方法,还包括:响应于在所述两个参考图像之间发生光照变化,确定不启用所述基于光流的编解码方法。

条款4.根据条款2所述的方法,其中所述两个参考图片中的第一参考图片来自第一参考图片列表,并且所述两个参考图片中的第二参考图片来自第二参考图片列表。

条款5.根据条款2所述的方法,其中所述两个参考图片的绝对图片顺序编解码(POC)距离等于所述两个参考图片中的一项相对于所述视频单元的绝对POC距离的两倍。

条款6.根据条款2所述的方法,其中所述两个参考图片中的所有样本或所有像素被用于确定所述光照信息,或者其中所述两个参考图片中的部分样本或部分像素被用于确定所述光照信息。

条款7.根据条款1所述的方法,其中确定所述基于光流的编解码方法是否被应用于所述视频单元包括:基于当前图片的光照信息和与所述视频单元相关联的一个或多个参考图片的光照信息,确定是否启用所述基于光流的编解码方法。

条款8.根据条款7所述的方法,还包括:基于所述当前图片和一个或多个参考图片,确定是否发生所述视频单元的光照变化。

条款9.根据条款8所述的方法,其中确定是否发生所述视频单元的所述光照变化包括:基于以下至少一项确定是否发生所述视频单元的所述光照变化:所述一个或多个参考图片中的原始样本或者所述一个或多个参考图片中的重建样本。

条款10.根据条款8所述的方法,其中确定是否发生所述视频单元的所述光照变化包括:基于以下至少一项确定是否发生所述视频单元的所述光照变化:所述当前图片的原始样本,所述当前图片的重建样本,或者所述当前图片的预测样本。

条款11.根据条款8所述的方法,还包括:确定针对所述一个或多个参考图片的一组直方图;以及响应于所述一组直方图的差异大于第一阈值,确定发生所述光照变化。

条款12.根据条款11所述的方法,其中所述第一阈值基于以下至少一项被设置:所述当前图片的尺寸,所述视频单元的编解码信息,所述当前图片,或者所述一组直方图。

条款13.根据条款7所述的方法,还包括:响应于在所述当前图片和所述一个或多个参考图片之中发生所述光照变化,确定不启用所述基于光流的编解码方法。

条款14.根据条款1所述的方法,其中所述光照信息包括在所述视频单元和所述视频单元的所述参考视频单元之间的一个或多个分量的样本值。

条款15.根据条款14所述的方法,其中所述一个或多个分量包括亮度分量。

条款16.根据条款14所述的方法,其中所述一个或多个分量包括一个或多个色度分量。

条款17.根据条款1所述的方法,还包括:确定针对所述视频单元的样本值的第一特征;确定针对所述参考视频单元的样本值的第二特征;以及响应于所述第一特征和所述第二特征之间的差异大于第二阈值,确定不应用所述基于光流的编解码方法。

条款18.根据条款17所述的方法,其中所述第一特征基于所述视频单元的邻近样本被确定。

条款19.根据条款17所述的方法,其中确定所述第一特征包括:导出针对所述视频单元的预测信号;以及基于所述预测信号确定所述第一特征。

条款20.根据条款17所述的方法,其中所述第二特征基于所述参考视频单元的重建样本被确定。

条款21.根据条款17所述的方法,其中所述第一特征包括以下至少一项:针对所述视频单元的样本值的平均值,针对所述视频单元的样本值的方差值,或者针对所述视频单元的样本值的直方图。

条款22.根据条款17所述的方法,其中所述第二特征包括以下至少一项:针对所述参考视频单元的样本值的平均值,针对所述参考视频单元的样本值的方差值,或者针对所述参考视频单元的样本值的直方图。

条款23.根据条款17所述的方法,其中所述第二阈值基于所述视频单元的编解码信息被确定。

条款24.根据条款23所述的方法,其中所述编解码信息包括以下至少一项:所述视频单元的维度,或者所述视频单元的尺寸。

条款25.根据条款1所述的方法,其中所述基于光流的编解码方法包括以下至少一项:双向预测光流方法,在所述双向预测光流方法中光流被用于细化编解码块的双向预测信号,针对仿射模式的利用光流的预测细化,在所述预测细化中所述光流被用于细化仿射运动补偿预测,或者编解码方法,在所述编解码方法中所述光流被用于生成或细化编解码块的预测/重建信号。

条款26.根据条款25所述的方法,其中所述基于光流的编解码方法是双向预测光流(BDOF),或者其中所述基于光流的编解码方法是利用光流的预测细化(PROF)。

条款27.根据条款1所述的方法,其中如果在所述视频单元和所述参考视频单元之间的样本值或像素值的变化大于第三阈值,则发生光照变化。

条款28.根据条款27所述的方法,其中所述变化通过以下被计算:d=abs(P1-P2),其中P1和P2分别表示所述视频单元和所述参考视频单元中的两个样本或两个像素,并且abs表示绝对值运算。

条款29.根据条款27所述的方法,其中所述第三阈值是预定义的,或者其中所述第三阈值被动态地确定,或者其中所述第三阈值被在所述码流中被指示。

条款30.根据条款1所述的方法,其中如果在所述视频单元和所述参考视频单元之间的所述视频单元中的样本值或像素值的变化大于第四阈值,则发生光照变化,或者其中如果在所述视频单元和所述参考视频单元之间的所述视频单元中的样本值或像素值的平均值的变化大于所述第四阈值,则发生所述光照变化。

条款31.根据条款30所述的方法,其中所述变化通过以下被计算:d=abs(m1-m2),其中P1和P2分别表示被应用于所述两个相关联视频单元的函数的输出,并且abs表示绝对值运算。

条款32.根据条款31所述的方法,其中所述函数被定义为平均值。

条款33.根据条款30所述的方法,其中所述第四阈值是预定义的,或者其中所述第四阈值被动态地确定,或者其中所述第四阈值在所述码流中被指示。

条款34.根据条款1所述的方法,其中所述视频单元包括以下中的一项:图片,子图片,条带,图块,编解码树单元(CTU),CTU行,一组CTU,编解码单元(CU),预测单元(PU),变换单元(TU),编解码树块(CTB),编解码块(CB),预测块(PB),变换块(TB),块,块的子块,所述块内的子区域,或者包含多于一个样本或像素的区域。

条款35.根据条款1所述的方法,其中所述转换包括将所述视频单元编码到所述码流中。

条款36.根据条款1所述的方法,其中所述转换包括从所述码流解码所述视频单元。

条款37.根据条款1-40中任一项所述的方法,其中是否和/或如何应用所述基于光流的编解码方法的指示在以下中的一项被指示:序列级,图片组级,图片级,条带级,或者图块组级。

条款38.根据条款1-37中任一项所述的方法,其中是否和/或如何应用所述基于光流的编解码方法的指示在以下中的一项被指示:序列头,图片头,序列参数集(SPS),视频参数集(VPS),依赖参数集(DPS),解码能力信息(DCI),图片参数集(PPS),自适应参数集(APS),条带头,或者图块组头。

条款39.根据条款1-37中任一项所述的方法,其中是否和/或如何应用所述基于光流的编解码方法的指示被包括在以下中的一项中:预测块(PB),变换块(TB),编解码块(CB),预测单元(PU),变换单元(TU),编解码单元(CU),虚拟流水线数据单元(VPDU),编解码树单元(CTU),CTU行,条带,图块,子图片,或者包含多于一个样本或像素的区域。

条款40.根据条款1-37中任一项所述的方法,还包括:基于所述视频单元的编解码信息,确定所述基于光流的编解码方法是否和/或如何被应用,所述编解码信息包括以下至少一项:块尺寸,颜色格式,单树和/或双树划分,颜色分量,条带类型,或者图片类型。

条款41.一种用于处理视频数据的装置,包括处理器和在其上具有指令的非暂态存储器,其中所述指令在由所述处理器执行时使所述处理器执行根据条款1-40中任一项所述的方法。

条款42.一种非暂态计算机可读存储介质,存储使处理器执行根据条款1-40中任一项所述的方法的指令。

条款43.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中所述方法包括:基于与所述视频单元或者所述视频单元的参考视频单元中的至少一项相关联的光照信息,确定基于光流的编解码方法是否被应用于视频单元;以及基于所述确定生成所述视频单元的所述码流。

条款44.一种用于存储视频的码流的方法,包括:基于与所述视频单元或者所述视频单元的参考视频单元中的至少一项相关联的光照信息,确定基于光流的编解码方法是否被应用于视频单元;基于所述确定生成所述视频单元的码流;以及将所述码流存储在非暂态计算机可读记录介质中。

示例设备

图30示出了可以在其中实现本公开的各种实施例的计算设备3000的框图。计算设备3000可以被实现为源设备110(或视频编码器114或200)或目的设备120(或视频解码器124或300),或者可以被包括在源设备110(或视频编码器114或200)或目的设备120(或视频解码器124或300)中。

应当理解的是,图30中示出的计算设备3000仅为了说明的目的,而不是以任何方式暗示对本公开实施例的功能和范围的任何限制。

如图30所示,计算设备3000包括通用计算设备3000。计算设备3000可以至少包括一个或多个处理器或处理单元3010、存储器3020、存储单元3030、一个或多个通信单元3040、一个或多个输入设备3050以及一个或多个输出设备3060。

在一些实施例中,计算设备3000可以被实现为具有计算能力的任何用户终端或服务器终端。服务器终端可以是由服务提供商提供的服务器、大型计算设备等。用户终端例如可以是任何类型的移动终端、固定终端或便携式终端,包括移动电话、站、单元、设备、多媒体计算机、多媒体平板计算机、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或其任何组合,并且包括这些设备的附件和外围设备或其任何组合。可以设想的是,计算设备3000可以支持到用户的任何类型的接口(诸如"可穿戴"电路装置等)。

处理单元3010可以是物理处理器或虚拟处理器,并且可以基于存储在存储器3020中的程序实现各种处理。在多处理器系统中,多个处理单元并行地执行计算机可执行指令,以便改善计算设备3000的并行处理能力。处理单元3010也可以被称为中央处理单元(CPU)、微处理器、控制器或微控制器。

计算设备3000通常包括各种计算机存储介质。这样的介质可以是由计算设备3000可访问的任何介质,包括但不限于易失性介质和非易失性介质、或可拆卸介质和不可拆卸介质。存储器3020可以是易失性存储器(例如,寄存器、高速缓存、随机存取存储器(RAM))、非易失性存储器(诸如只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)或闪存)或其任何组合。存储单元3030可以是任何可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如存储器、闪存驱动器、磁盘或其他可以被用于存储信息和/或数据并且可以在计算设备3000中被访问的介质。

计算设备3000还可以包括附加的可拆卸/不可拆卸存储介质、易失性/非易失性存储介质。尽管在图30中未示出,但是可以提供用于从可拆卸的非易失性磁盘读取和/或写入可拆卸的非易失性磁盘的磁盘驱动器,以及用于从可拆卸的非易失性光盘读取和/或写入可拆卸的非易失性光盘的光盘驱动器。在这种情况下,每个驱动器可以经由一个或多个数据介质接口连接到总线(未示出)。

通信单元3040经由通信介质与另一计算设备通信。另外,计算设备3000中的组件的功能可以由可以经由通信连接进行通信的单个计算集群或多个计算机器来实现。因此,计算设备3000可以使用与一个或多个其他服务器、联网个人计算机(PC)或其他通用网络节点的逻辑连接来在联网环境中运行。

输入设备3050可以是各种输入设备中的一种或多种输入设备,诸如鼠标、键盘、轨迹球、语音输入设备等。输出设备3060可以是各种输出设备中的一种或多种输出设备,诸如显示器、扬声器、打印机等。借助于通信单元3040,计算设备3000还可以与一个或多个外部设备(未示出)通信,外部设备诸如是存储设备和显示设备,计算设备3000还可以与一个或多个使用户能够与计算设备3000交互的设备通信,或任何使计算设备3000能够与一个或多个其他计算设备通信的设备(例如网卡、调制解调器等)通信,如果需要的话。这种通信可以经由输入/输出(I/O)接口(未示出)进行。

在一些实施例中,计算设备3000的一些或所有组件也可以被布置在云计算架构中,而不是被集成在单个设备中。在云计算架构中,组件可以被远程提供并且共同工作,以实现本公开中描述的功能。在一些实施例中,云计算提供计算、软件、数据访问和存储服务,这将不要求最终用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实施例中,云计算使用合适的协议经由广域网(例如互联网)提供服务。例如,云计算提供商通过广域网提供应用程序,可以通过网络浏览器或任何其他计算组件访问这些应用程序。云计算架构的软件或组件以及对应的数据可以存储在远程服务器上。云计算环境中的计算资源可以被合并或分布在远程数据中心的位置。云计算基础设施可以通过共享数据中心提供服务,尽管它们表现为作为用户的单一接入点。因此,云计算架构可与被用于从远程位置的服务提供商处提供本文所述的组件和功能。备选地,它们可以由常规服务器提供,或者直接或以其他方式安装在客户端设备上。

在本公开的实施例中,计算设备3000可以被用于实现视频编码/解码。存储器3020可以包括具有一个或多个程序指令的一个或多个视频编解码模块3025。这些模块能够由处理单元3010访问和执行,以执行本文描述的各种实施例的功能。

在执行视频编码的示例实施例中,输入设备3050可以接收视频数据作为待编码的输入3070。视频数据可以由例如视频编解码模块3025处理,以生成经编码的码流。经编码的码流可以经由输出设备3060作为输出3080被提供。

在执行视频解码的示例实施例中,输入设备3050可以接收经编码的码流作为输入3070。经编码的码流可以由例如视频编解码模块3025处理,以生成经解码的视频数据。经解码的视频数据可以经由输出设备3060作为输出3080被提供。

虽然已经参考本公开的优选实施例具体示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求限定的本申请的精神和范围的情况下,可以在形式和细节上进行各种改变。这些变化旨在由本申请的范围所涵盖。因此,本申请的实施例的前述描述不旨在是限制性的。

技术分类

06120116551668