CN116074516A - 一种图像编解码方法及装置 - Google Patents

一种图像编解码方法及装置 Download PDF

Info

Publication number
CN116074516A
CN116074516A CN202210631100.9A CN202210631100A CN116074516A CN 116074516 A CN116074516 A CN 116074516A CN 202210631100 A CN202210631100 A CN 202210631100A CN 116074516 A CN116074516 A CN 116074516A
Authority
CN
China
Prior art keywords
block
decoded
code length
mode
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210631100.9A
Other languages
English (en)
Inventor
潘冬萍
孙煜程
陈方栋
魏亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202310503347.7A priority Critical patent/CN116489360A/zh
Priority to CN202210631100.9A priority patent/CN116074516A/zh
Publication of CN116074516A publication Critical patent/CN116074516A/zh
Priority to PCT/CN2023/098534 priority patent/WO2023236936A1/zh
Priority to TW112121009A priority patent/TW202349950A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1887Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a variable length codeword

Abstract

本申请提供一种图像编解码方法及装置,涉及视频编解码领域,可以用于避免码流溢出。具体方法包括:基于待解码块的码流,确定待解码块对应的图像块是否采用回退模式,其中,图像块待解码块的码长小于或等于待解码块的最大码长,最大码长为码流缓冲器中允许缓存的最大码流长度。在待解码块对应的图像块采用回退模式时,获取第一固定码长,第一固定码长为一个待解码子块的码长,待解码块中包括一个或多个待解码子块;基于第一固定码长对码流进行解析,以解码所述待解码块。

Description

一种图像编解码方法及装置
技术领域
本申请实施例涉及视频编解码领域,尤其涉及一种图像编解码方法及装置。
背景技术
视频编码技术也称为视频压缩技术,视频压缩技术用于降低视频信号的数据带宽。其中,视频是连续的图像序列,由连续的图像帧构成,一帧图像即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,人眼可见的就是连续的视频。对视频进行编解码即对视频中的每一帧图像进行编解码。以一帧图像为例,在编码端,图像编码器对图像编码,得到图像对应的码流并传输码流至解码端;在解码端,图像解码器解析码流,从而重建图像。
在图像编解码过程中,为了提高压缩效率,常见的视频压缩技术都采用了变长编码,一个视频序列经过压缩编码之后所得到的码流是变速率的,不适合实时地在固定码率的信道中传输。因此,通常将编码器产生的变码率数据先输出到一定存储空间的缓冲器,然后再从缓冲器以固定码率输出。应理解,缓冲器的存储空间的大小是一定的,若输入至缓冲器的码流数据过大,导致需要缓冲器暂时存储的数据超出其存储空间的大小,则会出现码流“上溢”的情况,从而导致后续的图像信息丢失。此外,若输入至缓冲器的码流数据过小,导致缓冲器暂时存储的数据“不足”,无法满足缓冲器的固定输出码率,则会出现码流“下溢”的情况。
因此,如何避免图像编解码过程中的码流“上溢”或“下溢”的情况出现,是亟待解决的问题。
发明内容
本申请实施例提供一种图像编解码方法及装置,可以用于避免码流溢出。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种图像编码方法,该方法由编码端执行,该方法包括:获取待编码块的最大码长,该最大码长为码流缓冲器缓存待编码块的经编码码流时,允许缓存的最大码流长度;基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度;在第一码长大于或等于最大码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长小于或等于最大码长。
基于上述图像编码方法,可以首先对待编码块进行预编码,基于预编码得到的码流长度与待编码块允许占用的最大码长对比,并根据对比结果,确定是否会出现码流上溢的情况。进而,在确定会出现码流上溢的情况时,采用回退模式对待编码块进行编码,以避免待编码块的图像信息丢失。
在一种可能的实现方式中,上述最大码长为最大码长为码流缓冲器中可容纳的码流的长度与存储空间在单位时间内传输的码流的长度之和。其中,该存储空间即为码流缓冲器的存储空间。
在另一种可能的实现方式中,待编码块可以包括第一色度分量、第二色度分量以及亮度分量,则上述在第一码长大于或等于最大码长的情况下,采用回退模式对待编码块进行编码,包括:在第一码长大于或等于最大码长的情况下,根据最大码长,按照预设比值确定第一色度最大码长、第二色度最大码长以及亮度最大码长,其中,第一色度最大码长、第二色度最大码长与第三色度最大码长之和为最大码长或存储空间在单位时间内流出的码长;根据第一色度最大码长、第二色度最大码长及亮度最大码长中的一个或多个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码。
在又一种可能的实现方式中,上述根据第一色度最大码长、第一色度最大码长及亮度最大码长中的一个或多个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码,包括:根据第一色度最大码长、第二色度最大码长及亮度最大码长中的任一个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码;或者,根据第一色度最大码长或第二色度最大码长,确定第一色度分量和第二色度分量是否采用回退模式进行编码;以及根据亮度最大码长确定亮度分量是否采用回退模式进行编码;或者,根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码,以及,根据亮度最大码长确定亮度分量是否采用回退模式进行编码。
在又一种可能的实现方式中,上述根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,包括:基于所述第一模式对所述第一色度分量进行预编码,得到所述第一色度分量的第一色度码长;在所述第一色度码长大于或等于所述第一色度最大码长的情况下,确定采用所述回退模式对所述第一色度码长进行编码。
在又一种可能的实现方式中,第一色度分量的码长、第二色度分量的码长与亮度分量的码长之和为待编码块的码长;亮度分量的码长大于第一色度分量的码长或第二色度分量的码长。
可选的,上述预设比值为1:1:1、2:1:1或者4:1:1。
在又一种可能的实现方式中,上述采用回退模式对待编码块进行编码,包括:获取目标像素深度,目标像素深度用于指示在目标压缩率下编码待编码块的每个像素点时所需的码长;根据目标像素深度,确定待编码块的目标码长,目标码长为基于回退模式编码待编码块得到的码流长度,目标码长小于或等于最大码长;基于目标码长,采用固定码长的编码方式对待编码块进行编码。
在又一种可能的实现方式中,上述基于目标码长,采用固定码长的编码方式对待编码块进行编码,包括:将待编码块划分为多个待编码子块;基于目标码长和多个待编码子块的数量,确定第一固定码长;基于第一固定码长,采用固定码长的编码方式编码多个待编码子块;其中,多个待编码子块中的每个待编码子块编码得到的码流长度为第一固定码长。
在又一种可能的实现方式中,上述将待编码块划分为多个待编码子块包括:以预设大小将待编码块划分为多个待编码子块。
在又一种可能的实现方式中,上述基于目标码长,采用固定码长的编码方式对待编码块进行编码,包括:根据目标码长和第一固定码长,将待编码块划分为多个待编码子块;其中,第一固定码长为预设长度的码长;基于第一固定码长,采用固定码长的编码方式编码多个待编码子块;其中,多个待编码子块中的每个待编码子块编码得到的码流长度为第一固定码长。
在又一种可能的实现方式中,对于多个待编码子块中的任一待编码子块,上述基于第一固定码长,采用固定码长的编码方式编码多个待编码子块,包括:确定任一待编码子块的残差值;基于第一固定码长,采用固定码长的编码方式编码任一待编码子块的残差块。
在又一种可能的实现方式中,对于多个待编码子块中的任一待编码子块,上述基于第一固定码长,采用固定码长的编码方式编码多个待编码子块,包括:基于第一固定码长,采用固定码长的编码方式对任一待编码子块的图像位宽的高位值进行编码,图像位宽的高位值用于指示图像位宽对应的二进制数的前N位的值,N为正整数;或者,基于第一固定码长,采用固定码长的编码方式对图像位宽的低位值进行编码,图像位宽的低位值用于指示图像位宽对应的二进制数的后N位的值,N为正整数,其中,N为上述第一固定码长。
第二方面,本申请实施例提供一种图像编码方法,该方法由解码端执行,该方法包括:基于待解码块的码流,确定待解码块对应的图像块是否采用回退模式,其中,图像块待解码块的码长小于或等于待解码块的最大码长,最大码长为码流缓冲器中允许缓存的最大码流长度;在待解码块对应的图像块采用回退模式时,获取第一固定码长,第一固定码长为一个待解码子块的码长,待解码块中包括一个或多个待解码子块;基于第一固定码长对码流进行解析,以解码所述待解码块。
在一种可能的实现方式中,上述最大码长为码流缓冲器中可容纳的码流的长度与码流缓冲器在单位时间内传输的码流的长度之和。
在另一种可能的实现方式中,上述待解码块包括一个或多个分量,解码端分别确定一个或多个分量是否采用回退模式。
在又一种可能的实现方式中,上述待解码块包括第一色度分量、第二色度分量以及亮度分量,基于待解码块的码流,确定待解码块对应的图像块在编码时是否采用回退模式,包括:解析第一色度分量、第二色度分量或者亮度分量中任一分量的码流,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式;或者,解析第一色度分量或第二色度分量的码流,确定第一色度分量和第二色度分量是否采用回退模式;或者,解析第一色度分量、第二色度分量以及亮度分量的码流,分别确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式。
在又一种可能的实现方式中,待解码块的第一色度分量的码长、第二色度分量的码长与亮度分量的码长之和为待解码块的码长;亮度分量的码长大于第一色度分量的码长或第二色度分量的码长。
在又一种可能的实现方式中,上述第一固定码长为预设码长值或者所述待解码块的目标像素深度,所述目标像素深度用于指示在目标压缩率下解码所述待解码块的每个像素点时所需的码长。
在又一种可能的实现方式中,上述基于第一固定码长对码流进行解析,以解码待解码块,包括:根据待解码块的码长和第一固定码长,将待解码块划分为多个待解码子块;基于第一固定码长对待解码块的每个待解码子块的码流进行解析,以解码待解码块。
在又一种可能的实现方式中,上述获取第一固定码长,包括:将待解码块划分为多个待解码子块;基于待解码块的码长和多个待解码子块的数量,确定第一固定码长。
在又一种可能的实现方式中,上述将待解码块划分为多个待解码子块,包括:以预设大小将待解码块划分为多个待解码子块。
在又一种可能的实现方式中,上述基于第一固定码长对各个待解码子块的码流进行解析,以解码待解码块,包括:基于第一固定码长对待解码块的每个待解码子块的码流进行解析,得到每个待解码子块对应的图像位宽的高位值,图像位宽的高位值用于指示图像位宽对应的二进制数的前N位值,N为正整数;根据每个待解码子块的预测值的低位值和每个待解码子对应的图像位宽的高位值,重建每个待解码子块,以得到每个待解码子块的重建块;预测值的低位值用于指示预测值对应的二进制数的后M位数值,M为正整数;其中,N与M之和为待解码子块的图像位宽,N为第一固定码长。
在又一种可能的实现方式中,基于第一固定码长对所码流进行解析,以解码待解码块包括:基于第一固定码长对待解码块的每个待解码子块的码流进行解析,得到每个待解码子块对应的图像位宽的低位值,图像位宽的低位值用于指示图像位宽对应的二进制数的后N位值,N为正整数;根据每个待解码子块的预测值的高位值和每个待解码子对应的图像位宽的低位值,重建每个待解码子块,以得到每个待解码子块的重建块;预测值的高位值用于指示预测值对应的二进制数的前M位数值,M为正整数;其中,N与M之和为待解码子块的图像位宽,N为第一固定码长。
在又一种可能的实现方式中,基于第一固定码长对所码流进行解析,以解码待解码块包括:基于第一固定码长对待解码块的每个待解码子块的码流进行解析,得到每个待解码子块的残差值;根据每个待解码子块的预测值和残差值,对每个待解码子块进行重建,以得到每个待解码子块的重建块。
在又一种可能的实现方式中,上述方法还包括:在待解码块的码流中用于指示预测模式的码字为第一码字,且待解码块对应的图像块未采用回退模式时,基于原始值模式重建待解码块的图像块,其中,第一码字为用于指示回退模式或原始值模式。
第三方面,本申请实施例提供一种图像编码方法,该方法由编码端执行,该方法包括:获取待编码块的最小码长,最小码长为码流缓冲器中允许缓存的最小码流长度;基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度;在第一码长小于或等于最小码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长大于或等于最小码长。
可以理解,采用回退模式对待解码块进行解码,可以避免出现码流上溢的情况。进而避免待解码块的的图像信息丢失。
在一种可能的实现方式中,上述存储空间中已存储的码流长度与存储空间在单位时间内输出的码长之间的差值与最小码长之和,大于或等于存储空间在单位时间内输出的码长。
第四方面,本申请实施例提供一种图像解码方法,该方法应用于解码端,该方法包括:基于待解码块的码流,确定待解码块对应的图像块在编码时是否采用回退模式,其中,图像块基于回退模式编码时得到的码长大于或等于待解码块的最小码长,最小码长为码流缓冲器中允许缓存的最小码流长度;在待解码块对应的图像块在编码时采用回退模式时,基于码流获取第一固定码长,第一固定码长为一个待解码子块的码长,待解码块中包括多个待解码子块;基于第一固定码长对所码流进行解析,以解码待解码块。
第四方面及其任一种可能的实现方式提供的图像解码方法与第三方面及其任一种可能的是实现方式提供的图像编码方法是对应的,因此,第四方面及其任一种可能的实现方式提供的技术方案的有益效果,均可以参考第三方面中对应的方法的有益效果的描述,不再赘述。
第五方面,本申请实施例提供一种图像编码方法,该方法应用于编码端,该方法包括:获取待编码块的最大码长,最大码长为码流缓冲器中允许缓存的最大码流长度;基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度;在第一码长大于或等于最大码长的情况下,基于跳过残差编码模式,采用目标模式对待编码块进行编码,其中,基于残差编码模式对待编码块进行编码得到的码长小于或等于最大码长,目标模式为编码端的多个预测模式中的其中一个。
在一种可能的实现方式中,上述基于跳过残差编码模式,采用目标模式对待编码块进行编码,包括:对目标模式的标识进行编码,得到待编码块的码流。
在又一种可能的实现方式中,上述目标模式为第一模式;或者,上述目标模式为预设的预测模式。
在又一种可能的实现方式中,上述基于跳过残差编码模式,采用目标模式对待编码块进行编码之前,方法还包括:分别基于编码端的多个预测模式中的每一个预测模式对待编码块进行预编码,将预编码的编码性能最佳的预测模式确定为目标模式,编码性能包括压缩率、编码效率或者编码损失率。
第六方面,本申请实施例提供一种图像解码方法,该方法应用于解码端,该方法包括:解析待解码块的码流,确定是否使用强制跳过残差模式;在使用强制残差跳过模式的情况下,确定待解码块的目标模式,目标模式为解码端的多个预测模式中的一个;基于目标模式,确定待解码块的预测值;将待解码块的预测值确定为待解码块的重建值。
第六方面及其任一种可能的实现方式提供的图像解码方法与第五方面及其任一种可能的是实现方式提供的图像编码方法是对应的,因此,第六方面及其任一种可能的实现方式提供的技术方案的有益效果,均可以参考第五方面中对应的方法的有益效果的描述,不再赘述。
第七方面,本申请提供了一种图像编码装置。该编码装置可以是视频编码器或包含视频编码器的设备。该编码装置包括用于实现第一方面、第三方面或第五方面中任一种可能实现方式中方法的各个模块。所述编码装置具有实现上述相关方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块。其有益效果可以参见相应方法中的描述,此处不再赘述。
第八方面,本申请提供了一种图像解码装置。该解码装置可以是视频解码器或包含视频解码器的设备。该解码装置包括用于实现第二方面、第四方面或第六方面中任一种可能实现方式中方法的各个模块。所述解码装置具有实现上述相关方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块。其有益效果可以参见相应方法中的描述,此处不再赘述。
第九方面,本申请提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,以实现第一方面至第六方面中任一种实现方式的方法。
例如,该电子设备可以是指视频编码器,或包括视频编码器的设备。
又如,该电子设备可以是指视频解码器,或包括视频解码器的设备。
第十方面,本申请提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被计算设备或计算设备所在的存储系统执行时,以实现第一方面至第六方面中任一种实现方式的方法。
第十一方面,本申请提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在计算设备或处理器上运行时,使得计算设备或处理器执行该指令,以实现第一方面至第六方面中任一种实现方式的方法。
第十二方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以实现第一方面至第六方面中任一种实现方式的方法。
第十三方面,本申请提供一种图像译码系统,该图像译码系统包括编码端和解码端,解码端用于实现第一、第三或第五方面提供的相应的解码方法,编码端用于实现与此对应的编码方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。或者说,上述任意一个方面的任意一种可能的实现方式,在不冲突的情况下,均可以应用于其他方面,从而得到新的实施例。例如,上述第一、第三以及第五方面提供的任意一种图像编码方法,可以在不冲突的情况下两两组合、或三个方面进行组合,从而可以得到新的图像解码方法。
附图说明
图1为本申请实施例所应用的编解码系统1的架构示意图;
图2为用于实现本申请实施例方法的编码器100的实例的示意性框图;
图3为本申请实施例提供的一种图像、并行编码单元、独立编码单元和编码单元之间的对应关系的示意图;
图4为用于实现本申请实施例方法的解码器200的实例的示意性框图;
图5为本申请实施例提供的一种图像编码方法的流程示意图;
图6为本申请实施例提供的一种待编码子块的示意图;
图7为本申请实施例提供的另一种图像编码方法的流程示意图;
图8为本申请实施例提供的一种待编码块的示意图;
图9为本申请实施例提供的另一种待编码块的示意图;
图10为本申请实施例提供的一种图像解码方法的流程示意图;
图11为本申请实施例提供的一种图像解码方法的逻辑流程图;
图12为本申请实施例提供的一种图像编码方法的流程示意图;
图13为本申请实施例提供的另一种图像解码方法的流程示意图;
图14为本申请实施例提供的另一种图像编码方法的流程示意图;
图15为本申请实施例提供的另一种图像解码方法的流程示意图;
图16为本申请实施例提供的一种编码装置1600的结构示意图;
图17为本申请实施例提供的一种解码码装置1700的结构示意图;
图18为本申请实施例提供的另一种编码装置1800的结构示意图;
图19为本申请实施例提供的另一种解码装置1900的结构示意图;
图20为本申请实施例提供的另一种编码装置2000的结构示意图;
图21为本申请实施例提供的另一种解码装置2100的结构示意图;
图22为本申请实施例提供的一种电子设备2200的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
下面描述本申请实施例所应用的系统架构。
参见图1,图1示出了本申请实施例所应用的编解码系统1的架构示意图。如图1所示,编解码系统1可以包括含编码端10和解码端20。其中,编码端10产生经编码视频数据。因此,编码端10可被称为视频编码装置。解码端20可对由编码端10所产生的经编码的视频数据进行解码。因此,解码端20可被称为视频解码装置。
编码端10和解码端20的具体形态可以为各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
可选的,图1中的编码端10和解码端20可以是两个单独的设备。或者,编码端10和解码端20可以为同一设备,即编码端10或对应的功能以及解码端20或对应的功能可以集成在同一个设备上。
编码端10和解码端20之间可以进行通信。例如,解码端20可经由链路30从编码端10接收经编码视频数据。链路30可包括能够将经编码视频数据从编码端10移动到解码端20的一或多个媒体或装置。在一个实例中,链路30可包括使得编码端10能够实时将经编码视频数据直接发射到解码端20的一或多个通信媒体。在此实例中,编码端10可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到解码端20。所述一或多个通信媒体可包含无线和/或有通线信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从编码端10到解码端20的通信的其它设备。
可选的,编码端10可以将经编码数据从输出接口140输出到内置或外接的存储装置中。存储装置可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字通用光盘(digital video disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
如图1所示,编码端10包括视频源120、编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。编码器100可对来自视频源120的视频数据进行编码。在一些示例中,编码端10经由输出接口140将经编码视频数据直接发射到解码端20。在其它实例中,经编码视频数据还可存储到存储装置上,供解码端20以后存取来用于解码和/或播放。
如图1所示,解码端20包括输入接口240、解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置接收经编码视频数据。显示装置220可与解码端20集成或可在解码端20外部。一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
可选的,在编码端10中,还包括码流缓冲器(图1中未示出),码流缓冲器用于接收经编码产生的码流数据,并输出固定码率的码流数据。不同待编码块经编码后产生的码流数据的大小可大体上基于待编码块的性质而极大地变化。从而,一个视频序列经过压缩编码之后所得到的码流是变速率的,不适合实时地在固定码率的信道中传输。可以通过码流缓冲器平缓经压缩视频中的速率变化。其中,码流缓冲器的储存空间越大,越能够承受码率的波动。
可选的,在解码端20中,也可以包括另一个缓冲器,其可以用于接收固定码率的码流数据,在从缓冲器输出至解码器200的码流解析单元201。
尽管图1中未示出,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。
应理解,图1所示出的编解码系统1仅为一种示例,并且本申请的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
下面结合说明书附图,对图1中的编码器100和解码器200的具体结构进行简单介绍。
参见图2,图2示出用于实现本申请实施例方法的编码器100的实例的示意性框图。如图2所示,编码器100包括预测处理单元101、残差计算单元102、残差变换单元103、量化单元104、编码单元105、反量化单元(也可以称为逆量化单元)106、残差逆变换单元107、重构单元(或者称为重建单元)108以及滤波器单元109。
一种示例中,编码器100的输入为待编码图像的图像块(即待编码块或编码单元)。
另一种示例中,编码器100的输入为待编码图像,则编码器100中还可以包括分割单元(图2中未示出),该分割单元用于将待编码图像分割成多个图像块。编码器100用于待编码图像的多个图像块逐块编码,从而完成对待编码图像的编码。例如,编码器100对每个图像块执行编码过程,从而完成对待编码图像的编码。
示例性的,一种将待编码图像划分成多个图像块的方法可以包括:
步骤11:将一帧图像分成一个或多个互相不重叠的并行编码单元,各个并行编码单元间无依赖关系,可并行/独立编解码。
步骤12:对于每个并行编码单元,编码端可将其分成一个或多个互相不重叠的独立编码单元,各个独立编码单元间可相互不依赖,但可以共用该并行编码单元的一些头信息。
步骤13:对于每个独立编码单元,编码端可再将其分成一个或多个互相不重叠的编码单元。其中,若将独立编码单元划分成多个互相不重叠的编码单元,则划分方式可以为水平等分法、垂直等分法或水平垂直等分法。当然具体实现时不现于此。独立编码单元内的各个编码单元可相互依赖,即在执行预测步骤的过程中可以相互参考。
编码单元的宽为w_cu,高为h_cu,可选的,其宽大于高(除非是边缘区域)。通常的,编码单元可为固定的w_cu×h_cu,w_cu和h_cu均为2个N次方(N大于等于0),如16×4,8×4,16×2,8×2,4×2,8×1,4×1等。
编码单元既可以包括亮度Y、色度Cb、色度Cr三个分量(或红R、绿G、蓝B三分量,或亮度Y、色度U、色度V三个分量),也可以仅包含其中的某一个分量。若包含三个分量,几个分量的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
如图3所示,为一种图像、并行编码单元、独立编码单元和编码单元之间的对应关系的示意图。其中,图3中是以按照3:1将一个图像划分为并行编码单元1和并行编码单元2,以及一个独立编码单元包含4个编码单元为例进行说明的。
可选的,分割单元将待编码图像划分成多个图像块,这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此外,此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。该条带可分成多个图像块(或者可能分成被称作片的图像块集合)。
预测处理单元101,用于接收或获取待编码块的原始值和已重构图像数据,基于已重构图像数据中的相关数据对待编码块进行预测,得到待编码块的预测块。
可选的,预测处理单元101可以包括帧间预测器和帧内预测器。其中,帧间预测器可以用于确定用于编码该待编码块的帧间预测模式,并基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动信息,例如运动矢量(motion vector,MV),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧内预测器可确定用于编码该待编码块的帧内预测模式。
其中,帧内预测是指,利用视频空间域的相关性,使用当前块的已编码块(codingblock,CB)进行预测,以达到去除视频空域冗余的目的。示例性的,帧内预测规定了多种预测模式,每种预测模式对应一种纹理方向(DC模式除外),例如,若图像纹理呈现水平状排布,则水平预测模式可以更好的预测图像信息。
帧间预测是指,基于视频时域的相关性,由于视频序列包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。视频编码标准的帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计(MotionEstimation,ME)。
此外,在帧间预测模式下,可以使用运动矢量表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。每个划分的块都有相应的运动矢量传输到解码端,如果对每个块的运动矢量进行独立编码和传输,特别是划分成小尺寸的块时,需要消耗相当多的比特。为了降低用于编码运动矢量的比特数,则利用相邻图像块之间的空间相关性,根据相邻已编码块的运动矢量对当前待编码块的运动矢量进行预测,然后对预测差进行编码。这样,可以有效地降低表示运动矢量的比特数。在对当前块的运动矢量编码过程中,首先使用相邻已编码块的运动矢量预测当前块的运动矢量,然后对运动矢量的预测值(motion vectorprediction,MVP)与运动矢量的真正估值之间的差值(motion vector difference,MVD)进行编码,从而有效降低MV的编码比特数。
残差计算单元102用于计算待编码块的原始值和待编码块的预测块之间的残差值,得到残差块。例如,通过逐像素将待编码块的原始像素值减去预测块的像素值。
在一个示例中,残差变换单元103用于基于残差块确定残差系数。可选的,在该过程中,可以包括:对残差块进行例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST)的变换,以在变换域中获取变换系数,变换系数也可以称为变换残差系数或残差系数,该残差系数可以在变换域中表示残差块。当然,编码器100在对待编码块进行编码的过程中也可以不包含残差变换的步骤。
量化单元104用于通过应用标量量化或向量量化来量化变换系数或残差值,以获取经量化残差系数(或经量化残差值)。量化过程可以减少与部分或全部残差系数有关的位深度(bitdepth)。例如,可在量化期间将p位变换系数向下舍入到q位变换系数,其中p大于q。可通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过QP指示合适的量化步长。
其中,在图像编码过程中,为实现对图像的压缩,通常会对待编码块的残差块进行量化,或者对该残差块经一定处理后得到的残差系数块进行量化,从而使得量化后的残差块或残差系数块可以以更少的比特进行编码。可以理解,残差块为基于待编码块的原始像素块和预测块得到的残差值块,残差系数块为对残差块进行一定处理变换后得到的系数块。
作为示例,以编码器100对残差块进行量化为例,编码器100可以为待编码块的残差块中的每个残差值除以量化系数,以缩小该残差块中的残差值。这样,相比未进行量化的残差值,量化后被缩小的残差值即可通过更少的比特来编码,这样即实现了图像的压缩编码。
编码单元105用于对上述经量化残差系数(或经量化残差值)进行编码,以经编码比特流(或称为码流)的形式输出的经编码的图像数据(即当前待编码块的编码结果),然后可以将经编码比特流传输到解码器,或将其存储起来,后续传输至解码器或用于检索。编码单元105还可用于对待编码块的语法元素进行编码,例如将待编码块采用的预测模式编码至码流等。
在一个示例中,编码单元105对残差系数编码,一种可行方法为:半定长编码方式。首先将一个残差小块(residual block,RB)内残差绝对值的最大值定义为modifiedmaximum(mm)。确定该RB内残差系数的编码比特数(同一个RB内残差系数的编码比特数一致)。例如,若当前RB的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位。
当然,也可以采用其他残差系数编码方法,如指数Golomb编码方法,Golomb-Rice编码方法,截断一元码编码方法,游程编码方法,直接编码原始残差值等。
另外,对于某些特殊的情况,也可以直接编码原始值,而不是残差值。
反量化单元106用于对上述经量化残差系数(或经量化残差值)进行反量化,以获取经反量化残差系数(经反量化残差值),该反量化是上述量化单元104的反向应用,例如,基于或使用与量化单元104相同的量化步长,应用量化单元104应用的量化方案的逆量化方案。
残差逆变换单元107用于对上述反量化残差系数逆变换(或反变换),以得到重建的残差块。可选的,反变换可以包括逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sine transform,DST)。这样,对上述反量化残差系数逆变换(或反变换)后得到的逆变换值,即为在像素域(或者称为样本域)中重建的残差值。也即,经反量化的残差系数块在经残差逆变换单元107逆变换后,得到的块为重建的残差块。当然,在编码器100中不包括上述的残差变化单元103时,编码器100也可以不包含反变换的步骤。
重构单元108用于重建的残差块添加至预测块,以在样本域中获取经重构块,重构单元108可以为求和器。例如,重构单元108将重建的残差块中的残差值与预测块中对应像素的预测值相加,以得到对应像素的重建值。该重构单元108输出的重构块可以后续用于预测其他待编码的图像块。
滤波器单元109(或简称“滤波器”)用于对经重构块进行滤波以获取经滤波块,从而顺利进行像素转变或提高图像质量。
在一个示例中,编码器100实现的一种编码过程可以包括以下步骤:
步骤21:预测处理单元101确定预测模式,并基于确定的预测模式和已编码图像块的重构块对待编码块进行预测,得到待编码块的预测块。
其中,已编码图像块的重构块是反量化单元106、残差逆变换单元107以及重构单元108依次对该已编码图像块的经量化残差系数块处理后得到的。
步骤22:残差计算单元102基于预测块和待编码块的原始像素值,得到待编码块的残差块;
步骤23:残差变换单元103对残差块进行变换,得到残差系数块。
步骤24:量化单元104对残差系数块进行量化,得到经量化残差系数块。
步骤25:编码单元105对经量化残差系数块进行编码,以及对相关语法元素(例如预测模式,编码模式)进行编码,得到待编码块的码流。
参见图4,图4示出用于实现本申请实施例方法的解码器200的实例的示意性框图。解码器200用于接收例如由编码器200编码的图像数据(即经编码比特流,例如,包括图像块的经编码比特流及相关联的语法元素),以获取经解码图像块。
如图4所示,解码器200包括码流解析单元201、反量化单元202、残差逆变换单元203、预测处理单元204、重构单元205、滤波器单元206。在一些实例中,解码器200可执行大体上与图2的编码器100描述的编码过程互逆的解码过程。
码流解析单元201用于对经编码比特流执行解码,以获取经量化残差系数(或经量化残差值)和/或解码参数(例如,解码参数可以包括编码侧执行的帧间预测参数、帧内预测参数、滤波器参数和/或其它语法元素中的任意一个或全部)。码流解析单元201还用于将上述解码参数转发至预测处理单元204,以供预测处理单元204根据解码参数执行预测过程。
反量化单元202的功能可与编码器100的反量化单元106的功能相同,用于反量化(即逆量化)经码流解析单元201解码输出的经量化残差系数。
其中,反量化是量化的反过程,反量化指的是将量化后的系数映射为输入信号空间中的重建信号,重建信号是输入信号的一个近似。为从压缩编码后的码流中重建图像块,解码器200的反量化单元202可以对从码流中解析到的残差块或残差系数块进行反量化,从而可以重建图像块对应的未被量化的残差块或残差系数块,进而,解码器200根据重建的残差块或残差系数块对图像块进行重建,从而得到图像的重建块。
作为示例,以解码器200从码流中解析到待解码块经量化后的残差块为例,解码器200可以通过反量化单元202对该残差块进行反量化。具体的,编码端可以为解析到的残差块中的每个残差值乘以量化系数,以重建待解码块对应的未被量化的残差块中的残差值,从而得到重建的残差块。其中,量化系数为编码装置在编码待解码块时,对待解码块的残差块进行量化时的量化系数。这样,解码器200基于反量化后重建的残差块,即可实现对待解码块的重建,并得到待解码块的重建块。
残差逆变换单元203的功能可与编码器100的残差逆变换单元107的功能相同,用于对上述经反量化残差系数进行逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程),得到重建的残差值。逆变换得到块即为重建的待解码块在像素域中的残差块。
重构单元205(例如求和器)的功能可与编码器100的重构单元108的功能相同。
预测处理单元204,用于接收或获取经编码图像数据(例如当前图像块的经编码比特流)和已重构图像数据,预测处理单元204还可以从例如码流解析单元202接收或获取预测模式的相关参数和/或关于所选择的预测模式的信息(即上述的解码参数),并且基于已重构图像数据中的相关数据和解码参数对当前图像块进行预测,得到当前图像块的预测块。
重构单元205用于将重建的残差块添加到预测块,以在样本域中获取待解码图像的重构块,例如将重建的残差块中的残差值与预测块中的预测值相加。
滤波器单元206用于对经重构块进行滤波以获取经滤波块,该经滤波块即为经解码图像块。
具体的,在本申请实施例中,解码器200用于实现后文实施例中描述的解码方法。
应当理解的是,在本申请实施例的编码器100和解码器200中,针对某个环节的处理结果也可以经过进一步处理后,输出到下一个环节,例如,在插值滤波、运动矢量推导或滤波等环节之后,对相应环节的处理结果进一步进行Clip或移位shift等操作。
在一个示例中,解码器200实现的一种解码过程可以包括以下步骤:
步骤31:码流解析单元201解析预测模式和残差编码模式;
步骤32:码流解析单元201基于预测模式和残差编码模式解析量化相关值(如near值,或QP值等);
步骤33:反量化单元202基于预测模式和量化相关值解析残差系数;
步骤34:预测处理单元204基于预测模式,获得当前图像块各个像素的预测值;
步骤35:残差值解码单元203对残差系数逆变换,以重建当前图像块各个像素的残差值;
步骤36:重构单元205基于当前编码单元各个像素的预测值和残差值,获得其重建值。
图1~图4仅为本申请实施例提供的示例,在一些示例中,编码器100、解码器200以及编解码系统1可以包括更多或更少的部件或单元,本申请对此不予限定。
以下,结合附图,对本申请实施例提供的如下图像编解码方法进行说明。
图5为本申请提供的一种图像编码方法的流程示意图。可选的,该图像编码方法可应用于图1所示出的编解码系统1,该图像编码方法可以由编码端10执行,具体的,该编码方法可以由编码端10包括的编码器100执行,如图5所示,本申请实施例提供的图像编码方法包括以下步骤:
S101、编码端获取待编码块的最大码长。
其中,待编码块可以称为编码单元。通常,编码端在对待编码视频中的图像帧进行编码时,是以编码单元为单位进行编码的。
此外,上述最大码长用于指示该待编码块的可编码的最大码长。应理解,为防止出现码流上溢的情况,该最大码长可以根据图1所示的编解码系统中的解码端的码流缓冲器的储存空间的大小确定。从而,该最大码长为编码端用于缓存已编码码流的存储空间当前允许缓存的最大码流长度。
可选的,上述最大码长为存储空间的剩余空间中可容纳码流的长度与存储空间在单位时间内输出码流的长度之和。
可选的,上述最大码长为小于存储空间的剩余空间中可容纳码流的长度与存储空间在单位时间内输出码流的长度之和的码长值。
示例性的,上述最大码长可以为存储空间的剩余空间中可容纳码流的长度与存储空间在单位时间内输出码流的长度之和减去待编码块的头信息。其中,头信息为在每一个待编码块的码流最前端的具有一定长度的数据,该数据可以用于指示当前待编码块的图像参数。示例性的,该图像参数包括当前待编码块的图像复杂度、预测模式、目标像素深度以及纹理复杂度中的一项或多项。
需要说明是,由于码流缓冲器在接收编码器编码的当前块的码流的同时,还向信道输出一定量的码流,也就是说码流缓冲器在接收当前块的码流时,还流出一定量的码流。也即,向码流缓冲器输入的码流也可以占用流出的码流所占用的存储空间。从而,最大码长可以为码流缓冲器在单元时间内流出的码长与码流缓冲器的当前剩余空间中可容纳的码长之和。
此外,码流缓冲器在单元时间内流出的码长可根据编码端在编码之后传输码流的信道的宽度确定。
S102、编码端基于第一模式对待编码块进行预编码,得到待编码块的第一码长。
其中,第一模式可以为编码端预设的预测模式。
可选的,编码端预设的预测模式可以包括逐点预测模式,帧内预测模式,块复制模式和原始值模式等。
其中,帧内预测模式是将待预测块周围相邻块中像素的重建值作为预测值的预测模式。块复制预测模式是将周围已编码(解码)块(不一定相邻)像素的重建值作为预测值预测模式。在重建时,原始值模式是直接解码固定位宽的重建值模式,即无参考的预测模式。逐点预测模式是指将待预测像素周围相邻像素的重建值作为待预测像素的预测值的预测模式。
其中,逐点预测模式可以包括垂直预测、水平预测、垂直均值预测和水平均值预测等预测方式中的一种或多种的组合。
垂直预测为用待预测像素上侧(既可以是相邻的上侧,也可以是非相邻但距离较近的上侧)像素的重建值来获得待预测像素的预测值(PointPredData)。水平预测为用待预测像素左侧(既可以是相邻的左侧,也可以是非相邻但距离较近的左侧)像素的重建值来获得待预测像素的预测值。垂直均值预测为用待预测像素上下方像素的重建值来获待得预测像素的预测值。水平均值预测为用待预测像素左右两侧像素的重建值来获得待预测像素的预测值。
具体的,编码端可以通过采用上述预设的不同预测模式分别对待编码块进行预测,并基于不同预测模式预测待编码块后的编码性能,确定第一模式。编码性能可以为压缩率、编码效率或者编码损失率等。
示例性的,编码端可以通过采用不同的预测模式分别对待编码块进行预测,并在基于不同预测模式预测得到预测块后,编码端执行上文描述的步骤22-步骤25以得到不同预测模式下的待编码块的码流。编码端通过确定在不同预测模式下得到待编码块的码流的时间,并将用时最短的预测模式确定为第一模式。也即,编码端可以将编码效率最高的预测模式确定为第一模式。
从而,上述第一码长即为编码端可以通过采用第一模式对待编码块进行预测,并在得到预测块后,执行上文描述的步骤22-步骤25得到基于第一模式下的待编码块的码流长度。
S103、编码端在第一码长大于或等于最大码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长小于最大码长。
其中,采用回退模式对待编码块进行编码,也即基于预先确定的目标码长,采用固定码长的编码方式对待编码块进行编码,对待编码块进行编码得到的码长即为目标码长。目标码长小于最大码长。
需要说明的是,码流缓冲器的存储空间的大小是一定的,若输入至码流缓冲器的码流数据过大,导致需要码流缓冲器暂时存储的数据超出其存储空间的大小,则会出现码流“上溢”的情况。如此,会导致超出部分的数据丢失,从而,该待编码视频的图像帧中的图像信息丢失,根据码流缓冲器输出的码流数据无法完整解析出该图像帧。
若第一码长大于或等于上述最大码长,也即将基于第一模式得到的待编码块的码流经码流缓冲器传输时,码流缓冲器会出现码流“上溢”的情况。从而,为了避免码流“上溢”的情况出现,编码端可以采用回退模式对待编码块进行编码,以使得对待编码块进行编码得到的码长小于最大码长。
在一些实施例中,若当前待编码块采用回退模式进行编码,由于该待编码块的目标码长是固定的,因此不更新该待编码块的头信息中复杂度信息。该复杂度信息可以用于计算待编码块的量化参数。
在一些实施例中,编码端可以选择中点预测回退模式(midPoint predictionfallback mode,MPPF Mode),对待编码块进行预测,并在得到预测块后,基于固定码长的编码方式对待编码块进行编码,以得到待编码块的码流。
其中,根据中点预测回退模式,编码端可以首先将待编码块划分为多个2x2像素点的子图像块,每个2x2子图像块块需要计算一个中值,中值middle的计算方法如下公式(1)。
middle=1<<(bitDepth–1)  公式(1)
其中,bitDepth为当前待解码子块的码流传输通道的比特深度,1<<表示左移一位。
进而,编码端可以确定待编码的子块均值mean。
一种情形下,若当前子块无法获取周围重建图像,则mean值即为上述middle值。
另一种情形下,mean值为该子块的上一行2x1像素点的子块重建值的均值,若无法获取上一行2x1像素点的子块重建值,则取该子块的前一个重建的2x2子块重建图像的均值。
进而,编码端可以确定该子块的bias值,bias值用于限制mean值的取值。编码端可以使用bias值和middle值对mean做一个钳位,以将mean值限制在bias值与middle值组成的取值范围中。从而,将经过用bias值和middle值调整之后的mean值确定为当前2x2像素点的待编码子块的预测值。
其中,bias值可以根据下述公式(2)确定。
bias=1<<(mppStepSize[k]–1)  公式(2)
其中,mppStepSize用于指示待编码块的一个分量的量化过程中的量化步长,[k]用于指示待编码块的第[k]分量,1<<表示左移一位。
此外,基于MPPF Mode,如图6所示,可以基于左上角像素点A,右上角像素点B,左下角像素点C,右下角像素点D的顺序,计算该2x2像素点子块的残差值。
可选的,在重建该待编码子块的过程中,也可以按照上述左上角像素点A,右上角像素点B,左下角像素点C,右下角像素点D的顺序,依次确定各个像素点的重建值。
在一些实施例中,待编码块可以包括一个或多个分量。
可选的,待编码块可以包括仅包括亮度分量。或者,待编码块可以包括三个分量,例如亮度Y、色度Cb、色度Cr三个分量(或红R、绿G、蓝B三分量,或亮度Y、色度U、色度V三个分量)。又或者,在上述三分量的基础上,待编码块还可以包括α分量,也即待编码块共包括四分量。其中,α分量为像素透明度分量。当分量α值为0,则该编码块对应的像素是透明的,α分量的图像位宽与其他三分量不同。
在一些实施例中,编码端可以确定各个分量的可编码的最大码长,进而根据确定出的最大码长,确定各个分量是否采用回退模式。
可选的,若待编码块包括第一色度分量、第二色度分量以及亮度分量三个分量。示例性的,第一色度分量、第二色度分量以及亮度分量可以分别为亮度Y、色度Cb、色度Cr三个分量,或者亮度Y、色度U、色度V三个分量。
从而,编码端可以具体确定第一色度分量、第二色度分量以及亮度分量三个分量中的每一个分量是否需要采用回退模式进行编码。
在一些实施例中,编码端可以根据最大码长,按照预设比值确定第一色度最大码长、第二色度最大码长以及亮度最大码长。
其中,第一色度最大码长为该待编码块的第一色度分量的可编码的最大码长。第二色度最大码长为该待编码块的第二色度分量的可编码的最大码长。亮度最大码长为该待编码块的亮度分量的可编码的最大码长。应理解,第一色度最大码长、第二色度最大码长与亮度分量之和应不超过待编码块的可编码的最大码长。
其中,第一色度最大码长、第二色度最大码长与第三色度最大码长之和为最大码长或存储空间在单位时间内流出的码长。
需要说明的是,码流缓冲器在单元时间内流出的码长小于上述最大码长,因此,第一色度最大码长、第二色度最大码长与亮度最大码长之和可以为存储空间在单元时间内流出的码长。并且,根据存储空间在在单元时间内流出的码长确定第一色度最大码长、第二色度最大码长与亮度最大码长,可以使得待编码块的编码码长更小,压缩率较大,其所占用的码流缓冲器中的内存更小。
可选的,第一色度最大码长:第二色度最大码长:亮度最大码长的预设比值可以为1:1:1、2:1:1或者4:1:1。
在一些实施例中,若待编码块包括多个分量,待编码块的多个分量共享回退模式(共享是指多个分量均采用回退模式或均不采用回退模式),从而,编码但可以仅确定其中一个分量是否采用回退模式,在其中一个分量采用回退模式的情形下,其他分量也采用回退模式。或者,待编码块的多个分量中的一部分分量共享回退模式,则编码端可以仅确定其中一部分分量中的一个分量是否采用回退模式、以及除该部分分量的其他分量是否采用回退模式。又或者,待编码块的多个分量均不共享回退模式,从而,编码端可以分别确定每一个分量是否采用回退模式。
可选的,编码端可以根据第一色度最大码长、第二色度最大码长及亮度最大码长中的一个或多个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码。以下示出几种可能的实现方式:
实现方式1、编码端根据第一色度最大码长、第二色度最大码长及亮度最大码长中的任一个,确定第一色度分量、第二色度分量以及亮度分量是否采用回退模式进行编码。
可选的,编码端可以首先确定第一色度分量、第二色度分量以及亮度分量中的任意一个分量是否采用回退模式进行编码,进而,在确定该分量采用回退模式时,确定另外两个分量也采用回退模式进行编码。
示例性的,编码端可以首先根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,再确定该第一色度分量采用回退模式时,进而确定另外第二色度分量和亮度分量也采用回退模式进行编码。
同样的,编码端也可以首先根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码,或者根据亮度最大码长确定亮度分量是否采用回退模式进行编码,不再一一列举。
可选的,编码端根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码的过程可以具体包括:编码端基于第一模式对第一色度分量进行预编码,得到第一色度分量的第一色度码长。进而,在第一色度码长大于或等于第一色度最大码长的情况下,确定采用回退模式对所述第一色度分量进行编码。
类似的,编码端根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码的过程可以具体包括:编码端基于第一模式对第二色度分量进行预编码,得到第二色度分量的第二色度码长。进而,在第二色度码长大于或等于第二色度最大码长的情况下,确定采用回退模式对所述第二色度分量进行编码。
类似的,编码端根据亮度最大码长确定亮度分量是否采用回退模式进行编码的过程可以具体包括:编码端基于第一模式对第亮度分量进行预编码,得到亮度分量的亮度码长。进而,在亮度码长大于或等于亮度最大码长的情况下,确定采用回退模式对亮度分量进行编码。
其中,基于第一模式对第一色度分量、第二色度分量或者亮度分量进行预编码的过程可以参考步骤S102中基于第一模式的预编码的相关描述,在此不再赘述。
实现方式2、编码端根据第一色度最大码长或第二色度最大码长,确定第一色度分量和第二色度分量是否采用回退模式进行编码,以及根据亮度最大码长确定亮度分量是否采用回退模式进行编码。
可选的,对于第一色度分量和第二色度分量,编码端可以首先确定第一色度分量是否采用回退模式进行编码,进而在确定第一色度分量采用回退模式时,确定第二色度分量也采用回退模式进行编码。或者,编码端还可以首先确定第二色度分量是否采用回退模式进行编码,进而在确定第二色度分量采用回退模式时,确定第一色度分量也采用回退模式进行编码。
其中,编码端根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,以及编码端根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码的过程可以具体参考上述实现方式1中的相关描述。
在一种可能的实现方式中,对于亮度分量,编码端可以根据亮度最大码长确定亮度分量是否采用回退模式进行编码。其中,编码端根据亮度最大码长确定亮度分量是否采用回退模式进行编码的过程可以具体参考上述实现方式1中的相关描述。
在另一种可能的实现方式中,对于亮度分量,在编码端确定第一色度分量和第二色度分量是否采用回退模式进行编码时,编码端可以确定第一色度分量和第二色度分量采用回退模式进行编码的码长,并基于第一模式对亮度分量进行预编码,得到亮度分量的亮度码长。进而,在亮度码长与第一色度分量和第二色度分量采用回退模式进行编码的码长之和大于或等于上述待编码块的最大码长的情况下,编码端确定亮度分量采用回退模式进行编码。
实现方式3、编码端根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码,根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码,以及,根据亮度最大码长确定亮度分量是否采用回退模式进行编码。
其中,编码端根据第一色度最大码长确定第一色度分量是否采用回退模式进行编码、编码端根据第二色度最大码长确定第二色度分量是否采用回退模式进行编码以及编码端根据亮度最大码长确定亮度分量是否采用回退模式进行编码的过程可以具体参考上述实现方式1中的相关描述。
在一些实施例中,在待编码块包括第一色度分量、第二色度分量以及亮度分量三个分量的情况下,编码端可以根据上述预设比值,将待编码块的目标码长划分为三个子码长,一个分量对应一个子码长。进而,基于各个分量的子码长,分别采用回退模式对各个子码长对应的分量进行编码。
可选的,对于YCoCg图像中的待编码块,Y分量:Co分量:Cg分量可以为2:1:1。对于YUV444图像中的待编码块,Y分量:U分量:V分量可以为2:1:1。对于YUV422图像中的待编码块,Y分量:U分量:V分量可以为2:1:1。对于YUV420图像中的待编码块,Y分量:U分量:V分量可以为4:1:1。对于YUV400图像中的待编码块,该待编码块中仅包括亮度分量。
可选的,对于RGB图像中的待编码块,编码端可以根据R分量:G分量:B分量为1:1:1,将待编码块的目标码长划分为三个子码长,一个分量对应一个子码长。
需要说明的是,在编码过程中,对于RGB格式的图像块,由于人肉眼对于图像亮度更加敏感,为了提升人肉眼查看到的图像效果,通常会将RGB格式的图像块转化为YCoCg格式图像块,再进行编码。但是,若编码端确定转化后的YCoCg格式图像块的各个分量在编码过程中均需要采用回退模式,说明转化后的YCoCg格式的图像块编码所需的码长较长,则编码端可以编码RGB格式的该图像块。在一些实施例中,对于选择回退模式的分量,由于该分量的子码长是确定的,因此不需要不更新当前分量的头信息中的量化参数,以及不需要更新当前分量的复杂度等用于该指示分量的码流的信息。
在一些实施例中,编码端在第一码长小于最大码长的情况下,编码端可以采用原始值模式对待编码块的原始像素值进行编码。可选的,编码端可以采用原始值模式,对待编码块的原始像素值经过量化、变换后的值进行编码。如此,编码端通过采用原始值模式对待编码块进行编码,可以提升重建待编码块图像的效果。
在一些实施例中,编码端在第一码长小于最大码长的情况下,编码端也可以采用残差编码模式对待编码块进行编码。
一种示例中,原始值模式的码字和回退模式的码字相同,其中,原始值模式的码字为用于指示原始值模式的指代数据,回退模式的码字为用于指示回退模式的指代数据。
另一种示例中,回退模式的码字具有唯一性。应理解,原始模式的码字和回退模式的码字不相同。
在一些实施例中,上述回退模式还可以用于待编码块未发生上溢的情况下(也即编码端在第一码长小于最大码长的情况下次用回退模式),以下对该情况进行说明:
可选的,编码端可以在码流缓冲器中已占用内存小于或等于该码流缓冲器总内存的第一阈值时,编码端可以采用大于目标码长的其他码长值,编码待编码块。示例性的,第一阈值可以为码流缓冲器总内存的30%。从而,编码端可以采用大于目标码长的1.5倍码长值编码待编码块。可选的,编码端可以在码流缓冲器中已占用内存大于或等于该码流缓冲器总内存的第二阈值时,编码端可以采用小于目标码长的其他码长值,编码待编码块。示例性的,第二阈值可以为码流缓冲器总内存的85%。从而,编码端可以采用大于目标码长的0.5倍码长值编码待编码块。编码端还可以在码流缓冲器中已占用内存小于该码流缓冲器总内存的第二阈值时,大于第一阈值时,编码端可以采用目标码长编码待编码块。
相应的,当解码端在码流缓冲器未发生上溢的情况下采用回退模式编码时,解码端可以根据编码待解码块是码流缓冲器中已占用内存的大小,确定该待解码块的码长。本申请实施例提供的图像编码方法至少具有以下有益效果:该方法可以首先对待编码块进行预编码,基于预编码得到的码流长度与待编码块允许占用的最大码长对比,并根据对比结果,确定是否会出现码流上溢的情况。进而,在确定会出现码流上溢的情况时,采用回退模式对待编码块进行编码,以避免待编码块的的图像信息丢失。
在一些实施例中,如图7所示,编码端根据回退模式,并基于固定码长的编码方式对待编码块进行编码的过程可以具体实现为以下步骤:
S201、编码端将待编码块划分为一个或多个待编码子块。
可选的,在基于回退模式对待编码块进行编码的过程中,通常采用固定码长的编码方式确定待编码块的各个待编码子块进行编码。
可选的,上述固定码长与待编码块中的待编码子块的个数满足下述公式(3):
subblocknum×fixedlen≤fixedbit  公式(3)
其中,subblocknum为待编码块中的待编码子块的个数。fixedlen为固定码长。fixedbit为待编码块的目标码长。
可选的,待编码块的目标码长可以根据待编码块的目标像素深度(bits perpixel,BPP)确定。
其中,目标像素深度用于指示在目标压缩率下编码待编码块的每个像素点时所需的码长。目标像素深度可以根据待编码块的目标压缩倍率确定。
可选的,编码端可以获取待编码块的目标像素深度,进而,根据目标像素深度和待编码块的像素点的数量,将目标像素深度与待编码块的像素点的数量相乘得到的乘积确定为待编码块的目标码长。
可选的,目标码长也可以小于目标像素深度与待编码块的像素点的数量相乘得到的乘积。
示例性的,目标码长可以为目标像素深度与待编码块的像素点的数量相乘得到的乘积减去编码回退模式所需要的编码代价。其中,该编码代价的解析结果用于指示编码模式为回退模式。例如,编码代价的解析结果可以为回退模式的标识(回退模式的码字)等。
一些实施例中,在待编码块包括多个分量的情况下,编码端可以先将目标码长可以先将待编码块的划分为多个分量,再将各个分量划分为一个或多个子待编码块。
示例性的,根据上述步骤S103中的相关描述,在待编码块可以包括第一色度分量、第二色度分量以及亮度分量三个分量的情况下,编码端可以根据预设比值,将待编码块的目标码长划分为三个子码长,一个分量对应一个子码长。进而,编码端可以基于每个分量对应的子码长,将该分量划分为一个或多个子编码块。
以预设比例为Y分量:Co分量:Cg分量可以为2:1:1为例,Co分量的子码长可以根据以下公式(4)确定:
Figure BDA0003679783940000181
Cg分量的子码长与Co分量的子码长在目标码长中所占比例相同,Cg分量的子码长同样可以根据公式(4)确定。
进而,Y分量的子码长可以为目标码长减去Co分量的子码长和Cg分量的子码长。
另一些实施例中,在待编码块包括多个分量的情况下,编码端可以先将待编码块划分为一个或多个子编码块,进而,再对于每一个子编码块,按照各个分量的所占的比值,将子编码块进一步划分为各个分量的子块。
以下以先将待编码块划分为一个或多个子编码块为例,对子待编码的划分过程进行说明:
在一种可能的实现方式中,编码端以预设大小将待编码块划分为一个或多个待编码子块。
其中,上述一个待编码子块的固定大小可以为2x1像素点、2x2像素点等。
具体的,编码端可以根据待编码子块的大小,确定待编码块中的所述待编码子块的数量;并基于所述待编码子块的数量,将所述待编码块划分为一个或多个待编码子块。
示例性的,待编码块如图8所示,包括两行像素点A1至A16、B1至B16。若一个待编码子块的大小为2x2像素点,则编码端可以确定待编码子块的数量为8,例如待编码子块可以为A1、A2、B1和B2组成的图像块,A3、A4、B3和B4组成的图像块等。
可选的,编码端在确定待编码子块的数量之后,可以基于上述公式(3)确定用于编码待编码子块的第一固定码长。
在另一种可能的实现方式中,编码端以预设的第一固定码长将待编码块划分为一个或多个待编码子块。
可选的,第一固定码长可以为预先设定的用于编码待编码子块的码长值。
可选的,在待编码子块只包括一个像素时,第一固定码长可以为上述目标像素深度。
具体的,编码端可以基于上述公式(3),根据待编码块的目标码长与用于编码待编码子块的第一固定码长,确定所述待编码块的待编码子块的数量。进而,基于所述待编码子块的数量,将所述待编码块划分为一个或多个待编码子块。
可选的,根据上述公式(3),待编码子块的个数可以由待编码块的目标码长除以第一固定码长,再向下取整得到的整数值。
示例性的,若待编码块的大小为16x2像素点,第一固定码长为4,待编码块的目标码长为23。第一固定码长为23/4向下取整得到的整数值5,子块个数为奇数,则将16x2分为5个待编码子块,待编码子块大小分别为3x2像素点,3x2像素点,3x2像素点,3x2像素点,4x2像素点。
若待编码块的大小为16x2像素点,第一固定码长为4,待编码块的目标码长为25。从而,根据上述公式(3),待编码子块的个数为25/4向下取整得到的整数值6,子块个数为偶数,则可以先将1先将16x2的图像块划分为2个16x1像素点的图像块,每个16x1像素点的图像块划分为5x1像素点,5x1像素点的图像块,6x1像素点的图像块。
需要说明的是,由于可以根据待编码子块的预测值可以由上一行已重建的像素点确定,因此,在待编码子块包括两行像素点时,编码端可以控制待编码子块的划分个数为偶数,以确保每个编码子块包括该编码块的第一行像素点。如此,第一行像素点的预测值可以根据上一行以重建的像素点确定,从而,该待编码子块的第二行像素点的预测值可以根据第一行以重建的像素点确定。应理解,若待编码子块包括Z行像素点时,编码端可以控制待编码子块的划分个数为Z的整数倍,以确保每个编码子块包括该编码块的第一行像素点。
可选的,第一固定码长为非负整数。以第一固定码长为目标像素深度为例,若待编码块为16x2像素点图像块,编码端将其划分为2个16x1像素点图像块的待编码子块。一种示例中,若目标像素深度为3,则两个16x1像素点图像块的第一固定码长均为3。另一种示例中,若目标像素深度为2.5,则编码端可以确定第一个待编码子块的第一固定码长为3,第二个子块的第一固定码长为2。
S202、编码端基于第一固定码长,采用固定码长的编码方式编码多个待编码子块。
其中,多个待编码子块中的每个待编码子块编码得到的码流长度为第一固定码长。
对于任一待编码子块,编码端确定该待编码子块像素点的原始值与预测值。
在一些实施例中,编码端可以确定将该待编码子块相邻的上一行像素点的重建值的平均值,确定为该待编码子块的预测值。
可选的,待编码子块中像素点的预测值可以根据以下公式(5)确定:
预测值=(各个参考像素点的重建值之和+0.5×S)/S  公式(5)
其中,S为参考像素点的个数,S为正整数。
需要说明的是,在计算预测值的过程中,各个参考像素点的重建值之和加上0.5×S的目的是为了对重建值平均值进行四舍五入取整计算。
示例性的,若当前编码块如图9中的(a)所示,该待编码块的大小为16x2像素点,包括两行像素点A1至A16、B1至B16,上一行已重建像素点包括C0至C16。若该待编码子块为A1、A2、A3、B1、B2和B3组成的图像块,该待编码子块对应上一行参考的像素点为C1、C2与C3,因此该待编码子块的预测值为(C1的重建值+C2的重建值+C3的重建值+1.5)/3。
可选的,若该待编码子块的上一行像素点的重建值无法获得,则编码端可以将前一列的已重建的像素点对该待编码子块的上一行像素点进行填充。示例性的,如图9中的(b)所示,编码端使用前一列的像素点A0的重建值填充上一行所有像素点,从而,若该待编码子块为A1、A2、A3、B1、B2和B3组成的图像块,该待编码子块对应上一行参考的像素点为三个A0的重建值,进而,编码端可以根据这三个A0的重建值,确定该待编码子块的预测值。
或者,如图9中的(c)所示,编码端使用前一列的像素点B0的重建值填充上一行所有像素点,同样的,若该待编码子块为A1、A2、A3、B1、B2和B3组成的图像块,该待编码子块对应上一行参考的像素点为三个B0的重建值,进而,编码端可以根据这三个A0的重建值,确定该待编码子块的预测值。
或者,如图9中的(d)所示,编码端使用前一列的像素点A0和B0的重建值交替填充上一行所有像素点。
进而,编码端可以确定将该待编码子块相邻的上一行填充后的重建值的平均值,确定为该待编码子块的预测值。
另一些实施例中,编码端可以确定将该待编码子块相邻的前一列像素点的重建值的平均值,确定为该待编码子块的预测值。
示例性的,若当前编码块如图9中的(a)所示,该待编码块的大小为16x2像素点,包括两行像素点A1至A16、B1至B16,前一行已重建像素点包括C0、A0、B0。若该待编码子块为A1、A2、A3、B1、B2和B3组成的图像块,该待编码子块对应前一列参考的像素点为A0、B0,因此该待待编码子块的预测值为(A0的重建值+B0的重建值+1)/2。
其中,以上确定待编码子块的预测值的方式仅为示例性的,编码端还可以采用如步骤S102中所述的任一预测模式,或其他可能的预测模式确定待编码子块的预测值。可选的,编码端可以采用其中预设的一种预测模式确定待编码子块的预测值。
在一种可能的实现方式中,编码端对待编码子块的残差值进行量化,并对量化后的残差值进行编码,得到该待编码子块的码流。其中,残差值为待编码子块的原始值与预测值之间的差值。
可选的,在对待编码子块的残差值进行量化之前,还可以对该残差值进行变换处理。
进一步地,为了使该待编码子块可以作为其他待编码子块的预测值,可以重建该待编码子块。在重建该待编码子块时,编码端可以对残差值进行反量化,得到反量化后的残差值,并根据反量化后的残差值和预测值,重建待编码子块。
在另一种可能的实现方式中,编码端可以对待编码子块图像位宽的高位值进行量化,并对量化后的图像位宽的高位值进行编码。其中,用于指示图像位宽对应的二进制数的前N位的值,N为正整数。示例性的,N可以为4、5等可能的数字。可选的,该高位值可以为用于指代该待编码子块的颜色的数值。
进一步地,为了使该待编码子块可以作为其他待编码子块的预测值,可以重建该待编码子块。在重建该待编码子块时,编码端解析待编码子块对应的图像块的码流,得到待编码子块对应的图像位宽的高位值,进而可以对图像位宽的高位值进行反量化,得到反量化后的图像位宽的高位值,并与预测值的低位值组合,重建该待编码子块。
其中,预测值的低位值用于指示预测值对应的二进制数的后M位数值,M为正整数。示例性的,M可以为4、5等可能的数字。可选的,该低位值可以为用于指代该待编码子块的纹理的数值。其中,N与M之和为待解码子块的图像位宽,N为所述第一固定码长。
作为预测值的低位值的一种示例,若图像位宽(原始值的码长)为8,待编码子块的固定码长为4,此时,M、N均为4。若该待编码子块的预测值为127,二进制编码为01111111,其后四位也即低位值为1111即15,也即预测值的后4位为值为15。
在又一种可能的实现方式中,编码端可以对待编码子块图像位宽的低位值进行量化,并对量化后的图像位宽的低位值进行编码。其中,用于指示图像位宽对应的二进制数的后N位的值,N为正整数。可选的,该低位值可以为用于指代该待编码子块的纹理的数值。
进一步地,为了使该待编码子块可以作为其他待编码子块的预测值,可以重建该待编码子块。在重建该待编码子块时,编码端解析待编码子块对应的图像块的码流,得到待编码子块对应的图像位宽的低位值,进而可以对图像位宽的低位值进行反量化,得到反量化后的图像位宽的低位值,并与预测值的高位值组合,重建该待编码子块。
其中,预测值的高位值用于指示预测值对应的二进制数的前M位的值,M为正整数。可选的,该高位值可以为用于指代该待编码子块的颜色的数值。其中,N与M之和为待解码子块的图像位宽,N为所述第一固定码长。
作为预测值的高位值的一种示例,若图像位宽(原始值的码长)为8,待编码子块的固定码长为4,此时,M、N均为4。若该待编码子块的预测值为127,二进制编码为01111111,其前四位为0111,补零后二进制编码为01110000,也即预测值的前4位也即高位值为112。
可选的,对于各个待编码子块,若该待编码子块的系数值(例如残差值、原始值等)在第一固定长码可表达范围的边界上,则该子块的码流在传输过程中可以增加一个后缀,用于指示该子块的待编码子块的系数值。例如,若待编码子块的第一固定码长为3,由于3位的二进制数据可表示的系数值范围为[0,7],从而,若当前系数值在范围[1,8]之间,则编码端可以为该待编码子块的码流增加后缀0。其中,该后缀可以预设后缀设定规则确定。示例性的。预设后缀设定规则可以包括后缀0指示负数,后缀1指示整数,后缀0指示可表示的系数值范围向右增大一位例如上述范围[1,8],等可能的规则。基于该实施例,可以首先对待编码块划分为多个待编码子块,基于固定码长的编码方式,以第一固定码长编码各个待编码子块,从而可以使得待编码块编码后的码流小于码流缓冲器中可以缓存的最大码长,以避免出现码流上溢的情况。
在一些实施例中,本申请还提供一种图像解码方法,该解码方法与图5所示的编码方法相对应,如图10所示,图10为本申请提供的一种图像解码方法的流程示意图,该图像解码方法可以由解码器200执行,也可以由支持解码器200的功能的解码端(如图1所示出的解码端20)执行,这里以解码器200实现解码方法为例进行说明,该图像解码方法包括以下步骤:
S301、解码端基于待解码块的码流,确定待解码块对应的图像块是否采用回退模式。
其中,图像块基于回退模式编码时得到的码长小于或等于待解码块的最大码长,最大码长为用于缓存已编码码流的存储空间(码流缓冲器)在编码待图像块时允许缓存的最大码流长度。
其中,关于最大码长的相关解释可以参考上述步骤S101中的相关描述,在此不再赘述。
可选的,基于待解码块的码流,解码端还可以在待编码块的头信息中解析出待编码块的复杂度信息,进而确定出待编码块的量化步长。或者,解码端还可以在待编码块的头信息中解析出出待编码块的量化步长。又或者,解码端可以根据目标像素深度确定出待解码块的量化步长。
在一些实施例中,待解码块可以包括一个或多个分量。
可选的,待解码块可以包括仅包括亮度分量。或者,待解码块可以包括三个分量,例如亮度Y、色度Cb、色度Cr三个分量(或红R、绿G、蓝B三分量,或亮度Y、色度U、色度V三个分量)。又或者,在上述三分量的基础上,待解码块还可以包括α分量,也即待解码块共包括四分量。其中,α分量为像素透明度分量。当分量α值为0,则该解码块对应的像素是透明的,α分量的图像位宽与其他三分量不同。
在一些实施例中,若待解码块包括多个分量,待解码块的多个分量共享回退模式(共享回退模式即多个分量均采用回退模式或均不采用回退模式),从而,解码端可以仅确定其中一个分量是否采用回退模式,在其中一个分量采用回退模式的情形下,其他分量也采用回退模式。或者,待解码块的多个分量中的一部分分量共享回退模式,则解码端可以仅确定其中一部分分量中的一个分量是否采用回退模式、以及除该部分分量的其他分量是否采用回退模式。又或者,待解码块的多个分量均不共享回退模式,从而,解码端可以分别确定每一个分量是否采用回退模式。
具体的,待解码块的码流中可以包括用于指示上述共享回退模式的情形的标识。从而,解码端可以根据该标识,确定共享回退模式的分量,并进一步确定各个分量是否采用回退模式。
示例性的,若待解码块包括第一色度分量、第二色度分量以及亮度分量的情况下,解码端可以分别确定第一色度分量、第二色度分量以及亮度分量在编码时是否采用回退模式。
一种示例中,与上述步骤S103中的实现方式1相对应,在待解码块在编码时采用上述实现方式1选择是否采用回退模式时,解码端可以解析第一色度分量、第二色度分量或者亮度分量中任一分量的码流,确定第一色度分量、第二色度分量以及亮度分量在编码时是否采用回退模式。
具体的,在解码端解析第一色度分量、第二色度分量或者亮度分量中任一分量的码流,并确定该分量在编码时采用回退模式时,解码端可以确定第一色度分量、第二色度分量以及亮度分量在编码时均采用回退模式,则无需再次根据其他分量的码流确定是否采用回退模式。
另一种示例中,与上述步骤S103中的实现方式2相对应,在待解码块在编码时采用上述实现方式2选择是否采用回退模式时,解码端可以解析第一色度分量或第二色度分量的码流,确定第一色度分量和第二色度分量在编码时是否采用回退模式。
具体的,在解码端解析第一色度分量和第二色度分量或者亮度分量中任一分量的码流,并确定该分量在编码时采用回退模式时,解码端可以确定第一色度分量和第二色度分量以及亮度分量在编码时均采用回退模式。此外,解码端还需要解析亮度分量的码流,并确定亮度分量在编码时采用回退模式。
又一种示例中,与上述步骤S103中的实现方式3相对应,在待解码块在编码时采用上述实现方式3选择是否采用回退模式时,解码端解析第一色度分量、第二色度分量以及亮度分量的码流,分别确定第一色度分量、第二色度分量以及亮度分量在编码时是否采用回退模式。
在一些实施例中,原始值模式的码字和回退模式的码字相同。例如,原始值模式和回退模式的码字均为第一码字,则当解码端解析待解码块的码流,得到第一码字时,解码端可以确定待解码块采用回退模式或原始值模式。
进而,解码端可以根据码流缓冲器中的已占用内存空间的大小,确定待解码块是否采用回退模式。
在解码端确定编码该待解码图像块时码流缓冲器中的已占用内存空间大于第一预设内存值,也即将上溢的情况下,解码端确定待解码块对应的图像块采用回退模式。否则,解码端确定待解码块对应的图像块采用原始值模式。
第一预设内存值的大小可以根据码流缓冲器的实际内存大小确定,不做具体限制。
可选的,在解码端确定待编码块的码流长度为所有分量的图像位宽乘以像素个数之和,则解码端可以解析待解码块的码流,基于原始值模式重建待解码块的图像块。
在一些实施例中,在执行下述步骤S302之前,解码端还可以在待解码块对应的图像块采用回退模式时,确定出待解码块对应的图像块采用的预测模式。其中,该预测模式可以为如步骤S102中所述的任一预测模式,或其他可能的预测模式。
一种实现方式中,在待解码块包括一个分量时,解码端可以解析待解码块的码流,确定出该待解码块的预测模式。或者,解码端可以将预设的预测模式确定为该待解码块的预测模式,应理解,该预设的预测模式与编码端在预测过程中采用的预设的预测模式相同。
另一种实现方式中,在待解码块包括多个分量时,待解码块的多个分量可以采用同一预测模式,从而,解码端可以仅确定其中一个分量的预测模式,该预测模式即为待解码块所有分量的预测模式。或者,待解码块的多个分量中的一部分分量可以采用同一预测模式,则解码端可以仅确定其中一部分分量中的一个分量的预测模式、以及除该部分分量的其他分量的预测模式。又或者,解码端可以分别确定每一个分量的预测模式。
其中,解码端确定一个分量的预测模式的过程可以参考上述另一实现方式中的详细描述,在此不再赘述。
S302、解码端在待解码块对应的图像块采用回退模式时,获取第一固定码长。
其中,第一固定码长为一个待解码子块的码长,待解码块中包括多个待解码子块。
可选的,第一固定码长为预设码长值或者待编码块的目标像素深度,其中,目标像素深度用于指示在目标压缩率下编码待编码块的每个像素点时所需的码长。
在一些实施例中,解码端可以根据待解码块的码长和第一固定码长,将待解码块划分为多个待解码子块。
其中,待解码子块的数量可以根据以下公式(6)确定:
上述固定码长与待编码块中的待编码子块的个数满足下述公式(6):
待解码子块的数量×第一固定码长=待解码块的码长  公式(6)
进而,解码端可以根据计算得到的待编码子块的数量将待解码块划分为多个待解码子块。
在一些实施例中,解码端可以将待解码块基于预设大小将待解码块划分为多个待解码子块。
其中,解码端将待解码块划分为多个待解码子块的过程可以参考上述步骤S201的相关描述,不再赘述。
一些实施例中,在待解码块包括多个分量的情况下,解码端可以先将目标码长可以先将待解码块的划分为多个分量,再将各个分量划分为一个或多个子待解码块。
示例性的,待解码块块包括第一色度分量、第二色度分量以及亮度分量三个分量,解码端可以根据预设比值,将待解码块的码长划分为三个子码长,一个分量对应一个子码长。进而,基于各个分量的子码长,分别对各个子码长对应的分量,根据上述可能的实现方式,将该分量划分为一个或多个待解码子块。
可选的,对于YCoCg图像中的待解码块,Y分量:Co分量:Cg分量的预设比值可以为2:1:1。对于YUV444图像中的待解码块,Y分量:U分量:V分量的预设比值可以为2:1:1。对于YUV422图像中的待解码块,Y分量:U分量:V分量的预设比值可以为2:1:1。对于YUV420图像中的待解码块,Y分量:U分量:V分量的预设比值可以为4:1:1。对于YUV400图像中的待解码块,该待解码块中仅包括亮度分量。
可选的,对于RGB图像中的待解码块,解码端可以根据R分量:G分量:B分量的预设比值为1:1:1,将待解码块的总码长划分为三个子码长,一个分量对应一个子码长。
需要说明的是,在图像编解码过程中,对于RGB格式的图像块,由于人肉眼对于图像亮度更加敏感,为了提升人肉眼查看到的图像效果,通常会将RGB格式的图像块转化为YCoCg格式图像块,再进行编解码。但是,若获取到的待解码块对应的图像块为RGB格式,则说明编码端确定转化后的YCoCg格式的图像块编码所需的码长较长,则解码端可以直接解码RGB各个分量的码流,得到RGB格式该图像块。
进而,解码端可以根据各个分量中待解码子块的个数以及子码长,确定出该分量的第一固定码长。具体过程可以参考上述步骤S201,在此不再赘述。
另一些实施例中,在待解码块包括多个分量的情况下,解码端可以先将待解码块划分为一个或多个子解码块,进而,再对于每一个子解码块,按照各个分量的所占的比值,将子解码块进一步划分为各个分量的子块。
可选的,基于上述步骤S103中的相关描述,回退模式还可以用于待编码块未发生上溢的情况下,相应的,在该情况下,解码端可以在码流缓冲器中已占用内存小于或等于该码流缓冲器总内存的第一阈值时,确定待解码块的码长值为大于目标码长的其他码长值。示例性的,第一阈值可以为码流缓冲器总内存的30%。从而,解码端可以确定目标码长的1.5倍码长为待解码块的码长值。可选的,解码端可以在码流缓冲器中已占用内存大于或等于该码流缓冲器总内存的第二阈值时,确定待解码块的码长值为小于目标码长的其他码长值。示例性的,第二阈值可以为码流缓冲器总内存的85%。从而,解码端可以确定目标码长的0.5倍码长为待解码块的码长值。解码端还可以在码流缓冲器中已占用内存小于该码流缓冲器总内存的第二阈值时,大于第一阈值时,确定目标码长为待解码块的码长值。
可选的,是否上溢的信息可以携带在待解码块的码流中,从而,解码端可以基于待解码块的码流,确定在编码该图像块时,是否即将发生上溢。
可选的,解码端可以根据上述解析出的量化步长,确定出上述第一固定码长。
S303、解码端基于第一固定码长对待编码块的码流进行解析,以解码待解码块。
在一种可能的实现方式中,解码端可以获取第一固定码长,并基于第一固定码长,解析各个待解码子块的对应的图像块的原始像素值。
可选的,在编码端对图像块的原始像素值进行量化的情况下,解码端可以基于获取到的量化步长,对从码流中解析到的值进行反量化。
可选的,在量化之前,若编码端对图像块的原始像素值进行变换,则解码端可以在对从码流中解析到的值进行反量化之后,进一步对反量化之后的值进行反变换。
一种示例中,解码端解析待解码子块对应的图像块的码流,得到待解码子块对应的原始像素值的高位值,进而可以对原始像素值的高位值进行反量化,得到反量化后的原始像素值的高位值,并与预测值的低位值组合,重建该解码子块。
其中,原始像素值的高位值和预测值的低位值可以参考上述步骤S202中的相关描述,此处不再赘述。
另一种示例中,解码端解析待解码子块对应的图像块的码流,得到待解码子块对应的原始像素值的低位值,进而可以对原始像素值的低位值进行反量化,得到反量化后的原始像素值的地位值,并与预测值的高位值组合,重建该解码子块。
其中,原始像素值的低位值和预测值的高位值可以参考上述步骤S202中的相关描述,此处不再赘述。
在另一种可能的实现方式中,解码端可以获取固定码长,并基于固定码长,解析各个待解码子块的残差值。并对于任一待解码子块,获取该待解码子块的预测值。
进而,根据该待解码子块的预测值和残差值,重建待解码块的图像块。
可选的,在编码端对图像块的残差值进行量化的情况下,解码端可以基于获取到的量化步长,对从码流中解析到的值进行反量化。
可选的,在量化之前,若编码端对图像块的原始像素值进行变换,则解码端可以在对从码流中解析到的值进行反量化之后,进一步对反量化之后的值进行反变换。
可选的,对于各个待解码子块,若基于第一固定码长解析出的待解码子块的系数值(例如残差值、原始值等)在第一固定码长的可表达范围的边界上,则该子块的码流在传输过程中还包括一个后缀,该后缀用于指示该子块的待解码子块的系数值。例如,若待解码子块的第一固定码长为3,由于3位的二进制数据可表示的系数值范围为[0,7],若该子块的码流还包括一个后缀0,则说明当前系数值在范围[1,8]之间。应理解,该后缀可以根据预设后缀设定规则解析。并且,解码端的预设后缀设定规则与编码端的预设后缀设定规则相同。
基于上述实施例,在编码段采用回退模式时,解码端可以采用回退模式对待解码块进行解码,可以避免出现码流上溢的情况。进而避免待解码块的的图像信息丢失。
在一些实施例中,本申请提供的图像解码过程还可以具体表述为如图11所示的逻辑流程图。如图11所示,解码过程包括以下步骤:
S1、解码端解析待解码块的头信息,确定待解码块的量化步长。
S2、解码端解析待解码块的第一解码分量中用于指示的模式信息的码流,确定是否为第一码字。
其中,第一解码分量为待解码块的多个分量中的任一分量。此外,用于指示原始值模式的码字和回退模式的码字相同,均为上述第一码字,则当解码端解析待解码块的码流,得到第一码字时,解码端可以确定待解码块采用回退模式或原始值模式。
在解码端确定第一解码分量中用于指示的模式信息为第一码字时,执行下述步骤S3。
否则,在解码端确定第一解码分量中用于指示的模式信息不为第一码字时,参考上述步骤31至步骤36,解码端执行该解码流程,不再赘述。
S3、解码端根据码流缓冲器的状态,确定第一解码分量是否采用原始值模式。
其中,参考上述步骤S301中的相关描述,解码端可以基于码流缓冲器中的已占用内存空间的大小,确定待解码块采用回退模式或原始值模式,具体过程不再赘述。
在解码端确定第一解码分量采用原始值模式时,执行下述步骤S4。
否则,在解码端确定第一解码分量未采用原始值模式时,执行下述步骤S6。
S4、解码端将第一固定码长确定为第一解码分量指示的图像块的图像位宽,基于原始值模式,对第一解码分量进行解码。
其中,第一固定码长的确定过程参考上述步骤S302,不再赘述。
S5、解码端基于原始值模式,对待解码块的其他分量进行解码。
S6、解码端确定第一解码分量采用回退模式,并确定其他分量是否采用回退模式。
对于采用回退模式的任一分量,解码端执行步骤S7。
对于未采用回退模式的分量,参考上述步骤31至步骤36,解码端执行该解码流程解码该分量,不再赘述。
S7、解码端确定该分量采用的预测模式。
其中,待解码块各个分量采用的预测模式可以相同,也可以不相同,其具体过程可以参考上述步骤S301中的相关描述,此处不再赘述。
S8、解码端确定该分量采用的预测模式,并解析该预测模式下的预测块的相对位置信息,进而确定该分量的预测值。
S9、解码端确定该分量的分配的总码长、将该分量划分为多个待解码子块,并确定该分量各个带解码子块的固定码长。
解码端可以根据待解码块的量化步长确定各个待解码子块的固定码长。或者,解码端可以解析各个待解码子块的码流,进而确定出各个待解码子块的固定码长。
S10、根据各个待解码子块固定码长解析出该分量的残差值。
S11、根据该分量的量化步长对该残差值进行反量化。
S12、根据该分量的预测值和反量化后的残差值,确定该分量的重建值。
在一些实施例中,本申请还提供一种图像编码方法,如图12所示,该图像编码方法可以由编码器100执行,也可以由支持编码器100的功能的编码端(如图1所示出的编码端10)执行,这里以编码端实现编码方法为例进行说明,该图像编码方法包括以下步骤:
S401、编码端获取待编码块的最小码长。
其中,最小码长为编码端用于缓存已编码码流的存储空间当前允许缓存的最小码流长度。
其中,待编码块可以称为编码单元。通常,编码端在对待编码视频中的图像帧进行编码时,是以编码单元为单位进行编码的。
此外,上述最小码长用于指示该待编码块的可编码的最小码长。应理解,为防止出现码流下溢的情况,该最小码长可以根据如图1所示的编码缓冲器40的储存空间的大小确定。
可选的,存储空间中已存储的码流长度与存储空间在单位时间内输出的码长之间的差值与最小码长之和,大于或等于存储空间在单位时间内输出的码长。
需要说明是,由于码流缓冲器在接收编码器编码的当前块的码流的同时,还流出一定量的码流。若当前码流缓冲器中的码流为空,或者当前码流缓冲器中的码流长度小于缓冲器在单元时间内流出的码长,会出现码流“下溢”的情况,从而导致码流不能正常传输。最小码长可以为保证码流缓冲器中的码流正常传输的码长。
S402、编码端基于第一模式对待编码块进行预编码,得到待编码块的第一码长。
第一模式为编码端的多个预测模式中的一个,第一码长为待编码块编码后得到的码流的长度。
其中,步骤S402的具体描述可参考上述步骤S102中的相关描述,此处不再赘述。
S403、在第一码长小于或等于最小码长的情况下,编码端采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长大于或等于最小码长。
其中,步骤S403的具体描述可参考上述步骤S103中的相关描述,此处不再赘述。
本申请实施例提供的图像编码方法至少具有以下有益效果:该方法可以首先对待编码块进行预编码,基于预编码得到的码流长度与待编码块允许占用的最小码长对比,并根据对比结果,确定是否会出现码流下溢的情况。进而,在确定可能会出现码流下溢的情况时,采用回退模式对待编码块进行编码,以保证码流缓冲器中的码流正常传输。
在一些实施例中,本申请还提供一种图像解码方法,该解码方法与图12所示的编码方法相对应,如图13所示,该图像解码方法可以由解码器200执行,也可以由支持解码器200的功能的解码端(如图1所示出的解码端20)执行,这里以解码器200实现解码方法为例进行说明,该图像解码方法包括以下步骤:
S501、解码端基于待解码块的码流,确定待解码块对应的图像块在编码时是否采用回退模式。
其中,图像块基于回退模式编码时得到的码长大于或等于待解码块的最小码长,最小码长为用于缓存已编码码流的存储空间在编码待图像块时允许缓存的最小码流长度。
其中,步骤S501的具体实现可以参考上述步骤S301的相关描述,此处不再赘述。
S502、解码端在待解码块对应的图像块在编码时采用回退模式时,基于码流获取第一固定码长。
其中,第一固定码长为一个待解码子块的码长,待解码块中包括多个待解码子块。
其中,步骤S502的具体实现可以参考上述步骤S302的相关描述,此处不再赘述。
S503、解码端基于第一固定码长对码流进行解析,以解码待解码块。
其中,步骤S503的具体实现可以参考上述步骤S303的相关描述,此处不再赘述。
在一些实施例中,本申请还提供一种图像编码方法,如图14所示,该图像编码方法可以由编码器100执行,也可以由支持编码器100的功能的编码端(如图1所示出的编码端10)执行,这里以编码端实现编码方法为例进行说明,该图像编码方法包括以下步骤:
S601、编码端获取待编码块的最大码长。
其中,最大码长为编码端用于缓存已编码码流的存储空间当前允许缓存的最大码流长度。
其中,步骤S601的具体实现可以参考上述步骤S101的相关描述,此处不再赘述。
S602、编码端基于第一模式对待编码块进行预编码,得到待编码块的第一码长。
其中,第一模式为编码端的多个预测模式中的一个,第一码长为待编码块编码后得到的码流的长度。
其中,步骤6502的具体实现可以参考上述步骤S102的相关描述,此处不再赘述。
S603、编码端在第一码长大于或等于最大码长的情况下,基于强制跳过残差编码模式,采用第二模式对待编码块进行编码。
其中,基于残差编码模式对待编码块进行编码得到的码长小于或等于最大码长,第二模式(也即目标模式)为编码端的多个预测模式中的其中一个。
并且,在跳过残差编码模式下,无需编码(解码)残差系数,此时将当前图像块中的像素的残差值视为0,也即每个像素的重建值等于该像素的预测值。从而,编码端仅需对指示第二模式的信息进行编码。
需要说明的是,对于残差值较大的像素点,基于跳过残差模式,会使得编解码过程的失真较大,因此,实际情况下,在残差值较大时,编码端不会选择跳过残差模式。但是,在第一码长大于或等于最大码长的情况下,为了避免码流上溢,无论残差值的大小,编码端均采用跳过残差编码模式,也即强制跳过残差编码模式。
可选的,第二模式为上述目标预测模式。由于目标预测模式为最佳预测模式,基于目标对待编码块进行编码,可以保持较佳的编码性能。
可选的,第二模式为预设的预测模式。
可以理解,编码端可以预设基于跳过残差编码模式,编码性能较好的预测模式。在第三码长大于或等于最大码长的情况下,无论目标预测模式为何种预测模式,均采用二模式对待编码块进行编码。
可选的,编码端可以基于残差跳过模式,分别采用上述逐点预测模式,帧内预测模式,块复制模式和原始值模式等多种预测模式,对待编码块进行编码,以确定基于跳过残差编码模式下的最佳预测模式。
可以理解,基于该编码方法,可以在采用跳过残差编码模式进行编码的情况下,避免出现码流上溢的情况。
在一些实施例中,本申请还提供一种图像解码方法,该解码方法与图14所示的编码方法相对应,如图15所示,该图像解码方法可以由解码器200执行,也可以由支持解码器200的功能的解码端(如图1所示出的解码端20)执行,这里以解码器200实现解码方法为例进行说明,该图像解码方法包括以下步骤:
S701、解码端解析待解码块的码流,得到用于预测待解码块的第二模式的标识。
其中,第二模式可以为多个预测模式的任意一个。
S702、解码端基于第二模式,确定待解码块的预测值。
其中,解码端确定待解码块的预测值的具体过程基于第二模式而定。
例如,若第二模式为垂直均值预测。则解码端可以用待预测像素上下方像素的重建值来获待得预测像素的预测值。在此不再一一列举。
S703、解码端将待解码块的预测值确定为待解码块的重建值。
在一些实施例中,本申请还提供另一种确定图像块的预测值的方式,以下对该方式进行说明:
编码端可以首先获取该待编码块周围已重建像素点,具有以下几种可能的情形:
情形1、编码端无法获取待编码块的上一行已重建像素点,并且无法获取待编码块的前一列已重建像素点。
此时,编码端可以基于霍夫曼表1中的预测模式确定待编码块的预测值。霍夫曼表1中的预测模式包括逐点预测模式、原始值模式以及回退模式。应理解,在无法获取待编码块的上一行已重建像素点,并且无法获取待编码块的前一列已重建像素点时,基于逐点预测模式、原始值模式或者回退模式,编码端可以确定待编码块的预测值。
其中,霍夫曼编码是一种用于无损数据压缩的熵编码(权编码)算法。霍夫曼表是基于概率生成的码表,若编码端提供n个预测模式,以及这n个预测模式中各个预测模式的编码后的码字。其中,霍夫曼表中还包括实验统计的这n个预测模式中各个预测模式的选中概率,进而,选中概率较大的模式,其码字较短。选中概率较小的模式,其码字较长,如此,能使得编码后的平均码率较小。应理解,霍夫曼表1中包括逐点预测模式、原始值模式或者回退模式编码前的数据符号以及每个模式相对应的编码后的码字。
情形2、编码端可以获取待编码块的上一行已重建像素点,无法获取待编码块的前一列已重建像素点。
编码端可以将上一行已重建像素点作为参考像素,基于霍夫曼表2中的预测模式确定待编码块的预测值。其中,霍夫曼表2中的预测模式包括逐点预测模式、原始值模式、回退模式以及其他帧内预测模式中可以使用前一行作为参考像素的模式以及每个模式相对应的编码后的码字。
情形3、编码端可以获取待编码块的前一列已重建像素点,无法获取待编码块的上一行已重建像素点。
编码端可以将前一列已重建像素点作为参考像素,基于霍夫曼表3中的预测模式确定待编码块的预测值。其中,霍夫曼表3中的预测模式包括逐点预测模式、块预测模式,原始值模式、回退模式以及帧内预测模式中使用前一列作为参考像素的预测模式以及每个模式相对应的编码后的码字。
情形4、编码端可以获取待编码块的前一列已重建像素点和上一行已重建像素点。
编码端可以将前一列和/或上一行已重建像素点作为参考像素,基于霍夫曼表4中预测模式的确定待编码块的预测值。其中,霍夫曼表4中的预测模式可以包括所有可能的预测模式。该预测模式的列举和说明可以参考上述步骤S102中的相关描述,不再赘述。
相应的,解码端在确定待解码块的预测值时,可以首先获取该待解码块周围已重建像素点,同样具有与上述编码端相对应的四种可能的情形。
具体的,在与情形1对应的情形下,解码端无法获取待解码块的上一行已重建像素点,并且无法获取待解码块的前一列已重建像素点时,解码端可以基于待解码块中用于指示预测模式的码字,查找表1,确定预测模式,并进一步确定待解码块的预测值。在与情形2对应的情形下,解码端解码端可以获取待解码块的上一行已重建像素点,无法获取待解码块的前一列已重建像素点时,解码端可以基于待解码块中用于指示预测模式的码字,查找表2,确定预测模式,并进一步确定待解码块的预测值。在与情形3对应的情形下,解码端可以获取待解码块的前一列已重建像素点,无法获取待解码块的上一行已重建像素点时,解码端可以基于待解码块中用于指示预测模式的码字,查找表3,确定预测模式,并进一步确定待解码块的预测值。在与情形4对应的情形下,解码端可以获取待解码块的前一列已重建像素点和上一行已重建像素点时,解码端可以基于待解码块中用于指示预测模式的码字,查找表4,确定预测模式,并进一步确定待解码块的预测值。
在一些实施例中,上述各个实施例中对待编码子块进行编码时,还提供一种半定长编码方式。在不冲突的前提下,上述各个实施例中提供的方法也可以采用半定长编码方式。
其中,半定长编码方式是指对于待编码块的一个或多个待编码子块,编码端可以基于不同的码长分别编码各个待编码子块。对于包含多个像素点的待编码子块,编码端可以采用一个固定码长对各个像素点进行编码,并将该固定码长编码后的码字部署在该待编码子块的码流前缀中。
相应的,解码端可以解析各个待编码子块的前缀,解析出各个待解码子块的各个固定码长,对于一个待解码子块,解码端可以基于该待解码子块解析出的固定码长值解码各个像素点。
以下,说明本申请实施例提供的编码装置和解码装置。
在一个示例中,本申请实施例提供的任一种解码装置均可以是图1中的解码端10或解码器100。在另一个示例中,以下提供的任一种编码装置均可以是图1中的编码端20或编码器200。此处统一说明,下文不再赘述。
图16为本申请提供的一种图像编码装置1600的结构示意图,上述任一种编码方法实施例都可以由该编码装置1600执行。该图像编码装置1600包括获取模块1601、处理模块1602以及编码模块1603。其中,获取模块1601,用于获取待编码块的最大码长,最大码长为编码端用于缓存已编码码流的存储空间当前允许缓存的最大码流长度。处理模块1602,用于基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个,第一码长为待编码块编码后得到的码流的长度。编码模,1603,用于在第一码长大于或等于最大码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长小于或等于最大码长。
有关上述获取模块1601、处理模块1602以及编码模块1603更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图17为本申请提供的一种图像解码装置1700的结构示意图,上述任一种解码方法实施例都可以由该解码装置1700执行。该图像解码模块1700包括确定模块1701和解析模块1702。其中,确定模块1701,用于基于待解码块的码流,基于待解码块的码流,确定待解码块对应的图像块是否采用回退模式。所述确定模块1701,还用于在待解码块对应的图像块采用回退模式时,获取第一固定码长。解析模块1702,用于基于第一固定码长对待编码块的码流进行解析,以解码待解码块。
有关上述确定模块1701和解析模块1702更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图18为本申请提供的一种图像编码装置1800的结构示意图,上述任一种编码方法实施例都可以由该编码装置1800执行。该图像编码装置1800包括获取模块1801、处理模块1802以及编码模块1803。其中,获取模块1801,用于获取待编码块的最小码长,最小码长为编码端用于缓存已编码码流的存储空间当前允许缓存的最小码流长度。处理模块1802,用于基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度。编码模块1803,用于在第一码长小于或等于最小码长的情况下,采用回退模式对待编码块进行编码,其中,基于回退模式对待编码块进行编码得到的码长大于或等于最小码长。
有关上述获取模块1801、处理模块1802以及编码模块1803更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图19为本申请提供的一种图像解码装置1900的结构示意图,上述任一种解码方法实施例都可以由该解码装置1900执行。该图像解码模块1900包括确定模块1901和解析模块1902。其中,确定模块1901,用于基于待解码块的码流,确定待解码块对应的图像块在编码时是否采用回退模式,其中,图像块基于回退模式编码时得到的码长大于或等于待解码块的最小码长,最小码长为用于缓存已编码码流的存储空间在编码待图像块时允许缓存的最小码流长度。确定模块1901,还用于在待解码块对应的图像块在编码时采用回退模式时,基于码流获取第一固定码长,第一固定码长为一个待解码子块的码长,待解码块中包括多个待解码子块。解析模块1902,用于基于第一固定码长对所码流进行解析,以解码所述待解码块。
有关上述确定模块1901和解析模块1902更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图20为本申请提供的一种图像编码装置2000的结构示意图,上述任一种编码方法实施例都可以由该编码装置2000执行。该图像编码装置2000包括获取模块2001、处理模块2002以及编码模块2003。其中,获取模块2001,用于获取待编码块的最大码长,最大码长为编码端用于缓存已编码码流的存储空间当前允许缓存的最大码流长度。处理模块2002,用于基于第一模式对待编码块进行预编码,得到待编码块的第一码长,第一模式为编码端的多个预测模式中的一个;第一码长为待编码块编码后得到的码流的长度。编码模块2003,用于在第一码长大于或等于最大码长的情况下,基于跳过残差编码模式,采用第二模式对待编码块进行编码,其中,基于残差编码模式对待编码块进行编码得到的码长小于或等于最大码长,第二模式为编码端的多个预测模式中的其中一个。
有关上述获取模块2001、处理模块2002以及编码模块2003更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图21为本申请提供的一种图像解码装置2100的结构示意图,上述任一种解码方法实施例都可以由该解码装置2100执行。该图像解码模块2100包括解析模块2101、预测模块2102以及重建模块2103。其中,解析模块2101,用于解析待解码块的码流,得到用于预测待解码块的第二模式的标识。预测模块2102,用于基于第二模式,确定待解码块的预测值。重建模块2103,用于将待解码块的预测值确定为待解码块的重建值。
有关上述解析模块2101、预测模块2102以及重建模块2103更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
本申请还提供一种电子设备,用于执行上述任意图像编码/解码方法的实施例。如图22所示,图22为本申请提供的一种电子设备的结构示意图,电子设备2200包括处理器2201和通信接口2202。处理器2201和通信接口2202之间相互耦合。可以理解的是,通信接口2202可以为收发器或输入输出接口。
在一个示例中,电子设备2200还可以包括存储器2203,用于存储处理器2201执行的指令或存储处理器2201运行指令所需要的输入数据或存储处理器2201运行指令后产生的数据。
本申请实施例中不限定上述通信接口2202、处理器2201以及存储器2203之间的具体连接介质。本申请实施例在图22中以通信接口2202、处理器2201以及存储器2203之间通过总线2204连接,总线在图22中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图22中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2203可用于存储软件程序及模块,如本申请实施例所提供的图像解码方法或图像编码方法对应的程序指令/模块,处理器2201通过执行存储在存储器2203内的软件程序及模块,从而执行各种功能应用以及数据处理,以实现上文提供的任一种图像解码方法或图像编码方法。该通信接口2202可用于与其他设备进行信令或数据的通信。在本申请中该电子设备2200可以具有多个通信接口2202。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing Unit,CPU)、神经处理器(neural processing unit,NPU)或图形处理器(graphic processing unit,GPU),还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
本申请实施例还提供一种编解码系统,包括编码端和解码端,该编码端可以用于执行上文提供的任意一种图像编码方法,解码端用于执行对应的图像解码方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

Claims (26)

1.一种图像解码方法,其特征在于,所述方法应用于解码端,所述方法包括:
基于待解码块的码流,确定所述待解码块对应的图像块是否采用回退模式,其中,所述图像块待解码块的码长小于或等于所述待解码块的最大码长,所述最大码长为码流缓冲器中允许缓存的最大码流长度;
在所述待解码块对应的图像块采用回退模式时,获取第一固定码长,所述第一固定码长为一个待解码子块的码长,所述待解码块中包括一个或多个所述待解码子块;
基于所述第一固定码长对所述码流进行解析,以解码所述待解码块。
2.根据权利要求1所述的方法,其特征在于,所述待解码块包括一个或多个分量,所述解码端分别确定所述一个或多个分量是否采用所述回退模式。
3.根据权利要求1所述的方法,其特征在于,所述待解码块包括第一色度分量、第二色度分量以及亮度分量,所述基于待解码块的码流,确定所述待解码块对应的图像块在编码时否采用回退模式,包括:
解析所述第一色度分量、所述第二色度分量或者所述亮度分量中任一分量的码流,确定所述第一色度分量、所述第二色度分量以及所述亮度分量是否采用所述回退模式;或者,
解析所述第一色度分量或所述第二色度分量的码流,确定所述第一色度分量和所述第二色度分量是否采用所述回退模式;或者,
解析所述第一色度分量、所述第二色度分量以及所述亮度分量的码流,分别确定所述第一色度分量、所述第二色度分量以及所述亮度分量是否采用所述回退模式。
4.根据权利要求3所述的方法,其特征在于,所述第一色度分量的码长、所述第二色度分量的码长与所述亮度分量的码长之和为所述待解码块的码长;所述亮度分量的码长大于所述第一色度分量的码长或所述第二色度分量的码长。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一固定码长为预设码长值或者所述待解码块的目标像素深度,所述目标像素深度用于指示在目标压缩率下解码所述待解码块的每个像素点时所需的码长。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一固定码长对所述码流进行解析,以解码所述待解码块,包括:
根据所述待解码块的码长和所述第一固定码长,将所述待解码块划分为多个待解码子块;
基于所述第一固定码长对所述待解码块的每个待解码子块的码流进行解析,以解码所述待解码块。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述获取第一固定码长,包括:
将所述待解码块划分为多个待解码子块;
基于所述待解码块的码长和所述多个待解码子块的数量,确定第一固定码长。
8.根据权利要求7所述的方法,其特征在于,所述将所述待解码块划分为多个待解码子块,包括:
以预设大小将所述待解码块划分为多个待解码子块。
9.根据权利要求1至4、6、8中任一项所述的方法,其特征在于,所述基于所述第一固定码长对各个待解码子块的码流进行解析,以解码所述待解码块,包括:
基于所述第一固定码长对所述待解码块的每个待解码子块的码流进行解析,得到所述每个待解码子块的图像位宽的高位值,所述的图像位宽的高位值用于指示所述图像位宽对应的二进制数的前N位值,N为正整数;
根据所述每个待解码子块的预测值的低位值和所述每个待解码子的图像位宽的高位值,重建所述每个待解码子块,以得到所述每个待解码子块的重建块;所述预测值的低位值用于指示所述预测值对应的二进制数的后M位数值,M为正整数;
其中,N与M之和为所述待解码子块的图像位宽,N为所述第一固定码长。
10.根据权利要求1至4、6、8中任一项所述的方法,其特征在于,所述基于所述第一固定码长对所码流进行解析,以解码所述待解码块包括:
基于所述第一固定码长对所述待解码块的每个待解码子块的码流进行解析,得到所述每个待解码子块对应的图像位宽的低位值,所述图像位宽的低位值用于指示所述图像位宽对应的二进制数的后N位值,N为正整数;
根据所述每个待解码子块的预测值的高位值和所述每个待解码子对应的图像位宽的低位值,重建所述每个待解码子块,以得到所述每个待解码子块的重建块;所述预测值的高位值用于指示所述预测值对应的二进制数的前M位数值,M为正整数;
其中,N与M之和为所述待解码子块的图像位宽,N为所述第一固定码长。
11.根据权利要求1至4、6、8中任一项所述的方法,其特征在于,所述基于所述第一固定码长对所码流进行解析,以解码所述待解码块包括:
基于所述第一固定码长对所述待解码块的每个待解码子块的码流进行解析,得到所述每个待解码子块的残差值;
根据所述每个待解码子块的预测值和所述残差值,对所述每个待解码子块进行重建,以得到所述每个待解码子块的重建块。
12.根据权利要求1至4、6、8中任一项所述的方法,其特征在于,所述方法还包括:
在所述待解码块的码流中用于指示预测模式的码字为第一码字,且所述待解码块对应的图像块未采用回退模式时,基于原始值模式重建所述待解码块的图像块,其中,所述第一码字为用于指示所述回退模式或所述原始值模式。
13.一种图像编码方法,其特征在于,所述方法应用于编码端,所述方法包括:
获取待编码块的最大码长,所述最大码长为码流缓冲器中允许缓存的最大码流长度;
基于第一模式对所述待编码块进行预编码,得到所述待编码块的第一码长,所述第一模式为所述编码端的多个预测模式中的一个;所述第一码长为所述待编码块编码后得到的码流的长度;
在所述第一码长大于或等于所述最大码长的情况下,采用回退模式对所述待编码块进行编码,其中,基于所述回退模式对所述待编码块进行编码得到的码长小于或等于所述最大码长。
14.根据权利要求13所述的方法,其特征在于,所述待编码块包括第一色度分量、第二色度分量以及亮度分量,则所述在所述第一码长大于或等于所述最大码长的情况下,采用回退模式对所述待编码块进行编码,包括:
在所述第一码长大于或等于所述最大码长的情况下,根据所述最大码长,按照预设比值确定每个分量的码长,其中,所述第一色度最大码长、第二色度最大码长与第三色度最大码长之和为所述最大码长或所述码流缓冲器在单位时间内流出的码长;
根据所述第一色度最大码长、所述第二色度最大码长及所述亮度最大码长中的一个或多个,确定所述第一色度分量、所述第二色度分量以及所述亮度分量是否采用回退模式进行编码。
15.一种图像解码方法,其特征在于,所述方法应用于解码端,所述方法包括:
基于待解码块的码流,确定所述待解码块对应的图像块在编码时是否采用回退模式,其中,所述图像块基于所述回退模式编码时得到的码长大于或等于所述待解码块的最小码长,所述最小码长为码流缓冲器中允许缓存的最小码流长度;
在所述待解码块对应的图像块在编码时采用回退模式时,基于所述码流获取第一固定码长,所述第一固定码长为一个待解码子块的码长,所述待解码块中包括一个或多个所述待解码子块;
基于所述第一固定码长对所述码流进行解析,以解码所述待解码块。
16.一种图像编码方法,其特征在于,所述方法应用于编码端,所述方法包括:
获取待编码块的最小码长,所述最小码长为码流缓冲器中允许缓存的最小码流长度;
基于第一模式对所述待编码块进行预编码,得到所述待编码块的第一码长,所述第一模式为所述编码端的多个预测模式中的一个;所述第一码长为所述待编码块编码后得到的码流的长度;
在所述第一码长小于或等于所述最小码长的情况下,采用回退模式对所述待编码块进行编码,其中,基于所述回退模式对所述待编码块进行编码得到的码长大于或等于所述最小码长。
17.一种图像解码方法,其特征在于,所述方法应用于解码端,所述方法包括:
解析待解码块的码流,确定是否使用强制跳过残差模式;
在使用强制残差跳过模式的情况下,确定所述待解码块的目标模式,所述目标模式为所述解码端的多个预测模式中的一个;
基于所述目标模式,确定所述待解码块的预测值;
将所述待解码块的预测值确定为所述待解码块的重建值。
18.一种图像编码方法,其特征在于,所述方法应用于编码端,所述方法包括:
获取待编码块的最大码长,所述最大码长为码流缓冲器中允许缓存的最大码流长度;
基于第一模式对所述待编码块进行预编码,得到所述待编码块的第一码长,所述第一模式为所述编码端的多个预测模式中的一个;所述第一码长为所述待编码块编码后得到的码流的长度;
在所述第一码长大于或等于所述最大码长的情况下,基于强制跳过残差编码模式,采用第二模式对待编码块进行编码,其中,基于所述强制跳过残差编码模式对所述待编码块进行编码得到的码长小于或等于所述最大码长,所述第二模式为所述编码端的多个预测模式中的其中一个。
19.一种图像解码装置,其特征在于,所述装置包括:
确定模块,用于基于待解码块的码流,确定所述待解码块对应的图像块在编码时是否采用回退模式,其中,所述图像块基于所述回退模式编码时得到的码长小于或等于所述待解码块的最大码长,所述最大码长为码流缓冲器中允许缓存的最大码流长度;
所述确定模块,还用于在所述待解码块对应的图像块在编码时采用回退模式时,基于所述码流获取第一固定码长,所述第一固定码长为一个待解码子块的码长,所述待解码块中包括多个所述待解码子块;
解析模块,用于基于所述第一固定码长对所码流进行解析,以解码所述待解码块。
20.一种图像编码装置,其特征在于,所述装置包括:
获取模块,用于获取待编码块的最大码长,所述最大码长为码流缓冲器中允许缓存的最大码流长度;
处理模块,用于基于第一模式对所述待编码块进行预编码,得到所述待编码块的第一码长,所述第一模式为编码端的多个预测模式中的一个;所述第一码长为所述待编码块编码后得到的码流的长度;
编码模块,用于在所述第一码长大于或等于所述最大码长的情况下,采用回退模式对所述待编码块进行编码,其中,基于所述回退模式对所述待编码块进行编码得到的码长小于或等于所述最大码长。
21.一种图像解码装置,其特征在于,所述装置包括:
确定模块,用于基于待解码块的码流,确定所述待解码块对应的图像块在编码时是否采用回退模式,其中,所述图像块基于所述回退模式编码时得到的码长大于或等于所述待解码块的最小码长,所述最小码长为码流缓冲器中允许缓存的最小码流长度;
所述确定模块,还用于在所述待解码块对应的图像块在编码时采用回退模式时,基于所述码流获取第一固定码长,所述第一固定码长为一个待解码子块的码长,所述待解码块中包括多个所述待解码子块;
解析模块,用于基于所述第一固定码长对所码流进行解析,以解码所述待解码块。
22.一种图像编码装置,其特征在于,所述装置包括:
获取模块,用于获取待编码块的最小码长,所述最小码长为码流缓冲器中允许缓存的最小码流长度;
处理模块,用于基于第一模式对所述待编码块进行预编码,得到所述待编码块的第一码长,所述第一模式为编码端的多个预测模式中的一个;所述第一码长为所述待编码块编码后得到的码流的长度;
编码模块,用于在所述第一码长小于或等于所述最小码长的情况下,采用回退模式对所述待编码块进行编码,其中,基于所述回退模式对所述待编码块进行编码得到的码长大于或等于所述最小码长。
23.一种图像解码装置,其特征在于,所述装置包括:
解析模块,用于解析待解码块的码流,确定是否使用强制残差跳过模式;
确定模块,用于在使用强制残差跳过模式的情况下,确定所述待解码块的第二模式,所述第二模式为解码端的多个预测模式中的一个;
预测模块,用于基于所述第二模式,确定所述待解码块的预测值;
重建模块,用于将所述待解码块的预测值确定为所述待解码块的重建值。
24.一种图像编码装置,其特征在于,所述装置包括:
获取模块,用于获取待编码块的最大码长,所述最大码长为码流缓冲器中允许缓存的最大码流长度;
处理模块,用于基于第一模式对所述待编码块进行预编码,得到所述待编码块的第一码长,所述第一模式为编码端的多个预测模式中的一个;所述第一码长为所述待编码块编码后得到的码流的长度;
编码模块,用于在所述第一码长大于或等于所述最大码长的情况下,基于跳过残差编码模式,采用第二模式对待编码块进行编码,其中,基于所述残差编码模式对所述待编码块进行编码得到的码长小于或等于所述最大码长,所述第二模式为所述编码端的多个预测模式中的其中一个。
25.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,实现权利要求1-18中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被电子设备执行时,实现权利要求1-18中任一项所述的方法。
CN202210631100.9A 2022-06-06 2022-06-06 一种图像编解码方法及装置 Pending CN116074516A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202310503347.7A CN116489360A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置
CN202210631100.9A CN116074516A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置
PCT/CN2023/098534 WO2023236936A1 (zh) 2022-06-06 2023-06-06 一种图像编解码方法及装置
TW112121009A TW202349950A (zh) 2022-06-06 2023-06-06 圖像編解碼方法及裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210631100.9A CN116074516A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310503347.7A Division CN116489360A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置

Publications (1)

Publication Number Publication Date
CN116074516A true CN116074516A (zh) 2023-05-05

Family

ID=86172163

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210631100.9A Pending CN116074516A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置
CN202310503347.7A Pending CN116489360A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310503347.7A Pending CN116489360A (zh) 2022-06-06 2022-06-06 一种图像编解码方法及装置

Country Status (3)

Country Link
CN (2) CN116074516A (zh)
TW (1) TW202349950A (zh)
WO (1) WO2023236936A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236936A1 (zh) * 2022-06-06 2023-12-14 杭州海康威视数字技术股份有限公司 一种图像编解码方法及装置
WO2024022359A1 (zh) * 2022-07-27 2024-02-01 杭州海康威视数字技术股份有限公司 一种图像编解码方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3662171B2 (ja) * 2000-06-05 2005-06-22 三菱電機株式会社 符号化装置及び符号化方法
CN109245852B (zh) * 2017-07-11 2022-02-11 华为技术有限公司 Polar码的速率匹配方法及装置
JP6985924B2 (ja) * 2017-12-21 2021-12-22 キヤノン株式会社 画像符号化装置、画像処理装置、画像符号化方法
JP2021103875A (ja) * 2019-12-25 2021-07-15 キヤノン株式会社 画像符号化装置及び画像復号装置、並びにそれらの制御方法及びプログラム、及び、撮像装置
CN116074516A (zh) * 2022-06-06 2023-05-05 杭州海康威视数字技术股份有限公司 一种图像编解码方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236936A1 (zh) * 2022-06-06 2023-12-14 杭州海康威视数字技术股份有限公司 一种图像编解码方法及装置
WO2024022359A1 (zh) * 2022-07-27 2024-02-01 杭州海康威视数字技术股份有限公司 一种图像编解码方法及装置

