一种嵌入式录像数据存储方法

文档序号:8490210阅读:558来源:国知局
一种嵌入式录像数据存储方法
【专利说明】一种嵌入式录像数据存储方法
[0001]
技术领域
[0002]本发明涉及安防技术领域,具体涉及一种嵌入式录像数据存储方法。
[0003]
【背景技术】
[0004]随着大家对公共安全意识的提高,视频监控的应用场合越来越多,传统的固定点监控不能满足诸如车载等运动物体的监控需求,因此出现了车载硬盘录像机等适用于车辆上使用的监控录像设备。
[0005]目前监控视频录像的存储介质,从容量和性价比上综合考虑,首选的还是机械硬盘。这是因为,视频数据的数据量非常大,只有机械硬盘才能满足录像保存时间的需求,而非机械结构的固态硬盘不仅价格高昂,存储容量无法满足录像保存时间的需求。比如,一般的监控都要求保存半个月以上的录像。机械硬盘的实现原理就是一个磁头不停的移动来定位读写磁碟上的数据,这种结构在保持静止的环境下使用没有问题,但用在车辆等运动物体上的时候,就会出现因为振动,颠簸等,给磁头造成机械损坏,或者磁头触碰磁碟导致磁碟数据出错的情况。所以,各个监控录像设备厂商在硬件上都会采取一些减震措施,来尽量减少对磁盘的损坏。虽然做了减震处理,使用时间长了之后,还是会出现磁盘损坏的情况。
[0006]因此,需要在存储数据的方式上面进一步做特殊处理,才能保证录像数据的可靠和尚效存取。但是如果米用现有的通用文件系统,会存在如下冋题:
1、磁盘的数据写入时机问题。通用的文件系统,无法控制磁盘的写入时机,可能会出现写入过于频繁,或者在设备颠簸最猛烈的时候写入数据,增大磁盘损坏的概率。
[0007]2、磁盘局部损坏的容错和数据恢复问题。通用的文件系统,在出现磁盘坏块之后,对数据破坏的影响不可评估,如果损坏在索引部分,整个磁盘的数据都可能丢失,并且无法恢复数据。也没有办法做到少量坏块的容错。
[0008]3、异常断电重启之后,会出现文件丢失,文件索引表损坏等问题。车载设备因其使用环境的特殊性,会经常出现异常断电的情况。比如,公交车司机下班之后,会给车上的总闸断电,这样设备就随之立即断电了。
[0009]4、磁盘碎片问题。通用的文件系统,在使用时间长了之后,尤其是录像这种频繁的写入操作,会造成磁盘碎片增多,从而影响整个设备的运行性能。
[0010]

【发明内容】

[0011]本发明的目的在于提供一种嵌入式录像数据存储方法,该方法能够有效避免现有的通用文件系统中存在的问题,不仅能够可靠高效的存储数据,还能够实现高效的数据检索和数据读取。
[0012]为实现上述目的,本发明采用了以下技术方案:
一种嵌入式录像数据存储方法,该存储方法包括以下步骤:
(1)设置录像数据存储格式;所述的录像数据存储格式包括磁盘头、索引区、数据区、备份索引区和备份磁盘头;所述的磁盘头和备份磁盘头,均用于记录磁盘的信息;所述的索引区和备份索引区,均用于记录录像数据的索引及录像原因信息;所述的数据区,用于按照数据块存储数据;
(2)根据录像数据存储格式,写入录像数据,具体包括以下步骤:
(201)监控录像设备的视频采集和编码模块产生一帧数据,开始准备写入;所述数据为视频数据或音频数据。
[0013](202)判断缓冲时间或数据量是否超过门限,若是,则执行步骤(204);若否,则执行步骤(203)。缓冲时间和数据量的门限是根据经验值在操作系统中设置的。只要缓冲时间或数据量中的任意一个超过门限,就执行步骤(204)。
[0014](203)将数据进行缓存,并返回执行步骤(202);
(204)判断监控录像设备的振动指数是否超过门限,若是,则返回执行步骤(203);若否,则执行步骤(205);
(205)判断是否存在空闲的数据区和索引区;若是,则执行步骤(207);若否,则执行步骤(206);
(206)采用删除旧索引和旧数据的方法,释放出可用的空闲数据区和索引区;
(207)采用直接访问磁盘驱动的方法,向空闲的数据区、索引区和备份索引区写入数据;
(208)完成一帧数据的写入;
(3)根据录像数据存储格式,进行录像数据查询,具体包括以下步骤:
(301)用户在录像设备的OSD或者客户端软件上输入起始时间、录像的视频通道号和录像原因等查询条件,开始查询;
(302 )根据查询的起始时间换算出索引的起始编号。在本发明所述的存储方法中,索引是按时间排列的,索引的起始时间确定之后,拿当前时间减去起始时间,除以每个索引的时间间隔,就是索引的编号。
[0015](303)读取具有上述起始编号的索引的详细信息;
(304)判断具有上述起始编号的索引中的视频通道号和录像原因是否与查询条件相符;若是,则执行步骤(305);若否,则执行步骤(308);
(305)判断是否已经找到过录像文件的开头;若是,则执行步骤(306);若否,则执行步骤(310);
(306)将读指针移动到下一个索引;
(307)判断步骤(306)中的索引是否超过了索引范围,若是,则执行步骤(311);若否,则返回执行步骤(303);
(308)判断是否找到过录像文件的开头;若是,则执行步骤(309);若否,则返回执行步骤(306);
(309 )若找到过录像文件的开头,则说明录像已结束,产生一个录像文件,将录像文件放在查询的录像文件列表中,并清空找到过录像文件开头的标记,返回执行步骤(306);所述的录像文件,其起始时间为第一次找到录像文件的开头时标记的时间,截止时间为当前索引所在的时间;
(310)若之前没有找到过录像文件的开头,当前找到了符合查询条件的索引,则说明当前的索引为录像文件的开头,在该索引所在位置记下标记,并且记下录像的开始时间,返回执行步骤(306);
(311)若索引超范围,则说明已经到了查询时间范围的尾部或者到了全部录像的尾部;此时,再对是否找到过录像文件的开头进行判断,若是,则返回执行步骤(309);若否,则执行步骤(311);
(312)将已经生产的录像文件列表作为查询结果返回;
(313)查询操作结束;
(4)根据录像数据存储格式,进行录像数据读取,具体包括以下步骤:
(401)用户根据录像查询结果,开始读取录像文件中的数据;
(402)根据录像文件的起始时间,找到录像文件开始的索引;
(403)根据录像文件开始的索引中保存的数据区偏移地址,在数据区中找到对应的数据块;
(404)在数据块中读取数据帧的帧头信息;
(405)根据帧头信息,判断该数据帧是否属于上述录像文件;若是,则执行步骤(406);若否,则执行步骤(407);
(406)读取录像数据帧;
(407)直接读取下一帧数据的帧头信息;
(408)判断数据帧是否超过了录像文件的结束时间,若是,则执行步骤(409);若否,则返回执行步骤(405);
(409)录像文件读完,录像数据读取流程结束。
[0016]由以上技术方案可知,首先,本发明将视频数据一帧一帧顺序保存在磁盘上;其次,本发明通过在磁盘的头部和尾部分别设置索引区和备份索引区,能够实现快速检索并保证数据的可靠性;再次,本发明通过设置监控录像设备的颠簸指数,在监控录像设备颠簸严重的时候,将视频数据进行缓存,直到监控录像设备颠簸指数小于门限值时,才将缓存的视频数据写入磁盘。综上所述,本发明能够解决现有的通用文件系统存在的问题,不仅能够可靠高效的存储数据,还能够实现高效的数据检索和数据读取。
[0017]和现有技术相比,本发明的有益效果为:
1、通过控制磁盘数据的写入时机,避免出现写入过于频繁,或者在设备颠簸最猛烈的时候写入数据,减少了磁盘损坏的概率。
[0018]2、在出现磁盘坏块之后,只会丢失损坏部分的录像,不影响其他地方的录像。磁盘故障非常严重的时候,只要能够恢复部分磁盘数据,也可以恢复出磁盘数据部分的录像。
[0019]3、异常断电重启之后,不会出现文件丢失,文件索引表损坏等问题。
[0020]4、长时间使用后不会产生磁盘碎片问题,不会影响整个设备的运行性能。
【附图说明】
[0021]图1是本发明录像数据存储格式的架构示意图; 图2是录像数据写入方法的流程图;
图3是录像数据查询方法的流程图;
图4是录像数据读取方法的流程图。
[0022]
【具体实施方式】
[0023]下面结合附图对本发明做进一步说明:
一种嵌入式录像数据存储方法,该存储方法包括以下步骤:
(I)设置录像数据存储格式;
如图1所示,所述的录像数据存储格式包括磁盘头、索引区、数据区、备份索引区和备份磁盘头。磁盘存储的各种头信息均以512字节(磁盘扇区的大小)为单位存储,为了避免数据错误(一般是磁盘出现损坏),在前面都存储16字节的校验数据,当校验失败的时候,说明这个扇区已经损坏了。
[0024]所述的磁盘头和备份磁盘头,均用于记录磁盘的信息。通过设置备份磁盘头,能够避免磁盘损坏导致磁盘头数据无法使用。在磁盘头和备份磁盘头上还设有预留区域,当磁盘头和备份磁盘头上前面的区域出现损坏时,就自动使用后面的预留区域。
[0025]所述的索引区和备份索引区,均用于记录录像数据的索引及录像原因信息。为检索提供便利,索引区的索引按照时间顺序排列,每个索引代表的时间是相等的。这样以来,索引区的起始时间确定之后,就可以快速根据检索的目
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1