基于嵌入式视频存储的专用文件系统设计
数据存储的流程如图3所示。可以看出,只要视频数据缓存到一个数据块的大小时就可以进行一次存盘。例如,数据块大小为64 KB,对应为512 kbps码率1 s的视频数据,也就是紧急断电等突发事故中实际丢失的视频数据最多是一个数据块的录像长度。由于突然断电导致文件信息和索引信息没有及时存储,可以在启动的时候通过扫描没有形成文件的数据块来进行恢复。即使在最坏的情况下,硬盘的磁盘信息、文件信息及索引信息等都丢失了,完全可以通过扫描所有的数据块来重建整个文件系统,这样极大提高了数据的安全性。由于数据块是顺序排列,每个数据块的读写几率几乎一致,不会因为频繁读写某一个硬盘扇区导致坏道或缩短硬盘使用寿命,也提高了系统和数据的可靠性。
3.2 数据的读取
数据的读取可以通过两种模式进行,一种是直接通过文件号来读取文件,另一种是通过输入时间检索定位指定的录像资料。这两种方式最终都是定位到指定的数据块实现数据的读取,只要定位了第一个数据块,就可以根据数据块的DataBlockInfo来实现前/后数据块的读取,还可以通过数据块的时间戳来实现高效的快进快退等操作。
图4 数据恢复流程
3.3 数据的恢复
在实际使用中,不可避免会出现异常关机、断电、磁盘坏道等问题,本系统中数据恢复的流程如图4所示。在开机后首先检查文件是否正常关闭。若是则不需要恢复,否则进行数据恢复。先读取数据块信息,然后检验数据块信息的合法性,合法则更新相应信息。
3.4 录像资料的检索和精确定位
在本文件系统中,由于文件信息、索引信息和数据块都是严格按照时间进行记录的,所以可以采用二分法快速查找到指定录像时间的录像文件,再根据录像文件信息的录像开始时间及索引信息里包含的时间偏移和地址偏移,就可以快速准确定位指定录像时间的数据块,根据数据块的帧信息可以准确定位到某一秒甚至某一帧,这样就可以实现快速、准确的录像资料检索。
结语
本视频存储专用文件系统通过对嵌入式数字硬盘录像机媒体数据的特点深入研究和分析,分别从存储机制、检索机制、读取机制和数据恢复机制等几个方面详细阐述设计思想和具体的实现方法。经过相关产品的严格测试和大规模应用,证明此文件系统可以很好地满足实际应用需求,在数据读写效率、检索效率、检索精确度、数据安全性和系统稳定性等几方面都达到了相应指标,实现了对媒体流数据高效、安全的存储。
DIY机械键盘相关社区:机械键盘DIY
评论