CN116132685A - 图像编解码方法、装置及存储介质 - Google Patents

图像编解码方法、装置及存储介质 Download PDF

Info

Publication number
CN116132685A
CN116132685A CN202211146464.4A CN202211146464A CN116132685A CN 116132685 A CN116132685 A CN 116132685A CN 202211146464 A CN202211146464 A CN 202211146464A CN 116132685 A CN116132685 A CN 116132685A
Authority
CN
China
Prior art keywords
coding
channels
encoding
mode
blocks
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
CN202211146464.4A
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 CN202310453437.XA priority Critical patent/CN116248881A/zh
Priority to CN202211146464.4A priority patent/CN116132685A/zh
Priority to CN202310452348.3A priority patent/CN116437095A/zh
Publication of CN116132685A publication Critical patent/CN116132685A/zh
Priority to PCT/CN2023/118293 priority patent/WO2024061055A1/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/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/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/103Selection of coding mode or of prediction mode
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供一种图像编解码方法、装置及存储介质,涉及视频编解码领域,该编码方法包括:获取编码单元;编码单元为待处理图像中的图像块;编码单元包括多个通道的编码块;多个通道包括第一通道;第一通道为多个通道中的任意一个通道;按照第一编码模式对第一通道的编码块进行编码;第一编码模式为按照第一定长码对第一通道的编码块中的样本值进行编码的模式;第一定长码的码长小于或等于待处理图像的图像位宽;图像位宽用于表征存储待处理图像中每个样本所需的比特位数。该方法适用于图像编解码过程中,用于解决子流缓冲区设置过大的问题。

Description

