CN114222119B - 增强滤波方法、装置及机器可读存储介质 - Google Patents

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

Info

Publication number
CN114222119B
CN114222119B CN202111673093.0A CN202111673093A CN114222119B CN 114222119 B CN114222119 B CN 114222119B CN 202111673093 A CN202111673093 A CN 202111673093A CN 114222119 B CN114222119 B CN 114222119B
Authority
CN
China
Prior art keywords
filtering
enhancement
value
threshold
offset
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.)
Active
Application number
CN202111673093.0A
Other languages
English (en)
Other versions
CN114222119A (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 CN202111673093.0A priority Critical patent/CN114222119B/zh
Publication of CN114222119A publication Critical patent/CN114222119A/zh
Application granted granted Critical
Publication of CN114222119B publication Critical patent/CN114222119B/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/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/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/186Methods 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 colour or a chrominance component

Landscapes

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

Abstract

本申请提供一种增强滤波方法、装置及机器可读存储介质,该增强滤波方法包括:对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值;基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值。该方法可以提高编解码性能。

Description

增强滤波方法、装置及机器可读存储介质
技术领域
本申请涉及视频图像编解码技术,尤其涉及一种增强滤波方法、装置及机器可读存储介质。
背景技术
完整的视频编码一般包括预测、变换、量化、熵编码、滤波等操作。
目前,标准中常用滤波技术包括去块滤波(DeBlocking Filter,简称DBF)技术、样本自适应补偿(Sample Adaptive Offset,简称SAO)技术以及自适应环路滤波(AdaptiveLoop Filter,简称ALF)技术。
DBF技术用于去除分块编码产生的块边界效应;SAO技术通过基于样本的像素值和周围块的梯度值进行分类,对于每个类别的像素值加上不同的补偿值,使得重建图像更接近于原始图像;ALF技术通过维纳滤波器,对重建图像进行增强滤波,使得重建图像更接近于原始图像。
然而实践发现,上述DBF、SAO以及ALF滤波技术,均是基于当前像素值,或当前像素值和周围像素值的关系进行分类,再基于不同类别进行不同滤波操作,其可能会出现过滤波现象,即滤波后的像素值远大于或远小于滤波前的像素值,也远大于或远小于原始像素值。
发明内容
有鉴于此,本申请提供一种增强滤波方法、装置及机器可读存储介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种增强滤波方法,包括:
对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值;
基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理前的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值。
根据本申请实施例的第二方面,提供一种增强滤波方法,包括:
对于当前块的任一启动垂直滤波处理和水平滤波处理的像素点,确定该像素点的亮度分量经过垂直滤波处理后的垂直滤波像素值;
基于所述垂直滤波像素值与该像素点的亮度分量未经过所述垂直滤波处理的像素值,对该像素点的亮度分量的值进行垂直增强滤波处理,以得到垂直增强滤波处理后的该像素点的亮度分量的垂直滤波增强像素值;
对所述垂直滤波增强像素值进行水平滤波处理,以得到该像素点的亮度分量的水平滤波像素值;
基于所述水平滤波像素值和所述垂直滤波增强像素值,对该像素点的亮度分量的值进行水平增强滤波处理,以得到水平增强滤波处理后的该像素点的亮度分量的水平滤波增强像素值。
根据本申请实施例的第三方面,提供一种增强滤波装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;所述存储器存放有计算机程序,所述处理器被所述计算机程序促使:
对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值;
基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值。
根据本申请实施例的第四方面,提供一种增强滤波装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;所述存储器存放有计算机程序,所述处理器被所述计算机程序促使:
对于当前块的任一启动垂直滤波处理和水平滤波处理的像素点,确定该像素点的亮度分量经过垂直滤波处理后的垂直滤波像素值;
基于所述垂直滤波像素值与该像素点的亮度分量未经过所述垂直滤波处理的像素值,对该像素点的亮度分量的值进行垂直增强滤波处理,以得到垂直增强滤波处理后的该像素点的亮度分量的垂直滤波增强像素值;
对所述垂直滤波增强像素值进行水平滤波处理,以得到该像素点的亮度分量的水平滤波像素值;
基于所述水平滤波像素值和所述垂直滤波增强像素值,对该像素点的亮度分量的值进行水平增强滤波处理,以得到水平增强滤波处理后的该像素点的亮度分量的水平滤波增强像素值。
本申请实施例的增强滤波方法,对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值;基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值,提高了编解码性能。
附图说明
图1A~1B是本申请示例性实施例示出的块划分的示意图;
图2是本申请示例性实施例示出一种编解码方法的示意图;
图3是本申请示例性实施例示出一种DBF滤波像素示意图;
图4是本申请示例性实施例示出一种图像增强方法的流程示意图;
图5是本申请示例性实施例示出滤波器的示意图;
图6是本申请示例性实施例示出一种增强滤波方法的流程示意图;
图7是本申请示例性实施例示出一种增强滤波方法的流程示意图;
图8是本申请示例性实施例示出一种增强滤波方法的流程示意图;
图9是本申请示例性实施例示出一种增强滤波装置的硬件结构示意图;
图10是本申请示例性实施例示出一种增强滤波装置的功能结构示意图;
图11是本申请示例性实施例示出另一种增强滤波装置的功能结构示意图;
图12是本申请示例性实施例示出一种增强滤波装置的功能结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对现有视频编码标准中块划分技术、现有帧内子块划分方案以及本申请实施例涉及的部分技术术语进行简单说明。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对本申请实施例涉及的部分技术术语以及现有视频编解码的主要流程进行简单说明。
一、技术术语
1、率失真原则(Rate-Distortion Optimized,简称RDO):评价编码效率的指标包括:码率和峰值信噪比(Peak Signal to Noise Ratio,简称PSNR)。码率越小,则压缩率越大;PSNR越大,重建图像质量越好。在模式选择的时候,判别公式实质上也就是对二者的综合评价。
模式对应的代价:J(mode)=D+λ*R。其中,D表示失真(Distortion),通常使用SSE(差值均方和)指标来衡量,SSE是指重建块与源图像块的差值均方和;λ是拉格朗日乘子;R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
在模式选择时,若使用RDO原则去对编码模式做比较决策,通常可以保证编码性能最佳。
2、序列参数集(Sequence Parameter Set,简称SPS):该集合中,存在确定整个序列中是否允许某些工具(方法)开关的标记位。若该标记位为1,则该视频序列中,允许启用对应工具(方法);否则,该工具(方法)无法在该序列的编码过程中启用。
3、图像参数集(Picture Parameter Set,简称PPS):该集合中,存在确定某一帧图像中是否允许某些工具(方法)开关的标记位。若该标记位为1,则该图片中,允许启用对应工具(方法);否则,该工具(方法)无法在该图片的编码过程中启用。
4、图像头(picture header):针对某一帧图像的共同信息。
5、片头(Slice header):一帧图像,可以包含1个slice或多个slice。在片头信息中,存在确定某个slice中是否允许某些工具(方法)开关的标记位。若该标记位为1,则该slice中,允许启用对应工具(方法);否则,该工具(方法)无法在该slice的编码过程中启用。
6、SAO滤波:用于消除振铃效应。振铃效应是由于高频交流系数的量化失真,解码后会在边缘周围产生波纹的现象,变换块尺寸越大振铃效应越明显。SAO的基本原理就是对重构曲线中的波峰像素加上负值进行补偿,波谷像素加上正值进行补偿。SAO以CTU为基本单位,包括两大类补偿形式:边界补偿(Edge Offset,简称EO)和边带补偿(Band Offset,简称BO),此外还引入了参数融合技术。
7、ALF滤波:根据原始信号和失真信号计算得到均方意义下的最优滤波器,即维纳滤波器。ALF的滤波器可以包括但不限于7x7或5x5的菱形滤波器、7x7十字形加3x3方形的中心对称滤波器或7x7十字形加5x5方形的中心对称滤波器。
示例性的,如图5(a)所示,为一种7x 7的菱形滤波器的示意图;如图5(b)所示,为一种5x5的菱形滤波器的示意图;如图5(c)所示,为一种7x7十字形加3x 3方形的中心对称滤波器的示意图;如图5(d)所示,为一种7x7十字形加5x5方形的中心对称滤波器。
二、现有视频编码标准中块划分技术
在HEVC中,一个编码树单元(Coding Tree Unit,简称CTU)使用四叉树递归划分成CU。在叶子节点CU级确定是否使用帧内编码或者帧间编码。CU可以进一步划分成两个或者四个预测单元(Prediction Unit,简称PU),同一个PU内使用相同的预测信息。在预测完成后得到残差信息后,一个CU可进一步四叉划分成多个变换单元(Transform Units,简称TU)。例如,本申请中的当前图像块即为一个PU。
但是在最新提出的通用视频编码(Versatile Video Coding,简称VVC)中的块划分技术有了较大变化。一种混合了二叉树/三叉树/四叉树的划分结构取代了原先的划分模式,取消了原先CU,PU,TU的概念的区分,支持了CU的更灵活的划分方式。其中,CU可以是正方形也可以是矩形划分。CTU首先进行四叉树的划分,然后四叉树划分的叶子节点可以进一步进行二叉树和三叉树的划分。图1A所示,CU共有五种划分类型,分别为四叉树划分,水平二叉树划分,垂直二叉树划分,水平三叉树划分和垂直三叉树划分,如图1B所示,一种CTU内的CU划分可以是上述五种划分类型的任意组合由上可知不同的划分方式,使得各个PU的形状有所不同,如不同尺寸的矩形,正方形。
三、现有视频编解码的主要流程
请参考图2中的(a),以视频编码为例,视频编码一般包括预测、变换、量化、熵编码等过程,进一步地,编码过程还可以按照图2中的(b)的框架来实现。
其中,预测可以分为帧内预测和帧间预测,帧内预测是利用周围已编码块作为参考对当前未编码块进行预测,有效去除空域上的冗余。帧间预测是使用邻近已编码图像对当前图像进行预测,有效去除时域上的冗余。
变换是指将图像从空间域转换至变换域,利用变换系数对图像加以表示。绝大多数图像都含有较多平坦区域和缓慢变化的区域,适当的变换可以使图像由在空间域的分散分布转换为在变换域的相对集中分布,去除信号之间的频域相关性,配合量化过程,可以有效压缩码流。
熵编码是一种无损编码方式,可以把一系列元素符号转变为一个用来传输或存储的二进制码流,输入的符号可能包括量化后的变换系数、运动矢量信息、预测模式信息,变换量化相关语法等。熵编码可以有效地去除视频元素符号的冗余。
上述是以编码为例进行介绍,视频解码与视频编码的过程是相对的,即视频解码通常包括熵解码、预测、反量化、反变换、滤波等过程,各个过程的实现原理与熵编码相同或相似。
下面再对DBF滤波处理的实现进行简单说明。
DBF滤波处理包括两个过程:滤波决策和滤波操作。
滤波决策包括:1)获取边界强度(即BS值);2)滤波开关决策;3)滤波强弱选择。
对于色度分量,仅存在步骤1),且直接复用亮度分量的BS值。
对于色度分量,只有BS值为2时(即当前块两侧的块至少有一个采用intra(帧内)模式),才进行滤波操作。
滤波操作包括:1)对于亮度分量的强滤波和弱滤波;2)对于色度分类的滤波。
DBF滤波处理一般以8*8为单位进行水平边界滤波处理(可以称为水平DBF滤波处理)和垂直边界滤波处理(可以称为垂直DBF滤波处理),且最多对边界两侧的3个像素点进行滤波,且最多利用到边界两侧的4个像素点进行滤波,因此,不同块的水平/垂直DBF滤波互不影响,可并行进行。
如图3所示,对于当前块(以8*8为例),先进行当前块左侧3列和左边块右侧3列像素点的垂直DBF滤波,再进行当前块上侧3行和上边块下侧3行像素点的水平DBF滤波。
示例性的,对于需要分别进行垂直DBF滤波和水平DBF滤波的像素点,通常先进行垂直DBF滤波,后进行水平DBF滤波。
具体流程如下:
S1、以4*4为单位分别计算水平方向和垂直方向的edge condition(边缘条件)值:
1.1、对于CU边界,且为8*8边界,edge condition值为2(对亮度分量和色度分量均进行滤波处理);
1.2、对于PU边界(如2N*hN的内部1/4、1/2、3/4水平线),且为8*8边界,edgecondition值为1(对亮度分量进行滤波处理,不对色度分量进行滤波处理);
1.3、1.1和1.2之外的情况下,edge condition值为0。
S2、以4*4为单位(滤波处理以8*8单位,只是以4*4为单位存储edge condition值等信息),完成所有块的垂直滤波。当edge condition值不为0时,进行如下滤波处理过程:
2.1、进行亮度分量滤波处理过程(垂直滤波处理,处理垂直边界的4行,水平滤波处理,处理水平边界的4列):
2.1.1、先判断是否跳过滤波处理过程;
示例性的,边界两侧的块为非帧内模式块、无残差、且运动一致时才跳过滤波,否则均需要进行滤波处理。
2.1.2、若不跳过滤波处理过程,则进行如下处理:
2.1.2.1、计算FL(Flatness Left,左侧平滑度,可选值为0、2、3)和FR(FlatnessRight,右侧平滑度,可选值为0、2、3),用于判断两侧内部的平滑程度:
2.1.2.1.1、若ABS(L1-L0)<β,且ABS(L2-L0)<β,则FL为3;若ABS(L1-L0)<β,且ABS(L2-L0)≥β,则FL为2;若ABS(L1-L0)≥β,且ABS(L2-L0)<β,则FL为1;否则为0。
示例性的,ABS()为取绝对值运算。
2.1.2.1.2、FR的计算类似。
2.1.2.2、基于FS(FS=FL+FR)确定BS值(FS的可选值为0、2、3、4、5、6,BS的可选值为0、1、2、3、4):
2.1.2.2.1、FS≤2(最多有一边中等平滑),BS=0;
2.1.2.2.2、FS=3(有且只有一边高度平滑),BS=(ABS(L1-R1)<β)?1:0,即若ABS(L1-R1)<β成立,则BS=1;否则BS=0;
2.1.2.2.3、FS=4(两边均中等平滑),BS=(FL==2)?2:1,即若FL=2,则BS=2;否则,即FL≠2,则BS=1;
2.1.2.2.4、FS=5(一边中等平滑,另一边高度平滑),BS=(R1==R0&&L0==L1)?3:2,即若像素点R1的像素值等于像素点R0的像素值,且像素点L0的像素值等于像素点L1的像素值,则BS=3;否则,BS=2;
2.1.2.2.5、FS=6(两边均高度平滑),BS=(ABS(R0-R1)<=β/4&&ABS(L0-L1)<=β/4&&ABS(R0-L0)<α)?4:3,即若ABS(R0-R1)≤β/4、ABS(L0-L1)≤β/4,以及ABS(R0-L0)<α均成立,则BS=4,否则,BS=3。
2.1.2.3、基于BS值,确定滤波系数,以及滤波像素个数。
示例性的,假设边界左侧或上侧的4个像素点分别为L0-L3(如图3所示,图中以左侧为例);边界右侧或下侧的4个像素点为R0-R3(如图3所示,图中以右侧为例)。则对于亮度分量(下面下划线位置的系数为当前像素点的滤波系数):
2.1.2.3.1BS=4,对边界两侧各3个像素进行滤波:
2.1.2.3.1.1、L0/R0:滤波系数[3,8,10,8,3]/32,即为了确定像素点L0滤波处理后的像素值,需要分别使用像素点L2、L1、L0、R0和R1的像素值进行加权求和,加权系数(即滤波系数)依次为3/32、8/32、10/32、8/32以及3/32。
其中,若wj为滤波系数,则j=-2(当前像素点左侧的第2个像素点,即L2)时,wj=3/32;j=-1(当前像素点左侧的第1个像素点,即L1)时,wj=8/32;j=0(当前像素点,即L0)时,wj=10/32;j=1(当前像素点右侧的第1个像素点,即R0)时,wj=8/32;j=2(当前像素点右侧的第2个像素点,R1)时,wj=8/32。
为了确定像素点R0滤波后的像素值,需要分别使用像素点R2、R1、R0、L0和L1的像素值进行加权求和,加权系数依次为3/32、8/32、10/32、8/32以及3/32。其中,若wj为滤波系数,则j=-2(当前像素点右侧的第2个像素点,即R2)时,wj=3/32;j=-1(当前像素点右侧的第1个像素点,即R1)时,wj=8/32;j=0(当前像素点,即R0)时,wj=10/32;j=1(当前像素点左侧的第1个像素点,即L0)时,wj=8/32;j=2(当前像素点左侧的第2个像素点,L1)时,wj=8/32。
即:L0'=clip(L2*3+L1*8+L0*10+R0*8+R1*3+16)>>5)
L0'为像素点L0滤波处理后的像素值,L0~L2为像素点L0~L2滤波前的像素值,R0~R1为像素点R0~R1的像素值,下同。
示例性的,“>>”为右移位运算,用于替代除法,即“>>5”相当于除以25(即32)。
此外,本申请实施例中,乘法(即“*”)在实际实现时可以通过左移位的方式来替代。例如,a乘以4可以通过左移2位替代,即通过a<<2替代;a乘以10,可以通过(a<<3)+(a<<1)替代。
示例性的,“<<”为左移位运算,用于替代乘法,即“a<<2”相当于乘以22(即4)。
示例性的,考虑到通过移位的方式实现除法运算时,对于运算结果通常直接取整,即当运算结果为N~N+1之间的非整数时,取结果为N,而考虑到当小数部分大于0.5时,取结果为N+1的准确性会更高,因此,为了提高所确定的像素值的准确性,进行计算时,可以为上述加权和的分子加上分母(即被除数)的1/2,以达到四舍五入的效果。
以上述L0'的计算为例,右移5位相当于除以25(即32),因此,可以为上述加权和的分子加上16。
R0'=clip((R2*3+R1*8+R0*10+L0*8+L1*3+16)>>5)
示例性的,clip(x)为修剪操作,当x超出预设数值范围的上限时,将x的值设置为该预设数值范围的上限;当x低于预设数值范围的下限时,将x的值设置为该预设数据范围的下限。
2.1.2.3.1.2、L1/R1:滤波系数[4,5,4,3]/16
L1'=clip((L2*4+L1*5+L0*4+R0*3+8)>>4)
R1'=clip((R2*4+R1*5+R0*4+L0*3+8)>>4)
2.1.2.3.1.3、L2/R2:滤波系数[2,2,2,1,1]/8
L2'=clip((L3*2+L2*2+L1*2+L0*1+R0*1+4)>>3)
R2'=clip((R3*2+R2*2+R1*2+R0*1+L0*1+4)>>3)
2.1.2.3.2、BS=3,对边界两侧各2个像素进行滤波:
2.1.2.3.2.1、L0/R0:滤波系数[1,4,6,4,1]/16
L0'=clip(L2*1+L1*4+L0*6+R0*4+R1*1+8)>>4
R0'=clip(R2*1+R1*4+R0*6+L0*4+L1*1+8)>>4
2.1.2.3.2..2、L1/R1:滤波系数[3,8,4,1]/16
L1'=clip((L2*3+L1*8+L0*4+R0*1+8)>>4)
R1'=clip((R2*3+R1*8+R0*4+L0*1+8)>>4)
2.1.2.3.3、BS=2,对边界两侧各1个像素进行滤波:
2.1.2.3.3.1、L0/R0:滤波系数[3,10,3]/16
L0'=clip(L1*3+L0*10+R0*3+8)>>4
R0'=clip(R1*3+R0*10+L0*3+8)>>4
2.1.2.3.4、BS=1,对边界两侧各1个像素进行滤波:
2.1.2.3.4.1、L0/R0:滤波系数[3,1]/4
L0'=clip(L0*3+R0*1+2)>>2
R0'=clip(R0*3+L0*1+2)>>2
2.1.2.3.5、BS=0不滤波。
2.2、edge condition值为2,则当前4*4块处于CU边界,当该CU为16*16块时,进行色度滤波处理。色度滤波处理过程如下:
2.2.1、判断是否需要进行滤波处理,过程与亮度分量一样;
2.2.2、若需要进行滤波处理,则分别计算FL、FR。再基于FL和FR得到FS。基于FS获得BS值。该过程也和亮度分量一样;
2.2.3、获得的色度分量的BS值减1,则BS可选值为3、2、1、0。基于BS值进行色度分量的滤波处理,具体流程如下:
2.2.3.1、BS=3,对边界两侧各2个像素进行滤波:
2.2.3.1.1、L0/R0:滤波系数[3,10,3]/16
L0'=clip(L1*3+L0*10+R0*3+8)>>4
R0'=clip(R1*3+R0*10+L0*3+8)>>4
2.2.3.1.2、L1/R1:滤波系数[3,8,3,2]/16
L1'=clip((L2*3+L1*8+L0*3+R0*2+8)>>4)
R1'=clip((R2*3+R1*8+R0*3+L0*2+8)>>4)
2.2.3.2、BS=2或1,对边界两侧各1个像素进行滤波:
2.2.3.2.1、L0/R0:滤波系数[3,10,3]/16
L0'=clip(L1*3+L0*10+R0*3+8)>>4
R0'=clip(R1*3+R0*10+L0*3+8)>>4
2.2.3.3、BS=0,不进行滤波处理。
示例性的,上述过程的α和β与边界两侧的块,即当前块与当前块的左侧快(对于垂直DBF滤波)或当前块与当前块的上方块(对于水平DBF滤波)的QP均值相关,可通过查表获得。
三、以4*4为单位,完成所有块的水平滤波处理,过程与S2类似。
相关技术中,不管是DBF滤波、SAO滤波还是ALF滤波,均是基于当前像素值,或当前像素值和周围像素的关系进行分类,再基于不同类别进行不同滤波操作。而本申请提出的图像增强方法是一种基于滤波残差的二次滤波方法(本文称为增强滤波,也可以称为滤波调整)。滤波残差,是指滤波处理前后像素值的差别。例如,若进行DBF滤波处理前的重建值为Y1,经过DBF滤波处理后的像素值为Y2,则可基于Y2-Y1进行分类。基于滤波残差分类的主要好处是,可以对于一些过滤波或伪滤波的像素值进行特殊增强,以实现这些类别的像素更接近原始值的效果。过滤波,是指Y2远大于(或远小于)Y1,以至于Y2远大于(或远小于)原始像素值。伪滤波,是指Y2-Y1为0,或接近于0,即这些像素值经过滤波后仍保持不变,未达到滤波效果。
请参见图4,为本申请实施例提供的一种图像增强方法的流程示意图,如图4所示,该图像增强方法可以包括以下步骤:
步骤S400、对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点经过第一滤波处理后的第一像素值。
本申请实施例中,第一滤波处理可以包括但不限于垂直DBF滤波处理、水平DBF滤波处理、SAO滤波处理或ALF滤波处理等。
以第一滤波处理为垂直DBF滤波处理或水平DBF滤波处理为例,当前块各像素点是否满足第一滤波处理条件可以基于像素点在当前块中的位置,以及上文中DBF滤波处理的滤波决策策略确定。
例如,当按照上文中DBF滤波处理的滤波策略确定当前块需要进行DBF滤波处理时,当前块中需要进行垂直DBF滤波或/和水平DBF滤波处理的像素点可以如图3所示。
对于当前块的任一满足第一滤波处理条件的像素点,可以确定该像素点经过第一滤波处理后的像素值(本文中称为第一像素值)。
步骤S410、基于第一像素值与该像素点未经过第一滤波处理的第二像素值,对该像素点的像素值进行增强处理,以得到增强处理后的该像素点的第三像素值。
本申请实施例中,当确定了该像素点经过第一滤波处理后的第一像素值时,可以基于该第一像素值与该像素点未经过第一滤波处理的像素值(本文中称为第二像素值),对该像素点的像素值进行增强处理,即对该像素点的像素值进行增强滤波处理,得到增强处理后的该像素点的像素值(本文中称为第三像素值),以使增强处理后的该像素点的像素值相比第一滤波处理后的像素值(即第一像素值),更接近原始像素值,避免由于过滤波导致的滤波后的像素值远大于或远小于像素点的原像素值,提升图像质量。
示例性的,该第三像素值相对第一像素值更接近该像素点的原像素值,以避免由于过滤波而导致滤波后的像素值远大于或远小于像素点的原像素值。
示例性的,对像素点的像素值的增强处理可以通过增加一个补偿值(也可以称为偏移量,可为正数,也可为负数),或者,进行加权滤波处理实现。
以进行加权滤波处理为例,假设第一像素值为Y2,第二像素值为Y1,第三像素值为Y3,则Y3=w1*Y1+w2*Y2,或者Y3=w1*Y2+w2*Y2(i-1,j)+w2*Y2(i,j-1),Y2(i-1,j)和Y2(i,j-1)为该像素点的空域相邻像素点的像素值。
可见,在图4所示方法流程中,通过在对像素点进行滤波处理后,基于像素点进行滤波处理前和滤波处理后的像素值,对像素点的像素值进行增强处理,可以提高编解码性能,提升图像质量。
作为一种可能的实施例,步骤S410中,基于第一像素值与该像素点第一滤波处理前的第二像素值,对该像素点的像素值进行增强处理,可以包括:
基于第一像素值和第二像素值二者之间的差值,对该像素点的像素值进行增强处理。
示例性的,考虑到像素点滤波前后的像素值的残差通常可以表征滤波处理后像素点的像素值与像素点原始像素值之间的残差,因而,基于像素点滤波前后的像素值残差对像素点进行增强处理,可以有效地保证增强处理后的像素点的像素值更接近像素点的原始像素值,提升图像质量。
在确定了像素点经过第一滤波处理后的第一像素值时,可以计算第一像素值与该像素点未经过第一滤波处理的第二像素值之间的差值,并基于该差值对该像素点的像素值进行增强处理。
在一个示例中,上述基于第一像素值和第二像素值之间的差值,对该像素点的像素值进行增强处理,可以包括:
基于第一像素值和第二像素值之间的差值,与预设阈值的比较结果,对该像素点进行增强处理。
示例性的,可以基于像素点的第一像素值和第二像素值之间的差值,与预设阈值的比较结果,对该像素点进行分类,并基于该像素点的类别对该像素点的像素值进行增强处理。
示例性的,不同类别的像素点,进行增强处理的策略不同。
在一个示例中,基于第一像素值和第二像素值之间的差值,与预设阈值的比较结果,对该像素点的像素值进行增强处理,可以包括:
若第一像素值和第二像素值二者之间的差值大于第一增强滤波阈值,则基于第一增强滤波偏移量对该像素点的像素值进行增强处理;
若第一像素值和第二像素值二者之间的差值小于第二增强滤波阈值,则基于第二增强滤波偏移量对该像素点的像素值进行增强处理;
第二增强滤波阈值小于第一增强滤波阈值。
示例性的,预设阈值可以包括第一增强滤波阈值和第二增强滤波阈值,第二增强滤波阈值小于第一增强滤波阈值。
当确定了第一像素值和第二像素值之间的差值时,可以比较该差值与第一增强滤波阈值和第二增强滤波阈值。
当该差值大于第一增强滤波阈值时,可以基于第一增强滤波偏移量对该像素点的像素值进行增强处理。
当该差值小于第二增强滤波阈值时,可以基于第二增强滤波偏移量对该像素点的像素值进行增强处理。
举例来说,对该像素点的像素值进行增强处理时,可以基于第一像素值和第二像素值,确定第四像素值。
当第一像素值和第二像素值二者之间的差值大于第一增强滤波阈值时,可以基于第一增强滤波偏移量对该第四像素值进行增强处理,以得到第三像素值;
当第一像素值和第二像素值二者之间的差值小于第二增强滤波阈值时,可以基于第二增强滤波偏移量对该第四像素值进行增强处理,以得到第三像素值。
又举例来说,对该像素点的像素值进行增强处理时,可以通过对第一像素值进行增强处理实现。
当第一像素值和第二像素值二者之间的差值大于第一增强滤波阈值时,可以基于第一增强滤波偏移量对该第一像素值进行增强处理,以得到第三像素值;
当第一像素值和第二像素值二者之间的差值小于第二增强滤波阈值时,可以基于第二增强滤波偏移量对该第一像素值进行增强处理,以得到第三像素值。
需要说明的是,在本申请实施例中,当第一像素值和第二像素值二者之间的差值小于等于第一增强滤波阈值,且大于等于第二增强滤波阈值时,可以将第一像素值作为第三像素值,或者,对第一像素值进行滤波处理(本文中称为第二滤波处理),以得到第三像素值。
例如,可以将第一像素值与第三增强滤波偏移量二者之和确定为第三像素值。
又例如,第二滤波处理可以为ALF滤波处理,即对第一像素值进行ALF滤波处理,得到第三像素值。
考虑到像素点的像素值会处于指定的取值范围,该取值范围通常由图像比特深度确定,如[0,2D-1],D为图像比特深度。
例如,对于8比特图像,该取值范围为[0,255];对于10比特图像,该取值范围为[0,1023]。
为了避免增强处理后的像素点的第三像素值超出像素值的取值范围,在得到第三像素值时,可以通过Clip(修剪)操作,将第三像素值Clip到预设取值范围。
当第三像素值大于预设取值范围的上限时,将第三像素值设置为预设取值范围的上限;
当第三像素值小于预设阈值范围的下限时,将第三像素值设置为预设取值范围的下限。
举例来说,以8比特图像为例,当第三像素值小于0时,将第三像素值设置为0;当第三像素值大于255时,将第三像素值设置为255。
考虑到编码端设备对当前块的像素点进行了上述增强处理时,编码端设备和解码端设备需要在增强滤波阈值和增强滤波偏移量的取值上保持一致。
示例性的,编码端设备和解码端设备可以通过构建相同的增强滤波阈值候选列表(简称阈值候选列表)和相同的增强滤波偏移量候选列表,编码端设备在码流中携带增强滤波阈值索引(简称阈值索引)和增强滤波偏移量索引(简称偏移量索引),该阈值索引用于表征增强滤波阈值,如第一增强滤波阈值或第二增强滤波阈值在阈值候选列表中的位置,偏移量索引用于表征增强滤波偏移量,如第一增强滤波偏移量或第二增强滤波偏移量在偏移量候选列表中的位置。
解码端设备接收到码流时,可以从码流中对阈值索引和偏移量索引进行解码,并基于阈值索引从阈值候选列表中查询第一增强滤波阈值或第二增强滤波阈值,以及,基于偏移量索引从偏移量候选列表中查询第一增强滤波偏移量或第二增强滤波偏移量。
在一个示例中,为了减少需要编码的阈值索引消耗的比特数,第一增强滤波阈值和第二增强滤波阈值可以互为相反数。
示例性的,由于第二增强滤波阈值小于第一增强滤波阈值,因此,第一增强滤波阈值为负数,第二增强滤波阈值为负数。
例如,第一增强滤波阈值为2,第二增强滤波阈值为-2。
同理,第一增强滤波系数和第二增强滤波系数也可以互为相反数。
需要说明的是,在本申请实施例中,在构建增强滤波阈值候选列表和增强滤波偏移量候选列表时,可以以参数集的形式构建。
即候选列表中每一个候选值为一个参数集,该参数集包括一个候选的第一增强滤波阈值、一个候选的第二增强滤波阈值(当第一增强滤波阈值和第二增强滤波阈值互为相反数时,可以仅包括其中一个)、一个候选的第一增强滤波偏移量以及一个候选的第二增强滤波偏移量(当第一增强滤波偏移量和第二增强滤波偏移量互为相反数时,可以仅包括其中一个)。
当对索引进行编解码时,可以以参数集索引的形式进行编解码,即通过参数集索引表征参数集在参数集候选列表中的位置,其具体实现可以在下文的具体实施例中进行说明。
此外,在本申请实施例中,当前块的增强滤波参数,如增强滤波阈值和增强滤波偏移量,还可以复用周围块,如上侧块或左侧块的相应参数。
编解码端可以在码流中对用于指示当前块是否复用周围块的增强滤波参数的标记位,当确定复用周围块的增强滤波参数时,可以不需要再额外对当前块进行增强滤波参数的编解码。
在另一个示例中,为了减少需要编码的阈值索引消耗的比特数,第一增强滤波阈值或/和第二增强滤波阈值为固定值。
示例性,可以将第一增强滤波阈值或/和第二增强滤波阈值设置为固定值,从而,可以不需要对第一增强滤波阈值对应的阈值索引或/和第二增强滤波阈值对应的阈值索引进行编码。
同理,第一增强滤波系数或/和第二增强滤波系数也可以为固定值。
作为另一种可能的实施例,步骤S410中,基于第一像素值与该像素点未经过第一滤波处理的第二像素值,对该像素点的像素值进行增强处理,可以包括:
以第一像素值和第二像素值为输入参数,利用机器学习或深度学习,确定第三像素值。
示例性的,还可以利用机器学习或深度学习方法实现像素值的增强处理。
当对像素点进行第一滤波处理确定了该像素点的第一像素值时,可以以第一像素值和未经过第一滤波处理的第二像素值为输入参数,利用机器学习或深度学习,对该像素点的像素值进行增强处理,得到增强处理后的第三像素值。
需要说明的是,上述实施例中描述的确定第三像素值的方式仅仅属于本申请实施例中确定第三像素值的实现方式的几种具体示例,而并不是对本申请保护范围的限定,即本申请实施例中,也可以按照其他方式,基于第一像素值和第二像素值,确定第三像素值,例如,以第一像素值和第二像素值二者之差作为输入,利用维纳滤波器,确定第三像素值,或者,基于第一像素值和第二像素值二者之差,对第二像素值进行分类,并基于第二像素值的类别,利用维纳滤波器对该像素点的像素值进行增强处理,以确定第三像素值。
作为一种可能的实施例,步骤S410中,基于第一像素值与该像素点未经过第一滤波处理的第二像素值,对该像素点的像素值进行增强处理,可以包括:
当当前块使能增强滤波时,基于第一像素值与该像素点未经过第一滤波处理的第二像素值,对该像素点的像素值进行增强处理。
示例性的,为了提高增强滤波的灵活性和可控性,可以选择使能或不使能增强滤波方案,即在对像素点进行滤波处理后,对像素点的像素值进行增强处理(使能增强滤波)或不对像素点的像素值进行增强处理(不使能增强滤波)。
对于当前块的任一满足第一滤波处理条件的像素点,在确定了该像素点经过第一滤波处理后的第一像素值时,可以基于当前块是否使能增强滤波,确定是否对该像素点的像素值进行增强处理。
当当前块使能增强滤波时,基于该第一像素值与该像素点未经过第一滤波处理的第二像素值,对该像素点进行增强处理。
在一个示例中,利用指定语法标识当前块是否使能当前块是否使能增强滤波。
示例性的,该指定语法可以包括但不限于以下之一或多个:
序列参数集级语法、图像参数集级语法以及Slice级语法;
或,
该指定语法可以但不限于包括以下之一或多个:
序列参数集级语法、图像参数集级语法、CTU级语法以及CU级语法。
示例性的,为了提高增强滤波的灵活性和可控性,可以在不同层级实现增强滤波的使能或不使能。
例如,可以从序列参数集级、图像参数集级或/和Slice级,实现增强滤波的使能或不使能,即当图像序列使能增强滤波时,该图像序列中的各图像可以选择性的使能或不使能增强滤波;当图像使能增强滤波时,该图像的各Slice可以选择性的使能或不使能增强滤波。
需要说明的是,当一帧图像包括的Slice的数量为1时,该图像使能增强滤波时,该Slice也使能增强滤波;反之亦然。
同理,还可以从序列参数集级、图像参数集级、CTU级或/和CU级,实现增强滤波的使能或不使能。
在一个示例中,当指定语法的候选级别包括至少两个级别时,基于预设标志位确定指定语法的级别,预设标志位用于指示所述指定语法的级别。
示例性的,当指定语法的候选级别包括至少两个级别时,还可以通过专门的标记位来指示上述指定语法的级别。
例如,当指定语法的级别包括图像参数集级和CTU级时,可以在图像参数集级增加一个标志位,用于指示上述指定语法的级别为图像参数集级或CTU级。
示例性的,上述预设标志位的语法级别与指定语法的候选级别中的非最低级别匹配。
例如,当指定语法的候选级别包括序列参数集级语法和图像参数集级语法时,该预设标志位的语法级别为序列参数集级;
当指定语法的候选级别包括图像参数集级语法和Slice级语法时,该预设标志位的语法级别为图像参数集级;
当指定语法的候选级别包括序列参数集级语法、图像参数集级语法以及Slice级语法时,该预设标志位包括序列参数集级的标志位和图像参数集级的标志位;
当指定语法的候选级别包括图像参数集级语法和CTU级语法时,该预设标志位的语法级别为图像参数集级;
当指定语法的候选级别包括CTU级语法和CU级语法时,该预设标志位的语法级别为CTU级;
当指定语法的候选级别包括图像参数集级语法、CTU级语法以及CU级语法时,该预设标志位包括CTU级的标志位和CU级的标志位,其具体实现可以在下文中结合具体实施例进行说明。
作为一种可能的实施例中,当第一滤波处理为对该像素点的连续多次滤波处理中的非首次滤波处理时,第二像素值为该像素点上一次滤波处理后的像素值经过增强处理后得到的像素值。
示例性的,当一个像素点需要经过连续多次滤波处理时,每一次对该像素点进行滤波处理后,均可以对该像素点的像素值进行增强处理,下一次滤波处理前的像素点的像素值为上一次滤波处理后经过增强处理后的像素值。
在一个示例中,当第一滤波处理为水平DBF滤波处理;
当该像素点满足垂直DBF滤波处理条件时,第二像素值为对该像素点的第五像素值进行增强处理后该像素点的像素值,第五像素值为该像素点经过垂直DBF滤波处理后的像素值。
示例性的,当第一滤波处理为水平DBF滤波处理,且该像素点满足垂直DBF滤波处理条件时,且该像素点经过垂直DBF滤波处理后的像素值为第五像素值,则第二像素值为该像素点经过垂直DBF滤波处理后,按照上述实施例中描述的方式进行增强处理后的该像素点的像素值。
作为一种可能的实施例,当第一滤波处理为垂直DBF滤波处理;
步骤S410中,对该像素点的像素值进行增强处理之后,还可以包括:
当该像素点满足水平DBF滤波条件时,对第三像素值进行水平DBF滤波处理,以得到该像素点的第六像素值;
基于第三像素值与第六像素值,对该像素点的像素值进行增强处理,以得到增强处理后的该像素点的第七像素值。
示例性的,当按照步骤S400~步骤S410中描述的方式对该像素点进行了垂直DBF滤波处理和增强处理时,还可以确定该像素点是否满足水平DBF滤波条件,例如,基于该像素点的位置确定该像素点是否满足水平DBF滤波条件。
当该像素点满足水平DBF滤波条件时,可以对第三像素值进行水平DBF滤波处理,得到该像素点经过水平DBF滤波处理后的像素值(本文中称为第六像素值),并基于该像素点未经过水平DBF滤波处理的像素值,即第三像素值,以及该像素点经过水平DBF滤波处理后的像素值,即第六像素值,对该像素点的像素值进行增强处理,以得到增强处理后的该像素点的像素值(本文中称为第七像素值)。
需要说明的是,基于第三像素值与第六像素值对像素点的像素值进行增强处理的具体实现流程可以参见上述实施例中描述的基于第一像素值与第二像素值对像素点的像素值进行增强处理的相关描述,本申请实施例在此不再赘述。
此外,本申请实施例中,上述连续多次滤波处理的实现流程是以像素点在进行各次滤波处理时均使能增强滤波为例进行说明的,若存在不使能增强滤波的情况,则在相应滤波处理后,可以不需要进行增强处理。
举例来说,以垂直DBF滤波处理和水平DBF滤波处理为例,当像素点满足垂直DBF滤波处理条件和水平DBF滤波处理条件,但是针对垂直DBF滤波处理未使能增强滤波,则对该像素点进行垂直DBF滤波处理之后,不需要对垂直DBF滤波处理后的像素值进行增强处理;当对该像素点进行水平DBF滤波处理时,该像素点未经过水平DBF滤波处理的像素值为该像素点经过垂直DBF滤波处理后的像素值。
请参见图6,为本申请实施例提供的一种增强滤波方法的流程示意图,如图6所示,该增强滤波方法可以包括以下步骤:
步骤S600、对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值。
本申请实施例中,第一滤波处理可以包括但不限于垂直DBF滤波处理、水平DBF滤波处理、SAO滤波处理或ALF滤波处理等。
以第一滤波处理为垂直DBF滤波处理或水平DBF滤波处理为例,当前块各像素点是否满足第一滤波处理条件可以基于像素点在当前块中的位置,以及上文中DBF滤波处理的滤波决策策略确定。
例如,当按照上文中DBF滤波处理的滤波策略确定当前块需要进行DBF滤波处理时,当前块中需要进行垂直DBF滤波或/和水平DBF滤波处理的像素点可以如图3所示。
对于当前块的任一满足第一滤波处理条件的像素点,可以确定该像素点的亮度分量经过第一滤波处理后的值(本文中称为第一值)。
步骤S610、基于第一像素值与该像素点的亮度分量未经过第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值。
本申请实施例中,当确定了该像素点的亮度分量经过第一滤波处理后的第一值时,可以基于该第一值与该像素点的亮度分量未经过第一滤波处理的值(本文中称为第二值),对该像素点的亮度分量的值进行增强处理,即对该像素点的亮度分量的值进行增强滤波处理,得到增强滤波处理后的该像素点的亮度分量的值(本文中称为第三值),以使增强滤波处理后的该像素点的亮度分量的值相比第一滤波处理后的亮度分量的值(即第一值),更接近原始值,避免由于过滤波导致的滤波后的亮度分量的值远大于或远小于像素点的亮度分量的原始值,提升图像质量。
示例性的,该第三值相对第一值更接近该像素点的亮度分量的原始值,以避免由于过滤波而导致滤波后的亮度分量的值远大于或远小于像素点的亮度分量的原始值。
示例性的,对像素点的亮度分量的值的增强滤波处理可以通过增加一个补偿值(也可以称为偏移量,可为正数,也可为负数),或者,进行加权滤波处理实现。
以进行加权滤波处理为例,假设第一值为Z2,第二值为Z1,第三值为Z3,则Z3=w1*Z1+w2*Z2,或者Z3=w1*Z2+w2*Z2(i-1,j)+w2*Z2(i,j-1),Z2(i-1,j)和Z2(i,j-1)为该像素点的空域相邻像素点的亮度分量的值。
可见,在图6所示方法流程中,通过在对像素点的亮度分量进行滤波处理后,基于像素点的亮度分量进行滤波处理前和滤波处理后的值,对像素点的亮度分量的值进行增强滤波处理,可以提高编解码性能,提升图像质量。
作为一种可能的实施例,步骤S610中,基于第一值与该像素点的亮度分量未经过第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理之前,还可以包括:
确定是否对当前块的亮度分量进行增强滤波处理;
当确定对当前块的亮度分量进行增强滤波处理时,确定执行基于第一值与该像素点的亮度分量未经过第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理的步骤。
示例性的,为了提高增强滤波的灵活性和可控性,可以选择在对像素点的亮度分量的值进行第一滤波处理后,对像素点的亮度分量的值进行增强滤波处理或不对像素点的亮度分量的值进行增强滤波处理(可以称为是否使能增强滤波处理)。
对于当前块的任一满足第一滤波处理条件的像素点,在确定了该像素点的亮度分量经过第一滤波处理后的第一值时,可以基于是否对当前块的亮度分量进行增强滤波处理的确定结果,确定是否进行上述增强滤波处理。
当确定对当前块的亮度分量进行增强滤波处理时,按照上述实施例中描述的方式基于该第一值与该像素点的亮度分量未经过第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理。
在一个示例中,确定是否对当前块的亮度分量进行增强滤波处理,可以包括:
基于序列头级增强滤波使能标志位的值,确定是否对当前块的亮度分量进行增强滤波处理;或,
基于帧级增强滤波使能标志位的值,确定是否对当前块的亮度分量进行增强滤波处理;或,
基于CTU级增强滤波使能标志位的值,确定是否对当前块的亮度分量进行增强滤波处理;或,
基于CU级增强滤波使能标志位的值,确定是否对当前块的亮度分量进行增强滤波处理。
示例性的,为了提高增强滤波的灵活性和可控性,可以在不同层级实现增强滤波的使能或不使能,即使用不同级别语法标识当前块的亮度分量是否使能增强滤波。
该不同层级可以包括但不限于序列头级(也可以称为序列参数集级)、帧级(也可以称为图像头级)、CTU级以及CU级中的一个或多个,即可以通过序列头级语法、图像头级语法、CTU级语法以及CU级语法中的一个或多个标识当前块的亮度分量是否使能增强滤波。
举例来说,当在序列头级控制增强滤波使能时,可以基于序列头级增强滤波使能标志位的值,确定对应的图像序列的亮度分量是否使能增强滤波。当确定使能增强滤波时,该图像序列中各图像的各块的亮度分量均使能增强滤波;否则,该图像序列中各图像的各块的亮度分量均不使能增强滤波。
又举例来说,当在图像头级控制增强滤波使能时,可以基于图像头级增强滤波使能标志位的值,确定对应图像的亮度分量是否使能增强滤波。当确定使能增强滤波时,该图像中各块的亮度分量均使能增强滤波;否则,该图像中各块的亮度分量均不使能增强滤波。
再举例来说,当分别在图像序列头级和图像头级控制增强滤波使能时,可以基于序列头级增强滤波使能标志位的值,确定对应的图像序列的亮度分量是否使能增强滤波。当确定不使能增强滤波时,该图像序列中各图像的各块的亮度分量均不使能增强滤波;当确定使能增强滤波时,可以分别获取该图像序列中各图像的图像头级增强滤波使能标志位,以确定对应图像的亮度分量是否使能增强滤波;若使能,则对应图像中各块的亮度分量均使能增强滤波;若不使能,则对应图像中各块的亮度分量均不使能增强滤波。
在一个示例中,当指定语法的候选级别包括至少两个级别时,基于预设标志位确定指定语法的级别,预设标志位用于指示指定语法的级别。
示例性的,当指定语法的候选级别包括至少两个级别时,还可以通过专门的标记位来指示上述指定语法的级别。
例如,当指定语法的级别包括图像头级和CTU级时,可以在图像头级增加一个标志位,用于指示上述指定语法的级别为图像头级或CTU级。
示例性的,上述预设标志位的语法级别与指定语法的候选级别中的非最低级别匹配。
例如,当指定语法的候选级别包括序列头级语法和图像头级语法时,该预设标志位的语法级别为序列头级;
当指定语法的候选级别包括图像头级语法和CTU级语法时,该预设标志位的语法级别为图像头级;
当指定语法的候选级别包括序列头级语法、图像头级语法以及CTU级语法时,该预设标志位包括序列头级的标志位和图像头级的标志位;
当指定语法的候选级别包括图像头级语法和CTU级语法时,该预设标志位的语法级别为图像头级;
当指定语法的候选级别包括CTU级语法和CU级语法时,该预设标志位的语法级别为CTU级。
在一个示例中,上述确定是否对当前块的亮度分量进行增强滤波处理之前,还可以包括:
确定是否启用第一滤波处理;
当确定启用第一滤波处理技术时,确定执行上述确定是否对当前块的亮度分量进行增强滤波处理的步骤。
示例新性的,考虑到上述针对当前块的亮度分量的增强滤波处理是基于当前块的任一像素的亮度分量经过第一滤波处理前后的值来实现的,因此,在确定是否对当前块的亮度分量进行增强滤波处理之前,还可以确定是否启用第一滤波处理,并当确定启用第一滤波处理时,按照上述实施例中描述的方式确定是否对当前块的亮度分量进行增强滤波处理。
需要说明的,当确定不启用第一滤波处理时,可以不需要执行上述增强滤波处理的步骤。
此外,对于块级别,编码端设备和解码端设备可以采用相同的流程确定是否需要启用第一滤波处理。
例如,以去块滤波为例,编码端设备和解码端设备均可以按照上文中描述的“DBF滤波处理的实现”中的相关说明确定是否启用去块滤波。
对于更高层级,如图像序列级或图像级,编码端设备可以基于RDO原则或其他配置,确定是否启用第一滤波处理,并在码流中编码用于指示是否启用第一滤波处理的标志位;解码端设备可以通过对该标志位进行解码,并基于该标志位的值确定是否启用第一滤波处理。
作为一种可能的实施例,步骤S610中,基于第一值与该像素点的亮度分量未经过第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,可以包括:
基于第一值、第二值、亮度增强滤波整阈值以及亮度增强滤波偏移量,对该像素点的亮度分量的值进行增强滤波处理。
示例性的,可以基于第一值、第二值以及亮度增强滤波阈值,对像素点进行分类,并基于该像素点的类别,使用对应的亮度增强滤波偏移量,对该像素点的亮度分量进行增强滤波处理。
示例性的,不同类别的像素点,进行增强滤波处理的策略不同。
在一个示例中,基于第一值、第二值、亮度增强滤波阈值以及亮度增强滤波偏移量,对该像素点的亮度分量的值进行增强滤波处理,可以包括:
当第一值与第二值的差值大于第一亮度增强滤波阈值时,基于第一亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理;
当第一值与第二值的差值小于第二亮度增强滤波阈值时,基于第二亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理;
第一亮度增强滤波阈值大于第二亮度增强滤波阈值,且第一亮度增强滤波阈值与第二亮度增强滤波阈值互为相反数。示例性的,考虑到像素点的亮度分量滤波前后的值的残差通常可以表征滤波处理后像素点的亮度分量的值与像素点的亮度分量的原始值之间的残差,因而,基于像素点的亮度分量滤波前后的值残差对像素点的亮度分量进行增强滤波处理,可以有效地保证增强滤波处理后的像素点的亮度分量的值更接近像素点的亮度分量的原始值,提升图像质量。
在确定了像素点的亮度分量经过第一滤波处理后的第一值时,可以计算第一值与该像素点的亮度分量未经过第一滤波处理的第二值之间的差值,基于像素点的第一值和第二值之间的差值,与亮度增强滤波阈值的比较结果,对该像素点进行分类。
示例性的,该亮度增强滤波阈值可以包括第一亮度增强滤波阈值和第二亮度增强滤波阈值,且第一亮度增强滤波阈值大于第二亮度增强滤波阈值,当确定了第一值和第二值之间的差值时,可以比较该差值与第一亮度增强滤波阈值和第二亮度增强滤波阈值。
当该差值大于第一亮度增强滤波阈值时,可以基于第一亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理。
当该差值小于第二亮度增强滤波阈值时,可以基于第二亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理。
举例来说,对该像素点的亮度分量的值进行增强滤波处理时,可以基于第一值和第二值,确定第七值。
当第一值和第二值二者之间的差值大于第一亮度增强滤波阈值时,可以基于第一亮度增强滤波偏移量对该第七值进行增强滤波处理,以得到第三值;
当第一值和第二值二者之间的差值小于第二亮度增强滤波阈值时,可以基于第二增亮度强滤波偏移量对该第七值进行增强滤波处理,以得到第三值。
又举例来说,对该像素点的亮度分量的值进行增强滤波处理时,可以通过对第一值进行增强滤波处理实现。
当第一值和第二值二者之间的差值大于第一亮度增强滤波阈值时,可以基于第一亮度增强滤波偏移量对该第一值进行增强滤波处理,以得到第三值;
当第一值和第二值二者之间的差值小于第二亮度增强滤波阈值时,可以基于第二亮度增强滤波偏移量对该第一值进行增强滤波处理,以得到第三值。
需要说明的是,在本申请实施例中,当第一值和第二值二者之间的差值小于等于第一亮度增强滤波阈值,且大于等于第二亮度增强滤波阈值时,可以将第一值作为第三值,或者,对第一值进行滤波处理(本文中称为第二滤波处理),以得到第三值。
例如,可以将第一值与第三亮度增强滤波偏移量二者之和确定为第三值。
又例如,第二滤波处理可以为ALF滤波处理,即对第一值进行ALF滤波处理,得到第三值。
考虑到像素点的亮度分量的值会处于指定的取值范围,该取值范围通常由图像比特深度确定,如[0,2D-1](包括0和2D-1),D为图像比特深度,一般为8、10、12等。
例如,对于8比特图像,该取值范围为[0,255];对于10比特图像,该取值范围为[0,1023]。
为了避免增强滤波处理后的像素点的亮度分量的第三值超出像素点的亮度分量的取值范围,在得到第三值时,可以通过Clip(修剪)操作,将第三值Clip到预设取值范围。
当第三值大于预设取值范围的上限时,将第三值设置为预设取值范围的上限;
当第三值小于预设阈值范围的下限时,将第三值设置为预设取值范围的下限。
举例来说,以8比特图像为例,当第三值小于0时,将第三值设置为0;当第三值大于255时,将第三值设置为255。
在一个示例中,不同BS值对应不同的第一亮度增强滤波偏移量;或/和,不同BS值对应不同的第二亮度增强滤波偏移量。
示例性的,为了提高增强滤波的灵活性,优化增强滤波效果,不同BS值对应的第一亮度增强滤波偏移量或/和第二亮度增强滤波偏移量可以不同。
举例来说,对于某一帧图像的每个BS值,均有不同的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量。
例如,当BS值为1,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[0]和dbr_offset1_minus1[0];
当BS值为2,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[1]和dbr_offset1_minus1[1];
当BS值为3,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[2]和dbr_offset1_minus1[2];
当BS值为4,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[3]和dbr_offset1_minus1[3]。
当对像素点的亮度分量的值进行增强滤波处理时,可以基于图像的BS值确定对应的亮度增强滤波偏移量。
在另一个示例中,不同位置的像素点对应的第一亮度增强滤波偏移量不完全相同;或/和,不同位置的像素点对应的第二亮度增强滤波偏移量不完全相同。
示例性的,为了提高增强滤波的灵活性,优化增强滤波效果,不同位置的像素点的第一亮度增强滤波偏移量或/和第二亮度增强滤波偏移量可以不同。
示例性的,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第一亮度增强滤波偏移量不同,与该边界的距离相同的像素点,第一亮度增强滤波偏移量相同;或/和,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第二亮度增强滤波偏移量不同,与该边界的距离相同的像素点,第二亮度增强滤波偏移量相同。
举例来说,对于某一帧图像的每个像素位置均有不同的偏移值,该像素位置可以基于像素点与当前块指定边界的距离确定。
例如,如图3所示,L0/R0的位置pos=0,L1/R1的pos=1,L2/R2的pos=2。pos相同,对应的增强滤波偏移量(包括第一亮度增强滤波偏移量和第二亮度增强滤波偏移量)相同;pos不同,对应的增强滤波偏移量(包括第一亮度增强滤波偏移量和第二亮度增强滤波偏移量)不同。
例如,当pos=0,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[0]和dbr_offset1_minus1[0];
当pos=1,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[1]和dbr_offset1_minus1[1];
当pos=2,对应的第一亮度增强滤波偏移量和第二亮度增强滤波偏移量可以分别为dbr_offset0_minus1[2]和dbr_offset1_minus1[2]。
需要说明的是,在基于BS值确定不同亮度增强滤波偏移量的示例和基于位置确定不同亮度增强滤波偏移量的示例中,dbr_offset i_minus1[j],i=0或1,j=0、1或2,可以相同,也可以不同,本申请实施例对此不做限定。
在一个示例中,上述增强滤波方法还可以包括:
对亮度阈值索引进行编码/解码;该亮度阈值索引用于确定第一亮度增强滤波阈值和第二亮度增强滤波阈值;
以及,对亮度偏移量索引进行编码/解码;该亮度偏移量索引用于确定第一亮度增强滤波偏移量和第二亮度增强滤波偏移量。
考虑到编码端设备对当前块的像素点的亮度分量进行了上述增强滤波处理时,编码端设备和解码端设备需要在亮度增强滤波阈值和亮度增强滤波偏移量的取值上保持一致。
编码端设备确定了亮度增强滤波阈值和亮度增强滤波偏移量时,可以分别将该亮度增强滤波阈值对应的索引(本文中称为亮度阈值索引)以及亮度增强滤波偏移量对应的索引(本文中称为亮度偏移量索引)通过码流通知给解码端设备。
解码端设备可以通过从码流中解析亮度阈值索引和亮度偏移量索引的方式,确定亮度增强滤波阈值和亮度增强滤波偏移量。
在一个示例中,亮度阈值索引用于表征第一亮度增强滤波阈值或第二亮度增强滤波阈值在阈值候选列表中的位置。
示例性的,编码端设备和解码端设备可以通过构建相同的亮度增强滤波阈值候选列表(简称亮度阈值候选列表),编码端设备在码流中携带亮度阈值索引,该亮度阈值索引用于表征亮度增强滤波阈值,如第一亮度增强滤波阈值或第二亮度增强滤波阈值(第一亮度增强滤波阈值与第二亮度增强滤波阈值互为相反数,因此,只需携带一个亮度阈值索引)在亮度阈值候选列表中的位置。
解码端设备接收到码流时,可以从码流中对亮度阈值索引进行解码,并基于亮度阈值索引从亮度阈值候选列表中查询第一亮度增强滤波阈值或第二亮度增强滤波阈值。
在另一个示例中,第一亮度增强滤波阈值等于亮度阈值索引加1。
示例性的,亮度增强滤波阈值可以通过对亮度阈值索引进行指定运算得到,从而可以不需要构建亮度阈值候选列表,且不需要基于亮度阈值索引进行亮度阈值候选列表查询,提高增强滤波处理效率,优化编解码性能。
例如,第一亮度增强滤波阈值可以等于亮度阈值索引加1,第二增亮度强滤波阈值为第一亮度增强滤波阈值的相反数。
需要说明的是,第一亮度增强滤波阈值和第二亮度增强滤波阈值互为相反数仅仅是本申请实施例中设定第一亮度增强滤波阈值和第二亮度增强滤波阈值的一种具体示例,而并不是对本申请保护范围的限定,即在本申请实施例中,第一亮度增强滤波阈值和第二亮度增强滤波阈值也可以不是互为相反数,此时,需要分别通过不同的亮度阈值索引指示第一亮度增强滤波阈值和第二亮度增强滤波阈值在亮度阈值候选列表中的位置,或者,分别预先协商第一亮度增强滤波阈值和第二亮度增强滤波阈值与亮度阈值索引之间的运算关系,如第一亮度增强滤波阈值等于亮度阈值索引加1,第二亮度增强滤波阈值为亮度阈值索引减1;或者,第一亮度增强滤波阈值等于第一亮度增强滤波阈值索引加1,第二亮度强滤波阈值等于第二亮度增强滤波阈值索引与1二者之和的相反数等。
同理,在一个示例中,亮度偏移量索引用于表征第一亮度增强滤波偏移量和第二亮度增强滤波偏移量在亮度偏移量候选列表中的位置。
示例性的,编码端设备和解码端设备可以通过构建相同的亮度增强滤波偏移量候选列表(简称亮度偏移量候选列表),编码端设备在码流中携带亮度偏移量索引,该亮度偏移量索引分别用于表征亮度增强滤波偏移,包括第一亮度增强滤波偏移量和第二亮度增强滤波偏移量在亮度偏移量候选列表中的位置。
解码端设备接收到码流时,可以从码流中对亮度偏移量索引进行解码,并基于亮度偏移量索引从偏移量候选列表中查询第一亮度增强滤波偏移量和第二亮度增强滤波偏移量。
示例新性的,为了减少需要编码的亮度偏移量索引消耗的比特数,第一亮度增强滤波偏移量和第二亮度增强滤波偏移量也可以互为相反数。
在另一个示例中,第一亮度增强滤波偏移量等于第一亮度增强滤波偏移量索引加1,第二亮度增强滤波偏移量等于第二亮度增强滤波偏移量索引与1二者之和的相反数。
示例性的,亮度增强滤波偏移量可以通过对亮度偏移量索引进行指定运算得到,从而可以不需要构建偏移量候选列表,且不需要基于亮度偏移量索引进行亮度偏移量候选列表查询,提高增强滤波处理效率,优化编解码性能。
例如,第一亮度增强滤波偏移量等于第一亮度增强滤波偏移量索引加1,第二亮度增强滤波偏移量等于第二亮度增强滤波偏移量索引与1二者之和的相反数。
需要说明的是,在本申请实施例中,在构建增强亮度滤波阈值候选列表和亮度增强滤波偏移量候选列表时,可以以参数集的形式构建。
即候选列表中每一个候选值为一个参数集,该参数集包括一个候选的第一亮度增强滤波阈值、一个候选的第二亮度增强滤波阈值(当第一亮度增强滤波阈值和第二亮度增强滤波阈值互为相反数时,可以仅包括其中一个)、一个候选的第一亮度增强滤波偏移量以及一个候选的第二亮度增强滤波偏移量(当第一亮度增强滤波偏移量和第二亮度增强滤波偏移量互为相反数时,可以仅包括其中一个)。
当对索引进行编解码时,可以以参数集索引的形式进行编解码,即通过参数集索引表征参数集在参数集候选列表中的位置。
此外,在本申请实施例中,当前块的亮度增强滤波参数,如亮度增强滤波阈值和亮度增强滤波偏移量,还可以复用周围块,如上侧块或左侧块的相应参数。
编解码端可以在码流中对用于指示当前块是否复用周围块的亮度增强滤波参数的标记位,当确定复用周围块的亮度增强滤波参数时,可以不需要再额外对当前块进行亮度增强滤波参数的编解码。
此外,为了减少需要编码亮度的阈值索引消耗的比特数,第一亮度增强滤波阈值或/和第二亮度增强滤波阈值为固定值。
示例性,可以将第一亮度增强滤波阈值或/和第二亮度增强滤波阈值设置为固定值,从而,可以不需要对第一亮度增强滤波阈值对应的亮度阈值索引或/和第二亮度增强滤波阈值对应的亮度阈值索引进行编码。
同理,第一亮度增强滤波偏移量或/和第二亮度增强滤波偏移量也可以为固定值。
在一个示例中,第一滤波处理为包括垂直去块滤波处理;
当确定对当前块的亮度分量进行垂直去块增强滤波处理时,亮度增强滤波阈值包括亮度垂直去块增强滤波阈值,亮度增强滤波偏移量包括亮度垂直去块增强滤波偏移量。
示例性的,上述第一滤波处理可以包括垂直去块滤波处理,当确定对当前块的亮度分量进行垂直去块增强滤波处理时,可以基于该像素点的亮度分量经过垂直去块滤波处理后的第一值、该像素点的亮度分量经过垂直去块滤波处理前的第二值、亮度垂直去块增强滤波阈值以及亮度垂直去块增强偏移量对该像素点的亮度分量的值进行增强滤波。
在另一个示例中,第一滤波处理为包括水平去块滤波处理;
当确定对当前块的亮度分量进行水平去块增强滤波处理时,亮度增强滤波阈值包括亮度水平去块增强滤波阈值,亮度增强滤波偏移量包括亮度水平去块增强滤波偏移量。
示例性的,上述第一滤波处理可以包括水平去块滤波处理,当确定对当前块的亮度分量进行水平去块增强滤波处理时,可以基于该像素点的亮度分量经过水平去块滤波处理后的第一值、该像素点的亮度分量经过水平去块滤波处理前的第二值、亮度水平去块增强滤波阈值以及亮度水平去块增强偏移量对该像素点的亮度分量的值进行增强滤波。
需要说明的是,在本申请实施例中,第一滤波处理并不限于垂直去块滤波处理或水平去块滤波处理,其还可以包括但不限于ALF滤波或SAO滤波等。
此外,本申请实施例中,对于像素点的色度分量,也可以按照与上述实施例中描述的对像素点的亮度分量进行增强滤波处理的方式相类似的实现方式,对像素点的色度分量进行增强滤波处理。
作为一种可能的实施例,本申请实施例提供的增强滤波方法还可以包括:
对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的色度分量经过第一滤波处理后的第四值;
基于第四值与该像素点的色度分量未经过第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的色度分量的第六值。
示例性的,对于当前块的任一满足第一滤波处理条件的像素点,还可以确定该像素点的色度分量经过第一滤波处理后的值(本文中称为第四值)
当确定了该像素点的色度分量经过第一滤波处理后的第四值时,可以基于该第四值与该像素点的色度分量未经过第一滤波处理的值(本文中称为第五值),对该像素点的色度分量的值进行增强处理,即对该像素点的亮度分量的值进行增强滤波处理,得到增强滤波处理后的该像素点的色度分量的值(本文中称为第六值),以使增强滤波处理后的该像素点的色度分量的值相比第一滤波处理后的色度分量的值(即第四值),更接近原始值,避免由于过滤波导致的滤波后的色度分量的值远大于或远小于像素点的色度分量的原始值,提升图像质量。
示例性的,该第六值相对第四值更接近该像素点的色度分量的原始值,以避免由于过滤波而导致滤波后的色度分量的值远大于或远小于像素点的色度分量的原始值。
示例性的,对像素点的色度分量的值的增强滤波处理可以通过增加一个补偿值(也可以称为偏移量,可为正数,也可为负数),或者,进行加权滤波处理实现。
可见,通过在对像素点的色度分量进行滤波处理后,基于像素点的色度分量进行滤波处理前和滤波处理后的值,对像素点的色度分量的值进行增强滤波处理,可以提高编解码性能,提升图像质量。
作为一种可能的实施例,基于第四值与该像素点的色度分量未经过第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理之前,还可以包括:
确定是否对当前块的色度分量进行增强滤波处理;
当确定对当前块的色度分量进行增强滤波处理时,确定执行基于第四值与该像素点的色度分量未经过第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理的步骤。
示例性的,为了提高增强滤波的灵活性和可控性,可以选择在对像素点的色度分量的值进行第一滤波处理后,对像素点的色度分量的值进行增强滤波处理或不对像素点的色度分量的值进行增强滤波处理(可以称为是否使能增强滤波处理)。
对于当前块的任一满足第一滤波处理条件的像素点,在确定了该像素点的色度分量经过第一滤波处理后的第四值时,可以基于是否对当前块的色度分量进行增强滤波处理的确定结果,确定是否进行上述增强滤波处理。
当确定对当前块的色度分量进行增强滤波处理时,按照上述实施例中描述的方式基于该第四值与该像素点的色度分量未经过第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理。
在一个示例中,确定是否对当前块的色度分量进行增强滤波处理,可以包括:
基于序列头级增强滤波使能标志位的值,确定是否对当前块的色度分量进行增强滤波处理;或,
基于帧级增强滤波使能标志位的值,确定是否对当前块的色度分量进行增强滤波处理;或,
基于CTU级增强滤波使能标志位的值,确定是否对当前块的色度分量进行增强滤波处理;或,
基于CU级增强滤波使能标志位的值,确定是否对当前块的色度分量进行增强滤波处理。
示例性的,为了提高增强滤波的灵活性和可控性,可以在不同层级实现增强滤波的使能或不使能,即使用不同级别语法标识当前块的色度分量是否使能增强滤波。
该不同层级可以包括但不限于序列头级(也可以称为序列参数集级)、帧级(也可以称为图像头级)、CTU级以及CU级中的一个或多个,即可以通过序列头级语法、图像头级语法、CTU级语法以及CU级语法中的一个或多个标识当前块的色度分量是否使能增强滤波。
在一个示例中,当指定语法的候选级别包括至少两个级别时,基于预设标志位确定指定语法的级别,预设标志位用于指示指定语法的级别。
示例性的,当指定语法的候选级别包括至少两个级别时,还可以通过专门的标记位来指示上述指定语法的级别。
例如,当指定语法的级别包括图像头级和CTU级时,可以在图像头级增加一个标志位,用于指示上述指定语法的级别为图像头级或CTU级。
示例性的,上述预设标志位的语法级别与指定语法的候选级别中的非最低级别匹配。
在一个示例中,上述确定是否对当前块的色度分量进行增强滤波处理之前,还可以包括:
确定是否启用第一滤波处理;
当确定启用第一滤波处理技术时,确定执行上述确定是否对当前块的色度分量进行增强滤波处理的步骤。
示例新性的,考虑到上述针对当前块的色度分量的增强滤波处理是基于当前块的任一像素的色度分量经过第一滤波处理前后的值来实现的,因此,在确定是否对当前块的色度分量进行增强滤波处理之前,还可以确定是否启用第一滤波处理,并当确定启用第一滤波处理时,按照上述实施例中描述的方式确定是否对当前块的色度分量进行增强滤波处理。
需要说明的,当确定不启用第一滤波处理时,可以不需要执行上述增强滤波处理的步骤。
作为一种可能的实施例,基于第四值与该像素点的亮度分量未经过第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理,可以包括:
基于第四值、第五值、色度增强滤波整阈值以及色度增强滤波偏移量,对该像素点的色度分量的值进行增强滤波处理。
示例性的,可以基于第四值、第五值以及色度增强滤波阈值,对像素点进行分类,并基于该像素点的类别,使用对应的色度增强滤波偏移量,对该像素点的色度度分量进行增强滤波处理。
示例性的,不同类别的像素点,进行增强滤波处理的策略不同。
在一个示例中,基于第四值、第五值、色度增强滤波阈值以及色度增强滤波偏移量,对该像素点的色度分量的值进行增强滤波处理,可以包括:
当第四值与第五值的差值大于第一色度增强滤波阈值时,基于第一色度增强滤波偏移量对该像素点的色度分量的值进行增强滤波处理;
当第四值与第五值的差值小于第二色度增强滤波阈值时,基于第二色度增强滤波偏移量对该像素点的色度分量的值进行增强滤波处理;
第一色度增强滤波阈值大于第二色度增强滤波阈值,且第一色度增强滤波阈值与第二色度增强滤波阈值互为相反数。
示例性的,考虑到像素点的色度分量滤波前后的值的残差通常可以表征滤波处理后像素点的色度分量的值与像素点的色度分量的原始值之间的残差,因而,基于像素点的色度分量滤波前后的值残差对像素点的色度分量进行增强滤波处理,可以有效地保证增强滤波处理后的像素点的色度分量的值更接近像素点的色度分量的原始值,提升图像质量。
在确定了像素点的色度分量经过第一滤波处理后的第四值时,可以计算第四值与该像素点的色度分量未经过第一滤波处理的第五值之间的差值,基于像素点的第四值和第五值之间的差值,与色度增强滤波阈值的比较结果,对该像素点进行分类。
示例性的,该色度增强滤波阈值可以包括第一色度增强滤波阈值和第二色度增强滤波阈值,且第一色度增强滤波阈值大于第二色度增强滤波阈值,当确定了第四值和第五值之间的差值时,可以比较该差值与第一色度增强滤波阈值和第二色度增强滤波阈值。
当该差值大于第一色度增强滤波阈值时,可以基于第一色度增强滤波偏移量对该像素点的色度分量的值进行增强滤波处理。
当该差值小于第二色度增强滤波阈值时,可以基于第二色度增强滤波偏移量对该像素点的色度分量的值进行增强滤波处理。
举例来说,对该像素点的色度分量的值进行增强滤波处理时,可以基于第四值和第五值,确定第八值。
当第四值和第五值二者之间的差值大于第一色度增强滤波阈值时,可以基于第一色度增强滤波偏移量对该第八值进行增强滤波处理,以得到第六值;
当第四值和第五值二者之间的差值小于第二色度增强滤波阈值时,可以基于第二色度增强滤波偏移量对该第八值进行增强滤波处理,以得到第六值。
又举例来说,对该像素点的色度分量的值进行增强滤波处理时,可以通过对第四值进行增强滤波处理实现。
当第四值和第五值二者之间的差值大于第一色度增强滤波阈值时,可以基于第一色度增强滤波偏移量对该第四值进行增强滤波处理,以得到第六值;
当第四值和第五值二者之间的差值小于第二色度增强滤波阈值时,可以基于第二色度增强滤波偏移量对该第四值进行增强滤波处理,以得到第六值。
需要说明的是,在本申请实施例中,当第四值和第五值二者之间的差值小于等于第一色度增强滤波阈值,且大于等于第二色度增强滤波阈值时,可以将第四值作为第六值,或者,对第一值进行滤波处理(本文中称为第三滤波处理),以得到第六值。
例如,可以将第四值与第三色度增强滤波偏移量二者之和确定为第六值。
又例如,第三滤波处理可以为ALF滤波处理,即对第四值进行ALF滤波处理,得到第六值。
考虑到像素点的色度分量的值会处于指定的取值范围,该取值范围通常由图像比特深度确定,如[0,2D-1](包括0和2D-1),D为图像比特深度,一般为8、10、12等。
例如,对于8比特图像,该取值范围为[0,255];对于10比特图像,该取值范围为[0,1023]。
为了避免增强滤波处理后的像素点的色度分量的第六值超出像素点的色度分量的取值范围,在得到第六值时,可以通过Clip操作,将第六值Clip到预设取值范围。
当第六值大于预设取值范围的上限时,将第六值设置为预设取值范围的上限;
当第六值小于预设阈值范围的下限时,将第六值设置为预设取值范围的下限。
举例来说,以8比特图像为例,当第六值小于0时,将第六值设置为0;当第六值大于255时,将第六值设置为255。
在一个示例中,不同BS值对应不同的第一色度增强滤波偏移量;或/和,不同BS值对应不同的第二色度增强滤波偏移量。
示例性的,为了提高增强滤波的灵活性,优化增强滤波效果,不同BS值对应的第一色度增强滤波偏移量或/和第二色度增强滤波偏移量可以不同。
在另一个示例中,不同位置的像素点对应的第一色度增强滤波偏移量不完全相同;或/和,不同位置的像素点对应的第二色度增强滤波偏移量不完全相同。
示例性的,为了提高增强滤波的灵活性,优化增强滤波效果,不同位置的像素点的第一色度增强滤波偏移量或/和第二色度增强滤波偏移量可以不同。
示例性的,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第一色度增强滤波偏移量不同,与该边界的距离相同的像素点,第一色度增强滤波偏移量相同;或/和,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第二色度增强滤波偏移量不同,与该边界的距离相同的像素点,第二色度增强滤波偏移量相同。
在一个示例中,上述增强滤波方法还可以包括:
对色度阈值索引进行编码/解码;该色度阈值索引用于确定第一色度增强滤波阈值和第二色度增强滤波阈值;
以及,对色度偏移量索引进行编码/解码;该色度偏移量索引用于确定第一色度增强滤波偏移量和第二色度增强滤波偏移量。
考虑到编码端设备对当前块的像素点的色度分量进行了上述增强滤波处理时,编码端设备和解码端设备需要在色度增强滤波阈值和色度增强滤波偏移量的取值上保持一致。
编码端设备确定了色度增强滤波阈值和色度增强滤波偏移量时,可以分别将该色度增强滤波阈值对应的索引(本文中称为色度阈值索引)以及色度增强滤波偏移量对应的索引(本文中称为色度偏移量索引)通过码流通知给解码端设备。
解码端设备可以通过从码流中解析色度阈值索引和色度偏移量索引的方式,确定色度增强滤波阈值和色度增强滤波偏移量。
在一个示例中,色度阈值索引用于表征第一色度增强滤波阈值或第二色度增强滤波阈值在阈值候选列表中的位置。
示例性的,编码端设备和解码端设备可以通过构建相同的色度增强滤波阈值候选列表(简称色度阈值候选列表),编码端设备在码流中携带色度阈值索引,该色度阈值索引用于表征色度增强滤波阈值,如第一色度增强滤波阈值或第二色度增强滤波阈值(第一色度增强滤波阈值与第二色度增强滤波阈值互为相反数,因此,只需携带一个色度阈值索引)在色度阈值候选列表中的位置。
解码端设备接收到码流时,可以从码流中对色度阈值索引进行解码,并基于色度阈值索引从色度阈值候选列表中查询第一色度增强滤波阈值或第二色度增强滤波阈值。
在另一个示例中,第一色度增强滤波阈值等于色度阈值索引加1。
示例性的,色度增强滤波阈值可以通过对色度阈值索引进行指定运算得到,从而可以不需要构建色度阈值候选列表,且不需要基于色度阈值索引进行色度阈值候选列表查询,提高增强滤波处理效率,优化编解码性能。
例如,第一色度增强滤波阈值可以等于色度阈值索引加1,第二色度增强滤波阈值为第一色度增强滤波阈值的相反数。
需要说明的是,第一色度增强滤波阈值和第二色度增强滤波阈值互为相反数仅仅是本申请实施例中设定第一色度增强滤波阈值和第二色度增强滤波阈值的一种具体示例,而并不是对本申请保护范围的限定,即在本申请实施例中,第一色度增强滤波阈值和第二色度增强滤波阈值也可以不是互为相反数,此时,需要分别通过不同的色度阈值索引指示第一色度增强滤波阈值和第二色度增强滤波阈值在色度阈值候选列表中的位置,或者,分别预先协商第一色度增强滤波阈值和第二色度增强滤波阈值与色度阈值索引之间的运算关系,如第一色度增强滤波阈值等于色度阈值索引加1,第二色度增强滤波阈值为色度阈值索引减1;或者,第一色度增强滤波阈值等于第一色度增强滤波阈值索引加1,第二色度增强滤波阈值等于第二色度增强滤波阈值索引与1二者之和的相反数等。
同理,在一个示例中,色度偏移量索引用于表征第一色度增强滤波偏移量和第二色度增强滤波偏移量在色度偏移量候选列表中的位置。
示例性的,编码端设备和解码端设备可以通过构建相同的色度增强滤波偏移量候选列表(简称色度偏移量候选列表),编码端设备在码流中携带色度偏移量索引,该色度偏移量索引分别用于表征色度增强滤波偏移,包括第一色度增强滤波偏移量和第二色度增强滤波偏移量在色度偏移量候选列表中的位置。
解码端设备接收到码流时,可以从码流中对色度偏移量索引进行解码,并基于色度偏移量索引从色度偏移量候选列表中查询第一色度增强滤波偏移量和第二色度增强滤波偏移量。
示例新性的,为了减少需要编码的色度偏移量索引消耗的比特数,第一色度增强滤波偏移量和第二色度增强滤波偏移量也可以互为相反数。
在另一个示例中,第一色度增强滤波偏移量等于第一色度增强滤波偏移量索引加1,第二色度增强滤波偏移量等于第二色度增强滤波偏移量索引与1二者之和的相反数。
示例性的,色度增强滤波偏移量可以通过对色度偏移量索引进行指定运算得到,从而可以不需要构建色度偏移量候选列表,且不需要基于色度偏移量索引进行色度偏移量候选列表查询,提高增强滤波处理效率,优化编解码性能。
例如,第一色度增强滤波偏移量等于第一色度增强滤波偏移量索引加1,第二色度增强滤波偏移量等于第二色度增强滤波偏移量索引与1二者之和的相反数。
需要说明的是,在本申请实施例中,在构建色度增强滤波阈值候选列表和色度增强滤波偏移量候选列表时,可以以参数集的形式构建。
即候选列表中每一个候选值为一个参数集,该参数集包括一个候选的第一色度增强滤波阈值、一个候选的第二色度增强滤波阈值(当第一色度增强滤波阈值和第二色度增强滤波阈值互为相反数时,可以仅包括其中一个)、一个候选的第一色度增强滤波偏移量以及一个候选的第二色度增强滤波偏移量(当第一色度增强滤波偏移量和第二色度增强滤波偏移量互为相反数时,可以仅包括其中一个)。
当对索引进行编解码时,可以以参数集索引的形式进行编解码,即通过参数集索引表征参数集在参数集候选列表中的位置。
此外,在本申请实施例中,当前块的色度增强滤波参数,如色度增强滤波阈值和色度增强滤波偏移量,还可以复用周围块,如上侧块或左侧块的相应参数。
编解码端可以在码流中对用于指示当前块是否复用周围块的色度增强滤波参数的标记位,当确定复用周围块的色度增强滤波参数时,可以不需要再额外对当前块进行色度增强滤波参数的编解码。
此外,为了减少需要编码的色度阈值索引消耗的比特数,第一色度增强滤波阈值或/和第二色度增强滤波阈值为固定值。
示例性,可以将第一色度增强滤波阈值或/和第二色度增强滤波阈值设置为固定值,从而,可以不需要对第一色度增强滤波阈值对应的色度阈值索引或/和第二色度增强滤波阈值对应的色度阈值索引进行编码。
同理,第一色度增强滤波偏移量或/和第二色度增强滤波偏移量也可以为固定值。
在一个示例中,第一滤波处理为包括垂直去块滤波处理;
当确定对当前块的色度分量进行垂直去块增强滤波处理时,色增强滤波阈值包括垂直去块色度增强滤波阈值,色度增强滤波偏移量包括垂直去块色度增强滤波偏移量。
示例性的,上述第一滤波处理可以包括垂直去块滤波处理,当确定对当前块的色度分量进行垂直去块增强滤波处理时,可以基于该像素点的色度分量经过垂直去块滤波处理后的第四值、该像素点的色度分量经过垂直去块滤波处理前的第五值、垂直去块色度增强滤波阈值以及垂直去块色度增强偏移量对该像素点的色度分量的值进行增强滤波。
在另一个示例中,第一滤波处理为包括水平去块滤波处理;
当确定对当前块的色度分量进行水平去块增强滤波处理时,色度增强滤波阈值包括水平去块色度增强滤波阈值,色度增强滤波偏移量包括水平去块色度增强滤波偏移量。
示例性的,上述第一滤波处理可以包括水平去块滤波处理,当确定对当前块的色度分量进行水平去块增强滤波处理时,可以基于该像素点的色度分量经过水平去块滤波处理后的第四值、该像素点的色度分量经过水平去块滤波处理前的第五值、水平去块色度增强滤波阈值以及水平去块色度增强偏移量对该像素点的色度分量的值进行增强滤波。
需要说明的是,在本申请实施例中,第一滤波处理并不限于垂直去块滤波处理或水平去块滤波处理,其还可以包括但不限于ALF滤波或SAO滤波等。
请参见图7,为本申请实施例提供的一种增强滤波方法的流程示意图,如图7所示,该增强滤波方法可以包括以下步骤:
步骤S700、对于当前块的任一启动垂直滤波处理和水平滤波处理的像素点,确定该像素点的亮度分量经过垂直滤波处理后的垂直滤波像素值。
步骤S710、基于该垂直滤波像素值与该像素点的亮度分量未经过垂直滤波处理的像素值,对该像素点的亮度分量的值进行垂直增强滤波处理,以得到垂直增强滤波处理后的该像素点的亮度分量的垂直滤波增强像素值。
步骤S720、对该垂直滤波增强像素值进行水平滤波处理,以得到该像素点的亮度分量的水平滤波像素值;
步骤S730、基于水平滤波像素值和垂直增强滤波像素值,对该像素点的亮度分量的值进行水平增强滤波处理,以得到水平增强滤波处理后的该像素点的亮度分量的水平滤波增强像素值。
本申请实施例中,对于当前块满足垂直滤波处理条件和水平滤波处理条件的像素点,可以依次对该像素点的亮度分量进行垂直滤波处理和水平滤波处理,且分别在对该像素点的亮度分量进行垂直滤波处理后,对该像素点的亮度分量的值进行垂直增强滤波处理(可以将垂直增强滤波处理后的像素点的亮度分量的值称为垂直滤波增强值),以及,在对该像素点的亮度分量进行水平滤波处理后,对该像素点的亮度分量的值进行水平增强滤波处理(可以将水平增强滤波处理后的像素点的亮度分量的值称为水平滤波增强值)。
示例性的,对增强滤波使能标志位的编码方式可以包括但不限于以下之一:
方法1:按照n位二进制码流编解码。即若n=1,则0用0编码,1用1编码;若n=2,则0用00编码,1用01编码,依次类推。
方法2:使用0阶指数哥伦布码进行编解码。
序列头和图像头的语法多直接用方法1或方法2编码。
方法3:熵编码。
CTU级或CU级的语法元素比较多,一般用这种复杂的编码方式来进行编解码来节省码率。
解码端设备采用与编码端设备编码方法对应的解码方法对增强滤波使能标志位进行解码。
示例性的,对像素点的亮度分量进行垂直增强滤波处理,或,对像素点的亮度分量进行水平增强滤波处理的实现流程可以参见图6所示流程中的相关实施例的相关描述,本申请实施例在此不做赘述。
示例性的,该垂直滤波处理可以包括但不限于垂直去块滤波处理。
同理,该水平滤波处理可以包括但不限于水平去块滤波处理。
作为一种可能的实施例,步骤S710中,基于垂直滤波像素值与该像素点的亮度分量未经过所述垂直滤波处理的像素值,对该像素点的亮度分量的值进行垂直增强滤波处理,可以包括:
基于垂直滤波像素值、未经过垂直滤波处理的像素值、亮度垂直增强滤波整阈值以及亮度垂直增强滤波偏移量,对该像素点的亮度分量的值进行垂直增强滤波处理;
步骤S730中,基于水平滤波像素值和垂直滤波增强像素值,对该像素点的亮度分量的值进行水平增强滤波处理,可以包括:
基于水平滤波像素值、垂直滤波增强像素值、亮度水平增强滤波阈值以及亮度水平增强滤波偏移量,对该像素点的亮度分量的值进行水平增强滤波处理。
示例性的,可以基于像素点的亮度分量经过垂直滤波处理后的值(本文中称为垂直滤波像素值)、像素点未经过垂直滤波处理的像素值以及亮度垂直增强滤波阈值,对像素点进行分类,并基于该像素点的类别,使用对应的亮度垂直增强滤波偏移量,对该像素点的亮度分量进行垂直增强滤波处理。
示例性的,不同类别的像素点,进行垂直增强滤波处理的策略不同。
在一个示例中,基于垂直滤波像素值、未经过垂直滤波处理的像素值、亮度垂直增强滤波阈值以及亮度垂直增强滤波偏移量,对该像素点的亮度分量的值进行垂直增强滤波处理,可以包括:
当垂直滤波像素值与未经过垂直滤波处理的像素值的差值大于第一亮度垂直增强滤波阈值时,基于第一亮度垂直增强滤波偏移量对该像素点的亮度分量的值进行垂直增强滤波处理;
当垂直滤波像素值与未经过垂直滤波处理的像素值的差值小于第二亮度垂直增强滤波阈值时,基于第二亮度垂直增强滤波偏移量对该像素点的亮度分量的值进行垂直增强滤波处理;
第一亮度垂直增强滤波阈值大于第二亮度垂直增强滤波阈值,且第一亮度垂直增强滤波阈值与第二亮度垂直增强滤波阈值互为相反数。
同理,可以基于对垂直增强滤波像素值进行水平滤波处理后的像素点的亮度分量的值(本文中称为水平滤波像素值)、垂直增强滤波像素值以及亮度水平增强滤波阈值,对像素点进行分类,并基于该像素点的类别,使用对应的亮度水平增强滤波偏移量,对该像素点的亮度分量进行水平增强滤波处理。
示例性的,不同类别的像素点,进行水平增强滤波处理的策略不同。
在一个示例中,基于水平滤波像素值、垂直滤波增强像素值、亮度水平增强滤波阈值以及亮度水平增强滤波偏移量,对该像素点的亮度分量的值进行水平增强滤波处理,可以包括:
当水平滤波像素值与垂直滤波增强像素值的差值大于第一亮度水平增强滤波阈值时,基于第一亮度水平增强滤波偏移量对该像素点的亮度分量的值进行水平增强滤波处理;
当水平滤波像素值与垂直滤波增强像素值的差值小于第二亮度水平增强滤波阈值时,基于第二亮度水平增强滤波偏移量对该像素点的亮度分量的值进行水平增强滤波处理;
第一亮度水平增强滤波阈值大于第二亮度水平增强滤波阈值,且第一亮度水平增强滤波阈值与第二亮度水平增强滤波阈值互为相反数。
在一个示例中,不同BS值对应不同的第一亮度垂直增强滤波偏移量;或/和,不同BS值对应不同的第二亮度垂直增强滤波偏移量。
在一个示例中,不同BS值对应不同的第一亮度水平增强滤波偏移量;或/和,不同BS值对应不同的第二亮度水平增强滤波偏移量。
在另一个示例中,不同位置的像素点对应的第一亮度垂直增强滤波偏移量不完全相同;或/和,不同位置的像素点对应的第二亮度垂直增强滤波偏移量不完全相同。
示例性的,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第一亮度垂直增强滤波偏移量不同,与该边界的距离相同的像素点,第一亮度垂直增强滤波偏移量相同;或/和,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第二亮度垂直增强滤波偏移量不同,与该边界的距离相同的像素点,第二亮度垂直增强滤波偏移量相同。
在另一个示例中,不同位置的像素点对应的第一亮度水平增强滤波偏移量不完全相同;或/和,不同位置的像素点对应的第二亮度水平增强滤波偏移量不完全相同。
示例性的,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第一亮度水平增强滤波偏移量不同,与该边界的距离相同的像素点,第一亮度水平增强滤波偏移量相同;或/和,当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第二亮度水平增强滤波偏移量不同,与该边界的距离相同的像素点,第二亮度水平增强滤波偏移量相同。
请参见图8,为本申请实施例提供的一种增强滤波方法的流程示意图,如图8所示,该增强滤波方法可以包括以下步骤:
步骤S800、对于当前块的任一启动水平滤波处理和垂直滤波处理的像素点,确定该像素点的亮度分量经过水平滤波处理后的水平滤波像素值。
步骤S810、基于水平滤波像素值与该像素点的亮度分量未经过水平滤波处理的像素值,对该像素点的亮度分量的值进行水平增强滤波处理,以得到水平增强滤波处理后的该像素点的亮度分量的水平增强滤波像素值。
步骤S820、对该水平增强滤波像素值进行垂直滤波处理,以得到该像素点的亮度分量的垂直滤波像素值;
步骤S830、基于垂直滤波像素值和水平增强滤波像素值,对该像素点的亮度分量的值进行垂直增强滤波处理,以得到垂直增强滤波处理后的该像素点的亮度分量的垂直增强滤波像素值。
本申请实施例中,对于当前块启动水平滤波处理和垂直滤波处理的像素点,可以依次对该像素点的亮度分量进行水平滤波处理和垂直滤波处理,且分别在对该像素点的亮度分量进行水平滤波处理后,对该像素点的亮度分量的值进行水平增强滤波处理,以及,在对该像素点的亮度分量进行垂直滤波处理后,对该像素点的亮度分量的值进行垂直增强滤波处理。
示例性的,对增强滤波使能标志位的编码方式可以包括但不限于以下之一:
方法1:按照n位二进制码流编解码。即若n=1,则0用0编码,1用1编码;若n=2,则0用00编码,1用01编码,依次类推。
方法2:使用0阶指数哥伦布码进行编解码。
序列头和图像头的语法多直接用方法1或方法2编码。
方法3:熵编码。
CTU级或CU级的语法元素比较多,一般用这种复杂的编码方式来进行编解码来节省码率。
解码端设备采用与编码端设备编码方法对应的解码方法对增强滤波使能标志位进行解码。
示例性的,对像素点的亮度分量进行水平增强滤波处理,或,对像素点的亮度分量进行垂直增强滤波处理的实现流程可以参见图6或图7所示流程中的相关实施例的相关描述,本申请实施例在此不做赘述。
需要说明的是,对于色度分量,当像素点启动水平滤波处理和垂直滤波处理时,也可以依次对该像素点的色度分量进行垂直滤波处理和水平滤波处理,且分别在对该像素点的色度分量进行垂直滤波处理后,对该像素点的色度分量的值进行垂直增强滤波处理,以及,在对该像素点的色度分量进行水平直滤波处理后,对该像素点的色度分量的值进行水平增强滤波处理。
或者,依次对该像素点的色度分量进行垂直滤波处理和水平滤波处理,且分别在对该像素点的色度分量进行垂直滤波处理后,对该像素点的色度分量的值进行垂直增强滤波处理,以及,在对该像素点的色度分量进行水平滤波处理后,对该像素点的色度分量的值进行水平增强滤波处理,其具体实现可以参见图6或图7所示方法流程中的相关描述,本申请实施例对此不做赘述。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
下面分别以首次滤波处理为DBF滤波处理、SAO滤波处理或ALF滤波处理为例,对本申请实施例提供的技术方案进行说明。
假设进行首次滤波处理前的重建值为Y1,经过首次滤波处理后的像素值为Y2,则可以基于Y2-Y1或Y1-Y2进行分类,基于分类结果,对不同类别的残差,进行相应的增强处理(也可以称为增强滤波处理),得到增强处理后的像素值Y3。
示例性的,首次滤波处理可以包括但不限于DBF滤波处理、SAO滤波处理或ALF滤波处理等未利用到滤波残差的滤波方法。
示例性的,Y3既可以是对Y2进行增强获得,也可以是基于Y1进行增强获得,还可以是基于Y1和Y2进行增强获得。
示例性的,上述增强处理,可以是加一个补偿值(可为正数,也可为负数);或,可以是进行一个加权滤波过程,如Y3=w1*Y1+w2*Y2,或者Y3=w1*Y2+w2*Y2(i-1,j)+w2*Y2(i,j-1)。
其中,Y2(i-1,j)和Y2(i,j-1)为Y2的空域相邻像素值。
下面分别针对不同的首次滤波处理进行详细说明。
一、首次滤波处理为DBF滤波处理
实施例一
以像素点i满足垂直DBF滤波处理条件和水平DBF滤波处理条件为例。
步骤1、Y1(i)经过垂直DBF滤波处理后得到Y2(i);步骤2、基于Y1(i)和Y2(i),对像素点的像素值进行增强处理,得到Y3(i);步骤3、Y3(i)经过水平DBF滤波处理后得到Y4(i);
步骤4、基于Y4(i)和Y3(i),对像素点的像素值进行增强处理,得到Y5(i)。
示例性的,当上文中的第一滤波处理为垂直DBF滤波处理时,Y1(i)为上文中的第二像素值,Y2(i)为上文中的第一像素值,Y3(i)为上文中的第三像素值。
Y4(i)为上文中的第六像素值,Y5(i)为上文中的第七像素值。
示例性的,当上文中的第一滤波处理为水平DBF滤波处理时,Y3(i)为上文中的第二像素值,Y4(i)为上文中的第一像素值,Y5(i)为上文中的第三像素值,Y3(i)为上文中的第五像素值。
实施例二
在实施例一的基础上,步骤2中,
假设Yv(i)=(Y1(i)+Y2(i)+1)/2;
若Y1(i)-Y2(i)>Tv,则Y3(i)=clip(Yv(i)+f0v);
若Y1(i)-Y2(i)<NTv,则Y3(i)=clip(Yv(i)+f1v)
否则,即NTv≤Y1(i)-Y2(i)≤Tv,则Y3(i)=Y2(i),或者,对Y2(i)进行滤波处理(即上述第二滤波处理),得到Y3(i),例如,Y3(i)=Y2(i)+f2v
示例性的,Tv和NTv为增强滤波阈值,f0v、f1v和f2v为增强滤波偏移量。clip(x)表示将x限制在预设的取值范围内。
示例性的,当第一滤波处理为垂直BDF滤波处理时,Tv为上文中的第一增强滤波阈值,NTv为上文中的第一增强滤波阈值;f0v为上文中的第一增强滤波偏移量,f1v为上文中的第二增强滤波偏移量。
示例性的,NTv=-Tv,即Tv和NTv互为相反数。
类似的,步骤4中,
假设Yh(i)=(Y3(i)+Y4(i)+1)/2;
若Y3(i)-Y4(i)>Th,则Y3(i)=clip(Yh(i)+f0h);
若Y3(i)-Y4(i)<NTh,则Y3(i)=clip(Yh(i)+f1h)
否则,即NTh≤Y3(i)-Y4(i)≤Th,则Y5(i)=Y4(i),或者,对Y4(i)进行滤波处理(即上述第二滤波处理),得到Y5(i),例如,Y5(i)=Y4(i)+f2h
示例性的,Th和NTh为增强滤波阈值,f0h、f1h和f2h为增强滤波偏移量
示例性的,当第一滤波处理为水平BDF滤波处理时,Th为上文中的第一增强滤波阈值,NTh为上文中的第一增强滤波阈值;f0h为上文中的第一增强滤波偏移量,f1h为上文中的第二增强滤波偏移量。
示例性的,NTh=-Th,即Th和NTh互为相反数。
实施例三
在实施例一的基础上,步骤2中,
假设Yv(i)=Y2(i);
若Y1(i)-Y2(i)>Tv,则Y3(i)=clip(Yv(i)+f0v);
若Y1(i)-Y2(i)<NTv,则Y3(i)=clip(Yv(i)+f1v)
否则,即NTv≤Y1(i)-Y2(i)≤Tv,则Y3(i)=Y2(i),或者,对Y2(i)进行滤波处理(即上述第二滤波处理),得到Y3(i),例如,Y3(i)=Y2(i)+f2v
示例性的,Tv和NTv为增强滤波阈值,f0v、f1v和f2v为增强滤波偏移量。clip(x)表示将x限制在预设的取值范围内。
示例性的,NTv=-Tv,即Tv和NTv互为相反数。
类似的,步骤4中,
假设Yh(i)=Y4(i);
若Y3(i)-Y4(i)>Th,则Y3(i)=clip(Yh(i)+f0h);
若Y3(i)-Y4(i)<NTh,则Y3(i)=clip(Yh(i)+f1h)
否则,即NTh≤Y3(i)-Y4(i)≤Th,则Y5(i)=Y4(i),或者,对Y4(i)进行滤波处理(即上述第二滤波处理),得到Y5(i),例如,Y5(i)=Y4(i)+f2h
示例性的,Th和NTh为增强滤波阈值,f0h、f1h和f2h为增强滤波偏移量
示例性的,NTh=-Th,即Th和NTh互为相反数。
实施例四
在帧级采用实施例二或实施例三描述的方案
帧级包括图像参数集级或slice级,图像参数集级即一帧图像,而一帧图像可以包括N(N为正整数)个slice。
对于编码端设备,需要在图像头或slice头编码传递如下语法信息,即一帧图像或一个slice采用一套下面的语法(该语法的级别为图像参数集级或slice级),该图像或slice内的所有编码块均复用同一套系数。
示例性的,该一套系数可以包括:增强滤波阈值(可以包括垂直方向增强滤波阈值或/和水平发方向增强滤波阈值)以及增强滤波偏移量(可以包括垂直方向增强滤波偏移量或/和水平方向增强滤波偏移量)。
对于解码端设备,需要在图像头或slice头解码如下语法信息。
1、垂直方向增强滤波使能标记,该标记用于标识当前图像或slice在垂直方向是否使能增强滤波。
1.1、若使能,则在步骤1之后,需要执行上述步骤2,则需要编解码如下信息:
1.1.1、垂直方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Tv和NTv互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Tv=2,NTv=-2,则无需编解码阈值索引。
1.1.2、垂直方向增强滤波偏移量索引。f0v和f1v的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0v和f1v的候选列表可以相同,也可以不同,例如,f0v的候选列表{-1,-2,-3,-4},f1v的候选列表为{1,2,3,4}。
1.2、若未使能,则步骤1之后,不需要执行上述步骤2,也不需要对1.1.1和1.1.2中的阈值索引和偏移量索引进行编解码。
2、水平方向增强滤波使能标记,该标记用于标识当前图像或slice在水平方向是否使能增强滤波。
2.1、若使能,则在步骤3之后,需要执行上述步骤4,则需要编解码如下信息:
2.1.1、水平方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Th和NTh互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Th=2,NTh=-2,则无需编解码阈值索引。
2.1.2、水平方向增强滤波偏移量索引。f0h和f1h的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0h和f1h的候选列表可以相同,也可以不同,例如,f0h的候选列表{-1,-2,-3,-4},f1h的候选列表为{1,2,3,4}。
2.2、若未使能,则步骤3之后,不需要执行上述步骤4,也不需要对2.1.1和2.1.2中阈值索引和偏移量索引进行编解码。
实施例五
区别于实施例四的,实施例五中,增强滤波参数(包括增强滤波阈值或增强滤波偏移量)以参数集的形式出现,即不再单独编解码增强滤波阈值或增强滤波偏移量的索引信息,而是编解码增强滤波阈值和增强滤波偏移量构成的参数集的索引信息。
在帧级采用实施例二或实施例三描述的方案
帧级包括图像参数集级或slice级,图像参数集级即一帧图像,而一帧图像可以包括N(N为正整数)个slice。
对于编码端设备,需要在图像头或slice头编码传递如下语法信息,即一帧图像或一个slice采用一套下面的语法(该语法的级别为图像参数集级或slice级),该图像或slice内的所有编码块均复用同一套系数。
示例性的,该一套系数可以包括:由增强滤波阈值和增强滤波偏移量构成的增强滤波参数集。对于解码端设备,需要在图像头或slice头解码如下语法信息。
1、垂直方向增强滤波使能标记,该标记用于标识当前图像或slice在垂直方向是否使能增强滤波。
1.1、若使能,则在步骤1之后,需要执行上述步骤2,则需要编解码如下信息:
1.1.1、垂直方向增强滤波参数索引,垂直方向增强滤波参数可以以参数集的形式出现,该参数索引可以包括但不限于{Tv,f0v,f1v}在参数集候选列表T{Tv,f0v,f1v}中的索引,即基于该索引,可以从参数集候选列表T中确定Tv,f0v和f1v的值。
示例性的,垂直方向增强滤波参数可以为编解码端预设的固定参数集,或,存储的时域上已编码其他帧的垂直方向滤波参数,此时,可以不需要对该参数索引进行编解码。
1.2、若未使能,则步骤1之后,不需要执行上述步骤2,也不需要对1.1.1中的参数索引进行编解码。
2、水平方向增强滤波使能标记,该标记用于标识当前图像或slice在水平方向是否使能增强滤波。
2.1、若使能,则在步骤3之后,需要执行上述步骤4,则需要编解码如下信息:
2.1.1、水平方向增强滤波参数索引,水平方向增强滤波参数可以以参数集的形式出现,该参数索引可以包括但不限于{Th,f0h,f1h}在参数集候选列表T{Th,f0h,f1h}中的索引,即基于该索引,可以从参数集候选列表T中确定Th,f0h和f1h的值。
示例性的,水平方向增强滤波参数可以为编解码端预设的固定参数集,或,存储的时域上已编码其他帧的水平方向滤波参数,此时,可以不需要对该参数索引进行编解码。
2.2、若未使能,则步骤3之后,不需要执行上述步骤4,也不需要对2.1.1中的参数索引进行编解码。
实施例六
在CTU级采用实施例二或实施例三描述的方案
CTU为最大编码单元,对于I帧,CTU的尺寸一般为64*64;对于非I帧(如B帧或P帧),CTU的尺寸一般为128*128。
每个CTU编码一套系数,即该CTU下的每个编码块均采用该套系数,在每个CTU内编解码该系数的具体实现可以参见实施例四或实施例五中编解码相应系数的具体实现。
示例性的,该一套系数可以包括增强滤波阈值以及增强滤波偏移量(对应实施例四),或,由增强滤波阈值和增强滤波偏移量构成的增强滤波参数集(对应实施例五)。
示例性的,对于解码端设备,需要在CTU头解码如下语法信息。
1、垂直方向增强滤波使能标记,该标记用于标识当前图像或slice在垂直方向是否使能增强滤波。
1.1、若使能,则在步骤1之后,需要执行上述步骤2,则需要编解码如下信息:
1.1.1、垂直方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Tv和NTv互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Tv=2,NTv=-2,则无需编解码阈值索引。
1.1.2、垂直方向增强滤波偏移量索引。f0v和f1v的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0v和f1v的候选列表可以相同,也可以不同,例如,f0v的候选列表{-1,-2,-3,-4},f1v的候选列表为{1,2,3,4}。
1.2、若未使能,则步骤1之后,不需要执行上述步骤2,也不需要对1.1.1和1.1.2中的阈值索引和偏移量索引进行编解码。
2、水平方向增强滤波使能标记,该标记用于标识当前图像或slice在水平方向是否使能增强滤波。
2.1、若使能,则在步骤3之后,需要执行上述步骤4,则需要编解码如下信息:
2.1.1、水平方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Th和NTh互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Th=2,NTh=-2,则无需编解码阈值索引。
2.1.2、水平方向增强滤波偏移量索引。f0h和f1h的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0h和f1h的候选列表可以相同,也可以不同,例如,f0h的候选列表{-1,-2,-3,-4},f1h的候选列表为{1,2,3,4}。
2.2、若未使能,则步骤3之后,不需要执行上述步骤4,也不需要对2.1.1和2.1.2中阈值索引和偏移量索引进行编解码。
实施例七
在CU级采用实施例二或实施例三描述的方案
CU的尺寸一般在4*4~128*128范围内。
每个CU编码一套系数,即该CU下的每个编码块均采用该套系数,在每个CU内编解码该系数的具体实现可以参见实施例四或实施例五中编解码相应系数的具体实现。
示例性的,该一套系数可以包括增强滤波阈值以及增强滤波偏移量(对应实施例四),或,由增强滤波阈值和增强滤波偏移量构成的增强滤波参数集(对应实施例五)。
示例性的,对于解码端设备,需要在每个CU解码如下语法信息。
1、垂直方向增强滤波使能标记,该标记用于标识当前图像或slice在垂直方向是否使能增强滤波。
1.1、若使能,则在步骤1之后,需要执行上述步骤2,则需要编解码如下信息:
1.1.1、垂直方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Tv和NTv互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Tv=2,NTv=-2,则无需编解码阈值索引。
1.1.2、垂直方向增强滤波偏移量索引。f0v和f1v的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0v和f1v的候选列表可以相同,也可以不同,例如,f0v的候选列表{-1,-2,-3,-4},f1v的候选列表为{1,2,3,4}。
1.2、若未使能,则步骤1之后,不需要执行上述步骤2,也不需要对1.1.1和1.1.2中的阈值索引和偏移量索引进行编解码。
2、水平方向增强滤波使能标记,该标记用于标识当前图像或slice在水平方向是否使能增强滤波。
2.1、若使能,则在步骤3之后,需要执行上述步骤4,则需要编解码如下信息:
2.1.1、水平方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Th和NTh互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Th=2,NTh=-2,则无需编解码阈值索引。
2.1.2、水平方向增强滤波偏移量索引。f0h和f1h的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0h和f1h的候选列表可以相同,也可以不同,例如,f0h的候选列表{-1,-2,-3,-4},f1h的候选列表为{1,2,3,4}。
2.2、若未使能,则步骤3之后,不需要执行上述步骤4,也不需要对2.1.1和2.1.2中阈值索引和偏移量索引进行编解码。
实施例八
在CU级采用实施例二或实施例三描述的方案
每个CU均编解码一套如下系数:
1、是否复用周围块的增强滤波参数标记位。
1.1、若复用,则复用周围块,如左侧块或上侧块的增强滤波参数;
1.2、若不复用,则编码如下参数:
1.2.1、垂直方向增强滤波使能标记位,该标记用于标识当前CU在垂直方向是否使能增强滤波。
1.2.1.1、若使能,则在步骤1之后,需要执行上述步骤2,则需要编解码如下信息:
1.2.1.1.1、垂直方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Tv和NTv互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Tv=2,NTv=-2,则无需编解码阈值索引。
1.2.1.1.2、垂直方向增强滤波偏移量索引。f0v和f1v的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0v和f1v的候选列表可以相同,也可以不同,例如,f0v的候选列表{-1,-2,-3,-4},f1v的候选列表为{1,2,3,4}。
1.2.1.2、若未使能,则步骤1之后,不需要执行上述步骤2,也不需要对1.2.1.1.1和1.2.1.1.2中的阈值索引和偏移量索引进行编解码。
1.2.2、水平方向增强滤波使能标记,该标记用于标识当前CU在水平方向是否使能增强滤波。
1.2.2.1、若使能,则在步骤3之后,需要执行上述步骤4,则需要编解码如下信息:
1.2.2.1.1、水平方向增强滤波阈值索引。该阈值索引优选为1个bin,即有两个候选阈值。
示例性的,增强滤波阈值候选列表可以为{1,2}或{2,4},也可以为其他包括两个候选值的候选列表。
示例性的,当Th和NTh互为相反数时,仅需编码一个阈值索引。
示例性的,当增强滤波阈值为固定值,如Th=2,NTh=-2,则无需编解码阈值索引。
1.2.2.1.2、水平方向增强滤波偏移量索引。f0h和f1h的候选值可以相同,也可以不同,偏移量索引优选为2个bin,即包括4个候选偏移量。
示例性的,增强滤波偏移量候选列表可以为{1,2,3,4}或{2,4,6,8},也可以为其他包括4个候选值的候选列表。
示例性的,当增强滤波偏移量为固定值,则无需编码该偏移量索引。
示例性的,f0h和f1h的候选列表可以相同,也可以不同,例如,f0h的候选列表{-1,-2,-3,-4},f1h的候选列表为{1,2,3,4}。
1.2.2.2、若未使能,则步骤3之后,不需要执行上述步骤4,也不需要对1.2.2.1.1和1.2.2.1.2中阈值索引和偏移量索引进行编解码。
实施例九
在帧级和CTU级采用实施例二或实施例三描述的方案
在帧级增加一个标志位(即上述预设标志位),该标志位用于指示当前帧采用帧级语法使能增强滤波或CTU级语法使能增强滤波。编解码端需要在帧级编解码该标志位。
当当前帧采用帧级语法使能增强滤波时,在每帧图像内编解码系数的具体实现可以参见实施例四或实施例五。
当当前帧采用CTU级语法使能增强滤波时,在每个CTU内编解码系数的具体实现可以参见实施例六。
实施例十
在帧级、CTU级和CU级采用实施例二或实施例三描述的方案
在帧级增加一个标志位,该标志用于指示当前帧是采用帧级语法使能增强滤波或CTU级语法使能增强滤波。编解码端需要在帧级编解码该标志位。
当当前帧采用帧级语法使能增强滤波时,在每帧图像内编解码系数的具体实现可以参见实施例四或实施例五。
当当前帧采用CTU级语法使能增强滤波时,还需要在CTU级增加一个标志位,该标志位用于指示当前CTU采用CTU级语法使能增强滤波或CU级语法使能增强滤波。编解码端需要在CTU级编解码该标志位。
当当前帧采用CTU级语法使能增强滤波时,在每个CTU内编解码系数的具体实现可以参见实施例六。
当当前帧采用CU级语法使能增强滤波时,在每个CU内编解码系数的具体实现可以参见实施例七或实施例八。
二、首次滤波为SAO滤波
实施例十一
步骤1、Y1(i)经过SAO滤波处理后得到Y2(i);
步骤2、基于Y1(i)和Y2(i),对像素点的像素值进行增强处理,得到Y3(i)。
示例性的,当上文中的第一滤波处理为SAO滤波处理时,Y1(i)为上文中的第二像素值,Y2(i)为上文中的第一像素值,Y3(i)为上文中的第三像素值。
实施例十二、
实施例十一中的步骤2可以采用实施例二~实施例十中任一实施例描述的方案。
三、首次滤波为ALF滤波
实施例十三
步骤1、Y1(i)经过ALF滤波处理后得到Y2(i);
步骤2、基于Y1(i)和Y2(i),对像素点的像素值进行增强处理,得到Y3(i)。
示例性的,当上文中的第一滤波处理为ALF滤波处理时,Y1(i)为上文中的第二像素值,Y2(i)为上文中的第一像素值,Y3(i)为上文中的第三像素值。
实施例十四
实施例十三中的步骤2可以采用实施例二~实施例十中任一实施例描述的方案。
四、首次滤波为任一种滤波方式
实施例十五
步骤1、Y1(i)经过滤波处理后得到Y2(i);
步骤2、基于Y1(i)和Y2(i),对像素点的像素值进行增强处理,得到Y3(i)。
示例性的,当上文中的第一滤波处理为步骤1中的滤波处理时,Y1(i)为上文中的第二像素值,Y2(i)为上文中的第一像素值,Y3(i)为上文中的第三像素值。
实施例十六
实施例十五中的步骤2可以采用实施例二~实施例十中任一实施例描述的方案。
实施例十七
实施例十五中的步骤2可以以Y1(i)和Y2(i)作为输入,利用机器学习或深度学习,确定Y3(i)。
实施例十八
实施例十五中的步骤2可以以Y1(i)-Y2(i)或Y2(i)-Y1(i)作为输入,利用维纳滤波器,确定Y3(i)。
其中,维纳滤波器可以为:
Figure BDA0003453589230000431
即对Y2(i)和其邻域的像素点进行加权求和,得到Y3(i),K为正整数,表示用于滤波的像素点个数(包括当前像素点和周围像素点)。
实施例十九
实施例十五中的步骤2可以基于Y1(i)-Y2(i)或Y2(i)-Y1(i)的大小,对Y2(i)进行分类,对于不同类别的Y2(i),利用不同的维纳滤波器,确定Y3(i)。
例如,基于Y1(i)-Y2(i)或Y2(i)-Y1(i)的大小,以及已设定的分段阈值,确定Y1(i)-Y2(i)或Y2(i)-Y1(i)所处的分段,Y1(i)-Y2(i)或Y2(i)-Y1(i)所处分段不同,Y2(i)的类别不同。
实施例二十
解码或编码一个SPS级的标记位,该标记位用来控制当前图像序列中的所有图像是否使用上述技术,该技术包括实施例一~实施例十九中任一实施例描述的增强滤波技术的实施方式。
示例性的,当解码端设备解码得到的该标记位表征使用上述技术时,按照实施例一~实施例十九中任一实施例描述的增强滤波技术进行处理。
下面以去块滤波(DBF)处理为例,对本申请实施例提供的增强滤波方案的实现进行说明。
实施例二十一
以像素点i满足垂直DBF滤波处理条件和水平DBF滤波处理条件为例。
步骤1、Y1(i)经过垂直DBF滤波处理后得到Y2(i);
步骤2、基于Y2(i)-Y2(i),得到Y3(i);
步骤3、Y3(i)经过水平DBF滤波处理后得到Y4(i);
步骤4、基于Y4(i)-Y3(i),得到Y5(i)。
示例性的,对于该像素点的亮度分量,Y1(i)可以为上述第二值,Y2(i)可以为上述第一值,Y3(i)可以为上述第三值;
或者,Y1(i)可以为上述第八值,Y2(i)可以为上述第七值,Y3(i)可以为上述第九值,Y4(i)可以为上述第十值,Y5(i)可以为上述第十一值。
基于Y2(i)-Y2(i),得到Y3(i)的实现流程可以参见图4或图5所示方法流程中的相关描述。
基于Y4(i)-Y3(i),得到Y5(i)的实现流程可以参见图5所示方法流程中的相关描述。
色度分量的实现与亮度分量的实现类似,例如,Y1(i)可以为上述第五值,Y2(i)可以为上述第四值,Y3(i)可以为上述第六值,基于Y2(i)-Y2(i),得到Y3(i)的实现流程可以参见图4或图5所示方法流程中的相关描述。
实施例二十二
在实施例二十一的基础上,步骤2中,在基于Y2(i)-Y2(i),得到Y3(i)之前,还可以包括:
在序列头编码/解码标志位dbr_enable_flag。dbr_enable_flag为二值变量。值为‘1’表示可使用去块滤波调整模式(也可以称为增强滤波模式),即可以对该像素点的亮度分量(或色度分量)进行增强滤波处理;值为‘0’表示不应使用去块滤波调整模式,即不对该像素点的亮度分量(或色度分量)进行增强滤波处理。DbrEnableFlag的值等于dbr_enable_flag。若码流中不存在dbr_enable_flag,则DbrEnableFlag的值为0。
可以基于序列头中是否存在dbr_enable_flag,以及在存在dbr_enable_flag的情况下,dbr_enable_flag的值,确定DbrEnableFlag的值,并基于DbrEnableFlag的值确定是否进行增强滤波处理,若DbrEnableFlag的值为1,则进行上述步骤2中的,基于Y2(i)-Y2(i),得到Y3(i),以及步骤4中的,基于Y4(i)-Y3(i),得到Y5(i);否则,不进行增强滤波处理。
需要说明的是,在该实施例中,上述示例以通过同一标志位标识是否进行垂直增强滤波和水平增强滤波为例,即当该标志位标识进行增强滤波处理时,分别按照步骤2和步骤4所描述的进行垂直增强滤波处理和水平增强滤波处理。
本申请实施例中也可以分别使用不同的标志位来标识是否进行垂直增强滤波处理,以及水平增强滤波处理,当基于标志位(可以称为垂直增强滤波标志位)确定进行垂直增强滤波处理时,按照步骤2所描述的进行垂直增强滤波处理;当基于标志位(可以称为水平增强滤波标志位)确定进行水平增强滤波处理时,按照步骤4所描述的进行水平增强滤波处理。
实施例二十三
在实施例二十一或实施例二十二的基础上,步骤2中,在基于Y2(i)-Y2(i),得到Y3(i)之前,还可以包括:
需要说明的是,当存在序列头级标志位时,需要在序列头级标志位标识使用增强滤波处理时,再对对应的图像序列中各图像的图像头级标志位进行编解码;否则,确定不对对应的图像序列中各图像进行增强滤波处理。
在图像头编码/解码如下语法:
Figure BDA0003453589230000451
示例性的,下面分别对各标志位的含义进行说明:
23.1、帧级垂直DBR允许标志ph_dbr_v_enable_flag
二值变量。值为‘1’表示当前图像使用垂直DBR模式,即需要对当前图像的亮度分量进行垂直去块增强滤波处理;值为‘0’表示当前图像不应使用垂直DBR模式,即不对当前图像的亮度分量进行垂直去块增强滤波处理。PhDbrVEnableFlag的值等于ph_dbr_v_enable_flag的值。若位流中不存在ph_dbr_v_enable_flag,则PhDbrVEnableFlag的为0。
23.2、DBR垂直阈值索引dbr_v_threshold_minus1(可以称为垂直去块增强滤波阈值索引,即上述亮度阈值索引或色度阈值索引)
当前图像DBR的垂直阈值索引,dbr_v_threshold_minus1取值范围为是0~1(也可以是其他整数取值范围),DBR的垂直阈值参数DbrVThreshold(即上述亮度垂直去块增强滤波阈值或色度垂直去块增强滤波阈值)等于dbr_v_threshold_minus1+1。若位流中没有dbr_v_threshold_minus1,则DbrVThreshold的值等于0。
23.3、DBR垂直偏移0索引dbr_v_offset0_minus1(可以称为第二垂直去块增强滤波偏移量索引,即上述第二亮度增强滤波偏移量索引或第二色度增强滤波偏移量索引)
当前图像DBR的垂直偏移0索引,dbr_v_offset0_minus1取值范围为是0~3(也可以是其他整数取值范围),DBR的垂直偏移0参数DbrVOffset0(即上述第二亮度垂直增强滤波偏移量或第二色度垂直增强滤波偏移量)等于-(dbr_v_offset0_minus1+1)。若位流中没有dbr_v_offset0_minus1,则DbrVOffset0的值等于0。
23.4、DBR垂直偏移1索引dbr_v_offset1_minus1(可以称为第一垂直去块增强滤波偏移量索引,即上述第一亮度增强滤波偏移量索引或第一色度增强滤波偏移量索引)
当前图像DBR的垂直偏移1索引,dbr_v_offset1_minus1取值范围为是0~3(也可以是其他整数取值范围),DBR的垂直偏移1参数DbrVOffset1(即上述第一亮度垂直增强滤波偏移量或第一色度垂直增强滤波偏移量)等于dbr_v_offset1_minus1+1。若位流中没有dbr_v_offset1_minus1,则DbrVOffset1的值等于0。
23.5、帧级水平DBR允许标志ph_dbr_h_enable_flag
二值变量。值为‘1’表示当前图像使用水平DBR模式,即需要对当前图像的亮度分量进行水平去块增强滤波处理;值为‘0’表示当前图像不应使用水平DBR模式,即不对当前图像的亮度分量进行水平去块增强滤波处理。PhDbrHEnableFlag的值等于ph_dbr_h_enable_flag的值。若位流中不存在ph_dbr_h_enable_flag,则PhDbrHEnableFlag的为0。
23.6、DBR水平阈值索引dbr_h_threshold_minus1(可以称为水平去块增强滤波阈值索引,即上述亮度阈值索引或色度阈值索引)
当前图像DBR的水平阈值索引,dbr_h_threshold_minus1取值范围为是0~1(也可以是其他整数取值范围),DBR的水平阈值参数DbrHThreshold(即上述亮度水平去块增强滤波阈值或色度水平去块增强滤波阈值)等于dbr_h_threshold_minus1+1。若位流中没有dbr_h_threshold_minus1,则DbrHThreshold的值等于0。
23.7、DBR水平偏移0索引dbr_h_offset0_minus1(可以称为第二水平去块增强滤波偏移量索引,即上述第二亮度增强滤波偏移量索引或第二色度增强滤波偏移量索引)
当前图像DBR的水平偏移0索引,dbr_h_offset0_minus1取值范围为是0~3(也可以是其他整数取值范围),DBR的水平偏移0参数DbrHOffset0(即上述第二亮度水平增强滤波偏移量或第二色度水平增强滤波偏移量)等于-(dbr_h_offset0_minus1+1)。若位流中没有dbr_h_offset0_minus1,DbrHOffset0的值等于0。
23.8、DBR水平偏移1索引dbr_h_offset1_minus1(可以称为第一水平去块增强滤波偏移量索引,即上述第一亮度增强滤波偏移量索引或第一色度增强滤波偏移量索引)
当前图像DBR的水平偏移1索引,dbr_h_offset1_minus1取值范围为是0~3(也可以是其他整数取值范围),DBR的水平偏移1参数DbrHOffset1(即上述第一亮度水平增强滤波偏移量或第一色度水平增强滤波偏移量)等于dbr_h_offset1_minus1+1。若位流中没有dbr_h_offset1_minus1,DbrHOffset1的值等于0。
需要说明的是,与序列头级标志位类似的,对于图像头级标志位,也可以使用一个标志位标识是否对当前图像的亮度分量进行垂直去块增强滤波处理以及水平去块增强滤波处理。
实施例二十四
在实施例二十二或实施例二十三的基础上,对序列头级语法的编码/解码,或对图像头级语法的编码/解码,需要在去块滤波启用时进行。
即在实施例二十二中,当启用去块滤波时,对序列头级语法进行编码/解码。
在实施例二十三中,当启用去块滤波时,对图像头级语法进行编码/解码。
需要说明的是,当实施例三中包括序列头级语法和图像头级语法时,若启用去块滤波,则对序列头级语法进行编码/解码,并当序列头级语法标识允许增强滤波处理时,对图像头级语法进行编码/解码。
实施例二十五
在实施例二十三或实施例二十四的基础上,
25.1、亮度分量DBR参数推导
若当前为垂直边界且PhDbrVEnableFlag为1,或当前为水平边界且PhDbrHEnableFlag为1,则PhDbrEnableFlag为1,否则PhDbrEnableFlag为0。
若为垂直滤波边界,dbr_th=DbrVThreshold,dbr_offset0=DbrVOffset0,dbr_offset1=DbrVOffset1,即增强滤波阈值为垂直增强滤波阈值,第二增强滤波偏移量为第二垂直增强滤波偏移量,第一增强滤波偏移量为第一垂直增强滤波偏移量;
若为水平滤波边界,dbr_th=DbrHThreshold,dbr_offset0=DbrHOffset0,dbr_offset1=DbrHOffset1,即增强滤波阈值为水平增强滤波阈值,第二增强滤波偏移量为第二水平增强滤波偏移量,第一增强滤波偏移量为第一水平增强滤波偏移量。
25.2、亮度分量BS等于4时的边界滤波过程
边界滤波强度BS的值为4时,对p0、p1、p2和q0、q1、q2滤波的计算过程如下(P0、P1、P2和Q0、Q1、Q2分别为像素点L0、L1、L2和R0、R1、R2滤波后的亮度分量的值,p0、p1、p2和q0、q1、q2分别为像素点L0、L1、L2和R0、R1、R2滤波后的亮度分量的值):
P0=(p2*3+p1*8+p0*10+q0*8+q1*3+16)>>5
P1=(p2*4+p1*5+p0*4+q0*3+8)>>4
P2=(p3*2+p2*2+p1*2+p0*1+q0*1+4)>>3
Q0=(p1*3+p0*8+q0*10+q1*8+q2×3+16)>>5
Q1=(p0*3+q0*4+q1*5+q2*4+8)>>4
Q2=(p0*1+q0*1+q1*2+q2*2+q3*2+4)>>3
为了使滤波后的亮度分量的值更接近亮度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的亮度分量的值、亮度增强滤波阈值以及亮度增强滤波偏移量对亮度分量的值进行增强滤波处理。
示例性的,若PhDbrEnableFlag为1,则:
若pi>Pi+dbr_th,即Pi-pi<-dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0);若pi<Pi–dbr_th,即Pi-pi>dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1),i=0,1,2;
若qi>Qi+dbr_th,即Qi-qi<-dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0);若qi<Qi–dbr_th,即Qi-qi>dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1),i=0,1,2。
示例性的,Pi'和Qi'为增强滤波后的亮度分量的值,下同。
25.3、边界滤波强度BS的值为3时,对p0、p1和q0、q1滤波的计算过程如下:
P0=(p2+(p1<<2)+(p0<<2)+(p0<<1)+(q0<<2)+q1+8)>>4
P1=((p2<<1)+p2+(p1<<3)+(p0<<2)+q0+8)>>4
Q0=(p1+(p0<<2)+(q0<<2)+(q0<<1)+(q1<<2)+q2+8)>>4
Q1=((q2<<1)+q2+(q1<<3)+(q0<<2)+p0+8)>>4
为了使滤波后的亮度分量的值更接近亮度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的亮度分量的值、亮度增强滤波阈值以及亮度增强滤波偏移量对亮度分量的值进行增强滤波处理。
示例性的,若PhDbrEnableFlag为1时,则:
若pi>Pi+dbr_th,即Pi-pi<-dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0);若pi<Pi–dbr_th,即Pi-pi>dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1),i=0,1;
若qi>Qi+dbr_th,即Qi-qi<-dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0);若qi<Qi–dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1),i=0,1。
25.4、边界滤波强度BS的值为2时,对p0和q0滤波的计算过程如下:
P0=((p1<<1)+p1+(p0<<3)+(p0<<1)+(q0<<1)+q0+8)>>4
Q0=((p0<<1)+p0+(q0<<3)+(q0<<1)+(q1<<1)+q1+8)>>4
为了使滤波后的亮度分量的值更接近亮度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的亮度分量的值、亮度增强滤波阈值以及亮度增强滤波偏移量对亮度分量的值进行增强滤波处理。
示例性的,若PhDbrEnableFlag为1时,则:
若pi>Pi+dbr_th,即Pi-pi<-dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0);若pi<Pi–dbr_th,即Pi-pi>dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1),i=0;
若qi>Qi+dbr_th,即Qi-qi<-dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0);若qi<Qi–dbr_th,即Qi-qi>dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1),i=0。
25.5、边界滤波强度BS的值为1时,对p0和q0滤波的计算过程如下:
P0=((p0<<1)+p0+q0+2)>>2
Q0=((q0<<1)+q0+p0+2)>>2
为了使滤波后的亮度分量的值更接近亮度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的亮度分量的值、亮度增强滤波阈值以及亮度增强滤波偏移量对亮度分量的值进行增强滤波处理。
示例性的,若PhDbrEnableFlag为1时,则:
若pi>Pi+dbr_th,即Pi-pi<-dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0);若pi<Pi–dbr_th,即Pi-pi>dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1),i=0;
若qi>Qi+dbr_th,即Qi-qi<-dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0);若qi<Qi–dbr_th,即Qi-qi>dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1),i=0。
实施例二十六
对于色度分量,在实施例二十一或实施例二十二的基础上,步骤2中,在基于Y2(i)-Y2(i),得到Y3(i)之前,还可以包括:
需要说明的是,当存在序列头级标志位时,需要在序列头级标志位标识使用增强滤波处理时,再对对应的图像序列中各图像的图像头级标志位进行编解码;否则,确定不对对应的图像序列中各图像进行增强滤波处理。
在图像头编码/解码如下语法:
Figure BDA0003453589230000491
Figure BDA0003453589230000501
示例性的,下面分别对各标志位的含义进行说明:
26.1、帧级垂直色度DBR允许标志ph_dbr_chroma_v_enable_flag
二值变量。值为‘1’表示当前图像使用垂直色度DBR模式,即需要对当前图像的色度分量进行垂直去块增强滤波处理;值为‘0’表示当前图像不应使用垂直色度DBR模式,即不对当前图像的色度分量进行垂直去块增强滤波处理。PhDbrChromaVEnableFlag的值等于ph_dbr_chroma_v_enable_flag的值。若位流中不存在ph_dbr_chroma_v_enable_flag,则PhDbrChromaVEnableFlag的为0。
26.2、色度DBR垂直阈值索引dbr_chroma_v_threshold_minus1(可以称为色度垂直去块增强滤波阈值索引,即上述色度阈值索引)
当前图像色度DBR的垂直阈值索引,dbr_chroma_v_threshold_minus1取值范围为是0~1(也可以是其他整数取值范围),色度DBR的垂直阈值参数DbrChromaVThreshold(即上述垂直去块增强滤波阈值)等于dbr_chroma_v_threshold_minus1+1。若位流中没有dbr_chroma_v_threshold_minus1,则DbrChromaVThreshold的值等于0。
26.3、色度DBR垂直偏移0索引dbr_chroma_v_offset0_minus1(可以称为第二色度垂直去块增强滤波偏移量索引,即上述第二色度增强滤波偏移量索引)
当前图像色度DBR的垂直偏移0索引,dbr_chroma_v_offset0_minus1取值范围为是0~3(也可以是其他整数取值范围),色度DBR的垂直偏移0参数DbrChromaVOffset0(即上述第二色度增强滤波偏移量)等于-(dbr_chroma_v_offset0_minus1+1)。若位流中没有dbr_chroma_v_offset0_minus1,则DbrChromaVOffset0的值等于0。
26.4、色度DBR垂直偏移1索引dbr_chroma_v_offset1_minus1(可以称为第一垂直去块增强滤波偏移量索引,即上述第一色度增强滤波偏移量索引)
当前图像色度DBR的垂直偏移1索引,dbr_chroma_v_offset1_minus1取值范围为是0~3(也可以是其他整数取值范围),色度DBR的垂直偏移1参数DbrChromaVOffset1(即上述第一色度增强滤波偏移量)等于dbr_chroma_v_offset1_minus1+1。若位流中没有dbr_chroma_v_offset1_minus1,则DbrChromaVOffset1的值等于0。
26.5、帧级水平色度DBR允许标志ph_dbr_chroma_h_enable_flag
二值变量。值为‘1’表示当前图像使用水平色度DBR模式,即需要对当前图像的色度分量进行水平去块增强滤波处理;值为‘0’表示当前图像不应使用水平色度DBR模式,即不对当前图像的色度分量进行水平去块增强滤波处理。PhDbrChromaHEnableFlag的值等于ph_dbr_chroma_h_enable_flag的值。若位流中不存在ph_dbr_chroma_h_enable_flag,则PhDbrChromaHEnableFlag的为0。
26.6、色度DBR水平阈值索引dbr_chroma_h_threshold_minus1(可以称为色度水平去块增强滤波阈值索引,即上述色度阈值索引)
当前图像色度DBR的水平阈值索引,dbr_chroma_h_threshold_minus1取值范围为是0~1(也可以是其他整数取值范围),DBR的水平阈值参数DbrChromaHThreshold(即上述色度水平去块增强滤波阈值)等于dbr_chroma_h_threshold_minus1+1。若位流中没有dbr_chroma_h_threshold_minus1,则DbrChromaHThreshold的值等于0。
26.7、色度DBR水平偏移0索引dbr_chroma_h_offset0_minus1(可以称为第二色度水平去块增强滤波偏移量索引,即上述第二色度增强滤波偏移量索引)
当前图像色度DBR的水平偏移0索引,dbr_chroma_h_offset0_minus1取值范围为是0~3(也可以是其他整数取值范围),色度DBR的水平偏移0参数DbrChromaHOffset0(即上述第二色度增强滤波偏移量)等于-(dbr_chroma_h_offset0_minus1+1)。若位流中没有dbr_chroma_h_offset0_minus1,DbrChromaHOffset0的值等于0。
26.8、色度DBR水平偏移1索引dbr_h_offset1_minus1(可以称为第一色度度水平去块增强滤波偏移量索引,即上述第一色度度增强滤波偏移量索引)
当前图像色度DBR的水平偏移1索引,dbr_chroma_h_offset1_minus1取值范围为是0~3(也可以是其他整数取值范围),色度DBR的水平偏移1参数DbrChromaHOffset1(即上述第一色度增强滤波偏移量)等于dbr_chroma_h_offset1_minus1+1。若位流中没有dbr_chroma_h_offset1_minus1,DbrChromaHOffset1的值等于0。
需要说明的是,与序列头级标志位类似的,对于图像头级标志位,也可以使用一个标志位标识是否对当前图像的色度分量进行垂直去块增强滤波处理以及水平去块增强滤波处理。
实施例二十七
在实施例二十六的基础上,
27.1、色度分量DBR参数推导
若当前为垂直边界且PhDbrChromaVEnableFlag为1,或当前为水平边界且PhDbrChromaHEnableFlag为1,则PhDbrChromaEnableFlag为1,否则PhDbrChromaEnableFlag为0。
若为垂直滤波边界,dbr_th_c=DbrChromaVThreshold,dbr_offset0_c=DbrChromaVOffset0,dbr_offset1_c=DbrChromaVOffset1,即色度增强滤波阈值为色度垂直增强滤波阈值,第二色度增强滤波偏移量为第二垂直增强滤波偏移量,第一色度增强滤波偏移量为第一色度垂直增强滤波偏移量;
若为水平滤波边界,dbr_th_c=DbrChromaHThreshold,dbr_offset0_c=DbrChromaHOffset0,dbr_offset1_c=DbrChromaHOffset1,即色度增强滤波阈值为色度水平增强滤波阈值,第二色度增强滤波偏移量为第二色度水平增强滤波偏移量,第一色度增强滤波偏移量为第一色度水平增强滤波偏移量。
27.2、色度滤波调整过程
边界滤波强度BS的值大于0时,对p0和q0滤波的计算过程如下:
P0=((p1<<1)+p1+(p0<<3)+(p0<<1)+(q0<<1)+q0+8)>>4
Q0=((p0<<1)+p0+(q0<<3)+(q0<<1)+(q1<<1)+q1+8)>>4
边界滤波强度Bs的值等于3时,对p1和q1滤波的计算过程如下:
P1=((p2<<1)+p2+(p1<<3)+(p0<<1)+p0+(q0<<1)+8)>>4
Q1=((q2<<1)+q2+(q1<<3)+(q0<<1)+q0+(p0<<1)+8)>>4
为了使滤波后的色度分量的值更接近色度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的色度分量的值、色度增强滤波阈值以及色度增强滤波偏移量对色度分量的值进行增强滤波处理。
示例性的,若PhDbrEnableFlag为1时,则:
若pi>Pi+dbr_th_c,即Pi-pi<-dbr_th_c,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0_c);若pi<Pi–dbr_th_c,即Pi-pi>dbr_th_c,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1_c),i=0,1;
若qi>Qi+dbr_th_c,即Qi-qi<-dbr_th_c,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0_c);若qi<Qi–dbr_th_c,即Qi-qi>dbr_th_c,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1_c),i=0,1。
实施例二十八
在实施例二十一~实施例二十五任一实施例的基础上,对于亮度分量,可以基于BS值确定增强滤波偏移量。
对于某一帧图像的每个BS值,均有不同的增强滤波偏移量:dbr_v_offset0_minus1[bs]、dbr_v_offset1_minus1[bs]、dbr_h_offset0_minus1[bs]、dbr_h_offset1_minus1[bs]。
在图像头编码/解码如下语法:
Figure BDA0003453589230000521
Figure BDA0003453589230000531
示例性的,下面分别对各标志位的含义进行说明:
28.1、边界强度为bs的DBR垂直偏移0索引dbr_v_offset0_minus1[bs]
示例性的,bs=BS-1,BS=1~4,bs=0~3。
当前图像边界强度为bs的DBR的垂直偏移0索引,dbr_v_offset0_minus1[bs]取值范围为是0~3(也可以是其他整数取值范围),DBR的垂直偏移0参数DbrVOffset0[bs]等于-(dbr_v_offset0_minus1[bs]+1)。若位流中没有dbr_v_offset0_minus1[bs],则DbrVOffset0[bs]的值等于0。
28.2、边界强度为bs的DBR垂直偏移1索引dbr_v_offset1_minus1[bs]
当前图像边界强度为bs的DBR的垂直偏移1索引,dbr_v_offset1_minus1[bs]取值范围为是0~3(也可以是其他整数取值范围),DBR的垂直偏移1参数DbrVOffset1[bs]等于dbr_v_offset0_minus1+1。若位流中没有dbr_v_offset1_minus1[bs],DbrVOffset1[bs]的值等于0。
28.3、边界强度为bs的DBR水平偏移0索引dbr_h_offset0_minus1[bs]
当前图像边界强度为bs的DBR的水平偏移0索引,dbr_h_offset0_minus1[bs]取值范围为是0~3(也可以是其他整数取值范围),DBR的水平偏移0参数DbrHOffset0[bs]等于-(dbr_h_offset0_minus1[bs]+1)。若位流中没有dbr_h_offset0_minus1[bs],DbrHOffset0[bs]的值等于0。
28.4、边界强度为bs的DBR水平偏移1索引dbr_h_offset1_minus1[bs]
当前图像边界强度为bs的DBR的水平偏移1索引,dbr_h_offset1_minus1[bs]取值范围为是0~3(也可以是其他整数取值范围),DBR的水平偏移1参数DbrHOffset1[bs]等于dbr_h_offset0_minus1[bs]+1。如果位流中没有dbr_h_offset1_minus1[bs],DbrHOffset1[bs]的值等于0。
实施例二十九
在实施例二十八的基础上
29.1、亮度分量DBR参数推导
若当前为垂直边界且PhDbrVEnableFlag为1,或当前为水平边界且PhDbrHEnableFlag为1,则PhDbrEnableFlag为1,否则PhDbrEnableFlag为0。
若为垂直滤波边界,dbr_th=DbrVThreshold,dbr_offset0[bs]=DbrVOffset0[bs],dbr_offset1[bs]=DbrVOffset1[bs],即增强滤波阈值为垂直增强滤波阈值,第二增强滤波偏移量为第二垂直增强滤波偏移量,第一增强滤波偏移量为第一垂直增强滤波偏移量;
若为水平滤波边界,dbr_th=DbrHThreshold,dbr_offset0[bs]=DbrHOffset0[bs],dbr_offset1[bs]=DbrHOffset1[bs],即增强滤波阈值为水平增强滤波阈值,第二增强滤波偏移量为第二水平增强滤波偏移量,第一增强滤波偏移量为第一水平增强滤波偏移量。
29.2、滤波过程:
亮度分量BS等于4时的边界滤波过程
边界滤波强度BS的值为4时,对p0、p1、p2和q0、q1、q2滤波的计算过程如下:
P0=(p2*3+p1*8+p0*10+q0*8+q1*3+16)>>5
P1=(p2*4+p1*5+p0*4+q0*3+8)>>4
P2=(p3*2+p2*2+p1*2+p0*1+q0*1+4)>>3
Q0=(p1*3+p0*8+q0*10+q1*8+q2×3+16)>>5
Q1=(p0*3+q0*4+q1*5+q2*4+8)>>4
Q2=(p0*1+q0*1+q1*2+q2*2+q3*2+4)>>3
边界滤波强度BS的值为3时,对p0、p1和q0、q1滤波的计算过程如下:
P0=(p2+(p1<<2)+(p0<<2)+(p0<<1)+(q0<<2)+q1+8)>>4
P1=((p2<<1)+p2+(p1<<3)+(p0<<2)+q0+8)>>4
Q0=(p1+(p0<<2)+(q0<<2)+(q0<<1)+(q1<<2)+q2+8)>>4
Q1=((q2<<1)+q2+(q1<<3)+(q0<<2)+p0+8)>>4
边界滤波强度BS的值为2时,对p0和q0滤波的计算过程如下:
P0=((p1<<1)+p1+(p0<<3)+(p0<<1)+(q0<<1)+q0+8)>>4
Q0=((p0<<1)+p0+(q0<<3)+(q0<<1)+(q1<<1)+q1+8)>>4
边界滤波强度BS的值为1时,对p0和q0滤波的计算过程如下:
P0=((p0<<1)+p0+q0+2)>>2
Q0=((q0<<1)+q0+p0+2)>>2
为了使滤波后的亮度分量的值更接近亮度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的亮度分量的值、亮度增强滤波阈值以及亮度增强滤波偏移量对亮度分量的值进行增强滤波处理。
示例性的,在上述滤波过程中,若PhDbrEnableFlag为1时,则:
若pi>Pi+dbr_th,即Pi-pi<-dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0[bs]);若pi<Pi–dbr_th,即Pi-pi>dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1[bs]),i=0,1,2;
若qi>Qi+dbr_th,即Qi-qi<-dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0[bs]);若qi<Qi–dbr_th,即Qi-qi>dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1[bs]),i=0,1,2。
实施例三十
在实施例二十一~实施例二十五任一实施例的基础上,对于亮度分量,可以基于位置确定增强滤波偏移量。
对于某一帧图像的每个滤波位置pos=0,1,2(L0/R0、L1/R1、L2/R2),均有不同的偏移值:dbr_v_offset0_minus1[pos]、dbr_v_offset1_minus1[pos]、dbr_h_offset0_minus1[pos]、dbr_h_offset1_minus1[pos]。
在图像头编码/解码如下语法:
Figure BDA0003453589230000541
Figure BDA0003453589230000551
示例性的,下面分别对各标志位的含义进行说明:
30.1、位置为pos的DBR垂直偏移0索引dbr_v_offset0_minus1[pos]
当前图像位置为pos的DBR的垂直偏移0索引,dbr_v_offset0_minus1[pos]取值范围为是0~3(也可以是其他整数取值范围),DBR的垂直偏移0参数DbrVOffset0[pos]等于-(dbr_v_offset0_minus1[pos]+1)。若位流中没有dbr_v_offset0_minus1[pos],则DbrVOffset0[pos]的值等于0。
30.2、位置为pos的DBR垂直偏移1索引dbr_v_offset1_minus1[pos]
当前图像位置为pos的DBR的垂直偏移1索引,dbr_v_offset1_minus1[pos]取值范围为是0~3(也可以是其他整数取值范围),DBR的垂直偏移1参数DbrVOffset1[pos]等于dbr_v_offset0_minus1+1。若位流中没有dbr_v_offset1_minus1[pos],则DbrVOffset1[pos]的值等于0。
30.3、位置为pos的DBR水平偏移0索引dbr_h_offset0_minus1[pos]
当前图像位置为pos的DBR的水平偏移0索引,dbr_h_offset0_minus1[pos]取值范围为是0~3(也可以是其他整数取值范围),DBR的水平偏移0参数DbrHOffset0[pos]等于-(dbr_h_offset0_minus1[pos]+1)。若位流中没有dbr_h_offset0_minus1[pos],则DbrHOffset0[pos]的值等于0。
30.4、位置为pos的DBR水平偏移1索引dbr_h_offset1_minus1[pos]
当前图像位置为pos的DBR的水平偏移1索引,dbr_h_offset1_minus1[pos]取值范围为是0~3(也可以是其他整数取值范围),DBR的水平偏移1参数DbrHOffset1[pos]等于dbr_h_offset0_minus1[pos]+1。若位流中没有dbr_h_offset1_minus1[pos],则DbrHOffset1[pos]的值等于0。
实施例三十一
在实施例三十的基础上
31.1、亮度分量DBR参数推导
若当前为垂直边界且PhDbrVEnableFlag为1,或当前为水平边界且PhDbrHEnableFlag为1,则PhDbrEnableFlag为1,否则PhDbrEnableFlag为0。
若为垂直滤波边界,dbr_th=DbrVThreshold,dbr_offset0[pos]=DbrVOffset0[pos],dbr_offset1[pos]=DbrVOffset1[pos],即增强滤波阈值为垂直增强滤波阈值,第二增强滤波偏移量为第二垂直增强滤波偏移量,第一增强滤波偏移量为第一垂直增强滤波偏移量;
若为水平滤波边界,dbr_th=DbrHThreshold,dbr_offset0[bs]=DbrHOffset0[pos],dbr_offset1[pos]=DbrHOffset1[pos],即增强滤波阈值为水平增强滤波阈值,第二增强滤波偏移量为第二水平增强滤波偏移量,第一增强滤波偏移量为第一水平增强滤波偏移量。
31.2、滤波过程:
亮度分量BS等于4时的边界滤波过程
边界滤波强度BS的值为4时,对p0、p1、p2和q0、q1、q2滤波的计算过程如下:
P0=(p2*3+p1*8+p0*10+q0*8+q1*3+16)>>5
P1=(p2*4+p1*5+p0*4+q0*3+8)>>4
P2=(p3*2+p2*2+p1*2+p0*1+q0*1+4)>>3
Q0=(p1*3+p0*8+q0*10+q1*8+q2×3+16)>>5
Q1=(p0*3+q0*4+q1*5+q2*4+8)>>4
Q2=(p0*1+q0*1+q1*2+q2*2+q3*2+4)>>3
边界滤波强度BS的值为3时,对p0、p1和q0、q1滤波的计算过程如下:
P0=(p2+(p1<<2)+(p0<<2)+(p0<<1)+(q0<<2)+q1+8)>>4
P1=((p2<<1)+p2+(p1<<3)+(p0<<2)+q0+8)>>4
Q0=(p1+(p0<<2)+(q0<<2)+(q0<<1)+(q1<<2)+q2+8)>>4
Q1=((q2<<1)+q2+(q1<<3)+(q0<<2)+p0+8)>>4
边界滤波强度BS的值为2时,对p0和q0滤波的计算过程如下:
P0=((p1<<1)+p1+(p0<<3)+(p0<<1)+(q0<<1)+q0+8)>>4
Q0=((p0<<1)+p0+(q0<<3)+(q0<<1)+(q1<<1)+q1+8)>>4
边界滤波强度BS的值为1时,对p0和q0滤波的计算过程如下:
P0=((p0<<1)+p0+q0+2)>>2
Q0=((q0<<1)+q0+p0+2)>>2
为了使滤波后的亮度分量的值更接近亮度分量的原始值,在按照上述方式进行边界滤波之后,还可以在使能增强滤波时,基于滤波前后的亮度分量的值、亮度增强滤波阈值以及亮度增强滤波偏移量对亮度分量的值进行增强滤波处理。
示例性的,若PhDbrEnableFlag为1时,则:
若pi>Pi+dbr_th,即Pi-pi<-dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset0[i]);若pi<Pi–dbr_th,即Pi-pi>dbr_th,则Pi'=clip((Pi+pi+1)>>1+dbr_offset1[i]),i=0,1,2;
若qi>Qi+dbr_th,即Qi-qi<-dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset0[i]);若qi<Qi–dbr_th,即Qi-qi>dbr_th,则Qi'=clip((Qi+qi+1)>>1+dbr_offset1[i]),i=0,1,2。
实施例三十二
在实施例二十一~实施例三十一任一实施例的基础上,在CTU级传递DBR的相关参数(包括增强滤波阈值和增强滤波偏移量),即每一个CTU,编码/解码一套DBR的相关参数。
实施例三十三
在实施例二十一~实施例三十一任一实施例的基础上,在CU级传递DBR的相关参数(包括增强滤波阈值和增强滤波偏移量),即每一个CU,编码/解码一套DBR的相关参数。
需要说明的是,上述针对亮度分量进行增强滤波的实施例对色度分量也适用,对色度分量进行增强滤波的具体实现与对亮度分量进行增强滤波的具体实现类似,本申请实施例在此不做赘述。
此外,在本申请上述实施例中,通过Pi'=clip((Pi+pi+1)>>1+dbr_offset0)实现对亮度分量(或色度分量)的值的增强滤波,即增强滤波后的亮度分量(或色度分量)的值等于滤波前的亮度分量(或色度分量)的值与滤波后的亮度分量(或色度分量)的值的平均值加上增强滤波偏移量,仅仅是本申请实施例中对亮度分量(或色度分量)的值进行增强滤波的一种实现方式,而并不是对本申请保护范围的限定,在本申请实施例中,也可以通过其他方式对亮度分量(或色度分量)的值进行增强滤波,例如,Pi'=Wi*Pi+wi*pi,即增强滤波后的亮度分量(或色度分量)的值等于滤波前的亮度分量(或色度分量)的值与滤波后的亮度分量(或色度分量)的值的加权和,Wi和wi分别为滤波后的亮度分量(或色度分量)的值的权重和滤波前的亮度分量(或色度分量)的值的权重,或者,还可以通过其他运算方式实现对亮度分量(或色度分量)的增强滤波。
Qi'同理可得。
此外,对增强滤波后的亮度分量(或色度分量)的值进行Clip操作,使其处于预设取值范围也仅仅是属于本申请实施例中的限定增强滤波后的亮度分量(或色度分量)的值的一种实现方式,而并不是对本申请保护范围的限定,在本申请实施例中,也可以通过其他方式限定增强滤波后的亮度分量(或色度分量)的值,例如,通过在编解码的其它过程中进行限制,使增强滤波后的亮度分量(或色度分量)的值不会超出预设取值范围,本申请实施例对此不再赘述。
下面结合测试数据对本申请实施例提供的增强滤波方案的效果进行说明。
客观测试结果:
如表1所示,相比已有去块滤波方案,增强滤波在Low delay(低延迟)B配置下的性能提升为0.62%,在编码端和解码端也几乎没有时间增加。
表1、增强滤波相比已有去块滤波方案的性能测试结果
Figure BDA0003453589230000581
主观测试结果如下:
Figure BDA0003453589230000582
可见,使用本申请实施例提供的技术方案,可以在编解码时间影响较小的情况下,显著提升编解码性能。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图9,为本申请实施例提供的一种增强滤波装置的硬件结构示意图。该增强滤波装置可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,通过读取并执行机器可读存储介质902中与增强滤波控制逻辑对应的机器可执行指令,处理器901可执行上文描述的增强滤波方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
在一些实施例中,如图10所示,从功能上划分,上述增强滤波装置可以包括:
确定单元,用于对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值;
增强单元,用于基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值。
作为一种可能的实施例,所述确定单元,还用于确定是否对所述当前块的亮度分量进行增强滤波处理;
所述增强单元,具体用于当所述确定单元确定对所述当前块的亮度分量进行增强滤波处理时,基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理。
作为一种可能的实施例,所述确定单元,具体用于:
基于序列头级增强滤波使能标志位的值,确定是否对所述当前块的亮度分量进行增强滤波处理;或,
基于帧级增强滤波使能标志位的值,确定是否对所述当前块的亮度分量进行增强滤波处理;或,
基于编码树单元CTU级增强滤波使能标志位的值,确定是否对所述当前块的亮度分量进行增强滤波处理;或,
基于编码单元CU级增强滤波使能标志位的值,确定是否对所述当前块的亮度分量进行增强滤波处理。
作为一种可能的实施例,所述确定单元,还用于确定是否启用所述第一滤波处理;并当确定启用所述第一滤波处理时,确定是否对所述当前块的亮度分量进行增强滤波处理。
作为一种可能的实施例,所述增强单元,具体用于基于所述第一值、所述第二值、亮度增强滤波整阈值以及亮度增强滤波偏移量,对该像素点的亮度分量的值进行增强滤波处理。
作为一种可能的实施例,所述增强单元,具体用于当所述第一值与所述第二值的差值大于第一亮度增强滤波阈值时,基于第一亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理;
当所述第一值与所述第二值的差值小于第二亮度增强滤波阈值时,基于第二亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理;
所述第一亮度增强滤波阈值大于所述第二亮度增强滤波阈值,且所述第一亮度增强滤波阈值与所述第二亮度增强滤波阈值互为相反数。
作为一种可能的实施例,不同边界强度BS值对应不同的第一亮度增强滤波偏移量;或/和,不同边界强度BS值对应不同的第二亮度增强滤波偏移量。
作为一种可能的实施例,不同位置的像素点对应的第一亮度增强滤波偏移量不完全相同;或/和,不同位置的像素点对应的第二亮度增强滤波偏移量不完全相同。
作为一种可能的实施例,所述当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第一亮度增强滤波偏移量不同,与该边界的距离相同的像素点,第一亮度增强滤波偏移量相同;或/和,所述当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第二亮度增强滤波偏移量不同,与该边界的距离相同的像素点,第二亮度增强滤波偏移量相同。
作为一种可能的实施例,如图11所示,所述装置还包括:
编码/解码单元,用于对亮度阈值索引进行编码/解码;所述亮度阈值索引用于确定所述第一亮度增强滤波阈值和所述第二亮度增强滤波阈值;
以及,对亮度偏移量索引进行编码/解码;所述亮度偏移量索引用于确定所述第一亮度增强滤波偏移量和所述第二亮度增强滤波偏移量。
作为一种可能的实施例,所述亮度阈值索引用于表征所述第一亮度增强滤波阈值或所述第二亮度增强滤波阈值在亮度阈值候选列表中的位置;
或,
所述第一亮度增强滤波阈值等于所述亮度阈值索引加1。
作为一种可能的实施例,所述亮度偏移量索引用于表征所述第一亮度增强滤波偏移量和所述第二亮度增强滤波偏移量在亮度偏移量候选列表中的位置;
或,
所述第一亮度增强滤波偏移量等于第一亮度增强滤波偏移量索引加1,所述第二亮度增强滤波偏移量等于第二亮度增强滤波偏移量索引与1二者之和的相反数。
作为一种可能的实施例,所述第一滤波处理包括垂直去块滤波处理;
当确定对所述当前块的亮度分量进行垂直去块增强滤波处理时,所述亮度增强滤波阈值包括亮度垂直去块增强滤波阈值,所述亮度增强滤波偏移量包括亮度垂直去块增强滤波偏移量;
或,
所述第一滤波处理包括水平去块滤波处理;
当确定对所述当前块的亮度分量进行水平去块增强滤波处理时,所述亮度增强滤波阈值包括亮度水平去块增强滤波阈值,所述亮度增强滤波偏移量包括亮度水平去块增强滤波偏移量。
作为一种可能的实施例,所述增强单元,还用于当所述第三值大于预设第一取值范围的上限时,将所述第三值设置为所述预设第一取值范围的上限;
当所述第三值小于预设第一取值范围的下限时,将所述第三值设置为所述预设第一取值范围的下限。
作为一种可能的实施例,所述确定单元,还用于对于所述当前块的任一满足所述第一滤波处理条件的像素点,确定该像素点的色度分量经过所述第一滤波处理后的第四值;
所述增强单元,还用于基于所述第四值与该像素点的色度分量未经过所述第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的色度分量的第六值。
作为一种可能的实施例,所述确定单元,还用于确定是否对所述当前块的色度分量进行增强滤波处理;
所述增强单元,具体用于当所述确定单元确定对所述当前块的色度分量进行增强滤波处理时,确定执行所述基于所述第四值与该像素点的色度分量未经过所述第一滤波处理的第五值,对该像素点的色度分量的值进行增强滤波处理的步骤。
作为一种可能的实施例,所述确定单元,具体用于:
基于序列头级增强滤波使能标志位的值,确定是否对所述当前块的色度分量进行增强滤波处理;或,
基于帧级增强滤波使能标志位的值,确定是否对所述当前块的色度分量进行增强滤波处理;或,
基于CTU级增强滤波使能标志位的值,确定是否对所述当前块的色度分量进行增强滤波处理;或,
基于CU级增强滤波使能标志位的值,确定是否对所述当前块的色度分量进行增强滤波处理。
作为一种可能的实施例,所述第一滤波处理为垂直去块滤波处理;
所述确定单元,具体用于确定是否对所述当前块的色度分量进行垂直去块增强滤波调整处理;
或,
所述第一滤波处理为水平去块滤波处理;
所述确定单元,具体用于确定是否对所述当前块的色度分量进行水平去块增强滤波调整处理。
在一些实施例中,如图12所示,从功能上划分,上述增强滤波装置可以包括:
确定单元,用于对于当前块的任一启动垂直滤波处理和水平滤波处理的像素点,确定该像素点的亮度分量经过垂直滤波处理后的垂直滤波像素值;
增强单元,用于基于所述垂直滤波像素值与该像素点的亮度分量未经过所述垂直滤波处理的像素值,对该像素点的亮度分量的值进行垂直增强滤波处理,以得到垂直增强滤波处理后的该像素点的亮度分量的垂直滤波增强像素值;
所述确定单元,还用于对所述垂直滤波增强像素值进行水平滤波处理,以得到该像素点的亮度分量的水平滤波像素值;
所述增强单元,还用于基于所述水平滤波像素值和所述垂直滤波增强像素值,对该像素点的亮度分量的值进行水平增强滤波处理,以得到水平增强滤波处理后的该像素点的亮度分量的水平滤波增强像素值。
作为一种可能的实施例,所述增强单元,具体用于基于所述垂直滤波像素值、所述未经过所述垂直滤波处理的像素值、亮度垂直增强滤波整阈值以及亮度垂直增强滤波偏移量,对该像素点的亮度分量的值进行垂直增强滤波处理;
所述增强单元,具体用于基于所述水平滤波像素值、所述垂直滤波增强像素值、亮度水平增强滤波阈值以及亮度水平增强滤波偏移量,对该像素点的亮度分量的值进行水平增强滤波处理。
作为一种可能的实施例,所述增强单元,具体用于当所述垂直滤波像素值与所述未经过所述垂直滤波处理的像素值的差值大于第一亮度垂直增强滤波阈值时,基于第一亮度垂直增强滤波偏移量对该像素点的亮度分量的值进行垂直增强滤波处理;
当所述垂直滤波像素值与所述未经过所述垂直滤波处理的像素值的差值小于第二亮度垂直增强滤波阈值时,基于第二亮度垂直增强滤波偏移量对该像素点的亮度分量的值进行垂直增强滤波处理;
所述第一亮度垂直增强滤波阈值大于所述第二亮度垂直增强滤波阈值,且所述第一亮度垂直增强滤波阈值与所述第二亮度垂直增强滤波阈值互为相反数;
或/和,
所述增强单元,具体用于当所述水平滤波像素值与所述垂直滤波增强像素值的差值大于第一亮度水平增强滤波阈值时,基于第一亮度水平增强滤波偏移量对该像素点的亮度分量的值进行水平增强滤波处理;
当所述水平滤波像素值与所述垂直滤波增强像素值的差值小于第二亮度水平增强滤波阈值时,基于第二亮度水平增强滤波偏移量对该像素点的亮度分量的值进行水平增强滤波处理;
所述第一亮度水平增强滤波阈值大于所述第二亮度水平增强滤波阈值,且所述第一亮度水平增强滤波阈值与所述第二亮度水平增强滤波阈值互为相反数。
作为一种可能的实施例,所述垂直滤波处理包括垂直去块滤波处理;
所述水平滤波处理包括水平去块滤波处理。
在一些实施例中,本申请还提供了一种摄像机设备,包括上述任一实施例中的增强滤波装置,该装置可以应用在编码装置中,也可以用在解码装置中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种增强滤波方法,其特征在于,包括:
对于当前块的任一满足第一滤波处理条件的像素点,确定该像素点的亮度分量经过第一滤波处理后的第一值;
基于帧级增强滤波使能标志位的值,确定是否对所述当前块的亮度分量进行增强滤波处理;其中,所述帧级增强滤波使能标志位用于确定对应图像的亮度分量是否使能增强滤波;
当确定对所述当前块的亮度分量进行增强滤波处理时,基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,以得到增强滤波处理后的该像素点的亮度分量的第三值;
所述基于所述第一值与该像素点的亮度分量未经过所述第一滤波处理的第二值,对该像素点的亮度分量的值进行增强滤波处理,包括:
当所述第一值与所述第二值的差值大于第一亮度增强滤波阈值时,基于第一亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理;
当所述第一值与所述第二值的差值小于第二亮度增强滤波阈值时,基于第二亮度增强滤波偏移量对该像素点的亮度分量的值进行增强滤波处理;
所述第一亮度增强滤波阈值大于所述第二亮度增强滤波阈值。
2.根据权利要求1所述的方法,其特征在于,所述确定是否对所述当前块的亮度分量进行增强滤波处理之前,还包括:
确定是否启用所述第一滤波处理;
当确定启用所述第一滤波处理时,确定执行所述确定是否对所述当前块的亮度分量进行增强滤波处理的步骤。
3.根据权利要求1所述的方法,其特征在于,所述第一亮度增强滤波阈值与所述第二亮度增强滤波阈值互为相反数。
4.根据权利要求3所述的方法,其特征在于,不同边界强度BS值对应不同的第一亮度增强滤波偏移量;或/和,不同边界强度BS值对应不同的第二亮度增强滤波偏移量。
5.根据权利要求3所述的方法,其特征在于,不同位置的像素点对应的第一亮度增强滤波偏移量不完全相同;或/和,不同位置的像素点对应的第二亮度增强滤波偏移量不完全相同。
6.根据权利要求5所述的方法,其特征在于,所述当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第一亮度增强滤波偏移量不同,与该边界的距离相同的像素点,第一亮度增强滤波偏移量相同;或/和,所述当前块同一边界两侧的像素点中,与该边界的距离不同的像素点,第二亮度增强滤波偏移量不同,与该边界的距离相同的像素点,第二亮度增强滤波偏移量相同。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对亮度阈值索引进行编码/解码;所述亮度阈值索引用于确定所述第一亮度增强滤波阈值和所述第二亮度增强滤波阈值;
以及,对亮度偏移量索引进行编码/解码;所述亮度偏移量索引用于确定所述第一亮度增强滤波偏移量和所述第二亮度增强滤波偏移量。
8.根据权利要求7所述的方法,其特征在于,
所述第一亮度增强滤波阈值等于所述亮度阈值索引加1;
所述第一亮度增强滤波偏移量等于第一亮度增强滤波偏移量索引加1,所述第二亮度增强滤波偏移量等于第二亮度增强滤波偏移量索引与1二者之和的相反数。
9.根据权利要求1所述的方法,其特征在于,所述第一滤波处理包括垂直去块滤波处理;
当确定对所述当前块的亮度分量进行垂直去块增强滤波处理时,所述亮度增强滤波阈值包括亮度垂直去块增强滤波阈值,所述亮度增强滤波偏移量包括亮度垂直去块增强滤波偏移量;
或,
所述第一滤波处理包括水平去块滤波处理;
当确定对所述当前块的亮度分量进行水平去块增强滤波处理时,所述亮度增强滤波阈值包括亮度水平去块增强滤波阈值,所述亮度增强滤波偏移量包括亮度水平去块增强滤波偏移量。
10.根据权利要求1所述的方法,其特征在于,所述对该像素点的亮度分量的值进行增强滤波处理之后,还包括:
当所述第三值大于预设第一取值范围的上限时,将所述第三值设置为所述预设第一取值范围的上限;
当所述第三值小于预设第一取值范围的下限时,将所述第三值设置为所述预设第一取值范围的下限。
11.一种增强滤波装置,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1-10任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述存储介质内存储有能够被处理器执行的机器可执行指令,所述机器可执行指令被处理器执行时实现如权利要求1-10任一项所述的方法。
CN202111673093.0A 2020-09-15 2020-09-15 增强滤波方法、装置及机器可读存储介质 Active CN114222119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111673093.0A CN114222119B (zh) 2020-09-15 2020-09-15 增强滤波方法、装置及机器可读存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010970776.1A CN114189683B (zh) 2020-09-15 2020-09-15 增强滤波方法及装置
CN202111673093.0A CN114222119B (zh) 2020-09-15 2020-09-15 增强滤波方法、装置及机器可读存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010970776.1A Division CN114189683B (zh) 2020-09-15 2020-09-15 增强滤波方法及装置

