基于嵌入式視頻存儲的專用文件系統設計
數據存儲的流程如圖3所示。可以看出,只要視頻數據緩存到一個數據塊的大小時就可以進行一次存盤。例如,數據塊大小為64 KB,對應為512 kbps碼率1 s的視頻數據,也就是緊急斷電等突發事故中實際丟失的視頻數據最多是一個數據塊的錄像長度。由于突然斷電導致文件信息和索引信息沒有及時存儲,可以在啟動的時候通過掃描沒有形成文件的數據塊來進行恢復。即使在最壞的情況下,硬盤的磁盤信息、文件信息及索引信息等都丟失了,完全可以通過掃描所有的數據塊來重建整個文件系統,這樣極大提高了數據的安全性。由于數據塊是順序排列,每個數據塊的讀寫幾率幾乎一致,不會因為頻繁讀寫某一個硬盤扇區導致壞道或縮短硬盤使用壽命,也提高了系統和數據的可靠性。
3.2 數據的讀取
數據的讀取可以通過兩種模式進行,一種是直接通過文件號來讀取文件,另一種是通過輸入時間檢索定位指定的錄像資料。這兩種方式最終都是定位到指定的數據塊實現數據的讀取,只要定位了第一個數據塊,就可以根據數據塊的DataBlockInfo來實現前/后數據塊的讀取,還可以通過數據塊的時間戳來實現高效的快進快退等操作。
圖4 數據恢復流程
3.3 數據的恢復
在實際使用中,不可避免會出現異常關機、斷電、磁盤壞道等問題,本系統中數據恢復的流程如圖4所示。在開機后首先檢查文件是否正常關閉。若是則不需要恢復,否則進行數據恢復。先讀取數據塊信息,然后檢驗數據塊信息的合法性,合法則更新相應信息。
3.4 錄像資料的檢索和精確定位
在本文件系統中,由于文件信息、索引信息和數據塊都是嚴格按照時間進行記錄的,所以可以采用二分法快速查找到指定錄像時間的錄像文件,再根據錄像文件信息的錄像開始時間及索引信息里包含的時間偏移和地址偏移,就可以快速準確定位指定錄像時間的數據塊,根據數據塊的幀信息可以準確定位到某一秒甚至某一幀,這樣就可以實現快速、準確的錄像資料檢索。
結語
本視頻存儲專用文件系統通過對嵌入式數字硬盤錄像機媒體數據的特點深入研究和分析,分別從存儲機制、檢索機制、讀取機制和數據恢復機制等幾個方面詳細闡述設計思想和具體的實現方法。經過相關產品的嚴格測試和大規模應用,證明此文件系統可以很好地滿足實際應用需求,在數據讀寫效率、檢索效率、檢索精確度、數據安全性和系統穩定性等幾方面都達到了相應指標,實現了對媒體流數據高效、安全的存儲。
DIY機械鍵盤相關社區:機械鍵盤DIY
評論