对视频数据解码的方法和设备与流程

文档序号:15152507发布日期:2018-08-10 21:18阅读:152来源:国知局

本发明涉及一种对视频数据解码的设备,更具体而言,涉及一种利用运动信息和量化信息产生预测块和残余块以重构出重构块的设备。



背景技术:

用于压缩视频数据的方法包括mpeg-2、mpeg-4和h.264/mpeg-4avc。根据这些方法,一个图画被分成宏块,利用帧间预测或帧内预测产生预测块,从而对每个宏块编码。变换初始块和预测块之间的差异以产生变换块,利用量化参数和预定量化矩阵对变换块进行量化。通过预定扫描模式扫描量化块的量化系数并随后进行熵编码。针对每个宏块调节量化参数,并利用先前的量化参数对其进行编码。

在h.264/mpeg-4avc中,使用运动估计以消除相继图画之间的时间冗余度。为了检测时间冗余度,使用一个或多个参考图画,以估计当前块的运动,并利用运动信息执行运动补偿以产生预测块。运动信息包括一个或多个参考图画索引和一个或多个运动矢量。

根据h.264/mpeg-4avc,仅预测运动矢量并利用相邻运动矢量编码,对参考图画索引编码使得没有相邻的参考图画索引。

不过,如果使用各种尺寸进行帧间预测,当前块的运动信息和一个或多个相邻块的运动信息之间的相关性会增大。而且,如果图像的运动几乎恒定或缓慢,随着图画尺寸变大,参考图画之内当前块的运动矢量和相邻块的运动矢量之间的相关性变高。而且,在扫描大的量化块时,编码单元和变换单元的各种尺寸导致残余块的编码比特增加。



技术实现要素:

技术问题

本发明涉及一种通过利用运动信息和扫描信息产生预测块和残余块以对视频数据解码的设备。

技术方案

本发明的一个方面提供了一种对视频数据解码的设备,包括:熵解码单元,配置成从接收的比特流提取量化系数分量和帧间预测信息;逆扫描单元,配置成对量化系数分量进行逆扫描模式以产生具有变换单元大小的量化块;逆量化单元,配置成产生量化参数并对量化块进行逆量化以产生变换块;逆变换单元,配置成通过对变换块进行逆变换来产生残余块;帧间预测单元,配置成导出运动信息并产生预测块;以及加法器,配置成利用残余块和预测块产生重构块。所述变换单元比4×4块更大,以子集为单位对每个量化系数分量进行逆扫描以产生多个子集,并对多个子集进行逆扫描以产生量化块。

有利效果

根据本发明的设备包括熵解码单元,配置成从接收的比特流提取量化系数分量和帧间预测信息,逆扫描单元,配置成对量化系数分量进行逆扫描模式以产生具有变换单元大小的量化块,逆量化单元,配置成产生量化参数并对量化块进行逆量化以产生变换块,逆变换单元,配置成通过对变换块进行逆变换来产生残余块,帧间预测单元,配置成导出运动信息并产生预测块,以及加法器,配置成利用残余块和预测块产生重构块。所述变换单元比4×4块更大,以子集为单位对每个量化系数分量进行逆扫描以产生多个子集,并对多个子集进行逆扫描以产生量化块。因此,通过包括各种运动矢量候选改善了运动信息的编码效率。而且,通过自适应地存储参考图画的运动信息并自适应地产生时间运动矢量候选,减小了编码器和解码器的计算复杂性,维持了编码效率的改善。而且,通过向每个子集应用对角线扫描模式减少了残余块的编码比特量。

附图说明

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

图2是流程图,示出了根据本发明在帧间预测模式中对视频数据编码的方法;

图3是流程图,示出了根据本发明在amvp模式中对运动信息编码的方法;

图4是示意图,示出了根据本发明的空间运动矢量候选块的位置;

图5是示意图,示出了根据本发明的时间候选块的位置;

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

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

图8是示意图,示出了根据本发明产生量化块的方法;

图9是流程图,示出了根据本发明在帧间预测模式中对图像解码的方法;

图10是流程图,示出了根据本发明在amvp模式中导出运动信息的方法;

图11是流程图,示出了根据本发明在帧间预测模式中产生残余块的方法。

具体实施方式

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

根据本发明的图像编码设备和图像解码设备可以是用户终端,例如个人计算机、个人移动终端、移动多媒体播放器、智能电话或无线通信终端。图像编码装置和图像解码装置可以包括用于和各种装置通信的通信单元、用于存储对图像编码或解码的各种程序和数据的存储器。

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

参考图1,根据本发明的图像编码设备100包括图画分割单元110、帧内预测单元120、帧间预测单元130、变换单元140、量化单元150、扫描单元160、熵编码单元170、逆量化单元155、逆变换单元145、后期处理单元180、图画存储单元190、减法器192和加法器194。

图画分割单元110将图画或切片划分成多个最大编码单元(lcu),并将每个lcu划分成一个或多个编码单元。lcu的大小可以是32×32、64×64或128×128。图画分割单元110确定每个编码单元的预测模式和预测单元大小。

lcu包括一个或多个编码单元。lcu具有递归的四叉树结构,以指定lcu的分割结构。用于指定编码单元的最大大小和最小大小的参数包括在序列参数集中。由一个或多个分裂编码单元标志(split_cu_flag)指定分割结构。编码单元的大小是2n×2n。如果lcu的大小是64×64块,最小编码单元(scu)的大小是8×8块,编码单元的大小可以是64×64、32×32、16×16或8×8。

编码单元包括一个或多个预测单元。在帧内预测中,预测单元的大小是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。如果编码单元的大小小于16×16,不允许不对称分割模式。

编码单元包括一个或多个变换单元。变换单元具有递归的四叉树结构,以指定编码单元的分割结构。由一个或多个分裂变换单元标记(split_transform_flag)指定分割结构。用于指定变换单元的最大大小和最小大小的参数包括在序列参数集中。色度变换单元具有变换单元的一半高度和一半宽度,色度变换单元的最小大小为4×4。

帧内预测单元120确定当前预测单元的帧内预测模式并利用帧内预测模式产生预测块。

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

变换单元140利用当前块和预测块变换残余信号以产生变换块。在变换单元的单元中变换残余信号。变换矩阵由预测模式和变换单元的大小确定。变换矩阵是基于dct的整数变换矩阵或基于dst的整数变换矩阵。将基于dct的整数变换矩阵用于帧间预测中。

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

量化单元150产生量化参数预测器并通过从量化参数减去量化参数预测器产生差分量化参数。对差分量化参数进行熵编码。

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

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

将差分量化参数转换到用于差分量化参数绝对值的容器以及用于通过二值化过程表示差分量化参数符号的容器中,对容器进行算术编码。如果差分量化参数的绝对值是0,可以省略用于表示符号的容器。将截尾的一元组用于绝对值的二值化。

量化单元150利用量化矩阵和量化参数对变换块进行量化以产生量化块。向逆量化/变换单元180和扫描单元160提供量化块。

扫描单元160确定向量化块应用扫描模式。

在帧间预测模式中,如果将cabac用于熵编码,则使用对角线扫描作为扫描模式。将量化块的量化系数分成三个系数分量。系数分量是显著系数、系数标志和系数级别。向每个系数分量应用对角线扫描。显著标志表示对应的量化系数是否为零。系数符号表示非零量化系数的符号,系数级别表示非零量化系数的绝对值。

在变换单元的大小大于预定大小时,将量化块分成多个子集并向每个子集应用对角线扫描。根据对角线扫描分别扫描每个子集的显著标记、系数符号和系数级别。预定大小是4×4。子集是包含16个变换系数的4×4块。

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

对表示上一非零系数位置的参数编码并发送到解码器。该参数指定上一非零量化变换系数在变换单元中的位置。可以针对除第一子集和最后子集之外的每个子集设置非零子集标志。第一子集覆盖dc系数。最后子集覆盖最后的非零系数。非零子集标志表示子集是否包含非零系数。

逆量化/变换单元180对量化块的量化系数进行逆量化,并对逆量化块进行逆变换以产生残余块。

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

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

熵编码单元170对从扫描单元160接收的扫描系数分量、从帧内预测单元120接收的帧内预测信息、从帧间预测单元130接收的运动信息等进行熵编码。

图2是流程图,示出了根据本发明在帧间预测模式中对视频数据编码的方法。

确定当前块的运动信息(s110)。当前块是预测单元。由编码单元的大小和分割模式确定当前块的大小。

运动信息根据预测类型而变化。如果预测类型是单向预测,运动信息包括指定参考表0的图画的参考索引和运动矢量。如果预测类型是双向预测,运动信息包括指定参考表0的图画的参考索引、指定参考表1的图画的参考索引和表0运动矢量与表1运动矢量。

利用运动信息产生当前块的预测块(s120)。如果运动矢量表示像素位置,则通过拷贝运动矢量指定的参考图画块来产生预测块。如果运动矢量表示子像素位置,通过对参考图画的像素进行内插产生预测块。

利用当前块和预测块产生残余块(s130)。

对残余块进行编码(s140)。残余块具有与变换单元相同的大小。如果预测单元比变换单元大,将当前块和预测块之间的残余信号划分成多个残余块。由图1的变换单元140、量化单元150、扫描单元160和熵编码单元170对一个或多个残余块编码。

对运动信息进行编码(s150)。可以利用当前块的空间候选和时间候选预测性地对运动信息编码。在跳跃模式、合并模式或amvp模式中对运动信息编码。在跳跃模式中,预测单元具有编码单元的大小,利用与合并模式相同的方法对运动信息编码。

图3是流程图,示出了根据本发明在amvp模式中对运动信息编码的方法。图4是示意图,示出了根据本发明的空间运动矢量候选块的位置。

左运动矢量候选是当前块左块(块a)或左下块(块d)的运动矢量。上运动矢量候选是当前块的上块(块b)、右上块(块c)或左上块(块e)的运动矢量。相邻块属于相对于当前块的四种类型之一。如果相邻块与当前块具有相同的参考图画和相同的参考图画列表,相邻块属于第一类型。如果相邻块与当前块具有相同的参考图画和不同的参考图画列表,相邻块属于第二类型。如果相邻块与当前块具有不同的参考图画和相同的参考图画列表,相邻块属于第三类型。如果相邻块与当前块具有不同的参考图画和不同的参考图画列表,相邻块属于第四类型。

导出左运动矢量候选(s210)。判断块d属于第一类型还是第二类型。如果块d属于第一类型或第二类型,将块d的运动矢量设置为左运动矢量候选。如果块d不属于第一类型或第二类型,判断块a属于第一类型还是第二类型。如果块a属于第一类型或第二类型,将块a的运动矢量设置为左运动矢量候选。如果块a不属于第一类型或第二类型,判断块d属于第三类型还是第四类型。如果块d属于第三类型或第四类型,将块d的缩放运动矢量设置为左运动矢量候选。如果块d不属于第三类型或第四类型,判断块a属于第三类型还是第四类型。如果块a属于第三类型或第四类型,将块a的缩放运动矢量设置为左运动矢量候选。如果块a不属于第三类型或第四类型,将左运动矢量候选设置为不可用。

导出上运动矢量候选(s220)。根据左运动矢量候选确定上运动矢量候选。如果块c、b和e的任一个属于第一类型或第二类型,将按照所述次序检索块c、b和e时遇到的第一个块的运动矢量设置为上运动矢量候选。但是,如果块c、b和e中仅有一个不属于第一类型或第二类型,则如下确定上运动矢量。

如果左运动矢量候选属于第一类型或第二类型,将属于第三类型或第四类型的第一块的运动矢量设置为上运动矢量候选。如果块c、b和e之一不属于第三类型或第四类型,将上运动矢量设置为不可用。第一块是按所述顺序检索块c、b和e时第一个遇到的块。

如果左运动矢量候选属于第三类型或第四类型,将上运动矢量候选设置为不可用。

导出时间运动矢量候选(s230)。如下导出时间运动矢量候选。如果左运动矢量候选候选和上运动矢量候选候选可用且彼此不同,可以不导出时间运动矢量候选候选。

首先,确定时间候选图画。时间候选图画包括时间候选块。在切片之内使用一个时间候选图画。可以将时间候选图画的参考图画索引设置为零。

如果当前切片为p切片,将参考图画列表0的参考图画之一设置为时间候选图画。如果当前切片为b切片,将参考图画列表0和1的参考图画之一设置为时间候选图画。如果当前切片为b切片,则在切片报头中包括列表指示符,指明时间候选图画属于参考图画列表0还是1。可以在切片报头中包括指定时间候选图画的参考图画索引。

接下来,确定时间候选块。时间候选块可以是第一候选块或第二候选块。如果有第一候选块,将第一候选块设置为时间候选块。如果没有第一候选块,将第二候选块设置为时间候选块。如果没有第二候选块,将时间候选块设置为不可用。

图5是示意图,示出了根据本发明的时间候选块的位置。如图5所示,第一候选块可以是块c的右下角块(块h)。块c与当前块具有相同的大小和相同的位置,位于时间候选图画之内。第二候选块是覆盖块c中心左上像素的块。

如果确定了时间候选块,就将时间候选块的运动矢量设置为时间运动矢量候选。

构造运动矢量候选列表(s240)。按照左运动矢量候选、上运动矢量候选和时间运动矢量候选的次序列出运动矢量候选。如果左运动矢量候选和上运动矢量候选相同,从运动矢量候选列表去除上运动矢量候选。

如果运动矢量候选的数量小于预定数量,向运动矢量列表增加一个或多个零运动矢量(s250)。预定数量可以是2。

选择运动矢量候选作为运动矢量预测器,并通过从当前块的运动矢量减去运动矢量候选来产生差分运动矢量(s260)。

对参考图画索引、差分运动矢量和amvp索引编码(s270)。amvp索引指定运动矢量预测器。

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

根据本发明的图像解码设备200包括熵解码单元210、逆扫描单元220、逆量化单元230、逆变换单元240、帧内预测单元250、帧间预测单元260、后期处理单元270、图画存储单元280和加法器290。

熵解码单元210利用语境自适应二进制算术解码方法从接收的比特流提取帧内预测信息、帧间预测信息和量化系数分量。

逆扫描单元220向量化系数分量应用逆扫描模式以产生量化块。在帧间预测中,逆扫描模式为对角线扫描。量化系数分量包括显著标记、系数符号和系数级别。

在变换单元的大小大于预定大小时,利用对角线扫描以子集为单位逆扫描显著标记、系数符号和系数级别以产生子集,利用对角线扫描逆扫描子集以产生量化块。预定大小等于子集的大小。子集是包括16个变换系数的4×4块。沿相反方向逆扫描显著标记、系数符号和系数级别。也沿反向逆扫描子集。

图7是示出了根据本发明的逆扫描模式的示意图。

如图7所示,如果变换单元的大小为16×16,产生十六个4×4子集。沿相反方向产生子集。沿相反方向逆扫描量化系数分量以产生子集。

图8是示意图,示出了根据本发明产生量化块的方法。

在图8中,第一子集包含dc系数,最后子集包含最后的非零系数。针对除第一子集和最后子集之外的每个子集定义子集标志。子集标志指出子集是否包含非零系数。

逆扫描单元220利用变换单元最后非零系数的位置确定要产生的从最后子集到第一子集的子集数量。然后,逆扫描单元220从最后子集到第一子集产生每个子集。如果子集标志指明子集包含非零系数,则通过逆扫描显著系数、系数符号和系数级别来产生子集。如果子集标志指明子集不包含非零系数,则将子集的所有系数都设置为0。通过逆扫描显著系数、系数符号和系数级别来产生最后子集和第一子集。

逆量化单元230从熵解码单元210接收差分量化参数并产生量化参数预测器,以产生编码单元的量化参数。产生量化参数预测器的操作与图1的量化单元150操作相同。然后,通过将差分量化参数和量化参数预测器相加产生当前编码单元的量化参数。如果不从编码器接收用于当前编码单元的差分量化参数,将差分量化参数设置为0。

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

逆变换单元240对逆量化块进行逆变换以恢复残余块。根据预测模式和变换单元的大小自适应地确定逆变换类型。逆变换类型是基于dct的整数变换或基于dst的整数变换。在帧间预测中,使用基于dct的整数变换。

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

帧间预测单元260利用接收的帧间预测信息导出当前预测单元的运动信息,并利用运动信息产生预测块。

后期处理单元270与图1的后期处理单元180同样工作。

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

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

图9是流程图,示出了根据本发明在帧间预测模式中对图像解码的方法。

导出当前块的运动信息(s310)。当前块是预测单元。由编码单元的大小和分割模式确定当前块的大小。

运动信息根据预测类型而变化。如果预测类型是单向预测,运动信息包括指定参考表0的图画的参考索引和运动矢量。如果预测类型是双向预测,运动信息包括指定参考表0的图画的参考索引、指定参考表1的图画的参考索引和表0运动矢量与表1运动矢量。

根据运动信息的编码模式对运动信息进行自适应解码。由跳越标记和合并标记确定运动信息的编码模式。如果跳越标记等于1,则不存在合并标记,编码模式为跳跃模式。如果跳越标记等于0且合并标记等于1,编码模式为合并模式。如果跳越标记和合并标志等于0,编码模式为amvp模式。

利用运动信息产生当前块的预测块(s320)。

如果运动矢量表示像素位置,则通过拷贝运动矢量指定的参考图画块来产生预测块。如果运动矢量表示子像素位置,通过对参考图画的像素进行内插产生预测块。

产生残余块(s330)。由图6的熵解码单元210、逆扫描单元220、逆量化单元230和逆变换单元240产生残余块。

利用预测块和残余块产生重构块(s340)。

预测块具有预测单元的大小,残余块具有变换单元的大小。因此,将残余信号和同样大小的预测信号相加以产生重构信号。

图10是流程图,示出了根据本发明在amvp模式中导出运动信息的方法。

从比特流提取参考图画索引、差分运动矢量和amvp索引(s410)。amvp索引指定运动矢量预测器。

导出左运动矢量候选(s420)。如图3的s210所述导出左运动矢量候选。

导出上运动矢量候选(s430)。如图3的s220所述导出上运动矢量候选。

导出时间运动矢量候选(s440)。如图3的s230中所述导出时间运动矢量候选。如图3的s230中所述导出时间运动矢量候选。如果左运动矢量候选和上运动矢量候选可用且彼此不同,可以不导出时间运动矢量候选。

构造运动矢量候选列表(s450)。按照左运动矢量候选、上运动矢量候选和时间运动矢量候选的次序列出运动矢量候选。如果左运动矢量候选和上运动矢量候选相同,从运动矢量候选列表去除上运动矢量候选。

如果运动矢量候选的数量小于2,向运动矢量列表增加一个或两个零运动矢量(s460)。

将amvp索引指定的运动矢量候选设置为运动矢量预测器(s470)。

通过将差分运动矢量和运动矢量预测器相加产生当前块的运动矢量(s480)。

图11是流程图,示出了根据本发明在帧间预测模式中产生残余块的方法。

由熵解码单元产生量化的系数分量(s510)。

通过根据对角线扫描逆扫描量化系数分量来产生量化块(s520)。量化系数分量包括显著标记、系数符号和系数级别。

在变换单元的大小大于预定大小时,利用对角线扫描以子集为单位逆扫描显著标记、系数符号和系数级别以产生子集,利用对角线扫描逆扫描子集以产生量化块。预定大小等于子集的大小。子集是包括16个变换系数的4×4块。沿相反方向逆扫描显著标记、系数符号和系数级别。也沿反向逆扫描子集。

从比特流提取最后非零系数位置和非零子集标志。根据最后非零系数位置确定编码子集的数量。使用非零子集标志判断子集是否具有至少一个非零系数。如果非零子集标志等于0,利用对角线扫描产生子集。利用逆扫描模式产生第一个子集和最后一个子集。

利用逆量化矩阵和量化参数对量化块进行逆量化(s530)。

如下导出量化参数。

确定最小量化单元的大小。从比特流的图画参数集提取参数cu_qp_delta_enabled_info,并利用参数确定最小的量化单元。

导出当前编码单元的差分量化参数。对编码的差分量化参数进行算术解码以产生表示差分量化参数的绝对值的容器串和表示差分量化参数符号的容器。容器串可以是截尾的一元码。如果差分量化参数的绝对值是零,则不存在表示符号的容器。利用表示绝对值的容器串和表示符号的容器导出差分量化参数。

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

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

如果多个编码单元属于最小的量化单元,则导出解码次序中第一编码单元的量化参数预测器并用于其他编码单元。

利用差分量化参数和量化参数预测器产生当前编码单元的量化参数。

通过对逆量化块进行逆变换来产生残余块(s540)。使用一维水平和垂直的基于dct的逆变换。

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

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