




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于嵌入式视频存储的专用文件系统设计发布: 2010-11-03 15:02 | 作者: | 来源: 中电网 | 查看: 124次 TAG: 存储 视频 目前的硬盘录像机中,基于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个区域,分别为磁盘信息区、保留信息区、文件信息区、索引信息区、数据区。通过磁盘信息可以找到文件信息、索引信息、数据区及保留信息区。而通过文件信息又可得到索引信息,从而通过索引信息单元找到数据块。这些磁盘区域的关联关系如图1所示。图1 文件系统关系图2.1 磁盘信息区磁盘信息区的位置固定,用于保存当前磁盘信息和文件系统基本信息,如记录每个区域的具体位置和大小、信息区的使用情况、最后数据块位置等。下面为典型的磁盘信息结构:typedef STruct UInt32 Formatted;/*格式化标志*/UInt32 DBN_Num;/*总数据块数*/UInt32 DBN_Size;/*数据块的大小*/UInt32 DBN_Begin;/*当前可用数据块开始地址*/UInt32 CurrentFAT;/*当前所用的分区*/UInt32 OtherInfoBlockAddr; /*保留信息区开始扇区*/UInt32 OtherInfoBlockSize;/*保留信息区大小*/UInt32 FileInfoBlockAddr2MAX_CHANNEL; /*文件信息块开始扇区*/UInt32 FileInfoBlockSize;/*文件信息区大小*/UInt32 IndexInfoBlockAddr2 MAX_CHANNEL;/*索引信息块开始扇区*/UInt32 IndexInfoBlockSize;/*索引信息区大小*/ DiskInfo;2.2 保留信息区保留信息区用于保存其他系统信息,如操作日志信息、系统设置信息等,此区域大小可自由设定。2.3 文件信息区文件信息区用于保存录像文件的文件信息,如录像开始和结束时间,第一个数据块和最后一个数据块的位置,索引信息的位置和其他文件信息。每个文件的数据结构和大小固定。通过文件序号就可以准确定位文件信息的具体位置。文件信息区分两个部分,分别为分区一和分区二,用于描述覆盖前的文件信息和覆盖后的文件信息。每个分区根据最大文件数按录像路数顺序分配存储空间。每个文件信息包含以下信息:文件开始时间和结束时间,文件开始索引块地址和结束索引块地址,文件开始数据块地址和结束数据块地址等。下面为典型的文件信息结构:typedef struct UInt32 FileID;/*文件序号*/time_t FileStartTime;/*录像开始时间*/time_t FileEndTime;/*录像结束时间*/UInt32 FileStartDBN;/*文件开始DBN*/UInt32 FileEndDBN;/*文件结束DBN*/IndexInfoAddr IndexInfoStart;/*索引信息开始地址*/IndexInfoAddr IndexInfoEnd;/*索引信息结束地址*/ FileInfo;2.4 索引信息区索引信息区用于保存录像文件所使用数据块的索引信息。索引信息也分为两部分,分别为分区一和分区二,用于描述覆盖前和覆盖后的索引信息。每个分区根据最大文件数按录像路数顺序分配存储空间。每个录像文件至少需要使用一个索引块,每个索引块包含N个索引信息,一个数据块对应一个索引信息。每个索引信息描述下一个数据块的物理偏离和时间偏移,每个索引块描述本索引块所描述第一个数据块的物理地址和时间偏移。典型的数据结构如下:typedef struct UInt8 TimeOffset;/*与上一个数据块的时间偏移*/UInt8 DBNOffset;/*与上一个数据块的物理偏移*/ IndexInfo; /*索引信息*/typedef struct UInt16 BeginDBN;/*本索引块的起始数据块地址*/UInt16 TimeOffset;/*本索引块与上一个索引块的时间偏移*/IndexInfo IndexInfoN; IndexBlockInfo; /*索引块信息,包含N个索引信息*/2.5 数据区数据区是指整个磁盘空间除了用于以上文件系统开销外的所有空间,重新划分为若干个数据块,数据块的大小可以自由设置。数据块是指录像数据保存的最小单元,一般以32512 KB之间为宜,每个数据块的头部保留几个字节用于保存本数据块的时间戳和相关数据块的地址偏移。数据块的结构如图2所示。图2 数据块结构示意图文件系统在使用前需要获取磁盘的容量和可使用扇区的大小,并定义一个最大文件数。由于文件信息和索引信息需要占用一定的磁盘空间,并且与最大文件数密切相关,在实际使用时定义一个最小文件的大小,并通过磁盘容量得到一个固定的最大文件数,这样文件信息和索引信息所占用的磁盘空间在整个磁盘中只占很小的比例。3 系统实现3.1 数据的存储数据的存储过程比较简单,创建文件的时候系统自动分配一个唯一的文件号,并通过文件号进行计算得到文件信息和索引信息对应的磁盘地址。当有足够一个数据块大小的数据时打包并保存到当前可以使用的数据块,同时更新文件信息和索引信息。图3 数据存储流程数据存储的流程如图3所示。可以看出,只要视频数据缓存到一个数据块的大小时就可以进行一次存盘。例如,数据块大小为64 KB,对应为512 kbps码率1 s的视频数据,也就是紧急断电等突发事故中实际丢失的视频数据最多是一个数据块的录像长度。由于突然断电导致文件信息和索引信息没有及时存储,可以在启动的时候通过扫描没有形成文件的数据块来进行恢复。即使在最坏的情况下,硬盘的磁盘信息、文件信息及索引信息等都丢失了,完全可以通过扫描所有的数据块来重建整个文件系统,这样极大提高了数据的安全性。由于数据块是顺序排列,每个数据块的读写几率几乎一致,不会因为频繁读写某一个硬盘扇区导致坏道或缩短硬盘使用寿命,也提高了系统和数据的可靠性。3.2 数据的读取数据的读取可以通过两种模式进行,一种是直接通过文件号来读取文件,另一种是通过输入时间检索定位指定的录像资料。这两种方式最终都是定位到指定的数据块实现数据的读取,只要定位了第一个数据块,就可以根据数据块的DataBlockInfo来实现前/后数据块的读取,还可以通过数据块的时间戳来实现高效的快进快退等操作。图4 数据恢复流程3.3 数据的恢复在实际使用中,不可避免会出现异常关机、断电、磁盘坏道等问题,本系统中数据恢复的流程如图4所示。在开机后首先检查文件是否正常关闭。若是则不需要恢复,否则进行数据恢复。先读取数据块信息,然后检验数据块信息的合法性,合法则更新相应信息。3.4 录像资料的检索和精确定位在本文件系统中,由于文件信息、索引信息和数据块都是严格按照时间进行记录的,所以可以采用二分法快速查找到指定录像时间的录像文件,再根据录像文件信息的录像开始时间及索引信息里包含的时间偏移和地址偏移,就可以快速准确定位指定录像时间的数据块,根据数据块的帧信息可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 栲胶干燥工基础知识考核试卷及答案
- 蒸发浓缩结晶工协作考核试卷及答案
- 2025年中国打草绳数据监测报告
- 咖啡常识考试题及答案
- 警犬巡逻考试题及答案
- 离心铸管工内部技能考核试卷及答案
- 园艺产品加工工专业知识考核试卷及答案
- 节能监察考试题及答案
- 教练汽车考试题及答案
- 罐头杀菌工内部技能考核试卷及答案
- 耳鼻喉科眼科门诊临床技术操作规范2022版
- 党章党纪党规知识竞赛案例分析30题(含答案)
- 火力发电厂节水导则DLT783-2023年
- 艾滋病梅毒丙肝检测与解释
- GB/T 22076-2008气动圆柱形快换接头插头连接尺寸、技术要求、应用指南和试验
- GB/T 12325-2008电能质量供电电压偏差
- CJJ28-2014城镇供热管网工程施工及验收规范
- 三字经全文带拼音注释打印版
- 产品技术规格书模板
- 《绿色建筑评价标准》解读
- 小学数学 北师大版 六年级上册 第二单元第1课时《分数混合运算(一)》 课件
评论
0/150
提交评论