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

局部照明补偿的改进方法

文献发布时间:2023-06-19 12:19:35


局部照明补偿的改进方法

根据适用的专利法和/或依据巴黎公约的规则,本申请是旨在及时要求于2019年1月27日提交的国际专利申请PCT/CN2019/073296的优先权和利益。其全部公开通过引用而并入,作为本申请的公开的一部分。

技术领域

本文档涉及视频和图像编解码技术。

背景技术

数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的联网用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。

发明内容

所公开的技术可以由视频或图像解码器或编码器实施例使用。

在一个示例方面,公开了一种处理视频的方法。该方法包括:为第一视频单元确定包括缩放因子和偏移因子的局部照明补偿(LIC)参数集合;对LIC参数集合的至少一部分执行或跳过预处理;以及使用LIC参数集合的至少一部分来更新至少一个基于历史的局部照明补偿参数表(HLICT),其中至少一个HLICT被用于后续视频单元的转换。

在另一个示例方面,公开了一种用于处理视频的方法。该方法包括:为第一视频单元确定包括缩放因子和偏移因子的局部照明补偿(LIC)参数集合;以及基于该LIC参数集合,以先进先出(FIFO)的顺序更新至少一个基于历史的局部照明补偿参数表(HLICT)。

在另一个示例方面,公开了一种用于处理视频的方法。该方法包括:维护包括一个或多个LIC参数集合的至少一个基于历史的局部照明补偿参数表(HLICT);以及基于至少一个指示,从至少一个HLICT中确定至少一个LIC参数集合,基于至少一个LIC参数集合,为第一视频单元执行照明补偿过程,其中,第一视频单元用高级运动矢量预测(AMVP)模式进行编解码。

在另一个示例方面,公开了一种用于处理视频的方法。该方法包括:推导与位于第一位置的至少一个第一视频块相关联的局部照明补偿(LIC)参数集合;用推导出的LIC参数集合来更新历史局部照明补偿参数表(HLICT);以及基于HLICT来处理位于第二位置的至少一个第二视频块。

在又一个示例方面,公开了一种用于处理视频的方法。该方法包括:为第一视频单元,从第一视频单元的邻近样点和对应的参考样点中推导局部照明补偿(LIC)参数集合;用推导出的LIC参数集合来更新历史局部照明补偿参数表(HLICT);以及基于HLICT来处理第二视频单元。

在再一个示例方面,公开了一种用于处理视频的方法。该方法包括:从与视频块相关联的样点中推导局部照明补偿(LIC)参数;用推导出的LIC参数来更新一个或多个历史LIC参数表(HLICT);以及基于所更新的一个或多个HLICT表,对至少一个后续视频单元执行视频处理。

在又一个示例方面,公开了一种用于处理视频的方法。该方法包括:对于视频块,将局部照明补偿(LIC)信息与运动信息一起作为条目存储在基于历史的运动矢量预测(HMVP)表中,其中,LIC信息与运动信息相关联;以及基于HMVP表执行对视频块的转换。

在另一个示例方面,上述方法可以由包括处理器的视频编码器装置实施。

在又一个示例方面,这些方法可以以处理器可执行指令的形式体现并存储在计算机可读程序介质上。

在本文件中进一步描述了这些以及其他方面。

附图说明

图1示出了用于Merge候选列表构建的推导过程的示例。

图2示出了空域Merge候选的位置的示例。

图3示出了考虑用于空域Merge候选的冗余检查的候选对的示例。

图4示出了N×2N和2N×N分割的第二PU的位置的示例。

图5示出了用于时域Merge候选的运动矢量缩放的示例。

图6示出了时域Merge候选C0和C1的候选位置的示例。

图7示出了组合的双向预测Merge候选的示例。

图8示出了用于运动矢量预测候选的推导过程的示例。

图9示出了空域运动矢量候选的运动矢量缩放的示例。

图10示出了CU的ATMVP运动预测的示例。

图11示出了用于推导IC参数的邻近样点的示例。

图12示出了UMVE搜索过程的示例。

图13示出了UMVE搜索点的示例。

图14示出了用HMVP方法的解码流程图的示例。

图15示出了以HMVP方法更新表的示例。

图16示出了对称模式的示例。

图17示出了用于推导LIC参数或GBI权重的邻近样点的示例。

图18示出了不等权重的示例用法。

图19是视频处理装置的示例的框图。

图20示出了视频编码器的示例实施方式的框图。

图21是用于视频处理方法的示例的流程图。

图22是用于视频处理方法的示例的流程图。

图23是用于视频处理方法的示例的流程图。

图24是用于视频处理方法的示例的流程图。

图25是用于视频处理方法的示例的流程图。

图26是用于视频处理方法的示例的流程图。

图27是用于视频处理方法的示例的流程图。

具体实施方式

本文档提供了可以由图像或视频比特流的解码器使用的各种技术,以提高解压缩或解码的数字视频或图像的质量。为了简洁起见,术语“视频”在本文中用于包括图片序列(传统上称为视频)和单个图像两者。此外,视频编码器还可在编码过程期间实施这些技术,以便重构用于进一步编码的解码帧。

在本文档中使用章节标题是为了易于理解,并且不将实施例和技术限于对应的章节。如此以来,一个章节的实施例可以与其他章节的实施例组合。

1.概述

本公开涉及视频编解码技术。具体地,涉及视频编解码中的局部照明补偿(localillumination compensatio,LIC)和广义双向预测(generalized bi-prediction,GBI)。它可以应用于现有的视频编解码标准(如HEVC)或即将定案的标准(多功能视频编解码(VVC))。它也可以应用于未来的视频编解码标准或视频编解码器。

2.背景

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

图20是视频编码器的示例实施方式的框图。图20示出了编码器实施方式具有内置的反馈路径,其中视频编码器还执行视频解码功能(重构视频数据的压缩表示以用于下一视频数据的编码)。

2.1 HEVC/H.265的帧间预测

每个帧间预测的PU具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信令通知对两个参考图片列表之一的使用。运动矢量可以被显式地编解码为相对于预测量的增量。

当用跳过模式来编解码CU时,一个PU与该CU相关联,并且不存在显著的残差系数、没有编解码的运动矢量增量或参考图片索引。规定Merge模式,由此从包括空域和时域候选的邻近PU获得当前PU的运动参数。Merge模式可以应用于任何帧间预测的PU,而不仅仅对于跳过(skip)模式。Merge模式的替换方案是运动参数的显式传输,其中每一PU显式地信令通知运动矢量(更准确地,与运动矢量预测量相比的运动矢量差)、每个参考图片列表的对应参考图片索引和参考图片列表的使用。在本公开中,这种模式被称为高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)。

当信令指示要使用两个参考图片列表之一时,从一个样点块中产生PU。这被称为“单向预测”。单向预测可用于P条带和B条带。

当信令指示要使用两个参考图片列表两者时,从两个样点块中产生PU。这被称为“双向预测”。双向预测仅可用于B条带。

以下文本提供了关于HEVC中规定的帧间预测模式的详细信息。描述将从Merge模式开始。

2.1.1 Merge模式

2.1.1.1 Merge模式的候选的推导

当使用Merge模式预测PU时,从比特流中解析指向Merge候选列表中的条目的索引并将其用于检索运动信息。在HEVC标准中规定了该列表的构建,并且可以按照以下步骤的序列进行概述:

步骤1:初始候选推导

步骤1.1:空域候选推导

步骤1.2:空域候选的冗余检查

步骤1.3:时域候选推导

步骤2:附加候选插入

步骤2.1:创建双向预测候选

步骤2.2:插入零运动候选

