專利名稱:基于時間位圖的音視頻數(shù)據(jù)存取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音視頻數(shù)據(jù)存儲領(lǐng)域,具體涉及一種基于時間位圖的音視頻數(shù)據(jù)存取方法。
背景技術(shù):
視頻監(jiān)控系統(tǒng)與PC機一樣,存在用于保存音視頻錄像的硬盤文件系統(tǒng),視頻監(jiān)控系統(tǒng)的硬盤文件系統(tǒng),可以分為一類,第一類是與PC機相同的通用文件系統(tǒng),第二類是專門開發(fā)的,適合特定存儲目的的專用文件系統(tǒng)。在視頻監(jiān)控系統(tǒng)中,當使用布防計劃(布防時間可以為幾分鐘到幾天,也可能全天候)錄像時,會產(chǎn)生很大量的數(shù)據(jù)(幾GB到數(shù)十GB,甚至上TB);但是因告警觸發(fā)音視頻錄像時,由于時間短(告警時間可以為幾秒或者幾分鐘),通常產(chǎn)生較小的數(shù)據(jù)(幾百KB到數(shù)十MB)。在視頻監(jiān)控系統(tǒng)中,單個攝像頭需要持續(xù)不間斷的錄像,但所分配的硬盤空間大小通常是固定的,因此,當被分配的硬盤空間錄滿時,就需要回收硬盤空間。另外,在室外的視頻監(jiān)控系統(tǒng)中, 監(jiān)控設(shè)備易受天氣等外部環(huán)境影響,監(jiān)控設(shè)備時常會被突然斷電。PC機所使用的文件系統(tǒng)中,一個數(shù)據(jù)包對應一個文件,當超大文件和小文件混合保存時,在硬盤空間回收過程中,會在硬盤上產(chǎn)生大量碎片空間,影響硬盤的使用效率,降低系統(tǒng)的性能,而且在保存大文件的過程中,需要頻繁地讀寫數(shù)據(jù)和文件索引,磁頭頻繁跳動,極容易造成硬盤故障,此外,在文件寫入過程中如果突然斷電,通用文件系統(tǒng)的索引很容易處于不一致狀態(tài),導致文件內(nèi)容或整個文件丟失,甚至整個文件系統(tǒng)都無法使用,造成數(shù)據(jù)丟失。針對特定存儲目的研發(fā)的專用文件系統(tǒng)可以高效率地管理整個硬盤,不受錄像數(shù)據(jù)包大小影響,從錄像開始時間到結(jié)束時間為一個錄像段,錄像段長度可從幾秒鐘到幾十小時,甚至更長,數(shù)據(jù)可從幾KB到幾十TB,錄像段長度只受可使用的硬盤空間限制。采用這種硬盤管理方式,磁頭不需要頻繁讀寫數(shù)據(jù)與文件索引,延長硬盤使用壽命;硬盤錄滿后,采用一定的回收策略進行空間回收,也不存在硬盤碎片。硬盤局部的錯誤,不會影響其他的錄像。在突然斷電的情況下,只會丟失斷電前一小部分錄像資料,而不影響其它錄像資料;原始錄像資料盤數(shù)據(jù)與PC不兼容,無法在PC上直接修改,保證原始資料的保密性和可靠性。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于時間位圖的音視頻數(shù)據(jù)存取方法,適用于大容量的存儲設(shè)備,可以消除存取過程中產(chǎn)生的空間碎片,在異常斷電時,不會造成已保存數(shù)據(jù)的丟失,同時,讀取數(shù)據(jù)時分區(qū)塊進行,有利于延長硬盤的使用壽命。一種基于時間位圖的音視頻數(shù)據(jù)存取方法,包括以下步驟:預先將磁盤空間劃分為索引區(qū)和數(shù)據(jù)區(qū),所述索引區(qū)用于存放時間位圖索引和一級索引,其中時間位圖索引中的各個數(shù)據(jù)位分別對應一個一級索引;所述數(shù)據(jù)區(qū)劃分為若干區(qū)塊,每個區(qū)塊對應一個二級索引;音視頻數(shù)據(jù)的存取過程依次包括錄像段的寫入、錄像段的檢索以及錄像段的讀??;其中,錄像段的寫入過程包括以下步驟:a、將待寫入的錄像段中的數(shù)據(jù)組裝成若干個數(shù)據(jù)塊,每個數(shù)據(jù)塊的大小對應一個區(qū)塊的容量,每個數(shù)據(jù)塊中包含若干數(shù)據(jù)包;b、根據(jù)待寫入的數(shù)據(jù)的屬性為每個數(shù)據(jù)塊建立對應的二級索引;C、將各個數(shù)據(jù)塊寫入?yún)^(qū)塊緩沖區(qū),同時將二級索引寫入二級索引緩沖區(qū);在將所述數(shù)據(jù)塊寫入?yún)^(qū)塊緩沖區(qū)的過程中,每隔固定時間段,依據(jù)當前即將寫入?yún)^(qū)塊緩沖區(qū)的數(shù)據(jù)塊的二級索引生成一級索引,并在索引區(qū)中寫入該一級索引,同時將時間位圖索引中與該一級索引相對應的數(shù)據(jù)位的值由O更新為I (數(shù)據(jù)位初始設(shè)置均為O);所述固定時間段的時長為5 lOmin。d、當區(qū)塊緩沖區(qū)寫滿后,將區(qū)塊緩沖區(qū)中的數(shù)據(jù)塊寫入數(shù)據(jù)區(qū)中,同時將對應的二級索引由二級索引緩沖區(qū)寫入數(shù)據(jù)區(qū);
錄像段的檢索過程包括以下步驟:e、根據(jù)需要檢索的錄像段的開始時間和結(jié)束時間計算時間位圖索引中對應的起始數(shù)據(jù)位和結(jié)束數(shù)據(jù)位,并依據(jù)計算結(jié)果提取得到時間位圖段;f、在得到的時間位圖段中,將所有數(shù)據(jù)位連續(xù)為I的部分分別組成錄像段索引;g、根據(jù)時間位圖索引的起始數(shù)據(jù)位對應的時間,計算得到每個錄像段索引的開始時間和結(jié)束時間;錄像段的讀取過程包括以下步驟:h、根據(jù)每個錄像段索引的開始時間計算該開始時間在時間位圖索引中的位置,然后在索引區(qū)中讀取對應的一級索引;1、根據(jù)一級索引計算所對應的二級索引的開始位置和結(jié)束位置;j、根據(jù)二級索引計算所對應數(shù)據(jù)塊在數(shù)據(jù)區(qū)中的位置;k、將數(shù)據(jù)塊從數(shù)據(jù)區(qū)讀入?yún)^(qū)塊緩沖區(qū)內(nèi);1、以數(shù)據(jù)包的形式讀取區(qū)塊緩沖區(qū)中對應的數(shù)據(jù)塊;該步驟中,首先判斷待讀取的數(shù)據(jù)包是否完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),若待讀取的數(shù)據(jù)包完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),則直接讀取;若待讀取的數(shù)據(jù)包沒有完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),則從數(shù)據(jù)區(qū)向區(qū)塊緩沖區(qū)讀取下一條二級索引所對應的數(shù)據(jù)塊,再重新執(zhí)行步驟I。m、將讀取到數(shù)據(jù)包轉(zhuǎn)換為音視頻數(shù)據(jù)格式,返回給調(diào)用者。作為優(yōu)選,所述索引區(qū)中還存放有時間位圖的起始位置和大小,一級索引的起始位置和大小。所述索引區(qū)中還存放有時間位圖的時間范圍和區(qū)塊的容量。索引區(qū)中也存放有硬盤信息。每個區(qū)塊包括二級索引存儲區(qū)和音視頻數(shù)據(jù)存儲區(qū)。音視頻數(shù)據(jù)以數(shù)據(jù)包的形式保存,數(shù)據(jù)包由包頭部和音視頻數(shù)據(jù)組成。本發(fā)明在存儲音視頻數(shù)據(jù)時,將音視頻數(shù)據(jù)以區(qū)塊為單位進行分段,區(qū)塊的大小是固定的,由于在不同區(qū)塊中切換時僅為地址修改操作,不會因此產(chǎn)生操作延遲,進而引起數(shù)據(jù)丟失。本發(fā)明在存儲和讀取音視頻數(shù)據(jù)時具有很強的局部性,將數(shù)據(jù)以數(shù)據(jù)塊的形式依次寫入磁盤中,可以大幅減少磁盤磁頭的移動,同時,對數(shù)據(jù)的位圖索引和一級索引進行預讀緩存和延遲寫,大幅減少了對磁盤索引區(qū)的訪問,有效地延長了磁盤的使用壽命。本發(fā)明對磁盤空間管理使用簡單的兩級索引結(jié)構(gòu),任何操作造成中斷,僅丟失緩沖區(qū)中的數(shù)據(jù),已寫入的數(shù)據(jù)仍處于一致性狀態(tài),可以在系統(tǒng)異常斷電的情況下保證數(shù)據(jù)安全。相對于傳統(tǒng)的通用文件系統(tǒng),本發(fā)明具有很好的局部性和無空間碎片的特點,在異常斷電時,不會造成已保存數(shù)據(jù)的丟失,同時數(shù)據(jù)訪問局部性強,有利于延長硬盤使用壽命;相對于其他專用文件系統(tǒng),本發(fā)明具有更好的空間回收策略和分段策略,有利于硬盤空間的有效利用,同時可以向T級大容量存儲設(shè)備提供支持。
圖1為本發(fā)明方法中錄像段寫入過程的流程圖;圖2為本發(fā)明方法中錄像段檢索過程的流程圖;圖3為本發(fā) 明方法中錄像段讀取過程的流程圖;圖4為本發(fā)明方法中時間位圖、一級索引以及二級索引的對應關(guān)系圖。
具體實施例方式下面結(jié)合附圖,對本發(fā)明基于時間位圖的音視頻數(shù)據(jù)存取方法做詳細描述。一種基于時間位圖的音視頻數(shù)據(jù)存取方法,預先將磁盤空間劃分為索引區(qū)和數(shù)據(jù)區(qū),索引區(qū)用于存放時間位圖索引和一級索引,其中時間位圖索引中的各個數(shù)據(jù)位分別對應一個一級索引;索引區(qū)中還存放有時間位圖的起始位置和大小、一級索引的起始位置和大小、時間位圖的時間范圍、區(qū)塊的容量以及硬盤信息。數(shù)據(jù)區(qū)劃分為若干區(qū)塊,每個區(qū)塊對應一個二級索引。每個區(qū)塊包括二級索引存儲區(qū)和音視頻數(shù)據(jù)存儲區(qū),將二級索引存儲在二級索引存儲區(qū),音視頻數(shù)據(jù)存于音視頻數(shù)據(jù)存儲區(qū)中。時間位圖、一級索引和二級索引的對應關(guān)系如圖4所示,圖4中僅示意了兩個一級索引與二級索引的關(guān)系,其余一級索引與二級索引的關(guān)系,可以依據(jù)需要相對應。音視頻數(shù)據(jù)的存取過程依次包括錄像段的寫入、錄像段的檢索以及錄像段的讀取。如圖1所示,錄像段的寫入過程包括以下步驟:a、將待寫入的錄像段中的數(shù)據(jù)組裝成若干個數(shù)據(jù)塊,每個數(shù)據(jù)塊的大小對應一個區(qū)塊的容量,每個數(shù)據(jù)塊中包含若干數(shù)據(jù)包(數(shù)據(jù)在首先組成數(shù)據(jù)包,然后由數(shù)據(jù)包組裝成數(shù)據(jù)塊);劃分為若干數(shù)據(jù)塊后,對每個數(shù)據(jù)塊增加識別標記,例如進行編號,便于在讀取時,識別被破壞或不完整的數(shù)據(jù);b、根據(jù)待寫入的數(shù)據(jù)的屬性為每個數(shù)據(jù)塊建立對應的二級索引(由于數(shù)據(jù)讀取時,從非關(guān)鍵幀開始讀取沒有意義,因此為了加快寫入和讀取的速度,只有數(shù)據(jù)為音視頻數(shù)據(jù)且為關(guān)鍵幀的首包數(shù)據(jù)時,對其生成二級索引,其他數(shù)據(jù)不新生成二級索引,仍使用最近一次生成的二級索引);C、將各個數(shù)據(jù)塊寫入?yún)^(qū)塊緩沖區(qū),同時將二級索引寫入二級索引緩沖區(qū);在將數(shù)據(jù)塊寫入?yún)^(qū)塊緩沖區(qū)的過程中,每隔固定時間段,依據(jù)當前即將寫入?yún)^(qū)塊緩沖區(qū)的數(shù)據(jù)塊的二級索引生成一級索引,并在索引區(qū)中寫入該一級索引,同時將時間位圖索引中與該一級索引相對應的數(shù)據(jù)位的值由O更新為1(數(shù)據(jù)位的值為O時,表示該時間位圖索引的相應時間段內(nèi)沒有存儲音視頻數(shù)據(jù);數(shù)據(jù)位的值為I時,表示該時間位圖索引的相應時間段內(nèi)存儲有音視頻數(shù)據(jù));d、當區(qū)塊緩沖區(qū)寫滿后,將區(qū)塊緩沖區(qū)中的數(shù)據(jù)塊寫入數(shù)據(jù)區(qū)中,同時將對應的二級索引由二級索引緩沖區(qū)寫入數(shù)據(jù)區(qū);如圖2所示,錄像段的檢索過程包括以下步驟:e、根據(jù)需要檢索的錄像段的開始時間和結(jié)束時間計算時間位圖索引中對應的起始數(shù)據(jù)位和結(jié)束數(shù)據(jù)位,并依據(jù)計算結(jié)果提取得到時間位圖段;f、在得到的時間位圖段中, 將所有數(shù)據(jù)位連續(xù)為I的部分分別組成錄像段索引;g、根據(jù)時間位圖索引的起始數(shù)據(jù)位對應的時間,計算得到每個錄像段索引的開始時間和結(jié)束時間;如圖3所示,錄像段的讀取過程包括以下步驟:h、根據(jù)每個錄像段索引的開始時間計算該開始時間在時間位圖索引中的位置,然后在索引區(qū)中讀取對應的一級索引;1、根據(jù)一級索引計算所對應的二級索引的開始位置和結(jié)束位置;j、根據(jù)二級索引計算所對應數(shù)據(jù)塊在數(shù)據(jù)區(qū)中的位置;k、將數(shù)據(jù)塊從數(shù)據(jù)區(qū)讀入?yún)^(qū)塊緩沖區(qū)內(nèi);1、判斷待讀取的數(shù)據(jù)包是否完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),若待讀取的數(shù)據(jù)包完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),則讀取區(qū)塊緩沖區(qū)中對應的數(shù)據(jù)包;若待讀取的數(shù)據(jù)包沒有完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),則從數(shù)據(jù)區(qū)向區(qū)塊緩沖區(qū)讀取下一條二級索引所對應的數(shù)據(jù)塊,然后讀取區(qū)塊緩沖區(qū)中對應的數(shù)據(jù)包;m、將數(shù)據(jù)包轉(zhuǎn)換為音視頻數(shù)據(jù)格式,返回給調(diào)用者。
權(quán)利要求
1.一種基于時間位圖的音視頻數(shù)據(jù)存取方法,其特征在于,包括以下步驟:預先將磁盤空間劃分為索引區(qū)和數(shù)據(jù)區(qū),所述索引區(qū)用于存放時間位圖索引和一級索引,其中時間位圖索引中的各個數(shù)據(jù)位分別對應一個一級索引;所述數(shù)據(jù)區(qū)劃分為若干區(qū)塊,每個區(qū)塊對應一個二級索引; 音視頻數(shù)據(jù)的存取過程依次包括錄像段的寫入、錄像段的檢索以及錄像段的讀?。黄渲?,錄像段的寫入過程包括以下步驟: a、將待寫入的錄像段中的數(shù)據(jù)組裝成若干個數(shù)據(jù)塊,每個數(shù)據(jù)塊的大小對應一個區(qū)塊的容量,每個數(shù)據(jù)塊中包含若干數(shù)據(jù)包; b、根據(jù)待寫入的數(shù)據(jù)的屬性為每個數(shù)據(jù)塊建立對應的二級索引; C、將各個數(shù)據(jù)塊寫入?yún)^(qū)塊緩沖區(qū),同時將二級索引寫入二級索引緩沖區(qū); 在將所述數(shù)據(jù)塊寫入?yún)^(qū)塊緩沖區(qū)的過程中,每隔固定時間段,依據(jù)當前即將寫入?yún)^(qū)塊緩沖區(qū)的數(shù)據(jù)塊的二級索引生成一級索引,并在索引區(qū)中寫入該一級索引,同時將時間位圖索引中與該一級索引相對應的數(shù)據(jù)位的值由O更新為I ; d、當區(qū)塊緩沖區(qū)寫滿后,將區(qū)塊緩沖區(qū)中的數(shù)據(jù)塊寫入數(shù)據(jù)區(qū)中,同時將對應的二級索引由二級索引緩沖區(qū)寫入數(shù)據(jù)區(qū); 錄像段的檢索過程包括以下步驟: e、根據(jù)需要檢索的錄像段的開始時間和結(jié)束時間計算時間位圖索引中對應的起始數(shù)據(jù)位和結(jié)束數(shù)據(jù)位,并依據(jù)計算結(jié)果提取得到時間位圖段; f、在得到的時間位圖段中,將所有數(shù)據(jù)位連續(xù)為I的部分分別組成錄像段索引; g、根據(jù)時間位圖索引的起始數(shù)據(jù)位對應的時間,計算得到每個錄像段索引的開始時間和結(jié)束時間; 錄像段的讀取過程包括以下步驟: h、根據(jù)每個錄像段索引的開始時間計算該開始時間在時間位圖索引中的位置,然后在索引區(qū)中讀取對應的一級索引; 1、根據(jù)一級索引計算所對應的二級索引的開始位置和結(jié)束位置; j、根據(jù)二級索引計算所對應數(shù)據(jù)塊在數(shù)據(jù)區(qū)中的位置; k、將數(shù)據(jù)塊從數(shù)據(jù)區(qū)讀入?yún)^(qū)塊緩沖區(qū)內(nèi); 1.以數(shù)據(jù)包的形式讀取區(qū)塊緩沖區(qū)中對應的數(shù)據(jù)塊; m、將讀取到數(shù)據(jù)包轉(zhuǎn)換為音視頻數(shù)據(jù)格式,返回給調(diào)用者。
2.如權(quán)利要求1所述的基于時間位圖的音視頻數(shù)據(jù)存取方法,其特征在于,所述索引區(qū)中還存放有時間位圖的起始位置和大小,一級索引的起始位置和大小。
3.如權(quán)利要求1所述的基于時間位圖的音視頻數(shù)據(jù)存取方法,其特征在于,所述索引區(qū)中還存放有時間位圖的時間范圍、區(qū)塊的容量。
4.如權(quán)利要求1所述的基于時間位圖的音視頻數(shù)據(jù)存取方法,其特征在于,每個區(qū)塊包括二級索引存儲區(qū)和音視頻數(shù)據(jù)存儲區(qū)。
5.如權(quán)利要求1所述的基于時間位圖的音視頻數(shù)據(jù)存取方法,其特征在于,步驟c中,所述固定時間段的時長為5 lOmin。
6.如權(quán)利要求1所述的基于時間位圖的音視頻數(shù)據(jù)存取方法,其特征在于,步驟I中,首先判斷待讀取的數(shù)據(jù)包是否完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),若待讀取的數(shù)據(jù)包完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),則直接讀取; 若待讀取的數(shù)據(jù)包沒有完整地存在于當前區(qū)塊緩沖區(qū)內(nèi),則從數(shù)據(jù)區(qū)向區(qū)塊緩沖區(qū)讀取下一條二級索引所對應的 數(shù)據(jù)塊,再重新執(zhí)行步驟I。
全文摘要
本發(fā)明公開了一種基于時間位圖的音視頻數(shù)據(jù)存取方法,包括以下步驟預先將磁盤空間劃分為索引區(qū)和數(shù)據(jù)區(qū),所述索引區(qū)用于存放時間位圖索引和一級索引,其中時間位圖索引中的各個數(shù)據(jù)位分別對應一個一級索引;所述數(shù)據(jù)區(qū)劃分為若干區(qū)塊,每個區(qū)塊對應一個二級索引;音視頻數(shù)據(jù)的存取過程依次包括錄像段的寫入、錄像段的檢索以及錄像段的讀取。本發(fā)明方法適用于大容量的存儲設(shè)備,可以消除存取過程中產(chǎn)生的空間碎片,在異常斷電時,不會造成已保存數(shù)據(jù)的丟失,同時,讀取數(shù)據(jù)時分區(qū)塊進行,有利于延長硬盤的使用壽命。
文檔編號G11B27/10GK103226965SQ20131010804
公開日2013年7月31日 申請日期2013年3月29日 優(yōu)先權(quán)日2013年3月29日
發(fā)明者周凡, 方翔, 田翔, 陳耀武 申請人:浙江大學