一种编解码方法、装置及计算机设备与流程

文档序号:36775141发布日期:2024-01-23 11:44阅读:16来源:国知局
一种编解码方法、装置及计算机设备与流程

本技术涉及图像处理,尤其涉及一种编解码方法、装置及计算机设备。


背景技术:

1、图像压缩是指一种利用空间冗余度、视觉冗余度和统计冗余度等图像数据特性,以较少的比特有损或无损地表示原本的图像像素矩阵的技术,实现图像信息的有效传输和存储,对当前图像传输信息的种类和数据量越来越大的媒体时代起着重要作用。图像压缩分为有损压缩和无损压缩两种,有损压缩以一定程度的图像质量降低为代价实现较大的压缩比,无损压缩不会造成图像细节的损失,但压缩比通常高于有损压缩。

2、在传统的图像有损压缩算法中,很多技术被用于去除图像数据的冗余信息,如量化技术被用于消除由图像中相邻像素间的相关性引起的空间冗余度和由人眼视觉系统感知决定的视觉冗余度,熵编码技术被用于消除图像数据的统计冗余性。传统的有损图像压缩技术经过相关领域技术人员数十年的研究与优化已形成了诸如jpeg、bpg等成熟的有损图像压缩标准,但是传统图像压缩技术在编码效率的提升上也遇到了瓶颈,已无法满足多媒体应用数据日益增多的时代需求。

3、在图像压缩过程中,熵编码、熵解码是非常耗时的步骤。如何优化熵编码、熵解码的效率、如何结合人工智能(artificial intelligence,ai)压缩的特点来优化熵编码、熵解码的效率,也就变成了重要的研究问题之一。


技术实现思路

1、本技术实施例提供一种编解码方法、装置及计算机设备,用于简化熵编码、熵解码的复杂度,提升熵编码、熵解码的速度。

2、第一方面,本技术实施例提供一种编码方法,包括:将图像输入至编码网络,得到所述图像的特征图,所述特征图包括多个元素;确定所述特征图中的第一元素的边界值,所述第一元素为所述多个元素中的任一个元素;判断所述第一元素是否处于所述第一元素对应的目标范围内,所述目标范围是根据所述第一元素的边界值确定的;若所述第一元素处于所述第一元素对应的目标范围内,则对所述第一元素进行熵编码;若所述第一元素处于所述第一元素对应的目标范围外,将所述第一元素修改为所述第一元素对应的边界值,并对修改后的第一元素进行熵编码。

3、在上述方法实施例中,编码端通过编码网络得到图像的特征图;确定的特征图中每个元素的边界值,根据每个元素的边界值确定每个元素对应的目标范围;若元素取值处于其对应的目标范围内,则对该元素进行熵编码;若元素取值处于其对应的目标范围外,将该元素取值修改为该元素对应的边界值,并对修改后的元素进行熵编码。由于上述方法中针对每个元素确定其对应的边界值,有助于缩小每个元素对应的目标范围,并且边界值是元素级别的,即针对元素确定的边界值仅适用于该元素,不适用于其他元素,能够更加精准的体现每个元素的概率分布特点。由于缩小了目标范围,降低了元素在目标范围内的概率分布复杂度,从而能够降低熵编码的复杂度,提升熵编码速度。对于超出目标范围的元素,已有的熵编码优化方式中对越界元素不进行熵编码,而是直接将其取值写入码流中,相当于采用了一种特殊的定长码进行编码,需要占用较多数量的比特位;而本技术上述方法实施例中对目标范围外的元素修改其取值后仍对其进行熵编码,在信息损失不明显的情况下进行了信息压缩;此外,由于修改前的第一元素取值概率非常小,对此概率进行量化时不仅会产生较大的误差,还会降低其他原本较高概率取值的概率,而将第一元素修改为边界值后,相当于对超出边界的若干取值的概率进行打包,再进行量化时产生的量化误差较小,减少了对高概率取值的影响,从而有助于避免较小概率值在量化时产生的量化误差。

4、在一种可能的实现方式中,所述边界值包括上边界值和/或下边界值;所述将所述第一元素修改为所述第一元素对应的边界值,包括:若所述第一元素大于所述上边界值,则将所述第一元素修改为所述上边界值,或者若所述第一元素小于所述下边界值,则将所述第一元素修改为所述下边界值。在该实现方式中,可以仅设置上边界值,将第一元素仅与上边界值比较即可;也可以仅设置下边界值,将第一元素仅与下边界值比较即可;还可以设置上边界值和下边界值,则需要将第一元素分别与上下边界值进行比较,以使最终能够对目标范内的取值进行熵编码,以实现简化熵编码的复杂度、提升熵编码的速度。

