一种图像编解码方法及装置与流程

文档序号:34077244发布日期:2023-05-06 22:31阅读:25来源:国知局
一种图像编解码方法及装置与流程

本技术实施例涉及视频编解码领域,尤其涉及一种图像编解码方法及装置。


背景技术:

1、视频编码技术也称为视频压缩技术,视频压缩技术用于降低视频信号的数据带宽。其中,视频是连续的图像序列,由连续的图像帧构成,一帧图像即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,人眼可见的就是连续的视频。对视频进行编解码即对视频中的每一帧图像进行编解码。以一帧图像为例,在编码端,图像编码器对图像编码,得到图像对应的码流并传输码流至解码端;在解码端,图像解码器解析码流,从而重建图像。

2、在图像编解码过程中,为了提高压缩效率,常见的视频压缩技术都采用了变长编码,一个视频序列经过压缩编码之后所得到的码流是变速率的,不适合实时地在固定码率的信道中传输。因此,通常将编码器产生的变码率数据先输出到一定存储空间的缓冲器,然后再从缓冲器以固定码率输出。应理解,缓冲器的存储空间的大小是一定的,若输入至缓冲器的码流数据过大,导致需要缓冲器暂时存储的数据超出其存储空间的大小,则会出现码流“上溢”的情况,从而导致后续的图像信息丢失。此外,若输入至缓冲器的码流数据过小,导致缓冲器暂时存储的数据“不足”,无法满足缓冲器的固定输出码率,则会出现码流“下溢”的情况。

3、因此,如何避免图像编解码过程中的码流“上溢”或“下溢”的情况出现,是亟待解决的问题。


技术实现思路

1、本技术实施例提供一种图像编解码方法及装置,可以用于避免码流溢出。

2、为达到上述目的,本技术实施例采用如下技术方案:

3、第一方面,本技术实施例提供一种图像编码方法,该方法由编码端执行,该方法包括:获取待编码块的最大码长,该最大码长为码流缓冲器缓存待编码块的经编码码流时,允许缓存的最大码流长度;基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度;在第一码长大于或等于最大码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长小于或等于最大码长。

4、基于上述图像编码方法,可以首先对待编码块进行预编码,基于预编码得到的码流长度与待编码块允许占用的最大码长对比,并根据对比结果,确定是否会出现码流上溢的情况。进而,在确定会出现码流上溢的情况时,采用回退模式对待编码块进行编码,以避免待编码块的图像信息丢失。

5、在一种可能的实现方式中,上述最大码长为最大码长为码流缓冲器中可容纳的码流的长度与存储空间在单位时间内传输的码流的长度之和。其中,该存储空间即为码流缓冲器的存储空间。

6、在另一种可能的实现方式中,待编码块可以包括第一色度分量、第二色度分量以及亮度分量,则上述在第一码长大于或等于最大码长的情况下,采用回退模式对待编码块进行编码,包括:在第一码长大于或等于最大码长的情况下,根据最大码长,按照预设比值确定第一色度最大码长、第二色度最大码长以及亮度最大码长,其中,第一色度最大码长、第二色度最大码长与第三色度最大码长之和为最大码长或存储空间在单位时间内流出的码长;根据第一色度最大码长、第二色度最大码长及亮度最大码长中的一个或多个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码。

7、在又一种可能的实现方式中,上述根据第一色度最大码长、第一色度最大码长及亮度最大码长中的一个或多个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码,包括:根据第一色度最大码长、第二色度最大码长及亮度最大码长中的任一个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码;或者,根据第一色度最大码长或第二色度最大码长,确定第一色度分量和第二色度分量是否采用回退模式进行编码;以及根据亮度最大码长确定亮度分量是否采用回退模式进行编码;或者,根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码,以及,根据亮度最大码长确定亮度分量是否采用回退模式进行编码。

8、在又一种可能的实现方式中,上述根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,包括:基于所述第一模式对所述第一色度分量进行预编码,得到所述第一色度分量的第一色度码长;在所述第一色度码长大于或等于所述第一色度最大码长的情况下,确定采用所述回退模式对所述第一色度码长进行编码。

