首页> 中国专利> 用于视频编码的功率高效的运动估计技术

用于视频编码的功率高效的运动估计技术

摘要

自适应控制可以使用分层运动估计(HME)和/或多参考运动估计(MRME)来进行当前编码块的运动估计。在运动估计中允许HME和MRME二者获得高编码增益。控制包括片级控制和宏块(MB)级控制。片为一个或多个连续的宏块。在片级控制中,基于在粗级运动估计中获得的运动向量,决定使用仅一个参考帧或使用多个参考帧来对当前片进行编码。在MB级控制中,基于MB的粗级运动向量,决定对于MB及其子块执行MRME或执行HME。

著录项

  • 公开/公告号CN102918839A

    专利类型发明专利

  • 公开/公告日2013-02-06

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201080067136.4

  • 发明设计人 L·徐;Y-J·秋;H·江;

    申请日2010-03-31

  • 分类号H04N7/28;

  • 代理机构永新专利商标代理有限公司;

  • 代理人刘瑜

  • 地址 美国加利福尼亚

  • 入库时间 2024-02-19 17:57:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-10

    未缴年费专利权终止 IPC(主分类):H04N19/105 专利号:ZL2010800671364 申请日:20100331 授权公告日:20160518

    专利权的终止

  • 2016-05-18

    授权

    授权

  • 2013-03-20

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

    实质审查的生效

  • 2013-02-06

    公开

    公开

说明书

背景技术

H.264(也称作高级视频编解码(AVC))和MPEG-4第10部分为业界 期望广泛推行的ITU-T/ISO视频压缩标准。H.264标准已经由联合视频组 (JVT)制订并且包括ITU-T SG16 Q.6,其被称作VCEG(视频编码专家组), 还包括ISO/IEC JTC1/SC29/WG11,其被称作MPEG(运动图像专家组)。 H.264被设计用于数字电视广播(DTV)、直播卫星(DBS)视频、数字用 户线路(DSL)视频、交互式存储媒体(ISM)、多媒体消息(MMM)、数 字电视地面广播(DTTB)以及远程视频监控(RVS)的领域中的应用。

视频编码中的运动估计(ME)可以被用于通过去除或减少视频帧之间 的时间冗余来提高视频压缩性能。为了对输入块进行编码,可以在编码器 处在参考帧中的指定搜索窗口内执行传统的运动估计。这可以允许确定最 小化在参考帧中的参考块与输入块之间的绝对差之和(SAD)的运动向量。 然后,运动向量(MV)信息可以被发送到解码器用于运动补偿。

当在解码器处无法得到原始输入帧时,可以使用重构的参考帧执行解 码器处的ME。当对预测帧(P帧)进行编码时,在前向参考缓冲器中可以 有多个参考帧。当对双向预测帧(B帧)进行编码时,在前向参考缓冲器 中可以有多个参考帧,并且在后向参考缓冲器中有至少一个参考帧。对于B 帧编码,可以执行镜像ME或投影ME来确定MV。对于P帧编码,可以 执行投影ME来确定MV。

附图说明

图1绘示了示例性的分层运动估计(HME)。

图2示出视频编码系统的框图。

图3示出用于确定是使用HME还是使用MRME来确定P图像或B图 像的输入片的块的运动向量的方式的流程图。

图4绘示了确定是使用HME还是使用MRME来确定块的运动向量的 方式的流程图。

图5绘示了确定宏块的运动向量的方式。

图6绘示了根据实施例的系统。

具体实施方式

已知方案可以仅使用一个参考帧而不是多参考运动估计(MRME)来 降低编码复杂度,或当搜索窗口非常有限时使用分层运动估计(HME)来 处理高运动。已知仅使用一个参考帧可能不足以获得高编码增益,并且对 于图像的某些块使用HME可能不是有效的。

ME从参考帧获取对当前编码块的预测。ME包括在参考帧中以搜索中 心为中心的搜索窗口内的运动搜索。一般而言,当使用较大搜索窗口时可 以获得较高的编码增益。另一方面,使用较大搜索窗口大幅度增加了编码 复杂度,这可能在功率利用上效率不高。另外,对于硬件实现,由于芯片 上存储器大小非常有限,从而搜索窗口可能非常小。在各实施例中,分层 运动估计(HME)可以用来通过按比例缩小参考帧并使用小搜索窗口来扩 展该小窗口的搜索范围。但是,对于有小的帧内运动的块,小搜索窗口可 能是足够的,因此,对于小的帧内运动的块,HME可能会浪费功率。为了 获得较高的编码增益,可以对具有小的帧内运动的块应用多参考运动估计 (MRME),从而在多个可用的参考帧上执行运动搜索以确定对当前编码块 的预测。将参考索引发送到解码器侧用于运动补偿。对于某些高运动的块, 在最接近参考帧上的运动搜索已经足够了,并可以节约与搜索多个帧相关 联的功率。

