CN118176731A - 用于视频处理的方法、装置和介质 - Google Patents

用于视频处理的方法、装置和介质 Download PDF

Info

Publication number
CN118176731A
CN118176731A CN202280057532.1A CN202280057532A CN118176731A CN 118176731 A CN118176731 A CN 118176731A CN 202280057532 A CN202280057532 A CN 202280057532A CN 118176731 A CN118176731 A CN 118176731A
Authority
CN
China
Prior art keywords
candidate
candidates
block
template
spatial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280057532.1A
Other languages
English (en)
Inventor
张娜
张凯
张莉
许继征
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Douyin Vision Co Ltd
ByteDance Inc
Original Assignee
Douyin Vision Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Douyin Vision Co Ltd, ByteDance Inc filed Critical Douyin Vision Co Ltd
Publication of CN118176731A publication Critical patent/CN118176731A/zh
Pending legal-status Critical Current

Links

Abstract

本公开实施例提供了一种用于视频处理的解决方案。一种用于视频处理的方法被提出。该方法包括:在视频的目标视频块和视频的码流之间的转换期间,确定目标视频块的块矢量(BV)候选是否有效;以及如果确定BV候选有效,基于BV候选执行转换。

Description

用于视频处理的方法、装置和介质
技术领域
本公开的实施例一般涉及视频编解码技术,并且更具体地,涉及块矢量(BV)候选增强。
背景技术
如今,数字视频功能正被应用于人们生活的各个方面。已经针对视频编码/解码,已经提出了多种类型的视频压缩技术,诸如MPEG-2、MPEG-4、ITU-T H.263、ITU-TH.264/MPEG-4Part 10高级视频编解码(AVC)、ITU-TH.265高效视频编解码(HEVC)标准、通用视频编解码(VVC)标准。然而,常规视频编解码技术的编解码效率通常非常低,这是不希望的。
发明内容
本公开的实施例提供了一种用于视频处理的解决方案。
在第一方面中,提出了一种用于视频处理的方法。该方法包括:在视频的目标视频块和视频的码流之间的转换期间,确定目标视频块的块矢量(BV)候选是否有效;以及如果确定BV候选有效,基于BV候选执行转换。
与常规方案相比,第一方面所提出的方法可以有利地提高编解码有效性和编解码效率。
在第二方面中,提出了一种用于视频处理的另一种方法。该方法包括:在视频的目标视频块和视频的码流之间的转换期间,从以下至少一项生成目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测(STMVP),或基于子块的时域块矢量预测(SbTBVP);以及基于BV候选执行转换。
与常规方案相比,第二方面提出的方法可以有利地提高编解码有效性和编解码效率。
在第三方面中,提出了另一种用于视频处理的方法。该方法包括:在视频的目标视频块和视频的码流之间的转换期间,针对目标视频块调整块矢量(BV)候选列表;以及基于经调整的BV候选列表执行转换。
与常规方案相比,第三方面所提出的方法可以有利地提高编解码有效性和编解码效率。
在第四方面中,提出了一种用于处理视频数据的装置。该用于处理视频数据的装置包括处理器和在其上具有指令的非暂态存储器,其中指令在由处理器执行时使处理器执行根据本公开的第一、第二或第三方面的方法。
在第五方面中,提出了一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质存储使处理器执行根据本公开的第一、第二或第三方面的方法的指令。
在第六方面中,提出了一种非暂态计算机可读记录介质。该非暂态计算机可读记录介质存储视频的通过由视频处理装置执行的方法生成的码流,其中方法包括:确定视频的目标视频块的块矢量(BV)候选是否有效;以及如果确定BV候选有效,基于BV候选生成码流。
在第七方面中,提出了一种用于存储视频的码流的方法。该方法包括:确定视频的目标视频块的块矢量(BV)候选是否有效;如果确定BV候选有效,基于BV候选生成码流;以及将码流存储在非暂态计算机可读记录介质中。
在第八方面中,提出了另一种非暂态计算机可读记录介质。该非暂态计算机可读记录介质存储视频的通过由视频处理装置执行的方法生成的码流,其中方法包括:从以下至少一项生成视频的目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测,或基于子块的时域块矢量预测(SbTBVP);以及基于BV候选生成码流。
在第九方面中,提出了另一种用于存储视频的码流的方法。该方法包括:从以下至少一项生成视频的目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测(STMVP),或基于子块的时域块矢量预测(SbTBVP);基于BV候选生成码流;以及将码流存储在非暂态计算机可读记录介质中。
在第十方面中,提出了另一种非暂态计算机可读记录介质。该非暂态计算机可读记录介质存储视频的通过由视频处理装置执行的方法生成的码流,其中方法包括:针对视频的目标视频块,调整块矢量(BV)候选列表;以及基于经调整的BV候选列表,生成码流。
在第十一方面中,提出了另一种用于存储视频的码流的方法。该方法包括:针对视频的目标视频块,调整块矢量(BV)候选列表;基于经调整的BV候选列表,生成码流;以及将码流存储在非暂态计算机可读记录介质中。
提供本发明内容是为了以简化的形式介绍以下在具体实施例中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。
附图说明
通过参考附图的以下详细描述,本公开的示例实施例的上述和其他目的、特征和优点将变得更加明显。在本公开的示例实施例中,相同的附图标记通常指代相同的组件。
图1示出了根据本公开的一些实施例示出的示例视频编解码系统的框图;
图2示出了根据本公开的一些实施例示出的第一示例视频编码器的框图;
图3示出了根据本公开的一些实施例示出的示例视频解码器的框图;
图4示出了显示空域合并候选的示例位置的示例图;
图5示出了显示考虑用于空域合并候选的冗余检查的候选对的示例图;
图6示出了显示用于时域合并候选的示例运动矢量缩放的示例图;
图7示出了显示针对时域合并候选C0和C1的候选位置的示例图;
图8示出了显示当前块的VVC空域邻近块的示例图;
图9示出了显示虚拟块和当前块之间的关系的示例图;
图10示出了用于导出空域合并候选的空域邻近块的示例图;
图11A和图11B示出了VVC中的SbTMVP过程;
图12A-图12D示出了当前CTU处理顺序和当前CTU和左侧CTU中的可用样本;
图13示出了用于计算SAD的邻近样本;
图14示出了用于计算次CU级别运动信息的SAD的邻近样本;
图15示出了显示分类过程的示例图;
图16示出了示出编码器中的重排序过程的示例图;
图17示出了示出解码器中的重排序处理的示例图;
图18示出了示出在初始MV周围的搜索面积上执行模板匹配的示例图;
图19示出了显示模板匹配预测的示例图;
图20示出了所使用的帧内模板匹配搜索面积的示例图;
图21示出了在TIMD中所使用的模板及其参考样本的示例图;
图22示出了显示模板和模板的参考样本的示例图;
图23示出了显示参考列表0和参考列表1中的模板和模板的参考样本的示例图;
图24示出了显示针对具有子块运动的块,使用当前块的子块的运动信息的模板和模板的参考样本的示例图;
图25示出了显示针对具有子块运动的块,使用每个子模板的运动信息的示例图;
图26示出了显示用于具有OBMC的块的模板和模板的参考样本的示例图;
图27示出了显示具有正方形子块的哈希值的矩形块的运动估计的示例图;
图28示出了具有色度缩放架构的示例亮度映射;
图29A示出了显示针对空域候选的候选位置的示例图;
图29B示出了显示针对时域候选的候选位置的示例图;
图30示出了显示通过应用来自空域邻居的运动移位,从对应的同位子CU导出子CUbv运动场的示例图;
图31示出了显示示例帧内模板匹配的示例图;
图32示出了根据本公开的一些实施例的用于视频处理的方法的流程图;
图33示出了根据本公开的一些实施例的用于视频处理的方法的另一流程图;
图34示出了根据本公开的一些实施例的用于视频处理的方法的另一流程图;
图35示出了其中可以实现本公开的各种实施例的计算设备的框图。
在附图中,相同或类似的附图标记通常指代相同或类似元素。
具体实施方式
现在将参考一些实施例来描述本公开的原理。应当理解的是,描述这些实施例仅出于示出并且帮助本领域技术人员理解和实施本公开的目的,而不暗示对本公开的范围的任何限制。除了下文所述的方式之外,本文所描述的公开内容还可以以各种方式实施。
在以下描述和权利要求中,除非另有定义,否则在本文中使用的所有科学术语和技术术语具有与本公开所属领域的普通技术人员共同理解的含义相同的含义。
本公开中提及的“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可以包括特定的特征、结构或特性,但是并非每个实施例都必须包括该特定的特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合示例实施例描述特定的特征、结构或特性时,无论是否明确描述,认为影响与其他实施例相关的这种特征、结构或特性在本领域技术人员的知识范围内。
应当理解的是,尽管术语“第一”和“第二”等可以用于描述各种元素,但这些元素不应受限于这些术语。这些术语仅用于区分一个元素与另一个元素。例如,第一元素可以被称为第二元素,类似地,第二元素可以被称为第一元素,而不脱离示例实施例的范围。如本文中所使用的,术语“和/或”包括一个或多个所列术语的任何和所有组合。
本文中所使用的术语仅用于描述特定实施例的目的,并不旨在限制示例实施例。如本文中所用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应理解,术语“包括”、“包含”和/或“具有”在本文中使用时表示存在所述特征、元素和/或组件等,但不排除一个或多个其他特征、元素、组件和/或其组合的存在或添加。
示例环境
图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对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中其他视频块的经解码样本来生成针对当前视频块的预测数据。针对当前视频块的预测数据可以包括预测视频块和各个语法元素。
残差生成单元207可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成针对当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样本的不同样本部分的残差视频块。
在其他示例中,例如在跳过模式中,针对当前视频块可以不存在针对当前视频块的残差数据,并且残差生成单元207可以不执行减去操作。
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块,来生成针对当前视频块的一个或多个变换系数视频块。
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
反量化单元210和反变换单元211可以分别对变换系数视频块应用反量化和反变换,以从变换系数视频块重构残差视频块。重构单元212可以将经重构的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样本,以产生与当前视频块相关联的重构视频块,以供存储在缓冲213中。
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块效应伪像。
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元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.发明内容
本公开涉及视频编解码技术,具体来说,是关于视频编解码中的IBC预测和相关技术。它可以被应用于现有HEVC、VVC等视频编解码标准,也可以适用于未来的视频编解码标准或视频编解码器。
2.背景技术
视频编解码标准主要通过众所周知的ITU-T和ISO/IEC标准的发展而演进。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4Visual,两个组织联合制定了H.262/MPEG-2Video和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中使用了时域预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合创立了联合视频探索团队(JVET)。JVET会议每季度同时举行一次,新的视频编解码标准在2018年4月的JVET会议上被正式命名为多功能视频编解码(VVC),当时发布了VVC测试模型(VTM)的第一个版本。VVC工作草案和测试模型VTM在每次会议后都被更新。VVC项目在2020年7月的会议上实现了技术完成(FDIS)。
2.1扩展合并预测
在VVC中,合并候选列表是通过按顺序包括以下五种类型的候选来构建的:
1)来自空域邻居CU的空域MVP
2)来自同位CU的时域MVP
3)来自FIFO表的基于历史的MVP
4)成对平均MVP
5)零MV。
合并列表的大小在序列参数集头中通过信号传输,并且合并列表的最大允许大小是6。针对合并模式中的每个CU码,使用截断的一元二进制化(TU)对最佳合并候选的索引进行编码。合并索引的第一个仓(bin)使用上下文进行编码,而旁路编码用于其他仓。
每个类别的合并候选的导出过程在本节中提供。正如在HEVC中所操作的那样,VVC还支持在一定大小的面积内对所有CU的合并候选列表的并行导出。
2.1.1空域候选导出
图4示出了显示空域合并候选的示例位置的示例图400。VVC中空域合并候选的导出与HEVC中的导出相同,只是前两个合并候选的位置被交换。在位于图4所示位置的候选中,最多选择四个合并候选。导出顺序为B1、A1 B0、A0和B2。仅当位置B0、A0、B1和A1的一个或多于一个CU不可用时(例如,因为它属于另一个条带或图块)或被帧内编解码时,才考虑位置B2。在添加了位置A1处的候选之后,对剩余候选的添加进行冗余检查,该冗余检查确保具有相同运动信息的候选被从列表中排除,从而提高了编解码效率。为了降低计算复杂度,在提到的冗余检查中并没有考虑所有可能的候选对。图5示出了显示针对空域合并候选的冗余检查考虑候选对的示例图500。相反,只考虑图5中与箭头链接的对,并且仅用于冗余检查的对应候选不具有相同的运动信息,才将候选添加到列表中。
2.1.2时域候选导出在这个步骤中,仅一个候选被添加到列表中。特别地,在该时域合并候选的导出中,基于属于同位参考图片的同位CU来导出缩放运动矢量。在条带头中显式地通过信号传输要用于导出同位CU的参考图片列表。图6示出了时域合并候选的示例运动矢量缩放600。如图6中的虚线所示,获得了时域合并候选的缩放运动矢量,该向量是使用POC距离tb和td从同位CU的运动矢量缩放而来的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,td被定义为同位图片的参考图片与同位图片之间的POC差。时域合并候选的参考图片索引被设置为等于零。
图7示出了显示时域合并候选C0和C1的候选位置的示例图700。时域候选的位置在候选C0和C1之间选择,如图7所示。如果位置C0处的CU不可用、被帧内编解码或在CTU的当前行之外,则使用位置C1。否则,在时域合并候选的导出中使用位置C0。
2.1.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候选应用冗余检查以进行空域或时域合并候选。
为了减少冗余检查操作的数目,引入了以下简化:
1.用于合并列表生成的HMPV候选数目被设置为(N<=4)?M:(8-N),其中N指示合并列表中现有候选的数目,M指示表中可用HMVP候选的数目。
2.一旦可用合并候选的总数达到最大允许合并候选减1,则终止来自HMVP的合并候选列表构建过程。
2.1.4成对平均合并候选导出
成对平均候选是通过对现有合并候选列表中的预定的候选对进行平均来生成的,并且预定的对被定义为{(0,1)、(0,2)、(1,2),(0,3)、(3,1),(2,3)},其中数字表示合并候选列表的合并索引。针对每个参考列表单独计算平均运动矢量。如果两个运动矢量在一个列表中都可用,则即使这两个运动矢量指向不同的参考图片,也会对其进行平均;如果仅一个运动矢量可用,则直接使用该运动矢量;如果没有可用的运动矢量,保持此列表无效。当添加成对平均合并候选后合并列表未满时,将在最后插入零MVP,直到遇到最大合并候选数目。
2.2新的合并候选
2.2.1非相邻合并候选导出
图8示出了显示当前块的VVC空域邻居块的示例图800。在VVC中,图8所示的五个空域邻居块以及一个时域邻居块用于导出合并候选。
提出使用与VVC中的样式相同的样式从与当前块不相邻的位置导出附加合并候选。为了实现这一点,针对每个搜索轮次i,基于当前块生成虚拟块,如下所示:
首先,虚拟块与当前块的相对位置通过以下公式计算:
Offsetx=-i×gridX,Offsety=-i×gridY
其中Offsetx和Offsetty表示虚拟块的左上角相针对当前块的左下角的偏移,gridX和gridY是搜索网格的宽度和高度。
其次,虚拟块的宽度和高度通过以下公式计算:
newWidth=i×2×gridX+currWidth
newHeight=i×2×gridY+currHeight。
其中currWidth和currHeight是当前块的宽度和高度。newWidth和newHeight是新虚拟块的宽度和高度。
gridX和gridY当前分别被设置为currWidth和currHeight。
图9示出了显示了虚拟块和当前块之间的关系的示例图。图9还示出了第i搜索轮次中的虚拟块。
在生成虚拟块之后,块Ai、Bi、Ci、Di和Ei可以被视为虚拟块的VVC空域邻居块,并且它们的位置是利用VVC中相同的样式获得的。显然,如果搜索轮次i为0,则虚拟块是当前块。在这种情况下,块Ai、Bi、Ci、Di和Ei是在VVC合并模式中使用的空域邻居块。
在构建合并候选列表时,进行修剪以保证合并候选列表中的每个元素是唯一的。最大搜索轮次被设置为1,这意味着使用了五个不相邻的空域邻居块。
非相邻的空域合并候选按B1->A1->C1->D1->E1的顺序插入到时域合并候选之后的合并列表中。
2.2.2非相邻空域候选
图10示出了示出用于导出空域合并候选的空域邻近块的示例图1000。非相邻空域合并候选在常规合并候选列表中的TMVP之后被插入。空域合并候选的样式如图10所示。非相邻空域候选和当前编解码块之间的距离基于当前编解码块的宽度和高度。行缓冲限制没有被应用。
2.2.3STMVP
提出使用三个空域合并候选和一个时域合并候选来导出平均候选作为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.2.4合并列表大小
如果考虑非相邻合并候选和STMVP合并候选两者,则在序列参数集头中通过信号传输合并列表的大小,并且合并列表的最大允许大小增加(例如,8)。
2.3基于子块的时域运动矢量预测(SbTMVP)
VVC支持基于子块的时域运动矢量预测(SbTMVP)方法。类似于HEVC中的时域运动矢量预测(TMVP),SbTMVP使用同位图片中的运动场来改进当前图片中CU的运动矢量预测和合并模式。TMVP使用的同一同位图片用于SbTMVP。SbTMVP与TMVP区别于以下两个主要方面:
–TMVP预测CU级别的运动,但是SbTMVP预测子CU级别的运动;
–而TMVP从同位图片中的同位块预取时域运动矢量(同位块是相针对当前CU的右下或中心块),SbTMVP在从同位图片预取时域运动信息之前应用运动移位,其中运动移位是从来自当前CU的空域邻居块之一的运动矢量获得的。
图11A和图11B示出了VVC中的SbTMVP过程。图11A示出了显示SbTMVP使用的空域邻居块的示例图1110。SbTMVP分两步预测当前CU内的子CU的运动矢量。在第一步中,检查图11A中的空域邻居A1。如果A1具有使用同位图片作为其参考图片的运动矢量,则该运动矢量被选择为要应用的运动移位。如果没有标标识出这种运动,则运动移位被设置为(0,0)。
图11B示出了通过应用来自空域邻居的运动移位并缩放来自同位图片1122的相应同位子CU的运动信息来导出当前图片1120的子CU运动场。在第二步中,应用步骤1中标识的运动移位(即添加到当前块的坐标),以从同位图片1122获得子CU级别运动信息(运动矢量和参考索引),如图11B所示。图11B中的示例假设运动移位被设置为块A1的运动。然后,针对每个子CU,同位图片1122中的其对应块(覆盖中心样本的最小运动网格)的运动信息用于导出子CU的运动信息。在标识出同位子CU的运动信息之后,以与HEVC的TMVP过程类似的方式将其转换为当前子CU的参考索引和运动矢量,其中应用时域运动缩放以将时域运动矢量的参考图片与当前CU的参考图片对齐。
在VVC中,包含SbTMVP候选和仿射合并候选两者的组合的基于子块的合并列表被用于基于子块合并模式的信号传输。SbTMVP模式由序列参数集(SPS)标志启用/禁用。如果SbTMVP模式被启用,则SbTMVP预测子被添加为基于子块的合并候选的列表的第一条目,然后是仿射合并候选。在SPS中通过信号传输基于子块的合并列表的大小,并且在VVC中基于子块合并列表的最大允许大小是5。SbTMVP中使用的子CU大小固定为8x8,并且与仿射合并模式一样,SbTMVP模式仅适用于宽度和高度都大于或等于8的CU。附加SbTMVP合并候选的编码逻辑与其他合并候选的相同,即,针对P或B条带中的每个CU,执行附加RD检查以决定是否使用SbTMVP候选。
2.4块内复制(IBC)
块内复制(IBC)是HEVC对SCC扩展时采用的一种工具。众所周知,IBC显著提高了屏幕内容素材的编解码效率。由于IBC模式是作为块级别编解码模式被实现的,因此在编码器上执行块匹配(BM),以找到针对每个CU的最佳块矢量(或运动矢量)。这里,块矢量用于指示从当前块到参考块的位移,而参考块已经在当前图片内被重构。IBC编解码的CU的亮度块矢量是整数精度的。色度块矢量也可以四舍五入到整数精度。当与AMVR结合时,IBC模式可以在1像素和4像素运动矢量精度之间切换。IBC编解码的CU被视为帧内预测模式或帧间预测模式以外的第三种预测模式。IBC模式适用于宽度和高度均小于或等于64个亮度样本的CU。
在编码器端,针对IBC执行基于哈希的运动估计。编码器针对宽度或高度不大于16个亮度样本的块执行RD检查。针对非合并模式,块矢量搜索首先使用基于哈希的搜索被执行。如果哈希搜索没有返回有效候选,基于块匹配的本地搜索被执行。
在基于哈希的搜索中,当前块和参考块之间的哈希键值匹配(32位CRC)被扩展到所有允许的块大小。针对当前图片中每个位置的哈希键值计算基于4x4子块。针对较大大小的当前块,当所有4×4子块的所有哈希键值与对应参考位置的哈希键值匹配时,哈希键值被确定与参考块的哈希键值匹配。如果发现多个参考块的哈希键值与当前块的哈希键值匹配,则计算每个所匹配的参考的块矢量成本,并选择成本最小的一个块矢量成本。
在块匹配搜索中,搜索范围被设置为覆盖先前的CTU和当前的CTU。在CU级别,IBC模式利用标志通过信号传输,它可以作为IBC AMVP模式或IBC跳过/合并模式通过信号传输,如下所示:
–IBC跳过/合并模式:合并候选索引被用于指示来自邻近候选IBC编解码块列表中的哪些块矢量被用于预测当前块。合并列表由空域、HMVP和成对候选组成。
–IBC AMVP模式:块矢量差经编解码的方式与运动矢量差相同。块矢量预测方法使用两个候选作为预测子,一个来自左侧邻居,一个来自上方邻居(如果IBC编解码的)当任一邻居不可用时,默认块矢量将作为预测子被使用。标志通过信号被传输以指示块矢量预测子索引。
2.4.1IBC矢量预测的简化
IBC中针对合并模式和AMVP模式的BV预测子将共享一个共同预测子列表,该列表由以下元素组成:
·2个空域邻近位置(如图4所示的A0,B0)
·5个HMVP条目
·默认为零矢量
针对合并模式,此列表的前6个条目最多被使用;针对AMVP模式,此列表的前2个条目将被使用。并且该列表符合共享合并列表区域要求(SMR内共享相同列表)。
2.4.2IBC参考区域
为了减少存储器消耗和解码器复杂性,VVC中的IBC只允许预定的面积的重构部分,预定的面积包含当前CTU的区域和左侧CTU的一些区域。图12A-图12D示出了示出当前CTU处理顺序和当前CTU和左侧CTU中可用样本的示例图。图12A-图12D示出了IBC模式的参考区域,其中每个块表示64x64亮度样本单元。
根据当前CTU内当前编解码CU位置的位置,适用以下内容:
–如图1210所示,如果当前块落入当前CTU的左上方64x64块中,那么除了当前CTU中已经重构的样本之外,还可以使用CPR模式参考左侧CTU的右下方64x64块中的参考样本。使用CPR模式,当前块还可以参考左侧CTU的左下方64x64块中的参考样本和左侧CTU的右上方64x64块中的参考样本。
–如图1230所示,使用CPR模式,如果当前块落入当前CTU的右上方64x64块,则除了当前CTU中已经重构的样本之外,如果相针对当前CTU的亮度位置(0,64)尚未被重构,则当前块还可以参考左侧CTU的左下方64x64块和右下方64x64块中的参考样本;否则,当前块还可以参考左侧CTU的右下方64x64块中的参考样本。
–如图1250所示,使用CPR模式,如果当前块落入当前CTU的左下方64x64块中,那么除了当前CTU中已经重构的样本之外,如果相针对当前CTU的亮度位置(64,0)尚未被重构,则当前块还可以参考左侧CTU的右上方64x64块和右下方64x64块中的参考样本。否则,使用CPR模式,当前块还可以参考左侧CTU的右下方64x64块中的参考样本。
–如图1270所示,如果当前块落入当前CTU的右下方64x64块中,则只能使用CPR模式参考当前CTU中已经重构的样本。
该限制允许使用本地片上存储器实现IBC模式以用于硬件实现。
2.4.3IBC与其他编解码工具的交互
IBC模式与VVC中的其他帧间编解码工具,诸如成对合并候选、基于历史的运动矢量预测子(HMVP)、组合帧内/帧间预测模式(CIIP)、具有运动矢量差的合并模式(MMVD)和几何划分模式(GPM)之间的交互如下:
–IBC可以与成对合并候选和HMVP一起被使用。新成对IBC合并候选可以通过对两个IBC合并候选取均值来生成。针对HMVP,IBC运动被插入历史缓冲以供将来参。
–IBC不能与以下帧间工具结合使用:仿射运动、CIIP、MMVD和GPM。
–DUAL_TREE划分被使用时,色度编解码块不允许IBC。与HEVC屏幕内容编解码扩展不同,针对IBC预测,当前图片不再作为参考图片列表0中的参考图片之一被包含。针对IBC模式的运动矢量的导出过程排除帧间模式中的所有邻近块,反之亦然。以下IBC设计方面被应用:
–IBC与常规MV合并共享相同的过程,包含成对合并候选和基于历史的运动预测子,但不允许TMVP和零矢量,因为它们对IBC模式无效。
–用于常规MV和IBC的单独的HMVP缓冲(各5个候选)。
–块矢量约束以码流一致性约束的形式实现,编码器需要确保码流中不存在无效矢量,如果合并候选无效(超出范围或0),则合并不得被使用。这种码流一致性约束用虚拟缓冲的形式表现,如下所述。
–针对去块,IBC按帧间模式被处置。
–如果当前块使用IBC预测模式经被编解码,AMVR不使用四分之一像素;相反,AMVR通过信号被传输仅指示MV是否是帧间像素还是4整数像素。
–IBC合并候选的数目可以在条带头中与常规、子块和几何合并候选的数目单独地通过信号被传输。
虚拟缓冲概念被用于描述针对IBC预测模式和有效块矢量的允许参考区域。ctbSize代表CTU大小,虚拟缓冲ibcBuf的宽度为wIbcBuf=128x128/ctbSize,高度为hIbcBuf=ctbSize。例如,针对128x128的CTU大小,ibcBuf的大小也是128x128;针对64x64的CTU大小,ibcBuf的大小是256x64;针对32x32的CTU大小,ibcBuf的大小是512x32。
VPDU的大小在每个维度上都是min(ctbSize,64),Wv=min(ctbSize,64)。
虚拟IBC缓冲,ibcBuf被维护如下。
–在开始解码每个CTU行时,利用无效值-1刷新整个ibcBuf。
–在开始解码相针对图片左上方的VPDU(xVPDU,yVPDU)时,设置ibcBuf[x][y]=-1,其中x=xVPDU%wIbcBuf,…,xVPDU%wIbcBuf+Wv-1;y=yVPDU%ctbSize,…,yVPDU%ctbSize+Wv-1。
–在解码相针对图片左上方包含(x,y)的CU后,设置
–ibcBuf[x%wIbcBuf][y%ctbSize]=recSample[x][y]
针对覆盖坐标(x,y)的块,如果以下针对块矢量bv=(bv[0],bv[1])为真,则块有效;否则块无效:
ibcBuf[(x+bv[0])%wIbcBuf][(y+bv[1])%ctbSize]不应等于-1。
2.4.4IBC虚拟缓冲测试
亮度块矢量bvL(1/16分数采样精度的亮度块矢量)应遵循以下约束:
–CtbSizeY大于或等于((yCb+(bvL[1]>>4))&(CtbSizeY-1))+cbHeight。
–IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcBufWidthY-1)][(y+(bvL[1]>>4))&(CtbSizeY-1)]针对x=xCb..xCb+cbWidth-1和y=yCb..yCb+cbHeight-1不等于-1。
否则,bvL被视为无效bv。
样本以CTB为单位被处理。针对每个亮度CTB的阵列大小在宽度和高度上都是以样本为单位的CtbSizeY。
–(xCb,yCb)是当前亮度编解码块的左上方样本相针对当前图片的左上方亮度样本的亮度位置,
–cbWidth指定亮度样本中当前编解码块的宽度,
–cbHeight指定亮度样本中当前编解码块的高度。
2.5基于模板匹配的自适应合并候选重排序
为了提高编解码效率,在构建合并候选列表后,各合并候选的顺序根据模板匹配成本被调整。合并候选在列表中按照模板匹配成本按升序排列,以子组的形式来操作。
图13示出了显示用于计算SAD的邻近样本的示例图1300。模板匹配成本由当前图片1310的当前CU的邻近样本与其对应的参考样本之间的SAD(绝对差和)来测量。如图13所示,如果合并候选包含双预测运动信息,则对应的参考样本是参考列表0 1320中的对应的参考样本和参考列表1 1330中的对应的参考样本的均值。图14示出了显示了用于计算子CU级别运动信息的SAD的邻近样本的示例图1400。如图14所示,如果合并候选包含当前图片1410的子CU级别运动信息,对应的参考样本由参考图片1420中对应的参考子块的相邻样本组成。
图15示出了将原始合并候选列表1510分类为经更新的合并候选列表1520的分类过程。如图15所示,分类过程以子组的形式来操作。前三个合并候选被分类在一起。下面的三个合并候选被分类在一起。模板大小(左侧模板的宽度或上方模板的高度)为1。子组大小为3。
2.6自适应合并候选列表假设合并候选的数目为8。将前5个合并候选作为第一子组,并将随后的3个合并候选用作第二子组(即最后的子组)。
图16示出了示出编码器中的重排序过程的示例图1600。针对编码器,在框1602构建合并候选列表后,一些合并候选按合并候选成本的升序自适应地重排序,如图16所示。
更具体地,在框1604,计算除最后的子组之外的所有子组中的合并候选的模板匹配成本;则在框1606,除最后的子组之外对其自己的子组中的合并候选重排序;最后,在框1608,得到最终合并候选列表。
图17示出了显示解码器中的重排序过程的示例图1700。针对解码器,在构建合并候选列表后,一些/没有合并候选按照合并候选成本的升序被自适应地重排序,如图17所示。在图17中,所选(信号)合并候选所在的子组称为所选择的子组。
更具体地,在框1702,如果所选择的合并候选位于最后的子组中,在框1704,在所选择的合并候选被导出之后,合并候选列表构建过程被终止,在框1706,重排序不被执行并且合并候选列表不被改变;否则,执行过程如下:
在框1708,在所选择的子组中的所有合并候选被导出之后,合并候选列表构建过程被终止;在框1710,计算针对所选择的子组中的合并候选的模板匹配成本;在框1712,重排序所选择的子组中的合并候选;最后,在框1714,得到新的合并候选列表。
针对编码器和解码器:
模板匹配成本是作为T和RT的函数导出的,其中T是模板中的样本集合,RT是用于模板的参考样本集合。
当导出合并候选的模板的参考样本时,合并候选的运动矢量被四舍五入到整数像素精度。也可以使用8抽头或12抽头亮度插值滤波来导出。
用于双向预测的模板(RT)的参考样本是通过如下对参考列表0(RT0)中的模板的参考样本和参考列表1(RT1)中模板的参考样本进行加权平均而导出的。
其中参考列表0(8-w)中参考模板的权重和参考列表1(w)中参考模板的权重由合并候选的BCW索引决定。等于{0,1,2,3,4}的BCW索引分别对应于等于{-2,3,4,5,10}的w。
如果合并候选的本地亮度补偿(LIC)标志为真,则使用LIC方法导出模板的参考样本。
模板匹配成本是基于T和RT的绝对差之和(SAD)来计算的。模板大小为1。这意味着左边模板的宽度和/或上方模板的高度是1。如果编解码模式是MMVD,则不重排序用于导出基础合并候选的合并候选。
如果编解码模式是GPM,则用于导出单向预测候选列表的合并候选不被重排序。
2.7模板匹配(TM)
模板匹配(TM)是解码器侧MV导出方法,用于通过找到当前图片中的模板(即,当前CU的顶部和/或左侧相邻块)与参考图片中的块(即,与模板大小相同)之间的最接近匹配来细化当前CU的运动信息。图18示出了显示在初始MV周围的搜索面积上执行的模板匹配的示例图1800。如图18所示,在[-8,+8]像素搜索范围内,在当前CU的初始运动周围搜索更好的MV。本文采用模板匹配有两处修改:基于AMVR模式确定搜索步长,在合并模式下TM可以级联双边匹配过程。
在AMVP模式中,基于模板匹配误差来确定MVP候选,以选取达到当前块模板和参考块模板之间的最小差的一个,然后TM仅对该特定MVP候选执行MV细化。TM通过使用迭代菱形搜索,从[-8,+8]像素搜索范围内的全像素MVD精度(或4像素AMVR模式的4像素)开始,对该MVP候选进行细化。AMVP候选可以通过使用具有全像素MVD精度的交叉搜索(或针对4像素AMVR模式为4像素)来进一步细化,然后根据表3中指定的AMVR模式依次使用半像素和四分之一像素。该搜索过程确保MVP候选在TM过程之后仍然保持如AMVR模式所指示的相同MV精度。
表1.AMVR的搜索样式以及与AMVR的合并模式
在合并模式中,类似的搜索方法被应用于由合并索引指示的合并候选。如表1所示,TM可以一直执行到1/8像素MVD精度,或者跳过超过半像素MVD精度的精度,这依赖于是否根据合并的运动信息使用替代插值滤波(当AMVR为半像素模式时使用)。此外,当启用TM模式时,模板匹配可以作为基于块和基于子块的双边匹配(BM)方法之间的独立过程或额外的MV细化过程来工作,这依赖于BM是否可以根据其启用条件检查来启用。
在编码器端,TM合并模式将对每个合并候选进行MV细化。
2.8帧内模板匹配
模板匹配预测(TMP)是一种特殊的帧内预测模式,它从当前帧的重构部分复制最佳预测块,当前帧的L形模板与当前模板匹配。图19示出了显示模板匹配预测的示例图1900。针对预定的搜索范围,编码器在当前帧的重构部分中搜索与当前模板最类似的模板,并使用对应的块作为预测块。然后,编码器通过信号传输这种模式的用法,并且在解码器侧进行反操作。
模板匹配预测是一种编解码工具,主要适用于屏幕内容编解码。通过将当前块的L形因果邻近与预定的搜索面积中的另一块进行匹配,在解码器侧生成预测信号。这在图20中示出。图20示出了显示使用的模板内匹配搜索面积的示例图2000。具体而言,搜索范围分为3个区域:
R1:在当前CTU内
R2:当前CTU之外的左上角
R3:在当前CTU上方
R4:在当前CTU左侧
在每个区域内,解码器搜索相针对当前区域具有最少SAD的模板,并使用其对应的块作为预测块。
所有区域的尺寸(SearchRange_w,SearchRange_h)与块尺寸(BlkW,BlkH)成比例设置,以便每个像素有固定数目的SAD比较。也就是说:
SearchRange_w=a*BlkW
SearchRange_h=a*BlkH
其中“a”是控制增益/复杂度权衡的常数。
2.9基于模板的MPM帧内模式导出
TIMD模式使用相邻模板从MPM被导出。TIMD模式被用作CU的附加帧内预测方法。图21示出了显示TIMD中使用的模板及其参考样本的示例图2100。如图21所示,针对每个候选模式,使用模板及其参考样本生成模板的预测样本。成本被计算为模板的预测样本和重构样本之间的绝对变换差和(SATD)。具有最小成本的帧内预测模式被选择为TIMD模式,并用于CU的帧内预测。
2.9.1TIMD模式导出
针对MPM中的每种帧内预测模式,计算模板的预测与重构样本之间的SATD。选择SATD最小的帧内预测模式作为TIMD模式,用于当前CU的帧内预测。TIMD模式的导出支持位置相关的帧内预测组合(PDPC)和梯度PDPC。
2.9.2TIMD信令
在序列参数集(SPS)中以信号发出标志以启用/禁用所提出的方法。当标志为真时,发出CU级别标志以指示是否使用提出的TIMD方法。TIMD标志紧跟在MIP标志之后信号传输。如果TIMD标志等于真,则与亮度帧内预测模式相关的其余语法元素都将被跳过。
2.9.3与ECM-1.0中的新编解码工具的交互当EE2 DIMD标志等于真时,TIMD标志不信号传输并被设置为假。TIMD允许与ISP和MRL组合。当TIMD与ISP或MRL组合且TIMD标志等于真时,所导出的TIMD模式被用作针对ISP或MRL的帧内预测模式。
当启用辅MPM时,主MPM和辅MPM都用于导出TIMD模式。在TIMD模式的导出中不使用6抽头插值滤波。
2.9.4TIMD模式导出中MPM列表构建的修改在MPM列表的构建过程中,当邻近块被互编解码时,其帧内预测模式被导出为平面。为了提高MPM列表的准确性,当邻近块被互编解码时,利用运动矢量和参考图片导出传播的帧内预测模式,并用于MPM列表的构建。
2.10自适应合并候选列表
在下文中,模板是与当前块相邻或不相邻的重构样本的集合。根据当前块的相同运动信息导出模板的参考样本。例如,模板的参考样本是依赖于运动信息的模板的映射。在这种情况下,模板的参考样本由运动信息的参考索引所指示的参考图片中的运动信息的运动矢量来定位。图22示出了显示模板和模板的参考样本的示例图2200,其中RT表示当前图片2210中模板T的参考图片2220中的参考样本。
当合并候选利用双向预测时,合并候选的模板的参考样本由RT表示,并且RT可以根据从参考图片列表0中的参考图片导出的RT0和从参考图片列表1中的参考图片导出的RT1而生成。在一个示例中,RT0包括由参考了参考列表0中的参考图片的合并候选的参考索引所指示的当前块的参考图片上的参考样本集合,其中合并候选的MV参考了参考列表0)。在一个示例中,RT1包括由参考了参考列表1中的参考图片的合并候选的参考索引所指示的当前块的参考图片上的参考样本集合,其中合并候选的MV参考了参考列表1)。图23示出了显示当前图片2310中的模板以及参考列表0 2320和参考列表12330中的该模板的参考样本的示例图2300。
在一个示例中,用于双向预测的模板的参考样本(RT)是通过对参考列表0中的模板的参考样本(RT0)和参考列表1中模板的参考样本(RT1)进行相等加权平均而导出的。一个例子如下:
RT=(RT0+RT1+1)>>1
在一个示例中,用于双向预测的模板的参考样本(RTbi-pred)是通过对参考列表0中的模板的参考样本(RT0)和参考列表1中模板的参考样本(RT1)进行加权平均而导出的。一个例子如下:
RT=((2N-w)*RT0+w*RT1+2N-1)>>N,例如,N=3。
在一个示例中,诸如(8-w)的参考列表0中的参考模板的权重和诸如(w)之类的参考列表1中的参考样板的权重可以由合并候选的BCW索引决定。
合并候选可以根据一些准则被分为若干组。每组称为一个子组。例如,可以将相邻空域和时域合并候选作为第一子组,并将剩余的合并候选作为第二子组;在另一个例子中,前N(N≥2)个合并候选也可以作为第一子组,将后面的M(M≥2)的合并候选作为第二子组,将剩下的合并候选当作第三子组。注意,所提出的方法可以被应用于合并帧间编解码块(例如,平移运动)、仿射编解码块的候选列表构建过程;或者其他运动候选列表构建过程(例如AMVP列表、IBC AMVP列表和IBC合并列表)。
W和H是当前块(例如亮度块)的宽度和高度。以下描述以合并候选列表构建过程为例:
1.可以根据一个或一些准则在最终合并候选列表中自适应地重排列合并候选。
a.在一个示例中,首先调用当前合并候选列表构建过程的部分或全部过程,然后对列表中的候选进行重排序。
i.备选地,第一子组中的候选可以被重排序,并且它们应该被添加到第二子组中那些候选之前,其中第一子组被添加到第二子组之前。
(i)在一个示例中,可以首先导出第一类别的多个合并候选,然后在第一类别内重排序;继而可以根据第一类别中的重排序的候选(例如如何应用修剪)来确定来自第二类别的合并候选。
ii.备选地,可以将第一类别中的第一合并候选与第二类别中的第二合并候选进行比较,以决定第一或第二合并候选在最终合并候选列表中的顺序。
b.在一个示例中,可以在取回合并候选之前自适应地重排列合并候选。
i.在一个示例中,自适应地排列合并候选的过程可以在获得要在运动补偿过程中使用的合并候选之前进行处理。
c.在一个示例中,如果当前块的宽度大于当前块的高度,则将上述候选添加到左侧候选之前。
d.在一个示例中,如果当前块的宽度小于当前块的高度,则将上述候选添加到左侧候选之后。
e.是否自适应地重排列合并候选可以依赖于所选择的合并候选或所选择的合并候选索引。
i.在一个示例中,如果所选择的合并候选在最后的子组中,则不自适应地重排列合并候选。
f.在一个示例中,向合并候选分配成本,以合并候选的成本的升序自适应地重排序合并候选。
i.在一个示例中,合并候选的成本可以是模板匹配成本。
ii.在一个示例中,模板是与当前块相邻或不相邻的重构样本的集合。
iii.模板匹配成本是作为T和RT的函数导出的,其中T是模板中的样本集合,RT是用于模板的参考样本集合。
(i)如何获得合并候选的模板的参考样本可以依赖于合并候选的运动信息
a)在一个示例中,当导出模板的参考样本时,合并候选的运动矢量被四舍五入到整数像素精度,其中整数运动矢量可以是其最接近的整数运动矢量。
b)在一个示例中,当导出模板的参考样本时,使用N抽头插值滤波来获得子像素位置处的模板的参考样本。例如,N可以是2、4、6或8。
c)在一个示例中,当导出模板的参考样本时,合并候选的运动矢量可以被缩放到给定的参考图片(例如,针对每个参考图片列表,如果可用的话)。
d)例如,如图22所示,在由合并候选的参考索引指示的当前块的参考图片上获得合并候选的模板的参考样本,该参考图片具有合并候选的MV或修改的MV(例如,根据项目符号a)-b))。
e)例如,当合并候选利用双向预测时,合并候选的模板的参考样本由RT表示,并且RT可以根据从参考图片列表0中的参考图片导出的RT0以及从参考图片列表1中的参考图片导出的RT1而生成。
[1]在一个示例中,RT0包括由参考了参考列表0中的参考图片的合并候选的参考索引所指示的当前块的参考图片上的参考样本集合,其中合并候选的MV参考了参考列表0),
[2]在一个示例中,RT1包括由参考了参考列表1中的参考图片的合并候选的参考索引所指示的当前块的参考图片上的参考样本集合,其中合并候选的MV参考l参考列表1)。
[3]示例如图23所示。
f)在一个示例中,用于双向预测的模板的参考样本(RT)是通过对参考列表0中的模板的参考样本(RT0)和参考列表1中模板的参考样本(RT1)进行相等加权平均而导出的。一个示例如下:
RT=(RT0+RT1+1)>>1
g)在一个示例中,用于双向预测的模板的参考样本(RTbi-pred)是通过对参考列表0中的模板的参考样本(RT0)和参考列表1中模板的参考样本(RT1)进行加权平均而导出的。一个示例如下:
RT=((2N-w)*RT0+w*RT1+2N-1)>>N,例如,N=3。
h)在一个示例中,诸如(8-w)的参考列表0中的参考模板的权重和诸如(w)之类的参考列表1中的参考样板的权重可以由合并候选的BCW索引决定。
[1]在一个示例中,BCW索引等于0,w被设置为等于-2。
[2]在一个示例中,BCW索引等于1,w被设置为等于3。
[3]在一个示例中,BCW索引等于2,w被设置为等于4。
[4]在一个示例中,BCW索引等于3,w被设置为等于5。
[5]在一个示例中,BCW索引等于4,w被设置为等于10。
i)在一个示例中,如果合并候选的本地亮度补偿(LIC)标志为真,则使用LIC方法导出模板的参考样本。
(ii)可以基于T和RT的绝对差之和(SAD)来计算成本。
a)备选地,可以基于T和RT的绝对变换差和(SATD)来计算成本。
b)备选地,可以基于T和RT的平方差之和(SSD)来计算成本。
c)备选地,可以基于加权SAD/加权SATD/加权SSD来计算成本。
(iii)除了在(ii)中计算的SAD之外,成本还可以考虑RT和与T相邻或不相邻的重构样本之间的连续性(Boundary_SAD)。例如,考虑与T相邻或不相邻的左侧和/或上方的重构样本。
a)在一个示例中,可以基于SAD和Boundary_SAD来计算成本。
[1]在一个示例中,成本可以被计算为(SAD+w*Boundary_SAD)。w可以是预定的、通过信号传输的或者根据解码的信息导出的。
2.是否和/或如何重排序合并候选可以依赖于合并候选的类别。
a.在一个示例中,仅相邻空域和时域合并候选可以被重排序。
b.在一个示例中,仅相邻的空域合并候选、STMVP合并候选和时域合并候选可以被重排序。
c.在一个示例中,仅相邻空域、STMVP、时域和非相邻的空域合并候选可以被重排序。
d.在一个示例中,仅相邻空域、STMVP、时域、非相邻空域和HMVP合并候选可以被重排序。
e.在一个示例中,仅相邻空域、STMVP、时域、非相邻空域的HMVP和成对平均合并候选可以被重排序。
f.在一个示例中,仅相邻空域、时域、HMVP和成对平均合并候选可以被重排序。
g.在一个示例中,仅相邻空域、时域和HMVP合并候选可以被重排序。
h.在一个示例中,仅相邻的空域合并候选可以被重排序。
i.在一个示例中,仅第一个子组可以被重排序。
j.在一个示例中,最后的子组无法重排序。
k.在一个示例中,仅前N个合并候选可以被重排序。
i.在一个示例中,N被设置为等于5。
l.在一个示例中,针对不被重排序的候选,它们将根据初始顺序排列在合并候选列表中。
m.在一个示例中,未被重排序的候选可以被置于待重排序的候选之后。
n.在一个示例中,未被重排序的候选可以被置于待重排序的候选之前。
o.在一个例子中,上面的一些项目(a~k)的组合可以被重排序。
p.不同的子组可以单独重排序。
q.不同子组中的两个候选不能进行比较和/或重排序。
r.如果第一子组在第二子组之前,则在重排序之后,第一子组中的第一候选需要置于第二子组中的第二候选之前。
3.是否和/或如何重排序合并候选可以依赖于编解码模式。
a.在一个示例中,如果编解码模式是常规合并模式,则可以对合并候选进行重排序。
b.在一个示例中,如果编解码模式是MMVD,则不重排序用于导出基础合并候选的合并候选。
i.备选地,针对MMVD模式和其他合并模式,重排序方法可以不同。
c.在一个示例中,如果编解码模式是CIIP,则用于与帧内预测组合的合并候选是基于重排序的合并候选的。
i.备选地,针对CIIP模式和其他合并模式,重排序方法可以不同。
d.在一个示例中,如果编解码模式是GPM,则用于导出单向预测候选列表的合并候选不被重排序。
i.备选地,针对GPM模式和其他合并模式,重排序方法可以不同。
e.在一个示例中,如果编解码模式是三角划分模式,则不重排序用于导出单向预测候选列表的合并候选。
i.备选地,针对三角模式和其他合并模式,重排序方法可以不同。
f.在一个示例中,如果编解码模式是基于子块的合并模式,则对基于部分或全部子块的候选合并进行重排序。
i.备选地,针对基于子块的合并模式和其他合并模式,重排序方法可以不同。
ii.在一个示例中,不对基于单向预测子块的合并候选进行重排序。
iii.在一个示例中,SbTMVP候选不被重排序。
iv.在一个示例中,所构建的仿射候选不被重排序。
v.在一个示例中,零填充仿射候选不被重排序。
4.是否和/或如何重排序合并候选可以依赖于相邻空域和/或STMVP和/或时域合并候选的可用数目。
5.合并候选是否需要重排序可以依赖于解码的信息(例如CU的宽度和/或高度)。
a.在一个示例中,如果高度大于或等于M,宽度大于或等于N,并且宽度*高度大于或等于R,则可以对合并候选进行重排序。
i.在一个示例中,M、N和R被设置为等于8、8和128。
ii.在一个示例中,M、N和R被设置为等于16、16和512。
b.在一个示例中,如果高度大于或等于M并且宽度大于或等于N,则可以对合并候选进行重排序。
i.在一个示例中,M和N被设置为等于8和8。
ii.在一个示例中,M和N被设置为等于16和16。
6.子组大小可以是自适应的。
a.在一个示例中,根据表示为N的相邻空域和/或STMVP和/或时域合并候选的可用数目来决定子组大小。
i.在一个示例中,如果N小于M并且大于Q,则子组大小被设置为N;
ii.在一个示例中,如果N小于或等于Q,则不执行重排序;
iii.在一个示例中,如果N大于或等于M,则子组大小被设置为M。
iv.在一个示例中,M和Q分别被设置为等于5和1。
(i)备选地,M和/或Q可以是预定的,通过信号传输的,或者根据解码的信息导出的。
b.在一个示例中,根据表示为N的相邻空域和时域合并候选的可用数目来决定子组大小。
i.在一个示例中,如果N小于M并且大于Q,则子组大小被设置为N;
ii.在一个示例中,如果N小于或等于Q,则不执行重排序;iii.在一个示例中,如果N大于或等于M,则子组大小被设置为M。
iv.在一个示例中,M和Q分别被设置为等于5和1。
7.模板形状可以是自适应的。
a.在一个示例中,模板可以仅包括留给当前块的相邻样本。
b.在一个示例中,模板可以仅包括当前块上方的相邻样本。
c.在一个示例中,根据CU形状来选择模板形状。
d.在一个示例中,根据CU高度来选择左侧模板的宽度。
i.例如,如果H<=M,则左模板大小为w1xH;否则,左侧模板大小为w2xH。
e.在一个示例中,M、w1和w2分别被设置为等于8、1和2。
f.在一个示例中,根据CU宽度来选择上述模板的高度。
i.例如,如果W<=N,则上述模板大小为Wxh1;否则,上述模板大小为Wxh2。
(i)在一个示例中,N、h1和h2分别被设置为等于8、1和2。
g.在一个示例中,根据CU宽度来选择左模板的宽度。
i.例如,如果W<=N,则左模板大小为w1xH;否则,左侧模板大小为w2xH。
(i)在一个示例中,N、w1和w2分别被设置为等于8、1和2。
h.在一个示例中,根据CU高度来选择上述模板的高度。
i.例如,如果H<=M,则上述模板大小为Wxh1;否则,上述模板大小为Wxh2。
(i)在一个示例中,M、h1和h2分别被设置为等于8、1和2。
i.在一个示例中,模板的样本和模板样本的参考样本可以在用于计算成本之前进行二次采样或下采样。
i.是否进行和/或如何进行二次采样可以依赖于CU尺寸。
ii.在一个示例中,不对CU的短边执行二次采样。
8.在以上示例中,合并候选是包括在最终合并候选列表中的一个候选(例如,在修剪之后)。
a.备选地,合并候选是从给定的空域或时域块或HMVP表导出的一个候选,或者以其他方式导出,即使它可以不包括在最终合并候选列表中。
9.模板可以包括特定颜色成分的样本。
a.在一个示例中,模板仅包括亮度分量的样本。
10.是否应用自适应合并候选列表重排序可以依赖于在
VPS/SPS/PPS/序列头/图片头/条带头/CTU/CU中通过信号传输的消息。它也可以是基于信号的区域。例如,将图片均匀地或不均匀地分为CTU/CU的组,并且为每个组编解码一个标志以指示是否应用合并候选列表重排序。
2.11自适应运动候选列表
3.可以根据一个或一些准则自适应地重排列块的运动候选列表中的运动候选,以导出重排序的运动候选列表,并且根据重排序的运动候选列表对块进行编码/解码。
a.可以根据一个或一些准则自适应地重排列不是常规合并候选列表的块的运动候选列表中的运动候选,以导出重排序的运动候选列表。
b.在一个示例中,是否和/或如何对运动候选进行重排序可以依赖于编解码模式(例如,仿射合并、仿射AMVP、规则合并、常规AMVP、GPM、TPM、MMVD、TM合并、CIIP、GMVD、仿射MMVD)。
c.在一个示例中,是否和/或如何对运动候选进行重排序可以依赖于运动候选的类别(例如,空域、时域、STMVP、HMVP、成对、SbTMVP、构建仿射、继承仿射)。
d.在一个示例中,运动候选列表可以是AMVP候选列表。
e.在一个示例中,运动候选列表可以是合并候选列表。
f.在一个示例中,运动候选列表可以是仿射合并候选列表。
g.在一个示例中,运动候选列表可以是基于子块的合并候选列表。
h.在一个示例中,运动候选列表可以是GPM合并候选列表。
i.在一个示例中,运动候选列表可以是TPM合并候选列表。
j.在一个示例中,运动候选列表可以是TM合并候选列表。
k.在一个示例中,运动候选列表可以是MMVD编解码块的候选列表。
l.在一个示例中,运动候选列表可以是DMVR编解码块的候选列表。
4.如何自适应地重排列运动候选列表中的运动候选可以依赖于解码的信息,例如,运动候选的类别、运动候选列表的类别、编解码工具。
a.在一个示例中,针对不同的运动候选列表,可以使用不同的标准来重排列运动候选列表。
i.在一个示例中,标准可以包括如何选择模板。
ii.在一个示例中,标准可以包括如何计算模板成本。
iii.在一个示例中,标准可以包括候选列表中有多少候选和/或有多少子组需要重排序。
b.在一个示例中,首先自适应地重排列运动候选列表中的运动候选以构建完全重排列的候选列表或部分重排列的候选列表,然后从重排列的候选列表中取回由至少一个索引指示的至少一个运动候选以导出将由当前块使用的最终运动信息。
c.在一个示例中,首先自适应地重排列细化之前的运动候选(例如,对TM编解码块使用TM;对MMVD编解码块添加MVD),以构建完全重排列的候选列表或部分重排列的候选列表。然后,从重排列的候选列表中取回由至少一个索引指示的至少一个运动候选,并且将细化(例如,对TM编码的块使用TM;对MMVD编码的块添加MVD)应用于所取回的运动候选,以导出当前块的最终运动信息。
d.在一个示例中,对运动候选列表中的至少一个运动候选应用细化(例如,对TM编解码块使用TM;对MMVD编解码块添加MVD),然后自适应地重排列它们以构建完全重排列的候选列表或部分重排列的候选列表,然后从重排列的候选列表中取回由至少一个索引指示的至少一个运动候选,以在没有针对当前块的任何进一步细化的情况下导出最终的运动信息。
5.在一个示例中,可以基于候选重排序来生成新的MERGE/AMVP运动候选。
i.例如,可以分别对候选的L0运动和L1运动进行重排序。
ii.例如,可以通过组合来自重排序的L0运动的一个和来自重排序L1运动的另一个来构建新的双向预测合并候选。
iii.例如,可以通过重排序的L0或L1运动来生成新的单向预测合并候选。
2.12自适应运动候选列表
针对子块运动预测,如果子块大小是Wsub*Hsub,上述模板的高度是Ht,左模板的宽度是Wt,则上述模板可以被视为具有Wsub*Ht大小的若干子模板的构成,左模板可以被视为具有Wt*Hsub大小的若干个子模板的构成。在以上述类似的方式导出每个子模板的参考样本之后,导出该模板的参考样本。两个示例如图24和图25所示。图24示出了显示使用当前块的子块的运动信息的具有子块运动的块的模板和模板的参考样本的示例图2400。图25示出了显示使用每个子模板的运动信息的具有子块运动的块的模板和模板的参考样本的示例图2500;
需要注意的是,以下提及的术语不限于现有标准中定义的特定术语。编解码工具的任何变化也适用。例如,术语“GPM”用于表示导出两组运动信息并使用导出的信息和划分样式来获得最终预测的任何编解码工具,例如,TPM也被视为GPM。
注意,所提出的方法可以被应用于帧间编解码块(例如,平移运动)、仿射编解码块或IBC编解码块的合并候选列表构建过程;或者其他运动候选列表构建过程(例如正常AMVP列表、仿射AMVP列表和IBC AMVP列表)。
W和H是当前块(例如亮度块)的宽度和高度。
1.在一个示例中,如果编解码模式是TM合并,则可以对部分或全部TM合并候选进行重排序。
a.在一个示例中,如果编解码模式是TM合并,则可以在TM细化过程之前对部分或全部原始TM合并候选进行重排序。
b.备选地,如果编解码模式是TM合并,则可以在TM细化处理之后对部分或全部细化的TM合并候选进行重排序。
c.备选地,如果编解码模式是TM合并,则TM合并候选可以不被重排序。
d.备选地,针对TM合并模式和其他合并模式,重排序方法可以不同。
2.在一个示例中,如果编解码模式是基于子块的合并模式,则可以对基于部分或全部子块的候选合并进行重排序。
a.备选地,针对基于子块的合并模式和其他合并模式,重排序方法可以不同。
b.在一个示例中,模板可以被分为子模板。每个子模板可以具有个体运动信息。
i.在一个示例中,可以基于每个子模板的成本来导出用于重排序候选的成本。例如,用于重排序候选的成本可以计算为所有子模板的成本之和。例如,子模板的成本可以计算为SAD、SATD、SSD或子模板与其对应的参考子模板之间的任何其他失真测量。
c.在一个示例中,为了导出子模板的参考样本,可以使用当前块的第一行和第一列中的子块的运动信息。
i.在一个示例中,子模板的运动信息可以从当前块中的其相邻子块导出(例如,复制)。示例如图24所示。
d.在一个示例中,为了导出子模板的参考样本,可以在不参考当前块中的子块的运动信息的情况下导出该子模板的运动信息。示例如图25所示。
i.在一个示例中,根据当前块的仿射模型来计算每个子模板的运动信息。
(i)在一个示例中,包含根据当前块的仿射模型计算的子模板的每个子块的中心样本的运动矢量被视为子模板的运动矢量。
(ii)在一个示例中,根据当前块的仿射模型计算的每个子模板的中心样本的运动矢量被视为子模板的运动矢量。
(iii)针对4参数仿射运动模型,块中采样位置(x,y)处的运动矢量导出为:
(iv)针对6参数仿射运动模型,块中采样位置(x,y)处的运动矢量导出为:
(v)针对(iii)和(iv),当前块的左上角、右上角和左下角的坐标是(0,0)、(W,0)和(0,H),当前块的左上、右上和左下角的运动矢量是(mv0x,mv0y)、(mv1x,mv1y)和(mv2x,mv2y)。
(vi)在一个示例中,可以将上述等式中的坐标(x,y)被设置为等于模板中的位置或子模板的位置。例如,坐标(x,y)可以被设置为等于子模板的中心位置。
e.在一个示例中,该方案可以被应用于仿射合并候选。
f.在一个示例中,该方案可以被应用于仿射AMVP候选。
g.在一个示例中,该方案可以被应用于SbTMVP合并候选。
h.在一个示例中,该方案可以被应用于GPM合并候选。
i.在一个示例中,该方案可以被应用于TPM合并候选。
j.在一个例子中,该方案可以被应用于TM细化合并候选。
k.在一个示例中,该方案可以被应用于DMVR细化合并候选。
l.在一个示例中,该方案可以被应用于MULTI_PASS_DMVR细化合并候选。
3.在一个示例中,如果编解码模式是MMVD,则用于导出基础合并候选的合并候选可以被重排序。
a.在一个示例中,可以在合并候选由通过信号传输或导出的MVD细化之前,对合并候选应用重排序过程。
b.例如,针对MMVD模式和其他合并模式,重排序方法可以不同。
4.在一个示例中,如果编解码模式是MMVD,则可以对MMVD细化之后的合并候选进行重排序。
a.在一个示例中,可以在合并候选由通过信号传输或导出的MVD细化之后,对合并候选应用重排序过程。
b.例如,针对MMVD模式和其他合并模式,重排序方法可以不同。
5.在一个示例中,如果编解码模式是仿射MMVD,则可以对导出基础合并候选的合并候选进行重排序。
a.在一个示例中,可以在仿射合并候选被通过信号传输或导出的MVD细化之前,对合并候选应用重排序过程。
b.例如,针对仿射MMVD模式和其他合并模式,重排序方法可以不同。
6.在一个示例中,如果编解码模式是仿射MMVD,则可以对仿射MMVD细化之后的合并候选进行重排序。
a.在一个示例中,可以在合并候选由通过信号传输或导出的MVD细化之后,对仿射合并候选应用重排序过程。
b.例如,针对仿射MMVD模式和其他合并模式,重排序方法可以不同。
7.在一个示例中,如果编解码模式是GMVD,则用于导出基础合并候选的合并候选可以被重排序。
a.在一个示例中,可以在合并候选由通过信号传输或导出的MVD细化之前,对合并候选应用重排序过程。
b.例如,针对GMVD模式和其他合并模式,重排序方法可以不同。
8.在一个示例中,如果编解码模式是GMVD,则可以对GMVD细化之后的合并候选进行重排序。
a.在一个示例中,可以在合并候选由通过信号传输或导出的MVD细化之后,对合并候选应用重排序过程。
b.例如,针对GMVD模式和其他合并模式,重排序方法可以不同。
9.在一个示例中,如果编解码模式是GPM,则可以对合并候选进行重排序。
a.在一个示例中,在合并候选被用于导出每个划分的GPM候选列表(也称为GPM的单向预测候选列表)之前,可以对原始合并候选应用重排序过程。
b.在一个示例中,如果编解码模式是GPM,则可以对单向预测候选列表中的合并候选进行重排序。
c.在一个示例中,可以基于重排序来构建GPM单向预测候选列表。
i.在一个示例中,具有双向预测的候选(也称为双向预测候选)可以被分离为两个单向预测候选。
(i)如果原始合并候选的数目是M,则最多可以从它们中分离出2M个单向预测候选。
ii.在一个示例中,从双向预测候选分离的单向预测候选可以被放入初始单向预测候选列表中。
iii.在一个示例中,可以利用模板匹配成本对初始单向预测候选列表中的候选进行重排序。
iv.在一个示例中,具有较小模板匹配成本的前N个单向预测候选可以用作最终GPM单向预测候选。例如,N等于M。
d.在一个示例中,在导出GPM单向预测候选列表之后,构建划分0和划分1的组合双向预测列表,然后对双向预测列表进行重排序。
i.在一个示例中,如果GPM单向预测候选的数目是M,则组合的双向预测候选的数目是M*(M-1)。
e.备选地,针对GPM模式和其他合并模式,重排序方法可以不同。
2.13自适应运动候选列表
需要注意的是,以下提及的术语不限于现有标准中定义的特定术语。编解码工具的任何变化也适用。例如,术语“GPM”用于表示导出两组运动信息并使用导出的信息和划分样式来获得最终预测的任何编解码工具,例如,TPM也被视为GPM。
注意,所提出的方法可以被应用于帧间编解码块(例如,平移运动)、仿射编解码块或IBC编解码块的合并候选列表构建过程;或者其他运动候选列表构建过程(例如正常AMVP列表、仿射AMVP列表和IBC AMVP列表)。
W和H是当前块(例如亮度块)的宽度和高度。
1.用于双向预测的模板或子模板的参考样本(RT)是通过对参考列表0中的模板或子模板的参考样本(RT0)和参考列表1中的模板或子模板的参考样本(RT1)进行相等地加权平均得出的。一个示例如下:
RT(x,y)=(RT0(x,y)+RT1(x,y)+1)>>1
2.用于双向预测的模板或子模板的参考样本(RT)是通过对参考列表0中的模板或子模板的参考样本(RT0)和参考列表1中的模板或子模板的参考样本(RT1)进行加权平均得出的。
a)一个示例如下:
RT(x,y)=((2N-w)*RT0(x,y)+w*RT1(x,y)+
2N-1)>>,例如,N=3.
b)权重可以由BCW索引确定,也可以被即时导出或预定的或者由加权预测中使用的权重来确定。
c)在一个示例中,参考列表0中诸如(8-w)的参考模板的权重和参考列表1中诸如(w)的参考模板的权重可能由合并候选的BCW索引决定。
i.在一个示例中,BCW索引等于0,w被设置为-2。
ii.在一个示例中,BCW索引等于1,w被设置为3。
iii.在一个示例中,BCW索引等于2,w被设置为4。
iv.在一个示例中,BCW索引等于3,w被设置为5。
v.在一个示例中,BCW索引等于4,w被设置为-10。
3.提出了利用LIC方法导出模板的参考样本。
a)在一个示例中,左侧模板和上方模板的LIC参数与当前块的LIC参数相同。
b)在一个示例中,左侧模板的LIC参数被导出为当前块的LIC参数,其使用其原始运动矢量加上运动矢量偏移量(-Wt,0)作为当前块的运动矢量。
c)在一个示例中,上方模板的LIC参数被导出为当前块的LIC参数,其使用其原始运动矢量加上运动矢量偏移量(0,-Ht)作为当前块的运动矢量。
d)备选地或附加地,如果合并候选的本地照明补偿(LIC)标志为真,则可以应用上述项目符号。
4.提出了利用OBMC方法导出模板或子模板的参考样本。在下面的讨论中,“模板”可能指模板或子模板。
a)在一个示例中,为了导出上方模板的参考样本,使用当前块的第一行中的子块及其上方相邻的邻近子块的运动信息。所有子模板的参考样本构成上方模板的参考样本。一个示例在图26中示出。图26示出了显示模板与具有OBMC的块的模板的参考样本的示例图2600。
b)在一个示例中,为了导出左侧模板的参考样本,使用当前块第一列中的子块及其左侧相邻的邻近子块的运动信息。并且所有子模板的参考样本构成左测模板的参考样本。一个示例如图26所示。
c)在一个示例中,子块尺寸为4x4。
d)基于邻近子块的运动矢量的子模板的参考样本表示为PN,其中N表示邻近的上方和左侧子块的索引,基于当前块的子块的运动矢量的子模板的参考样本表示为PC。针对基于垂直(水平)相邻子块的运动矢量生成的PN,PN的同一行(列)中的样本以相同的加权因子添加到PC
i.子模板的参考样本(P)可以导出为P=WN*PN+WC*PC
ii.在一个示例中,如果上方模板的高度或左侧模板的宽度大于或等于4,则权重因子{1/4、1/8、1/16、1/32}用于PN的{第一、第二、第三、第四}行(列),并且权重因子{3/4、7/8、15/16、31/32}用于PC的{第一、第二、第三、第四}行(列)。
iii.在一个示例中,如果上方模板的高度或左侧模板的宽度大于或等于2,则加权因子{1/4,1/8}用于PN的{第一、第二}行(列),加权因子{3/4,7/8}用于PC的{第一、第二}行(列)。
iv.在一个示例中,如果上方模板的高度或左侧模板的宽度大于或等于1,则加权因子{1/4}用于PN的第一行(列),加权因子{3/4}用于PC的第一行(列)。
e)如果在启用OBMC的情况下分配了合并候选,则可以应用上述项目符号。
5.在一个示例中,如果合并候选使用多假设预测,则可以使用多假设预测方法导出模板的参考样本。
6.模板可以包括(多个)特定颜色分量的样本。
a)在一个示例中,模板仅包括亮度分量的样本。
b)备选地,模板仅包括任何分量的样本,例如Cb/Cr/R/G/B。
7.是否和/或如何重排序运动候选可以依赖于运动候选的类别。
a.在一个示例中,仅相邻空域和时域运动候选可以被重排序。
b.在一个示例中,仅相邻空域、STMVP和时域运动候选可以被重排序。
c.在一个示例中,仅相邻空域、STMVP、时域和非相邻空域运动候选可以被重排序。
d.在一个示例中,仅相邻空域、STMVP、时域、非相邻空域和HMVP运动候选可以被重排序。
e.在一个示例中,仅相邻空域、STMVP、时域、非相邻空域的HMVP和成对平均运动候选可以被重排序。
f.在一个示例中,仅相邻空域、时域、HMVP和成对平均运动候选可以被重排序。
g.在一个示例中,仅相邻空域、时域和HMVP运动候选可以被重排序。
h.在一个示例中,仅相邻空域运动候选可以被重排序。
i.在一个示例中,基于单向预测子块的运动候选不被重排序。
j.在一个示例中,SbTMVP候选不被重排序。
k.在一个示例中,不对继承的仿射运动候选进行重排序。
l.在一个示例中,所构建的仿射运动候选不被重排序。
m.在一个示例中,不对零填充仿射运动候选进行重排序。
n.在一个示例中,仅前N个运动候选可以被重排序。
i.在一个示例中,N被设置为等于5。
8.在一个示例中,运动候选可以被分为多个子组。是否和/或如何对运动候选进行重排序可以依赖于运动候选的子组。
a.在一个示例中,仅第一个子组可以被重排序。
b.在一个示例中,最后的子组无法重排序。
c.在一个示例中,最后的子组无法重排序。但如果最后的子组也是第一个子组,则可以对其进行重排序。
d.不同的子组可以单独重排序。
e.不同子组中的两个候选不能进行比较和/或重排序。
f.如果第一子组在第二子组之前,则在重排序之后,第一子组中的第一候选需要置于第二子组中的第二候选之前。
9.在一个示例中,可以以指定的方式处理未包括在重排序过程中的运动候选。
a.在一个示例中,针对不被重排序的候选,它们将根据初始顺序排列在合并候选列表中。
b.在一个示例中,未被重排序的候选可以被置于待重排序的候选之后。
c.在一个示例中,未被重排序的候选可以被置于待重排序的候选之前。
10.是否应用自适应合并候选列表重排序可以依赖于在VPS/SPS/PPS/序列头/图片头/条带头/CTU/CU中通过信号传输的消息。它也可以是基于信号的区域。例如,将图片均匀地或不均匀地分为CTU/CU的组,并且为每个组编解码一个标志以指示是否应用合并候选列表重排序。
2.14在图像/视频编解码中的编解码数据细化中使用的成本函数术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编码块(CB)、CU、PU、TU、PB、TB或包括多个样本/像素的视频处理单元,块可以是矩形或非矩形。
在本公开中,短语“运动候选”可以表示由合并候选索引指示的常规/扩展合并列表中的合并运动候选,或者由AMVP候选索引指示的常规/扩展AMVP列表中的AMVP运动候选,或者一个AMVP运动候选,或者一个合并运动候选。
在本公开中,如果候选的运动信息根据从编码器发出的信号或在解码器处导出的信息被修改,则运动候选被称为“细化”。例如,运动矢量可以通过DMVR、FRUC、TM合并、TMAMVP、TM GPM、TM CIIP、TM仿射、MMVD、GMVD、仿射MMVD、BDOF等来细化。
在本公开中,短语“编解码数据细化”可以表示细化过程,以便导出或细化针对块的信号/解码/导出的预测模式、预测方向或信号/解码/导出的运动信息、预测和/或重构样本。在一个示例中,细化过程可以包括运动候选重新排序。
在以下讨论中,“基于模板编解码的”块可以指在编码/解码过程中使用基于模板匹配的方法来导出或细化编码信息的块,诸如基于模板匹配的运动导出、基于模板匹配的运动列表重构、LIC、符号预测、基于模板匹配的块矢量(例如,在IBC模式中使用)导出、DIMD、基于模板匹配的非帧间(例如,帧内)预测等。基于模板编解码的方法可以与任何其它编解码工具结合,诸如MMVD、CIIP、GPM、FRUC、仿射、BDOF、DMVR、OBMC等。在另一示例中,“基于模板编解码的”块也可以指代基于某个规则使用(相邻或非相邻)邻近重构样本导出或者细化其解码信息的块,诸如2.27中的DIMD方法以及2.29中的TIMD方法。
在下面的讨论中,“基于双边编解码的”块可以指在编码/解码过程中使用基于双边匹配的方法来导出或细化编码信息的块,例如基于双边匹配的运动导出、基于双边匹配的运动列表重构等。基于双边编解码的方法可以与任何其他编解码工具结合,例如MMVD、CIIP、GPM、FRUC、仿射、DMVR等。
W和H是当前块(例如亮度块)的宽度和高度。W*H是当前块(例如亮度块)的大小
在下面的讨论中,Shift(x,s)被定义为
Shift(x,s)=(x+offset)>>s,其中偏移量(offset)是整数,例如offset=0或偏offset=1<<(s-1)或offset=(1<<(s-1))-1。
在另一示例中,offset依赖于x。例如,offset=(x<0?(1<<(s-1)):((1<<(s-1)–1)。
1.除了误差测量外,提出了在成本计算过程中增加常规项。
a)在一个示例中,成本被定义为:E+W*RI,其中E表示误差函数的输出,W是被施加到由RI表示的常规项的权重。
i.在一个示例中,为了处理基于模板编解码的块/基于双边编解码的块,成本函数被设置为:E+W*RI,其中,E可以是SAD/MRSAD/SATD或者其他,RI是真的运动矢量/运动矢量差异的估计位,W是权重,例如,其可以依赖于QP/时域层等。
ii.备选地,成本可以定义为:w0*E+W1*RI,其中E表示误差函数的输出,W1是被施加到由RI表示的常规项的权重,w0是被施加到误差函数的输出的权重。
(i)备选地,另外,W1可以被设置为0。
b)在一个示例中,常规项可以被乘以权重率。
i.在一个示例中,权重是即时得出的。
ii.在一个示例中,权重被设置为在完整RDO过程中使用的lambda
iii.在一个示例中,权重被设置为完整RDO过程中使用的lambda的平方根。
c)在一个示例中,成本被计算为E+Shift(W*RI,s),其中s和W是整数。
i.备选地,成本被计算为Shift((E<<s)+W*RI,s),其中s和W是整数。
2.提出了使用不同于SAD/MR-SAD(均值移除的绝对差和)的误差函数来处理基于模板编解码的块/基于双边编解码的块。
a)在一个示例中,误差函数可以是
i.SATD
ii.MR-SATD
iii.梯度信息
iv.SSE/SSD
v.MR-SSE/MR-SSD
vi.加权SAD/加权MR-SAD
vii.加权SATD/加权MR-SATD
viii.加权SSD/加权MR-SSD
ix.加权SSE/加权MR-SSE
b)备选地,另外,提出了在诸如上述误差函数和SAD/MR-
SAD等不同成本函数中自适应选择误差函数的方法。
i.选择可以即时确定。
3.当使用基于MR-X(例如,X是SATD、SAD、SSE)的误差函数(例如,MR-SAD/MR-SATD等等)时,可以进一步应用以下内容:
a)在一个示例中,可以在考虑要比较的块中的所有样本的情况下计算均值。
b)在一个示例中,可以使用要考虑比较的块中的部分样本来计算均值。
c)在一个示例中,均值和X函数可以依赖于块中的相同样本。
i.在一个示例中,可以使用块中的所有样本计算均值和X函数。
ii.在一个示例中,可以使用块中的部分样本来计算均值和X函数。
d)在一个示例中,均值和X函数可以依赖于块中的至少一个不同样本。
i.在一个示例中,均值可以使用所有样本计算,而X函数可以依赖于块中的部分样本。
ii.在一个示例中,均值可以使用部分样本计算,而X函数可以依赖于块中的所有样本。
4.模板/双边匹配成本可以通过将成本因子应用于误差成本函数来计算。
a)在一个示例中,提出了在基于模板/双边匹配的重新排序过程期间偏向前方的运动候选。
i.在一个示例中,第i个位置中的运动候选被分配给第(i+1)个位置中的运动候选的成本因子更小的成本因子。
ii.在一个示例中,第i组中的运动候选(例如涉及M个运动候选)被分配给第(i+1)个组中的运动候选(例如涉及N个运动候选)的成本因子更小的成本因子。
(i)在一个示例中,M可以等于N。例如,M=N=2。
(ii)在一个示例中,M可能不等于N。例如,M=2,N=3。
b)在一个示例中,提出了在基于模板/双边匹配的细化过程中倾向更接近原始MV的搜索MV。
i.在一个示例中,每个搜索区域被分配给成本因子,其可以由搜索区域中的每个搜索MV与起始MV之间的距离(例如以整数像素精度MV的增量)来确定。
ii.在一个示例中,每个搜索区域被分配给成本因子,其可以由搜索区域中的中心搜索MV和起始MV之间的距离(例如以整数像素精度MV的增量)来确定。
iii.在一个示例中,每个搜索MV被分配给成本因子,其可以由每个搜索MV和起始MV之间的距离(例如以整数像素精度MV的增量)确定。
5.上述方法可以被应用于任何编解码数据细化过程,例如,针对基于模板编解码的块,针对基于双边编解码的块(例如VVC中的DMVR)。
6.针对不同的模板匹配细化方法,模板匹配成本测量可能不同。
a)在一个示例中,模板匹配细化方法可以是基于模板匹配的运动候选重新排序。
b)在一个示例中,模板匹配细化方法可以是基于模板匹配的运动导出。
i.在一个示例中,细化方法可以TM AMVP、TM合并和/或FRUC。
c)在一个示例中,模板匹配细化方法可以是基于模板匹配的运动细化。
ii.在一个实例中,细化方法可以是TM GPM、TM CIIP和/或TM仿射。
d)在一个示例中,模板匹配细化方法可以是基于模板匹配的块矢量导出。
e)在一个示例中,模板匹配细化方法可以是基于模板匹配的帧内模式导出。
iii.在一个示例中,细化方法可以是DIMD和/或TIMD。
f)在一个示例中,可以基于当前模板与参考模板之间的绝对差和(SAD)来计算模板匹配成本测量。
g)在一个示例中,可以基于当前模板与参考模板之间的均值移除的SAD来计算模板匹配成本测量。
h)在一个示例中,SAD与均值移除SAD(MR-SAD)可以根据当前块的尺寸被选择性地利用。
i.在一个实例中,均值移除SAD用于尺寸大于M的块,SAD用于尺寸小于或等于M的块。
(i)在一个示例中,M是64。
i)在一个示例中,SAD和均值移除SAD(MR-SAD)可以根据当前块的LIC标志被选择性地利用。
i.在一个示例中,如果当前块的LIC标志为假,则模板匹配成本测量可以是SAD。
ii.在一个示例中,如果当前块的LIC标志为真,则模板匹配成本测量可以是MR-SAD。
j)在一个示例中,可以基于当前模板与参考模板之间的绝对变换差和(SATD)来计算模板匹配成本测量。
k)在一个示例中,可以基于当前模板与参考模板之间的均值移除SATD来计算模板匹配成本测量。
l)在一个示例中,SATD与均值移除SATD(MR-SATD)可以根据当前块的尺寸被选择性地利用。
i.在一个示例中,均值移除SATD用于尺寸大于M的块,并且SATD用于尺寸小于或等于M的块。
(i)在一个示例中,M是64。
m)在一个示例中,SATD与均值移除SATD(MR-SATD)可以根据当前块的LIC标志被选择性地利用。
i.在一个示例中,如果当前块的LIC标志为假,则模板匹配成本测量可以是SATD。
ii.在一个示例中,如果当前块的LIC标志为真,则模板匹配成本测量可以MR-SATD。
n)在一个示例中,可以基于当前模板与参考模板之间的平方差总和(SSD)来计算模板匹配成本测量。
o)在一个示例中,可以基于当前模板与参考模板之间的均值移除SSD来计算模板匹配成本测量。
p)在一个示例中,SSD与均值移除SSD(MR-SSD)可以根据当前块的尺寸被选择性地利用。
i.在一个实例中,均值移除SSD用于尺寸大于M的块,SSD用于尺寸小于或等于M的块。
(i)在一个示例中,M是64。
q)在一个示例中,模板匹配成本测量可以是当前模板与参考模板之间的加权SAD/加权MR-SAD/选择性加权MR-SAD和SAD/加权SATD/加权MR-SATD/选择性加权MR-SATD和SATD/加权SSD/加权MR-SSD/选择性加权MR-SSD和SSD。
i.在一个示例中,加权意味着在计算当前模板与参考模板之间的失真时,基于其在模板块中的行和列索引对每个样本应用不同的权重。
ii.在一个示例中,加权意味着在计算当前模板与参考模板之间的失真时,基于其在模板块中的位置对每个样本应用不同的权重。
iii.在一个示例中,加权意味着在计算当前模板与参考模板之间的失真时,根据每个样本到当前块的距离对其应用不同的权重。
r)在一个示例中,模板匹配成本可以被计算为如下形式:
tplCost=w1*mvDistanceCost+w2*distortionCost。
i.在一个示例中,distortionCost可以是当前模板与参考模板之间的加权SAD/加权MR-SAD/加权SATD/加权MR-SATD/加权SSD/加权MR-SSD/SAD/MR-SAD/SATD/MR-SATD/SSD/MR-SSD。
ii.在一个示例中,mvDistanceCost可以是在水平方向与垂直方向的搜索点与起始点的绝对mv差总和。
iii.在一个示例中,w1和w2可以是预定的、或者用信号传输的或者根据解码信息导出的。
(i)在一个示例中,w1是被设置为4的加权因子,w2是被设置为1的加权因子
s)除了(f)中计算的SAD外,成本还可以考虑参考模板同与当前模板相邻邻近或非相邻邻近的重构样本之间的连续性(Boundary_SAD)。例如,考虑邻近当前样本的左侧和/或上方相邻或非相邻的重构样本。
i.在一个示例中,成本可以基于SAD与Boundary_SAD来计算
(i)在一个示例中,成本可以倍计算为(SAD+w*Boundary_SAD)。w可以是预定的、或信号传输的或者根据解码信息得出的。
7.针对不同的双边匹配细化方法,双边匹配成本测量可以不同。
a)在一个示例中,双边匹配细化方法可以是基于双边匹配的运动候选重新排序。
b)在一个示例中,双边匹配细化方法可以是基于双边匹配的运动导出。
i.在一个示例中,细化方法可以是BM合并和/或FRUC。
c)在一个示例中,双边匹配细化方法可以是基于双边匹配的运动细化。
i.在一个实例中,细化方法可以是BM GPM、BM CIIP和/或BM仿射。
d)在一个示例中,双边匹配细化方法可以是基于双边匹配的块矢量导出。
e)在一个示例中,双边匹配细化方法可以是基于双边匹配的帧内模式导出。
f)在一个示例中,双边匹配成本测量可以基于两个参考块/子块之间的绝对差和(SAD)来计算。
g)在一个示例中,双边匹配成本测量可以基于两个参考块/子块之间的均值移除SAD来计算。
h)在一个示例中,SAD与均值移除SAD(MR-SAD)可以根据当前块/子块的尺寸被选择性地利用。
i.在一个示例中,均值移除SAD用于尺寸大于M的块/子块,SAD用于尺寸小于或等于M的块/子块。
(i)在一个示例中,M是64。
i)在一个示例中,SAD与均值移除SAD(MR-SAD)可以根据当前块的LIC标志被选择性地利用。
i.在一个示例中,如果当前块的LIC标志为假,则双边匹配成本测量可以是SAD。
ii.在一个示例中,如果当前块的LIC标志为真,则双边匹配成本测量可以是MR-SAD。
j)在一个示例中,双边匹配成本测量可以基于两个参考块/子块之间的绝对变换差和(SATD)来计算。
k)在一个示例中,双边匹配成本测量可以基于两个参考块/子块之间的均值移除SATD来计算。
l)在一个示例中,SATD和均值移除SATD(MR-SATD)可以根据当前块/子块的尺寸被选择性地利用。
i.在一个示例中,均值移除SATD用于尺寸大于M的块/子块,并且SATD用于尺寸小于或等于M的块/子块。
(i)在一个示例中,M是64。
m)在一个示例中,SATD与均值移除SATD(MR-SATD)可以根据当前块的LIC标志被选择性地利用。
i.在一个示例中,如果当前块的LIC标志为假,则双边匹配成本测量可以是SATD。
ii.在一个示例中,如果当前块的LIC标志为真,则双边匹配成本测量可以是MR-SATD。
n)在一个示例中,双边匹配成本测量可以基于两个参考块/子块之间的平方差总和(SSD)来计算。
o)在一个示例中,双边匹配成本测量可以基于两个参考块/子块之间的均值移除SSD来计算。
p)在一个示例中,SSD与均值移除SSD(MR-SSD)可以根据当前块/子块的尺寸被选择性地利用。
i.在一个示例中,均值移除SSD用于尺寸大于M的块/子块,SSD用于尺寸小于或等于M的块/子块。
(i)在一个示例中,M是64。
q)在一个示例中,SSD与均值移除SSD(MR-SSD)可以根据当前块的LIC标志被选择性地利用。
i.在一个示例中,如果当前块的LIC标志为假,则双边匹配成本测量可以是SSD。
ii.在一个示例中,如果当前块的LIC标志为真,则双边匹配成本测量可以是MR-SSD。
r)在一个实例中,双边匹配成本测量可以是两个参考块/子块之间的加权SAD/加权MR-SAD/选择性加权MR-SAD和SAD/加权SATD/加权MR-SATD/选择性加权MR-SATD和SATD/加权SSD/加权MR-SSD/选择性加权MR-SSD和SSD。
i.在一个示例中,加权意味着在计算两个参考块/子块之间的失真时,基于其在参考块/子块中的行和列索引对每个样本应用不同的权重。
ii.在一个示例中,加权意味着在计算两个参考块/子块之间的失真时,基于其在参考块/子块中的位置对每个样本应用不同的权重。
iii.在一个示例中,加权意味着在计算两个参考块/子块之间的失真时,根据其到参考块/子块的中心位置的距离对每个样本应用不同的权重。
s)在一个示例中,如果MR-SAD/MR-SATD/MR-SSD被用于双边匹配成本测量,则在导出参考块/子块时可以不使用LIC。
t)在一个示例中,双边匹配成本可以计算为如下形式:
bilCost=w1*mvDistanceCost+w2*distortionCost。
i.在一个示例中,distortionCost可以是两个参考块/子块之间的加权SAD/加权MR-SAD/加权SATD/加权MR-SATD/加权SSD/加权MR-SSD/SAD/MR-SAD/SATD/MR-SATD/SSD/MR-SSD。
ii.在一个示例中,mvDistanceCost可以是水平方向和垂直方向上的搜索点与起始点的绝对mv差总和。
iii.在一个示例中,w1和w2可以是预定的、或者信号传输的、或者根据解码信息得出的。
(i)在一个示例中,w1是被设置为4的加权因子,w2是被设置为1的加权因子。
8.双边匹配成本或模板匹配成本可以基于由函数修改的预测/参考样本来计算。
a)在一个示例中,预测/参考样本可以在用于计算双边匹配成本或模板匹配成本之前被滤波。
b)在一个示例中,预测/参考样本S可以在用于计算双边匹配成本或模板匹配成本之前被修改为a*S+b。
c)在一个示例中,修改可以依赖于块的编解码模式,诸如块是LIC编解码的还是BCW编解码的。
2.15在图像/视频编解码数据细化中使用多种成本函数编解码术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编码块(CB)、CU、PU、TU、PB、TB或包括多个样本/像素的视频处理单元,块可以是矩形或非矩形。
在本公开中,短语“运动候选”可以表示由合并候选索引指示的常规/扩展合并列表中的合并运动候选,或者由AMVP候选索引指示的常规/扩展AMVP列表中的AMVP运动候选,或者一个AMVP运动候选,或者一个合并运动候选。
在本公开中,如果候选的运动信息根据从编码器发出的信号或在解码器处导出的信息被修改,则运动候选被称为“细化”。例如,运动矢量可以通过DMVR、FRUC、TM合并、TMAMVP、TM GPM、TM CIIP、TM仿射、MMVD、GMVD、仿射MMVD、BDOF等来细化。
在本公开中,短语“编解码数据细化”可以表示细化过程,以便导出或细化针对块的信号/解码/导出的预测模式、预测方向或信号/解码/导出的运动信息、预测和/或重构样本。在一个示例中,细化过程可以包括运动候选重新排序。
在以下讨论中,“基于模板编解码的”块可以指在编码/解码过程中使用基于模板匹配的方法来导出或细化编码信息的块,诸如基于模板匹配的运动导出、基于模板匹配的运动列表重构、LIC、符号预测、基于模板匹配的块矢量(例如,在IBC模式中使用)导出、DIMD、基于模板匹配的非帧间(例如,帧内)预测等。基于模板编解码的方法可以与任何其它编解码工具结合,诸如MMVD、CIIP、GPM、FRUC、仿射、BDOF、DMVR、OBMC等。在另一示例中,“基于模板编解码的”块也可以指代基于某个规则使用(相邻或非相邻)邻近重构样本导出或者细化其解码信息的块,诸如2.27中的DIMD方法以及2.29中的TIMD方法。
在下面的讨论中,“基于双边编解码的”块可以指在编码/解码过程中使用基于双边匹配的方法来导出或细化编码信息的块,例如基于双边匹配的运动导出、基于双边匹配的运动列表重构等。基于双边编解码的方法可以与任何其他编解码工具结合,例如MMVD、CIIP、GPM、FRUC、仿射、DMVR等。
W和H是当前块(例如亮度块)的宽度和高度。W*H是当前块(例如亮度块)的大小
1.成本定义可以依赖于关于在当前块的一个编解码数据细化过程中待估计的两个样本/块的误差/差异的多个误差函数(例如,失真测量方法)的输出。
a)在一个示例中,误差函数可以是:
i.SAD
ii.SATD
iii.MR-SAD
iv.MR-SATD
v.梯度信息
vi.SSE/SSD
vii.MR-SSE/MR-SSD
viii.加权SAD/加权MR-SAD
ix.加权SATD/加权MR-SATD
x.加权SSD/加权MR-SSD
xi.加权SSE/加权MR-SSE
b)在一个示例中,误差函数可以在块级别或子块级别被执行。
i.备选地,此外,针对两个子块,误差函数可以不同。ii.备选地,此外,块的估计误差的最终输出可以基于子块的输出,例如,应用于每个子块的误差函数的输出之和。
2.当成本定义依赖于多个函数的输出时,以下项可以进一步适用:
a)在一个示例中,成本函数可以依赖于多个误差函数的线性加权和。
b)在一个示例中,成本函数可以依赖于多个误差函数的非线性加权和。
c)在一个示例中,成本函数可以进一步依赖于针对边信息的估计比特。
d)在一个示例中,成本函数可以被定义为:
其中R表示针对边信息的估计比特,Wi和Ei分别表示应用于第i个误差函数的权重和第i个误差函数的输出。
3.多个细化过程可以被应用于一个块,其中至少两个以上不同的成本函数被应用于至少两个细化过程。
a)在一个示例中,可以利用第一成本函数调用第一细化过程。基于第一细化过程的输出,第二成本函数进一步被应用于第二细化过程。
b)上述方法可以被应用于基于模板编解码的块。
4.是否使用多个细化过程和/或如何选择一个或多个误差函数和/或如何定义成本函数和/或在误差函数中将涉及哪些样本可以依赖于当前块的解码信息和/或当前块的邻近的(相邻的或不相邻的)块的解码信息。
a)在一个示例中,如何选择一个或多个误差函数和/或如何定义成本函数可以依赖于应用于当前块和/或当前块的邻近块的编解码工具。
i.在一个示例中,编解码工具是LIC。
(i)在一个示例中,SSD和均值移除SSD(MR-SSD)可以根据当前块的LIC标志被选择性地利用。
a)在一个示例中,如果当前块的LIC标志为假,则模板匹配成本测量可以是SSD。
b)在一个示例中,如果当前块的LIC标志为真,则模板匹配成本测量可以是MR-SSD。
(ii)在一个示例中,如果MR-SAD/MR-SATD/MR-SSD被用于模板匹配成本测量,则在导出参考模板时可以不使用LIC过程中所使用的线性函数。
(iii)在一个示例中,如果MR-SAD/MR-SATD/MR-SSD被用于双边匹配成本测量,则在导出参考块时可以不使用在LIC过程中所使用的线性函数。
b)在一个示例中,其可以依赖于块尺寸(例如,W、H)、时域层、低延迟检查标志,等等。
c)在一个示例中,其可以依赖于当前块的运动信息与邻近块的运动信息是否类似/相同。
d)在一个示例中,其可以依赖于参考图片列表和/或参考图片信息。
i.在一个示例中,针对列表X,可以使用第一误差函数(例如,SAD/SSE),并且针对列表Y(Y=1-X),可以使用第二误差函数(例如,MR-SAD/MR-SSE)。
ii.备选地,此外,最终成本可以基于每个参考图片列表的成本。
5.上述方法可以被应用于任何编解码数据细化过程,例如,针对基于模板编解码的块,针对基于双边编解码的块(例如,VVC中的DMVR)。
2.16.用于图像/视频编解码数据细化的样本
术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编码块(CB)、CU、PU、TU、PB、TB或包括多个样本/像素的视频处理单元,块可以是矩形或非矩形。
在本公开中,短语“运动候选”可以表示由合并候选索引指示的常规/扩展合并列表中的合并运动候选,或者由AMVP候选索引指示的常规/扩展AMVP列表中的AMVP运动候选,或者一个AMVP运动候选,或者一个合并运动候选。
在本公开中,如果候选的运动信息根据从编码器发出的信号或在解码器处导出的信息被修改,则运动候选被称为“细化”。例如,运动矢量可以通过DMVR、FRUC、TM合并、TMAMVP、TM GPM、TM CIIP、TM仿射、MMVD、GMVD、仿射MMVD、BDOF等来细化。
在本公开中,短语“编解码数据细化”可以表示细化过程,以便导出或细化针对块的信号/解码/导出的预测模式、预测方向或信号/解码/导出的运动信息、预测和/或重构样本。在一个示例中,细化过程可以包括运动候选重新排序。
在以下讨论中,“基于模板编解码的”块可以指在编码/解码过程中使用基于模板匹配的方法来导出或细化编码信息的块,诸如基于模板匹配的运动导出、基于模板匹配的运动列表重构、LIC、符号预测、基于模板匹配的块矢量(例如,在IBC模式中使用)导出、DIMD、基于模板匹配的非帧间(例如,帧内)预测等。基于模板编解码的方法可以与任何其它编解码工具结合,诸如MMVD、CIIP、GPM、FRUC、仿射、BDOF、DMVR、OBMC等。在另一示例中,“基于模板编解码的”块也可以指代基于某个规则使用(相邻或非相邻)邻近重构样本导出或者细化其解码信息的块,诸如2.27中的DIMD方法以及2.29中的TIMD方法。
在下面的讨论中,“基于双边编解码的”块可以指在编码/解码过程中使用基于双边匹配的方法来导出或细化编码信息的块,例如基于双边匹配的运动导出、基于双边匹配的运动列表重构等。基于双边编解码的方法可以与任何其他编解码工具结合,例如MMVD、CIIP、GPM、FRUC、仿射、DMVR等。
W和H是当前块(例如亮度块)的宽度和高度。W*H是当前块(例如亮度块)的大小
1.在编解码数据细化过程中的误差/成本估计可以依赖于对应于当前块的参考样本(例如,在双边匹配中使用的参考块)和对应于当前块的模板的参考样本。
a)备选地,它可能依赖于对应于当前块的参考样本和当前块模板中的样本。
b)在一个示例中,模板可以是当前块的邻近样本(相邻或非相邻)。
2.多个细化过程可以被应用于一个块,不同的模板被应用于至少两个细化过程。
a)在一个示例中,第一细化过程可以利用第一模板被调用。基于第一细化过程的输出,第二模板在第二细化过程中进一步被使用。
b)在一个示例中,与第二模板相比,第一模板可以涵盖更多样本。
c)在一个示例中,第一模板和第二模板可以包含至少一个不同的样本。
d)在一个示例中,第一细化过程和第二细化过程可以使用不同的成本/误差函数。
3.是否使用多个细化过程,和/或如何选择一个或多个误差函数和/或如何定义成本函数和/或误差函数中涉及哪些样本的解码信息可以依赖于当前块和/或邻近(相邻或非相邻)块。
a)在一个示例中,如何选择一个或多个误差函数和/或如何定义成本函数可以依赖于应用于当前块和/或邻近块的编解码工具。
i.在一个示例中,编解码工具是LIC。
(i)在一个示例中,SSD和均值去除SSD(MR-SSD)可以根据当前块的LIC标志被选择性地使用。
a)在一个示例中,如果当前块的LIC标志为假,则模板匹配成本测量可以是SSD。
b)在一个示例中,如果当前块的LIC标志为真,则模板匹配成本测量可以是MR-SSD。
(ii)在一个示例中,如果MR-SAD/MR-SATD/MR-SSD被用于模板匹配成本测量,则在导出参考模板时可以不使用LIC过程中所使用的线性函数。
(iii)在一个示例中,如果MR-SAD/MR-SATD/MR-SSD被用于双边匹配成本测量,则在导出参考块时可以不使用在LIC过程中所使用的线性函数。
b)在一个示例中,可以依赖于块维度(例如,W、H)、时域层、低延迟检查标志等。
c)在一个示例中,可以依赖于当前块和邻近块的运动信息是否类似/相同。
d)在一个示例中,可以依赖于参考图片列表和/或参考图片信息。
i.在一个示例中,针对列表X,可以使用第一误差函数(例如,SAD/SSE),并且针对列表Y(Y=1-X),可以使用第二误差函数(例如,MR-SAD/MR-SSE)。
ii.备选地,此外,最终成本可以基于每个参考图片列表的成本。
4.在一个示例中,LIC可以针对参考列表X被启用并针对参考列表Y被禁用。
a)在一个示例中,当前块的最终预测可以是来自参考列表X的LIC预测和来自参考列表Y的常规预测的加权平均。
5.上述方法可以被应用于任何编解码数据细化过程,例如,针对基于模板编解码的块,针对基于双边编解码的块(例如VVC
中的DMVR)。
2.17.自适应运动候选列表
需要注意的是,以下提及的术语不限于现有标准中定义的特定术语。编解码工具的任何变化也适用。例如,术语“GPM”用于表示导出两组运动信息并使用导出的信息和划分样式来获得最终预测的任何编解码工具,例如,TPM也被视为GPM。
需要注意的是,所提出的方法可以被应用于合并候选列表构建过程,用于帧间编解码块(例如,平移运动)、仿射编解码块、TM编解码块、或IBC编解码块;或其他运动候选列表构建过程(例如,普通AMVP列表;仿射AMVP列表;IBC AMVP列表;HMVP表)。除了模板匹配成本之外的成本函数也适用于运动候选重排序。
W和H是当前块(例如亮度块)的宽度和高度。
1.该模板/双边匹配成本C可以在被计算为f(C)之前,被用来与另一模板匹配成本比较。
a.在一个实例中,f(C)=w*C,其中w表示为成本因子。
b.在一个示例中,f(C)=w*C+u。
c.在一个示例中,f(C)=Shift((w*C),s)。
d.在一个示例中,w和/或u和/或s是整数。
e.在一个示例中,第一运动候选的第一模板匹配成本可以在与第二运动候选的第二模板匹配成本比较之前,乘以成本因子。
f.在一个示例中,提出的用于运动候选的成本因子可以依赖于在重排序候选之前的位置。
i.在一个示例中,在第i个位置处的运动候选可以被分配给比在第j个位置处的运动候选的成本因子更小的成本因子,其中j>i,例如j=i+1。
(i)在一个示例中,在第i个位置的运动候选的成本因子为4,并且在第j个位置的运动候选的成本因子为5。
(ii)在一个示例中,第i个位置处的运动候选的成本因子为1,第j个位置处的运动候选的成本因子为5。
ii.在一个示例中,在第i个位置处的运动候选可以被分配给比在第j个位置处的运动候选的成本因子更大的成本因子,其中j>i,例如j=i+1。
iii.在一个示例中,可以为第p组中的运动候选(例如包含M个运动候选)分配给比第q组中的运动候选(例如包含N个运动候选)的成本因子小的成本因子,其中q>p,例如q=p+1。
(i)备选地,第p组中的运动候选(例如包含M
个运动候选)可以被分配给比第q组中的运动候选(例如包含N个运动候选)的成本因子更大的成本因子,其中q>p,例如q=p+1。
(ii)在一个示例中,M可以等于N。例如,M=N=2。
(iii)在一个示例中,M可以不等于N。例如,M=2,N=3。
(iv)在一个示例中,第p组的运动候选的成本因子为4,第q组的运动候选的成本因子为5。
(v)在一个示例中,第p组的运动候选的成本因子为1,第q组的运动候选的成本因子为5。
iv.在一个示例中,成本因子可以不被应用于子块运动候选。
v.在一个示例中,成本因子可以不被应用于仿射运动候选。
vi.在一个示例中,成本因子可以不被应用于SbTMVP运动候选。
g.在一个示例中,在一个组/位置中的运动候选的成本因子可以是自适应的。
i.在一个示例中,在一组/一个位置中的运动候选的成本因子可以依赖于编解码块的邻居的编解码模式。
(i)在一个示例中,SbTMVP合并候选的成本因子可以依赖于邻居仿射编解码块的数目。
(ii)在一个示例中,邻居编解码块可以包含五个空域邻居块(如图4所示)和/或时域邻居块(如图7所示)中的至少一个。
(iii)在一个示例中,当空域邻居仿射编解码块(如图4所示)的数目为0时,SbTMVP合并候选的成本因子可以为0.2;当空域邻居仿射编解码块(如图4所示)的数目为1时,SbTMVP合并候选的成本因子可以为0.5;当空域邻居仿射编解码块(如图4所示)的数目为2时,SbTMVP合并候选的成本因子可以为0.8;否则,SbTMVP合并候选的成本因子可以为1(这意味着保持不变)。
(iv)在一个示例中,当空域邻居仿射编解码块(如图4所示)的数目为0时,SbTMVP合并候选的成本因子可以为0.2;当空域邻居仿射编解码块(如图4所示)的数目为1时,SbTMVP合并候选的成本因子可以为0.5;当空域邻居仿射编解码块(如图4所示)的数目大于或等于2时,SbTMVP合并候选的成本因子可以为0.8。
(v)在一个示例中,当空域邻居仿射编解码块(如图4所示)的数目为0时,SbTMVP合并候选的成本因子可以为2;当空域邻居仿射编解码块(如图4所示)的数目为1时,SbTMVP合并候选的成本因子可以为5;当空域邻居仿射编解码块(如图4所示)的数目为2时,SbTMVP合并候选的成本因子可以为8;否则,SbTMVP合并候选的成本因子可以为10(其中仿射合并候选的成本因子为10)。
(vi)在一个示例中,当空域邻居仿射编解码块(如图4所示)的数目为0时,SbTMVP合并候选的成本因子可以为2;当空域邻居仿射编解码块(如图4所示)的数目为1时,SbTMVP合并候选的成本因子可以为5;当空域邻居仿射编解码块(如图4所示)的数目大于或等于2(其中仿射合并候选的成本因子为10)时,SbTMVP合并候选的成本因子可以为8。
2.针对不同的编解码模式,子组大小可以不同。
a.编解码模式可以包含常规/子块/TM合并模式。
i.针对常规合并模式,子组大小可以是K1(例如,K1=5)。
ii.针对子块合并模式,子组大小可以是K2(例如,K2=3)。
iii.针对TM合并模式,子组大小可以是K3(例如,K3=3)。
b.子组大小可以大于或等于用于子块合并模式的sps/图片/条带头中所定义的子块合并候选的最大数目(这意味着将整个列表重排序在一起)。
c.子组大小可以大于或等于用于TM合并模式的sps/图片/条带头中所定义的TM合并候选的最大数目(这意味着将整个列表重排序在一起)。
d.用于编解码模式的子组大小可以依赖于编解码模式中的运动候选的最大数目。
e.用于子块合并模式的子组大小可以自适应地依赖于邻居仿射编解码块的数目。
i.在一个示例中,邻居编解码块可以包含五个空域邻居块(如图4所示)和/或时域邻居块(如图7所示)中的至少一个。
ii.在一个示例中,当空域邻居仿射编解码块(如图4所示)的数目为0或1时,子块合并模式的子组大小可以为3;当空域邻居仿射编解码块(如图4所示)的数目大于1时,子块合并模式的子组大小可以为5;
3.针对不同的编解码模式,模板大小可以不同。
a.编解码模式可以包含常规/子块/TM合并模式。
i.针对常规合并模式,模板大小可以是K1(例如,K1=1)。
ii.针对子块合并模式,模板大小可以是K2(例如,K2=1、2或4)。
iii.针对TM合并模式,模板大小可以是K3(例如,K3=1)。
4.是否和/或如何对运动候选重排序可以依赖于邻居编解码块的编解码模式。
a.在一个示例中,邻居编解码块可以包含五个空域邻居块(如图4所示)和/或时域邻居块(如图7所示)中的至少一个。
b.当具有常规合并模式(如图4所示)的空域邻居编解码块的数目大于或等于K(例如,K=1)时,可以重排序规则合并候选。
c.当具有子块合并模式(如图4所示)的空域邻居编解码块的数目大于或等于K(例如,K=1)时,可以重排序子块合并候选。
d.当具有仿射合并模式(如图4所示)的空域邻居编解码块的数目大于或等于K(例如,K=1)时,可以重排序仿射合并候选。
e.当具有仿射合并模式(如图4所示)的空域邻居编解码块的数目大于或等于K(例如,K=1、2或3)时,可以重排序SbTMVP合并候选。
f.当具有TM合并模式(如图4所示)的空域邻居编解码块的数目大于或等于K(例如,K=1)时,可以重排序TM合并候选。
5.可以基于模板/双边匹配等,重排序HMVP表中的HMVP运动候选。
a.在一个示例中,HMVP候选被分配给运动成本,该HMVP候选被自适应地按照HMVP候选的成本降序重排序。
i.在一个示例中,HMVP候选成本可以是模板匹配成本。
b.在一个示例中,HMVP运动候选可以在编解码块之前被重排序。
i.在一个示例中,HMVP运动候选可以在编解码帧间编解码之前被重排序。
c.在一个示例中,HMVP运动候选可以根据当前块和/或邻近块的编解码信息以不同方式重排序。
一般权利要求
6.是否和/或如何应用上面公开的方法可以在序列级别/图片组级别/图片级别/条带级别/图块组级别通过信号传输,诸如在序列头/图片头/SPS/VPS/DPS/DCI/PPS/APS/条带头/图块组头中。
7.是否和/或如何应用上面所公开的方法可以在PB/TB/CB/PU/TU/CU/VPDU/CTU/CTU行/条带/图块/子图片/其它种类的包含多于一个样本或像素的区域中信号传输。
8.是否和/或如何应用上面公开的方法可以依赖于经编解码的信息,例如编解码模式、块大小、颜色格式、单/双树划分、颜色分量、条带/图片类型。
2.18.自适应GPM候选列表
术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编码块(CB)、CU、PU、TU、PB、TB或包括多个样本/像素的视频处理单元,块可以是矩形或非矩形。
需要注意的是,下面提到的术语并不局限于现有标准中定义的特定术语。编解码工具的任何变化也都适用。例如,术语“GPM”用于表示导出两组或多组运动信息并使用导出的运动信息和划分模式/加权掩码来获得最终预测的任何编解码工具,例如,TPM也被视为GPM。需要注意的是,所提出的方法可以被应用于合并候选列表构建过程,用于帧间编解码块(例如,平移运动)、仿射编解码块、TM编解码块、GPM编解码块、或IBC编解码块;或其他运动候选列表构建过程(例如,普通AMVP列表;仿射AMVP列表;IBC AMVP列表;HMVP表)。
除了模板匹配成本之外的成本函数也适用于运动候选重排序。
以下,模板是一组相邻当前块或非相邻当前块的重构/预测样本。模板的参考样本(即参考模板)是模板在参考图片中的映射,依赖于当前块的运动信息。“上方模板”表示由一组相邻当前块或非相邻当前块及其参考模板的重构/预测样本构建的模板。“左侧模板”指示由一组相邻当前块或非相邻当前块及其参考模板的重构/预测样本构建的模板。“上方模板和左侧模板”包括上方模板和左侧模板。
在下面,在一个示例中,GPM候选列表被称为OGPM列表,其中GPM候选直接源自规则合并列表(在基于或不基于模板匹配的运动细化之前);细化GPM候选列表,其中GPM候选通过第一细化方法(例如使用上方模板的模板匹配)细化,被称为AGPM列表;细化GPM候选列表,其中GPM候选通过第二细化方法(例如使用左侧模板的模板匹配)细化,被称为LGPM列表;细化GPM候选列表,其中GPM候选通过第三细化方法(例如使用左侧和上方模板的模板匹配)细化,被称为LAGPM列表。
W和H是当前块(例如亮度块)的宽度和高度。
1.所提出的针对GPM编解码块,经编解码的候选索引可以对应于用于GPM编解码块的候选列表中具有不同候选索引的候选。
a.备选地,此外,针对GPM编解码块构建的候选列表可以在被使用之前被重排序,并且经编解码的索引对应于重排序的候选列表。
b.备选地,此外,针对第一类型的GPM编解码块,候选列表可以被重排序,而针对第二类型的GPM编解码块,候选列表可以不被重排序。
i.在一个示例中,第一类型基于模板GPM编解码块。
ii.在一个示例中,第二类型基于MMVD的GPM编解码块(例如,GMVD)
c.备选地,此外,针对第一类型的GPM编解码块,候选列表可以利用第一规则重排序,并且针对第二类型的GPM编解码块,候选列表可以利用第二规则重排序。
d.GPM编解码块的重排序方法可以与非GPM编解码块相同。
i.GPM编解码块的重排序方法可以与非GPM编解码块不同。
2.所提出的针对GPM编解码块,经编解码的候选索引可以对应于来自用于GPM编解码块的细化候选列表的候选。
a.备选地,此外,针对GPM编解码块构建的候选列表可以在被使用之前首先被细化,并且经编解码的索引对应于细化的候选列表。
b.备选地,此外,针对第一类型的GPM编解码块,候选列表可以被细化,而针对第二类型的GPM编解码块,候选列表可以不被细化。
i.在一个示例中,第一类型基于模板GPM编解码块。
ii.在一个示例中,第二类型基于MMVD的GPM编解码块(例如,GMVD)
c.备选地,此外,针对第一类型的GPM编解码块,候选列表可以利用第一规则被细化,并且针对第二类型的GPM编解码块,候选列表可以利用第二规则被细化。
d.GPM编解码块的改进方法可以与非GPM编解码块相同。
i.GPM编解码块的精制方法可以与非GPM编解码块不同。
3.在一个示例中,GPM候选可以被划分为子组。是否和/或如何对GPM候选重排序可以依赖于GPM候选的子组。
a.在一个示例中,仅第一个子组可以被重排序。
b.在一个示例中,最终一个子组不能被重排序。
c.在一个示例中,最终一个子组不能被重排序。但如果最终一个子组也是第一个子组,则可以被重排序。
d.不同的子组可以单独被重排序。
e.不同子组中的两个候选不能被比较和/或被重排序。
f.如果第一子组在第二子组之前,则在重排序之后,必须将第一子组中的第一候选置于第二子组中的第二候选之前。
4.在一个示例中,未被包含在重排序过程中的GPM候选可以按指定方式被处理。
a.在一个示例中,针对不需要被重排序的候选,将按照初始顺序排列在合并候选列表中。
b.在一个示例中,可以将不被重排序的候选置于将被重排序的候选之后。
c.在一个示例中,可以将不被重排序的候选置于将被重排序的候选之前。
5.将被重排序的GPM候选列表可以参考
情况1:针对两个GPM划分准备的第一候选列表,用于导出每个GPM划分的单独GPM候选列表。
情况2:针对每个GPM划分的第二GPM候选列表。通常第二GPM候选来自第一候选列表。
a.在一个示例中,在情况1中,重排序方法可以与用于常规合并候选列表的方法相同。
b.在一个示例中,在情况1中,如果对应的候选是双预测的,在重排序方法中的模板匹配方法可以以双向预测的方式进行。
c.在一个示例中,在情况2中,重排序方法中的模板匹配方法不能以双向预测的方式进行。
d.在一个示例中,在情况2中,针对所有GPM划分,重排序方法可以相同。
e.在一个示例中,在情况2中,针对不同的GPM划分,重排序方法可以而不同。
6.在上述示例中,GPM编解码块可以是具有合并模式的GPM编解码块、具有AMVP模式的GPM编解码块。
a.备选地,此外,上述合并候选可以由AMVP候选代替。
一般权利要求
7.是否和/或如何应用上面公开的方法可以在序列级别/图片组级别/图片级别/条带级别/图块组级别通过信号传输,诸如在序列头/图片头/SPS/VPS/DPS/DCI/PPS/APS/条带头/图块组头中。
8.是否和/或如何应用上面所公开的方法可以在PB/TB/CB/PU/TU/CU/VPDU/CTU/CTU行/条带/图块/子图片/其它种类的包含多于一个样本或像素的区域中信号传输。
9.是否和/或如何应用上面公开的方法可以依赖于经编解码的信息,例如编解码模式、块大小、颜色格式、单/双树划分、颜色分量、条带/图片类型。
2.19.自适应GPM候选列表
术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编码块(CB)、CU、PU、TU、PB、TB或包括多个样本/像素的视频处理单元,块可以是矩形或非矩形。
需要注意的是,下面提到的术语并不局限于现有标准中定义的特定术语。编解码工具的任何变化也都适用。例如,术语“GPM”用于表示导出两组或多组运动信息并使用导出的运动信息和划分模式/加权掩码来获得最终预测的任何编解码工具,例如,TPM也被视为GPM。需要注意的是,所提出的方法可以被应用于合并候选列表构建过程,用于帧间编解码块(例如,平移运动)、仿射编解码块、TM编解码块、GPM编解码块、或IBC编解码块;或其他运动候选列表构建过程(例如,普通AMVP列表;仿射AMVP列表;IBC AMVP列表;HMVP表)。
除了模板匹配成本之外的成本函数也适用于运动候选重排序。
以下,模板是一组相邻当前块或非相邻当前块的重构/预测样本。模板的参考样本(即参考模板)是模板在参考图片中的映射,依赖于当前块的运动信息。“上方模板”表示由一组相邻当前块或非相邻当前块及其参考模板的重构/预测样本构建的模板。“左侧模板”指示由一组相邻当前块或非相邻当前块及其参考模板的重构/预测样本构建的模板。“上方模板和左侧模板”包括上方模板和左侧模板。
在下面,在一个示例中,GPM候选列表被称为OGPM列表,其中GPM候选直接源自规则合并列表(在基于或不基于模板匹配的运动细化之前);细化GPM候选列表,其中GPM候选通过第一细化方法(例如使用上方模板的模板匹配)细化,被称为AGPM列表;细化GPM候选列表,其中GPM候选通过第二细化方法(例如使用左侧模板的模板匹配)细化,被称为LGPM列表;细化GPM候选列表,其中GPM候选通过第三细化方法(例如使用左侧和上方模板的模板匹配)细化,被称为LAGPM列表。
关于原始GPM候选列表中的GPM候选类型,第2.29节中GPM候选列表构建过程第一步所导出的GPM候选被称为基于GPM奇偶性的候选;在第2.29节GPM候选列表构建过程的第二步中所导出的GPM候选被称为基于反奇偶性的GPM候选;在第2.29节GPM候选者列表构建过程的第三步中所导出的GPM候选被称为"填充GPM的候选。
W和H是当前块(例如亮度块)的宽度和高度。
1.在一个示例中,如果编解码模式是GPM,则合并候选可以被重排序。
a.在一个示例中,OGPM列表中的合并候选可以被重排序。
i.在一个示例中,OGPM列表中的至少两个合并候选可以被重排序。
ii.在一个示例中,至少一种类型的模板可被用于OGPM列表重排序。
iii.备选地,OGPM列表中的合并候选项不能被重排序。iv.在一个示例中,第一类型的模板可以仅包括当前块左侧的邻近样本。
v.在一个示例中,第二类型的模板可以仅包括当前块上方的邻近样本。
vi.在一个示例中,第三类型的模板可以包括当前块左侧和上方的邻近样本。
vii.重排序过程可以在解析过程之后但在MV重构过程之前被调用。
b.在一个示例中,AGPM列表中的合并候选可以被重排序。
i.在一个示例中,AGPM列表中的至少两个合并候选可以被重排序。
ii.在一个示例中,至少一种类型的模板可被用于AGPM列表重排序。
iii.在一个示例中,第一类型的模板可以仅包括当前块上方的邻近样本。
iv.在一个示例中,第二类型的模板可以包括当前块左侧和上方的邻近样本。
c.在一个示例中,LGPM列表中的合并候选可以被重排序。
i.在一个示例中,LGPM列表中的至少两个合并候选可以被重排序。
ii.在一个示例中,至少一种类型的模板可被用于LGPM列表重排序。
iii.在一个示例中,第一类型的模板可以仅包括当前块左侧的邻近样本。
iv.在一个示例中,第二类型的模板可以包括当前块左侧和上方的邻近样本。
d.在一个示例中,LAGPM列表中的合并候选可以被重排序。
i.在一个示例中,LAGPM列表中的至少两个合并候选可以被重排序。
ii.在一个示例中,至少一种类型的模板可被用于LAGPM列表重排序。
iii.在一个示例中,第一类型的模板可以仅包括当前块左侧的邻近样本。
iv.在一个示例中,第二类型的模板可以仅包括当前块上方的邻近样本。
v.在一个示例中,第三类型的模板可以包括当前块左侧和上方的邻近样本。
e.在一个示例中,是否和/或如何对GPM列表中的合并候选重排序可以依赖于编解码信息。
i.在一个示例中,是否对GPM列表中的合并候选重排序可以依赖于基于模板匹配的运动细化是应用于GPM划分还是两个GPM划分(即经GPM编解码的CU)。
(i)例如,如果GPM划分或两个GPM划分(即经GPM编解码的CU)的运动不是基于模板匹配细化的(例如,模板匹配标志等于假),则对应的GPM列表可能不被重排序。
a)例如,如果GPM划分是使用OGPM列表中的合并候选被编解码(例如,没有应用运动细化),则OGPM列表中的合并候选可能不被重排序。
(ii)例如,如果GPM划分或两个GPM划分的运动(即经GPM编解码的CU)基于模板匹配被细化(例如,模板匹配标志等于真),则对应的GPM列表可以被重排序。
a)例如,如果GPM划分是使用AGPM列表中的合并候选被编解码(例如,应用了使用上方模板的模板匹配运动细化方法),则AGPM列表中的合并候选可以被重排序。
b)例如,如果GPM划分是使用LGPM列表中的合并候选被编解码(例如,应用了使用左侧模板的模板匹配运动细化方法),则LGPM列表中的合并候选可以被重排序。
c)例如,如果GPM划分是使用LAGPM列表中的合并候选被编解码(例如,应用了使用左侧模板和上方模板的模板匹配运动细化方法),则LAGPM列表中的合并候选可以被重排序。
ii.在一个示例中,如何重排序GPM列表中的合并候选可以依赖于GPM划分信息(例如,划分模式、划分方度、划分距离等)。
(i)例如,上方模板可以被用于在当前GPM划分被第一划分方度(或划分模式、或划分距离等)划分的情况下对合并候选重排序。
(ii)例如,左侧模板可以被用于在当前GPM划分被第二划分方度(或划分模式、或划分距离等)划分的情况下重排序合并候选。
(iii)例如,左侧模板和上方模板可以被用于在当前GPM划分被第三划分方度(或划分模式、或划分距离等)划分的情况下重排序合并候选。
(iv)例如,可以指定对应于第一划分方度/第二划分方度/第三划分方度(或划分模式、或划分距离等)的模板类型。
(v)例如,至少一个查找表(即,映射表)被用于映射哪种指定的划分方度(或划分模式、或划分距离等)对应于哪种类型的模板(例如,上方模板、左侧模板、或上方模板和左侧模板。)
f.在一个示例中,OGPM列表中的合并候选可以不被重排序,并且AGPM列表和/或LGPM列表和/或LAGPM列表中的合并候选可以被重排序。
2.合并候选可以根据一个或一些准则在最终GPM候选列表中被自适应地重排序。
a.在一个示例中,GPM候选列表可以是
i.OGPM列表
ii.AGPM列表
iii.LGPM列表
iv.LAGPM列表
b.GPM候选可分为若干子组。
i.例如,子组中的GPM候选的数目(诸如X=3或5或任何其他整数值)可以是预定的。
c.在一个示例中,当前GPM候选列表构建过程的部分或全部过程首先被调用,随后在GPM列表中的候选被重排序。
i.备选地,可以重排序第一子组中的候选,并且将其添加到第二子组中的候选之前,其中第一子组被添加到第二子组之前。
ii.构建过程可以包含修剪方法。
d.在一个示例中,可以在取回合并候选之前自适应地重排序合并候选。
i.在一个示例中,可以在获得将在运动补偿过程中使用的合并候选之前,处理自适应地排列合并候选的过程。
e.该准则可以基于模板匹配成本。
i.在一个示例中,当前模板和参考模板之间的成本函数可以是
(i)SAD/MR-SAD
(ii)SATD/MR-SATD
(iii)SSD/MR-SSD
(iv)SSE/MR-SSE
(v)加权SAD/加权MR-SAD
(vi)加权SATD/加权MR-SATD
(vii)加权SSD/加权MR-SSD
(viii)加权SSE/加权MR-SSE
(ix)梯度信息
3.当导出针对两个几何划分的两个运动时,该过程可以是
a.在一个示例中,如果TM没有被应用于一个划分,则可以根据来自OGPM列表/重排序OGPM列表的合并索引的信号传输导出运动。
b.在一个示例中,如果TM被应用于一个划分,则可以根据来自AGPM列表/重排序AGPM列表或LGPM列表/重排序LGPM列表或LAGPM列表/重排序LAGPM列表的信号传输合并索引导出运动,这依赖于划分方度和划分索引。
ii.在一个示例中,如果划分方度为X(例如,0),则针对一个划分,将使用AGPM列表/重排序AGPM列表;针对第二个划分,将使用LAGPM列表/重排序LAGPM列表。
c.在一个示例中,如果TM被应用于一个划分,则可以根据来自AGPM列表/重排序AGPM列表的合并索引的信号传输导出运动。
d.在一个示例中,如果TM被应用于一个划分,则可以根据来自LGPM列表/重排序LGPM列表的信号传输合并索引导出运动。
e.在一个示例中,如果TM被应用于一个划分,则可以根据来自LAGPM列表/重排序LAGPM列表的信号传输合并索引导出运动。
4.是否和/或如何对GPM候选重排序可以依赖于GPM候选的类别。
a.在一个示例中,仅基于GPM奇偶性的候选可以被重排序。
b.在一个示例中,仅基于GPM奇偶性和GPM反奇偶性的候选可以被重排序。
c.在一个示例中,GPM填充的候选可以不被重排序。
d.在一个示例中,不同GPM列表中的两个候选不能被比较和/或重排序。
e.在一个示例中,仅前N个GPM候选可以被重排序。
i.在一个示例中,N被设置为等于5。
5.在上述示例中,GPM编解码块可以是具有合并模式的GPM编解码块、具有AMVP模式的GPM编解码块。
a.备选地,此外,上述合并候选可以由AMVP候选代替。
一般权利要求
6.是否和/或如何应用上面公开的方法可以在序列级别/图片组级别/图片级别/条带级别/图块组级别通过信号传输,诸如在序列头/图片头/SPS/VPS/DPS/DCI/PPS/APS/条带头/图块组头中。
7.是否和/或如何应用上面所公开的方法可以在PB/TB/CB/PU/TU/CU/VPDU/CTU/CTU行/条带/图块/子图片/其它种类的包含多于一个样本或像素的区域中信号传输。
8.是否和/或如何应用上面公开的方法可以依赖于经编解码的信息,例如编解码模式、块大小、颜色格式、单/双树划分、颜色分量、条带/图片类型。
2.20基于哈希的针对屏幕内容编解码的运动估计
VTM参考软件使用基于哈希的运动估计来处置屏幕内容中有时较大且不规则的运动。针对每个参考图片,使用如下所示自下而上的方法生成对应于4x4到64x64块大小的哈希表:
–针对每个2x2块,直接从原始样本值计算块哈希值(如果4:2:0色度格式,则使用亮度样本,如果4:4:4色度格式,则使用亮度样本值和色度样本值)。循环冗余检查(CRC)值被用作哈希值。
–针对4x4、8x8、16x16、32x32和64x64块,当前块的哈希值是根据其四个子块的CRC值计算的CRC值。
为了能够针对所匹配的块的有效搜索,使用倒排索引的结构,其中哈希值被用于索引到表中,并且表条目涵盖具有与对应表索引相同哈希值的所有块。与给定表索引对应的块被存储为链表。针对每个块计算两个CRC值,一个是16位哈希,另一个是24位哈希。这两个哈希值的计算方式类似,但使用不同的CRC截断多项式。第一个16位CRC值被用作倒排索引。第二个24位哈希值与块一起被存储,以解决在找到多个匹配块的情况下的哈希冲突。为了减少哈希表的长度,所有“简单”块(被定义为每行或每列中仅一个样本值的块)的哈希值都从哈希表中被排除。
在运动估计中,如果当前块是正方形块(128x128块除外),计算其哈希值。然后,编码器查询对应的哈希表。如果哈希匹配被找到,则将所匹配的块用作参考。如果当前块是大小为NxM的矩形块(在不失一般性的前提下,假设M>N),则将其划分为大小为NxN的几个非重叠正方形子块。图27示出了显示了具有正方形子块哈希值的矩形块的运动估计的示例图2700。编码器将找到第一非简单正方形子块并计算其哈希值。编码器在对应于NxN块大小的哈希表上查询此NxN正方形子块的哈希值。一个或多个所匹配的参考块被认为是参考块候选。针对每个所匹配的参考块候选,编码器将继续检查剩余的正方形子块(即图27中描绘的第一非简单正方形子块后面的白色区域)的哈希值是否等于与该参考块候选相邻的正方形子块的哈希值,如果所有正方形子块的哈希值都匹配,则该参考块候选将被视为有效的参考块。
针对帧间编解码,在测试所有编解码模式之前执行基于哈希的运动搜索。此外,编码器将在正常的运动估计过程中重使用哈希模式的MV作为起始点候选。如果存在基于哈希的运动矢量,这表明该块最有可能涵盖屏幕内容,则跳过分数运动估计。
为了加速编码器,如果满足以下所有条件,则跳过ETM_MERGE_SKIP、ETM_AFFINE和ETM_MERGE_GPM模式的跳过和合并部分以及更细颗粒度块划分之外的编解码模式:
–当前块大小为64x64、128x64或64x128。
–在参考图片中找到相同的参考块。
–参考图片的QP不大于当前图片。
2.21色度缩放和亮度映射(LMCS)
在VVC中,在环路滤波之前添加了一个称为色度缩放和亮度映射(LMCS)的编解码工具作为新处理块。LMCS有两个主要分量:1)基于自适应分段线性模型的亮度分量的环内映射;2)针对色度分量,应用依赖于亮度的色度残差缩放。图28示出了具有色度缩放架构2800的示例亮度映射。图28从解码器的方度显示了LMCS架构。图28中的浅蓝色阴影块指示了在映射域中应用处理的位置;这些包含反量化、反变换、亮度帧内预测以及亮度预测与亮度残差的添加。图28中的非阴影块指示了在原始(即,非映射)域中应用处理的位置;这些包含环路滤波,例如去块、ALF和SAO,运动补偿预测,色度帧内预测,色度预测与色度残差一起添加,并将解码图片存储为参考图片。图28中的浅黄色阴影块是新LMCS功能块,包含亮度信号的正向映射和反向映射以及依赖于亮度的色度缩放过程。与VVC中的大多数其他工具一样,可以使用SPS标志在序列级别启用/禁用LMCS。
2.21.1具有分段线性模型的亮度映射
亮度分量的环内映射通过在动态范围内重新分布码字来调整输入信号的动态范围,以提高压缩效率。亮度映射使用正向映射函数FwdMap和对应的反向映射函数InvMap。FwdMap函数使用具有16个相等片段的分段线性模型信号传输。InvMap函数不需要信号传输,而是从FwdMap函数导出。
亮度映射模型在自适应参数集(APS)语法结构信号传输,aps_params_type被设置为1(LMCS_APS)。在经编解码的视频序列中最多可以使用4个LMCS APS。图片只能使用1个LMCS APS。亮度映射模型使用分段线性模型信号传输。分段线性模型将输入信号的动态范围划分为16个相等的片段,针对每个片段,它的线性映射参数使用经分配给该片段的码字数来表示。以10位输入为例。16个片段中的每一个片段都将默认分配64个码字。信号传输的码字数目被用于计算缩放因子,并针对该片段对应地调整映射函数。在条带级别,信号传输LMCS启用标志,以指示LMCS过程是否如图28所示被应用于当前条带。如果针对当前条带LMCS被启用,则在条带头中信号传输aps_id,以标识携带亮度映射参数的APS。
FwdMap分段线性模型的每个第i个片段,i=0…15,由两个输入枢轴点InputPivot[]和两个输出(映射)枢轴点MappdPivot[]定义。InputPivot[]和MappdPivot[]的计算如下(假设10位视频):
1)OrgCW=64
2)针对i=0:16,InputPivot[i]=i*OrgCW
3)针对i=0:16,MappdPivot[i]的计算如下:
MappdPivot[0]=0;
针对(i=0;i<16;i++)
MappdPivot[i+1]=MappdPivot[i]+信令CW[i]
其中信令CW[i]是针对第i个片段的码字的信令数目。
如图28所示,针对帧间编解码块,在映射域中执行运动补偿预测。换句话说,在基于DPB中的参考信号计算出运动补偿预测块之后,应用FwdMap函数将原始域中的亮度预测块映射到映射域,即Y′pred=FwdMap(Ypred)。针对帧内编解码块,不应用FwdMap函数,因为帧内预测是在映射域中执行的。在计算出重构块Yr之后,应用InvMap函数将映射域中的重构亮度值转换回原始域中的重构亮度值InvMap函数被应用于帧内编解码亮度块和帧间编解码亮度块。
亮度映射过程(正向映射和/或反向映射)可以使用查找表(LUT)或使用动态计算来实现。如果使用LUT,则FwdMapLUT和InvMapLUT可以被预先计算和预先存储以在图块组级别被使用,正向映射和反向映射可以简单地分别实现为FwdMap(Ypred)=FwdMapLUT[Ypred]和InvMap(Yr)=InvMapLUT[Yr]。备选地,可以使用动态计算。以正向映射函数FwdMap为例。为了找出亮度样本所属的片段,样本值右移6位(对应于16个相等的片段)。然后,取回该片段的线性模型参数并在动态中应用以计算映射的亮度值。设i为片段索引,a1、a2分别为InputPivot[i]和InputPivot[i+1],b1、b2分别为MappdPivot[i]和MappdPivot[i+1]。FwdMap函数的计算如下:
FwdMap(Ypred)=((b2-b1)/(a2-a1))*(Ypred-a1)+b1InvMap函数可以以类似的方式即时计算。通常,映射域中的片段大小不相等,因此最直接的反向映射过程需要比较,以找出当前样本值属于哪个片段。这种比较增加了解码器的复杂性。因此,VVC对输出轴点MappdPivot[i]的值施加了如下所示的双流约束。假设映射域的范围(针对10位视频,此范围为[0,1023])被分为32个相等的片段。如果MappdPivot[i]不是32的倍数,则MappdPivot[i+1]和MappdPivot[i]不能属于32个相等大小片段中的相同片段,即:MappdPivot[i+1]>>(BitDepthY-5)不等于MappdPivot[i]>>(BitDepthY-5)。由于这种码流约束,InvMap函数也可以使用简单的右移5位(对应32个大小相等的片段)来执行,以找出样本值所属的片段。
2.21.2依赖于亮度的色度残差缩放
色度残差缩放旨在补偿亮度信号与其对应色度信号之间的相互作用。色度残差缩放是否被启用也会在条带级别通过信号传输。如果启用亮度映射,则信号传输附加标志以指示是否启用依赖于亮度的色度残差缩放。当不使用亮度映射时,禁用依赖于亮度的色度残差缩放。此外,针对面积小于或等于4的色度块,始终禁用依赖于亮度的色度残差缩放。
色度残差缩放依赖于当前VPDU的顶部和/或左侧重构邻近亮度样本的均值。如果当前CU为帧间128x128、帧间128x64和帧间64x128,则针对与第一个VPDU关联的CU导出的色度残差缩放因子被用于该CU中的所有色度变换块。avgYr表示重构的邻近亮度样本的均值(见图28)。CScaleInv的值按以下步骤计算:
1)根据InvMap函数,查找avgYr所属分段线性模型的索引YIdx
2)CScaleInv=cScaleInv[],其中cScaleInv[]是基于SignalledCW[i]的值和APS中用于色度残差缩放过程的偏移值预先计算的16个片段的LUT。
与亮度映射不同,CScaleInv是整个色度块的恒定值。使用CScaleInv,色度残差缩放如下:
编码器侧:CResScale=CRes*CScale=CRes/CScaleInv
解码器侧:CRes=CResScale/CScale=CResScale*CScaleInv
2.21.3编码器侧LMCS参数估计
VTM编码器中提供了一种非规范性参考实现以估计LMCS模型参数。由于VTM锚点处理SDR、HDR PQ和HDR HLG的方式不同,因此VTM13中的参考算法针对SDR、HDR PQ和HDR HLG序列设计不同。针对SDR和HDR HLG序列,编码器算法基于本地亮度方差,并针对PSNR度量进行优化。针对HDR PQ序列,编码器算法基于亮度值,并针对wPSNR(加权PSNR)度量进行优化。
3.问题
IBC候选运动的当前设计还可以被改进。
更多的IBC候选位置和/或更多的IBC候选类型可以被用于提高IBC模式的编解码效率。
4.详细描述
下面的详细描述应被视为解释一般概念的示例,不应狭隘地解释这些实施例。此外,这些实施例可以以任何方式组合。
术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编码块(CB)、CU、PU、TU、PB、TB或包括多个样本/像素的视频处理单元,块可以是矩形或非矩形。
针对IBC编解码块,块矢量(BV)被用于指示从当前块到参考块的位移,参考块已经在当前图片内被重构。
W和H是当前块(例如亮度块)的宽度和高度。
当前编解码块的非相邻空域候选是第i轮搜索中虚拟块的相邻空域候选(如图9所示)。第i轮搜索的虚拟块的宽度和高度计算公式为:newWidth=i×2×gridX+W,newHeight=i×2×gridY+H。显然,如果第i轮搜索为0,虚拟块就是当前块。
在下面,BV预测子也是BV的候选。跳过模式也是合并模式。BV候选可以根据一些准则分为若干组,每一组称为子组。例如,相邻的时域BV候选可以作为第一子组,其余BV候选可以作为第二子组;又如,前N(N≥2)BV候选也可以作为第一子组,后面M(M≥2)BV候选可以作为第二子组,其余BV候选可以作为第三子组。
关于BV候选的使用
1.BV候选(例如BV搜索点或BV预测子)如果无效,则不允许在块的编解码/解码过程中使用。
a.在一个示例中,仅当BV候选有效时,则可以在块的编解码/解码过程中被使用。
i.例如,仅当BV候选有效时,则可以被用于BV搜索或BV预测。
b.在一个示例中,是否在块的编解码/解码过程中使用BV候选,可以依赖于对BV候选的验证检查。
i.在一个示例中,在将新的BV候选插入到BV候选列表之前,需要执行BV候选的验证检查。
c.仅当BV候选有效时,才可以将其插入到IBC候选列表中。
i.在一个示例中,IBC候选列表可以是IBC合并候选列表。
ii.在一个示例中,IBC候选列表可以是IBC AMVP候选列表。
iii.在一个示例中,IBC候选列表可以是IBC模板匹配候选列表。
iv.在一个示例中,IBC候选列表可以是帧内模板匹配候选列表。
d.仅当BV候选有效时,才可以用于基于哈希的IBC搜索。e.仅当BV候选有效时,才可以用于基于块匹配的IBC的本地搜索。
f.仅当BV候选有效时,才可以用于帧内模板匹配。
g.备选地,此外,上面提到的BV候选可以是从特定邻近块(例如,相邻或非相邻)或HMVP表或从这些BV候选生成的一些虚拟候选。
h.备选地,此外,上面提到的BV候选可以排除一些默认候选(例如,默认零矢量)。
i.备选地,此外,当BV候选被标记为无效时,可以代替地使用从无效BV候选导出的虚拟候选。
i.在一个示例中,可以通过向无效BV候选添加偏移量来导出虚拟候选。
ii.在一个示例中,可以通过将裁剪函数应用于无效BV候选来导出虚拟候选。
关于BV候选的验证检查
2.在一个示例中,BV候选可以在满足以下条件中的至少一个或其组合时被确定为有效。
a.对应的参考块已经在当前图片内被重构。
b.对应的参考块位于与当前块相同的CTU行中。
c.对应的参考块位于与当前块相同的图块/子图片中。
d.对应的参考块位于与当前块相同的条带中。
e.BV候选满足块矢量约束(例如,描述于2.4.2和2.4.3)
f.BV候选满足IBC虚拟缓冲条件(例如描述于2.4.4)。
3.在一个示例中,当BV候选违反项目符号0中的条件之一或至少一个条件的组合时,可以被确定为无效。
关于BV候选列表
4.BV候选可以从非相邻块导出/获得。
a.在一个示例中,非相邻空域候选和当前编解码块之间的距离可以基于当前编解码块的宽度和高度(例如图9或图10,gridX=W,gridY=H)。
i.备选地,非相邻空域候选和当前编解码块之间的距离可以是恒定值的倍数。
(i)例如,乘法因子依赖于搜索轮次索引(例如,第i个搜索轮的乘法因子为i),且gridX=M,
gridY=N(M和N是恒定值)。
b.在一个示例中,非相邻空域候选可以在TMVP候选之后被插入。
i.备选地,非相邻空域候选可以被插入到相邻空域候选之后、TMVP候选之前。
5.BV候选可以来自空域邻近块、时域邻近块、HMVP、成对和/
或STMVP候选。
a.在一个示例中,空域候选可以由相邻和/或非相邻空域候选组成。
i.在一个示例中,相邻空域候选可以由左侧和/或上方和/或右上方和/或左下方和/或左上方空域候选组成(示例在图29A中示出)。图29A示出了显示针对空域候选的候选位置的示例图2900。
b.在一个示例中,针对TMVP候选,如图29B)所示,在候选C0和C1之间选择用于时域候选的位置。图29B示出显示用于时域候选的候选位置的示例图2950。如果位置C0处的CU不可用,是帧内编解码的,在CTU的当前行之外或其BV针对当前块无效,则使用位置C1。否则,位置C0被用于TMVP候选的导出。
i.备选地,针对TMVP候选,可以使用如图29B所示的候选C0和C1两者。
(i)例如,顺序是C0->C1。
(ii)备选地,顺序为C1->C0。
c.在一个示例中,针对成对候选,成对平均候选是通过对现有BV候选列表中的预定的候选对求均值来生成的,并且预定的对被定义为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中数目代表BV候选对BV候选列表的索引。
i.在一个示例中,成对候选的数目为P。P是从0到6的整数。
ii.在一个示例中,可以在HMVP之后插入成对候选。
d.在一个示例中,针对STMVP候选,通过对预定的E空域
BV候选和预定的G时域BV候选求均值来生成。
i.在一个示例中,E小于或等于在STMVP之前被插入到当前BV候选列表中的空域候选数(F)。
ii.在一个示例中,预定的E空域BV候选可以是在STMVP之前,被插入到当前BV候选之中的在F空域候选中的第一E空域BV候选。
(i)备选地,预定的E空域BV候选可以是在STMVP之前,被插入到当前BV候选列表之中的在F空域候选中的所选择的E空域BV候选。
iii.在一个示例中,E是2,G是1。
iv.在一个示例中,STMVP可以被插入到左上方空域BV候选之前。
v.在一个示例中,STMVP可以被插入到成对候选之后。
e.在一个实例中,BV候选插入顺序为相邻空域->HMVP->成对。
f.在一个示例中,BV候选插入顺序是相邻空域->时域->HMVP->成对。
g.在一个示例中,BV候选插入顺序为相邻空域->时域->非相邻空域->HMVP->成对。
h.在一个示例中,BV候选插入顺序为相邻空域>非相邻空域>HMVP->成对。
i.在一个示例中,BV候选插入顺序是相邻空域(STMVP被插入到空域BV候选之前)->时域->非相邻空域->HMVP->成对。
6.BV候选列表也可能由BV经裁剪的BV候选组成。
a.在一个示例中,如果从第3个项目符号的意义上来说BV候选是无效的,则可以按照给定规则将其转换为有效BV,然后将其插入到BV候选列表中。
i.在一个示例中,BV候选可以被转换为最接近的有效BV候选。
ii.在一个示例中,BV候选可以从预定的BV候选集转换为最接近的有效BV候选。
b.在一个示例中,如果非零BV候选无效,则可以将其裁剪到最接近的有效BV,然后插入到BV候选列表中。
c.在一个示例中,如果非零BV候选无效,则可以从预定的BV候选集裁剪到最接近的有效BV,然后将其插入到BV候选列表中。
i.在一个示例中,预定的BV候选集可以由(-m*W,0),(0,-n*H),(-m*H,0),(0,-n*W)组成。m和n均为正值
d.在一个示例中,经裁剪的BV候选可以被插入到未经裁剪的BV候选之后。
7.BV候选列表可以被用作IBC合并/AMVP候选列表。
a.备选地,BV候选列表可以被用于导出IBC合并/AMVP候选列表。
i.在一个示例中,针对IBC合并模式,BV候选列表的前R个条目将被用于构建IBC合并候选列表;针对IBC AMVP模式,BV候选列表的前S个条目将被用于构建IBC AMVP候选列表。
(i)在一个示例中,R是6,S是2。
8.在一个示例中,基于子块的时域块矢量预测(SbTBVP)可以被支持作为BV候选或BV预测模式。
a.与SbTMVP类似,SbTBVP使用同位图片中的BV运动场来提高块矢量预测和当前图片中的针对CU的IBC合并模式。TMVP使用相同的同位图片被用于SbTBVP。
b.在一个示例中,SbTBVP在从同位图片获取时域BV信息之前应用运动移位,其中运动移位是从当前CU的空域邻近块之一的运动矢量获得的(示例在图30中示出)图30示出了显示通过应用来自空域邻居的运动移位,从对应的同位子CU导出子CUbv运动场的示例图3000。
i.在一个示例中,如果A1具有使用同位图片作为其参考图片的运动矢量,则选择该运动矢量作为待应用的运动移位。如果这种运动没有被标识,则将运动移位被设置为(0,0)。
ii.在一个示例中,可以使用其他空域候选位置(例如A0、B0、B1、B2)来导出运动移位。
(i)在一个示例中,检查顺序可以是A1->B1->B0->A0->B2。
(ii)在一个示例中,检查顺序可以是B1->A1->B0->A0->B2。
(iii)在一个示例中,检查顺序可以是A0->A1->B0->B1->B2。
c.在一个示例中,在导出运动移位之后,针对每个子CU,同位图片中其对应块(覆盖中心样本的最小运动网格)的BV信息被用于导出子CU的BV信息(图30中的示例),假定运动移位被设置为块A1的运动。
关于BV候选列表的重排序
9.首先导出初始BV候选列表,然后进行重排序/细化过程。并且重排序/细化列表被用于块的编解码/解码过程。
10.BV候选可以根据一个或一些准则在最终BV候选列表中被自适应地重排序。
a.在一个示例中,当前BV候选列表构建过程的部分或全部过程首先被调用,随后是列表中候选的重排序。
i.备选地,可以重排序第一子组中的候选,并且它们应该在第二子组中的那些候选之前被添加,其中第一子组在第二子组之前被添加。
b.在一个示例中,准则可以基于模板匹配成本。
i.在一个示例中,当前模板和参考模板之间的成本函数可以是
(i)SAD/MR-SAD
(ii)SATD/MR-SATD
(iii)SSD/MR-SSD
(iv)SSE/MR-SSE
(v)加权SAD/加权MR-SAD
(vi)加权SATD/加权MR-SATD
(vii)加权SSD/加权MR-SSD
(viii)加权SSE/加权MR-SSE
(ix)梯度信息
ii.在一个示例中,如果LMCS被启用,则当前模板和参考模板可以由映射域中的样本组成。
(i)备选地,当前模板和参考模板可以由原始域中的样本组成。
iii.在一个示例中,每个子组中的BV候选可以根据基于模板匹配的成本值按升序重排序。
iv.在一个示例中,如果针对当前块仅上方模板可用,则模板匹配重排序只能使用上方模板。
v.在一个示例中,如果针对当前块仅左侧模板可用,则模板匹配重排序只能使用左侧模板。
vi.在一个示例中,如果针对当前块上方模板和左侧模板都可用,则模板匹配重排序可以使用左侧模板、上方模板或上方模板和左侧模板。
vii.在一个示例中,如果参考模板在当前图片之外,则对应的BV候选仍然可以被重排序。
(i)在一个示例中,如果参考模板在当前图片之外,则可以从当前图片内的最接近的样本填充。
viii.在一个示例中,参考模板应该已经在当前图片内被重构。
(i)在一个示例中,如果参考模板未被重构或在当前图片之外,则对应的BV候选可以不被重排序。
c.在一个示例中,是否和/或如何对BV候选重排序可以依赖于BV候选的类别。
d.在一个示例中,待重排序的BV候选可以是最终BV候选列表中的BV候选。
i.备选地,待重排序的BV候选可以是部分/全部相邻空域BV候选,即使其可以不被包含在最终BV候选列表中。
ii.备选地,待重排序的BV候选可以是部分/全部非相邻空域BV候选,即使其可以不被包含在最终BV候选列表中。
iii.备选地,待重排序的BV候选可以是部分/全部HMVP BV候选,即使其可以不被包含在最终BV候选列表中。
iv.备选地,待重排序的BV候选可以是部分/全部成对平均BV候选,即使其可以不被包含在最终BV候选列表中。
v.备选地,待重排序的BV候选可以是部分/全部STMVPBV候选,即使其可以不被包含在最终BV候选列表中。
11.在一个示例中,在项目符号10中公开的成本可以针对第一BV候选被导出,其可以被或可以不被放入BV候选列表中。
a.在一个示例中,是否将第一BV候选放入BV候选列表可以依赖于针对第一BV候选被导出的成本。
b.在一个示例中,是否将第一BV候选放入BV候选列表可以依赖于针对第一BV候选被导出的第一成本与针对第二BV候选被导出的第二成本之间的比较,其可以被放入或可以不被放入BV候选列表中。
12.在一个示例中,针对帧内TMP,L形模板可以用不包括左上部分的上方模板和左侧模板的替换(示例在图31中示出)。
图31示出了显示示例帧内模板匹配的示例图3100。
a.在一个示例中,针对当前块如果仅上方模板可用,则TMP帧内只能使用上方模板。
b.在一个示例中,针对当前块如果仅左侧模板可用,则帧内TMP只能使用左侧模板。
c.在一个示例中,针对当前块如果上方模板和左侧模板两者都可用,则帧内TMP可以使用左侧模板、上方模板或上方模板和左侧模板两者。
本公开的实施例与块矢量(BV)候选的生成和增强有关,如本文所用,术语“块”可以表示编解码树块(CTB)、编解码树单元(CTU)、编解码块(CB)、编解码单元(CU)、预测单元(PU)、变换单元(TU)、预测块(PB)、变换块(TB)或包括多个样本或像素的视频处理单元。块可以是矩形或非矩形。
针对帧内块复制(IBC)编解码块,块矢量(BV)可以被用于指示来自当前块和参考块的位移,其在当前图片内被重构。
图32示出了根据本公开的一些实施例的用于视频处理的方法3200的流程图。该方法3200可以在视频的目标视频块和视频的码流之间的转换期间实现。如图32所示,在框3202,确定目标视频块的BV候选是否有效。在框3202,如果确定目标视频块的BV候选有效,则在框3204,基于BV候选执行转换。这样,在目标视频块的编解码或解码过程的使用之前,可以验证BV候选。
在一些实施例中,转换可以包括将目标视频块编码到码流中。备选地,另外,转换可以包括从码流解码目标视频块。
在一些实施例中,BV候选可以包括BV搜索点。备选地,另外,BV候选可以包括BV预测子。
在一些实施例中,在框3204,可以通过应用基于BV候选的BV搜索或BV预测中的至少一项来执行转换。换句话说,如果BV候选有效,则可以将其用于BV搜索或BV预测。
在一些实施例中,如果在框3202,BV候选被确定为无效,则可以执行转换而不使用BV候选。也就是说,如果BV候选无效,则在目标视频块的编解码或解码过程中不可以允许使用BV候选(例如,BV搜索点或BV预测子)。
在一些实施例中,在框3202,可以通过对BV候选执行验证检查来确定BV候选是否有效。如果BV候选通过验证检查,则可以确定BV候选有效。在这种情况下,可以将BV候选添加到BV候选列表中。换句话说,在将新BV候选插入BV候选列表之前,需要执行BV候选的验证检查。
在一些实施例中,如果以下验证条件中的至少一个被满足,则可以定BV候选通过验证检查:第一条件:参考块在当前图片内被重构,第二条件:参考块与目标视频块在相同编解码树单元(CTU)行中,第三条件:参考块与目标视频块在相同图块或子图片中,第四条件:参考块与目标视频块在相同条带中,预定的BV约束,或预定帧内块复制(IBC)虚拟缓冲条件。预定的BV约束可以包括第2.4.2和2.4.3节中所示的BV约束。预定的IBC虚拟缓冲条件可以包括第2.4.4节中所示的IBC虚拟缓冲条件。
备选地,另外,如果BV候选未满足验证条件中的至少一个,则确定BV候选无效。也就是说,如果BV候选违反了上述至少一个验证条件中的一个或其组合,则可以确定其无效。
在一些实施例中,如果BV候选有效,则可以将BV候选添加到IBC候选列表中。例如,IBC候选列表可以包括IBC合并候选列表。备选地,另外,IBC候选列表可以包括IBC高级运动矢量预测(AMVP)候选列表。在一些实施例中,IBC候选列表还可以包括IBC模板匹配候选列表,或帧内模板匹配候选列表。
备选地,或另外,如果BV候选有效,则BV候选可应用于基于哈希的IBC搜索。备选地,或另外,BV候选还可应用于基于块匹配的IBC本地搜索。在一些实施例中,BV候选还可应用于帧内模板匹配。
在一些实施例中,BV候选可以包括来自目标视频块的相邻或非相邻邻近块的邻近BV候选。备选地,另外,BV候选可以包括来自基于历史的运动矢量预测(HMVP)表的历史BV候选。备选地,另外,BV候选可以包括从邻近BV候选或历史BV候选中的至少一个生成的虚拟候选。换句话说,BV候选可以是来自特定邻近块(例如,相邻或非相邻)或HMVP表的候选或从那些BV候选生成的一些虚拟候选。
在一些实施例中,BV候选中可以不存在默认BV候选。例如,默认BV候选可以包括默认零矢量,也就是说,BV候选可以排除一些默认候选,例如默认零矢量。
备选地,另外,在一些实施例中,如果BV候选无效,则可以针对BV候选生成虚拟候选,可以利用虚拟候选,替换BV候选。换句话说,如果BV候选被标记为无效,则可以使用从无效BV候选导出的虚拟候选。
在一些实施例中,可以通过向BV候选添加偏移量来获得虚拟候选。备选地,另外,可以通过对BV候选应用裁剪处理来获得虚拟候选。裁剪处理可以包括裁剪函数。
在一些实施例中,视频的码流可以被存储在非暂态计算机可读记录介质中,视频的码流可以由视频处理装置执行的方法生成。根据该方法,可以确定视频的目标视频块的块矢量(BV)候选是否有效,如果BV候选有效,则可以基于BV生成目标视频块的码流。
在一些实施例中,可以确定视频的目标视频块的块矢量(BV)候选是否有效,如果BV候选有效,则可以基于BV生成目标视频块的码流,该码流可以被存储在非暂态计算机可读记录介质中。
根据本公开的实施例,所提出的BV候选可以被验证。例如,可以在插入BV候选列表之前验证BV候选。这种验证过程可以被用于提供改进的BV候选或BV候选列表。这样,可以进一步改进基于BV候选的IBC运动候选,从而可以提高IBC模式的编解码效率。
图33示出了根据本公开的一些实施例的用于视频处理的方法3300的流程图。方法3300可以在视频的目标视频块和视频的码流之间的转换期间实现。如图33所示,方法3300开始于3302,其中从以下至少一项生成目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测(STMVP),或基于子块的时域块矢量预测(SbTBVP)。这样,可以从不同类型的块或MVP生成BV候选。
在框3304,可以基于BV候选执行转换,在一些实施例中,转换可以包括将目标视频块编码到码流中。备选地,另外,转换可以包括从码流解码目标视频块。
在一些实施例中,可以确定非相邻块与目标视频块之间的距离,可以基于该距离确定非相邻块。例如,可以基于目标视频块的宽度和高度以及乘法因子来确定该距离。在该示例中,图9所示gridX可以等于W,图9所示gridY可以等于H,其中W表示目标视频块的宽度,H表示目标视频块的高度。
备选地,另外,可以基于恒定值和乘法因子确定距离。例如,乘法因子可以依赖于搜索轮次索引。恒定值可以依赖于或独立于目标视频块的宽度和/或高度。例如,gridX可以等于M,gridY可以等于N,其中M和N是恒定值。
在一些实施例中,在BV候选列表中,可以将非相邻空域BV候选添加到时域运动矢量预测(TMVP)候选之后。备选地,另外,在BV候选列表中,可以将非相邻空域BV候选添加到相邻空域候选之后、TMVP候选之前。
在一些实施例中,BV候选可以包括基于空域邻近块的空域BV候选。也就是说,BV候选可以来自空域邻近块。空域BV候选可以包括相邻空域候选。备选地,另外,空域BV候选可以包括非相邻空域候选。例如,相邻空域候选可以包括以下至少一项:左侧空域候选,上方空域候选,右上方空域候选,左下方空域候选,或左上方空域候选,如图29A所示。
在一些实施例中,BV候选可以包括时域块矢量预测(TBVP)候选,针对这种BV候选,可以从位于同位视频块的第一位置的第一TBVP候选和位于同位视频块的第二位置的第二TBVP候选中选择TBVP候选来生成BV候选。第一位置可以位于同位视频块的右下方位置,例如图29B所示的位置C0。第二位置可以位于同位视频块的中心位置,例如图29B所示的位置C1。
备选地,另外,如果以下条件中的至少一个被满足,则可以选择第二TBVP候选作为TBVP候选:选择第二TBVP候选作为TBVP候选:右下方位置处的同位图片中的编解码单元(CU)不可用,右下方位置处的同位图片中的CU是帧内编解码的,右下方位置处的同位图片中的CU位于编解码树单元(CTU)的当前行之外,或右下方位置处的同位图片中的CU的BV针对目标视频块无效。在一些实施例中,如果上述条件未被满足,则可以选择第一TBVP候选作为TBVP候选。
在一些实施例中,可以以预定顺序选择第一TBVP候选或第二TBVP候选中的至少一个。例如,预定的顺序可以包括第一TBVP候选在第二TBVP候选之前。备选地,预定的顺序可以是第一TBVP候选在第二TBVP候选之后。
在一些实施例中,BV候选可以包括成对BV候选。成对BV候选可以:通过对多个候选对求均值来生成成对BV候选,多个候选对包括BV候选列表中的预定数目的候选的候选对的组合。多个候选对的数目可以在0到6的范围内。例如,多个候选对可以包括候选对{(0,1),(0,2),(0,3),(1,3),(2,3)},其中数目表示BV候选列表的BV候选索引。在BV候选列表中,可以将成对BV候选添加到HMVP之后。
备选地,或另外,在一些实施例中,BV候选可以包括STBVP候选。STBVP候选可以通过确定第一数目的空域BV候选和第二数目的时域BV候选的加权均值来生成。第一数目和第二数目是预定的。例如,第一数目可以小于或等于BV候选列表中的STBVP候选之前的空域BV候选的第三数目。在一些实施例中,可以从第三数目的空域BV候选中选择第一数目的空域BV候选。备选地,或另外,可以基于第三数目的空域BV候选的顺序,从第三数目的空域BV候选中选择第一数目的空域BV候选。例如,第一数目可以是2,第二数目可以是1。备选地,在一些实施例中,可以基于第三数目的空域BV候选的指定位置,从第三数目的空域BV候选中选择第一数目的空域BV候选。
在一些实施例中,在BV候选列表中,可以将STBVP候选添加到左上方空域BV候选之前。备选地,在BV候选列表中,可以将STBVP候选添加到成对候选之后。
在一些实施例中,基于预定顺序可以在BV候选列表中添加BV候选。预定顺序可以包括以下至少一项:第一顺序,HMVP BV候选在相邻空域BV候选之后,成对BV候选在HMVP BV候选之后,第二顺序,时域BV候选在相邻空域BV候选之后,HMVP BV在时域BV候选之后,成对BV候选在HMVP BV候选之后,第三顺序,时域BV候选在相邻空域BV候选之后,非相邻空域BV候选在时域BV候选之后,HMVP BV候选在时域BV候选之后,成对BV候选在HMVP BV候选之后,第四顺序,非相邻空域BV候选在相邻空域BV候选之后,HMVP BV候选在非相邻空域BV候选之后,成对BV候选在HMVP BV候选之后,或者第五顺序STBVP候选在左上空域BV候选之前,时域BV候选在相邻空域BV候选之后,非相邻空域BV候选在时域BV候选之后,HMVP BV候选在时域BV候选之后,成对候选BV在HMVP BV候选之后。
在一些实施例中,BV候选列表可以包括经裁剪的BV候选。例如,如果第一BV候选无效,则可以从第一BV候选生成经裁剪的BV候选,经裁剪的BV候选可以有效并被添加到BV候选列表中。
在一些实施例中,可以将最接近第一BV候选的有效BV候选确定为经裁剪的BV候选来生成经裁剪的BV候选,也就是说,可以将无效BV候选转换为最接近的有效BV候选。备选地,另外,可以将来自预定的BV候选集中的最接近第一BV候选的有效BV候选确定为经裁剪的BV候选来生成经裁剪的BV候选。
在一些实施例中,第一BV候选可以包括非零BV候选。预定的BV候选集可以包括以下至少一项:位于(-m乘W,0)的位置的第一BV候选,位于(0,-n乘H)的位置的第二BV候选,位于(-m乘H,0)的位置的第三BV候选,或位于(0,-n乘W)的位置的第四BV候选,其中m和n是正值,W是目标视频块的宽度,并且H是目标视频块的高度。
在一些实施例中,经裁剪的BV候选可以被添加到BV候选列表中的未经裁剪的BV候选之后。
在一些实施例中,可以使用BV候选列表作为帧内块复制(IBC)合并候选列表或IBC高级运动矢量预测(AMVP)候选列表。
备选地,另外,可以基于BV候选列表来生成IBC合并候选列表或IBC AMVP候选列表。例如,可以基于BV候选列表中的前第一数目的候选生成IBC合并候选列表。又例如,可以基于BV候选列表中的前第二数目的候选生成IBC AMVP候选列表。第一数目(也称为R)可以是6,第二数目(也称为S)可以是2。换句话说,针对IBC合并模式,可以使用BV候选列表的第一R条目来构建IBC合并候选列表。针对IBC AMVP模式,可以使用BV候选列表的第一S条目来构建IBC AMVP候选列表。
在一些实施例中,BV候选或BV预测可以包括SbTBVP。例如,通过由SbTBVP使用当前图片的同位图片中的BV运动场,针对当前图片中的目标视频块执行BV预测和IBC合并模式。同位图片可以与时域运动矢量预测(TMVP)使用的同位图片相同。这样,SbTBVP使用同位图片中的BV运动场来改进针对当前图片中CU的块矢量预测和IBC合并模式。
在一些实施例中,可以从目标视频块的空域邻近块中的一个空域邻近块的运动矢量获得运动移位来执行BV预测,可以通过SbTBVP,在从同位图片获得时域BV信息之前应用运动移位。换句话说,SbTBVP在从同位图片获取时域BV信息之前应用运动移位,其中运动移位是从当前CU的空域邻近块之一的运动矢量获得的,如图30所示。
在一些实施例中,如果左侧空域候选的运动矢量使用同位图片作为参考图片,可以确定运动矢量为运动移位。备选地,另外,如果没有左侧空域候选的运动矢量使用同位图片作为参考图片,可以确定运动移位为零矢量,例如(0,0)。
在一些实施例中,可以基于一组空域候选的运动矢量确定运动移位。一组空域候选包括以下至少一项:左侧空域候选、上方空域候选、右上方空域候选、左下方空域候选或左上方空域候选。例如,可以通过以预定的顺序检查一组候选来确定运动移位。该预定的顺序可以包括以下至少一项:第一顺序,即上方空域候选在左侧空域候选之后,右上方空域候选在上方空域候选之后,左下方空域候选在右上方空域候选之后,左上方空域候选在左下方空域候选之后,第二顺序,即左侧空域候选在上方空域候选之后,右上方空域候选在上述左侧空域候选之后,左下方空域候选在上述右空域候选之后,左上方空域候选在上述左下方空域候选之后,或者第三顺序,即,左侧空域候选在上述左下方空域候选之后,右上方空域候选在上述左侧空域候选之后,右上方空域候选在上述右空域候选之后,左上方空域候选在上述右空域候选之后。
在一些实施例中,基于同位图片中的子编解码单元(子CU)的BV信息,可以确定对应子CU的BV信息。例如,对应子CU可以包括覆盖子CU的中心样本的最小运动网格。也就是说,在导出运动移位之后,针对每个子CU,同位图片中其对应块的BV信息(例如,覆盖中心样本的最小运动网格)可以被用于导出子CU的BV信息。
在一些实施例中,视频的码流可以被存储在非暂态计算机可读记录介质中,视频的码流可以由视频处理装置执行的方法生成。根据该方法,视频的目标视频块的块矢量(BV)候选可以从以下至少一项生成:目标视频块的非相邻块、空域邻近块、时域邻近块、基于历史的运动矢量预测(HMVP)、成对候选、空域-时域运动矢量预测(STMVP)或基于子块的时域块矢量预测(SbTBVP)。目标视频块的码流可以基于BV生成。
在一些实施例中,视频的目标视频块的块矢量(BV)候选可以从以下中的至少一个生成:目标视频块的非相邻块、空域邻近块、时域邻近块、基于历史的运动矢量预测(HMVP)、成对候选、空域-时域运动矢量预测(STMVP)或基于子块的时域块矢量预测(SbTBVP)。可以基于BV生成目标视频块的码流。码流可以被存储在非暂态计算机可读记录介质中。
通过生成诸如来自不同块或不同MVP的BV候选,更多IBC候选类型或更多IBC候选位置可以被用于提高IBC模式的编解码效率。
图34示出了根据本公开的一些实施例的用于视频处理的方法3400的流程图。方法3400可以在视频的目标视频块和视频的码流之间的转换期间实现。如图34所示,方法3400开始于3402,其中针对目标视频块调整BV候选列表。例如,目标视频块的BV候选列表可以被重排序或细化。在框3404,基于经调整的BV候选列表执行转换。例如,经调整的BV候选列表可以包括重排序的BV候选列表或细化的BV候选列表。在一些实施例中,转换可以包括将目标视频块编码到码流中。备选地,另外,转换可以包括从码流解码目标视频块。
在一些实施例中,BV候选列表包括部分BV候选列表或全部BV候选列表。在生成部分BV候选列表或全部BV候选列表之后,重排序部分BV候选列表或全部BV候选列表。例如,重排序BV候选列表的第一子组,第一子组位于BV候选列表中的第二子组之前;以及在经重排序的BV候选列表中,将第一子组的经重排序的候选添加到第二子组的经重排序的候选之前。
备选地,另外,BV候选列表可以基于以下标准中的至少一项重排序BV候选列表:BV候选列表中BV候选的模板匹配成本,或BV候选列表中BV候选的类别。例如,BV候选列表可以根据基于模板匹配的成本值按升序重排序。
在一些实施例中,可以基于当前模板与参考模板之间的成本度量来确定模板匹配成本。例如,成本度量或成本函数可以包括以下之一:绝对差和(SAD),绝对变换差和(SATD),平方差之和(SSD),误差平方和(SSE),均值去除SAD(MRSAD),均值去除SATD(MR-SATD),均值去除SSD(MRSSD),均值去除的SSE(MR-SSE),加权SAD,加权MR-SAD,加权SATD,加权MR-SATD,加权SSD,加权MR-SSD,加权SSE,加权MR-SSE,或梯度信息。
在一些实施例中,果针对目标视频块,具有色度缩放的亮度映射(LMCS)被启用,当前模板和参考模板可以包括在映射域中的样本。
在一些实施例中,如果参考模板在当前图片之外,可以通过从当前图片内离参考模板最近的样本填充参考模板来调整参考模板,基于经调整的参考模板重排序BV候选列表。
在一些实施例中,参考模板在当前图片内。例如,参考模板应该已经在当前图片内被重构。
在一些实施例中,如果参考模板未被重构或在当前图片之外,对应的BV候选不被重排序。
在一些实施例中,基于BV候选列表的子组中BV候选的相应模板匹配成本,将子组中的BV候选按升序重排序。例如,如果上方模板针对目标视频块可用,可以基于上方模板确定模板匹配成本;如果左侧模板针对目标视频块可用,可以基于左侧模板确定模板匹配成本;或如果上方模板和左侧模板针对目标视频块可用,则可以基于以下至少一项确定模板匹配成本:上方模板和左侧模板。
在一些实施例中,基于BV候选的类别,确定关于以下至少一项的决定:是否调整BV候选列表,或如何调整BV候选列表。例如,是否和/或如何重排序BV候选可以依赖于BV候选的类别。
在一些实施例中,可以基于初始BV候选列表,针对目标视频块确定最终BV候选列表,可以重排序最终BV候选列表中的BV候选。备选地,可以重排序初始BV候选列表中的BV候选,甚至未被包括在最终BV候选列表中的一些候选。
在一些实施例中,可以重排序一组BV候选中的至少一部分,其中该组BV候选包括以下至少一项:一组相邻的空域BV候选,一组非相邻的空域BV候选,一组基于历史的运动矢量预测(HMVP)BV候选,一组成对平均BV候选,或一组空域-时域运动矢量预测(STMVP)候选。也就是说,将被重排序的BV候选可以是BV候选集的部分/全部,即使它可以没有被包括在最终BV候选列表中。
在一些实施例中,可以确定针对第一BV候选的第一成本,可以基于第一成本,确定将第一BV候选添加到BV候选列表的决定,基于确定将第一BV候选添加到BV候选列表,将第一BV候选添加到BV候选列表。也就是说,是否将第一BV候选置于BV候选列表中可以依赖于针对第一BV候选导出的成本。
备选地,或另外,关于在BV候选列表中添加第一BV候选的决定可以基于第一成本与针对第二BV候选的第二成本之间的比较确定。第二BV候选可以被放入或不被放入BV候选列表。
在一些实施例中,可以利用以下至少一项替换针对帧内模板匹配预测(TMP)的L形模板:上方模板,或左侧模板。例如,如果上方模板和左侧模板都可以被用于目标视频块,则帧内TMP可以使用左侧模板,上方模板,或上方模板和左侧模板。备选地,另外,针对帧内TMP的经替换的模板中不存在左上方模板。例如,针对帧内TMP的经替换的模板中可以不存在上方模板和左侧模板的公共部分。也就是说,上方模板和左侧模板可以排除左上方部分,例如如图31所示。
在一些实施例中,视频的码流可以被存储在非暂态计算机可读记录介质中,视频的码流可以由视频处理装置执行的方法生成。据该方法,可以针对视频的目标视频块,调整BV候选列表,可以基于经调整的BV候选列表,生成目标视频块的码流。
在一些实施例中,可以针对视频的目标视频块,调整BV候选列表,可以基于经调整的BV候选列表,生成目标视频块的码流,码流可以被存储在非暂态计算机可读记录介质中。
根据本公开的实施例,所提出的可以对BV候选列表进行重排序或细化。这样,可以生成改进的BV候选列表。因此,可以提高IBC模式的编解码效率。
本公开的实现可以根据以下条款来描述,这些条款的特征可以以任何合理的方式组合。
条款1.一种用于视频处理方法,包括:在视频的目标视频块和视频的码流之间的转换期间,确定目标视频块的块矢量(BV)候选是否有效;以及如果确定BV候选有效,基于BV候选执行转换。
条款2.根据条款1的方法,其中BV候选包括以下至少一项:BV搜索点,或BV预测子。
条款3.根据条款1或条款2的方法,其中基于BV候选执行转换包括:通过应用基于BV候选的BV搜索或BV预测中的至少一项来执行转换。
条款4.根据条款1-3中任一项的方法,还包括:如果确定BV候选无效,执行转换而不使用BV候选。
条款5.根据条款1-4中任一项的方法,其中确定BV候选是否有效包括:对BV候选执行验证检查。
条款6.根据条款5的方法,还包括:如果BV候选通过验证检查,将BV候选添加到BV候选列表中。
条款7.根据条款5或6的方法,其中对BV候选执行验证检查包括:如果以下验证条件中的至少一个被满足,确定BV候选通过验证检查:第一条件:参考块在当前图片内被重构,第二条件:参考块与目标视频块在相同编解码树单元(CTU)行中,第三条件:参考块与目标视频块在相同图块或子图片中,第四条件:参考块与目标视频块在相同条带中,预定的BV约束,或预定的帧内块复制(IBC)虚拟缓冲条件。
条款8.根据条款7的方法,其中对BV候选执行验证检查还包括:如果BV候选未满足验证条件中的至少一个,确定BV候选无效。
条款9.根据条款1-8中任一项的方法,还包括:如果BV候选有效,将BV候选添加到帧内块复制(IBC)候选列表中。
条款10.根据条款9的方法,其中IBC候选列表包括以下至少一项:IBC合并候选列表,IBC高级运动矢量预测(AMVP)候选列表,IBC模板匹配候选列表,或帧内模板匹配候选列表。
条款11.根据条款1-10中任一项的方法,其中执行转换包括:如果BV候选有效,在转换期间在以下至少一项中应用BV候选;针对帧内块复制(IBC)的基于哈希的搜索,针对IBC的基于块匹配的本地搜索,或帧内模板匹配。
条款12.根据条款1-11中任一项的方法,其中BV候选包括以下至少一项:来自目标视频块的相邻或非相邻邻近块的邻近BV候选,来自基于历史的运动矢量预测(HMVP)表的历史BV候选,或从邻近BV候选或历史BV候选中的至少一个生成的虚拟候选。
条款13.根据条款1-12中任一项的方法,其中BV候选中不存在默认BV候选。
条款14.根据条款13的方法,其中默认BV候选包括默认零矢量。
条款15.根据条款1-14中任一项的方法,还包括:如果BV候选无效,针对BV候选生成虚拟候选;以及利用虚拟候选,替换BV候选。
条款16.根据条款15的方法,其中生成虚拟候选包括以下至少一项:通过向BV候选添加偏移量来获得虚拟候选;或通过对BV候选应用裁剪处理来获得虚拟候选。
条款17.一种用于视频处理方法,包括:在视频的目标视频块和视频的码流之间的转换期间,从以下至少一项生成目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测(STMVP),或基于子块的时域块矢量预测(SbTBVP);以及基于BV候选执行转换。
条款18.根据条款17的方法,还包括:确定非相邻块与目标视频块之间的距离;以及基于距离确定非相邻块。
条款19.根据条款18的方法,其中确定距离包括以下至少一项:基于目标视频块的宽度和高度以及乘法因子,确定距离;或基于恒定值和乘法因子确定距离。
条款20.根据条款19的方法,其中乘法因子依赖于搜索轮次索引,并且恒定值依赖于或独立于目标视频块的宽度或高度中的至少一项。
条款21.根据条款17-20中任一项的方法,还包括以下至少一项:在BV候选列表中,将非相邻空域BV候选添加到时域运动矢量预测(TMVP)候选之后;或在BV候选列表中,将非相邻空域BV候选添加到相邻空域候选之后、TMVP候选之前。
条款22.根据条款17的方法,其中BV候选包括基于空域邻近块的空域BV候选,以及空域BV候选包括以下至少一项:相邻空域候选,或非相邻空域候选
条款23.根据条款22的方法,其中相邻空域候选包括以下至少一项:左侧空域候选,上方空域候选,右上方空域候选,左下方空域候选,或左上方空域候选。
条款24.根据条款17的方法,其中BV候选包括时域块矢量预测(TBVP)候选,并且其中生成BV候选包括:从位于同位视频块的第一位置的第一TBVP候选和位于同位视频块的第二位置的第二TBVP候选中选择TBVP候选,第一位置位于同位视频块的右下方位置,第二位置位于同位视频块的中心位置。
条款25.根据条款24的方法,其中选择TBVP候选包括:如果以下条件中的至少一个被满足,选择第二TBVP候选作为TBVP候选:右下方位置处的同位图片中的编解码单元(CU)不可用,右下方位置处的同位图片中的CU是帧内编解码的,右下方位置处的同位图片中的CU位于编解码树单元(CTU)的当前行之外,或右下方位置处的同位图片中的CU的BV针对目标视频块无效;以及如果上述条件未被满足,选择第一TBVP候选作为TBVP候选。
条款26.根据条款24的方法,其中选择TBVP候选包括:以预定的顺序选择第一TBVP候选或第二TBVP候选中的至少一个,预定的顺序包括以下一项:第一TBVP候选在第二TBVP候选之前,或第一TBVP候选在第二TBVP候选之后。
条款27.根据条款17的方法,其中BV候选包括成对BV候选,以及其中生成成对BV候选包括:通过对多个候选对求均值来生成成对BV候选,多个候选对包括BV候选列表中的预定的数目的候选的候选对的组合。
条款28.根据条款27的方法,其中多个候选对的数目在0到6的范围内。
条款29.根据条款27或条款28的方法,还包括:在BV候选列表中,将成对BV候选添加到HMVP之后。
条款30.根据条款17的方法,其中BV候选包括STBVP候选,以及其中生成BV候选包括:确定第一数目的空域BV候选和第二数目的时域BV候选的加权均值作为STBVP候选,第一数目和第二数目是预定的。
条款31.根据条款30的方法,其中第一数目小于或等于BV候选列表中的STBVP候选之前的空域BV候选的第三数目。
条款32.根据条款31的方法,还包括:从第三数目的空域BV候选中选择第一数目的空域BV候选。
条款33.根据条款32的方法,其中选择第一数目的空域BV候选包括:基于第三数目的空域BV候选的顺序,从第三数目的空域BV候选中选择第一数目的空域BV候选;或基于第三数目的空域BV候选的指定位置,从第三数目的空域BV候选中选择第一数目的空域BV候选。
条款34.根据条款30-33中任一项的方法,其中第一数目是2,并且第二数目是1。
条款35.根据条款30-34中任一项的方法,还包括以下至少一项:在BV候选列表中,将STBVP候选添加到左上方空域BV候选之前;或在BV候选列表中,将STBVP候选添加到成对候选之后。
条款36.根据条款17-35中任一项的方法,还包括:基于预定的顺序在BV候选列表中添加BV候选,预定的顺序包括以下至少一项:相邻空域BV候选、HMVP BV候选以及成对BV候选的第一顺序,相邻空域BV候选、时域BV候选、HMVP BV候选以及成对BV候选的第二顺序,相邻空域BV候选、时域BV候选、非相邻空域BV候选、HMVP BV候选以及成对BV候选的第三顺序,相邻空域BV候选、非相邻空域BV候选、HMVP BV候选以及成对BV候选的第四顺序,或相邻空域BV候选、时域BV候选、非相邻BV候选、HMVP BV候选以及成对BV候选的第五顺序,其中STBVP候选在左上方空域BV候选之前
条款37.根据条款36的方法,其中BV候选列表包括经裁剪的BV候选。
条款38.根据条款36的方法,还包括:如果第一BV候选无效,基于预定的规则从第一BV候选生成经裁剪的BV候选,经裁剪的BV候选有效;以将经裁剪的BV候选添加到BV候选列表中
条款39.根据条款38的方法,其中生成经裁剪的BV候选包括以下一项:将最接近第一BV候选的有效BV候选确定为经裁剪的BV候选;将来自预定的BV候选集中的最接近第一BV候选的有效BV候选确定为经裁剪的BV候选。
条款40.根据条款38或条款39的方法,其中第一BV候选包括非零BV候选。
条款41.根据条款39或条款40的方法,其中预定的BV候选集包括以下至少一项:位于(-m乘W,0)的位置的第一BV候选,位于(0,-n乘H)的位置的第二BV候选,位于(-m乘H,0)的位置的第三BV候选,或位于(0,-n乘W)的位置的第四BV候选,其中m和n是正值,W是目标视频块的宽度,并且H是目标视频块的高度。
条款42.根据条款38-41中任一项的方法,其中将经裁剪的BV候选添加到BV候选列表中包括:将经裁剪的BV候选添加到未经裁剪的BV候选之后。
条款43.根据条款36-42中任一项的方法,还包括:使用BV候选列表作为帧内块复制(IBC)合并候选列表或IBC高级运动矢量预测(AMVP)候选列表。
条款44.根据条款36-42中任一项的方法,还包括基于BV候选列表,生成帧内块复制(IBC)合并候选列表或IBC高级运动矢量预测(AMVP)候选列表。
条款45.根据条款44的方法,其中:生成IBC合并候选列表包括:基于BV候选列表中的前第一数目的候选生成IBC合并候选列表,生成IBC AMVP候选列表包括:基于BV候选列表中的前第二数目的候选生成IBC AMVP候选列表。
条款46.根据条款45的方法,其中第一数目是6,第二数目是2。
条款47.根据条款17的方法,其中BV候选或BV预测包括SbTBVP。
条款48.根据条款47的方法,还包括:通过由SbTBVP使用当前图片的同位图片中的BV运动场,针对当前图片中的目标视频块执行BV预测和帧内块复制(IBC)合并模式。
条款49.根据条款48的方法,其中同位图片与时域运动矢量预测(TMVP)使用的同位图片相同。
条款50.根据条款48或条款49的方法,其中执行BV预测包括:从目标视频块的空域邻近块中的一个空域邻近块的运动矢量获得运动移位;以及通过SbTBVP,在从同位图片获得时域BV信息之前应用运动移位。
条款51.根据条款50的方法,其中获得运动移位包括:如果左侧空域候选的运动矢量使用同位图片作为参考图片,确定运动矢量为运动移位;以及如果没有左侧空域候选的运动矢量使用同位图片作为参考图片,确定运动移位为零矢量。
条款52.根据条款50或条款51的方法,其中获得运动移位包括:基于一组空域候选的运动矢量确定运动移位,一组空域候选包括以下至少一项:左侧空域候选、上方空域候选、右上方空域候选、左下方空域候选或左上方空域候选。
条款53.根据条款52的方法,其中确定运动移位包括通过以预定的顺序检查一组候选来确定运动移位,预定的顺序包括以下至少一项:左侧空域候选、上方空域候选、右上方空域候选、左下方空域候选以及左上方空域候选的第一顺序,上方空域候选、左侧空域候选、右上方空域候选、左下方空域候选以及左上方空域候选的第二顺序,或左下方空域候选、左侧空域候选、右上方空域候选、上方空域候选以及左上方空域候选的第三顺序。
条款54.根据条款50-53中任一项的方法,还包括:基于同位图片中的子编解码单元(子CU)的BV信息,确定对应子CU的BV信息。
条款55.根据条款54的方法,其中对应子CU包括覆盖子CU的中心样本的最小运动网格。
条款56.一种用于视频处理方法,包括:在视频的目标视频块和视频的码流之间的转换期间,针对目标视频块调整块矢量(BV)候选列表;以及基于经调整的BV候选列表执行转换。
条款57.根据条款56的方法,其中调整BV候选列表包括:
重排序或细化BV候选列表。
条款58.根据条款56或57的方法,其中BV候选列表包括部分BV候选列表或全部BV候选列表,以及其中调整BV候选列表包括:在生成部分BV候选列表或全部BV候选列表之后,重排序部分BV候选列表或全部BV候选列表。
条款59.根据条款56-58中任一项的方法,其中调整BV候选列表包括:重排序BV候选列表的第一子组,第一子组位于BV候选列表中的第二子组之前;以及在经重排序的BV候选列表中,将第一子组的经重排序的候选添加到第二子组的经重排序的候选之前。
条款60.根据条款56-59中任一项的方法,其中调整BV候选列表包括:基于以下标准中的至少一项重排序BV候选列表:BV候选列表中BV候选的模板匹配成本,或BV候选列表中BV候选的类别。
条款61.根据条款60的方法,还包括:基于当前模板与参考模板之间的成本度量来确定模板匹配成本。
条款62.根据条款61的方法,其中成本度量包括以下一项:绝对差和(SAD),绝对变换差和(SATD),平方差之和(SSD),误差平方和(SSE),均值去除SAD(MRSAD),均值去除SATD(MR-SATD),均值去除SSD(MRSSD),均值去除的SSE(MR-SSE),加权SAD,加权MR-SAD,加权SATD,加权MR-SATD,加权SSD,加权MR-SSD,加权SSE,加权MR-SSE,或梯度信息。
条款63.根据条款61或条款62的方法,其中:如果针对目标视频块,具有色度缩放的亮度映射(LMCS)被启用,当前模板和参考模板包括在映射域中的样本。
条款64.根据条款61或条款62的方法,其中当前模板和参考模板包括原始域中的样本。
条款65.根据条款61-64中任一项的方法,其中调整BV候选列表包括:如果参考模板在当前图片之外,通过从当前图片内离参考模板最接近的样本填充参考模板来调整参考模板;以及基于经调整的参考模板重排序BV候选列表。
条款66.根据条款61-64中任一项的方法,其中参考模板在当前图片内。
条款67.根据条款61-64中任一项的方法,其中如果参考模板未被重构或在当前图片之外,对应的BV候选不被重排序。
条款68.根据条款60-67中任一项的方法,其中基于BV候选列表中BV候选的模板匹配成本,将BV候选列表重排序包括:基于BV候选列表的子组中BV候选的相应模板匹配成本,将子组中的BV候选按升序重排序。
条款69.根据条款60-68中任一项的方法,其中确定模板匹配成本包括:如果上方模板针对目标视频块可用,基于上方模板确定模板匹配成本;如果左侧模板针对目标视频块可用,基于左侧模板确定模板匹配成本;或如果上方模板和左侧模板针对目标视频块可用,则基于以下至少一项确定模板匹配成本:上方模板和左侧模板。
条款70.根据条款56-69中任一项的方法,还包括:基于BV候选的类别,确定关于以下至少一项的决定:是否调整BV候选列表,或如何调整BV候选列表。
条款71.根据条款56-70中任一项的方法,其中调整BV候选列表包括:基于初始BV候选列表,针对目标视频块确定最终BV候选列表;以及重排序最终BV候选列表中的V候选;或重排序初始BV候选列表中的BV候选,甚至未被包括在最终BV候选列表中的一些候选。
条款72.根据条款56-70中任一项的方法,其中调整BV候选列表包括:重排序一组BV候选中的至少一部分,其中该组BV候选包括以下至少一项:一组相邻的空域BV候选,一组非相邻的空域BV候选,一组基于历史的运动矢量预测(HMVP)BV候选,一组成对平均BV候选,或一组空域-时域运动矢量预测(STMVP)候选。
条款73.根据条款56-72中任一项的方法,还包括:确定针对第一BV候选的第一成本;以基于第一成本,确定将第一BV候选添加到BV候选列表的决定;以及基于确定将第一BV候选添加到BV候选列表,将第一BV候选添加到BV候选列表。
条款74.根据条款73的方法,其中确定关于添加第一BV候选的决定包括:基于第一成本与针对第二BV候选的第二成本之间的比较,确定决定。
条款75.根据条款56-74中任一项的方法,还包括:利用以下至少一项替换针对帧内模板匹配预测(TMP)的L形模板:上方模板,或左侧模板。
条款76.根据条款75的方法,其中针对帧内TMP的经替换的模板中不存在左上方模板。
条款77.根据条款1-76中任一项的方法,其中转换包括将目标视频块编码到码流中。
条款78.根据条款1-76中任一项的方法,其中转换包括从码流解码目标视频块。
条款79.一种用于处理视频数据的装置,包括处理器和在其上具有指令的非暂态存储器,其中指令在由处理器执行时使处理器执行根据条款1-78中任一项的方法。
条款80.一种非暂态计算机可读存储介质,存储使处理器执行根据条款1-78中任一项的方法的指令。
条款81.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中方法包括:确定视频的目标视频块的块矢量(BV)候选是否有效;以及如果确定BV候选有效,基于BV候选生成码流。
条款82.一种用于存储视频的码流的方法,包括:确定视频的目标视频块的块矢量(BV)候选是否有效;如果确定BV候选有效,基于BV候选生成码流;以及将码流存储在非暂态计算机可读记录介质中。
条款83.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中方法包括:从以下至少一项生成视频的目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测(STMVP),或基于子块的时域块矢量预测(SbTBVP);以及基于BV候选生成码流。
条款84.一种用于存储视频的码流的方法,包括:从以下至少一项生成视频的目标视频块的块矢量(BV)候选:目标视频块的非相邻块,空域邻近块,时域邻近块,基于历史的运动矢量预测(HMVP),成对候选,空域-时域运动矢量预测(STMVP),或基于子块的时域块矢量预测(SbTBVP);基于BV候选生成码流;以及将码流存储在非暂态计算机可读记录介质中。
条款85.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中方法包括:针对视频的目标视频块,调整块矢量(BV)候选列表;以及基于经调整的BV候选列表,生成码流。
条款86.一种用于存储视频的码流的方法,包括:针对视频的目标视频块,调整块矢量(BV)候选列表;基于经调整的BV候选列表,生成码流;以及将码流存储在非暂态计算机可读记录介质中。
示例设备
图35示出了可以在其中实现本公开的各种实施例的计算设备3500的框图。计算设备3500可以被实现为源设备110(或视频编码器114或200)或目的设备120(或视频解码器124或300),或者可以被包括在源设备110(或视频编码器114或200)或目的设备120(或视频解码器124或300)中。
应当理解的是,图35中示出的计算设备3500仅为了示出的目的,而不是以任何方式暗示对本公开实施例的功能和范围的任何限制
如图35所示,计算设备3500包括通用计算设备3500。计算设备3500可以至少包括一个或多个处理器或处理单元3510、存储器3520、存储单元3530、一个或多个通信单元3540、一个或多个输入设备3550以及一个或多个输出设备3560。
在一些实施例中,计算设备3500可以被实现为具有计算能力的任何用户终端或服务器终端。服务器终端可以是由服务提供商提供的服务器、大型计算设备等。用户终端例如可以是任何类型的移动终端、固定终端或便携式终端,包括移动电话、站、单元、设备、多媒体计算机、多媒体平板计算机、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或其任何组合,并且包括这些设备的附件和外围设备或其任何组合。可以设想的是,计算设备3500可以支持到用户的任何类型的接口(诸如“可穿戴”电路装置等)。
处理单元3510可以是物理处理器或虚拟处理器,并且可以基于存储在存储器3520中的程序实现各种处理。在多处理器系统中,多个处理单元并行地执行计算机可执行指令,以便改善计算设备3500的并行处理能力。处理单元3510也可以被称为中央处理单元(CPU)、微处理器、控制器或微控制器。
计算设备3500通常包括各种计算机存储介质。这种介质可以是由计算设备3500可访问的任何介质,包括但不限于易失性介质和非易失性介质、或可拆卸介质和不可拆卸介质。存储器3520可以是易失性存储器(例如,寄存器、高速缓存、随机存取存储器(RAM))、非易失性存储器(诸如只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)或闪存)或其任何组合。存储单元3530可以是任何可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如存储器、闪存驱动器、磁盘或其他可以被用于存储信息和/或数据并且可以在计算设备3500中被访问的介质。
计算设备3500还可以包括附加的可拆卸/不可拆卸存储介质、易失性/非易失性存储介质。尽管在图35中未示出,但是可以提供用于从可拆卸的非易失性磁盘读取和/或写入可拆卸的非易失性磁盘的磁盘驱动器,以及用于从可拆卸的非易失性光盘读取和/或写入可拆卸的非易失性光盘的光盘驱动器。在这种情况下,每个驱动器可以经由一个或多个数据介质接口连接到总线(未示出)。
通信单元3540经由通信介质与另一计算设备通信。另外,计算设备3500中的组件的功能可以由可以经由通信连接进行通信的单个计算集群或多个计算机器来实现。因此,计算设备3500可以使用与一个或多个其他服务器、联网个人计算机(PC)或其他通用网络节点的逻辑连接来在联网环境中运行。
输入设备3550可以是各种输入设备中的一种或多种输入设备,诸如鼠标、键盘、轨迹球、语音输入设备等。输出设备3560可以是各种输出设备中的一种或多种输出设备,诸如显示器、扬声器、打印机等。借助于通信单元3540,计算设备3500还可以与一个或多个外部设备(未示出)通信,外部设备诸如是存储设备和显示设备,计算设备3500还可以与一个或多个使用户能够与计算设备3500交互的设备通信,或任何使计算设备3500能够与一个或多个其他计算设备通信的设备(例如网卡、调制解调器等)通信,如果需要的话。这种通信可以经由输入/输出(I/O)接口(未示出)进行。
在一些实施例中,计算设备3500的一些或所有组件也可以被布置在云计算架构中,而不是被集成在单个设备中。在云计算架构中,组件可以被远程提供并且共同工作,以实现本公开中描述的功能。在一些实施例中,云计算提供计算、软件、数据访问和存储服务,这将不要求最终用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实施例中,云计算使用合适的协议经由广域网(例如互联网)提供服务。例如,云计算提供商通过广域网提供应用程序,可以通过网络浏览器或任何其他计算组件访问这些应用程序。云计算架构的软件或组件以及对应的数据可以存储在远程服务器上。云计算环境中的计算资源可以被合并或分布在远程数据中心的位置。云计算基础设施可以通过共享数据中心提供服务,尽管它们表现为作为用户的单一接入点。因此,云计算架构可与被用于从远程位置的服务提供商处提供本文所述的组件和功能。备选地,它们可以由常规服务器提供,或者直接或以其他方式安装在客户端设备上。
在本公开的实施例中,计算设备3500可以被用于实现视频编码/解码。存储器3520可以包括具有一个或多个程序指令的一个或多个视频编解码模块3525。这些模块能够由处理单元3510访问和执行,以执行本文描述的各种实施例的功能。
在执行视频编码的示例实施例中,输入设备3550可以接收视频数据作为待编码的输入3570。视频数据可以由例如视频编解码模块3525处理,以生成经编码的码流。经编码的码流可以经由输出设备3560作为输出3580被提供。
在执行视频解码的示例实施例中,输入设备3550可以接收经编码的码流作为输入3570。经编码的码流可以由例如视频编解码模块3525处理,以生成经解码的视频数据。经解码的视频数据可以经由输出设备3560作为输出3580被提供。
虽然已经参考本公开的优选实施例具体示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求限定的本申请的精神和范围的情况下,可以在形式和细节上进行各种改变。这些变化旨在由本申请的范围所涵盖。因此,本申请的实施例的前述描述不旨在是限制性的。