5、在一种可能的实现方式中,所述确定所述特征图中的第一元素的边界值,包括:将所述特征图输入至熵估计网络,所述熵估计网络输出所述特征图中的第一元素的概率分布模型;根据所述第一元素的概率分布模型确定所述第一元素的边界值。熵估计网络能输出第一元素的概率分布模型,例如,在采用高斯分布模型时熵估计网络可以输出第一元素的均值和方差;编码端根据第一元素的概率分布模型确定第一元素的边界值,能够使得确定出的边界值尽可能过滤掉概率非常小的取值,从而避免复杂的熵编码过程。

6、在一种可能的实现方式中,所述根据所述第一元素的概率分布模型确定所述第一元素的边界值,包括:根据所述第一元素的概率分布模型的方差,确定所述第一元素的边界值。方差能够用于衡量数据离散程度,根据方差确定边界值,便于取得能够过滤掉概率非常小的取值的边界值。

7、在一种可能的实现方式中,所述边界值包括上边界值和/或下边界值;所述边界值中的上边界值为k*σ,和/或,所述边界值中的下边界值为-k*σ;其中,k为常数,σ表示所述概率分布模型的方差。

8、在一种可能的实现方式中,所述确定特征图中的第一元素的边界值,包括:将所述特征图输入至熵估计网络,所述熵估计网络输出所述第一元素的概率分布模型和所述第一元素的边界值。在该实现方式中,也可以预先对熵估计网络进行训练,以使熵估计网络既能够输出第一元素的概率分布模型,又能够输出边界值,且输出的边界值往往更符合提高熵编码性能的需求。

9、在一种可能的实现方式中,所述方法还包括:对所述第一元素进行量化;所述判断所述第一元素是否处于所述第一元素对应的目标范围内,包括:判断量化后的第一元素是否处于所述第一元素对应的目标范围内;所述对所述第一元素进行熵编码,包括:对所述量化后的第一元素进行熵编码。

10、在一种可能的实现方式中,所述对所述一元素进行熵编码,包括:确定所述第一元素在所述目标范围内的概率对所述第一元素进行熵编码。可选地,可以先根据熵估计网络输出的第一元素的概率分布模型,确定所述第一元素的概率、所述目标范围的概率,根据所述第一元素的概率与所述目标范围的概率的比值,对所述第一元素进行熵编码。其中,目标范围的概率可以由取值小于上边界的概率减去取值小于下边界的概率得到。

11、在一种可能的实现方式中,所述概率分布模型为高斯分布模型。

12、第二方面,本技术实施例提供一种编码方法,包括:将图像输入至编码网络,得到所述图像的特征图,所述特征图包括多个元素;确定所述特征图中的第一元素的边界值,所述第一元素为所述多个元素中的任一个元素;判断所述第一元素是否处于所述第一元素对应的目标范围内,所述目标范围是根据所述第一元素的边界值确定的;若所述第一元素处于所述第一元素对应的目标范围内,则对所述第一元素进行熵编码;若所述第一元素处于所述第一元素对应的目标范围外,标记所述第一元素为越界元素,对所述第一元素进行变长码编码。

13、在上述方法实施例中,编码端通过编码网络得到图像的特征图;确定的特征图中每个元素的边界值,根据每个元素的边界值确定每个元素对应的目标范围;若元素取值处于其对应的目标范围内,则对该元素进行熵编码;若元素取值处于其对应的目标范围外,则将第一元素标记为越界元素,并对第一元素进行变长码编码。由于上述方法中针对每个元素确定其对应的边界值,有助于缩小每个元素对应的目标范围,由于缩小了目标范围,降低了元素在目标范围内的概率分布复杂度,从而能够降低熵编码的复杂度,提升熵编码速度。对于越界元素,已有的熵编码优化方式中采用了定长码进行编码,需要占用较多数量的比特位;而本技术上述实施例中,对越界元素进行变长码编码,有助于提升压缩性能,尤其是对越界元素与边界的差值进行变长码编码,更加有利于缩减编码后所需比特位的数量,进一步提升压缩性能。

14、在一种可能的实现方式中,所述标记所述第一元素为越界元素,包括:将用于指示所述第一元素为越界元素的标志信息编码至码流中。所述码流包括对所述第一元素进行熵编码得到的编码信息,或者,对所述第一元素进行变长码编码得到的编码信息。此外,所述码流还可以包括对其他非越界元素进行熵编码得到的码流信息,以及对其他越界元素进行变长码编码得到的编码信息。

