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

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

Info

Publication number
CN116389722A
CN116389722A CN202310452439.7A CN202310452439A CN116389722A CN 116389722 A CN116389722 A CN 116389722A CN 202310452439 A CN202310452439 A CN 202310452439A CN 116389722 A CN116389722 A CN 116389722A
Authority
CN
China
Prior art keywords
prediction unit
current prediction
current
prediction mode
unit
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.)
Granted
Application number
CN202310452439.7A
Other languages
English (en)
Other versions
CN116389722B (zh
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 CN202310452439.7A priority Critical patent/CN116389722B/zh
Publication of CN116389722A publication Critical patent/CN116389722A/zh
Application granted granted Critical
Publication of CN116389722B publication Critical patent/CN116389722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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

一种图像解码方法及装置
本申请是分案申请,原申请的申请号是202111335705.5,原申请的申请日是2021年11月11日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及图像编解码技术领域,尤其涉及一种图像解码方法及装置。
背景技术
随着视频/图像业务迅速发展,视频/图像的数据量越来越大,传输视频/图像需要占用大量的传输带宽,存储视频/图像也需要较大的存储空间,目前在视频/图像的传输或存储过程中,可以对视频/图像进行编码以压缩视频/图像的数据量,实现视频/图像的高效传输或者存储。
以图像为例,使用图像编码器对图像进行编码,得到码流并传输码流,然后使用图像解码器解析码流,得到图像。以一个编码块为例,图像编码过程主要包括预测编码块、计算编码块的预测值与编码块真实值之间的残差值、对残差值进行变换、对变换结果进行量化、对量化结果进行编码,从而得到码流。图像解码过程主要包括预测编码块、对码流进行解码、对解码得到结果进行反量化、对反量化结果进行反变换、计算编码块元的预测值和反变换得到的残差值之和,从而得到编码块的重构值。
在图像解码过程中,编码块的预测结果对图像的压缩效率有较大的影响,目前,现有的对编码块进行预测的方法仍存在压缩效率低,从而导致图像解码性能不高。
发明内容
本申请实施例提供一种图像解码方法及装置,能够提升图像解码性能。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种图像解码方法,包括:解析码流,获取当前预测单元的预测模式和当前预测单元的真实值与预测值之间的残差值;该当前预测单元的预测模式至少包括第一预测模式和第二预测模式,其中,第一预测模式用于对当前预测单元的第一部分进行预测,第二预测模式用于对当前预测单元的第二部分进行预测,第一预测模式与第二预测模式不同;然后,采用第一预测模式对当前预测单元的第一部分进行预测,并且采用第二预测模式对当前预测单元的第二部分进行预测,得到当前预测单元的预测值;以及根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
本申请实施例提供的图像解码方法中,解码设备对当前待预测单元的第一部分采用第一预测模式进行预测,对当前预测单元的第二部分采用第二预测模式,与现有技术中的一个预测单元对应一种预测模式相比,本申请实施例提供的技术方案对预测单元内的像素进行划分,不同部分的像素采用不同的预测模式,如此,解码方式更加灵活,并且根据预测单元内像素的特点选择合适的预测模式,使得预测结果更加准确(即更加接近真实值),能够提升图像解码性能。
一种可能的实现方式中,当前预测单元的第一部分中的像素是基于当前预测单元之外的已重建的像素预测的。也就是说,预测第一部分中的某一个像素时,无需依赖当前预测单元(包括第一部分)内的已重建像素,即当前预测单元的第一部分中的所有像素的预测过程互不依赖。在这种情况下可以采用第一预测模式并行地将第一部分中的所有像素预测出来,即将第一部分的像素作为一个组进行预测,这种并行预测模式即对应第一预测模式,也可以称为组预测模式。
当前预测单元的第二部分中的像素是基于当前预测单元之外的已重建的像素和当前预测单元内的已重建像素预测的,或者,当前预测单元的第二部分中的像素是基于当前预测单元内的已重建的像素预测的。也就是说,预测第二部分中的某一个像素时,需要依赖当前预测单元之外的已重建像素和当前预测单元内的已重建像素,或者,预测第二部分中的某一个像素时,需要依赖当前预测单元内的已重建像素,即当前预测单元的第二部分中的所有像素的预测过程可能相互依赖。在这种情况下可以采用第二预测模式逐像素预测第二部分中的像素,这种逐像素预测的模式即对应第二预测模式,也可以称为点预测模式。
一种可能的实现方式中,当前预测单元的第二部分中的像素是基于当前预测单元之外的已重建的像素和当前预测单元内的已重建像素预测的,或者,当前预测单元的第二部分中的像素是基于当前预测单元内的已重建的像素预测的;该当前预测单元内的已重建像素包括第一部分中的已重建像素。也就是说,对第二部分中的像素进行预测时需要依赖当前预测单元的第一部分中的已重建像素。
一种可能的实现方式中,当前预测单元还可以包括除上述第一部分和第二部分之外的至少一个其他部分,例如当前预测单元还包括第三部分,其中,第一部分、第二部分以及第三部分互不重叠。
一种可能的实现方式中,上述当前预测单元的第一部分中的像素是基于该当前预测单元之外的已重建的像素预测的,当前预测单元的第二部分中的像素是基于该当前预测单元之外的已重建的像素预测的,此时采用第一预测模式并行地将第一部分中的所有像素预测出来,即将第一部分的像素作为一个组进行预测,这种并行预测模式即对应第一预测模式,是一种组预测模式;采用第二预测模式并行地将第二部分中的所有像素预测出来,即将第二部分的像素也可以作为一个组进行预测,这种并行预测模式即对应第二预测模式,是一种组预测模式。需要说明的是,第一预测模式和第二预测模式可以均为角度预测模式,但第一预测模式和第二预测模式是不同的角度预测模式,例如上述第一预测模式是垂直角度预测模式,第二预测模式是水平角度预测模式。
一种可能的实现方式中,对当前预测单元中除第一行之外的部分进行划分,得到第一部分和第二部分,其中,对当前预测单元的第一行可以根据该第一行的原始值进行编码,对第一部分采用上述第一预测模式(即组预测模式)进行预测,对第二部分采用上述第二预测模式(即点预测模式)进行预测。
一种可能的实现方式中,对当前预测单元中除第一行和第一列之外的部分进行划分,得到第一部分和第二部分,其中,对当前预测单元的第一行和第一列均采用原始值进行编码,对第一部分采用上述第一预测模式(即组预测模式)进行预测,对第二部分采用上述第二预测模式(即点预测模式)进行预测。
一种可能的实现方式中,对当前预测单元中除左上角的像素之外的部分进行划分,得到第一部分和第二部分,其中,对当前预测单元的左上角像素采用原始值进行编码,对第一部分采用上述第一预测模式(即组预测模式)进行预测,对第二部分采用上述第二预测模式(即点预测模式)进行预测。
一种可能的实现方式中,将当前预测单元划分为三个部分,即第一部分、第二部分以及第三部分,其中,不同的部分可以采用上述第一预测模式和/或第二预测模式进行预测,即组预测模式和点预测模式的不同组合进行预测。例如,采用垂直角度预测模式(属于第一预测模式)对第一部分进行预测,采用水平角度预测模式(属于第一预测模式)对第二部分进行预测,采用点预测模式对第三部分进行预测。
一种可能的实现方式中,上述解析码流,获得当前预测单元的真实值与预测值之间的残差值具体包括:对当前预测单元的码流进行解码,得到当前预测单元的量化系数;并且对当前预测单元的量化系数进行反量化处理,得到当前预测单元的反量化系数;以及按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的预测值与真实值之间的残差值;当沿垂直方向进行预测时,并行进行水平反变换,当沿水平方向预测时,并行进行垂直反变换,也就是说,预设反变换方向与当前预测单元的预测方向垂直,当前预测方向可以理解为预测角度,例如该预测方向可以是水平方向、竖直方向或者与参考方向成任意夹角的方向。
本申请实施例中,对像素进行预测的过程中,沿着预测方向的像素之间互相依赖,如此,对沿着预测方向的预测值变换时,预测方向的像素之间也是互相依赖的,即沿预测方向,不能并行地对多个像素进行变换处理。而沿与预测方向垂直方向,各个像素之间互相依赖,因此,沿预测方向的垂直方向可以并行地对多个像素进行变换处理,如此,能够提高解码效率。
可以理解的是,在图像编码过程中,通常是将待编码图像分割成多个图像块,逐一预测图像块,然后对图像块进行编码得到码流,待编码图像中的图像块也可以称为编码块。
在一个例子中,本申请实施例中,当前预测单元可以是待编码图像中的一个编码块,当前预测单元也可以是待编码图像中的一个编码块经划分后得到的多个预测单元中的一个预测单元,具体根据实际情况确定,本申请实施例不做限定。
一种可能的实现方式中,本申请实施例提供的图像解码方法还包括:按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元,当前预测单元为多个预测单元中任一个。预设划分方式可以为现有多种划分方法中的任一种或多种的组合,具体根据实际需求选择,例如可以包括垂直划分方式、水平划分方式、串分组方式等等,具体根据实际需求选择,本申请实施例不做限定。
第二方面,本申请实施例提供一种图像解码方法,该方法包括:解析码流,获取当前预测单元的预测模式和当前预测单元的预测值与真实值之间的残差值;当前预测单元的预测模式为角度预测模式,该角度预测模式满足预设条件,该预设条件为根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量|M|为整数,根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量|N|为整数,并且|M|或|N|为可取的整数值中的最小值,||表示取绝对值;并且采用当前预测单元的预测模式对当前预测单元进行预测,得到当前预测单元的预测值;以及根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
本申请实施例提供的图像解码方法,解码设备可以采用角度预测模式对当前预测单元进行预测,并且该角度预测模式满足:根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量为整数,并且根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量为整数,即可以直接将已重建的像素值作为待预测像素的预测值,可以避免像素插值运算,能够降低计算量,提高图像解码效率,如此能够提升图像解码性能。
一种可能的实现方式中,
Figure BDA0004198199820000031
n为整数。
本申请实施例中,当M和N还满足
Figure BDA0004198199820000041
时,对当前预测单元进行预测过程中,原本复杂的乘法和除法运算将变为简单的移位操作,能够降低计算的复杂度。
一种实现方式中,按照本申请实施例提供的角度预测模式对当前预测单元预测时,可以采用当前预测单元的前两行已重建的像素对当前预测单元进行预测的,并且,与现有技术中根据当前预测位置前一行像素预测当前位置的像素值的方案相比,本申请实施例对当前预测单元进行预测时可以避免像素插值运算,如此能够降低计算量,提高图像编码效率。
一种可能的实现方式中,上述解析码流,获得当前预测单元的预测值与真实值之间的残差值具体包括:对当前预测单元的码流进行解码,得到当前预测单元的量化系数;并且对当前预测单元的量化系数进行反量化处理,得到当前预测单元的反量化系数;以及按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的预测值与真实值之间的残差值;当沿垂直方向进行预测时,并行进行水平反变换,当沿水平方向预测时,并行进行垂直反变换,也就是说,该预设反变换方向与当前预测单元的预测方向垂直。
本申请实施例中,对像素进行预测的过程中,沿着预测方向的像素之间互相依赖,如此,对沿着预测方向的预测值变换时,预测方向的像素之间也是互相依赖的,即沿预测方向,不能并行地对多个像素进行变换处理。而沿与预测方向垂直方向,各个像素之间互相依赖,因此,沿预测方向的垂直方向可以并行地对多个像素进行变换处理,如此,能够提高解码效率。
一种可能的实现方式中,本申请实施例提供的图像解码方法还包括:按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元,当前预测单元为多个预测单元中任一个。
第三方面,本申请实施例提供一种图像解码装置,包括解析模块、预测模块以及重建模块。其中,解析模块用于解析码流,获取当前预测单元的预测模式和当前预测单元的真实值与预测值之间的残差值;当前预测单元的预测模式至少包括第一预测模式和第二预测模式,其中,第一预测模式用于对当前预测单元的第一部分进行预测,第二预测模式用于对当前预测单元的第二部分进行预测,第一预测模式与第二预测模式不同;预测模块用于采用第一预测模式对当前预测单元的第一部分进行预测,并且采用第二预测模式对当前预测单元的第二部分进行预测,得到当前预测单元的预测值;重建模块用于根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
第四方面,本申请实施例提供一种图像解码装置,包括解析模块、预测模块以及重建模块。其中,解析模块用于解析码流,获取当前预测单元的预测模式和当前预测单元的预测值与真实值之间的残差值;当前预测单元的预测模式为角度预测模式,角度预测模式满足预设条件,该预设条件为根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量|M|为整数,根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量|N|为整数,并且|M|或|N|为可取的整数值中的最小值,||表示取绝对值;预测模块用于采用当前预测单元的预测模式对当前预测单元进行预测,得到当前预测单元的预测值;重建模块用于根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
第五方面,本申请实施例提供一种图像解码器,该图像解码器用于执行第一方面和第二方面及其可能的实现方式中任意之一所述的图像解码方法。
第六方面,本申请实施例提供一种电子设备,包括第五方面所述的图像解码器、通信接口以及存储器;该图像解码器用于执行上述第一方面和第二方面及其可能的实现方式中任意之一所述的图像解码方法。
第七方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面和第二方面及其可能的实现方式中任意之一所述的图像解码方法。
第八方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,执行第一方面和第二方面及其可能的实现方式中任意之一所述的图像解码方法。
第九方面,本申请实施例提供一种芯片,包括存储器和处理器。存储器用于存储计算机指令。处理器用于从存储器中调用并运行该计算机指令,以使得电子设备执行第一方面和第二方面及其可能的实现方式中任意之一所述的图像解码方法。
第十方面,本申请实施例提供一种图像编解码系统,包括图像编码设备和图像解码设备,图像解码设备用于从图像编码设备接收图像码流,并且执行第一方面和第二方面及其可能的实现方式中任意之一所述的图像解码方法以对图像码流进行解码,得到解码后的图像。
应当理解的是,本申请实施例的第三方面至第十方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面至第二方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种编解码系统的架构示意图;
图2为本申请实施例提供的一种编码器的示意性框图;
图3为本申请实施例提供的一种解码器的示意性框图;
图4为本申请实施例提供的一种编/解码的流程示意图;
图5为本申请实施例提供的一种图像编码方法示意图之一;
图6为本申请实施例提供的一种编码块的划分方式示意图;
图7为本申请实施例提供的一种图像解码方法示意图之一;
图8为本申请实施例提供的一种图像解码方法示意图之二;
图9为本申请实施例提供的一种当前预测单元的第一部分和第二部分的示意图;
图10为本申请实施例提供的一种采用第二预测模式对第二部分进行预测的示意图;
图11为本申请实施例提供的一种预测方向示意图;
图12为本申请实施例提供的一种图像编码方法示意图之二;
图13为本申请实施例提供的一种预测角度的示意图;
图14为本申请实施例提供的一种图像解码方法示意图之三;
图15为本申请实施例提供的一种图像解码方法示意图之四;
图16为本申请实施例提供的一种角度预测模式的示意图;
图17为本申请实施例提供的一种采用角度预测模式对当前预测单元进行预测的示意图;
图18为本申请实施例提供的一种图像解码装置的结构示意图之一;
图19为本申请实施例提供的一种图像解码装置的结构示意图之二。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一预测模式和第二预测模式等是用于区别不同的预测模式,而不是用于描述预测模式的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个预测单元是指两个或两个以上的多个预测单元,多个编码块是指两个或两个以上的编码块。
本申请实施例提供的图像解码方法也可以用于视频解码,应理解,视频包括一系列图像(picture),对视频进行解码实质也是对视频所包括的所有图像进行解码。
下面描述本申请实施例所应用的系统架构。参见图1,给出了本申请实施例所应用的编解码系统(也可以称为编码及解码系统)10的架构示意图。如图1所示,编解码系统10可以包括源设备11和目的设备12,源设备11用于对图像进行编码,因此,源设备11可被称为视频编码装置。目的设备12用于对由源设备11所产生的经编码的图像数据进行解码,因此,目的设备12可被称为视频解码装置。
源设备11和目的设备12可以包括各种装置,例如,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、手机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机、无线通信设备等等。
在一个例子中,图1中的源设备11和目的设备12可以是两个单独的设备,或者,源设备11和目的设备12为同一设备,即源设备11或对应的功能以及目的设备12或对应的功能可以集成在同一个设备上。
源设备11和目的设备12之间可以进行通信,例如,目的设备12可从源设备11接收经编码图像数据。在一个实例中,源设备11和目的设备12之间可以包括一个或多个通信媒体,通过一个或多个通信媒体传输经编码图像数据,该一个或多个通信媒体可包含路由器、交换器、基站或促进从源设备11到目的设备12的通信的其它设备。
如图1所示,源设备11包括编码器112,在一个例子中,源设备11还可以包括图像预处理器111以及通信接口113。其中,图像预处理器111,用于对接收到的待编码图像执行预处理,例如,图像预处理器111执行的预处理可以包括整修、色彩格式转换(例如,从RGB格式转换为YUV格式)、调色或去噪等。编码器112,用于接收经预处理的图像,采用相关预测模式(如本文各个实施例中的预测模式)对经预处理的图像进行处理,从而提供经编码图像数据。在一些实施例中,编码器112可以用于执行下文中所描述的各个实施例中的图像编码过程。通信接口113,可用于将经编码图像数据传输至目的设备12或任何其它设备(如存储器),以用于存储或直接重构,其它设备可为任何用于解码或存储的设备。通信接口113也可以将经编码图像数据封装成合适的格式之后再传输。
在一个例子中,上述图像预处理器111、编码器112以及通信接口113可能是源设备11中的硬件部件,也可能是源设备11中的软件程序,本申请实施例不做限定。
继续如图1所示,目的设备12包括解码器122,在一个例子中,目的设备12还可以包括通信接口121、图像后处理器123。其中,通信接口121可用于从源设备11或任何其它源设备接收经编码图像数据,该任何其它源设备例如为存储设备。通信接口121还可以解封装通信接口113所传输的数据以获取经编码图像数据。解码器122,用于接收经编码图像数据并输出经解码图像数据(也称为经重构图像数据或已重构图像数据)。在一些实施例中,解码器122可以用于执行下文中所描述的各个实施例所述的解码过程。
图像后处理器123,用于对经解码图像数据执行后处理,以获得经后处理像数据。图像后处理器123执行的后处理可以包括:色彩格式转换(例如,从YUV格式转换为RGB格式)、调色、整修或重采样,或任何其它处理,还可用于将将经后处理图像数据传输至显示设备进行显示。
同理,在一个例子中,上述通信接口121、解码器122以及图像后处理器123可能是目的设备12中的硬件部件,也可能是目的设备12中的软件程序,本申请实施例不做限定。
下面对图1中的编码器和解码器的结构进行简单介绍。
参见图2,图2示出用于实现本申请实施例的编码器20的实例的示意性框图。在图2中,编码器包括预测处理单元201、残差计算单元202、变换处理单元203、量化单元204、编码单元205、反量化单元(也可以称为逆量化单元)206、反变换处理单元(也可以称为逆变换处理单元207)、重构单元(或者称为重建单元)208以及滤波器单元209。在一个例子中,编码器20还可以包括缓冲器、经解码图像缓冲器,其中,缓冲器用于缓存重构单元208输出的重构图像块,经解码图像缓冲器用于缓存滤波器单元209输出的滤波后的图像块。
编码器20的输入为图像(可以称为待编码图像)的图像块,图像块也可以称为当前图像块或待编码图像块,编码器20中还可以包括分割单元(图2中未示出),该分割单元用于将待编码图像分割成多个图像块。编码器20用于逐块编码从而完成对待编码图像的编码,例如,对每个图像块执行编码过程。
预测处理单元201,用于接收或获取图像块(当前待编码图像的当前待编码图像块,也可以称为当前图像块,该图像块可以理解为图像块的真实值)和已重构图像数据,基于已重构图像数据中的相关数据对当前图像块进行预测,得到当前图像块的预测块。在一个例子中,预测处理单元201可以包含帧间预测单元、帧内预测单元和模式选择单元,模式选择单元用于选择帧内预测模式或者帧间预测模式,若选择帧内预测模式,则由帧内预测单元执行预测过程,若选择帧间预测模式,则由帧间预测单元执行预测过程。
残差计算单元202用于计算图像块的真实值和该图像块的预测块之间的残差,得到残差块,例如,通过逐像素将图像块的像素值减去预测块的像素值。
变换处理单元203用于对残差块进行例如离散余弦变换(discrete cosinetransform,DCT)或离散正弦变换(discrete sine transform,DST)的变换,以在变换域中获取变换系数,变换系数也可以称为变换残差系数,该变换残差系数可以在变换域中表示残差块。
量化单元204用于通过应用标量量化或向量量化来量化变换系数,以获取经量化变换系数,经量化变换系数也可以称为经量化残差系数。量化过程可以减少与部分或全部变换系数有关的位深度。例如,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。可通过调整量化参数(quantizationparameter,QP)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantizationparameter,QP)指示合适的量化步长。
编码单元205用于对上述经量化残差系数进行编码,以经编码比特流的形式输出的经编码图像数据(即当前待编码图像块的编码结果),然后可以将经编码比特流传输到解码器,或将其存储起来,后续传输至解码器或用于检索。编码单元205还可用于对当前图像块的其它语法元素进行编码,例如将预测模式编码至码流等。编码算法包括但不限于可变长度编码(variable length coding,VLC)算法、上下文自适应VLC(context adaptiveVLC,CAVLC)算法、算术编码算法、上下文自适应二进制算术编码(context adaptivebinary arithmetic coding,CABAC)算法、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptive binary arithmetic coding,SBAC)算法、概率区间分割熵(probability interval partitioning entropy,PIPE)算法。
反量化单元206用于对上述经量化系数进行反量化,以获取经反量化系数,该反量化是上述量化单元204的反向应用,例如,基于或使用与量化单元204相同的量化步长,应用量化单元204应用的量化方案的逆量化方案。经反量化系数也可以称为经反量化残差系数。
反变换处理单元207用于对上述反量化系数进行反变换,应理解,该反变换是上述变换处理单元203的反向应用,例如,反变换可以包括逆离散余弦变换(discrete cosinetransform,DCT)或逆离散正弦变换(discrete sine transform,DST),以在像素域(或者称为样本域)中获取逆变换块。逆变换块也可以称为逆变换经反量化块或逆变换残差块。
重构单元208用于将逆变换块(即逆变换残差块)添加至预测块,以在样本域中获取经重构块,重构单元208可以为求和器,例如,将残差块的样本值(即像素值)与预测块的样本值相加。该重构单元208输出的重构块可以后续用于预测其他图像块,例如,在帧内预测模式下使用。
滤波器单元209(或简称“滤波器”)用于对经重构块进行滤波以获取经滤波块,从而顺利进行像素转变或提高图像质量。滤波器单元可以为环路滤波器单元,旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF),或锐化或平滑滤波器,或协同滤波器。在一个例子中,该滤波单元209输出的经滤波块可以后续用于预测其他图像块,例如,在帧间预测模式下使用。
具体的,在本申请实施例中,编码器20用于实现后文实施例中描述的图像编码方法。
参见图3,图3示出用于实现本申请实施例的解码器30的实例的示意性框图。解码器30用于接收例如由编码器20编码的经编码图像数据(即经编码比特流,例如,包括图像块的经编码比特流及相关联的语法元素),以获取经解码图像。解码器30包括解码单元301、反量化单元302、反变换处理单元303、预测处理单元304、重构单元305、滤波器单元306。在一些实例中,解码器30可执行大体上与图2的编码器20描述的编码遍次互逆的解码遍次。在一个例子中,解码器30还可以包括缓冲器、经解码图像缓冲器,其中,缓冲器用于缓存重构单元305输出的重构图像块,经解码图像缓冲器用于缓存滤波器单元306输出的滤波后的图像块。
解码单元301用于对经编码图像数据执行解码,以获取经量化系数和/或经解码的编码参数(例如,解码参数可以包括帧间预测参数、帧内预测参数、滤波器参数和/或其它语法元素中的任意一个或全部)。解码单元301还用于将上述经解码的编码参数转发至预测处理单元304,以供预测处理单元根据编码参数执行预测过程。
反量化单元302的功能可与编码器20的反量化单元206的功能相同,用于反量化(即,逆量化)在由解码单元301解码的经量化系数。
反变换处理单元303的功能可与编码器20的反变换处理单元207的功能相同,重构单元305(例如求和器)的功能可与编码器20的重构单元208的功能相同,用于对上述经量化系数进行逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程),得到逆变换块(也可以称为逆变换残差块),该逆变换块即为当前图像块在像素域中的残差块。
预测处理单元304,用于接收或获取经编码图像数据(例如当前图像块的经编码比特流)和已重构图像数据,预测处理单元301还可以从例如解码单元302接收或获取预测相关参数和/或关于所选择的预测模式的信息(即经解码的编码参数),并且基于已重构图像数据中的相关数据和经解码的编码参数对当前图像块进行预测,得到当前图像块的预测块。在一个例子中,预测处理单元304可以包含帧间预测单元、帧内预测单元和模式选择单元,模式选择单元用于选择帧内预测模式或者帧间预测模式,若选择帧内预测模式,则由帧内预测单元执行预测过程,若选择帧间预测模式,则由帧间预测单元执行预测过程。
重构单元305用于将逆变换块(即逆变换残差块)添加到预测块,以在样本域中获取经重构块,例如将逆变换残差块的样本值与预测块的样本值相加。
滤波器单元306用于对经重构块进行滤波以获取经滤波块,该经滤波块即为经解码图像块。
具体的,在本申请实施例中,解码器30用于实现后文实施例中描述的图像解码方法。
应当理解的是,在本申请实施例的编码器20和解码器30中,针对某个环节的处理结果也可以经过进一步处理后,输出到下一个环节,例如,在插值滤波、运动矢量推导或滤波等环节之后,对相应环节的处理结果进一步进行Clip或移位shift等操作。
下面在图1~图3所示出的编解码系统、编码器以及解码器的基础上,本申请实施例提供一种可能的编/解码实现方式,如图4所示,图4为本申请实施例提供的一种编/解码的流程示意图,该编/解码实现方式包括过程①至过程⑤,过程①至过程⑤可以由上述的源设备11、编码器20、目的设备12或解码器30中的任意一个或多个执行。
过程①:将一帧图像分成一个或多个互相不重叠的并行编码单元。该一个或多个并行编码单元间无依赖关系,可完全并行/独立编码和解码,如图4所示出的并行编码单元1和并行编码单元2。
过程②:对于每个并行编码单元,可再将其分成一个或多个互相不重叠的独立编码单元,各个独立编码单元间可相互不依赖,但可以共用一些并行编码单元头信息。
例如,独立编码单元的宽为w_lcu,高为h_lcu。若并行编码单元划分成一个独立编码单元,则独立编码单元的尺寸与并行编码单元完全相同;否则,则独立编码单元的宽应大于高(除非是边缘区域)。
通常的,独立编码单元可为固定的w_lcu×h_lcu,w_lcu和h_lcu均为2的N次方(N≥0),如独立编码单元的尺寸为:128×4,64×4,32×4,16×4,8×4,32×2,16×2或8×2等。
作为一种可能的示例,独立编码单元可为固定的128×4。若并行编码单元的尺寸为256×8,则可将并行编码单元等分为4个独立编码单元;若并行编码单元的尺寸为288×10,则并行编码单元划分为:第一/二行为2个128×4+1个32×4的独立编码单元;第三行为2个128×2+1个32×2的独立编码单元。
值得注意的是,独立编码单元既可以是包括亮度Y、色度Cb、色度Cr三个分量,或红(red,R)、绿(green,G)、蓝(blue,B)三个分量,也可以仅包含其中的某一个分量。若独立编码单元包含三个分量,则这三个分量的尺寸可以完全一样,也可以不一样,具体与图像的输入格式相关。
过程③:对于每个独立编码单元,可再将其分成一个或多个互相不重叠的编码单元,独立编码单元内的各个编码单元可相互依赖,如多个编码单元可以进行相互参考预编解码。
若编码单元与独立编码单元尺寸相同(即独立编码单元仅分成一个编码单元),则其尺寸可为过程②所述的所有尺寸。
若独立编码单元分成多个互相不重叠的编码单元,则其可行划分例子有:水平等分(编码单元的高与独立编码单元相同,但宽不同,可为其1/2,1/4,1/8,1/16等),垂直等分(编码单元的宽与独立编码单元相同,高不同,可为其1/2,1/4,1/8,1/16等),水平和垂直等分(四叉树划分)等,优选为水平等分。
编码单元的宽为w_cu,高为h_cu,则其宽应大于高(除非是边缘区域)。通常的,编码单元可为固定的w_cu x h_cu,w_cu和h_cu均为2个N次方(N大于等于0),如16x4,8x4,16x2,8x2,8x1,4x1等。
作为一种可能的示例,编码单元可为固定的16x4。若独立编码单元的尺寸为64x4,则可将独立编码单元等分为4个编码单元;若独立编码单元的尺寸为72x4,则编码单元划分为:4个16x4+1个8x4。
值得注意的是,编码单元既可以是包括亮度Y、色度Cb、色度Cr三个分量(或红R、绿G、蓝B三分量),也可以仅包含其中的某一个分量。若包含三个分量,几个分量的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
值得注意的是,过程③是编解码方法中一个可选的步骤,编/解码器可以对过程②获得的独立编码单元进行残差系数(或残差值)进行编/解码。
过程④:对于编码单元,可以将其可再将其分成一个或多个互相不重叠的预测组(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块内残差绝对值的最大值定义为修整最大值(modifiedmaximum,mm)。其次,确定该RB块内残差系数的编码比特数(同一个RB块内残差系数的编码比特数一致)。例如,若当前RB块的关键限值(critica llimit,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位。
另外,对于某些特殊的情况,编码器也可以直接编码图像的原始值,而不是残差值。
需要说明的是,本申请实施例中的预测单元可以是经上述过程③划分得到的编码单元,也可以是编码单元再经过划分后的预测组。
结合上述图1所示的编解码系统、图2所示的编码器以及图3所示的解码器的框架示意图,下面对本申请涉及的图像编码方法和图像解码方法进行详细描述。
首先,本申请实施例提供一种图像编码方法,应用于编码设备,如图5所示,该图像编码方法可以包括S401-S405。
S401、采用第一预测模式对当前预测单元的第一部分进行预测,并采用第二预测模式对当前预测单元的第二部分进行预测,得到当前预测单元的预测值。
应理解,当前预测单元的预测模式至少包括第一预测模式和第二预测模式,其中,第一预测模式用于对当前预测单元的第一部分进行预测,第二预测模式用于对当前预测单元的第二部分进行预测,且第一预测模式与第二预测模式不同。
上述第二部分是当前预测单元中与第一部分不重叠的部分,即第一部分和第二部分不重叠。
在一种示例中,第二部分可以为当前预测单元中除第一部分之外的部分,即当前预测单元由第一部分和第二部分组成。
在另一种示例中,当前预测单元还可以包括除上述第一部分和第二部分之外的至少一个其他部分,例如当前预测单元还包括第三部分,其中,第一部分、第二部分以及第三部分互不重叠。一种示例中,当前预测单元由第一部分、第二部分和第三部分组成。
一种可能的实现方式中,当前预测单元的第一部分中的像素是基于该当前预测单元之外的已重建的像素预测的,也就是说,预测第一部分中的某一个像素时,无需依赖当前预测单元(包括第一部分)内的已重建像素,即当前预测单元的第一部分中的所有像素的预测过程互不依赖。在这种情况下可以采用第一预测模式并行地将第一部分中的所有像素预测出来,即将第一部分的像素作为一个组进行预测,这种并行预测模式即对应第一预测模式,也可以称为组预测模式。
在一个例子中,基于第一预测模式,对第一部分中的像素进行并行预测时,预测第一部分的各个像素的方法可以相同,也可以不同,例如,第一部分中的所有像素均可以采用角度预测方法进行预测,或者第一部分中的部分像素采用角度预测方法进行预测,另一部分像素可以采用直流(DC)预测方法或者双线性插值(Bilinear Interpolation)预测方法进行预测。
进一步,一种可能的实现方式中,当前预测单元的第二部分中的像素是基于当前预测单元之外的已重建的像素和当前预测单元内的已重建像素预测的,或者,当前预测单元的第二部分中的像素是基于该当前预测单元内的已重建的像素预测的。也就是说,预测第二部分中的某一个像素时,需要依赖当前预测单元之外的已重建像素和当前预测单元内的已重建像素,或者,预测第二部分中的某一个像素时,需要依赖当前预测单元内的已重建像素,即当前预测单元的第二部分中的所有像素的预测过程可能相互依赖。在这种情况下可以采用第二预测模式逐像素预测第二部分中的像素,这种逐像素预测的模式即对应第二预测模式,也可以称为点预测模式。
在一个例子中,基于第二预测模式,对第二部分中的像素进行并行预测时,预测第二部分的各个像素的方法可以相同,也可以不同,例如,第二部分中的所有像素均可以根据其上方、左方的像素进行预测,或者第二部分中的部分像素根据其左方、上方的像素进行预测,另一部分像素可以根据其左方、右方、上方以及下方的像素进行预测。
需要说明的是,上述实施例中所述的第二部分中的像素是基于当前预测单元之外的已重建的像素和当前预测单元内的已重建像素预测的,或者,第二部分中的像素是基于当前预测单元内的已重建的像素预测的,其中,(用于预测第二部分的像素的)当前预测单元内的已重建像素预测包括上述第一部分中已重建的像素,也就是说,对第二部分中的像素进行预测时需要依赖当前预测单元的第一部分中的已重建像素。
一种可能的实现方式中,上述当前预测单元的第一部分中的像素是基于该当前预测单元之外的已重建的像素预测的,当前预测单元的第二部分中的像素是基于该当前预测单元之外的已重建的像素预测的,此时采用第一预测模式并行地将第一部分中的所有像素预测出来,即将第一部分的像素作为一个组进行预测,这种并行预测模式即对应第一预测模式,是一种组预测模式;采用第二预测模式并行地将第二部分中的所有像素预测出来,即将第二部分的像素也可以作为一个组进行预测,这种并行预测模式即对应第二预测模式,是一种组预测模式。需要说明的是,第一预测模式和第二预测模式可以均为角度预测模式,但第一预测模式和第二预测模式是不同的角度预测模式,例如上述第一预测模式是垂直角度预测模式,第二预测模式是水平角度预测模式。
一种可能的实现方式中,对当前预测单元中除第一行之外的部分进行划分,得到第一部分和第二部分,其中,对当前预测单元的第一行可以根据该第一行的原始值进行编码,对第一部分采用上述第一预测模式(即组预测模式)进行预测,对第二部分采用上述第二预测模式(即点预测模式)进行预测。
一种可能的实现方式中,对当前预测单元中除第一行和第一列之外的部分进行划分,得到第一部分和第二部分,其中,对当前预测单元的第一行和第一列均采用原始值进行编码,对第一部分采用上述第一预测模式(即组预测模式)进行预测,对第二部分采用上述第二预测模式(即点预测模式)进行预测。
一种可能的实现方式中,对当前预测单元中除左上角的像素之外的部分进行划分,得到第一部分和第二部分,其中,对当前预测单元的左上角像素采用原始值进行编码,对第一部分采用上述第一预测模式(即组预测模式)进行预测,对第二部分采用上述第二预测模式(即点预测模式)进行预测。
一种可能的实现方式中,将当前预测单元划分为三个部分,即第一部分、第二部分以及第三部分,其中,不同的部分可以采用上述第一预测模式和/或第二预测模式进行预测,即组预测模式和点预测模式的不同组合进行预测。例如,采用垂直角度预测模式(属于第一预测模式)对第一部分进行预测,采用水平角度预测模式(属于第一预测模式)对第二部分进行预测,采用点预测模式对第三部分进行预测。
可以理解的是,在图像编码过程中,通常是将待编码图像分割成多个图像块,逐一预测图像块,然后对图像块进行编码得到码流,待编码图像中的图像块也可以称为编码块(即编码单元)。
在一个例子中,本申请实施例中,当前预测单元可以是待编码图像中的一个编码块,当前预测单元也可以是待编码图像中的一个编码块经划分后得到的多个预测单元(也可以称为预测组)中的一个预测单元,具体根据实际情况确定,本申请实施例不做限定。
若当前预测单元是一个编码块经划分后得到的多个预测单元中的一个预测单元,则在上述S401之前,本申请实施例提供的图像编码方法还包括S400。
S400、按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元。
当前预测单元为多个预测单元中任一个。
本申请实施例中,预设划分方式可以为现有多种划分方法中的任一种或多种的组合,具体根据实际需求选择。
示例性的,参考图6,上述的预设划分方式可以为图6中的(a)所示的垂直划分方式,图6中的(a)的左侧示意的是当前编码块,右侧示意的是当前编码块经划分之后得到的多个预测单元。图6中的(a)所示的垂直划分是一种垂直非对称划分方式,按此划分方式将当前编码块划分的各个预测单元之间的像素数量满足2的指数。
上述预设划分方式可以为图6中的(b)所示的串分组的方式,同样,图6中的(b)的左侧示意的是当前编码块,右侧示意的是当前编码块经划分之后得到的多个预测单元。
上述预设划分方式可以为图6中的(c)所示的垂直划分方式和串分组方式的组合方式,同样,图6中的(c)的左侧示意的是当前编码块,右侧示意的是当前编码块经划分之后得到的多个预测单元。
在一个例子中,预设划分方式还可以包括水平划分方式与其他划分方式的组合,对于划分方式的相关描述可以参考现有技术。
S402、确定当前预测单元的预测值与真实值之间的残差值。
本申请实施例中,当前预测单元的预测值与真实值之间的残差值可以是当前预测单元的预测值逐像素点与当前预测单元的真实值的差值。
S403、按照预设变换方向对当前预测单元的预测值与真实值之间的残差值进行变换处理,得到当前预测单元的变换残差系数;当沿垂直方向进行预测时,并行进行水平变换,当沿水平方向预测时,并行进行垂直变换。
也就是说,预设变换方向与当前预测单元的预测方向垂直。在一个例子中,当前预测方向可以理解为预测角度,例如该预测方向可以是水平方向、竖直方向或者与参考方向成任意夹角的方向。
在一个例子中,当预设变换方向为水平变换时,当前预测单元的高度为1,即对于一个图像块,预测完一行像素之后,并行地对这一行像素对应的残差值进行变换处理;当预设变换方向为垂直变换时,当前预测单元的宽度为1,即对于一个图像块,预测完一列像素之后,并行地对这一列像素对应的残差值进行变换处理。
本申请实施例中,对像素进行预测的过程中,沿着预测方向的像素之间互相依赖,如此,对沿着预测方向的预测值变换时,预测方向的像素之间也是互相依赖的,即沿预测方向,不能并行地对多个像素进行变换处理。而沿与预测方向垂直方向,各个像素之间互相依赖,因此,沿预测方向的垂直方向可以并行地对多个像素进行变换处理,如此,能够提高编码效率。
S404、对当前预测单元的变换残差系数进行量化处理,得到当前预测单元的量化残差系数。
S405、对当前预测单元的经量化残差系数进行编码。
在一个例子中,本申请实施例中,编码设备还对当前预测单元的一些编码参数进行编码,编码参数也可以称为语法元素,该编码参数可以包括但不限于当前预测单元的预测模式信息,例如用于指示上述第一预测模式和第二预测模式的信息等。
需要说明的是,本申请实施例中,在上述S402之后,也可以不执行S403,即不对残差值进行变换,直接对残差值进行量化编码。
关于S404-S405的细节的相关描述可以参考现有的来量化处理方法和编码方法,本申请实施例不进行详述。
至此,编码设备完成一个预测单元的编码,得到该预测单元的码流。之后,编码设备可以将码流传输至解码设备,或者将码流存储起来。
在一个例子中,在上述S402之后,本申请提供的图像编码方法还包括S406-S408。
S406、对当前预测单元的经量化残差系数进行反量化处理,得到当前预测单元的反量化系数。
应理解,该反量化处理的过程是上述量化处理的逆过程。
S407、按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的预测值与真实值之间的残差值;当沿垂直方向进行预测时,并行进行水平反变换,当沿水平方向预测时,并行进行垂直反变换。
在一个例子中,当预设反变换方向为水平反变换时,当前预测单元的高度为1;当预设反变换方向为垂直反变换时,当前预测单元的宽度为1。
该反变换处理的过程是上述变换处理的逆过程,反变换处理的反变换方向与当前预测单元的预测方向垂直,反变换方向与上述变换方向相同,对于反变换方向的相关描述可以参考上述实施例中对S403的详细描述,此处不在赘述。
S408、根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
在一个例子中,当前预测单元的预测值和当前预测单元的残差值之和为当前预测单元的重建值。
在一个例子中,得到当前预测单元的重建值之后,还可以对该重建值进行环路滤波,得到当前预测单元的重建单元。
本申请实施例中,编码设备执行S406-S408得到当前预测单元的重建值或重建单元之后,将该重建值或者重建单元缓存在缓存器中,后续地,可以根据当前预测单元的重建值或重建单元对下一个预测单元进行预测。
同理,本申请实施例中,在上述S406之后,也可以不执行S407,即不对反量化系数进行变换,可以将该反量化系数作为残差值。
本申请实施例提供的图像编码方法中,编码设备对当前待预测单元的第一部分采用第一预测模式进行预测,对当前预测单元的第二部分采用第二预测模式,与现有技术中的一个预测单元对应一种预测模式相比,本申请实施例提供的技术方案对预测单元内的像素进行划分,不同部分的像素采用不同的预测模式,如此,编码方式更加灵活,并且根据预测单元内像素的特点选择合适的预测模式,能够使得预测结果更加准确(即更加接近真实值),可以提升图像编码性能。
对于图5所示的图像编码方法,编码设备完成图像编码之后,将码流传输至解码设备,相应地,本申请实施例提供了一种图像解码方法,应用于解码设备,如图7所示,该图像解码方法包括S601-S603。
S601、解析码流,获取当前预测单元的预测模式和当前预测单元的真实值与预测值之间的残差值,当前预测单元的预测模式至少包括第一预测模式和第二预测模式。
其中,第一预测模式用于对当前预测单元的第一部分进行预测,第二预测模式用于对当前预测单元的第二部分进行预测,第一预测模式与第二预测模式不同。
本申请实施例中,解码设备从编码设备接收将经编码的图像码流之后,从码流中解析得到解码参数,例如包括上述当前预测单元的预测模式等,并且解析码流得到当前预测单元的真实值与预测值之间的残差。
上述第二部分是当前预测单元中与第一部分不重叠的部分,即第一部分和第二部分不重叠。在一个例子中,第二部分可以为当前预测单元中除第一部分之外的部分,即当前预测单元由第一部分和第二部分组成。
需要说明的是,当前预测单元的第一部分中的像素是基于该当前预测单元之外的已重建的像素预测的,也就是说,预测第一部分中的某一个像素时,无需依赖当前预测单元(包括第一部分)内的已重建像素,即当前预测单元的第一部分中的所有像素的预测过程互不依赖。在这种情况下可以采用第一预测模式并行地将第一部分中的所有像素预测出来,即将第一部分的像素作为一个组进行预测,这种预测方式可以称为组预测。
进一步,需要说明的是,当前预测单元的第二部分中的像素是基于当前预测单元之外的已重建的像素和当前预测单元内的已重建像素预测的,或者,当前预测单元的第二部分中的像素是基于该当前预测单元内的已重建的像素预测的。也就是说,预测第二部分中的某一个像素时,需要依赖当前预测单元之外的已重建像素和当前预测单元内的已重建像素,或者,预测第二部分中的某一个像素时,需要依赖当前预测单元内的已重建像素,即当前预测单元的第二部分中的所有像素的预测过程可能相互依赖。在这种情况下可以采用第二预测模式逐像素预测第二部分中的像素,这种预测方式可以称为点预测。
在一个例子中,上述实施例中所述的第二部分中的像素是基于当前预测单元之外的已重建的像素和当前预测单元内的已重建像素预测的,或者,第二部分中的像素是基于当前预测单元内的已重建的像素预测的,其中,(用于预测第二部分的像素的)当前预测单元内的已重建像素预测包括上述第一部分中已重建的像素,即对第二部分中的像素进行预测时需要依赖当前预测单元的第一部分中的已重建像素。
S602、采用第一预测模式对当前预测单元的第一部分进行预测,并且采用第二预测模式对当前预测单元的第二部分进行预测,得到当前预测单元的预测值。
本申请实施例中,基于第一预测模式,解码设备根据已解码(已重建)的像素预测当前预测单元的第一部分的像素值,同理,基于第二预测模式,解码设备根据已解码的像素预测当前预测单元的第二部分的像素。
可以理解的是,图像解码过程中对当前预测单元进行预测的方法与图像编码过程中对当前预测单元进行预测的方法类似,因此,对于S602的其他细节的描述可以参考上述实施例中对S401的相关描述,此处不再赘述。
S603、根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
当前预测单元的预测值和当前预测单元的残差值之和为当前预测单元的重建值。
在一个例子中,得到当前预测单元的重建值之后,还可以对该重建值进行环路滤波,得到当前预测单元的重建单元。
本申请实施例中,解码设备得到当前预测单元的重建值或重建单元之后,将该重建值或者重建单元缓存在缓存器中,后续地,可以根据当前预测单元的重建值或重建单元对下一个预测单元进行预测。
本申请实施例中,按照上述S601-S603的方法,对待解码图像中的所有预测单元进行重建,从而得到待解码图像的重建图像,并且可以在解码设备上显示该重建图像。
在一个例子中,结合图7,如图8所示,上述S601中的解析码流,获得当前预测单元的真实值与预测值之间的残差值,具体包括S6011-S6013。
S6011、对当前预测单元的码流进行解码,得到当前预测单元的量化系数。
S6012、对当前预测单元的量化系数进行反量化处理,得到当前预测单元的反量化系数。
S6013、按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的真实值与预测值之间的残差值;当沿垂直方向进行预测时,并行进行水平反变换,当沿水平方向预测时,并行进行垂直反变换。
也就是说,预设反变换方向与当前预测单元的预测方向垂直。在一个例子中,当前预测方向可以理解为预测角度,例如该预测方向可以是水平方向、竖直方向或者与参考方向成任意夹角的方向。
在一个例子中,当预设反变换方向为水平反变换时,当前预测单元的高度为1;当预设反变换方向为垂直反变换时,当前预测单元的宽度为1。
本申请实施例中,对像素进行预测的过程中,沿着预测方向的像素之间互相依赖,如此,对沿着预测方向的预测值变换时,预测方向的像素之间也是互相依赖的,即沿预测方向,不能并行地对多个像素进行变换处理。而沿与预测方向垂直方向,各个像素之间互相依赖,因此,沿预测方向的垂直方向可以并行地对多个像素进行变换处理,如此,能够提高图像重构的效率。
本申请实施例中,解码设备解析得到当前预测单元的量化系数之后,对量化系数进行反量化处理以及反变换处理的过程与上述S406-S407类似,因此,对于S6012-S6013的描述可以参考上述实施例中对于S406-S407的相关描述,此处不再赘述。
需要说明的是,本申请实施例中,在上述S6012之后,也可以不执行S6013,即不对反量化系数进行变换,可以将该反量化系数作为残差值。
可以理解的是,在图像解码过程中,通常是将待解码图像分割成多个图像块,逐一预测图像块,待解码图像中的图像块也可以称为编码块。
在一个例子中,本申请实施例中,当前预测单元可以是待解码图像中的一个编码块,当前预测单元也可以是待解码图像中的一个编码块经划分后得到的多个预测单元中的一个预测单元,具体根据实际情况确定,本申请实施例不做限定。
如图8所示,若当前预测单元是一个编码块经划分后得到的多个预测单元中的一个预测单元,则在上述S601之前,本申请实施例提供的图像解码方法还包括S600。
S600、按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元。
当前预测单元为多个预测单元中任一个。
本申请实施例中,预设划分方式可以为现有多种划分方法中的任一种或多种的组合,例如可以包括垂直划分方式、水平划分方式、串分组方式等等,具体根据实际需求选择,本申请实施例不做限定。
对于S600中的划分方式的更多描述可以上述实施例中对于S400的详细描述,此处不再赘述。
综上,本申请实施例提供的图像解码方法中,解码设备对当前待预测单元的第一部分采用第一预测模式进行预测,对当前预测单元的第二部分采用第二预测模式,与现有技术中的一个预测单元对应一种预测模式相比,本申请实施例提供的技术方案对预测单元内的像素进行划分,不同部分的像素采用不同的预测模式,如此,解码方式更加灵活,并且根据预测单元内像素的特点选择合适的预测模式,使得预测结果更加准确(即更加接近真实值),能够提升图像解码性能。
示例性的,参考图9,假设当前预测单元的尺寸为8×4(8指的是图像高度方向上的像素个数,4指的是图像宽度方向上的像素个数),在上述图像编码和图像解码的实施例中,对当前预测单元进行预测的过程中,对于当前预测单元的第一部分中的像素,可以采用第一预测模式进行预测,例如可以将当前预测单元的上一行的像素和/或前一列的像素作为该第一部分中的像素的参考像素,对第一部分中的像素进行预测,并且第一部分中的所有像素可以并行预测。例如第一预测模式下,可以采用角度预测方法、直流(DC)预测方法、双线性插值(Bilinear Interpolation)预测方法中的至少一种对第一部分的像素进行预测。对于该当前预测单元的第二部分中的像素,可以逐一预测进行预测,以其中的一个像素为例,可以根据该像素附近的其他像素预测该像素的像素值,例如第二预测模式下,可以采用自适应中值预测(median adaptive prediction,MAP)方法、改进的MAP(即MMAP)、中点预测(mid-point prediction,MPP)方法中的至少一种对第二部分的像素进行预测。
如图10所示,仍以上述8×4的当前预测单元为例,图10中标记有1,2,3,…,16的像素均采用第二预测模式预测,例如,可以根据待预测像素的上方、下方、左方以及右方的已重建像素的加权平均值作为待预测像素的像素值,对图10中的像素1、像素2、像素3、像素5、像素6、像素7、像素8、像素9、像素10以及像素11进行预测时,采用其上方、下方、左方以及右方的已重建像素的加权平均值作为其预测值。
需要说明的是,由于第二部分中位于当前预测单元的边缘的一些像素可能不存在上方、下方、左方或右方中的至少一个方向的参考像素,这种情况下需要采用特殊的预测方式对这些像素进行预测。例如,图10中的像素4和像素12,不存在右方的参考像素,因此,可以根据其左方、上方以及下方的像素来预测该像素的像素值;又例如,图10中的像素13、像素14、像素15以及像素16,不存在下方的参考像素,因此,可以根据其左方、右方以及上方的像素来预测该像素的像素值。
结合图10,可知,第二部分中的部分像素是基于当前预测单元之外的已重建像素和当前预测单元内的已重建像素预测的,例如像素1、像素2、像素3,像素4、像素5以及像素13是根据当前预测单元之外的已重建像素和当前预测单元内的已重建像素预测的;第二部分中的部分像素是基于当前预测单元内的已重建像素预测的,例如像素6、像素7、像素8、像素9、像素10、像素11、像素12、像素14、像素15以及像素16是根据当前预测单元内的已重建像素预测的。
上述对当前预测单元的预测过程为帧内预测。
示例性的,参考图11,在上述图像编码的过程中对当前预测单元的残差值进行变换时,对当前预测单元的第一行的像素进行预测时,需要根据其上一行的像素进行预测,即预测方向为垂直方向,那么在垂直方向上对一个预测的像素值进行变换依赖于上一行的像素,在与该预测方向垂直的方向(即水平方向),对各个像素的变换过程是相互独立的,在这种功能情况下,可以沿水平方向对已预测的像素进行变换处理(图9所示的变换处理是一维变换处理)。
本申请实施例还提供一种图像编码方法,应用于编码设备,如图12所示,该图像编码方法可以包括S1101-S1105。
S1101、采用角度预测模式对当前预测单元进行预测,得到当前预测单元的预测值。该角度预测模式满足预设条件,该预设条件为根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量|M|为整数,根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量|N|为整数,并且|M|或|N|为可取的整数值中的最小值。
参考图13,也就是说,上述角度预测模式满足tan
Figure BDA0004198199820000171
M,N均为整数;其中,θ表示预测角度,|M|表示在图像高度方向上,当前像素点与当前像素点的预测像素点之间间隔的像素数量,|N|表示在图像宽度方向上,当前像素点与当前像素点的预测像素点之间间隔的像素数量,并且|M|为满足tan/>
Figure BDA0004198199820000181
的所有取值的绝对值中的最小值或者|N|为满足tan
Figure BDA0004198199820000182
的所有取值的绝对值中的最小值,||表示取绝对值。
进一步,在一个例子中,上述M和N还满足
Figure BDA0004198199820000183
n为整数。
本申请实施例中,当M和N还满足
Figure BDA0004198199820000184
时,对当前预测单元进行预测过程中,原本复杂的乘法和除法运算将变为简单的移位操作,能够降低计算的复杂度,例如乘以8可以等价为左移3个单位,即<<3。
可以理解的是,在图像编码过程中,通常是将待编码图像分割成多个图像块,逐一预测图像块,然后对图像块进行编码得到码流,待编码图像中的图像块也可以称为编码块。
在一个例子中,本申请实施例中,当前预测单元可以是待编码图像中的一个编码块,当前预测单元也可以是待编码图像中的一个编码块经划分后得到的多个预测单元中的一个预测单元,具体根据实际情况确定,本申请实施例不做限定。
若当前预测单元是一个编码块经划分后得到的多个预测单元中的一个预测单元,则在上述S1100之前,本申请实施例提供的图像编码方法还包括S1100。
S1100、按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元。
当前预测单元为多个预测单元中任一个。
本申请实施例中,预设划分方式可以为现有多种划分方法中的任一种或多种的组合,例如可以包括垂直划分方式、水平划分方式、串分组方式等等,具体根据实际需求选择,本申请实施例不做限定。
需要说明的是,S1100中的划分方式与上述实施例中的S400中的划分方式类似,对于S1100的更多描述可以上述实施例中对于S400的详细描述,此处不再赘述。
S1102、确定当前预测单元的预测值与真实值之间的残差值。
本申请实施例中,当前预测单元的预测值与真实值之间的残差值可以是当前预测单元的预测值逐像素点与当前预测单元的真实值的差值。
S1103、按照预设变换方向对当前预测单元的预测值与真实值之间的残差值进行变换处理,得到当前预测单元的变换残差系数;当沿垂直方向进行预测时,并行进行水平变换,当沿水平方向预测时,并行进行垂直变换。
也就是说,预设变换方向与当前预测单元的预测方向垂直。在一个例子中,当前预测方向可以理解为预测角度,例如该预测方向可以是水平方向、竖直方向或者与参考方向成任意夹角的方向。对于变换方向的详细描述可以参考上述S403中对于变换方向的描述,此处不再赘述。
在一个例子中,当预设变换方向为水平反变换时,当前预测单元的高度为1;当预设变换方向为垂直反变换时,当前预测单元的宽度为1。
本申请实施例中,对像素进行预测的过程中,沿着预测方向的像素之间互相依赖,如此,对沿着预测方向的预测值变换时,预测方向的像素之间也是互相依赖的,即沿预测方向,不能并行地对多个像素进行变换处理。而沿与预测方向垂直方向,各个像素之间互相依赖,因此,沿预测方向的垂直方向可以并行地对多个像素进行变换处理,如此,能够提高编码效率。
S1104、对当前预测单元的变换残差系数进行量化处理,得到当前预测单元的量化残差系数。
S1105、对当前预测单元的经量化残差系数进行编码。
在一个例子中,本申请实施例中,编码设备还对当前预测单元的一些编码参数进行编码,编码参数也可以称为语法元素,该编码参数可以包括但不限于当前预测单元的预测模式信息,例如用于指示上述角度预测模式的信息等。
需要说明的是,本申请实施例中,在上述S1102之后,也可以不执行S1103,即不对残差值进行变换,直接对残差值进行量化再编码。
至此,编码设备完成一个预测单元的编码,得到该预测单元的码流。之后,编码设备可以将码流传输至解码设备,或者将码流存储起来。
在一个例子中,在上述S1104之后,本申请提供的图像编码方法还包括S1106-S1108。
S1106、对当前预测单元的经量化残差系数进行反量化处理,得到当前预测单元的反量化系数。
应理解,该反量化处理的过程是上述量化处理的逆过程。
S1107、按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的预测值与真实值之间的残差值,该预设反变换方向与当前预测单元的预测方向垂直。
该反变换处理的过程是上述变换处理的逆过程,反变换处理的反变换方向与当前预测单元的预测方向垂直,反变换方向与上述变换方向相同,对于反变换方向的相关描述可以参考上述实施例中对S1103的详细描述,此处不在赘述。
S1108、根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
在一个例子中,当前预测单元的预测值和当前预测单元的残差值之和为当前预测单元的重建值。
在一个例子中,得到当前预测单元的重建值之后,还可以对该重建值进行环路滤波,得到当前预测单元的重建单元。
本申请实施例中,编码设备执行S1106-S1108得到当前预测单元的重建值或重建单元之后,将该重建值或者重建单元缓存在缓存器中,后续地,可以根据当前预测单元的重建值或重建单元对下一个预测单元进行预测。
同理,本申请实施例中,在上述S1106之后,也可以不执行S1107,即不对反量化系数进行变换,可以将该反量化系数作为残差值。
本申请实施例提供的图像编码方法,编码设备可以采用角度预测模式对当前预测单元进行预测,并且该角度预测模式满足:根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量为整数,并且根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量为整数,即可以直接将已重建的像素值作为待预测像素的预测值,可以避免像素插值运算,能够降低计算量,提高图像编码效率,如此能够提升图像编码性能。
对于图12所示的图像编码方法,编码设备完成图像编码之后,将码流传输至解码设备,相应地,本申请实施例提供了一种图像解码方法,应用于解码设备,如图14所示,该图像解码方法包括S1301-S1303。
S1301、解析码流,获取当前预测单元的预测模式和当前预测单元的真实值与预测值之间的残差值,该当前预测单元的预测模式为角度预测模式,该角度预测模式满足预设条件,该预设条件为根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量M为整数,根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量N为整数,并且M或N为可取的整数值中的最小值。
也就是说,上述角度预测模式满足tan
Figure BDA0004198199820000201
M,N均为整数;其中,θ表示预测角度,|M|表示在图像高度方向上,当前像素点与当前像素点的预测像素点之间间隔的像素数量,|N|表示在图像宽度方向上,当前像素点与当前像素点的预测像素点之间间隔的像素数量,并且|M|为满足tan/>
Figure BDA0004198199820000202
的所有取值的绝对值中的最小值或者|N|为满足tan/>
Figure BDA0004198199820000203
的所有取值的绝对值中的最小值,| |表示取绝对值。
进一步,在一个例子中,上述M和N还满足
Figure BDA0004198199820000204
n为整数。
与现有技术相比,本申请实施例对当前预测单元进行预测时,由于在图像高度方向上,当前像素点与当前像素点的预测像素点之间间隔的像素数量为整数,在图像宽度方向上,当前像素点与当前像素点的预测像素点之间间隔的像素数量也为整数,即可以直接将已重建的像素值作为待预测像素的预测值,可以避免像素插值运算,如此能够降低计算量,提高图像编码效率。
对于该角度预测模式的更多细节的描述,可以参考对S1101的描述,此处不再赘述。
S1302、采用当前预测单元的预测模式对当前预测单元进行预测,得到当前预测单元的预测值。
需要说明的是,图像解码过程中对当前图像的预测方法与图像编码过程中对图像的预测方法是相对应的,即类似的。因此,对于S1302的具体描述可以参考上述对于S1101的详细描述此处不再赘述。
S1303、根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值。
当前预测单元的预测值和当前预测单元的残差值之和为当前预测单元的重建值。
在一个例子中,得到当前预测单元的重建值之后,还可以对该重建值进行环路滤波,得到当前预测单元的重建单元。
本申请实施例中,解码设备得到当前预测单元的重建值或重建单元之后,将该重建值或者重建单元缓存在缓存器中,后续地,可以根据当前预测单元的重建值或重建单元对下一个预测单元进行预测。
本申请实施例中,按照上述S1301-S1303的方法,对待解码图像中的所有预测单元进行重建,从而得到待解码图像的重建图像,并且可以在解码设备上显示该重建图像。
在一个例子中,上述S1301中的解析码流,获得当前预测单元的真实值与预测值之间的残差值,具体包括S13011-S13011。
S13011、对当前预测单元的码流进行解码,得到当前预测单元的量化系数。
S13012、对当前预测单元的量化系数进行反量化处理,得到当前预测单元的反量化系数。
S13013、按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的真实值与预测值之间的残差值;当沿垂直方向进行预测时,并行进行水平反变换,当沿水平方向预测时,并行进行垂直反变换。
也就是说,预设反变换方向与当前预测单元的预测方向垂直。在一个例子中,当前预测方向可以理解为预测角度,例如该预测方向可以是水平方向、竖直方向或者与参考方向成任意夹角的方向。
在一个例子中,当预设反变换方向为水平反变换时,当前预测单元的高度为1;当预设反变换方向为垂直反变换时,当前预测单元的宽度为1。
本申请实施例中,对像素进行预测的过程中,沿着预测方向的像素之间互相依赖,如此,对沿着预测方向的预测值变换时,预测方向的像素之间也是互相依赖的,即沿预测方向,不能并行地对多个像素进行变换处理。而沿与预测方向垂直方向,各个像素之间互相依赖,因此,沿预测方向的垂直方向可以并行地对多个像素进行变换处理,如此,能够提高图像重建的效率。
本申请实施例中,解码设备解析得到当前预测单元的量化系数之后,对量化系数进行反量化处理以及反变换处理的过程与上述S1106-S1107类似,因此,对于S13011-S13013的描述可以参考上述实施例中对于S1106-S1107的相关描述,此处不再赘述。
需要说明的是,本申请实施例中,在上述S13012之后,也可以不执行S13013,即不对反量化系数进行变换,可以将该反量化系数作为残差值。
可以理解的是,在图像解码过程中,通常是将待解码图像分割成多个图像块,逐一预测图像块,待解码图像中的图像块也可以称为编码块。
在一个例子中,本申请实施例中,当前预测单元可以是待解码图像中的一个编码块,当前预测单元也可以是待解码图像中的一个编码块经划分后得到的多个预测单元中的一个预测单元,具体根据实际情况确定,本申请实施例不做限定。
结合图14,如图15所示,若当前预测单元是一个编码块经划分后得到的多个预测单元中的一个预测单元,则在上述S1301之前,本申请实施例提供的图像解码方法还包括S1300。
S1300、按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元。
当前预测单元为多个预测单元中任一个。
本申请实施例中,预设划分方式可以为现有多种划分方法中的任一种或多种的组合,例如可以包括垂直划分方式、水平划分方式、串分组方式等等,具体根据实际需求选择,本申请实施例不做限定。
对于S1300中的划分方式的更多描述可以上述实施例中对于S1100的详细描述,此处不再赘述。
综上,本申请实施例提供的图像解码方法中,解码设备可以采用角度预测模式对当前预测单元进行预测,并且该角度预测模式满足:根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量为整数,并且根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量为整数,即可以直接将已重建的像素值作为待预测像素的预测值,可以避免像素插值运算,能够降低计算量,提高图像编码效率,如此能够提升图像解码性能。
示例性的,以当前预测单元为8×4的图像块为例,如图16所示,在上述图像编码和图像解码的实施例中,采用角度预测模式对当前预测单元进行预测时,该当前预测单元的每一行中的所有像素的预测方向相同且运动矢量也相同,不同行的运动矢量不同,运动矢量可以理解为当前位置到预测位置的水平偏移量。例如,参考图16,当前预测单元的第1行的所有像素的预测方向相同且运动矢量相同,第1行的所有像素的预测方向与第2行的所有像素的预测方向相同,但是运动矢量不同。
结合图16所示的当前预测单元,在确定预测角度(即预测方向)之后,按照上述的角度预测模式对该当前预测单元中的所有像素进行预测,假设当前预测单元的第1行为编码图像(或编码块)的第m行,对于图16所示的预测角度,分别对当前预测单元的每一行进行预测,具体过程如图17所示。
从图17中的(a)中可以看出:当前预测单元中,第m行的所有像素的预测值是基于已重建的第m-2行像素进行预测的,将第m-2行中的像素P11作为第m行的第1个像素的预测值,如此,第m行的8个像素的预测值依次为第m-2行的像素P11、P12、P13、P14、P15、P16、P17、P18的像素值。并且按照这种角度预测模式,直接将已重建的像素值作为第m行像素的预测值,即在对第m行的像素进行预测时无需对多个像素值进行插值来获得第m行的像素值。
结合图17中的(b)中可以看出:当前预测单元中,第m+1行的所有像素的预测值是基于已重建的第m-1行像素进行预测的,将第m-1行中的像素P21作为第m+1行的第1个像素的预测值,如此,第m+1行的8个像素的预测值依次为第m-1行的像素P21、P22、P23、P24、P25、P26、P27、P28的像素值。同理,按照这种角度预测模式,直接将已重建的像素值作为第m+1行像素的预测值,即在对第m+1行的像素进行预测时无需对多个像素值进行插值来获得第m行的像素值。
结合图17中的(c)中可以看出:当前预测单元中,第m+2行的所有像素的预测值是基于已重建的第m-2行像素进行预测的,将第m-2行中的像素P12作为第m+2行的第1个像素的预测值,如此,第m+2行的8个像素的预测值依次为第m-2行的像素P12、P13、P14、P15、P16、P17、P18、P19的像素值。同理,按照这种角度预测模式,直接将已重建的像素值作为第m+2行像素的预测值,即在对第m+2行的像素进行预测时无需对多个像素值进行插值来获得第m行的像素值。
结合图17中的(d)中可以看出:当前预测单元中,第m+3行的所有像素的预测值是基于已重建的第m-1行像素进行预测的,将第m-1行中的像素P22作为第m+3行的第1个像素的预测值,如此,第m+3行的8个像素的预测值依次为第m-1行的像素P22、P23、P24、P25、P26、P27、P28、P29的像素值。同理,按照这种角度预测模式,直接将已重建的像素值作为第m+3行像素的预测值,即在对第m+3行的像素进行预测时无需对多个像素值进行插值来获得第m行的像素值。
结合图17,当前预测单元的各个行之间的预测过程具有一定的规律,例如,当前预测单元的第1行与第3行相比,第1行的运动矢量与第3行的运动矢量在图像宽度方向(即水平方向)具有偏移关系,第1行的运动矢量与第3行的运动矢量在图像高度方向(即竖直方向)也具有偏移关系,例如,第3的运动矢量是第1行的运动矢量在图像宽度方向偏移1个像素的结果,且第3行的运动矢量是第1行的运动矢量在图像高度方向偏移2个像素的结果。
综上可知,按照本申请实施例提供的角度预测模式对当前预测单元预测时,是采用当前预测单元的前两行已重建的像素对当前预测单元进行预测的,并且,与现有技术中根据当前预测位置前一行像素预测当前位置的像素值的方案相比,本申请实施例对当前预测单元进行预测时可以避免像素插值运算,如此能够降低计算量,提高图像编码效率。
相应地,本申请实施例提供一种图像解码装置,该图像解码装置可以为通话过程中的任一图像解码装置,根据上述方法示例可以对该图像解码装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图18示出上述实施例中所涉及的图像解码装置的一种可能的结构示意图。如图18所示,该图像解码装置包括解析模块1701、预测模块1702以及重建模块1703。
在一种实施例中,上述解析模块1701用于解析码流,获取当前预测单元的预测模式和当前预测单元的真实值与预测值之间的残差值;当前预测单元的预测模式至少包括第一预测模式和第二预测模式,其中,第一预测模式用于对当前预测单元的第一部分进行预测,第二预测模式用于对当前预测单元的第二部分进行预测,第一预测模式与第二预测模式不同,例如执行上述方法实施例中的S601。预测模块1702,用于采用第一预测模式对当前预测单元的第一部分进行预测,并且采用第二预测模式对当前预测单元的第二部分进行预测,得到当前预测单元的预测值,例如执行上述方法实施例中的S602。重建模块1703,用于根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值S603。
在一个例子中,本申请实施例提供的图像解码装置还包括反量化模块1704和反变换模块1705,上述解析模块1701具体用于对当前预测单元的码流进行解码,得到当前预测单元的量化系数,例如执行上述实施例中的S6011;反量化模块1704用于对当前预测单元的量化系数进行反量化处理,得到当前预测单元的反量化系数;例如执行上述实施例中的S6012;反变换模块1705用于按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的预测值与真实值之间的残差值,该预设反变换方向与当前预测单元的预测方向垂直,例如执行上述实施例中的S6013。
在一个例子中,本申请实施例提供的图像解码装置还包括分组模块,该分组模块用于按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元,当前预测单元为多个预测单元中任一个,例如执行上述实施例中的S600。
在另一种实施例中,上述解析模块1701用于解析码流,获取当前预测单元的预测模式和当前预测单元的预测值与真实值之间的残差值,当前预测单元的预测模式为角度预测模式,该角度预测模式满足预设条件,该预设条件为根据预测角度确定的预测像素点与当前像素点在图像高度方向间隔的像素数量|M|为整数,根据预测角度确定的预测像素点与当前像素点在图像宽度方向间隔的像素数量|N|为整数,并且|M|或|N|为可取的整数值中的最小值,||表示取绝对值,例如执行上述实施例中的1301;预测模块1702用于采用当前预测单元的预测模式对当前预测单元进行预测,得到当前预测单元的预测值,例如执行上述实施例中的1302;重建模块1703用于根据当前预测单元的预测值和当前预测单元的残差值,确定当前预测单元的重建值,例如执行上述实施例中的1303。
上述解析模块1701具体用于对当前预测单元的码流进行解码,得到当前预测单元的量化系数,例如执行上述实施例中的S13011;反量化模块1704用于对当前预测单元的量化系数进行反量化处理,得到当前预测单元的反量化系数;例如执行上述实施例中的S13012;反变换模块1705用于按照预设反变换方向对当前预测单元的反量化系数进行反变换处理,得到当前预测单元的预测值与真实值之间的残差值,该预设反变换方向与当前预测单元的预测方向垂直,例如执行上述实施例中的S13013。
在一个例子中,上述分组模块用于按照预设划分方式对当前编码块进行划分,得到当前编码块的多个预测单元,当前预测单元为多个预测单元中任一个,例如执行上述实施例中的S1200。
上述图像解码装置的各个模块还可以用于执行上述方法实施例中的其他动作,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图19示出了上述实施例中所涉及的图像解码装置的另一种可能的结构示意图。如图19所示,本申请实施例提供的图像解码装置可以包括:处理模块1801和通信模块1802。处理模块1801可以用于对该图像解码装置的动作进行控制管理,例如,处理模块1801可以用于支持该图像解码装置执行上述方法实施例中的S601-S603、S600、S1301-S1303以及S1300等,和/或用于本文所描述的技术的其它过程。通信模块1802可以用于支持该图像解码装置与其他网络实体的通信,例如与图像编码装置通信。在一个例子中,如图19所示,该图像解码装置还可以包括存储模块1803,用于存储该图像解码装置的程序代码和数据,例如存储解码得到的图像。
其中,处理模块1801可以是处理器,例如处理器可以为图1中的解码器122。通信模块1802可以是收发器、收发电路或通信接口等,例如图1中的通信接口121,存储模块1803可以是存储器。
上述图像解码装置包含的模块实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种图像解码方法,其特征在于,包括:
解析码流,获取当前预测单元的预测模式和所述当前预测单元的真实值与预测值之间的残差值;所述当前预测单元的预测模式至少包括第一预测模式和第二预测模式,其中,所述第一预测模式用于对所述当前预测单元的第一部分进行预测,所述第二预测模式用于对所述当前预测单元的第二部分进行预测,所述第一预测模式与所述第二预测模式不同,所述第一预测模式为角度预测模式,所述当前预测单元的尺寸固定为16×2或8×2或8×1;
采用所述第一预测模式对所述当前预测单元的第一部分进行预测,并且采用所述第二预测模式对所述当前预测单元的第二部分进行预测,得到所述当前预测单元的预测值;
根据所述当前预测单元的预测值和所述当前预测单元的残差值,确定所述当前预测单元的重建值。
2.根据权利要求1所述的方法,其特征在于,
所述第一部分中的像素是基于所述当前预测单元之外的已重建的像素预测的;
所述第二部分中的像素是基于所述当前预测单元之外的已重建的像素和所述当前预测单元内的已重建像素预测的。
3.根据权利要求1所述的方法,其特征在于,
所述第一部分中的像素是基于所述当前预测单元之外的已重建的像素预测的;
所述第二部分中的像素是基于所述当前预测单元内的已重建的像素预测的;所述当前预测单元内的已重建像素包括所述第一部分中的已重建像素。
4.根据权利要求1至3任一项所述的方法,其特征在于,
所述当前预测单元还包括第三部分,所述第三部分的预测模式为所述第一预测模式或所述第二预测模式。
5.根据权利要求1至3任一项所述的方法,其特征在于,
所述第一部分与所述第二部分不重叠。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述解析码流,获取当前预测单元的预测模式和所述当前预测单元的残差值,包括:
采用半定长编码模式从码流中解析所述当前预测单元的一个或多个残差小块;
根据所述当前预测单元的所述一个或多个残差小块,导出所述当前预测单元的残差值。
7.根据权利要求1至3任一项所述的方法,其特征在于,
所述第二预测模式是组预测模式。
8.一种图像解码装置,其特征在于,包括解析模块、预测模块以及重建模块;
所述解析模块,用于解析码流,获取当前预测单元的预测模式和所述当前预测单元的真实值与预测值之间的残差值;所述当前预测单元的预测模式至少包括第一预测模式和第二预测模式,其中,所述第一预测模式用于对所述当前预测单元的第一部分进行预测,所述第二预测模式用于对所述当前预测单元的第二部分进行预测,所述第一预测模式与所述第二预测模式不同,所述第一预测模式为角度预测模式,所述当前预测单元的尺寸固定为16×2或8×2或8×1;
所述预测模块,用于采用所述第一预测模式对所述当前预测单元的第一部分进行预测,并且采用所述第二预测模式对所述当前预测单元的第二部分进行预测,得到所述当前预测单元的预测值;
所述重建模块,用于根据所述当前预测单元的预测值和所述当前预测单元的残差值,确定所述当前预测单元的重建值。
9.根据权利要求8所述的装置,其特征在于,
所述第一部分中的像素是基于所述当前预测单元之外的已重建的像素预测的;
所述第二部分中的像素是基于所述当前预测单元之外的已重建的像素和所述当前预测单元内的已重建像素预测的。
10.根据权利要求8所述的装置,其特征在于,
所述第一部分中的像素是基于所述当前预测单元之外的已重建的像素预测的;
所述第二部分中的像素是基于所述当前预测单元内的已重建的像素预测的;所述当前预测单元内的已重建像素包括所述第一部分中的已重建像素。
11.根据权利要求8至10任一项所述的装置,其特征在于,
所述第一部分与所述第二部分不重叠。
12.根据权利要求8至10任一项所述的装置,其特征在于,
所述当前预测单元还包括第三部分,所述第三部分的预测模式为所述第一预测模式或所述第二预测模式。
13.根据权利要求8至10任一项所述的装置,其特征在于,
所述解析模块,具体用于采用半定长编码模式从码流中解析所述当前预测单元的一个或多个残差小块;并且根据所述当前预测单元的所述一个或多个残差小块,导出所述当前预测单元的残差值。
14.根据权利要求8至10任一项所述的装置,其特征在于,
所述第二预测模式是组预测模式。
15.一种图像解码器,其特征在于,用于执行如权利要求1至7任一项所述的图像解码方法。
16.一种电子设备,其特征在于,包括图像解码器、通信接口以及存储器;所述图像解码器用于如权利要求1至7任一项所述的图像解码方法。
17.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至7任一项所述的图像解码方法。
CN202310452439.7A 2021-11-11 2021-11-11 一种图像解码方法及装置 Active CN116389722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310452439.7A CN116389722B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111335705.5A CN116095308B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置
CN202310452439.7A CN116389722B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202111335705.5A Division CN116095308B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置

Publications (2)

Publication Number Publication Date
CN116389722A true CN116389722A (zh) 2023-07-04
CN116389722B CN116389722B (zh) 2024-10-29

Family

ID=86210799

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111335705.5A Active CN116095308B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置
CN202310452439.7A Active CN116389722B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111335705.5A Active CN116095308B (zh) 2021-11-11 2021-11-11 一种图像解码方法及装置

Country Status (1)

Country Link
CN (2) CN116095308B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040785A (zh) * 2016-02-04 2017-08-11 联发科技股份有限公司 图像解码和图像编码的方法和装置
CN110881125A (zh) * 2019-12-10 2020-03-13 中国科学院深圳先进技术研究院 帧内预测方法、视频编码、解码方法及相关设备
CN111327904A (zh) * 2018-12-15 2020-06-23 华为技术有限公司 图像重建方法和装置
CN111698504A (zh) * 2019-03-11 2020-09-22 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
CN113475068A (zh) * 2019-02-28 2021-10-01 高通股份有限公司 视频编译码中通过广义帧内预测对子块进行编译码

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385555A (zh) * 2018-12-28 2020-07-07 上海天荷电子信息有限公司 原始和/或残差数据用分量间预测的数据压缩方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040785A (zh) * 2016-02-04 2017-08-11 联发科技股份有限公司 图像解码和图像编码的方法和装置
CN111327904A (zh) * 2018-12-15 2020-06-23 华为技术有限公司 图像重建方法和装置
CN113475068A (zh) * 2019-02-28 2021-10-01 高通股份有限公司 视频编译码中通过广义帧内预测对子块进行编译码
CN111698504A (zh) * 2019-03-11 2020-09-22 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
CN110881125A (zh) * 2019-12-10 2020-03-13 中国科学院深圳先进技术研究院 帧内预测方法、视频编码、解码方法及相关设备

Also Published As

Publication number Publication date
CN116389722B (zh) 2024-10-29
CN116095308A (zh) 2023-05-09
CN116095308B (zh) 2024-10-29

Similar Documents

Publication Publication Date Title
US9277211B2 (en) Binarization scheme for intra prediction residuals and improved intra prediction in lossless coding in HEVC
JP7319389B2 (ja) 適応ループ・フィルタを用いたエンコーダ、デコーダおよび対応する方法
WO2020125595A1 (zh) 视频译码器及相应方法
JP7508645B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
US11936860B2 (en) Method and apparatus of sharpening interpolation filtering for predictive coding
KR102626200B1 (ko) Cbf 플래그들의 효율적인 시그널링의 방법
US20210321113A1 (en) Encoder, a decoder and corresponding methods using compact mv storage
JP7615518B2 (ja) Dct2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法
WO2024022367A1 (zh) 图像解码方法、编码方法及装置
WO2022117036A1 (zh) 量化参数的解码方法和装置
WO2020141984A2 (en) Method and apparatus of mode- and size-dependent block-level restrictions for position dependent prediction combination
US20220014732A1 (en) Method and Apparatus of Quantizing Coefficients for Matrix-Based Intra Prediction Technique
WO2021037053A1 (en) An encoder, a decoder and corresponding methods of cabac coding for the indices of geometric partition flag
WO2019204672A1 (en) Interpolation filter for an intra prediction apparatus and method for video coding
JP7618734B2 (ja) 予測コーディングのための補間フィルタ処理の方法および装置
CN117478877A (zh) 用于非线性自适应环路滤波器的限幅电平
WO2020111981A1 (en) Apparatus and method for chrominance quantization parameter derivation
CN116095308B (zh) 一种图像解码方法及装置
RU2786022C1 (ru) Устройство и способ для ограничений уровня блока в зависимости от режима и размера
KR102762723B1 (ko) 예측 코딩을 위한 보간 필터링 방법 및 장치
KR102767916B1 (ko) 서브블록 병합 후보를 위한 개별적인 병합 목록 및 비디오 코딩을 위한 인트라-인터 기술 조화
WO2025011104A1 (zh) 编解码方法和装置
CN116074525A (zh) 一种系数解码方法、装置、图像解码器及电子设备
JP2025504490A (ja) 画像復号方法、画像符号化方法、及び対応する装置
KR20250020720A (ko) 예측 코딩을 위한 보간 필터링 방법 및 장치

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
GR01 Patent grant
GR01 Patent grant