一种视频数据存储格式、存储方法及检索方法

文档序号:7768531阅读:301来源:国知局
专利名称:一种视频数据存储格式、存储方法及检索方法
技术领域
本发明属于视频监控技术领域,具体地说,是涉及一种视频数据存储格式,以及基 于该数据存储格式设计的数据存储方法和数据检索方法。
背景技术
视频存储与检索是视频监控系统的关键部分,目前监控行业多采用DVR数字视 频录像机通过内嵌的硬盘进行数据存储。但是,随着视频监控系统的规模和范围逐渐扩 大,DVR数据存储方式的种种缺点也明显暴露出来——硬盘损坏率高;无RAID (Redundant Array of Independent Disk独立冗余磁盘阵列)保护;数据丢失无法恢复;存储容量小; 清晰度不高;无法统一管理等。与之相反,IP SAN(SAN Storage Area Network,存储局域网 络)数据存储方式以高性能、高可靠性、可扩展等优势,契合了安防监控数据存储发展的趋 势,克服了 DVR的种种缺陷,优化了视频监控存储系统。传统的IP SAN数据存储方式在视频数据存储前,需要首先为磁盘分区创建文件系 统,然后将录制的视频数据以文件的形式加以存储。这种数据存储方式由于有文件系统的 存在,因此容易产生磁盘碎片,无法即存即取,从而导致存取性能不高,检索效率低,且其视 频索引数据也不便于管理。这些问题容易导致整个视频监控系统不稳定,且数据检索效率 低下。

发明内容
本发明为了解决IP SAN存储过程中容易产生磁盘碎片、且存储性能和检索效率 不高的问题,提出了一种全新的视频数据存储方式,以减少磁盘碎片的产生,并提高存储效率。为解决上述技术问题,本发明首先对视频数据存储格式进行了如下设计存储管理程序对每个摄像机在存储器中对应的逻辑卷进行初始化,将其划分为两 大类一个设备头和若干个页,其中,设备头中存放页的相关信息,包括视频数据写到的当 前页字段CUrrent_n0和当前偏移量字段offset ;每个页又被分为两部分一个页头和至少 一个数据块,其中,页头中包含有视频数据存入该页的开始时间字段time,每个数据块又被 分为两部分块头和真正的视频数据存储区Video data,其中,块头中包含数据块的大小字 段Size以及相对页头的时间偏移量字段Time_0ffSet。进一步的,在所述页头中还包含有该页是否可用的信息字段he flag,用于标识 该页是否已被使用。又进一步的,在所述块头中还包含有数据块的开始唯一标识字段MagiC_start和 结束唯一标识字段MagiC_end ;当所述开始唯一标识字段MagiCjtart和/或结束唯一标 识字段Magic_end中出现了非规定的值,则认为该数据块为坏块。再进一步的,在所述设备头中还包含有页的总个数字段Totalno和摄像机编号 字段Caremajd,分别用于存放该设备头所在逻辑卷的总页数以及该逻辑卷所对应的摄像机编号。基于上述视频数据存储格式,本发明又提供了一种视频数据存储方法,包括以下 过程a、当存储管理程序接收到视频码流后,将当前时间写入到页头的time字段中;b、将当前页的序号写入到设备头的Currentjo字段中;C、将当前数据块中保存的视频数据相对页头的时间偏移量写入到块头的Time_ offset字段中;d、将接收到的视频数据存入到当前数据块的Vide0_data存储区中;e、在到达规定的时间后,将当前数据块的大小写入到当前数据块中块头的Size 字段中,并在设备头的offset字段中写入当前存储器指针在逻辑卷中的偏移量;f、开始在下一个数据块中继续存储接收到的视频数据,返回过程c继续执行;g、在当前页写完之后,开启下一页,继续执行所述的过程a至f。进一步的,在所述过程a中,还包括将页头中的该页是否可用的信息字段Use flag中的值修改为已用标识的过程,表示此页已被使用。又进一步的,在所述过程c中,还包括在当前数据块的开始唯一标识字段Magic_ start和结束唯一标识字段Magic_end中写入规定值的过程,表示当前数据块中的视频数 据有效。再进一步的,对于时间上不连续的两段视频码流,在对后一段视频码流进行存储 时,首先读取设备头的offset字段中记录的偏移量,获得存储前一段视频码流结束时的指 针位置;然后将存储器指针指向所述指针位置的后一个数据块,从所述数据块开始对后一 段视频码流进行逐块存储。基于上述视频数据存储格式,本发明又提供了一种视频数据检索方法,包括以下 过程A、索引程序在存储器中建立索引表,一个摄像机对应一个主索引表和一个次索引 表;其中,主索引表中保存视频索引信息,包括视频数据的开始时间、视频数据在逻辑卷中 的偏移量、以及视频数据所在的页;次索引表保存不连续的索引信息,包括上一个数据块中 视频数据的开始时间、上一个数据块中视频数据在逻辑卷中的偏移量、下一个数据块中视 频数据的开始时间、以及下一个数据块中视频数据在逻辑卷中的偏移量;B、索引程序定期轮询逻辑卷,当有新的数据块时,根据数据块中记录的信息计算 出该数据块中存放的视频数据的开始时间、视频数据在逻辑卷中的偏移量、以及视频数据 所在的页,记录到索引表中;C、在对保存的视频数据进行检索时,检索程序执行以下的两级检索过程一级检索根据输入的检索开始时间和结束时间,到主索引表中检索出在所述开 始时间和结束时间范围内的开始索引的时间和结束索引的时间;二级检索根据所述的开始索引的时间和结束索引的时间,到次索引表中检索出 每一段连续的视频数据所对应的数据块,并读取相应数据块中的视频数据,完成检索过程。进一步的,在所述过程A中,次索引表所保存的不连续的索引信息包括时间上不 连续和逻辑卷不同的索引信息;在次索引表中还包括下一个数据块中视频数据所在逻辑卷 名称的索引信息。
与现有技术相比,本发明的优点和积极效果是本发明的视频数据存储方式直接 将接收到的视频数据写入没有文件系统的裸设备中,从而可以减少磁盘碎片的产生,提高 存储性能和检索效率。视频数据采用即写即查的方法,不会出现时间延迟。此外,视频数 据以数据块为单位,存储于每一个逻辑卷的页中,便于管理,且数据存取性能提高。通过在 视频数据存储的同时定期更新索引表,并采用B-tree的方法进行检索,从而加快了响应时 间,提升了检索效率。结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更 加清楚。


