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

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

Info

Publication number
CN116389755A
CN116389755A CN202310454020.5A CN202310454020A CN116389755A CN 116389755 A CN116389755 A CN 116389755A CN 202310454020 A CN202310454020 A CN 202310454020A CN 116389755 A CN116389755 A CN 116389755A
Authority
CN
China
Prior art keywords
pixel point
pixel
value
reconstructed
target
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
CN202310454020.5A
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
Publication of CN116389755A publication Critical patent/CN116389755A/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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation

Landscapes

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

Abstract

本申请公开一种图像解码方法、编码方法及装置,涉及视频编解码技术领域。该图像解码方法包括:根据第一像素点的预测方式,确定第一像素点的预测残差值;预测残差值用于反映第一像素点的梯度;预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;第一像素点为当前编码块中的任意一个像素点;根据第一像素点的预测残差值,确定第一像素点的目标量化参数QP值;根据第一像素点的目标QP值,对第一像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。

Description

一种图像解码方法、编码方法及装置
本申请要求于2022年7月26日提交国家知识产权局、申请号为2022108862947、申请名称为“一种图像解码方法、编码方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机视频处理技术领域,尤其涉及一种图像解码方法、编码方法及装置。
背景技术
在视频编解码领域,采用视频压缩(即视频编解码)技术可以压缩视频的数据量,从而实现视频的高效传输或存储。
对视频进行编解码即对视频中的每一帧图像进行编解码。以一帧图像为例,在编码端,图像编码器对图像编码,得到图像对应的码流并传输码流至解码端;在解码端,图像解码器解析码流,得到图像。目前,将图像划分为一个或多个编码单元(coding unit,CU),图像编码器对每一个CU进行预测、确定对CU的预测值与CU的真实值之间的残差值、对残差值依次进行变换、量化、编码,从而得到码流。相应的,图像解码器对每一个CU进行预测、对CU对应的码流的解码结果依次进行反量化、反变换得到该CU对应的残差值、计算CU的预测值和残差值之和,从而得到CU的重构值。
在图像编解码过程中,量化可以实现信号取值多对一的映射,从而有效减少信号取值空间,获得更好的压缩效果。可以理解的,编码端和解码端根据量化参数(quantization parameter,QP)执行量化和反量化过程。目前,为一个CU设置一个QP,编码端获取每个CU的QP,并依据该QP对CU的残差值或者变换系数进行量化;相应的,解码端获取CU的QP,并根据该QP对从码流中解析得到的量化系数进行反量化(dequantization)。然而,对一个CU中的所有像素点采用相同的QP进行量化,即对该CU中的所有像素点进行相同程度的量化,这样,会导致图像编解码过程的量化失真(量化失真可以理解为因量化而造成的图像失真)较大。
发明内容
本申请提供一种图像解码方法、编码方法及装置,能够可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种图像解码方法,该方法由解码端执行,该方法包括:根据第一像素点的预测方式,确定第一像素点的预测残差值;预测残差值用于反映第一像素点的梯度;预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;第一像素点为当前编码块中的任意一个像素点;根据第一像素点的预测残差值,确定第一像素点的目标量化参数QP值;根据第一像素点的目标QP值,对第一像素点进行反量化。
通过本申请实施例中提供的图像解码方法,视频解码器可以根据编码块中每个像素点的预测方式(预测方式用于指示对像素点进行预测时参考的已重建像素点的位置),确定每个像素点的预测残差值(反映第一像素点的梯度),进而为编码块中的像素点确定每个像素点粒度的QP,从而根据每个像素点的QP值对每个像素点进行反量化,即逐像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
其中,像素点的梯度,用于表示该像素点与其周围像素点的差异,能够反映该像素点的复杂度(例如纹理特点等)。
在一种可能的实现方式中,上述第一像素点的预测残差值包括:目标值或者目标值的平均值;其中,目标值为第一像素点的周围已重建像素点的梯度;或者,目标值为第一像素点的周围已重建像素点的梯度的绝对值;或者,目标值为第一像素点的周围已重建像素点反量化后的残差值;或者,目标值为第一像素点的周围已重建像素点反量化后的残差值的绝对值。
在一种可能的实现方式中,上述预测方式包括:根据像素点的左右两侧的已重建像素点进行预测;和/或,根据像素点的上下两侧的已重建像素点进行预测;和/或,根据像素点的左侧的已重建像素点进行预测;和/或,根据像素点的上侧的已重建像素点进行预测。
另一种可能的实现方式中,上述第一像素点的预测方式为根据像素点的左右两侧的已重建像素点进行预测;上述根据第一像素点的预测方式,确定第一像素点的预测残差值,包括:计算第二像素点与第三像素点的像素值之差,作为第一差值;或者,将第二像素点反量化后的残差值,作为第一差值;第二像素点为第一像素点左侧的第一个已重建像素点,第三像素点为第二像素点上侧的第一个已重建像素点;计算第四像素点与第五像素点的像素值之差,作为第二差值;或者,将第四像素点反量化后的残差值,作为第二差值;第四像素点为第一像素点右侧的第一个已重建像素点,第五像素点为第四像素点上侧的第一个已重建像素点;将第一差值的绝对值与第二差值的绝对值的平均值,作为第一像素点的预测残差值。
另一种可能的实现方式中,上述第一像素点的预测方式为根据像素点的上下两侧的已重建像素点进行预测;上述根据第一像素点的预测方式,确定第一像素点的预测残差值,包括:计算第六像素点与第七像素点的像素值之差,作为第三差值;第六像素点为第一像素点上侧的第一个已重建像素点,第七像素点为第六像素点左侧的第一个已重建像素点;计算第八像素点与第九像素点的像素值之差,作为第四差值;或者,将第八像素点反量化后的残差值,作为第四差值;第八像素点为第一像素点下侧的第一个已重建像素点,第九像素点为第八像素点左侧的第一个已重建像素点;将第三差值的绝对值与第四差值的绝对值的平均值,作为第一像素点的预测残差值。
另一种可能的实现方式中,上述第一像素点的预测方式为根据像素点的左侧的已重建像素点进行预测;上述根据第一像素点的预测方式,确定第一像素点的预测残差值,包括:将第十像素点与第十一像素点的像素值之差的绝对值,作为第一像素点的预测残差值;第十像素点为第一像素点左侧的第一个已重建像素点,第十一像素点为第十像素点左侧的第一个已重建像素点;或者,将第十像素点与第十二像素点的像素值之差的绝对值,作为第一像素点的预测残差值;第十二像素点为第十像素点上侧的第一个已重建像素点;或者,将第十像素点反量化后的残差值的绝对值,作为第一像素点的预测残差值。
另一种可能的实现方式中,上述第一像素点的预测方式为根据像素点的上侧的已重建像素点进行预测;上述根据第一像素点的预测方式,确定第一像素点的预测残差值,包括:将第十三像素点与第十四像素点的像素值之差的绝对值,作为第一像素点的预测残差值;第十三像素点为第一像素点上侧的第一个已重建像素点,第十四像素点为第十三像素点上侧的第一个已重建像素点;或者,将第十三像素点反量化后的残差值的绝对值,作为第一像素点的预测残差值。
另一种可能的实现方式中,上述方法还包括:确定第一像素点的预测QP值;第一像素点的预测QP值为当前编码块的QP值;上述根据第一像素点的预测残差值,确定第一像素点的目标量化参数QP值,包括:若第一像素点为当前编码块中的目标像素点,根据预测残差值,调整第一像素点的预测QP值,得到第一像素点的目标QP值;目标像素点为预先设定的调整QP值的像素点;或者,若第一像素点为当前编码块中目标像素点之外的像素点,将第一像素点的预测QP值作为目标QP值。
另一种可能的实现方式中,上述根据预测残差值,调整第一像素点的预测QP值,得到第一像素点的目标QP值,包括:若第一像素点的预测QP值大于或等于第一阈值,且小于或等于第二阈值,并且,第一像素点的预测残差值小于或等于第三阈值,调整第一像素点的预测QP值,得到目标QP值;目标QP值小于预测QP值;否则,将第一像素点的预测QP值作为第一像素点的目标QP值。
另一种可能的实现方式中,上述第一阈值为人眼恰可察觉失真对应的QP值,第二阈值为可调整的QP最大值。
另一种可能的实现方式中,上述调整第一像素点的预测QP值,得到第一像素点的目标QP值,包括:将预测QP值减去预设偏移量后得到的QP值,与人眼恰可察觉失真对应的QP值中的较大值,作为目标QP值。
另一种可能的实现方式中,上述人眼恰可察觉失真对应的QP值,根据第一像素点在目标通道中的比特深度,或者第一像素点的通道索引确定。
另一种可能的实现方式中,上述可调整的QP最大值,根据第一像素点在目标通道中的比特深度,第一像素点的通道索引,以及码流缓冲区的充盈程度中的一项或多项确定。
另一种可能的实现方式中,上述第三阈值,根据第一像素点在目标通道中的比特深度,第一像素点的通道索引,以及当前块的纹理复杂度中的一项或多项确定。
另一种可能的实现方式中,上述预设偏移量,根据第一像素点在目标通道中的比特深度,第一像素点的通道索引,码流缓冲区的充盈程度,以及当前编码块的纹理复杂度中的一项或多项确定。
另一种可能的实现方式中,上述当前编码块至少包括第一部分像素点和/或第二部分像素点;其中,第一部分像素点被设置为QP值无需调整的像素点;第二部分像素点被设置为QP值待调整的像素点;第一部分像素点和第二部分像素点根据当前编码块的逐点预测模式确定;目标像素点为第二部分像素点中的任意一个或多个像素点。
另一种可能的实现方式中,上述当前编码块的逐点预测模式包括:模式一和模式二;模式一为垂直型预测模式,用于处理垂直类型的纹理;模式二为水平型预测模式,用于处理水平类型的纹理;在当前编码块的逐点预测模式为模式一的情况下,第二部分像素点包括以下至少一项:第一类像素点、非首行的第四类像素点;第一类像素点为根据像素点的左右两侧的已重建像素点进行预测的像素点;第四类像素点为根据像素点的上侧的已重建像素点进行预测的像素点;在当前编码块的逐点预测模式为模式二的情况下,第二部分像素点包括以下至少一项:非首列的第二类像素点、非首列的第三类像素点、非首行的第四类像素点;第二类像素点为根据像素点的上下两侧的已重建像素点进行预测的像素点;第三类像素点为根据像素点的左侧的已重建像素点进行预测的像素点。
第二方面,本申请实施例提供一种图像编码方法,该方法由编码端执行,该方法包括:根据第一像素点的预测方式,确定第一像素点的预测残差值;预测残差值用于反映第一像素点的梯度;预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;第一像素点为当前编码块中的任意一个像素点;根据第一像素点的预测残差值,确定第一像素点的目标量化参数QP值;根据第一像素点的目标QP值,对第一像素点进行量化。
通过本申请实施例中提供的图像编码方法,视频编码器可以根据编码块中每个像素点的预测方式(预测方式用于指示对像素点进行预测时参考的已重建像素点的位置),确定每个像素点的预测残差值(反映第一像素点的梯度),进而为编码块中的像素点确定每个像素点粒度的QP,从而根据每个像素点的QP值对每个像素点进行量化,即逐像素点进行量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
可以理解的,图像编码方法中的各个步骤,为前述图像解码方法中的反操作,因此,图像编码方法中的各种可能的实现方式,可以参考图像解码方法中各种可能的实现方式的描述进行反操作,此处不再赘述。
第三方面,本申请实施例提供一种图像解码装置,该图像解码装置部署于解码端中,该图像解码装置包括用于实现第一方面及其可能的实现方式中之一的方法的各个模块,例如确定单元和反量化单元。
第三方面的技术方案以及有益效果可以参见第一方面及其可能的实现方式中任意之一的描述,此处不再赘述。图像解码装置具有实现上述第一方面及其可能的实现方式中任意之一的方法实例中行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请实施例提供一种图像编码装置,该图像编码装置部署于编码端中,该图像编码装置包括用于实现第二方面及其可能的实现方式中之一的方法的各个模块,例如确定单元和量化单元。
第四方面的技术方案以及有益效果可以参见第二方面及其可能的实现方式中任意之一的描述,此处不再赘述。图像编码装置具有实现上述第二方面及其可能的实现方式中任意之一的方法实例中行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请实施例提供一种电子设备,包括处理器和存储器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行计算机指令,以实现第一方面至第二方面及其可能的实现方式中任意之一的方法。
例如,该电子设备可以是指视频编码器,或包括视频编码器的编码端。
又如,该电子设备可以是指视频解码器,或包括视频解码器的解码端。
第六方面,本申请实施例提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被计算设备或计算设备所在的存储系统执行时,以实现第一方面至第二方面及其可能的实现方式中任意之一的方法。
第七方面,本申请实施例提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在计算设备或处理器上运行时,使得计算设备或处理器执行该指令,以实现第一方面至第二方面及其可能的实现方式中任意之一的方法。
第八方面,本申请实施例提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以实现第一方面至第二方面及其可能的实现方式中任意之一的方法。
第九方面,本申请实施例提供一种视频译码系统,该视频译码系统包括编码端和解码端,解码端用于实现第一方面及其可能的实现方式中任意之一的方法,编码端用于实现第二方面及其可能的实现方式中任意之一的方法。
本申请实施例在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图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),对视频进行解码、解码实质也是对视频所包括的所有图像进行解码、编码。
可以理解的,图像编码过程中所涉及的量化是指将信号的连续取值(或大量的离散取值)映射为有限多个离散取值的过程,量化可以实现信号取值的多对一的映射。在视频编码中,残差信号经过变换后,变换系数往往具有较大的动态范围,因此对变换系数进行量化可以有效减少信号取值空间,获得更好的压缩效果。但是,由于多对一的映射机制,量化过程不可避免的会引入失真,这是视频编码中产生失真的根本原因。
反量化是量化的反过程,反量化指的是将量化后的系数映射为输入信号空间中的重建信号,重建信号是输入信号的一个近似。
量化包括标量量化(scalar quantization,SQ,)和向量量化。其中,标量量化是最基本的量化方法,标量量化的输入是一维的标量信号,标量量化过程包括:先将输入信号空间划分为一系列互不相交的区间,并且每个区间选取一个代表信号;然后对于每个输入信号,将该输入信号标量量化为该输入信号所在区间的代表信号。其中,区间长度称为量化步长(quantization step,记为Qstep),区间索引为水平值(Level),即量化后的值,表征量化步长的参数是量化参数(quantization parameter,QP)。
最简单的标量量化方法是均匀标量量化,均匀标量量化是将输入信号空间划分为等距的区间,每个区间的代表信号是区间中点。
最优标量量化器是Lloyd-Max量化器,Lloyd-Max量化器考虑了输入信号的分布情况,区间划分是非均匀的,每个区间的代表信号是该区间的概率质心,相邻两个区间的边界点是这两个区间代表信号的中点。
下面描述本申请实施例所应用的系统架构,图1为本申请提供的一种视频译码系统的示例性框图,如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码系统1的视频编码器100和视频解码器200用于根据本申请提出的多种新的帧间预测模式中的任一种所描述的各种方法实例来预测当前经译码图像块或其子块的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动估算方法得到的运动矢量,从而编码时无需传送运动矢量差值,从而进一步的改善编解码性能。
如图1中所示,视频译码系统1包含编码端10和解码端20。编码端10产生经编码视频数据。因此,编码端10可被称为视频编码装置。解码端20可对由编码端10所产生的经编码的视频数据进行解码。因此,解码端20可被称为视频解码装置。编码端10、解码端20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于RAM、ROM、EEPROM、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
编码端10和解码端20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
解码端20可经由链路30从编码端10接收经编码视频数据。链路30可包括能够将经编码视频数据从编码端10移动到解码端20的一或多个媒体或装置。在一个实例中,链路30可包括使得编码端10能够实时将经编码视频数据直接发射到解码端20的一或多个通信媒体。在此实例中,编码端10可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到解码端20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从编码端10到解码端20的通信的其它设备。
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字通用光盘(digital videodisc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置40可对应于文件服务器或可保持由编码端10产生的经编码视频的另一中间存储装置。解码端20可经由流式传输或下载从存储装置40存取所存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到解码端20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附接式存储(network attachedstorage,NAS)装置或本地磁盘驱动器。解码端20可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,无线保真(wIreless-fidelity,Wi-Fi)连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
本申请提供的图像解码方法可应用于视频编解码以支持多种多媒体应用,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统1可用于支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
图1中所说明的视频译码系统1仅为实例,并且本申请的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图1的实例中,编码端10包含视频源120、视频编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。
视频编码器100可对来自视频源120的视频数据进行编码。在一些实例中,编码端10经由输出接口140将经编码视频数据直接发射到解码端20。在其它实例中,经编码视频数据还可存储到存储装置40上,供解码端20以后存取来用于解码和/或播放。
在图1的实例中,解码端20包含输入接口240、视频解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码视频数据。显示装置220可与解码端20集成或可在解码端20外部。一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图1中未图示,但在一些方面,视频编码器100和视频解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么解复用器(MUX-DEMUX)单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
视频编码器100和视频解码器200各自可实施为例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者可包含在一或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请可大体上将视频编码器100称为将某些信息“发信号通知”或“发射”到例如视频解码器200的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码码流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在语法元素存储到此媒体之后的任何时间检索语法元素。
JCT-VC开发了H.265(HEVC)标准。HEVC标准化基于称作HEVC测试模型(HEVCmodel,HM)的视频解码装置的演进模型。H.265的最新标准文档可从http://www.itu.int/rec/T-REC-H.265获得,最新版本的标准文档为H.265(12/16),该标准文档以全文引用的方式并入本文中。HM假设视频解码装置相对于ITU-TH.264/AVC的现有算法具有若干额外能力。例如,H.264提供9种帧内预测编码模式,而HM可提供多达35种帧内预测编码模式。
JVET致力于开发H.266标准。H.266标准化的过程基于称作H.266测试模型的视频解码装置的演进模型。H.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包含于JVET-F1001-v2中,该算法描述文档以全文引用的方式并入本文中。同时,可从https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/获得JEM测试模型的参考软件,同样以全文引用的方式并入本文中。
一般来说,HM的工作模型描述可将视频帧或图像划分成包含亮度及色度样本两者的树块或最大编码单元(largest coding unit,LCU)的序列,LCU也被称为编码树单元(coding tree unit,CTU)。树块具有与H.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元(coding unit,CU)。例如,可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解码视频块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码节点的最小大小。
CU的大小对应于解码节点的大小且形状必须为正方形。CU的大小的范围可为8×8像素直到最大64×64像素或更大的树块的大小。
视频序列通常包含一系列视频帧或图像。图像群组(group of picture,GOP)示例性地包括一系列、一个或多个视频图像。GOP可在GOP的头信息中、图像中的一者或多者的头信息中或在别处包含语法数据,语法数据描述包含于GOP中的图像的数目。图像的每一条带可包含描述相应图像的编码模式的条带语法数据。视频编码器100通常对个别视频条带内的视频块进行操作以便编码视频数据。视频块可对应于CU内的解码节点。视频块可具有固定或变化的大小,且可根据指定解码标准而在大小上不同。
在本申请中,“N×N”与“N乘N”可互换使用以指依照垂直维度及水平维度的视频块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素点(x=16)。同样地,N×N块一股在垂直方向上具有N个像素点,且在水平方向上具有N个像素点,其中N表示非负整数值。可将块中的像素排列成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素点。例如,块可包括N×M个像素点,其中M未必等于N。
在使用CU的帧内/帧间预测性解码之后,视频编码器100可计算CU的残余数据。CU可包括空间域(也称作像素域)中的像素数据,且CU可包括在将变换(例如,离散余弦变换(discrete cosine transform,DCT)、整数变换、离散小波变换或概念上类似的变换)应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编码图像的像素与对应于CU的预测值之间的像素差。视频编码器100可形成包含残余数据的CU,且产生CU的变换系数。
在任何变换以产生变换系数之后,视频编码器100可执行变换系数的量化。量化示例性地指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。
在一些可行的实施方式中,视频编码器100可利用预定义扫描次序来扫描经量化变换系数以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器100可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器100可根据上下文自适应性可变长度解码(context-based adaptive variable-length code,CAVLC)、上下文自适应性二进制算术解码(context-based adaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应性二进制算术解码(syntax-based adaptive binaryarithmetic coding,SBAC)、概率区间分割熵(probability interval partitioningentropy,PIPE)解码或其他熵解码方法来熵解码一维向量。视频编码器100也可熵编码与经编码视频数据相关联的语法元素以供视频解码器200用于解码视频数据。
为了执行CABAC,视频编码器100可将上下文模型内的上下文指派给待传输的符号。上下文可与符号的相邻值是否为非零有关。为了执行CAVLC,视频编码器100可选择待传输的符号的可变长度码。可变长度解码(variable-length code,VLC)中的码字可经构建以使得相对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以这个方式,VLC的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率的目的。基于指派给符号的上下文可以确定CABAC中的概率。
在本申请实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。本申请可将视频解码器当前在解码的CU称作当前CU。本申请可将视频解码器当前在解码的图像称作当前图像。
图2为本申请提供的一种视频编码器的示例性框图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的实例,例如媒体感知网络元件(MANE)或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图1的存储装置40的实例。
在图2的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓冲器(decoded picture buffer,DPB)107、求和器112、变换器101、量化器102和熵编码器103。预测处理单元108包括帧间预测器110和帧内预测器109。为了图像块重构,视频编码器100还包含反量化器104、反变换器105和求和器111。滤波器单元106既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(adaptive loop filter,ALF)和样本自适应偏移(sample adaptive offset,SAO)滤波器。尽管在图2中将滤波器单元106示出为环路内滤波器,但在其它实现方式下,可将滤波器单元106实施为环路后滤波器。在一种示例下,视频编码器100还可以包括视频数据存储器、分割单元(图中未示意)。
视频数据存储器可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得存储在视频数据存储器中的视频数据。DPB 107可为参考图像存储器,其存储用于由视频编码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和DPB 107可由多种存储器装置中的任一者形成,例如包含同步动态随机存储器(synchronous dynamic random access memory,SDRAM)的动态随机存取存储器(dynamicrandom access memory,DRAM)、磁阻式RAM(magnetic random access memory,MRAM)、电阻式RAM(resistive random access memory,RRAM),或其它类型的存储器装置。视频数据存储器和DPB 107可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2所示,视频编码器100接收视频数据,并将视频数据存储在视频数据存储器中。分割单元将视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元108可选择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个帧间译码模式中的一者。预测处理单元108可将所得经帧内、帧间译码的块提供给求和器112以产生残差块,且提供给求和器111以重构用作参考图像的经编码块。
预测处理单元108内的帧内预测器109可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测器110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。
具体的,帧间预测器110可用于确定用于编码当前图像块的帧间预测模式。举例来说,帧间预测器110可使用码率-失真分析来计算候选帧间预测模式集合中的各种帧间预测模式的码率-失真值,并从中选择具有最佳码率-失真特性的帧间预测模式。码率失真分析通常确定经编码块与经编码以产生经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位码率(也就是说,位数目)。例如,帧间预测器110可确定候选帧间预测模式集合中编码当前图像块的码率失真代价最小的帧间预测模式为用于对当前图像块进行帧间预测的帧间预测模式。
帧间预测器110用于基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧间预测器110可在参考图像列表中的一者中定位运动向量指向的预测块。帧间预测器110还可产生与图像块和视频条带相关联的语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器110利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器110执行运动估计和运动补偿过程。
具体的,在为当前图像块选择帧间预测模式之后,帧间预测器110可将指示当前图像块的所选帧间预测模式的信息提供到熵编码器103,以便于熵编码器103编码指示所选帧间预测模式的信息。
帧内预测器109可对当前图像块执行帧内预测。明确地说,帧内预测器109可确定用来编码当前块的帧内预测模式。举例来说,帧内预测器109可使用码率-失真分析来计算各种待测试的帧内预测模式的码率-失真值,并从待测试模式当中选择具有最佳码率-失真特性的帧内预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测器109可将指示当前图像块的所选帧内预测模式的信息提供到熵编码器103,以便熵编码器103编码指示所选帧内预测模式的信息。
在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器100通过从待编码的当前图像块减去预测块来形成残差图像块。求和器112表示执行此减法运算的一或多个组件。残差块中的残差视频数据可包含在一或多个(transformunit,TU)中,并应用于变换器101。变换器101使用例如离散余弦变换(discrete cosinetransform,DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。
变换器101可将所得变换系数发送到量化器102。量化器102量化变换系数以进一步减小位码率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器103可执行扫描。
在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术。在由熵编码器103熵编码之后,可将经编码码流发射到视频解码器200,或经存档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前图像块的语法元素进行熵编码。
反量化器104和反变换器105分别应用逆量化和逆变换以在像素域中重构残差块,例如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器110或帧内预测器109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经重构图像块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧或图像中的块进行帧间预测。
应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。
图3为本申请提供的一种视频解码器200的示例性框图。在图3的实例中,视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、滤波器单元206以及DPB 207。预测处理单元208可以包括帧间预测器210和帧内预测器209。在一些实例中,视频解码器200可执行大体上与相对于来自图2的视频编码器100描述的编码过程互逆的解码过程。
在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频码流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器200的组件解码的视频数据,例如经编码视频码流。存储在视频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频码流的经编码视频数据的经解码图像缓冲器(CPB)。因此,尽管在图3中没有示意出视频数据存储器,但视频数据存储器和DPB 207可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和DPB 207可由多种存储器装置中的任一者形成,例如:包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器200的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。
网络实体42可为服务器、MANE、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它装置。网络实体42可包括或可不包括视频编码器,例如视频编码器100。在网络实体42将经编码视频码流发送到视频解码器200之前,网络实体42可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装置执行。在一些情况下,网络实体42可为图1的存储装置40的实例。
视频解码器200的熵解码器203对码流进行熵解码以产生经量化的系数和一些语法元素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/或图像块层级处的语法元素。
当视频条带被解码为经帧内解码(I)条带时,预测处理单元208的帧内预测器209可基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,B或P)条带时,预测处理单元208的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测器210可确定是否对当前视频条带的当前图像块采用新的帧间预测模式进行预测,如果语法元素指示采用新的帧间预测模式来对当前图像块进行预测,基于新的帧间预测模式(例如通过语法元素指定的一种新的帧间预测模式或默认的一种新的帧间预测模式)预测当前视频条带的当前图像块或当前图像块的子块的运动信息,从而通过运动补偿过程使用预测出的当前图像块或当前图像块的子块的运动信息来获取或生成当前图像块或当前图像块的子块的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器200可基于存储在DPB 207中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频编码器100发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语法元素,或者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪一种新的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器210执行运动补偿过程。
反量化器204将在码流中提供且由熵解码器203解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆变换应用于变换系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得到重建的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)以及样本自适应偏移(SAO)滤波器。尽管在图3中将滤波器单元206示出为环路内滤波器,但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲器207中,经DPB 207存储用于后续运动补偿的参考图像。经DPB 207可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图1的显示装置220)上呈现,或可与此类存储器分开。
应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频码流。例如,视频解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经反量化器204和反变换器205处理。
本申请的技术可通过本申请中所描述的视频编码器或视频解码器中的任一者进行,如关于图1到图3所展示及描述的视频编码器100及视频解码器200。即,在一种可行的实施方式中,关于图2所描述的视频编码器100可在视频数据的块的编码期间在执行帧间预测时执行下文中所描述的特定技术。在另一可行的实施方式中,关于图3所描述的视频解码器200可在视频数据的块的解码期间在执行帧间预测时执行下文中所描述的特定技术。因此,对一般性“视频编码器”或“视频解码器”的引用可包含视频编码器100、视频解码器200或另一视频编码或解码单元。
图1~图3仅为本申请实施例提供的示例,在一些示例中,视频编码器100、视频解码器200以及视频译码系统可以包括更多或更少的部件或单元,本申请对此不予限定。
下面在图1~图3所示出的视频译码系统的基础上,本申请实施例提供一种可能的视频编/解码实现方式,如图4所示,图4为本申请提供的一种视频编/解码过程的流程示意图,该视频编/解码实现方式包括过程①至过程⑤,过程①至过程⑤可以由上述的编码端10、视频编码器100、解码端20或视频解码器200中的任意一个或多个执行。
过程①:将一帧图像分成一个或多个互相不重叠的并行编码单元。该一个或多个并行编码单元间无依赖关系,可完全并行/独立编码和解码,如图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块内残差绝对值的最大值定义为修整最大值(modified maximum,mm)。其次,确定该RB块内残差系数的编码比特数(同一个RB块内残差系数的编码比特数一致)。例如,若当前RB块的关键限值(critica 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位。
另外,对于某些特殊的情况,视频编码器也可以直接编码图像的原始值,而不是残差值。
需要说明的是,本申请实施例中的编码块(coding block,CB)对应图像中的一个图像块,编码块可以是经上述过程③划分得到的编码单元,也可以是编码单元再经过划分后的预测组。
结合上述图1所示的视频译码系统、图2所示的视频编码器以及图3所示的视频解码器的框架示意图,下面对本申请实施例涉及的图像解码方法、编码方法进行详细描述。
图5为本申请提供的一种图像解码方法的流程示意图,该图像解码方法可应用于图1所示出的视频译码系统,该图像解码方法可以由解码端20执行,具体的,该图像解码方法可以由解码端20包括的视频解码器200执行,如图5所示,本申请实施例提供的图像解码方法包括以下步骤。
S501、根据第一像素点的预测方式,确定第一像素点的预测残差值。
其中,第一像素点是视频解码器当前所处理的像素点,第一像素点为当前编码块中的任意一个像素点,当前编码块为视频解码器当前所处理的解码块。应理解,对于当前编码块中每个像素点,均可以采用本申请提供的方案进行解码或编码,本申请实施例仅以对第一像素点的编解码过程为例进行描述,并不是具体限定。
可以理解的是,对待解码的视频流进行解码可以获得该视频流所包含的一个或多个图像帧。一个图像帧包括一个或多个图像块。本申请实施例中,当前编码块对应待处理图像(待处理图像为一个或多个图像帧中的任意一个图像帧)的一个图像块,编码块可以为编码单元(coding unit,CU)。
在一些实施例中,预测残差值用于反映第一像素点的梯度。其中,像素点的梯度,用于表示该像素点与其周围像素点的差异,能够反映该像素点的复杂度(例如纹理特点等)。示例性的,若一个像素点的梯度值越大,则说明该像素点与其周围像素点之间的差异较大(反映在图像中,说明当前编码块的纹理信息较多),说明该像素点的复杂度较高;若一个像素点的梯度值越小,则说明该像素点与其周围像素点之间的差异较小(反映在图像中,说明当前编码块较为平滑),说明该像素点的复杂度较低。
在一些实施例中,第一像素点的预测残差值由第一像素点的周围已重建像素点的梯度确定;或者,第一像素点的预测残差值由第一像素点的周围已重建像素点反量化后的残差值确定。可以理解的是,由于第一像素点还未重建,因此无法直接根据第一像素点的像素值计算第一像素点的梯度,由于相邻像素点的梯度信息较为接近,因此,可以根据第一像素点的周围已重建像素点的梯度;或者,第一像素点的周围已重建像素点反量化后的残差值(像素点反量化后的残差值能够反映像素点的梯度),预测第一像素点的梯度,也即确定第一像素点的预测残差值。
示例性的,第一像素点的预测残差值包括:目标值或者目标值的平均值;其中,目标值为第一像素点的周围已重建像素点的梯度;或者,目标值为第一像素点的周围已重建像素点的梯度的绝对值;或者,目标值为第一像素点的周围已重建像素点反量化后的残差值;或者,目标值为第一像素点的周围已重建像素点反量化后的残差值的绝对值。
可选的,如图6所示,上述步骤S501可以具体实现为以下步骤S5011-S5012。
S5011、获取第一像素点的参考像素点的信息。
其中,参考像素点指的是第一像素在进行逐点预测时,参考的周围已重建像素点。
作为一种可能的实现方式,上述步骤S5011可以实现为以下步骤:
步骤1、获取第一像素点周围的已重建像素点的信息。
其中,第一像素点周围的已重建像素点可以理解为与该第一像素点的相邻的已重建像素点,本申请实施例中,第一像素点周围的已重建像素点包括满足下述条件的像素点:以第一像素点为中心,边长为第一预设值的正方形区域中的像素点;或者,以第一像素点为中心,对角线长度为第二预设值的菱形区域中的像素点;或者,以第一像素点为顶点,水平方向长度为第三预设值、竖直方向长度为第四预设值的“L”形区域中的像素点。
可选的,第一预设值、第二预设值、第三预设值和第四预设值可以根据实际需求进行设置,并且第一预设值、第二预设值、第三预设值和第四预设值可以相等也可以不等,例如第一预设值、第二预设值、第三预设值和第四预设值可以为3或5中的一种。
示例性的,图7中的(a)示出了一种以第一像素点为中心的正方形区域划分为例的示意,这里给出了2种可能的情形:情形1,已重建像素点是指以第一像素点为中心,边长为3的正方形区域中的像素点,如图7的(a)中所示出的周围像素点1;情形2,已重建像素点是指以第一像素点为中心,边长为5的正方形区域中的像素点,如图7的(a)中所示出的周围像素点2。
图7中的(b)示出了一种以第一像素点为中心的菱形区域划分为例的示意,这里给出了2种可能的情形:情形1,已重建像素点是指以第一像素点为中心,对角线长度为3的菱形区域中的像素点,如图7的(b)中所示出的周围像素点1;情形2,已重建像素点是指以第一像素点为中心,对角线长度为5的菱形区域中的像素点,如图7的(b)中所示出的周围像素点2。
图7中的(c)示出了一种水平方向长度为第三预设值、竖直方向长度为第四预设值的半包围形区域划分为例的示意,这里给出了2种可能的情形:情形1,已重建像素点是指第一像素点的上侧水平方向长度为3,以及左侧竖直方向长度为3的半包围形区域中的像素点,如图7的(c)中所示出的周围像素点1;情形2,已重建像素点是第一像素点的上侧水平方向长度为5,竖直方向长度为2,以及左侧竖直方向长度为5,水平方向长度为2的半包围形区域中的像素点,如图7的(c)中所示出的周围像素点2。
需要说明的是,图7仅为本申请实施例为说明在当前像素点周围的已重建像素点的示例,不应理解为对本申请的限定。在另一些可能的示例中,当前像素点周围的已重建像素点还可以是指与该当前像素点上下相邻、或左右相邻的一个或两个像素点。
可选地,第一像素点周围的已重建像素点的信息包括下述至少一种信息:该已重建像素点的像素值、已重建像素点的重建残差值(重建残差值包括:反量化后的残差值,或者重建值与预测值之差)、已重建像素点的梯度值(包括:水平梯度、垂直梯度或平均梯度)、平坦度信息或纹理度信息或复杂度信息、背景亮度、对比度或运动程度(运动程度可以通过运动矢量表示)。
进一步,可选地,上述已重建像素点的信息的值包括下述至少一个种:原始值、绝对值、均值或差值。
步骤2、根据第一像素点的预测方式,以及第一像素点周围的已重建像素点的信息,确定第一像素点的参考像素点的信息。
其中,在一些实施例中,预测方式用于指示对像素点进行预测时参考的已重建像素点的位置。
可选的,预测方式包括:根据像素点的左右两侧的已重建像素点进行预测;和/或,根据像素点的上下两侧的已重建像素点进行预测;和/或,根据像素点的左侧的已重建像素点进行预测;和/或,根据像素点的上侧的已重建像素点进行预测。
作为一种示例,如图8所示,以当前编码块为16×2(宽度w为16,高度h为2)的编码块为例,该编码块的预测模式为逐点预测模式,该编码块的逐点预测模式包括2种模式,分别为模式一和模式二。其中,模式一为垂直型预测模式,用于处理垂直类型的纹理;模式二为水平型预测模式,用于处理水平类型的纹理。
其中,RL表示当前像素点的预测值为该像素点的左右两侧像素点的重建值的平均值;
TB表示当前像素点的预测值为该像素点的上下两侧像素点的重建值的平均值;
L表示当前像素点的预测值为该像素点的左侧像素点的重建值;
T表示当前像素点的预测值为该像素点的上侧像素点的重建值。
在一些实施例中,为了便于描述,将依据其左右两侧的已重建像素点进行预测的像素点称为第一类像素点,将依据其上下两侧已重建像素点进行预测的像素点称为第二类像素点,将依据其左侧已重建像素点进行预测的像素点称为第三类像素点,将依据其上侧已重建像素点进行预测的像素点称为第四类像素点。
在一些实施例中,首先根据第一像素点的预测方式,从第一像素点周围的已重建像素点中选取出第一像素点的参考像素点;然后再根据第一像素点周围的已重建像素点的信息,确定第一像素点的参考像素点的信息。
可选的,根据第一像素点的预测方式,从第一像素点周围的已重建像素点中选取出第一像素点的参考像素点,包括以下几种情况:
情况一、在第一像素点的预测方式为根据像素点的左右两侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点左侧的已重建像素点和第一像素点右侧的已重建像素点。
情况二、在第一像素点的预测方式为根据像素点的上下两侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点上侧的已重建像素点和第一像素点下侧的已重建像素点。
情况三、在第一像素点的预测方式为根据像素点的左侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点左侧的已重建像素点。
情况四、在第一像素点的预测方式为根据像素点的上侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点上侧的已重建像素点。
可选的,根据第一像素点周围的已重建像素点的信息,确定第一像素点的参考像素点的信息,包括以下两种情况:
情况一、若参考像素点为当前编码块中的已重建像素点,则将该参考像素点的信息作为第一像素点周围的已重建像素点的信息。
情况二、若参考像素点为当前编码块之外的已重建像素点,则将该参考像素点的信息与该参考像素点周围的已重建像素点的信息的差值或差值的绝对值作为第一像素点周围的已重建像素点的信息。
可以理解的是,第一像素点的参考像素点为已重建像素点,该已重建像素点可以是当前编码块中的已重建像素点,也可以不是当前编码块中的已重建像素点,即是当前编码块之外的已重建像素点,例如,预测模式为帧内预测模式时,已重建像素点是当前图像帧内该编码块周围的像素点,预测模式为帧间预测模式时,已重建像素点可以是当前图像帧的参考帧上的重建块。
作为另一种可能的实现方式,上述步骤S5011可以实现为以下步骤:
步骤a1、根据第一像素点的预测方式,确定第一像素点的参考像素点。
作为一种示例,在第一像素点的预测方式为根据像素点的左右两侧的已重建像素点进行预测的情况下,将第一像素点左侧的已重建像素点和第一像素点右侧的已重建像素点作为第一像素点的参考像素点;在第一像素点的预测方式为根据像素点的上下两侧的已重建像素点进行预测的情况下,将第一像素点上侧的已重建像素点和第一像素点下侧的已重建像素点作为第一像素点的参考像素点;在第一像素点的预测方式为根据像素点的左侧的已重建像素点进行预测的情况下,将第一像素点左侧的已重建像素点作为第一像素点的参考像素点;在第一像素点的预测方式为根据像素点的上侧的已重建像素点进行预测的情况下,将第一像素点上侧的已重建像素点作为第一像素点的参考像素点。
步骤a2、获取第一像素点的参考像素点的信息。
作为一种示例,获取第一像素点的参考像素点的信息包括以下一项或多项:像素值、平坦度信息或纹理度信息或复杂度信息、背景亮度、对比度或运动程度(运动程度可以通过运动矢量表示)等。
进一步,可选地,上述参考像素点的信息的值包括下述至少一个种:原始值、绝对值、均值或差值。
S5012、根据第一像素点的参考像素点的信息,确定第一像素点的预测残差值。
在一些实施例中,在第一像素点的预测方式为根据像素点的左右两侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点左侧的已重建像素点和第一像素点右侧的已重建像素点,则确定第一像素点的预测残差值具有以下两种方式:
方式一、根据第一像素点的参考像素点的重建值与预测值之差,确定第一像素点的预测残差值。则上述步骤S5012可以实现为以下步骤:
步骤b1-1、计算第二像素点与第三像素点的像素值之差,作为第一差值。
其中,第二像素点为第一像素点左侧的第一个已重建像素点,第三像素点为第二像素点上侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第二像素点在目标通道中的坐标为(pic_x-1,pic_y),第三像素点在目标通道中的坐标为(pic_x-1,pic_y-1),则第一差值可以满足:I[pic_y][pic_x–1]–I[pic_y–1][pic_x–1]。其中,I[pic_y][pic_x–1]表示像素点(pic_x–1,pic_y)在目标通道的像素值;I[pic_y–1][pic_x–1]表示像素点(pic_x–1,pic_y-1)在目标通道的像素值。
需要说明的是,对于单个像素点来说,I表示像素点的像素值(对于已重建像素点,I表示的是该像素点重建后的像素值);对于当前编码块来说,I表示当前编码块中包括的已重建像素点的像素值矩阵。
在一些实施例中,目标通道表示当前编码块所在的通道;当前编码块所在的通道可以为亮度通道、色度通道中的任意一个通道。可以理解的是,一张图像通常对应一个亮度通道和两个色度通道,则目标图像可以是三个通道中的任意一个。
在另一些实施例中,在当前编码块所在的通道为色度通道的情况下,目标通道还可以表示为亮度通道。示例型的,假设第一像素点(当前编码块中的像素点)所在的通道为色度通道,在获取第一像素点在色度通道的比特深度时,可以通过获取第一像素点在亮度通道的比特深度来代替第一像素点在色度通道的比特深度。
步骤b1-2、计算第四像素点与第五像素点的像素值之差,作为第二差值。
其中,第四像素点为第一像素点右侧的第一个已重建像素点,第五像素点为第四像素点上侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第四像素点在目标通道中的坐标为(pic_x+1,pic_y),第五像素点在目标通道中的坐标为(pic_x+1,pic_y-1),则第一差值可以满足:I[pic_y][pic_x+1]–I[pic_y–1][pic_x+1]。其中,I表示像素点的像素值(对于已重建像素点,I表示的是该像素点重建后的像素值),I[pic_y][pic_x+1]表示像素点(pic_x+1,pic_y)在目标通道的像素值;I[pic_y–1][pic_x+1]表示像素点(pic_x+1,pic_y-1)在目标通道的像素值。
步骤b1-3、将第一差值的绝对值与第二差值的绝对值的平均值,作为第一像素点的预测残差值。
可以理解的是,上述第一差值表示的是第二像素点的垂直梯度,上述第二差值表示的是第四像素点的垂直梯度,且第二像素点与第四像素点分别为第一像素点左右两侧距离最近的已重建像素点,因此,根据第二像素点的梯度和第四像素点的梯度的平均值,可以确定第一像素点的预测残差值(即第一像素点的梯度)。
示例性的,第一像素点、第二像素点、第三像素点、第四像素点和第五像素点的位置信息可以如图9所示。其中,第一像素点的预测残差值可以满足以下公式(1):
PredResiTmp=(Abs(I[pic_y][pic_x-1]–I[pic_y-1][pic_x-1])+Abs(I[pic_y][pic_x+1]–I[pic_y-1][pic_x+1])+1)>>1 公式(1)
其中,PredResiTmp表示像素点的预测残差值;Abs表示求绝对值的函数;>>在二进制中表示右移;>>1在二进制中表示右移1位,在十进制中表示除以2。
方式二、根据第一像素点的参考像素点的反量化后的残差值,确定第一像素点的预测残差值。则上述步骤S5012可以实现为以下步骤:
步骤b2-1、计算第二像素点的反量化后的残差值,作为第一差值。
其中,第二像素点为第一像素点左侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第二像素点在目标通道中的坐标为(pic_x-1,pic_y),则第二像素点的反量化后的残差值可以表示为PointCoeffData[pic_y][pic_x–1]。
需要说明的是,对于单个像素点来说,PointCoeffData表示像素点反量化后的残差值;对于当前编码块来说,PointCoeffData表示当前编码块中包括的已重建像素点反量化后的残差值矩阵。
步骤b2-2、计算第四像素点的反量化后的残差值,作为第二差值。
其中,第四像素点为第一像素点右侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第四像素点在目标通道中的坐标为(pic_x+1,pic_y),则第四像素点的反量化后的残差值可以表示为PointCoeffData[pic_y][pic_x+1]。
步骤b2-3、将第一差值的绝对值与第二差值的绝对值的平均值,作为第一像素点的预测残差值。
可以理解的是,上述第一差值表示的是第二像素点的反量化后的残差值,能够反映第二像素点的梯度;上述第二差值表示的是第四像素点的反量化后的残差值,能够反映第四像素点的梯度,且第二像素点与第四像素点分别为第一像素点左右两侧距离最近的已重建像素点,因此,根据第二像素点的梯度和第四像素点的梯度的绝对值的平均值,可以确定第一像素点的预测残差值(即第一像素点的梯度的绝对值)。
示例性的,第一像素点、第二像素点和第四像素点的位置信息可以如图9所示。其中,第一像素点的预测残差值还可以满足以下公式(2):
PredResiTmp=(Abs(PointCoeffData[pic_y][pic_x-1])+Abs(PointCoeffData[pic_y][pic_x+1])+1)>>1公式(2)
在一些实施例中,在第一像素点的预测方式为根据像素点的上下两侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点上侧的已重建像素点和第一像素点下侧的已重建像素点,则确定第一像素点的预测残差值具有以下两种方式:
方式一、根据第一像素点的参考像素点的重建值与预测值之差,确定第一像素点的预测残差值。则上述步骤S5012可以实现为以下步骤:
步骤c1-1、计算第六像素点与第七像素点的像素值之差,作为第三差值。
其中,上述第六像素点为第一像素点上侧的第一个已重建像素点,上述第七像素点为第六像素点左侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第六像素点在目标通道中的坐标为(pic_x,pic_y-1),第七像素点在目标通道中的坐标为(pic_x-1,pic_y-1),则第三差值可以满足:I[pic_y-1][pic_x]–I[pic_y-1][pic_x-1]。其中,I[pic_y-1][pic_x]表示像素点(pic_x,pic_y-1)在目标通道的像素值;I[pic_y-1][pic_x-1]表示像素点(pic_x-1,pic_y-1)在目标通道的像素值。
步骤c1-2、计算第八像素点与第九像素点的像素值之差,作为第四差值。
其中,上述第八像素点为第一像素点下侧的第一个已重建像素点,上述第九像素点为第八像素点左侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第八像素点在目标通道中的坐标为(pic_x,pic_y+1),第九像素点在目标通道中的坐标为(pic_x-1,pic_y+1),则第四差值可以满足:I[pic_y+1][pic_x]–I[pic_y+1][pic_x-1]。其中,I表示像素点的像素值(对于已重建像素点,I表示的是该像素点重建后的像素值),I[pic_y+1][pic_x]表示像素点(pic_x,pic_y+1)在目标通道的像素值;I[pic_y+1][pic_x-1]表示像素点(pic_x-1,pic_y+1)在目标通道的像素值。
步骤c1-3、将第三差值的绝对值与第四差值的绝对值的平均值,作为第一像素点的预测残差值。
可以理解的是,上述第三差值表示的是第六像素点的水平梯度,上述第四差值表示的是第八像素点的水平梯度,且第六像素点与第八像素点分别为第一像素点上下两侧距离最近的已重建像素点,因此,根据第六像素点的梯度和第八像素点的梯度的平均值,可以确定第一像素点的预测残差值(即第一像素点的梯度)。
示例性的,第一像素点、第六像素点、第七像素点、第八像素点和第九像素点的位置信息可以如图10所示。其中,第一像素点的预测残差值可以满足以下公式(3):PredResiTmp=(Abs(I[pic_y-1][pic_x]–I[pic_y-1][pic_x-1])+Abs(I[pic_y+1][pic_x]–I[pic_y+1][pic_x-1])+1)>>1 公式(3)
方式二、根据第一像素点的参考像素点的重建值与预测值之差,以及第一像素点的参考像素点的反量化后的残差值,确定第一像素点的预测残差值。则上述步骤S5012可以实现为以下步骤:
步骤c2-1、计算第六像素点与第七像素点的像素值之差,作为第三差值。
其中,上述第六像素点为第一像素点上侧的第一个已重建像素点,上述第七像素点为第六像素点左侧的第一个已重建像素点。
步骤c2-2、计算第八像素点的反量化后的残差值,作为第四差值。
其中,第八像素点为第一像素点下侧的第一个已重建像素点。
示例性的,假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第八像素点在目标通道中的坐标为(pic_x,pic_y+1),则第八像素点的反量化后的残差值可以表示为PointCoeffData[pic_y+1][pic_x]。
步骤c2-3、将第三差值的绝对值与第四差值的绝对值的平均值,作为第一像素点的预测残差值。
可以理解的是,由于第六像素点为当前编码块外的像素点,因此不能计算第六像素点反量化后的残差值,因此通过计算第六像素点的重建值与预测值之差(也即第三差值),来表示第六像素点的梯度;上述第四差值表示的是第八像素点的反量化后的残差值,能够反映第八像素点的梯度。由于第六像素点与第八像素点分别为第一像素点上下两侧距离最近的已重建像素点,因此,根据第六像素点的梯度和第八像素点的梯度的绝对值的平均值,可以确定第一像素点的预测残差值(即第一像素点的梯度的绝对值)。
示例性的,第一像素点、第六像素点和第八像素点的位置信息可以如图10所示。其中,第一像素点的预测残差值可以满足以下公式(4):
PredResiTmp=(Abs(I[pic_y-1][pic_x]–I[pic_y-1][pic_x-1])+Abs(PointCoeffData[pic_y+1][pic_x])+1)>>1 公式(4)
在一些实施例中,在第一像素点的预测方式为根据像素点的左侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点左侧的已重建像素点,则确定第一像素点的预测残差值具有以下两种方式:
方式一、根据第一像素点的参考像素点的重建值与预测值之差,确定第一像素点的预测残差值。
在采用方式一计算第一像素点的预测残差值的情况下,上述步骤S5012可以具有以下两种情况:
情况一、当第一像素点在目标通道中水平方向的位置不为5、9或13的情况下,将第十像素点与第十一像素点的像素值之差的绝对值,作为第一像素点的预测残差值。
其中,上述第十像素点为第一像素点左侧的第一个已重建像素点,上述第十一像素点为第十像素点左侧的第一个已重建像素点。
可以理解的是,上述第十像素点与第十一像素点的像素值之差表示的是第十像素点的水平梯度,且第十像素点为第一像素点左侧距离最近的已重建像素点,因此,根据第十像素点的水平梯度,可以确定第一像素点的预测残差值(即第一像素点的梯度)。
示例性的,第一像素点、第十像素点和第十一像素点的位置信息可以如图11中的(a)所示。假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第十像素点在目标通道中的坐标为(pic_x-1,pic_y),第十一像素点在目标通道中的坐标为(pic_x-2,pic_y),则第一像素点的预测残差值可以满足以下公式(5):
PredResiTmp=Abs(I[pic_y][pic_x-1]–I[pic_y][pic_x-2]) 公式(5)
其中,I[pic_y][pic_x-1]表示像素点(pic_x-1,pic_y)在目标通道的像素值;I[pic_y][pic_x-2]表示像素点(pic_x-2,pic_y)在目标通道的像素值。
情况二、当第一像素点在目标通道中水平方向的位置为5、9或13的情况下,将第十像素点与第十二像素点的像素值之差的绝对值,作为第一像素点的预测残差值。
其中,上述第十像素点为第一像素点左侧的第一个已重建像素点,上述第十二像素点为第十像素点上侧的第一个已重建像素点。
可以理解的是,上述第十像素点与第十二像素点的像素值之差表示的是第十像素点的垂直梯度,且第十像素点为第一像素点左侧距离最近的已重建像素点,因此,根据第十像素点的垂直梯度,可以确定第一像素点的预测残差值(即第一像素点的梯度)。
需要说明的是,如图8所示,在当前编码块的逐点预测模式为模式2的情况下,当前编码块中水平方向的第5个像素点、第9个像素点以及第13个像素点的预测方式均“T”,即根据该像素点的上侧的已重建像素点进行预测,因此,当前编码块中水平方向的第5个像素点、第9个像素点以及第13个像素点,不能获取该像素点的水平方向的相邻像素点的信息,不能计算水平方向梯度,仅能计算垂直方向梯度。
因此,当第一像素点在目标通道中水平方向的位置为5、9或13的情况下,需要将第一像素点左侧的第一个已重建像素点(即第十像素点)的垂直梯度,作为第一像素点的预测残差值。
示例性的,第一像素点、第十像素点和第十二像素点的位置信息可以如图11中的(b)所示。假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则上述第十像素点在目标通道中的坐标为(pic_x-1,pic_y),第十二像素点在目标通道中的坐标为(pic_x-1,pic_y-1),则第一像素点的预测残差值可以满足以下公式(6):
PredResiTmp=Abs(I[pic_y][pic_x-1]–I[pic_y-1][pic_x-1]) 公式(6)
其中,I表示像素点的像素值(对于已重建像素点,I表示的是该像素点重建后的像素值),I[pic_y][pic_x-1]表示像素点(pic_x-1,pic_y)在目标通道的像素值;I[pic_y-1][pic_x-1]表示像素点(pic_x-1,pic_y-1)在目标通道的像素值。
方式二、根据第一像素点的参考像素点的反量化后的残差值,确定第一像素点的预测残差值。
具体的,上述步骤S5012可以实现为:将第十像素点反量化后的残差值的绝对值,作为第一像素点的预测残差值。其中,第十像素点为第一像素点左侧的第一个已重建像素点。
可以理解的是,上述第十像素点反量化后的残差值,能够反映第十像素点的梯度,且第十像素点为第一像素点左侧距离最近的已重建像素点,因此,根据第十像素点的梯度的绝对值,可以确定第一像素点的预测残差值(即第一像素点的梯度的绝对值)。
示例性的,第一像素点和第十像素点的位置信息可以如图11中的(b)所示。假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则第十像素点在目标通道中的坐标为(pic_x-1,pic_y),则第一像素点的预测残差值可以满足以下公式(7):
PredResiTmp=Abs(PointCoeffData[pic_y][pic_x–1]) 公式(7)
其中,PointCoeffData[pic_y][pic_x–1]表示像素点(pic_x-1,pic_y)反量化后的残差值。
在一些实施例中,在第一像素点的预测方式为根据像素点的上侧的已重建像素点进行预测的情况下,第一像素点的参考像素点为第一像素点上侧的已重建像素点,则确定第一像素点的预测残差值具有以下两种方式:
方式一、根据第一像素点的参考像素点的重建值与预测值之差,确定第一像素点的预测残差值。
具体的,上述步骤S5012可以实现为:将第十三像素点与第十四像素点的像素值之差的绝对值,作为第一像素点的预测残差值。
其中,上述第十三像素点为第一像素点上侧的第一个已重建像素点,上述第十四像素点为第十三像素点上侧的第一个已重建像素点。
可以理解的是,上述第十三像素点与第十四像素点的像素值之差的绝对值表示的是第十三像素点的垂直梯度,且第十三像素点为第一像素点上侧距离最近的已重建像素点,因此,根据第十三像素点的垂直梯度,可以确定第一像素点的预测残差值(即第一像素点的梯度)。
示例性的,第一像素点、第十三像素点和第十四像素点的位置信息可以如图12所示。假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则上述第十三像素点在目标通道中的坐标为(pic_x,pic_y-1),第十四像素点在目标通道中的坐标为(pic_x,pic_y-2),则第一像素点的预测残差值可以满足以下公式(8):
PredResiTmp=Abs(I[pic_y–1][pic_x]–I[pic_y–2][pic_x]) 公式(8)
其中,I[pic_y-1][pic_x]表示像素点(pic_x,pic_y-1)在目标通道的像素值;I[pic_y-2][pic_x]表示像素点(pic_x,pic_y-2)在目标通道的像素值。
方式二、根据第一像素点的参考像素点的反量化后的残差值,确定第一像素点的预测残差值。
具体的,上述步骤S5012可以实现为:将第十三像素点反量化后的残差值的绝对值,作为第一像素点的预测残差值。其中,第十三像素点为第一像素点上侧的第一个已重建像素点。
可以理解的是,上述第十三像素点反量化后的残差值,能够反映第十三像素点的梯度,且第十三像素点为第一像素点上侧距离最近的已重建像素点,因此,根据第十三像素点的梯度的绝对值,可以确定第一像素点的预测残差值(即第一像素点的梯度的绝对值)。
示例性的,第一像素点和第十三像素点的位置信息可以如图12所示。假设第一像素点在目标通道中的坐标为(pic_x,pic_y),则上述第十三像素点在目标通道中的坐标为(pic_x,pic_y-1),则第一像素点的预测残差值可以满足以下公式(9):
PredResiTmp=Abs(PointCoeffData[pic_y–1][pic_x]) 公式(9)
其中,PointCoeffData[pic_y–1][pic_x]表示像素点(pic_x,pic_y-1)反量化后的残差值。
S502、根据第一像素点的预测残差值,确定第一像素点的目标QP值。
在一些实施例中,结合图5,如图13所示,在根据第一像素点的预测残差值,确定第一像素点的目标QP值之前,上述方法还包括以下步骤S504-S505。
S504、获取当前编码块的QP值。
在一种实现方式中,可以从码流中解析得到当前编码块的QP值。在近无损压缩技术中,小QP出现的概率高于大QP,因此,视频编码器可以采用截断一元码、截断莱斯码或者指数哥伦布码直接编码一个编码块的QP值,从而视频解码器解析码流可以获得编码块的QP值。
在另一种实现方式中,可以通过当前编码块的预测QP值与QP偏移量获取当前编码块的QP值。示例性的,可以通过下述方式一或方式二获取当前编码块的QP值。
其中,方式一的过程包括S1-S3。
S1、获取当前编码块的预测QP值。
可选地,可以根据当前编码块的周围块的QP值计算当前编码块的预测QP值。
示例性的,可以根据当前编码块左侧的已重建块的QP值和上侧的已重建块的QP值确定当前编码块的预测QP值,如:predQP=(QPA+QPB+)>>1,其中,predQP表示当前编码块的预测QP值,QPA表示当前编码左侧的已重建块,QPB表示当前编码块上侧的已重建块,>>1表示右移一位,即除2运算。
S2、解析码流以获得当前编码块的QP偏移量。
可以理解的,在视频编码过程中,视频编码器确定出该当前编码块的预测QP,在确定当前编码块的真实QP值与该预测QP值得差值,得到当前编码块的QP偏移量(可以记为deltaQP),然后采用变长码编码QP偏移量,并通过码流传输QP偏移量至视频解码器,从而视频解码器获取到码流之后,可以解析码流获得当前编码块的QP偏移量。
S3、将当前编码块的预测QP值与QP偏移量之和作为当前编码块的QP值。
即QP=predQP+deltaQP,其中,QP表示当前编码的QP值,predQP表示当前编码块的预测QP值,deltaQP表示当前编码块的QP偏移量。
方式二的过程包括S10-S30。
S10、获取当前编码块的预测QP值。
对于S10的描述可以参考S1的相关描述,此处不再赘述。
S20、根据当前编码块的推导信息,确定当前编码块的QP偏移值。
其中,推导信息包括下述信息中的至少一种:当前编码块的平坦度信息、码流缓冲区的剩余空间或失真约束信息。
应理解,在视频编码过程中,视频编码器采用码控算法,根据当前编码块的推导信息推导得到当前编码块的QP偏移量,但视频编码器并不在码流中传输该QP偏移量,如此,在视频解码过程中,视频解码器采用与视频编码器相同的方法推导当前编码块的QP偏移量,上述S20中的根据当前编码块的平坦度信息、码流缓冲区的剩余空间或失真约束信息中的至少一种信息,推导得到当前编码块的QP偏移量的过程为现有技术,具体细节可以参考现有的推导QP偏移量的相关内容,本申请实施例不再详述。
S30、将当前编码块的预测QP值与QP偏移量之和作为当前编码块的QP值。
本申请实施例中,也可以根据其他更更多的信息对到当前编码块的预测QP值,例如根据当前编码块的前一个已编码块的QP、前一个已编码块的编码比特数(prevBlockRate)、目标码率(targetRate)、当前编码块的平坦度信息以及当前码流缓冲区的充盈程度(rcFullness)推导得到当前编码块的QP偏移量。
S505、根据当前编码块的QP值,确定第一像素点的预测QP值。
其中,第一像素点的预测QP值为当前编码块的QP值。
本申请实施例中,将获取的当前编码块的QP值作为当前编码块的每一个像素点的初始QP值(即预测QP值),在此基础上对该预测QP值进行调整或者不调整,从而得到每一个像素点的QP值。
基于上述S503-S504,如图14所示,上述根据第一像素点的预测残差值,确定第一像素点的目标QP值(即S502)具体包括S5021-S5022。
S5021、若第一像素点为当前编码块中的目标像素点,根据预测残差值,调整第一像素点的预测QP值,得到第一像素点的目标QP值。
其中,目标QP值小于预测QP值。
其中,目标像素点为预先设定的调整QP值的像素点。本申请实施例中,目标像素点是当前编码块中的一个或多个指定的像素点,这些指定的像素点可以理解为QP值待调整的像素点或者候选像素点,针对候选像素点,执行QP调整策略。
作为一个示例,当前编码块至少包括第一部分像素点和/或第二部分像素点;其中,第一部分像素点被设置为QP值无需调整的像素点;第二部分像素点被设置为QP值待调整的像素点;目标像素点为第二部分像素点中的任意一个或多个像素点。
其中,第一部分像素点和第二部分像素点根据当前编码块的逐点预测模式确定。示例性的,如图15所示,当前编码块的逐点预测模式包括:模式一和模式二;则在当前编码块的逐点预测模式分别为模式一和模式二的情况下,当前编码块中的第二部分像素点可以如以下表1所示:
表1
逐点预测模 第二部分像素点
模式一 非首行的T,所有的RL
模式二 非首行的T,非首列的TB,非首列的L
从图15中可以看出,在当前编码块的逐点预测模式为模式一的情况下,第二部分像素点包括以下至少一项:第一类像素点(RL)、非首行的第四类像素点(T);第一类像素点为根据像素点的左右两侧的已重建像素点进行预测的像素点;第四类像素点为根据像素点的上侧的已重建像素点进行预测的像素点。
在当前编码块的逐点预测模式为模式二的情况下,第二部分像素点包括以下至少一项:非首列的第二类像素点(TB)、非首列的第三类像素点(L)、非首行的第四类像素点(T);第二类像素点为根据像素点的上下两侧的已重建像素点进行预测的像素点;第三类像素点为根据像素点的左侧的已重建像素点进行预测的像素点。
如此,在确定第一像素点为当前编码块中的目标像素点之后,可以根据第一像素点的预测残差值,调整第一像素点的预测QP值,得到第一像素点的目标QP值。
本申请实施例中,可以为当前编码块的第一像素点设置QP调整参数表,示例性的,下述表2示出了调整QP值所需的一些参数。
表2
Figure BDA0004199494230000251
Figure BDA0004199494230000261
其中,info可以为当前像素点周围的已重建像素点的重建残差值;例如,已重建像素点的重建残差值包括:已重建像素点反量化后的残差值;或者,已重建像素点的重建值与预测值之差。
具体的,上述步骤S5021可以实现为以下步骤:
步骤d1、确定第一阈值、第二阈值和第三阈值。
其中,第一阈值为人眼恰可察觉失真对应的QP值(即表2中的jndQp),第二阈值为可调整的QP最大值(即表2中的adjustMaxQp),第三阈值为已重建像素信息的阈值(即表2中的resiThres)。
可选的,人眼恰可察觉失真对应的QP值(第一阈值),根据第一像素点在目标通道中的比特深度或者第一像素点的通道索引确定。在目标通道为色度通道的情况下,人眼恰可察觉失真对应的QP值(第一阈值)还可以根据第一像素点在亮度通道的比特深度确定。示例性的,人眼恰可察觉失真对应的QP值与第一像素点在目标通道中的比特深度正相关。
可选的,可调整的QP最大值(第二阈值),根据第一像素点在目标通道中的比特深度,第一像素点的通道索引,以及码流缓冲区的充盈程度中的一项或多项确定。在目标通道为色度通道的情况下,可调整的QP最大值(第二阈值)还可以根据第一像素点在亮度通道的比特深度确定。示例性的,可调整的QP最大值与第一像素点在亮度通道的比特深度正相关,与码流缓冲区的充盈程度负相关。
可选的,已重建像素信息的阈值(第三阈值),根据第一像素点在目标通道中的比特深度,第一像素点的通道索引,以及当前块的纹理复杂度中的一项或多项确定。在目标通道为色度通道的情况下,已重建像素信息的阈值(第三阈值)还可以根据第一像素点在亮度通道的比特深度确定。示例性的,已重建像素信息的阈值与第一像素点在亮度通道的比特深度正相关。
作为一种可能的实现方式,首先调整第一像素点在目标通道中的比特深度,确定第一像素点在目标通道中的比特深度索引;进而,根据第一像素点在目标通道中的比特深度索引,分别确定人眼恰可察觉失真对应的QP值、可调整的QP最大值以及已重建像素信息的阈值。
示例性的,第一像素点在目标通道中的比特深度索引满足以下公式(6):
bdIdx=Clip3(BitDepth[component]–8,0,8)公式
(6)
其中,bdIdx表示第一像素点在目标通道中的比特深度索引,BitDepth[component]表示第一像素点在目标通道中的比特深度,Clip为裁剪函数。
可以理解的是,通过上述公式(6)将第一像素点在目标通道的比特深度的索引值从8至16,调整为0至8,便于处理。
以人眼恰可察觉失真对应的QP值(第一阈值)由第一像素点在目标通道的比特深度确定为例,人眼恰可察觉失真对应的QP值(第一阈值)可以满足以下公式(7):
jndQp=(bdIdx<<2)+16公式
(7)
其中,<<在二进制中表示左移;<<2在二进制中表示左移2位,在十进制中表示乘以4。
以可调整的QP最大值(第二阈值)由第一像素点在目标通道的比特深度确定为例,则可调整的QP最大值(第二阈值)可以满足以下公式(8):
adjustMaxQp=((bdIdx>>1)<<3)+32公式
(8)
其中,>>在二进制中表示右移;>>1在二进制中表示右移1位,在十进制中表示除以2;<<3在二进制中表示左移3位,在十进制中表示乘以8。
以已重建像素信息的阈值(第三阈值)由第一像素点在目标通道的比特深度确定为例,已重建像素信息的阈值(第三阈值)可以满足以下公式(9):
resiThres=10<<(bdIdx>>1)公式
(9)
进而,可以根据第一阈值、第二阈值和第三阈值来确定是否对第一像素点的预测QP值进行调整,具体的如以下步骤d2所示。
步骤d2、若第一像素点的预测QP值大于或等于第一阈值,且小于或等于第二阈值,并且,第一像素点的预测残差值小于或等于第三阈值,调整第一像素点的预测QP值,得到目标QP值;否则,将第一像素点的预测QP值作为第一像素点的目标QP值。
在一些实施例中,若第一像素点的预测QP值和第一像素点的预测残差值满足上述条件的情况下,上述调整第一像素点的预测QP值,得到第一像素点的目标QP值可以实现为:将预测QP值减去预设偏移量后得到的QP值,与人眼恰可察觉失真对应的QP值中的较大值,作为目标QP值。
其中,预设偏移量可以根据第一像素点在目标通道中的比特深度,第一像素点的通道索引,码流缓冲区的充盈程度,以及当前编码块的纹理复杂度中的一项或多项确定。在目标通道为色度通道的情况下,预设偏移量还可以根据第一像素点在亮度通道的比特深度确定。
示例性的,上述第一像素点的目标QP值满足以下公式(10):
PixelQp=Max(QP[component]-offset,jndQp) 公式(10)
其中,PixelQp表示第一像素点的目标QP值(即表2中的finalQp),QP[component]表示第一像素点所在的当前编码块的QP值,QP[component]可以作为第一像素点的预测QP值(即表2中的orgQp),offset表示预设偏移量(即QP偏移值),jndQp表示人眼恰可察觉失真对应的QP值,Max表示取最大值。
可以理解的是,由于预测残差值反映了第一像素点的梯度,也即能够反映第一像素点的复杂度(例如纹理特点等)。因此,在第一像素点的预测残差值小于或等于已重建像素信息的阈值的情况下,说明第一像素点为简单像素点;在第一像素点的预测QP值大于或等于人眼恰可察觉失真对应的QP值的情况下(QP值反映了像素点空间压缩的细节信息,QP值越大说明该像素点的失真越强),说明第一像素点的失真较大;对于简单像素点来说,可以通过减小QP值来降低失真,因此,本申请实施例根据预测QP值减去预设偏移量后得到的QP值,来确定目标QP值。
同时,为了避免对预测QP值调整的太多,本申请实施例将预测QP值减去预设偏移量后得到的QP值,与人眼恰可察觉失真对应的QP值中的较大值,作为目标QP值,如此,即对预测QP值进行了调整,减小了第一像素点的失真,又能够避免调整幅度过大的情况出现,降低图像帧的解码失真,能够提升解码后的图像的质量。
S5022、若第一像素点为当前编码块中目标像素点之外的像素点,将第一像素点的预测QP值作为目标QP值。
本申请实施例中,当前编码块中除目标像素点之外的像素点均不做调整,无需执行QP调整策略,对于这些像素点,其QP值即为当前编码块的QP值。
可以理解的是,现有技术中,对一个编码块(例如上述的当前编码块)中的所有像素点都采用相同的QP值,即对当前编码块进行反量化的过程中,QP值是编码块粒度的QP值,如此,会导致的图像失真较大;而本申请实施例中,对一个编码块(例如上述的当前编码块),视频解码器为该编码块的任意一个像素点确定QP值,即对当前编码块进行反量化的过程中,QP值是像素粒度的QP值,充分考虑了同一编码块中不同像素点之间的差异,为每个像素点分配合适的QP值,从而降低图像帧的解码失真,即可以提升当前编码块的反量化效果(反量化效果可以通过解码得到的图像的质量来衡量)。
S503、根据第一像素点的目标QP值,对第一像素点进行反量化。
对第一像素点进行反量化具体是对该第一像素点的水平值进行反量化,该第一像素点的水平值是视频解码器通过解析码流获得。
可以理解的,在编码过程中,视频编码器对当前编码块进行预测,从而得到该当前编码块的残差值(该残差值为当前编码块的真实值与当前编码块的预测值之差),该残差值可以称为当前编码块的残差系数,然后对当前编码块的残差系数进行变换后再量化,得到当前编码块的量化系数;或者视频编码器对当前编码块的残差系数不进行变换,而是对该残差系数直接进行量化,得到当前编码块的量化系数,该量化系数可以称为水平值或者经量化残差系数,本申请实施例中,为了便于描述,将量化后的值统称为水平值。
本申请实施例中,根据第一像素点的目标QP值,对第一像素点水平值进行反量化具体包括:根据该第一像素点的目标QP值,确定该第一像素点的量化步长Qstep;然后,针对所选择的量化器组合,采用该第一像素点的Qstep对该第一像素点的水平值进行反量化。
可选地,量化器为均匀量化器或非均匀量化器,量化器组合是通过码流携带的标记信息确定的。
应理解,视频解码器根据QP值,可通过公式推导或查表中的至少一种方式确定Qstep,下面提供了三种可能的实现方法:
方法一:Qstep=a×QP+b,其中,a和b是预设的参数,例如a取值为2,b取值为1。
方法二:Qstep=2T,其中,T为与QP相关的整数,例如T=(QP-6)/4。
方法三:Qstep=2(QP+offset)/octave,其中,octave为QP的位阶,也即QP的值每增加octave,Qstep的值增加一倍,通常选取octave为6或8,offset为一个整数偏移值。
可选地,可以采用下述的H.265中的传统标量量化方法实现量化和反量化。
量化:
Figure BDA0004199494230000281
反量化:c′=l*Qstep
其中,l是量化后得到的水平值,c是待量化的残差系数(该残差系数可以是变换域的残差系数,即经变换的残差系数;或者该残差系数可以是像素域的残差系数,即残差值),Qstep是量化步长,f是控制舍入的参数,f∈[0,1),sign表示符号函数,floor表示向下取整函数;c'是反量化后的值。
可以理解的是,QP值越大,Qstep值越大,则量化越粗糙,量化带来的图像失真越大,系数编码的码率越小。
[0,1-f)表示量化死区,参数f与量化死区的长度有关,f越小,量化死区越长,量化后的水平值越靠近零点。当f=0.5时,上述量化和反量化公式相当于四舍五入,量化失真最小。当f<0.5时,f越小,量化失真越大,系数编码的码率越小。H.265中,对于I帧,选取f=1/3,对于B/P帧,选取f=1/6。
示例性的,均匀量化器其量化或反量化公式可以参考上述量化和反量化公式,参数f有以下取法:
取法一:f取为0.5或其他固定值。
取法二:f可根据QP值、预测模式以及是否做变换来自适应确定。
综上,是图像解码过程的描述,通过本申请实施例中提供的图像解码方法,视频解码器可以根据编码块中每个像素点的预测方式(预测方式用于指示对像素点进行预测时参考的已重建像素点的位置),确定每个像素点的预测残差值(反映第一像素点的梯度),进而为编码块中的像素点确定每个像素点粒度的QP,从而根据每个像素点的目标QP值对每个像素点进行反量化,即逐像素点进行反量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
相应的,在图像编码方法中,视频编码器首先获取像素点的QP、Qstep和残差系数;自适应选择量化器,对残差系数进行量化;最后调整量化系数,得到最终的水平值,从而实现图像帧的编码。
在图2示出的视频编码器100的基础上,本申请还提供一种图像编码方法,如图16所示,图16为本申请提供的一种图像编码方法的流程示意图,该图像编码方法可以由视频编码器100执行,也可以由支持视频编码器100的功能的编码端(如图1所示出的编码端10)执行,这里以视频编码器100实现图像编码方法为例进行说明,该图像编码方法包括以下步骤。
S601、根据第一像素点的预测方式,确定第一像素点的预测残差值。
其中,预测残差值用于反映第一像素点的梯度;预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;第一像素点为当前编码块中的任意一个像素点。
需要说明的是,S601中确定第一像素点的预测残差值的过程,可以参照前述步骤S501的具体实现过程,此处不再赘述。
S602、根据第一像素点的预测残差值,确定第一像素点的目标QP值。
需要说明的是,S602中确定第一像素点的目标QP值的过程,可以参照前述步骤S502的具体实现过程,此处不再赘述。
S603、根据第一像素点的目标QP值,对第一像素点进行量化。
需要说明的是,图16示意的量化,是图5示意的反量化的反过程,关于图像编码方法中采用目标QP值的量化,可以参考上述图5~图15中图像解码方法中的相应过程,此处不予赘述。
综上,通过本申请实施例中提供的图像编码方法,视频编码器可以根据编码块中每个像素点的预测方式(预测方式用于指示对像素点进行预测时参考的已重建像素点的位置),确定每个像素点的预测残差值(反映第一像素点的梯度),进而为编码块中的像素点确定每个像素点粒度的QP,从而根据每个像素点的QP值对每个像素点进行量化,即逐像素点进行量化,如此,可以在保证一定压缩率的情况下,降低图像帧的解码失真,能够提高图像解码的真实性和准确性。
可以理解的是,为了实现上述实施例中功能,视频编码器/视频解码器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图17为本申请实施例提供的一种图像解码装置的结构示意图,该图像解码装置700包括确定单元701和反量化单元702。图像解码装置700可以用于实现上述图像解码方法实施例中视频解码器或解码端的功能,因此也能实现上述图像解码方法实施例所具备的有益效果。在本申请实施例中,该图像解码装置700可以是如图1所示的解码端20或视频解码器200,也可以是如图3所示的视频解码器200,还可以是应用于解码端20或视频解码器200的模块(如芯片)。
确定单元701和反量化单元702,用于实现图5~图15中任一实施例提供的图像解码方法。有关上述确定单元701和反量化单元702详细的描述可以直接参考图5~图15所示的方法实施例中相关描述直接得到,这里不加赘述。
图18为本申请提供的一种图像编码装置的结构示意图,该图像编码装置800包括:确定单元801和量化单元802。图像编码装置800可以用于实现上述图像编码方法实施例中视频编码器或编码端的功能,因此也能实现上述图像编码方法实施例所具备的有益效果。在本申请实施例中,该图像编码装置800可以是如图1所示的编码端10或视频编码器100,也可以是如图2所示的视频编码器100,还可以是应用于编码端10或视频编码器100的模块(如芯片)。
确定单元801和量化单元802,用于实现图16所提供的图像编码方法。有关上述确定单元801和量化单元802更详细的描述可以直接参考图5~图16所示的方法实施例中相关描述直接得到,这里不加赘述。
本申请还提供一种电子设备,如图19所示,本申请提供的一种电子设备的结构示意图,电子设备900包括处理器901和通信接口902。处理器901和通信接口902之间相互耦合。可以理解的是,通信接口902可以为收发器或输入输出接口。可选的,电子设备900还可以包括存储器903,用于存储处理器901执行的指令或存储处理器901运行指令所需要的输入数据,或存储处理器901运行指令后产生的数据。
当电子设备900用于实现图5~图15所示的方法时,处理器901和通信接口902用于执行上述确定单元701和反量化单元702的功能。
当电子设备900用于实现图16所示的方法时,处理器901和通信接口902用于执行上述确定单元801和量化单元802的功能。
本申请实施例中不限定上述通信接口902、处理器901及存储器903之间的具体连接介质。本申请实施例在图19中以通信接口902、处理器901以及存储器903之间通过总线904连接,总线在图19中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器903可用于存储软件程序及模块,如本申请实施例所提供的图像解码方法或图像编码方法对应的程序指令/模块,处理器901通过执行存储在存储器903内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口902可用于与其他设备进行信令或数据的通信。在本申请中该电子设备900可以具有多个通信接口902。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing Unit,CPU)、神经处理器(neural processing unit,NPU)或图形处理器(graphic processing unit,GPU),还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种图像解码方法,其特征在于,所述方法由解码端执行;所述方法包括:
根据第一像素点的预测方式,确定所述第一像素点的预测残差值;所述预测残差值用于反映所述第一像素点的梯度;所述预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;所述第一像素点为当前编码块中的任意一个像素点;
根据所述第一像素点的预测残差值,确定所述第一像素点的目标量化参数QP值;
根据所述第一像素点的目标QP值,对所述第一像素点进行反量化;
所述第一像素点的预测残差值包括:
目标值或者所述目标值的平均值;其中,所述目标值为所述第一像素点的周围已重建像素点的梯度;或者,所述目标值为所述第一像素点的周围已重建像素点的梯度的绝对值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值的绝对值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一像素点的预测QP值;所述第一像素点的预测QP值为所述当前编码块的QP值;
所述根据所述第一像素点的预测残差值,确定所述第一像素点的目标量化参数QP值,包括:
所述第一像素点为所述当前编码块中的目标像素点,根据所述预测残差值,调整所述第一像素点的预测QP值,得到所述第一像素点的目标QP值;所述目标像素点为预先设定的调整QP值的像素点。
3.根据权利要求2所述的方法,其特征在于,所述当前编码块至少包括第一部分像素点和/或第二部分像素点;其中,所述第一部分像素点被设置为QP值无需调整的像素点;所述第二部分像素点被设置为QP值待调整的像素点;所述第一部分像素点和所述第二部分像素点根据所述当前编码块的逐点预测模式确定;
所述目标像素点为所述第二部分像素点中的任意一个或多个像素点。
4.根据权利要求3所述的方法,其特征在于,所述当前编码块的逐点预测模式包括:垂直型预测模式,用于处理垂直类型的纹理;
在所述当前编码块的逐点预测模式为垂直型预测模式的情况下,所述第二部分像素点包括以下至少一项:第一类像素点、非首行的第四类像素点;所述第一类像素点为根据像素点的左右两侧的已重建像素点进行预测的像素点;所述第四类像素点为根据像素点的上侧的已重建像素点进行预测的像素点。
5.一种图像编码方法,其特征在于,所述方法由编码端执行,所述方法包括:
根据第一像素点的预测方式,确定所述第一像素点的预测残差值;所述预测残差值用于反映所述第一像素点的梯度;所述预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;所述第一像素点为当前编码块中的任意一个像素点;
根据所述第一像素点的预测残差值,确定所述第一像素点的目标量化参数QP值;
根据所述第一像素点的目标QP值,对所述第一像素点进行量化;
所述第一像素点的预测残差值包括:
目标值或者所述目标值的平均值;其中,所述目标值为所述第一像素点的周围已重建像素点的梯度;或者,所述目标值为所述第一像素点的周围已重建像素点的梯度的绝对值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值的绝对值。
6.一种图像解码装置,其特征在于,所述解码装置包括:确定单元和反量化单元;
所述确定单元,用于根据第一像素点的预测方式,确定所述第一像素点的预测残差值;所述预测残差值用于反映所述第一像素点的梯度;所述预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;所述第一像素点为当前编码块中的任意一个像素点;
所述确定单元,还用于根据所述第一像素点的预测残差值,确定所述第一像素点的目标量化参数QP值;
所述反量化单元,用于根据所述第一像素点的目标QP值,对所述第一像素点进行反量化;
所述第一像素点的预测残差值包括:
目标值或者所述目标值的平均值;其中,所述目标值为所述第一像素点的周围已重建像素点的梯度;或者,所述目标值为所述第一像素点的周围已重建像素点的梯度的绝对值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值的绝对值。
7.一种图像编码装置,其特征在于,所述图像编码装置包括:确定单元和量化单元;
所述确定单元,用于根据第一像素点的预测方式,确定所述第一像素点的预测残差值;所述预测残差值用于反映所述第一像素点的梯度;所述预测方式用于指示对像素点进行预测时参考的已重建像素点的位置;所述第一像素点为当前编码块中的任意一个像素点;
所述确定单元,还用于根据所述第一像素点的预测残差值,确定所述第一像素点的目标量化参数QP值;
所述量化单元,用于根据所述第一像素点的目标QP值,对所述第一像素点进行量化;
所述第一像素点的预测残差值包括:
目标值或者所述目标值的平均值;其中,所述目标值为所述第一像素点的周围已重建像素点的梯度;或者,所述目标值为所述第一像素点的周围已重建像素点的梯度的绝对值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值;或者,所述目标值为所述第一像素点的周围已重建像素点反量化后的残差值的绝对值。
8.一种视频译码系统,其特征在于,包括编码端和解码端,所述编码端与所述解码端通信连接,所述解码端用于实现权利要求1至4中任一项所述的方法,所述编码端用于实现权利要求5所述的方法。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,实现权利要求1至5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被电子设备执行时,实现权利要求1至5中任一项所述的方法。
CN202310454020.5A 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置 Pending CN116389755A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202210886294 2022-07-26
CN2022108862947 2022-07-26
CN202210976078.1A CN116071440A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202210976078.1A Division CN116071440A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置