这些步骤也示意性地描绘在图1中。对于空域Merge候选推导,在位于五个不同位置的候选当中选择最多四个Merge候选。对于时域Merge候选推导,在两个候选当中选择最多一个Merge候选。由于在解码器处假设每个PU的恒定数量的候选,因此当从步骤1获得的候选的数量未达到在条带头中信令通知的Merge候选的最大数量(MaxNumMergeCand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断一元二值化(Truncated Unarybinarization,TU)对最佳Merge候选的索引进行编码。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,其与2N×2N预测单元的Merge候选列表相同。

在下文中,将详细描述与上述步骤相关联的操作。

2.1.1.2空域候选推导

在空域Merge候选的推导中,在位于图2中描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A

2.1.1.3时域候选推导

在该步骤中,仅一个候选被添加到列表。具体地,在该时域Merge候选的推导中,基于属于给定参考图片列表内与当前图片具有最小POC(Picture Order Count,图片顺序计数)差的图片的共位(co-located)PU来推导缩放运动矢量。在条带头中显式地信令通知要用于推导共位PU的参考图片列表。如在图5中由虚线所示的,获得了对时域Merge候选的缩放运动矢量,该缩放运动矢量是使用POC距离tb和td从共位PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为共位图片的参考图片与共位图片之间的POC差。时域Merge候选的参考图片索引被设置为等于零。HEVC规范中描述了缩放过程的实际实现。对于B条带,获得并组合两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1),以生成双向预测Merge候选。

在属于参考帧的共位PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图6所描绘的。如果位置C0处的PU不可用、是帧内编解码的、或者在当前CTU行(row)的外部,则使用位置C1。否则,在时域Merge候选的推导中使用位置C0。

2.1.1.4附加候选插入

除了空域和时域的Merge候选之外,存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空域和时域的Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。作为示例,图7示出了当原始列表(在左边)中的两个候选(其具有mvL0和refIdxL0或mvL1和refIdxL1)用于创建被添加到最终列表(在右边)的组合的双向预测Merge候选。存在许多关于组合的规则,考虑这些规则以生成这些附加Merge候选。

插入零运动候选以填充Merge候选列表中的剩余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空域位移和参考图片索引,该索引从零开始并且每次向列表中添加新的零运动候选时递增。这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。最后,不对这些候选执行冗余检查。

2.1.1.5用于并行处理的运动估计区域

为了加速编码过程,可以并行执行运动估计,由此同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导Merge候选可能干扰并行处理,因为一个预测单元不能从相邻PU推导运动参数,直到其相关联的运动估计完成。为了缓和编解码效率和处理时延之间的折衷(trade-off),HEVC定义了运动估计区域(Motion Estimation Region,MER),使用“log2_parallel_merge_level_minus2”语法元素在图片参数集中信令通知MER的尺寸。当定义MER时,落入相同区域的Merge候选被标记为不可用,并且因此在列表构建中不被考虑。

2.1.2 AMVP

AMVP利用运动矢量与邻近PU的时空相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过首先检查左边、上边的时域邻近的PU位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度,来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测量,并发送指示所选候选的对应索引。与Merge索引信令类似,使用截断一元对最佳运动矢量候选的索引进行编码。在这种情况下,要编码的最大值是2(见图8)。在接下来的章节中,将提供关于运动矢量预测候选的推导过程的细节。

2.1.2.1 AMVP候选的推导

图8概述了运动矢量预测候选的推导过程。

在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,最终基于位于如图2所描绘的五个不同位置的每个PU的运动矢量来推导两个运动矢量候选。

对于时域运动矢量候选推导,从基于两个不同共位位置而推导的两个候选中选择一个运动矢量候选。在产生第一时空候选列表之后,移除列表中的重复运动矢量候选。如果潜在候选的数量大于二,则从列表中移除相关联的参考图片列表内其参考图片索引大于1的运动矢量候选。如果时空运动矢量候选的数量小于二,则将附加的零运动矢量候选添加到列表。

2.1.2.2空域运动矢量候选

在空域运动矢量候选的推导中,在从位于如图2所描绘的位置的PU中推导的五个潜在候选当中考虑最多两个候选,那些位置与运动Merge的位置相同。当前PU的左侧的推导顺序被定义为A0、A1、以及缩放A0、缩放A1。当前PU的上侧的推导顺序被定义为B0、B1、B2、缩放B0、缩放B1、缩放B2。因此对于每一侧,存在可以用作运动矢量候选的四种情况,其中两种情况不需要使用空域缩放,两种情况使用空域缩放。四种不同的情况概述如下:

没有空域缩放

(1)相同的参考图片列表,以及相同的参考图片索引(相同的POC)

(2)不同的参考图片列表,但是相同的参考图片(相同的POC)

空域缩放

(3)相同的参考图片列表,但是不同的参考图片(不同的POC)

(4)不同的参考图片列表,以及不同的参考图片(不同的POC)

首先检查非空域缩放情况,然后是空域缩放。当不管参考图片列表如何,当POC在邻近PU的参考图片与当前PU的参考图片之间不同时,考虑空域缩放。如果左边候选的所有PU都不可用或者都是帧内编解码的,则允许针对上边运动矢量的缩放以帮助对左边和上边MV候选的并行推导。否则,针对上边运动矢量不允许空域缩放。

如图9所描绘的,在空域缩放过程中,以与时域缩放类似的方式来缩放邻近PU的运动矢量。主要差异在于给出参考图片列表和当前PU的索引作为输入;实际缩放过程与时域缩放的过程相同。

2.1.2.3时域运动矢量候选

除了参考图片索引推导之外,用于推导时域Merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图6)。参考图片索引被信令通知给解码器。

2.2新的帧间预测方法

2.2.1基于子CU的运动矢量预测

在具有QTBT(QuadTrees plus Binary Trees,四叉树加二叉树)的JEM中,每个CU对于每个预测方向最多可以有一个运动参数集。通过将大CU划分成子CU并且推导大CU的所有子CU的运动信息,在编码器中考虑两个子CU级别运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从共位参考图片中比当前CU小的多个块中提取运动信息的多个集合。在时空运动矢量预测(Spatial-Temporal Motion Vector Prediction,STMVP)方法中,通过使用时域运动矢量预测量和空域邻近运动矢量来递归地推导子CU的运动矢量。

为了保持对于子CU运动预测的更准确的运动场,当前禁用参考帧的运动压缩。

2.2.1.1可选时域运动矢量预测

在可选时域运动矢量预测(ATMVP)方法中,通过从比当前CU小的块提取运动信息(包括运动矢量和参考索引)的多个集合来修改时域运动矢量预测(Temporal MotionVector Prediction,TMVP)的运动矢量。如图10所示,子CU是正方形的N×N块(N默认被设置为4)。

ATMVP分两个步骤来预测CU内的子CU的运动矢量。第一步骤是用所谓的时域矢量来识别参考图片中的对应块。参考图片也称为运动源图片。第二步骤是将当前CU划分成子CU,并从与每个子CU相对应的块中获得运动矢量以及每个子CU的参考索引,如图10所示。

在第一步骤中,参考图片和对应块由当前CU的空域邻近块的运动信息确定。为了避免邻近块的反复的扫描过程,使用当前CU的Merge候选列表中的第一Merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,在ATMVP中,与TMVP相比,可以更准确地识别对应块,在TMVP中,对应块(有时称为共位块)总是相对于当前CU处于右下或中心位置。

在第二步骤中,通过向当前CU的坐标添加时域矢量,通过运动源图片中的时域矢量来识别子CU的对应块。对于每个子CU,其对应块(覆盖中心样点的最小运动网格)的运动信息用于推导子CU的运动信息。在识别对应的N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换成当前子CU的运动矢量和参考索引,其中应用运动缩放和其它过程。例如,解码器检查是否满足低延迟条件(即当前图片的所有参考图片的POC小于当前图片的POC),并且可能使用运动矢量MV

2.2.2成对平均候选

