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

文档序号:8434219阅读:来源:国知局
,因此,当前宏块MB (x,y)可以当它准备好被处理时立即开始。准确定位近邻的负担事实上被重新分配给其前面的宏块。因此,宏块的编码可以更精简(streamline)、更快速。换言之,当对于MB(x-1,y-Ι)确定最终的运动矢量时,近邻数据被存储以用于有待于处理的每一个近邻宏块,包括MB (X,y)以及其他近邻宏块,诸如MB (x, y-1)、MB (χ-2, y)MB (x-1, y) ?类似地,当对于18 0^-1)、1^(計1,7-1)和MB(x_l,y)确定了最终的运动矢量时,近邻数据被存储以用于对应于这些有待于处理的宏块(包括MB(x,y))中的每一个的每一个近邻宏块。如此,当MB(x,y)准备好被处理时,近邻数据已经存储在对应于此宏块的数据结构中,供快速检索。
[0043]接着,可以使用检索到的数据进行运动补偿。具体而言,运动搜索模块204和/或运动细化模块可以使用检索到的近邻数据为多个宏块中的每一个宏块生成至少一个预测的运动矢量(诸如标准PMV或估计的预测运动矢量)。进一步地,直接模式模块208可以使用检索到的近邻数据为多个宏块中的每一个宏块生成至少一个直接模式运动矢量,帧内预测模块210可以使用检索到的近邻数据为多个宏块中的每一个宏块生成最佳帧内预测模式,并且编码模块216可以在熵编码中使用检索到的近邻数据,每一项都如在HEVC标准、H.264标准、MPEG-4标准、VC-1 (SMPTE标准421M)中所阐述的或通过其他标准或其他手段所阐述的。
[0044]场景检测模块230基于例如视频信号110中的运动检测,检测视频信号110中的场景变化。在本公开内容的一实施例中,场景检测模块230为每一个图像视频信号110生成运动标识信号。每一图像(诸如视频场(或帧,如果它是逐行扫描视频源的话))中的运动可以通过叫做“全局运动”(GM)的参数来表示。GM的值量化场与前面的相同奇偶校验(same-parity)场相比的变化。就每一宏块对而言,将顶部场与顶部场进行比较,将底部场与底部场进行比较,等等。可以将GM的值计算为场或帧中的所有像素上的像素运动(PM)的总和,其中,对场或帧中的每一个像素计算PM的值。
[0045]参数GM可用于检测视频信号110中的场景变化。当在场上发生场景时,场将与“普通”场相比生成高得多的GM值。可以通过沿着连续的场来分析GM模式,例如通过检测连续场中的超出场景检测阈值的GM增大或缩小,来检测场景变化。一旦检测到对应于特定的图像的场景变化,就可以调整编码器/解码器102的编码参数,以实现更好的结果。例如,场景变化的检测可用于触发新图像组(GOP)的开始。在另一个示例中,编码器/解码器102通过调整QP的值以补偿场景变化,通过启用或禁用视频滤波器,或通过调整或适应编码器/解码器102的编码、解码、转码或其他处理的其他参数,来对场景变化检测作出响应。
[0046]尽管没有明确地示出,视频编码器/解码器102可包括高速缓存、共享存储器、存储器管理模块、梳状滤波器或其他视频滤波器、和/或支持将视频信号110编码为经处理的视频信号112的其他模块。
[0047]将结合图6和7来更详细地描述一般编码和解码过程的进一步的细节。
[0048]图6呈现了根据本公开内容的一实施例的视频编码操作的流程框图。具体而言,示出了示例视频编码操作,该操作使用结合图5描述的许多功能特定的模块来实现类似的编码操作。运动搜索模块204基于当前帧/场260和一个或多个参考帧/场262,为多个宏块中的每一个宏块生成运动搜索运动矢量。运动细化模块206基于运动搜索运动矢量为多个宏块中的每一个宏块生成细化的运动矢量。帧内预测模块210为多个宏块中的每一个宏块评估并选择最佳帧内预测模式。模式判断模块212基于与细化的运动矢量以及最佳帧内预测模式相关联的成本,为多个宏块中的每一个宏块确定最终的运动矢量。
[0049]重构模块214通过由差电路282从当前帧/场260的像素值减去最终的运动矢量来为多个宏块中的每一个宏块生成对应于最终的运动矢量的残余像素值,并通过使用加法电路284重新加上残余像素值(经过变换和量化模块220处理的)来生成未滤波的重构的帧/场。变换和量化模块220在变换模块270和量化模块272中变换并量化残余像素值,并通过在逆变换模块276和去量化模块274中的逆变换和去量化来重新形成残余像素值。另外,已量化并且变换的残余像素值由熵编码/重新排序模块216的重新排序模块278重新排序,并由熵编码模块280熵编码,以形成网络抽象层输出281。
[0050]去块效应滤波器模块222从未滤波的重构的帧/场形成当前重构的帧/场264。还应注意,可以缓冲当前重构的帧/场264,以生成参考帧/场262用于未来的当前帧/场260。
[0051]如结合图5所讨论的,视频编码器/解码器102的模块中的一个或多个也可以用于解码过程,如下文结合图7进一步描述的。
[0052]图7呈现了根据本公开内容的一实施例的视频解码操作的流程框图。具体而言,此视频解码操作包含结合图6所描述的通过共同的参考编号引用的许多共同的元素。在此情况下,运动补偿模块207、帧内补偿模块211、模式开关213处理参考帧/场262以生成当前的重构的帧/场264。另外,重构模块214还重复使用加法电路284,变换和量化模块重复使用逆变换模块276和逆量化模块274。应该指出的是,尽管重复使用熵编码/重新排序模块216,但是,不是重新排序模块278和熵编码模块280产生网络抽象层输出281,网络抽象层输入287是由熵解码模块286和重新排序模块288处理的。
[0053]尽管已经结合图6和7的特定的编码和解码操作描述了诸如具体的功能特定的硬件引擎之类的模块的重复使用,但是,本公开内容可以同样类似地用于结合图1-5和8-14所描述以及/或者具有结合视频编码和解码使用的其他功能特定的模块的本公开内容的其他实施例。
[0054]图8呈现了根据本公开内容的一实施例的图像的框图表示。具体而言,图像300被示为具有区域302,该区域302包括已被合并在一起并通过单个运动矢量304表示的多个块。与基于将宏块或宏块对分区为子块来进行操作的其他方法相比,区域302表示多个近邻块的合并。作为结果,区域302可以具有如在所示出的示例中的不规则的形状。然而,区域302的形状只是可能的区域的说明,可以通过此处所呈现的方法的结果合并近邻块的许多不同的组合。
[0055]图9呈现了根据本公开内容的一实施例的块的框图表示。具体而言,区域302包括已被合并在一起以创建如前所描述的单个区域302的多个块a、b、c、d、e、f以及g。如结合图8所讨论的,区域302的形状只是可能的区域的说明,可以通过此处所呈现的方法的结果合并近邻块的许多不同的组合。
[0056]图10呈现了根据本公开内容的一实施例的搜索区域的框图表示。呈现了图像的特定块320的搜索区域322。块320位于参考图像中的搜索区域的中心处,搜索区域322表示视频序列的另一图像中的块的可能的位置。
[0057]在操作中,运动搜索模块204试图找到最佳位置,诸如对于搜索区域322中的块320的最佳适合或最低成本位置。运动矢量表示参考图像中的块320的位置和视频序列的其他图像中的块320之间的空间差异。搜索区域322中的每一个可能的位置都具有通过成本函数(诸如绝对差值的总和、绝对变换差值的总和或其他函数)确定的相关联的成本。搜索区域322中的各种位置的这些成本的集合可以通过成本矩阵来表示。
[0058]图11呈现了根据本公开内容的一实施例的成本矩阵的框图表示。具体而言,呈现了特定块(诸如结合图10所讨论的块320)的NxM成本矩阵。N的值基于水平维度324,M的值基于垂直维度326。具体而言,块320具有(N-1)/2可能的上平移,(N_l)/2可能的下平移(M-1)/2可能的右平移,(M-1)/2可能的左平移。值Xiij表示运动矢量的成本函数,该运动矢量具有:
[0059]水平坐标=((N-1)/2-1-l)
[0060]垂直坐标=((M-l)/2-j_l)。
[0061]如结合图5所讨论的,运动搜索模块204通过基于对与选定图像的多个块相关联的成本矩阵的评估而合并选定图像的所述多个块中的选定块,来确定区域。
[0062]在一实施例中,对成本矩阵的评估可包括确定块的成本矩阵何时缺乏占优势的最小值。例如,可以评估成本矩阵的条目,以标识最小成本Xu的位置。考虑最小成本的位置通过(imin,jmin)来表示,那么,最小成本可以通过Ximin,jmin来表示。在一个示例中,可以通过例如比较Ximil^min与某个优势阈值并确定成本低于该阈值,来评估此最小成本的优势。优势阈值可以是预定值,或者可以是QP或其他编码参数的函数。
[0063]在另一个示例中,可以通过比较Ximin,jmin与其他成
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1