自适应环路滤波器

文档序号:174681 发布日期:2021-10-29 浏览:29次 >En<

阅读说明:本技术 自适应环路滤波器 (Adaptive loop filter ) 是由 乔纳森·泰奎特 C·吉斯科特 G·拉罗彻 P·乌诺 于 2020-03-05 设计创作,主要内容包括:一种控制自适应环路滤波器的方法,所述方法包括:针对包含一个或多个编码树块的片,获得指示可用的替代色度滤波器的数量的数据;针对所述片中的编码树块,获得标识所述可用的替代色度滤波器之一的替代滤波器索引;以及选择所述索引所标识的替代色度滤波器以对所述编码树块中的色度图像数据进行滤波。(A method of controlling an adaptive loop filter, the method comprising: obtaining, for a slice containing one or more coding tree blocks, data indicating a number of available alternative chroma filters; obtaining, for a coding tree block in the slice, a replacement filter index identifying one of the available replacement chroma filters; and selecting the alternative chroma filter identified by the index to filter chroma image data in the coding tree block.)

自适应环路滤波器

技术领域

本发明涉及视频成分的块的编码或解码。本发明的实施例发现了在控制用于滤波这种成分的样本的滤波器时的特定但不排他的使用。特别地但不排他地,控制自适应环路滤波器。

背景技术

视频编码包括图像编码(图像等效于视频的单个帧)。在视频编码中,诸如变换系数的量化或运动补偿(通常使用插值滤波器来进行)等的一些编码工具经常引入失真偏置/效应(在给定上下文中看起来是规则的或至少是非随机的失真)。为了补偿这些偏差/伪像,并且提高(或至少维持良好水平的)编码效率,使用一些特定编码工具,称为后滤波器或环内滤波器。解块滤波器(DBF)、样本自适应位移(SAO)滤波器或自适应环路滤波器(ALF)是这种编码工具的一些示例。在编码环路内应用环内滤波器,使得它们提供给当前帧的图像质量增加,由此基于当前帧编码的下一帧的编码效率增加。例如,DCT系数的量化对于视频压缩是有效的,但是它经常在压缩的样本块的边界上引入块伪像(偏差)。解块滤波器减少了由这种伪像引起的不期望的影响。与在编码环路外(例如,就在显示帧之前)对帧进行解块相比,在编码环路内(在帧用作另一帧的运动补偿的参考帧之前)对解码帧进行解块(使用DBF)显著地增加了运动补偿的编码效率。

本发明特别涉及自适应环路滤波器(ALF)(诸如线性ALF或其非线性扩展等),该自适应环路滤波器也用作环内滤波器以减少解码帧/图像中的不期望的压缩伪像。ALF已经由视频编码专家组/运动图片专家组(VCEG/MPEG)标准化组研究,并且正考虑在通用视频编码(VVC)标准中使用,例如在VVC测试模型软件的第三版本(VTM-3.0或VVC草稿版本3)中使用。

发明内容

本发明的实施例的目的在于解决视频成分的块的前述编码或解码的一个或多个问题或缺点。

尽管线性ALF及其非线性扩展是有效的编码工具,但是它们的设计可以被改进以允许甚至更大的编码效率,以及/或者为编码/解码软件/装置提供更多的灵活性。

根据本发明的方面,提供了如所附权利要求中所阐述的设备/装置、方法、程序、计算机可读存储介质和信号。根据从属权利要求和说明书,本发明的其它特征将是明显的。

根据本发明的第一方面,提供一种控制自适应环路滤波器(ALF)的方法,所述方法包括:针对包含一个或多个编码树块的片,获得指示多个可用替代色度滤波器的数据;针对所述片中的编码树块,获得标识所述可用替代色度滤波器之一的替代滤波器索引;以及选择所述索引所标识的替代色度滤波器以对所述编码树块中的色度图像数据进行滤波。通过用信号通知用于色度成分的替代滤波器,可以改善ALF的滤波质量之间的更好折衷,同时仍然维持良好的编码效率。可以在包括一个或多个图像的图像数据中提供色度图像数据。图像数据可以是包括图像序列(即,帧)的视频数据。

所述方法可以包括对可被指示的替代色度滤波器的最大允许数量施加8的限制。尽管需要存储和用信号通知8个色度滤波器,但是这提供了质量相对于编码效率的令人惊讶的良好改进。

指示可用的替代色度滤波器的数量的数据可以设置在自适应参数集中。可以在片头部中标识自适应参数集。由此,可以在片级别控制替代色度滤波器的数量。

所述方法可以包括针对指示为可用的一个或多个色度滤波器获得色度滤波器系数。例如,可以针对一个或多个色度滤波器获得六个色度滤波器系数。可以在自适应参数集(APS)中提供色度滤波器系数。因而,可以针对由所获得的数据指示的多个可用色度滤波器有效地用信号通知/提供色度滤波器系数,即在位流中用信号通知/提供。

在一些实施例中,可以针对一个或多个色度滤波器获得标志,该标志指示相应的色度滤波器是线性滤波器还是非线性滤波器。当所获得的标志指示色度滤波器为非线性时,可以针对一个或多个色度滤波器获得一个或多个限幅参数值索引。非线性色度滤波器的限幅参数值索引可以使限幅值的表与相关的非线性滤波器相关联。因此,针对各个色度滤波器提供有效的方法以指示色度滤波器是线性的还是非线性的,并且在色度滤波器是非线性的情况下,提供了用于色度滤波器的限幅参数的提供/用信号通知(例如,通过在位流中提供/用信号通知限幅参数值)。可以对限幅参数值施加这样的限制以减小编码器复杂性和编码成本而对图像质量具有极小的不利影响。

替代色度滤波器的数量可以用于获得替代滤波器索引。例如,可以根据截断一元二值化在位流中提供替代滤波器索引。这允许位流被有效地解析。例如,在一元编码的情况下,终止零“0”总是放置在表示替代物索引值的一“1”之后,除非替代滤波器索引等于替代物的数量减一。换言之,读取“1”的数量直到读取了替代物的数量减一“1”或者解码了终止零“0”为止。由此,解码器可以总是解析值,即使在所允许的替代物的数量可以变化时也是如此

在本发明的第二方面,提供一种将图像数据编码到位流中的方法,该方法包括根据第一方面的方法来控制自适应环路滤波器。

在本发明的第三方面中,提供一种从位流中解码图像数据的方法,该方法包括根据第一方面的方法来控制自适应环路滤波器。

在本发明的第四方面中,提供一种用于控制被配置为进行第一方面的方法的自适应环路滤波器的装置。

在本发明的第五方面中,提供一种用于将图像数据编码到位流中的装置,所述装置被配置为根据第二方面的方法来对图像数据进行编码。

在本发明的第六方面中,提供一种用于从位流中解码图像数据的装置,所述装置被配置为根据第三方面的方法来对图像数据进行解码。

在本发明的第七方面,提供一种程序,当在计算机或处理器上运行时,该程序使该计算机或处理器执行该第一方面、第二方面或第三方面中任一项的方法。程序可以单独提供,或者可以在载体介质上、由载体介质或在载体介质中承载。该载体介质可以是非暂时性的,例如,存储介质,特别是计算机可读存储介质。载体介质也可以是暂时性的,例如信号或其它传输介质。信号可以经由任何合适的网络(包括互联网)来发送。

根据本发明的第一附加方面,提供一种用于针对图像的一个或多个图像部分控制自适应环路滤波器的方法,所述方法包括:获得用于标识针对第一图像部分的块可用的第一滤波器的第一信息;针对所述第一图像部分获得用于指示是否改变所述第一滤波器选择的第二信息或用于标识第二滤波器的第三信息中的一个或多个;以及确定是否基于所述第二信息使用所述第一滤波器或是否基于所述第三信息对所述块使用所述第二滤波器中的一个或多个。

可选地,控制自适应环路滤波器的方法还包括针对块:基于第二信息选择第一滤波器;或者基于第二信息(例如,当仅第一滤波器和第二滤波器可用于块/第一图像部分时)或第三信息(例如,当可针对块/第一图像部分确定多于两个滤波器以使得存在可以对块使用的至少另一第三滤波器时)选择第二滤波器。可选地,当第二信息指示改变第一滤波器选择时,代替地使用标识滤波器和/或获得第三信息。可选地,自适应环路滤波器使用线性函数(滤波器),即,其输出是输入样本值的线性组合。可选地,自适应环路滤波器使用非线性函数(滤波器),即,其输出取决于其输入样本值中的至少一些的非线性组合。可选地,自适应环路滤波器通过使用至少一些输入样本值的非线性组合作为其输入来引入非线性。

可选地,第一滤波器和第二滤波器中的一个是线性滤波器,而另一个是非线性滤波器。可选地,第一信息包括以下各项中的一项或多项:用于第一滤波器的滤波器标识符、或用于指示块或第一图像部分所属于的类或组的信息、与滤波器标识符相关联的各个类或各个组。优选地,用于块的类或组与用于第一滤波器的滤波器标识符相关联。可选地,第一信息包括滤波器索引和类索引中的一个或多个。可选地,各个类索引与滤波器索引(例如,第一滤波器的滤波器索引)相关联。可选地,针对各个滤波器标识符或者各个类或组提供第二信息和/或第三信息。

可选地,获得第一信息包括处理第一图像部分的样本以确定块的类或组。可选地,第二信息包括滤波器切换标志和/或第三信息包括替代滤波器索引。可选地,一个或多个图像部分是区块组。可选地,第一图像部分为编码树单元。可选地,第一图像部分的块是4个样本乘4个样本块。可选地,第一图像部分的块是亮度样本块。可替代地,第一图像部分的块是色度样本块。

可选地,在位流中提供以下各项中的一个或多个:第一滤波器的滤波器系数;第二滤波器的滤波器系数;第二信息;以及第三信息。可选地,在自适应参数集中包括第一滤波器的滤波器系数和第二滤波器的滤波器系数中的一个或多个。可选地,在编码树单元数据中包括第二信息和第三信息中的一个或多个。可选地,在区块组头部中包括自适应参数集的引用。可选地,第一信息包括滤波器索引和类索引中的一个或多个。可选地,各个类索引与滤波器索引相关联。可替代地,在第一自适应参数集中包括第一滤波器的滤波器系数,在不同于第一自适应参数集的第二自适应参数集中包括第二滤波器的滤波器系数,并且第三信息包括对第一自适应参数集或第二自适应参数集之一的引用(其包括在区块组中)。

可选地,该方法还包括:确定是否针对第一图像部分启用自适应环路滤波器;以及在针对第一图像部分启用自适应环路滤波器的情况下,进行获得和确定步骤。

根据本发明的第二附加方面,提供一种用于针对图像的一个或多个图像部分控制自适应环路滤波器的方法,所述方法包括:获得用于指示第一图像部分的块所属于的类或组的类信息,所述类信息是通过处理第一图像部分的多个样本可获得的;获得用于标识滤波器系数集合的滤波器信息;以及使用类信息和滤波器信息来控制自适应环路滤波器,其中所获得的类信息与经处理的用于标识第一滤波器系数集合的滤波器信息相关联,并且所述控制包括:获得用于将所获得的类信息与不同于经处理的滤波器信息的滤波器信息相关联的信息、或者用于指示针对所获得的类信息或针对所获得的滤波器信息使用或不使用第一集合的信息中的一个或多个;以及基于所获得的所述一个或多个信息来控制不使用具有所述自适应环路滤波器的所述第一集合。可选地,在位流中提供滤波器信息、滤波器系数集合、不同滤波器信息和所获得的一个或多个信息中的一个或多个。可选地,在自适应参数集中包括滤波器信息、滤波器系数集合和不同滤波器信息中的一个或多个,并且在编码树单元数据中包括所获得的一个或多个信息。

根据本发明的第三附加方面,提供一种处理图像的一个或多个图像部分的方法,图像部分具有与其相关联的色度样本和亮度样本,其中所述方法包括:基于从位流中获得的信息或者图像部分的第一样本值及其一个或多个邻近样本值,确定以下各项其中至少之一:是否使用利用根据第一方面或第二方面的方法所控制的自适应环路滤波器;启用或禁用所述自适应环路滤波器的使用;或者在对第一样本值进行滤波时与所述自适应环路滤波器一起使用的滤波参数。

根据本发明的第四附加方面,提供一种用于对一个或多个图像进行编码的方法,所述方法包括:针对图像的一个或多个图像部分,根据第一方面或第二方面控制自适应环路滤波器,或者根据第三方面进行处理。可选地,所述方法还包括:接收图像;对所接收的图像进行编码并生成位流;以及处理经编码图像,其中处理包括根据第一附加方面或第二附加方面的控制或者根据第三附加方面的处理。可选地,所述方法还包括在位流中提供以下各项中的一个或多个:第一滤波器的滤波器系数;第二滤波器的滤波器系数;第二信息;以及第三信息。

根据本发明的第五附加方面,提供一种用于对一个或多个图像进行解码的方法,所述方法包括:针对图像的一个或多个图像部分,根据第一附加方面或第二附加方面控制自适应环路滤波器,或者根据第三附加方面进行处理。可选地,所述方法还包括:接收位流;从所接收的位流中解码信息以获得图像;以及处理所获得的图像,其中所述处理包括根据第一方面或第二方面的控制或者根据第三方面的处理。可选地,所述方法还包括从位流获得以下各项中的一个或多个:第一滤波器的滤波器系数;第二滤波器的滤波器系数;第二信息;以及第三信息。

根据本发明的第六附加方面,提供一种用于针对图像的一个或多个图像部分控制自适应环路滤波器的方法,所述方法包括:获得用于标识针对第一图像部分的块可用的第一滤波器的第一信息以及用于指示滤波器集合的计数的第二信息,各个滤波器集合包括一个或多个滤波器;针对第一图像部分获得用于从滤波器集合之一中标识第二滤波器的第三信息;以及基于第二信息和第三信息来控制对所述块使用第二滤波器。可选地,滤波器集合中的一个或多个用于亮度成分样本。可选地,滤波器集合中的一个或多个用于色度成分样本。可选地,滤波器集合用于亮度成分样本。可选地,滤波器集合是亮度滤波器集合替代物。可替代地,滤波器集合用于色度成分样本。可选地,滤波器集合用于两个色度成分(例如,Cb和Cr)之一的样本。可选地,滤波器集合是色度滤波器替代物。可选地,各个滤波器集合由一个色度滤波器替代物组成。应理解,当各个滤波器集合由一个色度滤波器替代物组成时,这样的滤波器集合也可称为色度滤波器替代物。

可选地,滤波器集合的计数可使用图像中所包括的图像部分的数量或块的数量来确定。可选地,针对图像部分/块的行/列(例如,布置在水平、垂直或对角线中)确定图像部分的数量或块的数量。可替代地,针对较大图像部分或整个图像(例如,布置在矩形较大图像部分或矩形图像中)确定图像部分的数量或块的数量。可选地,获得第二信息包括确定图像中的图像部分的数量或块的数量,并且基于所确定的数量来确定计数。

可选地,所述第二信息是从位流中获得的。可选地,第一滤波器和第二滤波器中的一个是线性滤波器,而另一个是非线性滤波器。

可选地,第一信息包括以下各项中的一个或多个:第一滤波器的滤波器标识符、或用于指示块或第一图像部分所属于的类或组的信息、与滤波器标识符相关联的各个类或各个组。可选地,针对各个滤波器标识符或各个类或组提供第三信息。

可选地,获得第一信息包括处理第一图像部分的样本以确定块的类或组。可选地,第三信息包括替代滤波器索引。可选地,一个或多个图像部分是区块组;第一图像部分是编码树单元;以及/或者第一图像部分的块是4个样本乘4个样本块。

可选地,在位流中提供以下各项中的一个或多个:第一滤波器的滤波器系数;第二滤波器的滤波器系数;第一信息;第二信息;以及第三信息。可选地,在自适应参数集中包括第二信息、第一滤波器的滤波器系数和第二滤波器的滤波器系数中的一个或多个;以及/或者在编码树单元数据中包括第三信息;以及/或者区块组头部中包括对自适应参数集的引用。

可选地,所述方法还包括确定是否针对第一图像部分启用自适应环路滤波器;以及当针对第一图像部分启用自适应环路滤波器时,进行获得和确定步骤。

根据本发明的第七附加方面,提供一种用于针对图像的一个或多个图像部分控制自适应环路滤波器的方法,所述方法包括:获得用于指示第一图像部分的块所属于的类或组的类信息,所述类信息是通过处理第一图像部分的多个样本可获得的;获得用于指示滤波器集合的数量的计数信息,各个滤波器集合包括一个或多个滤波器;获得用于标识滤波器的滤波器信息,滤波器具有滤波器系数集合;以及使用类信息、计数信息和滤波器信息来控制自适应环路滤波器,其中,所获得的类信息与标识第一滤波器的所获得的滤波器信息相关联,以及所述控制包括:获得用于将所获得的类信息与不同于所获得的滤波器信息的其它滤波器信息相关联的信息,该其它滤波器信息从滤波器集合之一中标识第二滤波器;以及基于计数信息和其它滤波器信息来控制针对块使用第二滤波器。

可选地,在位流中提供以下各项中的一个或多个:计数信息;滤波器信息;用于一个或多个滤波器的一个或多个滤波器系数集合;其它滤波器信息;以及用于将所获得的类信息与其它滤波器信息相关联的所获得的信息。可选地,在自适应参数集中包括以下各项中的一个或多个:计数信息;滤波器信息;用于一个或多个滤波器的一个或多个滤波器系数集合;其它滤波器信息,以及在编码树单元数据中包括用于将所获得的类信息与其它滤波器信息相关联的所获得的信息。

根据本发明的第八附加方面,提供一种用于处理图像的一个或多个图像部分的方法,图像部分具有与其相关联的色度样本和亮度样本,其中所述方法包括基于从位流中获得的信息或该图像部分的第一样本值及其一个或多个邻近样本值,确定以下各项其中至少之一:是否使用利用根据第六方面或第七方面的方法所控制的自适应环路滤波器;启用或禁用所述自适应环路滤波器的使用;或者在对第一样本值进行滤波时与所述自适应环路滤波器一起使用的滤波参数。

根据本发明的第九附加方面,提供一种用于通过评估用于针对图像的块或图像部分使用的一个或多个优化参数来确定滤波器集合的计数的方法,所述方法包括:获得第一数量的滤波器集合;将来自滤波器集合之一的滤波器关联到图像部分的各个块;基于速率失真比较,确定针对各个块或针对各个图像部分启用还是禁用ALF,以及来自哪个滤波器集合的哪个滤波器与各个块相关联;以滤波器集合的第二数量重复获得、关联和确定,直到第二数量为1为止,所述第二数量不同于所述第一数量;以及选择(或确定)满足评估标准的滤波器集合的数量作为滤波器集合的计数。可选地,确定滤波器集合的计数使用速率失真函数。可选地,第二数量小于第一数量。可选地,随着获得、关联和确定的重复,逐渐地减少滤波器集合的数量。可选地,评估标准是基于速率失真成本。可选地,优化参数包括以下各项中的一个或多个:用于编码树块(CTB)的ALF启用标志;滤波器集合与编码树块的关联;以及用于编码树块的滤波器的一个或多个滤波器系数。可选地,CTB的ALF启用标志包括以下各项中的一个或多个:ALF亮度启用标志;ALF Cb启用标志;以及ALF Cr启用标志。可选地,滤波器集合中的一个或多个用于亮度成分样本。可选地,滤波器集合中的一个或多个是亮度滤波器集合替代物。可替代地,滤波器集合中的一个或多个用于色度成分样本。可选地,一个或多个滤波器集合用于两个色度成分(例如,Cb和Cr)之一的样本。可选地,一个或多个滤波器集合是色度滤波器替代物。

根据本发明的第十附加方面,提供一种用于对一个或多个图像进行编码的方法,所述方法包括:针对图像的一个或多个图像部分,根据第六方面或第七方面控制自适应环路滤波器,或者根据第八方面进行处理。可选地,所述方法还包括:接收图像;对所接收的图像进行编码并生成位流;以及处理经编码图像,其中所述处理包括根据第六附加方面或第七附加方面的控制或者根据第八附加方面的处理。可选地,所述方法还包括在位流中提供以下各项中的一个或多个:第一滤波器的滤波器系数;第二滤波器的滤波器系数;第一信息;第二信息;以及第三信息。

可选地,该方法还包括通过评估使用具有不同滤波器集合数量的两个或更多个滤波器集合所获得的一个或多个优化参数来确定滤波器集合的计数。可选地,确定滤波器集合的计数使用速率失真函数。可选地,评估一个或多个优化参数包括:获得第一数量的滤波器集合;将来自滤波器集合之一的滤波器关联到图像部分的各个块;基于速率失真比较,确定针对各个块或针对各个图像部分启用还是禁用ALF,以及来自哪个滤波器集合的哪个滤波器与各个块相关联;以滤波器集合的第二数量重复获得、关联和确定,直到第二数量为1为止,第二数量不同于第一数量;以及选择满足评估标准的滤波器集合的数量作为滤波器集合的计数。可选地,第二数量小于第一数量。可选地,随着重复获取、关联和确定,逐渐地减少滤波器集合的数量。可选地,评估标准是基于速率失真成本。可选地,优化参数包括以下各项中的一个或多个:编码树块(CTB)的ALF启用标志;滤波器集合与编码树块的关联;以及用于编码树块的滤波器的一个或多个滤波器系数。可选地,CTB的ALF启用标志包括以下各项中的一个或多个:ALF亮度启用标志;ALF Cb启用标志及ALF Cr启用标志。可选地,滤波器集合中的一个或多个用于亮度成分样本。可选地,一个或多个滤波器集合是亮度滤波器集合替代物。可替代地,滤波器集合中的一个或多个用于色度成分样本。可选地,一个或多个滤波器集合用于两个色度成分(例如,Cb和Cr)之一的样本。可选地,一个或多个滤波器集合是色度滤波器替代物。

根据本发明的第十一附加方面,提供一种用于对一个或多个图像进行解码的方法,所述方法包括:针对图像的一个或多个图像部分,根据第六方面或第七方面控制自适应环路滤波器,或者根据第八方面进行处理。可选地,所述方法还包括:接收位流;从所接收到的位流中解码信息以获得图像;以及处理所获得的图像,其中,所述处理包括根据第六附加方面或第七附加方面的控制或者根据第八附加方面的处理。可选地,所述方法还包括从位流获得以下各项中的一个或多个:第一滤波器的滤波器系数;第二滤波器的滤波器系数;第一信息;第二信息;以及第三信息。

根据本发明的第十二附加方面,提供一种用于针对图像的一个或多个图像部分控制自适应环路滤波器的装置,所述装置包括被配置为进行根据第一方面、第二方面、第三附加方面、第六附加方面、第七附加方面,第八附加方面或第九附加方面的方法的控制器。

根据本发明的第十三附加方面,提供一种用于对图像进行编码的装置,所述装置包括根据第十二附加方面的控制装置。可选地,所述装置被配置为进行根据以上提及的第四附加方面或第十附加方面中任一项的方法。

根据本发明的第十四附加方面,提供一种用于对图像进行解码的装置,所述装置包括根据第十二附加方面的控制装置。可选地,所述装置被配置为进行根据以上提及的第五或第十一附加方面中任一项的方法。

根据本发明的第十五附加方面,提供一种程序,当在计算机或处理器上运行时,所述程序使计算机或处理器执行根据第一附加方面、第二附加方面、第三附加方面、第四附加方面、第五附加方面、第六附加方面、第七附加方面、第八附加方面、第九附加方面、第十附加方面或第十一附加方面中任一项的方法。

根据本发明的第十六方面,提供一种存储根据第十五附加方面的计算机程序的计算机可读存储介质。

根据本发明的第十七附加方面,提供一种信号,所述信号承载用于使用根据以上提及的第四附加方面或第十附加方面中任一项的方法编码并且由位流表示的图像的信息数据集,所述图像包括可重建样本集合,各个可重建样本具有样本值,其中,所述信息数据集包括用于基于第一可重建样本的邻近样本的样本值来控制对第一可重建样本的滤波的控制数据。

当启用使用来自两个或更多个滤波器集合(与仅一个滤波器集合相反)的滤波器时,寻求对线性ALF及其非线性扩展的改进。最近自适应参数集(APS)重新引入VVC中以允许通过多个片和/或多个帧共用ALF参数。APS引入的问题是可能使用许多APS(例如,在最新草稿文本中高达N等于32),并且因此必须存储在解码器的存储器中。然后存储一个APS的ALF参数所需的存储器的N倍必须专用于存储多达N个APS的ALF参数。这对于硬件解码器的有效设计而言存在太多存储器。因此,期望找到减少ALF滤波器的存储器的方式。还期望在保持比当前在VVC中的存储器使用更小的存储器使用的同时改进ALF的效率和灵活性。

根据本发明的第一另外方面,提供一种控制用于对由多个块构成的图像部分进行滤波的自适应环路滤波器的方法,所述方法包括:

获得定义适用于图像部分的块的滤波器的ALF参数;以及

对可用于对图像部分的块进行滤波的滤波器的最大数量施加限制。

通过对滤波器的最大数量施加限制,即使ALF参数的集合的数量增加(例如,由于需要存储两个或更多个滤波器集合),也可以管理用于存储定义滤波器的ALF参数的存储器要求。该需要可源于使两个或更多个替代滤波器集合可用或者因为可以使用来自APS的两个或更多个实例的ALF参数。

一个实施例还包括获得适用于图像部分内的块的组的信息,所述信息指示滤波器标识、选择或改变或者指示滤波器的启用或禁用。

这可以实现编码增益。块的组可以例如为编码树块(CTB)(诸如亮度CTB等)。图像部分可以包括任何数量的这种组(CTB),并且可以针对图像部分定义ALF参数。例如,片、帧、两个或更多个帧、区块组或实际上任何多个单元(例如编码树单元或CTU)可以构成图像部分。随后,ALF参数可以共同提供给图像部分并且仍在块组(例如CTU)的等级,可以提供适用于该组的个体信息。这给出了ALF滤波的更精细的控制粒度。

在一个实施例中,两个或更多个替代滤波器可用于至少一个ALF类。

在另一实施例中,替代滤波器的两个或更多个集合可用,所述两个或更多个集合提供用于多个滤波器索引或ALF类各自的相应替代滤波器。

两个前述实施例中针对块组获得的信息可以指示哪个替代滤波器集合用于对所关注的块组进行滤波。

设想施加限制的不同方式。一个实施例涉及对所有集合的滤波器的最大数量施加整体限制。另一实施例涉及对集合中的滤波器的最大数量施加针对每个集合的个体限制。并且又一实施例涉及对集合中的最大集合中的滤波器的最大数量施加限制。

在一些实施例中,集合全部必须具有相同数量的滤波器。在这种情况下,对集合的限制适用于所有集合。在其它实现中,集合可以具有不同数量的滤波器。在该情况下,可以有效地对集合中的连续集合中的滤波器的最大数量施加渐进的下限。

可以针对片或针对区块组提供ALF参数。

ALF参数可以在自适应参数集(APS)中提供。可以同时存储由两个或更多个APS提供的ALF参数。

还设想了特定的限制值。这些特定值可应用于整体限制或每个集合的限制。甚至当不存在替代集合时,也可以将其应用于可以用信号通知/可用的滤波器的最大数量。

在一个实施例中,最大数量小于ALF类的数量。

在另一实施例中,最大数量是13。

在另一实施例中,最大数量是7。

在另一实施例中,最大数量是13或更小。

在另一实施例中,最大数量是7或更小。

这些值将滤波器的数量管理到类的数量的大约二分之一或三分之一。限制可以是针对每个集合或者整体限制。

在另一实施例中,最大数量大于或等于3。这保持使至少一个滤波器用于同构区域、一个滤波器用于对角方位区域、以及一个滤波器用于水平和垂直方位区域的可能性。

在另一实施例中,最大数量是奇数。这使得实现了使一个滤波器用于同构区域以及与用于水平和垂直方位区域的滤波器的数量相同数量的滤波器用于对角方位区域的可能性。

在另一实施例中,用于色度的滤波器的最大数量为7。这样的限制值可以保留将这些色度滤波器存储在自适应参数集(APS)中所需的存储器与由附加色度滤波器带来的编码效率之间的良好折衷。

在另一实施例中,用于色度的滤波器的最大数量为6。这样的限制值更进一步减少在自适应参数集(APS)中存储这些色度滤波器所需的存储器,同时仍保留由附加色度滤波器带来的编码效率益处。

在实施例中,具有第一替代集合和第二替代集合可能涉及对第一集合施加集合中的滤波器的最大数量在从3至7的范围内;以及对第二集合施加集合中的滤波器的最大数量在1至7的范围内且小于或等于针对第一集合施加的滤波器的最大数量。

并非必须限制各个集合。例如,当存在第一替代集合和第二替代集合时,预期不对第一集合中的滤波器的最大数量施加限制(即,允许ALF类的数量为25个或任何数量),并且对第二集合中的滤波器的最大数量施加限制。在这种情况下,第二集合的限制可以是13、7、5、3、2和1之一。

根据本发明的第二另外方面,提供一种用于对图像序列进行编码的方法,所述方法包括使用根据本发明的第一另外方面的方法来控制自适应环路滤波器。

一些实施例还包括在位流信息中向解码器发送与所施加的限制有关的信息。当然,如果限制是固定的,则不必在位流中发送限制。

根据本发明的第三另外方面,提供一种用于对图像序列进行解码的方法,所述方法包括使用根据本发明的第一另外方面的方法来控制自适应环路滤波器。

一些实施例还包括在位流信息中从编码器接收与所施加的限制有关的信息。当然,如果限制是固定的,则不必在位流中接收限制。

根据本发明的第四另外方面,提供一种控制用于对由多个块构成的图像部分进行滤波的自适应环路滤波器的装置(例如,电路或集成电路),所述装置包括:

用于获得定义适用于图像部分的块的滤波器的ALF参数的部件;以及

用于对可用于对图像部分的块进行滤波的滤波器的最大数量施加限制的部件。

根据本发明的第五另外方面,提供一种用于对图像序列进行编码的编码器,所述编码器包括用于对由多个块构成的图像部分进行滤波的自适应环路滤波器,并且还包括根据本发明的第四另外方面的用于控制自适应环路滤波器的装置。

根据本发明的第六另外方面,提供一种用于对图像序列进行解码的解码器,所述解码器包括用于对由多个块组成的图像部分进行滤波的自适应环路滤波器,并且还包括根据本发明的第四另外方面的用于控制自适应环路滤波器的装置。

根据本发明的第七另外方面,提供一种信号(例如,位流),其承载定义适用于图像部分的块的滤波器的自适应环路滤波器(ALF)参数,并且还承载与对可用于对图像部分的块进行滤波的滤波器的最大数量施加的限制有关的信息。

信号优选地还承载适用于图像部分内的块组的信息,该信息指示滤波器标识、选择或改变或者指示滤波器的启用或禁用。

在这种情况下,针对块组获得的信息可以指示两个或更多个替代滤波器(集合)中的哪一个用于对所关注的块组进行滤波。

上述本发明的一些方面涉及对可用于对图像部分的块进行滤波的滤波器的最大数量施加至少一个限制。这些方面具有管理ALF滤波器的存储器要求的效果。无论采用哪种ALF滤波器(例如线性、非线性等),这些方面可能是有用的。

在ALF滤波中,认为非线性滤波器是有用的。这是因为引入非线性可以通过在滤波质量与编码效率之间给出更好折衷来改进滤波结果。然而,这些非线性滤波器需要附加的参数来定义非线性,并且因此可能涉及用信号通知和存储比线性滤波器更多的参数。接着描述的本发明的另外方面涉及用于在自适应环路滤波器使用至少一个非线性滤波器时控制存储器要求的措施。

根据本发明的第一再一方面,提供一种用于对图像部分进行自适应环路滤波(ALF)的方法,包括:

针对至少一个ALF类,使用非线性滤波器;以及

对可用于对图像部分进行ALF的滤波器的最大数量施加限制。

在这种方法中,通过限制滤波器的数量,可以获得与在本发明的第一方面中相同的效果。由于非线性滤波器具有用于定义非线性的其它参数,因此增强了益处。限制滤波器的集合因此限制必须被用信号通知和存储的非线性定义参数(例如,限幅值)的集合。

以上关于第一另外方面描述的所有实施例(包括两个或更多个替代集合、整体限制、针对每个集合的限制、限制的具体值)适用于第一再一方面。

根据本发明的第二再一方面,提供一种用于对图像部分进行自适应环路滤波(ALF)的方法,包括:

针对一个或多个第一ALF类,使用第一非线性滤波器,并且针对与第一ALF类不同的一个或多个第二ALF类,使用第二非线性滤波器;以及

在所述第一非线性滤波器与所述第二非线性滤波器之间共用定义所述非线性滤波的一个或多个参数。

该第二再一方面限制了必须被用信号通知和存储的非线性定义参数(例如,限幅值)的集合。不需要如第一再一方面中那样对可用于对图像部分进行ALF的滤波器的最大数量施加限制,但当然第一再一方面和第二再一方面可以彼此组合使用。

在一个实施例中,非线性滤波器各自使用限幅函数,并且由限幅函数使用的至少一个限幅值在第一非线性滤波器与第二非线性滤波器之间共用。

在另一实施例中,限幅值的表在第一非线性滤波器与第二非线性滤波器之间共用。

优选地,各个所述非线性滤波器具有使限幅值的表与关注的非线性滤波器相关联的索引。

根据本发明的第三再一方面,提供一种用于对图像部分进行自适应环路滤波(ALF)的方法,包括:

针对至少一个ALF类,使用非线性滤波器,其中所述非线性滤波器使用限幅函数;以及

对可用于对所述图像部分进行ALF的限幅值的最大数量施加限制。

该第三再一方面限制了必须用信号通知和存储的限幅值。不需要如第一又一方面中那样对可用于对图像部分进行ALF的滤波器的最大数量施加限制。也不需要如第二又一方面中那样在第一非线性滤波器与第二非线性滤波器之间共用定义非线性滤波的一个或多个参数,但当然第一再一方面和/或第二再一方面可以与第三再一方面组合使用。

根据本发明的第四再一方面,提供一种用于对图像部分进行自适应环路滤波(ALF)的方法,包括:

针对至少一个ALF类,使用非线性滤波器;

其中,所述非线性滤波器使用限幅函数,并且所述限幅函数使用固定限幅值。

该第四再一方面限制了必须用信号通知和存储的限幅值。不需要如第三又一方面中那样对可用于对图像部分进行ALF的限幅值的最大数量施加限制。也不要求如第一又一方面中那样对可用于对图像部分进行ALF的滤波器的最大数量施加限制。也不需要如第二又一方面中那样在第一非线性滤波器与第二非线性滤波器之间共用定义非线性滤波的一个或多个参数,但当然第一再一方面和/或第二再一方面和/或第三再一方面可以与第四再一方面组合使用。

优选地,非线性滤波器具有将限幅参数的预定表与关注的非线性滤波器相关联的索引。

本发明的第一再一方面至第四再一方面各自涉及用于对图像部分进行自适应环路滤波(ALF)的方法。所述方法可以用在对图像序列进行编码的方法或对图像序列进行解码的方法中。此外,构想了执行编码方法的编码器和执行解码方法的解码器。类似地,构想了当由处理器或计算机执行时使该处理器或计算机执行这些方法的程序。进一步,至少针对第一再一方面和第三再一方面,构想了承载适用限制的信号(例如,位流)。

本发明的又一方面涉及当由计算机或处理器执行时使计算机或处理器执行上述方面的任何方法的程序。该程序可以是单独提供的,或者可以是在载体介质上、通过载体介质或在载体介质中携带的。载体介质可以是非暂时性的,例如存储介质,特别是计算机可读存储介质。载体介质也可以是暂时的,例如信号或其它传输介质。该信号可以经由包括因特网的任何合适的网络传送。

本发明的又一方面涉及包括根据前述装置方面中的任一个的装置的照相机。根据本发明的又一方面,提供一种移动装置,该移动装置包括根据前述装置方面中的任一个的装置和/或体现上述照相机方面的照相机。

本发明的一个方面中的任何特征可以以任何适当的组合应用于本发明的其它方面。特别地,方法方面可应用于设备方面,反之亦然。此外,在硬件中实现的特征可以在软件中实现,反之亦然。这里对软件和硬件特征的任何引用都应相应地解释。这里描述的任何设备特征也可以提供为方法特征,反之亦然。如这里所使用的,装置加功能特征可以根据它们的相应结构来替代地表示,诸如适当编程的处理器和相关联的存储器等。还应当理解,可以独立地实现和/或提供和/或使用在本发明的任何方面中描述和限定的各种特征的特定组合。

附图说明

现在将仅通过示例并参考以下附图描述本发明的实施例,其中:

图1显示了在VTM-3.0的典型解码环路中发生ALF的位置;

图2是概述针对ALF在VTM-3.0中存在的语法元素的流程图;

图3-a是示出根据本发明实施例的用于滤波色度(Chroma)成分的步骤的流程图;

图3-b提供根据本发明实施例的色度滤波器的滤波形状和系数布置;

图4-a是示出根据本发明实施例的用于滤波亮度(Luma)成分的步骤的流程图;

图4-b提供根据本发明实施例的亮度滤波器的滤波形状和四种可能的系数布置;

图5是概述根据本发明实施例的修改后的语法元素的流程图;

图6是示出根据本发明实施例的ALF滤波处理的步骤的框图;

图7-a是示出根据本发明实施例的使得能够针对各个亮度滤波器索引切换亮度滤波器的编码树单元(CTU)语法元素改变的框图;

图7-b是示出根据本发明实施例的使得能够针对各个ALF类切换亮度滤波器的CTU语法元素改变的框图;

图7-c是示出根据本发明实施例的使得能够针对各个亮度滤波器索引切换亮度滤波器的高级语法元素改变的框图;

图7-d是示出根据本发明实施例的使得能够针对各个亮度滤波器索引切换亮度滤波器的高级语法元素改变的框图;

图7-e是示出根据本发明实施例的使得能够针对各个亮度滤波器索引切换亮度滤波器的高级语法元素改变的框图;

图8-a是示出根据本发明实施例的使得能够针对各个亮度滤波器索引从多于一个的替代亮度滤波器中选择亮度滤波器的CTU语法元素改变的框图;

图8-b是示出根据本发明实施例的使得能够针对各个亮度滤波器索引从多于一个的替代亮度滤波器中选择亮度滤波器的高级语法元素改变的框图;

图8-c是示出根据本发明实施例的使得能够针对各个亮度滤波器索引从多于一个的替代亮度滤波器中选择亮度滤波器的高级语法元素改变的框图;

图8-d是示出根据本发明实施例的使得能够针对各个亮度滤波器索引从多于一个的替代亮度滤波器中选择亮度滤波器的高级语法元素改变的框图;

图8-e是示出根据本发明实施例的使得能够针对各个亮度滤波器索引从多于一个的替代亮度滤波器中选择亮度滤波器的高级语法元素改变的框图;

图8-f是示出根据本发明实施例的使得能够从多于一个的潜在不同大小的亮度替代滤波器集合中选择亮度滤波器的高级语法元素改变的框图;

图9是示出根据本发明实施例的使得能够针对各个CTU的各个ALF类从多于一个的替代亮度滤波器中选择亮度滤波器的语法元素改变的框图;

图10是示出根据本发明实施例的编码方法的步骤的流程图;

图11是示出根据本发明实施例的解码方法的步骤的流程图;

图12是示意性地示出可以实现本发明的一个或多个实施例的数据通信系统的框图;

图13是示出可以实现本发明的一个或多个实施例的处理装置的组件的框图;

图14是示出可以实现本发明的一个或多个实施例的网络照相机系统的图;

图15是示出可以实现本发明的一个或多个实施例的智能电话的图;

图16-a至图16-c是示出根据本发明的一些变型的可能包括ALF相关信息的图;

图17是示出根据本发明实施例的ALF编码处理的流程图;以及

图18是示出根据本发明另一实施例的ALF编码处理的流程图。

具体实施方式

在本说明书中,“用信号通知”可以指将与用于控制滤波器的一个或多个参数有关的信息(例如使用、不使用、启用或禁用模式/方案或其它滤波控制相关信息)插入到(提供/包括/编码到)位流中或者从位流提取/获得(解码)该信息。

在本说明书中,术语“片”用作图像部分的示例(这种图像部分的其它示例将是区块或区块组(其是区块的组/集合),各个区块包括一个或多个编码树单元)。应当理解,本发明的实施例也可以代替基于片而基于图像部分(例如,区块或区块组)以及适当修改的参数/值/语法(诸如图像部分/区块/区块组的头部(代替片头部)、图像部分/区块/区块组的类型(代替片类型)、以及图像部分/区块/区块组的统计信息(代替片统计信息))来实现。还应当理解,也可以使用自适应参数集(APS)或区块(组)头部代替片头部或序列参数集(SPS),来用信号通知ALF参数(或用于针对该片或区块组使用ALF滤波的信息)。当APS用于用信号通知ALF参数(或用于使用ALF滤波的信息)时,片头部或区块组头部可以用于例如通过指示自适应集标识符(aps_id)来指示必须使用哪个APS以获得ALF参数(或用于使用ALF滤波的信息)。还应当理解,片、区块组、区块、编码树单元(CTU)/最大编码单元(LCU)、编码树块(CTB)、编码单元(CU)、预测单元(PU)、变换单元(TU)或像素/样本块中的任一个可以被称为图像部分。

还应当理解:当滤波器或工具被描述为“有效”时,滤波器/工具“启用”或“可供使用”或“已使用”;当被描述为“无效”时,滤波器/工具“禁用”或“不可使用”或“未使用”;并且“类”是指一个或多个元素的组、分组、类别或分类。此外,还应当理解,当标志被描述为“有效”时,意味着该标志指示相关滤波器/工具/滤波器切换/滤波器改变是“有效”(即“有效率”)的。

自适应环路滤波器(ALF)

图1示出在VTM-3.0的典型解码环路中存在ALF的位置。在101中,以编码树单元(CTU:VVC中的最大编码单元,通常为128×128样本/像素大小)为单位对图像部分(例如,片)进行解码。CTU被拆分成矩形块或编码单元(CU),所述矩形块或编码单元使用特定预测方案/模式进行编码,并且通常是残差块的有损编码。由于基于块的编码的使用,块伪像可能在编码块之间的边界处可见。在102中,然后由DBF处理解码图像部分以减少/去除这些伪像。典型地,为了对用于块预测的残差(块)进行编码,使用类DCT变换来变换残差值(以在几个系数中压缩残差能量),并且变换后的系数被量化以降低编码成本。这种量化通常在重建块(即存储在帧缓冲器106中的参考帧中的块)中引入一些振铃(ringing)伪像。在103中,然后由SAO滤波器处理DBF的输出图像部分,这有助于以较低的计算成本减少这些伪像中的一些伪像。在104中,然后由ALF处理SAO滤波器的输出图像部分。ALF可以进一步减少例如“振铃”等的伪像。ALF具有较高阶误差建模能力,但计算成本较高。然后,ALF的输出图像部分被发送到输出(例如诸如帧缓冲器等的存储器、显示器或用于与显示器通信的通信接口)105。ALF的输出图像部分可以放入帧缓冲器106中(作为存储在其中的参考帧的一部分),使得其可以用于时间预测(当使用时间预测工具时)。这就是DBF、SAO滤波器和ALF被称为“环内”滤波器的原因。编码器可以禁用一些环内滤波器,使得在解码处它们可以被旁路(即,使用禁用工具/滤波器不进行滤波,并且与所禁用的工具相对应的步骤的输出与其输入相同)。此外,在一些情况下,所处理的图像部分不限于片,而是可以是包含一个或多个片的全帧,具有跨越片边界(如果存在多于一个)应用滤波器的可能性,以减少这些边界上的伪像。对于多成分图像(例如,YCrCb格式的图像),DBF、SAO滤波器或ALF处理分别应用于各个成分,并且可能不同(例如,使用与其它成分不同的滤波参数)。

图2提供针对ALF的VTM-3.0中存在的语法元素的概述。序列参数集(SPS)使用标志指示ALF工具针对视频序列(201)是否有效(即,启用),并且如果是,片头部指示ALF针对片(202)是否有效(参见图16-a,其中ALF(亮度)有效/启用标志对应于“tile_group_alf_enabled_flag”,并且ALF Cb启用标志和ALF Cr启用标志使用VTM-3.0中的语法元素在“alf_chroma_idc”内用信号通知),并且提供用于控制ALF的滤波器参数(203至207)。当在202中ALF有效时,它至少针对亮度成分有效,并且片头部进一步指示ALF针对各个色度成分是否有效(203)。

ALF可以对亮度成分使用多于一个滤波器。可以使用多于一个的滤波器系数表(并且在片/区块组头部或APS中提供)。在VTM-3.0软件的语法元素方案中,一个系数表可以由多于一个类共用,并且针对每一个类,系数表还由与滤波器的四个可能转置(例如,方位)(稍后将更详细地描述类和转置)相对应的多达四个不同滤波器配置共用。在源代码中,可以不单独区分同一类(即四个转置)的不同滤波器配置(除了在滤波时,其中滤波器系数根据滤波器配置/转置索引适当地重新组织)。因此,在语法元素级别,四个不同配置的滤波器被视为相同的滤波器(因为它们共用相同的系数)。在下面的描述中,使用对单个滤波器的相同参考,除非明显参考不同的系数表或者参考不同的滤波器。语法元素方案中的由(不同配置/方位的)四个滤波器对一个系数表的这种共用是通过考虑到对于旋转的正交和/或镜像(滤波器/样本)配置对滤波图像的统计是相同的来减少分配给滤波器的位数的有效方式:即,针对参考样本配置设计的一个参考滤波器被指定为被旋转和/或镜像以滤波正交和/或镜像样本配置。片头部包含编码的亮度滤波器的数量(204)(是一个或多个)。

当滤波亮度样本时,ALF将样本(根据邻近样本的配置)局部分类(归类)为25个可能类(类别/分类/组)中的一个来选择滤波器(其与该特定类/类别/分类/组相关联/分配给该特定类/类别/分类/组)以局部应用于这些样本。这里使用术语“局部”分类和“局部”应用,这是因为样本以块(通常为4×4个样本的块,例如在VTM-3.0中)或以CU(参见图16-a)为单位进行处理。然后,例如使用用于标识所选亮度滤波器的索引/信息以及通过处理块/CTU的样本确定的类索引,在位流中用信号通知所选亮度滤波器。当在编码处理期间所使用的亮度滤波器的数量大于1时,片头部还包含用于标识/选择这些亮度滤波器的一个或多个索引(例如,用于25个类的最多25个滤波器的(滤波器)索引,各个索引与用于这些类之一的亮度滤波器相对应)(205)。在编码处理中使用的亮度滤波器的数量为1的情况下,该单个亮度滤波器应用于/用于所有类。

然后,片头部包含每个亮度滤波器(206)的所有滤波器系数(或滤波器参数)(即,在编码处理期间使用的各个亮度滤波器的系数表),接着是色度滤波器(207)的滤波器系数。注意,在VTM-3.0中,当ALF针对两个色度成分都有效(即启用)时,两个色度成分共用相同的色度滤波器。

当ALF有效时,对于ALF有效的每个成分,可以使用CTU语法(参见图16-a,其中对于位于x和y位置处的CTU(在水平和垂直CTU索引位置坐标中),ALF亮度启用标志、ALF Cb启用标志和ALF Cr启用标志对应于“alf_ctb_flag[0][x][y]”、“alf_ctb_flag[1][x][y]”和“alf_ctb_flag[2][x][y]”)逐个CTU启用滤波。在编码位流的内部,对于各个CTU,编码片数据针对ALF有效的每个成分包括一个熵编码的标志以指示针对该CTU的成分是否启用ALF(208、209和210),并且因此指示是否必须使用ALF滤波该CTU的该成分的样本。使用上下文自适应二进制算术编码(CABAC)对该标志进行编码。当该标志不存在时(因为ALF针对所有成分是无效的,或者因为ALF对Cr和/或Cb是无效的),则推断为零。

在VTM-3.0中,(例如使用如图16-a所示的ALF相关信息)用信号通知亮度滤波器206的系数进行如下:

[1]首先用信号通知“alf系数增量标志”,该标志指示是否可以禁用某些滤波器,并且如果“alf系数增量标志”为零并且如果亮度滤波器的数量大于1,则用信号通知“coeff增量预测模式标志”,指示滤波器系数编码将使用预测(稍后将更详细描述)。

[2]在VTM-3.0中,为了使用(exp-)Golomb码编码亮度系数,使用3(2用于色度)(exp-)Golomb配置。(exp-)Golomb编码的唯一参数是(exp-)Golomb阶数(常记为“k”)。各个配置具有(exp-)Golomb索引。使用(exp-)Golomb码的“最小阶数”的可变长度码(VLC)来用信号通知滤波器系数的(exp-)Golomb编码的参数,然后对于各个(exp-)Golomb索引,如果针对该索引和接下来的索引,(exp-)Golomb阶数必须增加(以针对第一索引的“最小阶数”开始),则用信号通知标志。

[3]然后,如果“alf系数增量标志”指示某些滤波器被启用,则针对各个滤波器用信号通知标志,从而指示是否禁用该滤波器(且因此不编码)。

[4]然后,使用(针对带符号整数)(exp-)Golomb码针对各个(未禁用)滤波器用信号通知滤波器系数,其中(exp-)Golomb码具有取来自存储(exp-)Golomb参数的表的与(在固定表中的)滤波器系数索引相关联的(exp-)Golomb索引的(exp-)Golomb阶数。

在用信号通知“coeff增量预测模式标志”的情况下,其指示滤波器系数编码使用预测。这意味着具有大于或等于1的滤波器索引(即,标识各个滤波器的索引)的“当前”滤波器的滤波器系数被编码为“当前”滤波器的滤波器系数与先前处理的滤波器的滤波器系数之间的差(例如,使用先前处理的滤波器的滤波器系数作为滤波器系数预测子-即,使用预测,编码为滤波器系数残差值)。第一个滤波器(具有滤波器索引零)在没有预测的情况下被编码。

用信号通知色度滤波器207的系数与针对亮度滤波器类似地进行,除了没有“alf系数增量标志”,没有“coeff增量预测模式标志”,以及具有两个(exp-)Golomb索引而非3个之外。

为了减少解码器必须针对滤波器系数分配的最大存储器(最坏情况),根据本发明的实施例,对用信号通知的亮度滤波器的数量(即针对各个亮度滤波器的系数表206的数量)施加限制。该限制(可称为“用信号通知的亮度滤波器的最大数量”)低于类的数量。因此,亮度滤波器的数量204小于或等于“用信号通知的亮度滤波器的最大数量”(其小于类的数量(即在VTM-3.0中小于25))。在一些变型中,“用信号通知的亮度滤波器的最大数量”是奇数(以使得能够针对同构区域具有一个滤波器,并且针对对角方位区域的滤波器的数量与针对水平和垂直方位区域的滤波器的数量相同)。在一个特定变型中,“用信号通知的亮度滤波器的最大数量”小于或等于13,以将解码器必须存储在存储器中的亮度滤波器的最大数量减少因子2(具有舍入误差)。在另一变型中,“用信号通知的亮度滤波器的最大数量”小于或等于7,以将解码器必须存储在存储器中的亮度滤波器的最大数量减少大于3的因子。即使可能更少,优选的是“用信号通知的亮度滤波器的最大数量”大于或等于3,以保持针对同构区域具有至少一个滤波器、针对对角方位区域具有一个滤波器以及针对水平和垂直方位区域具有一个滤波器的可能性。

在一些变型中,亮度滤波器的数量204被编码在APS(或在片或区块组头部中)NAL单元中作为亮度滤波器的数量减一(即在0和“用信号通知的亮度滤波器的最大数量”减一之间的数量)的编码。可以使用可变长度代码对该值进行编码。可替代地,可以使用固定长度代码对该值进行编码。最大码长是基于“用信号通知的亮度滤波器的最大数量”来确定的。

在一些变型中,“用信号通知的亮度滤波器的最大数量”由编解码器固定。在这种情况下,不需要从编码器发送到解码器。在一些变型中,它是标准参数,不从编码器显式地发送到解码器,而是例如从简档或层级推断,其从编码器发送到解码器。这里,例如,层级可以对应于吞吐量需求。在一些变型中,在位流中(例如在VPS或PPS中)用信号通知“用信号通知的亮度滤波器的最大数量”。

图3-a是示出根据本发明的一些实施例的用于滤波色度成分的步骤的流程图,并且图3-b提供根据本发明的一些实施例的色度滤波器的滤波形状和系数布置。

在图3-a中,ALF滤波在亮度和色度成分之间应用不同。以简单的样本开始,图3-a提供用于滤波色度成分的主要步骤。输入图像部分301(例如区块或区块组)包含要滤波的色度样本。输入滤波参数302包括参考图2中的ALF语法元素描述的ALF参数(例如,“alf系数增量标志”、“coeff增量预测模式标志”、滤波器系数或者ALF的任何其它标志或滤波器参数)。使用色度滤波器的编码滤波器系数,在303中导出/获得色度滤波器。

在变型中,色度滤波具有大小为5×5(即,5个样本高和5个样本宽(参见图3-b中的306))的平行四边形(例如菱形)形状/图案。色度滤波器的滤波器系数被组织成使得色度滤波器具有关于中心的对称性。针对该色度滤波器具有6个编码滤波器系数,其中索引编号为从0到5,它们位于图中所示的相应的系数位置处。提供索引编号的上标符号(“+”或“-”),使得在共用同一滤波器系数的不同系数位置之间进行区分,即,当参考两个对称的(在它们共用同一滤波器系数的意义上)相邻位置时:i+与具有以(光栅)扫描顺序在要滤波的样本(即,在滤波形状/图案/掩模/支撑的中心)之后被编码/解码/处理/存储/访问的索引的邻近样本相对应;以及i-与具有以(光栅)扫描顺序在要滤波的样本之前被编码/解码/处理/存储/访问的索引的邻近样本相对应。从其它滤波器系数推导/导出用于色度滤波形状的中心的第七系数(具有索引编号6的系数位置)。在系数位置6处的该第7系数的值等于1-2.∑i<6wi(用定点计算(wi=索引i的滤波器系数,或位置)估计的)。即,1减去两倍(因为对称)的针对系数位置0-5的所有滤波器系数之和。因此,菱形形状的包括第七系数的所有系数之和是应用左7位偏移的1(1<<7),其中7是用于定点计算的编码滤波器系数的位精度减一。这就是仅“滤波器系数总数减去1”的一半是在位流中编码的滤波器系数的数量的原因。

对于ALF有效(即应用)的各个色度成分样本,如下进行步骤304中的滤波以获得输出图像部分305:对于输入图像部分的各个当前样本,

-如果当前样本属于ALF被启用的CTU,并且如果获得色度滤波器的菱形形状中的系数位置(其中当前样本位于菱形形状的中心)的滤波器系数所需的当前样本的邻近样本可用(例如,使用图片边界上的边界扩展,或者如果邻近片样本在片/区块/区块组边界上可用,则使用邻近片样本);然后,与位置(x,y)处的当前样本I(x,y)相同位置处的输出滤波样本等于:

O(x,y)=((1<<(N-1))+∑(i,j)w(i,j).I(x+i,y+j))>>N, (1)

其中,i&j是相对于滤波形状的中心(即,在(x,y)处的当前样本的位置)的两个整数位移(水平和垂直),w(i,j)是位移(i,j)处的滤波器系数,N=7是在位移(i,j)处的滤波器系数w(i,j)的表示中使用的实数(定点表示)小数部分的整数近似的位数,I(x+i,y+j)是相对于当前样本位置(x,y)的位移(i,j)处的输入样本值,O(x,y)是位置(x,y)的输出滤波样本值。a<<N表示对整数值a应用N位向左的位移。这相当于进行整数乘以2的N次幂。a>>N表示对整数值a应用N位向右的位移。这里,由于式(1)的括号内的和的结果在大多数情况下是正的,因此这等效于进行整数除以2的N次幂。对于负数,符号在右移时传播,因此负数将保持负(至少-1)。不存在非整数部分,这是因为ALF的输出通常在0与2的位深度减1次幂之间被限幅。N=7提供固定在用于ALF计算的VVC中的十进制精度,但是在其它实施例中可以使用其它值。在进行右移位移>>N之前相加(1<<(N-1))的效果是标量乘积的定点结果的舍入。

-否则,照原样输出当前位置处的当前样本值(即,就好像不应用该ALF)。

根据变型,对于具有关于中心对称的滤波形状的ALF滤波器,为了减少在实现滤波器时进行的乘法运算的数量,并且为了简化符号,可以将式(1)重新表示为:

