用于对运动矢量进行编码/解码的方法和设备与流程

文档序号:11732684阅读:169来源:国知局
用于对运动矢量进行编码/解码的方法和设备与流程
用于对运动矢量进行编码/解码的方法和设备本申请是向中国知识产权局提交的申请日为2010年8月13日的标题为“用于对运动矢量进行编码/解码的方法和设备”的第201080036026.1号申请的分案申请。技术领域与示例性实施例一致的设备和方法涉及一种用于对运动矢量进行编码的方法和设备,更具体地讲,涉及一种用于对当前块的运动矢量预测因子进行编码的方法和设备。

背景技术:
编解码器(诸如运动图像专家组(MPEG)-4H.264/MPEG-4、先进视频编码(AVC))使用与当前块邻近的先前编码的块的运动矢量来预测当前块的运动矢量。也就是说,与当前块的左侧、上侧、右上侧邻近的先前编码的块的运动矢量的中值被用作当前块的运动矢量预测因子(motionvectorpredictor)。

技术实现要素:
技术方案示例性实施例提供了一种用于对运动矢量进行编码和解码的方法和设备,以及存储用于执行所述的方法的计算机可读程序的计算机可读记录介质。有益效果根据本发明,基于更精确的运动矢量预测因子来对运动矢量进行有效编码。附图说明通过参考附图对示例性实施例进行的详细描述,上述和/或其他方面将会变得更加清楚,其中:图1是根据示例性实施例的用于对图像进行编码的设备的框图;图2是根据示例性实施例的用于对图像进行解码的设备的框图;图3示出根据示例性实施例的分层编码单元;图4是根据示例性实施例的基于编码单元的图像编码器的框图;图5是根据示例性实施例的基于编码单元的图像解码器的框图;图6示出根据示例性实施例的最大编码单元、子编码单元和预测单元;图7示出根据示例性实施例的编码单元和变换单元;图8A和图8B示出根据示例性实施例的编码单元、预测单元和变换单元的划分形状;图9是根据示例性实施例的用于对运动矢量进行编码的设备的框图;图10A和图10B示出根据示例性实施例的显式模式(explicitmode)的运动矢量预测因子候选;图11A至图11C示出根据另一示例性实施例的显式模式的运动矢量预测因子候选;图12示出根据示例性实施例的在隐含模式中产生运动矢量预测因子的方法;图13是根据示例性实施例的用于对运动矢量进行解码的设备的框图;图14是根据示例性实施例的对运动矢量进行编码的方法的流程图;图15是根据示例性实施例的对运动矢量进行解码的方法的流程图。最优实施方式根据示例性实施例的一方面,提供了一种对当前块的运动矢量进行编码的方法,所述方法包括:选择第一模式或第二模式作为对关于当前块的运动矢量预测因子的信息进行编码的模式,其中,在所述第一模式中,指示至少一个运动矢量预测因子之中的运动矢量预测因子的信息被编码,在所述第二模式中,指示基于与当前块邻近的先前编码的区域中包括的块或像素来产生运动矢量预测因子的信息被编码;根据选择的模式确定当前块的运动矢量预测因子,并对关于当前块的运动矢量预测因子的信息进行编码;对当前块的运动矢量与当前块的运动矢量预测因子之间的差矢量进行编码。选择第一模式或第二模式的步骤可包括:基于指示从当前画面或像条的最大编码单元的大小减少到当前块的大小的程度的深度来选择第一模式或第二模式。选择第一模式或第二模式的步骤可包括:以包括当前块的当前画面或像条为单位来选择第一模式或第二模式。选择第一模式或第二模式的步骤可包括:基于当前块是否以跳过模式被编码来选择第一模式或第二模式。所述至少一个运动矢量预测因子可包括:与当前块的左侧邻近的块的第一运动矢量、与当前块的上侧邻近的块的第二运动矢量以及与当前块的右上侧邻近的块的第三运动矢量。所述至少一个运动矢量预测因子还可包括:第一运动矢量、第二运动矢量和第三运动矢量的中值。所述至少一个运动矢量预测因子还可包括:基于参考画面中与当前块协同定位的块的运动矢量以及所述参考画面与当前画面之间的时间距离而产生的运动矢量预测因子。指示基于与当前块邻近的先前编码的区域中包括的块或像素来产生运动矢量预测因子的信息可以是这样的信息,所述信息指示基于与当前块的左侧邻近的块的第一运动矢量、与当前块的上侧邻近的块的第二运动矢量和与当前块的右上侧邻近的块的第三运动矢量的中值,来产生当前块的运动矢量预测因子。指示基于与当前块邻近的先前解码的区域中包括的块或像素来产生运动矢量预测因子的信息可以是这样的信息,所述信息指示基于通过使用与当前块邻近的先前编码的区域中包括的像素来搜索参考画面而产生的运动矢量来产生当前块的运动矢量预测因子。根据另一示例性实施例的一方面,提供了一种用于对当前块的运动矢量进行编码的设备,所述设备包括:预测器,选择第一模式或第二模式作为对关于当前块的运动矢量预测因子的信息进行编码的模式,并基于选择的模式确定当前块的运动矢量预测因子,其中,在所述第一模式中,指示至少一个运动矢量预测因子之中的运动矢量预测因子的信息被编码,在所述第二模式中,指示基于与当前块邻近的先前编码的区域中包括的块或像素来产生运动矢量预测因子的信息被编码;第一编码器,对关于基于选择的模式而确定的当前块的运动矢量预测因子的信息进行编码;第二编码器,对当前块的运动矢量与当前块的运动矢量预测因子之间的差矢量进行编码。根据另一示例性实施例的一方面,提供了一种对当前块的运动矢量进行解码的方法,所述方法包括:对关于当前块的运动矢量预测因子的信息进行解码,所述信息根据从第一模式和第二模式之中选择的模式被编码;对当前块的运动矢量与当前块的运动矢量预测因子之间的差矢量进行解码;基于解码的关于当前块的运动矢量预测因子的信息来产生当前块的运动矢量预测因子;基于所述运动矢量预测因子和差矢量来恢复当前块的运动矢量,其中,第一模式是在其中指示至少一个运动矢量预测因子之中的运动矢量预测因子的信息被编码的模式,第二模式是在其中指示基于与当前块邻近的先前解码的区域中包括的块或像素来产生运动矢量预测因子的信息被编码的模式。根据另一示例性实施例的一方面,提供了一种对当前块的运动矢量进行解码的设备,所述设备包括:第一解码器,对关于当前块的运动矢量预测因子的信息进行解码,所述信息根据从第一模式和第二模式之中选择的模式被编码;第二解码器,对当前块的运动矢量与当前块的运动矢量预测因子之间的差矢量进行解码;预测器,基于解码的关于当前块的运动矢量预测因子的信息来产生当前块的运动矢量预测因子;运动矢量恢复单元,基于运动矢量预测因子和差矢量来恢复当前块的运动矢量,其中,第一模式是在其中指示至少一个运动矢量预测因子之中的运动矢量预测因子的信息被编码的模式,第二模式是在其中指示基于与当前块邻近的先前解码的区域中包括的块或像素来产生运动矢量预测因子的信息被编码的模式。根据另一示例性实施例的一方面,提供了一种存储用于执行对运动矢量进行编码的方法和对运动矢量进行解码的方法的计算机可读程序的计算机可读记录介质。具体实施方式将参照附图更充分地描述示例性实施例,其中,相同的标号始终表示相同的元件。当在元件的列表之前时,诸如“至少一个”的表述修饰元件的整个列表而不修饰列表的单个元件。在本说明书中,“图像”可表示用于视频的静止图像或运动图像(即,视频本身)。图1是根据示例性实施例的用于对图像进行编码的设备100的框图。参照图1,设备100包括最大编码单元划分器110、编码深度确定器120、图像数据编码器130和编码信息编码器140。最大编码单元划分器110可基于作为最大大小的编码单元的最大编码单元对当前画面(picture)或当前像条(slice)进行划分。也就是说,最大编码单元划分器110可对当前画面或像条进行划分,以获得至少一个最大编码单元。根据示例性实施例,可使用最大编码单元和深度来表示编码单元。如上所述,最大编码单元表示当前画面的编码单元中具有最大大小的编码单元,所述深度表示通过分层减小编码单元而获得的子编码单元的大小。随着深度加深,编码单元可从最大编码单元减小到最小编码单元,其中,最大编码单元的深度被定义为最小深度,最小编码单元的深度被定义为最大深度。由于编码单元的大小随着深度增加而从最大编码单元减小,因此第k深度的子编码单元可包括第k+n(其中,k和n是等于或大于1的整数)深度的多个子编码单元。根据将被编码的画面的大小的增加,以较大编码单元对图像进行编码会导致更高的图像压缩率。然而,如果较大的编码单元固定,则可能不能通过反映连续改变的图像特征来对图像进行有效编码。例如,当平滑区域(诸如大海或天空)被编码时,编码单元越大,压缩率可增加越多。然而,当复杂区域(诸如人或建筑)被编码时,编码单元越小,压缩率可增加越多。因此,根据实施例,不同的最大编码单元和不同的最大深度被设置用于每个画面或像条。由于最大深度表示编码单元可被减小的最大次数,因此最大图像编码单元中包括的每个最小编码单元的大小可根据最大深度来不同地设置。编码单元确定器120确定最大深度。例如,可基于率失真(R-D)成本的计算来确定最大深度。此外,可针对每个画面或像条或者针对每个最大编码单元来不同地确定最大深度。确定的最大深度被提供给编码信息编码器140,并且根据最大编码单元的图像数据被提供给图像数据编码器130。最大深度表示最大编码单元中可包括的具有最小大小的编码单元(即,最小编码单元)。换句话说,最大编码单元可被划分为根据不同深度而具有不同大小的子编码单元。稍后将参照图8A和图8B来对此进行详细描述。另外,可基于具有不同大小的处理单元对最大编码单元中包括的具有不同大小的子编码单元进行预测或变换。换句话说,设备100可基于具有各种大小和各种形状的处理单元来执行用于图像编码的多个处理操作。为了对图像数据进行编码,执行诸如预测、变换和熵编码的处理操作,其中,具有相同大小的处理单元可被用于每个操作,或者具有不同大小的处理单元可被用于每个操作。例如,设备100可选择与编码单元不同的处理单元来预测编码单元。当编码单元的大小是2N×2N(其中N是正整数)时,用于预测的处理单元可以是2N×2N、2N×N、N×2N或N×N。换句话说,可基于具有这样的形状的处理单元来执行运动预测,按所述形状,编码单元的高度和宽度中的至少一个被二等分。在下文中,作为预测基础的处理单元被称为预测单元。预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个,并且可仅针对具有特定大小或形状的预测单元来执行特定预测模式。例如,可仅针对形状为正方形的具有2N×2N和N×N的大小的预测单元执行帧内模式。另外,可仅对具有2N×2N的大小的预测单元执行跳过模式。如果编码单元存在多个预测单元,则可针对每个预测单元执行预测之后选择具有最小编码误差的预测模式。可选择地,设备100可基于具有与编码单元不同大小的处理单元来对图像数据执行频率变换。对于编码单元中的频率变换,可基于具有与编码单元的大小相等的大小或更小的大小的处理单元来执行所述频率变换。在下文中,作为频率变换的基础的处理单元被称为变换单元。所述频率变换可以是离散余弦变换(DTC)或Karhunen-Loeve变换(KLT)。编码深度确定器120可使用基于拉格朗日乘子的R-D最优化来确定最大编码单元中包括的子编码单元。换句话说,编码深度确定器120可确定从最大编码单元划分的多个子编码单元具有哪种形状,其中,所述多个子编码单元根据它们的深度而具有不同大小。图像数据编码器130通过基于由编码深度确定器120确定的划分形状来对最大编码单元进行编码。编码信息编码器140对关于由编码深度确定器120确定的最大编码单元的编码模式的信息进行编码。换句话说,编码信息编码器140通过对以下信息进行编码来输出比特流:关于最大编码单元的划分形状的信息、关于最大深度的信息以及关于针对每个深度的子编码单元的编码模式的信息。关于子编码单元的编码模式的信息可包括以下信息中的至少一个:关于子编码单元的预测单元的信息、关于用于每个预测单元的预测模式的信息以及关于子编码单元的变换单元的信息。由于对于每个最大编码单元存在具有不同大小的子编码单元,并且针对每个子编码单元确定关于编码模式的信息,因次可针对一个最大编码单元确定关于至少一个编码模式的信息。设备100可根据深度的增加,通过将最大编码单元的高度和深度两者二等分来产生子编码单元。也就是说,当第k深度的编码单元的大小为2N×2N时,第k+1深度的编码单元的大小可以是N×N。因此,根据示例性实施例的设备100可考虑图像特征而基于最大编码单元的大小和最大深度来确定用于每个最大编码单元的最优划分形状。通过考虑图像特征来可变地调整最大编码单元的大小并通过将最大编码单元划分为不同深度的子编码单元来对图像进行编码,具有各种分辨率的图像可被有效编码。图2是根据示例性实施例的用于对图像进行解码的设备200的框图。参照图2,设备200包括图像数据获取单元210、编码信息提取器220以及图像数据解码器230。图像数据获取单元210通过对设备200接收的比特流进行解析来根据最大编码单元获取图像数据,并将所述图像数据输出到图像数据解码器230。图像数据获取单元210可从当前画面或像条的头提取关于当前画面或像条的最大编码单元的信息。换句话说,图像数据获取单元210以最大编码单元对比特流进行划分,从而图像数据解码器230可根据最大编码单元对图像数据进行解码。编码信息提取器220通过对由设备200接收的比特流进行解析来提取关于最大编码单元、最大深度、最大编码单元的划分形状以及子编码单元的编码模式的信息。例如,编码信息提取器220可从当前画面的头提取上述信息。关于划分形状的信息和关于编码模式的信息被提供给图像数据解码器230。关于最大编码单元的划分形状的信息可包括关于最大编码单元中所包括的根据深度具有不同大小的子编码单元的信息,并且关于编码模式的信息可包括关于根据子编码单元的预测单元的信息、关于预测模式的信息以及关于变换单元的信息中的至少一个。图像数据解码器230通过基于由编码信息取器220提取的信息对每个最大编码单元的图像数据进行解码,来恢复当前画面。图像数据解码器230可基于关于最大编码单元的划分形状的信息来对最大编码单元中包括的子编码单元进行解码。解码处理可包括预测处理和反变换处理中的至少一个,其中,所述预测处理包括帧内预测和运动补偿。另外,图像数据解码器230可基于关于预测单元的信息以及关于预测模式的信息来执行帧内预测或帧间预测,以对预测单元进行预测。图像数据解码器230还可基于关于子编码单元的变换单元的信息来对每个子编码单元执行反变换。图3示出根据示例性实施例的分层编码单元。参照图3,示例性分层编码单元包括大小为64×64、32×32、16×16、8×8和4×4的编码单元。此外,还存在大小为64×32、32×64、32×16、16×32、16×8、8×16、8×4和4×8的编码单元。在图3中示出的示例性实施例中,对于分辨率为1920×1080的第一图像数据310,最大编码单元的大小被设置为64×64,并且最大深度被设置为2。对于分辨率为1920×1080的第二图像数据320,最大编码单元的大小被设置为64×64,并且最大深度被设置为3。对于分辨率为352×288的第三图像数据330,最大编码单元的大小被设置为16×16,并且最大深度被设置为1。当分辨率高或者数据量大时,编码单元的最大大小可以相对大,以提高压缩率并准确地反映图像特征。因此,对于具有比第三数据图像330更高的分辨率的第一图像数据310和第二图像数据320,64×64可被选择作为最大编码单元的大小。最大深度指示在分层编码单元中的层的总数。由于第一图像数据310的最大深度是2,因此第一图像数据310的编码单元315可包括较长轴大小为64的最大编码单元,以及根据深度的增加,较长轴大小为32和16的子编码单元。另一方面,由于第三图像数据330的最大深度是1,因此第三图像数据330的编码单元335可包括较长轴大小为16的最大编码单元,以及根据深度的增加,较长轴大小为8的编码单元。然而,由于第二图像数据320的最大深度是3,因此第二图像数据320的编码单元325可包括较长轴大小为64的最大编码单元,以及根据深度的增加,较长轴大小为32、16和8的子编码单元。由于随着深度增加,基于更小的子编码单元来对图像进行编码,因此示例性实施例适合于对包括更多微场景的图像进行编码。图4是示出根据示例性实施例的基于编码单元的图像编码器400的框图。参照图4,帧内预测器410在当前帧405中对帧内模式的预测单元执行帧内预测,运动估计器420和运动补偿器425使用当前帧405和参考帧495对帧间模式的预测单元执行帧间预测和运动补偿。基于从帧内预测器410、运动估计器420和运动补偿器425输出的预测单元来产生残差值。产生的残差值通过经过变换器430和量化器440而被输出作为量化的变换系数。量化的变换系数通过经过反量化器460和反变换器470而被恢复为残差值。恢复的残差值通过经过去块单元480和环路滤波单元490而被后处理,并且恢复的残差值被输出为参考帧495。量化的变换系数可通过经过熵编码器450被输出为比特流455。为了基于根据示例性实施例的编码方法执行编码,图像编码器400的组件(即,帧内预测器410、运动估计器420、运动补偿器425、变换器430、量化器440、熵编码器450、反量化器460、反变换器470、去块单元480和环路滤波单元490)基于最大编码单元、根据深度的子编码单元、预测单元和变换单元执行图像编码处理。图5是示出根据示例性实施例的基于编码单元的图像解码器500的框图。参照图5,比特流505经过解析器510,从而将被解码的已编码的图像以及用于进行解码的编码信息被解析。已编码的图像数据通过经过熵解码器520和反量化器530而被输出为反量化的数据,并通过经过反变换器540而被恢复为残差值。残差值通过被添加到帧内预测器550的帧内预测结果或运动补偿器560的运动补偿结果而根据编码单元被恢复。恢复的编码单元通过经过去块单元570和环路滤波单元580而被用于预测下一编码单元或下一画面。为了基于根据示例性实施例的解码方法来执行解码,图像解码器500的组件(即,解析器510、熵解码器520、反量化器530、反变换器540、帧内预测器550、运动补偿器560、去块单元570和环路滤波单元580)基于最大编码单元、根据深度的子编码单元、预测单元和变换单元来执行图像解码处理。具体地,帧内预测器550和运动补偿器560通过考虑最大编码单元和深度来确定子编码单元中的预测单元和预测模式,反变换器540通过考虑变换单元的大小来执行反变换。图6示出根据示例性实施例的最大编码单元、子编码单元和预测单元。如上所述,根据一个或多个示例性实施例的编码设备100和解码设备200考虑图像特征而使用分层编码单元来执行编码和解码。可根据图像特征来自适应地设置最大编码单元和最大深度,或者根据用户的需求来不同地设置最大编码单元和最大深度。参照图6,根据示例性实施例的分层编码单元结构600示出高度和宽度为64并且最大深度为4的最大编码单元610。深度沿分层编码单元结构600的纵轴增加,并且随着深度增加,子编码单元620至650的高度和宽度减小。最大编码单元610和子编码单元620至650的预测单元沿分层编码单元结构600的横轴被示出。最大编码单元610具有深度0和64×64的大小(即,高度和宽度)。深度沿纵轴增加,从而存在大小为32×32且深度为1的子编码单元620、大小为16×16且深度为2的子编码单元630、大小为8×8且深度为3的子编码单元640以及大小为4×4且深度为4的子编码单元650。大小为4×4且深度为4的子编码单元650是最小编码单元。最小编码单元650可被划分为预测单元,每个预测单元小于最小编码单元。在图6中示出的示例性实施例中,根据每个深度沿横轴示出预测单元的示例。也就是说,深度为0的最大编码单元610的预测单元可以是大小等于编码单元610(即,64×64)的预测单元、或者是具有小于编码单元610(编码单元610的大小为64×64)的大小的预测单元612(预测单元612的大小为64×32)、预测单元614(预测单元614的大小为32×64)或预测单元616(预测单元616的大小为32×32)。深度为1且大小为32×32的编码单元620的预测单元可以是大小等于编码单元620(即,32×32)的预测单元、或者是具有小于编码单元620(编码单元620的大小为32×32)的大小的预测单元622(预测单元622的大小为32×16)、预测单元624(预测单元624的大小为16×32)或预测单元626(预测单元626的大小为16×16)。深度为2且大小为16×16的编码单元630的预测单元可以是大小等于编码单元630(即,16×16)的预测单元、或者是具有小于编码单元630(编码单元630的大小为16×16)的大小的预测单元632(预测单元632的大小为16×8)、预测单元634(预测单元634的大小为8×16)或预测单元636(预测单元636的大小为8×8)。深度为3且大小为8×8的编码单元640的预测单元可以是大小等于编码单元640(即,8×8)的预测单元、或具有小于编码单元640(编码单元640的大小为8×8)的大小的预测单元642(预测单元642的大小为8×4)、预测单元644(预测单元644的大小为4×8)或预测单元646(预测单元646的大小为4×4)。深度为4且大小为4×4的编码单元650的预测单元可以是最小编码单元和最大深度的编码单元。编码单元650的预测单元可以是大小为4×4的预测单元650、具有4×2的大小的预测单元652、具有2×4的大小的预测单元654或具有2×2的大小的预测单元656。图7示出根据示例性实施例的编码单元和变换单元。根据一个或多个示例性实施例的编码设备100和解码设备200以最大编码单元本身执行编码,或以等于或小于最大编码单元并从最大编码单元划分的子编码单元执行编码。在编码处理中,用于频率变换的变换单元的大小被选择为不大于相应的编码单元的大小。例如,在当前编码单元710具有64×64的大小时,可使用具有32×32的大小的变换单元720执行频率变换。图8A和图8B示出根据示例性实施例的编码单元、预测单元和变换单元的划分形状。图8A示出根据示例性实施例的编码单元和预测单元。图8A的左侧示出由根据示例性实施例的编码设备100选择的划分形状,以对最大编码单元810进行编码。设备100将最大编码单元810划分为各种形状,执行编码,并通过基于R-D成本来将各种划分形状的编码结果彼此进行比较,来选择最优划分形状。当按现状对最大编码单元810进行编码最优时,可在不按照图8A和图8B中所示对最大编码单元810进行划分的情况下对最大编码单元810进行编码。参照图8A的左侧,通过将深度为0的最大编码单元810划分为深度等于或大于1的子编码单元来对最大编码单元进行编码。也就是说,最大编码单元810被划分为深度为1的4个子编码单元,并且深度为1的子编码单元中的全部或一些被划分为深度为2的子编码单元。深度为1的子编码单元中的位于右上侧的子编码单元和位于左下侧的子编码单元被划分为深度等于或大于2的子编码单元。深度等于或大于2的子编码单元中的一些可被划分为深度等于或大于3的子编码单元。图8A的右侧示出用于最大编码单元810的预测单元的划分形状。参照图8A的右侧,可从最大编码单元810不同地划分用于最大编码单元810的预测单元860。换句话说,用于子编码单元中的每一个的预测单元可小于相应的子编码单元。例如,用于深度为1的子编码单元中的位于右下侧的子编码单元854的预测单元可小于子编码单元854。另外,用于深度为2的子编码单元814、816、818、828、850和852中的一些子编码单元814、816、850和852的预测单元可分别小于子编码单元814、816、850和852。另外,用于深度为3的子编码单元822、832和848的预测单元可分别小于子编码单元822、832和848。预测单元可具有各子编码单元沿高度或宽度的方向被二等分的形状,或具有各子编码单元沿高度和宽度的方向被四等分的形状。图8B示出根据示例性实施例的预测单元和变换单元。图8B的左侧示出用于图8A的右侧中示出的最大编码单元810的预测单元的划分形状,并且图8B的右侧示出最大编码单元810的变换单元的划分形状。参照图8B的右侧,可与预测单元860不同地设置变换单元870的划分形状。例如,即使用于深度为1的编码单元854的预测单元被选择具有编码单元854的高度被二等分的形状,但是变换单元可被选择具有与编码单元854相同的大小。同样,即使用于深度为2的编码单元814和850的预测单元被选择具有编码单元814和850中的每一个的高度被二等分的形状,但是变换单元可被选择具有与编码单元814和850中的每一个的原始大小相同的大小。变换单元可被选择具有比预测单元的更小的大小。例如,当用于深度为2的编码单元852的预测单元被选择具有编码单元852的宽度被二等分的形状时,变换单元可被选择具有编码单元852沿高度和宽度的方向被四等分的形状,所述形状具有比所述预测单元的形状更小的大小。图9是根据示例性实施例的用于对运动矢量进行编码的设备900的框图。用于对运动矢量进行编码的设备900可包括在以上参照图1描述的设备100或参照图4描述的图像编码器400中。参照图9,运动矢量编码设备900包括预测器910、第一编码器920和第二编码器930。为了对使用帧间预测(即,画面间预测)编码的块进行解码,关于指示当前块与参考画面中的相似块之间的位置差的运动矢量的信息被使用。因此,关于运动矢量的信息在图像编码处理中被编码并被插入到比特流。然而,如果关于运动矢量的信息按照现状被编码并被插入,则用于对关于运动矢量的信息进行编码的开销增加,从而降低图像数据的压缩率。因此,在图像编码处理中,通过预测当前块的运动矢量,仅对作为预测的结果而产生的运动矢量预测因子与原始运动矢量之间的差分矢量进行编码,并将编码的差分矢量插入到比特流,来对关于运动矢量的信息进行压缩。图9示出使用这样的运动矢量预测因子来对运动矢量进行编码的设备900。参照图9,预测器910确定当前块的运动矢量是基于显式模式还是基于隐含模式被预测编码。如上所述,诸如MPEG-4H.264、MPEG-4AVC的编解码器使用与当前块邻近的先前编码的块的运动矢量来预测当前块的运动矢量。也就是说,与当前块的左侧、上侧、右上侧邻近的先前编码的块的运动矢量的中值被用作当前块的运动矢量预测因子。由于使用相同的方法来预测使用帧间预测编码的所有块的运动矢量,因此关于运动矢量预测因子的信息不必要被单独编码。然而,根据一个或多个示例性实施例的设备100或图像解码器400使用关于运动矢量预测因子的信息不被单独编码的模式和关于运动矢量预测因子的信息被编码以更准确地预测运动矢量的模式两者,这将在下面被详细描述。(1)显式模式(Explicitmode)可由预测器910选择的对运动矢量预测因子进行编码的方法之一可执行对关于当前块的运动矢量预测因子的信息进行显示编码的模式。该显式模式是计算至少一个运动矢量预测因子候选并对指示哪个运动矢量预测因子被用于预测当前块的运动矢量的信息进行单独编码的模式。现在将参照图10A、图10B以及图11A至图11C对根据一个或多个示例性实施例的运动矢量预测因子候选进行描述。图10A和图10B示出根据一个或多个示例性实施例的显式模式的运动矢量预测因子候选。参照图10A,根据示例性实施例的运动矢量预测方法可将与当前块邻近的先前编码的块的运动矢量之一用作当前块的运动矢量预测因子。与当前块的上侧邻近的块中最左边的块a0、与当前块的左侧邻近的块中最上边的块b0、与当前块的右上侧邻近的块c、与当前块的左上侧邻近的块d、以及与当前块的左下侧邻近的块e可被用于当前块的运动矢量预测因子。参照图10B,与当前块邻近的所有块的运动矢量可被用作当前块的运动矢量预测因子。换句话说,不仅与当前块的上侧邻近的块中最左边的块a0的运动矢量,而且与当前块的上侧邻近的所有块的运动矢量可被用作当前块的运动矢量预测因子。另外,不仅与当前块的左侧邻近的块中最上边的块b0的运动矢量,而且与当前块的左侧邻近的所有块的运动矢量可被用作当前块的运动矢量预测因子。可选择地,邻近块的运动矢量的中值可被用作运动矢量预测因子。例如,median(mv_a0,mv_b0,mv_c)可被用作当前块的运动矢量预测因子,其中,mv_a0表示块a0的运动矢量,mv_b0表示块b0的运动矢量,mv_c表示块c的运动矢量。图11A至图11C示出根据另一示例性实施例的显式模式的运动矢量预测因子候选。图11A示出根据示例性实施例的计算双向预测画面(被称为B画面)的运动矢量预测因子的方法。当包括当前块的当前画面是被执行了双向预测的B画面时,基于时间距离产生的运动矢量可以是运动矢量预测因子。参照图11A,可使用时间在前的画面1112的协同定位(co-located)的位置中的块1120的运动矢量来产生当前画面1110的当前块1100的运动矢量预测因子。例如,如果针对当前画面1110的时间在后的画面1114的搜索的块1122来产生处于与当前块1100协同定位的位置中的块1120的运动矢量mv_colA,则当前块1100的运动矢量预测因子候选mv_L0A和mv_L1A可根据以下等式来产生:mv_L1A=(t1/t2)×mv_colAmv_L0A=mv_L1A-mv_colA其中,mv_L0A表示针对时间在前的画面1112的当前块1100的运动矢量预测因子,mv_L1A表示针对时间在后的画面1114的当前块1100的运动矢量预测因子。图11B示出根据另一示例性实施例的产生B画面的运动矢量预测因子的方法。与图11A中示出的方法相比,在图11B中,处于与当前块1100协同定位的位置中的块1130存在于时间在后的画面1114中。参照图11B,可使用时间在后的画面1114的协同定位的位置中的块1130的运动矢量来产生当前画面1110的当前块1100的运动矢量预测因子。例如,如果针对当前画面1110的时间在前的画面1112的搜索的块1132来产生处于与当前块1110协同定位的位置中的块1130的运动矢量mv_colB,则当前块1100的运动矢量预测因子候选mv_L0B和mv_L1B可根据以下等式来产生:mv_L0B=(t3/t4)×mv_colBmv_L1B=mv_L0B-mv_colB其中,mv_L0B表示针对时间在前的画面1112的当前块1100的运动矢量预测因子,mv_L1B表示针对时间在后的画面1114的当前块1100的运动矢量预测因子。在产生B画面的当前块1100的运动矢量的过程中,可使用图11A和图11B中示出的方法中的至少一个。换句话说,由于使用处于与当前块1100协同定位的位置中的块1120或1130的运动矢量和时间距离来产生运动矢量预测因子,因此如果在协同定位的位置中的块1120和块1130的运动矢量存在,则可使图11A和图11B中示出的方法产生运动矢量预测因子。因此,根据示例性实施例的预测器910可仅使用处于协同定位的位置中的块1120和1130中具有运动矢量的块来产生当前块1100的运动矢量预测因子。例如,当使用帧内预测而非帧间预测来对处于时间在前的画面1112的协同定位的位置中的块1120进行编码时,块1120的运动矢量不存在,因此不能使用如图11A中示出的产生运动矢量预测因子的方法来产生当前块1100的运动矢量预测因子。图11C示出根据示例性实施例的产生B画面的运动矢量预测因子的方法。参照图11C,可使用处于时间在前的画面1112的协同定位的位置中的块1140的运动矢量来产生当前画面1110的当前块1100的运动矢量预测因子。例如,如果针对另一时间在前的画面1116的搜索的块1142产生了处于与当前块1100协同定位的位置中的块1130的运动矢量mv_colC,则可根据以下等式产生当前块1100的运动矢量预测因子候选mv_L0C:mv_L0C=(t6/t5)×mv_colC由于当前画面1110是P画面,因此与图11A和图11B不同,当前块1100的运动矢量预测因子的数量为1。总之,可根据以下等式来产生根据图10A、图10B以及图11A至图11C的运动矢量预测因子候选的集合C:C={median(mv_a0,mv_b0,mv_c),mv_a0,mv_a1,…,mv_aN,mv_b0,mv_b1,…mv_bN,mv_c,mv_d,mv_e,mv_temporal}。可选择地,可通过根据以下等式减少运动矢量预测因子候选的数量来产生集合C。C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}。这里,mv_x表示块x的运动矢量。median()表示中值,mv_temporal表示使用以上关联图11A至图11C描述的时间距离产生的运动矢量预测因子候选。另外,mv_a’表示mv_a0,mv_a1,…,mv_aN之中恰好的第一有效运动矢量。例如,当使用帧内预测对块a0进行编码时,块a0的运动矢量mv_a0不是有效的,因此mv_a’=mv_a1,并且如果块a1的运动矢量也不是有效的,则mv_a’=mv_a2。同样,mv_b’表示mv_b0,mv_b1,…mv_bN之中的第一有效运动矢量,mv_c’表示mv_c,mv_d和mv_e之中的第一有效运动矢量。显式模式是对指示哪个运动矢量已被用于当前块的运动矢量预测因子的信息进行编码的模式。例如,当以显式模式对运动矢量进行编码时,二进制数字可被分配给集合C中的每个元素(即,运动矢量预测因子候选),并且如果所述候选中的一个被用作当前块的运动矢量预测因子,则相应的二进制数字可被输出。本领域的普通技术人员将容易理解,除上述关联显式模式描述的那些运动矢量预测因子候选之外,其他运动矢量预测因子候选可被使用。(2)隐含模式(Implicitmode)可由预测器910选择的对运动矢量预测因子进行编码的方法中的另一方法执行对这样的信息进行编码的模式,所述信息指示基于与当前块邻近的先前编码的区域中包括的块或像素来产生当前块的运动矢量预测因子。与显式模式不同,该模式是在没有用于指定运动矢量预测因子的编码信息的情况下,以隐含模式对指示运动矢量预测因子的产生的信息进行编码的模式。如上所述,诸如MPEG-4H.264/MPEG-4AVC的编解码器使用与当前块邻近的先前编码的块的运动矢量来预测当前块的运动矢量。也就是说,与当前块的左侧、上侧、右上侧邻近的先前编码的块的运动矢量的中值被用作当前块的运动矢量预测因子。在这种情况下,与显式模式不同,用于选择运动矢量预测因子候选之一的信息可不被编码。换句话说,如果在图像编码处理中仅对指示已经以隐含模式对当前块的运动矢量预测因子进行编码的信息进行编码,则在图像解码处理中,与当前块的左侧、上侧和右上侧邻近的先前编码的块的运动矢量的中值可被用作当前块的运动矢量预测因子。另外,除了将与当前块的左侧、上侧和右上侧邻近的先前编码的块的运动矢量的中值用作当前块的运动矢量预测因子的方法以外,根据示例性实施例的图像编码方法提供了一种新的隐含模式。现在将参照图12对此进行详细描述。图12示出根据示例性实施例的在隐含模式中产生运动矢量预测因子的方法。参照图12,与当前画面1210的当前块1200邻近的先前编码的区域1220中包括的像素1222被用于产生当前块1200的运动矢量预测因子。通过使用邻近像素1222搜索参考画面1212来确定相应像素1224。可通过计算绝对差之和(SAD)来确定所述相应像素1224。当所述相应像素1224被确定时,邻近像素1222的运动矢量mv_template被产生,并且所述运动矢量mv_template可被用作当前块1200的运动矢量预测因子。如果将邻近块的运动矢量的中值用作运动矢量预测因子的模式被定义为“隐含模式_1”,并且如果使用与当前块邻近的像素来产生运动矢量预测因子的模式被定义为“隐含模式_2”,则可通过在图像编码处理中对关于所述两种隐含模式(隐含模式_1和隐含模式_2)中的一个的信息进行编码并在图像解码处理中参考关于模式的信息,来使用所述两种隐含模式之一产生运动矢量预测因子。(3)模式选择对于预测器910而言可能存在各种标准来选择上述显式模式和隐含模式中的一个。由于在显式模式中选择了多个运动矢量预测因子候选中的一个,因此与当前块的运动矢量更相似的运动矢量预测因子可被选择。然而,由于指示多个运动矢量预测因子候选之一的信息被编码,因此会产生比在隐含模式中更多的开销。因此,对于具有较大大小的编码单元,可以以显式模式对运动矢量进行编码,这是因为对于具有较大大小的编码单元,当运动矢量被错误预测时发生的误差增加的可能性高于具有较小大小的编码单元,并且对于每个画面,开销发生的次数减少。例如,当被等分为具有64×64的大小的m个编码单元的画面以显式模式被编码时,开销发生次数为m。然而,当具有相同大小的被等分为具有32×32的大小的4m个编码单元的画面以显式模式被编码时,开销发生次数为4m。因此,根据示例性实施例的预测器910可在当前块的运动矢量被编码时基于编码单元的大小来选择显式模式和隐含模式之一。由于在以上参照图1至图8描述的根据示例性实施例的图像编码方法和图像解码方法中的编码单元的大小使用深度来表示,因此预测器910基于当前块的深度来确定当前块的运动矢量是以显式模式被编码还是以隐含模式被编码。例如,当深度为0和1的编码单元被帧间预测时,所述编码单元的运动矢量以显式模式被编码,当深度等于或大于2的编码单元被帧间预测时,所述编码单元的运动矢量以隐含模式被编码。根据另一示例性实施例,预测器910可为每个画面或像条单元选择显式模式或隐含模式。由于对于每个画面或像条单元,图像特征不同,因此可通过考虑这些图像特征来为每个画面或像条单元选择显式模式或隐含模式。可通过考虑R-D成本从显式模式和隐含模式之中选择最优模式,来对当前画面或像条中包括的编码单元的运动矢量进行预测编码。例如,如果在不使用显式模式的情况下,画面或像条中包括的编码单元的运动矢量可被准确预测,则可以以隐含模式对所述画面或像条中包括的所有编码单元的运动矢量进行预测编码。根据另一示例性实施例,预测器910可基于是否已经以跳过模式对当前块进行编码来选择显式模式或隐含模式。跳过模式是这样的编码模式,在所述编码模式中,在没有对像素值进行编码的情况下,指示已经以跳过模式对当前块进行编码的标志信息被编码。此外,跳过模式是这样一种模式,在所述模式中,由于通过将运动矢量预测因子用作当前块的运动矢量执行运动补偿而产生的预测块与当前块相似,因此当前块的像素值不被编码。因此,由于更相似于当前块的运动矢量来产生运动矢量预测因子,因此以跳过模式对当前块进行编码的可能性更高。因此,以跳过模式编码的块可以以显式模式被编码。参照回图9,当预测器910选择显式模式和隐含模式之一并根据选择的模式确定运动矢量预测因子时,第一编码器920和第二编码器930对关于编码模式和运动矢量的信息进行编码。具体地,第一编码器920对关于当前块的运动矢量预测因子的信息进行编码。更详细地,当预测器910确定当前块的运动矢量以显式模式被编码时,第一编码器920对指示已经以显式模式产生运动矢量预测因子的信息以及指示哪个运动矢量预测因子候选已被用作当前块的运动矢量预测因子的信息进行编码。相反,当预测器910选择当前块的运动矢量以隐含模式被编码时,第一编码器920对指示已经以隐含模式产生当前块的运动矢量预测因子的信息进行编码。换句话说,第一编码器920对指示已经使用与当前块邻近的块或像素产生当前块的运动矢量预测因子的信息进行编码。如果使用了两个或更多个隐含模式,则第一编码器920还可对指示哪个隐含模式已被用于产生当前块的运动矢量预测因子的信息进行编码。第二编码器930基于由预测器910产生的运动矢量预测因子来对当前块的运动矢量进行编码。可选择地,第二编码器930通过从作为运动补偿的结果产生的当前块的运动矢量减去由预测器910产生的运动矢量预测因子来产生差矢量(differencevector),并对关于所述差矢量的信息进行编码。图13是根据示例性实施例的用于对运动矢量进行解码的设备1300的框图。用于对运动矢量进行解码的设备1300可包括在以上参照图2描述的图像解码设备200中或包括在以上参照图5描述的图像解码器500中。参照图13,运动矢量解码设备1300包括第一解码器1310、第二解码器1320、预测器1330和运动矢量恢复器1340。第一解码器1310对比特流中包括的关于当前块的运动矢量预测因子的信息进行解码。详细地,第一解码器1310对指示是以显式模式还是以隐含模式已对当前块的运动矢量预测因子进行编码的信息进行解码。在当前块的运动矢量预测因子已经以显式模式被编码时,第一解码器1310还对指示多个运动矢量预测因子之中用作当前块的运动矢量预测因子的运动矢量预测因子的信息进行解码。在当前块的运动矢量预测因子已经以隐含模式被编码时,解码器1310还对指示多个隐含模式中的哪个隐含模式已被用于对当前块的运动矢量预测因子进行编码的信息进行解码。第二解码器1320对比特流中包括的当前块的运动矢量预测因子与运动矢量之间的差矢量进行解码。预测器1330基于由第一解码器1310解码的关于当前块的运动矢量预测因子的信息来产生当前块的运动矢量预测因子。当关于已经以显式模式被编码的当前块的运动矢量预测因子的信息被解码时,预测器1330产生以上参照图10A、图10B以及图11A至图11C描述的运动矢量预测因子候选之中的运动矢量预测因子,并将产生的运动矢量预测因子用作当前块的运动矢量预测因子。当关于已经以隐含模式被编码的当前块的运动矢量预测因子的信息被解码时,预测器1330使用与当前块邻近的先前编码的区域中包括的块或像素来产生当前块的运动矢量预测因子。更详细地,预测器1330产生与当前块邻近的块的运动矢量的中值作为当前块的运动矢量预测因子,或者通过使用与当前块邻近的像素搜索参考画面来产生当前块的运动矢量预测因子。运动矢量恢复器1340通过对由预测器1330产生的运动矢量预测因子以及由第二解码器1320解码的差矢量求和,来恢复当前块的运动矢量。恢复的运动矢量被用于当前块的运动补偿。图14是根据示例性实施例的对运动矢量进行编码的方法的流程图。参照图14,在操作1410,根据示例性实施例的运动矢量编码设备900选择显式模式和隐含模式之一作为对关于运动矢量预测因子的信息进行编码的模式。显式模式是将指示至少一个运动矢量预测因子候选之中的运动矢量预测因子候选的信息编码为关于运动矢量预测因子的信息的模式。隐含模式是将指示已经基于与当前块邻近的先前编码的区域中包括的块或像素产生运动矢量预测因子的信息编码为关于运动矢量预测因子的信息的模式。以上已参照图10A、图10B、图11A至图11C以及图12给出了对其进行的详细描述。可基于当前块的大小(即,当前块的深度)来选择模式,或以当前画面或像条为单位来选择模式,其中,在所述当前画面或像条中包括当前块。可选择地,可根据当前块是否已经以跳过模式被编码来选择模式。在操作1420,运动矢量编码设备900根据在操作1410中选择的模式来确定运动矢量预测因子。详细地,运动矢量编码设备900基于在操作1410中选择的显式模式或隐含模式来确定当前块的运动矢量预测因子。更详细地,运动矢量编码设备900以显式模式将至少一个运动矢量预测因子之中的运动矢量预测因子确定为当前块的运动矢量预测因子,或者以隐含模式基于与当前块邻近的块或像素来确定当前块的运动矢量预测因子。在操作1430,运动矢量编码设备900对关于在操作1420中确定的运动矢量预测因子的消息进行编码。在显式模式的情况下,运动矢量编码设备900对以下信息进行编码:指示至少一个运动矢量预测因子候选之中的作为当前块的运动矢量预测因子的运动矢量预测因子候选的信息,以及指示已经以显式模式对关于当前块的运动矢量预测因子的信息进行编码的信息。在隐含模式的情况下,运动矢量编码设备900对指示已经基于与当前块邻近的先前编码的区域中包括的块或像素产生当前块的运动矢量预测因子的信息进行编码。在多个隐含模式的情况下,运动矢量编码设备900还可对指示所述多个隐含模式之一的信息进行编码。在操作1440,运动矢量编码设备900对通过从当前块的运动矢量减去在操作1420中确定的运动矢量预测因子而产生的差矢量进行编码。图15是根据示例性实施例的对运动矢量进行解码的方法的流程图。参照图15,在操作1510,根据示例性实施例的运动矢量解码设备1300对比特流中包括的关于当前块的运动矢量预测因子的信息进行解码。详细地,运动矢量解码设备1300对关于显式模式和隐含模式之中用于对当前块的运动矢量预测因子进行编码的模式的信息进行解码。在显式模式的情况下,运动矢量解码设备1300对指示已经以显式模式对当前块的运动矢量预测因子进行编码的信息以及关于至少一个运动矢量预测因子候选之中的运动矢量预测因子候选的信息进行解码。在隐含模式的情况下,运动矢量解码设备1300对指示已经基于与当前块邻近的先前编码的区域中包括的块或像素产生当前块的运动矢量预测因子的信息进行解码。在多个隐含模式的情况下,运动矢量解码设备1300还对指示所述多个隐含模式之一的信息进行解码。在操作1520,运动矢量解码设备1300对关于差矢量的信息进行解码。所述差矢量是当前块的运动矢量预测因子与当前块的运动矢量之间的差的矢量。在操作1530,运动矢量解码设备1300基于已在操作1510中解码的关于运动矢量预测因子的信息产生当前块的运动矢量预测因子。详细地,运动矢量解码设备1300根据显式模式或隐含模式产生当前块的运动矢量预测因子。更详细地,运动矢量解码设备1300通过选择至少一个运动矢量预测因子候选之中的运动矢量预测因子候选或使用与当前块邻近的先前解码的区中包括的块或像素,来产生当前块的运动矢量预测因子。在操作1540,运动矢量解码设备1300通过对在操作1520中解码的差矢量和在操作1530中产生的运动矢量预测因子求和,来恢复当前块的运动矢量。尽管已经具体显示和描述了示例性实施例,但是本领域的普通技术人员将理解,在不脱离由权利要求所限定的本发明构思的精神和范围的情况下,可以对其进行形式和细节上的各种改变。另外,可使用计算机可读记录介质中的计算机可读代码来实现根据示例性实施例的系统。例如,根据示例性实施例的用于对图像编码的设备100、用于对图像解码的设备200、图像编码器400、图像解码器500、运动矢量编码设备900以及运动矢量解码设备1300中的至少一个可包括连接到图1、2、4、5、9和13中示出的装置中的每一个的单元的总线,以及连接到所述总线的至少一个处理器。另外,连接到用于执行如上所述的命令的至少一个处理器的存储器可被包括并被连接到所述总线,以存储命令和接收的消息或产生的消息。计算机可读记录介质时可存储其后可由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括:只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。计算机可读记录介质还可分布在联网的计算机系统上,从而计算机可读代码以分布式方式被存储和执行。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1