用于处理视频信号的方法和设备的制作方法

文档序号:7737382阅读:105来源:国知局
专利名称:用于处理视频信号的方法和设备的制作方法
技术领域
本发明涉及用于处理视频信号的设备及其方法,该设备和方法使用画面间预测。
背景技术
通常,在将编码视频信号传送到解码器时,执行移除空间冗余和时间冗余的方法 (即,画面内预测或者画面间预测的方法)以增强视频信号的压缩比。

发明内容
技术问题因此,本发明针对一种用于处理视频信号的设备及其方法,该设备和方法基本上避免了由于现有技术的局限和缺点而导致的一个或多个问题。本发明的目的在于提供一种用于处理视频信号的设备及其方法,通过该设备和方法能够使用画面间预测来高效地处理视频信号。本发明的另一目的在于提供一种用于处理视频信号的设备及其方法,通过该设备和方法能够以使用跳过模式来执行画面间预测的方式高效地处理视频信号。本发明的又另一目的在于提供一种用于处理视频信号的设备及其方法,通过该设备和方法能够使用直接模式来高效地处理视频信号。技术解决方案为了实现这些及其它优点,本发明提出了一种视频信号处理方法,其特征在于,在执行画面间预测中配置各种运动矢量候选,并且从该各种运动矢量候选获得精确的运动矢量。本发明提出了一种视频信号处理方法,其特征在于,指示宏块内具有预定大小的区域是否以跳过模式被编码。本发明提出了一种视频信号处理方法,其特征在于,指示根据宏块类型信息的宏块的分割是否以跳过模式被编码。本发明提出了一种视频信号处理方法,其特征在于,提出了用于指示在一个宏块内部分地直接模式或者跳过模式的宏块类型,并且基于该宏块类型使用跳过模式或者直接模式来执行画面间预测。本发明提出了一种视频信号处理方法,其特征在于,如果宏块以跳过模式被编码, 则按小于宏块大小的块单元来导出运动矢量。而且,本发明提出了一种视频信号处理方法,其特征在于,定义跳过模式指示信息或者直接模式指示信息,指示宏块是否以跳过模式被编码;并且使用CBP (编码块模式)信息来确定是跳过模式还是直接模式。有益效果因此,本发明提供了以下效果和/或优点。首先,从用于画面间预测的运动矢量候选获得精确的运动矢量。因此,能够减少要编码的运动矢量差值的比特大小,并且能够增强重建原始视频的准确度。在对于大于16x16 的宏块使用直接模式或者跳过模式的情况下,通过按小于宏块的大小的块单元使用直接模式或者跳过模式,能够减少使用跳过模式或者直接模式的画面间预测的误差,并且能够增强编码效率。通过使用用于指示一个宏块中的部分地跳过模式或者直接模式的宏块类型, 不需要针对该宏块内的预定大小的区域来对指示跳过模式或者直接模式的信息进行编码, 并且能够减少要通过仅对宏块类型信息进行编码来编码的比特大小。在以跳过模式编码宏块的情况下,通过按小于宏块的大小的宏块单元来导出运动矢量,能够使用该运动矢量获得接近原始视频的参考块的像素值。因此,能够提高宏块的重建比率。当宏块使用跳过模式或者直接模式时,没有必要对针宏块分开地对跳过模式指示信息和直接模式指示信息分开地进行编码。由于使用已经编码的CBP信息来确定跳过模式或者直接模式,因此能够减少要编码的信息大小。因此,能够提高视频信号处理的效率。