各实施例自适应地控制是否使用HME和/或MRME来对当前块进行编 码,这可以大幅度地节约编码功率同时还获得高编码增益。控制可以基于 片(slice)级控制和/或宏块(MB)级控制。片为一个或多个连续的宏块。 片内的宏块的次序可以是从左到右和从上到下的。基于使用HME所确定的 运动向量,可以将MB分成三类,高运动MB、低运动MB以及其它MB。 如果在当前片中有过多的高运动MB,则实验结果表明MRME不利于整个 片的编码增益。在片级控制中,在当前片中有过多高运动MB时,决定仅 使用一个参考帧来对当前片的块进行编码。然而,可以使用其它数量的参 考帧,例如两个或三个。将参考帧的数量设定为一允许编码器在单个参考 帧中寻找运动向量。选定的参考帧可以是时间上最接近的帧(前向或后向) 或与当前帧类似但在时间上不是最接近的帧(例如谐运动)。对于在此片中 的所有块,没有将参考索引编码到比特流中,这是因为当不提供参考索引 时解码器知道要使用的参考帧。另外,在单个参考帧上的运动搜索可以是 足够的,因此,对于这些块使用多个参考帧进行运动估计可能会浪费功率。 不对参考索引进行编码可以节约比特并可以提高编码增益。

对于非高运动的片,可以将此片的参考帧数量设定为任意数量,例如 最多允许的参考帧。例如,H.264允许高达16个参考帧。

在MB级控制中,基于使用HME所确定的MB的运动向量(MV), 来决定是对MB及其子块执行MRME还是执行HME。基于使用HME所确 定的MV,如果MB是高运动的,则对该MB及其子块执行HME。基于使 用HME所确定的MV,如果MB是低运动的,则对该MB及其子块执行 MRME。但是,如果低运动MB位于高运动片中,则可以使用一个参考帧 来对低运动MB及其子块进行编码。如果MB既不是高运动的也不是低运 动的,则可以将HME或MRME二者之一或HME和MRME的组合应用于 MB及其子块。HME及MRME的组合意味着在多个可用参考帧中扩展的搜 索范围。

MRME在多个可用参考帧上应用运动搜索以获取对当前编码块的预 测,并且将参考索引发送到解码器侧用于校正运动补偿。参考图像缓冲器 存储解码的参考图像。可以选择那些参考帧作为MRME中的参考帧。可以 基于最接近的时间距离或图像级相似度测量来选择参考图像。多参考运动 估计可能会增加编码器的复杂度。

用于对当前块进行编码的HME和MRME的自适应控制可以极大地节 约编码功率,同时还获得高编码效率增益。

图1绘示了示例性的分层运动估计(HME)。在运动估计之前,通过S 因子将当前帧和参考帧按比例缩小到粗级帧。换句话说,按比例缩小的帧 的宽度和高度为原始帧尺寸的1/(S*S)。原始帧被称作细级帧。一般而言,S 可以被设定为1.5、1.6、2、4、8或其它值。可以对按比例缩小的、粗级的 当前帧中的每个M×N块执行运动估计。在按比例缩小的、粗级的参考帧中 具有W×H尺寸的小搜索窗口内执行运动估计。在获得粗级运动向量(mvx, mvy)之后,按比例放大的运动向量(mvx*S,mvy*S)被用作搜索中心,并在 细级帧上,在W×H的搜索窗口内执行运动搜索,以找出细级运动向量。按 比例放大的MV(mvx*S,mvy*S)可以用作在细级当前帧中的(M*S)×(N*S)块 中像素的搜索中心。对于W×H的搜索窗口,可以被搜索的最大运动在正/ 负水平方向为W/2,以及在正/负垂直方向为H/2。在HME之后,可以被搜 索的最大运动在水平方向为(S+1)W/2,以及在垂直方向为(S+1)H/2。按比例 缩小的帧可以被按比例缩小超过一次。例如,可以使用S=2将尺寸为120 的原始图像按比例缩小成60×60像素,并且接着再次按比例缩小成30×30 像素。可以将搜索窗口应用到一个或更多的按比例缩小的图像。

