CN117242479A - 用于视频处理的方法、装置和介质 - Google Patents
用于视频处理的方法、装置和介质 Download PDFInfo
- Publication number
- CN117242479A CN117242479A CN202280025259.4A CN202280025259A CN117242479A CN 117242479 A CN117242479 A CN 117242479A CN 202280025259 A CN202280025259 A CN 202280025259A CN 117242479 A CN117242479 A CN 117242479A
- Authority
- CN
- China
- Prior art keywords
- block
- picture
- target
- motion
- target picture
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 310
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 238000001914 filtration Methods 0.000 claims abstract description 201
- 230000002123 temporal effect Effects 0.000 claims abstract description 123
- 230000033001 locomotion Effects 0.000 claims description 559
- 239000013598 vector Substances 0.000 claims description 243
- 230000008569 process Effects 0.000 claims description 139
- 239000000523 sample Substances 0.000 claims description 125
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 118
- 238000004458 analytical method Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 18
- 239000013074 reference sample Substances 0.000 claims description 18
- 230000003287 optical effect Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 6
- 230000002457 bidirectional effect Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims 1
- 241000723655 Cowpea mosaic virus Species 0.000 description 30
- 238000010586 diagram Methods 0.000 description 23
- 241000023320 Luma <angiosperm> Species 0.000 description 15
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 15
- 238000004891 communication Methods 0.000 description 7
- 238000012935 Averaging Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20182—Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开的实施例提供了一种用于视频处理的方案。提出了一种用于视频处理的方法。该方法包括:获得针对视频的目标图片中的参考图片;至少部分地基于参考图片与目标图片之间的差异来确定参考图片是否要被用于对目标图片进行滤波;以及如果确定参考图片要被用于对目标图片进行滤波,基于参考图片对目标图片执行时域滤波。与传统方案相比,所提出的方法可以有利地提高编解码速度和效率。
Description
技术领域
本公开的实施例一般涉及视频编码技术,并且更具体地,涉及视频编码中的时域滤波。
技术背景
如今,数字视频功能正被应用于人们生活的各个方面。已经针对视频编码/解码,已经提出了多种类型的视频压缩技术,诸如MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频编解码(AVC)、ITU-T H.265高效视频编解码(HEVC)标准、通用视频编解码(VVC)标准。然而,常规视频编解码技术的编解码效率通常非常低,这是不希望的。
发明内容
本公开的实施例提供了一种用于视频处理的方案。
在第一方面中,提出了一种用于视频处理的方法。该方法包括:获得针对视频的目标图片中的参考图片;至少部分地基于参考图片与目标图片之间的差异来确定参考图片是否要被用于对目标图片进行滤波;以及如果确定参考图片要被用于对目标图片进行滤波,基于参考图片对目标图片执行时域滤波。与传统的方案相比,该方法可以有利地提高编解码速度和效率。
在第二方面中,提出了一种电子设备。该电子设备包括:处理单元;以及存储器,耦合到所述处理单元并且具有存储在其上的指令,所述指令在由所述处理单位执行时使所述电子设备执行根据本公开的第一方面的方法。
在第三方面中,提出了一种非瞬态计算机可读存储介质。该非暂态计算机可读存储介质存储指令,该指令使处理器执行根据本公开的第一方面的方法。
在第四方面中,提出了一种非瞬态计算机可读记录介质。所述非暂态计算机可读记录介质存储视频的码流,视频的码流由根据本公开的第一方面的方法生成,其中该方法由视频处理设备执行。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过参考附图的以下详细描述,本公开的示例实施例的上述和其他目的、特征和优点将变得更加明显。在本公开的示例实施例中,相同的附图标记通常指代相同的分量。
图1示出了根据本公开的一些实施例的示例视频编码系统的框图;
图2示出了根据本公开的一些实施例的第一示例视频编码器的框图;
图3示出了根据本公开的一些实施例的示例视频解码器的框图;
图4说明了OBMC适用的子块;
图5示出了基于控制点的仿射运动模型的示意图;
图6示出了每个子块的仿射MVF的示意图;
图7示出了遗传仿射运动预测器的位置的示意图;
图8为控制点运动矢量继承示意图;
图9示出了所构建的仿射合并模式的候选位置的位置的示意框图;
图10示出了子块MV VSB和像素的示意框图;
图11示出了BDOF中使用的扩展CU区域的示意图;
图12示出了解码侧运动矢量细化的示意图;
图13示出了层级运动估计的层的示意图;
图14示出了根据本公开的一些实施例的用于视频处理的方法的流程图;和
图15示出了其中可以实现本公开的各种实施例的计算设备的框图。
在附图中,相同或相似的附图标记通常指代相同或相似元件。
具体实施方式
现在将参考一些实施例来描述本公开的原理。应当理解的是,描述这些实施例仅出于说明并且帮助本领域技术人员理解和实施本公开的目的,而不暗示对本公开的范围的任何限制。除了下文所述的方式之外,本文所描述的公开内容还可以以各种方式实施。
在以下描述和权利要求中,除非另有定义,否则在本文中使用的所有科学术语和技术术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。
本公开中提及的“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可以包括特定的特征、结构或特性,但是并非每个实施例都必须包括该特定的特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合示例实施例描述特定的特征、结构或特性时,无论是否明确描述,认为惩罚与其他实施例相关的这种特征、结构或特性在本领域技术人员的知识范围内。
应当理解的是,尽管术语“第一”和“第二”等可以用于描述各种元素,但这些元素不应受限于这些术语。这些术语仅用于区分一个元素与另一个元素。例如,第一元素可以被称为第二元素,类似地,第二元素可以被称为第一元素,而不脱离示例实施例的范围。如本文中所使用的,术语“和/或”包括一个或多个所列术语的任何和所有组合。
本文中所使用的术语仅用于描述特定实施例的目的,并不旨在限制示例实施例。如本文中所用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应理解,术语“包括”、“包含”和/或“具有”在本文中使用时表示存在所述特征、元素和/或分量等,但不排除一个或多个其他特征、元素、分量和/或其组合的存在或添加。
示例环境
图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可以使用由视频编码器20在视频块的编码期间使用的插值滤波器来计算用于参考块的亚整数像素的内插值。运动补偿单元302可以根据接收到的语法信息来确定由视频编码器200使用的插值滤波器,并且运动补偿单元302可以使用插值滤波器来产生预测块。
运动补偿单元302可以使用至少部分语法信息来确定用于编码经编码视频序列的(多个)帧和/或(多个)条带的块的大小、描述经编码视频序列的图片的每个宏块如何被划分的划分信息、指示每个划分如何被编码的模式、针对每个帧间编码块的一个或多个参考帧(和参考帧列表)、以及对经编码视频序列进行解码的其他信息。如本文中所使用的,在一些方面,“条带”可以是指在熵编码、信号预测和残差异信号重建方面可以独立于同一图片的其他条带而被解码的数据结构。条带可以是整个图片,或者也可以是图片的区域。
帧内预测单元303可以使用例如在码流中接收的帧内预测模式,以从空间相邻块形成预测块。反量化单元303反量化(即,去量化)在码流中提供的、并且由熵解码单元301解码的量化视频块系数。反变换单元303应用反变换。
重建单元306可以例如通过将残差异块与由运动补偿单元202或帧内预测单元303生成的相应预测块相加来获得经解码的块。如果需要的话,还可以应用去块效应滤波器以对经解码的块进行滤波,以便去除块效应伪像。经解码的视频块随后被存储在缓冲307中,缓冲307为后续运动补偿/帧内预测提供参考块,并且缓冲307还产生经解码的视频以供在显示设备上呈现。
下文将详细描述本公开的一些示例性实施例。应当注意,在本文件中使用章节标题是为了便于理解,而不是将章节中公开的实施例仅限于该章节。此外,尽管参考通用视频编解码或其他特定视频编解码器描述了一些实施例,但是所公开的技术也适用于其他视频编解码技术。此外,尽管一些实施例详细描述了视频编码步骤,但是应当理解的是取消编码的相应解码步骤将由解码器实现。此外,术语视频处理包括视频编码或压缩、视频解码或解压缩以及视频转码,在该视频转码中视频像素被从一种压缩格式表示为另一种压缩格式或以不同的压缩码率表示。
1.概述
本公开涉及视频编解码技术。具体地,本公开与视频编解码中的时域滤波有关。本公开可以应用于已有的视频编解码标准,如H.264/AVC、HEVC或通用视频编解码。本公开也可以适用于未来的视频编解码标准或视频编解码器。
2.背景
视频编解码标准主要是通过众所周知的ITU-T和ISO/IEC标准的发展而演进。ITU-T制作了H.261和H.263,ISO/IEC制作了MPEG-1和MPEG-4 Visual,并且这两个组织联合制作了H.264/MPEG-2 Video和H.264/MPEG 4高级视频编解码(AVC)以及H.265/HEVC标准(参见ITU-T和ISO/IEC,“High efficiency video coding”,Rec.ITU-T H.265|ISO/IEC 23008-2(生效版))。自H.262以来,视频编解码标准基于混合视频编解码结构,其中利用时域预测加变换编码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索团队(JVET)。自那以后,JVET采用了许多新的方法,并将这些方法放入名为联合探索模型(JEM)的参考软件中(参见J.Chen,等.,“Algorithm description of JointExploration Test Model 7(JEM7)”,JVET-G1001,2017年8月;JEM-7.0:https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0)。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)成立了联合视频专家组(JVET),致力于制定VVC标准,目标是与HEVC相比降低50%的码率。
VVC草案的最新版本,即通用视频编解码(草案10),可在以下网址找到:
https://jvet-experts.org/doc_end_user/documents/20_Teleconference/wg11/JVET-T2001-v2.zip
VVC的最新参考软件VTM可在以下网址找到:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-12.0.
2.1重叠块运动补偿
重叠块运动补偿(OBMC)以前已在H.263中使用。在JEM中,与H.263不同,OBMC可以使用CU级别的语法来被打开和关闭。当在JEM中使用OBMC时,除了CU的右边界和下边界之外,对所有运动补偿(MC)块边界执行OBMC。此外,它还适用于亮度和色度分量。在JEM中,MC块对应于编码块。当用子CU模式(包括子CU合并、仿射和FRUC模式)对CU进行编码时,CU的每个子块都是MC块。图4示出了OBMC应用的子块的示意图400。为了以统一的方式处理CU边界,在子块级别对所有MC块边界执行OBMC,其中子块大小设置为等于4×4,如图4所示。
当OBMC应用于当前子块时,除了当前运动矢量之外,如果可用并且与当前运动矢量不相同的四个连接的邻居子块的运动矢量也用于导出当前子块的预测块。这些基于多个运动矢量的多个预测块被组合以生成当前子块的最终预测信号。
将基于邻居子块的运动矢量的预测块表示为PN,其中N指示邻居的上、下、左和右子块的索引,并且将基于当前子块的运动矢量的预测区块表示为PC,OBMC不是从PN执行的。否则,PN的每个样本都被添加到PC中的同一样本,即,PN的四个行/列被添加到PC。加权因子{1/4,1/8,1/16,1/32}被用于PN,并且加权因子{3/4,7/8,15/16,31/32}被用于PC。小的MC块除外,(即,当编码块的高度或宽度等于4时,或者用CU模式对CU进行编解码时),其中只有两个行/列PN被添加到PC。在这种情况下,加权因子{1/4,1/8}被用于PN,而加权因子{3/4,7/8}被用于PC。对于基于垂直(水平)邻居子块的运动矢量生成的PN,PN的同一行(列)中的样本被添加到具有相同加权因子的PC。
在JEM中,对于大小小于或等于256个亮度样本的CU,会用信号发送CU级别标志,以指示当前CU是否应用OBMC。对于大小大于256个亮度样本或未使用AMVP模式编码的CU,默认情况下应用OBMC。在编码器处,当OBMC被应用于CU时,其惩罚在运动估计阶段被考虑在内。OBMC使用顶部邻居块和左侧邻居块的运动信息形成的预测信号用于补偿当前CU的原始信号的顶部和左侧边界,然后应用常规的运动估计过程。
2.2仿射运动补偿预测
在HEVC中,只有平移运动模型被应用于运动补偿预测(MCP)。而在现实世界中,有很多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在VVC中(参见J.Chen,等.,“Algorithm description for Versatile Video Coding and Test Model 11(VTM11),”JVET-T2002,2020年12月),应用了基于块的仿射变换运动补偿预测。图5示出了基于控制点的仿射运动模型的示意图。如图5所示,块的仿射运动场由两个控制点(4参数)或三个控制点运动矢量(6参数)的运动信息描述。
对4参数仿射运动模型510,块中样本位置(x,y)处的运动矢量被导出为:
对6参数仿射运动模型520,块中样本位置(x,y)处的运动矢量被导出为:
其中,(mv0x,mv0y)是左上角控制点的运动矢量,(mv1x,mv1y)是右上角控制点的运动矢量,并且(mv2x,mv2y)是左下角控制点的运动矢量。
为了简化运动补偿预测,应用了基于块的仿射变换预测。图6示出了按子块的仿射MVF的示意。为了导出每个4×4亮度子块的运动矢量,根据上述公式计算每个子块的中心样本的运动矢量(如图6所示),并四舍五入到1/16分数准确度。然后应用运动补偿插值滤波器来生成具有导出的运动矢量的每个子块的预测。色度分量的子块大小也被设置为4×4。4×4色度子块的MV被计算为并置的8x8亮度区域中的左上和右下亮度子块的MV的平均值。
与平移运动帧间预测一样,还有两种仿射运动帧间预测模式:仿射合并模式和仿射AMVP模式。
2.2.1仿射合并预测
AF_MERGE模式可应用于宽度和高度均大于或等于8的CU。在该模式中,基于空间邻居CU的运动信息来生成当前CU的CPMV。最多可以有五个CPMVP候选,并用信号发送索引来指示要用于当前CU的一个。以下三种类型的CPVM候选用于形成仿射合并候选列表:
–从邻居CU的CPMV推断的继承仿射合并候选
–使用邻居CU的平移MV导出的构建仿射合并候选CPMVP
–零MV
在VVC中,最多有两个继承的仿射候选,它们是从邻居块的仿射运动模型导出的,一个来自左邻居CU,一个从上邻居CU。7示出了继承的仿射运动预测器的位置的示意图710。候选块如图7所示。对于左边的预测器,扫描顺序为A0->A1,对于上方的预测器,扫描顺序为B0->B1->B2。只选择从每一侧继承的第一个候选。在两个继承的候选之间不执行修剪检查。当识别出邻居的仿射CU时,其控制点运动矢量被用于导出当前CU的仿射合并列表中的CPMVP候选。图8示出了控制点运动矢量继承的示意图。如图8所示,如果以仿射模式对邻居的左下块A810进行编解码,则获得包含块A810的CU 820的左上角、右上角和左下角的运动矢量v2、v3和v4。当块A 810用4参数仿射模型编解码时,根据v2和v3,计算当前CU 820的两个CPMV。当块A 810用6参数仿射模型进行编解码时,根据v2、v3和v4来计算当前CU 820的三个CPMV。
构建的仿射候选是指候选是通过组合每个控制点的邻居平移运动信息来构建的。控制点的运动信息是从图9中所示的指定空间邻居和时域邻居导出的,图9示出了当前块910所构建的仿射合并模式的候选位置的位置的示意图。CPMVk(k=1,2,3,4)表示第k个控制点。对于CPMV1,检查B2->B3->A2块,并使用第一个可用块的MV。对于CPMV2,检查B1->B0块,并且对于CPMV3,检查A1->A0块。TMVP用作CPMV4(如果可用的话)。
在获得四个控制点的MV之后,基于这些运动信息构建仿射合并候选。控制点MV的以下组合按顺序被用于构建:
{CPMV1,CPMV2,CPMV3},{CPMV1,CPMV2,CPMV4},{CPMV1,CPMV3,CPMV4},{CPMV2,CPMV3,CPMV4},{CPMV1,CPMV2},{CPMV1,CPMV3}
3个CPMV的组合构建6参数仿射合并候选,2个CPMV的组合构建4参数仿射合并候选。为了避免运动缩放过程,如果控制点的参考索引不同,则丢弃控制点MV的相关组合。
在检查继承的仿射合并候选和构建的仿射合并候选之后,如果列表仍然不满,则将零MV插入到列表的末尾。
2.2.2仿射AMVP预测
仿射AMVP模式可被应用于宽度和高度均大于或等于16的CU。在码流中用信号发送CU级别的仿射标志以指示是否使用仿射AMVP模式,然后用信号发送另一个标志以指示是4参数仿射还是6参数仿射。在该模式中,在码流中用信号发送当前CU的CPMV与其预测CPMVP的差异。仿射AVMP候选列表大小为2,并且通过按顺序使用CPVM候选的以下四类型来生成:
–从邻居CU的CPMV推断的继承仿射AMVP候选
–使用邻居CU的平移MV导出的构建仿射AMVP候选CPMVP
–来自邻居CU的平移MV
–零MV
继承的仿射AMVP候选的检查顺序与继承的仿射合并候选的检查顺序相同。唯一的区别在于,对于AVMP候选,仅考虑具有与当前块中相同的参考图片的仿射CU。当将继承的仿射运动预测器插入候选列表时,不应用修剪过程。
构建的AMVP候选是从图9所示的指定空间邻居中导出的。使用与仿射合并候选构建中相同的检查顺序。此外,还检查邻居块的参考图片索引。使用检查顺序中的第一个块,该块被帧间编解码并且具有与当前CU中相同的参考图片。只有一个。当当前CU是用4参数仿射模式编解码的,并且mv0和mv1都可用时,它们被添加为仿射AMVP列表中的一个候选。当用6参数仿射模式对当前CU进行编解码,并且所有三个CPMV都可用时,它们被添加为仿射AMVP列表中的一个候选。否则,构建的AMVP候选将被设置为不可用。
如果在有效的继承仿射AMVP候选和构建的AMVP候选被插入之后仿射AMVP列表候选的数目仍然小于2,mv0,mv1和mv2将被按顺序添加为平移MV,以在可用时预测当前CU的所有控制点MV。最后,如果仿射AMVP列表仍然未满,则使用零MV来填充该列表。
2.2.3具有针对仿射模式的光流的预测细化
与基于像素的运动补偿相比,基于子块的仿射运动补偿可以节省存储器访问带宽并降低计算复杂度,成本是预测精度惩罚。为了实现更细化的运动补偿粒度,使用光流预测细化(PROF)来细化基于子块的仿射运动补偿预测,而不增加用于运动补偿的存储器访问带宽。在VVC中,在执行基于子块的仿射运动补偿之后,通过添加由光流公式导出的差异来细化亮度预测样本。PROF被描述为以下四个步骤:
步骤1)执行基于子块的仿射运动补偿以生成子块预测I(i,j)。
步骤2)在每个样本位置使用3抽头滤波器[-1,0,1]。计算子块预测的空间梯度gx(i,j)和gy(i,j)。梯度计算与BDOF中的梯度计算完全相同。
gx(i,j)=(I(i+1,j)>>shift1)-(I(i-1,j)>>shift1) (2-3)
gy(i,j)=(I(i,j+1)>>shift1)-(I(i,j-1)>>shift1) (2-4)
shift1用于控制梯度的精度。子块(即4x4)预测在每侧上扩展一个样本用于梯度计算。为了避免额外的存储器带宽和额外的插值计算,扩展边界上的那些扩展样本是从参考图片中最近的整数像素位置复制的。
步骤3)通过以下光流公式来计算亮度预测细化。
ΔI(i,j)=gx(i,j)*Δvx(i,j)+gy(i,j)*Δvy(i,j) (2-5)
其中,Δv(i,j)是为样本位置(i,j)计算的样本MV(由v(i,j)表示)和样本(i,j)所属子块的子块MV之间的差异,图10示出了子块MV VSB和像素Δv(i,j)的示意框图(由图10中的箭头1002表示)。Δv(i,j)以1/32亮度样本精度为单位进行量化。
由于仿射模型参数和相对于子块中心的样本位置不会因子块而异,因此可以针对第一个子块的Δv(i,j)进行计算,并可重复用于同一CU中的其他子块。设dx(i,j)和dy(i,j)为从样本位置到子块的中心(xSB,ySB)的水平和垂直偏移,Δv(x,y)可由下式导出:
为了保持准确度,子块(xSB,ySB)的输入计算为((WSB-1)/2,(HSB-1)/2),其中WSB和HSB分别是子块的宽度和高度。
对于4参数仿射模型,
对于6参数仿射模型,
其中,(v0x,v0y),(v1x,v1y),(v2x,v2y)是左上、右上和左下控制点运动矢量,w和h是CU的宽度和高度。
步骤4)最后,亮度预测细化ΔI(i,j)被添加到子块预测I(i,j)。最终预测I’按以下公式生成。
I′(i,j)=I(i,j)+ΔI(i,j)
对于仿射编码的CU,在两种情况下不应用PROF:1)所有控制点MV都相同,这指示CU仅具有平移运动;2)仿射运动参数大于指定的限制,因为基于子块的仿射MC被降级为基于CU的MC,以避免大量存储器访问带宽需求。
应用快速编码方法来降低使用PROF的仿射运动估计的编码复杂度。在以下两种情况下,在仿射运动估计阶段不应用PROF:A)如果该CU不是根块并且其父块没有选择仿射模式作为其最佳模式,由于当前CU选择仿射模式作为最佳模式的可能性低,所以不应用PROF;b)如果四个仿射参数(C、D、E、F)的幅度都小于预定阈值,并且当前图片不是低延迟图片,则不应用PROF。在这种情况下使用PROF进行仿射运动估计的速度就会加快。
2.3双向光流
双向光流(BDOF)工具包含在VVC中。BDOF,以前被称为BIO,被包括在JEM中。与JEM版本相比,VVC中的BDOF是一个更简单的版本,需要更少的计算,尤其是在乘法数目和乘数大小方面。
BDOF用于在4×4子块级别细化CU的双向预测信号。如果CU满足以下所有条件,则将BDOF应用于CU:
-CU使用“真”双向预测模式进行编码,即两个参考图片中的一个在显示顺序上位于当前图片之前,另一个在当前图片之后
-从两个参考图片到当前图片的距离(即POC差异)相同
-两张参考图片均为短期参考图片。
-CU未使用仿射模式或SbTMVP合并模式进行编解码
-CU有超过64个亮度样本
-CU高度和CU宽度均大于或等于8个亮度样本
-BCW权重指数表示相等的权重
-当前CU未启用WP
-CIIP模式未被当前CU使用
BDOF仅应用于亮度分量。正如其名称所指示,BDOF模式基于光流概念,该概念假设物体的运动是平滑的。对于每个4×4个子块,通过最小化L0和L1预测样本之间的差异来计算运动细化(vx,vy)。然后使用运动细化来调整4x4子块中的双向预测样本值。以下步骤应用于BDOF过程。
首先,通过直接计算两个邻居样本之间的差异来计算两个预测信号的水平和垂直梯度,即和/>k=0,1,
其中I(k)(i,j)是列表k中预测信号的坐标(i,j)处的样本值,k=0,1,并且基于亮度比特深度bitDepth计算shift1,shift1=max(6,bitDepth-6)。
然后,梯度S1,S2,S3,S5和S6的自相关和互相关计算如下
其中
其中,Ω是围绕4×4子块的6×6窗口,na和nb的值分别设置为min(1,bitDepth-11)和min(4,bitDepth-8)。
然后,使用互相关和自相关项,使用以下公式导出运动细化(vx,vy):
其中 是向下取整函数,以及/>
基于运动细化和梯度,为4×4子块中的每个样本计算以下调整:
/>
最后,通过如下调整双向预测样本来计算CU的BDOF样本:
选择这些值使得BDOF处理中的乘数不超过15比特,并且BDOF处理的中间参数的最大位宽保持在32比特以内。
为了导出梯度值,需要生成当前CU边界之外的列表(k(k=0,1))中的一些预测样本I(k)(i,j)。图11示出了BDOF中使用的扩展CU区域的示意图。如图11的图1100所示,VVC中的BDOF在CU的边界周围使用一个扩展行/列。为了控制生成边界外预测样本的计算复杂度,通过直接在附近整数位置获取参考样本(使用坐标上的floor()操作)而无需插值来生成扩展区域(图11中表示为1110)中的预测样本,普通的8抽头运动补偿插值滤波器用于在CU内生成预测样本(在图11中表示为1120)。这些扩展样本值仅用于梯度计算。对于BDOF过程中的其余步骤,如果需要CU边界之外的任何样本和梯度值,则从其最近的邻居填充(即重复)这些值。
当CU的宽度和/或高度大于16个亮度样本时,它将被分割成宽度和/或者高度等于16个亮度样本的子块,并且子块边界在BDOF过程中被视为CU边界。BDOF过程的最大单元尺寸限制为16x16。对于每个子块,可以跳过BDOF过程。当初始L0和L1预测样本之间的SAD小于阈值时,BDOF处理不应用于子块。阈值设置为等于(8*W*(H>>1),其中W表示子块宽度,H表示子块高度。为了避免SAD计算的额外复杂度,这里重新使用在DVMR过程中计算的初始L0和L1预测样本之间的SAD。
如果为当前块启用BCW,即BCW权重指数指示不相等的权重,则禁用双向光流。类似地,如果为当前块启用WP,即,对于两个参考图片中的任一个,luma_weight_lx_flag为1,则BDOF也被禁用。当CU以对称MVD模式或CIIP模式编码时,BDOF也被禁用。
2.4解码器侧运动矢量细化(DMVR)
为了提高合并模式MV的精度,在VVC中应用了基于双向匹配(BM)的解码器侧运动矢量细化。在双向预测操作中,在参考图片列表L0和参考图片列表L1中的初始MV周围搜索细化的MV。BM方法计算参考图片列表LO和列表L1中两个候选块之间的失真。如图12所示,基于初始MV周围的每个MV候选,计算1210和1212之间的SAD,其中,对于当前图片3402,块1210在列表L0中的参考图片3401中,块1212在列表L1中的参考图片1203中。具有最低SAD的MV候选成为细化MV,并用于生成双向预测信号。
在VVC中,DMVR的应用受到限制,仅适用于具有以下模式和功能的CU:
-具有双向预测MV的CU级别合并模式
-相对于当前图片,一张参考图片在过去,另一张参考图片在未来
-从两个参考图片到当前图片的距离(即POC差异)相同
-两张参考图片均为短期参考图片
-CU有超过64个亮度样本
-CU高度和CU宽度均大于或等于8个亮度样本
-BCW权重索引表示相等的权重
-当前块未启用WP
-CIIP模式未用于当前块
DMVR过程导出的细化MV用于生成帧间预测样本,并且还用于未来图片编解码的时域运动矢量预测。而原始MV被用于去块过程,并且还被用于未来CU编解码的空间运动矢量预测。
DMVR的附加功能在以下子条款中有所提及。
2.4.1搜索方案
在DVMR中,搜索点围绕初始MV,并且MV偏移服从MV差异镜像规则。换句话说,由候选MV对(MV0,MV1)表示的DMVR检查的任何点遵循以下两个公式:
MV0′=MV0+MV_offset (2-16)
MV1′=MV1-MV_offset (2-17)
其中,MV_offset表示参考图片之一中的初始MV和细化MV之间的细化偏移。细化搜索范围是从初始MV开始的两个整数亮度样本。搜索包括整数样本偏移搜索阶段和分数样本细化阶段。
整数样本偏移搜索采用25点全搜索。首先计算初始MV对的SAD。如果初始MV对的SAD小于阈值,则DMVR的整数采样级终止。否则,剩余24个点的SAD按光栅扫描顺序进行计算和检查。选择SAD最小的点作为整数样本偏移搜索阶段的输出。为了减少DMVR细化不确定性的惩罚,建议在DMVR过程中支持原始MV。由初始MV候选参考的参考块之间的SAD减少了SAD值的1/4。
整数样本搜索之后是分数样本细化。为了节省计算复杂度,利用参数误差异曲面公式导出了分数样本细化,而不是使用SAD比较进行附加搜索。分数样本细化是基于整数样本搜索阶段的输出有条件地调用的。当整数样本搜索阶段在第一次迭代或第二次迭代搜索中以具有最小SAD的中心结束时,进一步应用分数样本细化。
在基于参数误差异表面的亚像素偏移估计中,中心位置成本和距中心四个邻居位置的成本用于拟合以下形式的2D抛物型误差异表面公式:
E(x,y)=A(x-xmin)2+B(y-ymin)2+C (2-18)
其中(xmin,ymin)对应于具有最小成本的分数位置,C对应于最小成本值。通过使用五个搜索点的成本值求解上述公式,(xmin,ymin)被计算为:
xmin和ymin的值被自动限制在-8和8之间,因为所有成本值都为正,最小值为E(0,0)。这对应于VVC中具有1/16像素MV精度的半像素偏移。所计算的分数(xmin,ymin)被添加到整数距离细化MV以获得亚像素精确的细化增量MV。
2.4.2双线性插值和样本填充
在VVC中,MV的分辨率是1/16亮度样本。使用8抽头插值滤波器对分数位置处的样本进行插值。在DMVR中,搜索点围绕具有整数样本偏移的初始分数像素MV,因此需要对这些分数位置的样本进行插值以进行DMVR搜索过程。为了降低计算复杂度,双线性插值滤波器用于生成DMVR中搜索过程的分数样本。另一个重要的效果是,通过使用双线性滤波器,在2样本搜索范围内,与常规的运动补偿过程相比,DVMR不会访问更多的参考样本。在通过DMVR搜索过程获得细化的MV之后,应用普通的8抽头插值滤波器来生成最终预测。为了不访问常规MC过程的更多参考样本,将从那些可用样本中填充样本,这些样本对于基于原始MV的插值过程是不需要的,但是对于基于精细MV的插值处理是需要的。
2.4.3最大DMVR处理单元
当CU的宽度和/或高度大于16个亮度样本时,它要被进一步划分为宽度和/或者高度等于16个亮度采样的子块。DMVR搜索过程的最大单元大小限制为16x16。
3运动补偿时域滤波
针对VTM提出了运动补偿时域滤波(MCTF)(见P.Wennersten等,“AHG10:Encoder-only GOP-based temporal filter”JVET-O0549,2019年6月;J.Enhorn等,“AHG10:Performance of the GOP-based temporal filter in VTM-6.1”JVET-P0328,2019年10月;P.Wennerten等,“[AHG10]GOP-based temporal filter improvements,”JVET-U0056,2020年12月)。时域滤波器过程包括用于产生运动补偿的参考图片的层级运动估计方案。按输出顺序在当前图片之前的几个参考图片,此外为了随机访问,按输出顺序跟随当前图片的几个图片相对于当前图片进行运动补偿。然后应用双向滤波器来计算得到的滤波样本。双向滤波器中的权重取决于时间样本差异(逐样本差异和块级别差异)、参考图片和当前图片之间的距离以及量化器参数(QP)值。滤波后的图片用于编码,原始未滤波的图片用于BD率计算。
步骤1:编码器读取图片。
步骤2:如果图片在图片组(GOP)中的编码层次结构中足够低,则在编码之前对其进行滤波。否则,对图片进行编码而不进行滤波。
步骤3:对于RA(随机访问),读取原始图片前后最多4个邻居图片。在例如原始图片是第一张图片或接近最后一张图片的情况下,只读取可用图片。
步骤4:对邻居图片应用运动估计和运动补偿方法。这是在8x8亮度块上完成的。
使用层级运动估计方案,子样本的层级结构1300如图13中所示,其中图片L0 1301是当前图片。图片L1 1302是通过对L0中的样本值的2x2个块进行平均而生成的。然后,通过对L1中的2x2个样本值块进行平均来生成图片L2 1303。运动估计是通过第一L2全像素运动矢量搜索来完成的。然后对最佳运动矢量进行缩放,并将其用作L1中的全像素搜索的起点。然后,再次缩放找到的最佳运动矢量,并将其用作L0中的全像素搜索的起点,随后进行最后的第16个亚像素搜索。然后应用运动补偿。
步骤5:将原始图片的所有样本值替换为滤波后的样本值。
对于亮度样本,参考样本的权重wr(i,a)计算如下:
其中基本权重bw是0.4,西格玛权重sw是2,ΔI(i)是当前样本与当前样本的参考样本之间的差异。权重也基于简单的频率测量进行调整,当时间差异是低频时,具有较弱的滤波,因为这种差异的编解码成本较低,因此更有可能被编解码。相应地,当时间差异具有更高的频率时,我们使用更强的滤波。
步骤6:滤波后的图片被编码。
3.1误块加权
在这里,我们计算每个8x8块和参考帧的误差异E。设SSD为运动补偿后原始块与参考帧中对应块之间的平方差之和,设V为原始块的方差异。则E被计算为:
如果E小于50,则该块中来自该参考帧的像素的基本权重乘以1.2。如果E大于100,则基本权重乘以0.6。如果E大于50,则西格玛权重乘以0.8。
3.2块频率加权
在这里,我们为每个8x8块和参考帧计算频率度量F。为此,我们首先计算运动补偿后原始块和参考帧中对应块之间的像素差异,以创建差异块D。我们计算D中水平邻居值之间的平方差之和,同样计算垂直邻居值的平方差之和,VSD。最后,我们计算了D的正常平方值之和,SSD。然后我们将F计算为
如果F大于或等于25,则该块中来自该参考帧的像素的基本权重乘以0.6,西格玛权重乘以0.8。
3.3参考帧加权
VTM中现有的滤波器具有取决于原始帧和参考帧之间的时间距离的权重。当参考帧仅在一个方向上可用时,距离1和2的so分别为1.2和1.0。当参考帧在两个方向上都可用时,权重分别为0.85和0.6。
我们对滤波器进行了修改,在可用的情况下,在任何方向上最多使用四个帧。当只有一个方向可用时,对于距离1、2、3和4的新基本权重分别为1.13、0.97、0.81和0.57,否则分别为0.85、0.57、0.41和0.33。
此外,基于第2.1节中描述的块误差异E来修改权重。我们计算与当前块在时间上每个相邻块的最小值E。然后将每个块中的权重乘以
3.4运动估计更改
我们对滤波器执行的运动估计进行了三次更改。首先,确定每个块的最终8x8运动矢量的过程不再进行任何全像素运动搜索。其次,零运动矢量总是在从较高的时域层检索到最佳附近矢量之后进行评估。最后,在分数运动估计之后,我们考虑切换到来自上面和左边块的最终运动矢量。
4.问题
在当前的MCTF中,存在以下几个问题:
1.当参考图片可用时,即使它与当前图片属于不同的场景,总是用于滤波当前图片,这是不合理的。
2.在编码过程中,采用金字塔运动估计方法来搜索参考图片中的块可能参考当前块。然而,这种方法不能适应不同的编码过程。
3.在运动估计过程中使用固定的块大小,这可能是不合理的。
4.在运动估计过程中不考虑色度分量。
5.对于当前块,在参考图片上仅标识一个参考块。
6.在运动估计中只考虑平移运动模型,这对于具有旋转、缩放等功能的视频来说是低效的。
7.公式(2-21)中的参数σl(QP)是固定的,不能适应真实分布。
5.发明内容
为了解决上述问题,提出了对时域滤波的改进。
下面的详细发明内容应当被认为是解释一般概念的示例。这些发明内容不应被狭隘地解释。此外,这些发明内容可以以任何方式组合。
1.可以自适应地确定参考图片是否可以用于对当前图片进行滤波。
a.在一个示例中,当参考图片属于与当前图片不同的场景(例如,检测到场景改变)时,它可以不被用于滤波当前图片。
b.在一个示例中,当参考图片与当前图片不相似时,它可以不被用于滤波当前图片。
i.例如,对参考图片执行运动估计,以找到当前图片的至少一个块的参考块。当至少一个块与对应的参考块之间的差异大于第一阈值时,参考图片可以不被用于对当前图片进行滤波。
ii.例如,当参考图片和当前图片之间的差异大于第二阈值时,参考图片可以不被用于对当前图片进行滤波。
iii.第一阈值或/和第二阈值可以取决于视频或/和当前图片的内容。例如,较大的阈值可以用于具有较大梯度/方差的图片。
iv.第一阈值或/和第二阈值可以取决于视频的分辨率。
v.不同的第一阈值或/和第二阈值可以被应用于亮度和分量。
vi.第一阈值或/和第二阈值可以取决于运动估计的块大小。
2.可以自适应地确定参考块是否可以用于对当前块进行滤波。
a.在一个示例中,当参考块和当前块之间的差异大于第三阈值时,参考块可以不被用于对当前块进行滤波。
i.第三阈值可以取决于视频或/和当前图片的内容。例如,较大的阈值可以用于具有较大梯度/方差的图片。
ii.第三阈值可以取决于视频的分辨率。
iii.不同的阈值可以应用于亮度和分量。
iv.第三阈值可以取决于运动估计的块大小。
3.参考图片数目可以取决于但不限于最大可用参考图片数目、视频分辨率、应用场景的速度要求、码率、时域层。
a.在一个示例中,参考图片编号可以小于或等于最大可用参考图片编号。
b.在一个示例中,不同数目的参考图片可以用于不同分辨率的视频。
c.在一个示例中,如果需要快速编码,则可以使用更少的参考图片。
d.在一个示例中,不同数目的参考图片可以用于不同的码率。
i.例如,更多的参考图片可以被用于高码率。
e.在一个示例中,不同数目的参考图片可以被用于不同时域层的图片。
i.例如,更多的参考图片可以被用于低时域层的图片。
4.图片是否被滤波可以由但不限于参考图片数目、视频分辨率、应用场景的速度要求、码率、时域层来确定。
a.在一个示例中,如果没有可用的参考图片,则可以不对当前图片进行滤波。
b.在一个示例中,可以针对不同的视频分辨率来滤波不同数目的图片。
c.在一个示例中,如果需要快速编码,则可以滤波更少的图片。
i.例如,可以每N帧对当前图片进行滤波。(N>1)
d.在一个示例中,可以针对不同的码率对不同数目的图片进行滤波。
e.在一个示例中,在高时域层的图片可以不被滤波。
5.重构图片可以用作时域滤波的参考图片,而不是原始图片。
6.参考块的加权可以取决于但不限于参考图片数目、参考距离、预测方向、颜色分量(亮度或色度)、运动估计的块大小、
比特深度、参考块和当前块之间的差异、时域层。
7.可以将更高的优先级分配给在运动估计过程中设置的预定运动矢量。
a.在一个示例中,对于包括在预定集中的运动矢量,可以降低由运动矢量标识的当前块和参考块之间的差异。
i.例如,该差异可以减少N个百分比,例如N=25。
ii.例如,差异可以减少一个常量。
b.在一个示例中,预定运动矢量集可以包含零运动矢量。
8.可以自适应地确定在运动估计过程中使用的块大小。
a.在一个示例中,可以针对区域或处理单元(例如,CTU、CTU行、图块、条带、图片或视频)自适应地确定块大小。
b.在一个示例中,较大的块大小可以用于具有较慢运动的区域/处理单元。
c.在一个示例中,较大的块大小可以用于具有更平滑内容的区域/处理单元。
i.例如,平滑度可以由梯度或/和方差来定义。
d.在一个示例中,块大小可以基于已经编码的图片/图块/条带/CTU/CU/PU(预测单元)/块等的编解码信息(例如,运动矢量信息、或/和块大小信息、或/和分割信息、或/和成本信息,或/和残差异信息)来确定。
e.在一个示例中,可以基于在金字塔运动估计过程中已经导出的运动矢量信息或/和成本信息来确定块大小。
f.在一个示例中,块大小可以由但不限于参考图片数目、视频分辨率、应用场景的速度要求、码率、比特深度、时域层来确定。
9.时域滤波中的分数运动估计可不被使用。
a.在一个示例中,当需要快速编码时,可以禁用分数运动估计。
b.在一个示例中,可以自适应地禁用分数运动估计。
i.例如,可以针对具有屏幕内容的视频禁用分数运动估计。
10.提出了在金字塔运动估计中,在第一层中导出的信息可以用于确定第二层中的方法的参数或/和启用。
a.在一个示例中,该方法可以包括向预定MV集分配更高的优先级(如第7项中所述的)。
i.例如,当第一层中零MV与所有MV的比率小于阈值时,可以在第二层中禁用这种方法。
b.在一个示例中,在第一层中获得的信息可以用于决定在第二层的运动估计中使用的块大小。
i.在一个示例中,与第一层中的至少一个MV相关的成本(例如,均方误差异)可以用于决定块大小。
c.在一个示例中,在比当前层高的至少一个层中导出的信息可以用于确定用于当前层的方法的参数或/和启用。
11.提出了用于导出参考样本的权重的参数可以根据预测图片(即,利用MV信息,可以为当前图片的每个样本生成参考样本)和原始图片自适应地确定。
a.在一个示例中,参数可以包括在公式(2-21)中的σl(QP)。例如,它可以根据预测图片和原始图片之间的差异的方差来导出。
12.公式(2-21)中没有使用固定参数σl(QP),而是将该参数视为随机变量。同时,可以根据参数的分布来导出参考样本的权重。
a.在一个示例中,σl(QP)被假设是正态分布的。
b.在一个示例中,仅随机变量的值的子集用于导出参考样本的权重。
13.在运动估计过程中可以考虑色度分量。
a.例如,当前色度块和由运动矢量标识的参考色度块之间的差异(可以在使用之前缩放)可以包括在运动矢量的成本中。
14.可以在用于当前块的参考图片上标识多于一个的参考块。
a.在一个示例中,可以通过执行具有不同块大小的运动估计来获得不同的参考块。
b.在一个示例中,可以通过使用在不同金字塔层处导出的运动矢量来获得不同的参考块。
c.在一个示例中,可以使用与M(M>=1)个最小成本相对应的参考块。
15.运动矢量的值可能在运动估计过程中受到惩罚。
a.例如,lambda*(abs(mv_x)+abs(mv_y))可以包括在运动矢量的成本中,其中lambda可以取决于QP值,并且mv_x和mv_y分别是运动矢量的水平分量和垂直分量。
b.备选地,可以为块导出运动矢量预测器(例如,基于邻居块的运动矢量或/和在更高层中导出的运动矢量),并且可以惩罚运动矢量和运动矢量预测器之间的差异。
16.可以执行多遍编码以改进时域滤波。
a.在一个示例中,在第i个编码过程中生成的运动矢量可以用于第(i+1)个编码过程的时域滤波。
17.在时域滤波过程中可以考虑仿射模型。
a.例如,在运动估计/运动补偿过程中可以使用4参数或/和6参数仿射模型。
b.可以自适应地确定是否考虑仿射模型。
i.例如,仅当在编码过程中仿射运动模型被启用时,才可以考虑仿射运动模型。
ii.例如,该确定可以取决于仿射编解码块与所有块的率。
c.此外,在仿射预测中可以使用PROF。
18.OBMC可以用于改进对当前图片的预测。
19.BDOF可以用于改进对当前图片的预测。
20.DMVR可以用于改进块的运动矢量。
21.在预分析过程中导出的信息(其中针对子样本源图片中的块导出帧间成本和帧内成本)可以在时域滤波过程中使用。
a.在一个示例中,可以在时域滤波过程中使用在预分析过程中导出的运动矢量。
b.在一个示例中,在预分析过程中导出的帧内成本和帧内成本可以用于在滤波过程中确定参考块或参考样本的权重。
22.在时域滤波过程中导出的运动矢量可以用于模式决策过程中。
a.在一个示例中,在时域滤波过程中导出的运动矢量可以用于确定CU/PU/MB(宏块)/块的开始搜索点。
23.在时域滤波过程中导出的运动矢量可以用于预分析过程中。
24.可以对图片的至少一个样本执行空间滤波。
a.在一个示例中,可以为块或区域确定至少一个方向。
i.该至少一个方向可以根据该区域内的至少一个样本的梯度来确定。
ii.至少一个方向可以来自所允许的帧内预测方向。
(i)此外,备选地,可以导出该区域内的至少一个样本的帧内预测。
(ii)或者,可以使用至少一个样本与其预测样本之间的差异来确定方向。
b.在一个示例中,可以使用区域内的样本对区域的邻居样本进行滤波。
i.例如,可以对该区域的上述邻居样本进行滤波。
ii.例如,可以对该区域的左邻居样本进行滤波。
c.区域内的样本的权重可以根据其与至少一个邻居样本之间的差异来确定。
d.在一个示例中,可以仅对预定义位置处的样本进行滤波。
i.在一个示例中,可以仅滤波CTU边界处的样本。
ii.在一个示例中,仅在右侧或/和底部CTU边界处的样本可以被滤波。
iii.在一个示例中,仅在MxN网格的边界处的样本可以被滤波。
图14示出了根据本公开的一些实施例的用于视频处理的方法1400的流程图。方法1400涉及时域滤波的实现。
在框1410,获得用于视频的目标图片中的参考图片。在框1420,至少部分地基于参考图片和目标图片之间的差异来确定参考图片是否要被用于对目标图片进行滤波。如本文所使用的,“目标图片”可以被称为要被编解码的视频的当前图片。根据参考图片要被用于对目标图片进行滤波的确定,在框1430,基于参考图片对目标图片执行时域滤波。在一些实施例中,根据参考图片要被用于对目标图片进行滤波的确定,在框1440,在不使用参考图片的情况下对目标图片执行时域滤波。
根据本公开的实施例,方法1400使得能够自适应地确定参考图片是否可以用于对目标图片进行滤波。因此,一些参考图片可能不需要被用于对参考图片进行滤波。与需要将所有可用参考图片用于目标图片的时域滤波的传统时域滤波方案相比,本文提出的方案可以有利地提高编解码速度和效率。
在一些实施例中,方法1400可以在源设备100处实现,例如在视频编码器114或200处。
在一些实施例中,在图片级别确定参考图片是否要被用于对目标图片进行滤波。
具体地,在一些实施例中,为了确定参考图片是否要被用于在图片级别对目标图片进行滤波,检测参考图片和目标图片之间的场景差异。如果场景差异指示参考图片属于与目标图片相同的场景,则可以确定参考图片要被用于对目标图片进行滤波。否则,如果场景差异指示参考图片和目标图片之间的场景改变,这意味着参考图片属于与目标图片的差异场景(例如,检测到场景改变),则可以确定参考图片不被用于对目标图片进行滤波。
备选地或附加地,为了确定参考图片是否要被用于在图片级别对目标图片进行滤波,可以确定参考图片和目标图片之间的总体像素差异,并且基于总体像素差异来确定参考图片是否要被用于对目标图片进行滤波。
在一些实施例中,通过执行运动估计过程来确定目标图片的至少一个目标块的至少一个参考块,从而确定总体像素差异;以及对于至少一个参考块中的每个参考块和对应的目标块,确定参考块和目标块之间的块像素差异。第一总体像素差异是基于针对至少一个参考块和至少一个目标块确定的至少一个块像素差异来确定的。
在一些示例中,对参考图片执行运动估计,以针对目标图片的每个目标块找到参考块。在一些示例中,可以为目标图片中的多个目标块中的每个目标块确定参考块,并且可以确定多对参考块和目标块之间的多个块像素差异。第一总体像素差异可以基于多个块像素差异来确定。在确定多于一个像素块差异的情况下,可以通过对像素块差异取平均值或者通过以任何其他方式聚集像素块差异来确定第一总体差异。在仅确定一个像素块差异的情况下,可以将第一总体差异确定为像素块差异。
在一些实施例中,在确定第一总体像素差异的情况下,可以将第一总体像素差异与第一差异值阈值进行比较。如果确定第一总体像素差异低于第一差异阈值,则参考图片可用于对目标图片进行滤波。如果确定第一总体像素差异超过第一差异阈值,则参考图片可以不被用于对目标图片进行滤波。
在一些实施例中,通过基于参考图片中的像素和目标图片中的像素确定参考图片和目标图片之间的第二总体像素差异来确定总体像素差异。在这种情况下,不需要运动估计来标识目标图片中的目标块的参考块。通过参考图片中的像素和目标图片中的像素之间的差异直接测量总的像素差异。因此,可以降低复杂度并且可以提高编解码速度。
在一些实施例中,在确定了第二总体像素差异的情况下,可以将第二总体像素差异与第二差异阈值进行比较。如果第二总体像素差异低于(例如,低于或等于)第二差异阈值,则参考图片可用于对目标图片进行滤波。如果第二总体像素差异超过第二差异阈值,则参考图片可以不被用于对目标图片进行滤波。
在一些实施例中,可以在块级别自适应地确定参考图片是否要被用于目标图片。具体地,可以针对目标图片中的目标块来确定参考图片中的参考块,并且确定参考块是否要被用于对目标块进行滤波。在这种情况下,如果确定参考块要被用于对目标块进行滤波,则可以基于参考块对目标块执行时域滤波。在一些示例中,对于某个参考图片,一些参考块可以用于对目标图片进行滤波的一些目标块,而一些其他参考块可以不被用于滤波目标图片的一些其他目标块。可以以更细化的粒度来确定基于参考图片的时域滤波。
在一些实施例中,为了确定参考块是否要被用于对目标块进行滤波,可以确定参考块和目标块之间的块像素差异。可以将该块像素差异与第三差异阈值进行比较。如果块像素差异低于(例如,低于或等于)第三差异阈值,则参考块可以用于对目标块进行滤波。如果块像素差异超过第三差异阈值,则可以确定参考块不被用于对目标块进行滤波。
如上所述,在一些实施例中,第一差异阈值、第二差异阈值和/或第三差异阈值可以用于与某些确定的像素差异进行比较,以便确定参考图片或参考图片中的参考块是否要被用于目标图片或其目标块的时域滤波。第一差异阈值、第二差异阈值和/或第三差异阈值可以基于各种因素被确定。
在一些实施例中,第一差异阈值、第二差异阈值和/或第三差异阈值可以基于目标图片和/或目标图片的内容来确定,例如,基于内容的梯度或方差异。例如,如果从视频和/或目标图片检测到内容的较大梯度或方差,则可以将第一差异阈值、第二差异阈值和/或第三差异阈值设置为较大值。
在一些实施例中,可以基于视频的分辨率来确定第一差异阈值、第二差异阈值和/或第三差异阈值。
在一些实施例中,第一差异阈值、第二差异阈值和/或第三差异阈值可以基于用于计算总体像素差异和/或块像素差异的像素的颜色分量来确定。颜色分量可以包括亮度分量和/或色度分量。在一些示例中,可以确定基于亮度分量的总体像素差异或块像素差异以及基于色度分量的另一个总体像素差异或者块像素差异,并将其用于确定参考图片或者参考图片中的参考块是用于对目标图片还是目标图片中的目标块进行滤波。在这些情况下,第一差异阈值、第二差异阈值和/或第三差异阈值的不同值可以应用于亮度分量和色度分量。
在一些实施例中,第一差异阈值、第二差异阈值和/或第三差异阈值可以基于对参考图片相对于目标图片执行的运动估计的块大小来确定。
应当理解,尽管上面提供了用于确定第一差异阈值、第二差异阈值和/或第三差异阈值的一些因素,但是这些因素可以单独使用或以任何组合来确定第一差异阈值、第二差异值阈值和/或第一差异阈值。还应当理解,一些其他因素也可以与本文提供的那些因素组合或单独使用,以设置第一差异阈值、第二差异阈值和/或第三差异阈值。
在一些实施例中,对于运动估计过程中的运动矢量的预定集,与其他运动矢量相比,可以将更高的优先级分配给运动矢量的该预定集。在一些实施例中,运动矢量的预定集至少包括至少一个零运动矢量。
通过优先级分配,当对目标图片执行运动估计时,可以确定参考图片中的候选参考块和目标图片中的目标块之间的差异。候选参考块由候选运动矢量来标识。进一步确定标识候选参考块的候选运动矢量是否被包括在具有所分配的高优先级的目标图片的预定运动矢量集中。如果候选运动矢量被包括在预定运动矢量集中,则候选参考块和目标块之间的差异被降低。然后,基于降低的差异来确定目标块的运动矢量。作为运动估计的结果,该运动矢量可以标识用于目标图片中的目标块的参考图片中的参考块。如上所述,它还可以基于由所确定的运动矢量标识的参考块来确定是否要执行目标块的时域滤波。
根据与对运动矢量集的优先级分配相关的实施例,对于较小的运动矢量(例如零运动矢量),由这些运动矢量确定的候选参考块可被优先用作目标块的参考块,并且可能被用于滤波目标图片中的目标块。可以通过减少参考块和目标块之间的直接差异来实现这种优先级排序。
在一些实施例中,该差异可以减少预定百分比(表示为N%)。例如,N可以是25或任何其他值。在一些实施例中,该差异值可以降低预定常量值。应当理解,可以以许多其他方式来执行差异的降低,并且本公开的范围在这方面不受限制。
在一些实施例中,可以对参考图片相对于目标图片执行层级运动估计(也称为“金字塔运动估计”)过程。可以如参考图13所述执行层级运动估计。层级运动估计过程包括要在多个层级上执行的多个运动估计。
例如,在图13中,执行了三c次运动估计,其中在图片L21303的层级层执行运动估计,在图片L1 1302的层级层进行运动估计,以及在作为目标图片的图片L0 1301的层级层上执行运动估计。在图13的这个例子中,图片L2 1303的层级层高于图片L1 1302的层级层,后者高于图片L0 1301的层级层。并且从较高层级层到较低层级层执行运动估计。
在应用层级运动估计过程的实施例中,在至少一个层级层中导出的信息可以用于确定另一层级层中的方法的参数和/或启用。在实施例中,在一个层级层中使用的信息在另一层级层中的运动估计中被共享。在一个示例中,在比当前层高的至少一个层中导出的信息可以用于确定用于当前层的方法的参数或/和启用。
特别地,在其中可以将更高优先级分配给运动矢量的预定集的上述实施例中,如果运动矢量的该预定集是根据多个层级中的第一层级处的第一运动估计确定的,则基于在多个层级层中的至少一个第二层级层处执行的至少一个第二运动估计中导出的信息来确定是否对预定运动矢量集启用优先级分配。如果确定启用了优先级分配,则可以将预定优先级分配给运动矢量的预定集。在一些实施例中,至少一个第二层级层高于第一层级层。
例如,在图13中,对于图片L1 1302的层级,可以通过对该图片(从目标图片L01301进行二次采样)执行运动估计来生成图片L1 1303的运动矢量。此时,可能已经执行了图片L2 1303的层级运动估计,并且在该运动估计中导出的信息可以用于确定是否对在图片L1 1302的层级层处生成的预定运动矢量集启用优先级分配,并且至少一个第二层级层可以包括用于图片L2 1303的较高层级层。
在另一个示例中,在图13中,对于图片L0 1301的层级,可以通过对该图片执行运动估计来生成图片L0 1311的运动矢量。此时,可能已经执行了图片L2 1303和图片L1 1302的层级层处的运动估计,并且在这两个运动估计中导出的信息可以用于确定对于在图片L01301的层级层处所生成的预定运动矢量集是否启用了优先级指配。在本实施例中,上述实施例中的第一层级层可以包括用于图片L0 1301的最低层级层并且至少一个第二层级层可以包含用于图片L2 1303和图片L1 1302的较高层级层。
在一些实施例中,在至少一个第二运动估计中导出的、用于确定优先级分配的启用的信息可以包括在至少一个第二运动估计中导出的至少一组运动矢量。在一些实施例中,为了确定是否对预定运动矢量集启用优先级分配,可以确定在至少一组运动矢量中的每个中的零运动矢量与所有运动矢量的比率。如果该比率超过比率阈值,这意味着在较高层级层处确定相对较大数目的零运动矢量,则确定在较低层级层处启用优先级分配。否则,如果比率低于比率阈值(例如,低于或等于比率阈值),则确定在较低层级层禁用优先级分配。
根据本公开的那些实施例,通过被重新用于已经在层级运动估计过程的层级层中导出的信息,优先级分配是否被启用的确定更加准确。
应当理解,在比当前层高的至少一个层中导出的信息可以用于确定用于当前层的参数或/和其他方法的启用。下面将进一步讨论使用这种信息的一些实施例。
在一些实施例中,可以确定要被用于滤波目标图片中的参考图片的最大数目。参考图片的最大数目可以基于以下中的至少一项:目标图片的可用参考图片的数目、视频的分辨率、视频的编码速度要求、视频的码率或目标图片的时域层。应当理解,参考图片的最大数目可以替代地或附加地取决于一个或多个其他因素,并且本公开的范围在这方面不受限制。
在一些实施例中,对于某个目标图片,可以确定可用参考图片的数目,该数目可以是该特定目标图片的固定数目。根据本公开的实施例,用于滤波目标图片中的参考图片的最大数目可以小于或等于可用参考图片的最大数目。
在一些实施例中,可以为不同分辨率的视频确定不同的参考图片的最大数目。
在一些实施例中,如果视频需要快速编码,则可以将目标图片中的参考图片的最大数目设置为较低的值。
在一些实施例中,可以为不同码率的视频确定不同的参考图片的最大数目。例如,对于更高的码率,可以确定更大的参考图片的最大数目。
在一些实施例中,可以针对目标图片所处的不同时域层来确定不同的参考图片的最大数目。更具体地,当基于目标图片的时域层来确定参考图片的最大数目时,如果目标图片处于第一时域层,则可以将参考图片的第一最大数目确定为目标图片;如果目标图片位于比第一时域层低的第二时域层,则可以为目标图片确定参考图片的第二最大数目,其中第二最大数目大于第一最大数目。换言之,如果目标图片处于较低的时域层,则可以为目标图片确定较大的参考图片的最大数目。
根据这些实施例,通过自适应地确定目标图片中的参考图片的最大数目,可以进一步提高编解码性能,例如编解码速度和效率。
在一些实施例中,在确定了最大数目的情况下,参考图片的最大数目可以来自目标图片的可用参考图片的数目。在所有最大数目的参考图片中,可以选择每个参考图片,并且可以自适应地确定每个参考图片是否可以用于对目标图片进行滤波。由于自适应地确定参考图片是否可以用于对目标图片进行滤波,如果被确定为可以用于对目标图片进行滤波的参考图片的数目大于参考图片的最大数目,则在对目标图片的滤波中可以进一步省略一些参考图片。
在一些实施例中,可以进一步自适应地确定目标图片是否将被滤波。在一些实施例中,可以基于以下中的至少一项来确定是否要对目标图片执行时域滤波:要被用于对目标图片进行滤波的参考图片的数目、视频的分辨率、视频的编码速度要求、视频的码率或目标图片的时域层。应当理解,一个或多个其他因素可以附加地或备选地用于确定是否要对目标图片执行时域滤波,并且本公开的范围在这方面不受限制。
在一些实施例中,如果没有参考图片可用于对目标图片进行滤波,则可以不对目标图片进行滤波。
在一些实施例中,可以针对不同的分辨率对视频中的不同图片总体数目进行滤波。也就是说,对于具有特定分辨率的视频,可以确定可以被滤波的图片的总体数目,并且如果图片的总体数目小于视频中包含的图片的总体数目,则一些图片可以不被滤波。
在一些实施例中,如果视频需要快速编码,则可以滤波更少的图片。例如,可以每N帧对视频中的目标图片进行滤波(其中N>1)。N可以基于视频的编码速度要求来确定。
在一些实施例中,不同数目的图片可以被不同的码率滤波。
在一些实施例中,在某些时域层的一个或多个图片可以不被滤波。例如,在高时域层(例如,预定数目的最高时域层)的一些或全部图片可以不被滤波。
根据本公开的一些实施例,通过跳过对视频中的一些图片的时域滤波,可以进一步提高编解码速度。
在一些实施例中,在时域滤波中可以不使用视频中的原始图片,而是使用重建图片作为参考图片。具体地,当获得特定目标图片中的参考图片时,可以从视频中选择原始图片。在一些示例中,原始图片可以是目标图片的邻居图片。可以生成原始图片的重建图片,并将其确定为目标图片中的参考图片。
在一些实施例中,为了对目标图片执行时域滤波,可以对参考图片相对于目标图片执行运动估计过程(例如图13中的层级运动估计过程),并且可以基于运动估计过程的结果执行时域滤波。在本公开的一些实施例中,提出禁用从运动估计过程禁用的分数运动估计。
如上所述,当应用层级运动估计方案时,子样本在图13中的层级结构1300中示出,其中图片L0 1301是目标图片。图片L11302是通过对L0中的2x2个样本值块进行平均而生成的。然后,图片L21303是通过对L1中的2x2个样本值块进行平均来生成的。运动估计是通过第一次L2全像素运动矢量搜索来完成的。然后,对最佳运动矢量进行缩放,并将其用作L1中全像素搜索的起点。然后,对找到的最佳运动矢量再次进行缩放,将其用作L0中全像素查找的起点,然后进行最后的第16个亚像素查找。然后应用运动补偿,然后用滤波后的样本值替换原始目标图片的所有样本值。根据本公开的一些实施例,在运动估计过程期间可以不使用第六个亚像素搜索。
在一些实施例中,可以自适应地禁用分数运动估计。在一些实施例中,分数运动估计是启用还是禁用可以基于视频的编码速度要求来确定。在一个示例中,当视频需要快速编码时,可以禁用分数运动估计。在一些实施例中,备选地或附加地,分数运动估计是启用还是禁用可以基于视频的内容类型来确定。在一个示例中,如果确定视频捕获屏幕内容,则可以针对该视频禁用分数运动估计。
在一些实施例中,可以自适应地确定在运动估计过程中使用的块大小。运动估计过程可以是针对时域滤波执行的过程。具体地,在一些实施例中,可以针对视频的区域或处理单元自适应地确定块大小,该处理单元至少包括目标图片。区域或处理单元可以包括编码树单元(CTU)、CTU行、图块、条带、图片或视频。在确定块大小的情况下,可以选择处理单元内的目标图片中的目标块和参考图片的至少一个候选参考块,其中目标块和至少一个候选参考块中的每个都具有所确定的块大小。然后,可以针对目标块对至少一个候选参考块执行运动估计过程,并且可以基于运动估计过程的结果来执行时域滤波。
块大小可以基于各种因素来确定。在一些实施例中,可以基于在处理单元中检测到的运动速度来确定块大小。在一个示例中,较大的块大小可以用于具有较慢运动的区域或处理单元。
在一些实施例中,备选地或附加地,可以基于处理单元的内容平滑度来确定块大小。在一个示例中,较大的块大小可以用于具有更平滑内容的区域/处理单元。在一些实施例中,可以基于可以由梯度和/或方差定义的内容来确定处理单元的内容平滑度。
在一些实施例中,备选地或附加地,可以基于视频的至少一个编码过程单元的编解码信息来确定块大小。在一些实施例中,编解码信息可以包括但不限于运动矢量信息,或/和块大小信息,或/和分割信息,或成本信息,或残差异信息。在一些实施例中,至少一个编码过程单元可以包括但不限于至少一个已经编码的图片、至少一个已编码的图块、至少一条已经编码的条带、至少一个已经编码的CTU、至少一款已经编码的CU、至少一台已经编码的PU(预测单元)、至少一块已经编码的块等。
在一些实施例中,在对目标图片执行层级运动估计过程的情况下(例如在图13的示例中),可以使用在层级运动估计过程中导出的信息来确定块大小。在一些实施例中,在要在第一层级层执行的运动估计中使用的块大小可以基于已经从在至少一个第二层级层处执行的运动估计导出的信息来确定。在一个示例中,至少一个第二层级层可以高于第一层级层。
在一些实施例中,用于确定块大小的信息可以包括运动矢量信息和/或与运动矢量信息相关的成本信息。在一些示例中,与较高层级层处的至少一个运动矢量相关的成本(例如,均方误差异)可以用于确定在较低层级层处使用的块大小。
在一些实施例中,备选地或附加地,块大小可以基于以下中的一个或多个来确定:要被用于滤波目标图片中的参考图片的数目、视频的分辨率、视频的编解码速度要求、视频的码率、视频的位深或目标图片的时域层。
应当理解,尽管上面提供了一些因素用于确定块大小,但是这些因素可以单独使用或以任何组合使用。还应当理解,一些其他因素也可以与本文提供的那些因素组合或单独使用,以确定块大小。
在一些实施例中,当对目标图片(例如,目标图片中的目标块)执行时域滤波时,可以例如通过运动估计过程为目标块标识参考块。对于目标块中的每个目标样本,可以通过对目标样本的至少一个参考样本进行加权来确定目标样本的滤波样本值。参考样本的重量可以基于各种参数来确定。
如上在第3节(运动补偿时域滤波)中所述,参考样本的权重可以根据公式(2-21)来确定。公式(2-21)中涉及的参数值是相对固定的。在本公开的一些实施例中,提出了用于导出参考样本的权重的参数中的至少一个可以基于目标图片和目标图片的预测图片自适应地确定。可以通过运动估计和补偿过程基于参考图片来生成预测图片。
具体地,当执行时域滤波时,包括:对于要被用于对目标图片中的目标块进行滤波的参考图片中的参考块,可以基于参考块来确定目标块的目标样本的参考样本,并且可以基于目标图片和用于目标图片的预测图片来确定至少一个参数的至少一个值,该预测图片是基于参考图片和运动矢量信息生成的。可以基于至少一个参数的至少一个值来确定参考样本的权重,然后可以至少部分地基于参考样本的重量和参考样本的样本值来确定目标样本的滤波样本值。
在一些实施例中,可以自适应地确定由公式(2-21)中σl(QP)表示的QP相关参数。根据传统的方案,σl(QP)取决于QP值作为固定值。也就是说,每个QP值被映射到σl(QP)的固定值。在本公开的一些实施例中,σl(QP)可以至少部分地基于目标图片和预测图片之间的差异的方差来自适应地确定。
在一些实施例中,QP相关参数σl(QP)可以被确定为具有分布。例如,σl(QP)可以被认为是一个随机变量。在一个示例中,假设σl(QP)是正态分布的。在一些实施例中,可以至少部分地基于QP相关参数的分布中的值的至少子集来确定参考样本的权重。在一个示例中,只有随机变量σl(QP)的值的子集可以用于导出参考样本的权重。在一个示例中,随机变量σl(QP)的所有值可以用于导出参考样本的权重。当确定目标图片中的目标块中的目标样本的滤波样本值时,参考样本的权重可用于加权参考样本的样本值。
在一些实施例中,可以在运动估计过程中考虑色度分量。具体地,可以至少部分地基于参考图片和目标图片中的像素的色度分量来执行运动估计过程。根据传统的方案,当执行运动估计时,计算参考块和目标块中的像素的亮度分量之间的差异,并将其用于确定标识参考块的运动矢量的成本。根据本公开的实施例,作为亮度分量的替代或附加,像素的色度分量之间的差异也可以用于确定标识参考块的运动矢量的成本。通过这种方式,可以以更准确的方式确定成本信息,并且可以提高运动估计性能,从而提高编解码性能。
在一些实施例中,可以在针对目标图片中的目标块的参考图片上标识多个参考块,并且可以基于多个参考区块对目标块执行时域滤波。代替对于目标块仅使用一个参考块,可以通过使用多个不同的参考块来进一步提高编解码性能。
在一些实施例中,可以通过执行具有不同块大小的运动估计过程来标识多个参考块。
在一些实施例中,可以对参考图片执行层级运动估计过程(例如,如图13的示例所示),其中层级运动估计过程包括要在多个层级层执行的多个运动估计。根据在多个层级层处执行的多个运动估计中的每个,可以为目标图片中的目标块确定一个运动矢量。多个运动矢量可用于从参考图片标识多个参考块,并且这些参考块可用于目标图片中的目标块。
在一些实施例中,可以通过对参考图片执行运动估计过程来为目标图片中的目标块确定一组候选运动矢量。可以确定这些候选运动矢量的相应成本,然后可以基于一组候选运动矢量的相应成本从一组候选运动矢量中选择多个运动矢量。在一些实施例中,可以选择与最小成本相对应的预定数目(例如,M)的运动矢量,其中M可以是大于1的整数。可以从参考图片中确定与所选择的运动矢量相对应(或由所选择的移动矢量标识)的参考块,并将其用作目标图片中的目标块的参考块。
在一些实施例中,运动矢量的值可以在运动估计过程中受到惩罚。在一些实施例中,在确定了目标图片中的目标块的运动矢量的情况下,可以通过基于取决于QP值的参数值和运动矢量的坐标分量来惩罚运动矢量来确定运动矢量的成本。例如,lambda*(abs(mv_x)+abs(mv_y))可以包括在运动矢量的成本中,其中lambda表示取决于QP值的参数,mv_x和mv_y分别是运动矢量的水平分量和垂直分量;abs()表示导出绝对值。
在运动估计过程中,可以至少部分地基于运动矢量的成本来为目标块确定参考图片中的参考块。例如,可以选择具有最小成本的一个或多个运动矢量,并且可以使用与所选择的运动矢量相对应的参考块。可以基于所确定的参考块来执行对目标块的时域滤波。
在一些实施例中,可以为目标图片中的目标块确定运动矢量预测器。在执行层级运动估计的情况下,可以基于邻居块的运动矢量和/或在更高层级层中导出的运动矢量来确定运动矢量预测器。在确定了目标图片中的目标块的运动矢量的情况下,可以惩罚运动矢量和运动矢量预测器之间的差异。惩罚差异可以用于确定目标块的参考图片中的参考块。然后,可以至少基于所确定的参考块来对目标块执行时域滤波。
在一些实施例中,可以执行多遍编码以改进时域滤波。对于某个目标图片,可以在多通路编码中执行时域滤波。在多通路编码的第一编码过程期间,可以基于在多个编码器遍的第二编码过程期间生成的目标图片中的目标块的至少一个运动矢量,对目标图片的目标块执行时域滤波。也就是说,在第i个编码过程中生成的至少一个运动矢量可以用于第(i+1)个编码过程的时域滤波。
在一些实施例中,可以在时域滤波过程中考虑仿射运动模型。更具体地,仿射运动模型可以应用于针对时域滤波执行的运动估计和补偿过程中。然后,可以基于运动估计和补偿过程的结果来执行时域滤波。
在一些实施例中,仿射运动模型包括4参数仿射模型或6参数仿射模型中的至少一个,例如图5中的4参数仿射模式510或6参数仿射模式520。
在一些实施例中,可以自适应地确定是否应用仿射运动模型。在一些实施例中,可以基于仿射运动模型在目标图片的编码过程中是否被启用来确定仿射运动模型是否可应用。例如,当仿射运动模型在编码过程中也被启用时,仿射运动模型可以被应用于运动估计和补偿过程。在一些实施例中,备选地或附加地,可以基于仿射编码块与所有块的比率来确定仿射运动模型是否可应用。如果确定仿射运动模型是可应用的,则可以通过应用仿射运动模型来确定运动估计和补偿过程。否则,可以不考虑仿射运动模型。
在一些实施例中,可以在基于仿射运动模型的预测中使用光流预测细化(PROF)。PROF可被用于在不增加用于运动补偿的存储器访问带宽的情况下细化基于子块的仿射运动补偿预测。
在一些实施例中,当对目标图片执行时域滤波时,重叠块运动补偿(OBMC)和/或双向光流(BDOF)也可以应用于目标图片的预测,该预测可以在用于时域滤波的运动估计和补偿过程期间执行。
在时域滤波期间,当执行运动估计时,可以为目标图片中的目标块确定运动矢量。在一些实施例中,解码器侧运动矢量细化(DMVR)可以应用于运动矢量,以细化运动矢量,从而获得细化的运动矢量。然后,可以至少部分地基于细化的运动矢量来为目标块确定参考图片中的参考块。随后,可以基于所确定的参考块对目标块执行时域滤波。
在一些实施例中,当执行时域滤波时,可以在时域滤波过程中使用在对目标图片的预分析过程中导出的信息。
在一些实施例中,在预分析过程中导出的信息包括以下信息中的至少一个:目标图片的至少一个子块的至少一个运动矢量、在预分析过程中导出的帧内成本或在预分析进程中导出帧间成本。在预分析过程中,可以导出运动矢量,并且可以导出子样本源图片中的块的帧间成本和帧内成本。这样的信息可以被重新用于时间滤波过程。因此,可以进一步提高编解码速度。
在一些实施例中,当基于在预分析过程中导出的信息执行时域滤波时,可以基于帧内成本或帧间成本中的至少一个来确定参考图片中的参考块或参考样本的权重。
在一些实施例中,在时域滤波过程中导出的至少一个运动矢量可以用于模式决策过程中。具体地,可以基于在时域滤波中生成的目标图片的至少一个运动矢量来确定视频的编码模式。在一些实施例中,视频的处理单元的开始搜索点可以基于至少一个运动矢量。处理单元包括编解码单元(CU)、预测单元(PU)、宏块(MB)或块中的一个。
在一些实施例中,可以基于在时域滤波中生成的目标图片的至少一个运动矢量来确定对目标图片的预分析过程。因此,可以进一步提高编解码速度。
在一些实施例中,可以针对目标图片的至少一个样本执行空间滤波。在一些示例中,除了时域滤波之外,还可以执行空间滤波。在一些其他示例中,可以执行空间滤波和时域滤波中的一个。
在一些实施例中,当执行空间滤波时,可以为目标图片的块或区域确定目标图片中的至少一个空间方向。可以在至少一个空间方向上对目标图片的块或区域执行空间滤波。
在一些实施例中,可以基于块或区域中的至少一个样本的梯度来确定至少一个空间方向。备选地或附加地,可以基于块或区域的至少一个允许的帧内预测方向来确定至少一个空间方向。可以从至少一个允许的帧内预测方向中选择至少一个空间方向。在一些实施例中,可以导出块或区域内的至少一个样本的帧内预测。在一些实施例中,作为备选或附加,可以基于块或区域中的至少一个样本与至少一个预测样本之间的差异来确定至少一个空间方向。
在一些实施例中,当执行空间滤波时,可以使用区域或块内的至少一个样本来对区域或块的至少一个邻居样本进行滤波。在一些实施例中,至少一个邻居样本包括以下至少一个:该区域或块的至少一个或全部上述邻居样本,或该区域或块的至少一个或全部左邻居样本。
在一些实施例中,当执行空间滤波时,对于块或区域内的至少一个样本中的每个,可以基于样本与至少一个邻居样本之间的差异来确定样本的权重。可以基于样本的权重来执行对样本的空间滤波。
在一些实施例中,可以从目标图片中的至少一个预定义位置选择要被滤波的至少一个样本。例如,可以仅对预定义位置处的样本进行滤波。
在一些实施例中,至少一个预定义位置可以包括以下中的至少一项:位于编码树单元(CTU)的至少一个边界处的至少一个位置,或者位于具有预定大小的网格(例如,MxN网格)的至少一个边界处的至少一个位置。在一些实施例中,CTU的至少一个边界可以包括CTU的右边界或底边界中的至少一者。
可以根据以下条款来描述本公开的实施方式,这些条款的特征可以以任何合理的方式进行组合。
条款1.一种用于视频处理的方法,包括:获得针对视频的目标图片中的参考图片;至少部分地基于所述参考图片与所述目标图片之间的差异来确定所述参考图片是否要被用于对所述目标图片进行滤波;以及如果确定所述参考图片要被用于对所述目标图片进行滤波,基于所述参考图片对所述目标图片执行时域滤波。
条款2.根据条款1所述的方法,其中确定所述参考图片是否要被用于对所述目标图片进行滤波包括:确定所述参考图片与所述目标图片之间的总体像素差;以及基于所述总体像素差来确定所述参考图片是否要被用于对所述目标图片进行滤波。
条款3.根据条款2所述的方法,其中确定所述总体像素差包括:通过执行运动估计过程来确定针对所述目标图片中的至少一个目标块的至少一个参考块;对于所述至少一个参考块中的每个参考块和对应的目标块,确定所述参考块与所述目标块之间的块像素差;以及基于针对所述至少一个参考块和所述至少一个目标块确定的至少一个块像素差来确定第一总体像素差。
条款4.根据条款3所述的方法,其中基于所述总体像素差来确定所述参考图片是否要被用于对所述目标图片进行滤波包括:如果确定所述第一总体像素差低于第一差阈值,确定所述参考图片要被用于对所述目标图片进行滤波;以及如果确定所述第一总体像素差超过所述第一差阈值,确定所述参考图片不被用于对所述目标图片进行滤波。
条款5.根据条款2所述的方法,其中确定所述总体像素差包括:基于所述参考图片中的像素与所述目标图片中的像素来确定所述参考图片与所述目标图片之间的第二总体像素差。
条款6.根据条款5所述的方法,其中基于所述总体像素差来确定所述参考图片是否要被用于对所述目标图片进行滤波包括:如果确定所述第二总体像素差低于第二差阈值,确定所述参考图片要被用于对所述目标图片进行滤波;以及如果确定所述第二总体像素差超过所述第二差阈值,确定所述参考图片不被用于对所述目标图片进行滤波。
条款7.根据条款1所述的方法,其中确定所述参考图片是否要被用于对所述目标图片进行滤波包括:针对所述目标图片中的目标块,确定所述参考图片中的参考块;以及确定所述参考块是否要被用于对所述目标块进行滤波,并且其中执行所述时域滤波包括:如果确定所述参考块要被用于对所述目标块进行滤波,基于所述参考块来对所述目标块执行所述时域滤波。
条款8.根据条款7所述的方法,其中确定所述参考块是否要被用于对所述目标块进行滤波包括:确定所述参考块与所述目标块之间的块像素差;如果确定所述块像素差低于第三差阈值,确定所述参考块要被用于对所述目标块进行滤波;以及如果确定所述块像素差超过所述第三差阈值,确定所述参考块不被用于对所述目标块进行滤波。
条款9.根据条款4、6和8中任一项所述的方法,还包括:基于以下中的至少一项来确定所述第一差阈值、所述第二差阈值和所述第三差阈值中的至少一项:所述目标图片的内容,所述视频的内容,所述视频的分辨率,像素的颜色分量,或关于所述目标图片对所述参考图片执行的运动估计的块大小。
条款10.根据条款1所述的方法,其中执行所述时域滤波包括:确定所述参考图片中的候选参考块与所述目标图片中的目标块之间的差;确定标识所述候选参考块的候选运动矢量是否被包括在针对所述目标图片的预定运动矢量集中,所述预定运动矢量集被指派有预定优先级;如果确定所述候选运动矢量被包括在所述预定运动矢量集中,降低所述候选参考块与所述目标块之间的所述差;基于降低的所述差来确定针对所述目标块的运动矢量;以及基于所确定的运动矢量对所述目标块执行所述时域滤波。
条款11.根据条款10所述的方法,其中所述预定运动矢量集至少包括至少一个零运动矢量。
条款12.根据条款10所述的方法,其中对所述参考图片执行层级运动估计过程,所述层级运动估计过程包括要在多个层级层执行的多个运动估计,并且其中在一个层级层中使用的信息被共享在另一层级层中的运动估计中。
条款13.根据条款12所述的方法,其中所述方法还包括:基于在所述多个层级层中的至少一个第二层级层中执行的至少一个第二运动估计中导出的信息,确定在所述多个层级层中的第一层级层处是否对所述预定运动矢量集启用优先级指派;以及如果确定所述优先级指派被启用,将所述预定优先级指派给所述第一层级层处的所述预定运动矢量集。
条款14.根据条款13所述的方法,在所述至少一个第二运动估计中导出的所述信息包括在所述至少一个第二运动估计中导出的至少一组运动矢量,并且其中确定是否对所述预定运动矢量集启用优先级指派包括:确定零运动矢量与所述至少一组运动矢量的比率;如果确定所述比率超过比率阈值,确定所述优先级指派被启用;以及如果确定所述比率低于所述比率阈值,确定所述优先级指派被禁用。
条款15.根据条款13所述的方法,其中,所述至少一个第二层级层高于所述第一层级层。
条款16.根据条款1所述的方法,其中,确定所述参考图片是否要被用于对所述目标图片进行滤波包括:检测所述参考图片与所述目标图片之间的场景差异;如果确定所述场景差异指示所述参考图片属于与所述目标图片相同的场景,确定所述参考图片要被用于对所述目标图片进行滤波;以及如果确定所述场景差异指示所述参考图片与所述目标图片之间的场景改变,确定所述参考图片不被用于对所述目标图片进行滤波检测所述参考图片与所述目标图片之间的场景差异;如果确定所述场景差异指示所述参考图片属于与所述目标图片相同的场景,确定所述参考图片要被用于对所述目标图片进行滤波;以及如果确定所述场景差异指示所述参考图片与所述目标图片之间的场景改变,确定所述参考图片不被用于对所述目标图片进行滤波。
条款17.根据条款1至16中任一项所述的方法,还包括:基于以下中的至少一项来确定要被用于对所述目标图片进行滤波的参考图片的最大数目:针对所述目标图片的可用参考图片的数目,所述视频的分辨率,所述视频的编码速度要求,所述视频的码率,或者所述目标图片的时域层。
条款18.根据条款17所述的方法,其中基于所述目标图片的所述时域层来确定所述参考图片的最大数目包括:根据所述目标图片处于第一时域层的确定,确定所述目标图片的参考图片的第一最大数目;以及根据所述目标图片位于比所述第一时域层低的第二时域层的确定,确定所述目标图片中的参考图片的第二最大数目,所述第二最大数目大于所述第一最大数目。
条款19.根据条款17所述的方法,其中获得所述参考图片包括:从针对所述目标图片的所述数目的可用参考图片中选择所述最大数目的参考图片;以及从所述最大数目的参考图片中选择所述参考图片。
条款20.根据条款1-18中任一项所述的方法,还包括:还包括:基于以下中的至少一项来确定是否要对所述目标图片执行所述时域滤波:要被用于对所述目标图片进行滤波的参考图片的数目,所述视频的分辨率,所述视频的编码速度要求,所述视频的码率,或者所述目标图片的时域层。
条款21.根据条款1-20中任一项所述的方法,其中获得所述参考图片包括从所述视频选择原始图片;生成针对所述原始图片的重构图片;以及将所述重构图片确定为所述目标图片的所述参考图片。
条款22.根据条款1-21中任一项所述的方法,其中执行所述时域滤波包括:关于所述目标图片来对所述参考图片执行运动估计过程,其中从所述运动估计过程禁用分数运动估计;以及基于所述运动估计过程的结果来执行所述时域滤波。
条款23.根据条款22所述的方法,其中执行所述运动估计过程包括:基于以下中的至少一项来确定所述分数运动估计是被启用还是被禁用:所述视频的编码速度要求,或所述视频的内容类型;以及如果确定所述分数运动估计被禁用,从所述运动估计过程禁用所述分数运动估计。
条款24.根据条款1-23中任一项所述的方法,其中执行所述时域滤波包括:确定所述视频的处理单元的块大小,所述处理单元至少包括所述目标图片;在所述处理单元内选择所述目标图片中的目标块和所述参考图片中的至少一个候选参考块,所述目标块和所述至少一个候选参考块具有所述块大小;以及关于所述目标块来对所述至少一个候选参考块执行运动估计过程;以及基于所述运动估计过程的结果来执行所述时域滤波。
条款25.根据条款24所述的方法,其中确定所述块大小包括:基于以下中的至少一项来确定所述块大小:在所述处理单元中检测到的运动速度,所述处理单元的内容平滑度所述视频的至少一个已编码的处理单元的编解码信息在针对所述目标图片执行的层级运动估计过程中已导出的运动矢量信息,与所述运动矢量信息相关联的成本信息要被用于对所述目标图片进行滤波的参考图片的数目,所述视频的分辨率,所述视频的编码速度要求,所述视频的码率,所述视频的比特深度,或者所述目标图片的时域层。
条款26.根据条款1-25中任一项所述的方法,其中执行所述时域滤波包括:对于要被用于对所述目标图片中的目标块进行滤波的所述参考图片中的参考块,基于所述参考块来确定针对所述目标块中的目标样本的参考样本;以及基于所述目标图片和针对所述目标图片的预测图片来确定至少一个参数的至少一个值,所述预测图片是基于所述参考图片和运动矢量信息生成的,基于所述至少一个参数的所述至少一个值来确定所述参考样本的权重,以及至少部分地基于所述参考样本的所述权重和所述参考样本的样本值来确定针对所述目标样本的滤波样本值。
条款27.根据条款26所述的方法,其中所述至少一个参数包括与量化器参数(QP)相关的参数,并且其中确定所述至少一个参数值包括:至少部分地基于所述目标图片与所述预测图片之间的差异的方差来确定所述QP相关的参数的值。
条款28.根据条款1-25中任一项所述的方法,其中,根据分布来设置QP相关参数,并且其中,执行所述时域滤波包括:对于要被用于对所述目标图片中的目标块进行滤波的所述参考图片中的参考块,基于所述参考块来确定所述目标块的目标样本的参考样本;至少部分地基于所述QP相关参数的分布中的值的至少子集来确定所述参考样本的权重;以及至少部分地基于参考样本的权重和参考样本的样本值来确定目标样本的滤波样本值。
条款29.根据条款1-28中任一项所述的方法,其中执行所述时域滤波包括:至少部分地基于所述参考图片中的像素和所述目标图片中的像素的色度分量来执行运动估计过程;以及基于所述运动估计过程的结果来执行所述时域滤波。
条款30.根据条款1-29中任一项所述的方法,其中执行所述时域滤波包括:从所述参考图片标识针对所述目标图片中的目标块的多个参考块;以及基于所述多个参考块对所述目标块执行所述时域滤波。
条款31.根据条款30所述的方法,其中标识所述多个参考块包括:通过执行具有不同块大小的运动估计过程来标识所述多个参考块。
条款32.根据条款30所述的方法,其中对所述参考图片执行层级运动估计过程,所述层级运动估计过程包括要在多个层级层执行的多个运动估计,以及其中标识所述多个参考块包括:从所述多个运动估计来确定针对所述目标块的多个运动矢量;以及从所述参考图片确定由所述多个运动矢量标识的多个参考块。
条款33.根据条款30所述的方法,其中标识所述多个参考块包括:通过对所述参考图片执行运动估计过程来确定针对所述目标块的一组候选运动矢量;基于所述一组候选运动矢量的相应成本,从所述一组候选运动矢量中选择多个运动矢量;以及从所述参考图片确定由所述多个运动矢量标识的多个参考块。
条款34.根据条款1-33中任一项所述的方法,确定所述目标图片中的目标块的运动矢量;通过基于取决于QP值的参数值和所述运动矢量的坐标分量来惩罚所述运动矢量,来确定所述运动矢量的成本;至少部分地基于所述运动矢量的所述成本来确定针对所述目标块的所述参考图片中的参考块;以及基于所确定的参考块对所述目标块执行所述时域滤波。
条款35.根据条款1-33中任一项所述的方法,其中执行所述时域滤波包括:确定针对所述目标图片中的目标块的运动矢量预测子;确定针对所述目标图片中的目标块的运动矢量;惩罚所述运动矢量与所述运动矢量预测子之间的差异;至少部分地基于已惩罚的所述差异来确定针对所述目标块的所述参考图片中的参考块;以及基于所确定的参考块对所述目标块执行所述时域滤波。
条款36.根据条款1-35中任一项所述的方法,其中所述时域滤波在针对所述目标图片的多个编码通路中被执行,并且其中执行所述时域滤波包括:在所述多个编码通路中的第一编码通路期间,基于在所述多个编码通路中的第二编码通路期间已生成的针对所述目标图片中的目标块的至少一个运动矢量,对所述目标图片中的所述目标块执行时域滤波。
条款37.根据条款1-36中任一项所述的方法,其中执行所述时域滤波包括:通过应用仿射运动模型来执行运动估计和补偿过程;以及基于所述运动估计和补偿过程的结果来执行所述时域滤波。
条款38.根据条款37所述的方法,其中所述仿射运动模型包括4参数仿射模型或6参数仿射模型中的至少一个。
条款39.根据条款37所述的方法,其中执行所述运动估计和补偿过程包括:基于以下中的至少一项来确定所述仿射运动模型是否可应用:在针对所述目标图片的编码过程中是否所述仿射运动模型被启用,或者仿射编码块与所有块的比率;以及如果确定所述仿射运动模型可应用,通过应用所述仿射运动模型来执行所述运动估计和补偿过程。
条款40.根据条款1-39中任一项所述的方法,其中执行所述时域滤波包括:在所述目标图片的预测中应用以下中的至少一项:重叠块运动补偿(OBMC)或双向光流(BDOF)。
条款41.根据条款1-40中任一项所述的方法,其中执行所述时域滤波包括:确定针对所述目标图片中的目标块的运动矢量;对所述运动矢量应用解码器侧运动矢量细化(DMVR),以获得细化的运动矢量;至少部分地基于所述细化的运动矢量来确定针对所述目标块的所述参考图片中的参考块;以及基于所确定的参考块对所述目标块执行所述时域滤波。
条款42.根据条款1-41中任一项所述的方法,其中执行所述时域滤波包括:获得在对所述目标图片的预分析中导出的信息;以及基于所述信息执行所述时域滤波。
条款43.根据条款42所述的方法,其中在所述预分析过程中导出的信息包括以下中的至少一项:针对所述目标图片中的至少一个目标块的至少一个运动矢量,在所述预分析过程中得出的帧内成本,或在所述预分析过程中得出的帧间成本。
条款44.根据条款43所述的方法,其中基于所述信息执行所述时域滤波包括:基于所述帧内成本或所述帧间成本中的至少一项来确定所述参考图片中的参考块或参考样本的权重。
条款45.根据条款1-44中任一项所述的方法,还包括:基于在所述时域滤波中生成的针对所述目标图片的至少一个运动矢量来确定针对所述视频的编码模式。
条款46.根据条款45所述的方法,其中确定所述编码模式包括:基于所述至少一个运动矢量来确定所述视频的处理单元的开始搜索点,所述处理单元包括编解码单元(CU)、预测单元(PU)、宏块(MB)或块中的一个。
条款47.根据条款1-46中任一项所述的方法,还包括:基于在所述时域滤波中生成的针对所述目标图片的至少一个运动矢量,对所述目标图片执行预分析过程。
条款48.根据条款1-47中任一项所述的方法,还包括:对所述目标图片中的至少一个样本执行空间滤波。
条款49.根据条款48所述的方法,其中执行所述空间滤波包括:针对所述目标图片中的块或区域,确定所述目标图片中的至少一个空间方向;以及在所述至少一个空间方向上对所述目标图片的所述块或所述区域执行所述空间滤波。
条款50.根据条款49所述的方法,基于以下中的至少一项来确定所述至少一个空间方向所述块或所述区域中的至少一个样本的梯度针对所述块或所述区域的至少一个允许的帧内预测方向,或者所述块或所述区域中的至少一个样本与针对所述至少一个样本的至少一个预测样本之间的差异。
条款51.根据条款48所述的方法,其中执行所述空间滤波包括:使用区域或块内的至少一个样本对所述区域或所述块中的至少一个邻居样本执行所述空间滤波。
条款52.根据条款51所述的方法,其中所述至少一个邻居样本包括以下中的至少一项:所述区域或所述块中的至少一个上邻居样本,或所述区域或所述块中的至少一个左邻居样本。
条款53.根据条款48所述的方法,其中执行所述空间滤波包括:对于所述至少一个样本中的每个样本,基于所述样本与至少一个邻居样本之间的差异来确定针对所述样本的权重;以及基于针对所述样本的权重对所述样本执行所述空间滤波。
条款54.根据条款48所述的方法,还包括:从所述目标图片中的至少一个预定义位置选择要被滤波的所述至少一个样本。
条款55.根据条款54所述的方法,其中所述至少一个预定义位置包括以下中的至少一项:编码树单元(CTU)的至少一个边界处的至少一个位置,或者在具有预定尺寸的网格的至少一个边界处的至少一个位置。
条款56.根据条款55所述的方法,其中所述CTU的所述至少一个边界包括所述CTU的右边界或底边界中的至少一个。
条款57.一种电子设备,包括:处理单元;以及存储器,耦合到所述处理单元并且具有存储在其上的指令,所述指令在由所述处理单位执行时使所述电子设备执行根据权利要求1-56中任一项所述的方法。
条款58.一种非暂态计算机可读存储介质,存储指令,所述指令使处理器执行根据权利要求1-56中任一项所述的方法。
条款59.一种非暂态计算机可读记录介质,存储由根据权利要求1-56中任一项所述的方法生成的视频的码流,其中所述方法由视频处理装置执行。
示例设备
图15示出了可以在其中实现本公开的各种实施例的计算设备1500的框图。计算设备1500可以被实现为源设备110(或视频编码器114或200)或目的设备120(或视频解码器124或300),或者可以被包括在源设备110(或视频编码器114或200)或目的设备120(或视频解码器124或300)中。
应当理解的是,图15中示出的计算设备1500仅为了说明的目的,而不是以任何方式暗示对本公开实施例的功能和范围的任何限制。
如图15所示,计算设备1500包括通用计算设备1500。计算设备1500可以至少包括一个或多个处理器或处理单元1510、存储器1520、存储单元1530、一个或多个通信单元1515、一个或多个输入设备1550以及一个或多个输出设备1560。
在一些实施例中,计算设备1500可以被实现为具有计算能力的任何用户终端或服务器终端。服务器终端可以是由服务提供商提供的服务器、大型计算设备等。用户终端例如可以是任何类型的移动终端、固定终端或便携式终端,包括移动电话、站、单元、设备、多媒体计算机、多媒体平板计算机、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或其任何组合,并且包括这些设备的附件和外围设备或其任何组合。可以设想的是,计算设备1500可以支持到用户的任何类型的接口(诸如“可穿戴”电路装置等)。
处理单元1510可以是物理处理器或虚拟处理器,并且可以基于存储在存储器1520中的程序实现各种处理。在多处理器系统中,多个处理单元并行地执行计算机可执行指令,以便改善计算设备1500的并行处理能力。处理单元1510也可以被称为中央处理单元(CPU)、微处理器、控制器或微控制器。
计算设备1500通常包括各种计算机存储介质。这样的介质可以是由计算设备1500可访问的任何介质,包括但不限于易失性介质和非易失性介质、或可拆卸介质和不可拆卸介质。存储器1520可以是易失性存储器(例如,寄存器、高速缓存、随机存取存储器(RAM))、非易失性存储器(诸如只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)或闪存)或其任何组合。存储单元1530可以是任何可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如存储器、闪存驱动器、磁盘或其他可以被用于存储信息和/或数据并且可以在计算设备1500中被访问的介质。
计算设备1500还可以包括附加的可拆卸/不可拆卸存储介质、易失性/非易失性存储介质。尽管在图15中未示出,但是可以提供用于从可拆卸的非易失性磁盘读取和/或写入可拆卸的非易失性磁盘的磁盘驱动器,以及用于从可拆卸的非易失性光盘读取和/或写入可拆卸的非易失性光盘的光盘驱动器。在这种情况下,每个驱动器可以经由一个或多个数据介质接口连接到总线(未示出)。
通信单元1540经由通信介质与另一计算设备通信。另外,计算设备1500中的分量的功能可以由可以经由通信连接进行通信的单个计算集群或多个计算机器来实现。因此,计算设备1500可以使用与一个或多个其他服务器、联网个人计算机(PC)或其他通用网络节点的逻辑连接来在联网环境中运行。
输入设备1550可以是各种输入设备中的一种或多种输入设备,诸如鼠标、键盘、轨迹球、语音输入设备等。输出设备1560可以是各种输出设备中的一种或多种输出设备,诸如显示器、扬声器、打印机等。借助于通信单元1540,计算设备1500还可以与一个或多个外部设备(未示出)通信,外部设备诸如是存储设备和显示设备,计算设备1500还可以与一个或多个使用户能够与计算设备1500交互的设备通信,或任何使计算设备1500能够与一个或多个其他计算设备通信的设备(例如网卡、调制解调器等)通信,如果需要的话。这种通信可以经由输入/输出(I/O)接口(未示出)进行。
在一些实施例中,计算设备1500的一些或所有分量也可以被排列在云计算架构中,而不是被集成在单个设备中。在云计算架构中,分量可以被远程提供并且共同工作,以实现本公开中描述的功能。在一些实施例中,云计算提供计算、软件、数据访问和存储服务,这将不要求最终用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实施例中,云计算使用合适的协议经由广域网(例如互联网)提供服务。例如,云计算提供商通过广域网提供应用程序,可以通过网络浏览器或任何其他计算分量访问这些应用程序。云计算架构的软件或分量以及对应的数据可以存储在远程服务器上。云计算环境中的计算资源可以被合并或分布在远程数据中心的位置。云计算基础设施可以通过共享数据中心提供服务,尽管它们表现为作为用户的单一接入点。因此,云计算架构可与被用于从远程位置的服务提供商处提供本文所述的分量和功能。备选地,它们可以由常规服务器提供,或者直接或以其他方式安装在客户端设备上。
在本公开的实施例中,计算设备1500可以被用于实现视频编码/解码。存储器1520可以包括具有一个或多个程序指令的一个或多个视频编解码模块1525。这些模块能够由处理单元1510访问和执行,以执行本文描述的各种实施例的功能。
在执行视频编码的示例实施例中,输入设备1550可以接收视频数据作为待编码的输入1570。视频数据可以由例如视频编解码模块1525处理,以生成经编码的码流。经编码的码流可以经由输出设备1560作为输出1580被提供。
在执行视频解码的示例实施例中,输入设备1550可以接收经编码的码流作为输入1570。经编码的码流可以由例如视频编解码模块1525处理,以生成经解码的视频数据。经解码的视频数据可以经由输出设备1560作为输出1580被提供。
虽然已经参考本公开的优选实施例具体示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求限定的本申请的精神和范围的情况下,可以在形式和细节上进行各种改变。这些变化旨在由本申请的范围所涵盖。因此,本申请的实施例的前述描述不旨在是限制性的。
Claims (59)
1.一种用于视频处理的方法,包括:
获得针对视频的目标图片中的参考图片;
至少部分地基于所述参考图片与所述目标图片之间的差异来确定所述参考图片是否要被用于对所述目标图片进行滤波;以及
如果确定所述参考图片要被用于对所述目标图片进行滤波,基于所述参考图片对所述目标图片执行时域滤波。
2.根据权利要求1所述的方法,其中确定所述参考图片是否要被用于对所述目标图片进行滤波包括:
确定所述参考图片与所述目标图片之间的总体像素差异;以及
基于所述总体像素差异来确定所述参考图片是否要被用于对所述目标图片进行滤波。
3.根据权利要求2所述的方法,其中确定所述总体像素差异包括:
通过执行运动估计过程来确定针对所述目标图片中的至少一个目标块的至少一个参考块;
对于所述至少一个参考块中的每个参考块和对应的目标块,确定所述参考块与所述目标块之间的块像素差异;以及
基于针对所述至少一个参考块和所述至少一个目标块确定的至少一个块像素差异来确定第一总体像素差异。
4.根据权利要求3所述的方法,其中基于所述总体像素差异来确定所述参考图片是否要被用于对所述目标图片进行滤波包括:
如果确定所述第一总体像素差异低于第一差异阈值,确定所述参考图片要被用于对所述目标图片进行滤波;以及
如果确定所述第一总体像素差异超过所述第一差异阈值,确定所述参考图片不被用于对所述目标图片进行滤波。
5.根据权利要求2所述的方法,其中确定所述总体像素差异包括:
基于所述参考图片中的像素与所述目标图片中的像素来确定所述参考图片与所述目标图片之间的第二总体像素差异。
6.根据权利要求5所述的方法,其中基于所述总体像素差异来确定所述参考图片是否要被用于对所述目标图片进行滤波包括:
如果确定所述第二总体像素差异低于第二差异阈值,确定所述参考图片要被用于对所述目标图片进行滤波;以及
如果确定所述第二总体像素差异超过所述第二差异阈值,确定所述参考图片不被用于对所述目标图片进行滤波。
7.根据权利要求1所述的方法,其中确定所述参考图片是否要被用于对所述目标图片进行滤波包括:
针对所述目标图片中的目标块,确定所述参考图片中的参考块;以及
确定所述参考块是否要被用于对所述目标块进行滤波,并且
其中执行所述时域滤波包括:
如果确定所述参考块要被用于对所述目标块进行滤波,基于所述参考块来对所述目标块执行所述时域滤波。
8.根据权利要求7所述的方法,其中确定所述参考块是否要被用于对所述目标块进行滤波包括:
确定所述参考块与所述目标块之间的块像素差异;
如果确定所述块像素差异低于第三差异阈值,确定所述参考块要被用于对所述目标块进行滤波;以及
如果确定所述块像素差异超过所述第三差异阈值,确定所述参考块不被用于对所述目标块进行滤波。
9.根据权利要求4、6和8中任一项所述的方法,还包括:
基于以下中的至少一项来确定所述第一差异阈值、所述第二差异阈值和所述第三差异阈值中的至少一项:
所述目标图片的内容,
所述视频的内容,
所述视频的分辨率,
像素的颜色分量,或
关于所述目标图片对所述参考图片执行的运动估计的块大小。
10.根据权利要求1所述的方法,其中执行所述时域滤波包括:
确定所述参考图片中的候选参考块与所述目标图片中的目标块之间的差异;
确定标识所述候选参考块的候选运动矢量是否被包括在针对所述目标图片的预定运动矢量集中,所述预定运动矢量集被分配有预定优先级;
如果确定所述候选运动矢量被包括在所述预定运动矢量集中,降低所述候选参考块与所述目标块之间的所述差异;
基于降低的所述差异来确定针对所述目标块的运动矢量;以及
基于所确定的运动矢量对所述目标块执行所述时域滤波。
11.根据权利要求10所述的方法,其中所述预定运动矢量集至少包括至少一个零运动矢量。
12.根据权利要求10所述的方法,其中对所述参考图片执行层级运动估计过程,所述层级运动估计过程包括要在多个层级层执行的多个运动估计,并且其中在一个层级层中使用的信息被共享在另一层级层中的运动估计中。
13.根据权利要求12所述的方法,其中所述方法还包括:
基于在所述多个层级层中的至少一个第二层级层中执行的至少一个第二运动估计中导出的信息,确定在所述多个层级层中的第一层级层处是否对所述预定运动矢量集启用优先级分配;以及
如果确定所述优先级分配被启用,将所述预定优先级分配给所述第一层级层处的所述预定运动矢量集。
14.根据权利要求13所述的方法,其中在所述至少一个第二运动估计中导出的所述信息包括在所述至少一个第二运动估计中导出的至少一组运动矢量,并且
其中确定是否对所述预定运动矢量集启用优先级分配包括:
确定零运动矢量与所述至少一组运动矢量的比率;
如果确定所述比率超过比率阈值,确定所述优先级分配被启用;以及
如果确定所述比率低于所述比率阈值,确定所述优先级分配被禁用。
15.根据权利要求13所述的方法,其中所述至少一个第二层级层高于所述第一层级层。
16.根据权利要求1所述的方法,其中确定所述参考图片是否要被用于对所述目标图片进行滤波包括:
检测所述参考图片与所述目标图片之间的场景差异;
如果确定所述场景差异指示所述参考图片属于与所述目标图片相同的场景,确定所述参考图片要被用于对所述目标图片进行滤波;以及
如果确定所述场景差异指示所述参考图片与所述目标图片之间的场景改变,确定所述参考图片不被用于对所述目标图片进行滤波。
17.根据权利要求1至16中任一项所述的方法,还包括:
基于以下中的至少一项来确定要被用于对所述目标图片进行滤波的参考图片的最大数目:
针对所述目标图片的可用参考图片的数目,
所述视频的分辨率,
所述视频的编码速度要求,
所述视频的码率,或者
所述目标图片的时域层。
18.根据权利要求17所述的方法,其中基于所述目标图片的所述时域层来确定所述参考图片的最大数目包括:
如果确定所述目标图片处于第一时域层,确定用于所述目标图片的参考图片的第一最大数目;以及
如果确定所述目标图片处于比所述第一时域层低的第二时域层,确定用于所述目标图片的参考图片的第二最大数目,所述第二最大数目大于所述第一最大数目。
19.根据权利要求17所述的方法,其中获得所述参考图片包括:
从针对所述目标图片的所述数目的可用参考图片中选择所述最大数目的参考图片;以及
从所述最大数目的参考图片中选择所述参考图片。
20.根据权利要求1-18中任一项所述的方法,还包括:
基于以下中的至少一项来确定是否要对所述目标图片执行所述时域滤波:
要被用于对所述目标图片进行滤波的参考图片的数目,
所述视频的分辨率,
所述视频的编码速度要求,
所述视频的码率,或者
所述目标图片的时域层。
21.根据权利要求1-20中任一项所述的方法,其中获得所述参考图片包括:
从所述视频选择原始图片;
生成针对所述原始图片的重构图片;以及
将所述重构图片确定为所述目标图片的所述参考图片。
22.根据权利要求1-21中任一项所述的方法,其中执行所述时域滤波包括:
关于所述目标图片来对所述参考图片执行运动估计过程,其中从所述运动估计过程禁用分数运动估计;以及
基于所述运动估计过程的结果来执行所述时域滤波。
23.根据权利要求22所述的方法,其中执行所述运动估计过程包括:
基于以下中的至少一项来确定所述分数运动估计是被启用还是被禁用:
所述视频的编码速度要求,或
所述视频的内容类型;以及
如果确定所述分数运动估计被禁用,从所述运动估计过程禁用所述分数运动估计。
24.根据权利要求1-23中任一项所述的方法,其中执行所述时域滤波包括:
确定所述视频的处理单元的块大小,所述处理单元至少包括所述目标图片;
在所述处理单元内选择所述目标图片中的目标块和所述参考图片中的至少一个候选参考块,所述目标块和所述至少一个候选参考块具有所述块大小;以及
关于所述目标块来对所述至少一个候选参考块执行运动估计过程;以及
基于所述运动估计过程的结果来执行所述时域滤波。
25.根据权利要求24所述的方法,其中确定所述块大小包括:
基于以下中的至少一项来确定所述块大小:
在所述处理单元中检测到的运动速度,
所述处理单元的内容平滑度,
所述视频的至少一个已编码的处理单元的编解码信息,
在针对所述目标图片执行的层级运动估计过程中已导出的运动矢量信息,
与所述运动矢量信息相关的成本信息,
要被用于对所述目标图片进行滤波的参考图片的数目,
所述视频的分辨率,
所述视频的编码速度要求,
所述视频的码率,
所述视频的比特深度,或者
所述目标图片的时域层。
26.根据权利要求1-25中任一项所述的方法,其中执行所述时域滤波包括:对于要被用于对所述目标图片中的目标块进行滤波的所述参考图片中的参考块,
基于所述参考块来确定针对所述目标块中的目标样本的参考样本;以及
基于所述目标图片和针对所述目标图片的预测图片来确定至少一个参数的至少一个值,所述预测图片是基于所述参考图片和运动矢量信息生成的,
基于所述至少一个参数的所述至少一个值来确定所述参考样本的权重,以及
至少部分地基于所述参考样本的所述权重和所述参考样本的样本值来确定针对所述目标样本的滤波样本值。
27.根据权利要求26所述的方法,其中所述至少一个参数包括与量化器参数(QP)相关的参数,并且其中确定所述至少一个参数值包括:
至少部分地基于所述目标图片与所述预测图片之间的差异的方差来确定所述QP相关的参数的值。
28.根据权利要求1-25中任一项所述的方法,其中QP相关的参数根据分布来设置,并且其中执行所述时域滤波包括:对于要被用于对所述目标图片中的目标块进行滤波的所述参考图片中的参考块,
基于所述参考块来确定针对所述目标块中的目标样本的参考样本;
至少部分地基于所述QP相关的参数的所述分布中的值的至少子集来确定所述参考样本的权重;以及
至少部分地基于所述参考样本的所述权重和所述参考样本的样本值来确定所述目标样本的滤波样本值。
29.根据权利要求1-28中任一项所述的方法,其中执行所述时域滤波包括:
至少部分地基于所述参考图片中的像素和所述目标图片中的像素的色度分量来执行运动估计过程;以及
基于所述运动估计过程的结果来执行所述时域滤波。
30.根据权利要求1-29中任一项所述的方法,其中执行所述时域滤波包括:
从所述参考图片标识针对所述目标图片中的目标块的多个参考块;以及
基于所述多个参考块对所述目标块执行所述时域滤波。
31.根据权利要求30所述的方法,其中标识所述多个参考块包括:
通过执行具有不同块大小的运动估计过程来标识所述多个参考块。
32.根据权利要求30所述的方法,其中对所述参考图片执行层级运动估计过程,所述层级运动估计过程包括要在多个层级层执行的多个运动估计,以及
其中标识所述多个参考块包括:
从所述多个运动估计来确定针对所述目标块的多个运动矢量;以及
从所述参考图片确定由所述多个运动矢量标识的多个参考块。
33.根据权利要求30所述的方法,其中标识所述多个参考块包括:
通过对所述参考图片执行运动估计过程来确定针对所述目标块的一组候选运动矢量;
基于所述一组候选运动矢量的相应成本,从所述一组候选运动矢量中选择多个运动矢量;以及
从所述参考图片确定由所述多个运动矢量标识的多个参考块。
34.根据权利要求1-33中任一项所述的方法,其中执行所述时域滤波包括:
确定所述目标图片中的目标块的运动矢量;
通过基于取决于QP值的参数值和所述运动矢量的坐标分量来惩罚所述运动矢量,来确定所述运动矢量的成本;
至少部分地基于所述运动矢量的所述成本来确定针对所述目标块的所述参考图片中的参考块;以及
基于所确定的参考块对所述目标块执行所述时域滤波。
35.根据权利要求1-33中任一项所述的方法,其中执行所述时域滤波包括:
确定针对所述目标图片中的目标块的运动矢量预测子;
确定针对所述目标图片中的目标块的运动矢量;
惩罚所述运动矢量与所述运动矢量预测子之间的差异;
至少部分地基于已惩罚的所述差异来确定针对所述目标块的所述参考图片中的参考块;以及
基于所确定的参考块对所述目标块执行所述时域滤波。
36.根据权利要求1-35中任一项所述的方法,其中所述时域滤波在针对所述目标图片的多通路编码中被执行,并且
其中执行所述时域滤波包括:
在所述多通路编码中的第一编码通路期间,基于在所述多通路编码中的第二编码过程期间已生成的针对所述目标图片中的目标块的至少一个运动矢量,对所述目标图片中的所述目标块执行时域滤波。
37.根据权利要求1-36中任一项所述的方法,其中执行所述时域滤波包括:
通过应用仿射运动模型来执行运动估计和补偿过程;以及
基于所述运动估计和补偿过程的结果来执行所述时域滤波。
38.根据权利要求37所述的方法,其中所述仿射运动模型包括4参数仿射模型或6参数仿射模型中的至少一个。
39.根据权利要求37所述的方法,其中执行所述运动估计和补偿过程包括:
基于以下中的至少一项来确定所述仿射运动模型是否可应用:
在针对所述目标图片的编码过程中是否所述仿射运动模型被启用,或者
仿射编码块与所有块的比率;以及
如果确定所述仿射运动模型可应用,通过应用所述仿射运动模型来执行所述运动估计和补偿过程。
40.根据权利要求1-39中任一项所述的方法,其中执行所述时域滤波包括:
在所述目标图片的预测中应用以下中的至少一项:
重叠块运动补偿(OBMC),或
双向光流(BDOF)。
41.根据权利要求1-40中任一项所述的方法,其中执行所述时域滤波包括:
确定针对所述目标图片中的目标块的运动矢量;
对所述运动矢量应用解码器侧运动矢量细化(DMVR),以获得细化的运动矢量;
至少部分地基于所述细化的运动矢量来确定针对所述目标块的所述参考图片中的参考块;以及
基于所确定的参考块对所述目标块执行所述时域滤波。
42.根据权利要求1-41中任一项所述的方法,其中执行所述时域滤波包括:
获得在对所述目标图片的预分析中导出的信息;以及
基于所述信息执行所述时域滤波。
43.根据权利要求42所述的方法,其中在所述预分析过程中导出的信息包括以下中的至少一项:
针对所述目标图片中的至少一个目标块的至少一个运动矢量,
在所述预分析过程中得出的帧内成本,或
在所述预分析过程中得出的帧间成本。
44.根据权利要求43所述的方法,其中基于所述信息执行所述时域滤波包括:
基于所述帧内成本或所述帧间成本中的至少一项来确定所述参考图片中的参考块或参考样本的权重。
45.根据权利要求1-44中任一项所述的方法,还包括:
基于在所述时域滤波中生成的针对所述目标图片的至少一个运动矢量来确定针对所述视频的编码模式。
46.根据权利要求45所述的方法,其中确定所述编码模式包括:
基于所述至少一个运动矢量来确定所述视频的处理单元的开始搜索点,所述处理单元包括编解码单元(CU)、预测单元(PU)、宏块(MB)或块中的一个。
47.根据权利要求1-46中任一项所述的方法,还包括:
基于在所述时域滤波中生成的针对所述目标图片的至少一个运动矢量,对所述目标图片执行预分析过程。
48.根据权利要求1-47中任一项所述的方法,还包括:
对所述目标图片中的至少一个样本执行空间滤波。
49.根据权利要求48所述的方法,其中执行所述空间滤波包括:
针对所述目标图片中的块或区域,确定所述目标图片中的至少一个空间方向;以及
在所述至少一个空间方向上对所述目标图片的所述块或所述区域执行所述空间滤波。
50.根据权利要求49所述的方法,其中确定所述至少一个空间方向包括:
基于以下中的至少一项来确定所述至少一个空间方向:
所述块或所述区域中的至少一个样本的梯度,
针对所述块或所述区域的至少一个允许的帧内预测方向,或者
所述块或所述区域中的至少一个样本与针对所述至少一个样本的至少一个预测样本之间的差异。
51.根据权利要求48所述的方法,其中执行所述空间滤波包括:
使用区域或块内的至少一个样本对所述区域或所述块中的至少一个邻居样本执行所述空间滤波。
52.根据权利要求51所述的方法,其中所述至少一个邻居样本包括以下中的至少一项:
所述区域或所述块中的至少一个上邻居样本,或
所述区域或所述块中的至少一个左邻居样本。
53.根据权利要求48所述的方法,其中执行所述空间滤波包括:对于所述至少一个样本中的每个样本,
基于所述样本与至少一个邻居样本之间的差异来确定针对所述样本的权重;以及
基于针对所述样本的权重对所述样本执行所述空间滤波。
54.根据权利要求48所述的方法,还包括:
从所述目标图片中的至少一个预定义位置选择要被滤波的所述至少一个样本。
55.根据权利要求54所述的方法,其中所述至少一个预定义位置包括以下中的至少一项:
编码树单元(CTU)的至少一个边界处的至少一个位置,或者
在具有预定尺寸的网格的至少一个边界处的至少一个位置。
56.根据权利要求55所述的方法,其中所述CTU的所述至少一个边界包括所述CTU的右边界或底边界中的至少一个。
57.一种电子设备,包括:
处理单元;以及
存储器,耦合到所述处理单元并且具有存储在其上的指令,所述指令在由所述处理单位执行时使所述电子设备执行根据权利要求1-56中任一项所述的方法。
58.一种非暂态计算机可读存储介质,存储指令,所述指令使处理器执行根据权利要求1-56中任一项所述的方法。
59.一种非暂态计算机可读记录介质,存储由根据权利要求1-56中任一项所述的方法生成的视频的码流,其中所述方法由视频处理装置执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021085017 | 2021-04-01 | ||
CNPCT/CN2021/085017 | 2021-04-01 | ||
PCT/CN2022/084648 WO2022206928A1 (en) | 2021-04-01 | 2022-03-31 | Method, device, and medium for video processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117242479A true CN117242479A (zh) | 2023-12-15 |
Family
ID=83458070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280025259.4A Pending CN117242479A (zh) | 2021-04-01 | 2022-03-31 | 用于视频处理的方法、装置和介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117242479A (zh) |
WO (1) | WO2022206928A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2867329A1 (fr) * | 2004-03-02 | 2005-09-09 | Thomson Licensing Sa | Procede de codage d'une sequence d'images par analyse temporelle hierarchique. |
JP4484910B2 (ja) * | 2007-08-24 | 2010-06-16 | 日本電信電話株式会社 | 動き補償付きテンポラルフィルタ処理装置,処理方法,処理プログラムおよびコンピュータ読み取り可能な記録媒体 |
CN104952041A (zh) * | 2014-03-26 | 2015-09-30 | 安凯(广州)微电子技术有限公司 | 图像滤波方法和装置 |
CN104952042A (zh) * | 2014-03-26 | 2015-09-30 | 安凯(广州)微电子技术有限公司 | 图像滤波方法和装置 |
CN104952040A (zh) * | 2014-03-26 | 2015-09-30 | 安凯(广州)微电子技术有限公司 | 图像滤波方法和装置 |
-
2022
- 2022-03-31 WO PCT/CN2022/084648 patent/WO2022206928A1/en active Application Filing
- 2022-03-31 CN CN202280025259.4A patent/CN117242479A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022206928A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2019519998A (ja) | 自動的な動き情報の精緻化を伴うビデオコード化のための方法及び機器 | |
CN117337564A (zh) | 用于视频处理的方法、装置和介质 | |
CN117529919A (zh) | 用于视频处理的方法、设备和介质 | |
CN117356097A (zh) | 用于视频处理的方法、设备和介质 | |
WO2022206928A1 (en) | Method, device, and medium for video processing | |
WO2023061305A1 (en) | Method, apparatus, and medium for video processing | |
WO2023056895A1 (en) | Method, apparatus, and medium for video processing | |
WO2024002185A1 (en) | Method, apparatus, and medium for video processing | |
WO2023131047A1 (en) | Method, apparatus, and medium for video processing | |
WO2023078430A1 (en) | Method, apparatus, and medium for video processing | |
WO2024046479A1 (en) | Method, apparatus, and medium for video processing | |
WO2024017378A1 (en) | Method, apparatus, and medium for video processing | |
WO2023061306A1 (en) | Method, apparatus, and medium for video processing | |
WO2023078449A1 (en) | Method, apparatus, and medium for video processing | |
WO2024078550A1 (en) | Method, apparatus, and medium for video processing | |
Saldanha et al. | Versatile Video Coding (VVC) | |
WO2024032671A1 (en) | Method, apparatus, and medium for video processing | |
WO2024027802A1 (en) | Method, apparatus, and medium for video processing | |
WO2024083197A1 (en) | Method, apparatus, and medium for video processing | |
WO2023025178A1 (en) | Method, apparatus, and medium for video processing | |
WO2024067638A1 (en) | Method, apparatus, and medium for video processing | |
WO2023098829A1 (en) | Method, apparatus, and medium for video processing | |
WO2024037638A1 (en) | Method, apparatus, and medium for video processing | |
WO2024114651A1 (en) | Method, apparatus, and medium for video processing | |
WO2023051652A1 (en) | Method, apparatus, and medium for video processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: Room B-0035, 2nd floor, No. 3 Courtyard, 30 Shixing Street, Shijingshan District, Beijing Applicant after: Douyin Vision Co.,Ltd. Applicant after: Byte Jump Co.,Ltd. Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing. Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd. Applicant before: Byte Jump Co.,Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |