用于视频编码的内容自适应背景前景分割的制作方法

文档序号:11162266阅读:666来源:国知局
用于视频编码的内容自适应背景前景分割的制造方法与工艺

为了提供良好质量的视频图像并提供改进的新一代视频编解码器应用,视频编解码器的一些令人期望的属性包括:(1)用于使在给定有限视频编码比特率或带宽的情况下在图像中的重要区域的感知视频质量最大化的能力,以及(2)用于启用基于对象的视频编解码器的能力,其中,对图像中的对象进行检测以便相应地调整编解码器精度。举几个例子,第一属性至少在某种程度上可以由正常视频编码(意味着在不使用基于区域分割的编码的情况下进行编码)以及由视频编码标准(如H.264、可扩展视频编码(SVC)、高效率视频编码(HEVC)或可扩展HEVC(SHVC))或者由非标准替代性视频编解码器(如VP8和VP9)来处理。然而,为了用这些标准得到最佳结果,对重要区域(区域分割)的感知可能是必要的。进一步地,原则上,如支持对象的显式编码的MPEG-4等标准对实现第二属性而言是必要的。然而,这些标准(MPEG-4、H.264或HEVC)仅描述比特流语法和解码语义,并且仅宽松地强制执行编码器的细节(比分割的细节少得多)。尽管在启动高级应用中是令人期望的,视频的进一步分割可以是计算复杂的并且非常上下文相关的。这是更加复杂的,因为标准不覆盖视频的分割。

在有限带宽视频编码中,适配用于人类感知和/或视觉要求的量化可以用于实现由用户感知的改进的视频质量。确切地,在视频编码中,亮度和色度像素值可以被转换成频率系数(如离散余弦转换系数),所述频率系数然后被量化或被四舍五入为特定值,以便减小超出可由人眼检测到的系数的不必要的精度。例如,人眼对色彩不如对亮度那么敏感,并且人眼会仅注意亮度和色彩的特定水平的差异。因此,为了提高感知图像质量,可以采用若干种过程,如但不限于:(1)标识高度纹理化区域,其中,可以在不添加视觉可注意到的伪像的情况下添加更多噪声;(2)标识具有非常高或非常低亮度的区域,其中,可以隐藏某种程度更高的量化伪像;(3)标识恰好在场景剪切之前或之后的帧,其中,可以引入更多的量化噪声而不会使其非常明显;以及(4)标识在视频中的可能更让人感兴趣的如人脸和其他对象等的关注区域(兴趣区域(ROI)),从而使得可以以更细化的量化以及更好的质量来对ROI区域进行编码(如前景),而以相对较低的质量来对其他区域进行编码(如背景)。

这种最新技术尤其在特定应用的背景中是相关的,如视频会议、视频聊天以及包括使用在背景上的前景覆盖的应用的其他应用。针对这些示例,对来自前景(FG)中的通常移动的人类头部和肩部或者其他覆盖对象的通常静态的或至少更加静态的背景(BG)的分割被用来将良好的编码集中在前景上以改进编码。虽然可获得用于将前景从背景中分割出来的许多种通用技术,这些技术中的大多数或者是计算密集型的或者较差地执行将背景从前景中分割出来(或者两者)。利用更好质量的实用分割,可获得的有限编码带宽可以更好地指向ROI处,如用于改善场景中的人类或其他前景对象,由此给出图像质量的感知整体改善。

附图说明

在附图中通过举例而非限制的方式展示了在此所描述的材料。为了展示的简单和清楚,图中所展示的元件不一定按比例绘制。例如,为清楚起见,某些元件的尺寸相对于其他元件可能被放大了。此外,在认为适当的情况下,在附图之间对参考标记加以重复以表示相应的或相似的元件。在附图中:

图1是用于背景前景分割的视频编码系统的示意图;

图2是示出用于背景前景分割的过程的流程图;

图3是示出用于背景前景分割的过程的背景模型学习阶段的流程图;

图4是示出背景前景分割过程的阈值方法的峰值和谷值的表图;

图5至图8示出了展示在背景前景分割过程的背景模型学习阶段中的操作的图像;

图9是示出用于背景前景分割的过程的分割循环阶段的流程图;

图10是示出用于用暴露的当前背景区域更新背景前景分割的过程的流程图;

图11至图12示出了展示对在背景前景分割过程的分割循环阶段中的操作进行标记的ROI的图像;

图13至图16示出了展示在背景前景分割过程的分割循环阶段中的时空线索操作的图像;

图17是示出了使用本文的背景前景分割过程的背景前景分割的最终图像;

图18至图21示出了展示在背景前景分割过程的分割循环阶段中的各操作的图像;

图22A至图22B是针对背景前景分割过程的背景模型学习阶段的详细流程图;

图23是针对背景前景分割过程的分割循环阶段的详细流程图;

图24A是在背景前景分割过程的背景模型学习阶段的学习速率计算操作中所使用的决策树的表1;

图24B是示出帧的复杂度并且用于形成表1的表图;

图25是基于针对ROI特定参数的视频分辨率的分割设置的表2;

图26是用于分割掩膜(mask)清理的设置的表3;

图27是操作以用于提供背景前景分割过程的示例系统的示意图;

图28是示例系统的示意图;

图29是另一个示例系统的示意图;

图30展示了全部根据本公开的至少部分实现方式安排的另一个示例设备。

图31是根据本文的至少部分实现方式的视频编解码器系统的示意图;以及

图32是根据本文的至少部分实现方式的另一个视频编解码器系统的示意图。

具体实施方式

现在参考附图来说明一种或多种实现方式。虽然对特定配置和安排进行了论述,但应理解,这仅出于说明目的来进行。相关领域的技术人员将认识到,在不背离本描述的精神和范围的情况下可以采用其他配置和安排。将对相关领域的技术人员明显的是,在此描述的技术和/或安排还可以在除了在此描述的系统和应用之外的各种各样的其他系统和应用中被采用。

虽然以下描述阐述可以在如例如片上系统(SoC)架构的架构中显现各实现方式,在此描述的技术和/或安排的实现方式不局限于具体的架构和/或计算系统并且出于类似目的可以由任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装体、和/或各种计算设备和/或消费电子产品(CE)设备(如机顶盒、智能电话等)的各架构可以实现在此描述的技术和/或安排。此外,虽然以下描述可以阐述许多特定的细节(如逻辑实现、系统部件的类型和内在关系、逻辑划分/集成选择等),要求保护的主题可以在没有这些特定细节的情况下被实践。在其他情形下,可以不详细示出某些材料(如,例如,控制结构和完整的软件指令序列),以便不模糊在此公开的材料。

在此公开的材料可以在硬件、固件、软件、或其任意组合中实现。在此公开的材料还可以被实现为存储于机器可读介质上的指令,这些指令可以被一个或多个处理器读取或执行。机器可读介质可以包括用于存储或传输具有由机器(例如,计算设备)可读的形式的信息的任何介质和/或机制。例如,机器可读介质可包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)以及其他。在另一种形式中,非瞬态制品(如非瞬态计算机可读介质)可以与以上所述示例或其他示例中的任何示例一起使用,只是其不包括瞬态信号自身。非瞬态制品却包括除了信号自身之外的可以暂时以“非瞬态”形式(如RAM等)保持数据的那些元素。

说明书中提到“一种实现方式(one implementation)”、“实现方式(an implementation)”、“示例实现方式(an example implementation)”等表明所描述的实现方式可以包括具体特征、结构、或特性,但每个实现方式可能不一定包括这个具体特征、结构、或特性。此外,这些短语不一定指同一实现方式。另外,当结合一个实现方式描述特定的特征、结构或特性时,应理解,结合无论在此是否明确地描述的其他实现方式来实施这种特征、结构或特性在本领域技术人员的认知范围内。

以下描述了与用于视频编码的内容自适应背景前景分割有关的系统、制品和方法。

如上所述,一种用于提高图像的感知质量的方式是标识图像的哪些部分在背景(BG)中并且图像的哪些部分在前景(FG)中,从而使得可以较不详细地对背景进行编码以便提供更大的带宽来更加详细地对前景进行编码。这经常被提供在具有静态背景并且其中的前景是一个或多个人的头部和肩部的场景中,如,具有视频会议的场景。除了视频会议,更有效的背景前景分割对于其他应用同样也是有益的,如兴趣区域(ROI)编码、监督、灵活多媒体合成以及其他。在一些情况中,可以令人期望的是将前景叠加在替代性替换背景场景或者已经被修改的背景上。在其他情况中,如关于场景中的参与者或对象的档案或统计数值的信息可以被提供作为场景中的覆盖物。这种要求可以不必局限于视频会议场景,而可应用于许多不同类型的场景。这种场景可能要求将背景从前景对象中分割出来以便从所述背景单独地处理前景并确定图像的哪些部分被对象覆盖或不覆盖。

在视频会议的背景中,例如,背景可以仅被发送一次至解码器以用在多个场景中以便节省带宽。类似地,替代性背景图像或视频可以被单独地提供,或者背景可以由其他方法生成以与具有不同原始背景的前景一起使用。在所有这些情况中,仅编码的前景对象可能被发送至解码器以用于新的图像。如果用于发送针对前景对象的形状的数据的带宽可以保持较低而针对背景纹理信息的编码被省略或者大幅减少以用于新的图像,那么更多的带宽可用于提供详细的前景纹理信息至解码器,这可以产生更高的感知图像质量。

因此,视频分割算法的一个基础目标是将帧像素(或块)分类为或者前景或者背景。在基于背景建模的分割中,背景是在一定数量的之前分析的帧之上建模并估计的,例如形成进行中的场景,并且然后被从当前帧中减去(在此,术语“帧”、“图片”和“图像”可互换地使用)。例如,这可以通过以下方式来执行:使用如直方图、使用平均值/中值、概率函数曲线等几种方法之一,并从帧到帧或在一定数量的帧之上形成针对像素值(如亮度和色度值)中的差异的阈值。这是基于以下想法:前景移除物体将导致在帧当中的像素值的较大差异,而背景则被期望维持帧当中的像素值的较小差异。这种类型的方法适合于具有相对静态相机的场景,如视频会议和类似的应用。

两种已知的背景建模分割算法包括:高斯混合(MoG)方法和滤波概率分布函数(FPDF)方法。MoG方法使用多个演进高斯分布作为针对背景像素的值的模型。MoG方法包括将每个像素{X1,...,Xt}的最近历史建模作为K个高斯分布的混合。针对现有的K个高斯分布检查每个新的像素X,直到发现匹配(即,直到X的值在分布的标准偏差阈值内)。如果未发现匹配,那么最小概率分布由新的分布所替换,其中,X作为均值并且具有初始高方差。这种方法针对许多室内序列和室外序列提供了好的前景对象分割结果。然而,MoG方法在具有周期性背景移动的序列中的性能仍然较差。MoG方法尝试估计的概率分布函数(PDF)的形状可以是可由预定数量的高斯曲线来近似的任何形状。实际上,可以用无限数量的高斯曲线来近似任何曲线。但是由于计算复杂性的缘故,MoG方法通常使用有限数量的三到五个高斯分布来进行建模。这产生对PDF的相当不准确的近似,并且是复杂序列中的较差性能背后的主要原因之一。

