首页> 中国专利> 用于根据多个子像素分辨率进行视频编码的运动细化引擎及其使用方法

用于根据多个子像素分辨率进行视频编码的运动细化引擎及其使用方法

摘要

一种用于编码视频输入信号的视频编码器的运动补偿模块,其包括一系列被分割成多个宏块的图像,该运动补偿模块包括运动搜索模块,为多个宏块中一个宏块的多种分割的多个子块生成运动搜索运动矢量。运动细化模块基于多个宏块中该宏块的多个子块中的每一个子块的运动搜索运动矢量,为该多个宏块中该宏块的多种分割的多个子块生成细化的运动矢量。该运动细化模块可以操作于多种选择模式,该选择模式包括对应于第一子像素分辨率的第一模式和对应于第二子像素分辨率的第二模式。

著录项

  • 公开/公告号CN101389025A

    专利类型发明专利

  • 公开/公告日2009-03-18

    原文格式PDF

  • 申请/专利权人 VIXS系统公司;

    申请/专利号CN200810171498.2

  • 发明设计人 A·拉马钱德兰;E·鸿;

    申请日2008-02-20

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人秦晨

  • 地址 加拿大安大略

  • 入库时间 2023-12-17 21:36:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-15

    未缴年费专利权终止 IPC(主分类):H04N7/26 授权公告日:20131106 终止日期:20180220 申请日:20080220

    专利权的终止

  • 2013-11-06

    授权

    授权

  • 2010-04-28

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20080220

    实质审查的生效

  • 2009-03-18

    公开

    公开

说明书

技术领域

本发明涉及在诸如视频编码器/编码解码器之类的装置中使用的编码。

背景技术

视频编码已经成为现代视频处理装置的一个重要问题。鲁棒编码算法允许 以降低的带宽传输并且在较小的存储器中存储视频信号。然而,这些编码方法 的准确度面临着正变得习惯于更高的分辨率和更高的图像质量的用户的审视。 已经为许多编码方法发布了标准,包括也被称作MPEG-4、第10部分或者高 级视频编码(AVC)的H.264标准。虽然该标准提出许多强大的技术,进一步 改进以改善应用这些方法的性能和速度是可能的。

通过这些系统与本发明的比较,对本领域技术人员来说常规和传统方法的 更多局限和缺点将变得明显。

附图说明

图1-3示出了根据本发明的实施例的多种视频处理装置的实体示意图。

图4示出了根据本发明的实施例的视频处理装置125的框图。

图5示出了根据本发明的实施例的包括运动搜索模块204、运动细化模块 206和模式决定模块212的视频编码器102的框图。

图6示出了根据本发明的实施例的示例顶部帧和底部帧宏块(250,252) 与示例顶部场和底部场宏块(254,256)之间关系的图形表示。

图7示出了根据本发明的实施例的显示示例宏块分割的图形表示。

图8示出了视频输入信号的多个宏块的图形表示,其示出了用于特定宏块 中的运动补偿或编码的相邻宏块的示例。

图9示出了根据本发明的实施例的包括运动细化引擎175的视频编码器 102的框图。

图10示出了根据本发明的实施例的像素和子像素分辨率值的图形表示。

图11示出了根据本发明的实施例的方法的流程图。

图12示出了根据本发明的实施例的方法的流程图。

图13示出了根据本发明的实施例的方法的流程图。

图14示出了根据本发明的实施例的方法的流程图。

图15示出了根据本发明的实施例的方法的流程图。

图16示出了根据本发明的实施例的方法的流程图。

图17示出了根据本发明的实施例的方法的流程图。

图18示出了根据本发明的实施例的方法的流程图。

图19示出了根据本发明的实施例的方法的流程图。

图20示出了根据本发明的实施例的方法的流程图。

图21示出了根据本发明的实施例的方法的流程图。

具体实施方式

图1-3示出了根据本发明的实施例的多种视频处理装置的实体示意图。 特别地,具有内置数字视频录像机功能的机顶盒10或者独立的数字视频录像 机,计算机20和便携式计算机30作为例子来说明加入了包含本发明的一个或 更多特征或功能的视频处理装置125的电子装置。虽然举例说明了这些特定的 装置,视频处理装置125包括了能够根据结合图4-19和所附的权利要求描述 的方法和系统来编码视频内容的任何装置。

图4示出了根据本发明的实施例的视频处理装置125的框图。特别地,视 频处理装置125包括接收模块100,例如电视接收机,有线电视接收机,卫星 广播接收机,宽带调制解调器,3G收发器,或者其它能够接收所接收的信号 98并能通过时分解复用、频分解复用或者其它解复用技术提取一个或多个视频 信号110的信息接收器或收发器。视频编码模块102耦合到接收模块100用于 以对应于视频显示装置104的格式对视频信号进行编码或代码转换。

在本发明的实施例中,所接收的信号98是广播视频信号,例如电视信号, 高清晰度电视信号,增强的高清晰度电视信号或者其它广播视频信号,其通过 无线媒体直接地或者通过一个或更多卫星或其它中继站,或者通过电缆网络, 光网络或其它传输网络传输。另外,所接收的信号98可以从存储的视频文件中 生成,从如磁带、磁盘或光盘等记录介质中重放,并且可以包括在如局域网、 广域网、城域网或因特网的公共或专用网络传输的流视频信号。

视频信号110可以包括以若干视频格式中的任意一种加以格式化的模拟视 频信号,这些视频格式包括国家电视系统委员会制式(NTSC),逐行倒相制式 (PAL)或顺序与存储彩色电视系统制式(Sequentiel Couleur Avec Memoire, SECAM)。所处理的视频信号112包括数字视频编码解码标准,例如H.264、 MPEG-4第10部分、高级视频编码(AVC)或其他数字格式,例如运动图像 专家组(MPEG)格式(如MPEG1,MPEG2或MPEG4),Quicktime格式, Real Media格式,Windows媒体视频(WMV)或音视频交替(AVI)或者其 它标准或专有的数字视频格式。

视频显示装置104可以包括电视、显示器、计算机、手执装置或其它视频 显示装置,其基于将所处理的视频信号112解码作为流视频信号或者通过重放 存储的数字视频文件直接或间接地—如通过投影—生成光学图像流。

视频编码器102包括按照本发明操作的运动补偿模块150,并且特别地包 括结合下面的图5-19描述的很多可选功能和特征。

图5示出了根据本发明的实施例的包括运动搜索模块204、运动细化模块 206和模式决定模块212的视频编码器102的框图。特别地,视频编码器102 按照H.264标准、MPEG-4标准、VC-1(SMPTE标准421M)或其它标准的 许多功能和特征操作,以编码通过信号接口198转化为数字格式的视频输入信 号110。

视频编码器102包括处理模块200,该处理模块可以用单一处理装置或多 个处理装置实现。该处理装置可以是微处理器、协处理器、微控制器、数字信 号处理器、微计算机、中央处理器、现场可编程门阵列、可编程逻辑器件、状 态机、逻辑电路、模拟电路、数字电路和/或任何基于存储于如存储器模块202 的存储器中的操作指令处理(模拟和/或数字)信号的装置。存储器模块202 可以是单一存储器装置或者多个存储器装置。这种存储器装置可以包括硬盘驱 动器或其它盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失 性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器和/或任 何存储数字信息的装置。注意到,当处理模块通过状态机、模拟电路、数字电 路和/或逻辑电路执行它的一个或多个功能时,存储相应操作指令的存储器可 以嵌入包括该状态机、模拟电路、数字电路和/或逻辑电路的电路中或在该电 路以外。

处理模块200和存储器模块202经总线220耦合到信号接口198和多个其 它模块,例如运动搜索模块204、运动细化模块206、直接模式模块208、内部 预测模块210、模式决定模块212、重建模块214、熵编码模块216、相邻管理 模块218、正向变换和量化模块220以及去块滤波模块222。视频编码器102 的各模块可以根据处理模块200的特定实现来通过软件、固件或硬件实现。还 应该注意,本发明的软件实现可以被存储于有形的存储介质,如磁盘或光盘、 只读存储器或随机存取存储器并且作为制造品加以生产。虽然示出了一种特定 的总线结构,采用在一个或更多模块和/或附加总线之间直接连接的可选结构 可以根据本发明类似地实现。

