大數(shù)據(jù)量圖片的存儲方法、以及檢索方法
【專利摘要】大數(shù)據(jù)量圖片的存儲方法、以及檢索方法,包括:設(shè)計一圖片索引文件:前16字節(jié)存儲當(dāng)前所有存儲圖片的總體信息,包括當(dāng)前保存的圖片總數(shù)、下一次發(fā)送的圖片索引、下一次寫圖片的索引、保存過的最大索引號,并預(yù)留8個字節(jié)用于后續(xù)擴(kuò)展,后16字節(jié)用于存儲已接收的圖片文件屬性;圖片的存儲按三級目錄進(jìn)行存儲。所述三級目錄的第一級目錄是年月,第二級目錄是日,第三級目錄是通道號。采用二分查找法快速檢索。本發(fā)明存儲采用三級目錄進(jìn)行存儲,減少一次需要檢索的數(shù)量。通過設(shè)計索引文件,可以引入一種快速檢索索引以及不用移動已有記錄,就能快速刪除的方法來提高效率。
【專利說明】大數(shù)據(jù)量圖片的存儲方法、以及檢索方法 【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明屬于計算機(jī)軟件【技術(shù)領(lǐng)域】,具體是指一種大數(shù)據(jù)量圖片的存儲方法、以及 檢索方法。 【【背景技術(shù)】】 >
[0002]車載監(jiān)控終端有個功能是拍攝的圖片要進(jìn)行圖片的存儲,檢索。采用現(xiàn)有技術(shù),索 引文件及圖片數(shù)據(jù)文件全部存放在TF卡根目錄下,索引文件存放已保存的圖片總數(shù)以及 每張圖片的基本屬性,每拍一張照片,總數(shù)加1,索引文件結(jié)尾添加圖片屬性;檢索的時候, 必須從第一張圖片逐個遍歷到最后一張,查找滿足條件的記錄,然后將匹配的記錄存儲在 一個固定大小的數(shù)組中,這樣不僅查找效率很低,而且如果滿足條件的記錄超過數(shù)組定義 的范圍,就會導(dǎo)致異常。當(dāng)圖片發(fā)送完成后要刪除時,需要從索引文件中刪除相關(guān)圖片的索 引信息,必須先刪除已發(fā)送圖片信息,然后將后面的記錄逐條前移,同樣效率非常低。
[0003] 有鑒于此,本發(fā)明人針對現(xiàn)有技術(shù)的缺陷深入研究,遂有本案產(chǎn)生。 【
【發(fā)明內(nèi)容】
】
[0004] 本發(fā)明所要解決的技術(shù)問題在于提供一種方便快速檢索的大數(shù)據(jù)量圖片的存儲 方法、以及檢索方法。
[0005] 本發(fā)明是這樣實(shí)現(xiàn)的:
[0006] 大數(shù)據(jù)量圖片的存儲方法,包括:設(shè)計一圖片索引文件:前16字節(jié)存儲當(dāng)前所有 存儲圖片的總體信息,包括當(dāng)前保存的圖片總數(shù)、下一次發(fā)送的圖片索引、下一次寫圖片的 索引、保存過的最大索引號,并預(yù)留8個字節(jié)用于后續(xù)擴(kuò)展,后16字節(jié)用于存儲已接收的圖 片文件屬性;圖片的存儲按三級目錄進(jìn)行存儲。所述三級目錄的第一級目錄是年月,第二級 目錄是日,第三級目錄是通道號。
[0007] 采用如上述方法存儲的大數(shù)據(jù)量圖片的檢索方法,采用二分查找法,具體包括: [000 8] 首先,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成 功;否則利用中間位置記錄將表分成前、后兩個子表,如果中間位置記錄的關(guān)鍵字大于查找 關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表;
[0009] 重復(fù)以上過程,直到找到滿足條件的記錄,此時查找成功,或直到子表不存在為 止,此時查找不成功。
[0010]本發(fā)明的優(yōu)點(diǎn)在于:首先,存儲采用三級目錄進(jìn)行存儲,減少一次需要檢索的數(shù) 量。其次,通過設(shè)計索引文件,可以引入一種快速檢索索引以及不用移動已有記錄,就能快 速刪除的方法來提高效率,可采用二分查找法快速檢索。 【【專利附圖】
【附圖說明】】
[0011]下面參照附圖結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步的描述。
[0012]圖1是本發(fā)明中索引文件結(jié)構(gòu)圖。
[0013] 圖2是本發(fā)明中存儲圖片的流程示意圖。
[0014]圖3是采用本發(fā)明的方法存儲的圖片進(jìn)行檢索流程示意圖。
[0015]圖4是采用本發(fā)明的方法存儲的圖片進(jìn)行二分查找法示意圖。 【【具體實(shí)施方式】】
[0016] 車載終端負(fù)責(zé)圖片數(shù)據(jù)的采集與存儲檢索,并通過無線網(wǎng)絡(luò)實(shí)時向平臺匯報車輛 相關(guān)數(shù)據(jù),車輛管理平臺負(fù)責(zé)接收終端匯報上來的圖片數(shù)據(jù),匯總成報表,以供查看。
[0017] 本發(fā)明主要涉及關(guān)于圖片的存儲和檢索。
[0018]首先,設(shè)計了一個索引文件,其內(nèi)容主要用于圖片檢索。前16字節(jié)存儲當(dāng)前所有 存儲圖片的總體信息,包括當(dāng)前保存的圖片總數(shù)、下一次發(fā)送的圖片索引、下一次寫圖片的 索引、保存過的最大索引號,并預(yù)留8個字節(jié)用于后續(xù)擴(kuò)展;后16字節(jié)后用于存儲已接收的 圖片文件屬性。
[0019] 圖片屬性結(jié)構(gòu)體定義如下:
[0020] typedef struct { unsized char State; //0 保留,0x01 待側(cè)除,_〇2 巴發(fā)霞 unsigned .char FifeName[FileNameLen]該媒律的復(fù)件名 unsigned char MediaType; //圖片類型;&圖像,1音_, 2 視頻 miSignedcharMediaFormat;//圖片:格式編礙;0JPBG,1 TIF, 2 MP3, 3 WAV 4WMV,其他保留 wis_ied char EventCcA; //事件:頊1|馬:?平臺嘗處指令,1氣時讀., 2#暴報警魅發(fā),3碰撞報警觸發(fā)^,其操保留 unsigned char ChannallE^ /-- ID: unsigned char Position[28]; 沒位置:45·息,雜.發(fā)當(dāng)時記錄下來的位置信急 unsigned int MediaTD; //圖片 ID >:D unsigned int Savetime; //媒體觸發(fā)時的時網(wǎng) }media_info;
[0021] 索引文件結(jié)構(gòu)如圖1所示。
[0022] 索引文件最大可存儲10000張圖片的信息,每次寫文件之前,先判斷當(dāng)前圖片保 存圖片時間是否晚于最后一次保存的圖片,如果晚,則根據(jù)Writelndex計算圖片屬性存儲 位置,Writelndex++,將最新接收到的圖片屬性寫入Writelndex這個位置,圖片總數(shù)加 1 ; 如果早,則說明存在異常,不保存,返回失敗。Writelndex達(dá)到最大值后,從〇開始循環(huán)繼續(xù) 與。
[0023] 圖片存儲分三級目錄,第一級目錄是年月,第二級目錄是日,第三級目錄是通道 號。圖片命名規(guī)則是:分秒時(BCD碼)。例如201309/01/01/目錄下的圖片020301,表示 通道1于2013-09-0101:02:03拍攝的照片。存儲流程如圖2所示。通過對圖片的存儲目 錄分級,使得終端圖片存儲更便利。通過減少單個目錄下圖片的檢索量,也加快了各種相關(guān) 操作的效率。
[0024] 圖片數(shù)據(jù)檢索條件,包括圖片類型、通道ID、事件項、起始時間、結(jié)束時間。當(dāng)平臺 下發(fā)圖片檢索命令后,終端需要從索引文件中找出滿足條件的圖片ID,然后根據(jù)ID獲取圖 片數(shù)據(jù)。查找方法采用二分法先查找出起始時間位置和結(jié)束時間位置,然后順序查找滿足 檢索條件的信息,然后將找到的圖片屬性順序儲存到一個臨時文件中,檢索完畢后,讀取這 個臨時文件,然后逐個上傳至平臺。圖片上傳成功后,下一次發(fā)送圖片索引+ =上傳張數(shù)。 如果圖片要刪除,則刪除圖片并修改索引文件中該張圖片的狀態(tài)位為刪除標(biāo)志。檢索流程 如圖3所示。
[0025]由于索引文件中,已存圖片的圖片屬性記錄是按照時間先后順序存儲的,完全滿 足二分法查找的條件,所以檢索時采用了該算法。
[0026]二分查找又稱折半查找,它是一種效率較高的查找方法。它要求數(shù)據(jù)必須采用順 序存儲結(jié)構(gòu)、必須按關(guān)鍵字大小有序排列。優(yōu)點(diǎn)是比較次數(shù)少、查找速度快、平均性能好。 [0027]首先,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成 功;否則利用中間位置記錄將表分成前、后兩個子表,如果中間位置記錄的關(guān)鍵字大于查找 關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表。
[0028] 重復(fù)以上過程,直到找到滿足條件的記錄,此時查找成功,或直到子表不存在為 止,此時查找不成功。圖4以查找數(shù)字8為例,圖解說明二分法查找算法。
[0029]本發(fā)明通過圖片存儲索引的設(shè)計及檢索方法的設(shè)計,加快了終端在拍照存儲功能 使用過程中的時間效率,使得客戶在應(yīng)用時即使存儲的圖片較多,也可以在最短時間內(nèi)得 到響應(yīng)。同時避免了原有算法的漏洞,每次索引數(shù)據(jù)都要全部后移,容易數(shù)組越界等。
[0030]以上所述僅為本發(fā)明的較佳實(shí)施用例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡 在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的 保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 大數(shù)據(jù)量圖片的存儲方法,其特征在于:包括: 設(shè)計一圖片索引文件:前16字節(jié)存儲當(dāng)前所有存儲圖片的總體信息,包括當(dāng)前保存的 圖片總數(shù)、下一次發(fā)送的圖片索引、下一次寫圖片的索引、保存過的最大索引號,并預(yù)留8 個字節(jié)用于后續(xù)擴(kuò)展,后16字節(jié)用于存儲已接收的圖片文件屬性;圖片的存儲按三級目錄 進(jìn)行存儲。
2. 如權(quán)利要求1所述的大數(shù)據(jù)量圖片的存儲方法,其特征在于:所述三級目錄的第一 級目錄是年月,第二級目錄是日,第三級目錄是通道號。
3. 采用如權(quán)利要求1或2所述的方法存儲的大數(shù)據(jù)量圖片的檢索方法,其特征在于: 采用二分查找法,具體包括: 首先,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否 則利用中間位置記錄將表分成前、后兩個子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵 字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表; 重復(fù)以上過程,直到找到滿足條件的記錄,此時查找成功,或直到子表不存在為止,此 時查找不成功。
【文檔編號】G06F17/30GK104298747SQ201410537936
【公開日】2015年1月21日 申請日期:2014年10月13日 優(yōu)先權(quán)日:2014年10月13日
【發(fā)明者】郭碧蓮, 丁祥, 林君鉞, 孟艷瓊, 莊藝園 申請人:福建星海通信科技有限公司