專利名稱::海量圖像數據壓縮方法
技術領域:
:本發明涉及一種壓縮方法,屬于信息
技術領域:
中數據壓縮技術方法的領域,具體說屬于數據壓縮技術方法中主要針對影像數據特別是海量圖像數據進行壓縮的方法的
技術領域:
。
背景技術:
:圖像壓縮方法用于減少表示一張圖像所需要的信號空間量。信號空間量可以是實際上的儲存空間(例如內存的大小);或是一段時間(例如,傳送該信息所需的時間);或者是傳送該信息所需要的帶寬等。例如,原來圖像的數據量是兩百萬個位(2兆),假使現在有一種圖像壓縮法可以將原有的圖像壓縮成只需要0.2個兆位,那么,在儲存上,每張圖像所占內存空間只是原來的十分之一(或者說,同樣的內存空間,現在變成可以儲存數量上多十倍的圖像);在傳送上,例如原先一張圖像需要兩秒鐘才能送完,現在只需要0.2秒便可送完;在所需的網絡帶寬上,現在只需要原來的十分之一,因此可以采取多任務(Multiplexing)的方式同時傳送十張圖像(或者,可以采用價格比較低的傳輸線)。圖像壓縮技術分為無損壓縮法與有損壓縮法兩類。無損壓縮算法通常采用Huffman編碼、Shannon-Fano編碼、算術編碼、LZ系列等;有損壓縮算法包括預測編碼、方塊截短編碼、轉換編碼、向量量化編碼、分頻編碼、小波編碼、影像碎形壓縮、階級式編碼法等等。無損圖像壓縮一般釆取的模式有兩種統計模式與字典基礎模式。統計模式是根據每一個符號的出現機率來做編碼。典型的統計模式編碼法包括Huffman編碼與算術編碼。這兩種編碼法有許多國際性標準,例如JBIG、JPEG、MPEG。字典基礎模式的壓縮法則采取完全不同的方法來壓縮影像。這類的算法是對于不同長度的符號串都用同一種記號來表示。這個記號所表示的基本上就是一個詞組在字典中的位置。如果表示記號所需要之位數比起它所取代的詞組所需要之位數還小,就做到了影像壓縮。字典基礎模式編碼法的特性是簡單。典型的字典基礎模式編碼法包括Winzip、Winarj。在有損影像壓縮方法中,允許重建信號有一些失真,并且以此為代價交換得到一個比無損影像壓縮法還低的數據率。這些失真在視覺上可能明顯,也可能不明顯。同時,一般都可以借著允許比較大的失真而達到更低影像率的目的。典型的壓縮編碼如GIF、JPEG、JPEG2000等。JPEG和JPEG2000等有損壓縮格式,是對影像進行數字余弦變換(DCT)之后,通過數值的量化來獲得壓縮比例大的圖片,屬于有損壓縮。JPEG僅僅考慮的是單張圖片的像素變換,例如一張300dpi的票據影像經壓縮后能達到120kb。因特網的快速發展,使得多媒體的儲存及傳輸變的更加重要。多媒體數據一般都有數據累贅,為了降低傳輸的頻實及儲存的空間,影像壓縮就更顯其重要。海量票據圖像處理通常出現在前后臺分離、數據中心處理等系統中。隨著圖像處理業務的增長,海量圖像在傳輸、存儲等方面已經成為了瓶頸;傳統的二進制壓縮算法(如小波、GZIP)等不考慮影像的特征,只能支持影像的無損壓縮,對單張圖片的壓縮效果非常差。例如銀行的后督系統中,平均每個工作曰將產生的票據上百萬張,即使在JPEG等高壓縮下,也將產生近120Gb的數據,大量的數據需要在不同的業務之間相互流轉下,占用了巨大的網絡帶寬。綜上所述,對于圖像壓縮而言,根據壓縮的效率自底向上可以分為二進制壓縮、像素級壓縮、內容級壓縮等不同的層次。然而現有對票據類圖像的壓縮大多采用是JPEG等壓縮格式,現有技術存在的最大問題是沒有考慮到圖像之間的內容關聯關系。在票據類等內容相關的影像上,因為沒有計算圖像內容的相關性,很難實現高效的壓縮。對于幾百萬甚至上千萬個圖像的壓縮,目前來說并沒有更有效的壓縮方法。
發明內容本發明鑒于上述情況的不足,提供了一種海量圖像數據壓縮方法,其目的是針對目前海量影像在傳輸、存儲方面的難題,利用票據等同類影像的特征、在進行亞像素級和模板聚類的海量信息抽取和分析基礎上、對海量影像進行高壓縮比、高質量且高速的壓縮。為達到上述目的本發明的方法是一種海量圖像數據壓縮方法,包括如下步驟(10)輸入大批量票據類影像;(11)分類排序是根據影像票據的類型,包括票據的尺寸大小、圖像分辨率大小、正反面編號、影像差值相似度、影像版面類型、支持業務種類等進行分類排序,形成不同的分類通道,每一個類型的影像票據數據并為一個通道排序,進而對根據每一種分類通道對同類型的影像進行壓縮,分類、壓縮過程按張進行,分類一張壓縮一張,相同分類走相同的通道;(12)影像壓縮利用動態影像壓縮算法,對每一類影像進行編碼壓縮,設定關鍵幀,形成不同的壓縮流;(13)重復步驟(11)和步驟U2)的過程操作,循環遞歸到每一張影像圖片,直到最后一張圖片完成;(14)影像打包加密將壓縮后的不同壓縮流合并成一個文件,在合并中按不同通道的壓縮流分別寫入不同的偏移量,進行打包和加密形成影像壓縮包;(15)影像解壓將步驟(14)的影像壓縮包首先進行解密,然后根據偏移量,分成不同的壓縮流,不同分類通過不同的通道得到,采用動態影像解壓縮算法,對每一類影像進行解壓縮,還原取出每一幅影像圖片;(16)分類還原影像解壓得到的圖片之后,需要根據步驟(11)的分類排序方法,進行反排序,得到解壓后影像在原批量中的位置;(17)重復執行步驟(15)和步驟(16)過程搡作,循環遞歸每個壓縮流,直到壓縮包中沒有影像為止;(18)壓縮后輸出批量影像。9一種海量圖像數據壓縮方法,包括如下步驟(20)輸入大批量票據類影像;(21)分類排序是根據影像票據的類型,包括票據的尺寸大小、圖像分辨率大小、正反面編號、影像差值相似度、影像版面類型、支持業務種類等進行分類排序;(22)影像壓縮選擇排序后影像中像素尺寸最大的作為壓縮流圖像大小,其他影像在壓縮時進行空白填充到相同的大小,然后利用動態影像壓縮算法進行對每一幅影像進行編碼壓縮,設定關鍵幀,共享一個壓縮流;(23)影像打包加密將壓縮后的壓縮流文件進行打包和加密形成影像壓縮包;(24)影像解壓將步驟(23)的影像壓縮包首先進行解密,采用動態影像解壓縮算法,對影像進行解壓縮,還原取出每一幅影像圖片;(25)分類還原影像解壓得到的圖片之后,需要根據步驟(21)的分類排序方法,進行反排序,得到解壓后影像在原批量中的位置;(26)壓縮后輸出批量影像。該動態影像壓縮算法包括如下步驟(31)輸入批量影像;(32)通過模板聚類分析提取影像的分類特征,找到分類通道并加以識別,目標是盡量將同類,同種及內容相似特征的影像放在一起;(33)保存備解壓過程中使用的原始批量影像文件名序列;(34)保存以備解壓過程中恢復使用的原始影像的尺寸大小;(35)分類通道選擇器步驟(32)之后得到不同的影像分類,根據不同的分類劃分為不同的壓縮通道或共享一個通道,將所有通道通過偏移量簡單的以文件方式存儲在一起形成不同的壓縮流或一個壓縮流;(36)影像切片先將原影像切割成16x16、16x8、8x16、"8、8x4、4x8、4x4等子塊預測和編碼模式的稱為幀或者像條的基準塊;基準塊組成的基準單元視其為一個向量,每一個影像向量X,與一組稱之為碼向量的代表性樣本Yi,i=l,2,...,Nc,共同組成編碼簿;最接近于原向量X的碼向量會被選出來,即,從編碼簿中選出Yk,使得對所有j=l,2,...,Nc,d((X,Yk)d(X,Yj)),其中d(X,Yi)表示原向量X與碼向量Yi之誤差。在找到和X最接近的,即d(X,Yk)差值最小的碼向量Yk后,Yk的索引k便以1og2Nc個位表示;(37)DCT變換將步驟(36)組成編碼簿的切片采用數字余弦轉換DCT使之比較容易做影像壓縮;(38)動態對象編碼由步驟(36)得到的像條由宏塊組成,多個像條構成像條組,經過步驟(37)后得到靈活宏塊排序特性FMO;FMO改變了圖像劃分為像條和宏塊的方式,每個像條組是多個宏塊集合,通過宏塊到像條組的影射表定義,該影射表在圖像參數集中指定;每個宏塊有一個像條組標識號,所有像條組標識號構成宏塊到像條組影射表;每個像條組由一個或多個像條組成,因此像條是一個宏塊序列,同一像條組中的宏塊,按光柵順序處理;(39)分頻濾波對步驟(38)形成的宏塊利用分頻編碼法進行分頻編碼,具體過程是輸入訊號經由分頻濾波算子做分頻濾波器的濾波器切分成好幾個稱之為次頻帶的子訊號,每一個子訊號的頻譜各包含一有限范圍的頻率,在比較低頻的次頻帶,它含有原訊號的大部分能量,使用較高的位率來編碼它;在高頻的次頻帶,它所含的能量很小,使用低位率來作編碼;在最低頻的次頻帶,使用接近于無損壓縮法來完整重建該次頻帶,高頻的次頻帶則使用較粗糙的壓縮法;(310)運動對象檢測根據視頻壓縮過程中的預測算法,本步驟采用了以下檢測手段(3101)幀內預測,根據編碼類型,每個宏塊根據36的切分大小,選擇其中的一種編碼類型,所有塊支持稱為INTRA-4x4和INTRA-16xl6兩級幀內編碼;(3102)幀間預測,采用P像條幀間預測、I像條幀間預測和B像條的幀間預測;(311)運動補償采用運動估計算法和多幀運動補償技術,以l/4像素和1/8像素作為可選的運動估計方法,采用最多5個參考幀,通過在更多的參考幀進行運動估算和補償,找到列差更小的預測塊;(312)運動對象管理,在對由步驟(38)編碼后的對象,如果在步驟(310)中檢測有相同的對象進入下一步驟;(313)對象池,對象池是一個壓縮過程中用到的存在內存中的臨時緩存單元;保存運動對象;(314)幀/場編碼,對于步驟(311)的預測塊采用動態參考幀/場計算方法在壓縮過程中,利用控制閥值來制定參考場;(315)質量控制,在步驟(314)編碼后,如果是質量大小初定的閥值,則回到步驟(37),并標示該影像為參考場,重新進行較低編碼率的DCT變換;。(316)壓縮字節流,通過步驟(314)場編碼之后得到單張影像編碼后的字節流,判斷壓縮的字節流大小是否符合能夠通過步驟(315)質量控制閥值,如果可以,則進行Zlib壓縮;(317)影像打包加密,采用DSA加密算法,同時加入步驟(33)和步驟(34)中的壓縮信息進行打包輸出。該模板聚類分析至少包括如下排序的一種(321)圖像分辨率大小排序即根據圖像的尺寸大小進行從大到小或者從小到大的排序;(322)影像正反面排序票據類影像采集過程中,通常包括正反面,正反面排序就是將正面的影像放在一起,反面的影像放在一起;(323)影像差值相似度排序釆用包括卷積及Delta算法對圖像進行排序處理,如果影像是M^大小的圖片,則釆用X*Y的采樣間距,其中X〈M且Y〈N,分別對每兩副圖片的RGB值進行Delta的差值大小排序,將Delta越小的放在一起;其中Delta=(R1-R2)A2+(Gl-G2)A2+(B1-B2)A2或者其他能夠表示像素之間差值的算法;(324)影像版面類型排序根據影像的業務種類、用途、適用范圍、掃描過程中的文件名序號等能夠唯一標示影像種類的方法進行排序,將同一種類影像放在一起。該動態影像解壓縮算法包括如下步驟(41)輸入影像壓縮文件,影像壓縮文件為動態影像壓縮算法形成的壓縮包文件;(42)解復用器首先進行DSA解密,得到原始的壓縮流,解復用器首先根據每個偏移量,計算出每一個流的位置;(43)影像信息提取提取保存在壓縮包中備解壓過程中使用的原始批量影像文件名序列、原始影像的尺寸大小信息,以備在輸出的時候恢復原圖名稱和大小;(44)運動對象解碼解碼過程實際上就是從編碼碼流中恢復出塊數據的過程;解碼過程主要包含兩部分運動解碼和紋理解碼;I幀中只含有紋理信息,因此只須解碼紋理信息即可恢復l幀;而P幀中不僅包含紋理信息,還包含運動信息,所以須解碼運動信息,獲得運動矢量并進行運動補償;另外,還須進行紋理解碼獲得殘差值,將這兩部分組合起來才能重建P幀;(45)運動補償,釆用了運動估計算法和多幀運動補償技術,以l/4像素和1/8像素作為可選的運動估計方法,采用最多5個參考幀,通過在更多的參考幀進行運動估算和補償,找到列差更小的預測塊;(46)反余弦變換IDCT,完整的二維iDCT算法和基于一維iDCT運算的循環算法;后者先針對8x8像素塊的各列進行計算,再針對各行進行計算;(47)對象重建,將步驟(46)IDCT之后獲得的I幀及P幀對象,存入到對象池中;(48)對象池,對象池建立過程是動態建立的,在解壓過程中,對象池保存了運動對象,運動對象層和對象平面;這些不同的元素以不同的層次組合起來,結合運動腳本,成為表示影像的數據流;(48)合成,解碼器得到的是動態對象編碼,將編碼中的YUV和Alpha值,按照與前一幀的對比順利混合后,將獲得影像的YUV值,通過RGB轉換,最終得到影像圖片。13采用本發明的壓縮方法的有益效果是本發明考慮到票據等同類影像的相似特征,在引入了票據影像相關性系數、動態運動補償等壓縮技術,即利用影像之間的相關性,建立票據局部票據對象模型,抽取對象之間的相關性,采用運動補償預測等方法,對多張關聯的影像進行壓縮。本發明的壓縮算法的壓縮原理是找出票據影像的特征,并進行聚類,尋找的移動物體,并只儲存移動物體的影像,并不像一般的JPEG算法儲存整張影像造成空間的浪費。因此可以提供影像的壓縮比較高,速度比較快。區別于MPEG等動態視頻壓縮算法,本發明的動態影像壓縮算法和動態影像解壓縮算法綜合了H264、MPEG2、MPEG4等視頻壓縮中的關鍵算法,充分考慮到了海量影像的特征,與一般的視頻壓縮方法不同,他可根據影像質量閥值控制(質量閥值是一個參數調整和判斷的簡單邏輯。比如說平均壓縮后每張影像大小10K;根據壓縮過程動態監測看看壓縮后是否滿足在5k-15k之間,如果不滿足,就表示不滿足質量閥值,需要重新修改參數,再做壓縮。直到壓縮后大小滿足5k-15k的要求為止。這里面5k-15k就是控制參數,整個過程就是質量閩控制過程),動態調整壓縮過程中的關鍵幀。另一方面,由于算法僅僅采用了DCT、分頻濾波、運動對象檢測、動態對象編碼等幾個關鍵算法,因此速度比現有的視頻壓縮算法快;該算法考慮了質量閥值控制,因此壓縮的質量比現有的視頻壓縮算法高。總體上由于引入了動態對象檢測、影像分類、質量閥值控制等算法,考慮到了票據類影像的特征,在壓縮質量和速度上,均比JPEG"00高。目前,本發明提供的壓縮算法與JPEG2000等相比,壓縮速度是后者的5倍強,壓縮的結果文件大小是原影像的1A0強,解壓后OCR識別率基本保持不變。基于這個特性,本發明使得只需很小的帶寬即可在網絡上傳輸實時的影像。圖i為本發明較佳實施例影像壓縮和解壓縮流程示意圖;圖2為本發明另一實施例影像壓縮和解壓縮流程示意圖;圖3為本發明動態影像壓縮算法流程示意圖4為本發明動態影像解壓縮算法流程示意圖5為現實中某一類票據影像原圖6為本發明對圖5進行壓縮得到的結果;圖7為現有技術JPEG2000壓縮方法對圖5進行壓縮得到的結果。具體實施例方式為了進一步說明本發明的原理及特性,以下結合附圖和具體實施方式對本發明進行詳細說明。如圖1所示為本發明較佳實施例影像壓縮和解壓縮流程示意圖,從圖中可以看出本發明的步驟為步驟IO輸入大批量票據類影像;步驟ll分類排序是根據影像票據的類型,包括票據的尺寸大小、圖像分辨率大小、正反面編號、影像差值相似度、影像版面類型、支持業務種類等進行分類排序(即類型由票據的尺寸大小、正反面編號、支持業務種類等來定),形成不同的分類通道,每一個類型的影像票據數據并為一個通道排序,進而對根據每一種分類通道對同類型的影像進行壓縮,分類、壓縮過程按張進行,分類一張壓縮一張,相同分類走相同的通道;壓縮的過程是按"張,或者叫幅"進行,那就是說是分類一張壓縮一張,相同的分類走相同的通道。步驟12影像壓縮利用動態影像壓縮算法,進行對每一類影像進行編碼壓縮,設定關鍵幀,形成不同的壓縮流;步驟13循環遞歸(分類通道和按張壓縮的原因導致走相同分類通道的張能最后具有相同的標志進入一個文件)每一張影像圖片,依次進行步驟ll和步驟12搡作,直到最后一張圖片,轉到步驟14;步驟14影像打包加密成影像壓縮包將步驟12壓縮后的不同壓縮流合并成一個文件,在合并中按不同通道的壓縮流分別寫入不同的偏移量(這里就是合并流的過程。所有的通道都合并成一個文件,不同通道之間通過偏移量來區分。)并寫入偏移量,進行打包和加密形成影像壓縮包。步驟15影像解壓將步驟14的影像壓縮包首先進行解密,然后根據偏移量,分成不同的壓縮流,不同分類通過不同的通道得到,對應于步驟12采用的影像關鍵算法-動態影像壓縮算法,釆用相反的解壓縮算法-動態影像解壓縮算法,對每一類影像進行解壓縮,還原取出每一幅影像圖片。步驟16分類還原影像解壓得到的圖片之后,需要根據步驟ll的分類排序方法,進行反排序,得到解壓后影像在原批量中的位置;步驟17重復執行步驟15和步驟16過程搡作,循環遞歸每個壓縮流,直到壓縮包中沒有影像為止,轉到步驟18;步驟18壓縮后輸出批量影像(還原后圖片與原圖大小一樣,質量根據壓縮的參數有所區別。壓縮率越大,質量越差)。利用上述壓縮算法及過程,可以實現軟、硬件的海量影像壓縮及解壓縮過程。本方法中步驟12和步驟15壓縮算法可為圖像視頻壓縮算法、動態影像壓縮算法和動態影像解壓縮算法。如圖2所示為本發明另一實施例影像壓縮和解壓縮流程示意圖,從圖中可以看出本發明的步驟為區別于圖1所示的方法,僅在于先排序,然后利用一個通道(因為用同一種通道也能完成進行壓縮。只不過在壓縮之前將圖片進行大小尺寸的縮放,解壓后還原)直接進行壓縮。步驟2Q輸入大批量票據類影像;步驟21分類排序是根據影像票據的類型(票據的尺寸大小、正反面、業務類型等)進行分類排序;步驟22影像壓縮選擇排序后影像中像素尺寸最大的作為壓縮流圖像大小,(因為壓縮過程必須保證圖片大小一致的,所以要選擇一個最大的,其他的進行比例縮放)。其他影像在壓縮時進行空白填充到相同的大小,然后利用動態影像壓縮算法(見圖3),進行對每一幅影像進行編碼壓縮,設定關鍵幀,共享一個壓縮流;步驟23影像打包加密將壓縮后的壓縮流文件進行打包和加密形成影像壓縮包;步驟24影像解壓將步驟23的影像壓縮包首先進行解密,對影像進行解壓縮,還原取出每一幅影像圖片;步驟25分類還原影像解壓得到的圖片之后,需要根據步驟21的分類排序方法,(這里面不需要分類。分類排序目的是將圖片相近的排序在一起,這樣壓縮才有效果。是一個效率問題)進行反排序,得到解壓后影像在原批量中的位置;步驟26壓縮后輸出批量影像。利用上述壓縮算法及過程,同樣可以實現軟、硬件的海量影像壓縮及解壓縮過程。本方法中步驟22和步驟24影像動態壓縮算法包括圖像視頻壓縮算法以及動態影像壓縮算法和動態影像解壓縮算法。如圖3所示為本發明動態影像壓縮算法流程示意圖,從圖中可以看出所述算法的步驟為步驟31首先輸入的仍然是批量的影像;步驟32由于票據類影像具有很多相似的特征,因此可以通過模板(模版是識別里面的通用技術,就是分類的意思。)來加以區別。模板聚類分析是提取影像的特征(這里的特征應該是在分類時加入的,特征就是尺寸大小、票據類型、影像內容等)尺寸大小、票據類型、影像內容等,并加以識別,目的是盡量將同類,同種及內容相似的影像放在一起。模板聚類分析包括圖像分辨率大小排序321:即根據圖像的尺寸大小進行從大到小或者從小到大的排序;影像正反面排序322:票據類影像采集過程中,通常包括正反面,正反面排序就是將正面的影像放在一起,反面的影像放在一起。影像差值相似度排序323:如果影像是MsN大小的圖片,則采用X*Y的釆樣間距(其中X〈M且Y〈N),分別對每兩副圖片的RGB值進行Delta的差值大小排序,將Delta越小的放在一起。其中Delta-(R1-R2)(Gl-G2)A2+(Bl-B2)A2或者其他能夠表示像素之間差值的算法,例如卷積。本發明方法建議采用包括卷積及Delta算法。影像版面類型排序324:根據影像的業務種類、用途、適用范圍、掃描過程中的文件名序號等能夠唯一標示影像種類的方法進行排序,將同一種類影像放在一起。步驟32中的模板聚類分析可以采用如上排序321-324描述方法中的一種或者多種結合。步驟33保存原始批量影像文件名序列,以備解壓過程中使用步驟34保存原始影像的尺寸大小,以備解壓過程中恢復使用步驟35分類通道選擇器步驟32之后得到不同的影像分類,根據不同的分類劃分為不同的壓縮通道,形成不同的壓縮流;其中可釆用一個分類一個通道(圖1),也可采用共享一個通道(圖2);本步驟包括任意通道合并。(不同的通道得到的是不同的壓縮流,任意通道合并就是將所有通道通過偏移量簡單的以文件方式存儲在一起)。步驟36影像切片先將原影像切割成16x16、16x8、gxl6、8x8、4、4x8、4x4等子塊預測和編碼模式,采用更小的塊和自適應編碼的方式,使得預測殘差的數據量減少,進一步降低了碼率的基準塊,該基準塊稱為幀或者像條。基準塊是動態檢測中的基準單元,并且視其為一個向量。每一個影像向量X,與一組代表性樣本(一般稱之為碼向量)Yi,i=l,2,...,Nc,共同組成所謂的編碼簿。最接近于原向量X的碼向量會被選出來,即,從編碼薄中選出Yk,使得對所有J=l,2,...,Nc,d((X,Yk)d(X,Yj)),其中d(X,Yi)表示原向量X與碼向量Yi之誤差。在找到和X最接近的碼向量Yk后(即d(X,Yk)差值最小),Yk的索引k便以1og2Nc個位表示。解碼過程中,也有一份同樣的編碼簿,(該編碼簿是在本步驟36中預存的,是一個索引值)計算索引k時,將從編碼薄中找出Yk,并且用Yk代替了X,因此只需從編碼簿中找出第k個碼向量。18步驟37DCT變換轉換編碼(transformcoding)是將原訊號經過一個轉換變成另外一種表示法。這個表示法可以經由逆轉換回復成原訊號;而且它的能量較原訊號來得集中,因此比較容易做影像壓縮。本方法采用數字余弦轉換(DCT),可以采用Karh畫-Lo"e轉換(以下簡稱KLT)、數字傅利葉轉換(DFT)、整數變換等。對于一般展現高度取樣間累贅的影像來說,DCT的表現與KLT相差無幾,而且DCT也有快速算法可以在O(nlogn)等級的時間內完成n點的轉換,由于它不會產生像DFT所產生的多余的高頻項,因此DCT能做到更高的壓縮效能。步驟38動態對象編碼由步驟36得到的像條由宏塊組成,多個像條構成像條組,經過步驟37后得到靈活宏塊排序特性(FMO)。FMO改變了圖像劃分為像條和宏塊的方式。每個像條組是多個宏塊集合,通過宏塊到像條組的影射表定義,該影射表在圖像參數集中指定。每個宏塊有一個像條組標識號,所有像條組標識號構成宏塊到像條組影射表。每個像條組由一個或多個像條組成,因此像條是一個宏塊序列,同一像條組中的宏塊,按光柵順序處理。利用FMO,圖像可以劃分為許多宏塊掃描圖樣,例如交織圖樣、點綴圖樣,一個或多個前景像條組、剩余像條組,或棋盤型圖樣影射等。因此建立類似于H.264/AVC中的像條編碼類型I像條(幀)最簡單的編碼類型,所有的宏塊不參考視頻序列中其他的圖像。P像條(幀)除了I像條編碼類型外,P像條的部分宏塊可以利用幀間預測,每個預測塊至多可使用一個運動補償預測信號。B像條(幀)除了P像條編碼類型外,B像條的部分宏塊可以利用幀間預測,每個預測塊可使用兩個運動補償預測信號。以上三種與以前的標準相似,主要是參考圖像不同,其余兩種像條類型是SP(.切換P)SI(切換1),是新的類型,用于在不同位率編碼碼流之間進行有效切換。SP像條(幀)稱作切換P像條,能在不同編碼圖像之間有效地切換。SI像條(幀)稱作切換I像條,允許SP像條的宏塊完全匹配,達到隨機讀取數據進行解碼和恢復錯誤的目的。步驟39分頻濾波濾波的基本思想是如果塊邊沿的絕對差值相對比較大,出現塊人工瑕疵的可能性就很大,因此需要進行相應處理。然而,如果差值幅度很大,編碼量化過程的誤差不能解釋,邊沿很可能反映了源圖像的實際樣值,不需處理。經過步驟38后,進行分頻編碼法(subbandcoding,以下簡稱SBC)中,輸入訊號經由濾波器切分成好幾個子訊號,每一個子訊號的頻譜各包含一有限范圍的頻率。這些子訊號稱之為次頻帶(subbands),每一個次頻帶可以分開各做各的編碼工作,也可以一起做。采用SBC有許多好處,借著讓每個次頻帶使用不同數目的位來表示每個取樣,則每個次頻帶的量化數及其重建誤差可以分別予以控制,因此整個重建誤差的頻譜形狀可以被控制成頻率的函數。在比較低頻的次頻帶,它含有原訊號的大部分能量,因此一般會使用較高的位率來編碼它。至于高頻的次頻帶,它所含的能量很小,因此一般是使用低位率來作編碼。在最低頻的次頻帶,會使用接近于無損壓縮法來完整重建該次頻帶,高頻的次頻帶則使用較粗糙的壓縮法。分頻濾波算子是分頻編碼法結合小波(wavelet,又譯為波元)來做分頻濾波器。小波指的是由一個函數經過放大與平移所形成的函數族群。它的理論發展為數字訊號的分析與處理提供了一套新的架構,因此不僅在編碼上,同時在語音處理、影像處理、計算機視覺等等研究領域也有著相當成功的應用。就實作的觀點來說,小波分解可以視為分頻編碼法的一個特例。分頻編碼法的壓縮效率與整體效能,不僅決定于分析/合成濾波堆,也決定于每一個次頻帶所使用的壓縮方法。步驟310運動對象檢測根據視頻壓縮過程中的預測算法,本方法采用了以下檢測手段幀內預測根據編碼類型,每個宏塊根據步驟36的切分大小,選擇其中的一種編碼類型,所有塊支持兩級幀內編碼,稱為INTRA-4x4和INTRA-16x16。INTRA-4x4模式基于分別預測每個4x4亮度塊,適合表現圖像細節部分。而INTRA-16x16模式將整個16x16亮度塊進行預測,適合平滑圖像區。此外對這兩種亮度預測類型,色度單獨進行預測。作為INTRA-4x4和INTRA-16x16的另一種選擇,編碼類型允許編碼器簡單跳過預測和變換編碼過程,直接發送采樣值(采樣值即為像素值)。幀間預測*P像條幀間預測除了幀內宏塊編碼類型外,P像條宏塊使用多種預測類型,即運動補償編碼類型。為了方便運動描述,每個P型宏塊對應于指定的固定大小的宏塊劃分。亮度塊的劃分大小為16x16、16x8、8x16、8><8,稱為像條。運動矢量跨越圖像邊界檢測,這種情況參考幀需用外插法推算出圖像外的采樣值。利用鄰近塊的平均或方向預測,用差分編碼計算運動矢量。*I像條幀間預測在幀內編碼I畫面中,又加入了幀內預測編碼技術,即解碼時可用周圍數據的差分值來重構畫面。幀內預測以特定大小的塊作為基準單元,從周圍像素中預測編碼化的模板。H.264的基準塊大小分4x4和16x16兩種,前者有9種預測模式,預測方向見圖3。后者也有4種模式。因為原圖像左右、上下都有一定的相關性,不同部分的差分值總比不進行幀內預測的原始值要少,故量化后的編碼量就減少了,而且高頻成分也比原圖像為少。*B像條的幀間預測B像條相對P像條的概念與以前的標準類似,但有些不同,B像條可以作為運動補償預測的參考圖像,B像條可以對兩個補償預測值進行加權運算。步驟311運動補償運動補償預測是一個有力的工具,以便減小相關性系數較近影像之間的空間冗余度。動補償概念是以對影像之間運動的估算為基礎的,也就是說,若相似的影像中所有物體均在空間上有一位移,那么用有限的運動參數(如對于像素的平移運動,可用運動矢量來描述)來對兩幅影像間的運動加以描述。在這一簡單例子中,一個來自前編碼幀的運動補償預測像素,就能給出一個有效像素的最佳預測。通常,預測誤差和運動矢量均傳送至接收機。由于一些運動矢量之間的空間相關性通常較高,有時可以這樣認為一個運動矢量代表一個相鄰像素塊的運動。為了做到這一點,畫面一般劃分成一些不連接的像素塊,對于每一個這樣的像素塊,只對一個運動矢量進行估算、編碼和傳送。運動補償預測誤差是這樣計算的在帶有前一張影像參照塊中運動飄移對應物的畫面塊中,減去一個像素。本方法中的運動補償采用了運動估計算法和多幀運動補償技術,以1/4像素和1/8像素作為可選的運動估計方法,采用最多5個參考幀,通過在更多的參考幀進行運動估算和補償,找到列差更小的預測塊。通過運動估計,提高了預測精度,同時降低了殘差的編碼碼率。多圖像運動補償預測,以前編碼的多個圖像都可用作運動補償參考,每個運動補償需要指示參考圖像的索引。一個8x8塊劃分成的小于8x8塊的運動補償使用同一參考圖像索引,該功能要求編碼和解碼器具有多幀圖像緩沖器,解碼器通過位流中的管理控制搡作信息與編碼器同步。除了運動補償宏塊模式外,P宏塊可使用P-Skip模式,這種模式沒有量化預測誤差、不用傳送運動矢量和參考索引參數。信號重建與P-16xl6宏塊類型預測信號類似,釆用多幀緩沖區索引0的圖像作為參考圖像。重建宏塊的運動矢量與16xl6塊運動矢量預測類似。步驟312運動對象管理對于由步驟38編碼后的對象,如果在步驟310中檢測有相同的對象,將池的概念進行管理,從而提高編碼速度。步驟313對象池在壓縮算法中,對象池是一個壓縮過程中用到的臨時緩存單元,存在內存中,對象池保存了運動對象,運動對象層和對象平面。這些不同的元素以不同的層次組合起來,結合運動腳本,成為表示影像的數據流。對象池的引入可以加快編碼速度和解碼速度。步驟314幀/場編碼在隔行掃描幀中,當有移動的對象,與逐行相比,兩個相鄰行傾向減少統計的相關性,這種情況應比每場分別壓縮更為有效。為了達到高效率,在編碼幀時,采用以下可選方案*結合兩場成一個完整幀,作為幀編碼,稱為幀模式。*兩場分別編碼,稱為場模式。*結合兩場成一個完整楨,作為幀壓縮。在編碼時,劃分垂直相鄰的兩個宏塊對成兩個場宏塊對或幀宏塊,再進行編碼。每幀圖像可自適應選擇3種模式之一進行編碼。在前兩種之間進行選擇稱為圖像自適應幀/場編碼(PAFF),當一幀作為兩場編碼時,每場劃分為宏塊,編碼方式與幀編碼方式很相似,主要有下面的例外參運動補償用參考場,而不是參考幀。*變換系數的"之字型"掃描方式不同。*宏塊水平邊沿去塊濾波器的強度不選用"強",因為場行在空間上是兩倍幀行的距離。如果圖像由運動區和非運動區混合組成,非運動區用幀模式、運動區用場模式是最有效的編碼方法。因此每個垂直宏塊對(16x32)可獨立選擇編碼(幀/場)模式。這種編碼選擇稱為宏塊自適應幀/場編碼(MBAFF)。對于幀模式宏塊對,每個宏塊包含幀行,對于場模式宏塊對,頂部宏塊包含頂場行,底部宏塊包含底場行。本方法采用動態參考幀(場)計算方法,即在壓縮過程中,將根據步驟316質量控制,也就是說利用控制閩值來制定參考場。步驟315質量控制在步驟314編碼后,如果質量大小初定的閥值(根據壓縮后圖像的大小),則回到進入到步驟37DCT,并標示該影像為參考場,重新進行較低編碼率的DCT23變換,從而改善整體質量。步驟316壓縮字節流通過步驟314場編碼之后得到單張影像編碼后的字節流,判斷壓縮的字節流大小是否符合通過能夠通過步驟315質量控制(質量控制包括壓縮后圖像字節大小控制),如果可以,則進行Zlib壓縮,提高壓縮效率,然后進入步驟317打包加密。步驟317最后輸出影像進行打包加密,采用DSA加密算法,提高壓縮包的安全性。同時加入影像步驟33和步驟34中的壓縮信息,以備解壓時使用。如圖4所示為本發明動態影像解壓縮算法流程示意圖,從圖中可以看出所述算法的步驟為步驟41首先輸入的是影像壓縮文件;步驟42解復用器首先進行DSA解密,得到原始的壓縮流。由于動態影像壓縮算法中支持不同的壓縮流混合,因此,在解復用器首先根據每個偏移量,計算出每一個流的位置。步驟43影像信息提取提取壓縮包中文件名稱、影像尺寸大小信息,以備在輸出的時候恢復原圖名稱和大小。步驟44運動對象解碼解碼過程實際上就是從編碼碼流中恢復出塊數據的過程。解碼過程主要包含兩部分運動解碼和紋理解碼。I幀中只含有紋理信息,因此只須解碼紋理信息即可恢復I幀。而P幀中不僅包含紋理信息,還包含運動信息,所以須解碼運動信息,獲得運動矢量并進行運動補償。另外,還須進行紋理解碼獲得殘差值,將這兩部分組合起來才能重建P幀。步驟45運動補償本方法中的運動補償釆用了運動估計算法和多幀運動補償技術,以1/4像素和1/8像素作為可選的運動估計方法,采用最多5個參考幀,通過在更多的參考幀進行運動估算和補償,找到列差更小的預測塊。在亞像素運動估計,提高了預測精度,同時降低了殘差的編碼碼率。步驟46IDCT(反余弦變換)完整的二維iDCT算法和基于一維iDCT運算的循環算法。后者先針對8x8像素塊的各列進行計算,再針對各行進行計算。步驟47對象重建即將IDCT之后獲得的I幀及P幀對象,存入到對象池中,提高解碼速度步驟48對象池,對象池建立過程是動態建立的,解壓過程也是動態建立的。在解壓過程中,對象池保存了運動對象,運動對象層和對象平面。這些不同的元素以不同的層次組合起來,結合運動腳本,成為表示影像的數據流。對象池的引入可以加快編碼速度和解碼速度。步驟48合成解碼器得到的是動態對象編碼,將編碼中的YUV和Alpha值,按照與前一幀的對比順利混合后,將獲得影像的YUV(YUV(亦稱YCrCb)是被歐洲所采用的一種顏色編碼方法(屬于PAL)。與RGB信號傳輸相比,它最大的優點在于只需占用極少的帶寬。其中"Y"表示明亮度(Luminance或Luma),也就是灰階值;而"U"和"V,,表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。"亮度,,是通過RGB輸入信號來創建的,方法是將RGB信號的特定部分疊加到一起。"色度"則定義了顏色的兩個方面一色調與飽和度,分別用Cr和CB來表示。其中,Cr反映了GB輸入信號紅色部分與RGB信號亮度值之間的差異。而CB反映的是RGB輸入信號藍色部分與RGB信號亮度值之同的差異。)值,通過RGB轉換,最終得到影像圖片。如圖5、圖6、圖7所示,根據本發明的方法,對海量的票據類影像數據進行壓縮處理,得到如下結果壓縮數據比較l,:張數300張,票據來源某銀行票據類影像原圖(JPEG)采用本發明方法壓縮35M字節3.4M字節從上表可以看出來,對于張數為300張的票據影像,釆用JPEG壓縮之后大小為35M,采用本發明方法壓縮后得到是3.4M,將近10倍的壓縮效率。壓縮數據比較2:張數:650張,影像來源某銀行凌亂影像<table>tableseeoriginaldocumentpage26</column></row><table>由此可見,本發明的方法在保證壓縮質量的前提下,實現了良好的壓縮比率。從上表可以看出來,對于張數為650張的影像,凌亂次序的影像,釆用JPEG壓縮之后大小為75M,采用本發明方法壓縮后得到是8M,能將近9倍的壓縮效率。權利要求1、一種海量圖像數據壓縮方法,其特征在于包括如下步驟(10)輸入大批量票據類影像;(11)分類排序是根據影像票據的類型,包括票據的尺寸大小、圖像分辨率大小、正反面編號、影像差值相似度、影像版面類型、支持業務種類等進行分類排序,形成不同的分類通道,每一個類型的影像票據數據并為一個通道排序,進而對根據每一種分類通道對同類型的影像進行壓縮,分類、壓縮過程按張進行,分類一張壓縮一張,相同分類走相同的通道;(12)影像壓縮利用動態影像壓縮算法,對每一類影像進行編碼壓縮,設定關鍵幀,形成不同的壓縮流;(13)重復步驟(11)和步驟(12)的過程操作,循環遞歸到每一張影像圖片,直到最后一張圖片完成;(14)影像打包加密將壓縮后的不同壓縮流合并成一個文件,在合并中按不同通道的壓縮流分別寫入不同的偏移量,進行打包和加密形成影像壓縮包;(15)影像解壓將步驟(14)的影像壓縮包首先進行解密,然后根據偏移量,分成不同的壓縮流,不同分類通過不同的通道得到,采用動態影像解壓縮算法,對每一類影像進行解壓縮,還原取出每一幅影像圖片;(16)分類還原影像解壓得到的圖片之后,需要根據步驟(11)的分類排序方法,進行反排序,得到解壓后影像在原批量中的位置;(17)重復執行步驟(15)和步驟(16)過程操作,循環遞歸每個壓縮流,直到壓縮包中沒有影像為止;(18)壓縮后輸出批量影像。2、一種海量圖像數據壓縮方法,其特征在于包括如下步驟(20)輸入大批量票據類影像;(21)分類排序是根據影像票據的類型,包括票據的尺寸大小、圖像分辨率大小、正反面編號、影像差值相似度、影像版面類型、支持業務種類等進行分類排序;(22)影像壓縮選擇排序后影像中像素尺寸最大的作為壓縮流圖像大小,其他影像在壓縮時進行空白填充到相同的大小,然后利用動態影像壓縮算法進行對每一幅影像進行編碼壓縮,設定關鍵幀,共享一個壓縮流;(23)影像打包加密將壓縮后的壓縮流文件進行打包和加密形成影像壓縮包;(24)影像解壓將步驟(23)的影像壓縮包首先進行解密,采用動態影像解壓縮算法,對影像進行解壓縮,還原取出每一幅影像圖片;(25)分類還原影像解壓得到的圖片之后,需要根據步驟(21)的分類排序方法,進行反排序,得到解壓后影像在原批量中的位置;(26)壓縮后輸出批量影像。3、如權利要求1或2所述的海量圖像數據壓縮方法,其特征在于該動態影像壓縮算法包括如下步驟(31)輸入批量影像;(32)通過模板聚類分析提取影像的分類特征,找到分類通道并加以識別,目標是盡量將同類,同種及內容相似特征的影像放在一起;(33)保存備解壓過程中使用的原始批量影像文件名序列;(34)保存以備解壓過程中恢復使用的原始影像的尺寸大小;(35)分類通道選擇器步驟(32)之后得到不同的影像分類,根據不同的分類劃分為不同的壓縮通道或共享一個通道,將所有通道通過偏移量簡單的以文件方式存儲在一起形成不同的壓縮流或一個壓縮流;(36)影像切片先將原影像切割成16x16、16x8、8x16、8><8、8x4、4x8、4x4等子塊預測和編碼模式的稱為幀或者像條的基準塊;基準塊組成的基準單元視其為一個向量,每一個影像向量X,與一組稱之為碼向量的代表性樣本Yi,i=l,2,...,Nc,共同組成編碼簿;最接近于原向量X的碼向量會被選出來,即,從編碼簿中選出Yk,使得對所有j=l,2,...,Nc,d((X,Yk)d(X,Yj)),其中d(X,Yi)表示原向量X與碼向量Yi之誤差;在找到和X最接近的,即d(X,Yk)差值最小的碼向量Yk后,Yk的索引k便以1og2Nc個位表示;(37)DCT變換將步驟(36)組成編碼薄的切片釆用數字余弦轉換DCT使之比較容易做影像壓縮;(38)動態對象編碼由步驟(36)得到的像條由宏塊組成,多個像條構成像條組,經過步驟(37)后得到靈活宏塊排序特性FM0;FM0改變了圖像劃分為像條和宏塊的方式,每個像條組是多個宏塊集合,通過宏塊到像條組的影射表定義,該影射表在圖像參數集中指定;每個宏塊有一個像條組標識號,所有像條組標識號構成宏塊到像條組影射表;每個像條組由一個或多個像條組成,因此像條是一個宏塊序列,同一像條組中的宏塊,按光柵順序處理;(39)分頻濾波對步驟(38)形成的宏塊利用分頻編碼法進行分頻編碼,具體過程是輸入訊號經由分頻濾波算子做分頻濾波器的濾波器切分成好幾個稱之為次頻帶的子訊號,每一個子訊號的頻譜各包含一有限范圍的頻率,在比較低頻的次頻帶,它含有原訊號的大部分能量,使用較高的位率來編碼它;在高頻的次頻帶,它所含的能量很小,使用低位率來作編碼;在最低頻的次頻帶,使用接近于無損壓縮法來完整重建該次頻帶,高頻的次頻帶則使用較粗糙的壓縮法;(310)運動對象檢測根據視頻壓縮過程中的預測算法,本步驟釆用了以下檢測手段(3101)幀內預測,根據編碼類型,每個宏塊根據36的切分大小,選擇其中的一種編碼類型,所有塊支持稱為INTRA-4x4和INTRA-16x16兩級幀內編碼;(3102)幀間預測,釆用P像條幀間預測、I像條幀間預測和B像條的幀間預測;(311)運動補償釆用運動估計算法和多幀運動補償技術,以1"像素和1/8像素作為可選的運動估計方法,采用最多5個參考幀,通過在更多的參考幀進行運動估算和補償,找到列差更小的預測塊;(312)運動對象管理,在對由步驟(38)編碼后的對象,如果在步驟(310)中檢測有相同的對象進入下一步驟;(313)對象池,對象池是一個壓縮過程中用到的存在內存中的臨時緩存單元;保存運動對象;(314)幀/場編碼,對于步驟(311)的預測塊采用動態參考幀/場計算方法在壓縮過程中,利用控制閥值來制定參考場;(315)質量控制,在步驟(314)編碼后,如果是質量大小初定的閥值,則回到步驟(37),并標示該影像為參考場,重新進行較低編碼率的DCT變換;(316)壓縮字節流,通過步驟(314)場編碼之后得到單張影像編碼后的字節流,判斷壓縮的字節流大小是否符合能夠通過步驟(315)質量控制閥值,如果可以,則進行Zlib壓縮;(317)影像打包加密,采用DSA加密算法,同時加入步驟(33)和步驟(34)中的壓縮信息進行打包輸出。4、如權利要求3所述的海量圖像數據壓縮方法,其特征在于該模板聚類分析至少包括如下排序的一種(321)圖像分辨率大小排序即根據圖像的尺寸大小進行從大到小或者從小到大的排序;(322)影像正反面排序票據類影像采集過程中,通常包括正反面,正反面排序就是將正面的影像放在一起,反面的影像放在一起;(323)影像差值相似度排序釆用包括巻積及Delta算法對圖像進行排序處理,如果影像是N^N大小的圖片,則采用X-Y的采樣間距,其中X<M|Y<N,分別對每兩副圖片的RGB值進行Delta的差值大小排序,將Delta越小的放在一起;其中Delta=(R1-R2)A2+(G1-G2)A2+(Bl-B2)A2或者其他能夠表示像素之間差值的算法;(324)影像版面類型排序根據影像的業務種類、用途、適用范圍、掃描過程中的文件名序號等能夠唯一標示影像種類的方法進行排序,將同一種類影像放在一起。5、如權利要求1或2所述的海量圖像數據壓縮方法,其特征在于該動態影像解壓縮算法包括如下步驟(41)輸入影像壓縮文件,影像壓縮文件為動態影像壓縮算法形成的壓縮包文件;(42)解復用器首先進行DSA解密,得到原始的壓縮流,解復用器首先根據每個偏移量,計算出每一個流的位置;(43)影像信息提取提取保存在壓縮包中備解壓過程中使用的原始批量影像文件名序列、原始影像的尺寸大小信息,以備在輸出的時候恢復原圖名稱和大小;(44)運動對象解碼解碼過程實際上就是從編碼碼流中恢復出塊數據的過程;解碼過程主要包含兩部分運動解碼和紋理解碼;I幀中只含有紋理信息,因此只須解碼紋理信息即可恢復I幀;而P幀中不僅包含紋理信息,還包含運動信息,所以須解碼運動信息,獲得運動矢量并進行運動補償;另外,還須進行紋理解碼獲得殘差值,將這兩部分組合起來才能重建P幀;(45)運動補償,采用了運動估計算法和多楨運動補償技術,以l/4像素和1/8像素作為可選的運動估計方法,采用最多5個參考幀,通過在更多的參考幀進行運動估算和補償,找到列差更小的預測塊;(46)反余弦變換IDCT,完整的二維iDCT算法和基于一維iDCT運算的循環算法;后者先針對8x8像素塊的各列進行計算,再針對各行進行計算;U7)對象重建,將步驟(46)IDCT之后獲得的I幀及P幀對象,存入到對象池中;(48)對象池,對象池建立過程是動態建立的,在解壓過程中,對象池保存了運動對象,運動對象層和對象平面;這些不同的元素以不同的層次組合起來,結合運動腳本,成為表示影像的數據流;(48)合成,解碼器得到的是動態對象編碼,將編碼中的YUV和Alpha值,按照與前一幀的對比順利混合后,將獲得影像的YUV值,通過RGB轉換,最終得到影像圖片。全文摘要本發明公開了一種壓縮方法,屬于信息
技術領域:
中數據壓縮技術的方法。包括如下步驟輸入大批量票據類影像;分類排序;利用動態影像壓縮算法對影像壓縮;影像打包加密;采用動態影像解壓縮算法對影像解壓,還原取出每一幅影像圖片;分類還原后輸出批量影像。本發明提供的壓縮算法與JPEG2000等相比,壓縮速度是后者的5倍強,壓縮的結果文件大小是原影像的1/10強,解壓后OCR識別率基本保持不變。基于這個特性,本發明使得只需很小的帶寬即可在網絡上傳輸實時的影像。文檔編號H04N7/50GK101594537SQ200910143999公開日2009年12月2日申請日期2009年6月4日優先權日2009年6月4日發明者孫海濤,譚宜勇申請人:京北方科技股份有限公司