1.概述
隨著城市化進程的推進,作為一種重要的安防系統,網絡視頻監控系統以其直觀、實時和信息量大等特點,廣泛應用于交通、金融和電力等眾多領域。為保證系統的實時性和可靠性,對海量視頻數據進行高效、可靠存儲和實時、有效的訪問成為系統開發的一個重要方面。目前視頻監控系統的錄像存儲通常具有以下特性:(1)編碼格式固定:采用H.264/AVC(Advanced Video Coding)標準對圖像數據進行實時編碼,獲得穩定、優質的視頻數據流;(2)錄像數據集中存儲:通過互聯網小型計算機接口(Internet SmallComputer System Interface, ISCSI)協議對視頻數據幀進行封裝并傳輸至存儲區域網絡(Storage Area Network, SAN)進行集中文件方式存儲,保證數據存儲的可靠性。由于傳統文件系統(NTFS, EXT3 等)采用基于多級指針的數據存儲模式,在存儲視頻數據時具有I/O 操作量大和易產生磁盤“碎片”等問題,從而導致錄像存儲效率低和檢索性能差,成為系統性能及規模提升的瓶頸。本文針對傳統文件系統存儲方案的缺陷,并根據網絡視頻監控系統的錄像存儲特性,提出一種專用于網絡視頻監控系統的基于裸磁盤設備的存儲方案。
2.基于裸磁盤設備的存儲方案設計
本文基于裸磁盤設備設計了一種專用于視頻監控系統的存儲方案,方案總體設計結構如圖1 所示。本文方案主要由磁盤邏輯存儲結構、基于B+樹的錄像段索引信息管理和基于GOP 的數據緩存機制3 個部分組成。方案在將磁盤從邏輯上分為索引區與數據區的基礎上,基于GOP 設計了視頻數據緩存(Video Data Buffer, VDB)和索引數據緩存(Index Data Buffer, IDB),在錄像存儲時,將視頻數據及其索引信息先保存在VDB 和IDB 中,當緩存區被寫滿時,以GOP 為單位,采用先數據、后索引的機制將緩存中的數據一次性寫入磁盤,同時對B+樹中相應的錄像段信息節點進行更新。由于在網絡視頻監控系統中采用網絡磁盤進行數據存儲,因此該方案可有效地減少網絡傳輸與磁盤I/O 的數量,從而提高錄像存儲效率。
圖1 方案總體設計結構
方案采用B+樹對錄像信息進行組織管理,因此錄像段信息更新和錄像檢索過程即B+樹的深度搜索過程。該過程的檢索代價為樹深度L,明顯優于文件系統中文件遍歷的代價。因此,較之傳統的文件系統方案,本文方案有效提升了錄像檢索性能。
3.方案實現方法
3.1 磁盤邏輯存儲結構
本文方案根據視頻監控系統的數據存儲特點,摒棄了文件的概念,設計了一種磁盤邏輯存儲結構,所有數據均以此結構為基礎按格式進行組織并直接存儲于裸磁盤設備中,該結構如圖2 所示。
圖2 磁盤邏輯存儲結構
磁盤從邏輯上分為超級塊、主索引區和數據區3 個部分。其存儲內容具體如下:
(1)超級塊:記錄了系統的全局存儲管理信息,包括創建時間、數據塊大小、主索引樹的根節點位置和分段時長等,在磁盤格式化時寫入。
(2)主索引區:由一組索引節點組成,所有節點按B+樹結構進行組織。樹節點由若干個主索引信息組成,每個主索引代表一個錄像段。主索引中記錄了錄像段的碼流類型、起始GOP 存儲位置、GOP 數量、錄像段開始時間和結束時間等信息,其結構如圖3所示。
圖3 主索引結構
(3)數據區:等分為若干個大小為64 MB 的數據塊,末尾不足一個數據塊的部分保留不用。每個數據塊由4×1024 個16 KB 大小的數據單元(block)組成,分為次索引區和數據單元區。為了減少數據存儲過程中磁頭移動的距離、提高存儲效率,方案將所有次索引均勻分布在各個數據塊中,分別占用4個block,用于記錄本數據塊組中GOP 的存儲信息。每個次索引對應一個GOP,記錄了GOP 的數據類型、編碼格式、GOP 數據在磁盤中的起始block 編號、block 數量和GOP 時間戳等信息,其結構如圖4所示。
圖4 次索引結構
上述磁盤邏輯存儲結構為本文存儲方案的基礎,方案設計了索引與數據分離、分級錄像索引及數據結構化存儲等方法,保證了錄像存儲的高效性與精確性,為存儲效率和檢索性能的提高打下基礎;诒疚拇鎯Y構,錄像的存儲與回放流程描述如下。
錄像存儲流程如下:
Step1 將視頻數據以GOP 為單位按block 對齊寫入數據區;
Step2 寫入GOP 對應的次索引;
Step3 更新對應錄像段的主索引;
Step4 更新超級塊信息。
錄像回放流程如下:
Step1 檢索索引B+樹獲取錄像段的主索引;
Step2 通過主索引定位出錄像段的次索引區間;
Step3 根據次索引找出錄像段的視頻數據存儲block區間;
Step4 以GOP 為單位讀出錄像段視頻數據。
3.2 基于B+樹的錄像段索引信息管理
為提升系統在海量存儲中的錄像檢索性能,本文方案采用B+樹對錄像段索引信息進行組織管理。B+樹是B樹的一種變體,一棵深度為L 的m 階B+樹的最大關鍵字數量為mL,樹中的每個內部節點最多可包含m 棵子樹,子樹數量與關鍵字數量相等,節點搜索時間復雜度為O(L)。每個關鍵字對應一個指向孩子節點的指針,葉節點包含了樹中全部關鍵字信息。
本文方案中的B+樹用于組織所有主索引信息,其根節點位置記錄在超級塊中,并以錄像段的開始時間作為索引鍵值,所有主索引信息均可從葉子節點中獲取,以提供錄像的快速檢索。圖5為B+樹及其節點結構。
圖5 B+樹及其節點結構
樹中的每個節點由4個部分組成,其中,keyNum記錄了節點中的實際主索引數量,最大取值為25;main_index和children_pointer 分別保存了主索引信息及其對應的孩子節點指針; reserved 為保留字段, 使節點在空間上按1024 Byte 對齊,以提高磁盤I/O 的效率。
在檢索開始時,先從超級塊中獲取B+樹的根節點位置,通過遍歷關鍵字找出一條從根節點到葉節點的符合檢索時間條件的檢索路徑,得到相應的錄像段。假設B+樹中保存的主索引總數為N,階為m,樹的深度為L,從磁盤中讀取一個內部節點的代價為Cr,在內存中遍歷一個內部節點中的所有主索引信息的代價為Dr,則一次錄像檢索的代價Q=L×(Cr+Dr),其中,Cr 與Dr 均可近似為常量且Dr<<Cr;而在文件系統中,錄像檢索時需要進行錄像文件遍歷,其一次錄像檢索代價Q’=N×Rr,其中,Rr 為從磁盤中讀取一個錄像文件頭部的代價,與Cr 近似相等。由B+樹的性質可知L≈logmN,因此相比于文件系統,本文方案明顯提升了錄像檢索性能。
此外,本文方案通過主索引定位至次索引實現視頻數據的秒級檢索,檢索代價為常量時間復雜度O(1),而文件系統則需要讀取錄像文件并遍歷錄像文件的內容,需進行多次磁盤I/O,其帶來的檢索代價呈線性增長。因此,本文方案在錄像檢索性能上相對于文件系統的錄像存儲方案具有明顯提高。
3.3 基于GOP 的數據緩存機制
基于GOP 的數據緩存分為VDB 和IDB 2 個部分,其中,VDB 用于緩存視頻數據,IDB 用于緩存視頻GOP 對應的索引信息。VDB 以GOP 為單位進行組建,組建完成后一次性寫入磁盤。在H.264 標準中,一個GOP 由一個I 幀與若干P 幀組成,為保證GOP 中各幀的完整性和相鄰幀之間的獨立性,本機制在每幀前后各添加一個2 Byte 大小的魔數,分別稱為MAGIC_HEAD 和MAGIC_TAIL,在達到數據校驗效果的同時,也為單獨提取視頻幀提供了實現方法。圖6為VDB 緩存的組建格式。
圖6 VDB緩存組建格式
如圖6所示,VDB 緩存由幀頭部(Head)、幀數據(Frame)和魔數(MH 和MT)3 個部分組成。基于本文方案中的磁盤邏輯存儲結構,數據組織的最小單位為block,因此,在內存中組建的VDB 緩存大小為block 大小的整數倍,其計算方法如下所示:
其中,BR 為視頻碼率;ML 為魔數長度;HS 為視頻幀幀頭部大。籉R 為幀率;BS 為磁盤結構中數據單元的大小。除BR 單位為bit/s 之外,其余參數的單位均為Byte。
基于GOP 的緩存機制在保證視頻存儲可靠性的基礎上,可有效地減少網絡傳輸與磁盤I/O 的數量,獲得存儲效率的提高。同時,在該機制中還維護了一個由n 個次索引組成的IDB 緩存與VDB 緩存相對應,并采用先數據、后索引,先次索引、后主索引的寫入策略進行錄像存儲;谠搶懭氩呗,本文方案設計了一種錄像重建機制。當系統出現異常時,如編碼器異常斷電或網絡中斷等,該重建機制可在異;謴秃,根據錄像數據重建次索引、根據次索引重建主索引,最大限度地減少錄像丟失,消除數據緩存所帶來的數據與索引的非一致性問題,提升系統的容錯性。
4.測試與結果分析
為驗證方案的有效性,本文以實際網絡視頻監控系統作為測試平臺,對錄像存儲效率和錄像檢索性能進行測試。圖7 為網絡視頻監控系統的總體架構。
圖7 網絡視頻監控系統總體架構
系統由IP 攝像機、事務管理中心、視頻點播服務器和存儲服務器等設備組成,所有設備通過一個H3C 5500 千兆以太網交換機互聯。各個設備的配置信息與功能如表1所示。
表1 網絡視頻監控系統的設備配置與功能
測試時通過事務管理中心在IPSAN 上創建一個10 GB的邏輯卷,并通過ISCSI 映射給IP攝像機和視頻點播服務器,后者可通過ISCSI 協議登錄至IPSAN 并將該邏輯卷驅動成本地SCSI 硬盤。錄像的讀寫與檢索均基于此硬盤完成。
(1)存儲效率測試與分析
本文選取512 Kb/s、1 Mb/s、2 Mb/s、4 Mb/s 和8 Mb/s等5 種視頻碼率按Write-Through 寫入方式分別對傳統的文件系統(選用EXT3)與本文方案進行存儲效率測試,通過記錄連續寫入1GB 視頻數據的耗時計算平均存儲帶寬,得出錄像存儲效率對比曲線如圖8所示。
圖8 錄像存儲效率對比曲線
在網絡視頻監控系統中,數據網絡傳輸與磁盤讀寫I/O是限制錄像存儲效率的最主要因素。相比于文件系統,本文方案中錄像存儲均基于裸磁盤設備,且以GOP 為單位進行數據緩存,可有效減少數據網絡傳輸與磁盤I/O 的次數,且在等數據量下,碼率越小,減少次數越多,存儲效率提升幅度越大。目前視頻監控系統在實際使用中,為節省存儲資源節約成本,通常采用512 Kb/s 或1 Mb/s 的低碼率進行錄像存儲,通過分析圖8 中的曲線可知,在此2 種碼率下的存儲效率相比于文件系統分別提升了43.6%和30.3%,提升效果極為明顯。
(2)檢索性能測試與分析
選取碼率為1 Mb/s 的視頻分別以本文方案和文件系統進行連續錄像720h后,從中隨機選取100個時間點(精確到秒)對2 種方案的錄像進行秒級錄像檢索(即GOP 檢索),根據每次檢索耗時得出檢索性能對比曲線,如圖9 所示。從圖9中的曲線可以看出,本文方案的錄像檢索耗時保持在25 ms~35 ms之間,近似于常量值;而基于文件系統方案的錄像檢索耗時隨著GOP在錄像段中的位置增大呈線性增
長。因此,本文方案相對于文件系統明顯提高了錄像檢索性能。
圖9 錄像檢索性能對比曲線
5.結束語
本文針對文件系統的錄像存儲方案的缺陷,結合網絡視頻監控系統的錄像存儲特點,提出了一種基于裸磁盤設備的錄像存儲方案。設計一種索引與數據分離、分級錄像索引及數據存儲結構化的磁盤邏輯存儲結構,其中采用B+樹管理錄像段索引信息,并基于此結構給出了一種基于GOP 的數據緩存機制。在實際系統環境中的測試結果表明,在監控系統的512 Kb/s 和1 Mb/s 典型存儲碼率下,本文方案相比于文件系統的錄像存儲效率分別提升了43.6%和30.3%;而在錄像檢索性能上,本文方案具有常量時間復雜度,檢索耗時保持在25 ms~35 ms 之間,相比于文件系統的線性時間復雜度具有良好的優化效果。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:一種網絡視頻監控系統的專用存儲方案