带有块合并的视频编码器以及与其一起使用的方法_2

文档序号:8434219阅读:来源:国知局
标准选择信号来确定,标准选择信号也可以是用户定义的参数、用户输入、寄存器值、存储器值或其他信号。在本公开内容的一实施例中,编码模式的操作使用多个模块,每一个模块都执行特定的编码功能。解码的操作也使用这些多个模块中的至少一个来在解码中执行类似的功能。如此,诸如运动细化模块206 (更具体而言是其中所使用的内插滤波器)以及帧内预测模块210之类的模块可以用于编码和解码过程两者中,以当视频编码器/解码器102在集成电路上实现时节省体系结构基板面(real estate)或实现其他效率。另外,出于类似的目的,直接模式模块208、模式判断模块212、重构模块214、变换和量化模块220、去块效应滤波器模块222或其他功能特定的模块的一些或全部组件可以在编码和解码过程两者中使用。
[0029]运动补偿模块150包括运动搜索模块204,该运动搜索模块204基于从视频信号110的帧和/或场的列和行分割为像素值(诸如64像素x64像素、32像素x32像素、16像素xl6像素或某种其他大小)的宏块,来处理来自视频信号110的图片。在本公开内容的一实施例中,运动搜索模块对于视频信号的场和/或帧的每一个宏块或宏块对确定一个或多个运动矢量,这些运动矢量表示宏块(或子块)从视频信号的参考帧或参考场到当前帧或场的位移。在操作中,运动搜索模块在搜索范围内操作,以将当前帧或场中的宏块(或子块)定位到整数像素水平精度,诸如I像素的分辨率。基于成本公式评估候选位置,以确定具有最有利的(诸如最低)成本的位置和对应的运动矢量。
[0030]尽管上文已经结合完全分辨率搜索描述了运动搜索模块204,但是,运动搜索模块204可以操作以部分地基于缩放的或缩小的分辨率图像来确定候选运动搜索运动矢量。具体而言,运动搜索模块204可以通过缩小传入的图像和参考图像以生成多个缩小的图像来操作。接着,运动搜索模块204基于缩小的图像,生成缩小分辨率的多个运动矢量候选。运动搜索模块204基于运动矢量候选对全尺寸图像进行操作,以生成完全分辨率的运动搜索运动矢量。在另一个实施例中,运动搜索模块204可以完全基于缩小分辨率的图像,生成运动搜索运动矢量以供运动细化模块206细化。
[0031]运动估计对视频编码是重要的。准确的运动估计节省编码中的比特,并且对于编码质量可能也是重要的,特别是在高量化水平时。在许多视频流上,存在带有很少的细节的区域。当较小的块大小用于运动估计时,有许多类似的本地成本最小值。如果使用较大的块大小,则对由包含不同的运动的块覆盖的较大的区域的搜索结果可能是错误的。
[0032]在本公开内容的一实施例中,运动搜索模块204通过动态搜索区域与块合并方法来确定选定的图像的区域的运动搜索运动矢量。具体而言,运动搜索模块204通过基于对与选定的图像的多个块相关联的成本矩阵的评估而合并选定的图像的所述多个块中的选定块,来确定区域。当在缩放的运动估计中采用时和/或对于带有很少的细节或重复模式的区域,特别是对于支持块分区的许多选项的HEVC,此方法可以是高效的。将结合随后的图8-13描述此包括此动态搜索区域与块合并方法的进一步的细节。
[0033]运动细化模块206基于运动搜索运动矢量,生成对于多个宏块中的每一个宏块的细化运动矢量。在本公开内容的一实施例中,运动细化模块对于视频信号110的场和/或帧的每一个宏块或宏块对,确定细化运动矢量,这些细化运动矢量表示宏块从视频信号的参考帧或参考场到当前帧或场的位移。
[0034]基于像素和内插的像素,运动细化模块206将当前帧或场中的宏块的位置细化到较大的像素水平精度,诸如到1/4像素的分辨率或其他子像素分辨率。候选位置还基于成本公式被评估,以确定具有最有利的(诸如最低)成本的位置和细化的运动矢量。与运动搜索模块的情况相同,成本公式可以基于参考宏块和候选宏块像素值之间的绝对差值的总和(SAD)以及加权的速率项(weighted rate term),该加权的速率项表示编码候选运动矢量和预测的运动矢量(PMV)(基于当前宏块右边的近邻宏块,并基于从视频信号的前一行的近邻当前宏块的运动矢量)或估计的预测运动矢量(基于从视频信号的前一行的近邻当前宏块的运动矢量而确定的)之间的差值需要花费的比特数。在本公开内容的一实施例中,成本计算避免使用当前宏块内的近邻子块。如此,运动细化模块206能够对宏块进行操作,以同时确定宏块的每一个子块的运动搜索运动矢量。
[0035]当使用估计的预测运动矢量时,成本公式避免使用来自当前行的运动矢量,运动搜索模块204和运动细化模块206两者可以并行地对视频信号110的整行进行操作,以同时确定行中的每一个宏块的细化的运动矢量。
[0036]直接模式模块208基于与每一个宏块近邻的宏块,生成该宏块的直接模式运动矢量。在本公开内容的一实施例中,直接模式模块208操作,以基于视频信号110的B切片(slice)的候选直接模式运动矢量的成本,诸如以由H.264标准所定义的方式,确定直接模式运动矢量和与该直接模式运动矢量相关联的成本。
[0037]尽管以前的模块专注于运动矢量的帧间预测,但是,帧内预测模块210生成多个宏块中的每一个宏块的最佳帧内预测模式。在本公开内容的一实施例中,帧内预测模块210如由H.264标准所定义的那样操作,然而,同样可以使用其他帧内预测技术。具体而言,帧内预测模块210操作,以基于根据近邻宏块确定的运动矢量来评估多个帧内预测模式,诸如帧内4x4或帧内16x16,它们是亮度预测模式、色度预测(8x8)或其他帧内编/解码,以确定最佳的帧内预测模式和相关联的成本。
[0038]模式判断模块212基于与细化的运动矢量、直接模式运动矢量以及最佳的帧内预测模式、并且特别是与产生最有利的(最低)成本的方法相关联的成本或者其他可接受的成本,确定多个宏块中的每一个宏块的最终宏块成本。重构模块214通过生成多个宏块中的每一个宏块的残余亮度和/或色度像素值,完成运动补偿。
[0039]视频编码器/解码器102的转发变换和量化模块220通过将残余像素值转换编码和量化为已量化变换的系数,来生成经处理的视频信号112,已量化变换的系数可以被进一步编码(诸如通过在熵编码模块216中的熵编码)、通过去块效应滤波器模块222被滤波。在本公开内容的一实施例中,可以可选地通过信号接口 198执行进一步的格式化和/或缓冲,并且经处理的视频信号112可以表示为来自其中的输出。
[0040]如上文所讨论的,运动补偿模块150的许多模块基于为近邻宏块确定的运动矢量进行操作。近邻管理模块218生成并存储多个宏块中的至少一个宏块的近邻数据,以供当对多个宏块中的至少一个近邻宏块进行操作时,由运动搜索模块204、运动细化模块206、直接模式模块208、帧内预测模块210、熵编码模块216和去块效应滤波器模块222中的至少一个检索。在本公开内容的一实施例中,诸如链接列表、阵列或一个或多个寄存器之类的数据结构被用来在缓冲区、高速缓存、共享存储器或其他存储器结构中关联并存储每一个宏块的近邻数据。近邻数据包括运动矢量、参考索引、量化参数、编码的块模式、宏块类型、帧内/帧间预测模块类型相邻像素值和/或来自本公开内容的模块或过程中的一个或多个用来计算当前宏块的结果的近邻宏块和/或子块的其他数据。例如,为了使运动搜索模块204和运动细化模块206确定预测的运动矢量,需要近邻的参考索引和运动矢量两者。除此数据之外,直接模式模块208需要前面的参考图像的共同定位(co-located)的宏块的运动矢量。去块效应滤波器模块222根据通过使用近邻的运动矢量、量化参数、参考索引以及编码的块模式等确定的一组滤波强度来进行操作。对于熵编码模块216中的熵编码,需要运动矢量差异(MVD)、宏块类型、量化参数增量、帧间预测类型等等。
[0041]考虑这样的示例:特定的宏块MB(x,y)需要来自宏块MB(x_l,y_l)、MB(x,y_l)、MB(x+l,y-l)和MB(x-l,y)的近邻数据。在现有技术编解码器中,近邻数据的准备需要计算相关近邻子块的位置。然而,该计算不是如在常规视频编码标准中那样简单。例如,在H.264编码中,对多个分区类型的支持使子块的大小与形状有显著差异。此外,对宏块自适应帧和场(MBAFF)编码的支持使宏块处于或者帧模式或者场模式下。对于每一种模式,在H.264中定义了一个近邻派生方法。如此,计算需要相应地考虑每一种模式。另外,为了获得所需的全部近邻数据,需要调用派生四次,因为有四个涉及的近邻y-1)、MB(x, y-1),、MB(x+l,y-l),W&MB(x-l,y)。如此,对当前宏块MB (x,y)的编码直到已经确定了四个近邻的位置并且已经从存储器中获取了它们的数据才可以开始。
[0042]在本公开内容的一实施例中,当处理每一宏块并确定最终的运动矢量和经编码的数据时,近邻数据存储在将需要此数据的每一个近邻宏块的数据结构中。由于预先准备了近邻数据
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1