运动补偿模块150包括运动搜索模块204,其基于将视频输入信号110的 帧和/或场的行和列分割成例如16像素×16像素大小的像素值的宏块,处理来 自视频输入信号110的图像。在本发明的实施例中,运动搜索模块为视频信号 的场和/或帧的每个宏块或宏块对确定一个或更多的运动矢量(取决于下面结 合图7所描述的将宏块分成子块的分割),其表示从视频信号的参考帧或参考场 到当前帧或场的宏块(或子块)位移。在操作中,该运动搜索模块在搜索范围 内操作,以便在当前帧或场中定位宏块(或子块)达到如1像素的分辨率的整 数像素级精确度。基于成本公式(cost formulation)评估候选位置以确定具有 最理想的(如最低的)成本的位置和相应运动矢量。

在本发明的实施例中,成本公式基于参考宏块和候选宏块像素值之间的绝 对差的总和(SAD)的和以及加权比例项(weighted rate item),该加权比例项 代表在编码候选运动矢量与预测运动矢量(PMV)或者估计预测运动矢量之间 的差值上需要使用的比特数,该预测运动矢量基于当前宏块右侧的相邻宏块和 来自视频输入信号的上一行的相邻当前宏块的运动矢量,该估计预测运动矢量 基于来自视频输入信号的上一行的相邻当前宏块的运动矢量。另外,该成本计 算避免使用当前宏块内的相邻子块。以这种方式,运动搜索模块204能够操作 一个宏块以便同时地为该宏块的每个子块确定运动搜索运动矢量。

运动细化模块206基于该运动搜索运动矢量,为该多个宏块中的每个宏块 生成细化的运动矢量。在本发明的实施例中,运动细化模块为视频输入信号110 的场和/或帧的每个宏块或宏块对确定细化的运动矢量,该细化的运动矢量表 示宏块从视频信号的参考帧或参考场到当前帧或场的位移。在操作中,该运动 细化模块细化在当前帧或场中的宏块位置以达到更高的像素级精确度,如1/4 像素的分辨率。还基于成本公式对候选位置加以评估,以确定具有最理想(如 最低的)成本的位置和细化的运动矢量。像在运动搜索模块的情况下那样,成 本公式基于参考宏块和候选宏块像素值之间的绝对差(SAD)总和的和以及加 权比例项,该加权比例项代表在编码候选运动矢量与预测运动矢量(PMV)或 者估计预测运动矢量之间的差值上需要使用的比特数,该预测运动矢量基于当 前宏块右侧的相邻宏块和来自视频输入信号的上一行的相邻当前宏块的运动矢 量,该估计预测运动矢量基于来自视频输入信号的上一行的相邻当前宏块的运 动矢量。另外,该成本计算避免使用当前宏块内的相邻子块。以这种方式,运 动细化模块206能够操作一个宏块以便同时地为该宏块的每个子块确定运动搜 索运动矢量。

另外,运动搜索模块202或运动细化模块204可操作用来通过评估与固定 运动矢量相联系的成本,并且如果跳过模式成本比跳过模式阈值更优,则通过 跳过运动搜索和/或运动细化部分,来确定视频输入信号110的P片断的跳过 模式成本。

应该注意,当应用估计的预测运动矢量时,该成本公式避免了来自当前行 的运动矢量的使用,并且运动搜索模块204和运动细化模块206都可以按流水 线方式并且在视频输入信号110的整个行上并行地操作,以便同时地为该行的 每个宏块确定细化的运动矢量。

直接模式模块208基于与该像素宏块相邻的多个宏块,为该多个宏块中的 每一个宏块生成直接模式运动矢量。在本发明的实施例中,直接模式模块208 基于视频输入信号110的B片断的直接模式运动矢量的成本进行操作以确定直 接模式运动矢量和与该直接模式运动矢量相关联的成本,例如按照H.264标准 定义的方式。

虽然之前的模块集中于运动矢量的交互预测,但是内部预测模块210为多 个宏块中的每一个宏块生成最佳内部预测模式。特别地,内部预测模块210按 如下例如H.264标准所定义的方式操作,以基于从相邻宏块确定的运动矢量估 计多个内部预测模式来确定最佳内部预测模式和相关成本。

模式决定模块212基于与细化的运动矢量、直接模式运动矢量和最佳内部 预测模式相关联的成本,并且特别地,基于生成最理想(最低)成本,或者其 它可接受成本的方法为多个宏块中的每一个宏块决定一个最终运动矢量。重建 模块214通过生成与多个宏块中的每一个宏块的最终运动矢量相应的残留亮度 和/或色度像素值,完成运动补偿。

视频编码器102的正向变换和量化模块220通过将该残留像素值变换编码 和量化为量化的变换系数,生成经过处理的视频信号112,其可以进一步编码, 例如通过在熵编码模块216中进行熵编码,由去块滤波模块222滤波并且作为 经过处理的视频信号112来传输和/或存储。

如上所述,运动补偿模块150中的许多模块基于为相邻宏块确定的运动矢 量进行操作。相邻管理模块218为多个宏块中的至少一个宏块生成并存储相邻 数据,以便当在该多个宏块中的至少一个相邻宏块上进行操作的时候,相邻数 据可由运动搜索模块204、运动细化模块206、直接模式模块208、内部预测模 块210、熵编码模块216和去块滤波模块222中的至少一个检索。在该运动矢 量(或者在后面结合图7和8进一步讨论的宏块分割的情况下的多个运动矢量) 和其它编码数据最终确定后,相邻数据被存储,以便在对仍为待处理的相邻宏 块的处理中使用,这将需要使用这些数据。另外,还存储相邻数据以用于处理 将来的图像,例如视频输入信号110的将来的帧和/或场。

在本发明的实施例中,使用例如链接列表、阵列或一个或更多的注册表等 的数据结构来为每个宏块关联和存储相邻数据。相邻数据包括由本发明的一个 或更多模块或程序使用来计算当前宏块的结果的运动矢量、参考指针、量化参 数、编码块图案、宏块类型、内部/交互预测模块类型相邻像素值和/或来自相邻 宏块和/或子块。例如,为了确定运动搜索模块204和运动细化模块206的预测 运动矢量,需要运动矢量和相邻宏块的参考指针。除这些数据以外,直接模式 模块208需要之前参考图像的共同定位宏块的运动矢量。该去块滤波模块222 按照用相邻的运动矢量、量化参数、参考指针和编码块图案等确定的一系列滤 波强度操作。为了在熵编码模块216中进行熵编码,需要运动矢量差(MVD)、 宏块类型、量化参数增量、交互预测类型等。

考虑一个例子,其中特定宏块MB(x,y)需要来自宏块MB(x-1,y-1)、 MB(x,y-1)、MB(x+1,y-1)和MB(x-1,y)的相邻数据。在现有技术的编解码器中, 相邻数据的准备需要计算相关相邻子块的位置。然而,该计算不像常规视频编 码标准中的计算一样简单。例如,在H.264编码中,对多种分割类型的支持使 子块的尺寸和形状显著地变化。而且,对宏块自适应帧和场(MBAFF)编码 的支持允许宏块为帧模式或者为场模式。在H.264中,为每个模式定义了一个 相邻推导方法。因而该计算需要相应地考虑每个模式。另外,为了获得所需的 全部相邻数据,该推导由于涉及四个相邻宏块—MB(x-1,y-1)、MB(x,y-1)、 MB(x+1,y-1)和MB(x-1,y),所以需要被调用四次。因而直到四个相邻宏块的位 置被确定且它们的数据被从存储器中取得之后当前宏块MB(x,y)的编码才能开 始。

