新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式視頻存儲(chǔ)的專用文件系統(tǒng)設(shè)計(jì)

基于嵌入式視頻存儲(chǔ)的專用文件系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-11-15 來(lái)源:網(wǎng)絡(luò) 收藏

  每個(gè)錄像文件至少需要使用一個(gè)索引塊,每個(gè)索引塊包含N個(gè)索引信息,一個(gè)塊對(duì)應(yīng)一個(gè)索引信息。每個(gè)索引信息描述下一個(gè)塊的物理偏離和時(shí)間偏移,每個(gè)索引塊描述本索引塊所描述第一個(gè)塊的物理地址和時(shí)間偏移。典型的數(shù)據(jù)結(jié)構(gòu)如下:

  typedef struct {

  UInt8 TimeOffset;/*與上一個(gè)數(shù)據(jù)塊的時(shí)間偏移*/

  UInt8 DBNOffset;/*與上一個(gè)數(shù)據(jù)塊的物理偏移*/

  } IndexInfo; /*索引信息*/

  typedef struct {

  UInt16 BeginDBN;/*本索引塊的起始數(shù)據(jù)塊地址*/

  UInt16 TimeOffset;/*本索引塊與上一個(gè)索引塊的時(shí)間偏移*/

  IndexInfo IndexInfo[N];

  } IndexBlockInfo; /*索引塊信息,包含N個(gè)索引信息*/

  2.5 數(shù)據(jù)區(qū)

  數(shù)據(jù)區(qū)是指整個(gè)磁盤空間除了用于以上文件系統(tǒng)開銷外的所有空間,重新劃分為若干個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊的大小可以自由設(shè)置。數(shù)據(jù)塊是指錄像數(shù)據(jù)保存的最小單元,一般以32~512 KB之間為宜,每個(gè)數(shù)據(jù)塊的頭部保留幾個(gè)字節(jié)用于保存本數(shù)據(jù)塊的時(shí)間戳和相關(guān)數(shù)據(jù)塊的地址偏移。數(shù)據(jù)塊的結(jié)構(gòu)如圖2所示。


圖2 數(shù)據(jù)塊結(jié)構(gòu)示意圖

  文件系統(tǒng)在使用前需要獲取磁盤的容量和可使用扇區(qū)的大小,并定義一個(gè)最大文件數(shù)。由于文件信息和索引信息需要占用一定的磁盤空間,并且與最大文件數(shù)密切相關(guān),在實(shí)際使用時(shí)定義一個(gè)最小文件的大小,并通過(guò)磁盤容量得到一個(gè)固定的最大文件數(shù),這樣文件信息和索引信息所占用的磁盤空間在整個(gè)磁盤中只占很小的比例。

  3 系統(tǒng)實(shí)現(xiàn)

  3.1 數(shù)據(jù)的存儲(chǔ)

  數(shù)據(jù)的存儲(chǔ)過(guò)程比較簡(jiǎn)單,創(chuàng)建文件的時(shí)候系統(tǒng)自動(dòng)分配一個(gè)唯一的文件號(hào),并通過(guò)文件號(hào)進(jìn)行計(jì)算得到文件信息和索引信息對(duì)應(yīng)的磁盤地址。當(dāng)有足夠一個(gè)數(shù)據(jù)塊大小的數(shù)據(jù)時(shí)打包并保存到當(dāng)前可以使用的數(shù)據(jù)塊,同時(shí)更新文件信息和索引信息。


圖3 數(shù)據(jù)存儲(chǔ)流程

DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