图像编解码方法、装置及存储介质
技术领域
本申请涉及视频编解码领域,尤其涉及一种图像编解码方法、装置及存储介质。
背景技术
为了提升编码器的性能,提出了一种名为子流并行的技术。
子流并行是指利用多个熵编码器将不同通道的语法元素进行编码得到多个子流,并将多 个子流填充入各自对应的子流缓冲区,并按照预设的交织规则将子流缓冲区中的子流交织成 比特流(或者也可以称作码流)。
但是,考虑到子流之间的依赖性,不同的子流缓冲区中填充子流的速度不同,同一时间 填充速度较快的子流缓冲区比填充速度较慢的子流缓冲区中填充的子流位数多,为了保证填 充数据的完整性,需要将所有的子流缓冲区设置得较大,增加了硬件成本。
发明内容
基于上述技术问题,本申请提供一种图像编解码方法、装置及存储介质,可以通过多种 改进后的编解码模式来进行编码,通过降低编码单元的理论膨胀率和实际膨胀率来缩小不同 的子流在编码时的速度差异,合理配置子流缓冲区的空间,降低硬件成本。
其中,编码单元的膨胀率可以包括理论膨胀率和当前(CU)膨胀率(实际膨胀率)。理论 膨胀率在编解码器确定后,通过理论推导即可得出,其值大于1。若编码单元存在某一通道 的编码块编码后的子流的比特数为0,则计算当前膨胀率时需要除去该种情况。理论膨胀率= CU中理论比特数最大的CB的比特数/CU中理论比特数最小的CB的比特数。当前(CU)膨胀 率=当前CU中实际比特数最大的CB的比特数/当前CU中实际比特数最小的CB的比特数。
可选地,相关的膨胀率还可以包括当前子流膨胀率。当前子流膨胀率=当前多个子流缓冲 区中数据的比特数最大的子流缓冲区中的数据的比特数/当前多个子流缓冲区中数据的比特 数最小的子流缓冲区中的数据的比特数。
第一方面,本申请提供一种图像编码方法,该方法包括:获取编码单元;编码单元为待 处理图像中的图像块;编码单元包括多个通道的编码块;多个通道包括第一通道;第一通道 为多个通道中的任意一个通道;按照第一编码模式对第一通道的编码块进行编码;第一编码 模式为按照第一定长码对第一通道的编码块中的样本值进行编码的模式;第一定长码的码长 小于或等于待处理图像的图像位宽;图像位宽用于表征存储待处理图像中每个样本所需的比 特位数。
应理解,防膨胀模式是指对多个通道的编码块中的原始像素值直接进行编码的模式,与 其他编码模式相比,直接编码原始像素值所消耗的比特数通常较大,因此,理论膨胀率中的 理论比特数最大的编码块通常来自于按照防膨胀模式进行编码的编码块。本申请实施例通过 降低防膨胀模式中定长码的码长,来降低理论膨胀率中理论比特数最大的编码块的理论比特 数(也即分式中的分子),从而降低理论膨胀率。理论膨胀率较低,各个通道的编码块编码子 流的速度差异较小,因此设置子流缓冲区时,既不会将子流缓冲区较大,也不会导致子流缓 冲区空间浪费,从而实现对子流缓冲区的合理配置。
第二方面,本申请提供一种图像解码方法,该方法包括:获取对编码单元编码后的码流; 编码单元为待处理图像中的图像块;编码单元包括多个通道的编码块;多个通道包括第一通 道;第一通道为多个通道中的任意一个通道;码流包括多个通道的编码块编码后的、与多个 通道一一对应的多个子流;按照第一解码模式对第一通道对应的子流进行解码;第一解码模 式为按照第一定长码从第一通道对应的子流解析样本值的模式;第一定长码的码长小于或等 于待处理图像的图像位宽;图像位宽用于表征存储待处理图像中每个样本所需的比特数。
第三方面,本申请提供一种图像编码方法,该方法包括:获取编码单元;编码单元为待 处理图像中的图像块;编码单元包括多个通道的编码块;确定第一总码长;第一总码长为多 个通道的编码块均按照各自对应的目标编码模式编码后得到的的第一码流的总码长;目标编 码模式包括第一编码模式;第一编码模式为按照第一定长码对编码块中的样本值进行编码的 模式;第一定长码的码长小于或等于待处理图像的图像位宽;图像位宽用于表征存储待处理 图像中每个样本所需的比特位数;当第一总码长大于或等于码流缓冲区的剩余大小时,将多 个通道的编码块按照回退模式进行编码;回退模式和第一编码模式的模式标志相同。
应理解,当采用其他编码模式编码时可能会出现编码后的残差过大的情况,导致采用该 其他编码模式的编码块的比特数过大,而防膨胀模式是采用定长码编码,编码后的总码长固 定,采用防膨胀模式可以避免上述残差过大的情况。本申请实施例提供了一种在回退模式和 第一编码模式(防膨胀模式)的模式标志相同的情况下,通过判断码流缓冲区的剩余大小来 向解码端告知采用的编码模式的方案,保障了防膨胀模式一直可以被选用,从而降低了理论 膨胀率,理论膨胀率较低,各个通道的编码块编码子流的速度差异较小,因此设置子流缓冲 区时,既不会导致子流缓冲区较大,也不会导致子流缓冲区空间浪费,从而实现对子流缓冲 区的合理配置。
可选地,该方法还包括:在多个通道的编码块编码得到的多个子流中编码模式标志;模 式标志用于指示多个通道的编码块各自采用的编码模式。
一种可能的实现方式中,多个通道包括第一通道;第一通道为多个通道中的任意一个通 道;在多个通道的编码块编码得到的子流中编码模式标志,包括:在第一通道的编码块编码 得到的子流中编码子模式标志;子模式标志用于指示多个通道的编码块所采用的回退模式的 种类。
另一种可能的实现方式中,多个通道包括第一通道;第一通道为多个通道中的任意一个 通道在多个通道的编码块编码得到的子流中编码模式标志,包括:在第一通道的编码块编码 得到的子流中编码第一标志、第二标志、以及第三标志;第一标志用于指示多个通道的编码 块采用第一编码模式或者回退模式编码;第二标志用于指示多个通道的编码块采用目标模式 编码,目标模式为第一编码模式和回退模式中的任意一种;当第二标志指示多个通道的编码 块采用的目标模式为回退模式时,第三标志用于指示多个通道的编码块采用的回退模式的种 类。
可选地,该方法还包括:基于码流缓冲区的剩余大小、以及目标像素深度BPP,确定编 码单元的目标编码码长;目标编码码长用于指示编码编码单元所需的码长;基于编码码长, 确定多个通道的分配码长;分配码长用于指示编码多个通道的编码块的残差所需的码长;根 据分配码长在多个通道的平均值,确定多个通道各自分配的编码码长。
第四方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码流; 编码单元包括多个通道的编码块;若从多个通道的编码块编码得到的子流中解析出模式标志, 且第一总码长大于码流缓冲区的剩余大小,则确定子流的目标解码模式为回退模式;模式标 志用于指示多个通道的编码块采用第一编码模式或者回退模式进行编码;第一总码长为多个 分量通道的编码块均按照各自对应的目标编码模式第一编码模式进行编码后得到的的第一码 流的总码长;目标编码模式包括第一编码模式;第一编码模式为按照第一定长码对编码块中 的样本值编码单元进行编码的模式;第一定长码的码长小于或等于待处理图像的图像位宽; 图像位宽用于表征编码存储待处理图像中每个样本所需的比特位数;解析子流中的预设标志 位,确定目标回退模式;目标回退模式为回退模式中的一种;预设标志位用于指示子模式标 志的位置;子模式标志用于指示多个通道的编码块编码时所采用的回退模式的种类;回退模 式包括第一回退模式和第二回退模式;按照目标回退模式对子流进行解码。
可选地,该方法还包括:基于码流缓冲区的剩余大小、以及目标像素深度BPP,确定编 码单元的目标解码码长;目标解码码长用于指示解码编码单元的码流所需的码长;基于解码 码长;确定多个通道的分配码长;分配码长用于指示解码多个通道的编码块的码流的残差所 需的码长;根据分配码长在多个通道的平均值,确定多个通道各自分配的解码码长。
应理解,当剩余的码长较小时,目前以编码单元的像素个数为单位的码长分配模式可能 导致色度通道无法分配到码长,从而导致色度通道的编码块编码后的比特数较小,使膨胀率 变大。本申请实施例提供的图像编码方法可以通过将分配的单位由像素个数转化为分配码长 的比特数进行分配,每个通道均可以分配到码长进行编码,降低了理论膨胀率。
第五方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码流; 编码单元包括多个通道的编码块;多个通道包括第一通道;第一通道为多个通道中的任意一 个通道;从第一通道的编码块编码得到的子流中解析第一标志;第一标志用于指示多个通道 的编码块采用第一编码模式或回退模式编码;第一编码模式为按照第一定长码对第一通道的 编码块中的采样值进行编码的模式;第一定长码的码长小于或等于待处理图像的图像位宽; 图像位宽用于表征编码存储待处理图像中每个样本所需的比特位数;从第一通道的编码块编 码得到的子流中解析第二标志;第二标志用于指示多个通道的编码块目标模式编码;目标模 式为第一编码模式和回退模式中的任意一种;当第二标志指示多个通道的编码块采用的目标 模式为回退模式时,从第一通道的编码块编码得到的子流中解析第三标志;根据第三标志指 示的回退模式的种类确定多个通道的目标解码模式,并按照目标解码模式对多个通道的编码 块编码得到的子流进行解码。
可选地,该方法还包括:基于码流缓冲区的剩余大小、以及目标像素深度BPP,确定编 码单元的目标解码码长;目标解码码长用于指示解码编码单元的码流所需的码长;基于解码 码长;确定多个通道的分配码长;分配码长用于指示解码多个通道的编码块的码流的残差所 需的码长;根据分配码长在多个通道的平均值,确定多个通道各自分配的解码码长。
第六方面,本申请提供一种图像编码方法,该方法包括:获取编码单元;编码单元包括 多个通道的编码块;按照帧内块复制IBC模式对多个通道中的至少一个通道的编码块进行编 码;获取参考预测块的块向量BV;参考预测块的BV用于指示参考预测块在已编码的图像块 中的位置;参考预测块用于表征按照IBC模式编码的编码块的预测值;在至少一种通道的编 码块经IBC模式编码得到的至少一个子流中编码参考预测块的BV。
应理解,亮度通道对应的子流的比特数通常较大,色度通道对应的子流的比特数通常较 小。本申请实施例通过在采用IBC模式进行编码时,在至少一个通道的编码块对应的子流中 进行传输参考预测块的BV,可以在比特数较小的色度通道对应的子流中增加传输数据,从而 提高上述计算理论膨胀率的公式中的分母,从而减小理论膨胀率。
一种可能的实现方式中,按照帧内块复制IBC模式对多个通道中的至少一个通道的编码 块进行编码,包括:使用率失真优化决策确定出至少一个通道的目标编码模式;目标编码模 式包括IBC模式;按照目标编码模式对至少一个通道的编码块进行编码。
一种可能的实现方式中,按照帧内块复制IBC模式对多个通道中的至少一个通道的编码 块进行编码,包括:按照IBC模式对多个通道的编码块进行编码。在至少一种通道的编码块 经IBC模式编码得到的至少一个子流中编码参考预测块的BV,包括:在多个通道中的每一个 通道的编码块经IBC模式编码得到的子流中编码参考预测块的BV。
一种可能的实现方式中,在多个通道中的每一个通道的编码块经IBC模式编码得到的子 流中编码参考预测块的BV,包括:按照预设比例在多个通道中的每一个通道的编码块经IBC 模式编码得到的码流中编码参考预测块的BV。
第七方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码流; 编码单元包括多个通道的编码块;码流包括多个通道的编码块编码后的、与多个通道一一对 应的多个子流;基于从多个子流中的至少一个子流中解析到的参考预测块的块向量BV,在多 个子流中确定出参考预测块的位置;参考预测块用于表征按照帧内块复制IBC模式进行编码 的编码块的预测值;参考预测块的BV用于指示参考预测块在已编码的图像块中的位置;基于 参考预测块的位置信息,确定按照IBC模式进行解码的解码块的预测值;基于预测值,对按 照IBC模式进行解码的解码块进行重建。
可选地,参考预测块的BV编码于多个子流中;参考预测块的BV是按照IBC模式对多个 通道的编码块进行编码时得到的。
第八方面,本申请提供一种图像编码方法,该方法包括:获取编码单元对应的处理系数; 处理系数包括残差系数和变换系数中的一项或多项;按照个数阈值将处理系数分为多组,多 组处理系数中的每组处理系数的个数小于或等于个数阈值。
应理解,与的残差跳过模式相比,本申请实施例提供的图像编码方法在编码时可以将处 理系数进行分组,分组后的每一组处理系数在传输时均需要添加该组处理系数的头部信息来 描述该组处理系数的详细情况,与目前的利用1比特的数据来表示残差跳过相比,增加了理 论膨胀率的计算公式中的分母,降低了理论膨胀率。
第九方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码流, 确定编码单元对应的处理系数;处理系数包括残差系数和变换系数中的一项或多项;处理系 数包括多组;每组处理系数的个数小于或等于个数阈值;基于处理系数对码流进行解码。
第十方面,本申请提供一种图像编码方法,该方法包括:获取编码单元;编码单元包括 P个通道的编码块;P为大于或等于2的整数;获取P个通道中每个通道的编码块的复杂度信 息;复杂度信息用于表征每个通道的编码块的像素值的差异程度;在P个通道的编码块编码 得到的子流中编码每个通道的编码块的复杂度信息。
应理解,可选的实施方案中第二色度通道的编码块对应的第三子流中并不传输复杂度信 息。本申请实施例提供的图像编码方法通过在第三子流中增加编码复杂度信息,增加了比特 数较小的子流中的比特数,从而提高了上述理论膨胀率计算公式中的分母,降低了理论膨胀 率。
一种可能的实现方式中,复杂度信息包括复杂度等级;在P个通道的编码块编码得到的 子流中编码每个通道的编码块的复杂度信息,包括:在P个通道的编码块编码得到的子流中 各自编码每个通道的编码块的复杂度等级。
一种可能的实现方式中,复杂度信息包括复杂度等级和第一参考系数;第一参考系数用 于表征不同通道的编码块的复杂度等级之间的比例关系;在P个通道的编码块编码得到的子 流中编码每个通道的编码块的复杂度信息,包括:在P个通道中的Q个通道的编码块编码得 到的子流中各自编码Q个通道的编码块的复杂度等级;Q为小于P的整数;在P个通道中的P-Q个通道的编码块编码得到的子流中编码第一参考系数。
一种可能的实现方式中,复杂度信息包括复杂度等级、参考复杂度等级、以及第二参考 系数;参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三复 杂度等级;第一复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的最大值;Q 为小于P的整数;第二复杂度等级为P个通道中P-Q个通道的编码块的复杂度等级中的最小 值;第三复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;第二参 考系数用于表征P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或,比 例关系;在P个通道的编码块编码得到的子流中编码每个通道的编码块的复杂度信息,包括: 在P个通道中的Q个通道的编码块编码得到的子流中各自编码Q个通道的编码块的复杂度等 级;在P个通道中的P-Q个通道的编码块编码得到的子流中编码参考复杂度等级和第二参考 系数。
第十一方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码 流;编码单元包括P个通道的编码块;P为大于或等于2的整数;码流包括P个通道的编码 块编码后的、与P个通道一一对应的多个子流;在P个通道的编码块编码得到的子流中解析 每个通道的编码块的复杂度信息;复杂度信息用于表征每个通道的编码块的像素值的差异程 度;基于每个通道的编码块的复杂度信息,确定每个通道的编码块的量化参数;基于每个通 道的编码块的量化参数,对码流进行解码。
一种可能的实现方式中,复杂度信息包括复杂度等级;在P个通道的编码块编码得到的 子流中解析每个通道的编码块的复杂度信息,包括:在P个通道的编码块编码得到的子流中 各自解析每个通道的编码块的复杂度等级。
一种可能的实现方式中,复杂度信息包括复杂度等级和第一参考系数;第一参考系数用 于表征不同通道的编码块的复杂度等级之间的比例关系;在P个通道的编码块编码得到的子 流中解析每个通道的编码块的复杂度信息,包括:在P个通道中的Q个通道的编码块编码得 到的子流中各自解析Q个通道的编码块的复杂度等级;Q为小于P的整数;在P个通道中的 P-Q个通道的编码块编码得到的子流中解析第一参考系数;基于第一参考系数、以及Q个通 道的编码块的复杂度等级,确定P-Q个通道的编码块的复杂度等级。
一种可能的实现方式中,复杂度信息包括复杂度等级、参考复杂度等级、以及第二参考 系数;参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三复 杂度等级;第一复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的最大值;Q 为小于P的整数;第二复杂度等级为P个通道中P-Q个通道的编码块的复杂度等级中的最小 值;第三复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;第二参 考系数用于表征P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或,比 例关系;在P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度信息,包括: 在P个通道中的Q个通道的编码块编码得到的子流中各自解析Q个通道的编码块的复杂度等 级;在P个通道中的P-Q个通道的编码块编码得到的子流中解析参考复杂度等级和第二参考 系数;基于Q个通道的编码块的复杂度等级。以及第二参考系数,确定P-Q个通道的编码块 的复杂度等级。
第十二方面,本申请提供一种图像编码方法,该方法包括:获取编码单元;编码单元包 括多个通道的编码块;编码单元为待处理图像中的图像块;当待处理图像的图像格式为预设 格式时,则将多个通道中的至少两个预设通道的编码块编码得到的子流合并为一个合并子流。
应理解,两个色度通道的语法元素和量化后的变换系数编码后的比特数通常小于亮度通 道,将两个色度通道的语法元素融合在第二子流中传输,可以降低第一子流和第二子流之间 的比特数差异,降低理论膨胀率。
第十三方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码 流;编码单元包括多个通道的编码块;编码单元为待处理图像中的图像块;确定合并子流; 合并子流是当待处理图像的图像格式为预设格式时,将多个通道中的至少两个预设通道的编 码块编码的到的子流合并得到的;基于合并了至少两个待合并子流,对码流进行解码。
第十四方面,本申请提供一种图像编码方法,该方法包括:获取编码单元;编码单元包 括多个通道的编码块;通道在满足预设条件的目标子流中编码预设码字,直至目标子流不满 足预设条件;目标子流是多个子流中的子流;多个子流是对多个通道的编码块进行编码得到 的码流。
应理解,在比特数较小的子流中填充预设码字,可以直接增加膨胀率的分母部分,从而 降低编码单元的实际膨胀率。
可选地,预设膨胀率包括第一预设膨胀率;当前膨胀率等于最大子流的比特数与最小子 流的比特数之商;最大子流为对多个通道的编码块进行编码得到的多个子流中,比特数最大 的子流;最小子流为对多个通道的编码块进行编码得到的多个子流中,比特数最小的子流。
可选地,该方法还包括:确定当前膨胀率;当当前膨胀率大于第一预设膨胀率时,在最 小子流中编码预设码字,以使得当前膨胀率小于或等于第一预设膨胀率。
可选地,预设膨胀率包括第二预设膨胀率;当前膨胀率等于经编码的多个通道的编码块 中,比特数最大的编码块的比特数和比特数最小的编码块的比特数之商。
可选地,该方法还包括:确定当前膨胀率;当当前膨胀率大于第二预设膨胀率时,在比 特数最小的编码块中编码预设码字,以使得当前膨胀率小于或等于第二预设膨胀率。
第十五方面,本申请提供一种图像解码方法,该方法包括:解析对编码单元编码后的码 流;编码单元包括多个通道的编码块;基于码流,确定预设码字的数量;基于预设码字的数 量,对码流进行解码。
第十六方面,本申请提供一种图像编解码装置,该装置包括用于上述第一方面至第十五 方面所述的方法的各个模块。
第十七方面,本申请提供一种图像编码装置,该装置包括处理器和存储器;存储器存储 有处理器可执行的指令;处理器被配置为执行指令时,使得图像编解码装置实现上述第一方 面至第十五方面中的图像编码方法。
第十八方面,本申请提供一种图像解码装置,该装置包括处理器和存储器;存储器存储 有处理器可执行的指令;处理器被配置为执行指令时,使得图像编解码装置实现上述第一方 面至第十五方面中的图像解码方法。
第十九方面,本申请提供一种计算机程序产品,当该计算机程序产品在图像编解码装置 上运行时,使得图像编解码装置执行上述第一方面至第十五方面任意一个方面所述相关方法 的步骤,以实现上述第一方面至第十五方面任意一个方面所述的方法。
第二十方面,本申请提供一种可读存储介质,该可读存储介质包括:软件指令;当软件 指令在图像编解码装置中运行时,使得图像编解码装置实现上述第一方面至第十五方面任意 一个方面所述的方法。
第二十一方面,本申请提供一种芯片,该芯片包括处理器和接口,处理器通过接口与存 储器耦合,当处理器执行存储器中的计算机程序或图像编解码装置执行指令时,使得上述第 一方面至第十五方面任意一个方面所述的方法被执行。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附 图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为子流并行技术的框架示意图;
图2为编码端子流交织过程示意图;
图3为子流交织单元的格式的示意图;
图4为解码端反向子流交织过程示意图;
图5为编码端子流交织过程的另一种示意图;
图6为本申请实施例提供的视频编解码系统的组成示意图;
图7为本申请实施例提供的视频编码器102的组成示意图;
图8为本申请实施例提供的视频解码器112的结构示意图;
图9为本申请实施例提供的一种视频编解码的流程示意图;
图10为本申请实施例提供的编解码装置的组成示意图;
图11为本申请实施例提供的一种图像编码方法的流程示意图;
图12为本申请实施例提供的一种图像解码方法的流程示意图;
图13为本申请实施例提供的另一种图像解码方法的流程示意图;
图14为本申请实施例提供的另一种图像解码方法的流程示意图;
图15为本申请实施例提供的又一种图像解码方法的流程示意图;
图16为本申请实施例提供的又一种图像编码方法的流程示意图;
图17为本申请实施例提供的又一种图像编码方法的流程示意图;
图18为本申请实施例提供的又一种图像解码方法的流程示意图;
图19为本申请实施例提供的又一种图像编码方法的流程示意图;
图20为本申请实施例提供的又一种图像解码方法的流程示意图;
图21为本申请实施例提供的又一种图像编码方法的流程示意图;
图22为本申请实施例提供的又一种图像解码方法的流程示意图;
图23为本申请实施例提供的又一种图像编码方法的流程示意图;
图24为本申请实施例提供的又一种图像解码方法的流程示意图;
图25为本申请实施例提供的又一种图像编码方法的流程示意图;
图26为本申请实施例提供的又一种图像解码方法的流程示意图;
图27为本申请实施例提供的又一种图像编码方法的流程示意图;
图28为本申请实施例提供的又一种图像解码方法的流程示意图;
图29为本申请实施例提供的图像编解码装置的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请 中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例, 都属于本申请保护的范围。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一 个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和 执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。 本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他 实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在 以具体方式呈现相关概念。
为了提升编码器的性能,提出了一种名为子流并行(或者也可以称作子流交织)的技术。
对于编码端来说,子流并行是指编码端将编码单元(coding unit,CU)的不同通道(例 如亮度通道、第一色度通道、以及第二色度通道等)的编码块(coding block,CB)的语法 元素使用多个熵编码器编码得到多个子流,并以固定大小的数据包将多个子流交织成压缩位 流。相对应地,对于解码端来说,子流并行是指解码端使用不同的熵解码器并行解码不同的 子流。
示例性地,图1为子流并行技术的框架示意图。如图1所示,以编码端为例,子流并行 技术的具体应用时序在对语法元素(例如变换系数、以及量化系数等)进行编码之后。图1 中的其他部分的编码流程可以参照下述本申请实施例提供的视频编解码系统中所述,此次不 再赘述。
示例性地,图2为编码端子流交织过程示意图。如图2所示,以待编码的图像块包括三 个通道为例,则编码模块(例如预测模块、变换模块、以及量化模块等)可以输出该三个通 道的语法元素和量化后的变换系数,之后由熵编码器1、熵编码器2、以及熵编码器3分别对 该三个通道的语法元素和量化后的变换系数进行编码,得到每个通道对应的子流,并将三个 通道各自对应的子流对应压入编码子流缓冲区1、编码子流缓冲区2、以及编码子流缓冲区3。 子流交织模块可以对编码子流缓冲区1、编码子流缓冲区2、以及编码子流缓冲区3中的子流 进行交织,最终输出多个子流交织后的比特流(或者也可以称作码流)。
示例性地,图3为子流交织单元的格式的示意图。如图3所示,子流可以由子流交织单 元组成,子流交织单元又可以称作子流片(substream segment)。子流片的长度为N比特, 子流片包括M比特的数据头和N-M比特的数据主体。
其中,数据头用于指示当前子流片隶属的子流。N可以取512,M可以取2。
示例性地,图4为解码端反向子流交织过程示意图。如图4所示,同样以编码端进行编 码的待编码的图像块包括三个通道为例,则编码端输出的比特流输入解码端后,解码端中的 子流交织模块可以先对比特流进行反向子流交织过程,将比特流分解为三个通道各自对应的 子流,并将三个通道各自对应的子流对应压入解码子流缓冲区1、解码子流缓冲区2、以及解 码子流缓冲区3。例如,以上述图3所示的子流片为例,解码端可以从比特流中每次提取N 比特长度的数据包。通过解析其中M比特的数据头,得到当前子流片隶属的目标子流,并将 当前子流片中余下的数据主体放入目标子流对应的解码子流缓冲区。
熵解码器1可以对解码子流缓冲区1中的子流进行解码,得到一个通道的语法元素和量 化后的变换系数;熵解码器2可以对解码子流缓冲区2中的子流进行解码,得到另一个通道 的语法元素和量化后的变换系数;熵解码器3可以对解码子流缓冲区3中的子流进行解码, 得到又一个通道的语法元素和量化后的变换系数,最后将该三个通道各自的语法元素和量化 后的变换系数输入后续解码模块进行解码处理,得到经解码的图像。
以下以编码端为例对子流交织的过程进行介绍。
在编码子流缓冲区中的每个子流片均包括了至少1个图像块编码产生的编码比特。子流 交织时,可以先对每个子流片的数据主体的最初比特所对应的图像块进行顺序标记,在子流 交织过程中,按照该顺序标记对不同子流进行交织。
可选地,该子流交织过程可以通过块计数队列对图像块进行标记。
例如,块计数队列通过先进先出队列的方式实现。编码端设置对当前已编码的图像块的 计数block count,并对每个子流设置一个块计数队列counter queue[ss_idx]。在每个条带 开始编码是,初始化block count为0,初始化各个counter queue[ss_idx]为空,然后在各 个counter queue[ss_idx]各自压入一个0。
在每个图像块(或者说编码单元(codeing unit,CU))完成编码操作后,对块计数队列 进行更新,更新过程如下:
步骤1、令当前已编码的图像块的计数+1,也即block count+=1。
步骤2、选择一个子流ss_idx。
步骤3、计算该子流ss_idx对应的编码子流缓冲区中可构建的子流片的个数 num_in_buffer[ss_idx]。设该子流ss_idx对应的编码子流缓冲区为buffer[ss_idx], buffer[ss_idx]中包括的数据量为buffer[ss_idx].fullness,同样以上述途3所示的子流 片的大小为N比特,子流片中包括M比特的数据头为例,则num_in_buffer[ss_idx]可以根 据下述公式(1)计算得到。
num_in_buffer[ss_idx]=buffer[ss_idx].fullness/(N–M)         公式(1)
其中,“/”表示整除。
步骤4、比较当前块计数度列长度num_in_queue[ss_idx]和编码子流缓冲区中可构建的 子流片的个数num_in_buffer[ss_idx],若两者相等,则将当前已编码的图像块的计数压入 该块计数队列,也即counter_queue[ss_idx].push(block_count)。
步骤4、返回步骤2,处理下一个子流,直至所有子流均处理完毕。
在对块计数队列更新完毕后,编码端可以对各个编码子流缓冲区中的子流进行交织,交 织过程如下:
步骤1、选择一个子流ss_idx。
步骤2、判断该子流ss_idx对应的编码子流缓冲区buffer[ss_idx]中包括的数据量 buffer[ss_idx].fullness是否大于或等于N-M。若是,则执行步骤3;若否,则执行步骤6。
步骤3、判断该子流ss_idx的块计数队列中的队首元素值是否为所有子流的块计数队列 中的最小值。若是,则执行步骤4;若否,则执行步骤6。
步骤4、以当前编码子流缓冲区中的数据构建一个子流片。例如,从编码子流缓冲区 buffer[ss_idx]中取出长度为N-M比特的数据,并添加M比特的数据头,数据头中的数据为 ss_idx,将M比特的数据头和取出的N-M比特的数据拼接为N比特的子流片,将子流片送入 编码端最终输出的比特流。
步骤5、弹出(或者说删除)该子流ss_idx的块计数队列的队首元素,也即counter_queue[ss_idx].pop()。
步骤6、返回步骤1,处理下一个子流,直至所有子流均处理完毕。
可选地,若当前图像块为一个条带(slice)的最后一个图像块,则编码端在上述交织过 程之后,还可以执行下述步骤,将编码子流缓冲区中剩余的数据进行打包:
步骤1、判断目前所有的编码子流缓冲区是否存在至少一个非空。若是,则执行步骤2; 若否,则结束。
步骤2、选择一个子流ss_idx。
步骤3、判断该子流ss_idx的块计数队列的队首元素值是否为所有子流的块计数队列的 最小值。若是,则执行步骤4;若否,则执行步骤6。
步骤4、若该子流ss_idx对应的编码子流缓冲区buffer[ss_idx]中的数据量不足N-M比 特,则向该编码子流缓冲区buffer[ss_idx]中填入0,直至该编码子流缓冲区buffer[ss_idx] 中的数据达到N-M比特。同时,弹出(或者说删除)该子流的块计数队列的队首元素值,也 即counter_queue[ss_idx].pop(),并压入一个表示数据范围内最大值的MAX_INT,也即 counter_queue[ss_idx].push(MAX_INT)。
步骤5、构建一个子流片。此处的步骤5可以参照上述子流交织过程中的步骤4,不再赘 述。
步骤6、返回步骤2,处理下一个子流。若所有子流均处理完毕,则返回步骤1。
示例性地,图5为编码端子流交织过程的另一种示意图。如图5所示,同样以待编码的 图像块包括三个通道为例,则编码子流缓冲区可以分别包括编码子流缓冲区1、编码子流缓 冲区2、以及编码子流缓冲区3。
编码子流缓冲区1中的子流片从前至后依次为1_1、1_2、1_3、以及1_4。编码子流缓冲 区1对应的子流1的块计数队列1中的标记依次为12、13、27、以及28。编码子流缓冲区2中的子流片从前至后依次为2_1和2_2。编码子流缓冲区2对应的子流2的块计数队列2中 的标记依次为5和71。编码子流缓冲区3中的子流片从前至后依次为3_1、3_2、以及3_3。 编码子流缓冲区3对应的子流3的块计数队列3中的标记依次为6、13、以及25。则子流交 织模块可以根据块计数队列1、块计数队列2、以及块计数队列3中的标记顺序对编码子流缓 冲区1、编码子流缓冲区2、以及编码子流缓冲区3中的子流片进行交织。
交织后的码流中的子流片的顺序依次为:最小标记5对应的子流片2_1、标记6对应的 子流片3_1、标记12对应的子流片1_1、标记13对应的子流片1_2、标记13对应的子流片3_2、标记25对应的子流片3_3、标记27对应的子流片1_3、标记28对应的子流片1_4、以 及标记71对应的子流片2_2。
但是,多个子流交织时存在依赖性,以编码端为例,不同的子流缓冲区中子流的填充速 度不同,同一时间填充速度较快的子流缓冲区比填充速度较慢的子流缓冲区中填充的子流位 数多,填充速度较快的子流缓冲区在等待填充速度较慢的子流缓冲区填充够一个子流片的过 程中同时还在继续填充数据,为了保证填充数据的完整性,需要将所有的子流缓冲区设置得 较大,增加了硬件成本。
在这种情况下,本申请实施例提供一种图像编解码方法、装置及存储介质,可以通过多 种改进后的编码模式进行编码,从而控制最大编码块的比特数和最小编码块的比特数,以使 得经过编码后的待编码块的理论膨胀率降低,缩小不同子流缓冲区之间的填充速度差异,从 而减小子流缓冲区的预设空间大小,降低硬件成本。
以下结合附图进行介绍。
图6为本申请实施例提供的视频编解码系统的组成示意图。如图6所示,视频编解码系 统包括源装置10和目的装置11。
源装置10产生经过编码后的视频数据,源装置10也可以被称为编码端、视频编码端、 视频编码装置、或视频编码设备等,目的装置11可以对源装置10产生的经过编码后的视频 数据进行解码,目的装置11也可以被称为解码端、视频解码端、视频解码装置、或视频解码 设备等。源装置10和/或目的装置11可包含至少一个处理器以及耦合到所述至少一个处理器 的存储器。该存储器可包含但不限于只读存储器(read-only memory,ROM)、随机存取存储 器(random access memory,RAM)、带电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令 或数据结构的形式存储所要的程序代码的任何其它媒体,本申请实施例对此不作具体限定。
源装置10和目的装置11可以包括各种装置,包含桌上型计算机、移动计算装置、笔记 本(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者等电子设备。
目的装置11可经由链路12从源装置10接收经编码视频数据。链路12可包括能够将经 编码视频数据从源装置10移动到目的装置11的一个或多个媒体和/或装置。在一个实例中, 链路12可包括使得源装置10能够实时地将编码后的视频数据直接发射到目的装置11的一个 或多个通信媒体。在此实例中,源装置10可根据通信标准(例如:无线通信协议)来调制编 码后的视频数据,并且可以将调制后的视频数据发射到目的装置11。上述一个或多个通信媒 体可包含无线和/或有线通信媒体,例如:射频(Radio Frequency,RF)频谱、一个或多个 物理传输线。上述一个或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例 如为局域网、广域网或全球网络(例如,因特网)等。上述一个或多个通信媒体可以包含路 由器、交换器、基站,或者实现从源装置10到目的装置11的通信的其它设备。
在另一实例中,源装置10可将编码后的视频数据从输出接口103输出到存储装置13。 类似地,目的装置11可通过输入接口113从存储装置13存取编码后的视频数据。存储装置 13可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(DigitalVideo Disc,DVD)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、快闪存储器,或用于 存储经编码视频数据的其它合适数字存储媒体。
在另一实例中,存储装置13可对应于文件服务器或存储由源装置10产生的编码后的视 频数据的另一中间存储装置。在此实例中,目的装置11可经由流式传输或下载从存储装置 13获取其存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经 编码的视频数据发射到目的装置11的服务器。例如,文件服务器可以包含全球广域网(World Wide Web,Web)服务器(例如,用于网站)、文件传送协议(File TransferProtocol,FTP) 服务器、网络附加存储(Network Attached Storage,NAS)装置以及本地磁盘驱动器。
目的装置11可通过任何标准数据连接(例如,因特网连接)存取编码后的视频数据。数 据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有 线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器发射的 方式可为流式传输、下载传输或两者的组合。
需要说明的是,本申请实施例提供的图像编解码方法不限于无线应用场景。
示例性地,本申请实施例提供的图像编解码方法可以应用于支持以下多种多媒体应用的 视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经 由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的 解码,或其它应用。在一些实例中,视频编解码系统可经配置,以支持单向或双向视频发射, 以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
需要说明的是,图6示出的视频编解码系统仅仅是视频编解码系统的示例,并不是对本 申请中视频编解码系统的限定。本申请提供的图像编解码方法还可适用于编码装置与解码装 置之间无数据通信的场景。在其它实施例中,待编码视频数据或编码后的视频数据可以从本 地存储器检索,也可以在网络上流式传输等。视频编码装置可对待编码视频数据进行编码并 且将编码后的视频数据存储到存储器,视频解码装置也可从存储器中获取编码后的视频数据 并且对该编码后的视频数据进行解码。
在图6的实施例中,源装置10包含视频源101、视频编码器102和输出接口103。在一些实施例中,输出接口103可包含调制器/解调器(调制解调器)和/或发射器。视频源101 可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,和/或用于产生视频数据的计算机图形系统,或视频 数据的此些来源的组合。
视频编码器102可对来自视频源101的视频数据进行编码。在一些实施例中,源装置10 经由输出接口103将编码后的视频数据直接发射到目的装置11。在其它实施例中,编码后的 视频数据还可存储到存储装置13上,供目的装置11稍后存取来用于解码和/或播放。
在图6的实施例中,目的装置11包含显示装置111、视频解码器112以及输入接口113。 在一些实施例中,输入接口113包含接收器和/或调制解调器。输入接口113可经由链路12 和/或从存储装置13接收编码后的视频数据。显示装置111可与目的装置11集成或可在目的 装置11外部。一般来说,显示装置111显示解码后的视频数据。显示装置111可包括多种显 示装置,例如,液晶显示器、等离子显示器、有机发光二极管显示器或其它类型的显示装置。
可选地,视频编码器102和视频解码器112可各自与音频编码器和解码器集成,且可包 含适当的多路复用器-多路分用器单元或其它硬件和软件,以处理共同数据流或单独数据流中 的音频和视频两者的编码。
视频编码器102和视频解码器112可以包括至少一个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、 现场可编程门阵列(field programmable gate array,FPGA)、离散逻辑、硬件或其任何组 合。若本申请提供的译码方法采用软件实现,则可将用于软件的指令存储在合适的非易失性 计算机可读存储媒体中,且可使用至少一个处理器执行所述指令从而实施本申请。
本申请中的视频编码器102和视频解码器112可以根据视频压缩标准(例如HEVC)操作, 也可根据其它业界标准操作,本申请对此不作具体限定。
图7为本申请实施例提供的视频编码器102的组成示意图。如图7所示,视频编码器102 可以在预测模块21、变换模块22、量化模块23、熵编码模块24、编码子流缓冲区25、以及子流交织模块26分别进行预测、变换、量化、熵编码、以及子流交织的过程。其中,预测模 块21、变换模块22、量化模块23也即上述图1中的编码模块。视频编码器102中还包括预 处理模块20和求和器202,其中预处理模块20包括分割模块和码率控制模块。对于视频块 重构建,视频编码器102也包括反量化模块27、反变换模块28、求和器201和参考图像存储 器29。
如图7所示,视频编码器102接收视频数据,预处理模块20视频数据的输入参数。其中, 该输入参数包括该视频数据中图像的分辨率、图像的采样格式、像素深度(bits perpixel, BPP)、位宽(或者也可以称作图像位宽)等信息。其中,BPP是指单位像素所占用的比特数。 位宽是指单位像素中一个像素通道所占用的比特数。例如,以YUV三个像素通道的值表示一 个像素,若每个像素通道占用8比特(bits),则该像素的位宽为8,并且该像素的BPP为3 ×8=24bits。
预处理模块20中的分割模块将图像分割成原始块(或者也可以称作编码单元(CU))。该 原始块(或者也可以称作编码单元(CU))可以包括多个通道的编码块。例如该多个通道可以 是RGB通道或者YUV通道等。本申请实施例对此不作限制。可选地,此分割也可包含分割成 条带(s l ice)、图像块或其它较大单元,以及根据最大编码单元(LargestCoding Unit,LCU) 及CU的四叉树结构进行视频块分割。示例性的,视频编码器102编码在待编码的视频条带内 的视频块的组件。一般的,条带可划分成多个原始块(且可能划分成称作图像块的原始块的 集合)。通常在分割模块中确定CU、PU以及TU的尺寸。此外,分割模块还用于确定码率控制 单元的尺寸。该码率控制单元是指码率控制模块中的基本处理单元,例如在码率控制模块基 于码率控制单元,为原始块计算复杂度信息,再根据复杂度信息计算原始块的量化参数。其 中,分割模块的分割策略可以是预设的,也可以是编码过程中基于图像不断调整的。当分割 策略是预设策略时,相应地,解码端中也预设相同的分割策略,从而获取相同的图像处理单 元。该图像处理单元为上述任意一种图像块,且与编码侧一一对应。当分割策略在编码过程 中基于图像不断调整时,该分割策略可以直接或间接地编入码流,相应地,解码端从码流中 获取相应参数,得到相同的分割策略,获取相同的图像处理单元。
预处理模块20中的码率控制模块用于生成量化参数以使得量化模块23和反量化模块27 进行相关计算。其中,码率控制模块在计算量化参数过程中,可以获取原始块的图像信息进 行计算,例如上述输入信息;还可以获取求和器201经重构得到的重建值进行计算,本申请 对此不作限制。
预测模块21可将预测块提供到求和器202以产生残差块,且将该预测块提供到求和器 201经重构得到重建块,该重建块用于后续进行预测的参考像素。其中,视频编码器102通 过原始块的像素值减去预测块的像素值来形成像素差值,该像素差值即为残差块,该残差块 中的数据可包含亮度差及色度差。求和器201表示执行此减法运算的一个或多个组件。预测 模块21还可将相关的语法元素发送至熵编码模块24用于合并至码流。
变换模块22可将残差块划分为一个或多个TU进行变换。变换模块22可将残差块从像素 域转换到变换域(例如,频域)。例如,使用离散余弦变换(discrete cosinetransform, DCT)或离散正弦变换(discrete sine transform,DST)将残差块经变换得到变换系数。变换 模块32可将所得变换系数发送到量化模块23。
量化模块23可基于量化单元进行量化。其中,量化单元可以与上述CU、TU、PU相同,也可以在分割模块中进一步地划分。量化模块23对变换系数进行量化以进一步减小码率得到 量化系数。其中,量化过程可减少与系数中的一些或全部相关联的比特深度。可通过调整量 化参数来修改量化的程度。在一些可行的实施方式中,量化模块23可接着执行包含经量化变 换系数的矩阵的扫描。替代的,熵编码模块24可执行扫描。
在量化之后,熵编码模块24可熵编码量化系数。例如,熵编码模块24可执行上下文自 适应性可变长度编码(context-adaptive variable-length coding,CAVLC)、上下文自适应 性二进制算术编码(context-based adaptive binary arithmetic coding,CABAC)、基于语 法的上下文自适应性二进制算术解码(SBAC)、概率区间分割熵(PIPE)解码或另一熵编码方 法或技术。在通过熵编码模块24进行熵编码之后得到子流,通过多个熵编码模块24进行熵 编码后可以得到多个子流,该多个子流经过编码子流缓冲区25、以及子流交织模块26进行 子流交织过后得到码流,该码流传输到视频解码器112或存档以供稍后传输或由视频解码器 112检索。
其中,子流交织的过程可以参照上述图1至图5处所述,此处不再赘述。
反量化模块27及反变换模块28分别应用反量化与反变换,求和器201将反变换后的残 差块得和预测的残差块相加以产生重建块,该重建块用作后续原始块进行预测的参考像素。 该重建块存储于参考图像存储器29中。
图8为本申请实施例提供的视频解码器112的结构示意图。如图8所示,视频解码器112 包括子流交织模块30、解码子流缓冲区31、熵解码模块32、预测模块33、反量化模块34、反变换模块35、求和器301和参考图像存储器36。
其中,熵解码模块32包括解析模块和码率控制模块。在一些可行的实施方式中,视频解 码器112可执行与关于来自图7的视频编码器102描述的编码流程的示例性地互逆的解码流 程。
在解码过程期间,视频解码器112从视频编码器102接收经编码的视频的码流。并通过 子流交织模块30对该码流进行反向子流交织,得到多个子流,并该多个子流经过各自对应的 解码子流缓冲区,流入各自对应的熵解码模块32中。以一个子流为例,视频解码器112的熵 解码模块32中的解析模块对该子流进行熵解码,以产生量化系数和语法元素。熵解码模块 32将语法元素转递到预测模块33。视频解码器112可在视频条带层级和/或视频块层级处接 收语法元素。
熵解码模块32中的码率控制模块根据解析模块得到的待解码图像的信息,生成量化参数 以使得反量化模块34进行相关计算。码率控制模块还可以根据求和器301经重构得到的重建 块,以计算量化参数。
反量化模块34对子流中所提供且通过熵解码模块32所解码的量化系数以及所生成的量 化参数进行反量化(例如,解量化)。反量化过程可包含使用通过视频编码器102针对视频条 带中的每一视频块所计算的量化参数确定量化的程度,且同样地确定应用的反量化的程度。 反变换模块35将反变换(例如,DCT、DST等变换方法)应用于反量化后的变换系数,将反 量化后的变换系数按照反变换单元在像素域中产生反变换后的残差块。其中,反变换单元的 尺寸与TU的尺寸相同,反变换方法与变换方法采用同样的变换方法中相应的正变换与反变换, 例如,DCT、DST的反变换为反DCT、反DST或概念上类似的反变换过程。
预测模块33生成预测块后,视频解码器112通过将来自反变换模块35的反变换后的残 差块与通过与预测块求和来形成经解码视频块。求和器301表示执行此求和运算的一个或多 个组件。在需要时,也可应用解块滤波器来对经解码块进行滤波以便去除块效应伪影。给定 帧或图像中的经解码的图像块存储于参考图像存储器36中,作为后续进行预测的参考像素。
本申请实施例提供一种可能的视频(图像)编解码的实现方式,参见图9,图9为本申 请实施例提供的一种视频编解码的流程示意图,该视频编解码实现方式包括过程①至过程⑤, 过程①至过程⑤可以由上述的源装置10、视频编码器102、目的装置11或视频解码器112中 的任意一个或多个执行。
过程①:将一帧图像分成一个或多个互相不重叠的并行编码单元。该一个或多个并行编 码单元间无依赖关系,可完全并行/独立编码和解码,如图4所示出的并行编码单元1和并行 编码单元2。
过程②:对于每个并行编码单元,可再将其分成一个或多个互相不重叠的独立编码单元, 各个独立编码单元间可相互不依赖,但可以共用一些并行编码单元头信息。
独立编码单元既可以是包括亮度Y、第一色度Cb、第二色度Cr三个通道,或RGB三个通 道,也可以仅包含其中的某一个通道。若独立编码单元包含三个通道,则这三个通道的尺寸 可以完全一样,也可以不一样,具体与图像的输入格式相关。该独立编码单元也可以理解为 每个并行编码单元所包含N个通道形成的一个或多个处理单元。例如上述Y、Cb、Cr三个通 道即为构成该并行编码单元的三个通道,其分别可以为一个独立编码单元,或者Cb和Cr可 以统称为色度通道,则该并行编码单元包括亮度通道构成的独立编码单元,以及色度通道构 成的独立编码单元。
过程③:对于每个独立编码单元,可再将其分成一个或多个互相不重叠的编码单元,独 立编码单元内的各个编码单元可相互依赖,如多个编码单元可以进行相互参考预编解码。
若编码单元与独立编码单元尺寸相同(即独立编码单元仅分成一个编码单元),则其尺寸 可为过程②所述的所有尺寸。
编码单元既可以是包括亮度Y、第一色度Cb、第二色度Cr三个通道(或RGB三通道),也可以仅包含其中的某一个通道。若包含三个通道,几个通道的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
值得注意的是,过程③是视频编解码方法中一个可选的步骤,视频编/解码器可以对过程 ②获得的独立编码单元进行残差系数(或残差值)进行编/解码。
过程④:对于编码单元,可以将其可再将其分成一个或多个互相不重叠的预测组(prediction group,PG),PG也可简称为Group,各个PG按照选定预测模式进行编解码, 得到PG的预测值,组成整个编码单元的预测值,基于预测值和编码单元的原始值,获得编码单元的残差值。
过程⑤:基于编码单元的残差值,对编码单元进行分组,获得一个或多个相不重叠的残 差小块(residual block,RB),各个RB的残差系数按照选定模式进行编解码,形成残差系 数流。具体的,可分为对残差系数进行变换和不进行变换两类。
其中,过程⑤中残差系数编解码方法的选定模式可以包括,但不限于下述任一种:半定 长编码方式、指数哥伦布(Golomb)编码方法、Golomb-Rice编码方法、截断一元码编码方 法、游程编码方法、直接编码原始残差值等。
例如,视频编码器可直接对RB内的系数进行编码。
又如,视频编码器也可对残差块进行变换,如DCT、DST、Hadamard变换等,再对变换后 的系数进行编码。
作为一种可能的示例,当RB较小时,视频编码器可直接对RB内的各个系数进行统一量 化,再进行二值化编码。若RB较大,可进一步划分为多个系数组(coefficient group,CG), 再对各个CG进行统一量化,再进行二值化编码。在本申请的一些实施例中,系数组(CG)和 量化组(QG)可以相同。
下面以半定长编码方式对残差系数编码的部分进行示例性说明。首先,将一个RB块内残 差绝对值的最大值定义为修整最大值(modified maximum,mm)。其次,确定该RB块内残差 系数的编码比特数(同一个RB块内残差系数的编码比特数一致)。例如,若当前RB块的关键 限值(critical limit,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位。
另外,对于某些特殊的情况,视频编码器也可以直接编码图像的原始值,而不是残差值。
上述视频编码器102以及视频解码器112也可以通过另外一种实现形态来实现,例如, 采用通用的数字处理系统实现,参见图10,图10为本申请实施例提供的编解码装置的组成 示意图,该编解码装置可以是上述视频编码器102中的部分装置,也可以是上述视频解码器 112中的部分装置。该编解码装置可以应用于编码侧(或者说编码端),也可以应用于解码侧(或者说解码端)。如图10所示,该编解码装置包括处理器41和存储器42。处理器41与处 理器42相连接(例如通过总线43互相连接)。可选地,该编解码装置还可以包括通信接口 44,通信接口44连接处理器41和存存储器42,用于接收/发送数据。
处理器41,用于执行存储器42中存储的指令,以实现本申请下述实施例提供的图像编 解码方法。处理器41可以是中央处理器(central processing unit,CPU)、通用处理器网 络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、 微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意 组合。处理器41还可以是其它任意具有处理功能的装置,例如电路、器件或软件模块,本申 请实施例对此不作限制。在一种示例中,处理器41可以包括一个或多个CPU,例如图10中 的CPU0和CPU1。作为一种可选的实现方式,电子设备可以包括多个处理器,例如,除处理器41之外,还可以包括处理器45(图10中以虚线为例示出)。
存储器42,用于存储指令。例如,指令可以是计算机程序。可选地,存储器42可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是存取存储器(random access memory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光 光碟等)、磁盘存储介质或者其他磁存储设备等,本申请实施例对此不作限制。
需要说明的是,存储器42可以独立于处理器41存在,也可以和处理器41集成在一起。 存储器42可以位于编解码装置内,也可以位于编解码装置外,本申请实施例对此不作限制。
总线43,用于在编解码装置所包括的各个部件之间传送信息。总线43可以是工业标准 体系结构(industry standard architecture,ISA)线路、外部设备互连(peripheralcomponent interconnect,PCI)线路或扩展工业标准体系结构(extended industrystandard architecture,EISA)线路等。总线43可以分为地址线路、数据线路、控制线路等。为便于 表示,图10中仅用一条实线表示,但并不表示仅有一根线路或一种类型的线路。
通信接口44,用于与其他设备或其它通信网络进行通信。该其它通信网络可以为以太网, 无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks, WLAN)等。通信接口44可以是模块、电路、收发器或者任何能够实现通信的装置。本申请实 施例对此不作限制。
需要说明的是,图10中示出的结构并不构成对编解码装置的限定,除图10所示的部件 之外,编解码装置可以包括比图示更多或更少的部件,或者某些部件的组合,或者不同的部 件布置。
需要说明的是,本申请实施例提供的图像编解码方法的执行主体可以是上述编解码装置, 或者,编解码装置中安装的提供编解码功能的应用程序(application,APP);或者,编解码 装置中的CPU;又或者,编解码装置中用于执行图像编解码方法的功能模块。本申请实施例 对此不作限制。为了描述简单,以下统一以编码端或解码端进行描述。
下面结合附图对本申请实施例提供的图像编解码方法进行介绍。
如背景技术、以及上述图1至图5处所述,不同的子流缓冲区填充子流的速度不同,同 一时间填充速度较快的子流缓冲区比填充速度较慢的子流缓冲区中填充的子流位数多,为了 保证填充数据的完整性,需要将所有的子流缓冲区设置得较大,增加了硬件成本。
为了对子流缓冲区进行合理配置,本申请实施例提出了一系列改进后的编码方式(例如 编码模式/预测模式、复杂度信息传输、系数分组、码流排布等)来减小编码单元的膨胀率, 从而缩小编码单元各个通道的编码块进行编码时的速度差异,可以合理配置子流缓冲区的空 间,降低硬件成本。
其中,编码单元的膨胀率可以包括理论膨胀率和当前(CU)膨胀率(实际膨胀率)。理论 膨胀率在编解码器确定后,通过理论推导即可得出,其值大于1。若编码单元存在某一通道 的编码块编码后的子流的比特数为0,则计算当前膨胀率时需要除去该种情况。理论膨胀率= CU中理论比特数最大的CB的比特数/CU中理论比特数最小的CB的比特数。当前(CU)膨胀 率=当前CU中实际比特数最大的CB的比特数/当前CU中实际比特数最小的CB的比特数。
可选地,相关的膨胀率还可以包括当前子流膨胀率。当前子流膨胀率=当前多个子流缓冲 区中数据的比特数最大的子流缓冲区中的数据的比特数/当前多个子流缓冲区中数据的比特 数最小的子流缓冲区中的数据的比特数。
需要说明的是,针对各个通道的编码块或者整个编码单元,编码端在选择编码模式(或 者说预测模式)时,可以基于以下几种策略进行选择。以下实施例中的各个改进后的编码模 式均可以按照下述几种策略选择确定。
策略1、计算比特消耗代价,并选择比特消耗代价最小的编码模式。
其中,比特消耗代价是指编/解码CU所需的比特数。比特消耗代价主要包括模式标志(或 者说模式码字)的码长、编/解码工具信息码字的码长、残差码字的码长。
策略2、计算编码后的失真,并选择失真最小的编码模式。
其中,失真用于指示重建值和原始值之间的差异情况。计算失真可以采用平方误差和(sum of squared difference,SSD)、均方误差(mean squared error,MSE)、绝对误差和(时域) (sum of absolute difference,SAD)、绝对误差和(频域)(sum of absolutetransformed difference,SATD)、以及峰值信噪比(peak signal to noise ratio,PSNR)等中的任意一 项或多项计算。本申请实施例对此不作限制。
策略3、计算率失真代价,并选择率失真代价最小的编码模式。
其中,率失真代价是指比特消耗代价和失真的加权和,进行加权计算时,比特消耗代价 的权重系数和编码后的失真的权重系数均可以预设在编码端中。本申请实施例对权重系数的 具体数值不作限制。
以下将通过一系列的实施例对本申请实施例提供的图像编解码方法中改进的编码模式进 行介绍。
一、防膨胀模式修改。
可选的实施方案:编码端对编码单元的多个通道的编码块中的每个像素值以图像位宽作 为定长码进行编码。
修改方案:编码端对编码单元的多个通道的编码块中的每个像素值以小于或等于图像位 宽的定长码进行编码。
实施例一:
示例性地,图11为本申请实施例提供的一种图像编码方法的流程示意图。如图11所示, 该图像编码方法包括S101至S102。
S101、编码端获取编码单元。
其中,编码端也即上述图6中的源装置10,或者源装置10中的视频编码器102,或者上 述图10中的编解码装置等。本申请实施例对此不作限制。编码单元为待处理图像中的图像块 (也即上述原始块)。编码单元包括多个通道的编码块;多个通道包括第一通道;第一通道为 多个通道中的任意一个通道。例如,编码单元的尺寸可以为16×2×3,则该编码单元的第一 通道的编码块的尺寸即为16×2。
S102、编码端按照第一编码模式对第一通道的编码块进行编码。
其中,第一编码模式为按照第一定长码对第一通道的编码块中的采样值进行编码的模式。 第一定长码的码长小于或等于待处理图像的图像位宽。图像位宽用于表征存储待处理图像中 每个样本所需的比特位数。第一定长码可以预设在编/解码端中,或者,由编码端确定后并写 入码流头信息中传输至解码端。
应理解,防膨胀模式是指对多个通道的编码块中的原始像素值直接进行编码的模式,与 其他编码模式相比,直接编码原始像素值所消耗的比特数通常较大,因此,理论膨胀率中的 理论比特数最大的编码块通常来自于按照防膨胀模式进行编码的编码块。本申请实施例通过 降低防膨胀模式中定长码的码长,来降低理论膨胀率中理论比特数最大的编码块的理论比特 数(也即分式中的分子),从而降低理论膨胀率。理论膨胀率较低,各个通道的编码块编码子 流的速度差异较小,因此设置子流缓冲区时,既不会将子流缓冲区较大,也不会导致子流缓 冲区空间浪费,从而实现对子流缓冲区的合理配置。
可选地,若待处理的图像为RGB图像,则编码端可以将其转化为YUV格式进行编码,或 者,若待处理的图像为YUV图像,编码端也可以将其转化成RGB格式进行编码。本申请实施 例对此不作限制。
相对应地,本申请实施例还提供一种图像解码方法。图12为本申请实施例提供的一种图 像解码方法的流程示意图。如图12所示,该图像解码方法包括S201至S202。
S201、解码端获取对编码单元编码后的码流。
其中,对编码单元编码后的码流可以包括多个通道的编码块编码后的、与多个通道一一 对应的多个子流。例如,该多个子流可以包括上述第一通道对应的子流(也即第一通道的编 码块编码后的子流)。
S202、解码端按照第一解码模式对第一通道对应的子流进行解码。
其中,第一解码模式为按照第一定长码从第一通道对应的子流中解析样本值的模式。
可选地,S202还可以具体包括:当第一定长码等于图像位宽时,解码端直接按照第一解 码模式对第一通道对应的子流进行解码;当第一定长码小于图像位宽时,解码端对解析出来 的第一通道的编码块中的像素值进行反量化。
其中,量化步长为1<<(bitdepth-fixed_length)。bitdepth表示图像位宽。fixed_length 表示第一定长码的长度。1<<表示左移一位。
二、回退模式修改。
可选的实施方案1:若当前码流缓冲区无法满足编码单元的所有通道均采用防膨胀模式 进行编码时,此时防膨胀模式关闭,编码端选择原始值以外的模式,此时即使采用其他编码 模式编码会发生膨胀(某一通道的编码块编码后的子流的比特数过大),也不能采用防膨胀模 式。
改进方案1:保障防膨胀模式开启。
实施例二:
图13为本申请实施例提供的另一种图像解码方法的流程示意图。如图13所示,该图像 解码方法包括S301至S303。
S301、编码端获取编码单元。
其中,编码单元为待处理图像中的图像块,编码单元包括多个通道的编码块。
S302、编码端确定第一总码长。
其中,第一总码长为多个通道的编码块均按照各自对应的目标编码模式进行编码后得到 的第一码流的总码长。目标编码模式包括第一编码模式,第一编码模式为按照第一定长码对 编码块中的像素值进行编码的模式,第一定长码的码长小于或等于待处理图像的图像位宽, 图像位宽用于表征存储待处理图像中每个样本所需的比特数。
例如,对多个通道中的每个通道,编码端均可以按照上述策略3确定每个编码模式的率 失真代价,并确定率失真代价最低的模式作为通道的编码块对应的目标编码模式。
S303、当第一总码长大于或等于码流缓冲区的剩余大小时,编码端将多个通道的编码块 按照回退模式进行编码。
其中,回退模式包括第一回退模式和第二回退模式。第一回退模式是指使用IBC模式获 得参考预测块的块向量,然后计算残差并对残差量化,量化的步长基于码流缓存区的剩余大 小和目标像素深度(bite per pixel,BPP)确定。第二回退模式是指直接对像素点进行量化, 量化的步长基于码流缓冲区的剩余大小和目标BPP确定。回退模式和第一编码模式的模式标 志相同。
应理解,当采用其他编码模式编码时可能会出现编码后的残差过大的情况,导致采用该 其他编码模式的编码块的比特数过大,而防膨胀模式是采用定长码编码,编码后的总码长固 定,采用防膨胀模式可以避免上述残差过大的情况。本申请实施例提供了一种在回退模式和 第一编码模式(防膨胀模式)的模式标志相同的情况下,通过判断码流缓冲区的剩余大小来 向解码端告知采用的编码模式的方案,保障了防膨胀模式一直可以被选用,从而降低了理论 膨胀率,理论膨胀率较低,各个通道的编码块编码子流的速度差异较小,因此设置子流缓冲 区时,既不会导致子流缓冲区较大,也不会导致子流缓冲区空间浪费,从而实现对子流缓冲 区的合理配置。
一些可能的实施例中,该图像编码方法还可以包括:编码端在多个通道的编码块编码得 到的多个子流中编码模式标志。
其中,模式标志用于指示多个通道的编码块各自采用的编码模式,第一编码模式的模式 标志和回退模式的模式标志相同。
一种可能的实现方式中,多个通道的编码块编码后的子流中可以编码自身的模式标志。 以多个通道中包括第一通道,第一通道为多个通道中的任意一个通道为例,在这种情况下, 编码端在多个通道的编码块编码得到的多个子流中编码模式标志,可以包括:在的第一通道 的编码块编码得到的子流中编码子模式标志。
其中,子模式标志用于指示第一通道的编码块所采用的回退模式的种类,或者用于指示 多个通道的编码块所采用的回退模式的种类。如上所述,回退模式可以包括第一回退模式和 第二回退模式。此处不再赘述。
另一种可能的实现方式中,同样以上述第一分量为例,在这种情况下,编码端在多个通 道的编码块编码得到的多个子流中编码模式标志,可以包括:在亮度通道的编码块编码得到 的子流中编码第一标志、第二标志、以及第三标志。
其中,第一标志用于指示多个通道的编码块采用第一编码模式或者回退模式编码;第二 标志用于指示多个通道的编码块采用目标模式编码,目标模式为第一编码模式和回退模式中 的任意一种;当第二标志指示多个通道的编码块采用的目标模式为回退模式时,第三标志用 于指示多个通道的编码块采用的回退模式的种类。
相对应地,本申请实施例还提供两种图像解码方法。图14为本申请实施例提供的另一种 图像解码方法的流程示意图。如图14所示,该图像解码方法包括S401至S404。
S401、解码端解析对编码单元编码后的码流。
其中,编码单元包括多个通道的编码块。多个通道包括第一通道,第一通道为多个通道 中的任意一个通道。
S402、若从多个通道的编码块编码得到的子流中解析出模式标志,且第二总码长大于码 流缓冲区的剩余大小,则解码端确定该子流的目标解码模式为回退模式。
其中,第二总码长为多个通道的编码块均按照第一编码模式或者回退模式进行编码后得 到的的第一码流的总码长。
S403、解码端解析所述子流中的预设标志位,确定目标回退模式。
其中,目标回退模式为回退模式中的一种。子模式标志用于指示多个通道的编码块编码 时所采用的回退模式的种类。回退模式包括第一回退模式和第二回退模式。
S404、解码端按照目标回退模式对该子流进行解码。
图15为本申请实施例提供的又一种图像解码方法的流程示意图。如图15所示,该图像 解码方法包括S501至S505。
S501、解码端解析对编码单元编码后的码流。
S502、解码端从第一通道的编码块编码得到的子流中解析第一标志。
其中,第一通道为多个通道中的任意一个通道。第一标志可以参照上述编码方法中所述, 此处不再赘述。
S503、解码端从第一通道的编码块编码得到的子流中解析第二标志。
其中,第二标志可以参照上述编码方法中所述,此处不再赘述。
S504、当第二标志指示多个通道的编码块采用的目标模式为回退模式时,解码端从第一 通道的编码块编码得到的子流中解析第三标志。
其中,第三标志可以参照上述编码方法中所述,此处不再赘述。
S505、解码端根据第三标志指示的回退模式的种类确定多个通道的目标解码模式,并按 照目标解码模式对多个通道的编码块编码得到的子流进行解码。
例如,解码端可以将第三标志指示的回退模式的种类作为多个通道的目标解码模式。
可选地,该方法还可以包括:解码端基于码流缓冲区的剩余大小、以及目标像素深度BPP, 确定编码单元的目标解码码长;目标解码码长用于指示解码编码单元的码流所需的码长;解 码端基于解码码长;确定多个通道的分配码长;分配码长用于指示解码多个通道的编码块的 码流的残差所需的码长;解码端根据分配码长在多个通道的平均值,确定多个通道各自分配 的解码码长。
基于上述实施例二的理解,以多个通道包括亮度(Y)通道、第一色度(U)通道、以及第二色度(V)通道为例,对回退模式的改进方案1中主要包括的两个方案进行介绍:
方案1:
编码端:编码端控制在任何时候,防膨胀模式(原始值模式)下的编码的比特消耗代价 都是最大的,编码端不能选择比特消耗代价大于原始值的模式。因此所有分量下都需要编码 模式,即使在回退模式下,不仅Y通道对应的子流(第一子流)需要编码模式,U/V通道对 应的子流(第二子流和第三子流)也需要编码模式。保持回退模式码字与原始值模式码字相 同。回退模式的具体种类(第一回退模式和第二回退模式)可以基于某一个通道编码。
解码端:首先解析三个通道的编码模式,当Y/U/V三个通道均为基于率失真代价选择的 目标编码模式时,再判断码流缓冲区的剩余大小判断码流缓冲区是否允许三个通道均按照各 自的目标编码模式解码。若不允许,则当前的解码模式为回退模式。若为回退模式,则可以 基于某一个分量解析一个标志位,表示当前回退模式属于第一回退模式还是第二回退模式(三 通道使用同一种回退模式)。因此当解码端有一个通道没有选择防膨胀模式时,当前CU就不 会选择回退模式。
方案2:
编码端:编码端控制在任何时候,防膨胀模式(原始值模式)下的编码的比特消耗代价 都是最大的,编码端不能选择比特消耗代价大于原始值的模式。原始值模式与回退模式依然 使用相同的模式标志(也即上述第一标志),但在编码防膨胀模式和回退模式时,额外编码一 个标志(也即上述第二标志),表示当前编码模式为防膨胀模式或回退模式中的一种,当该额 外的标志指示当前编码模式为回退模式时,进一步编码一个标志位(也即上述第三标志),表 示当前的回退模式为第一回退模式或者第二回退模式中的一种。当多个通道均选择回退模式 时,多个通道的回退模式的种类保持一致。当有通道选择防膨胀模式时,在该通道对应的子 流中编码模式标志,但无需编码是否为回退模式的标志(也即上述第二标志)。
解码端:从码流中解析出模式标志,若模式标志为防膨胀模式和回退模式共用的模式标 志,则继续解析一个标志(也即上述第二标志),表示当前是否是回退模式。若是回退模式, 则进一步解析一个标志(也即上述第三标志),表示当前的回退模式为第一回退模式以及第二 回退模式中的一种。当解析出一个通道的回退模式的种类时,其他采用回退模式的通道与该 通道采用相同的回退模式的种类。未采用回退模式的通道各自解析自身的模式。
如上所述,改进方案1通过上述实施例二可以降低膨胀率公式中的分子上限。可选地, 对于回退模式,还可以提高膨胀率公式中的分母下限。以下通过可选的实施方案2和改进方 案2进行介绍。
可选的实施方案2:当确定使用回退模式进行编码时,编码端会给定一个目标BPP,在回 退模式下三个通道的编码块对应的子流的比特数之和必须小于等于目标BPP。因此在进行码 率发分配时,将公共信息(块向量和模式标志)放在亮度通道上编码,分配的码长减去公共 信息占用的码长之后,剩余的码长用于对多个通道的残差进行编码,因此需要对剩余的码长 进行分配,分配的方法时将是剩余的码长对多个通道的像素数进行整除(也即每个通道分配 到的码长需要是编码单元的像素数的整数倍),若无法整除,就将无法整除的部分码长分配给 亮度通道。当剩余的码长较小时,无法被多个通道的像素数整除,第一色度通道和第二色度 通道对应的子流中就无法分配到码长,导致对应的子流比特数较小,膨胀率较大。
改进方案2:将剩余的码长按照比特数平均分配到多个通道,提高分配精度。
实施例三:
图16为本申请实施例提供的又一种图像编码方法的流程示意图。如图15所示,在上述 S301至S303的基础上,该图像编码方法还可以包括S601至S603。
S601、编码端基于码流缓冲区的剩余大小、以及目标BPP,确定编码单元的目标编码码 长。
其中,目标编码码长用于指示编码编码单元所需的码长。目标BPP可以由编码端获取, 例如接收用户输入的目标BPP。
S602、基于目标编码码长,确定多个通道的分配码长。
其中,分配码长用于指示编码多个通道的编码块的残差所需的码长。
例如,如上所述,编码端可以分配码长减去公共信息所占用的码长,得到多个通道的分 配码长。
S603、根据分配码长在多个通道的平均值,确定多个通道各自分配的编码码长。
可选地,编码端还可以将上述块向量和模式标志在多个通道对应的子流中进行编码。
其中,模式标志可以参照上述,此处不再赘述。块向量可以参照下述IBC模式所述,此 处不再赘述。
可选地,若编码残差时,存在一个通道分配到的比特无法整除该通道的像素个数,也即 无法对每个像素的残差使用定长码编码,则编码端可以将该通道的像素进行分组,每组仅编 码一个残差值。
应理解,当剩余的码长较小时,目前以编码单元的像素个数为单位的码长分配模式可能 导致色度通道无法分配到码长,从而导致色度通道的编码块编码后的比特数较小,使膨胀率 变大。本申请实施例提供的图像编码方法可以通过将分配的单位由像素个数转化为分配码长 的比特数进行分配,每个通道均可以分配到码长进行编码,降低了理论膨胀率。
相对应地,本申请实施例还提供一种图像解码方法,在上述S401至S404或者S501至 S505的基础上,该方法还可以包括:解码端基于码流缓冲区的剩余大小、以及目标像素深度 BPP,确定编码单元的目标解码码长;目标解码码长用于指示解码编码单元的码流所需的码长; 解码端基于解码码长;确定多个通道的分配码长;分配码长用于指示解码多个通道的编码块 的码流的残差所需的码长;解码端根据分配码长在多个通道的平均值,确定多个通道各自分 配的解码码长。
三、帧内块复制(IBC)模式修改。
可选的实施方案:模式标识CU级,BV也是CU级,模式标识和BV均在亮度传输
改进方案:模式标识改为CB级别,BV依然是CU级别,各通道均传输模式标识,各通道 均传输BV。
实施例四:
图17为本申请实施例提供的又一种图像编码方法的流程示意图。如图17所示,该方法 包括S701至S704。
S701、编码端获取编码单元。
其中,编码单元包括多个通道的编码块。
S702、编码端按照IBC模式对多个通道中的至少一个通道的编码块进行编码。
可选地,S702可以具体包括:编码端使用率失真优化决策确定出该至少一个通道的目标 编码模式。
其中,目标编码模式包括IBC模式。率失真优化决策可以参照上述策略3所述,此处不 再赘述。
S703、编码端获取参考预测块的BV。
其中,参考预测块的BV用于指示参考预测块在已编码的图像块中的位置。参考预测块用 于表征按照IBC模式编码的编码块的预测值。
S704、编码端在至少一种通道的编码块经IBC模式编码得到的至少一个子流中编码参考 预测块的BV。
可选地,对于每个通道的编码块的参考预测块的BV,该BV可以全部在亮度通道对应的 子流中编码。
可选地,对于每个通道的编码块的参考预测块的BV,该BV也可以全部在色度的某一个 通道(例如第一色度通道或者第二色度通道)对应的子流中编码,或者,在两个色度通道对 应的子流中平分该BV的个数进行编码,若无法平分,则编码端可以在任意一个色度通道对应 的子流中多编码一个BV。
可选地,对于每个通道的编码块的参考预测块的BV,该BV也可以平分在不同通道的编 码块对应的子流中编码,若无法平分,则编码端可以按照预设比例进行分配。例如,以BV的 个数为8个为例,则预设比例可以是Y通道:U通道:V通道=2:3:3,或者Y通道:U通道:V通道=4:2:2等。本申请实施例对预设比例的具体数值不作限制。在这种情况下,上述S602可以具体包括:按照IBC模式对多个通道的编码块进行编码;上述S704可以具体包括:在多个通道中的每一种通道的编码块经IBC模式编码得到的子流中编码参考预测块的BV。
可选地,参考预测块的BV包括多个。上述在多个通道中的每一个通道的编码块经IBC模 式编码得到的子流中编码参考预测块的BV,可以包括:按照预设比例在多个通道中的每一个 通道的编码块经IBC模式编码得到的码流中编码参考预测块的BV。
应理解,亮度通道对应的子流的比特数通常较大,色度通道对应的子流的比特数通常较 小。本申请实施例通过在采用IBC模式进行编码时,在至少一个通道的编码块对应的子流中 进行传输参考预测块的BV,可以在比特数较小的色度通道对应的子流中增加传输数据,从而 提高上述计算理论膨胀率的公式中的分母,从而减小理论膨胀率。
可选地,CU在编码过程中会产生头信息,该CU的头信息也可以按照上述分配BV的方式 分配编码在子流中。
相对应地,本申请实施例还提供一种图像解码方法。图18为本申请实施例提供的又一种 图像解码方法的流程示意图。如图18所示,该方法包括S801至S804。
S801、解码端解析对编码单元编码后的码流。
其中,编码单元包括多个通道的编码块;码流包括多个通道的编码块编码后的、与多个 通道一一对应的多个子流。
S802、解码端基于从多个子流中的至少一个子流中解析到的参考预测块的块向量BV,在 多个子流中确定出参考预测块的位置。
S803、解码端基于参考预测块的位置信息,确定按照IBC模式进行解码的解码块的预测 值。
S804、解码端基于预测值,对按照IBC模式进行解码的解码块进行重建。
S803和S804可以参照上述视频编解码系统处所述,此处不再赘述。
可选地,对于每个通道的编码块的参考预测块的BV,编码端可以全部在亮度通道对应的 子流中解析。
可选地,对于每个通道的编码块的参考预测块的BV,该BV也可以全部在色度的某一个 通道(例如第一色度通道或者第二色度通道)对应的子流中解析,或者,在两个色度通道对 应的子流中平分该BV的个数进行解析,若无法平分,则编码端可以在任意一个色度通道对应 的子流中多解析一个BV。
可选地,对于每个通道的编码块的参考预测块的BV,该BV也可以平分在不同通道的编 码块对应的子流中解析,若无法平分,则解码端可以按照预设比例进行分配。例如,以BV的 个数为8个为例,则预设比例可以是Y通道:U通道:V通道=2:3:3,或者Y通道:U通道:V通道=4:2:2等。本申请实施例对预设比例的具体数值不作限制。
可选地,按照IBC模式进行进行编码的编码块包括至少两个通道的编码块;至少两个通 道的编码块共用参考预测块的BV。
可选地,该方法还可以包括:当从多个子流中的任意一个子流中解析出IBC模式标识时, 解码端确定该多个子流对应的目标解码模式为IBC模式。
可选地,该方法还可以包括:解码端从多个子流中逐个解析IBC模式标识,确定多个子 流中解析出IBC模式标识的子流所对应的目标解码模式为IBC模式。
基于上述实施例四的理解,以多个通道包括亮度(Y)通道、第一色度(U)通道、以及第二色度(V)通道为例,对IBC模式的改进方案中主要包括的两个方案进行介绍:
方案1:
编码端:
步骤1、基于多通道来获取参考预测块,即对于一个多通道的编码单元而言,将搜索区 域中某一个位置的多通道作为当前多通道的编码单元下的参考预测块,将这个位置记为BV, 即多通道共享一个BV。若输入图像为YUV400则只有一个通道,否则有3个通道。得到预测 块后,计算每个通道下的残差,对残差进行(变换)量化,反量化(反变换)后完成重建。
步骤2、在亮度通道上编码辅助信息(包括编码块复杂度等级等信息),模式信息,以及 编码亮度通道量化后的系数。
步骤3、若存在色度通道,在色度通道上编码辅助信息(包括编码块复杂度等信息),以 及编码色度通道量化后的系数。
3.1、对于每个编码单元的参考预测块的BV,可以全部在亮度通道上编码。
3.2、对于每个编码单元的参考预测块的BV,也可以全部在色度某一个通道上编码,或 者在色度两个通道上平分BV进行编码,若无法平分,则某一个色度通道多编部分BV。
3.3、对于每个编码单元的参考预测块的BV,也可以平分BV分别在不同分量上编码。若 无法平分,则按照预设比例进行分配。
解码端:
步骤1、解析亮度通道的编码块的辅助信息以及模式信息,解析亮度通道下量化后的系 数。
步骤2、若存在色度通道,解析U通道的编码块的辅助信息,若亮度通道预测模式为IBC 模式,则当前色度通道的预测模式不需要解析直接默认为IBC模式,解析当前色度通道下量 化后的系数。
步骤3、对于BV的解析,与编码端一直,也即:
3.1、对于每个编码单元的参考预测块的BV,可以全部在亮度通道上解析。
3.2、对于每个解析单元的参考预测块的BV,也可以全部在色度某一个通道上解析,或 者在色度两个通道上平分BV进行解析,若无法平分,则某一个色度通道多编部分BV。
3.3、对于每个解析单元的参考预测块的BV,也可以平分BV分别在不同分量上解析。若 无法平分,则按照预设比例进行分配。
步骤4、根据三通道共享的BV,得到每个通道下每个编码块的预测值,将每个通道下解 析得到的系数进行反量化(反变换)得到残差值,根据残差值和预测值对每个编码块完成重 建。
方案2:
编码端:
步骤1、同一个编码单元,即三通道下每种IBC模式只需要训练得到一组BV,这组BV可 以是基于三通道的搜索区域以及原始值得到,可以基于其中一个通道的搜索区域以及原始值 得到,或基于其中任意两个通道的搜索区域以及原始值计算得到。
步骤2、对于每个通道的编码块,使用率失真代价决策出目标编码模式,其中IBC模式 下三通道的BV使用步骤1中计算得到的BV。可以允许在某一个分量选择IBC模式后,其他分量不选择IBC模式。
步骤3、对于每个通道的编码块,都需要编码自身的最优模式,若有一个或多个通道的 目标模式选择了IBC模式,那么BV可以基于某一个选择IBC模式的通道进行编码,也可以基 于某两个选择IBC的通道平分BV个数进行编码,也可以基于所有选择IBC模式的通道平分 BV个数进行编码,对于无法整除BV个数时,按照预设比例分配。
解码端:
每个通道都解析一个目标模式,若解析到有一个或多个通道的目标模式选择了IBC模式 (只能选择同一种IBC模式),那么BV解析与编码端BV编码的分配方案一致。
四、系数分组。
可选的实施方案:如图1中的流程图所示,编码过程中可能存在残差跳过模式,若编码 端在编码时选择该跳过模式,编码时就不需要编码残差了,只需要编码1比特的数据来表示 残差跳过即可。
改进方案:对处理系数(残差系数,和/或,变换系数)进行分组。
实施例五:
图19为本申请实施例提供的又一种图像编码方法的流程示意图。如图19所示,该图像 编码方法包括S901至S902。
S901、编码端获取编码单元对应的处理系数。
其中,处理系数包括残差系数和变换系数中的一项或多项。
S902、编码端按照个数阈值将处理系数分为多组。
其中,个数阈值可以预设在编码端中。个数阈值与编码块的尺寸相关。例如,对于16×2 的编码块来说,个数阈值可以设置为16。多组处理系数中的每组处理系数的个数小于或等于 个数阈值。
应理解,与可选的实施方案中的残差跳过模式相比,本申请实施例提供的图像编码方法 在编码时可以将处理系数进行分组,分组后的每一组处理系数在传输时均需要添加该组处理 系数的头部信息来描述该组处理系数的详细情况,与目前的利用1比特的数据来表示残差跳 过相比,增加了理论膨胀率的计算公式中的分母,降低了理论膨胀率。
相对应地,本申请实施例还提供一种图像解码方法。图20为本申请实施例提供的又一种 图像解码方法的流程示意图。如图20所示,该图像解码方法包括S1001至S1002。
S1001、解码端解析对编码单元编码后的码流,确定编码单元对应的处理系数。
其中,处理系数包括残差系数和变换系数中的一项或多项;处理系数包括多组;每组处 理系数的个数小于或等于个数阈值。
S1002、解码端基于处理系数对码流进行解码。
S1002可以参照上述视频编解码系统处所述,此处不再赘述。
五、复杂度传输。
可选的实施方案:编码单元包括亮度通道的编码块、第一色度通道的编码块、以及第二 色度通道的编码块。亮度通道的编码块对应的子流为第一子流,第一色度通道的编码块对应 子流为第二子流,第二色度通道的编码块对应的子流为第三子流。第一子流用1或3比特传 输亮度通道的复杂度等级,第二子流中用1或3比特传输两个色度通道的平均值,第三子流 中不传输复杂度等级。
例如,CU级复杂度的计算方式为:
if(image_format==‘000’){/*YUV400*/
CuComplexityLevel=ComplexityLevel[0]
}elseif(image_format==‘001’){/*YUV420*/
CuComplexityLevel=ComplexityDivide3Table[ComplexityLevel[1]+(ComplexityLevel[0]<<1)]
}elseif(image_format==‘010’){/*YUV422*/
CuComplexityLevel=(ComplexityLevel[0]+ComplexityLevel[1])>>1
}elseif(image_format==‘011’||image_format==‘100’){/*YUV444 orRGB444*/
CuComplexityLevel=ComplexityDivide3Table[ComplexityLevel[0]+(ComplexityLevel[1]<<1)]
}
根据亮度通道的复杂度等级ComplexityLevel[0]、色度通道的复杂度等级ComplexityLevel[1]查表得到BiasInit,然后计算亮度通道的量化参数Qp[0]、以及两个色度通道的量化参数Qp[1],Qp[2]。
其中,查表的表格可以参照下述表1所示,此处不再赘述。
以第一子流为例,第一子流的具体实现如下:
Figure BDA0003855535190000261
其中,complexity_level_flag[0]为亮度通道复杂度的等级更新标志,是一个二值变量。 值为‘1’表示编码单元的亮度通道需要更新复杂度等级;值为‘0’表示编码单元的亮度通 道不需要更新复杂度等级。ComplexityLevelFlag[0]的值等于complexity_level_flag[0]的 值。delta_level[0]为亮度通道复杂度等级变化量,是2位无符号整数。确定亮度复杂度等 级的变化量。DeltaLevel[0]的值等于delta_level[0]的值。如果码流中不存在 delta_level[0],DeltaLevel[0]的值等于0。PrevComplexityLevel表示前一个编码单元的 亮度通道的复杂度等级;ComplexityLevel[0]表示亮度通道的复杂度等级。
改进方案:在第三子流中增加传输复杂度信息。
实施例六
图21为本申请实施例提供的又一种图像编码方法的流程示意图。如图21所示,该图像 编码方法包括S1101至S1103。
S1101、编码端获取编码单元。
其中,编码单元包括P个通道的编码块,P为大于或等于2的整数。
S1102、编码端获取P个通道中每个通道的编码块的复杂度信息。
其中,复杂度信息用于表征每个通道的编码块的像素值的差异程度。例如,以P个通道 包括亮度通道、第一色度通道、以及第二色度通道为例,则亮度通道的编码块的复杂度信息 用于表征亮度通道的编码块的像素值的差异程度;第一色度通道的编码块的复杂度信息用于 表征第一色度通道的编码块的像素值的差异程度;第二色度通道的编码块的复杂度信息用于 表征第二色度通道的编码块的像素值的差异程度;
S1103、编码端在P个通道的编码块编码得到的子流中编码每个通道的编码块的复杂度信 息。
一种可能的实现方式中,S1103可以具体包括:编码端在P个通道的编码块编码得到的 子流中各自编码每个通道的编码块的复杂度等级。
示例性地,以第一色度分量对应的第二子流为例,第二子流具体实现如下:
Figure BDA0003855535190000271
其中,complexity_level_flag[1]表示第一色度通道复杂度等级更新标志,是二值变量, 值为‘1’表示编码单元的第一色度通道的编码块的复杂度等级与亮度通道的编码块的复杂度 等级一致;值为‘0’表示编码单元的第一色度通道的编码块的复杂度等级与亮度通道的编码 块的复杂度等级不一致。ComplexityLevelFlag[1]的值等于complexity_level_flag[1]的值。 delta_level[1]表示第一色度通道复杂度等级变化量,是2位无符号整数,确定第一色度通 道的编码块的复杂度等级的变化量。DeltaLevel[1]的值等于delta_level[1]的值。如果码 流中不存在delta_level[1],DeltaLevel[1]的值等于0。ComplexityLevel[1]表示第一色度 通道的编码块的复杂度等级。
示例性地,以第二色度分量对应的第三子流为例,第三子流具体实现如下:
Figure BDA0003855535190000272
Figure BDA0003855535190000281
其中,complexity_level_flag[2]表示第二色度通道复杂度等级更新标志,是二值变量, 值为‘1’表示编码单元的第二色度通道的编码块的复杂度等级与第一色度通道的编码块的复 杂度等级一致;值为‘0’表示编码单元的第二色度通道的编码块的复杂度等级与第一色度通 道的编码块的复杂度等级不一致。ComplexityLevelFlag[2]的值等于complexity_level_flag[2]的值。delta_level[2]表示第二色度通道复杂度等级变化量,是 2位无符号整数,确定第二色度通道的编码块的复杂度等级的变化量。DeltaLevel[2]的值等 于delta_level[2]的值。如果码流中不存在delta_level[2],DeltaLevel[2]的值等于0。 ComplexityLevel[2]表示第二色度通道的编码块的复杂度等级。
另一种可能的实现方式中,复杂度信息包括复杂度等级和第一参考系数,第一参考系数 用于表征不同通道的编码块的复杂度等级之间的比例关系。S1103可以具体包括:编码端在P 个通道中的Q个通道的编码块编码得到的子流中各自编码Q个通道的编码块的复杂度等级;Q 为小于P的整数;编码端在P个通道中的P-Q个通道的编码块编码得到的子流中编码第一参 考系数。
例如,以P个通道包括亮度通道、第一色度通道、以及第二色度通道为例,则亮度通道 的编码块的复杂度信息为亮度通道的编码块的复杂度等级;第一色度通道的编码块的复杂度 信息为第一色度通道的编码块的复杂度等级;第二色度通道的编码块的复杂度信息为参考系 数;参考系数用于表征第一色度通道的编码块的复杂度等级和第二色度通道的编码块的复杂 度等级之间的比例关系。
例如,将上述变量complexity_level_flag[2]的赋值含义进行改变,值为‘1’表示编 码单元的第二色度通道的编码块的复杂度等级比第一色度通道的编码块的复杂度等级大;值 为‘0’表示编码单元的第二色度通道的编码块的复杂度等级比第一色度通道的编码块的复杂 度等级小或者相等。ComplexityLevelFlag[2]的值等于complexity_level_flag[2]的值。
又一种可能的实现方式中,复杂度信息包括复杂度等级、参考复杂度等级、以及第二参 考系数;参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三 复杂度等级;第一复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的最大值; Q为小于P的整数;第二复杂度等级为P个通道中P-Q个通道的编码块的复杂度等级中的最 小值;第三复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;第二 参考系数用于表征P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或, 比例关系。在这种情况下,上述S1103可以具体包括:编码端在P个通道中的Q个通道的编 码块编码得到的子流中各自编码Q个通道的编码块的复杂度等级;编码端在P个通道中的P-Q 个通道的编码块编码得到的子流中编码参考复杂度等级和第二参考系数。
例如,以P个通道包括亮度通道、第一色度通道、以及第二色度通道为例,则亮度通道 的编码块的复杂度信息为亮度通道的编码块的复杂度等级;第一色度通道的编码块的复杂度 信息为参考复杂度等级;参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度 等级、以及第三复杂度等级;第一复杂度等级为第一色度通道的编码块的复杂度等级和第二 色度通道的编码块的复杂度等级中的最大值;第二复杂度等级为第一色度通道的编码块的复 杂度等级和第二色度通道的编码块的复杂度等级中的最小值;第三复杂度等级为第一色度通 道的编码块的复杂度等级和第二色度通道的编码块的复杂度等级的平均值;第二色度通道的 编码块的复杂度信息为参考系数;参考系数用于表征第一色度通道的编码块的复杂度等级和 第二色度通道的编码块的复杂度等级之间的大小关系,和/或,比例关系。
应理解,可选的实施方案中第二色度通道的编码块对应的第三子流中并不传输复杂度信 息。本申请实施例提供的图像编码方法通过在第三子流中增加编码复杂度信息,增加了比特 数较小的子流中的比特数,从而提高了上述理论膨胀率计算公式中的分母,降低了理论膨胀 率。
相对应地,本申请实施例还提供了一种图像解码方法。图22为本申请实施例提供的又一 种图像解码方法。如图22所示,该解码方法包括S1201至S1204。
S1201、解码端解析对编码单元编码后的码流。
其中,编码单元包括P个通道的编码块;P为大于或等于2的整数;码流包括P个通道的编码块编码后的、与P个通道一一对应的多个子流。
S1202、解码端在P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度信 息。
一种可能的实现方式中,S1202可以具体包括:解码端在P个通道的编码块编码得到的 子流中各自解析每个通道的编码块的复杂度等级。
S1203、解码端基于每个通道的编码块的复杂度信息,确定每个通道的编码块的量化参数。
S1204、解码端基于每个通道的编码块的量化参数,对码流进行解码。
可选地,当每个通道对应的子流中均传输了各个通道的复杂度等级时,CU级别的复杂度 等级(CuComplexityLevel)可以按照下述过程进行计算:
if(image_format==‘000’){/*YUV400*/
CuComplexityLevel=ComplexityLevel[0]
}else if(image_format==‘001’){/*YUV420*/
CuComplexityLevel=ComplexityDivide3Table[((ComplexityLevel[0]<<2)+ComplexityLevel[1]+ComplexityLevel[2])>>1]
}else if(image_format==‘010’){/*YUV422*/
CuComplexityLevel=((ComplexityLevel[0]<<1)+ComplexityLevel[1]+ComplexityLevel[2])>>2
}else if(image_format==‘011’||image_format==‘100’){/*YUV444 orRGB444*/
CuComplexityLevel=ComplexityDivide3Table[ComplexityLevel[0]+ComplexityLevel[1]+ComplexityLevel[2]]
}
其中,ComplexityDivide3Table的定义为:ComplexityDivide3Table={0,0,0,1,1,1,2,2,2,3,3,3,4};image_format表示编码单元所在的待处理图像的图像格式。
另一种可能的实现方式中,如上所述,复杂度信息包括复杂度等级和第一参考系数;第 一参考系数用于表征不同通道的编码块的复杂度等级之间的比例关系。在这种情况下,S1202 可以具体包括:解码端在P个通道中的Q个通道的编码块编码得到的子流中各自解析Q个通 道的编码块的复杂度等级;Q为小于P的整数;解码端在P个通道中的P-Q个通道的编码块 编码得到的子流中解析第一参考系数;解码端基于第一参考系数、以及Q个通道的编码块的 复杂度等级,确定P-Q个通道的编码块的复杂度等级。
可选地,当存在子流中没有传输复杂度等级时(也即上述第三子流中传输大小关系时), CU级别的复杂度等级(CuComplexityLevel)可以按照下述过程进行计算:
if(image_format==‘000’){/*YUV400*/
CuComplexityLevel=ComplexityLevel[0]
}else if(image_format==‘001’){/*YUV420*/
CuComplexityLevel=ComplexityDivide3Table[ChromaComplexityLevel+(ComplexityLevel[0]<<1)]
}else if(image_format==‘010’){/*YUV422*/
CuComplexityLevel=(ComplexityLevel[0]+ChromaComplexityLevel)>>1
}else if(image_format==‘011’||image_format==‘100’){/*YUV444 orRGB444*/
CuComplexityLevel=ComplexityDivide3Table[ComplexityLevel[0]+(ChromaComplexityLevel<<1)]
}
其中ChromaComplexityLevel表示色度通道的复杂度等级。
对于ChromaComplexityLevel在编码端需要单独计算(解码端直接从码流中获取)。
ChromaComplexityLevel=(ComplexityLevel[1]+ComplexityLevel[2])>>1或者ChromaComplexityLevel=max(ComplexityLevel[1],ComplexityLevel[2])或者ChromaComplexityLevel=min(ComplexityLevel[1],ComplexityLevel[2])或者ChromaComplexityLevel=ComplexityLevel[1]或者ChromaComplexityLevel=ComplexityLevel[2]
又一种可能的实现方式中,如上所述,复杂度信息包括复杂度等级、参考复杂度等级、 以及第二参考系数;参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、 以及第三复杂度等级;第一复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中 的最大值;Q为小于P的整数;第二复杂度等级为P个通道中P-Q个通道的编码块的复杂度 等级中的最小值;第三复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的平 均值;第二参考系数用于表征P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关 系,和/或,比例关系。在这种情况下,上述S1202可以具体包括:解码端在P个通道中的Q 个通道的编码块编码得到的子流中各自解析Q个通道的编码块的复杂度等级;解码端在P个 通道中的P-Q个通道的编码块编码得到的子流中解析参考复杂度等级和第二参考系数;解码 端基于Q个通道的编码块的复杂度等级。以及第二参考系数,确定P-Q个通道的编码块的复 杂度等级。
可选地,当每个通道对应的子流中均传输了各个通道的复杂度等级时,解码端可以根据 亮度通道的编码块的复杂度等级ComplexityLevel[0]与第一色度通道的编码块的复杂度等级 ComplexityLevel[1]查下述表2得到BiasInit1,根据亮度通道的编码块的复杂度等级 ComplexityLevel[0]与第二色度通道的编码块的复杂度等级ComplexityLevel[2]查下述表2 得到BiasInit2,然后计算亮度通道的量化参数Qp[0]、第一色度分俩的量化参数Qp[1]、以 及第二色度通道的量化参数Qp[2]。
例如,解码端可以按照下述过程计算量化参数:
Bias1=(BiasInit1×FormatBias)>>1
Bias2=(BiasInit2×FormatBias)>>1
tmp=(ChromaSampleRate>>1)×(Bias1+Bias2)
tmp=((tmp<<7)+256)>>9
Qp[0]=Cl ip3(0,MaxQp[0],(MasterQp–tmp)>>7)
Qp[1]=Clip3(0,MaxQp[1],(MasterQp+Bias1)>>7)
Qp[2]=Clip3(0,MaxQp[2],(MasterQp+Bias2)>>7)
表1 ChromaSampleRate,FormatBias与ImageFormat的对应关系
Figure BDA0003855535190000311
表2 BiasInit的定义
Figure BDA0003855535190000312
可选地,解码端还可以根据色度通道的编码块的复杂度等级ComplexityLevel[0]与色度 通道的编码块的复杂度等级ChromaComplexityLevel查表2得到BiasInit,然后通过下述过 程计算得到Qp[0]、Qp[1]、以及Qp[2]。
Bias=(BiasInit×FormatBias)>>1
tmp=ChromaSampleRate×Bias
tmp=((tmp<<7)+128)>>8
Qp[0]=Clip3(0,MaxQp[0],(MasterQp–tmp)>>7)
Qp[1]=Clip3(0,MaxQp[1],(MasterQp+Bias)>>7)
Qp[2]=Qp[1]
Qp[1]=Clip3(0,MaxQp[1],Qp[1]+ComplexityLevel[1]-ChromaComplexityLevel)
Qp[2]=Clip3(0,MaxQp[2],Qp[2]+ComplexityLevel[2]-ChromaComplexityLevel)
可选地,如上所述,第一色度通道的编码块对应的子流可以传输第一复杂度等级和第二 复杂度等级,在这种情况下,解码端可以根据亮度通道的编码块的复杂度等级ComplexityLevel[0]、以及色度通道的编码块的复杂度等级ChromaComplexityLevel(取第一复杂度等级/第一色度通道的编码块的复杂度等级)查表2得到BiasInit,然后通过下述过程计算得到Qp[0]、Qp[1]、以及Qp[2]。
Bias=(BiasInit×FormatBias)>>1
tmp=ChromaSampleRate×Bias
tmp=((tmp<<7)+128)>>8
Qp[0]=Clip3(0,MaxQp[0],(MasterQp–tmp)>>7)
if(0==complexity_level_flag[2]){
Qp[1]=Clip3(0,MaxQp[1],(MasterQp+Bias)>>7)
Qp[2]=Clip3(0,MaxQp[2],(MasterQp+Bias-32)>>7)
}elseif(1==complexity_level_flag[2]){
Qp[1]=Clip3(0,MaxQp[1],(MasterQp+Bias-32)>>7)
Qp[2]=Clip3(0,MaxQp[2],(MasterQp+Bias)>>7)
}
可选地,如上所述,第一色度通道的编码块对应的子流可以通过传输第三复杂度等级, 在这种情况下,上述ChromaComplexityLevel可以取第三复杂度等级,并通过下述过程计算 得到Qp[0]、Qp[1]、以及Qp[2]。
Bias=(BiasInit×FormatBias)>>1
tmp=ChromaSampleRate×Bias
tmp=((tmp<<7)+128)>>8
Qp[0]=Clip3(0,MaxQp[0],(MasterQp–tmp)>>7)
Qp[1]=Clip3(0,MaxQp[1],(MasterQp+Bias)>>7)
Qp[2]=Qp[1]
if(0==complexity_level_flag[2]){
Qp[1]=Clip3(0,MaxQp[1],Qp[1]+2)
}elseif(1==complexity_level_flag[2]){
Qp[2]=Clip3(0,MaxQp[2],Qp[2]+1)
}
六、色度通道共用子流。
可选的实施方案:对于YUV420/YUV422格式的待处理图像,一共传输三个子流,第一子 流、第二子流、以及第三子流。其中,第一子流中包括亮度通道的语法元素和变换系数/残差 系数,第二子流中包括第一色度通道的语法元素和变换系数/残差系数,第三子流中包括第二 色度通道的语法元素和变换系数/残差系数。
改进方案:对于YUV420/YUV422格式的待处理图像,将第一色度通道的语法元素和变换 系数/残差系数、以及第二色度通道的语法元素和变换系数/残差系数放在第二子流中传输, 取消第三子流。
实施例七:
图23为本申请实施例提供的又一种图像编码方法的流程示意图。如图23所示,该图像 编码方法包括S1301至S1302。
S1301、编码端获取编码单元。
其中,编码单元为待处理图像中的图像块。编码单元包括多个通道的编码块。
S1302、当待处理图像的图像格式为预设格式时,则编码端将多个通道中的至少两个预设 通道的编码块编码得到的子流合并为一个合并子流。
其中,预设格式可以预设在编/解码端中,例如,预设格式可以为YUV420或者YUV422等, 预设通道可以为第一色度通道和第二色度通道。示例性地,第一子流的编码块的定义可以如 下述所示:
Figure BDA0003855535190000331
示例性地,第二子流的编码块的定义可以如下述所示:
Figure BDA0003855535190000332
Figure BDA0003855535190000341
应理解,两个色度通道的语法元素和量化后的变换系数编码后的比特数通常小于亮度通 道,将两个色度通道的语法元素融合在第二子流中传输,可以降低第一子流和第二子流之间 的比特数差异,降低理论膨胀率。
相对应地,本申请实施例还提供一种图像解码方法,图24为本申请实施例提供的又一种 图像解码方法的流程示意图,如图24所示,该方法包括S1401至S1403。
S1401、解码端解析对编码单元编码后的码流。
S1402、解码端确定合并子流。
其中,合并子流是当待处理图像的图像格式为预设格式时,将多个通道中的至少两个预 设通道的编码块编码的到的子流合并得到的。
S1403、解码端基于所述合并了至少两个待合并子流,对码流进行解码。
七、子流填充。
改进方案:在比特数小于比特数阈值的子流中填充预设码字。
实施例八:
图25为本申请实施例提供的又一种图像编码方法的流程示意图,如图25所示,该方法 包括S1501至S1502。
S1501、编码端获取编码单元。
其中,编码单元包括多个通道的编码块。
S1502、编码端在满足预设条件的目标子流中编码预设码字,直至目标子流不满足预设条 件。
其中,目标子流是多个子流中的子流。多个子流是对多个通道的编码块进行编码得到的 码流。预设码字可以是“0”或者其他码字等。本申请实施例对此不作限制。
一种可能的实现方式中,预设条件包括:子流比特数小于预设的第一比特数阈值。
其中,第一比特数阈值可以预设在编/解码端,或者,由编/解码端在码流中传输。本申 请实施例对此不作限制。第一比特数阈值用于指示CU中允许的最小CB的比特数。
另一种可能的实现方式中,预设条件包括:编码单元的码流中存在比特数小于预设的第 二比特数阈值的经编码的编码块。
其中,第二比特数阈值也可以预设在编/解码端,或者,由编/解码端在码流中传输。本 申请实施例对此不作限制。第二比特数阈值用于指示多个子流中允许的最小子流的比特数。
应理解,在比特数较小的子流中填充预设码字,可以直接增加膨胀率的分母部分,从而 降低编码单元的实际膨胀率。
相对应地,本申请实施例还提供一种图像解码方法。图26为本申请实施例提供的又一种 图像解码方法的流程示意图,如图26所示,该图像解码方法包括S1601至S1603。
S1601、解码端解析对编码单元编码后的码流。
其中,编码单元包括多个通道的编码块。
S1602、解码端确定码字数量。
其中,码字数量用于指示在满足预设条件的目标子流中编码的预设码字的数量。预设码 字是当存在满足预设条件的目标子流时,编码入目标子流中的。
S1603、解码端基于码字数量,对码流进行解码。
例如,解码端可以基于码字数量,将预设码字删除,对删除了预设码字之后的码流进行 解码。
八、预设膨胀率。
改进方案:通过预设膨胀率作为阈值来控制当前的实际膨胀率。
实施例九:
图27为本申请实施例提供的又一种图像编码方法的流程示意图,如图27所示,该图像 编码方法包括S1701至S1703
S1701、编码端获取编码单元。
其中,编码单元包括多个通道的编码块。
S1702、编码端基于预设膨胀率,确定多个通道的编码块中每个通道的编码块各自对应的 目标编码模式。
其中,预设膨胀率可以
预设在编码端和解码端中。或者,预设膨胀率也可以由编码端编码入子流中传输至解码 端。本申请实施例对此不作限制。
S1703、编码端按照目标编码模式对每个通道的编码块进行编码,以使得当前膨胀率小于 或等于预设膨胀率。
一种可能的实现方式中,预设膨胀率包括第一预设膨胀率;当前膨胀率等于最大子流的 比特数与最小子流的比特数之商;最大子流为对多个通道的编码块进行编码得到的多个子流 中,比特数最大的子流;最小子流为对多个通道的编码块进行编码得到的多个子流中,比特 数最小的子流。
可选地,如上所述,编码端可以预设一个第一预设膨胀率作为编码单元内允许的最大阈 值,在对编码单元编码前可以获取当前所有子流状态,获取已发送的最多固定长度码流的子 流,加上当前子流中剩余量的总量最大的子流状态、以及已发送的最少固定长度码流的子流, 加上当前子流中剩余总量的最小的子流状态。若最大状态与最小状态的比值,或者差值大于 预设的差值阈值,则编码端可以不再使用率失真优化作为目标模式的选择准则,仅为最大状 态的子流选择码流较低的编码模式,最小状态的子流选择码率较高的模式。
示例性地,以预设膨胀率为B_th,同时设置B_delta作为辅助阈值,Y/U/V三个通道的 编码块编码得到三个子流,在编码一个编码单元式,编码端可以获取该三个子流的状态,若 第一子流(Y通道对应的子流)对应的码率最大设为bit_stream1,且第二子流(U通道对应 的子流)对应的码率最小设为bit_stream1,则当bit_stream1/bit_stream2>B_th-B_delta 时,编码端可以为Y通道的编码块选择码率较大的模式,为U通道的编码块选择码率较小的 模式。
另一种可能的实现方式中,预设膨胀率包括第二预设膨胀率;当前膨胀率等于经编码的 多个通道的编码块中,比特数最大的编码块的比特数和比特数最小的编码块的比特数之商。
可选地,如上所述,编码端可以预设一个第二预设膨胀率作为编码单元内允许的最大阈 值,在对某个编码块进行编码之前,得到每个模式下的码率代价。若根据率失真代价得到的 最优码率代价所对应的编码模式满足编码每个子流的实际膨胀率小于预设膨胀率,则将该最 优码率代价对应的编码模式作为该编码块的目标编码模式,并将目标编码模式编入该编码块 对应的子流中;若最优码率代价对应的编码模式无法满足编码每个子流的实际膨胀率小于预 设膨胀率,则编码端将码率最大的模式改为一个码率小于该码率最大的模式的码率的模式, 或者将码率最小的模式改为一个码率大于该码率最小的模式的码率的模式,或者同时将码率 最大的模式改为一个码率小于该码率最大的模式的码率的模式,将码率最小的模式改为一个 码率大于该码率最小的模式的码率的模式。
示例性地,以预设膨胀率为A_th为例,Y/U/V三个通道的编码块编码得到三个子流。假 设Y/U/V三个通道最优码率代价分别为rate_y、rate_u、以及rate_v,且rate_y的码率最 大,rate_u的码率最小。若rate_y/rate_u≥A_th,则编码端可以修改Y通道的目标编码模 式使其满足码率代价小于rate_y,或者修改U通道的目标编码模式使其满足码率代价大于 rate_u,以使得rate_y/rate_u<A_th,且rate_y/rate_v<A_th。
本申请实施例提供的图像编码方法还可以通过预设膨胀率来干预为每个通道的编码块选 择的目标编码模式,从而使得编码端按照目标编码模式编码每个通道时,编码单元的实际膨 胀率小于预设膨胀率,从而减小了实际膨胀率。
一些可能的实施例中,该图像编码方法还可以包括:编码端确定当前膨胀率;当当前膨 胀率大于第一预设膨胀率时,在最小子流中编码预设码字,以使得当前膨胀率小于或等于第 一预设膨胀率。
例如,编码端可以在最小子流的末尾填充预设码字。
另一些可能的实施例中,该图像编码方法还可以包括:编码端确定当前膨胀;当当前膨 胀率大于第二预设膨胀时,编码端在比特数最小的编码块中编码预设码字,以使得当前膨胀 率小于或等于第二预设膨胀率。
相对应地,本申请实施例还提供一种图像解码方法。图28为本申请实施例提供的又一种 图像解码方法的流程示意图。如图27所示,该方法包括S1801至S1803。
S1801、解码端解析对编码单元编码后的码流。
S1802、解码端基于码流,确定预设码字的数量。
S1803、解码端基于预设码字的数量,对码流进行解码。
S1801至S1803可以参照上述S1601至S1603所述,此处不再赘述。
需要说明的是,上述以单独的一系列实施例对本申请实施例提供的图像编解码方法进行 了介绍。实际使用过程中,上述一系列实施例之间、以及实施例中的可选的方案之间等可以 互相组合使用。本申请实施例对具体的组合不作限制。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其 包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结 合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算 机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取 决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同 方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在示例性的实施例中,本申请实施例还提供一种图像编码装置,上述任一种图像编码方 法都可以由该图像编码装置执行。本申请实施例提供的图像编码装置可以是上述源装置10或 视频编码器102或目的装置11或视频解码器112。图29为本申请实施例提供的图像编码装 置的组成示意图。如图29所示,该图像编码装置包括获取模块29012901和处理模块29022902。
可选地,获取模块2901,用于获取编码单元;编码单元为待处理图像中的图像块;编码 单元包括多个通道的编码块;多个通道包括第一通道;第一通道为多个通道中的任意一个通 道。处理模块2902,用于按照第一编码模式对第一通道的编码块进行编码;第一编码模式为 按照第一定长码对第一通道的编码块中的样本值进行编码的模式;第一定长码的码长小于或 等于待处理图像的图像位宽;图像位宽用于表征存储待处理图像中每个样本所需的比特位数。
可选地,获取模块2901,还用于获取对编码单元编码后的码流;编码单元为待处理图像 中的图像块;编码单元包括多个通道的编码块;多个通道包括第一通道;第一通道为多个通 道中的任意一个通道;码流包括多个通道的编码块编码后的、与多个通道一一对应的多个子 流。处理模块2902,还用于按照第一解码模式对第一通道对应的子流进行解码;第一解码模 式为按照第一定长码从第一通道对应的子流解析样本值的模式;第一定长码的码长小于或等 于待处理图像的图像位宽;图像位宽用于表征存储待处理图像中每个样本所需的比特数。
可选地,获取模块2901,还用于获取编码单元;编码单元为待处理图像中的图像块;编 码单元包括多个通道的编码块。处理模块2902,还用于确定第一总码长;第一总码长为多个 通道的编码块均按照各自对应的目标编码模式编码后得到的的第一码流的总码长;目标编码 模式包括第一编码模式;第一编码模式为按照第一定长码对编码块中的样本值进行编码的模 式;第一定长码的码长小于或等于待处理图像的图像位宽;图像位宽用于表征存储待处理图 像中每个样本所需的比特位数;当第一总码长大于或等于码流缓冲区的剩余大小时,将多个 通道的编码块按照回退模式进行编码;回退模式和第一编码模式的模式标志相同。
可选地,处理模块2902,还用于在多个通道的编码块编码得到的多个子流中编码模式标 志;模式标志用于指示多个通道的编码块各自采用的编码模式。
可选地,多个通道包括第一通道;第一通道为多个通道中的任意一个通道;处理模块2902, 具体用于在第一通道的编码块编码得到的子流中编码子模式标志;子模式标志用于指示多个 通道的编码块所采用的回退模式的种类。
可选地,多个通道包括第一通道;第一通道为多个通道中的任意一个通道;处理模块2902, 具体用于在第一通道的编码块编码得到的子流中编码第一标志、第二标志、以及第三标志; 第一标志用于指示多个通道的编码块采用第一编码模式或者回退模式编码;第二标志用于指 示多个通道的编码块采用目标模式编码,目标模式为第一编码模式和回退模式中的任意一种; 当第二标志指示多个通道的编码块采用的目标模式为回退模式时,第三标志用于指示多个通 道的编码块采用的回退模式的种类。
可选地,处理模块2902,还用于基于码流缓冲区的剩余大小、以及目标像素深度BPP, 确定编码单元的目标编码码长;目标编码码长用于指示编码编码单元所需的码长;基于编码 码长,确定多个通道的分配码长;分配码长用于指示编码多个通道的编码块的残差所需的码 长;根据分配码长在多个通道的平均值,确定多个通道各自分配的编码码长。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括多个通道 的编码块;若从多个通道的编码块编码得到的子流中解析出模式标志,且第一总码长大于码 流缓冲区的剩余大小,则确定子流的目标解码模式为回退模式;模式标志用于指示多个通道 的编码块采用第一编码模式或者回退模式进行编码;第一总码长为多个分量通道的编码块均 按照各自对应的目标编码模式第一编码模式进行编码后得到的的第一码流的总码长;目标编 码模式包括第一编码模式;第一编码模式为按照第一定长码对编码块中的样本值编码单元进 行编码的模式;第一定长码的码长小于或等于待处理图像的图像位宽;图像位宽用于表征编 码存储待处理图像中每个样本所需的比特位数;解析子流中的预设标志位,确定目标回退模 式;目标回退模式为回退模式中的一种;预设标志位用于指示子模式标志的位置;子模式标 志用于指示多个通道的编码块编码时所采用的回退模式的种类;回退模式包括第一回退模式 和第二回退模式;按照目标回退模式对子流进行解码。
可选地,处理模块2902,还用于基于码流缓冲区的剩余大小、以及目标像素深度BPP, 确定编码单元的目标解码码长;目标解码码长用于指示解码编码单元的码流所需的码长;基 于解码码长;确定多个通道的分配码长;分配码长用于指示解码多个通道的编码块的码流的 残差所需的码长;根据分配码长在多个通道的平均值,确定多个通道各自分配的解码码长。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括多个通道 的编码块;多个通道包括第一通道;第一通道为多个通道中的任意一个通道;从第一通道的 编码块编码得到的子流中解析第一标志;第一标志用于指示多个通道的编码块采用第一编码 模式或回退模式编码;第一编码模式为按照第一定长码对第一通道的编码块中的采样值进行 编码的模式;第一定长码的码长小于或等于待处理图像的图像位宽;图像位宽用于表征编码 存储待处理图像中每个样本所需的比特位数;从第一通道的编码块编码得到的子流中解析第 二标志;第二标志用于指示多个通道的编码块目标模式编码;目标模式为第一编码模式和回 退模式中的任意一种;当第二标志指示多个通道的编码块采用的目标模式为回退模式时,从 第一通道的编码块编码得到的子流中解析第三标志;根据第三标志指示的回退模式的种类确 定多个通道的目标解码模式,并按照目标解码模式对多个通道的编码块编码得到的子流进行 解码。
可选地,处理模块2902,还用于基于码流缓冲区的剩余大小、以及目标像素深度BPP, 确定编码单元的目标解码码长;目标解码码长用于指示解码编码单元的码流所需的码长;基 于解码码长;确定多个通道的分配码长;分配码长用于指示解码多个通道的编码块的码流的 残差所需的码长;根据分配码长在多个通道的平均值,确定多个通道各自分配的解码码长。
可选地,获取模块2901,还用于获取编码单元;编码单元包括多个通道的编码块。处理 模块2902,还用于按照帧内块复制IBC模式对多个通道中的至少一个通道的编码块进行编码; 获取参考预测块的块向量BV;参考预测块的BV用于指示参考预测块在已编码的图像块中的 位置;参考预测块用于表征按照IBC模式编码的编码块的预测值;在至少一种通道的编码块 经IBC模式编码得到的至少一个子流中编码参考预测块的BV。
可选地,处理模块2902,具体用于使用率失真优化决策确定出至少一个通道的目标编码 模式;目标编码模式包括IBC模式;按照目标编码模式对至少一个通道的编码块进行编码。
可选地,处理模块2902,具体用于按照IBC模式对多个通道的编码块进行编码;在多个 通道中的每一个通道的编码块经IBC模式编码得到的子流中编码参考预测块的BV。
可选地,处理模块2902,具体用于按照预设比例在多个通道中的每一个通道的编码块经 IBC模式编码得到的码流中编码参考预测块的BV。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括多个通道 的编码块;码流包括多个通道的编码块编码后的、与多个通道一一对应的多个子流;基于从 多个子流中的至少一个子流中解析到的参考预测块的块向量BV,在多个子流中确定出参考预 测块的位置;参考预测块用于表征按照帧内块复制IBC模式进行编码的编码块的预测值;参 考预测块的BV用于指示参考预测块在已编码的图像块中的位置;基于参考预测块的位置信息, 确定按照IBC模式进行解码的解码块的预测值;基于预测值,对按照IBC模式进行解码的解 码块进行重建。
可选地,参考预测块的BV编码于多个子流中;参考预测块的BV是按照IBC模式对多个 通道的编码块进行编码时得到的。
可选地,获取模块2901,还用于获取编码单元对应的处理系数;处理系数包括残差系数 和变换系数中的一项或多项。处理模块2902,还用于按照个数阈值将处理系数分为多组,多 组处理系数中的每组处理系数的个数小于或等于个数阈值。
可选地,处理模块2902,还用于解析对编码单元编码后的码流,确定编码单元对应的处 理系数;处理系数包括残差系数和变换系数中的一项或多项;处理系数包括多组;每组处理 系数的个数小于或等于个数阈值;基于处理系数对码流进行解码。
可选地,获取模块2901,还用于获取编码单元;编码单元包括P个通道的编码块;P为 大于或等于2的整数;获取P个通道中每个通道的编码块的复杂度信息;复杂度信息用于表 征每个通道的编码块的像素值的差异程度。处理模块2902,还用于在P个通道的编码块编码 得到的子流中编码每个通道的编码块的复杂度信息。
可选地,复杂度信息包括复杂度等级;处理模块2902,具体用于在P个通道的编码块编 码得到的子流中各自编码每个通道的编码块的复杂度等级。
可选地,复杂度信息包括复杂度等级和第一参考系数;第一参考系数用于表征不同通道 的编码块的复杂度等级之间的比例关系;处理模块2902,具体用于在P个通道中的Q个通道 的编码块编码得到的子流中各自编码Q个通道的编码块的复杂度等级;Q为小于P的整数; 在P个通道中的P-Q个通道的编码块编码得到的子流中编码第一参考系数。
可选地,复杂度信息包括复杂度等级、参考复杂度等级、以及第二参考系数;参考复杂 度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三复杂度等级;第一 复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的最大值;Q为小于P的整 数;第二复杂度等级为P个通道中P-Q个通道的编码块的复杂度等级中的最小值;第三复杂 度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;第二参考系数用于表 征P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或,比例关系;处理 模块2902,具体用于在P个通道中的Q个通道的编码块编码得到的子流中各自编码Q个通道 的编码块的复杂度等级;在P个通道中的P-Q个通道的编码块编码得到的子流中编码参考复 杂度等级和第二参考系数。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括P个通道 的编码块;P为大于或等于2的整数;码流包括P个通道的编码块编码后的、与P个通道一 一对应的多个子流;在P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度 信息;复杂度信息用于表征每个通道的编码块的像素值的差异程度;基于每个通道的编码块 的复杂度信息,确定每个通道的编码块的量化参数;基于每个通道的编码块的量化参数,对 码流进行解码。
可选地,复杂度信息包括复杂度等级;处理模块2902,还用于在P个通道的编码块编码 得到的子流中各自解析每个通道的编码块的复杂度等级。
可选地,复杂度信息包括复杂度等级和第一参考系数;第一参考系数用于表征不同通道 的编码块的复杂度等级之间的比例关系;处理模块2902,具体用于在P个通道中的Q个通道 的编码块编码得到的子流中各自解析Q个通道的编码块的复杂度等级;Q为小于P的整数; 在P个通道中的P-Q个通道的编码块编码得到的子流中解析第一参考系数;基于第一参考系 数、以及Q个通道的编码块的复杂度等级,确定P-Q个通道的编码块的复杂度等级。
可选地,复杂度信息包括复杂度等级、参考复杂度等级、以及第二参考系数;参考复杂 度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三复杂度等级;第一 复杂度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的最大值;Q为小于P的整 数;第二复杂度等级为P个通道中P-Q个通道的编码块的复杂度等级中的最小值;第三复杂 度等级为P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;第二参考系数用于表 征P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或,比例关系;处理 模块2902,具体用于在P个通道中的Q个通道的编码块编码得到的子流中各自解析Q个通道 的编码块的复杂度等级;在P个通道中的P-Q个通道的编码块编码得到的子流中解析参考复 杂度等级和第二参考系数;基于Q个通道的编码块的复杂度等级。以及第二参考系数,确定 P-Q个通道的编码块的复杂度等级。
可选地,获取模块2901,还用于获取编码单元;编码单元包括多个通道的编码块;编码 单元为待处理图像中的图像块。处理模块2902,还用于当待处理图像的图像格式为预设格式 时,则将多个通道中的至少两个预设通道的编码块编码得到的子流合并为一个合并子流。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括多个通道 的编码块;编码单元为待处理图像中的图像块;确定合并子流;合并子流是当待处理图像的 图像格式为预设格式时,将多个通道中的至少两个预设通道的编码块编码的到的子流合并得 到的;基于合并了至少两个待合并子流,对码流进行解码。
可选地,获取模块2901,还用于获取编码单元;编码单元包括多个通道的编码块。处理 模块2902,还用于在满足预设条件的目标子流中编码预设码字,直至目标子流不满足预设条 件;目标子流是多个子流中的子流;多个子流是对多个通道的编码块进行编码得到的码流。
可选地,预设条件包括:子流比特数小于预设的第一比特数阈值。
可选地,预设条件包括:编码单元的码流中存在比特数小于预设的第二比特数阈值的经 编码的编码块。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括多个通道 的编码块;确定码字数量;码字数量用于指示在满足预设条件的目标子流中编码的预设码字 的数量;预设码字是当存在满足预设条件的目标子流时,编码入目标子流中的;基于码字数 量,对码流进行解码。
可选地,获取模块2901,还用于获取编码单元;编码单元包括多个通道的编码块。处理 模块2902,还用于基于预设膨胀率,确定多个通道的编码块中每个通道的编码块各自对应的 目标编码模式;按照目标编码模式对每个通道的编码块进行编码,以使得当前膨胀率小于或 等于预设膨胀率。
可选地,预设膨胀率包括第一预设膨胀率;当前膨胀率等于最大子流的比特数与最小子 流的比特数之商;最大子流为对多个通道的编码块进行编码得到的多个子流中,比特数最大 的子流;最小子流为对多个通道的编码块进行编码得到的多个子流中,比特数最小的子流。
可选地,预设膨胀率包括第二预设膨胀率;当前膨胀率等于经编码的多个通道的编码块 中,比特数最大的编码块的比特数和比特数最小的编码块的比特数之商。
可选地,处理模块2902,还用于确定当前膨胀率;当当前膨胀率大于第一预设膨胀率时, 在最小子流中编码预设码字,以使得当前膨胀率小于或等于第一预设膨胀率。
可选地,处理模块2902,还用于确定当前膨胀率;当当前膨胀率大于第二预设膨胀率时, 在比特数最小的编码块中编码预设码字,以使得当前膨胀率小于或等于第二预设膨胀率。
可选地,处理模块2902,还用于解析对编码单元编码后的码流;编码单元包括多个通道 的编码块;基于码流,确定预设码字的数量;基于预设码字的数量,对码流进行解码。
需要说明的是,图28中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现 时可以有另外的划分方式。例如,还可以将两个或两个以上的功能集成在一个处理模块中。 上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在示例性的实施例中,本申请实施例还提供了一种可读存储介质,包括执行指令,当其 在图像编解码装置上运行时,使得图像编解码装置执行上述实施例提供的任意一种方法。
在示例性的实施例中,本申请实施例还提供了一种包含执行指令的计算机程序产品,当 其在图像编解码装置上运行时,使得图像编解码装置执行上述实施例提供的任意一种方法。
在示例性的实施例中,本申请实施例还提供了一种芯片,包括:处理器和接口,处理器 通过接口与存储器耦合,当处理器执行存储器中的计算机程序或图像编解码装置执行指令时, 使得上述实施例提供的任意一种方法被执行。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当 使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产 品包括一个或多个计算机执行指令。在计算机上加载和执行计算机执行指令时,全部或部分 地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网 络、或者其他可编程装置。计算机执行指令可以存储在计算机可读存储介质中,或者从一个 计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机执行指令可以从一个 网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算 机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介 质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可 以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固 态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中, 本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例 的其他变化。在权利要求中,“包括”(Comprising)一词不排除其他组成部分或步骤,“一” 或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功 能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生 良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精 神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利 要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、 组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请 的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范 围之内,则本申请也意图包含这些改动和变型在内。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本 申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的 保护范围应该以权利要求的保护范围为准。

Claims (46)

1.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元为待处理图像中的图像块;所述编码单元包括多个通道的编码块;所述多个通道包括第一通道;所述第一通道为所述多个通道中的任意一个通道;
按照第一编码模式对所述第一通道的编码块进行编码;所述第一编码模式为按照第一定长码对所述第一通道的编码块中的样本值进行编码的模式;所述第一定长码的码长小于或等于所述待处理图像的图像位宽;所述图像位宽用于表征存储所述待处理图像中每个样本所需的比特位数。
2.一种图像解码方法,其特征在于,所述方法包括:
获取对编码单元编码后的码流;所述编码单元为待处理图像中的图像块;所述编码单元包括多个通道的编码块;所述多个通道包括第一通道;所述第一通道为所述多个通道中的任意一个通道;所述码流包括所述多个通道的编码块编码后的、与所述多个通道一一对应的多个子流;
按照第一解码模式对所述第一通道对应的子流进行解码;所述第一解码模式为按照第一定长码从所述第一通道对应的子流解析样本值的模式;所述第一定长码的码长小于或等于所述待处理图像的图像位宽;所述图像位宽用于表征存储所述待处理图像中每个样本所需的比特数。
3.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元为待处理图像中的图像块;所述编码单元包括多个通道的编码块;
确定第一总码长;所述第一总码长为所述多个通道的编码块均按照各自对应的目标编码模式编码后得到的的第一码流的总码长;所述目标编码模式包括第一编码模式;所述第一编码模式为按照第一定长码对编码块中的样本值进行编码的模式;所述第一定长码的码长小于或等于所述待处理图像的图像位宽;所述图像位宽用于表征存储所述待处理图像中每个样本所需的比特位数;
当所述第一总码长大于或等于码流缓冲区的剩余大小时,将所述多个通道的编码块按照回退模式进行编码;所述回退模式和所述第一编码模式的模式标志相同。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述多个通道的编码块编码得到的多个子流中编码模式标志;所述模式标志用于指示所述多个通道的编码块各自采用的编码模式。
5.根据权利要求4所述的方法,其特征在于,所述多个通道包括第一通道;所述第一通道为所述多个通道中的任意一个通道;所述在所述多个通道的编码块编码得到的子流中编码模式标志,包括:
在所述第一通道的编码块编码得到的子流中编码子模式标志;所述子模式标志用于指示所述多个通道的编码块所采用的回退模式的种类。
6.根据权利要求4所述的方法,其特征在于,所述多个通道包括第一通道;所述第一通道为所述多个通道中的任意一个通道;所述在所述多个通道的编码块编码得到的子流中编码模式标志,包括:
在所述第一通道的编码块编码得到的子流中编码第一标志和第二标志;所述第一标志用于指示所述多个通道的编码块采用所述第一编码模式或者所述回退模式编码;所述第二标志用于指示所述多个通道的编码块采用目标模式编码,所述目标模式为所述第一编码模式和所述回退模式中的任意一种。
7.根据权利要求6所述的方法,其特征在于,当所述第二标志指示所述多个通道的编码块采用的目标模式为回退模式时,所述方法还包括:
在所述第一通道的编码块编码得到的子流中编码第三标志;所述第三标志用于指示所述多个通道的编码块采用的回退模式的种类。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述方法还包括:
基于所述码流缓冲区的剩余大小、以及目标像素深度BPP,确定所述编码单元的目标编码码长;所述目标编码码长用于指示编码所述编码单元所需的码长;
基于所述编码码长,确定多个通道的分配码长;所述分配码长用于指示编码所述多个通道的编码块的残差所需的码长;
根据所述分配码长在所述多个通道的平均值,确定所述多个通道各自分配的编码码长。
9.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括多个通道的编码块;
若从所述多个通道的编码块编码得到的子流中解析出模式标志,且第二总码长大于码流缓冲区的剩余大小,则确定所述子流的目标解码模式为回退模式;所述模式标志用于指示所述多个通道的编码块采用第一编码模式或者回退模式进行编码;所述第二总码长为所述多个通道的编码块均按照第一编码模式或者所述回退模式进行编码后得到的码流的总码长;所述第一编码模式为按照第一定长码对编码块中的样本值所述编码单元进行编码的模式;所述第一定长码的码长小于或等于所述待处理图像的图像位宽;所述图像位宽用于表征编码存储所述待处理图像中每个样本所需的比特位数;
解析所述子流中的预设标志位,确定目标回退模式;所述目标回退模式为所述回退模式中的一种;所述子模式标志用于指示所述多个通道的编码块编码时所采用的回退模式的种类;所述回退模式包括第一回退模式和第二回退模式;
按照所述目标回退模式对所述子流进行解码。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
基于所述码流缓冲区的剩余大小、以及目标像素深度BPP,确定所述编码单元的目标解码码长;所述目标解码码长用于指示解码所述编码单元的码流所需的码长;
基于所述解码码长;确定多个通道的分配码长;所述分配码长用于指示解码所述多个通道的编码块的码流的残差所需的码长;
根据所述分配码长在所述多个通道的平均值,确定所述多个通道各自分配的解码码长。
11.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括多个通道的编码块;所述多个通道包括第一通道;所述第一通道为所述多个通道中的任意一个通道;
从所述第一通道的编码块编码得到的子流中解析第一标志;所述第一标志用于指示所述多个通道的编码块采用第一编码模式或回退模式编码;所述第一编码模式为按照第一定长码对所述第一通道的编码块中的采样值进行编码的模式;所述第一定长码的码长小于或等于所述待处理图像的图像位宽;所述图像位宽用于表征编码存储所述待处理图像中每个样本所需的比特位数;
从所述第一通道的编码块编码得到的子流中解析第二标志;所述第二标志用于指示所述多个通道的编码块目标模式编码;所述目标模式为所述第一编码模式和所述回退模式中的任意一种;
当所述第二标志指示所述多个通道的编码块采用的目标模式为回退模式时,从所述第一通道的编码块编码得到的子流中解析第三标志;
根据所述第三标志指示的回退模式的种类确定所述多个通道的目标解码模式,并按照目标解码模式对所述多个通道的编码块编码得到的子流进行解码。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
基于所述码流缓冲区的剩余大小、以及目标像素深度BPP,确定所述编码单元的目标解码码长;所述目标解码码长用于指示解码所述编码单元的码流所需的码长;
基于所述解码码长;确定多个通道的分配码长;所述分配码长用于指示解码所述多个通道的编码块的码流的残差所需的码长;
根据所述分配码长在所述多个通道的平均值,确定所述多个通道各自分配的解码码长。
13.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元包括多个通道的编码块;
按照帧内块复制IBC模式对所述多个通道中的至少一个通道的编码块进行编码;
获取参考预测块的块向量BV;所述参考预测块的BV用于指示所述参考预测块在已编码的图像块中的位置;所述参考预测块用于表征按照所述IBC模式编码的编码块的预测值;
在所述至少一种通道的编码块经所述IBC模式编码得到的至少一个子流中编码所述参考预测块的BV。
14.根据权利要求13所述的方法,其特征在于,所述按照帧内块复制IBC模式对所述多个通道中的至少一个通道的编码块进行编码,包括:
使用率失真优化决策确定出所述至少一个通道的目标编码模式;所述目标编码模式包括所述IBC模式;按照所述目标编码模式对所述至少一个通道的编码块进行编码。
15.根据权利要求13所述的方法,其特征在于,所述按照帧内块复制IBC模式对所述多个通道中的至少一个通道的编码块进行编码,包括:
按照所述IBC模式对所述多个通道的编码块进行编码;
所述在所述至少一种通道的编码块经所述IBC模式编码得到的至少一个子流中编码所述参考预测块的BV,包括:
在所述多个通道中的每一个通道的编码块经所述IBC模式编码得到的子流中编码所述参考预测块的BV。
16.根据权利要求15所述的方法,其特征在于,所述在所述多个通道中的每一个通道的编码块经所述IBC模式编码得到的子流中编码所述参考预测块的BV,包括:
按照预设比例在所述多个通道中的每一个通道的编码块经所述IBC模式编码得到的码流中编码所述参考预测块的BV。
17.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括多个通道的编码块;所述码流包括所述多个通道的编码块编码后的、与所述多个通道一一对应的多个子流;
基于从所述多个子流中的至少一个子流中解析到的参考预测块的块向量BV,在所述多个子流中确定出所述参考预测块的位置;所述参考预测块用于表征按照帧内块复制IBC模式进行编码的编码块的预测值;所述参考预测块的BV用于指示所述参考预测块在已编码的图像块中的位置;
基于所述参考预测块的位置信息,确定所述按照IBC模式进行解码的解码块的预测值;
基于所述预测值,对所述按照IBC模式进行解码的解码块进行重建。
18.根据权利要求17所述的方法,其特征在于,所述参考预测块的BV编码于所述多个子流中;所述参考预测块的BV是按照所述IBC模式对多个通道的编码块进行编码时得到的。
19.根据权利要求17所述的方法,其特征在于,所述按照IBC模式进行进行编码的编码块包括至少两个通道的编码块;所述至少两个通道的编码块共用所述参考预测块的BV。
20.根据权利要求17所述的方法,其特征在于,所述方法还包括:
当从所述多个子流中的任意一个子流中解析出IBC模式标识时,确定所述多个子流对应的目标解码模式为所述IBC模式。
21.根据权利要求17所述的方法,其特征在于,所述方法还包括:
从所述多个子流中逐个解析IBC模式标识,确定所述多个子流中解析出IBC模式标识的子流所对应的目标解码模式为所述IBC模式。
22.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元对应的处理系数;所述处理系数包括残差系数和变换系数中的一项或多项;
按照个数阈值将所述处理系数分为多组,所述多组处理系数中的每组处理系数的个数小于或等于所述个数阈值。
23.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流,确定所述编码单元对应的处理系数;所述处理系数包括残差系数和变换系数中的一项或多项;所述处理系数包括多组;每组处理系数的个数小于或等于个数阈值;
基于所述处理系数对码流进行解码。
24.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元包括P个通道的编码块;P为大于或等于2的整数;
获取所述P个通道中每个通道的编码块的复杂度信息;所述复杂度信息用于表征每个通道的编码块的像素值的差异程度;
在所述P个通道的编码块编码得到的子流中编码所述每个通道的编码块的复杂度信息。
25.根据权利要求24所述的方法,其特征在于,所述复杂度信息包括复杂度等级;所述在所述P个通道的编码块编码得到的子流中编码所述每个通道的编码块的复杂度信息,包括:
在所述P个通道的编码块编码得到的子流中各自编码所述每个通道的编码块的复杂度等级。
26.根据权利要求24所述的方法,其特征在于,所述复杂度信息包括复杂度等级和第一参考系数;所述第一参考系数用于表征不同通道的编码块的复杂度等级之间的比例关系;所述在所述P个通道的编码块编码得到的子流中编码所述每个通道的编码块的复杂度信息,包括:
在所述P个通道中的Q个通道的编码块编码得到的子流中各自编码所述Q个通道的编码块的复杂度等级;Q为小于P的整数;
在所述P个通道中的P-Q个通道的编码块编码得到的子流中编码所述第一参考系数。
27.根据权利要求24所述的方法,其特征在于,所述复杂度信息包括复杂度等级、参考复杂度等级、以及第二参考系数;所述参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三复杂度等级;所述第一复杂度等级为所述P个通道中的P-Q个通道的编码块的复杂度等级中的最大值;Q为小于P的整数;所述第二复杂度等级为所述P个通道中P-Q个通道的编码块的复杂度等级中的最小值;所述第三复杂度等级为所述P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;所述第二参考系数用于表征所述P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或,比例关系;所述在所述P个通道的编码块编码得到的子流中编码所述每个通道的编码块的复杂度信息,包括:
在所述P个通道中的Q个通道的编码块编码得到的子流中各自编码所述Q个通道的编码块的复杂度等级;
在所述P个通道中的P-Q个通道的编码块编码得到的子流中编码所述参考复杂度等级和所述第二参考系数。
28.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括P个通道的编码块;P为大于或等于2的整数;所述码流包括所述P个通道的编码块编码后的、与所述P个通道一一对应的多个子流;
在所述P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度信息;所述复杂度信息用于表征每个通道的编码块的像素值的差异程度;
基于所述每个通道的编码块的复杂度信息,确定所述每个通道的编码块的量化参数;
基于所述每个通道的编码块的量化参数,对所述码流进行解码。
29.根据权利要求28所述的方法,其特征在于,所述复杂度信息包括复杂度等级;所述在所述P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度信息,包括:
在所述P个通道的编码块编码得到的子流中各自解析所述每个通道的编码块的复杂度等级。
30.根据权利要求28所述的方法,其特征在于,所述复杂度信息包括复杂度等级和第一参考系数;所述第一参考系数用于表征不同通道的编码块的复杂度等级之间的比例关系;所述在所述P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度信息,包括:
在所述P个通道中的Q个通道的编码块编码得到的子流中各自解析所述Q个通道的编码块的复杂度等级;Q为小于P的整数;
在所述P个通道中的P-Q个通道的编码块编码得到的子流中解析所述第一参考系数;
基于所述第一参考系数、以及所述Q个通道的编码块的复杂度等级,确定所述P-Q个通道的编码块的复杂度等级。
31.根据权利要求29所述的方法,其特征在于,所述复杂度信息包括复杂度等级、参考复杂度等级、以及第二参考系数;所述参考复杂度等级包括以下任意一项:第一复杂度等级、第二复杂度等级、以及第三复杂度等级;所述第一复杂度等级为所述P个通道中的P-Q个通道的编码块的复杂度等级中的最大值;Q为小于P的整数;所述第二复杂度等级为所述P个通道中P-Q个通道的编码块的复杂度等级中的最小值;所述第三复杂度等级为所述P个通道中的P-Q个通道的编码块的复杂度等级中的平均值;所述第二参考系数用于表征所述P个通道中的P-Q个通道的编码块的复杂度等级之间的大小关系,和/或,比例关系;
所述在所述P个通道的编码块编码得到的子流中解析每个通道的编码块的复杂度信息,包括:
在所述P个通道中的Q个通道的编码块编码得到的子流中各自解析所述Q个通道的编码块的复杂度等级;
在所述P个通道中的P-Q个通道的编码块编码得到的子流中解析所述参考复杂度等级和所述第二参考系数;
基于所述Q个通道的编码块的复杂度等级、以及所述第二参考系数,确定所述P-Q个通道的编码块的复杂度等级。
32.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元包括多个通道的编码块;所述编码单元为待处理图像中的图像块;
当所述待处理图像的图像格式为预设格式时,则将所述多个通道中的至少两个预设通道的编码块编码得到的子流合并为一个合并子流。
33.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括多个通道的编码块;所述编码单元为待处理图像中的图像块;
确定合并子流;所述合并子流是当所述待处理图像的图像格式为预设格式时,将所述多个通道中的至少两个预设通道的编码块编码的到的子流合并得到的;
基于所述合并了至少两个待合并子流,对所述码流进行解码。
34.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元包括多个通道的编码块;
在满足预设条件的目标子流中编码预设码字,直至所述目标子流不满足所述预设条件;所述目标子流是多个子流中的子流;所述多个子流是对所述多个通道的编码块进行编码得到的码流。
35.根据权利要求34所述的方法,其特征在于,所述预设条件包括:子流比特数小于预设的第一比特数阈值。
36.根据权利要求34所述的方法,其特征在于,所述预设条件包括:编码单元的码流中存在比特数小于预设的第二比特数阈值的经编码的编码块。
37.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括多个通道的编码块;
确定码字数量;所述码字数量用于指示在满足预设条件的目标子流中编码的预设码字的数量;所述预设码字是当存在满足预设条件的目标子流时,编码入所述目标子流中的;基于所述码字数量,对所述码流进行解码。
38.一种图像编码方法,其特征在于,所述方法包括:
获取编码单元;所述编码单元包括多个通道的编码块;
基于预设膨胀率,确定所述多个通道的编码块中每个通道的编码块各自对应的目标编码模式;
按照所述目标编码模式对所述每个通道的编码块进行编码,以使得当前膨胀率小于或等于所述预设膨胀率。
39.根据权利要求38所述的方法,其特征在于,所述预设膨胀率包括第一预设膨胀率;所述当前膨胀率等于最大子流的比特数与最小子流的比特数之商;所述最大子流为对所述多个通道的编码块进行编码得到的多个子流中,比特数最大的子流;所述最小子流为对所述多个通道的编码块进行编码得到的多个子流中,比特数最小的子流。
40.根据权利要求38所述的方法,其特征在于,所述预设膨胀率包括第二预设膨胀率;所述当前膨胀率等于经编码的多个通道的编码块中,比特数最大的编码块的比特数和比特数最小的编码块的比特数之商。
41.根据权利要求39所述的方法,其特征在于,所述方法还包括:
确定所述当前膨胀率;
当所述当前膨胀率大于所述第一预设膨胀率时,在所述最小子流中编码预设码字,以使得所述当前膨胀率小于或等于所述第一预设膨胀率。
42.根据权利要求41所述的方法,其特征在于,所述方法还包括:
确定所述当前膨胀率;
当所述当前膨胀率大于所述第二预设膨胀率时,在所述比特数最小的编码块中编码预设码字,以使得所述当前膨胀率小于或等于所述第二预设膨胀率。
43.一种图像解码方法,其特征在于,所述方法包括:
解析对编码单元编码后的码流;所述编码单元包括多个通道的编码块;
基于所述码流,确定预设码字的数量;
基于所述预设码字的数量,对所述码流进行解码。
44.一种图像编码装置,其特征在于,所述装置包括:处理器和存储器;
所述存储器存储有所述处理器可执行的指令;
所述处理器被配置为执行所述指令时,使得所述图像编码装置实现如权利要求1、3-8、13-16、22、24-27、32、34-36、以及38-42任一项所述的方法。
45.一种图像解码装置,其特征在于,所述装置包括:处理器和存储器;
所述存储器存储有所述处理器可执行的指令;
所述处理器被配置为执行所述指令时,使得所述图像解码装置实现如权利要求2、9-12、17-21、23、28-31、33、37、以及43任一项所述的方法。
46.一种可读存储介质,其特征在于,所述可读存储介质包括:软件指令;
当所述软件指令在图像编解码装置中运行时,使得所述图像编解码装置实现如权利要求1-43任一项所述的方法。
CN202211146464.4A 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质 Pending CN116132685A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202310453437.XA CN116248881A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
CN202211146464.4A CN116132685A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
CN202310452348.3A CN116437095A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
PCT/CN2023/118293 WO2024061055A1 (zh) 2022-09-20 2023-09-12 图像编码方法和图像解码方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211146464.4A CN116132685A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202310453437.XA Division CN116248881A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
CN202310452348.3A Division CN116437095A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN116132685A true CN116132685A (zh) 2023-05-16

Family

ID=86303357

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202211146464.4A Pending CN116132685A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
CN202310453437.XA Pending CN116248881A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
CN202310452348.3A Pending CN116437095A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202310453437.XA Pending CN116248881A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质
CN202310452348.3A Pending CN116437095A (zh) 2022-09-20 2022-09-20 图像编解码方法、装置及存储介质

Country Status (2)

Country Link
CN (3) CN116132685A (zh)
WO (1) WO2024061055A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024061055A1 (zh) * 2022-09-20 2024-03-28 杭州海康威视数字技术股份有限公司 图像编码方法和图像解码方法、装置及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8174414B2 (en) * 2010-04-13 2012-05-08 Research In Motion Limited Methods and devices for load balancing in parallel entropy coding and decoding
CN104159107B (zh) * 2014-09-04 2017-09-29 上海航天电子通讯设备研究所 多通道视频信号的静态图像编码方法
CN111327901B (zh) * 2020-03-10 2023-05-30 北京达佳互联信息技术有限公司 视频编码方法、装置、存储介质及编码设备
CN116132685A (zh) * 2022-09-20 2023-05-16 杭州海康威视数字技术股份有限公司 图像编解码方法、装置及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024061055A1 (zh) * 2022-09-20 2024-03-28 杭州海康威视数字技术股份有限公司 图像编码方法和图像解码方法、装置及存储介质

Also Published As

Publication number Publication date
WO2024061055A1 (zh) 2024-03-28
CN116437095A (zh) 2023-07-14
CN116248881A (zh) 2023-06-09

Similar Documents

Publication Publication Date Title
US10666948B2 (en) Method, apparatus and system for encoding and decoding video data
EP2829064B1 (en) Parameter determination for exp-golomb residuals binarization for lossless intra hevc coding
KR102120571B1 (ko) 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
JP6800991B2 (ja) ディスプレイストリーム圧縮のためのベクトルベースエントロピーコード化のための装置および方法
WO2024061055A1 (zh) 图像编码方法和图像解码方法、装置及存储介质
TW202349950A (zh) 圖像編解碼方法及裝置
CN116506613A (zh) 一种视频译码方法、装置及存储介质
WO2024104382A1 (zh) 图像编解码方法、装置及存储介质
WO2024022039A1 (zh) 一种视频图像解码方法、编码方法、装置及存储介质
WO2024022359A1 (zh) 一种图像编解码方法及装置
CN116489373A (zh) 一种图像解码方法、编码方法及装置
TW202415067A (zh) 圖像編碼方法和圖像解碼方法、裝置及存儲介質
WO2023138532A1 (zh) 一种视频解码方法、装置、视频解码器及存储介质
TWI838089B (zh) 一種視頻解碼方法、裝置、視頻解碼器及存儲介質
TWI821013B (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: 40091941

Country of ref document: HK