本发明避免了上述问题。特别地,在每个宏块被加以处理而且最终运动矢 量和编码数据被确定时,在数据结构中为每个将需要该数据的相邻宏块存储相 邻数据。因为提前准备了相邻数据,当前宏块MB(x,y)可以在其准备好被处理 后立即开始处理。定位相邻宏块的负担实际上重新分配给它之前的宏块。因而 宏块的编码可以更流水线化并且更快。换言之,当为MB(x-1,y-1)确定最终运动 矢量时,为仍在待处理的每个相邻宏块存储相邻数据,包括MB(x,y)和其它相 邻宏块如MB(x,y-1),MB(x-2,y),MB(x-1,y)。相似地,当为MB(x,y-1),MB(x+1,y-1) 和MB(x-1,y)确定最终运动矢量时,为与包括MB(x,y)在内的仍在待处理的这些 宏块中的每一个相对应的每个相邻宏块存储相邻数据,。在该方式中,当准备好 处理MB(x,y)时,相邻数据已经存储在相应于该宏块的数据结构中以便快速检 索。

接下来可以使用该检索的数据进行运动补偿。特别地,运动搜索模块204 和/或运动细化模块可以使用检索到的相邻数据为多个宏块中的每一个生成至 少一个预测的运动矢量(如标准PMV或者估计预测运动矢量)。此外,直接模 式模块208可以使用检索到的相邻数据为多个宏块中的每一个生成至少一个直 接模式运动矢量,且内部预测模块210可以使用检索到的相邻数据为多个宏块 中的每一个生成最佳内部预测模式,并且编码模块216可以在熵编码中使用检 索到的相邻数据,每一个均像在H.264标准、MPEG-4标准、VC-1(SMPTE 标准421M)或者其它标准或手段中阐明的那样。

虽未专门指明,但是视频编码器102可以包括存储器高速缓存器、存储器 管理模块、梳状滤波器或其它视频滤波器和/或其它以支持将视频输入信号110 编码为经过处理的视频信号112的模块。

图6示出了根据本发明的实施例的示例顶部帧和底部帧宏块(250,252) 与示例顶部场和底部场宏块(254,256)之间关系的图形表示。在本实施例中, 运动搜索模块204通过同时地估计一个宏块对来为多个宏块中的每一个宏块生 成运动搜索运动矢量,该宏块对包括来自视频输入信号110的帧的顶部帧宏块 250和底部帧宏块252以及来自视频输入信号110的相应场的顶部场宏块254 和底部场宏块256。

考虑所示的示例,每个宏块的大小为16像素×16像素。通过比较包括顶部 帧宏块250和底部帧宏块252的当前帧的一个候选帧宏块对和参考帧的宏块对, 运动搜索可以按全像素分辨率或其它更粗糙的或者是更精细的分辨率执行。另 外,来自候选帧宏块对的第一奇偶性的行(如奇数行)被组成一组以形成顶部 场宏块254。相似地,来自候选帧宏块对的第二奇偶性的行(如偶数行)被组 成一组以形成底部场宏块256。运动搜索模块204计算与成本相关联的多个行, 并基于为该多个行中的多个顶部行累积的成本生成与顶部帧宏块250相关联的 成本,基于为该多个行中的多个底部行累积的成本生成与底部帧宏块252相关 联的成本,基于为该多个行中的多个第一奇偶性的行累积的成本比照顶部或底 部场参考生成与顶部场宏块254相关联的成本,并基于为该多个行中的多个第 二奇偶性的行累积的成本生成与底部场宏块256相关联的成本,同样基于顶部 场或底部场参考。在这种方式下,为该宏块对同时地生成六个成本:比照参考 顶部帧的顶部帧、比照参考底部帧的底部帧、比照参考顶部场的顶部场、比照 参考底部场的底部场、比照参考底部场的顶部场以及比照参考顶部场的底部场。

基于当前帧或场与参考帧或场之间像素值的绝对差之和(SAD)生成这些 成本中的每一个。这些SAD可以基于对各行的累积在单次操作中同时地加以计 算。特定宏块(顶部或者底部,帧或者场)的整体SAD可以通过对组成该特定 宏块的行的SAD求和加以确定。可选地,可以在一个循环中基于更小的片—如 4x1的片—计算这些SAD,这些片可以被合成为子块,其依次可以累加进入整 个宏块的总和。该可选的排列特别适于运动搜索模块,其基于把宏块分割为更 小的子块来操作,这将在下面结合图7加以讨论。

该运动搜索模块204特别地适于结合宏块自适应帧和场处理来操作。可以 按照上面讨论的那样生成当前宏块对的帧模式成本。另外,运动搜索模块204 可选地基于当前底部场宏块和参考底场宏块、当前底部场宏块和参考顶部场宏 块、当前顶部场宏块和参考底部场宏块以及当前顶部场宏块和参考顶部场宏块 之间的如SAD的累积的差值生成一个场决定。该场决定包括确定哪个组合(顶 /顶,底/底)或(顶/底,底/顶)产生更低的成本。相似地,基于帧模式 成本比场模式成本更加理想(如更低)还是更不理想(如更高),基于该场模式 决定,运动搜索模块204可选地为特定的宏块对选择帧模式或场模式。另外, 运动补偿模块150的在帧和场二者上都操作的其它模块可以类似地操作。

特别地,相邻管理模块218生成相邻数据,当在帧模式下处理时,该相邻 数据包括用于在该至少一个宏块下方的行中的相邻宏块进行检索的帧下方相邻 数据,而当在场模式下处理时,相邻数据包括用于在该至少一个宏块下方的行 中的相邻宏块进行检索的场下方相邻数据。另外,当在场模式下处理时,该相 邻数据包括用于在该至少一个宏块右侧的相邻宏块进行检索的帧右侧相邻数 据;当在场模式下处理时,该相邻数据包括用于在该至少一个宏块右侧的相邻 宏块进行检索的场右侧相邻数据。以这种方式,利用相邻数据操作以及以帧或 者场模式操作的运动搜索模块和运动补偿模块150的其他模块可以直接取得下 述任一相邻数据:感兴趣的宏块上方的帧模式相邻的帧模式相邻数据,感兴趣 的宏块上方的场模式相邻的场模式相邻数据,感兴趣的宏块左侧的帧模式相邻 的帧模式相邻数据和/或感兴趣的宏块左侧的场模式相邻的场模式相邻数据。与 前面一样,这些信息在对之前的宏块的处理中被存储,而不论这些宏块本身是 在帧模式或是场模式下被处理,并且在处理感兴趣的宏块中可以通过从存储器 中直接检索来访问而无需查表或其它处理。

图7示出了把视频输入信号的宏块分割成多个子块的分割示例的图形表 示。特别地,当上面结合图5描述的模块可以作用于例如按照H.264标准的具 有16像素×16像素大小的宏块,则宏块可以被分割成更小尺寸的子块,每条边 4像素大小,结合宏块描述的功能和特征可以应用于每个子块,其中各个像素 位置用点表示。例如,运动搜索模块204可以为每个宏块的每个子块生成独立 的运动搜索运动矢量,等等。

宏块302示出了根据H.264标准分割成子块的示例。宏块300、304和306 示出了分割成子块的其它可能分割的示例。特别地,宏块300是16×16的宏块, 其被分割成一个8×16子块和两个8×8子块。宏块302是一个16×16宏块,其 被分割为三个8×8子块和四个4×4子块。宏块304是一个16×16宏块,其被分 割成一个8×16子块,一个8×8子块和两个4×8子块。宏块306是一个16×16 宏块,其被分割成一个8×8子块,三个4×8子块,两个8×4子块和两个4×4子 块。由于宏块到更小子块的分割需要比如运动搜索的各种补偿方法来不仅为每 个子块确定运动搜索运动矢量,而且确定在特定宏块的一组全部可能分割中的 确定最佳运动矢量,从而增加了运动补偿的复杂性。然而其结果可以产生更精 确的运动补偿并减少解码视频图像中的压缩伪像。

图8示出了视频输入信号的多个宏块的图形表示,其表示用于特定宏块运 动补偿或编码的相邻宏块的示例。示出了用于在帧模式或者场模式下的视频输 入信号的三行,即行i-1、行i和行i+1的三个宏块MBn-1、MBn和MBn+1。 为了清楚起见,省略了各个像素位置的点。

考虑,例如视频编码器102在宏块MB(n,i)上进行操作。进一步考虑, 运动细化模块206、运动搜索模块204、直接模式模块208内部预测模块210 和编码模块216可能需要为来自MB(n-1,i-1)的4×4子块D0、来自MB(n,i-1) 的子块B0、来自MB(n+1,i-1)的子块C0连同来自MB(n-1,i)的子块A0 确定最终运动矢量。当处理MB(n-1,i-1)时,D0的运动矢量连同其它相邻如 MB(n,i-1)、MB(n-2,i)和MB(n-1,i)的其它相邻数据被存储到与MB(n, i)相关联的数据结构中。当处理MB(n,i-1)时,B0的运动矢量连同其它相 邻的其它相邻数据被存储到与MB(n,i)相关联的数据结构中。当MB(n+ 1,i-1)被处理时,C0的运动矢量连同其它相邻的其它相邻数据被存储到与MB (n,i)相关联的数据结构。当MB(n-1,i)被处理时,D0的运动矢量连同其 它相邻宏块的其它相邻数据被存储到与MB(n,i)相关联的数据结构中。以这 种方式,当处理MB(n,i)时,可以容易地从该数据结构中检索任何必要的相 邻数据。

虽然上面的讨论涉及在帧模式或者场模式下的处理,与结合图6所讨论的 一样,帧或场模式相邻数据均能加以存储以便之后在处理相邻宏块中根据需要 进行检索。另外,虽然上面所讨论的集中于单个宏块,基于该处理或宏块对的 相邻数据也能加以存储,例如,在该宏块对的处理中直接生成的用于底部宏块 的取自该宏块对中的顶部宏块的相邻数据。

图9示出了根据本发明的实施例的包括运动细化引擎175的视频编码器 102的框图。除了之前介绍的用相同附图标记表示的模块之外,运动细化引擎 175包括共用存储器205,其可以独立于存储器模块202或是作为存储器模块 202的一部分加以实现。另外,运动细化引擎175可被应用于特定目的的硬件 结构,其具有非常普通的设计,能够使用不同参考图像—帧或场以及在时间上 向前、时间上向后或者向前和向后混合—来处理子像素搜索。运动细化引擎175 可以在多种压缩模式下操作,以便支持在最优化的和单一框架中的多种不同压 缩算法,如H.264、MPEG-4、VC-1等。可以只为色度,只为亮度或为色度和 亮度二者执行重建。

例如,这些压缩模式的能力可以包括:

H.264:

1.当MBAFF是ON时,运动搜索和细化用于前/后和混合方向的分 割成(16×16)、(16×8)、(8×16)和(8×8)大小的子块的全部大的分割。这也 包括场和帧MB类型。

2.当MBAFF是OFF时,运动搜索和细化用于前/后或混合方向的分 割成(16×16)、(16×8)、(8×16)和(8×8)大小的子块的全部分割,以及分割 成(8×8)、(8×4)、(4×8)和(4×4)大小的子块的子分割。

3.计算MBAFF ON和OFF的直接模式和/或跳过模式成本。

4.模式决定基于MBAFF ON和OFF的上述全部分割。当亮度运动重 建被调用时,用于相应分割的色度重建被暗中执行。

5.运动细化和补偿包括使用H.264标准的6抽头滤波算法的1/4像素精 确度最终运动矢量。

VC-1:

1.在场和帧两种情况下的前、后和混合方向的16×16和8×8分割 的运动搜索和细化。

2.模式决定基于上面的每个分割。这涉及亮度和相应色度的重建.

3.运动细化和补偿包括VC-1标准的双线性1/2像素精确度最终 运动矢量。

MPEG-4:

1.在场和帧两种情况下的前、后和混合方向的16×16和8×8两种 分割的运动搜索和细化。

2.模式决定基于上面的全部分割。重建只涉及亮度。

3.运动细化和补偿包括VC-1标准的双线性1/2像素精确度MV。

另外,运动细化引擎175可以操作于两种基本操作模式,(1)其中运动细 化模块206的操作被包含于存储器模块202的软件/固件算法触发和/或指引, 并且由处理模块200执行;以及(2)其中运动细化模块206的操作被运动搜索 模块204触发,很少或没有软件/固件干预。第一模式按照一个或更多的标准 操作,如同这里介绍的一样,可能加以修正。操作的第二模式可以自动方式并 没有质量损失地被动态控制并且更快执行。

共用存储器205可以单独地、独立地并同时地被运动搜索模块204和运动 细化模块206访问,以便于操作的第一或第二模式。特别地,共用存储器205 包括存储器的一部分—如用于存储运动搜索模块204执行的计算结果(如运动 矢量和成本)的成本表。该成本表可以包括共用存储器中的多个固定位置,计 算被存储以便以后由运动细化模块206检索,特别是用于操作的第二模式。另 外,除了成本表,该共用存储器205也可以存储如指示表等附加信息,其告知 运动细化模块206和固件其作出的用于任何一种模式的决定,同样基于由运动 搜索模块204执行的计算。举例包括:识别哪种分割是良好的,其它的分割则 没有这么好和/或是可以放弃的;识别帧模式还是场模式较好以及程度;以及 识别向前、向后和混和当中哪个方向是好的以及程度,等等。

该运动搜索模块可以基于其获得的结果较早地终止其计算。在任何情况 下,运动搜索可以通过从运动搜索模块204向运动细化模块206发送触发信号 来直接地触发运动细化开始。基于存储在指示表和/或成本表中的数据,运动 细化模块206可以选择只细化特定的部分,特定模式(帧或场)和/或特定方 向(向前、向后或混合),使得运动搜索模块204或运动细化模块206都基于成 本阈值或其它操作标准被确定为良好的。可选地,运动细化模块可以基于软件 /固件算法以更加统一的方式直接进行处理。以这种方式,基于运动搜索模块 204执行的计算,运动细化引擎175可以动态和可选地操作,以便流水线式地 和并行地完成运动搜索和运动细化,从而为以帧和场为基础的或仅以帧或场模 式为基础的,向前、向后和混合方向的或仅特定方向上的选择分割、一个分割 的全部子块,一组分割或者整个MB/MB对执行细化。

在操作中,运动搜索模块204同时地为多个MB/MB对中一个宏块的多 种分割的多个子块生成运动搜索运动矢量。运动细化模块206,当被启用时, 基于多个宏块中该宏块的多个子块的每一个的运动搜索运动矢量,为多个宏块 中MB/MB对的多种分割的多个子块同时地生成细化的运动矢量。模式决定 模块基于与多种分割的多个子块的每一个的细化的运动矢量相关联的成本,选 择多个宏块中该宏块的多种分割中一个选择分割,并为与多个宏块中该宏块的 选择分割相应的多个子块的每一个确定最终运动矢量。重建模块214生成与多 个宏块中该宏块的多个子块的最终运动矢量对应的色度和/或亮度残留像素 值。

另外,运动搜索模块204和运动细化模块206可以在多个其它选择模式下 操作,该选择模式包括对应于第一压缩标准的模式,对应于第二压缩标准的模 式和/或对应于第三压缩标准的模式等,并且其中该多种分割可以基于该选择 模式。例如,在一个模式中,在维持宏块自适应帧和场(MBAFF)信号时, 运动搜索模块204和运动细化模块206能够在MBAFF被启用的状态下操作, 也能在不维持MBAFF启用信号时在MBAFF被禁用的状态下操作,并且其中 多种分割基于MBAFF启用信号。在一个实施例中,当维持MBAFF信号时, 该宏块的多种分割把该宏块分割成具有第一最小尺寸的子块,尺寸为16像素 ×16像素、16像素×8像素、8像素×16像素和8像素×8像素,具有8像素的最 小尺寸。此外,当不维持MBAFF信号时,该宏块的多种分割把该宏块分割成 具有第二最小尺寸的子块,子块尺寸是16像素×16像素、16像素×8像素、8 像素×16像素、8像素×8像素、4像素×8像素、8像素×4像素和4像素×4像素, 具有4像素的最小尺寸。在其它的操作模式中,该宏块的多种分割把该宏块分 割成16像素×16像素和8像素×8像素的子块。虽然上面介绍了特定的宏块尺 寸,在本发明较宽的范围内其它尺寸类似地也是可能的。

另外,对于基于采用的特定压缩标准的MB/MB对的分割,运动搜索模 块204可以为多个宏块中一个宏块的多种分割的多个子块生成运动搜索运动矢 量,并基于一组选择信号生成多种分割的一个选择组。进一步地,运动细化模 块206基于多个宏块中该宏块的多个子块中每一个子块的运动搜索运动矢量, 生成多个宏块中该宏块的多种分割中该选择组的多个子块的细化的运动矢量。 在本实施例中,运动搜索模块204可用该组选择信号以选择性地应用一个或更 多的阈值来减小运动细化模块206所考虑的分割的数量以便加速该算法。

例如,当组选择信号具有第一值时,运动搜索模块204通过比较与多个子 块中每一个的运动搜索运动矢量相关联的累加的成本和第一阈值,并将该选择 组指定为具有比第一阈值理想的累加成本的一个分割,为多个宏块中该宏块的 多个分割确定多个分割的选择组。在该模式中,如果发现生成非常好的成本的 特定分割,运动搜索模块204对于该特定宏块可以较早地终止并且运动细化模 块206可以不作用于整个一组分割,而是作用于该生成比第一阈值理想的成本 的特定分割。

进一步地,当该组选择信号具有第二值时,该运动搜索模块204通过比较 与多个子块中每一个的运动搜索运动矢量相关联的累积的成本,并将该选择组 指定为具有最理想累加成本的选择分割,为多个宏块中该宏块的多个分割确定 多个分割的选择组。再次地,运动细化模块206可以不作用于整个一组分割, 而只作用于生成运动搜索中最理想的成本的特定分割。

另外,当组选择信号具有第三值时,运动搜索模块204通过比较与多个子 块中每一个的运动搜索运动矢量相关联的累加成本和第二阈值,并将该选择组 指定为具有比第二阈值理想的累加成本的多个分割中的每一个分割,为多个宏 块中该宏块的多个分割确定多个分割的选择组。在该模式中,运动细化模块206 可以不作用于整个一组分割,而只作用于生成比第二阈值理想的成本的那些分 割。

如上面讨论的,运动搜索模块204和运动细化模块206可以是流水线性的, 并且并行地为多个宏块中一个宏块的多个分割的多个子块同时地生成运动搜索 运动矢量。另外,共用存储器205可以紧密耦合到运动搜索模块204和运动细 化模块206,以便高效地存储来自运动搜索模块204的分割的选择组的结果以 便运动细化模块206使用。特别地,运动搜索模块204把分割的选择组和相应 地运动搜索运动矢量存储于共用存储器并把其它结果存储于成本和指示表。运 动细化模块206从共用存储器中检索分割的选择组和相应的运动搜索运动矢 量。在特定实施例中,运动搜索模块204可以响应宏块的分割的选择组和相应 的运动搜索运动矢量和/或其它结果在共用存储器中的存储生成触发信号,并 且运动细化模块206可以响应于该触发信号从共用存储器中开始检索分割的选 择组和相应的运动搜索运动矢量和/或其它结果。

如上面讨论的,通过在特定应用、压缩标准或对特定宏块选择性地禁用运 动细化模块,对特定宏块的运动细化可被关闭,例如,在跳过模式中,其中的 与固定运动矢量相关联的成本比跳过模式成本阈值理想,或者如果与特定分割 相关联的总成本比跳过细化成本阈值理想,这里运动搜索运动矢量可以代替细 化的运动矢量使用。在另一可选特征中,运动搜索模块204基于比如累积差总 和(SAD)的成本的一个或多个成本计算,为多个宏块中一个宏块的多个分割 的多个子块生成运动搜索运动矢量,像前面讨论的那样。然而,运动细化模块 206,当被启用时,基于以累积变换差总和(SATD)成本为基础的多个宏块 中该宏块的多个子块的每一个的运动搜索运动矢量,为多个宏块中该宏块的多 个分割的多个子块生成细化的运动矢量。在这种情况下,模式决定模块212必 须在来自运动搜索模块204的SAD成本上,或者基于来自运动细化模块206 的SATD成本来操作。

特别地,模式决定模块212耦合到运动细化模块206和运动搜索模块204。 当运动细化模块206对多个宏块中的该宏块被启用时,该模式决定模块212基 于与多个宏块中该宏块的多个分割的多个子块中的每一个的细化的运动矢量相 关联的SATD成本,选择多个分割中的一个选择分割。另外,当运动细化模块 206对多个宏块中的该宏块被禁用时,模式决定模块212基于与多个宏块中该 宏块的多个分割的多个子块中每一个的运动搜索运动矢量相关联的SAD成本, 选择多个分割中的一个选择分割,并且其为与多个宏块中该宏块的选择分割相 对应的多个子块中的每一个确定最终运动矢量。

由于运动细化引擎175能在帧和场两种模式中操作,模式决定模块212基 于与多个宏块中该宏块的多个分割的多个子块的每一个的细化的运动矢量相关 联的SATD成本,或者基于多个宏块中该宏块的多个分割的多个子块的每一个 的运动搜索运动矢量相关联的SAD成本,为该宏块选择帧模式和场模式中的一 个。

在本发明的实施例中,运动细化引擎175设计成通过位于共用存储器205 中的命令FIFO工作。具有该命令FIFO的高度灵活性设计,使该引擎的功能 的灵活性成为可能。该命令FIFO具有四个32位寄存器,它们当中的一个是运 动细化引擎175的触发器。它可以是可编程的,以便为一个分割、一组分割或 整个MB/MB对完成运动细化/补偿,有或没有MBAFF,向前、向后和混 和方向同样容易。应注意,保留多个位以便支持本发明的日后加入的特性。

在特定实施例中,命令FIFO的结构概括为下面的表格:

 

字段名比特位置描述TASK          1:0          0=搜索/细化     1=指引          2=运动补偿/重建 3=解码         DIRECTION         4:2     Bit0:向前 Bit1:向后 Bit2:混合WRITE_COST50=不写出成本 1=写出成本  PARTITIONS51:6打开和关闭哪个分割。这根据MBAFF标记来解释TAG58:52标记指针FIFO条目-7位DONE59当完成该条目后生成中断PRED_DIFF_INDEX63:60写入哪个预测和差值索引CURR_Y_MB_INDEX67:64从哪个当前YMB索引中读取CURR_C_MB_INDEX71:68从哪个当前CMB索引中读取FWD_INDEX75:72按照FWD命令表索引解析BWD_INDEX79:76通过BWD命令表索引解析BLEND_INDEx83:80写入BLEND命令表索引Reserved84THRESHOLD_ENABLE85只对阈值表指示的分割执行细化BEST_MB_PARTITION86只使用最佳宏块分割。这将忽略在本索引FIFO条目中的 PARTITIONS字段                                  Reserved87DIRECT_TOP_FRM_FLD_SEL89:8800:无,01:帧,10:场,11:二者DIRECT_BOT_FRM_FLD_SE L                   91:9000:无,01:帧,10:场,11:二者WRITE_PRED_PIXELS93:920=不写出预测像素     1=写出顶部MB预测像素

 

2=写出底部MB预测像素                            3=写出顶部和底部MB预测像素二者(为运动补偿的最后 条目打开)                                       WRITE_DIFF_PIXELS                                                                        95:94                                        0=不写出差值像素                                   1=写出顶部MB差值像素                               2=写出底部MB差值像素                               3=写出顶部和底部MB预测像素                         (在运动补偿模式中,这将写出模式补偿象素,且将为运动 补偿的最后条目打开)                                CURR_MB_X102:96宏块的当前X坐标Reserved103CUR_MB_Y110:104宏块的当前Y坐标Reserved111LAMBDA118:112成本的加权部分Reserved121:119BWD_REF_INDEX124:122向后参考指针FWD_REF_INDEX127:125向前参考指针

