此步驟將待存儲(chǔ)圖像分割為規(guī)范大小的圖像分塊,對(duì)于圖像分塊的大小在本發(fā)明實(shí)施例中不予限定。
[0032]步驟S103,判斷指紋庫(kù)中是否存在與弱分塊指紋相同的弱參考指紋,當(dāng)指紋庫(kù)中存在與弱分塊指紋相同的弱參考指紋時(shí),獲取弱參考指紋;
[0033]此步驟還包括:若指紋庫(kù)中不存在與弱分塊指紋相同的弱參考指紋,則將弱分塊指紋作為新的若參考指紋存入指紋庫(kù),以及將弱分塊指紋對(duì)應(yīng)的圖像分塊存入圖像庫(kù)。
[0034]具體過(guò)程為:比較弱分塊指紋與指紋庫(kù)中的弱參考指紋,確定二者是否相同:若二者相同,則記錄弱分塊指紋對(duì)應(yīng)圖像分塊的分塊位置及記錄與弱分塊指紋相同的弱參考指紋;若弱分塊指紋與弱參考指紋不同,則將弱分塊指紋作為弱參考指紋存儲(chǔ)于指紋庫(kù),并將弱分塊指紋所對(duì)應(yīng)的圖像分塊存儲(chǔ)至圖像庫(kù)。
[0035]步驟S104,根據(jù)弱參考指紋從圖像庫(kù)中獲取弱參考指紋所對(duì)應(yīng)的第一參考圖像分塊,根據(jù)第一參考圖像分塊對(duì)圖像分塊進(jìn)行壓縮獲得壓縮圖像分塊,存儲(chǔ)壓縮圖像分塊。
[0036]根據(jù)弱參考指紋從圖像庫(kù)中獲得第一參考圖像分塊后,根據(jù)第一參考圖像分塊將圖像分塊進(jìn)行delta壓縮,獲得壓縮圖像分塊??蛇x的,比較壓縮圖像分塊的像素與圖像分塊的像素,判斷壓縮效果,若壓縮圖像分塊的像素小于圖像分塊的像素,則存儲(chǔ)壓縮圖像分塊,否則直接存儲(chǔ)圖像分塊。
[0037]由于第一參考圖像分塊與圖像分塊具有一定的相似性,通過(guò)壓縮的方式能夠縮減圖像分塊的數(shù)據(jù),本實(shí)施例所采用的壓縮方式為差分del ta壓縮(差分delta壓縮通過(guò)只存儲(chǔ)相對(duì)于原始備份文件被修改的部分,來(lái)減小存儲(chǔ)總量。例如:一個(gè)大約包含200G數(shù)據(jù)的文件組,與原始備份相比可能只有50M的數(shù)據(jù)是被修改過(guò)的,那么也只有這50M的數(shù)據(jù)會(huì)被存儲(chǔ)起來(lái))。需要說(shuō)明的是,具體壓縮方式本發(fā)明不予限定。
[0038]在步驟S103之前還包括步驟S1021,檢索指紋庫(kù),判斷指紋庫(kù)中是否存在與強(qiáng)分塊指紋相同的強(qiáng)參考指紋,當(dāng)指紋庫(kù)中不存在與強(qiáng)分塊指紋相同的強(qiáng)參考指紋時(shí),將強(qiáng)分塊指紋作為新的強(qiáng)參考指紋存入指紋庫(kù),并執(zhí)行步驟S103;當(dāng)指紋庫(kù)中存在與強(qiáng)分塊指紋相同的強(qiáng)參考指紋時(shí),根據(jù)強(qiáng)參考指紋從圖像庫(kù)中獲取強(qiáng)參考指紋所對(duì)應(yīng)的第二參考圖像分塊的第二存儲(chǔ)地址,在該圖像分塊的分割位置標(biāo)記第二存儲(chǔ)地址。
[0039]需要說(shuō)明的是,在本實(shí)施例步驟SlOl-步驟S104以及步驟S1021所提及的弱分塊指紋及弱參考指紋均指代Rabin指紋(Rabin指紋指根據(jù)美國(guó)哈佛大學(xué)教授拉賓(Rabin)提出的方法獲得的指紋),兩個(gè)Rabin指紋不同,兩個(gè)Rabin指紋所對(duì)應(yīng)的兩個(gè)圖像分塊也不相同,而兩個(gè)Rabin指紋相同,兩個(gè)Rabin指紋所對(duì)應(yīng)的兩個(gè)圖像分塊相似(包括完全相同)。可以預(yù)見(jiàn),若使用的指紋計(jì)算函數(shù)不同,根據(jù)本實(shí)施例所提供的方法,也可以達(dá)到本實(shí)施例預(yù)期的目的。而強(qiáng)分塊指紋及強(qiáng)參考指紋指代另外一種哈希值,并且哈希值相同,哈希值所對(duì)應(yīng)的數(shù)據(jù)也相同。
[0040]圖2為本發(fā)明實(shí)施例待存儲(chǔ)圖像存儲(chǔ)前后示意圖,如圖2所示,待存儲(chǔ)圖像由圖像分塊C1-C9組成,存儲(chǔ)的待存儲(chǔ)圖像由圖像分塊Cl的存儲(chǔ)地址、圖像分塊C2的存儲(chǔ)地址、圖像分塊C3、壓縮圖像分塊C4’、壓縮圖像分塊C5’、圖像分塊C6的存儲(chǔ)地址、圖像分塊C7、圖像分塊CS及壓縮圖像分塊C9 ’組成。
[0041]為了進(jìn)一步闡明水平滑動(dòng)分割的【具體實(shí)施方式】,下面通過(guò)舉例的方式對(duì)本方法進(jìn)行闡述:
[0042]圖3為本發(fā)明實(shí)施例所提供水平分割的分割過(guò)程示意圖,如圖3所示,待存儲(chǔ)圖像為N XM的像素矩陣,H為水平滑動(dòng)窗口,且水平滑動(dòng)窗口 H的矩陣大小為X X Y,即:H=X X Y(X〈N,Υ〈Μ);VH為水平滑動(dòng)窗口H的運(yùn)動(dòng)方向,H1為水平滑動(dòng)窗口H每次水平滑動(dòng)的水平滑動(dòng)距離,H2為水平滑動(dòng)窗口 H在垂直方向移動(dòng)的垂直移動(dòng)距離,(i,j)為分割位置,且(I,J)為初始分割位置。
[0043]需要說(shuō)明的是,水平滑動(dòng)窗口 H的大小、水平滑動(dòng)距離Hl和垂直移動(dòng)距離H2的大小沒(méi)有限制,但可以預(yù)見(jiàn)的是,水平滑動(dòng)窗口H的大小、水平滑動(dòng)距離Hl和垂直移動(dòng)距離H2越小,對(duì)待存儲(chǔ)圖像像素的分割程度越大。
[0044]圖4為本發(fā)明實(shí)施例提供水平分割法的方法流程示意圖,如圖4所示,水平分割法的具體分割過(guò)程為:
[0045]步驟201,獲取像素子矩陣,計(jì)算該像素子矩陣的弱分塊指紋;
[0046]水平滑動(dòng)窗口H從位置(i,j)獲取XXY大小的像素子矩陣,計(jì)算該像素子矩陣的弱分塊指紋。此步驟中水平滑動(dòng)窗口 R的位置即為第一步驟至第四步驟中的第一分割位置。
[0047]步驟202,判斷弱分塊指紋是否滿足指紋邊界條件,若弱分塊指紋滿足指紋邊界條件,則執(zhí)行步驟S203,否則執(zhí)行步驟S204;
[0048]步驟S203,將像素子矩陣作為圖像分塊進(jìn)行分割,并獲得該圖像分塊的強(qiáng)分塊指紋;
[0049]步驟S204,i = i+Hl,并判斷i+X是否大于N,若i+X>N則執(zhí)行步驟S205,否則執(zhí)行步驟S201;
[0050]此步驟將水平滑動(dòng)窗口H水平滑動(dòng)水平滑動(dòng)距離Hl,判斷i+X是否大于N是為了判斷水平滑動(dòng)窗口 H是否到達(dá)待存儲(chǔ)圖像像素矩陣的邊界。此步驟中水平滑動(dòng)窗口 R所在位置即為第二步驟和第三步驟中描述的第二分割位置,i+X>N即為第三步驟中描述的第一邊界條件。
[0051]步驟S205,分割獲得圖像分塊。
[0052]獲取水平滑動(dòng)窗口H內(nèi)的像素矩陣作為圖像分塊,獲得該圖像分塊的強(qiáng)分塊指紋、弱分塊指紋;
[0053]步驟S206,令j = j+H2,i = I,并判斷j+Y是否大于M,若j+Y>M,則執(zhí)行步驟S207,否則執(zhí)行步驟S201。
[0054]此步驟中水平滑動(dòng)窗口所在位置即為第四步驟中描述的第三分割位置,j+Y>M即為第四步驟中的第二邊界條件。
[0055]步驟S207,停止水平滑動(dòng)分割。
[0056]圖5為本發(fā)明實(shí)施例所提供垂直分割的分割過(guò)程示意圖,如圖5所示,待存儲(chǔ)圖像為NXM的像素矩陣,V為垂直滑動(dòng)窗口,且垂直滑動(dòng)窗口 V的矩陣大小為PXQ,即:V = PXQ(P<N,Q〈M) ;VV為垂直滑動(dòng)窗口 V的運(yùn)動(dòng)方向,V1為垂直滑動(dòng)窗口 V每次垂直滑動(dòng)的垂直滑動(dòng)距離,V2為垂直滑動(dòng)窗口 V在水平方向移動(dòng)的水平移動(dòng)距離,(i,j)為分割位置,且(I,J)為初始分割位置。
[0057]需要說(shuō)明的是,垂直滑動(dòng)窗口 V的大小、垂直滑動(dòng)距離Vl和水平移動(dòng)距離V2的大小沒(méi)有限制,但可以預(yù)見(jiàn)的是,垂直滑動(dòng)窗口 V的大小、垂直滑動(dòng)距離Vl和水平移動(dòng)距離V2越小,對(duì)待存儲(chǔ)圖像像素的分割程度越大。
[0058]圖6為本發(fā)明實(shí)施例所提供垂直分割的方法流程示意圖,如圖6所示,垂直分割法的具體分割過(guò)程為:
[0059]步驟301,獲取像素子矩陣,計(jì)算該像素子矩陣的弱分塊指紋;
[0060]垂直滑動(dòng)窗口V從位置(i,j)獲取XXY大小的像素子矩陣,計(jì)算該像素子矩陣的弱分塊指紋。此步驟中垂直滑動(dòng)窗口 R的位置即為第五步驟至第八步驟中的第四分割位置。[0061 ]步驟302,判斷弱分塊指紋是否滿足指紋邊界條件,若弱分塊指紋滿足邊界條件,則執(zhí)行步驟S303,否則執(zhí)行步驟S304;
[0062]步驟S303,將像素子矩陣作為圖像分塊進(jìn)行分割,獲得該圖像分塊的強(qiáng)分塊指紋;
[0063]步驟S304,令j= j+V2,并判斷j+Q是否大于M,若j+Q>M,則執(zhí)行步驟S305,否則執(zhí)行步驟S301;
[0064]此步驟將垂直滑動(dòng)窗口 V垂直滑動(dòng)垂直滑動(dòng)距離V2,判斷j+Q是否大于M是為了判斷垂直滑動(dòng)窗口 V是否到達(dá)待存儲(chǔ)圖像像素矩陣的邊界。此步驟中垂直滑動(dòng)窗口 R所在位置即為第六步驟和第七步驟中描述的第五分割位置,j+Q>M即為第七步驟中描述的第三邊界條件。
[0065]步驟S305,分割獲得數(shù)據(jù)分塊;
[0066]獲取垂直滑動(dòng)窗口V內(nèi)的像素矩陣作為圖像分塊,計(jì)算該圖像分塊的強(qiáng)分塊指紋、弱分塊指紋。
[0067]步驟3206,令」=1,丨=丨+¥1,并判斷丨+?是否大于1若丨+?>~則執(zhí)行步驟3307,否則執(zhí)行步驟S301 ;
[0068]此