用于利用前景对象分割的噪声过滤的视频编码的方法和系统的制作方法

文档序号:6498222阅读:229来源:国知局
用于利用前景对象分割的噪声过滤的视频编码的方法和系统的制作方法
【专利摘要】本文讨论一种用于提供例如通过低带宽连接编码并且传送高清晰度视频的技术。具体地,前景对象被识别为与由多个视频帧表示的场景的背景不同。在识别前景对象中,区分语义重要和语义不重要的移动(例如,非重复性对重复性移动)。例如,小的并且重复性的树的叶子的摇摆运动可以被确定为语义不重要并且属于场景的背景。前景对象和背景的处理以不同更新速率或者频率进行。例如,前景对象可以每秒被更新30或60次。相比之下,背景不那么频繁地被更新,例如每1秒或者10秒一次。在一些实现方式中,如果没有识别出前景对象,则不传送实况视频(例如,如果没有检测到运动,则不将静态图像配置为被重复发送)。本文讨论的技术利用以下认识:在监视和无线通信领域中,以高帧速率更新语义重要的移动的视频是足够的。
【专利说明】用于利用前景对象分割的噪声过滤的视频编码的方法和系统
[0001]相关申请
[0002]本申请是2011年12月29日提交的USSN 13/340, 564的继续并且要求其优先权,通过引用的方式于此并入其全部教导。
[0003]本申请还涉及两个2010年12月30日提交的USSN 12/982,601和12/982,602,通过引用的方式于此并入其全部教导。

【背景技术】
[0004]近年来,高清晰度(HD)视频技术的使用成指数增长,并且扩展到很多不同领域。例如,现在常规以高清晰度呈现很多电影、电视节目和在线视频流。HD视频技术也日益增长地用在监视和无线通信领域中。例如,HD照相机可以提供高度详细的视频流,并且使得能够有效监控例如工业区的远程站点。
[0005]用于监视的HD视频和无线通信应用使用大量带宽。然而,一些远程站点可以至多可靠地传递128kbps的带宽。这种带宽容量可以使得传递高质量视频流几乎不可能。
[0006]为了帮助便于使用HD视频,存在很多视频压缩方案(例如,MPEG-1/2, MPEG-4和
H.264)以减小原始高清晰度视频的大小。
[0007]通常,低带宽和高分辨率在视频编码和传输领域相互矛盾。可以利用其中仅以高帧或者更新速率编码并且传送移动对象的基于对象的编码以节省带宽。然而,难于识别潜在或者候选对象是场景的背景中的真实对象还是噪声。因此,已经存在对于提供用于有效地识别噪声和编码视频背景的方法和系统的需要。


【发明内容】

[0008]视频编码的方法的示例包括:接收具有多个像素的视频图像;对于图像中的多个像素中的每个像素选择多个高斯模型;基于像素最佳拟合的模型的概率将每个像素分类为背景像素或者前景像素;将图像划分为M X M个像素块;对于每个块比较当前帧中的运动像素和先前帧中的运动像素,以确定具有运动改变的像素数量是否大于第一阈值;如果具有运动改变的像素数量大于第一阈值,则触发块的计数器;确定在第一预定时间段内计数器中的累积计数是否大于第二阈值;如果在第一预定时间段内计数器中的累积计数大于第二阈值,则忽略块中的所有运动;跟踪图像中的对象;通过检测在第二预定时间段内对象是否总是在预定距离内移动并且频繁改变移动方向,确定对象是否总是局部移动;如果确定步骤确定对象总是局部移动,则将该对象从作为对象的分类中去除;如果确定步骤确定对象总是局部移动并且将对象在其内移动的区域标记为噪声掩蔽缓冲器上的噪声区域,则忽略对象的运动;基于运动检测和噪声过滤更新背景模型;更新当前背景图像;更新演进背景图像;以及编码用于传送的当前背景图像、背景更新块和对象。
[0009]这种方法的实现方式可以包括以下特征中的一个或者多个。该方法还包括以下步骤:创建队列,以在队列中缓冲多个条目,包括需要被更新的对象、背景块和图像;向队列中的条目提供帧和对象标识符;确定对象是否是真实对象;确定对象是否在大于第三预定时间段的时间段内在队列中;以及如果对象没有被识别为真实对象并且已经确定对象在大于第三预定时间段的时间段内在队列中,则从缓冲器中去除该对象。其中接收具有多个像素的视频图像的步骤包括:接收由观看场景的照相机捕捉的视频图像,并且该方法还包括以下步骤:确定对象是否移动到场景中并且在场景中停止,并且如果确定对象是否移动到场景中并且在场景中停止的步骤确定第一对象移动到场景中并且停止,则更新场景的背景模型并且将第一对象编码为背景。该方法还包括以下步骤:将当前背景图像建立为用于编码和解码的参考图像;建立演进背景图像;利用检测到的静止图像更新当前背景图像;基于运动检测利用接收到的图像更新演进背景图像;以及利用演进背景图像取代当前背景图像。该方法还包括以下步骤:使用每个高斯模型的长期计数器,以确定当前像素是否是前景像素;使用每个高斯模型的短期计数器,以确定哪个高斯模型用于当前背景图像的像素;如果像素被检测为背景像素,则利用移动平均法更新对应演进背景模型;如果对象被检测为静止对象,则将当前帧中的区域中的像素更新到当前背景图像和演进背景图像中;如果对象被检测为静止对象,则最大化与当前帧的区域中的像素对应的高斯模型的短期计数器并且更新长期计数器,以确保该像素将被分类为背景像素;并且如果像素被检测为背景像素并且该像素的背景模型与先前帧中的像素不同,则更新当前和演进背景图像二者的像素,并且编码和传送更新后的当前背景像素。编码用于传送的当前背景图像、背景更新块和对象的步骤包括:使用当前背景图像和先前解码帧作为潜在参考图像。
[0010]用于视频编码的系统的示例包括:处理器,适配为接收具有多个像素的视频图像;对于图像中的多个像素中的每个像素选择多个高斯模型;基于像素最佳拟合的模型的概率将每个像素分类为背景像素或者前景像素;将图像划分为M X M个像素块;对于每个块比较当前帧中的运动像素和先前帧中的运动像素,以确定具有运动改变的像素数量是否大于第一阈值;如果具有运动改变的像素数量大于第一阈值,则触发块的计数器;确定在第一预定时间段内计数器中的累积计数是否大于第二阈值;如果在第一预定时间段内计数器中的累积计数大于第二阈值,则忽略块中的所有运动;跟踪图像中的对象;通过检测在第二预定时间段内对象是否总是在预定距离内移动并且频繁改变移动方向,确定对象是否总是局部移动;如果处理器确定对象总是局部移动,则将该对象从作为对象的分类中去除;如果确定步骤确定对象总是局部移动并且将对象在其内移动的区域标记为噪声掩蔽缓冲器上的噪声区域,则忽略对象的运动;基于运动检测和噪声过滤更新背景模型;更新当前背景图像;更新演进背景图像;以及编码用于传送的当前背景图像、背景更新块和对象。
[0011]这种系统的实现方式可以包括以下特征中的一个或者多个。处理器还适配为创建队列,以在队列中缓冲多个条目,包括需要被更新的对象、背景块和图像;向队列中的条目提供帧和对象标识符;确定对象是否是真实对象;确定对象是否在大于第三预定时间段的时间段内在队列中;以及如果对象没有被识别为真实对象并且已经确定对象在大于第三预定时间段的时间段内在队列中,则从缓冲器中去除该对象。该处理器还适配为接收由观看场景的照相机捕捉的视频图像,并且确定对象是否移动到场景中并且在场景中停止,并且如果处理器确定第一对象移动到场景中并且停止,则更新场景的背景模型并且将第一对象编码为背景。该处理器还适配为将当前背景图像建立为用于编码和解码的参考图像;建立演进背景图像;利用检测到的静止图像更新当前背景图像;基于运动检测利用接收到的图像更新演进背景图像;以及利用演进背景图像取代当前背景图像。该处理器还适配为使用每个高斯模型的长期计数器,以确定当前像素是否是前景像素;使用每个高斯模型的短期计数器,以确定哪个高斯模型用于当前背景图像的像素;如果像素被检测为背景像素,则利用移动平均法更新对应演进背景模型;如果对象被检测为静止对象,则将当前帧中的区域中的像素更新到当前背景图像和演进背景图像中;如果对象被检测为静止对象,则最大化与当前帧的区域中的像素对应的高斯模型的短期计数器并且更新长期计数器,以确保该像素将被分类为背景像素;并且如果像素被检测为背景像素并且该像素的背景模型与先前帧中的像素不同,则更新当前和演进背景图像二者的像素,并且编码和传送更新后的当前背景像素。该处理器还适配为使用当前背景图像和先前解码帧作为潜在参考图像。
[0012]非临时计算机可读介质的示例包括配置为使得处理器执行以下处理的指令:接收具有多个像素的视频图像;对于图像中的多个像素中的每个像素选择多个高斯模型;基于像素最佳拟合的模型的概率将每个像素分类为背景像素或者前景像素;将图像划分为M XM个像素块;对于每个块比较当前帧中的运动像素和先前帧中的运动像素,以确定具有运动改变的像素数量是否大于第一阈值;如果具有运动改变的像素数量大于第一阈值,则触发块的计数器;确定在第一预定时间段内计数器中的累积计数是否大于第二阈值;如果在第一预定时间段内计数器中的累积计数大于第二阈值,则忽略块中的所有运动;跟踪图像中的对象;通过检测在第二预定时间段内对象是否总是在预定距离内移动并且频繁改变移动方向,确定对象是否总是局部移动;如果处理器确定对象总是局部移动,则将该对象从作为对象的分类中去除;如果处理器确定对象总是局部移动并且将对象在其内移动的区域标记为噪声掩蔽缓冲器上的噪声区域,则忽略对象的运动;基于运动检测和噪声过滤更新背景模型;更新当前背景图像;更新演进背景图像;以及编码用于传送的当前背景图像、背景更新块和对象。
[0013]这种非临时计算机可读介质的实现方式可以包括以下特征中的一个或者多个。非临时计算机可读介质还包括配置为使得处理器进行以下处理的指令:创建队列,以在队列中缓冲多个条目,包括需要被更新的对象、背景块和图像;向队列中的条目提供帧和对象标识符;确定对象是否是真实对象;确定对象是否在大于第三预定时间段的时间段内在队列中;以及如果对象没有被识别为真实对象并且已经确定对象在大于第三预定时间段的时间段内在队列中,则从缓冲器中去除该对象。该非临时计算机可读介质还包括配置为使得处理器进行以下处理的指令:接收由观看场景的照相机捕捉的视频图像,确定对象是否移动到场景中并且在场景中停止,并且如果处理器确定第一对象移动到场景中并且停止,则更新场景的背景模型并且将第一对象编码为背景。该非临时计算机可读介质还包括配置为使得处理器进行以下处理的指令:将当前背景图像建立为用于编码和解码的参考图像;建立演进背景图像;利用检测到的静止图像更新当前背景图像;基于运动检测利用接收到的图像更新演进背景图像;以及利用演进背景图像取代当前背景图像。该非临时计算机可读介质还包括配置为使得处理器进行以下处理的指令:使用每个高斯模型的长期计数器,以确定当前像素是否是前景像素;使用每个高斯模型的短期计数器,以确定哪个高斯模型用于当前背景图像的像素;如果像素被检测为背景像素,则利用移动平均法更新对应演进背景模型;如果对象被检测为静止对象,则将当前帧中的区域中的像素更新到当前背景图像和演进背景图像中;如果对象被检测为静止对象,则最大化与当前帧的区域中的像素对应的高斯模型的短期计数器并且更新长期计数器,以确保该像素将被分类为背景像素;并且如果像素被检测为背景像素并且该像素的背景模型与先前帧中的像素不同,则更新当前和演进背景图像二者的像素,并且编码和传送更新后的当前背景像素。配置为使得处理器编码用于传送的当前背景图像、背景更新块和对象的指令包括配置为使得处理器使用当前背景图像和先前解码帧作为潜在参考图像的指令。
[0014]这种计算机可读介质的特定实现方式可以包括以下特征中的一个或者多个。使得处理器基于确定的数据类型处理数据的指令使得处理器解码数据,以产生解码对象图像;并且在对象列表中存储解码对象图像。
[0015]本文描述的项目和/或技术可以提供以下能力中的一个或者多个以及没有提及的其他能力。在一些实现方式中,具有可接受帧速率的高清晰度视频可以通过低带宽连接被编码和分发。可以借助与所述方式不同的方式实现如上所述的效果,并且所述项目/技术可以不必产生所述效果。
[0016]通过检视下面的详细描述、附图和权利要求将更全面理解本文描述的处理和系统以及其伴随的优点、应用和效果。