HME可以极大地减少ME的复杂度同时获得相同的运动范围。复杂度 可以指处理器软件运算周期或指芯片的硬件门数。令在W×H的搜索窗口内 执行M×N块的ME的复杂度为C。则用于对整个细级帧进行编码的HME 的复杂度约为K*C+S*S*K*C=(S*S+1)KC,其中K为粗级中M×N块的数 量。但是,如果搜索窗口为细级中的((S+1)W)×((S+1)H),则用于对整个细 级帧进行编码的ME的复杂度将约为(S+1)*(S+1)*S*S*K*C,其为HME的 很多倍。

在一些实施例中,设立标志mb_HME_flag=1来告知编码器应用HME 以确定宏块的运动向量。

在例如H.264/AVC的一些高级视频编码标准中,可以在多个参考帧中 执行运动估计,并且将最佳预测的参考索引和运动向量发送到解码器用于 运动补偿。可以在片头部中用信号表示最多允许的参考帧数量。如果最多 允许参考是一个,那么如果解码器知道对于那些块参考索引为0,则可以不 对每个块的参考索引进行编码。否则,对参考索引进行编码。MRME可以 减少预测误差,但是参考索引的编码比特是不可忽略的开销。MRME可能 由于通知解码器在编码中使用什么参考帧而比HME使用更多的开销。

实验结果表明,当帧内的块运动大时,HME在较高编码效率方面具有 明显增益,而当帧内的块运动相对小时,MRME具有较高编码效率的明显 增益。因此,自适应的控制机制可以用于自适应地决定使用HME或MRME 来对块进行编码。自适应的控制可以极大地降低编码复杂度并且提高编码 增益。例如,如果真实的块运动非常小,则在细级上的W×H搜索窗口内执 行一般ME可能就足以获得运动向量。在这种情况下,对于这些小运动块, HME是不必要的,并且可以替代地使用MRME。

图2示出了视频编码系统的框图。自适应ME控制块基于片或宏块是 高运动还是低运动,通知运动估计块执行MRME或使用来自粗级ME块的 运动向量。运动估计块使用在W×H搜索窗口内的预测MV(pmv),支持 MRME以及在搜索中心周围进行传统的细级运动搜索。

粗级ME块基于HME来确定运动向量。HME可被用于大的运动,并 且应用HME和MRME的自适应控制来降低编码复杂度。

在对于粗级片中的所有M×N块执行粗级ME之后,基于获得的粗级运 动向量来执行片级控制。对于S=4和M×N=4×4块,细级中的对应块为 16×16宏块。如果细级MB的粗级MV满足“abs(mv_x)>=TH_1||abs(mv_y) >=TH_1”,则细级MB可以被定义为高运动MB,其中TH_1可以是预定义 的常数。假设在输入片中的宏块总数为total_MB并且在输入片中有N个高 运动宏块。如果N/total_MB大于预定义的阈值TH_0,则输入片被认为是 高运动片。

对于高运动片,MRME可能无法为视频编码系统提供适当的增益。此 外,用于对参考索引进行编码的比特开销甚至可能会降低编码增益。因此, 对于高运动片,ME被限于在时间上或在图像级上的最接近的参考帧,并且 在片头部中,允许的参考帧数量被用信号表示为1。对于在此片中的所有块, 将不对参考索引进行编码,从而节约了带宽。可以将参考索引与片一起发 送到解码器,或参考索引可以基于在编码器与解码器之间的共识,从而不 发送索引。

对于非高运动片,用于确定片中的块的运动向量的参考帧的数量 (slice_num_ref)可被设定为M,其中M是编码器的参考缓冲器中的可用 帧的数量。在H.264/AVC中,在序列参数头部中用信号表示最多允许的参 考帧。

图3示出用于确定是使用HME还是使用MRME来确定P或B图像的 输入片的块的运动向量的方式的流程图。

块302包括在片上执行HME以确定粗运动向量。例如,关于图1所述 的HME技术可被用于确定片中每个宏块的运动向量。将输入片按比例缩小 成粗级片,并且按比例缩小的粗级参考帧在参考缓冲器中是可用的。接着, 对于当前粗级片中的第i个M×N块,在W×H搜索窗口内执行运动估计以 获取其运动向量(mvx(i),mvy(i))。例如,块可以为4×4并且搜索窗口可以为 48×40。此运动向量可以用作原始尺寸的帧中的对应(M*S)×(N*S)块(如 16×16块)中的像素的搜索中心。

块304包括确定片中的高运动宏块的数量N。如果abs(mv_x)>=TH_1 ||abs(mv_y)>=TH_1,则MB被认为是高运动MB,其中|表示逻辑或,mv_x 为在x方向上按比例放大的运动向量,mv_y为在y方向上按比例放大的运 动向量,以及TH_1为阈值。