Publications (1)

Publication Number Publication Date
CN116389755A true CN116389755A (zh) 2023-07-04

Family

ID=86168790

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202310454346.8A Pending CN116489373A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置
CN202210976078.1A Pending CN116071440A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置
CN202310454020.5A Pending CN116389755A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310454346.8A Pending CN116489373A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置
CN202210976078.1A Pending CN116071440A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置

Country Status (3)

Country Link
CN (3) CN116489373A (zh)
TW (1) TW202406351A (zh)
WO (1) WO2024022367A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116489373A (zh) * 2022-07-26 2023-07-25 杭州海康威视数字技术股份有限公司 一种图像解码方法、编码方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1953551A (zh) * 2006-11-24 2007-04-25 北京中星微电子有限公司 图像压缩装置及方法
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
CN109600609A (zh) * 2018-10-26 2019-04-09 西安科锐盛创新科技有限公司 带宽压缩矩阵量化和反量化方法
CN109361922B (zh) * 2018-10-26 2020-10-30 西安科锐盛创新科技有限公司 预测量化编码方法
CN116489373A (zh) * 2022-07-26 2023-07-25 杭州海康威视数字技术股份有限公司 一种图像解码方法、编码方法及装置

Also Published As

Publication number Publication date
CN116489373A (zh) 2023-07-25
CN116071440A (zh) 2023-05-05
WO2024022367A1 (zh) 2024-02-01
TW202406351A (zh) 2024-02-01

Similar Documents

Publication Publication Date Title
US10778978B2 (en) System and method of cross-component dynamic range adjustment (CC-DRA) in video coding
CA2913797A1 (en) Rice parameter initialization for coefficient level coding in video coding process
WO2013056097A1 (en) Coding non-symmetric distributions of data
US20230379500A1 (en) Residual and coefficients coding for video coding
KR20190033558A (ko) 인-루프 샘플 프로세싱을 위한 비디오 코딩 툴들
KR20230049764A (ko) 팔레트 모드를 이용한 비디오 코딩의 방법 및 장치
WO2024022367A1 (zh) 图像解码方法、编码方法及装置
KR20220140871A (ko) 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
CN116132679A (zh) 图像编解码方法、装置及存储介质
KR102564189B1 (ko) 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
CN116527942A (zh) 一种图像编解码方法及装置
WO2023083245A1 (zh) 解码方法、编码方法及装置
WO2023138562A1 (zh) 图像解码方法、图像编码方法及相应的装置
US20240179314A1 (en) Residual and coefficients coding for video coding
EP4315862A1 (en) Residual and coefficients coding for video coding

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