成对平均候选(pairwise average candidate)是通过对当前Merge候选列表中的预定义候选对进行平均而生成的,并且预定义的对被定义为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中这些数字表示Merge候选列表的Merge索引。为每个参考列表单独计算平均运动矢量。如果两个运动矢量在一个列表中可用,则即使这两个运动矢量指向不同的参考图片,也会对它们进行平均;如果只有一个运动矢量可用,则直接使用该运动矢量;如果没有运动矢量可用,则保持该列表无效。成对平均候选代替了HEVC标准中的组合的候选。

表1中概述了成对平均候选的复杂度分析。对于用于求平均值的附加计算(表1中的最后一列)的最差情况,每对需要4次加法和4次移位(L0和L1中的MVx和MVy)、以及每对需要4次参考索引比较(在L0和L1中refIdx0有效,并且refIdx1有效)。共有6对,进行24次加法,24次移位和24次参考索引比较。HEVC标准中的组合候选,每对使用2个参考索引比较(refIdx0在L0中有效,而refIdx1在L1中有效),并且共有12对,进行24次参考索引比较。

表1:成对平均候选的操作分析

2.2.3局部照明补偿

局部照明补偿(LIC)基于照明变化的线性模型,使用缩放因子a和偏移b。并且对于每个帧间模式编解码的编解码单元(CU)自适应地启用或禁用它。

当LIC应用于CU时,采用最小平方误差法以通过使用当前CU的邻近样点及其对应的参考样点来推导参数a和b。更具体地,如图11所示,使用参考图片中的CU的子采样(2:1子采样)邻近样点和对应的样点(由当前CU或子CU的运动信息识别)。单独地推导IC参数并应用于每个预测方向。

当用Merge模式对CU进行编解码时,以类似于Merge模式下的运动信息复制的方式,从邻近块复制LIC标志;否则,为CU信令通知LIC标志,指示LIC是否适用。

当对于图片启用LIC时,需要附加的CU级别RD检查来确定是否将LIC应用于CU。当对于CU启用LIC时,绝对差的均值移除和(Mean-Removed Sum of Absolute Difference,MR-SAD)和绝对哈达玛(Hadamard)变换差的均值移除和(Mean-Removed Sum of AbsoluteHadamard-Transformed Difference,MR-SATD)(而不是SAD和SATD)分别用于整数像素运动搜索和分数像素运动搜索。

为了降低编码复杂度,在JEM中应用以下编码方案。

在当前图片及其参考图片之间没有明显的照明变化时,对于整个图片禁用LIC。为了识别这种情况,在编码器处计算当前图片和当前图片的每个参考图片的直方图。如果当前图片和当前图片的每个参考图片之间的直方图差小于给定阈值,则对于当前图片禁用LIC;否则,对于当前图片启用LIC。

2.2.4广义双向预测

在传统的双向预测中,来自L0和L1的预测量被平均,以使用相等的权重0.5生成最终预测量。预测量生成公式如等式(1)所示。

P

在等式(1)中,P

提出广义双向预测(Generalized Bi-prediction,GBI)以允许对来自L0和L1的预测量施加不同的权重。预测量的生成如等式(2)所示。

P

在等式(2)中,P

支持的w

对于高级运动矢量预测(AMVP)模式,如果该CU被双向预测编解码,则GBI中的权重选择在CU级别显式地信令通知。对于Merge模式,权重选择从Merge候选继承。在该提出方案中,GBI支持DMVR生成模板的加权平均以及BMS-1.0的最终预测量。

2.2.5最终运动矢量表达

提出了最终运动矢量表达(UMVE)。UMVE利用提出的运动矢量表达方法而被用于跳过或Merge模式。

UMVE重用与VVC中相同的Merge候选。在Merge候选当中,可以选择候选,并通过所提出的运动矢量表达方法进一步扩展。

UMVE提供了具有简化信令的新的运动矢量表达。表达方法包括起点、运动幅度和运动方向。

所提出的技术按原样使用Merge候选列表。但是对于UMVE的扩展,仅考虑作为默认Merge类型(MRG_TYPE_DEFAULT_N)的候选。

基本候选索引定义了起点。基本候选索引指示列表中的候选当中的最佳候选,如下所示。

表1.基本候选IDX

如果基本候选的数量等于1,则不信令通知基本候选IDX。

距离索引是运动幅度信息。距离索引指示距起点信息的预定义距离。预定义距离如下:

表2.距离IDX

方向索引表示MVD相对于起点的方向。方向索引可以表示如下所示的四个方向。

表3.方向IDX

UMVE标志在发送跳过标志和Merge标志之后立即被信令通知。如果跳过和Merge标志为真,则解析UMVE标志。如果UMVE标志等于1,则解析UMVE语法。但是,如果不是1,则解析AFFINE标志。如果AFFINE标志等于1,这就是AFFINE模式,但是,如果不是1,则解析跳过/Merge索引以用于VTM的跳过/Merge模式。

不需要由于UMVE候选的附加行缓冲。因为软件的跳过/Merge候选直接用作基本候选。使用输入的UMVE索引,在运动补偿之前就决定MV的补充。不需要为此保留长行缓冲区。

2.2.6基于历史的运动矢量预测

在我们的先前发明P1805028401H中,存储了至少一个运动候选的一个或多个查找表以预测块的运动信息。

提出了一种基于历史的MVP(HMVP)方法,其中HMVP候选被定义为先前编解码块的运动信息。在编码/解码过程期间,维护具有多个HMVP候选的表。当遇到新的条带时,表被清空。每当有帧间编解码块时,相关联的运动信息被添加到表的最后一个条目中作为新的HMVP候选。整个编解码流程如图14所描绘的。

在一个示例中,表尺寸被设置为L(例如,L=16或6,或44),这表明可以向表中添加多达L个HMVP候选。

在一个实施例中,如果从先前编解码块中有L个以上HMVP候选,则应用先进先出(First-In-First-Out,FIFO)规则,使得该表总是包含最新的先前编解码的L个运动候选。图15描绘了应用FIFO规则来移除HMVP候选,并且向所提出的方法中使用的表添加新的候选的示例。

在另一实施例中,每当添加新的运动候选(诸如当前块是帧间编解码和非仿射模式)时,首先应用冗余校验过程来识别LUT中是否存在相同或相似的运动候选。

2.2.7对称运动矢量差

提出了对称运动矢量差(SMVD)以更有效地编码MVD。

首先,在条带级别,变量BiDirPredFlag、RefIdxSymL0和RefIdxSymL1被推导如下:

搜索参考图片列表0中最接近当前图片的前向参考图片。如果找到,则将RefIdxSymL0设置为等于该前向图片的参考索引。

搜索参考图片列表1中最接近当前图片的后向参考图片。如果找到,则将RefIdxSymL1设置为等于该后向图片的参考索引。

如果前向图片和后向图片都被找到,则将BiDirPredFlag设置为等于1。

否则,适用以下情况:

搜索参考图片列表0中最接近当前图片的后向参考图片。如果找到,则将RefIdxSymL0设置为等于该后向图片的参考索引。

搜索参考图片列表1中最接近当前图片的前向参考图片。如果找到,则将RefIdxSymL1设置为等于该前向图片的参考索引。

如果前向图片和后向图片都被找到,则将BiDirPredFlag设置为等于1。否则,将BiDirPredFlag设置为等于0。

其次,在CU级别,如果CU的预测方向是双向预测并且BiDirPredFlag等于1,则显式地信令通知用于指示是否使用对称模式的对称模式标志。

当标志为真时,只有mvp_l0_flag、mvp_l1_flag和MVD0被显式地信令通知。对于列表0和列表1,参考索引被分别设置为等于RefIdxSymL0、RefIdxSymL1。MVD1正好被设置为等于–MVD0。最终运动矢量如下式所示。

编解码单元语法的修改如表2所示

表2:编解码单元语法的修改

3.实施例解决的问题的示例

在LIC中,需要通过使用邻近的重构样点来推导包括缩放参数a和偏移b的两个参数,这可能引起时延问题。

GBI中使用的允许加权因子的集合是固定的,这可能效率不高。

