一种图像编码方法、装置及设备与流程
未命名
09-29
阅读:81
评论:0
1.本技术涉及图像领域,尤其涉及一种图像编码方法、装置及设备。
背景技术:
2.随着信息技术的发展,图像和视频成为数字信息内容的主要组成部分。为了便于传输,需要对图像或视频进行更好的压缩编码,使其占用的空间更小、主观效果更好。目前,可以通过以下两个方面来实现该目标:
3.一方面,通过研究更加复杂的编码工具来提升预测准确度(比如增强更多预测模式)、变换的能量集中性(比如更加灵活的变换)等,从而提升视频的压缩率。各大视频编码标准组织(例如,动态图像专家组高级视频编码(moving picture experts group-advanced video coding,mpeg-avc)、高效率视频编码(high efficiency video coding,hevc)、音视频编码标准(audio video coding standard,avs)1/2/3等)一直进行这方面的工作。
4.另一方面,在标准框架下,在视频压缩过程中,根据人类视觉系统(human visual system,hvs)特性来提升编码的主客观效果。例如,通过自适应量化(adaptive quantization,aq)技术,基于纹理强度、边缘强度、亮度或时域特征等来分配码率。在码率一定的情况下,获得更好的编码后的图像质量。
5.在目前的编码方法中,编码器会预先确定用于编码的量化参数(quantization parameter,qp),并通过qp来分配码率。但是,编码后图像的质量与很多因素有关。编码器采用预先确定的qp进行编码,可能会导致编码后图像的质量不理想,编码后图像中不同区域的质量可能会有很大差异。
6.因此,本领域需要一种能够保证编码后图像的质量的图像编码方案。
技术实现要素:
7.本技术提供一种图像编码方法、装置及设备,用于保证编码后图像的质量。
8.第一方面,本技术提供了一种图像编码方法。该方法包括:编码设备在获取到第一图像之后,可以获取与第一图像中至少一个编码块中每个编码块分别对应的第一qp;然后,根据与每个编码块对应的第一qp,对该至少一个编码块中每个编码块分别进行编码,得到第一图像数据。编码设备可根据第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp;并根据与每个编码块对应的第二qp,对该至少一个编码块中每个编码块分别进行编码,得到第二图像数据。
9.通过该方法,编码设备可以对图像进行至少两次编码,并根据上一次编码得到的每个编码块的质量参数,调整相应编码块的qp,再根据调整后的qp对图像进行编码。这样,编码设备可以根据上一次实际编码的质量来调整本次编码的编码参数qp,从而可以保证编码后的图像质量。
10.在一种可能的设计中,对于所述至少一个编码块中的任一编码块(下面称为第一
编码块),编码设备可根据所述第一图像的目标质量参数和所述第一图像数据中的所述第一编码块的质量参数,确定与所述第一编码块对应的第一qp偏移值;然后,根据与所述第一编码块对应的第一qp和与所述第一编码块对应的第一qp偏移值,确定与所述第一编码块对应的第二qp。通过该设计,编码设备可先确定与所述第一编码块对应的第一qp偏移值,再根据与所述第一编码块对应的第一qp偏移值,确定与所述第一编码块对应的第二qp。一般情况下,相对于第二qp,第一qp偏移值较小;这样,确定第一qp偏移值的计算量较小,传输或存储第一qp偏移值所需的资源也较少。
11.在一种可能设计中,编码设备可通过如下方式确定与所述第一编码块对应的第一qp偏移值:
12.当所述第一编码块的质量参数大于所述第一图像的目标质量参数,且所述第一编码块的质量参数与所述第一图像的目标质量参数的差值位于第一范围时,编码设备可确定与所述第一编码块对应的第一qp偏移值等于与所述第一范围对应的qp偏移值;其中,与所述第一编码块对应的第一qp偏移值为正数;或者
13.当所述第一编码块的质量参数小于所述第一图像的目标质量参数,且所述第一编码块的质量参数与所述第一图像的目标质量参数的差值的绝对值位于第二范围时,编码设备可确定与所述第一编码块对应的第一qp偏移值的绝对值等于与所述第二范围对应的qp偏移值;其中,与所述第一编码块对应的第一qp偏移值为负数;或者
14.当所述第一编码块的质量参数等于所述第一图像的目标质量参数时,编码设备可确定与所述第一编码块对应的第一qp偏移值为0。
15.通过该设计,当第一图像中的编码块的编码质量低于第一图像的目标质量时,第一qp偏移值为负值;从而可以通过调小qp来提高该编码块的编码质量,使其接近目标质量。当第一图像中的编码块的编码质量高于第一图像的目标质量时,第一qp偏移值为正值;从而可通过调大qp来降低该编码块的编码质量,使其接近目标质量。这样,当目标码率固定时,编码设备可以在第一图像内部分配码率,即,调低编码质量超过目标质量的编码块的码率,将节省的码字分配给编码质量低于目标质量的编码块,以便提高编码质量低于目标质量的编码块的码率,从而可以提高第一图像的整体编码质量,使得第一图像的编码质量更加均衡。当目标码率可变时,该设计可以通过降低编码质量超过目标质量的编码块的质量来降低图像整体需要的码率。
16.在一种可能的设计中,根据与每个编码块对应的第一qp,对所述至少一个编码块中每个编码块分别进行编码之后,编码设备可比较所述第一图像数据和所述第一图像,从而得到所述第一图像数据中每个编码块的质量参数。通过该设计,编码设备可准确确定出通过与每个编码块对应的第一qp对所述至少一个编码块中每个编码块分别进行编码后,每个编码块的质量参数。
17.在一种可能的设计中,对于所述至少一个编码块中的任一编码块(下面称为第二编码块),编码设备可通过如下方式来根据与第二编码块对应的第一qp对第二编码块进行编码:
18.编码设备可根据与第二编码块对应的第一qp,对所述第二编码块进行量化处理,得到量化数据;再根据与所述第二编码块对应的第一qp,对所述量化数据进行反量化和反变换处理,得到反变换后的残差数据;然后,编码设备可根据所述第二编码块的预测数据和
残差数据,得到所述第二编码块的重建数据,并对所述重建数据进行滤波,从而得到所述第一图像数据中与所述第二编码块对应的图像数据。
19.通过该设计,在根据与每个编码块对应的第一qp,对上述至少一个编码块中每个编码块分别进行编码时,确定出用于下一次编码的第一图像数据即可,无需输出码流,从而可以提高编码效率。
20.在一种可能的设计中,对于所述至少一个编码块中的任一编码块(下面称为第三编码块),编码设备可根据第一信息以及与第三编码块对应的第二qp,对所述第三编码块进行编码。其中,所述第一信息可以为根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时得到的中间数据。例如,第一信息可包括以下至少一项:根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时,确定的所述第三编码块的预测模式;根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时,确定的所述第三编码块的运动矢量。通过该设计,在根据与每个编码块对应的第二qp,对至少一个编码块中每个编码块分别进行编码时,可复用根据与每个编码块对应的第一qp对上述至少一个编码块中每个编码块分别进行编码得到的中间结果。换句话说,本次编码可复用上一次编码的中间结果,从而可以简化编码流程,提高编码效率。
21.在一种可能的设计中,在根据与每个编码块对应的第二qp,对所述至少一个编码块中每个编码块分别进行编码之后,编码设备可保存第二信息。其中,所述第二信息可用于表示所述第二图像数据中每个编码块的质量参数。
22.可选的,所述第二信息可为包含所述第二图像数据中每个编码块的质量参数的矩阵。
23.通过该设计,编码设备在对第一图像进行编码后,可以保存用于表示第二图像数据中每个编码块的质量参数的第二信息;这样,编码设备在对第一图像所在视频中的后续图像进行编码时,可以参考第二信息,从而可以提高后续图像的编码质量。
24.在一种可能的设计中,所述第一图像可为视频中的第n帧图像,其中,n为正整数;在保存第二信息之后,编码设备可根据第一图像的第二信息来对视频中的后续图像进行编码。具体的,编码设备可获取所述视频中第n+1帧图像(下面称为第二图像),所述第二图像中包含n个编码块,n为正整数。编码设备可在第一图像中的所述至少一个编码块中,确定与所述第二图像中第四编码块关联的至少一个目标编码块;其中,所述第四编码块可为所述n个编码块中的任一个编码块,所述第四编码块中的内容包含在所述至少一个目标编码块中。在根据所述第二信息,确定所述第二图像数据中所述至少一个目标编码块的质量参数之后,编码设备可根据所述至少一个目标编码块的质量参数,预测编码后所述第四编码块的质量参数,并据此确定与所述第四编码块对应的第三qp。然后,编码设备可根据与所述第四编码块对应的第三qp,对所述第四编码块进行编码。
25.通过该设计,编码设备可以对视频中的第一图像进行至少两次编码,从而提高第一图像的编码质量。然后,编码设备可根据已提高编码质量的第一图像,对视频中的第二图像进行一次编码;具体的,编码设备根据已提高编码质量的第一图像中目标编码块的编码质量,预测视频中后续图像中相似编码块的编码质量,并根据预测的编码质量调整qp,从而可提高视频中后续图像中相似编码块的编码质量,进而可提高第二图像的编码质量。
26.在一种可能的设计中,编码设备可在根据所述第二图像的目标质量参数和预测的
编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第二qp偏移值之后,根据与所述第四编码块对应的第二qp偏移值,确定与所述第四编码块对应的第三qp。通过该设计,编码设备可先确定与所述第四编码块对应的第二qp偏移值,再根据与所述第四编码块对应的第二qp偏移值,确定与所述第四编码块对应的第三qp。一般情况下,相对于第三qp,第二qp偏移值较小;这样,确定第二qp偏移值的计算量较小,传输或存储第二qp偏移值所需的资源也较少。
27.在一种可能的设计中,编码设备可通过如下方式确定与所述第四编码块对应的第二qp偏移值:
28.当所述第四编码块的质量参数大于所述第二图像的目标质量参数,且所述第四编码块的质量参数与所述第二图像的目标质量参数的差值位于第三范围时,编码设备可确定与所述第四编码块对应的第二qp偏移值等于与所述第三范围对应的qp偏移值;其中,与所述第四编码块对应的第二qp偏移值为正数;或者
29.当所述第四编码块的质量参数小于所述第二图像的目标质量参数,且所述第四编码块的质量参数与所述第二图像的目标质量参数的差值的绝对值位于第四范围时,编码设备可确定与所述第四编码块对应的第二qp偏移值的绝对值等于与所述第四范围对应的qp偏移值;其中,与所述第四编码块对应的第二qp偏移值为负数;或者
30.当预测的编码后所述第四编码块的质量参数等于所述第二图像的目标质量参数时,编码设备可确定与第四编码块对应的第二qp偏移值为0。
31.通过该设计,当第二图像中的编码块的质量低于第二图像的目标质量时,第二qp偏移值为负值;从而可以通过调小qp来提高该编码块的编码质量。当第二图像中的编码块的质量高于第一图像的目标质量时,第二qp偏移为正值;从而可通过调大qp来降低该编码块所需的码率,而节约的码率可用于提高第二图像中质量低于第二图像的目标质量的编码块的编码质量;这样,无需提高整体码率,即可提高第二图像的整体编码质量。
32.在一种可能的设计中,任一编码块的质量参数可包括以下至少一项:峰值信噪比、结构相似度、多尺度结构相似度。
33.第二方面,提供了一种图像编码装置,包括用于执行上述第一方面及第一方面任一可能的设计中各个步骤的单元。
34.第三方面,提供了一种图像编码设备,包括处理器以及耦合至所述处理器的存储器。其中,该存储器可用于存储程序代码;处理器可调用存储在所述存储器中的程序代码以执行上述第一方面及第一方面任一可能的设计中的方法。
35.第四方面,本技术实施例还提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述第一方面及第一方面任一可能的设计中的方法。
36.第五方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时,使得所述计算机执行上述第一方面及第一方面任一可能的设计中的方法。
37.第六方面,本技术实施例还提供了一种芯片,所述芯片用于读取存储器中存储的计算机程序,执行上述第一方面及第一方面任一可能的设计中的方法。
38.第七方面,本技术实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机装置实现上述第一方面及第一方面任一可能的设计中的方法。在一种可能的设计
中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
39.上述第二方面至第七方面中任一方面可以达到的技术效果可以参照上述第一方面及第一方面中任一可能的设计可以达到的技术效果说明,重复之处不予论述。
附图说明
40.图1为一种编码设备的结构图;
41.图2为一种aq方案的示意图;
42.图3为本技术实施例提供的一种图像编码方法的流程图;
43.图4为本技术实施例提供的一种编码设备的结构图;
44.图5为本技术实施例提供的qp调整模块33的一种处理流程的示意图;
45.图6为本技术实施例提供的qp调整模块33的另一种处理流程的示意图;
46.图7为本技术实施例提供的另一种编码设备的结构图;
47.图8为本技术实施例提供的预测编码模块41的结构图;
48.图9为本技术实施例提供的一种编码方法的示意图;
49.图10为本技术实施例提供的又一种编码设备的结构图;
50.图11为本技术实施例提供的qp计算模块116的处理流程示意图;
51.图12为本技术实施例提供的一种编码块关联关系的示意图;
52.图13为本技术实施例提供的一种图像编码装置的结构图;
53.图14为本技术实施例提供的一种图像编码设备的结构图。
具体实施方式
54.本技术提供一种图像编码方法、装置及设备,用以保证编码后图像的质量。其中,方法、装置和设备是基于同一技术构思的,由于解决问题的原理相似,因此装置、设备与方法的实施可以相互参见,重复之处不再赘述。
55.通过本技术实施例提供的方案,编码设备在获取到第一图像之后,可以获取与第一图像中至少一个编码块中每个编码块分别对应的第一qp;然后,根据每个编码块对应的第一qp,对该至少一个编码块中每个编码块分别进行编码(下面称为第一编码),得到第一图像数据。编码设备根据第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp;并根据与每个编码块对应的第二qp,对该至少一个编码块中每个编码块进行编码,得到第二图像数据。通过该方案,编码设备可以对图像进行至少两次编码,根据上一次编码得到的每个编码块的质量参数,调整相应编码块的qp,再根据调整后的qp对图像进行编码。这样,编码设备可以根据上一次编码的质量来调整本次编码的qp,从而可以保证本次编码后的图像质量。
56.以下,对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
57.1)、图像编码,通常包括处理(例如,通过压缩)原始图像以减少表示该图像所需的数据量,以较少的比特数表示图像或图像中所包含的信息,从而更高效地存储和/或传输。
58.2)、视频编码,通常是指处理形成视频或视频序列的图像序列。视频编码通常包括处理(例如,通过压缩)原始视频图像以减少表示该视频图像所需的数据量,从而更高效地
存储和/或传输。在视频编码领域,术语“图片(picture)”、“帧(frame)”或“图像(image)”可以用作同义词。
59.3)、块(block),是图像编码或视频编码的处理单位,又称为图像块。
60.每个图像可包括至少一个块。一些视频编码标准对块进行了进一步的扩展。例如,在h.264标准中有宏块(macroblock,mb),宏块可进一步划分成多个可用于预测编码的预测块(partition)。又例如,在hevc标准中,采用编码单元(coding unit,cu)、预测单元(prediction unit,pu)和变换单元(transform unit,tu)等基本概念。cu是对图像进行划分和编码的基本单元。pu可以对应预测块,是预测编码的基本单元。tu可以对应变换块,是对预测残差进行变换的基本单元。cu、pu和tu本质上都属于块。
61.本文中,为了便于描述和理解,可将当前编码图像中待编码的图像块称为编码块;将参考图像中为编码块提供预测信息的块为预测块,其中,预测信息可表示预测块内的像素值、采样值或者采样信号。
62.4)、编码设备,是能够对图像或视频进行编码的设备的统称。例如,编码设备可以为台式计算机、笔记型计算机、平板计算机、机顶盒、手机、电视、照相机、摄影机、显示装置、数字媒体播放器、视频游戏控制台或视频流传输装置等。
63.本技术实施例中,对于名词的数目,除非特别说明,表示“单数名词或复数名词”,即“一个或多个”。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。“以下至少一项(个)”或其类似表达,是指这些项(个)中的任意组合,包括单项(个)或复数项(个)的任意组合。
64.另外,需要理解的是,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不应理解为指示或暗示相对重要性,也不应理解为指示或暗示顺序。
65.为了便于理解本技术,下面参考图1介绍编码设备进行编码的过程。
66.如图1所示,按照编码过程中的功能逻辑划分,编码设备可包括编码器10和码控模块20。其中,编码器10中包括:帧内预测模块102、帧间预测模块104、模式判决及残差计算模块106、变换和量化模块108、反量化和反变换模块110、滤波模块112、熵编码模块114。
67.下面以该编码设备对输入图像fn(即视频中的第n帧图像,其中,n为正整数)中的当前编码块进行编码为例进行说明。其中,当前编码块可以为输入图像fn中的任一编码块。
68.码控模块20可为编码器10提供输入图像fn的帧级qp(即qp_frame)和当前编码块的块级δqp。其中,当前编码块的块级δqp为当前编码块的qp与当前编码块所在的图像的帧级qp之间的偏移值。
69.其中,码控模块20可通过帧级码控来确定fn的帧级qp。具体的,码控模块20可根据以下至少一项计算输入图像fn的帧级qp:输入图像fn所在视频对应的输出码流的大小、目标码率和其他控制参数(比如前后2帧场景切换信息,允许的码率波动幅度指标等)。例如,当输入图像fn所在视频对应的输出码流的大小与时间的比值大于目标码率时,码控模块20可以调大输入图像fn的帧级qp,以便减小输入图像fn对应的码率,从而降低输入图像fn所在视频的整体码率,使其接近目标码率。又例如,当输入图像fn所在视频对应的输出码流的大小与时间的比值小于目标码率时,码控模块20可以调小输入图像fn的帧级qp,以便提高输入图像fn对应的码率,从而提高输入图像fn所在视频的整体码率,使其接近目标码率。
70.码控模块20确定当前编码块的块级δqp的方法可以参考以下对图2的说明,此处暂不展开。
71.帧内预测模块102可获取输入图像fn中的当前编码块的参考数据(例如,相邻位置已经编码的重建数据)。然后,帧内预测模块102可根据预定的一种或多种预测模式进行帧内模式的选择,并输出选择出的最优模式对应的代价(比如,cost=distortion+lambda*bits,其中,cost为代价;distortion为失真,可以用平方误差和(sum square of difference,ssd)来度量;bits为对变化量化系数编码所使用的比特数(bits),lambda为权重)和预测数据,其中,预测数据可包括预测块的预测角度标识等信息,最优模式为代价最小的模式。帧内预测模块102进行预测的模式可以被称为帧内预测模式。
72.帧间预测模块104可包括运动估计单元和运动补偿单元。运动估计单元可以在参考图像fn-1(即视频中的第n-1帧图像)中寻找当前待编码最相似的预测块,其中相似性的度量可以按照用户指定某种度量指标来度量,比如预测残差的绝对值之和(sum absolute of difference,sad)或ssd。在主流的视频编码器中在运动估计过程还会包含分数像素的插值与搜索等操作。运动估计的结果得到最优的运动向量(motion vector,mv);其中,最优的mv为与当前编码块最相似的预测块对应的mv。运动补偿单元可根据运动估计单元确定的运动向量取出或生成预测块,并得到预测数据;其中,预测数据可包括预测块的标识、mv等信息。当n为大于1的整数时,可采用帧间预测模块104进行预测。采用帧间预测模块104进行预测的模式可以被称为帧间预测模式。
73.模式判决及残差计算模块106可以包括模式判决单元和残差计算单元。其中,模式判决单元用于选择采用帧内预测模式还是帧间预测模式进行预测。例如,当通过帧内预测模式进行编码时的代价小于或等于通过帧间预测模式进行编码时的代价时,模式判决单元可以选择通过帧内预测模式进行预测;当通过帧内预测模式进行编码时的代价大于通过帧间预测模式进行编码时的代价时,模式判决单元可以选择通过帧间预测模式进行预测。残差计算单元用于计算当前编码块的像素与模式判决单元选择的预测模式(帧内预测模式或帧间预测模式)得到的预测块的像素之间的像素值差异,即残差。
74.变换和量化模块108可包括变换单元和量化单元。其中,变换单元用于对残差进行变换,将其转化为变换系数(transform coefficient)。常用的变换可包括以下之一:离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)、小波变换等。量化单元用于对变换系数进行量化处理。量化是指对变换系数进行量化以减少用以表示量化系数的数据的量,从而实现进一步的压缩。具体的,量化单元可根据来自码控模块的当前编码块的块级δqp以及输入图像fn的帧级qp(qp_frame),确定当前编码块的qp(即qp_frame+δqp);并使用当前编码块的qp定义的量化步长,对变换系数进行量化处理,得到量化数据(也可以称为经量化的变换系数或量化后的变换系数)。
75.反量化和反变换模块110可包括反量化单元和反变换单元。其中,反量化单元可用于对量化数据进行反量化处理,得到反量化后的变换系数。反变换单元用于对反量化后的变换系数进行反变换处理(例如,逆dct、逆整数变换或概念上类似的逆变换过程),从而得到反变换后的残差(也可以称为重构残差)。
76.滤波模块112可以对重建数据进行滤波,得到当前编码块的图像数据(也可称为重构数据、重构图像或重构块),从而减少失真,提高图像质量。其中,重建数据是根据反变换
后的残差确定的,例如,可以为预测数据和反变换后的残差相加的结果。由于滤波模块112输出的图像数据经过量化处理,且可能存在失真,因此,该图像数据还可以被称为量化失真的重构数据。滤波模块112在对输入图像的所有编码块进行滤波之后,可输出输入图像的重构图像(即图1中的重构图像fn)。另外,滤波模块112还可以将滤波信息(例如,样本自适应偏移(sample-adaptive offset,sao)模式信息及补偿信息等)输出至熵编码模块114。滤波模块112可以包含以下至少一项:去块滤波器、sao滤波器、双边滤波器、自适应环路滤波器(adaptive loop filter,alf)、锐化或平滑滤波器、协同滤波器。
77.熵编码模块114用于将熵编码方案应用于量化数据、预测数据、sao模式信息及补偿信息等中的一个或多个上,以获取经编码的码流,并输出该码流。其中,熵编码方案可以为以下之一:可变长度编码(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)等。另外,熵编码模块114还可将码流的比特数上报给码控模块20。
78.应理解,虽然图1是以编码器10为视频编码器为例进行说明的,但是,本技术也可用于图像编码领域中。此时,图1中的编码器10可以为图像编码器,编码器10可以不包含帧间预测模块104和模式判决单元。
79.编码设备在进行编码时,可通过aq方案来提高编码后的主客观质量。下面结合图2说明aq方案。如图2所示,在aq方案中,编码设备(例如,编码设备中的码控模块20)可对原始图像进行分析,根据空域特征、时域特征和亮度特征来确定当前编码块的qp偏移值,从而调节当前编码块的qp。下面分别对其进行说明。
80.根据空域特性调整qp:编码设备对输入图像fn(也可称为原始图像)进行纹理分析,根据纹理分析结果确定当前编码块的第一种qp偏移值(即δqp1)。可选的,编码设备计算输入图像fn中当前编码块的亮色度的方差,根据该方差计算当前编码块的δqp1。当前编码块的方差越大,δqp1越大。例如,x264和x265的开源编码器中使用的aq算法就是通过这种方法来计算δqp1的。该方法主要利用hvs特性,对含有复杂频率成分的编码块使用更大的量化步长,从而可减小对视觉的影响。
81.根据时域特性调整qp:编码设备可进行时域分析,即根据视频序列时域的相关性来确定当前编码块的第二种qp偏移值(即δqp2)。可选的,编码设备根据当前编码块对其他编码块(例如,未编码的编码块)的贡献来确定δqp2,从而调整当前编码块的编码图像质量。通常一个编码块的信息被其他编码块参考得越多,该编码块的δqp2越小,编码图像质量越高。反之,该编码块的δqp2越大,编码图像质量越差。例如,x264和x265中的宏块树(macroblock tree,mbtree)和编码单元树(coding unit tree,cutree)技术就是采用这种方法来计算δqp2的。
82.根据亮度特性调整qp:编码设备可进行亮度分析,即根据亮度来确定当前编码块的第三种qp偏移值(即δqp3)。利用人眼对不同亮度区间失真敏感度不同,编码设备可为当前编码块设置与当前编码块亮度对应的δqp3。通过该方法,可以根据人眼视觉特性,针对不同亮度块来分配不同的码率,从而可以合理分配码率,改善主观图像质量。
83.通过上述aq方案,当前编码块的qp=δqp1+δqp2+δqp3+qp_frame=δqp+qp_frame。其中,qp_frame为当前编码块所在图像的帧级qp;δqp为当前编码块的qp偏移量(也称为块级δqp)。
84.应理解,在实际应用中,可以选择上述一种或多种调节qp的方法。例如,编码设备可根据空域特征和亮度特征来调节当前编码块的qp;此时,当前编码块的qp=δqp1+δqp3+qp_frame=δqp+qp_frame。又例如,编码设备可根据亮度特征来调节当前编码块的qp;此时,当前编码块的qp=δqp3+qp_frame=δqp+qp_frame。
85.使用上述aq方案确定δqp,可能会存在以下问题。
86.在上述aq方案中,编码设备都是在对当前编码块进行编码前确定当前编码块的δqp,从而对qp进行调整的;也就是说,编码设备是基于“预分析/预判”的方式来确定当前编码块的qp的。然而,实际编码的效果还会受到预测模式、变换尺寸、目标码率、场景时域和空域的复杂程度等影响;采用预先确定的qp进行编码时,编码后图像内不同区域的质量可能会存在较大差异,例如,有些区域很清楚,包含很多细节,但有些区域却很模糊。
87.另外,上述aq方案中,编码设备根据原始图像来确定qp偏移值,并没有考虑实际场景中的编码压力(例如,目标码率、当前qp)。当目标码率较低时,由于码率的限制,若图像块的qp不能过低,从而可能导致图像中某些编码块的编码质量较低,进而使得图像的编码质量很可能是不均匀的。此外,当前主流的视频编码标准中,量化步长与qp之间的关系是非线性的指数关系。例如,随着qp的增大,qp变化1,对应的量化步长会显著增加,对图像的编码质量的影响也会显著增加,从而可能导致图像的编码质量不均匀。
88.为了保证编码后图像的质量,本技术实施例提供了一种图像编码方法。下面参阅图3所示的流程图,对该方法的流程进行具体说明。
89.s301:编码设备获取第一图像。其中,第一图像中包含至少一个编码块。
90.其中,该第一图像为待编码的图像。该第一图像可以是单独的图像,也可以是视频中的某一帧图像(例如,第n帧图像,其中,n为正整数)。
91.另外,编码设备可以从本地存储的图像或视频中获取第一图像,也可以从来自其他设备的图像或视频中获取第一图像,还可以从通过摄像设备预览的图像中获取第一图像。
92.s302:编码设备获取与第一图像中至少一个编码块中每个编码块对应的第一qp。
93.其中,编码设备可包括图1所示的码控模块20。编码设备可根据从码控模块20获取第一图像的帧级qp和每个编码块对应的块级δqp,从而确定出每个编码块对应的第一qp。
94.例如,第一编码块为第一图像中的任一编码块;编码设备在从码控模块20获取第一图像的帧级qp(qp_frame1a)和第一编码块对应的块级δqp(即δqpa)之后,可确定第一编码块对应的第一qp为qp_frame1a+δqpa。
95.s303:编码设备根据与每个编码块对应的第一qp,对上述至少一个编码块中每个编码块分别进行编码,得到第一图像数据。
96.其中,第一图像数据可以为重构数据或重建数据。
97.可选的,s303可通过以下方式之一来实现:
98.方式一:编码设备采用图1所示的全部编码过程对上述至少一个编码块中的每个编码块进行编码,输出码流,并得到第一图像数据。具体内容可参考对图1的说明,此处不再
赘述。
99.方式二:编码设备采用图1所示的部分编码过程对上述至少一个编码块中的每个编码块进行编码,得到第一图像数据。
100.下面以第二编码块为例对方式二的实现过程进行说明。其中,第二编码块可为上述至少一个编码块中的任一编码块。
101.对于第二编码块,s303可包括a1-a4。
102.a1:编码设备根据与第二编码块对应的第一qp,对第二编码块进行量化处理,得到量化数据。
103.a2:编码设备根据与第二编码块对应的第一qp,对量化数据进行反量化和反变换处理,得到反变换后的残差数据。
104.a3:编码设备根据第二编码块的预测数据和残差数据,得到第二编码块的重建数据。
105.a4:编码设备对重建数据进行滤波,得到第一图像数据中与第二编码块对应的图像数据。
106.其中,a1-a4的具体内容可参考对图1的说明,此处不再赘述。
107.在该方式二中,本次编码可确定用于下一次编码的第一图像数据,无需输出码流,从而可以提高编码效率。
108.s304:编码设备根据第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp。
109.其中,编码设备可通过比较第一图像数据和第一图像,得到第一图像数据中每个编码块的质量参数;然后,编码设备可根据第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp。其中,任一编码块的质量参数可包括以下至少一项:峰值信噪比(peak signal noise ratio,psnr)、结构相似度(structure similarity index metric,ssim)、多尺度结构相似度(multiple scalar structure similarity index metric,ms-ssim)。
110.下面以第一编码块为例对s304的实现过程进行说明。其中,第一编码块可为第一图像中至少一个编码块中的任一编码块。
111.对于第一编码块,s304可包括b1-b2。
112.b1:编码设备可根据第一图像的目标质量参数和第一图像数据中的第一编码块的质量参数,确定与第一编码块对应的第一qp偏移值(下面简称为δqp4a)。
113.其中,第一图像的目标质量参数可以是固定的,也可以是可变的。
114.在一些可能的实施方式中,第一图像的目标质量参数可为用户输入的固定目标质量参数。
115.在另一些可能的实施方式中,编码设备可根据图像内容和编码压力调整目标质量参数。例如,在目标码率固定的情况下,编码设备可将已编码的图像的平均质量参数确定为第一图像的目标质量参数;也可以确定第一图像的目标质量参数为已编码的图像的平均质量参数与第一偏移值之和,其中,第一偏移值可以为正数、负数或0。这样,当图像中显示的场景比较简单时,编码所需的码字较少(也就是说编码压力较小),图像的编码质量较好,已编码的图像的平均质量参数也会较高(假设质量参数越高,质量越高),据此确定的第一图
像的目标质量参数也较大;当图像中显示的场景较为复杂时,编码所需的码字较多(也就是说编码压力较大),图像的编码质量较低,已编码的图像的平均质量参数也会较低,据此确定的第一图像的目标质量参数也较小。
116.可选的,所述编码设备可以通过以下步骤,执行b1:
117.当第一编码块的质量参数大于第一图像的目标质量参数(也就是说,第一编码块的编码质量高于第一图像的目标质量),且第一编码块的质量参数与第一图像的目标质量参数的差值位于第一范围时,编码设备可确定与第一编码块对应的δqp4a等于与第一范围对应的qp偏移值;其中,与第一编码块对应的δqp4a为正数。这样,当第一编码块的编码质量高于第一图像的目标质量时,编码设备可以调大第一编码块的qp,从而在满足对第一编码块的质量需求的前提下,可降低第一编码块的码率。
118.当第一编码块的质量参数小于第一图像的目标质量参数(也就是说,第一编码块的编码质量低于第一图像的目标质量),且第一编码块的质量参数与第一图像的目标质量参数的差值的绝对值位于第二范围时,编码设备可确定与第一编码块对应的δqp4a的绝对值等于与第二范围对应的qp偏移值;其中,与第一编码块对应的δqp4a为负数。这样,当第一编码块的编码质量低于第一图像的目标质量时,编码设备可以调小第一编码块的qp,从而可提高第一编码块的编码质量。
119.当第一编码块的质量参数等于第一图像的目标质量参数时,编码设备可确定与第一编码块对应的δqp4a为0。
120.通过该方法,当第一图像中的编码块的编码质量低于第一图像的目标质量时,δqp4a为负值;从而可以通过调小qp来提高该编码块的编码质量,使其接近目标质量。当第一图像中的编码块的编码质量高于第一图像的目标质量时,δqp4a为正值;从而可通过调大qp来降低该编码块的编码质量,使其接近目标质量。
121.这样,当目标码率固定(即,固定比特率(constant bit rate,cbr))时,编码设备可以在第一图像内部分配码率,即,调低编码质量超过目标质量的编码块的码率,将节省的码字分配给编码质量低于目标质量的编码块,以便提高编码质量低于目标质量的编码块的码率,从而可以提高第一图像的整体编码质量,使得第一图像的编码质量更加均衡。
122.当目标码率可变时,该方法可以通过降低编码质量超过目标质量的编码块的质量来降低图像整体需要的码率。
123.另外,该方法还可用于shvc、svc的分层编码(例如,质量分层编码)中。一般情况下,对于分层编码,层数越高,使用的qp越小,编码质量就越好。编码设备可根据编码块上各个层的编码质量是否达到目标质量,来动态调整更高层的qp。例如,当编码块上某一个层的编码质量大于或等于目标质量时,不需要再提高该编码块更高层的目标质量;具体的,在编码更高层对应相同位置的编码块时就不需要再进一步降低qp,可以采用相同的qp或着更大qp,从而达到保证达到目标质量前提下,降低更高层的码率,进而降低整体的码率。
124.b2:编码设备根据与第一编码块对应的第一qp和与第一编码块对应的δqp4a,确定与第一编码块对应的第二qp。
125.其中,编码设备可包括图1所示的码控模块20。编码设备可以重新从码控模块20获取第一图像的帧级qp(qp_frame1a)和第一编码块的块级δqp(即δqpa),并据此确定与第一编码块对应的第一qp;也可以直接获取s302中确定的第一qp。然后,编码设备可以确定与
第一编码块对应的第二qp为qp_frame1a+δqpa+δqp4a。
126.s305:编码设备根据与每个编码块对应的第二qp,对第一图像中至少一个编码块中每个编码块分别进行编码,得到第二图像数据。
127.其中,第二图像数据可以为重构数据或重建数据。
128.可选的,s305可通过以下方式之一来实现:
129.方式1:编码设备采用图1所示的全部编码过程对上述至少一个编码块中的每个编码块进行编码,输出码流,并得到第二图像数据。具体内容可参考对图1的说明,只是将当前编码块的qp替换为第二qp,此处不再赘述。
130.方式2:编码设备使用s303中的中间结果对上述至少一个编码块中的每个编码块进行编码,输出码流,并得到第二图像数据。
131.下面以第三编码块为例对方式2的实现过程进行说明。其中,第三编码块可为上述至少一个编码块中的任一编码块。
132.在方式2中,编码设备可根据第一信息(即中间结果)以及与第三编码块对应的第二qp,对第三编码块进行编码。
133.第一信息可包括以下至少一项:步骤s303中确定的第三编码块的预测模式,即根据与第三编码块对应的第一qp对第三编码块进行编码时,确定的第三编码块的预测模式;步骤s303中确定的第三编码块的mv,即根据与第三编码块对应的第一qp对第三编码块进行编码时,确定的第三编码块的mv。
134.例如,当在s303中,编码设备确定第三编码块的预测模式为帧内预测模式时,在s305中,编码设备可不再判断采用帧内预测模式还是帧间预测模式,直接使用帧内预测模式确定预测数据,进行残差计算,并使用与第三编码块对应的第二qp进行后续的编码操作。
135.又例如,当在s303中,编码设备确定第三编码块的预测模式为帧间预测模式,并确定出第三编码块对应的mv时,在s305中,编码设备可不再判断采用帧内预测模式还是帧间预测模式,直接使用帧间预测模式和第三编码块对应的mv确定预测数据,进行残差计算,并使用与第三编码块对应的第二qp进行后续的编码操作。
136.通过该方式2,本次编码可以复用上一次编码的中间结果,从而可以简化编码流程,提高编码效率。
137.应理解,本技术并不限于对图像进行两次编码,也可以对图像进行多于两次编码(例如,3次、4次,甚至更多次)。当对图像进行多于两次编码时,编码设备可根据上一次编码得到的每个编码块的质量参数,调整本次编码时与上述至少一个编码块中每个编码块分别对应的qp。
138.应理解,上述方法也可以应用于视频编码。例如,编码设备对视频中的每一帧图像都采用上述方法进行编码,或者,对视频中的关键帧(例如,视频中包含活动物体的图像)采用上述方法进行编码。
139.通过上述步骤s301-s305,编码设备可以对图像进行至少两次编码,根据上一次编码得到的每个编码块的质量参数,调整每个编码块的qp,再根据调整后的qp对图像进行编码。这样,编码设备可以根据上一次实际编码的质量来调整本次编码的编码参数qp,从而可以保证编码后的图像质量。
140.可选的,在上述方法的一种实施场景中,在s305之后,该方法还包括:
141.s306:编码设备保存第二信息。其中,第二信息可用于表示第二图像数据中每个编码块的质量参数。
142.可选的,第二信息为包含第二图像数据中每个编码块的质量参数的矩阵(也可以称为质量矩阵)。此外,第二信息也可以为其他表现形式,例如,第二图像数据中每个编码块与质量参数的对应关系表。
143.通过该方法,编码设备在对第一图像进行编码后,可以保存用于表示第二图像数据中每个编码块的质量参数的第二信息;这样,编码设备在对第一图像所在视频中的后续图像进行编码时,可以参考第二信息,从而可以提高后续图像的编码质量。
144.可选的,在上述方法的一种实施场景中,当第一图像为视频中的第n帧图像时,在s306之后,该方法还可包括:
145.s307:编码设备获取第二图像。
146.其中,第二图像可为待编码图像。第二图像可为视频中第n+1帧图像,且包含n个编码块,n为正整数。
147.编码设备获取第二图像的方式可以参考s301中编码设备获取第一图像的方式,此处不再赘述。
148.s308:编码设备在第一图像中的上述至少一个编码块中,确定与第二图像中第四编码块关联的至少一个目标编码块。其中,第四编码块可为上述n个编码块中的任一个编码块。
149.在视频中,一个场景可能会对应多帧图像,这些图像中会存在相似块。这样,第二图像中第四编码块的内容可能包含在第一图像中的至少一个目标编码块中。通过对第一图像和第二图像进行运动估计,编码设备可以确定出第一图像中与第四编码块关联的至少一个目标编码块。
150.s309:编码设备根据第二信息,确定第二图像数据中上述至少一个目标编码块的质量参数。
151.例如,当第二信息为包含第二图像数据中每个编码块的质量参数的矩阵时,编码设备可以通过查找质量矩阵,确定出第一图像中上述至少一个目标编码块编码后的质量参数。
152.又例如,当第二信息为第二图像数据中每个编码块与质量参数的对应关系表时,编码设备可以通过查表的方式,确定出第一图像中上述至少一个目标编码块编码后的质量参数。
153.s310:编码设备根据上述至少一个目标编码块的质量参数,预测编码后第四编码块的质量参数。
154.在一些可能的方式中,当第四编码块关联的上述至少一个目标编码块为一个目标编码块时,编码设备可以预测第四编码块的质量参数为该一个目标编码块的质量参数。
155.在另一些可能的方式中,当第四编码块关联的上述至少一个目标编码块为多个目标编码块时,编码设备可以预测第四编码块的质量参数为该多个目标编码块的质量参数的加权平均值。其中,每个目标编码块的质量参数的权重可以是相同的,也可以是与每个目标编码块包含的第四编码块中的内容所对应的像素值成正比。
156.s311:编码设备根据预测的编码后第四编码块的质量参数,确定与第四编码块对
rate,ddr)内存中作为下一帧图像的参考数据。
183.qp调整模块33可通过执行步骤s304来确定与第一图像中每个编码块对应的qp偏移值(即图3所示方法中的δqp4a)。
184.下面参考图5对qp调整模块33进行说明。如图5所示,qp调整模块33可通过执行d1-d3的操作来确定与第一图像中任一编码块对应的qp偏移值。
185.d1:qp调整模块33可通过比较第一图像(即原始图像)和第一编码器31输出的重构数据,来计算通过第一编码器31对第一图像中的第一编码块进行编码后第一编码块的质量参数(也可以称为图像质量的度量指标)t1。其中,第一编码块为第一图像中任一编码块;质量参数可以是psnr、ssim、ms-ssim等客观指标,也可以是其他自定义的各种指标(,比如,编码前后每个编码块频域(例如dct变换)能量(例如可以用变换系数的绝对值之和来表示)变化幅度)。
186.d2:qp调整模块33可根据第一编码块的质量参数t1与第一图像的目标质量参数t之间的差异,计算与第一编码块对应的需要调整的编码参数,例如,δqp4a。
187.其中,δqp4a可以为正数,也可以为负数。例如,如果质量参数越大越好,当t1大于t时,δqp4a为正数;当t1小于t时,δqp4a为负数。又例如,如果质量参数越小越好,当t1大于t时,δqp4a为负数;当t1小于t时,δqp4a为正数。
188.可选的,qp调整模块33可通过如下代码来确定δqp4a。
[0189][0190]
其中,diff为第一编码块的质量参数t1与第一图像的目标质量参数t之间的差异;abs(diff)为对diff取绝对值;qualitythr[8]为阈值,用于确定第一编码块的质量参数t1与第一图像的目标质量参数t之间的差异所在的区间。在该代码中,以a1,a2,a3,a4,a4,a6,a7,a8等8个阈值为例进行说明。应理解,在实际使用中,也可以使用其他数量(例如,4、5或6等)的阈值。
[0191]
d3:qp调整模块33可以将与第一编码块对应的需要调整的编码参数输出至第二编码器32。
[0192]
可选的,在d2之后,qp调整模块33还可以保存与第一编码块对应的需要调整的编
码参数。
[0193]
第二编码器32可为图1所示的编码器或其它架构的编码器(例如,图像jpeg或h.264/h.265等视频编码器)。第二编码器32可根据码控模块20输出的第一图像的帧级qp(例如,qp_frame1a)和每个编码块的块级qp(例如,δqpa),以及qp调整模块33输出的每个编码块的块级qp(例如,δqp4a),确定与第一图像中每个编码块分别对应的第二qp为qp_frame1a+δqpa+δqp4a(具体内容可参考s304),并根据与每个编码块对应的第二qp对第一图像中的每个编码块进行编码,输出最终的视频或图像码流(具体内容可参考s305)。
[0194]
其中,第二编码器32对第一图像进行编码时使用的编码块的大小与第一编码器31对第一图像进行编码时使用的编码块的大小相同;两次编码所使用的第一图像的尺寸也相同。这样,根据第一编码器31编码后编码块的编码质量来调整第二编码器32编码时编码块对应的qp,可以有效提高编码块的编码质量。
[0195]
可选的,当第二编码器32为视频编码器时,第二编码器32还可输出第一图像的重构图像,以便作为视频中下一帧图像的参考图像。具体内容可参考s305,此处不再赘述。
[0196]
可选的,第一编码器31还可输出对第一图像进行编码的中间结果(例如,图3所示方法中的第一信息)等;这样,第二编码器32可使用这些中间结果对第一图像进行编码(具体可参考s305中的方式2),从而可减少第二编码器32对第一图像进行编码的计算量,进而可以提高编码效率。
[0197]
其中,第一编码器31和第二编码器32可以是具有相同架构的不同编码器;也可以是同一个编码器;还可以是具有不同架构的编码器(例如,如图7所示)。当第一编码器31和第二编码器32是同一个编码器时,编码设备可通过时分复用的方式调用同一个编码器来对第一图像中的每个编码块进行编码,例如,先调用编码器执行步骤s301-s303,再调用编码器执行步骤s305。
[0198]
在一些可能的实现方式中,qp调整模块33可以确定与第一图像中每个编码块分别对应的qp,并将与第一图像中每个编码块分别对应的qp输出至第二编码器32;第二编码器32可根据qp调整模块33确定的qp对第一图像中的每个编码块分别进行编码,并输出最终的视频或图像码流(具体内容可参考s305)。图6示出了qp调整模块33确定与第一图像中每个编码块分别对应的qp的方式。如图6所示,在图4的基础上,qp调整模块33在确定与第一图像中每个编码块分别对应的qp偏移值之后,还可以确定与每个编码块分别对应的qp为qp=qp_frame1a+δqpa+δqp4a(即步骤s304中的第二qp,具体内容可参考步骤s304),并将确定的qp输出至第二编码器32。
[0199]
通过本实施例,编码设备可以对图像进行至少两次编码。具体的,编码设备在通过第一编码器31对第一图像中的每个编码块进行编码之后,可根据每个编码块的编码质量调整相应编码块对应的编码参数(例如,调整qp),再通过第二编码器32使用调整后的qp来对第一图像中的相应编码块进行编码。这样,编码设备可以根据上一次实际编码的质量来调整本次编码的编码参数qp,从而可以保证编码后的图像质量。
[0200]
图7示出了图4所示的编码设备的一种可能的结构。下面结合图7进行具体说明。
[0201]
第一编码器31可包括帧内预测模块102、帧间预测模块104、模式判决及残差计算模块106、变换和量化模块108-1、反量化和反变换模块110-1。
[0202]
第二编码器32可包括预测编码模块41、滤波模块112、熵编码模块114。
[0203]
其中,第一编码器31中的各模块可对第一图像中的每个编码块进行编码,得到第一重建数据(即步骤s303中的第一图像数据),并将第一重建数据输出至qp调整模块33。
[0204]
另外,模式判决及残差计算模块106可将确定的中间结果输出至预测编码模块41和熵编码模块114。其中,中间结果可以包括:预测模式和/或mv。
[0205]
其中,第一编码器31中的各模块的具体内容可参考对图1和图3的说明,此处不再赘述。
[0206]
qp调整模块33可确定与第一图像中每个编码块分别对应的qp,并将确定的与每个编码块分别对应的qp输出至预测编码模块41。qp调整模块33的具体内容可参考对图4-图6的说明,此处不再赘述。
[0207]
预测编码模块41可使用中间结果和与每个编码块对应的qp,对第一图像中每个编码块分别进行编码,从而将与每个编码块分别对应的量化数据输出至熵编码模块114,并将与每个编码块分别对应的第二重建数据输出至滤波模块112。预测编码模块41的具体内容可参考下文对图8的说明。
[0208]
滤波模块112可对与每个编码块分别对应的重建数据进行滤波后,得到与第一图像中每个编码块分别对应的重构数据。另外,滤波模块112还可将滤波信息(例如,sao模式信息及补偿信息等)输出至熵编码模块114。滤波模块112的具体内容可以参考对图1的说明,此处不再赘述。
[0209]
熵编码模块114可将熵编码方案应用于量化数据、预测数据、sao模式信息及补偿信息等中的一个或多个上,以获取经编码的码流。熵编码模块114的具体内容可参考对图1的说明,此处不再赘述。
[0210]
下面结合图8,以第一图像中的第一编码块为例,对预测编码模块41的处理过程进行说明。其中,第一编码块为第一图像中的任一编码块。
[0211]
如图8所示,预测编码模块41包括:预测单元412,残差计算单元414、变换和量化模块108-2、反量化和反变换模块110-2、数据计算单元416。
[0212]
其中,预测单元412可使用来自模式判决及残差计算模块106的中间结果对第一编码块进行预测,生成第一编码块的预测数据,并将第一编码块的预测数据输出至残差计算单元414和数据计算单元416。其中,中间结果可包括:预测模式、相邻参考数据以及时域的补偿数据(例如,mv)。预测单元412生成预测数据的方式可参考对帧内预测模块102或帧间预测模块104的说明,此处不再赘述。
[0213]
残差计算单元414可根据第一图像中第一编码块的原始数据和第一编码块的预测数据,生成第一编码块的残差,并将第一编码块的残差输出至变换和量化模块108-2。残差计算单元414生成第一编码块的残差的具体过程可参考对图1的说明,此处不再赘述。
[0214]
变换和量化模块108-2可使用来自qp调整模块33的第一编码块的qp对第一编码块的残差进行处理,得到第一编码块的量化数据,并将第一编码块的量化数据输出至熵编码模块114和反量化和反变换模块110-2。变换和量化模块108-2得到量化数据的具体过程可参考对图1的说明,此处不再赘述。
[0215]
反量化和反变换模块110-2对第一编码块的量化数据进行处理后,得到第一编码块的反变换后的残差(也可称为重构残差),并将第一编码块的重构残差输出至数据计算单元416。反量化和反变换模块110-2得到反变换后的残差的具体过程可参考对图1的说明,此
处不再赘述。
[0216]
数据计算单元416根据第一编码块的预测数据和第一编码块的反变换后的残差,得到第一编码块的重建数据(即图7中的第二重建数据),并将第一编码块的重建数据输出至滤波模块112。其中,重建数据为预测数据和反变换后的残差相加的结果。
[0217]
应理解,在本实施例中,以对编码块进行编码为例进行说明。该编码设备也可以以更小的预测粒度进行编码。例如,在一些视频编码标准中,如,h.265或多功能视频编码(versatile video coding,vvc)等标准中,一个块中可能包含多个编码单元,不同编码单元可能采用不同的编码模式,相邻编码单元的编码可能具有一定的空间依赖性。因此,本实施例的编码设备可用于更小的预测编码粒度(例如,cu)。
[0218]
图9示出了采用图4或图7所示的编码设备进行编码的示意图,如图9所示,第一编码器31使用第一图像的帧级qp和与第一图像中每个编码块对应的块级qp(即δqp),对第一图像中的每个编码块分别进行编码后,得到第一图像的第一重构图像(即图3所示方法中的第一图像数据)。第一图像数据中每个编码块的质量参数t1如图9所示。当目标质量参数t为5时,编码设备可根据每个编码块的t1和t之间的差异来分别调整与第一图像中每个编码块对应的qp,例如,编码设备可确定与第一图像中每个编码块分别对应的qp偏移值δqp4a;再根据与每个编码块对应的δqp4a,确定与第一图像中每个编码块分别对应的qp。第二编码器32可使用与每个编码块对应的qp,对第一图像中每个编码块分别进行编码,得到第一图像的第二重构图像(即图3所示方法中的第二图像数据)。第二图像数据中每个编码块的质量参数t2如图9所示。参见图9可知,相对于第一图像数据中每个编码块的质量参数t1,第二图像数据中每个编码块的质量参数t2与目标质量参数t更为接近,第二图像数据中不同编码块的质量参数之间的差距也较小,质量更为均匀。
[0219]
通过本实施例,编码设备可以对图像进行至少两次编码,根据上一次编码得到的每个编码块的质量参数,调整与图像中每个编码块分别对应的qp,再根据调整后的qp对图像进行编码。这样,编码设备可以根据上一次实际编码的质量来调整本次编码的编码参数qp,从而可以保证编码后的图像质量。并且,在进行本次编码时,编码设备使用了上一次编码的中间结果,从而简化了本次编码的编码器结构,进而可以有效降低编码设备的性能消耗。
[0220]
下面结合图10至图12,介绍上述可能的情况二的实现方式。
[0221]
如图10所示,编码设备可以包括:编码器10和码控模块20。
[0222]
其中,编码器10可包括:帧内预测模块102、帧间预测模块104、模式判决及残差计算模块106、变换和量化模块108、反量化和反变换模块110、滤波模块112、熵编码模块114、qp计算模块116、重构质量计算模块118。
[0223]
在本实施例中,对于视频中的部分图像(例如,视频中的第n帧图像,即图3所示方法中的第一图像),编码设备可对图像进行至少两次编码。例如,编码设备通过时分复用的方式至少调用两次编码器10对图像中的每个编码块进行编码,根据上一次编码后图像中编码块的编码质量来调整本次编码时图像中每个编码块分别对应的qp。此时,编码设备可仅调用编码器10中的以下模块对图像进行编码:帧内预测模块102、帧间预测模块104、模式判决及残差计算模块106、变换和量化模块108、反量化和反变换模块110、滤波模块112、熵编码模块114。具体编码过程可以参考对图3-图6的说明,此处不再赘述。
[0224]
对于视频中的其他图像(例如,视频中的第n+1帧图像,即图3所示方法中的第二图像),编码设备可根据视频中第n帧图像中目标编码块的编码质量,预测视频中后续图像中相似编码块的编码质量,并根据预测的编码质量调整与每个相似编码块对应的qp。下面以待编码的图像为第二图像,参考图像为第一图像为例,对此进行具体说明。
[0225]
码控模块20可将第二图像的帧级qp(qp_frame1b)和当前编码块的块级δqp(δqpb)输出至qp计算模块116。其中,当前编码块可为第二图像中的任一编码块。
[0226]
qp计算模块116可通过执行s308-s311来确定与第二图像中当前编码块对应的qp(即图3所示方法中的第三qp),并将确定的qp输出至帧内预测模块102和帧间预测模块104;然后,编码器10可参考对图1和图3的说明来使用第三qp对第二图像中的当前编码块进行编码。
[0227]
重构质量计算模块118可根据第二图像以及来自滤波模块112的第二图像的重构图像,确定用于表示第二图像中每个编码块的编码质量的质量矩阵。
[0228]
下面结合图11说明qp计算模块116确定第二图像中当前编码块对应的qp的过程。如图11所示,qp计算模块116可通过执行e1-e3的操作来确定与第二图像中当前编码块对应的qp。
[0229]
e1:qp计算模块116根据第一图像和第一图像的质量矩阵,预测第二图像中每个编码块的质量参数t3。
[0230]
具体的,qp计算模块116可通过运动估计在第一图像中查找与当前编码块最接近的至少一个目标编码块,该至少一个目标编码块也可以称为与当前编码块关联的目标编码块。然后,qp计算模块116可根据第一图像的质量矩阵确定该至少一个目标编码块的质量参数。其中,该质量矩阵可以为二维质量矩阵。qp计算模块116可根据该至少一个目标编码块的质量参数预测当前编码块的质量参数。
[0231]
其中,当与当前编码块关联的目标编码块可以包括多个目标编码块时,编码设备可以预测当前编码块的质量参数为该多个目标编码块的质量参数的加权平均值。例如,如图12所示,第二图像中的当前编码块为编码块a,第一图像(即参考图像)中与编码块a关联的编码块包括blk7、blk8、blk11和blk12,即第一图像中与编码块a匹配的块(下面简称为参考块)位于blk7、blk8、blk11和blk12内。假设blk7、blk8、blk11和blk12的质量参数分别为q7、q8、q11和q12,则qp计算模块116可预测编码块a的质量参数为:
[0232]
qa=w1*q7+w2*q8+w3*q11+w4*q12;
[0233]
其中,w1、w2、w3、w4分别为blk7、blk8、blk11、blk12对应的权重,每个块对应的权重可以为根据参考块在相应块中的像素个数与参考块像素总数的比值。
[0234]
e2:qp计算模块116根据预测的编码后第二图像中每个编码块的质量参数t3,确定与第二图像中每个编码块对应的qp的qp偏移值(即图3所示方法中的δqp4b)。qp计算模块116确定δqp4b的方法可以参考qp调整模块33确定δqp4a的方法,此处不再赘述。
[0235]
e3:qp计算模块116根据每个编码块对应的δqp4b,确定与第二图像中每个编码块对应的qp为qp=qp_frame1b+δqpb+δqp4b(即图3所示方法中的第三qp)。
[0236]
e1-e3的具体内容可参考图3所示的方法,此处不再赘述。
[0237]
在本实施例中,编码设备可以对视频中的一部分图像进行至少两次编码,对视频中的其他图像进行一次编码。例如,当待编码的视频的帧率为25fps时,编码设备可以在一
秒内选择5帧图像进行至少两次编码,对一秒内的其他帧图像进行一次编码。
[0238]
编码设备可以灵活的选择进行至少两次编码的图像和进行一次编码的图像。可选的,在对视频中的某一帧进行编码前,编码设备可预先判断采用至少两次编码还是采用一次编码。预先判断的原理为:视频序列中,一个场景(镜头)可以对应连续多帧图像;这些图像的编码结果较为接近;此时,可以利用上一帧图像的编码质量来预测当前帧图像中相似编码块的编码质量。基于该原理,当存在多帧相似图像时,编码设备可以在多帧相似图像中选择部分图像进行两次编码,其他图像进行一次编码。
[0239]
通过本实施例,编码设备可以对视频中的第一图像进行至少两次编码,从而提高第一图像的编码质量。然后,编码设备可根据已提高编码质量的第一图像,对视频中的第二图像进行一次编码;具体的,编码设备根据已提高编码质量的第一图像中目标编码块的编码质量,预测视频中后续图像中相似编码块的编码质量,并根据预测的编码质量调整与每个相似编码块分别对应的qp,从而可提高视频中后续图像中相似编码块的编码质量,进而可提高第二图像的编码质量。
[0240]
另外,与图4-9所示的实施例相比,本实施例对编码器的改动较小,且减少了编码器的数量,从而可以简化编码设备的架构。
[0241]
可选的,编码设备也可对视频中的所有图像采用本实施例中的方法进行一次编码。这样,编码设备根据已编码的图像中目标编码块的编码质量,预测视频中后续图像中相似编码块的编码质量,并根据预测的编码质量调整与每个相似编码块分别对应的qp,从而可提高视频中后续图像中相似编码块的编码质量,进而可提高后续图像的编码质量。
[0242]
基于与图3至图12所示实施例相同的发明构思,本技术实施例通过图13提供了一种图像编码装置,可用于执行上述实施例中相关步骤的功能。所述功能可以通过硬件实现,也可以通过软件或者硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。如图13所示,该图像编码装置1300可包括:获取单元1301和处理单元1302。
[0243]
其中,获取单元1301用于:获取第一图像,所述第一图像中包含至少一个编码块;获取与所述至少一个编码块中每个编码块分别对应的第一量化参数qp;
[0244]
处理单元1302用于:根据与每个编码块对应的第一qp,对所述至少一个编码块中每个编码块分别进行编码,得到第一图像数据;根据所述第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp;根据与每个编码块对应的第二qp,对所述至少一个编码块中每个编码块分别进行编码,得到第二图像数据。
[0245]
可选的,处理单元1302具体用于:根据所述第一图像的目标质量参数和所述第一图像数据中的第一编码块的质量参数,确定与所述第一编码块对应的第一qp偏移值;其中,所述第一编码块为所述至少一个编码块中的任一个编码块;根据与所述第一编码块对应的第一qp和与所述第一编码块对应的第一qp偏移值,确定与所述第一编码块对应的第二qp。
[0246]
可选的,处理单元1302具体用于:
[0247]
当所述第一编码块的质量参数大于所述第一图像的目标质量参数,且所述第一编码块的质量参数与所述第一图像的目标质量参数的差值位于第一范围时,确定与所述第一编码块对应的第一qp偏移值等于与所述第一范围对应的qp偏移值;其中,与所述第一编码块对应的第一qp偏移值为正数;或者
[0248]
当所述第一编码块的质量参数小于所述第一图像的目标质量参数,且所述第一编码块的质量参数与所述第一图像的目标质量参数的差值的绝对值位于第二范围时,确定与所述第一编码块对应的第一qp偏移值的绝对值等于与所述第二范围对应的qp偏移值;其中,与所述第一编码块对应的第一qp偏移值为负数;或者
[0249]
当所述第一编码块的质量参数等于所述第一图像的目标质量参数时,确定与所述第一编码块对应的第一qp偏移值为0。
[0250]
可选的,处理单元1302具体用于:在根据与每个编码块对应的第一qp,对所述至少一个编码块中每个编码块分别进行编码之后,比较所述第一图像数据和所述第一图像,得到所述第一图像数据中每个编码块的质量参数。
[0251]
可选的,处理单元1302具体用于:根据与第二编码块对应的第一qp,对所述第二编码块进行量化处理,得到量化数据;其中,所述第二编码块为所述至少一个编码块中的任一编码块;根据与所述第二编码块对应的第一qp,对所述量化数据进行反量化和反变换处理,得到反变换后的残差数据;根据所述第二编码块的预测数据和残差数据,得到所述第二编码块的重建数据;对所述重建数据进行滤波,得到所述第一图像数据中与所述第二编码块对应的图像数据。
[0252]
可选的,处理单元1302具体用于:根据第一信息以及与第三编码块对应的第二qp,对所述第三编码块进行编码;其中,所述第三编码块为所述至少一个编码块中的任一编码块;其中,所述第一信息包括以下至少一项:根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时,确定的所述第三编码块的预测模式;根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时,确定的所述第三编码块的运动矢量。
[0253]
可选的,处理单元1302具体用于:在根据与每个编码块对应的第二qp,对所述至少一个编码块中每个编码块分别进行编码之后,保存第二信息;其中,所述第二信息用于表示所述第二图像数据中每个编码块的质量参数。
[0254]
可选的,所述第二信息为包含所述第二图像数据中每个编码块的质量参数的矩阵。
[0255]
可选的,获取单元1301具体用于:当所述第一图像为视频中的第n帧图像时,在保存第二信息之后,获取第二图像;其中,所述第二图像为所述视频中第n+1帧图像,所述第二图像中包含n个编码块,n为正整数;处理单元1302具体用于:在所述至少一个编码块中,确定与所述第二图像中第四编码块关联的至少一个目标编码块;其中,所述第四编码块为所述n个编码块中的任一个编码块,所述第四编码块中的内容包含在所述至少一个目标编码块中;根据所述第二信息,确定所述第二图像数据中所述至少一个目标编码块的质量参数;根据所述至少一个目标编码块的质量参数,预测编码后所述第四编码块的质量参数;根据预测的编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第三qp;根据与所述第四编码块对应的第三qp,对所述第四编码块进行编码,其中,n为正整数。
[0256]
可选的,处理单元1302具体用于:根据所述第二图像的目标质量参数和预测的编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第二qp偏移值;根据与所述第四编码块对应的第二qp偏移值,确定与所述第四编码块对应的第三qp。
[0257]
可选的,处理单元1302具体用于:
[0258]
当所述第四编码块的质量参数大于所述第二图像的目标质量参数,且所述第四编
码块的质量参数与所述第二图像的目标质量参数的差值位于第三范围时,确定与所述第四编码块对应的第二qp偏移值等于与所述第三范围对应的qp偏移值;其中,与所述第四编码块对应的第二qp偏移值为正数;或者
[0259]
当所述第四编码块的质量参数小于所述第二图像的目标质量参数,且所述第四编码块的质量参数与所述第二图像的目标质量参数的差值的绝对值位于第四范围时,确定与所述第四编码块对应的第二qp偏移值的绝对值等于与所述第四范围对应的qp偏移值;其中,与所述第四编码块对应的第二qp偏移值为负数;或者
[0260]
当预测的编码后所述第四编码块的质量参数等于所述第二图像的目标质量参数时,确定与第四编码块对应的第二qp偏移值为0。
[0261]
可选的,任一编码块的质量参数包括以下至少一项:
[0262]
峰值信噪比、结构相似度、多尺度结构相似度。
[0263]
图14是本技术实施例的图像编码设备1400的示意性框图。应理解,所述图像编码设备1400能够执行上述图3至图12所示实施例中由编码设备执行的各个步骤。图像编码设备1400包括:处理器1401以及耦合至处理器1401的存储器1402。存储器1402可用于存储程序代码;处理器1401可调用所述存储器中存储的程序代码,以执行上述图像编码方法。
[0264]
其中,所述处理器1401可以是为中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
[0265]
存储器1401可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是ram,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0266]
可选的,处理器1401以及存储器1402之间可通过总线1403相互连接。总线1403可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线1403可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0267]
基于以上实施例,本技术实施例还提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行以上实施例提供的方法。
[0268]
基于以上实施例,本技术实施例还提供了一种计算机可读存储介质,该计算机可
读存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行以上实施例提供的方法。
[0269]
其中,存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括ram、rom、eeprom或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。
[0270]
基于以上实施例,本技术实施例还提供了一种芯片,所述芯片用于读取存储器中存储的计算机程序,实现以上实施例提供的方法。
[0271]
基于以上实施例,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机装置实现以上实施例中各设备所涉及的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
[0272]
综上所述,本技术实施例提供了一种图像编码方法、装置及设备,在该方法中,编码设备在获取到第一图像之后,可以获取与第一图像中至少一个编码块中每个编码块分别对应的第一qp;然后,根据与每个编码块对应的第一qp,对该至少一个编码块中每个编码块分别进行编码,得到第一图像数据。编码设备可根据第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp;并根据与每个编码块对应的第二qp,对该至少一个编码块中每个编码块分别进行编码,得到第二图像数据。通过该方法,编码设备可以根据上一次实际编码的质量来调整本次编码的编码参数qp,从而可以保证编码后图像的质量。
[0273]
在本技术的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
[0274]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
[0275]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0276]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0277]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0278]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种图像编码方法,其特征在于,包括:获取第一图像,所述第一图像中包含至少一个编码块;获取与所述至少一个编码块中每个编码块分别对应的第一量化参数qp;根据与每个编码块对应的第一qp,对所述至少一个编码块中每个编码块分别进行编码,得到第一图像数据;根据所述第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp;根据与每个编码块对应的第二qp,对所述至少一个编码块中每个编码块分别进行编码,得到第二图像数据。2.如权利要求1所述的方法,其特征在于,根据所述第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二qp,包括:根据所述第一图像的目标质量参数和所述第一图像数据中的第一编码块的质量参数,确定与所述第一编码块对应的第一qp偏移值;其中,所述第一编码块为所述至少一个编码块中的任一个编码块;根据与所述第一编码块对应的第一qp和与所述第一编码块对应的第一qp偏移值,确定与所述第一编码块对应的第二qp。3.如权利要求2所述的方法,其特征在于,根据所述第一图像的目标质量参数和所述第一图像数据中第一编码块的质量参数,确定与所述第一编码块对应的第一qp偏移值,包括:当所述第一编码块的质量参数大于所述第一图像的目标质量参数,且所述第一编码块的质量参数与所述第一图像的目标质量参数的差值位于第一范围时,确定与所述第一编码块对应的第一qp偏移值等于与所述第一范围对应的qp偏移值;其中,与所述第一编码块对应的第一qp偏移值为正数;或者当所述第一编码块的质量参数小于所述第一图像的目标质量参数,且所述第一编码块的质量参数与所述第一图像的目标质量参数的差值的绝对值位于第二范围时,确定与所述第一编码块对应的第一qp偏移值的绝对值等于与所述第二范围对应的qp偏移值;其中,与所述第一编码块对应的第一qp偏移值为负数;或者当所述第一编码块的质量参数等于所述第一图像的目标质量参数时,确定与所述第一编码块对应的第一qp偏移值为0。4.如权利要求1至3任一项所述的方法,其特征在于,根据与每个编码块对应的第一qp,对所述至少一个编码块中每个编码块分别进行编码之后,所述方法还包括:比较所述第一图像数据和所述第一图像,得到所述第一图像数据中每个编码块的质量参数。5.如权利要求1至4任一项所述的方法,其特征在于,根据与每个编码块对应的第一qp,对所述至少一个编码块中每个编码块分别进行编码,得到第一图像数据,包括:根据与第二编码块对应的第一qp,对所述第二编码块进行量化处理,得到量化数据;其中,所述第二编码块为所述至少一个编码块中的任一编码块;根据与所述第二编码块对应的第一qp,对所述量化数据进行反量化和反变换处理,得到反变换后的残差数据;根据所述第二编码块的预测数据和残差数据,得到所述第二编码块的重建数据;
对所述重建数据进行滤波,得到所述第一图像数据中与所述第二编码块对应的图像数据。6.如权利要求1至5任一项所述的方法,其特征在于,根据与每个编码块对应的第二qp,对所述至少一个编码块中每个编码块分别进行编码,包括:根据第一信息以及与第三编码块对应的第二qp,对所述第三编码块进行编码;其中,所述第三编码块为所述至少一个编码块中的任一编码块;其中,所述第一信息包括以下至少一项:根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时,确定的所述第三编码块的预测模式;根据与所述第三编码块对应的第一qp对所述第三编码块进行编码时,确定的所述第三编码块的运动矢量。7.如权利要求1至6任一项所述的方法,其特征在于,在根据与每个编码块对应的第二qp,对所述至少一个编码块中每个编码块分别进行编码之后,所述方法还包括:保存第二信息;其中,所述第二信息用于表示所述第二图像数据中每个编码块的质量参数。8.如权利要求7所述的方法,其特征在于,所述第二信息为包含所述第二图像数据中每个编码块的质量参数的矩阵。9.如权利要求7或8所述的方法,其特征在于,所述第一图像为视频中的第n帧图像,其中,n为正整数;在保存第二信息之后,所述方法还包括:获取第二图像;其中,所述第二图像为所述视频中第n+1帧图像,所述第二图像中包含n个编码块,n为正整数;在所述至少一个编码块中,确定与所述第二图像中第四编码块关联的至少一个目标编码块;其中,所述第四编码块为所述n个编码块中的任一个编码块,所述第四编码块中的内容包含在所述至少一个目标编码块中;根据所述第二信息,确定所述第二图像数据中所述至少一个目标编码块的质量参数;根据所述至少一个目标编码块的质量参数,预测编码后所述第四编码块的质量参数;根据预测的编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第三qp;根据与所述第四编码块对应的第三qp,对所述第四编码块进行编码。10.如权利要求9所述的方法,其特征在于,根据预测的编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第三qp,包括:根据所述第二图像的目标质量参数和预测的编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第二qp偏移值;根据与所述第四编码块对应的第二qp偏移值,确定与所述第四编码块对应的第三qp。11.如权利要求10所述的方法,其特征在于,根据所述第二图像的目标质量参数和预测的编码后所述第四编码块的质量参数,确定与所述第四编码块对应的第二qp偏移值,包括:当所述第四编码块的质量参数大于所述第二图像的目标质量参数,且所述第四编码块的质量参数与所述第二图像的目标质量参数的差值位于第三范围时,确定与所述第四编码块对应的第二qp偏移值等于与所述第三范围对应的qp偏移值;其中,与所述第四编码块对
应的第二qp偏移值为正数;或者当所述第四编码块的质量参数小于所述第二图像的目标质量参数,且所述第四编码块的质量参数与所述第二图像的目标质量参数的差值的绝对值位于第四范围时,确定与所述第四编码块对应的第二qp偏移值的绝对值等于与所述第四范围对应的qp偏移值;其中,与所述第四编码块对应的第二qp偏移值为负数;或者当预测的编码后所述第四编码块的质量参数等于所述第二图像的目标质量参数时,确定与第四编码块对应的第二qp偏移值为0。12.如权利要求1至11任一项所述的方法,其特征在于,任一编码块的质量参数包括以下至少一项:峰值信噪比、结构相似度、多尺度结构相似度。13.一种图像编码设备,其特征在于,包括:处理器以及耦合至所述处理器的存储器,所述处理器调用存储在所述存储器中的程序代码以执行如权利要求1-12任一项所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1-12任一项所述的方法。15.一种芯片,其特征在于,所述芯片与存储器耦合,所述芯片读取所述存储器中存储的计算机程序,执行权利要求1-12任一项所述的方法。
技术总结
本申请公开了一种图像编码方法、装置及设备,用于保证编码后图像的质量。该方法包括:编码设备在获取到第一图像之后,可以获取与第一图像中至少一个编码块中每个编码块分别对应的第一QP;然后,根据与每个编码块对应的第一QP,对该至少一个编码块中每个编码块分别进行编码,得到第一图像数据。编码设备可根据第一图像数据中每个编码块的质量参数,确定与每个编码块分别对应的第二QP;并根据与每个编码块对应的第二QP,对该至少一个编码块中每个编码块分别进行编码,得到第二图像数据。通过该方法,编码设备可以根据上一次实际编码的质量来调整本次编码的编码参数QP,从而可以保证编码后图像的质量。后图像的质量。后图像的质量。
技术研发人员:陈绍林 孟琳 张怡轩
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.15
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:储能柜双向变流器用液冷装置的制作方法 下一篇:可实现碎石桩有效桩径的振冲方法与流程