为了更好地处理这种序列,FPDF分割方法是滤波方法与概率方法的混合。在FPDF方法中,初始分割是基于滤波器的,并且模型将参考背景图像维持为背景的模型。所述分割可以由如应用于帧序列的低通无限脉冲响应(IIR)滤波器的方法来执行。一种FPDF方法解决了基于典型滤波器的方法不能够在复杂场景中在前景对象与背景对象的移动之间进行区分。在FPDF方法中,模型在初始分割中检测像素值的PDF。所述FPDF模型能够在初始分割中的误差与真实前景像素之间进行区分。例如,这可以通过使用实时更新的PDF以及基于贝叶斯(Bayes)法则的决策框架来完成,所述决策框架基于以下假设用公式表示:在单个像素处经常观察到的像素值更有可能是背景。

虽然这两种方法在许多监督类型的序列中具有足够充分的分割结果,但是这些方法在模型建立之前针对序列的前几百个帧执行得非常差。此外,在测试过程中,来自视频会议领域的许多序列产生了非常不准确的结果。此外,这两种方法如果应用于较高分辨率视频(如1080p或更高)都非常慢。典型的个人计算机(PC)实现方式针对公共中间格式(CIF)分辨率每秒产生几个帧,所述CIF分辨率不满足典型的现代视频应用要求。

为了解决这些缺点,利用已知提议的多级背景(MSB)建模分割方法来进行多个实验,所述实验尝试针对现代视频会议类型的应用提供更快速的学习速率(参见A.帕罗林(Parolin)、G.P.菲克尔(Fickel)、C.R.荣格(Jung)、T.马尔扎本德(Malzbender)和R.沙马塔尼(Samadani)在IEEE ICME 2011的Proc.上的“Bilayer video segmentation or videoconferencing applications(双层视频分割或视频会议应用)”)。在此MSB方法中,对象检测(如人脸跟踪算法)用于指导头部和肩部的类属Ω形模板。然后,围绕通用模板创建兴趣区域(ROI),并且基于边缘、色彩和运动线索的能量函数用于定义人与背景之间的边界。MSB方法中的背景建模用作跟踪阶段的组成部分。所述MSB方法依赖于人脸检测和跟踪算法以确定视频会议中的参与者。当在帧内检测到人脸时,人脸的位置和大小用于定义表示头部和肩部区域的类属Ω形模板。所述模板被重新缩放并且被叠加于帧上以定义ROI。给定基于模板的ROI,对象的轮廓是在ROI内部的曲线,所述ROI使在对象边界上较大且在其他地方较小的某个能量函数最大化。在MSB方法中,寻找对象边界的问题用公式表示为图形中的最大成本路径,并且提出Dijkstra算法来寻找路径以便估计对象边界。在此过程中的一个关键部分是引导最短路径的能量图。所述MSB方法依赖于能量函数的所有三条线索:边缘、色彩和运动。边缘线索信息是使用索贝尔算子提取的,运动线索依赖于与被设置为10/255的阈值不同的串行帧,并且色彩线索是基于色彩空间直方图(其是具有添加的空间信息的直方图)。最终能量图被确定为这三条线索的加权和,其中,权重被实验性地设置为边缘线索的0.1、运动线索的0.7以及色彩线索的0.2。确定以上技术的质量和/或性能的关键问题在于具有与由所述技术使用的人脸检测系统完全相同的人脸检测系统。类似于广义的分割,人脸检测可以是计算上复杂的,其结果是背景相关的。

在使用MSB方法的实验中,观察到以下缺点:(1)MSB方法针对头部和肩部类型的场景调谐得极好,而当应用于其他类型的场景时执行得很差,(2)由MSB方法使用的跟踪算法昂贵且减慢了分割过程从而使得MSB方法仅可应用于较小的分辨率序列,以及(3)用于在围绕对象的跟踪区域内精确地找到估计边界的能量图对于更一般的情况而言似乎太简单了,并且当应用于讨论中的头/头部和肩部序列的测试集上时产生可见的分割误差。

本背景前景分割过程克服了已知方法的上述缺点,所述过程提供高质量的图像,同时降低了所述过程的复杂度。本发明背景前景分割过程是多级方法,所述方法使用至少两个阶段,包括用于快速地学习初始的、准确的背景模型的一个阶段。然后,在分割循环阶段中,背景减法技术接下来是形态学算子。并且,本分割过程仅使用基于ROI类型的分析作为后处理器来通过使用多个线索(如Canny边缘线索、梯度线索以及在所标记的ROI内基于运动的线索)从前景像素重新分类暴露的背景,而不是使用ROI和其他线索来直接地分辨出倾向于是可见估计误差的区域边界。这种策略减少或消除了以下需求:(1)使用人脸跟踪器来确定粗略的ROI估计,以及然后(2)依赖简单的线索来确定区域边界的实际估计。经计算的背景然后用于更新背景模型并且过程继续至下一个帧。

参照图1和图31至图32,用于编码视频序列的视频编码系统150或160可以各自具有用于执行背景前景分割的背景前景分割系统(或模块或单元)100。背景前景分割系统100可以是计算机实现的系统,并且可以被认为是与编码器152或162分开,所述编码器接收来自背景前景分割系统100的分割掩膜或分割图。在其他替代方案中,背景前景分割系统100可以被认为是编码器152或162的一部分或者可以具有编码器152或162,和/或系统100可以是或者可以具有针对编码器的控制器。许多变体是有可能的,只要分割系统100接收视频序列中的图像(或帧)的像素数据。因此,所提供的原始视频可以包括在一定数量的不同的视频编码协议(包括YUV、YCbCr等)中的亮度值和/或色度值,并且只要其包括具有背景和前景部分的图像就不被特定地限制。举几个非限制性例子,并且如以下所述,由分割系统100产生的前景/背景分割可以与许多不同的编码标准(如MPEG、H.264和HEVC)以及非标准替代性视频编解码器(如VP8和VP9)相兼容。

因此,分割系统100可以提供结果,其形式为关于哪些像素在背景中并且哪些像素在前景中的标识。此标识经常被称为分割掩膜(例如,针对单个前景)或者分割图(针对多个前景对象)。进一步地,在一种形式中,除了分割掩膜或图之外,它还可以输出经分割的帧。例如,这可以在帧被划分为编码块并且被提供给例如编码器中的转换和量化单元之前的视频编码的预处理阶段期间被执行。然后可以较不详细地对背景进行编码,并且可以更加详细地对前景(兴趣区域/ROI)进行编码。

参照图31,视频编码系统150具有作为背景前景分割系统100的前景ROI/背景分割器100a。以此形式,前景ROI/背景分割器100a接收形成一个或多个场景的帧或图像的视频序列,并且然后将背景(BG)从前景兴趣区域(FG(ROI))中划分出来。这形成了分割掩膜,所述分割掩膜指示图像中的哪些像素是背景以及哪些像素是前景。这是在不对图像或场景使用对象检测的情况下并且在对视频序列进行编码的过程中执行的。按照一种形式,分割掩膜可以是二进制掩膜,其中,例如,0指代背景而1指代前景。将分割掩膜提供给视频编码器152以对视频数据进行编码,以便在比特流154之上传输至视频解码器156。然后,视频解码器156可以对编码数据进行解码以用于在显示器158上进行观看。

视频编码器使用分割掩膜来调整量化参数(如qp)以对视频序列进行编码,这进而影响转换系数的精度。如所述,可以以较小的精度提供背景像素,而可以以较大的精度提供前景像素。这可以在块基础(其中,块中的所有像素接收相同的值)或者像素基础(其中,同一块中的单独的像素可以接收不同的分割值)上执行。视频编码器154传输分区(或其地图)、模式(如帧内编码或帧间编码)、运动数据(如运动向量(mv)和/或参考帧信息(ref))以及纹理数据(如qp和tcoef)。分割掩膜自身不必被传输至解码器,因为通过根据分割掩膜调整qp值已经考虑了分割掩膜。然后,视频解码器156在不需要分割掩膜信息数据的情况下对视频数据进行解码。

参照图32,通过替代性方案,视频编码系统160具有作为背景前景分割系统100的前景对象/背景对象分割器100b。与视频编码系统150一样,前景对象(FGO)/背景对象(BGO)分割器100b接收视频数据,并且将分割数据提供给编码器162。在这种情况中,然而,前景对象/背景对象分割器100b使用对象检测(如例如人脸检测)来定义一个或多个对象,以便形成多个单独的前景或者以便被统一处理为单个前景并且以单个较大的背景为衬托。在这种情况中,形成指示背景以及单独的前景对象中的每个对象的分割图,如0针对背景,1针对一个对象,2针对另一个对象等等。分割图可以是基于像素的或者可以具有比8×8块更准确的其他基础(如四像素准确度),以尝试避免可感知到“块状”或锯齿状图像。

分割图可以被提供给视频对象编码器162,所述编码器然后可以通过根据分割图修改qp而单独地对其他对象中的每个对象进行编码。编码器162还形成形状数据(codmaps)以定位并制定图像中的单独检测到的对象的形状,并且在比特流164之上传输数据以及如针对视频编码系统150所描述的分区、模式、运动和纹理数据。视频对象解码器166然后可以对数据执行解码以重构背景和前景对象,并且然后合成器167将对象放置在图像中(例如,通过使用形状数据)。然后,可以在显示器168上观看图像。此配置提供了大量灵活性来通过在不影响图像中的其他对象的情况下修改单独的对象而对图像进行编辑。因此,可以使得一个对象相对于其他对象更加大,等等。这种系统使用与这种基于对象的编码(如MPEG 4)相兼容的标准。

参照图1,更加详细地,分割系统100具有用于在至少两个阶段中运行分割算法的至少两个分割单元102和104。这包括背景模型学习单元102,所述背景模型学习单元操作初始阶段来学习背景模型并且在一种情况中学习初始背景模型。分割循环单元104操作另一个阶段(分割循环过程),所述另一个阶段产生分割帧并且更新背景模型。

背景模型学习单元102建立初始背景模型、初始化所述模型并且将其提供给分割循环单元104。确切地,背景模型学习单元102具有学习速率计算(LRC)单元106和累积初始分割计算(CISC)单元108,所述LRC单元用于建立参考帧供背景前景分割分析使用,所述CISC单元用于形成指示基础帧中的像素或块活动性的累积分割掩膜。并且,自适应阈值计算(ATC)单元110被提供用于基于分割掩膜设置背景阈值,并且背景模型初始化(BMI)单元112用于基于分割掩膜构造初始背景模型。

分割循环单元104接收采用如上所述像素数据的形式的原始视频并且具有自适应分割阈值计算(ASTC)单元1114,所述ASTC单元用于使用由背景模型学习单元102初始化的背景模型118来为背景减法(BS)116提供阈值。形态学开闭(MOC)单元120、未知背景暴露(UBU)单元122以及分割掩膜噪声去除(SMNR)单元124用于修改所述模型(通过添加到背景或从背景中减去)或以其他方式从数据中去除噪声。采用经分割的视频(或帧)形式的经修改的模型然后被提供用于编码并且被提供至背景模型更新(BMU)单元126以用于更新背景模型118。所述循环继续,直到其中图像被大幅改变的场景或视频序列的结束。