除了命令FIFO,在运动细化引擎175使用的共用存储器中还有一些片断 级寄存器。其包括通用视频信息,如使用的编码解码器、图像宽度、图像高度、 片断类型、MBAFF标记、SATD/SAD标记等。通过适当的编排上面的位,能 够处理下列灵活度/情景:

1.任务位定义了由运动细化引擎175执行的操作。通过适当地将其与寄 存器中的编码解码器信息相结合,运动细化引擎175可以为全部编码解码执行 前面所列的任何上述任务。

2.方向位指向需要使用的参考图像,并且在对B片断的编码中特别有用。 可以为任何任务设置这三位的任何组合。通过为细化启用全部这三位,运动细 化引擎175可以在一个调用中为整个MB在全部三个方向上完成运动细化。然 而,运动细化引擎175也可以选择任意特定方向并只为该方向执行细化(在P 片断中可能需要这样)。因此命令FIFO提供了处理一个全方向调用或者多个单 方向调用两种情况的灵活性。分割位在其设计中是非常灵活的,因为它们整体 上迎合了全部分割和子分割的运动细化和重建的需要。通过有效地将这些位与 方向位相组合,运动细化引擎175可以达到两种极端情况,也就是在一个过程 中为所有方向上的全部分割执行细化,或者为一个特定方向上的一组选择分割 执行细化/补偿。该分割位被运动细化引擎175基于寄存器中的MBAFF ON标 志动态地加以不同解释。因而,使用最优化的,有限组的位,该运动细化引擎 175可以处理分割组合的所有情况。这些模式中每一个的分割位的结构概括于 下表,其是从帧(FRM)、场(FLD)和方向模式(DIRECT)结果中得到的。

MBAFF ON:

MBAFF OFF:

命令FIFO也具有早期终止策略,其可有效用于智能地加速运动细化。这 些可以直接用于与运动搜索模块204或者处理器200的干预相协作,以适应算 法的需要。其如下:

a.最佳MB分割:这是特别快速的模式,其只选择由运动搜索指出的最 佳模式来执行细化。运动细化只关注在阈值表中的特定分割,其基于仅一个帧 或场的最佳分割的运动搜索结果而设置。

b.启用阈值:该标志用于启用在运动搜索MS状态寄存器中的阈值信息。 如果该位是ON,运动细化引擎175只对在MS状态寄存器的阈值部分中指明 的模式执行细化。该位如下工作。对每个顶部/底部,帧/场MB,进行如下操作:

如果在MS状态寄存器的阈值部分中启用任何分割位(16×16,16×8,8×16, 8×8中任意一个)(这意味着对这些分割达到了阈值),进行所有启用的分割而 不考虑命令FIFO中的分割位。对MBAFF关闭的情况,当设置8×8位时,只 对每个8×8分割的指示表中指定的最佳子分割执行细化。运动细化只关注阈值 表中的特定分割,其基于符合阈值的那些分割的运动搜索结果加以设置。

图10示出了根据本发明的实施例的像素和子像素分辨率值的图形表示。 在该实施例中,运动细化模块206可在多种选择模式下操作,包括对应于第一 子像素分辨率的第一模式,对应于第二子像素分辨率的第二模式,对应于全像 素分辨率或者其它更大或更小分辨率的第三模式。可以基于希望的运动补偿的 速度和/或准确率,基于其它设置,例如选择分割的数量,跳过模式参数和其 它运动搜索结果以及前面介绍的运动补偿模块150或运动细化引擎175的其它 变量,控制该分辨率。另外,可以基于使用的特定压缩标准,如H.264标准, 运动图像专家组(MPEG)标准,电影与电视工程师协会(SMPTE)标准等, 选择特定分辨率。例如,当使用MPEG2标准时可以采用1/2像素分辨率。当 使用VC1时,可以采用1/2像素或1/4像素分辨率。另外,当使用H.264时可 以采用1/2像素或1/4像素分辨率。可以基于使用的特定压缩标准预置并使用这 些分辨率。可选地,可以基于参数,如上面介绍的特定参数修改这些预置的分 辨率。

图10表示视频图像的帧或场的一部分,其中第N行中的像素包括a、e和 i,且第N+1行中的像素用1’、5’和9’表示。在操作中,通过滤波和/或另外内 插全像素值以生成1/2像素分辨值c、g、s、u、w、y、0、3’、7’、j’、l’、n’、 p’和r’,实现1/2像素分辨率运动细化。在对应于1/2像素分辨率模式中,只使 用这些像素和子像素值。在对应于1/4像素分辨率的模式中,可以通过滤波和 /或另外内插全像素值计算所示其他子像素值。虽然所示的是1/4像素分辨率, 在本发明较宽的范围内,具有更高或更低分辨率的其它值可以类似地使用。

在操作中,由运动细化模块206基于成本,如SAD、SATD成本或者其它 成本计算,估计与子像素位置相关联的成本。在本发明的实施例中,运动细化 引擎206基于第一像素上方的行和第一像素下方的行,生成围绕第一像素的多 个子像素成本,且其中运动细化模块存储围绕选择像素的多个子像素成本中的 至少一个,以便用于以后处理与第一像素下方的行中的第二像素相关联的成本。 在操作中,特定像素,如5’的成本连同周围的子像素u、w、y、3’、7’、1’、n’ 和p’一起加以计算。然而应注意到,对第N行的处理也将使用u、w和y的成 本计算,因而这些结果可被存储并在第N+1行的处理中再次使用。

在本发明的实施例中,运动细化引擎并行地生成围绕第一像素的多个子像 素成本,并且特别地在一次执行中处理整行像素。另外,当采用四分之一像素 分辨率时,所示剩余的子像素可以通过滤波和/或另外地通过内插生成。可以 通过评估以类似方式围绕最佳1/2像素成本的子像素来找到最佳1/4像素成本。 再次指出,来自之前的行(或子像素分辨率行)的计算可被存储并再次使用以 增加细化的效率和速度。

图11示出了根据本发明的实施例的方法的流程图。特别地,示出结合在 相关的图1-10中介绍的一个或更多的特征和功能说明使用的方法。在步骤300 中,通过同时地评估来自视频输入信号的一个帧的顶部帧宏块和底部帧宏块, 以及来自该视频输入信号的相应场的顶部场宏块和底部场宏块,为多个宏块中 的每个宏块生成一个或更多的运动搜索运动矢量。在步骤302中,当该可启用 的步骤被启用后,基于一个或更多的运动搜索运动矢量,为多个宏块中的每一 个宏块生成细化的运动矢量。

在本发明的实施例中,步骤300基于估计的预测运动矢量来计算与运动搜 索运动矢量相关联的成本,其排它性地基于来自视频输入信号至少一个在前的 行的相邻宏块。该至少一个在前的行可以包括位于视频输入信号行的上方的行, 其含有顶部帧宏块的。另外,步骤300可以评估将多个宏块中的每个宏块分割 成多个子块的多种分割,其中用于为多个子块中的一个计算成本的估计预测运 动矢量也被用于其余的多个子块中的每一个子块。进一步地,步骤300可以把 与每个宏块的多种分割相关联的成本与成本阈值相比较,如果与多种分割中一 个特定分割相关联的成本比成本阈值理想,则终止本评估。

在本发明的实施例中,步骤300计算与多个行相关联的成本,并基于为该 多个行中的多个顶部行累积的成本生成与顶部帧宏块相关联的成本,基于为该 多个行中的多个底部行累积的成本生成与底部帧宏块相关联的成本,基于为该 多个行中的多个第一奇偶性的行累积的成本生成与顶部场宏块相关联的成本, 并基于为多个行中的多个第二奇偶性的行累积的成本生成与底部场宏块相关联 的成本。另外,步骤300可以基于底部场宏块和底部场宏块参考、底部场宏块 和顶部场宏块参考、顶部场宏块和底部场宏块参考以及顶部场宏块和顶部场宏 块参考之间的累积差生成场决定。

