基于时间位图的音视频数据存取方法

文档序号:6741570阅读:160来源:国知局
专利名称:基于时间位图的音视频数据存取方法
技术领域
本发明涉及音视频数据存储领域,具体涉及一种基于时间位图的音视频数据存取方法。
背景技术
视频监控系统与PC机一样,存在用于保存音视频录像的硬盘文件系统,视频监控系统的硬盘文件系统,可以分为一类,第一类是与PC机相同的通用文件系统,第二类是专门开发的,适合特定存储目的的专用文件系统。在视频监控系统中,当使用布防计划(布防时间可以为几分钟到几天,也可能全天候)录像时,会产生很大量的数据(几GB到数十GB,甚至上TB);但是因告警触发音视频录像时,由于时间短(告警时间可以为几秒或者几分钟),通常产生较小的数据(几百KB到数十MB)。在视频监控系统中,单个摄像头需要持续不间断的录像,但所分配的硬盘空间大小通常是固定的,因此,当被分配的硬盘空间录满时,就需要回收硬盘空间。另外,在室外的视频监控系统中, 监控设备易受天气等外部环境影响,监控设备时常会被突然断电。PC机所使用的文件系统中,一个数据包对应一个文件,当超大文件和小文件混合保存时,在硬盘空间回收过程中,会在硬盘上产生大量碎片空间,影响硬盘的使用效率,降低系统的性能,而且在保存大文件的过程中,需要频繁地读写数据和文件索引,磁头频繁跳动,极容易造成硬盘故障,此外,在文件写入过程中如果突然断电,通用文件系统的索引很容易处于不一致状态,导致文件内容或整个文件丢失,甚至整个文件系统都无法使用,造成数据丢失。针对特定存储目的研发的专用文件系统可以高效率地管理整个硬盘,不受录像数据包大小影响,从录像开始时间到结束时间为一个录像段,录像段长度可从几秒钟到几十小时,甚至更长,数据可从几KB到几十TB,录像段长度只受可使用的硬盘空间限制。采用这种硬盘管理方式,磁头不需要频繁读写数据与文件索引,延长硬盘使用寿命;硬盘录满后,采用一定的回收策略进行空间回收,也不存在硬盘碎片。硬盘局部的错误,不会影响其他的录像。在突然断电的情况下,只会丢失断电前一小部分录像资料,而不影响其它录像资料;原始录像资料盘数据与PC不兼容,无法在PC上直接修改,保证原始资料的保密性和可靠性。

发明内容
本发明提供了一种基于时间位图的音视频数据存取方法,适用于大容量的存储设备,可以消除存取过程中产生的空间碎片,在异常断电时,不会造成已保存数据的丢失,同时,读取数据时分区块进行,有利于延长硬盘的使用寿命。一种基于时间位图的音视频数据存取方法,包括以下步骤:预先将磁盘空间划分为索引区和数据区,所述索引区用于存放时间位图索引和一级索引,其中时间位图索引中的各个数据位分别对应一个一级索引;所述数据区划分为若干区块,每个区块对应一个二级索引;音视频数据的存取过程依次包括录像段的写入、录像段的检索以及录像段的读取;其中,录像段的写入过程包括以下步骤:a、将待写入的录像段中的数据组装成若干个数据块,每个数据块的大小对应一个区块的容量,每个数据块中包含若干数据包;b、根据待写入的数据的属性为每个数据块建立对应的二级索引;C、将各个数据块写入区块缓冲区,同时将二级索引写入二级索引缓冲区;在将所述数据块写入区块缓冲区的过程中,每隔固定时间段,依据当前即将写入区块缓冲区的数据块的二级索引生成一级索引,并在索引区中写入该一级索引,同时将时间位图索引中与该一级索引相对应的数据位的值由O更新为I (数据位初始设置均为O);所述固定时间段的时长为5 lOmin。d、当区块缓冲区写满后,将区块缓冲区中的数据块写入数据区中,同时将对应的二级索引由二级索引缓冲区写入数据区;
录像段的检索过程包括以下步骤:e、根据需要检索的录像段的开始时间和结束时间计算时间位图索引中对应的起始数据位和结束数据位,并依据计算结果提取得到时间位图段;f、在得到的时间位图段中,将所有数据位连续为I的部分分别组成录像段索引;g、根据时间位图索引的起始数据位对应的时间,计算得到每个录像段索引的开始时间和结束时间;录像段的读取过程包括以下步骤:h、根据每个录像段索引的开始时间计算该开始时间在时间位图索引中的位置,然后在索引区中读取对应的一级索引;1、根据一级索引计算所对应的二级索引的开始位置和结束位置;j、根据二级索引计算所对应数据块在数据区中的位置;k、将数据块从数据区读入区块缓冲区内;1、以数据包的形式读取区块缓冲区中对应的数据块;该步骤中,首先判断待读取的数据包是否完整地存在于当前区块缓冲区内,若待读取的数据包完整地存在于当前区块缓冲区内,则直接读取;若待读取的数据包没有完整地存在于当前区块缓冲区内,则从数据区向区块缓冲区读取下一条二级索引所对应的数据块,再重新执行步骤I。m、将读取到数据包转换为音视频数据格式,返回给调用者。作为优选,所述索引区中还存放有时间位图的起始位置和大小,一级索引的起始位置和大小。所述索引区中还存放有时间位图的时间范围和区块的容量。索引区中也存放有硬盘信息。每个区块包括二级索引存储区和音视频数据存储区。音视频数据以数据包的形式保存,数据包由包头部和音视频数据组成。本发明在存储音视频数据时,将音视频数据以区块为单位进行分段,区块的大小是固定的,由于在不同区块中切换时仅为地址修改操作,不会因此产生操作延迟,进而引起数据丢失。本发明在存储和读取音视频数据时具有很强的局部性,将数据以数据块的形式依次写入磁盘中,可以大幅减少磁盘磁头的移动,同时,对数据的位图索引和一级索引进行预读缓存和延迟写,大幅减少了对磁盘索引区的访问,有效地延长了磁盘的使用寿命。本发明对磁盘空间管理使用简单的两级索引结构,任何操作造成中断,仅丢失缓冲区中的数据,已写入的数据仍处于一致性状态,可以在系统异常断电的情况下保证数据安全。相对于传统的通用文件系统,本发明具有很好的局部性和无空间碎片的特点,在异常断电时,不会造成已保存数据的丢失,同时数据访问局部性强,有利于延长硬盘使用寿命;相对于其他专用文件系统,本发明具有更好的空间回收策略和分段策略,有利于硬盘空间的有效利用,同时可以向T级大容量存储设备提供支持。