9、在又一种可能的实现方式中,第一色度分量的码长、第二色度分量的码长与亮度分量的码长之和为待编码块的码长;亮度分量的码长大于第一色度分量的码长或第二色度分量的码长。

10、可选的,上述预设比值为1:1:1、2:1:1或者4:1:1。

11、在又一种可能的实现方式中,上述采用回退模式对待编码块进行编码,包括:获取目标像素深度,目标像素深度用于指示在目标压缩率下编码待编码块的每个像素点时所需的码长;根据目标像素深度,确定待编码块的目标码长,目标码长为基于回退模式编码待编码块得到的码流长度,目标码长小于或等于最大码长;基于目标码长,采用固定码长的编码方式对待编码块进行编码。

12、在又一种可能的实现方式中,上述基于目标码长,采用固定码长的编码方式对待编码块进行编码,包括:将待编码块划分为多个待编码子块;基于目标码长和多个待编码子块的数量,确定第一固定码长;基于第一固定码长,采用固定码长的编码方式编码多个待编码子块;其中,多个待编码子块中的每个待编码子块编码得到的码流长度为第一固定码长。

13、在又一种可能的实现方式中,上述将待编码块划分为多个待编码子块包括:以预设大小将待编码块划分为多个待编码子块。

14、在又一种可能的实现方式中,上述基于目标码长,采用固定码长的编码方式对待编码块进行编码,包括:根据目标码长和第一固定码长,将待编码块划分为多个待编码子块;其中,第一固定码长为预设长度的码长;基于第一固定码长,采用固定码长的编码方式编码多个待编码子块;其中,多个待编码子块中的每个待编码子块编码得到的码流长度为第一固定码长。

15、在又一种可能的实现方式中,对于多个待编码子块中的任一待编码子块,上述基于第一固定码长,采用固定码长的编码方式编码多个待编码子块,包括:确定任一待编码子块的残差值;基于第一固定码长,采用固定码长的编码方式编码任一待编码子块的残差块。

16、在又一种可能的实现方式中,对于多个待编码子块中的任一待编码子块,上述基于第一固定码长,采用固定码长的编码方式编码多个待编码子块,包括:基于第一固定码长,采用固定码长的编码方式对任一待编码子块的图像位宽的高位值进行编码,图像位宽的高位值用于指示图像位宽对应的二进制数的前n位的值,n为正整数;或者,基于第一固定码长,采用固定码长的编码方式对图像位宽的低位值进行编码,图像位宽的低位值用于指示图像位宽对应的二进制数的后n位的值,n为正整数,其中,n为上述第一固定码长。

17、第二方面,本技术实施例提供一种图像编码方法,该方法由解码端执行,该方法包括:基于待解码块的码流,确定待解码块对应的图像块是否采用回退模式,其中,图像块待解码块的码长小于或等于待解码块的最大码长,最大码长为码流缓冲器中允许缓存的最大码流长度;在待解码块对应的图像块采用回退模式时,获取第一固定码长,第一固定码长为一个待解码子块的码长,待解码块中包括一个或多个待解码子块;基于第一固定码长对码流进行解析,以解码所述待解码块。

18、在一种可能的实现方式中,上述最大码长为码流缓冲器中可容纳的码流的长度与码流缓冲器在单位时间内传输的码流的长度之和。

19、在另一种可能的实现方式中,上述待解码块包括一个或多个分量,解码端分别确定一个或多个分量是否采用回退模式。

20、在又一种可能的实现方式中,上述待解码块包括第一色度分量、第二色度分量以及亮度分量,基于待解码块的码流,确定待解码块对应的图像块在编码时是否采用回退模式,包括:解析第一色度分量、第二色度分量或者亮度分量中任一分量的码流,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式;或者,解析第一色度分量或第二色度分量的码流,确定第一色度分量和第二色度分量是否采用回退模式;或者,解析第一色度分量、第二色度分量以及亮度分量的码流,分别确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式。