其中On是光栅扫描顺序索引/位置n处的输出样本。通过光栅扫描顺序索引n,我们指的是作为在一行样本中从左到右增加、然后随着各行样本从上到下增加的样本索引的索引n。是在与输出样本相同的位置n处的输入样本(并且与在滤波器中心处的输入样本的位置相对应),是在滤波器的滤波形状/图案/掩模/支撑中的的(在光栅扫描顺序中的)第i个邻近输入样本(光栅扫描顺序低于n),并且是在关于中心位置对称的镜像空间位置处的邻近输入样本。因此,关于中心对称的形状意味着当处于滤波器的形状/图案/掩模/支撑中时,也处于滤波器的相同滤波形状/图案/掩模/支撑中。wi是与邻近输入样本相关联的滤波器系数,wc是用于中心输入样本的滤波器系数,并且c是编码的滤波器系数的数量(这与中心滤波器系数的索引值相同,由于其可以从其邻近滤波器系数被估计而不被编码)。i值及相关位置与图3-b的滤波形状306中的索引值和具有上标符号(“+”或“-”)的索引值相对应,例如,对于作为滤波形状中心处的滤波器系数的索引的c,i=c=“6”。

图4-a是示出根据本发明的一些实施例的用于对亮度成分进行滤波的步骤的流程图,并且图4-b提供根据本发明实施例的亮度滤波器的滤波形状和四种可能的系数布置。

图4-a示出亮度成分的滤波处理的主要步骤。输入图像部分401包含要滤波的亮度样本。输入滤波参数402包括参考图2中的ALF语法元素描述的ALF参数(例如,“alf系数增量标志”、“coeff增量预测模式标志”、滤波器系数或ALF的任何其它标志或滤波器参数)(也参见图16-a)。在滤波之前,在403中分析图像部分的内容。该分析的主要目标是允许/使得能够确定局部内容方位和活动级别(参见步骤405)。这允许/使得能够对内容是均匀还是具有任何锐变(大致上为内容的强度或对比度)、以及内容是否具有主要方位(例如基于边缘或方位纹理)以及该主要方位(orientation)是哪种方位进行局部评价/评估。例如,在使用VTM-3.0中与亮度成分滤波相同的分析时,分析包括局部梯度分析,该局部梯度分析使用针对水平和垂直的每两个样本(即,四分之一样本)计算4个方位(水平、垂直和两个对角线)的拉普拉斯值。通过将输入图像部分的样本分割成块404(例如,VTM-3.0中的4×4个样本),并使用分析的结果,在步骤405中,将各个块分类为25个可能类中的一个,根据针对块中的样本计算的拉普拉斯值,使用索引(即,将块归类为25个类别/分类/组中的一个,其各自是使用诸如图16-b和图16-c所示的类索引等的类索引可标识的)来标识各个类。例如,在VTM-3.0中,与使用16个拉普拉斯值(4个样本上的4个方位)相对应。该分类实现了活动、方向性强度的分区,并将水平和垂直方位与对角线方位分离。此外,在步骤405中,各个块与转置索引相关联。该转置索引(例如,“transposeIdx”)可被视为分类的补充/附加信息,以完全表示/指示内容的方位。有四种可能的转置索引。当块的类指示该块为水平或垂直时,转置索引进一步指示方位是北到南、东到西、西到东还是南到北。当块的类指示该块为对角线时,转置索引进一步指示该块的方位是西北到东南、东北到西南、西南到东北还是东南到西北。

可以将类索引和转置索引看作给定样本块的自适应环路滤波器参数。步骤406采用这些参数来导出将用于对块的每一个样本进行滤波的亮度滤波器。如前文参考图2所述(也参见图16-a),在402中,每个类与亮度滤波器的系数表的索引(例如滤波器索引)相关联。为了导出4×4块的亮度滤波器,转置索引允许/使得能够选择图4-b中所示的四个形状/图案409、410、411或412中的一个。该图案指示如何组织编码滤波器系数(例如,基于扫描(中)顺序)以构建亮度滤波器,这些系数与块的类相关联,如针对204至206的描述中所说明的。亮度滤波器具有大小为7×7的平行四边形(例如菱形)形状。针对各个亮度滤波器存在12个编码滤波器系数(索引编号0至11)。以与上述色度滤波器的中心系数相同的方式从其它滤波器系数中推导/导出滤波形状的中心的第13个系数(索引编号12)。

以与色度滤波器如何进行滤波相同的方式进行步骤407中的滤波以获得输出图像部分408,即对于各个当前样本块,将在406中针对当前块导出/获得的亮度滤波器应用于当前块的各个当前样本。

在图3-b和图4-b这两者中,滤波形状是关于中心像素对称的。在VTM软件的ALF的设计中已经选择了这种对称性,但是在实施例的变型中,也可以使用非对称形状。然后,代替针对13个输入样本共用7个系数,与图3-b中的相同的滤波器支撑/掩模可以使用/用信号通知多达13个系数。并且代替针对25个输入样本共用13个系数,与图4-b中的相同的滤波器支撑/掩模可以使用多达25个系数。在其它变型中,滤波器支撑/掩模甚至是非对称的。在变型中,滤波器的形状/图案/支撑/掩模与ALF参数一起传输。

在其它变型中,滤波形状/图案/支撑/掩模与菱形形状不同。例如,在一个变型中,它是正方形,在另一变型中,它是矩形,在又一变型中,它是六边形,并且在另一个变型中,它是八边形。

在一些变型中,对于所有类方位,滤波形状/模式/支撑/掩模不相同。在一个变型中,形状是用于水平类/transposeIdx方位配置的水平矩形(例如“-”)、用于垂直类/transposeIdx方位配置的垂直矩形(例如“-”)、用于西北东南(NW-SE,例如“\”)和东南西北(SE-NW)类/transposeIdx方位配置的NW-SE矩形、用于东北西南(NE-SW,例如“/”)和SW-NE类/transposeIdx方向配置的NE-SW矩形。在其它变型中,滤波形状/图案/支撑件/掩模是水平-垂直交叉(“+”)、对角线交叉(“X”)、垂直段(“|”)、水平段(“-”)、从左上到右下的对角线段(“\”)、从右上到左下的对角线段(“/”)、或上述滤波形状/图案/支撑件/掩模的任何组合。

从编码器的角度来看,ALF的灵感来自Wiener滤波器。Wiener滤波器是线性滤波器(通常用作信号/图像处理中的线性卷积滤波器),其使以下两者之间的均方误差最小化:1)所估计的随机处理/变量(Wiener滤波器的输出),其是有限数量的观察到的处理/变量(Wiener滤波器的输入)的线性组合,和2)期望的处理/变量(Wiener滤波器的目标,即在伪像发生之前的原始图像)。在信号/图像处理中,例如有限脉冲响应(FIR)Wiener滤波器在源分离或去噪中具有应用。在图像编码的情况下,目标/目的是(在通过压缩/量化改变之前的)原始图像,而输入是来自我们希望通过应用滤波器来改进的压缩图像的样本。

X(其是观察到的随机处理的实现的输入矩阵,各个列包含针对每个随机处理的一个实现)和y(其是输出行矢量,其包含针对相同列索引处的观察到的随机处理的期望处理的实现)的最小二乘解是

Wiener波器系数对应于

应当理解,“实现”是随机变量的观察值或观察到的值,即实践中实际上观察到的值。

在VTM-3.0ALF编码器中,使用FIR Wiener滤波器(或功能上等效的最小二乘解)来优化ALF参数的编码成本(主要由编码FIR滤波器系数的成本决定)与通过使用编码的ALF参数(即使用FIR滤波器)对图片进行滤波而获得的失真增益之间的速率/失真(R/D)折衷。如果编码ALF参数的速率(即,编码成本)不是问题,并且如果将给定帧的峰值信噪比(PSNR)最大化是唯一目标(不考虑时间影响),则Wiener滤波器将能够实现VTM-3.0中的ALF滤波设计的最佳解决方案。应理解,根据本发明的一些实施例的ALF编码器可以与对以下各项中的一个或多个的适当修改一起使用与本文描述的VTM-3.0的线性ALF滤波器相同或类似的滤波器:(非线性)滤波器能力;或对ALF参数和/或控制参数/信息的用信号通知。

图17示出根据本发明实施例的ALF编码处理的流程图,该实施例通过修改参考图3-a、图4-a和图6描述的VTM-3.0的ALF来实现。应当理解,根据本发明的其它实施例,可以以相同的方式修改其它ALF以实现所述其它实施例。

ALF编码处理通过确定亮度样本1801的各个4×4块的类索引和转置索引来开始。

然后,在1802提取/获得用于导出Wiener滤波器的统计。这些统计是与式(3)的XXT相对应的(自动)协方差统计,并且是与式(3)的XyT相对应的互协方差统计。它们用于通过将XXT和XyT分别除以N(X中的列的数量,即要滤波的样本的数量)来构建/获得/估计(自动)协方差矩阵和互协方差矩阵。这些(自动)协方差矩阵和互协方差矩阵是针对各个类和针对亮度成分样本的各个CTU以及针对各个色度成分样本的各个CTU构建/获得/估计(1802)。在下面的描述中,术语“(互)协方差矩阵统计”和“(互)协方差矩阵”可互换地用于指代相同的事物。应当理解,这两者之间的不同是“(互)协方差矩阵统计”是通过累加(或加和)值来获得的,而“(互)协方差矩阵”也通过累加(或加和)值、但随后通过累加次数(以估计期望值)归一化来获得。

对于给定的CTU/类/成分,X如下获得。由于滤波的形状被认为是对称的,因此X中的行的数量与滤波器的滤波器系数的数量相对应。X的一行(最后行)包含滤波形状中的中心样本的实现(其中滤波形状的中心属于给定CTU/类/成分),而具有索引i的各个其它行包含滤波形状中的具有索引i的两个对称样本的和(其中对称样本是属于给定CTU/类/成分的滤波形状的中心的相邻位置)。在亮度成分样本的情况下,转置索引也用于根据图4-b的不同形状来转置滤波形状的样本位置,使得X的各个行i包含属于滤波形状的索引为i的样本的样本统计。例如,对于图4-b的形状,Xi,j包含:对于i<12,形状中索引为i的两个对称相邻位置(第j个滤波样本)的和,以及对于i=12,第j个滤波样本;其中Xi,j是矩阵中i行和j列处的值。

矢量y包含所有目标样本值(即yj是源/原始图像中在其压缩之前的第j个样本的值)。

不实际构建/计算X矩阵。代替地,通过迭代加和的结果来计算XXT,其中Xi是针对给定样本位置获得的X的第i列。

也不实际构建/计算y矢量。代替地,通过迭代加和Xiyi的结果来计算XyT,其中,yi是y的第i个元素并且与当滤波使用输入Xi的第i个输入样本时的目标样本值相对应。

在VTM-3.0中,ALF编码器试图降低R/D成本,这等于速率失真折衷的拉格朗日优化D+λR。这里,D是失真(二次误差),R是速率,并且λ由编码器主要基于VTM-3.0编码器量化参数(QP)、片类型(帧内或帧间)和压缩成分的类型(亮度或色度)来确定。ALF编码器首先试图通过最小化该拉格朗日R/D成本来优化ALF参数。

如果ALF降低了亮度成分的成本,即当ALF无效时的输出片的失真大于当ALF有效时的失真加上用信号通知ALF参数所需的速率的λ倍数,则编码器将ALF确定为针对亮度成分有效。然后,如果针对亮度成分有效,则试图优化针对色度成分的ALF参数,以查看是否能够改进用信号通知这些色度成分的R/D成本。基于此,编码器可以确定是否更好地针对这些成分中的各个成分使ALF有效/启用。

根据本发明的实施例,ALF编码器对其ALF参数进行相同或功能上等效的优化处理。根据这种实施例的变型,在ALF参数优化处理的开始,ALF被设置为对于所有CTU有效(1803)。用于构建协方差矩阵和互协方差矩阵的片级别的统计是通过聚合针对ALF有效/启用的各个CTU的统计来获得的。使用针对被分类为属于该类的4×4样本块的所有样本获得的统计,针对亮度成分的各个类计算一个矩阵(1804);并且通过聚合(加和)针对色度的两个色度成分的统计来计算一个矩阵(1812)。

针对亮度的滤波器优化处理开始于寻找25组滤波器以将类组合/合并在一起,即第一组25个滤波器、第二组24个滤波器等等,直到最后一组1个滤波器(针对各个可能的滤波器数量有一个组)(1805)。编码器以针对各个类1个滤波器开始(因此总共25个滤波器),该滤波器是根据该类中块的样本的协方差和互协方差计算的Wiener滤波器。这是第一组25个滤波器。它试图通过将滤波器合并在一起(即,将滤波器的相关类合并在一起以更精确)来迭代地减少滤波器的数量(逐个地,直到只有一个剩余,以获得所有期望的组)。编码器使最初与两个不同的滤波器关联的类共用一个公共滤波器(即编码器合并这两个类以共用一个关联的滤波器)。为了确定要合并的滤波器(即要合并的类),针对各个滤波器确定协方差和互协方差统计。编码器针对与一个或多个类(索引)相关联的各个滤波器估计/评估在使用滤波器对与该类相关联的所有样本块进行滤波之后获得的总残差。然后,对于各对滤波器(及其关联的类),编码器计算合并协方差和互协方差统计以确定针对合并类的Wiener滤波器以及用所确定的Wiener滤波器滤波与类索引关联的所有样本块之后获得的总残差。然后,编码器确定两个滤波器,对于该两个滤波器,合并滤波器的总残差(从与类相关联的统计中导出,类与这两个滤波器相关联)与这两个滤波器的总残差的和(通过将一个滤波器的总残差与另一个滤波器的总残差相加)之间的差是最小的,并且合并这两个滤波器(使得该合并滤波器准备用于下一个滤波器合并迭代)。简而言之,编码器合并(a,b)使下式最小化的一对不同的滤波器统计:其中Err(x)返回滤波器统计的误差,并且a+b是两个滤波器统计a和b的合并统计。

到目前为止,使用双精度浮点值来估计统计、滤波器和误差。现在编码器试图找到编码亮度滤波器的最佳R/D成本折衷(1806),根据本发明的实施例,应小于用信号通知的亮度滤波器的最大数量。一旦确定了25组滤波器/类(从“用信号通知的亮度滤波器的最大数量的”滤波器开始到1个滤波器),对于各个组,ALF编码器导出各个滤波器的整数滤波器系数(针对整数值编码和定点精度计算)。根据本发明的实施例,由于存在要用信号通知的太多的滤波器,因此没有测试低至但不包括“用信号通知的亮度滤波器的最大数量”的25个滤波器的组。但是1805中仍然需要迭代地构建亮度类的组/组合,以将有效的滤波索引合并到低至最多“用信号通知的亮度滤波器的最大数量”。然后,在使用不同替代编码方案时就R/D成本折衷方面寻找最佳滤波器。第一种替代方案是使用(exp-)Golomb编码对所有滤波器的所有系数进行编码。第二种替代方案是使用滤波器的增量编码,其中各个滤波器的滤波器系数被编码为与先前滤波器的滤波器系数的不同(使用(exp-)Golomb编码)。第三种替代方案(R/D优化)允许利用一个标志禁用一些滤波器,并对未禁用的滤波器的所有滤波器系数(使用(exp-)Golomb编码)进行编码。前两种替代方案可能导致位率降低,而第三种替代方案可能为了位率降低更少而导致更多的失真。

编码器采用/选择/选取最小化R/D成本的滤波器组和编码折衷。

一旦由编码器确定/选择了使用的亮度滤波器,则针对各个CTU,编码器使用CTU统计来查看滤波CTU的亮度样本的R/D成本是否更好于不滤波相同CTU的亮度样本的R/D成本。如果不是更好,则针对该CTU的亮度样本禁用ALF(1807)。然后,编码器可以在1808处再循环到针对亮度的亮度滤波器优化步骤,同时更新关于CTU(ALF被启用)的协方差和互协方差统计的片统计(1804)。例如,在VTM-3.0中,编码器再循环4次。

根据对亮度成分样本应用ALF或不应用ALF之间的R/D成本差异,编码器在1809确定是否针对亮度成分使ALF有效/启用。

如果要针对亮度成分使ALF有效/启用,则编码器进入1810处的色度成分的处理。如果针对亮度成分使ALF无效/禁用,则在1811处用信号通知ALF为非有效/禁用,并且ALF编码处理结束。

针对色度成分的ALF编码处理从两个色度成分的组合统计开始1812,条件是针对片的所有CTU使ALF有效/启用。

然后编码器确定色度滤波器(1813)。编码器首先使用两个色度成分的CTU统计确定(浮点)Wiener滤波器。它导出整数滤波器系数。然后,对于各个色度成分,编码器使用CTU统计来查看滤波CTU的色度成分的R/D成本是否更好于不滤波CTU的色度成分的R/D成本。如果不是更好,则针对该CTU的色度成分样本禁用ALF(1814)。如果编码器确定对于给定色度成分的所有CTU不应使ALF有效(即应该被禁用),则针对该色度成分禁用ALF,并且因此不需要针对“启用标志”为0的各个CTU进行编码(1815)。

然后,编码器可以在1816处再循环到色度滤波器优化步骤,同时更新关于CTU(启用ALF)的色度成分的协方差和互协方差统计的片统计。例如,在VTM-3.0中,编码器再多循环2次。

然后,编码器在1817处将根据本发明的实施例的ALF与所确定的ALF参数一起应用(即,使用来自步骤1813的所确定的色度滤波器)。根据编码器配置,结果图像可以被输出和/或放入参考帧缓冲器中。编码器最后编码最佳R/D成本参数,即ALF启用标志以及(如果ALF启用标志指示有效/启用)所确定的ALF参数(1818)。

应当理解,根据变型,可进行用于其它ALF参数的优化处理以优化ALF的这些参数。

具有非线性滤波能力的ALF

根据本发明的一些实施例,可以修改在步骤304和407中使用的线性ALF滤波,这引入非线性并改进滤波结果(在滤波质量和编码效率之间获得更好的折衷)。ALF滤波的目标是去除编码工具引入的一些“噪声”(例如量化噪声/误差)。为了去除这种噪声,通常使用低通线性滤波器来平滑信号并减少小的局部变化。这种类型的滤波器可能在滤波输出中引入模糊,特别是在对比度较强的区域,例如在边缘附近。非线性滤波器(例如双边滤波器)已经被开发以允许更高效的去噪,同时引入更少的模糊或振铃效应,甚至在边缘周围也是如此。为此,这些非线性滤波器如线性滤波器那样通常依赖于基于局部邻近(即邻近样本)对样本滤波,但是与具有非常不同的值的样本相比更注意(或加权)具有与要滤波的样本相似的值的样本。邻近值的加权通常使用非线性函数(即非线性映射)来进行。这种非线性滤波器通常比线性滤波器更复杂,并且可能难以优化它们的参数,以及/或者如果想要在新的ALF设计中使用这种类型的滤波器,它们可能比线性滤波器具有更小的灵活性。

根据本发明的一些实施例,通过引入具有涉及保持ALF的可并行化设计的操作的相对低复杂性的非线性来修改VTM-3.0的ALF(或前述实施例中的任何实施例或其变型)。

查看VTM-3.0中的非线性ALF并且其输出的滤波样本等于式(1),并且通过使用实数重新表示式(1)来简化该式,我们具有(删除与定点表示和整数舍入相关的操作):

O(x,y)=∑(i,j)w(i,j).I(x+i,y+j) (4)

对于这个ALF,满足条件

(i,j)w(i,j)=1 (5)

这意味着ALF的所有滤波器系数之和是1。然后可以看出式(4)可以被重新表示为:

O(x,y)=I(x,y)+∑(i,j)≠(0,0)w(i,j).(I(x+i,y+j)-I(x,y)) (6)

然后,输出样本O(x,y)是将输入样本I(x,y)(在相同位置处)加到滤波器系数矢量和局部梯度矢量(作为输入样本的邻近样本和输入样本本身之间的差计算的局部梯度的矢量)之间的标量积的结果。换句话说,输出样本(即,滤波样本值)是将输入样本加到滤波器系数和局部梯度的线性组合的结果。

代替对滤波器仅使用这种通常的线性公式,根据本发明的一些实施例,修改ALF滤波处理以在ALF滤波器中引入非线性。该非线性是使用多变量函数K(d,b)来实现的,该多变量函数K(d,b)将偏移(i,j)处的局部梯度d作为第一参数,并且其值根据第二参数b=k(i,j)而变化。代替在式(6)的标量积中使用偏移(i,j)的局部梯度,在标量积中使用K(d,b),从而得到输出样本O(x,y),其随局部梯度以非线性方式变化:

O(x,y)=I(x,y)+∑(i,j)≠(0,0)w(i,j).K(I(x+i,y+j)-I(x,y),k(i,j)) (7)

其中K(d,b)是将d=I(x+i,y+j)-I(x,y)作为其第一参数/变量(作为位置(x+i,y+j)处的邻近样本值与位置(x,y)处的当前样本值之间的差计算的偏移(i,j)处的局部梯度)并且将b=k(i,j)作为其第二参数/变量(附加滤波参数)的函数。附加滤波参数同时被确定为w(i,j)。在实现中,确定k(i,j)和w(i,j)的值以优化滤波和用信号通知处理(例如,以最小化失真)。该优化处理由使用ALF的编码器进行。

当使用这种这种非线性ALF时,通过使用输入样本本身和作为输入样本的邻近的输入样本的自适应非线性变换的线性组合来滤波输入样本值。自适应非线性变换取决于邻近输入样本相对于正在滤波的输入样本的位置的相对位置。

利用这种修改后的ALF,对于特定K仍然可以实现线性滤波,其中K满足如下条件:存在b,并且存在不等于0的α,使得针对所有d,K(d,b)等于α乘以d,即:

使得

因此,对于某些值b选择表现为类似于线性函数(即,线性映射)的函数K(d,b)(即,函数K(d,b)满足条件(8)),确保实施例的修改后的ALF滤波处理仍然可以至少如使用标准线性ALF那样高效(即,在最坏情况下,修改后的ALF可以实现与VTM-3.0中的线性ALF相同的效率水平)。例如,当使用限幅函数时,参数b可以被设置为最大可能整数值(理想地,它应该被设置为无穷大,但是我们可以使用有限整数精度方案中的最大可能整数值来实现相同的效果),以使其表现为线性函数。

注意,在本发明的一些实施例中,非线性ALF滤波使用替代方案/滤波方案。采用局部梯度和附加参数/变量的多变量函数K(d,b)由另一个采用如下三个参数/变量的多变量函数代替:邻近样本值、要滤波的样本值和附加参数/变量。它使用式(7)同时使用与式(4)类似的记号法并满足条件(5)被重新表示:O(x,y)=w(0,0).I(x,y)+∑(i,j)≠(0,0)w(i,j).K′(I(x+i,y+j),I(x,y),k(i,j))(9)

其中K′(n,c,b)是采用邻近样本值(n)、要滤波的当前样本值(c)和附加滤波参数/变量(b)作为其参数/变量的函数。

根据一些变型,K仅仅是限幅函数(其是在应用函数时具有相对低的复杂性的非线性函数):

K(d,b)=max(-b,min(b,d)) (10)

或等效于

K(d,b)=min(b,max(-b,d)) (11)

使用式(9)的滤波公式的该限幅函数K的等效函数K′是

K′(n,c,b)=max(c-b,min(c+b,n)) (12)

或等效于:

K′(n,c,b)=min(c+b,max(c-b,n)) (13)

限幅函数满足式(8),只要b大于或等于最大可能样本值(例如,2的图像位深度次幂)即可。

在以下描述中,“限幅值”或“限幅参数”用于指K或K′的b参数/变量。可以理解,这种术语可以被认为是用于指非线性函数参数的通用术语。类似地,“限幅”或“限幅函数”可用于指上述K或K′或者其功能等效函数。

根据实施例,使用非线性ALF代替线性ALF来减少进行ALF滤波所需的样本行缓冲器的数量(即,减少在(例如解码器处)进行滤波时需要处理/访问/保持在存储器中的输入图像成分的样本的数量)。

根据这种实施例的变型,作为权衡/折衷,用于亮度滤波器的滤波形状/图案的大小从7×7菱形形状减小到更小的滤波形状/图案。例如,针对亮度滤波器使用5×5菱形形状(例如,与图3-b中的色度滤波器的形状相同,但仍使用转置索引变型)。这仍然可以实现与具有7×7菱形形状亮度滤波器(例如,图4-b中所示的滤波器)的仅线性ALF类似的编码增益,但是要处理/访问/存储的样本数量减少(例如,样本行缓冲器的数量减少),并且还降低了计算复杂性:即,处理ALF滤波器所需的乘法数量针对各个滤波输入样本减少6,同时实现良好的编码增益。

根据变型,当对样本进行ALF滤波时,基于将被用于线性ALF的所有邻近样本来使用非线性ALF。根据另一变型,当对样本进行ALF滤波时,邻近样本中的仅将与线性ALF一起使用的一些邻近样本与非线性ALF一起使用,并且其余邻近样本与线性ALF一起使用(即,仅使用限幅函数对使用邻近样本的子集获得的值进行限幅)。根据又一变型,当对样本进行ALF滤波时,邻近样本中的仅将与线性ALF一起使用的一些邻近样本与非线性ALF一起使用,并且其余邻近样本也不与线性ALF一起使用。

根据变型,通过利用这些滤波形状/图案中的对称性,使用与式(2)相同的符号来简化线性和/或非线性ALF滤波器实现,式(4)中的线性函数可以被重新表示为:

对于ALF,其满足条件:

式(6)中的线性函数也可以重新表示为:

并且式(7)中的非线性函数变为:

其中,ki是与滤波器系数wi相关联的滤波器限幅参数。

最后,式(9)中的非线性函数可以重新表示为:

根据该实施例的变型,K′函数或K函数是限幅函数。

根据实施例,为了与用于处理式(17)中的函数K的计算量相比减少处理非线性函数所涉及的计算量,在至少两个邻近的差的和上引入非线性(即,可以使用具有两个或更多个局部梯度的和作为变量的非线性函数):

式(19)并不总是等效于式(17),使用式(19)的滤波器可能不太高效,但它降低了计算复杂性。根据变型,例如当是K限幅函数时,用信号通知/编码的限幅参数/值的数量相对于式(17)的参数/值不变。

应当理解,根据另一变型,可以使用基于具有降低的复杂性的式(18)的类似导出的式,其中K′函数具有两个或更多个邻近差值(局部梯度)的和作为其变量:

图5是根据本发明实施例的语法元素的概述的流程图,其提供了可用于实现上述的非线性函数参数的用信号通知的语法元素的示例。在该实施例中,式(7)(或(9))的各个滤波器的编码滤波器系数与其自身的限幅值相关联,因此k(i,j)可以具有随偏移(i,j)而变化的不同值。大多数语法元素与VTM-3.0中已经使用的语法元素相同,并参考图2进行说明:图5中的501、502、503、504、505、506、507、508、509、510具有与图2中的201、202、210、204、205、206、207、208、209、210相同的用信号通知方式和语义。附加语法元素是各个亮度滤波器的限幅参数511、亮度滤波器的所有滤波器系数(506)和各个亮度滤波器的所有限幅参数(511),这些参数可以例如在片头部(或APS或区块组头部)中用信号通知。该信号通知之后是用信号通知色度滤波器的所有滤波器系数(507)和色度滤波器的所有限幅参数(512)。

进行解码器必须针对滤波器系数和限幅参数分配的最大存储器(最坏情况)的减少类似于图2所描述的方式:根据使用非线性滤波器的本发明的实施例,用信号通知的亮度滤波器的数量小于或等于“用信号通知的亮度滤波器的最大数量”(其低于类的数量)。因而,亮度滤波器的数量504小于或等于该“用信号通知的亮度滤波器的最大数量”(其小于类的数量)。以图2描述的“用信号通知的亮度滤波器的最大数量”的变型也适用于使用非线性滤波器的实施例。如图7-c至7-f以及图8-a至8-f的示例中所示那样,这些非线性实施例可以针对每个ALF类/滤波器索引具有单个滤波器,或者可以针对每个ALF类/滤波器索引具有两个或更多个替代滤波器。

然后,在各个亮度滤波器具有其自身的限幅值的变型中,各个亮度滤波器506的系数表的数量与各个亮度滤波器511的限幅值的表的数量相同,并且因此通过限制滤波器的最大数量来限制针对亮度滤波器系数所分配的存储器,也限制针对限幅值所分配的存储器。

在一个变型中,各个亮度滤波器506的系数表的数量不同于各个亮度滤波器的限幅值的表的数量。一个限幅值表可以由多个亮度滤波器共用。在该变型中,在APS中提供“用信号通知的限幅值表的数量”,并且511由NClip x“限幅值表”代替。然后,针对506中给出的各个滤波器系数表提供“限幅值表的索引”。在该变型中,通过使用“用信号通知的亮度限幅表的最大数量”来限制用于限幅参数的存储器,并且允许以与滤波器系数类似的方式限制存储器。

在另一变型中,在编码器和解码器这两者处固定预定的限幅参数表,并且代替511,针对各个亮度滤波器提供预定的限幅参数表的索引。这允许减少用于存储限幅参数的存储器以及位流中的用信号通知。

根据该实施例的变型,对于任何滤波器,用信号通知的限幅参数的数量与用信号通知的滤波器系数的数量相同。以与相同位置(x+i,y+j)处的滤波器系数相同的方式获得/用信号通知偏移(i,j)的限幅参数。对于色度,以与图3-a的步骤303中描述的滤波器系数导出处理相同的方式处理它们(但使用色度限幅参数);并且对于亮度,以与图4-a的步骤406中描述的滤波器系数导出处理相同的方式处理它们(但使用亮度滤波器限幅参数)。

在替代变型中,每个滤波器仅有一个限幅参数,并且该限幅参数用于所有滤波器位置((i,j)≠(0,0))。

在替代变型中,限幅参数的数量低于滤波器系数的数量。这些限幅参数用于具有偏移(i,j)的滤波器位置的预定义子集。对于其它滤波器位置,进行通常的线性滤波(或者当以其它方式实现时,在那些其它滤波器位置处,K被认为是恒等函数)或者替代地,使用预定义的限幅参数值。在一些变型中,为了不中断单指令、多数据(SIMD)并行实现,对所有滤波位置应用限幅,但是对于没有提供限幅参数的位置的限幅参数被认为具有线性输出(例如,在实现为标识函数的输出变型中)。

在替代变型中,限幅参数的数量低于滤波器系数的数量。例如,在图3-a和图3-b的滤波形状中,一些系数索引可以共用相同的限幅参数。根据变型,在包含多个元素的表中指示限幅参数的索引,所述数量等于形状大小的一半(因为对称)减去1(因为对于中心系数位置没有限幅参数)。该表允许将限幅参数索引与各个滤波器系数关联。根据变型,该表由编解码器固定/预设。根据变型,定义多个固定/预设表,并且例如在片头部中用信号通知用于从该表标识限幅参数的索引。在替代变型中,例如在片头部中用信号通知这样的表的内容,并且内容由所有亮度滤波器共用。

在变型中,限幅参数可以取的值的数量被限制为小(相对于小的质量益处,降低编码器复杂性和编码成本)。用整数值索引对被授权用于限幅参数的值优选地以递增或递减的顺序进行编索引。然后,这些索引可以映射到限幅参数表的各个元素。然后,代替用信号通知限幅参数值,用信号通知表中相关限幅参数值的索引(p)。在p是表中的滤波器索引的变型中,不需要使用中间表来减少p的可能值的数量。可以直接减少函数表中可用的函数的数量,从而减小其大小。

在一个变型中,限幅参数值被限制为二的幂:2p。然后p被编码。p的最大值是输入图像的位深度(不需要更高的值,因为它们将提供相同的结果)。在替代变型中,代替p,被编码的是Bd-p。在另一变型中,p的范围被限制为介于pmin和pmax之间。例如,pmin=3和pmax=Bd-1。然后可以用信号通知p-pmin或pmax-p。

在一些变型中,色度滤波器的授权/允许/可用限幅参数值与亮度滤波器的不相同。

根据变型,在片头部中提供用于片中的限幅参数的表中的最小索引pmin和表中的最大索引pmax,使得在用信号通知时可以限制/制约可能的限幅参数值的数量。根据变型,pmin和pmax由亮度和色度滤波器共用。在替代变型中,仅针对亮度提供pmin和pmax,色度索引不受限制。在另一替代变型中,在用于亮度和色度的片头部中提供pmin和pmax

根据替代变型,对于亮度和色度成分这两者,在片头部(替代地APS或区块组头部)中用信号通知经授权的限幅参数值的一个表,或者替代地,用信号通知两个表:一个用于亮度,并且一个用于色度。

在变型中,允许的限幅值取决于片类型(例如可以是帧内、B或P)。

在实施例的一些变型中,允许的限幅值为:针对B或P片中的亮度的{6,32,181,1024};针对B或P片中的色度的{4,25,161,1024};针对帧内片中的亮度的{10,102,1024};或/和针对帧内片中的亮度的{4,24,1024}。因此,任何限幅参数都可以取属于这些集合之一的值(根据片类型和滤波成分)。并且,针对各个滤波,针对各个限幅参数,在片头部中编码集合中该值的索引。

在变型中,所允许的限幅值的集合(例如,存储/处理为表)定义如下:

其中N是集合/表中的限幅值的数量(即表的大小),M是最大限幅值(其可以是表中的最新条目,例如,M=2D或M=2D-1,其中D是定义表的成分的样本位深度),并且其中“舍入”是舍入运算符(例如,其将值舍入为最接近的整数)。

在另一变型中,所允许的限幅值的集合/表定义如下:

其中N是集合/表中的限幅值的数量(即表的大小),M是最大限幅值(例如,其可以是表中的最新条目,例如,M=2D或M=2D-1,其中D是样本位深度),A是最小限幅值(例如,其可以是表中的第一条目),并且其中“舍入”是舍入运算符。

可以理解的是,限幅值在上述集合/表中布置的顺序(其可能影响各个限幅值的标识符/索引的值)可以根据实现而变化。例如,它们可以按照与上述顺序相反的顺序布置。

图6是示出提供ALF滤波实现的示例的本发明的实施例的框图。在该实施例中,ALF滤波独立地应用于输入解码图像部分(例如,区块组)的各个CTU(601)。对亮度的ALF滤波也独立于对色度的ALF滤波而应用,并且这由示出各个成分的两个单独处理(其可并行或串行运行)的框图说明。

根据变型,一个CTU对应于1个亮度CTB和2个色度CTB(Cr和Cb),并且各个CTB使用四叉树或三叉树结构被分割为CU。对于各个CTU,如果alf_ctb_flag[0](602)(即,图2中的ALF亮度启用标志208或图5中的508)等于1(或指示针对亮度启用ALF的任何值),则处理CTB的亮度样本(即,亮度CTB的样本)。亮度CTB处理的第一步是获得亮度滤波器集合(603)。例如,在VTM-3.0的ALF中,该步骤对应于获得图2中的各个亮度滤波器的经编码/经解码滤波器系数表206以及将滤波器索引与CTU的4×4块可取的各个类相关联的表(其可以从图2中的语法元素205(例如,各个类的滤波器索引)确定)。对于各个4×4块(604),获得(605)类(索引)和transposeIdx。使用类索引,从亮度滤波器集合获得用于选定ALF滤波器的滤波器系数。然后,根据transposeIdx来组织/布置这些滤波器系数(以形成例如图4-b中所示出的滤波形状),以获得选定亮度滤波器(606),然后应用于4×4块的亮度样本(607)。

对于各个CTU,如果alf_ctb_flag[1](即,ALF Cb启用标志210)或alf_ctb_flag[2](即,ALF Cr启用标志209)中的至少一个等于1(608)(或指示针对Cb或Cr CTB启用ALF的任何值),则进行色度CTB处理,如果是,则获得色度滤波器集合(609)。在VTM-3.0中,色度滤波器集合仅包含一个滤波器,该滤波器是通过对用于色度滤波器的滤波器系数表207进行解码并布置滤波器系数(例如,该布置形成图3-b中的滤波形状)而获得的色度滤波器。Cb和Cr色度成分样本的ALF滤波可以独立地进行,其由示出用于各个色度成分的两个单独处理(其可并行或串行运行)的框图说明。如果alf_ctb_flag[1]等于1(或指示针对Cb启用ALF的任何值)(610),则处理CTB的Cb成分样本。在步骤611中获得Cb(ALF)滤波器。在VTM-3.0中,该步骤对应于获取/获得唯一可用的一个色度滤波器。然后在步骤612中,将Cb(ALF)滤波器应用于CTB的各个Cb成分样本。如果alf_ctb_flag[2]等于1(或指示针对Cr启用ALF的任何值)(613),则处理CTB的Cr成分样本。在步骤614中获得Cr(ALF)滤波器。在VTM-3.0中,该步骤对应于获取/获得唯一可用的一个色度滤波器。然后在步骤615中,将Cr(ALF)滤波器应用于CTB的各个Cr成分样本。

如在JVET-N0415“CE5:基于编码树块的自适应环路滤波器(CE5-4)”中所描述的,ALF还可以使用固定/静态/预定义的亮度滤波器。在滤波器的表(集合)中预定义固定亮度滤波器,“固定滤波器集合系数表”包含固定数量的滤波器的系数。“固定滤波器集合的类到滤波器映射表”还用于定义固定数量的固定滤波器集合,各个滤波器集合由(大小为25的)用于将类索引(针对25个ALF类0至24)映射到“固定滤波器集合系数表”中的滤波器索引的表来定义。

当alf_ctb_flag[0]602等于1时,可以在亮度CTB数据中使用一些附加语法元素来指示必须使用固定滤波器来代替使用已在位流中(例如,在APS中)发送的亮度滤波器。当必须使用固定滤波器时,在亮度CTB数据中提供固定滤波器集合的索引以指示必须使用“固定滤波器集合的类到滤波器映射表”中的哪个固定滤波器集合;以及因此必须在步骤603中检索哪个固定亮度滤波器集合以在步骤604、605、606和607中进行滤波。

固定滤波器集合中的滤波器的系数还可以用于各个亮度滤波器的系数表(例如,206或506)中的滤波器系数的一种预测。在该变型中,在片头部(或例如APS)中添加附加标志以指示是否启用通过固定滤波器的预测。如果启用通过固定滤波器的预测,则提供“固定滤波器集合的类到滤波器映射表”中的固定滤波器集合的索引以确定必须用于预测的固定滤波器集合。此外,提供针对各个类索引包含一个标志的(大小为25的)标志表。其指示针对各个类索引,所确定的固定滤波器集合中的相同类索引的滤波器是否必须用于预测针对该类索引的亮度滤波器的系数。必须使用预测的给定类索引的滤波器是通过将“针对该类索引的预定义滤波器的系数中的各个系数”逐个加至“具有与类索引相关联的滤波器索引的经编码滤波器的系数中的各个系数(例如,在205或505中)”来导出。事实上,实际上不是预测编码意义上的预测,因为预测不是直接对编码值进行的。更是滤波器导出处理。该机制旨在通过尝试降低用于用信号通知滤波器系数的速率并且改善给定速率的滤波器效率来改善滤波器系数的速率/失真。

但是这种机制对解码处理也具有一些约束。例如,在使用“用信号通知的亮度滤波器的最大数量”的实施例中,没有这种预测机制,这是因为在片头部(或例如APS)中用信号通知比类的数量(25)少的滤波器,可以使用比25个滤波器的存储器少的存储器来存储滤波器集合的经解码的滤波器系数(即,将在滤波处理中使用的实际滤波器值)。使用类索引到滤波器索引映射(例如,各个类表的滤波器索引205或505),解码器可以容易地选择用于给定类索引的正确滤波器。通过预测机制,用于存储经解码滤波器系数的存储器无法再减少,这是因为25个经解码滤波器各自潜在地使用不同滤波器预测子,其独立于类索引到滤波器索引映射(例如,各个类表的滤波器索引205或505)。允许以预测机制继续减少存储器的替代方案是不存储“最终”经解码滤波器系数,而是在应用预测机制之前存储经解码滤波器系数(即,存储滤波器系数,好像不存在预测机制那样),然后在滤波处理期间(例如,在步骤603中在CTB级别),或者可替代地,在必须使用滤波器时(例如在步骤606中在块级别),导出“最终”经解码滤波器系数。在一些变型中,代替使用类索引到滤波器索引映射(例如,各个类表的滤波器索引205或505)来检索正确的滤波器、同时减少存储器使用,可以使用将各个类索引映射到指向一个滤波器的一个存储器指针的表。该表然后包含25个指针,各个指针指向包含一个滤波器的系数的存储器位置的(例如)开始。对于共用相同滤波器系数的类索引,25个指针中的一些指向相同存储器位置。

在另一变型中,“固定滤波器集合系数表”包含用于64个滤波器的系数,并且“固定滤波器集合的类到滤波器映射表”定义25个滤波器的16个滤波器集合。

根据使用非线性ALF的实施例,从编码器的角度来看,保持参考图17描述的VTM-3.0的ALF编码处理的主要逻辑步骤。主要变化是为了构建滤波器而提取的统计的性质以及确定滤波器的方式。代替简单的维纳滤波器计算(针对线性ALF的参数),迭代地优化限幅参数以找到最佳限幅参数和相关联的非线性维纳滤波器系数。

根据实施例,定义NK,一个限幅参数可以采取的值的数量的限制。NK可以较小,例如NK=12或甚至更小。接着,代替计算协方差和互协方差矩阵统计,在步骤1802中,编码器构建NK×NK限幅协方差矩阵统计的两条目表E和NK限幅互协方差矩阵统计的一条目表y(代替一个协方差矩阵统计和一个互协方差矩阵统计)。

限幅协方差矩阵Ec[a][b]是从估计的协方差矩阵,其中Xm包含当使用第Cm个限幅值时的输入的N个实现(观测值)。例如,使用图4-b的形状,是针对给定样本位置获得的Xm的第i列,并且包含:对于i<Nc(对于图4-b的亮度滤波器,Nc=12是滤波器系数的数量减一),针对在形状中具有索引i的两个对称邻居,使用第m个限幅值对(第j个经滤波样本的)邻近样本与第j个经滤波样本之间的差进行限幅的结果的总和;并且对于i=12,第j个经滤波样本;其中,是矩阵Xm中在行i和列j处的值。

限幅互协方差矩阵yc[c]是期望的滤波器输出(即,原始样本)的实现与Xc的实现之间的互协方差矩阵。

因此,当需要使用等于c0,…,的限幅参数来构建/测试滤波器时,定义(例如,对于亮度滤波器,Nc=12是滤波器系数的数量减一,等于零的最后值是方便的,可以使用其它值并且由于中心系数12未被限幅而将具有相同的结果)。计算协方差矩阵E和互协方差矩阵y,这些限幅参数使得对于各个i<Nc,j<Nc,E[i,j]=Ec[c[i]][c[j]][i,j],并且对于各个k<Nc,y[k]=yc[c[k]][k]。然后,使用这两个矩阵来构建Wiener滤波器,如先前参考图17针对线性ALF所解释的。

在步骤1804中,代替组合协方差和互协方差矩阵的统计,编码器组合各个限幅协方差和限幅互协方差矩阵的统计(这里也通过对统计求和来完成组合)。

在步骤1805中,用以找到滤波器的经优化集合/组(即,经优化合并滤波器)的方式与先前类似。主要差异是对于各个测试/比较滤波器,代替仅计算一个Wiener滤波器,迭代地优化限幅参数,各个步骤针对特定限幅参数计算Wiener滤波器,以最小化滤波器的输出误差(在统计矩阵上计算)。简单的优化算法从所有限幅参数值(ci)设置为零(或可替代地设置为中值限幅值或任何默认值)开始,然后在其改进滤波器(即,减小输出误差)的同时在循环中遵循以下步骤:对于各个限幅参数值,采用下一限幅参数值(如果可用/允许(即,索引<最大索引值),如果利用该限幅参数值计算的Wiener滤波器更好),或者采用前一限幅参数值(如果可用/允许(即,索引>0),如果利用该限幅参数值计算的Wiener滤波器更好)。当将两个滤波器分组时,一个策略可以是以各个限幅参数值设置为两个滤波器的各个限幅参数值的平均值来开始优化。

步骤1806、1807、1808、1809、1810和1811不存在实际改变。

在步骤1812中,组合的统计变化与针对步骤1804所描述的相同。在步骤1813中对色度滤波器的确定对应于针对步骤1805描述的滤波器优化。除了ALF参数包括针对各个滤波器确定的限幅参数的步骤1818之外,其它步骤没有变化。

注意,在利用“正常”ALF的VTM-3.0中,当编码器从浮点值导出整数滤波器系数时,如果首先进行浮点值到固定点一的量化,则对于各个滤波器系数,其将滤波器系数乘以固定点精度舍入到最近的整数值。然后,尝试通过迭代地调整滤波器系数来改进滤波器效率(以补偿舍入误差)。编码器还必须确保所有滤波器系数的总和等于1(乘以固定点精度),并且中心样本的滤波器系数不超过最大值(以确保其在乘法中的用途不会使用太多位结束)。

在本发明的与邻近样本的差被用作滤波器的输入的实施例中,由于中心系数总是一,因此不需要确保其不超过最大值。此外,不需要经常跟踪所有滤波器系数的总和的值。

这些实施例的优点是编码效率的改进。

这些实施例的描述提及亮度成分和色度成分,但它们可以容易地适于诸如单个亮度成分或RGB成分等的其它成分。

在一些前述实施例或变型中,本发明使得修改图3-a和图4-a中的304和407中的滤波,以对滤波器输入使用非线性函数来获得非线性滤波效应。图2也被修改以添加新的语法元素来用信号通知非线性函数的附加参数(参考图5描述实施例的示例)。隐含地,302和402中的输入滤波参数被修改以进一步包括非线性函数的附加参数。最后,修改303和406中的滤波器导出以导出滤波器的非线性函数(即,导出“非线性滤波器”)。因此,在大多数情况下,当使用具有非线性ALF的那些实施例/变型时,输出图像部分305和408与VTM-3.0中产生的那些不同,并且对于等效/相当的输入样本具有更高的质量和/或实现输出图像质量与编码效率之间的更好折衷。应理解,在另一实施例/变型中,修改ALF本身,使得其进行操作以使用上述非线性函数中的任一个进行滤波。

用信号通知滤波器相关信息的实施例

本发明的实施例使得比在区块组或片级别更精细的粒度(即,在较低级别)下实现(ALF)滤波器选择/改变(或开启或关闭):例如在CTU级别(或在CTU级别的块)。以下描述的这些实施例中的一些是关于由于多于一个的亮度滤波器可供使用因此如何对亮度样本使用(ALF)滤波器来描述的(因而亮度情况是更复杂的情况),然而,应理解,可以对如何对色度样本使用色度(ALF)滤波器做出相同或类似的修改,例如,如下文参考图9所述。

一些用信号通知实施例实现了针对给定ALF类的(ALF)滤波器的独立选择/改变/切换,所述(ALF)滤波器选自两个或更多个替代滤波器的集合/组。该滤波器选择/改变/切换独立于针对至少一个其它ALF类的另一滤波器选择,选择/改变/切换是在比区块组级别(例如,在CTU粒度/级别或以下)更精细的粒度下进行的。

具有针对给定ALF类的两个或更多个替代滤波器的这些变型需要用信号通知并存储更多ALF参数。这特别是替代滤波器可用于多个ALF类则导致各自具有多个滤波器的替代滤波器的两个或更多个集合的情况。因而,稍后将描述的本发明的实施例采取一个或多个以下措施来控制ALF参数的存储器要求:

对集合中的滤波器的最大数量施加限制

如果集合必须包括相同数量的滤波器,则该限制应用于所有集合,即使该限制是针对一个集合而设置的;

如果集合可以包括不同数量的滤波器,则可以施加个体的每个集合的限制,或者如果已知一个集合将系统地是最大集合(例如,第一替代集合),则可以对该最大集合施加限制,从而知道其它集合将比最大集合小(以下描述的一些实施例使连续的替代集合逐渐更小);以及

针对所有集合对滤波器的最大数量施加整体限制;

对一个集合不施加限制,而对另一集合施加限制

例如,对于第一集合不施加限制,而对于第二集合施加限制,或者限制第二和各个随后的集合。

应注意,在这些变型中的一些变型中,仍针对属于要滤波的较大图像部分的两个或更多个单元(例如CTU)共同地用信号通知用于定义可用滤波器的ALF参数(诸如每个滤波器索引的滤波器系数表和(例如)在使用非线性函数控制的滤波器的情况下的限幅值等)。例如,图像部分可以是片、区块组、整个帧或多个帧。因此,图像部分可包括多个单元(CTU)。

然后,可以通过针对图像部分共同地提供(例如,在片或区块组头部中,或在适用于图像部分的APS中)且因此由构成图像部分的单元(例如CTU)共用的ALF参数来定义替代滤波器集合(各自具有多个滤波器)的两个或更多个集合。针对每个单元(CTU等)的用信号通知所做的是使不同单元能够在替代滤波器集合之间做出不同选择。如果仅针对图像部分(片等)作为整体提供用于选择替代滤波器集合之一的信息,则图像部分的所有单元(CTU)将必须选择替代集合中的同一个。由此,更精细的粒度是可能的,同时仍受益于在多个单元上共用替代滤波器的集合的效率。

单元进而可以被分割成构成块。例如,CTU可以具有亮度CTB和两个色度CTB。可针对亮度CTB内的大小为4×4样本的各个块进行ALF。各个块必须被分类为25个ALF类之一。同一亮度CTB内的不同块可以具有不同的ALF类,并且用于块的滤波器通过图像部分的共同ALF参数和每个单元(例如,每个CTU)的用信号通知信息的组合来确定。下文描述更详细的示例。

在其它变型中,在APS中用信号通知ALF参数。这种APS还可以由图像部分(具有多个单元,例如CTU)参考,但在一些变型中,甚至个体CTU也可以参考APS。当APS定义用于参考图像部分或参考单元的两个或更多个替代滤波器集合时,仍存在用信号通知的滤波器所需的存储器增加的问题。

当使用如上文所描述的亮度(ALF)滤波器时,对于各个CTU,使用alf_ctb_flag[0](602)(即,图2中的ALF亮度启用标志208或图5中的508)以指示是否针对该CTU启用亮度(ALF)滤波器的使用。如果启用亮度(ALF)滤波器的使用,则针对CTU的各个块(例如,针对VTM-3.0中的CTU中所包括的各个4×4块),通过(例如,使用类索引)标识该块的类并且然后导出用于与该类一起使用的滤波器(例如,通过从滤波器系数表获得滤波器系数集合,其中该集合由与块的该类(索引)相关联/针对块的该类(索引)选择的滤波器索引来标识)来获得针对该块使用的亮度滤波器。

根据第一用信号通知实施例,用于标识/切换/改变滤波器(例如,(滤波器)标识符或组/集合索引)或者用于滤波器开启/关闭(例如,滤波器开关(开/关)标志)的信息是在CTU级别用信号通知的,并且该信息是针对各个滤波器用信号通知的(索引-参见图16-b和图16-c)。即,对于由特定滤波器索引标识的各个ALF滤波器,用信号通知用于标识替代滤波器(例如,标识符或组/集合索引)或用于滤波器开启/关闭(例如,滤波器开关(开/关)标志)的信息。这意味着ALF亮度滤波器(当由该特定滤波器索引标识时,例如,在图5的步骤505或图2的步骤205或者还参见图16-b和图16-c)可以被切换/改变为(使用标识符或组/集合索引标识的)另一/替代ALF滤波器,或者使用用信号通知的信息开启/关闭(基于滤波器开关标志)。并且,该切换/改变可以针对可用于CTU的多个ALF滤波器中的一或多个ALF滤波器而发生,意味着CTU的第一块可以具有应用于该块的ALF滤波器(选自可用ALF滤波器,其也由用信号通知的信息标识或确定为开启),而由于标识滤波器被标识为针对第二块使用的ALF滤波器,因此同一CTU中的第二块可以不具有应用于该块的ALF滤波器,或者基于用信号通知的信息(例如,作为CTU数据)确定ALF滤波器关闭。

在第一用信号通知实施例的变型(“变型1”)中,在CTU级别处提供信息(也参见图16-b和图16-c),其中,信息指示各个亮度滤波器(具有滤波器索引)是否针对该CTU开启/关闭(即,是否可用)(例如,滤波器开关(开/关)标志,诸如图7-a中所示的亮度滤波器开关标志701-a等,其是针对各个滤波器索引提供的)。如果根据信息关闭特定亮度滤波器(使用与特定块的类索引相关联的特定滤波器索引选择/由与特定块的类索引相关联的特定滤波器索引标识),然后即使当ALF CTU亮度启用标志(来自用信号通知的CTU数据-参见图16-b和图16-c)指示针对该CTU启用亮度滤波器的使用时,也不会通过ALF滤波处理对输入样本做出改变(注意,存在多于一个的亮度滤波器可用于针对CTU使用,各个可用亮度滤波器可用滤波器索引来标识,并且CTU数据中的ALF亮度启用标志启用或禁用针对该CTU的所有可用亮度滤波器,因此,第一变型通过提供针对一个或多个滤波器(滤波器索引)的该进一步信息来提供比仅使用ALF亮度启用标志时更精细的控制)。

根据变型1的进一步变型,在CTU级别(即,在各个CTU中),当信息指示与针对块的所选滤波器索引相对应的亮度滤波器针对CTU被关闭时,各个经编码亮度滤波器可以被独立地切换到标识滤波器(即,输出相同输入样本值的滤波器,好像没有对块应用/使用滤波器)。

取决于实施例,标识滤波器可以具有预定替代滤波器索引(用于标识标识滤波器),并且使用该预定替代滤波器索引,ALF滤波器可以切换到(标识)滤波器。标识滤波器具有等于1的一个中心滤波器系数(且在固定点计算的情况下左移位了位深度精度)以及等于零的其它滤波器系数。这等效于关闭对应于预定滤波器索引的滤波,因为该滤波器没有效果,因此这使得能够使用预定替代滤波器索引独立地关闭/禁用CTU的关联块的各个个体亮度滤波器。

为此,如果CTU数据中的ALF亮度启用标志等于1,则针对各个CTU(例如,作为CTU数据)来编码(例如,使用CABAC)针对每一个亮度滤波器索引(要编码的亮度滤波器索引的数量优选地小于或等于ALF类的数量)的一个亮度滤波器切换标志。如果对于给定滤波器索引,亮度滤波器切换标志等于零,则不切换/改变与该滤波器索引相关联的滤波器。如果对于给定滤波器索引,亮度滤波器切换标志等于1,则切换/改变与该滤波器索引相关联的滤波器,使得在步骤603中,所获得的亮度滤波器集合包含标识滤波器的滤波器系数。由此,针对给定滤波器索引切换/改变滤波器,这使得能够针对与该给定滤波器索引相关联(使用该给定滤波器索引)的所有类来切换滤波器。在变型1的另一替代变型中,亮度滤波器切换标志由针对各个滤波器索引提供的亮度滤波器禁用标志或亮度滤波器启用标志来代替。亮度滤波器禁用标志与亮度滤波器切换标志具有相同的效果,而亮度滤波器启用标志与亮度滤波器切换标志具有相反的效果:即,亮度滤波器启用标志等于零意味着滤波器被切换/改变,等于1意味着滤波器不被切换/改变。在一些变型中,由于标识滤波器没有效果,因此当获得标识滤波器时,可仅跳过步骤607。

图7-a是示出用信号通知可以用于实现变型1的语法元素的示例,其针对各个CTU用信号通知(作为位流中的CTU数据)可用亮度滤波器中的哪些被启用/适于使用/可供使用(即,不切换到标识滤波器)。图7-a用附加语法元素修改图2的一部分,该附加语法元素是亮度滤波器切换标志701-a(针对各个(可用)亮度滤波器提供一个)。根据变型1的另一变型,在ALF亮度启用标志等于1的情况下仅提供亮度滤波器切换标志。在另一替代变型中,ALF亮度启用标志不被编码,并且总是被推断等于ALF有效标志(202)。其它另一变型可以使用替代语法元素来用信号通知针对各个CTU启用或不启用哪些滤波器。