Claims (86)

1.一种用于视频处理方法,包括:
在视频的目标视频块和所述视频的码流之间的转换期间,确定所述目标视频块的块矢量(BV)候选是否有效;以及
如果确定所述BV候选有效,基于所述BV候选执行所述转换。
2.根据权利要求1所述的方法,其中所述BV候选包括以下至少一项:
BV搜索点,或
BV预测子。
3.根据权利要求1或权利要求2所述的方法,其中基于所述BV候选执行所述转换包括:
通过应用基于所述BV候选的BV搜索或BV预测中的至少一项来执行所述转换。
4.根据权利要求1-3中任一项所述的方法,还包括:
如果确定所述BV候选无效,执行所述转换而不使用所述BV候选。
5.根据权利要求1-4中任一项所述的方法,其中确定所述BV候选是否有效包括:
对所述BV候选执行验证检查。
6.根据权利要求5所述的方法,还包括:
如果所述BV候选通过所述验证检查,将所述BV候选添加到BV候选列表中。
7.根据权利要求5或6所述的方法,其中对所述BV候选执行所述验证检查包括:
如果以下验证条件中的至少一个被满足,确定所述BV候选通过所述验证检查:
第一条件:参考块在当前图片内被重构,
第二条件:所述参考块与所述目标视频块在相同编解码树单元(CTU)行中,
第三条件:所述参考块与所述目标视频块在相同图块或子图片中,
第四条件:所述参考块与所述目标视频块在相同条带中,
预定的BV约束,或
预定的帧内块复制(IBC)虚拟缓冲条件。
8.根据权利要求7所述的方法,其中对所述BV候选执行所述验证检查还包括:
如果所述BV候选未满足所述验证条件中的至少一个,确定所述BV候选无效。
9.根据权利要求1-8中任一项所述的方法,还包括:
如果所述BV候选有效,将所述BV候选添加到帧内块复制(IBC)候选列表中。
10.根据权利要求9所述的方法,其中所述IBC候选列表包括以下至少一项:
IBC合并候选列表,
IBC高级运动矢量预测(AMVP)候选列表,
IBC模板匹配候选列表,或
帧内模板匹配候选列表。
11.根据权利要求1-10中任一项所述的方法,其中执行所述转换包括:
如果所述BV候选有效,在所述转换期间在以下至少一项中应用所述BV候选;
针对帧内块复制(IBC)的基于哈希的搜索,
针对所述IBC的基于块匹配的本地搜索,或
帧内模板匹配。
12.根据权利要求1-11中任一项所述的方法,其中所述BV候选包括以下至少一项:
来自所述目标视频块的相邻或非相邻邻近块的邻近BV候选,
来自基于历史的运动矢量预测(HMVP)表的历史BV候选,或
从所述邻近BV候选或所述历史BV候选中的至少一个生成的虚拟候选。
13.根据权利要求1-12中任一项所述的方法,其中所述BV候选中不存在默认BV候选。
14.根据权利要求13所述的方法,其中所述默认BV候选包括默认零矢量。
15.根据权利要求1-14中任一项所述的方法,还包括:
如果所述BV候选无效,针对所述BV候选生成虚拟候选;以及
利用所述虚拟候选,替换所述BV候选。
16.根据权利要求15所述的方法,其中生成所述虚拟候选包括以下至少一项:
通过向所述BV候选添加偏移量来获得所述虚拟候选;或
通过对所述BV候选应用裁剪处理来获得所述虚拟候选。
17.一种用于视频处理方法,包括:
在视频的目标视频块和所述视频的码流之间的转换期间,从以下至少一项生成所述目标视频块的块矢量(BV)候选:
所述目标视频块的非相邻块,
空域邻近块,
时域邻近块,
基于历史的运动矢量预测(HMVP),
成对候选,
空域-时域运动矢量预测(STMVP),或
基于子块的时域块矢量预测(SbTBVP);以及
基于所述BV候选执行所述转换。
18.根据权利要求17所述的方法,还包括:
确定所述非相邻块与所述目标视频块之间的距离;以及
基于所述距离确定所述非相邻块。
19.根据权利要求18所述的方法,其中确定所述距离包括以下至少一项:
基于所述目标视频块的宽度和高度以及乘法因子,确定所述距离;或
基于恒定值和乘法因子确定所述距离。
20.根据权利要求19所述的方法,其中所述乘法因子依赖于搜索轮次索引,并且所述恒定值依赖于或独立于所述目标视频块的所述宽度或所述高度中的至少一项。
21.根据权利要求17-20中任一项所述的方法,还包括以下至少一项:
在BV候选列表中,将非相邻空域BV候选添加到时域运动矢量预测(TMVP)候选之后;或
在所述BV候选列表中,将所述非相邻空域BV候选添加到相邻空域候选之后、所述TMVP候选之前。
22.根据权利要求17所述的方法,其中所述BV候选包括基于所述空域邻近块的空域BV候选,以及
所述空域BV候选包括以下至少一项:
相邻空域候选,或
非相邻空域候选。
23.根据权利要求22所述的方法,其中所述相邻空域候选包括以下至少一项:
左侧空域候选,
上方空域候选,
右上方空域候选,
左下方空域候选,或
左上方空域候选。
24.根据权利要求17所述的方法,其中所述BV候选包括时域块矢量预测(TBVP)候选,并且
其中生成所述BV候选包括:
从位于同位视频块的第一位置的第一TBVP候选和位于所述同位视频块的第二位置的第二TBVP候选中选择所述TBVP候选,所述第一位置位于所述同位视频块的右下方位置,所述第二位置位于所述同位视频块的中心位置。
25.根据权利要求24所述的方法,其中选择所述TBVP候选包括:
如果以下条件中的至少一个被满足,选择所述第二TBVP候选作为所述TBVP候选:
所述右下方位置处的同位图片中的编解码单元(CU)不可用,
所述右下方位置处的所述同位图片中的所述CU是帧内编解码的,
所述右下方位置处的所述同位图片中的所述CU位于编解码树单元(CTU)的当前行之外,或
所述右下方位置处的所述同位图片中的所述CU的BV针对所述目标视频块无效;以及
如果上述条件未被满足,选择所述第一TBVP候选作为所述TBVP候选。
26.根据权利要求24所述的方法,其中选择所述TBVP候选包括:
以预定的顺序选择所述第一TBVP候选或所述第二TBVP候选中的至少一个,所述预定的顺序包括以下一项:
所述第一TBVP候选在所述第二TBVP候选之前,或
所述第一TBVP候选在所述第二TBVP候选之后。
27.根据权利要求17所述的方法,其中所述BV候选包括所述成对BV候选,以及
其中生成所述成对BV候选包括:
通过对多个候选对求均值来生成所述成对BV候选,所述多个候选对包括BV候选列表中的预定的数目的候选的候选对的组合。
28.根据权利要求27所述的方法,其中所述多个候选对的数目在0到6的范围内。
29.根据权利要求27或权利要求28所述的方法,还包括:
在所述BV候选列表中,将所述成对BV候选添加到所述HMVP之后。
30.根据权利要求17所述的方法,其中所述BV候选包括所述STBVP候选,以及
其中生成所述BV候选包括:
确定第一数目的空域BV候选和第二数目的时域BV候选的加权均值作为所述STBVP候选,所述第一数目和所述第二数目是预定的。
31.根据权利要求30所述的方法,其中所述第一数目小于或等于所述BV候选列表中的所述STBVP候选之前的空域BV候选的第三数目。
32.根据权利要求31所述的方法,还包括:
从所述第三数目的空域BV候选中选择所述第一数目的空域BV候选。
33.根据权利要求32所述的方法,其中选择所述第一数目的空域BV候选包括:
基于所述第三数目的空域BV候选的顺序,从所述第三数目的空域BV候选中选择所述第一数目的空域BV候选;或
基于所述第三数目的空域BV候选的指定位置,从所述第三数目的空域BV候选中选择所述第一数目的空域BV候选。
34.根据权利要求30-33中任一项所述的方法,其中所述第一数目是2,并且所述第二数目是1。
35.根据权利要求30-34中任一项所述的方法,还包括以下至少一项:
在所述BV候选列表中,将所述STBVP候选添加到左上方空域BV候选之前;或
在所述BV候选列表中,将所述STBVP候选添加到成对候选之后。
36.根据权利要求17-35中任一项所述的方法,还包括:
基于预定的顺序在所述BV候选列表中添加所述BV候选,所述预定的顺序包括以下至少一项:
相邻空域BV候选、HMVP BV候选以及成对BV候选的第一顺序,
相邻空域BV候选、时域BV候选、HMVP BV候选以及成对BV候选的第二顺序,
相邻空域BV候选、时域BV候选、非相邻空域BV候选、HMVP BV候选以及成对BV候选的第三顺序,
相邻空域BV候选、非相邻空域BV候选、HMVP BV候选以及成对BV候选的第四顺序,或
相邻空域BV候选、时域BV候选、非相邻BV候选、HMVPBV候选以及成对BV候选的第五顺序,其中STBVP候选在左上方空域BV候选之前。
37.根据权利要求36所述的方法,其中所述BV候选列表包括经裁剪的BV候选。
38.根据权利要求36所述的方法,还包括:
如果第一BV候选无效,基于预定的规则从所述第一BV候选生成经裁剪的BV候选,所述经裁剪的BV候选有效;以及
将经裁剪的BV候选添加到所述BV候选列表中。
39.根据权利要求38所述的方法,其中生成所述经裁剪的BV候选包括以下一项:
将最接近所述第一BV候选的有效BV候选确定为所述经裁剪的BV候选;或
将来自预定的BV候选集中的最接近所述第一BV候选的有效BV候选确定为所述经裁剪的BV候选。
40.根据权利要求38或权利要求39所述的方法,其中所述第一BV候选包括非零BV候选。
41.根据权利要求39或权利要求40所述的方法,其中所述预定的BV候选集包括以下至少一项:
位于(-m乘W,0)的位置的第一BV候选,
位于(0,-n乘H)的位置的第二BV候选,
位于(-m乘H,0)的位置的第三BV候选,或
位于(0,-n乘W)的位置的第四BV候选,
其中m和n是正值,W是所述目标视频块的宽度,并且H是所述目标视频块的高度。
42.根据权利要求38-41中任一项所述的方法,其中将所述经裁剪的BV候选添加到所述BV候选列表中包括:
将所述经裁剪的BV候选添加到未经裁剪的BV候选之后。
43.根据权利要求36-42中任一项所述的方法,还包括:
使用所述BV候选列表作为帧内块复制(IBC)合并候选列表或IBC高级运动矢量预测(AMVP)候选列表。
44.根据权利要求36-42中任一项所述的方法,还包括
基于所述BV候选列表,生成帧内块复制(IBC)合并候选列表或IBC高级运动矢量预测(AMVP)候选列表。
45.根据权利要求44所述的方法,其中:
生成所述IBC合并候选列表包括:基于所述BV候选列表中的前第一数目的候选生成所述IBC合并候选列表,
生成所述IBC AMVP候选列表包括:基于所述BV候选列表中的前第二数目的候选生成所述IBC AMVP候选列表。
46.根据权利要求45所述的方法,其中所述第一数目是6,所述第二数目是2。
47.根据权利要求17所述的方法,其中所述BV候选或BV预测包括SbTBVP。
48.根据权利要求47所述的方法,还包括:
通过由所述SbTBVP使用当前图片的同位图片中的BV运动场,针对所述当前图片中的所述目标视频块执行所述BV预测和帧内块复制(IBC)合并模式。
49.根据权利要求48所述的方法,其中所述同位图片与所述时域运动矢量预测(TMVP)使用的所述同位图片相同。
50.根据权利要求48或权利要求49所述的方法,其中执行所述BV预测包括:
从所述目标视频块的空域邻近块中的一个空域邻近块的运动矢量获得运动移位;以及
通过所述SbTBVP,在从所述同位图片获得时域BV信息之前应用所述运动移位。
51.根据权利要求50所述的方法,其中获得所述运动移位包括:
如果左侧空域候选的运动矢量使用所述同位图片作为参考图片,确定所述运动矢量为所述运动移位;以及
如果没有所述左侧空域候选的运动矢量使用所述同位图片作为所述参考图片,确定所述运动移位为零矢量。
52.根据权利要求50或权利要求51所述的方法,其中获得所述运动移位包括:
基于一组空域候选的运动矢量确定所述运动移位,所述一组空域候选包括以下至少一项:
左侧空域候选、上方空域候选、右上方空域候选、左下方空域候选或左上方空域候选。
53.根据权利要求52所述的方法,其中确定所述运动移位包括通过以预定的顺序检查所述一组候选来确定所述运动移位,所述预定的顺序包括以下至少一项:
左侧空域候选、上方空域候选、右上方空域候选、左下方空域候选以及左上方空域候选的第一顺序,
上方空域候选、左侧空域候选、右上方空域候选、左下方空域候选以及左上方空域候选的第二顺序,或
左下方空域候选、左侧空域候选、右上方空域候选、上方空域候选以及左上方空域候选的第三顺序。
54.根据权利要求50-53中任一项所述的方法,还包括:
基于所述同位图片中的子编解码单元(子CU)的BV信息,确定对应子CU的BV信息。
55.根据权利要求54所述的方法,其中所述对应子CU包括覆盖所述子CU的中心样本的最小运动网格。
56.一种用于视频处理方法,包括:
在视频的目标视频块和所述视频的码流之间的转换期间,针对所述目标视频块调整块矢量(BV)候选列表;以及
基于经调整的所述BV候选列表执行所述转换。
57.根据权利要求56所述的方法,其中调整所述BV候选列表包括:
重排序或细化所述BV候选列表。
58.根据权利要求56或57所述的方法,其中所述BV候选列表包括部分BV候选列表或全部BV候选列表,以及
其中调整所述BV候选列表包括:
在生成所述部分BV候选列表或全部BV候选列表之后,重排序所述部分BV候选列表或全部BV候选列表。
59.根据权利要求56-58中任一项所述的方法,其中调整所述BV候选列表包括:
重排序所述BV候选列表的第一子组,所述第一子组位于所述BV候选列表中的第二子组之前;以及
在经重排序的所述BV候选列表中,将所述第一子组的经重排序的候选添加到所述第二子组的经重排序的候选之前。
60.根据权利要求56-59中任一项所述的方法,其中调整所述BV候选列表包括:
基于以下标准中的至少一项重排序所述BV候选列表:
所述BV候选列表中BV候选的模板匹配成本,或
所述BV候选列表中所述BV候选的类别。
61.根据权利要求60所述的方法,还包括:
基于当前模板与参考模板之间的成本度量来确定所述模板匹配成本。
62.根据权利要求61所述的方法,其中所述成本度量包括以下一项:
绝对差和(SAD),
绝对变换差和(SATD),
平方差之和(SSD),
误差平方和(SSE),
均值去除SAD(MRSAD),
均值去除SATD(MR-SATD),
均值去除SSD(MRSSD),
均值去除的SSE(MR-SSE),
加权SAD,
加权MR-SAD,
加权SATD,
加权MR-SATD,
加权SSD,
加权MR-SSD,
加权SSE,
加权MR-SSE,或
梯度信息。
63.根据权利要求61或权利要求62所述的方法,其中:
如果针对所述目标视频块,具有色度缩放的亮度映射(LMCS)被启用,所述当前模板和所述参考模板包括在映射域中的样本。
64.根据权利要求61或权利要求62所述的方法,其中所述当前模板和所述参考模板包括原始域中的样本。
65.根据权利要求61-64中任一项所述的方法,其中调整所述BV候选列表包括:
如果所述参考模板在所述当前图片之外,通过从所述当前图片内离所述参考模板最接近的样本填充所述参考模板来调整所述参考模板;以及
基于经调整的所述参考模板重排序所述BV候选列表。
66.根据权利要求61-64中任一项所述的方法,其中所述参考模板在所述当前图片内。
67.根据权利要求61-64中任一项所述的方法,其中如果所述参考模板未被重构或在所述当前图片之外,对应的所述BV候选不被重排序。
68.根据权利要求60-67中任一项所述的方法,其中基于所述BV候选列表中BV候选的模板匹配成本,将所述BV候选列表重排序包括:
基于所述BV候选列表的子组中BV候选的相应模板匹配成本,将所述子组中的所述BV候选按升序重排序。
69.根据权利要求60-68中任一项所述的方法,其中确定所述模板匹配成本包括:
如果上方模板针对所述目标视频块可用,基于所述上方模板确定所述模板匹配成本;
如果左侧模板针对所述目标视频块可用,基于所述左侧模板确定所述模板匹配成本;或
如果上方模板和左侧模板针对所述目标视频块可用,则基于以下至少一项确定所述模板匹配成本:所述上方模板和所述左侧模板。
70.根据权利要求56-69中任一项所述的方法,还包括:
基于所述BV候选的类别,确定关于以下至少一项的决定:
是否调整所述BV候选列表,或
如何调整所述BV候选列表。
71.根据权利要求56-70中任一项所述的方法,其中调整所述BV候选列表包括:
基于初始BV候选列表,针对所述目标视频块确定最终BV候选列表;以及
重排序所述最终BV候选列表中的V候选;或
重排序所述初始BV候选列表中的BV候选,甚至未被包括在所述最终BV候选列表中的一些候选。
72.根据权利要求56-70中任一项所述的方法,其中调整所述BV候选列表包括:
重排序一组BV候选中的至少一部分,
其中该组BV候选包括以下至少一项:
一组相邻的空域BV候选,
一组非相邻的空域BV候选,
一组基于历史的运动矢量预测(HMVP)BV候选,
一组成对平均BV候选,或
一组空域-时域运动矢量预测(STMVP)候选。
73.根据权利要求56-72中任一项所述的方法,还包括:
确定针对第一BV候选的第一成本;以及
基于所述第一成本,确定将所述第一BV候选添加到所述BV候选列表的决定;以及
基于确定将所述第一BV候选添加到所述BV候选列表,将所述第一BV候选添加到所述BV候选列表。
74.根据权利要求73所述的方法,其中确定关于添加所述第一BV候选的决定包括:
基于所述第一成本与针对第二BV候选的第二成本之间的比较,确定所述决定。
75.根据权利要求56-74中任一项所述的方法,还包括:
利用以下至少一项替换针对帧内模板匹配预测(TMP)的L形模板:
上方模板,或
左侧模板。
76.根据权利要求75所述的方法,其中针对所述帧内TMP的经替换的所述模板中不存在左上方模板。
77.根据权利要求1-76中任一项所述的方法,其中所述转换包括将所述目标视频块编码到所述码流中。
78.根据权利要求1-76中任一项所述的方法,其中所述转换包括从所述码流解码所述目标视频块。
79.一种用于处理视频数据的装置,包括处理器和在其上具有指令的非暂态存储器,其中所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-78中任一项所述的方法。
80.一种非暂态计算机可读存储介质,存储使处理器执行根据权利要求1-78中任一项所述的方法的指令。
81.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中所述方法包括:
确定所述视频的目标视频块的块矢量(BV)候选是否有效;以及
如果确定所述BV候选有效,基于所述BV候选生成所述码流。
82.一种用于存储视频的码流的方法,包括:
确定所述视频的目标视频块的块矢量(BV)候选是否有效;
如果确定所述BV候选有效,基于所述BV候选生成所述码流;以及
将所述码流存储在非暂态计算机可读记录介质中。
83.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中所述方法包括:
从以下至少一项生成所述视频的目标视频块的块矢量(BV)候选:
所述目标视频块的非相邻块,
空域邻近块,时域邻近块,
基于历史的运动矢量预测(HMVP),
成对候选,
空域-时域运动矢量预测(STMVP),或
基于子块的时域块矢量预测(SbTBVP);以及
基于所述BV候选生成所述码流。
84.一种用于存储视频的码流的方法,包括:从以下至少一项生成所述视频的目标视频块的块矢量(BV)候选:
所述目标视频块的非相邻块,
空域邻近块,时域邻近块,
基于历史的运动矢量预测(HMVP),
成对候选,
空域-时域运动矢量预测(STMVP),或
基于子块的时域块矢量预测(SbTBVP);
基于所述BV候选生成所述码流;以及
将所述码流存储在非暂态计算机可读记录介质中。
85.一种非暂态计算机可读记录介质,存储视频的通过由视频处理装置执行的方法生成的码流,其中所述方法包括:
针对所述视频的目标视频块,调整块矢量(BV)候选列表;以及
基于经调整的所述BV候选列表,生成所述码流。
86.一种用于存储视频的码流的方法,包括:
针对所述视频的目标视频块,调整块矢量(BV)候选列表;
基于经调整的所述BV候选列表,生成所述码流;以及
将所述码流存储在非暂态计算机可读记录介质中。
CN202280057532.1A 2021-08-24 2022-08-22 用于视频处理的方法、装置和介质 Pending CN118176731A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNPCT/CN2021/114398 2021-08-24

Publications (1)

Publication Number Publication Date
CN118176731A true CN118176731A (zh) 2024-06-11

Family

ID=

Similar Documents

Publication Publication Date Title
CN113424538A (zh) 解码器侧细化工具的选择性应用
WO2023198131A1 (en) Method, apparatus, and medium for video processing
WO2023072287A1 (en) Method, apparatus, and medium for video processing
CN117529919A (zh) 用于视频处理的方法、设备和介质
CN117813820A (zh) 用于视频处理的方法、装置和介质
CN117337564A (zh) 用于视频处理的方法、装置和介质
CN118176731A (zh) 用于视频处理的方法、装置和介质
CN118077204A (zh) 用于视频处理的方法、装置和介质
WO2024012460A1 (en) Method, apparatus, and medium for video processing
WO2023061306A1 (en) Method, apparatus, and medium for video processing
WO2023098829A1 (en) Method, apparatus, and medium for video processing
WO2023179783A1 (en) Method, apparatus, and medium for video processing
WO2023131047A1 (en) Method, apparatus, and medium for video processing
WO2023061305A1 (en) Method, apparatus, and medium for video processing
WO2023072283A1 (en) Method, apparatus, and medium for video processing
WO2023246634A1 (en) Method, apparatus, and medium for video processing
WO2023193691A1 (en) Method, apparatus, and medium for video processing
WO2024046479A1 (en) Method, apparatus, and medium for video processing
WO2023025114A1 (en) Method, apparatus, and medium for video processing
WO2024067638A1 (en) Method, apparatus, and medium for video processing
WO2024017378A1 (en) Method, apparatus, and medium for video processing
WO2024078550A1 (en) Method, apparatus, and medium for video processing
WO2024002185A1 (en) Method, apparatus, and medium for video processing
WO2023237017A1 (en) Method, apparatus, and medium for video processing
KR20170113513A (ko) 움직임 벡터 정밀성을 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치

Legal Events

Date Code Title Description
PB01 Publication