一种自适应环路滤波的边界处理方法及装置的制造方法
【技术领域】
[0001] 本发明设及数字信号处理领域,具体地,设及一种图像/视频编解码领域中的自 适应环路滤波的边界处理方法及装置。
【背景技术】
[0002] 自适应环路滤波器(AdaptiveLoopFilter,ALF)是视频编解码的重要技术之一。 该技术通过编码滤波系数,在解码端对重构图像进行滤波,降低解码图像中的压缩失真,并 为后续编解码图像提供高质量的预测参考图像,从而进一步提高压缩效率。ALF的系数一般 通过最小化编码重构图像和其对应的未压缩图像间的失真训练得到,该系数即维纳滤波系 数。
[0003] 新型的编码标准技术中,通常包括S类环内滤波技术:去块滤波 (De-Blocking,DB)、自适应义样偏移技术(SampleAdaptiveOffset,SA0)和自适应环路滤 波器(ALF)。其中DB使用预先定义好的系数进行滤波,SA0和ALF利用待编码的原始像素 样本训练出滤波系数W减少原始像素样本与失真像素样本之间的均方误差。如图1所示, ALF通常位于整个编码环路的最后一个阶段,对SA0输出得到的像素样本进行处理,降低上 一个视频编解码阶段的图像失真。使用ALF对视频/图像编码主要有两点好处;一是减少 原始信号与失真信号之间的误差;二是执行滤波之后可W提高后续编码参考图像的质量, 进而提局整体编码效率。
[0004] 现有的ALF技术根据滤波器控制方式可W被划分为S类;基于整帖的ALF、基于区 域的ALF和基于四叉树划分的ALF。基于整帖的ALF通常会对于某些图像区块有较大的质 量损失,而基于四叉树划分的ALF划分方式较为复杂,编码复杂度大。因此目前通常使用的 是基于区域的ALF。基于区域的ALF方法,将图像固定划分为近似等大的16个区域,每个区 域计算一组滤波器系数,并根据编码的率失真性能进行区域间的自适应合并,从而降低了 算法复杂度。为了充分挖掘ALF性能,可利用时域相邻编码帖间的相关性,将编码顺序前一 帖的滤波器系数进行缓存,缓存系数参与当前帖ALF性能的率失真决策,如果前一帖ALF参 数对于编码的率失代价更小,则只需编码一个标识位即可,从而降低编码开销和解码复杂 度。
[0005] 如图2所示,在AVS2中自适应环路滤波器滤波形状为7巧十字+3x3方形对称形 状,水平方向有7个系数,垂直方向也有7个系数,整套滤波共有17个系数。对当前最大编 码单元做自适应环路滤波时,由于当前最大编码单元下方的像素尚未解码,不能做自适应 环路滤波,此时需要缓存不能做滤波的像素样本。在硬件实现上额外缓存样本像素行数占 用极大的巧片空间,尤其是高清视频序列。为了解决额外缓存边界像素样本行数的问题,弓I 入了虚拟边界的概念,如图3所示,滤波过程中使用滤波中屯、点像素值代替边界外及其对 称位置的像素值,对于图3中所述示例,滤波中屯、样本像素点的C。和C1在虚拟边界下方,贝U 使用中屯、像素点C,代替虚拟边界下方的C。、。和其对称位置的像素样本。该种解决方法的 局限性在于如果中屯、点像素距离越界像素较远,中屯、点像素与越界像素相关性较弱,并且 越界像素对称位置的像素并没有越界,同样使用中线点像素代替越界像素不合理。
[0006] 因此,目前的ALF技术并没有合理的解决滤波过程中边界问题处理,现有的解决 方案仍存在一定的局限性。
【发明内容】
[0007] 本发明的目的是提供一种自适应环路滤波的边界处理方法及装置,用于解决ALF 滤波过程中的边界处理问题。
[000引为了实现上述目的,本发明提供一种自适应环路滤波的边界处理方法,包括:根据 序列的当前最大编码单元的上边界和下边界,确定滤波区域;W及确定所述滤波区域的左 边界外和右边界外的像素是否可用,且在自适应环路滤波ALF过程中,对于不可用的像素 样本,使用所述滤波区域内距离该像素样本最近的像素样本代替。
[0009] 优选地,还包括:在序列的序列头上添加标志位,该标志位用于控制ALF是否允许 跨条带边界滤波。
[0010] 优选地,所述确定滤波区域,具体包括;对当前最大编码单元的上边界进行判断, 基于亮度分量,将当前最大编码单元所在区域C向上移N个样本单位,再基于色度分量,将 最大编码单元所在的区域向上移M个样本单位,得到区域D,其中,N和M均小于等于4 ;若 区域D超出图像边界,或区域D超出条带边界且所述标志位不允许ALF跨条带边界滤波,贝U 将超出部分移除,得到区域E,否则区域E等于区域D;对当前最大编码单元的下边界进行判 断,若当前最大编码单元的下边界为图像边界,则对于亮度分量的区域E最下方补入N行样 本,对于色度分量的区域E的最下方补入M行样本,得到区域F;将区域F作为ALF的滤波 区域。
[0011] 优选地,确定所述滤波区域的左边界外像素是否可用,具体包括;若所述滤波区域 的左边界为图像边界,或者所述滤波区域的左边界为条带边界且所述标志位不允许ALF跨 条带边界滤波,则所述滤波区域的左边界外的像素样本不可用。
[0012] 优选地,确定所述滤波区域的右边界外像素是否可用,具体包括;若所述滤波区域 的右边界为图像边界,或者所述滤波区域的右边界为条带边界且所述标志位不允许ALF跨 条带边界滤波,则所述滤波区域的右边界外的像素样本不可用。
[0013] 优选地,将所述标志位记作cross_slice_loopfilte;r_en油le。
[0014] 本发明的技术方案还包括一种自适应环路滤波的边界处理装置,包括:滤波区域 确定模块,其用于根据序列的当前最大编码单元的上边界和下边界,确定滤波区域;W及边 界处理模块,其用于确定所述滤波区域的左边界外和右边界外的像素是否可用,且在自适 应环路滤波ALF过程中,对于不可用的像素样本,使用所述滤波区域内距离该像素样本最 近的像素样本代替。
[0015] 优选地,还包括标志位设置模块,其用于在序列的序列头上添加标志位,该标志位 用于控制ALF是否允许跨条带边界滤波。
[0016] 优选地,所述滤波区域确定模块包括:上边界判断模块,其用于对当前最大编码单 元的上边界进行判断,基于亮度分量,将当前最大编码单元所在区域C向上移N个样本单 位,再基于色度分量,将最大编码单元所在的区域向上移M个样本单位,得到区域D,其中, N和M均小于等于4 ;若区域D超出图像边界,或区域D超出条带边界且所述标志位不允许 ALF跨条带边界滤波,则将超出部分移除,得到区域E,否则区域E等于区域D;W及下边界 判断模块,其用于对当前最大编码单元的下边界进行判断,若当前最大编码单元的下边界 为图像边界,则对于亮度分量的区域E最下方补入N行样本,对于色度分量的区域E的最下 方补入M行样本,得到区域F;将区域F作为ALF的滤波区域。
[0017] 优选地,所述边界处理模块包括;左边界处理模块,其用于确定所述滤波区域的左 边界外像素是否可用,若所述滤波区域的左边界为图像边界,或者所述滤波区域的左边界 为条带边界且所述标志位不允许ALF跨条带边界滤波,则所述滤波区域的左边界外的像素 样本不可用;右边界处理模块,其用于确定所述滤波区域的右边界外像素是否可用,若所述 滤波区域的右边界为图像边界,或者所述滤波区域的右边界为条带边界且所述标志位不允 许ALF跨条带边界滤波,则所述滤波区域的右边界外的像素样本不可用;W及像素替换模 块,其用于对不可用的像素样本,使用所述滤波区域内距离该像素样本最近的像素样本代 替。
[0018] 通过上述技术方案,本发明的有益效果是;本发明充分利用了像素之间的相关性, W微小的编码性能损失为代价,降低了自适应环路滤波器实现过程中的硬件成本。并且,本 发明提出的处理滤波边界像素的方法,更加便于并行编解码的实现。
[0019] 本发明的其他有益效果在【具体实施方式】中说明。
【附图说明】
[0020] 图1是现有技术中ALF滤波器在编解环路中的位置示意图;
[0021] 图2是ALF滤波器分量滤波器形状示意图;
[0022] 图3是现有技术中使用中屯、点像素代替越界像素的处理方法的原理示意图;
[0023] 图4是本发明实施例中所述自适应环路滤波的边界处理方法的流程示意图;
[0024] 图5是本发明实施例中在当前最大编码单元的基础上上移四个像素单位的示意 图;
[0025] 图6是本发明实施例中使用边界内最近像素代替越界像素的原理示意图;
[0026] 图7是本发明实施例中所述自适应环路滤波的边界处理装置的结构示意图。
【具体实施方式】
[0027]W下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描 述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[002引在本发明中,在未作相反说明的情况下,使用的方位词如"上、下、左、右"通常是指 相应物体轮廓的上、下、左和右,"内、外"是指相近物体轮廓的内和外,"远、近"是指距离相 应物体轮廓的远和近。
[0029] 在介绍本发明的实施例之前,先给出如下的术语解释。
[0030] 1、最大编码单元:包括一个LXL的亮度样值块和对应的色度样值块。最大编码单 元由图像划分得到。
[0031] 2、条带;按光栅扫描顺序排列的若干连续最大编码单元行。
[0032]实施例一
[0033] 如图4所示,本实施例给出了一种自适应环路滤波的边界处理方法,包括;根据序 列的当前最大编码单元LCU的上边界和下边界,确定滤波区域;W及确定所述滤波区域的 左边界外和右边界外的像素是否可用,且在自适应环路滤波ALF过程中,对于不可用的像 素样本,使用所述滤波区域内距离该像素样本最近的像素样本代替。
[0034] 此外,考虑到跨条带边界滤波的问题,该方法还包括;在序列的序列头上添加标志 位,该标志位用于控制ALF是否允许跨条带边界滤波。在具体实践中,可将所述标志位记作 cross_slice