基于顏色分類與聚類的圖像壓縮和解壓縮方法
【專利摘要】本發(fā)明公開了一種基于顏色分類與聚類的圖像壓縮和解壓縮方法,其中所述壓縮方法包括:獲取原始圖像,并為所述原始圖像建立標志矩陣;對所述原始圖像進行顏色分類;判斷所述顏色分類的種類數(shù)是否多于預設的顏色種類數(shù),若是,對所述顏色分類中多出的顏色種類進行聚類;根據(jù)所述顏色分類的類別,拆分所述原始圖像的像素數(shù)據(jù)和標志數(shù)據(jù);采用無損壓縮算法對所述標志數(shù)據(jù)進行壓縮,采用有損算法對所述像素數(shù)據(jù)進行壓縮;將各壓縮數(shù)據(jù)按照預設順序寫入文件,得到壓縮圖像。本發(fā)明對圖像的顏色信息進行分類和聚類,并將無損壓縮算法和有損壓縮算法相結合,實現(xiàn)了高質、高速和高壓縮比的圖像壓縮方法。
【專利說明】基于顏色分類與聚類的圖像壓縮和解壓縮方法
【技術領域】
[0001]本發(fā)明涉及圖像壓縮【技術領域】,具體涉及一種基于顏色分類和聚類的圖像壓縮和解壓縮方法。
【背景技術】
[0002]圖像壓縮是指以較少的比特有損或無損地表示原來的像素矩陣的技術,也稱圖像編碼。圖像數(shù)據(jù)之所以能被壓縮,就是因為數(shù)據(jù)中存在著冗余。圖像數(shù)據(jù)的冗余主要表現(xiàn)為:圖像中相鄰像素間的相關性引起的空間冗余;圖像序列中不同幀之間存在相關性引起的時間冗余;不同彩色平面或頻譜帶的相關性引起的頻譜冗余。數(shù)據(jù)壓縮的目的就是通過去除這些數(shù)據(jù)冗余來減少表示數(shù)據(jù)所需的比特數(shù)。
[0003]現(xiàn)在主流的圖像壓縮方法主要包括JPEG (Joint Photographic Experts Group,聯(lián)合圖像專家小組)法和JPEG2000法。JPEG是由國際標準組織和國際電話電報咨詢委員會為靜態(tài)圖像所建立的第一個國際數(shù)字圖像壓縮標準,也是至今一直在使用的、應用最廣的圖像壓縮標準。JPEG法用有損壓縮方式去除冗余的圖像數(shù)據(jù),在獲得極高的壓縮率的同時能展現(xiàn)十分豐富生動的圖像,換句話說,就是可以用最少的磁盤空間得到較好的圖像品質,其壓縮比可以達到其他傳統(tǒng)壓縮算法無法比擬的程度。JPEG2000是基于小波變換的圖像壓縮標準,其重要特征在于能實現(xiàn)漸進傳輸,即先傳輸圖像的輪廓,然后逐步傳輸數(shù)據(jù),不斷提高圖像質量,讓圖像由朦朧到清晰顯示。此外,JPEG2000還支持所謂的“感興趣區(qū)域”特性,可以任意指定影像上感興趣區(qū)域的壓縮質量,還可以選擇指定的部分先解壓縮。JPEG2000和JPEG相比優(yōu)勢明顯,且向下兼容,因此被認為是未來取代JPEG的下一代圖像壓縮標準。
[0004]但是,由于一般情況下圖像信號是高度非平穩(wěn)的,很難用高斯過程來描述,并且圖像中存在一些突變結構,而JPEG算法對圖像進行分塊處理,在高壓縮比時就會產生嚴重的馬賽克失真,即方塊效應。JPEG2000算法復雜,針對大尺寸的圖像時,壓縮速度慢,在中、低度壓縮比下,JPEG2000的優(yōu)勢不明顯,另外,JPEG2000存在模糊失真,主要是由于在編碼過程中高頻分量會產生一定程度的衰減所導致的。JPEG和JPEG2000壓縮算法適用于多種圖像,包括灰度圖像和彩色圖像,具有通用性,因而其代價是算法復雜和犧牲一定的速度。當采用高壓縮比對大量的圖像進行壓縮時,上述兩種算法各自存在壓縮質量差和速度慢的不足。
【發(fā)明內容】
[0005]本發(fā)明的目的在于提出一種基于顏色分類與聚類的圖像壓縮和解壓縮方法,解決對大量圖像進行壓縮時,壓縮質量差和壓縮速度慢的問題。
[0006]本發(fā)明公開了一種基于顏色分類與聚類的圖像壓縮方法,包括:
[0007]S1、獲取原始圖像,并為所述原始圖像建立標志矩陣;
[0008]S2、對所述原始圖像進行顏色分類;[0009]S3、判斷所述顏色分類的種類數(shù)是否多于預設的顏色種類數(shù),若是,執(zhí)行步驟S4,否則直接執(zhí)行步驟S5 ;
[0010]S4、對所述顏色分類中多出的顏色種類進行聚類;
[0011]S5、根據(jù)所述顏色分類的類別,拆分所述原始圖像的像素數(shù)據(jù)和標志數(shù)據(jù);
[0012]S6、采用無損壓縮算法對所述標志數(shù)據(jù)進行壓縮,采用有損算法對所述像素數(shù)據(jù)進行壓縮;
[0013]S7、將各壓縮數(shù)據(jù)按照預設順序寫入文件,得到壓縮圖像。
[0014]進一步地,所述標志矩陣與所述原始圖像的像素矩陣大小相同,且所述標志矩陣的初值設為O。
[0015]進一步地,所述對原始圖像進行顏色分類包括:
[0016]S21、將所述標志矩陣的第一個元素設為1,獲取所述原始圖像第一個像素的像素數(shù)據(jù);
[0017]S22、以所述第一個像素的像素數(shù)據(jù)為基準,依次計算所述原始圖像剩余像素的保真度值,若所述保真度值大于設定閾值,將所述標志矩陣中相應位置的元素設為I ;
[0018]S23、將所述標志矩陣中第一個0元素設為k,并獲取所述原始圖像中相應位置像素點的像素數(shù)據(jù)作為基準,依次計算所有0元素對應像素點的保真度值,若所述保真度值大于設定閾值,將所述標志矩陣中相應位置的元素設為k ;
[0019]S24、重復步驟S23,直至所述標志矩陣中不再包含0元素,其中k是大于I小于等于P的正整數(shù),P為所述顏色分類的種類數(shù);
[0020]S25、計算所述標志矩陣中每種顏色分類的元素數(shù)量,按照所述元素數(shù)量由多到少的順序對所述k值進行升序排列和重置,使得元素數(shù)量最多的顏色分類的k值為1,元素數(shù)量最少的顏色分類的k值為p。
[0021]進一步地,所述對所述顏色分類中多出的顏色種類進行聚類包括:
[0022]S41、以所述標志矩陣中k值大于預設顏色種類數(shù)的元素為中心,統(tǒng)計其鄰域內k值小于等于預設顏色種類數(shù)的各類顏色的數(shù)量,將數(shù)量最多的顏色種類的k值作為所述標志矩陣中k值大于預設顏色種類數(shù)的元素值;
[0023]S42、對所述標志矩陣中k值大于預設顏色種類數(shù)的元素重復步驟SI,直至所述標志矩陣中不再包含k值大于預設顏色種類數(shù)的元素;
[0024]S43、計算所述標志矩陣中每種顏色分類的元素數(shù)量,按照所述元素數(shù)量由多到少的順序對所述k值進行升序排列和重置,使得元素數(shù)量最多的顏色分類的k值為1,使得元素數(shù)量最少的顏色分類的k值為預設的顏色種類數(shù)。
[0025]進一步地,所述鄰域是不小于5X5的矩陣,且所述鄰域內必須包含k值小于預設顏色種類數(shù)的元素。
[0026]進一步地,所述根據(jù)所述顏色分類的類別,拆分所述原始圖像的像素數(shù)據(jù)和標志數(shù)據(jù)的方法是二叉樹法,包括:
[0027]S51、按照先行后列的順序,提取所述標志矩陣中k值為I的元素所對應的所述原始圖像的像素組成一維像素數(shù)組A1,所述原始圖像的其余像素組成一維像素數(shù)組A11;
[0028]S52、按照先行后列的順序,提取所述標志矩陣中k值非I的元素組成一維標志數(shù)組fn,將所述標志矩陣中k值非I的元素置為0,并將所述標志矩陣按照先行后列的順序排列成一維標志數(shù)組,其中所述一維標志數(shù)組的值為O或I ;
[0029]S53、依次提取所述一維標志數(shù)組fn中k值為2的元素所對應的所述一維像素數(shù)組A11的像素組成一維像素數(shù)組A2,所述一維像素數(shù)組A11的其余像素組成一維像素數(shù)組
A ?
n22 ,
[0030]S54、依次提取所述一維標志數(shù)組fn中k值非2的元素組成一維標志數(shù)組f22,將所述一維標志數(shù)組fn中k值非2的元素置為0,將k值為2的元素置為I,組成一維標志數(shù)組f2,其中所述一維標志數(shù)組f2的值為0或I ;
[0031]S55、重復步驟S53和S54,直至所有顏色分類的像素數(shù)據(jù)和標志數(shù)據(jù)分別完成拆分,其中各標志數(shù)組的值為0或I。
[0032]進一步地,所述采用有損算法對所述像素數(shù)據(jù)進行壓縮包括:
[0033]S61、將所述像素數(shù)據(jù)中所有像素的所有分量分別進行直流電平位移;
[0034]S62、當所述原始圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由RGB色彩空間轉換到YUV色彩空間;
[0035]S63、對像素數(shù)據(jù)中每個數(shù)組分別按照各個分量進行一維小波變換;
[0036]S64、對變換后的各分量分別進行編碼處理。
[0037]進一步地,所述當所述掃描圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由RGB色彩空間轉換到YUV色彩空間之后還`包括:對所述像素數(shù)據(jù)中各像素的Y、U和V分量分別進行重采樣,重采樣比例為4:1或4:2。
[0038]進一步地,所述將所述像素數(shù)據(jù)中所有像素的所有分量分別進行直流電平位移具體為:將所述像素數(shù)據(jù)中所有像素的各分量分別減去預設值,其中所述預設值優(yōu)選為128。
[0039]進一步地,所述對變換后的各分量分別進行編碼處理采用的是差分脈沖編碼方式。
[0040]本發(fā)明還公開了一種圖像解壓縮方法,包括:
[0041]S1、獲取壓縮圖像;
[0042]S2、對壓縮后的標志數(shù)組和圖像數(shù)據(jù)進行編碼解壓;
[0043]S3、根據(jù)解壓后的標志數(shù)據(jù),合并解壓后的圖像數(shù)據(jù);
[0044]S4、將所述解壓后的圖像數(shù)據(jù)寫入文件,得到解壓的圖像。
[0045]進一步地,所述對壓縮后的圖像數(shù)據(jù)進行編碼解壓包括:
[0046]S21、對所述壓縮后的圖像數(shù)據(jù)的每一類數(shù)組的數(shù)據(jù)進行差分脈沖反編碼;
[0047]S22、將差分脈沖反編碼后的數(shù)據(jù)分別補零,并進行一維小波逆變換;
[0048]S23、當所述壓縮圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由YUV色彩空間轉換到RGB色彩空間;
[0049]S24、將所有像素分別進行直流電平位移,得到新的分量。
[0050]進一步地,所述當所述壓縮圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由YUV色彩空間轉換到RGB色彩空間之前還包括;對變換后的每一類數(shù)組中的分量分別按照1:4或1:2的比例進行還原,使其數(shù)據(jù)量增加到之前的4倍或2倍。
[0051]本發(fā)明對圖像的顏色信息進行分類并聚類,使顏色種類滿足設定值,因此每一類像素具有極強的相似性,因而可以在減少圖像信息損失的同時,實現(xiàn)高壓縮比。本發(fā)明還對顏色數(shù)據(jù)和標志數(shù)據(jù)進行了拆分,降低數(shù)據(jù)維數(shù),減少計算量,實現(xiàn)壓縮速度的提高,達到快速壓縮的目的。另外,本發(fā)明充分發(fā)揮無損壓縮算法和有損壓縮算法的優(yōu)勢并將其有機結合,達到最大效能,從而實現(xiàn)聞質、聞速和聞壓縮比。
【專利附圖】
【附圖說明】
[0052]圖1是本發(fā)明第一實施例的圖像壓縮方法流程圖。
[0053]圖2是本發(fā)明第二實施例對彩色圖像進行壓縮的方法流程圖。
[0054]圖3是本發(fā)明第二和第四實施例的像素數(shù)據(jù)和標志數(shù)據(jù)的按類拆分示意圖。
[0055]圖4是本發(fā)明第三實施例對彩色圖像進行解壓縮的方法流程圖。
[0056]圖5是本發(fā)明第三和第五實施例對像素數(shù)據(jù)多次合并的示意圖。
[0057]圖6是本發(fā)明第二和第三實施例的壓縮解壓縮方法整體示意圖。
[0058]圖7是本發(fā)明第四實施例對灰度圖像進行壓縮的方法流程圖。
[0059]圖8是本發(fā)明第五實施例對灰度圖像進行解壓縮的方法流程圖。
【具體實施方式】
[0060]下面結合附圖和實施例對本發(fā)明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部。
[0061]第一實施例
[0062]圖1是本發(fā)明第一實施例的方法流程圖。如圖1所示,本發(fā)明實施例基于顏色分類與聚類的圖像壓縮方法包括:
[0063]步驟11、獲取原始圖像,并為所述原始圖像建立標志矩陣。
[0064]所述獲取原始圖像,對于彩色圖像來說,就是獲取每個像素點的R、G、B值;對于灰度圖像來說,就是獲取其灰度值。
[0065]步驟12、對所述原始圖像進行顏色分類,將顏色相近的像素點歸為一個顏色種類。
[0066]步驟13、判斷所述顏色分類的種類數(shù)是否多于預設的顏色種類數(shù),若是,執(zhí)行步驟14,否則直接執(zhí)行步驟15。
[0067]所述預設的顏色種類數(shù),彩色圖像一般設置為8至10中的任一整數(shù)值,灰度圖像一般設置為3或4。
[0068]步驟14、對所述顏色分類中多出的顏色種類進行聚類。
[0069]如果所述顏色分類的種類數(shù)比預設的顏色種類數(shù)多,就要通過聚類算法對多出的顏色種類進行合并,以保證所述顏色分類的種類數(shù)不多余預設的顏色種類數(shù)。
[0070]步驟15、根據(jù)所述顏色分類的類別,拆分所述原始圖像的像素數(shù)據(jù)和標志數(shù)據(jù),通過拆分使得所述像素數(shù)據(jù)和標志數(shù)據(jù)都由二維矩陣變?yōu)槎鄠€長度不一的一維數(shù)組。
[0071]步驟16、采用無損壓縮算法對所述標志數(shù)據(jù)進行壓縮,采用有損算法對所述像素數(shù)據(jù)進行壓縮。
[0072]步驟17、將各壓縮數(shù)據(jù)按照預設順序寫入文件,得到壓縮圖像。
[0073]將原圖像的長度、寬度、色彩位數(shù)、壓縮后的標志數(shù)組的長度及數(shù)據(jù)、每類像素數(shù)組的原始長度、壓縮后的各個像素分量數(shù)據(jù)依次寫入文件,得到壓縮圖像。
[0074]本實施例對圖像的顏色信息進行分類并聚類,使顏色種類滿足設定值,在減少圖像信息損失的同時,實現(xiàn)高壓縮比。本實施例還對顏色數(shù)據(jù)和標志數(shù)據(jù)進行了拆分,降低數(shù)據(jù)維數(shù),減少計算量,實現(xiàn)壓縮速度的提高,達到快速壓縮的目的。另外,本發(fā)明充分發(fā)揮無損壓縮算法和有損壓縮算法的優(yōu)勢并將其有機結合,達到最大效能,從而實現(xiàn)高質、高速和高壓縮比。
[0075]實施例二
[0076]圖2是本發(fā)明第二實施例對彩色圖像進行壓縮的方法流程圖。如圖2所示,本實施例對彩色圖像進行壓縮的方法包括:
[0077]步驟21、獲取原始圖像,并為所述原始圖像建立標志矩陣。
[0078]所述原始圖像為彩色圖像,此時獲取的是每個像素點的R、G、B值,同時還得到了所述原始圖像的尺寸、顏色位數(shù)等信息。
[0079]所述標志矩陣與所述原始圖像的像素矩陣大小相同,且所述標志矩陣的初值設為
【權利要求】
1.一種基于顏色分類與聚類的圖像壓縮方法,其特征在于,所述方法包括: 51、獲取原始圖像,并為所述原始圖像建立標志矩陣; 52、對所述原始圖像進行顏色分類; 53、判斷所述顏色分類的種類數(shù)是否多于預設的顏色種類數(shù),若是,執(zhí)行步驟S4,否則直接執(zhí)行步驟S5 ; 54、對所述顏色分類中多出的顏色種類進行聚類; 55、根據(jù)所述顏色分類的類別,拆分所述原始圖像的像素數(shù)據(jù)和標志數(shù)據(jù); 56、采用無損壓縮算法對所述標志數(shù)據(jù)進行壓縮,采用有損算法對所述像素數(shù)據(jù)進行壓縮; 57、將各壓縮數(shù)據(jù)按照預設順序寫入文件,得到壓縮圖像。
2.如權利要求1所述的圖像壓縮方法,其特征在于,所述標志矩陣與所述原始圖像的像素矩陣大小相同,且所述標志矩陣的初值設為O。
3.如權利要求2所述的圖像壓縮方法,其特征在于,所述對原始圖像進行顏色分類包括: 521、將所述標志矩陣的第一個元素設為1,獲取所述原始圖像第一個像素的像素數(shù)據(jù); 522、以所述第一個像素的像素數(shù)據(jù)為基準,依次計算所述原始圖像剩余像素的保真度值,若所述保真度值大于設定閾值,將所述標志矩陣中相應位置的元素設為I ; 523、將所述標志矩陣中第一個O元素設為k,并獲取所述原始圖像中相應位置像素點的像素數(shù)據(jù)作為基準,依次計算所有O元素對應像素點的保真度值,若所述保真度值大于設定閾值,將所述標志矩陣中相應位置的元素設為k ; 524、重復步驟S23,直至所述標志矩陣中不再包含O元素,其中k是大于I小于等于p的正整數(shù),P為所述顏色分類的種類數(shù); 525、計算所述標志矩陣中每種顏色分類的元素數(shù)量,按照所述元素數(shù)量由多到少的順序對所述k值進行升序排列和重置,使得元素數(shù)量最多的顏色分類的k值為1,元素數(shù)量最少的顏色分類的k值為p。
4.如權利要求3所述的圖像壓縮方法,其特征在于,所述對所述顏色分類中多出的顏色種類進行聚類包括: 541、以所述標志矩陣中k值大于預設顏色種類數(shù)的元素為中心,統(tǒng)計其鄰域內k值小于等于預設顏色種類數(shù)的各類顏色的數(shù)量,將數(shù)量最多的顏色種類的k值作為所述標志矩陣中k值大于預設顏色種類數(shù)的元素值; 542、對所述標志矩陣中k值大于預設顏色種類數(shù)的元素重復步驟SI,直至所述標志矩陣中不再包含k值大于預設顏色種類數(shù)的元素; 543、計算所述標志矩陣中每種顏色分類的元素數(shù)量,按照所述元素數(shù)量由多到少的順序對所述k值進行升序排列和重置,使得元素數(shù)量最多的顏色分類的k值為1,使得元素數(shù)量最少的顏色分類的k值為預設的顏色種類數(shù)。
5.如權利要求4所述的圖像壓縮方法,其特征在于,所述鄰域是不小于5X5的矩陣,且所述鄰域內必須包含k值小于預設顏色種類數(shù)的元素。
6.如權利要求1所述的圖像壓縮方法,其特征在于,所述根據(jù)所述顏色分類的類別,拆分所述原始圖像的像素數(shù)據(jù)和標志數(shù)據(jù)的方法是二叉樹法,包括: S51、按照先行后列的順序,提取所述標志矩陣中k值為I的元素所對應的所述原始圖像的像素組成一維像素數(shù)組A1,所述原始圖像的其余像素組成一維像素數(shù)組A11 ; S52、按照先行后列的順序,提取所述標志矩陣中k值非I的元素組成一維標志數(shù)組fn,將所述標志矩陣中k值非I的元素置為O,并將所述標志矩陣按照先行后列的順序排列成一維標志數(shù)組,其中所述一維標志數(shù)組的值為O或I ; S53、依次提取所述一維標志數(shù)組fn中k值為2的元素所對應的所述一維像素數(shù)組A11的像素組成一維像素數(shù)組A2,所述一維像素數(shù)組A11的其余像素組成一維像素數(shù)組A22 ; S54、依次提取所述一維標志數(shù)組fn中k值非2的元素組成一維標志數(shù)組f22,將所述一維標志數(shù)組fn中k值非2的元素置為0,將k值為2的元素置為I,組成一維標志數(shù)組f2,其中所述一維標志數(shù)組f2的值為0或I ; S55、重復步驟S53和S54,直至所有顏色分類的像素數(shù)據(jù)和標志數(shù)據(jù)分別完成拆分,其中各標志數(shù)組的值為0或I。
7.如權利要求1所述的圖像壓縮方法,其特征在于,所述采用有損算法對所述像素數(shù)據(jù)進行壓縮包括: S61、將所述像素數(shù)據(jù)中所有像素的所有分量分別進行直流電平位移; S62、當所述原始圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由RGB色彩空間轉換到YUV色彩空間; S63、對像素數(shù)據(jù)中每個數(shù)組分別按照各個分量進行一維小波變換; S64、對變換后的各分量分別進行編碼處理。
8.如權利要求7所述的圖像壓縮方法,其特征在于,所述當所述掃描圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由RGB色彩空間轉換到YUV色彩空間之后還包括:對所述像素數(shù)據(jù)中各像素的Y、U和V分量分別進行重采樣,重采樣比例為4:1或4:2。
9.如權利要求7所述的圖像壓縮方法,其特征在于,所述將所述像素數(shù)據(jù)中所有像素的所有分量分別進行直流電平位移具體為:將所述像素數(shù)據(jù)中所有像素的各分量分別減去預設值,其中所述預設值優(yōu)選為128。
10.如權利要求7所述的圖像壓縮方法,其特征在于,所述對變換后的各分量分別進行編碼處理采用的是差分脈沖編碼方式。
11.一種圖像解壓縮方法,其特征在于,所述方法包括: S1、獲取壓縮圖像; S2、對壓縮后的標志數(shù)組和圖像數(shù)據(jù)進行編碼解壓; S3、根據(jù)解壓后的標志數(shù)據(jù),合并解壓后的圖像數(shù)據(jù); S4、將所述解壓后的圖像數(shù)據(jù)寫入文件,得到解壓的圖像。
12.如權利要求11所述的圖像解壓縮方法,其特征在于,所述對壓縮后的圖像數(shù)據(jù)進行編碼解壓包括: S21、對所述壓縮后的圖像數(shù)據(jù)的每一類數(shù)組的數(shù)據(jù)進行差分脈沖反編碼; S22、將差分脈沖反編碼后的數(shù)據(jù)分別補零,并進行一維小波逆變換; S23、當所述壓縮圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由YUV色彩空間轉換到RGB色彩空間;S24、將所有像素分別進行直流電平位移,得到新的分量。
13.如權利要求12所述的圖像 解壓縮方法,其特征在于,所述當所述壓縮圖像為彩色圖像時,將所述像素數(shù)據(jù)中所有像素由YUV色彩空間轉換到RGB色彩空間之前還包括;對變換后的每一類數(shù)組中的分量分別按照1:4或1:2的比例進行還原,使其數(shù)據(jù)量增加到之前的4倍或2倍。
【文檔編號】H04N7/26GK103458242SQ201310274880
【公開日】2013年12月18日 申請日期:2013年7月2日 優(yōu)先權日:2013年7月2日
【發(fā)明者】張修寶, 高昊江 申請人:北京京北方信息技術有限公司