根据第二用信号通知实施例,用于标识/切换/改变滤波器(例如,(滤波器)标识符或组/集合索引)或用于滤波器打开/关闭(例如,类滤波器开关(开/关)标志)的信息在CTU级别(例如,作为CTU数据)用信号通知,并且针对各个类(索引)用信号通知该信息——参见图16-b和图16-c。也就是说,对于由特定类索引标识的各个类,用信号通知用于标识/切换/改变针对该类的滤波器(例如,标识符或组/集合索引)或用于切换针对类的滤波器开启/关闭(例如,类滤波器开关(开/关)标志)的信息。这意味着:使用用信号通知的信息,ALF亮度滤波器(当由该特定类索引及其相关联的滤波器索引标识时,例如,在图5的步骤505或图2的步骤205处——还参见图16-a、图16-b和图16-c)可以被切换/改变为(使用标识符或组/集合索引标识的)另一/替代ALF滤波器,或者(基于类滤波器开关标志)被打开/关闭。并且,该切换/改变可以针对一个或多个类发生,从而意味着该切换/改变可以针对属于这些类之一的第一块(其被包括在CTU中)发生,而第二块(其也被包括在同一CTU中且属于与第一块不同的类)可能不经历任何切换/改变(例如,即使当第一和第二块的两个类与一个ALF亮度滤波器(在片/区块组头部中或在APS中)相关联时,由相同相关联滤波器索引标识的相同ALF亮度滤波器用于该第二块,而另一ALF亮度滤波器可以用于第一块)。

在第二用信号通知实施例的变型(“变型2”)中,在CTU级别提供信息,例如,如图16-b的“用于改变/切换滤波器选择/选取的信息”和图16-c的altIdx中所示,其中,该信息指示针对各个类(索引)亮度滤波器是否被打开/关闭(即,是否可用)(例如,针对各个类(索引)提供的类滤波器开关(开/关)标志,诸如图7-b中示出的类滤波器开关标志701-b等)。如果根据信息针对特定类索引关闭亮度滤波器,则ALF滤波处理不对属于该特定类的块(例如,CTU的4×4块)的输入样本做出改变,即使当ALF亮度启用标志指示针对4×4块所属于的CTU启用亮度滤波器的使用时也是如此。

根据变型2的另一变型,在类级别处进行切换到标识滤波器。为此,如果ALF亮度启用标志等于1,则针对各个CTU的各个类(索引)(例如,使用CABAC)编码一个类滤波器切换标志(例如,用信号通知为CTU数据)。如果针对给定类索引,类滤波器切换标志等于零,则与该类相关联的滤波器不被切换/改变,并且因此保持为针对该类编码的特定亮度滤波器。如果类滤波器切换标志等于1,则切换/改变与该类相关联的滤波器。因此,在图6中,步骤603与针对步骤603的上述描述相比未改变(例如,与VTM-3.0中相同),而步骤606被修改为使得如果针对给定类索引的类滤波器切换标志等于1,则将所获得的滤波器切换/改变为标识滤波器。应理解,与类相关联的滤波器(类的滤波器或类滤波器)是当样本块被分类在该特定类中时对所述样本块使用的滤波器。例如,利用图2的语法元素,针对给定类索引的类滤波器是具有亮度滤波器索引表205中针对该给定类索引(即,该表中的类索引条目)指示的亮度滤波器索引的亮度滤波器,例如,如图16-b的“类索引到滤波器索引的映射”、VTM-3.0中的alf_luma_coeff_delta_idx[filtIdx]和图16-c的alf_luma_coeff_delta_idx[altIdx][filtIdx]所示。在变型2的另一替代性变型中,类滤波器切换标志被类滤波器禁用标志(其具有相同的效果)或类滤波器启用标志(其具有与类滤波器切换标志相反的效果)替代:即,类滤波器启用标志等于零意味着滤波器被切换/改变,等于1意味着滤波器不被切换/改变。

图7-b是示出用信号通知可以用于实现变型2的语法元素的示例的流程图,该变型2针对各个CTU(例如,作为位流中的CTU数据)用信号通知类中的哪些可以使用亮度滤波器,即,具有启用/适于使用/可供使用(即,不切换/改变为标识滤波器)的亮度滤波器。图7-b以附加语法元素修改图2的一部分,该附加语法元素为类滤波器切换标志701-b(针对各个ALF亮度类提供一个)。根据变型2的另一变型,在ALF亮度启用标志等于1的情况下仅提供类滤波器切换标志。在另一替代变型中,ALF亮度启用标志不被编码,并且总是被推断等于ALF有效标志(202)。其它另一变型可以使用替代语法元素来用信号通知哪些类滤波器启用或不启用(即,哪些类具有经启用/适于使用/可供使用的亮度滤波器)。

在第一用信号通知实施例的变型(“变型3”)中,变型1被扩展,使得针对CTU使用相同的语法结构,亮度滤波器切换标志使得能够在两个编码的滤波器(即,两个替代滤波器或“滤波器替代物”)之间进行切换/选择。因此,变型1是变型3的具体情况,其中,这两个滤波器之一(例如,“替代滤波器”)总是标识滤波器。对于变型3,可能需要附加的用信号通知来将替代滤波器的滤波器系数(即,替代滤波器系数)用信号通知/提供到解码器,因为不同于标识滤波器,替代滤波器的滤波器系数不是预定义的。在变型3的第一另一变型中,在图6中,修改步骤603,使得所获得的亮度滤波器集合包含针对CTU的各个滤波器索引的滤波器系数。因此,步骤603根据用信号通知用于标识/切换/改变滤波器的信息的CTU数据针对各个滤波器索引来选择亮度滤波器的滤波器系数或替代亮度滤波器的滤波器系数。在该第一变型中,步骤606不改变。在变型3的第二另一变型中,在图6中,修改步骤603被,使得所获得的亮度滤波器集合对于任何CTU是相同的并且包含针对各个滤波器索引的各个替代物的滤波器系数(即,亮度滤波器和替代亮度滤波器),如图16-b和图16-c中所示,在APS/片头部/区块组头部中用信号通知。修改步骤606以获得通过针对与4×4块的类相对应的滤波器索引使用由用信号通知用于标识/切换/改变滤波器的信息的CTU数据所指示的替代物的滤波器系数(即,使用亮度滤波器的系数或替代亮度滤波器的系数)并且通过根据transposeIdx来组织/布置滤波器系数而构建的亮度滤波器。

图7-c提供用信号通知可以用于实现变型3的语法元素的示例。例如,在片头部中(替代地,在APS中或在区块组头部中),将针对各个亮度滤波器的滤波器系数表206标识为针对各个亮度滤波器(即,针对各个滤波器索引)的“滤波器替代物0系数表”716(即,替代滤波器0的滤波器系数表)。它对应于第一滤波器集合替代物(或“第一替代滤波器集合”或“第一替代滤波器组”),即,在亮度滤波器切换标志等于0时可供使用的滤波器集合或组。提供附加标志(例如,第二亮度滤波器表标志717),第二亮度滤波器表标志717指示第二滤波器集合/组(例如,“第二滤波器集合替代物”或“第二替代滤波器集合”或“第二替代滤波器组”)是否被提供/可供使用。如果第二亮度滤波器表标志717等于1,则在片/区块组头部/APS中提供第二滤波器集合替代物。第二滤波器集合替代物是各个亮度滤波器的滤波器系数表718(也被标识为“滤波器替代物1系数表”),其具有与针对各个亮度滤波器的滤波器替代物0系数表716相同的大小,并且包含当亮度滤波器切换标志701-a(在图7-a中)对于给定滤波器索引等于1时使用的滤波器的滤波器系数。当第二亮度滤波器表标志717等于0时,针对各个亮度滤波器的滤波器替代物1系数表718被推断为包含标识滤波器的滤波器系数。在另一替代变型中,当第二亮度滤波器表标志717等于0时,亮度滤波器切换标志701-a不用信号通知/编码且被推断为等于0(或等效地,亮度滤波器启用标志208不用信号通知/编码且被推断为等于1)。

在本发明的适用于变型3的特定实施例中,“用信号通知的亮度滤波器的最大数量”应用于亮度滤波器的数量204。在该变型中,存储亮度滤波器所需的最大存储器是在无需提供用信号通知替代滤波器的可能性的情况下存储亮度滤波器所需的最大存储器的两倍。

图7-d提供根据另一其它变型的对图7-c的用信号通知的替代。它提供了针对每个滤波器索引具有一个滤波器或两个滤波器替代物的可能性。针对各个亮度滤波器的滤波器替代物0系数表716仍被编码,并且对应于亮度滤波器的滤波器系数替代物0(721)的编码,因为F等于各个滤波器索引(即,F从0变化到亮度滤波器的数量204减一)。对于各个亮度滤波器索引,提供亮度滤波器F替代物1标志722。如果对于给定滤波器索引F,亮度滤波器F替代物1标志722等于1,则对亮度滤波器F的滤波器系数替代物1(723)进行编码并且提供当针对给定滤波器索引F的亮度滤波器切换标志701-a(或在给定其它变型中,针对使用该给定滤波器索引F的类的类滤波器切换标志701-b)等于1时所使用的滤波器系数。如果对于给定滤波器索引F,亮度滤波器F替代物1标志722等于0,则针对亮度滤波器索引F的滤波器系数替代物1(721)被推断为标识滤波器系数。在另一替代变型中,当对于给定滤波器索引F,亮度滤波器F替代物1标志等于零时,针对该滤波器索引F的亮度滤波器切换标志701-a(或在一些其它变型中,针对使用该给定滤波器索引F的类的类滤波器切换标志701-b)不用信号通知/编码,并且被推断为等于0(或等效地,亮度滤波器启用标志(或在一些其它变型中,类滤波器启用标志)不用信号通知/编码,并且被推断为等于1)。

为了限制用于存储亮度滤波器的存储器,对“用信号通知的亮度滤波器的最大数量”的限制适用于亮度滤波器的数量204。可替代地,对“用信号通知的亮度滤波器的全局最大数量”的限制适用于使用针对亮度滤波器的滤波器系数替代物0(721)用信号通知的滤波器的数量与使用滤波器系数替代物1(723)用信号通知的滤波器的数量的总和。在又一替代方案中,对“用信号通知的亮度滤波器0的最大数量”的第一限制适用于使用针对亮度滤波器的滤波器系数替代物0(721)用信号通知的滤波器的数量,以及对“用信号通知的亮度滤波器1的最大数量”的不同于第一限制的第二限制适用于使用针对亮度滤波器的滤波器系数替代物1(723)用信号通知的滤波器的数量。

在第二用信号通知实施例的变型(“变型4”)中,变型2被扩展,使得针对CTU使用相同的语法结构,类滤波器切换标志使得能够在两个编码的滤波器(即,两个替代滤波器或“滤波器替代物”)之间进行切换/选择。因此,变型2是变型4的特定情况,其中,这两个滤波器之一(例如,“替代滤波器”)总是标识滤波器(这也意味着在变型2中可能不需要用信号通知针对标识滤波器的预定义的滤波器系数)。对于变型例4,可能需要附加的用信号通知来将替代滤波器的滤波器系数(即,替代滤波器系数)用信号通知/提供到解码器,因为不同于标识滤波器,替代滤波器的滤波器系数不是预定义的。这与变型3不同,因为在CTU数据中每个类使用一个标志为滤波器的设计和用信号通知提供了比如在变型3中每个滤波器索引使用一个标志更大的灵活性。在每个类具有一个标志的情况下,一个滤波器集合/组中的滤波器合并可以独立于第二滤波器集合/组中的滤波器合并(即,各个滤波器集合/组可以具有其自己的“用于各个类的滤波器索引”205的表)。在图6中,修改步骤603以获得两个亮度滤波器集合替代物,并且修改步骤606使得如果针对类索引的类滤波器切换标志等于零,则从第一替代滤波器集合获得滤波器。并且,如果类滤波器切换标志等于1,则从第二替代滤波器集合获得滤波器。可替代地,可以在步骤603处进行类级别替代滤波器选择,然后代替包含针对各个滤波器索引的滤波器的滤波器集合,可以使用/获得包含针对各个类的滤波器的滤波器集合。

图7-e是示出用信号通知可以用于实现变型4的两个滤波器集合替代物的流程图。“亮度滤波器0的数量”734代替图2的“亮度滤波器的数量”204,并且提供针对第一滤波器集合替代物的亮度滤波器的数量。针对各个类的滤波器索引表0(735)代替图2的针对各个类的滤波器索引205,并且是针对各个类索引提供当相应的类滤波器切换标志在CTU数据中等于0时使用的滤波器索引的表。该表通知以第一滤波器集合替代物的滤波器进行的滤波器合并。针对各个亮度滤波器0的系数表736代替针对各个亮度滤波器的系数表206。该表包含针对亮度滤波器0的数量734、第一滤波器集合替代物的亮度滤波器各自的滤波器系数。提供/获得第二亮度滤波器表标志737。如果第二亮度滤波器表标志737等于1,则(例如,在APS中/从APS)提供/获得针对第二滤波器集合替代物的亮度滤波器的数量738、滤波器索引表739和滤波器系数740。使用它们代替第一滤波器替代物来对在CTU数据中具有类滤波器切换标志等于1的类(索引)的各个块进行滤波。在变型4的另一变型中,当第二亮度滤波器表标志737等于零时,第二替代集合的亮度滤波器的数量738被推断为1,并且针对第二替代滤波器集合的系数表740中的一个滤波器被推断为标识滤波器。在另一替代变型中,当第二亮度滤波器表标志737等于零时,类滤波器切换标志701-a不在CTU数据中提供并且被推断为等于零。为了限制用于存储亮度滤波器的存储器,对“用信号通知的亮度滤波器的最大数量”的限制适用于亮度滤波器0的数量734和亮度滤波器1的数量738。可替代地,对“用信号通知的亮度滤波器的全局最大数量”的限制适用于亮度滤波器0的数量734和亮度滤波器1的数量738的总和。在又一替代方案中,对“用信号通知的亮度滤波器0的最大数量”的第一限制适用于亮度滤波器0的数量734,并且“用信号通知的亮度滤波器1的最大数量”的不同于第一限制的第二限制适用于亮度滤波器1的数量738。

在第一实施例的变型(“变型5”)中,变型3被扩展为使得能够在各个CTU中在多于两个替代(编码)滤波器之间进行切换/选择。在图6中,修改步骤603,使得所获得的亮度滤波器集合包含针对CTU在APS/片头部/区块组头部中用信号通知的针对各个滤波器索引(即,亮度滤波器和亮度滤波器替代物)的滤波器系数。

图8-a是示出用信号通知可以用于实现变型5的语法元素的流程图,该变型5修改图7-a的流程图。亮度滤波器切换标志701-a(或类似地,亮度滤波器启用标志)由亮度滤波器替代物索引801代替,针对各个滤波器索引,一个亮度滤波器替代物索引。对于给定滤波器索引,亮度滤波器替代物索引提供亮度滤波器替代物表的索引,当对具有(由针对各个类的滤波器索引205标识的)与给定滤波器索引相关联的类(索引)的样本的块进行滤波时,将从亮度滤波器替代物表中取得具有给定滤波器索引的滤波器的滤波器系数。

图8-b、图8-c、图8-d和图8-e是示出用于与变型5一起使用的用信号通知亮度滤波器替代物表的替流程图。

在图8-b中,获得/处理各个亮度滤波器替代物N表802,随后获得/处理亮度滤波器表替代物N+1标志803,其指示是否存在要获得/处理的另一亮度滤波器替代物N+1表。在图8-c中,替代使用这种标志,提供/获得替代物表的数量804,使得可以使用替代物表的该数量804针对所有替代物进行亮度滤波器替代物N表802的获得/处理。为了限制用于存储亮度滤波器的存储器,对“用信号通知的亮度滤波器的最大数量”的限制这里适用于亮度滤波器的数量204。在这种情况下,存储亮度滤波器所需的最大存储器是在无需提供用信号通知替代滤波器的可能性(即,仅使用一个滤波器集合)的情况下存储亮度滤波器所需的最大存储器的(Nmax+1)倍,其中,(Nmax+1)是“用信号通知的替代亮度滤波器的最大数量”。例如,如果替代物集合被编号为0、1和2,则Nmax(N的最高值)是2并且总共存在Nmax+1=3个滤波器集合。在图8-b中,对于第一替代滤波器集合(滤波器替代物0集合)之后的各个替代滤波器集合(滤波器替代物1集合、滤波器替代物2集合等),必须用信号通知亮度滤波器表替代物N+1标志803。将观察到,“亮度滤波器表替代物N+1标志”803可以等于1的最大次数是Nmax,以真正限制所使用的存储器。在图8-c中,(Nmax+1)对应于替代物的数量804可以采取的最大值。可替代地,对“用信号通知的亮度滤波器的全局最大数量”的限制适用于限制亮度滤波器的数量204的(Nmax+1)倍的值。在使用Nmax的变型中,如果N+1>Nmax,则可以在位流中省略最后的0标志,因为这是不允许的。

图8-d示出使得能够用信号通知针对各个滤波器索引的不同数量的替代滤波器的另一变型。在这种另一变型中,对于给定的滤波器索引F,使用与图8-b中相同的机制连续地提供针对该滤波器索引F 811的滤波器替代物:一个亮度滤波器F替代物N+1标志812指示是否存在另一可用的滤波器替代物N+1。这是针对各个滤波器索引完成的。对于各个滤波器索引,Nmax(“用信号通知的替代亮度滤波器的最大数量”减一)对应于“亮度滤波器F替代物N+1标志”812可以等于1的最大次数。对“用信号通知的亮度滤波器的全局最大数量”的限制适用于限制在811中用信号通知的亮度滤波器的总数量(各个滤波器索引F的替代物数量的总和)。可替代地,每个替代集合的限制可以被施加为针对范围从0至Nmax的N的“用信号通知的亮度滤波器N的最大数量”,各个针对每个集合的限制对应于所有滤波器索引F中的针对给定值N使用最大次数811。然后,针对给定滤波器索引F,对于替代物N+1,不可能具有索引F的滤波器,除非由于“亮度滤波器F替代物N+1”标志812而在替代物N中存在索引F的滤波器。这意味着替代物N总是具有与替代物N+1相同数量的滤波器或比替代物N+1多的滤波器。因此,为了适当地估计最大存储器作为针对范围从0至Nmax的N的“用信号通知的亮度滤波器N的最大数量”的值的总和,这些值将减小(换言之,不使“用信号通知的亮度滤波器N的最大数量”随着N的增加而减小、没有意义、或者没有用)。

图8-e示出其它另一变型,该变型使得能够合并各个连续地用信号通知的滤波器系数的替代表之间的滤波器索引。其使得能够以用于用信号通知各个类索引与每个替代物的滤波器索引的关联的小的附加成本来减少连续替代物中的滤波器索引的数量。提供针对第一滤波器替代物0表的亮度滤波器的数量821。如果第一滤波器替代物0中存在多于一个滤波器,则用信号通知用于将滤波器索引0(滤波器替代物0表823中的滤波器的索引)与各个类索引相关联的表822。如果第一滤波器替代物0中仅存在一个滤波器,则各个类索引与该滤波器相关联(即,与具有0索引的滤波器相关联),并且不用信号通知这样的表。在823中提供针对第一滤波器替代物0表的亮度滤波器的滤波器系数。821、822和823类似于图2中的204、205和206,但是它们被修改用于使用第一滤波器替代物0。以N=1(针对第二滤波器替代物表)开始,提供亮度滤波器表替代物N标志824以指示亮度滤波器替代物表N是否可用(第N+1表,因为替代表索引从0开始)。如果标志指示亮度滤波器替代物表N可用,则提供该表中的亮度滤波器的数量N(825)。接着,代替提供用于使各个类与滤波器索引相关联的表(例如,如图8-e中的822或如图8-f中的831或如图9中的905),并且为了减少(在一些情况下,不必要的)用信号通知成本,在826中提供/获得用于将滤波器索引N(滤波器替代物N表中的滤波器的索引)与另一滤波器索引[N-1](滤波器替代物[N-1]表中的滤波器的索引)相关联/映射到该另一滤波器索引[N-1]的表。这种(映射)表是大小为亮度滤波器的数量[N-1](例如,查找表自身的位置索引对应于滤波器索引N)的如下查找表:将前一亮度滤波器表的滤波器索引(即,滤波器替代物表[N-1]中的滤波器的各个索引)与第N+1替代亮度滤波器表中的滤波器索引(即,滤波器替代物表N中的滤波器的索引,由于滤波器替代物表0是第一个,因此其是第N+1个)相关联/映射到第N+1替代亮度滤波器表中的滤波器索引,该表是在827中提供/获得的滤波器替代物表N。然后,N递增,并且针对下一亮度滤波器替代物表,用信号通知亮度滤波器表替代物N标志824。解码器可以容易地重建2条目表filterCoeffDeltaIdx[altIdx][classIdx],其将各个类索引classIdx与滤波器替代物索引altIdx(altIdx=0至numAlts–1=可用的滤波器替代物表的数量减一)和相应滤波器替代物表N中的滤波器索引相关联。可以使用例如以下算法来构建该表:

或者等效地,使用以下算法:

这里,表filterCoeffAlternativeMergeIdx[0]等于表822(针对各个类的滤波器索引0),即,filterCoeffAlternativeMergeIdx[0][classIdx]是在滤波器替代物0表中针对具有类索引classIdx的类的滤波器索引。并且对于N>0,filterCoeffAlternativeMergeIdx[N]等于表826(针对各个滤波器索引N-1的滤波器索引N),即filterCoeffAlternativeMergeIdx[N][filterIdx]是与滤波器替代物N-1表的滤波器索引filterIdx相关联的滤波器索引(在滤波器替代物N表中)。变量numAlts是可用的亮度滤波器表替代物的数量,并且变量numClasses是类索引的数量。

应理解,通过将滤波器替代物表的最大数量限制为2,该另一变型的滤波器合并技术还适用于变型3。

为了限制存储器,类似于图8-b、图8-c和图8-d,“用信号通知的亮度滤波器的最大数量”适用于亮度滤波器的数量0(821)和亮度滤波器的数量N(825),N是从1直到Nmax,并且Nmax等于“亮度滤波器表替代物N标志”824可以等于1的最大次数。可替代地,对“用信号通知的亮度滤波器的全局最大数量”的限制适用于限制在823和827中用信号通知的亮度滤波器的总数(即,用信号通知的亮度滤波器的数量0(821)以及各个用信号通知的亮度滤波器的数量N(825)的总和)。在又一替代方案中,“用信号通知的亮度滤波器0的最大数量”可以限制亮度滤波器的数量0(821)可以采取的最大值;并且对“用信号通知的亮度滤波器N的最大数量”的进一步的针对每个集合的限制(其中N分别从1直到Nmax)可以限制亮度滤波器的数量N(825)可以采取的最大值。为了适当地估计最大存储器作为针对范围从0至Nmax的N的“用信号通知的亮度滤波器N的最大数量”的值的总和,这些值应随着N的增加而减小。

在一些变型中,Nmax等于1(即,使用最多两个替代滤波器集合),并且用信号通知的亮度滤波器0的最大数量和信号通知的亮度滤波器1的最大数量设置为{X,Y},其中X属于区间[3,7]且Y属于区间[1,7],并且Y<=X。还应理解,在另一进一步变型中,亮度滤波器表替代物N标志824可以用直接提供可用的亮度滤波器表替代物的数量的单个语法元素来代替,与图8-c中804所做的类似。根据该另一变型,代替使用标志824,提供/获得替代物表的数量804,使得可以使用该替代物表的数量804针对所有替代物来进行表N825中的“亮度滤波器的数量N”,“针对各个滤波器索引N-1的滤波器索引N”表826和亮度滤波器替代物N表827的获得/处理。至于图8-c,Nmax+1这里对应于最大值(替代物804可以采取的数量)。

图8-f示出使得能够使用具有彼此独立大小的亮度替代滤波器集合的另一进一步变型:各个亮度替代滤波器集合可以具有其自身的大小,并且对亮度替代滤波器集合之间的索引的合并没有约束(与图8-e中所示的变型相反)。

在该进一步变型中,在“替代物数量”804中提供/获得亮度替代滤波器集合的数量。对于N等于零直到“替代物数量”减一,提供/获得该表中的亮度滤波器的数量N(825)(如图8-e所示)。如果该数量大于一,则用信号通知用于将亮度替代滤波器集合中的滤波器索引关联到各个类(索引)(例如,如图8-e中的822或图9中的905)的表831。如图8-e所示,亮度滤波器替代物N表827包括亮度替代物N滤波器集合中的滤波器的滤波器系数。为了限制存储器,类似于图8-e,对“用信号通知的亮度滤波器的最大数量”的限制适用于亮度滤波器的数量N(825),其中N等于0直到Nmax,其中(Nmax+1)是替代物804的最大数量。可替代地,对“用信号通知的亮度滤波器的全局最大数量”的限制适用于限制827中用信号通知的亮度滤波器的总数量(即,各个用信号通知的亮度滤波器的数量N(825)的总和)。在又一替代方案中,对“用信号通知的亮度滤波器N的最大数量”的针对每个集合的限制(其中N分别从0直到Nmax)可以应用于设置亮度滤波器的数量N(825)可以采取的最大值。

在第二实施例的变型(“变型6”)中,扩展变型4以使得能够在各个CTU中在多于两个替代编码滤波器之间切换/改变针对各个类的亮度滤波器。对于该变型6,在图6中,修改步骤603以获得与用信号通知的一样多的亮度滤波器集合替代物(即,对于所有滤波器集合替代物中的每一个,用信号通知包括针对各个滤波器(索引)的滤波器系数的滤波器集合),并且修改步骤606以使得从具有等于针对块的类(索引)的“类滤波器替代物索引”的索引的滤波器集合替代物来获得滤波器。可替代地,代替在步骤606中(其中针对在步骤605中获得的一个给定类进行类滤波器替代物选择),在步骤603中可以针对各个类进行类滤波器替代物选择(即,所有可用类具有针对其进行的类滤波器替代物选择)。接着,代替获得包含针对各个滤波器索引的滤波器系数的滤波器集合,而是在603中针对各个滤波器集合替代物,可以获得包含针对各个类(索引)的滤波器系数的滤波器集合。针对各个类从具有等于针对该类(索引)提供的“类滤波器替代物索引”的索引的滤波器集合替代物中选择该集合中的滤波器系数。参见图9,对于在CTU 901中使用类滤波器替代物N用信号通知的类,从“各个类的滤波器索引表N”905获得给定类索引的滤波器索引。然后,步骤606将仅在于获得针对605中获得的块类的滤波器系数并且根据也在605中获得的transposeIdx对这些滤波器系数进行转换/组织/配置。

在变型1或变型3的一些进一步变型中,CTU中提供(即,对于给定滤波器索引,针对变型1由图7-a中的701-a指示或者针对变型3由图8-a中的801指示)的亮度滤波器切换标志(针对变型1)或亮度滤波器替代物索引(针对变型3)的数量与第一亮度替代滤波器集合中的滤波器的数量相同,但是在任何其它亮度替代滤波器集合中的滤波器的数量可能不总是相同的。然后,按照如下进行针对给定类的滤波器的选择(取决于实现来修改步骤603或606):首先,采用针对给定类(与给定类相关联)的滤波器索引,滤波器索引用于标识第一亮度替代滤波器集合中的滤波器索引。然后采用CTU数据中针对该滤波器索引指示的亮度替代滤波器集合(即,对于给定滤波器索引,针对变型1由图7-a中的701-a指示或者针对变型3由图8-a中的801指示)。最后,从亮度替代滤波器集合中采用与给定类相关联的亮度滤波器(例如,参见图8-e或图8-f的描述,其示出具有滤波器集合替代物中的滤波器索引与类索引的关联的变型)。

在一个这样的另外变型中,一个亮度替代滤波器集合中的滤波器的数量独立于另一亮度替代滤波器集合中的数量。这些另外的变型之一被示出在图8-f中。在另一进一步的变型中,第一亮度替代滤波器集合中的滤波器的数量受到“用信号通知的亮度滤波器的最大数量”(其小于VTM-3.0分类中的25各类)的限制,但是另一亮度替代滤波器集合中的滤波器的数量(例如第(i+1)个亮度替代滤波器集合)不能多于前一亮度替代滤波器集合(即第i个亮度替代滤波器集合)中的滤波器的数量。在这样的进一步变型的又一种中,与第(i+1)个亮度替代滤波器集合的各个滤波器相关联的类仅能够通过合并与第i个亮度替代滤波器集合的滤波器相关联的类(即,通过合并前一亮度替代滤波器集合的滤波器索引)来获得。这样的进一步变型之一在图8-e中示出。

