掌桥专利:专业的专利平台
掌桥专利
首页

应用于视频编解码的量化、反量化方法、装置以及设备

文献发布时间:2024-04-18 19:58:21


应用于视频编解码的量化、反量化方法、装置以及设备

技术领域

本申请实施例涉及视频编解码技术领域,特别涉及一种应用于视频编解码的量化、反量化方法、装置以及设备。

背景技术

量化是指将信号的连续取值(或者大量可能的离散取值)映射为有限多个离散幅值的过程,实现信号取值的多对一映射。在视频编码中,数字视频信号经过预测、变换后变换系数的取值具有较大的动态范围,通过对变换系数进行量化则可以有效减少信号的取值空间、以节省码率。

相关技术中,在对变换系数进行量化的过程中,一般仅根据视频编解码标准中规定的量化系数位宽对变换系数进行量化,而由于变换系数中存在明显的低频信号和高频信号,其中,低频信号可能需要较大的系数位宽以减少失真,高频信号可能并不需要较大的系数位宽。

可见,基于视频编解码标准中的量化系数位宽,对变换系数进行统一量化处理,导致量化系数需要占用较多带宽,降低了编码效率。

发明内容

本申请实施例提供了一种应用于视频编解码的量化、反量化方法、装置以及设备,能够减少视频编解码过程中的量化位宽占用率,提高视频编解码效率。所述技术方案如下:

一方面,本申请实施例提供了一种应用于视频编码的量化方法,所述方法包括:

确定视频帧中尺寸块对应的变换系数矩阵,所述变换系数矩阵包含所述尺寸块中不同频域位置对应的变换系数,所述尺寸块通过对所述视频帧划分并经过频域变换得到;

基于所述变换系数矩阵中各个变换系数所处的频域位置,确定各个变换系数对应的量化系数位宽,其中,处于低频范围内的所述变换系数对应的量化系数位宽大于处于高频范围内的所述变换系数对应的量化系数位宽;

基于各个变换系数对应的量化系数位宽,对所述变换系数矩阵进行量化处理,得到所述视频帧中所述尺寸块对应的量化系数矩阵。

可选的,所述基于所述变换系数矩阵中各个变换系数所处的频域位置,确定各个变换系数对应的量化系数位宽,包括:

基于扫描方式确定所述尺寸块对应的所述变换系数矩阵中各个变换系数对应的扫描编号;

基于所述扫描编号,确定所述变换系数矩阵中各个变换系数对应的量化系数位宽。

可选的,所述基于扫描方式确定所述尺寸块对应的所述变换系数矩阵中各个变换系数对应的扫描编号,包括:

确定所述变换系数矩阵中的直流分量系数,所述直流分量系数对应的频域范围低于其他变换系数对应的频域范围;

以所述直流分量系数所处的频域位置为起始点,对所述变换系数矩阵进行扫描;

基于所述扫描方式以及扫描顺序,确定所述变换系数矩阵中各个变换系数对应的扫描编号,其中,扫描方式为对角扫描、水平扫描和垂直扫描中的一种。

可选的,所述基于所述扫描编号,确定所述变换系数矩阵中各个变换系数对应的量化系数位宽,包括:

在所述扫描编号小于第一编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第一系数位宽;

在所述扫描编号不小于所述第一编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第二系数位宽,所述第二系数位宽不同于所述第一系数位宽。

可选的,所述第一系数位宽为编码标准中规定的标准位宽,所述第二系数位宽为小于所述标准位宽的其他系数位宽。

可选的,所述基于所述扫描编号,确定所述变换系数矩阵中各个变换系数对应的量化系数位宽,还包括:

确定至少两个编号阈值,且第i编号阈值小于第i+1编号阈值;

在所述扫描编号小于第一编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第一系数位宽;

在所述扫描编号不小于所述第i编号阈值且小于所述第i+1编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第i+1系数位宽,所述第i+1系数位宽小于第i系数位宽。

可选的,所述基于所述扫描编号,确定所述变换系数矩阵中各个变换系数对应的量化系数位宽,还包括:

确定至少一个编号集合,所述编号集合中包括至少一个预设扫描编号,且不同编号集合对应不同量化系数位宽;

在所述扫描编号属于第i编号集合的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第i系数位宽。

可选的,所述方法还包括:

在对变换系数进行符号位隐藏处理的情况下,获取符号位隐藏处理过程中的系数调整值;

基于所述变换系数对应的量化系数位宽以及所述系数调整值,确定各个变换系数对应的量化系数范围;

所述基于各个变换系数对应的量化系数位宽,对所述变换系数矩阵进行量化处理,得到所述视频帧中所述尺寸块对应的量化系数矩阵,包括:

基于各个变换系数对应的量化系数位宽以及所述量化系数范围,对所述变换系数矩阵进行量化处理,得到所述视频帧中所述尺寸块对应的所述量化系数矩阵。

可选的,在采用隐式编解码协议的情况下,所述变换系数矩阵中各个变换系数对应的量化系数位宽由视频编码端和视频解码端通过所述隐式编解码协议约定。

可选的,所述方法还包括:

在得到所述变换系数矩阵中各个变换系数对应的量化系数位宽之后,将各个变换系数对应的量化系数位宽写入视频帧参数集中,由视频解码端基于所述视频帧参数集获取所述量化系数矩阵中各个量化系数对应的量化系数位宽;

其中,写入方式包括写入所述量化系数位宽,或写入所述量化系数位宽与参数集默认位宽的位宽差值,或写入经过编码压缩的所述位宽差值中的至少一种。

另一方面,本申请实施例提供了一种应用于视频解码的反量化方法,所述方法包括:

基于视频帧对应的视频码流,确定所述视频帧中尺寸块对应的量化系数矩阵,所述量化系数矩阵包含所述尺寸块中不同频域位置对应的量化系数;

基于所述量化系数矩阵中各个量化系数对应的量化系数位宽,对所述量化系数矩阵进行反量化处理,得到所述视频帧中所述尺寸块对应的变换系数矩阵。

可选的,所述基于所述量化系数矩阵中各个量化系数对应的量化系数位宽,对所述量化系数矩阵进行反量化处理,得到所述视频帧中所述尺寸块对应的变换系数矩阵之前,所述方法还包括:

在采用隐式编解码协议的情况下,从所述隐式编解码协议中获取所述量化系数矩阵中各个量化系数对应的所述量化系数位宽;

在采用显式编解码协议的情况下,基于视频帧参数集,确定所述量化系数矩阵中各个量化系数对应的所述量化系数位宽。

另一方面,本申请实施例提供了一种应用于视频编码的量化装置,所述装置包括:

第一确定模块,用于确定视频帧中尺寸块对应的变换系数矩阵,所述变换系数矩阵包含所述尺寸块中不同频域位置对应的变换系数,所述尺寸块通过对所述视频帧划分并经过频域变换得到;

第二确定模块,用于基于所述变换系数矩阵中各个变换系数所处的频域位置,确定各个变换系数对应的量化系数位宽,其中,处于低频范围内的所述变换系数对应的量化系数位宽大于处于高频范围内的所述变换系数对应的量化系数位宽;

量化模块,用于基于各个变换系数对应的量化系数位宽,对所述变换系数矩阵进行量化处理,得到所述视频帧中所述尺寸块对应的量化系数矩阵。

另一方面,本申请实施例提供了一种应用于视频解码的反量化装置,所述装置包括:

第一确定模块,用于基于视频帧对应的视频码流,确定所述视频帧中尺寸块对应的量化系数矩阵,所述量化系数矩阵包含所述尺寸块中不同频域位置对应的量化系数;

反量化模块,用于基于所述量化系数矩阵中各个量化系数对应的量化系数位宽,对所述量化系数矩阵进行反量化处理,得到所述视频帧中所述尺寸块对应的变换系数矩阵。

另一方面,本申请实施例提供了一种视频编码器,所述视频编码器中包括集成电路,所述集成电路用于实现如上述方面所述的应用于视频编码的量化方法。

另一方面,本申请实施例提供了一种视频解码器,所述视频解码器中包括集成电路,所述集成电路用于实现如上述方面所述的应用于视频解码的反量化方法。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的应用于视频编码的量化方法,或,如上述方面所述的应用于视频解码的反量化方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述方面所述的应用于视频编码的量化方法,或,如上述方面所述的应用于视频解码的反量化方法。

另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的应用于视频编码的量化方法,或,如上述方面所述的应用于视频解码的反量化方法。

本申请实施例中,在进行视频编码过程中,确定出视频帧中各个尺寸块对应的变换系数矩阵之后,并不是根据编码标准中的标准量化系数位宽对变换系数矩阵进行量化处理,而是根据变换系数矩阵中各个变换系数所处的频域位置,确定出各个变换系数对应的量化系数位宽,使得处于低频范围内的变换系数对应的量化系数位宽大于处于高频范围内的变换系数对应的量化系数位宽,进而再根据各个变换系数对应的量化系数位宽,对变换系数矩阵进行量化处理,得到视频帧中各个尺寸块对应的量化系数矩阵;采用本申请实施例提供的方案,能够在视频编解码过程中,减少低频区域量化失真的同时,优化量化位宽的占用率,提高视频编解码效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请一个实施例提供的视频编解码的流程示意图;

图2示出了本申请一个示例性实施例提供的应用于视频编码的量化方法的流程图;

图3示出了本申请另一个示例性实施例提供的应用于视频编码的量化方法的流程图;

图4示出了本申请一个示例性实施例提供的不同扫描方式对应的扫描顺序示意图;

图5示出了本申请一个示例性实施例提供的采用对角扫描方式确定变换系数对应的扫描编号的示意图;

图6示出了本申请一个示例性实施例提供的基于编号集合确定量化系数位宽的示意图;

图7示出了本申请一个示例性实施例提供的应用于视频解码的反量化方法的流程图;

图8示出了本申请另一个实施例提供的视频编解码的流程示意图;

图9示出了本申请一个示例性实施例提供的应用于视频编码的量化装置的结构框图;

图10示出了本申请一个示例性实施例提供的应用于视频解码的反量化装置的结构框图;

图11示出了本申请一个示例性实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

视频编码(Coding)和视频解码(Encoding)广泛用于数字视频应用,例如广播数字TV、经由互联网和移动网络的视频传输、视频聊天和视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。

示意性的,如图1所示,视频编码的过程主要包括预测、变换、量化和熵编码,而视频解码的过程则相反,主要包括熵解码、反量化、反变换和预测。

