對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng),該方法包括:獲取預設緩存區(qū)的當前剩余空間大小,將當前采集到的數(shù)據(jù)大小與預設緩存區(qū)的當前剩余空間大小進行比較;在當前采集到的數(shù)據(jù)大小大于預設緩存區(qū)的當前剩余空間大小時,壓縮預設緩存區(qū)中緩存的數(shù)據(jù),將壓縮后的數(shù)據(jù)寫入存儲器,清空預設緩存區(qū)中緩存的數(shù)據(jù);將當前采集到的數(shù)據(jù)緩存到預設緩存區(qū)。本發(fā)明的對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng),系統(tǒng)內(nèi)存中緩存實時采集的數(shù)據(jù)總量不會超過預設緩存區(qū)的總空間大小,不會造成內(nèi)存中緩存實時采集的數(shù)據(jù)總量過大,而導致壓縮內(nèi)存中的緩存的數(shù)據(jù)時占用內(nèi)存空間過大和處理時間過長,提高系統(tǒng)的實時性。
【專利說明】對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及到數(shù)據(jù)處理【技術領域】,特別涉及到一種對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng)。
【背景技術】
[0002]目前,數(shù)據(jù)采集裝置(例如,視頻監(jiān)控裝置)對實時采集的數(shù)據(jù)進行存儲的方法是:數(shù)據(jù)采集裝置將采集到的數(shù)據(jù)全部緩存在系統(tǒng)的內(nèi)存(RAM)中,間隔預設的時間后對內(nèi)存中緩存的數(shù)據(jù)進行一次壓縮并寫入到存儲器中以釋放系統(tǒng)的內(nèi)存空間。由于緩存到內(nèi)存中的數(shù)據(jù)來源多且大小變化,因此每個預設的時間內(nèi)緩存到內(nèi)存中的數(shù)據(jù)總量大小不同,當內(nèi)存中緩存的數(shù)據(jù)總量大小過大時,壓縮內(nèi)存中緩沖的數(shù)據(jù)時占用的內(nèi)存空間較大并且需要較長的處理器運算時間。由于系統(tǒng)在執(zhí)行壓縮的這個過程中被占用了較大內(nèi)存空間,這種存儲方法通常會導致對其他事件(例如數(shù)據(jù)的實時采集)的內(nèi)存占用而影響對其他事件的處理,尤其是對于內(nèi)存空間較小的系統(tǒng),甚至會導致沒有足夠的內(nèi)存處理其他事件,影響系統(tǒng)的實時性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的主要目的為提供一種對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng),旨在降低數(shù)據(jù)壓縮過程對系統(tǒng)內(nèi)存的占用量和縮短數(shù)據(jù)壓縮過程系統(tǒng)所需的處理時間,從而提高系統(tǒng)的實時性。
[0004]本發(fā)明提出一種對實時采集的數(shù)據(jù)壓縮存儲的方法,包括以下步驟:
[0005]獲取預設緩存區(qū)的當前剩余空間大小,將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較;
[0006]在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時,壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù),將壓縮后的數(shù)據(jù)寫入存儲器,清空所述預設緩存區(qū)中緩存的數(shù)據(jù);
[0007]將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0008]優(yōu)選地,所述獲取預設緩存區(qū)的當前剩余空間大小,將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較的步驟之后還包括:
[0009]在所述當前采集到的數(shù)據(jù)大小小于或等于所述預設緩存區(qū)的當前剩余空間大小時,將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0010]優(yōu)選地,所述獲取預設緩存區(qū)的當前剩余空間大小的步驟包括:
[0011]獲取預設緩存區(qū)已緩存的數(shù)據(jù)大??;
[0012]將所述預設緩存區(qū)的總空間大小與所述已緩存的數(shù)據(jù)大小做差,得到所述預設緩存區(qū)的當前剩余空間大小。
[0013]優(yōu)選地,所述獲取預設緩存區(qū)的當前剩余空間大小的步驟之前,還包括:
[0014]在內(nèi)存中建立預設緩存區(qū)以及在所述存儲器上建立存儲文件。[0015]優(yōu)選地,所述將壓縮后的數(shù)據(jù)寫入存儲器的步驟包括:
[0016]將所述壓縮后的數(shù)據(jù)添加到所述存儲文件中。
[0017]本發(fā)明進一步提出一種對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),包括:
[0018]獲取模塊,用于獲取預設緩存區(qū)的當前剩余空間大??;
[0019]壓縮模塊,用于將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較,在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù);
[0020]寫入模塊,用于將所述壓縮模塊壓縮后的數(shù)據(jù)寫入存儲器,清空所述預設緩存區(qū)中緩存的數(shù)據(jù),將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0021]優(yōu)選地,所述寫入模塊還用于在所述當前采集到的數(shù)據(jù)大小小于或等于所述預設緩存區(qū)的當前剩余空間大小時,將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0022]優(yōu)選地,所述獲取模塊用于:
[0023]獲取預設緩存區(qū)已緩存的數(shù)據(jù)大??;
[0024]將所述預設緩存區(qū)的總空間大小與所述已緩存的數(shù)據(jù)大小做差,得到所述預設緩存區(qū)的當前剩余空間大小。
[0025]優(yōu)選地,還包括建立模塊,用于在內(nèi)存中建立預設緩存區(qū)以及在所述存儲器上建立存儲文件。
[0026]優(yōu)選地,所述寫入模塊用于將所述壓縮模塊壓縮后的數(shù)據(jù)添加到所述存儲文件中。
[0027]本發(fā)明的對實時采集的數(shù)據(jù)壓縮存儲的方法及系統(tǒng),先將實時采集的數(shù)據(jù)先緩存在預設緩存區(qū),在當前采集到的數(shù)據(jù)大小大于預設緩存區(qū)的當前剩余空間大小時,就將預設緩存區(qū)中的數(shù)據(jù)進行壓縮寫入到存儲器中。因此系統(tǒng)內(nèi)存中緩存實時采集的數(shù)據(jù)總量不會超過預設緩存區(qū)的總空間大小,不會造成內(nèi)存中緩存實時采集的數(shù)據(jù)總量過大,而導致壓縮內(nèi)存中的緩存的數(shù)據(jù)時占用內(nèi)存空間過大和處理時間過長,提高系統(tǒng)的實時性。
【專利附圖】
【附圖說明】
[0028]圖1為本發(fā)明對實時采集的數(shù)據(jù)壓縮存儲的方法較佳實施例的流程圖;
[0029]圖2為本發(fā)明對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng)較佳實施例的模塊示意圖。
[0030]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
【具體實施方式】
[0031]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0032]如圖1所示,圖1為本發(fā)明對實時采集的數(shù)據(jù)壓縮存儲的方法較佳實施例的流程圖。
[0033]該實施例提到的對實時采集的數(shù)據(jù)壓縮存儲的方法,包括:
[0034]步驟S10,獲取預設緩存區(qū)的當前剩余空間大小。
[0035]獲取到所述預設緩存區(qū)的當前剩余空間大小后,將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較,也就是執(zhí)行步驟S20。
[0036]步驟S20,判斷當前采集到的數(shù)據(jù)大小是否大于所述預設緩存區(qū)的當前剩余空間大小。
[0037]在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時,即所述預設緩存區(qū)的當前剩余空間大小不夠緩存所述當前采集到的數(shù)據(jù),因此執(zhí)行步驟S30。
[0038]步驟S30,壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù)。
[0039]根據(jù)系統(tǒng)對實時性能要求的不同,在系統(tǒng)制作時選擇相應的壓縮等級(系統(tǒng)運行后系統(tǒng)不能自動調(diào)節(jié))。選擇的壓縮等級越高,系統(tǒng)對相同大小的數(shù)據(jù)執(zhí)行壓縮所需的處理時間越長,對系統(tǒng)的實時性影響就越大,因此系統(tǒng)對實時性能要求越高,則選擇越低的壓縮等級,以縮短系統(tǒng)執(zhí)行壓縮操作時所需的時間。壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù)后,對壓縮后的數(shù)據(jù)執(zhí)行步驟S40。
[0040]步驟S40,將壓縮后的數(shù)據(jù)寫入存儲器。
[0041]在所述壓縮后的數(shù)據(jù)被寫入到所述存儲器存儲后,所述預設緩存區(qū)中的數(shù)據(jù)成無用數(shù)據(jù),執(zhí)行步驟S50以釋放所述預設緩存區(qū)的空間。
[0042]步驟S50,清空所述預設緩存區(qū)中緩存的數(shù)據(jù)。
[0043]清空所述預設緩存區(qū)后,所述預設緩存區(qū)的當前剩余空間大小為其最大空間大小(預設緩存區(qū)的總空間大小),完全足夠緩存當前采集到的數(shù)據(jù),因而此時無需再將的預設緩存區(qū)的當前剩余空間大小與所述當前采集到的數(shù)據(jù)大小進行比較,直接執(zhí)行步驟S60。
[0044]步驟S60,將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0045]進一步地,在所述當前采集到的數(shù)據(jù)小于或等于所述預設緩存區(qū)的當前剩余空間大小時,即所述預設緩存區(qū)的當前剩余空間大小足夠緩存所述當前采集到的數(shù)據(jù),可以跳轉(zhuǎn)到步驟S60,也可以接著執(zhí)行步驟S30,或者是執(zhí)行其他操作。本實施例優(yōu)選當所述當前采集到的數(shù)據(jù)小于或等于所述預設緩存區(qū)的當前剩余空間大小時,跳轉(zhuǎn)到步驟S60。
[0046]本實施例提出的對實時采集的數(shù)據(jù)壓縮存儲的方法,先將實時采集的數(shù)據(jù)先緩存在預設緩存區(qū),在當前采集到的數(shù)據(jù)大小大于預設緩存區(qū)的當前剩余空間大小時,就將預設緩存區(qū)中的數(shù)據(jù)進行壓縮寫入到存儲器中。因此系統(tǒng)內(nèi)存中緩存實時采集的數(shù)據(jù)總量不會超過預設緩存區(qū)的總空間大小,不會造成內(nèi)存中緩存實時采集的數(shù)據(jù)總量過大,而導致壓縮內(nèi)存中的緩存的數(shù)據(jù)時占用內(nèi)存空間過大和處理時間過長,提高系統(tǒng)的實時性。
[0047]進一步地,步驟SlO包括:
[0048]獲取預設緩存區(qū)已緩存的數(shù)據(jù)大小。
[0049]將所述預設緩存區(qū)的總空間大小與所述已緩存的數(shù)據(jù)大小做差,得到所述預設緩存區(qū)的當前剩余空間大小。
[0050]由于所述預設緩存區(qū)的剩余空間大小=所述預設緩存區(qū)的總空間大小-所述預設緩存區(qū)中已緩存的數(shù)據(jù)大??;因此通過上述方式即可得到所述預設緩存區(qū)的當前剩余空間大小。當然,步驟Sio還可以是通過其他方式獲取預設緩存區(qū)的當前剩余空間大小。
[0051]進一步地,在步驟SlO之前,還包括:
[0052]在內(nèi)存中建立預設緩存區(qū)以及在所述存儲器上建立存儲文件。
[0053]在內(nèi)存中建立預設緩存區(qū),所述預設緩存區(qū)的容量大小根據(jù)系統(tǒng)的剩余內(nèi)存空間和實時性能要求進行設定,預設緩存區(qū)的容量越小,步驟S30和S40執(zhí)行的頻率越高,步驟S30每次執(zhí)行的時間越短,實時性能越好。存儲文件即在存儲器上建立的存儲路徑。
[0054]進一步地,本實施例步驟S40包括:[0055]將所述壓縮后的數(shù)據(jù)添加到所述存儲文件中。
[0056]所述存儲文件可用來存儲一段時間(預設時間內(nèi))內(nèi)從所述預設緩存區(qū)寫入到的數(shù)據(jù),該存儲時間到達時關閉當前存儲文件,建立新的存儲文件存儲一個預設時間內(nèi)從所述預設緩存區(qū)寫入到的數(shù)據(jù)。這樣就可以方便數(shù)據(jù)的查找和管理。
[0057]如圖2所示,本發(fā)明進一步提出一種對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),包括:獲取模塊、壓縮模塊和寫入模塊。其中:
[0058]獲取模塊用于獲取預設緩存區(qū)的當前剩余空間大小。
[0059]壓縮模塊用于將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較,在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù)。
[0060]寫入模塊用于將所述壓縮模塊壓縮后的數(shù)據(jù)寫入存儲器,清空所述預設緩存區(qū)中緩存的數(shù)據(jù),將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0061]在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時,說明所述預設緩存區(qū)的當前剩余空間大小不夠緩存所述當前采集到的數(shù)據(jù),此時需要先對所述預設緩存區(qū)中的數(shù)據(jù)進行清理以釋放出足夠的空間存儲所述當前采集到的數(shù)據(jù)。首先通過壓縮模塊將所述預設緩存區(qū)中緩存的數(shù)據(jù)壓縮;然后所述寫入模塊將所述壓縮模塊壓縮后的數(shù)據(jù)寫入到所述存儲器中,此時預設緩存區(qū)中緩存的數(shù)據(jù)已在存儲器中保存,可以清理;寫入模塊將所述預設緩存區(qū)清空。清空所述預設緩存區(qū)后,所述預設緩存區(qū)的當前剩余空間大小為其最大空間大小(預設緩存區(qū)的總空間大小),完全足夠緩存當前采集到的數(shù)據(jù),因而此時無需再將的預設緩存區(qū)的當前剩余空間大小與所述當前采集到的數(shù)據(jù)大小進行比較,寫入模塊直接將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)中。
[0062]進一步地,所述寫入模塊還用于在所述當前采集到的數(shù)據(jù)大小小于或等于所述預設緩存區(qū)的當前剩余空間大小時,將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
[0063]在所述當前采集到的數(shù)據(jù)小于或等于所述預設緩存區(qū)的當前剩余空間大小時,SP所述預設緩存區(qū)的當前剩余空間大小足夠緩存所述當前采集到的數(shù)據(jù),所述寫入模塊直接將所述當前采集到的數(shù)據(jù)直接緩存到所述預設緩存區(qū)。
[0064]本實施例提出的對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),先將實時采集的數(shù)據(jù)先緩存在預設緩存區(qū),在當前采集到的數(shù)據(jù)大小大于預設緩存區(qū)的當前剩余空間大小時,就將預設緩存區(qū)中的數(shù)據(jù)進行壓縮寫入到存儲器中。因此系統(tǒng)內(nèi)存中緩存實時采集的數(shù)據(jù)總量不會超過預設緩存區(qū)的總空間大小,不會造成內(nèi)存中緩存實時采集的數(shù)據(jù)總量過大,而導致壓縮內(nèi)存中的緩存的數(shù)據(jù)時占用內(nèi)存空間過大和處理時間過長,提高系統(tǒng)的實時性。
[0065]進一步地,所述獲取模塊用于:
[0066]獲取預設緩存區(qū)已緩存的數(shù)據(jù)大小;
[0067]將所述預設緩存區(qū)的總空間大小與所述已緩存的數(shù)據(jù)大小做差,得到所述預設緩存區(qū)的當前剩余空間大小。
[0068]所述預設緩存區(qū)的剩余空間大小=所述預設緩存區(qū)的總空間大小-所述預設緩存區(qū)中已緩存的數(shù)據(jù)大小。所述獲取模塊通過該方式可以得到所述預設緩存區(qū)的當前剩余空間大小。當然,所述獲取模塊還可以是通過其他方式獲取預設緩存區(qū)的當前剩余空間大小。
[0069]進一步地,本實施例對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng)還包括建立模塊,用于在內(nèi)存中建立預設緩存區(qū)以及在所述存儲器上建立存儲文件。
[0070]建立模塊在內(nèi)存中建立預設緩存區(qū),所述預設緩存區(qū)的容量大小根據(jù)系統(tǒng)的剩余內(nèi)存空間和實時性能要求進行設定,預設緩存區(qū)的容量越小,壓縮模塊執(zhí)行壓縮的頻率越高,壓縮模塊每次執(zhí)行壓縮的時間越短,實時性能越好。存儲文件即在存儲器上建立的存儲路徑。
[0071]進一步地,所述寫入模塊用于將所述壓縮模塊壓縮后的數(shù)據(jù)添加到所述存儲文件中。
[0072]所述存儲文件可用來存儲一段時間(預設時間內(nèi))內(nèi)從所述預設緩存區(qū)寫入到的數(shù)據(jù),該存儲時間到達時關閉當前存儲文件,建立新的存儲文件存儲一個預設時間內(nèi)從所述預設緩存區(qū)寫入到的數(shù)據(jù)。這樣就可以方便數(shù)據(jù)的查找和管理。
[0073]以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構或等效流程變換,或直接或間接運用在其他相關的【技術領域】,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【權利要求】
1.一種對實時采集的數(shù)據(jù)壓縮存儲的方法,其特征在于,包括以下步驟: 獲取預設緩存區(qū)的當前剩余空間大小,將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較; 在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時,壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù),將壓縮后的數(shù)據(jù)寫入存儲器,清空所述預設緩存區(qū)中緩存的數(shù)據(jù); 將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
2.根據(jù)權利要求1所述的對實時采集的數(shù)據(jù)壓縮存儲的方法,其特征在于,所述獲取預設緩存區(qū)的當前剩余空間大小,將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較的步驟之后還包括: 在所述當前采集到的數(shù)據(jù)大小小于或等于所述預設緩存區(qū)的當前剩余空間大小時,將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
3.根據(jù)權利要求1所述的對實時采集的數(shù)據(jù)壓縮存儲的方法,其特征在于,所述獲取預設緩存區(qū)的當前剩余空間大小的步驟包括: 獲取預設緩存區(qū)已緩存的數(shù)據(jù)大??; 將所述預設緩存區(qū)的總空間大小與所述已緩存的數(shù)據(jù)大小做差,得到所述預設緩存區(qū)的當前剩余空間大小。
4.根據(jù)權利要求1至3中任一項所述的對實時采集的數(shù)據(jù)壓縮存儲的方法,其特征在于,所述獲取預設緩存區(qū)的當前剩余空間大小的步驟之前,還包括: 在內(nèi)存中建立預設緩存區(qū)以及在所述存儲器上建立存儲文件。
5.根據(jù)權利要求4所述的對實時采集的數(shù)據(jù)壓縮存儲的方法,其特征在于,所述將壓縮后的數(shù)據(jù)寫入存儲器的步驟包括: 將所述壓縮后的數(shù)據(jù)添加到所述存儲文件中。
6.一種對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),其特征在于,包括: 獲取模塊,用于獲取預設緩存區(qū)的當前剩余空間大??; 壓縮模塊,用于將當前采集到的數(shù)據(jù)大小與所述預設緩存區(qū)的當前剩余空間大小進行比較,在所述當前采集到的數(shù)據(jù)大小大于所述預設緩存區(qū)的當前剩余空間大小時壓縮所述預設緩存區(qū)中緩存的數(shù)據(jù); 寫入模塊,用于將所述壓縮模塊壓縮后的數(shù)據(jù)寫入存儲器,清空所述預設緩存區(qū)中緩存的數(shù)據(jù),將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
7.根據(jù)權利要求6所述的對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),其特征在于,所述寫入模塊還用于在所述當前采集到的數(shù)據(jù)大小小于或等于所述預設緩存區(qū)的當前剩余空間大小時,將所述當前采集到的數(shù)據(jù)緩存到所述預設緩存區(qū)。
8.根據(jù)權利要求6所述的對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),其特征在于,所述獲取模塊用于: 獲取預設緩存區(qū)已緩存的數(shù)據(jù)大??; 將所述預設緩存區(qū)的總空間大小與所述已緩存的數(shù)據(jù)大小做差,得到所述預設緩存區(qū)的當前剩余空間大小。
9.根據(jù)權利要求6至8中任一項所述的對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),其特征在于,還包括建立模塊,用于在內(nèi)存中建立預設緩存區(qū)以及在所述存儲器上建立存儲文件。
10.根 據(jù)權利要求9所述的對實時采集的數(shù)據(jù)壓縮存儲的系統(tǒng),其特征在于,所述寫入模塊用于將所述壓縮模塊壓縮后的數(shù)據(jù)添加到所述存儲文件中。
【文檔編號】G06F12/08GK103744627SQ201410037361
【公開日】2014年4月23日 申請日期:2014年1月26日 優(yōu)先權日:2014年1月26日
【發(fā)明者】劉篤佼, 李立 申請人:武漢英泰斯特電子技術有限公司