1.本申请涉及编解码技术领域,尤其是涉及一种编码、解码方法、装置及其设备。
背景技术:2.为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码可以包括帧内编码和帧间编码。进一步的,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
3.在相关技术中,环路滤波用于减少图像的块效应或者图像效果不佳等问题,用来改善图像的质量,而ccalf作为环路滤波的一种实现方式,可以采用ccalf来实现环路滤波。但是,相关技术中的ccalf的滤波效果不佳,编码性能比较差。
技术实现要素:4.本申请提供一种编码、解码方法、装置及其设备,能够提高编码性能。
5.本申请提供一种编码方法,所述方法包括:
6.若序列级参数集sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则在所述sps级语法中编码ccalf序列级控制开关标志位。
7.本申请提供一种解码方法,所述方法包括:
8.若序列级参数集sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则从所述sps级语法中解码ccalf序列级控制开关标志位。
9.本申请提供一种编码装置,所述装置包括:
10.确定模块,用于确定序列级参数集sps级语法的alf序列级控制开关标志位,是否表示当前序列允许启用alf;
11.编码模块,用于当sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf时,在所述sps级语法中编码ccalf序列级控制开关标志位。
12.本申请提供一种解码装置,所述装置包括:
13.确定模块,用于确定序列级参数集sps级语法的alf序列级控制开关标志位,是否表示当前序列允许启用alf;
14.解码模块,用于当sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf时,则从所述sps级语法中解码ccalf序列级控制开关标志位。
15.本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
16.所述处理器用于执行机器可执行指令,以实现如下步骤:
17.若序列级参数集sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则在所述sps级语法中编码ccalf序列级控制开关标志位。
18.本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
19.所述处理器用于执行机器可执行指令,以实现如下步骤:
20.若序列级参数集sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则从所述sps级语法中解码ccalf序列级控制开关标志位。
21.由以上技术方案可见,本申请实施例中,在复杂度较低的情况下,可以获得较高性能的提升。高层语法的设计,提供ccalf使用的灵活性。提高ccalf的环路滤波的准确性,提高ccalf的环路滤波效果,提高编码性能,使当前处理单元的重构值更接近原始像素。
附图说明
22.图1是编解码框架的示意图;
23.图2是本申请一种实施方式中的编码方法的流程图;
24.图3是本申请一种实施方式中的解码方法的流程图;
25.图4是本申请一种实施方式中的编解码方法的流程图;
26.图5a-图5d是本申请一种实施方式中的ccalf滤波处理的示意图;
27.图6a-图6n是本申请一种实施方式中的相邻像素位置的示意图;
28.图7是本申请一种实施方式中的alf的相邻像素位置的示意图;
29.图8a是本申请一种实施方式中的解码装置的结构示意图;
30.图8b是本申请一种实施方式中的编码装置的结构示意图;
31.图8c是本申请一种实施方式中的解码端设备的硬件结构图;
32.图8d是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
33.在本申请实施例中使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但是,这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”,或“当
……
时”,或“响应于确定”。
34.本申请实施例提出一种编码、解码方法、装置及其设备,可以涉及如下概念:
35.编解码框架:参见图1所示,为编解码框架的示意图。可以使用编解码框架实现本申请实施例的编码端处理流程,可以使用编解码框架实现本申请实施例的解码端处理流程。示例性的,参见图1所示,完整的编解码框架可以包括但不限于:预测,变换,量化,熵编码器,反变换、反量化、重建、环内滤波、参考图像缓冲器等模块,预测可以分为帧内预测和帧间预测(即运动估计/运动补偿)。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
36.帧内预测:利用视频空间域的相关性,使用当前块的已编码块进行预测,以达到去除视频空域冗余的目的。帧内预测规定了多种预测模式,每种预测模式对应一种纹理方向(dc模式除外),例如,若图像纹理呈现水平状排布,则水平预测模式可以更好的预测图像信息。
37.帧间预测:基于视频时域的相关性,由于视频序列包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计(motion estimation,me)。
38.变换:在视频编码过程中,变换是指将以空间域中像素形式描述的图像转换至变换域的图像,并以变换系数的形式来表示。由于绝大多数图像都含有较多平坦区域和缓慢变化的区域,因此,适当的变换过程,可以使图像能量在空间域的分散分布,转换为在变换域的相对集中分布,从而能够去除信号之间的频域相关性,配合量化过程,可以有效压缩码流。
39.环路滤波:环路滤波用于减少图像的块效应或者图像效果不佳等问题,用来改善图像质量。例如,环路滤波可以包括但不限于去块滤波(deblocking filter),sao(sample adaptive offset,样点自适应补偿)滤波,alf(adaptive loop filter,自适应环路滤波器)滤波,ccalf(cross-component adaptive loop filter,跨分量自适应环路滤波器)滤波等。
40.alf的基本原理:通过滤波器使滤波后的重建图像块的像素值更接近于其原始像素的像素值。ccalf的基本原理:通过对应亮度值的滤波,获得色度重建块(一般已经经过alf滤波后的色度值)的补偿像素值,使其更接近于色度原始图像块的像素值。
41.标记位编码(flag coding):在视频编码中,存在很多模式。对于某个块,可能采用其中一种模式。为了表示采用何种模式,每个块需要通过编码对应的标记位来进行标记。比如说,针对编码端来说,通过编码端决策,确定该标记位的值,然后对标记位的值进行编码传递到解码端。针对解码端来说,通过解析标记位的值,确定对应模式是否启用。
42.序列级参数集(sps,sequence parameter set):该集合存在确定整个视频序列(即多帧视频图像)中是否允许某些工具(方法)开关的标记位。若标记位为1,则视频序列中允许启用对应工具(方法);否则,该工具(方法)无法在该序列的编码过程中启用。
43.图像参数集(pps,picture parameter set):该集合中存在确定某个图片中是否允许某些工具(方法)开关的标记位。若该标记位为1,则该图片中允许启用对应工具(方法);否则,该工具(方法)无法在该图片的编码过程中启用。
44.图像头(picture header):针对某一帧图像的共同信息,不同于图像参数集(可被不同图像使用),图像头中保存的是仅针对当前图像的共同信息。例如,当当前图像包含多个slice时,所述多个slice可以通用图像头中的信息。图像头存在确定当前图像中是否允许某些工具(方法)开关的标记位。若标记位为1,则当前图像允许启用对应工具(方法);否则,该工具(方法)无法在当前图像的编码过程中启用。
45.片头(slice header):一帧图像可以包含1个slice或多个slice。针对每个slice,在该slice的头信息中,存在确定slice中是否允许某些工具(方法)开关的标记位。若标记
位为1,则slice中允许启用对应工具(方法);否则,该工具(方法)无法在该slice的编码过程中启用。
46.高层语法:用于表示是否允许启用某些工具(方法),即通过高层语法允许启用某些工具(方法),或者禁止启用某些工具(方法)。示例性的,参见上述介绍,高层语法可以是序列参数集级的高层语法,或者图像参数集级的高层语法,或者片头级的高层语法,或者图像头级的高层语法,对此高层语法不做限制,只要能够实现上述功能即可。
47.率失真原则(rate-distortion optimized):评价编码效率的有两大指标:码率和psnr(peak signal to noise ratio,峰值信噪比),比特流越小,则压缩率越大,psnr越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:j(mode)=d+λ*r,其中,d表示distortion(失真),通常可以使用sse指标来进行衡量,sse是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,r就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
48.相关技术中,环路滤波用于减少图像的块效应或者图像效果不佳等问题,用来改善图像质量,ccalf是环路滤波的一种实现方式,可以采用ccalf实现环路滤波。但是,相关技术的ccalf的滤波效果不佳,编码性能比较差。针对上述发现,针对ccalf的滤波过程,本申请实施例中提出一种编解码方法,能够提高ccalf的滤波效果,提高编码性能。
49.以下结合具体实施例,对本申请实施例中的编解码方法进行详细说明。
50.实施例1:本申请实施例中提出一种编码方法,可以应用于编码端,该方法可以包括:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则在sps级语法中编码ccalf序列级控制开关标志位,ccalf序列级控制开关标志位表示当前序列允许启用ccalf,或者,ccalf序列级控制开关标志位表示当前序列不允许启用ccalf。
51.示例性的,若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且当前序列存在色度分量,则在sps级语法中编码ccalf序列级控制开关标志位。
52.示例性的,若sps级语法的alf序列级控制开关标志位表示当前序列不允许启用alf,则禁止在sps级语法中编码ccalf序列级控制开关标志位。比如说,不需要在sps级语法中编码ccalf序列级控制开关标志位,直接表示当前序列不允许启用ccalf。
53.参见图2所示,为该编码方法的流程示意图,可以应用于编码端,该方法可以包括:
54.步骤201,判断sps级语法的alf序列级控制开关标志位是否表示当前序列允许启用alf。如果是,则可以执行步骤202;如果否,则可以执行步骤204。
55.步骤202,判断当前序列是否存在色度分量。
56.如果是,则可以执行步骤203;如果否,则可以执行步骤204。
57.步骤203,在sps级语法中编码ccalf序列级控制开关标志位。
58.步骤204,禁止在sps级语法中编码ccalf序列级控制开关标志位。
59.示例性的,在sps级语法中编码ccalf序列级控制开关标志位时,若ccalf的通用限制信息语法表示不允许启用ccalf,则ccalf序列级控制开关标志位为第一取值。或者,若ccalf的通用限制信息语法表示允许启用ccalf,则ccalf序列级控制开关标志位为第一取值或者第二取值。比如说,第一取值表示当前序列不允许启用ccalf;第二取值表示当前序列允许启用ccalf。例如,第一取值可以为0,第二取值可以为1;或者,第一取值可以为1,第二取值可以为0;当然,上述只是示例,对此第一取值和第二取值不做限制。
60.以下结合几个具体应用场景,对本申请实施例的上述技术方案进行说明。
61.应用场景1:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则在sps级语法中编码ccalf序列级控制开关标志位。
62.应用场景2:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且当前序列存在色度分量,则在sps级语法中编码ccalf序列级控制开关标志位。
63.应用场景3:若sps级语法的alf序列级控制开关标志位表示当前序列不允许启用alf,则禁止在sps级语法中编码ccalf序列级控制开关标志位。
64.应用场景4:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且当前序列不存在色度分量,则禁止在sps级语法中编码ccalf序列级控制开关标志位。
65.应用场景5:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则在图像头级语法中编码ccalf图像头级控制开关标志位。
66.示例性的,在图像头级语法中编码alf图像头级控制开关标志位,可以包括:在图像头级语法中编码alf图像头级语法信息,该alf图像头级语法信息包括alf图像头级控制开关标志位,当然,还可以包括其它与alf有关的信息,对此不做限制。
67.示例性的,在图像头级语法中编码ccalf图像头级控制开关标志位,可以包括:在图像头级语法中编码ccalf图像头级语法信息,该ccalf图像头级语法信息包括ccalf图像头级控制开关标志位,当然,还可以包括其它与ccalf有关的信息,对此不做限制。
68.应用场景6:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
69.应用场景7:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
70.示例性的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
71.应用场景8:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则可以在片头级语法中编码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则可以在片头级语法中编码ccalf片头级控制开关标志位。
72.示例性的,在片头级语法中编码alf片头级控制开关标志位,可以包括:在片头级
语法中编码alf片头级语法信息,该alf片头级语法信息包括alf片头级控制开关标志位,当然,还可以包括其它与alf有关的信息,对此不做限制。
73.示例性的,在片头级语法中编码ccalf片头级控制开关标志位,可以包括:在片头级语法中编码ccalf片头级语法信息,该ccalf片头级语法信息包括ccalf片头级控制开关标志位,当然,还可以包括其它与ccalf有关的信息,对此不做限制。
74.应用场景9:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则可以在片头级语法中编码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则可以禁止在片头级语法中编码ccalf片头级控制开关标志位。
75.应用场景10:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则可以在片头级语法中编码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则可以禁止在片头级语法中编码ccalf片头级控制开关标志位。
76.示例性的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
77.应用场景11:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则在图像头级语法中编码ccalf图像头级控制开关标志位。
78.应用场景12:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
79.应用场景13:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
80.示例性的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
81.应用场景14:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则可以在片头级语法中编码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则可以在片头级语法中编码ccalf片头级控制开关标志位。
82.应用场景15:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则可以在片头级语法中编码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则可以禁止在片头级语法中编码ccalf片头级控制开关标志位。
83.应用场景16:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则可以在片头级语法中编码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则可以禁止在片头级语法中编码ccalf片头级控制开关标志位。
84.示例性的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止在图像头级语法中编码ccalf图像头级控制开关标志位。
85.由以上技术方案可见,本申请实施例中,在复杂度较低的情况下,可以获得较高性能的提升。高层语法的设计,提供ccalf使用的灵活性。提高ccalf的环路滤波的准确性,提高ccalf的环路滤波效果,提高编码性能,使当前处理单元的重构值更接近原始像素。
86.实施例2:本申请实施例中提出一种解码方法,可以应用于解码端,该方法可以包括:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则从sps级语法中解码ccalf序列级控制开关标志位,ccalf序列级控制开关标志位表示当前序列允许启用ccalf,或者,ccalf序列级控制开关标志位表示当前序列不允许启用ccalf。
87.示例性的,若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且当前序列存在色度分量,则从sps级语法中解码ccalf序列级控制开关标志位。
88.示例性的,若sps级语法的alf序列级控制开关标志位表示当前序列不允许启用alf,则禁止从sps级语法中解码ccalf序列级控制开关标志位。比如说,不需要从sps级语法中解码ccalf序列级控制开关标志位,直接确定当前序列不允许启用ccalf。
89.参见图3所示,为该解码方法的流程示意图,可以应用于解码端,该方法可以包括:
90.步骤301,判断sps级语法的alf序列级控制开关标志位是否表示当前序列允许启用alf。如果是,则可以执行步骤302;如果否,则可以执行步骤304。
91.步骤302,判断当前序列是否存在色度分量。
92.如果是,则可以执行步骤303;如果否,则可以执行步骤304。
93.步骤203,从sps级语法中解码ccalf序列级控制开关标志位。
94.步骤204,禁止从sps级语法中解码ccalf序列级控制开关标志位。
95.示例性的,在从sps级语法中解码ccalf序列级控制开关标志位时,若ccalf的通用限制信息语法表示不允许启用ccalf,则直接确定ccalf序列级控制开关标志位为第一取值;或者,若ccalf的通用限制信息语法表示允许启用ccalf,则从sps级语法中解码ccalf序列级控制开关标志位为第一取值或者第二取值。比如说,第一取值表示当前序列不允许启用ccalf;第二取值表示当前序列允许启用ccalf。例如,第一取值可以为0,第二取值可以为1;或者,第一取值可以为1,第二取值可以为0;当然,上述只是示例。
96.以下结合几个具体应用场景,对本申请实施例的上述技术方案进行说明。
97.应用场景1:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用
alf,则从sps级语法中解码ccalf序列级控制开关标志位。
98.应用场景2:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且当前序列存在色度分量,则从sps级语法中解码ccalf序列级控制开关标志位。
99.应用场景3:若sps级语法的alf序列级控制开关标志位表示当前序列不允许启用alf,则禁止从sps级语法中解码ccalf序列级控制开关标志位。
100.应用场景4:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且当前序列不存在色度分量,则禁止从sps级语法中解码ccalf序列级控制开关标志位。
101.应用场景5:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则从图像头级语法中解码ccalf图像头级控制开关标志位。
102.应用场景6:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
103.应用场景7:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
104.示例性的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
105.应用场景8:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则可以从片头级语法中解码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则可以从片头级语法中解码ccalf片头级控制开关标志位。
106.应用场景9:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则可以从片头级语法中解码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则可以禁止从片头级语法中解码ccalf片头级控制开关标志位。
107.应用场景10:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则可以从片头级语法中解码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则可以禁止从片头级语法中解码ccalf片头级控制开关标志位。
108.示例性的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
109.应用场景11:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则可以从图像头级语法中解码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则可以从图像头级语法中解码ccalf图像头级控制开关标志位。
110.应用场景12:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
111.应用场景13:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位。进一步的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
112.示例性的,若图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
113.应用场景14:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则可以从片头级语法中解码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则可以从片头级语法中解码ccalf片头级控制开关标志位。
114.应用场景15:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则可以从片头级语法中解码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且sps级语法的ccalf序列级控制开关标志位表示当前序列不允许启用ccalf,则可以禁止从片头级语法中解码ccalf片头级控制开关标志位。
115.应用场景16:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则可以从片头级语法中解码alf片头级控制开关标志位。进一步的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则可以禁止从片头级语法中解码ccalf片头级控制开关标志位。
116.示例性的,若片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则无论sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,还是不允许启用ccalf,均禁止从图像头级语法中解码ccalf图像头级控制开关标志位。
117.由以上技术方案可见,本申请实施例中,在复杂度较低的情况下,可以获得较高性能的提升。高层语法的设计,提供ccalf使用的灵活性。提高ccalf的环路滤波的准确性,提
128.实施例6:针对实施例1和实施例2,图像头中与alf(包括ccalf)相关的语法可以参见表4所示。sps_alf_enabled_flag表示alf序列级控制开关标志位,alf_present_in_ph_flag表示alf相关的语法存在于图像头或片头(本例中存在于图像头),pic_alf_enabled_flag表示alf图像头级控制开关标志位,sps_ccalf_enabled_flag表示ccalf序列级控制开关标志位,pic_cross_component_alf_cb_enabled_flag和/或pic_cross_component_alf_cr_enabled_flag表示ccalf图像头级控制开关标志位。比如说,ccalf图像头级控制开关标志位可以包括pic_cross_component_alf_cb_enabled_flag和/或pic_cross_component_alf_cr_enabled_flag。
129.表4
[0130][0131][0132]
参见表4所示,在sps_alf_enabled_flag且alf_present_in_ph_flag为1时,在图像头中编码/解码alf在图像头的相关语法。在确定编码/解码alf在图像头的相关语法时,可以通过判断sps_ccalf_enabled_flag来判断是否编码/解码ccalf在图像头的相关语法。
[0133]
示例性的,alf在图像头的相关语法,可以包括但不限于:
[0134]
pic_alf_enabled_flag:表示该图像中的块是否允许进行alf;
[0135]
pic_num_alf_aps_ids_luma:表示该图像中的块亮度alf滤波系数的套数;
[0136]
pic_alf_aps_id_luma[i]:表示该图像中的块中第i套亮度alf滤波系数的索引值;
[0137]
pic_alf_chroma_idc:表示该图像中cb或cr是否允许进行alf;
[0138]
pic_alf_aps_id_chroma:表示该图像中的块中色度alf滤波系数的索引值;
[0139]
以及,ccalf在图像头的相关语法。
[0140]
示例性的,ccalf在图像头的相关语法,可以包括但不限于:
[0141]
pic_cross_component_alf_cb_enabled_flag:表示图像中的块是否允许进行cb分量的ccalf;
[0142]
pic_cross_component_alf_cb_aps_id:表示该图像中的块进行cb分量的ccalf时所采用的滤波系数索引值;
[0143]
pic_cross_component_alf_cr_enabled_flag:表示图像中的块是否允许进行cr分量的ccalf;
[0144]
pic_cross_component_alf_cr_aps_id:表示该图像中的块进行cr分量的ccalf时所采用的滤波系数索引值。
[0145]
实施例7:针对实施例1和实施例2,片头中与alf(包括ccalf)相关的语法可以参见表5所示。sps_alf_enabled_flag表示alf序列级控制开关标志位,alf_present_in_ph_flag表示alf相关的语法存在于图像头或片头(本例中存在于片头),slice_alf_enabled_flag表示alf片头级控制开关标志位,sps_ccalf_enabled_flag表示ccalf序列级控制开关标志位,slice_cross_component_alf_cb_enabled_flag和/或slice_cross_component_alf_cr_enabled_flag表示ccalf片头级控制开关标志位。比如说,ccalf片头级控制开关标志位可以包括slice_cross_component_alf_cb_enabled_flag和/或slice_cross_component_alf_cr_enabled_flag。
[0146]
表5
[0147][0148]
参见表5所示,在sps_alf_enabled_flag为1且alf_present_in_ph_flag为0时,在片头中编码/解码alf在片头的相关语法。在确定编码/解码在片头的相关语法时,可以通过判断sps_ccalf_enabled_flag来判断是否编码/解码ccalf在片头的相关语法。
[0149]
示例性的,alf在片头的相关语法,可以包括但不限于:
[0150]
slice_alf_enabled_flag:表示该片中的块是否允许进行alf;
[0151]
slice_num_alf_aps_ids_luma:表示该片中的块亮度alf滤波系数的套数;
[0152]
slice_alf_aps_id_luma[i]:表示该片中的块中第i套亮度alf滤波系数的索引值;
[0153]
slice_alf_chroma_idc:表示该片中cb或cr是否允许进行alf;
[0154]
slice_alf_aps_id_chroma:表示该片中的块中色度alf滤波系数的索引值;
[0155]
以及,ccalf在片头的相关语法。
[0156]
示例性的,ccalf在片头的相关语法,可以包括但不限于:
[0157]
slice_cross_component_alf_cb_enabled_flag:表示片中的块是否允许进行cb分量的ccalf;
[0158]
slice_cross_component_alf_cb_aps_id:表示该片中的块进行cb分量的ccalf时所采用的滤波系数索引值;
[0159]
slice_cross_component_alf_cr_enabled_flag:表示该片中的块是否允许进行cr分量的ccalf;
[0160]
slice_cross_component_alf_cr_aps_id:表示该片中的块进行cr分量的ccalf时
所采用的滤波系数索引值。
[0161]
实施例8:针对实施例1和实施例2,与实施例5不同的是,在ccalf技术的图像头语法中,pic_alf_enabled_present_flag表示图像头语法,pic_alf_enabled_present_flag为1,表示与alf相关(包括ccalf)的语法存在于图像头(picture header),即在图像头编码/解码相关信息,具体语法参见后续实施例的图像头语法表。pic_alf_enabled_present_flag为0,表示与alf相关(包括ccalf)的语法存在于片头(slice header),即在片头编码/解码相关信息,具体语法参见后续实施例的片头语法表。当然,上述数值0和数值1只是一个示例,例如,pic_alf_enabled_present_flag为0表示与alf相关(包括ccalf)的语法存在于图像头,pic_alf_enabled_present_flag为1表示与alf相关(包括ccalf)的语法存在于片头。
[0162]
在实施例8中,与上述实施例5不同的是,没有pps级的参数alf_present_in_ph_flag,替代该pps级的参数的是在图像头进行编码的参数pic_alf_enabled_present_flag。示例性的,pic_alf_enabled_present_flag与alf_present_in_ph_flag表示的含义相同。
[0163]
实施例9:针对实施例1和实施例2,图像头中与alf(包括ccalf)相关的语法可以参见表6所示。sps_alf_enabled_flag表示alf序列级控制开关标志位,pic_alf_enabled_present_flag表示alf相关的语法存在于图像头或片头(本例中存在于图像头),pic_alf_enabled_flag表示alf图像头级控制开关标志位,sps_ccalf_enabled_flag表示ccalf序列级控制开关标志位,pic_cross_component_alf_cb_enabled_flag和/或pic_cross_component_alf_cr_enabled_flag表示ccalf图像头级控制开关标志位。
[0164]
表6
[0165][0166][0167]
参见表6所示,在sps_alf_enabled_flag且pic_alf_enabled_present_flag为1时,在图像头中编码/解码alf在图像头的相关语法。在确定编码/解码alf在图像头的相关语法时,可以通过判断sps_ccalf_enabled_flag来判断是否编码/解码ccalf在图像头的相关语法。
[0168]
示例性的,alf在图像头的相关语法,可以参见实施例6所示,在此不再重复赘述。
[0169]
示例性的,ccalf在图像头的相关语法,可以参见实施例6所示,在此不再重复赘述。
[0170]
实施例10:针对实施例1和实施例2,片头中与alf(包括ccalf)相关的语法可以参见表7所示。sps_alf_enabled_flag表示alf序列级控制开关标志位,pic_alf_enabled_present_flag表示alf相关的语法存在于图像头或片头(本例中存在于片头),slice_alf_enabled_flag表示alf片头级控制开关标志位,sps_ccalf_enabled_flag表示ccalf序列级控制开关标志位,slice_cross_component_alf_cb_enabled_flag和/或slice_cross_component_alf_cr_enabled_flag表示ccalf片头级控制开关标志位。
[0171]
表7
[0172][0173]
参见表7所示,在sps_alf_enabled_flag为1且pic_alf_enabled_present_flag为0时,在片头中编码/解码alf在片头的相关语法。在确定编码/解码alf在片头的相关语法时,可以通过判断sps_ccalf_enabled_flag来判断是否编码/解码ccalf在片头的相关语法。
[0174]
示例性的,alf在片头的相关语法,可以参见实施例7所示,在此不再重复赘述。
[0175]
示例性的,ccalf在片头的相关语法,可以参见实施例7所示,在此不再重复赘述。
[0176]
在上述实施例3-实施例10中,u(1)表示采用1个比特进行编解码,u(n)表示n位的无符号整数,采用n个比特进行编解码,当然,u(n)只是一个示例,对此不做限制。
[0177]
示例性的,上述实施例3-实施例10可以任意组合,如实施例3和实施例4可以组合;实施例3、实施例5-实施例7可以组合;实施例3、实施例8-实施例10可以组合;实施例3-实施例7可以组合;实施例3、实施例4、实施例8-实施例10可以组合;实施例3、实施例5和实施例6可以组合;实施例3、实施例5和实施例7可以组合;实施例3、实施例8和实施例9可以组合;实施例3、实施例8和实施例10可以组合。当然,上述只是几个组合的示例,实施例3-实施例10之间的任意至少两个实施例,均可以进行组合实现相关过程。
[0178]
实施例11:基于实施例1-实施例10,若根据ccalf控制开关标志位确定针对当前处理单元启用ccalf,还可以执行图4所示的编解码流程。示例性的,若当前处理单元对应的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则确定针对当前处理单元启用ccalf;或者,若当前处理单元对应的ccalf图像头级控制开关标志位表示当前图像允许启用ccalf,则确定针对当前处理单元启用ccalf;或者,若当前处理单元对应的ccalf片头级
控制开关标志位表示当前片允许启用ccalf,则确定针对当前处理单元启用ccalf;或者,若当前处理单元对应的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,且当前处理单元对应的ccalf图像头级控制开关标志位表示当前图像允许启用ccalf,则确定针对当前处理单元启用ccalf;或者,若当前处理单元对应的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,且当前处理单元对应的ccalf片头级控制开关标志位表示当前片允许启用ccalf,则确定针对当前处理单元启用ccalf。当然,上述只是几个示例,对此不做限制。示例性的,在针对当前处理单元启用ccalf时,针对编码端或者解码端来说,可以采用图4所示的编解码流程,该编解码过程可以包括:
[0179]
步骤401,获取当前处理单元的每个像素位置的亮度分量重构值和色度分量重构值。
[0180]
示例性的,环路滤波可以包括但不限于去块滤波,sao滤波,alf滤波,ccalf滤波等,在环路滤波过程中,可以执行去块滤波,sao滤波,alf滤波,ccalf滤波中的至少一个,且对去块滤波,sao滤波,alf滤波,ccalf滤波等滤波操作的顺序不做限制。
[0181]
例如,可以执行去块滤波,sao滤波,alf滤波,ccalf滤波等操作,且执行顺序可以为:去块滤波,sao滤波,alf滤波,ccalf滤波;或者,去块滤波,sao滤波,ccalf滤波,alf滤波;或者,去块滤波,ccalf滤波,sao滤波,alf滤波;或者,ccalf滤波,去块滤波,sao滤波,alf滤波。当然,上述只是滤波顺序的几个示例,对此不做限制。
[0182]
又例如,可以执行sao滤波,alf滤波,ccalf滤波等操作,且执行顺序可以为:sao滤波,alf滤波,ccalf滤波;或者,sao滤波,ccalf滤波,alf滤波;或者,ccalf滤波,sao滤波,alf滤波。当然,上述只是滤波顺序的几个示例,对此不做限制。
[0183]
又例如,可以执行去块滤波,sao滤波,ccalf滤波等操作,且执行顺序可以为:去块滤波,sao滤波,ccalf滤波;或者,去块滤波,ccalf滤波,sao滤波;或者,ccalf滤波,去块滤波,sao滤波。当然,上述只是滤波顺序的几个示例,对此不做限制。
[0184]
当然,上述方式只是从去块滤波,sao滤波,alf滤波,ccalf滤波中选择至少一个滤波方式实现环路滤波的示例,环路滤波还可以包括其它类型的滤波方式,对此不做限制。
[0185]
本实施例中,是针对ccalf滤波的实现方式,ccalf滤波可以是环路滤波的首个滤波方式,即,在步骤401中,亮度分量重构值是未经过滤波的亮度分量重构值,色度分量重构值是未经过滤波的色度分量重构值。或者,ccalf滤波可以位于去块滤波的后面,即,在步骤401中,亮度分量重构值是去块滤波后的亮度分量重构值,色度分量重构值是去块滤波后的色度分量重构值。或者,ccalf滤波可以位于sao滤波的后面,即,在步骤401中,亮度分量重构值是sao滤波后的亮度分量重构值,色度分量重构值是sao滤波后的色度分量重构值。或者,ccalf滤波可以位于alf滤波的后面,即,在步骤401中,亮度分量重构值是alf滤波后的亮度分量重构值,色度分量重构值是alf滤波后的色度分量重构值。
[0186]
示例性的,ccalf滤波和alf滤波还可以同时执行,如在sao滤波后,基于sao滤波后的亮度分量重构值和色度分量重构值,进行ccalf滤波和alf滤波。或者,在去块滤波后,基于去块滤波后的亮度分量重构值和色度分量重构值,进行ccalf滤波和alf滤波。或者,基于未经过滤波的亮度分量重构值和色度分量重构值,进行ccalf滤波和alf滤波。
[0187]
无论采用哪些滤波方式实现环路滤波,滤波方式的顺序是什么,在执行ccalf滤波时,均可以获取当前处理单元的每个像素位置的亮度分量重构值和色度分量重构值,例如,
每个像素位置的sao滤波后的亮度分量重构值,每个像素位置的sao滤波后的色度分量重构值。
[0188]
步骤402,针对当前处理单元的当前像素位置(即色度分量重构值的像素位置),确定当前像素位置关联的当前处理单元的目标像素位置(即亮度分量重构值的像素位置)。
[0189]
示例性的,可以将当前处理单元的色度分量重构值的像素位置称为当前像素位置,将当前处理单元的亮度分量重构值的像素位置称为目标像素位置,当前像素位置与该当前像素位置关联的目标像素位置可以相同,也可以不同。例如,当前像素位置为像素位置a1,与该当前像素位置关联的目标像素位置为像素位置a1。又例如,当前像素位置为像素位置a1,与该当前像素位置关联的目标像素位置为像素位置a2。
[0190]
示例性的,若当前处理单元所在图像的采样率是4:2:0的格式,则当前像素位置与该当前像素位置关联的目标像素位置可以不同。若当前处理单元所在图像的采样率是4:4:4的格式,则当前像素位置与该当前像素位置关联的目标像素位置可以相同。
[0191]
综上所述,可以基于当前处理单元所在图像的采样率,确定前像素位置关联的目标像素位置,对此确定方式不做限制。当然,上述方式只是示例,对此不做限制,只要能够确定当前像素位置关联的目标像素位置即可。
[0192]
示例性的,假设需要采用ccalf对当前处理单元的像素位置b1的色度分量重构值进行补偿,则将像素位置b1作为当前像素位置,并确定当前像素位置关联的目标像素位置,如目标像素位置为像素位置b2,像素位置b2与像素位置b1可以相同,也可以不同。
[0193]
步骤403,基于目标像素位置的亮度分量重构值和目标像素位置的相邻像素位置的亮度分量重构值,进行基于ccalf的滤波处理,得到当前像素位置的色度分量偏移值。
[0194]
示例性的,可以获取当前处理单元的ccalf滤波系数集合;获取目标像素位置的ccalf滤波系数,从ccalf滤波系数集合中获取目标像素位置的相邻像素位置的ccalf滤波系数。然后,可以基于该目标像素位置的亮度分量重构值,该目标像素位置的ccalf滤波系数,该目标像素位置的相邻像素位置的亮度分量重构值和该相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,得到当前像素位置的色度分量偏移值。
[0195]
示例性的,可以将采用ccalf进行滤波处理时的滤波系数称为ccalf滤波系数。
[0196]
步骤404,利用当前像素位置的色度分量重构值和当前像素位置的色度分量偏移值,获得当前像素位置的目标色度分量重构值。例如,通过当前像素位置的色度分量偏移值对当前像素位置的色度分量重构值进行补偿,得到当前像素位置的目标色度分量重构值。
[0197]
以下结合几个具体情况,对步骤403和步骤404的处理过程进行说明。
[0198]
情况一,参见图5a所示,为ccalf滤波处理的示意图,色度分量重构值包括第一色度分量重构值cb和第二色度分量重构值cr,第一ccalf用于获得第一色度分量重构值cb对应的第一色度分量偏移值i1,第二ccalf用于获得第二色度分量重构值cr对应的第二色度分量偏移值i2。在上述应用场景下,参见图5a所示,i0为目标像素位置的亮度分量重构值(即luma)和目标像素位置的相邻像素位置的亮度分量重构值(即luma),将目标像素位置的亮度分量重构值和相邻像素位置的亮度分量重构值输入给第一ccalf和第二ccalf。
[0199]
第一ccalf包括目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,因此,第一ccalf可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf
的滤波处理,对此滤波处理过程不做限制,得到当前像素位置的第一色度分量偏移值i1。
[0200]
第二ccalf包括目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,因此,第二ccalf可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,对此滤波处理过程不做限制,得到当前像素位置的第二色度分量偏移值i2。
[0201]
示例性的,第一ccalf中的目标像素位置的ccalf滤波系数与第二ccalf中的目标像素位置的ccalf滤波系数,可以相同,也可以不同。第一ccalf中的相邻像素位置的ccalf滤波系数与第二ccalf中的相邻像素位置的ccalf滤波系数,可以相同,也可以不同。第一ccalf的滤波处理方式与第二ccalf的滤波处理方式可以相同,也可以不同。
[0202]
在得到当前像素位置的第一色度分量偏移值i1后,可以利用第一色度分量重构值cb与第一色度分量偏移值i1,获得当前像素位置的第一目标色度分量重构值cb’,例如,将第一色度分量重构值cb与第一色度分量偏移值i1的和,作为第一目标色度分量重构值cb’。
[0203]
在得到当前像素位置的第二色度分量偏移值i2后,可以利用第二色度分量重构值cr与第二色度分量偏移值i2,获得当前像素位置的第二目标色度分量重构值cr’,例如,将第二色度分量重构值cr与第二色度分量偏移值i2的和,作为第二目标色度分量重构值cr’。
[0204]
综上所述,可以得到当前像素位置的目标色度分量重构值,即cb’和cr’。
[0205]
情况二,参见图5b所示,为ccalf滤波处理的示意图,色度分量重构值包括第一色度分量重构值cb和第二色度分量重构值cr,ccalf用于获得色度分量偏移值,该色度分量偏移值作为第一色度分量重构值cb对应的第一色度分量偏移值i1,基于该色度分量偏移值获得第二色度分量重构值cr对应的第二色度分量偏移值i2。
[0206]
在上述应用场景下,参见图5b所示,i0可以为目标像素位置的亮度分量重构值(即luma)和目标像素位置的相邻像素位置的亮度分量重构值(即luma),可以将目标像素位置的亮度分量重构值和相邻像素位置的亮度分量重构值输入给ccalf(即联合ccalf)。
[0207]
ccalf包括目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,因此,ccalf可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,对此滤波处理过程不做限制,得到当前像素位置的第一色度分量偏移值i1。
[0208]
然后,根据第一色度分量偏移值i1获取当前像素位置的第二色度分量偏移值i2,例如,第二色度分量偏移值i2可以为第一色度分量偏移值i1乘以系数w。示例性的,针对编码端来说,系数w可以任意配置,对此不做限制。针对解码端来说,编码端可以通过码流将系数w传输给解码端,解码端从码流中解析系数w,即解码端的系数w与编码端的系数w相同。
[0209]
在得到当前像素位置的第一色度分量偏移值i1后,可以利用第一色度分量重构值cb与第一色度分量偏移值i1,获得当前像素位置的第一目标色度分量重构值cb’,例如,将第一色度分量重构值cb与第一色度分量偏移值i1的和,作为第一目标色度分量重构值cb’。
[0210]
在得到当前像素位置的第二色度分量偏移值i2后,可以利用第二色度分量重构值cr与第二色度分量偏移值i2,获得当前像素位置的第二目标色度分量重构值cr’,例如,将第二色度分量重构值cr与第二色度分量偏移值i2的和,作为第二目标色度分量重构值cr’。
[0211]
综上所述,可以得到当前像素位置的目标色度分量重构值,即cb’和cr’。
[0212]
情况三,参见图5c所示,为ccalf和alf联合滤波处理的示意图,色度分量重构值包
括第一色度分量重构值cb和第二色度分量重构值cr,第一ccalf用于获得第一色度分量重构值cb对应的第一色度分量偏移值i1,第二ccalf用于获得第二色度分量重构值cr对应的第二色度分量偏移值i2。在上述应用场景下,i0为目标像素位置的亮度分量重构值(即luma)和目标像素位置的相邻像素位置的亮度分量重构值(即luma),将目标像素位置的亮度分量重构值和相邻像素位置的亮度分量重构值输入给第一ccalf和第二ccalf。
[0213]
第一ccalf包括目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,因此,第一ccalf可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,对此滤波处理过程不做限制,得到当前像素位置的第一色度分量偏移值i1。
[0214]
第二ccalf包括目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,因此,第二ccalf可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,对此滤波处理过程不做限制,得到当前像素位置的第二色度分量偏移值i2。
[0215]
在情况一中,直接将目标像素位置的亮度分量重构值作为目标像素位置的目标亮度分量重构值。与情况一不同的是,在情况三中,基于目标像素位置的亮度分量重构值和alf亮度滤波系数,进行基于alf的滤波处理,得到目标像素位置的目标亮度分量重构值。
[0216]
参见图5c所示,可以将目标像素位置的亮度分量重构值和相邻像素位置的亮度分量重构值输入给第一alf,第一alf用于对亮度分量重构值进行滤波处理。第一alf可以包括目标像素位置的alf亮度滤波系数和相邻像素位置的alf亮度滤波系数,因此,第一alf可以基于目标像素位置的亮度分量重构值,目标像素位置的alf亮度滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的alf亮度滤波系数,进行基于alf的滤波处理,对此滤波处理过程不做限制,最终得到目标像素位置的目标亮度分量重构值。
[0217]
情况一中,根据色度分量重构值与色度分量偏移值确定目标色度分量重构值。与情况一不同的是,情况三中,基于当前像素位置的色度分量重构值和alf色度滤波系数,进行基于alf的滤波处理,得到当前像素位置的滤波处理后的色度分量重构值;例如,基于当前像素位置的色度分量重构值和当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的色度分量重构值和当前像素位置的相邻像素位置的alf色度滤波系数,进行基于alf的滤波处理,得到当前像素位置的滤波处理后的色度分量重构值。然后,根据滤波处理后的色度分量重构值和当前像素位置的色度分量偏移值,获得当前像素位置的目标色度分量重构值。
[0218]
参见图5c所示,将当前像素位置的第一色度分量重构值cb和当前像素位置的相邻像素位置的第一色度分量重构值cb输入给第二alf。第二alf包括当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的alf色度滤波系数,因此,第二alf可以基于当前像素位置的第一色度分量重构值cb,当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的第一色度分量重构值cb,当前像素位置的相邻像素位置的alf色度滤波系数进行基于alf的滤波处理,得到滤波处理后的第一色度分量重构值。然后,将滤波处理后的第一色度分量重构值与第一色度分量偏移值i1的和,作为第一目标色度分量重构值cb’。
[0219]
将当前像素位置的第二色度分量重构值cr和当前像素位置的相邻像素位置的第二色度分量重构值cr输入给第二alf。第二alf包括当前像素位置的alf色度滤波系数,当前
像素位置的相邻像素位置的alf色度滤波系数,因此,第二alf可以基于当前像素位置的第二色度分量重构值cr,当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的第二色度分量重构值cr,当前像素位置的相邻像素位置的alf色度滤波系数进行基于alf的滤波处理,得到滤波处理后的第二色度分量重构值。然后,可以将滤波处理后的第二色度分量重构值与第二色度分量偏移值i2的和,作为第二目标色度分量重构值cr’。
[0220]
示例性的,第二alf对第一色度分量重构值cb进行滤波处理的方式,与对第二色度分量重构值cr进行滤波处理的方式,二者可以相同,也可以不同,对此不做限制。
[0221]
综上所述,可以得到当前像素位置的目标色度分量重构值,即第一目标色度分量重构值cb’和第二目标色度分量重构值cr’,并得到目标像素位置的目标亮度分量重构值。
[0222]
情况四,参见图5d所示,为ccalf和alf联合滤波处理的示意图,色度分量重构值包括第一色度分量重构值cb和第二色度分量重构值cr,ccalf用于获得色度分量偏移值,该色度分量偏移值作为第一色度分量重构值cb对应的第一色度分量偏移值i1,基于该色度分量偏移值获得第二色度分量重构值cr对应的第二色度分量偏移值i2。i0可以为目标像素位置的亮度分量重构值和目标像素位置的相邻像素位置的亮度分量重构值,可以将目标像素位置的亮度分量重构值和相邻像素位置的亮度分量重构值输入给ccalf(即联合ccalf)。
[0223]
ccalf包括目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,因此,可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,得到当前像素位置的第一色度分量偏移值i1。根据第一色度分量偏移值i1获取当前像素位置的第二色度分量偏移值i2,如第二色度分量偏移值i2为第一色度分量偏移值i1乘以系数w。
[0224]
与情况二不同的是,在情况四中,基于目标像素位置的亮度分量重构值和alf亮度滤波系数,进行基于alf的滤波处理,得到目标像素位置的目标亮度分量重构值。参见图5d所示,可以将目标像素位置的亮度分量重构值和相邻像素位置的亮度分量重构值输入给第一alf。第一alf包括目标像素位置的alf亮度滤波系数和相邻像素位置的alf亮度滤波系数,因此,第一alf可以基于目标像素位置的亮度分量重构值,目标像素位置的alf亮度滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的alf亮度滤波系数,进行基于alf的滤波处理,对此滤波处理过程不做限制,得到目标像素位置的目标亮度分量重构值。
[0225]
在情况四中,基于当前像素位置的色度分量重构值和alf色度滤波系数,进行基于alf的滤波处理,得到当前像素位置的滤波处理后的色度分量重构值;例如,基于当前像素位置的色度分量重构值和当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的色度分量重构值和当前像素位置的相邻像素位置的alf色度滤波系数,进行基于alf的滤波处理,得到当前像素位置的滤波处理后的色度分量重构值。然后,根据滤波处理后的色度分量重构值和当前像素位置的色度分量偏移值,获得当前像素位置的目标色度分量重构值。
[0226]
参见图5d所示,将当前像素位置的第一色度分量重构值cb和当前像素位置的相邻像素位置的第一色度分量重构值cb输入给第二alf。第二alf包括当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的alf色度滤波系数,因此,第二alf可以基于当前像素位置的第一色度分量重构值cb,当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的第一色度分量重构值cb,当前像素位置的相邻像素位置的alf色度滤波系数
进行基于alf的滤波处理,得到滤波处理后的第一色度分量重构值。然后,将滤波处理后的第一色度分量重构值与第一色度分量偏移值i1的和,作为第一目标色度分量重构值cb’。
[0227]
将当前像素位置的第二色度分量重构值cr和当前像素位置的相邻像素位置的第二色度分量重构值cr输入给第二alf。第二alf包括当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的alf色度滤波系数,因此,第二alf可以基于当前像素位置的第二色度分量重构值cr,当前像素位置的alf色度滤波系数,当前像素位置的相邻像素位置的第二色度分量重构值cr,当前像素位置的相邻像素位置的alf色度滤波系数进行基于alf的滤波处理,得到滤波处理后的第二色度分量重构值。然后,可以将滤波处理后的第二色度分量重构值与第二色度分量偏移值i2的和,作为第二目标色度分量重构值cr’。
[0228]
综上所述,可以得到当前像素位置的目标色度分量重构值,即第一目标色度分量重构值cb’和第二目标色度分量重构值cr’,并得到目标像素位置的目标亮度分量重构值。
[0229]
在上述实施例中,针对情况三和情况四来说,ccalf和alf共存,即采用ccalf和alf联合滤波。针对情况一和情况二来说,ccalf可以独立于alf,即,当alf关闭的情况下,仍然可以采用ccalf对色度分量重构值进行补偿,得到目标色度分量重构值。
[0230]
在上述实施例中,均是基于目标像素位置的亮度分量重构值,采用ccalf得到色度分量偏移值,然后利用色度分量偏移值对当前像素位置的色度分量重构值进行补偿,得到当前像素位置的目标色度分量重构值。示例性的,当alf开启时,对至少一个像素位置(即当前像素位置)执行alf的环路滤波操作,再将alf后的的重构值加上色度分量偏移值(基于目标像素位置的亮度分量重构值得到),得到到当前像素位置的目标色度分量重构值。
[0231]
由以上技术方案可见,本申请实施例中,能够基于目标像素位置的亮度分量重构值和目标像素位置的相邻像素位置的亮度分量重构值,进行基于ccalf的滤波处理,得到当前像素位置的色度分量偏移值,并利用当前像素位置的色度分量重构值和当前像素位置的色度分量偏移值,获得当前像素位置的目标色度分量重构值,提高ccalf的环路滤波的准确性,提高ccalf的环路滤波效果,提高编码性能,使当前处理单元的重构值更接近原始像素。
[0232]
实施例12:在实施例11中,需要根据目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理。为了得到目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数,可以采用如下方式实现:
[0233]
步骤s11、编码端和解码端均维护ccalf滤波系数列表,该ccalf滤波系数列表可以包括至少一个ccalf滤波系数集合。针对该ccalf滤波系数列表中的每个ccalf滤波系数集合来说,该ccalf滤波系数集合可以包括多个ccalf滤波系数。
[0234]
针对每个ccalf滤波系数集合来说,ccalf滤波系数集合包括目标像素位置的ccalf滤波系数(即一个目标像素位置的ccalf滤波系数)和目标像素位置的相邻像素位置的ccalf滤波系数(如多个相邻像素位置的ccalf滤波系数)。在此情况下,可以从ccalf滤波系数集合中获取目标像素位置的ccalf滤波系数和相邻像素位置的ccalf滤波系数。
[0235]
针对每个ccalf滤波系数集合来说,ccalf滤波系数集合可以包括目标像素位置的相邻像素位置的ccalf滤波系数(如多个相邻像素位置的ccalf滤波系数),但是未包括目标像素位置的ccalf滤波系数。在此情况下,可以从ccalf滤波系数集合中获取相邻像素位置的ccalf滤波系数。针对目标像素位置的ccalf滤波系数,可以将预设数值作为目标像素位置的ccalf滤波系数,或采用其它方式获取目标像素位置的ccalf滤波系数,对此不做限制,
只是ccalf滤波系数集合未包括目标像素位置的ccalf滤波系数。
[0236]
在一种可能的实施方式中,编码端和解码端可以预先配置ccalf滤波系数列表,只要编码端的ccalf滤波系数列表与解码端的ccalf滤波系数列表相同即可。例如,预先在编码端配置ccalf滤波系数列表a,并在解码端配置ccalf滤波系数列表a。
[0237]
在另一种可能的实施方式中,编码端可以获取ccalf滤波系数列表,对此获取方式不做限制,只要能够获取到ccalf滤波系数列表即可。然后,编码端通过码流将ccalf滤波系数列表发送给解码端,解码端可以从码流中解析出ccalf滤波系数列表。
[0238]
示例性的,ccalf滤波系数列表可以是帧级的ccalf滤波系数列表,即,针对一帧图像中的所有图像块,共用同一个帧级的ccalf滤波系数列表。在此基础上,编码端通过码流携带帧级的ccalf滤波系数列表,解码端从码流中解析帧级的ccalf滤波系数列表。解码端在得到ccalf滤波系数列表后,可以在本地存储ccalf滤波系数列表。
[0239]
示例性的,ccalf滤波系数列表可以是序列级(sps)的ccalf滤波系数列表,即针对多帧图像中的所有图像块,共用同一个序列级的ccalf滤波系数列表。在此基础上,编码端通过码流携带序列级的ccalf滤波系数列表,解码端从码流中解析序列级的ccalf滤波系数列表。解码端在得到ccalf滤波系数列表后,可以在本地存储ccalf滤波系数列表。
[0240]
示例性的,ccalf滤波系数列表可以是自适应参数集(adaptive parameter set,aps)级的ccalf滤波系数列表,即,针对多帧图像中的所有图像块,共用同一个自适应参数集级的ccalf滤波系数列表。在此基础上,编码端通过码流携带自适应参数集级的ccalf滤波系数列表,解码端从码流中解析自适应参数集级的ccalf滤波系数列表。解码端在得到自适应参数集级的ccalf滤波系数列表后,可以在本地存储ccalf滤波系数列表。
[0241]
针对自适应参数集级的ccalf滤波系数列表的情况,可以存在至少一个自适应参数集级的ccalf滤波系数列表,从至少一个自适应参数集级的ccalf滤波系数列表中选择一个自适应参数集级的ccalf滤波系数列表,作为图像级或者slice级的ccalf滤波系数列表。
[0242]
当然,上述方式只是示例,对此不做限制,如ccalf滤波系数列表还可以是图像参数集(pps)级的ccalf滤波系数列表,或片级(slice或者tile)的ccalf滤波系数列表。
[0243]
无论是哪个级别的ccalf滤波系数列表,只要编码端和解码端均维护有ccalf滤波系数列表,且编码端的ccalf滤波系数列表与解码端的ccalf滤波系数列表相同即可。
[0244]
步骤s12、获取当前处理单元的ccalf滤波系数集合。例如,针对编码端和解码端来说,均从当前处理单元的ccalf滤波系数列表中获取当前处理单元的ccalf滤波系数集合。
[0245]
示例性的,若ccalf滤波系数列表是帧级的ccalf滤波系数列表,则可以根据帧级的ccalf滤波系数列表确定当前处理单元的ccalf滤波系数列表。比如说,可以将当前处理单元所在帧的ccalf滤波系数列表,确定为当前处理单元的ccalf滤波系数列表。
[0246]
示例性的,若ccalf滤波系数列表是序列级的ccalf滤波系数列表,则可以根据序列级的ccalf滤波系数列表确定当前处理单元的ccalf滤波系数列表。比如说,可以将当前处理单元所在序列的ccalf滤波系数列表,确定为当前处理单元的ccalf滤波系数列表。
[0247]
若ccalf滤波系数列表是自适应参数集级的ccalf滤波系数列表,则根据自适应参数集级的ccalf滤波系数列表确定当前处理单元的ccalf滤波系数列表。如将当前处理单元所在自适应参数集的ccalf滤波系数列表,确定为当前处理单元的ccalf滤波系数列表。
[0248]
示例性的,针对编码端来说,确定当前处理单元是否启动ccalf滤波操作,对此确
定方式不做限制。若当前处理单元启动ccalf滤波操作,则从当前处理单元的ccalf滤波系数列表中获取当前处理单元的ccalf滤波系数集合。例如,针对ccalf滤波系数列表中的每个ccalf滤波系数集合,编码端可以确定该ccalf滤波系数集合对应的率失真代价值,对此确定方式不做限制。将最小的率失真代价值对应的ccalf滤波系数集合,作为当前处理单元的ccalf滤波系数集合。编码端在向解码端发送针对当前处理单元的编码比特流时,该编码比特流中可以携带ccalf滤波系数集合的指示信息。例如,若当前处理单元未启动ccalf滤波操作,则ccalf滤波系数集合的指示信息用于指示当前处理单元未启动ccalf滤波操作。或者,若当前处理单元启动ccalf滤波操作,则ccalf滤波系数集合的指示信息用于指示当前处理单元启动ccalf滤波操作,且该指示信息用于指示当前处理单元的ccalf滤波系数集合在ccalf滤波系数列表中的索引值。针对解码端来说,获取当前处理单元的编码比特流,并从该编码比特流中获取ccalf滤波系数集合的指示信息。若该指示信息用于指示当前处理单元未启动ccalf滤波操作,则解码端不需要执行ccalf滤波操作。若该指示信息用于指示当前处理单元启动ccalf滤波操作,且指示当前处理单元的ccalf滤波系数集合在ccalf滤波系数列表中的索引值,则解码端基于该指示信息从当前处理单元的ccalf滤波系数列表中获取当前处理单元的ccalf滤波系数集合,例如,将ccalf滤波系数列表中与该索引值对应的ccalf滤波系数集合作为当前处理单元的ccalf滤波系数集合。然后,解码端基于当前处理单元的ccalf滤波系数集合执行ccalf滤波操作。
[0249]
步骤s13、获取目标像素位置的ccalf滤波系数,并从当前处理单元的ccalf滤波系数集合中获取目标像素位置的相邻像素位置的ccalf滤波系数。例如,若ccalf滤波系数集合包括目标像素位置的ccalf滤波系数,则从当前处理单元的ccalf滤波系数集合中获取目标像素位置的ccalf滤波系数。或者,若ccalf滤波系数集合未包括目标像素位置的ccalf滤波系数,则将预设数值作为目标像素位置的ccalf滤波系数,或采用其它方式获取目标像素位置的ccalf滤波系数,对此不做限制,能够得到目标像素位置的ccalf滤波系数即可。示例性的,在得到目标像素位置的ccalf滤波系数,相邻像素位置的ccalf滤波系数后,就可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,得到当前像素位置的色度分量偏移值,具体实现过程可以参见上述实施例。
[0250]
在上述实施例中,在通过码流传输ccalf滤波系数列表(如帧级的ccalf滤波系数列表,或序列级的ccalf滤波系数列表,或自适应参数集级的ccalf滤波系数列表)时,该ccalf滤波系数列表包括至少一个ccalf滤波系数集合,针对每个ccalf滤波系数集合,可以包括至少一个ccalf滤波系数。示例性的,针对ccalf滤波系数集合中的每个ccalf滤波系数:该ccalf滤波系数为0,或2的n次方,或2的n次方的负值,n为0或小于第一阈值的正整数;和/或,该ccalf滤波系数位于第二阈值与第三阈值之间。
[0251]
例如,为了减少滤波过程中的乘法操作,用移位代替乘法操作,可以对ccalf滤波系数进行限制,将ccalf滤波系数限制为0,或2的n次方(即幂次方),或2的n次方的负值,第一阈值可以根据经验进行配置,对此不做限制,如第一阈值为5、6等。基于此,ccalf滤波系数可以为0,1,2,4,8,16,32,64,-1,-2,-4,-8,-16,-32,-64等。综上所述,针对ccalf滤波系数集合中的每个ccalf滤波系数,均需要满足上述限制关系。
[0252]
又例如,将ccalf滤波系数限制在第二阈值与第三阈值之间,第二阈值和第三阈值
均可以根据经验进行配置,对此不做限制,例如,第二阈值可以为负值,第三阈值可以为正值,如第二阈值可以为-64,第三阈值可以为64,这样,可以将ccalf滤波系数限制在[-64,64]的范围内,如第二阈值可以为-63,第三阈值可以为63,这样,可以将ccalf滤波系数限制在[-63,63]的范围内,如第二阈值可以为-127,第三阈值可以为127,这样,可以将ccalf滤波系数限制在[-127,127]的范围内,如第二阈值可以为-32,第三阈值可以为32,这样,可以将ccalf滤波系数限制在[-32,32]的范围内。当然,上述只是几个示例,对此不做限制。综上所述,针对ccalf滤波系数集合中的每个ccalf滤波系数,均需要满足上述限制关系。
[0253]
又例如,将ccalf滤波系数限制为0,或2的n次方,或2的n次方的负值,n为0或小于第一阈值的正整数,并将ccalf滤波系数限制在第二阈值与第三阈值之间,如第一阈值为6,第二阈值可以为-63,第三阈值可以为63,则ccalf滤波系数可以为0,1,2,4,8,16,32,-1,-2,-4,-8,-16,-32,即每个ccalf滤波系数均需要满足上述限制关系。
[0254]
在上述实施例中,在通过码流传输ccalf滤波系数列表时,该ccalf滤波系数列表包括至少一个ccalf滤波系数集合,针对每个ccalf滤波系数集合,包括至少一个ccalf滤波系数。在码流传输ccalf滤波系数集合中的每个ccalf滤波系数时,采用定长码编码方式对ccalf滤波系数的映射值(如ccalf滤波系数为2的n次方时,映射值为n+1)进行编码,且采用定长码解码方式对ccalf滤波系数的映射值进行解码。例如,针对编码端来说,采用定长码编码方式对ccalf滤波系数的映射值进行编码,将编码后的映射值添加到码流,从而固定编码比特开销,减少比特开销。针对解码端,采用定长码解码方式对ccalf滤波系数的映射值进行解码,得到解码后的映射值,并将映射值转换为ccalf滤波系数,例如,将映射值n+1转换为2的n次方,而2的n次方为ccalf滤波系数。
[0255]
在上述实施例中,在通过码流传输ccalf滤波系数列表时,该ccalf滤波系数列表包括至少一个ccalf滤波系数集合,针对每个ccalf滤波系数集合,包括至少一个ccalf滤波系数。针对ccalf滤波系数集合中的每个ccalf滤波系数:若ccalf滤波系数不为0,则码流中可以包括ccalf滤波系数的指示信息r1和指示信息r2,该指示信息r1用于指示ccalf滤波系数的幅值,该指示信息r2用于指示ccalf滤波系数的符号位。
[0256]
例如,针对编码端来说,在需要传输ccalf滤波系数时,当ccalf滤波系数非零时,分离ccalf滤波系数的符号位和ccalf滤波系数的幅值,如针对ccalf滤波系数-32来说,ccalf滤波系数的符号位为负(-),ccalf滤波系数的幅值为32,针对ccalf滤波系数32来说,ccalf滤波系数的符号位为正(+),ccalf滤波系数的幅值为32。基于此,编码端在码流中添加指示信息r1和指示信息r2,指示信息r1用于指示ccalf滤波系数的幅值(如32),指示信息r2可以为一个比特位,用于表示正负的符号位。
[0257]
针对解码端来说,在解码ccalf滤波系数时,先从码流中解析出指示信息r1,基于指示信息r1确定ccalf滤波系数的幅值(如32)。当ccalf滤波系数的幅值非零时,再从码流中解析出指示信息r2,基于指示信息r2确定ccalf滤波系数的符号位。然后,将ccalf滤波系数的幅值和ccalf滤波系数的符号位,组成ccalf滤波系数。
[0258]
综上所述,针对编码端来说,ccalf滤波系数的编码方式可以包括:在ccalf滤波系数为2的n次方(或2的n次方的负值)的情况下,对ccalf滤波系数的幅值进行映射,映射值为n+1,如ccalf滤波系数为2的3次方(或2的3次方的负值),则映射值为4。然后,采用定长码编码方式对映射值4进行编码,定长码的长度取决于ccalf滤波系数的最大范围,比如当n最大
为7时,定长码的长度需要m比特进行编码,如m可以为3。此外,在码流中添加一个比特位,用于表示ccalf滤波系数的正负的符号位。示例性的,当ccalf滤波系数为0时,无需进行映射过程,直接在码流中编码ccalf滤波系数。
[0259]
针对解码端来说,ccalf滤波系数的解码方式可以包括:在从码流中解码ccalf滤波系数时,采用定长码解码方式对码流中的ccalf滤波系数进行解码,得到映射值(即n+1),然后,将映射值转换为2的n次方,例如,若映射值为4,则将映射值转换为2的3次方,即8。然后,从码流中解析出ccalf滤波系数的正负的符号位,若为正的符号位,则ccalf滤波系数为8,若为负的符号位,则ccalf滤波系数为-8,至此得到ccalf滤波系数。
[0260]
此外,若解码端从码流中解析出0,则可以直接确定ccalf滤波系数为0。
[0261]
综上所述,参数值(即ccalf滤波系数)可以仅为2的n次方(这样乘法则可以通过移位实现,硬件实现复杂度低),具体的,可以仅为如下系数中的之一:{-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}。为了节省系数编码的代价,通过{-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7}分别进行一一对应索引,即-7表示-64,0表示0,7表示64。为了表示索引值,还可以通过定长3比特编码绝对值,1个标志位编码表示符号位,具体过程参见上述实施例。
[0262]
实施例13:在实施例11和实施例12中,可以涉及ccalf滤波系数集合,ccalf滤波系数集合包括目标像素位置的ccalf滤波系数和目标像素位置的相邻像素位置的ccalf滤波系数,或者,ccalf滤波系数集合包括目标像素位置的相邻像素位置的ccalf滤波系数。以下结合几个具体情况,对ccalf滤波系数集合中的ccalf滤波系数进行说明。
[0263]
情况一,参见图6a所示,为目标像素位置的相邻像素位置的示意图。像素位置a3为目标像素位置,ccalf滤波系数集合包括:目标像素位置的正上侧像素位置(即像素位置a1)的ccalf滤波系数,目标像素位置的左侧像素位置(即像素位置a2)的ccalf滤波系数,目标像素位置的右侧像素位置(即像素位置a4)的ccalf滤波系数,目标像素位置的正下侧像素位置(即像素位置a6)的ccalf滤波系数,目标像素位置的左下侧像素位置(即像素位置a5)的ccalf滤波系数,目标像素位置的右下侧像素位置(即像素位置a7)的ccalf滤波系数,目标像素位置的正下侧第二行像素位置(即像素位置a8)的ccalf滤波系数。
[0264]
示例性的,参见图6a所示,为3x2的形状,对于每个色度分量,最多有4组滤波系数值。由于最多有2个色度分量,因此,最多有8组ccalf的滤波系数值。
[0265]
在一种可能的实施方式中,参见图6b所示,像素位置a1的ccalf滤波系数为f0,像素位置a2的ccalf滤波系数为f1,像素位置a3的ccalf滤波系数为f2,像素位置a4的ccalf滤波系数为f3,像素位置a5的ccalf滤波系数为f4,像素位置a6的ccalf滤波系数为f5,像素位置a7的ccalf滤波系数为f6,像素位置a8的ccalf滤波系数为f7。综上所述,每个像素位置的ccalf滤波系数均不同,f2为目标像素位置的ccalf滤波系数,f0,f1,f3,f4,f5,f6,f7分别为各相邻像素位置的ccalf滤波系数。
[0266]
在另一种可能的实施方式中,参见图6c所示,像素位置a1的ccalf滤波系数为f0,像素位置a2的ccalf滤波系数为f1,像素位置a3的ccalf滤波系数为f2,像素位置a4的ccalf滤波系数为f3,像素位置a5的ccalf滤波系数为f4,像素位置a6的ccalf滤波系数为f5,像素位置a7的ccalf滤波系数为f6,像素位置a8的ccalf滤波系数为f0。综上所述,f2为目标像素位置的ccalf滤波系数,f0,f1,f3,f4,f5,f6分别为各相邻像素位置的ccalf滤波系数,像素位置a1(即正上侧像素位置)的ccalf滤波系数f0与像素位置a8(即正下侧第二行像素位置)
的ccalf滤波系数f0可以相同。
[0267]
在上述方式中,通过将像素位置a1与像素位置a8的ccalf滤波系数设置为相同,从而简化ccalf滤波系数的设计,减少ccalf滤波系数集合中的ccalf滤波系数数量。
[0268]
在另一种可能的实施方式中,参见图6d所示,像素位置a1的ccalf滤波系数为f0,像素位置a2的ccalf滤波系数为f1,像素位置a3的ccalf滤波系数为f2,像素位置a4的ccalf滤波系数为f1,像素位置a5的ccalf滤波系数为f3,像素位置a6的ccalf滤波系数为f4,像素位置a7的ccalf滤波系数为f3,像素位置a8的ccalf滤波系数为f0。f2为目标像素位置的ccalf滤波系数,f0,f1,f3,f4分别为各相邻像素位置的ccalf滤波系数。像素位置a1(即正上侧像素位置)的ccalf滤波系数f0与像素位置a8(即正下侧第二行像素位置)的ccalf滤波系数f0相同。像素位置a2(即左侧像素位置)的ccalf滤波系数f1与像素位置a4(即右侧像素位置)的ccalf滤波系数f1相同。像素位置a5(即左下侧像素位置)的ccalf滤波系数f3与像素位置a7(即右下侧像素位置)的ccalf滤波系数f3相同。在上述方式中,通过将不同像素位置的ccalf滤波系数设置为相同,从而简化ccalf滤波系数的设计,减少ccalf滤波系数集合中的ccalf滤波系数数量。
[0269]
在另一种可能的实施方式中,参见图6e所示,像素位置a1的ccalf滤波系数为f0,像素位置a2的ccalf滤波系数为f1,像素位置a3的ccalf滤波系数为f2,像素位置a4的ccalf滤波系数为f3,像素位置a5的ccalf滤波系数为f3,像素位置a6的ccalf滤波系数为f4,像素位置a7的ccalf滤波系数为f1,像素位置a8的ccalf滤波系数为f0。f2为目标像素位置的ccalf滤波系数,f0,f1,f3,f4分别为各相邻像素位置的ccalf滤波系数。像素位置a1(即正上侧像素位置)的ccalf滤波系数f0与像素位置a8(即正下侧第二行像素位置)的ccalf滤波系数f0相同。像素位置a2(即左侧像素位置)的ccalf滤波系数f1与像素位置a7(即右下侧像素位置)的ccalf滤波系数f1相同。像素位置a4(即右侧像素位置)的ccalf滤波系数f3与像素位置a5(即左下侧像素位置)的ccalf滤波系数f3相同。在上述方式中,通过将不同像素位置的ccalf滤波系数设置为相同,从而简化ccalf滤波系数的设计,减少ccalf滤波系数集合中的ccalf滤波系数数量。
[0270]
当然,上述几种方式只是示例,可以将任意像素位置的ccalf滤波系数设置为相同,例如,只要ccalf滤波系数具有中心对称性即可,对此ccalf滤波系数不做限制。
[0271]
情况二,参见图6f所示,为目标像素位置的相邻像素位置的示意图。像素位置b7为目标像素位置,ccalf滤波系数集合包括:目标像素位置的正上侧第二行像素位置(像素位置b1)的ccalf滤波系数,目标像素位置的左上侧像素位置(像素位置b2)的ccalf滤波系数,目标像素位置的正上侧像素位置(像素位置b3)的ccalf滤波系数,目标像素位置的右上侧像素位置(像素位置b4)的ccalf滤波系数,目标像素位置的左侧第二列像素位置(像素位置b5)的ccalf滤波系数,目标像素位置的左侧像素位置(像素位置b6)的ccalf滤波系数,目标像素位置的右侧像素位置(像素位置b8)的ccalf滤波系数,目标像素位置的右侧第二列像素位置(像素位置b9)的ccalf滤波系数,目标像素位置的左下侧像素位置(像素位置b10)的ccalf滤波系数,目标像素位置的正下侧像素位置(像素位置b11)的ccalf滤波系数,目标像素位置的右下侧像素位置(像素位置b12)的ccalf滤波系数,目标像素位置的正下侧第二行像素位置(像素位置b13)的ccalf滤波系数。
[0272]
在一种可能的实施方式中,参见图6g所示,像素位置b1的ccalf滤波系数为f0,像
素位置b2的ccalf滤波系数为f1,像素位置b3的ccalf滤波系数为f2,像素位置b4的ccalf滤波系数为f3,像素位置b5的ccalf滤波系数为f4,像素位置b6的ccalf滤波系数为f5,像素位置b7的ccalf滤波系数为f6,像素位置b8的ccalf滤波系数为f7,像素位置b9的ccalf滤波系数为f8,像素位置b10的ccalf滤波系数为f9,像素位置b11的ccalf滤波系数为f10,像素位置b12的ccalf滤波系数为f11,像素位置b13的ccalf滤波系数为f12。综上所述,每个像素位置的ccalf滤波系数均不同,f6为目标像素位置的ccalf滤波系数,f0-f5,f7-f12分别为各相邻像素位置的ccalf滤波系数。
[0273]
在另一种可能的实施方式中,参见图6h所示,像素位置b1的ccalf滤波系数为f0,像素位置b2的ccalf滤波系数为f1,像素位置b3的ccalf滤波系数为f2,像素位置b4的ccalf滤波系数为f3,像素位置b5的ccalf滤波系数为f4,像素位置b6的ccalf滤波系数为f5,像素位置b7的ccalf滤波系数为f6,像素位置b8的ccalf滤波系数为f5,像素位置b9的ccalf滤波系数为f4,像素位置b10的ccalf滤波系数为f3,像素位置b11的ccalf滤波系数为f2,像素位置b12的ccalf滤波系数为f1,像素位置b13的ccalf滤波系数为f0。综上所述,像素位置b1(正上侧第二行像素位置)的ccalf滤波系数f0与像素位置b13(正下侧第二行像素位置)的ccalf滤波系数f0相同。像素位置b2(左上侧像素位置)的ccalf滤波系数f1与像素位置b12(右下侧像素位置)的ccalf滤波系数f1相同。像素位置b3(正上侧像素位置)的ccalf滤波系数f2与像素位置b11(正下侧像素位置)的ccalf滤波系数f2相同。像素位置b4(右上侧像素位置)的ccalf滤波系数f3与像素位置b10(左下侧像素位置)的ccalf滤波系数f3相同。像素位置b5(左侧第二列像素位置)的ccalf滤波系数f4与像素位置b9(右侧第二列像素位置)的ccalf滤波系数f4相同。像素位置b6(左侧像素位置)的ccalf滤波系数f5与像素位置b8(右侧像素位置)的ccalf滤波系数f5相同。通过将不同像素位置的ccalf滤波系数设为相同,简化ccalf滤波系数设计,减少ccalf滤波系数集合的ccalf滤波系数数量。
[0274]
在另一种可能的实施方式中,参见图6i所示,像素位置b1的ccalf滤波系数为f0,像素位置b2的ccalf滤波系数为f1,像素位置b3的ccalf滤波系数为f2,像素位置b4的ccalf滤波系数为f1,像素位置b5的ccalf滤波系数为f4,像素位置b6的ccalf滤波系数为f5,像素位置b7的ccalf滤波系数为f6,像素位置b8的ccalf滤波系数为f5,像素位置b9的ccalf滤波系数为f4,像素位置b10的ccalf滤波系数为f3,像素位置b11的ccalf滤波系数为f2,像素位置b12的ccalf滤波系数为f3,像素位置b13的ccalf滤波系数为f0。综上所述,像素位置b1(正上侧第二行像素位置)的ccalf滤波系数f0与像素位置b13(正下侧第二行像素位置)的ccalf滤波系数f0相同。像素位置b2(左上侧像素位置)的ccalf滤波系数f1与像素位置b4(右上侧像素位置)的ccalf滤波系数f1相同。像素位置b3(正上侧像素位置)的ccalf滤波系数f2与像素位置b11(正下侧像素位置)的ccalf滤波系数f2相同。像素位置b5(左侧第二列像素位置)的ccalf滤波系数f4与像素位置b9(右侧第二列像素位置)的ccalf滤波系数f4相同。像素位置b6(左侧像素位置)的ccalf滤波系数f5与像素位置b8(右侧像素位置)的ccalf滤波系数f5相同。像素位置b10(左下侧像素位置)的ccalf滤波系数f3与像素位置b12(右下侧像素位置)的ccalf滤波系数f3相同。通过将不同像素位置的ccalf滤波系数设为相同,简化ccalf滤波系数设计,减少ccalf滤波系数集合的ccalf滤波系数数量。
[0275]
当然,上述几种方式只是示例,可以将任意像素位置的ccalf滤波系数设置为相同,例如,只要ccalf滤波系数具有中心对称性即可,对此ccalf滤波系数不做限制。
[0276]
情况三,参见图6j所示,为目标像素位置的相邻像素位置的示意图。像素位置c3可以为目标像素位置,ccalf滤波系数集合,可以包括:该目标像素位置的正上侧像素位置(即像素位置c1)的ccalf滤波系数,该目标像素位置的左侧像素位置(即像素位置c2)的ccalf滤波系数,该目标像素位置的正下侧像素位置(即像素位置c4)的ccalf滤波系数,该目标像素位置的右下侧像素位置(即像素位置c5)的ccalf滤波系数,该目标像素位置的正下侧第二行像素位置(即像素位置c6)的ccalf滤波系数。
[0277]
在一种可能的实施方式中,参见图6k所示,像素位置c1的ccalf滤波系数为f0,像素位置c2的ccalf滤波系数为f4,像素位置c3的ccalf滤波系数为f1,像素位置c4的ccalf滤波系数为f2,像素位置c5的ccalf滤波系数为f5,像素位置c6的ccalf滤波系数为f3。综上所述,每个像素位置的ccalf滤波系数均不同,f1为目标像素位置的ccalf滤波系数,f0,f2,f3,f4,f5分别为各相邻像素位置的ccalf滤波系数。
[0278]
在另一种可能的实施方式中,参见图6l所示,像素位置c1的ccalf滤波系数为f0,像素位置c2的ccalf滤波系数为f4,像素位置c3的ccalf滤波系数为f1,像素位置c4的ccalf滤波系数为f2,像素位置c5的ccalf滤波系数为f4,像素位置c6的ccalf滤波系数为f3。像素位置c2(左侧像素位置)的ccalf滤波系数f4与像素位置c5(右下侧像素位置)的ccalf滤波系数f4相同。通过将不同像素位置的ccalf滤波系数设为相同,简化ccalf滤波系数设计,减少ccalf滤波系数集合的ccalf滤波系数数量。
[0279]
当然,上述几种方式只是示例,可以将任意像素位置的ccalf滤波系数设置为相同,例如,只要ccalf滤波系数具有中心对称性即可,对此ccalf滤波系数不做限制。
[0280]
情况四,参见图6m所示,为目标像素位置的相邻像素位置的示意图。像素位置d3可以为目标像素位置,ccalf滤波系数集合,可以包括:目标像素位置的正上侧像素位置(即像素位置d1)的ccalf滤波系数,目标像素位置的左侧像素位置(即像素位置d2)的ccalf滤波系数,目标像素位置的右侧像素位置(即像素位置d4)的ccalf滤波系数,目标像素位置的正下侧像素位置(即像素位置d5)的ccalf滤波系数。
[0281]
在一种可能的实施方式中,参见图6n所示,像素位置d1的ccalf滤波系数为f0,像素位置d2的ccalf滤波系数为f1,像素位置d3的ccalf滤波系数为f2,像素位置d4的ccalf滤波系数为f3,像素位置d5的ccalf滤波系数为f4。
[0282]
综上所述,每个像素位置的ccalf滤波系数均不同,f2为目标像素位置的ccalf滤波系数,f0,f1,f3,f4分别为各相邻像素位置的ccalf滤波系数。
[0283]
实施例14:在上述实施例中,可以基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的ccalf滤波系数,进行基于ccalf的滤波处理,得到当前像素位置的色度分量偏移值。在一种可能的实施方式中,可以对相邻像素位置的ccalf滤波系数进行变换操作,得到相邻像素位置的变换后ccalf滤波系数。然后,基于目标像素位置的亮度分量重构值,目标像素位置的ccalf滤波系数,相邻像素位置的亮度分量重构值和相邻像素位置的变换后ccalf滤波系数,进行基于ccalf的滤波处理,得到当前像素位置的色度分量偏移值。
[0284]
示例性的,上述变换操作具体为:旋转变换操作;或者,垂直翻转变换操作;或者,对角翻转变换操作。例如,对相邻像素位置的ccalf滤波系数进行旋转变换操作。或者,对相邻像素位置的ccalf滤波系数进行垂直翻转变换操作。或者,对相邻像素位置的ccalf滤波
系数进行对角翻转变换操作。当然,上述方式只是几个示例,对此不做限制。例如,可以基于亮度的梯度参数(对梯度参数的计算方式不做限制),确定是否对ccalf滤波系数进行变换操作(几何变换映射),若是,对相邻像素位置的ccalf滤波系数进行变换操作。
[0285]
例如,在对ccalf滤波系数进行对角翻转变换操作时,可以采用公式1实现:
[0286]
f
d
(k,s)=f(s,k)
ꢀꢀꢀꢀ
公式1
[0287]
在对ccalf滤波系数进行垂直翻转变换操作时,可以采用公式2实现:
[0288]
f
v
(k,s)=f(k,k-s-1)
ꢀꢀꢀꢀ
公式2
[0289]
在对ccalf滤波系数进行旋转变换操作时,可以采用公式3实现:
[0290]
f
r
(k,s)=f(k-s-1,k)
ꢀꢀꢀꢀ
公式3
[0291]
在上述公式中,f
d
(k,s)表示对角翻转变换操作后的像素位置(k,s)的ccalf滤波系数,f(s,k)表示对角翻转变换操作前的像素位置(s,k)的ccalf滤波系数。f
v
(k,s)表示垂直翻转变换操作后的像素位置(k,s)的ccalf滤波系数,f(k,k-s-1)表示垂直翻转变换操作前的像素位置(k,k-s-1)的ccalf滤波系数。f
r
(k,s)表示旋转变换操作后的像素位置(k,s)的ccalf滤波系数,f(k-s-1,k)表示旋转变换操作前的像素位置(k-s-1,k)的ccalf滤波系数。
[0292]
或者,f
d
(k,s)表示对角翻转变换操作前的像素位置(k,s)的ccalf滤波系数,f(s,k)表示对角翻转变换操作后的像素位置(s,k)的ccalf滤波系数。f
v
(k,s)表示垂直翻转变换操作前的像素位置(k,s)的ccalf滤波系数,f(k,k-s-1)表示垂直翻转变换操作后的像素位置(k,k-s-1)的ccalf滤波系数。f
r
(k,s)表示旋转变换操作前的像素位置(k,s)的ccalf滤波系数,f(k-s-1,k)表示旋转变换操作后的像素位置(k-s-1,k)的ccalf滤波系数。
[0293]
在上述公式中,k可以为可以ccalf的滤波器尺寸,0<=k<=k-1,k,s均为ccalf滤波系数的坐标,例如,(0,0)表示左上角,(k-1,k-1)表示右下角。
[0294]
实施例15:以下结合几个具体应用场景,对上述实施例的实现过程进行说明。
[0295]
应用场景1:在编码流信息中,可以增加序列级语法元素(sps级),或者帧级语法元素(frame级),或者图像级语法元素(pps级),控制ccalf的开启和关闭。比如说,通过在编码流信息中增加序列级语法元素,以通过该序列级语法元素控制ccalf的开启,或者,通过该序列级语法元素控制ccalf的关闭。又例如,通过在编码流信息中增加帧级语法元素,以通过该帧级语法元素控制ccalf的开启,或者,通过该帧级语法元素控制ccalf的关闭。又例如,通过在编码流信息中增加图像级语法元素,以通过该图像级语法元素控制ccalf的开启,或者,通过该图像级语法元素控制ccalf的关闭。
[0296]
应用场景2:ccalf滤波过程是否开启的控制最小颗粒度,可以在ctb层级进行控制,每一个ctb都可以有一个标志位表示当前处理单元是否开启ccalf。
[0297]
应用场景3:ccalf的sps级的控制开关,独立于alf的sps的控制开关。比如说,ccalf具有sps级的第一控制开关,alf具有sps的第二控制开关,通过第一控制开关控制ccalf的开启或者关闭,通过第二控制开关控制alf的开启或者关闭。
[0298]
例如,可以通过第一控制开关控制ccalf开启,通过第二控制开关控制alf开启。或者,可以通过第一控制开关控制ccalf开启,通过第二控制开关控制alf关闭。或者,可以通过第一控制开关控制ccalf关闭,通过第二控制开关控制alf开启。或者,可以通过第一控制开关控制ccalf关闭,通过第二控制开关控制alf关闭。
[0299]
应用场景4:ccalf和alf共用一个sps级的控制开关,即一个sps的控制开关同时控制alf和ccalf的开启与关闭。例如,可以通过控制开关控制ccalf开启,并控制alf开启。或者,可以通过控制开关控制ccalf关闭,并控制alf关闭。
[0300]
实施例16:针对alf的滤波过程,可以采用滤波器(如维纳滤波器)进行滤波操作,其目的是使得滤波信号与原始信号之间的均方误差最小。参见图7所示,可以提供两种形状的滤波器,5*5大小的滤波器适用于色度分量,7*7大小的滤波器适用于亮度分量。5*5大小的滤波器中,c6为中心像素位置,7*7大小的滤波器中,c12为中心像素位置,其余像素为周围像素。中心像素位置为待滤波像素位置,利用周围像素位置来对中心像素位置进行滤波。
[0301]
对于亮度分量来说,对于不同的小块使用不同的滤波器,因此,可以将这些小块进行分类,以区分小块要使用哪一个滤波器,如,基于方向性d和活动值a的量化值计算得出。
[0302]
示例性的,对于亮度分量来说,每个4*4的小块被分为25个种类,类别为classidx(包含信息:小块中主方向以及主方向与其垂直方向上梯度和的差,以及垂直与水平方向梯度和),计算方式如下:c=5d+a,而c就表示25个种类中的某个种类,从而得到小块要使用哪一个滤波器。d表示当前处理单元的direction(方向性),a表示当前处理单元的activity(整体梯度值大小,即活动值的量化值)。关于d和a的确定方式,本文不做限制,只要能得到d和a即可。示例性的,d=0,1,2,3,4,a=0,1,2,3,4,故c的取值为0到24,即25个分类索引。
[0303]
对于色度分量来说,无需块分类,对每个色度分量应用单个alf系数集,对此不做限制。
[0304]
示例性的,针对码流中携带的滤波参数,可以涉及:对亮度分量和色度分量应用不同的滤波器,alf的滤波参数信息在aps中进行声明。在一个aps中至多n组亮度滤波系数(n优选为25)和clip索引信息,以及,至多m组色度滤波系数(m优选为8)和clip索引信息被声明。控制alf是否开启可以多层级进行控制,控制语法可以存在于序列级参数语法中,slice级语法中,帧级语法中等,alf滤波过程是否开启的控制最小颗粒度,可以在ctb层级进行控制,每一个ctb都可以有一个标志位表示当前处理单元是否开启alf。
[0305]
基于与上述方法同样的申请构思,本申请实施例还提出一种解码装置,所述装置应用于解码端,参见图8a所示,为所述装置的结构图,所述装置包括:
[0306]
确定模块811,用于确定序列级参数集sps级语法的alf序列级控制开关标志位,是否表示当前序列允许启用alf;
[0307]
解码模块812,用于当sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf时,则从所述sps级语法中解码ccalf序列级控制开关标志位。
[0308]
所述解码模块812还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,当前序列存在色度分量,从sps级语法中解码ccalf序列级控制开关标志位。
[0309]
所述解码模块812还用于:从所述sps级语法中解码ccalf序列级控制开关标志位时,若ccalf的通用限制信息语法表示不允许启用ccalf,则确定所述ccalf序列级控制开关标志位为第一取值;或者,若ccalf的通用限制信息语法表示允许启用ccalf,则从所述sps级语法中解码ccalf序列级控制开关标志位为第一取值或者第二取值;其中,所述第一取值表示当前序列不允许启用ccalf;所述第二取值表示当前序列允许启用ccalf。
[0310]
所述解码模块812还用于:若sps级语法的alf序列级控制开关标志位表示当前序
列允许启用alf,且pps级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位;若所述图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则从所述图像头级语法中解码ccalf图像头级控制开关标志位。
[0311]
所述解码模块812还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则从片头级语法中解码alf片头级控制开关标志位;若所述片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则从所述片头级语法中解码ccalf片头级控制开关标志位。
[0312]
所述解码模块812还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则从图像头级语法中解码alf图像头级控制开关标志位;若所述图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则从所述图像头级语法中解码ccalf图像头级控制开关标志位。
[0313]
所述解码模块812还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则从片头级语法中解码alf片头级控制开关标志位;若所述片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则从所述片头级语法中解码ccalf片头级控制开关标志位。
[0314]
基于与上述方法同样的申请构思,本申请实施例还提出一种编码装置,所述装置应用于编码端,参见图8b所示,为所述装置的结构图,所述装置包括:
[0315]
确定模块821,用于确定序列级参数集sps级语法的alf序列级控制开关标志位,是否表示当前序列允许启用alf;
[0316]
编码模块822,用于当sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf时,在所述sps级语法中编码ccalf序列级控制开关标志位。
[0317]
所述编码模块822还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,当前序列存在色度分量,在sps级语法中编码ccalf序列级控制开关标志位。
[0318]
所述编码模块822还用于:若sps级语法的alf序列级控制开关标志位表示当前序列不允许启用alf,则禁止在所述sps级语法中编码ccalf序列级控制开关标志位。
[0319]
所述编码模块822还用于:在所述sps级语法中编码ccalf序列级控制开关标志位时,若ccalf的通用限制信息语法表示不允许启用ccalf,则所述ccalf序列级控制开关标志位为第一取值;或者,若ccalf的通用限制信息语法表示允许启用ccalf,则所述ccalf序列级控制开关标志位为第一取值或者第二取值;其中,所述第一取值表示当前序列不允许启用ccalf;所述第二取值表示当前序列允许启用ccalf。
[0320]
所述编码模块822还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位;若所述图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用
ccalf,则在所述图像头级语法中编码ccalf图像头级控制开关标志位。
[0321]
所述编码模块822还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且pps级语法表示alf语法存在于片头,则在片头级语法中编码alf片头级控制开关标志位;若所述片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则在所述片头级语法中编码ccalf片头级控制开关标志位。
[0322]
所述编码模块822还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于图像头,则在图像头级语法中编码alf图像头级控制开关标志位;若所述图像头级语法的alf图像头级控制开关标志位表示当前图像允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则在所述图像头级语法中编码ccalf图像头级控制开关标志位。
[0323]
所述编码模块822还用于:若所述图像头级语法的alf图像头级控制开关标志位表示当前图像不允许启用alf,禁止在所述图像头级语法中编码ccalf图像头级控制开关标志位。
[0324]
所述编码模块822还用于:若sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,且图像头级语法表示alf语法存在于片头,则在片头级语法中编码alf片头级控制开关标志位;若所述片头级语法的alf片头级控制开关标志位表示当前片允许启用alf,且所述sps级语法的ccalf序列级控制开关标志位表示当前序列允许启用ccalf,则在所述片头级语法中编码ccalf片头级控制开关标志位。
[0325]
所述编码模块822还用于:若所述片头级语法的alf片头级控制开关标志位表示当前片不允许启用alf,则禁止在所述片头级语法中编码ccalf片头级控制开关标志位。
[0326]
基于与上述方法同样的申请构思,本申请实施例提供的解码端设备(即视频解码器),从硬件层面而言,其硬件架构示意图具体可以参见图8c所示。包括:处理器831和机器可读存储介质832,其中:所述机器可读存储介质832存储有能够被所述处理器831执行的机器可执行指令;所述处理器831用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,所述处理器831用于执行机器可执行指令,以实现如下步骤:
[0327]
若序列级参数集sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则从所述sps级语法中解码ccalf序列级控制开关标志位。
[0328]
基于与上述方法同样的申请构思,本申请实施例提供的编码端设备(即视频编码器),从硬件层面而言,其硬件架构示意图具体可以参见图8d所示。包括:处理器841和机器可读存储介质842,其中:所述机器可读存储介质842存储有能够被所述处理器841执行的机器可执行指令;所述处理器841用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,所述处理器841用于执行机器可执行指令,以实现如下步骤:
[0329]
若序列级参数集sps级语法的alf序列级控制开关标志位表示当前序列允许启用alf,则在所述sps级语法中编码ccalf序列级控制开关标志位。
[0330]
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读
存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0331]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0332]
本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0333]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0334]
这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。