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

用于视频译码中去块效应滤波器的装置和方法

文献发布时间:2023-06-19 19:30:30


用于视频译码中去块效应滤波器的装置和方法

本申请是分案申请,原申请的申请号是201980067365.7,原申请日是2019年10月14日,原申请的全部内容通过引用结合在本申请中。

技术领域

本发明实施例涉及图像处理领域,具体涉及视频图像译码领域。更具体地,本发明涉及一种用于对重建视频图像进行滤波的去块效应滤波装置和方法,以及包括这种去块效应滤波装置的编码装置和解码装置。

背景技术

视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天、视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。

自从1990年H.261标准中基于块的混合视频译码方法发展以来,新的视频译码技术和工具相继出现,为新的视频译码标准奠定了基础。与前代标准相比,大多数视频译码标准的目标之一是在保证图像质量的情况下,降低码率。其它视频译码标准包括MPEG-1视频、MPEG-2视频、ITU-T H.262/MPEG-2、ITU-T H.263、ITU-T H.264/MPEG-4,第10部分、高级视频译码(Advanced Video Coding,AVC)、ITU-T H.265/高效视频译码(High EfficiencyVideo Coding,HEVC)、ITU-T H.266/通用视频译码(Versatile Video Coding,VVC)以及扩展,例如这些标准的可扩展性和/或三维(three-dimensional,3D)扩展。

基于块的图像译码方案有一个共同问题,即沿块边缘会出现边缘伪影。这些伪影是译码块的独立译码造成的。这些边缘伪影通常很容易被用户看到。基于块的图像译码的目标是将边缘伪影减少到可见性阈值以下。这通过进行去块效应滤波来实现。在解码端进行这种去块效应滤波以便去除可见的边缘伪影,在编码端也进行这种去块效应滤波,以便完全防止将边缘伪影编码到图像中。

因此,需要一种改进的环内去块效应滤波装置和方法,以更高效地去除块伪影。

发明内容

鉴于上述挑战,本发明旨在改进传统的去块效应滤波。本发明的目的在于提供一种去块效应滤波装置、编码器、解码器以及对应方法,它们能够利用可用的行缓冲区进行去块效应滤波。此外,去块效应滤波应该高效。

本发明的实施例由独立权利要求的特征定义,并且实施例的其它有利实现方式由从属权利要求的特征定义。

具体实施例在所附独立权利要求中概述,其它实施例在从属权利要求中概述。

根据本发明的第一方面,提供了一种用于图像编码器和/或图像解码器中的设备,用于对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一图像块和第二图像块之间的水平块边缘,

其中,所述第一图像块沿垂直方向具有块大小SA;

其中,所述第二图像块沿所述垂直方向具有块大小SB,所述垂直方向垂直于所述水平块边缘;

其中,所述设备包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述第一图像块的最多MA个像素点的值修改为第一滤波输出值(或第一滤波输出值集合),其中,所述最多MA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-将所述第二图像块的最多MB个像素点的值修改为第二滤波输出值(或第二滤波输出值集合),其中,所述最多MB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,所述第一图像块为所述CTB边界上方的块,所述第二图像块为所述CTB边界下方的块;

其中,MA≠MB(如MA

行缓冲区大小是需要存储在存储器中以进行基于CTU的解码(例如,硬件解码器)的像素量。在一个示例中,亮度块(或亮度分量)的行缓冲区大小为4行,色度块(或色度分量)的行缓冲区大小为2行。

可以理解的是,MA可以理解为第一图像块的最大滤波器长度,MB可以理解为第二图像块的最大滤波器长度。

第二图像块为当前块,第一图像块P为当前块的邻块。相应地,在第二图像块中,对于垂直于水平块边缘并与水平块边缘相邻的每一列输入像素点,修改最多MB个像素点以生成输出滤波像素点;在第一图像块中,对于垂直于水平块边缘并与水平块边缘相邻的每一列输入像素点,修改最多MA个像素点以生成输出滤波像素点。在一个示例中,SA和SB等于或大于32。在另一个示例中,SA(例如,第一图像块的高度)等于或大于16,SB(例如,第二图像块的高度)等于或大于32。在另一个示例中,SA或SB(例如,相应图像块的高度)等于或大于8。需要说明的是,SA为偶整数2

需要说明的是,在本发明中使用的术语“块”、“译码块”或“图像块”可适用于变换单元(transform unit,TU)、预测单元(prediction unit,PU)、译码单元(coding unit,CU)等。在VVC中,除了使用TU分块或子块变换(sub block transform,SBT)的少数场景之外,通常变换单元和译码单元大多是对齐的。可以理解的是,在本发明中,术语“块/图像块/译码块/变换块”和“块大小/变换块大小”可以互换。在本发明中,术语“像素点(sample)/像素(pixel)”可以互换。

本发明适用于亮度水平边缘。对于亮度水平边缘,检查第一或第二译码块(第一或第二图像块为亮度块)的高度是否等于或大于32(例如32或64)。对于亮度水平边缘,考虑亮度块的高度,对于高度≥32的亮度块,应用长抽头滤波器(即长滤波器)。

本发明也适用于色度水平边缘。对于色度水平边缘,检查第一或第二译码块(第一或第二图像块为色度块)的高度是否等于或大于8个像素点(例如8或16)。对于色度水平边缘,考虑色度块的高度,对于高度≥8的色度块,应用长抽头滤波器(即长滤波器)。

在本发明中,响应于确定水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠,所述去块效应滤波器是如下滤波器:在水平块边缘(CU边缘或TU边缘)的一侧(即底侧)修改MB个像素点,而在水平块边缘(CU边缘或TU边缘)的另一侧(即顶侧)修改MA个像素点,其中,MA≠MB,具体为MA

可以理解的是,在本发明中,去块效应滤波器可以是非对称滤波器。此外,在本发明中,术语“长抽头滤波器”、“较长抽头滤波器”、“非对称抽头滤波器”、“非对称长滤波器”或“非对称滤波器”可以互换。

因此,提供了一种改进的环内去块效应滤波装置,可以更高效地去除块伪影。因此,可以用不同的方式处理水平块边缘的两侧,即,可以根据可用的行缓冲区调整滤波决策和滤波,从而获得最佳的主观质量。

根据所述第一方面,在所述设备的一种可能实现方式中,所述去块效应滤波器还用于:在所述水平块边缘与所述译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与所述CTB边界重叠)),

-使用所述第一图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-使用所述第二图像块的最多DB个像素点的值作为第二滤波决策值,其中,所述最多DB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,DA≠DB(DA

在本发明中,响应于确定水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠,所述去块效应滤波器也是如下滤波器:在水平块边缘的一侧(即顶侧)使用DA个像素点用于滤波决策,并在水平块边缘的另一侧(即底侧)使用DB个像素点用于滤波决策,其中,DA≠DB,具体为DA

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,如果所述行缓冲区的行缓冲区大小为X行,则对于所述第一图像块,MA=X–1,其中,X是正整数。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,如果所述行缓冲区的行缓冲区大小为X行,则对于所述第一图像块,DA=X且MA=X–1,其中,X是正整数。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块时,所述行缓冲区的行缓冲大小为2行,或者,

当所述第一图像块和所述第二图像块为亮度块时,所述行缓冲区的行缓冲区大小为4行。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,

则所述第一图像块的像素点p

第一图像块的像素点p

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,所述第一图像块的像素点p

由于填充的像素点可以仅作为可用像素点处理,因此使得无需改变原始的滤波决策和滤波过程,从而尽量不增加计算复杂度,特别是在硬件方面。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,与所述第一图像块的像素点p

例如,像素点p

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述行缓冲区的行缓冲区大小为2行时,像素点p

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述行缓冲区的行缓冲区大小为2行时,像素点p

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述第一图像块和所述第二图像块均为亮度块且SB和SA等于或大于32时,MB=7且MA=3;或者,

当所述第一图像块和所述第二图像块均为亮度块且SB等于或大于32而SA等于或大于16时,MB=7且MA=3。

可以理解的是,SA可以与SB不同,或者SA与SB相同。换句话说,SB和SA可以是相同值,或SB和SA可以是不同值,例如SA为32,SB为64。例如,SA为16,SB为32。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述第一图像块和所述第二图像块均为亮度块且SB和SA等于或大于32时,DB=8且DA=4;或者,

当所述第一图像块和所述第二图像块均为亮度块且SB等于或大于32而SA等于或大于16时,DB=8且DA=4。

可以理解的是,SA可以与SB不同,或者SA与SB相同。换句话说,SB和SA可以是相同值,或SB和SA可以是不同值,例如SA为32,SB为64。例如,SA为16,SB为32。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块且SA和SB等于或大于8时,MB=3且MA=1。

可以理解的是,SA可以与SB不同,或者SA与SB相同。换句话说,SB和SA可以是相同值,或SB和SA可以是不同值,例如SA为8,SB为8。例如,SA为8,SB为16。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块且SB和SA等于或大于8时,DB=4且DA=2。

可以理解的是,SA可以与SB不同,或者SA与SB相同。换句话说,SB和SA可以是相同值,或SB和SA可以是不同值,例如SA为8,SB为8。例如,SA为8,SB为16。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,所述第二图像块为当前图像块,所述第一图像块为与所述当前图像块相邻的相邻图像块。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,所述第一图像块的像素点p

类似地,第二图像块的像素点q

具体地,p

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块时,所述去块效应滤波器用于确定所述水平块边缘是否与色度CTB的水平边界重叠;或者,

当所述第一图像块和第二图像块为亮度块时,所述去块效应滤波器用于确定所述水平块边缘是否与亮度CTB的水平边界重叠。

根据所述第一方面或所述第一方面的任一上述实现方式,在所述设备的一种可能实现方式中,所述去块效应滤波器是较长抽头滤波器、非对称滤波器、非对称抽头滤波器。

根据本发明的第二方面,提供了一种用于图像编码器和/或图像解码器中的设备,用于对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一图像块和第二图像块之间的水平块边缘,

其中,所述第一图像块沿垂直方向具有块大小SA,所述第二图像块沿所述垂直方向具有块大小SB,所述垂直方向垂直于所述水平块边缘;

其中,所述设备包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述第一图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中MA=1;

-将所述第二图像块的最多MB个像素点的值修改为第二滤波输出值,其中,所述最多MB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中MB=3;

其中,所述第一图像块为所述CTB边界上方的色度块,所述第二图像块为所述CTB边界下方的其它色度块,SA和SB等于或大于8。

可以理解的是,SA可以与SB不同,或者SA与SB相同。换句话说,SB和SA可以是相同值,或SB和SA可以是不同值,例如SA为8,SB为8。例如,SA为8,SB为16。

根据本发明的第三方面,提供了一种用于图像编码器和/或图像解码器中的设备,用于对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一图像块和第二图像块之间的水平块边缘,

其中,所述第一图像块沿垂直方向具有块大小SA;

其中,所述第二图像块沿所述垂直方向具有块大小SB,所述垂直方向垂直于所述水平块边缘;

其中,所述设备包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-使用所述第一图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中DA=2;

-使用所述第二图像块的最多DB个像素点的值作为第二滤波决策值,其中,所述最多DB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中DB=4;

其中,所述第一图像块为所述CTB边界上方的色度块,所述第二图像块为所述CTB边界下方的其它色度块,SA和SB等于或大于8。

可以理解的是,SA可以与SB不同,或者SA与SB相同。换句话说,SB和SA可以是相同值,或SB和SA可以是不同值,例如SA为8,SB为8。例如,SA为8,SB为16。

根据本发明的第四方面,提供了一种去块效应滤波方法,用于在图像编码和/或图像解码中对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一图像块和第二图像块之间的水平块边缘;

其中,所述第一图像块沿垂直方向具有块大小SA;

其中,所述第二图像块沿所述垂直方向具有块大小SB,所述垂直方向垂直于所述水平块边缘;

其中,所述方法包括:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述第一图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-将所述第二图像块的最多MB个像素点的值修改为第二滤波输出值,其中,所述最多MB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,所述第一图像块为所述CTB边界上方的块,所述第二图像块为所述CTB边界下方的块;

其中,MA≠MB(MA

因此可以根据可用的行缓冲区调整滤波决策和滤波,从而获得最佳的主观质量。

根据所述第四方面,在所述方法的一种可能实现方式中,所述方法还包括:在所述水平块边缘与所述译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与所述CTB边界重叠)),

-使用所述第一图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-使用所述第二图像块的最多DB个像素点的值作为第二滤波决策值,其中,所述最多DB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,DA≠DB(DA

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,如果所述行缓冲区的行缓冲区大小为X行,则对于所述第一图像块,MA=X–1,其中,X是正整数。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,如果所述行缓冲区的行缓冲区大小为X行,则对于所述第一图像块,DA=X且MA=X–1,其中,X是正整数。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块时,所述行缓冲区的行缓冲大小为2行,或者,

当所述第一图像块和所述第二图像块为亮度块时,所述行缓冲区的行缓冲区大小为4行。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,

则将所述第一图像块的像素点p

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,第一图像块的像素点p

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,所述第一图像块的像素点p

由于填充的像素点可以仅作为可用像素点处理,因此使得无需改变原始的滤波决策和滤波过程,从而尽量不增加计算复杂度,特别是在硬件方面。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,与所述第一图像块的像素点p

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述行缓冲区的行缓冲区大小为2行时,所述像素点p

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述行缓冲区的行缓冲区大小为2行时,所述像素点p

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述第一图像块和所述第二图像块均为亮度块且SB和SA等于或大于32时,MB=7且MA=3;或者,

当所述第一图像块和所述第二图像块均为亮度块且SB等于或大于32而SA等于或大于16时,MB=7且MA=3。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述第一图像块和所述第二图像块均为亮度块且SB和SA等于或大于32时,DB=8且DA=4;或者,

当所述第一图像块和所述第二图像块均为亮度块且SB等于或大于32而SA等于或大于16时,DB=8且DA =4。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块且SA和SB等于或大于8时,MB=3且MA=1。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述第一图像块和所述第二图像块为色度块且SB和SA等于或大于8时,DB=4且DA=2。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,所述第二图像块为当前图像块,所述第一图像块为与所述当前图像块相邻的相邻图像块。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,所述第一图像块的像素点p

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,所述方法还包括:

当所述第一图像块和第二图像块为色度块时,确定所述水平块边缘是否与色度CTB的水平边界重叠;或者,

当所述第一图像块和第二图像块为亮度块时,确定所述水平块边缘是否与亮度CTB的水平边界重叠。

根据所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能实现方式中,所述去块效应滤波器是较长抽头滤波器、非对称滤波器、非对称抽头滤波器。

根据本发明的第五方面,提供了一种去块效应滤波方法,用于在图像编码和/或图像解码中对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一图像块和第二图像块之间的水平块边缘;

其中,所述第一图像块沿垂直方向具有块大小SA;

其中,所述第二图像块沿所述垂直方向具有块大小SB,所述垂直方向垂直于所述水平块边缘;

其中,所述方法包括:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述第一图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中MA=1;

-将所述第二图像块的最多MB个像素点的值修改为第二滤波输出值,其中,所述最多MB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中MB=3;

其中,所述第一图像块为所述CTB边界上方的色度块,所述第二图像块为所述CTB边界下方的其它色度块,SA和SB等于或大于8。

根据本发明的第六方面,提供了一种去块效应滤波方法,用于在图像编码和/或图像解码中对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一图像块和第二图像块之间的水平块边缘;

其中,所述第一图像块沿垂直方向具有块大小SA;

其中,所述第二图像块沿所述垂直方向具有块大小SB,所述垂直方向垂直于所述水平块边缘;

其中,所述方法包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-使用所述第一图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述第一图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中DA=2;

-使用所述第二图像块的最多DB个像素点的值作为第二滤波决策值,其中,所述最多DB个像素点是从所述第二图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的,其中DB=4;

其中,所述第一图像块为所述CTB边界上方的色度块,所述第二图像块为所述CTB边界下方的其它色度块,SA和SB等于或大于8。

根据本发明的第七方面,提供了一种用于图像编码器和/或图像解码器中的设备,用于对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括当前图像块与所述当前图像块的相邻图像块之间的水平块边缘,其中,所述当前图像块位于所述水平块边缘之上;

其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于所述水平块边缘;

其中,所述设备包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-至少根据与所述CTB边界相关联的行缓冲区的行缓冲区大小,确定所述当前图像块的最大滤波器长度MA;

-将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的。

MA可以理解为当前图像块或垂直于水平块边缘并与水平块边缘相邻的每一列中的最大滤波器长度,在所述水平块边缘的开始处,是待针对当前图像块修改的最大像素点数。

根据本发明的第八方面,提供了一种去块效应滤波方法,用于在图像编码和/或图像解码中对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括当前图像块与所述当前图像块的相邻图像块之间的水平块边缘,其中,所述当前图像块位于所述水平块边缘之上;

其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于所述水平块边缘;

其中,所述方法包括:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-至少根据与所述CTB边界相关联的行缓冲区的行缓冲区大小,确定所述当前图像块的最大滤波器长度MA;

-将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的。

因此可以根据可用的行缓冲区调整滤波决策和滤波,从而获得最佳的主观质量。

在第七或第八方面提供的一种可能实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,则MA=X–1,其中,X为正整数。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,所述去块效应滤波器还用于:在所述水平块边缘与所述译码树块(codingtree block,CTB)的水平边界重叠的情况下,

-使用所述当前图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,则DA=X且MA=X–1,其中,X为正整数。

根据所述第六方面或所述第六方面的任一上述实现方式,在所述方法的一种可能实现方式中,当所述当前图像块为色度块时,与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为2行,或者,

当所述当前图像块为亮度块时,与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为4行。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,

则所述当前图像块的像素点p

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,所述当前图像块的像素点p

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,所述当前图像块的像素点p

由于填充的像素点可以仅作为可用像素点处理,因此不需要改变原始的滤波决策和滤波过程,从而尽量不增加计算复杂度,特别是在硬件方面。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,与所述当前图像块的像素点p

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,当所述行缓冲区的行缓冲区大小为2行时,所述像素点p

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,当所述当前图像块为亮度块且SA等于或大于32时,MA=3,其中,SA为所述当前图像块的高度;

或者,

当所述当前图像块为亮度块且SA等于或大于16时,MA=3,其中,SA为所述当前图像块的高度。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,当所述当前图像块为亮度块且SA等于或大于32时,DA=4,其中,SA为所述当前图像块的高度;或者,

当所述当前图像块为亮度块且SA等于或大于16时,DA=4,其中,SA为所述当前图像块的高度。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,当所述当前图像块为色度块且SA等于或大于8时,MA=1,

其中,SA为所述当前图像块的高度。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,当所述当前图像块为色度块且SA等于或大于8时,DA=2,

其中,SA为所述当前图像块的高度。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,当所述当前图像块为色度块时,所述去块效应滤波器用于确定所述水平块边缘是否与色度CTB的水平边界重叠;或者,

当所述当前图像块为亮度块时,所述去块效应滤波器用于确定所述水平块边缘是否与亮度CTB的水平边界重叠。

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,所述当前图像块的像素点p

在所述第七或第八方面或所述第七或第八方面的任一上述实现方式提供的一种可能实现方式中,所述当前图像块为变换块;或者,

所述当前图像块为译码块。

根据本发明的第九方面,提供了一种用于图像编码器和/或图像解码器中的设备,用于对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括当前图像块与所述当前图像块的相邻图像块之间的水平块边缘,其中,所述当前图像块位于所述水平块边缘之上;

其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于所述水平块边缘;

其中,所述设备包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-使用所述当前图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,当所述当前图像块为亮度块且SA等于或大于32时,MA=3且DA=4。

根据本发明的第十方面,提供了一种用于图像编码器和/或图像解码器中的设备,用于对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括当前图像块与所述当前图像块的相邻图像块之间的水平块边缘,其中,所述当前图像块位于所述水平块边缘之上;

其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于所述水平块边缘;

其中,所述设备包括去块效应滤波器,用于:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-使用所述当前图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,当所述当前图像块为色度块且SA等于或大于8时,MA=1且DA=2。

根据本发明的第十一方面,提供了一种去块效应滤波方法,用于在图像编码和/或图像解码中对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括当前图像块与所述当前图像块的相邻图像块之间的水平块边缘,其中,所述当前图像块位于所述水平块边缘之上;

其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于所述水平块边缘;

其中,所述方法包括:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-使用所述当前图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,当所述当前图像块为亮度块且SA等于或大于32时,MA=3且DA=4。

根据本发明的第十二方面,提供了一种去块效应滤波方法,用于在图像编码和/或图像解码中对图像块之间的块边缘进行去块效应滤波,其中,所述块边缘包括当前图像块与所述当前图像块的相邻图像块之间的水平块边缘,其中,所述当前图像块位于所述水平块边缘之上;

其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于所述水平块边缘,其中,所述方法包括:在所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下(或响应于确定所述水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠)),

-将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

-使用所述当前图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的;

其中,当所述当前图像块为色度块且SA等于或大于8时,MA=1且DA=2。

需要说明的是,确定修改的滤波条件,以使用上方块“P”的受限制行数。

其中,滤波器系数是以如下方式确定的:像素点p

可以理解的是,上方CTU中允许存储在存储器中的像素点称为行缓冲区。在本发明中,例如,行缓冲区可以是4行缓冲区或6行缓冲区。行缓冲区大小是需要存储在存储器中以进行基于CTU的解码(例如,硬件解码器)的像素量。

亮度分量的行缓冲区大小为4行,色度分量的行缓冲区大小为2行。

因此,可以通过用存在于行缓冲区中的最外部像素点填充行缓冲区之外的像素点来减少去块效应滤波器(如长抽头滤波器)的CTU边界处的行缓冲区。

去块时(例如,亮度去块或色度去块),将去块效应滤波器应用于边界的任一侧属于大块的像素点。属于大块的像素点可以定义为:对于垂直边缘,宽度≥32,对于水平边缘,高度≥32的块。

块边界每一侧(垂直于块边界)的像素点可以表示为:

……p8 p7 p6 p5 p4 p3 p2 p1 p0|q0 q1 q2 q3 q4 q5 q6 q7 q8……

其中,|表示块边界或块边缘,例如,|表示与CTU边界重叠的水平边界或水平边缘。

其中,p

可以使用与现有技术相同的逻辑来推导滤波条件和滤波等式。

根据本发明的另一方面,提供了一种视频编码装置。所述视频编码装置(100)用于对视频流的图像进行编码,其中,所述视频编码装置(100)包括:

重建单元(114),用于重建所述图像;

如上所述的设备(120),用于将所述重建图像处理成经滤波的重建图像。

这可以实现非常高效和准确的图像编码。

根据本发明的另一方面,提供了一种视频解码装置。所述视频解码装置(200)用于对编码视频流(303)的图像进行解码,其中,所述视频解码装置(200)包括:

重建单元(214),用于重建所述图像;

如上所述的设备(220),用于将所述重建图像处理成经滤波的重建图像。

这可以实现十分准确和高效的图像解码。

在一个示例中,第一滤波器(即,长抽头滤波器、非对称滤波器、非对称抽头滤波器)是使用4个上方块像素点在块边缘(例如与译码树单元(coding tree unit,CTU)边界重叠的水平块边缘)的一侧进行滤波决策,并使用8个下方块像素点在块边缘的另一侧进行滤波决策的滤波器,在块边缘(CU边缘)的一侧修改3个上方块像素点,而在块边缘(CU边缘)的另一侧修改7个下方块像素点。

这可以实现非常准确和高效的去块。

根据另一方面,本发明涉及一种用于编码图像的编码方法,包括先前或后续示出的去块效应滤波方法。

这可以实现非常高效和准确的图像编码。

根据另一方面,本发明涉及一种用于解码图像的解码方法,包括先前或后续示出的去块效应滤波方法。

这可以实现非常高效和准确的图像解码。

本发明第四方面提供的方法可由本发明第一方面提供的装置执行。本发明第四方面提供的方法的其它特征和实现方式直接由本发明第一方面及其不同实现方式提供的装置的功能实现。

本发明第八方面提供的方法可由本发明第七方面提供的装置执行。本发明第十一方面提供的方法的其它特征和实现方式直接由本发明第七方面及其不同实现方式提供的装置的功能实现。

根据另一方面,本发明涉及一种用于解码视频流的装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行任一上述方面或任一上述方面的任一上述实现方式提供的去块效应滤波方法。

根据另一方面,本发明涉及一种用于编码视频流的装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行任一上述方面或任一上述方面的任一上述实现方式提供的去块效应滤波方法。

根据另一方面,提供一种储存有指令的计算机可读存储介质,所述指令在执行时使一个或多个处理器对视频数据进行译码。所述指令使所述一个或多个处理器执行任一上述方面或任一上述方面的任一上述实现方式提供的去块效应滤波方法。

根据另一方面,提供了一种具有程序代码的计算机程序产品,当所述计算机程序在计算机中运行时,所述程序代码用于执行任一上述方面或任一上述方面的任一上述实现方式提供的去块效应滤波方法。

附图和以下描述对一个或多个实施例的细节进行了阐述。其它特征、目的和优点在说明书、附图以及权利要求中是显而易见的。

附图说明

下文结合附图对本发明实施例进行详细描述。在附图中:

图1为用于实现本发明实施例的视频编码器示例的框图;

图2为用于实现本发明实施例的视频解码器的示例性结构的框图;

图3为用于实现本发明实施例的视频译码系统示例的框图;

图4A示出了两个示例性译码块,其中,译码块Q使用子PU工具;

图4B示出了两个示例性译码块,其中,两个译码块P和Q之间有水平块边缘;

图5示出了两个示例性译码块和在滤波期间使用和修改的相应像素点值,其中,两个译码块P和Q之间有垂直块边缘;

图6示出了本发明实施例提供的去块效应滤波器的第一实施例;

图7示出了用于确定是否应使用长抽头滤波器的方法的流程图;

图8示出了用于确定是否应满足HEVC强滤波条件的方法的流程图;

图9示出了本发明另一实施例提供的两个示例性译码块和在滤波期间使用和修改的像素点值;

图10示出了描述用于去块效应滤波的一个示例性过程的流程图;

图11示出了描述用于去块效应滤波的另一示例性过程的流程图;

图12示出了描述用于去块效应滤波的另一示例性过程的流程图;

图13示出了示例性实施例提供的装置1300的简化框图,其中,装置1300可用作图3中的源设备310和目的地设备320中的任一个或两个;

图14示出了用于视频译码的设备的示意图;

图15示出了包括多个译码树单元CTU1-CTU40的图像1500;

图16A示出了示例性实施例提供的与CTU边界重叠的水平边缘;

图16B示出了应用行缓冲区(如6行缓冲区)时另一示例性实施例提供的与水平亮度CTB边界重叠的水平边缘;

图17示出了应用行缓冲区(如4行缓冲区)时另一示例性实施例提供的与水平亮度CTB边界重叠的水平边缘;

图18示出了应用行缓冲区(如2行缓冲区)时另一示例性实施例提供的与水平色度CTB边界重叠的水平边缘;

图19示出了用于对块边缘进行去块效应滤波的设备的示意图;

图20为实现内容分发业务的内容供应系统3100的示例性结构的框图;

图21为示出终端设备示例结构的框图。

在下文中,相同的附图标记是指相同或至少功能上等效的特征。部分地,不同的附图标记是指在不同图中使用的相同实体。

具体实施方式

以下描述中,参考附图,所述附图组成本发明一部分并以说明的方式示出本发明实施例的具体方面或可使用本发明实施例的具体方面。应理解,本发明实施例可在其它方面中使用,并可包括附图中未描述的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。

例如,应理解,结合所描述方法的公开内容对用于执行所述方法的对应设备或系统也可以同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个),即使附图中未明确描述或说明该一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述具体装置,则对应的方法可以包括一个步骤来实现一个或多个单元的功能(例如,一个步骤实现一个或多个单元的功能,或多个步骤分别实现多个单元中一个或多个单元的功能),即使附图中未明确描述或说明该一个或多个步骤。此外,应理解,除非另有说明,否则本文描述的各种示例性实施例和/或方面的特征可彼此组合。

