一种解码、编码方法、装置及其设备与流程
未命名
08-02
阅读:75
评论:0

1.本技术涉及编解码技术领域,尤其是涉及一种解码、编码方法、装置及其设备。
背景技术:
2.为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码可以包括预测、变换、量化、熵编码、滤波等过程。针对预测过程,预测过程可以包括帧内预测和帧间预测,帧间预测是指利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。帧内预测是指利用视频空间域的相关性,使用当前帧图像的已编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
3.浅编码是预测技术的实现方式,浅编码是简单预测方式,适用于实时性要求高、缓存小、并行性要求高的场景。但是,在采用浅编码的预测方式时,对于较大的量化步长,往往造成较大的量化误差,特别在平坦区域,整体的偏差会导致出现色块,从而导致主观有损。
技术实现要素:
4.有鉴于此,本技术提供了一种解码、编码方法、装置及其设备,提高了编码性能。
5.本技术提供一种解码方法,应用于解码端,所述方法包括:
6.基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;
7.若确定需要对所述当前图像区域进行重建值调整,则从所述当前图像区域对应的码流中获取所述当前图像区域对应的调整参数;
8.基于所述调整参数对所述当前图像区域的重建值进行调整。
9.本技术提供一种编码方法,应用于编码端,所述方法包括:
10.基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;
11.若确定需要对所述当前图像区域进行重建值调整,则获取所述当前图像区域对应的调整参数,所述调整参数用于对所述当前图像区域的重建值进行调整;
12.在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数。
13.本技术提供一种解码装置,所述解码装置包括:
14.存储器,其经配置以存储视频数据;
15.解码器,其经配置以实现:
16.基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;
17.若确定需要对所述当前图像区域进行重建值调整,则从所述当前图像区域对应的码流中获取所述当前图像区域对应的调整参数;
18.基于所述调整参数对所述当前图像区域的重建值进行调整。
19.本技术提供一种编码装置,所述编码装置包括:
20.存储器,其经配置以存储视频数据;
21.编码器,其经配置以实现:
22.基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;
23.若确定需要对所述当前图像区域进行重建值调整,则获取所述当前图像区域对应的调整参数,所述调整参数用于对所述当前图像区域的重建值进行调整;
24.在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数。
25.本技术提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
26.所述处理器用于执行机器可执行指令,以实现上述的解码方法。
27.本技术提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
28.所述处理器用于执行机器可执行指令,以实现权利要求上述的编码方法。
29.由以上技术方案可见,本技术实施例中,提出一种浅编码方法,可以适用于实时性要求高、缓存小、并行性要求高的场景,在得到当前图像区域的重建值之后,还可以对当前图像区域的重建值进行调整,从而能够使重建像素更接近原始像素,带来编码性能和解码性能的提高。对于较大的量化步长,减少量化误差,特别在平坦区域,减少整体偏差导致的色块问题,能够避免主观有损,即浅编码方法能够实现主观无损、硬件实现简单。
附图说明
30.图1a-图1c是帧内预测模式的工作原理示意图;
31.图2a-图2d是浅编码的视频编码框架的示意图;
32.图3是本技术一种实施方式中的编码方法的流程图;
33.图4是本技术一种实施方式中的解码方法的流程图;
34.图5a-图5d是本技术一种实施方式中的图像块的划分示意图;
35.图6a-图6j是本技术一种实施方式中的图像块的划分示意图;
36.图7a是本技术一种实施方式中的解码端设备的硬件结构图;
37.图7b是本技术一种实施方式中的编码端设备的硬件结构图。
具体实施方式
38.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非用于限制本技术。本技术实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但是,这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息,取决于语境。此外,所使用的词语“如果”可以被解释成为“在
……
时”,或“当
……
时”,或“响应于确定”。
39.本技术实施例中提出一种解码、编码方法、装置及其设备,可以涉及如下概念:
40.帧内预测(intra prediction)、帧间预测(inter prediction)与ibc(帧内块拷贝)预测:
41.帧内预测是指,利用视频空间域的相关性,使用当前块的已编码块进行预测,以达到去除视频空域冗余的目的。帧内预测规定了多种预测模式,每种预测模式对应一种纹理方向(dc模式除外),例如,若图像纹理呈现水平状排布,则水平预测模式可以更好的预测图像信息。
42.帧间预测是指,基于视频时域的相关性,由于视频序列包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计(motion estimation,me)。
43.帧内块拷贝(ibc,intra block copy)是指,允许同帧参考,当前块的参考数据来自同一帧,帧内块拷贝也可以称为帧内块复制。帧内块拷贝技术中,可以使用当前块的块矢量来获取当前块的预测值,示例性的,基于屏幕内容中的同一帧内存在大量重复出现的纹理这一特性,在采用块矢量获取当前块的预测值时,能够提升屏幕内容序列的压缩效率。
44.预测像素(prediction signal):预测像素是指从已编解码的像素中导出的像素值,通过原始像素与预测像素之差获得残差,进而进行残差变换量化以及系数编码。帧间的预测像素指的是当前块从参考帧导出的像素值,由于像素位置离散,需要通过插值运算来获取最终的预测像素。预测像素与原始像素越接近,两者相减得到的残差能量越小,编码压缩性能越高。
45.帧内预测模式:在帧内编码中,使用帧内预测模式进行运动补偿,即采用帧内预测模式获取当前块的预测值,帧内预测模式是只使用到当前帧的重建值、预测值等进行预测的模式。例如,帧内预测模式可以包括但不限于dc模式、bilinear模式、角度预测模式(如水平角度预测模式、垂直角度预测模式等,对此角度预测模式不做限制,可以是任意角度,如33种角度模式或者67种角度模)、ibc模式、isc模式、planar模式、逐点预测模式。
46.dc模式和角度预测模式可以参见图1a所示,dc模式适用于大面积平坦区域,将当前块的周围像素的平均值作为当前块的预测值,角度预测模式是将某角度指向的当前块的周围像素的值作为当前块的预测值。在图1a中,a是dc模式的示意图,将“d”上侧的16个参考像素的均值作为“d”的预测值。b是角度预测模式1的示意图,表示将该角度指向的参考像素的值作为当前块的预测值。c是角度预测模式2的示意图,d是角度预测模式3的示意图,e是角度预测模式4的示意图,f是角度预测模式6的示意图,g是角度预测模式6的示意图。
47.bilinear模式即双线性插值模式,参见图1b所示,bilinear模式的预测过程如下:首先产生右下角c位置的预测值(右上角参考像素a和左下角参考像素b的加权平均),然后产生右边界ac位置的预测值(右上角参考像素a和右下角c位置预测值的加权平均),然后产生下边界bc位置的预测值(左下角参考像素b和右下角c位置预测值的加权平均),剩余其它内部像素点的预测值通过水平线性预测和垂直线性预测的加权平均产生。水平线性预测产生的预测值为左边对应位置参考像素l和右边界ac位置的预测值的加权平均;垂直线性预测产生的预测值为上边对应位置参考像素t和下边界bc位置的预测值的加权平均。
48.planar模式(或plane模式)适用于像素值缓慢变化的区域,使用水平方向和垂直方向的两个线性滤波器,将两者的平均值作为当前块像素的预测值。planar模式是渐变模式,planar模式是利用了不同位置的参考像素以及不同的权重参数得到预测值的帧内预测模式。
49.ibc模式(intra block copy,即帧内块复制模式)是利用当前帧已解码部分进行类似运动估计的方式得到当前块的预测值。isc模式(intra string copy,即帧内串复制模式)是将当前块内像素以一定的扫描顺序(一般为水平光栅扫描顺序或垂直光栅扫描顺序)排列成若干一维像素组,每个像素组进行类似运动估计的方式得到像素组的预测值。
50.逐点预测模式,参见图1c所示,为16*2的像素块的4种逐点预测模式的示意图。示例性的,16*2的像素块的逐点预测模式可以为4种,每个逐点预测模式都是以16*2整块作为基本单元进行预测。在图1c中,≡用于表示采用左右两侧像素的重建值求平均得到当前像素的预测值;|||用于表示采用上下两侧像素的重建值求平均得到当前像素的预测值;》用于表示直接采用左侧像素的重建值作为当前像素的预测值;∨用于表示直接采用上侧像素的重建值作为当前像素的预测值。从图1c可以看出,对于逐点预测模式1,group2的预测需要依赖于group1的重建,对于逐点预测模式2,group1的预测需要依赖于group2的重建。
51.率失真原则(rate-distortion optimized):评价编码效率的有两大指标:码率和psnr(peak signal to noise ratio,峰值信噪比),比特流越小,则压缩率越大,psnr越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:j(mode)=d+λ*r,其中,d表示distortion(失真),通常可以使用sse指标来进行衡量,sse是指重建图像块与源图像的差值的均方和,为了实现代价考虑,也可以使用sad指标,sad是指重建图像块与源图像的差值绝对值之和;λ是拉格朗日乘子,r就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。在模式选择时,若使用率失真原则去对编码模式做比较决策,通常可以保证编码性能最佳。
52.码控:控制码率平稳性,一般是通过对量化步长的调整来达到码率平稳的目的。
53.浅编码:浅编码是预测技术的一种实现方式,浅编码是简单预测方式,适用于实时性要求高、缓存小、并行性要求高的应用场景。浅编码的压缩效率较低,可以采用帧内预测,且压缩倍率较低。在浅编码的实现过程中,一般要求主观无损,硬件实现简单。
54.浅编码的视频编码框架:参见图2a所示,为编码端的视频编码框架,可以使用该视频编码框架实现本技术实施例的编码端处理流程,即实现浅编码。视频解码框架的示意图与图2a类似,在此不再重复赘述,可以使用视频解码框架实现本技术实施例的解码端处理流程。
55.示例性的,参见图2a所示,视频编码框架可以包括块划分、预测、变换、量化、码控、熵编码器、反量化、反变换、重建等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程。此外,视频解码框架可以包括块划分、预测、变换、量化、码控、熵解码器、反量化、反变换、重建等模块,在该情况下,属于编码端的码控模块也可以作用于解码端,用以节省量化参数的编码代价以及控制预测模式等;或者,视频解码框架可以包括块划分、预测、变换、量化、熵解码器、反量化、反变换、重建等模块,在该情况下,不存在码控模块。在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
56.示例性的,在浅压缩场景下,码控技术应用于一个码控单元,码控单元就是码控的
作用范围,表示对码控单元进行码控操作。例如,码控单元可以是若干个图像块,或码控单元可以是若干个像素行,或码控单元可以是整个slice,或码控单元可以是slice内部的若干像素块,或码控单元可以是slice内部的若干像素行等。当然,上述只是码控单元的几个示例,对此码控单元不做限制。在此基础上,可以对每个码控单元内的像素块进行预测、变换、量化等操作,预测部分的模式选择由码控参与,像素块完成重建后,可以进行重建值调整操作。
57.下面对编码端和解码端的结构进行简单介绍。参见图2b所示,示出用于实现本技术实施例的编码端的实例的示意性框图。在图2b中,编码端包括预测处理单元、残差计算单元、变换处理单元、量化单元、编码单元、反量化单元(也可以称为逆量化单元)、反变换处理单元(也可以称为逆变换处理单元)、重构单元(或者称为重建单元)以及滤波器单元。在一个例子中,编码端还可以包括缓冲器、经解码图像缓冲器,其中,缓冲器用于缓存重构单元输出的重构图像块,经解码图像缓冲器用于缓存滤波器单元输出的滤波后的图像块。
58.编码端(也称为编码器)的输入为图像(可以称为待编码图像)的图像块,图像块也可以称为当前块或待编码块,编码端中还可以包括分割单元(图中未示出),该分割单元用于将待编码图像分割成多个图像块。编码端用于逐块编码从而完成对待编码图像的编码,例如,对每个图像块执行编码过程。预测处理单元用于接收或获取图像块(当前待编码图像的当前待编码图像块,也可以称为当前块,该图像块可以理解为图像块的真实值)和已重构图像数据,基于已重构图像数据中的相关数据对当前块进行预测,得到当前块的预测块。在一个例子中,预测处理单元可以包含帧间预测单元、帧内预测单元和模式选择单元,模式选择单元用于选择帧内预测模式或者帧间预测模式,若选择帧内预测模式,则由帧内预测单元执行预测过程,若选择帧间预测模式,则可以由帧间预测单元执行预测过程。
59.残差计算单元用于计算图像块的真实值和该图像块的预测块之间的残差,得到残差块,例如,残差计算单元可以通过逐像素将图像块的像素值减去预测块的像素值。
60.变换处理单元用于对残差块进行例如离散余弦变换(discrete cosine transform,dct)或离散正弦变换(discrete sine transform,dst)的变换,以在变换域中获取变换系数,变换系数也可以称为变换残差系数,该变换残差系数可以在变换域中表示残差块。
61.量化单元用于通过应用标量量化或向量量化来量化变换系数,以获取经量化变换系数,经量化变换系数也可以称为经量化残差系数。量化过程可以减少与部分或全部变换系数有关的位深度。例如,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。可通过调整量化参数(quantization parameter,qp)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantization parameter,qp)指示合适的量化步长。
62.编码单元用于对上述经量化残差系数进行编码,以经编码比特流的形式输出的经编码图像数据(即当前待编码图像块的编码结果),然后将经编码比特流传输到解码器,或将其存储起来,后续传输至解码器或用于检索。编码单元还可用于对当前图像块的其它语法元素进行编码,例如将预测模式编码至码流等。编码算法包括但不限于可变长度编码(variable length coding,vlc)算法、上下文自适应vlc(context adaptive vlc,cavlc)
算法、算术编码算法、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,cabac)算法、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,sbac)算法、概率区间分割熵(probability interval partitioning entropy,pipe)算法。
63.反量化单元用于对上述经量化系数进行反量化,以获取经反量化系数,该反量化是上述量化单元的反向应用,例如,基于或使用与量化单元相同的量化步长,应用量化单元应用的量化方案的逆量化方案。经反量化系数也可以称为经反量化残差系数。
64.反变换处理单元用于对上述反量化系数进行反变换,应该理解,该反变换是上述变换处理单元的反向应用,例如,反变换可以包括逆离散余弦变换(discrete cosine transform,dct)或逆离散正弦变换(discrete sine transform,dst),以在像素域(或者称为样本域)中获取逆变换块。逆变换块也可以称为逆变换经反量化块或逆变换残差块。
65.重构单元用于将逆变换块(即逆变换残差块)添加至预测块,以在样本域中获取经重构块,重构单元可以为求和器,例如,将残差块的样本值(即像素值)与预测块的样本值相加。该重构单元输出的重构块可以后续用于预测其他图像块,例如,在帧内预测模式下使用。
66.滤波器单元(或简称“滤波器”)用于对经重构块进行滤波以获取经滤波块,从而顺利进行像素转变或提高图像质量。滤波器单元可以为环路滤波器单元,旨在表示一个或多个环路滤波器,例如,滤波器单元可以为去块滤波器、样本自适应偏移(sample-adaptive offset,sao)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,alf),或锐化或平滑滤波器,或协同滤波器。在一个例子中,该滤波单元输出的经滤波块可以后续用于预测其他图像块,例如,在帧间预测模式下使用,对此不做限制。
67.参见图2c所示,示出用于实现本技术实施例的编码端(也可以称为解码器)的实例的示意性框图。解码器用于接收例如由编码器编码的经编码图像数据(即经编码比特流,例如,包括图像块的经编码比特流及相关联的语法元素),以获取经解码图像。解码器包括解码单元、反量化单元、反变换处理单元、预测处理单元、重构单元、滤波器单元。在一些实例中,解码器可执行大体上与图2b的编码器描述的编码遍次互逆的解码遍次。在一个例子中,解码器还可以包括缓冲器、经解码图像缓冲器,其中,缓冲器用于缓存重构单元输出的重构图像块,经解码图像缓冲器用于缓存滤波器单元输出的滤波后的图像块。
68.解码单元用于对经编码图像数据执行解码,以获取经量化系数和/或经解码的编码参数(例如,解码参数可以包括帧间预测参数、帧内预测参数、滤波器参数和/或其它语法元素中的任意一个或全部)。解码单元还用于将上述经解码的编码参数转发至预测处理单元,以供预测处理单元根据编码参数执行预测过程。反量化单元的功能可与编码器的反量化单元的功能相同,用于反量化(即,逆量化)在由解码单元解码的经量化系数。
69.反变换处理单元的功能可与编码器的反变换处理单元的功能可以相同,重构单元(例如求和器)的功能可与编码器的重构单元的功能可以相同,用于对上述经量化系数进行逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程),从而得到逆变换块(也可以称为逆变换残差块),该逆变换块即为当前图像块在像素域中的残差块。
70.预测处理单元,用于接收或获取经编码图像数据(例如当前图像块的经编码比特流)和已重构图像数据,预测处理单元还可以从例如解码单元接收或获取预测相关参数和/
或关于所选择的预测模式的信息(即经解码的编码参数),并且基于已重构图像数据中的相关数据和经解码的编码参数对当前图像块进行预测,得到当前图像块的预测块。
71.在一个例子中,预测处理单元可以包含帧间预测单元、帧内预测单元和模式选择单元,模式选择单元用于选择帧内预测模式或者帧间预测模式,若选择帧内预测模式,则由帧内预测单元执行预测过程,若选择帧间预测模式,则由帧间预测单元执行预测过程。
72.重构单元用于将逆变换块(即逆变换残差块)添加到预测块,以在样本域中获取经重构块,例如将逆变换残差块的样本值与预测块的样本值相加。
73.滤波器单元用于对经重构块进行滤波以获取经滤波块,该经滤波块即为经解码图像块。
74.应当理解的是,在本技术实施例的编码器和解码器中,针对某个环节的处理结果也可以经过进一步处理后,输出到下一个环节,例如,在插值滤波、运动矢量推导或滤波等环节之后,对相应环节的处理结果进一步进行clip或移位shift等操作。
75.在编码器以及解码器的基础上,本技术实施例提供一种可能的编/解码实现方式,如图2d所示,图2d为本技术实施例提供的一种编码和解码的流程示意图,该编码和解码实现方式包括过程
①
至过程
⑤
,过程
①
至过程
⑤
可以由上述的解码器和编码器执行。过程
①
:将一帧图像分成一个或多个互相不重叠的并行编码单元。该一个或多个并行编码单元之间无依赖关系,可以完全并行/独立编码和解码,如图2d所示出的并行编码单元1和并行编码单元2。
76.过程
②
:对于每个并行编码单元,可再将其分成一个或多个互相不重叠的独立编码单元,各个独立编码单元间可相互不依赖,但可以共用一些并行编码单元头信息。例如,独立编码单元的宽为w_lcu,高为h_lcu。若并行编码单元划分成一个独立编码单元,则独立编码单元的尺寸与并行编码单元完全相同;否则,则独立编码单元的宽应大于高(除非是边缘区域)。
77.通常的,独立编码单元可为固定的w_lcu
×
h_lcu,w_lcu和h_lcu均为2的n次方(n≥0),如独立编码单元的尺寸为:128
×
4,64
×
4,32
×
4,16
×
4,8
×
4,32
×
2,16
×
2或8
×
2等。
78.作为一种可能的示例,独立编码单元可以为固定的128
×
4。若并行编码单元的尺寸为256
×
8,则可以将并行编码单元等分为4个独立编码单元;若并行编码单元的尺寸为288
×
10,则并行编码单元以划分为:第一/二行为2个128
×
4+1个32
×
4的独立编码单元;第三行为2个128
×
2+1个32
×
2的独立编码单元。值得注意的是,独立编码单元既可以是包括亮度y、色度cb、色度cr三个分量,或红(red,r)、绿(green,g)、蓝(blue,b)三个分量,或亮度y、色度co、色度cg三个分量也可以仅包含其中的某一个分量。若独立编码单元包含三个分量,则这三个分量的尺寸可以完全一样,也可不一样,具体与图像的输入格式相关。
79.过程
③
:对于每个独立编码单元,可再将其分成一个或多个互相不重叠的编码单元,独立编码单元内的各个编码单元可相互依赖,如多个编码单元可以进行相互参考预编解码。
80.若编码单元与独立编码单元尺寸相同(即独立编码单元仅分成一个编码单元),则其尺寸可为过程
②
所述的所有尺寸。若独立编码单元分成多个互相不重叠的编码单元,则其可行划分例子有:水平等分(编码单元的高与独立编码单元相同,但宽不同,可为其1/2,
1/4,1/8,1/16等),垂直等分(编码单元的宽与独立编码单元相同,高不同,可为其1/2,1/4,1/8,1/16等),水平和垂直等分(四叉树划分)等,优选为水平等分。
81.编码单元的宽为w_cu,高为h_cu,则其宽应大于高(除非是边缘区域)。通常的,编码单元可为固定的w_cu x h_cu,w_cu和h_cu均为2个n次方(n大于等于0),如16x4,8x4,16x2,8x2,8x1,4x1等。作为一种可能的示例,编码单元可为固定的16x4。若独立编码单元的尺寸为64x4,则可将独立编码单元等分为4个编码单元;若独立编码单元的尺寸为72x4,则编码单元划分为:4个16x4+1个8x4。值得注意的是,编码单元既可以是包括亮度y、色度cb、色度cr三个分量(或红r、绿g、蓝b三分量,或,亮度y、色度co、色度cg),也可以仅包含其中的某一个分量。若包含三个分量,几个分量的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
82.值得注意的是,过程
③
可以是编解码方法中一个可选的步骤,编/解码器可以对过程
②
获得的独立编码单元进行残差系数(或残差值)进行编/解码。
83.过程
④
:对于编码单元,可以将其再将其分成一个或多个互相不重叠的预测组(prediction group,pg),pg也简称为group,各pg按照选定预测模式进行编解码,得到pg的预测值,组成整个编码单元的预测值,基于预测值和编码单元的原始值,获得编码单元的残差值。
84.过程
⑤
:基于编码单元的残差值,对编码单元进行分组,获得一个或多个相不重叠的残差小块(residual block,rb),各个rb的残差系数按照选定模式进行编解码,形成残差系数流。具体的,可分为对残差系数进行变换和不进行变换两类。
85.其中,过程
⑤
中残差系数编解码方法的选定模式可以包括,但不限于下述任一种:半定长编码方式、指数哥伦布(golomb)编码方法、golomb-rice编码方法、截断一元码编码方法、游程编码方法、直接编码原始残差值等。例如,编码器可直接对rb内的系数进行编码。又例如,编码器也可以对残差块进行变换,如dct、dst、hadamard变换等,再对变换后的系数进行编码。作为一种可能的示例,当rb较小时,编码器可以直接对rb内的各个系数进行统一量化,再进行二值化编码。若rb较大,可以进一步划分为多个系数组(coefficient group,cg),再对各个cg进行统一量化,再进行二值化编码。在本技术的一些实施例中,系数组(cg)和量化组(qg)可以相同,当然,系数组和量化组也就可以不同。
86.下面以半定长编码方式对残差系数编码的部分进行示例性说明。首先,将一个rb块内残差绝对值的最大值定义为修整最大值(modified maximum,mm)。其次,确定该rb块内残差系数的编码比特数(同一rb块内残差系数的编码比特数一致)。例如,若当前rb块的关键限值(critica llimit,cl)为2,当前残差系数为1,则编码残差系数1需要2个比特,表示为01。若当前rb块的cl为7,则表示编码8-bit的残差系数和1-bit的符号位。cl的确定是去找满足当前子块所有残差都在[-2^(m-1),2^(m-1)]范围之内的最小m值。若同时存在-2^(m-1)和2^(m-1)两个边界值,则m增加1,即需要m+1个比特编码当前rb块的所有残差;若仅存在-2^(m-1)和2^(m-1)两个边界值中的一个,则编码一个trailing位来确定该边界值是-2^(m-1)还是2^(m-1);若所有残差均不存在-2^(m-1)和2^(m-1)中的任何一个,则无需编码该trailing位。对于某些特殊的情况,编码器可以直接编码图像的原始值,而不是残差值。
[0087]
示例性的,浅编码是预测技术的实现方式,浅编码是简单预测方式,适用于实时性要求高、缓存小、并行性要求高的场景。但是,浅编码的编码过程中,对于较大的量化步长,
往往造成较大的量化误差,特别在平坦区域,整体的偏差会导致出现色块,从而导致主观有损。
[0088]
针对上述问题,本技术实施例中提出一种浅编码的滤波方法,可以适用于实时性要求高、缓存小、并行性要求高的场景,在得到当前图像区域的重建值之后,可以对当前图像区域的重建值进行调整,从而能够使重建像素更接近原始像素,带来编码性能和解码性能的提高。对于较大的量化步长,减少量化误差,特别在平坦区域,减少整体偏差导致的色块问题,能够避免主观有损,提高主观性能,浅编码的编码过程中,能够实现主观无损、硬件实现简单。
[0089]
以下结合几个具体实施例,对本技术实施例中的解码方法和编码方法进行详细说明。
[0090]
实施例1:本技术实施例中提出一种编码方法,参见图3所示,为该编码方法的流程示意图,该方法可以应用于编码端(也可以称为视频编码器),该方法可以包括:
[0091]
步骤301、基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整。
[0092]
在一种可能的实施方式中,可以采用显示方法确定是否需要对当前图像区域进行重建值调整,为了区分方便,将显示方法涉及的特征信息称为第一类特征信息。
[0093]
例如,获取当前图像区域对应的第一类特征信息,若当前图像区域对应的第一类特征信息满足特定条件,则确定是否需要对当前图像区域进行重建值调整,在当前图像区域对应的码流中编码调整控制开关对应的标记位,该标记位用于指示是否需要对当前图像区域进行重建值调整。若当前图像区域对应的第一类特征信息不满足特定条件,则确定不需要对当前图像区域进行重建值调整,也不在当前图像区域对应的码流中编码调整控制开关对应的标记位。
[0094]
其中,在第一类特征信息满足特定条件时,若确定需要对当前图像区域进行重建值调整,则在当前图像区域对应的码流中编码调整控制开关对应的标记位,且该标记位为第一取值,通过第一取值表示需要对当前图像区域进行重建值调整。若确定不需要对当前图像区域进行重建值调整,则在当前图像区域对应的码流中编码调整控制开关对应的标记位,且该标记位为第二取值,通过第二取值表示不需要对当前图像区域进行重建值调整。其中,第一取值和第二取值可以根据经验配置,对此不做限制,比如说,第一取值为1,第二取值为0。
[0095]
针对“确定是否需要对当前图像区域进行重建值调整”的过程,若启动当前图像区域的重建值调整的代价值,小于关闭当前图像区域的重建值调整的代价值,则确定需要对当前图像区域进行重建值调整;否则,确定不需要对当前图像区域进行重建值调整。
[0096]
示例性的,当前图像区域可以包括一个图像块,或者,当前图像区域可以包括连续的多个图像块。当前图像区域对应的码流是指:与当前图像区域有关的码流,即该码流中存在用于对当前图像区域进行处理的信息,对此当前图像区域对应的码流不做限制。
[0097]
示例性的,当前图像区域对应的第一类特征信息可以包括但不限于以下至少一种:预测模式;码流缓冲区内的数据量;量化步长。基于此,若第一类特征信息包括预测模式,则在当前图像区域对应的预测模式是指定预测模式时,确定该预测模式满足特定条件;否则,确定该预测模式不满足特定条件。若第一类特征信息包括码流缓冲区内的数据量,则
在码流缓冲区内的数据量位于预设数据量区间时,确定码流缓冲区内的数据量满足特定条件;否则,确定码流缓冲区内的数据量不满足特定条件。若第一类特征信息包括量化步长,则在当前图像区域对应的量化步长位于预设步长区间时,确定该量化步长满足特定条件;否则,确定该量化步长不满足特定条件。
[0098]
若第一类特征信息包括预测模式和码流缓冲区内的数据量,那么,在预测模式满足特定条件,且码流缓冲区内的数据量满足特定条件时,才确定当前图像区域对应的第一类特征信息满足特定条件,否则,确定当前图像区域对应的第一类特征信息不满足特定条件。或者,若第一类特征信息包括量化步长和码流缓冲区内的数据量,那么,在量化步长满足特定条件,且码流缓冲区内的数据量满足特定条件时,才确定当前图像区域对应的第一类特征信息满足特定条件,否则,确定当前图像区域对应的第一类特征信息不满足特定条件。或者,若第一类特征信息包括预测模式和量化步长,那么,在预测模式满足特定条件,且量化步长满足特定条件时,才确定当前图像区域对应的第一类特征信息满足特定条件,否则,确定当前图像区域对应的第一类特征信息不满足特定条件。或者,若第一类特征信息包括预测模式、码流缓冲区内的数据量和量化步长,那么,在预测模式满足特定条件,码流缓冲区内的数据量满足特定条件,且量化步长满足特定条件时,才确定当前图像区域对应的第一类特征信息满足特定条件,否则,确定当前图像区域对应的第一类特征信息不满足特定条件。
[0099]
当然,上述只是第一类特征信息的几个示例,本实施例中对此第一类特征信息不做限制。
[0100]
在上述实施例中,指定预测模式可以是普通帧内预测模式;其中:普通帧内预测模式包括dc模式;或者,普通帧内预测模式包括dc模式、水平预测模式和垂直预测模式;或者,普通帧内预测模式包括dc模式和角度预测模式;或者,普通帧内预测模式包括dc模式、角度预测模式和planar模式;或者,普通帧内预测模式包括dc模式、角度预测模式和bilinear模式;或者,普通帧内预测模式包括dc模式、角度预测模式、planar模式和bilinear模式。
[0101]
在另一种可能的实施方式中,可以采用隐式方法确定是否需要对当前图像区域进行重建值调整,为了区分方便,将隐式方法涉及的特征信息称为第二类特征信息。
[0102]
例如,获取当前图像区域对应的第二类特征信息,若当前图像区域对应的第二类特征信息满足特定条件,则确定需要对当前图像区域进行重建值调整,若当前图像区域对应的第二类特征信息不满足特定条件,则确定不需要对当前图像区域进行重建值调整。
[0103]
关于隐式方法的具体实现方式,可以参见后续实施例,在此不再赘述。
[0104]
步骤302、若确定需要对当前图像区域进行重建值调整,则获取当前图像区域对应的调整参数,其中,该调整参数用于对当前图像区域的重建值进行调整。
[0105]
步骤303、在当前图像区域对应的码流中编码当前图像区域对应的调整参数。
[0106]
示例性的,若当前图像区域对应的调整参数包括多个调整值,则可以在当前图像区域对应的码流中编码全部调整值或者部分调整值(即多个调整值中的部分调整值)。
[0107]
其中,在当前图像区域对应的码流中编码全部调整值或者部分调整值,可以包括但不限于:按照多个调整值的编码顺序对多个调整值进行排序,并基于排序结果依次遍历多个调整值中的每个调整值;针对当前遍历的调整值,若在当前图像区域对应的码流中编码该调整值之后,当前码率小于预设码率值,则在当前图像区域对应的码流中编码该调整
值,且继续遍历该调整值的下一个调整值,将下一个调整值作为当前遍历的调整值;否则,禁止在当前图像区域对应的码流中编码该调整值,且停止遍历该调整值的下一个调整值。
[0108]
示例性的,当前图像区域可以对应多个像素组,当前图像区域对应的调整参数可以包括多个调整值,且多个调整值可以包括k个像素组对应的调整值,k个像素组可以是多个像素组(即所有像素组)中的全部像素组或部分像素组。
[0109]
在此基础上,可以在当前图像区域对应的码流中编码k个像素组对应的m个调整值,m可以为正整数,m可以小于或者等于k,且m个调整值可以是基于k个像素组对应的调整值确定。以及,还可以在当前图像区域对应的码流中编码调整值分组指示信息,该调整值分组指示信息用于指示m个调整值与k个像素组之间的匹配关系。
[0110]
比如说,若k个像素组对应同一个调整值,则调整值分组指示信息可以为第一取值,通过第一取值表示k个像素组对应同一个调整值;若k个像素组对应k个调整值,则调整值分组指示信息可以为第二取值,通过第二取值可以表示k个像素组对应k个调整值。
[0111]
示例性的,若k个像素组是多个像素组中的部分像素组,则编码端还可以在当前图像区域对应的码流中编码k个像素组对应的像素组指示信息,表示当前图像区域对应的码流中携带的是该像素组指示信息对应的像素组的调整值。若k个像素组是多个像素组中的全部像素组,则编码端可以不在当前图像区域对应的码流中编码像素组对应的像素组指示信息,表示当前图像区域对应的码流中携带的是所有像素组的调整值,此时,不需要在码流中编码像素组对应的像素组指示信息。其中,若k个像素组是多个像素组中的部分像素组,则该像素组指示信息用于区分所有类别的像素组中的目标类别的像素组,也就是说,从所有像素组中区分出k个像素组。
[0112]
示例性的,在当前图像区域对应多个通道时,针对每个像素组来说,该像素组对应的调整值可以包括该像素组对应的多个通道的调整值,多个通道可以包括如下通道中的至少一种:y通道、u通道、v通道、co通道、cg通道、r通道、g通道、b通道、alpha通道、ir通道、d通道、w通道。比如说,多个通道包括y通道、u通道、v通道,或者,多个通道包括r通道、g通道、b通道,或者,多个通道包括、r通道、g通道、b通道、alpha通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道,或者,多个通道包括r通道、g通道、b通道、w通道,或者,多个通道包括r通道、g通道、b通道、ir通道、w通道,或者,多个通道包括r通道、g通道、b通道、d通道,或者,多个通道可以包括r通道、g通道、b通道、d通道、w通道。其中,除了rgb彩色感光通道,也可能有ir通道(红外或近红外感光通道),d通道(暗光通道,主要通过红外光或近红外光),w通道(全色感光通道),针对不同的传感器有不同的通道,比如说,传感器类型可以是rgb传感器,rgbir传感器,rgbw传感器,rgbirw传感器,rgbd传感器,rgbdw传感器等。
[0113]
示例性的,当前图像区域对应多个像素组,可以包括但不限于如下方式:按照各像素点的调整前重建值确定当前图像区域对应的多个像素组;或者,基于像素点的周围像素点的调整前重建值确定该像素点的分类值,按照各像素点的分类值确定当前图像区域对应的多个像素组;或者,按照各像素点的像素位置确定当前图像区域对应的多个像素组;或者,根据当前图像区域的预测模式确定当前图像区域对应的多个像素组;或者,根据当前图像区域的扫描顺序确定当前图像区域对应的多个像素组。当然,上述方式只是示例,对此不做限制。
[0114]
其中,在根据当前图像区域的预测模式确定当前图像区域对应的多个像素组时,
可以根据当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式;基于该划分数量、该滤波区域和该划分方式确定当前图像区域对应的多个像素组。
[0115]
示例性的,若当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;若当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定像素组的滤波区域是第二滤波区域,确定划分方式是第二尺寸规格。
[0116]
比如说,若当前图像区域是16*2的图像块(即一个图像块),在根据预测模式划分多个像素组时,若当前图像区域的预测模式是水平预测模式,则将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是8*1;或者,将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是16*1。若当前图像区域的预测模式不是水平预测模式,则将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2。
[0117]
示例性的,若当前图像区域是16*2的图像块,那么,也可以直接将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2,而不考虑当前图像区域的预测模式。
[0118]
在上述实施例中,调整值的取值范围可以基于量化步长确定。
[0119]
示例性的,上述执行顺序只是为了方便描述给出的示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
[0120]
由以上技术方案可见,本技术实施例中,提出一种浅编码方法,可以适用于实时性要求高、缓存小、并行性要求高的场景,在得到当前图像区域的重建值之后,还可以对当前图像区域的重建值进行调整,从而能够使重建像素更接近原始像素,带来编码性能和解码性能的提高。对于较大的量化步长,减少量化误差,特别在平坦区域,减少整体偏差导致的色块问题,能够避免主观有损,即浅编码方法能够实现主观无损、硬件实现简单。
[0121]
实施例2:本技术实施例中提出一种解码方法,参见图4所示,为该解码方法的流程示意图,该方法可以应用于解码端(也可以称为视频解码器),该方法可以包括:
[0122]
步骤401、基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整。
[0123]
在一种可能的实施方式中,可以采用显示方法确定是否需要对当前图像区域进行重建值调整,为了区分方便,将显示方法涉及的特征信息称为第一类特征信息。
[0124]
例如,可以获取当前图像区域对应的第一类特征信息,若当前图像区域对应的第一类特征信息满足特定条件,则可以从当前图像区域对应的码流中获取调整控制开关对应的标记位,并基于该标记位确定是否需要对当前图像区域进行重建值调整。其中,若该标记位为第一取值,则可以确定需要对当前图像区域进行重建值调整;若该标记位为第二取值,则可以确定不需要对当前图像区域进行重建值调整。或者,若当前图像区域对应的第一类特征信息不满足特定条件,则可以直接确定不需要对当前图像区域进行重建值调整,也不需要当前图像区域对应的码流中获取调整控制开关对应的标记位。
[0125]
示例性的,当前图像区域可以包括一个图像块,或者,当前图像区域可以包括连续的多个图像块。当前图像区域对应的码流是指:与当前图像区域有关的码流,即该码流中存在用于对当前图像区域进行处理的信息,对此当前图像区域对应的码流不做限制。
[0126]
示例性的,当前图像区域对应的第一类特征信息可以包括但不限于以下至少一种:预测模式;码流缓冲区内的数据量;量化步长。基于此,若第一类特征信息包括预测模式,则在当前图像区域对应的预测模式是指定预测模式时,确定该预测模式满足特定条件;否则,确定该预测模式不满足特定条件。若第一类特征信息包括码流缓冲区内的数据量,则在码流缓冲区内的数据量位于预设数据量区间时,确定码流缓冲区内的数据量满足特定条件;否则,确定码流缓冲区内的数据量不满足特定条件。若第一类特征信息包括量化步长,则在当前图像区域对应的量化步长位于预设步长区间时,确定该量化步长满足特定条件;否则,确定该量化步长不满足特定条件。
[0127]
在上述实施例中,指定预测模式可以是普通帧内预测模式;其中:普通帧内预测模式包括dc模式;或者,普通帧内预测模式包括dc模式、水平预测模式和垂直预测模式;或者,普通帧内预测模式包括dc模式和角度预测模式;或者,普通帧内预测模式包括dc模式、角度预测模式和planar模式;或者,普通帧内预测模式包括dc模式、角度预测模式和bilinear模式;或者,普通帧内预测模式包括dc模式、角度预测模式、planar模式和bilinear模式。
[0128]
在另一种可能的实施方式中,可以采用隐式方法确定是否需要对当前图像区域进行重建值调整,为了区分方便,将隐式方法涉及的特征信息称为第二类特征信息。
[0129]
例如,获取当前图像区域对应的第二类特征信息,若当前图像区域对应的第二类特征信息满足特定条件,则确定需要对当前图像区域进行重建值调整,若当前图像区域对应的第二类特征信息不满足特定条件,则确定不需要对当前图像区域进行重建值调整。
[0130]
关于隐式方法的具体实现方式,可以参见后续实施例,在此不再赘述。
[0131]
步骤402、若确定需要对当前图像区域进行重建值调整,则从当前图像区域对应的码流中获取当前图像区域对应的调整参数,该调整参数用于对重建值进行调整。
[0132]
步骤403、基于该调整参数对当前图像区域的重建值进行调整。
[0133]
在一种可能的实施方式中,当前图像区域对应的调整参数可以包括多个调整值,当前图像区域对应多个像素组,多个调整值包括k个像素组对应的调整值,k个像素组是多个像素组中的全部像素组或部分像素组。在此基础上,基于该调整参数对当前图像区域的重建值进行调整,可以包括但不限于:基于多个调整值对k个像素组内的像素点的重建值进行调整,示例性的,k可以为大于或等于1的正整数。其中,基于多个调整值对k个像素组内的像素点的重建值进行调整,可以包括但不限于如下方式:针对k个像素组中的每个像素组,若多个调整值包括该像素组对应的调整值,则基于该像素组对应的调整值对该像素组内每个像素点的重建值进行调整,得到该像素组内每个像素点的调整后的重建值。
[0134]
示例性的,若k个像素组是多个像素组中的部分像素组,则解码端还可以从当前图像区域对应的码流中获取k个像素组对应的像素组指示信息;基于该像素组指示信息从所有像素组中选取k个像素组,并将多个调整值与k个像素组进行关联,这样,就可以基于多个调整值对k个像素组内的像素点的重建值进行调整,即只对k个像素组的重建值进行调整。
[0135]
其中,若k个像素组是多个像素组中的部分像素组,则该像素组指示信息用于区分所有类别的像素组中的目标类别的像素组,也就是说,从所有像素组中区分出k个像素组。
[0136]
其中,针对每个像素组,该像素组对应的调整值可以包括该像素组对应的多个通道的调整值,多个通道可以包括如下通道中的至少一种:y通道、u通道、v通道、r通道、g通道、b通道、alpha通道、ir通道、d通道、w通道。比如说,多个通道包括y通道、u通道、v通道,或者,多个通道包括r通道、g通道、b通道,或者,多个通道包括、r通道、g通道、b通道、alpha通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道,或者,多个通道可以包括r通道、g通道、b通道、w通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道、w通道,或者,多个通道可以包括r通道、g通道、b通道、d通道,或者,多个通道可以包括r通道、g通道、b通道、d通道、w通道。
[0137]
示例性的,还可以从当前图像区域对应的码流中获取调整值分组指示信息,该调整值分组指示信息用于指示调整值与k个像素组之间的映射关系;基于调整值分组指示信息从当前图像区域对应的码流中解析m个调整值,m为正整数,且m小于或者等于k;基于m个调整值确定k个像素组对应的调整值。比如说,若调整值分组指示信息为为第一取值,则m为1,在该情况下,解码端确定k个像素组与一个调整值对应;若调整值分组指示信息为第二取值,则m为k,在该情况下,解码端确定k个像素组与k个调整值对应。
[0138]
示例性的,在当前图像区域对应多个通道时,从当前图像区域对应的码流中解析m个调整值可以包括:针对每个通道,从当前图像区域对应的码流中解析该通道对应的m个调整值。
[0139]
示例性的,当前图像区域对应多个像素组,可以包括但不限于:按照各像素点的调整前重建值确定当前图像区域对应的多个像素组;或者,基于像素点的周围像素点的调整前重建值确定该像素点的分类值,按照各像素点的分类值确定当前图像区域对应的多个像素组;或者,按照各像素点的像素位置确定当前图像区域对应的多个像素组;或者,根据当前图像区域的预测模式确定当前图像区域对应的多个像素组;或者,根据当前图像区域的扫描顺序确定当前图像区域对应的多个像素组。当然,上述方式只是示例,对此不做限制。
[0140]
其中,在根据当前图像区域的预测模式确定当前图像区域对应的多个像素组时,可以根据当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式;然后,基于该划分数量、该滤波区域和该划分方式确定当前图像区域对应的多个像素组。
[0141]
示例性的,根据当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式,可以包括:若当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;若当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定像素组的滤波区域是第二滤波区域,确定划分方式是第二尺寸规格。
[0142]
比如说,若当前图像区域是16*2的图像块(即一个图像块),在根据预测模式划分多个像素组时,若当前图像区域的预测模式是水平预测模式,则将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是8*1;或者,将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是16*1。若当前图像区域的预测模式不是水平预测模式,则将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2。
[0143]
示例性的,若当前图像区域是16*2的图像块,那么,也可以直接将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2,而不考虑当前图像区域的预测模式。
[0144]
在上述实施例中,调整值的取值范围可以基于量化步长确定。
[0145]
由以上技术方案可见,本技术实施例中,提出一种浅编码方法,可以适用于实时性要求高、缓存小、并行性要求高的场景,在得到当前图像区域的重建值之后,还可以对当前图像区域的重建值进行调整,从而能够使重建像素更接近原始像素,带来编码性能和解码性能的提高。对于较大的量化步长,减少量化误差,特别在平坦区域,减少整体偏差导致的色块问题,能够避免主观有损,即浅编码方法能够实现主观无损、硬件实现简单。
[0146]
实施例3:针对实施例1和实施例2,可以确定是否需要对当前图像区域进行重建值调整。比如说,针对编码端来说,编码端在编码n个编码块(n≥1)的码流后,可以将其中的m个编码块(m≤n)记为当前图像区域,可以确定是否需要对当前图像区域进行重建值调整。针对解码端来说,解码端在解析n个解码块(n≥1)的码流后,可以将其中的m个解码块(与编码端的m个编码块对应)记为当前图像区域,可以确定是否需要对当前图像区域进行重建值调整。
[0147]
示例性的,还可以确定是否需要对当前图像区域进行预测值调整,也就是说,可以基于当前图像区域对应的调整参数对当前图像区域的预测值进行调整,预测值调整过程与重建值调整过程类似,本实施例中不再赘述。示例性的,还可以确定是否需要对当前图像区域进行残差值调整,也就是说,可以基于当前图像区域对应的调整参数对当前图像区域的残差值进行调整,残差值调整过程与重建值调整过程类似,本实施例中不再赘述。
[0148]
示例性的,为了确定是否需要对当前图像区域进行重建值调整,可以采用如下方式:
[0149]
显式语法方式:编码端在码流中编码调整控制开关对应的标记位,解码端从码流中解析调整控制开关对应的标记位,基于该标记位确定是否需要对当前图像区域进行重建值调整。
[0150]
以下结合具体应用场景,对显式语法方式的实现过程进行说明,该过程可以包括:
[0151]
步骤s11、编码端确定当前图像区域对应的第一类特征信息是否满足特定条件。
[0152]
如果否,则可以执行步骤s12,如果是,则可以执行步骤s13。
[0153]
示例性的,当前图像区域对应的第一类特征信息可以包括但不限于以下至少一种:预测模式;码流缓冲区内的数据量;量化步长。当然,上述只是第一类特征信息的几个示例,对此不做限制,后续以预测模式、码流缓冲区内的数据量、量化步长为例进行说明。
[0154]
情况1:第一类特征信息包括预测模式。在当前图像区域对应的预测模式是指定预测模式时,可以确定第一类特征信息满足特定条件;否则,即在当前图像区域对应的预测模式不是指定预测模式时,可以确定第一类特征信息不满足特定条件。
[0155]
情况2:第一类特征信息包括码流缓冲区内的数据量。在码流缓冲区内的数据量位于预设数据量区间时,可以确定第一类特征信息满足特定条件;否则,即在码流缓冲区内的数据量不位于预设数据量区间时,可以确定第一类特征信息不满足特定条件。
[0156]
示例性的,可以预先配置预设数据量区间[a1,a2],a1用于表示数据量最小值,a2用于表示数据量最大值,a1和a2均可以根据经验配置,对此不做限制。
[0157]
若码流缓冲区内的数据量大于或者等于a1,且码流缓冲区内的数据量小于或者等于a2,则码流缓冲区内的数据量位于预设数据量区间。若码流缓冲区内的数据量小于a1,或者,码流缓冲区内的数据量大于a2,则码流缓冲区内的数据量不位于预设数据量区间。
[0158]
示例性的,若码流缓冲区内的数据量位于预设数据量区间,即码流缓冲区内的数据量小于或者等于a2,那么,在对当前图像区域进行滤波处理(图1所示的编码过程就是滤波过程)后,则加入滤波参数后不会触发上溢,即不会导致码流缓冲区超出buffer限制。
[0159]
情况3:第一类特征信息包括量化步长。在当前图像区域对应的量化步长位于预设步长区间时,可以确定第一类特征信息满足特定条件;否则,即在当前图像区域对应的量化步长不位于预设步长区间时,可以确定第一类特征信息不满足特定条件。
[0160]
示例性的,可以预先配置预设步长区间[b1,b2],b1用于表示步长最小值,b2用于表示步长最大值,b1和b2均可以根据经验配置,对此不做限制。若当前图像区域对应的量化步长大于或者等于b1,且当前图像区域对应的量化步长小于或者等于b2,则当前图像区域对应的量化步长位于预设步长区间。若当前图像区域对应的量化步长小于b1,或者,当前图像区域对应的量化步长大于b2,则当前图像区域对应的量化步长不位于预设步长区间。
[0161]
示例性的,对于情况3,在量化步长满足一定条件(即预设步长区间)时,才确定第一类特征信息满足特定条件,而预设步长区间能够使得对于不影响主观的量化步长不进行调整。
[0162]
示例性的,在配置b1的取值时,b1可以根据经验配置,对此不做限制,如b1可以根据当前图像区域的输入位宽确定,在当前图像区域的输入位宽越大时,b1的取值越大。例如,在当前图像区域的输入位宽是8bit时,b1的取值是16,在当前图像区域的输入位宽是10bit时,b1的取值是24,在当前图像区域的输入位宽是12bit时,b1的取值是32。当然,上述只是输入位宽与步长最小值b1之间的示例,对此步长最小值b1不做限制。
[0163]
综上所述,在量化步长(qp)满足如下关系时,量化步长大于或者等于b1,即满足预设步长区间的最小值要求:针对8bit,qp≥16;针对10bit,qp≥24;针对12bit,qp≥32。
[0164]
示例性的,在配置b2的取值时,b2可以根据经验配置,对此不做限制,比如说,b2可以是无穷大的取值,b2也可以是某个固定值,48、60、76等。
[0165]
情况4:第一类特征信息包括预测模式和码流缓冲区内的数据量。在当前图像区域对应的预测模式是指定预测模式,且码流缓冲区内的数据量位于预设数据量区间时,可以确定第一类特征信息满足特定条件;否则,即当前图像区域对应的预测模式不是指定预测模式,和/或,码流缓冲区内的数据量不位于预设数据量区间,确定第一类特征信息不满足特定条件。
[0166]
情况5:第一类特征信息包括预测模式和量化步长。在当前图像区域对应的预测模式是指定预测模式,且当前图像区域对应的量化步长位于预设步长区间时,可以确定第一类特征信息满足特定条件;否则,即当前图像区域对应的预测模式不是指定预测模式,和/或,当前图像区域对应的量化步长不位于预设步长区间,确定第一类特征信息不满足特定条件。
[0167]
情况6:第一类特征信息包括量化步长和码流缓冲区内的数据量。在当前图像区域对应的量化步长位于预设步长区间,且码流缓冲区内的数据量位于预设数据量区间时,确定第一类特征信息满足特定条件;否则,即当前图像区域对应的量化步长不位于预设步长区间,和/或,码流缓冲区内的数据量不位于预设数据量区间,确定第一类特征信息不满足特定条件。
[0168]
情况7:第一类特征信息包括预测模式、码流缓冲区内的数据量和量化步长。在当
前图像区域对应的预测模式是指定预测模式,且码流缓冲区内的数据量位于预设数据量区间,且当前图像区域对应的量化步长位于预设步长区间时,确定第一类特征信息满足特定条件;否则,即当前图像区域对应的预测模式不是指定预测模式,和/或,码流缓冲区内的数据量不位于预设数据量区间,和/或,当前图像区域对应的量化步长不位于预设步长区间,则确定第一类特征信息不满足特定条件,即只要有一个不满足,就确定第一类特征信息不满足特定条件。
[0169]
当然,上述几种情况只是“确定当前图像区域对应的第一类特征信息是否满足特定条件”的几个示例,本实施例中对此“第一类特征信息是否满足特定条件”的确定过程不做限制。
[0170]
针对上述情况1、情况4、情况5和情况7,在一种可能的实施方式中,指定预测模式可以是普通帧内预测模式。在另一种可能的实施方式中,指定预测模式还可以是逐点预测模式。当然,普通帧内预测模式和逐点预测模式只是示例,对此不做限制。
[0171]
针对情况5和情况7,对于预设步长区间,还可以基于指定预测模式来设置预设步长区间,如基于指定预测模式来设置预设步长区间的最小值。比如说,普通帧内预测模式对应预设步长区间的第一最小值,即b1的取值是第一最小值,逐点预测模式对应预设步长区间的第二最小值,即b1的取值是第二最小值。其中,第一最小值可以大于第二最小值,第一最小值也可以小于第二最小值,对此不做限制,预设步长区间的最小值与指定预测模式有关即可。
[0172]
普通帧内预测模式可以包括dc模式。或者,普通帧内预测模式可以包括dc模式、水平预测模式和垂直预测模式。或者,普通帧内预测模式可以包括dc模式和角度预测模式(如水平预测模式、垂直预测模式和其它角度预测模式)。或者,普通帧内预测模式可以包括dc模式、角度预测模式和planar模式。或者,普通帧内预测模式可以包括dc模式、角度预测模式和bilinear模式。或者,普通帧内预测模式可以包括dc模式、角度预测模式、planar模式和bilinear模式。当然,上述只是普通帧内预测模式的示例,对此不做限制,在上述每种普通帧内预测模式的基础上,还可以将其它类型的帧内预测模式作为普通帧内预测模式。
[0173]
步骤s12、若第一类特征信息不满足特定条件,则编码端确定不需要对当前图像区域进行重建值调整,也不在当前图像区域对应的码流中编码调整控制开关对应的标记位。
[0174]
步骤s13、若第一类特征信息满足特定条件,则编码端确定是否需要对当前图像区域进行重建值调整,并在当前图像区域对应的码流中编码调整控制开关对应的标记位。
[0175]
示例性的,若第一类特征信息满足特定条件,则编码端可以确定是否需要对当前图像区域进行重建值调整,对此确定方式不做限制。比如说,编码端计算启动当前图像区域的重建值调整的代价值,记为第一代价值,并计算关闭当前图像区域的重建值调整的代价值,记为第二代价值。在此基础上,若第一代价值小于第二代价值,则编码端确定需要对当前图像区域进行重建值调整;否则,编码端确定不需要对当前图像区域进行重建值调整。
[0176]
示例性的,编码端在确定是否需要对当前图像区域进行重建值调整之后,可以在当前图像区域对应的码流中编码调整控制开关对应的标记位。比如说,若确定需要对当前图像区域进行重建值调整,则该标记位可以为第一取值,通过第一取值表示需要对当前图像区域进行重建值调整。若确定不需要对当前图像区域进行重建值调整,则该标记位可以为第二取值,通过第二取值表示不需要对当前图像区域进行重建值调整。第一取值和第二
取值均可以根据经验配置,如第一取值为0,第二取值为1,或者,第一取值为1,第二取值为0。
[0177]
步骤s14、解码端确定当前图像区域对应的第一类特征信息是否满足特定条件。
[0178]
如果否,则可以执行步骤s15,如果是,则可以执行步骤s16。
[0179]
示例性的,步骤s14的实现过程与步骤s11类似,在此不再重复赘述。
[0180]
步骤s15、若第一类特征信息不满足特定条件,则解码端确定不需要对当前图像区域进行重建值调整,也不需要从当前图像区域对应的码流中解码调整控制开关对应的标记位。
[0181]
步骤s16、若第一类特征信息满足特定条件,则解码端从当前图像区域对应的码流中获取调整控制开关对应的标记位,并基于该标记位确定是否需要对当前图像区域进行重建值调整。其中,若该标记位为第一取值,则解码端可以确定需要对当前图像区域进行重建值调整;若该标记位为第二取值,则解码端可以确定不需要对当前图像区域进行重建值调整。
[0182]
综上所述,编码端和解码端均可以确定是否需要对当前图像区域进行重建值调整,且这个重建值调整的结论可以应用到当前图像区域。若需要对当前图像区域进行重建值调整,对于编码端,需要对n个编码块的重建值进行调整,对于解码端,需要对n个解码块的重建值进行调整。若不需要对当前图像区域进行重建值调整,对于编码端,不需要对n个编码块的重建值进行调整,对于解码端,不需要对n个解码块的重建值进行调整。
[0183]
实施例4:针对实施例1和实施例2,可以确定是否需要对当前图像区域进行重建值调整。比如说,针对编码端来说,编码端在编码n个编码块(n≥1)的码流后,可以将n个编码块记为当前图像区域,可以确定是否需要对当前图像区域进行重建值调整。针对解码端来说,解码端在解析n个解码块(n≥1)的码流后,可以将n个解码块(与编码端的n个编码块对应)记为当前图像区域,可以确定是否需要对当前图像区域进行重建值调整。
[0184]
示例性的,为了确定是否需要对当前图像区域进行重建值调整,可以采用如下方式:
[0185]
隐式导出方式:编码端可以根据当前图像区域对应的第二类特征信息隐式导出是否需要对当前图像区域进行重建值调整,解码端也可以根据当前图像区域对应的第二类特征信息隐式导出是否需要对当前图像区域进行重建值调整。
[0186]
以下结合具体应用场景,对隐式导出方式的实现过程进行说明,该过程可以包括:
[0187]
步骤s21、编码端确定当前图像区域对应的第二类特征信息是否满足特定条件。
[0188]
如果否,则可以执行步骤s22,如果是,则可以执行步骤s23。
[0189]
示例性的,当前图像区域对应的第二类特征信息可以包括但不限于码控的上下溢指示信息、量化参数、已重建像素特征、块位置中的至少一种,码控的上下溢指示信息可以包括但不限于当前码率,量化参数可以包括但不限于量化步长。其中,当前码率用于表示当前图像区域所在码控单元之前的所有码控单元的平均码率,块位置是当前图像区域内的图像块的块位置,如当前图像区域内的任一图像块的块位置,块位置用于表示该图像块在当前帧中的位置。当然,当前码率、量化参数、已重建像素特征和块位置只是第二类特征信息的几个示例,对此第二类特征信息不做限制,第二类特征信息是否满足特定条件可以包括但不限于:
[0190]
情况1、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率,当前码率也就是码控信息,即码控的上下溢指示信息,若当前码率小于第一码率值,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条件。
[0191]
示例性的,第一码率值可以是根据经验配置的码率值,对此第一码率值不做限制,在当前码率小于第一码率值时,可以表示码控信息指示资源池充足。
[0192]
在一种可能的实施方式中,可以预先配置一个目标上限码率,在当前码率接近于目标上限码率时,表示码控信息指示资源池正常,在当前码率大于目标上限码率与预设阈值之和时,表示码控信息指示资源池不足,在当前码率小于目标上限码率与预设阈值之差时,表示码控信息指示资源池充足,在此基础上,可以将目标上限码率与预设阈值之差作为第一码率值。
[0193]
情况2、当前图像区域对应的第二类特征信息包括当前图像区域对应的块位置,若当前图像区域对应的该块位置位于指定位置,则确定该第二类特征信息满足特定条件,否则,即当前图像区域对应的该块位置不位于指定位置,确定该第二类特征信息不满足特定条件。
[0194]
比如说,指定位置可以是当前码控单元(即当前图像区域所在的码控单元)的最后l个图像块(l可以为大于或等于1的正整数),或者指定位置可以是当前码控单元的最下一行图像块等,在此基础上,若该块位置属于当前码控单元的最后l个图像块或最下一行图像块,则确定该块位置位于指定位置,否则,确定该块位置不位于指定位置。
[0195]
又例如,指定位置可以是当前帧内部slice边界位置,若该块位置属于当前帧内部slice边界位置,则确定该块位置位于指定位置,否则,确定该块位置不位于指定位置。
[0196]
又例如,指定位置可以是当前码控单元的最后l个图像块和当前帧内部slice边界位置,若该块位置属于当前码控单元的最后l个图像块,或,该块位置属于当前帧内部slice边界位置,则确定该块位置位于指定位置。若该块位置不属于当前码控单元的最后l个图像块,且该块位置不属于当前帧内部slice边界位置,则确定该块位置不位于指定位置。
[0197]
当然,上述只是指定位置的几个示例,本实施例中对此指定位置不做限制。
[0198]
情况3、当前图像区域对应的第二类特征信息包括当前图像区域对应的量化步长,若该量化步长大于步长阈值,则确定该第二类特征信息满足特定条件,否则,即该量化步长不大于步长阈值,确定该第二类特征信息不满足特定条件。
[0199]
情况4、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率和当前图像区域对应的块位置,在此基础上,若当前码率小于第一码率值、且该块位置位于指定位置,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条件。
[0200]
情况5、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率和当前图像区域对应的块位置,若当前码率小于第一码率值,或者,该块位置位于指定位置,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条件。
[0201]
情况6、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率和当前图像区域对应的量化步长,若当前码率小于第一码率值、且该量化步长大于步长阈值,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条
件。
[0202]
情况7、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率和当前图像区域对应的量化步长,若当前码率小于第一码率值,或者,该量化步长大于步长阈值,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条件。
[0203]
情况8、当前图像区域对应的第二类特征信息包括当前图像区域对应的块位置和当前图像区域对应的量化步长,在此基础上,若该块位置位于指定位置、且该量化步长大于步长阈值,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条件。
[0204]
情况9、当前图像区域对应的第二类特征信息包括当前图像区域对应的块位置和当前图像区域对应的量化步长,若该块位置位于指定位置,或者,该量化步长大于步长阈值,则确定该第二类特征信息满足特定条件,否则,确定该第二类特征信息不满足特定条件。
[0205]
情况10、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率、当前图像区域对应的块位置和当前图像区域对应的量化步长,在此基础上,若该当前码率小于第一码率值、且该块位置位于指定位置、且该量化步长大于步长阈值,则可以确定该第二类特征信息满足特定条件,否则,可以确定该第二类特征信息不满足特定条件。
[0206]
情况11、当前图像区域对应的第二类特征信息包括当前图像区域对应的当前码率、当前图像区域对应的块位置和当前图像区域对应的量化步长,在此基础上,若该当前码率小于第一码率值,或者,该块位置位于指定位置,或者,该量化步长大于步长阈值,则可以确定该第二类特征信息满足特定条件,否则,可以确定该第二类特征信息不满足特定条件。
[0207]
情况12、当前图像区域对应的第二类特征信息包括当前图像区域对应的已重建像素特征,在此基础上,若该已重建像素特征表示当前图像区域的复杂程度为复杂,则可以确定第二类特征信息满足特定条件,否则,可以确定该第二类特征信息不满足特定条件。
[0208]
示例性的,已重建像素特征可以是,从重建像素中计算得到的当前图像区域的复杂程度(例如梯度),如可以采用索贝尔(sobel)算子对当前像素区域的复杂度进行评估,得到当前图像区域的复杂程度,也可以将当前图像区域的重建像素值进行变换,根据频域的特征得到当前图像区域的复杂程度,也可以计算当前图像区域的水平垂直梯度,基于水平垂直梯度得到当前图像区域的复杂程度。当然,上述只是几个示例,只要能够得到已重建像素特征即可,且已重建像素特征可以表示当前图像区域的复杂程度。
[0209]
已重建像素特征的原理和块位置的原理类似,对于复杂区域往往能承受更多的损失而不被察觉,但对于简单区域,比如平坦区域,此时很小的损失就会被人眼察觉到。
[0210]
基于上述原理,在已重建像素特征表示当前图像区域的复杂程度为复杂时,则表示可以对当前图像区域的重建值进行调整,以减少图像损失,因此,可以确定第二类特征信息满足特定条件。示例性的,已重建像素特征可以是复杂程度值,当该复杂程度值大于预设阈值时,则已重建像素特征表示当前图像区域的复杂程度为复杂。
[0211]
情况13、当前图像区域对应的第二类特征信息包括当前图像区域对应的已重建像素特征,在此基础上,当前图像区域对应的第二类特征信息还包括当前码率、块位置和量化步长中的至少一个,为了方便描述,以同时包括当前码率、块位置和量化步长为例,其它情
况下的实现方式类似,基于此,若该当前码率小于第一码率值,且该块位置位于指定位置,且该量化步长大于步长阈值,且该已重建像素特征表示当前图像区域的复杂程度为复杂,则可以确定该第二类特征信息满足特定条件,否则,可以确定该第二类特征信息不满足特定条件。
[0212]
情况14、当前图像区域对应的第二类特征信息包括当前图像区域对应的已重建像素特征,在此基础上,当前图像区域对应的第二类特征信息还包括当前码率、块位置和量化步长中的至少一个,为了方便描述,以同时包括当前码率、块位置和量化步长为例,其它情况下的实现方式类似,基于此,若该当前码率小于第一码率值,或,该块位置位于指定位置,或,该量化步长大于步长阈值,或,该已重建像素特征表示当前图像区域的复杂程度为复杂,则可以确定该第二类特征信息满足特定条件,否则,可以确定该第二类特征信息不满足特定条件。
[0213]
当然,上述几种情况只是“确定当前图像区域对应的第二类特征信息是否满足特定条件”的几个示例,本实施例中对此“第二类特征信息是否满足特定条件”的确定过程不做限制。
[0214]
步骤s22、编码端确定不需要对当前图像区域进行重建值调整。
[0215]
步骤s23、编码端确定需要对当前图像区域进行重建值调整。
[0216]
步骤s24、解码端确定当前图像区域对应的第二类特征信息是否满足特定条件。
[0217]
如果否,则可以执行步骤s25,如果是,则可以执行步骤s26。
[0218]
示例性的,步骤s24的实现过程与步骤s21类似,在此不再重复赘述。
[0219]
步骤s25、解码端确定不需要对当前图像区域进行重建值调整。
[0220]
步骤s26、解码端确定需要对当前图像区域进行重建值调整。
[0221]
实施例5:针对实施例1和实施例2,可以确定是否需要对当前图像区域进行重建值调整。比如说,针对编码端来说,编码端在编码n个编码块(n≥1)的码流后,可以将n个编码块记为当前图像区域,可以确定是否需要对当前图像区域进行重建值调整。针对解码端来说,解码端在解析n个解码块(n≥1)的码流后,可以将n个解码块(与编码端的n个编码块对应)记为当前图像区域,可以确定是否需要对当前图像区域进行重建值调整。
[0222]
示例性的,为了确定是否需要对当前图像区域进行重建值调整,可以采用如下方式:
[0223]
组合实现方式,即显式语法+隐式导出的实现方式。例如,编码端在获取到当前图像区域对应的调整控制开关的标记位(参见实施例3)之后,若该调整控制开关的标记位与目标图像区域(如当前图像区域的前一个图像区域,或指定的某个图像区域,或默认的图像区域等)对应的调整控制开关的标记位相同,则编码端不在码流中编码调整控制开关对应的标记位。解码端获知码流中未携带调整控制开关对应的标记位时,就可以将目标图像区域对应的调整控制开关的标记位作为当前图像区域对应的调整控制开关的标记位,继而确定是否对当前图像区域进行重建值调整。或者,编码端在获取到当前图像区域对应的调整控制开关的标记位之后,若该调整控制开关的标记位与目标图像区域对应的调整控制开关的标记位不同,则编码端在码流中编码调整控制开关对应的标记位。解码端从码流中解析调整控制开关对应的标记位,基于该标记位确定是否对当前图像区域进行重建值调整。
[0224]
实施例6:针对实施例1-实施例5,在确定是否对当前图像区域进行重建值调整之
后,若确定对当前图像区域进行重建值调整,则可以获取当前图像区域对应的调整参数,该调整参数用于对当前图像区域的重建值进行调整,即用于调整当前图像区域内的n个图像块的重建值(或预测值,或残差值等)。比如说,针对编码端来说,当前图像区域可以包括n个编码块,该调整参数用于对n个编码块的重建值进行调整,针对解码端来说,当前图像区域可以包括n个解码块,该调整参数用于对n个解码块的重建值进行调整。
[0225]
针对编码端来说,可以基于当前图像区域的原始值和当前图像区域的重建值确定当前图像区域对应的调整参数,该调整参数用于对当前图像区域的重建值进行调整,以使调整后的重建值接近当前图像区域的原始值,本实施例对此调整参数的获取过程不做限制。
[0226]
示例性的,当前图像区域对应的调整参数可以包括多个调整值,当前图像区域可以对应多个像素组,即当前图像区域的所有像素点划分至多个像素组,在此基础上,多个调整值可以包括k个像素组对应的调整值,k个像素组可以是多个像素组中的全部像素组或者部分像素组。比如说,可以将当前图像区域的所有像素点划分至32个像素组,可以从32个像素组中选取k个像素组,如4个像素组、8个像素组、16个像素组、32个像素组等,对k的取值不做限制。基于此,编码端获取这k个像素组对应的调整参数,即调整参数可以包括k个像素组对应的调整值,每个像素组对应的调整值用于对该像素组内每个像素点的重建值进行调整。比如说,假设k个像素组为像素组1和像素组2,则编码端可以获取像素组1对应的调整值和像素组2对应的调整值,像素组1对应的调整值用于对像素组1内每个像素点的重建值进行调整,像素组2对应的调整值用于对像素组2内每个像素点的重建值进行调整。
[0227]
针对每个像素组来说,该像素组对应的调整值可以包括该像素组对应的多个通道的调整值,比如说,多个通道可以包括y通道、u通道、v通道,或者,多个通道可以包括r通道、g通道、b通道,或者,多个通道可以包括、r通道、g通道、b通道、alpha通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道,或者,多个通道可以包括r通道、g通道、b通道、w通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道、w通道,或者,多个通道可以包括r通道、g通道、b通道、d通道,或者,多个通道可以包括r通道、g通道、b通道、d通道、w通道。当然,上述只是几个示例。
[0228]
在实际应用中,通道还可以使用同一个调整值,比如说,u通道和v通道可以使用同一个调整值,或者,r通道和g通道可以使用同一个调整值,对此不做限制。
[0229]
比如说,像素组1对应的调整值包括y通道调整值1、u通道调整值1和v通道调整值1,y通道调整值1用于对像素组1内每个像素点的y通道重建值进行调整、u通道调整值1用于对像素组1内每个像素点的u通道重建值进行调整、v通道调整值1用于对像素组1内每个像素点的v通道重建值进行调整。像素组2对应的调整值包括y通道调整值2、u通道调整值2和v通道调整值2,y通道调整值2用于对像素组2内每个像素点的y通道重建值进行调整、u通道调整值2用于对像素组2内每个像素点的u通道重建值进行调整、v通道调整值2用于对像素组2内每个像素点的v通道重建值进行调整。
[0230]
示例性的,编码端在得到当前图像区域对应的调整参数之后,还可以在当前图像区域对应的码流中编码当前图像区域对应的调整参数。比如说,该调整参数可以包括k个像素组对应的调整值,因此,可以在当前图像区域对应的码流中编码k个像素组对应的调整值。
[0231]
针对解码端来说,可以从当前图像区域对应的码流中获取当前图像区域对应的调整参数,该调整参数用于对当前图像区域的重建值进行调整,以使调整后的重建值接近当前图像区域的原始值。在得到调整参数之后,就可以基于该调整参数对当前图像区域的重建值进行调整。
[0232]
示例性的,当前图像区域对应的调整参数可以包括多个调整值,可以将当前图像区域的所有像素点划分至多个像素组,在此基础上,多个调整值可以包括k个像素组对应的调整值,k个像素组可以是多个像素组中的全部像素组或者部分像素组。解码端可以从码流中获取k个像素组对应的调整参数,即调整参数可以包括k个像素组对应的调整值。解码端可以基于像素组对应的调整值,对该像素组内每个像素点的重建值进行调整。比如说,假设k个像素组为像素组1和像素组2,则解码端可以获取像素组1对应的调整值和像素组2对应的调整值,解码端基于像素组1对应的调整值对像素组1内每个像素点的重建值进行调整,以及,解码端基于像素组2对应的调整值对像素组2内每个像素点的重建值进行调整。
[0233]
针对每个像素组来说,该像素组对应的调整值可以包括该像素组对应的多个通道的调整值,比如说,多个通道可以包括y通道、u通道、v通道,或者,多个通道可以包括r通道、g通道、b通道,或者,多个通道可以包括、r通道、g通道、b通道、alpha通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道,或者,多个通道可以包括r通道、g通道、b通道、w通道,或者,多个通道可以包括r通道、g通道、b通道、ir通道、w通道,或者,多个通道可以包括r通道、g通道、b通道、d通道,或者,多个通道可以包括r通道、g通道、b通道、d通道、w通道。当然,上述只是几个示例,对此不做限制。
[0234]
示例性的,针对k个像素组中的每个像素组,若从码流中获取的多个调整值包括该像素组对应的调整值,则解码端基于该像素组对应的调整值对该像素组内每个像素点的重建值进行调整,得到该像素组内每个像素点的调整后的重建值。比如说,若从码流中获取的多个调整值包括像素组1对应的y通道调整值1、u通道调整值1和v通道调整值1,则可以基于y通道调整值1对像素组1内每个像素点的y通道重建值进行调整,基于u通道调整值1对像素组1内每个像素点的u通道重建值进行调整,基于v通道调整值1对像素组1内每个像素点的v通道重建值进行调整。又例如,若从码流中获取的多个调整值只包括像素组1对应的y通道调整值1,而未包括像素组1对应的u通道调整值和v通道调整值,则解码端可以基于y通道调整值1对像素组1内每个像素点的y通道重建值进行调整。
[0235]
在一种可能的实施方式中,若k个像素组是所有像素组(如32个像素组)中的全部像素组,则编码端可以不在当前图像区域对应的码流中编码k个像素组对应的像素组指示信息,解码端也不需要从当前图像区域对应的码流中解析k个像素组对应的像素组指示信息,在此基础上,解码端获知码流中携带的调整参数是所有像素组(如32个像素组)的调整值。
[0236]
若k个像素组是所有像素组中的部分像素组,则编码端可以在当前图像区域对应的码流中编码k个像素组对应的像素组指示信息,表示码流中携带的是该像素组指示信息对应的像素组的调整值。解码端可以从当前图像区域对应的码流中解析k个像素组对应的像素组指示信息,获知码流中携带的调整参数是该像素组指示信息对应的k个像素组对应的调整值。
[0237]
比如说,该像素组指示信息包括k个像素组的索引值,该索引值表示像素组是所有
像素组中的第几个像素组,以k个像素组是像素组1、像素组2、像素组3和像素组4为例,则像素组指示信息包括像素组1的索引值(该索引值用于表示像素组1是所有像素组中的第几个像素组)、像素组2的索引值、像素组3的索引值和像素组4的索引值。显然,若k个像素组是多个像素组中的部分像素组,则该像素组指示信息用于区分所有类别的像素组中的目标类别的像素组,即从所有像素组中区分出k个像素组,像素组指示信息能够实现分类功能。
[0238]
又例如,假设k个像素组是连续像素组,该像素组指示信息包括k个像素组中部分像素组的索引值,剩余像素组的索引值可以隐式推导出。以k个像素组是像素组1、像素组2、像素组3和像素组4为例,则像素组指示信息只包括像素组1的索引值,由于k个像素组是连续像素组,因此,隐式推导出像素组2的索引值、像素组3的索引值和像素组4的索引值。
[0239]
综上所述,可以采用显示方式指示k个像素组的索引值,或者,也可以采用显示方式指示k个像素组中部分像素组的索引值,并通过隐式方式推导出剩余像素组的索引值,本实施例中对此不做限制,只要解码端能够获知k个像素组的索引值即可。
[0240]
示例性的,若k个像素组是所有像素组中的部分像素组,且k个像素组是处于默认位置的k个像素组,如k个像素组固定为前面4个像素组,或k个像素组固定为第1、3、5、7个像素组,或k个像素组固定为后面4个像素组,那么,编码端可以不在当前图像区域对应的码流中编码k个像素组对应的像素组指示信息,解码端也不需要从当前图像区域对应的码流中解析k个像素组对应的像素组指示信息,在此基础上,解码端获知码流中携带的调整参数是默认位置的k个像素组的调整值,例如,调整参数是前面4个像素组的调整值,或调整参数是第1、3、5、7个像素组的调整值,或调整参数是后面4个像素组的调整值。
[0241]
实施例7:针对编码端来说,当前图像区域对应的调整参数包括k个像素组对应的调整值,即调整参数包括多个调整值,在当前图像区域对应的码流中编码k个像素组对应的调整值时,可以在当前图像区域对应的码流中编码全部调整值或者部分调整值。比如说,假设k个像素组是4个像素组,每个像素组包括y通道调整值、u通道调整值和v通道调整值,则当前图像区域对应的调整参数包括12个调整值,可以在当前图像区域对应的码流中编码12个调整值,也可以在当前图像区域对应的码流中编码12个调整值中的部分调整值。
[0242]
针对解码端来说,在从当前图像区域对应的码流中获取调整参数时,若编码端编码k个像素组对应的全部调整值,则解码端可以从当前图像区域对应的码流中获取k个像素组对应的全部调整值,若编码端编码k个像素组对应的部分调整值,则解码端可以从当前图像区域对应的码流中获取k个像素组对应的部分调整值。比如说,若解码端得到像素组对应的y通道调整值,但是未得到该像素组对应的u通道调整值和v通道调整值,则解码端只基于该y通道调整值对该像素组内每个像素点的y通道重建值进行调整,而不对该像素组内每个像素点的u通道重建值和v通道重建值进行调整。此外,若解码端未得到k个像素组中的某个像素组的调整值,则解码端不再对该像素组内每个像素点的重建值进行调整。
[0243]
在一种可能的实施方式中,基于k个像素组对应的多个调整值,编码端在当前图像区域对应的码流中编码全部调整值或者部分调整值,可以包括但不限于如下步骤:
[0244]
步骤s31、按照多个调整值的编码顺序对多个调整值进行排序。
[0245]
以4个像素组(如像素组1-像素组4),每个像素组包括y通道调整值、u通道调整值和v通道调整值为例,则当前图像区域对应12个调整值,可以确定12个调整值的编码顺序。
[0246]
首先,可以确定各像素组的编码顺序,例如,在按照各像素点的重建值划分多个像
素组时,按照各像素组的值域确定各像素组的编码顺序,如按照值域从小到大的顺序排序,或按照值域从大到小的顺序排序,以按照值域从小到大的顺序排序为例,假设像素组1对应的值域最小,像素组2对应的值域第二小,像素组3对应的值域第三小,像素组4对应的值域最大,那么,各像素组的编码顺序是像素组1、像素组2、像素组3和像素组4。
[0247]
又例如,在按照各像素点的梯度值划分多个像素组时,按照各像素组的梯度值值域(即各像素组对应的梯度值结果,如上述绝对值在10以下等值域)确定各像素组的编码顺序,如按照梯度值值域从小到大的顺序排序,或按照梯度值值域从大到小的顺序排序,以按照梯度值值域从小到大的顺序排序为例,假设像素组1对应的梯度值值域最小,像素组2对应的梯度值值域第二小,像素组3对应的梯度值值域第三小,像素组4对应的梯度值值域最大,那么,各像素组的编码顺序是像素组1、像素组2、像素组3和像素组4。
[0248]
又例如,在按照各像素点的像素位置划分多个像素组时,按照各像素组对应的块顺序确定各像素组的编码顺序,如按照块顺序从前到后的顺序排序,假设像素组1对应的子区域是当前图像区域的第一个块,像素组2对应的子区域是当前图像区域的第二个块,像素组3对应的子区域是当前图像区域的第三个块,像素组4对应的子区域是当前图像区域的第四个块,那么,各像素组的编码顺序是像素组1、像素组2、像素组3和像素组4。
[0249]
当然,上述方式只是确定各像素组的编码顺序的几个示例,对此不做限制。
[0250]
然后,确定各通道的编码顺序,如确定y通道、u通道和v通道之间的编码顺序,如编码顺序依次是:y通道、u通道、v通道;或者,y通道、v通道、u通道;或者,u通道、y通道、v通道;或者,u通道、v通道、y通道。当然,上述方式只是确定各通道的编码顺序的几个示例,对此不做限制,可以任意规划各通道的编码顺序。
[0251]
然后,基于各像素组的编码顺序和各通道的编码顺序,确定多个调整值的编码顺序。比如说,可以以像素组的编码顺序为主,以各通道的编码顺序为辅,确定多个调整值的编码顺序,以各像素组的编码顺序是像素组1、像素组2、像素组3和像素组4,各通道的编码顺序是y通道、u通道、v通道为例,则12个调整值的编码顺序是:像素组1的y通道调整值、u通道调整值和v通道调整值,像素组2的y通道调整值、u通道调整值和v通道调整值,像素组3的y通道调整值、u通道调整值和v通道调整值,像素组4的y通道调整值、u通道调整值和v通道调整值。又例如,可以以各通道的编码顺序为主,以像素组的编码顺序为辅,确定多个调整值的编码顺序,则12个调整值的编码顺序是:像素组1的y通道调整值、像素组2的y通道调整值、像素组3的y通道调整值、像素组4的y通道调整值、像素组1的u通道调整值、像素组2的u通道调整值、像素组3的u通道调整值、像素组4的u通道调整值、像素组1的v通道调整值、像素组2的v通道调整值、像素组3的v通道调整值、像素组4的v通道调整值。当然,上述只是多个调整值的编码顺序的两个示例,本实施例对此多个调整值的编码顺序不做限制,可以任意配置多个调整值的编码顺序。
[0252]
步骤s32、基于排序结果依次遍历多个调整值中的每个调整值。
[0253]
比如说,第一次遍历时,遍历像素组1的y通道调整值,第二次遍历时,遍历像素组1的u通道调整值,第三次遍历时,遍历像素组1的v通道调整值,第四次遍历时,遍历像素组2的y通道调整值,第五次遍历时,遍历像素组2的u通道调整值,以此类推。
[0254]
步骤s33、针对当前遍历的调整值,若在当前图像区域对应的码流中编码该调整值之后,当前码率小于第二码率值,则在当前图像区域对应的码流中编码该调整值,且继续遍
历该调整值的下一个调整值,将下一个调整值作为当前遍历的调整值。
[0255]
示例性的,第二码率值可以是根据经验配置的,对此不做限制,在当前码率小于第二码率值时,表示码控信息指示资源池充足。在一种可能的实施方式中,可以预先配置一个目标上限码率,在当前码率接近于目标上限码率时,表示码控信息指示资源池正常,在当前码率大于目标上限码率与预设阈值之和时,表示码控信息指示资源池不足,在当前码率小于目标上限码率与预设阈值之差时,表示码控信息指示资源池充足,在此基础上,可以将目标上限码率与预设阈值之差作为第二码率值。第二码率值与上述第一码率值可以相同,也可以不同。
[0256]
步骤s34、针对当前遍历的调整值,若在当前图像区域对应的码流中编码该调整值之后,当前码率不小于第二码率值,则可以禁止在当前图像区域对应的码流中编码该调整值,且停止遍历该调整值的下一个调整值,即结束多个调整值的遍历过程。
[0257]
综上所述,本实施例中,编码端在当前图像区域对应的码流中编码k个像素组对应的多个调整值时,可以依次遍历多个调整值中的每个调整值。针对当前遍历的调整值,若在码流中编码该调整值之后,当前码率小于第二码率值,则在码流中编码该调整值,且继续遍历该调整值的下一个调整值,若当前码率不小于第二码率值,则不在码流中编码该调整值,且停止遍历该调整值的下一个调整值,以此类推,一直到已遍历k个像素组对应的全部调整值,或者当前码率不小于第二码率值时,且停止遍历调整值。至此,可以在当前图像区域对应的码流中编码k个像素组对应的全部调整值或者部分调整值,对此过程不做赘述。
[0258]
实施例8:在传递调整参数的过程中,码控的状态也会同步更新,在编码调整参数过后,若码控仍然为下溢状态(小于0,如当前码率小于第二码率值时,表示码控仍然为下溢状态),则继续编码调整参数。情况一,以通道形式逐步传递调整参数,即y通道,u通道,v通道,r通道,g通道,b通道,alpha通道(也可以部分通道共享,例如uv通道共享)等,若码控状态为下溢,则按照顺序编码(解码端为解析)调整参数,传递过后若码控仍然下溢,则继续编码(解码端为解析)下一个调整参数,以此类推,直至码控不上溢或者调整参数全部被传递。情况二,以像素组(至少一个像素)的形式逐步传递调整参数,即按照一定的扫描顺序与分组,逐个传递调整参数,例如,按照先y通道再u通道再v通道,每个通道进行垂直方向的四分组(即4个像素组),然后逐个组传递调整参数,逐步更新码控状态。示例性的,调整参数表达了,对n个编码块(即当前图像区域)中的某一类或多类重建值进行调整,某一类或多类重建值可以通过语法传递,也可通过导出的方式确定,例如:编解码端统一约定;根据已编码信息导出(如模式信息,重建值信息等)。
[0259]
实施例9:针对实施例1-实施例8,对于编码端和解码端来说,当前图像区域可以对应多个像素组,如将当前图像区域的所有像素点划分至多个像素组,即对所有像素点进行分类,本实施例中,可以采用如下方式将当前图像区域的所有像素点划分至多个像素组:
[0260]
方式1:按照各像素点的调整前重建值将当前图像区域的所有像素点划分至多个像素组,即可以根据各像素点的调整前重建值(后续用于分组的重建值,均是指调整前重建值)进行分类,得到多个像素组。比如说,可以将重建值的值域平均分为a个像素组,根据重建值所在范围确定像素组,如将8bit的重建值(值域0~255)分为16个像素组,16个像素组的范围分别为0~15,16~31,32~47,48~63,...,240~255。若像素点的重建值处于范围0~15,则将该像素点划分至第1个像素组,若像素点的重建值处于范围16~31,则将该像素
点划分至第2个像素组,若像素点的重建值处于范围32~47,则将该像素点划分至第3个像素组,若像素点的重建值处于范围48~63,则将该像素点划分至第4个像素组,以此类推,若像素点的重建值处于范围240~255,则将该像素点划分至第16个像素组。
[0261]
示例性的,在按照各像素点的重建值将当前图像区域的所有像素点划分至多个像素组时,还可以逐通道进行划分。比如说,以y通道、u通道、v通道为例,若像素点的y通道重建值处于范围0~15,则将该像素点的y通道重建值划分至第1个像素组,基于此,可以基于第1个像素组对应的y通道调整值对该像素点的y通道重建值进行调整。若像素点的u通道重建值处于范围16~31,则将该像素点的u通道重建值划分至第2个像素组,基于此,可以基于第2个像素组对应的u通道调整值对该像素点的u通道重建值进行调整。若像素点的v通道重建值处于范围16~31,则将该像素点的v通道重建值划分至第2个像素组,基于此,可以基于第2个像素组对应的v通道调整值对该像素点的v通道重建值进行调整。
[0262]
方式2:基于像素点的周围像素点的调整前重建值(后续用于分组的重建值,均是指调整前重建值)确定该像素点的分类值,按照各像素点的分类值将当前图像区域的所有像素点划分至多个像素组,即可以根据各像素点的梯度值进行分类,得到多个像素组。
[0263]
比如说,可以根据像素点的周围像素点的重建值对该像素点进行分类,如利用梯度信息,将像素点的上侧相邻像素点的重建值与像素点的左侧相邻像素点的重建值相减,得到该像素点的梯度值,可以将梯度值结果位于某一范围的像素点定义为同一类,如绝对值在10以下的为第一类,绝对值在10~30的为第二类,绝对值大于30的为第三类。在此基础上,针对某个像素点来说,若该像素点的梯度值的绝对值处于10以下,则将该像素点划分至第1个像素组,若像素点的梯度值的绝对值处于10~30,则将该像素点划分至第2个像素组,若像素点的梯度值的绝对值处于30以上,则将该像素点划分至第3个像素组。
[0264]
方式3:按照各像素点的像素位置将当前图像区域的所有像素点划分至多个像素组,即可以根据各像素点的像素位置进行分类,得到多个像素组。比如说,可以根据像素位置进行分类,如将16*2的当前图像区域等分为四个4*2的子区域,每个4*2的子区域划分为一类。在此基础上,针对某个像素点来说,若该像素点处于第一个4*2的子区域,则可以将该像素点划分至第1个像素组,若该像素点处于第二个4*2的子区域,则可以将该像素点划分至第2个像素组,若该像素点处于第三个4*2的子区域,则可以将该像素点划分至第3个像素组,若该像素点处于第四个4*2的子区域,则可以将该像素点划分至第4个像素组。
[0265]
方式4:可以将每个像素点划分至一个像素组,即每个像素点就是一个像素组,不同像素点对应不同像素组,可以理解为,像素组就包括一个像素点。
[0266]
当然,上述方式只是划分方式的几个示例,对此划分方式不做限制。
[0267]
实施例10:针对实施例1-实施例8,对于编码端和解码端来说,当前图像区域可以对应多个像素组,例如,将当前图像区域的所有像素点划分至多个像素组,即对所有像素点进行分类。本实施例中,可以采用如下方式确定当前图像区域对应的多个像素组:根据当前图像区域的预测模式确定当前图像区域对应的多个像素组,也就是说,像素组的划分可以与当前图像区域的预测模式有关。比如说,可以根据当前图像区域的预测模式确定像素组的划分属性,并基于该划分属性确定当前图像区域对应的多个像素组。
[0268]
示例性的,该划分属性可以包括划分数量、滤波区域和划分方式中的至少一种,若该划分属性包括划分数量、滤波区域和划分方式,则根据当前图像区域的预测模式确定像
素组的划分数量、滤波区域和划分方式,并基于划分数量、滤波区域和划分方式确定当前图像区域对应的多个像素组。若该划分属性包括划分数量和划分方式,则根据当前图像区域的预测模式确定像素组的划分数量和划分方式,并基于划分数量和划分方式确定当前图像区域对应的多个像素组。关于其它划分属性的组合,其实现方式类似,本实施例中不再赘述。
[0269]
其中,划分数量用于表示将当前图像区域划分为多少个像素组,滤波区域用于表示将当前图像区域的哪部分区域划分为多个像素组,划分方式用于表示每个像素组的尺寸规格。
[0270]
其中,若划分属性包括滤波区域,则滤波区域用于表示将当前图像区域的全部区域划分为多个像素组,也可以表示将当前图像区域的部分区域划分为多个像素组。若划分属性不包括滤波区域,则表示将当前图像区域的全部区域划分为多个像素组。
[0271]
示例性的,可以将当前图像区域的预测模式区分为水平预测模式和非水平预测模式,若当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;若当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定像素组的滤波区域是第二滤波区域,确定划分方式是第二尺寸规格。或者,若当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定划分方式是第一尺寸规格;若当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定划分方式是第二尺寸规格。又例如,可以将当前图像区域的预测模式区分为垂直预测模式和非垂直预测模式,若当前图像区域的预测模式是垂直预测模式,则确定像素组的划分数量是第三划分数量,确定像素组的滤波区域是第三滤波区域,确定划分方式是第三尺寸规格;若当前图像区域的预测模式不是垂直预测模式,则确定像素组的划分数量是第四划分数量,确定像素组的滤波区域是第四滤波区域,确定划分方式是第四尺寸规格。或者,若当前图像区域的预测模式是垂直预测模式,则确定像素组的划分数量是第三划分数量,确定划分方式是第三尺寸规格;若当前图像区域的预测模式不是垂直预测模式,则确定像素组的划分数量是第四划分数量,确定划分方式是第四尺寸规格。当然,水平预测模式和非水平预测模式的区分方式,以及,垂直预测模式和非垂直预测模式的区分方式,只是两个示例,对此不做限制。
[0272]
比如说,可以将当前图像区域的预测模式区分为第一预测模式和非第一预测模式,第一预测模式对应第一种划分属性(划分数量、滤波区域和划分方式),非第一预测模式对应第二种划分属性(划分数量、滤波区域和划分方式)。又例如,可以将当前图像区域的预测模式区分为第一预测模式、第二预测模式、非第一非第二预测模式,第一预测模式对应第一种划分属性(划分数量、滤波区域和划分方式),第二预测模式对应第二种划分属性(划分数量、滤波区域和划分方式),非第一非第二预测模式对应第二种划分属性(划分数量、滤波区域和划分方式)。又例如,可以将当前图像区域的预测模式区分为第一预测模式和第二预测模式,第一预测模式对应第一种划分属性(划分数量、滤波区域和划分方式),第二预测模式对应第二种划分属性(划分数量、滤波区域和划分方式),以此类推。
[0273]
当然,在实际应用中,也可以划分为更多的预测模式,对此不做限制。
[0274]
为了方便描述,本实施例中,以将当前图像区域的预测模式区分为水平预测模式
和非水平预测模式为例,若当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;若当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定像素组的滤波区域是第二滤波区域,确定划分方式是第二尺寸规格。
[0275]
其中,关于第一划分数量,可以根据经验配置,如可以是2个、4个、6个、8个、16个等,对此不做限制。关于第一滤波区域,可以是当前图像区域的全部区域,也可以是当前图像区域的部分区域,对此不做限制。关于第一尺寸规格,可以根据经验配置,第一尺寸规格可以包括宽度和高度,宽度可以是2、4、6、8、12、16等,对此不做限制,高度可以是1、2、4、6、8、12、16等,对此不做限制。此外,关于第二划分数量,可以根据经验配置,如可以是2个、4个、6个、8个、16个等,对此不做限制。关于第二滤波区域,可以是当前图像区域的全部区域,也可以是当前图像区域的部分区域,对此不做限制。关于第二尺寸规格,可以根据经验配置,第二尺寸规格可以包括宽度和高度,宽度可以是2、4、6、8、12、16等,对此不做限制,高度可以是1、2、4、6、8、12、16等,对此不做限制。
[0276]
比如说,若当前图像区域是16*2的图像块,则在当前图像区域的预测模式是水平预测模式时,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1,参见图5a所示,是将16*2的图像块划分为4个8*1的像素组。
[0277]
或者,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是16*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是16*1,参见图5b所示,是将16*2的图像块划分为2个16*1的像素组。
[0278]
或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*2,参见图5c所示,是将16*2的图像块划分为4个4*2的像素组。
[0279]
或者,可以将当前图像区域的所有像素点划分至8个像素组,每个像素组的尺寸是2*2;在该情况下,第一划分数量是8,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*2,参见图5d所示,是将16*2的图像块划分为8个2*2的像素组。
[0280]
当然,上述只是水平预测模式下划分的几个示例,对此不做限制。
[0281]
此外,若当前图像区域是16*2的图像块,在当前图像区域的预测模式不是水平预测模式时,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2。在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*2,参见图5c所示,是将16*2的图像块划分为4个4*2的像素组。
[0282]
或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1,参见图5a所示,是将16*2的图像块划分为4个8*1的像素组。
[0283]
或者,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是16*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是16*1,参见图5b所示,是将16*2的图像块划分为2个16*1的像素组。
[0284]
或者,可以将当前图像区域的所有像素点划分至8个像素组,每个像素组的尺寸是2*2;在该情况下,第一划分数量是8,第一滤波区域是当前图像区域的全部区域,第一尺寸
规格是2*2,参见图5d所示,是将16*2的图像块划分为8个2*2的像素组。
[0285]
当然,上述只是非水平预测模式下划分的几个示例,对此不做限制。
[0286]
又例如,若当前图像区域是8*2的图像块,则在当前图像区域的预测模式是水平预测模式时,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是4*2;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*2。或者,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是8*2;在该情况下,第一划分数量是1,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*2。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是2*2;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*2。当然,上述只是水平预测模式下划分的几个示例,对此不做限制。
[0287]
此外,若当前图像区域是8*2的图像块,则在当前图像区域的预测模式不是水平预测模式时,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是4*2;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*2。或者,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是8*2;在该情况下,第一划分数量是1,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*2。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是2*2;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*2。当然,上述只是非水平预测模式下划分的几个示例,对此不做限制。
[0288]
又例如,若当前图像区域是16*1的图像块,则在当前图像区域的预测模式是水平预测模式时,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*1;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是16*1;在该情况下,第一划分数量是1,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是16*1。或者,可以将当前图像区域的所有像素点划分至8个像素组,每个像素组的尺寸是2*1;在该情况下,第一划分数量是8,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*1。当然,上述只是水平预测模式下划分的几个示例,对此不做限制。
[0289]
此外,若当前图像区域是16*1的图像块,则在当前图像区域的预测模式不是水平预测模式时,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*1;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是16*1;在该情况下,第一划分数量是1,第一滤波区域是当前图像区域的全部区域,第一尺
寸规格是16*1。或者,可以将当前图像区域的所有像素点划分至8个像素组,每个像素组的尺寸是2*1;在该情况下,第一划分数量是8,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*1。当然,上述只是非水平预测模式下划分的几个示例,对此不做限制。
[0290]
又例如,若当前图像区域是8*1的图像块,则在当前图像区域的预测模式是水平预测模式时,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是4*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是2*1;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是1,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1。当然,上述只是水平预测模式下划分的几个示例,对此不做限制。
[0291]
此外,若当前图像区域是8*1的图像块,则在当前图像区域的预测模式不是水平预测模式时,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是4*1;在该情况下,第一划分数量是2,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是4*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是2*1;在该情况下,第一划分数量是4,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是2*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是8*1;在该情况下,第一划分数量是1,第一滤波区域是当前图像区域的全部区域,第一尺寸规格是8*1。当然,上述只是非水平预测模式下划分的几个示例,对此不做限制。
[0292]
在实际应用中,在当前图像区的尺寸是其它尺寸时,如16*4的图像块、8*4的图像块、16*8的图像块等,其划分方式与上述方式类似,本实施例中不再重复赘述。
[0293]
实施例11:针对实施例1-实施例8,对于编码端和解码端来说,当前图像区域可以对应多个像素组,例如,将当前图像区域的所有像素点划分至多个像素组,即对所有像素点进行分类。本实施例中,可以采用如下方式确定当前图像区域对应的多个像素组:采用默认策略确定当前图像区域对应的多个像素组,比如说,可以采用默认策略确定像素组的划分属性,并基于该划分属性确定当前图像区域对应的多个像素组。示例性的,该划分属性可以包括划分数量、滤波区域和划分方式中的至少一种,若该划分属性包括划分数量、滤波区域和划分方式,则确定像素组的划分数量、滤波区域和划分方式,并基于划分数量、滤波区域和划分方式确定当前图像区域对应的多个像素组。若该划分属性包括划分数量和划分方式,则确定像素组的划分数量和划分方式,并基于划分数量和划分方式确定当前图像区域对应的多个像素组。其中,划分数量用于表示将当前图像区域划分为多少个像素组,滤波区域用于表示将当前图像区域的哪部分区域划分为多个像素组,划分方式用于表示每个像素组的尺寸规格。
[0294]
在上述方式中,划分数量、滤波区域和划分方式均可以基于默认策略指定,如指定划分数量是第一划分数量,滤波区域是第一滤波区域,划分方式是第一尺寸规格,又例如,指定划分数量是第二划分数量,滤波区域是第二滤波区域,划分方式是第二尺寸规格。
[0295]
其中,划分数量可以根据经验配置,如可以是2个、4个、6个、8个、16个等,对此不做限制。滤波区域可以是当前图像区域的全部区域,也可以是当前图像区域的部分区域,对此不做限制。尺寸规格可以根据经验配置,尺寸规格可以包括宽度和高度,宽度可以是2、4、6、
8、12、16等,对此不做限制,高度可以是1、2、4、6、8、12、16等,对此不做限制。
[0296]
比如说,若当前图像区域是16*2的图像块,则可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是8*1。或者,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是16*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*2。或者,可以将当前图像区域的所有像素点划分至8个像素组,每个像素组的尺寸是2*2。当然,上述只是几个示例,对此不做限制。
[0297]
又例如,若当前图像区域是8*2的图像块,则可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是4*2。或者,可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是8*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是8*2。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是2*2。当然,上述只是几个示例,对此不做限制。
[0298]
又例如,若当前图像区域是16*1的图像块,则可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是8*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是4*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是16*1。或者,可以将当前图像区域的所有像素点划分至8个像素组,每个像素组的尺寸是2*1。当然,上述只是几个示例,对此不做限制。
[0299]
又例如,若当前图像区域是8*1的图像块,则可以将当前图像区域的所有像素点划分至2个像素组,每个像素组的尺寸是4*1。或者,可以将当前图像区域的所有像素点划分至4个像素组,每个像素组的尺寸是2*1。或者,可以将当前图像区域的所有像素点划分至1个像素组,每个像素组的尺寸是8*1。当然,上述只是几个示例,对此不做限制。
[0300]
在实际应用中,在当前图像区的尺寸是其它尺寸时,如16*4的图像块、8*4的图像块、16*8的图像块等,其划分方式与上述方式类似,本实施例中不再重复赘述。
[0301]
实施例12:针对实施例1-实施例8,对于编码端和解码端来说,当前图像区域可以对应多个像素组,例如,将当前图像区域的所有像素点划分至多个像素组,即对所有像素点进行分类。本实施例中,可以采用如下方式确定当前图像区域对应的多个像素组:根据当前图像区域的扫描顺序确定当前图像区域对应的多个像素组,也就是说,像素组的划分可以与当前图像区域的扫描顺序有关,该方式可以理解为:利用当前图像区域的扫描顺序,将当前图像区域的所有像素点重新排列成一维,然后再将当前图像区域切分成像素组。
[0302]
其中,针对当前图像区域的扫描顺序,在编码端,可以理解成残差系数编入码流的顺序,因此,在根据当前图像区域的扫描顺序确定当前图像区域对应的多个像素组时,多个像素组的顺序就与残差系数编入码流的顺序一致,在对像素组内每个像素点的重建值进行调整时,就可以减少等待时间,从而能够提高编码端的硬件处理性能。在解码端,可以理解成从码流中解析残差系数的顺序,因此,在根据当前图像区域的扫描顺序确定当前图像区域对应的多个像素组时,多个像素组的顺序就与残差系数的解析顺序一致,在对像素组内每个像素点的重建值进行调整时,就可以减少等待时间,从而能够提高解码端的硬件处理性能。
[0303]
示例性的,当前图像区域的扫描顺序可以是光栅扫描顺序,如针对当前图像区域的子块的光栅扫描顺序和针对当前图像区域的光栅扫描顺序。以当前图像区域是16*2的图像块为例,参见图6a所示,是针对当前图像区域的子块的光栅扫描顺序,在实际应用中,可
以将16*2的图像块划分为4个4*2的子块,当然,也可以将16*2的图像块划分为2个8*2的子块,也可以划分为其它尺寸的子块,对此不做限制。针对4个4*2的子块,针对图6a所示的光栅扫描顺序,可以将当前图像区域划分为4个4*2的像素组。显然,光栅扫描顺序是先扫描第1个子块的各像素点,然后扫描第2个子块的各像素点,然后扫描第3个子块的各像素点,然后扫描第4个子块的各像素点,因此,可以将第1个子块的各像素点划分到第1个像素组,将第2个子块的各像素点划分到第2个像素组,将第3个子块的各像素点划分到第3个像素组,将第4个子块的各像素点划分到第4个像素组,参见图6b所示。同理,针对图6c所示的光栅扫描顺序,可以将当前图像区域划分为2个8*2的像素组,参见图6d所示。
[0304]
参见图6e所示,是针对当前图像区域(即当前图像区域的整体)的光栅扫描顺序,可以将当前图像区域划分为4个8*1的像素组,参见图6f所示,也可以将当前图像区域划分为2个16*1的像素组,参见图6g所示。显然,光栅扫描顺序是先扫描第一行的16个像素点,然后扫描第2行的16个像素点,因此,可以采用图6f或者图6g的划分方式。
[0305]
示例性的,当前图像区域的扫描顺序可以是隔行扫描方式,以当前图像区域是16*2的图像块为例,参见图6h所示,是针对当前图像区域的扫描顺序,即先扫描第1行的第1个像素点,然后扫描第2行的第1个像素点,然后扫描第1行的第3个像素点,以此类推。针对图6h所示的扫描顺序,可以将当前图像区域划分为4个4*2的像素组,参见图6i所示,或者,将当前图像区域划分为2个8*2的像素组,参见图6j所示。
[0306]
参见图6i所示,可以将第1、3、5、7列的像素点组成一个像素组,将2、4、6、8列的像素点组成一个像素组,将第9、11、13、15列的像素点组成一个像素组,将10、12、14、16列的像素点组成一个像素组。参见图6h所示,可以将第1、3、5、7、9、11、13、15列的像素点组成一个像素组,将2、4、6、8、10、12、14、16列的像素点组成一个像素组。
[0307]
实施例13:针对实施例1-实施例12,对于编码端和解码端来说,可以基于调整值对像素点的重建值进行调整,关于调整值的取值范围,可以是[-7,7],当然,[-7,7]的取值范围只是示例,对此不做限制,如调整值的取值范围可以是[-4,4]、[-5,5]、[-6,6]、[-8,8],调整值的取值范围还可以是[-4,6]、[-6,5]、[-6,8]、[-8,4],显然,调整值的取值范围可以任意设置。
[0308]
在一种可能的实施方式中,关于[-7,7]的取值范围的二值化取值,可以参见表1所示。
[0309]
表1
[0310][0311]
在一种可能的实施方式中,调整值的取值范围还可以基于量化步长确定,也就是说,调整值的取值范围与量化步长有关。比如说,在量化步长为8时,最大的量化误差为4,那么,调整值的取值范围可以是[-4,4],在该情况下,小于-4或者大于4的调整值是不会出现的,显然,可以对表1所示的二值化进行调整,可以参见表2所示。当然,在实际应用中,针对不同的量化不同,可以配置不同的调整值的取值范围,对此取值范围不做限制。又例如,在量化步长为10时,调整值的取值范围可以是[-5,5]等,以此类推。
[0312]
表2
[0313][0314][0315]
在另一种可能的实施方式中,不同量化步长可以对应不同的调整值的取值范围,且调整值的取值范围内的数值数量相同,只是相邻两个数值之间间隔数值。比如说,量化步长a对应的取值范围是[-3,3],一共存在7个数值,如-3、-2、-1、0、1、2、3,而量化步长b(量化步长b可以大于量化步长a)对应的取值范围是[-6,6],但是只存在7个数值,如-6、-4、-2、0、2、4、6,量化步长c(量化步长c可以大于量化步长b)对应的取值范围是[-9,9],但是只存在7个数值,如-9、-6、-3、0、3、6、9,以此类推。
[0316]
实施例14:出于硬件考虑的限制,在一种可能的实施方式或者,当前图像区域的滤波后的重建值,不能用于同行的其它图像块的参考,只能用于下一行的其它图像块的参考。对于当前图像区域同行的其它图像块,仅能参考当前图像区域的滤波前的重建值。
[0317]
实施例15:针对实施例1-实施例13,编码端向解码端发送的码流中需要携带以下
内容:
[0318]
1、调整参数。该调整参数可以包括多个调整值,比如说,针对每个通道,该调整参数可以包括该通道的一个调整值,也可以包括该通道的至少两个调整值,为了方便描述,以一个通道为例。示例性的,当前图像区域可以对应多个像素组,当前图像区域对应的码流中只包括k个像素组对应的调整值,且k个像素组是多个像素组中的部分像素组或者全部像素组。
[0319]
其中,假设当前图像区域对应的码流中包括k个像素组对应的m个调整值,则m可以为正整数,m可以小于或者等于k,也就是说,m大于等于1,且小于等于k。
[0320]
比如说,若k个像素组对应同一个调整值,如调整值a,则当前图像区域对应的码流中只包括1个调整值,即调整值a,因此,m个调整值就是1个调整值。
[0321]
若k个像素组对应两个调整值,如像素组1和像素组2对应调整值a,像素组3和像素组4对应调整值b,则当前图像区域对应的码流中可以包括2个调整值,即调整值a和调整值b,因此,m个调整值就是2个调整值。或者,当前图像区域对应的码流中可以包括4个调整值,即像素组1对应的调整值a、像素组2对应的调整值a、像素组3对应的调整值b和像素组4对应的调整值b,因此,m个调整值就是4个调整值。
[0322]
若k个像素组对应k个调整值,如像素组1对应调整值a,像素组2对应调整值b,像素组3对应调整值c,像素组4对应调整值d,则当前图像区域对应的码流中可以包括4个调整值,即调整值a、调整值b、调整值c和调整值d,因此,m个调整值就是4个调整值。
[0323]
2、像素组指示信息。在当前图像区域对应多个像素组(如32个像素组)时,像素组指示信息用于指示全部像素组中的k个像素组,表示码流中携带的是这k个像素组对应的调整值。显然,若k个像素组就是全部像素组,那么,码流中就不需要携带像素组指示信息,解码端获知k个像素组就是全部像素组(如32个像素组)。若k个像素组是全部像素组中的部分像素组,则解码端需要获知k个像素组是哪些像素组,此时,可以采用如下方式:
[0324]
显示方式:编码端向解码端发送当前图像区域对应的码流时,当前图像区域对应的码流中携带像素组指示信息,表示码流中携带的是该像素组指示信息对应的像素组的调整值。解码端可以从当前图像区域对应的码流中解析k个像素组对应的像素组指示信息,获知码流中携带的调整参数是该像素组指示信息对应的k个像素组对应的调整值。
[0325]
比如说,像素组指示信息包括k个像素组的索引值,这些索引值表示像素组是所有像素组中的第几个像素组,以k个像素组是像素组1、像素组2、像素组3和像素组4为例,则像素组指示信息包括像素组1的索引值、像素组2的索引值、像素组3的索引值和像素组4的索引值。
[0326]
又例如,假设k个像素组是连续像素组,该像素组指示信息包括k个像素组中部分像素组的索引值,剩余像素组的索引值可以隐式推导出。以k个像素组是像素组1、像素组2、像素组3和像素组4为例,则像素组指示信息只包括像素组1的索引值,由于k个像素组是连续像素组,因此,隐式推导出像素组2的索引值、像素组3的索引值和像素组4的索引值。
[0327]
隐式方式:若k个像素组是所有像素组中的部分像素组,且k个像素组是处于默认位置的k个像素组,如k个像素组固定为前面4个像素组,或k个像素组固定为第1、3、5、7个像素组,或k个像素组固定为后面4个像素组,那么,编码端可以不在当前图像区域对应的码流中编码k个像素组对应的像素组指示信息,解码端也不需要从当前图像区域对应的码流中
解析k个像素组对应的像素组指示信息,在此基础上,解码端获知码流中携带的调整参数是默认位置的k个像素组的调整值,例如,调整参数是前面4个像素组的调整值,或调整参数是第1、3、5、7个像素组的调整值,或调整参数是后面4个像素组的调整值。
[0328]
3、调整值分组指示信息。在当前图像区域对应的码流中携带k个像素组对应的m个调整值时,调整值分组指示信息用于指示m个调整值与k个像素组之间的匹配关系。
[0329]
在一种可能的实施方式中,若m个调整值只是1个调整值或者k个调整值,则调整值分组指示信息可以是一种标记位,即调整值分组指示信息只有第一取值和第二取值。在该情况下,若k个像素组对应同一个调整值,如k个像素组均对应调整值a,那么,调整值分组指示信息是第一取值,通过第一取值表示k个像素组对应同一个调整值。解码端从码流中解析出调整值分组指示信息之后,若获知调整值分组指示信息为第一取值,就可以只从码流中解析出一个调整值(如调整值a),这个调整值作为k个像素组对应的调整值。
[0330]
若k个像素组对应k个调整值,如k个像素组依次对应调整值a、调整值b、调整值c和调整值d(或者依次对应调整值a、调整值a、调整值b和调整值b),那么,调整值分组指示信息是第二取值,通过第二取值表示k个像素组对应k个调整值。解码端从码流中解析出调整值分组指示信息之后,若获知调整值分组指示信息为第二取值,就需要从码流中解析出k个调整值,如依次解析出调整值a、调整值b、调整值c和调整值d(或者依次解析出调整值a、调整值a、调整值b和调整值b)。显然,第一个解析出的调整值a与第一个像素组1对应,第二个解析出的调整值b与第一个像素组2对应,第三个解析出的调整值c与第一个像素组3对应,第四个解析出的调整值d与第四个像素组4对应。
[0331]
示例性的,可以通过表3所示的语法表,表示上述实现过程。
[0332]
表3
[0333][0334][0335]
在上述语法表中,same_offset_flag表示调整值分组指示信息,若same_offset_flag的取值是第一取值(如1),则解码端需要从码流中解析出一个调整值,若same_offset_flag的取值是第二取值(如0),则解码端需要依次从码流中解析出k个调整值。
[0336]
针对表3所示的语法表,same_offset_flag是一个决策是否开启补偿的标记位,若same_offset_flag为第一取值,则开启补偿,判定k个像素组对应同一个调整值(本文的调整值也可以称为补偿值),此时,只需要解析一个调整值,若same_offset_flag为第二取值,
则未开启补偿,判定k个像素组对应k个调整值,此时,需要解析k个调整值。
[0337]
在另一种可能的实施方式中,若m个调整值可能是1个调整值、2个调整值、
…
、k个调整值,则调整值分组指示信息可以是多种取值。在该情况下,
[0338]
若k个像素组对应同一个调整值,那么,调整值分组指示信息是第一取值,通过第一取值表示k个像素组对应同一个调整值。在此基础上,解码端获知调整值分组指示信息是第一取值后,可以获知k个像素组对应同一个调整值。
[0339]
若k个像素组对应两个调整值,如第一个像素组和第二个像素组对应一个调整值,第三个像素组和第四个像素组对应另一个调整值,那么,调整值分组指示信息是第二取值,通过第二取值表示第一个像素组和第二个像素组对应一个调整值,第三个像素组和第四个像素组对应另一个调整值。在此基础上,解码端获知调整值分组指示信息是第二取值后,确定第一个像素组和第二个像素组对应一个调整值,第三个像素组和第四个像素组对应另一个调整值。
[0340]
若k个像素组对应两个调整值,如第一个像素组和第四个像素组对应一个调整值,第二个像素组和第三个像素组对应另一个调整值,那么,调整值分组指示信息是第三取值,在此基础上,解码端获知调整值分组指示信息是第三取值后,确定第一个像素组和第四个像素组对应一个调整值,第二个像素组和第三个像素组对应另一个调整值。
[0341]
以此类推,显然,调整值分组指示信息的每种取值,就对应一种映射关系,该映射关系表示m个调整值与k个像素组之间的匹配关系,关于调整值分组指示信息的取值和映射关系之间的对应关系,可以在编码端和解码端约定,对此不做限制。
[0342]
综上所述,调整值分组指示信息用于指示m个调整值与k个像素组之间的匹配关系,并且,解码端从码流中解析出调整值分组指示信息之后,就可以基于调整值分组指示信息从当前图像区域对应的码流中解析m个调整值,并基于m个调整值确定k个像素组对应的调整值,即基于m个调整值与k个像素组之间的匹配关系,确定k个像素组对应的调整值。
[0343]
示例性的,上述各实施例可以单独实现,也可以组合实现,比如说,实施例1-实施例15中的每个实施例,可以单独实现,实施例1-实施例15中的至少两个实施例,可以组合实现。
[0344]
示例性的,上述各实施例中,编码端的内容也可以应用到解码端,即解码端可以采用相同方式处理,解码端的内容也可以应用到编码端,即编码端可以采用相同方式处理。
[0345]
实施例16:基于与上述方法同样的申请构思,本技术实施例中还提出一种解码装置,所述解码装置应用于解码端,所述解码装置包括:存储器,其经配置以存储视频数据;解码器,其经配置以实现上述实施例1-实施例15中的解码方法,即解码端的处理流程。
[0346]
比如说,在一种可能的实施方式中,解码器,其经配置以实现:
[0347]
基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;
[0348]
若确定需要对所述当前图像区域进行重建值调整,则从所述当前图像区域对应的码流中获取所述当前图像区域对应的调整参数;
[0349]
基于所述调整参数对所述当前图像区域的重建值进行调整。
[0350]
基于与上述方法同样的申请构思,本技术实施例中还提出一种编码装置,所述编码装置应用于编码端,所述编码装置包括:存储器,其经配置以存储视频数据;编码器,其经
配置以实现上述实施例1-实施例15中的编码方法,即编码端的处理流程。
[0351]
比如说,在一种可能的实施方式中,编码器,其经配置以实现:
[0352]
基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;
[0353]
若确定需要对所述当前图像区域进行重建值调整,则获取所述当前图像区域对应的调整参数,所述调整参数用于对所述当前图像区域的重建值进行调整;
[0354]
在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数。
[0355]
基于与上述方法同样的申请构思,本技术实施例提供的解码端设备(也可以称为视频解码器),从硬件层面而言,其硬件架构示意图具体可以参见图7a所示。包括:处理器711和机器可读存储介质712,机器可读存储介质712存储有能够被处理器711执行的机器可执行指令;处理器711用于执行机器可执行指令,以实现本技术上述实施例1-15的解码方法。
[0356]
基于与上述方法同样的申请构思,本技术实施例提供的编码端设备(也可以称为视频编码器),从硬件层面而言,其硬件架构示意图具体可以参见图7b所示。包括:处理器721和机器可读存储介质722,机器可读存储介质722存储有能够被处理器721执行的机器可执行指令;处理器721用于执行机器可执行指令,以实现本技术上述实施例1-15的编码方法。
[0357]
基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的方法,如上述上述各实施例中的解码方法或者编码方法。
[0358]
基于与上述方法同样的申请构思,本技术实施例还提供一种计算机应用程序,所述计算机应用程序令被处理器执行时,能够实现本技术上述示例公开的解码方法或者编码方法。
[0359]
基于与上述方法同样的申请构思,本技术实施例中还提出一种解码装置,所述解码装置应用于解码端,所述解码装置包括:确定模块,用于基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;获取模块,用于若确定需要对所述当前图像区域进行重建值调整,则从所述当前图像区域对应的码流中获取所述当前图像区域对应的调整参数;调整模块,用于基于所述调整参数对所述当前图像区域的重建值进行调整。
[0360]
示例性的,所述特征信息包括第一类特征信息,所述确定模块基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整时具体用于:若所述当前图像区域对应的第一类特征信息满足特定条件,则从所述当前图像区域对应的码流中获取调整控制开关对应的标记位,基于所述标记位确定是否需要对所述当前图像区域进行重建值调整;其中,若所述标记位为第一取值,确定需要对所述当前图像区域进行重建值调整;若所述标记位为第二取值,确定不需要对所述当前图像区域进行重建值调整。
[0361]
示例性的,所述确定模块基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整时具体用于:若所述当前图像区域对应的第一类特征信息不满足特定条件,则确定不需要对所述当前图像区域进行重建值调整。
[0362]
示例性的,所述特征信息包括第二类特征信息,所述确定模块基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整时具体用于:若所述当前图
像区域对应的第二类特征信息满足特定条件,则确定需要对所述当前图像区域进行重建值调整;若所述当前图像区域对应的第二类特征信息不满足特定条件,则确定不需要对所述当前图像区域进行重建值调整。
[0363]
示例性的,所述当前图像区域对应的调整参数包括多个调整值,所述当前图像区域对应多个像素组,所述多个调整值包括k个像素组对应的调整值,k个像素组是所述多个像素组中的全部像素组或部分像素组;所述调整模块基于所述调整参数对所述当前图像区域的重建值进行调整时具体用于:针对k个像素组中的每个像素组,若所述多个调整值包括该像素组对应的调整值,则基于该像素组对应的调整值对该像素组内的像素点的重建值进行调整。
[0364]
示例性的,所述获取模块,还用于从所述当前图像区域对应的码流中获取调整值分组指示信息;所述调整值分组指示信息用于指示调整值与所述k个像素组之间的映射关系;基于所述调整值分组指示信息从所述当前图像区域对应的码流中解析m个调整值,所述m为正整数,且所述m小于或者等于k;基于所述m个调整值确定所述k个像素组对应的调整值。
[0365]
示例性的,所述确定模块,还用于采用确定方式确定当前图像区域对应多个像素组:按照各像素点的调整前重建值确定所述当前图像区域对应的多个像素组;或者,基于像素点的周围像素点的调整前重建值确定该像素点的分类值,按照各像素点的分类值确定所述当前图像区域对应的多个像素组;或者,按照各像素点的像素位置确定所述当前图像区域对应的多个像素组;或者,根据当前图像区域的预测模式确定所述当前图像区域对应的多个像素组;或者,根据当前图像区域的扫描顺序确定所述当前图像区域对应的多个像素组。
[0366]
示例性的,所述确定模块根据当前图像区域的预测模式确定所述当前图像区域对应的多个像素组时具体用于:根据所述当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式;基于所述划分数量、所述滤波区域和所述划分方式确定所述当前图像区域对应的多个像素组。所述确定模块根据所述当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式时具体用于:若所述当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;若所述当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定像素组的滤波区域是第二滤波区域,确定划分方式是第二尺寸规格。
[0367]
基于与上述方法同样的申请构思,本技术实施例中还提出一种编码装置,所述编码装置应用于编码端,所述编码装置包括:确定模块,用于基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;获取模块,用于若确定需要对所述当前图像区域进行重建值调整,则获取所述当前图像区域对应的调整参数,所述调整参数用于对所述当前图像区域的重建值进行调整;编码模块,用于在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数。
[0368]
示例性的,所述特征信息包括第一类特征信息,所述确定模块基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整时具体用于:若当前图像区域对应的第一类特征信息满足特定条件,则确定是否需要对所述当前图像区域进行重建值
调整,并在所述当前图像区域对应的码流中编码调整控制开关对应的标记位;其中,所述标记位用于指示是否需要对所述当前图像区域进行重建值调整;若当前图像区域对应的第一类特征信息不满足特定条件,则确定不需要对所述当前图像区域进行重建值调整。
[0369]
示例性的,所述当前图像区域对应多个像素组,所述当前图像区域对应的调整参数包括多个调整值,所述多个调整值包括k个像素组对应的调整值,所述k个像素组是所述多个像素组中的全部像素组或部分像素组;所述编码模块在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数时具体用于:在所述当前图像区域对应的码流中编码所述k个像素组对应的m个调整值,m为正整数,且m小于或等于k;其中,所述m个调整值是基于所述k个像素组对应的调整值确定;所述编码模块,还用于在所述当前图像区域对应的码流中编码调整值分组指示信息,所述调整值分组指示信息用于指示所述m个调整值与所述k个像素组之间的匹配关系。
[0370]
示例性的,所述确定模块,还用于采用如下方式确定所述当前图像区域对应多个像素组:按照各像素点的调整前重建值确定所述当前图像区域对应的多个像素组;或者,基于像素点的周围像素点的调整前重建值确定该像素点的分类值,按照各像素点的分类值确定所述当前图像区域对应的多个像素组;或者,按照各像素点的像素位置确定所述当前图像区域对应的多个像素组;或者,根据当前图像区域的预测模式确定所述当前图像区域对应的多个像素组;或者,根据当前图像区域的扫描顺序确定所述当前图像区域对应的多个像素组。
[0371]
示例性的,所述确定模块根据当前图像区域的预测模式确定所述当前图像区域对应的多个像素组时具体用于:根据所述当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式;基于所述划分数量、所述滤波区域和所述划分方式确定所述当前图像区域对应的多个像素组。所述确定模块根据所述当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式时具体用于:若所述当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;若所述当前图像区域的预测模式不是水平预测模式,则确定像素组的划分数量是第二划分数量,确定像素组的滤波区域是第二滤波区域,确定划分方式是第二尺寸规格。
[0372]
本领域内的技术人员应明白,本技术实施例可提供为方法、系统、或计算机程序产品。本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0373]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种解码方法,其特征在于,应用于解码端,所述方法包括:若当前图像区域对应的第一类特征信息满足特定条件,则从所述当前图像区域对应的码流中获取调整控制开关对应的标记位;若所述调整控制开关对应的标记位为第一取值,则从所述当前图像区域对应的码流中获取所述当前图像区域对应的调整参数;基于所述调整参数对所述当前图像区域的重建值进行调整。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述当前图像区域对应的第一类特征信息不满足特定条件,则确定不对所述当前图像区域进行重建值调整。3.根据权利要求1或2所述的方法,其特征在于,所述第一类特征信息包括:预测模式;在所述预测模式是普通帧内预测模式时,确定所述预测模式满足特定条件;否则,确定所述预测模式不满足特定条件。4.根据权利要求1所述的方法,其特征在于,所述当前图像区域对应的调整参数包括多个调整值,根据各像素点的像素位置或者当前图像区域的预测模式确定所述当前图像区域对应的多个像素组,所述多个调整值包括k个像素组对应的调整值,所述k个像素组是所述多个像素组中的全部像素组或部分像素组;所述基于所述调整参数对所述当前图像区域的重建值进行调整,包括:针对所述k个像素组中的每个像素组,若所述多个调整值包括该像素组对应的调整值,则基于该像素组对应的调整值对该像素组内的像素点的重建值进行调整。5.根据权利要求4所述的方法,其特征在于,所述根据当前图像区域的预测模式确定所述当前图像区域对应的多个像素组,包括:根据所述当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式;基于所述划分数量、所述滤波区域和所述划分方式确定所述当前图像区域对应的多个像素组。6.根据权利要求5所述的方法,其特征在于,若所述当前图像区域是16*2的图像块,所述根据所述当前图像区域的预测模式确定像素组的划分数量、滤波区域和划分方式,包括:若所述当前图像区域的预测模式是水平预测模式,则确定像素组的划分数量是第一划分数量,确定像素组的滤波区域是第一滤波区域,确定划分方式是第一尺寸规格;其中,所述第一划分数量为4,所述第一尺寸规格为8*1。7.一种编码方法,其特征在于,应用于编码端,所述方法包括:若当前图像区域对应的第一类特征信息满足特定条件,且确定需要对所述当前图像区域进行重建值调整,则在所述当前图像区域对应的码流中编码调整控制开关对应的标记位,且所述调整控制开关对应的标记位为第一取值;获取所述当前图像区域对应的调整参数,所述调整参数用于对所述当前图像区域的重建值进行调整,并在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数。8.一种解码装置,其特征在于,所述解码装置包括:确定模块,用于若当前图像区域对应的第一类特征信息满足特定条件,则从所述当前图像区域对应的码流中获取调整控制开关对应的标记位;获取模块,用于若所述调整控制开关对应的标记位为第一取值,则从所述当前图像区
域对应的码流中获取所述当前图像区域对应的调整参数;调整模块,用于基于所述调整参数对所述当前图像区域的重建值进行调整。9.一种编码装置,其特征在于,所述编码装置包括:确定模块,用于若当前图像区域对应的第一类特征信息满足特定条件,且确定需要对所述当前图像区域进行重建值调整,则在所述当前图像区域对应的码流中编码调整控制开关对应的标记位,且所述调整控制开关对应的标记位为第一取值;获取模块,用于获取所述当前图像区域对应的调整参数,所述调整参数用于对所述当前图像区域的重建值进行调整;编码模块,用于在所述当前图像区域对应的码流中编码所述当前图像区域对应的调整参数。10.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-6任一项所述的方法步骤。11.一种编码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求7所述的方法步骤。12.一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,实现权利要求1-7任一项所述的方法。
技术总结
本申请提供一种解码、编码方法、装置及其设备,该解码方法包括:基于当前图像区域对应的特征信息确定是否需要对当前图像区域进行重建值调整;若确定需要对所述当前图像区域进行重建值调整,则从所述当前图像区域对应的码流中获取所述当前图像区域对应的调整参数;基于所述调整参数对所述当前图像区域的重建值进行调整。通过本申请能够提高编码性能和解码性能。性能。性能。
技术研发人员:孙煜程 曹小强 陈方栋
受保护的技术使用者:杭州海康威视数字技术股份有限公司
技术研发日:2022.04.27
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/