Publications (2)

Publication Number Publication Date
CN114222119A CN114222119A (zh) 2022-03-22
CN114222119B true CN114222119B (zh) 2022-12-23

Family

ID=80600900

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111673093.0A Active CN114222119B (zh) 2020-09-15 2020-09-15 增强滤波方法、装置及机器可读存储介质
CN202010970776.1A Active CN114189683B (zh) 2020-09-15 2020-09-15 增强滤波方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010970776.1A Active CN114189683B (zh) 2020-09-15 2020-09-15 增强滤波方法及装置

Country Status (1)

Country Link
CN (2) CN114222119B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117834925A (zh) * 2023-12-27 2024-04-05 北京中星天视科技有限公司 压缩后视频质量增强方法、装置、电子设备和可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012042821A1 (ja) * 2010-09-27 2012-04-05 株式会社島津製作所 画像強調処理方法およびそれを用いた画像強調処理装置
CN110495168A (zh) * 2017-04-06 2019-11-22 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012071417A1 (en) * 2010-11-24 2012-05-31 Thomson Licensing Adaptive loop filtering
US20190297320A1 (en) * 2016-05-13 2019-09-26 Sharp Kabushiki Kaisha Image decoding device and image encoding device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012042821A1 (ja) * 2010-09-27 2012-04-05 株式会社島津製作所 画像強調処理方法およびそれを用いた画像強調処理装置
CN110495168A (zh) * 2017-04-06 2019-11-22 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法