21、在又一种可能的实现方式中,待解码块的第一色度分量的码长、第二色度分量的码长与亮度分量的码长之和为待解码块的码长;亮度分量的码长大于第一色度分量的码长或第二色度分量的码长。

22、在又一种可能的实现方式中,上述第一固定码长为预设码长值或者所述待解码块的目标像素深度,所述目标像素深度用于指示在目标压缩率下解码所述待解码块的每个像素点时所需的码长。

23、在又一种可能的实现方式中,上述基于第一固定码长对码流进行解析,以解码待解码块,包括:根据待解码块的码长和第一固定码长,将待解码块划分为多个待解码子块;基于第一固定码长对待解码块的每个待解码子块的码流进行解析,以解码待解码块。

24、在又一种可能的实现方式中,上述获取第一固定码长,包括:将待解码块划分为多个待解码子块;基于待解码块的码长和多个待解码子块的数量,确定第一固定码长。

25、在又一种可能的实现方式中,上述将待解码块划分为多个待解码子块,包括:以预设大小将待解码块划分为多个待解码子块。

26、在又一种可能的实现方式中,上述基于第一固定码长对各个待解码子块的码流进行解析,以解码待解码块,包括:基于第一固定码长对待解码块的每个待解码子块的码流进行解析,得到每个待解码子块对应的图像位宽的高位值,图像位宽的高位值用于指示图像位宽对应的二进制数的前n位值,n为正整数;根据每个待解码子块的预测值的低位值和每个待解码子对应的图像位宽的高位值,重建每个待解码子块,以得到每个待解码子块的重建块;预测值的低位值用于指示预测值对应的二进制数的后m位数值,m为正整数;其中,n与m之和为待解码子块的图像位宽,n为第一固定码长。

27、在又一种可能的实现方式中,基于第一固定码长对所码流进行解析,以解码待解码块包括:基于第一固定码长对待解码块的每个待解码子块的码流进行解析,得到每个待解码子块对应的图像位宽的低位值,图像位宽的低位值用于指示图像位宽对应的二进制数的后n位值,n为正整数;根据每个待解码子块的预测值的高位值和每个待解码子对应的图像位宽的低位值,重建每个待解码子块,以得到每个待解码子块的重建块;预测值的高位值用于指示预测值对应的二进制数的前m位数值,m为正整数;其中,n与m之和为待解码子块的图像位宽,n为第一固定码长。

28、在又一种可能的实现方式中,基于第一固定码长对所码流进行解析,以解码待解码块包括:基于第一固定码长对待解码块的每个待解码子块的码流进行解析,得到每个待解码子块的残差值;根据每个待解码子块的预测值和残差值,对每个待解码子块进行重建,以得到每个待解码子块的重建块。

29、在又一种可能的实现方式中,上述方法还包括:在待解码块的码流中用于指示预测模式的码字为第一码字,且待解码块对应的图像块未采用回退模式时,基于原始值模式重建待解码块的图像块,其中,第一码字为用于指示回退模式或原始值模式。

30、第三方面,本技术实施例提供一种图像编码方法,该方法由编码端执行,该方法包括:获取待编码块的最小码长,最小码长为码流缓冲器中允许缓存的最小码流长度;基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度;在第一码长小于或等于最小码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长大于或等于最小码长。

31、可以理解,采用回退模式对待解码块进行解码,可以避免出现码流上溢的情况。进而避免待解码块的的图像信息丢失。

32、在一种可能的实现方式中,上述存储空间中已存储的码流长度与存储空间在单位时间内输出的码长之间的差值与最小码长之和,大于或等于存储空间在单位时间内输出的码长。

33、第四方面,本技术实施例提供一种图像解码方法,该方法应用于解码端,该方法包括:基于待解码块的码流,确定待解码块对应的图像块在编码时是否采用回退模式,其中,图像块基于回退模式编码时得到的码长大于或等于待解码块的最小码长,最小码长为码流缓冲器中允许缓存的最小码流长度;在待解码块对应的图像块在编码时采用回退模式时,基于码流获取第一固定码长,第一固定码长为一个待解码子块的码长,待解码块中包括多个待解码子块;基于第一固定码长对所码流进行解析,以解码待解码块。

