一种安防视频监控设备专用的文件系统
技术领域
本发明涉及一种文件系统,尤其是一种安防视频监控设备专用的文件系统,属于安防视频监控领域。
背景技术
目前市场上主要的计算机外存储设备是磁盘和闪盘,存储方式是将磁盘或闪盘划分成若干个分区,然后将各分区分别格式化成指定的文件系统,若操作系统内核能支持分区上的文件系统,便能挂载分区后在分区挂载目录上进行一般的读写操作。以Linux操作系统为例,其工作流程如图1-1,其中的格式化操作只在首次使用该指定的文件系统或擦出数据时才进行。
分区模式目前流行的只有MBR和GPT,比较固定;而文件系统种类繁多,有FAT、EXT2、NTFS、XFS、ReiserFS等标准文件系统系列,并且还在快速发展中。
如图1-1所示,在操作系统上,无论格式化成什么标准的文件系统,挂载后进行一般的读写操作是一致,那是因为Linux操作系统的有虚拟文件系统VFS(Virtual File System)机制,是种适配器机制,也就是内核层使用对应的文件系统驱动,而对用户层提供相同的系统调用接口。其工作流程如图1-2。
安防行业的视频监控设备是计算机系统衍化而来的一种应用设备,其存储介质和存储方式同普通的计算机一样。目前市场上普遍存在的视频监控设备,外存设备仅被用于存储流媒体文件及一些附带信息,若使用标准文件系统至少存在以下五个方面的不足:
1、适应性没得到施展,标准文件系统能支持各种大小的普通、链接、设备及管道文件等,却只被用于存储密度均匀的流媒体文件。
2、功能没得到充分的使用,标准文件系统所能具备日志、压缩、加密等高级的功能全被闲置。
3、存储介质空间利用率低,标准文件系统的强大是建立在经典的数据结构和算法基础上,格式化时元数据需要消耗空间,运行时在上层写入数据过程中文件系统创建的索引需要消耗空间。在被闲置的状况下,元数据和索引的数据结构中大多项都是冗余的,造成了不必要的空间浪费。
4、性能问题,标准文件系统的索引并非为视频监控设备上的流媒体数据存储量身定做的,很难在它的数据结构上替代或扩充专用的参数项,这就意味着流媒体数据一些关键信息需要使用额外的文件保存,而这些关键信息文件和流媒体数据文件被同等对待,也就是同等使用缓冲buffer/cache,显然前者要求和标准文件系统索引一样高的缓冲优先级而后者不适合用缓冲的。此外,标准文件系统的索引数据结构的大小和索引所指向的数据块大小的比重也不一定和实际环境协调。这两种情况都会带来更高的磁头移动频率和内存开销,从而降低了系统性能。
5、信息安全问题,标准文件系统上的数据可以被非授权用户以文件的形式被获取并读取里面的内容。
发明内容
本发明是要克服上述现有技术中存在的不足,而提供一种功能简单、容易实现的安防视频监控设备上专用的文件系统,以满足安防视频监控设备上的使用需求。
本发明采用的技术方案是:一种安防视频监控设备专用的系统,它包括数据结构和运行机制。所述的数据结构静态地以一定的排列存放在存储介质上,动态地存在于内存以支持文件系统的运行机制。所述的数据结构包括文件系统参数、冲突簇号表、目录项表、索引项表和数据区;所述的运行机制包括运行时机制、下层缓冲机制、上层操作机制和适配机制。
所述数据结构中的文件系统参数为和标准的文件系统类似,存放文件系统的工作参数,它包括:循环覆盖标志、关闭标志、文件数据开始时间、文件数据结束时间、文件数据开始簇号、文件数据结束簇号、每扇区字节数、每簇扇区数、保留簇数、索引项表偏移、目录项表偏移、数据区偏移、总簇数、错误簇计数、访问权限、错误标志、冲突簇号表偏移、冲突簇号个数、当前指向的冲突簇号、文件系统的魔数、站位对齐字节。
所述数据结构中的目录项表为存放目录项的表,包括:事件类型、标志、相对簇号、前项簇号、后项簇号、开始时间、结束时间、簇的实际使用大小、首项簇号、图像质量、同一秒内申请的簇编号、文件类型、通道号、站位对齐字节。
所述数据结构中的索引项表为存放索引项的表,包括通道号和标志;所述数据结构中的冲突簇号表为存放冲突簇号的表;所述数据结构中的数据区为存放用户使用文件系统时写入的数据,它包括流媒体数据和附加信息。
所述运行机制中的运行时机制是用于维护文件系统的运行时间段和簇号使用状态,协调下层缓冲机制和上层操作机制。
所述的下层缓冲机制是指对于读取后没被修改的数据无需再次去硬件上读取,对于修改后的数据无需立即刷新到硬件上。
所述的上层操作机制包括:格式化、系统参数的读取和设置、文件操作。
所述运行机制中的文件操作包括:文件查找,文件创建、文件写入数据、文件数据读取、文件定位、文件信息获取、文件同步刷新、文件打包、文件关闭、文件附加信息的读取和设置;所述运行机制中的适配机制是将文件操作封装成标准的文件操作接口。
本发明的有益效果是:与现有技术相比,本发明所述的文件系统是专为安防视频监控设备上的流媒体数据存储设计的,根据流媒体数据特点,在数据结构上替代或扩充专用的参数项,如通道、时间、文件类型、事件类型、图像质量等,提取这些参数项以提高上层操作效率,以达到更好的使用需求。
附图说明
图1-1是现有技术的数据存储工作流程图。
图1-2是现有技术的虚拟文件系统VFS机制的工作流程图。
图2-1是本发明的总体布局结构示意图。
图2-2是数据按本发明的数据结构存放在分区上的布局效果图。
图2-3是现有技术的VFS机制去除文件系统层并将其上下层提到用户层的效果图。
图2-4是本发明的数据结构运行内容示意图。
图2-5是本发明的运行机制的总体框架图。
图2-6是本发明的运行时机制的总体工作流程图。
图2-7是本发明的下层缓冲机制的总体工作流程图。
图2-8是本发明的上层操作机制中文件操作的文件查找过程图。
图2-9是本发明的上层操作机制中文件操作的文件数据读取过程图。
图2-10是本发明的上层操作机制中文件操作的文件数据写入过程图。
图2-11是本发明的上层操作机制中文件操作的文件定位过程图。
具体实施方式
下面将结合附图对本发明作详细的介绍:如图2-1所示,一种安防视频监控设备专用的系统,它包括数据结构和运行机制,是根据使用需求设计的总体方案。所述的数据结构约定了数据以怎样的组织结构存放到磁盘或闪盘的分区上,约定了从磁盘或闪盘的分区上读取上来的数据以怎样的组织结构存在于内存中以支持运行机制;所述的运行机制是文件系统如何工作的统称。
所述数据结构是纯自定义的,包括文件系统参数、冲突簇号表、目录项表、索引项表、数据区。格式化后其在磁盘或闪盘的分区上的数据布局如图2-2所示,文件系统运行时其在内存中的动态数据也是按照这些数据结构组织的,只会扩展一些保留项或增加少量的临时参数。各子项详细如下:
1、数据区:存放用户使用文件系统时写入的数据。是以若干个扇区组成的簇为单位,簇的大小可根据流媒体的码流大小做合适的调整。簇从0开始编号,每簇对应一个目录项和索引项。数据区前面保留了一些空间用于存放附加信息,比如:ATM机监控时的卡号、车载监控时的车牌号。
2、索引项表:存放索引项的表。索引项的数据结构只用1字节,包括通道号和标志(值域:文件的第一簇、文件的非第一簇、坏簇或保留项)。索引项的轻巧使查询同一通道的视频数据很高效,非常适合视频监控设备上普遍的回放方式,也就是在某些通道上按时间前向或后向连续播放或定位。
3、目录项表:存放目录项的表。目录项和标准文件系统的概念差异较大,这儿是存放簇的描述信息,也就是前面提到的通道、时间、文件类型、事件类型、图像质量等。作为文件的一簇,还包括是不是首簇、簇在文件中的相对编号、前后项的簇号等。若是最后一簇,还会有簇的实际使用大小。若是首簇,采用最后簇的相对簇号、实际使用大小、结束时间覆盖它自己的,以便通过首簇的目录项记录就能得到整个文件的信息。若是首簇且存在附加信息,则首簇的前项簇号是附加信息所在的簇号,使之能被用户获取。目录项的数据结构占用32字节,具体包括事件类型(值域:普通、报警、动态监测、卡号叠加)、标志(值域:空闲、文件的第一簇、文件的非第一簇、保留项)、相对簇号、前项簇号、后项簇号、开始时间、结束时间、簇的实际使用大小、首项簇号、图像质量、同一秒内申请的簇编号、文件类型(值域:视频、图片、音视频)、通道号、站位对齐字节。
4、冲突簇号表:存放冲突簇号的表。因系统时间可以调整,当出现时间倒退时就会有新申请的簇的时间比它的前面申请的簇的时间小,记录新申请的簇号。
5、文件系统参数:和标准的文件系统类似,存放文件系统的工作参数,只是子项上有些专用化。具体包括循环覆盖标志、关闭标志(值域:正常关机、异常)、文件数据开始时间、文件数据结束时间、文件数据开始簇号、文件数据结束簇号、每扇区字节数、每簇扇区数、保留簇数、索引项表偏移、目录项表偏移、数据区偏移、总簇数、错误簇计数、访问权限(值域:读写、只读)、错误标志、冲突簇号表偏移、冲突簇号个数、当前指向的冲突簇号、文件系统的魔数、站位对齐字节。
本发明所述的运行机制是参考却不接入VFS机制,也意味着需独立实现虚拟文件系统所能公用的模块。运行机制的演化过程是,先将VFS和标准文件系统层去除,然后将系统调用接口和缓冲机制放到应用层实现,效果如图2-3;用户层除一般的读写操作外,其余的都需在专用文件系统中实现,如图2-4所示;最后将需要在专用文件系统中实现的各子流程用本专用文件系统的各个机制实现,如图2-5所示。
本发明所述的运行机制包括运行时机制、下层缓冲机制、上层操作机制、适配机制。各子机制详细如下:
1、运行时机制:文件系统挂载时读取文件系统参数和冲突簇号表,然后根据冲突簇号表读取目录项,提取其中的时间段作为冲突时间段,和文件系统参数中的时间段一起组成了运行时间段。文件系统参数、冲突簇号表和随着新申请的簇号,以及时间的变动同步变化着,在需要的时候刷新到硬件上。运行时机制还控制着下层缓冲机制的数据量和上层操作机制的句柄数等。其工作内容如图2-6。
2、下层缓冲机制:类似标准文件系统,读写磁盘数据是以扇区为单位,而像目录项、索引项等被频繁使用的,利用缓冲能提高效率。对于读取后没被修改的数据无需再次去硬件上读取,对于修改后的数据无需立即刷新到硬件上。其工作内容包括如图2-7。
3、上层操作机制包括格式化、系统参数的读取和设置、文件操作。
它支持上层用户操作的接口,具体如下:
3.1用户对存储分区格式化成本文件系统,然后启动运行时机制使用。
3.2文件系统参数的读取和设置。
3.3文件操作:主要包括文件查找,文件创建、文件写入数据、文件数据读取,文件定位、文件信息获取、文件同步刷新、文件打包、文件关闭、文件附加信息的读取和设置。文件创建和查找也就是前面提到的通道、时间、文件类型、事件类型、图像质量等信息,文件创建需用传入参数初始化。
文件查找过程如图2-8,首先通过传入时间段、通道号、文件类型和事件类型等信息,进而筛选有效的运行时间簇号段,遍历簇号段,顺序遍历簇号段所包括的簇号,然后根据簇号对应的目录项记录,判断通道号、文件类型和事件类型,若匹配,则筛选被作为第一项的簇,获取信息后返回。
文件数据读取过程如图2-9,若当前簇剩余未读的比需要读取的数据长度小,则根据索引项记录找到文件同通道的下一簇读取数据后返回,也可以直接读取数据。文件数据写入过程如图2-10,若文件数据为首次写入,从索引项记录找到最近的空闲簇,写入当前簇然后更新簇目录项后返回。文件定位过程如图2-11,可以按时间和按偏移两种方式定位,若按时间定位,根据索引项记录找到文件同通道的下一簇,然后获取簇目录项信息,比较时间若匹配则返回;若按偏移,也是根据索引项记录找到文件同通道的下一簇,获取簇目录项信息计算并比较偏移,若匹配则返回。文件打包需将最后簇的相对簇号、实际使用大小、结束时间覆盖它首簇的。
4、适配机制:将上层操作机制中的文件操作,封装成标准的文件操作接口,也就是fopen,fclose,fread,fwrite,fflush,fseek,ftell,fgets,fputs,access,statfs等,用于支持标准的文件操作。
本发明所述的文件系统是基于一般的存储方式设计,其存储方式工作流程如图1-1。但在文件系统这层上做了专用化修改,定义了专用的数据结构,数据经过结构化后在磁盘或闪盘分区上的布局如图2-2,定义了专用的运行机制,其总体工作方式如图2-5,最终完成了本发明所述文件系统。
本发明所述文件系统是在和参考标准的文件系统做专用化改进的,所涉及的大部分概念和标准的文件系统相同,也使用了扇区、簇、偏移等约定俗成的参项数,并在此基础上引入了一些专用或者被差异化的概念。视频监控设备上的流媒体数据的重要参数有:通道、时间、文件类型、事件类型、图像质量等,提取这些参数重新设计数据结构以提高上层操作效率是造成专用化、差异化的根源。
参照本发明所述文件系统的运行机制中的上层操作机制,首次使用需进行格式化操作,后续使用则进行其它上层操作或者使用适配机制像使用标准文件系统一样进行文件操作。
本发明所述文件系统将以静态和动态链接库的实体形式存在,对外提供库和头文件。用户代码中使用头文件中提供的那些操作接口,编译时将库链接,就可以在程序中使用。
最后,将使用了本发明所述文件系统的程序烧写到安防行业的视频监控设备上,如市场上流行的DVR、NVR等。