参照图2,流程图展示了根据本公开的至少一些实现方式安排的示例过程200。通常,过程200可以提供用于视频编码的背景前景分割的计算机实现的方法,所述方法包括如上所述学习背景模型。在所展示的实现方式中,过程200可以包括如由均匀编号的一个或多个操作202至208展示的一个或多个操作、功能或动作。通过非限制性示例,在此将参照关于以上图1讨论的操作描述过程200并且可以关于以下讨论的示例系统100或2800来进行讨论。

分割过程200可以包括“对基础帧与形成场景的视频序列的多个参考帧中的每个参考帧之间的帧间差异量值进行累加”202。基础帧可以是视频序列或在视频序列内的场景的开始帧或第一帧,但是不一定总是恰好是第一帧。通过一个选项,基础帧是指视频序列或在视频序列内的场景的开始部分的开始帧。否则,基础帧可以在视频序列或在视频序列内的场景之内,其中,所述基础帧是实用的。

分割过程200还可以包括“将单独的差异量值与多个活动性阈值进行比较以确定像素或像素块是活动的还是非活动的”204。因此,每个参考帧(或确切地,像素或像素块)具有与基础值的差异,并且每个差异与多个复杂度阈值进行比较。下面解释对这些复杂度阈值的选择。

分割过程200还可以包括“形成多个累积分割掩膜,所述多个累积分割掩膜各自是具有相同的帧参考活动性阈值组合总数量的像素或像素块的量,在所述帧参考活动性阈值组合中所述像素或像素块是活动的”206。因此,“组合”在此是与一个参考帧以及与那个参考帧一起使用的复杂度阈值之一的差异。例如,如果五个参考帧与八个阈值一起使用,那么有四十个组合。累积分割掩膜是块(或像素)的数量的计数,其在相同数量的组合中是活动的。例如,可以有在16种组合中活动的100个块,或者可以有在按照组合的数量暗示这些块是前景块的全部40种组合中非活动的1000个块,或者可以有仅在暗示这些块是背景块的一种或两种组合中非活动的1000个块。

分割过程200还可以包括“通过使用累积分割掩膜确定有待用于将块或像素分配给基础帧的背景或前景的背景阈值”208。例如,以下解释的,累积分割掩膜可以根据活动组合的数量被排序,并且可以通过分析用于组合的块的最大和最小数量来确定背景阈值。这可以由直方图上的峰值和谷值来图解(图4)。例如,背景阈值是通过评估多个(0至40)组合确定的,以便确定对应于最深谷值的值。这是基于以下理念:表图上在低数量的活动组合处的像素的高浓度(或峰)表示从帧到帧在活动与非活动之间变化不显著的背景区域,而在较高数量的活动组合处的峰值标识在从帧到帧在活动与非活动之间变化不显著的前景。在特定数量的活动组合处具有最低数量的像素的峰值之间的谷值暗示在活动与非活动之间的较大变化的区域,其进而暗示帧的背景前景区域之间的边界。因此,设想了许多其他替代方案,类似于但是不同于选择最低像素总数作为背景阈值。这包括在像素的特定值处或者在合作地形成谷值的像素(或块)总数的中心的谷值或者谷值组合可以距离至少一个峰值或每个峰值等等特定的距离(以组合数量)。

现在参照图3,流程图展示了根据本公开的至少一些实现方式安排的示例过程300。通常,过程300可以提供用于视频编码的背景前景分割的计算机实现的方法,所述过程包括用于学习背景模型的阶段。在所展示的实现方式中,过程300可以包括如由均匀编号的一个或多个操作302至320展示的一个或多个操作、功能或动作。通过非限制性示例,在此将参照关于以上图1讨论的操作描述过程300并且可以参照以下讨论的示例系统2800来进行讨论。

背景模型学习阶段或过程300通过在场景开始时分析帧间差异的数量而确定背景的初始概念。因此,背景模型学习过程300可以包括“确定场景的学习速率”302。例如,这可以通过LRC单元106来执行,并且可以包括首先至少在低速率与高速率之间自动地选择学习速率。将理解的是,在其他替代方案中,还可以存在附加的分类,如,非常低、低、中间、高、非常高等等、这种选择基于场景的空间和时间复杂度。

学习速率用于根据场景的复杂度为给定场景设置适当的帧距离,从而使得相应的帧距离给出显著的响应。帧距离是在当前或基础帧与参考帧之间的被即时计数为帧加1的数量的距离;此距离还被称为pdist(图片距离)。例如,未来帧可以用作用于计算背景前景分割的参考。在学习阶段中,特定数量的参考帧可以各自与开始帧或基础帧相比较,并且开始帧与每个参考帧之间的差异用于建立背景的初始模型。针对不同场景,在帧的参考列表中的帧的数量,以及使用它们自身距离的实际帧可以取决于场景自身的特性。空间复杂度(SC)是视频帧的平均复杂度,并且是基于帧内的平坦区域、边缘区域和温度区域的量和水平确定的。时间(或运动)复杂度(TC)是随时间推移从帧到帧的复杂度。具有高时间复杂度的场景可以具有从帧到帧的复杂的/可较差补偿的运动,而具有低时间复杂度的场景可以具有从帧到帧的很好补偿的(经常没有或很少的)运动。针对较慢的移动场景,需要较大的距离来采集足够显著的运行以产生显著的基于运动的响应,所述响应产生成功的前景/背景分隔。那么,在这种情况下,参考帧更加远离开始帧或基础帧。另一方面,针对较快的场景,从开始帧或基础帧到参考帧的较小距离是足够的并且更适于学习背景模型。在本过程中,空间和时间复杂度两者用于确定学习速率。并且,参考帧可以是相对于基础帧的任何随后的帧并且参考帧具有可以与基础帧的像素值不同的像素值。

然后,更确切地,确定场景的学习速率可以包括“确定场景的复杂度”304。空间复杂度(SC)是帧内复杂度的定量度量,其中,较低的值对应于具有最光滑区域的场景,而较大的值对应于具有大量强边缘和/或纹理的场景。例如,SC可以是在场景的开始帧或基础帧中的两个相邻像素的平均横向平方差(RS)和平均列向平方差(CS)的欧几里得范数。为了减小计算复杂度,可以基于小于全部像素的采样从差异中计算Rs和Cs值,如每隔帧的一行和/或一列。

时间复杂度(TC)是一种确定在当前帧与参考帧之间有多少帧值变化的帧间度量。TC可以使用沿着场景或视频序列的两个间隔开的帧之间的绝对差之和(SAD)计算被设置为平均像素。

给定所述场景的SC值和TC值,决策树(表1,图24A)用于将学习速率选择为或者高(更快和/或更复杂的场景)或者低(更慢和/或更不复杂的场景)以便“在从基础帧到参考帧的距离处并且沿着形成场景的帧序列选择每个参考帧,所述选择取决于场景的复杂度”306。下面的帧距离对应于这两个学习速率。针对高学习速率,假定开始帧为帧1,然后所述过程使用相对更靠近开始帧的在距离开始帧的帧距离为2、4、8、16和24帧之处的五个参考帧来创建累积初始分割掩膜。针对较低学习速率,所述过程使用帧距离24、32、40和48帧来创建累积初始分割掩膜。表1示出在学习速率计算操作中使用的一个可能的决策树。表1包括来自测试序列的测量结果,所述测量结果可以被归类成最佳场景分类(针对背景模型的距离)或者换言之用于确定到参考帧的距离。在此,h对应于被分析的帧的垂直分辨率(线或行的数量),SC对应于空间复杂度度量,并且TC对应于时间复杂度度量。因为序列的空间和时间属性取决于帧大小,所以垂直视频分辨率h还用在用于选择学习速率的时空决策树中。在本示例中,根据h针对数字通用光盘(DVD)或者标准清晰度(SD)视频序列是否大于352个像素或者h针对如所示的低清晰度(LD)视频序列是否小于或等于352而确定复杂度。

参照图24A,表1决策树用在学习速率计算(LRC)步骤中,并且确切地用于判定基于空间和时间复杂度的组合的序列帧是否有待被分类成两个类别之一,其中,第一类别是暗示场景中的较快运动的高复杂度,而第二类别是暗示场景中的较小运动的低复杂度。当场景被分类为属于第一类别时,附近的帧可以用于参考比较,而当场景被分类为属于第二类别时,更远的帧需要用于参考比较。

例如,当帧中存在多于352个像素时,SC为5.9至6.0且TC为0.8至0.9,然后所述帧具有高复杂度并且使用在以上所述更近的距离中的帧组。当SC和TC未落入沿着决策树中的同一行的范围中或者帧大小针对DVD/SD大于352(针对LD小于352)时,那么帧具有低复杂度并且使用具有更大距离的帧组。所使用的SC和TC范围是在实验过程中确定的并且可以不是唯一有效的组合。因此,表图(图24B)被提供用来示出可能有效的值的范围。

参照图24B,提供了表图用来示出空间与时间复杂度之间的关系并且解释来自表1的范围的起点。时间复杂度形成垂直轴并且空间复杂度形成水平轴。表图被划分为三个区域。首先,不大可能的(或完全不可能的)区域被定义为非常低至低SC加上中到高TC的组合。其次,低复杂度区域(如在表1上列出的)中非常低至低SC与非常低至中TC相组合。第三,高复杂度区域(如在表1上列出的)将低至高SC与中低至高TC进行组合。表图上的每个圆圈示出来自表1上的行的范围组合,其中,圆圈的边缘粗略地对应于所列举的范围的限制。如由表图所示,许多其他组合可以用于将帧分类为高或低复杂度。

过程300还可以包括“形成指示在场景的至少一部分中的像素或像素块的活动性的累积分割掩膜”308。这可以由累积初始分割计算(CISC)单元108执行,并且可以包括“形成基础帧的像素数据与每个参考帧的像素数据之间的差值”310。例如,这可以包括在块级上累加在像素值中的帧间差异量值,并且包括8×8块级(尽管许多其他划分尺寸是可能的),并且通过对块内的像素值求平均而计算块的单个值。如以上所解释的,在第一或基础帧与所选的参考帧中的每个帧之间计算帧间差异。然后,计算在每个8×8块处的能量响应量值。

更确切地,累积初始分割计算的一个目标是确定帧内的8×8块的帧间活动性水平。针对给定的至相应的参考帧的n个帧距离d1,...,dn,累积掩膜C被计算为基于单独的8×8块的分割掩膜之和,如下:

针对在di(i=1...n)处的每个参考帧,计算绝对帧间差异Di,所述绝对帧间差异是第一个P亮度帧(开始帧(sf))与在距离P亮度帧距离为di处的亮度帧之间的像素值(此处为亮度)差异。在此,帧间差异是针对导致具有差异Di的帧的每个像素位置的差异。然后,将Di划分为8×8块,并且将Di中的每个像素设置为所述像素所属的8×8块中的平均值。所产生的Di’具有更平滑的噪声以及更强且更连贯的运动区域。在本示例中,将存在五个Di’,每个针对由决策树(表1)定位的每个参考帧。

然后,过程300可以包括“将参考帧的差值与多个活动性阈值进行比较以确定哪些像素或哪些像素块是活动的”312。因此,例如,针对给定的Di’以及给定的一组m个第一潜在阈值t1,...,tm(其被实验地确定并且设置为t1,...,tm={1,2,3,4,5,6,8,12})。这些第一活动性阈值是在范围广泛的视频序列之上通过实验获得的,并且用作为用于计算单个唯一阈值的候选项。所述阈值表示对像素差异的绝对值的约束,所述像素差异使能够将像素分类为属于像素的前景或背景组。换言之,这些是初始(或测试)背景阈值(或探测)。在此使用八个阈值,但是将理解的是可以代替地使用更多或更少的阈值。与活动性阈值进行比较的结果是,最终操作可以产生二进制分割掩膜Si,j(j=1...m),如下:

其中,(x,y)是块在帧内的位置。因此,针对块级分割掩膜Si,j,所产生的‘0’指示在开始帧与参考帧之间没有或低差异,并因此没有活动性。所产生的‘1’指较大的差异并因此存在活动性。因此,此等式针对在每个参考帧中的每个块(1到n)并且针对每个阈值(1到m)产生0或1。

过程300然后可以包括“形成多个累积分段掩膜,每个掩膜是像素或像素块的量的总数,所述像素或像素块在相同数量的参考帧与用于确定像素或块的活动性的活动性阈值的组合中是活动的”314。确切地,来自二进制块的这些然后全部被求和以在每个块的基础上形成累积分割掩膜(或者换言之,针对每个块或跨组合的块位置的“活动性”的总水平)。累积分割掩膜C被设置为以下总和:

其中,(x,y)表示针对每个参考帧且针对每个阈值比较的单个像素块(或更准确地单个块位置)。在本情况中,然后,C是组合的总数(此处的最大值为四十(五个参考帧×八个活动性阈值))。每个组合由在其中块是活动的二进制值(1)指示。因此,例如,C=10意味着块在10种组合中是活动的。针对零(在任何组合中为非活动的块),将有与组合的数量加一同样多的累积分割掩膜C值。在相同数量的组合中活动的像素或块的量然后被累积以形成跨所有组合的可以被放置在如图4所示的直方图中的最终累积分割掩膜。

过程300还可以包括“确定场景的至少一个背景阈值”316,并且这可以由自适应阈值计算(ATC)单元110执行并且包括自动地确定用于将累积掩膜拆分成前景和背景响应块的阈值。过程300因此包括“沿着累积分割掩膜的数值排序将两个最大累积分割掩膜之间的最小累积分割掩膜选择作为背景阈值”318。换言之,例如,在累积掩膜的平滑直方图中将阈值设置为两个峰值之间的最低谷值。第一峰值(峰值1)被设置为具有最大计数的直方图点。第二峰值(峰值2)被设置为排除峰值1及其紧挨着的邻居(围绕峰值1的向峰值的左边和右边单调递减的点)的具有最大计数的直方图点。换言之,一旦获得累积分割掩膜,它就被用来确定与移动对象相关的8×8块区域。

过程300还可以包括“确定在块内具有像素准确分割的背景模型”320。例如,这可以由背景模型初始化(BMI)单元112执行,并且可以首先包括在第一或基础帧中确定可能的背景区域。这然后可以用于初始化背景模型118。背景区域是通过使用二进制累积8×8掩膜确定的,以寻找从所述一组帧间距离和阈值(在第一步骤中预先设置的)计算的最小误差像素准确(填充的空穴)二进制帧间差异。换言之,初始背景模型例如使用SAD被设置在组合值的二值化帧相比于背景阈值之间的最小差异以及基础帧与所述参考帧活动性阈值组合之一之间的二值化差异处。例如,与最接近参考帧以及最小活动性阈值的组合被选择用于比较。用以下描述的过程2200的操作2254解释一个示例,其涉及将像素准确分割掩膜与块准确分割掩膜进行比较。

因此,为了获得像素准确分割掩膜(或背景模型),使用二值化的8×8累积分割掩膜C’计算以下误差:

Erri,j=∑abs(C′(x,y)-Si,j(x,y)) (3)

其中,i=1...n,j=1...m,并且(x,y)是像素块在帧内的坐标。值‘n’与被检查的帧距离d1,...,dn的数量有关,并且值‘m’指被检查的阈值T1,...,Tm的数量。

然后,最小误差Erra,b的距离da和阈值tb用于创建像素准确分割掩膜S。da和tb值对应于导致SAD的最小值的情况。

例如,还可以通过如以下用操作2256(图22b)所描述的首先关闭并且随后打开来应用形态学处理以填充空穴并且以其他方式从帧中消除噪声。

最终,像素准确掩膜S然后用于通过将初始背景模型设置为仅在S中具有值0的像素位置处的初始像素的YUV值来获得所述模型。针对这些像素位置的计数器被设置为1(意味着模型在那个像素位置处包含1个背景值)。针对其他像素(对应于掩膜S中的值1的那些像素)的计数器被设置为0(意味着那个模型在那些像素位置处没有背景值)并且针对这些像素的背景模型是未知的。这在图7中被示出为实白色区域702。

确切地,并且参照用于展示背景学习模型过程300的图5至图8,图5示出了原始帧500,图6示出了灰度级的累积8×8掩膜600,其中,所述级取决于组合的数量,其中,块的颜色越深,块活动性越小。图7示出了在应用背景阈值之后的二进制累积8×8掩膜700,其中,前景或未知区域702是白色的,而背景704是黑色的。图8展示了从图7的二进制累积8×8掩膜获得的初始背景模型800。图8中的实灰色区域802示出“未知”背景,或者换言之可能是前景。

最终,将理解的是,可以针对每个色彩分量(Y、U和V)单独地学习背景模型。这可以包括针对计算取相关像素值(Y、U或V)的差。所述结果然后实际上是有待由分割循环使用的三个学习到的背景模型。

参照图9,流程图展示了根据本公开的至少一些实现方式安排的示例过程900。通常,过程900可以提供用于视频编码的背景前景分割的计算机实现的方法,所述过程包括分割循环过程或阶段。在所展示的实现方式中,过程900可以包括如由均匀编号的一个或多个操作902至912展示的一个或多个操作、功能或动作。通过非限制性示例,在此将参照关于以上图1讨论的操作描述过程900并且可以参照以下讨论的示例系统2700来进行讨论。

在初始背景模型被建立之后,分割循环阶段使用背景模型用于分割更多的帧。按照一种形式,分割算法贯穿有待分割的所有帧进行循环。换言之,例如,分割循环使用(时间上)相邻的帧来确定背景前景阈值。在每次迭代处,帧被分割成前景/背景区域,并且背景模型被更新以供下一个帧使用。

更确切地,过程900可以包括“确定当前帧的分割阈值”902,例如,这可以由自适应分割阈值计算(ASTC)单元114执行。此操作包括自动地确定给定帧或当前帧的分割阈值。因为背景模型针对全部三个平面(Y、U和V)都被保留,所以分割阈值指三元组(TY,TU,TV)。阈值是使用基于帧大小和前25个直方图百分比以及在当前帧与前一个经处理的帧之间的绝对帧间差异的中值(其可以是紧挨着的前一个帧或由pdist分隔开的帧)的线性回归模型计算的。将理解的是,至少针对此操作,背景前景阈值在此是由背景模型单独地形成的,并且用于形成分隔掩膜,所述分割掩膜将被修改并且然后用于更新背景模型。

例如,以下等式定义了用于预测作为分割循环阶段的一部分的当前帧的分割阈值的线性回归模型。以下等式用于自动分割阈值计算(ASTC)运算:

Sy=0.0715*Dy_med+0.0442*Cy+0.0209*Hy1-0.324*Hy2

+1.7412*Hy3-1.0499*Hy4+0.7297*Hy6+0.8044*Hy9-

0.2698*Hy10-0.6283*Hy11+0.8871*Hy12-1.4504*Hy15+

1.6281*Hy16-2.3614*Hy17-2.3476*Hy18+5.4431*Hy19-

3.5625*Hy21-2.6202*Hy23+0.0101*w-0.0225*h+6.5227 (4)

Su=-0.5912*Du_med+0.1567*Cu-0.1366*Hu0-

0.3854*Hu2+1.5786*Hu4-1.9231*Hu5+0.7401*H7-

3.9316*Hu11-2.0961*Hu12+1.3948*Hu14+3.2186*Hu15-

1.4141*Hu17-2.3575*Hu18+1.7657*Hu20-1.2332*Hu21-

3.0928*Hu22+6.6386*Hu24-0.0015*w+14.656 (5)

Sv=-0.7941*Dv_med+0.0248*Hv1+0.0741*Hv2+

0.7821*Hv4+1.429*Hv8+1.6046*Hv10+1.4576*Hv11+

2.2069*Hv12-5.8848*Hv15-1.9043*Hv16+2.8021*Hv17+

2.9689*Hv18-3.8078*Hv21+2.3297*Hv22+1.6067*Hv23-

0.001*w+4.2531 (6)

其中,Dy_med、Du_med和Dv_med如所解释的是来自两个相邻的经处理的帧(它们可以是相邻的帧或者pdist分开的帧)之间的色彩分量(Y、U或V)的绝对差直方图的中值,Cu和Cy是两个相邻的经处理的帧(它们可以是相邻的帧或者pdist分开的帧)之间的其值落入第99.9个百分位中的色彩分量U或Y的显著绝对差直方图点的数量,并且Hyn、Hun、Hvn是色彩分量Y、U或V的并且在两个相邻的经处理的帧(它们可以是相邻的帧或者pdist分开的帧)之间的第n个绝对差直方图点。

最终的一组阈值Ty、Tu和Tv被计算为如下:

Ty=CLIP(Sy,3,16); (7)

Tu=CLIP(Su,3,12); (8)

Tv=CLIP(Sv,3,12), (9)

其中

并且其中,阈值Ty、Tu和Tv是有待同当前帧中的像素值与如下所述的背景模型(无论是初始学习的背景模型还是最新的背景模型)之间的差异进行比较的差异量值。通过试验和误差获得固定值3、12和16。

分割阈值然后用于通过将阈值应用于当前帧与背景模型之间的绝对帧间差异而创建二进制分割掩膜。因此,过程900还可以包括“使用背景减法和背景模型形成当前分割掩膜”904。这包括使用背景减法(BS)来通过使用在前一运算中计算的阈值使当前帧与背景模型之间的绝对帧间差异二值化而计算原始分割掩膜。此背景减法运算首先针对全部三个色彩平面Y、U和V计算当前图像帧与初始背景模型或者最近更新的背景模型之间的D绝对帧间差异。然后,获得原始分割掩膜S,如下:

其中,(x,y)是像素值、像素块或分割掩膜中的某个其他划分大小,并且其中,0指示背景,而1指示前景。

过程900还可以包括“应用形态学开闭以在分割掩膜上逐像素地调整背景或前景指示”906,并且,例如,所述过程由MOC单元120执行。将形态学开闭应用于原始分割掩膜以删除随机像素噪声并且以在分割的前景对象中创建更好的连接性。形态学开闭作为初始简单的噪声滤波被应用于原始分割掩膜,所述滤波去除了分割噪声像素形成并且闭合了在连续的、更干净的分割掩膜中产生的分割线之间的短开口。形态学闭合(膨胀后接侵蚀)首先应用于增强前景对象的连接性,并且然后形态学打开(侵蚀后接膨胀)被应用于去除初始背景噪声。形态学支持区域被设置为2×2正方形:

A B

C D