15、在一种可能的实现方式中,所述边界值包括上边界值和/或下边界值;所述对所述第一元素进行变长码编码,包括:若所述第一元素大于所述上边界值,确定所述第一元素与所述上边界值的第一差值;对所述第一差值进行变长码编码;或者,若所述第一元素小于所述下边界值,确定所述第一元素与所述下边界值的第二差值;对所述第二差值进行变长码编码。在该实现方式中,可以仅设置上边界值,将第一元素仅与上边界值比较即可;也可以仅设置下边界值,将第一元素仅与下边界值比较即可;还可以设置上边界值和下边界值,则需要将第一元素分别与上下边界值进行比较,从而确定第一元素与边界的差值。

16、在一种可能的实现方式中,所述确定所述特征图中的第一元素的边界值,包括:将所述特征图输入至熵估计网络,所述熵估计网络输出所述特征图中的第一元素的概率分布模型;根据所述第一元素的概率分布模型确定所述第一元素的边界值。

17、在一种可能的实现方式中,所述根据所述第一元素的概率分布模型确定所述第一元素的边界值,包括:根据所述第一元素的概率分布模型的方差,确定所述第一元素的边界值。

18、在一种可能的实现方式中,所述边界值包括上边界值和/或下边界值;所述边界值中的上边界值为k*σ,和/或,所述边界值中的下边界值为-k*σ;其中,k为常数,σ表示所述概率分布模型的方差。

19、在一种可能的实现方式中,所述确定特征图中的第一元素的边界值,包括:将所述特征图输入至熵估计网络,所述熵估计网络输出所述第一元素的概率分布模型和所述第一元素的边界值。

20、在一种可能的实现方式中,所述方法还包括:对所述第一元素进行量化;所述判断所述第一元素是否处于所述第一元素对应的目标范围内,包括:判断量化后的第一元素是否处于所述第一元素对应的目标范围内;所述对所述第一元素进行熵编码,包括:对所述量化后的第一元素进行熵编码。

21、在一种可能的实现方式中,所述对所述一元素进行熵编码,包括:确定所述第一元素在所述目标范围内的概率对所述第一元素进行熵编码。可选地,可以先根据熵估计网络输出的第一元素的概率分布模型,确定所述第一元素的概率、所述目标范围的概率,根据所述第一元素的概率与所述目标范围的概率的比值,对所述第一元素进行熵编码。其中,目标范围的概率可以由取值小于上边界的概率减去取值小于下边界的概率得到。

22、在一种可能的实现方式中,所述概率分布模型为高斯分布模型。

23、第三方面,本技术实施例提供一种解码方法,包括:获取码流,所述码流包括多个元素编码后的信息;确定所述码流中的第一元素是否为越界元素,所述第一元素为所述多个元素中的任一个元素;若所述第一元素为越界元素,对所述第一元素编码后的信息进行变长码解码,得到所述第一元素;若所述第一元素不是越界元素,对所述第一元素编码后的信息进行熵解码,得到所述第一元素。

24、解码端确定第一元素是否为越界元素,即确定第一元素是否位于第一元素对应的目标范围内,若位于目标范围内,则第一元素不是越界元素,若位于目标范围之外,则第一元素为越界元素。

25、在一种可能的实现方式中,所述确定所述码流中的第一元素是否为越界元素,包括:若所述码流中包括所述第一元素越界标志信息,则确定所述第一元素为越界元素。

26、在一种可能的实现方式中,所述对所述第一元素编码后的信息进行变长码解码,得到第一元素,包括:确定所述第一元素的边界值;对所述第一元素编码后的信息进行变长码解码得到差值,所述差值为所述第一元素与所述边界值中上边界值的差值,或者为所述第一元素与所述边界值中下边界值的差值;根据所述边界值和所述差值确定所述第一元素。

27、在一种可能的实现方式中,所述确定所述第一元素的边界值,包括:确定所述第一元素的概率分布模型;根据所述第一元素的概率分布模型确定所述第一元素的边界值。

28、在一种可能的实现方式中,所述根据所述第一元素的概率分布模型确定所述第一元素的边界值,包括:根据所述第一元素的概率分布模型的方差,确定所述第一元素的边界值。

29、在一种可能的实现方式中,所述边界值包括上边界值和/或下边界值;所述边界值中的上边界值为k*σ,和/或,所述边界值中的下边界值为-k*σ;其中,k为常数,σ表示所述概率分布模型的方差。