块306包括确定片是否为高运动片。例如,高运动片可以为这样一个 运动片,该片中某些数量的宏块是高运动的。块306可以包括确定是否 N/total_MB>TH_0,其中total_MB为片中宏块的总数并且TH_0为阈值。 如果片不是高运动片,则块308跟在块306之后。如果片为高运动片,则 块310跟在块306之后。

块308包括将用于确定当前片中的宏块的运动向量的参考帧的数量设 定为M,M为编码器的参考缓冲器中的可用帧的数量。

块310包括将用于确定当前片中宏块的运动向量的参考帧的数量设定 为一。然而,参考帧的数量可以超过一个。

块312包括以关于图5所述的方式来确定片中的所有MB和子块的运 动向量。

图4绘示了用于基于宏块来确定是使用HME还是使用MRME来确定 块的运动向量的方式的流程图。

块402包括确定宏块是否为高运动宏块。如果abs(mv_x)>TH_2并且 abs(mv_y)>TH_2,则宏块可以为高运动宏块,其中mv_x及mv_y表示以 与块302类似的方式确定的运动向量。此处,TH_2不大于TH_1。

块404包括确定宏块是否为低运动宏块。如果abs(mv_x)<=TH_2并且 abs(mv_y)<=TH_2,则宏块可以为低运动宏块,其中mv_x及mv_y表示在 块304中所确定的运动向量。

块406包括将参考帧的数量设定为一,并指示要使用MRME来确定当 前宏块的运动向量。变量mb_num_ref可以用于表示用于确定当前块的运动 向量的参考帧的数量。变量mb_HME_flag表示是HME还是MRME被用于 确定当前块的运动向量。

块408包括将参考帧的数量设定为用于当前宏块的片的参考帧的数量, 并指示要使用MRME来确定当前宏块的运动向量。例如,可以基于图3的 流程图来确定用于当前宏块的片的参考帧的数量。只要功率/复杂度不是要 考虑的问题,就可以增加参考帧的数量。

块410包括将参考帧的数量设定为一,并指示要使用HME来确定当前 宏块的运动向量。从而,以与块302类似的方式所确定的运动向量mv_x 及mv_y可被用作当前宏块的运动向量。

块412包括使用HME或MRME来确定当前宏块及子块的运动向量。 可以以关于图5所述的方式来做出当前宏块及子块的运动向量的确定。

在一些实施例中,基于片级和宏块级二者来做出运动向量的确定。因 此,不执行块312并且图3的过程在图4的过程之前,取而代之的是在块 412中确定运动向量。

图5绘示了确定宏块的运动向量的方式。

块502包括,在最接近的单个参考帧中,在以宏块及其子块的预测运 动向量(pmv)为中心的W×H搜索窗口内执行一般ME。向量pmv的确定 基于在ITU-T Series H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS: Infrastructure of audiovisual services-Coding of moving video,Advanced video coding for generic audiovisual services(2009年3月)的称作“Inter prediction process”的第8.4节中描述的众所周知的技术,该技术使用与关注的宏块相 邻的三个宏块的中值(median)运动向量。

块504包括确定宏块是否为高运动宏块。可以以与块402类似的方式 来做出宏块是否为高运动的确定。如果宏块是高运动宏块,则块506跟在 块504之后。如果宏块不是高运动宏块,则块508跟在块504之后。

块506包括,在最接近的参考帧中,在以宏块及其子块的按比例放大 的粗级运动向量(cmv)为中心的W×H搜索窗口内应用ME。向量cmv从 粗级运动向量而得到。块506可以基于从按比例放大的cmv定中心的ME 来确定MV。

块508包括确定宏块是否为低运动宏块。可以以与块404类似的方式 来做出宏块是否为低运动的确定。如果宏块为低运动宏块,则块510跟在 块508之后。如果宏块不是低运动宏块,则块512跟在块508之后。

块510包括,在可用参考帧(除了最接近的单个参考帧之外)中,在 以宏块及其子块的预测运动向量(pmv)为中心的W×H搜索窗口内执行一 般ME。使用众所周知的H.264的称为“Inter prediction process”的第8.4 节来确定向量pmv。注意,对于每个参考帧,向量pmv可以不同。

块512包括基于最低的率失真代价来选择对于宏块所确定的运动向量。 块502及510提供多个预测运动向量,并且块502及506提供预测运动向 量及单个粗运动向量。可以使用具有最小的率失真(RD)代价的运动向量 和参考索引来对当前块进行编码。

