基于嵌入式视频存储的专用文件系统设计
摘要: 基于嵌入式视频存储的特点,分析目前已有的文件系统在视频应用上的不足,提出了适合硬盘录像机的专用文件系统设计方案,并从数据存储、检索、读取和恢复等方面阐述了设计思想及具体实现。经过在相关产品上的应用,表明该文件系统可以实现高效、安全的视频存储。
引言
目前的硬盘录像机中,基于PC和采集卡的一般采用Windows系统,文件系统则多采用NTFS或FAT32;而嵌入式硬盘录像机所采用的文件系统则与厂商选择的嵌入式操作系统及其研发能力有密切的关系。目前嵌入式硬盘录像机中所采用的嵌入式操作系统有RTOS、pSOS、嵌入式 Linux、VxWorks等,一般也都采用FAT文件系统。
随着对硬盘录像机需求的增长,传统FAT格式的文件系统逐渐显得有些力不从心,例如读写效率低,磁盘容量和分区大小有限制,有文件大小限制,没有断电保护功能,文件数据安全性低等。另外,长时间连续覆盖使用后会存在大量文件碎片,降低磁盘使用率。据不完全统计,硬盘录像机(DVR)的故障率60%是由硬盘引起的。这些问题在需要高安全性的安防行业显得尤为重要,特别是当前嵌入式数字硬盘录像机朝高清和高路数方向发展的趋势下,需要存储的数据量倍增,不解决数据存储的问题就不能满足相关设备的安全性和稳定性要求。PC系统使用的FAT文件系统,对于长时间录像产生的大数据包无法管理,只能进行分包,将一段完整的录像,分为若干个小的文件包,如5、10、30 min自动形成一个文件,或者150 MB、200 MB作为一个文件。这样容易产生包与包之间丢帧现象。同时,硬盘磁头需要频繁地读写数据与文件索引,磁头频繁跳动,对于每天十几~24小时连续读写硬盘的DVR系统,极易造成硬盘故障。硬盘录满后,需要删除整段文件,但新录制的文件与老的文件大小不同,由此会在硬盘上产生大量碎片空间,影响硬盘的使用和系统效率。此外,FAT文件系统用做录像机录像资料管理还存在两个风险:一是文件分配表如果损坏,则录像资料大多会丢失;二是系统突然断电或遭到人为破坏,当前的录像数据不能保存和恢复。
录像监控行业的趋势是高清晰度和高集成度。高清晰度必然产生更大的数据量,原来一台硬盘录像机一般只有4路或8路,对文件系统的要求不是很高。现在16路以上的也已较为普遍,特别是网络集中存储方式出现,一台设备可能需要存储几十路甚至上百路的视频数据,如何可靠、安全、快捷地实现大量视频数据的存储和检索就成为一个亟待解决的突出问题。
为弥补FAT文件系统在媒体数据流存储领域中的不足之处,本文提出一种适合媒体数据流存储方式的硬盘管理文件系统,该系统可以高效率地管理整个硬盘,克服FAT文件系统的固有缺陷。
1 理论分析
本文提出的嵌入式视频专用文件系统的基本原理是把硬盘所有扇区划分为几个数据区:文件信息区、索引信息区和数据区。数据区又划分为若干个数据块,数据块的大小可以根据实际情况自由设置。通过文件信息和索引信息来管理数据块,即相当于把硬盘模拟成传统的模拟录像带,录像文件长度可从几s到几十小时,数据可从几KB到几十TB。采用这种硬盘管理方式,克服了FAT系统对长时间录像管理存在的缺陷。由于数据是连续存储,因此不存在丢帧或丢数据的情况,并且每个扇区也能实现均衡读写,延长硬盘使用寿命;硬盘录满后,采用数据块覆盖技术,不存在硬盘碎片,也能最大限度保留磁盘的录像资料。硬盘任何地方的错误,不会影响前面或后面的录像。在突然断电的情况下,也能保存断电前瞬间的图像。同时,原始录像资料盘数据与PC不兼容,无法在PC上直接修改和查看,保证原始资料的保密性和安全性。
设计思想是把硬盘记录数据的扇区划分为一个一个的数据块,并通过索引信息(索引块)为每个数据块建立索引,快速定位每个录像文件或某个时间对应的数据块;通过每个数据块的链表又可以快速定位相关联的前后数据块的位置。由于同一个视频源所产生的视频数据是严格按照时间来录像的,所以同一个视频源对应的文件信息、索引信息和数据块在机制上就保证了严格按照时间顺序来排序。但由于存在多路视频和音频数据,数据的产生和存储位置是随机的,所以必须通过索引和链表来把这些随机的数据块组织成一个个独立的录像文件。
2 文件系统结构
对硬盘所有扇区进行了重新划分,共划分为5个区域,分别为磁盘信息区、保留信息区、文件信息区、索引信息区、数据区。
通过磁盘信息可以找到文件信息、索引信息、数据区及保留信息区。而通过文件信息又可得到索引信息,从而通过索引信息单元找到数据块。这些磁盘区域的关联关系
- 在FPGA上实现H.264/AVC 视频编码标准(07-23)
- 用FPGA替代DSP实现实时视频处理(08-26)
- DSP+FPGA嵌入式多路视频监控系统硬件平台(04-10)
- 基于DSP的视频采集驱动程序的实现(07-21)
- 未来的视频依赖转码技术(06-08)
- 视频跟踪算法在Davinci SOC上的实现与优化(10-06)