4.实施例的示例

此后,使用块来表示变换单元(TU)/预测单元(PU)/编解码单元(CU)/一个TU/PU/CU中的子块等。假设块的左上角坐标为(x,y),并且块的宽度和高度为W和H。

以下详细技术应被视为示例以解释一般概念。这些技术不应狭义地解释。此外,这些发明可以以任何方式组合。

在下面的讨论中,SatShift(x,n)被定义为:

Shift(x,n)被定义为Shift(x,n)=(x+offset0)>>n。

在一个示例中,将offset0和/或offset1设置为(1<>1或(1<<(n-1))。在另一个示例中,将offset0和/或offset1设置为0。

Clip3(min,max,x)被定义为:

LIC改进

提出了一种基于LIC的框架,其中根据解码顺序来维护具有存储的LIC参数集合的一个或多个历史LIC参数表(HLICT)。在提出的框架中,对于一些LIC编解码块,可以使用相关联的LIC参数(信令通知的或实时推导出的,诸如基于邻近的重构样点/邻近的预测样点)来更新HLICT。而对于其他LIC编解码块,它们可能取决于HLICT中存储的LIC参数集合。

1.信令通知的或推导出的LIC参数集合可以直接添加到HLICT中。

a.在一个示例中,仅LIC参数集合中的一部分可以用于更新HLICT。

i.在一个示例中,HLICT可能仅包含LIC参数集合的一部分,诸如缩放参数a。

ii.在一个示例中,缩放参数a可以用于更新HLICT。

iii.可替代地,此外,当存储的LIC参数(例如,a)被用于对一个块进行编解码时,另一个参数(诸如偏移b)可以被实时推导出。

iv.可替代地,此外,当存储的LIC参数(例如,a)被用于对一个块进行编解码时,另一参数(诸如偏移b)可以被设置为默认值。

b.在一个示例中,可以首先对LIC参数进行量化,然后将其用于更新HLICT。

i.可替代地,可以对LIC参数集合的一部分进行量化,然后将其用于更新HLICT。

ii.当使用存储在HLICT中的量化的LIC参数时,首先对它们进行反量化。

c.在一个示例中,可以首先裁剪LIC参数,然后将其用于更新HLICT。

i.在一个示例中,可以对LIC参数进行量化,然后裁剪,然后用于更新HLICT。

1.例如,a’=SatShift(a,N)、a”=Clip3(MinV,MaxV,a’)和a”用于更新HLICT。在一个示例中,N=2,MinV=-128,MaxV=127。

2.当使用存储的a”时,a”’=a”<

2.HLICT可以以先进先出的顺序进行更新。

a.在一个示例中,当一个块的LIC参数被用于更新一个或多个HLICT时,将这种信息添加到HLICT中最后一个条目之后的新条目,并且HLICT中可用条目的数量增加1。

b.在一个示例中,如果HLICT中可用条目的数量达到最大数量,则将HLICT中的一个条目(诸如第一个条目)移除,并将HLICT中可用条目的数量减少1。

c.可替代地,可以将修剪应用于一个HLICT中存储的LIC参数。

i.例如,如果要添加到HLICT中的新信息与HLICT现有条目中的信息相同或相似,则新信息不被添加到HLICT中。

d.在一个示例中,LIC参数之间的修剪可以被定义为比较缩放参数。

i.可替代地,修剪可以被定义为比较缩放参数和偏移值。

ii.可替代地,修剪可以被定义为比较缩放参数和偏移值以及参考图片索引。

iii.可替代地,修剪可以被定义为比较缩放参数和偏移值以及参考图片的图片顺序计数(picture-order-count,POC)值。

e.在一个示例中,如果在HLICT中找到相同的LIC参数,则其后的所有LIC参数都可以向前移动,并且相同的LIC参数可以移动到HLICT的最后一个条目。

3.可以维护一个或多个历史LIC参数表,并且可以信令通知一个或多个索引以指示可以使用哪个LIC参数集合来对块进行编解码,诸如AMVP编解码的(AMVP模式或具有SMVD的AMVP模式)LIC块。

a.HLICT的数量或/和HLICT的最大长度可以预先定义或在SPS/VPS/PPS/序列头/条带头/图片头/片组头/其他类型的视频单元中被信令通知。

i.在一个示例中,HLICT的数量可以取决于参考图片的数量。

ii.在一个示例中,HLICT的数量可以取决于参考图片列表的数量。

iii.在一个示例中,HLICT的数量可以取决于LIC编解码块(诸如仿射或非仿射)的允许模式。

b.对于每个参考图片,可以维护一个HLICT。

c.可替代地,可以仅针对一些参考图片维护HLICT。

i.例如,可以仅针对每个预测方向的第一参考图片维护LIC参数表。

d.可以为每个参考图片对(pair)维护LIC参数表。参考图片对包括来自参考列表0的参考图片和来自参考列表1的参考图片。

e.可以仅针对某些参考图片对维护LIC参数表。

i.例如,可以仅针对一个参考图片对维护LIC参数表:预测方向0上的第一参考图片和预测方向1上的第一参考图片。

f.可替代地,此外,可以维护多个HLICT,这可以取决于诸如仿射或非仿射模式的编解码模式信息。

g.对于LIC块,可以为每个参考图片信令通知索引。

i.可替代地,如果LIC块是双向预测的,则可以针对预测方向0或1仅信令通知一个索引。

ii.可替代地,如果LIC块是双向预测的,则可以信令通知一个索引以指示使用参考图片对的哪个LIC参数。

iii.可替代地,如果块是双向预测的,并且其参考图片对没有LIC参数表,则LIC被隐式地禁用,并且LIC标志被约束为假。

iv.可替代地,如果块是双向预测的,并且其参考图片对没有LIC参数表,则LIC被隐式地禁用,并且LIC标志和LIC参数索引不被信令通知。

h.可以为每个参考图片或/和每个参考图片对或/和一些参考图片对来预定义默认LIC参数表。

i.LIC标志和/或LIC参数集合可以从Merge候选继承,并且不在Merge模式或/和UMVE模式下被信令通知。

i.可替代地,LIC标志和LIC参数可以仅从空域Merge候选继承。

ii.可替代地,LIC标志可以从Merge候选继承,并且不在Merge模式或/和UMVE模式下被信令通知。然而,当继承的LIC标志为真时,仍可能会信令通知LIC参数索引。

4.HLICT可以在对块进行编码/解码之后进行更新。

a.在一个示例中,可以仅针对位于CTU边界或CTU行边界的块推导LIC参数。可替代地,此外,推导出的LIC参数集合可以用于更新HLICT。

b.一些可用的邻近重构像素(图16中示出了一个示例)及其对应的参考像素可以用于LIC参数的推导。

i.在一个示例中,可以使用上方的邻近像素。

ii.在一个示例中,可以使用左方的邻近像素。

iii.在一个示例中,可以使用上方和左方的邻近像素。

iv.在一个示例中,可以使用右上方的邻近像素。

v.在一个示例中,可以使用左下方的邻近像素。

vi.在一个示例中,可以使用左方和左下方的邻近像素。

vii.在一个示例中,可以使用上方和右上方的邻近像素。

viii.在以上示例中,左方/上方/左下方/右上方的邻近像素可以被定义为相对于当前编解码块/当前预测单元/当前编解码树单元(CTU)/当前虚拟管线数据单元(VPDU)的那些像素。

ix.在一个示例中,可以将使用的邻近像素以因子N(N>=1)进行子采样。

x.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+H–1)和(x+W–1,y–1)的像素。

xi.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+H)和(x+W,y–1)的像素。

xii.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+H/2–1)和(x+W/2–1,y–1)的像素。

xiii.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+2*H–1)和(x+2*W–1,y–1)的像素。

xiv.可替代地,另外,可以仅使用上方CTU或/和左上方CTU中的邻近像素。