附图被包括进来以提供对本发明的进一步理解,并且被并入和构成本说明书的一部分,附示了本发明的实施例并且与描述一起用于解释本发明的原理。在附图中图1是根据本发明的视频信号解码设备的示意性框图;图2是根据本发明的一个实施例的按小于宏块大小的块单元应用跳过模式的方法的示图;图3是基于宏块类型信息指示在宏块内使用跳过模式的部分的方法的框图;图4是根据本发明的一个实施例的在子宏块级指示当前宏块是否部分地以跳过模式被编码的方法的图;图5是根据本发明的另一实施例的指示当前宏块是否部分地以跳过模式被编码的方法的图;图6和图7是根据本发明的一个实施例的指示部分跳过模式的宏块类型的示图;图8是根据本发明的一个实施例的在宏块类型是P跳过宏块的情况下导出运动矢量的方法的示图;图9是应用了空间方向预测模式的帧间预测单元700的示意性内部框图;以及图10是使用跳过模式指示信息或者直接模式指示信息来解码条带数据的过程的框图。最佳模式在随后的描述中将阐述本发明的其它优点和特征,并且部分地将从描述中变得明显,或者可以通过本发明的实践来习得。通过在撰写的描述及其权利要求以及附图中所具体指出的结构可以实现并且获得本发明的目的和其它优点。为了实现这些和其它优点并且根据本发明的目的,如实现并且广泛描述的,一种处理视频信号的方法,包括下述步骤根据当前宏块类型确定当前宏块的分割是否以跳过模式被编码;如果当前宏块的分割被以跳过模式编码,则导出该分割的运动矢量;以及基于该导出的运动矢量来预测分割的像素值。优选地,本发明的特征在于,确定步骤进一步包括获得当前宏块类型的步骤。
更优选地,本发明的特征在于,该方法进一步包括下述步骤获得关于当前宏块的分割的跳过模式指示信息。而且,本发明的特征在于,基于根据当前宏块类型的预测块的大小信息来获得当前宏块的分割。此外,本发明的特征在于,跳过模式指示信息包括指示当前宏块的分割是否以跳过模式被编码。优选地,本发明的特征在于,从与当前宏块的分割邻近的块的运动矢量的中间值导出分割的运动矢量。更优选地,本发明的特征在于,与当前宏块的分割邻近的块包括分割的左块、上块和右上块。优选地,本发明的特征在于,分割的像素值包括运动矢量参考的基准块的像素值。应当理解,前述一般性描述和接下来的详细描述都是示例性和说明性的,并且意在提供如本要求保护的本发明的进一步的说明。
具体实施例方式现在将详细参考本发明的优选实施例,其示例在附图中被示出。首先,在该说明书和权利要求中使用的术语或者词语不应该被理解为局限为一般性或者字典中的含义,并且应该基于发明人能够适当地定义该术语的概念来以最佳的方式描述发明人的发明的原理来理解为匹配本发明的技术原理的含义和概念。在本公开中公开的实施例和附图中示出的配置仅是一个优选实施例,并且不表示本发明的所有技术原理。因此,应当理解,在本发明的修改和变化落入在提交本申请时所附权利要求及其等价物的范围内的情况下,本发明涵盖这些修改和变化。首先,宏块是用于处理视频帧的基本单元,并且能够被定义为由16x16个像素构建的区域。大于16x16的宏块能够成为用于处理具有大于现有技术的分辨率的视频帧的基本单元。例如,该宏块能够被定义为例如用3h32个像素或者64x64个像素构建的区域。能够根据视频图像的分辨率适配地使用大于16x16的宏块。例如,如果视频图像的分辨率等于或者小于VGA,则能够将宏块的大小设置为16x16。因此,可以使用16x8、 8x16,4x8,8x4以及4x4块中的一个作为对宏块的分割。如果视频图像的分辨率等于或者大于VGA并且等于或者小于1080P,则能够将宏块的大小设置为32x32。因此,可以使用32x16、 16x32,16x16,16x8,8x16和8x8块中的一个作为宏块的分割。如果视频图像的分辨率等于或者大于IOSOp并且等于或者小于4k x2k,则能够将宏块的大小设置为64x64。类似的,能够使用6虹32、3&64、3&16、16x32和16x16来作为对宏块的分割。然而,编码器能够根据视频图像的分辨率来确定16x16宏块和大于16x16的其它宏块中的一个的最佳大小。所确定的宏块大小信息能够在条带或者序列级被传送到解码器。能够根据宏块的预测模式,即根据画面内预测模式或者画面间预测模式来定义宏块类型。这能够包括预测块的大小信息。而且,用于执行画面间预测的宏块类型还能够包括关于预测方向的信息。以画面内预测模式编码的预测块的大小能够被设置为16x16像素、8x8像素和4x4 像素中的一个。该预测块可以指用于在画面内执行画面内预测或者画面间预测的块的单元。对于以画面间预测模式编码的预测块的运动补偿,可以使用16x16像素、16x8像素、 8x16像素和8x8像素中的一个作为预测块的大小。在使用8x8像素作为预测块的大小的情况下,能够以8x8像素预测块的分割(例如,8x4像素、4x8像素和4x4像素)的单元来执行画面间预测。在分辨率等于或者大于VGA并且等于或者小于1080P的情况下,以画面内预测模式编码的预测块的大小能够被设置为16x16像素或者8x8像素。而且,以画面间预测模式编码的预测块的大小能够被设置为16x16像素、16x8像素、8x16像素和8x8像素中的一个。 在该情况下,可以不以8x8像素预测块的分割(例如,8x4像素、4x8像素和4x4像素)的单元来执行画面间预测。在分辨率等于或者大于1080P并且等于或者小于4kx2k的情况下, 以画面内预测模式或者画面间预测模式编码的预测块的大小能够被设置为16x16像素。类似地,编码器能够根据视频图像的分辨率来确定最佳宏块类型。该确定的宏块类型信息能够在条带级或者序列级被发送到解码器。因此,能够适配地使用确定的宏块类型。图1是根据本发明的视频信号解码设备的示意性框图。参考图1,解码设备主要包括解析单元100、熵解码单元200、反量化/反变换单元 300、帧内预测单元400、去块化滤波单元500、解码画面缓冲单元600、帧间预测单元700等。解析单元100以NAL单元来执行解析以解码接收到的视频图像。通常,在解码条带头和数据之前将至少一个或多个序列参数集和画面参数集发送到解码器。在该情况下, 各种属性信息可以被包括在NAL头区域或者NAL头的扩展区域中。经由熵解码单元200对解析的比特流进行熵解码,并且然后提取每个宏块的系数、运动矢量等。反量化/反变换单元300通过使接收到的量化值乘以预定的常数来获得系数值,并且然后通过反变换系数值来重建像素值。帧内预测单元400使用重建的像素值在当前画面内根据解码的采样来执行画面内预测。同时,去块化滤波单元500被应用于每个编码的宏块以减少块失真。滤波器通过对块的边缘进行平滑来增强帧的图像质量。对于滤波处理的选择取决于图像采样的变化。滤波的画面被输出或者存储在解码画面缓冲单元600中以用作基准画面。解码画面缓冲单元600在存储或者打开先前编码的画面中起作用以执行画面间预测。在该情况下,为了存储或者打开它们,使用每个画面的frame_nUm以及P0C(画面顺序计数)。帧间预测单元700使用存储在解码画面缓冲单元600中的基准画面来执行画面间预测。以帧间模式编码的宏块能够被分城宏块分割。而且能够根据一个或两个基准画面来预测宏块分割中的每一个。帧间预测单元700使用从熵解码单元200传送的信息来补偿当前块的运动。在下面的描述中,应当理解,块包括宏块或者宏块的分割。从视频信号中提取与当前块相邻的块的运动矢量。然后,能够从相邻块获得当前块的运动矢量预测值。相邻块能够包括当前块的左侧、上侧或者右上侧的块。例如,能够将当前块的运动矢量的预测值设置为使用相邻块的运动矢量的水平分量和垂直分量的中间值来获得。替代地,在当前块的左侧块具有以画面间预测模式编码的至少一个预测块的情况下,能够将当前块的运动矢量的预测值设置为使用位于上侧的预测块的运动矢量来获得。在当前块的上侧块具有以画面间预测模式编码的至少一个预测块的情况下,能够将当前块的运动矢量的预测值设置为使用位于最左侧的预测块的运动矢量来获得。在相邻块中位于当前块的上侧和右侧的块位于画面或者条带的边界外,则能够将当前块的运动矢量的预测值设置为左侧块的运动矢量。如果在相邻块中存在具有当前块的相同基准画面所以的一个块,则能够将对应块的运动矢量设置为用于预测。基于根据宏块类型的宏块的分割,能够获得运动矢量的预测值。例如,当根据当前宏块类型的当前宏块的分割是8x16时,如果宏块的分割的索引被设置为0,则能够将当前块的上侧块设置为用于预测。如果宏块的分割的索引被设置为1,则能够将当前块的左侧块设置为用于预测。在获得当前块的运动矢量预测值时,能够将可从相邻块提取的各种运动矢量定义为运动矢量预测值的候选。如前面的描述中所提到的,运动矢量预测值的候选能够包括相邻块中的一个的运动矢量、相邻块的运动矢量的中间值等,候选不限于此。因此,编码器从运动矢量预测值中选择具有最佳效率的运动矢量作为运动矢量预测值,并且然后能够将选择的运动矢量信息发送到解码器。能够从宏块级的条带级获得选择的运动矢量信息。能够使用索引来定义运动矢量预测值的候选。而且,选择的运动矢量信息能够包括该索引。通过对当前块的运动矢量和运动矢量的预测值之间的差矢量进行编码,能够减少要编码的比特大小。使用获得的运动矢量预测值和从视频信号提取的差矢量来补偿当前块的运动。此外,能够使用一个基准画面或者多个画面来执行该运动补偿。在宏块的大小是16x16的情况下,包括16x16、16x8、8xl6、8x 8,8x4,4x8和4x4的总共7种块大小可用于画面间预测。它们能够被分级地表示为宏块或者子宏块类型。具体地,预测块的大小能够被表示为宏块类型,并且能够选择16χ16、16χ8、8χ16和8x8中的一个。能够针对每个预测块对基准画面索引和运动矢量进行编码。替代地,能够针对每个预测块来对运动矢量进行编码。当然,能够以与宏块相同的方式来确定用于子宏块的编码方案。在重建当前宏块时,跳过宏块可以被定义为使用在前一编码基准画面中完整的宏块的像素值来替代具有关于当前宏块的信息,即,运动矢量、基准画面索引以及残差数据。 在对跳过宏块进行编码时,能够伴随着使用运动矢量的运动补偿。能够使用相邻块导出该运动矢量。先前的运动矢量导出方法相同地适用于导出该运动矢量的方法。如下解释用于使用跳过模式对条带数据进行编码的过程。首先,能够获得指示条带内的当前宏块是否是跳过宏块的标志信息。在宏块大于16x16的情况下,能够通过指示使用跳过模式的宏块的分割以小于该宏块大小的块单元应用跳过模式。因此,能够增强编码的效率。图2是根据本发明的一个实施例的以小于宏块的大小的块单元应用跳过模式的方法的图。参考图2,在宏块的大小是32x32的情况下,能够使用指示其是否是以16x16块为单位的跳过宏块的标志信息。如果指示其是否是跳过宏块的标志被设置为1,则能够定义该宏块处于跳过模式。在宏块内位于上侧的宏块的分割仅以跳过模式进行编码的情况下, 能够传送四个比特“1000”。如果宏块内的16x16宏块的所有分割都以跳过模式进行编码, 则不解析诸如运动矢量等的其它信息。然而,如果宏块部分地包括以跳过模式编码的宏块的分割,则将解析宏块类型。在该情况下,能够将其表示为具有16x16宏块的分割的宏块类型。图3是基于宏块类型信息指示宏块内使用跳过模式的部分的方法的框图。
参考图3,解析在条带级指示当前块是否是跳过宏块的标志信息[S300]。作为解析的结果,如果当前宏块不是跳过宏块[‘否1’ ],则将在宏块级解析当前宏块类型信息 [S310],如果当前宏块不是跳过宏块,则可以以跳过模式对当前宏块的一些分割进行编码。 因此,如果当前宏块是跳过宏块[‘是1’ ],则能够在不对当前宏块的运动信息等进行解析的情况下执行解码[S340]。如果当前宏块不是跳过宏块,则解析当前宏块类型,并且然后能够从当前宏块类型获得当前宏块的分割信息。能够解析指示当前宏块的分割是否以跳过模块进行编码的标志信息[S320]。当当前宏块的大小是32x32时,作为在宏块级解析当前宏块类型的结果,如果当前宏块类型被表示为16x16,则能够解析指示16x16宏块的分割是否以跳过模式进行编码的标志信息。根据该标志信息,将在不对运动信息等进行解析的情况下对跳过模式编码的分割执行解码[‘是2’]。而且对于没有以跳过模式进行编码的分割 [‘否2’ ],将解析运动信息和残差数据[S330]。这能够等同地适用于子宏块级。图4是根据本发明的一个实施例的指示在子宏块级是否部分地以跳过模式编码当前宏块的方法的示图。参考图4,如果当前宏块的大小是32x32,则能够将子宏块的大小设置为16x16。作为解析当前宏块类型信息的结果,如果根据当前宏块类型的宏块的分割是16x16,则能够解析指示是否以跳过模式编码四个16x16子宏块的标志信息[S400]。作为该解析的结果,能够在不解析单独的信息的情况下对跳过模式编码的子宏块执行解码 [S410]。因此,能够解析该子宏块的基准画面索引和运动矢量[S420]。然而,能够基于根据子宏块类型的子宏块的分割解析该子宏块的运动矢量。图5是根据本发明的另一实施例的指示是否部分地以跳过模式编码当前宏块的方法的示图。参考图5,能够解析指示条带内的当前宏块是否是跳过宏块的标志信息[S500]。 如果根据标志信息当前宏块是跳过宏块[‘是1’],则能够在不解析运动信息等的情况下执行解码[S550]。然而,如果当前宏块不是跳过宏块[‘否1’],则能够解析指示当前宏块的分割是否存在和分割的跳过模式编码是否存在的标志信息[S510]。例如,在宏块的大小是32x32的情况下,如果标志被设置为1,则能够定义该宏块的分割是16x16。而且还能够定义该宏块的分割中的至少一个以跳过模式进行编码。另一方面,如果该标志被设置为0,则能够定义该宏块的分割不是16x16或者定义即使分割为 16x16,该宏块的所有分割也不以跳过模式进行编码。在下面的描述中,假定以上述方式定义标志。因此,作为解析标志信息的结果,如果获得了‘1’[ ‘是2’],则当宏块的分割被设置为16x16时,不需要解析宏块类型信息。而且,能够针对四个16x16宏块分割解析指示该16x16宏块的分割是否以跳过模式被编码的标志信息[S560]。因此,如果该16x16宏块的分割以跳过模式进行编码[‘是3’],则能够在不解析运动信息等的情况下执行解码[S550]。此外,如果以跳过模式编码分割,则可以不解析CBP。因此,通过减少传送的信息的大小,则能够增强信号处理的效率。然而,如果没有以跳过模式进行编码[‘否3’ ],则解析运动信息和残差[SM0],并且能够使用解析结果来进行解码[S550]。作为解析标志信息的结果,如果获得了 0[ ‘否2’ ],则能够解析当前宏块类型信息[S520]。如果根据当前宏块类型的当前宏块的分割不是16x16,则能够解析指示其是否以跳过模式被编码的标志信息[S530]。然而,如果根据当前宏块类型的当前宏块的分割是16x16,则当所有四个分割没有以跳过模式被编码,则可以不解析指示分割是否以跳过模式被编码的标志信息。而且,能够将指示分割是否以跳过模式被编码的信息设置为被导出为 O0如果根据指示获得的宏块的分割中的每一个是否以跳过模式被编码的标志信息, 以跳过模式编码分割[‘是3’ ],则能够在不解析运动信息等的情况下执行解码。如果没有以跳过模式编码分割[‘否3’],则能够通过解析运动信息和残差来执行解码[S540] [S550]。以另一种方式,能够新定义用于跳过模式指示的宏块类型。图6和图7是根据本发明的一个实施例的用于指示部分跳过模式的宏块类型的图。在宏块的大小大于16x16的情况下,能够定义指示宏块的分割单元是否使用跳过模式的宏块类型。参考图6,下面的描述中所解释的是下述情况假定宏块的大小是32x32,宏块的分割单元使用跳过模式。如前面的描述中所提到的,在当前宏块内的16x16宏块的所有分割都以跳过模式被编码的情况下,能够获得在条带级指示当前宏块是跳过宏块的标志信息。相反地,在16x16宏块的所有分割没有被以跳过模式编码的情况下,然后能够解析指示当前宏块不是跳过宏块的标志信息和当前宏块类型。在该情况下,如果该16x16宏块的分割中的一些被部分地以跳过模式编码,则当前宏块类型可以被表示为图7中所示的宏块类型。具体地,该16x16宏块的分割(宏块的分割索引0和2)以跳过模式进行编码并且该16x16宏块的分割(宏块的分割索引1和3) 没有被以跳过模式编码,则当前宏块类型将变为5[S600]。在该情况下,能够在不解析诸如运动信息等的其它信息的情况下解码该16x16宏块的分割(宏块的分割索引0和2)。然而,对于该16x16宏块的分割(宏块的分割索引1和3)将解析运动信息、基准画面索引等。 该16x16宏块的分割(宏块的分割索引0和2)中的每一个能够被设置为16x32预测宏块的大小或者16x16预测宏块的大小。如下解释导出跳过宏块的运动矢量的方法。而且能够以相同方式导出子宏块的运
动矢量。首先,如果当前宏块是跳过宏块,则能够使用当前块的相邻块来导出运动矢量。例如,假定当前块的左侧的块、上侧的块以及右上侧的块分别被称名为相邻块A、 相邻块B以及相邻块C。而且假定它们的运动矢量分别被设置为mvA、mvB以及mvC。当前块的运动矢量能够被导出为mvA、mvB以及mvC的水平和垂直分量的中间值或者mvA、mvB、 mvC的平均值。能够导出为三个运动矢量中的一个,并且这能够基于基准画面索引来确定。 此外,在宏块大于16x16的情况下,能够按小于宏块或者子宏块的大小的块单元导出运动矢量来获得宏块的准确运动矢量。图8是根据本发明的一个实施例的在宏块类型是P跳过宏块的情况下导出运动矢量的方法的示图。参考图8,在宏块的大小是32x32的情况下,能够按小于宏块大小的块单元,即以 8x8块单元来导出运动矢量。具体地,能够将块0的运动矢量导出为mvAO、mvBO以及mvCO 的水平分量和垂直分量的中间值、mvA0、mvB0以及mBl的平均值、或者mVA0、mVB0以及mvBl 中的一个运动矢量。类似地,块1的运动矢量能够被导出为mVB0、mVBl和mvB2的水平分量和垂直分量的中间值。块的索引可以表示解码顺序。
在下面解释使用直接模式的画面间预测。首先,直接模式指示从重建块的运动信息预测当前块的运动信息的模式。运动信息可以包括运动矢量和基准画面索引。例如,能够将列表1基准画面中具有最小参考索引的画面定义为直接模式下的锚画面。而且,当前块的共同位于同一空间位置的锚画面的块能够被定义为锚块。例如,在时间预测模式中,能够使用锚块的运动信息来预测当前块的运动信息。能够将锚块的列表0方向上的运动矢量定义为mvCol。在该情况下,如果锚块的列表0方向上的运动矢量不存在但是列表1方向上的运动矢量存在,则能够将列表1方向上的运动矢量设置为mvCol。在该情况下,在画面B的情况下,能够使用两个随机画面作为基准画面,而与时间或者空间序列无关。在这样做时,使用的预测被称为列表0预测或者列表1预测。例如,列表0预测指对于向前方向的预测,而列表1预测指对于向后方向的预测。在时间直接模式中,当前块的列表0基准画面变为mvCol参考的画面,并且列表1 基准画面变为锚画面。如果锚块不具有运动信息,则运动矢量变为0,并且时间直接模式中的列表0基准画面的基准画面索引变为0。此外,能够从运动矢量mvCol找到列表0的运动矢量mvLO和列表1的运动矢量 mvLl。假定基准画面内的运动的速度、当前画面和锚画面是恒定的,则在基准画面、当前画面和锚画面中,mvLO和mvLl中的每一个的大小变为与时间间隔成正比。因此,使用基准画面和当前画面之间的间隔以及基准画面和锚画面之间的间隔,能够找到mvLO和mvLl。具体地,在锚块的列表0参考索引指长时期基准画面的情况下,其能够通过公式1来获得。[公式1]mvLO = mvColmvLl = 0在锚块的列表0参考索引不指长时期基准画面的情况下,能够通过公式2来获得[公式2]mvLO = mvCol* (tb/td)mvLl = -mvCol* (td_tb)/td = mvLO-mvCol对于直接模式的另一示例,空间直接模式使用空间方向的运动信息相关性来预测当前块的运动信息。与时间直接模式类似,在寻找运动信息中使用锚画面和锚块。图9是对其应用了空间方向预测模式的帧间预测单元700的示意性内部框图。参考图9,帧间预测单元700主要包括直接模式识别单元710、空间方向预测执行单元720等。而且,空间直接预测执行单元720包括第一变量导出单元721、第二变量导出单元722以及运动信息预测单元723。直接模式识别单元710识别当前条带的预测模式。例如,如果当前条带的条带类型是P条带或者B条带,则可以使用直接模式。在该情况下,能够使用指示将使用直接模式中的时间直接模式还是空间直接模式的直接模式标记。直接模式标记能够从条带报头获得。在根据直接模式标记应用空间直接模式的情况下,能够优选地获得与当前块相邻的块的运动信息。例如,假定当前块的左侧的块、上侧的块以及右上侧的块被分别称为相邻块A、 相邻块B以及相邻块C,则能够获得相邻块A、B和C的运动信息。第一变量导出单元721 能够使用相邻块的运动信息导出当前块的列表0或者列表1方向的基准画面索引。而且, 然后能够基于当前块的基准画面索引导出第一变量。在该情况下,第一变量能够表示作为随机值的在预测当前块的运动矢量中使用的变量(directZeroPredictionFlag)。例如,当前块的列表0或者列表1方向的基准画面索引能够被导出为相邻块的基准画面索引的最小值。对此,可以使用下面的公式(公式3)。[公式3]refldxLO = MinPositive (refldxLOA, MinPositive (refldxLOB, refldxLOC))refldxLl = MinPositive(refldxLlA, MinPositive(refldxLIB, refldxLIC))其中,MinPositive (χ, y) = Min (χ, y) (χ > O 并且 y > 0)Max (χ,y)(其它情况)例如,详细地,其变为“MinPOSitiVe(0,l) =0”。具体地,在存在两个有效的索引的情况下,能够获得较小的值。替代地,变为“MinPOSitiVe(-l,0) =0”。S卩,在存在一个有效索引的情况下,能够获得作为有效索引值的大的值。替代地,变为“MinP0SitiVe(-l,-l) =-1”。即,在两个索引都不是有效索引情况下,例如,如果两个相邻块都是以画面内预测模式编码的块或者两个相邻块不可用,则获得大的值“_1”。因此,为了获得无效的结果值,应该不存在至少一个有效值。首先,对于第一变量的初始值,能够将第一变量设置为O。此外,在导出的列表O和列表1方向的每个基准画面索引小于O的情况下,能够将当前块的列表O或者列表1方向的基准画面索引设置为O。而且,第一变量能够被设置为指示当前块的基准画面不存在的值。在该情况下,导出的列表O和列表1方向的每个基准画面索引小于O的情况指例如相邻块是以画面内预测模式编码的块的情况或者是相邻块不可用的情况。在该情况下,通过将第一变量设置为1,能够将当前块的运动矢量设置为O。由于对于本实施例使用了三个相邻块,因此在全部三个相邻块以画面内预测模式编码或者不可用的情况下,则当前块的基准画面索引可以具有“-1”的无效值。因此,如果当前块的所有基准画面索引不可用,则能够将第一变量设置为1。具体地,如果当前块将使用的基准画面不存在,则能够将第一变量设置为1。第二变量导出单元722能够使用锚画面内的锚块的运动信息导出第二变量。在该情况下,第二变量可以指作为随机值的用于预测当前块的运动矢量的变量。例如,在锚块的运动信息满足预定条件的情况下,能够将第二变量设置为1。如果第二变量被设置为1,则能够将当前块的列表O或者列表1方向的运动矢量设置为O。预定条件能够包括下面所述。 首先,列表1方向的基准画面中具有最小基准画面索引的画面应该是短时期基准画面。其次,锚块的基准画面的参考索引应该被设置为O。第三,锚块的运动矢量的水平分量和垂直分量中的每一个应该等于或者小于士 1。因此,如果满足所有预定条件,则确定其接近几乎不具有运动的视频。而且,当前块的运动矢量然后被设置为O。运动信息预测单元723能够基于导出的第一和第二变量来预测当前块的运动信息。例如,如果第一变量被设置为1,则能够将当前块的列表O或者列表1的运动矢量设置为O。如果第二变量被设置为1,则能够将当前块的列表O或者列表1的运动矢量设置为O。 在该情况下,设置为O或者1仅是示例性的。而且,能够将第一和第二变量设置为另一预定值来使用。如果不满足预定条件,则能够从当前画面内的相邻块的运动信息导出当前块的运动信息。例如,在运动矢量的情况下,可以等同地应用跳过宏块的运动矢量导出方法。能够以下述方式找到当前块的基准画面索引计算位于左、上和右上侧的运动矢量的基准画面索引中的最小值,并且然后将最小值设置给当前块的基准画面。如下地解释指示是否以直接模式编码当前宏块的方法。为此,应当理解,相同方法也可应用于子宏块。图10是用于使用跳过模式或者直接模式指示信息解码条带数据的过程的框图。参考图10,能够解析指示条带内的当前宏块是否是跳过宏块的标志信息 [S1000]。能够从条带层获得该标志信息。作为解析该标志信息的结果,如果当前宏块是跳过宏块[“是1”],则能够在不解析运动信息和残差数据的情况下执行解码[S1050]。然而, 如果当前宏块不是跳过宏块[“否1”],则能够解析当前宏块的块类型[S1010]。能够根据当前宏块的块类型来针对当前宏块的每个分割解析跳过或者直接模式指示信息[S1020]。 在该情况下,跳过或者直接模式指示信息可以表示指示宏块的分割是以跳过模式还是以直接模式编码的信息。以下描述是基于当前宏块的大小为3h32的假设进行的。首先,作为解析当前宏块类型信息的结果,如果当前宏块以画面间预测模式被编码并且当前宏块的分割为16x32,则将使用2比特作为跳过或者直接模式指示信息。如果宏块的分割索引0以跳过或者直接模式被编码,但是该宏块的分割索引1没有以跳过或者直接模式被编码,则能够获得“10”作为跳过或者直接模式指示信息。在已经解析了跳过或者直接模式指示信息之后,能够解析CBP编码块样式信息[S1030]。在该情况下,CBP信息能够表示指示当前块是否包括残差数据的信息。因此,通过解析CBP信息,能够了解当前块的分割是以跳过模式编码还是直接模式编码。例如,作为解析关于当前宏块的分割的CBP信息的结果,如果获得 “1”,则能够认为该分割以直接模式被编码。基于该跳过或者直接模式指示信息,确定当前宏块的每个分割是以跳过模式编码还是直接模式编码。在该分割没有被以跳过模式或者直接模式编码[“否2”],则能够通过解析运动信息和残差数据来执行解码[S1040] [S1050]。 然而,在分割以跳过模式或者直接模式编码的情况下[“是2”],将基于解析的CBP信息确定该分割是以跳过模式编码还是直接模式编码[S1060]。因此,在以跳过模式编码的情况下 [“是3”],能够在不解析运动信息等的情况下执行解码[S1040]。在以直接模式编码的情况下[“否3”],在已经解析了残差数据[S1070]之后,能够使用残差数据执行解码[S1050]。 在以直接模式编码的情况下,能够以与以跳过模式编码的情况相同的方式导出运动矢量。 如果条带类型是P条带以及B条带,则能够使用直接模式。如果条带类型是B条带,则宏块类型信息能够包括预测块的大小信息、预测方向信息等。然而,如果指示了根据跳过或者直接模式指示信息来以跳过或直接模式来编码当前宏块的分割,则导出该分割的运动矢量。因此,能够导出分割的预测方向信息。在该情况下,能够认为宏块类型信息包括不需要的预测方向信息。因此,通过新定义宏块类型,希望使用上述跳过或者直接模式指示信息来高效地执行条带数据的解码。例如,能够将B条带的宏块类型设置为B_direct_32x32, B_32x32、B_32xl6、 B_16x32以及B_16xl6中的一个。然而,在宏块类型被重置的情况下,确定图10中的当前宏块的分割以跳过模式还是以直接模式编码。如果以跳过模式或者直接模式编码,则将以与上述相同的过程来执行解码。如果没有以跳过模式或者直接模式编码,则将从接收到的比特流以及运动信息和残差数据解析关于宏块的预测方向的信息。工业实用性
因此,本发明适用于视频信号编码/解码。虽然已经参考优选示例性实施例在这里描述并且图示了本发明,但是对于本领域技术人员来说明显的是,能够在不偏离本发明的精神和范围的情况下在其中进行各种修改和变化。因此,本发明意在涵盖落入所附权利要求及其等价物的范围内的本发明的修改和变化。
权利要求
1.一种处理视频信号的方法,包括下述步骤根据当前宏块类型确定当前宏块的分割是否以跳过模式被编码; 如果所述当前宏块的分割被以所述跳过模式被编码,则导出所述分割的运动矢量;以及基于所述导出的运动矢量来预测所述分割的像素值。
2.根据权利要求1所述的方法,所述确定步骤进一步包括步骤获得所述当前宏块类型。
3.根据权利要求2所述的方法,进一步包括步骤获得关于所述当前宏块的分割的跳过模式指示信息。
4.根据权利要求3所述的方法,其中,基于根据当前宏块类型的预测宏块的大小信息来获得当前宏块的分割。
5.根据权利要求3所述的方法,其中,所述跳过模式指示信息包括指示所述当前宏块的分割是否以跳过模式编码的信息。
6.根据权利要求1所述的方法,其中,从与所述当前宏块的分割相邻的块的运动矢量的中间值导出所述分割的运动矢量。
7.根据权利要求6所述的方法,其中,与当前宏块的分割相邻的块包括所述分割的左块、上块以及右上块。
8.根据权利要求1所述的方法,其中,所述分割的像素值包括由所述运动矢量所参考的基准块的像素值。
全文摘要
公开了一种处理视频信号的方法。本发明包括确定根据当前宏块类型的当前宏块的分割是否以跳过模式编码;如果当前宏块的分割以跳过模式编码,则导出该分割的运动矢量;以及基于导出的运动矢量来预测该分割的像素值。因此,本发明通过以小于宏块的大小的块单元来导出运动矢量来使用运动矢量获得接近原始视频的参考块的像素值,从而增强宏块的重建比率。
文档编号H04N7/32GK102210153SQ200980144471
公开日2011年10月5日 申请日期2009年10月6日 优先权日2008年10月6日
发明者全柄文, 崔瑛喜, 朴俊永, 朴胜煜, 金郑善 申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1