图1为本发明方法中录像段写入过程的流程图;图2为本发明方法中录像段检索过程的流程图;图3为本发 明方法中录像段读取过程的流程图;图4为本发明方法中时间位图、一级索引以及二级索引的对应关系图。
具体实施例方式下面结合附图,对本发明基于时间位图的音视频数据存取方法做详细描述。一种基于时间位图的音视频数据存取方法,预先将磁盘空间划分为索引区和数据区,索引区用于存放时间位图索引和一级索引,其中时间位图索引中的各个数据位分别对应一个一级索引;索引区中还存放有时间位图的起始位置和大小、一级索引的起始位置和大小、时间位图的时间范围、区块的容量以及硬盘信息。数据区划分为若干区块,每个区块对应一个二级索引。每个区块包括二级索引存储区和音视频数据存储区,将二级索引存储在二级索引存储区,音视频数据存于音视频数据存储区中。时间位图、一级索引和二级索引的对应关系如图4所示,图4中仅示意了两个一级索引与二级索引的关系,其余一级索引与二级索引的关系,可以依据需要相对应。音视频数据的存取过程依次包括录像段的写入、录像段的检索以及录像段的读取。如图1所示,录像段的写入过程包括以下步骤:a、将待写入的录像段中的数据组装成若干个数据块,每个数据块的大小对应一个区块的容量,每个数据块中包含若干数据包(数据在首先组成数据包,然后由数据包组装成数据块);划分为若干数据块后,对每个数据块增加识别标记,例如进行编号,便于在读取时,识别被破坏或不完整的数据;b、根据待写入的数据的属性为每个数据块建立对应的二级索引(由于数据读取时,从非关键帧开始读取没有意义,因此为了加快写入和读取的速度,只有数据为音视频数据且为关键帧的首包数据时,对其生成二级索引,其他数据不新生成二级索引,仍使用最近一次生成的二级索引);C、将各个数据块写入区块缓冲区,同时将二级索引写入二级索引缓冲区;在将数据块写入区块缓冲区的过程中,每隔固定时间段,依据当前即将写入区块缓冲区的数据块的二级索引生成一级索引,并在索引区中写入该一级索引,同时将时间位图索引中与该一级索引相对应的数据位的值由O更新为1(数据位的值为O时,表示该时间位图索引的相应时间段内没有存储音视频数据;数据位的值为I时,表示该时间位图索引的相应时间段内存储有音视频数据);d、当区块缓冲区写满后,将区块缓冲区中的数据块写入数据区中,同时将对应的二级索引由二级索引缓冲区写入数据区;如图2所示,录像段的检索过程包括以下步骤:e、根据需要检索的录像段的开始时间和结束时间计算时间位图索引中对应的起始数据位和结束数据位,并依据计算结果提取得到时间位图段;f、在得到的时间位图段中, 将所有数据位连续为I的部分分别组成录像段索引;g、根据时间位图索引的起始数据位对应的时间,计算得到每个录像段索引的开始时间和结束时间;如图3所示,录像段的读取过程包括以下步骤:h、根据每个录像段索引的开始时间计算该开始时间在时间位图索引中的位置,然后在索引区中读取对应的一级索引;1、根据一级索引计算所对应的二级索引的开始位置和结束位置;j、根据二级索引计算所对应数据块在数据区中的位置;k、将数据块从数据区读入区块缓冲区内;1、判断待读取的数据包是否完整地存在于当前区块缓冲区内,若待读取的数据包完整地存在于当前区块缓冲区内,则读取区块缓冲区中对应的数据包;若待读取的数据包没有完整地存在于当前区块缓冲区内,则从数据区向区块缓冲区读取下一条二级索引所对应的数据块,然后读取区块缓冲区中对应的数据包;m、将数据包转换为音视频数据格式,返回给调用者。
权利要求
1.一种基于时间位图的音视频数据存取方法,其特征在于,包括以下步骤:预先将磁盘空间划分为索引区和数据区,所述索引区用于存放时间位图索引和一级索引,其中时间位图索引中的各个数据位分别对应一个一级索引;所述数据区划分为若干区块,每个区块对应一个二级索引; 音视频数据的存取过程依次包括录像段的写入、录像段的检索以及录像段的读取;其中,录像段的写入过程包括以下步骤: a、将待写入的录像段中的数据组装成若干个数据块,每个数据块的大小对应一个区块的容量,每个数据块中包含若干数据包; b、根据待写入的数据的属性为每个数据块建立对应的二级索引; C、将各个数据块写入区块缓冲区,同时将二级索引写入二级索引缓冲区; 在将所述数据块写入区块缓冲区的过程中,每隔固定时间段,依据当前即将写入区块缓冲区的数据块的二级索引生成一级索引,并在索引区中写入该一级索引,同时将时间位图索引中与该一级索引相对应的数据位的值由O更新为I ; d、当区块缓冲区写满后,将区块缓冲区中的数据块写入数据区中,同时将对应的二级索引由二级索引缓冲区写入数据区; 录像段的检索过程包括以下步骤: e、根据需要检索的录像段的开始时间和结束时间计算时间位图索引中对应的起始数据位和结束数据位,并依据计算结果提取得到时间位图段; f、在得到的时间位图段中,将所有数据位连续为I的部分分别组成录像段索引; g、根据时间位图索引的起始数据位对应的时间,计算得到每个录像段索引的开始时间和结束时间; 录像段的读取过程包括以下步骤: h、根据每个录像段索引的开始时间计算该开始时间在时间位图索引中的位置,然后在索引区中读取对应的一级索引; 1、根据一级索引计算所对应的二级索引的开始位置和结束位置; j、根据二级索引计算所对应数据块在数据区中的位置; k、将数据块从数据区读入区块缓冲区内; 1.以数据包的形式读取区块缓冲区中对应的数据块; m、将读取到数据包转换为音视频数据格式,返回给调用者。
2.如权利要求1所述的基于时间位图的音视频数据存取方法,其特征在于,所述索引区中还存放有时间位图的起始位置和大小,一级索引的起始位置和大小。
3.如权利要求1所述的基于时间位图的音视频数据存取方法,其特征在于,所述索引区中还存放有时间位图的时间范围、区块的容量。
4.如权利要求1所述的基于时间位图的音视频数据存取方法,其特征在于,每个区块包括二级索引存储区和音视频数据存储区。
5.如权利要求1所述的基于时间位图的音视频数据存取方法,其特征在于,步骤c中,所述固定时间段的时长为5 lOmin。
6.如权利要求1所述的基于时间位图的音视频数据存取方法,其特征在于,步骤I中,首先判断待读取的数据包是否完整地存在于当前区块缓冲区内,若待读取的数据包完整地存在于当前区块缓冲区内,则直接读取; 若待读取的数据包没有完整地存在于当前区块缓冲区内,则从数据区向区块缓冲区读取下一条二级索引所对应的 数据块,再重新执行步骤I。
全文摘要
本发明公开了一种基于时间位图的音视频数据存取方法,包括以下步骤预先将磁盘空间划分为索引区和数据区,所述索引区用于存放时间位图索引和一级索引,其中时间位图索引中的各个数据位分别对应一个一级索引;所述数据区划分为若干区块,每个区块对应一个二级索引;音视频数据的存取过程依次包括录像段的写入、录像段的检索以及录像段的读取。本发明方法适用于大容量的存储设备,可以消除存取过程中产生的空间碎片,在异常断电时,不会造成已保存数据的丢失,同时,读取数据时分区块进行,有利于延长硬盘的使用寿命。
文档编号G11B27/10GK103226965SQ20131010804
公开日2013年7月31日 申请日期2013年3月29日 优先权日2013年3月29日
发明者周凡, 方翔, 田翔, 陈耀武 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1