其中,膨胀和侵蚀两者都使用2×2支持区域作为2×2滑动窗,所述滑动窗以光栅扫描方式从帧的左上角至右下角逐像素地应用于二进制分割掩膜上。此操作根据正方形中的三个相邻像素更新左上的值。在2×2膨胀正方形中,如果B、C或D中任一者为1,则膨胀位A被设置为1。另一方面,在2×2侵蚀正方形中,如果B、C或D中任一者为0,则侵蚀位A被设置为0。膨胀过程填充了创建较长连续线分割边界的空穴,而侵蚀过程删除了在另外的非突变分割边界上的噪声形成。整体组合过程将附加的像素转换成在其中大多数像素为前景像素的区域中的前景像素,并且反之亦然。

过程900还可以包括“将最新暴露的背景添加至分割掩膜”908,也被称为未知背景暴露(UBU)。例如,此操作可由UBU单元124来执行。当前景移动并且暴露有待成为背景的一部分的像素位置时,可以使用此操作。确切地,初始模型经常包含从不被覆盖并且包括在前景中的区域(参见图8)。此操作围绕当前对象边界使用高级时空分析以确定较大帧间差异是否是由前景或最新暴露的背景导致的。

因此,参照图10,过程900的此UBU操作可以包括用于将最新暴露的背景添加到背景模型中的过程1000并且其如由一个或多个均匀编号的操作1002至1018所展示的包括一个或多个操作、功能或动作。

参照图11,过程1000包括“围绕当前的前景背景边界创建兴趣区域(ROI)”1002。因此,帧或分割掩膜1100具有前景1102、背景1104以及测试兴趣区域(ROI)1106,所述测试ROI在当前分割掩膜中围绕前景对象被标记。确切地,测试ROI 1106围绕由阈值到目前为止设置的背景区域1102与前景区域1104之间的边界1108延伸。例如,测试ROI 1106从包括像素或块的边界1108向内延伸,所述像素或块当前景移动时可能未被覆盖并且可能还不是背景模型的一部分。测试ROI 1106的厚度是基于帧大小或分辨率设置的。这可以是分辨率的百分比,如高、宽或帧中的像素总数。否则,所述厚度可以是到目前为止的总前景或背景的百分比。相比而言,这可以是在帧或分割掩膜中的像素的总数的百分比。

参照图12,过程1000包括“将ROI拆分为多个部分”1004。一旦ROI被标记,就使用垂直于ROI的外轮廓的线段来对其进行划分。这包括使用垂直于ROI外轮廓或边界1108的线段1202来将ROI划分为多个部分或分区1200。在一种形式中,ROI部分的数量取决于轮廓大小,并且线段画在距彼此固定距离处(并且所述距离还可以基于帧大小被预先设置)。此过程的目标是将长分段缩短为分段的较小分段,所述较小分段可以更加容易被评估、缩小了可以在其中得到潜在误差的区域。通过将ROI 1106拆分成较小的分区1200,时空分析更加容易被局部化并且消除了误差传播(例如,大大错误地声明的背景区域)。

参照图25,表2提供分割设置(并且确切地ROI大小),所述分割设置是使用实验和误差通过实验确定的。ROI的尺寸例如取决于如在表2中所示的图像高度(帧的高度)h,并且在一个示例中,不管帧的高度是高清晰度(HD)还是更大(h多于1080个像素)。划分相邻ROI部分1200的ROI分段长度是16或24个像素,ROI(沿着ROI的内部边缘)的内部宽度是26或42个像素,而ROI(沿着具有背景区域的边缘)的外部宽度是6或16个像素,其中,当h大于1080时使用更大的尺寸。所述过程等效于取轮廓并对其进行挤压直到其拟合在对象内部。

参照图13至图15,在ROI分区1200被创建之后,使用三个不同的线索来对ROI进行时空分析以“确定低能量区域是否存在于可能是未被覆盖的背景部分的ROI内”1005。通过用于确定低能量区域的一个示例操作,过程1000可以包括使用边缘检测、运动检测以及(相关Y、U、V色彩分量的)梯度检测来确定低能量区域。这可以包括“使用Canny边缘检测器来计算边缘线索”1006。使用这种Canny边缘检测器并且如在帧1400上所示(图14),可以针对帧中所有相关的像素形成边缘线索Ec(帧1400示出针对所有像素形成的Ec)。这可以针对在开始帧之后的有待分析的每个帧被执行,并可以针对帧中的ROI中的每个像素被执行。

并且,过程1000然后可以包括“使用水平梯度和垂直梯度计算梯度线索”1008。在此操作中,梯度线索Gc可以是至少针对单独的相关像素(如果不是整个帧的话)形成的,并且使用被计算作为Canny边缘检测的副产物的亮度(Y)分量中的水平梯度或垂直梯度的量值。所述梯度是针对整个帧1500示出的(图15)。

并且,过程1000然后可以包括“使用当前帧与前一帧的绝对差计算运动线索”1010。此操作使用当前帧(基础帧)与前一帧(例如,pdist分开的)的绝对差形成运动线索Mc,并且如在帧1300中所示(图13)。这可以逐像素地进行。

一旦线索被建立,过程1000可以包括“将线索融合到能量图中”1012,并且,例如,最终能量图使用归一化加权总和。这些线索用于创建最终能量图,如下:

E=0.1Ec+0.4Gc+0.5Mc (12)

其中,E是像素(或所使用的其他单元)的总能量。能量图提供具有变化活动性水平的图,并且在一种情况中逐像素地变化,从而使得低能量区域很有可能是未显露的背景。

过程1000然后可以包括“标记在每个ROI部分内的低能量区域”1014,并且然后“将强连接至背景的低能量区域分类为暴露的当前背景(UCB)”1016。因此,在每个ROI部分内的低能量区域被标记为潜在的新的暴露背景。所标记的区域的圆周、大小和形状然后被检查以确定所标记的区域与背景的连接程度。如果(a)至少1/8的区域圆周长度连接于背景,(b)区域的大小至少为16个像素,并且(c)形状复杂度为低,那么所述区域被标记为暴露的背景。如果形状周长大于1/8的形状区域,那么给定的形状被宣称是复杂的。参照图17,帧1700是用最终暴露的背景区域1702(被标记为刚好在前景外部并且沿着前景的白色边缘的灰度区域)形成的,所述背景区域是使用线索融合的能量图在ROI部分1704内部计算的。过程1000然后可以包括“根据暴露的当前背景(UCB)区域更新分割掩膜”1018,并且是通过添加这些区域作为背景的一部分。

过程900还可以包括通过去除类似噪声的对象以及通过填充包含在前景中一些小空穴而“完成分割掩膜”910。例如,这可以通过分割掩膜噪声去除(SMNR)单元124来执行。分割掩膜噪声去除包括:通过删除被水平地和垂直地扫描的2像素宽的扫描线来对分割掩膜进行平滑处理、去除完全包含在前景内的较小的隔离区域和背景区域、并且对掩膜的尖锐边缘进行平滑处理。表3(图26)示出了用于通过对前景对象轮廓进行平滑处理并删除较小的类似噪声的尖峰值和斑点而清理分割掩膜的设置。这两种设置都是基于输入视频分辨率(其中,w=帧宽,并且h=帧高)。根据帧大小(例如,以像素分辨率为单位),最小对象大小被设置并且平滑二进制滤波器长度如表3上所示。

过程900还可以包括“更新当前背景模型”912。具体地,此操作使用当前分割掩膜来更新当前背景模型。背景模型是通过将当前分割掩膜的背景像素添加到现有模型并创建运行平均值而被更新的。例如,此操作可由背景模型更新(BMU)单元126来执行。

一旦分割掩膜被完成,分割掩膜就可以被提供给编码器(或者形成预处理部分用于编码器的处理部分)。然后,如以上关于系统150所述(图31),编码器可以使用分割掩膜来修改量化参数。可以增加qp以降低背景的精度和质量,并且可以减小qp以提高前景的质量和精度。这些qp然后被传输至解码器用于重构图像。分割掩膜在这种情况下不被传输至解码器从而节省带宽。

将认识到,当期望时存在其他替代方案。因此,例如,qp可以被调整以降低前景相对于背景的图像质量或者以降低前景的一部分相对于前景和/或背景的其他部分的图像质量。同样地,qp可以被调整以提高背景相对于背景的图像质量或者背景的一部分相对于背景和/或前景的其他区域的图像质量。

针对如关于系统160(图32)所提及的面向对象的编码,背景模型学习过程300和分割循环过程900是类似的,除了在此分割掩膜是检测对象的分割图,并且过程300和900可以将各自检测的前景对象有效地处理成ROI,从而使得每个前景对象在分割循环中单独地针对形态学的、暴露的背景以及完成操作906、908和910可以是精细调谐的。然而,按照一种方法,单独的对象被分组在一起并且考虑单个前景或前景对象,而背景被考虑为背景对象,从而使得在分割图中仅存在两个对象。按照一种形式,分割图是具有至少一个前景对象和至少一个背景对象的图。

参照图18至图21,提供分割循环阶段的示例,其中,当前帧1800包括背景和前景区域两者。相应的当前背景模型1900全部被示出,其中,前景区域被去除。原始分割掩膜2000是在背景减法之后形成的,其中,去除的前景区域为白色而背景为黑色。最终分割掩膜2100是在形态学算子、未知的背景暴露以及最终分割噪声去除之后形成的。在这种情况下,注意到篮球网被从分割掩膜2100中去除,因为其在移动并因此被认为是前景。

参照图22A至图22B和图23,过程2200和2300示出可以用来执行在此描述的分割过程的操作的更多细节。过程2200描述了背景模型学习过程,而过程2300描述了分割循环过程。以下标注用于流程图内以解释过程2200和/或2300。

表4:分割系统流程图上所使用的术语,按照在图表中出现的顺序排列(图22至图23)。

根据本公开的至少部分实现方式安排示例背景模型学习过程2200。通常,过程2200提供可以在用于视频编码的背景前景分割的计算机实现的方法中使用的程序和/或算法,所述过程包括用于学习背景模型的阶段。在所展示的实现方式中,过程2200可以包括如由均匀编号的一个或多个操作2202至2256展示的一个或多个操作、功能或动作。通过非限制性示例,在此将参照关于以上图1讨论的操作、以下讨论的示例系统2800或者在此讨论的任何其他实现方式描述过程2200。

过程2200可以包括判定时间复杂度TC是否大于复杂度阈值(并且确切地在操作2202-2212中的场景动态阈值Td)。为了获得时间复杂度,使用SAD将基础帧或开始帧像素值与下一帧(其可能由pdist分隔开)进行比较,并且可以对其求平均。若是这样,那么静态stat被设置为1;否则,那么stat被设置为0。然后,针对TC,将F[sf]当前帧与F[sf+pd*4]进行比较,其中,pd是一对帧之间的图片距离,针对所述一对帧,分割掩膜被计算(从而使得ref帧列表使用被隔开距离4的帧)并且空间和时间复杂度可以如上所述被计算,并且整体复杂度取决于空间复杂度与时间复杂度以及潜在的其他因素(如帧的垂直分辨率)的组合。然后,总复杂度C可以如以上解释的被确定,并且决策树被示于表1中(图24A)。