【专利附图】

【附图说明】
[0017]图1是包括传送器和接收器的高清晰度视频传输系统的简化示图。
[0018]图2是图1中示出的传送器的组件的示例性框图。
[0019]图3是图1中示出的接收器的组件的示例性框图。
[0020]图4是用于编码视频的示例性处理的流程框图。
[0021]图5是用于解码视频的示例性处理的流程框图。
[0022]图6是用于编码和传送背景图像的示例性处理的流程框图。
[0023]图7是用于编码和传送前景对象图像的示例性处理的流程框图。
[0024]图8是用于支持和编码前景对象图像的示例性处理的流程框图。
[0025]图9是用于解码视频数据的示例性处理的流程框图。
[0026]在附图中,具有类似相关特性和/或特征的组件具有相同参考标记。

【具体实施方式】
[0027]本文讨论用于提供例如通过低带宽连接编码并且传送高清晰度视频的机制的技术。具体地,前景对象被识别为与由多个视频帧表示的场景的背景不同。在识别前景对象中,区分语义重要和语义不重要移动(例如,非重复性对重复性移动)。例如,小的并且重复性的树的叶子的摇摆运动可以被确定为语义不重要并且属于场景的背景。前景对象和背景的处理以不同更新速率或者频率进行。例如,前景对象可以每秒被更新30或60次。相比之下,背景不那么频繁地被更新,例如每I秒或者10秒一次。在一些实现方式中,如果没有识别出前景对象,则不传送实况视频(例如,如果没有检测到运动,则不将静态图像配置为被重复发送)。
[0028]本文描述的技术利用下面的事实:在监视和无线通信领域中,以高帧速率更新语义重要的移动的视频是足够的。虽然将很多编码方案优化用于娱乐应用,但是在监视应用中,例如旗子的挥动的视频的背景中小的并且重复性的改变通常不重要。通过省略背景中的语义不重要的移动的传输并且通过减小背景被更新的速率,便于通过低带宽连接传输高清晰度视频。
[0029]本文描述的技术可以用于通过各种通信系统传送高清晰度视频。例如,可以通过例如基于以太网、基于同轴电缆、基于电力线、基于WiFi (802.11系列标准)、码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、正交FDMA (OFDMA)、单载波FDMA (SC-FDMA)系统等的各种有线和无线通信系统传送高清晰度视频。
[0030]如本文使用,包括在权利要求中,以“至少一个”开始的项目的列表中使用的“或”指示析取的列表,使得例如“至少一个A、B或C”的列表意味着A或B或C或AB或AC或BC或ABC( S卩,A和B和C)。无线通信网络不必使得所有通信被无线传送,而被配置为使得至少一些通信被无线传送。
[0031]参考图1,示出包括传送器和接收器的视频传输系统的简化示图。视频传输系统100包括传送器102、网络104和接收器106。传送器102优选是用于编码和传送例如高清晰度视频的设备。例如,传送器102可以是视频捕捉设备(例如,包括照相机的计算设备、智能照相机、视频采集器和相同类型的其他设备)、连接到一个或者多个视频捕捉设备(例如,外部照相机)和/或视频编码设备的计算设备(例如,桌面型计算机、膝上型计算机、平板设备、计算机服务器、视频代码转换器和相同类型的其他设备)、视频捕捉设备的模块和/或计算设备的模块等。例如,传送器102可以是嵌入照相机的模块或者视频代码转换器的模块。如本文使用,视频包括以间隔拍摄的全运动视频和静止照片。接收器106优选是用于例如接收和解码例如高清晰度视频的设备。接收器106可以是例如桌面型计算机、膝上型计算机、平板设备、计算机服务器、移动设备、移动电话和/或监控系统等。
[0032]网络104优选是便于两个或者更多设备之间的通信的任何适当网络。例如,网络104可以是闭环通信系统、局域网(例如,内部网络)和/或广域网LAN(例如,因特网)等。传送器102被配置为通过网络104传送编码图像和其他数据。例如,传送器102可以向接收器106提供可以被解码为用于向用户呈现的视频流(例如,高清晰度视频)的一系列编码图像。为了支持图像的编码和解码,传送器102可以进一步向接收器106提供事件信息(例如,新对象出现在视频流中的指示,以此类推)。
[0033]参考图2,传送器102包括成像设备202、处理器204、存储器206、通信子系统208和输入/输出(I/O)子系统210。处理器204优选是智能硬件设备,例如中央处理器(CPU)
(例如Intel?公司、AMD?、ARM?制造的那些CPU)、微控制器、特定应用集成电路(ASIC)、
数字信号处理器(DSP)(例如,德州仪器的DaVinci?系列DSP)和相同类型的其他设备。存储器206包括物理和/或有形存储介质。这种介质可以采用很多形式,包括但不限于非易失性介质和易失性介质。例如,非易失性介质包括例如只读存储器(ROM)的光盘和/或磁盘。示例性地,非易失性介质可以是硬盘驱动器和/或闪存驱动器等。易失性介质在不受限制的情况下包括各种类型的随机存取存储器(RAM)。示例性地,易失性介质可以是动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)等。存储器206存储包含指令的计算机可读、计算机可执行软件代码,该指令被配置为当被执行时使得处理器204执行本文描述的各种功能。这些功能实现视频传输系统。在一些实现方式中,存储器206可以存储对象和背景图像。例如,存储器206可以存储从成像设备202接收到的多个帧中检测到的前景对象的图像。存储器206可以进一步存储包括与每个检测到的前景对象对应的标识符、对象图像、引用和/或其他属性的对象列表。
[0034]成像设备202优选是捕捉原始视频数据的硬件和/或软件的任何适当组合,例如基于电荷耦合器件(CCD)、互补金属氧化物半导体(CMOS)图像传感器技术和/或热成像传感器等的设备。传送器102可以包括任何数量的成像器件(包括零)。
[0035]传送器102可以额外或者替代地接收来自直接连接到通信子系统208的一个或者多个端口和/或I/O子系统210的一个或者多个端口的外部视频捕捉设备和/或视频编码设备(例如,外部照相机、生成编码视频的计算设备,以此类推)的原始或编码视频数据。
[0036]通信子系统208优选是用于与其他设备(例如,图3中所示的接收器106、其他照相机和类似类型的其他设备)通信的硬件和/或软件的任何适当组合。通信子系统208可以被配置为例如连接到闭环通信系统、局域网(例如,内部网络)、广域网(例如,因特网)和类似类型的其他网络。I/O子系统210优选是用于管理与输入/输出设备的通信和/或输入/输出设备的操作的硬件和/或软件的任何适当组合。
[0037]可以通过处理器204将由传送器102接收到的视频数据编码或者压缩为数字格式。例如,传送器102可以根据一个或者多个更新速率对数据执行分析,识别数据中的前景对象和背景部分,编码并传送数据。编码视频数据可以经由网络104被流传输或者传送到接收器106。
[0038]参考图3,接收器106包括显示器302、处理器304、存储器306、通信子系统308和I/o子系统310。处理器304优选是智能硬件设备,例如中央处理器(CPU)(例如Inte丨'公司、AMD' ARM?制造的那些CPU)、微控制器、特定应用集成电路(ASIC)、数字信号处理器(DSP)和类似类型的其他设备。存储器306包括物理和/或有形存储介质。这种介质可以采用很多形式,包括但不限于非易失性介质和易失性介质。例如,非易失性介质包括例如只读存储器(ROM)的光盘和/或磁盘。示例性地,非易失性介质可以是硬盘驱动器和/或闪存驱动器等。易失性介质在不受限制的情况下包括各种类型的随机存取存储器(RAM)。示例性地,易失性介质可以是动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)等。存储器306存储包含指令的计算机可读、计算机可执行软件代码,该指令被配置为当被执行时使得处理器304执行本文描述的各种功能。这些功能实现视频传输系统。在一些实现方式中,存储器306可以存储前景对象和背景图像。例如,存储器306可以存储前景对象的图像。存储器306可以进一步存储包括与每个检测到的前景对象对应的标识符、对象图像、引用和/或其他属性的对象列表。
[0039]通信子系统308优选是用于与其他设备(例如,图3中所示的传送器)通信的硬件和/或软件的任何适当组合。通信子系统308可以被配置为例如连接到闭环通信系统、局域网、广域网(例如,因特网)和类似类型的其他网络。显示器302优选是用于向用户显示图像的任何适当设备,例如阴极射线管(CRT)监视器、液晶显示(LCD)监视器、基于等离子的监视器、投影仪和类似类型的其他设备。I/O子系统310优选是用于管理与输入/输出设备(例如键盘、鼠标、触摸板、扫描仪、打印机、照相机和类似类型的其他设备)的通信和/或输入/输出设备的操作的硬件和/或软件的任何适当组合。如下面详细讨论,可以由用户利用例如键盘、鼠标和触摸板的设备,以向处理器304提供用户输入,从而提供对要拼接到背景图像的前景对象的用户选择的选择,用于显示或者由用户使用。
[0040]虽然本文描述的各种配置针对高清晰度视频的传输,但是应当理解可以做出修改以涵盖其他上下文。例如,可以做出修改以使得能够进行通过低带宽连接的RADAR、LIDAR和其他基于对象的检测监控。
[0041]参考图4,另外参考图1和图2,用于编码视频的处理400包括所示的框。然而,处理400仅是示例性的并且不是限制性的。可以例如通过增加、去除、重新排列和/或同时执行框来改变处理400。例如,可以同时执行用于处理前景对象和背景的框1070和1090。对所示和描述的处理400的其他改变也是可能的。
[0042]处理400可以通过接收来自例如成像设备的视频源的视频帧在框410开始。在框420,处理400应用高斯混合模型,用于排除静态背景图像和具有语意不重要的运动的图像(例如,在风中挥动的旗子)。在该高斯混合模型中,对于每个像素选择N个高斯模型,并且基于当前像素最佳拟合的模型的概率,将当前像素分类为前景像素或者背景像素。如果一个模型比其他模型更频繁地出现,则该像素将被分类为背景像素;否则,该像素将被分类为前景像素。前景像素被分组为对象并且在多个帧中被跟踪以过滤掉噪声。在框430,通过利用连接组件分析方法将前景运动像素分组为斑点(blob)。在框440,在多个连续帧中跟踪被标注的斑点。在框450,进一步分析跟踪对象,以检测信息量不是很大并且没有必要被更新的场景中的噪声。在框455,将检测将被快速更新为背景的静止对象以节省传输带宽。在框460,基于前景对象、噪声和静止对象的检测,更新当前背景图像和演进背景图像。在框470,从当前背景图像和先前帧选择参考图像,并且利用残差对象差分地编码跟踪对象。在框480,缓冲编码对象用于进一步的噪声分析。如果对象被识别为频繁发生的局部事件,例如移动树枝或者旗子挥动,则将从对象缓冲器去除这些对象。在框490,由于例如新对象进入并且仍留在场景中的环境改变的背景改变将被融入到当前和演进背景图像中,并且将利用从先前的当前帧减去的残差图像块编码对应的改变。在框495,将格式化并且传送所有信息量大的对象和背景改变部分。也传送额外信息。例如,可以传送例如给定帧中的对象的出现、丢失或者移动的对象事件。这种信息被称为视频内容元数据。基于高斯模型的应用,可以将接收到的帧中的前景对象(即,感兴趣的对象)识别为与帧的背景不同。在框495,基于第一更新速率处理前景对象。例如,更新速率可以规定每秒30帧地在由接收器产生的视频流中更新前景对象。作为结果,基于每秒30帧的速率,生成并且传送识别出的前景对象的编码对象图像(即,以使得接收器可以接收图像并且利用以每秒30帧的速率更新的前景对象生成视频流的方式生成并且传送编码图像)。在框495,基于秒更新速率处理识别为背景的一部分的帧的多个部分。例如,更新速率可以规定每十五秒地更新背景。作为结果,每十五秒一次地生成并且传送编码背景图像。
[0043]参考图5,另外参考图1和图3,用于解码视频的处理500包括示出的框。然而,处理500仅是示例性的并且不是限制性的。可以例如通过增加、去除、重新排列和/或同时执行框来改变处理500。
[0044]处理500可以通过接收数据在框502开始。数据可以包括编码图像和/或事件信息。在框504,处理500可以确定接收到的数据的数据类型。数据类型可以包括事件、背景、移动对象和静止对象类型。在框506,基于识别出的对象类型处理接收到的数据。例如,如果数据是事件类型,则可以从用于跟踪视频流的帧内的对象的对象列表中增加或者去除对象。作为另一示例,如果数据是背景类型,则数据可以被解码并且拼接到前景对象,以生成可以呈现给用户的视频帧。作为再一示例,如果数据是对象类型,则该数据可以被解码并且与其他图像(例如,其他对象图像、背景图像和类似类型的其他图像)拼接,以生成可以呈现给用户的视频帧。
[0045]作为处理400和500的结果,可以经由例如计算机工作站的接收器向用户呈现包括多个视频帧的视频流。视频流可以包括以第一速率更新的前景对象和以第二速率更新的背景。例如,持续二十分钟的视频流可以包括从O到36,000编号的帧。视频流中的移动的前景对象可以被配置为以每秒30帧的速率更新。因此,由接收器生成的36,000个帧中的每个包括更新的移动的前景对象。为了维持这种更新速率,前景对象图像数据可以以每秒30次的速率由接收器接收和处理。相比之下,视频流中的背景可以被配置为每10分钟一次地被更新。因此,仅帧O、18,000和36,000包括对背景的更新。
[0046]可以通过检查图6-9中所示的更详细处理获得进一步理解。
[0047]参考图6,另外参考图1和图2,用于传送背景的处理600包括所示的框。然而,处理600仅是示例性的并且不是限制性的。可以例如通过增加、去除、重新排列和/或同时执行框来改变处理600。例如,可以在框616之前执行用于传送编码图像的框618。对所示和描述的处理600的其他改变是可能的。
[0048]在框602,传送器102接收来自适当视频源的视频帧(例如,原始视频数据、编码视频数据)。例如,可以由成像设备202的图像传感器捕捉帧。作为另一示例,可以经由I/O子系统210和/或通信子系统208 (例如,经由子系统的以太网端口、USB端口或者无线连接)接收帧。可以以规则间隔或者以特定帧速率接收视频帧。例如,传送器可以以每秒30帧地接收帧。
[0049]在框604,传送器102的处理器204识别接收到的帧中的前景对象。这样做,可以确定接收到的帧的背景部分。具体地,可以在处理器204中实现场景分析器算法。在并入本申请的交叉引用部分的、2010年12月30日提交的、名称为“Searching Recorded Video”的美国专利申请第12/982,601中详细描述由场景分析器进行的处理。简言之,分析器可以利用高斯混合模型,用于排除静态背景图像和不具有语义重要性的重复性运动的图像(例如,在风中摇摆的树)以识别前景对象。虽然将场景分析器描述为利用高斯混合模型,但是可以使用在短时间段内捕捉稳定像素的任何模型。
[0050]在判定606,处理器204执行关于编码背景图像是否应当被传送到接收器106的确定。处理器204基于例如预定义更新速率的标准集合做出这种确定。示例性地,传送器102的操作者可以规定背景图像要每十分钟地在接收器106被更新。作为结果,处理器204每十分钟一次地生成并且发送编码背景图像。处理器204可以额外地或者替代地被配置为自动地调整背景图像被编码并且被传送的速率。例如,处理器204可以被配置为基于网络104上当前可用的带宽自动地调整该速率。
[0051]在判定608,处理器204确定当前参考背景图像是否可用。例如,处理器204可以检查当前参考背景图像是否被存储在存储器206的缓冲器中。例如,当前参考背景图像可以是先前接收到的帧的解码背景图像。
[0052]如果处理器204确定参考背景图像可用,则处理器204在框610编码接收到的帧的残差图像。具体地,处理器204确定接收到的帧的背景部分和当前参考背景图像之间的差异(例如,经由执行图像减法处理)。此后,处理器204使用例如H.264帧间编码、JPEG(联合图像专家组)、JPEG 2000和类似类型的其他编码方案的适当编码方案来编码背景部分的残差背景图像。因为残差背景图像通常包含低熵,因此可以高度压缩编码残差背景图像。
[0053]在框612,处理器204解码在框610生成的编码残差背景图像。此后,处理器204使用解码残差背景图像和当前参考背景图像生成新参考背景图像。在生成新参考背景之后,处理器204将图像存储在存储器206的缓冲器中。新参考背景图像可以用于处理稍后接收到的帧。通过以该方式解码和生成新参考背景图像,处理器204将其背景图像与在接收器106生成的背景图像同步。更具体地,编码和解码处理经常产生具有可以使得原始图像和它们的解码对应部分不同的量化误差的图像。为了避免该问题并且维持准确解码,处理器204执行处理以获得与由接收器106生成的那些相同的解码图像。
[0054]再次参考判定608,如果处理器204确定当前参考背景图像不可用,则处理器204在框614编码接收到的帧的整个背景部分,以产生编码背景图像。处理器204可以使用常规I帧压缩方法编码背景部分。例如可以使用H.264帧间编码、JPEG、JPEG 2000和类似类型的其他编码方案来编码背景部分。示例性地,可以将背景部分划分为可以被单独编码的8x8像素块。可以使用例如离散余弦变换(DCT)的空间到频率变换变换每个块。然后可以以某种方式量化或者减小变换块,以减少数据量。
[0055]在框616,处理器204解码先前在框614编码的背景图像。解码背景图像之后,处理器204将图像存储在存储器206的缓冲器中作为新参考背景图像。如讨论,通过以该方式解码并且生成新参考背景图像,处理器204可以将其背景图像与由接收器106生成的背景图像同步。这样做支持视频流的准确解码。
[0056]在框618,处理器204基于背景的规定更新速率(例如,5、10、15分钟)向接收器106传送编码背景图像(例如,要么残差背景图像要么整个背景图像)。背景的更新速率可以比前景对象的更新速率更慢。在一些实现方式中,可以以基于块或者图像的方式更新背景图像。例如,可以将编码残差背景图像划分为若干部分或者片段并且以该若干部分或者片段传送。以不同时间或者在不同间隔时段上向接收器106传送每个片段。例如,处理器204可以被配置为每10分钟向接收器106提供更新背景图像。处理器204可以被进一步配置为将编码背景图像划分为五个背景片段。作为结果,处理器204在10分钟跨度上每两分钟向接收器106传送一个背景片段。这样做,接收器106能够在规定更新速率内获得更新背景图像。在一些情况下,处理器204可以基于定义的优先级规则和/或标准延迟背景图像或者片段的传送。例如,处理器204可以基于当前在用于传送到接收器106的队列中的编码前景对象的数量和/或带宽需要延迟背景片段的传送。
[0057]处理器204经由可以包括到接收器106的连接的通信子系统208传送编码背景图像。例如,通信子系统208可以通过闭环通信系统连接到接收器106。优选通过例如传输控制协议(TCP)或者用户数据报协议(UDP)的适当传输层协议便于编码背景图像的传输。在一些实现方式中,处理器204检查接收器106背景图像的传输是否成功。
[0058]参考图7,另外参考图1和图2,用于编码和传送前景对象的处理700包括所示的框。然而,处理700仅是示例性的并且不是限制性的。可以例如通过增加、去除、重新排列和/或同时执行框来改变处理700。框702和704可以与图6中所示的框602和604相同。
[0059]在框702,传送器102接收来自适当设备的视频帧。例如,成像设备202的图像传感器可以捕捉传送器102的图像数据。作为另一示例,可以经由I/O子系统210和/或通信子系统208(例如,经由子系统的以太网端口、USB端口或者无线连接)接收图像数据。可以以规则间隔或者以特定帧速率接收视频帧。例如,传送器可以以每秒30或60帧接收帧。
[0060]在框704,传送器102的处理器204识别接收到的视频帧中的前景对象。具体地,可以在处理器204中实现场景分析器算法。分析器利用高斯混合模型,用于排除静态背景图像和不具有语义重要性的重复性运动的图像(例如,在风中移动的树)以识别前景对象。高斯混合模型可以基于多个(例如,三个或更多)高斯曲线。高斯混合模型可以额外地基于先前接收到的视频帧。虽然将场景分析器描述为利用高斯混合模型,但是可以使用在短时段内捕捉稳定像素的任何模型。
[0061]处理器204使用连接组件分析将任何识别出的前景像素分组为斑点。分组斑点表示在接收到的视频帧中检测到的前景对象。为了从帧中消除噪声,处理器204去除噪声斑点。识别对象候选是否是真实对象或者其是否是场景的噪声背景的一部分是困难的。例如,移动的旗子和树枝信息量不是很大,并且应当被忽略以节省传输带宽。如果对象被识别为真实对象,则其将被编码和传送。同时,场景的某一部分将改变并且一些静止对象可以变成背景的一部分。当此发生时,背景的该部分应当被更新用于传输。为了从前景对象过滤掉噪声,在三个级别完成处理:像素级别、块级别和对象级别。在像素级别,高斯混合模型将动态适配环境并且忽略例如树枝和旗子的相同对象的频繁移动。在块级别,将图像划分为M XM个像素块。对于每个块,将当前帧中的运动像素与先前帧中的运动像素比较。如果检测到任何改变,则在具有运动改变的像素的数量大于阈值的情况下触发块的计数器。如果一时段中计数器中累积的计数大于阈值,则该块将被标注为噪声掩蔽缓冲器中的噪声块。将忽略噪声块内的所有运动。在对象级别,如果在特定时间内对象总是被检测到局部移动并且频繁改变方向,则其将被标注为噪声并且将不被更新为对象。对象访问的区域将被标记为噪声掩蔽上的噪声区域。仅没有被标记为噪声像素的运动像素将被标注用于进一步的处理。
[0062]在框706,处理器204跟踪任何识别出的前景对象。具体地,处理器204通过向对象分配计算元数据来标注任何识别出的前景对象。
[0063]基于标注,处理器204试图对每个检测到的对象与先前接收到的帧中识别出的对象进行映射。例如,处理器204可以比较位置、速度、移动方向、颜色、对象大小和类似类型的其他标准,以映射对象。示例性地,处理器204可以基于对象的向上轨迹估计对象将是先前接收到的帧中的其当前位置之下的估计50个像素。基于该确定,处理器204检查先前接收到的帧中是否在估计位置示出对象。
[0064]通过跟踪识别出的前景对象,处理器204还确定任何对象是否已经丢失。更具体地,处理器204识别在接收到的帧中不再存在的在先前接收到的帧中存在的对象(例如,对象已经离开帧的视野、移动到另一对象的后面和类似类型的其他情况)。处理器204可以以任何适当方式识别丢失对象。例如,处理器204可以维持包含先前接收到的帧中存在的对象的信息的对象列表。如果在当前帧中没有找到列表中的对象,则处理器204确定对象丢失。作为另一示例,处理器204可以比较先前的前景对象与接收到的帧的前景对象。基于该比较,处理器204识别接收到的帧中缺少的任何对象。
[0065]在一些实现方式中,处理器204在跟踪识别出的前景对象中额外地过滤掉被视为噪声的对象。更具体地,处理器204可以延迟新检测到的前景对象的处理,直至处理器204已经在阈值数量的连续帧中检测到前景对象的存在。为了不缺少应当被传送的任何真实对象,在队列中编码所有对象。该队列将缓冲需要被更新的多个图像和背景块。如果对象在队列中过长并且没有被辨别为真实对象,则其将从缓冲器中去除。如果对象被检测为真实对象,则将传送具有同一对象识别符的所有缓冲对象。
[0066]在框708,处理器204处理识别出的和丢失的前景对象。例如,处理器204可以生成被识别为在接收到的帧中不存在的每个对象的丢失事件。作为另一示例,处理器204可以确定具体识别出的对象是否是移动的、静止的和/或新的(即,没有在先前帧中被识别)等。处理器204可以额外地计算、编码和解码识别出的对象的对象图像。处理器204还可以基于移动信息确定识别出的对象的更新速率。示例性地,如果识别出的对象很慢地移动,则处理器204可以确定可以以更慢的速率更新对象的图像(例如,对象的图像不需要被频繁传送和/或对象的当前图像不需要被传送)。此外,处理器204可以基于规定的更新速率向接收器106传送每个对象的数据。处理器204还可以按顺序或者并行地处理识别出的和丢失的前景对象。如图8中所示,处理800更详细地图示识别出的前景对象和丢失的前景对象的处理。
[0067]参考图8,另外参考图1和图2,用于支持对象的编码和传输的处理800包括所示的框。然而,处理800仅是示例性的并且不是限制性的。可以例如通过增加、去除、重新排列和/或同时执行框来改变处理800。例如,可以在框820之前执行用于传送数据的框822。对所示和描述的处理800的其他改变是可能的。
[0068]在判定802,处理器204基于关于对象是否丢失的确定启动处理。如果对象丢失,则处理器204在框804生成对象的丢失事件(例如,“object_leave_scene”事件)。在一些实现方式中,相应地更新与丢失对象先前存在的位置对应的背景区域。区域背景更新处理除了仅编码背景的区域之外,与图6中所示的背景的更新类似(经由整个或者残差背景图像的编码)。关于要更新的背景的区域的位置的信息与编码背景一起传送。
[0069]如果对象没有丢失,则处理器204在判定806确定对象是固定的还是静止的。处理器204可以通过使用先前计算的对象的元数据(包括移动和位置信息)确定对象是否静止。
[0070]例如,处理器204可以使用位置信息,以比较接收到的帧中的对象的坐标与先前接收到的帧中的对象的坐标。如上面讨论,这些静止对象也被分类为需要被编码和传送的前景像素。然而,如果它们被每帧地发送,则浪费过多带宽,因为它们与先前的帧相同。一个示例性方法是编码对象的位置并且要求解码器将先前帧的区域复制到背景图像。这将节省很多带宽,但编码器仍需要在对象从场景消失或者融入到背景中之前对于每个帧传送关于对象的一些信息。另一示例性方法是立即更新背景模型并且将该对象编码为背景。因为对象被更新为背景,所以其不需要被传送用于未来的帧。为了这样做,对象区域中的每个像素的高斯模型的概率应当被更新,以确保其将被辨别为背景而不是对象。图像块将被强制编码为背景。
[0071]该示例性实施例利用两个背景图像。一个背景图像是用作用于编码和解码的参考图像的当前背景图像(CBI)。另一背景图像是基于运动检测随同输入帧一起被更新的演进背景图像(EBI),并且必要时其将被更新为当前背景图像并且被编码用于传输。如果像素被检测为背景像素,则将利用移动平均法更新对应演进背景模型。如果对象被检测为静止对象,则当前帧中的区域中的像素将被更新为当前背景图像和演进背景图像。背景模型用于运动检测和噪声过滤,并且背景图像用于编码。可以利用例如场景分析器中使用的减小大小的图像处理背景模型。背景图像应当与输入图像的大小相同。
[0072]因为我们使用高斯混合模型,所以可能存在与背景对应的不止一个模型。缓冲器中存在仅一个背景图像。
[0073]对于最佳视觉表现,即使动态改变背景,背景图像应当与原始图像尽可能接近。在示例性实施例中,两个计数器用于每个高斯模型。一个计数器是长期计数器(LTC)以计数长期概率。另一个计数器是计数过去短期时段的概率的短期计数器(STC)。长期计数器用于确定当前像素是否是前景像素,并且短期计数器用于判定哪个高斯模型应当用于背景图像。下面是背景像素选择的某一示例性标准。如果对象被分类为静止对象,则当前帧中的区域中的像素将用作背景像素,并且它们的短期计数器值将被最大化并且长期计数器值将被更新,以确保像素将被分类为背景像素。这些像素将被标注,以被立即更新为背景像素,当前背景图像和演进背景图像缓冲器将被同时更新。否则,具有最高短期计数器值的最可能模型被选择并且其平均值被用作当前背景像素值。演进背景图像将与当前背景图像比较。如果两个背景图像之间的差异大,则演进背景图像将被编码并且更新为当前背景图像。演进背景图像的编码是利用当前背景图像的差分编码。
[0074]在判定808,处理器204确定前景对象先前是否被跟踪。处理器204可以确定先前是否以任何适当方式跟踪对象。例如,处理器204可以维持包含在先前接收到的帧中存在的对象的信息的对象列表。为了确定对象先前是否被跟踪,处理器204检查对象是否存在在列表中。作为另一示例,处理器204可以通过比较先前帧与当前帧来确定对象先前是否被跟踪。具体地,处理器204检查对象是否出现在两个帧中。
[0075]如果处理器204在判定808确定前景对象先前被跟踪,则处理器在框810生成静止事件(例如,“object_Still”事件)。因为对象当前静止,所以对象的编码图像不需要被立即传送。静止对象可以替代地基于更慢的速率或者与背景相同的速率被传送。除了可以替代参考背景图像基于先前存储的图像(例如,对象的先前存储的图像、先前存储的帧)编码和解码之外,用于传输的静止对象的处理可以以与框816、818、820和/或822中所示类似的方式进行。在一些实现方式中,先前存储的图像可以是先前被重建或者生成的图像。在一些实现方式中,静止对象可以融入到背景中或者被认为是背景的一部分。当此发生时,对应背景区域相应地被更新。除了仅背景的一个区域被编码之外,该区域背景更新处理与图6中所示的背景的更新类似(经由整个或者残差背景图像的编码)。关于更新背景区域的位置的信息与编码背景一起传送。
[0076]再次参考框806,如果处理器204确定前景对象不是静止的,则处理器204在框812确定对象先前是否被跟踪。如果处理器204在框812确定对象先前被跟踪,则处理器204在框814生成进入事件(例如,“object_enter_scene” )。
[0077]在框816,处理器204基于当前背景图像计算前景对象的残差对象图像。具体地,处理器204确定表示前景对象的像素的块和参考背景图像中的像素的对应块之间的差异(例如,经由减法处理)。在框818,处理器204编码残差对象图像。处理器204可以使用任何适当编码方案编码残差对象。例如,处理器204可以使用JPEG、JPEG 200或者H.264帧间编码。
[0078]在替换实现方式中,处理器204可以基于先前重建图像(例如,对象的先前重建图像、先前重建帧)计算残差对象图像。具体地,因为接收到的帧和先前帧中的对象的位置是已知的,所以处理器204可以估计对象的移动的全局运动矢量。基于该全局移动估计,处理器204可以例如经由基于8x8图像块的SAD或者相关性搜索来估计局部运动矢量。此后,可以利用MPEG-4的霍夫曼编码(Huffman code)编码局部运动矢量。基于矢量估计,可以基于先前重建图像随后生成残差对象图像。可以使用例如基于MPEG的和/或H.264帧间编码的任何适当编码方案编码残差对象图像。通过使用对象的全局运动矢量,对象图像块的局部运动矢量可以比没有全局运动估计的图像块更小。
[0079]在框820,处理器204解码先前在框818编码的残差对象图像。此后,处理器204基于解码残差对象图像和替换地依赖于不同编码模式的参考背景图像或者先前帧来生成重建对象图像(例如,经由加法处理)。生成重建对象图像之后,处理器204可以将对象图像存储在存储器206中(例如,在存储器206中存储的对象列表中)。通过解码和生成重建对象图像,处理器204可以将对象图像与在接收器106解码并且由接收器106生成的对象图像同步。
[0080]在框822,处理器204基于前景对象的规定更新速率(例如,每秒15、24、29、30或者60帧)向接收器106传送数据。被传送的数据可以包括事件信息(例如,对象已经丢失,新对象已经进入帧和类似类型的其他事件信息)和/或编码图像数据。例如,可以以每秒30帧的速率向用户呈现视频流。作为结果,可以以1/30秒间隔向接收器106发送更新前景对象图像。
[0081]在一些实现方式中,处理器204可以经由可以包括到接收器106的连接的通信子系统208传送图像数据。例如,通信子系统208可以包括通过广域网(例如,因特网)到接收器106的连接。可以通过例如TCP或者UDP的任何适当传输层协议便于编码背景图像的传输。在一些实现方式中,处理器204检查接收器106对象图像的传输是否成功。
[0082]在一些实现方式中,处理器204可以基于移动和/或大小阈值传送对象的图像数据。例如,处理器204可以被配置为仅在对象已经在帧之间移动至少20个像素的情况下或者在对象已经从50像素的大小改变到100像素的大小的情况下,传送该对象的编码图像数据。处理器204可以基于带宽的当前可用性自动修改移动/大小阈值。
[0083]在特定实现方式中,处理器204可以将图像数据(例如,编码对象图像、背景图像等)存储在传输缓冲器中。缓冲器可以用于在带宽不足够高以传送被标注为发送到接收器106的所有图像数据的时段期间临时存储图像数据。处理器204例如在最近处理的帧包括大量运动的情况下,可能不能传送所有图像数据到接收器106。
[0084]在一些实现方式中,处理器204可以额外地设置编码对象和背景图像的传输优先级。例如,移动对象的图像可以与高优先级相关联。固定对象和背景的图像可以与更低优先级相关联。此后,处理器204可以基于定义的优先级传送图像(即,在低优先级数据之前发送高优先级数据)。在一些实现方式中,处理器204可以基于数据留在传输缓冲器中的时间增加图像的优先级。例如,处理器204可以在图像在缓冲器中多于两分钟的情况下增加该图像的优先级。
[0085]应当理解,可以同时或者顺序执行图6、7和8中所示的处理。
[0086]参考图9,另外参考图1和3,用于支持视频数据的解码的处理900包括所示的框。然而,处理900仅是示例性的并且不是限制性的。可以例如通过增加、去除、重新排列和/或同时执行框来改变处理900。
[0087]在框902,接收器106接收来自传送器102的数据。数据可以包括事件信息(例如,进入事件、丢失事件和类似类型的其他事件)、编码残差对象图像、编码残差背景图像和/或整个编码背景图像等。在判定904,接收器104的处理器304确定接收到的数据的数据类型(例如,事件、背景、移动对象、静止对象)。
[0088]如果处理器304在框906确定接收到的数据属于事件数据类型,则处理器304在框906识别由数据指示的具体事件。例如,接收到的数据可以指示对象已经进入当前帧(例如,“object_enter_scene”事件)。作为另一示例,接收到的数据可以指示对象已经离开当前巾贞(例如,“object_leave_scene”事件)。在框908,处理器基于接收到的数据指示的事件向对象列表增加对象或者从对象列表去除对象。例如,处理器304可以确定接收到的事件数据指示对象已经进入当前帧。基于该确定,处理器304向对象列表增加该对象。作为另一示例,处理器304可以确定接收到的数据指示对象已经离开场景。作为结果,处理器304从对象列表去除该对象。
[0089]再次参考判定904,如果处理器304确定从传送器102接收到的数据是背景类型(例如,编码残差背景图像或者整个编码背景图像),则处理器304在判定910确定是否应当执行帧内编码。
[0090]如果处理器304确定要执行帧内编码(即,接收到的数据是整个编码背景图像),则处理器304在912解码背景图像以产生解码背景图像。此后,处理器304将解码背景图像存储在存储器的参考背景图像缓冲器中。这样做,解码背景图像取代当前参考背景图像,并且在稍后处理中用作参考背景图像(例如,用在用于向用户呈现的图像的拼接中,用在解码随后接收到的数据中,以及用在类似类型的其他处理中)。
[0091]如果处理器304确定不执行帧内编码(即,接收到的数据是残差背景图像),则处理器304在914解码残差背景图像以产生解码残差背景图像。此后,处理器304使用解码残差背景图像和当前参考背景图像来生成新参考背景图像。处理器304随后在存储器306的参考背景图像缓冲器中存储新参考背景图像。这样做,新参考背景图像取代当前参考背景图像并且用作稍后处理中的参考背景图像。
[0092]再次参考判定904,如果处理器304确定从传送器102接收到的数据是移动对象类型,则处理器304在框916解码作为残差对象图像的数据,以产生解码残差对象图像。在框918,处理器304基于解码残差对象图像和替换地依赖于不同编码模式的当前参考背景图像或者先前帧来生成重建对象图像(例如,通过加法处理)。一旦生成对象图像,则可以在存储器306的缓冲器中存储重建对象图像。
[0093]再次参考判定904,如果处理器304确定从传送器102接收到的数据是静止对象类型,则处理器304在框920解码可以作为残差对象图像的数据,以产生解码残差对象图像。在框922,处理器304基于解码残差对象图像和先前重建图像(例如,对象的先前重建图像、先前重建帧)生成重建对象图像(例如,经由加法处理)。用以再现静止对象的替换方式是直接使用来自对象列表的对应对象图像。在一些实现方式中,一旦生成对象图像,则可以在存储器306的缓冲器中存储重建对象图像。
[0094]在框924,处理器304在存储器306中存储的对象列表中存储生成对象图像或者参考存储器306中存储的对象列表中的生成对象图像。在框926,处理器304将对象列表中的任何对象拼接到当前参考背景图像,以生成视频帧。此后,处理器304例如向显示器302提供用于向用户呈现的视频帧。在一些实现方式中,处理器304在执行框926之前等待,直至在特定时间段内接收到的所有数据被处理。示例性地,处理器30可以在1/30秒时间段内接收包括第一编码对象图像和第二编码对象图像的两个视频数据。接收器106可以在将图像拼接到参考背景图像(其例如可以在五分钟之前被接收、解码和存储)并且向用户呈现生成视频帧之前,处理每个图像(例如,解码和类似类型的其他处理)。
[0095]可以根据具体需要进行描述的配置的实质改变。例如,还可以使用定制硬件和/或可以在硬件、软件(包括例如小应用程序(applet)等的可移植软件)或者二者中实现具体元件。此外,可以采用到例如网络输入/输出设备的其他计算设备的连接。
[0096]本文使用的术语“机器可读介质”和“计算机可读介质”指代参与提供使得机器以具体方式操作的数据的任何介质。物理和/或有形计算机可读介质的常见形式包括例如软盘、可折叠软盘、硬盘、磁带或者任何其他磁性介质、CD-ROM、任何其他光学介质、打孔卡、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、FLASH-EPR0M、任何其他存储器芯片或者盒、如下文描述的载波、或者计算机可以从其读取指令和/或代码的任何其他介质。各种形式的计算机可读介质可以涉及携带用于执行的一个或者多个指令的一个或者多个序列到一个或多个处理器,例如分别为传送器102和接收器106的处理器204和304。仅通过示例的方式,可以最初在传送器102的磁盘和/或光盘上携带指令。传送器102可以将指令加载到其动态存储器并且通过传输介质作为信号发送要由接收器106接收和/或执行的指令。根据本发明的各种配置,可以是电磁信号、声学信号和/或光学信号等的形式的这些信号是在其上可以编码指令的载波的所有示例。
[0097]上面讨论的方法、系统和设备是示例。各种配置可以适当省略、替代或者增加各种过程。例如,在替换配置中,可以以与描述不同的顺序执行该方法,并且可以增加、省略或者组合各种步骤。此外,可以以各种其他配置组合关于特定配置描述的特征。可以以类似的方式组合配置的不同方面和要素。此外,技术不断演进,因而很多要素是示例并且不限制公开或者权利要求的范围。
[0098]在描述中给出具体细节,以提供示例配置(包括实现方式)的全面理解。然而,配置可以在没有这些具体细节的情况下实现。例如,示出公知电路、处理、算法、结构和技术,而没有不必要的细节,以避免使配置难以理解。该描述仅提供示例配置,并且不限制权利要求的范围、应用性或者配置。相反,前面的配置描述将向本领域技术人员提供实现描述的技术的有效描述。在不脱离本公开的精神或者范围的情况下,可以在元件的功能和排列中进行各种改变。
[0099]此外,前面的描述详细描述视频传输系统。然而,本文描述的系统和方法可以可应用于其它传输系统。
[0100]此外,可以将配置描述为被描绘为流程图或者框图的处理。虽然每个处理可以将操作描述为顺序处理,但是可以并行或者同时执行很多处理。此外,可以重新排列操作的顺序。处理可以具有没有包括在附图中的额外步骤。此外,可以由硬件、软件、固件、中间件、微代码、硬件描述语言或者其任何组合实现方法的示例。当在软件、固件、中间件或者微代码中实现时,可以在例如存储介质的非临时性计算机可读介质中存储用以执行必要任务的程序代码或者代码段。处理器可以执行描述的任务。
[0101]已经描述若干示例配置,可以在不脱离公开的精神的情况下,使用各种修改、替换结构和等效物。例如,上面的元件可以是更大系统的组件,其中,其它规则可以优先于或者另外修改本发明的应用。此外,可以在考虑上面的元件之前、期间或者之后,着手多个步骤。相应地,上面的描述不限制权利要求的范围。
【权利要求】
1.一种视频编码的方法,包括:接收具有多个像素的视频图像;对于图像中的多个像素中的每个像素选择多个高斯模型;基于像素最佳拟合的模型的概率将每个像素分类为背景像素或者前景像素;将图像划分为M X M个像素块;对于每个块比较当前帧中的运动像素和先前帧中的运动像素,以确定具有运动改变的像素数量是否大于第一阈值;如果具有运动改变的像素数量大于第一阈值,则触发块的计数器;确定在第一预定时间段内计数器中的累积计数是否大于第二阈值;如果在第一预定时间段内计数器中的累积计数大于第二阈值,则忽略块中的所有运动;跟踪图像中的对象;通过检测在第二预定时间段内对象是否总是在预定距离内移动并且频繁改变移动方向,确定对象是否总是局部移动;如果确定步骤确定对象总是局部移动,则将该对象从作为对象的分类中去除;如果确定步骤确定对象总是局部移动并且将对象在其内移动的区域标记为噪声掩蔽缓冲器上的噪声区域,则忽略对象的运动;基于运动检测和噪声过滤更新背景模型;更新当前背景图像;更新演进背景图像;以及编码用于传送的当前背景图像、背景更新块和对象。
2.如权利要求1所述的方法,还包括以下步骤:创建队列,以在队列中缓冲多个条目,包括需要被更新的对象、背景块和图像;向队列中的条目提供帧和对象标识符;确定对象是否是真实对象;确定对象是否在大于第三预定时间段的时间段内在队列中;以及如果对象没有被识别为真实对象并且已经确定对象在大于第三预定时间段的时间段内在队列中,则从缓冲器中去除该对象。
3.如权利要求1所述的方法,其中,接收具有多个像素的视频图像的步骤包括:接收由观看场景的照相机捕捉的视频图像,并且还包括以下步骤:确定对象是否移动到场景中并且在场景中停止,并且如果确定对象是否移动到场景中并且在场景中停止的步骤确定第一对象移动到场景中并且停止,则更新场景的背景模型并且将第一对象编码为背景。
4.如权利要求1所述的方法,还包括以下步骤:将当前背景图像建立为用于编码和解码的参考图像;建立演进背景图像;利用检测到的静止图像更新当前背景图像;基于运动检测利用接收到的图像更新演进背景图像;以及利用演进背景图像取代当前背景图像。
5.如权利要求1所述的方法,还包括以下步骤:使用每个高斯模型的长期计数器,以确定当前像素是否是前景像素;使用每个高斯模型的短期计数器,以确定哪个高斯模型用于当前背景图像的像素;如果像素被检测为背景像素,则利用移动平均法更新对应演进背景模型;如果对象被检测为静止对象,则将当前帧中的区域中的像素更新到当前背景图像和演进背景图像中;如果对象被检测为静止对象,则最大化与当前帧的区域中的像素对应的高斯模型的短期计数器并且更新长期计数器,以确保该像素将被分类为背景像素;并且如果像素被检测为背景像素并且该像素的背景模型与先前帧中的像素不同,则更新当前和演进背景图像二者的像素,并且编码和传送更新后的当前背景像素。
6.如权利要求1所述的方法,其中,编码用于传送的当前背景图像、背景更新块和对象的步骤包括:使用当前背景图像和先前解码帧作为潜在参考图像。
7.一种用于视频编码的系统,包括:处理器,适配为接收具有多个像素的视频图像;对于图像中的多个像素中的每个像素选择多个高斯模型;基于像素最佳拟合的模型的概率将每个像素分类为背景像素或者前景像素;将图像划分为M X M个像素块;对于每个块比较当前帧中的运动像素和先前帧中的运动像素,以确定具有运动改变的像素数量是否大于第一阈值;如果具有运动改变的像素数量大于第一阈值,则触发块的计数器;确定在第一预定时间段内计数器中的累积计数是否大于第二阈值;如果在第一预定时间段内计数器中的累积计数大于第二阈值,则忽略块中的所有运动;跟踪图像中的对象;通过检测在第二预定时间段内对象是否总是在预定距离内移动并且频繁改变移动方向,确定对象是否总是局部移动;如果处理器确定对象总是局部移动,则将该对象从作为对象的分类中去除;如果确定步骤确定对象总是局部移动并且将对象在其内移动的区域标记为噪声掩蔽缓冲器上的噪声区域,则忽略对象的运动;基于运动检测和噪声过滤更新背景模型;更新当前背景图像;更新演进背景图像;以及编码用于传送的当前背景图像、背景更新块和对象。
8.如权利要求7所述的系统,其中,处理器还适配为创建队列,以在队列中缓冲多个条目,包括需要被更新的对象、背景块和图像;向队列中的条目提供帧和对象标识符;确定对象是否是真实对象;确定对象是否在大于第三预定时间段的时间段内在队列中;以及如果对象没有被识别为真实对象并且已经确定对象在大于第三预定时间段的时间段内在队列中,则从缓冲器中去除该对象。
9.如权利要求7所述的系统,其中,处理器还适配为接收由观看场景的照相机捕捉的视频图像,并且确定对象是否移动到场景中并且在场景中停止,并且如果处理器确定第一对象移动到场景中并且停止,则更新场景的背景模型并且将第一对象编码为背景。
10.如权利要求7所述的系统,其中,处理器还适配为将当前背景图像建立为用于编码和解码的参考图像;建立演进背景图像;利用检测到的静止图像更新当前背景图像;基于运动检测利用接收到的图像更新演进背景图像;以及利用演进背景图像取代当前背景图像。
11.如权利要求7所述的系统,其中,处理器还适配为使用每个高斯模型的长期计数器,以确定当前像素是否是前景像素;使用每个高斯模型的短期计数器,以确定哪个高斯模型用于当前背景图像的像素;如果像素被检测为背景像素,则利用移动平均法更新对应演进背景模型;如果对象被检测为静止对象,则将当前帧中的区域中的像素更新到当前背景图像和演进背景图像中;如果对象被检测为静止对象,则最大化与当前帧的区域中的像素对应的高斯模型的短期计数器并且更新长期计数器,以确保该像素将被分类为背景像素;并且如果像素被检测为背景像素并且该像素的背景模型与先前帧中的像素不同,则更新当前和演进背景图像二者的像素,并且编码和传送更新后的当前背景像素。
12.如权利要求7所述的系统,其中,处理器还适配为使用当前背景图像和先前解码帧作为潜在参考图像。
13.一种非临时计算机可读介质,包括配置为使得处理器执行以下处理的指令:接收具有多个像素的视频图像;对于图像中的多个像素中的每个像素选择多个高斯模型;基于像素最佳拟合的模型的概率将每个像素分类为背景像素或者前景像素;将图像划分为M XM个像素块;对于每个块比较当前帧中的运动像素和先前帧中的运动像素,以确定具有运动改变的像素数量是否大于第一阈值;如果具有运动改变的像素数量大于第一阈值,则触发块的计数器;确定在第一预定时间段内计数器中的累积计数是否大于第二阈值;如果在第一预定时间段内计数器中的累积计数大于第二阈值,则忽略块中的所有运动;跟踪图像中的对象;通过检测在第二预定时间段内对象是否总是在预定距离内移动并且频繁改变移动方向,确定对象是否总是局部移动;如果处理器确定对象总是局部移动,则将该对象从作为对象的分类中去除;如果处理器确定对象总是局部移动并且将对象在其内移动的区域标记为噪声掩蔽缓冲器上的噪声区域,则忽略对象的运动;基于运动检测和噪声过滤更新背景模型;更新当前背景图像;更新演进背景图像;以及编码用于传送的当前背景图像、背景更新块和对象。
14.如权利要求13所述的非临时计算机可读介质,还包括配置为使得处理器进行以下处理的指令:创建队列,以在队列中缓冲多个条目,包括需要被更新的对象、背景块和图像;向队列中的条目提供帧和对象标识符;确定对象是否是真实对象;确定对象是否在大于第三预定时间段的时间段内在队列中;以及如果对象没有被识别为真实对象并且已经确定对象在大于第三预定时间段的时间段内在队列中,则从缓冲器中去除该对象。
15.如权利要求13所述的非临时计算机可读介质,还包括配置为使得处理器进行以下处理的指令:接收由观看场景的照相机捕捉的视频图像,确定对象是否移动到场景中并且在场景中停止,并且如果处理器确定第一对象移动到场景中并且停止,则更新场景的背景模型并且将第一对象编码为背景。
16.如权利要求13所述的非临时计算机可读介质,还包括配置为使得处理器进行以下处理的指令:将当前背景图像建立为用于编码和解码的参考图像;建立演进背景图像;利用检测到的静止图像更新当前背景图像;基于运动检测利用接收到的图像更新演进背景图像;以及利用演进背景图像取代当前背景图像。
17.如权利要求13所述的非临时计算机可读介质,还包括配置为使得处理器进行以下处理的指令:使用每个高斯模型的长期计数器,以确定当前像素是否是前景像素;使用每个高斯模型的短期计数器,以确定哪个高斯模型用于当前背景图像的像素;如果像素被检测为背景像素,则利用移动平均法更新对应演进背景模型;如果对象被检测为静止对象,则将当前帧中的区域中的像素更新到当前背景图像和演进背景图像中;如果对象被检测为静止对象,则最大化与当前帧的区域中的像素对应的高斯模型的短期计数器并且更新长期计数器,以确保该像素将被分类为背景像素;并且如果像素被检测为背景像素并且该像素的背景模型与先前帧中的像素不同,则更新当前和演进背景图像二者的像素,并且编码和传送更新后的当前背景像素。
18.如权利要求13所述的非临时计算机可读介质,其中配置为使得处理器编码用于传送的当前背景图像、背景更新块和对象的指令包括配置为使得处理器使用当前背景图像和先前解码帧作为潜在参考图像的指令。
【文档编号】G06T7/00GK104137146SQ201280070638
【公开日】2014年11月5日 申请日期:2012年12月27日 优先权日:2011年12月29日
【发明者】L.王, H.朱, F.阿格达西, G.米拉 申请人:派尔高公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1