《一种NVR多线程管理的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种NVR多线程管理的方法及装置.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104202548A43申请公布日20141210CN104202548A21申请号201410394794422申请日20140812H04N5/76200601H04N7/1820060171申请人深圳英飞拓科技股份有限公司地址518000广东省深圳市宝安区观澜高新技术产业园英飞拓厂房72发明人毛金花74专利代理机构深圳市博锐专利事务所44275代理人张明54发明名称一种NVR多线程管理的方法及装置57摘要本发明公开一种NVR多线程管理的方法,通过状态机控制NVR各通道,包括建立通道建立该通道,状态机判断通道建立是否成功,若是,则转至通道连接步骤,若否,则将通道返回至不可。
2、用阶段;通道连接通道连接与该通道对应的设备,状态机验连接是否成功,若是,则转至验证步骤,若否,则返回建立通道步骤;验证状态机验证用户名密码是否正确,若是,则转入录像处理步骤,若否,则返回至通道连接步骤,重新连接通道所对应的设备;录像处理通道进行录像,状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;通道关闭断开该通道与设备的连接。本发明能够提高NVR的资源利用效率,提高NVR的稳定性和可靠性。51INTCL权利要求书2页说明书6页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图2页10申请公布号CN104202548ACN1042。
3、02548A1/2页21一种NVR多线程管理的方法,其特征在于,该方法通过状态机控制所述NVR的各通道,包括步骤建立通道当通道被配置或被加入时,建立该通道,并创建该通道的资源,状态机判断通道建立是否成功,若是,则转至通道连接步骤,若否,则将通道返回至不可用阶段;通道连接通道连接与该通道对应的设备,状态机验证通道所对应的设备是否连接成功,若是,则转至验证步骤,若否,则返回建立通道步骤;验证状态机验证用户名密码是否正确,若是,则转入录像处理步骤,若否,则返回至通道连接步骤,重新连接通道所对应的设备;录像处理通道进行录像,状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;。
4、当接收到停止录像或关闭通道命令时转至通道关闭步骤;通道关闭断开该通道与设备的连接,并关闭该通道和通道文件。2根据权利要求1所述的NVR多线程管理的方法,其特征在于,当通道处于所述验证步骤或录像处理步骤时,若收到关闭通道的消息,则状态机控制通道转至所述通道关闭步骤。3根据权利要求1所述的NVR多线程管理的方法,其特征在于,当通道处于所述录像处理步骤时,如果所述通道状态为全局失败时,即无法使通道重新进行录像状态时,状态机控制通道转至验证步骤。4根据权利要求1至3任一所述的NVR多线程管理的方法,其特征在于,所述进行录像时还包括创建文件、分配缓存和写文件。5根据权利要求4所述的NVR多线程管理的方法。
5、,其特征在于,所述通道所对应的设备包括摄像机。6根据权利要求5所述的NVR多线程管理的方法,其特征在于,所述通道的资源包括输入数据、输出数据和会话。7一种NVR多线程管理的装置,其特征在于,包括建立通道模块、通道连接模块、验证模块、录像处理模块和通道关闭模块;所述建立通道模块用于,当通道被配置或被加入时,建立该通道,并创建该通道的资源,并通过状态机判断通道建立是否成功,若是,则启动所述通道连接模块,若否,则重复所述建立通道模块;所述通道连接模块用于,连接与该通道对应的设备,并通过状态机验证通道所对应的设备是否连接成功,若是,则启动所述验证模块,若否,则启动所述建立通道模块;所述验证模块用于,通。
6、过状态机验证用户名密码是否正确,若是,则启动所述录像处理模块,若否,则启动通道连接模块,重新连接通道所对应的设备;所述录像处理模块用于,进行录像,并通过状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;当接收到停止录像或关闭通道命令时启动所述通道关闭模块;所述通道关闭模块用于,断开该通道与设备的连接,并关闭该通道和通道文件。8根据权利要求7所述的NVR多线程管理的装置,其特征在于,当NVR多线程管理的装置的验证模块或录像处理模块处于开启状态时,若收到关闭通道的消息,则状态机启动所述通道关闭模块。9根据权利要求7所述的NVR多线程管理的装置,其特征在于,当所述录像处理。
7、模块为权利要求书CN104202548A2/2页3开启状态时,如果所述通道状态为全局失败,即无法使通道重新进行录像状态,则通过状态机启动所述验证模块。权利要求书CN104202548A1/6页4一种NVR多线程管理的方法及装置技术领域0001本发明涉及软件领域中的线程管理,特别是涉及一种NVR多线程管理的方法及装置。背景技术0002随着安防行业高清视频技术和信息化技术的发展,迫切需要提高网络视频存储服务器NVR,通过互联网连接获取各通道摄像机视频并进行存储和管理的服务器的各项性能,而NVR的高稳定性、高可靠性是各项性能提升的最基本保障。0003NVR往往是对多个甚至上百个通道的摄像机同时进行录。
8、像,如何管理这些通道进行存储,是NVR的核心功能之一。通道的管理往往包括多个对象,基本的有输入对象、输出对象、通道对象和文件对象,通道对象往往为线程处理。那么对于通道的管理,也就是多线程的管理,管理者本身也是线程。0004一般数字监控中,NVR每个通道的状态依次包括通道不可用阶段、通道建立阶段、验证阶段、录像处理阶段和通道终止阶段,对这些通道的管理,启动就创建所有的录像通道,成功后,就一直录像。为了保证安防监控设备恢复正常时能及时进行录像,当录像中间有任何失败,将销毁通道资源,从头开始创建通道,所以需要不断的去连接。但是,由此带来的问题就是通道对应的多个对象和线程这些资源需要从头至尾的不断的进。
9、行创建和销毁,也就是说现在对于多线程的管理,不管中间过程是成功还是失败,流程都是类似的,都会执行所有步骤。如图1所示,为现有技术中NVR录像管理过程状态图,从图中可得,当一个通道中间失败时,将会不停的循环整个通道不可用阶段通道建立阶段验证阶段录像处理阶段通道终止阶段和对应的线程。0005如此反复的创建销毁通道线程及多个对象,且这些对象大多包含了一定的缓存空间。所以一方面会不断产生磁盘碎片;另一方面,对于异常的响应和操作是非常冗余的,而且是滞后的,所以从空间上和时间上都会造成资源浪费。而且随着NVR性能需求的提高,通道成百上千时,这种资源浪费将越来越明显,系统的稳定性和可靠性也远远得不到保障。发。
10、明内容0006本发明所要解决的技术问题是提供一种NVR多线程管理的方法,该方法能够有效提高NVR系统缓存利用率,使NVR系统运行更加稳定和可靠。0007为了解决上述技术问题,本发明采用的技术方案为0008一种NVR多线程管理的方法,该方法通过状态机控制所述NVR的各通道,包括步骤0009建立通道当通道被配置或被加入时,建立该通道,并创建该通道的资源,状态机判断通道建立是否成功,若是,则转至通道连接步骤,若否,则将通道返回至不可用阶段;0010通道连接通道连接与该通道对应的设备,状态机验证通道所对应的设备是否连接成功,若是,则转至验证步骤,若否,则返回建立通道步骤;说明书CN104202548A。
11、2/6页50011验证状态机验证用户名密码是否正确,若是,则转入录像处理步骤,若否,则返回至通道连接步骤,重新连接通道所对应的设备;0012录像处理通道进行录像,状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;当接收到停止录像或关闭通道命令时转至通道关闭步骤;0013通道关闭断开该通道与设备的连接,并关闭该通道和通道文件。0014为解决上述技术问题,本发明提供的另一技术方案为0015一种NVR多线程管理的装置,包括建立通道模块、通道连接模块、验证模块、录像处理模块和通道关闭模块;0016所述建立通道模块用于,当通道被配置或被加入时,建立该通道,并创建该通道的资源,。
12、并通过状态机判断通道建立是否成功,若是,则启动所述通道连接模块,若否,则重复所述建立通道模块;0017所述通道连接模块用于,连接与该通道对应的设备,并通过状态机验证通道所对应的设备是否连接成功,若是,则启动所述验证模块,若否,则启动所述建立通道模块;0018所述验证模块用于,通过状态机验证用户名密码是否正确,若是,则启动所述录像处理模块,若否,则启动通道连接模块,重新连接通道所对应的设备;0019所述录像处理模块用于,进行录像,并通过状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;当接收到停止录像或关闭通道命令时启动所述通道关闭模块;0020所述通道关闭模块用于,。
13、断开该通道与设备的连接,并关闭该通道和通道文件。0021本发明的有益效果在于区别于现有技术中,当NVR中通道中间失败时,会循环整个通道不可用阶段通道建立阶段验证阶段录像处理阶段通道终止阶段和对应的线程,从而造成NVR资源浪费及降低NVR的稳定性和可靠性,本发明将状态机引入用于控制NVR的通道线程,因此,当NVR在线程各阶段失败时,通过状态机直接控制通道返回至上一正常阶段,从而避免循环整个通道建立至终止的过程,减小了冗余的操作和不必要的资源浪费,提高了NVR缓存资源的使用效率,同时也提高了NVR的稳定性和可靠性。进一步的,当通道处于录像处理时,通过状态机处理通道在该阶段出现的异常事件,使通道重新。
14、进入录像状态,从而最大限度的保证通道处于录像处理阶段,提高了通道的利用效率。附图说明0022图1为现有技术中NVR的通道管理示意图;0023图2为本发明NVR多线程管理的方法一实施方式中通道管理示意图;0024图3为本发明NVR多线程管理的方法另一实施方式中通道管理示意图;0025图4为本发明NVR多线程管理的方法一实施方式中通道管理流程图。具体实施方式0026为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。0027本发明最关键的构思在于引入状态机控制NVR的通道线程,使通道状态出现失说明书CN104202548A3/6页6败时及时返回上一正常阶段,。
15、避免NVR循环整个通道建立至终止的过程,从而提高NVR的稳定性和可靠性。0028状态机简写为FSMFINITESTATEMACHINE,确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”也许是同一个节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。可以理解为,系统的行为如果在不同的时间或环境下,其工作不同,并且行为可以分成有限的状态以及不重叠的程序块时,系统显现出了状态行为。更通俗点,状态机是通过有限且充分的状态个数记录线程的各种。
16、操作行为,并能在各种环境下、不同事件、不同时间的驱动下,切换到下一个合适的状态,如此反复。0029举个最简单的例子。人有三个状态健康,感冒,康复中。触发的条件有淋雨T1,吃药T2,打针T3,休息T4。所以状态机就是健康T3健康;健康T1感冒;感冒T3健康;感冒T2康复中;康复中T4健康,等等。就是这样状态在不同的条件下跳转到自己或不同状态的图。0030请参阅图2,图中实线表示NVR运行中正常状态的迁移,虚线表示NVR有异常状态或关闭退出状态的迁移。从图中可以看出,NVR的通道状态是有限的即图中显示的五个阶段,因此可以通过状态机来控制NVR的通道状态。并且通道在处于录像处理阶段时又可分为有限个确。
17、定的状态,因此可以通过另一状态机控制通道录像处理的各阶段。0031实施例一0032请参阅图3和图4,一种NVR多线程管理的方法,该方法通过状态机控制所述NVR的各通道,包括步骤0033S1、建立通道当通道被配置或被加入时,建立该通道,并创建该通道的资源,状态机判断通道建立是否成功,若是,则转至通道连接步骤,若否,则将通道返回至不可用阶段;其中,通道指一路音视频流的输入或者输出,一个设备可以有多路,所以可以有多个通道;而在NVR和编码器设备组成的系统中,通道对于编码器是一路码流输出,而对于NVR而言为一路码流的输入。在此可概括地认为一个通道对应一路码流。0034S2、通道连接通道连接与该通道对应。
18、的设备,状态机验证通道所对应的设备是否连接成功,若是,则转至验证步骤,若否,则返回建立通道步骤;0035S3、验证状态机验证用户名密码是否正确,若验证通过,则转入录像处理步骤,若否,则返回至通道连接步骤,重新连接通道所对应的设备;其中,在通道连接成功后需要登陆与该通道对应的设备,登陆时要求验证访问者用户名密码是否正确。S4、录像处理通道进行录像,状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;当接收到停止录像或关闭通道命令时转至通道关闭步骤;0036S5、通道关闭断开该通道与设备的连接,并关闭该通道和通道文件。0037其中,所述通道的资源包括输入数据、输出数据和会。
19、话,所述进行录像时还包括创建文件、分配缓存和写文件。0038从上述描述可知,本发明的有益效果在于本实施方式将状态机引入用于控制NVR的通道线程,当NVR在线程各阶段失败时,通过状态机直接控制通道返回至上一正常阶段,而不必循环整个通道建立至终止的过程,从而减小了冗余的操作和不必要的资源浪费,说明书CN104202548A4/6页7提高了NVR缓存资源的使用效率,同时也提高了NVR的稳定性和可靠性。0039在本实施方式中,通过另一个状态机控制录像处理过程,实现两个状态机递归控制通过线程,当通道处于录像处理时,通过状态机一处理通道在该阶段出现的异常事件,使通道重新进入录像状态,当所述录像处理过程完全。
20、失败时,通过状态机二控制通道返回至验证步骤,从而最大限度的保证通道处于录像处理阶段,提高了通道的利用效率。0040在本实施方式中,当通道处于所述录像处理步骤时,如果所述通道状态为全局失败时,即无法使通道重新进行录像状态时,状态机控制通道转至验证步骤。0041进一步的,在本实施方式中,当通道处于所述验证步骤或录像处理步骤时,若收到关闭通道的消息,则状态机控制通道转至所述通道关闭步骤。0042其中,所述通道所对应的设备包括摄像机、云台和快球等。0043实施例二0044请参阅图2一种NVR多线程管理的方法,该方法通过状态机控制所述NVR的各通道,包括步骤0045建立通道当通道被配置或被加入时,建立该。
21、通道,并创建该通道的资源,所述通道的资源包括输入数据、输出数据和会话,状态机判断通道建立是否成功,若是,则转至通道连接步骤,若否,则将通道返回至不可用阶段;0046通道连接通道连接与该通道对应的设备,状态机验证通道所对应的设备是否连接成功,若是,则转至验证步骤,若否,则将通道返回至不可用阶段;0047验证状态机验证用户名密码是否正确,若是,则转入录像处理步骤,若否,则跳转至通道关闭步骤;0048录像处理通道进行录像,状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;当接收到停止录像或关闭通道命令时转至通道关闭步骤;0049通道关闭断开该通道与设备的连接,并关闭该通道。
22、和通道文件。0050在本实施方式中,在通道各状态失败时,状态机能直接返回通道终止阶段或者初始的不可用阶段,而不必循环通道建立至线上整个线程;减少了冗余的操作和不必要的资源浪费。0051实施例三0052一种NVR多线程管理的装置,包括建立通道模块、通道连接模块、验证模块、录像处理模块和通道关闭模块;0053所述建立通道模块用于,当通道被配置或被加入时,建立该通道,并创建该通道的资源,所述通道的资源包括输入数据、输出数据和会话,并通过状态机判断通道建立是否成功,若是,则启动所述通道连接模块,若否,则重复所述建立通道模块;0054所述通道连接模块用于,连接与该通道对应的设备,并通过状态机验证通道所对。
23、应的设备是否连接成功,若是,则启动所述验证模块,若否,则启动所述建立通道模块;0055所述验证模块用于,通过状态机验证用户名密码是否正确,若是,则启动所述录像处理模块,若否,则启动通道连接模块,重新连接通道所对应的设备;0056所述录像处理模块用于,进行录像,并通过状态机判断通道状态是否异常,若是,则处理相关异常事件,使通道重新进入录像状态;当接收到停止录像或关闭通道命令时启说明书CN104202548A5/6页8动所述通道关闭模块;0057所述通道关闭模块用于,断开该通道与设备的连接,并关闭该通道和通道文件。0058从上述描述可知,本发明的有益效果在于本实施方式将状态机引入用于控制NVR的通。
24、道线程,当NVR在线程各阶段失败时,通过状态机直接控制通道返回至上一正常阶段,而不必循环整个通道建立至终止的过程,从而减小了冗余的操作和不必要的资源浪费,提高了NVR缓存资源的使用效率,同时也提高了NVR的稳定性和可靠性。0059在本实施方式中,当通道处于录像处理时,通过状态机处理通道在该阶段出现的异常事件,使通道重新进入录像状态,从而最大限度的保证通道处于录像处理阶段,提高了通道的利用效率。0060其中,当NVR多线程管理的装置的验证模块或录像处理模块处于开启状态时,若收到关闭通道的消息,则状态机启动所述通道关闭模块。0061其中,当所述录像处理模块为开启状态时,如果所述通道状态为全局失败,。
25、即无法使通道重新进行录像状态,则通过状态机启动所述验证模块。0062以下通过单个通道的线程管理为例说明本发明实际应用00631、NVR系统启动时通道为不可用状态;00642、如果该通道被配置或者被加入,将建立自己的通道,创建一系列资源,如数据的输入、输出、会话等;0065当通道建立失败,会返回该通道不可用状态,等到通道重新被配置或被加入;建立成功,会去连接对应的设备;通道失败主要也是资源不够用或者配置有问题。00663、连接设备时,首先需要验证设备是否可达,再需要用户名密码进行验证,进入验证阶段。00674、验证如果失败了,会返回前一个阶段,再去连接设备;除非收到关闭通道的消息,进入通道终止阶。
26、段。如果成功了,将进入录像处理阶段。00685、录像阶段如果成功了,会一直录像,长时间停留在录像处理阶段;除非接收到停止录像命令或者关闭通道的命令,会进入通道终止阶段。但在录像阶段如果中间有任何失败,并不会终止通道,而是处理完相关异常事件后,重新进入录像阶段;如录像写文件失败,将会重新录像重新建立新的录像文件。0069其中,录像处理阶段可能出现的异常事件包括数据传输异常即网络异常和数据存储异常即磁盘异常等,当状态机检测到录像处理阶段数据传输异常或数据存储异常时,不会直接将通道终止或将通道返回至通道连接或验证阶段,而是通过另一状态机判断通道异常事件并处理异常事件,例如,磁盘写失败的结果就是当前数。
27、据将不会生效,不会被存储,此时,所述另一状态机就会将当前数据写入下一个文件,使当前数据得以存储并继续进行录像,而不是直接终止通道。只有当所述另一状态机判断录像处理阶段完全失败时,才会将通道终止或返回至通道连接或验证阶段。00706、通道终止阶段,主要是关闭连接、关闭通道,关闭文件,释放相关资源等。当处理完后,回到了最开始状态,通道不可用状态。因为是正常关闭,不会再去创建通道。0071一个通道在一个时间上只会对应一个状态;如果是多个通道,通道相互之间是相互独立的,所以其运行过程与上述单个通道类似。0072由上述例子可以看出通过引入状态机控制通道线程,会省去很多资源的浪费,状说明书CN104202。
28、548A6/6页9态间的切换更加及时、也更加灵活。0073综上所述,本发明提供的NVR多线程管理的方法及装置通过状态机控制NVR通道线程,能够有效提高NVR缓存利用效率,增强NVR系统的稳定性和可靠性,并且当通道处理录像异常时,通过状态机首先使通道重新进入录像状态,保障通道恢复时能及时进行录像,提高通道的有效利用率。0074以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。说明书CN104202548A1/2页10图1图2说明书附图CN104202548A102/2页11图3图4说明书附图CN104202548A11。