图1是本发明所提出的视频数据存储格式的架构示意图;图2是本发明所提出的视频数据检索方法的流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行详细地描述。实施例一,本实施例为了减少磁盘碎片的产生,提高存储效率并方便视频数据的 管理,对视频数据的存储格式进行了如下全新设计存储管理程序对每台摄像机在存储器中对应的逻辑卷(以下简称target)进行初 始化,将其划分为两大类设备头,即MBR(大小为512B);页,即leaf(大小为256M),如图1 所示。因此,一个新的target是由一个大小为512B的MBR和若干个大小为256M的leaf组 成。当然,设备头MBR和页leaf的大小并不仅限于以上举例。其中,MBR的大小可以根据其 存储的信息量的多少做适应性修改;leaf的大小可以根据流媒体存储码流的大小做适应 性修改。一般来讲,大多数高清摄像机以8Mbps (即每秒钟8Mbit)的流量记录视频数据,此 时,可以将leaf的大小定义为256M,即256M个字节byte。而当摄像机的流量超过34Mbps 时,则可以将leaf的大小修改为512M或者1G,以满足存储要求。这一点也是本实施例所提 出的视频数据存储格式的灵活之处。在本实施例的视频数据存储格式中,MBR中存放页的相关信息,至少应包括视频数 据写到的当前页字段Currentjo和当前偏移量字段offset ;当然,也可以进一步根据需要 定义MBR唯一标识字段,比如厂商名称HisenseUeaf的总个数字段Totaljo、以及摄像机 编号字段Caremajd等。每个leaf又被分为两部分页头head和数据块block,如图1所 示。因此,leaf是由一个head和不定个数的block组成的。其中,页头head存放视频数据 存入该页的开始时间,通过time字段进行记录,当然,也可以进一步定义该页是否可用的 信息字段he flag以及保留字段Resv (为后续扩展留用)。每个block又被分为两部分, 块头和真正的视频数据存储区Video data,如图1所示。其中,块头中包含有block的大 小字段Size以及相对页头的时间偏移量字段Time_0ffSet ;当然,也可以进一步存放block 的开始唯一标识字段MagiCjtart和结束唯一标识字段Magic_end,以用来对数据存储过 程中出现的异常情况进行处理。在本实施例中,如果通过一台摄像机录制的视频数据超出一个逻辑卷的存储容量 时,可以为所述摄像机分配其它空闲的逻辑卷,并为不同的逻辑卷赋予不同的名称。此时,只需在逻辑卷中设备头的Caremajd字段中写入同一台摄像机的编号,系统即可判断出哪 几个逻辑卷对应的是同一台摄像机,以便在后续的视频数据检索过程中,检索程序可以自 动到不同的逻辑卷中调取该摄像机记录的视频数据。采用这种设计方式,避免了传统存储 方式一旦出现某个磁盘分区容量不够时,必须对整个磁盘进行重新分区所带来的麻烦,降 低了设计难度。通过建立上述的视频数据存储格式,本实施例提出了如下的视频数据存储方法, 具体包括以下存储过程(1)当存储管理程序接收到摄像机传来的视频码流后,首先针对输出所述视频码 流的摄像机选择与之对应的target,即所述摄像机的编号与target中设备头的Caremajd 字段中记录的编号一致,然后,将所述的视频码流存入该逻辑卷中。(2)将当前时间写入到页头的time字段中;并将Use flag字段中的值修改为已 用标识,比如修改为1,表示此页已被使用。(3)将当前页的序号写入到MBR的Currentj0字段中,比如当前在第一页,则 current_no = 1 ;(4)开始将接收到的视频数据写入block中;在此过程中,首先对当前用于存储视 频数据的数据块(简称当前block)中相应字段中的信息进行修改,比如将当前视频数据相 对页头的时间偏移量写入到块头的Time_0ffset字段中,然后将接收到的视频数据存入到 当前block的Video_data存储区中。(5)在到达规定的时间后,比如1分钟后,结束对当前block的视频数据存储过程, 转入到下一个block中继续存储。此时,将当前block的大小写入到当前block中块头的 Size字段中(包括块头和Video data存储区的大小)。采用这种设计方式使得block的大 小可以根据存储的数据量的大小自适应调整,从而达到节约磁盘资源的目的。然后,在MBR 的offset字段中写入当前存储器指针在target中的偏移量,即视频数据存储的结束位置; 然后,在block的MagiC_Start字段和Magic_end字段中写入规定的值,以表明该block存 储数据正常,该block有效。(6)开始在下一个block中继续存储接收到的视频数据,返回过程(4)继续执行。在当前页写满之后,开启下一页,继续执行所述的过程( 至(6)。如果当前的target写满了,则开启下一个与所述摄像机相对应的target,重复上 述的存储过程,继续对接收到的视频码流进行存储。对于时间上不连续的两段视频码流,为了达到存储的连续性,本实施例在对后一 段视频码流进行存储时,可以首先读取设备头的offset字段中记录的偏移量,获得存储前 一段视频码流结束时的指针位置;然后将存储器指针指向所述指针位置的后一个block, 并从该block开始对后一段视频码流进行逐块存储。由此一来,不仅可以避免磁盘碎片的 产生,节约存储空间,而且在后一段视频码流存储时可以很容易地获知应该从哪个位置开 始连续存储,从而提高了视频数据的存储速度,这也是设计图1所示存储格式的优势所在。采用本实施例的视频数据存储方法,在视频码流存储过程中一旦出现异常情况, 比如由于网络原因导致部分信息没有写入到存储器上,此时,在block的块头中,其Magic_ start字段和/或Magic_end字段中将出现非规定的值,表示从这一 block中不能读取到正 确的视频数据。采用这种设计方式,当系统执行检索程序时,一旦遇到这样的block,可以采用向下顺序读取的方法,读取下一个block中MagiC_Start字段和MagiC_end字段中的值, 直到出现规定的值为止,这样就能够确定出下一个block的位置。如果在当前页中未找到 被赋予规定值的MagiC_Start字段和Magic_end字段,则可以到下一个页继续寻找。这样 的好处是可以避免因为网络原因,造成视频数据没有按照图1所示的存储格式来执行时, 导致的检索程序无法读取到block信息的问题。这也是本实施例所提出的存储格式对异常 情况的一种处理方法。为了提高检索性能及检索的稳定性,本实施例对索引建表和索引检索的方法进行 了如下设计首先,索引服务读取target中的相关信息,在存储器中建立索引表。在本实施例 中,一台摄像机对应一个主索引表和一个次索引表。主索引表保存视频索引信息,可以由以 下字段组成视频数据的开始时间、视频数据在target中的偏移量、视频数据所在的页。次 索引表保存不连续(包括时间不连续和target名称不同两种情况)的索引信息,可以由以 下字段组成上一个block中视频数据的开始时间、上一个block中视频数据在target中 的偏移量、下一个block中视频数据的开始时间、下一个block中视频数据在target中的 偏移量、下一个block中视频数据所在target的名称。其次,索引程序定期轮询target,当发现有新的block出现时,即有新的视频数据 存入时,则根据block中记录的信息计算出该block中存放的视频数据的开始时间、视频数 据在target中的偏移量、以及视频数据所在的leaf,记录到主索引表中。若该block与上 一 block中存储的视频数据不连续,则还需在次索引表中写入相应的信息。在本过程中,可以通过读取新的block中Time_0ffSet字段中写入的时间偏移量, 以及该block所在leaf的time字段中记录的视频数据存放该页的开始时间,计算出该 block中存放的视频数据的开始时间;根据该block之前各数据块的大小(即Size字段中 记录的值)计算出该block中存放的视频数据在target中的偏移量,然后将相应的信息写 入到索引表中。本实施例在对保存的视频数据进行检索时,优选采用B-tree方法进行检索,在检 索的过程中分为一级检索和二级检索两部分,以加快响应时间,提升检索效率。具体可以通 过以下几个步骤完成,结合图2所示S201、系统接收用户输入的检索请求;S202、根据检索请求查找对应的摄像机信息,以确定出与该台摄像机相对应的 target,即找出通过该台摄像机录制的视频数据保存在哪几个target中;S203、进行一级检索,即主索引表检索根据输入的检索开始时间(简称t_s)和检索结束时间(简称t_e),到主索引表中 检索出在t_s至t_e范围内的开始索引的时间(简称i_t_s)和结束索引的时间(简称i_ t_e);S204、判断主索引表中是否查找到相关的索引信息,若有,则执行后续步骤;否则, 跳转至步骤S206 ;S205、进行二级检索,即次索引表检索根据i_t_s和i_t_e,到次索引表中检索出每一段连续的视频数据(时间连续和索 引在同一个target上)所对应的block,并读取相应block中的视频数据;
S206、索引检索应答,即输出检索结果;在此过程中,若在主索引表中没有检索到相关时间段的信息,即在t_s至t_e的时 间段内没有录制视频图像,则输出该时间段中没有视频图像的结果。若检索到相关的视频 数据,则在输出所要求时间段的视频图像的同时,对于时间上不连续的视频图像给予清楚 的图像录制时间的标示。当然,以上所述仅是本发明的一种优选实施方式,应当指出的是,对于本技术领域 的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改 进和润饰也应视为本发明的保护范围。
权利要求
1.一种视频数据存储格式,其特征在于存储管理程序对每个摄像机在存储器中对应 的逻辑卷进行初始化,将其划分为两大类一个设备头和若干个页,其中,设备头中存放页 的相关信息,包括视频数据写到的当前页字段CUrrent_n0和当前偏移量字段offset ;每 个页又被分为两部分一个页头和至少一个数据块,其中,页头中包含有视频数据存入该页 的开始时间字段time,每个数据块又被分为两部分块头和真正的视频数据存储区Video data,其中,块头中包含数据块的大小字段Size以及相对页头的时间偏移量字段Time_ offset ο
2.根据权利要求1所述的视频数据存储格式,其特征在于在所述页头中还包含有该 页是否可用的信息字段Use flag,用于标识该页是否已被使用。
3.根据权利要求1所述的视频数据存储格式,其特征在于在所述块头中还包含有数 据块的开始唯一标识字段MagiCjtart和结束唯一标识字段MagiC_end;当所述开始唯一 标识字段MagiC_start和/或结束唯一标识字段Magic_end中出现了非规定的值,则认为 该数据块为坏块。
4.根据权利要求1所述的视频数据存储格式,其特征在于在所述设备头中还包含有 页的总个数字段Total_n0和摄像机编号字段Caremajd,分别用于存放该设备头所在逻辑 卷的总页数以及该逻辑卷所对应的摄像机编号。
5.一种基于权利要求1至4中任一项视频数据存储格式的视频数据存储方法,包括以 下过程a、当存储管理程序接收到视频码流后,将当前时间写入到页头的time字段中;b、将当前页的序号写入到设备头的Currentjo字段中;C、将当前数据块中保存的视频数据相对页头的时间偏移量写入到块头的Time_0ffSet 字段中;d、将接收到的视频数据存入到当前数据块的Vide0_data存储区中;e、在到达规定的时间后,将当前数据块的大小写入到当前数据块中块头的Size字段 中,并在设备头的offset字段中写入当前存储器指针在逻辑卷中的偏移量;f、开始在下一个数据块中继续存储接收到的视频数据,返回过程c继续执行;g、在当前页写完之后,开启下一页,继续执行所述的过程a至f。
6.根据权利要求5所述的视频数据存储方法,其特征在于在所述过程a中,还包括将 页头中的该页是否可用的信息字段he flag中的值修改为已用标识的过程,表示此页已被 使用。
7.根据权利要求5所述的视频数据存储方法,其特征在于在所述过程c中,还包括在 当前数据块的开始唯一标识字段Magicjtart和结束唯一标识字段Magic_end中写入规定 值的过程,表示当前数据块中的视频数据有效。
8.根据权利要求5所述的视频数据存储方法,其特征在于对于时间上不连续的两段 视频码流,在对后一段视频码流进行存储时,首先读取设备头的offset字段中记录的偏移 量,获得存储前一段视频码流结束时的指针位置;然后将存储器指针指向所述指针位置的 后一个数据块,从所述数据块开始对后一段视频码流进行逐块存储。
9.一种基于权利要求1至4中任一项视频数据存储格式的视频数据检索方法,包括以 下过程A、索引程序在存储器中建立索引表,一个摄像机对应一个主索引表和一个次索引表; 其中,主索引表中保存视频索引信息,包括视频数据的开始时间、视频数据在逻辑卷中的偏 移量、以及视频数据所在的页;次索引表保存不连续的索引信息,包括上一个数据块中视频 数据的开始时间、上一个数据块中视频数据在逻辑卷中的偏移量、下一个数据块中视频数 据的开始时间、以及下一个数据块中视频数据在逻辑卷中的偏移量;B、索引程序定期轮询逻辑卷,当有新的数据块时,根据数据块中记录的信息计算出该 数据块中存放的视频数据的开始时间、视频数据在逻辑卷中的偏移量、以及视频数据所在 的页,记录到索引表中;C、在对保存的视频数据进行检索时,检索程序执行以下的两级检索过程一级检索根据输入的检索开始时间和结束时间,到主索引表中检索出在所述开始时 间和结束时间范围内的开始索引的时间和结束索引的时间;二级检索根据所述的开始索引的时间和结束索引的时间,到次索引表中检索出每一 段连续的视频数据所对应的数据块,并读取相应数据块中的视频数据,完成检索过程。
10.根据权利要求9所述的视频数据检索方法,其特征在于在所述过程A中,次索引 表所保存的不连续的索引信息包括时间上不连续和逻辑卷不同的索引信息;在次索引表中 还包括下一个数据块中视频数据所在逻辑卷名称的索引信息。
全文摘要
本发明公开了一种视频数据存储格式、存储方法及检索方法,其存储格式是将存储器中的逻辑卷划分为两大类一个设备头和若干个页,其中,设备头中存放页的相关信息,包括视频数据写到的当前页字段和当前偏移量字段;每个页又被分为两部分一个页头和至少一个数据块,其中,页头中包含有视频数据存入该页的开始时间字段,每个数据块又被分为两部分块头和真正的视频数据存储区,其中,块头中包含数据块的大小字段以及相对页头的时间偏移量字段。基于此存储格式提出的存储方法直接将接收到的视频数据写入裸设备中,可以减少磁盘碎片的产生,提高检索效率。另外,视频数据以数据块为单位,存储于每一个逻辑卷的页中,便于管理,且数据存取性能高。
文档编号H04N7/18GK102096698SQ20101058554
公开日2011年6月15日 申请日期2010年12月14日 优先权日2010年12月14日
发明者刘新, 李月高, 王玮, 韩珉, 高岭 申请人:青岛海信网络科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1