1.可替代地,可以仅使用上方CTU或/和右上方CTU中的邻近像素。

2.可替代地,可以仅使用左方CTU或/和左上方CTU中的邻近像素。

3.可替代地,可以仅使用左方CTU和上方CTU中的邻近像素。

xv.在一个示例中,可以通过当前块的运动信息来识别对应的参考像素。

xvi.在一个示例中,可以通过当前块的修改的运动信息来识别对应的参考像素。

1.例如,运动矢量在用于识别参考像素之前可以取整为整数精度。

xvii.在一个示例中,仅当邻近样点和当前块属于同一片时,才将邻近样点视为可用。

xviii.在一个示例中,仅当邻近样点和当前块属于同一片组时,才将邻近样点视为可用;

5.LIC参数表可以在对CTU或视频处理数据单元(VPDU,诸如64×64)/或区域进行编码/解码之前进行更新。

a.在一个示例中,一些邻近/非相邻的双向预测的重构像素和对应的预测像素可以用于推导LIC参数。

b.在一个示例中,可以根据运动信息将一些邻近/非相邻的双向预测的重构像素和对应的预测像素划分为若干个集合,并且为每个集合推导LIC参数。

i.例如,像素的每个集合具有相同的运动信息。

c.在一个示例中,在对右方或/和底部CTU边界处的块进行编码/解码之后推导LIC参数,并且推导出的LIC参数可以用于更新之后编解码的CTU的LIC参数表。

d.在一个示例中,在对块进行编码/解码之后推导LIC参数,并且推导出的LIC参数可以用于更新之后编解码的CTU的LIC参数表。

e.在一个示例中,仅该块的部分像素可以用于推导LIC参数。

i.例如,每个第N行/列。

ii.例如,四个角像素。

iii.例如,可以不使用跨越VPDU边界的样点。

f.可替代地,另外,是否使用块来推导LIC参数可以取决于块的编解码模式或/和运动信息或/和尺寸。

i.例如,以仿射模式编解码的块可以不被用于推导LIC参数。

ii.例如,宽度或/和高度或/和/或尺寸不大于(或不小于)阈值X的块可以不被用于推导LIC参数。

iii.例如,用加权预测或GBI编解码的块可以不被用于推导权重。

iv.例如,以CIIP模式编解码的块可以不被用于推导LIC参数。

v.例如,仅LIC模式块可以用于推导LIC参数。

6.LIC参数表可以在编码器处推导出,并在SPS/VPS/PPS/条带头/片组头/片头处信令通知给解码器。

a.在一个示例中,对于每个图片/条带/片/片组/CTU组,LIC参数表可以在编码器处推导出并信令通知给解码器。

b.对于图片/条带/片/片组/CTU组,它可以继承某些先前编码/解码的图片/条带/片/片组/CTU组的LIC表。

c.在一个示例中,可以为每个参考图片信令通知LIC参数表。

d.在一个示例中,可以为一些参考图片信令通知LIC参数表。

i.例如,可以在每个预测方向上为第一参考图片信令通知LIC参数表。

e.在一个示例中,可以在信令通知之前对LIC参数进行量化,并且可以在SPS/VPS/PPS/条带头/片组头/片头中信令通知量化步长。

i.在一个示例中,可以首先将LIC参数左移K,然后进行量化。K对于缩放参数和偏移参数可以不同。

ii.K可以在编码器和解码器处被信令通知或被预定义。

iii.在一个示例中,仅缩放参数a可以被量化。

iv.在一个示例中,仅偏移参数b可以被量化。

v.在一个示例中,缩放参数a和偏移参数b都可以被量化,并且可以对它们使用不同的量化步长。

f.在一个示例中,仅信令通知缩放参数a,并将偏移参数b强制为0。

i.可替代地,偏移参数b是使用上述各项中描述的方法推导出的。

g.在一个示例中,仅信令通知偏移参数b,并且将缩放参数a强制为1。

i.可替代地,缩放参数a是使用上述各项中描述的方法推导出的。

7.除了在当前设计中存储的运动信息之外,还可以在HMVP表中存储LIC标志和/或LIC参数。

a.当比较两个运动信息时,可以不考虑LIC标志和/或LIC参数。例如,当在Merge列表构建过程或/和HMVP表构建过程或/和AMVP列表构建过程中比较两个运动信息时,可以不考虑LIC参数。

b.可替代地,LIC标志和/或LIC参数可以不存储在HMVP表中。

c.在一个示例中,对于LIC编解码块,相关联的运动信息不被用于更新HMVP表。

GBI改进

8.GBI中使用的权重表可以在对双向预测的块进行编码/解码之后进行更新。

a.在一个示例中,可以针对位于CTU边界处的双向预测的块推导权重,即等式(2)中的w1,并且可以将其用于更新权重表。

b.一些可用的邻近重构像素及其对应的参考像素可以用于推导权重。

i.在一个示例中,可以使用上方的邻近像素。

ii.在一个示例中,可以使用左方的邻近像素。

iii.在一个示例中,可以使用上方和左方的邻近像素。

iv.在一个示例中,可以使用右上方的邻近像素。

v.在一个示例中,可以使用左下方的邻近像素。

vi.在一个示例中,可以使用左方和左下方的邻近像素。

vii.在一个示例中,可以使用上方和右上方的邻近像素。

viii.在一个示例中,可以将使用的邻近像素以因子N(N>=1)进行子采样。

ix.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+H–1)和(x+W–1,y–1)的像素。

x.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+H)和(x+W,y–1)的像素。

xi.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+H/2–1)和(x+W/2–1,y–1)的像素。

xii.在一个示例中,可以仅使用位于(x–1,y)、(y–1,x)、(x–1,y+2*H–1)和(x+2*W–1,y–1)的像素。

xiii.可替代地,另外,可以仅使用上方CTU或/和左上方CTU中的邻近像素。

1.可替代地,可以仅使用上方CTU或/和右上方CTU中的邻近像素。

2.可替代地,可以仅使用左方CTU或/和左上方CTU中的邻近像素。

3.可替代地,可以仅使用左方CTU和上方CTU的邻近像素。

xiv.在一个示例中,可以通过当前块的运动信息来识别对应的参考像素。

xv.在一个示例中,可以通过当前块的修改的运动信息来识别对应的参考像素。

1.例如,运动矢量在用于识别参考像素之前可以被取整为整数精度。

9.可以在对CTU或视频处理数据单元(VPDU,诸如64×64)/或区域进行编码/解码之前更新权重表。

a.在一个示例中,一些邻近/非相邻的双向预测的重构像素和对应的预测像素可以用于推导权重。

b.在一个示例中,可以根据运动信息将一些邻近/非相邻的双向预测的重构像素和对应的预测像素分为若干个集合,并为每个集合推导权重。

i.例如,像素的每个集合具有相同的运动信息。

c.在对右方或/和底部CTU边界处的双向预测的块进行编码/解码之后推导权重,并且推导出的权重可以用于更新之后编解码的CTU的权重表。

d.在一个示例中,在对双向预测的块进行编码/解码之后推导权重,并且推导出的权重可以用于更新之后编解码的CTU的权重表。

e.在一个示例中,仅该块的部分像素可以用于推导权重。

i.例如,每个第N行/列。

ii.例如,四个角像素。

iii.例如,可以不使用跨越VPDU边界的样点。

f.在一个示例中,在以下情况下,权重表被重设为默认值。

i.CTU将被编码/解码

ii.CTU行将被编码/解码

iii.图片/条带/片组将被编码/解码

iv.片将被编码/解码

g.可替代地,另外,是否使用块来推导权重可以取决于块的编解码模式或/和运动信息或/和尺寸。

i.例如,以仿射模式编解码的块可以不用于推导权重。

ii.例如,宽度或/和/或高度或/和/或尺寸不大于(或不小于)阈值X的块可以不用于推导权重。

