專利名稱:一種修改jpeg圖像局部圖像的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子圖像處理領(lǐng)域,特別涉及一種修改JPEG圖像局部圖像的方法及裝置。
背景技術(shù):
隨著移動(dòng)終端(手機(jī)、平板電腦、PDA等)的高速發(fā)展,其搭載的相機(jī)性能越來(lái)越強(qiáng),人們使用移動(dòng)終端進(jìn)行拍照變的越來(lái)越普遍。在傳統(tǒng)相機(jī)中,拍攝的照片加上時(shí)間戳是一項(xiàng)普遍應(yīng)用的技術(shù)。然而,在移動(dòng)智能終端中,如果要實(shí)現(xiàn)該功能,需要將攝像頭拍攝得到的JPEG圖像解壓縮成RGB圖,然后進(jìn)行修改。受移動(dòng)終端計(jì)算性能的限制,該過(guò)程長(zhǎng)達(dá)數(shù)秒,較長(zhǎng)的處理時(shí)間給用戶體驗(yàn)帶來(lái)致命影響。因此,現(xiàn)有移動(dòng)智能終端中的拍照軟件很少配置該功能。
發(fā)明內(nèi)容
有鑒于此, 本發(fā)明的主要目的在于提供一種修改JPEG圖像局部圖像的方法和裝置,以實(shí)現(xiàn)快速修改圖像局部細(xì)節(jié)的目的。根據(jù)本發(fā)明的一個(gè)方面,提供了一種修改JPEG圖像局部圖像的方法,其特征在于,包括以下步驟:101、使用哈夫曼解碼獲得量化DCT數(shù)據(jù);102、在量化DCT數(shù)據(jù)中定位需要修改的數(shù)據(jù)塊;103、對(duì)定位的需要修改的數(shù)據(jù)塊進(jìn)行逆量化計(jì)算,得到待修改區(qū)域DCT數(shù)據(jù);104、對(duì)待修改區(qū)域DCT數(shù)據(jù)進(jìn)行逆DCT處理,得到Y(jié)UV數(shù)據(jù);105、對(duì)YUV數(shù)據(jù)進(jìn)行YUV-RGB顏色空間轉(zhuǎn)換;106、對(duì)YUV數(shù)據(jù)或RGB數(shù)據(jù)進(jìn)行需要的效果處理;107、將處理完的數(shù)據(jù)進(jìn)行DCT計(jì)算;108、對(duì)DCT數(shù)據(jù)進(jìn)行量化計(jì)算;109、將新DCT量化數(shù)據(jù)跟未修改的數(shù)據(jù)一起進(jìn)行哈夫曼編碼,從而得到新的JPEG圖像。優(yōu)選的,其特征在于,在所述步驟102中,若待處理區(qū)域位于全幅圖像的左下角或者右下角,則對(duì)待修改區(qū)域起始坐標(biāo)開(kāi)始往后所有的數(shù)據(jù)塊進(jìn)行處理。優(yōu)選的,其中步驟106中所述的效果處理為圖像混合。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種修改JPEG圖像局部圖像的裝置,其特征在于,包括:哈夫曼解碼模塊,用于使用哈夫曼解碼獲得量化DCT數(shù)據(jù);定位模塊,用于在量化DCT數(shù)據(jù)中定位需要修改的數(shù)據(jù)塊;逆量化計(jì)算模塊,用于對(duì)定位的需要修改的數(shù)據(jù)塊進(jìn)行逆量化計(jì)算,得到待修改區(qū)域DCT數(shù)據(jù);
逆DCT處理模塊,用于對(duì)待修改區(qū)域DCT數(shù)據(jù)進(jìn)行逆DCT處理,得到Y(jié)UV數(shù)據(jù);
顏色空間轉(zhuǎn)換模塊,用于對(duì)YUV數(shù)據(jù)進(jìn)行YUV-RGB顏色空間轉(zhuǎn)換;效果處理模塊,用于對(duì)YUV數(shù)據(jù)或RGB數(shù)據(jù)進(jìn)行需要的效果處理;DCT計(jì)算模塊,用于將處理完的數(shù)據(jù)進(jìn)行DCT計(jì)算;量化計(jì)算模塊,用于對(duì)DCT數(shù)據(jù)進(jìn)行量化計(jì)算;哈夫曼編碼模塊,用于將新DCT量化數(shù)據(jù)跟未修改的數(shù)據(jù)一起進(jìn)行哈夫曼編碼,從而得到新的JPEG圖像。優(yōu)選的,其特征在于,若待處理區(qū)域位于全幅圖像的左下角或者右下角,則所述定位模塊對(duì)待修改區(qū)域起始坐標(biāo)開(kāi)始往后所有的數(shù)據(jù)塊進(jìn)行處理。優(yōu)選的,其中所述效果處理模塊執(zhí)行的效果處理為圖像混合。由上可以看出,相對(duì)于傳統(tǒng)處理辦法,本發(fā)明提供的方法將需要進(jìn)行修改的圖像部分的定位處理進(jìn)行了提前,從而減小了后續(xù)運(yùn)算量。
圖1為本發(fā)明實(shí)施例中修改JPEG圖像局部圖像的方法流程圖。圖2為本發(fā)明實(shí)施例中修改JPEG圖像局部圖像的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖 ,以手機(jī)為例詳細(xì)介紹本發(fā)明提供的一種修改JPEG圖像局部圖像的方法。本發(fā)明提供的一種修改JPEG圖像局部圖像的方法,包括以下步驟:步驟101:使用哈夫曼解碼獲得量化DCT數(shù)據(jù)JPEG是一種壓縮圖像格式,使用哈夫曼編碼進(jìn)行壓縮,無(wú)法直接進(jìn)行修改。因此要想修改JPEG圖像,必須首先進(jìn)行解碼。哈夫曼編碼(Huffman Coding)是一種編碼方式,是可變字長(zhǎng)編碼(VLC)的一種,該方法依據(jù)數(shù)據(jù)出現(xiàn)概率來(lái)構(gòu)造異字頭的平均長(zhǎng)度最短的碼字,有時(shí)稱之為最佳編碼。哈夫曼編碼先對(duì)圖像數(shù)據(jù)進(jìn)行掃描,計(jì)算出各種像素出現(xiàn)的概率,按概率的大小指定不同長(zhǎng)度的唯一碼字,由此得到一張?jiān)搱D像的哈夫曼碼表。編碼后的圖像數(shù)據(jù)記錄的是每個(gè)像素的碼字,而碼字與實(shí)際像素值的對(duì)應(yīng)關(guān)系記錄在碼表中。實(shí)際應(yīng)用中,我們一般使用標(biāo)準(zhǔn)的JPEG碼表。通過(guò)哈夫曼解碼,我們可以得到圖像的8x8的量化后的離散余弦變換(DiscreteCosine Transform, DCT)系數(shù)矩陣。步驟102:在量化DCT數(shù)據(jù)中定位需要修改的數(shù)據(jù)塊JPEG中DU以8x8為單位,因此,根據(jù)圖像的像素和需要進(jìn)行修改的位置起點(diǎn)坐標(biāo),可以快速計(jì)算出我們需要對(duì)哪些數(shù)據(jù)塊進(jìn)行修改。為了最大程度降低后續(xù)步驟的數(shù)據(jù)量,可以精確到具體需要進(jìn)行處理的數(shù)據(jù)塊。如果待修改區(qū)域位于左下角或者右下角,為了減小索引計(jì)算量,可以對(duì)待修改區(qū)域起始點(diǎn)往后的所有數(shù)據(jù)塊進(jìn)行處理。步驟103:對(duì)定位的需要修改的數(shù)據(jù)塊進(jìn)行逆量化計(jì)算,得到待修改區(qū)域DCT數(shù)據(jù)JPEG編碼過(guò)程中對(duì)DCT數(shù)據(jù)進(jìn)行過(guò)量化處理。所謂量化,即對(duì)DCT系數(shù)矩陣中高頻分量的很多近似值使用同一數(shù)字表示,大大降低了數(shù)量,同時(shí)對(duì)視覺(jué)效果的影響也很小。
將量化過(guò)后的數(shù)據(jù)再按原比例恢復(fù)為最接近原始DCT系數(shù)值的處理過(guò)程即為逆量化。該步驟中,需要對(duì)量化過(guò)的數(shù)據(jù)進(jìn)行逆處理,從而得到DCT數(shù)據(jù)。步驟104:對(duì)待修改區(qū)域DCT數(shù)據(jù)進(jìn)行逆DCT處理,從而得到Y(jié)UV數(shù)據(jù)JPEG處理的圖像以8x8的單位分割成DU,DU所對(duì)應(yīng)的圖像區(qū)域上各分量數(shù)據(jù)按序編組則為最小編碼單元(Minimum Coding Unit, MCU)。離散余弦變換(Discrete ConsineTransform, DCT)過(guò)程是指將分割的MCU中的光強(qiáng)數(shù)據(jù)轉(zhuǎn)換為頻率數(shù)據(jù)。對(duì)逆量化計(jì)算得到數(shù)據(jù)進(jìn)行逆DCT處理即可還原得到Y(jié)UV圖像數(shù)據(jù)。步驟105:對(duì)YUV數(shù)據(jù)進(jìn)行YUV-RGB顏色空間轉(zhuǎn)換YUV跟RGB是兩種不同的顏色空間,針對(duì)不同的應(yīng)用場(chǎng)景,可能需要使用不用的格式。如果應(yīng)用場(chǎng)景需要RGB數(shù)據(jù),則可以根據(jù)下面的公式對(duì)YUV數(shù)據(jù)進(jìn)行轉(zhuǎn)換:R=Y+1.13983*VG=Y - 0.39465*U - 0.58060*VB=Y+2.03211*U步驟106:對(duì)YUV數(shù)據(jù)或者RGB數(shù)據(jù)進(jìn)行需要的效果處理該步驟對(duì)解碼得到的待處理圖像數(shù)據(jù)進(jìn)行修`改,具體的修改根據(jù)不同的應(yīng)用場(chǎng)景確定。針對(duì)最常用的時(shí)間戳功能,我們需要將待加的時(shí)間戳數(shù)據(jù)跟解碼得到的圖像數(shù)據(jù)進(jìn)行α混合計(jì)算(a-blending)。步驟107:將處理完的數(shù)據(jù)進(jìn)行DCT計(jì)算待處理區(qū)域的圖像數(shù)據(jù)經(jīng)過(guò)修改后,需要重新進(jìn)行編碼。該步驟中,對(duì)處理完的數(shù)據(jù)重新進(jìn)行DCT計(jì)算,光強(qiáng)數(shù)據(jù)被轉(zhuǎn)換為頻率數(shù)據(jù)。步驟108:對(duì)DCT數(shù)據(jù)進(jìn)行量化計(jì)算該步驟中,計(jì)算得到的DCT數(shù)據(jù)被量化,DCT系數(shù)矩陣中高頻分量的很多近似值使
用同一數(shù)字表不。步驟109:將新DCT量化數(shù)據(jù)跟未修改的數(shù)據(jù)一起進(jìn)行哈夫曼編碼,從而得到新的JPEG數(shù)據(jù)該步驟中,初始哈夫曼解碼得到的量化DCT數(shù)據(jù)中需要被修改的MCU被步驟108的新數(shù)據(jù)替換,然后進(jìn)行哈夫曼編碼,從而得到新的JPEG圖像數(shù)據(jù)。在傳統(tǒng)的處理中,沒(méi)有本發(fā)明的步驟102。因此,步驟103到步驟105均是針對(duì)全幅圖像的處理。步驟105處理完后,對(duì)得到的全幅RGB數(shù)據(jù)或者YUV數(shù)據(jù)直接進(jìn)行處理。然后繼續(xù)對(duì)修改后的全幅圖像數(shù)據(jù)進(jìn)行步驟107到步驟109的處理。在添加時(shí)間戳等應(yīng)用場(chǎng)景中,一般都會(huì)在照片的左下角或者右下角進(jìn)行處理。對(duì)于這種場(chǎng)景,本發(fā)明提供的方法將極大地降低步驟103到步驟108的運(yùn)算量。以現(xiàn)在流行的800萬(wàn)像素(3264X2448)拍照為例,JPEG數(shù)據(jù)塊(Data Unit, DU)大小為8X8,所以全幅圖像共有408X306個(gè)數(shù)據(jù)塊。如果在右下角(3000,2200)開(kāi)始的位置添加時(shí)間戳,步驟103到步驟108每個(gè)步驟的計(jì)算數(shù)據(jù)量將至少減少[408X306- (408X30+33) ]/(408X306) =90.17%由上可以看出,整個(gè)處理過(guò)程的性能得到了極大地提升。此外,本發(fā)明還包含相應(yīng)的修改JPEG圖像局部圖像,如圖2所示,本發(fā)明的裝置包括:哈夫曼解碼模塊,用于使用哈夫曼解碼獲得量化DCT數(shù)據(jù);定位模塊,用于在量化DCT數(shù)據(jù)中定位需要修改的數(shù)據(jù)塊;其中,若待處理區(qū)域位于全幅圖像的左下角或者右下角,則所述定位模塊對(duì)待修改區(qū)域起始坐標(biāo)開(kāi)始往后所有的數(shù)據(jù)塊進(jìn)行處理。逆量化計(jì)算模塊,用于對(duì)定位的需要修改的數(shù)據(jù)塊進(jìn)行逆量化計(jì)算,得到待修改區(qū)域DCT數(shù)據(jù);逆DCT處理模塊,用于對(duì)待修改區(qū)域DCT數(shù)據(jù)進(jìn)行逆DCT處理,得到Y(jié)UV數(shù)據(jù);顏色空間轉(zhuǎn)換模塊,用于對(duì)YUV數(shù)據(jù)進(jìn)行YUV-RGB顏色空間轉(zhuǎn)換;效果處理模塊,用于對(duì)YUV數(shù)據(jù)或RGB數(shù)據(jù)進(jìn)行需要的效果處理;其中所述效果處理模塊執(zhí)行的效果處理例如可以為圖像混合。如針對(duì)最常用的時(shí)間戳功能,我們需要將待加的時(shí)間戳數(shù)據(jù)跟解碼得到的圖像數(shù)據(jù)進(jìn)行α混合計(jì)算(a -blending)。DCT計(jì)算模塊,用于將處理完的數(shù)據(jù)進(jìn)行DCT計(jì)算;量化計(jì)算模塊,用于對(duì)DCT數(shù)據(jù)進(jìn)行量化計(jì)算;哈夫曼編碼模塊,用于將新DCT量化數(shù)據(jù)跟未修改的數(shù)據(jù)一起進(jìn)行哈夫曼編碼,從而得到新的JPEG圖像。本領(lǐng)域的技術(shù)人·員應(yīng)該理解,本發(fā)明的方法和裝置可以采用硬件、軟件、或硬件和軟件相結(jié)合的方式,通過(guò)微處理器、數(shù)字信號(hào)處理器、現(xiàn)場(chǎng)可編程邏輯單元、或門(mén)陣列等各種方式實(shí)現(xiàn)。綜上所述,雖然本發(fā)明已以優(yōu)選實(shí)施例披露如上,然而其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作各種變動(dòng)與修飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種修改JPEG圖像局部圖像的方法,其特征在于,包括以下步驟: 101、使用哈夫曼解碼獲得量化DCT數(shù)據(jù); 102、在量化DCT數(shù)據(jù)中定位需要修改的數(shù)據(jù)塊; 103、對(duì)定位的需要修改的數(shù)據(jù)塊進(jìn)行逆量化計(jì)算,得到待修改區(qū)域DCT數(shù)據(jù); 104、對(duì)待修改區(qū)域DCT數(shù)據(jù)進(jìn)行逆DCT處理,得到Y(jié)UV數(shù)據(jù); 105、對(duì)YUV數(shù)據(jù)進(jìn)行YUV-RGB顏色空間轉(zhuǎn)換; 106、對(duì)YUV數(shù)據(jù)或RGB數(shù)據(jù)進(jìn)行需要的效果處理; 107、將處理完的數(shù)據(jù)進(jìn)行DCT計(jì)算; 108 JfDCT數(shù)據(jù)進(jìn)行量化計(jì)算; 109、將新DCT量化數(shù)據(jù)跟未修改的數(shù)據(jù)一起進(jìn)行哈夫曼編碼,從而得到新的JPEG圖像。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟102中,若待處理區(qū)域位于全幅圖像的左下角或者右下角,則對(duì)待修改區(qū)域起始坐標(biāo)開(kāi)始往后所有的數(shù)據(jù)塊進(jìn)行處理。
3.根據(jù)權(quán)利要求1所述的方法,其中步驟106中所述的效果處理為圖像混合。
4.一種修改JPEG圖像局部圖像的裝置,其特征在于,包括: 哈夫曼解碼模塊,用于使用哈夫曼解碼獲得量化DCT數(shù)據(jù); 定位模塊,用于在量化DCT數(shù)據(jù)中定位需要修改的數(shù)據(jù)塊; 逆量化計(jì)算模塊,用于對(duì)定位的需要修改的數(shù)據(jù)塊進(jìn)行逆量化計(jì)算,得到待修改區(qū)域DCT數(shù)據(jù); 逆DCT處理模塊,用于對(duì)待修改區(qū)域DCT數(shù)據(jù)進(jìn)行逆DCT處理,得到Y(jié)UV數(shù)據(jù); 顏色空間轉(zhuǎn)換模塊,用于對(duì)YUV數(shù)據(jù)進(jìn)行YUV-RGB顏色空間轉(zhuǎn)換; 效果處理模塊,用于對(duì)YUV數(shù)據(jù)或RGB數(shù)據(jù)進(jìn)行需要的效果處理; DCT計(jì)算模塊,用于將處理完的數(shù)據(jù)進(jìn)行DCT計(jì)算; 量化計(jì)算模塊,用于對(duì)DCT數(shù)據(jù)進(jìn)行量化計(jì)算; 哈夫曼編碼模塊,用于將新DCT量化數(shù)據(jù)跟未修改的數(shù)據(jù)一起進(jìn)行哈夫曼編碼,從而得到新的JPEG圖像。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,若待處理區(qū)域位于全幅圖像的左下角或者右下角,則所述定位模塊對(duì)待修改區(qū)域起始坐標(biāo)開(kāi)始往后所有的數(shù)據(jù)塊進(jìn)行處理。
6.根據(jù)權(quán)利要求4所述的裝置,其中所述效果處理模塊執(zhí)行的效果處理為圖像混合。
全文摘要
本發(fā)明提供了一種修改JPEG圖像局部圖像的方法及裝置。該方法對(duì)傳統(tǒng)解碼、修改、重新編碼的流程進(jìn)行了優(yōu)化,使得修改JPEG圖像的局部圖像時(shí)需要被解碼、修改、重新編碼的數(shù)據(jù)量大幅度降低,從而極大地提高了對(duì)圖像進(jìn)行局部修改的效率。該發(fā)明對(duì)圖像局部處理性能的提升,使得在移動(dòng)終端中拍照的同時(shí)進(jìn)行時(shí)間戳等處理變?yōu)榭赡堋?br>
文檔編號(hào)H04N7/26GK103237207SQ20131010532
公開(kāi)日2013年8月7日 申請(qǐng)日期2013年3月28日 優(yōu)先權(quán)日2013年3月28日
發(fā)明者鄧必山, 李志杰 申請(qǐng)人:中科創(chuàng)達(dá)軟件股份有限公司