Also Published As

Publication number Publication date
CN114222119A (zh) 2022-03-22
CN114189683A (zh) 2022-03-15
CN114189683B (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
CN107197256B (zh) 用于对图像的序列进行编码和解码的方法和装置
KR101981905B1 (ko) 인코딩 방법 및 장치, 디코딩 방법 및 장치, 및 컴퓨터 판독가능 저장 매체
CN114125445B (zh) 解码方法、装置、设备及机器可读存储介质
CN114640847B (zh) 编解码方法、装置及其设备
CN114339223B (zh) 解码方法、装置、设备及机器可读存储介质
CN114222119B (zh) 增强滤波方法、装置及机器可读存储介质
CN113891075B (zh) 滤波处理方法及装置
CN113709477B (zh) 编码方法、解码方法、装置及机器可读存储介质
CN114339224B (zh) 图像增强方法、装置及机器可读存储介质
CN113132724A (zh) 编码、解码方法、装置及其设备
RU2803189C1 (ru) Способ и устройство для улучшения качества изображения
RU2810607C1 (ru) Способ и устройство для улучшения изображения
RU2817405C1 (ru) Способ, оборудование и устройства для кодирования и декодирования
KR101366088B1 (ko) 인트라 예측 부호화, 복호화 방법 및 장치
CN117546466A (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: 40064081

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant