一种多媒体的反量化处理方法、装置、设备及存储介质与流程

文档序号:25731045发布日期:2021-07-02 21:19阅读:203来源:国知局
一种多媒体的反量化处理方法、装置、设备及存储介质与流程

本申请涉及计算机技术领域,尤其涉及多媒体编解码技术领域,具体涉及一种多媒体的反量化处理方法、一种多媒体的反量化装置、一种多媒体的反量化设备及一种计算机可读存储介质。



背景技术:

量化是多媒体数据(例如视频、音频、图像等)编码技术的核心过程,依赖性标量量化(dependentquantization,dq)是多媒体数据编码技术中采用的一种量化方式,依赖性标量量化是指将量化过程与量化状态的转移过程相结合的量化技术。而如何能够灵活地实现量化状态的转移,一直是依赖性标量量化的一个研究热点。



技术实现要素:

本申请实施例公开了一种多媒体的反量化处理方法、装置、设备及计算机可读存储介质,能够在多媒体的反量化处理过程中,灵活、高效地实现量化状态的转移更新。

一方面,本申请实施例提出一种多媒体的反量化处理方法,该方法包括:

获取变换块中的第一量化区域的n个历史量化系数和h个历史量化状态,n、h均为正整数;

获取该n个历史量化系数的统计值;

根据统计值及h个历史量化状态,更新第一量化区域的量化状态。

一方面,本申请实施例提出一种多媒体的反量化处理装置,该装置包括:

获取单元,用于获取变换块中的第一量化区域的n个历史量化系数和h个历史量化状态,n、h均为正整数;以及,获取n个历史量化系数的统计值;

处理单元,用于根据统计值及h个历史量化状态,更新第一量化区域的量化状态。

一种实施方式中,反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,并且一个量化器对应一个反量化计算公式;处理单元还用于:

获取第一量化区域中的当前的量化系数yi及量化系数yi对应的量化状态si,i为正整数;该当前的量化系数yi是指当前被扫描且等待被执行反量化处理的量化系数yi;

根据量化状态si确定对量化系数yi进行反量化处理的目标量化器;

采用目标量化器对应的反量化计算公式,重构得到量化系数yi对应的重构数值x′i。

一种实施方式中,n个量化器包含第一量化器和第二量化器;若目标量化器为第一量化器,则对应的反量化计算公式为:x′i=2·yi·δ,δ表示量化步长;

若目标量化器为第二量化器且包含yi=0的情况,则对应的反量化计算公式为:x′i=((2·yi-sgn(yi))·δ;其中,或者对应的反量化计算公式为其中,c为任意数值;

若目标量化器为第二量化器且不包含yi=0的情况,则对应的反量化计算公式为x′i=((2·yi-sgn(yi))·δ;其中,

一种实施方式中,第一量化区域共包含s个量化系数,s为正整数;s个量化系数按照扫描顺序依次被扫描并被执行反量化处理;n个历史量化系数是指量已被扫描的任意n个量化系数,n为正整数且n≤s;

n个量化器共对应h个量化状态,h为正整数;h个历史量化状态是指n个历史量化系数对应的n个历史量化状态中的任意h个,h≤n且h≤h。

一种实施方式中,量化系数按照系数值分为以下类型:偶数系数、奇数系数、零系数、非零偶数系数和非零系数;

统计值包括以下至少一项:n个历史量化系数的系数值;n个历史量化系数中任一类型系数的系数值;n个历史量化系数的总数量;n个历史量化系数中任一类型的系数总量;n个历史量化系数中任一类型的系数总量与任意数值之间的和;n个历史量化系数的系数值之和;n个历史量化系数的绝对值之和;n个历史量化系数中任一类型系数的系数值之和;n个历史量化系数中任一类型系数的绝对值之和;n个历史量化系数的映射值之和;n个历史量化系数中任一类型系数的映射值之和;n个历史量化系数中任一类型系数的映射值的绝对值之和;n个历史量化系数的系数值之差;n个历史量化系数的绝对值之差;n个历史量化系数中任一类型系数的系数值之差;以及,n个历史量化系数中任一类型系数的绝对值之差。

一种实施方式中,第一量化区域中的当前的量化系数为yi,量化系数yi对应的量化状态为si;反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数;反量化处理过程中按照状态转移表中定义的状态转移条件在h个量化状态之间进行转移;处理单元具体用于:

对统计值进行映射转换,得到转换值;

确定转换值和h个历史量化状态所满足的状态转移条件;

根据确定的状态转移条件从状态转移表确定量化状态为si的下一量化状态si+1;

将第一量化区域的量化状态更新为量化状态si+1。

一种实施方式中,处理单元具体用于:

按照映射算法对统计值进行映射转换,得到转换值;

其中,映射算法包括以下任一种:求余算法、线性映射算法、非线性映射算法以及位运算算法;位运算算法包括以下至少一种:按位与运算、按位或运算、按位异或运算、按位取反运算、按位左移运算、按位右移运算、按位补码运算。

一种实施方式中,反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数;反量化处理过程中按照状态转移表中定义的状态转移条件在h个量化状态之间进行转移;若状态转移表的数量为两个或两个以上,则获取单元具体用于:

获取变换块中的第一量化区域的n1个历史量化系数和h1个历史量化状态,以及获取变换块中的第一量化区域的n2个历史量化系数和h2个历史量化状态,n1、n2、h1和h2均为正整数;以及,获取n1个历史量化系数的统计值m1,以及获取n2个历史量化系数的统计值m2;

处理单元具体用于:

根据统计值m1和h1个历史量化状态,选择反量化处理应使用的目标状态转移表;并根据统计值m2、h2个历史量化状态以及选择的目标状态转移表,更新第一量化区域的量化状态。

一种实施方式中,处理单元还用于在变换块中确定第一量化区域;第一量化区域是指变换块中需要被执行依赖性标量量化的反量化处理的区域。

一种实施方式中,处理单元具体用于:

在变换块中定位srcc(scanregioncoefficientcoding,扫描区域系数编码)区域;

若srcc区域满足依赖性标量量化条件,则在srcc区域中确定第一量化区域。

一种实施方式中,变换块的宽度为w,高度为h;srcc区域的宽度为srx,高度为sry;

srcc区域满足依赖性标量量化条件包括:srx≥kx,或者sry≥ky,或者srx≥kx且sry≥ky;其中kx表示长度阈值,ky表示宽度阈值,0≤kx≤w,0≤ky≤h。

一种实施方式中,处理单元还用于:

若srcc区域不满足依赖性标量量化条件,则对srcc区域内的量化系数执行独立量化的反量化处理;

srcc区域不满足依赖性标量量化条件包括:srx<kx,或者sry<ky,或者srx<kx且sry<ky。

一种实施方式中,srcc区域的宽度为srx,高度为sry;处理单元具体用于:

在srcc区域中任意选取一个区域;

若所选取的区域满足依赖性标量量化的执行条件,则将所选取的区域确定为第一量化区域。

一种实施方式中,所选取的区域的宽度为x,高度为y;所选取的区域满足依赖性标量量化的执行条件,包括以下任一种情况:

x≠srx且y≠sry;

x<(srx–a)且y<(sry-b);

x<(srx-a);

y<(sry-b);其中,a、b均为非负整数。

一种实施方式中,处理单元具体用于:

若所选取的区域不满足依赖性标量量化的执行条件,则将所选取的区域确定为第二量化区域;以及,

对第二量化区域内的量化系数执行独立量化的反量化处理;

其中,所选取的区域不满足依赖性标量量化的执行条件,包括:x=srx,或者y=sry,或者x>(srx-a),或者y>(sry-b),或者x>(srx-a)且y>(sry-b)。

一种实施方式中,依赖性标量量化的反量化处理采用的量化步长与独立量化的反量化处理采用的量化步长相同;或者,依赖性标量量化的反量化处理采用的量化步长与独立量化的反量化处理采用的量化步长不同。

一方面,本申请实施例提出一种多媒体的反量化处理设备,该设备包括:

处理器,适于执行计算机程序;

计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述的多媒体的反量化处理方法。

一方面,本申请实施例提出一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述的多媒体的反量化处理方法。

一方面,本申请实施例提出一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取计算机指令,处理器执行该计算机指令,使得计算机设备执行上述的多媒体的反量化处理方法。

本申请实施例提出了一种灵活通用的依赖性标量量化的反量化处理框架,在反量化处理过程中,可在变换块中需要进行依赖性标量量化的反量化处理的区域中,灵活选取此区域内的n个历史量化系数和h个历史量化状态,n、h均为正整数;并且可根据该n个历史量化系数的统计值和h个历史量化状态来灵活设计状态转移规则,使得量化状态可以根据规则自动转移,从而灵活、高效地实现了量化状态的更新,有效提升反量化过程的效率及智能性。

附图说明

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

图1示出了本申请一个示例性实施例提供的反量化处理流程的示意图;

图2示出了本申请一个示例性实施例提供的变换块的结构示意图;

图3a和图3b示出了本申请一个示例性实施例提供的变换块中的srcc区域的示意图;

图4示出了本申请一个示例性实施例提供的采用两个量化器(q0和q1)执行反量化处理时的量化规则的一个示意图;

图5示出了本申请一个示例性实施例提供的状态转移的一个示意图;

图6示出了本申请一个示例性实施例提供的采用两个量化器(q0和q1)执行反量化处理时的量化规则的另一示意图;

图7示出了本申请一个示例性实施例提供的状态转移的另一个示意图;

图8示出了本申请一个示例性实施例提供的在变换块中确定第一量化区域的流程示意图;

图9示出了本申请另一个示例性实施例提供的变换块的结构示意图;

图10示出了本申请一个示例性实施例提供的反量化处理的流程示意图;

图11示出了本申请一个示例性实施例提供的一种多媒体的反量化处理装置的结构示意图;

图12示出了本申请一个示例性实施例提供的一种多媒体的反量化处理设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面将对本申请实施例涉及的相关技术术语进行详细说明:

一、量化:

多媒体数据(例如可以是视频、音频、图像等等)中往往存在大量的冗余信息,因此在对多媒体数据进行传输之前,往往需要对多媒体数据进行编码,去除多媒体数据在空间、时间等维度上的冗余信息,以提升多媒体数据的传输效率。量化是多媒体数据编码技术的核心过程,也是多媒体数据生产技术的核心过程,提高量化效率能够为多媒体数据的编码任务带来较大的性能增益。在数字信号处理领域,所谓量化是指将信号的连续取值(或者大量可能的离散取值)近似为有限多个(或较少的)离散值的过程。量化可以分为编码侧的量化和解码侧的量化,其中,解码侧的量化称为反量化。

下面对量化过程进行简单介绍:

图1示出了本申请一个示例性实施例提供的量化流程的示意图;如图1所示,量化流程包含编码侧的量化过程和解码侧的反量化过程:

(1)在编码侧的量化过程:

编码设备可以采用诸如键值生成器(keygenerator)等工具对源序列中的每个源数值进行量化处理,得到该源序列中的每个源数值对应的量化系数。此处,源序列是编码设备对多媒体数据进行采样得到的序列,该源序列中包含多个源数值。量化系数可称为键值或量化值。经编码设备采样、量化等处理之后,多媒体数据被变换成一个一个的变换块。图2示出了本申请一个示例性实施例提供的变换块的结构示意图;图2中每个小方格中的数值(如0,1)是经编码设备量化处理得到的量化系数的系数值;参见图2可知,一个变换块是由许多的量化系数组成的系数块,该变换块的形状可以呈现图2所示的方形状,当然变换块的形状也可以是非方形状、不规则形状等等,并且,多媒体数据变换得到的多个变换块中,各个变换块的形状可以是相同的,也可以是不同的;各个变换块的面积、宽高比等均可以是相同或不同的,本申请实施例并不对此进行限定。进一步,编码设备将这一个一个的变换块经压缩形成数据包后发送至解码设备。

(2)在解码侧的反量化过程:

解码设备接收到编码设备发送的数据包后,对其进行解压缩即可得到一个一个的变换块(变换块的结构示例可参见图2);解码设备可以是采用输入重构器(inputreconstructor)分别对变换块中的量化系数进行反量化处理,以重构出每个量化系数对应的重构数值。这些重构数值按序组成重构序列,进一步,解码设备就可以根据重构序列还原出多媒体数据。

以视频点播场景为例,在视频点播场景中,编码设备可以是向视频点播应用程序提供视频点播服务的服务器,解码设备可以是运行有视频点播应用程序的智能终端,多媒体数据可以是点播视频。在编码侧:①当智能终端向服务器发起视频点播请求时,服务器可以获取智能终端所请求的点播视频,并从点播视频中采样得到源序列;②服务器可以对源序列中的每个源数值进行量化处理,得到量化系数序列,多个量化系数组成一个变换块;③服务器可以将量化处理得到的一个一个的变换块进行压缩得到点播视频的数据包之后发送至智能终端。在解码侧:④智能终端接收到点播视频的数据包后,可以对点播视频的数据包进行解压缩,得到一个一个的变换块;⑤智能终端可以对变换块中的量化系数进行反量化处理,得到每个量化系数对应的重构数值,这些重构数值按序组成重构序列;⑥智能终端可以根据重构序列还原并播放点播视频。

以视频会话场景为例,在视频会话场景中,第一智能终端和第二智能终端是参与视频会话的两个智能终端,以第一智能终端向第二智能终端发起视频会话为例,第一智能终端可以是编码设备,第二智能终端可以是解码设备,多媒体数据可以是会话视频。在编码侧:①第一智能终端设备采集会话视频,并从会话视频中采样得到源序列;②第一智能终端可以对源序列中的每个源数值进行量化处理,得到量化系数序列,多个量化系数组成一个变换块;③第一智能终端将量化处理得到的一个一个的变换块进行压缩得到会话视频的数据包之后发送至第二智能终端。在解码侧:④第二智能终端接收到会话视频的数据包后,可以对会话视频的数据包进行解压缩,得到一个一个的变换块;⑤第二智能终端可以对变换块中的量化系数进行反量化处理,得到每个量化系数对应的重构数值,这些重构数值按序组成重构序列;⑥第二智能终端可以根据重构序列还原并播放会话视频,这样就实现了第一智能终端与第二智能终端之间的视频会话。本申请实施例重点关注于解码侧的反量化过程。

二、扫描区域系数编码(scanregioncoefficientcoding,srcc):

多媒体数据经过编码设备量化处理后会得到一个一个的变换块,每个变换块由多个量化系数组成。如图2所示,在变换块中,低频的量化系数(即非零系数)大概率集中在变换块的左上方区域,而高频的量化系数(即零系数)则集中在变换块的右下方区域。针对变换块的这样的系数分布特性,在解码侧引入了srcc技术。srcc技术是确定一个变换块中的量化区域的技术,此处的量化区域是指需要被执行反量化处理的区域,该量化区域在下文中可称为srcc区域。图3a和图3b示出了本申请一个示例性实施例提供的变换块中的srcc区域的示意图;如图3a-图3b所示,对于一个w*h的变换块,此处w为变换块的宽度,h为变换块的高度;该变换块中包含非零系数的左上方区域将被标记为srcc区域,该srcc区域的宽度为srx,高度为sry,并且1<=srx<=w,1<=sry<=h。srcc区域内的量化系数均需被执行反量化处理,而该变换块中除该srcc区域之外的其他区域内的量化系数均为0,故这些其他区域无需被执行反量化处理。由srcc区域内的量化系数组成的系数矩阵中,srx是指系数矩阵中在水平方向上处于最右面的非零系数对应的横坐标,sry是系数矩阵中在垂直方向上处于最下面的非零系数对应的纵坐标。变换块中只有由(srx,sry)确定的srcc区域内的量化系数需要被扫描并进行反量化处理,扫描顺序是从该srcc区域的右下角至左上角的反向z字型扫描,如图3b所示,srcc区域内的量化系数沿箭头所示的扫描顺序依次被扫描并进行反量化处理。

三、依赖性标量量化(dependentquantization,dq)及独立量化的概念:

本申请实施例中,依赖性标量量化是指当前的量化系数被执行反量化处理得到重构数值的过程依赖于历史量化系数的系数值;所谓当前的量化系数是指当前被扫描且等待被执行反量化处理的量化系数,所谓历史量化系数是指已被扫描的量化系数。举例来说,srcc区域中当前的量化系数为yi,i为正整数;当前的量化系数yi是指当前被扫描且等待被执行反量化处理的量化系数yi,例如按照图3b所示的箭头指示的扫描顺序,srcc区域中最下面一行最左边一格的量化系数0当前被扫描,那么当前的量化系数yi就是该量化系数0。对量化系数yi进行依赖性标量量化的反量化处理得到对应的重构数值x′i的过程中,需要依赖已被扫描的历史量化系数的系数值,例如量化系数yi、量化系数yi-1.....。此处需要说明的是,历史量化系数是指已被扫描的量化系数,当前的量化系数yi也已被扫描,所以历史量化系数是包含当前的量化系数yi的,即历史量化系数包含当前被扫描的量化系数yi及在量化系数yi之前已被扫描的量化系数。独立量化则与依赖性标量量化相反,即当前的量化系数被执行反量化处理得到重构数值的过程只依赖于该当前的量化系数自身的系数值,并不依赖于历史量化系数的系数值;上述例子中,对当前的量化系数yi进行独立量化的反量化处理得到对应的重构数值x′i的过程中,只依赖于量化系数yi本身的系数值。本申请实施例重点关注依赖性标量量化的反量化处理过程,除特别说明外,本申请后续实施例提及的反量化处理均指依赖性标量量化的反量化处理。

本申请实施例中,反量化处理过程由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数。以n=2、h=4为例,即反量化处理可以由两个量化器来执行,分别是量化器q0和量化器q1;两个量化器共对应四个量化状态,分别是量化状态a、量化状态b、量化状态c和量化状态d。举例来说,量化器q0可与量化状态a和量化状态b相对应,量化器q1可与量化状态c和量化状态d相对应;上述量化器与量化状态之间的对应关系仅为举例,其他对应情况也成立,例如量化器q0只与量化状态a相对应,或者,量化器q0与量化状态a和量化状态c相对应,而量化器q1与量化状态b和量化状态d相对应,等等;本申请并不对此进行限定。在反量化处理过程中,当更新某个量化状态后,就选择与该确定的量化状态相对应的量化器来执行量化,按照上述举例:若更新量化状态为量化状态a,那么就选择量化器q0来执行反量化处理。

图4示出了本申请一个示例性实施例提供的采用两个量化器(q0和q1)执行反量化处理时的量化规则的一个示意图,如图4所示,圆圈或圆点上方的字母表示量化状态,圆圈或圆点下方的数值表示量化值;第一行的黑色圆点或黑色圆圈对应于量化器q0,第二行的灰色圆点或灰色圆圈对应于量化器q1;横坐标中的数值(例如-9、-8、0、8、9等)代表量化位置,“△”代表量化步长,任一个量化位置与量化步长的乘积表示该量化位置对应的重构数值,即任一个量化位置与量化步长的乘积表示位于该量化位置的量化系数对应的重构数值;例如量化状态a下的量化系数“-4”对应的量化位置为“-8”,那么该量化位置对应的重构数值为“-8△”。

设当前的量化系数为yi,i为正整数;该量化系数yi对应的量化状态表示为si,即采用量化状态为si对应的量化器对量化系数yi执行反量化处理。表1示出了四个量化状态之间的状态转移表,表1示出了基于前一历史量化系数yi的奇偶性进行状态转移的规则,如下:

表1:基于前一个历史量化系数yi的奇偶性的状态转移表

上述表1中,由于当前的量化系数为yi,前一历史量化系数是指距离当前的量化系数yi最近被扫描的量化系数,那么前一历史量化系数是当前的量化系数yi本身。如上述表1所示,状态转移是指从第一量化状态转移至第二量化状态的过程;第二量化状态是第一量化状态的下一个量化状态,第一量化状态是第二量化状态的上一个量化状态,即第二量化状态的出现时刻晚于第一量化状态的出现时刻。表1中,第二量化状态是根据第一量化状态和第一量化状态下的量化系数yi的奇偶性确定得到的,(yi&1)==1成立,表示第一量化状态下的量化系数yi的系数值为奇数,(yi&1)==0成立则表示第一量化状态下的量化系数yi-1的系数值为偶数。

表1中定义了量化状态之间的状态转移条件,例如:量化状态a转移至量化状态a的状态转移条件是:第一量化状态为量化状态a,并且(yi&1)==0成立;再如:量化状态a转移至量化状态c的状态转移条件为:第一量化状态为量化状态a,并且(yi&1)==1成立;以此类推。在采用量化器q0或量化器q1进行反量化处理的过程中,四个量化状态(即量化状态a、量化状态b、量化状态c和量化状态d)按照表1定义的状态转移条件进行状态转移。

图5示出了本申请一个示例性实施例提供的状态转移的一个示意图,图5中所示各个箭头用于指示状态转移的方向,箭头的起点指示第一量化状态,箭头的终点指示第二量化状态,也就是说状态转移是由第一量化状态转移至第二量化状态。需要说明的是,第一量化状态和第二量化状态可以是同一个量化状态,第一量化状态和第二量化状态也可以是不同的量化状态,例如按照上述表1,第一量化状态是量化状态a,经状态转移后,第二量化状态可以仍然是量化状态a;或者,第一量化状态是量化状态a,经状态转移后,第二量化状态是量化状态b。图5所示的状态转移过程可按照表1所示的状态转移表来实现,如表1所示,以第一量化状态是量化状态a为例,若量化状态a下的量化系数yi-1的系数值是偶数,即(yi&1)==0成立,则可以确定出第二量化状态仍然为量化状态a;若量化状态a下的量化系数yi-1的系数值为奇数,即(yi&1)==1成立,则可以确定出第二量化状态为量化状态c。

量化状态a、量化状态b、量化状态c、量化状态d的值根据实际情况进行设定,例如在一个具体实例中,假设量化器q0和量化器q1提供量化状态0,量化状态1,量化状态2及量化状态3共四个量化状态,那么上述表1和图5中,量化状态a、b、c和d与量化状态0,1,2和3之间可以有不同的对应方式,例如一种对应方式可以是:量化状态a对应量化状态0,量化状态b对应量化状态1,量化状态c对应量化状态2,量化状态d对应量化状态3。再如另一种对应方式可以是:量化状态a对应量化状态0,量化状态b对应量化状态1,量化状态c对应量化状态3,量化状态d对应量化状态2。再如另一种对应方式可以是:量化状态a对应量化状态1,量化状态b对应量化状态0,量化状态c对应量化状态2,量化状态d对应量化状态3;再如另一种对应方式可以是:量化状态a对应量化状态1,量化状态b对应量化状态0,量化状态c对应量化状态3,量化状态d对应量化状态2;等等。

四、依赖性标量量化的解码阶段(即反量化阶段):

如前述,本申请实施例中,依赖性标量量化的反量化处理过程支持由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数。一个量化器对应一个反量化计算公式。

仍然以上述表1、图4和图5所示的具体实例来进行说明:如图4所示,量化器q0的量化位置上的重构数值是偶数倍的量化步长。因此,量化器q0对应的反量化计算公式可表示如下公式(1):

x′i=2·yi·δ公式(1)

上述公式(1)中,yi表示当前的量化系数;δ为量化步长;x′i表示量化系数yi对应的重构数值。当使用量化器q0来对量化系数yi进行反量化处理时,可以采用上述公式(1)重构得到对应的重构数值x′i。

参见图4和图6,量化器q1的量化位置上的重构数值为奇数倍的量化步长。

并且,量化器q1还可以对0情况进行特殊处理,具体地:

参见图4,当使用量化器q1对量化系数yi进行反量化处理且包含yi=0的情况时,则该量化器q1对应的反量化计算公式可表示为如下公式(2):

x′i=((2·yi-sgn(yi))·δ公式(2)

上述公式(2)中,sgn(yi)的定义如下公式(3):

或者对应的反量化计算公式也可以为如下公式(4):

上述公式(4)中,sgn(yi)的定义变更为如下公式(5),c为任意数值,当c不为0时,量化器q1的重构数值则不含0值。

参见图6,当使用量化器q1对量化系数yi进行反量化处理且不包含yi=0的情况时,则该量化器q1对应的反量化计算公式为上述公式(2),但是,sgn(yi)的定义变更为如下公式(5):

其中,量化器q1包含yi=0的情况是指由量化器q1执行反量化处理的量化系数中存在零量化系数(即系数值为0的量化系数)的情况;例如图4所示示例中,量化器q0和q1均包含零量化系数。相反,量化器q1不包含yi=0的情况是指由量化器q1执行反量化处理的量化系数中不存在零量化系数的情况,例如图6所示示例中,量化器q0包含零量化系数,但量化器q1不包含零量化系数。

下面结合图3b以及表1、图4和图5所示的具体实例来详细说明反量化处理流程。

假设图3b所示的一个变换块中需要被执行依赖性标量量化的区域内共包含y1,y2,…,yi,…,ys(s≥1)共s个量化系数,该s个量化系数均需要被执行依赖性标量量化,且该s个量化系数按照扫描顺序形成量化系数序列y。设量化状态初始化为s1,该量化状态s1可以是量化状态a、量化状态b、量化状态c和量化状态d中的任一个。对于量化系数序列y中的当前的量化系数yi(i为正整数且i≤s),可以根据该量化系数yi对应的量化状态si,确定对量化系数yi进行依赖性标量量化的量化器,并根据确定得到的量化器确定量化系数yi的量化位置,再根据量化系数yi的量化位置和量化步长δ,重构得到量化系数yi对应的重构数值x′1;此处,也可以按照确定的量化器对应的反量化计算公式,计算得到重构数值x′1。按照表1所示的状态转移表,可以根据量化系数yi的奇偶性以及量化状态si,更新下一量化状态为si+1。以此类推,可以对量化系数序列y中的每一个量化值y1,y2,…,yi,…,ys均采用相同的量化方式进行处理,得到量化系数序列y对应的重构序列x′,重构序列x′包括各量化系数分别对应的重构数值x′1,x′2,…,x′i…,x′s(s≥1)共s个重构数值。

例如,假设量化系数序列y包含1、2、2共3个量化系数,量化状态a对应为量化状态0,量化状态b对应为量化状态1,量化状态c对应为量化状态2,量化状态d对应为量化状态3。量化状态初始化为s1=0,即量化状态s1是量化状态0。对于y1=1,根据图4确定使用量化器q0,利用公式(1)得到重构数值x′1=2·y1·δ=2·δ,利用表1根据量化系数y1=1的奇偶性(即(y1&1)==1成立)和量化状态s1=0,更新量化状态为s2=2;即从量化状态0转移至量化状态2。对于量化系数y2=2,根据量化状态s2=2确定使用量化器q1,依据上述公式(2)得到重构数值x′2=(2·y2-sgn(y2))·δ=3·δ,利用表1根据量化系数y2=2的奇偶性(即(y2&1)==0成立)和量化状态s2=2,更新量化状态为s3=1;即从量化状态2转移至量化状态1。对于量化系数y3=2,根据量化状态s3=1确定使用量化器q0,利用公式(1)得到重构数值x′1=2·y3·δ=4·δ。最终得到重构序列{x′1,x′2,x′3}为{2δ,3δ,4δ}。

上述的表1、图4和图5所示实例仅为举例,本申请实施例的适用范围并不仅限于此。需要特别说明的是,本申请实施例可利用一个或多个历史量化系数的统计值及一个或多个历史量化状态来设计更为灵活多样的状态转移的规则,适用于更丰富的依赖性标量量化场景。本申请实施例的适用范围可包括如下:

1、量化器设置:

本申请实施例中,反量化处理支持由n个量化器执行,n为大于1的整数;例如图4实施例中n=2,即量化器包含两个,分别为量化器q0和量化器q1;实际应用中n的取值还可以大于2,即采用两个以上量化器来执行反量化处理。

另外,量化器q1的反量化计算公式包括公式(2)或(4),量化器q1对零量化系数(即系数值为0的量化系数)的情况特殊处理;此处,零量化系数被执行反量化处理后得到零重构数值(即值为0的重构数值)。图4所示实例中,量化器q0和量化器q1均包含零量化系数。实际应用中,n个量化器中可以全部为包含零重构数值的量化器,也可以其中一部分包含零重构数值,另一部分不包含零重构数值。以n=2为例,图6示出了本申请一个示例性实施例提供的采用两个量化器(q0和q1)执行反量化处理时的量化规则的另一示意图;如图6所示,量化器q0包含零量化系数(或零重构数值),而量化器q1则不含零量化系数(或不含零重构数值)。其中,不包含零重构数值的量化器既可以不需要编码significantiflag,也可以编码significantflag。

2、量化状态与量化器之间的对应规则:

图7示出了本申请一个示例性实施例提供的状态转移的另一个示意图;如图7所示,量化状态0和量化状态1均与量化器q0相对应,若量化状态为量化状态0或量化状态1,则选择量化器q0来执行反量化处理;量化状态2和量化状态3均与量化器q1相对应,若量化状态为量化状态2和量化状态3,则选择量化器q1来执行反量化处理。可以理解的是,本申请实施例还支持其他对应规则,例如,量化状态0和量化状态2均对应量化器q0,当量化状态为量化状态0或量化状态2时,选择量化器q0;量化状态1和量化状态3均对应量化器q1,当量化状态为量化状态1和量化状态3时,选择量化器q1;再如,量化状态0和量化状态3均对应量化器q0,当量化状态为量化状态0和量化状态3时,选择量化器q0;量化状态1和量化状态2均对应量化器q1,当量化状态为量化状态1和量化状态2时,选择量化器q1。

3、状态转移表:

本申请实施例支持各种状态转移的规则,即本申请支持的状态转移表可包括但不限于:

表2:基于n个历史量化系数中偶数系数的数量m的奇偶性的状态转移表

表3:基于n个历史量化系数中偶数系数的数量与任意数值之和m的奇偶性的状态转移表

表4:基于n个历史量化系数中奇数系数的数量m的奇偶性的状态转移表

表5:基于n个历史量化系数中零系数的数量m的奇偶性的状态转移表

表6:基于n个历史量化系数中零系数的数量m的奇偶性及两个历史量化状态的状态转移表

表7:基于n个历史量化系数中偶数系数的数量m的奇偶性的状态转移表

表7中,pjk的值可以从量化状态a、b、c、d中选择,不同的(paa,pab,pba,pbb,pca,pcb,pda,pdb)代表不同的状态转移表。其中,j=a,b,c,d;k=a,b,c,d。

表8:基于n个历史量化系数的系数值m关于基数3求余的状态转移表

上述的状态转移表示出了基于n个历史量化系数的统计值及h个历史量化状态进行状态转移的各种规则,n、h均为正整数。当n个历史量化系数和h个历史量化状态选取不同,或者当n个历史量化系数的统计值不同时,状态转移表也可以发生变化;例如:还可以是基于n个历史量化系数中偶数系数的数值之和的状态转移表;再如:还可以基于n个历史量化系数中所有系数的数值之和及h个历史量化状态的状态转移表;等等。

本申请实施例提出了一种灵活通用的依赖性标量量化的反量化处理框架,在反量化处理过程中,可灵活选择需要进行依赖性标量量化的区域内的n个历史量化系数和h个历史量化状态;并且可根据该n个历史量化系数的统计值和h个历史量化状态来灵活设计状态转移规则,使得量化状态可以根据规则自动转移,从而灵活自动选择对应的量化器来对量化系数执行反量化处理;本申请实施例可不限制量化器设置、量化状态与量化器对应规则以及状态转移表等等的设置,适用范围较为广泛,能够灵活运用于各种依赖性标量量化场景,较高效率地实现依赖性标量量化的反量化处理。

下面将结合附图及具体实例,对本申请实施例的反量化处理的流程进行详细介绍。

解码设备针对任一变换块进行反量化处理之前,需要在该变换块中确定第一量化区域,该第一量化区域是指变换块中需要被执行依赖性标量量化的反量化处理的区域,即第一量化区域内的量化系数均需要被执行依赖性标量量化的反量化处理。图8示出了本申请一个示例性实施例提供的在变换块中确定第一量化区域的流程示意图;该流程包括以下步骤s801-步骤s804:

步骤s801,在变换块中定位srcc区域。

步骤s802,判断该srcc区域是否满足依赖性标量量化条件,如果srcc区域满足依赖性标量量化条件,则转入步骤s803,以执行在srcc区域中确定第一量化区域的后续流程。

下面结合图9来对上述在变换块中确定第一量化区域的流程进行详细介绍。图9示出了本申请另一个示例性实施例提供的变换块的结构示意图;首先需要在图9所示的变换块90中定位srcc区域,变换块90中的srcc区域是指宽度为srx,高度为sry的区域901。其次,需要判断srcc区域901是否满足依赖性标量量化条件,变换块90的宽度为w,高度为h;srcc区域901宽度为srx、高度为sry。srcc区域901满足依赖性标量量化条件可以包括以下任一种情况:srx≥kx,或者sry≥ky,或者srx≥kx且sry≥ky;其中kx表示长度阈值,ky表示宽度阈值,0≤kx≤w,0≤ky≤h。

如果srcc区域901不满足依赖性标量量化条件,那么确定该srcc区域901不需要被执行依赖性标量量化的反量化处理,进而对srcc区域901内的量化系数执行独立量化的反量化处理。srcc区域901不满足依赖性标量量化条件包括以下任一种情况:srx<kx,或者sry<ky,或者srx<kx且sry<ky。需要说明的是,针对任意两个变换块,长度阈值kx可以设置为相同,也可以设置为不同;同理,宽度阈值ky可以设置为相同,也可以设置为不同;例如:对于亮度变换块和色度变换块,可以设置不同的kx和ky;再如:对于面积不同的两个变换块,可以设置不同的ky和ky;再如:对于宽高比不同的两个变换块,可以设置不同的kx和ky。

步骤s803,在srcc区域中任意选取一个区域。例如图9中,在srcc区域901中选取一个区域9011。

步骤s804,判断所选取的区域是否满足依赖性标量量化的执行条件,如果所选取的区域满足依赖性标量量化的执行条件,则将所选取的区域确定为第一量化区域。

设所选取的区域9011是宽度为x,高度为y的矩形区域;那么,所选取的区域9011满足依赖性标量量化的执行条件,包括以下任一种情况:x≠srx,且y≠sry;或者,x<(srx-a)且y<(sry-b);或者,x<(srx-a);或者,y<(sry-b),其中,其中,a、b均为非负整数。

如果所选取的区域9011不满足依赖性标量量化的执行条件,则将所选取的区域9011确定为第二量化区域;第二量化区域是指变换块中需要被执行独立量化的反量化处理的区域,以及,对该第二量化区域内的量化系数执行独立量化的反量化处理。其中,所选取的区域不满足依赖性标量量化的执行条件,包括以下任一种情况:x=srx,或者y=sry,或者x>(srx-a),或者y>(sry-b),或者x>(srx-a)且y>(sry-b)。如果所选取的区域9011不满足依赖性标量量化的执行条件,那么重新选取一个新的区域,并重复上述步骤s801-步骤s804,直到确定第一量化区域为止。

图8所示流程表明,如果变换块中的srcc区域不满足依赖性标量量化条件,那么srcc区域内的所有量化系数将被执行独立量化的反量化处理;如果srcc区域满足依赖性标量量化条件,那么还需再确定srcc区域之内哪部分区域(即第一量化区域)需要被执行依赖性标量量化的反量化处理;而哪部分区域(即第二量化区域)需要被执行独立量化的反量化处理。

依赖性标量量化采用的量化步长与独立量化采用的量化步长可以相同,也可以不同。量化步长δ具体可以由weight,scale,shift三个变量运算得到,scale与qp(quantizationparameter,量化参数)有对应关系,shift与qp有对应关系。qp是量化步长δ的序号,对于亮度(luma)编码而言,量化步长共有52个值,qp的取值为0~51;对于色度(chroma)编码而言,qp的取值为0~39。独立量化的反量化计算公式为以下公式(6):

x′i=yi*δ=q*weight*scale>>shift公式(6)

依赖性标量量化的反量化计算公式则可参见上述公式(1)-公式(5),其中,如果使用量化器q0,那么上述公式(6)中取q=2*yi;如果使用量化器q1,那么上述公式(6)中取q=2*yi-sgn(yi);因此,依赖性标量量化的反量化计算公式可转换为下述公式(7):

x′i=q*δ=q*weight*scale>>shift公式(7)

依赖性标量量化和独立量化可以采用不同的weight,scale,shift;也可以采用相同的weight,scale,shift;并且采用的变量值不受限制,例如:依赖性标量量化和独立量化使用不同qp对应的scale和shift。

本申请实施例提出了一种灵活通用的依赖性标量量化的反量化处理框架,在反量化处理过程中,可在变换块中需要进行依赖性标量量化的反量化处理的第一量化区域,这样就方便后续可以灵活选取此第一量化区域内的n个历史量化系数和h个历史量化状态来灵活设计状态转移规则,使得量化状态可以根据规则自动转移,从而灵活、高效地实现了量化状态的更新,有效提升反量化过程的效率及智能性。

经过图9所示在变换块中确定了需要执行依赖性标量量化的第一量化区域之后,解码设备就需要对第一量化区域内的量化系数执行依赖性标量量化的反量化处理了。图10示出了本申请一个示例性实施例提供的反量化处理的流程示意图;该流程包括以下步骤s1001-步骤s1006:

步骤s1001,获取第一量化区域中的当前的量化系数yi及该量化系数yi对应的量化状态si。

步骤s1002,根据量化状态si确定对量化系数yi进行反量化处理的量化器。

步骤s1003,采用确定的量化器对应的反量化计算公式,重构得到量化系数yi对应的重构数值x′i。

步骤s1004,获取变换块中的第一量化区域的n个历史量化系数和h个历史量化状态,n、h均为正整数。

设第一量化区域共包含s(s为整数且s≥1)个量化系数;该s个量化系数按照扫描顺序(即反向z字型扫描顺序)依次被扫描并被执行反量化处理;n个历史量化系数是指已被扫描的任意n个量化系数,n≤s。具体地,n个历史量化系数可以是指第一量化区域中的全部历史量化系数,也可以是第一量化区域中的部分历史量化系数;并且n个历史量化系数在第一量化区域中的分布规则没有限制,可以包括如下:例如n个历史量化系数可以是yi-n+1,yi-n+2,…,yi;或者可以是y1,y2,…,yn-1;或者可以是yi-2(n-1),yi-2n,…,yi-4,yi-2,yi;或者可以是y1,y3,…,y2n-1等等各种情况。

本申请实施例支持反量化处理由n个量化器执行,该n个量化器共对应h个量化状态;h为正整数;h个历史量化状态是指n个历史量化系数分别对应的n个历史量化状态中的任意h个,h≤n且h≤h。也就是说,h个历史量化状态可以是指第一量化区域的全部历史量化状态,也可以是第一量化区域的部分历史量化状态;并且该h个历史量化状态的分布同样没有具体限制,例如h个历史量化状态可以是si,或,或者可以是s1,s2,…,si;或者可以是s1,s2,s3,s4;或者也可以是si-2,si-1,si等等若干情况。

步骤s1005,获取n个历史量化系数的统计值。

量化系数按照系数值分为以下类型:偶数系数、奇数系数、零系数、非零偶数系数和非零系数。偶数系数是指系数值为偶数的量化系数,例如某个量化系数的系数值为2,则该量化系数是一个偶数系数。奇数系数是指系数值为奇数的量化系数,例如某个量化系数的系数值为1,则该量化系数是一个奇数系数。零系数是指系数值为0的量化系数。非零系数是指系数值为非0值的量化系数,偶数系数和奇数系数均为非零系数。

将n个历史量化系数的统计值记为m,m可以包括但不限于以下至少一项:n个历史量化系数的系数值;n个历史量化系数中任一类型系数的系数值;n个历史量化系数的总数量;n个历史量化系数中任一类型的系数总量;n个历史量化系数中任一类型的系数总量与任意数值之间的和;n个历史量化系数的系数值之和;n个历史量化系数的绝对值之和;n个历史量化系数中任一类型系数的系数值之和;n个历史量化系数中任一类型系数的绝对值之和;n个历史量化系数的映射值之和;n个历史量化系数中任一类型系数的映射值之和;n个历史量化系数中任一类型系数的映射值的绝对值之和;n个历史量化系数的系数值之差;n个历史量化系数的绝对值之差;n个历史量化系数中任一类型系数的系数值之差;以及,n个历史量化系数中任一类型系数的绝对值之差。

需要说明的是,上述的量化系数的绝对值是对量化系数的系数值进行绝对值计算得到;上述的量化系数的映射值是对量化系数的系数值进行映射得到,该映射可包括但不限于如下若干方式:对量化系数的系数值进行平方;或者对量化系数的系数值进行线性映射。另外,上述获取n个历史量化系数的统计值的方式并非穷举,其他的方式也应当属于本申请实施例所涵盖的范围,其他方式例如,统计值可以是所有量化系数/零系数/非零系数/偶数系数/非零偶数系数/奇数系数的系数值本身;或者,统计值可以是所有系数/零系数/非零系数/偶数系数/奇数系数的系数值之间比较大小得到的结果,等等。并且m可以只包含一个值,也可以包含多个值,例如统计值m可以为上述的两项或者多项,从而可以得到多个统计值m0,m1,…,mk1,这里k1为任意整数。

举例来说,统计值m是指n个历史量化系数中偶数系数的系数总量(即偶数系数的个数)与任意数值之间的和;例如:设n个历史量化系数包括yi-n,yi-n+1,…,yi-1;这n个历史量化系数中偶数系数的数量为f个,那么统计值m=f+p1,p1可以设置为任意数值,如p1可设置为0、1;或者p1可设置为变换块中srcc区域之外的其他区域内的量化系数的总数,或者p1可设置为变换块中srcc区域之外的其他区域内的量化系数中偶数系数的数量;等等。再如:设i<n,n个历史量化系数包括y1,y2,…,yi-1,这n个历史量化系数中偶数的个数为f个,那么统计值m=f+p2;p2可以设置为任意数值,如p2可设置为0、1;或者p2可设置为变换块中srcc区域之外的其他区域内的量化系数的总数,或者p2可设置为变换块中srcc区域之外的其他区域内的量化系数中偶数系数的数量;等等。p1可以等于p2,p1也可以不等于p2,不受限制。举个例子,当i=5,p2设置为0时,n个历史量化系数y1,y2,y3,y4的系数值分别为1,2,3,0;这4个历史量化系数中有2个偶数,所以偶数系数的个数为2;则统计值m=2+0=2。

又举例来说,统计值m是指n个历史量化系数中偶数系数的系数总量(即偶数系数的个数);例如:当n=1时,n个历史量化系数是指历史量化系数yi,m为n个历史量化系数中偶数系数的个数;若yi为偶数,m=1;若yi为奇数,m=0。再如:当n=5时,若i>n,n个历史量化系数包括yi-4,yi-3,yi-2,yi-1,yi中,m为n个历史量化系数中偶数系数的个数;设yi-4,yi-3,yi-2,yi-1,yi的系数值分别为1,2,3,0,1,这5个历史量化系数中有2个偶数,所以m=2。

步骤s1006,根据该统计值及h个历史量化状态,更新第一量化区域的量化状态为si+1。步骤s1006具体包括以下步骤s61-步骤s64:

步骤s61,对统计值进行映射转换,得到转换值。

可以按照映射算法对统计值进行映射转换,得到转换值,该转换值可记为l0,l1,…,lk2,k2为任意整数。其中,映射算法包括以下任一种:求余算法、线性映射算法,非线性映射算法以及位运算算法。位运算算法包括以下至少一种:按位与运算、按位或运算、按位异或运算、按位取反运算、按位左移运算、按位右移运算、按位补码运算。也就是说,统计值m为一个值时,按照映射算法得到的转换值可以为一个值或多个值;而统计值m包括多个值时,例如包括m0,m1,…,mk1时,得到转换值l0,l1,…,lk2也可为一个值或多个值。这里的k1可以等于k2,k1也可以不等于k2。

举例来说,例如可对统计值m0,m1,…,mk1关于基数d进行求余运算,得到转换值l0,l1,…,lk2;这里的基数d可以是任意正整数。再如可以使用位运算算法将统计值m0,m1,…,mk1转化为l0,l1,…,lk2;此处的位运算算法可以是按位与运算li=mi&g;也可以是按位或运算li=mi|g;也可以是按位异或运算li=mi^g;还可以是按位取反运算li=mi~g;还可以是按位左移运算li=mi<<g,还可以是按位右移运算li=mi>>g,等等,其中g可以为任意正整数。再如:可以使用线性映射算法li=mi,或是li=rmi+t;其中r、t为任意数值。

转换值可用于代表统计值的某些特性,例如:转换值是统计值关于基数2进行求余计算,那么转换值可用于代表统计值的奇偶性;再如:转换值是统计值关于基数3进行求余计算,那么转换值也可用于代表统计值关于基数3的特性;再如:转换值是统计值基于位运算算法得到,那么转换值可用于代表统计值的位特性;等等。转移状态表是根据统计值的特性来定义状态转移条件的,例如上述表2-表8中均是根据统计值的奇偶性来定义状态转移条件的。当然可以理解的是,本申请并未限定状态转移表中定义的状态转移条件和状态转移规则,所以,状态转移表也可以根据统计值的其他特征(例如位特征、线性特性等)来定义状态转移条件。

步骤s62,确定转换值和h个历史量化状态所满足的状态转移条件。

步骤s63,根据确定的状态转移条件从状态转移表确定量化状态si的下一量化状态si+1。

步骤s64,将第一量化区域的量化状态更新为量化状态si+1。

步骤s62-步骤s64中,状态转移条件是在状态转移表中定义的,根据转换值l0,l1,…,lk2和h个历史量化状态所满足的状态转移条件,从状态转移表中确定量化状态si的下一量化状态si+1,并将第一量化区域的量化状态更新为量化状态si+1。

举例来说,统计值m是指n个历史量化系数中偶数系数的系数总量(即偶数系数的个数)与任意数值之间的和,假设m=5;对统计值m=5关于基数2进行求余运算,得到转换值lk2=1,这代表m为奇数,即(m&1)==1成立;假设量化状态si为量化状态a,依据上述表3所示的状态转移表可得到量化状态si+1是量化状态c;那么将第一量化区域的量化状态更新为量化状态c。

在一种实施方式中,如果状态转移表的数量为两个或两个以上,那么:

步骤s1004中可获取变换块中的第一量化区域的n1个历史量化系数和h1个历史量化状态,以及获取变换块中的第一量化区域的n2个历史量化系数和h2个历史量化状态。步骤s1005中则分别获取n1个历史量化系数的统计值m1,以及获取n2个历史量化系数的统计值m2。步骤s1006中根据统计值及h个历史量化状态,更新第一量化区域的量化状态,则可包括以下两步:

第一步:根据统计值m1和h1个历史量化状态,选择反量化处理应当使用的目标状态转移表;

第二步:根据统计值m2、h2个历史量化状态以及选择的目标状态转移表,更新第一量化区域的量化状态。

上述n1、n2的选取规则与n的选取规则类似,统计值m1、m2的统计方法与上述m的统计方案类似。一个具体示例如下:

设获取n1=2个历史量化系数包括yi-1,yi,这2个历史量化系数的系数值分别为3,2;这2个历史量化系数的统计值m1是偶数系数的个数,m1=1。h1=1,即获取的h1个历史量化状态为历史量化状态si-1。同样,获取n2=3个历史量化系数包括yi-2,yi-1,yi,这3个历史量化系数的系数值分别为2,3,2;这3个历史量化系数的统计值m2是偶数系数的个数,m2=2。h2=1,即获取的h2个历史量化状态为历史量化状态si。假设有上述表1-表8共8个状态转移表:

第一步,对m1关于基数2求余得到转换值l1=1,表示统计值m1为奇数;再根据h1个历史量化状态si,可以选择表2的状态转移表;

第二步,对m2关于基数2求余得到转换值l2=0,表示统计值m2为偶数,根据表2可知(m&1)==0成立,那么再根据h2个历史量化状态si,按照表2进行状态转移。

另一个具体示例如下:

设获取n1=2个历史量化系数包括yi-2,yi-1,这2个历史量化系数的系数值分别为2,4;这2个历史量化系数的统计值m1是偶数系数的个数与p1的和,p1为任意数值,此处取p1=0;那么m1=2+0=2。h1=1,即获取的h1个历史量化状态为历史量化状态si。同样,获取n2=3个历史量化系数包括yi-2,yi-1,yi,这3个历史量化系数的系数值分别为2,4,2;这3个历史量化系数的统计值m2是偶数系数的个数与p2的和,p2为任意数值,此处取p2=1;那么m2=3+1=4。h2=1,即获取的h2个历史量化状态为历史量化状态si。假设有上述表1-表8共8个状态转移表:

第一步,对m1关于基数2求余得到转换值l1=1,表示统计值m1为奇数,即(m&1)==1成立,根据h1个历史量化状态si,可以选择表3的状态转移表;

第二步,对m2关于基数2求余得到转换值l2=2,表示统计值m2为偶数,根据表3可知(m&1)==0成立,那么再根据h2个历史量化状态si,按照表3进行状态转移。

经过上述步骤s1001-步骤s1006,可以对量化系数yi进行反量化处理得到对应的重构数值x′i,并且可以实现量化状态从si至si+1的自动转移更新。以此类推,可以对第一量化区域内的量化系数序列y中的每一个量化值y1,y2,…,yi,…,ys均采用相同的反量化处理,得到量化系数序列y对应的重构序列x′,重构序列x′包括x′1,x′2,…,x′i…,x′s(s≥1)共s个重构数值。

综上所述,本申请实施例提出了一种灵活通用的依赖性标量量化的反量化处理框架,在反量化处理过程中,可灵活确定需要进行依赖性标量量化的反量化处理的区域,并灵活选取此区域内的n个历史量化系数和h个历史量化状态;并且可根据该n个历史量化系数的统计值和h个历史量化状态来灵活设计状态转移规则,使得量化状态可以根据规则自动转移,从而灵活自动选择对应的量化器来对量化系数执行反量化处理;本申请实施例可不限制量化器设置、量化状态与量化器对应规则以及状态转移表等等的设置,适用范围较为广泛,能够灵活运用于各种依赖性标量量化场景,较高效率地实现依赖性标量量化的反量化处理。

图11示出了本申请一个示例性实施例提供的一种多媒体的反量化处理装置的结构示意图。在一个实施例中,该多媒体的反量化处理装置可以搭载在上述方法实施例中的解码设备中。图11所示的多媒体的反量化处理装置110可以用于执行上述方法实施例中的部分或全部功能。其中,各个单元的详细描述如下:

获取单元1101,用于获取变换块中的第一量化区域的n个历史量化系数和h个历史量化状态,n、h均为正整数;以及,获取该n个历史量化系数的统计值。

处理单元1102,用于根据该统计值及该h个历史量化状态,更新该第一量化区域的量化状态。

一种实施方式中,反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,并且一个量化器对应一个反量化计算公式;处理单元1102还用于:

获取第一量化区域中的当前的量化系数yi及量化系数yi对应的量化状态si,i为正整数,当前的量化系数yi是指当前被扫描且等待被执行反量化处理的量化系数yi;

根据量化状态si确定对量化系数yi进行反量化处理的目标量化器;

采用目标量化器对应的反量化计算公式,重构得到量化系数yi对应的重构数值x′i。

一种实施方式中,n个量化器包含第一量化器和第二量化器;若目标量化器为第一量化器,则对应的反量化计算公式为:x′i=2·yi·δ,δ表示量化步长;

若目标量化器为第二量化器且包含yi=0的情况,则对应的反量化计算公式为:x′i=((2·yi-sgn(yi))·δ;其中,或者对应的反量化计算公式为其中,c为任意数值;

若目标量化器为第二量化器且不包含yi=0的情况,则对应的反量化计算公式为x′i=((2·yi-sgn(yi))·δ;其中,

一种实施方式中,第一量化区域共包含s个量化系数,s为正整数;s个量化系数按照扫描顺序依次被扫描并被执行反量化处理;n个历史量化系数是指已被扫描的任意n个量化系数,n为正整数且n≤s;

n个量化器共对应h个量化状态,h为正整数;h个历史量化状态是指n个历史量化系数对应的n个历史量化状态中的任意h个,h≤n且h≤h。

一种实施方式中,量化系数按照系数值分为以下类型:偶数系数、奇数系数、零系数、非零偶数系数和非零系数;

统计值包括以下至少一项:n个历史量化系数的系数值;n个历史量化系数中任一类型系数的系数值;n个历史量化系数的总数量;n个历史量化系数中任一类型的系数总量;n个历史量化系数中任一类型的系数总量与任意数值之间的和;n个历史量化系数的系数值之和;n个历史量化系数的绝对值之和;n个历史量化系数中任一类型系数的系数值之和;n个历史量化系数中任一类型系数的绝对值之和;n个历史量化系数的映射值之和;n个历史量化系数中任一类型系数的映射值之和;n个历史量化系数中任一类型系数的映射值的绝对值之和;n个历史量化系数的系数值之差;n个历史量化系数的绝对值之差;n个历史量化系数中任一类型系数的系数值之差;以及,n个历史量化系数中任一类型系数的绝对值之差。

一种实施方式中,第一量化区域中的当前的量化系数为yi,量化系数yi对应的量化状态为si;反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数;反量化处理过程中按照状态转移表中定义的状态转移条件在h个量化状态之间进行转移;处理单元1102具体用于:

对统计值进行映射转换,得到转换值;

确定转换值和h个历史量化状态所满足的状态转移条件;

根据确定的状态转移条件从状态转移表确定量化状态为si的下一量化状态si+1;

将第一量化区域的量化状态更新为量化状态si+1。

一种实施方式中,处理单元1102具体用于:

按照映射算法对统计值进行映射转换,得到转换值;

其中,映射算法包括以下任一种:求余算法、线性映射算法、非线性映射算法以及位运算算法;位运算算法包括以下至少一种:按位与运算、按位或运算、按位异或运算、按位取反运算、按位左移运算、按位右移运算、按位补码运算。

一种实施方式中,反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数;反量化处理过程中按照状态转移表中定义的状态转移条件在h个量化状态之间进行转移;若状态转移表的数量为两个或两个以上,则获取单元1101具体用于:

获取变换块中的第一量化区域的n1个历史量化系数和h1个历史量化状态,以及获取变换块中的第一量化区域的n2个历史量化系数和h2个历史量化状态,n1、n2、h1和h2均为正整数;以及,

获取n1个历史量化系数的统计值m1,以及获取n2个历史量化系数的统计值m2;

处理单元1102具体用于:

根据统计值m1和h1个历史量化状态,选择反量化处理应使用的目标状态转移表;并根据统计值m2、h2个历史量化状态以及选择的目标状态转移表,更新第一量化区域的量化状态。

一种实施方式中,处理单元1102还用于在变换块中确定第一量化区域;第一量化区域是指变换块中需要被执行依赖性标量量化的反量化处理的区域。

一种实施方式中,处理单元1102具体用于:

在变换块中定位srcc区域;

若srcc区域满足依赖性标量量化条件,则在srcc区域中确定第一量化区域。

一种实施方式中,变换块的宽度为w,高度为h;srcc区域的宽度为srx,高度为sry;

srcc区域满足依赖性标量量化条件包括:srx≥kx,或者sry≥ky,或者srx≥kx且sry≥ky;其中kx表示长度阈值,ky表示宽度阈值,0≤kx≤w,0≤ky≤h。

一种实施方式中,处理单元1102还用于:

若srcc区域不满足依赖性标量量化条件,则对srcc区域内的量化系数执行独立量化的反量化处理;

srcc区域不满足依赖性标量量化条件包括:srx<kx,或者sry<ky,或者srx<kx且sry<ky。

一种实施方式中,srcc区域的宽度为srx,高度为sry;处理单元1102具体用于:

在srcc区域中任意选取一个区域;

若所选取的区域满足依赖性标量量化的执行条件,则将所选取的区域确定为第一量化区域。

一种实施方式中,所选取的区域的宽度为x,高度为y;所选取的区域满足依赖性标量量化的执行条件,包括以下任一种情况:

x≠srx且y≠sry;

x<(srx–a)且y<(sry-b);

x<(srx-a);

y<(sry-b);其中,a、b均为非负整数。

一种实施方式中,处理单元1102具体用于:

若所选取的区域不满足依赖性标量量化的执行条件,则将所选取的区域确定为第二量化区域;以及,

对第二量化区域内的量化系数执行独立量化的反量化处理;

其中,所选取的区域不满足依赖性标量量化的执行条件,包括:x=srx,或者y=sry,或者x>(srx-a),或者y>(sry-b),或者x>(srx-a)且y>(sry-b)。

一种实施方式中,依赖性标量量化的反量化处理采用的量化步长与独立量化的反量化处理采用的量化步长相同;或者,依赖性标量量化的反量化处理采用的量化步长与独立量化的反量化处理采用的量化步长不同。

本申请实施例提出了一种灵活通用的依赖性标量量化的反量化处理框架,在反量化处理过程中,可灵活确定需要进行依赖性标量量化的反量化处理的区域,并灵活选取此区域内的n个历史量化系数和h个历史量化状态;并且可根据该n个历史量化系数的统计值和h个历史量化状态来灵活设计状态转移规则,使得量化状态可以根据规则自动转移,从而灵活自动选择对应的量化器来对量化系数执行反量化处理;本申请实施例可不限制量化器设置、量化状态与量化器对应规则以及状态转移表等等的设置,适用范围较为广泛,能够灵活运用于各种依赖性标量量化场景,较高效率地实现依赖性标量量化的反量化处理。

图12示出了本申请一个示例性实施例提供的一种多媒体的反量化处理设备的结构示意图,该多媒体的反量化处理设备120至少包括处理器1201以及计算机可读存储介质1202。其中,处理器1201以及计算机可读存储介质1202可通过总线或者其它方式连接。计算机可读存储介质1201可以存储在存储器中,计算机可读存储介质1201用于存储计算机程序,计算机程序包括程序指令,处理器1201用于执行计算机可读存储介质1202存储的程序指令。处理器1201(或称cpu(centralprocessingunit,中央处理器))是多媒体的反量化处理设备120的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。在一种实现中,该多媒体的反量化处理设备120可以是上述方法实施例中的解码设备。

本申请实施例还提供了一种计算机可读存储介质(memory),计算机可读存储介质是多媒体的反量化处理设备120中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质1202既可以包括多媒体的反量化处理设备120中的内置存储介质,当然也可以包括多媒体的反量化处理设备120所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了多媒体的反量化处理设备120的操作系统。并且,在该存储空间中还存放了适于被处理器1201加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质1202可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器1201的计算机可读存储介质。

在一个实施例中,该多媒体的反量化处理设备120可以是图2所示的终端设备201;该计算机可读存储介质1202中存储有计算机程序;由处理器1201加载并执行计算机可读存储介质1202中存放的计算,以实现图5所示的多媒体的反量化处理方法实施例中的相应步骤;具体实现中,计算机可读存储介质1202中的计算机程序由处理器1201加载并执行如下步骤:

获取变换块中的第一量化区域的n个历史量化系数和h个历史量化状态,n、h均为正整数;

获取n个历史量化系数的统计值;

根据统计值及h个历史量化状态,更新第一量化区域的量化状态。

一种实施方式中,反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,并且一个量化器对应一个反量化计算公式;计算机可读存储介质1202中的计算机程序由处理器1201加载并且还执行如下步骤:

获取第一量化区域中的当前的量化系数yi及量化系数yi对应的量化状态si,i为正整数;当前的量化系数yi是指当前被扫描且等待被执行反量化处理的量化系数yi;

根据量化状态si确定对量化系数yi进行反量化处理的目标量化器;

采用目标量化器对应的反量化计算公式,重构得到量化系数yi对应的重构数值x′i。

一种实施方式中,n个量化器包含第一量化器和第二量化器;若目标量化器为第一量化器,则对应的反量化计算公式为:x′i=2·yi·δ,δ表示量化步长;

若目标量化器为第二量化器且包含yi=0的情况,则对应的反量化计算公式为:x′i=((2·yi-sgn(yi))·δ;其中,或者对应的反量化计算公式为其中,c为任意数值;

若目标量化器为第二量化器且不包含yi=0的情况,则对应的反量化计算公式为x′i=((2·yi-sgn(yi))·δ;其中,

一种实施方式中,第一量化区域共包含s个量化系数,s为正整数;s个量化系数按照扫描顺序依次被扫描并被执行反量化处理;n个历史量化系数是指已被扫描的任意n个量化系数,n为正整数且n≤s;

n个量化器共对应h个量化状态,h为正整数;h个历史量化状态是指n个历史量化系数对应的n个历史量化状态中的任意h个,h≤n且h≤h。

一种实施方式中,量化系数按照系数值分为以下类型:偶数系数、奇数系数、零系数、非零偶数系数和非零系数;

统计值包括以下至少一项:n个历史量化系数的系数值;n个历史量化系数中任一类型系数的系数值;n个历史量化系数的总数量;n个历史量化系数中任一类型的系数总量;n个历史量化系数中任一类型的系数总量与任意数值之间的和;n个历史量化系数的系数值之和;n个历史量化系数的绝对值之和;n个历史量化系数中任一类型系数的系数值之和;n个历史量化系数中任一类型系数的绝对值之和;n个历史量化系数的映射值之和;n个历史量化系数中任一类型系数的映射值之和;n个历史量化系数中任一类型系数的映射值的绝对值之和;n个历史量化系数的系数值之差;n个历史量化系数的绝对值之差;n个历史量化系数中任一类型系数的系数值之差;以及,n个历史量化系数中任一类型系数的绝对值之差。

一种实施方式中,第一量化区域中的当前的量化系数为yi,量化系数yi对应的量化状态为si;反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数;反量化处理过程中按照状态转移表中定义的状态转移条件在h个量化状态之间进行转移;

计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行根据统计值及h个历史量化状态,更新第一量化区域的量化状态的步骤时,具体执行如下步骤:

对统计值进行映射转换,得到转换值;

确定转换值和h个历史量化状态所满足的状态转移条件;

根据确定的状态转移条件从状态转移表确定量化状态为si的下一量化状态si+1;

将第一量化区域的量化状态更新为量化状态si+1。

一种实施方式中,计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行对统计值进行映射转换,得到转换值的步骤时,具体执行如下步骤:

按照映射算法对统计值进行映射转换,得到转换值;

其中,映射算法包括以下任一种:求余算法、线性映射算法、非线性映射算法以及位运算算法;位运算算法包括以下至少一种:按位与运算、按位或运算、按位异或运算、按位取反运算、按位左移运算、按位右移运算、按位补码运算。

一种实施方式中,反量化处理由n个量化器执行,n为大于1的整数;一个量化器对应一个或多个量化状态,n个量化器共对应h个量化状态,h为正整数;反量化处理过程中按照状态转移表中定义的状态转移条件在h个量化状态之间进行转移;若状态转移表的数量为两个或两个以上,则计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行获取变换块中的第一量化区域的n个历史量化系数和h个历史量化状态的步骤时,具体执行如下步骤:获取变换块中的第一量化区域的n1个历史量化系数和h1个历史量化状态,以及获取变换块中的第一量化区域的n2个历史量化系数和h2个历史量化状态,n1、n2、h1和h2均为正整数;

计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行获取n个历史量化系数的统计值的步骤时,具体执行如下步骤:获取n1个历史量化系数的统计值m1,以及获取n2个历史量化系数的统计值m2;

计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行根据统计值及h个历史量化状态,更新第一量化区域的量化状态的步骤时,具体执行如下步骤:

根据统计值m1和h1个历史量化状态,选择反量化处理应使用的目标状态转移表;并根据统计值m2、h2个历史量化状态以及选择的目标状态转移表,更新第一量化区域的量化状态。

一种实施方式中,计算机可读存储介质1202中的计算机程序由处理器1201加载并且还执行如下步骤:在变换块中确定第一量化区域;第一量化区域是指变换块中需要被执行依赖性标量量化的反量化处理的区域。

一种实施方式中,计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行在变换块中确定第一量化区域的步骤时,具体执行如下步骤:

在变换块中定位srcc区域;

若srcc区域满足依赖性标量量化条件,则在srcc区域中确定第一量化区域。

一种实施方式中,变换块的宽度为w,高度为h;srcc区域的宽度为srx,高度为sry;

srcc区域满足依赖性标量量化条件包括:srx≥kx,或者sry≥ky,或者srx≥kx且sry≥ky;其中kx表示长度阈值,ky表示宽度阈值,0≤kx≤w,0≤ky≤h。

一种实施方式中,计算机可读存储介质1202中的计算机程序由处理器1201加载并且还执行如下步骤:

若srcc区域不满足依赖性标量量化条件,则对srcc区域内的量化系数执行独立量化的反量化处理;

srcc区域不满足依赖性标量量化条件包括:srx<kx,或者sry<ky,或者srx<kx且sry<ky。

一种实施方式中,srcc区域的宽度为srx,高度为sry;计算机可读存储介质1202中的计算机程序由处理器1201加载并且执行若srcc区域满足依赖性标量量化条件,则在srcc区域中确定第一量化区域的步骤时,具体执行如下步骤:

在srcc区域中任意选取一个区域;

若所选取的区域满足依赖性标量量化的执行条件,则将所选取的区域确定为第一量化区域。

一种实施方式中,所选取的区域的宽度为x,高度为y;所选取的区域满足依赖性标量量化的执行条件,包括以下任一种情况:

x≠srx且y≠sry;

x<(srx–a)且y<(sry-b);

x<(srx-a);

y<(sry-b);其中,a、b均为非负整数。

一种实施方式中,计算机可读存储介质1202中的计算机程序由处理器1201加载并且还执行如下步骤:

若所选取的区域不满足依赖性标量量化的执行条件,则将所选取的区域确定为第二量化区域;以及,

对第二量化区域内的量化系数执行独立量化的反量化处理;

其中,所选取的区域不满足依赖性标量量化的执行条件,包括:x=srx,或者y=sry,或者x>(srx-a),或者y>(sry-b),或者x>(srx-a)且y>(sry-b)。

一种实施方式中,依赖性标量量化的反量化处理采用的量化步长与独立量化的反量化处理采用的量化步长相同;或者,依赖性标量量化的反量化处理采用的量化步长与独立量化的反量化处理采用的量化步长不同。

本申请实施例提出了一种灵活通用的依赖性标量量化的反量化处理框架,在反量化处理过程中,可灵活确定需要进行依赖性标量量化的反量化处理的区域,并灵活选取此区域内的n个历史量化系数和h个历史量化状态;并且可根据该n个历史量化系数的统计值和h个历史量化状态来灵活设计状态转移规则,使得量化状态可以根据规则自动转移,从而灵活自动选择对应的量化器来对量化系数执行反量化处理;本申请实施例可不限制量化器设置、量化状态与量化器对应规则以及状态转移表等等的设置,适用范围较为广泛,能够灵活运用于各种依赖性标量量化场景,较高效率地实现依赖性标量量化的反量化处理。

本申请实施例还提供了一种计算机可读存储介质(memory),该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备(例如可以是智能体)的处理器读取并执行时,使得计算机设备执行上述的多媒体的反量化处理方法。上述计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;上述计算机可读存储介质还可以包括但不限于快闪存储器(flashmemory),硬盘(harddiskdrive,hdd),固态硬盘(solid-statedrive,ssd)。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的多媒体的反量化处理方法。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1