iii.例如,用加权预测或LIC编解码的块可以不用于推导权重。

iv.例如,以CIIP模式编解码的块可以不用于推导权重。

v.例如,仅GBI模式块可以用于推导GBI权重。

10.GBI中可以仅维护一个权重表,并且可以不考虑参考图片信息。

a.可替代地,可以为每对参考图片维护权重表。

b.可替代地,可以为一些对的参考图片维护权重表。

c.可替代地,可以仅为一对参考图片维护权重表:预测方向0上的第一参考图片和预测方向1上的第一参考图片。对于其他参考图片对,可以始终使用默认权重表。

d.在一个示例中,如果块是双向预测的,并且其参考图片对没有权重表,则GBI被隐式地禁用,并且不信令通知GBI索引。

e.在一个示例中,除默认权重表外,还可以将N(N>0)个其他权重插入权重表中。

i.在一个示例中,可以在默认权重之后插入附加权重。

ii.在一个示例中,可以在默认权重之前插入附加权重。

iii.在一个示例中,附加权重可以与默认权重交错。

f.在一个示例中,可以使用推导出的权重来替换默认权重。

g.可替代地,可以使用P1805028401H中描述的方法维护权重表。

h.在一个示例中,可以在CTU行或/和条带或/和片或/和片组或/和图片的开始处将权重表重设为默认权重表。

11.权重表的数量或/和权重表的最大尺寸可以在SPS/VPS/PPS/条带头/片组头/片头中被信令通知。

12.GBI中使用的默认权重表可以在对块进行编码/解码后重新排序。

a.在一个示例中,默认计数分配给每个权重。在对块进行编码/解码之后,对应的权重的计数增加N(例如,N=1),并且权重表以递减的计数顺序重新排序。

b.在一个示例中,在CTU或/和CTU行或/和条带或/和片或/和片组或/和图片的开始处将所有权重的计数重设为默认计数。

13.当在GBI模式下选择不相等权重时,它可能仅应用于块的一些像素。

a.在一个示例中,仅当两个预测像素的绝对差不小于阈值X(X>=0)时才应用不相等权重。

b.在一个示例中,仅当两个预测像素的绝对差不大于阈值X(X>=0)时才应用不相等权重。

c.在一个示例中,仅当两个预测像素的绝对差在[X Y](Y>=X)范围内时才应用不相等权重。

d.在一个示例中,将不相等权重应用于左半像素,如图18a所示。

e.在一个示例中,将不相等权重应用于右半像素,如图18b所示。

f.在一个示例中,将不相等权重应用于上半像素,如图18c所示。

g.在一个示例中,将不相等权重应用于下半像素,如图18d所示。

h.在一个示例中,将不相等权重应用于中心半像素,如图18e和f所示。

i.在一个示例中,不相等权重不应用于中心半像素,如图18g和h所示。

j.在一个示例中,将不相等权重应用于左下三角部分,如图18i所示。

k.在一个示例中,将不相等权重应用于左上三角部分,如图18j所示。

l.在一个示例中,将不相等权重应用于右下三角部分,如图18k所示。

m.在一个示例中,将不相等权重应用于右上三角部分,如图18l所示。

n.在一个示例中,可以允许使用图18a-1中的一些候选,并且可以为不相等权重的GBI模式信令通知用于指示选择哪个候选的索引。

14.GBI权重表可以在编码器处推导出,并在SPS/VPS/PPS/条带头/片组头/片头处信令通知给解码器。

a.在一个示例中,对于每个图片/条带/片/片组/CTU组,GBI权重表可以在编码器处推导出并信令通知给解码器。

b.对于图片/条带/片/片组/CTU组,它可以继承一些先前编码/解码的图片/条带/片/片组/CTU组的GBI权重表。

c.在一个示例中,可以为每个参考图片对信令通知GBI权重表。

d.在一个示例中,可以为一些参考图片对信令通知GBI权重表。

i.例如,可以为一个参考图片对信令通知GBI权重表:预测方向0上的第一参考图片和预测方向1上的第一参考图片。

e.在一个示例中,可以在信令之前对GBI权重进行量化,并且可以在SPS/VPS/PPS/条带头/片组头/片头中信令通知量化步长。

i.可替代地,GBI权重可以首先左移K,然后进行量化。在这种情况下,K可以在编码器和解码器处被信令通知或被预定义。

15.LIC参数或/和GBI权重的推导可以取决于虚拟管线数据单元(VPDU)。

a.在一个示例中,如果块或/及其邻近样点跨越VPDU边界并跨过N个VPDU,则仅一个相同VPDU中的样点(可能是跨越的VPDU中的任何一个)可以用于推导LIC参数或/和GBI权重。

b.在一个示例中,如果块或/及其邻近样点跨越VPDU边界并且跨过N个VPDU,则可以为每个VPDU推导LIC参数或/和GBI权重。

c.在一个示例中,如果块或/及其邻近样点跨越VPDU边界并且跨过N个VPDU,则可以为K个(K>=1)VPDU推导LIC参数或/和GBI权重。例如,K=1。

16.以上提出的方法可以在某些条件下应用,诸如块尺寸、条带/图片/片类型或运动信息。

a.在一个示例中,当块尺寸包含小于M*H个样点(例如,16个或32个或64个亮度样点)时,不允许使用所提出的方法。

b.可替代地,当块的宽度或/和高度的最小尺寸小于或小于X时,不允许使用所提出的方法。在一个示例中,X被设置为8。

c.可替代地,当块的宽度或/和高度的最小尺寸不小于X时,不允许使用所提出的方法。在一个示例中,X被设置为8。

d.可替代地,当块的宽度>th1或>=th1和/或块的高度>th2或>=th2时,不允许使用所提出的方法。在一个示例中,th1和/或th2被设置为8。

e.可替代地,当块的宽度

17.是启用还是禁用以上方法可以在SPS/PPS/VPS/序列头/图片头/条带头/片组头/片/CTU组等中被信令通知。

a.可替代地,要使用哪种方法可以在SPS/PPS/VPS/序列头/图片头/条带头/片组头/片/CTU组等中被信令通知。

b.可替代地,是启用还是禁用以上方法和/或应用哪种方法可以取决于块维度、虚拟管线数据单元(VPDU)、图片类型、低延迟检查标志、当前块或先前编解码的块的编解码信息(诸如参考图片、单向或双向预测)。

图19是视频处理装置1900的框图。装置1900可以用于实施本文描述的一个或多个方法。装置1900可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置1900可以包括一个或多个处理器1902、一个或多个存储器1904和视频处理硬件1906。(多个)处理器1902可以被配置为实施本文档中描述的一个或多个方法。存储器(多个存储器)1904可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件1906可以用于在硬件电路中实施本文档中描述的一些技术。图21是用于处理视频的方法2100的流程图。方法2100包括:为第一视频单元确定(2105)包括缩放因子和偏移因子的局部照明补偿(LIC)参数集合;对LIC参数集合的至少一部分执行或跳过(2110)预处理;以及使用LIC参数集合的至少一部分来更新(2115)至少一个基于历史的局部照明补偿参数表(HLICT),其中至少一个HLICT被用于后续视频单元的转换。

图22是用于处理视频的方法2200的流程图。方法2200包括:为第一视频单元确定(2205)包括缩放因子和偏移因子的局部照明补偿(LIC)参数集合;以及基于该LIC参数集合,以先进先出(FIFO)的顺序更新(2210)至少一个基于历史的局部照明补偿参数表(HLICT)。

图23是用于处理视频的方法2300的流程图。方法2300包括:维护(2305)包括一个或多个LIC参数集合的至少一个基于历史的局部照明补偿参数表(HLICT);以及基于至少一个指示,从至少一个HLICT中确定至少一个LIC参数集合,基于至少一个LIC参数集合,为第一视频单元执行(2315)照明补偿过程,其中,第一视频单元用高级运动矢量预测(AMVP)模式进行编码。