34、第四方面及其任一种可能的实现方式提供的图像解码方法与第三方面及其任一种可能的是实现方式提供的图像编码方法是对应的,因此,第四方面及其任一种可能的实现方式提供的技术方案的有益效果,均可以参考第三方面中对应的方法的有益效果的描述,不再赘述。

35、第五方面,本技术实施例提供一种图像编码方法,该方法应用于编码端,该方法包括:获取待编码块的最大码长,最大码长为码流缓冲器中允许缓存的最大码流长度;基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度;在第一码长大于或等于最大码长的情况下,基于跳过残差编码模式,采用目标模式对待编码块进行编码,其中,基于残差编码模式对待编码块进行编码得到的码长小于或等于最大码长,目标模式为编码端的多个预测模式中的其中一个。

36、在一种可能的实现方式中,上述基于跳过残差编码模式,采用目标模式对待编码块进行编码,包括:对目标模式的标识进行编码,得到待编码块的码流。

37、在又一种可能的实现方式中,上述目标模式为第一模式;或者,上述目标模式为预设的预测模式。

38、在又一种可能的实现方式中,上述基于跳过残差编码模式,采用目标模式对待编码块进行编码之前,方法还包括:分别基于编码端的多个预测模式中的每一个预测模式对待编码块进行预编码,将预编码的编码性能最佳的预测模式确定为目标模式,编码性能包括压缩率、编码效率或者编码损失率。

39、第六方面,本技术实施例提供一种图像解码方法,该方法应用于解码端,该方法包括:解析待解码块的码流,确定是否使用强制跳过残差模式;在使用强制残差跳过模式的情况下,确定待解码块的目标模式,目标模式为解码端的多个预测模式中的一个;基于目标模式,确定待解码块的预测值;将待解码块的预测值确定为待解码块的重建值。

40、第六方面及其任一种可能的实现方式提供的图像解码方法与第五方面及其任一种可能的是实现方式提供的图像编码方法是对应的,因此,第六方面及其任一种可能的实现方式提供的技术方案的有益效果,均可以参考第五方面中对应的方法的有益效果的描述,不再赘述。

41、第七方面,本技术提供了一种图像编码装置。该编码装置可以是视频编码器或包含视频编码器的设备。该编码装置包括用于实现第一方面、第三方面或第五方面中任一种可能实现方式中方法的各个模块。所述编码装置具有实现上述相关方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块。其有益效果可以参见相应方法中的描述,此处不再赘述。

42、第八方面,本技术提供了一种图像解码装置。该解码装置可以是视频解码器或包含视频解码器的设备。该解码装置包括用于实现第二方面、第四方面或第六方面中任一种可能实现方式中方法的各个模块。所述解码装置具有实现上述相关方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块。其有益效果可以参见相应方法中的描述,此处不再赘述。

43、第九方面,本技术提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,以实现第一方面至第六方面中任一种实现方式的方法。

44、例如,该电子设备可以是指视频编码器,或包括视频编码器的设备。

45、又如,该电子设备可以是指视频解码器,或包括视频解码器的设备。

46、第十方面,本技术提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被计算设备或计算设备所在的存储系统执行时,以实现第一方面至第六方面中任一种实现方式的方法。

47、第十一方面,本技术提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在计算设备或处理器上运行时,使得计算设备或处理器执行该指令,以实现第一方面至第六方面中任一种实现方式的方法。

48、第十二方面,本技术提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以实现第一方面至第六方面中任一种实现方式的方法。

49、第十三方面,本技术提供一种图像译码系统,该图像译码系统包括编码端和解码端,解码端用于实现第一、第三或第五方面提供的相应的解码方法,编码端用于实现与此对应的编码方法。

50、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。或者说,上述任意一个方面的任意一种可能的实现方式,在不冲突的情况下,均可以应用于其他方面,从而得到新的实施例。例如,上述第一、第三以及第五方面提供的任意一种图像编码方法,可以在不冲突的情况下两两组合、或三个方面进行组合,从而可以得到新的图像解码方法。

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