本發(fā)明涉及數(shù)碼技術(shù)領(lǐng)域,特別是涉及一種存儲方法及一種攝像系統(tǒng)。
背景技術(shù):隨著電子技術(shù)的發(fā)展,電子設(shè)備日趨多功能化,例如,現(xiàn)在的許多電子產(chǎn)品都具有錄像、錄音的功能。所述錄像、錄音功能,指的是各種攝像裝置,如攝像機(jī)、數(shù)碼相機(jī)、攝像頭或計算機(jī)等將獲取到的視頻、音頻等數(shù)據(jù),寫入存儲設(shè)備中,如SD安全數(shù)碼卡、硬盤等,再由這些存儲設(shè)備對寫入的數(shù)據(jù)進(jìn)行存儲。但是,發(fā)明人在本申請的研究過程中發(fā)現(xiàn),現(xiàn)有的攝像裝置在將數(shù)據(jù)寫入存儲設(shè)備時,要經(jīng)過多次的單次寫才能將一段數(shù)據(jù)從攝像裝置中寫入存儲設(shè)備中,每次單次寫最多能夠?qū)懭氪鎯υO(shè)備的數(shù)據(jù)量隨存儲設(shè)備的不同而不同,而每次單次寫都可能會出現(xiàn)跳寫及順寫的情況,其中,跳寫時就需要查找所述攝像裝置內(nèi)的多個內(nèi)存碎片,并獲取所述多個內(nèi)存碎片中的數(shù)據(jù),然后將其寫入存儲設(shè)備中,這種情況下,因?yàn)橐檎覂?nèi)存碎片,會耗費(fèi)大量時間;順寫時,由于每個內(nèi)存碎片中存儲的數(shù)據(jù)容量較小,因而在將所述攝像裝置中的數(shù)據(jù)存儲至存儲設(shè)備的過程中,必然要增加單次寫的次數(shù),也會使存儲的過程耗費(fèi)大量時間。這種情況下,會嚴(yán)重影響錄像品質(zhì),甚至出現(xiàn)掉幀的現(xiàn)象。例如,所述攝像裝置在將數(shù)據(jù)存儲至SD卡中時,單次寫可能會耗時達(dá)到700MS,這種情況下,系統(tǒng)的錄像幀率會降低到1幀。而高品質(zhì)的錄像幀率為25幀,這就要求存儲設(shè)備在40S內(nèi)能完成一次的單次寫。而現(xiàn)有的存儲技術(shù)因?yàn)樘鴮憽㈨槍懺斐蓵r間的耗費(fèi),錄像幀率并不能達(dá)到高品質(zhì)錄像的要求,甚至出現(xiàn)掉幀,嚴(yán)重影響了錄像的品質(zhì)。
技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供了一種存儲方法及一種錄像系統(tǒng),以解決現(xiàn)有存儲技術(shù)中由于跳寫、順寫造成時間的耗費(fèi),使得錄像品質(zhì)差的問題。一種存儲方法,包括:采集包含有預(yù)設(shè)參數(shù)的程序的圖像,所述預(yù)設(shè)參數(shù)至少包括:預(yù)先設(shè)定的大緩沖區(qū)的個數(shù)及各個大緩沖區(qū)的大小、所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,所述各個大緩沖區(qū)分別對應(yīng)的數(shù)據(jù)地址;對所述圖像進(jìn)行解析,創(chuàng)建與所述預(yù)設(shè)參數(shù)相對應(yīng)的大緩沖區(qū);參考所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;當(dāng)需要存儲數(shù)據(jù)時,將待存儲數(shù)據(jù)寫入與所述待存儲數(shù)據(jù)相對應(yīng)的所述大緩沖區(qū)內(nèi);在所述大緩沖區(qū)內(nèi)寫入數(shù)據(jù)后,創(chuàng)建臨時緩沖區(qū),并將所述一個或多個大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū);將寫入所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備的扇區(qū)中。優(yōu)選的,所述大緩沖區(qū)內(nèi)包含小緩沖區(qū),所述每個小緩沖區(qū)的容量大小為一個扇區(qū)的大小,并且所述每個小緩沖區(qū)按照對應(yīng)的存儲設(shè)備的扇區(qū)地址排序。優(yōu)選的,當(dāng)所述存儲設(shè)備為兩個以上時,所述預(yù)設(shè)條件還包括:所述大緩沖區(qū)對應(yīng)的存儲設(shè)備。優(yōu)選的,所述臨時緩沖區(qū)的容量不小于所述大緩沖區(qū)的容量。優(yōu)選的,將所述待存儲數(shù)據(jù)寫入所述大緩沖區(qū)內(nèi)的方法包括:51)判斷已創(chuàng)建的所述大緩沖區(qū)是否與所述待存儲的數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng),如果是,則執(zhí)行步驟55),如果否,則執(zhí)行步驟52);52)判斷所述大緩沖區(qū)所在的區(qū)域是否有足夠的存儲空間,如果沒有,則執(zhí)行步驟53),如果有,則執(zhí)行步驟54);53)將原有已寫入數(shù)據(jù)的大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備中,并進(jìn)入步驟54);54)創(chuàng)建與所述待存儲數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng)的大緩沖區(qū),并將所述待存儲數(shù)據(jù)寫入所述新創(chuàng)建的大緩沖區(qū)中,并根據(jù)所述待存儲數(shù)據(jù)對應(yīng)的存儲設(shè)備的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;55)將所述待存儲的數(shù)據(jù)寫入所述大緩沖區(qū)中。優(yōu)選的,將所述寫入緩沖區(qū)的數(shù)據(jù)寫入臨時緩沖區(qū)的過程包括:61)判斷所述大緩沖區(qū)中是否有待存儲的數(shù)據(jù),如果有,執(zhí)行步驟62);62)創(chuàng)建臨時緩沖區(qū);63)將所述大緩沖區(qū)內(nèi)的待存儲數(shù)據(jù),按照所述大緩沖區(qū)的順序?qū)懭胨雠R時緩沖區(qū)中,并返回執(zhí)行步驟61)。相應(yīng)的,本發(fā)明還公開了一種攝像系統(tǒng),包括:采集模塊,用于采集包含有預(yù)設(shè)參數(shù)的程序的圖像,所述預(yù)設(shè)參數(shù)至少包括:預(yù)先設(shè)定的大緩沖區(qū)的個數(shù)及各個大緩沖區(qū)的大小、所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,所述各個大緩沖區(qū)分別對應(yīng)的數(shù)據(jù)地址;創(chuàng)建模塊,用于對所述圖像進(jìn)行解析,創(chuàng)建與所述預(yù)設(shè)參數(shù)相對應(yīng)的大緩沖區(qū);排序模塊,用于根據(jù)所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;大緩沖區(qū)寫入模塊,用于當(dāng)需要存儲數(shù)據(jù)時,將待存儲數(shù)據(jù)寫入與所述待存儲數(shù)據(jù)相對應(yīng)的所述大緩沖區(qū)內(nèi);臨時緩沖區(qū)創(chuàng)建模塊,用于當(dāng)所述大緩沖區(qū)內(nèi)寫入數(shù)據(jù)后,創(chuàng)建臨時緩沖區(qū),并將所述一個或多個大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū);存儲設(shè)備寫入模塊,用于將寫入所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備的扇區(qū)中。優(yōu)選的,所述大緩沖區(qū)寫入模塊包括:第一判斷單元,用于判斷已創(chuàng)建的所述大緩沖區(qū)是否與所述待存儲數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng);第二判斷單元,用于判斷所述大緩沖區(qū)所在的區(qū)域是否有足夠的存儲空間;創(chuàng)建單元,用于創(chuàng)建新的大緩沖區(qū),并將所述待存儲數(shù)據(jù)寫入所述新創(chuàng)建的大緩沖區(qū)中,并根據(jù)所述待存儲數(shù)據(jù)對應(yīng)的存儲設(shè)備的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;第一寫入單元,用于將所述待存儲的數(shù)據(jù)寫入所述大緩沖區(qū)中。優(yōu)選的,所述臨時緩沖區(qū)創(chuàng)建模塊包括:第三判斷單元,用于判斷所述大緩沖區(qū)中是否有待存儲的數(shù)據(jù);臨時緩沖區(qū)創(chuàng)建單元,用于創(chuàng)建臨時緩沖區(qū);第二寫入單元,用于將所述大緩沖區(qū)內(nèi)的待存儲數(shù)據(jù),按照所述大緩沖區(qū)的排序?qū)懭胨雠R時緩沖區(qū)中。優(yōu)選的,所述采集模塊具體為:攝像頭。通過本申請公開的存儲方法,在將數(shù)據(jù)寫入存儲設(shè)備時,要先將所述數(shù)據(jù)寫入緩沖區(qū)中,并將一個或多個緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū)中。由于所述臨時緩沖區(qū)的容量較大,能夠同時存儲較多的數(shù)據(jù),從而將所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備時,可以一次性寫的數(shù)據(jù)比較多,并且,所述大緩沖區(qū)、所述小緩沖區(qū)都是順序排列的,在寫入所述臨時緩沖區(qū)后,所述待存儲數(shù)據(jù)也是按照順序排列,直接寫入存儲設(shè)備即可,不再需要查找內(nèi)存碎片,避免了因?yàn)樘鴮憽㈨槍懺斐傻难訒r,提高了錄像品質(zhì)。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明公開的一種存儲技術(shù)的工作流程示意圖;圖2為本發(fā)明公開的一種緩沖區(qū)鏈表示意圖;圖3為本發(fā)明公開的又一種存儲技術(shù)的工作流程示意圖;圖4為本發(fā)明公開的一種緩沖區(qū)鏈表在寫入數(shù)據(jù)時的示意圖;圖5為本發(fā)明公開的又一種存儲技術(shù)的工作流程示意圖;圖6為本發(fā)明公開的一種攝像系統(tǒng)的結(jié)構(gòu)示意圖;圖7為本發(fā)明公開的一種攝像系統(tǒng)中大緩沖區(qū)寫入模塊的結(jié)構(gòu)示意圖;圖8為本發(fā)明公開的一種攝像系統(tǒng)中臨時緩沖區(qū)創(chuàng)建模塊的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明公開了一種存儲方法,用于解決現(xiàn)有技術(shù)中存在的錄像系統(tǒng)在將數(shù)據(jù)存入存儲設(shè)備時存在的,由于寫耗時較長,造成的錄像品質(zhì)差的問題。參見流程圖1,本發(fā)明公開的存儲方法包括以下步驟:步驟S1、采集包含有預(yù)設(shè)參數(shù)的程序的圖像,所述預(yù)設(shè)參數(shù)至少包括:預(yù)先設(shè)定的大緩沖區(qū)的個數(shù)及各個大緩沖區(qū)的大小、所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,所述各個大緩沖區(qū)分別對應(yīng)的數(shù)據(jù)地址;另外,當(dāng)錄像系統(tǒng)中設(shè)置有多個存儲設(shè)備時,所述預(yù)設(shè)條件還包括:所述大緩沖區(qū)對應(yīng)的存儲設(shè)備,以便選擇合適的存儲設(shè)備,實(shí)現(xiàn)對數(shù)據(jù)的存儲;其中,可以由攝像機(jī)的攝像頭、計算機(jī)的攝像頭等完成對含有預(yù)設(shè)條件的程序圖像的采集。步驟S2、對所述圖像進(jìn)行解析,創(chuàng)建與所述預(yù)設(shè)參數(shù)相對應(yīng)的大緩沖區(qū)。實(shí)際應(yīng)用時,可由攝像系統(tǒng)中的處理器對采集到的所述程序的圖像進(jìn)行解析處理,以創(chuàng)建所述大緩沖區(qū),另外,可以將所述大緩沖區(qū)設(shè)置在存儲設(shè)備的接口層,當(dāng)然也可以設(shè)置在其他區(qū)域。同時,當(dāng)設(shè)置的大緩沖區(qū)為多個時,所述多個大緩沖區(qū)可以設(shè)置在不同的區(qū)域,但一般情況下,選擇將所述多個大緩沖區(qū)設(shè)置在同一個區(qū)域,如所述存儲設(shè)備的接口層,以便于能及時分配內(nèi)存和釋放內(nèi)存,減少內(nèi)存的浪費(fèi)。其中,所述含有預(yù)設(shè)條件的程序可以如下所示:在設(shè)置緩沖區(qū)時,考慮到內(nèi)存碎片的問題,如果頻繁的申請與釋放內(nèi)存,將增加錄像系統(tǒng)的負(fù)擔(dān),因此還設(shè)置了小緩沖區(qū),所述大緩沖區(qū)能存儲一個或多個扇區(qū)的數(shù)據(jù),而每個小緩沖區(qū)的容量大小為一個扇區(qū)大小,也就是說,每個大緩沖區(qū)中都包含一個或多個小緩沖區(qū)。另外,在設(shè)置大緩沖區(qū)方面,可以通過一個程序同時設(shè)置多個大緩沖區(qū),例如,預(yù)先設(shè)置所述大緩沖區(qū)的大小為64K,那么,當(dāng)設(shè)置所有大緩沖區(qū)的容量和的參數(shù)為128K的話,那么就同時設(shè)置了兩個大緩沖區(qū)。通過上文的程序可以看到,每個大緩沖區(qū)都包含N個小緩沖區(qū),N的數(shù)值大小由程序:“BIG_ASAY_BUF_SIZE/扇區(qū)大小”決定,通常將所述大緩沖區(qū)設(shè)置為8K字節(jié),或者設(shè)置為其他大小的容量。步驟S3、參考所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;通過上文的程序可知,待存儲數(shù)據(jù)應(yīng)該存儲在存儲設(shè)備的哪個扇區(qū)中是固定的,而在創(chuàng)建大緩沖區(qū)時,預(yù)先設(shè)定了所述大緩沖區(qū)對應(yīng)的所述存儲設(shè)備的扇區(qū)地址,所述大緩沖區(qū)按照對應(yīng)的所述存儲設(shè) 備的扇區(qū)的地址排序,而且所述大緩沖區(qū)內(nèi)的小緩沖區(qū)也按照扇區(qū)地址進(jìn)行排序,例如,可以按照扇區(qū)地址從小到大對所述大緩沖區(qū)進(jìn)行排序,同時每個大緩沖區(qū)內(nèi)的小緩沖區(qū)也按照其對應(yīng)的所述存儲設(shè)備的扇區(qū)地址進(jìn)行排序,從而,所述每個大緩沖區(qū)內(nèi)的小緩沖區(qū),以及所述的多個大緩沖區(qū),能夠形成一個順序排列的鏈表,由大緩沖區(qū)的head做為表頭。參見圖2,即為創(chuàng)建的緩沖區(qū)的鏈表示意圖。步驟S4、當(dāng)需要存儲數(shù)據(jù)時,將待存儲數(shù)據(jù)寫入與所述待存儲數(shù)據(jù)相對應(yīng)的所述大緩沖區(qū)內(nèi);當(dāng)需要存儲數(shù)據(jù)時,系統(tǒng)會產(chǎn)生寫命令,并將所述寫命令發(fā)送給所述大緩沖區(qū),進(jìn)而執(zhí)行將所述待存儲的數(shù)據(jù)寫入所述大緩沖區(qū)的操作。步驟S5、在所述大緩沖區(qū)內(nèi)寫入數(shù)據(jù)后,創(chuàng)建臨時緩沖區(qū),并將所述一個或多個大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū);在將數(shù)據(jù)寫入所述大緩沖區(qū)內(nèi)后,創(chuàng)建一個臨時緩沖區(qū),所述臨時緩沖區(qū)的容量要不小于所述大緩沖區(qū),如當(dāng)所述大緩沖區(qū)的大小為8K字節(jié)時,所述臨時緩沖區(qū)可以為64K字節(jié),或者為其他大小的容量,將所述待存儲數(shù)據(jù)寫入臨時緩沖區(qū)后,再將所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備時,可以一次性寫的數(shù)據(jù)比較多,并且,由于所述大緩沖區(qū)、所述小緩沖區(qū)都是順序排列的,不需要查找的過程,從而避免了現(xiàn)有技術(shù)出現(xiàn)的因?yàn)樘鴮?、順寫造成的耗時較長的問題。另外,是將一個大緩沖區(qū)還是將多個大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū),取決于所述臨時緩沖區(qū)的容量大小,如果所述臨時緩沖區(qū)的大小和所述大緩沖區(qū)的大小相同,可以每次只寫入一個大緩沖區(qū)的數(shù)據(jù),如果所述臨時緩沖區(qū)的大小是多個大緩沖區(qū)的大小的話,可以每次將多個大緩沖區(qū)的數(shù)據(jù)寫入臨時緩沖區(qū)中。步驟S6、將寫入所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備的扇區(qū)中。在寫入存儲設(shè)備時,如果所述錄像系統(tǒng)中設(shè)置有多個存儲設(shè)備時,會根據(jù)上文中的程序語言,選擇相應(yīng)的存儲設(shè)備,將所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入所述存儲設(shè)備內(nèi)。通過步驟S1到步驟S6的方法,在將數(shù)據(jù)寫入存儲設(shè)備時,要先將所述數(shù)據(jù)寫入緩沖區(qū)中,并將一個或多個緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū)中,由于所述臨時緩沖區(qū)的容量較大,能夠同時存儲較多的數(shù)據(jù),從而將所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備時,可以一次性寫的數(shù)據(jù)比較多,并且,所述大緩沖區(qū)、所述小緩沖區(qū)都是順序排列的,在寫入所述臨時緩沖區(qū)后,所述待存儲數(shù)據(jù)也是按照順序排列,直接寫入存儲設(shè)備即可,不再需要查找內(nèi)存碎片,避免了因?yàn)樘鴮?、順寫造成的延時,提高了錄像品質(zhì)。另外,如圖3所公開的流程示意圖所示,在將所述待存儲的數(shù)據(jù)寫入所述大緩沖區(qū)時,包括以下步驟:步驟S21、判斷已經(jīng)創(chuàng)建的所述大緩沖區(qū)是否與所述待存儲數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng)。由于所述待存儲數(shù)據(jù)要寫入存儲設(shè)備的哪個扇區(qū)之中是固定的,而且根據(jù)上文提供的程序可知,所述大緩沖區(qū)在創(chuàng)建時,已經(jīng)明確了與所述存儲設(shè)備的扇區(qū)地址的對應(yīng)關(guān)系。因此,需要判斷已創(chuàng)建的所述大緩沖區(qū)是否與所述待存儲的數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng),如果是,則執(zhí)行步驟S25,如果否,則執(zhí)行步驟S22。步驟S22、判斷所述大緩沖區(qū)所在的區(qū)域是否有足夠的存儲空間,例如,當(dāng)所述大緩沖區(qū)所在的區(qū)域是所述存儲設(shè)備的接口層時,要判斷所述接口層是否還有足夠的存儲空間,如果沒有,則執(zhí)行步驟S23,如果有,則執(zhí)行步驟S24;步驟S23、在步驟S22中,當(dāng)判斷出所述大緩沖區(qū)所在的區(qū)域沒有足夠的存儲空間時,說明系統(tǒng)中沒有內(nèi)存可以分配,因此,將原有已寫入數(shù)據(jù)的大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備中,以獲取新的內(nèi)存,并進(jìn)入步驟S24。步驟S24、創(chuàng)建與所述待存儲數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng)的大緩沖區(qū),并將所述待存儲數(shù)據(jù)寫入所述新創(chuàng)建的大緩沖區(qū)中,并根據(jù)所述待存儲數(shù)據(jù)對應(yīng)的存儲設(shè)備的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序。例如,原有第一個大緩沖區(qū)的排在最后的小緩沖區(qū)的扇區(qū)地址為0XFFFFFF00,原有第二個大緩沖區(qū)的第一個小緩沖區(qū)的扇區(qū)地址為0XFFFFFFFF,新創(chuàng)建的大緩沖區(qū)內(nèi)的扇區(qū)地址在0XFFFFFF00和0XFFFFFFFF之間,則將新創(chuàng)建的大緩沖 區(qū)插入原第一大緩沖區(qū)和原第二大緩沖區(qū)之間,并將其設(shè)置為第二大緩沖區(qū),原第二大緩沖區(qū)和之后的大緩沖區(qū)順延,即修改原有的鏈表的信息。步驟S25、將所述待存儲的數(shù)據(jù)寫入所述大緩沖區(qū)中。在具體執(zhí)行時,在將所述待存儲數(shù)據(jù)寫入所述大緩沖區(qū)中時,如果所述大緩沖區(qū)中已經(jīng)有數(shù)據(jù)時,可將所述待存儲數(shù)據(jù)重新寫入,以覆蓋原有的數(shù)據(jù)。具體實(shí)施時,參照圖4所示的將所述數(shù)據(jù)寫入緩沖區(qū)的示意圖可知,剛創(chuàng)建一個大緩沖區(qū)時,由于未寫入數(shù)據(jù),所以已使用的緩沖區(qū)鏈表頭指向空,當(dāng)需要存儲數(shù)據(jù)時,如果所述已創(chuàng)建的大緩沖區(qū),與所述待存儲數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)存在對應(yīng)關(guān)系,那么將所述待存儲數(shù)據(jù)寫入此大緩沖區(qū)中即可,如果所述大緩沖區(qū)中原來存在數(shù)據(jù),則認(rèn)為已有的數(shù)據(jù)是舊的數(shù)據(jù),將所述待存儲數(shù)據(jù)覆蓋在此大緩沖區(qū)即可,如果原來不存在數(shù)據(jù),將所述待存儲數(shù)據(jù)寫入相對應(yīng)的小緩沖區(qū)中即可,,并將此小緩沖區(qū)添加到已使用緩沖區(qū)的鏈表上,并保證已使用的緩沖區(qū)的排序方式。如果在寫數(shù)據(jù)時,沒有足夠大小的緩沖區(qū),并且系統(tǒng)沒有達(dá)到內(nèi)存的閥值時,那么就再申請下一個大的緩沖區(qū),而當(dāng)系統(tǒng)已經(jīng)達(dá)到內(nèi)存的閾值時,可將各個大緩沖區(qū)中的數(shù)據(jù)寫入存儲設(shè)備,并重新創(chuàng)建新的緩沖區(qū)。通過所述步驟S21至步驟S25公開的工作流程,可以將待存儲數(shù)據(jù)寫入所述大緩沖區(qū)中,并在所述待存儲數(shù)據(jù)要寫入的所述存儲設(shè)備的扇區(qū)與已經(jīng)創(chuàng)建的大緩沖區(qū)不存在對應(yīng)關(guān)系時,可以創(chuàng)建新的大緩沖區(qū),并在創(chuàng)建新的大緩沖區(qū)后,仍按照對應(yīng)的所述存儲設(shè)備的扇區(qū)地址進(jìn)行排序。另外,本發(fā)明公開的方案,在儲存設(shè)置中增加緩沖區(qū)的技術(shù),可以讓一個線程把數(shù)據(jù)寫入緩沖區(qū),就直接返回,不需要等待,將數(shù)據(jù)寫完后就返回,從而不會出現(xiàn)因儲存設(shè)置每次寫的耗時很大,導(dǎo)致一些操作無法正常進(jìn)行。而寫入緩沖區(qū)的數(shù)據(jù)將會由另一個獨(dú)立的線程進(jìn)行在后臺時寫入儲存設(shè)置中。另外,如圖所公開的流程示意圖5所示,在將所述寫入緩沖區(qū)的數(shù)據(jù)寫入臨時緩沖區(qū)時,包括以下步驟:步驟S31、判斷所述大緩沖區(qū)中是否有待存儲的數(shù)據(jù)。當(dāng)所述大緩沖區(qū)中有待存儲數(shù)據(jù)時,可以產(chǎn)生寫命令,以執(zhí)行步驟S32的操作;如果經(jīng)判斷, 沒有待存儲的數(shù)據(jù)時,阻塞將數(shù)據(jù)寫入臨時緩沖區(qū)的線程,直到判斷出所述大緩沖區(qū)中存在待存儲的數(shù)據(jù)。步驟S32、創(chuàng)建臨時緩沖區(qū),所述臨時緩沖區(qū)的容量要大于所述大緩沖區(qū)的容量,同時,所述臨時緩沖區(qū)可以設(shè)置在接口層,也可以設(shè)置在其他位置,本申請不做限定。但是為了減少將所述待存儲數(shù)據(jù)寫入臨時緩沖區(qū)的時間,本發(fā)明優(yōu)選的方式是將所述臨時緩沖區(qū)設(shè)置在所述大緩沖區(qū)設(shè)置的區(qū)域,以達(dá)到能夠及時分配、釋放內(nèi)存的目的。步驟S33、將所述大緩沖區(qū)內(nèi)的待存儲數(shù)據(jù),按照所述大緩沖區(qū)的順序?qū)懭胨雠R時緩沖區(qū)中,并返回執(zhí)行步驟S31,即在將所述大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入所述臨時緩沖區(qū)后,再判斷所述大緩沖區(qū)內(nèi)是否有待存儲的數(shù)據(jù)。具體實(shí)施時,要查詢上一次使用的緩沖區(qū)內(nèi)的地址是否和這次要使用的大緩沖區(qū)的地址連續(xù),如果是連續(xù)的,將要使用的所述大緩沖區(qū)設(shè)置為已經(jīng)使用的,從而更新鏈表信息,如果并不連續(xù),則將所述要使用的大緩沖內(nèi)的第一個小緩沖區(qū)的地址設(shè)置為已使用的鏈表頭地址本申請所公開的存儲技術(shù)中,將待存儲的數(shù)據(jù)寫入大緩沖區(qū)的過程為一個線程,而將所述大緩沖區(qū)中的數(shù)據(jù)寫入存儲設(shè)備時,是由另一個線程執(zhí)行的,從而通過設(shè)置緩沖區(qū)的技術(shù),實(shí)現(xiàn)了多線程的方法,即通過一個線程將待存儲數(shù)據(jù)寫入大緩沖區(qū),由另一個線程。該過程也可以稱為異步寫。另外,在上述的線程中,執(zhí)行寫操作時,原則為先進(jìn)先出機(jī)制。且將所述大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備的扇區(qū)中的線程的優(yōu)先級,定義為低優(yōu)先級,要低于一般的應(yīng)用線程,要高于系統(tǒng)空閑線程。因?yàn)椋娮赢a(chǎn)品中存在很多線程,其中所述系統(tǒng)空閑線程是指沒有作任何操作的線程,處于等待狀態(tài)的,這樣就可以利用此時間進(jìn)行先執(zhí)行異步寫的獨(dú)立的線程。另外,如果把此獨(dú)立線程定義為優(yōu)先級比較高,那么就會很一些優(yōu)先級比這獨(dú)立線程低的線程的操作處于等待狀態(tài),如錄像就會出現(xiàn)掉幀待問題,因而將所述線程的優(yōu)先級定義為低優(yōu)先級,就可以起到調(diào)度時間的作用。通過本申請所公開的存儲技術(shù),在將數(shù)據(jù)寫入存儲設(shè)備時,先將所述數(shù)據(jù)寫入緩沖區(qū)中,并將一個或多個緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū)中,由于 所述臨時緩沖區(qū)的容量較大,能夠同時存儲較多的數(shù)據(jù),從而將所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備時,可以一次性寫的數(shù)據(jù)比較多,并且,所述大緩沖區(qū)、所述小緩沖區(qū)都是順序排列的,在寫入所述臨時緩沖區(qū)后,所述待存儲數(shù)據(jù)也是按照順序排列,直接寫入存儲設(shè)備即可,不再需要查找內(nèi)存碎片,避免了因?yàn)樘鴮?、順寫造成的延時,提高了錄像品質(zhì)。相應(yīng)的,本發(fā)明還公開了一種攝像系統(tǒng),其結(jié)構(gòu)示意圖如圖6所示,包括:采集模塊1、創(chuàng)建模塊2、排序模塊3、大緩沖區(qū)寫入模塊4、臨時緩沖區(qū)創(chuàng)建模塊5和存儲設(shè)備寫入模塊6,其中:所述采集模塊1,用于采集包含有預(yù)設(shè)參數(shù)的程序的圖像,所述預(yù)設(shè)參數(shù)至少包括:預(yù)先設(shè)定的大緩沖區(qū)的個數(shù)及各個大緩沖區(qū)的大小、所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,所述各個大緩沖區(qū)分別對應(yīng)的數(shù)據(jù)地址;具體應(yīng)用時,所述采集模塊1可以為攝像系統(tǒng)的攝像頭;所述創(chuàng)建模塊2,用于對所述圖像進(jìn)行解析,創(chuàng)建與所述預(yù)設(shè)參數(shù)相對應(yīng)的大緩沖區(qū);所述排序模塊3,用于根據(jù)所述存儲設(shè)備中與所述各個大緩沖區(qū)分別對應(yīng)的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;所述大緩沖區(qū)寫入模塊4,用于當(dāng)需要存儲數(shù)據(jù)時,將待存儲數(shù)據(jù)寫入與所述待存儲數(shù)據(jù)相對應(yīng)的所述大緩沖區(qū)內(nèi);所述臨時緩沖區(qū)創(chuàng)建模塊5,用于當(dāng)所述大緩沖區(qū)內(nèi)寫入數(shù)據(jù)后,創(chuàng)建臨時緩沖區(qū),并將所述一個或多個大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū);所述存儲設(shè)備寫入模塊6,用于將寫入所述臨時緩沖區(qū)內(nèi)的數(shù)據(jù)寫入存儲設(shè)備中。另外,參見圖7,所述大緩沖區(qū)寫入模塊4包括:第一判斷單元41、第二判斷單元42、創(chuàng)建單元43和第一寫入單元44,其中:所述第一判斷單元41,用于判斷已創(chuàng)建的所述大緩沖區(qū)是否與所述待存儲數(shù)據(jù)要寫入的存儲設(shè)備的扇區(qū)相對應(yīng);所述第二判斷單元42,用于判斷所述大緩沖區(qū)所在的區(qū)域是否有足夠的存儲空間;所述創(chuàng)建單元43,用于創(chuàng)建新的大緩沖區(qū),并將所述待存儲數(shù)據(jù)寫入所述新創(chuàng)建的大緩沖區(qū)中,并根據(jù)所述待存儲數(shù)據(jù)對應(yīng)的存儲設(shè)備的扇區(qū)地址,對所述大緩沖區(qū)進(jìn)行排序;所述第一寫入單元44,用于將所述待存儲的數(shù)據(jù)寫入所述大緩沖區(qū)中。另外,參照圖8,所述臨時緩沖區(qū)創(chuàng)建模塊5包括:第三判斷單元51、臨時緩沖區(qū)創(chuàng)建單元52和第二寫入單元53,其中:所述第三判斷單元51,用于判斷所述大緩沖區(qū)中是否有待存儲的數(shù)據(jù);所述臨時緩沖區(qū)創(chuàng)建單元52,用于創(chuàng)建臨時緩沖區(qū);所述第二寫入單元53,用于將所述大緩沖區(qū)內(nèi)的待存儲數(shù)據(jù),按照所述大緩沖區(qū)的排序?qū)懭胨雠R時緩沖區(qū)中。通過本發(fā)明所公開的攝像系統(tǒng),可以將待存儲的數(shù)據(jù)寫入預(yù)先創(chuàng)建的大緩沖區(qū)中,并將一個或多個大緩沖區(qū)內(nèi)的數(shù)據(jù)寫入臨時緩沖區(qū),再通過所述臨時緩沖區(qū)將數(shù)據(jù)寫入存儲設(shè)備中,從而可以實(shí)現(xiàn)一次性寫的數(shù)據(jù)比較多,并避免了查找內(nèi)存碎片的時間,提高了寫數(shù)據(jù)的性能,提高了錄像品質(zhì)。對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。