图24是用于处理视频的方法2400的流程图。方法2400包括:推导(2405)与位于第一位置的至少一个第一视频块相关联的局部照明补偿(LIC)参数集合;用推导出的LIC参数集合来更新(2410)历史局部照明补偿参数表(HLICT);以及基于HLICT来处理(2415)位于第二位置的至少一个第二视频块。

图25是用于处理视频的方法2500的流程图。方法2500包括:为第一视频单元,从第一视频单元的邻近样点和对应的参考样点中推导(2505)局部照明补偿(LIC)参数集合;用推导出的LIC参数集合来更新(2510)历史局部照明补偿参数表(HLICT);基于HLICT来处理(2515)第二视频单元。

图26是用于处理视频的方法2600的流程图。方法2600包括:从与视频块相关联的样点中推导(2605)局部照明补偿(LIC)参数;用推导出的LIC参数来更新(2610)一个或多个历史LIC参数表(HLICT);以及基于所更新的一个或多个HLICT表,对至少一个后续视频单元执行(2615)视频处理。

图27是用于处理视频的方法2700的流程图。方法2700包括:对于视频块,将局部照明补偿(LIC)信息与运动信息一起作为条目存储(2705)在基于历史的运动矢量预测(HMVP)表中,其中,LIC信息与运动信息相关联;以及基于HMVP表执行(2710)对视频块的转换。

参考方法2100、2200、2300、2400、2500、2600和2700,在本文档的第4章节中描述了一些示例及其使用。例如,如第4章节所述,可以根据局部照明补偿对视频块进行处理。

参考方法2100、2200、2300、2400、2500、2600和2700,可以在视频比特流中对视频块进行编码,其中可以通过使用与局部照明补偿有关的比特流生成规则来实现比特效率。

在一个示例方面,公开了一种处理视频的方法。该方法包括:为第一视频单元确定包括缩放因子和偏移因子的局部照明补偿(LIC)参数集合;对LIC参数集合的至少一部分执行或跳过预处理;以及使用LIC参数集合的至少一部分来更新至少一个基于历史的局部照明补偿参数表(HLICT),其中至少一个HLICT被用于后续视频单元的转换。

在一个示例中,该局部照明补偿(LIC)参数集合是从与第一视频单元相关联的邻近样点中推导出的。

在一个示例中,与第一视频单元相关联的邻近样点是从一个或多个参考图片生成的邻近重构样点或邻近预测样点。

在一个示例中,预处理包括:对该LIC参数集合的至少一部分进行量化。

在一个示例中,量化如下执行:

其中,Shift(x,n)被定义为Shift(x,n)=(x+offset0)>>n,x表示要量化的LIC参数集合的至少一部分的值。

在一个示例中,offset0和offset1中的至少一个被设置为(1<>1或(1<<(n-1))。

在一个示例中,offset0和offset1中的至少一个被设置为0。

在一个示例中,n=2。

在一个示例中,预处理还包括:对该LIC参数集合的至少一部分进行裁剪。

在一个示例中,裁剪如下执行:

其中,x表示要裁剪的LIC参数集合的至少一部分的值。

在一个示例中,Min=-128,并且Max=127。

在一个示例中,LIC参数集合的至少一部分在被裁剪之前进行量化。

在一个示例中,更新包括:将LIC参数集合的至少一部分存储在至少一个HLICT中以更新HLICT。

在一个示例方面,公开了一种处理视频的方法。该方法包括:为第一视频单元确定包括缩放因子和偏移因子的局部照明补偿(LIC)参数集合;以及基于该LIC参数集合,以先进先出(FIFO)的顺序更新至少一个基于历史的局部照明补偿参数表(HLICT)。

在一个示例中,更新HLICT包括:

确定HLICT的条目的数量是否达到阈值,并且如果条目的数量达到阈值,则从HLICT中移除第一条目,并且HLICT中的可用条目的数量减少1。

在一个示例中,LIC参数集合的至少一部分被插入HLICT中作为最后一个条目以更新HLICT,并且HLICT中可用条目的数量增加1。

在一个示例中,该方法还包括:执行修剪过程以确定是否将LIC参数集合的至少一部分插入HLICT中。

在一个示例中,修剪过程包括:将LIC参数集合的至少一部分与HLICT中所有现有条目中的每一个进行比较,以及如果两者相同或相似,则确定不执行插入。

在一个示例中,该方法还包括:将与LIC参数集合的至少一部分相关联的参考图片索引或参考图片图片顺序计数(POC)的值与与所有现有条目中的每一个相关联的参考图片索引或参考图片POC的值进行比较。

在一个示例中,如果HLICT中的任何现有条目与该LIC参数集合的至少一部分相同,则将相同条目之后的所有条目向前移动,并将相同条目向后移动作为HLICT中的最后一个条目。

在一个示例中,LIC参数集合的至少一部分包括缩放因子和偏移因子两者,或者仅包括缩放因子和偏移因子之一。

在一个示例中,如果LIC参数集合的至少一部分仅包括缩放因子和偏移因子之一,则推导缩放因子和偏移因子中的另一个或将其设置为默认值。

在一个示例中,LIC参数集合的至少一部分是缩放因子。

在一个示例方面,公开了一种处理视频的方法。该方法包括:维护包括一个或多个LIC参数集合的至少一个基于历史的局部照明补偿参数表(HLICT);以及基于至少一个指示,从至少一个HLICT中确定至少一个LIC参数集合,基于至少一个LIC参数集合,为第一视频单元执行照明补偿过程,其中,第一视频单元用高级运动矢量预测(AMVP)模式进行编码。

在一个示例中,至少一个HLICT包括多个HLICT,并且HLICT的数量或多个HLICT中的每一个的最大长度被预定义或在图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)、序列头、条带头、图片头、片组头或其他类型的视频单元的至少一个中被信令通知。

在一个示例中,HLICT的数量取决于第一视频单元的参考图片的数量或参考图片列表的数量。

在一个示例中,HLICT的数量取决于第一视频单元的允许的编码模式。

在一个示例中,为一个或多个参考图片中的每一个维护一个HLICT。

在一个示例中,为特定参考图片或所有参考图片维护至少一个HLICT,或者为特定参考图片对或所有参考图片对维护至少一个HLICT。

在一个示例中,特定参考图片包括每个预测方向的第一参考图片。

在一个示例中,所有参考图片对中的每一个包括来自参考图片列表0的参考图片和来自参考图片列表1的参考图片。

在一个示例中,特定参考图片对仅包括一个参考对,该参考对包括来自参考图片列表0的第一参考图片和来自参考图片列表1的第一参考图片。

在一个示例中,第一视频单元的允许的编码模式包括仿射模式和非仿射模式中的至少一个。

在一个示例中,至少一个指示包括用于指示哪个LIC参数集合被用于每个参考图片的第一指示。

在一个示例中,如果用双向预测来转换第一视频单元,则第一指示用于指示参考图片对的哪个LIC参数集合被用于第一视频单元的两个参考图片。

在一个示例中,如果用双向预测来转换第一视频单元,并且如果没有HLICT可用于其参考图片对,则对第一视频单元隐式地禁用LIC。

在一个示例中,LIC标志被约束为假。

在一个示例中,没有LIC标志被信令通知,并且LIC标志被隐式地推导为假。

在一个示例中,至少一个基于历史的局部照明补偿参数表(HLICT)包括一个或多个默认HLICT,这些默认HLICT是为第一视频单元的特定参考图片或所有参考图片、或特定参考图片对或所有参考图片对定义的。

在一个示例中,LIC标志是从第一视频单元的Merge候选继承的,以指示是否将LIC应用于第一视频单元。

在一个示例中,该LIC参数集合是从第一视频单元的Merge候选继承的。

在一个示例中,Merge候选仅包括空域Merge候选。

在一个示例中,至少一个指示还包括LIC参数索引,以指示如果继承的LIC标志指示LIC被应用于第一视频单元,则使用哪个LIC参数集合。