如果场景被确定具有低复杂度2216,那么C=0,并且可以使用在距离基础帧(sr)的不同距离d处的更低数量的参考。距离d相对于针对高复杂度所使用的距离至少总体上处于更远的距离处。如以上所解释的,参考帧(距离)的数量nd=4,并且在d=[24,32,40和48]处,并且根据一个可能的示例操作2220是‘更远的参考’。如果发现高复杂度,那么C=1并且nd=5,并且距离d=[2,4,8,16,24]用于示例2218并且是‘最近的’参考帧。如上所述,参考帧的数量以至参考帧的距离可以是不同的。

然后,过程2200包括针对在所示出的八个t值(例如,1、2、3、4、5、6、8、12)处的八个活动性阈值(nt)“将缓冲区Fo初始化为0”2222,并且计数器i被设置为0,其中,计数器i对参考帧进行计数以设置哪个参考帧是与活动性阈值t进行比较的参考帧。过程2200然后包括“将Ft的每个8×8块设置为AFD(F[sf],F[sf+d[i]])的相应的平均8×8块值”2224。因此,例如,针对开始侦与同阈值t进行比较的每个参考帧之间的差异帧Ft,Ft包括每个块的平均差异值。替代性地,块中的每个像素可以被设置为块内的平均值。

然后,过程2200可以包括将计数器j设置2226为0以对阈值t进行计数,所述阈值在距离d处与每个参考帧进行比较。过程2200然后可以包括将二进制帧设置为“Clean(BIN(Ft,t[j]))”2228以针对每个块并且针对与活动性阈值t的每次比较提供二进制值。具有二进制值的帧被清除,其中,根据满水填充算法去除较小的对象。在操作2230中,块计数器k被设为0,而在操作2232中,正在被分析的块B[k]被设为帧F的第k个块。然后判定2234是否B[k]=1(或者换言之,是否块中的所有像素值都为1)。如果是,那么,过程2200包括“向Fo缓冲区的第k个块的所有像素加一”2236,以便维持对在哪个数量的参考帧组合(也被称为距离d)中是活动的哪些块(或像素)的计数以及活动性阈值t。如以上所解释的,利用5个参考帧和8个活动性阈值,存在40种可能的组合。缓冲区Fo记录在0到40中组合中有多少块是活动的。例如,块可以在10种组合或32种组合(仅举几例)中是活动的。Fo将维持计数以确定跨所有参考和阈值t在10种组合或32种组合中有多少块(或像素)是活动的。这些总数将成为累积分割掩膜。

过程2200然后继续为块计数k加一以便分析下一个块(2238)。替代性地,如果块B[k]在操作2236处具有0,那么其为非活动的,并且过程不为缓冲区计数进行加法运算并且直接行进至下一个块(2238)。然后判定2240是否B[k]为最后一个块。若否,过程循环以分析下一个块。若是,过程通过为活动性阈值计数加一而继续以将基础帧(sf)与参考帧(sf+d[i])之间的差异与下一个活动性阈值t进行比较(2242)。因此,判定2244是否j≥nt(最后一个活动性阈值t)。若否,过程循环返回以形成帧Fs并且利用下一个活动性阈值t执行分析。若是,过程2200通过为参考帧计数i加一而继续(2246)以分析与在d[i]处的下一个参考帧的比较。首先判定是否i≥nd(最后一个参考帧距离)2248。若否,过程循环返回至形成帧Ft从而执行对下一个帧的分析。若是,过程2200继续确定背景阈值。

通过所展示的示例,并且如之前所解释的,过程2200可以使用缓冲区Fo中的总值(或累积分割掩膜)的直方图。因此,过程2200可以继续使得“p=HIST(Fo)中的第1最大峰值且q=HIST(Fo)中的第2最大峰值”2250并且然后“Ta=p与q之间的最小值HIST(Fo)”2252。例如,第2峰值不可以与第1峰值相邻或者在距离第1峰值的某个其他距离内。如以上关于图4的直方图所解释的,Ta是设置在最小或谷值累积分割掩膜值或者在这些峰值或最大值之间的总数处的背景阈值。

然后,为了建立初始背景模型,过程2200可以继续“从集合t中找到t_min,并且从集合d中找到d_min,针对t_min和d_min,BIN(Fo,Ta)和BIN(AFD(F[sf],F[sf+d_min]),t_min)具有最小绝对差之和(SAD)误差”2254。因此,这个操作提供了来自缓冲区Fo并且使用背景阈值Ta的二值化分割帧或分割图(从而使得例如0为背景且1为前景),并且将此分割掩膜与通过将基础帧与参考帧之间的差异与活动性阈值t进行比较形成的二值化分割掩膜进行比较。按照一种形式,从最低值开始并且走完通过所述集合至最大值来对参考帧和活动性阈值进行测试。最接近的(最小差或SAD)组合被设置为初始背景模型。当背景模型到目前为止是基于块准确度时,可以如以上关于过程300所解释的通过确定最小误差来将背景模型转换成像素准确分割掩膜。

按照一种方法,过程2200还可以包括用于清理初始背景模型的形态学操作。如以上关于过程900所描述的,这可以包括由具有2×2正方形支撑区域的形态学开(侵蚀后接膨胀)跟随的形态学闭(膨胀后接侵蚀)。一旦完成,初始背景模型就可以被提供给分割循环单元104。

根据本公开的至少部分实现方式安排示例分割循环过程2300。通常,过程2300提供可以在用于视频编码的背景前景分割的计算机实现的方法中使用的算法,所述过程包括用于为序列中的多个帧提供背景模型的分割循环阶段。在所展示的实现方式中,过程2300可以包括如由均匀编号的一个或多个操作2302至2324展示的一个或多个操作、功能或动作。通过非限制性示例,在此将参照关于以上图1讨论的操作、以下讨论的示例系统2800或者在此讨论的任何其他实现方式描述过程2300。

过程2300可以包括“使用学习背景阶段方法提供初始背景模型B”2302并且如上所述。过程还可以使用由其他过程提供的背景模型。过程2300然后可以包括将计数器i设置为0(操作2304)以对被分析的输入序列中的帧数量进行计数。‘i’在此不同于在过程2200中用于指示哪个参考帧被分析的计数器i。过程2300然后可以包括“使用线性回归模型从F[0]的统计数值中计算分割阈值Ts”2306。如上所解释的,可以形成三种模型,每种模型针对一个色彩分量(Y,U,V),并且可以是基于与初始背景模型分开的序列中的一对帧(由pdist(距离)分开)之间的差异。

过程2300然后可以包括将初始背景模型从当前帧中减去而执行背景减法以及通过对所述结果进行二值化而将所述差与帧阈值Ts进行比较。过程2300然后可以包括将形态学(操作2308)应用于所产生的二进制帧或者当前分割掩膜,并且以与以上针对过程300和900描述的相同的方式清理帧。

一旦完成此操作,过程2300就可以包括将新暴露的背景添加至当前分割掩膜。这包括确定兴趣区域(ROI)的哪个区域是可能为背景的低能量区域。因此,过程2300可以包括确定(2310)Fe边缘能量、Fg梯度能量以及Fm运动能量,其中,梯度是针对有待显影的背景的亮度/明度(Y)计算的,以上描述了全部三者(尽管是作为线索Ec、Gc和Mc)。能量按照加权公式被融合2312到总能量E中:

E=0.5Fm+0.4Fg+0.1Fe (13)

例如2312(并且与以上等式(12)相同)。ROI是通过用于“将ROI标记为围绕被拆分为等距部分的Fseg[i]的前景对象的边界。”的操作形成的2314。如以上所解释的,所述距离可以是分辨率相关的。然后,“通过去除包含低能量像素的ROI来更新Fseg[i]”2316,并且在一种情况中,像素小于近似delta=0.035,并且在其他示例中,像素小于delta=0.03或delta=0.04,或者其他值。

过程2300然后可以包括完成当前分割掩膜,如通过将其清除以去除较小对象(2318)。这可以由众所周知的被描述为满水填充的过程执行。然后,过程2300可以“用Fseg[i]的背景更新背景模型B”2320,并且如以上关于过程900所描述的。计数器i然后可以增加1(操作2322),并且可以判定是否i=帧数量(nof),或者换言之,i是否是输入序列中的最后一帧2324。若否,那么过程循环返回至确定当前帧i的新阈值Ts,并且若是,那么过程结束并且提供更新的背景模型用于对视频序列进行进一步编码处理。当呈现新的输入序列时,从形成初始背景模型重新开始所述过程。

现在参照图27,系统2800可以用于在操作中所示的并且根据本公开的至少一些实现方式安排的示例背景前景分割过程2700。在所展示的实现方式中,过程2700可以包括如由均匀编号的一个或多个动作2702至2726展示的并且替代性地或以任何组合使用的一个或多个操作、功能或动作。通过非限制性示例,在此将参照关于在此描述的任何实现方式来描述过程2700。

在所展示的实现方式中,系统2800可以包括处理单元2820,所述处理单元具有逻辑单元胡逻辑电路或模块2850等等和/或其组合。例如,逻辑电路或模块2850可以包括视频编码器2852和/或视频解码器2854。编码器2852或2854中任一者或两者可以包括具有背景模型学习单元102和分割循环单元104的分割系统100。如图28所示,尽管系统2800可以包括与特定的模块相关联的一组特定的操作或动作,这些操作或动作可以与同在此展示的特定模块不同的模块相关联。

过程2700可以包括“接收视频序列的输入视频帧”2702,其中,系统可以获得对将被分析的视频或图片帧的像素数据的访问。所述数据可以从RAM或ROM,或者从另一个永久性或暂时性存储器、存储器驱动或库中获得或读取。所述访问例如可以是用于分析进行中的视频流的连续访问。

过程2700可以包括“确定场景的学习速率”2704。如以上所解释的,这可以包括确定在输入序列中并且基于帧的复杂度使用哪一组参考帧。具体地,如在决策树(表1,图24A)上所示的,时间和空间复杂度以及帧大小可以用于确定总(高或低)复杂度。

过程2700可以包括“形成指示在场景的至少一部分中的像素或像素块的活动性的累积分割掩膜”2706。这包括:使用多个活动性阈值、将阈值同基础帧与多个参考帧之间的差异量值进行比较、并且然后对结果进行二值化。

过程2700可以包括“确定场景的至少一个背景阈值”2708。这在上面也被解释了并且包括使用两个最大至累积分割掩膜之间的最小值,其中,每个掩膜是块或像素的总数,所述块或像素在相同数量的组合(参考帧活动性阈值组合)中是活动的。

过程2700可以包括“确定在块内具有像素准确分割的背景模型”2710。这可以包括通过选择最接近(最小SAD)于应用于如在以上实现方式中所描述的累积分割掩膜的帧的背景阈值的组合而首先形成初始背景模型。然后,可以通过使用如上所述的误差最小化等式将基于块的模型转换成像素准确模型。

过程2700可以包括“提供初始背景模型”2711,并且这可以简单地包括准许分割循环单元访问初始背景模型。

过程2700可以包括“确定当前帧的分割阈值”2712。具体地,这可以包括沿着视频序列或输入序列中的场景使用间隔开的帧来确定基于线性回归的与初始背景模型分开的帧的阈值。

过程2700可以包括“使用背景减法和背景模型形成当前分割掩膜”2714。因此,可以通过将当前阈值同背景模型与当前帧之间的差异进行比较而形成当前分割掩膜。过程2700然后可以包括“应用形态学开闭以逐像素地调整背景或前景指示”2716,并且使用如在此描述的支持结构。