视频译码通常指对构成视频或视频序列的图像序列进行处理。在视频译码领域中,术语“帧(frame)”或“图像(picture/image)”可以用作同义词。视频译码包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如,压缩)原始视频图像以减少表示视频图像所需的数据量(从而更高效存储和/或发送)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。关于视频图像(或一般为图像,将在下文解释)的“译码”的实施例应理解为涉及视频图像的“编码”和“解码”两者。编码部分和解码部分的组合也称为编解码(编码和解码,CODEC)。

在无损视频译码情况下,可以重建原始视频图像,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频译码情况下,通过量化等进行进一步压缩来减少表示视频图像所需的数据量,而解码器处无法完全重建视频图像,即重建的视频图像的质量比原始视频图像的质量更低或更差。

自H.261之后的几个视频译码标准属于“有损混合视频编解码器”组(即,将像素点域中的空间预测和时间预测与变换域中用于应用量化的2D变换译码结合)。视频序列中的每个图像通常分割成不重叠的块集合,通常基于块级进行译码。换句话说,编码器通常在块(视频块)级处对视频进行处理,即编码,例如,通过空间(帧内)预测和时间(帧间)预测来生成预测块;从当前块(当前处理/待处理的块)中减去预测块,获得残差块;在变换域中变换残差块并量化残差块,以减少待发送(压缩)的数据量。解码器将相对于编码器侧处理的逆处理部分应用于经编码或压缩的块,以重建用于表示的当前块。此外,编码器重复解码器的处理步骤,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于对后续块进行处理(即译码)。

因为视频图像处理(也称为移动图像处理)和静止图像处理(术语“处理”包括译码)共享许多概念和技术或工具,所以在下文中,术语“图像”用于指代视频序列的视频图像(如上文所解释)和/或静止图像,以避免在不需要时,视频图像与静止图像之间不必要的重复和区分。在描述仅指静止图像(picture/image)的情况下,应使用术语“静止图像”。

在以下实施例中,根据图1至图3描述了编码器100、解码器200和译码系统300,然后根据图4-图19详细描述了本发明的实施例。

图3为概念性或示意性框图,示出了译码系统300(例如,图像译码系统300)的实施例,其中,译码系统300包括源设备310,所述源设备310用于将编码数据330(例如,编码图像330)提供到目的地设备320等以对编码数据330进行解码。

源设备310包括编码器100或编码单元100,并且可以另外(即可选地)包括图像源312、预处理单元314(例如,图像预处理单元314)和通信接口或通信单元318。

图像源312可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的设备,和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机动画图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任何组合(例如,增强现实(augmented reality,AR)图像)的任何类型的设备。在下文中,除非另有特别说明,否则所有这些类型的图像和任何其它类型的图像称为“图像”,而之前关于术语“图像”(包括“视频图像”和“静止图像”)的解释仍然适用,除非有明确的不同规定。

(数字)图像为或可以看作具有强度值的像素点的二维阵列或矩阵。阵列中的像素点也可以称为像素(pixel/pel)(图像元素的简称)。图像的大小和/或分辨率由阵列或图像在水平和垂直方向(或轴)上的像素点数量定义。通常采用三种颜色分量来表示颜色,即该图像可表示为三个像素点阵列或包括三个像素点阵列。在RGB格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。然而,在视频译码中,每个像素通常由亮度/色度格式或在颜色空间中表示,例如,YCbCr,包括Y表示的亮度分量(有时也用L表示)和Cb和Cr表示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰度级强度(例如,在灰度图像中),而两个色度(或简称chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图像包括亮度像素点值(Y)的亮度像素点阵列和色度值(Cb和Cr)的两个色度像素点阵列。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则该图像可以仅包括亮度像素点阵列。

图像源312可以是用于捕获图像的摄像机、包括或存储先前捕获或生成的图像的存储器(例如,图像存储器),和/或用于获取或接收图像的任何类型的(内部或外部)接口等。例如,所述摄像机可以是集成在源设备中的本地或集成摄像机,所述存储器可以是(例如,集成在源设备中的)本地或集成存储器。例如,所述接口可以是从外部视频源接收图像的外部接口,其中,所述外部视频源如摄像机等外部图像捕获设备、外部存储器,或外部计算机图形处理器、计算机或服务器等外部图像生成设备。所述接口可以是根据任何专有或标准化接口协议的任何类型的接口,例如有线或无线接口、光接口。用于获取图像数据312的接口可以是与通信接口318相同的接口,或作为通信接口318的一部分。

区别于预处理单元314和预处理单元314执行的处理,图像或图像数据313也可以称为原始图像或原始图像数据313。

预处理单元314用于接收(原始)图像数据313,对图像数据313进行预处理,以获得经预处理的图像315或经预处理的图像数据315。预处理单元314执行的预处理可以包括修剪(trimming)、颜色格式转换(例如,从RGB转换为YCbCr)、颜色校正或去噪等。

编码器100用于接收经预处理的图像数据315并提供经编码的图像数据171(例如根据图1进一步详细描述)。

源设备310的通信接口318可以用于接收经编码的图像数据171,并直接发送到其它设备(例如,目的地设备320或用于存储或直接重建的任何其它设备);或分别在存储编码数据330和/或将编码数据330发送到其它设备(例如目的地设备320,或用于解码或存储的任何其它设备)之前处理经编码的图像数据171。

目的设备320包括解码器200或解码单元200,并且可以另外(即,可选地)包括通信接口或通信单元322、后处理单元326和显示设备328。

目的地设备320的通信接口322用于接收经编码的图像数据171或编码数据330,例如,直接从源设备310或任何其它源(例如,编码图像数据存储器等存储器)接收。

通信接口318和通信接口322可以用于通过源设备310与目的地设备320之间的直接通信链路(例如,直接有线或无线连接),或通过任何类型的网络(例如,有线或无线网络或其任意组合,或任何类型的专用和公共网络),或其任意组合分别发送或接收经编码的图像数据171或编码数据330。

例如,通信接口318可以用于将经编码的图像数据171封装为合适的格式(例如,数据包),用于通过通信链路或通信网络传输,并且还可以包括数据丢失保护和数据丢失恢复。

例如,形成通信接口318的对应的通信接口322可以用于解封装编码数据330以获取经编码的图像数据171,还可以用于执行数据丢失保护和数据丢失恢复(例如,包括差错隐藏)。

通信接口318和通信接口322均可配置为单向通信接口(如图3中从源设备310指向目的地设备320的经编码的图像数据330的箭头所表示),或双向通信接口,并可用于发送和接收消息等,例如,建立连接,确认和/或重新发送丢失或延迟的数据(包括图像数据),交互与通信链路和/或数据传输(例如,经编码的图像数据传输)相关的任何其它信息。

解码器200用于接收经编码的图像数据171并提供经解码的图像数据231或解码图像231(例如根据图2进一步详细描述)。

目的地设备320的后处理器326用于对经解码的图像数据231(例如,解码图像231)进行后处理,以获得经后处理的图像数据327(例如,后处理图像327)。例如,由后处理单元326执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、颜色校正、修剪或重采样,或任何其它处理,例如,用于准备经解码的图像数据231以供显示设备328等显示。

目的地设备320的显示设备328用于接收经后处理的图像数据327,以向用户或观看者等显示所述图像。显示设备328可以是或包括用于显示重建图像的任何类型的显示器,例如,集成或外部的显示器或监视器。例如,显示器可以包括阴极射线管(cathode raytube,CRT)、液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light emitting diode,OLED)显示器或任何其它类型的显示器,如射束器、全息图(3D)。

尽管图3将源设备310和目的地设备320作为单独的设备进行描述,但是设备实施例还可以包括两种设备或两种功能,即源设备310或对应功能以及目的地设备320或对应功能。在这类实施例中,源设备310或对应功能以及目的地设备320或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。

根据描述,技术人员显而易见的是,图3所示的源设备310和/或目的地设备320中的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而不同。

因此,图3所示的源设备310和目的地设备320仅仅是本发明的示例性实施例,且本发明实施例不限于图3所示的那些实施例。

源设备310和目的地设备320可以包括多种设备中任一种,包括任何类型的手持或固定设备,例如,笔记本或膝上型计算机、手机、智能手机、平板或平板计算机、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备、广播接收器设备等。(以及用于大规模专业编码/解码的服务器和工作站,例如网络实体),并且可能不使用或使用任何类型的操作系统。

图1示出了编码器100(例如,图像编码器100)的实施例的示意性/概念性框图,其中,所述编码器100包括输入端102、残差计算单元104、变换单元106、量化单元108、反量化单元110和逆变换单元112、重建单元114、缓冲区118、环路滤波器120、解码图像缓冲区(decoded picture buffer,DPB)130、预测单元160[帧间估计单元142、帧间预测单元144、帧内估计单元152、帧内预测单元154]、模式选择单元162、熵编码单元170和输出端172。图1所示的视频编码器100也可以称为混合视频编码器或基于混合视频编解码器的视频编码器。

例如,残差计算单元104、变换单元106、量化单元108和熵编码单元170形成编码器100的正向信号路径,而例如反量化单元110、逆变换单元112、重建单元114、缓冲区118、环路滤波器120、解码图像缓冲区(decoded picture buffer,DPB)130、帧间预测单元144和帧内预测单元154形成编码器的反向信号路径。编码器的反向信号路径与解码器(参见图2中的解码器200)的信号路径对应。

编码器用于通过输入端102等接收图像101或图像101(例如,形成视频或视频序列的图像序列的图像)的图像块103。图像块103也可以称为当前图像块或待译码图像块,图像101也可以称为当前图像或待译码图像(特别是在视频译码中,以便将当前图像与其它图像(例如,同一视频序列(即,也包括当前图像的视频序列)的先前编码和/或解码的图像))区分开。

编码器100的实施例可以包括分割单元(图1中未描述),例如,分割单元也可以称为图像分割单元,用于将图像103分割成多个块(如块103等块),通常分割成多个不重叠块。分割单元可用于对视频序列的所有图像使用相同的块大小和定义块大小的对应网格,或者用于改变图像或图像子集或组之间的块大小,并将每个图像分割成对应块。

与图像101类似,块103同样是或可以看作是具有强度值(像素点值)的像素点的二维阵列或矩阵,但是,块103的尺寸比图像101小。换句话说,例如,根据所应用的颜色格式,块103可以包括一个像素点阵列(例如,图像101是单色情况下的亮度阵列)或三个像素点阵列(例如,图像101是彩色情况下的一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列。块103的水平方向和垂直方向(或轴线)上的像素点数量决定了块103的大小。

图1所示的编码器100用于逐块对图像101进行编码,例如,按块103进行编码和预测。

残差计算单元104用于通过如下等方式根据图像块103和预测块165(下文提供预测块165的进一步细节)来计算残差块105:逐个像素点(逐个像素)从图像块103的像素点值中减去预测块165的像素点值,以获得像素点域中的残差块105。

变换单元106用于对残差块105的像素点值应用变换,例如空间频率变换或线性空间变换,例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discretesine transform,DST),以获得变换域中的变换系数107。变换系数107也可以称为变换残差系数,表示变换域中的残差块105。

变换单元106可用于应用DCT/DST的整数近似法,如针对H.265/HEVC指定的核变换。与正交DCT变换相比,这类整数近似法通常通过某一因子按比例缩放。为了保持经过正变换和逆变换处理的残差块的范数,在变换过程中应用了其它缩放因子。缩放因子通常是基于某些约束来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的权衡等。例如,在解码器200侧通过逆变换单元212等为逆变换(以及在编码器100侧通过逆变换单元112等为对应逆变换)指定具体的缩放因子,以及相应地,可以在编码器100侧通过变换单元106等为正变换指定对应的缩放因子。

量化单元108用于通过应用标量量化或矢量量化等对变换系数107进行量化,以获得量化系数109。量化系数109也可以称为量化残差系数109。例如,对于标量量化,可以应用不同程度的缩放来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantization parameter,QP)表示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可对应精细量化(较小量化步长),较大的量化参数可对应粗糙量化(较大量化步长),反之亦然。量化可以包括除以量化步长,而反量化单元110等执行的对应或解量化可包括乘以量化步长。

根据HEVC或VVC的实施例可用于使用量化参数来确定量化步长。通常,可以根据量化参数使用包括除法的等式的定点近似来计算量化步长。可以引入其它缩放因子来进行量化和解量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的缩放而修改的残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。或者,可以使用自定义量化表并在码流中等将自定义量化表从编码器向解码器指示(signal)。量化是有损操作,其中量化步长越大,损耗越大。

编码器100(或具体是量化单元108)的实施例可用于通过对应的量化参数等输出量化方案和量化步长,使得解码器200可以接收和应用对应的反量化。编码器100(或量化单元108)的实施例可用于输出量化方案和量化步长,例如直接输出或通过熵编码单元170或任何其它熵编码单元编码的熵输出。

反量化单元110用于通过根据或使用与量化单元108相同的量化步长应用量化单元108所应用的量化方案的逆过程等,对量化系数应用量化单元108的反量化,以获得解量化系数111。解量化系数111也可以称为解量化残差系数111,对应于变换系数108,但是由于量化造成的损耗,解量化系数111通常与变换系数不同。

逆变换单元112用于应用变换单元106所应用的变换的逆变换,例如逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sine transform,DST),以在像素点域中获得逆变换块113。逆变换块113也可以称为逆变换解量化块113或逆变换残差块113。

重建单元114用于通过逐像素点添加解码残差块113的像素点值和预测块165的像素点值等,合并逆变换块113和预测块165,以在像素点域中获得重建块115。

缓冲单元116(或简称“缓冲区”116),例如行缓冲区(line buffer)116,用于缓冲或存储重建块和相应的像素点值,以进行帧内估计和/或帧内预测等。在其它实施例中,编码器可用于使用存储在缓冲单元116中的未滤波的重建块和/或相应的像素点值进行任何类型的估计和/或预测。

编码器100的实施例可用于使得,例如缓冲单元116不仅用于存储用于帧内估计152和/或帧内预测154的重建块115,还用于存储用于环路滤波单元120(图1中未示出)的重建块115,和/或用于使得,例如缓冲单元116和解码图像缓冲单元130形成一个缓冲区。其它实施例可用于使用滤波块121和/或解码图像缓冲区130中的块或像素点(两者都未在图1中示出)作为帧内估计152和/或帧内预测154的输入或基础。

环路滤波单元120(或简称“环路滤波器”120)用于通过应用去块像素点自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器(例如,锐化或平滑滤波器或协同滤波器)等,对重建块115进行滤波以获得滤波块121。滤波块121也可以称为滤波重建块121。环路滤波器120在下文中也称为去块效应滤波器。下文例如根据图6或7或图10至图12进一步详细描述环路滤波单元120。

环路滤波单元120的实施例可以包括(图1中未示出)滤波器分析单元和实际滤波器单元,其中,所述滤波器分析单元用于确定所述实际滤波器的环路滤波器参数。滤波器分析单元可用于将固定的预定滤波器参数应用于实际环路滤波器,从预定滤波器参数集合中自适应地选择滤波器参数,或自适应地计算实际环路滤波器的滤波器参数。

环路滤波单元120的实施例可以包括(图1中未示出)一个或多个滤波器(环路滤波器组件/子滤波器),例如,一个或多个不同种类或类型的滤波器,这些滤波器例如串联连接或并联连接或以其任何组合连接,其中,滤波器都可以单独或与所述多个滤波器中的其它滤波器联合包括滤波器分析单元,以确定相应的环路滤波器参数,例如,如前一段落所述。

编码器100(具体是环路滤波单元120)的实施例可用于输出环路滤波器参数,例如直接输出或通过熵编码单元170或任何其它熵编码单元所编码的熵输出,使得例如解码器200可以接收和应用相同环路滤波器参数进行解码。

解码图像缓冲区(decoded picture buffer,DPB)130用于接收和存储滤波块121。解码图像缓冲区130还可用于存储同一当前图像或不同图像(例如,先前重建的图像)的其它先前滤波块(例如,先前重建和滤波块121),并且可提供完整的先前重建(即解码)的图像(和对应的参考块和像素点)和/或部分重建的当前图像(和对应的参考块和像素点),用于帧内预测和/或帧间预测等。

本发明的其它实施例还可以用于将解码图像缓冲区130的先前滤波块和对应的滤波像素点值用于任何类型的估计或预测,例如帧内估计和帧内预测以及帧间估计和帧间预测。

预测单元160(也称为块预测单元160)用于:接收或获取图像块103(当前图像101的当前图像块103)和经解码或至少重建的图像数据,例如,缓冲区116的同一(当前)图像的参考像素点和/或解码图像缓冲区130的一个或多个先前解码图像的经解码的图像数据231,并处理此类数据进行预测,即提供预测块165,其中,所述预测块165可以是帧间预测块145或帧内预测块155。

模式选择单元162可用于选择预测模式(例如,帧内预测或帧间预测模式)和/或对应的预测块145或155,用作预测块165以用于计算残差块105和重建重建块115。

模式选择单元162的实施例可用于选择预测模式(例如,从预测单元160支持的预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差意味着传输或存储中更好的压缩),或提供最小指示(signaling)开销(最小指示开销意味着传输或存储中更好的压缩),或者同时考虑或平衡以上两者。模式选择单元162可用于根据率失真优化(ratedistortion optimization,RDO)确定预测模式,即选择提供最小率失真优化的预测模式,或者选择至少满足预测模式选择标准的相关率失真的预测模式。

下文将详细描述由示例性编码器100执行的预测处理(例如,由预测单元160执行)和模式选择(例如,由模式选择单元162执行)。

如上所述,编码器100用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。例如,预测模式集合可以包括帧内预测模式和/或帧间预测模式。

帧内预测模式集合可以包括32种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式等非方向性模式,或如H.264定义的方向性模式,或者可以包括65种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式等非方向性模式,或如H.265中定义的方向性模式。

(或可能的)帧间预测模式的集合取决于可用参考图像(即,例如存储在DPB 230中的先前至少部分解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域附近的搜索窗口区域)来搜索最佳匹配参考块,和/或例如取决于是否应用像素插值(例如二分之一/半像素和/或四分之一像素插值)。

除上述预测模式外,还可以应用跳过模式和/或直接模式。

预测单元160还可以用于将块103分割成更小的分割块或子块,例如,使用四叉树(quad-tree,QT)分割、二叉树(binary-tree,BT)分割或三叉树(triple-tree,TT)分割或其任何组合迭代地进行,并例如对每个分割块或子块进行预测,其中,所述模式选择包括选择分割块103的树结构以及应用于每个分割块或子块的预测模式。

帧间估计单元(inter estimation unit/inter picture estimation unit)142用于接收或获取图像块103(当前图像101的当前图像块103)和解码图像231,或至少一个或多个先前重建块,例如,一个或多个其它/不同的先前解码图像231的重建块,以进行帧间估计(inter estimation/inter picture estimation)。例如,视频序列可以包括当前图像和先前解码图像231,或换句话说,当前图像和先前解码图像231可以为形成视频序列的图像序列的一部分或形成该图像序列。

例如,编码器100可用于从多个其它图像中的相同或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标,y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间估计参数143提供给帧间预测单元144。该偏移也称为运动矢量(motion vector,MV)。帧间估计也称为运动估计(motion estimation,ME),帧间预测也称为运动预测(motion prediction,MP)。

帧间预测单元144用于获取(例如接收)帧间预测参数143,并根据或使用帧间预测参数143进行帧间预测,以获得帧间预测块145。

尽管图1针对帧间译码示出了两个不同的单元(或步骤),即帧间估计142和帧间预测152,但是这两种功能可以作为一个单元(或步骤)来执行(帧间估计需要/包括计算帧间预测块,即,该或“一种”帧间预测154),例如,通过迭代测试可能帧间预测模式的所有可能的或预定的子集,同时存储当前最佳的帧间预测模式和相应的帧间预测块,并将当前最佳帧间预测模式和相应的帧间预测块作为(最终)帧间预测参数143和帧间预测块145,而不在其它时间执行帧间预测144。

帧内估计单元152用于获取(例如接收)图像块103(当前图像块)和同一图像的一个或多个先前重建块(例如,重建相邻块),以进行帧内估计。例如,编码器100可用于从多个(预定的)帧内预测模式中选择帧内预测模式并将其作为帧内估计参数153提供给帧内预测单元154。

编码器100的实施例可用于根据优化标准选择帧内预测模式,其中,所述优化标准如最小残差(例如,提供与当前图像块103最相似的预测块155的帧内预测模式)或最小率失真。

帧内预测单元154用于根据帧内预测参数153(例如,所选帧内预测模式153)确定帧内预测块155。

尽管图1针对帧内译码示出了两个不同的单元(或步骤),即帧内估计152和帧内预测154,但是这两种功能可以作为一个单元(或步骤)来执行(帧内估计需要/包括计算帧内预测块,即,该或“一种”帧内预测154),例如,通过迭代测试可能帧内预测模式的所有可能的或预定的子集,同时存储当前最佳的帧内预测模式和相应的帧内预测块,并将当前最佳帧内预测模式和相应的帧内预测块作为(最终)帧内预测参数153和帧内预测块155,而不在其它时间执行帧内预测154。

熵编码单元170用于单独或联合(或完全不联合)对量化残差系数109、帧间预测参数143、帧内预测参数153和/或环路滤波器参数应用熵编码算法或方案(例如,可变长度译码(variable length coding,VLC)方案、上下文自适应VLC(context adaptive VLC,CAVLC)方案、算术译码方案、上下文自适应二进制算术译码(context adaptive binaryarithmetic coding,CABAC)),以获得可由输出端172输出的经编码的图像数据171,例如,以经编码码流171的形式输出。

视频编码器100的其它结构变体可用于对视频流进行编码。例如,基于非变换的编码器100可以在没有变换处理单元的情况下直接量化某些块或帧的残差信号。在另一种实现方式中,编码器100中,量化单元和反量化单元可以组合成一个单元。

图2示出了示例性视频解码器200,用于接收例如由编码器100编码的经编码的图像数据(例如,经编码码流)171以获得解码图像231。

解码器200包括输入端202、熵解码单元204、反量化单元210、逆变换单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区230、预测单元260、帧间预测单元244、帧内预测单元254、模式选择单元260和输出端232。

熵解码单元204用于对经编码的图像数据171进行熵解码以获得量化系数209和/或经解码的编码参数(图2中未示出)等,例如帧间预测参数143、帧内预测参数153和/或环路滤波器参数中的(解码的)任一者或全部。

在解码器200的实施例中,反量化单元210、逆变换单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区230、预测单元260和模式选择单元260用于执行编码器100(及其相应功能单元)的逆处理以对经编码的图像数据171进行解码。

具体地,反量化单元210的功能可以与反量化单元110相同;逆变换单元212的功能可以与逆变换单元112相同;重建单元214的功能可以与重建单元114相同;缓冲区216的功能可以与缓冲区116相同;环路滤波器220的功能可以与环路滤波器120相同(关于实际环路滤波器,因为环路滤波器220通常不包括滤波器分析单元来根据原始图像101或块103确定滤波器参数,而是从熵解码单元204等接收(显式或隐式)或获取用于编码的滤波器参数;解码图像缓冲区230的功能可以与解码图像缓冲区130相同。

预测单元260可以包括帧间预测单元244和帧内预测单元254,其中,帧间预测单元244的功能可以与帧间预测单元144相同;帧内预测单元254的功能可以与帧内预测单元154相同。预测单元260和模式选择单元262通常用于进行块预测和/或仅从编码数据171获取预测块265(无需原始图像101的任何其它信息)并用于从熵解码单元204等接收或获取(显式或隐式地)预测参数143或153和/或关于所选预测模式的信息。

解码器200用于通过输出端232等输出解码图像230,向用户呈现或供用户观看。

尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,编码器100和解码器200(相应地,系统300)的实施例也可以用于静止图像处理或译码,即,对视频译码中独立于任何先前或连续图像的单个图像进行处理或译码。通常,在图像处理译码限于单个图像101的情况下,仅帧间估计142、帧间预测144、244不可用。视频编码器100和视频解码器200其它功能(也称为工具或技术),即使不是全部,也有大部分可以同样用于静止图像,例如分割、变换(缩放)106、量化108、反量化单元110、逆变换112、帧内估计142、帧内预测154、254和/或环路滤波120、220以及熵编码170和熵解码204。

本发明涉及去块效应滤波器(在图1和图2中也称为环路滤波器)的内部工作。下文例如结合图4至图19进一步详细描述环路滤波单元120、220。

H.264/AVC、HEVC和VVC等视频译码方案是按照基于块的混合视频译码的原理而设计的。使用该原理,首先将图像分割成块,然后通过帧内或帧间预测来预测每个块。这些块相对地根据邻块进行译码,并与原始信号有某种程度的相似性。由于译码块仅与原始信号近似,因此近似之间的差异可能导致预测块边界和变换块边界处不连续。去块效应滤波器减少了这些不连续。HEVC将H.264/AVC的宏块结构替换为最大大小为64×64个像素的译码树单元(coding tree unit,CTU)的概念。可以根据四叉树分解方案将CTU进一步分割成更小的译码单元(coding unit,CU),这些译码单元可以细分到最小大小8×8个像素。HEVC还引入了预测块(prediction block,PB)和变换块(transform block,TB)的概念。

在HEVC中,针对去块效应滤波器定义了两种滤波器:普通滤波器和强滤波器。普通滤波器在边缘两侧最多修改2个像素点。在强滤波器中,对沿边缘的像素点和某个预定义阈值之间的三项附加检查进行了评估。如果所有这些检查都成立,则应用强滤波器。强滤波器对沿边缘的像素点具有更强的平滑效果,最多可以在边缘两侧修改3个像素点。

一种新的视频编解码器:通用视频译码(Versatile Video Coding,VVC)的目标为实现远超过当前HEVC标准(包括其用于屏幕内容译码和高动态范围译码的当前扩展和近期扩展)的压缩能力。VVC测试模型(VVC Test Model,VTM)采用一种新的块分割结构方案,称为四叉树加二叉树加三叉树(quadtree plus binary tree plus triple tree,QTBTTT)。

该QTBTTT结构去除了多种分割类型的概念,即不再区分译码单元(coding unit,CU)、预测单元(prediction unit,PU)和变换单元(transform unit,TU)。因此CU=PU=TU。QTBTTT可以实现更灵活的CU分割形状,其中,CU可以为正方形或矩形。CU的最小宽度和高度可以为4个像素点,CU大小也可以为4×N或N×4,其中,N的取值范围为[4,8,16,32]。此外,最大CTU的大小增加到128×128个像素,是HEVC中CTU大小的4倍。

对于矩形CU,即使在使用HEVC强滤波器时,靠近短边缘的失真仍会比较明显,从而产生块伪影。沿着大CU的边缘也会观察到块伪影,其中,失真由于较大量的预测和变换操作而明显。

现在已使用长抽头去块效应滤波器来去除属于较大块(例如,较大亮度块或较大色度块)的块伪影。尤其是,由于去块效应滤波(如亮度和色度去块)用于较大块(如变换单元(transform unit,TU)、预测单元(prediction unit,PU)、译码块(coding block,CB)会充满挑战,因此需要考虑在水平CTB(或CTU)边界处的行缓冲区要求,例如,需要考虑在水平CTB(或CTU)边界处对长抽头去块效应滤波器的行缓冲区要求。

图4A描述了对垂直边界的去块效应滤波操作(使用四叉树加二叉树加三叉树(quadtree plus binary tree plus triple tree,QTBTTT)分割)。

图4B描述了对水平边界的去块效应滤波操作(使用四叉树加二叉树加三叉树(quadtree plus binary tree plus triple tree,QTBTTT)分割)。

长抽头滤波器是在边缘的任一侧使用4个以上像素点进行滤波决策和实际滤波器操作的滤波器。需要说明的是,HEVC去块效应滤波器最多只使用4个像素点进行滤波决策和滤波操作。

必须解决图4B中所示的关于“长抽头滤波器”应用以及行缓冲区要求的问题。译码块401、402也称为P、Q,为两个CU,CU大小为4×16个像素点。在另一个示例中,如图16A所示,译码块P(即第一译码块)的块高度≥16,译码块Q(即第二译码块)的块高度=32。

对水平块边缘(用粗黑线标记,如亮度块边缘)进行滤波时,在块边缘任一侧最多修改7个像素点。因此,修改像素点P

在本发明中,关于可用行缓冲区受限时,如何以最佳主观质量对水平(EDGE_HOR)边缘进行去块效应滤波的问题,可以通过图9、图10至图12、图15至图18所示的方法来解决。

要考虑的方面是相应的块边缘相对于编码图像的位置。尤其是,如果当前滤波的块边缘与译码树块(coding tree block,CTB)边界(或译码树单元(coding tree unit,CTU)边界)对齐,并且为水平块边缘,则滤波器输入值和滤波输出值的数量极大地影响用于进行编码的行内存量。这在图15中示出。

图15示出了包括多个译码树单元CTU1-CTU40的图像1500。例如,每个译码树单元具有256×256个像素点值。在一个示例中,如果进行长抽头滤波,可以考虑使用沿编码块边缘的8个像素点值来确定滤波输出值。依次处理译码单元CTU1-CTU40需要较多的行内存。

考虑图15中示出的块边缘1501的去块效应滤波。这里,沿译码单元CTU17和CTT25的整个宽度绘制块边缘1501。然而,在实践中,由于不在译码树单元尺度上进行译码,因此译码块大小明显更小。

由于是依次处理译码树单元CTU1-CTU40来对译码块边1501进行去块效应滤波,因此需要将译码树单元CTU17-CTU24的整个下水平边界区域保持在行内存内。在这里所示的示例中,有8个译码树单元CTU17-CTU24,每个译码单元的宽度为256个像素点,并且8个相关像素点值作为滤波器输入值,因此需要8×256×8=16384个像素点行内存。每个水平译码块边缘都会出现此问题。对于译码树单元CTU9、CTU17、CTU25和CTU33而言,该问题尤其突出,因为在这些情况下,前一行译码树单元的整个水平边界区域都需要保持在行内存中。这在图9和图16A、图16B、图17或图18中进一步描绘。

需要说明的是,与CTU边界重叠的水平边界会出现行缓冲区问题。本发明关注与CTB(或CTU)边界重叠的水平边界,尤其是对与CTB边界重叠的水平边缘进行滤波,在行缓冲区中有X行可用。

例如,本发明关注与CTB(或CTU)边界重叠的水平边界,尤其是对与CTB边界重叠的水平边缘进行滤波,在行缓冲区中有6行可用。

基本上应用非对称长抽头滤波器(基本上它在边缘的任一侧使用不同数量的像素点或抽头进行滤波操作和决策)以免违反行缓冲区。

在一个示例中,行缓冲区可以为4行(如HEVC中)。在另一个示例中,行缓冲区可以为6行,即6行缓冲区。具体地,对于亮度块,行缓冲区可以为4行(如HEVC中)。在另一个示例中,行缓冲区可以为6行,即6行缓冲区。

图9示出了4行的行缓冲区大小。在图9中,示出了包括两个块901、902的图像900。块边缘903将块901和块902分开。根据一个示例,当水平块边缘903与CTB边界重叠时,其中,第一译码块P为CTB边界上方的块901,第二译码块Q为CTB边界下方的块902;MA=3,DA=4。这里,MA是在对水平CTB边界上方的块(如块901)进行滤波的过程中修改的像素点数,而DA是在对水平CTB边界上方的块(如块901)进行滤波决策中使用的像素点数。换句话说,MA可以理解为水平CTB边界上方的块(如块901)的最大滤波器长度。

图17也示出了4行的行缓冲区大小。在图17中,当允许使用4行作为行缓冲区大小时,例如,在上方块的CTB边界处,在滤波器修改期间修改3个像素点;在滤波决策中使用4个像素点,即MA=3且DA=4;例如,在下方块的CTB边界处,在滤波器修改期间修改7个像素点;在滤波决策中使用8个像素点,即MB=7且DB=8。

图16A或图16B示出了行缓冲区大小为6行的示例。在图16A或图16B中,示出了包括两个块1601、1602的图像1600。块边缘1603将块1601和块1602分开。根据一个示例,当水平块边缘1603与译码树块(coding tree block,CTB)边界重叠时,其中,第一译码块(如第一亮度块)P为CTU边界1603上方的块1601,第二译码块(如第二亮度块)Q为CTB边界1603下方的块1602,对于与CTB边界重叠的水平边缘,可以设置DA

如图16A或图16B所示,当允许使用6行作为行缓冲区大小时,例如,在上方块的CTB边界处,在滤波器修改期间修改5个像素点;在滤波决策(用于输入滤波相关参数,如最大滤波器长度的决策过程)中使用6个像素点,即MA=5且DA=6。

在一个示例中,6行可用、用于与CTB边界重叠的水平边缘的滤波器如下表所示:

从表中可以看出,块P的输出像素点p

在另一个示例中,第一滤波输出值p

—p

—q

其中,tcPD

p

q

其中,对于第一译码块P,S=MA,即,在第一图像块中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量,或者,

对于第二译码块Q,S=MB,即,在第二图像块Q中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量。

当行缓冲区大小X=6时,g

如果行缓冲区的大小(例如行缓冲区大小)为X(即,行缓冲区的行缓冲区大小为X行),则对于第一译码块P,DA=X且MA=X–1;第一译码块P的像素点p

或者,当行缓冲区大小X=4时,g

此外,对于与CTB边界重叠的水平边缘,当DA

在一个示例中,DB=8且DA=6,MB=7且MA=5。

在一个示例中,DB=8且DA=7,MB=7且MA=6。

在一个示例中,DB=8且DA=5,MB=7且MA=4。

在一个示例中,DB=8且DA=4,MB=7且MA=3。

参考图6,根据本发明的一个方面,提供了一种去块效应滤波装置。该去块效应滤波装置可以用于图像编码器和/或图像解码器中。该去块效应滤波装置包括:

边缘定位单元603,用于确定各块之间的边缘,其中,各块之间的边缘包括第一译码块P和第二译码块Q之间的水平块边缘(例如,CU边缘或CU边界),所述水平块边缘与译码树块(coding tree block,CTB)边界重叠,其中,第一译码块P为CTB边界上方的块,第二译码块Q为CTB边界下方的其它块;

去块确定单元604,用于根据以下各项确定是否通过应用第一滤波器(即,长抽头滤波器、非对称滤波器、非对称抽头滤波器或HEVC去块效应滤波器)对第一译码块P和第二译码块Q之间的水平块边缘进行滤波:

-与水平块边缘相邻的第一译码块的最多DA个像素点值,作为第一滤波决策值;

-与水平块边缘相邻的第二译码块的最多DB个像素点值,作为第二滤波决策值;其中,DA≠DB或DA

去块效应滤波单元606,用于:当确定应用第一滤波器对第一译码块P和第二译码块Q之间的水平块边缘进行滤波时,将第一滤波器(即长抽头滤波器、非对称滤波器、非对称抽头滤波器或HEVC去块效应滤波器)应用于第一译码块P和第二译码块Q之间的水平块边缘附近的像素点的值。

在一些实施例中,如果行缓冲区的大小(例如行缓冲区大小)为X(即,行缓冲区的行缓冲区大小为X行),则对于第一译码块P,DA=X。第一译码块P的像素点p

在一些实施例中,修改第一译码块中垂直于水平块边缘并与水平块边缘相邻的列(如每一列)的最多MA个像素点值,修改第二译码块中垂直于水平块边缘并与水平块边缘相邻的列(如每一列)的最多MB个像素点值;其中,MA≠MB或MA

在一些实施例中,如果行缓冲区的大小(例如行缓冲区大小)为X(即,行缓冲区的行缓冲区大小为X行),则对于第一译码块P,MA=X–1;

第一译码块P的像素点p

在一些实施例中,DB=8,DA=6;MB=7且MA=5。

在一些实施例中,当行缓冲区的大小(例如行缓冲区大小)为6时,可以将第一译码块P的最多L行用于滤波决策,L=6。

在一些实施例中,当应用6行缓冲区(例如,行缓冲区大小为6的行缓冲区)时,去块确定单元604用于确定是否满足扩展滤波条件等式:sp′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第一译码块P的像素点值,所述水平块边缘与CTU边界重叠;

其中,sp

在一些实施例中,当应用6行缓冲区且第二译码块Q的块大小SB≥预定大小(如32)时,去块确定单元604用于确定是否满足扩展滤波条件等式sq′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第二译码块Q的像素点值,所述水平块边缘与CTU边界重叠。在这里,sq

在一些实施例中,当应用4行缓冲区时,去块确定单元604用于确定是否满足扩展滤波条件等式:sp′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第一译码块P的像素点值,所述水平块边缘与CTU边界重叠。在这里,sp

在一些实施例中,去块效应滤波单元606用于根据以下等式,确定第一滤波输出值p

—p

—q

其中,tcPD

p

q

其中,对于第一译码块P,S=MA,即,在第一图像块中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量,或者,

对于第二译码块Q,S=MB,即,在第二图像块Q中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量。

在一些实施例中,当行缓冲区大小X=6时,g

在一些实施例中,当行缓冲区大小X=4时,g

在一些实施例中,第一译码块P的像素点p

在一些实施例中,行缓冲区的行缓冲区大小为6行,将第一译码块P的像素点p

在一些实施例中,第一译码块P的像素点p

需要说明的是,当应用6行缓冲区时,修改滤波条件以使用上方块“P”的受限制行数。允许的最大像素点数为p

像素点p

例如,在上述情况下,当DB=8且DA=6时,MB=7且MA=5。

对于上译码块(P),可以使用最多6个像素点,可以修改最多5个像素点,而对于下译码块(Q),可以修改最多7个像素点,可以使用最多8个像素点。

根据本发明实施例的不同实现方式,可以使用的其它可能值可以为:

DB=8且DA=7,MB=7且MA=6;

DB=8且DA=5,MB=7且MA=4;

DB=8且DA=4,MB=7且MA=3;

可以使用与上文相同的逻辑来推导滤波条件和滤波等式。

可以用于上方块和下方块的其它可能值为:

另外,DB=4且DA=4,MB=3且MA=3。该组合可以使用简单的HEVC强滤波器。HEVC去块效应滤波器在边缘的任一侧最多修改3个像素点。

图7为用于确定是否应使用长抽头滤波器的方法的流程图。如图7所示,为了使“长抽头滤波器”条件成立,应满足HEVC强滤波器条件。上文已详述步骤707。在步骤709中使用的长抽头滤波器与在步骤708中使用的普通长抽头滤波器不同,已在上文中详述。在一些示例中,优于HEVC滤波器,在步骤708中,普通长抽头滤波器在边缘的每一侧使用8个像素点进行滤波决策,并在边缘的每一侧修改7个像素点。然而,在步骤709中,长抽头滤波器在边缘的每一侧使用8个像素点进行滤波决策,并在边缘的一侧修改7个像素点,而在边缘的另一侧修改3个像素点。

图8示出了用于确定是否满足HEVC强滤波条件的细节。图8的流程图总结了对块边界的去块效应滤波决策,包括强滤波和普通滤波之间的决策。

在第一步骤800中,检查当前滤波的块边缘是否与8×8编码像素点网格对齐。如果对齐,则在第二步骤801中,检查待滤波的块边缘是否为预测单元或变换单元之间的边界。如果是,则在第三步骤802中,检查边界强度Bs是否大于0。如果该条件也满足,则在第四步骤803中,检查条件7.1是否成立。

条件7.1用于检查是否对块边界应用去块效应滤波。该条件尤其检查块边界两侧的信号偏离直线(斜线)的程度。

如果不满足该条件,或者步骤800、801和802中有任一项检查没有满足,则在第五步骤804中确定不进行滤波。

在第六步骤803中,如果检查条件7.1成立,则在第七步骤806中,检查是否满足另外的条件7.2、7.3和7.4。

条件7.2检查块边界两侧没有明显的信号变化。条件7.3验证两侧的信号是平坦的。条件7.4确保块边界两侧的像素点值之间的步长较小。

如果所有这些条件都成立,则在第八步骤807中,执行强滤波。步骤807直接替换为图7的步骤702。如果上述条件不成立,则在第九步骤808中,确定执行普通滤波。

该解决方案强制执行部分去块流程图,从而仅进行一次像素点修改。

在一些示例中,“非对称”滤波器用于与CTB边界重叠的水平边缘,有6行或4行可用。

图16(=图16A和图16B)示出该方法。在图16中,示出了包括两个块1601、1602的图像1600。块边缘1603将块1601和块1602分开。根据本发明的第一实施例,水平块边缘1603与译码树块(coding tree block,CTB)边界重叠,其中,第一译码块P为CTB边界1603上方的块1601,第二译码块Q为CTB边界1603下方的块1602;图16(=图16A和图16B)示出了大小为6行的行缓冲区。对于与CTB边界重叠的水平边缘,设置DA

换句话说,译码块P 1601为CTB边界1603一侧的块,而译码块Q 1602为CTB边界1603另一侧的块。应理解,在一个示例中,译码块P 1601为CTB边界1603上方的块,译码块Q1602为CTB边界1603下方的块。相应地,将当前译码块视为译码块Q 1602。在另一个示例中,如果译码块P为CTB边界下方的块,而译码块Q为CTB边界上方的块。相应地,将当前译码块视为译码块P。可以理解的是,对于水平边界,下方块是当前译码块。本发明也可以以上述方式应用于这两种场景。将像素点p

需要说明的是,第一滤波器可以是非对称滤波器,在块边缘(例如CU边缘)的任一侧修改不同数量的像素点。

在一个示例中,在上方块的CTB边界处,当行缓冲区的大小为6行时,可以使用最多修改5个像素点的“长抽头”滤波器。在下文中,当块高度大于或等于16个像素点时,可以使用“长抽头”滤波器,该“长抽头”滤波器最多使用6个像素点作为滤波器输入值,并且最多修改5个像素点作为滤波输出值。

在另一个示例中,在上方块的CTB边界处,当行缓冲区的大小为4行时,可以使用修改3个像素点的“长抽头”滤波器。在下文中,当块高度大于或等于16个像素点时,可以使用“长抽头”滤波器,该“长抽头”滤波器使用4个像素点作为滤波器输入值,并且最多修改3个像素点作为滤波输出值。

如图16(=图16A或16B)或图17所示,如果行缓冲区的大小(例如行缓冲区大小)为X,则对于第一译码块P,DA=X且MA=X–1。将第一译码块P的像素点p

综上所述,本发明可以应用于第一译码块和第二译码块为亮度块,且行缓冲区的缓冲区大小为X行(如4行)的场景。

可以理解,本发明也可以应用于第一译码块和第二译码块为色度块,且行缓冲区的缓冲区大小为X行(如2行)的场景。

由于在水平色度CTU边界处可能出现潜在的“大块”块伪影,因此本发明可以使用长抽头非对称滤波器,该长抽头非对称滤波器修改上方块的MA个像素点,仍可以修改下方块的最多MB个像素点,以更有效地去除块伪影。

图18示出了行缓冲区大小为2行的示例。在图18中,示出了包括两个块1801、1802的图像1800。块边缘1803将块1801和块1802分开。根据一个示例,当水平块边缘1803与译码树块(coding tree block,CTB)边界重叠时,其中,第一译码块(如第一亮度块)P为CTU边界1803上方的块1801,第二译码块(如第二亮度块)Q为CTB边界1803下方的块1802,对于与色度CTB边界重叠的水平边缘,可以设置DA

对于较长抽头滤波器决策,原始滤波等式如下:

dp0=Abs(p

dp1=Abs(p

dq0=Abs(q

dq1=Abs(q

在水平CTU边界处,修改的较长抽头滤波器决策如下:(仅将p

dp0=Abs(p

dp1=Abs(p

dq0=Abs(q

dq1=Abs(q

用于色度较长抽头去块的原始较长抽头滤波等式如下:

p

p

p

q

q

q

在水平CTU边界处,修改的较长抽头去块等式如下:

p

q

q

q

可以通过在译码块P侧用最外部可用像素点填充不可用像素点来推导滤波等式。

如下以说明书的格式描述所提出方法的细节。上述实施例可表示为对VVC初稿(第8.8.3.3部分)的以下修改:

8.8.3.3变换块边界的推导过程

该过程的输入是:

–位置(xCb,yCb),表示当前译码块相对于当前图像的左上像素点的左上像素点;

–变量nCbW,表示当前译码块的宽度;

–变量nCbH,表示当前译码块的高度;

–变量cIdx,表示当前译码块的颜色分量;

–变量filterEdgeFlag;

–二维(nCbW)x(nCbH)阵列edgeFlags;

–二维(nCbW)x(nCbH)阵列maxFilterLengthQs和maxFilterLengthPs;

–变量edgeType,指定是否对垂直边缘(EDGE_VER)或水平边缘(EDGE_HOR)进行滤波。

该过程的输出是:

–修改的二维(nCbW)x(nCbH)阵列edgeFlags;

–修改的二维(nCbW)x(nCbH)阵列maxFilterLengthQs、maxFilterLengthPs。

根据edgeType、edgeFlags,如下推导maxFilterLengthPs和maxFilterLengthQs阵列:

–变量gridSize设置如下:

gridSize=cIdx==0?4:8(8-1024)

–如果edgeType等于EDGE_VER:

–则将变量numEdges设置为Max(1,nCbW/gridSize)。

–对于xEdge=0..numEdges–1且y=0..nCbH–1:

–将当前译码块内的水平位置x设置为xEdge×gridSize。

–edgeFlags[x][y]的值如下推导:

–如果pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,且对于任意n=0..pps_num_ver_virtual_boundaries-1,(xCb+x)等于PpsVirtualBoundariesPosX[n],则将edgeFlags[x][y]设置为0。

–否则,如果x等于0,则将edgeFlags[x][y]设置为filterEdgeFlag。

–否则,如果位置(xCb+x,yCb+y)在变换块边缘,则将edgeFlags[x][y]设置为1。

–当edgeFlags[x][y]=1时:

–如果cIdx等于0,则:

-如下推导maxFilterLengthQs[x][y]的值:

–如果变换块在亮度位置(xCb+x,yCb+y)处以亮度像素点计算的宽度等于或小于4,或变换块在亮度位置(xCb+x-1,yCb+y)处以亮度像素点计算的宽度等于或小于4,则将maxFilterLengthQs[x][y]设置为1。

–否则,如果变换块在亮度位置(xCb+x,yCb+y)处以亮度像素点计算的宽度等于或大于32,则将maxFilterLengthQs[x][y]设置为7。

–否则,将maxFilterLengthQs[x][y]设置为3。

-如下推导maxFilterLengthPs[x][y]的值:

–如果变换块在亮度位置(xCb+x,yCb+y)处以亮度像素点计算的宽度等于或小于4,或变换块在亮度位置(xCb+x-1,yCb+y)处以亮度像素点计算的宽度等于或小于4,则将maxFilterLengthPs[x][y]设置为1。

–否则,如果变换块在亮度位置(xCb+x–1,yCb+y)处以亮度像素点计算的宽度等于或大于32,则将maxFilterLengthPs[x][y]设置为7。

–否则,将maxFilterLengthPs[x][y]设置为3。

–否则(cIdx不等于0),如下推导maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]:

–如果变换块在色度位置(xCb+x,yCb+y)处以色度像素点计算的宽度和在色度位置(xCb+x–1,yCb+y)处的宽度均等于或大于8,则将maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]设置为3。

–否则,将maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]均设置为1。

–否则(edgeType等于EDGE_HOR):

–将变量numEdges设置为Max(1,nCbH/gridSize)。

–对于yEdge=0..numEdges-1且x=0..nCbW-1:

–将当前译码块内的垂直位置y设置为yEdge×gridSize。

–edgeFlags[x][y]的值如下推导:

–如果pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,且对于任意n=0..pps_num_hor_virtual_boundaries-1,(yCb+y)等于PpsVirtualBoundariesPosY[n],则将edgeFlags[x][y]设置为0。

–否则,如果y等于0,则将edgeFlags[x][y]设置为filterEdgeFlag。

–否则,如果位置(xCb+x,yCb+y)在变换块边缘,则将edgeFlags[x][y]设置为1。

–当edgeFlags[x][y]=1时:

–如果cIdx等于0,则:

–如下推导maxFilterLengthQs[x][y]的值:

–如果变换块在亮度位置(xCb+x,yCb+y)处以亮度像素点计算的高度等于或小于4,或变换块在亮度位置(xCb+x,yCb+y–1)处以亮度像素点计算的高度等于或小于4,则将maxFilterLengthQs[x][y]设置为1。

–否则,如果变换块在亮度位置(xCb+x,yCb+y)处以亮度像素点计算的高度等于或大于32,则将maxFilterLengthQs[x][y]设置为7。

–否则,将maxFilterLengthQs[x][y]设置为3。

–如下推导maxFilterLengthPs[x][y]的值:

–如果变换块在亮度位置(xCb+x,yCb+y)处以亮度像素点计算的高度等于或小于4,或变换块在亮度位置(xCb+x,yCb+y–1)处以亮度像素点计算的高度等于或小于4,则将maxFilterLengthPs[x][y]设置为1。

–否则,如果变换块在亮度位置(xCb+x,yCb+y–1)处以亮度像素点计算的高度等于或大于32,则将maxFilterLengthPs[x][y]设置为7。

–否则,将maxFilterLengthPs[x][y]设置为3。

–否则(cIdx不等于0),如下推导maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]:

–当以下所有条件都成立时,将maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]设置为3。

–变换块在色度位置(xCb+x,yCb+y)处以色度像素点计算的高度和在色度位置(xCb+x,yCb+y–1)处的高度均等于或大于8。

–否则,如果(yCb+y)%CtbHeightC等于0,即水平边缘与上色度CTB边界重叠,且变换块在色度位置(xCb+x,yCb+y)处以色度像素点计算的高度和在色度位置(xCb+x,yCb+y–1)处的高度等于或大于8,则将maxFilterLengthPs[x][y]设置为1,将maxFilterLengthQs[x][y]设置为3,并将变量isHorCTBBoundary设置为true。

–否则,将maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]均设置为1。上述实施例也可以表示为对VVC初稿(第8.8.3.6.3部分)的以下修改:

8.8.3.6.3色度块边缘的决策过程

……当maxFilterLengthCbCr等于3时,执行如下顺序步骤:

1.如下推导变量n1、dpq0、dpq1、dp、dq和d:

n1=(subSampleC==2)?1:3(8-1138)

如果变量isHorCTBBondary为true,则p

dp0=Abs(p

dp1=Abs(p

dq0=Abs(q

dq1=Abs(q

dpq0=dp0+dq0 (8-1143)

dpq1=dp1+dq1 (8-1144)

dp=dp0+dp1 (8-1145)

dq=dq0+dq1 (8-1146)

d=dpq0+dpq1(8-1147)

……

因此,本发明还可以将非对称滤波器用于色度去块(类似于亮度去块),修改上方块的1个像素点,但最多可以修改下方块的3个像素点,如图18所示。由于修改了更多的像素点,因此与使用只在边缘的任一侧修改1个像素点的普通色度滤波器相比,该滤波器可以更有效地去除块伪影。此外,本发明还可以提高水平色度CTU边界处较大块的主观质量。

图6为框图,示出了本发明中描述的技术提供的示例性去块效应滤波装置600(例如,下文根据图7、图8或图10至图12进一步详细描述)。去块效应滤波装置600可用于根据本申请中描述的各种示例执行去块技术。通常,图1的环路滤波器120和图2的环路滤波器220中的任一个或两者可以包括实质上类似于去块效应滤波器600的组件。其它视频译码设备,如视频编码器、视频解码器、视频编码器/解码器(CODEC)等也可以包括实质上类似于去块效应滤波器600的组件。去块效应滤波器600可以在硬件、软件或固件或其任意组合中实现。当在软件或固件中实现时,也可以提供对应的硬件(例如,用于存储用于软件或固件的指令的一个或多个处理器或处理单元和存储器)。

在图6的示例中,去块效应滤波装置600包括去块确定单元604、存储在存储器中的支持定义602、去块效应滤波单元606、存储在存储器中的去块效应滤波参数608、边缘定位单元603和边缘位置数据结构605。去块效应滤波器600的任何或所有组件都可以功能集成。去块效应滤波器600的组件仅出于说明的目的而单独示出。通常,去块效应滤波器600例如从求和组件114、214接收解码块的数据,其中,所述求和组件114、214将块的预测数据与残差数据合并。所述数据还可以包括如何预测块的指示。在下述示例中,去块效应滤波装置600用于接收数据,所述数据包括与CTB(或LCU)相关联的解码视频块及用于CTB的CU四叉树,其中,CU四叉树描述将CTB分割成CU的方式,以及叶节点CU的PU和TU的预测模式。

去块效应滤波装置600可以将边缘位置数据结构605保持在去块效应滤波装置600的存储器中,或在对应视频译码设备提供的外部存储器中。在一些示例中,边缘定位单元603可以接收与CTB对应的四叉树,该四叉树指示将CTB分割成CU的方式。然后,边缘定位单元603可以分析CU四叉树,以确定候选进行去块效应滤波、与CTB中CU的TU和PU相关联的解码视频块之间的边缘。

边缘位置数据结构605可以包括具有水平维度、垂直维度以及代表水平边缘和垂直边缘的维度的阵列。通常,视频块之间的边缘可能会在与CTB的最小CU、或CU的TU和PU相关联的两个视频块之间出现。假设CTB的大小为N×N,且CTB的最小CU的大小为M×M,则阵列的大小可以为[N/M]×[N/M]×2,其中,“2”表示CU之间的两个可能的边缘方向(水平方向和垂直方向)。例如,假设CTB具有64×64个像素和8×8最小CU,则阵列可以包括[8]×[8]×[2]个项。

通常,每个项可以对应两个视频块之间的可能边缘。实际上,边缘可能不在LCU内与边缘位置数据结构605的每个项对应的每个位置处。因此,可以将数据结构的值初始化为false。通常,边缘定位单元603可以分析CU四叉树以确定与CTB的CU的TU和PU相关联的两个视频块之间的边缘位置,并将边缘位置数据结构605中的对应值设置为true。

通常,阵列的项可以描述CTB中是否存在对应的边缘作为去块候选项。也就是说,当边缘定位单元603确定与CTB的CU的TU和PU相关联的两个相邻视频块之间存在边缘时,边缘定位单元603可以在边缘位置数据结构605中设置对应项的值以表示边缘存在(例如,将值设置为true)。

通常,去块确定单元604用于确定是否应该对两个相邻块之间的边缘进行去块效应滤波。去块确定单元604可以使用边缘位置数据结构605确定边缘位置。在一些示例中,当边缘位置数据结构605的值具有布尔值时,去块确定单元604可以确定“true”值表示存在边缘,“false”值表示不存在边缘。

通常,去块确定单元604配置有一个或多个去块确定函数。这些函数可以包括多个系数,这些系数应用于跨越各块之间边缘的像素行。例如,对于亮度块,可以将函数应用于垂直于边缘的像素行,其中,MA(例如3、4或5)个像素位于两个块中的一个块中,而MB(例如7)个像素位于两个块中的另一个块中。例如,对于色度块,可以将函数应用于垂直于边缘的像素行,其中,MA(如1)个像素位于两个块中的一个块中,而MB(例如3)个像素位于两个块中的另一个块中。支持定义602定义对函数的支持。通常,“支持”对应应用函数的像素。

去块确定单元604可以用于将一个或多个去块确定函数应用于由支持定义602定义的一个或多个支持集合,以确定是否应该对两个视频数据块之间的特定边缘进行去块效应滤波。源自去块确定单元604的虚线表示未进行滤波而输出块数据。在去块确定单元604确定不应对两个块之间的边缘进行滤波的情况下,去块效应滤波器600可以在不改变块数据的情况下输出该数据。也就是说,数据可以绕过去块效应滤波单元606。另一方面,当去块确定单元604确定应该对边缘进行去块效应滤波时,去块确定单元604可以使去块效应滤波单元606对边缘附近像素的值进行滤波,以便对边缘进行去块效应滤波。

去块效应滤波单元606从用于(如去块确定单元604所指示)待去块边缘的去块效应滤波参数608中检索去块效应滤波器的定义。通常,对边缘进行滤波使用待去块的当前边缘附近像素的值。因此,去块决策函数和去块效应滤波器都可以在边缘的两侧具有一定的支持区域。通过将去块效应滤波器应用于边缘附近的像素,去块效应滤波单元606可以平滑像素值,从而抑制边缘附近的高频转化。以这种方式,对边缘附近的像素应用去块效应滤波器可以减少边缘附近的块伪影。

本发明适用于图6中的去块确定单元604和去块效应滤波单元606。

需要说明的是,本文呈现的技术不限于特定的去块效应滤波器实现方式,且本发明描述的去块效应滤波器是去块效应滤波器实现方式的一些示例。

图10为框图,示出了本发明中描述的技术提供的一种示例性去块效应滤波方法(例如,下文根据图7、图8和图16(=图16A和16B)、图17和图18进一步详细描述)。其中,块边缘包括第一译码块和第二译码块之间的水平块边缘(例如CU边缘或CU边界),其中,所述水平块边缘与译码树块(coding tree block,CTB)边界重叠;其中,所述第一译码块P为CTB边界上方的块,所述第二译码块Q为CTB边界下方的块;其中,所述第一译码块沿垂直于水平块边缘的垂直方向具有块大小SA,所述第二译码块沿垂直于水平块边缘的方向具有块大小SB,

在图10中,示出了去块效应滤波方法的实施例。

在步骤1001中,使用与水平块边缘相邻的第一译码块的最多DA个像素点值,作为第一滤波决策值;

在步骤1002中,使用与水平块边缘相邻的第二译码块的最多DB个像素点值,作为第二滤波决策值;

在步骤1003中,修改与水平块边缘相邻的第一译码块的最多MA个像素点值,作为第一滤波输出值;

在步骤1004中,修改与水平块边缘相邻的第二译码块的最多MB个像素点值,作为第二滤波输出值;

其中,DA≠DB且MA≠MB,SA>DA>MA且SB>DB>MB。

如果行缓冲区的大小(例如行缓冲区大小)为X,则对于第一译码块P,DA=X且MA=X–1;

第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,SA≠SB或SA=SB。

在所述实施例的另一种可能的实现方式中,DA

在所述实施例的另一种可能的实现方式中,DB=8且DA=6,MB=7且MA=5。

在所述实施例的另一种可能的实现方式中,DB=8且DA=7,MB=7且MA=6。

在所述实施例的另一种可能的实现方式中,DB=8且DA=5,MB=7且MA=4。

在所述实施例的另一种可能的实现方式中,DB=8且DA=4,MB=7且MA=3。

在所述实施例的另一种可能的实现方式中,当应用6行缓冲区(例如,行缓冲区大小为6的行缓冲区)时,检查扩展滤波条件等式sp′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第一译码块P的像素点值,所述水平块边缘与CTB边界重叠。在这里,sp

在所述实施例的另一种可能的实现方式中,当应用6行缓冲区且第二译码块Q的块大小SB≥预定大小(如32)时,检查扩展滤波条件等式sq′

在所述实施例的另一种可能的实现方式中,当应用4行缓冲区时,检查扩展滤波条件等式sp′

在所述实施例的另一种可能的实现方式中,第一滤波输出值p

—p

—q

其中,tcPD

p

q

其中,对于第一译码块P,S=MA,即,在第一图像块中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量,或者,

对于第二译码块Q,S=MB,即,在第二图像块Q中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量。

在所述实施例的另一种可能的实现方式中,行缓冲区大小X=6,g

在所述实施例的另一种可能的实现方式中,行缓冲区大小X=4,g

在所述实施例的另一种可能的实现方式中,第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,行缓冲区的行缓冲区大小为6行,将第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,第一滤波器为长抽头滤波器、非对称滤波器、非对称抽头滤波器。

在所述实施例的另一种可能的实现方式中,第一译码块P的像素点p

需要说明的是,滤波器输入值为从块边缘开始、垂直于块边缘并与块边缘相邻的连续值。此外,滤波输出值为从块边缘开始、垂直于块边缘并与块边缘相邻的连续值。

图11为框图,示出了本发明中描述的技术提供的另一种示例性去块效应滤波方法(例如,下文根据图7、图8和图16(=图16A和16B)、图17和图18进一步详细描述)。

在步骤1101中,确定各块之间的边缘,其中,各块之间的边缘包括第一译码块P和第二译码块Q之间的水平块边缘(例如,CU边缘或CU边界),所述水平块边缘与译码树块(coding tree block,CTB)边界重叠,其中,第一译码块P为CTB边界上方的块,第二译码块Q为CTB边界下方的其它块。

在步骤1102中,根据以下各项确定是否通过应用第一滤波器(即,长抽头滤波器、非对称滤波器、非对称抽头滤波器或HEVC去块效应滤波器)对第一译码块P和第二译码块Q之间的水平块边缘进行滤波:

–与水平块边缘相邻的第一译码块的最多DA个像素点值,作为第一滤波决策值;

–与水平块边缘相邻的第二译码块的最多DB个像素点值,作为第二滤波决策值;其中,DA≠DB或DA

在步骤1103中,当确定应用第一滤波器对第一译码块P和第二译码块Q之间的水平块边缘进行滤波时,将第一滤波器(即长抽头滤波器、非对称滤波器、非对称抽头滤波器)应用于第一译码块P和第二译码块Q之间的水平块边缘附近的像素点的值。

在所述实施例的另一种可能的实现方式中,如果行缓冲区的大小(例如行缓冲区大小)为X,则对于第一译码块P,DA=X;

第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,修改与水平块边缘相邻的第一译码块的最多MA个像素点值,修改与所述水平块边缘相邻的第二译码块的最多MB个像素点值,其中,MA≠MB或MA

在所述实施例的另一种可能的实现方式中,如果行缓冲区的大小(例如行缓冲区大小)为X,则对于第一译码块P,MA=X–1;

第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,DB=8且DA=6;MB=7且MA=5。

在所述实施例的另一种可能的实现方式中,当行缓冲区的大小(例如行缓冲区大小)为6时,可以将第一译码块P的最多L行用于滤波决策,L=6。

在所述实施例的另一种可能的实现方式中,当应用6行缓冲区(例如,行缓冲区大小为6的行缓冲区)时,去块确定单元用于确定是否满足扩展滤波条件等式:sp′

sp

基本上,滤波条件主要针对译码块P变化。对于译码块Q,在CTB边界处的边缘的滤波条件保持不变,而不在CTB边界处的边缘的滤波条件会变化。

在所述实施例的另一种可能的实现方式中,当应用6行缓冲区且第二译码块Q的块大小SB大于或等于预定大小(如32)时,去块确定单元用于确定是否满足扩展滤波条件等式sq′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第二译码块Q的像素点值,所述水平块边缘与CTB边界重叠。

在这里,sq

在所述实施例的另一种可能的实现方式中,当应用4行缓冲区时,去块确定单元用于确定是否满足扩展滤波条件等式:sp′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第一译码块P的像素点值,所述水平块边缘与CTB边界重叠。在这里,sp

在所述实施例的另一种可能的实现方式中,去块效应滤波单元用于根据以下等式,确定第一滤波输出值p

—p

—q

其中,tcPD

根据块P和Q的S,Middle

p

q

其中,对于第一译码块P,S=MA,即,在第一图像块中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量,或者,

对于第二译码块Q,S=MB,即,在第二图像块Q中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量。

在所述实施例的另一种可能的实现方式中,行缓冲区大小X=6,g

需要说明的是,P7或P3基本上为等式中的P

在所述实施例的另一种可能的实现方式中,行缓冲区大小X=4,g

在所述实施例的另一种可能的实现方式中,第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,DB=8且DA=6,MB=7且MA=5。

在所述实施例的另一种可能的实现方式中,DB=8且DA=7,MB=7且MA=6。

在所述实施例的另一种可能的实现方式中,DB=8且DA=5,MB=7且MA=4。

在所述实施例的另一种可能的实现方式中,DB=8且DA=4,MB=7且MA=3。

在所述实施例的另一种可能的实现方式中,行缓冲区的行缓冲区大小为6行,将第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,第一译码块P的像素点p

如图16A或16B所示,对于上方块(P),可以使用最多6个像素点进行滤波决策,可以修改最多5个像素点,而对于下方块(Q),可以修改最多7个像素点,可以使用最多8个像素点进行滤波决策。

需要说明的是,滤波器输入值为从块边缘开始、垂直于块边缘并与块边缘相邻的连续值。此外,滤波输出值为从块边缘开始、垂直于块边缘并与块边缘相邻的连续值。

图12为框图,示出了本发明中描述的技术提供的示例性去块效应滤波方法(例如,下文根据图7、图8和图16(=图16A和16B)、图17和图18进一步详细描述)。其中,块边缘包括当前图像块和当前图像块的相邻图像块之间的水平块边缘(例如CU边缘或CU边界),其中,所述当前图像块为水平块边缘上方的块;其中,所述当前图像块沿垂直方向具有块大小SA,所述垂直方向垂直于水平块边缘,

在图12中,示出了去块效应滤波方法的实施例。

在步骤1201中,在水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下,至少根据与CTB边界相关联的行缓冲区的行缓冲区大小确定当前图像块的最大滤波长度MA;

在步骤1203中,将所述当前图像块的最多MA个像素点的值修改为第一滤波输出值,其中,所述最多MA个像素点是从所述当前图像块垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的。

因此可以根据可用的行缓冲区调整滤波决策和滤波,从而获得最佳的主观质量。

如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,则MA=X–1,其中,X是正整数。

所述方法还包括:

在步骤1202中,在水平块边缘与译码树块(coding tree block,CTB)的水平边界重叠的情况下,将当前图像块的最多DA个像素点的值作为第一滤波决策值,其中,所述最多DA个像素点是从所述当前图像块中垂直于所述水平块边缘并与所述水平块边缘相邻的列中获取的。

在所述实施例的一些可能的实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,则DA=X且MA=X–1,其中,X是正整数。

在所述实施例的一些可能的实现方式中,当所述当前图像块为色度块时,与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为2行;或者,

当所述当前图像块为亮度块时,与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为4行。

在所述实施例的一些可能的实现方式中,如果与所述CTB边界相关联的所述行缓冲区的行缓冲区大小为X行,

则所述当前图像块的像素点p

值得说明的是,当前图像块的像素点p

值得说明的是,当前图像块的像素点p

在所述实施例的另一种可能的实现方式中,当前图像块的像素点p

根据所述实施例的这类实现方式,由于填充的像素点可以仅作为可用像素点处理,因此不需要改变原始的滤波决策和滤波过程,从而尽量不增加计算复杂度,特别是在硬件方面。

在一个示例中,当所述行缓冲区的行缓冲区大小为2行时,所述像素点p

在所述实施例的不同实现方式中,

当所述当前图像块为亮度块且SA等于或大于32时,MA=3,其中,SA为所述当前图像块的高度;或者,

当所述当前图像块为亮度块且SA等于或大于16时,MA=3,其中,SA为所述当前图像块的高度。

在所述实施例的不同实现方式中,

当所述当前图像块为亮度块且SA等于或大于32时,DA=4,其中,SA为所述当前图像块的高度;或者,

当所述当前图像块为亮度块且SA等于或大于16时,DA=4,其中,SA为所述当前图像块的高度。

在所述实施例的另一种可能的实现方式中,当所述当前图像块为色度块且SA等于或大于8时,MA=1,其中,SA为所述当前图像块的高度。

在所述实施例的另一种可能的实现方式中,

当所述当前图像块为色度块且SA等于或大于8时,DA=2,其中,SA为所述当前图像块的高度。

所述方法还包括:

在步骤1001中,当所述当前图像块为色度块时,确定所述水平块边缘是否与色度CTB的水平边界重叠;或者,

当所述当前图像块为亮度块时,确定所述水平块边缘是否与亮度CTB的水平边界重叠。

需要说明的是,当前图像块的像素点p

可以理解的是,当前图像块为变换块,或当前图像块为译码块。

图13为示例性实施例提供的装置1300的简化框图,其中,装置1300可用作图3中的源设备310和目的地设备320中的任一个或两个。装置1300可以实现本发明的技术。装置1300可以是包括多个计算设备的计算系统的形式,也可以是单个计算设备的形式,例如手机、平板电脑、膝上型电脑、笔记本电脑、台式计算机等。

装置1300中的处理器1302可以是中央处理单元。或者,处理器1302可以是现有的或今后将开发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器1302等单个处理器来实现所公开的实现方式,但使用一个以上处理器可以提高速度和效率。

在一种实现方式中,装置1300中的存储器1304可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器1304。存储器1304可用于存储处理器1302通过总线1312访问的代码和/或数据1306。存储器1304还可以用于存储操作系统1308和应用程序1310。应用程序1310可以包括至少一个程序,该至少一个程序允许处理器1302执行本文描述的方法。例如,应用程序1310可以包括应用1至N,还可以包括执行本文所述方法的视频译码应用。装置1300还可以包括辅助存储器1314形式的附加存储器,辅助存储器1314可以是与移动计算设备一起使用的存储卡等。由于视频通信会话可能包括大量信息,因此可以全部或部分地存储在存储器1314中,并根据需要加载到存储器1304中进行处理。

装置1300还可以包括一个或多个输出设备,如显示器1318。在一个示例中,显示器1318可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器1318可以通过总线1312耦合到处理器1302。除了显示器1318或作为显示器1318的替代,可以提供允许用户对装置1300进行编程或以其它方式使用装置1300的其它输出设备。当所述输出设备是显示器或包括显示器时,所述显示器可以通过各种方式实现,包括通过液晶显示器(liquid crystal display,LCD)、阴极射线管(cathode-ray tube,CRT)显示器、等离子显示器或发光二极管(light emitting diode,LED)显示器,如有机LED(organic LED,OLED)显示器实现。

装置1300还可以包括图像传感设备1320或与图像传感设备1320通信,所述图像传感设备1320例如摄像机,或现有的或今后将开发出的能够感测图像(如操作装置1300的用户的图像)的任何其它图像传感设备1320。可以对图像传感设备1320进行定位,从而朝向操作装置1300的用户。在一个示例中,可以配置图像传感设备1320的位置和光轴,使得视野包括与显示器1318直接相邻并且可以看到显示器1318的区域。

装置1300还可以包括声音传感设备1322或与声音传感设备1322通信,所述声音传感设备1322例如麦克风,或现有的或今后将开发出的能够感测装置1300附近声音的任何其它声音传感设备。可以对声音传感设备1322进行定位,从而朝向操作装置1300的用户,所述声音传感设备1322可以用于接收用户在操作装置1300时发出的语音或其它话语等声音。

虽然图13描述了装置1300的处理器1302和存储器1304集成到一个单元中,但是还可以有其它配置。处理器1302的操作可以分布在多个机器(每个机器具有一个或多个处理器)中,这些机器可以直接耦合或通过局域网或其它网络耦合。存储器1304可以分布在多个机器中,如基于网络的存储器或执行装置1300的操作的多个机器中的存储器。虽然装置1300的总线1312在本文中描述为单个总线,但是总线1312可以包括多个总线。此外,辅助储存器1314可以直接耦合到装置1300的其它组件或可以通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置1300可以通过多种配置实现。

图14是本发明实施例提供的用于视频译码的示例性设备1400的示意图。计算设备1400适用于实现本文描述的公开实施例。在一个实施例中,计算设备1400可以是解码器(如图2的视频解码器200)或编码器(如图1的视频编码器100)。在一个实施例中,计算设备1400可以是如上所述的图2的视频解码器200或图1的视频编码器100的一个或多个组件。

计算设备1400包括:入端口1420和接收单元(Rx)1410,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,CPU)1430,用于处理数据;发送单元(Tx)1440和出端口1450,用于发送数据;存储器1460,用于存储数据。计算设备1400还可以包括与入端口1420、接收单元1410、发送单元1440和出端口1450耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。在一些示例中,计算设备1400还可以包括无线发送器和/或接收器。

处理器1430通过硬件和软件实现。处理器1430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器1430与入端口1420、接收单元1410、发送单元1440、出端口1450和存储器1460通信。处理器1430包括译码模块1414。译码模块1414用于实现上述公开的实施例。例如,译码模块1414用于实施、处理、准备或提供各种译码操作。因此,包括译码模块1414显著改进了计算设备1400的功能,实现了计算设备1400不同状态的转换。或者,译码模块1414实现为存储在存储器1460中并由处理器1430执行的指令(例如,存储在非瞬时性介质中的计算机程序产品)。

存储器1460包括一个或多个磁盘、磁带机和固态硬盘,可用作溢出数据存储设备,以在选择执行程序时存储这类程序,并存储在程序执行期间读取的指令和数据。存储器1460可以是易失性和/或非易失性,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(static random-access memory,SRAM)。计算设备1400还可以包括用于与终端用户交互的输入/输出(input/output,I/O)设备。例如,计算设备1400可以包括用于视觉输出的显示器(如监视器)、用于音频输出的扬声器,以及用于用户输入的键盘/鼠标/轨迹球等。

图19为框图,示出了本发明中描述的技术提供的一种示例性设备1900(例如,下文根据图7、图8和图16(=图16A和16B)、图17和图18进一步详细描述)。所述设备用于图像编码器和/或图像解码器中,用于对块之间的块边缘进行去块效应滤波,其中,所述块边缘包括第一译码块P和第二译码块Q之间的水平块边缘(例如CU边缘或CU边界);

其中,所述水平块边缘与译码树单元(coding tree unit,CTU)边界重叠,所述第一译码块P为CTU边界上方的块,所述第二译码块Q为CTU边界下方的块;

其中,所述第一译码块具有垂直于水平块边缘的块大小SA;

其中,所述第二译码块具有垂直于水平块边缘的块大小SB;

其中,设备1900包括去块效应滤波器1910,用于:

-修改与水平块边缘相邻的第一译码块的最多MA个像素点值,作为第一滤波输出值;

-修改与水平块边缘相邻的第二译码块的最多MB个像素点值,作为第二滤波输出值;

-使用与水平块边缘相邻的第一译码块的最多DA个像素点值,作为第一滤波决策值;

-使用与水平块边缘相邻的第二译码块的最多DB个像素点值,作为第二滤波决策值;

其中,DA≠DB且MA≠MB,SA>DA>MA且SB>DB>MB。

在所述实施例的某种实现方式中,如果行缓冲区的大小(例如行缓冲区大小)为X,则对于第一译码块P,DA=X且MA=X–1;

第一译码块P的像素点p

在所述实施例的某种实现方式中,DA

在所述实施例的某种实现方式中,DB=8且DA=6;MB=7且MA=5。

在所述实施例的某种实现方式中,DB=8且DA=7;MB=7且MA=6。

在所述实施例的某种实现方式中,DB=8且DA=5;MB=7且MA=4。

在所述实施例的某种实现方式中,DB=8且DA=4;MB=7且MA=3。

在所述实施例的另一种可能的实现方式中,当应用6行缓冲区(例如,行缓冲区大小为6的行缓冲区)时,检查扩展滤波条件等式sp′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第一译码块P的像素点值,所述水平块边缘与CTU边界重叠;

其中,sp

在所述实施例的另一种可能的实现方式中,当应用6行缓冲区且第二译码块Q的块大小SB≥预定大小(如32)时,检查扩展滤波条件等式sq′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第二译码块Q的像素点值,所述水平块边缘与CTU边界重叠;

其中,sq

在所述实施例的另一种可能的实现方式中,当应用4行缓冲区时,检查扩展滤波条件等式sp′

当满足包括扩展滤波条件等式的一个或多个滤波条件等式时,将第一滤波器用于与水平块边缘相邻的第一译码块P的像素点值,所述水平块边缘与CTU边界重叠;

其中,sp

在所述实施例的另一种可能的实现方式中,第一滤波输出值p

—p

—q

其中,tcPD

p

q

其中,对于第一译码块P,S=MA,即,在第一图像块中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量,或者,

对于第二译码块Q,S=MB,即,在第二图像块Q中垂直于水平块边缘并与水平块边缘相邻的每一列中可以修改的最多像素点数量。

在所述实施例的某种实现方式中,行缓冲区大小X=6,g

在所述实施例的某种实现方式中,行缓冲区大小X=4,g

在所述实施例的某种实现方式中,滤波器系数是以如下方式确定的:像素点p

在一个实施例中,行缓冲区的行缓冲区大小为6行,将第一译码块P的像素点p

在所述实施例的另一种可能的实现方式中,所述去块效应滤波器为较长抽头滤波器、非对称滤波器、非对称抽头滤波器。

在所述实施例的一些实现方式中,所述像素点p

下面描述上述实施例中所示的编码方法和解码方法以及使用这些方法的系统的应用。

图20为示出用于实现内容分发业务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106,并可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。所述通信链路可以包括上述通信信道13。通信链路3104包括但不限于WIFI、以太网、有线、无线(3G/4G/5G)、USB或其任意类型组合等。

捕获设备3102用于生成数据,并可通过上文实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进行编码,并将编码数据发送到终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备或其任意组合等。例如,捕获设备3102可以包括上述源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中包括的音频编码器实际上可执行音频编码处理。在一些实际场景中,捕获设备3102通过将编码视频数据和编码音频数据复用在一起来分发编码视频数据和编码音频数据。在其它实际场景中,例如在视频会议系统中,不复用编码音频数据和编码视频数据。捕获设备3102将编码音频数据和编码视频数据分别分发到终端设备3106。

在内容供应系统3100中,终端设备310接收并再现编码数据。终端设备3106可以为具有数据接收和恢复能力的设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital videorecorder,DVR)3112、电视3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任意组合,或能够对上述编码数据进行解码的此类设备。例如,终端设备3106可以包括上述目的地设备14。当编码数据包括视频时,终端设备中的视频解码器30优先进行视频解码。当编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。

对于带显示器的终端设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital videorecorder,DVR)3112、电视3114、个人数字助理(personal digital assistant,PDA)3122、或车载设备3124,终端设备可以将解码数据发送到其显示器。对于不带显示器的终端设备,如STB3116、视频会议系统3118或视频监控系统3120,将外接显示器3126与终端设备连接,以接收并显示解码数据。

本系统中的各个设备进行编码或解码时,可以使用上述实施例所示的图像编码设备或图像解码设备。

图21为示出终端设备3106的示例结构的示意图。在终端设备3106从捕获设备3102接收流后,协议处理单元3202对该流的传输协议进行分析。所述协议包括但不限于实时流传输协议(Real Time Streaming Protocol,RTSP)、超文本传输协议(Hyper TextTransfer Protocol,HTTP)、HTTP直播流传输协议(HTTP Live Streaming protocol,HLS)、MPEG-DASH、实时传输协议(Real-time Transport Protocol,RTP)、实时消息传输协议(Real Time Messaging Protocol,RTMP)或其任意组合等。

在协议处理单元3202对流进行处理之后,生成流文件。将文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为编码音频数据和编码视频数据。如上所述,在一些实际场景中,例如在视频会议系统中,不复用编码音频数据和编码视频数据。在这种情况下,不通过解复用单元3204,将编码数据发送到视频解码器3206和音频解码器3208。

通过解复用处理,生成视频基本码流(elementary stream,ES)、音频ES和可选的字幕。视频解码器3206,包括如上述实施例所解释的视频解码器30,通过如上述实施例所示的解码方法对视频ES进行解码以生成视频帧,并将该数据发送到同步单元3212。音频解码器3208对音频ES进行解码以生成音频帧,并将该数据发送至同步单元3212。或者,可以在将视频帧发送至同步单元3212之前存储在缓冲区(图20中未示出)中。类似地,可以在将音频帧发送至同步单元3212之前存储在缓冲区(图20中未示出)中。

同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频和音频信息的呈现。信息可以使用译码音频和可视数据表示相关的时间戳和数据流发送相关的时间戳,在语法中进行译码。

如果流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。

本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以包括在汽车系统等其它系统中。

本发明结合本文中的各实施例进行了描述。然而,根据对附图、本发明和所附权利要求书的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现所公开实施例的其它变化。在权利要求书中,词语“包括”不排除其它元件或步骤,术语“一”或者“一个”不排除多个。单个处理器或其它单元可以满足权利要求中所描述的若干项目的功能。在通常不同的从属权利要求中列举某些措施并不表示这些措施的组合不能被有效地使用。计算机程序可存储或分发到合适的介质中,如与其它硬件一起或者作为其它硬件的一部分提供的光存储介质或固态介质,还可以以其它形式,如通过因特网或其它有线或无线电信系统分发。

除非另有明确说明,否则凡有实施例和描述提及术语“存储器”,术语“存储器”应被理解和/或应包括磁盘、光学光盘、只读存储器(Read-Only Memory,ROM),或随机存取存储器(Random Access Memory,RAM)等。

除非另有明确说明,否则凡有实施例和描述提及术语“网络”,术语“网络”应被理解和/或应包括[所有可能存储器的列表]等。

本领域技术人员将理解,各种图式(方法和装置)的“块”(“单元”)表示或描述本发明实施例的功能(而不必是在硬件或软件中的单独“单元”),因此同等描述装置实施例以及方法实施例的功能或特征(单元=步骤)。

术语“单元”仅仅是用于说明编码器/解码器的实施例的功能,并非旨在限制本发明。

在本申请中提供的若干实施例中,应理解,所公开的系统、装置和方法可通过其它方式实现。例如,所描述的装置实施例仅仅是示例性的。例如,单元分割仅仅是逻辑功能分割,实际实现时可以是其它分割。例如,可以将多个单元或组件合并或集成到另一系统中,或可忽略或不执行一些特征。另外,所显示或描述的相互耦合或直接耦合或通信连接可以通过一些接口来实现。装置或单元之间的直接耦合或通信连接可通过电子、机械或其它形式实现。

作为单独部件描述的单元可以是物理分离的,也可以不是物理分离的;作为单元显示的部件可以是物理单元,也可以不是物理单元、可以位于同一位置,或可以分布在多个网络单元中。可以根据实际需要选择一些或全部单元来实现实施例解决方案的目的。

另外,本发明实施例中的功能单元可集成到一个处理单元中,或每个单元可物理上单独存在,或两个或更多单元集成到一个单元中。

本发明实施例还可以包括编码器和/或解码器等装置,所述装置包括用于执行本文描述的任何方法和/或过程的处理电路。

实施例可以实现为硬件、软件或其任何组合。例如,编码器/编码或解码器/解码的功能可以由具有或不具有固件或软件的处理电路执行,例如处理器、微控制器、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(field programmable gatearray,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)等。

编码器100(和对应的编码方法100)和/或解码器200(和对应的解码方法200)的功能可以通过存储在计算机可读介质中的程序指令来实现。程序指令在执行时使处理电路、计算机、处理器等执行编码和/或解码方法的步骤。计算机可读介质可以是存储程序的任何介质,包括非瞬时性存储介质,如蓝光磁盘、DVD、CD、USB(闪存)驱动器、硬盘、通过网络可用的服务器存储等。

本发明实施例包括或是一种计算机程序,包括用于在计算机中执行时执行本文描述的任何方法的程序代码。

本发明实施例包括或是一种计算机可读介质,包括程序代码,当处理器执行所述程序代码时,计算机系统执行本文描述的所有方法。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任意组合实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括与有形介质(如数据存储介质)对应的计算机可读存储介质,或包括任何便于将计算机程序从一处传送到另一处的介质(例如根据通信协议)的通信介质。以此方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质,或(2)如信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实施本发明所述技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字用户线(digitalsubscriber line,DSL)或如红外线、无线电和微波等无线技术从网站、服务器或其它远程资源传输指令,则在介质定义中包括同轴电缆、光缆、双绞线、DSL或如红外线、无线电和微波等无线技术。但是,应理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包含压缩光盘(compact disc,CD)、激光光盘、光学光盘、数字多功能光盘(digital versatiledisc,DVD)和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。

可通过如一个或多个数字信号处理器(digital signal processor,DSP)、通用微处理器、专用集成电路(application specific integrated circuit,ASIC)、现场可编程逻辑阵列(field programmable logic array,FPGA)或其它等效集成或离散逻辑电路等一个或多个处理器来执行指令。因此,本文所使用的术语“处理器”可指前述结构或适合于实现本文描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。

本发明的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明描述了各种组件、模块或单元,以强调用于执行所公开技术的设备的功能方面,但未必需要由不同的硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元(包括如上所述的一个或多个处理器)的集合来提供。

虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实现某些特征。

另外,在不脱离本发明范围的情况下,各种实施例中描述及图示为独立或分离的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或相互通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式等间接耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。

相关技术
  • 用于视频译码中去块效应滤波器的装置和方法
  • 用于视频译码中去块效应滤波器的装置和方法
技术分类

06120115938321