在一个示例中,第一视频单元以Merge模式或最终运动矢量表达(UMVE)模式进行编码。

在一个示例方面,公开了一种处理视频的方法。该方法包括:推导与位于第一位置的至少一个第一视频块相关联的局部照明补偿(LIC)参数集合;用推导出的LIC参数集合来更新历史局部照明补偿参数表(HLICT);以及基于HLICT来处理位于第二位置的至少一个第二视频块。

在一个示例方面,公开了一种处理视频的方法。该方法包括第一位置是编码树单元(CTU)的边界。

在一个示例方面,公开了一种处理视频的方法。该方法包括第一位置是CTU行的边界。

在一个示例方面,公开了一种处理视频的方法。该方法包括:为第一视频单元,从第一视频单元的邻近样点和对应的参考样点中推导局部照明补偿(LIC)参数集合;用推导出的LIC参数集合来更新历史局部照明补偿参数表(HLICT);以及基于HLICT来处理第二视频单元。

在一个示例中,第一视频单元的邻近样点包括以下中的至少一个:

上方的邻近样点;

左方的邻近样点;

上方和左方的邻近样点;

右上方的邻近样点;

左下方的邻近样点;

左方和左下方的邻近样点;

上方和右上方的邻近样点。

在一个示例中,该方法还包括:以因子N对邻近样点进行子采样,并从经子采样的邻近样点中推导LIC参数集合,N>=1。

在一个示例中,邻近样点具有如下坐标组中的至少一个:

{(x–1,y),(y–1,x),(x–1,y+H-1),(x+W–1,y–1)};

{(x–1,y),(y–1,x),(x–1,y+H),(x+W,y–1)};

{(x–1,y),(y–1,x),(x–1,y+H/2-1),(x+W/2–1,y–1)};或者

{(x–1,y),(y–1,x),(x–1,y+2*H-1),(x+2*W–1,y–1)},

x、y表示第一视频单元左上角的坐标,并且W、H分别表示第一视频单元的宽度和高度。

在一个示例中,邻近样点包括:

位于上方和左上方的CTU中的至少一个中的邻近样点;

位于上方和右上方的CTU中的至少一个中的邻近样点;

位于左方和左上方的CTU中的至少一个中的邻近样点;或者

位于左方和上方的CTU的邻近样点。

在一个示例中,通过使用与第一视频单元相关联的运动信息来识别对应的参考样点。

在一个示例中,运动信息在被用于识别对应的参考样点之前被修改。

在一个示例中,运动信息包括运动矢量,并且修改运动信息包括将运动矢量取整到整数精度。

在一个示例中,邻近样点和第一视频单元属于相同的片或相同的片组。

在一个示例中,第一视频单元包括当前块、当前预测单元、当前CTU、当前虚拟管线数据单元(VPDU)中的至少一个。

在一个示例方面,公开了一种处理视频的方法。该方法包括:从与视频块相关联的样点中推导局部照明补偿(LIC)参数;用推导出的LIC参数来更新一个或多个历史LIC参数表(HLICT);以及基于所更新的一个或多个HLICT表,对至少一个后续视频单元执行视频处理。

在一个示例中,样点包括至少一个后续视频单元的邻近/非相邻的双向预测重构样点和对应的预测样点。

在一个示例中,至少一个后续视频单元的邻近/非相邻的双向预测重构样点和对应的预测样点中的至少一个被划分为多个样点集合,并且LIC参数是从每个样点集合中推导出的。

在一个示例中,在每个样点集合内共享相同的运动信息。

在一个示例中,视频块位于CTU的右边界或底边界。

在一个示例中,至少一个后续视频单元包括后续CTU或VPDU中的至少一个。

在一个示例中,与视频块相关联的样点仅包括视频块内的部分样点。

在一个示例中,部分样点是以下中的一个:

位于每第N行和/或第N列的样点;或者

位于视频块的四个角的样点。

在一个示例中,部分样点不包括跨越VPDU边界的样点。

在一个示例中,视频块的特征满足特定条件。

在一个示例中,视频块的特征包括视频块的编码模式、运动信息、尺寸、宽度和高度中的至少一个。

在一个示例中,视频块的编码模式不属于以下任何一种:仿射模式、加权预测、广义双向预测(GBI)或组合帧间和帧内预测(combined inter and intra prediction,CIIP)。

在一个示例中,视频块是LIC编码块。

在一个示例中,视频块的尺寸大于第一阈值或小于第二阈值。

在一个示例中,视频块的宽度和高度中的至少一个大于第三阈值或小于第四阈值。

在一个示例中,至少一个LIC参数表和LIC参数集合的至少一部分在图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)、条带头、片组头和片头中的至少一个中被信令通知。

在一个示例中,至少一个LIC参数表是为每个图片、条带、片、片组和CTU组中的至少一个推导出的。

在一个示例中,至少一个LIC参数表是从先前转换的图片、条带、片、片组和CTU组中的至少一个继承的。

在一个示例中,至少一个LIC表是针对特定参考图片或所有参考图片信令通知的。

在一个示例中,特定参考图片包括每个预测方向的第一参考图片。

在一个示例中,在被信令通知之前,对LIC参数集合的至少一部分进行量化,并且量化步长在图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)、条带头、片组头和片头中的至少一个中被信令通知。

在一个示例中,LIC参数集合的至少一部分在被量化之前左移K,并且K被预定义或信令通知。

在一个示例中,LIC参数集合的至少一部分仅包括缩放因子和偏移因子之一,并且缩放因子和偏移因子中的另一个被预定义为默认值。

在一个示例中,LIC参数集合的至少一部分仅包括缩放因子和偏移因子之一,并且缩放因子和偏移因子中的另一个是使用视频块的邻近样点和对应的参考样点推导出的。

在一个示例中,LIC参数集合的至少一部分包括缩放因子和偏移因子两者。

在一个示例中,缩放因子和偏移因子以不同的值左移和/或缩放因子和偏移因子以不同的量化步长被量化。

在一个示例方面,公开了一种处理视频的方法。该方法包括:对于视频块,将局部照明补偿(LIC)信息与运动信息一起作为条目存储在基于历史的运动矢量预测(HMVP)表中,其中,LIC信息与运动信息相关联;以及基于HMVP表执行对视频块的转换。

在一个示例中,LIC信息包括指示LIC是否应用于视频块的LIC标志和与视频块的LIC相关联的LIC参数集合中的至少一个。

在一个示例中,当对使用相关联的运动信息的至少一个表或列表执行修剪过程时,不考虑LIC信息。

在一个示例中,至少一个表或列表包括Merge候选列表、基于历史的运动矢量预测(HMVP)表和高级运动矢量预测(AMVP)列表中的任何一个。

在一个示例中,对于用LIC转换的视频块,相关联的运动信息不被用于更新HMVP表。

在一个示例中,转换包括将当前块编码成视频的比特流表示,以及从视频的比特流表示中解码当前块。

在一个示例方面,公开了一种视频系统中的装置。该装置包括处理器和在其上具有指令的非暂时性存储器,其中指令在由处理器执行时使得处理器实现上述方法中的任何一种。

在一个示例方面,公开了一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行上述方法中的任何一种的程序代码。

将意识到,所公开的技术可以体现在视频编码器或解码器中以提高压缩效率。

本文档中描述的所公开的和其它解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开的和其它实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息以传输到合适的接收器装置。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在一个计算机或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。

本文中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或向其传送数据或两者兼有。然而,计算机不一定需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。

虽然本专利文档包含许多细节,但这些不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。

类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。

仅描述了几个实施方式和示例,并且可以基于本专利文件中描述和图示的内容进行其它实施、增强和变化。

相关技术
  • 局部照明补偿的改进方法
  • 使用存储的参数对视频编码和解码进行局部照明补偿
技术分类

06120113250083