过程2700可以包括“将最新暴露的背景添加至分割掩膜”2718,并且通过设置并划分ROI,使用边缘、梯度和运动线索来确定ROI的哪个部分具有低能量,并且然后将这些部分从前景区域中去除,并将它们添加大背景中。

过程2700可以包括通过去除噪声等等“完成分割掩膜”2720,并且然后过程2700可以包括“更新当前背景模型”2722,并且具有完成的当前分割掩膜。此后,过程2700可以包括“针对多个帧进行重复直到输入序列结束”2724,并且在这种情况中,过程循环返回至操作2712以确定新帧的新阈值直到输入序列完成。例如,输入序列可以小于分割掩膜计算所使用的两个间隔开的帧(pd分开的)之间的所有帧,并且在一种情况下可以是视频序列的这一部分的开始部分,并且例如是在基础帧或开始帧之后的或者在视频序列中国的第一帧之后的前25个帧。过程2700可以包括“提供背景模型用于进一步编码”2726。

通常,可以根据需要串行地或并行地将过程2700重复任意次数。此外,通常,逻辑单元或逻辑模块(如单元102和104)可以至少部分地由硬件、软件、固件或其任意组合来实现。如所示,在一些实现方式中,模块102/104可以经由(多个)处理器2803来实现。在其他实现方式中,模块102/104可以经由硬件或软件来实现,所述硬件或软件经由一个或多个中央处理单元来实现。通常,可以在系统级别处启用在此描述的模块102/104和/或操作。然而,用于控制所使用的压缩方案的类型或压缩比的一些部件可以例如在用户级别处被提供或被调整。

虽然示例过程200、300、900、2200、2300或2700的实现方式可以包括按所展示的顺序执行所有示出的操作,但是本公开不局限在这个方面并且在各个示例中,本文的任何过程的实现方式可以包括仅执行所示的操作的子集和/或以不同于所展示的顺序执行。

在实现方式中,在此描述的特征可以响应于由一个或多个计算机程序产品提供的指令而被采取。这样的程序产品可以包括提供当由例如处理器执行时可以提供此处所描述的功能的指令的承载信号的介质。计算机程序产品可以由一个或多个机器可读介质的任意形式提供。因此,例如,包括一个或多个处理器核的处理器可以响应于由一个或多个机器可读介质传达给处理器的程序编码和/或一个或多个指令集采取在此描述的一个或多个特征。通常,机器可读介质可以以程序编码和/或一个或多个指令集的形式传达软件,这些程序编码和指令集可以引起在此描述的设备和/或系统中的任意一者实现在此描述的特征的至少多个部分。如之前所述,在另一种形式中,非瞬态制品(如非瞬态计算机可读介质)可以与以上所述示例或其他示例中的任何示例一起使用,只是其不包括瞬态信号自身。非瞬态制品却包括除了信号自身之外的可以暂时以“非瞬态”形式(如RAM等)保持数据的那些元素。

如在此处所描述的任何实现方式中所使用的,术语“模块”指被配置成用于提供此处所描述的功能的软件逻辑、固件逻辑和/或硬件逻辑和的任何组合。软件可以体现为软件包、代码和/或指令集或指令,并且如在本文描述的任意实施方式中使用的“硬件”可以包括,例如单独的或其任意组合的硬连线电路、可编程电路、状态机电路和/或由可编程电路执行的存储指令的固件。这些模块可以统一地或单独地具体化为形成例如,集成电路(IC)、片上系统(SoC)等的较大系统的一部分的电路。例如,模块可以被嵌入逻辑电路中以经由在此讨论的编码系统的软件、固件或硬件来实现。

如在此处所描述的任何实现方式中所使用的,术语“逻辑单元”指被配置成用于提供此处所描述的功能的固件逻辑和/或硬件逻辑和的任何组合。如在此处描述的任何实现方式中所使用的,“硬件”可以单独地或以任何组合包括,例如,硬连线电路、可编程电路、状态机电路和/或存储被可编程电路执行的指令的固件。逻辑单元可以统一地或单独地具体化为形成例如,集成电路(IC)、片上系统(SoC)等的较大系统的一部分的电路。例如,逻辑单元可以被嵌入逻辑电路中以经由在此讨论的编码系统的固件或硬件来实现。本领域的普通技术人员将认识到,由硬件和/或软件执行的操作可以替代性地经由软件来实现,所述软件可以体现为软件包、代码和/或指令集或者多条指令,并且还认识到逻辑单元还可以利用软件的一部分来实现其功能。

参照图28,可以根据本公开的至少一些实现方式来安排用于提供视频序列的帧的背景前景分割的示例视频编码系统2800。在所展示的实现方式中,系统2800可以包括一个或多个中央处理单元或处理器2803、显示设备2805以及一个或多个存储器存储设备2804。中央处理单元2803、存储器存储设备2804和/或显示设备2805可以能够经由例如总线、线或其他访问与彼此进行通信。在各实现方式中,显示设备2805可以并入系统2800或者与系统2800单独地实现。

如图28中所示,并且如上所讨论的,处理单元2820可以具有逻辑电路2850,所述逻辑电路具有编码器2852和/或解码器2854。编码器中的任一者或两者可以具有背景前景分割系统100,所述背景前景分割系统具有用于提供在此描述的并且如用在此描述的过程所解释的许多功能的背景模型学习单元102和/或分割循环单元104。

如将认识到的,在图28中所展示的模块可以包括各种软件和/或硬件模块和/或可以经由软件或硬件或其组合实现的模块。例如,模块可以经由处理单元2820被实现为软件或者模块可以经由专用硬件部分被实现。此外,所示出的存储器存储设备2804可以例如与处理单元2820共享存储器。分割掩码数据可以被存储在上述任意选项上,或者可以被存储在这些选项的组合上,或者可以被存储在其他地方。并且,系统2800可以以各种各样的方式被实现。例如,系统2800(排除显示设备2805)可以被实现为具有图形处理器、四核中央处理单元和/或存储器控制器输入/输出(I/O)模块的单芯片或设备。在其他示例中,系统2800(再次排除显示设备2805)可以被实现为芯片组。

中央处理单元2803可以包括任何适当的实现方式,例如包括:(多个)微处理器、多核处理器、应用专用集成电路、(多个)芯片、芯片组、可编程逻辑设备、图形卡、集成图形、(多个)通用图形处理单元等。此外,存储器存储2804可以是任意类型的存储器,如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等等。在非限制性示例中,存储器存储2804还可以由缓存存储器实现。在各示例中,系统2800可以被实现为芯片组或片上系统。

参照图29,根据本公开以及各实现方式的示例系统2900可以是介质系统,尽管系统2900不局限于此上下文中。例如,系统2900可以并入个人计算机(PC)、膝上计算机、超级膝上计算机、平板机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等。

在各实现方式中,系统2900包括通信地耦合到显示器2920的平台2902。平台2902可以接收来自内容设备的内容,如(多个)内容服务设备2930或(多个)内容传递设备2940或者其他类似内容源。包括一个或多个导航特征的导航控制器2950可以用来例如与平台2902和/或显示器2920交互。以下将更详细地描述这些组件中的每个组件。

在各实施例中,平台2902可以包括芯片组2905、处理器2910、存储器2912、存储设备2914、图形子系统2915、应用2916和/或无线电2918的任意组合。芯片组2905可以在处理器2910、存储器2912、存储设备2914、图形子系统2915、应用2916和/或无线电2918之中提供相互通信。例如,芯片组2905可以包括能够提供与存储设备2914的相互通信的存储器适配器(未描绘)。

处理器2910可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(CPU)。在各实现方式中,处理器2910可以是(多个)双核处理器、(多个)双核移动处理器等。

存储器2912可以被实现为易失性存储设备,如但不限于随机存取存储器(RAM)、动态随机存储器(DRAM)或静态RAM(SRAM)。

存储设备2914可以被实现为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池应急SDRAM(同步DRAM)和/或可接入网络的存储设备。在各实现方式中,存储设备2914可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。

图形子系统2915可以对如用于显示的静态或视频图像执行处理。例如,图形子系统2915可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口来通信地耦合图形子系统2915与显示器2920。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或符合无线HD的技术中的任何一个接口。图形子系统2915可以集成到处理器电路2910或芯片组2905中。在一些实现方式中,图形子系统2915可以是通信地耦合至芯片组2905的独立卡。

在此描述的图形和/或视频处理技术可以用各种硬件架构实现。例如,图形和/或视频功能可以被集成到芯片组中。替代性地,可以使用分立的图形和/或视频处理器。如又另一种实现方式,图形和/或视频功能可以由通用处理器(包括多核处理器)来提供。在其他实现方式中,所述功能可以在消费电子设备中实现。

无线电2918可以包括能够使用各种适当的无线通信技术发射并接收信号的一个或多个无线电。这种技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个人局域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这类网络通信时,无线电2918可以根据任意版本的一个或多个可适用标准进行操作。

在各实现方式中,显示器2920可以包括任何电视机类型监测器或显示器。显示器2920可以包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机类型的设备和/或电视机。显示器2920可以是数字的和/或模拟的。在各实现方式中,显示器2920可以是全息显示器。并且,显示器2920可以是可以接收视觉投影的透明表面。这种投影可以传达各种形式的信息、图像和/或物体。例如,这种投影可以是针对移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用2916的控制下,平台2902可以在显示器2920上显示用户界面2922。

在各实现方式中,(多个)内容服务设备2930可以发起于任意国家的、国际的和/或独立的服务,并因此例如经由互联网可接入平台2902。(多个)内容服务设备2930可以耦合到平台2902和/或显示器2920。平台2902和/或(多个)内容服务设备2930可以耦合到网络2960以将媒体信息传达至网络2960或从网络2960接收(例如,发送和/或接收)。(多个)内容传递设备2940也可以耦合到平台2902和/或显示器2920。

在各实现方式中,(多个)内容服务设备2930可以包括有线电视盒、个人电脑、网络、电话、能够传递数字信息和/或内容的启用互联网的设备或应用程序、以及能够在内容提供者与平台2902和/或显示器2920之间经由网络2960或直接地单向或双向传达内容的任意其他类似设备。将理解,内容可以经由网络2960单向地和/或双向地来往于系统2900中的任何一个组件与内容提供者之间进行通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

(多个)内容服务设备2930可以接收如包含媒体信息、数字信息和/或其他内容的有线电视节目的内容。内容提供方的示例可以包括任何有线或卫星电视或无线电或互联网内容提供方。所提供的示例不旨在以任何方式限制根据本公开的实现方式。

在各实现方式中,平台2902可以从具有一个或多个导航特征的导航控制器2950中接收控制信号。控制器2950的导航特征可以用来例如与用户界面2922交互。在实现方式中,导航控制器2950可以是定位设备,所述定位设备可以是允许用户输入空间(如连续的和多维的)数据到计算机的计算机硬件组件(特别是人机接口设备)。如图形用户界面(GUI)和电视机和监视器的许多系统允许用户使用物理姿势控制计算机或电视机并向计算机或电视机提供数据。

可以通过指针、光标、聚焦环或在显示器上显示的其他视觉指示符的移动在显示器(例如,显示器2920)上复制控制器2950的导航特征的移动。例如,在软件应用2916的控制下,位于导航控制器2950上的导航特征可以例如被映射为在用户界面2922上显示的虚拟导航特征。在实现方式中,控制器2950可以不是独立组件但可以集成在平台2902和/或显示器2920内。然而,本公开不限于这些元素或此处显示或描述的内容。