自适应控制可以用于选择要执行哪个块来降低ME复杂度同时保持编 码增益。例如,如果当前MB为高运动MB,则对于此MB及其子块还将 执行块506,并且对于此MB及其子块将跳过块510。另外,如果仅使用单 个参考帧,则对于此MB及其子块也将跳过块510。若MB为低运动MB, 则对于此MB及其子块将执行块510,并且对于此MB及其子块将跳过块 506。如果MB既不是高运动MB也不是低运动MB,则对于此MB及其子 块将跳过块506及块510二者。利用此MB级控制,可以极大地降低ME 复杂度并且仍然可以获得高编码增益。

图6绘示根据实施例的系统。系统600可以包括主机系统602和显示 器622。可以在手持个人计算机、移动电话、机顶盒或任意计算设备中实现 计算机系统600。主机系统602可以包括芯片组605、处理器610、主机存 储器612、存储设备614、图形子系统615以及无线电620。芯片组605可 以提供处理器610、主机存储器612、存储设备614、图形子系统615以及 无线电620之间的相互通信。例如,芯片组605可以包括能够提供与存储 设备614相互通信的存储适配器(未示出)。例如,存储适配器能够根据下 列协议中的任意一种与存储设备614通信:小型计算机系统接口(SCSI)、 光纤信道(FC)和/或串行高级技术附件(S-ATA)。

在各实施例中,图形子系统615可以基于在本申请中所述的技术,利 用运动估计的运动向量和参考帧信息来执行视频的编码。经编码的视频可 从系统600发送到视频解码器。

处理器610可以被实现为复杂指令集计算机(CISC)或精简指令集计 算机(RISC)处理器、多核心或任意其它微处理器或中央处理单元。

主机存储器612可以被实现为易失性存储器设备,例如但不限于随机 存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。 存储设备614可以被实现为非易失性存储设备,例如但不限于磁盘驱动器、 光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池备 份SDRAM(同步DRAM)和/或网络可访问的存储设备。

图形子系统615可以执行对例如静态的或视频的图像的处理以用于显 示。模拟或数字接口可以被用于通信地耦合图形子系统615和显示器622。 例如,该接口可以为高清晰度多媒体接口、显示端口、无线HDMI和/或无 线HD兼容技术的任意一种。图形子系统615可以被集成到处理器610或 芯片组605中。图形子系统615可以为通信地耦合到芯片组605的独立卡。

无线电620可以包括能够根据适用的无线标准来发送和接收信号的一 个或多个无线电,其中无线标准例如但不限于IEEE 802.11和IEEE 802.16 的任意版本。

可以由各种硬件架构实现在本申请中所述的图形和/或视频处理技术。 例如,可以将图形和/或视频功能集成在芯片组内。可替代地,可以使用分 立的图形和/或视频处理器。作为另一个实施例,可以通过包括多核处理器 的通用处理器来实现图形和/或视频功能。在又一个实施例中,可以在消费 电子设备中实现这些功能。

本发明的实施例可以被实现为如下的任意一个或其组合:使用母板互 连的一个或多个微芯片或集成电路、硬线逻辑、由存储器设备存储并由微 处理器执行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列 (FPGA)。举例而言,术语“逻辑”可以包括软件或硬件和/或软件和硬件 的组合。

例如可以提供本发明的实施例作为计算机程序产品,其可以包括上面 存储有机器可执行指令的一个或多个机器可读介质,当由一个或多个机器 (例如计算机、计算机网络或其它电子设备)执行时,所述指令可使得一 个或多个机器进行根据本发明的实施例的操作。机器可读介质可以包括, 但不限于软盘、光学盘、CD-ROM(光盘只读存储器)、磁光盘、ROM(只 读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、 EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存或适合存储机 器可执行指令的其它类型的介质/机器可读介质。

附图和上述说明书给出了本发明的示例。尽管被描绘成若干不同的功 能项,然而本领域技术人员将理解到这些部件的一个或多个可以很好地组 合到单个功能部件中。可替代地,可以将某些部件划分成多个功能部件。 可以将一个实施例的部件添加到另一个实施例。例如,在本申请中所述的 过程的次序可以改变且不限于在本申请中所述的方式。此外,不需要以所 示出的次序来实现任何流程图的动作;也无需一定执行所有的动作。并且, 不取决于其它动作的那些动作可以与所述其它动作并行执行。然而,本发 明的范围绝不受限于这些特定的示例。无论在此说明书中明确给出与否, 例如结构、尺寸及材料使用上的差异的许多变型均为可能的。本发明的范 围至少如同所附权利要求所给出的范围一样宽。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号