本技术涉及图像处理,尤其涉及一种编解码方法及装置。
背景技术:
1、图像压缩是指一种利用空间冗余度、视觉冗余度和统计冗余度等图像数据特性,以较少的比特有损或无损地表示原本的图像像素矩阵的技术,实现图像信息的有效传输和存储,对当前图像传输信息的种类和数据量越来越大的媒体时代起着重要作用。
2、由于人工智能(artificial intelligence,ai)在图像识别、目标检测等诸多领域中的表现优于传统图像算法,故深度学习也被应用于实现图像压缩领域。且ai图像压缩算法在多尺度结构相似性指数(multi-scale structural similarity,ms-ssim)和峰值信噪比(peak signal to noise ratio,psnr)这两项图像压缩效果评价指标上,均优于传统图像压缩算法(例如高级视频编码(advanced video coding,avc)、高效率视频编码(highefficiency video coding,hevc等)。
3、ai图像压缩算法中一种常见的编码技术为残差编码。目前的残差编码主要用于在视频编码过程中对预测误差进行编码。在视频编码过程中,编码端通常会使用运动估计(motion estimation)和运动补偿(motion compensation)技术来对当前帧进行预测,得到当前帧的预测值;然后编码端采用残差编码技术对当前帧的预测值与实际值之间的差异(即预测误差)进行编码,得到码流。进而编码端不需要对当前帧进行编码,可以有效减少码流中的数据冗余,从而降低传输成本。
4、然而,对于当前帧中运动不规律的图像区域或被遮挡的图像区域,会导致当前帧的预测值不准确或者无法得到当前帧的预测值,从而导致较大的编码误差,使得压缩性能较低。
技术实现思路
1、本技术实施例提供一种编解码方法及装置,用以减少编码过程中因预测内容准确度较低所导致的编码误差,从而有效提升压缩性能。
2、第一方面,本技术实施例提供一种解码方法,该方法可以应用于解码端或解码装置,所述方法包括:获取包括多个图像帧的编码数据的码流;对该码流解码,得到当前帧的运动信息;当前帧是多个图像帧中的任一个图像帧;根据运动信息,得到当前帧的预测值;对码流解码,得到第一特征信息;根据第一特征信息,得到当前帧的残差和预测值的置信度;根据预测值、当前帧的残差以及预测值的置信度,得到当前帧的重建帧。
3、应当理解,当前帧的运动信息为当前帧与参考帧之间的运动信息,参考帧为解码顺序在当前帧之前的任一图像帧的重建帧。根据运动信息得到当前帧的预测值时要用到当前帧的参考帧。换句话说,在解码端,从码流中解码出当前帧的运动信息,并将之前已经解码的图像帧的重建帧作为当前帧的参考帧,基于该当前帧的参考帧和解码出的运动信息获取当前帧的预测信息。应当理解,当前帧的预测值包含当前帧中多个特征点对应的多个预测值。
4、在本技术实施例中,解码端包括熵解码模块、解码网络、运动补偿网络、处理模块,上述方法应用于解码端时,熵解码模块对该码流解码,可以得到当前帧的运动信息;运动补偿网络根据运动信息,可以得到当前帧的预测值;以及,熵解码模块对码流解码,可以得到第一特征信息;解码网络根据第一特征信息,得到当前帧的残差和预测值的置信度;以及,处理模块根据预测值、当前帧的残差以及预测值的置信度,得到当前帧的重建帧。
5、在本技术实施例中,预测值的置信度用于表征预测值的可信程度。因此在上述方法中,通过为当前帧的预测值配置相应的置信度,使得解码端可以结合预测值、当前帧的残差以及预测值的置信度,来确定当前帧的重建帧。如此,在确定重建帧的过程中,考虑了预测值的置信度,可以降低编码过程中因预测内容(即预测值)准确度较低所导致的编码误差,从而有效提升压缩性能。
6、例如,在预测值预测不准确的情况下,通过将预测值的置信度设置为0到1之间的数值,根据预测值的置信度,确定预测值在重建帧的过程中的使用程度,从而可以减少因预测值准确度较低所导致的编码误差。又如,在无法得到预测值的情况下,通过将预测值的置信度设置为0,可以不使用预测值,即不对当前帧的残差进行压缩,而对当前帧的原图进行压缩,从而可以消除因预测值准确度较低所导致的编码误差,并且原图压缩相对于残差压缩,可以有效减少比特的消耗。
7、其中,当前帧的预测值可以包括预测特征。应当理解,预测特征可以为特征域的预测结果或图像域的预测结果。其中,“特征域”可以理解为图像的特征维度,相应的,“特征域的预测结果”为在图像的特征维度的预测值,即该预测值包括当前帧中各个特征点对应的预测特征;“图像域”可以理解为图像的像素维度,相应的,“特征域的预测结果”为在图像的像素维度的预测值,即该预测值包括当前帧中的各个像素对应的预测值。
8、在一种可能的实现方式中,所述预测值为预测特征时,预测值的置信度包括置信度矩阵,置信度矩阵中的一个元素用于表征预测特征中的一个特征点的置信度,置信度矩阵中的元素与预测特征中的特征点一一对应;相应的,根据预测值、当前帧的残差和预测值的置信度,得到当前帧的重建帧,包括:将预测特征和置信度矩阵相乘,得到第一矩阵;将第一矩阵与当前帧的残差相加,得到当前帧的重建特征;将当前帧的重建特征输入至重建网络,得到当前帧的重建帧。
9、本技术实施例中,“置信度矩阵中的一个元素用于表征预测特征中的一个特征点的置信度”可以理解为:置信度矩阵中的一个元素用于表征预测特征中的一个特征点的可信程度,相应的,“将预测特征和置信度矩阵相乘”可以理解为对预测特征中的每个特征点乘上了一个权重系数(即该特征点的置信度)。如此,在该实现方式中,为预测特征中的每个特征点设置相应的置信度,可以减少部分特征点预测准确度较低所导致的编码误差,从而使得最终得到的当前帧的重建帧更加准确。
10、在一种可能的实现方式中,上述预测值为预测特征时,预测值的置信度包括置信度方差矩阵;相应的,根据预测值、当前帧的残差和预测值的置信度,得到当前帧的重建帧,包括:根据置信度方差矩阵,计算预测特征中每个特征点的模糊核;基于每个特征点的模糊核,对每个特征点进行模糊处理,得到模糊处理后得预测特征;将模糊处理后的预测特征与当前帧的残差相加,得到当前帧的重建特征;将当前帧的重建特征输入至重建网络,得到当前帧的重建帧。
11、其中,“基于每个特征点的模糊核,对每个特征点进行模糊处理”可以理解为对预测特征所对应的图像进行滤波处理,以消除该图像中的噪声,具体操作可以为对预测特征与其周围差异较大的特征点的像素值进行调整,以使该特征点的像素值与其周围的特征点的像素值近似;模糊核是在进行滤波处理过程中的一个卷积核,可以通过一个矩阵来表示,该每个特征点的模糊核与预测特征中每个特征点对应的矩阵进行矩阵卷积,可以使得预测特征所对应的图像变模糊处理。
12、在该实现方式中,通过为预测特征中的每个特征点设置置信度方差,并根据置信度方差,计算预测特征中每个特征点的模糊核;进而可以基于每个特征点的模糊核,对每个特征点进行模糊处理,得到模糊处理后的预测特征;基于模糊处理后的预测特征,来确定当前帧的重建帧。如此,可以消除预测特征所受的噪声影响,进而可以进一步减少部分特征点预测准确度较低所导致的编码误差,从而使得最终得到的当前帧的重建帧更加准确。
13、在一种可能的实现方式中,所述预测值为预测特征时,预测值的置信度包括第一置信度矩阵和第二置信度矩阵,第一置信度矩阵中的一个元素用于表征预测特征中的一个特征点的置信度,第二置信度矩阵中的一个元素用于表征当前帧的参考帧的特征中的一个特征点的置信度;所述参考帧为解码顺序在所述当前帧之前的任一图像帧的重建帧;相应的,根据预测特征、当前帧的残差和预测特征的置信度,得到当前帧的重建帧,包括:将第一置信度矩阵与预测特征相乘,得到第一矩阵;将第二置信度矩阵与参考帧的特征相乘,得到第二矩阵;将第一矩阵、第二矩阵、以及当前帧的残差相加,得到当前帧的重建特征;将当前帧的重建特征输入至重建网络,得到当前帧的重建帧。
14、其中,“将第一置信度矩阵与预测特征相乘,得到第一矩阵”可以理解为对预测特征中的每个特征点乘上了一个权重系数(即置信度),“将第二置信度矩阵与参考帧的特征相乘,得到第二矩阵”可以理解为对参考帧的特征中的每个特征点乘上了一个权重系数(即置信度)。
15、在该实现方式中,通过为当前帧的预测特征设置第一置信度矩阵,以及为参考帧的特征设置第二置信度矩阵,使得解码端可以结合第一置信度矩阵和第二置信度矩阵,来确定当前帧的重建帧,从而可以消除参考帧准确度较低或预测特征准确度较低所导致的编码误差,使得最终得到的当前帧的重建特征更为准确。
16、第二方面,本技术实施例还提供了一种编码方法,该方法可以应用于编码端或编码装置,该方法包括:获取多个图像帧;确定当前帧的运动信息;其中,所述当前帧为所述多个图像帧中的任一图像帧;将所述运动信息编码至码流;根据所述运动信息,确定所述当前帧的预测值;根据当前帧的预测值和当前帧,得到第一特征信息,所述第一特征信息与所述当前帧的残差和所述预测值的置信度有关;将第一特征信息编入所述码流。
17、在本技术实施例中,编码端包括运动估计网络、熵编码模块、运动补偿网络、和编码网络,上述方法应用于编码端时,运动估计网络可以确定当前帧的运动信息;熵编码模块将运动信息编码至码流;以及,运动补偿网络根据运动信息,可以得到当前帧的预测值;编码网络可以根据当前帧的预测值和当前帧,得到第一特征信息;熵编码模块可以将第一特征信息编入该码流。
18、在一种可能的实现方式中,所述方法还包括:根据所述第一特征信息,得到所述当前帧的残差和所述预测值的置信度;根据所述预测值、所述当前帧的残差以及所述预测值的置信度,得到所述当前帧的重建帧。具体的,编码端还可以包括重建网络模块,编码器根据所述预测值、所述当前帧的残差以及所述预测值的置信度,可以得到当前帧的重建特征之后,由重建网络模块将所述当前帧的重建特征输入至重建网络,得到所述当前帧的重建帧。
19、在一种可能的实现方式中,所述预测值为预测特征时,所述预测值的置信度包括置信度矩阵,所述置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述置信度矩阵中的元素与所述预测特征中的特征点一一对应;根据所述预测值、所述当前帧的残差和所述预测值的置信度,得到所述当前帧的重建帧,包括:将所述预测特征和所述置信度矩阵相乘,得到第一矩阵;将所述第一矩阵与所述当前帧的残差相加,得到所述当前帧的重建特征;将所述当前帧的重建特征输入至重建网络,得到所述当前帧的重建帧。
20、在一种可能的实现方式中,所述预测值为预测特征时,所述预测值的置信度包括置信度方差矩阵;根据所述预测值、所述当前帧的残差和所述预测值的置信度,得到所述当前帧的重建帧,包括:根据所述置信度方差矩阵,计算所述预测特征中每个特征点的模糊核;基于所述每个特征点的模糊核,对所述每个特征点进行模糊处理,得到模糊处理后得预测特征;将所述模糊处理后的预测特征与所述当前帧的残差相加,得到所述当前帧的重建特征;将所述当前帧的重建特征输入至重建网络,得到所述当前帧的重建帧。
21、在一种可能的实现方式中,所述预测值为预测特征时,所述预测值的置信度包括第一置信度矩阵和第二置信度矩阵,所述第一置信度矩阵中的一个元素用于表征所述预测值中的一个特征点的置信度,所述第二置信度矩阵中的一个元素用于表征当前帧的参考帧的特征中的一个特征点的置信度;所述参考帧为解码顺序在所述当前帧之前的任一图像帧的重建帧;根据所述预测值、所述当前帧的残差和所述预测值的置信度,得到所述当前帧的重建帧,包括:将所述第一置信度矩阵与所述预测特征相乘,得到第一矩阵;将所述第二置信度矩阵与所述参考帧的特征相乘,得到第二矩阵;将所述第一矩阵、所述第二矩阵、以及所述当前帧的残差相加,得到所述当前帧的重建特征;将所述当前帧的重建特征输入至重建网络,得到所述当前帧的重建帧。
22、第三方面,本技术实施例提供了一种解码装置,包括:所述装置包括执行上述第一方面以及第一方面的任意一种可能实现方式的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
23、示例性的,该解码装置可以包括:
24、获取模块,用于获取包括多个图像帧的编码数据的码流;
25、熵解码模块,用于对所述码流解码,得到当前帧的运动信息;所述当前帧是所述多个图像帧中的任一个图像帧;
26、运动补偿网络,用于根据所述运动信息,得到所述当前帧的预测值;
27、所述熵解码模块,还用于对所述码流解码,得到第一特征信息;
28、解码网络,用于根据所述第一特征信息,得到所述当前帧的残差和所述预测值的置信度;
29、处理模块,用于根据所述预测值、所述当前帧的残差以及所述预测值的置信度,得到所述当前帧的重建帧。
30、第四方面,本技术实施例提供了一种编码装置,所述装置包括执行上述第二方面以及第二方面的任意一种可能实现方式的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
31、示例性的,该编码装置可以包括:
32、获取模块,用于获取多个图像帧;
33、运动估计网络,用于确定当前帧的运动信息;其中,所述当前帧为所述多个图像帧中的任一图像帧;
34、熵编码模块,用于将所述运动信息编码至码流;
35、运动补偿网络,用于根据所述运动信息,确定所述当前帧的预测值;
36、编码网络,用于根据所述当前帧和所述预测值,得到第一特征信息,所述第一特征信息与所述当前帧的残差和所述预测值的置信度有关;
37、所述熵编码模块,还用于将所述第一特征信息编入所述码流。
38、第五方面,本技术实施例提供一种码流,所述码流包括当前帧的运动信息和第一特征信息;其中,所述运动信息用于确定当前帧的预测值,所述第一特征信息与所述当前帧的残差和所述预测值的置信度有关。
39、第六方面,本技术实施例提供一种解码器,所述解码器包括处理电路,用于执行如第一方面及其任一实现方式所述的解码方法。
40、第七方面,本技术实施例提供一种编码器,所述编码器包括处理电路,用于执行如第二方面及其任一实现方式所述的编码方法。
41、第八方面,一种解码器,包括:一个或多个处理器;计算机可读存储介质,耦合到所述一个或多个处理器,所述计算机可读存储介质存储有程序,其中,所述程序在由所述一个或多个处理器执行时,使得所述解码器执行如第一方面及其任一实现方式所述的解码方法。
42、第九方面,本技术实施例提供一种编码器,包括:一个或多个处理器;计算机可读存储介质,耦合到所述一个或多个处理器,所述计算机可读存储介质存储有程序,其中,所述程序在由所述一个或多个处理器执行时,使得所述编码器执行如第二方面及其任一实现方式所述的编码方法。
43、第十方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面及其任一实现方式所述的方法,或者执行第二方面及其任一实现方式所述的方法。
44、第十一方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得第一方面、第二方面及其任一实现方式所述的方法被执行。
45、第十二方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有包含程序代码的码流,当所述程序代码被一个或多个处理器执行时,使得解码器执行第一方面以及第一方面的任一种可能的实现方式中所述的解码方法。
46、第十三方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有码流,所述码流根据第二方面以及第二方面中任一种可能的实现方式中所述的编码方法生成。
47、第十四方面,本技术实施例提供一种译码系统,所述译码系统包括至少一个存储器和解码器,所述至少一个存储器用于存储码流,所述解码器用于执行第一方面以及第一方面的任一种可能的实现方式中的解码方法。
48、第十五方面,本技术实施例提供一种存储码流的方法,该方法包括接收或生成码流,将所述码流存储到存储介质中。
49、在一种可能的实现方式中,该方法还包括:对所述码流进行格式转换处理,得到格式转换后的码流,并将所述格式转换后的码流存储到存储介质中。
50、第十六方面,本技术实施例提供一种传输码流的方法,该方法包括接收或生成码流,将所述码流传输到云端服务器,或将所述码流传输到移动终端。
1.一种解码方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度矩阵,所述置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述置信度矩阵中的元素与所述预测特征中的特征点一一对应;
3.根据权利要求1所述的方法,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度方差矩阵;
4.根据权利要求1所述的方法,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括第一置信度矩阵和第二置信度矩阵,所述第一置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述第二置信度矩阵中的一个元素用于表征所述当前帧的参考帧的特征中的一个特征点的置信度;所述参考帧为解码顺序在所述当前帧之前的任一图像帧的重建帧;
5.一种编码方法,其特征在于,所述方法包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度矩阵,所述置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述置信度矩阵中的元素与所述预测特征中的特征点一一对应;
8.根据权利要求6所述的方法,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度方差矩阵;
9.根据权利要求6所述的方法,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括第一置信度矩阵和第二置信度矩阵,所述第一置信度矩阵中的一个元素用于表征所述预测值中的一个特征点的置信度,所述第二置信度矩阵中的一个元素用于表征所述当前帧的参考帧的特征中的一个特征点的置信度;所述参考帧为解码顺序在所述当前帧之前的任一图像帧的重建帧;
10.一种解码装置,其特征在于,所述装置包括:
11.根据权利要求10所述的装置,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度矩阵,所述置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述置信度矩阵中的元素与所述预测特征中的特征点一一对应;
12.根据权利要求10所述的装置,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度方差矩阵;
13.根据权利要求10所述的装置,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括第一置信度矩阵和第二置信度矩阵,所述第一置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述第二置信度矩阵中的一个元素用于表征所述当前帧的参考帧的特征中的一个特征点的置信度;所述参考帧为解码顺序在所述当前帧之前的任一图像帧的重建帧;
14.一种编码装置,其特征在于,所述装置包括:
15.根据权利要求14所述的装置,其特征在于,所述装置还包括解码网络和处理模块;
16.根据权利要求15所述的装置,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度矩阵,所述置信度矩阵中的一个元素用于表征所述预测特征中的一个特征点的置信度,所述置信度矩阵中的元素与所述预测特征中的特征点一一对应;
17.根据权利要求15所述的装置,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括置信度方差矩阵;
18.根据权利要求15所述的装置,其特征在于,所述预测值为预测特征时,所述预测值的置信度包括第一置信度矩阵和第二置信度矩阵,所述第一置信度矩阵中的一个元素用于表征所述预测值中的一个特征点的置信度,所述第二置信度矩阵中的一个元素用于表征所述当前帧的参考帧的特征中的一个特征点的置信度;所述参考帧为解码顺序在所述当前帧之前的任一图像帧的重建帧;
19.一种码流,其特征在于,所述码流包括当前帧的运动信息和第一特征信息;其中,所述运动信息用于确定所述当前帧的预测值,所述第一特征信息与所述当前帧的残差和所述预测值的置信度有关。
20.一种解码器,其特征在于,包括:
21.一种编码器,其特征在于,包括:
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-4或权利要求5-9中任一项所述的方法。
23.一种计算机可读存储介质,其特征在于,所述存储介质中存储有码流,所述码流是根据权利要求5至9任一项所述的方法生成的。
24.一种计算机可读存储介质,其特征在于,存储有包含程序代码的码流,当所述程序代码被一个或多个处理器执行时,使得解码器执行如权利要求1至4任一项所述的方法。
25.一种计算机程序产品,其特征在于,包括程序代码,当所述程序代码在计算机或处理器上执行时,用于执行如权利要求1至4,或权利要求5至9任一项所述的方法。