一種錄像鎖定的方法和裝置制造方法
【專利摘要】本發(fā)明提供一種錄像鎖定的方法,該方法包括:確定本次待鎖定錄像對應(yīng)的索引,將確定的索引的鎖定引用計數(shù)加第二預(yù)設(shè)值,每個索引的鎖定引用計數(shù)初始值為第一預(yù)設(shè)值;在對錄像執(zhí)行循環(huán)復(fù)寫時,跳過鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引對應(yīng)的錄像單元。本發(fā)明的方案實現(xiàn)了對錄像的靈活鎖定。本發(fā)明還通過對鎖定錄像狀態(tài)的設(shè)置,實現(xiàn)了對錄像的快速檢索。本發(fā)明還支持對錄像的靈活解鎖。
【專利說明】一種錄像鎖定的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲【技術(shù)領(lǐng)域】,尤其涉及一種錄像鎖定的方法和裝置。
【背景技術(shù)】
[0002]隨著高清在監(jiān)控業(yè)務(wù)系統(tǒng)中的應(yīng)用,對監(jiān)控錄像存儲的可靠性、性能等方面的要求越來越高。而前端IP編碼器設(shè)備到IPSAN的端到端的媒體流iSCSI塊直存技術(shù)就是一種較好的錄像存儲方案。
[0003]在存儲方式上,“媒體流塊直存”的數(shù)據(jù)管理方式拋棄了媒體服務(wù)器。在IP網(wǎng)絡(luò)的基礎(chǔ)上,在編碼設(shè)備中集成了 iSCSI模塊,使得編碼設(shè)備可以基于iSCSI協(xié)議端到端的把錄像數(shù)據(jù)寫入IPSAN存儲設(shè)備中。
[0004]為解決海量視頻監(jiān)控數(shù)據(jù)在IPSAN上的高效存儲與快速檢索,同時避免通用文件系統(tǒng)的文件碎片、可靠性低等問題,iSCSI塊直存需要設(shè)計專有的塊存儲格式,一方面支持錄像數(shù)據(jù)IO寫入的高性能、高可靠性,同時支持對海量錄像數(shù)據(jù)的快速檢索。
[0005]對于監(jiān)控存儲,具有單個攝像機(jī)的錄像數(shù)據(jù)獨立、24小時連續(xù)寫入的特點。因此,在存儲系統(tǒng)中一般為每個攝像機(jī)劃分獨立的存儲空間,并提供支持可連續(xù)長時間寫入的大塊存儲空間,從而滿足攝像機(jī)錄像順序?qū)懭氪疟P的高性能需求。
[0006]同時,由于每個攝像機(jī)的視頻監(jiān)控錄像數(shù)據(jù)具有天然按照時間先后排序的特點。因此,可以在塊存儲格式中增加時間索引,記錄到塊存儲格式中的索引區(qū)域。從而在檢索錄像時,可以基于時間索引,快速定位到指定時間的錄像數(shù)據(jù)。
[0007]對于iSCSI塊存儲系統(tǒng),在單個攝像機(jī)的磁盤存儲空間中,一種通用的監(jiān)控錄像塊存儲格式如圖1。
[0008]該塊存儲格式用于在磁盤存儲空間中,存儲單個攝像機(jī)的所有I幀組錄像數(shù)據(jù)。同時為了支持從海量錄像數(shù)據(jù)中,基于輸入時間快速查找對應(yīng)的I幀組,因此在塊格式實現(xiàn)了對數(shù)據(jù)單元的切分,并對數(shù)據(jù)單元及錄像數(shù)據(jù)增加了多級的時間索引。
[0009]該塊格式的主要組成部分如下:
[0010](I)超級塊:一般有幾十K字節(jié),用來記錄塊格式的版本號、攝像機(jī)編碼。由于超級塊中的數(shù)據(jù)有限,因此通常有較多的預(yù)留空間;
[0011](2) —級時間索引區(qū):超級塊后面為一級時間索引區(qū),索引區(qū)中的每條時間索引與一個數(shù)據(jù)單元一一對應(yīng)(比如:第η條一級時間索引,對應(yīng)第η個數(shù)據(jù)單元),用于記錄該數(shù)據(jù)單元的最早I幀組的時間,從而可以基于時間快速定位到某個數(shù)據(jù)單元;
[0012](3)數(shù)據(jù)單元及二級時間索引區(qū):一級時間索引區(qū)后面是一系列的數(shù)據(jù)單元,用于保存錄像的I幀組數(shù)據(jù)。為了保證I幀組數(shù)據(jù)的連續(xù)寫入,數(shù)據(jù)單元一般達(dá)到幾百M字節(jié)。每個數(shù)據(jù)單元是以一個二級時間索引區(qū)開始的,其中每條時間索引項與一個I幀組一一對應(yīng)(比如:第η條二級時間索引,對應(yīng)本數(shù)據(jù)單元的第η個I幀組),用于記錄該I幀組的開始時間,從而可以基于時間快速定位某個I幀組。二級索引區(qū)之后,就是本數(shù)據(jù)單元中的所有I幀組數(shù)據(jù);[0013](4) I幀組:一個I幀組就是I秒的監(jiān)控錄像數(shù)據(jù)。在I幀組中,存儲的是該I幀組的所有視音頻數(shù)據(jù)包。
[0014]在前端I幀組數(shù)據(jù)通過iSCSI寫入塊存儲的數(shù)據(jù)單元時,同時將該I幀組的時間按照二級索引的時間格式,寫入到該I幀組對應(yīng)的二級索引項位置。如果該數(shù)據(jù)單元最早時間的二級索引發(fā)生變化時,則將該二級索引按照一級索引的時間格式要求,寫入到一級索引區(qū)的對應(yīng)位置。
[0015]上述的一級時間索引、二級時間索引,本質(zhì)上就是一個整數(shù)值(時間都可以通過“從1972年到指定時間的秒數(shù)”的整數(shù)值來表示)。由于攝像機(jī)產(chǎn)生的I幀組數(shù)據(jù),其時間值天然就是從小到大遞增,因此上述的時間索引數(shù)據(jù),不管是一級時間索引區(qū)、還是二級時間索引區(qū),在寫入索引數(shù)據(jù)的同時,同時實現(xiàn)了按時間整數(shù)值從小到大的排序。
[0016]在用戶檢索監(jiān)控錄像時,一般會指定攝像機(jī)、時間,監(jiān)控存儲系統(tǒng)實現(xiàn)從指定攝像機(jī)的存儲空間中,查找到指定時間的I幀組錄像。
[0017]在iSCSI塊存儲方式的監(jiān)控存儲系統(tǒng)中,通常是由DM (數(shù)據(jù)管理服務(wù)器)設(shè)備實現(xiàn)上述查找處理。對于上述塊存儲格式,DM服務(wù)器首先會從磁盤中讀取攝像機(jī)的一級時間索引區(qū)到內(nèi)存中,基于輸入時間查找到滿足條件的一級時間索引,從而找到該一級索引對應(yīng)的數(shù)據(jù)單元。
[0018]然后,再從磁盤中讀取該數(shù)據(jù)單元的二級時間索引區(qū)到內(nèi)存中,基于輸入時間找到滿足條件的二級時間索引,從而找到該二級索引對應(yīng)的I幀組。
[0019]最后,將找到的I幀組從磁盤裝載到內(nèi)存,并最終將I幀組數(shù)據(jù)返回給用戶,從而實現(xiàn)了基于指定攝像機(jī)與時間、快速查找對應(yīng)I幀組的功能需求。
[0020]從上述流程來看,基于用戶指定時間、快速定位到對應(yīng)的一級時間索引、二級時間索引,是查找流程中最關(guān)鍵的環(huán)節(jié)。而上述基于時間查找索引的流程,由于用戶指定的時間、塊存儲格式中的時間索引都是一個整數(shù),本質(zhì)上就是一個從大量的整數(shù)序列(即塊格式中的時間索引區(qū))中,快速查找到輸入整數(shù)(用戶指定時間)的流程。
[0021]如前面所述,由于一級、二級時間索引區(qū)中所有時間索引,都已經(jīng)嚴(yán)格按照時間整數(shù)值從小到大實現(xiàn)了排序,因此被簡化為一個從大量的排序整數(shù)序列中、找到輸入整數(shù)的問題,從而可以基于二分查找等成熟高效的查找算法,秒級定位到與輸入時間匹配的時間索引。
[0022]上述監(jiān)控存儲塊格式,之所以能夠基于輸入時間快速查找到時間索引,其前提條件是:時間索引區(qū)中所有的時間索引,都已經(jīng)嚴(yán)格按照時間整數(shù)值從小到大實現(xiàn)了排序。
[0023]在攝像機(jī)長時間的錄像存儲過程中,老錄像會不斷被新錄像循環(huán)覆蓋。在這種循環(huán)復(fù)寫的情況下,還是繼續(xù)保持了時間索引從當(dāng)前正在覆蓋的位置,在整個時間索引區(qū)中嚴(yán)格按照時間整數(shù)值從小到大排序的特點。
[0024]因此上述前提條件,在監(jiān)控存儲業(yè)務(wù)對攝像機(jī)某些時間段錄像的留存期沒有特殊要求的情況下,是能夠滿足的。
[0025]而在監(jiān)控存儲應(yīng)用中,經(jīng)常出現(xiàn)的一個需求是:對攝像機(jī)關(guān)鍵時間段的錄像,需要支持錄像鎖定與解鎖。比如:在公安的監(jiān)控存儲應(yīng)用中,一旦發(fā)生重大案件,則該案件時間段的關(guān)鍵錄像在被用戶完成備份或者下載之前,需要被用戶鎖定。在錄像循環(huán)復(fù)寫過程中,不能復(fù)寫這些被用戶鎖定的錄像。[0026]在用戶對重要錄像完成備份或者下載之后,為了恢復(fù)攝像機(jī)的錄像留存期,用戶可以對錄像執(zhí)行解鎖操作,這樣在下次循環(huán)寫到這些錄像時,可以被新錄像覆蓋。
[0027]如何在塊格式錄像中執(zhí)行鎖定和解鎖操作是本發(fā)明需要解決的問題。
【發(fā)明內(nèi)容】
[0028]有鑒于此,本發(fā)明提供一種錄像鎖定的方法和裝置。
[0029]該錄像鎖定的方法,包括:確定本次待鎖定錄像對應(yīng)的索引,將確定的索引的鎖定引用計數(shù)加第二預(yù)設(shè)值,每個索引的鎖定引用計數(shù)初始值為第一預(yù)設(shè)值;在對錄像執(zhí)行循環(huán)復(fù)寫時,跳過鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引對應(yīng)的錄像單元。
[0030]優(yōu)選地,將每個索引的初始狀態(tài)設(shè)為“未使用”;將循環(huán)復(fù)寫時跳過的索引的狀態(tài)標(biāo)識為“已跳過”;所述確定待鎖定錄像對應(yīng)的索引具體為:對索引中狀態(tài)為“已跳過”的索引按照時間進(jìn)行排序,對索引中狀態(tài)未標(biāo)識“已跳過”的索引也按照時間進(jìn)行排序;當(dāng)待查找的鎖定錄像開始時間小于排序后的未標(biāo)識“已跳過”的索引序列的第一條索引包含的時間,則判斷待查找錄像開始時間是位于排序后的“已跳過”索引序列中,否則判斷待查找錄像開始時間位于排序后的未標(biāo)識“已跳過”的索引序列中;
[0031]如果所述待鎖定錄像的開始時間是位于排序后的“已跳過”索引中,則在該排序后的“已跳過”索引的末尾增加排序后的未標(biāo)識“已跳過”索引中的第一條索引形成一新的索引序列,按照二分查找算法在該新的索引序列中查找與該待鎖定錄像的開始時間匹配的索弓I ;
[0032]如果所述待鎖定錄像的時間是位于排序后的未標(biāo)識“已跳過”的索引中;則按照二分查找算法在該未標(biāo)識“已跳過”的索引序列中查找與該待鎖定錄像的開始時間匹配的索引。
[0033]優(yōu)選地,在確定本次待鎖定的錄像對應(yīng)的索引,且未將所述索引的鎖定引用計數(shù)加第二預(yù)設(shè)值之前,將所述本次待鎖定的錄像對應(yīng)的索引中鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引記錄在鎖定引用區(qū)中的鎖定索引段節(jié)點中,并將該節(jié)點的狀態(tài)標(biāo)識為“已使用”;該節(jié)點的狀態(tài)代表節(jié)點所包含的每一個索引的狀態(tài);在對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引時,將該索引匹配鎖定索引段節(jié)點的開始索弓丨,如果匹配成功,將匹配成功的鎖定索引段節(jié)點的狀態(tài)由“已使用”更改為“已跳過”。
[0034]優(yōu)選地,鎖定索引段節(jié)點被記錄在超級塊中開辟的鎖定索引區(qū)中。
[0035]優(yōu)選地,鎖定索引段節(jié)點的結(jié)構(gòu)包括節(jié)點狀態(tài),節(jié)點索引總數(shù)、起始索引信息和結(jié)束索引信息;其中起始索引信息用來記錄一段連續(xù)索引的首個索引信息,結(jié)束索引信息用來記錄一段索引的末尾索引信息。
[0036]優(yōu)選地,當(dāng)針對鎖定錄像進(jìn)行解鎖時,確定待解鎖的錄像對應(yīng)的索引,將該索引的鎖定引用計數(shù)減所述第二預(yù)設(shè)值;當(dāng)循環(huán)復(fù)寫到鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引時,執(zhí)行對該索引對應(yīng)的錄像單元的復(fù)寫。
[0037]優(yōu)選地,當(dāng)針對鎖定的錄像進(jìn)行解鎖時,確定待解鎖的錄像對應(yīng)的索引,將所述索引的鎖定引用計數(shù)減第二預(yù)設(shè)值,如果減該第二預(yù)設(shè)值后所述索引的鎖定引用計數(shù)為第一預(yù)設(shè)值,則將所述鎖定引用計數(shù)為第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已使用”的鎖定索引段節(jié)點的開始索引,如果匹配成功,則將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I;如果該節(jié)點的索引總數(shù)減為O后,則將該節(jié)點從鎖定引用區(qū)中刪除。
[0038]優(yōu)選地,在對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)為第一預(yù)設(shè)值的索引時,將所述鎖定引用計數(shù)為該第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已跳過”的鎖定索引段節(jié)點的開始索引,如果匹配成功,則將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I ;如果該節(jié)點的索引總數(shù)減為0后,則將該節(jié)點從鎖定引用區(qū)中刪除。
[0039]一種錄像鎖定的裝置,該裝置包括:索引查找單元,用于確定本次待鎖定錄像對應(yīng)的索引;計數(shù)單元,用于將確定的索引的鎖定引用計數(shù)加第二預(yù)設(shè)值,每個索引的鎖定引用計數(shù)初始值為第一預(yù)設(shè)值;錄像寫單元,用于在對錄像執(zhí)行循環(huán)復(fù)寫時,跳過鎖定引用計數(shù)大于的所述第一預(yù)設(shè)值的索引對應(yīng)的錄像單元。
[0040]優(yōu)選地,該裝置還包括:狀態(tài)標(biāo)識單元,用于將循環(huán)復(fù)寫時跳過的索引的狀態(tài)標(biāo)識為“已跳過”,每個索引的初始狀態(tài)為“未使用”;索引查找單元執(zhí)行如下操作來確定待鎖定錄像對應(yīng)的索引:對索引中狀態(tài)為“已跳過”的索引按照時間進(jìn)行排序,對索引中狀態(tài)未標(biāo)識“已跳過”的索引也按照時間進(jìn)行排序;當(dāng)待查找的鎖定錄像開始時間小于排序后的未標(biāo)識“已跳過”的索引序列的第一條索引包含的時間,則判斷待查找錄像開始時間是位于排序后的“已跳過”索引序列中,否則判斷待查找錄像開始時間位于排序后的未標(biāo)識“已跳過”的索引序列中;
[0041]如果所述待鎖定錄像的開始時間是位于排序后的“已跳過”索引中,則在該排序后的“已跳過”索引的末尾增加排序后的未標(biāo)識“已跳過”索引中的第一條索引形成一新的索引序列,按照二分查找算法在該新的索引序列中查找與該待鎖定錄像的開始時間匹配的索弓I ;
[0042]如果所述待鎖定錄像的時間是位于排序后的未標(biāo)識“已跳過”的索引中;則按照二分查找算法在該未標(biāo)識“已跳過”的索引序列中查找與該待鎖定錄像的開始時間匹配的索引。
[0043]優(yōu)選地,該裝置還包括鎖定索引段記錄單元;在確定本次待鎖定的錄像對應(yīng)的索弓丨,且未將所述索引的鎖定引用計數(shù)加第二預(yù)設(shè)值之前,該鎖定索引段記錄單元將所述本次待鎖定的錄像對應(yīng)的索引中鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引記錄在鎖定引用區(qū)中的鎖定索弓I段節(jié)點中,狀態(tài)標(biāo)識單元將該節(jié)點的狀態(tài)標(biāo)識為“已使用”;該節(jié)點的狀態(tài)代表節(jié)點所包含的每一個索引的狀態(tài);該裝置還包括:匹配單元;在錄像寫單元對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引時,匹配單元將該索引匹配鎖定索引段節(jié)點的開始索引;如果匹配成功,狀態(tài)標(biāo)識單元將匹配成功的鎖定索引段節(jié)點的狀態(tài)由“已使用”更改為“已跳過”。
[0044]優(yōu)選地,鎖定索引段節(jié)點被記錄在超級塊中開辟的鎖定索引區(qū)中。
[0045]優(yōu)選地,鎖定索引段節(jié)點的結(jié)構(gòu)包括節(jié)點狀態(tài),節(jié)點索引總數(shù)、起始索引信息和結(jié)束索引信息;其中起始索引信息用來記錄一段連續(xù)索引的首個索引信息,結(jié)束索引信息用來記錄一段索引的末尾索引信息。
[0046]優(yōu)選地,當(dāng)針對鎖定錄像進(jìn)行解鎖時,索引查找單元,還用于確定待解鎖的錄像對應(yīng)的索引;計數(shù)單元,還用于將該待解索錄像的索引的鎖定引用計數(shù)減所述第二預(yù)設(shè)值;錄像寫單元,還用于當(dāng)循環(huán)復(fù)寫到鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引時,執(zhí)行對該索引對應(yīng)的錄像單元的復(fù)寫。
[0047]優(yōu)選地,該裝置還包括:鎖定索引段更新單元;索引查找單元,還用于確定待解鎖的錄像對應(yīng)的索引;計數(shù)單元,還用于將該待解索錄像的索引的鎖定引用計數(shù)減第二預(yù)設(shè)值;如果減該第二預(yù)設(shè)值后所述索引的鎖定引用計數(shù)為第一預(yù)設(shè)值,則匹配單元將所述鎖定引用計數(shù)為第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已使用”的鎖定索引段節(jié)點的開始索引;如果匹配成功,鎖定索引段更新單元將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減1,如果該節(jié)點的索引總數(shù)減為O后,則將該節(jié)點從鎖定引用區(qū)中刪除。
[0048]優(yōu)選地,在對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)為第一預(yù)設(shè)值的索引時,匹配單元將所述鎖定引用計數(shù)為該第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已跳過”的鎖定索引段節(jié)點的開始索引;如果匹配成功,則鎖定索引段更新單元將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I;如果該節(jié)點的索引總數(shù)減為O后,則將該節(jié)點從鎖定引用區(qū)中刪除。相較于現(xiàn)有技術(shù),本發(fā)明方案實現(xiàn)了對錄像的靈活鎖定和解鎖,在鎖定的情況下支持對錄像的快速檢索。
【專利附圖】
【附圖說明】
[0049]圖1是現(xiàn)有的錄像索引結(jié)構(gòu)圖。
[0050]圖2是本發(fā)明實施例所舉例子對應(yīng)的圖示。
[0051]圖3是本發(fā)明實施例所舉另一例子對應(yīng)的圖示。
[0052]圖4是本發(fā)明實施例鎖定引用區(qū)的結(jié)構(gòu)圖。
[0053]圖5是本發(fā)明實施例應(yīng)用的監(jiān)控網(wǎng)絡(luò)圖。
[0054]圖6是本發(fā)明裝置邏輯結(jié)構(gòu)圖。
【具體實施方式】
[0055]在對存儲的錄像進(jìn)行鎖定時,需要通過錄像鎖定標(biāo)識將該段錄像標(biāo)識出來,以使得后續(xù)復(fù)寫時,跳過鎖定的錄像。由于索引和錄像是一一對應(yīng)的,所以對鎖定的錄像的標(biāo)識就轉(zhuǎn)化為對該錄像對應(yīng)的索引的標(biāo)識。以計算機(jī)程序?qū)崿F(xiàn)本發(fā)明技術(shù)方案為例,請參圖6,本實施例的錄像鎖定裝置從邏輯上可以分為:索引查找單元,計數(shù)單元,錄像寫單元。
[0056]索引查找單元用來確定待鎖定錄像對應(yīng)的索引;計數(shù)單元用來計數(shù)同一錄像被鎖定的次數(shù);在本實施例中,針對每一個索引建立該索引對應(yīng)的鎖定引用計數(shù),如果錄像被鎖定一次,該錄像對應(yīng)的索引的鎖定引用計數(shù)由計數(shù)單元執(zhí)行加I的處理,每個索引的鎖定引用計數(shù)的初始值為O ;如果錄像被解鎖一次,該錄像對應(yīng)的索引的鎖定引用計數(shù)由計數(shù)單元執(zhí)行減I的操作,該鎖定引用計數(shù)可以用索引結(jié)構(gòu)中預(yù)留的字節(jié)進(jìn)行標(biāo)識;錄像寫單元,在進(jìn)行復(fù)寫時跳過鎖定引用計數(shù)大于O的索引對應(yīng)的錄像,不執(zhí)行復(fù)寫。鎖定引用計數(shù)初始值除了設(shè)置為0,還可以設(shè)置為其他常數(shù);鎖定一次,計數(shù)單元除了可以加1,還可以加其他常數(shù);同樣的,解鎖一次,計數(shù)單元還可以減其他常數(shù);但是鎖定一次,解鎖一次,增加的或者減去的常數(shù)應(yīng)該一致。[0057]由于每個索引都對應(yīng)一個鎖定引用計數(shù),所以在用戶鎖定的多段錄像重復(fù)包含同一個或多個索引對應(yīng)的錄像,即用戶對時間存在重疊的多段錄像進(jìn)行鎖定時,就能保證只有在用戶對最后一段錄像執(zhí)行解鎖后,才能對之前鎖定的錄像進(jìn)行復(fù)寫。請參圖2的例子,用戶I對索引3?6對應(yīng)的錄像進(jìn)行了鎖定,用戶2對索引5?8對應(yīng)的錄像進(jìn)行了鎖定,則索引3和索引4各自的鎖定引用計數(shù)為1,索引5和索引6各自的鎖定引用計數(shù)為2,索引7和索引8的鎖定引用計數(shù)為I ;其余索引的鎖定引用計數(shù)為O。當(dāng)用戶I對索引3?6對應(yīng)的錄像進(jìn)行解鎖后,索引5?8各自的鎖定引用計數(shù)為1,其余索引各自的鎖定引用計數(shù)為O。此時,對于索引5?8對應(yīng)的錄像還不能執(zhí)行復(fù)寫,只有用戶2對索引5?8對應(yīng)的錄像進(jìn)行解鎖使得索引5?8各自的鎖定引用計數(shù)為0時才能進(jìn)行復(fù)寫。因此在進(jìn)行復(fù)寫時,當(dāng)需要判斷某個錄像單元(一條索引對應(yīng)的錄像稱為錄像單元)是否被鎖定時,只需要判斷其對應(yīng)的索引的鎖定引用計數(shù)值;如果大于0,說明這個該錄像單元被鎖定,不能對其進(jìn)行復(fù)寫;如果等于0,說明該錄像單元未被鎖定或者已經(jīng)解鎖,可以對其進(jìn)行復(fù)寫。
[0058]在錄像復(fù)寫的情況下,鎖定錄像對應(yīng)的索引被跳過后,索引區(qū)中的索引將不再是按照時間順序進(jìn)行排列的有序索引。較老時間的索引會混雜在較新時間的索引中,使得塊格式的時間索引區(qū)由一個從小到大實現(xiàn)排序的序列,變成了 一個無序的序列,從而造成原有的基于輸入時間、快速定位時間索引的二分查找算法失效。對于一個無序的序列,如果要查找其中的一個索引,只能采用遍歷的方法。而這種方法將造成時間開銷過大,影響錄像檢索、回放等業(yè)務(wù)的可用性。
[0059]針對上述問題,本實施例的錄像鎖定裝置進(jìn)一步包括狀態(tài)標(biāo)識單元。該狀態(tài)標(biāo)識單元用于標(biāo)識每一個索引當(dāng)前的狀態(tài)。索引的狀態(tài)可以包括:未使用、已跳過這兩種狀態(tài)。在循環(huán)復(fù)寫時,如果某個索引被跳過,即該索引對應(yīng)的錄像被鎖定時,狀態(tài)標(biāo)識單元將該索引的狀態(tài)標(biāo)識為已跳過。當(dāng)需要查找某段時間的錄像時,即需要查找該錄像對應(yīng)的索引時,索引查找單元執(zhí)行如下操作:
[0060]A、對索引中狀態(tài)為“已跳過”的索引按照時間進(jìn)行排序,對索引中狀態(tài)未標(biāo)識“已跳過”的索引也按照時間進(jìn)行排序;
[0061]B、如果待查找錄像開始時間是位于排序后的“已跳過”索引中,則在該排序后的“已跳過”索引的末尾增加排序后的未標(biāo)識“已跳過”索引中的第一條索引形成一新的索引序列,按照二分查找算法在該新的索引序列中查找與該待查找錄像開始時間匹配的索引;
[0062]如果待查找錄像開始時間是位于排序后的未標(biāo)識“已跳過”的索引中,則在該排序后的未標(biāo)識“已跳過”索引序列中,按照二分查找算法查找與該待查找錄像的開始時間匹配的索引。
[0063]待查找錄像開始時間是位于排序后的“已跳過”索引序列中還是位于排序后的未標(biāo)識“已跳過”的索引序列中可以通過如下方法進(jìn)行判斷:當(dāng)待查找的錄像開始時間小于排序后的未標(biāo)識“已跳過”的索引序列的第一條索引包含的時間,則判斷待查找錄像開始時間是位于排序后的“已跳過”索引序列中,否則判斷待查找錄像開始時間位于排序后的未標(biāo)識“已跳過”的索引序列中。這里之所以選擇未標(biāo)識“已跳過”的索引序列的第一條索引作為判斷依據(jù)是結(jié)合步驟B中查找方法進(jìn)行的。
[0064]實際上,以排序后的“已跳過”索引序列的尾索引作為判斷依據(jù)也是可以的,SP如果待查找的錄像開始時間小于該尾索引包含的時間,則判斷待查找錄像開始時間是位于“已跳過”索引序列中,否則判斷待查找錄像開始時間位于未標(biāo)識“已跳過”的索引序列中;在進(jìn)行后續(xù)查找的時候執(zhí)行如下操作:如果待查找錄像開始時間是位于排序后的“已跳過”索引中,則在該排序后的“已跳過”索引中按照二分查找算法查找與該待查找錄像開始時間匹配的索引;如果待查找錄像開始時間是位于排序后的未標(biāo)識“已跳過”的索引中,則在該排序后的未標(biāo)識“已跳過”索引序列的首端增加該尾索引形成新的索引序列;在該新的索引序列中按照二分查找算法查找與該待查找錄像的開始時間匹配的索引。由于“已跳過”索弓丨序列相對于未標(biāo)識“已跳過”的索引序列來講小很多,所以查找如果能盡可能在“已跳過”索引序列中進(jìn)行會比較節(jié)省時間和性能。請參圖3例子的說明。
[0065]假設(shè)圖3中的新的索引序列為:索引3、索引4、索引7、索引8、索引11 ;未標(biāo)識“已跳過”的索引序列為:索引11、索引12、索引13、索引14、索引15、索引16。假設(shè)索引3中包含的時間信息為2013-01-01-17:00:00,該時間信息作為該索引對應(yīng)錄像的開始時間;進(jìn)一步假設(shè)每條索引對應(yīng)錄像的時長為15分鐘,則索引4包含的時間信息為2013-01-01-17:15:00 ;索引7包含的時間信息為2013-01-01-18:00:00,索引8包含的時間信息為2013-01-01-18:15:00,其他索引以此類推。如果待查找錄像的開始時間為2013-01-01-18:25:00,時長為5分鐘。該待查找錄像開始時間小于排序后的未標(biāo)識“已跳過”的索引序列的首條索引包含的時間,即索引11包含的時間2013-01-01-19:00:00,所以判斷待查找的錄像的開始時間位于上述新的索引序列為:索引3、索引4、索引7、索引8、索引11中,接著用二分法在該新的索引序列中進(jìn)行查找。如果根據(jù)索引8包含的時間判斷待查找錄像的開始時間位于未標(biāo)識“已跳過”的索引序列中,則需要在索引序列:索引8、索引11、索引12、索引13、索引14、索引15、索引16中進(jìn)行查找,顯然花費的時間和性能將更多。這里例子所涉及的未標(biāo)識“已跳過”索引是比較少的,實際情況會多很多,所以在未標(biāo)識“已跳過”索引序列中不是一個好的選擇。
[0066]除了在用戶需要查看某段錄像時,需要對錄像進(jìn)行檢索外,在需要鎖定某段時間的錄像時,也需要對錄像進(jìn)行檢索。所以上述步驟A、B的操作對執(zhí)行錄像鎖定業(yè)務(wù)確定待鎖定錄像對應(yīng)的索引時同樣適用。
[0067]通過上述對索引進(jìn)行狀態(tài)標(biāo)識,對不同狀態(tài)的索引分別進(jìn)行排序,而后在不同的索引序列中按照二分法進(jìn)行索引查找的方法相對于遍歷的方法來說,顯然速度更快,開銷更小。
[0068]上述方案解決了錄像鎖定方面的基本問題,但是還有進(jìn)一步優(yōu)化的空間。索引區(qū)中的索引數(shù)量眾多,所以從中獲取不同狀態(tài)的索引并進(jìn)行排序并不是件容易的事。為了便于索引查找單元更快速方便的查找到相關(guān)的索引,本實施例進(jìn)一步在磁盤單獨的一塊空間中,將所有鎖定錄像的索引單獨記錄下來。
[0069]由于存儲格式的超級塊中預(yù)留有一定的空間,并且在進(jìn)行錄像檢索時,超級塊會被裝載到內(nèi)存中,所以優(yōu)選地將鎖定錄像的索引記錄在超級塊中。由于用戶每次鎖定的一段錄像,在索引區(qū)中對應(yīng)的是一段連續(xù)的索引,因此可以采用鎖定索引段的方式進(jìn)行記錄。每個鎖定索引段記錄的是被鎖定的一個或者連續(xù)的多個索引。以下參照圖4進(jìn)行鎖定索引的描述。
[0070]在超級塊中開辟一段區(qū)域,命名為鎖定索引區(qū)。該鎖定索引區(qū)主要可以分成總體信息區(qū)、鎖定索引段節(jié)點區(qū)兩部分,總共可以占據(jù)8K磁盤空間,可以放到超級塊的最后8K空間中。
[0071]總體信息區(qū)用于記錄鎖定索引的全局信息,可以占據(jù)鎖定索引區(qū)的前IK空間。鎖定索引段節(jié)點區(qū)由若干鎖定索引段節(jié)點組成。
[0072]總體信息區(qū)具體包含如下數(shù)據(jù)成員:4字節(jié)的Megic標(biāo)識,用于標(biāo)識鎖定索引區(qū)是否完成初始化,比如說在鎖定索引區(qū)被初始化之后,該字段應(yīng)該被設(shè)置為0x12345678 ;4字節(jié)的狀態(tài)為已跳過的索引段節(jié)點總數(shù),用于記錄狀態(tài)為已跳過的鎖定索引段節(jié)點總數(shù);4字節(jié)的所有已跳過的索引總數(shù),用于記錄已跳過的索引總數(shù)。
[0073]鎖定索引段節(jié)點區(qū)用于記錄鎖定索引段的信息,可以占據(jù)鎖定索引區(qū)的后7K空間,由于每個鎖定索引段節(jié)點的數(shù)據(jù)是24字節(jié),因此可以記錄至少200個鎖定索引段的信
肩、O
[0074]每個鎖定索引段節(jié)點,用于記錄一段連續(xù)的、被鎖定的索引,主要可以包含如下數(shù)據(jù)成員:
[0075]節(jié)點狀態(tài),4字節(jié),狀態(tài)值分別是:0,1,2 ;節(jié)點的狀態(tài)即表示節(jié)點所包含的索引的狀態(tài);
[0076]節(jié)點的索引總數(shù),4字節(jié);
[0077]節(jié)點的起始索引信息:包括起始索引編號,4字節(jié),即起始索引在索引區(qū)中的位置;起始索引的時間,4字節(jié);
[0078]節(jié)點的結(jié)束索引信息:包括結(jié)束索引編號,4字節(jié),即結(jié)束索引在一級時間索引區(qū)中的位置;結(jié)束索引的時間,4字節(jié)。
[0079]對于“節(jié)點狀態(tài)”字段值說明如下:
[0080]0代表未使用,表示這段磁盤空間尚未記錄一段鎖定索引信息,初始時,每個節(jié)點的狀態(tài)值可以均為0;
[0081]I代表已使用,表示這段磁盤空間已經(jīng)記錄了一段鎖定索引信息,但是這段索引對應(yīng)錄像尚未在循環(huán)復(fù)寫時被跳過;
[0082]2代表已鎖定,表示這段磁盤空間已經(jīng)記錄了一段鎖定索引信息,同時這段索引對應(yīng)錄像已經(jīng)在循環(huán)復(fù)寫時被跳過。
[0083]這里相對于之前的鎖定索引狀態(tài)增加了 “已使用”的狀態(tài)。增加該狀態(tài)的原因下文中將進(jìn)行描述。
[0084]既然開辟了記錄鎖定索引段信息的鎖定索引區(qū),就涉及何時將鎖定索引段寫入到鎖定索引區(qū)中。由于鎖定索引區(qū)中記錄鎖定索引信息主要是為了便于在時間上亂序的索引中快速查找索引,所以只需要將導(dǎo)致時間亂序的索引記錄到鎖定索引區(qū)中。而僅狀態(tài)為“已跳過”的索引才會導(dǎo)致索引亂序,所以首先容易想到的是在循環(huán)復(fù)寫跳過這些索引段時,再將其記錄到鎖定索引區(qū)。
[0085]但如果采用上面的方案,帶來的一個結(jié)果是:多段用戶鎖定的錄像,在鎖定索引區(qū)中很可能被寫到同一個鎖定索引段節(jié)點中。這樣會帶來如下問題:如果后續(xù)用戶解鎖這些錄像的中間索引部分的某段錄像時,方案需要對鎖定索引段節(jié)點進(jìn)行拆分,否則造成原節(jié)點的連續(xù)索引段中出現(xiàn)空洞;對于這些連續(xù)的、鎖定的索引段,有可能部分已經(jīng)被寫到鎖定索引區(qū),部分還沒有被寫到鎖定索引區(qū),這樣還需要在索引中增加是否寫入鎖定索引區(qū)的標(biāo)識,才能避免在多個鎖定索引區(qū)節(jié)點中、存在一些重復(fù)索引。[0086]鑒于上述原因,本實施例采用如下方案:在確定待鎖定的錄像對應(yīng)的索引,且未將該索引的鎖定引用計數(shù)加I之前,為所述待鎖定的錄像對應(yīng)的索引中鎖定引用計數(shù)為O的所有索引在鎖定索引區(qū)中申請一鎖定索引段節(jié)點,并由狀態(tài)標(biāo)識單元將該節(jié)點的狀態(tài)標(biāo)識為“已使用”;所述鎖定索引段節(jié)點包括上述鎖定引用計數(shù)為O的所有索引中的起始索引和結(jié)束索引信息。舉例說明:索引I?10,鎖定引用計數(shù)值初始值均為O ;用戶I對索引3?6對應(yīng)的錄像單元進(jìn)行鎖定,用戶2接著對索引5?8對應(yīng)的錄像單元進(jìn)行鎖定。按照本發(fā)明上述實施例方式,鎖定索引區(qū)中將生成兩個鎖定索引段節(jié)點:節(jié)點1,狀態(tài)為“已使用”,起始索引為3,結(jié)束索引為6 ;節(jié)點2,狀態(tài)為“已使用”,起始索引為7,結(jié)束索引為8。上述申請鎖定索引段節(jié)點的流程將由本實施例錄像鎖定裝置進(jìn)一步包括的鎖定索引段記錄單元執(zhí)行;狀態(tài)標(biāo)識單元執(zhí)行上述“已使用”的標(biāo)識。該方案一方面保證了不同鎖定索引段節(jié)點中的索引,一定是不重復(fù)的;在后續(xù)用戶解鎖某段錄像后,在清除鎖定索引段節(jié)點的對應(yīng)索引時,一定是從該節(jié)點的起始索引開始清除,從而不需要進(jìn)行鎖定索引段節(jié)點拆分等復(fù)雜處理。
[0087]在對錄像執(zhí)行復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)大于O的索引,將該索引匹配鎖定索引段節(jié)點的開始索引,如果匹配成功,將匹配到的鎖定索引段節(jié)點的狀態(tài)由“已使用”更改為“已跳過”。上述匹配的動作由本實施例錄像鎖定裝置進(jìn)一步包括的匹配單元執(zhí)行;鎖定索引段節(jié)點的狀態(tài)由狀態(tài)標(biāo)識單元進(jìn)行更改。
[0088]接著上面的例子,在復(fù)寫執(zhí)行到索引3時,此時索引3的鎖定引用計數(shù)為1,所以用索引3去匹配鎖定索引段節(jié)點,由于節(jié)點I的起始索引為索引3,匹配成功,所以節(jié)點I的狀態(tài)由“已使用”更改為“已跳過”。接著復(fù)寫執(zhí)行到節(jié)點I結(jié)束索引的下一個索引,即索引7。同樣地,節(jié)點7的鎖定引用計數(shù)此時也為1,所以用索引7去匹配鎖定索引段節(jié)點,由于節(jié)點2的起始索引為索引7,匹配成功,所以節(jié)點2的狀態(tài)由“已使用”更改為“已跳過”。
[0089]在進(jìn)行索引查找時,索引查找單元獲取鎖定索引區(qū)中狀態(tài)為“已跳過”的索引。獲取狀態(tài)為“已跳過”的索引后,其余的索引自然屬于狀態(tài)為非“已跳過”的索引,然后索引查找單元就可以按照前文所描述的方法進(jìn)行索引的查找。所以鎖定索引區(qū)中鎖定索引段節(jié)點的記載極大的方便了索引查找單元對索引的查找。
[0090]錄像既然涉及到鎖定,自然也涉及到解鎖。對之前鎖定的錄像進(jìn)行解鎖也需要一系列復(fù)雜的操作過程。下文將詳細(xì)描述錄像解鎖的過程。
[0091]對錄像解鎖時,首先需要確定待解鎖錄像對應(yīng)的索引。確定待解鎖錄像對應(yīng)的索引可以根據(jù)鎖定索引區(qū)中的狀態(tài)為“已使用”和“已跳過”鎖定索引段節(jié)點記錄的信息進(jìn)行確定??梢韵劝凑枕樞?qū)@些鎖定索引段節(jié)點記錄的索引信息進(jìn)行排序,然后按照二分法進(jìn)行查找。查找到待解鎖錄像對應(yīng)的索引后,有計數(shù)單元將該索引對應(yīng)的鎖定引用計數(shù)減
I。當(dāng)一個索引對應(yīng)的鎖定引用計數(shù)減為O時,表示該索引對應(yīng)的錄像單元不再被鎖定,可以對其進(jìn)行復(fù)寫。但是對于該索引卻不能直接將其從鎖定引用區(qū)中刪除;因為對于該索引如果其狀態(tài)為“已跳過”,如果將其直接從鎖定引用區(qū)中刪除,將影響到后續(xù)索引查找的正確性。優(yōu)選地做法是,當(dāng)索引的鎖定引用計數(shù)被減為O后,匹配單元根據(jù)該索引匹配鎖定索引區(qū)中狀態(tài)為“已使用”的鎖定索引段節(jié)點的開始索引,如果匹配成功,則將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I。如果該節(jié)點的索引總數(shù)減為O后,則將該節(jié)點從鎖定引用區(qū)中刪除。上述鎖定索引段更新的操作將由本實施例錄像鎖定裝置進(jìn)一步包括的鎖定索引段更新單元執(zhí)行。如果該節(jié)點的狀態(tài)是“已跳過”的話,必須在后續(xù)復(fù)寫到這些索引的時候,才能更新鎖定索引區(qū)中鎖定索引段節(jié)點的信息。當(dāng)然,鎖定索引段節(jié)點信息更新后,鎖定索引區(qū)中的總體信息區(qū)中的相關(guān)息也需要被更新。
[0092]在復(fù)寫時,如果執(zhí)行到鎖定引用計數(shù)為0的索引對應(yīng)的錄像單元時,匹配單元根據(jù)該索引匹配鎖定索引區(qū)中狀態(tài)為“已跳過”的鎖定索引段節(jié)點的開始索引,如果匹配成功,則將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索弓丨,該節(jié)點的索引總數(shù)減I。同樣的,如果該節(jié)點的索引總數(shù)減為0后,則將該節(jié)點從鎖定引用區(qū)中刪除;進(jìn)一步更新總體信息區(qū)中的相關(guān)信息。
[0093]本發(fā)明實施例的方案支持用戶對錄像的靈活鎖定與解鎖;并且在對錄像鎖定與解鎖的同時,對持續(xù)進(jìn)行的錄像存儲性能無影響,同時錄像的檢索速度仍然非??欤徊⑶疫€支持用戶多次重復(fù)的鎖定、解鎖同一錄像單元中的錄像。
[0094]下面結(jié)合具體的監(jiān)控系統(tǒng)對本發(fā)明的實施方案進(jìn)行示例性說明。
[0095]請參圖5,該監(jiān)控系統(tǒng)包括IP編碼器、視頻管理服務(wù)器、數(shù)據(jù)管理服務(wù)器以及IPSAN存儲設(shè)備。這些設(shè)備之間通過IP網(wǎng)絡(luò)進(jìn)行互聯(lián)。本例中,IPSAN存儲設(shè)備的索引區(qū)為如圖1所示的二級索引結(jié)構(gòu)。
[0096]1、用戶配置錄像鎖定、或者錄像解鎖
[0097]用戶可以通過VM服務(wù)器的操作界面,對某個攝像機(jī)的某個時間段的錄像,執(zhí)行錄像鎖定或者解鎖操作。
[0098]本例中,以一級時間索引對應(yīng)的數(shù)據(jù)單元為最小鎖定空間單位。即如果用戶鎖定的錄像有I秒在數(shù)據(jù)單元中,則鎖定整個數(shù)據(jù)單元的錄像。
[0099]VM服務(wù)器收到用戶通過操作界面發(fā)出的請求之后,向DM服務(wù)器發(fā)送消息,請求獲取攝像機(jī)指定時間段的索引信息,請求消息中攜帶攝像機(jī)信息,時間段開始時間、時間段結(jié)束時間。
[0100]DM服務(wù)器收到索引獲取請求之后,從IPSAN磁盤中裝載對應(yīng)攝像機(jī)存儲資源的鎖定索引區(qū)、一級時間索引區(qū)到內(nèi)存中,根據(jù)請求的開始時間、結(jié)束時間,按照上述實施例提出的索引檢索方法,找到滿足時間條件的一級時間索引段,并計算出本次鎖定操作涉及的鎖定存儲容量。該鎖定存儲容量=數(shù)據(jù)單元大小*鎖定索引總數(shù)。
[0101]DM服務(wù)器將滿足條件的一級時間索引段、鎖定存儲容量,通過應(yīng)答消息返回給VM服務(wù)器。這里之所以將確定索引段的工作交給DM來執(zhí)行,是為了不影響IP編碼器的存儲性能。存儲的所有工作都是在IP編碼器和IPSAN存儲設(shè)備之間展開的,所以通常認(rèn)為應(yīng)由IP編碼器執(zhí)行相關(guān)鎖定、解鎖索引的查找。
[0102]VM服務(wù)器收到應(yīng)答之后,一方面通過SIP信令報文將鎖定或者解鎖的時間段、索引段信息通知到IP編碼器,另一方面,執(zhí)行對數(shù)據(jù)庫鎖定錄像記錄表的更新操作:如果是鎖定操作,將本次配置的攝像機(jī)編碼、鎖定錄像開始時間、結(jié)束時間、鎖定總?cè)萘康葦?shù)據(jù)寫入數(shù)據(jù)庫的鎖定錄像記錄表;如果是解鎖操作,刪除數(shù)據(jù)庫錄像鎖定表中的對應(yīng)記錄。表I給出了鎖定錄像記錄表的表項示例:
[0103]
【權(quán)利要求】
1.一種錄像鎖定的方法,其特征在于,該方法包括: 確定本次待鎖定錄像對應(yīng)的索引,將確定的索引的鎖定引用計數(shù)加第二預(yù)設(shè)值,每個索引的鎖定引用計數(shù)初始值為第一預(yù)設(shè)值;在對錄像執(zhí)行循環(huán)復(fù)寫時,跳過鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引對應(yīng)的錄像單元。
2.如權(quán)利要求1所述的方法,其特征在于,將每個索引的初始狀態(tài)設(shè)為“未使用”;將循環(huán)復(fù)寫時跳過的索引的狀態(tài)標(biāo)識為“已跳過”; 所述確定待鎖定錄像對應(yīng)的索引具體為: 對索引中狀態(tài)為“已跳過”的索引按照時間進(jìn)行排序,對索引中狀態(tài)未標(biāo)識“已跳過”的索引也按照時間進(jìn)行排序; 當(dāng)待查找的鎖定錄像開始時間小于排序后的未標(biāo)識“已跳過”的索引序列的第一條索引包含的時間,則判斷待查找錄像開始時間是位于排序后的“已跳過”索引序列中,否則判斷待查找錄像開始時間位于排序后的未標(biāo)識“已跳過”的索引序列中; 如果所述待鎖定錄像的開始時間是位于排序后的“已跳過”索引中,則在該排序后的“已跳過”索引的末尾增加排序后的未標(biāo)識“已跳過”索引中的第一條索引形成一新的索引序列,按照二分查找算法在該新的索引序列中查找與該待鎖定錄像的開始時間匹配的索引 ; 如果所述待鎖定錄像的時間是位于排序后的未標(biāo)識“已跳過”的索引中;則按照二分查找算法在該未標(biāo)識“已跳過”的索引序列中查找與該待鎖定錄像的開始時間匹配的索引。
3.如權(quán)利要求2所述的方法,其特征在于,在確定本次待鎖定的錄像對應(yīng)的索引,且未將所述索引的鎖定引用計數(shù)加第二預(yù)設(shè)值之前,將所述本次待鎖定的錄像對應(yīng)的索引中鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引記錄在鎖定引用區(qū)中的鎖定索引段節(jié)點中,并將該節(jié)點的狀態(tài)標(biāo)識為“已使用”;該節(jié)點的狀態(tài)代表節(jié)點所包含的每一個索引的狀態(tài); 在對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引時,將該索引匹配鎖定索引段節(jié)點的開始索引,如果匹配成功,將匹配成功的鎖定索引段節(jié)點的狀態(tài)由“已使用”更改為“已跳過”。
4.如權(quán)利要求3所述的方法,其特征在于,鎖定索引段節(jié)點被記錄在超級塊中開辟的鎖定索引區(qū)中。
5.如權(quán)利要求3所述的方法,其特征在于,鎖定索引段節(jié)點的結(jié)構(gòu)包括節(jié)點狀態(tài),節(jié)點索引總數(shù)、起始索引信息和結(jié)束索引信息;其中起始索引信息用來記錄一段連續(xù)索引的首個索引信息,結(jié)束索引信息用來記錄一段索引的末尾索引信息。
6.如權(quán)利要求1或2所述的方法,其特征在于,當(dāng)針對鎖定錄像進(jìn)行解鎖時,確定待解鎖的錄像對應(yīng)的索引,將該索引的鎖定引用計數(shù)減所述第二預(yù)設(shè)值;當(dāng)循環(huán)復(fù)寫到鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引時,執(zhí)行對該索引對應(yīng)的錄像單元的復(fù)寫。
7.如權(quán)利要求3所述的方法,其特征在于,當(dāng)針對鎖定的錄像進(jìn)行解鎖時,確定待解鎖的錄像對應(yīng)的索引,將所述索引的鎖定引用計數(shù)減第二預(yù)設(shè)值,如果減該第二預(yù)設(shè)值后所述索引的鎖定引用計數(shù)為第一預(yù)設(shè)值,則將所述鎖定引用計數(shù)為第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已使用”的鎖定索引段節(jié)點的開始索引,如果匹配成功,則將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I ;如果該節(jié)點的索引總數(shù)減為O后,則將該節(jié)點從鎖定引用區(qū)中刪除。
8.如權(quán)利要求3所述的方法,其特征在于,在對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)為第一預(yù)設(shè)值的索引時,將所述鎖定引用計數(shù)為該第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已跳過”的鎖定索引段節(jié)點的開始索引,如果匹配成功,則將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I ;如果該節(jié)點的索引總數(shù)減為O后,則將該節(jié)點從鎖定引用區(qū)中刪除。
9.一種錄像鎖定的裝置,其特征在于,該裝置包括: 索引查找單元,用于確定本次待鎖定錄像對應(yīng)的索引; 計數(shù)單元,用于將確定的索引的鎖定引用計數(shù)加第二預(yù)設(shè)值,每個索引的鎖定引用計數(shù)初始值為第一預(yù)設(shè)值; 錄像寫單元,用于在對錄像執(zhí)行循環(huán)復(fù)寫時,跳過鎖定引用計數(shù)大于的所述第一預(yù)設(shè)值的索引對應(yīng)的錄像單元。
10.如權(quán)利要求9所述的裝置,其特征在于,該裝置還包括:狀態(tài)標(biāo)識單元,用于將循環(huán)復(fù)寫時跳過的索引的狀態(tài)標(biāo)識為“已跳過”,每個索引的初始狀態(tài)為“未使用”; 索引查找單元執(zhí)行如下操作來確定待鎖定錄像對應(yīng)的索引: 對索引中狀態(tài)為“已跳過”的索引按照時間進(jìn)行排序,對索引中狀態(tài)未標(biāo)識“已跳過”的索引也按照時間進(jìn)行排序; 當(dāng)待查找的鎖定錄像開始時間小于排序后的未標(biāo)識“已跳過”的索引序列的第一條索引包含的時間,則判斷待查找錄像開始時間是位于排序后的“已跳過”索引序列中,否則判斷待查找錄像開始時間位于排序后的未標(biāo)識“已跳過”的索引序列中; 如果所述待鎖定錄像的開始時間是位于排序后的“已跳過”索引中,則在該排序后的“已跳過”索引的末尾增加排序后的未標(biāo)識“已跳過”索引中的第一條索引形成一新的索引序列,按照二分查找算法在該新的索引序列中查找與該待鎖定錄像的開始時間匹配的索引 ; 如果所述待鎖定錄像的時間是位于排序后的未標(biāo)識“已跳過”的索引中;則按照二分查找算法在該未標(biāo)識為“已跳過”的索引序列中查找與該待鎖定錄像的開始時間匹配的索引。
11.如權(quán)利要求10所述的裝置,其特征在于,該裝置還包括鎖定索引段記錄單元;在確定本次待鎖定的錄像對應(yīng)的索引,且未將所述索引的鎖定引用計數(shù)加第二預(yù)設(shè)值之前,該鎖定索引段記錄單元將所述本次待鎖定的錄像對應(yīng)的索引中鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引記錄在鎖定引用區(qū)中的鎖定索引段節(jié)點中,狀態(tài)標(biāo)識單元將該節(jié)點的狀態(tài)標(biāo)識為“已使用”;該節(jié)點的狀態(tài)代表節(jié)點所包含的每一個索引的狀態(tài); 該裝置還包括:匹配單元; 在錄像寫單元對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)大于所述第一預(yù)設(shè)值的索引時,匹配單元將該索引匹配鎖定索引段節(jié)點的開始索引;如果匹配成功,狀態(tài)標(biāo)識單元將匹配成功的鎖定索引段節(jié)點的狀態(tài)由“已使用”更改為“已跳過”。
12.如權(quán)利要求11所述的裝置,其特征在于,鎖定索引段節(jié)點被記錄在超級塊中開辟的鎖定索引區(qū)中。
13.如權(quán)利要求11所述的裝置,其特征在于,鎖定索引段節(jié)點的結(jié)構(gòu)包括節(jié)點狀態(tài),節(jié)點索引總數(shù)、起始索引信息和結(jié)束索引信息;其中起始索引信息用來記錄一段連續(xù)索引的首個索引信息,結(jié)束索引信息用來記錄一段索引的末尾索引信息。
14.如權(quán)利要求9或10所述的裝置,其特征在于,當(dāng)針對鎖定錄像進(jìn)行解鎖時,索引查找單元,還用于確定待解鎖的錄像對應(yīng)的索引; 計數(shù)單元,還用于將該待解索錄像的索引的鎖定引用計數(shù)減所述第二預(yù)設(shè)值; 錄像寫單元,還用于當(dāng)循環(huán)復(fù)寫到鎖定引用計數(shù)為所述第一預(yù)設(shè)值的索引時,執(zhí)行對該索引對應(yīng)的錄像單元的復(fù)寫。
15.如權(quán)利要求11所述的裝置,其特征在于,該裝置還包括:鎖定索引段更新單元; 索引查找單元,還用于確定待解鎖的錄像對應(yīng)的索引; 計數(shù)單元,還用于將該待解索錄像的索引的鎖定引用計數(shù)減第二預(yù)設(shè)值; 如果減該第二預(yù)設(shè)值后所述索引的鎖定引用計數(shù)為第一預(yù)設(shè)值,則匹配單元將所述鎖定引用計數(shù)為第一預(yù)設(shè)值的索引匹配鎖定索引區(qū)中狀態(tài)為“已使用”的鎖定索引段節(jié)點的開始索引;如果匹配成功,鎖定索引段更新單元將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減1,如果該節(jié)點的索引總數(shù)減為0后,則將該節(jié)點從鎖定引用區(qū)中刪除。
16.如權(quán)利要求11所述的裝置,其特征在于,在對錄像執(zhí)行循環(huán)復(fù)寫時,在復(fù)寫執(zhí)行到鎖定引用計數(shù)為第一預(yù)設(shè)值的索引時,匹配單元將所述鎖定引用計數(shù)為該第一預(yù)設(shè)值的索弓丨匹配鎖定索引區(qū)中狀態(tài)為“已跳過”的鎖定索引段節(jié)點的開始索引;如果匹配成功,則鎖定索引段更新單元將匹配成功的該鎖定索引段節(jié)點當(dāng)前的開始索引刪除,下一個索引作為新的開始索引,該節(jié)點的索引總數(shù)減I ;如果該節(jié)點的索引總數(shù)減為0后,則將該節(jié)點從鎖定引用區(qū)中刪除 。
【文檔編號】G06F17/30GK103744892SQ201310718918
【公開日】2014年4月23日 申請日期:2013年12月23日 優(yōu)先權(quán)日:2013年12月23日
【發(fā)明者】成浩, 丁強, 嚴(yán)愛杰 申請人:浙江宇視科技有限公司