在本发明的实施例中,步骤300在以起始运动矢量为中心的小搜索区域中 开始小搜索,评估与在该小搜索区域内的多个候选运动搜索运动矢量相关联的 成本,把与每个相关的成本和小搜索成本阈值相比较,并且当与在该小搜索区 域中的多个候选运动搜索运动矢量中的一个相关联的成本比该小搜索成本阈值 理想时终止该评估。另外,步骤300可以生成该运动搜索运动矢量,将与固定 运动矢量相关联的成本与固定成本阈值相比较,并且,对于多个宏块中的一个 特定宏块,当与固定运动矢量相关联的成本比该固定成本阈值理想时,生成运 动搜索模块的步骤禁用为多个宏块中特定一个宏块生成细化的运动矢量的步 骤,并且指定该固定运动矢量作为细化的运动矢量。进一步地,步骤300可在 一个以起始运动矢量为中心的比该小范围搜索区域大的大搜索区域内开始大搜 索,评估与在该大搜索区域内的多个候选运动搜索运动矢量相关联的成本,把 与每个相关联的成本与大搜索成本阈值相比较,并且当与在该大搜索区域内的 多个候选运动搜索运动矢量中的一个相关联的成本比该大搜索成本阈值理想时 终止该评估。

图12示出了根据本发明的实施例的方法的流程图。特别地,示出结合在 相关的图1-11中介绍的一个或更多的特征和功能说明使用的方法。在步骤400 中,为多个宏块中的每一个宏块生成一个或更多的运动搜索运动矢量。在步骤 402中,基于一个或更多的运动搜索运动矢量,为多个宏块中的每一个宏块生 成细化的运动矢量。在步骤404中,基于与该像素宏块相邻的多个宏块为多个 宏块中的每一个宏块生成直接模式运动矢量。在步骤406中,为多个宏块中的 每个宏块生成最佳内部预测模式。

在步骤408中,基于与该细化的运动矢量、直接模式运动矢量和最佳内部 预测模式相关的成本,为多个宏块中的每个宏块确定最终运动矢量。在步骤410 中,对应于多个宏块中的每个宏块的最终运动矢量生成残留像素值。在步骤412 中,当对多个宏块中的至少一个相邻宏块执行操作时,为多个宏块中的至少一 个宏块生成并存储相邻数据,以便由生成运动搜索运动矢量、生成细化的运动 矢量、生成直接模式运动矢量和生成最佳内部预测模式的步骤中的至少一个步 骤检索。

在本发明的实施例中,步骤400、402、404和/或406操作于宏块自适应帧 和场模式,并且基于宏块对分析多个宏块中的每个宏块,其包括来自视频输入 信号的一个帧的顶部帧宏块和底部帧宏块以及来自该视频输入信号的相应场的 顶部场宏块和底部场宏块。该相邻数据可以包括帧下方相邻数据和场下方相邻 数据,该帧下方相邻数据用于当以帧模式处理时由在至少一个宏块下方的行中 的相邻宏块检索,该场下方相邻数据用于当以场模式处理时由在至少一个宏块 下方的行中的相邻宏块检索。另外,相邻数据可以包括帧右侧相邻数据和场右 侧相邻数据,该帧右侧相邻数据用于当以帧模式处理时由在至少一个宏块右侧 的相邻宏块检索,该场右侧相邻数据用于当以场模式处理时由在至少一个宏块 右侧的相邻宏块检索。

在一个实施例中,步骤400和/或402用检索到的相邻数据为多个宏块中 的每个宏块生成至少一个预测运动矢量。进一步地,步骤404可以用检索到的 相邻数据为该多个宏块中的每个宏块生成至少一个直接模式运动矢量。同样地, 步骤406可以使用检索到的相邻数据为多个宏块中的每个宏块生成最佳内部预 测模式。

图13示出了根据本发明的实施例的方法的流程图。特别地,示出结合在 相关的图1-12中介绍的一个或更多特征和功能说明使用的方法。在步骤600 中,为多个宏块中一个宏块的多种分割的多个子块同时地生成运动搜索运动矢 量。在步骤602中,基于该多个宏块中该宏块的多个子块的每一个的运动搜索 运动矢量,为该多个宏块中该宏块的多种分割的该多个子块同时地生成细化的 运动矢量。在步骤604中,基于与该多个宏块中的该宏块的多种分割的多个子 块的每一个子块的该细化的运动矢量相关联的成本,选择多种分割中的选择分 割。在步骤606中,为与该多个宏块中该宏块的选择分割相应的多个子块的每 一个子块确定最终运动矢量。在步骤608中,对应于多个宏块中该宏块的多个 子块的最终运动矢量生成残留像素值。

在本发明的实施例中,步骤600和602可以按多种选择模式操作,包括对 应于第一压缩标准的第一模式、对应于第二压缩标准的第二模式和对应于第三 压缩标准的第三模式。例如,在第一模式中,当维持MBAFF信号时步骤600 和602能够在宏块自适应帧和场被启用的状态下操作,以及当不维持MBAFF 启用信号时在MBAFF被禁用的状态下下操作,并且其中多种分割基于 MBAFF启用信号。该第一压缩标准可以包括H.264标准,并且当维持MBAFF 信号时,该宏块的多种分割把宏块分割成具有第一最小尺寸的子块。例如,当 维持MBAFF信号时,该宏块的多种分割把宏块分割成16像素×16像素、16 像素×8像素、8像素×16像素和8像素×8像素大小的子块。另外,当不维持 MBAFF信号时,该宏块的多种分割将宏块分割成具有小于第一最小尺寸的第 二最小尺寸的子块。例如,当不维持MBAFF信号时,该宏块的多种分割把该 宏块分割成16像素×16像素、16像素×8像素,8像素×16像素,8像素×8像素、 4像素×8像素、8像素×4像素和4像素×4像素大小的子块。

另外,在该第二模式中,例如当该第二压缩标准包括运动图像专家组 (MPEG)标准时,该宏块的多种分割把该宏块分割成16像素×16像素和8像 素×8像素的子块。同样,在该第三模式中,例如当该第三压缩标准包括电影与 电视工程师协会(SMPTE)标准时,该宏块的多种分割把该宏块分割成16像 素×16像素和8像素×8像素大小的子块。

图14示出了本发明的实施例的方法的流程图。特别地,示出结合相关的 图1-13中说明的一个或更多的特征和功能说明使用的方法。在步骤700中, 为多个宏块中一个宏块的多种分割的多个子块生成运动搜索运动矢量。在步骤 704中,基于组选择信号生成多种分割的选择组。在步骤716中,基于多个宏 块中该宏块的多个子块中每个子块的运动搜索运动矢量,为多个宏块中该宏块 的多种分割的该选择组的多个子块生成细化的运动矢量。

在本发明的实施例中,当组选择信号具有第一值时,步骤704通过为多个 宏块中该宏块的多种分割将与该多个子块的每一个的运动搜索运动矢量相关联 的累加成本与第一阈值相比较,并指定该选择组为具有比第一阈值理想的累加 成本的分割,从而确定该多个分割的该选择组。当该组选择信号具有第二值时, 步骤704通过为多个宏块中该宏块的多种分割将与该多个子块的每一个的运动 搜索运动矢量相关联的累加成本相比较,并指定该选择组为具有最理想的累加 成本的选择分割,来确定该多个分割的选择组。当该组选择信号具有第三值时, 步骤704通过为多个宏块中该宏块的多种分割将与该多个子块的每一个的运动 搜索运动矢量相关联的累加成本与第二阈值相比较,并指定该选择组为具有比 第二阈值理想的累加成本的多种分割中的每一个分割,来确定多种分割的该选 择组。

可选地,步骤700为多个宏块中一个宏块的多种分割的多个子块同时地生 成运动搜索运动矢量,并且步骤716为多个宏块中该宏块的多种分割的该选择 组的多个子块同时地生成细化的运动矢量。