在一些变型中,针对范围从0至Nmax的N的“用信号通知的替代亮度滤波器的最大数量”(Nmax)和/或“用信号通知的亮度滤波器的最大数量”和/或“用信号通知的亮度滤波器的全局最大数量”和/或“用信号通知的亮度滤波器N的最大数量”不从编码器发送到解码器,而是在两者中是固定的。在其它变形中,它/它们不从编码器发送到解码器,而是基于所发送的简档和/或层级(或其它参数)确定它们。在又一变型中,在从编码器发送到解码器的位流(例如,在SPS或PPS中)中显式地对它们进行编码。

图9是示出可以用于实现变型6的语法元素的流程图。该流程图还提供色度滤波器的滤波器替代物的使用(应理解,这些附加色度滤波器还可以与前述实施例/变型中的任一个一起使用)。在一些变型中,仅使用色度滤波器处理(语法元素)(即,存在色度滤波器替代物,但既不存在替代亮度滤波器集合,也不存在亮度滤波器替代物)。该流程图修改图2所示的流程图。对于各个CTU,如果ALF亮度启用标志208等于1,则针对各个类提供类滤波器替代物索引901。在图6的流程图中,步骤603获得针对所有类/滤波器索引的所有滤波器替代物的所有滤波器系数,步骤606使用CTU数据中针对正被处理的块的类所指示的替代物索引来获得亮度滤波器系数,并且根据transposeIdx来组织亮度滤波器系数。可替代地,步骤603使用CTU数据中针对各个类所指示的类滤波器替代物索引901来获得针对所有类索引的亮度滤波器系数的集合;并且步骤606针对步骤605获得的类索引从亮度滤波器系数集合(步骤603得到)中获得亮度滤波器系数,并根据也在步骤605获得的transposeIdx对亮度滤波器系数进行组织。如同色度一样,如果ALF Cr启用标志209等于1,则针对正被处理的Cr CTB的各个CTU数据中的Cr提供色度滤波器替代物索引902。步骤614获得与用于处理Cr CTB样本的该色度滤波器替代物索引相对应的色度滤波器。如果ALF Cb启用标志210等于1,则针对正被处理的Cb CTB的各个CTU数据中的Cb提供色度滤波器替代物索引903。步骤611获得与用于处理Cb CTB样本的该色度滤波器替代物索引相对应的色度滤波器。这些语法元素或其功能等效物也可以在图16-b和图16-c中找到。

亮度类滤波器替代物的用信号通知在片头部中(或者可替代地,例如在APS中或者在区块组头部中)进行,并且进行针对色度的滤波器替代物的用信号通知。对于亮度类滤波器替代物,以N=0开始,用信号通知针对替代物索引的亮度滤波器的数量N(904),并且如果滤波器的数量大于1,则用信号通知针对各个类的滤波器索引表N 905,并且滤波器索引表N将滤波器索引与其第N个替代物的各个类相关联。“各个亮度滤波器N的类滤波器替代物N系数表”906包含针对“亮度滤波器的数量N”的滤波器系数,即,针对第N个替代物的亮度滤波器。然后,亮度滤波器替代物N+1标志907指示另一亮度类滤波器替代物是否可用。如果该亮度滤波器替代物N+1标志等于1,则N递增并且用信号通知循环返回到步骤904以获得下一滤波器。如果亮度滤波器替代物N+1标志等于零,则不存在要用信号通知的其它亮度类滤波器替代物。色度滤波器替代物的用信号通知以N=0开始,即,通过第一滤波器替代物的滤波器系数908的用信号通知开始。色度滤波器替代物N+1 909指示另一色度滤波器替代物可用。如果色度滤波器替代物N+1标志等于1,则N增加1并且用信号通知下一色度滤波器替代物。如果等于零,则不用信号通知其它色度滤波器替代物。在一个变型中,代替标志“色度滤波器替代物N+1”元素909,在提供针对替代色度滤波器中的每一个的滤波器替代物N系数表之前,在一个语法元素中直接提供色度滤波器替代物的数量。为了限制存储器,类似于图8-b、图8-c和图8-e,Nmax等于“亮度滤波器表替代物N+1标志”907可以等于1的最大次数。可替代地,对“用信号通知的亮度滤波器的全局最大数量”的限制适用于限制906中用信号通知的亮度滤波器的总数(亮度滤波器的数量N 904的总和)。在又一替代方案中,对“用信号通知的亮度滤波器的最大数量0”到“用信号通知的亮度滤波器的最大数量Nmax”的针对每个集合的限制分别适用于906中针对N的各个可能值用信号通知的亮度滤波器的数量。

在一些先前变型中(其中滤波器的数量对于各个替代物索引可以是不同的,例如图7-d、图7-e、图8-d、图8-e以及图8-f所示出的那些,并且其中,针对每个替代滤波器集合索引存在不同的“用信号通知的亮度滤波器的最大数量”),不使用“用信号通知的亮度滤波器0的最大数量”(或等效地将其设置为等于由解码处理允许的滤波器的最大数量,例如类的数量,例如25),以使ALF的灵活性与在没有替代滤波器集合替代物并且没有任何“用信号通知的亮度滤波器的最大数量”的情况下将具有的灵活性相比一样多。在该变型中,“用信号通知的亮度滤波器N的最大数量”仍然用于N>0,以仍然限制存储器使用,同时允许通过使用替代滤波器集合所提供的编码增益。在这种变型之一中,“用信号通知的替代亮度滤波器的最大数量”被设置为等于2,并且{“用信号通知的亮度滤波器0的最大数量”、“用信号通知的亮度滤波器1的最大数量”}被设置为等于{25,13}。在其它变型中,它们被设置为等于{25,7}、{25,5}、{25,3}、{25,2}或甚至{25,1}。

可以注意到,在替代滤波器集合的情况下,仍然优选的是,“用信号通知的亮度滤波器0的最大数量”的值是奇数并且大于或等于3(出于与先前提到的在不使用替代滤波器集合时相同的原因)。但是对于“用信号通知的亮度滤波器N的最大数量”的值重要性较小(其中N>0),值可以等于1、2或3。

在一些变型中,“用信号通知的替代亮度滤波器的最大数量”被设置为等于2并且{“用信号通知的亮度滤波器0的最大数量”,“用信号通知的亮度滤波器1的最大数量”}被设置为等于{7,7}、{7,5}、{7,3}、{7,2}、{7,1}、{5,5}、{5,3}、{5,2}、{5,1}、{3,3}、{3,2}或{3,1},作为编码增益相对于用于存储滤波器的存储器的良好折衷。

在存在替代滤波器集合的一些先前实施例和变型中(即,在滤波器替代物的数量对于各个滤波器索引或对于各个类(索引)相同的实施例/变型中),以相同方式(即,彼此独立)编码各个滤波器集合的滤波器系数。例如,各个滤波器集合使用与在VVC草案3(VTM-3.0)中用信号通知ALF亮度滤波器系数使用的语法元素相同的语法元素。

在一些先前实施例和变型(包括实施例/变型)中,滤波器替代物的数量对于各个滤波器索引不是相同的(例如,图7-d和图8-d)。在这种实施例/变型的变型中,给定滤波器索引的所有滤波器替代物独立于针对另一滤波器索引的滤波器来编码。例如,使用与VVC草案3(VTM-3.0)中所使用的语法元素(用以用信号通知ALF亮度滤波器系数)相同的语法元素来进行针对给定滤波器索引的滤波器替代物的编码。接着,可以在滤波器替代物之间使用滤波器预测。例如,第一滤波器替代物的滤波器系数可以使用其值的哥伦布码来直接编码,并且下一滤波器替代物的滤波器系数是使用其值与来自前一滤波器替代物的系数的值之间的差(即,残差)的哥伦布码来编码的。

在一个替代变型中,对于各个滤波器索引,首先例如使用与在VVC草案版本3(VTM-3.0)中针对ALF亮度滤波器系数相同的用信号通知来编码第一滤波器替代物的滤波器系数。接着,对于各个给定滤波器索引,具有给定滤波器索引的各个下一滤波器替代物的所有滤波器系数是使用来自具有其前一滤波器替代物索引且具有相同滤波器索引的滤波器替代物的滤波器系数的预测来编码的。

在滤波器替代物的数量对于各个滤波器索引相同且针对每个替代滤波器集合的滤波器的数量相同的实施例/变型中,用信号通知滤波器相关信息的一种方式是首先对第一滤波器集合中的滤波器进行编码。接着,对于各个替代滤波器集合,从前一滤波器集合中的滤波器的系数预测替代滤波器集合的滤波器系数,并且对于ALF亮度滤波器系数,如在VVC草案版本3(VTM-3.0)中那样编码滤波器的系数残差。VVC草案版本3的用信号通知允许连续滤波器之间的预测。这里,如果选择预测模式,则代替使用滤波器系数之间的预测,对残差系数进行预测(进行二重预测)。

在滤波器替代物的数量对于各个滤波器索引相同、但针对各个替代滤波器集合的滤波器的数量不相同、并且在滤波器集合之间使用滤波器合并(例如,图7-e和图8-e的描述)的实施例/变型中,用信号通知滤波器相关信息的一种方式是例如使用与在VVC草案版本3(VTM-3.0)中针对ALF亮度滤波器系数相同的用信号通知来首先编码第一滤波器集合中的滤波器。然后,对于各个替代滤波器集合,从先前滤波器集合中的具有合并到给定滤波器的滤波器索引中的滤波器索引的第一滤波器的滤波器系数来预测该给定滤波器的滤波器系数。接着,对于各个替代滤波器集合,所有滤波器的系数残差如在VVC草案版本3(VTM-3.0)中针对ALF亮度滤波器系数那样编码。可替代地,代替先前滤波器集合中的具有合并到给定滤波器的滤波器索引中的滤波器索引的第一滤波器,可以使用另一预定滤波器。可替代地,代替先前滤波器集合中的具有合并到给定滤波器的滤波器索引中的滤波器索引的滤波器,可以使用索引是在对于各个滤波器索引或各个类(索引)相同的位流中提供/用信号通知的另一滤波器(即,我们具有滤波器集合替代物,但各个滤波器集合替代物可以具有不同数量的滤波器:例如参见图8-e、图8-f、图9),用于用信号通知滤波器相关信息的一种方式是首先使用与在VVC草案版本3(VTM-3.0)中用信号通知ALF亮度滤波器系数使用的语法元素相同的语法元素对滤波器集合进行编码。接着对于各个滤波器集合,可以从先前滤波器集合的第一滤波器的滤波器系数来预测第一滤波器的滤波器系数。然后,使用与VVC草案版本3中用信号通知ALF亮度滤波器系数使用的语法元素相同的语法元素来编码该滤波器和其它滤波器系数的系数残差。VVC草案版本3的用信号通知允许连续滤波器之间的预测。如果使用预测模式,则通常在没有预测的情况下编码第一滤波器(但在该变型中/这里,使用来自前一滤波器集合的预测来编码第一滤波器)。然后从先前滤波器预测下一滤波器(这里对于第二滤波器预测,使用第一滤波器,而不是第一滤波器残差)。

在先前实施例/变型的替代变型中,每次进行/使用预测时,代替使用“紧挨着的先前滤波器替代物”或“紧挨着的先前滤波器集合”来预测,而是使用“前一滤波器替代物”或“前一滤波器集合”来预测,其索引是在位流中指示的。

应理解,先前描述的实施例/变型中的任一个可以被扩展以与使用一个或多个非线性滤波器的ALF一起使用。当一个或多个限幅函数用于非线性滤波器时,这种被扩展的变型以与针对各个亮度滤波器206的滤波器系数表和针对色度滤波器的滤波器系数表完成的方式相同的方式包括或替换针对各个亮度滤波器的限幅参数511和针对色度滤波器的限幅参数512。然后,针对各个可能的滤波器替代物在位流中提供限幅参数。

在变型1和变型3的一些变型中,即在可以针对各个滤波器索引切换/改变亮度滤波器的变型中,以及在滤波器的数量在各个“针对各个亮度滤波器的滤波器替代系数表”中相同(例如,图7-c、图7d、图8-b、图8-c和图8-d)的变型中,限幅参数可以由具有相同滤波器索引的多个或实际上所有滤波器共用。然后,无论滤波器替代物的数量如何,所发送的限幅参数的数量都相同。

如关于图5所描述的用于限制用于存储限幅值的存储器的变型可以容易地与替代滤波器集合相组合,针对所述替代滤波器集合,对滤波器的最大数量施加限制(针对诸如最大集合等的一个集合,或当所有集合具有相等数量时;或者整体地针对所有集合;或者针对各个个体集合)。例如,当针对各个亮度滤波器的系数表506的数量与针对各个亮度滤波器的限幅值511的表的数量相同时,“最大数量”对于滤波器系数的表的数量和限幅值的表的数量相同。其它变型可以容易地扩展或与非线性滤波器集合相组合。

在存在替代滤波器集合的一些变型中,向各个替代滤波器集合提供附加标志以指示替代滤波器集合中的一个或多个替代滤波器是否为非线性的。如果替代滤波器集合中的一个或多个替代滤波器是非线性的,则各个替代滤波器的限幅参数也与替代滤波器集合一起提供/在替代滤波器集合中提供(例如,通过在位流中提供/用信号通知它们)。

在一些变型中,针对各个滤波器替代物提供附加标志以指示滤波器替代物是线性的还是非线性的。如果替代滤波器是非线性的,则还提供针对替代滤波器的限幅参数(例如,通过在位流中提供/用信号通知它们)。

在具有替代色度滤波器的一些变型中(即,其中存在可供使用的多于一个色度滤波器),针对各个色度滤波器提供附加标志以指示色度滤波器是线性的还是非线性的。如果色度滤波器是非线性的,则提供针对色度滤波器的限幅参数(例如,通过在位流中提供/用信号通知它们)。

在具有替代色度滤波器的一些变型中(即,其中存在可供使用的多于一个色度滤波器),使用滤波器之间的预测。例如,使用与当利用预测来编码亮度滤波器的集合的亮度滤波器系数(且因此也编码残差)时的用于VVC草案版本3(VTM-3.0)的语法相同的语法来编码用所有替代色度滤波器构建的集合。

在针对给定片/区块组的用信号通知的滤波器替代物(或类滤波器替代物)的数量大于1的一些变型中,使用上下文自适应二进制算术编码(CABAC)在CTU数据中用信号通知亮度滤波器替代物索引801(或类滤波器替代物索引901)。在一个变型中,当用信号通知针对所有滤波器索引(或所有类索引)的滤波器替代物索引时,共用相同的CABAC上下文。在一个变型中,仅存在当用信号通知滤波器替代物索引时使用的一个CABAC上下文。该CABAC上下文用于将滤波器替代物索引(或类滤波器替代物索引)编码为一元码(类似于CABAC编码/解码哥伦布-莱斯表示)。例如,如果K为可用滤波器替代物的数量(即,在APS或片/区块组头部中用信号通知的滤波器替代物的数量),并且如果k是对块使用的替代滤波器索引(并且因此用信号通知),使用CABAC上下文编码k个1(“1”)的序列,并且如果k严格低于K减一(k<K-1),则使用相同CABAC上下文在结束处编码一个终止零(“0”),以用信号通知一元码的结束。如果k等于K减一(k=K-1),则不需要用信号通知一元码的结束,因为K减一(K-1)为可编码的最大值。在解码器侧,解码器使用相同的CABAC上下文解码并计数尽可能多的1(多达以下情况的第一个发生:读取K减一个1,或解码终止零)。该计数与要在块上使用的所获得的滤波器替代物的索引相对应。

在其它变型中,每个滤波器索引(或每个类索引)存在一个CABAC上下文。

在一些变型中,滤波器切换标志(针对变型1或变型2)或滤波器替代物索引(针对变型3或变型4)以及ALF启用标志是在比CTU精细的粒度级别(例如,在CU级别)用信号通知的。在其它变型中,在比CTU更高的粒度级别(例如,在片或区块级别(其比区块组级别更精细))用信号通知它们。

在一些变型中,在不同APS中提供各个替代滤波器集合。然后,各个区块组头部包括对一个或多个APS的参考,以指示从哪个APS(使用对相应APS的参考)取得各个替代滤波器集合。在这样的变型中,例如,各个APS使用以下方式用信号通知ALF滤波器(包括其滤波器系数)。各个APS包含一个亮度滤波器表和至多一个色度滤波器。片/区块组头部指示(针对片/区块组)应使用的替代滤波器集合的数量,并且提供针对替代滤波器集合的APS索引的列表。

各个替代亮度滤波器集合对应于各个APS的亮度滤波器表,并且替代色度滤

波器集合由在APS中用信号通知的任何色度滤波器构建。在另一变型中,片

/区块组头部指示ALF是否针对色度而启用,并且如果针对色度启用,则片/区块组头部提供APS的列表以用来构建色度滤波器替代物的集合。在其它变型中,滤波器替代物和/或替代滤波器集合全部在同一APS中提供。

这里描述的一些变型/实施例确保片/区块组数据/内容的可解析性,即,即使丢失了不在同一NAL单元中的APS数据,也确保解码器可以在解码片/区块组数据时继续正确地解析位流(例如,通过处理符合的位流)。设计符合的位流以使得解码器可以正确地解码所有语法元素而不进入错误状态,并且即使经解码内容含有一些错误,解码器将以非预期方式表现的风险也减小。在这种变型/实施例中,解码CTU数据所需的一些APS语法元素可以在片/区块组头部中重复。可以用于校正语法解码的第一语法元素为ALF启用标志和色度启用标志。ALF启用标志(已经在区块组头部中的VTM-3.0中的tile_group_alf_enabled_flag)指示针对各个CTU的片/区块组位流(数据)中是否存在ALF亮度启用标志(对应于VTM-3.0中的alf_ctb_flag[0][x][y])。色度启用标志(包含在VTM-3.0中的‘alf_chroma_idc‘中)指示针对各个CTU的片/区块组位流(数据)中是否存在ALF Cr启用标志和/或ALF Cb启用标志(对应于VTM-3.0中的alf_ctb_flag[1][x][y]和alf_ctb_flag[2][x][y])。根据一些变型,需要附加语法元素来校正片/区块组语法元素解码。例如,在第一实施例的变型中,在片/区块组头部中提供在CTU数据中用信号通知切换标志(或滤波器替代物索引)的滤波器的数量。在第二实施例的变型中,由于类的数量总是相同的(和/或可以从CTU数据的CTB数据确定),因此不需要用信号通知类的该数量。在一些变型中,为了确保适当解码替代滤波器索引,以不依赖于所允许的替代物的数量的方式进行替代滤波器索引的编码。例如,在先前描述的一元编码的情况下,即使替代滤波器索引等于替代物的数量减一,也总是将终止零“0”放在一“1”之后。然后,即使当所允许的替代物的数量可能改变,解码器也可以总是解析这些值。

在其它变型中,对于第一实施例和第二实施例这两者,当变型针对任何滤波器索引(或类索引)具有相同数量的替代滤波器时,例如仅使用替代滤波器集合,在片/区块组头部中提供替代滤波器集合的数量。在使用替代色度滤波器的变型中,在片/区块组头部中提供替代色度滤波器的数量。在可能替代滤波器的数量可随滤波器索引(或类索引)改变/变化的其它变型中,还在片/区块组头部中提供针对各个滤波器索引(或针对各个类索引)的可能替代滤波器的数量。

替代滤波器集合的组在本文中描述为含有使用例如类似于图7-c、7-d、7-e、8-b、8-c、8-d或8-e中所示的语法用信号通知的所有替代滤波器集合。在一些变型中,当对给定片/区块组的CTU进行滤波时,有可能具有对替代滤波器集合的多于一个组的访问权。在一些变型中,可能存在由区块组(头部)参考的多于一个APS,从而允许获得替代滤波器集合的多于一个组。在一些变型中,可以参考预定义替代滤波器集合的预定义组,以使得不需要用信号通知任何替代滤波器集合的滤波器系数(以及在非线性滤波器的情况下的任何限幅值索引或限幅参数),因为它们是预定义的。在一些变型中,还可以标识/获得/访问先前(按解码或处理顺序)解码的替代滤波器集合的组,使得不需要对在连续帧中类似/相同的滤波器进行重复编码。在一些变型中,在各个CTU数据中,在用信号通知针对该组的滤波器替代物索引(或滤波器切换标志)之前,提供替代滤波器集合的组的索引。

在一些变型中,在各个CTU数据中,提供一个标志,该标志指示是否使用第一替代滤波器集合的所有滤波器和/或是否用信号通知滤波器替代物。

在变型1或变型3的一些进一步变型中,在各个CTU数据中,提供一个标志,其指示是针对各个滤波器用信号通知滤波器替代物索引(或滤波器切换标志),还是用信号通知仅一个替代滤波器集合索引(或滤波器切换标志)。如果用信号通知仅一个替代滤波器集合索引(或滤波器切换标志),则ALF针对各个类使用来自相应替代滤波器集合的滤波器。

在变型2或变型4的一些进一步变型中,在各个CTU数据中,提供一个标志,其指示是针对各个类用信号通知滤波器替代物索引(或滤波器切换标志),还是用信号通知仅一个替代滤波器集合索引(或滤波器切换标志)。如果用信号通知仅一个替代滤波器集合索引(或滤波器切换标志),则ALF针对各个类使用来自相应替代滤波器集合的滤波器。

根据一些实施例/变型,使用以下各项中的一个或多个进行用信号通知ALF相关信息(诸如ALF参数和标志等):下文所示的APS语法(表1)、区块组头部语法(表2)、编码树单元语法(表3)和/或ALF数据语法(表4),其使用与VVC草案版本3(VTM-3.0)中相同的语法命名惯例。还参见图16-b和图16-c获得关于这些语法元素以及它们可能在何处/如何被用信号通知/提供/获得的进一步信息。

根据这样的实施例/变型的变型,使用所有四个语法(例如表1-4)来用信号通知ALF相关信息。根据替代性变型,仅使用四个语法的子集来用信号通知ALF相关信息。

表1–自适应参数集(APS)语法

表2–区块组头部语法-仅与ALF相关的部分

关于某些实施例(或其变型)描述的片(头部)被(如由表2的区块组头部语法所示)区块组(头部)替代。因此,“tile_group_alf_enabled_flag”对应于图2中的202和图5中的502的语法元素,并且其指示ALF针对区块组是否有效/启用。此外,在区块组头部中不提供ALF数据语法元素(在使用片的其它实施例变型中,可以在片头部中提供ALF数据语法元素)。代替地,在称为自适应参数集(APS)的特定参数集(如表1所示)中提供ALF数据语法元素。ALF数据包括ALF数据语法元素,并且在APS中提供ALF数据语法元素使得能够在多于一个区块组之间共用ALF参数,例如在相同和/或不同解码图片/图像中的多个区块组之间共用ALF参数。

表1的自适应参数集(APS)语法用于定义任何自适应参数集的用信号通知。在变型中,APS包括在非“视频编码层”(VCL)“网络抽象层”(NAL)单元(例如,称为“APS_NUT”或APSNAL单元类型)中。

APS的各个语法元素的语义如下:

自适应参数集语义

adaptation_parameter_set_id标识供其它语法元素参考的APS。adaptation_parameter_set_id的值应在0至63(包含)的范围内。

表2的区块组头部语法用于定义各个区块组头部。针对各个区块组提供区块组头部。区块组包括区块集合,各个区块包括CTU集合。

区块组头部的语法元素的语义如下:

区块组头部语义

tile_group_aps_id指定区块组参考的APS的adaptation_parameter_set_id。tile_group_aps_id的值应在0至63(包含)范围内。adaptation_parameter_set_id等于tile_group_aps_id的APS NAL单元的TemporalId应小于或等于编码的区块组NAL单元的TemporalId。

表3提供用于在CTU级别处(例如,作为CTU数据)用信号通知ALF有效/启用的各个成分所使用的ALF(启用)标志的语法元素。它对应于图2中的208、209和210中使用的语法元素。对于使用非线性ALF的实施例/变型,其对应于图5中的508、509和510。根据变型,与VVC草案版本3(VTM-3.0)相比,添加用信号通知各个ALF亮度滤波器索引的滤波器替代物索引(对应于表3中的针对各个CTU位置的“alf_ctb_filter_alt_idx[0]”表的元素)和用信号通知各个色度成分的滤波器替代物索引(对应于表3中的针对各个CTU位置的“alf_ctb_filter_alt_idx[1]”和“alf_ctb_filter_alt_idx[1]”表的元素)。这些索引编号是使用CABAC来编码的,其中一个上下文由所有亮度滤波器共用,并且一个上下文用于各个色度成分。这些索引编号的CABAC编码对应于滤波器替代物索引的一元表示的编码:例如,编码等于1的连续位,等于1的位的数量对应于滤波器替代物的索引;如果滤波器替代物的索引低于滤波器替代物的最大索引(对于亮度滤波器,最大索引是表4中的“alf_luma_num_alts_minus1”,并且对于色度滤波器,最大索引是表4中的“alf_chroma_num_alts_minus1”),并且对在结束处的等于零的位进行编码。然后,解码包括:在解码和计数直到最大索引值的1的数量时,一旦1的数量等于最大索引,或者一旦解码零,就完成语法元素的解码。

表3–编码树单元语法

表3的编码树单元语法用于定义(经编码的)编码树单元。编码树单元的各个语法元素的语义如下:

编码树单元语义

CTU是编码四叉树结构的根节点。

alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]等于1指定自适应环路滤波器应用于亮度位置(xCtb,yCtb)处由编码树单元的cIdx指示的颜色成分的编码树块。alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]等于0指定自适应环路滤波器不应用于亮度位置(xCtb,yCtb)处由编码树单元的cIdx指示的颜色成分的编码树块。

当alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]不存在时,推断为等于0。

alf_ctb_filter_alt_idx[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize][sigFiltIdx]指定当针对具有索引sigFiltIdx的滤波器的自适应环路滤波器应用于亮度位置(xCtb,yCtb)处由编码树单元的cIdx所指示的颜色成分的编码树块时由该滤波器使用的滤波器替代物的索引。在cIdx=0的情况下,alf_ctb_filter_alt_idx[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize][sigFiltIdx]的值应在0至alf_luma_num_alts_minus1(包含)的范围内。在cIdx>0的情况下,它应在0至alf_chroma_num_alts_minus1(包括)的范围内。

当alf_ctb_filter_alt_idx[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize][sigFiltIdx]不存在时,推断为等于0。

表4提供用于用信号通知ALF参数的语法元素(即,ALF数据语法),其建立在VVC草案版本3(VTM-3.0)的ALF数据语法元素上。这些语法元素建立在这里参考图8-a和图8-c的ALF语法元素(其进而建立在图2的语法元素上)所描述的一些变型中所使用的语法元素上。在表4中所示的该变型中,还添加与色度滤波器替代物的用信号通知相关的附加语法元素,并且在以下/之后提供可与该变型一起使用的语法元素的语义。

此外,在该变型中,所允许的亮度滤波器集合替代物的最大数量(例如,可以根据位流的规范或(VVC)视频简档/层级/级别的规范的用信号通知约束针对亮度使用和用信号通知的不同滤波器集合替代物的最大数量:即,由该视频简档/层级/级别所允许/授权的最大值)或者所允许的色度滤波器替代物的最大数量(例如,根据规范的用信号通知约束针对色度可以使用和用信号通知的不同滤波器替代物的最大数量)可以固定为8。应理解,在其它变型中,所允许的亮度滤波器集合替代物/色度滤波器替代物的最大数量可以被固定为其它值。在又一其它变型中,所允许的亮度滤波器集合替代物/色度滤波器替代物的最大数量取决于在片/区块组/视频帧/视频序列中包括的CTU的数量(即,图像(部分)或图像中由诸如CTU等的多少较小图像部分所指示的分辨率)。在这些变型之一中,所允许的亮度滤波器集合替代物/色度滤波器替代物的最大数量等于以下各项中的较小者:正整数值A;以及B和“片/区块组/视频帧/视频序列中的CTU的数量的C缩放对数”减去整数值D的整数估计/近似中的较大者。例如,在一些变型中,所允许的亮度滤波器集合替代物/色度滤波器替代物的最大数量等于:

其中m_numCTUsInPic是片/区块组/视频帧/视频序列中的CTU的数量,log2是基数为2的对数,是舍入运算符,例如向下舍入函数。A、B、C和D是恒定整数。在一个变型中,A=1,B=8,C=1并且D=2。在另一变型中,A=1,B=8,C=1并且D=3。

在一些变型中,代替使用对数函数,可以使用其它函数,例如线性函数。

在一些变型中,代替使用函数,使用表,从而针对基于CTU的数量的值范围提供所允许的亮度滤波器集合替代物/色度滤波器替代物的最大数量。

在一些变型中,代替使用二维空间中的CTU/样本的数量作为“分辨率”的度量,可以使用一维空间中的数量。例如,使用长度信息:例如特定宽度或高度或对角线方向内的样本(或CTU)的数量。

在另一变型中,代替CTU的数量,样本的数量被用作“分辨率”的度量,并且相应地调整C和D。

在又一变型中,所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量取决于帧/片/区块组QP值。例如,针对具有相对高QP的帧/片/区块组的所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量可以被设置为比具有较低QP的帧/片/区块组的所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量小(例如,1以减少复杂性),这是因为针对高QP的ALF参数信号通知成本可能更昂贵。在另一变型中,式(23)中的整数值D不是恒定的,而是代替地其取决于QP值。例如,D被设置为等于QP除以常数Q的整除数。例如,Q=10。

在又一变型中,对于帧内帧,将亮度滤波器集合替代物的最大数量固定为1,并且所允许的色度滤波器替代物的数量为2、4、8和16之一,或者是当从两个色度成分计数色度CTB的数量时色度CTB的数量和正整数E中的较小者(例如,min(E,2.m_numCTUsInPic))。对于非帧内帧,使用先前提到的变型的针对亮度滤波器集合替代物的最大数量其中任何一个,例如,式(23)的公式用于导出亮度滤波器集合替代物的最大数量,并且所允许的色度滤波器替代物的最大数量为2、4、8和16之一,或者色度CTB的数量和正整数E中的较小者。

在另一变型中,所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量(即,针对滤波器(集合)替代物可能性的数量的所允许/授权的绝对最大数量)可以是大的(例如,无论CTU的“分辨率”或数量如何,其可以固定在8、16或32处),但是编码器使用以上变型的“所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量”的定义或公式(或基于诸如“分辨率”等的参数的替代公式)之一,来导出“所测试的亮度滤波器集合替代物或色度滤波器替代物的临时最大数量”(可用)以供使用。这里,通过“所测试……的临时最大数量”,意指在滤波器(集合)替代物实际上用于图像(部分)的编码/解码之前由编码器考虑/评估/测试的最大数量。因此,编码器然后导出“所测试的亮度滤波器集合替代物或色度滤波器替代物的最大数量”作为导出的“所测试的亮度滤波器集合替代物或色度滤波器替代物的临时最大数量”和所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量的值中的较小者,并且使用“所测试的亮度滤波器集合替代物或色度滤波器替代物的最大数量”来控制/限制在编码处理期间所使用的/测试的滤波器(集合)替代物的数量,由此限制了所涉及的复杂性。

在一些变型中,所测试的亮度滤波器集合替代物或色度滤波器替代物的最大数量进一步由编码器根据其可用资源(例如,存储器或计算处理能力)来限制。

应理解的是,根据替代性变型,“所测试的亮度滤波器集合替代物或色度滤波器替代物的最大数量”不是使用CTU数量计数确定的,并且可以被任意设置。

表4–ALF数据语法

表4的自适应环路滤波器(ALF)数据语法用于定义自适应参数集(表1和图16-c所示)。针对一个示例实施例的目的的ALF数据语法元素的语义如下:

自适应环路滤波器数据语义

alf_chroma_idc等于0指定自适应环路滤波器不应用于Cb和Cr颜色成分。alf_chroma_idc等于1指定自适应环路滤波器应用于Cb颜色成分。alf_chroma_idc等于2指定自适应环路滤波器应用于Cr颜色成分。alf_chroma_idc等于3指示自适应环路滤波器应用于Cb和Cr颜色成分。

截断的一元二值化tu(v)的最大值maxVal被设置为等于3。

alf_luma_num_alts_minus1加1指定针对亮度成分的用信号通知的替代滤波器集合的数量。

截断的二进制二值化tb(v)的最大值maxVal被设置为等于8(其为“用信号通知的替代亮度滤波器的最大数量”)。

表NumAlfFilters[altIdx]指定具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的不同可访问的自适应环路滤波器的数量。NumAlfFilters[0]被设置为等于“用信号通知的亮度滤波器的最大数量”。对于大于0的altIdx,NumAlfFilters[altIdx]被设置为等于alf_luma_num_filters_signalled_minus1[altIdx–1]+1。

alf_luma_num_filters_signalled_minus1[altIdx]加1指定具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合可以用信号通知亮度系数的自适应环路滤波器类的数量。alf_luma_num_filters_signalled_minus1[altIdx]的值应在0至NumAlfFilters[altIdx]–1(包含)的范围内。

截断的二进制二值化tb(v)的最大值maxVal被设置为等于NumAlfFilters[altIdx]-1。

alf_luma_coeff_alt_merge_idx[altIdx][filtIdx]指定具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合和针对由范围从0至NumAlfFilters[altIdx]-1的filtIdx指示的滤波器类的用信号通知的自适应环路滤波器亮度替代合并索引的索引。当alf_luma_coeff_alt_merge_idx[altIdx][filtIdx]不存在时,推断为等于0。

截断的二进制二值化tb(v)的最大值maxVal被设置为等于alf_luma_num_filters_signalled_minus1[altIdx]。

alf_luma_coeff_delta_flag[altIdx]等于1指示不用信号通知具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的alf_luma_coeff_delta_prediction_flag[altIdx]。等于0的alf_luma_coeff_delta_flag[altIdx]指示可以用信号通知alf_luma_coeff_delta_prediction_flag[altIdx]。

alf_luma_coeff_delta_prediction_flag[altIdx]等于1指定从先前亮度系数的增量来预测具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的用信号通知的亮度滤波器系数增量。alf_luma_coeff_delta_prediction_flag[altIdx]等于0指定不是从先前亮度系数的增量来预测具有索引altIdx的针对亮度成分的替代滤波器集合的用信号通知的亮度滤波器系数增量。当不存在时,推断为alf_luma_coeff_delta_prediction_flag[altIdx]等于0。

alf_luma_min_eg_order_minus1[altIdx]加1指定具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的亮度滤波器系数信号通知的exp-Golomb码的最小阶数。alf_luma_min_eg_order_minus1[altIdx]的值应在0至6(包含)的范围内。

alf_luma_eg_order_increase_flag[altIdx][i]等于1指定具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的亮度滤波器系数信号通知的exp-Golomb码的最小阶数增加1。alf_luma_eg_order_increase_flag[altIdx][i]等于0指定具有索引altIdx的针对亮度成分的替代滤波器集合的亮度滤波器系数信号通知的exp-Golomb码的最小阶数不增加1。

用于对alf_luma_coeff_delta_abs[altIdx][sigFiltIdx][j]的值进行解码的exp-Golomb码的阶数expGoOrderY[altIdx][i]被按照如下导出:

expGoOrderY[altIdx][i]=alf_luma_min_eg_order_minus1[altIdx]+1+alf_luma_eg_order_increase_flag[altIdx][i]

alf_luma_coeff_flag[altIdx][sigFiltIdx]等于1指定用信号通知由具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的sigFiltIdx所指示的亮度滤波器的系数。alf_luma_coeff_flag[altIdx][sigFiltIdx]等于0指定由具有索引altIdx的针对亮度成分的替代滤波器集合的sigFiltIdx所指示的亮度滤波器的所有滤波器系数被设置为等于0。当不存在时,将alf_luma_coeff_flag[altIdx][sigFiltIdx]设置为等于1。

alf_luma_coeff_delta_abs[altIdx][sigFiltIdx][j]指定由具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的sigFiltIdx所指示的用信号通知的亮度滤波器的第j系数增量的绝对值。当alf_luma_coeff_delta_abs[altIdx][sigFiltIdx][j]不存在时,推断为等于0。

exp-Golomb二值化uek(v)的阶数k按照如下导出:

golombOrderIdxY[]={0,0,1,0,0,1,2,1,0,0,1,2}

k=expGoOrderY[altIdx][golombOrderIdxY[j]]

alf_luma_coeff_delta_sign[altIdx][sigFiltIdx][j]指定由具有范围从0至alf_luma_num_alts_minus1的索引altIdx的针对亮度成分的替代滤波器集合的sigFiltIdx所指示的滤波器的第j个亮度系数的符号为如下:

–如果alf_luma_coeff_delta_sign[altIdx][sigFiltIdx][j]等于0,则相应的亮度滤波器系数具有正值。

–否则(alf_luma_coeff_delta_sign[altIdx][sigFiltIdx][j]等于1),相应的亮度滤波器系数具有负值。

当alf_luma_coeff_delta_sign[altIdx][sigFiltIdx][j]不存在时,推断为等于0。

变量filterCoefficients[altIdx][sigFiltIdx][j](其中altIdx=0…alf_luma_num_alts_minus1,sigFiltIdx=0…alf_luma_num_filters_signalled_minus1[altIdx],j=0…11)按照如下初始化:

filterCoefficients[altIdx][sigFiltIdx][j]=alf_luma_coeff_delta_abs[altIdx][sigFiltIdx][j]*

(1-2*alf_luma_coeff_delta_sign[altIdx][sigFiltIdx][j])

当alf_luma_coeff_delta_prediction_flag[altIdx]等于1时,filterCoefficients[altIdx][sigFiltIdx][j](其中sigFiltIdx=1…alf_luma_num_filters_signalled_minus1[altIdx]且j=0…11)被按照如下修改:

filterCoefficients[altIdx][sigFiltIdx][j]+=filterCoefficients[altIdx][sigFiltIdx-1][j]

变量alf_luma_coeff_delta_idx[altIdx][filtIdx](其中altIdx=0…alf_luma_num_alts_minus1且filtIdx=0…NumAlfFilters[altIdx]–1)指定了具有索引altIdx的针对亮度成分的替代滤波器集合和针对由filtIdx指示的滤波器类的用信号通知的自适应环路滤波器亮度系数增量的索引。其按照如下初始化:

对于filtIdx=0…NumAlfFilters[0]–1,alf_luma_coeff_delta_idx[0][filtIdx]首先被设置为等于alf_luma_coeff_alt_merge_idx[0][filtIdx]。

然后,对于altIdx=1…alf_luma_num_alts_minus1,对于filtIdx=0…NumAlfFilters[0]–1,alf_luma_coeff_delta_idx[altIdx][filtIdx]被设置为等于alf_luma_coeff_alt_merge_idx[altIdx][alf_luma_coeff_delta_idx[altIdx-1][filtIdx]]。

具有元素AlfCoeffL[altIdx][filtIdx][j](其中altIdx=0…alf_luma_num_alts_minus1,filtIdx=0…NumAlfFilters–1并且j=0...11)的亮度滤波器系数AlfCoeffL[altIdx]按照如下导出:

AlfCoeffL[altIdx][filtIdx][j]=filterCoefficients[altIdx][alf_luma_coeff_delta_idx[altIdx][filtIdx]][j]

最后滤波器系数AlfCoeffL[altIdx][filtIdx][12](针对altIdx=0…alf_luma_num_alts_minus1并且filtIdx=0…NumAlfFilters-1)按照如下导出:

AlfCoeffL[altIdx][filtIdx][12]=128-Σk(AlfCoeffL[altIdx][filtIdx][

k]<<1)(其中k=0…11)。

位流一致性的要求是AlfCoeffL[altIdx][filtIdx][j](其中altIdx=0…alf_luma_num_alts_minus1,filtIdx=0…NumAlfFilters–1,j=0…11)的值应在-2^7至2^7-1(包含)的范围内,并且AlfCoeffL[altIdx][filtIdx][12]的值应在0至2^8-1(包含)的范围内。

alf_chroma_num_alts_minus1指定针对色度成分的替代滤波器的数量。

截断的二进制二值化tb(v)的最大值maxVal被设置为等于8。

alf_chroma_coeff_delta_prediction_flag等于1指定从先前色度系数的增量来预测针对色度成分的替代滤波器的用信号通知的色度滤波器系数增量。alf_chroma_coeff_delta_prediction_flag等于0指定不从先前色度系数的增量来预测针对色度的替代滤波器的用信号通知的色度滤波器系数增量。当不存在时,alf_chroma_coeff_delta_prediction_flag被推断为等于0。

alf_chroma_min_eg_order_minus1加1指定针对色度滤波器系数信号通知的exp-Golomb码的最小阶数。alf_chroma_min_eg_order_minus1的值应在0至6(包含)的范围内。

alf_chroma_eg_order_increase_flag[i]等于指定针对色度滤波器系数信号通知的exp-Golomb码的最小阶数增加1。alf_chroma_eg_order_increase_flag[i]等于0指定针对色度滤波器系数信号通知的exp-Golomb码的最小阶数不增加1。

用于解码alf_chroma_coeff_abs[altIdx][j]的值的exp-Golomb码的阶数expGoorderC[i]按照如下导出:

expGoOrderC[i]=alf_chroma_min_eg_order_minus1+1+alf_chroma_eg_order_increase_flag[i]

alf_chroma_coeff_delta_abs[altIdx][j]指定具有索引altIdx的针对色度成分的替代滤波器的第j个色度滤波器系数增量的绝对值。当alf_chroma_coeff_detla_abs[altIdx][j]不存在时,推断为等于0。

exp-Golomb二值化uek(v)的阶数k按照如下导出:

golombOrderIdxC[]={0,0,1,0,0,1}

k=expGoOrderC[golombOrderIdxC[j]]

alf_chroma_coeff_delta_sign[altIdx][j]指定具有索引altIdx的针对色度成分的替代滤波器的第j个色度滤波器系数的符号如下:

–如果alf_chroma_coeff_delta_sign[altIdx][j]等于0,则相应的色度滤波器系数具有正值。

–否则(alf_chroma_delta_coeff_sign[altIdx][j]等于1),相应的色度滤波器系数具有负值。

当alf_chroma_coeff_sign[altIdx][j]不存在时,推断为等于0。

具有元素AlfCoeffC[altIdx][j]的色度滤波器系数AlfCoeffC[altIdx](其中altIdx=0…alf_chroma_num_alts_minus1并且j=0...5)按照如下初始化:

AlfCoeffC[altIdx][j]=alf_chroma_coeff_delta_abs[altIdx][j]*(1-2*alf_chroma_delta_coeff_sign[altIdx][j])

当alf_chroma_coeff_delta_prediction_flag等于1时,如下修改AlfCoeffC[altIdx][j](其中altIdx=1…alf_luma_num_alts_minus1并且j=0...7):

AlfCoeffC[altIdx][j]+=AlfCoeffC[altIdx-1][j]

针对j=6的最后滤波器系数按照如下导出:

AlfCoeffC[altIdx][6]=128-Σk(AlfCoeffC[altIdx][k]<<1)(其中,k=0…5)

位流一致性的要求是AlfCoeffC[altIdx][j](其中altIdx=0...alf_chroma_num_alts_minus1并且j=0...5)的值应在-2^7-1至2^7-1(包含)的范围内,并且AlfCoeffC[altIdx][6]的值应在0至2^8-1(包含)的范围内。

根据一些变型,自适应环路滤波处理使用以上语法元素。以下使用VVC草案版本3(VTM-3.0)的符号惯例来描述这种变型。应理解的是,尽管这里描述的变型/实施例的描述提及了亮度成分和色度成分,但它们可以容易地适用于其它成分(诸如单个亮度/色度成分或RGB成分)的样本的图像部分/块。

自适应环路滤波处理

总述

该处理的输入是在自适应环路滤波器之前的重建图片样本阵列recPictureL、recPictureCb和recPictureCr。

该处理的输出是自适应环路滤波之后的修改的重建图片样本阵列alfPictureL、alfPictureCb和alfPictureCr。

自适应环路滤波之后的修改后的重建图片样本阵列alfPictureL、alfPictureCb和alfPictureCr中的样本值初始设置为分别等于自适应环路滤波之前的重建图片样本阵列recPictureL、recPictureCb和recPictureCr中的样本值。

当tile_group_alf_enabled_flag等于1时,对于具有亮度编码树块位置(rx,ry)的每个编码树单元(其中rx=0…PicWidthInCtbs-1且ry=0…PicHeightInCtbs-1),以下适用:

当alf_ctb_flag[0][rx][ry]等于1时,以recPictureL、alfPictureL和设置为等于(rx<<CtbLog2SizeY,ry<<CtbLog2SizeY)的亮度编码树块位置(xCtb,yCtb)作为输入来调用子句“亮度样本的编码树块滤波处理”中指定的亮度样本的编码树块滤波处理,并且输出是修改后的滤波图片alfPictureL。

当alf_ctb_flag[1][rx][ry]等于1时,以recPicture设置为等于recPictureCb、alfPicture设置为等于alfPictureCb、compIdx设置为等于1、并且色度编码树块位置(xCtbC,yCtbC)设置为等于(rx<<(CtbLog2SizeY-1),ry<<(CtbLog2SizeY-1))作为输入来调用子句“色度样本的编码树块滤波处理”中指定的色度样本的编码树块滤波处理,并且输出是修改后的滤波图片alfPictureCb。

当alf_ctb_flag[2][rx][ry]等于1时,以recPicture设置为等于recPictureCr、alfPicture设置为等于alfPictureCr、compIdx设置为等于1、并且色度编码树块位置(xCtbC,yCtbC)设置为等于(rx<<(CtbLog2SizeY-1),ry<<(CtbLog2SizeY-1))作为输入来调用子句“色度样本的编码树块滤波处理”中指定的色度样本的编码树块滤波处理,并且输出是修改后的滤波图片alfPictureCr。

亮度样本的编码树块滤波处理

该处理的输入是:自适应环路滤波处理之前的重建亮度图片样本阵列recPictureL、滤波后的重建亮度图片样本阵列alfPictureL、指定针对当前图片的左上方样本的当前亮度编码树块的左上方样本的亮度位置(xCtb,yCtb)。

该处理的输出是修改的滤波重建亮度图片样本阵列alfPictureL。

以位置(xCtb,yCtb)和重建的亮度图片样本阵列recPictureL为输入并且filtIdx[x][y]和transposeIdx[x][y](其中x,y=0…CtbSizeY-1)作为输出来调用滤波器索引子句“亮度样本的ALF转置和滤波器索引的导出处理”的导出处理。

对于滤波后的重建亮度样本alfPictureL[x][y]的导出,当前亮度编码树块内的各个重建亮度样本recPictureL[x][y](其中x,y=0…CtbSizeY-1)被如下滤波:

变量altIdx按照如下导出:

altIdx=alf_ctb_filter_alt_idx[0][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize][filtIdx[x][y]]

与由filtIdx[x][y]指定的滤波器相对应的亮度滤波器系数阵列f[j](其中j=0…12)按照如下导出:

f[j]=AlfCoeffL[filtIdx[x][y]][j]

根据transposeIdx[x][y]导出亮度滤波器系数filterCoeff如下:

如果transposeIndex[x][y]==1,则filterCoeff[]={f[9],f[4],f[10],f[8],f[1],f[5],f[11],f[7],f[3],f[0],f[2],f[6],f[12]}

否则,如果transposeIndex[x][y]==2,则filterCoeff[]={f[0],f[3],f[2],f[1],f[8],f[7],f[6],f[5],f[4],f[9],f[10],f[11],f[12]}

否则,如果transposeIndex[x][y]==3,则filterCoeff[]={f[9],f[8],f[10],f[4],f[3],f[7],f[11],f[5],f[1],f[0],f[2],f[6],f[12]}

否则,filterCoeff[]={f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12]}

在给定的亮度样本阵列recPicture内的各个相应的亮度样本(x,y)的位置(hx,vy)按照如下导出:

hx=Clip3(0,pic_width_in_luma_samples-1,xCtb+x)

vy=Clip3(0,pic_height_in_luma_samples-1,yCtb+y)

变量总和按照如下导出:

sum=filterCoeff[0]*(recPictureL[hx,vy+3]+recPictureL[hx,vy-3])+filterCoeff[1]*(recPictureL[hx+1,vy+2]+recPictureL[hx-1,vy-2])+filterCoeff[2]*(recPictureL[hx,vy+2]+recPictureL[hx,vy-2])+filterCoeff[3]*(recPictureL[hx-1,vy+2]+recPictureL[hx+1,vy-2])+filterCoeff[4]*(recPictureL[hx+2,vy+1]+recPictureL[hx-2,vy-1])+filterCoeff[5]*(recPictureL[hx+1,vy+1]+recPictureL[hx-1,vy-1])+filterCoeff[6]*(recPictureL[hx,vy+1]+recPictureL[hx,vy-1])+filterCoeff[7]*(recPictureL[hx-1,vy+1]+recPictureL[hx+1,vy-1])+filterCoeff[8]*(recPictureL[hx-2,vy+1]+recPictureL[hx+2,vy-1])+filterCoeff[9]*(recPictureL[hx+3,vy]+recPictureL[hx-3,vy])+filterCoeff[10]*(recPictureL[hx+2,vy]+recPictureL[hx-2,vy])+filterCoeff[11]*(recPictureL[hx+1,vy]+recPictureL[hx-1,vy])+filterCoeff[12]*recPictureL[hx,vy]

sum=(sum+64)>>7

修改后的滤波重建亮度图片样本alfPictureL[xCtb+x][yCtb+y]按照如下导出:

alfPictureL[xCtb+x][yCtb+y]=Clip3(0,(1<<BitDepthY)-1,sum)

亮度样本的ALF转置和滤波器索引的导出处理

该处理的输入是:指定针对当前图片的左上方样本的当前亮度编码树块的左上方样本的亮度位置(xCtb,yCtb),自适应环路滤波处理之前的重建亮度图片样本阵列recPictureL。

该处理的输出为

分类滤波器索引陈列filtIdx[x][y](其中x,y=0...CtbSizeY-1),

转置索引阵列transposeIdx[x][y](其中x,y=0...CtbSizeY-1)。

给定亮度样本阵列recPicture内的各个相应亮度样本(x,y)的位置(hx,vy)导出如下:

hx=Clip3(0,pic_width_in_luma_samples-1,x)

vy=Clip3(0,pic_height_in_luma_samples-1,y)

分类滤波器索引阵列filtIdx和转置索引阵列transposeIdx通过以下有序步骤导出:

1)变量filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y](其中x,y=-2…CtbSizeY+1)按照如下导出:

如果x和y这两者都是偶数或者x和y这两者都是奇数,则以下适用:

filtH[x][y]=Abs((recPicture[hxCtb+x,vyCtb+y]<<1)-recPicture[hxCtb+x-1,vyCtb+y]-recPicture[hxCtb+x+1,vyCtb+y])

filtV[x][y]=Abs((recPicture[hxCtb+x,vyCtb+y]<<1)-recPicture[hxCtb+x,vyCtb+y-1]-recPicture[hxCtb+x,vyCtb+y+1])

filtD0[x][y]=Abs((recPicture[hxCtb+x,vyCtb+y]<<1)-recPicture[hxCtb+x-1,vyCtb+y-1]-recPicture[hxCtb+x+1,vyCtb+y+1])

filtD1[x][y]=Abs((recPicture[hxCtb+x,vyCtb+y]<<1)-recPicture[hxCtb+x+1,vyCtb+y-1]-recPicture[hxCtb+x-1,vyCtb+y+1])

否则,filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y]设置为等于0。

2)变量varTempH1[x][y]、varTempV1[x][y]、varTempD01[x][y]、varTempD11[x][y]和varTemp[x][y](其中x,y=0...(CtbSizeY-1)>>2)按照如下导出:

sumH[x][y]=i j filtH[(x<<2)+i][(y<<2)+j](其中i,j=-2…5)

sumV[x][y]=i j filtV[(x<<2)+i][(y<<2)+j](其中i,j=-2…5)

sumD0[x][y]=i j filtD0[(x<<2)+i][(y<<2)+j](其中i,j=-2…5)

sumD1[x][y]=i j filtD1[(x<<2)+i][(y<<2)+j](其中i,j=-2…5)

sumOfHV[x][y]=sumH[x][y]+sumV[x][y]

3)变量dir1[x][y]、dir2[x][y]和dirS[x][y](其中x,y=0...CtbSizeY-1)按照如下导出:

变量hv1、hv0和dirHV按照如下导出:

如果sumV[x>>2][y>>2]大于sumH[x>>2][y>>2],则以下适用:

hv1=sumV[x>>2][y>>2]

hv0=sumH[x>>2][y>>2]

dirHV=1

否则,以下适用:

hv1=sumH[x>>2][y>>2]

hv0=sumV[x>>2][y>>2]

dirHV=3

变量d1、d0和dirD按照如下导出:

如果sumD0[x>>2][y>>2]大于[x>>2][y>>2],则以下适用:

d1=sumD0[x>>2][y>>2]

d0=sumD1[x>>2][y>>2]

dirD=0

否则,以下适用:

d1=sumD1[x>>2][y>>2]

d0=sumD0[x>>2][y>>2]

dirD=2

变量hvd1、hvd0按照如下导出:

hvd1=(d1*hv0>hv1*d0)?d1:hv1

hvd0=(d1*hv0>hv1*d0)?d0:hv0

变量dirS[x][y]、dir1[x][y]和dir2[x][y]按照如下导出:

dir1[x][y]=(d1*hv0>hv1*d0)?dirD:dirHV

dir2[x][y]=(d1*hv0>hv1*d0)?dirHV:dirD

dirS[x][y]=(hvd1>2*hvd0)?1:((hvd1*2>9*hvd0)?2:0)

4)变量avgVar[x][y](其中x,y=0…CtbSizeY-1)按照如下导出:

varTab[]={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4}

avgVar[x][y]=varTab[Clip3(0,15,(sumOfHV[x>>2][y>>2]*64)>>(3+BitDepthY))]

5)分类滤波器索引阵列filtIdx[x][y]和转置索引阵列transposeIdx[x][y](其中x=y=0…CtbSizeY-1)按照如下导出:

transposeTable[]={0,1,0,2,2,3,1,3}

transposeIdx[x][y]=transposeTable[dir1[x][y]*2+(dir2[x][y]>>1)]

filtIdx[x][y]=avgVar[x][y]

当dirS[x][y]不等于0时,filtIdx[x][y]按照如下修改:

filtIdx[x][y]+=(((dir1[x][y]&0x1)<<1)+dirS[x][y])*5

色度样本的编码树块滤波处理

该处理的输入是:自适应环路滤波处理之前的重建色度图片样本阵列recPicture、滤波后的重建色度图片样本阵列alfPicture、指定当前色度编码树块的色度成分索引的成分索引compIdx、指定针对当前图片的左上方样本的当前色度编码树块的左上方样本的色度位置(xCtbC,yCtbC)。

该处理的输出是修改后的滤波重建色度图片样本阵列alfPicture。

当前色度编码树块的大小ctbSizeC按照如下导出:

ctbSizeC=CtbSizeY/SubWidthC

对于滤波后的重建色度样本alfPictur[x][y]的导出,当前色度编码树块内的各个重建色度样本recPicture[x][y](其中x,y=0…ctbSizeC-1)被如下滤波:

给定色度样本阵列recPicture内的各个相应色度样本(x,y)的位置(hx,vy)导出如下:

hx=Clip3(0,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x)

vy=Clip3(0,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y)

变量altIdx按照如下导出:

altIdx=alf_ctb_filter_alt_idx[compIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize][0]

变量总和按照如下导出:

sum=AlfCoeffC[altIdx][0]*(recPicture[hx,vy+2]+recPicture[hx,vy-2])+AlfCoeffC[altIdx][1]*(recPicture[hx+1,vy+1]+recPicture[hx-1,vy-1])+AlfCoeffC[altIdx][2]*(recPicture[hx,vy+1]+recPicture[hx,vy-1])+AlfCoeffC[altIdx][3]*(recPicture[hx-1,vy+1]+recPicture[hx+1,vy-1])+AlfCoeffC[altIdx][4]*(recPicture[hx+2,vy]+recPicture[hx-2,vy])+AlfCoeffC[altIdx][5]*(recPicture[hx+1,vy]+recPicture[hx-1,vy])+AlfCoeffC[altIdx][6]*recPicture[hx,vy]

sum=(sum+64)>>7

修改后的滤波重建色度图片样本alfPicture[xCtbC+x][yCtbC+y]按照如下导出:

alfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepthC)-1,sum)

自适应环路滤波器数据优化

自适应环路滤波器数据中的一些可以使用不同优化技术来优化。根据修改先前描述的图17的流程图的图18的流程图所说明的实施例,编码处理包括对可用于编码/解码图像(部分)的亮度滤波器集合替代物或色度滤波器替代物的数量的这种优化。步骤1801和1802与图17中相同,因此在图18中省略。