在各实现方式中,驱动器(未示出)可以包括使用户能够通过例如在初始启动后启动的按钮的触摸立刻打开和关闭类似电视机的平台2902的技术。当平台被“关闭”时,程序逻辑可以允许平台2902流出内容到媒体适配器或其他(多个)内容服务设备2930或(多个)内容传递设备2940。此外,芯片组2905可以例如包括用于支持如7.1环绕声音频和/或高清(7.1)环绕声音频的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在实现方式中,图形驱动器可以包括外围组件互连(PCI)快速图形卡。

在各实现方式中,可以对系统2900中示出的任何一个或多个组件进行集成。例如,平台2902和(多个)内容服务设备2930可以是集成的,或者平台2902和(多个)内容传递设备2940可以是集成的,或者平台2902、(多个)内容服务设备2930和(多个)内容传递设备2940可以例如是集成的。在各实现方式中,平台2902和显示器2920可以是集成单元。例如,显示器2920和(多个)内容服务设备2930可以是集成的,或者显示器2920和(多个)内容传递设备2940可以是集成的。这些示例并不意在限制本公开。

在各实现方式中,系统2900可以被实现为无线系统、有线系统或二者的组合。当被实现为无线系统时,系统2900可以包括适合于通过如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑等的无线共享介质进行通信的组件和接口。无线共享介质的示例可以包括无线频谱部分,如RF频谱等。当被实现为有线系统时,系统2900可以包括适用于通过有线通信介质(如输入/输出(I/O)适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等)进行通信的组件和接口。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。

平台2902可以建立一个或多个逻辑或物理信道以传达信息。所述信息可以包括媒体信息和控制信息。媒体信息可以指表示为用户准备的内容的任何数据。例如,内容的示例可以包括来自语音对话、视频会议、流媒体视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文字等的数据。例如,来自语音对话的数据可以是语音信息、沉默时段、背景噪音、舒适噪音、声调等。控制信息可以是指表示针对自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于将媒体信息路由通过系统或指示节点以预定方式处理媒体信息。然而,各实现方式不限于图29中示出或描述的元素或上下文。

如上所述,系统2800或2900可以用变化的物理风格或形成因子来实现。图30展示了可以用其实现系统3000的小形成因数设备2800或2900的实现方式。例如,在实现方式中,设备3000可以被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源(如一个或多个电池)的任何设备。

如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上计算机、超级膝上计算机、平板机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等。

移动计算设备的示例还可以包括被安排来由人穿戴的计算机,如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机以及其他可穿戴计算机。在各实现方式中,例如移动计算设备可以实现为能够执行计算机应用程序、以及语音通信和/或数据通信的智能电话。举例来讲,尽管一些实现方式可以用被实现为智能电话的移动计算设备描述,可以理解的是,其他实现方式也可以使用其他无线移动计算设备实现。实现方式并不局限于本上下文中。

如图30中所示,设备3000可以包括外壳3002、显示器3004、输入/输出(I/O)设备3006和天线3008。设备3000还可以包括导航特征3012。显示器3004可以包括适合于移动计算设备的用于显示信息的任何适当的显示单元。I/O设备3006可以包括用于将信息输入移动计算设备中的任何适当的I/O设备。I/O设备3006的示例可以包括字母数字键盘、数字小键盘、触摸板、输入建、按钮、开关、摇杆式开关、麦克风、扬声器、话音识别设备和软件等。信息也可以通过麦克风(未示出)输入到设备3000中。这种信息可以由话音识别设备(未示出)数字化。实现方式并不局限于本上下文中。

可以使用硬件元件、软件元件、或两者的组合来实现各实现方式。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。判定是否使用硬件元件和/或软件元件来实现实现方式可以根据多个因数而变化,如预期的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。

可以由机器可读介质上所存储的表属性指令实现以上描述的一个或多个方面,所述指令代表处理器内的各种逻辑,当被机器读取时所述指令致使所述机器制作用于实现在此所描述的技术的逻辑。此类表示(称为“IP核”)可以被存储在有形的机器可读介质上并提供给各顾客或制造设施以加载至实际制作所述逻辑或处理器的制作机器中。

虽然已经参照各实现方式描述了在此阐述的某些特征,并不打算在限制性意义上解释本说明书。因此,本公开涉及的对本领域技术人员而言明显的对在此描述的实现方式以及其他实现方式的各种修改被视为是在本公开的精神和范围内。

下面的示例涉及附加的实现方式。

一种用于背景前景分割的计算机实现的方法包括:学习基础帧的背景模型,包括:对所述基础帧与形成场景的视频序列的多个参考帧中的每个参考帧之间的帧间差异量值进行累加;以及将单独的差异量值与多个活动性阈值进行比较,以确定与所述差异量值相关联的像素或像素块是活动的还是非活动的。所述方法还包括:形成多个累积分割掩膜,所述多个累积分割掩膜各自是具有相同的帧参考活动性阈值组合总数量的像素或像素块的量,在所述帧参考活动性阈值组合中所述像素或像素块是活动的;以及通过使用所述累积分割掩膜确定用于将所述块或像素分配给所述基础帧的背景或前景的所述背景阈值。

通过其他途径,所述方法包括:根据所述场景的复杂度确定所述场景的学习速率并且用于选择所述多个参考帧;选择所述多个参考帧,至少大体上所述多个参考帧沿着所述视频序列距离所述基础帧越远则所述场景越不复杂;其中,存在针对每个定义的复杂度水平所选的四或五个参考帧以及八个活动性阈值;其中,确定所述背景阈值包括:沿着按照活动组合的数量对所述累积分割掩膜的数值排序将两个最大累积分割掩膜之间的最小累积分割掩膜选择作为所述背景阈值;其中,确定所述背景阈值包括:使用直方图来观察作为所述直方图上的峰值的所述最大累积分割掩膜以及作为所述直方图上的所述峰值之间的最低谷值的所述最小累积分割掩膜;其中,具有高于所述背景阈值的累积分割掩膜总数的块是前景块,而具有低于所述背景阈值的累积分割掩膜总数的块是背景块;以及确定对帧的像素准确分割包括寻找以下两者之间的最小差异:(1)基于所述累积分割掩膜值和所述背景阈值的二值化帧,以及(2)使用所述组合之一而被二值化的所述帧。

一种用于视频编码的背景前景分割的方法,包括:学习背景模型;从所述背景模型中单独地确定当前帧的背景前景分割阈值;通过将所述分割阈值同所述当前帧与所述背景模型之间的差异进行比较来形成当前分割掩膜;应用形态学开闭以在所述分割掩膜上调整像素或块的背景或前景分配;确定新暴露背景;用所述新暴露背景更新所述分割掩膜;以及用所述新暴露背景更新所述背景模型。

通过针对此方法的其他途径,确定所述背景前景分割阈值包括:进行线性回归;其中,所述当前分割掩膜采用二值化形式;所述方法包括:更新所述分割掩膜,包括使用恢复的背景来修改所述分割掩膜;以及通过去除尖峰和斑点来清理所述分割掩膜以形成最终的分割掩膜;其中,更新所述背景模型包括以下各项之一:更新所述背景中的像素计数以及更新与每个背景像素位置相关联的平均像素值;以及将所述当前分割掩膜的背景像素添加到所述现有背景模型并创建运行平均值;其中,应用形态学开闭包括:使用2×2支持区域作为滑动窗,以及在背景与前景之间改变所述支持区域中的所述位置之一并且取决于在所述支持区域中在至少一个其他位置处的所述背景或前景分配;其中,确定新暴露背景包括:围绕将ROI拆分成多个部分的所述当前前景背景边界创建兴趣区域(ROI);标记在所述ROI部分内部的低能量区域;以及对与背景相关联的低能量进行分类;其中,标记低能量区域包括形成能量图,包括:计算边缘线索;计算梯度线索;计算运动线索;以及将所述线索融合到所述能量图中。

所述方法还包括:使用Canny边缘检测器计算边缘线索;使用水平梯度和垂直梯度的量值来计算梯度线索;以及使用所述当前帧与前一帧的绝对差来计算运动线索;在使用所述分割掩膜来更新所述背景模型之前完成所述分割掩膜,所述完成至少包括通过删除被水平地和垂直地扫描的2像素宽的扫描线来对所述分割掩膜进行平滑处理;其中,所述分割掩膜为以下各项之一:包括背景区域和前景区域的分割掩膜、以及至少一个前景对象和至少一个背景对象的分割图;所述方法包括:改变在帧的所述背景或前景中的背景或前景兴趣区域(ROI)的编码质量或者在所述视频序列的帧内的前景对象或背景对象的编码质量,并且通过以下各项中的至少一项进行编码:基于标准的非可缩放编码器,所述非可缩放编码器使用以下标准中的至少一项:H.264标准,HEVC标准;可缩放编码器,所述可缩放编码器使用以下标准中的至少一项:SVC标准,SHVC标准;非标准编码器,所述非标准编码器使用以下标准中的至少一项:VP8,VP9;其中,改变编码质量包括以下各项之一:(1),改变前景区域或前景对象的编码质量包括:通过在视频编码过程中使用与用于所述帧的其他区域的量化参数(qp)相比而言较低的qp来对形成所述前景区域或对象的块进行变换编码从而提高所述前景区域或对象的编码质量;(2),改变背景区域或背景对象的编码质量包括:通过在视频编码过程中使用与用于所述帧的其他区域的量化参数(qp)相比而言较高的qp来对形成所述背景区域或对象的块进行变换编码从而降低所述背景区域或对象的编码质量;以及(3),(1)和(2)两者,以及(4),改变背景区域或背景对象的编码质量包括:通过在视频编码过程中使用与用于所述帧的其他区域的量化参数(qp)相比而言较低的qp来对形成所述背景区域或对象的块进行变换编码从而提高所述背景区域或对象的编码质量;其中,学习所述背景模型包括:对基础帧与形成场景的视频序列的多个参考帧中的每个参考帧之间的帧间差异量值进行累加;将单独的差异量值与多个活动性阈值进行比较,以确定与所述差异量值相关联的像素或像素块是活动的还是非活动的;形成多个累积分割掩膜,所述多个累积分割掩膜各自是具有相同的帧参考活动性阈值组合总数量的像素或像素块的量,在所述帧参考活动性阈值组合中所述像素或像素块是活动的;以及通过使用所述累积分割掩膜确定用于将所述块或像素分配给所述基础帧的背景或前景的所述背景阈值。

在另一个示例中,至少一种机器可读介质可以包括多条指令,所述指令响应于在计算设备上被执行而使所述计算设备执行根据以上示例中的任一个示例的方法。

在又另一个示例中,一种装置可以包括:用于执行根据以上示例中的任一个示例的方法的装置。

以上示例可以包括特征的特定组合。然而,以上示例不局限于这个方面,并且在各实现方式中,以上示例可以包括仅采取这类特征的子集、采取这类特征的不同顺序、采取这类特征的不同组合和/或采取除了明确例举的那些特征之外的附加特征。例如,关于示例方法所描述的所有特征可以关于示例装置、示例系统和/或示例制品被实现,并且反之亦然。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1