产生量化块的方法与流程

文档序号:12479181阅读:213来源:国知局
产生量化块的方法与流程

技术领域

本发明涉及一种对图像解码的方法和设备,更具体而言,涉及一种基于帧内预测模式和变换单元的大小自适应地确定逆扫描模式而产生量化块的方法和设备。



背景技术:

在H.264/MPEG-4AVC中,一幅画面被分成多个宏块来对图像编码,利用帧间预测或帧内预测产生预测块,从而对相应宏块编码。变换初始块和预测块之间的差异以产生变换块,利用量化参数和多个预定量化矩阵之一对变换块进行量化。通过预定扫描类型扫描量化块的量化系数并随后进行熵编码。针对每个宏块调节量化参数,并利用先前的量化参数对其进行编码。

同时,引入了利用编码单元和变换单元各种大小的技术以提高编码效率。还引入了增加帧内预测模式数量的技术来产生更类似于初始块的预测块。

但是,在扫描大的变换块时,编码单元和变换单元的各种尺寸导致残余块的编码比特增加。而且,增加帧内预测模式的数量需要更有效的扫描方法来减少残余块的编码比特。



技术实现要素:

【技术问题】

本发明涉及如下一种方法:导出预测单元的帧内预测模式;基于帧内预测模式和变换单元的大小选择当前变换单元的逆扫描模式;以及通过根据所选逆扫描模式逆扫描显著标记、系数符号和系数级别来产生量化块。

【技术方案】

本发明的一个方面提供了一种产生量化块的方法,包括:导出预测单元的帧内预测模式;基于帧内预测模式和变换单元的大小在对角线扫描、垂直扫描和水平扫描间选择当前变换单元的逆扫描模式;以及通过根据所选逆扫描模式逆扫描显著标记、系数符号和系数级别来产生量化块。

【有利效果】

根据本发明的方法导出预测单元的帧内预测模式;基于帧内预测模式和变换单元的大小在对角线扫描、垂直扫描和水平扫描之间选择当前变换单元的逆扫描模式;以及通过根据所选逆扫描模式逆扫描显著标记、系数符号和系数级别来产生量化块。如果变换单元大于预定大小,产生多个子集并进行逆扫描。因此,通过基于变换单元大小和帧内预测模式确定扫描模式并通过向每个子集应用扫描模式减少残余块的编码比特量。

附图说明

图1是根据本发明的图像编码设备的方框图;

图2是示出了根据本发明的帧内预测模式的示意图;

图3是示出了根据本发明扫描模式的示意图;

图4是示意图,示出了根据本发明的对角线扫描;

图5是示意图,示出了根据本发明通过帧内预测模式和变换单元大小确定的扫描模式;

图6是根据本发明的图像解码设备200的方框图;

图7是流程图,示出了根据本发明产生预测块的方法。

具体实施方式

在下文中,将参考附图详细描述本发明的各实施例。不过,本发明不限于下文公开的示范性实施例,而是可以通过各种方式实施。因此,本发明很多其他修改和变化都是可能的,要理解的是,在所公开的概念范围之内,可以通过与具体所述不同的方式实践本发明。

图1是根据本发明的图像编码设备100的方框图。

参考图1,根据本发明的图像编码设备100包括图画分割单元101、变换单元103、量化单元104、扫描单元105、熵编码单元106、逆量化单元107、逆变换单元108、后期处理单元110、图画存储单元111、帧内预测单元112、帧间预测单元113、减法器102和加法器109。

图画分割单元101将图画或切片(slice)划分成多个最大编码单元(LCU),并将每个LCU划分成一个或多个编码单元。图画分割单元101确定每个编码单元的预测模式和预测单元大小与变换单元大小。

LCU包括一个或多个编码单元。LCU具有递归的四叉树结构,以指定LCU的分割结构。指定编码单元的最大大小和最小大小的信息包括在序列参数集中。由一个或多个分裂编码单元标志(split_cu_flag)指定分割结构。编码单元的大小是2N×2N。

编码单元包括一个或多个预测单元。在帧内预测中,预测单元的大小是2N×2N或N×N。在帧间预测中,预测单元的大小是2N×2N、2N×N、N×2N或N×N。当预测单元在帧间预测中是不对称分割时,预测单元的大小也可以是hN×2N、(2-h)N×2N、2N×hN和2N×(2-h)N之一。h的值为1/2。

编码单元包括一个或多个变换单元。变换单元具有递归的四叉树结构,以指定分割结构。由一个或多个分裂变换单元标记(split_tu_flag)指定分割结构。指定变换单元的最大大小和最小大小的信息包括在序列参数集中。

帧内预测单元112确定当前预测单元的帧内预测模式并利用帧内预测模式产生一个或多个预测块。该预测块具有与变换单元同样的大小。

图2是示出了根据本发明的帧内预测模式的示意图。如图2所示,帧内预测模式的数量为35。DC模式和平面模式是非方向性帧内预测模式,其他是方向性帧内预测模式。

帧间预测单元113利用图画存储单元111中存储的一个或多个参考图画确定当前预测单元的运动信息并产生预测单元的预测块。运动信息包括一个或多个参考图画索引和一个或多个运动矢量。

变换单元103利用初始块和预测块变换所产生的残余信号以产生变换块。由变换单元变换残余信号。变换类型由预测模式和变换单元的大小确定。变换类型是基于DCT的整数变换或基于DST的整数变换。

量化单元104确定用于量化变换块的量化参数。量化参数是量化步长。针对每个量化单元确定量化参数。量化单元的大小是编码单元可允许大小之一。如果编码单元的大小等于或大于量化单元的最小大小,将编码单元设置为量化单元。量化单元中可以包括多个编码单元。针对每个图画确定量化单元的最小大小,使用一个参数指定量化单元的最小大小。在图画参数集中包括该参数。

量化单元104产生量化参数预测器并通过从量化参数减去量化参数预测器来产生差分量化参数。对差分量化参数进行编码并发送到解码器。如果编码单元之内没有要发送的残余信号,可以不发送编码单元的差分量化参数。

如下利用相邻编码单元的量化参数和先前编码单元的量化参数产生量化参数预测器。

按照下述次序顺序检索左量化参数、上量化参数和前量化参数。在有两个或更多量化参数时,将按照该次序检索的前两个可用量化参数的平均值设置为量化参数预测器,在仅有一个量化参数可用时,将该可用的量化参数设置为量化参数预测器。亦即,如果有左和上量化参数可用,则将左和上量化参数的平均值设置为量化参数预测器。如果仅有左和上量化参数之一可用,将可用量化参数和前一量化参数的平均值设置为量化参数预测器。如果左和上量化参数都不可用,将前一量化参数设置为量化参数预测器。对平均值进行四舍五入。

将差分量化参数转换成差分量化参数的绝对值和表示差分量化参数符号的符号标记。将差分量化参数的绝对值二进制化为截断一元码。然后,对绝对值和符号标记进行算术编码。如果绝对值为零,则不存在符号标记。

量化单元104利用量化矩阵和量化参数对变换块进行量化。向逆量化单元107和扫描单元105提供该量化块。

扫描单元105确定扫描模式并向量化块应用该扫描模式。

在帧内预测中,量化变换系数的分布根据帧内预测模式和变换单元的大小而变化。于是,由帧内预测模式和变换单元的大小确定扫描模式。变换单元的大小、变换块的大小和量化块的大小是相同的。

图3是示出了根据本发明的扫描模式的示意图。图4是示出了根据本发明的对角线扫描的示意图。如图3所示,第一扫描模式是锯齿形扫描,第二扫描模式是水平扫描,第三扫描模式是垂直扫描。

在将CAVLC(语境自适应可变长度编码)用于熵编码时,在锯齿形扫描、水平扫描和垂直扫描之间选择一种扫描模式。但是在将CABAC(语境自适应二进制算术编码)用于熵编码时,在对角线扫描、水平扫描和垂直扫描之间选择一种扫描模式,并将选择的扫描模式分别应用于量化块的显著标记、系数符号和系数级别。显著标志表示对应的量化变换系数是否为零。系数符号表示非零量化变换系数的符号,系数级别表示非零量化变换系数的绝对值。

图5是示意图,示出了根据本发明由帧内预测模式和变换单元大小确定的示范性扫描模式。在将CABAC用于熵编码时,如下确定扫描模式。

在变换单元的大小为4×4时,为垂直模式(模式1)和垂直模式第一数量的相邻帧内预测模式应用水平扫描,为水平模式(模式2)和水平模式的第一数量的相邻帧内预测模式应用垂直模式,为所有其他帧内预测模式应用对角线扫描。亦即,如果假设用于4×4的可允许帧内预测模式是模式0到17,则为模式5、模式6以及模式5和模式6之间允许的模式应用水平扫描,为模式8、模式9以及模式8和9之间允许的模式应用垂直扫描。如果用于4×4的允许帧内预测模式是模式0到34,应用的扫描模式与以下8×8变换单元相同。

在变换单元的大小为8×8时,为垂直模式(模式1)和垂直模式第二数量的相邻帧内预测模式应用水平扫描,为水平模式(模式2)和水平模式的第二数量的相邻帧内预测模式应用垂直模式,为所有其他帧内预测模式应用对角线扫描。亦即,为模式5、模式6以及模式5和模式6之间允许的模式应用水平扫描,为模式8、模式9以及模式8和9之间允许的模式应用垂直扫描,为所有其他帧内预测模式应用对角线扫描。模式5和模式6之间允许的模式是模式21、12、22、1、23、13和24。模式8和模式9之间允许的模式是模式29、16、30、2、31、17、32和9。

在帧间预测中,不论变换单元的大小如何,都使用预定扫描模式。在将CABAC用于熵编码时,预定扫描模式是对角线扫描。

在变换单元的大小大于第二大小时,将量化块分成主要子集和多个剩余子集,将确定的扫描模式应用于每个子集。根据确定的扫描模式分别扫描每个子集的显著标记、系数符号和系数级别。将量化的变换系数分成显著标记、系数符号和系数级别。

主要子集包括DC系数,剩余子集覆盖了除主要子集覆盖的区域之外的区域。第二大小是4×4。子集的大小可以是4×4块或由扫描模式确定非正方形块。所述非正方形块包括16个变换系数。例如,对于水平扫描子集的大小是8×2,对于垂直扫描为2×8,对于对角线扫描是4×4。

用于扫描子集的扫描模式与用于扫描每个子集的量化变换系数的扫描模式相同。沿相反方向扫描每个子集的量化变换系数。也沿反向扫描子集。

对最后非零系数位置编码并发送到解码器。最后非零系数位置指定最后非零量化变换系数在变换单元中的位置。使用最后非零系数位置确定在解码器中发送的子集数量。针对除主要子集和最后子集之外的每个子集设置非零子集标志。最后子集覆盖最后的非零系数。非零子集标志表示子集是否包含非零系数。

逆量化化单元107对量化块的量化的变换系数进行逆量化。

逆变换单元108对逆量化块进行逆变换以产生空间域的残余信号。

加法器109通过将残余块和预测块相加来产生重构块。

后期处理单元110执行解块过滤过程,以清除重建图画中产生的分块人为噪声。

图画存储单元111从后期处理单元110接收经后期处理的图像并在图画单元中存储该图像。图画可以是帧或场。

熵编码单元106对从扫描单元105接收的一维系数信息、从帧内预测单元112接收的帧内预测信息、从帧间预测单元113接收的运动信息等进行熵编码。

图6是根据本发明的图像解码设备200的方框图。

根据本发明的图像解码设备200包括熵解码单元201、逆扫描单元202、逆量化化单元203、逆变换单元204、加法器205、后期处理单元206、图画存储单元207、帧内预测单元208和帧间预测单元209。

熵解码单元201从接收的比特流提取帧内预测信息、帧间预测信息和一维系数信息。熵解码单元201向帧间预测单元209发送帧间预测信息,向帧内预测单元208发送帧内预测信息,向逆扫描单元202发送系数信息。

逆扫描单元202使用逆扫描模式产生量化块。在将CABAC用于熵编码时,如下确定扫描模式。

在对角线扫描、垂直扫描和水平扫描间选择逆扫描模式。

在帧内预测中,由帧内预测模式和变换单元的大小确定逆扫描模式。在对角线扫描、垂直扫描和水平扫描间选择逆扫描模式。将选择的逆扫描模式分别应用于显著标记、系数符号和系数级别以产生量化块。

在变换单元的大小等于或小于第一大小时,为垂直模式和垂直模式预定数量的相邻帧内预测模式选择水平扫描,为水平模式和水平模式预定数量的相邻帧内预测模式选择垂直扫描,为其他帧内预测模式选择对角线扫描。在变换单元的大小大于第一大小时,使用对角线扫描。在变换单元的大小大于第一大小时,为所有帧内预测模式选择对角线扫描。第一大小为8×8。

在变换单元的大小为4×4时,为垂直模式(模式1)和到垂直模式具有最近方向的第一数量的相邻帧内预测模式应用水平扫描,为水平模式(模式2)和到水平模式具有最近方向的第一数量的相邻帧内预测模式应用垂直模式,为所有其他帧内预测模式应用对角线扫描。亦即,如果假设用于4×4的可允许帧内预测模式是模式0到17,则为模式5、模式6以及模式5和模式6之间允许的模式应用水平扫描,为模式8、模式9以及模式8和9之间允许的模式应用垂直扫描。如果用于4×4的允许帧内预测模式是模式0到34,应用的扫描模式与以下8×8变换单元相同。

在变换单元的大小为8×8时,为垂直模式(模式1)和到垂直模式具有最近方向的第二数量的相邻帧内预测模式应用水平扫描,为水平模式(模式2)和到水平模式具有最近方向的第二数量的相邻帧内预测模式应用垂直扫描,为所有其他帧内预测模式应用对角线扫描。亦即,为模式5、模式6以及模式5和模式6之间允许的模式应用水平扫描,为模式8、模式9以及模式8和9之间允许的模式应用垂直扫描,为所有其他帧内预测模式应用对角线扫描。模式5和模式6之间允许的模式是模式21、12、22、1、23、13和24。模式8和模式9之间允许的模式是模式29、16、30、2、31、17、32和9。

在帧间预测中,使用对角线扫描。

在变换单元的大小大于第二大小时,利用确定的逆扫描模式以子集为单位逆扫描显著标记、系数符号和系数级别以产生子集,逆扫描所述子集以产生量化块。第二大小是4×4。子集的大小可以是4×4块或由扫描模式确定非正方形块。该非正方形块包括16个变换系数。例如,子集的大小对于水平扫描是8×2,对于垂直扫描为2×8,对于对角线扫描是4×4。

用于产生每个子集的逆扫描模式与用于产生量化块的逆扫描模式相同。沿相反方向逆扫描显著标记、系数符号和系数级别。也沿反向逆扫描子集。

从编码器接收最后非零系数位置和非零子集标志。根据最后非零系数位置和逆扫描模式确定编码子集的数量。使用非零子集标记选择要产生的子集。利用逆扫描模式产生主要子集和最后子集。

逆量化单元203从熵解码单元201接收差分量化参数并产生量化参数预测器。通过图1的量化单元104的相同操作产生量化参数预测器。然后,逆量化单元203将差分量化参数和量化参数预测器相加以产生当前编码单元的量化参数。如果当前编码单元的大小等于或大于量化单元的最小大小且未从编码器接收用于当前编码单元的差分量化参数,将差分量化参数设置为0。

针对每个量化单元产生量化参数。如果编码单元的大小等于或大于量化单元的最小大小,为编码单元产生量化参数。如果量化单元中包括多个编码单元,为包含解码次序中一个或多个非零系数的第一编码单元产生量化参数。量化单元之内第一编码单元之后的编码单元与第一编码单元具有相同的量化参数。

仅使用图画参数集中包括的一个参数和最大编码单元的大小来针对每个图画导出量化单元的最小大小。

针对每个量化单元恢复差分量化参数。对编码的差分量化参数进行算术解码以产生差分量化参数的绝对值和表示差分量化参数符号的符号标记。差分量化参数的绝对值是截断一元码的二进制串。然后,利用所述绝对值和符号标记恢复差分量化参数。如果绝对值为零,则不存在符号标记。

逆量化单元203对量化块进行逆量化。

逆变换单元204对逆量化块进行逆变换以恢复残余块。根据预测模式和变换单元的大小自适应地确定逆变换类型。逆变换类型是基于DCT的整数变换或基于DST的整数变换。

帧内预测单元208利用接收的帧内预测信息恢复当前预测单元的帧内预测模式,并根据恢复的帧内预测模式产生预测块。

帧间预测单元209利用接收的帧间预测信息恢复当前预测单元的运动信息,并利用该运动信息产生预测块。

后期处理单元206与图1的后期处理单元110同样工作。

图画存储单元207从后期处理单元206接收经后期处理的图像并在图画单元中存储该图像。所述图画可以是帧或场。

加法器205将恢复的残余块和预测块相加以产生重构块。

图7是流程图,示出了根据本发明产生预测块的方法。

对当前预测单元的帧内预测信息进行熵解码(S110)。

帧内预测信息包括模式组指示符和预测模式索引。模式组指示符是表示当前预测单元的帧内预测模式是否属于最可能的模式组(MPM组)的标志。如果该标志是1,当前预测单元的帧内预测单元属于MPM组。如果标志是0,当前预测单元的帧内预测单元属于残余模式组。残余模式组包括除属于MPM组的帧内预测模式之外的所有帧内预测模式。预测模式索引指定由模式组指示符指定的组之内当前预测单元的帧内预测模式。

利用相邻预测单元的帧内预测模式构造MPM组(S120)。

由左帧内预测模式和上帧内预测模式自适应地确定MPM组的帧内预测模式。左帧内预测模式是左相邻预测单元的帧内预测模式,上帧内预测模式是上相邻预测单元的帧内预测模式。MPM组由三个帧内预测模式构成。

如果不存在左或上相邻预测单元,将左或上相邻单元的帧内预测模式设置为不可用。例如,如果当前预测单元位于图画的左或上边界,则不存在左或上相邻预测单元。如果左或上相邻单元位于其他切片或其他区块(tile)之内,将左或上相邻单元的帧内预测模式设置为不可用。如果左或上相邻单元是帧间编码的,将左或上相邻单元的帧内预测模式设置为不可用。如果上相邻单元位于其他LCU之内,将左或上相邻单元的帧内预测模式设置为不可用。

在左帧内预测模式和上帧内预测模式都可用且彼此不同时,将左帧内预测模式和上帧内预测模式包括在MPM组中,将一个额外的帧内预测模式加到MPM组。将索引0分配给模式编号小的一个帧内预测模式,将索引1分配给另一个。或将索引0分配给左帧内预测模式,将索引1分配给上帧内预测模式。如下由左和上帧内预测模式确定增加的帧内预测模式。

如果左和上帧内预测模式之一是非方向性模式,另一个是方向性模式,将另一个非方向性模式加给MPM组。例如,如果左和上帧内预测模式之一是DC模式,将平面模式加到MPM组。如果左和上帧内预测模式之一是平面模式,将DC模式加到MPM组。如果左和上帧内预测模式都是非方向性模式,将垂直模式加到MPM组。如果左和上帧内预测模式都是方向性模式,将DC模式或平面模式加到MPM组。

在仅有左帧内预测模式和上帧内预测模式之一可用时,将可用的帧内预测模式包括在MPM组中,将另外两个帧内预测模式加到MPM组。如下通过可用的帧内预测模式确定增加的两个帧内预测模式。

如果可用的帧内预测模式是非方向性模式,将其他非方向性模式和垂直模式增加到MPM组。例如,如果可用的帧内预测模式是DC模式,将平面模式和垂直模式增加到MPM组。如果可用的帧内预测模式是平面模式,将DC模式和垂直模式增加到MPM组。如果可用的帧内预测模式是方向性模式,将两个非方向性模式(DC模式和平面模式)增加到MPM组。

在左帧内预测模式和上帧内预测模式都可用且彼此相同时,将可用帧内预测模式包括在MPM组中,将两个额外的帧内预测模式增加到MPM组。如下通过可用的帧内预测模式确定增加的两个帧内预测模式。

如果可用的帧内预测模式是方向性模式,将两个相邻方向性模式增加到MPM组。例如,如果可用的帧内预测模式是模式23,将左相邻模式(模式1)和右相邻模式(模式13)增加到MPM组。如果可用的帧内预测模式是模式30,将两个相邻模式(模式2和模式16)增加到MPM组。如果可用的帧内预测模式是非方向性模式,将其他非方向性模式和垂直模式增加到MPM组。例如,如果可用的帧内预测模式是DC模式,将平面模式和垂直模式增加到MPM组。

在左帧内预测模式和上帧内预测模式都不可用时,将三个额外的帧内预测模式增加到MPM组。这三个帧内预测模式是DC模式、平面模式和垂直模式。按照DC模式、平面模式和垂直模式的次序或平面模式、DC模式和垂直模式的次序将索引0、1和2分配给三个帧内预测模式。

判断模式组指示符是否指示MPM组(S130)。

如果模式组指示符指示MPM组,将预测模式索引指定的MPM组的帧内预测设置为当前预测单元的帧内预测模式(S140)。

如果模式组不指示符指示MPM组,如以下有序步骤那样通过比较MPM组的预测模式索引和帧内预测模式来导出帧内预测(S150)。

1)在MPM组的三个帧内预测模式中,将模式编号最低的帧内预测模式设置为第一候选,将模式编号中间的帧内预测模式设置为第二候选,将模式编号最高的帧内预测模式设置为第三候选。

2)将预测模式索引与第一候选比较。如果预测模式索引等于或大于MPM组的第一候选,将预测模式索引的值增加一。否则,维持预测模式索引的值。

3)将预测模式索引与第二候选比较。如果预测模式索引等于或大于MPM组的第二候选,将预测模式索引的值增加一。否则,维持预测模式索引的值。

4)将预测模式索引与第三候选比较。如果预测模式索引等于或大于MPM组的第三候选,将预测模式索引的值增加一。否则,维持预测模式索引的值。

5)将最后预测模式索引的值设置为当前预测单元的帧内预测模式的模式编号。

基于指定变换单元大小的变换大小指示符确定预测块的大小(S160)。变换大小指示符可以是指定变换单元大小的split_transform_flag。

如果变换单元的大小等于当前预测单元的大小,通过以下步骤S170~S190产生预测块。

如果变换单元的大小小于当前预测单元的大小,通过步骤S170到S190产生当前预测单元第一子块的预测块,通过将预测块和残余块相加产生第一当前子块的残余块和第一子块的重构块。然后,产生解码次序中下一子块的重构块。为所有子块使用同一帧内预测模式。子块具有变换单元的大小。

判断是否当前块的所有参考像素都可用,如果一个或多个参考像素不可用,产生参考像素(S170)。当前块是当前预测单元或所述子块。当前块的大小是变换单元的大小。

基于帧内预测模式和当前块的大小自适应地对参考像素进行过滤(S180)。当前块的大小是变换单元的大小。

在DC模式、垂直模式和水平模式中,不对参考像素进行过滤。在除了垂直和水平模式的方向性模式中,根据当前块的大小调整参考像素。

如果当前块的大小是4×4,在所有帧内预测模式中都不对参考像素过滤。对于8×8、16×16和32×32的大小,随着当前块的大小变大,对参考像素进行过滤的帧内预测模式数量增大。例如,在垂直模式和垂直模式的预定数量的相邻帧内预测模式中不对参考像素进行过滤。在水平模式和水平模式的预定数量的相邻帧内预测模式中也不对参考像素进行过滤。所述预定数量随着当前块大小增大而增大。

利用当前预测单元的参考像素和帧内预测模式产生当前块的预测块(S190)。

在垂直模式中,通过拷贝垂直参考像素的值来产生预测像素。利用角参考像素和左相邻参考像素对与左参考像素相邻的预测像素进行过滤。

在水平模式中,通过拷贝水平参考像素的值来产生预测像素。利用角参考像素和上相邻参考像素对与上参考像素相邻的预测像素进行过滤。

尽管已经参考其某些示范性实施例示出并描述了本发明,但本领域的技术人员将理解,可以在其中做出各种形式和细节的改变而不脱离如所附权利要求界定的本发明精神和范围。

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