一种图像解码方法、编码方法及装置与流程
未命名
09-08
阅读:88
评论:0

1.本技术实施例涉及视频编解码领域,尤其涉及一种图像解码方法、编码方法及装置。
背景技术:
2.在视频编解码领域,采用视频压缩(即视频编解码)技术可以压缩视频的数据量,从而实现视频的高效传输或存储。
3.对视频进行编解码即对视频中的每一帧图像进行编解码。以一帧图像为例,在编码端,图像编码器对图像编码,得到图像对应的码流并传输码流至解码端;在解码端,图像解码器解析码流,得到图像。目前,将图像划分为一个或多个编码单元(coding unit,cu),图像编码器对每一个cu进行预测、确定对cu的预测值与cu的真实值之间的残差值、对残差值依次进行变换、量化、编码,从而得到码流。相应的,图像解码器对每一个cu进行预测、对cu对应的码流的解码结果依次进行反量化、反变换得到该cu对应的残差值、计算cu的预测值和残差值之和,从而得到cu的重构值。
4.在图像编解码过程中,量化可以实现信号取值多对一的映射,从而有效减少信号取值空间,获得更好的压缩效果。可以理解的,编码端和解码端根据量化参数(quantization parameter,qp)执行量化和反量化过程。目前,为一个cu设置一个qp,编码端获取每个cu的qp,并依据该qp对cu的残差值或者变换系数进行量化;相应的,解码端获取cu的qp,并根据该qp对从码流中解析得到的量化系数进行反量化(dequantization)。然而,对一个cu中的所有像素点采用相同的qp进行量化,即对该cu中的所有像素点进行相同程度的量化,这样,会导致图像编解码过程的量化失真(量化失真可以理解为因量化而造成的图像失真)较大。
技术实现要素:
5.本技术实施例提供一种图像解码方法、编码方法及装置,能够可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
6.为达到上述目的,本技术实施例采用如下技术方案:
7.第一方面,本技术实施例提供一种图像解码方法,该方法由解码端执行,该方法包括:针对当前编码块中的任意一个像素点或任意多个并行反量化的像素点,确定所述像素点的量化参数qp值;其中,当前编码块的像素点中至少存在两个像素点的qp值不同;并且根据所述素点的qp值,对所述像素点进行反量化。
8.通过本技术实施例中提供的解码方法,视频解码器可以为编码块中的像素点确定每个像素点粒度的qp,从而根据每个像素点的qp值对每个像素点进行反量化,即逐像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
9.一种可能的实现方式中,本技术实施例提供的图像解码方法还包括:获取所述当
前编码块的qp值;并且确定所述像素点的预测qp值,所述像素点的预测qp值为所述当前编码块的qp值。
10.一种可能的实现方式中,所述确定所述像素点的qp值,包括:所述像素点为所述当前编码块中的任意一个目标像素点或任意多个并行反量化的目标像素点时,调整所述像素点的预测qp值,将调整后的qp值作为所述像素点的qp值;所述像素点为所述当前编码块中除所述目标像素点之外的像素点时,将所述像素点的预测qp值确定为所述像素点的qp值。
11.一种可能的实现方式中,所述调整所述像素点的预测qp值,包括:获取所述像素点周围的已重建像素点的信息;并且根据所述像素点周围的已重建像素点的信息,调整所述像素点的预测qp值。
12.一种可能的实现方式中,所述调整所述像素点的预测qp值,包括:若所述像素点满足第一预设条件,则将预设qp值作为所述像素点的qp值;否则,将所述像素点的预测qp值作为所述像素点的qp值。
13.其中,所述第一预设条件包括下述条件中至少一种:
14.所述像素点为亮度像素点;
15.所述像素点为色度像素点;
16.所述像素点的比特深度小于或等于比特深度阈值;
17.所述像素点的预测qp值小于或等于可调整的qp最大值,所述可调整的qp最大值小于或等于qp最大值;
18.所述像素点周围的已重建像素点的信息小于或等于第一预设阈值。
19.一种可能的实现方式中,所述根据所述像素点的qp值,对所述像素点进行反量化,包括:根据所述调整后的qp值,对所述像素点进行反量化。
20.一种可能的实现方式中,所述目标像素点为所述当前编码块中的任意一个或多个像素点。
21.一种可能的实现方式中,所述当前编码块至少包括第一部分像素点和/或第二部分像素点,所述目标像素点为所述第二部分像素点中的任意一个或多个像素点。
22.一种可能的实现方式中,所述目标像素点为所述第二部分像素点中的第一位置像素点中的任意一个或多个像素点。
23.一种可能的实现方式中,所述目标像素点为所述第二部分像素点中的第二位置像素点中的任意一个或多个像素点。
24.一种可能的实现方式中,所述当前编码块的预测模式为逐点预测模式,所述当前编码块至少包括第一部分像素点和/或第二部分像素点,所述第二部分像素点包括第一位置像素点和/或第二位置像素点,所述第一位置像素点、所述第二位置像素点是根据所述当前编码块的逐点预测模式确定的。
25.一种可能的实现方式中,所述根据所述像素点周围的已重建像素点的信息,调整所述像素点的预测qp值,包括:若所述像素点满足第二预设条件和第三预设条件,则根据第一qp偏移量和所述人眼恰可察觉失真对应的qp值,调整所述像素点的预测qp值;其中,所述第二预设条件为所述像素点的预测qp值大于人眼恰可察觉失真对应的qp值,且所述像素点的预测qp值小于或等于可调整的qp最大值,所述第三预设条件为所述像素点周围的已重建像素点的信息小于或等于第一阈值;若所述像素点满足所述第二预设条件和第四预设条
件,则根据第二qp偏移量和qp最大值,调整所述像素点的预测qp值;其中,所述第四预设条件为所述像素点周围的已重建像素点的信息大于第二阈值,所述第一阈值小于或等于所述第二阈值;否则,将所述像素点的预测qp值作为所述像素点的qp值。
26.一种可能的实现方式中,在所述像素点满足第二预设条件和第三预设条件的情况下,所述调整后的qp值满足:finalqp=max(initqp
–
offset1,jndqp),其中,finalqp表示所述调整后的qp值,initqp表示所述像素点的预测qp值,offset1表示所述第一qp偏移量,jndqp表示所述人眼恰可察觉失真对应的qp值,max表示取最大值。
27.一种可能的实现方式中,在所述像素点满足所述第二预设条件和第四预设条件的情况下,所述调整后的qp值满足:finalqp=min(initqp+offset2,maxqp),其中,finalqp表示所述调整后的qp值,initqp表示所述像素点的预测qp值,offset2表示所述第二qp偏移量,maxqp表示所述qp最大值,min表示取最小值。
28.一种可能的实现方式中,所述像素点周围的已重建像素点包括满足下述条件的像素点:
29.以所述像素点为中心,边长为第一预设值的正方形区域中的像素点;或者,
30.以所述像素点为中心,对角线长度为第二预设值的菱形区域中的像素点。
31.一种可能的实现方式中,所述已重建像素点的信息包括下述至少一种信息:所述已重建像素点的像素值、平坦度信息或纹理度信息或复杂度信息、背景亮度、对比度或运动程度。
32.一种可能的实现方式中,所述已重建像素点的信息的值包括下述至少一个种:原始值、绝对值、均值或差值。
33.一种可能的实现方式中,所述获取所述像素点周围的已重建像素点的信息,包括:获取所述像素点的预测像素点的信息;若所述预测像素点为所述当前编码块中的已重建像素点,则将所述预测像素点的信息作为所述像素点周围的已重建像素点的信息;否则,将所述预测像素点的信息与所述预测像素点周围的已重建像素点的信息的差值或差值的绝对值作为所述像素点周围的已重建像素点的信息。
34.一种可能的实现方式中,所述当前编码块的预测模式为块预测模式,本技术实施例提供的图像解码方法还包括:获取所述当前编码块的区域划分信息,所述区域划分信息包括区域数量n以及区域分界线的位置信息,n为大于或等于2的整数;并且根据所述区域划分信息,将所述当前编码块划分为n个区域。
35.一种可能的实现方式中,所述n个区域中的至少一个区域的像素点的qp值依据至少一个其他区域的已重建像素点的信息进行确定,所述其他区域为所述n个区域中除所述至少一个区域之外的区域。
36.一种可能的实现方式中,所述区域数量n为2,所述当前编码块包括第一区域和第二区域,所述第一区域中的像素点包括下述像素点中的至少一种:所述当前编码块的任意位置的水平条带中的像素点、任意位置的垂直条带中的像素点或任意位置的斜向条带中的像素点,其中,条带的宽度不超过2,并且在条带位于所述当前编码块的边界的情况下,条带的宽度等于1,所述第二区域中的像素点为所述当前编码块中除所述第一区域之外的像素点。
37.如此,所述确定所述像素点的qp值,包括:所述像素点为所述第一区域中的任意一
个像素点时,调整所述像素点的预测qp值,将调整后的qp值作为所述像素点的qp值;所述像素点为所述第二区域中的任意一个像素点时,将所述像素点的预测qp值作为所述像素点的qp值。
38.上述情况下的一种可能的实现方式中,所述调整所述像素点的预测qp值,包括:获取所述像素点周围的已重建像素点的信息;并且根据所述像素点周围的已重建像素点的信息,调整所述像素点的预测qp值。
39.一种可能的实现方式中,所述获取所述当前编码块的区域划分信息,包括:获取预定义的所述当前编码块的区域划分信息;或者,解析码流,获取所述当前编码块的区域划分信息。
40.一种可能的实现方式中,对所述当前编码块做变换的情况下,所述获取所述当前编码块的区域划分信息,包括:根据所述当前编码块的上侧相邻行的像素点和/或左侧相邻列像素点确定所述当前编码块的区域划分信息;所述当前编码块的区域划分方式包括下述至少一种:水平划分、垂直划分或斜向划分。
41.如此,一种可能的实现方式中,针对所述n个区域中的任意一个区域中的任意一个像素点或任意多个并行反量化像素点,确定所述像素点的qp值,包括:获取所述像素点的qp偏移量;并且根据所述qp偏移量调整所述像素点的预测qp值,将调整后的qp值作为所述像素点的qp值。
42.一种可能的实现方式中,所述获取所述像素点的qp偏移量,包括:解析码流,以获取所述像素点的偏移量;或者,根据推导信息,确定所述像素点的qp偏移量,所述推导信息包括所述像素点所在区域的索引信息和/或所述像素点到所述像素点所在区域的区域分界线的距离;其中,所述距离包括下述任一种:水平距离、垂直距离或欧式距离。
43.一种可能的实现方式中,所述像素点的qp偏移量为下述任一种:所述第三qp偏移量、所述第四qp偏移量、所述第三qp偏移量与所述第四qp偏移量之和;所述第三qp偏移量根据所述像素点所在区域的索引信息推导获得,同一个区域内的像素点的第三qp偏移量相同,不同区域内的像素点的第三qp偏移量不同;所述第四qp偏移量根据所述像素点到所述像素点所在区域的区域分界线的距离推导获得。
44.一种可能的实现方式中,所述根据所述像素点的qp值,对所述像素点进行反量化,包括:根据所述像素点的qp值,确定所述像素点的量化步长qstep;针对所选择的量化器组合,采用所述像素点的qstep对所述像素点的水平值进行反量化;所述量化器组合包括一个或多个量化器,所述量化器为均匀量化器或非均匀量化器,所述像素点的水平值通过解析码流获得。
45.第二方面,本技术实施例提供一种图像编码方法,所述方法由编码端执行,所述方法包括:针对任意当前编码块中的任意一个像素点或任意多个并行量化的像素点,确定所述像素点的量化参数qp值;其中,所述当前编码块的像素点中至少存在两个像素点的qp值不同;并且根据所述像素点的qp值,对所述像素点进行量化。
46.通过本技术实施例中提供的编码方法,视频编码器可以为编码块中的像素点确定每个像素点粒度的qp,从而根据每个像素点的qp值对每个像素点进行量化,即逐像素点进行量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
47.可以理解的,图像编码方法中的各种可能的实现方式可以参考图像解码方法中各种可能的实现方式的描述。
48.第三方面,本技术实施例提供一种图像解码装置,该解码装置应用于解码端中,该解码装置包括用于实现第一方面及其可能的实现方式中之一所述的方法的各个模块,例如量化参数qp确定单元和反量化单元。
49.第三方面的技术方案以及有益效果可以参见第一方面及其可能的实现方式中任意之一的描述,此处不再赘述。所述解码装置具有实现上述第一方面及其可能的实现方式中任意之一的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
50.第四方面,本技术实施例提供一种图像编码装置,该编码装置应用于编码端中,该编码装置包括用于实现第二方面及其可能的实现方式中之一所述的方法的各个模块,例如量化参数qp确定单元和量化单元。
51.第四方面的技术方案以及有益效果可以参见第二方面及其可能的实现方式中任意之一的描述,此处不再赘述。所述编码装置具有实现上述第二方面及其可能的实现方式中任意之一的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
52.第五方面,本技术实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,以实现第一方面至第二方面及其可能的实现方式中任意之一所述的方法。
53.例如,该电子设备可以是指视频编码器,或包括视频编码器的编码端。
54.又如,该电子设备可以是指视频解码器,或包括视频解码器的解码端。
55.第六方面,本技术实施例提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被计算设备或计算设备所在的存储系统执行时,以实现第一方面至第二方面及其可能的实现方式中任意之一所述的方法。
56.第七方面,本技术实施例提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在计算设备或处理器上运行时,使得计算设备或处理器执行该指令,以实现第一方面至第二方面及其可能的实现方式中任意之一所述的方法。
57.第八方面,本技术实施例提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以实现第一方面至第二方面及其可能的实现方式中任意之一所述的方法。
58.第九方面,本技术实施例提供一种视频译码系统,该视频译码系统包括编码端和解码端,解码端用于实现第一方面及其可能的实现方式中任意之一所述的方法,编码端用于实现第二方面及其可能的实现方式中任意之一所述的方法。
59.本技术实施例在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
60.图1为本技术实施例提供的一种视频译码系统的示例性框图;
61.图2为本技术实施例提供的一种视频编码器的示例性框图;
62.图3为本技术实施例提供的一种视频解码器的示例性框图;
63.图4为本技术实施例提供的一种视频编/解码的流程示意图;
64.图5为本技术实施例提供的一种图像解码方法的流程示意图之一;
65.图6为本技术实施例提供的一种图像解码方法的流程示意图之二;
66.图7为本技术实施例提供的一种图像解码方法的流程示意图之三;
67.图8为本技术实施例提供的一种像素点的分布示意图;
68.图9为本技术实施例提供的一种逐点预测模式下像素点的划分示意图之一;
69.图10为本技术实施例提供的一种逐点预测模式下像素点的划分示意图之二;
70.图11为本技术实施例提供的一种逐点预测模式下像素点的划分示意图之三;
71.图12为本技术实施例提供的一种图像解码方法的流程示意图之四;
72.图13为本技术实施例提供的一种编码块的区域划分示意图之一;
73.图14为本技术实施例提供的一种编码块的区域划分示意图之二;
74.图15为本技术实施例提供的一种编码块的区域划分示意图之三;
75.图16为本技术实施例提供的一种图像编码方法的流程示意图;
76.图17为本技术实施例提供的一种残差组的划分示意图;
77.图18为本技术实施例提供的一种tb/pb的划分示意图;
78.图19为本技术提供的一种解码装置的结构示意图;
79.图20为本技术提供的一种编码装置的结构示意图;
80.图21为本技术提供的一种电子设备的结构示意图。
具体实施方式
81.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
82.本技术实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一预设值和第二预设值等是用于区别不同的预设值,而不是用于描述预设值的特定顺序。
83.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
84.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
85.本技术实施例提供的图像解码方法、编码方法也可以用于视频解码、视频编码,应理解,视频包括一系列图像(picture),对视频进行解码、解码实质也是对视频所包括的所有图像进行解码、编码。
86.可以理解的,图像编码过程中所涉及的量化是指将信号的连续取值(或大量的离散取值)映射为有限多个离散取值的过程,量化可以实现信号取值的多对一的映射。在视频编码中,残差信号经过变换后,变换系数往往具有较大的动态范围,因此对变换系数进行量化可以有效减少信号取值空间,获得更好的压缩效果。但是,由于多对一的映射机制,量化
过程不可避免的会引入失真,这是视频编码中产生失真的根本原因。
87.反量化是量化的反过程,反量化指的是将量化后的系数映射为输入信号空间中的重建信号,重建信号是输入信号的一个近似。
88.量化包括标量量化(scalar quantization,sq,)和向量量化。其中,标量量化是最基本的量化方法,标量量化的输入是一维的标量信号,标量量化过程包括:先将输入信号空间划分为一系列互不相交的区间,并且每个区间选取一个代表信号;然后对于每个输入信号,将该输入信号标量量化为该输入信号所在区间的代表信号。其中,区间长度称为量化步长(quantization step,记为qstep),区间索引为水平值(level),即量化后的值,表征量化步长的参数是量化参数(quantization parameter,qp)。
89.最简单的标量量化方法是均匀标量量化,均匀标量量化是将输入信号空间划分为等距的区间,每个区间的代表信号是区间中点。
90.最优标量量化器是lloyd-max量化器,lloyd-max量化器考虑了输入信号的分布情况,区间划分是非均匀的,每个区间的代表信号是该区间的概率质心,相邻两个区间的边界点是这两个区间代表信号的中点。
91.下面描述本技术实施例所应用的系统架构,图1为本技术提供的一种视频译码系统的示例性框图,如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本技术中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码系统1的视频编码器100和视频解码器200用于根据本技术提出的多种新的帧间预测模式中的任一种所描述的各种方法实例来预测当前经译码图像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动估算方法得到的运动矢量,从而编码时无需传送运动矢量差值,从而进一步的改善编解码性能。
92.如图1中所示,视频译码系统1包含编码端10和解码端20。编码端10产生经编码视频数据。因此,编码端10可被称为视频编码装置。解码端20可对由编码端10所产生的经编码的视频数据进行解码。因此,解码端20可被称为视频解码装置。编码端10、解码端20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于ram、rom、eeprom、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
93.编码端10和解码端20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
94.解码端20可经由链路30从编码端10接收经编码视频数据。链路30可包括能够将经编码视频数据从编码端10移动到解码端20的一或多个媒体或装置。在一个实例中,链路30可包括使得编码端10能够实时将经编码视频数据直接发射到解码端20的一或多个通信媒体。在此实例中,编码端10可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到解码端20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,rf)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从编码端10到解码端20的通信的其它设备。
emitting diode,oled)显示器或其它类型的显示装置。
102.尽管图1中未图示,但在一些方面,视频编码器100和视频解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么解复用器(mux-demux)单元可符合itu h.223多路复用器协议,或例如用户数据报协议(user datagram protocol,udp)等其它协议。
103.视频编码器100和视频解码器200各自可实施为例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本技术,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本技术技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
104.本技术可大体上将视频编码器100称为将某些信息“发信号通知”或“发射”到例如视频解码器200的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码码流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
105.jct-vc开发了h.265(hevc)标准。hevc标准化基于称作hevc测试模型(hevc model,hm)的视频解码装置的演进模型。h.265的最新标准文档可从http://www.itu.int/rec/t-rec-h.265获得,最新版本的标准文档为h.265(12/16),该标准文档以全文引用的方式并入本文中。hm假设视频解码装置相对于itu-th.264/avc的现有算法具有若干额外能力。例如,h.264提供9种帧内预测编码模式,而hm可提供多达35种帧内预测编码模式。
106.jvet致力于开发h.266标准。h.266标准化的过程基于称作h.266测试模型的视频解码装置的演进模型。h.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包含于jvet-f1001-v2中,该算法描述文档以全文引用的方式并入本文中。同时,可从https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/获得jem测试模型的参考软件,同样以全文引用的方式并入本文中。
107.一般来说,hm的工作模型描述可将视频帧或图像划分成包含亮度及色度样本两者的树块或最大编码单元(largest coding unit,lcu)的序列,lcu也被称为编码树单元(coding tree unit,ctu)。树块具有与h.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元(coding unit,cu)。例如,可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解码视频块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码节点的最小大小。
108.cu的大小对应于解码节点的大小且形状必须为正方形。cu的大小的范围可为8
×
8像素直到最大64
×
64像素或更大的树块的大小。
109.视频序列通常包含一系列视频帧或图像。图像群组(group of picture,gop)示例性地包括一系列、一个或多个视频图像。gop可在gop的头信息中、图像中的一者或多者的头信息中或在别处包含语法数据,语法数据描述包含于gop中的图像的数目。图像的每一条带可包含描述相应图像的编码模式的条带语法数据。视频编码器100通常对个别视频条带内的视频块进行操作以便编码视频数据。视频块可对应于cu内的解码节点。视频块可具有固定或变化的大小,且可根据指定解码标准而在大小上不同。
110.在本技术中,“n
×
n”与“n乘n”可互换使用以指依照垂直维度及水平维度的视频块的像素尺寸,例如,16
×
16像素或16乘16像素。一般来说,16
×
16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素点(x=16)。同样地,n
×
n块一股在垂直方向上具有n个像素点,且在水平方向上具有n个像素点,其中n表示非负整数值。可将块中的像素排列成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素点。例如,块可包括n
×
m个像素点,其中m未必等于n。
111.在使用cu的帧内/帧间预测性解码之后,视频编码器100可计算cu的残余数据。cu可包括空间域(也称作像素域)中的像素数据,且cu可包括在将变换(例如,离散余弦变换(discrete cosine transform,dct)、整数变换、离散小波变换或概念上类似的变换)应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编码图像的像素与对应于cu的预测值之间的像素差。视频编码器100可形成包含残余数据的cu,且产生cu的变换系数。
112.在任何变换以产生变换系数之后,视频编码器100可执行变换系数的量化。量化示例性地指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。
113.在一些可行的实施方式中,视频编码器100可利用预定义扫描次序来扫描经量化变换系数以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器100可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器100可根据上下文自适应性可变长度解码(context-based adaptive variable-length code,cavlc)、上下文自适应性二进制算术解码(context-based adaptive binary arithmetic coding,cabac)、基于语法的上下文自适应性二进制算术解码(syntax-based adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)解码或其他熵解码方法来熵解码一维向量。视频编码器100也可熵编码与经编码视频数据相关联的语法元素以供视频解码器200用于解码视频数据。
114.为了执行cabac,视频编码器100可将上下文模型内的上下文指派给待传输的符号。上下文可与符号的相邻值是否为非零有关。为了执行cavlc,视频编码器100可选择待传输的符号的可变长度码。可变长度解码(variable-length code,vlc)中的码字可经构建以使得相对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以这个方式,vlc的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率的目的。基于指派给符号的上下文可以确定cabac中的概率。
115.在本技术实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。本
申请可将视频解码器当前在解码的cu称作当前cu。本技术可将视频解码器当前在解码的图像称作当前图像。
116.图2为本技术提供的一种视频编码器的示例性框图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的实例,例如媒体感知网络元件(mane)或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图1的存储装置40的实例。
117.在图2的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓冲器(decoded picture buffer,dpb)107、求和器112、变换器101、量化器102和熵编码器103。预测处理单元108包括帧间预测器110和帧内预测器109。为了图像块重构,视频编码器100还包含反量化器104、反变换器105和求和器111。滤波器单元106既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(adaptive loop filter,alf)和样本自适应偏移(sample adaptive offset,sao)滤波器。尽管在图2中将滤波器单元106示出为环路内滤波器,但在其它实现方式下,可将滤波器单元106实施为环路后滤波器。在一种示例下,视频编码器100还可以包括视频数据存储器、分割单元(图中未示意)。
118.视频数据存储器可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得存储在视频数据存储器中的视频数据。dpb 107可为参考图像存储器,其存储用于由视频编码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和dpb 107可由多种存储器装置中的任一者形成,例如包含同步动态随机存储器(synchronous dynamic random access memory,sdram)的动态随机存取存储器(dynamic random access memory,dram)、磁阻式ram(magnetic random access memory,mram)、电阻式ram(resistive random access memory,rram),或其它类型的存储器装置。视频数据存储器和dpb 107可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
119.如图2所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元108可选择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个帧间译码模式中的一者。预测处理单元108可将所得经帧内、帧间译码的块提供给求和器112以产生残差块,且提供给求和器111以重构用作参考图像的经编码块。
120.预测处理单元108内的帧内预测器109可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测器110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。
121.具体的,帧间预测器110可用于确定用于编码当前图像块的帧间预测模式。举例来
说,帧间预测器110可使用码率-失真分析来计算候选帧间预测模式集合中的各种帧间预测模式的码率-失真值,并从中选择具有最佳码率-失真特性的帧间预测模式。码率失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位码率(也就是说,位数目)。例如,帧间预测器110可确定候选帧间预测模式集合中编码所述当前图像块的码率失真代价最小的帧间预测模式为用于对当前图像块进行帧间预测的帧间预测模式。
122.帧间预测器110用于基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧间预测器110可在参考图像列表中的一者中定位所述运动向量指向的预测块。帧间预测器110还可产生与图像块和视频条带相关联的语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器110利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器110执行运动估计和运动补偿过程。
123.具体的,在为当前图像块选择帧间预测模式之后,帧间预测器110可将指示当前图像块的所选帧间预测模式的信息提供到熵编码器103,以便于熵编码器103编码指示所选帧间预测模式的信息。
124.帧内预测器109可对当前图像块执行帧内预测。明确地说,帧内预测器109可确定用来编码当前块的帧内预测模式。举例来说,帧内预测器109可使用码率-失真分析来计算各种待测试的帧内预测模式的码率-失真值,并从待测试模式当中选择具有最佳码率-失真特性的帧内预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测器109可将指示当前图像块的所选帧内预测模式的信息提供到熵编码器103,以便熵编码器103编码指示所选帧内预测模式的信息。
125.在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器112表示执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个(transform unit,tu)中,并应用于变换器101。变换器101使用例如离散余弦变换(discrete cosine transform,dct)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。
126.变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一步减小位码率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器103可执行扫描。
127.在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执行上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语法的上下文自适应二进制算术编码(sbac)、概率区间分割熵(pipe)编码或另一熵编码方法或技术。在由熵编码器103熵编码之后,可将经编码码流发射到视频解码器200,或经存档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前图像块的语法元素进行熵编码。
128.反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构所述残
差块,例如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器110或帧内预测器109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经重构图像块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧或图像中的块进行帧间预测。
129.应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。
130.图3为本技术提供的一种视频解码器200的示例性框图。在图3的实例中,视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、滤波器单元206以及dpb 207。预测处理单元208可以包括帧间预测器210和帧内预测器209。在一些实例中,视频解码器200可执行大体上与相对于来自图2的视频编码器100描述的编码过程互逆的解码过程。
131.在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频码流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器200的组件解码的视频数据,例如经编码视频码流。存储在视频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频码流的经编码视频数据的经解码图像缓冲器(cpb)。因此,尽管在图3中没有示意出视频数据存储器,但视频数据存储器和dpb 207可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和dpb 207可由多种存储器装置中的任一者形成,例如:包含同步dram(sdram)的动态随机存取存储器(dram)、磁阻式ram(mram)、电阻式ram(rram),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器200的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。
132.网络实体42可为服务器、mane、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它装置。网络实体42可包括或可不包括视频编码器,例如视频编码器100。在网络实体42将经编码视频码流发送到视频解码器200之前,网络实体42可实施本技术中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装置执行。在一些情况下,网络实体42可为图1的存储装置40的实例。
133.视频解码器200的熵解码器203对码流进行熵解码以产生经量化的系数和一些语法元素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/或图像块层级处的语法元素。
134.当视频条带被解码为经帧内解码(i)条带时,预测处理单元208的帧内预测器209可基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当
前视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,b或p)条带时,预测处理单元208的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对所述当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测器210可确定是否对当前视频条带的当前图像块采用新的帧间预测模式进行预测,如果语法元素指示采用新的帧间预测模式来对当前图像块进行预测,基于新的帧间预测模式(例如通过语法元素指定的一种新的帧间预测模式或默认的一种新的帧间预测模式)预测当前视频条带的当前图像块或当前图像块的子块的运动信息,从而通过运动补偿过程使用预测出的当前图像块或当前图像块的子块的运动信息来获取或生成当前图像块或当前图像块的子块的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器200可基于存储在dpb 207中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频编码器100发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语法元素,或者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪一种新的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器210执行运动补偿过程。
135.反量化器204将在码流中提供且由熵解码器203解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆变换应用于变换系数,例如逆dct、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
136.在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得到重建的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(alf)以及样本自适应偏移(sao)滤波器。尽管在图3中将滤波器单元206示出为环路内滤波器,但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲器207中,经dpb 207存储用于后续运动补偿的参考图像。经dpb 207可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图1的显示装置220)上呈现,或可与此类存储器分开。
137.应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频码流。例如,视频解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经反量化器204和反变换器205处理。
138.本技术的技术可通过本技术中所描述的视频编码器或视频解码器中的任一者进行,如关于图1到图3所展示及描述的视频编码器100及视频解码器200。即,在一种可行的实
施方式中,关于图2所描述的视频编码器100可在视频数据的块的编码期间在执行帧间预测时执行下文中所描述的特定技术。在另一可行的实施方式中,关于图3所描述的视频解码器200可在视频数据的块的解码期间在执行帧间预测时执行下文中所描述的特定技术。因此,对一般性“视频编码器”或“视频解码器”的引用可包含视频编码器100、视频解码器200或另一视频编码或解码单元。
139.图1~图3仅为本技术实施例提供的示例,在一些示例中,视频编码器100、视频解码器200以及视频译码系统可以包括更多或更少的部件或单元,本技术对此不予限定。
140.下面在图1~图3所示出的视频译码系统的基础上,本技术实施例提供一种可能的视频编/解码实现方式,如图4所示,图4为本技术提供的一种视频编/解码过程的流程示意图,该视频编/解码实现方式包括过程
①
至过程
⑤
,过程
①
至过程
⑤
可以由上述的编码端10、视频解码器100、解码端20或视频解码器200中的任意一个或多个执行。
141.过程
①
:将一帧图像分成一个或多个互相不重叠的并行编码单元。该一个或多个并行编码单元间无依赖关系,可完全并行/独立编码和解码,如图4所示出的并行编码单元1和并行编码单元2。
142.过程
②
:对于每个并行编码单元,可再将其分成一个或多个互相不重叠的独立编码单元,各个独立编码单元间可相互不依赖,但可以共用一些并行编码单元头信息。
143.例如,独立编码单元的宽为w_lcu,高为h_lcu。若并行编码单元划分成一个独立编码单元,则独立编码单元的尺寸与并行编码单元完全相同;否则,则独立编码单元的宽应大于高(除非是边缘区域)。
144.通常的,独立编码单元可为固定的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等。
145.作为一种可能的示例,独立编码单元可为固定的128
×
4。若并行编码单元的尺寸为256
×
8,则可将并行编码单元等分为4个独立编码单元;若并行编码单元的尺寸为288
×
10,则并行编码单元划分为:第一/二行为2个128
×
4+1个32
×
4的独立编码单元;第三行为2个128
×
2+1个32
×
2的独立编码单元。
146.值得注意的是,独立编码单元既可以是包括亮度y、色度cb、色度cr三个分量,或红(red,r)、绿(green,g)、蓝(blue,b)三个分量,也可以仅包含其中的某一个分量。若独立编码单元包含三个分量,则这三个分量的尺寸可以完全一样,也可以不一样,具体与图像的输入格式相关。
147.过程
③
:对于每个独立编码单元,可再将其分成一个或多个互相不重叠的编码单元,独立编码单元内的各个编码单元可相互依赖,如多个编码单元可以进行相互参考预编解码。
148.若编码单元与独立编码单元尺寸相同(即独立编码单元仅分成一个编码单元),则其尺寸可为过程
②
所述的所有尺寸。
149.若独立编码单元分成多个互相不重叠的编码单元,则其可行划分例子有:水平等分(编码单元的高与独立编码单元相同,但宽不同,可为其1/2,1/4,1/8,1/16等),垂直等分(编码单元的宽与独立编码单元相同,高不同,可为其1/2,1/4,1/8,1/16等),水平和垂直等分(四叉树划分)等,优选为水平等分。
150.编码单元的宽为w_cu,高为h_cu,则其宽应大于高(除非是边缘区域)。通常的,编码单元可为固定的w_cu x h_cu,w_cu和h_cu均为2个n次方(n大于等于0),如16x4,8x4,16x2,8x2,8x1,4x1等。
151.作为一种可能的示例,编码单元可为固定的16x4。若独立编码单元的尺寸为64x4,则可将独立编码单元等分为4个编码单元;若独立编码单元的尺寸为72x4,则编码单元划分为:4个16x4+1个8x4。
152.值得注意的是,编码单元既可以是包括亮度y、色度cb、色度cr三个分量(或红r、绿g、蓝b三分量),也可以仅包含其中的某一个分量。若包含三个分量,几个分量的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
153.值得注意的是,过程
③
是视频编解码方法中一个可选的步骤,视频编/解码器可以对过程
②
获得的独立编码单元进行残差系数(或残差值)进行编/解码。
154.过程
④
:对于编码单元,可以将其可再将其分成一个或多个互相不重叠的预测组(prediction group,pg),pg也可简称为group,各个pg按照选定预测模式进行编解码,得到pg的预测值,组成整个编码单元的预测值,基于预测值和编码单元的原始值,获得编码单元的残差值。
155.过程
⑤
:基于编码单元的残差值,对编码单元进行分组,获得一个或多个相不重叠的残差小块(residual block,rb),各个rb的残差系数按照选定模式进行编解码,形成残差系数流。具体的,可分为对残差系数进行变换和不进行变换两类。
156.其中,过程
⑤
中残差系数编解码方法的选定模式可以包括,但不限于下述任一种:半定长编码方式、指数哥伦布(golomb)编码方法、golomb-rice编码方法、截断一元码编码方法、游程编码方法、直接编码原始残差值等。
157.例如,视频编码器可直接对rb内的系数进行编码。
158.又如,视频编码器也可对残差块进行变换,如dct、dst、hadamard变换等,再对变换后的系数进行编码。
159.作为一种可能的示例,当rb较小时,视频编码器可直接对rb内的各个系数进行统一量化,再进行二值化编码。若rb较大,可进一步划分为多个系数组(coefficient group,cg),再对各个cg进行统一量化,再进行二值化编码。在本技术的一些实施例中,系数组(cg)和量化组(qg)可以相同。
160.下面以半定长编码方式对残差系数编码的部分进行示例性说明。首先,将一个rb块内残差绝对值的最大值定义为修整最大值(modified maximum,mm)。其次,确定该rb块内残差系数的编码比特数(同一个rb块内残差系数的编码比特数一致)。例如,若当前rb块的关键限值(critica limit,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位。
[0161]
另外,对于某些特殊的情况,视频编码器也可以直接编码图像的原始值,而不是残
差值。
[0162]
需要说明的是,本技术实施例中的编码块(coding block,cb)对应图像中的一个图像块,编码块可以是经上述过程
③
划分得到的编码单元,也可以是编码单元再经过划分后的预测组。
[0163]
结合上述图1所示的视频译码系统、图2所示的视频编码器以及图3所示的视频解码器的框架示意图,下面对本技术实施例涉及的图像解码方法、编码方法进行详细描述。
[0164]
图5为本技术提供的一种图像解码方法的流程示意图,该图像解码方法可应用于图1所示出的视频译码系统,该图像解码方法可以由解码端20执行,具体的,该解码方法可以由解码端20包括的视频解码器200执行,如图5所示,本技术实施例提供的图像解码方法包括以下步骤。
[0165]
s501、针对当前编码块中任意一个像素点或任意多个并行反量化的像素点,确定该像素点的qp值。
[0166]
其中,当前编码块的像素点中至少存在两个像素点的qp值不同。并行反量化的像素点指的是对于一些像素点,可以并行地对这些像素点进行反量化。
[0167]
可以理解的,当前编码块中的任意一个像素点或任意多个并行反量化的像素点是视频解码器当前所处理的像素点,为了便于不描述,在以下实施例中,可以将该任意一个像素点或任意多个并行反量化的像素点也可以称为当前像素点。
[0168]
可以理解的是,对待解码的视频流进行解码可以获得该视频流所包含的一个或多个图像帧。一个图像帧包括一个或多个图像块。本技术实施例中,当前编码块对应待处理图像(待处理图像为一个或多个图像帧中的任意一个图像帧)的一个图像块,编码块可以为编码单元(coding unit,cu)。
[0169]
应注意,现有技术中,对一个编码块(例如上述的当前编码块)中的所有像素点都采用相同的qp值,即对当前编码块进行反量化的过程中,qp值是编码块粒度的qp值,如此,会导致的图像失真较大;而本技术实施例中,对一个编码块(例如上述的当前编码块),视频解码器为该编码块的任意一个像素点或任意多个并行反量化的像素点确定qp值,且为编码块的像素点中的至少两个像素点分配不同的qp值,即对当前编码块进行反量化的过程中,qp值是像素粒度的qp值,充分考虑了同一编码块中不同像素点之间的差异,为每个像素点分配合适的qp值,从而降低图像帧的解码失真,即可以提升当前编码块的反量化效果(反量化效果可以通过解码得到的图像的质量来衡量)。
[0170]
s502、根据当前像素点的qp值,对该当前像素点进行反量化。
[0171]
对当前像素点进行反量化具体是对该当前像素点的水平值进行反量化,该当前像素点的水平值是视频解码器通过解析码流获得。
[0172]
可以理解的,在编码过程中,视频编码器对当前编码块进行预测,从而得到该当前编码块的残差值(该残差值为当前编码块的真实值与当前编码块的预测值之差),该残差值可以称为当前编码块的残差系数,然后对当前编码块的残差系数进行变换后再量化,得到当前编码块的量化系数;或者视频编码器对当前编码块的残差系数不进行变换,而是对该残差系数直接进行量化,得到当前编码块的量化系数,该量化系数可以称为水平值或者经量化残差系数,本技术实施例中,为了便于描述,将量化后的值统称为水平值。
[0173]
本技术实施例中,根据当前像素点的qp值,对当前像素点水平值进行反量化具体
包括:根据该当前像素点的qp值,确定该当前像素点的量化步长qstep;然后,针对所选择的量化器组合,采用该当前像素点的qstep对该当前像素点的水平值进行反量化。
[0174]
可选地,量化器为均匀量化器或非均匀量化器,量化器组合是通过码流携带的标记信息确定的。
[0175]
应理解,视频解码器根据qp值,可通过公式推导或查表中的至少一种方式确定qstep,下面提供了三种可能的实现方法。
[0176]
方法一:qstep=a
×
qp+b,其中,a和b是预设的参数,例如a取值为2,b取值为1。
[0177]
方法二:qstep=2
t
,其中,t为与qp相关的整数,例如t=(qp-6)/4。
[0178]
方法三:qstep=2
(qp+offset
)
/octave
,其中,octave为qp的位阶,也即qp的值每增加octave,qstep的值增加一倍,通常选取octave为6或8,offset为一个整数偏移值。
[0179]
可选地,可以采用下述的h.265中的传统标量量化方法实现量化和反量化。
[0180]
量化:
[0181]
反量化:c
′
=l*qstep
[0182]
其中,l是量化后得到的水平值,c是待量化的残差系数(该残差系数可以是变换域的残差系数,即经变换的残差系数;或者该残差系数可以是像素域的残差系数,即残差值),qstep是量化步长,f是控制舍入的参数,f∈[0,1),sign表示符号函数,floor表示向下取整函数;c'是反量化后的值。
[0183]
可以理解的是,qp值越大,qstep值越大,则量化越粗糙,量化带来的图像失真越大,系数编码的码率越小。
[0184]
[0,1-f)表示量化死区,参数f与量化死区的长度有关,f越小,量化死区越长,量化后的水平值越靠近零点。当f=0.5时,上述量化和反量化公式相当于四舍五入,量化失真最小。当f<0.5时,f越小,量化失真越大,系数编码的码率越小。h.265中,对于i帧,选取f=1/3,对于b/p帧,选取f=1/6。
[0185]
示例性的,均匀量化器其量化或反量化公式可以参考上述量化和反量化公式,参数f有以下取法:
[0186]
取法一:f取为0.5或其他固定值。
[0187]
取法二:f可根据qp值、预测模式以及是否做变换来自适应确定。
[0188]
综上,通过本技术实施例中提供的解码方法,视频解码器可以为编码块中的像素点确定每个像素点粒度的qp,从而根据每个像素点的qp值对每个像素点进行反量化,即逐像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
[0189]
可选地,结合图5,如图6所示,在确定当前像素点的qp值之前,本技术实施例提供的解码方法还包括s503-s504。
[0190]
s503、获取当前编码块的qp值。
[0191]
在一种实现方式中,可以从码流中解析得到当前编码块的qp值。在近无损压缩技术中,小qp出现的概率高于大qp,因此,视频编码器可以采用截断一元码、截断莱斯码或者指数哥伦布码直接编码一个编码块的qp值,从而视频解码器解析码流可以获得编码块的qp
值。
[0192]
在另一种实现方式中,可以通过当前编码块的预测qp值与qp偏移量获取当前编码块的qp值。示例性的,可以通过下述方式一或方式二获取当前编码块的qp值。
[0193]
其中,方式一的过程包括s1-s3。
[0194]
s1、获取当前编码块的预测qp值。
[0195]
可选地,可以根据当前编码块的周围块的qp值计算当前编码块的预测qp值。
[0196]
示例性的,可以根据当前编码块左侧的已重建块的qp值和上侧的已重建块的qp值确定当前编码块的预测qp值,如:predqp=(qpa+qpb+1)?1,其中,predqp表示当前编码块的预测qp值,qpa表示当前编码左侧的已重建块,qpb表示当前编码块上侧的已重建块,》》1表示右移一位,即除2运算。
[0197]
s2、解析码流以获得当前编码块的qp偏移量。
[0198]
可以理解的,在视频编码过程中,视频编码器确定出该当前编码块的预测qp,在确定当前编码块的真实qp值与该预测qp值得差值,得到当前编码块的qp偏移量(可以记为deltaqp),然后采用变长码编码qp偏移量,并通过码流传输qp偏移量至视频解码器,从而视频解码器获取到码流之后,可以解析码流获得当前编码块的qp偏移量。
[0199]
s3、将当前编码块的预测qp值与qp偏移量之和作为当前编码块的qp值。
[0200]
即qp=predqp+deltaqp,其中,qp表示当前编码的qp值,predqp表示当前编码块的预测qp值,deltaqp表示当前编码块的qp偏移量。
[0201]
方式二的过程包括s10-s30。
[0202]
s10、获取当前编码块的预测qp值。
[0203]
对于s10的描述可以参考s1的相关描述,此处不再赘述。
[0204]
s20、根据当前编码块的推导信息,确定当前编码块的qp偏移值。
[0205]
其中,推导信息包括下述信息中的至少一种:当前编码块的平坦度信息、码流缓冲区的剩余空间或失真约束信息。
[0206]
应理解,在视频编码过程中,视频编码器采用码控算法,根据当前编码块的推导信息推导得到当前编码块的qp偏移量,但视频编码器并不在码流中传输该qp偏移量,如此,在视频解码过程中,视频解码器采用与视频编码器相同的方法推导当前编码块的qp偏移量,上述s20中的根据当前编码块的平坦度信息、码流缓冲区的剩余空间或失真约束信息中的至少一种信息,推导得到当前编码块的qp偏移量的过程为现有技术,具体细节可以参考现有的推导qp偏移量的相关内容,本技术实施例不再详述。
[0207]
s30、将当前编码块的预测qp值与qp偏移量之和作为当前编码块的qp值。
[0208]
本技术实施例中,也可以根据其他更更多的信息对到当前编码块的预测qp值,例如根据当前编码块的前一个已编码块的qp、前一个已编码块的编码比特数(prevblockrate)、目标码率(targetrate)、当前编码块的平坦度信息以及当前码流缓冲区的充盈程度(rcfullness)推导得到当前编码块的qp偏移量。
[0209]
s505、确定当前像素点的预测qp值,当前像素点的预测qp值为当前编码块的qp值。
[0210]
本技术实施例中,将获取的当前编码块的qp值作为当前编码块的每一个像素点的初始qp值(即预测qp值),在此基础上对该预测qp值进行调整或者不调整,从而得到每一个像素点的qp值。
[0211]
基于上述s503-s504,如图7所示,上述确定当前像素点的qp值(即s501)具体包括s5011-s5012。
[0212]
s5011、当前像素点为当前编码块中的任意一个目标像素点或任意多个并行反量化的目标像素点时,调整当前像素点的预测qp值,将调整后的qp值作为当前像素点的qp值。
[0213]
本技术实施例中,目标像素点是当前编码块中的一个或多个指定的像素点,这些指定的像素点可以理解为qp值待调整的像素点或者候选像素点,针对候选像素点,执行qp调整策略。关于目标像素点,将在下文详细描述。
[0214]
s5012、当前像素点为当前编码块中除上述目标像素点之外的像素点时,将当前像素点的预测qp值确定为当前像素点的qp值。
[0215]
本技术实施例中,当前编码块中除目标像素点之外的像素点均不做调整,无需执行qp调整策略,对于这些像素点,其qp值即为当前编码块的qp值。
[0216]
如图7所示,作为一种实现方式,上述实施例中的s5011可通过s601-s602实现。
[0217]
s601、获取当前像素点周围的已重建像素点的信息。
[0218]
当前像素点周围的已重建像素点可以理解为与该当前像素点的相邻的已重建像素点,本技术实施例中,当前像素点周围的已重建像素点包括满足下述条件的像素点:以当前像素点为中心,边长为第一预设值的正方形区域中的像素点;或者,以当前像素点为中心,对角线长度为第二预设值的菱形区域中的像素点。
[0219]
可选地,第一预设值和第二预设值可以根据实际需求进行设置,并且第一预设值和第二预设值可以相等也可以不等,例如第一预设值和第二预设值可以为3或5中的一种。
[0220]
示例性的,图8中的(a)示出了一种以当前像素点为中心的正方形区域划分为例的示意,这里给出了2种可能的情形:情形1,已重建像素点是指以当前像素点为中心,边长为3的正方形区域中的像素点,如图8的(a)中所示出的周围像素点1;情形2,已重建像素点是指以当前像素点为中心,边长为5的正方形区域中的像素点,如图8的(a)中所示出的周围像素点2。
[0221]
图8中的(b)示出了一种以当前像素点为中心的菱形区域划分为例的示意,这里给出了2种可能的情形:情形1,已重建像素点是指以当前像素点为中心,对角线长度为3的菱形区域中的像素点,如图8的(b)中所示出的周围像素点1;情形2,已重建像素点是指以当前像素点为中心,对角线长度为5的菱形区域中的像素点,如图8的(b)中所示出的周围像素点2。
[0222]
需要说明的是,图8仅为本技术实施例为说明在当前像素点周围的已重建像素点的示例,不应理解为对本技术的限定。在另一些可能的示例中,当前像素点周围的已重建像素点还可以是指与该当前像素点上下相邻、或左右相邻的一个或两个像素点。
[0223]
可选地,当前像素点周围的已重建像素点的信息包括下述至少一种信息:该已重建像素点的像素值、平坦度信息或纹理度信息或复杂度信息、背景亮度、对比度或运动程度(运动程度可以通过运动矢量表示)。
[0224]
进一步,可选地,上述已重建像素点的信息的值包括下述至少一个种:原始值、绝对值、均值或差值。
[0225]
在一种实现方式中,上述获取像当前素点周围的已重建像素点的信息的方法可以包括步骤1-步骤2:
[0226]
步骤1、获取当前像素点的预测像素点的信息。
[0227]
当前像素点的预测像素点为已重建像素点,可选地,该已重建像素点可以是当前编码块中的已重建像素点,该已重建像素点也可以不是当前编码块中的已重建像素点,即是当前编码块之外的已重建像素点,例如,预测模式为帧内预测模式时,已重建像素点是当前图像帧内该编码块周围的像素点,预测模式为帧间预测模式时,已重建像素点可以是当前图像帧的参考帧上的重建块。
[0228]
步骤2、若预测像素点为当前编码块中的已重建像素点,则将该预测像素点的信息作为像素点周围的已重建像素点的信息;否则,将该预测像素点的信息与该预测像素点周围的已重建像素点的信息的差值或差值的绝对值作为像素点周围的已重建像素点的信息。
[0229]
s602、根据当前像素点周围的已重建像素点的信息,调整当前像素点的预测qp值。
[0230]
调整后的qp值为像素点最终的qp值。
[0231]
本技术实施例中,可以为当前编码块的当前像素点设置qp调整参数表,示例性的,下述表1示出了调整qp值所需的一些参数。
[0232]
表1
[0233][0234]
具体的,s602包括下述s6021-s6023。
[0235]
s6021、若当前像素点满足第二预设条件和第三预设条件,则根据第一qp偏移量和人眼恰可察觉失真对应的qp值,调整当前像素点的预测qp值。
[0236]
其中,第二预设条件为当前像素点的预测qp值大于人眼恰可察觉失真对应的qp值,且当前像素点的预测qp值小于或等于可调整的qp最大值(即表1中的maxadjustqp),可调整的qp最大值小于或等于qp最大值,第三预设条件为当前像素点周围的已重建像素点的信息小于或等于第一阈值(即表1中的thres1)。
[0237]
可选地,参考表1,在当前像素点满足第二预设条件和第三预设条件的情况下,当前像素点调整后的qp值满足:
[0238]
finalqp=max(initqp
–
offset1,jndqp)
[0239]
其中,finalqp表示调整后的qp值,initqp表示当前像素点的预测qp值,offset1表示第一qp偏移量,jndqp表示人眼恰可察觉失真(just noticeable distortion,jnd)对应
的qp值,max表示取最大值。
[0240]
一种情况下,人眼恰可察觉失真对应的qp值是从码流中解析得到,如该码流中携带有人眼恰可察觉失真对应的qp值,如20。
[0241]
又一种情况下,人眼恰可察觉失真对应的qp值是根据周围的已重建编码块的平坦度信息或纹理度信息、背景亮度、对比度信息推导得到。
[0242]
另一种情况下,人眼恰可察觉失真对应的qp值还可以是视频编码器或视频解码器设置的预设值,如15。
[0243]
也就是说,人眼恰可察觉失真对应的qp值不仅可以携带在码流中,也可以是视频编码器或视频解码器在视频编解码过程中推导得到,还可以是预设值。本技术实施例将人眼恰可察觉失真对应的qp值引入至像素点的qp值的确定过程,使得每个像素点满足人眼恰可察觉失真相应的判断信息,可以降低图像失真,从而提高图像的主观质量。
[0244]
s6022、若当前像素点满足第二预设条件和第四预设条件,则根据第二qp偏移量和qp最大值,调整当前像素点的预测qp值。
[0245]
其中,第四预设条件为当前像素点周围的已重建像素点的信息大于第二阈值(即表1中的thres2),第一阈值小于或等于第二阈值。
[0246]
可见,上述s6021和s6022中需要对当前像素点的预测qp值进行调整。
[0247]
s6023、除上述s6021和s6022之外的情况下,将当前像素点的预测qp值作为当前像素点的qp值。即不需要对当前像素点的预测qp值进行调整。
[0248]
可以理解的是,上述s6023包括的情形有:
[0249]
情形一、当前像素点的预测qp值小于或等于人眼恰可察觉失真对应的qp值。
[0250]
情形二、当前像素点满足第二预设条件(即当前像素点的预测qp值大于人眼恰可察觉失真对应的qp值,且当前像素点的预测qp值小于或等于可调整的qp最大值),且当前像素点周围的已重建像素点的信息大于第一阈值且小于或等于第二阈值。
[0251]
情形三、当前像素点的预测qp值大于可调整的qp最大值。
[0252]
如图7所示,作为另一种实现方式,上述实施例中的s5011可通过s603实现。
[0253]
s603、若当前像素点满足第一预设条件,则将预设qp值作为该当前像素点的qp值;否则,将当前像素点的预测qp值作为该当前像素点的qp值。
[0254]
该第一预设条件包括下述条件中至少一种:
[0255]
当前像素点为亮度像素点;
[0256]
当前像素点为色度像素点;
[0257]
当前像素点的比特深度小于或等于比特深度阈值(即表1中的bdthres);
[0258]
当前像素点的预测qp值小于或等于可调整的qp最大值(即表1中的maxadjustqp);
[0259]
当前像素点周围的已重建像素点的信息小于或等于第一预设阈值(即表1中的thres1)。
[0260]
示例性的,第一预设条件可以为当前像素点为亮度像素点,且该当前像素点的比特深度小于或等于比特深度阈值;或者,第一预设条件可以为当前像素点为色度像素点,且该当前像素点的预测qp值小于或等于可调整的qp最大值。具体的,可以根据实际需求选择上述条件中的一种或多种条件进行组合作为第一预设条件。
[0261]
一种可能的实现方式中,上述的目标像素点为当前编码块中的任意一个或多个像
素点,即当前编码块中的每一个像素点的qp值均需待调整,对于每一个像素点,可以采用上述s601-s602或s603所述的方法确定其qp值。
[0262]
又一种可能的实现方式中,上述目标像素点为当前编码块的第二部分像素点中的任意一个或多个像素点。本技术实施例中,当前编码块至少包括第一部分像素点和/或第二部分像素点,其中,第一部分像素点被设置为qp值无需调整的像素点,即第一部分像素点的qp值为第一部分像素点的预测qp值,第二部分像素点被设置为qp值待调整的像素点,即采用上述s601-s602或s603所述的方法确定第二部分像素点中的每一个像素点的qp值。
[0263]
另一种可能的实现方式中,当前编码块至少包括第一部分像素点和/或第二部分像素点,同理,第一部分像素点被设置为qp值无需调整的像素点,即第一部分像素点的qp值为第一部分像素点的预测qp值,第二部分像素点被设置为qp值待调整的像素点。
[0264]
一种可能的情形中,当前编码块的预测模式为逐点预测模式时,对于第二部分像素点,该第二部分像素点可以包括第一位置像素点和/或第二位置像素点,其中,第一位置像素点、第二位置像素点是根据当前编码块的逐点预测模式确定的。通常,第二位置像素点可以包括水平方向逐点预测的起点所对应的像素点。
[0265]
上述目标像素点为第一位置像素点中的任意一个或多个像素点,若当前像素点是第一位置像素点中的一个或多个像素点,可以采用上述s601-s602所述的方法确定该当前像素点的qp值;若当前像素点是第二位置像素点中的一个或多个像素点时,可以采用上述s603所述的方法确定该当前像素点的qp值。
[0266]
应理解,本技术实施例中,当前编码块的第二部分像素点中,哪些像素点被设置为第一位置像素点,哪些像素点被设置为第二位置像素点,是与当前编码块的逐点预测模式有关的。
[0267]
作为一种示例,参考图9,以当前编码块为16
×
2(宽度w为16,高度h为2)的编码块为例,该编码块的预测模式为逐点预测模式,该编码块的逐点预测模式包括4种模式,分别为逐点预测模式1、逐点预测模式2、逐点预测模式3以及逐点预测模式4。
[0268]
其中,≡表示当前像素点的预测值为该像素点的左右两侧像素点的重建值的平均值;
[0269]
|||表示当前像素点的预测值为该像素点的上下两侧像素点的重建值的平均值;
[0270]
》表示当前像素点的预测值为该像素点的左侧像素点的重建值;
[0271]
∨表示当前像素点的预测值为该像素点的上侧像素点的重建值。
[0272]
本技术实施例中,为了便于描述,将依据其左右两侧像素点进行预测的像素点称为第一类像素点,将依据其上下两侧像素点进行预测的像素点称为第二类像素点,将依据其左侧像素点进行预测的像素点称为第三类像素点,将依据其上侧像素点进行预测的像素点称为第四类像素点,
[0273]
如图9中的(a)所示,当前编码块的预测模式为逐点预测模式1,可见,当前编码块包括第一部分像素点和第二部分像素点,第二部分像素点全部被定义为第一位置像素点,即第二部分像素点中不包含第二位置像素点。其中,第一位置像素点包括第一类像素点和第四类像素点。
[0274]
如图9中的(b)所示,当前编码块的预测模式为逐点预测模式2,可见,当前编码块第一部分像素点和第二部分像素点,第二部分像素点中的部分像素点被定义为第一位置像
素点,另一部分被定义为第二位置像素点,其中,第一位置像素点包括第二类像素点和第三类像素点;第二位置像素点包括第三类像素点和第四类像素点。
[0275]
如图9中的(c)所示,当前编码块的预测模式为逐点预测模式3,可见,当前编码块的像素点全部为第二部分像素点,该第二部分像素点的部分像素点被定义为第一位置像素点,另一部分被定义为第二位置像素点,其中,第一位置像素点包括第三类像素点;第二位置像素点包括第三类像素点和第四类像素点。
[0276]
如图9中的(d)所示,当前编码块的预测模式为逐点预测模式4,可见,当前编码块包括第一部分像素点和第二部分像素点,第二部分像素点全部被定义为第一位置像素点,即第二部分像素点中不包含第二位置像素点。其中,第一位置像素点包括第四类像素点。
[0277]
作为一种示例,参考图10,以当前编码块为8
×
2(宽度w为8,高度h为2)的编码块为例,该编码块的预测模式为逐点预测模式,该编码块的逐点预测模式也包括2种模式,分别为逐点预测模式1和逐点预测模式2。
[0278]
如图10中的(a)所示,当前编码块的预测模式为逐点预测模式1,可见,当前编码块包括第一部分像素点和第二部分像素点,第二部分像素点全部被定义为第一位置像素点,即第二部分像素点中不包含第二位置像素点。其中,第一位置像素点包括第四类像素点。
[0279]
如图10中的(b)所示,当前编码块的预测模式为逐点预测模式2,可见,当前编码块的像素点全部为第二部分像素点,该第二部分像素点的部分像素点被定义为第一位置像素点,另一部分被定义为第二位置像素点,其中,第一位置像素点包括第三类像素点;第二位置像素点包括第三类像素点和第四类像素点。
[0280]
作为一种示例,参考图11,以当前编码块为8
×
1(宽度w为8,高度h为1)的编码块为例,该编码块的预测模式为逐点预测模式,该编码块的逐点预测模式也包括2种模式,分别为逐点预测模式1和逐点预测模式2。
[0281]
如图11中的(a)所示,当前编码块的预测模式为逐点预测模式1,可见,当前编码块的全部像素点为第一部分像素点,第一部像素点均为第四类像素点。
[0282]
如图11中的(b)所示,当前编码块的预测模式为逐点预测模式2,可见,当前编码块的像素点全部为第二部分像素点,第二部分像素点中的部分像素点被定义为第一位置像素点,另一部分被定义为第二位置像素点,其中,第一位置像素点包括第三类像素点;第二位置像素点包括第三类像素点和第四类像素点。
[0283]
结合图5,如图12所示,在一种可能的情形中,当前编码块的预测模式为块预测模式时,在确定当前像素点的qp值之前,本技术实施例提供的解码方法还包括s505-s506。
[0284]
s505、获取当前编码块的区域划分信息,该区域划分信息包括区域数量n以及区域分界线的位置信息,n为大于或等于2的整数。
[0285]
区域划分信息也可以称为划分模板。
[0286]
可选地,获取当前编码块的区域划分信息的方法包括:获取预定义的当前编码块的区域划分信息;或者,解析码流,获取当前编码块的区域划分信息;或者是视频解码器推导得到的。
[0287]
s506、根据区域划分信息,将当前编码块划分为n个区域。
[0288]
可选地,块预测模式可以包括基于块的帧间预测模式、基于块的帧内预测模式或帧内块复制(intra bock copy,ibc)预测模式。
[0289]
可选地,根据块预测模式预测得到当前编码块的预测块,进而得到其残差块,从对该残差块是否做变换的角度来看,块预测模式可以包括不做变换的块预测模式和做变换的块预测模式,其中,不做变换的块预测模式指的是对根据该块预测模式确定的残差块不做变换,做变换的块预测模式指的是对根据该块预测模式确定的残差块需要做变换。
[0290]
对于不做变换的块预测模式,当前编码块内的像素点可以“逐点”或者“逐区域”依次进行重建,并且可以利用前面已重建像素点的信息来调整后面重建的像素点qp值。
[0291]
对当前编码块内的像素点逐点进行重建与上述逐点预测模式类似,因此“逐点”重建情形下当前编码块的像素点的qp值的确定方法与上述逐点预测模式下qp值的确定方法类似,即可以采用上述s601-s602或s603所述的方法确定当前编码块的像素点的qp值。
[0292]
对当前编码块内的像素点“逐区域”进行重建是允许并行地对同一个区域的像素进行重建,思路是将当前编码块划分为n个区域(n≥2),然后逐区域依次进行重建。
[0293]
具体的,对于不做变换的块预测模式下的“逐区域”进行重建方式,可以根据获取的划分区域信息中的区域数量n以及区域分界线的位置信息,将该当前编码块划分为n个区域。应注意,该n个区域中的至少一个区域的像素点的qp值依据至少一个其他区域的已重建像素点的信息进行确定,其他区域为n个区域中除至少一个区域之外的区域,也就是说,n个区域是具有先后重建顺序的,即该n个区域中的部分区域之间的重建过程具有依赖关系,例如需先重建一个区域,然后根据该区域的重建结果再重建另一个区域。
[0294]
可选地,区域数量n以及区域分界线的位置信息可以根据当前编码块的信息或者当前编码块的参考像素的信息进行推导。
[0295]
作为一种示例,假设n=2(即将当前编码块划分为2个区域),当前编码块包括第一区域和第二区域,第一区域中的像素点包括下述像素点中的至少一种:当前编码块的任意位置的水平条带中的像素点、任意位置的垂直条带中的像素点或任意位置的斜向条带中的像素点,其中,条带的宽度不超过2,并且在条带位于当前编码块的边界的情况下,条带的宽度等于1,第二区域中的像素点为当前编码块中除第一区域之外的像素点。第一区域和第二区域的重建顺序是先重建第二区域,再重建第一区域。
[0296]
示例性的,当前编码块的上边界像素点、下边界像素点、左边界像素点或右边界像素点中的一种或多种,可以理解的,上边界的像素点即为上侧的条带的像素点,下边界的像素点即为下侧的条带的像素点,左边界像素点即为左侧的条带的像素点,右边像素点即为右侧的条带的像素点。
[0297]
图13为当前编码块的几种示例性的划分结果示意图,在图13中的(a)中,第一区域中的像素点包括当前编码块的当前编码块的上边界像素点、下边界像素点、左边界像素点以及右边界像素点,在图13中的(b)中,第一区域中的像素点包括当前编码块的下边界像素点和右边界像素点,在图13中的(c)中,第一区域中的像素点包括当前编码块的右边界像素点,在图13中的(d),第一区域中的像素点包括当前编码块的下边界像素点。
[0298]
对于做变换的块预测模式,当前编码块内的所有像素点需要并行地进行重建,因此也可以将当前编码块块划分为n个区域(n≥2),进而并行地对同一个区域的像素进行重建。
[0299]
具体的,对于做变换的块预测模式,可以根据获取的划分区域信息中的区域数量n以及区域分界线的位置信息,将该当前编码块划分为n个区域。
[0300]
可选地,区域数量n以及区域分界线的位置信息可以根据当前编码块的信息或者当前编码块的参考像素的信息进行推导。可选地,可以根据当前编码块的上侧相邻行的像素点和/或左侧相邻列像素点(即当前编码块的参考像素点)确定当前编码块的区域划分信息,具体的,根据当前编码块的上侧相邻行的像素点和/或左侧相邻列像素点预测当前编码块内部的物体边缘,然后基于物体边缘将当前编码块划分为若干个区域,例如,根据当前编码块的上侧相邻行的像素点和/或左侧相邻列像素点,采用梯度算法预测出当前编码块的行和/或列的像素值发生突变的像素点,从而将该突变的像素点作为区域分界线的位置,并且依此可以确定出区域数量n。
[0301]
上述方法确定的当前编码块的区域划分信息可以使得当前编码块的区域划分方式包括下述至少一种:水平划分、垂直划分或斜向划分。例如,当前编码块的行像素值存在一个或多个发生突变的像素点,列像素值不存在突变的像素点时,当前编码块的区域划分方式为垂直划分;当前编码块的列像素值存在一个或多个发生突变的像素点,行像素值不存在突变的像素点时,当前编码块的区域划分方式为水平划分;当前编码块的行像素值存在一个或多个发生突变的像素点,列像素值也存在一个或多个突变的像素点时,当前编码块的区域划分方式为斜向划分。
[0302]
参考图14,一种划分方式是将当前编码块划分为两个区域,图14中的(a)示意的是垂直二分为两个区域,点a1是行的突变像素点;图14中的(b)示意的是水平二分为两个区域,点b1是列的突变像素点;图11中的(c)示意的是斜向二分为两个区域,点c1是行的突变像素点,点d1是列的突变像素点。
[0303]
参考图15,一种划分方式是将当前编码块划分为三个区域,图15中的(a)示意的是垂直三分为三个区域,点a2和点a3是行的突变像素点;图15中的(b)示意的是水平三分为三个区域,点b2和点b3是列的突变像素点;图15中的(c)至图15中的(e)示意的是斜向三分为三个区域,其中,图15中的(c)中,点c2和点c3是行的突变像素点,点d2和点d3是列的突变像素点;图15中的(d)中,点c4和点c5是行的突变像素点,点d4是列的突变像素点;图15中的(e)中,点c6是行的突变像素点,点d5和点d6是列的突变像素点。
[0304]
需要说明的是,图14和图15仅为当前编码块的一些划分结果的示例,不应成为对本技术实施例的限定,当前编码块的划分方式也可以是多种划分方式的组合。
[0305]
基于上述s505-s506,一种实现方式中,针对上述不做变换的块预测模式,以当前编码块被划分为2(即n=2)个区域为例,即当前编码块包括第一区域和第二区域(参考图10),如图12所示,上述确定当前像素点的qp值(即s501)具体包括s5013-s5014。
[0306]
s5013、当前像素点为第一区域中的任意一个像素点时,调整当前像素点的预测qp值,将调整后的qp值作为当前像素点的qp值。
[0307]
具体的,获取当前像素点周围的已重建像素点的信息,然后根据该当前像素点周围的已重建像素点的信息,调整像素点的预测qp值。具体过程可以参考上述实施例中的s601-s602(其中,s602包括s6021-s6023)的相关描述,此处不再赘述。
[0308]
s5014、当前像素点为第二区域中的任意一个像素点时,将当前像素点的预测qp值作为当前像素点的qp值。由于需要先重建第二区域的像素点,此时其周围可能没有已重建像素点,因此不对第二区域的像素点的qp值进行调整,即将第二区域中的像素点的预测qp值作为像素点的qp值。
[0309]
另一种实现方式中,对于上述做变换的块预测模式,针对n个区域中的任意一个区域中的任意一个像素点或任意多个并行反量化像素点,如图12所示,上述确定当前像素点的qp值(即s501)具体包括s5015-s5016。
[0310]
s5015、获取当前像素点的qp偏移量。
[0311]
可选地,获取当前像素点的qp偏移量的方法包括:解析码流,以获取当前像素点的偏移量。可以理解的,视频编码器对图像进行编码的过程中,视频编码器预测出每个像素点的qp偏移量之后,可以将每个像素点的qp偏移量编入码流,传递至视频解码器。
[0312]
或者,可选地,获取当前像素点的qp偏移量的方法包括:根据推导信息,确定当前像素点的qp偏移量,该推导信息包括当前像素点所在区域的索引信息和/或当前像素点到当前像素点所在区域的区域分界线的距离;其中,距离包括下述任一种:水平距离、垂直距离或欧式距离。
[0313]
因此,推导得到的qp的偏移量包括至少一种,例如,当前像素点的qp偏移量为下述任一种:第三qp偏移量、第四qp偏移量、第三qp偏移量与第四qp偏移量之和。
[0314]
其中,第三qp偏移量根据当前像素点所在区域的索引信息推导获得,第三qp偏移量可以看作区域级的qp偏移量,应理解,同一个区域内的像素点的第三qp偏移量相同,不同区域内的像素点的第三qp偏移量不同。
[0315]
第四qp偏移量根据当前像素点到该当前像素点所在区域的区域分界线的距离推导获得,第四qp偏移量可以看作像素级的qp偏移量,像素点对应的距离不同,则当前像素点的qp偏移量可以不同。
[0316]
可选地,可以根据视频编码器侧的配置选择第三qp偏移量、第四qp偏移量、第三qp偏移量与第四qp偏移量之和中的一个qp偏移量作为该像素点的qp偏移量。
[0317]
s5016、根据当前像素点的qp偏移量调整当前像素点的预测qp值,将调整后的qp值作为当前像素点的qp值。
[0318]
综上,是图像解码过程的描述,视频解码器可以为编码块中的像素点确定像素点粒度的qp,从而根据每个像素点的qp值逐点对每个像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
[0319]
相应的,在图像编码方法中,视频编码器首先获取像素点的qp、qstep和残差系数;自适应选择量化器,对残差系数进行量化;最后调整量化系数,得到最终的水平值,从而实现图像帧的编码。
[0320]
在图2示出的视频编码器100的基础上,本技术还提供一种图像编码方法,如图16所示,图16为本技术提供的一种图像编码方法的流程示意图,该图像编码方法可以由视频编码器100执行,也可以由支持视频编码器100的功能的编码端(如图1所示出的编码端10)执行,这里以视频编码器100实现编码方法为例进行说明,该图像编码方法包括以下步骤。
[0321]
s1601、针对任意当前编码块中的任意一个像素点或任意多个并行量化的像素点,确定该像素点的qp值。
[0322]
其中,当前编码块的像素点中至少存在两个像素点的qp值不同。
[0323]
s1602、根据像素点的qp值,对像素点进行量化。
[0324]
量化是反量化的反过程,关于编码方法中qp值的量化,可以参考上述图5~图15中解码方法中的相应过程,此处不予赘述。
[0325]
综上,通过本技术实施例中提供的编码方法,视频编码器可以为编码块中的像素点确定每个像素点粒度的qp,从而根据每个像素点的qp值对每个像素点进行量化,即逐像素点进行量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
[0326]
可以理解的,对于块预测模式,按照实施例中描述的方法将当前编码块划分为n(n≥2)个区域,对于每一个区域中的像素点进行逐像素点量化或者多个像素点并行量化,得到水平值(即经量化残差系数或量化后的参数系数)之后,对参数系数进行编码。
[0327]
针对编码块划分为n个区域的情况,由于不同区域的qp值的调整方式可以不同,因此,量化后的残差系数的分布也不同,故可以设计基于区域的残差分组编码方法。
[0328]
具体的,可以把每个区域的残差系数划分为若干个残差组,应注意,每个残差组不能跨区域;然后,编码该残差组的码长参数,编码方法可以为定长码或变长码;再采用定长码编码该残差组里的每个残差系数,定长码的码长由该残差组的码长参数确定,并且不同残差组的码长参数可以不同。
[0329]
示例性的,参考图17,假设当前编码块为16
×
2的编码块,当前编码块被划分为两个区域,分别为区域1和区域2,可以将区域1对应的残差系数划分为n(n≥1)个残差组,将区域2对应的残差系数可以划分为m(m≥1)个残差组,且每个残差组都不跨区域。应理解,参数系数与像素点一一对应,对区域对应的参数系数进行分组即对区域包括的像素点进行分组。如图7所示,区域1包括15个像素点,示例性的,可以将该区域1划分成1个残差组,即将该15个像素点划分至一个残差组;也可以将该区域1划分成来2个残差组,例如将区域1的前8个像素点划分至一个残差组1,将区域1的后7个像素点划分至另一个残差组2;还可以将区域1划分成3个残差组,例如将每5个相邻的像素点划分至一个残差组,从而得到3个残差组,如残差组1、残差组2以及残差组3。
[0330]
可选地,视频编码器对当前编码块进行预测的预测模式可以包括逐点预测模式、块预测模式。其中,块预测模式可以分块的帧间预测模式、块的帧内预测模式或帧内块复制预测(intra bock copy,ibc)预测模式,下面简单介绍一种ibc预测模式。
[0331]
ibc技术是在当前帧的已重建区域中搜索当前编码块的匹配块,目的是去除空间的非局部冗余。ibc预测模式下的预测过程可以分为运动估计和运动补偿两个过程。运动估计是编码端搜索当前编码块的匹配块,估计出当前编码块与其匹配块之间的相对位移,即当前编码块对应的块矢量(block vector,bv)或者块矢量差(block vector difference,bvd),并在码流中传输bv或bvp。运动补偿是根据匹配块生成预测块,例如包括对匹配块加权和预测滤波等操作。
[0332]
可选地,视频编码器获取当前编码块的预测块的方法可以包括:
[0333]
方法一:若预测块中的像素点不可得,允许用上侧或左侧的像素点进行填充(padding),或者填充为默认值。
[0334]
方法二:基于bv或bvd获得的匹配块,再对匹配块进行一些处理(例如预测滤波、光照补偿等操作),生成最终的预测块。
[0335]
可选地,ibc预测模式下,视频编码器将当前编码块划分为若干个变换块(transform block,tb)和若干个预测块(prediction block,pb),其中,一个tb可以包括一个或多个pb,示例性的,参考图18,以当前编码块为16
×
2的编码块为例,将当前编码块划分
为2个tb,分别为tb1和tb2,tb1和tb2的尺寸均为8
×
2,每一个tb包括4个pb,每一个pb的尺寸为2
×
2;再依次重建每个tb。一种像素重建方法是:从当前编码块的第二个tb开始,对每个tb中的pb进行运动补偿时可以参考当前tb左侧的已重建tb中的重建像素值。
[0336]
可选地,视频编码器对bv或者bvd的编码方式为下述方法一和/或方法二。
[0337]
方法一:对于仅进行水平方向的运动搜索,码流中只传输水平方向的块矢量bv或块矢量差bvd,无需传输垂直方向的bv或bvd。
[0338]
方法二:bv或bvd的编码方式可以是定长码或变长码。
[0339]
并且定长码的码长或变长码的二值化方式可以基于以下信息的一个或多个得到:
[0340]
当前编码块的位置信息、尺寸信息(包括宽度或高度或面积)、划分模式信息或tb/pb的划分方式;
[0341]
当前tb的位置信息或尺寸信息(包括宽度或高度或面积);
[0342]
当前pb的位置信息或尺寸信息(包括宽度或高度或面积)。
[0343]
可选地,当前编码块的获取步骤可以是:先获取预测bv(block vector prediction,bvp),再获取bvd,则bv=bvp+bvd。
[0344]
其中,可以基于以下信息的一种或多种获取bvp:
[0345]
已编码块的bv或bvd、位置信息、尺寸信息(包括宽度或高度或面积)、划分模式信息或tb/pb的划分方式;
[0346]
周围预测块的bv或bvd、位置信息或尺寸信息(包括宽度或高度或面积)。
[0347]
可以理解的是,为了实现上述实施例中功能,视频编码器/视频解码器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本技术中所公开的实施例描述的各示例的单元及方法步骤,本技术能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
[0348]
图19为本技术实施例提供的一种解码装置的结构示意图,该解码装置1900包括qp确定单元1901和反量化单元1902。解码装置1900可以用于实现上述解码方法实施例中视频解码器或解码端的功能,因此也能实现上述解码方法实施例所具备的有益效果。在本技术实施例中,该解码装置1900可以是如图1所示的解码端20或视频解码器200,也可以是如图3所示的视频解码器200,还可以是应用于解码端20或视频解码器200的模块(如芯片)。
[0349]
qp确定单元1901和反量化单元1902,用于实现图5~图15中任一实施例提供的解码方法。有关上述qp确定单元1901和反量化单元1902详细的描述可以直接参考图5~图15所示的方法实施例中相关描述直接得到,这里不加赘述。
[0350]
图20为本技术提供的一种编码装置的结构示意图,该编码装置2000包括:qp确定单元2001和量化单元2002。编码装置2000可以用于实现上述编码方法实施例中视频编码器或编码端的功能,因此也能实现上述编码方法实施例所具备的有益效果。在本技术实施例中,该编码装置2000可以是如图1所示的编码端10或视频编码器100,也可以是如图2所示的视频编码器100,还可以是应用于编码端10或视频编码器100的模块(如芯片)。
[0351]
qp确定单元2001和量化单元2002,用于实现图16~图18所提供的编码方法。有关上述qp确定单元2001和量化单元2002更详细的描述可以直接参考图4~图18所示的方法实施例中相关描述直接得到,这里不加赘述。
[0352]
本技术还提供一种电子设备,如图21所示,本技术提供的一种电子设备的结构示意图,电子设备2100包括处理器2101和通信接口2102。处理器2101和通信接口2102之间相互耦合。可以理解的是,通信接口2101可以为收发器或输入输出接口。可选的,电子设备2100还可以包括存储器2103,用于存储处理器2101执行的指令或存储处理器2101运行指令所需要的输入数据,或存储处理器2101运行指令后产生的数据。
[0353]
当电子设备2100用于实现图5~图15所示的方法时,处理器2101和接口电路2102用于执行上述qp确定单元1901和反量化单元1902的功能。
[0354]
当电子设备2100用于实现图16~图18所示的方法时,处理器2101和接口电路2102用于执行上述qp确定单元2001和量化单元2002的功能。
[0355]
本技术实施例中不限定上述通信接口2102、处理器2101及存储器2103之间的具体连接介质。本技术实施例在图21中以通信接口2102、处理器2101以及存储器2103之间通过总线2104连接,总线在图21中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图21中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0356]
存储器2103可用于存储软件程序及模块,如本技术实施例所提供的解码方法或编码方法对应的程序指令/模块,处理器2101通过执行存储在存储器2103内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口2102可用于与其他设备进行信令或数据的通信。在本技术中该电子设备2100可以具有多个通信接口2102。
[0357]
可以理解的是,本技术的实施例中的处理器可以是中央处理单元(central processing unit,cpu)、神经处理器(neural processing unit,npu)或图形处理器(graphic processing unit,gpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
[0358]
本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
[0359]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算
机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state drives,ssd))等。
[0360]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0361]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0362]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0363]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0364]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0365]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种图像解码方法,其特征在于,所述方法由解码端执行,所述方法包括:若当前编码块的预测模式为帧内块复制预测模式,则将所述当前编码块划分为若干变换块tb和若干个预测块pb;从所述当前编码块的第二个tb开始,对每个tb中的pb进行运动补偿时,允许参考当前tb左侧的已重建tb中的重建像素值。2.根据权利要求1所述的方法,其特征在于,所述当前编码块的尺寸为16
×
2,所述tb的尺寸为8
×
2,所述pb的尺寸为2
×
2。3.根据权利要求1所述的方法,其特征在于,所述将所述当前编码块划分为若干变换块tb和若干个预测块pb,包括:获取所述当前编码块的区域划分信息;根据所述当前编码块的区域划分信息,将所述当前编码块划分为若干变换块tb和若干个预测块pb。4.根据权利要求3所述的方法,其特征在于,所述获取所述当前编码块的区域划分信息,包括:获取预定义的所述当前编码块的区域划分信息;或者,在所述方法由解码端执行的情况下,解析码流,获取所述当前编码块的区域划分信息。5.一种图像编码方法,其特征在于,所述方法由编码端执行,所述方法包括:若当前编码块的预测模式为帧内块复制预测模式,则将所述当前编码块划分为若干变换块tb和若干个预测块pb;从所述当前编码块的第二个tb开始,对每个tb中的pb进行运动补偿时,允许参考当前tb左侧的已重建tb中的重建像素值。6.根据权利要求5所述的方法,其特征在于,所述编码端对所述当前块对应的块矢量bv或块矢量差bvd的编码方式包括:对于进行水平方向的运动搜索,但不进行垂直方向运动搜索,码流中传输水平方向的bv或bvd,不传输垂直方向的bv或bvd。7.根据权利要求5所述的方法,其特征在于,所述编码端对所述当前块对应块矢量bv或块矢量差bvd的编码方式为定长码。8.根据权利要求5所述的方法,其特征在于,所述当前编码块的预测块通过以下方式获得:基于块矢量bv或块矢量差bvd获得匹配块,对所述匹配块进行处理,生成最终的预测块;其中,所述对所述匹配块进行处理,包括:对所述匹配块进行预测滤波和/或光照补偿处理。9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,实现权利要求1至8中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被电子设备执行时,实现权利要求1至8中任一项所述的方法。
技术总结
本申请实施例提供一种图像解码方法、编码方法及装置,涉及视频编解码领域。该解码方法包括:针对当前编码块中的任意一个像素点或任意多个并行反量化的像素点,确定该像素点的量化参数QP值,当前编码块的像素点中至少存在两个像素点的QP值不同;并且根据该像素点的QP值,对该像素点进行反量化。由于编码块中的像素点确定每个像素点粒度的QP,从而根据每个像素点的QP值对每个像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。能够提高图像解码的真实性和准确性。能够提高图像解码的真实性和准确性。
技术研发人员:魏亮 陈方栋 王莉
受保护的技术使用者:杭州海康威视数字技术股份有限公司
技术研发日:2022.01.19
技术公布日:2023/9/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/