CN113852831A - 滤波方法、装置、设备及机器可读存储介质 - Google Patents

滤波方法、装置、设备及机器可读存储介质 Download PDF

Info

Publication number
CN113852831A
CN113852831A CN202111146284.1A CN202111146284A CN113852831A CN 113852831 A CN113852831 A CN 113852831A CN 202111146284 A CN202111146284 A CN 202111146284A CN 113852831 A CN113852831 A CN 113852831A
Authority
CN
China
Prior art keywords
adaptive correction
lcu
filtering
current
filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111146284.1A
Other languages
English (en)
Other versions
CN113852831B (zh
Inventor
潘冬萍
孙煜程
陈方栋
王莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202111146284.1A priority Critical patent/CN113852831B/zh
Publication of CN113852831A publication Critical patent/CN113852831A/zh
Application granted granted Critical
Publication of CN113852831B publication Critical patent/CN113852831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Filtering Materials (AREA)
  • Image Processing (AREA)

Abstract

本申请提供一种滤波方法、装置、设备及机器可读存储介质,该滤波方法包括:确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波;若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,则使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,则使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波。该方法可以优化滤波效果,提升编解码性能。

Description

滤波方法、装置、设备及机器可读存储介质
技术领域
本申请涉及视频编解码技术,尤其涉及一种滤波方法、装置、设备及机器可读存储介质。
背景技术
完整的视频编码一般包括预测、变换、量化、熵编码、滤波等操作。
在基于块的运动补偿后存在量化操作,由此产生了编码噪声,造成视频质量失真,环路后处理技术用于降低此类失真的影响。
然而实践发现,现有环路后处理技术中的滤波性能较差。
发明内容
有鉴于此,本申请提供一种滤波方法、装置及设备。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种滤波方法,应用于编码/解码端设备,所述方法包括:
确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波。
结合第一方面,在第一种可能的实现方式中,确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波,包括:
确定用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位取值,所述标志位取值为第一取值时确定当前自适应修正滤波单元允许使用增强自适应修正滤波,所述标志位取值为第二取值时确定当前自适应修正滤波单元不允许使用增强自适应修正滤波。
结合第一方面,在第二种可能的实现方式中,所述方法还包括:
在对当前自适应修正滤波单元内的当前滤波像素进行自适应修正滤波的过程中,对于所述当前滤波像素的任一参考像素,当该参考像素未处于所述当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波,以便基于获取的替换像素的样本值进行所述当前滤波像素的自适应修正滤波;
否则,在获取到该参考像素的像素值的情况下,该参考像素的像素值用于所述像素的自适应修正滤波。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述无法获取到该参考像素的像素值的情况包括以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于所述当前自适应修正滤波单元的上边界外或下边界外。
结合第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波。
结合第一方面以及第一方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,所述第一滤波器为7*7十字形加5*5方形的中心对称滤波器;
所述第二滤波器为7*7十字形加3*3方形的中心对称滤波器。
根据本申请实施例的第二方面,提供一种滤波装置,应用于编码/解码端设备,所述装置包括:
滤波单元,用于确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
所述滤波单元,还用于若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波。
结合第二方面,在第一种可能的实现方式中,所述滤波单元确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波,包括:
确定用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位取值,所述标志位取值为第一取值时确定当前自适应修正滤波单元允许使用增强自适应修正滤波,所述标志位取值为第二取值时确定当前自适应修正滤波单元不允许使用增强自适应修正滤波。
结合第二方面,在第二种可能的实现方式中,
所述滤波单元,还用于在对当前自适应修正滤波单元内的当前滤波像素进行自适应修正滤波的过程中,对于所述当前滤波像素的任一参考像素,当该参考像素未处于所述当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波,以便基于获取的替换像素的样本值进行所述当前滤波像素的自适应修正滤波;
否则,在获取到该参考像素的像素值的情况下,该参考像素的像素值用于所述像素的自适应修正滤波。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述无法获取到该参考像素的像素值的情况包括以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于所述当前自适应修正滤波单元的上边界外或下边界外。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述滤波单元,还用于若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波。
结合第二方面以及第二方面的第一种可能的实现方式至第四种可能的实现方式中的任一种实现方式,在第五种可能的实现方式中,所述第一滤波器为7*7十字形加5*5方形的中心对称滤波器;
所述第二滤波器为7*7十字形加3*3方形的中心对称滤波器。
根据本申请实施例的第三方面,提供一种解码端设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现上述第一方面提供的滤波方法。
根据本申请实施例的第四方面,提供一种编码端设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现上述第一方面提供的的滤波方法。
本申请实施例的滤波的方法,通过确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波,并在确定当前自适应修正滤波单元允许使用增强自适应修正滤波时,使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;在确定当前自适应修正滤波单元不允许使用增强自适应修正滤波时,使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波,提高了滤波器选择的灵活性,优化了滤波效果,提升了编解码性能。
附图说明
图1是一种视频编解码的流程示意图;
图2是一种区域划分的示意图;
图3是一种区域合并的示意图;
图4A是一种7*7十字形加上5*5方形的中心对称滤波器形状的示意图;
图4B是一种图4A所示滤波器系数对应的参考像素的示意图;
图4C是一种对当前自适应修正滤波单元进行滤波的参考像素位置的示意图;
图5是本申请一示例性实施例示出的一种样本滤波补偿单元的示意图;
图6A是本申请一示例性实施例示出的一种滤波方法的流程示意图;
图6B是本申请一示例性实施例示出的一种滤波方法的流程示意图;
图7是本申请一示例性实施例示出的一种滤波方法的流程示意图;
图8是本申请一示例性实施例示出的一种滤波方法的流程示意图;
图9是一种7*7十字形加上3*3方形的中心对称滤波器形状的示意图;
图10是本申请一示例性实施例示出的一种合并区域的示意图;
图11是本申请一示例性实施例示出的多种不同滤波器形状的示意图;
图12是本申请一示例性实施例示出的一种3*3像素块的示意图;
图13是本申请一示例性实施例示出的一种滤波系数不对称的滤波器的示意图;
图14A是本申请一示例性实施例示出的一种参考像素位置的示意图;
图14B是本申请一示例性实施例示出的另一种参考像素位置的示意图;
图15A和图15B是本申请一示例性实施例示出的多种对固定区域划分方式得到的区域进行二次划分的示意图;
图15C是本申请一示例性实施例示出图15A中各二次划分方式对应的区域编号示意图;
图16是本申请一示例性实施例示出的一种滤波装置的结构示意图;
图17是本申请一示例性实施例示出的一种滤波装置的结构示意图;
图18是本申请一示例性实施例示出的一种解码端设备的硬件结构示意图;
图19是本申请一示例性实施例示出的一种编码端设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对本申请实施例涉及的技术术语、现有视频编解码的主要流程以及ALF滤波技术的实现进行简单说明。
一、技术术语
1、率失真原则(Rate-Distortion Optimized,简称RDO):评价编码效率的指标包括:码率和峰值信噪比(Peak Signal to Noise Ratio,简称PSNR)。码率越小,则压缩率越大;PSNR越大,重建图像质量越好。在模式选择的时候,判别公式实质上也就是对二者的综合评价。
模式对应的代价:J(mode)=D+λ*R。其中,D表示失真(Distortion),通常使用SSE(差值均方和)指标来衡量,SSE是指重建块与源图像块的差值均方和;λ是拉格朗日乘子;R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
在模式选择时,若使用RDO原则去对编码模式做比较决策,通常可以保证编码性能最佳。
2、编码树单元(Coding Tree Unit,简称CTU):传统的视频编码都是基于宏块实现的,对于4:2:0采样格式的视频,一个宏块包含一个16×16大小的亮度块和两个8×8大小的色度块,考虑到高清视频/超清视频的自身特性,通用视频编码(Versatile Video Coding,简称VVC)中引入了CTU,其尺寸由编码器指定,允许大于宏块尺寸。同一处位置的一个亮度树形编码单元(Coding Tree Block,简称CTB)和两个色度CTB,再加上相应的语法元素形成一个CTU。在VVC中对于一个L×L大小的亮度CTB,L∈{8,16,32,64,128}。
亮度CTB大小取值范围是:{8×8,16×16,32×32,64×64,128×128}
色度CTB大小取值范围是{4×4,8×8,16×16,32×32,64×64}
在高分辨率视频编码过程中,使用较大的CTB可以获得更好的压缩效果。
3、去方块滤波(Deblocking Filter,简称DBF):图像编码过程是基于不同的块进行的,每个块内进行着相对独立的编码,由于每个块使用不同的参数,因此块内的分布特性相互独立,造成了在块的边缘存在不连续的现象,可以称之为方块效应。去方块滤波主要对块的边界进行平滑,去除方块效应。
4、样值偏移补偿(Sample Adaptive Offset,简称SAO)(:指从像素域入手,根据重构图像的特点,将其划分类别,然后在像素域进行补偿处理。主要为了降低振铃效应。
5、自适应修正滤波(Adaptive Leveling Filter,简称ALF):应用在DB与SAO之后,主要目的是为了进一步在客观条件下提升图像质量。ALF技术根据参考像素的特点,构建一个以最小二乘为基础的多元线性回归模型,在像素域上进行滤波补偿。
示例性的,环路后处理技术可以包括DBF、SAO以及ALF。
6、维纳滤波器(wiener filtering):本质是使估计误差(定义为期望响应与滤波器实际输出之差)均方值最小化。
二、视频编解码的主要流程
请参考图1中的(a),以视频编码为例,视频编码一般包括预测、变换、量化、熵编码等过程,进一步地,编码过程还可以按照图1中的(b)的框架来实现。
其中,预测可以分为帧内预测和帧间预测,帧内预测是利用周围已编码块作为参考对当前未编码块进行预测,有效去除空域上的冗余。帧间预测是使用邻近已编码图像对当前图像进行预测,有效去除时域上的冗余。
变换是指将图像从空间域转换至变换域,利用变换系数对图像加以表示。绝大多数图像都含有较多平坦区域和缓慢变化的区域,适当的变换可以使图像由在空间域的分散分布转换为在变换域的相对集中分布,去除信号之间的频域相关性,配合量化过程,可以有效压缩码流。
熵编码是一种无损编码方式,可以把一系列元素符号转变为一个用来传输或存储的二进制码流,输入的符号可能包括量化后的变换系数、运动矢量信息、预测模式信息,变换量化相关语法等。熵编码可以有效地去除视频元素符号的冗余。
上述是以编码为例进行介绍,视频解码与视频编码的过程是相对的,即视频解码通常包括熵解码、预测、反量化、反变换、滤波等过程,各个过程的实现原理与熵编码相同或相似。
三、ALF滤波技术的实现
在音视频编码标准(Audio Video coding Standard,简称AVS)编码框架中使用的ALF技术,其根据维纳滤波的原理,计算原始信号和失真信号在均方意义下能达到的最优线性滤波。
ALF编码流程可以包括:区域划分→获取参考像素→区域合并并计算滤波系数→决策判断每个LCU是否启动滤波。
整个过程中需要计算获取的参数有:
1)、滤波参数个数;
2)、区域合并标识;
3)、每组滤波系数;
4)、LCU是否启动滤波标识;
5)、当前分量(Y,U,V)是否启动滤波标识。
下面对ALF滤波过程中部分处理和概念进行详细说明。
1、区域划分
在ALF流程中,对于获取到的重建视频数据,亮度分量上的数据进行分区处理,色度分量上的数据进行非分区处理。
示例性的,区域划分的具体实现过程可以为:将图像分割为16个大小基本相等且基于LCU对齐的区域。非最右区域宽度为(((pic_width_InLcus+1)/4)×Lcu_Width),其中pic_width_InLcus表示图像宽度上的LCU个数,Lcu_Width表示每个LCU的宽。最右区域宽度为图像宽度与非最右三个区域宽(图像宽度减去非最右三个区域的总宽度)的差。
同理,非底部区域的高度为(((pic_height_InLcus+1)/4)×Lcu_Height),其中pic_height_InLcus表示图像高度上的LCU个数,Lcu_Height表示每个LCU的高度。最底部区域的高度为图像高度与非底部三个区域高的差(图像高度减去非最底部三个区域的总高度)。
得到整张图的区域划分结果后,为每个区域分配一个索引值,示意图可以如图2所示。
2、区域合并
区域合并操作是指根据索引值顺序判断相邻区域是否合并。合并的目的是为了减少编码系数。需要使用一个合并标识,用于表示当前区域是否与相邻区域合并。
举例来说,按照上述区域划分方式进行区域划分之后,共包括16个区域(可以称为16类或16组(groups),索引值依次为0~15),在第一次合并时,可以依次尝试对区域0和区域1进行合并、区域1和区域2进行合并、区域2和区域3进行合并、…、区域13和区域14进行合并、区域14和区域15进行合并,并按照误差最小的合并方式,进行第一次区域合并,从而16个区域合并后成为15个区域。
对于第一次合并后的15个区域(假设区域2和区域3进行合并,得到区域2+3),依次尝试对区域0和区域1进行合并、区域1和区域2+3进行合并、区域2+3和区域4进行合并、…、区域13和区域14进行合并、区域14和区域15进行合并,并按照误差最小的合并方式,进行第二次区域合并,从而15个区域合并后成为14个区域。
对于第二次合并后的14个区域(假设区域14和区域15进行合并,得到区域14+15,即合并区域包括区域2+3以及区域14+15),依次尝试对区域0和区域1进行合并、区域1和区域2+3进行合并、区域2+3和区域4进行合并、…、区域12和区域13进行合并、区域13和区域14+15进行合并,并按照误差最小的合并方式,进行第三次区域合并,从而14个区域合并后成为13个区域。
以此类推,直至合并为1个区域,其示意图可以如图3所示。
完成上述区域合并操作之后,可以依次在未进行区域合并(共16个区域)、进行了一次区域合并(共15个区域)、…、进行了14次区域合并(共2个区域)、进行15次区域合并(共1个区域)的情况下,计算对整帧图像进行维纳滤波的误差,并将误差最小的区域合并方式确定为最终的区域合并方式。
3、参考像素、滤波系数
按照上述方式进行区域划分之后,可以基于各区域中各像素的参考像素,按照维纳滤波原理计算滤波系数。
对于参与滤波的所有像素点,分别以每个像素点为中心,在一定范围内取其周围像素点作为参考像素,将参考像素与当前像素作为输入,以每个像素原始值作为目标,用最小二乘法计算滤波系数。
请参见图4A,为一种滤波器形状的示意图,如图4A所示,为一种7*7十字形加上5*5方形的中心对称滤波器形状,该滤波器系数对应的参考像素可以参见图4B。
如图4B所示,中心对称滤波器P0和P28的滤波系数一样,因此在编码端训练的时候,分别获取(Pi+P28-i,i=0,…,13)作为同一个特征进行输入,P14作为一个特征进行输入,训练15个滤波系数。
即参考像素的选取为:
E[i]=(Pi+P28-i)
E[14]=P14
其中,Pi属于滤波前重建图中的像素,E[i]为参考像素的值,i=0,1,2,3,4,5,6,7,8,9,10,11,12,13。
维纳滤波的目标是对参考像素值的线性组合,使其逼近于原图的像素值。
ALF技术是基于最大编码单元(Largest Coding Unit,简称LCU)进行处理的。属于同一个合并后的区域的LCU使用同一组滤波系数进行滤波。
4、自适应修正滤波单元
如图5所示,根据当前最大编码单元按下列步骤导出自适应修正滤波单元:
4.1、将当前最大编码单元C所在样本区域超出图像边界的部分删除,得到样本区域D;
4.2、若样本区域D的下边界所在的样本不属于图像的下边界,则将亮度分量和色度分量样本区域D的下边界向上收缩四行,得到样本区域E1;否则,令样本区域E1等于样本区域D。样本区域D的最后一行样本为区域的下边界;
4.3、若样本区域E1的上边界所在的样本属于图像的上边界,或者属于片边界且cross_patch_loopfilter_enable_flag的值为‘0’,令样本区域E2等于样本区域E1;否则,将亮度分量和色度分量样本区域E1的上边界向上扩展四行,得到样本区域E2。样本区域E1的第一行样本为区域的上边界;
4.4、将样本区域E2作为当前自适应修正滤波单元。图像的第一行样本为图像的上边界,最后一行样本为图像的下边界。
5、自适应修正滤波操作
当确定对当前自适应滤波单元进行滤波时,自适应修正滤波过程中用到的参考像素为自适应修正滤波单元内的样本,则直接使用该样本进行滤波;
若自适应修正滤波过程中用到的样本为自适应修正滤波单元内的样本,则直接使用该样本进行滤波;否则,按照如下方式进行滤波:
5.1、若该样本在图像边界外,或在片边界外且cross_patch_loopfilter_enable_flag的值为‘0’,即不允许跨越片边界进行滤波,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
5.2、否则,若该样本在自适应修正滤波单元上边界外或下边界外,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
5.3、若该样本未在自适应修正滤波单元上边界外,也未在自适应修正滤波单元下边界外,直接使用该样本进行滤波。
6、决策是否启动ALF
对于编码端设备,区域合并计算得到各区域的滤波系数后,需要进行决策,决策也是以LCU为基本单位,判断当前图像中每一个LCU是否使用ALF(即是否启动自适应修正滤波)。
编码端设备可以计算当前LCU打开与关闭前后的率失真代价,来决定当前LCU是否使用ALF。若当前LCU被标记为使用ALF,则对LCU内的每个像素进行维纳滤波。
相关技术中,ALF技术针对每个区域只传递一套固定的滤波系数,且滤波器系数形状是固定不变的。因此可能存在一些问题,如:固定划分的区域不能将相同的特性的像素划分为相同类别,或者使用的滤波器形状不合适。同时,划分好的区域,每个区域最多传递一套滤波系数,对于较大的区域或者图像纹理较复杂的区域而言,一套滤波系数是不够的。
为了优化ALF滤波效果,提高编解码性能,本申请实施例提出如下优化方案:
方案1、对于每一帧,以LCU为最小单位,将其自适应划分为多个的区域,其中每个区域可能包括不止一个LCU,因此,提出对每个LCU进行分类,将同一个区域的LCU分为N类,N为正整数。
示例性的,若各区域内的LCU均划分为同一分类,则对应传统ALF方案的固定区域划分方案。在一个示例中,为了区别于传统ALF方案的固定区域划分方式,N≥2。
方案2、每个区域中可以传递多组滤波系数,每组滤波器形状可以相同也可以不同。
方案3、基于每个LCU自适应的选择一套滤波系数,同一个区域的LCU可以选择相邻区域的滤波系数。
方案4、每个区域只能传递一组滤波系数,但每个区域的滤波器形状可以不相同。
方案5、将对称滤波器修改为非对称滤波器,将对称位置的滤波器系数相同,优化为对称位置上滤波器系数满足一定的比例关系,如0.5:1.5或0.6:1.4等。
方案6、对于滤波时边界的样本取值,进行优化。
为了使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
需要说明的是,下文中以在LCU的尺寸下采用本申请实施例提供的方案进行ALF滤波为例,但是这并不是对本申请保护范围的限定,本申请实施例中也可以使用其他尺寸或表示图像块的方法替代,例如N*M大小的图像块,N为小于或等于图像帧的宽度的正整数,M小于或等于图像帧的高度的正整数。
实施例一
本申请实施例提供了一种滤波方法,其中,该滤波方法可以应用于解码端设备,该滤波方法可以包括以下步骤:
T600、对当前图像帧的亮度分量进行区域划分。
示例性的,对图像帧的亮度分量的区域划分的实现可以参见上文中“区域划分”部分的相关说明,本申请实施例在此不做赘述。
T610、基于从码流中解析得到的LCU的区域类别标识,确定LCU所属区域类别。
本申请实施例中,为了优化ALF滤波效果,提高编解码性能,当按照固定区域划分方式对图像帧的亮度分量进行区域划分得到多个区域时,对于各区域,可以基于区域内各像素的像素特性,对区域内的LCU进行分类,将区域内的LCU划分为至少一个类别,即一个区域可以通过LCU分类的方式被划分为至少一个区域(可以称为子区域或区域类别)。
示例性的,对于任一LCU,可以基于该LCU所属区域,以及该LCU在其所属区域内的类别,确定其所属区域类别。
示例性的,编码端设备向解码端设备发送码流时,可以将用于标识各LCU所属区域类别的区域类别标识携带在码流中发送给解码端设备。
示例性的,对于任一LCU,解码端设备可以从码流中解析该LCU的区域类别标识,并基于解析得到的该LCU的区域类别标识,确定该LCU所属区域类别。
T620、基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数。
本申请实施例中,当按照上述方式对各区域内的LCU进行了分类时,编码端设备可以对各区域类别进行区域合并,得到至少一个合并后的区域(可以称为合并区域),并确定各合并区域的滤波系数。
示例性的,对各区域类别进行区域合并的实现方式与上文中“区域合并”部分中的相关说明相类似,本申请实施例在此不做赘述。
示例性的,对于任一区域类别,编码端设备可以基于其所属合并区域为其分配一个系数索引,该系数索引该对应其中一个合并区域的滤波系数。
编码端设备可以将各合并区域的滤波系数,以及各区域类别的索引写入码流,并发送给解码端设备。
示例性的,对于任一LCU,解码端设备可以基于该LCU所属区域类别,确定该LCU所属区域类别的系数索引,并基于该系数索引,以及从码流中解析得到的滤波系数,确定该LCU的滤波系数。
T630、基于LCU的滤波系数对LCU的像素逐个进行ALF滤波。
本申请实施例中,对于任一LCU,当确定了该LCU的滤波系数时,可以基于该LCU的滤波系数对LCU的像素逐个进行ALF滤波。
可见,通过对按照固定区域划分方式划分得到的区域内的LCU进行分类,使区域划分更符合各LCU的像素特性,从而,可以优化ALF滤波效果,提升编解码性能。
在一个实施例中,T610中,基于从码流中解析得到的LCU的区域类别标识,确定LCU所属区域类别,包括:
基于LCU所属区域,以及LCU的区域类别标识,确定LCU所属区域类别。
示例性的,对于任一LCU,可以基于该LCU所属区域(按照固定区域划分方式得到的区域),以及该LCU的区域类别标识,确定该LCU所属区域类别。
在一个示例中,LCU的区域类别标识用于标识LCU在LCU所属区域内的类别,LCU在该LCU所属区域内的类别通过对LCU所属区域内各LCU进行分类确定;
上述基于LCU所属区域,以及LCU的区域类别标识,确定LCU所属区域类别,可以包括:
基于各区域的类别数量、LCU所属区域,以及LCU的区域类别标识,确定LCU所属区域类别。
示例性的,对于任一LCU,解码端设备可以基于从码流中解析得到的该LCU的区域类别标识,确定该LCU在其所属区域内的类别。
举例来说,假设一个区域内的LCU最多被划分为2类,对于被划分为第一类的LCU,其区域类别标识可以为0;对于被划分为第二类的LCU,其区域类别标识可以为1。
对于任一区域内的任一LCU,当从码流中解析得到的该LCU的区域类别标识的取值为0时,可以确定该LCU在该区域内的类别为第一类;当从码流中解析得到的该LCU的区域类别标识的取值为1时,可以确定该LCU在该区域内的类别为第二类。
示例性的,对于任一LCU,解码端设备可以基于各类别的类别数量、该LCU所属区域,以及LCU的所属区域类别,确定该LCU所属区域类别。
作为一种示例,上述基于各区域的类别数量、LCU所属区域,以及LCU的区域类别标识,确定LCU所属区域类别,可以包括:
基于LCU所属区域之前的各区域的类别数量,确定LCU所属区域之前各区域的类别的总数;
基于LCU所属区域之前各区域的类别的总数,以及LCU的区域类别标识,确定LCU所属区域类别。
示例性的,对于任一LCU,可以基于各区域的类别数量,确定LCU所属区域之前的各区域的类别的总数,并基于该LCU所属区域之前各区域的类别的总数,以及,LCU的区域类别标识,确定LCU所属区域类别。
举例来说,假设当前图像帧的亮度分别共被划分为L个区域,各区域内的LCU均被划分为N个类别,则对于区域K内的任一LCU,当从码流中解析得到的该LCU的区域类别标识的取值为m时,可以确定该LCU所属区域类别为N*K+m;其中,m∈[0,N-1],N≥1,K∈[0,L-1]。
在一些实施例中,T620中,基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数之前,还可以包括:
确定是否对LCU启动ALF滤波;
当确定对LCU启动ALF滤波时,确定执行上述基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数的操作。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定是否对该LCU启动ALF滤波。
示例性的,解码端设备在对LCU进行ALF滤波之前,可以先确定是否对该LCU启动ALF滤波。
例如,解码端设备可以基于从码流中解析得到的用于标识是否对该LCU启动ALF滤波的标识,来确定是否对该LCU启动ALF滤波。
当解码端设备确定对LCU启动ALF滤波时,可以按照上述实施例中描述的方式基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数。
在一个示例中,上述确定是否对所述LCU启动ALF滤波,可以包括:
从码流中解析LCU的LCU系数标识;其中,LCU系数标识用于标识在LCU所属合并区域使用的至少一组滤波系数中,LCU使用的滤波系数;
当LCU的LCU系数标识的取值为非第一值时,确定对LCU启动ALF滤波。
示例性的,为了优化ALF滤波效果,提高编解码性能,一个合并区域使用的滤波系数不再限制于一组滤波系数,而是可以根据实际情况选择使用一组或多组滤波系数。
示例性的,对于任一合并区域,编码端设备可以训练多组滤波系数,并基于RDO决策确定该合并区域使用其中一组滤波系数或多组滤波系数。对于该区域的任一LCU,编码端设备可以通过LCU系数标识来标识该合并区域使用的一组或多组滤波系数中,该LCU使用的滤波系数。
示例性的,对于任一LCU,当该LCU的LCU系数标识的取值为第一值时,表明不对该LCU启动ALF滤波。
对于任一LCU,当解码端设备从码流中解析到的该LCU的LCU系数标识的取值为非第一值时,可以确定对该LCU启动ALF滤波。
举例来说,假设第一值为0,则对于任一LCU,当解码端设备从码流中解析得到的该LCU的LCU系数标识的取值为0时,可以确定不对该LCU启动ALF滤波;当解码端设备从码流中解析得到的该LCU的LCU系数标识不是0时,可以确定对该LCU启动ALF滤波,此时,解码端设备可以根据该LCU的LCU系数标识,确定该LCU使用的滤波系数。
需要说明的是,当LCU的LCU系数标识的取值为非第一值时,若该LCU所属合并区域使用一组滤波系数,则该LCU的滤波系数即为该组滤波系数;若该LCU所属合并区域使用多组滤波系数,则还需要根据该LCU的LCU系数标识的具体取值,确定该LCU的滤波系数。
在一个示例中,基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数,可以包括:
基于LCU所属区域类别、从码流中解析得到的滤波系数,以及从码流中解析得到LCU所属合并区域的区域系数标识,确定LCU的滤波系数;其中,区域系数标识用于标识在预设多组滤波系数中,LCU所属合并区域使用的滤波系数。
示例性的,对于任一合并区域,编码端设备可以训练多组滤波系数,并基于RDO决策确定该合并区域使用该多组滤波系数中的一组或多组,并将用于标识该合并区域使用的滤波系数的区域系数标识写入码流。
示例性的,对于任一合并区域的任一LCU,解码端设备可以基于从码流中解析得到的该合并区域的区域系数标识,确定该合并区域使用的滤波系数。
举例来说,假设预设多组滤波系数包括两组滤波系数(假设为滤波系数A和滤波系数B),对于任一合并区域,当编码端设备确定该合并区域使用滤波系数A时,编码端设备确定该合并区域的区域系数标识的取值为0;当编码端设备确定该合并区域使用滤波系数B时,编码端设备确定该合并区域的区域系数标识的取值为1;当编码端设备确定该合并区域使用滤波系数A和滤波系数B时,编码端设备确定该合并区域的区域系数标识的取值为2。
对于任一合并区域,当解码端设备从码流中解析到的该合并区域的区域系数标识的取值为0时,确定该区域使用滤波系数A;当解码端设备从码流中解析到的该合并区域的区域系数标识的取值为1时,确定该合并区域使用滤波系数B;解码端设备从码流中解析到的该合并区域的区域系数标识的取值为2时,确定该合并区域使用滤波系数A和滤波系数B。
示例性的,对于任一合并区域,当解码端设备基于从码流中解析得到的该合并区域的区域系数标识确定该区域使用一组滤波系数时,对于该合并区域的任一LCU,当确定对该LCU启动ALF滤波时,如该LCU的LCU系数标识的取值为非第一值时,可以确定该LCU使用的滤波系数即为该合并区域使用的滤波系数;当解码端设备基于从码流中解析得到的该合并区域的区域系数标识确定该合并区域使用多组滤波系数时,当确定对该LCU启动ALF滤波时,可以基于该LCU的LCU系数标识,确定该LCU使用的滤波系数(该合并区域使用的多组滤波系数中的一组滤波系数)。
作为一种示例,基于LCU所属区域类别、从码流中解析得到的滤波系数,以及从码流中解析得到LCU所属合并区域的区域系数标识,确定LCU的滤波系数,可以包括:
当基于LCU所属合并区域的区域系数标识确定LCU所属合并区域使用多套滤波系数时,基于LCU所属区域类别、从码流中解析得到的滤波系数,以及LCU的LCU系数标识,确定LCU的滤波系数。
示例性的,对于任一LCU,当解码端设备基于从码流中解析得到的该LCU的区域类别标识确定了该LCU所属区域类别时,还可以基于该LCU所属区域类别确定该LCU所属合并区域,并基于从码流中解析得到的该区域类别所属合并区域的区域系数标识,确定该区域类别使用的滤波系数。
举例来说,假设按照固定区域划分方式将当前图像帧的亮度分量划分为16个区域后,通过对区域类的LCU进行分类,共得到32个区域类别,在对区域类别进行合并之后,可以基于区域类别合并情况得到一个索引表,该索引表可以为一个32元一维向量,该32元一维向量中各元素依次为各区域类别所属合并区域的索引。
假设该32元一维向量为{a1,a2,a3,…,a32},则a1为区域类别0所属合并区域的索引…a32为区域类别32所属合并区域的索引。假设a1~a5均为0,a6~a11均为1,则表明区域类别0~4合并为合并区域0,区域类别5~10合并为合并区域1。
编码端设备可以通过码流将上述索引表发送给解码端设备,以使解码端设备基于从码流中解析得到的该索引表,确定各区域类别所属的合并区域,从而,对于任一LCU,可以基于该LCU的区域类别标识,确定该LCU所属区域类别,并根据该LCU所属区域类别确定该LCU所属合并区域。
当解码端设备确定LCU所属合并区域使用多套滤波系数时,解码端设备可以基于从码流中解析得到的该LCU的LCU系数标识,确定该LCU使用的滤波系数。
需要说明的是,对于任一合并区域,该合并区域使用的多套滤波系数的滤波器形状可以完全相同或不完全相同。
例如,假设合并区域1使用滤波系数A、滤波系数B和滤波系数C,则滤波系数A、滤波系数B和滤波系数C的滤波器形状可以均相同,或均不同,或部分相同,如滤波系数A和滤波系数B的滤波器形状相同,但滤波系数A和滤波系数C的滤波器形状不同。
在一些实施例中,T620中,基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数,可以包括:
基于LCU所属区域类别、从码流中解析得到的滤波系数,以及LCU的系数选择标识,确定LCU的滤波系数;其中,系数选择标识用于标识LCU在多组候选滤波系数中选择使用的滤波系数。
示例性的,为了优化ALF滤波效果,提升编解码性能,LCU不再限制于选择其所属合并区域的滤波系数,而是可以从多组滤波系数中自适应的选择一组滤波系数进行ALF滤波。
示例性的,对于任一LCU,该LCU的候选滤波系数可以包括但不限于其所属合并区域的滤波系数以及其所属合并区域的相邻合并区域的滤波系数,从而,在每个合并区域传递一组滤波系数的情况下,一个LCU可以存在多组候选的滤波系数,提高LCU滤波系数选择的灵活性,优化ALF滤波效果,提升编解码性能。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定该LCU在多组候选滤波系数中使用的滤波系数,并将该滤波系数对应的系数选择标识写入码流中发送给解码端设备。
解码端设备可以基于LCU所属区域类别、从码流中解析得到的滤波系数,以及LCU的系数选择标识,确定LCU的滤波系数。
在一个示例中,上述基于LCU所属区域类别、从码流中解析得到的滤波系数,以及LCU的系数选择标识,确定LCU的滤波系数,可以包括:
当LCU的系数选择标识的取值为第一值时,将LCU所属合并区域的前一个合并区域的滤波系数确定为LCU的滤波系数;
当LCU的系数选择标识的取值为第二值时,将LCU所属合并区域的滤波系数确定为LCU的滤波系数;
当LCU的系数选择标识的取值为第三值时,将LCU所属合并区域的后一个合并区域的滤波系数确定为LCU的滤波系数。
示例性的,对于任一LCU,其候选滤波系数可以包括其所属合并区域的滤波系数、其所属合并区域的前一个合并区域的滤波系数,以及其所属合并区域的后一个合并区域的滤波系数。
示例性的,LCU所属合并区域的前一个合并区域为LCU所属合并区域的索引的前一个相邻索引对应的合并区域。
示例性的,LCU所属合并区域的后一个合并区域为LCU所属合并区域的索引的后一个相邻索引对应的合并区域。
举例来说,假设LCU所属合并区域为合并区域2,其对应的索引为2,则该LCU所属合并区域的前一个合并区域为索引2的前一个相邻索引(即1)对应的合并区域(即合并区域1),该LCU所属合并区域的后一个合并区域为索引2的后一个相邻索引(即3)对应的合并区域(即合并区域3)。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定其使用的滤波系数,当确定该LCU使用的滤波系数该LCU所属合并区域的前一个合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第一值,如0;当确定该LCU使用的滤波系数该LCU所属合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第二值,如1;当确定该LCU使用的滤波系数该LCU所属合并区域的后一个合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第三值,如2。
示例性的,对于任一LCU,当解码端设备从码流中解析得到的该LCU的系数选择标识的取值为第一值时,可以将该LCU所属合并区域的前一个合并区域的滤波系数确定为该LCU的滤波系数;当从码流中解析得到的该LCU的系数选择标识的取值为第二值时,可以将该LCU所属合并区域的滤波系数确定为该LCU的滤波系数;当从码流中解析得到的该LCU的系数选择标识的取值为第三值时,可以将该LCU所属合并区域的后一个合并区域的滤波系数确定为该LCU的滤波系数。
在一些实施例中,从码流中解析得到滤波系数,可以包括:
对于任一合并区域,从码流中解析该合并区域的滤波器形状;
基于该滤波器形状,从码流中解析该合并区域的滤波系数。
示例性的,为了提高滤波系数的灵活性,优化ALF滤波效果,提升编解码性能,各合并区域不再限制于使用同一滤波器形状,而是可以选择性地使用不同滤波器形状,即不同合并区域使用的滤波器形状可以相同,也可以不同。
示例性的,对于任一合并区域,编码端设备可以训练不同滤波器形状的多组滤波系数,并基于RDO决策确定该合并区域使用的滤波器形状和滤波系数,并将该滤波器形状和滤波系数写入码流发送给解码端设备。
示例性的,对于任一合并区域,解码端设备在获取该合并区域的滤波系数时,可以从码流中解析该合并区域的滤波器形状,并基于该滤波器形状,从码流中解析该区域类别的滤波系数。
在一个示例中,上述基于LCU所属区域类别,以及从码流中解析得到的滤波系数,确定LCU的滤波系数,可以包括:
基于LCU所属区域类别,以及从码流中解析得到的滤波器形状以及滤波系数,确定LCU的滤波器形状和滤波系数;
上述基于LCU的滤波系数对LCU的像素逐个进行ALF滤波,可以包括:
基于该LCU的滤波器形状和滤波系数对LCU的像素逐个进行ALF滤波。
示例性的,对于任一LCU,可以基于该LCU所属区域类别,确定该LCU所属合并区域,从码流中解析该合并区域的滤波器形状以及滤波系数,将该滤波器形状以及滤波系数确定为该LCU的滤波器形状和滤波系数,并基于该滤波器形状和滤波系数对LCU的像素逐个进行ALF滤波。
需要说明的是,在本申请实施例中,也可以针对图像帧选择滤波器形状,或针对图像帧的分量(如亮度分量和/或色度分量)选择滤波器形状。例如,若图像帧A选择如图4A所示的7*7十字形加上5*5方形的中心对称滤波器形状,则图像帧A中的各启动ALF滤波的LCU均使用7*7十字形加上5*5方形的中心对称滤波器形状。
在一些实施例中,T630中,基于LCU的滤波系数对LCU的像素逐个进行ALF滤波,可以包括:
基于LCU的滤波系数,以及从码流中解析得到的LCU所属合并区域对应的各参考像素位置的权重系数,对LCU的像素逐个进行ALF滤波。
示例性的,为了优化ALF滤波效果,提升编解码性能,进行ALF滤波时使用的滤波器不再限制于对称滤波器,而是可以采用非对称滤波器,即位置对称的滤波系数可以不同,并满足一定的比例关系,如0.5:1.5或0.6:1.4等。
需要说明的是,由于基于确定的滤波系数进行ALF滤波时,对于任一非中心位置的滤波系数,需要基于该滤波系数,与该滤波系数的对称位置的滤波系数,分别与对应位置的参考像素的乘积之和,得到滤波后的像素值,因此,上述比例可以作为对称位置的滤波系数之间的比例,或者,也可以作为对称位置的滤波系数对应的参考像素的像素值参与ALF滤波计算时的加权比重的比例(也可以称为权重比例),即上述非对称滤波器是指对称位置的滤波系数不同,或者,对称位置的滤波系数对应的参考像素的像素值在参与ALF滤波计算时的权重不同。
举例来说,7*7十字形加上5*5方形的中心对称滤波器形状的滤波系数Ci,其对称位置的滤波系数为C28-i,则Ci:C28-i=Ai:(2-Ai),或者,Pi和P28-i在参与ALF滤波计算时的加权权重的比例为Ai:(2-Ai),Pi为Ci对应的参考像素位置的像素值,P28-i为C28-i对应的参考像素位置的像素值,对于LCU的当前滤波像素,该像素滤波后的像素值可以通过以下方式确定:
Figure BDA0003285636290000161
其中,Ci为LCU所属合并区域的滤波系数中的第(i+1)个滤波系数,Pi为滤波系数Ci对应的参考像素位置的像素值,P28-i对应的参考像素位置与Pi对应的参考像素位置关于当前滤波像素的像素位置中心对称,Ai为Pi对应的参考像素位置的像素值的权重系数,P14为当前滤波像素的像素值,C14为当前滤波像素的滤波系数,0<Ai<2。
示例性的,对于任一合并区域,编码端设备可以确定每个位置对应不同的权重系数下,该合并区域的滤波系数,以及滤波性能。选择滤波性能最好的一组滤波系数,记录该滤波系数以及对应滤波器每个位置上对应的权重系数,并将其写入码流发送给解码端设备。
示例性的,可以预先构建权重系数集合(如上述Ai的取值集合),并分别从该集合中选择各权重系数,以得到滤波性能最好的滤波系数以及对应滤波器每个位置上对应的权重系数,并将该权重系数在权重系数集合中的索引写入码流发送给解码端设备。
对于任一LCU,解码端设备可以从码流中解析得到该LCU所属合并区域的滤波系数,以及该LCU所属合并区域对应的各参考像素位置的权重系数,对LCU的像素逐个进行ALF滤波。
在一些实施例中,T630中,基于LCU的滤波系数对LCU的像素逐个进行ALF滤波,可以包括:
对于LCU的当前滤波像素,在对该像素进行ALF滤波的过程中,基于该像素的周围像素的像素值对该像素的像素值进行更新;
基于该像素更新后的像素值,对该像素进行ALF滤波。
示例性的,考虑到对于任一像素位置,当该像素位置的像素值过大或过小时,按传统ALF技术进行对该像素位置进行滤波的滤波性能较差,因而,为了优化ALF滤波效果,对于当前滤波像素,在对该像素进行ALF滤波的过程中,可以基于该像素的周围像素的像素值对该像素的像素值进行更新,以使该像素位置的像素值相对周围像素的像素值更加平滑。
在一个示例中,上述基于该像素的周围像素的像素值对该像素的像素值进行更新,可以包括:
确定目标像素块中除中心位置之外的各像素的像素值的最大值和最小值;其中,目标像素块为以该像素为中心位置的3*3像素块;
当该像素的像素值大于最大值时,将该像素的像素值更新为最大值;
当该像素的像素值小于最小值时,将该像素的像素值更新为最小值。
示例性的,以像素的周围像素为该像素的8个相邻像素为例,即以该像素为中心位置的3*3像素块(本文中称为目标像素块)中除去中心位置之外的其余像素。
对于任一LCU中的任一像素,可以确定目标像素块中除中心位置之外的各像素的像素值,并确定各像素值中的最大值和最小值。
当该像素的像素值大于最大值时,将该像素的像素值更新为最大值;当该像素的像素值小于最小值时,将该像素的像素值更新为最小值。
举例来说,以图12所示3*3像素块为例,假设当前滤波像素为像素0,其周围像素包括该像素的8个相邻像素,即像素1~像素8,在对像素0进行滤波时,可以分别获取像素1~像素8的像素值,并确定该8个像素的像素值中的最大值和最小值。假设像素1的像素值最大,像素8的像素值最小,则该8个像素的像素值中的最大值即为像素1的像素值(假设为p1),最小值即为像素8的像素值(假设为p8),则可以比较像素0的像素值(假设为p0)与p1和p8,若p0>p1,则将像素0的像素值更新为p1;若p0<p8,则将像素0的像素值更新为p8。
实施例二
请参见图6A,为本申请实施例提供的一种滤波方法的流程示意图,其中,该滤波方法可以应用于编码/解码端设备,如图6A所示,该滤波方法可以包括以下步骤:
步骤S600a、在对当前自适应修正滤波单元内的当前滤波像素进行ALF滤波的过程中,对于当前滤波像素的任一参考像素,当该参考像素未处于当前自适应修正滤波单元内时,转至步骤S610a。
步骤S610a、确定是否能够获取到该参考像素的像素值;若是,则转至步骤S630a;否则,转至步骤S620a。
步骤S620a、使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波。
步骤S630a、使用该参考像素进行滤波。
示例性的,滤波单元可以为LCU,或基于LCU得到的图像块,例如,通过对LCU进行裁剪或扩展得到的图像块。
示例性的,基于LCU得到滤波单元的实现可以参见上文中“自适应修正滤波单元”部分中的相关说明,本申请实施例对此不再赘述。
本申请实施例中,考虑到对于滤波单元的边界像素,其参考像素中可能会存在部分参考像素在该滤波单元之外,即未处于该滤波单元内,此时,可能会无法获取到该部分参考像素的像素值。
在一个示例中,无法获取到参考像素的像素值可以包括但不限于以下之一:
该参考像素处于图像边界外、处于片边界外且不允许跨越片边界进行滤波、处于当前自适应修正滤波单元的上边界外或下边界外。
示例性的,考虑到对于任一像素位置,与该像素距离最近的其它像素位置,通常也是像素值最接近该像素位置的像素值的像素位置,因而,为了优化ALF滤波效果,对于无法获取到参考像素的像素值的情况,可以使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波。
示例性的,像素位置之间的距离可以为欧氏距离。
示例性的,边界区域包括当前自适应修正滤波单元的左边界外或右边界外,当前自适应修正滤波单元的左边界外包括当前自适应修正滤波单元左侧相邻的滤波单元中的部分或全部区域,当前自适应修正滤波单元的右边界外包括当前自适应修正滤波单元右侧相邻的滤波单元中的部分或全部区域。
举例来说,以图5所示滤波单元(即图5中的样本滤波补偿单元)为当前自适应修正滤波单元为例,当前自适应修正滤波单元的边界区域可以包括图5所示样本滤波补偿单元左边界左侧的3列像素(即当前自适应修正滤波单元左侧的滤波单元中靠近当前自适应修正滤波单元的3列像素,可以称为左边界外);当前自适应修正滤波单元的边界区域可以包括图5所示样本滤波补偿单元右边界右侧的3列像素(即当前自适应修正滤波单元右侧的滤波单元中靠近当前自适应修正滤波单元的3列像素,可以称为右边界外)。
可见,在图6A所示方法流程中,在对当前自适应修正滤波单元中各像素进行ALF滤波的过程中,对于未处于当前自适应修正滤波单元内的参考像素位置,在无法获取到该参考像素位置的像素值的情况下,使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波,优化了ALF滤波性能,提升了编解码性能。
在一些实施例中,在无法获取到该参考像素的像素值的情况下,上述使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波之前,还可以包括:
确定该参考像素是否对应滤波器形状的指定位置;
若是,则确定执行上述使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波的操作。
示例性的,考虑到对于某些特定位置的参考像素,当该参考像素的像素值无法获取时,通常边界区域内与该位置最接近的像素位置的像素值也无法获取。
例如,当前滤波像素位置正左侧、正右侧、正上方或正下方的位置的参考像素。
举例来说,假设当前滤波像素位置(即C14对应的像素位置)处于当前自适应修正滤波单元的左边界,对于C11对应的参考像素位置,由于该参考像素位置处于当前滤波像素位置的左侧,且与当前滤波像素位置的距离为3像素,而一个滤波单元的宽通常是大于3像素的,因此,若C11对应的参考像素位置的像素值无法获取,则可以确定当前自适应修正滤波单元的左侧的滤波单元处于当前图像帧(即当前自适应修正滤波单元所在图片帧)的边界外,或,处于当前片(即当前自适应修正滤波单元所在片(slice))的片边界外且不允许跨越片边界进行滤波,此时,边界区域内与该参考像素位置的距离最近的像素位置,即C12对应的像素位置的像素值也无法获取,此时,需要以当前自适应修正滤波单元内距离该参考像素位置(C11对应的参考像素位置)的像素值来代替该参考像素进行滤波。
以图14A所示场景为例,当C11对应的参考像素位置的像素值无法获取时,C12对应的参考像素位置也无法获取。
而对于当前滤波像素位置左上、右上、左下或右下位置的参考像素,当其像素值无法获取时,可能是由于其处于当前自适应修正滤波单元的上边界外或下边界外(当前自适应修正滤波单元的上边界外或下边界外的像素位置的像素值无法获取),而此时,与该参考像素位置距离最近的像素位置可能处于当前自适应修正滤波单元的左边界外或右边界外,其像素值可能可以获取。
举例来说,假设当前滤波像素位置(即C14对应的像素位置)处于当前自适应修正滤波单元的左上方,对于C1对应的参考像素位置,由于该参考像素位置处于当前滤波像素位置的左上方,当当前滤波像素位置比较靠近当前自适应修正滤波单元的左上顶点时,C1对应的参考像素位置可能会处于当前自适应修正滤波单元的上边界外,从而,该参考像素位置的像素值无法获取,而在该情况下,C6对应的像素位置可能会处于当前自适应修正滤波单元的左边界外,其像素值可能是可以获取的。
以图14B所示场景为例,由于C1对应的参考像素位置处于当前自适应修正滤波单元的上边界外,因此,C1对应的参考像素位置的像素值无法获取,而C6对应的参考像素位置处于当前自适应修正滤波单元的左边界外,当当前自适应修正滤波单元的左边界外的像素值可以获取,如当前自适应修正滤波单元的左边界不是图像边界或片边界时,C6对应的参考像素位置的像素值可以获取,因此,在该情况下,对于无法获取到像素值的参考像素位置,可以使用当前自适应修正滤波单元内或边界区域内距离最近的像素位置的像素值来替代该参考像素进行滤波。
因而,为了优化ALF滤波效果,对于处于滤波器状态的指定位置的参考像素,在无法获取到该参考像素的像素值的情况下,可以使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波。
示例性的,若该参考像素未对应滤波器形状的指定位置,则可以使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波,即不考虑边界区域内的像素。
在一个示例中,指定位置可以包括但不限于第一滤波器中的第一位置、第二位置、第三位置、以及第一位置、第二位置和第三位置的对称位置;
其中,第一滤波器为7*7十字形加5*5方形的中心对称滤波器,第一位置为第一滤波器的左上角位置,第二位置为第一位置的右侧相邻位置,第三位置为第一位置的下方相邻位置,对称位置包括轴对称位置和中心对称位置。
举例来说,对于图4A所示第一滤波器,第一位置为C1位置,其轴对称位置为C5位置,第二位置为C2位置,其轴对称位置为C4位置,第三位置为C6位置,其轴对称位置为C10位置,即上述指定位置可以包括C1、C2、C6、C4、C5和C10
在一些实施例中,在无法获取到该参考像素的像素值的情况下,上述使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波之前,还可以包括:
确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
若是,则确定执行上述使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波的操作。
示例性的,考虑到允许使用增强自适应修正滤波(enhanced ALF)的情况下和不允许使用增强自适应修正滤波的情况下,使用的滤波器通常是不同的。
示例性的,允许使用增强自适应修正滤波的情况下使用的滤波器可以如图4A所示,而不允许使用增强自适应修正滤波的情况下使用的滤波器可以如图9所示。
而对于图9所示的滤波器,当参考像素的像素值无法获取时,通常当前自适应修正滤波单元之外的与该参考像素位置距离最近的像素位置的像素值也会无法获取,因此,对于不允许使用增强自适应修正滤波的情况,可以不考虑使用边界区域内的像素替代该无法获取像素值的参考像素进行滤波,考虑使用当前自适应修正滤波单元内的像素替代该无法获取像素值的参考像素进行滤波。
因而,对于任一参考像素,在无法获取到该参考像素的像素值的情况下,可以确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波。
示例性的,可以基于EalfEnableFlag的值确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波,当EalfEnableFlag等于1时,表示可使用增强自适应修正滤波;当EalfEnableFlag等于0时,表示不应使用增强自适应修正滤波。
示例性的,EalfEnableFlag的值可以从解码端导出,在解码端EalfEnableFlag的值可以由码流中获取,也可以是一个常值。
示例性的,可以基于从码流中解析得到的增强自适应修正滤波允许标志(ealf_enable_flag)的值确定EalfEnableFlag的值。
需要说明的是,“增强自适应修正滤波允许标志”可以为序列级参数,即一个“增强自适应修正滤波允许标志”的值可以用于指示一个图像序列是否允许使用增强自适应修正滤波。
示例性的,当解码端设备确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取时,可以使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波。
示例性的,当解码端设备确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取时,可以使用边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波。
示例性的,当解码端设备确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取时,可以使用当前自适应修正滤波单元和边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波。
示例性的,当解码端设备确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取时,则可以使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波,即不考虑边界区域内的参考像素。
如图6B所示,为本申请实施例提供的一种滤波方法的流程示意图,其中,滤波方法可以应用于编码/解码端设备,如图6B所示,该滤波方法可以包括以下步骤:
步骤S600b、确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波。若是,则转至步骤S610b;否则,转至步骤S620b。
步骤S610b、使用第一滤波器对当前自适应修正滤波单元进行自适应修正滤波。
步骤S620b、使用第二滤波器对当前自适应修正滤波单元进行自适应修正滤波。
本申请实施例中,为了提高滤波器选择的灵活性,优化滤波性能,提升编解码性能,自适应修正滤波单元允许使用增强自适应修正滤波和不允许使用增强自适应修正滤波时,使用的滤波器可以不同。
示例性的,当解码端设备确定当前自适应修正滤波单元允许使用增强自适应滤波时,对当前自适应修正滤波单元进行自适应修正滤波使用的滤波器可以为第一滤波器。
例如,该第一滤波器可以为图4A所示的滤波器。
示例性的,当解码端设备确定当前自适应修正滤波单元允许使用增强自适应滤波时,对当前自适应修正滤波单元进行自适应修正滤波使用的滤波器可以为第二滤波器。
例如,该第二滤波器可以为图9所示的滤波器。
在一些实施例中,步骤S600b中,确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波,可以包括:
确定用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位取值,该标志位取值为第一取值时确定当前自适应修正滤波单元允许使用增强自适应修正滤波,该标志位取值为第二取值时确定当前自适应修正滤波单元不允许使用增强自适应修正滤波。
示例性的,可以通过标志位来指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波。
示例性的,当该标志位的取值为第一取值(如0)时,表明当前自适应修正滤波单元允许使用增强自适应修正滤波。
示例性的,当该标志位的取值为第二取值(如1)时,表明当前自适应修正滤波单元允许使用增强自适应修正滤波。
示例性的,解码端设备可以获取该标志位取值,并基于该标志位取值确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波。
在一些实施例中,在对当前自适应修正滤波单元内的当前滤波像素进行自适应修正滤波的过程中,对于当前滤波像素的任一参考像素,当该参考像素未处于当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波,以便基于获取的替换像素的样本值进行当前滤波像素的自适应修正滤波;
否则,在获取到该参考像素的像素值的情况下,该参考像素的像素值用于像素的自适应修正滤波。
示例性的,考虑到对于滤波单元的边界像素,其参考像素中可能会存在部分参考像素在该滤波单元之外,即未处于该滤波单元内,此时,可能会无法获取到该部分参考像素的像素值。
在一个示例中,无法获取到参考像素的像素值可以包括但不限于以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于当前自适应修正滤波单元的上边界外或下边界外。
示例性的,考虑到对于任一像素位置,与该像素距离最近的其它像素位置,通常也是像素值最接近该像素位置的像素值的像素位置,因而,为了优化滤波效果,对于无法获取到参考像素的像素值的情况,可以使用当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波。
示例性的,像素位置之间的距离可以为欧氏距离。
示例性的,边界区域包括当前自适应修正滤波单元的左边界外或右边界外,当前自适应修正滤波单元的左边界外包括当前自适应修正滤波单元左侧相邻的滤波单元中的部分或全部区域,当前自适应修正滤波单元的右边界外包括当前自适应修正滤波单元右侧相邻的滤波单元中的部分或全部区域。
示例性的,若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波。
实施例三
本申请实施例提供了一种滤波方法,其中,该滤波方法可以应用于解码端设备,该滤波方法可以包括以下步骤:
T700、当确定对当前图像帧的当前LCU启动ALF滤波时,获取当前LCU所属合并区域的区域系数标识。
T710、基于当前LCU所属合并区域的区域系数标识,获取当前LCU的滤波系数;其中,区域系数标识用于标识在预设多组滤波系数中,LCU所属合并区域使用的滤波系数。
本申请实施例中,为了优化ALF滤波效果,提高编解码性能,一个合并区域使用的滤波系数不再限制于一组滤波系数,而是可以根据实际情况选择使用一组或多组滤波系数。
示例性的,对于任一合并区域,编码端设备可以训练多组滤波系数,并基于RDO决策确定该合并区域使用该多组滤波系数中的一组或多组,并将用于标识该合并区域使用的滤波系数的区域系数标识写入码流。
示例性的,当解码端设备确定对当前图像帧的当前LCU启动ALF滤波时,解码端设备可以基于从码流中解析得到的信息中获取当前LCU所属合并区域的区域系数标识,并基于该区域系数标识,确定当前LCU所属合并区域使用的滤波系数。
当确定了当前LCU所属合并区域使用的滤波系数时,可以从该合并区域使用的滤波系数中,确定当前LCU的滤波系数。
示例性的,当当前LCU所属合并区域使用一组滤波系数时,可以将该合并区域使用的滤波系数确定为当前LCU的滤波系数。
T720、基于当前LCU的滤波系数对当前LCU的像素逐个进行ALF滤波。
本申请实施例中,当确定了当前LCU的滤波系数时,可以基于当前LCU的滤波系数对当前LCU的像素逐个进行ALF滤波。
可见,在实施例三所述的方法流程中,通过为各区域训练多组滤波系数,并基于RDO决策确定各合并区域使用所训练的多组滤波系数中的一组或多组,并通过区域系数标识将决策结果通知给解码端设备,从而,一个区域不再限制于使用一组滤波系数,而是可以根据性能选择使用一组或多组滤波系数,优化了ALF滤波性能,提升了编解码性能。
在一些实施例中,T700中,确定对当前帧图像的当前LCU启动ALF滤波,可以包括:
从码流中解析当前LCU的LCU系数标识;其中,该LCU系数标识用于标识在当前LCU所属合并区域使用的至少一组滤波系数中,当前LCU使用的滤波系数;
当LCU的LCU系数标识的取值为非第一值时,确定对当前LCU启动ALF滤波。
示例性的,编码端设备可以通过区域系数标识通知解码端设备合并区域使用一组或多组滤波系数。对于该区域的任一LCU,编码端设备可以通过LCU系数标识来标识该合并区域使用的一组或多组滤波系数中,该LCU使用的滤波系数。
示例性的,对于任一LCU,解码端设备可以基于从码流中解析得到的该LCU的LCU系数标识确定是否对该LCU启动ALF滤波,以及在对该LCU启动ALF滤波的情况下,该LCU的滤波系数。
示例性的,对于任一LCU,当该LCU的LCU系数标识的取值为第一值时,表明不对该LCU启动ALF滤波。
对于任一LCU,当解码端设备从码流中解析到的该LCU的LCU系数标识的取值为非第一值时,可以确定对该LCU启动ALF滤波。
举例来说,假设第一值为0,则对于任一LCU,当解码端设备从码流中解析得到的该LCU的LCU系数标识的取值为0时,可以确定不对该LCU启动ALF滤波;当解码端设备从码流中解析得到的该LCU的LCU系数标识的取值不是0时,可以确定对该LCU启动ALF滤波,此时,解码端设备可以根据该LCU的LCU系数标识,确定该LCU使用的滤波系数。
需要说明的是,当LCU的LCU系数标识的取值为非第一值时,若该LCU所属合并区域使用一组滤波系数,则该LCU的滤波系数即为该组滤波系数;若该LCU所属合并区域使用多组滤波系数,则还需要根据该LCU的LCU系数标识的具体取值,确定该LCU的滤波系数。
在一个示例中,T710中,基于当前LCU所属合并区域的区域系数标识,获取当前LCU的滤波系数,可以包括:
当基于当前LCU所属合并区域的区域系数标识确定LCU所属合并区域使用多套滤波系数时,基于当前LCU的LCU系数标识,从LCU所属合并区域使用的多套滤波系数中确定当前LCU的滤波系数。
示例性的,对于任一LCU,当解码端设备确定该LCU所属合并区域使用多套滤波系数时,解码端设备可以基于从码流中解析得到的该LCU的LCU系数标识,确定该LCU使用的滤波系数。
需要说明的是,对于任一合并区域,该合并区域使用的多套滤波系数的滤波器形状可以完全相同或不完全相同。
实施例四
本申请实施例提供了一种滤波方法,其中,该滤波方法可以应用于解码端设备,该滤波方法可以包括以下步骤:
T800、当确定对当前帧图像的当前LCU启动ALF滤波时,获取所述当前LCU的系数选择标识。
T810、基于当前LCU所属合并区域以及当前LCU的系数选择标识,确定当前LCU的滤波系数;其中,该系数选择标识用于标识当前LCU在多组候选滤波系数中选择使用的滤波系数。
本申请实施例中,为了优化ALF滤波效果,提升编解码性能,LCU不再限制于选择其所属合并区域的滤波系数,而是可以从多组滤波系数中自适应的选择一组滤波系数进行ALF滤波。
示例性的,对于任一LCU,该LCU的候选滤波系数可以包括但不限于其所属合并区域的滤波系数以及其所属合并区域的相邻区域的滤波系数,从而,在每个区域传递一组滤波系数的情况下,一个LCU可以存在多组候选的滤波系数,提高LCU滤波系数选择的灵活性,优化ALF滤波效果,提升编解码性能。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定该LCU在多组候选滤波系数中使用的滤波系数,并将该滤波系数对应的系数选择标识写入码流中发送给解码端设备。
解码端设备可以基于当前LCU所属合并区域以及从码流中解析得到的当前LCU的系数选择标识,确定当前LCU的滤波系数。
T820、基于当前LCU的滤波系数对当前LCU的像素逐个进行ALF滤波。
本申请实施例中,当解码端设备确定了当前LCU的滤波系数时,可以基于当前LCU的滤波系数对当前LCU的像素逐个进行ALF滤波。
可见,在实施例所述的方法流程中,通过对各LCU设置多组候选滤波系数,并基于RDO决策确定各LCU使用的滤波系数,通过系数选择标识将决策结果通知给解码端设备,从而,可以提高各LCU使用的滤波系数的灵活性,优化了ALF滤波性能,提升了编解码性能。
在一些实施例中,T810中,基于LCU所属合并区域以及LCU的系数选择标识,确定LCU的滤波系数,可以包括:
当当前LCU的系数选择标识的取值为第一值时,将当前LCU所属合并区域的前一个合并区域的滤波系数确定为前LCU的滤波系数;
当当前LCU的系数选择标识的取值为第二值时,将当前LCU所属合并区域的滤波系数确定为当前LCU的滤波系数;
当当前LCU的系数选择标识的取值为第三值时,将当前LCU所属合并区域的后一个合并区域的滤波系数确定为当前LCU的滤波系数。
示例性的,对于任一合并区域内的任一LCU,该LCU的候选滤波系数可以包括该合并区域的滤波系数,该合并区域的前一个合并区域的滤波系数,以及该合并区域的后一个合并区域的滤波系数。
示例性的,LCU所属合并区域的前一个合并区域为LCU所属合并区域的索引的前一个相邻索引对应的合并区域。
示例性的,LCU所属合并区域的后一个合并区域为LCU所属合并区域的索引的后一个相邻索引对应的合并区域。
需要说明的是,对于按照固定区域划分方式得到的16个区域进行区域合并后得到的合并区域(假设依次为合并区域0~合并区域15),合并区域15的后一个合并区域可以为合并区域0,合并区域0的前一合并个区域可以为区域15。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定其使用的滤波系数,当确定该LCU使用的滤波系数该LCU所属合并区域的前一个合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第一值,如0;当确定该LCU使用的滤波系数该LCU所属合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第二值,如1;当确定该LCU使用的滤波系数该LCU所属合并区域的后一个合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第三值,如3。
示例性的,对于任一LCU,当解码端设备从码流中解析得到的该LCU的系数选择标识的取值为第一值时,可以将该LCU所属合并区域的前一个合并区域的滤波系数确定为该LCU的滤波系数;当从码流中解析得到的该LCU的系数选择标识的取值为第二值时,可以将该LCU所属合并区域的滤波系数确定为该LCU的滤波系数;当从码流中解析得到的该LCU的系数选择标识的取值为第三值时,可以将该LCU所属合并区域的后一个合并区域的滤波系数确定为该LCU的滤波系数。
可见,通过将LCU所属合并区域以及该LCU所属合并区域的前一个合并区域和后一个合并区域的滤波系数均作为LCU的候选滤波系数,并基于RDO决策选择一组滤波系数作为该LCU的滤波系数,从而,可以在一个合并区域训练一组滤波系数的情况下,合并区域内的LCU可以存在多组候选滤波系数,在不需要针对一个合并区域训练多组滤波系数的情况下,提高了LCU的滤波系数的灵活性,从而优化了ALF滤波性能,提升了编解码性能。
实施例五
请参见图7,为本申请实施例提供的一种滤波方法的流程示意图,其中,该滤波方法可以应用于解码端设备,如图7所示,该滤波方法可以包括以下步骤:
步骤S700、当确定对当前帧图像的当前LCU启动ALF滤波时,基于当前LCU所属合并区域,获取当前LCU所属合并区域的滤波器形状。
步骤S710、基于滤波器形状,获取当前LCU所属合并区域的滤波系数。
本申请实施例中,为了提高滤波系数的灵活性,优化ALF滤波效果,提升编解码性能,各区域不再限制于使用同一滤波器形状,而是可以选择性地使用不同滤波器形状,即不同合并区域使用的滤波器形状可以相同,也可以不同。
示例性的,对于任一合并区域,编码端设备可以训练不同滤波器形状的多组滤波系数,并基于RDO决策确定该合并区域使用的滤波器形状和滤波系数,并将该滤波器形状和滤波系数写入码流发送给解码端设备。
示例性的,对于任一合并区域,解码端设备在获取该合并区域的滤波系数时,可以从码流中解析该合并区域的滤波器形状,并基于该滤波器形状,从码流中解析该合并区域的滤波系数。
步骤S720、基于滤波器形状和滤波系数对当前LCU的像素逐个进行ALF滤波。
本申请实施例中,当解码端设备确定了当前LCU的滤波系数时,可以基于当前LCU的滤波系数对当前LCU的像素逐个进行ALF滤波。
可见,在图7所示方法流程中,通过为各区域训练多组不同滤波器形状的滤波系数,并基于RDO决策确定各合并区域使用的滤波器形状和滤波系数,将决策结果通过码流通知给解码端设备,解码端设备可以从码流中解析得到各区域的滤波器形状和滤波系数,从而,可以优化ALF滤波效果,提升编解码性能。
需要说明的是,在本申请实施例中,也可以针对图像帧选择滤波器形状,或针对图像帧的分量(如亮度分量和/或色度分量)选择滤波器形状。例如,当图像帧A选择7*7十字形加上5*5方形的中心对称滤波器形状,则图像帧A中的各启动ALF滤波的LCU均使用7*7十字形加上5*5方形的中心对称滤波器形状。
实施例六
请参见图8,为本申请实施例提供的一种滤波方法的流程示意图,其中,该滤波方法可以应用于解码端设备,如图8所示,该滤波方法可以包括以下步骤:
步骤S800、当确定对当前帧图像的当前LCU启动ALF滤波时,基于当前LCU所属合并区域,获取当前LCU所属合并区域的滤波系数,以及各参考像素位置的权重系数。
步骤S810、基于滤波系数,以及各参考像素位置的权重系数,对当前LCU的像素逐个进行ALF滤波。
本申请实施例中,为了优化ALF滤波效果,提升编解码性能,进行ALF滤波时使用的滤波器不再限制于对称滤波器,而是可以采用非对称滤波器,即位置对称的滤波系数可以不同,并满足一定的比例关系,如0.5:1.5或0.6:1.4等。
需要说明的是,由于基于确定的滤波系数进行ALF滤波时,对于任一非中心位置的滤波系数,需要基于该滤波系数,与该滤波系数的对称位置的滤波系数,分别与对应位置的参考像素的乘积之和,得到滤波后的像素值,因此,上述比例可以作为对称位置的滤波系数之间的比例,或者,也可以作为对称位置的滤波系数对应的参考像素的像素值参与ALF滤波计算时的加权权重的比例(也可以称为权重比例),即上述非对称滤波器是指对称位置的滤波系数不同,或者,对称位置的滤波系数对应的参考像素的像素值的权重不同。
举例来说,7*7十字形加上5*5方形的中心对称滤波器形状的滤波系数Ci,其对称位置的滤波系数为C28-i,则Ci:C28-i=Ai:(2-Ai),或者,Pi和P28-i在参与ALF滤波计算时的加权权重的比例为Ai:(2-Ai),Pi为Ci对应的参考像素位置的像素值,P28-i为C28-i对应的参考像素位置的像素值,对于LCU的当前滤波像素,该像素滤波后的像素值可以通过以下方式确定:
Figure BDA0003285636290000281
其中,Ci为LCU所属合并区域的滤波系数中的第(i+1)个滤波系数,Pi为滤波系数Ci对应的参考像素位置的像素值,P28-i对应的参考像素位置与Pi对应的参考像素位置关于当前滤波像素的像素位置中心对称,Ai为Pi对应的参考像素位置的像素值的权重系数,P14为当前滤波像素的像素值,C14为当前滤波像素的滤波系数,0<Ai<2。
本申请实施例中,对于任一合并区域,编码端设备可以确定每个位置对应不同的权重系数下,该合并区域的滤波系数,以及滤波性能。选择滤波性能最好的一组滤波系数,记录该滤波系数以及对应滤波器每个位置上对应的权重系数,并将其写入码流发送给解码端设备。
示例性的,可以预先构建权重系数集合(如上述Ai的取值集合),并分别从该集合中选择各权重系数,以得到滤波性能最好的滤波系数以及对应滤波器每个位置上对应的权重系数,并将该权重系数在权重系数集合中的索引写入码流发送给解码端设备。
对于任一LCU,解码端设备可以从码流中解析得到该LCU所属合并区域的滤波系数,以及该LCU所属合并区域对应的各参考像素位置的权重系数,对LCU的像素逐个进行ALF滤波。
可见,在图8所示方法流程中,各合并区域使用的滤波器不再限制于对称滤波器,对称位置的参考像素的滤波系数不再限制于相同,而是可以满足一定的比例关系,且由于对称位置的滤波系数之间满足该比例关系,需要的滤波系数的数量并不会增加,从而,提高滤波系数的灵活性,优化了ALF滤波性能,提升了编解码性能。
实施例七
本申请实施例提供了一种滤波方法,该滤波方法可以应用于编码端设备,该滤波方法可以包括以下步骤:
T100、对当前图像帧的亮度分量进行区域划分。
示例性的,对图像帧的亮度分量的区域划分的实现可以参见上文中“区域划分”部分的相关说明,本申请实施例在此不做赘述。
T110、对于任一区域,对该区域内的各LCU进行分类,并基于各LCU的类别将该区域划分为多个区域类别。
本申请实施例中,为了优化ALF滤波效果,提高编解码性能,当按照固定区域划分方式对图像帧的亮度分量进行区域划分得到多个区域时,对于各区域,可以基于区域内各像素的像素特性,对区域内的LCU进行分类,将区域内的LCU划分为至少一个类别,即一个区域可以通过LCU分类的方式被划分为至少一个区域(可以称为子区域或区域类别)。
T120、对各区域类别进行区域合并,并确定各合并后的区域的滤波系数。
T130、将各合并后的区域的滤波系数以及各LCU的区域类别标识写入码流。
本申请实施例中,当编码端设备按照上述方式对各区域内的LCU进行了分类时,编码端设备可以对各区域类别进行区域合并,得到至少一个合并后的区域,并确定各合并后的区域的滤波系数。
示例性的,对各区域类别进行区域合并的实现方式与上文中“区域合并”部分中的相关说明相类似,本申请实施例在此不做赘述。
示例性的,对于任一区域类别,编码端设备可以基于其所属合并后的区域为其分配一个系数索引,该系数索引该对应其中一个合并后的区域的滤波系数。
本申请实施例中,编码端设备可以将各合并后的区域的滤波系数、各区域类别的索引,以及用于标识各LCU所属区域类别的区域类别标识写入码流,并发送给解码端设备。
示例性的,解码端设备的处理流程可以参见上述实施例中的相关说明,本申请实施例在此不做赘述。
实施例八
本申请实施例提供了一种滤波方法,该滤波方法可以应用于编码端设备,该滤波方法可以包括以下步骤:
T200、对于当前图像帧的任一合并区域,基于RDO决策确定该合并区域使用的滤波系数。
T210、基于该区域使用的滤波系数确定该合并区域的区域系数标识;其中,该区域系数标识用于标识在预设多组滤波系数中,该合并区域使用的滤波系数。
T220、将各合并区域使用的滤波系数以及各合并区域的区域系数标识写入码流。
本申请实施例中,为了优化ALF滤波效果,提高编解码性能,一个合并区域使用的滤波系数不再限制于一组滤波系数,而是可以根据实际情况选择使用一组或多组滤波系数。
示例性的,对于任一合并区域,编码端设备可以训练多组滤波系数,并基于RDO决策确定该合并区域使用该多组滤波系数中的一组或多组,并将用于标识该合并区域使用的滤波系数的区域系数标识写入码流。
示例性的,解码端设备的处理流程可以参见上述实施例中的相关说明,本申请实施例在此不做赘述。
在一些实施例中,上述滤波方法还可以包括:
对于当前图像帧的任一合并区域,当该合并区域使用的滤波系数包括多套时,基于该合并区域内各LCU使用的滤波系数,确定各LCU的LCU系数标识;
将各LCU的LCU系数标识写入码流。
示例性的,编码端设备可以通过区域系数标识通知解码端设备合并区域使用一组或多组滤波系数。对于该合并区域的任一LCU,编码端设备可以通过LCU系数标识来标识该合并区域使用的一组或多组滤波系数中,该LCU使用的滤波系数。
对于任一合并区域,当编码端设备确定该合并区域使用多组滤波系数时,对于该合并区域的任一LCU,编码端设备可以通过LCU系数标识将该多组滤波系数中该LCU使用的滤波系数通知给解码端设备。
示例性的,对于任一LCU,当不对该LCU启动ALF滤波,编码端设备可以写入码流的该LCU的LCU系数标识的取值为第一值。
举例来说,假设第一值为0,则对于任一LCU,当编码端设备确定不对该LCU启动ALF滤波时,写入码流的该LCU的LCU系数标识的取值为0。
实施例九
本申请实施例提供了一种滤波方法,该滤波方法可以应用于编码端设备,该滤波方法可以包括以下步骤:
T300、对于当前图像帧的任一合并区域,基于RDO决策从多组滤波系数中确定该合并区域使用的滤波系数;
T310、基于该区域使用的滤波系数,确定该合并区域内各LCU的系数选择标识;其中,该系数选择标识用于标识各LCU在多组候选滤波系数中选择使用的滤波系数。
T320、将各合并区域使用的滤波系数以及各LCU的系数选择标识写入码流。
本申请实施例中,为了优化ALF滤波效果,提升编解码性能,LCU不再限制于选择其所属合并区域的滤波系数,而是可以从多组滤波系数中自适应的选择一组滤波系数进行ALF滤波。
示例性的,对于任一LCU,该LCU的候选滤波系数可以包括但不限于其所属合并区域的滤波系数以及其所属合并区域的相邻区域的滤波系数,从而,在每个区域传递一组滤波系数的情况下,一个LCU可以存在多组候选的滤波系数,提高LCU滤波系数选择的灵活性,优化ALF滤波效果,提升编解码性能。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定该LCU在多组候选滤波系数中使用的滤波系数,并将该滤波系数对应的系数选择标识写入码流中发送给解码端设备。
示例性的,解码端设备的处理流程可以参见上述实施例中的相关说明,本申请实施例在此不做赘述。
示例性的,对于任一合并区域内的任一LCU,该LCU的候选滤波系数可以包括该合并区域的滤波系数,该合并区域的前一合并区域的滤波系数,以及该区域的后一合并区域的滤波系数。
需要说明的是,对于按照固定区域划分方式得到的16个区域在经过区域合并后包括16个合并区域(假设依次为合并区域0~合并区域15),合并区域15的后一个合并区域可以为合并区域0,合并区域0的前一个合并区域可以为合并区域15。
示例性的,对于任一LCU,编码端设备可以基于RDO决策确定其使用的滤波系数,当确定该LCU使用的滤波系数该LCU所属合并区域的前一个合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第一值,如0;当确定该LCU使用的滤波系数该LCU所属合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第二值,如1;当确定该LCU使用的滤波系数该LCU所属合并区域的后一个合并区域的滤波系数时,可以确定该LCU的系数选择标识的取值为第三值,如3。
实施例十
本申请实施例提供了一种滤波方法,该滤波方法可以应用于编码端设备,该滤波方法可以包括以下步骤:
T400、对于当前图像帧的任一合并区域,基于RDO决策确定该合并区域使用的滤波器形状和滤波系数。
T410、将各区域合并使用的滤波器形状和滤波系数写入码流。
本申请实施例中,为了提高滤波系数的灵活性,优化ALF滤波效果,提升编解码性能,各合并区域不再限制于使用同一滤波器形状,而是可以选择性地使用不同滤波器形状,即不同合并区域使用的滤波器形状可以相同,也可以不同。
示例性的,对于任一合并区域,编码端设备可以训练不同滤波器形状的多组滤波系数,并基于RDO决策确定该合并区域使用的滤波器形状和滤波系数,并将该滤波器形状和滤波系数写入码流发送给解码端设备。
示例性的,解码端设备的处理流程可以参见上述实施例中的相关说明,本申请实施例在此不做赘述。
需要说明的是,在本申请实施例中,也可以针对图像帧选择滤波器形状,或针对图像帧的分量(如亮度分量和/或色度分量)选择滤波器形状。例如,当图像帧A选择7*7十字形加上5*5方形的中心对称滤波器形状,则图像帧A中的各启动ALF滤波的LCU均使用7*7十字形加上5*5方形的中心对称滤波器形状。
实施例十一
本申请实施例提供了一种滤波方法,该滤波方法可以应用于编码端设备,该滤波方法可以包括以下步骤:
T500、对于当前图像帧的任一合并区域,基于RDO决策确定该合并区域使用的滤波系数,以及对应的各参考像素位置的权重系数;
T510、将各合并区域使用的滤波系数以及对应的各参考像素位置的权重系数写入码流。
本申请实施例中,为了优化ALF滤波效果,提升编解码性能,进行ALF滤波时使用的滤波器不再限制于对称滤波器,而是可以采用非对称滤波器,即位置对称的滤波系数可以不同,并满足一定的比例关系,如0.5:1.5或0.6:1.4等。
举例来说,以图13所示滤波器为例,在图13所示滤波器中,关于C14位置中心对称的滤波系数不再限制于相同,而是可以满足一定的比例关系,例如,C1:C27=0.5:1.5,C6:C22=0.6:1.4等。
需要说明的是,由于基于确定的滤波系数进行ALF滤波时,对于任一非中心位置的滤波系数,需要基于该滤波系数,与该滤波系数的对称位置的滤波系数,分别与对应位置的参考像素的乘积之和,得到滤波后的像素值,因此,上述比例可以作为对称位置的滤波系数之间的比例,或者,也可以作为对称位置的滤波系数对应的参考像素的像素值参与ALF滤波计算时的加权权重的比例(也可以称为权重比例),即上述非对称滤波器是指对称位置的滤波系数不同,或者,对称位置的滤波系数对应的参考像素的像素值的权重不同。
举例来说,如图13所示的7*7十字形加上5*5方形的中心对称滤波器形状的滤波系数Ci,其对称位置的滤波系数为C28-i,则Ci:C28-i=Ai:(2-Ai),或者,Pi和P28-i在参与ALF滤波计算时的加权权重的比例为Ai:(2-Ai),Pi为Ci对应的参考像素位置的像素值,P28-i为C28-i对应的参考像素位置的像素值,对于LCU的当前滤波像素,该像素滤波后的像素值可以通过以下方式确定:
Figure BDA0003285636290000321
其中,Ci为LCU所属合并区域的滤波系数中的第(i+1)个滤波系数,Pi为滤波系数Ci对应的参考像素位置的像素值,P28-i对应的参考像素位置与Pi对应的参考像素位置关于当前滤波像素的像素位置中心对称,Ai为Pi对应的参考像素位置的像素值的权重系数,P14为当前滤波像素的像素值,C14为当前滤波像素的滤波系数,0<Ai<2。
如图13所示的滤波器,假设Ci:C28-i=Ai:(2-Ai),则在对称位置(关于C14中心对称)的滤波系数不同的情况下,也可以只需要训练C0~C14这15个系数,其余系数可以基于权重系数确定。
例如,假设A1=0.5,则C1:C27=0.5:1.5;假设A0=0.6,则C0:C28=0.6:1.4。
本申请实施例中,对于任一合并区域,编码端设备可以确定每个位置对应不同的权重系数下,该合并区域的滤波系数,以及滤波性能。选择滤波性能最好的一组滤波系数,记录该滤波系数以及对应滤波器每个位置上对应的权重系数,并将其写入码流发送给解码端设备。
示例性的,可以预先构建权重系数集合(如上述Ai的取值集合),并分别从该集合中选择各权重系数,以得到滤波性能最好的滤波系数以及对应滤波器每个位置上对应的权重系数,并将该权重系数在权重系数集合中的索引写入码流发送给解码端设备。
示例性的,解码端设备的处理流程可以参见上述实施例中的相关说明,本申请实施例在此不做赘述。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
针对传统ALF技术的缺点,本申请实施例提出如下优化方案:
方案1、对于每一帧,以LCU为最小单位,将其自适应划分为多个的区域,其中每个区域可能包括不止一个LCU,因此,提出对每个LCU进行分类,将同一个区域的LCU分为N类,N为正整数。
方案2、每个区域中可以传递多组滤波系数,每组滤波器形状可以相同也可以不同。
方案3、基于每个LCU自适应的选择一套滤波系数,同一个区域的LCU可以选择相邻区域的滤波系数。
方案4、每个区域只能传递一组滤波系数,但每个区域的滤波器形状可以不相同。
方案5、将对称滤波器修改为非对称滤波器,将对称位置的滤波器系数相同,优化为对称位置上滤波器系数满足一定的比例关系,如0.5:1.5或0.6:1.4等。
方案6、对于滤波时边界的样本取值,进行优化。
下面先分别从编码端和解码端对本申请的主要改进点进行说明。
一、编码方法及编码端设备
对于编码端设备,可以获取ALF开关序列头,判断当前序列是否需要启用ALF技术。若ALF开关序列头为关闭,则ALF技术关闭,ALF优化技术(即本申请实施例提供的ALF滤波方案对传统ALF技术做出的优化,可以包括上述方案1~方案6中的任一或多个优化方案)也关闭,将ALF开关序列头传到解码端设备。若ALF开关序列头为打开,则进入ALF技术编码,并可以获取ALF技术优化序列头。
若ALF技术优化关闭,则使用原ALF技术进行滤波。将ALF开关序列头传到,优化技术序列头以及ALF技术所需参数传到解码端设备。
若ALF技术优化打开,则可以使用以下方案进行优化,并将ALF开关序列头传到,优化技术序列头以及优化的ALF技术所需参数传递到解码端设备。
示例性的,优化技术序列头也可以不存在,此时,若ALF开关序列头打开,则确定使用优化的ALF技术方案。
1.1、以LCU为最小单位进行自适应区域划分
对亮度分量进行固定区域划分,得到多个区域;对于属于同一个区域的LCU再次进行划分(即对同一区域内的各LCU进行分类),同一个区域最多再划分为N1类,N1为正整数。
示例性的,若N1=2,则区域总个数最多为原来2倍;若N1=1,则为原固定区域划分方案。
编码端设备可以将每个区域内的LCU划分的结果进行标记,发送给解码端设备(即将各LCU的区域类别标识发送给解码端设备)。
1.2、每个区域中可以传递多组滤波系数方案
对于任一合并区域,可以最多传递n组滤波系数。并对该合并区域内的各LCU进行标识。0表示关闭,即不启动ALF滤波;i表示当前LCU使用该区域内的某一套滤波系数,i的取值范围是[1,n]。
示例性的,每一套滤波系数的获取方式如下:
第一次训练滤波系数,默认所有LCU都启用ALF滤波,在决策后,对于关闭的LCU(即不启动ALF滤波的LCU),不参与第二次滤波系数的训练,同时有相同标记的LCU共同训练同一组滤波系数。
同理,第三次滤波系数的训练,基于第二次决策的结果进行。
最后,基于帧级或区域级决定该图像帧或该合并区域最多使用n组滤波系数,最后将每个合并区域对应滤波系数写入码流。
1.3、每个LCU自适应的选择一套滤波系数
针对亮度分量,对于任一LCU,在决策时可以选择使用当前LCU所在区域的滤波系数或使用其他区域的滤波器系数,每个LCU可选的滤波器个数最大值为N2(即N2组滤波系数,N2≥2),在N2组滤波系数下进行RDO决策,选择性能最好的一组滤波系数,将当前LCU的最优选择结果发送给解码端设备(即将系数选择标识发送给解码端设备)。
示例性的,N2小于或等于合并后区域的个数。
1.4、每个区域选择不同形状的滤波器
每个区域传递一组滤波系数,因此,对于任一LCU,编码端设备可以通过一个标志位通知解码端设备对该LCU启动ALF滤波或不启动(即关闭)ALF滤波。
在计算每个区域的滤波系数时,对于任一合并区域,可以分别计算N3(N3≥2)种不同的滤波器形状下的滤波系数,并分别计算在N3种滤波器形状下,该区域的滤波性能,选择性能最好的一种滤波器形状,并将各区域的性能最好的滤波器形状和滤波系数通过码流通知给解码端设备。
需要说明的是,编码端设备也可以基于帧级选择不同形状的滤波器,或者基于Y、U和V分量来选择不同形状的滤波器。
以基于帧级选择不同形状的滤波器为例,对于任一图像帧,可以分别计算N4种不同的滤波器形状下各区域的滤波系数,并分别计算在N4(N4≥2)种滤波器形状下,该图像帧的滤波性能,选择性能最好的一种滤波器形状,并将该图像帧的性能最好的滤波器形状,以及各区域的滤波系数通过码流通知给解码端设备。
1.5、将对称滤波器修改为非对称滤波器
对于有N5(N5≥2)个系数的对称滤波器,只需要训练
Figure BDA0003285636290000351
个滤波系数。
示例性的,
Figure BDA0003285636290000352
为向下取整运算,即当“*”不是整数时,“*”的非整数部分置0,如
Figure BDA0003285636290000353
示例性的,将对称滤波器修改为非对称滤波器之后,对称位置上的滤波系数满足不同的比例关系,从而,进行系数训练时,依然只需要训练
Figure BDA0003285636290000354
个滤波系数。
示例性的,以图4A所示滤波器形状为例,Ci与C28-i为对称位置。可以通过RDO决策来选择每个对称位置上的滤波系数的比例关系,并将各位置的滤波系数,以及对称位置的滤波系数的比例通过码流发送给解码端设备。
示例性的,当所有对称位置的滤波系数的比例为1:1时,则训练得到的滤波器仍为对称滤波器。
二、解码方法及解码端设备
对于解码端设备,可以从码流中读取ALF开关序列头,判断当前序列是否需要启用ALF技术。若ALF开关序列头为关闭,则ALF技术关闭。若ALF开关序列头为打开,则可以继续读取ALF技术优化序列头。
若ALF技术优化序列头为关闭,则获取原ALF技术所需滤波参数;
若ALF技术优化序列头为打开,则读取优化的ALF技术所需滤波参数。
示例性的,ALF优化技术序列头也可以不存在,此时,若ALF开关序列头为打开,则读取优化的ALF技术所需滤波参数。
2.1、以LCU为最小单位进行自适应区域划分
对亮度分量进行固定区域划分,得到多个区域;从码流中读取所有区域的滤波系数,同时从码流中读取所有启动ALF滤波的LCU的区域类别标识,根据固定区域划分结果,与LCU的区域类别标识确定LCU所属区域类别,根据LCU所属区域类别获取对应的滤波系数,并对LCU的像素逐个进行ALF滤波。
2.2、每个区域中可以传递多组滤波系数方案
从码流中读取帧级或区域级系数标识,根据帧级或区域级系数标识从码流中获取每个合并区域中的多组滤波系数,并由帧级或区域级系数标识确定可选择的滤波器个数(即滤波系数组数)。
从码流中获取每个LCU的LCU系数标识,根据各LCU的LCU系数标识选择一组滤波器系数。在对当前LCU进行滤波时,使用该组滤波系数对该LCU的像素逐个进行ALF滤波。
2.3、每个LCU自适应的选择一套滤波系数
从码流中读取每个区域中的滤波系数,以及每个LCU打开或关闭ALF滤波的标志位(即对LCU启动ALF滤波或不启动ALF滤波),对于每个启动ALF滤波的LCU,从码流中读取该LCU的系数选择标识。
示例性的,对于任一LCU,可选的滤波器的个数最大值为N2(即候选滤波系数最多为N2组)。
2.4、每个区域选择不同形状的滤波器
对于任一合并区域,可以从码流中读取该合并区域的滤波器形状,并根据滤波器形状读取该合并区域的滤波系数。根据滤波器形状与滤波系数对该合并区域内各LCU的像素逐个进行ALF滤波
2.5、将对称滤波器修改为非对称滤波器
从码流读取每个合并区域的滤波系数,并读取对称位置的滤波系数的比例系数。
按照各位置上的滤波系数,以及对称位置的滤波系数的比例系数,导出该合并区域各位置上的滤波系数,对该合并区域内各LCU的像素逐个进行ALF滤波。
下面对滤波边界的样本取值优化方案进行说明。
实施例十二、滤波边界的样本取值优化方案1
假设滤波器形状如图4A所示。若自适应修正滤波过程中用到的样本(即对自适应修正滤波单元内当前滤波像素进行滤波时的参考像素)为自适应修正滤波单元内的样本(即该参考像素处于自适应修改滤波单元内),则使用该样本进行滤波;若自适应修正滤波过程中用到的样本不属于自适应修正滤波单元内的样本(即该参考像素未处于自适应修改滤波单元内),则按照如下方式进行滤波:
12.1、若该样本在图像边界外,或在片边界外且不允许跨越片边界进行滤波,则:
12.1.1、若该样本对应滤波器形状C1、C2、C6、C4、C5或C10位置,则使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
12.1.2、否则,即该样本不是对应滤波器形状C1、C2、C6、C4、C5或C10位置,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
12.2、否则,若该样本在自适应修正滤波单元上边界外或下边界外,则:
12.2.1、若该样本对应滤波器形状C1、C2、C6、C4、C5或C10位置,则使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
12.2.2、否则,即该样本不是对应滤波器形状C1、C2、C6、C4、C5或C10位置,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
12.3、否则,即该样本不满足12.1中的条件,也不满足12.2中的条件,则使用该样本进行滤波。
实施例十三、滤波边界的样本取值优化方案2
假设滤波器形状如图4A所示。若自适应修正滤波过程中用到的样本(即对自适应修正滤波单元内当前滤波像素进行滤波时的参考像素)为自适应修正滤波单元内的样本(即该参考像素处于自适应修改滤波单元内),则使用该样本进行滤波;若自适应修正滤波过程中用到的样本不属于自适应修正滤波单元内的样本(即该参考像素未处于自适应修改滤波单元内),则按照如下方式进行滤波:
13.1、若该样本在图像边界外,或在片边界外且不允许跨越片边界进行滤波,则使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
13.2、否则,若该样本在自适应修正滤波单元上边界外或下边界外,则使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
13.3、否则,即该样本不满足13.1中的条件,也不满足13.2中的条件,则使用该样本进行滤波。
实施例十四、滤波边界的样本取值优化方案3
假设滤波器形状如图4A所示。若自适应修正滤波过程中用到的样本(即对自适应修正滤波单元内当前滤波像素进行滤波时的参考像素)为自适应修正滤波单元内的样本(即该参考像素处于自适应修改滤波单元内),则使用该样本进行滤波;若自适应修正滤波过程中用到的样本不属于自适应修正滤波单元内的样本(即该参考像素未处于自适应修改滤波单元内),则按照如下方式进行滤波:
14.1、若该样本在图像边界外,或在片边界外且不允许跨越片边界进行滤波,则:
14.1.1、若EalfEnableFlag等于1,则使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
14.1.2、否则,即EalfEnableFlag(增强自适应修正滤波的使能标志位)等于0,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
14.2、否则,若该样本在自适应修正滤波单元上边界外或下边界外,则:
14.2.1、若EalfEnableFlag等于1,则使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
14.2.2、否则,即EalfEnableFlag等于0,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
14.3、否则,即该样本不满足14.1中的条件,也不满足14.2中的条件,则使用该样本进行滤波。
需要说明的是,EalfEnableFlag指一个flag,其取值可以包括‘1’或‘0’,当EalfEnableFlag等于1时,表示可使用增强自适应修正滤波;当EalfEnableFlag等于0时,表示不应使用自适应修正滤波。
示例性的,EalfEnableFlag的值可以从解码端导出,在解码端EalfEnableFlag的值可以由码流中获取,也可以是一个常值。
示例性的,EalfEnableFlag的值可以等于ealf_enable_flag(即增强自适应修正滤波允许标志)的值;当EalfEnableFlag等于1时,表示可使用增强自适应修正滤波;当EalfEnableFlag等于0时,表示不应使用自适应修正滤波。
实施例十五、滤波边界的样本取值优化方案4
当样本所在位置处于图像边界外,或片边界外且CplfEnableFlag的值为0,或者处于当前自适应修正滤波单元上边界或下边界外时,该样本无法获取到真实值,则取当前自适应修正滤波单元区域内与该样本距离最近的样本代替该样本进行滤波。
当前自适应修正滤波单元可以使用如图4A所示的第一滤波器进行滤波,当前自适应修正滤波单元也可以使用如图9所示的第二滤波器进行滤波。
假设当前自适应修正滤波单元使用如图4A所示的第一滤波器进行滤波,滤波器形状如图4A所示。
当自适应修正滤波过程中用到的任意样本(当前自适应修正滤波单元内当前滤波像素进行滤波时的参考像素样本)为当前自适应修正滤波单元内的样本,则直接使用该样本进行滤波;当自适应修正滤波过程中用到的任意样本不属于当前自适应修正滤波单元内的样本,按照如下方式进行滤波:
15.1、如果该样本在图像边界外,或在片边界外且CplfEnableFlag的值为0,则使用当前自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;CplfEnableFlag用于指示是否允许跨越片边界取值;
15.2、否则,如果该样本在当前自适应修正滤波单元上边界外或下边界外,则使用当前自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
15.3、否则,直接使用该样本进行滤波。
示例性的,CplfEnableFlag指的是是否允许跨越Slice边界取值,也可以称作cross_patch_loopfilter_enable_flag。
如图4C所示,当前自适应修正滤波单元内进行自适应修正滤波的像素位置是14样本位置,需要获取当前自适应修正滤波单元外部的参考像素样本,如图4C所示,作为一种示例,参考像素样本0,1,2,3,4,5,6,7,8,9,10在当前自适应修正滤波单元的上边界外,这些位置的样本值获取不到时,需要找到其他样本值来代替。
当滤波样本在当前自适应修正滤波单元的左上角时,例如,参考像素样本1,2,6和7位置的样本值无法获取,则使用当前自适应修正滤波单元内距离该样本1,2,6,7最近的样本位置的样本值进行滤波,14样本位置是当前自适应修正滤波单元自适应修正滤波单元中距离这四个点样本最近的位置,可将因此都取14样本位置的样本值代替分别作为这四个样本的取值进行滤波。
参考像素样本4,5,9,10位置的样本值无法获取,则使用当前自适应修正滤波单元内距离4,5,9,10最近的样本位置的样本值进行滤波,其中,15样本位置是当前自适应修正滤波单元中距离4,9样本最近的样本位置,可将15样本位置的样本值分别作为4,9样本的取值进行滤波;其中,16样本位置是当前自适应修正滤波单元中距离5,10样本最近的位置,可将16样本位置的样本值分别作为5,10样本的取值进行滤波。参考像素样本0,3,8位置的样本值无法获取,使用当前自适应修正滤波单元内距离该样本0,3,8最近的样本位置的样本值进行滤波,14样本位置是当前自适应修正滤波单元自适应修正滤波单元中距离这三个点样本最近的位置,因此,可将14样本位置的样本值代替分别作为这三个样本的取值进行滤波。
需要说明的是,以上仅为部分参考像素样本不可获取时的取值获取方式的示例,不代表所有情况,也不是对本申请保护范围的限定。
下面对ALF滤波优化方案进行详细说明。
实施例十六、以LCU为最小单位进行自适应区域划分
编码端设备
以图2所示的固定区域划分方式为例,对于图像帧的亮度分量,可以按照上文中“区域划分”部分的描述的方式进行固定区域划分。将亮度分量划分为16个区域,每个区域标记为K,K∈[0,15],在每个区域内部存在1个或多个LCU。
对于属于同一区域的LCU进行再次划分。
示例性的,区域内LCU划分方法可以使用LCU合并的方式,计算LCU两两合并的代价,将代价最小的两个LCU合并,依此类推,计算当合并只剩下[1,N6]类的所有代价,选择代价最小的一种划分方法。标记每个LCU最后的选择。
以最多可划分为两类为例,即上述N6=2,因此,每个LCU标记为1或0,即上述LCU的区域类别标识的取值包括1或0。
示例性的,对于标记为0(即区域类别标识的取值为0)的LCU,所属区域类别为2K;对于标记为1(即区域类别标识的取值为1)的LCU,所属类别为2K+1。
示例性的,亮度分量最多被划分为32个区域。区域划分后,对32个区域进行区域合并计算每个合并后的区域的滤波系数。将LCU区域划分结果(即各LCU的区域类别标识)以及在该区域划分后得到的滤波系数通过码流发送给解码端设备。
解码端设备
对于图像帧的亮度分量,可以按照上文中“区域划分”部分的描述的方式进行固定区域划分。将亮度分量划分为16个区域,其划分结果示意图可以如图2所示。
对于区域K的任一LCU,可以获取该LCU的区域类别标识;区域类别标识的取值为0的LCU,所属区域类别为2K;区域类别为1的LCU,所属区域类别为2K+1。
基于各LCU的区域类别以及从码流中解析得到的滤波系数,确定各LCU的滤波系数,并基于各LCU的滤波系数对各LCU的像素逐个进行ALF滤波。
实施例十七、每个区域中可以传递2组滤波系数的优化方案
编码端设备
对每个LCU进行标识,假设0表示关闭ALF滤波,1表示使用第1组滤波系数,2表示使用第2组滤波系数,即LCU的LCU系数标识的取值包括0、1或2,上述第一值为0,非第一值包括1或2。
对每个区域进行系数标识,0表示只使用第一组滤波系数,1表示只使用第二组滤波系数,2表示使用两组滤波系数。
示例性的,第一组滤波系数的滤波器形状可以如图4A所示,第二组滤波系数的滤波器器形状可以如图12所示(7*7十字形加上3*3方形的中心对称滤波器形状)。
滤波系数训练过程中,第一次计算滤波系数时,滤波参数使用当前区域内所有的LCU的像素。经过决策后,训练第1组系数,仅使用标识的取值为1的LCU参与训练。训练第2组系数时,仅使用标识的取值为2的LCU参与训练。最后经过RDO决策确定当前区域仅使用某一组滤波器,或使用两组滤波器的性能。
若仅使用第一组滤波系数的性能最优,则确定区域系数标识的取值为0,写入码流,且将第一组滤波系数写入码流,并将各LCU的LCU系数标识写入码流,每个LCU的LCU系数标识的取值为0或1;若仅使用第二组滤波系数的性能最优,则确定区域系数标识的取值为1,写入码流,且将第二组滤波系数写入码流,并将各LCU的LCU系数标识写入码流,每个LCU的LCU系数标识的取值为0或1;若使用两组滤波系数的性能最优,则确定区域系数标识的取值为2,写入码流,且将两组滤波系数写入码流,并将LCU标识写入码流,每个LCU的LCU系数标识的取值为0、1或2。
解码端设备
对于任一合并区域,从码流读取该合并区域的区域系数标识,若区域系数标识的取值为0,则该合并区域获取15个滤波系数(即第一组滤波系数);若区域系数标识的取值为1,则该合并区域获取9个滤波系数(即第二组滤波系数);若区域系数标识的取值为2,则该合并区域分别获取9个滤波系数和15个滤波系数。
示例性的,若区域系数标识的取值为0,则获取该合并区域内所有LCU的LCU系数标识;若LCU系数标识的取值为0,则表示该LCU关闭ALF滤波,即不对该LCU启动ALF滤波;若LCU系数标识的取值为1,则表示该LCU打开ALF滤波,即对该LCU启动ALF滤波,且该LCU使用第一组滤波系数。
若区域系数标识的取值为1,则获取该合并区域内所有LCU的LCU系数标识,若LCU系数标识的取值为0,则表示该LCU关闭ALF滤波,即不对该LCU启动ALF滤波;若LCU系数标识的取值为1,则表示该LCU打开ALF滤波,即对该LCU启动ALF滤波,且该LCU使用第二组滤波系数。
若区域系数标识的取值为2,则获取该合并区域内所有LCU的LCU系数标识,若LCU系数标识的取值为0,则表示该LCU关闭ALF滤波,即不对该LCU启动ALF滤波;若LCU系数标识的取值为1,则表示该LCU打开ALF滤波,即对该LCU启动ALF滤波,且该LCU使用第一组滤波系数;若LCU系数标识的取值为2,则表示该LCU打开ALF滤波,即对该LCU启动ALF滤波,且该LCU使用第二组滤波系数。
实施例十八、每个LCU自适应的选择一套滤波系数
编码端设备
以各LCU最多可选择3组滤波系数为例。即对于任一LCU,该LCU的候选滤波系数包括该LCU所属合并区域的滤波系数(可以称为当前合并区域的滤波系数)、该LCU所属合并区域的前一个合并区域的滤波系数(可以称为前一个合并区域的滤波系数),以及该LCU所属区域的后一个合并区域的滤波系数(可以称为后一个合并区域的滤波系数)。
对于任一LCU,可以分别计算在3组滤波系数下的性能(RDO决策),选择性能最优的一组滤波系数。
示例性的,若性能最优的组滤波系数是前一个合并区域的滤波器,则LCU的系数选择标识的取值为0(即以上述第一值为0为例);若性能最优的滤波系数是当前合并区域的滤波系数,则LCU的系数选择标识的取值为1(即以上述第二值为1为例);若性能最优的滤波系数是后一个合并区域的滤波系数,则LCU的系数选择标识的取值为2(即以上述第三值为2为例)。
举例来说,假设当前图像帧合并区域如图10所示,即合并区域的数量为16个;在进行决策时,若当前处理的LCU属于合并区域2,则该LCU的候选滤波系数可以包括合并区域1的滤波系数、合并区域2的滤波系数以及合并区域3的滤波系数,可以基于RDO决策确定性能最优的滤波系数,并基于决策结果对LCU进行标记。
需要说明的是,由于色度分量(U分量或V分量)只有一组滤波系数,其LCU可以不参与滤波系数的选择,或,两个色度分量的LCU可以选择另一个分量上的滤波系数,即U分量的LCU可以选择V分量的滤波系数,V分量的LCU可以选择U分量的滤波系数。
解码端设备
获取当前LCU所属合并区域的滤波系数(即当前区域的滤波系数),以及与其相邻的两个区域的滤波系数(即前一个合并区域的滤波系数和后一个合并区域的滤波系数),根据LCU的系数选择标识,选择当前LCU的滤波系数。
需要说明的是,由于两个色度分量上分别只有一组滤波系数,其LCU可以不参与滤波系数的选择,或,当两个色度分量都打开ALF滤波开关时,两个色度上的LCU可以选择另一个分量上的滤波系数,即U分量的LCU可以选择V分量的滤波系数,V分量的LCU可以选择U分量的滤波系数。
实施例十九、每个区域选择不同形状的滤波器
编码端设备
示例性的,滤波器形状可以选择如图4A或图9的滤波器形状,也可以选择如图11所示的4种滤波器形状中的两种或多种形状,也可以选择除图4A、图9以及图11所示滤波器形状以外的其他滤波器形状。
对于任一合并区域,可以训练N3组滤波系数,该N3组滤波系数的滤波器形状不同,在每个区域中计算该合并区域使用其中某一种滤波器形状后的性能,选择性能最优的一组滤波系数,将对应的滤波器形状通过码流发送给解码端设备,并将该合并区域性能最优的滤波系数发送给解码端设备。
解码端设备
对于任一LCU,当确定对该LCU启动ALF滤波时,基于该LCU所属合并区域,获取该合并区域的滤波器形状,并基于该滤波器形状获取该合并区域的滤波系数。
当确定了当前LCU的滤波系数时,可以基于当前LCU的滤波系数对当前LCU的像素逐个进行ALF滤波。
实施例二十、将对称滤波器修改为非对称滤波器
编码端设备
以图4A所示滤波器形状为例,可以确定Ci(i=0,1,…,13)位置的参考像素的像素值的权重系数Ai,此时其对称位置C28-i对应的参考像素值权重为2-Ai
示例性的,Ai∈[0.5,0.6,0.8,1.2,1.4,1.5,1]。
如图4A所示,一共存在14个对称位置,可以计算每个位置对应不同权重系数下,该区域的滤波系数,以及滤波性能。选择滤波性能最优的一组滤波系数,记录该滤波系数以及对应滤波器每个位置上对应的权重系数。
示例性的,对于任一权重系数,可以将用于标识该权重系数在权重系数集合中的位置的标号(或称为索引)传递给解码端设备。
解码端设备
获取每个区域的滤波系数,以及每个滤波系数对应的权重系数。
对于任一合并区域,获取其滤波系数以及每个滤波系数对应的权重系数,以导出对应位置的滤波系数。
对于LCU的当前滤波像素,该像素滤波后的像素值可以通过以下方式确定:
Figure BDA0003285636290000431
其中,Ci为LCU所属合并区域的滤波系数中的第(i+1)个滤波系数,Pi为滤波系数Ci对应的参考像素位置的像素值,P28-i对应的参考像素位置与Pi对应的参考像素位置关于当前滤波像素的像素位置中心对称,Ai为Pi对应的参考像素位置的像素值的权重系数,P14为当前滤波像素的像素值,C14为当前滤波像素的滤波系数,0<Ai<2。
实施例二十一、每个LCU自适应的选择一套滤波系数
在对像素进行滤波的过程中,对于任一待滤波像素,在3*3像素块内(以当前待滤波像素为中心点的3*3像素块,且不包括当前待滤波像素在内)取出像素值的最大值与最小值,即以当前待滤波像素为中心的3*3像素块中除中心位置之外的8个像素的像素值中的最大值与最小值。
若当前待滤波像素的像素值大于最大值,或小于最小值,则由最大值或最小值代替当前待滤波像素的像素值参与滤波,即若当前待滤波像素的像素值大于最大值,则将当前待滤波像素的像素值替换为该最大值参与滤波;若当前待滤波像素的像素值小于最小值,则将当前待滤波像素的像素值替换为该最小值参与滤波。
下面对自适应修正滤波解码流程进行详细说明
实施例二十二、自适应修正滤波解码流程
一、自适应修正滤波参数定义:
参数1、自适应修正滤波允许标志(alf_enable_flag):二值变量。值为‘1’表示可使用自适应修正滤波;值为‘0’表示不应使用自适应修正滤波。
示例性的,AlfEnableFlag的值等于alf_enable_flag的值。
需要说明的是,alf_enable_flag的值可以从序列头获取,即在整个序列开始压缩前,值为‘1’表示整个视频序列的ALF技术打开,值为‘0’整个视频序列的ALF技术关闭,序列头标志。
参数2、增强自适应修正滤波允许标志(ealf_enable_flag):二值变量。值为‘1’表示可使用增强自适应修正滤波;值为‘0’表示不应使用增强自适应修正滤波。
示例性的,EalfEnableFlag的值等于ealf_enable_flag的值,其语法描述如下:
if(AlfEnableFlag){
ealf_enable_flag u(1)
}
需要说明的是,当AlfEnableFlag的值为1时,从码流中读取增强自适应修正滤波允许标志,该标志为序列头标志。
参数3、图像级自适应修正滤波允许标志(picture_alf_enable_flag[compIdx]):二值变量。值为‘1’表示当前图像的第compIdx个分量可使用自适应修正滤波;值为‘0’则表示当前图像的第compIdx个分量不应使用自适应修正滤波。
示例性的,PictureAlfEnableFlag[compIdx]的值等于picture_alf_enable_flag[compIdx]的值,其语法描述如下:
if(AlfEnableFlag){
for(compIdx=0;compIdx<3;compIdx++){
picture_alf_enable_flag[compIdx] u(1)
}
需要说明的是,当AlfEnableFlag的值为1时,从码流中读取Y、U、V三个分量的图像级自适应修正滤波允许标志,该标志为图像头标志。
参数4、图像亮度分量样本自适应修正滤波器系数(alf_coeff_luma[i][j]):alf_coeff_luma[i][j]表示亮度分量第i个自适应修正滤波器的第j个系数。
示例性的,AlfCoeffLuma[i][j]的值等于alf_coeff_luma[i][j]的值。
示例性的,若EalfEnableFlag的值为0,则AlfCoeffLuma[i][j](j=0~7)的取值范围应为-64~63,AlfCoeffLuma[i][8]的取值范围应为-1088~1071。
若EalfEnableFlag的值为1,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-64~63,AlfCoeffLuma[i][14]的取值范围应为-1088~1071。
参数x:每组图像亮度分量样本自适应修正滤波器系数的精度。
若x=0,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-32~32,若x=1,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-64~63,若x=2,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-128~128。
参数5、图像色度分量自适应修正滤波器系数(alf_coeff_chroma[0][j],alf_coeff_chroma[1][j]):alf_coeff_chroma[0][j]表示Cb分量第j个自适应修正滤波器的系数,alf_coeff_chroma[1][j]表示Cr分量第j个自适应修正滤波器的系数。
示例性的,AlfCoeffChroma[0][j]的值等于alf_coeff_chroma[0][j]的值,AlfCoeffChroma[1][j]的值等于alf_coeff_chroma[1][j]的值。
示例性的,若EalfEnableFlag的值为0,AlfCoeffChroma[i][j](i=0~1,j=0~7)的取值范围应为-64~63,AlfCoeffChroma[i][8](i=0~1)的取值范围应为-1088~1071。
若EalfEnableFlag的值为1,AlfCoeffChroma[i][j](i=0~1,j=0~13)的取值范围应为-64~63,AlfCoeffChroma[i][14](i=0~1)的取值范围应为-1088~1071。
参数y:每组图像色度分量自适应修正滤波器系数的精度。
若y=0,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-32~32,若y=1,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-64~63,若y=2,则AlfCoeffLuma[i][j](j=0~13)的取值范围应为-128~128。
参数6、图像亮度分量相邻自适应修正滤波区域个数(alf_region_distance[i]):alf_region_distance[i]表示亮度分量第i个自适应修正滤波区域基本单元起始标号与第i-1个自适应修正滤波区域基本单元起始标号间的差值。
示例性的,alf_region_distance[i]的取值范围应为1~FilterNum-1。
示例性的,当位流中不存在alf_region_distance[i]时,若i等于0,则alf_region_distance[i]的值为0;若i不等于0且alf_filter_num_minus1的值为FilterNum-1,则alf_region_distance[i]的值为1。
示例性的,alf_region_distance[i](i=0~alf_filter_num_minus1)之和应小于或等于FilterNum-1。
参数7、最大编码单元自适应修正滤波允许标志(alf_lcu_enable_flag[compIdx][LcuIndex]):二值变量。值为‘1’表示第LcuIndex个最大编码单元compIdx分量的样本应使用自适应修正滤波;值为‘0’表示第LcuIndex个最大编码单元compIdx分量的样本不应使用自适应修正滤波。
示例性的,AlfLCUEnableFlag[compIdx][LcuIndex]的值等于alf_lcu_enable_flag[compIdx][LcuIndex]的值,其语法描述如下:
Figure BDA0003285636290000451
需要说明的是,若三个分量上的图像级自适应修正滤波允许标志中有一个标志值为1,则获取如下自适应修正滤波参数,即若EalfEnableFlag=1,则每个滤波器系数个为15,且亮度分量上划分为64个区域;否则每个滤波器系数个为9,且亮度分量上划分为16个区域。再分别获取三个分量上的滤波系数,若图像级自适应修正滤波允许标志打开,则若在色度上,则需要获取该分量上的滤波系数alf_coeff_chroma;若在亮度上,则需要获取区域合并方式标志alf_region_order_idx,以及滤波器个数减1alf_filter_num_minus1,以及区域合并结果alf_region_distance[i]),以及每个滤波器系数alf_coeff_luma。
上述自适应修正滤波参数的语法描述可以如下:
Figure BDA0003285636290000452
Figure BDA0003285636290000461
二、自适应修正滤波解码具体过程
若PictureAlfEnableFlag[compIdx]的值为0,则将偏移后样本分量的值直接作为对应重建样本分量的值;否则,对相应的偏移后样本分量进行自适应修正滤波。
示例性的,compIdx等于0表示亮度分量,等于1表示Cb分量,等于2表示Cr分量。
自适应修正滤波的单位是由最大编码单元导出的自适应修正滤波单元,按照光栅扫描顺序依次处理。首先根据自适应修正滤波系数解码过程得到各分量的自适应修正滤波系数,然后根据导出自适应修正滤波单元,根据确定当前自适应修正滤波单元亮度分量的自适应修正滤波系数索引,最后根据自适应修正滤波单元的亮度和色度分量进行自适应修正滤波,得到重建样本。
自适应修正滤波系数解码过程:
22.1.1、若EalfEnableFlag等于0,则从位流中解析得到亮度样本的第i组滤波系数AlfCoeffLuma[i][j](i=0~alf_filter_num_minus1,j=0~7)。对系数AlfCoeffLuma[i][8](即图9所示滤波器中的C8)做如下处理:
Figure BDA0003285636290000462
式中AlfCoeffLuma[i][j](j=0~7)的位宽是7位,取值范围是-64~63;经上述处理后AlfCoeffLuma[i][8]的取值范围是0~127。
若EalfEnableFlag等于1,则从位流中解析得到亮度样本的第i组滤波系数AlfCoeffLuma[i][j](i=0~alf_filter_num_minus1,j=0~13)。对系数AlfCoeffLuma[i][14](即图4A所示滤波器中的C14)做以下处理:
Figure BDA0003285636290000471
式中AlfCoeffLuma[i][j](j=0~13)的位宽是7位,取值范围是-64~63;经上述处理后AlfCoeffLuma[i][14]的取值范围是0~127。
22.1.2、根据alf_region_distance[i](i>1)得到亮度分量自适应修正滤波系数索引数组(记作alfCoeffIdxTab[FilterNum]):
count=0
alfCoeffIdxTab[0]=0
for(i=1;i<alf_filter_num_minus1+1;i++){
for(j=0;j<alf_region_distance[i]-1;j++){
alfCoeffIdxTab[count+1]=alfCoeffIdxTab[count]
count=count+1
}
alfCoeffIdxTab[count+1]=alfCoeffIdxTab[count]+1
count=count+1
}
for(i=count;i<FilterNum;i++){
alfCoeffIdxTab[i]=alfCoeffIdxTab[count]
22.1.3、若EalfEnableFlag等于0,则从位流中解析得到色度样本的滤波系数AlfCoeffChroma[0][j]和AlfCoeffChroma[1][j](j=0~7)。对系数AlfCoeffChroma[0][8]和AlfCoeffChroma[1][8](即图9所示滤波器中的C8)分别做以下处理:
Figure BDA0003285636290000472
式中AlfCoeffChroma[i][j](j=0~7)的位宽是7位,取值范围是-64~63;经上述处理后AlfCoeffChroma[i][8]的取值范围是0~127。
若EalfEnableFlag等于1,从位流中解析得到色度样本的滤波系数AlfCoeffChroma[0][j]和AlfCoeffChroma[1][j](j=0~13)。对系数AlfCoeffChroma[0][14]和AlfCoeffChroma[1][14](即图4A所示滤波器中的C14)分别做以下处理:
Figure BDA0003285636290000473
式中AlfCoeffChroma[i][j](j=0~13)的位宽是7位,取值范围是-64~63;经上述处理后AlfCoeffChroma[i][14]的取值范围是0~127。
导出自适应修正滤波单元
根据当前最大编码单元按下列步骤导出自适应修正滤波单元(可以如图5所示):
22.2.1、将当前最大编码单元C所在样本区域超出图像边界的部分删除,得到样本区域D;
22.2.2、若样本区域D的下边界所在的样本不属于图像的下边界,则将亮度分量和色度分量样本区域D的下边界向上收缩四行,得到样本区域E1;否则,令样本区域E1等于样本区域D。样本区域D的最后一行样本为区域的下边界;
22.2.3、若样本区域E1的上边界所在的样本属于图像的上边界,或者属于片边界且cross_patch_loopfilter_enable_flag的值为‘0’,令样本区域E2等于样本区域E1;否则,将亮度分量和色度分量样本区域E1的上边界向上扩展四行,得到样本区域E2。样本区域E1的第一行样本为区域的上边界;
22.2.4、将样本区域E2作为当前自适应修正滤波单元。图像的第一行样本为图像的上边界,最后一行样本为图像的下边界。
确定亮度分量自适应修正滤波单元自适应修正滤波系数索引
若EalfEnableFlag的值等于0,则根据以下方法计算当前亮度分量自适应修正滤波单元的自适应修正滤波系数索引(记作filterIdx):
xInterval=((((horizontal_size+(1<<LcuSizeInBit)-1)>>LcuSizeInBit)+1)>>2)<<LcuSizeInBit
yInterval=((((vertical_size+(1<<LcuSizeInBit)-1)>>LcuSizeInBit)+1)>>2)<<LcuSizeInBit
if(xInterval==0&&yInterval==0){
index=15
}
else if(xInterval==0){
index=Min(3,y/yInterval)*4+3
}
else if(yInterval==0){
index=Min(3,x/xInterval)+12
}
else{
index=Min(3,y/yInterval)*4+Min(3,x/xInterval)
}
filterIdx=alfCoeffIdxTab[regionTable[index]]
其中,(x,y)是导出当前自适应修正滤波单元的最大编码单元左上角样本在图像中的坐标,regionTable定义如下:
regionTable[16]={0,1,4,5,15,2,3,6,14,11,10,7,13,12,9,8}
若EalfEnableFlag等于1,则根据以下方法计算当前亮度分量自适应修正滤波单元的自适应修正滤波系数索引(记作filterIdx)。
lcu_width=1<<LcuSizeInBit
lcu_height=1<<LcuSizeInBit
y_interval=((((vertical_size+lcu_height-1)/lcu_height)+4)/8*lcu_height)
x_interval=((((horizontal_size+lcu_width-1)/lcu_width)+4)/8*lcu_width)
if(yInterval==0){
y_st_offset=0
}
else{
y_cnt=Clip3(0,8,(vertical_size+y_interval-1)/y_interval)
y_st_offset=vertical_size-y_interval*(y_cnt-1)
y_st_offset=(y_st_offset+lcu_height/2)/lcu_height*lcu_height
}
if(xInterval==0){
x_st_offset=0
}
else{
x_cnt=Clip3(0,8,(horizontal_size+x_interval-1)/x_interval)
x_st_offset=horizontal_size-x_interval*(x_cnt-1)
x_st_offset=(x_st_offset+lcu_width/2)/lcu_width*lcu_width
}
y_index=(y_interval==0)?7:Clip3(0,7,y/y_interval)
y_index_offset=y_index<<3
y_index2=(y_interval==0||y<y_st_offset)?0:Clip3(-1,6,(y-y_st_offset)/y_interval)+1
y_index_offset2=y_index2<<3
x_index=(x_interval==0)?7:Clip3(0,7,x/x_interval)
x_index2=(x_interval==0||x<x_st_offset)?0:Clip_post(-1,6,(x-x_st_offset)/x_interval)+1
if(AlfRegionOrderIndex==0){
filterIdx=alfCoeffIdxTab[regionTable[0][y_index_offset+x_index]]
}
else if(AlfRegionOrderIndex==1)
filterIdx=alfCoeffIdxTab[regionTable[1][y_index_offset+x_index2]]
}
else if(AlfRegionOrderIndex==2)
filterIdx=alfCoeffIdxTab[regionTable[2][y_index_offset2+x_index2]]
}
else if(AlfRegionOrderIndex==3)
filterIdx=alfCoeffIdxTab[regionTable[3][y_index_offset2+x_index]]
}
其中,(x,y)是导出当前自适应修正滤波单元的最大编码单元左上角样本在图像中的坐标,regionTable定义如下:
regionTable[4][64]={
{63,60,59,58,5,4,3,0,62,61,56,57,6,7,2,1,49,50,55,54,9,8,13,14,48,51,52,53,10,11,12,15,47,46,33,32,31,30,17,16,44,45,34,35,28,29,18,19,43,40,39,36,27,24,23,20,42,41,38,37,26,25,22,21},
{42,43,44,47,48,49,62,63,41,40,45,46,51,50,61,60,38,39,34,33,52,55,56,59,37,36,35,32,53,54,57,58,26,27,28,31,10,9,6,5,25,24,29,30,11,8,7,4,22,23,18,17,12,13,2,3,21,20,19,16,15,14,1,0},
{21,22,25,26,37,38,41,42,20,23,24,27,36,39,40,43,19,18,29,28,35,34,45,44,16,17,30,31,32,33,46,47,15,12,11,10,53,52,51,48,14,13,8,9,54,55,50,49,1,2,7,6,57,56,61,62,0,3,4,5,58,59,60,63},
{0,1,14,15,16,19,20,21,3,2,13,12,17,18,23,22,4,7,8,11,30,29,24,25,5,6,9,10,31,28,27,26,58,57,54,53,32,35,36,37,59,56,55,52,33,34,39,38,60,61,50,51,46,45,40,41,63,62,49,48,47,44,43,42}}
自适应修正滤波操作
若当前自适应修正滤波单元的左边界外为图像边界,或位于片边界外且CplfEnableFlag的值为0,则左边界外不存在,否则左边界外为当前自适应修正滤波单元左移3个样本点到当前自适应修正滤波单元的区域。
若当前自适应修正滤波单元的右边界外为图像边界,或位于片边界外且CplfEnableFlag的值为0,则右边界外不存在,否则右边界外区域为当前自适应修正滤波单元左移3个样本点到当前自适应修正滤波单元的区域。
示例性的,边界区域包括左边界外区域与右边界外区域。
若AlfLCUEnableFlag[compIdx][LcuIndex]等于1,则对compIdx分量进行自适应修正滤波,否则不进行自适应修正滤波。
若EalfEnableFlag等于0,则当自适应修正滤波过程中用到的样本为自适应修正滤波单元内的样本时,直接使用该样本进行滤波;当自适应修正滤波过程中用到的样本不属于自适应修正滤波单元内的样本时,按照如下方式进行滤波:
22.3.1、若该样本在图像边界外,或在片边界外且CplfEnableFlag的值为0,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
22.3.2、否则,若该样本在自适应修正滤波单元上边界或下边界外,则使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波;
22.3.3、若22.3.1和22.3.2中的条件均不满足,则使用该样本进行滤波。示例性的,自适应修正滤波单元亮度分量的自适应修正滤波操作如下:
ptmp=AlfCoeffLuma[filterIdx][8]*p(x,y)
for(j=0;j<8;j++){
ptmp+=AlfCoeffLuma[filterIdx][j]*(p(x-Hor[j],y-Ver[j])+p(x+Hor[j],y+Ver[j])
}
ptmp=(ptmp+32)>>6
p’(x,y)=Clip3(0,(1<<BitDepth)–1,ptmp)
其中,p(x,y)为偏移后样本,p'(x,y)为重建样本,Hor[j]和Ver[j](j=0~7)。
示例性的,自适应修正滤波单元色度分量的自适应修正滤波操作如下:
ptmp=AlfCoeffChroma[i][8]*p(x,y)
for(j=0;j<8;j++){
ptmp+=AlfCoeffChroma[i][j]*(p(x-Hor[j],y-Ver[j])+p(x+Hor[j],y+Ver[j])
}
ptmp=(ptmp+32)>>6
p’(x,y)=Clip3(0,(1<<BitDepth)–1,ptmp)
其中,p(x,y)为偏移后样本,p'(x,y)为重建样本,Hor[j]和Ver[j](j=0~7),其可以表1所示。
表1、样本补偿滤波坐标偏移值
j的值 Hor[j]的值 Ver[j]的值
0 0 3
1 0 2
2 1 1
3 0 1
4 1 -1
5 3 0
6 2 0
7 1 0
若EalfEnableFlag等于1,则当自适应修正滤波过程中用到的样本为自适应修正滤波单元内的样本时,直接使用该样本进行滤波;当自适应修正滤波过程中用到的样本不属于自适应修正滤波单元内的样本时,按照如下方式进行滤波:
22.4.1、若该样本在图像边界外,或在片边界外且CplfEnableFlag的值为0,则:
22.4.1.1、以图4A所示滤波器为例,若该样本对应滤波器形状C1、C2、C6、C4、C5或C10位置时,使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
22.4.1.2、否则,使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波。
22.4.2、否则,若该样本在自适应修正滤波单元上边界或下边界外,则:
22.4.2.1、以图4A所示滤波器为例,若该样本对应滤波器形状C1、C2、C6、C4、C5或C10位置时,使用自适应修正滤波单元与边界区域内距离该样本最近的样本代替该样本进行滤波;
22.4.2.2、否则,使用自适应修正滤波单元内距离该样本最近的样本代替该样本进行滤波。
22.4.3、否则,即22.4.1和22.4.2中的条件均不满足,使用该样本进行滤波。
示例性的,自适应修正滤波单元亮度分量的自适应修正滤波操作如下:
ptmp=AlfCoeffLuma[filterIdx][14]*p(x,y)
for(j=0;j<14;j++){
ptmp+=AlfCoeffLuma[filterIdx][j]*(p(x-Hor[j],y-Ver[j])+p(x+Hor[j],y+Ver[j])
}
ptmp=(ptmp+32)>>6
p’(x,y)=Clip3(0,(1<<BitDepth)–1,ptmp)
其中,p(x,y)为偏移后样本,p'(x,y)为重建样本,Hor[j]和Ver[j](j=0~13),其可以如表2所示。
示例性的,自适应修正滤波单元色度分量的自适应修正滤波操作如下:
ptmp=AlfCoeffChroma[i][14]*p(x,y)
for(j=0;j<14;j++){
ptmp+=AlfCoeffChroma[i][j]*(p(x-Hor[j],y-Ver[j])+p(x+Hor[j],y+Ver[j])
}
ptmp=(ptmp+32)>>6
p’(x,y)=Clip3(0,(1<<BitDepth)–1,ptmp)
表2、样本补偿滤波坐标偏移值
j的值 Hor[j]的值 Ver[j]的值
0 0 3
1 2 2
2 1 2
3 0 2
4 1 -2
5 2 -2
6 2 1
7 1 1
8 0 1
9 1 -1
10 2 -1
11 3 0
12 2 0
13 1 0
实施例二十三
首先,可以将图像进行固定的区域划分,固定的区域划分结果可以如图2所示,得到每个区域的索引值。对于其中的每个区域,可以考虑对其进行如图15A所示的8种划分,或者,也可以保留图15A所示的部分划分方式,如图15B所示。
对于每个区域,编码端设备可以基于RDO决策,确定最后的划分方式,并将每个区域的划分方式通过码流传给解码端设备。
示例性的,以图15A中最后一种划分方式为例。最多可以将16个固定划分方式得到的区域划分为64个区域。
解码流程中,解码端设备可以先进行固定的区域划分,然后从码流中读取每个区域的具体划分方式,得到整帧的最后划分方式。
示例性的,对于图15A中每一种划分方式,划分后的区域编号可以如图15C所示。
示例性的,J的值为前一个区域的最大值索引值+1。
实施例二十四
以固定区域划分的最小单元是LCU为例,当图像分辨率较小时,存在某些区域只保留编号,区域内没有包含任何图像信息的情况。
对于这样的情况,在固定区域划分结果确定后,可以确定出具体哪一类不存在图像信息。
示例性的,可以根据图像宽和高中包含的LCU个数确定。若固定区域划分为固定的4*4区域,每个区域索引如图2所示,则当宽度或高度上LCU的个数小于4时,会存在某些列或行上的区域不包含图像信息。将所有这些不包含图像信息的区域,记为集合G。集合G的大小记为N7,N7为正整数。
对于所有的索引值中的任一索引值i,
24.1、若i等于集合G中任意一个元素,则i=0;
24.2、否则,即i不等于集合G中的任意一个元素,则若i大于集合G中n个元素,则i=i-k;k≤N7
需要说明的是,上述实施例仅仅是本申请实施例的实现方式的具体示例,而并不是对本申请保护范围的限定,基于上述实施例,可以通过实施例之间的组合,或对实施例进行变型,得到新的实施例,其均应属于本申请的保护范围。
此外,上述各实施例编码端和解码端的实现流程可以相互参照。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
本申请实施例提供了一种滤波装置其中,该滤波装置可以应用于解码端设备,该装置可以包括:
划分单元,用于对当前图像帧的亮度分量进行区域划分;
第一确定单元,用于基于从码流中解析得到的LCU的区域类别标识,确定所述LCU所属区域类别;
第二确定单元,用于基于所述LCU所属区域类别,以及从码流中解析得到的滤波系数,确定所述LCU的滤波系数;
滤波单元,用于基于所述LCU的滤波系数对所述LCU的像素逐个进行ALF滤波。
在一种可能的实施方式中,所述第一确定单元基于从码流中解析得到的LCU的区域类别标识,确定所述LCU所属区域类别,包括:
基于所述LCU所属区域,以及所述LCU的区域类别标识,确定所述LCU所属区域类别。
在一种可能的实施方式中,所述LCU的区域类别标识用于标识所述LCU在所述LCU所属区域内的类别,所述LCU在所述LCU所属区域内的类别通过对所述LCU所属区域内各LCU进行分类确定;
所述第一确定单元基于所述LCU所属区域,以及所述LCU的区域类别标识,确定所述LCU所属区域类别,包括:
基于各区域的类别数量、所述LCU所属区域,以及所述LCU的区域类别标识,确定所述LCU所属区域类别。
在一种可能的实施方式中,所述第一确定单元基于各区域的类别数量、所述LCU所属区域,以及所述LCU的区域类别标识,确定所述LCU所属区域类别,包括:
基于所述LCU所属区域之前的各区域的类别数量,确定所述LCU所属区域之前各区域的类别的总数;
基于所述LCU所属区域之前各区域的类别的总数,以及所述LCU的区域类别标识,确定所述LCU所属区域类别。
在一种可能的实施方式中,所述第二确定单元基于所述LCU所属区域类别,以及从码流中解析得到的滤波系数,确定所述LCU的滤波系数之前,还包括:
确定是否对所述LCU启动ALF滤波;
当确定对所述LCU启动ALF滤波时,确定执行所述基于所述LCU所属区域类别,以及从码流中解析得到的滤波系数,确定所述LCU的滤波系数的操作。
在一种可能的实施方式中,所述第二确定单元确定是否对所述LCU启动ALF滤波,包括:
从码流中解析所述LCU的LCU系数标识;其中,所述LCU系数标识用于标识在所述LCU所属合并区域使用的至少一组滤波系数中,所述LCU使用的滤波系数;
当所述LCU的LCU系数标识的取值为非第一值时,确定对所述LCU启动ALF滤波。
在一种可能的实施方式中,所述第二确定单元基于所述LCU所属区域类别,以及从码流中解析得到的滤波系数,确定所述LCU的滤波系数,包括:
基于所述LCU所属区域类别、从码流中解析得到的滤波系数,以及从码流中解析得到所述LCU所属合并区域的区域系数标识,确定所述LCU的滤波系数;其中,所述区域系数标识用于标识在预设多组滤波系数中,所述LCU所属合并区域使用的滤波系数。
在一种可能的实施方式中,所述第二确定单元基于所述LCU所属区域类别、从码流中解析得到的滤波系数,以及从码流中解析得到所述LCU所属合并区域的区域系数标识,确定所述LCU的滤波系数,包括:
当基于所述LCU所属合并区域的区域系数标识确定所述LCU所属合并区域使用多套滤波系数时,基于所述LCU所属区域类别、从码流中解析得到的滤波系数,以及所述LCU的LCU系数标识,确定所述LCU的滤波系数。
在一种可能的实施方式中,所述第二确定单元基于所述LCU所属区域类别,以及从码流中解析得到的滤波系数,确定所述LCU的滤波系数,包括:
基于所述LCU所属区域类别、从码流中解析得到的滤波系数,以及所述LCU的系数选择标识,确定所述LCU的滤波系数;其中,所述系数选择标识用于标识所述LCU在多组候选滤波系数中选择使用的滤波系数。
在一种可能的实施方式中,所述第二确定单元基于所述LCU所属区域类别、从码流中解析得到的滤波系数,以及所述LCU的系数选择标识,确定所述LCU的滤波系数,包括:
当所述LCU的系数选择标识的取值为第一值时,将所述LCU所属合并区域的前一个合并区域的滤波系数确定为所述LCU的滤波系数;所述LCU所属合并区域的前一个合并区域为所述LCU所属合并区域的索引的前一个相邻索引对应的合并区域;
当所述LCU的系数选择标识的取值为第二值时,将所述LCU所属合并区域的滤波系数确定为所述LCU的滤波系数;
当所述LCU的系数选择标识的取值为第三值时,将所述LCU所属合并区域的后一个合并区域的滤波系数确定为所述LCU的滤波系数,所述LCU所属合并区域的后一个合并区域为所述LCU所属合并区域的索引的后一个相邻索引对应的合并区域。
在一种可能的实施方式中,所述第二确定单元从码流中解析得到滤波系数,包括:
对于任一合并区域,从码流中解析该合并区域的滤波器形状;
基于所述滤波器形状,从码流中解析该合并区域的滤波系数。
在一种可能的实施方式中,所述第二确定单元基于所述LCU所属区域类别,以及从码流中解析得到的滤波系数,确定所述LCU的滤波系数,包括:
基于所述LCU所属区域类别,以及从码流中解析得到的滤波器形状以及滤波系数,确定所述LCU的滤波器形状和滤波系数;
所述基于所述LCU的滤波系数对所述LCU的像素逐个进行ALF滤波,包括:
基于所述LCU的滤波器形状和滤波系数对所述LCU的像素逐个进行ALF滤波。
在一种可能的实施方式中,所述滤波单元基于所述LCU的滤波系数对所述LCU的像素逐个进行ALF滤波,包括:
基于所述LCU的滤波系数,以及从码流中解析得到的所述LCU所属合并区域对应的各参考像素位置的权重系数,对所述LCU的像素逐个进行ALF滤波,其中,参考像素位置的权重系数为该参考像素位置的像素值参与ALF滤波计算时的加权权重。
在一种可能的实施方式中,对于所述LCU的当前滤波像素,其滤波后的像素值通过以下方式确定:
Figure BDA0003285636290000561
其中,Ci为所述LCU所属合并区域的滤波系数中的第(i+1)个滤波系数,Pi为滤波系数Ci对应的参考像素位置的像素值,P28-i对应的参考像素位置与Pi对应的参考像素位置关于当前滤波像素的像素位置中心对称,Ai为Pi对应的参考像素位置的像素值的权重系数,P14为当前滤波像素的像素值,C14为当前滤波像素的滤波系数,0<Ai<2。
在一种可能的实施方式中,所述滤波单元基于所述LCU的滤波系数对所述LCU的像素逐个进行ALF滤波,包括:
对于所述LCU的当前滤波像素,在对该像素进行ALF滤波的过程中,基于该像素的周围像素的像素值对该像素的像素值进行更新;
基于该像素更新后的像素值,对该像素进行ALF滤波。
在一种可能的实施方式中,所述滤波单元基于该像素的周围像素的像素值对该像素的像素值进行更新,包括:
确定目标像素块中除中心位置之外的各像素的像素值的最大值和最小值;其中,所述目标像素块为以该像素为中心位置的3*3像素块;
当该像素的像素值大于所述最大值时,将该像素的像素值更新为所述最大值;
当该像素的像素值小于所述最小值时,将该像素的像素值更新为所述最小值。
请参见图16,图16是本申请实施例提供的一种滤波装置的结构示意图,其中,该滤波装置可以应用于编码/解码端设备,该装置可以包括:
滤波单元1610,用于在对当前自适应修正滤波单元内的当前滤波像素进行ALF滤波的过程中,对于所述当前滤波像素的任一参考像素,当该参考像素未处于所述当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用所述当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波;所述边界区域包括所述当前自适应修正滤波单元的左边界外或右边界外,所述当前自适应修正滤波单元的左边界外包括当前自适应修正滤波单元左侧相邻的滤波单元中的部分或全部区域,所述当前自适应修正滤波单元的左边界外包括当前自适应修正滤波单元右侧相邻的滤波单元中的部分或全部区域;
否则,使用该参考像素进行滤波。
在一种可能的实施方式中,所述无法获取到该参考像素的像素值的情况包括以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于所述当前自适应修正滤波单元的上边界外或下边界外。
在一种可能的实施方式中,在无法获取到该参考像素的像素值的情况下,所述滤波单元1610使用所述当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波之前,还包括:
确定该参考像素是否与滤波器形状的指定位置的滤波系数对应;
若是,则确定执行所述使用所述当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波的操作。
在一种可能的实施方式中,所述滤波单元1610确定该参考像素是否对应滤波器形状的指定位置之后,还包括:
若该参考像素未与滤波器形状的指定位置的滤波系数对应,则使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波。
在一种可能的实施方式中,在无法获取到该参考像素的像素值的情况下,所述滤波单元1610使用所述当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波之前,还包括:
确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
若是,则确定执行所述使用所述当前自适应修正滤波单元以及边界区域内距离该参考像素位置最近的像素代替该参考像素进行滤波的操作;
或,
若所述当前自适应修正滤波单元允许使用增强自适应修正滤波,则使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波。
在一种可能的实施方式中,所述指定位置包括第一滤波器中的第一位置、第二位置、第三位置、以及所述第一位置、第二位置和第三位置的对称位置;
其中,所述第一滤波器为7*7十字形加5*5方形的中心对称滤波器,所述第一位置为所述第一滤波器的左上角位置,所述第二位置为所述第一位置的右侧相邻位置,所述第三位置为所述第一位置的下方相邻位置,所述对称位置包括轴对称位置和中心对称位置。
请参见图17,图17是本申请实施例提供的一种滤波装置的结构示意图,其中,该滤波装置可以应用于编码/解码端设备,该装置可以包括:
滤波单元1710,用于确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
所述滤波单元1710,还用于若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,则使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,则使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波。
在一种可能的实施方式中,所述滤波单元1710确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波,包括:
确定用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位取值,所述标志位取值为第一取值时确定当前自适应修正滤波单元允许使用增强自适应修正滤波,所述标志位取值为第二取值时确定当前自适应修正滤波单元不允许使用增强自适应修正滤波。
在一种可能的实施方式中,所述滤波单元1710,还用于在对当前自适应修正滤波单元内的当前滤波像素进行自适应修正滤波的过程中,对于所述当前滤波像素的任一参考像素,当该参考像素未处于所述当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波,以便基于获取的替换像素的样本值进行所述当前滤波像素的自适应修正滤波;
否则,在获取到该参考像素的像素值的情况下,该参考像素的像素值用于所述像素的自适应修正滤波。
在一种可能的实施方式中,所述无法获取到该参考像素的像素值的情况包括以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于所述当前自适应修正滤波单元的上边界外或下边界外。
在一种可能的实施方式中,所述滤波单元1710,还用于若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波。
在一种可能的实施方式中,所述第一滤波器为7*7十字形加5*5方形的中心对称滤波器;
所述第二滤波器为7*7十字形加3*3方形的中心对称滤波器。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于解码端设备,该装置可以包括:确定单元、获取单元和滤波单元;其中:
获取单元,用于当确定单元确定对当前图像帧的当前LCU启动ALF滤波时,获取所述当前LCU所属合并区域的区域系数标识;
所述获取单元,还用于基于所述当前LCU所属合并区域的区域系数标识,获取所述当前LCU的滤波系数;其中,所述区域系数标识用于标识在预设多组滤波系数中,所述LCU所属合并区域使用的滤波系数;
滤波单元,用于基于所述当前LCU的滤波系数对所述当前LCU的像素逐个进行ALF滤波。
在一种可能的实施方式中,所述确定单元确定对当前帧图像的当前LCU启动ALF滤波,包括:
从码流中解析所述当前LCU的LCU系数标识;其中,所述LCU系数标识用于标识在所述当前LCU所属合并区域使用的至少一组滤波系数中,所述当前LCU使用的滤波系数;
当所述LCU的LCU系数标识的取值为非第一值时,确定对所述当前LCU启动ALF滤波。
在一种可能的实施方式中,所述获取单元基于所述当前LCU所属合并区域的区域系数标识,获取所述当前LCU的滤波系数,包括:
当基于所述当前LCU所属合并区域的区域系数标识确定所述LCU所属合并区域使用多套滤波系数时,基于所述当前LCU的LCU系数标识,从所述LCU所属合并区域使用的多套滤波系数中确定所述当前LCU的滤波系数。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于解码端设备,该装置可以包括:确定单元、获取单元和滤波单元;其中:
获取单元,用于当确定单元确定对当前帧图像的当前LCU启动ALF滤波时,获取所述当前LCU的系数选择标识;
确定单元,用于基于所述当前LCU所属合并区域以及所述当前LCU的系数选择标识,确定所述当前LCU的滤波系数;其中,所述系数选择标识用于标识所述当前LCU在多组候选滤波系数中选择使用的滤波系数;
滤波单元,用于基于所述当前LCU的滤波系数对所述当前LCU的像素逐个进行ALF滤波。
在一种可能的实施方式中,所述确定单元基于所述LCU所属合并区域以及所述LCU的系数选择标识,确定所述LCU的滤波系数,包括:
当所述当前LCU的系数选择标识的取值为第一值时,将所述当前LCU所属合并区域的前一个合并区域的滤波系数确定为所述当前LCU的滤波系数;所述LCU所属合并区域的前一个合并区域为所述LCU所属合并区域的索引的前一个相邻索引对应的合并区域;
当所述当前LCU的系数选择标识的取值为第二值时,将所述当前LCU所属合并区域的滤波系数确定为所述当前LCU的滤波系数;
当所述当前LCU的系数选择标识的取值为第三值时,将所述当前LCU所属合并区域的后一个合并区域的滤波系数确定为所述当前LCU的滤波系数,所述LCU所属合并区域的后一个合并区域为所述LCU所属合并区域的索引的后一个相邻索引对应的合并区域。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于解码端设备,该装置可以包括:确定单元、获取单元和滤波单元;其中:
获取单元,用于当确定单元确定对当前帧图像的当前LCU启动ALF滤波时,基于所述当前LCU所属合并区域,获取所述当前LCU所属合并区域的滤波器形状;
所述获取单元,还用于基于所述滤波器形状,获取所述当前LCU所属合并区域的滤波系数;
滤波单元,用于基于所述滤波器形状和所述滤波系数对所述当前LCU的像素逐个进行ALF滤波。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于解码端设备,该装置可以包括:确定单元、获取单元和滤波单元;其中:
获取单元,用于当确定单元确定对当前帧图像的当前LCU启动ALF滤波时,基于所述当前LCU所属区域,获取所述当前LCU所属合并区域的滤波系数,以及各参考像素位置的权重系数;
滤波单元,用于基于所述滤波系数,以及各参考像素位置的权重系数,对所述当前LCU的像素逐个进行ALF滤波。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于编码端设备,该装置可以包括:划分单元、分类单元、合并单元以及编码单元;其中:
划分单元,用于对当前图像帧的亮度分量进行区域划分;
分类单元,用于对于任一区域,对该区域内的各LCU进行分类,并基于各LCU的类别将该区域划分为多个区域类别;
合并单元,用于对各区域类别进行区域合并,并确定各合并区域的滤波系数;
编码单元,用于将各合并区域的滤波系数以及各LCU的区域类别标识写入码流。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于编码端设备,该装置可以包括:确定单元和编码单元;其中:
确定单元,用于对于当前图像帧的任一合并区域,基于RDO决策确定该合并区域使用的滤波系数;
所述确定单元,还用于基于该合并区域使用的滤波系数确定该合并区域的区域系数标识;其中,所述区域系数标识用于标识在预设多组滤波系数中,该合并区域使用的滤波系数;
编码单元,用于将各合并区域使用的滤波系数以及各合并区域的区域系数标识写入码流。
在一种可能的实施方式中,所述确定单元,还用于对于所述当前图像帧的任一合并区域,当该合并区域使用的滤波系数包括多套时,基于该合并区域内各LCU使用的滤波系数,确定各LCU的LCU系数标识;
所述编码单元,还用于将各LCU的LCU系数标识写入码流。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于编码端设备,该装置可以包括:确定单元和编码单元;其中:
确定单元,用于对于当前图像帧的任一合并区域,基于RDO决策从多组滤波系数中确定该合并区域使用的滤波系数;
所述确定单元,还用于基于该合并区域使用的滤波系数,确定该合并区域内各LCU的系数选择标识;其中,所述系数选择标识用于标识各LCU在多组候选滤波系数中选择使用的滤波系数;
编码单元,用于将各合并区域使用的滤波系数以及各LCU的系数选择标识写入码流。
在一种可能的实施方式中,对于任一合并区域,所述多组滤波系数,包括:
训练得到的该合并区域的滤波系数、该合并区域的前一个合并区域的滤波系数以及该区域的后一个合并区域的滤波系数。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于编码端设备,该装置可以包括:确定单元和编码单元;其中:
确定单元,用于对于当前图像帧的任一合并区域,基于RDO决策确定该合并区域使用的滤波器形状和滤波系数;
编码单元,用于将各合并区域使用的滤波器形状和滤波系数写入码流。
本申请实施例提供的一种滤波装置,其中,该滤波装置可以应用于编码端设备,该装置可以包括:
确定单元,用于对于当前图像帧的任一合并区域,基于RDO决策确定该合并区域使用的滤波系数,以及对应的各参考像素位置的权重系数;
编码单元,用于将各合并区域使用的滤波系数以及对应的各参考像素位置的权重系数写入码流。
请参见图18,为本申请实施例提供的一种解码端设备的硬件结构示意图。该解码端设备可包括处理器1801、存储有机器可执行指令的机器可读存储介质1802。处理器1801与机器可读存储介质1802可经由系统总线1803通信。并且,通过读取并执行机器可读存储介质1802中与滤波控制逻辑对应的机器可执行指令,处理器1801可执行上文描述的解码端设备的滤波方法。
本文中提到的机器可读存储介质1802可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
在一些实施例中,还提供了一种机器可读存储介质,该机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的解码端设备的滤波方法。例如,所述机器可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
请参见图19,为本申请实施例提供的一种编码端设备的硬件结构示意图。该编码端设备可包括处理器1901、存储有机器可执行指令的机器可读存储介质1902。处理器1901与机器可读存储介质1902可经由系统总线1903通信。并且,通过读取并执行机器可读存储介质1902中与滤波控制逻辑对应的机器可执行指令,处理器1901可执行上文描述的编码端设备的滤波方法。
本文中提到的机器可读存储介质1902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
在一些实施例中,还提供了一种机器可读存储介质,该机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的编码端设备的滤波方法。例如,所述机器可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
在一些实施例中,还提供了一种摄像机设备,包括上述任一实施例中的滤波装置。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (17)

1.一种滤波方法,应用于编码/解码端设备,其特征在于,所述方法包括:
确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,则使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,则使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
所述第一滤波器为7*7十字形加5*5方形的中心对称滤波器;
所述第二滤波器为7*7十字形加3*3方形的中心对称滤波器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对当前自适应修正滤波单元内的当前滤波像素进行自适应修正滤波的过程中,对于所述当前滤波像素的任一参考像素,当该参考像素处于所述当前自适应修正滤波单元内时,使用该参考像素的像素值用于所述像素的自适应修正滤波;
当该参考像素未处于所述当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波;
否则,在获取到该参考像素的像素值的情况下,该参考像素的像素值用于所述像素的自适应修正滤波。
3.根据权利要求2所述的方法,其特征在于,所述无法获取到该参考像素的像素值的情况包括以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于所述当前自适应修正滤波单元的上边界外或下边界外。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波。
5.根据权利要求1所述的方法,其特征在于,确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波,包括:
确定用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位取值,所述标志位取值为第一取值时确定当前自适应修正滤波单元允许使用增强自适应修正滤波,所述标志位取值为第二取值时确定当前自适应修正滤波单元不允许使用增强自适应修正滤波。
6.根据权利要求5所述的方法,其特征在于,所述用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位为EalfEnableFlag;
EalfEnableFlag的值从解码端导出,在解码端EalfEnableFlag的值由码流中获取或为一个常值。
7.根据权利要求6所述的方法,其特征在于,所述在解码端EalfEnableFlag的值由码流中获取,包括:
基于从码流中解析得到的增强自适应修正滤波允许标志的值确定EalfEnableFlag的值;
其中,所述增强自适应修正滤波允许标志为序列级参数。
8.一种滤波装置,应用于编码/解码端设备,其特征在于,所述装置包括:
滤波单元,用于确定当前自适应修正滤波单元是否允许使用增强自适应修正滤波;
所述滤波单元,还用于若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,则使用第一滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,则使用第二滤波器对所述当前自适应修正滤波单元进行自适应修正滤波;
所述第一滤波器为7*7十字形加5*5方形的中心对称滤波器;
所述第二滤波器为7*7十字形加3*3方形的中心对称滤波器。
9.根据权利要求8所述的装置,其特征在于,
所述滤波单元,还用于在对当前自适应修正滤波单元内的当前滤波像素进行自适应修正滤波的过程中,对于所述当前滤波像素的任一参考像素,当该参考像素处于所述当前自适应修正滤波单元内时,使用该参考像素的像素值用于所述像素的自适应修正滤波;
当该参考像素未处于所述当前自适应修正滤波单元内时:
在无法获取到该参考像素的像素值的情况下,使用所述当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行滤波,以便基于获取的替换像素的样本值进行所述当前滤波像素的自适应修正滤波;
否则,在获取到该参考像素的像素值的情况下,该参考像素的像素值用于所述像素的自适应修正滤波。
10.根据权利要求9所述的装置,其特征在于,所述无法获取到该参考像素的像素值的情况包括以下之一:
该参考像素处于当前图像帧的图像边界外、处于当前片的片边界外且不允许跨越片边界进行滤波、处于所述当前自适应修正滤波单元的上边界外或下边界外。
11.根据权利要求9或10所述的装置,其特征在于,
所述滤波单元,还用于若确定当前自适应修正滤波单元允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波;
若确定当前自适应修正滤波单元不允许使用增强自适应修正滤波,且用于进行当前自适应修正滤波单元的自适应修正滤波的像素位置的像素值无法获取,则使用当前自适应修正滤波单元内距离该参考像素位置最近的像素代替该参考像素进行自适应修正滤波。
12.根据权利要求8所述的装置,其特征在于,所述滤波单元确定所述当前自适应修正滤波单元是否允许使用增强自适应修正滤波,包括:
确定用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位取值,所述标志位取值为第一取值时确定当前自适应修正滤波单元允许使用增强自适应修正滤波,所述标志位取值为第二取值时确定当前自适应修正滤波单元不允许使用增强自适应修正滤波。
13.根据权利要求12所述的装置,其特征在于,所述用于指示当前自适应修正滤波单元是否允许使用增强自适应修正滤波的标志位为EalfEnableFlag;
EalfEnableFlag的值从解码端导出,在解码端EalfEnableFlag的值由码流中获取或为一个常值。
14.根据权利要求13所述的装置,其特征在于,所述在解码端EalfEnableFlag的值由码流中获取,包括:
基于从码流中解析得到的增强自适应修正滤波允许标志的值确定EalfEnableFlag的值;
其中,所述增强自适应修正滤波允许标志为序列级参数。
15.一种解码端设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1-7任一项所述的方法。
16.一种编码端设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1-7任一项所述的方法。
17.一种机器可读存储介质,其特征在于,所述存储介质内存储有能够被处理器执行的机器可执行指令,所述机器可执行指令被所述处理器执行时实现如权利要求1-7或8-14任一项所述的方法的步骤。
CN202111146284.1A 2021-03-05 2021-03-05 滤波方法、装置、设备及机器可读存储介质 Active CN113852831B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111146284.1A CN113852831B (zh) 2021-03-05 2021-03-05 滤波方法、装置、设备及机器可读存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110247471.2A CN114640858B (zh) 2021-03-05 2021-03-05 滤波方法、装置及设备
CN202111146284.1A CN113852831B (zh) 2021-03-05 2021-03-05 滤波方法、装置、设备及机器可读存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202110247471.2A Division CN114640858B (zh) 2021-03-05 2021-03-05 滤波方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113852831A true CN113852831A (zh) 2021-12-28
CN113852831B CN113852831B (zh) 2023-03-28

Family

ID=78980555

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110247471.2A Active CN114640858B (zh) 2021-03-05 2021-03-05 滤波方法、装置及设备
CN202111146284.1A Active CN113852831B (zh) 2021-03-05 2021-03-05 滤波方法、装置、设备及机器可读存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110247471.2A Active CN114640858B (zh) 2021-03-05 2021-03-05 滤波方法、装置及设备

Country Status (6)

Country Link
US (1) US20240146916A1 (zh)
JP (1) JP2024506002A (zh)
KR (1) KR20230119718A (zh)
CN (2) CN114640858B (zh)
TW (1) TWI806468B (zh)
WO (1) WO2022184109A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022184109A1 (zh) * 2021-03-05 2022-09-09 杭州海康威视数字技术股份有限公司 用于滤波的方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120189064A1 (en) * 2011-01-14 2012-07-26 Ebrisk Video Inc. Adaptive loop filtering using multiple filter shapes
CN104702963A (zh) * 2015-02-13 2015-06-10 北京大学 一种自适应环路滤波的边界处理方法及装置
US20180324420A1 (en) * 2015-11-10 2018-11-08 Vid Scale, Inc. Systems and methods for coding in super-block based video coding framework

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120177104A1 (en) * 2011-01-12 2012-07-12 Madhukar Budagavi Reduced Complexity Adaptive Loop Filter (ALF) for Video Coding
CN102857751B (zh) * 2011-07-01 2015-01-21 华为技术有限公司 一种视频编解码方法和装置
KR102276854B1 (ko) * 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN105306957B (zh) * 2015-10-23 2019-04-26 湘潭中星电子有限公司 自适应环路滤波方法和设备
WO2018170801A1 (zh) * 2017-03-22 2018-09-27 华为技术有限公司 图像滤波方法及装置
EP3910953A1 (en) * 2017-11-06 2021-11-17 Dolby Laboratories Licensing Corporation Adaptive loop filtering for high-dynamic range video
WO2019204672A1 (en) * 2018-04-19 2019-10-24 Huawei Technologies Co., Ltd. Interpolation filter for an intra prediction apparatus and method for video coding
WO2020185879A1 (en) * 2019-03-11 2020-09-17 Dolby Laboratories Licensing Corporation Video coding using reference picture resampling supporting region of interest
US11546587B2 (en) * 2019-04-11 2023-01-03 Mediatek Inc. Adaptive loop filter with adaptive parameter set
CN114095726B (zh) * 2020-08-24 2022-12-23 杭州海康威视数字技术股份有限公司 滤波方法、装置及设备
CN114640858B (zh) * 2021-03-05 2023-05-26 杭州海康威视数字技术股份有限公司 滤波方法、装置及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120189064A1 (en) * 2011-01-14 2012-07-26 Ebrisk Video Inc. Adaptive loop filtering using multiple filter shapes
CN104702963A (zh) * 2015-02-13 2015-06-10 北京大学 一种自适应环路滤波的边界处理方法及装置
US20180324420A1 (en) * 2015-11-10 2018-11-08 Vid Scale, Inc. Systems and methods for coding in super-block based video coding framework

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022184109A1 (zh) * 2021-03-05 2022-09-09 杭州海康威视数字技术股份有限公司 用于滤波的方法、装置及设备

Also Published As

Publication number Publication date
TWI806468B (zh) 2023-06-21
WO2022184109A1 (zh) 2022-09-09
CN113852831B (zh) 2023-03-28
KR20230119718A (ko) 2023-08-16
US20240146916A1 (en) 2024-05-02
TW202241128A (zh) 2022-10-16
CN114640858A (zh) 2022-06-17
CN114640858B (zh) 2023-05-26
JP2024506002A (ja) 2024-02-08

Similar Documents

Publication Publication Date Title
US20220070450A1 (en) Video encoding/decoding method and device, and recording medium having bitstream stored therein
US11575885B2 (en) Image encoding/decoding method and apparatus and recording medium for storing bitstream
CN103975588B (zh) 用于对图像的序列进行编码和解码的方法、装置和程序
CN110024385B (zh) 影像编码/解码方法、装置以及对比特流进行存储的记录介质
EP3632113A1 (en) A method and a device for picture encoding and decoding
US20230209051A1 (en) Filtering method and apparatus, and device
CN113852831B (zh) 滤波方法、装置、设备及机器可读存储介质
CN113099221A (zh) 跨分量样点自适应补偿方法、编码方法及相关装置
CN112929656B (zh) 滤波方法、装置及设备
CN114598867B (zh) 滤波方法、装置及设备
CN114640846A (zh) 滤波方法、装置及设备
CN118101933A (zh) 滤波方法、装置及设备
CN114189683B (zh) 增强滤波方法及装置
CN114339224B (zh) 图像增强方法、装置及机器可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40064077

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant