存储运动信息的方法和使用该方法导出时间运动矢量预测值的方法与流程

文档序号:13425712阅读:207来源:国知局
存储运动信息的方法和使用该方法导出时间运动矢量预测值的方法与流程

本申请是2013年9月25日提交的国际申请日为2012年2月9日的申请号为201280015152.8(pct/kr2012/000965)的,发明名称为“存储运动信息的方法和使用该方法导出时间运动矢量预测值的方法”专利申请的分案申请。

本发明涉及视频数据压缩技术,并且更特别地,涉及在帧间预测中推导时间运动矢量预测值的方法,以及存储对于推导时间运动矢量预测值所必需的信息的方法。



背景技术:

最近,对高清晰度和高质量图像的需求在各种应用领域中增加。当图像具有较高分辨率和较高质量时,关于图像的数据量增加更多。从而,当使用诸如现有的有线或无线宽带线传送图像数据或者将图像数据存储在现有的存储媒体中时,传送成本和存储成本增加。为了有效地传送、存储和再现关于高分辨率和高质量图像的信息,可以利用高效图像压缩技术。

可以使用帧间预测和帧内预测提高图像压缩效率。

在帧间预测中,从当前图片的先前或随后图片预测包括在当前图片中的像素值。在帧内预测中,使用当前图片中的像素信息,预测包括在当前图片中的像素值。

除了帧间预测和帧内预测之外,可以使用用于防止由于照明变化等导致的图像质量恶化的加权值预测技术,将短代码分配给具有高出现频率的符号并且将长代码分配给具有低出现频率的符号的熵编码技术等,以用于更有效的处理。



技术实现要素:

技术问题

本发明的技术目标在于提供一种执行有效预测的方法和设备。

本发明的另一个技术目标在于提供一种可以在帧间预测中推导时间运动矢量预测值时防止失真并且提高压缩效率的方法和设备。

本发明的另一个技术目标在于提供一种可以在存储用于推导时间运动矢量预测值的信息时缩减存储容量的方法和设备。

本发明的另一个技术目标在于提供一种可以在存储用于推导时间运动矢量预测值的信息时减少计算负荷并且降低复杂度的方法和设备。

问题的解决方案

(1)根据本发明的一方面,提供一种运动信息存储方法,包括以下步骤:在当前图片中的共址图片中的运动数据存储单元的块当中确定代表性块;将代表性块的运动信息存储为运动数据存储单元的运动信息,其中,代表性块的运动信息被用作运动数据存储单元中所包括的块的运动信息。

(2)在(1)中,代表性块的运动信息包括运动矢量和参考索引,并且代表性块的运动矢量和参考索引被用作运动数据存储单元中所包括的块的运动矢量和参考索引。

(3)在(2)中,可以指示在运动数据存储单元中所包括的块当中在帧内预测模式下编码的块是帧内块。

(4)在(3)中,将用于指示块是帧内块的参考索引,而不是代表性块的参考索引,分配给在运动数据存储单元中所包括的块当中在帧内预测模式下编码的块。

(5)在(3)中,可以使用编码块的预测类型来指示:在运动数据存储单元中所包括的块当中在帧内预测模式下编码的块是帧内块。

(6)在(1)中,代表性块的运动信息包括运动矢量、参考索引、以及预测模式,并且代表性块的运动矢量、参考索引、以及预测模式被用作运动数据存储单元中所包括的块的运动矢量、参考索引、以及预测模式。

(7)在(1)中,代表性块的运动信息包括运动矢量、参考索引、以及预测模式,代表性块的运动矢量、参考索引、以及预测模式可以被用作运动数据存储单元中所包括的块的运动矢量、参考索引、以及预测模式,并且可以指示在运动数据存储单元中所包括的块当中在帧内预测模式下编码的块是帧内块。

(8)在(1)中,代表性块可以是运动数据存储单元中所包括的块当中的左上块。

(9)在(1)中,代表性块可以是当按照预定搜索顺序搜索运动数据存储单元中所包括的块时首先被搜索的帧间块。

(10)在(9)中,搜索顺序可以是从运动数据存储单元中的左上块开始的光栅扫描顺序。

(11)在(9)中,搜索顺序可以是从运动数据存储单元中的中心块按照螺旋方向进行的顺序。

(12)在(1)中,代表性块可以是其参考索引具有值0的块,并且代表性块是当按照预定搜索顺序搜索运动数据存储单元中所包括的块时首先被搜索的帧间块。

(13)在(1)中,当在帧内预测模式下对运动数据存储单元中所包括的所有块编码时,在邻近运动数据存储单元的块当中在帧内预测模式下编码的块被选择为代表性块。

(14)在(1)中,代表性块可以是运动数据存储单元的中心处的四个块当中的位于右下角的块。

(15)在(1)中,代表性块可以是在邻近运动数据存储单元的块当中的、邻近运动数据存储单元的右下角的块。

(16)在(1)中,运动数据存储单元的尺寸可以由编码器确定并且以信号发送至解码器。

(17)在(1)中,当位于图片边界处的边界运动数据存储单元的尺寸小于位于图片内部的内部运动数据存储单元,并且与内部运动数据存储单元的代表性块共址的块不可用作为边界运动数据存储单元的代表性块时,边界运动数据存储单元中所包括的块当中位于左上角的块可以被确定为边界运动数据存储单元的代表性块。

(18)根据本发明的另一方面,提供一种时间运动矢量预测值推导方法,包括以下步骤:确定当前图片的共址图片;确定共址图片中的当前块的共址预测单元;以及将共址预测单元的运动信息设置为当前块的时间运动矢量预测值,其中,共址预测单元是位于运动数据存储单元中的左上角处的预测单元,所述运动数据存储单元包括用于共址预测单元的定位像素,并且定位像素是在共址图片中邻近当前块的共址块的右下角的像素。

(19)在(18)中,当邻近共址块的右下角的像素是不可用于帧间预测的像素时,在位于共址块的中心处的四个像素当中在右下角处的像素可以被选择为定位像素。

(20)在(18)中,共址预测单元可以是位于运动数据存储单元的中心处的预测单元和邻近运动数据存储单元的右下角的预测单元中的任一个。

本发明的有益效果

根据本发明的多个方面,可以在压缩图像数据的处理中提高预测效率并且改进编码/解码性能。

根据本发明的多个方面,可以在推导用于帧间预测的时间运动矢量预测值时防止失真并且提高压缩效率。

根据本发明的多个方面,可以在存储用于推导时间运动矢量预测值的信息时减小存储容量。

根据本发明的多个方面,可以在存储用于推导时间运动矢量预测值的信息时减少计算负荷并且降低复杂度。

附图说明

图1是示意性地示出根据本发明的实施例的图像编码设备(编码器)的框图。

图2是示意性地示出根据本发明的实施例的图像解码设备的框图。

图3是示意性地示出当amvp被应用至帧间预测模式时推导运动矢量的方法的实例的流程图。

图4是示意性地示出创建mvp候选列表的方法的实例的概念图。

图5是示意性地示出在成像解码设备中推导用于帧间预测的tmvp的方法的实例的流程图。

图6是示意性地示出指定colpu的方法的示意图。

图7是示意性地示出存储运动信息的方法的示意图。

图8是示意性地示出在不考虑参考索引的情况下执行运动矢量内存压缩(运动矢量存储缩减)的实例的示意图。

图9是示意性地示出当在应用本发明的系统中将4x4运动数据块设置为单个运动数据存储单元时的运动数据块的运动信息的示意图。

图10是示意性地示出根据本发明用于搜索预测模式的顺序的示意图,在该预测模式中对运动数据存储单元中的运动数据块进行编码。

图11是示意性地示出根据本发明使用当前运动数据存储单元的邻近块存储关于当前运动数据存储单元的运动信息的方法的示意图。

图12是示意性地示出当执行运动矢量内存压缩时对参考索引以及运动矢量执行运动信息内存压缩的状态的示意图。

图13是示意性地示出当执行运动矢量内存压缩时根据本发明仅对帧间块执行运动矢量和参考索引的运动信息内存压缩的状态的示意图。

图14是示意性地示出当执行运动矢量内存压缩时在根据本发明执行运动矢量和参考索引的运动信息内存压缩的状态下推断帧内块的方法的示意图。

图15示意性地示出当执行运动矢量内存压缩时根据本发明压缩关于预测模式的信息的状态的示意图。

图16是示意性地示出当压缩并且存储运动信息时,根据本发明利用与邻近当前运动数据存储单元的块有关的信息的方法的示意图。

图17是示意性地示出当压缩并且存储运动信息时,根据本发明压缩并且存储比运动信息的压缩和存储单元更小的像素块的运动信息的方法的示意图。

图18是示意性地示出当代表性运动数据块是运动数据存储单元的左上块时,根据本发明压缩并且存储剩余块的运动信息的方法的示意图。

图19是示意性地示出当代表性运动数据块是运动数据存储单元的右下块时,根据本发明压缩并且存储剩余块的运动信息的方法的示意图。

图20是示意性地示出当代表性运动数据块是运动数据存储单元的右下块但是在剩余块中存在不可用区域时,压缩并且存储剩余块的运动信息的方法的示意图。

图21是示意性地示出当代表性运动数据块是运动数据存储单元的中心左上块时,根据本发明压缩并且存储剩余块的运动信息的方法的示意图。

图22是示意性地示出当代表性运动数据块是运动数据存储单元的中心左上块但是在剩余块中存在不可用区域时,压缩并且存储剩余块的运动信息的方法的示意图。

图23是示意性地示出位于中心处的运动信息被用作tmvp,而不是在邻近当前帧的帧中位于与当前块相同的位置处的块的左上侧处的运动信息的实例的示意图。

图24是示意性地示出当推导tmvp时,处理位于中心处的帧间块的运动信息的方法的示意图。

图25是示意性地示出根据本发明基于在参考图片中位于col块的中心处的块的运动信息来推导tmvp的方法的示意图。

图26是示意性地示出根据本发明考虑帧内块的存在或不存在来推导tmvp的方法的示意图。

具体实施方式

本发明可以以多种形式被不同地修改,并且其特定实施例将被描述并且在图中示出。然而,实施例不意图限制本发明。以下说明书中使用的术语仅用于描述特定实施例,而不意图限制本发明。只要被不同地清楚地理解,单数的表述包括复数的表述。诸如“包括”和“具有”的术语指示存在以下说明中使用的特征、数量、步骤、操作、元件、组件或其结合,并且从而应该理解,不排除一个或多个不同特征、数量、步骤、操作、元件、组件或其结合的存在或添加的可能性。

另一方面,本发明中描述的图中的元件被独立绘制以用于便于说明图像编码/解码设备中的不同特定功能的目的,并且不意味着元件由独立硬件或独立软件实现。例如,元件中的两个或多个元件可以被结合形成单个元件,或者一个元件可以被划分为多个元件。元件被结合和/或划分的实施例属于本发明的范围,而不脱离本发明的概念。

此后,将参考附图详细地描述本发明的示例性实施例。图中的类似的组成部分将由类似的参考数字指代并且不被重复描述。

图1是示意性地示出根据本发明的实施例的图像编码设备(编码器)的框图。参考图1,图像编码设备100包括图片划分模块105、预测模块110、变换模块115、量化模块120、重排模块125、熵编码模块130、解量化模块135、逆变换模块140、滤波器模块145、以及存储器150。

图片划分模块105可以将输入图片划分为至少一个处理单元。在此,处理单元可以是预测单元(此后称为“pu”)、变换单元(此后称为“tu”)、或编码单元(此后称为“cu”)。在本说明书中,为了便于解释的目的,预测单元可以由预测块表示,变换单元可以由变换块表示,以及编码单元可以由编码块表示。

预测模块110包括执行帧间预测处理的帧间预测模块和执行帧内预测处理的帧内预测模块,如随后描述的。预测模块110对通过图片划分模块105划分的图片的处理单元执行预测处理,以创建预测块。在预测模块110中,图片的处理单元可以是cu、tu、或pu。可以确定对相应处理单元执行的预测是帧间预测还是帧内预测,并且可以确定预测方法的特定详情(例如,预测模式)。经过预测处理的处理单元可以不同于确定其预测方法和特定详情的处理单元。例如,预测方法和预测模式可以由pu单元确定,并且预测处理可以由tu单元执行。

在帧间预测中,基于与当前图片的先前图片和/或随后图片中的至少一个有关的信息来执行预测处理以创建预测块。在帧内预测中,基于当前图片的像素信息来执行预测处理以创建预测块。

在帧间预测中,参考图片被选择用于pu,并且具有与pu相同尺寸的参考块可以通过整数像素采样来选择。然后,创建预测块,在该预测块中具有当前pu的残留信号被最小化并且运动矢量幅度被最小化。另一方面,跳过(skip)模式、合并模式、mvp(运动矢量预测)等可以被用作帧内预测方法。可以以小于整数像素的像素采样,诸如1/2像素采样和1/4像素采样,为单位,创建预测块。在此,运动矢量也可以以小于整数像素的像素采样为单位来表示。例如,亮度像素可以以1/4像素为单位表示,并且色度像素可以以1/8像素为单位表示。

诸如索引、运动矢量(例如,运动矢量预测值)、以及通过帧间预测选择的参考图片的残留信号的信息被熵编码,并且被发送至解码器。

当执行帧内预测时,可以以pu为单位确定预测模式,并且可以以pu为单位执行预测处理。可以以pu为单位确定预测模式,并且可以以tu为单位执行帧间预测。

帧内预测中的预测模式包括33个方向预测模式和至少两个非方向模式。非方向模式包括dc预测模式和平面模式。

在帧内预测中,在将滤波器应用至参考采样之后,可以产生预测块。此时,可以根据帧内预测模式和/或当前块的尺寸,确定是否应该将滤波器应用至参考采样。当前块可以是将经过预测处理的变换单元。另一方面,本说明书中的像素的使用是指,使用诸如像素值的像素信息。为了便于解释的目的,应该注意,表述“使用像素的信息”或“使用像素值”可以由“使用像素”简单地表示。特定帧内预测方法如随后所述。

pu具有多种尺寸和形状。例如,在帧间预测的情况下,pu可以具有诸如2nx2n、2nxn、nx2n、以及nxn的尺寸。在帧内预测的情况下,pu可以具有诸如2nx2n和nxn(其中,n是整数)的尺寸。具有nxn尺寸的pu可以被设置为仅应用至特定情况。例如,具有nxn尺寸的pu可以被设置为仅用于最小编码单元,或者可以被设置为仅用于帧内预测。除了具有上述尺寸的pu之外,可以另外限定和使用具有诸如nxmn、mnxn、2nxmn、以及mnx2n(其中,m<1)的尺寸的pu。

将所产生的预测块和原始块之间的残值(残留块或残留信号)输入至变换模块115。被用于预测的预测模式信息、运动矢量信息等与残值一起通过熵编码模块130编码,并且被发送至解码器。

变换模块115以tu为单位对残留块执行变换处理并且输出变换系数。变换模块115中的变换单元可以是tu,并且可以具有四叉树(quadtree)结构。变换单元的尺寸可以被确定在预定的最大和最小尺寸范围内。变换模块115可以使用dct(离散余弦变换)和/或dst(离散正弦变换)变换残留块。

量化模块120可以量化通过变换模块115变换的残值,并且可以输出量化系数。由量化模块120计算的值可以被提供给解量化模块135和重排模块125。

重排模块125可以重排从量化模块120提供的量化系数。通过重排量化系数,可以提高熵编码模块130中的编码效率。重排模块125可以通过使用系数扫描方法,将二维块形式的量化系数重排为一维矢量的形式。重排模块125可以通过基于从量化模块发送的系数的随机统计信息改变系数扫描的顺序,来提高熵编码模块130中的熵编码效率。

熵编码模块130对通过重排模块125重排的量化系数执行熵编码处理。熵编码方法的实例包括指数哥伦布方法、cavlc(上下文自适应变长度编码)方法、cabac(上下文自适应二进制算术编码)方法。熵编码模块130可以对多种信息编码,诸如从重排模块125和预测模块110发送的编码单元的残留系数信息和块类型信息、预测模式信息、划分单元信息、预测单元信息、变换单元信息、运动矢量信息、参考图片信息、块内插信息、以及滤波信息。

如有必要,熵编码模块130可以对将被发送的参数集合或语法给予预定改变。

解量化模块135解量化通过量化模块120量化的值。逆变换模块140逆变换通过解量化模块135解量化的值。通过解量化模块135和逆变换模块140生成的残值与通过预测模块110预测的预测块合并,以创建重建块。

滤波器模块145将去块滤波器、alf(自适应环路滤波器)、sao(采样自适应偏移)应用至重建图片。

去块滤波器去除重建图片中的块之间的边界处生成的块失真。alf基于原始图片与重建图片的比较的结果值,执行滤波处理,该重建图片的块被通过去块滤波器滤波。仅当高效率是必须的时,可以应用alf。sao重建对其应用了去块滤波的残留块和原始图片之间的偏移差,并且被以频带偏移、边缘偏移等的形式应用。

另一方面,滤波器模块145可以不对用于帧间预测的重建块执行滤波处理。

存储器150存储通过滤波器模块145计算的重建块或图片。当执行帧间预测时,将存储在存储器150中的重建块或图片提供给预测模块110。

图2是示意性地示出根据本发明的实施例的图像解码设备的框图。参考图2,图像解码设备200包括熵解码模块210、重排模块215、解量化模块220、逆变换模块225、预测模块230、滤波器模块235、以及存储器240。

当从图像编码设备输入图像比特流时,基于通过图像编码设备处理图像信息的顺序,对输入比特流解码。

例如,当图像编码设备使用诸如cavlc的可变长度编码(此后称为“vlc”)方法以执行熵编码处理时,图像解码模块210可以实现如在图像编码设备中使用的相同vlc表,并且可以执行熵解码处理。当图像编码设备使用cabac执行熵编码处理时,熵解码模块210可以使用对应于其的cabac执行熵解码处理。

将通过熵解码模块210解码的信息中的用于创建预测块的信息提供给预测模块230,并且将通过熵解码模块熵解码的残值输入到重排模块215。

重排模块215基于图像编码设备中的重排方法,重排通过熵解码模块210熵解码的比特流。重排模块215将以一维矢量形式表示的系数重建并且重排为二维块形式的系数。重排模块215被提供有与通过编码模块执行的系数扫描相关的信息,并且可以使用基于扫描顺序逆向地扫描系数的方法执行重排,相应的编码模块以该扫描顺序执行扫描。

解量化模块220基于从编码器提供的量化参数和重排后的块的系数值执行解量化。

逆变换模块225对来自图像编码设备的量化结果执行已由图像编码设备的变换模块执行的dct和dst的逆dct和逆dst。基于通过图像编码设备确定的图片的变换单元或划分单元,执行逆变换。图像编码设备的变换模块根据诸如预测方法、当前块的尺寸、以及预测方向的多个信息元素,选择性地执行dct和dst,并且图像解码设备的逆变换模块225基于与通过图像编码设备的变换模块执行的变换有关的变换信息执行逆变换。

预测模块230基于从熵解码模块210提供的预测块创建信息和从存储器240提供的先前解码的块和/或图片信息,创建预测块。可以使用通过预测模块230生成的预测块和从逆变换模块225提供的残留块,推导重建块。当当前pu的预测模式是帧内预测模块(帧内模式)时,可以执行基于当前图片中的像素信息创建预测块的帧内预测处理。

当当前pu的预测模式是帧间预测模式(帧间模式)时,可以基于包括在当前图片的先前图片或随后图片中的至少一个中的信息,对当前pu执行帧间预测处理。此时,可以由从编码器接收的跳过标记、合并标记等中推导从图像编码设备提供的当前pu的帧间预测所必需的运动信息,例如,关于运动矢量的信息、参考图片索引等。

将重建块和/或图片提供给滤波器模块235。滤波器模块235对重建块和/或图片执行去块滤波处理、sao(采样自适应偏移)处理、和/或自适应环路滤波处理。

存储器240存储用作参考图片或参考块的重建图片或块,并且将重建图片提供给输出模块。

在帧间预测模式的情况下,解码器和编码器推导当前块的运动信息,并且基于所推导的运动信息对当前块执行帧间预测。

图3是示意性地示出当将amvp(高级运动矢量预测值)应用至帧间预测模式时推导运动矢量的方法的实例的流程图。

参考图3,编码器和解码器可以推导当前块的运动矢量预测值(此后称为“mvp”)候选列表(s310)。mvp表示当前块的运动矢量的预测值。

编码器和解码器可以使用邻近当前块的可用相邻块和/或与当前块共址(co-located)的参考图片的块当中的可用块(为了便于解释的目的,此后称为“col块”(共址块))的运动矢量,生成mvp候选列表。

随后将描述创建mvp候选列表的具体方法。

在本说明书中,为了便于解释的目的,邻近当前块的块被限定为“相邻块”。

编码器和解码器可以选择包括在mvp候选列表中的mvp候选者中的当前块的mvp。

编码器可以通过对包括在mvp候选列表中的mvp候选者应用运动矢量竞争(competition)(mvc),选择当前块的最佳mvp。当选择mvp时,编码器使用比特流将mvp索引传送到解码器。mvp索引是指示当前块的mvp的索引,并且选自包括在mvp候选列表中的mvp候选者。

解码器从编码器接收mvp索引。解码器使用所接收的mvp索引,在包括在mvp候选列表中的mvp候选者中选择当前块的mvp。

解码器可以使用所选的mvp推导当前块的运动矢量(s330)。

当选择当前块的mvp时,编码器计算当前块的运动矢量和mvp之间的差。运动矢量和mvp之间的差被称为运动矢量差(此后称为“mvd”)。

编码器可以将关于mvd而不是运动矢量的信息传送到解码器。在该情况下,mvd变得越小,从编码器传送到解码器的信息量可以变得越小。

解码器从编码器接收关于mvd的信息。当选择当前块的mvp时,解码器将mvd添加至所选mvp,以计算当前块的运动矢量。

图4是示意性地示出创建mvp候选列表的方法的实例的概念图。

在本说明书中,为了便于解释的目的,包括左下相邻块a0410(其是当前块400的左下角的相邻块)和左部块a1420(其位于当前块400的左相邻块中的底部)的候选组被限定为左候选组。包括右上相邻块b0430(其是当前块400的右上角的相邻块)、右相邻块b1440(其位于当前块400的顶部相邻块中的最右侧)、以及左上块b2450(其是当前块400的左上角的相邻块)的候选组被限定为顶部候选组。

编码器和解码器从左候选组(a0和a1)中选择一个mvp候选者。从左候选组选择的mvp候选者被限定为mva。例如,编码器和解码器可以选择具有与当前块相同的参考图片索引并且可用的第一块的运动矢量,作为当前块的mvp候选者mva,同时按照a0→a1的顺序扫描包括在左候选组中的块。

编码器和解码器还可以从顶部候选组(b0、b1和b2)中选择一个mvp候选者。从顶部候选组中选择的mvp候选者被限定为mvb。例如,编码器和解码器可以选择具有与当前块相同的参考图片索引并且可用的第一块的运动矢量,作为当前块的mvp候选者mvb,同时按照b0→b1→b2的顺序扫描包括在顶部候选组中的块。

编码器和解码器可以选择参考图片中的col块col460的运动矢量作为当前块的mvp候选者。在此,col块660的运动矢量由mvcol表示。

在上述实施例中,从左候选组中选择的mvp候选者和从顶部候选组中选择的mvp候选者被称为空间运动矢量预测值(此后称为“smvp”)。使用参考图片中的col块选择的mvp候选者被称为时间运动矢量预测值(此后称为“tmvp”)。从而,mvp候选列表包括smvp和/或tmvp。

当在通过上述方法选择的mvp候选者中存在重叠候选者时,编码器和解码器可以去除除了重叠候选者中的最高秩候选者之外的其他候选者。

如上所述,tmvp以及smvp被用于当前块的帧间预测。

图5是示意性地示出在解码器中推导用于帧间预测的tmvp的方法的实例的流程图。为了便于解释的目的,在图5中示出解码器的操作,但是编码器也执行与解码器相同的操作,以使用与解码器中相同的tmvp候选者执行帧间预测。从而,参考图5描述的解码器的操作可以类似地应用至编码器。

参考图5,解码器首先指定包括col块(共址块)或col分段(共址分段)的共址图片(此后称为“colpic”)(s510)。

解码器可以基于关于条带(slice)类型的信息和关于从什么参考图片列表选择colpic的信息,指定colpic。

例如,当当前块的条带类型是b并且参考图片不选自l0时,从l1指定colpic。

用于对图像编码和解码的图片可以被分类为i图片、p图片、以及b图片。

i图片是不管其先前和随后图片如何,使用其本身的图片独立编码的图片。时间预测不被应用至i图片,并且仅帧内信息被用于其编码。p图片是可以使用单个参考图片通过单向帧间预测来编码的图片。p图片要求一个参考图片列表,其被称为参考图片列表0(l0)。使用选自l0的参考图片的帧间预测还被称为l0预测。l0预测主要用于前向预测。帧内预测或l0预测可以被执行用于p图片。

b图片是可以使用两个参考图片,通过前向、后向、或双向帧间预测来编码的图片。b图片要求两个参考图片列表,其被称为参考图片列表0(l0)和参考图片列表1(l1)。如上所述,使用选自l0的参考图片的帧间预测被称为l0预测。l0预测主要用于前向预测。使用选自l1的参考图片的帧间预测被称为l1预测。l1预测主要用于后向预测。使用选自l0和l1的两个参考图片的帧间预测被称为双向预测(biprediction)。

帧内预测、l0预测、l1预测或双向预测可以被执行用于b图片。两条运动信息可以被用于b图片。从而,使用两个先前参考图片,前向预测可以被执行用于b图片,使用两个随后参考图片,后向预测可以被执行,并且使用一个先前参考图片和一个随后参考图片,双向预测可以被执行。可以执行双向预测的b图片要求两个参考图片列表l0和l1。

i图片、p图片、以及b图片的特征可以以条带为单位而不是以图片为单位限定。例如,可以限定以条带为单位具有i图片的特征的i条带、具有p图片的特征的p条带、以及具有b图片的特征的b条带。

当当前块的条带类型是b并且colpic选自l0时,或者当当前块的条带类型是p时,可以从l0选择colpic。

解码器可以从所选的colpic中指定将被用于当前块的预测的共址预测块colpu(s520)。解码器可以使用在colpic中指定的colpu的信息作为在当前块的帧间预测中的tmvp。

图6是示意性地示出指定colpu的方法的示意图。参考图6,在colpic(未示出)中,位于col块600(对应于当前块)的左上角的像素采样stl的位置被指定为(xp,yp)。在此,当前块和col块可以是pu。

当当前块的宽度被限定为npsw并且当前块的高度被限定为npsh时,位于col块600的右下角的像素采样srb的位置被指定为(xprb,yprb)。从而,通过srb指定当前块(col块)的尺寸。srb用作随后描述的定位像素。

当stl和srb属于相同lcu(最大cu)时,在colpic中,覆盖srb所属的预定运动数据存储单元的左上角的预测块被指定为colpu(共址预测单元)。例如,srb用作用于定位colpu的位置的像素。

运动数据存储单元是存储用于帧间预测中的预测的运动信息的单元。具有预定尺寸的块可以被设置为运动数据存储单元,并且一条运动信息可以被存储用于每个运动数据存储单元。例如,当对于colpic中的每nxn采样(其中,n是整数)指派并且存储一个值,并且colpic中的特定块的运动信息被用于帧间预测时,可以使用覆盖特定块的运动数据存储单元的运动信息。运动数据存储单元可以被设置为具有特定尺寸的采样块,诸如,4x4采样、6x6采样、8x8采样、12x12采样、16x16采样、32x32采样、以及64x64采样。可以以具有所设置尺寸的采样块为单位存储运动信息。

例如,当运动数据存储单元是16x16采样块时,((xprb>>4)<<4,(yprb>>4)<<4)的位置可以被指定为覆盖srb所属的运动数据存储单元的左上角的colpu的位置。

当stl和srb不属于相同lcu时,可以基于位于col块的中心处(特别是,在由col块尺寸的1/2指定的中心右下角处)的采样sctr指定colpu。从而,sctr还用作用于定位colpu的定位像素。sctr的位置(xpctr,ypctr)可以被指定为(xp+(npsw>>1),yp+(npsh>>1))。在该情况下,覆盖sctr所属的运动数据存储单元的左上角的预测块可以被指定为colpu。

在该情况下,当运动数据存储单元是16x16采样块时,位置((xpctr>>4)<<4,(yctr>>4)<<4)可以被指定为colpu的位置。

另一方面,colpic中的colpu的位置(xpcol,ypcol)可以被指定为相对于colpic的左上采样的位置的、colpu的左上采样的位置。

解码器可以基于colpu的信息,推导关于时间运动矢量的信息和将被用于当前块的预测的参考列表的可用性(s530)。

例如,当在帧内预测模式下对colpu编码时,当colpu不可用时,以及当colpic被设置成不被用于tmvp(时间运动矢量预测值)时,时间运动矢量mvcol可以被设置为0,并且参考列表可以被设置为不可用。

此时,availableflaglxcol(其中,x是0或1)可以被用作指示参考列表的可用性的信息。确定当availableflaglxcol的值为0时,参考图片列表可用,并且确定当availableflaglxcol的值为1时,参考图片列表不可用。

除了当在帧内预测模式下不对colpu编码时,当colpu不可用时,以及当colpic被设置成不被用于tmvp(时间运动矢量预测值)时之外,即,当参考图片列表可用时,可以如下地推导作为运动信息的参考列表标识符listcol、时间运动矢量mvcol、以及参考列表refidxcol。

当用于colpu的l0的利用性被确定并且确定l0不被利用时,可以使用l1作为参考列表并且使用colpu的数据,来指定时间运动矢量mvcol的值和参考索引refidxcol的值。例如,时间运动矢量mvcol的值可以被设置为mvl1[xpcol][ypcol],并且参考索引refidxcol的值可以被设置为refidxl1[xpcol][ypcol]。

当l0的利用性被确定并且确定利用l0但是不利用l1时,可以使用l0作为参考列表并且使用colpu的数据,来指定时间运动矢量mvcol的值和参考索引refidxcol的值。例如,时间运动矢量mvcol的值可以被设置为mvl0[xpcol][ypcol],并且参考索引refidxcol的值可以被设置为refidxl0[xpcol][ypcol]。

当确定利用l0和l1时,通过比较当前图片的图片顺序计数与每个参考图片列表中的图片的图片顺序计数,来确定时间运动信息。例如,当当前图片的图片顺序计数等于或大于参考图片列表中的图片的图片顺序计数时,由用于推导时间运动信息的参考图片列表中的colpu的位置(xpcol,ypcol)指示的参考索引和运动矢量可以分别被设置为refidxcol和mvcol的值。

当参考图片列表中的至少一个图片的图片顺序计数大于当前图片的图片顺序计数时,使用来自编码器的信令所指示的参考图片列表,可以分别将由相应参考图片列表中的colpu的位置(xpcol,ypcol)指示的参考索引和运动矢量设置为refidxcol和mvcol的值。

解码器可以使用tmvp(其具有被推导作为运动信息的时间运动矢量和参考图片索引)作为mvp候选者。在此,当colpic和colpic的参考图片之间的距离等于当前图片和当前图片的参考图片之间的距离时,可以将所推导的mvcol本身用作时间运动矢量。当colpic和colpic的参考图片之间的距离不等于当前图片和当前图片的参考图片之间的距离时,所推导的mvcol可以被缩放(scale)并且用作时间运动矢量。

如上所述,在tmvp中使用的colpu的运动信息可以由预定运动数据存储单元存储。即,colpu可以通过运动数据存储单元设置,并且colpu的运动信息可以被用作属于相应运动数据存储单元的块的运动信息。

这旨在减小用于存储运动信息的内存容量。用作运动数据存储单元的n1xn2(其中,n1和n2是整数)块的尺寸可以被预先设置或者可以从编码器以信号发送。

图7是示意性地示出存储运动信息的方法的示意图。图7示出块b0至b15(其是用于设置运动信息的最小单元)被设置为单个运动数据存储单元的实例。

在本说明书中,为了便于解释的目的,用于设置运动信息的最小单元被表示为运动数据块。运动数据块可以是cu、pu、tu或除了cu、tu、和pu之外的单元。运动数据块可以对应于由参考图6描述的stl、srb和sctr指定的块。当运动数据块是4x4采样的块时,运动数据存储单元700是16x16采样的块。

在图7中,每个运动数据块bi(其中,i=0,…,15)的运动矢量被指定为(xi,yi)。

是否压缩并且通过存储单元存储运动信息以及使用什么存储单元可以被预先设置或者可以从编码器以信号发送。当从编码器以信号发送这样的信息时,可以使用表示是否压缩并且通过存储单元存储运动信息的标记(motion_vector_buffer_comp_flag)和与多少运动数据块(或多少像素)被设置为单个存储单元有关的压缩率信息(motion_vector_buffer_comp_ratio)。

例如,当motion_vector_buffer_comp_flag的值为1时,运动信息可以被压缩并且由存储单元存储。当motion_vector_buffer_comp_ratio的值为4时,4x4运动数据块可以被用作单个运动数据存储单元,如图7中所示。

解码器可以首先应用自适应环路滤波器,并且然后可以使用图7中所示的运动数据存储单元中的左边最上运动数据块b0的运动矢量(x0,y0)作为运动数据存储单元700的代表值。即,(x0,y0)的运动矢量值被分配给其他15个运动数据块b1至b15。

为了便于在本说明书中的解释,具有被存储作为运动数据存储单元的代表性运动矢量的运动矢量的运动数据块被称为代表性运动数据块。当运动数据块是pu时,代表性运动数据块可以对应于参考图5描述的colpu。

当作为代表性运动数据块的块b0是不可用于帧间预测的块,例如,在帧内预测模式下编码的块(为了便于解释的目的,此后称为“帧内块”)时,将零运动矢量(0,0)分配给16个运动数据块。

换句话说,当作为运动数据存储单元700中的第一运动数据块的块b0不被帧内编码时,运动数据块b0的运动矢量(x0,y0)在运动矢量缓冲器中被存储为16个运动数据块b0至b15的代表性运动矢量,以用于推导时间运动矢量(tmvp)。当运动数据块b0被帧内编码时,运动矢量(0,0)在运动矢量缓冲器中被存储为运动数据存储单元700的代表性运动矢量,以用于推导tmvp。

当运动信息如上所述被压缩并且被存储时,将左边最上块b0的运动信息分配给运动数据存储单元中的运动数据块。

存在以下问题:通过将运动数据块b0的运动信息共同地分配给运动数据存储单元中的其他运动数据块,降低了编码效率。例如,当块b0是帧内块并且在运动数据存储单元中的其他块中存在着在帧间预测模式下编码的块(为了便于解释的目的,此后称为“帧间块”)时,将(0,0)存储为运动数据存储单元的代表性运动矢量。

通过在不考虑运动数据存储单元中的运动数据块的参考索引的情况下分配相同的运动矢量,可能导致失真。

图8是示意性地示出在不考虑参考索引的情况下执行运动矢量内存压缩(运动矢量存储缩减)的实例的示意图。在此,运动矢量存储缩减是指,单个运动矢量(代表性运动矢量)或单条运动信息(代表性运动信息)被分配给运动数据存储单元中的运动数据块,并且结果被存储并且使用,如上所述。

参考图8,通过运动矢量内存压缩,不管ref_idxi的值如何,将相同的运动矢量(x0,y0)分配给运动数据存储单元800中的运动数据块b0至b15的运动信息,即,运动矢量(xi,yi)和参考索引ref_idxi(其中,i=0,…,15)。

从而,必须考虑用于推导tmvp并且能够解决上述问题的存储运动信息的方法。

以下参考图中所示的实施例具体地描述根据本发明的用于推导tmvp的存储运动信息的方法。

实施例1

在本实施例中,当nxn(其中,n是整数)运动数据块被用作单个运动数据存储单元时,位于另一个特定位置处的运动数据块的运动矢量,而不是位于运动数据存储单元中的左上角的运动数据块的运动矢量,被存储并且被用作运动数据存储单元的代表性运动矢量。

在此,将被用作代表性运动矢量的运动矢量可以是以下任一个:(1)位于右上(rt)角的运动数据块的运动矢量,(2)位于左下(bl)角的运动数据块的运动矢量,(3)位于右下(br)角的运动数据块的运动矢量,(4)位于中心处的运动数据块的左上(center_lt)运动数据块的运动矢量,(5)位于中心处的运动数据块的右上(center_rt)运动数据块的运动矢量,(6)位于中心处的运动数据块的左下(center_bl)运动数据块的运动矢量,以及(7)位于运动数据存储单元的中心处的运动数据块的右下(center_br)运动数据块的运动矢量。

解码器可以将在(1)至(7)中指定的运动数据块的运动矢量,而不是位于运动数据存储单元中的左上角的运动数据块的运动矢量,分配给运动数据块,并且可以使用所分配的运动矢量推导tmvp。

图9是示意性地示出当在本发明应用到的系统中4x4运动数据块被设置为单个运动数据存储单元时的运动数据块的运动信息的示意图。

参考图9,示出运动数据块bi(其中,i=0,1,…,15)的运动矢量(xi,yi)。在该情况下,除了运动数据块b0之外的运动数据块可以被指派为代表性运动数据块,并且所指派的代表性运动数据块的运动矢量可以被用作运动数据存储单元900的运动矢量。

在此,什么运动数据块被指派为代表性运动数据块可以被预先确定或者可以从编码器以信号发送。

例如,当位于运动数据存储单元900中的右上(rt)角的运动数据块b3被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x3,y3)。当位于运动数据存储单元900中的左下(bl)角的运动数据块b12被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x12,y12)。当位于运动数据存储单元900中的右下(br)角的运动数据块b15被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x15,y15)。当位于运动数据存储单元900中的中心左上(center_lt)角的运动数据块b5被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x5,y5)。当位于运动数据存储单元900中的中心右上(center_rt)角的运动数据块b6被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x6,y6)。当位于运动数据存储单元900中的中心左下(center_bl)角的运动数据块b9被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x9,y9)。当位于运动数据存储单元900中的中心右下(center_br)角的运动数据块b10被指派为代表性运动数据块时,运动数据存储单元900的运动矢量是(x10,y10)。

另一方面,可以根据将被压缩的单元,即,运动数据存储单元的尺寸,适应地确定在运动信息压缩和存储中具有被用作为代表值的运动信息的运动数据块的位置。例如,当将被压缩的单元由编码器确定并且传送时,可以根据motion_vector_buffer_comp_ratio的值确定具有被用于压缩的运动矢量(运动信息)的块(运动数据块)的位置。

具体地,当将被压缩的单元由编码器确定并被传送到解码器,并且motion_vector_buffer_comp_ratio的值是4时,位于右下角的运动数据块的运动矢量可以被用作相应运动数据存储单元的运动矢量(位于右下角的运动数据块可以被用作代表性运动数据块)。当motion_vector_buffer_comp_ratio的值是8或16时,位于中心右下(center_br)角的运动数据块的运动矢量可以用作为相应运动数据存储单元的运动矢量(位于中心右下角的运动数据块可以用作为代表性运动数据块)。

在此,根据将被压缩的单元(即,运动数据存储单元的多种尺寸)而确定的代表性运动数据块的位置不限于上述位置。

本实施例提供以下方法:因为代表性运动数据块(从其指派代表性运动矢量值)是帧内块,防止零运动矢量被存储为代表性运动矢量。

在本实施例中,通过按照预定顺序扫描运动数据存储单元中的运动数据块,确定块是帧内块还是帧间块,并且被检测为帧间块的第一运动数据块的运动矢量被用作为运动数据存储单元的代表性运动矢量。

图10是示意性地示出根据本发明的用于搜索预测模式的顺序的视图,以该预测模式编码运动数据存储单元中的运动数据块。

图10示出运动数据存储单元1000包括4x4运动数据块b0至b15的实例。在图10中的运动数据块bi(其中,i=0,1,…,15)中,i表示扫描顺序。

在图10的(a)中所示的实例中,位于运动数据存储单元1000中的左上角的运动数据块被指派为第一块b0以用于扫描运动数据块,并且按照光栅扫描(rasterscan)顺序确定其是帧间块还是帧内块(或者其是否可用,即,当用于l0的运动矢量被存储时,是否将运动矢量存储在l0中)。

在图10的(b)中所示的实例中,位于运动数据存储单元1000中的中心右下角的运动数据块被设置为将被扫描的第一块b0,并且按照螺旋顺时针方向执行扫描。

在图10的(c)中所示的实例中,位于运动数据存储单元1000中的中心左上角的运动数据块被设置为将被扫描的第一块b0,并且按照螺旋顺时针方向执行扫描。

图10的(d)至(m)示出考虑基于扫描的计算负荷来减少计算负荷的实施例。

在图10的(d)中所示的实例中,仅位于运动数据存储单元1000的中心的运动数据块被扫描,并且位于中心左下角的运动数据块被设置为将被扫描的第一块b0,并且按照顺时针方向执行扫描。

在图10的(e)中所示的实例中,仅位于运动数据存储单元1000的中心的运动数据块被扫描,并且位于中心左上角的运动数据块被设置为将被扫描的第一块b0,并且按照顺时针方向执行扫描。

在图10的(f)中所示的实例中,仅位于运动数据存储单元1000的中心的运动数据块被扫描,并且按照位于中心右下角的运动数据块(b0)→位于中心左下角的运动数据块(b1)→位于中心右上角的运动数据块(b2)→位于中心左上角的运动数据块(b3)的顺序执行扫描。

在图10的(g)中所示的实例中,仅位于运动数据存储单元1000的中心的运动数据块被扫描,并且按照位于中心右下角的运动数据块(b0)→位于中心右上角的运动数据块(b1)→位于中心左下角的运动数据块(b2)→位于中心左上角的运动数据块(b3)的顺序执行扫描。

在图10的(h)中所示的实例中,仅位于运动数据存储单元1000的中心的运动数据块被扫描,并且按照位于中心右下角的运动数据块(b0)→位于中心左上角的运动数据块(b1)→位于中心右上角的运动数据块(b2)→位于中心左上角的运动数据块(b3)的顺序执行扫描。

在图10的(i)中所示的实例中,仅位于运动数据存储单元1000的中心的运动数据块被扫描,并且按照位于中心右下角的运动数据块(b0)→位于中心左上角的运动数据块(b1)→位于中心左下角的运动数据块(b2)→位于中心右上角的运动数据块(b3)的顺序执行扫描。

在图10的(j)中所示的实例中,仅位于运动数据存储单元1000的角落处的运动数据块被扫描,位于中心左上角的运动数据块被设置为将被扫描的第一块b0,并且按照顺时针方向执行扫描。

在图10的(k)至(m)中所示的实例中,扫描单元被设置为图10的(a)至(c)中设置的扫描单元的两倍,并且执行扫描。例如,当图10的(a)至(c)中的每个运动数据块是4x4采样的块时,在图10的(k)至(m)中以8x8采样的块为单位执行扫描。从而,位于8x8采样的块中的左上角的第一运动数据块被扫描。

当运动数据存储单元1000包括4x4运动数据块时,在图10的(k)中所示的实例中,从左上2x2个运动数据块,按照顺时针方向扫描每个2x2个运动数据块中的左上运动数据块。例如,扫描顺序是图中所示的b0→b1→b2→b3。

在图10的(l)中所示的实例中,从左下2x2个运动数据块,按照逆时针方向扫描每个2x2个运动数据块中的左上运动数据块。例如,扫描顺序是图中所示的b0→b1→b2→b3。

在图10的(m)中所示的实例中,从左下2x2个运动数据块,按照z字形方向扫描每个2x2个运动数据块中的左上运动数据块。例如,扫描顺序是图中所示的b0→b1→b2→b3。

在图10中所示的实施例中,解码器使用首先检测到的将在帧间预测模式下被编码的运动数据块的运动矢量作为相应运动数据存储单元1000的代表性运动矢量。

实施例3

在实施例1和2中,可以基于帧内块的信息,存储运动数据存储单元的代表性运动信息。例如,当位于在实施例1中涉及的位置处的运动数据块是帧内块时(或当目标参考列表的运动矢量不可用时),并且当运动数据存储单元的所有运动数据块是帧内块时(或当目标参考列表的运动矢量不可用时),零运动矢量(0,0)被用作运动数据存储单元的代表性运动矢量。

本实施例提供参考当前块的运动数据存储单元(此后称为“当前运动数据存储单元”)的相邻块存储运动信息的方法。

图11示意性地示出根据本发明的使用当前运动数据存储单元的相邻块来存储当前运动数据存储单元的运动信息的方法的示意图。图11示出运动数据存储单元包括4x4运动数据块的实例。

参考图11,当当前运动数据存储单元1100中的所有运动数据块b0至b15是帧内块时,使用当前运动数据存储单元1100的相邻块b16至b35的运动信息,存储和使用当前运动数据存储单元1100的运动信息。此时,相邻块b16至b35可以是运动数据块。

当仅相邻块b16至b35中的一个块是帧间块时,该块的运动信息被存储并且被用作包括帧内块的当前运动数据存储单元1100的运动信息。

此时,当仅相邻块b16至b35中的一个块是具有目标参考列表的运动矢量的帧间块时,该块的运动信息可以被存储并且被用作包括帧内块的当前运动数据存储单元1100的运动信息。

当相邻块b16至b35中的两个或更多个块是帧间块时,可以使用以下描述的(1)至(3)中的任一个方法确定当前运动数据存储单元的代表性运动矢量。

(1)按照预定顺序扫描相邻块,并且块(其被首先检测作为具有参考索引ref_idx0的块)的运动矢量被用作当前运动数据存储单元的运动矢量。在图11中所示的实例中,从位于当前运动数据存储单元中的左上角的相邻块b16,按照顺时针方向,在帧间预测模式下对相邻块编码。从而,具有参考索引值0的块被检测,并且首先检测到的块的运动信息被用作当前运动数据存储单元的运动信息。

图11示出从当前运动数据存储单元的左上相邻块,按照顺时针方向扫描相邻块的实例,但是本实施例不限于该方向,而是可以从诸如左上相邻块、左下相邻块、以及右下相邻块的多种相邻块,按照顺时针方向或逆时针方向扫描相邻块。

(2)当前运动数据存储单元的相邻块的运动矢量的中间值被用作当前运动数据存储单元的运动矢量。在计算中间值时,可以排除相邻块的帧内块,或者帧内块的运动矢量可以被设置为(0,0)并且可以用于计算中间值。

(3)当前运动数据存储单元周围的帧间块当中的、与当前运动数据存储单元中的相邻帧内块(或者目标参考列表的运动矢量不可用的块)具有最小像素差的块的运动信息被用作当前运动数据存储单元的运动信息。

例如,计算块b16的右下像素和块b0的左上像素之间的差。计算块b17和相邻帧内块b0(或目标参考列表的运动矢量不可用的块)的八个底部像素之间的差,并且将所得到的值除以8,以计算平均像素差。计算当前运动数据存储单元中的帧内块(或者目标参考列表的运动矢量不可用的块)和相邻块之间的像素差,并且具有最小差的相邻块的运动信息被用作当前运动数据存储单元的运动信息。当存在具有相同像素差的相邻块时,可以预先给予其优先级顺序。例如,当如图11中所示那样对相邻块分等级(rank)时,具有较低等级的相邻块的运动信息可以用作当前运动数据存储单元的运动信息。

另一方面,当当前运动数据存储单元的所有相邻块均是帧内块时(或者当所有相邻块不可用时),当前运动数据存储单元的运动矢量可以被设置为零矢量。

实施例4

本实施例提供在运动信息压缩和存储(运动信息存储缩减)中指派和存储用于参考索引的代表值以及运动数据存储单元的运动矢量的方法。

例如,在实施例1至3中,以上描述了通过运动数据存储单元仅存储一个运动矢量的内存压缩或存储缩减,但是在实施例4中将描述指派运动数据存储单元的代表性参考索引值并且存储所指定的代表性参考索引值以及运动矢量值的方法。

类似于实施例1至3中的用于存储运动矢量的存储缓冲器的缩减,在实施例4中可以缩减用于存储参考索引的存储缓冲器。

具体地,在本实施例中,当运动数据存储单元的代表性运动数据块被确定时,将代表性运动数据块的参考索引以及运动矢量分配给运动数据存储单元中的其他运动数据块。解码器可以使用代表性运动信息(代表性运动数据块的运动信息)作为运动数据存储单元中的块的运动信息。从而,因为将代表性运动数据块的运动矢量值分配给运动数据存储单元的运动数据块的运动矢量,但是保持参考索引,所以可以解决失真的问题。

图12是示意性地示出当执行运动矢量内存压缩(运动矢量存储缩减)时,对参考索引以及运动矢量执行运动信息内存压缩(运动信息存储缩减)的状态的示意图。在此,类似于运动矢量存储缩减,运动信息存储缩减意味着,仅一条运动信息(代表性运动信息)被分配给运动数据存储单元的运动数据块,并且如上所述被存储和使用。

图12示出运动数据存储单元包括4x4运动数据块的实例。

图12示出位于运动数据存储单元1200的左上角的运动数据块b0的运动信息(运动矢量和参考索引)被用作代表性运动信息的实例。

参考图12,运动数据块b0的运动矢量和参考索引通过运动信息存储缩减被分配作为运动数据存储单元1210的运动信息。在图12中所示的实例中,作为代表性运动数据块的块b0的运动矢量和参考索引分别是(x0,y0)和ref_idx2。从而,当运动数据存储单元1210包括由图5和图6中的scrt或sbr指定的块时,块b0的运动矢量(x0,y0)和参考索引ref_idx2可以用于推导tmvp。colpu的参考索引以及colpu的运动矢量的使用对应于将代表性运动数据块的参考索引以及其运动矢量存储和使用作为运动数据存储单元的运动信息。

可以应用根据实施例4的方法以及根据实施例1至3的方法。例如,当根据实施例1或2指定代表性运动数据块时,可以将相应运动数据块的运动矢量和参考索引一起分配给运动数据存储单元。当根据实施例3,在当前运动数据存储单元的相邻块当中确定使用其运动矢量的相邻块时,可以将所确定的相邻块的参考索引和运动矢量分配给当前运动数据存储单元。

另一方面,当帧内块包括在目标块(运动数据存储单元中的运动数据块)中,该目标块的运动信息可以根据实施例4被压缩时,可以将代表性运动数据块的参考索引仅分配给其他运动数据块,而不改变帧内块的参考索引。

即,代替于为运动数据存储单元的所有运动数据块设置相同的参考索引,可以仅将其他帧间块的参考索引改变为代表性运动数据块的参考索引,并且可以在不改变运动数据存储单元中的帧内块的参考索引的情况下,存储结果。

当仅将帧间块的参考索引改变为代表性运动数据块的参考索引时,可以直接读取并且确定l1和l0中的相应运动数据块的参考索引值,以找出col块的预测方向(l0方向、l1方向、双向预测、或帧内预测)。

图13是示意性地示出当执行运动矢量内存压缩时,根据本发明仅对帧间块执行运动矢量和参考索引的运动信息内存压缩的状态的示意图。图13示出运动数据存储单元包括4x4运动数据块的实例。

在图13中所示的实例中,假设运动数据存储单元1300中的运动数据块b0至b15中的块b10、b11、b14和b15是帧内块(其参考索引具有值-1)。

从而,可以仅将除了帧内块之外的帧间块的参考索引改变为代表性运动数据块的参考索引,并且可以设置运动数据存储单元1310的运动矢量和参考索引。甚至当将运动数据存储单元1310中的帧内块b10、b11、b14和b15的运动矢量改变为代表性运动数据块的运动矢量时,参考索引也可以不改变而是被保持。

根据参考图13描述的方法,可以使用所存储的参考索引值,不管col块的图片类型(p图片、b图片、以及i图片)如何,来推导col块的运动矢量,并且可以使col块的运动矢量不被从帧内块推导。

参考图13描述的方法可以应用至实施例1至3。例如,当在实施例1或2中指定代表性运动数据块,并且将相应运动数据块的运动矢量和参考索引分配给运动数据存储单元时,可以不改变帧内块的参考索引。当根据实施例3,在当前运动数据存储单元的相邻块当中确定使用其运动矢量的相邻块,并且将所确定的相邻块的参考索引分配给当前运动数据存储单元时,可以不改变帧内块的参考索引。

另一方面,在图13中,可以将不同参考索引分配给相同运动数据存储单元的运动数据块。在该情况下,仅运动矢量被压缩,并且参考索引不被压缩。

为了解决该问题,图14示出仅一个代表值被存储作为如图12中所示的参考索引,但是推断块是帧内块的方法。

图14是示意性地示出当执行运动矢量内存压缩时,在根据本发明执行运动矢量和参考索引的运动信息内存压缩的状态下推断帧内块的方法的示意图。图14示出运动数据存储单元包括4x4运动数据块的实例。

在图14中所示的实例中,假设在运动数据存储单元1300中的运动数据块b0至b15中的块b10、b11、b14和b15是帧内块(其参考索引具有值-1)。

参考图14,将代表性运动数据块b0的参考索引值分配给作为帧内块的块b10、b11、b14和b15。在此,甚至当被存储用于块b10、b11、b14和b15的参考索引值大于0时,解码器可以推断出相应块是帧内块。即,解码器可以识别出块b10、b11、b14和b15的运动信息不可用的。

可以通过利用相应运动数据块所属的cu的预测类型(帧内预测模式或帧间预测模式),来确定运动数据块是帧内块还是帧间块。

可以与实施例1至3一起应用参考图14描述的方法。例如,当根据实施例1或2指定代表性运动数据块时,可以将相应运动数据块的运动矢量和参考索引分配给运动数据存储单元,并且可以基于相应块所属的cu的预测类型来确定相应运动数据块是否是帧内块。当根据实施例3,在当前运动数据存储单元的相邻块当中确定使用其运动矢量的相邻块时,所确定的相邻块的参考索引还可以被分配给当前运动数据存储单元,并且可以基于相应块所属的cu的预测类型来确定所确定的相邻块是否是帧内块。

根据参考图14描述的方法,可以节约用于存储参考索引的内存,并且减小内存带宽。可以使得运动矢量不被从帧内块推导。

实施例5

本实施例提供结合实施例2和实施例4,并且考虑参考索引是否是0的方法,作为运动信息存储缩减方法。

即,类似于实施例2中描述的方法,基于预定顺序,确定运动数据存储单元的运动数据块是帧间块还是帧内块,并且确定当运动数据块是帧间块时,其参考索引值是否为0。

在实施例5中,解码器可以选择在帧间预测模式下被编码并且具有参考索引值0的首先检测的运动数据块,作为代表性运动数据块,同时按照预定顺序扫描运动数据存储单元的运动数据块。解码器可以将所选的代表性运动数据块的运动矢量和参考索引分配给运动数据存储单元的其他运动数据块并且使用其。

实施例6

本实施例提供在运动信息存储缩减(运动矢量内存缩减)中与运动矢量和参考索引一起压缩和存储预测模式的方法。

关于解码后的图片,可以通过pu存储关于预测模式的信息。此时,存储了关于预测模式的信息的pu可以是最小预测单元或者运动数据块,并且最小预测单元或运动数据块可以是4x4采样的块。例如,可以存储关于以下的信息:预测模式是帧内模式还是帧间模式,当预测模式是帧间模式时,在跳过模式或合并模式或amvp中使用哪一个。

关于预测模式的信息可以被存储在解码图片缓冲器(dpb)中,以检验col块的状态。在该情况下,当使用运动矢量缓冲器压缩(运动矢量内存压缩)时,关于预测模式的信息可以通过运动数据存储单元存储,而不通过pu单元存储关于预测模式的信息。

从而,在本实施例中,当应用运动矢量内存压缩(运动信息存储缩减)时,还压缩(存储)运动数据存储单元的代表性运动数据块的预测模式。

图15是示意性地示出当执行运动矢量内存压缩时,根据本发明压缩关于预测模式的信息的状态的示意图。图15示出运动数据存储单元包括4x4运动数据块的实例。

参考图15,在多种预测模式下对运动数据存储单元1500的16个运动数据块编码。在图15中,假设运动数据存储单元1500的代表性运动数据块是位于左上角的运动数据块b0。

通过运动矢量内存压缩,将与代表性运动数据块b0相同的运动矢量、参考索引、以及预测模式分配给运动数据存储单元1510中的4x4运动数据块。从而,运动数据存储单元1510中的运动数据块b0至b15的运动矢量被存储为(x0,y0),其参考索引被存储为ref_idx2,并且其预测模式被存储为跳过模式。

例如,当运动数据存储单元1510包括由图5和图6中的srb或scrt指定的块时,作为b0的运动矢量的(x0,y0)、作为其参考索引的ref_idx2、以及作为其预测模式的跳过模式可以用作用于推导当前块的tmvp的运动信息。

实施例7

本实施例提供例如当压缩运动矢量缓冲器内存时,在运动信息存储缩减时更有效地执行压缩处理的方法。

当应用运动信息存储缩减(或运动矢量缓冲器压缩(mv缓冲器压缩))时,根据图片的特征,因为局部运动信息条相互类似,可以抑制性能的恶化。局部运动的相似性可以根据图片而改变,并且例如在通过16x16像素块的运动数据存储单元压缩16:9图片时与通过16x16像素块的运动数据存储单元压缩4:3图片时之间可能存在压缩性能的差异。

从而,本实施例提供一种更动态地压缩用于存储运动信息的缓冲器内存的方法。

当传送用于指示以顺序等级(sequencelevel)压缩运动信息或运动矢量的信息时,编码器可以将关于压缩率的信息以信号发送至解码器。例如,当nxm(其中,n和m是整数)采样块的运动信息被压缩并且存储为单个运动信息条时,编码器可以以信号发送与水平方向上的压缩率有关的n的值和与垂直方向上的压缩率有关的m的值。

编码器可以在运动信息存储缩减时传送诸如motion_vector_buffer_comp_x_ratio_log2的信息作为关于水平方向上的压缩率的信息,并且传送诸如motion_vector_buffer_comp_y_ratio_log2的信息作为关于垂直方向上的压缩率的信息。

例如,当由编码器传送的motion_vector_buffer_comp_x_ratio_log2的值是2并且motion_vector_buffer_comp_y_ratio_log2的值是2时,可以指示执行以4x4采样为单位存储运动信息的压缩。

当由编码器传送的motion_vector_buffer_comp_x_ratio_log2的值是3并且motion_vector_buffer_comp_y_ratio_log2的值是2时,可以指示执行以8x4采样为单位存储运动信息的压缩。

从而,运动信息的压缩存储率可以考虑由编码器处理的图片的特征来确定,并且可以被传送到解码器。解码器可以基于所传送的运动信息的压缩存储率,获取用于推导tmvp的运动矢量和/或参考索引的信息。

根据实施例7,由于考虑图片的特征来压缩并且存储视频数据,可以最大地减少时间运动矢量缓冲器的压缩中的损失。

在该情况下,可以使用关于运动矢量缓冲器压缩的信息,以相同方式执行参考索引缓冲器压缩(内存压缩)。用于参考索引缓冲器压缩的信息可以被单独地以信号发送,以与运动矢量缓冲器压缩分离地执行缓冲器压缩。

另一方面,确定并且以信号发送采样块的尺寸到解码器的方法可以类似地应用至实施例1至6,该采样块是用于存储运动信息(即,压缩和存储率)的单元。在该情况下,当作为由编码器确定的压缩和存储单元的采样块的尺寸是nxm时,实施例1至6中的运动数据存储单元是具有nxm采样的尺寸的块。

实施例8

本实施例提供一种使用运动数据存储单元的相邻块,而不是运动数据存储单元中的运动数据块,作为用于压缩和存储运动信息的代表性运动数据块的方法。例如,在本实施例中,可以使用邻近当前运动数据存储单元的右下角处的4x4像素块作为具有关于当前运动数据存储单元的运动信息的代表性运动数据块,而不是使用当前运动数据存储单元(其是16x16像素块)中的任何运动数据块作为代表性运动数据块,来压缩和存储运动信息。

图16示意性地示出当压缩并存储运动信息时,根据本发明利用与邻近当前运动数据存储单元的块有关的信息的方法的示意图。图16示出运动数据存储单元包括4x4运动数据块的实例。

在图16中所示的实例中,pu1600包括四个运动数据存储单元1610、1620、1630和1640,并且每个运动数据存储单元都包括作为4x4像素块的运动数据块。

根据本实施例,邻近当前运动数据存储单元1610的右下角的4x4像素块b1的运动信息(也被称为“运动数据”)被用作当前运动数据存储单元1610的运动信息,以压缩和存储作为16x16像素块的当前运动数据存储单元1610的运动信息(诸如,运动矢量、参考索引、以及预测模式)。即,块b1被用作当前运动数据存储单元1610的代表性运动数据块。

从而,将块b1的运动信息分配给当前运动数据存储单元1610中的所有块。

邻近右下角的相邻块的运动信息被以相同方式,作为代表性运动数据存储单元的运动信息而分配给pu1600中的其他运动数据存储单元1620、1630、以及1640。

从而,当在当前块的预测处理中从运动信息被压缩和存储的参考图片取得tmvp时,位于当前pu的中心处的运动数据块(位于中心左上侧、中心左下侧、中心右上侧、以及中心右下侧的块)的运动信息可以被简单地使用,而不执行每次都搜索位于当前pu的右下角的相邻pu、并且取得包括上述相应pu的运动数据存储单元的左上块的运动信息的附加处理。

位于当前pu的中心处的运动数据块是图16中所示的实例中的b1、b2、b3和b4。

此时,当b1是帧内块或不可用块时,包括在当前运动数据存储单元1610中的pu1600的中心处的其他运动数据块b2、b3、以及b4可以用作当前运动数据存储单元1610的代表性运动数据块。

在该情况下,按照(1)b1→b2→b3→b4,(2)b1→b3→b4→b2,(3)b1→b4→b3→b2中的任一顺序,对于当前运动数据存储单元1610扫描运动数据块,并且可以将首先检测到的帧间块或可用块用作当前运动数据存储单元1610的代表性运动数据块。扫描顺序可以被预先确定或者可以从编码器以信号发送。

实施例9

当图片的宽度或高度不是运动信息的压缩和存储单元(运动数据存储单元)的整数倍时,具有比运动信息的压缩和存储单元小的尺寸的块的运动信息可以被压缩和存储。

本实施例提供一种压缩和存储比运动信息的压缩和存储单元小的像素块的运动信息的方法。

图17是示意性地示出当压缩和存储运动信息时,根据本发明压缩和存储比运动信息的压缩和存储单元小的像素块的运动信息的方法的示意图。图17示出图片的尺寸不是运动数据存储单元的整数倍并且16x16像素采样被用作单个运动数据存储单元的实例。

参考图17,图片1700包括多个运动数据存储单元。在图17中所示的实例中,运动数据存储单元是16x16像素块,诸如,如上所述的块1710。在此,由于图片1700的尺寸和运动数据存储单元的尺寸相互不成比例,在图片的边界处存在具有比运动数据存储单元小的尺寸的块(为了便于解释的目的,此后称为“剩余块”),像块1720。在图17中所示的实例中,假设剩余块的尺寸是8x16。

为了使用mvp执行帧间预测,必须压缩并且存储剩余块的运动信息。在实施例9中,将描述根据什么运动数据块将用作运动数据存储单元的代表性运动数据块,来存储剩余块的运动信息的方法。可以用作代表性运动数据块的运动数据块的位置与实施例1中描述的相同。

以下将描述根据实施例中指定的代表性运动数据块的位置来压缩并存储剩余块的运动信息的方法。

(1)代表性运动数据块是运动数据存储单元中的左上运动数据块的情况

图18是示意性地示出当代表性运动数据块是运动数据存储单元的左上块时,根据本发明压缩并存储剩余块的运动信息的方法的示意图。

在图18中,假设图片1800中的运动数据存储单元1810是16x16像素块,并且剩余块1820是16x8像素块。将参考图18描述的方法可以应用至具有除了上述之外的尺寸的剩余块和运动数据存储单元。

当左上运动数据块1830被用作运动数据存储单元1810的代表性运动数据块,并且在图片1800的边界附近减小运动信息应被压缩和存储的块的单元(像剩余块1820)时,可以使用与运动数据存储单元1810相同的方法,确定剩余块1820的代表性运动数据块。

从而,位于剩余块1820的左上角的运动数据块1840的运动信息被用作剩余块1820的运动信息。

从而,可以使用与运动数据存储单元相同的方法,确定剩余块的代表性运动数据块。

(2)代表性运动数据块是运动数据存储单元的右下运动数据块的情况

图19是示意性地示出当代表性运动数据块是运动数据存储单元的右下块时,根据本发明压缩并存储剩余块的运动信息的方法的示意图。

在图19中,假设图片1900中的运动数据存储单元1910是16x16像素块,并且剩余块1920是16x8像素块。将参考图19描述的方法可以应用至具有除了上述之外的尺寸的剩余块和运动数据存储单元。

当右下运动数据块1930被用作运动数据存储单元1910的代表性运动数据块时,位于剩余块1920的可用区域的右下角的运动数据块1940的运动信息被用作剩余块1920的运动信息。

图20是示意性地示出当代表性运动数据块是运动数据存储单元的右下块而在剩余块中存在不可用区域时,压缩并存储剩余块的运动信息的方法的示意图。

具体地,当在剩余块2020中存在不可用区域时,位于剩余块2020的左上角的运动数据块2040的运动信息被用作剩余块2020的运动信息。在该情况下,由于左上区域一直可用,所以不必须执行用于搜索可用块的边界的计算操作。

(3)代表性运动数据块是在运动数据存储单元的中心的任一个运动数据块的情况。

代表性运动数据块是在运动数据存储单元的中心处的任一个运动数据块的情况意味着,代表性运动数据块是运动数据存储单元的中心左上侧、中心左下侧、中心右上侧、以及中心右下侧上的运动数据块中的任一个。此后,为了便于解释的目的,中心运动数据块的位置由center_xx表示。在此,xx表示lt(左上)、rt(右上)、lb(左下)、以及rb(右下)中的任一个。lt、rt、lb、以及rb中的什么对应于xx可以被预先确定或者可以由编码器确定并且以信号发送至解码器。为了便于解释的目的,假设xx是lt。以下说明可以类似地应用至xx是rt、rb和lb的实例。

图21是示意性地示出当代表性运动数据块是运动数据存储单元的中心左上(center_lt)块时,根据本发明压缩并存储剩余块的运动信息的方法的示意图。

在图21中,假设图片2100中的运动数据存储单元2110是16x16像素块,并且剩余块2120是16x8像素块。参考图21描述的方法可以应用至具有除了上述之外的尺寸的剩余块和运动数据存储单元。

当中心右上运动数据块2130被用作运动数据存储单元2110的代表性运动数据块时,位于剩余块2120的可用区域的中心左上侧上的运动数据块2140的运动信息被用作剩余块2120的运动信息。

图22是示意性地示出当代表性运动数据块是运动数据存储单元的中心左上块但是在剩余块中存在不可用区域时,压缩并存储剩余块的运动信息的方法的示意图。

具体地,当在剩余块2220中存在不可用区域时,位于剩余块2220的左上角的运动数据块2240的运动信息被用作剩余块2220的运动信息。

当在剩余块2220中存在不可用区域而不可用区域是剩余块2220中的中心左上区域时,位于剩余块2220的左上角的运动数据块2240的运动信息可以用作剩余块2220的运动信息。

在参考图22描述的方法中,由于左上区域一直可用,所以不必须执行用于搜索可用块的边界的计算操作。

在如图5中所示推导用于帧间预测的tmvp的处理中,解码器和编码器使用运动数据存储单元(其包括位于邻近当前块的col块的右下的角处的像素)的运动信息作为tmvp运动信息。解码器和编码器使用运动数据存储单元中的运动数据块当中的代表性运动数据块的运动信息作为运动数据存储单元中的pu的运动信息。除了运动矢量之外,运动数据存储单元的代表性运动数据块的运动信息可以包括参考索引和预测模式。

另一方面,在运动矢量预测中,邻近当前块的块的运动信息被用作mvp候选者,并且邻近帧(图片)的共址运动矢量也被用作mvp候选者,如上所述。这被称为如上所述的tmvp(时间运动矢量预测值)。

为了使用tmvp,应该存储解码后的信息。仅当在帧(图片)被解码之后,以预定块(例如,4x4像素块)为单位存储诸如运动矢量的运动信息时,可以在包括当前块的下一帧中基于其使用tmvp。

然而,当想要以最小单位4x4存储所有运动信息时,大量内存容量是必需的。从而,必须以较大单位(例如,16x16像素块、32x32像素块、以及64x64像素块中的任一个)压缩和存储运动信息。这在以上被描述为运动信息存储缩减、运动矢量内存压缩、或运动矢量缓冲器压缩,并且运动信息被压缩和存储的单元以上被描述为运动数据存储单元。在此,以什么单位压缩和存储运动信息可以被预先确定或者可以由编码器确定和通过sps(序列参数集)-级信令传送到解码器。

例如,当为了便于解释的目的,假设以16x16像素块为单位压缩和存储运动信息时,在l0和l1的方向上存储位于16x16像素块的左上角的4x4块的运动信息(例如,运动矢量和参考索引)。在此,可以使用位于16x16像素块的中心处的4x4像素块的运动信息,而不使用位于左上角的块的运动信息。

图23是示意性地示出代替于在邻近当前帧(或图片)2300的帧(或图片)2310中位于与当前块2320相同的位置处的块2330的左上角2340处的运动数据,位于中心2350处的运动信息被用作tmvp的实例的示意图。

其详情如上所述。

如上所述,当要被使用的tmv(时间运动矢量)是包括在帧内块中的运动矢量时,其可能不被认为是对当前块的帧间预测有用的信息。通常,从帧间块推导的tmv可以被设置成具有值(0,0)。

图24是示意性地示出当推导tmvp时,处理位于中心处的帧间块的运动信息的方法的示意图。

在图24中,假设当前块2410应该使用其以推导tmvp的块是相邻帧2420的共址块2430中的中心块2440。此时,当块2440是帧内块时,从块2440推导的运动矢量的值被设置成(0,0),并且从而可能执行不准确的预测。当相邻块2450是帧间块并且具有正常的运动矢量时,不必须使用块2440的不准确的运动矢量。

另一方面,如图24中所示,当在相邻帧(colpic)中位于与当前块相同的位置处的块(col块)的中心处的块的运动信息被用于推导tmvp时,可以根据块的尺寸,使用围绕中心的四个块中的任一个(例如,中心左上块),而不是共址块(col块)的中心块。

以上描述了关于图23和图24的详情,并且以下将参考附图描述用于推导tmvp的实施例。

实施例10

本实施例提供当想要推导具有多种尺寸的当前块的tmvp时,使用位于col块的中心处的块的运动信息的方法。

图25是示意性地示出根据本发明的基于在参考图片(参考帧)中位于col块的中心处的块的运动信息来推导tmvp的方法的示意图。为了便于解释的目的,图25示出运动信息(例如,运动矢量)的存储单元(运动数据存储单元)是16x16像素块的实例。如上所述,运动数据存储单元的尺寸可以被预先确定或者可以由编码器确定并且通过sps级信令传送到解码器。

图25的(a)示出当前块和当前块的col块2500是64x64像素块的实例。在图25的(a)中,作为位于col块2500的中心处的运动数据存储单元的块bs0、bs1、bs2、以及bs3被用于推导当前块的tmvp。

具体地,(1)位于col块的中心左上角的运动数据存储单元bs0的运动信息、(2)位于col块的中心右上角的运动数据存储单元bs1的运动信息、(3)位于col块的中心左下角的运动数据存储单元bs2的运动信息、以及(4)位于col块的中心右下角的运动数据存储单元bs3的运动信息中的任一个被用于从col块推导tmvp。使用(1)至(4)中的什么运动信息可以被预先确定,或者可以由编码器确定并且以信号发送到解码器。

在实施例1至9中以上描述了通过运动数据存储单元存储运动信息的方法(运动信息存储缩减),并且可以在本实施例中使用通过使用根据实施例1至9中任一个的方法所存储的运动信息。

不像图25的(a),图25的(b)示出当前块和当前块的col块2510是64x32像素块的实例。在图25的(b)中,作为位于col块2510的中心处的运动数据存储单元的块bs0、bs1、bs2和bs3被用于推导当前块的tmvp。

具体地,(1)位于col块的中心左上角的运动数据存储单元bs0的运动信息、(2)位于col块的中心右上角的运动数据存储单元bs1的运动信息、(3)位于col块的中心左下角的运动数据存储单元bs2的运动信息、以及(4)位于col块的中心右下角的运动数据存储单元bs3的运动信息中的任一个被用于从col块2510推导tmvp。使用(1)至(4)中的什么运动信息可以被预先确定,或者可以由编码器确定并且以信号发送到解码器。

实施例11

本实施例提供一种当推导当前块的tmvp时,考虑帧内块的存在的方法。

图26是示意性地示出根据本发明的考虑帧内块的存在或不存在来推导tmvp的方法的示意图。图26示出位于与当前块相同位置处并且与当前块重叠的参考帧的tmvp候选者。从而,块2600、块2610、以及块2620可以被认为是当前块或当前块的col块。在此,为了便于解释的目的,假设块是当前块的col块。

图26的(a)是示出使用位于当前块的col块的中心处的运动数据存储单元来推导tmvp的示意图。例如,图26的(a)中所示的实例中的tmvp候选组包括运动数据存储单元bs0、bs1、bs2和bs3的运动矢量。图26的(a)示出16x16像素块被用作运动数据存储单元的实例。

在图26的(a)中,确定运动数据存储单元是帧内块还是帧间块,并且作为帧间块的运动数据存储单元的运动信息被用于推导tmvp,而不是不根据运动数据存储单元是帧内块还是帧间块,使用运动数据存储单元的运动矢量作为其tmvp。

从而,解码器按照预定扫描顺序扫描位于col块的中心处的四个运动数据存储单元bs0、bs1、bs2、以及bs3,并且可以使用首先被检测为帧间块的运动数据存储单元的运动信息推导tmvp。当所有四个运动数据存储单元bs0、bs1、bs2、以及bs3是帧内块(或不可用)时,可以使用运动数据存储单元bs0的运动信息推导tmvp。

扫描顺序可以被确定为1)bs0→bs1→bs2→bs3,(2)bs2→bs3→bs0→bs1,(3)bs0→bs3→bs1→bs2,以及(4)bs0→bs2→bs1→bs3中的任一个。扫描顺序可以被预先确定,或者可以由编码器确定并且以信号发送到解码器。

图26的(b)示出图26的(a)中的tmvp候选组的数量增加的实例。在图26的(b)中,col块中的所有运动矢量存储单元的运动信息被包括在tmvp候选组中。

此时,扫描顺序可以被不同地确定。按照运动数据存储单元的索引顺序,扫描可以从bs0按照顺时针方向螺旋地执行,或者可以按照逆时针方向螺旋地执行。可以以col块的中心处的运动数据存储单元当中的、除了bs0之外的块作为起点执行扫描(例如,bs2→bs3→bs0→bs1→bs10→bs11→bs12→bs13→bs14→bs15→bs4→bs5→bs6→bs7→bs8→bs9)。

图26的(c)是示出使用位于当前块的col块以外的块的运动信息推导tmvp的方法的示意图。tmvp候选者可以离开col块(当前块)的边界,或者离开col块(当前块)的边界的tmvp候选者可以具有比col块(当前块)中的tmvp候选者更高的等级。为了便于解释的目的,图26的(c)示出16x16像素块被用作运动数据存储单元的实例。

在图26的(c)中,为了便于解释的目的,使用两个tmvp候选组。邻近col块2620的右下角的块bs0(其作为位于当前块的col块2620以外的块)和位于col块2620的中心处的块当中的、位于中心右下角的运动数据存储单元bs1的运动信息可以被用作tmvp候选者。此时,块bs0可以是运动数据存储单元。

解码器首先确定col块以外的块bs0是帧间块(或可用块)还是帧内块(或不可用块)。当块bs0是帧间块并且可用时,解码器使用块bs0的运动信息推导tmvp。例如,块bs0的运动信息可以被用作tmvp。

当块bs0是帧内块或者不可用块时,解码器确定运动数据存储单元bs1是帧间块(或可用块)还是帧内块(或不可用块)。当块bs1是帧间块并且可用时,解码器使用块bs1的运动信息推导tmvp。

当块bs0和bs1都是帧内块时,解码器可以基于bs0的运动信息推导tmvp。

图26中的tmvp候选组的数量、位置、以及扫描顺序不限于上述详情,并且运动数据存储单元的尺寸不限于16x16。当前块和col块的尺寸不限于63x64,并且本发明可应用至多种尺寸,诸如,32x32。例如,当当前块的尺寸是32x32并且运动数据存储单元的尺寸是16x16时,最多四个tmvp候选者可以被用于当前块。

当当前块的尺寸小于运动矢量内存缓冲器(即,运动数据存储单元)的尺寸时,可以以与现有方法中描述的相同方式,使用col块等的左上角的运动信息推导tmvp。

在以上说明中,块索引(bi或bsi,其中i=0,1,2,3,…)被用于指定块,但是只要未特别提及,其不被用于指示搜索顺序或处理顺序中的优先级。

上述实施例涉及帧间预测中的运动信息存储和压缩方法以及使用所存储的运动信息推导tmvp的方法,并且可以以相同方式应用至编码器和解码器,以便编码器和解码器执行相同预测。从而,为了便于解释的目的,实施例被描述为解码器的操作,但是可以类似地应用至编码器。例如,本发明包括用“编码器”来代替上述实施例中的解码器的实施例。

在以上说明中,为了便于解释的目的,“运动信息存储缩减”、“运动矢量内存压缩”、“运动矢量缓冲器压缩”、“运动矢量压缩和存储”、“运动信息压缩和存储”等根据情况而被混合,但是它们意图用于便于解释的目的,并且可以按相同意义被使用。除了所使用的名称之外,以上说明中用于便于解释的目的的术语可以通过附图及其相关说明来限定。

虽然已经基于包括一系列步骤或块的流程图描述了上述示例性系统中的方法,但是本发明不限于步骤的顺序,并且特定步骤可以以除了上述之外的步骤或顺序来执行,或者与如上所述同时执行。上述实施例可以包括多种实例。从而,本发明包括上述实施例被同时应用或结合的实施例。

当以上提到元件被“连接到”或“耦合到”另一个元件时,应该理解,可以有再一个元件插入其间,以及元件可以直接连接或耦合至另一个元件。相反,当提到元件“直接连接到”或“直接耦合到”另一个元件时,应该理解,没有再一个元件插入其间。另外,本发明的技术范围包括实施例的同时应用或结合应用。

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