30、在一种可能的实现方式中,所述确定所述第一元素的边界值,包括:将所述码流输入至熵估计网络,所述熵估计网络输出所述第一元素的边界值。

31、第四方面,本技术实施例提供一种编码装置,所述装置包括执行上述第一方面以及第一方面的任意一种可能实现方式的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。

32、示例性的,该编码装置可以包括:编码网络模块,用于根据输入的图像输出所述图像的特征图,所述特征图包括多个元素;确定模块,用于确定所述特征图中的第一元素的边界值,所述第一元素为所述多个元素中的任一个元素;判断模块,用于判断所述第一元素是否处于所述第一元素对应的目标范围内,所述目标范围是根据所述第一元素的边界值确定的;编码模块,用于当所述第一元素处于所述第一元素对应的目标范围内时,则对所述第一元素进行熵编码,当所述第一元素处于所述第一元素对应的目标范围外时,将所述第一元素修改为所述第一元素对应的边界值,并对修改后的第一元素进行熵编码。

33、第五方面,本技术实施例提供一种编码装置,所述装置包括执行上述第二方面以及第二方面的任意一种可能实现方式的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。

34、示例性的,该编码装置可以包括:编码网络模块,用于根据输入的图像输出所述图像的特征图,所述特征图包括多个元素;确定边界模块,用于确定所述特征图中的第一元素的边界值,所述第一元素为所述多个元素中的任一个元素;判断模块,用于判断所述第一元素是否处于所述第一元素对应的目标范围内,所述目标范围是根据所述第一元素的边界值确定的;熵编码模块,用于当所述第一元素处于所述第一元素对应的目标范围内时,则对所述第一元素进行熵编码,当所述第一元素处于所述第一元素对应的目标范围外时,标记所述第一元素为越界元素,对所述第一元素进行变长码编码。

35、第六方面,本技术实施例提供一种解码装置,所述装置包括执行上述第三方面以及第三方面的任意一种可能实现方式的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。

36、示例性的,该解码装置可以包括:获取模块,用于获取码流,所述码流包括多个元素编码后的信息;确定模块,用于确定所述码流中的第一元素是否为越界元素,所述第一元素为所述多个元素中的任一个元素;解码模块,用于当所述第一元素为越界元素时,对所述第一元素编码后的信息进行变长码解码,得到所述第一元素,当所述第一元素不是越界元素时,对所述第一元素编码后的信息进行熵解码,得到所述第一元素。

37、第七方面,本技术实施例提供一种编码器,所述编码器包括处理电路,用于执行如第一方面、第二方面及其任一实现方式所述的编码方法。

38、第八方面,本技术实施例提供一种解码器,所述解码器包括处理电路,用于执行如第三方面及其任一实现方式所述的解码方法。

39、第九方面,本技术实施例提供一种编码器,包括:一个或多个处理器;计算机可读存储介质,耦合到所述一个或多个处理器,所述计算机可读存储介质存储有程序,其中,所述程序在由所述一个或多个处理器执行时,使得所述编码器执行如第一方面、第二方面及其任一实现方式所述的编码方法。

40、第十方面,一种解码器,包括:一个或多个处理器;计算机可读存储介质,耦合到所述一个或多个处理器,所述计算机可读存储介质存储有程序,其中,所述程序在由所述一个或多个处理器执行时,使得所述解码器执行如第三方面及其任一实现方式所述的解码方法。

41、第十一方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面、第二方面、第三方面及其任一实现方式所述的方法。

42、第十二方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得第一方面、第二方面、第三方面及其任一实现方式所述的方法被执行。

43、第十三方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有比特流,所述比特流根据第一方面或第二方面以及任一种可能的实现方式中的编码方法生成。

44、第十四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有比特流,所述比特流包括解码器可执行的程序指令,所述程序指令使得解码器执行第三方面以及第三方面的任一种可能的实现方式中的解码方法。

45、第十五方面,本技术实施例提供一种译码系统,所述译码系统包括至少一个存储器和解码器,所述至少一个存储器用于存储比特流,所述解码器用于执行第三方面以及第三方面的任一种可能的实现方式中的解码方法。

46、第十六方面,本技术实施例提供一种存储比特流的方法,该方法包括接收或生成比特流,将所述比特流存储到存储介质中。

47、在一种可能的实现方式中,该方法还包括:对所述比特流进行格式转换处理,得到格式转换后的比特流,并将所述格式转换后的比特流存储到存储介质中。

48、第十七方面,本技术实施例提供一种传输比特流的方法,该方法包括接收或生成比特流,将所述比特流传输到云端服务器,或将所述比特流传输到移动终端。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1