图15示出了根据本发明的实施例的方法的流程图。示出结合相关的图1 -13中说明的一个或更多的特征和功能说明使用的方法,并且特别地包括图14 的方法的一个或更多的元素,其以相同的附图标记表示。另外,该方法包括在 共用存储器中存储多种分割的选择组和相应的运动搜索运动矢量的步骤708。 同样,在步骤712中从该共用存储器中检索多种分割的选择组和相应的运动搜 索运动矢量。

图16示出了根据本发明的实施例的方法的流程图。示出结合相关的图1 -13中说明的一个或更多的特征和功能说明使用的方法,并且该方法包括图14 和15的方法中以相同的附图标记表示的元素。另外,该方法包括响应于在该共 用存储器中对宏块分割的选择组和相应的运动搜索运动矢量的存储生成触发信 号的步骤710。另外,步骤712’包含响应于该触发信号执行从该共用存储器中 检索该分割的选择组和相应的运动搜索运动矢量。

图17示出了根据本发明的实施例的方法的流程图。示出结合相关的图1 -16描述的一个或更多的特征和功能使用的方法。特别地,说明可以用作权利 要求13的方法的代替的方法,其包括以相同的附图标记表示的相同元素。另外, 该方法包括生成多种分割的选择组的步骤704’。

图18示出了根据本发明的实施例的方法的流程图。特别地,示出结合相 关的图1-17中说明的一个或更多的特征和功能说明使用的方法。在步骤800 中,基于累积差总和(SAD)的成本为多个宏块中一个宏块的多个分割的多个 子块生成运动搜索运动矢量。在步骤802中,该方法确定是否启用细化。如果 启用,该方法进行至步骤804,基于多个宏块中该宏块的多个子块的每一个子 块的运动搜索运动矢量并基于累积变换差总和(SATD)成本,为多个宏块中 该宏块的多种分割的多个子块生成细化的运动矢量。在步骤806中,当为多个 宏块中该宏块生成细化的运动矢量的步骤被启用的时候,基于与多个宏块中该 宏块的多种分割的多个子块的每一个的细化的运动矢量相关联的SATD成本, 选择多种分割的选择分割。

如果细化被禁用,该方法改为前进至步骤808,其中基于与多个宏块中该 宏块的多种分割的多个子块的每一个子块的运动搜索运动矢量相关联的SAD 成本,选择多种分割的选择分割。在任何一种情况下,该方法前进至步骤810, 其中为对应于多个宏块中该宏块的选择分割的多个子块的每一个确定最终运动 矢量。在步骤812中,对应于多个宏块中该宏块的多个子块的最终运动矢量生 成残留像素值。

在本发明的实施例中,基于特定应用,基于特定压缩标准,和/或基于与 该宏块的多种分割中至少一种相关联的总成本和跳过细化成本阈值之间的比 较,选择性地禁用细化。应该注意,在一个宏块接一个宏块的基础上禁用细化。

另外,该方法可以在多种选择模式下操作,包括对应于第一压缩标准的第 一模式、对应于第二压缩标准的第二模式以及对应于第三压缩标准的第三模式, 例如H.264标准、运动图像专家组(MPEG)标准,电影与电视工程师协会 (SMPTE)标准或者其他标准。

图19示出了根据本发明的实施例的方法的流程图。特别地,示出结合相 关的图18中说明的方法说明使用的方法。在步骤820中,当为多个宏块中的该 宏块生成细化的运动矢量的步骤被启用时,基于与多个宏块中该宏块的多种分 割的多个子块中每一个的细化的运动矢量相关联的SATD成本,为该宏块选择 帧模式和场模式中的一个。

图20示出了根据本发明的实施例的方法的流程图。特别地,示出结合相 关的图18和19中说明的方法说明使用的方法。在步骤830中,当为多个宏块 中该宏块生成细化的运动矢量的步骤被禁用时,基于与多个宏块中该宏块的多 种分割的多个子块中每一个的运动搜索运动矢量相关联SAD成本,为该宏块选 择该帧模式和场模式中的一个。

图21示出了根据本发明的实施例的方法的流程图。特别地,示出结合相 关的图1-20中说明的一个或更多的特征和功能说明使用的方法。在步骤900 中,为多个宏块中一个宏块的多种分割的多个子块生成运动搜索运动矢量。在 步骤902中,基于多个宏块中该宏块的多个子块的每一个子块的运动搜索运动 矢量,并基于包括对应于第一子像素分辨率的第一模式和对应于第二子像素分 辨率的第二模式的多个选择模式,为多个宏块中该宏块的多种分割的多个子块 生成细化的运动矢量。在步骤904中,基于与多个宏块中该宏块的多种分割的 多个子块中的每一个子块的细化的运动矢量相关联的成本,选择多种分割的选 择分割。在步骤906中,为对应于多个宏块中该宏块的选择分割的多个子块确 定最终运动矢量。在步骤908中,对应于多个宏块中该宏块的多个子块的最终 运动矢量生成残留像素值。

在本发明的实施例中,第一模式对应于第一压缩标准,且第二模式对应于 第二压缩标准。该第一压缩标准可以包括H.264标准,第二压缩标准可以包括 运动图像专家组(MPEG)标准,或该第二压缩标准可以包括电影与电视工程 师协会(SMPTE)标准。另外,该多种模式包括对应于全像素分辨率的第三模 式。

在实施例中,步骤902可以基于在该第一像素上方的行和该第一像素下方 的行中的像素,生成围绕第一像素的多个子像素成本,并且其中运动细化模块 存储围绕选择像素的多个子像素成本中的至少一个,以便以后处理与在该第一 像素下面的行中的第二像素相关联的成本。进一步地,步骤902可以并行地生 成围绕该第一像素的多个子像素成本。该第一子像素分辨率基本上可以是1/2 像素分辨率,并且该第二子像素分辨率基本上可以是1/4像素分辨率。

在优选实施例中,使用0.35微米或更小的CMOS技术实现各种电路部件。 然而,在本发明较宽的范围内,可以使用其它集成或者非集成的电路技术。

虽然这里清楚地描述了本发明的多种功能和特征的特定组合,但是这些特 征和功能的其它组合也是可能的,而不仅仅限于这里公开的特定示例,其也应 包括在本发明的范围之中。

本领域技术人员将会意识到,这里可能使用的术语“基本上”或者“近似”为 其相应的术语和/或各项之间的相对性提供了工业接受的容许量。该工业接受 的容许量在小于百分之一到百分之二十的范围内变化,并且,相应于,但不限 于,部件值、集成电路处理变量、温度变量、上升和下降时间和/或热噪声。 该各项之间的相对性在从百分之几的差值到数量级上的差值范围内变化。本领 域技术人员还将意识到,这里可能使用的术语“耦合”,包括直接耦合和经过其 它部件、元件、电路或模块的间接耦合,其中对非直接耦合来说,中间的部件、 元件、电路或模块不改变信号的信息,但可以调整信号的电流水平、电压水平 和/或功率水平。本领域技术人员还将意识到,推断的耦合(即,其中通过推 断一个元件耦合到另一元件)包括以与“耦合”相同的方式在两个元件之间直接 或间接的耦合。本领域技术人员将会进一步意识到,这里可能使用的术语“相比 理想的”表示在两个或者更多的元件、项、信号等之间的比较提供了一个期望的 关系。例如,当期望的关系是信号1具有比信号2大的量时,当信号1的量大 于信号2的量时或者当信号2的量小于信号1的量时可以达到理想的比较结果。

在本发明的多个实施例的描述中使用了术语模块,模块包括以硬件、软件 和/或固件实现的功能块,其执行一个或多个模块功能例如处理输入信号以生 成输出信号。像这里所使用的那样,模块可以包括本身就是模块的子模块。

因此,这里介绍了用于实现视频编码器和运动补偿模块以及随之一起使用 的运动细化引擎的装置和方法,以及包括一个优选实施例的多个实施例。这里 介绍的本发明的多个实施例具有将本发明与现有技术区别开来的特征。

对本领域技术人员来说,很明显可以以多种方式修改公开的发明,并且可 以采用上面特别展示和描述的优选形式以外的其它实施例。相应地,旨在通过 所附权利要求覆盖在本发明的真正的思想和范围之内的本发明的全部更改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号