可以通过针对各个成分类型(即,针对亮度成分的亮度滤波器集合替代物或针对两个色度成分的色度滤波器替代物)进行以下步骤来实现对可用于图像(部分)的编码/解码的亮度滤波器集合替代物或色度滤波器替代物的数量的这种优化。

1)编码器以与所测试的亮度滤波器集合替代物2001或色度滤波器替代物2002的(导出的)最大数量相等的亮度滤波器集合替代物或色度滤波器替代物的数量开始。

2)将各个亮度滤波器集合替代物2003a或各个色度滤波器替代物2003b与CTB的优选不同的/不相交的子集相关联,以利用其相关联的CTB子集的样本对各个亮度滤波器集合替代物或色度滤波器替代物进行第一滤波器优化(该第一滤波器优化对应于步骤3的第一迭代,即以下的“3.a.i)和3.a.ii)”)。2003a包括将给定亮度CTB的各个类索引与给定亮度滤波器集合替代物索引相关联,并且2003b包括将色度CTB与给定色度滤波器替代物索引相关联。在该步骤中,经处理的成分的所有“alf_ctb_flag”标志被设置为1。

3)然后,编码器循环/重复以下步骤直到实现给定数量的迭代(2008或2016)为止。

3.a)使用其相关联的CTB的样本值(或者先前在1802中基于它们计算的统计)导出针对各个亮度滤波器集合替代物或色度滤波器替代物的新的(优化的)滤波器(这对应于优化和设置:针对亮度的各个亮度滤波器集合替代物altIdx的“NumAlfFilters[altIdx]”和AlfCoeffL[altIdx]的值,或者针对色度的各个色度滤波器替代物altIdx的AlfCoeffC[altIdx]的值)。这个推导步骤可以进一步分为2个子步骤:

3.a.i)以与1804或1812中类似的方式组合启用的CTB 2004或2012的协方差和互协方差统计。但是,在2004中,代替针对每个类获得一个矩阵,而是收集统计以针对每个类并且针对每个亮度滤波器集合替代物索引(altIdx)获得一个矩阵,即,针对每个亮度滤波器集合替代物获得“针对每个类的一个矩阵”。对于具有索引classIdx和给定altIdx的给定类,通过计算/聚合/求和在类与给定altIdx相关联(即,“alf_ctb_filter_alt_idx[0][x][y][classIdx]”=altIdx)的各个有效/启用CTB(即,“alf_ctb_flag[0]”=1)中针对给定类所获得的统计,来获得矩阵。在2012中,代替针对两个色度成分获得一个矩阵,而是收集统计以针对每个色度滤波器替代物索引(altIdx)获得一个矩阵,即,针对各个色度滤波器替代物获得“一个矩阵”。对于给定altIdx,通过计算/聚合/求和针对与给定altIdx相关联(即,对于Cb成分,“alf_ctb_filter_alt_idx[1][x][y][0]”=altIdx,或者对于Cr成分,“alf_ctb_filter_alt_idx[2][x][y][0]”=altIdx)的各个有效/启用色度CTB(即,对于Cb成分,“alf_ctb_flag[1]”=1,或者对于Cr成分,“alf_ctb_flag[2]”=1)所获得的统计,来获得矩阵。

3.a.ii)优化各个亮度滤波器集合替代物或色度滤波器替代物的滤波器。对于具有索引altIdx的各个色度滤波器替代物,这是在2013中使用在3.a.i)中针对该altIdx获得的矩阵以与在1813中仅针对一个滤波器进行的方式类似的方式进行的。因此,获得针对每个altIdx的一个滤波器。对于亮度成分,迭代地获得针对各个亮度滤波器集合替代物的滤波器,步骤2020示出用于继续/终止迭代处理的条件的示例。对于亮度滤波器集合替代物的各个索引,即,altIdx或“亮度滤波器集合替代物索引”,在2005找到用于合并针对该亮度滤波器集合替代物索引altIdx的亮度类的组合,并且在2006找到用于对亮度滤波器集合替代物的亮度滤波器进行编码的最佳R/D成本折衷。例如,使用图8-e中所示的语法元素,可以说,在altIdx=0的情况下,2005和2006类似于1805和1806,其使用在步骤3.a.i)中获得的针对各个类和altIdx=0的矩阵来获得第一优化亮度滤波器集合替代物(“滤波器替代物0系数表”)。该第一经优化亮度滤波器集合替代物包括经优化的多个滤波器和经优化的合并表(即,将各个类索引关联到该第一优化亮度滤波器集合替代物中的滤波器索引的查找表)。对于altIdx>0(即,直到所测试的亮度滤波器集合替代物的(导出的)最大数量2001减一),合并步骤2005对应于1805,1805已经被修改以使得代替从“用信号通知的亮度滤波器的最大数量”滤波器和将各个类与不同的滤波器索引相关联的合并表开始,而是从“与针对前一altIdx(即,altIdx-1)获得的经优化的滤波器数量相等的滤波器数量”的滤波器和从在2006中针对altIdx-1获得的经优化合并表初始化的合并表(即,将各个类索引与亮度滤波器集合替代物altIdx中的滤波器索引相关联的查找表)开始。然后步骤2006允许获得“经优化亮度滤波器集合替代物altIdx”,其包括经优化的多个滤波器和经优化的合并表(即,将各个类索引与该“经优化的亮度滤波器集合替代物altIdx”中的滤波器索引相关联的查找表)。

3.b)优化“alf_ctb_flag”标志(即,ALF亮度/Cr/Cb启用标志)的状态,同时还将各个启用CTB与针对各个类/滤波器索引2007或色度滤波器替代物2014的最佳进行亮度滤波器集合替代物相关联(其对应于针对给定成分设置“alf_ctb_filter_alt_idx”中的值,参见表3和图16-c)。

通过使用各个CTB的统计来进行步骤2007。在1802中获得这些统计,以针对与给定亮度滤波器集合替代物索引(altIdx)的给定滤波器(索引)相关联的各个类,计算/估计当对属于该类的CTB的样本使用该给定亮度滤波器集合替代物中的给定滤波器时该类所经历的失真。还估计在CTU数据中用信号通知altIdx的速率。对于这里描述的第一实施例或其变型的给定CTB和给定滤波器索引(或对于这里描述的第二实施例或其变型的给定CTB和给定类索引),通过最小化从所估计的失真和速率获得的R/D成本拉格朗日函数,针对各个给定亮度滤波器集合替代物索引(altIdx),可以确定/选择/选取最佳亮度滤波器集合替代物以用于第一实施例或其变型的给定滤波器索引(或用于第二实施例或其变型的给定类索引)。

针对色度成分的步骤2014更简单,因为在该实施例中(并且实际上在VTM-3.0的ALF滤波中)没有针对色度CTB使用分类。这是通过使用在1802中获得的各个CTB的统计来进行的,以针对各个给定色度成分和各个色度滤波器替代物索引(altIdx),计算/估计当对该CTB的样本使用该色度滤波器替代物时(即,当使用由色度滤波器替代物索引所标识的滤波器时,因为在本实施例中色度滤波器替代物中仅有一个滤波器)所经历的失真。还估计CTU数据中用信号通知altIdx的速率。对于给定CTB和给定色度成分,通过最小化从估计的失真和速率所获得的R/D成本拉格朗日函数,针对各个给定色度滤波器替代物索引(altIdx),可以确定/选择/选取最佳色度滤波器替代物以用于该色度成分。

该编码器迭代循环/重复进行以下优化:“alf_ctb_flag”标志(即,ALF亮度/Cr/Cb启用标志)的状态的优化、与亮度滤波器集合替代物或色度滤波器替代物(针对给定成分的“alf_ctb_filter_alt_idx”中的值)的关联的优化、以及亮度滤波器集合替代物或色度滤波器替代物(以及因此它们的滤波器系数)整体的优化。通过重复(循环)步骤3.a)和3.b),“alf_ctb_flag”标志的状态朝向特定状态稳定,而与滤波器(集合)替代物的关联也朝向特定关联稳定,并且滤波器(集合)替代物也朝向具有特定滤波器系数的滤波器(即,算法收敛到这些优化参数的优化解)稳定。与优化“alf_ctb_flag”的状态以及一个亮度滤波器集合或一个色度滤波器的滤波器系数所需的迭代1808或1816的次数(例如,如在VTM3.0中那样)相比,用于达到该收敛的循环迭代2008或2016的次数可能增加。这是因为也同时(即,在相同优化过程期间)尝试优化亮度滤波器集合替代物或色度滤波器替代物选择(即“alf_ctb_filter_alt_idx”)以及多于一个的滤波器(集合)替代物。在变型中,该增加与所测试的滤波器(集合)替代物的数量成比例,因此当所测试的滤波器(集合)的数量等于1时,不存在增加。

4)编码器通过重复步骤2和3逐渐地减少亮度滤波器集合替代物2001或色度滤波器替代物2002的数量,直到滤波器(集合)替代物的数量达到一。应当理解,当所测试的亮度滤波器集合替代物或色度滤波器替代物的最大数量是1时,仍然可以进行该优化处理以优化其它优化参数,即,“alf_ctb_flag”标志的状态以及该一个滤波器(集合)替代物的滤波器的滤波器系数。在优化处理期间,编码器针对各个中间优化参数(例如,针对各个亮度滤波器集合替代物或色度滤波器替代物以及在步骤2)或3)中评估的“alf_ctb_flag”标志的状态)比较优化准则(速率/失真折衷的拉格朗日评估)的结果,然后选择ALF参数的最佳值,包括最佳亮度滤波器集合替代物或色度滤波器替代物数量2009或2019(即,具有最佳速率/失真折衷的这些滤波器集合替代物和/或滤波器替代物的数量)。例如,使用“alf_luma_num_alts_minus1”或“alf_chroma_num_alts_minus1”语法元素(表4和图16-c所示)用信号通知最佳(即经优化)亮度滤波器集合替代物或色度滤波器替代物数量。这些语法元素可以用截断的二进制二值化来编码,该截断的二进制二值化将最大值(maxVal)取为参数,该最大值(maxVal)被设置为所允许的亮度滤波器集合替代物或色度滤波器替代物的最大数量(即,滤波器(集合)替代物可能性的绝对最大数量),使得最大大小为已知的,并且因此可以相应地解析/解码语法元素。

应理解,上述优化步骤可以在与优化ALF滤波器(集合)替代物信号通知的滤波器系数的级别相同的级别(例如,片/区块组/整个图像(部分)级别)进行。应理解,可以对各个片、各个区块组、各个视频帧、视频序列的一部分或实际上整个视频序列进行上述优化步骤。

本发明实施例的实现

一个或多个前述实施例/变型可以以进行一个或多个前述实施例/变型的方法步骤的编码器或解码器的形式来实现。下面的实施例示出这种实现。

例如,根据前述任何实施例/变型的自适应环路滤波器可以用于由图10中的编码器进行的后滤波9415或由图11中的解码器进行的后滤波9567。

图10示出根据本发明实施例的编码器的框图。编码器由连接的模块表示,各个模块适于例如以由装置的中央处理单元(CPU)执行的编程指令的形式实现根据本发明的一个或多个实施例/变型的实现对图像序列的图像进行编码的至少一个实施例的方法的至少一个相应步骤。

由编码器9400接收数字图像原始序列i0至in 9401作为输入。各个数字图像由样本集合(有时也称为像素(在下文中,它们称为像素))表示。在实现编码处理之后,位流9410由编码器9400输出。位流9410包括诸如片等的多个编码单元或图像部分的数据,各个片包括用于发送用于对片进行编码的编码参数的编码值的片头部和包括编码视频数据的片主体。

由模块9402将输入数字图像i0至in 9401分割成像素块。块与图像部分相对应并且可以是可变大小(例如,4×4、8×8、16×16、32×32、64×64、128×128个像素并且也可以考虑若干矩形块大小)。针对各个输入块选择编码模式。提供了两类编码模式:基于空间预测编码的编码模式(帧内预测)和基于时间预测的编码模式(帧间编码、合并、跳过)。测试可能的编码模式。

模块9403实现帧内预测处理,其中由从要编码的给定块的邻近的像素计算的预测子来预测所述要编码的块。如果选择了帧内编码,则对所选择的帧内预测子的指示以及给定块与其预测子之间的差进行编码以提供残差。

时间预测由运动估计模块9404和运动补偿模块9405实现。首先,从参考图像集合9416中选择参考图像,并且由运动估计模块9404选择参考图像的一部分(也称为参考区域或图像部分,其是与要编码的给定块最接近的区域(在像素值相似度方面最接近))。然后运动补偿模块9405使用所选择的区域预测要编码的块。由运动补偿模块9405计算所选择的参考区域和给定块之间的差(也称为残差块/数据)。使用运动信息(例如,运动矢量)来指示所选择的参考区域。

因此,在这两种情况下(空间和时间预测),当不处于SKIP(跳过)模式时,通过从原始块减去预测子来计算残差。

在由模块9403实现的帧内预测中,预测方向被编码。在由模块9404、9405、9416、9418、9417实现的帧间预测中,至少一个运动矢量或用于标识这种运动矢量的信息(数据)被编码以用于时间预测。如果选择了帧间预测,则对与运动矢量和残差块相关的信息进行编码。为了进一步降低位率,假设运动是均匀的,通过相对于运动矢量预测子的差来编码运动矢量。通过运动矢量预测和编码模块9417从运动矢量场9418获得来自运动信息预测子候选集合的运动矢量预测子。

编码器9400还包括选择模块9406,该选择模块9406用于通过应用诸如率失真准则等的编码成本准则来选择编码模式。为了进一步减少冗余,变换模块9407对残差块应用变换(诸如DCT等),然后所获得的变换数据由量化模块9408进行量化,并由熵编码模块9409进行熵编码。最后,当不处于SKIP模式并且所选择的编码模式需要对残差块进行编码时,将正被编码的当前块的编码残差块插入到位流9410中。

编码器9400还进行编码图像的解码,以生成用于后续图像的运动估计的参考图像(例如,参考图像/图片9416中的参考图像)。这使得接收位流的编码器和解码器能够具有相同的参考帧(例如,使用重建图像或重建图像部分)。逆量化(“去量化”)模块9411进行量化数据的逆量化(“去量化”),然后由逆变换模块9412进行逆变换。帧内预测模块9413使用预测信息来确定针对给定块使用哪个预测子,并且运动补偿模块9414实际上将由模块9412获得的残差添加到从参考图像集合9416获得的参考区域。然后,由模块9415应用后滤波来对像素的重建帧(图像或图像部分)进行滤波,以获得参考图像集合9416的另一参考图像。

图11示出根据本发明实施例的可用于从编码器接收数据的解码器9560的框图。解码器由所连接的模块表示,各个模块适于例如以由装置的CPU执行的编程指令的形式实现由解码器9560实现的方法的相应步骤。

解码器9560接收位流9561,位流9561包括编码单元(例如,对应于图像部分、块或编码单元的数据),各个编码单元由包含与编码参数有关的信息的头部和包含编码视频数据的主体构成。如关于图10所说明的,针对给定图像部分(例如,块或CU)在预定数量的位上对编码视频数据进行熵编码,并且对运动信息(例如,运动矢量预测子的索引)进行编码。所接收的编码视频数据由模块9562进行熵解码。残差数据然后由模块9563去量化,然后由模块9564应用逆变换以获得像素值。

指示编码模式的模式数据也被熵解码,并且基于该模式,对图像数据的编码块(单元/集合/组)进行帧内类型解码或帧间类型解码。在帧内模式的情况下,帧内预测模块9565基于位流中指定的帧内预测模式来确定帧内预测子(例如,可以使用位流中提供的数据来确定帧内预测模式)。如果模式是帧间模式,则从位流提取/获得运动预测信息,以找到(标识)编码器使用的参考区域。例如,运动预测信息包括参考帧索引和运动矢量残差。通过运动矢量解码模块9570将运动矢量预测子添加到运动矢量残差以获得运动矢量。

运动矢量解码模块9570对通过运动预测编码的各个图像部分(例如,当前块或CU)应用运动矢量解码。一旦获得了当前块的运动矢量预测子的索引,则与图像部分(例如,当前块或CU)相关联的运动矢量的实际值可以被解码,并且用于通过模块9566来应用运动补偿。从参考图像集合9568提取/获得由解码运动矢量指示的参考图像部分,使得模块9566可以进行运动补偿。用解码的运动矢量更新运动矢量场数据9571,以用于预测随后解码的运动矢量。

最后得到解码块。在适当的情况下,由后滤波模块9567应用后滤波。最终获得并由解码器9560提供解码视频信号9569。

图12例示可以实现本发明的一个或多个实施例的数据通信系统。数据通信系统包括传输装置(在这种情况下是服务器9201),其可操作以经由数据通信网络9200将数据流的数据包传输至接收装置(在这种情况下是客户端终端9202)。数据通信网络9200可以是广域网(WAN)或局域网(LAN)。这种网络可以是例如无线网络(Wifi/802.11a或b或g)、以太网网络、互联网网络或由若干不同网络组成的混合网络。在本发明的特定实施例中,数据通信系统可以是数字电视广播系统,其中服务器9201将相同的数据内容发送到多个客户端。由服务器9201提供的数据流9204可以由表示视频和音频数据的多媒体数据组成。在本发明的一些实施例中,音频和视频数据流可以分别由服务器9201使用麦克风和照相机来捕获。在一些实施例中,数据流可以存储在服务器9201上或由服务器9201从其它数据提供商接收,或在服务器9201处生成。服务器9201设置有用于对视频和音频流进行编码的编码器,特别是用以提供用于传输的压缩位流,该压缩位流是作为编码器的输入所呈现的数据的更紧凑表示。为了获得更好的传输数据的质量与传输数据的量的比率,可以例如根据高效视频编码(HEVC)格式或H.264/高级视频编码(AVC)格式或多用途视频编码(VVC)格式来压缩视频数据。客户端9202接收所传输的位流,并且解码重建的位流,以在显示装置上再现视频图像和利用扬声器再现音频数据。

尽管在该实施例中考虑了流式传输场景,但将认识到,在本发明的一些实施例中,可以使用例如介质存储装置(诸如光盘等)来进行编码器与解码器之间的数据通信。在本发明的一个或多个实施例中,视频图像可以与表示要应用到图像的重建像素的补偿偏移的数据一同传输,以在最终图像中提供经滤波的像素。

图13示意性地例示被配置为实现本发明的至少一个实施例/变型的处理装置9300。处理装置9300可以是诸如微计算机、工作站、用户终端或轻型便携式装置等的装置。装置/设备9300包括通信总线9313,其连接到:

-表示为CPU的中央处理单元9311,诸如微处理器等;

-表示为ROM的只读存储器9307,其用于存储操作装置9300和/或实现本发明的计算机程序/指令;

-用于存储本发明实施例/变型的方法的可执行代码的表示为RAM的随机存取存储器9312,以及适于记录变量和参数的寄存器,该变量和参数是根据本发明实施例/变型实现对数字图像序列进行编码的方法和/或对位流进行解码的方法所需的;以及

-连接至通信网络9303的通信接口9302,通过该通信接口传输或接收要处理的数字数据。

可选地,设备9300还可以包括以下组件:

-诸如硬盘等的数据存储部件9304,其用于存储实现本发明的一个或多个实施例/变型的方法的计算机程序以及在实现本发明的一个或多个实施例/变型期间所使用或产生的数据;

-用于盘9306(例如存储介质)的盘驱动器9305,该盘驱动器9305适于从盘9306读取数据或将数据写入所述盘9306,或者;

-屏幕9309,其用于借助于键盘9310、触摸屏或任何其它指示/输入装置来显示数据和/或用作与用户交互的图形界面。

设备9300可以连接到诸如数字照相机9320或麦克风9308等的各种外围设备,其各自连接到输入/输出卡(未示出)以向设备9300提供多媒体数据。

通信总线提供设备9300中所包括的或连接到设备9300的各种元素之间的通信和互操作性。总线的表示不是限制性的,并且特别地,中央处理单元9311可操作地将指令直接或者借助于设备9300的其它元素通信到设备9300的任何元素。

盘9306可以由诸如可重写或不可重写的致密盘(CD-ROM)、ZIP盘或存储卡等的任何信息介质代替,并且一般而言,由微计算机或处理器可以进行读取的信息存储部件代替,该盘9306集成到或不集成到设备中、可能可移动并且适于存储其执行使得能够实现根据本发明的对数字图像序列进行编码的方法和/或对位流进行解码的方法的一个或多个程序。

可执行代码可以存储在只读存储器9306中、硬盘9304上或可移动数字介质(诸如,例如如前述的盘9306等)上。根据一变型,程序的可执行代码可以经由接口9302借助于通信网络9303来接收,以在执行之前存储在设备9300的存储部件之一(例如硬盘9304)中。

中央处理单元9311适于控制和指导执行根据本发明的一个或多个程序的指令或软件代码的部分、存储在上述存储部件之一中的指令的执行。在通电时,存储在非易失性存储器中(例如,在硬盘9304、盘9306上或在只读存储器9307中)的一个或多个程序被传递到随机存取存储器9312中(其然后包含一个或多个程序的可执行代码)以及用于存储实现本发明所必需的变量和参数的寄存器。

在该实施例中,设备是使用软件来实现本发明的可编程设备。然而,可替代地,本发明可以以硬件(例如,以专用集成电路或ASIC的形式)来实现。

本发明实施例的实现

本发明实施例的实现

还应理解,根据本发明的其它实施例,在诸如计算机、移动电话(蜂窝电话)、平板或能够向用户提供/显示内容的任何其它类型的装置(例如,显示设备)等的用户终端中提供根据上述实施例/变型的解码器。根据又一实施例,在图像捕获设备中提供根据上述实施例/变型的编码器,该图像捕获设备还包括用于捕获和提供内容以供编码器进行编码的照相机、摄像机或网络照相机(例如,闭路电视或视频监视照相机)。以下参见图14和15提供两个这样的实施例。

图14是例示包括网络照相机9452和客户端设备9454的网络照相机系统9450的图。

网络照相机9452包括摄像单元9456、编码单元9458、通信单元9460和控制单元9462。网络照相机9452和客户端设备9454经由网络9200相互连接以能够彼此通信。摄像单元9456包括镜头和图像传感器(例如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)),并捕获对象的图像并基于该图像生成图像数据。该图像可以是静止图像或视频图像。摄像单元还可以包括分别适于缩放或平摇(光学地或数字地)的缩放部件和/或平摇部件。编码单元9458通过使用在前述实施例/变型中说明的所述编码方法来对图像数据进行编码。编码单元9458使用在前述实施例/变型中说明的编码方法中的至少之一。对于其它实例,编码单元9458可以使用在前述实施例/变型中说明的编码方法的组合。

网络照相机9452的通信单元9460将由编码单元9458编码的经编码的图像数据传输至客户端设备9454。此外,通信单元9460还可以接收来自客户端设备9454的命令。命令包括用于设置用于编码单元9458的编码的参数的命令。控制单元9462根据通信单元9460接收到的命令来控制网络照相机9452中的其它单元。

客户端设备9454包括通信单元2114、解码单元2116和控制单元9468。客户端设备9454的通信单元2118可以向网络照相机9452传输命令。此外,客户端设备9454的通信单元2118从网络照相机9452接收经编码的图像数据。解码单元9466通过使用在前述实施例/变型中的一个或多个中说明的所述解码方法来对经编码的图像数据进行解码。对于其它实例,解码单元9466可以使用在前述实施例/变型中说明的解码方法的组合。客户端设备9454的控制单元9468根据由通信单元2114接收的用户操作或命令来控制客户端设备9454中的其它单元。客户端设备9454的控制单元9468还可以控制显示设备9470以显示由解码单元9466解码的图像。

客户端设备9454的控制单元9468还控制显示设备9470以显示用于指定网络照相机9452的参数(例如用于编码单元9458的编码的参数)的值的GUI(图形用户界面)。客户端设备9454的控制单元9468还可以根据对显示设备9470所显示的GUI的用户操作输入来控制客户端设备9454中的其它单元。客户端设备9454的控制单元9468还可以根据对显示设备9470所显示的GUI的用户操作输入来控制客户端设备9454的通信单元9464,以将用于指定网络照相机9452的参数的值的命令传输至网络照相机9452。

图15是例示智能电话9500的图。智能电话9500包括通信单元9502、解码/编码单元9504、控制单元9506和显示单元9508。

通信单元9502经由网络接收经编码的图像数据。解码/编码单元9504对通信单元9502接收到的经编码的图像数据进行解码。解码单元9504通过使用在前述实施例/变型中的一个或多个中说明的所述解码方法来对经编码的图像数据进行解码。解码/编码单元9504还可以使用在前述实施例/变型中说明的编码或解码方法中的至少之一。对于其它实例,解码/编码单元9504可以使用在前述实施例/变型中说明的解码或编码方法的组合。

控制单元9506根据通信单元9502接收到的用户操作或命令控制智能电话9500中的其它单元。例如,控制单元9506控制显示单元9508以显示由解码/编码单元9504解码的图像。

智能电话还可以包括用于记录图像或视频的图像记录装置9510(例如,数字照相机和相关联的电路)。这样的所记录图像或视频可以在控制单元9506的指令下由解码/编码单元9504进行编码。智能电话还可以包括适于感测移动装置的定向的传感器9512。这样的传感器可以包括加速度计、陀螺仪、罗盘、全球定位(GPS)单元或类似的位置传感器。这样的传感器2212可以确定智能电话是否改变定向,并且在编码视频流时可以使用这样的信息。

虽然已经参考实施例及其变型描述了本发明,但是应当理解,本发明不限于所公开的实施例/变型。本领域技术人员将理解,在不脱离所附权利要求限定的本发明的范围的情况下,可以进行各种改变和修改。本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征、和/或所公开的任何方法或处理的所有步骤,可以以任何组合进行组合,除了这样的特征和/或步骤中的至少一些相互排斥的组合之外。除非另外明确说明,否则本说明书(包括任何所附权利要求、摘要和附图)中所公开的各个特征可以由用于相同、等同或相似目的的替代特征代替。因此,除非另有明确说明,否则所公开的各个特征仅为通用系列等效或类似特征的一个示例。

还应理解,上述比较、确定、评估、选择、执行、进行或考虑的任何结果(例如,在编码或滤波处理期间作出的选择)可以在位流中的数据(例如,指示结果的标志或信息)中指示或可从位流中的数据确定/推断,使得在处理中可以使用所指示或确定/推断的结果,而不是例如在解码处理期间实际进行所述比较、确定、评估、选择、执行、进行或考虑。应理解,当使用“表”或“查找表”时,也可以使用诸如数组等的其它数据类型来进行相同的功能,只要该数据类型能够进行相同的功能(例如,表示不同元素之间的关系/映射)即可。

在权利要求中,词语“包括”不排除其它元素或步骤,并且不定冠词“a”或“an”不排除多个。仅仅在相互不同的从属权利要求中记载不同特征的事实并不指示这些特征的组合不能被有利地使用。权利要求中出现的附图标记仅作为说明,并且不应对权利要求的范围产生限定作用。

在前述实施例/变型中,可以以硬件、软件、固件或其任何组合来实现所描述的功能。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质而发送,并且可以由基于硬件的处理单元执行。

计算机可读介质可以包括计算机可读存储介质,其与诸如数据存储介质等的有形介质或者包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质相对应。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或载波等的通信介质。数据存储介质可以是可由一个或多个计算机或者一个或多个处理器访问以检索用于实现本发明中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储装置、闪速存储器或可以用于以指令或数据结构的形式存储期望程序代码并可以由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(DSL)或无线技术(诸如红外、无线电和微波等)从网站、服务器或其它远程源发送指令,则同轴线缆、光纤线缆、双绞线、DSL或无线技术(诸如红外、无线电和微波等)包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬态介质,而是针对非瞬态的有形存储介质。这里使用的盘(disk)和碟(disc)包括致密盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中盘通常以磁性方式复制数据,而碟则通过激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。

指令可以由诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路等的一个或多个处理器执行。因此,如这里使用的术语“处理器”可以指任何前述结构或适合于实现这里所述技术的任何其它结构。另外,在一些方面,这里描述的功能可以在被配置为编码和解码的专用硬件和/或软件模块内提供,或结合在组合编解码器中。此外,该技术可以在一个或多个电路或逻辑元件中完全实现。

98页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理装置、信息处理方法、再现处理装置和再现处理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类