视频数据处理方法、装置及视频监控系统的制作方法

文档序号:7768872阅读:193来源:国知局
专利名称:视频数据处理方法、装置及视频监控系统的制作方法
技术领域
本发明涉及电子信息技术领域,更具体地说,涉及一种视频数据处理方法、装置及 视频监控系统。
背景技术
视频监控是安全防范系统的重要组成部分,它是一种防范能力较强的综合系统。 视频监控通常采用摄像机进行实时的摄像,并将视频数据传送到工作人员所监控的屏幕 上。很多视频监控项目采用电视墙做为显示设备,现在的摄像机已经发展到130万(720P)、 200万(1080P)、500万甚至1600万像素,模拟信号的带宽已经完全不能支持这么大的图像 传输了。如果将高清的画面再转换成低分辨率的模拟信号输出的话,就失去了高清采集的 意义。并且输出的画面不清晰,不利于监控人员实施监控。所以,基于数字信号的电视墙的 需求正在出现。拿后端解码能力来做比较的话,通常情况下,每台服务器只有一个CPU,一个P4双 核3. OGHZ的CPU可以解16路40万像素的画面,使用CPU来负责解高像素的画面,CPU难以 胜任了。如果用户全是高清摄像机,并且监视器数量较多,那么就需要更高性能的多个CPU 同时工作,所以需要配置的解码服务器就会比较多,从而成本将会非常高。在对现有技术的研究和实践的过程中,本发明的发明人发现由于现有技术是使 用解码服务器通过CPU进行视频数据解码工作,再将解码后的视频数据输出到电视墙上, 所以在现有的实现电视墙显示的技术中,要想利用电视墙显示多路高清画面,就需要配置 多台解码服务器,由此增加了设备的复杂度,增加了监控设备的使用成本。