Also Published As

Publication number Publication date
CN116489360A (zh) 2023-07-25
WO2023236936A1 (zh) 2023-12-14
TW202349950A (zh) 2023-12-16

Similar Documents

Publication Publication Date Title
KR102336571B1 (ko) 적응형 컬러 공간 변환 코딩
KR102229045B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
US11973986B2 (en) Video signal processing method and device using secondary transform
US11570478B2 (en) Video signal processing method and apparatus using multiple transform kernels
CN115152223A (zh) 对用于视频编解码的高级语法的输出层集数据和一致性窗口数据进行编解码
US11432013B2 (en) Video signal processing method and apparatus using multiple transform kernel
US20220312033A1 (en) Video signal processing method and device using block dpcm prediction method
Walls et al. VESA display stream compression for television and cinema applications
CN116074516A (zh) 一种图像编解码方法及装置
CN108432249B (zh) 用于在显示流压缩(dsc)中计算失真的系统和方法
WO2024022359A1 (zh) 一种图像编解码方法及装置
CN117426088A (zh) 视频编解码方法、设备、系统、及存储介质
WO2024022039A1 (zh) 一种视频图像解码方法、编码方法、装置及存储介质
CN116156168A (zh) 一种图像编解码方法及装置
CN115866297A (zh) 视频处理方法、装置、设备及存储介质
CN116071440A (zh) 一种图像解码方法、编码方法及装置
CN115550666A (zh) 用于视频数据的编码方法、解码方法、计算设备和介质
CN117121485A (zh) 视频编解码方法与系统、及视频编解码器
CN116982312A (zh) 视频编解码方法与系统、及视频编解码器
CN116962684A (zh) 视频编解码方法与系统、及视频编码器与视频解码器
TW202327356A (zh) 圖像解碼方法及裝置、圖像編碼方法及裝置
CN116074531A (zh) 解码方法、编码方法及装置
CN116684609A (zh) 图像编解码方法、装置及存储介质
CN116918326A (zh) 视频编解码方法与系统、及视频编码器与视频解码器
CN116684621A (zh) 一种图像解码方法、编码方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40093825

Country of ref document: HK