在视频编码过程中,编码端可以通过对图像的编码块进行预测编码,得到预测块,并根据当前编码块和该预测块计算残差信号,进而通过变换将图像的残差信号映射到变换域,得到变换系数矩阵,从而使得图像在变换域的能量更集中,去除信号的频域相关性,进一步的,通过量化将变换系数矩阵中的待编码系数映射为码字,并经过熵编码将码字对应的码字索引或是其他用于指示码字的信息等转变为一个二进制码流,从而生成视频码流。

预测编码(Predictive Coding):包括帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前编码块决定选择哪一种预测编码模式,并告知解码端,其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域;帧间预测是指预测的信号来自已经编码过的、不同于当前图像的其它图像(称之为参考图像)。

变换及量化(Transform&Quantization):残差视频信号经过DFT(DiscreteFourier Transform,离散傅里叶变换)、DCT(Discrete Cosine Transform,离散余弦变换)等变换操作后,将信号转换到变换域中,称之为变换系数。变换系数进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此编码端也需要为当前编码块选择其中的一种变换方式,并告知解码端。量化的精细程度通常由量化参数(Quantization Parameter,QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。

熵编码(Entropy Coding)或统计编码:量化后的变换域信号将根据各个值出现的频率进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的编码模式、运动矢量数据等,也需要进行熵编码以降低码率。统计编码是一种无损的编码方式,可以有效的降低表达同样信号所需要的码率,常见的统计编码方式有变长编码(Variable Length Coding,VLC)或者基于上下文的二值化算术编码(ContentAdaptive Binary Arithmetic Coding,CABAC)。

相关技术中,视频编码过程中,编码端在通过变换处理得到视频帧中各个尺寸块对应的变换系数矩阵后,在基于量化参数对变换系数矩阵进行量化处理的过程中,仅参考编码标准中规定的量化系数位宽,对量化系数进行要求,比如,H.266标准定义量化系数的位宽为16bit,H.265标准定义量化系数的位宽为8bit。而由于经过变换处理后,残差信号的大部分能量主要集中在低频区域,高频信号的值范围较小,因此仅根据标准定义的量化系数位宽对变换系数矩阵进行量化处理,对低频系数和高频系数采用统一的位宽标准,则会导致量化位宽占用率较高。

因此本申请实施例中,在得到视频帧中各个尺寸块对应的变换系数矩阵后,并不是直接根据量化参数对变换系数矩阵进行量化处理,而是根据变换系数矩阵中变换系数对应的频域范围,自适应地确定各个变换系数对应的系数位宽,进而再根据该系数位宽,对变换系数矩阵进行量化处理,从而使得低频范围内的信号可以采用较大位宽以保持低频信号的精度,而高频范围内的信号则采用较小位宽以节省系数带宽开销。

请参考图2,其示出了本申请一个示例性实施例提供的应用于视频编码的量化方法的流程图,本实施例以该方法用于视频编码端为例进行说明,该方法包括如下步骤:

步骤201,确定视频帧中尺寸块对应的变换系数矩阵,变换系数矩阵包含尺寸块中不同频域位置对应的变换系数,尺寸块通过对视频帧划分并经过频域变换得到。

在一些实施例中,编码端首先对视频帧进行划分,得到视频帧对应的各个图像块,从而对各个图像块进行预测编码,得到对应的编码块和预测块,进而对预测编码得到的残差信号进行频域变换处理,得到经过频域变换后的尺寸块,即确定出视频帧中各个尺寸块对应的变换系数矩阵。

可选的,频域变换处理的方式可以是DFT变换、DCT变换等,本申请实施例对此不作限定。

可选的,变换系数矩阵中包含尺寸块中不同频域位置对应的变换系数,其中,低频系数的值一般较大,且集中在变换系数矩阵的左上角,高频系数的数量较多,但高频系数的值一般较小。

步骤202,基于变换系数矩阵中各个变换系数所处的频域位置,确定各个变换系数对应的量化系数位宽,其中,处于低频范围内的变换系数对应的量化系数位宽大于处于高频范围内的变换系数对应的量化系数位宽。

不同于相关技术中,直接根据编码标准中的标准量化系数位宽对变换系数矩阵进行量化处理,导致量化位宽占用率高,本申请实施例中,为了在保证低频信号量化精度的同时,减少量化位宽的占用率,编码端可以先确定变换系数矩阵中各个变换系数所处的频域位置,从而根据各个变换系数所处的频域位置,确定各个变换系数对应的量化系数位宽。

在一些实施例中,考虑到人眼对高频信息的敏感度较低,对低频信息的敏感度较高,即在量化处理过程中,编码端需要优先保证低频信号的精度,以减少量化失真,因此为了在尽可能减少量化位宽占用率的同时,保证低频信号的量化精度,编码端可以对处于低频范围内的变换系数采用较大的量化系数位宽,对处于高频范围内的变换系数采用较小的量化系数位宽。

在一个示意性的例子中,编码端可以对位于变换系数矩阵左上角的几个变换系数采用16bit的量化系数位宽,对位于变换系数矩阵中的其他变换系数采用小于16bit的其他量化系数位宽。

步骤203,基于各个变换系数对应的量化系数位宽,对变换系数矩阵进行量化处理,得到视频帧中尺寸块对应的量化系数矩阵。

在一些实施例中,在确定出变换系数矩阵中各个变换系数对应的量化系数位宽之后,编码端即可以根据各个变换系数对应的量化系数位宽,对变换系数矩阵进行量化处理,从而得到视频帧中各个尺寸块对应的量化系数矩阵。

在一种可能的实施方式中,编码端首先确定量化参数,在通过量化参数对变换系数矩阵进行量化处理的过程中,同时根据量化系数位宽对量化系数进行要求,从而得到各个变换系数对应的量化系数,即得到量化系数矩阵。

在一个示意性的例子中,编码端确定量化参数(量化步长为10),从而基于量化步长,对各个变换系数进行量化,即将变换系数除以10再圆整到最近的整数,同时增加量化系数位宽的要求,使得低频变换系数对应的量化系数位宽为16bit,高频变换系数对应的量化系数位宽为8bit,从而得到的量化系数矩阵中低频范围内的量化系数具有较大的位宽,保证了低频信号的精度;高频范围内的量化系数具有较小的位宽,节省了系数带宽。

综上所述,本申请实施例中,在进行视频编码过程中,确定出视频帧中各个尺寸块对应的变换系数矩阵之后,并不是根据编码标准中的标准量化系数位宽对变换系数矩阵进行量化处理,而是根据变换系数矩阵中各个变换系数所处的频域位置,确定出各个变换系数对应的量化系数位宽,使得处于低频范围内的变换系数对应的量化系数位宽大于处于高频范围内的变换系数对应的量化系数位宽,进而再根据各个变换系数对应的量化系数位宽,对变换系数矩阵进行量化处理,得到视频帧中各个尺寸块对应的量化系数矩阵;采用本申请实施例提供的方案,能够在视频编解码过程中,减少低频区域量化失真的同时,优化量化位宽的占用率,提高视频编解码效率。

在一些实施例中,为了更加合理地确定变换系数矩阵中各个变换系数对应的量化系数位宽,视频编码端还可以根据系数扫描,对各个变换系数进行编号,从而根据编号对各个变换系数对应的量化系数位宽进行设置。

请参考图3,其示出了本申请另一个示例性实施例提供的应用于视频编码的量化方法的流程图,本实施例以该方法用于视频编码端为例进行说明,该方法包括如下步骤:

步骤301,确定视频帧中尺寸块对应的变换系数矩阵,变换系数矩阵包含尺寸块中不同频域位置对应的变换系数,尺寸块通过对视频帧划分并经过频域变换得到。

本步骤的具体实施方式可以参考步骤201,本实施例在此不作赘述。

步骤302,基于扫描方式确定尺寸块对应的变换系数矩阵中各个变换系数对应的扫描编号。

在一些实施例中,为了更加合理地确定变换系数矩阵中各个变换系数对应的量化系数位宽,在提高量化位宽的占用率的同时减少量化失真,编码端还可以通过对变换系数矩阵中的变换系数进行系数扫描,从而根据扫描方式确定各个变换系数对应的扫描编号。

可选的,系数扫描方式可以是对角扫描、水平扫描和垂直扫描中的一种。示意性的,如图4所示,其示出了不同扫描方式对应的扫描顺序。

在一种可能的实施方式中,为了提高编号效率,编码端可以先确定变换系数矩阵中的直流分量系数(DC系数),其中,直流分量系数对应的频域范围低于其他变换系数对应的频域范围,进而以直流分量系数所处的频域位置为起始点,对变换系数矩阵进行扫描,并根据扫描方式以及扫描顺序,确定变换系数矩阵中各个变换系数对应的扫描编号。

在一种可能的实施方式中,编码端通过对角扫描的方式,从位于变换系数矩阵的左上角的DC系数开始,对变换系数矩阵进行扫描,从而确定DC系数的扫描编号为0,并根据扫描顺序依次类推,确定出各个变换系数对应的扫描编号。

示意性的,如图5所示,其示出了在采用对角扫描的情况下变换系数矩阵中各个变换系数对应的扫描编号,其中,尺寸块501采用8×8对角扫描方式,尺寸块502采用每2×2个单元进行对角扫描的方式。

步骤303,基于扫描编号,确定变换系数矩阵中各个变换系数对应的量化系数位宽。

在一些实施例中,在确定变换系数矩阵中各个变换系数对应的扫描编号之后,编码端则可以根据扫描编号,确定变换系数矩阵中各个变换系数对应的量化系数位宽,比如,扫描编号越小,量化系数位宽越大。

在一些实施例中,编码端还可以设置编号阈值,并根据扫描编号和编号阈值,确定各个变换系数对应的量化系数位宽。

在一种可能的实施方式中,编码端根据扫描编号以及第一编号阈值,确定各个变换系数对应的量化系数位宽。在扫描编号小于第一编号阈值的情况下,编码端则将扫描编号对应的变换系数的量化系数位宽确定为第一系数位宽;在扫描编号不小于第一编号阈值的情况下,编码端则将扫描编号对应的变换系数的量化系数位宽确定为第二系数位宽,其中,第二系数位宽不同于第一系数位宽。

在一种可能的实施方式中,在以直流分量系数为扫描起始点确定各个变换系数的扫描编号的情况下,编码端可以设置第一系数位宽大于第二系数位宽,可选的,第一系数位宽可以为编码标准中规定的标准位宽,比如,H.266标准定义的量化系数位宽16bit,H.265标准定义的量化系数位宽8bit;可选的,第二系数位宽可以为小于标准位宽的其他系数位宽,比如,第二系数位宽为6bit、0bit等。

示意性的,如图5所示,在采用对角扫描方式对变换系数矩阵进行扫描的情况下,可以确定出变换系数矩阵中各个变换系数对应的扫描编号,扫描编号范围从0~63,其中,对于尺寸块501,在第一编号阈值为15的情况下,编码端即可以将对应的扫描编号为0~14的变换系数的量化系数位宽确定为16bit,将对应的扫描编号为15~63的变换系数的量化系数位宽确定为0bit;对于尺寸块502,在第一编号阈值为16的情况下,编码端即可以将对应的扫描编号为0~15的变换系数的量化系数位宽确定为16bit,将对应的扫描编号为16~63的变换系数的量化系数位宽确定为0bit,即将左上角4×4区域内的变换系数的量化系数位宽确定为16bit。

在一种可能的实施方式中,为了进一步节省系数带宽,编码端还可以仅将DC系数的量化系数位宽设置为编码标准中规定的标准位宽,其他交流分量系数(AC系数)的量化系数位宽均设置为小于标准位宽的其他系数位宽。比如,在采用H.266编码标准的情况下,编码端可以仅将变换系数矩阵中位于(0,0)点的DC系数的量化系数位宽设置为16bit,其他AC系数的量化系数位宽则设置为Abit,其中,A小于16。

在一些实施例中,为了在节省系数带宽的同时,尽可能减少量化失真,编码端还可以设置多个编号阈值,对变换系数进行划分,以细化不同频域范围下变换系数对应的量化系数位宽。

在一种可能的实施方式中,编码端确定至少两个编号阈值,且第i编号阈值小于第i+1编号阈值,从而在扫描编号小于第一编号阈值的情况下,编码端将扫描编号对应的变换系数的量化系数位宽确定为第一系数位宽;在扫描编号不小于第i编号阈值且小于第i+1编号阈值的情况下,编码端将扫描编号对应的变换系数的量化系数位宽确定为第i+1系数位宽,第i+1系数位宽小于第i系数位宽。

在一个示意性的例子中,在扫描编号的范围为0~63的情况下,编码端可以设置第一编号阈值为15,第二编号阈值为49,从而将对应的扫描编号为0~14的变换系数对应的量化系数位宽确定为16bit,将对应的扫描编号为15~48的变换系数对应的量化系数位宽确定为8bit,将对应的扫描编号为49~63的变换系数对应的量化系数位宽确定为0bit。

考虑到通过扫描方式确定的各个变换系数的扫描编号为连续的,而变换系数矩阵中各个变换系数所处的频域位置可能不具有连续性,导致仅根据编号阈值对变换系数进行划分具有一定的局限性,因此在一些实施例中,编码端还可以通过设置编号集合的方式,对变换系数矩阵中的变换系数进行划分。

在一种可能的实施方式中,编码端可以确定至少一个编号集合,该编号集合中包括至少一个预设扫描编号,且不同编号集合对应不同量化系数位宽,从而编码端可以根据各个变换系数对应的扫描编号,确定各个扫描编号所处编号集合,从而在扫描编号属于第i编号集合的情况下,编码端将扫描编号对应的变换系数的量化系数位宽确定为第i系数位宽。

在一个示意性的例子中,在采用对角扫描,且扫描编号的范围为0~63的情况下,编码端确定一个编号集合,该编号集合中包括16个扫描编号,该编号集合可以表示为{0,1,2,3,4,5,6,7,8,9,11,12,13,17,18,24},从而编码端即可以将该编号集合内各个扫描编号对应的变换系数的量化系数位宽设置为16bit,将其他扫描编号对应的变换系数的量化系数位宽设置为0bit。示意性的,如图6所示,该编号集合{0,1,2,3,4,5,6,7,8,9,11,12,13,17,18,24}对应的频域位置为左上角4×4区域,即编码端将该频域位置内的变换系数的量化系数位宽设置为16bit。

步骤304,基于各个变换系数对应的量化系数位宽,对变换系数矩阵进行量化处理,得到视频帧中尺寸块对应的量化系数矩阵。

在一些实施例中,在确定变换系数矩阵中各个变换系数对应的量化系数位宽之后,编码端还需要根据各个变换系数对应的量化系数位宽,并结合量化步长,对变换系数矩阵进行量化处理,从而得到视频帧中各个尺寸块对应的量化系数矩阵。

在一些实施例中,考虑到在进行量化处理的过程中,编码端可能还会应用其他编码技术,导致量化系数位宽发生变化,比如,符号位隐藏(Sign Hiding)技术要求对于满足一定条件的系数组,沿扫描路径的第一非零系数的符号不在比特流中显式传输,而是从解码端处该系数组中的所有非零系数之和的奇偶性来推断,因此在采用符号位隐藏技术的情况下,编码端需要涉及到对量化系数的大小进行调整。

在一种可能的实施方式中,在对变换系数进行符号位隐藏处理的情况下,编码端可以先获取符号位隐藏处理过程中的系数调整值,从而根据变换系数对应的量化系数位宽以及系数调整值,确定各个变换系数对应的量化系数范围,进而根据各个变换系数对应的量化系数位宽以及量化系数范围,对变换系数矩阵进行量化处理,得到视频帧中各个尺寸块对应的量化系数矩阵。

在一种可能的实施方式中,符号位隐藏处理过程中的系数调整值为B,变换系数对应的量化系数位宽为Abit,从而可以确定量化系数范围为[-2

上述实施例中,通过对变换系数矩阵进行系数扫描,确定各个变换系数对应的扫描编号,从而根据扫描编号,对变换系数进行划分,使得对应不同频域范围的变换系数对应不同的量化系数位宽,实现了在节省量化带宽的同时,减少了量化失真,提高了量化精度,优化了视频编码效率。

在一些实施例中,为了提高视频解码的效率,视频解码端在进行反量化处理的过程中,也需要根据各个量化系数对应的系数位宽进行反量化处理,而考虑到视频编解码过程中,视频编码端和视频解码端之间可能采用不同的编解码协议,比如,在采用隐式编解码协议的情况下,各个变换系数对应的量化系数位宽为由编码端和解码端在进行编解码之前预先约定的;在采用显式编解码协议的情况下,各个变换系数对应的量化系数位宽则需要编码端通过视频帧对应的参数集进行数据传输。

在一种可能的实施方式中,在采用隐式编解码协议的情况下,变换系数矩阵中各个变换系数对应的量化系数位宽由视频编码端和视频解码端通过隐式编解码协议约定。

在另一种可能的实施方式中,在视频编码端确定变换系数矩阵中各个变换系数对应的量化系数位宽之后,视频编码端将各个变换系数对应的量化系数位宽写入视频帧参数集中,从而由视频解码端在反量化处理过程中根据视频帧参数集获取量化系数矩阵中各个量化系数对应的量化系数位宽。

可选的,量化系数位宽的写入方式可以包括写入量化系数位宽,或写入量化系数位宽与参数集默认位宽的位宽差值,或写入经过编码压缩的位宽差值中的至少一种。

在一种可能的实施方式中,视频编码端可以直接将各个变换系数对应的量化系数位宽按照扫描方式确定的扫描编号顺序写入参数集,比如,在参数集中用句法元素num_delta_bits_quant_coeff指明。

在另一种可能的实施方式中,在采用SPS(Sequence Parameter Set,序列参数集)/PPS(Picture Parameter Set,图像参数集)传递相应语法元素的情况下,视频编码端还可以用句法元素num_delta_bits_quant_coeff指明各个变换系数对应的量化系数位宽与参数集中默认位宽的位宽差值。

在一种可能的实施方式中,为了提高数据传输效率,视频编码端还可以对位宽进行编码,比如,采用预测编码或者差分编码等方式,对各个变换系数对应的系数位宽进行编码。

在一种可能的实施方式中,考虑到数据传输过程中可能出现某个变换系数对应的量化系数位宽未能通过句法元素传递,因此为了提高视频解码端的解码效率,视频解码端还可以根据参数集中的默认位宽进行反量化处理。

上述各实施例主要阐述应用于视频编码的量化方法,相应的,本申请实施例通过下述实施例阐述应用于视频解码的反量化方法。

请参考图7,其示出了本申请一个示例性实施例提供的应用于视频解码的反量化方法的流程图,本实施例以该方法用于视频解码端为例进行说明,该方法包括如下步骤:

步骤701,基于视频帧对应的视频码流,确定视频帧中尺寸块对应的量化系数矩阵,量化系数矩阵包含尺寸块中不同频域位置对应的量化系数。

在一些实施例中,视频帧在经过视频编码处理后即转换为对应的视频码流,从而解码端则需要通过对视频码流进行熵解码、反量化、反变换以及预测,进而才能得到各个视频帧。

在一种可能的实施方式中,解码端可以通过对视频码流进行熵解码,得到视频帧中各个尺寸块对应的量化系数矩阵,该量化系数矩阵中即包含尺寸块中不同频域位置对应的量化系数。

步骤702,基于量化系数矩阵中各个量化系数对应的量化系数位宽,对量化系数矩阵进行反量化处理,得到视频帧中尺寸块对应的变换系数矩阵。

不同于相关技术中,在得到尺寸块对应的量化系数矩阵之后,解码端直接根据反量化参数,对量化系数矩阵进行反量化处理,本申请实施例中,对应于视频编码端基于量化系数位宽进行量化处理的过程,解码端也同样需要根据量化系数矩阵中各个量化系数对应的量化系数位宽,对量化系数矩阵进行反量化处理,从而得到视频帧中尺寸块对应的变化系数矩阵。

在一种可能的实施方式中,在得到尺寸块对应的量化系数矩阵后,解码端基于各个量化系数对应的量化系数位宽,对量化系数进行调整,进而根据量化步长,对量化系数进行反量化处理,从而得到尺寸块对应的变换系数矩阵。

综上所述,本申请实施例中,在视频解码过程中,确定出各个尺寸块对应的量化系数矩阵之后,并不是直接根据量化参数,对量化系数矩阵进行反量化处理,而是与视频编码过程对应,结合量化系数矩阵中各个量化系数对应的量化系数位宽,对量化系数矩阵进行反量化处理,提高了视频解码过程中反量化处理的准确性,提高了视频编解码效率。

在一些实施例中,考虑到视频编解码过程中,视频编码端和视频解码端之间可能采用不同的编解码协议,比如,在采用隐式编解码协议的情况下,各个量化系数对应的量化系数位宽为由编码端和解码端在进行编解码之前预先约定的;在采用显式编解码协议的情况下,各个量化系数对应的量化系数位宽则需要解码端根据编码端传输的视频帧对应的参数集获取。

在一种可能的实施方式中,在采用隐式编解码协议的情况下,解码端从隐式编解码协议中获取量化系数矩阵中各个量化系数对应的量化系数位宽;在采用显式编解码协议的情况下,解码端可以基于视频帧参数集,确定量化系数矩阵中各个量化系数对应的量化系数位宽。

在一种可能的实施方式中,在编码端在参数集中直接利用句法元素num_delta_bits_quant_coeff指明各个量化系数对应的量化系数位宽的情况下,解码端直接获取各个量化系数对应的量化系数位宽。

在另一种可能的实施方式中,在编码端在参数集中利用句法元素num_delta_bits_quant_coeff指明各个量化系数对应的量化系数位宽与参数集中默认位宽的位宽差值的情况下,解码端则需要根据参数集默认位宽以及位宽差值,计算各个量化系数对应的量化系数位宽。

在一种可能的实施方式中,在编码端对量化系数位宽进行预测编码或者差分编码之后再传输的情况下,解码端则需要通过对应的解码方式确定各个量化系数对应的量化系数位宽。

在一种可能的实施方式中,考虑到数据传输过程中可能出现某个量化系数对应的量化系数位宽未能通过句法元素传递,因此为了提高视频解码端的解码效率,视频解码端还可以根据参数集中的默认位宽进行反量化处理。

请参考图8,其示出了本申请另一个实施例提供的视频编解码的流程示意图。示意性的,如图8所示,首先,在确定图像帧801的情况下,视频编码器对图像帧801进行划分,得到4个编码块802,进而通过对各个编码块802进行预测编码,得到对应的预测块803,进一步的,通过利用编码块802减去每个预测块803即可以得到一个个残差块804,从而通过对残差块804进行DCT变换,即可以得到经过DCT变换后的尺寸块805。

在基于编码标准H.266进行量化的情况下,可以得到量化后的尺寸块806,从图8可知,量化后的尺寸块806中由于各个系数的位宽均为16bit,因此存在除直流分量系数以外的其他交流分量系数也不为0,且量化后的尺寸块806中各个量化系数经过熵编码都存在16bit的位宽占用。

在采用本申请实施例提供的方案,基于各个变换系数所处频域位置确定量化系数位宽的情况下,比如,DC系数对应的量化系数位宽为16bit,其他AC系数对应的量化系数位宽为0bit,从而可以得到量化后的尺寸块807,从图8可知,仅(0,0)位置的量化系数不为0,其他频域位置由于量化系数位宽为0bit,因此在经过熵编码的情况下,视频编码器可以仅对(0,0)位置的量化系数进行编码,而不需要对其他频域位置的系数进行编码,从而解码端可以直接根据确定的各个量化系数对应的量化系数位宽,确定出其他频域位置的量化系数为0,从而减少了视频编解码过程中的量化位宽占用率。

请参考图9,其示出了本申请一个示例性实施例提供的应用于视频编码的量化装置的结构框图,该装置包括:

第一确定模块901,用于确定视频帧中尺寸块对应的变换系数矩阵,所述变换系数矩阵包含所述尺寸块中不同频域位置对应的变换系数,所述尺寸块通过对所述视频帧划分并经过频域变换得到;

第二确定模块902,用于基于所述变换系数矩阵中各个变换系数所处的频域位置,确定各个变换系数对应的量化系数位宽,其中,处于低频范围内的所述变换系数对应的量化系数位宽大于处于高频范围内的所述变换系数对应的量化系数位宽;

量化模块903,用于基于各个变换系数对应的量化系数位宽,对所述变换系数矩阵进行量化处理,得到所述视频帧中所述尺寸块对应的量化系数矩阵。

可选的,所述第二确定模块902,包括:

编号确定单元,用于基于扫描方式确定所述尺寸块对应的所述变换系数矩阵中各个变换系数对应的扫描编号;

位宽确定单元,用于基于所述扫描编号,确定所述变换系数矩阵中各个变换系数对应的量化系数位宽。

可选的,所述编号确定单元,用于:

确定所述变换系数矩阵中的直流分量系数,所述直流分量系数对应的频域范围低于其他变换系数对应的频域范围;

以所述直流分量系数所处的频域位置为起始点,对所述变换系数矩阵进行扫描;

基于所述扫描方式以及扫描顺序,确定所述变换系数矩阵中各个变换系数对应的扫描编号,其中,扫描方式为对角扫描、水平扫描和垂直扫描中的一种。

可选的,所述位宽确定单元,用于:

在所述扫描编号小于第一编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第一系数位宽;

在所述扫描编号不小于所述第一编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第二系数位宽,所述第二系数位宽不同于所述第一系数位宽。

可选的,所述第一系数位宽为编码标准中规定的标准位宽,所述第二系数位宽为小于所述标准位宽的其他系数位宽。

可选的,所述位宽确定单元,还用于:

确定至少两个编号阈值,且第i编号阈值小于第i+1编号阈值;

在所述扫描编号小于第一编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第一系数位宽;

在所述扫描编号不小于所述第i编号阈值且小于所述第i+1编号阈值的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第i+1系数位宽,所述第i+1系数位宽小于第i系数位宽。

可选的,所述位宽确定单元,还用于:

确定至少一个编号集合,所述编号集合中包括至少一个预设扫描编号,且不同编号集合对应不同量化系数位宽;

在所述扫描编号属于第i编号集合的情况下,将所述扫描编号对应的变换系数的所述量化系数位宽确定为第i系数位宽。

可选的,所述装置还包括:

获取模块,用于在对变换系数进行符号位隐藏处理的情况下,获取符号位隐藏处理过程中的系数调整值;

第三确定模块,用于基于所述变换系数对应的量化系数位宽以及所述系数调整值,确定各个变换系数对应的量化系数范围;

所述量化模块903,用于:

基于各个变换系数对应的量化系数位宽以及所述量化系数范围,对所述变换系数矩阵进行量化处理,得到所述视频帧中所述尺寸块对应的所述量化系数矩阵。

可选的,在采用隐式编解码协议的情况下,所述变换系数矩阵中各个变换系数对应的量化系数位宽由视频编码端和视频解码端通过所述隐式编解码协议约定。

可选的,所述装置还包括:

写入模块,用于在得到所述变换系数矩阵中各个变换系数对应的量化系数位宽之后,将各个变换系数对应的量化系数位宽写入视频帧参数集中,由视频解码端基于所述视频帧参数集获取所述量化系数矩阵中各个量化系数对应的量化系数位宽;其中,写入方式包括写入所述量化系数位宽,或写入所述量化系数位宽与参数集默认位宽的位宽差值,或写入经过编码压缩的所述位宽差值中的至少一种。

综上所述,本申请实施例中,在进行视频编码过程中,确定出视频帧中各个尺寸块对应的变换系数矩阵之后,并不是根据编码标准中的标准量化系数位宽对变换系数矩阵进行量化处理,而是根据变换系数矩阵中各个变换系数所处的频域位置,确定出各个变换系数对应的量化系数位宽,使得处于低频范围内的变换系数对应的量化系数位宽大于处于高频范围内的变换系数对应的量化系数位宽,进而再根据各个变换系数对应的量化系数位宽,对变换系数矩阵进行量化处理,得到视频帧中各个尺寸块对应的量化系数矩阵;采用本申请实施例提供的方案,能够在视频编解码过程中,减少低频区域量化失真的同时,优化量化位宽的占用率,提高视频编解码效率。

请参考图10,其示出了本申请一个示例性实施例提供的应用于视频解码的反量化装置的结构框图,该装置包括:

第一确定模块1001,用于基于视频帧对应的视频码流,确定所述视频帧中尺寸块对应的量化系数矩阵,所述量化系数矩阵包含所述尺寸块中不同频域位置对应的量化系数;

反量化模块1002,用于基于所述量化系数矩阵中各个量化系数对应的量化系数位宽,对所述量化系数矩阵进行反量化处理,得到所述视频帧中所述尺寸块对应的变换系数矩阵。

可选的,所述基于所述量化系数矩阵中各个量化系数对应的量化系数位宽,对所述量化系数矩阵进行反量化处理,得到所述视频帧中所述尺寸块对应的变换系数矩阵之前,所述装置还包括:

位宽获取模块,用于在采用隐式编解码协议的情况下,从所述隐式编解码协议中获取所述量化系数矩阵中各个量化系数对应的所述量化系数位宽;

位宽确定模块,用于在采用显式编解码协议的情况下,基于视频帧参数集,确定所述量化系数矩阵中各个量化系数对应的所述量化系数位宽。

综上所述,本申请实施例中,在视频解码过程中,确定出各个尺寸块对应的量化系数矩阵之后,并不是直接根据量化参数,对量化系数矩阵进行反量化处理,而是与视频编码过程对应,结合量化系数矩阵中各个量化系数对应的量化系数位宽,对量化系数矩阵进行反量化处理,提高了视频解码过程中反量化处理的准确性,提高了视频编解码效率。

需要说明的是:上述实施例提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其实现过程详见方法实施例,这里不再赘述。

需要说明的是,上述各实施例均以应用于视频编码端和视频解码端为例进行说明。可选的,编码端和解码端可以为软件视频编解码器,也可以为硬件视频编解码器。

本申请实施例提供了一种视频编码器,该视频编码器中包括集成电路,该集成电路用于实现如上述实施例所述的应用于视频编码的量化方法。

本申请实施例提供了一种视频解码器,该视频解码器中包括集成电路,该集成电路用于实现如上述实施例所述的应用于视频解码的反量化方法。

可选的,在上述实施例通过软件视频编解码器实现的情况下,该软件视频编解码器可以为计算机设备中的处理器。

请参考图11,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1100包括中央处理单元(Central Processing Unit,CPU)1101、包括随机存取存储器1102和只读存储器1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。所述计算机设备1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。

所述基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中所述显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。所述基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,所述大容量存储设备1107可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。

存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1101执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1101执行该一个或多个程序实现上述各个方法实施例提供的方法。

根据本申请的各种实施例,所述计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1100可以通过连接在所述系统总线1105上的网络接口单元1112连接到网络1111,或者说,也可以使用网络接口单元1112来连接到其他类型的网络或远程计算机系统(未示出)。

本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述实施例所述的应用于视频编码的量化方法,或,如上述实施例所述的应用于视频解码的反量化方法。

可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(SSD,Solid StateDrives)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。

本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例所述的应用于视频编码的量化方法,或,如上述实施例所述的应用于视频解码的反量化方法。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 电子设备用量化参数调节装置及其用量化参数显示装置
  • 带宽压缩量化及反量化方法
  • 数据的量化装置及量化方法
  • 一种神经网络权重量化方法和神经网络权重量化装置
  • 用于视频编解码中的量化和反量化设计的方法和设备
  • 反量化反变换方法及装置、HEVC解码方法及设备
技术分类

06120116483452