基于双向的局部和全局运动估计的帧率转换的利记博彩app

文档序号:7768444阅读:348来源:国知局
专利名称:基于双向的局部和全局运动估计的帧率转换的利记博彩app
技术领域
本发明总体上涉及处理视频信息。
背景技术
可以以给定的帧率来提供视频。该视频由静止帧的序列组成。该帧率是每秒的帧数量。一些显示器使用与输入视频的帧率不同的帧率。因此,帧率转换将帧率向上或向 下转换,使得输入帧率与显示器的帧率匹配。


图1是根据本发明的一个实施例的帧率转换装置;图2是根据一个实施例的运动估计单元的更详细地描述;图3是根据一个实施例的运动补偿设备的更详细的描述;图4是根据本发明的一个实施例的时间预测值(predictor)及金字塔预测值的描 述;图5是根据本发明的一个实施例的空间预测值的描述;图6是一个实施例的流程图;以及图7是对于一个实施例的系统描述。
具体实施例方式帧率转换用于改变视频序列的帧率。典型的帧率转换算法应用是,对于国家电视 系统委员会(NTSC)系统而言,将影片内容从每秒M帧转换为每秒60帧,或对于逐行倒相 (PAL)系统而言,将影片内容从每秒25帧转换为每秒50帧。高清晰度电视支持每秒120或 240帧的显示,这也需要帧的向上转换。根据一些实施例,帧率转换算法可以补偿在视频序 列中描述的运动。在一个实施例中,使用双向的、分级的局部和全局运动估计和运动补偿。“双 向”表示在前向和反向上在两个锚定帧(anchor frame)之间估计运动。“分级运动估计 (hierarchical motion estimation) ”指的是使用所提供的视频信息的每一次不断提高的 分辨率来精炼运动估计的情况。双向的、分级的局部和全局运动估计之后是最终运动补偿 阶段,该阶段将所述两个锚定帧和所有的运动估计元素整合到一个内插阶段内。根据一个实施例,可以接收两个视频帧的输入序列。这些帧可以包括由χ、y和时 间t坐标指定的一系列像素。运动矢量可以从第一帧至第二帧以及从第二帧至第一帧来确 定,换句话说,在前向和反向上确定。本算法使用所得到的局部和全局运动、所提供的时间 戳以及连续的帧数据来在这两个帧之间创建内插帧。时间戳对应于帧率,并且具体地说,对 应于输出帧的期望帧率。因此,前一帧P可以具有由x、y和t变量指定的像素,并且后一帧N可以具有采用x、y和t+Ι变量的像素。输出帧C具有采用x、y、t’变量的像素。内插得到的输出帧C可 以具有时间t+q,其中,q小于1并且大于0。可以在χ和y坐标中由ρ来指示像素位置。运 动矢量MVAB(x,y)是从帧A至帧B的、在屏幕空间中的坐标χ和y处的运动矢量。全局运动 矢量GMab是从帧A至帧B的主运动矢量(dominant motion vector)。因此,参见图1,向前向运动估计单元1 和反向运动估计单元12b提供前一帧P 和后一帧N。每一个运动估计单元12的输出是运动矢量场和全局运动矢量,该运动矢量场 和全局运动矢量在前向运动估计单元12a的情况下是从前一帧P至后一帧N,或者在反向 运动估计单元12b的情况下是从后一帧至前一帧,如图1中所述。向运动补偿设备22提供
前向和反向运动估计的结果,运动补偿设备22接收所述运动矢量和内插的输出帧C的时间 q。参见图2,运动估计单元12可以实现图1的前向运动估计单元1 或反向运动估 计单元12b。其可以以软件或硬件来实现。在硬件实施例中,可以在一些实施例中使用硬件 加速器。输入帧被指示为A和B,它们在一个实施例中仅包括Y、U、V颜色系统中的Y分量。 也可以使用其他颜色方案。该运动估计单元的输入还可以包括用于在分级系统的多个金字 塔级的每一级处的每一个块的时间预测值。时间预测值是根据先前的运动估计计算的在参 考帧中的源块的预期位置。如所指示,输出是在每一个金字塔级处的每一个块的运动矢量 和在帧中的全局运动或主运动矢量。各个子单元包括金字塔单元16,用于根据输入帧建立金字塔结构;以及,全局运 动估计单元20,其计算从A至B的全局或主运动矢量。以下,更详细地描述块搜索单元15 和投票单元18。全局运动估计单元20通过使用参照原始帧分辨率的金字塔的最低一级的从A至 B的运动矢量来计算从帧A至帧B的主运动。计算所有运动矢量的平均,然后,去除与该平 均有显著不同的所有运动矢量。再一次计算剩余运动矢量集合的平均,并且同样去除与该 新的平均不同的运动矢量。这个处理继续进行,直到其收敛为止,这表示平均运动矢量从当 前的迭代至下一个迭代不发生改变。最终的平均运动矢量即为全局或主运动矢量。在图3中更详细地示出了运动补偿设备22。运动补偿设备22包括运动矢量平滑 对、像素内插25和中值计算器26。运动矢量平滑M基于相关的块运动矢量来计算内插帧 的每一个像素的前向和反向运动矢量。给定像素的运动矢量是其所属的块的运动矢量与其 紧邻的邻居块的运动矢量的加权平均。基于每一个像素在块中的位置来为该像素计算权 重。像素内插单元25计算内插帧的每一个像素的每一个颜色分量(例如,Y、U和V) 的四个内插版本。这些内插版本可以是在由从P至N的对应运动矢量和时间戳q指示的 位置中的、来自帧N的像素a ;在由从N至P的对应运动矢量和时间戳q指示的位置中的、 来自帧P的像素b ;在由从P至N的全局运动矢量和时间戳q指示的位置中的、来自帧N的 像素d ;以及,在由从N至P的全局运动矢量和时间戳q指示的位置中的、来自帧P的像素 e。在一个实施例中,内插方法可以是最近邻内插或双线性内插以及任何其他内插方法。中值计算器沈计算每一个分量的a、b、c、d和e像素的中值,所述分量例如是每一 个像素的Y、u、v,其中,C是a和b像素的平均。运动补偿块使用P和N帧,其中包括在YUV系统中的所有的Y、u和V颜色分量。运动补偿块使用用于仅最低金字塔级的块的从P至N 的前向运动矢量和用于仅最低金字塔级的块的从N至P的反向运动矢量。使用从P至N的 前向全局运动矢量和从N至P的反向全局运动矢量以及q,q是内插帧的时间戳,并且是在 0至IJ 1之间的值。输出是内插帧。金字塔单元16(图2)建立图像的金字塔结构,其中,金字塔的第一或基本图像是 原始图像,第二或较低分辨率的图像是基本单元或原始图像的大小的四分之一,并且第三 图像是比第二图像更低分辨率的图像,第三图像的大小是第二图像的四分之一。在单元12中的运动估计过程可以在前向和反向上是相同的。运动估计使用了金 字塔单元16,金字塔块16具有给定数量的级。在一个实施例中,使用了三个级,但是可以提 供任何数量的级。为了实现平滑的运动场,使用来自金字塔的前一级以及来自前一个运动 估计的运动矢量预测值。在一个实施例中,运动估计输出可以包括用于每一个8x8块的一 个运动矢量。参见图4,使用原始图像30、第二级图像32和第三级图像34来描述一个三级金字 塔。块30、32和34都以表示金字塔(Pyramid)的P标注,并且指示了 N帧的金字塔表示的 三个级。三个块36、38和40被标注为表示先前金字塔(Previous Pyramids)的PP,其被 标记为是前一帧的金字塔表示。再次指出,预测值是在参考帧中的源块的预期位置。对于 每个8x8块,根据在图4中被标记为时间的前一帧的运动矢量场计算一个预测值,并根据在 图4中所示的金字塔的先前的更低一级计算四个预测值。在最高的金字塔级,即具有最低 分辨率的金字塔级,仅有一个空间预测值——零位移。参见图5,在图5中被标记为46的、在给定的金字塔级中的每一个8x8块与在更 低一级中的四个块46a、46b、46c、46d相关。因此,每一个8x8块[46a]具有一个空间预测 值,该空间预测值是源自于其直接父块(direct ancestor block)的,所述直接父块在图5 中被标记为块46 ;以及,三个其他预测值,它们是源自于三个相邻块41、42和44。对于每一个预测值,执行小范围块匹配搜索,并且在源块与参考块之间确定相似 度测量,例如绝对差之和(SAD)。在这个搜索范围中,在绝对差之和最小时的块位移,即运动 矢量,被输出为与这个预测值相关的候选。在一个实施例中,每一个预测值有9个运动矢量位置。在一个实施例中,对于在源 帧中的每一个8x8块以及对于每一个预测值,搜索区域是10x10,使得针对每一个方向提供 士 1的搜索范围。对于每一个方向,搜索覆盖三个位置(_1,0,+1),因此,搜索位置的总数是 3x3 或 9。块的最终运动矢量的选择是基于邻居投票过程的。在邻居投票中,针对每一个块, 基于相邻块的运动矢量候选来选择最佳的运动矢量。对于当前块的每一个运动矢量候选, 对8个相邻块的类似的运动矢量候选的数量进行计数。由于最多次数地作为候选而获得最 大票数的运动矢量被选择为最佳运动矢量。运动补偿设备22基于前向运动场和反向运动场运动矢量,通过使用前一帧P和原 始帧N来产生输出的内插帧C。可以由平滑滤波器M平滑在前向和反向上的运动场,该平 滑滤波器M在一个实施例中可以是9x9滤波器。在一个实施例中,在中值计算器沈中,每 一个输出像素被计算为5个不同值(a、b、c、d和e)的中值。即,在下一帧N和前一帧P之 间计算在新的内插帧C中的像素位置ρ。假定,这个新的帧处于时间轴上0到1之间的某个位置q处,在时间0处的P帧与时间1处的N帧之间。参见图6,根据一个实施例,可以以软件、硬件或固件来实现序列。在软件实施例 中,可以使用例如通用处理器或图形处理器的处理器来实现该序列,以执行指令序列。该指 令序列可以被存储在可由执行中的处理器访问的计算机可读介质上。所述计算机可读介质 可以是任何存储设备,包括磁存储设备、半导体存储设备或光学存储设备。初始,该序列在框50开始,在框50中接收前一帧和后一帧的像素。在框M和64, 准备前一帧和后一帧的金字塔结构。其后在金字塔运动估计阶段52a、52b、52c中处理像 素。在前向运动估计阶段,使用先前的前向运动场(框55)为每一个8x8块产生时间和空 间预测值,如框56中所示。接下来,对于每一个预测值执行小范围块匹配,如在框58中所 示。其后在框60中,具有最小绝对差之和的运动矢量被识别为候选。基于邻居投票来从候 选中选择最佳候选,如框62中所示。某个金字塔级的运动矢量结果被提供到本级的框73 内和下一级的框66内。然后在框73中进行全局运动估计。在反向上,在框65、66、68、70、72和73中执行同一序列。在框74中,对最后一个金字塔级的运动估计结果进行组合以用于运动补偿。运 动补偿阶段可以包括在框76中的滤波,用于平滑运动矢量场以建立每一个像素的运动矢 量;在使用运动矢量的框77a和77d和使用全局运动的77b和77c中的内插;以及,在框78 中的中值计算。在图7中所示的计算机系统130可以包括硬盘驱动器134和可移除介质136,硬盘 驱动器134和可移除介质136通过总线IM而耦合到芯片组核心逻辑110。在一个实施例 中,该核心逻辑可以耦合到图形处理器112(经由总线10 和主或主机处理器122。图形处 理器还可以通过总线1 耦合到帧缓冲器114。帧缓冲器114可以通过总线107而耦合到 显示器屏幕118,显示器屏幕118进而通过总线108耦合到例如键盘或鼠标120的常规部 件。在软件实施方式的情况下,相关的计算机可执行代码可以被存储在任何半导体、磁性或 光学存储器中,包括主存储器132。因此,在一个实施例中,代码139可以被存储在例如主存 储器132的机器可读介质中,以由例如处理器112或122的处理器执行。在一个实施例中, 所述代码可以实现在图6中所示的序列。在一些实施例中,双向方法和投票过程可以减少在对象边缘附近的伪影,因为这 些图像区域由于在单向方法中产生的孔径(aperture)问题而容易出现运动场不准确的问 题。虽然双向方法并未解决孔径问题本身,但是最后的内插是更精确的,因为其依赖于来自 两个独立的运动场的最佳结果。可在各种硬件架构中实现在此所述的图形处理技术。例如,图形功能可以被集成 在芯片组内。替代地,可以使用分立的图形处理器。作为另一个实施例,可以通过包括多核 芯处理器在内的通用处理器来实现图形功能。在本说明书中对于“一个实施例”或“实施例”的提及表示在本发明中涵盖的至少 一种实施方式中包括结合该实施例所描述的特定特征、结构或特性。因此,短语“一个实施 例”或“在实施例中”的出现不必指的是同一实施例。而且,可以以除了所举例说明的特定 实施例之外的其他适当形式来建立所述特定特征、结构或特性,并且,在本申请的权利要求 内涵盖所有这样的形式。虽然已经针对有限数量的实施例描述了本发明,但是本领域内的技术人员可以理解根据上述实施例的各种修改和变型。意欲所附的权利要求涵盖落在本发明的真实精神和 范围内的所有这样的修改和变型。
权利要求
1.一种方法,包括使用前向运动估计和反向运动估计来执行帧率转换;以及计算前向全局运动估计和反向全局运动估计,以用于帧率转换。
2.根据权利要求1所述的方法,其中,所述使用前向运动估计和反向运动估计来执行 帧率转换包括使用分级搜索来执行运动估计。
3.根据权利要求1所述的方法,包括对于所选择的块产生时间预测值和相邻预测值。
4.根据权利要求1所述的方法,包括对于每一个预测值执行小范围块匹配。
5.根据权利要求3所述的方法,包括将具有最小绝对差之和的运动矢量确定为候选 运动矢量。
6.根据权利要求4所述的方法,包括基于来自相邻块的投票,从多个候选中选择用于 所选择的块的最终运动矢量。
7.根据权利要求1所述的方法,包括执行运动补偿。
8.根据权利要求7所述的方法,包括计算多个值的中值,所述多个值包括在依据用从 前一帧至下一帧的运动矢量前向移位的位置而计算的位置处的、从所述下一帧获取的像素 的值。
9.根据权利要求8所述的方法,包括使用在用从所述下一帧至所述前一帧的运动矢 量反向移位的位置处的、来自所述前一帧的像素,来计算所述中值。
10.根据权利要求9所述的方法,包括确定至少5个值的所述中值,其中,所述值之一 是从所述下一帧获取的所述像素和从所述前一帧获取的所述像素的平均。
11.根据权利要求8所述的方法,包括使用在用从所述下一帧至所述前一帧的全局运 动估计反向移位的位置处的、来自所述前一帧的像素来计算所述中值。
12.根据权利要求8所述的方法,包括使用在用从所述前一帧至所述下一帧的全局运 动估计前向移位的位置处的、来自所述下一帧的像素,来计算所述中值。
13.一种计算机可读介质,用于存储指令,所述指令使得计算机前向和反向估计局部和全局运动,以用于帧率转换。
14.根据权利要求13所述的介质,进一步存储指令,所述指令用于使用前向运动矢量 和前向全局运动以及反向运动矢量和反向全局运动,基于内插来计算像素。
15.根据权利要求13所述的介质,进一步存储指令,所述指令用于对于所选择的块产 生时间预测值和相邻预测值。
16.根据权利要求13所述的介质,进一步存储指令,所述指令用于使用10x10的范围 对于每一个预测值执行小范围块匹配。
17.根据权利要求15所述的介质,进一步存储指令,所述指令用于将具有最小绝对差 之和的运动矢量确定为候选运动矢量。
18.根据权利要求17所述的介质,进一步存储指令,所述指令用于基于来自相邻块的 投票,从多个候选中选择用于所选择的块的最终运动矢量。
19.根据权利要求13所述的介质,进一步存储指令,所述指令用于执行运动补偿。
20.根据权利要求13所述的介质,进一步存储指令,所述指令用于通过计算多个值的 中值来执行运动补偿,所述多个值包括在依据用从前一帧至下一帧的运动矢量前向移位的 位置而计算的位置处的、从所述下一帧获取的像素的值。
21.根据权利要求20所述的介质,进一步存储指令,所述指令用于使用在用从所述下 一帧至所述前一帧的运动矢量反向移位的位置处的、来自所述前一帧的像素来计算所述中值。
22.根据权利要求21所述的介质,进一步存储指令,所述指令用于确定至少5个值的 中值,其中,所述值之一是从所述下一帧获取的所述像素和从所述前一帧获取的所述像素 的平均。
23.根据权利要求21所述的介质,进一步存储指令,所述指令用于使用在用从所述下 一帧至所述前一帧的全局运动估计反向移位的位置处的、来自所述前一帧的像素,来确定中值。
24.根据权利要求21所述的介质,进一步存储指令,所述指令用于使用在用从所述前 一帧至所述下一帧的全局运动估计前向移位的位置处的、来自所述下一帧的像素,来确定 中值。
25.一种装置,包括前向运动估计单元,其包括投票过程单元,用于基于来自相邻块的投票,从多个候选中 选择用于所选择的块的最终运动矢量;以及反向运动估计单元,其包括投票过程单元,用于基于来自相邻块的投票,从多个候选中 选择用于所选择的块的最终运动矢量。
26.根据权利要求25所述的装置,所述前向运动估计单元和所述反向运动估计单元使 用分级搜索来执行运动估计。
27.根据权利要求25所述的装置,其中,所述前向运动估计单元和所述反向运动估计 单元对于所选择的块产生时间预测值和相邻预测值。
28.根据权利要求25所述的装置,其中,所述前向运动估计单元和所述反向运动估计 单元对于每一个预测值执行小范围块匹配。
29.根据权利要求27所述的装置,所述前向运动估计单元和所述反向运动估计单元将 具有最小绝对差之和的运动矢量确定为候选运动矢量。
30.根据权利要求四所述的装置,所述前向运动估计单元和所述反向运动估计单元基 于所述邻居投票来选择最佳候选运动矢量。
31.根据权利要求25所述的装置,其中,所述运动估计单元耦合到运动补偿设备。
32.根据权利要求30所述的装置,其中,所述运动补偿设备计算多个值的中值,所述多 个值包括在依据用从前一帧至下一帧的运动矢量前向移位的位置而计算得到的位置处的、 从所述前一帧和所述下一帧之中的所述下一帧获取的像素的值。
33.根据权利要求32所述的装置,其中,所述运动补偿设备使用从所述下一帧至所述 前一帧的运动矢量反向移位的、来自所述前一帧的像素来计算所述中值。
34.根据权利要求33所述的装置,其中,所述运动补偿设备确定至少3个值的中值,其 中,所述值之一是从所述下一帧获取的所述像素和从所述前一帧获取的所述像素的平均。
35.根据权利要求34所述的装置,其中,所述运动补偿设备使用在用从所述下一帧至 所述前一帧的全局运动估计反向移位的位置处的、来自所述前一帧的像素来确定中值。
36.根据权利要求34所述的装置,其中,所述运动补偿设备使用在用从所述前一帧至 所述下一帧的全局运动估计前向移位的位置处的、来自所述下一帧的像素来确定中值。
全文摘要
根据一些实施例,帧率转换可以使用前向和反向的局部和全局运动估计。在一些实施例中,可以对于块产生空间和相邻预测值。可以对于每一个预测值执行小范围块匹配。可以基于来自相邻块的投票,从多个候选中选择用于块的最终或最佳运动矢量。可以从多个所选择的运动矢量计算全局运动矢量。可以基于两个连续帧以及前向和后向的局部和全局运动估计来计算经过运动补偿的内插。
文档编号H04N7/01GK102088589SQ20101058365
公开日2011年6月8日 申请日期2010年12月8日 优先权日2009年12月8日
发明者A·利维, A·米亚斯科夫斯基, B·赫维茨 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1