发明内容
有鉴于此,本发明提供一种视频数据处理方法、装置及视频监控系统,以便在不增 加过多设备的情况下显示多路高清画面。本发明实施例是这样实现的一种视频数据处理系统,包括中央处理器CPU、多个图形处理器GPU和存储单元, 其中所述CPU用于获得视频数据,根据预设分配策略在多个GPU中选择目标GPU,然后 将所述视频数据传输给所述目标GPU ;通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解码功能的解码算 法,用于在接收到CPU分配过来的视频数据后,进行解码,将解码结果存放于指定的存储单 元,并根据需要输出各存储单元中的视频数据。一种中央处理器CPU,具有数据调度单元,所述数据调度单元包括数据采集单 元、目标GPU选择单元和数据发送单元,其中所述数据采集单元用于采集外部视频设备的视频数据;所述目标GPU选择单元用于根据预设分配策略在多个GPU中选择目标GPU,所述GPU具有开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解码功 能的解码算法;所述数据发送单元用于将所述数据采集单元采集的视频数据传输给所述目标 GPU。一种图形处理器GPU,包括数据输入单元、解码单元和数据输出单元,其中所述数据输入单元用于获取CPU分配的视频数据,传输给所述解码单元,并指定 某存储单元存储解码结果;所述解码单元用于对视频数据进行解码,并将解码结果存储于所述指定的存储单 元;所述数据输出单元用于将各存储单元中的视频数据输出至外部显示设备。一种视频数据处理方法,包括获得多路视频数据;将每路所述视频数据按照预设分配策略分配到各GPU进行解码,所述各GPU具有 开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解码功能的解码算法。一种视频数据处理方法,包括接收由CPU按照预设分配策略分配的视频数据。将所述视频数据进行解码后,将解码结果存放于指定的存储单元,并根据需要输 出各存储单元中的视频数据。一种视频监控系统,包括多台摄像机,用于采集视频图像;CPU,具有数据调度单元,用于接收多路视频数据,根据预设分配策略在多个GPU 中选择目标GPU,然后将各路视频数据传输给所述目标GPU ;GPU,具有开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具 有解码功能的解码算法,用于在接收到CPU分配过来的视频数据后,进行解码,将解码结果 存放于指定的存储单元,并根据需要输出各存储单元中的视频数据;显示设备,接收GPU输出的视频数据后显示。本实施例将具有开放式接口的GPU进行改进后,由GPU负责解码操作,而CPU只负 责数据调度,减小了 CPU的工作负荷。由多个GPU替代多个CPU对多路视频数据进行解码, 避免了 CPU资源的浪费,并且降低了设备成本。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的 一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这 些附图获得其他的附图。图1为本发明实施例提供的一种视频数据处理系统的结构示意图;图2为本发明实施例提供的另一种视频数据处理系统的GPU的结构示意图;图3为本发明实施例提供的又一种视频数据处理系统的CPU的结构示意图4为本发明实施例提供的又一种视频数据处理系统的结构示意图;图5为本发明实施例提供的又一种视频数据处理系统的结构示意图;图6a为本发明实施例提供的一种视频监控系统的结构示意图;图6b为本发明实施例提供的又一种视频监控系统的结构示意图;图7为本发明实施例提供的一种视频处理方法的流程图;图8为本发明实施例提供的另一种视频处理方法的流程图。
具体实施例方式为了清楚起见,下面首先对本文出现的一些英文缩写或技术术语做简单的解释CUDA, Compute Unified Device Architecture,即计算统一设备架构,CUDA 技术 实际上就是GPU厂商提供的一系列函数接口,使得第三方可以操作GPU,类似WINDOWS平台 的驱动程序。ATI STREAM接口,为GPU厂商提供的一种接口,其功能类似上述CUDA。H. 264,为MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和IS0/IEC动态 图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字 视频编解码器标准。GPU, Graphic Processing Unit,图形处理器。VGA, Video Graphics Array,即视频图形阵列。DVI, Digital Visual Interface,即数字视频接口。HDMI, High Definition Multimedia Interface,高清晰度多媒体接口。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。正如背景技术所述,现有技术是由CPU对视频数据进行解码,如需对多路视频数 据进行处理,则需要多个CPU。而解码操作只是CPU的诸多功能中的一种,如果仅为了解码 而过多设置CPU,则比较浪费资源。有鉴于此,本发明提供了一种解决方案,将解码工作从CPU中抽离,由其他部件完 成,从而避免过多设置CPU。 下面通过几个实施例对上述解决方案进行详细说明实施例一图1示出了本发明实施例提供的一种视频数据处理系统,该系统包括CPU11和若 干GPU12和存储单元13,其中CPUll负责数据接收、分配的工作,具体的,接收来自外部的视频数据,根据预设的 分配策略在多个GPU12中选择一个或多个GPU作为目标GPU,并将视频数据提供给所述目标 GPU。GPU12接收CPUll分配的视频数据后,在指定的存储单元13中进行解码后发送给 相应的显示设备进行显示。所述预设的分配策略可以是随机分配,也可以是根据GPU12的工作状态进行,例
6如预先获取各个GPU的工作状态(具体可以是工作负荷情况),根据各个GPU的工作状态 设定不同的分配优先级,工作负荷越低,分配优先级越高,反之,工作负荷越高,则分配优先 级越低。在分配视频数据时,将待分配的视频数据根据所述分配优先级进行分配。
需要说明的是,所述GPU12是具有开放式函数接口的GPU,在实施本实施例之前, 需要预先通过所述开放式函数接口,将解码算法移植到GPU内部,从而使得所述GPU具有解 码功能。所述开放式函数接口可以是CUDA接口或ATI STREAM接口。
所述GPU12 可以是 NVIDIA 的 GeForce 8 以后的 GPU 和较新的 Quadro GPU。GPU 是否具有开放式函数接口可以从具有开放式接口的产品生产厂商的网站上查询得到。
本实施例将具有开放式接口的GPU注入解码算法后,由GPU负责将多路视频数据 进行解码操作,而CPU只负责数据调度,减小了 CPU的工作负荷。由多个GPU替代多个CPU 对多路视频数据进行解码,并控制输出,避免了 CPU资源的浪费,并且降低了设备成本。
实施例二
本实施例结构与实施例一基本相同,另外,提供了所述GPU12的一种具体结构,如 图2所示,所述GPU12包括数据输入单元21、解码单元22和数据输出单元23,其中
数据输入单元21用于获取外部输入的视频数据,传输给解码单元22,并指定存 储解码结果的存储单元。
解码单元22用于对视频数据进行解码,并将解码结果存储于指定的存储单元。 具体的,采用H. 264标准对视频数据进行解码,解码基本过程包括码流处理(Bitsteam Processing)、逆交换(Inverse Transform)、动态补偿(Motion Compensation)禾口去方块滤 波(Deblocking)等,具体过程属于现有技术,在此不再赘述。
所述数据输出单元23用于将各存储单元中的视频数据输出至外部显示设备。
所述数据输入单元21可以包括PCI-X数据获取单元和解码控制单元,其中
所述PCI-X数据获取单元用于通过PCI-X总线获取由CPU分配的视频数据;所述 解码控制单元用于将所述PCI-X数据获取单元获取的视频数据传输给解码单元22,并指定 存储单元存储所述解码单元解码后的视频数据。
在另外的实施例中,还可以进一步包括数据缓冲单元,所述数据缓冲单元用于将 所述PCI-X数据获取单元获取的视频数据合并成流,然后提供给所述解码控制单元。
实施例三
本实施例结构与实施例一、实施例二基本相同,另外,提供了所述CPUll的一种具 体结构。所述CPUll具有数据调度单元,该数据调度单元的一种结构如图3所示,包括数据 采集单元31、分配策略单元32、GPU管理单元33、分发管理单元34和数据发送单元35,其 中
所述数据采集单元31用于采集外部视频设备(如摄像机)的视频数据;
所述分配策略单元32用于为分发管理单元34提供视频数据的分配策略;
所述GPU管理单元33用于检测各个GPU的工作状态,并将各GPU的工作状态提 供给分发管理单元34 ;
所述分发管理单元34用于根据所述GPU管理单元33提供的各个GPU的工作状 态的信息,依据所述分配策略单元32提供的分配策略,确定目标GPU,指示所述数据输出单 元35从所述数据输入单元31处获取视频数据并发送给所述目标GPU ;
所述数据发送单元35用于在分发管理单元34的指示下,从所述数据采集单元31 处获取视频数据并发送给所述目标GPU。
此方式中,数据发送单元35是在分发管理单元34的指示下,主动去数据采集单元 31处获取视频数据,在其他实施方式中,还可以是由分发管理单元34控制所述数据采集单 元31将视频数据提供给所述数据发送单元35,另外,还可以是规定数据采集单元31在接收 到视频数据后就直接将所述视频数据提供给数据发送单元35,当然,还可以是由分发管理 单元34从数据采集单元31处获取视频数据后提供给数据发送单元35。具体采用何种方式 需要根据实际工作情况而定,本文并不限定视频数据在上述数据调度单元中的流程,只要 输入的视频数据能够按照预设策略分配出去,就属于本文范畴。
需要说明的是,在某些实施例中,所述分配策略单元32、GPU管理单元33、分发管 理单元34可以集成为目标GPU选择单元。
实施例四
本实施例提供的视频数据处理系统与前文介绍的几种实施例提供的视频处理系 统结构基本相同,所不同的是,本实施例提供的视频数据处理系统中,一个GPU与一个或多 个存储单元集成一体,构成显卡。如图4所示,本实施例提供的视频处理系统包括CPU41和 若干显卡42,各显卡42由一个GPU43和多个存储单元44组成,其中,GPU43接收到视频数 据后,在多个存储单元中选择目标存储单元,在对接收到的视频数据进行解码后将解码结 果存储于所述目标存储单元中,以便后续根据显示需要将各存储单元中的解码结果传输给 相应显示设备进行绘图显示(例如通过VGA、DVI或HDMI等接口输出到高清数字电视墙)。 当然,还可以在解码后由GPU采用Directshow的方式,直接在存储单元中绘图,形成图像数 据后再传输给显示设别直接显示。
需要说明的是,本实施例中,显卡是由一个GPU与多个存储单元组成,在另外的实 施例中,显卡也可以由一个GPU与一个存储单元组成,该存储单元被划分为若干存储区域, GPU在接收到CPU分配的视频数据后,在多个存储区域中选择目标存储区域以存放解码结果。
与前文各实施例相类似,本实施例由多个GPU替代多个CPU对多路视频数据进行 解码,避免了 CPU资源的浪费,并且降低了设备成本。例如使用本实施例的工控主机,一块 主板上可以安装20张显卡,此时,主机的CPU只负责高清视频数据的调度工作。一块CPU 就可以调度20路高清视频数据的输出,如果采用四头显卡,即可分别4路输出的显卡,那么 一台主机可以支持高达80路的高清视频数据的输出。本发明利用显卡作为解码计算的主 体,因此,本发明实施例能够实现低成本高清晰的视频解码方案。
实施例五
本实施例提供了视频数据处理系统的另外一种结构形式,如图5所示,所述视频 处理系统包括CPU51和GPU组52和存储单元53,其中,GPU组52由多个GPTO21集成。所 述CPTO1、GPTO21和存储单元53与前文各实施例中同名单元功能基本相同,在此不再赘述。
上述各实施例提供的视频数据处理系统可以应用于视频监控系统中,该视频监控 系统结构如图6a所示,包括由多个摄像机组成的摄像机组61、视频数据处理系统62和显 示设备63,其中
摄像机组61中的各摄像机拍摄到视频图像后传输给视频处理系统62,视频处理系统62接收视频数据后,调用其内部相应的GPU进行解码,并将解码后的视频数据传输给 相应的显示设备63,由显示设备进行显示。
需要说明的是,可以预先将摄像机组61中的各摄像机与各个显示设备建立一一 对应的关系,于是,视频处理系统62在接收到视频数据后,将该视频数据进行解码后,依据 上述对应关系发送给相应的显示设备进行显示。
当然,显示设备可以只有一个,视频处理系统62在接收到视频数据后,将该视频 数据进行解码,然后将对应各个摄像机的视频数据集合后绘制成能够在一个显示界面上显 示的图片X(相当于对各个画面进行合并),然后传输给显示设备进行显示,如图6b。
所述视频处理系统62的结构和功能已在前文详细介绍过,在此不再赘述。
针对上述各实施例提供的视频数据处理系统,本发明还提供一种视频数据处理方 法。
图7示出一种视频处理方法的流程,具体包括以下步骤
步骤S71、获得多路视频数据。
步骤S72、将每路视频数据按照预设分配策略分配到各GPU进行解码。
所述各GPU具有开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置 使其具有解码功能的解码算法。
上述步骤S71中接收视频数据的方式具体可以是通过无线方式或有线方式进行, 本文对具体方式不做限定。
所述预设分配策略可以是随机分配,也可以是根据GPU的工作状态进行,例如预 先获取各个GPU的工作状态(具体可以是工作负荷情况),根据各个GPU的工作状态设定 不同的分配优先级,工作负荷越低,分配优先级越高,反之,工作负荷越高,则分配优先级越 低。在分配视频数据时,将待分配的视频数据根据所述分配优先级进行分配。
图8示出了另一种视频处理方法的流程,具体包括以下步骤
步骤81、接收由CPU按照预设分配策略分配的视频数据。
所述预设分配策略已在前文描述过,在此不再赘述。
步骤82、将所述视频数据进行解码后输出。
将解码结果存放于指定的存储单元,并根据需要输出各存储单元中的视频数据给 显示设备,由显示设备进行显示。
上述图7和图8分别示出了 CPU和GPU对视频数据的处理流程,具体过程可以参 照前文视频处理系统部分的内容。
需要说明的是,图1至图8所示的实施例只是本发明所介绍的优选实施例,本领域 技术人员在此基础上,完全可以设计出更多的实施例,因此,本发明并不局限于已提供的实 施例,对这些实施例的多种修改对本领域的专业技术人员来说是显而易见的,都为本发明 保护的范围,由于篇幅有限,不在此处赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、 磁场或磁性粒子、光场或以上任意组合。
专业人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步 骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可 互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟 以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出 本发明的范围。
对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中 所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因 此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新 颖特点相一致的最宽的范围。
权利要求
1.一种视频数据处理系统,其特征在于,包括中央处理器CPU、多个图形处理器GPU和 存储单元,其中所述CPU用于获得视频数据,根据预设分配策略在多个GPU中选择目标GPU,然后将视 频数据传输给所述目标GPU;所述GPU具有开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具 有解码功能的解码算法,用于在接收到CPU分配过来的视频数据后,进行解码,将解码结果 存放于指定的存储单元,并根据需要输出各存储单元中的视频数据。
2.根据权利要求1的处理系统,其特征在于,所述GPU包括数据输入单元、解码单元 和数据输出单元,其中所述数据输入单元用于获取CPU分配的视频数据,传输给所述解码单元,并指定某存 储单元存储解码结果;所述解码单元用于对视频数据进行解码,并将解码结果存储于所述指定的存储单元;所述数据输出单元用于将各存储单元中的视频数据输出至外部显示设备。
3.根据权利要求2所述的处理系统,其特征在于,所述数据输入单元包括PCI-X数据获取单元,用于通过PCI-X总线获取由CPU分配的视频数据;解码控制单元,用于将所述PCI-X数据获取单元获取的视频数据传输给解码单元,并 指定存储单元存储所述解码单元解码后的视频数据。
4.根据权利要求1的处理系统,其特征在于,所述CPU具有数据调度单元,该数据调度 单元包括数据采集单元、目标GPU选择单元和数据发送单元,其中所述数据采集单元用于采集外部视频设备的视频数据;所述目标GPU选择单元用于根据预设分配策略在多个GPU中选择目标GPU ;所述数据发送单元用于将所述数据采集单元采集的视频数据传输给所述目标GPU。
5.根据权利要求4所述的处理系统,其特征在于,所述目标GPU选择单元包括分配策 略单元、GPU管理单元和分发管理单元,其中所述分配策略单元用于为所述分发管理单元提供视频数据的分配策略;所述GPU管理单元用于检测各个GPU的工作状态,并将各GPU的工作状态提供给分发 管理单元;所述分发管理单元用于根据所述GPU管理单元提供的各个GPU的工作状态的信息,依 据所述分配策略单元提供的分配策略,选择目标GPU。
6.一种中央处理器CPU,其特征在于,具有数据调度单元,所述数据调度单元包括数 据采集单元、目标GPU选择单元和数据发送单元,其中所述数据采集单元用于采集外部视频设备的视频数据;所述目标GPU选择单元用于根据预设分配策略在多个GPU中选择目标GPU,所述GPU具 有开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解码功能的解 码算法;所述数据发送单元用于将所述数据采集单元采集的视频数据传输给所述目标GPU。
7.根据权利要求6所述的CPU,其特征在于,所述目标GPU选择单元包括分配策略单 元、GPU管理单元和分发管理单元,其中所述分配策略单元用于为所述分发管理单元提供视频数据的分配策略;所述GPU管理单元用于检测各个GPU的工作状态,并将各GPU的工作状态提供给分发管理单元;所述分发管理单元用于根据所述GPU管理单元提供的各个GPU的工作状态的信息,依 据所述分配策略单元提供的分配策略,选择目标GPU。
8.一种图形处理器GPU,其特征在于,包括数据输入单元、解码单元和数据输出单元, 其中所述数据输入单元用于获取CPU分配的视频数据,传输给所述解码单元,并指定某存 储单元存储解码结果;所述解码单元用于对视频数据进行解码,并将解码结果存储于所述指定的存储单元; 所述数据输出单元用于将各存储单元中的视频数据输出至外部显示设备。
9.一种视频数据处理方法,其特征在于,包括 获得多路视频数据;将每路所述视频数据按照预设分配策略分配到各GPU进行解码,所述各GPU具有开放 式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解码功能的解码算 法。
10.一种视频数据处理方法,其特征在于,包括 接收由CPU按照预设分配策略分配的视频数据;将所述视频数据进行解码后,将解码结果存放于指定的存储单元,并根据需要输出各 存储单元中的视频数据。
11.一种视频监控系统,其特征在于,包括 多台摄像机,用于采集视频图像;CPU,具有数据调度单元,用于接收视频数据,根据预设分配策略在多个GPU中选择目 标GPU,然后将所述视频数据传输给所述目标GPU ;GPU,具有开放式接口,通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解 码功能的解码算法,用于在接收到CPU分配过来的视频数据后,进行解码,将解码结果存放 于指定的存储单元,并根据需要输出各存储单元中的视频数据; 显示设备,接收GPU输出的视频数据后显示。
全文摘要
本发明实施例提供了一种视频数据处理系统,包括中央处理器CPU、多个图形处理器GPU和存储单元,其中所述CPU用于接收视频数据,根据预设分配策略在多个GPU中选择目标GPU,然后将视频数据传输给所述目标GPU;通过所述GPU的开放式接口,预先在所述GPU中设置使其具有解码功能的解码算法,在接收到CPU分配过来的视频数据后,进行解码,将解码结果存放于指定的存储单元,并根据需要输出各存储单元中的视频数据。本发明实施例同时还提供了一种视频数据处理方法、CPU、GPU和视频监控系统。本实施例由多个GPU替代多个CPU对多路视频数据进行解码,避免了CPU资源的浪费,并且降低了设备成本。
文档编号H04N7/18GK102036043SQ20101058976
公开日2011年4月27日 申请日期2010年12月15日 优先权日2010年12月15日
发明者李欢 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1