本發(fā)明涉及一種對采用分塊為基礎(chǔ)的壓縮方法壓縮后的圖片和視頻類多媒體數(shù)據(jù)進行再次壓縮的技術(shù),特別涉及一種多媒體數(shù)據(jù)再壓縮方法。
背景技術(shù):
圖片、視頻類多媒體數(shù)據(jù)較其它類型數(shù)據(jù)的特點就是數(shù)據(jù)量大,對網(wǎng)絡帶寬、數(shù)據(jù)存儲都是很大的負擔,圖片和視頻中存在大量冗余信息,對圖片、視頻類多媒體數(shù)據(jù)壓縮方法的研究也一直是研究的熱點,并且形成了相對穩(wěn)定的算法框架和當前普遍采用的壓縮算法。
當前對圖片、視頻等多媒體數(shù)據(jù)壓縮所普遍采用的方法均是對原圖像或圖像幀中的像素點按照一定大小劃分成宏塊,對各宏塊數(shù)據(jù)采取相應方法進行相應壓縮,最終壓縮所得數(shù)據(jù)中是按照每個壓縮好的分塊數(shù)據(jù)按順序存放。其中對圖像中劃分的數(shù)據(jù)塊和視頻不同gop的i幀中數(shù)據(jù)塊的壓縮均為單獨壓縮,數(shù)據(jù)塊之間的壓縮并無關(guān)系。而這些數(shù)據(jù)塊中存在大量相似性較強的數(shù)據(jù)塊,圖片、視頻類多媒體數(shù)據(jù)對數(shù)據(jù)的精確度沒有很強的要求,這些相似性較強的數(shù)據(jù)塊可以互相替換而不造成圖片、視頻質(zhì)量的過度下降,當前普遍采用的壓縮方法會存儲所有這些相似性較強的宏塊,這樣就造成了壓縮后的多媒體數(shù)據(jù)中存在大量不必要的冗余信息。
如果對這些相似性較強的宏塊只存儲一個宏塊數(shù)據(jù),而其它與之相似的宏塊在解碼時用該宏塊數(shù)據(jù)進行替換,這樣就可以以損失很小的圖片、視頻質(zhì)量的代價來進一步減少多媒體數(shù)據(jù)占用存儲空間。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種多媒體數(shù)據(jù)再壓縮方法。
本發(fā)明的目的可以通過下述技術(shù)方案實現(xiàn):一種多媒體數(shù)據(jù)再壓縮方法,包含以下步驟:
數(shù)據(jù)再壓縮端的再壓縮步驟如下:
步驟s1、對采用分塊為基礎(chǔ)的壓縮方法壓縮的多媒體數(shù)據(jù)進行解碼;
步驟s2、對解碼后多媒體數(shù)據(jù)按照原多媒體數(shù)據(jù)采用壓縮方法的分塊大小進行分塊,對分塊數(shù)據(jù)進行相似性比較,獲取相似數(shù)據(jù)塊信息,將相似塊劃分相似塊組;
步驟s3、根據(jù)相似塊組信息,對每個相似塊組中的宏塊只保存組中第一個宏塊數(shù)據(jù),同一相似塊組中其它宏塊數(shù)據(jù)不予保存,僅在原位置保存替換宏塊信息,從而將原來壓縮好的多媒體數(shù)據(jù)進行再壓縮處理;
再壓縮數(shù)據(jù)解壓縮端的解壓縮的步驟如下:
步驟t1、對采用本方法再壓縮處理的多媒體數(shù)據(jù)恢復為再壓縮前的多媒體數(shù)據(jù)。
在步驟s1中,識別多媒體數(shù)據(jù)類型及壓縮格式,采取相應解碼方法對多媒體數(shù)據(jù)進行解碼,解碼出原圖片或視頻i幀每個像素點的yuv值,用yuv值來做之后的宏塊相似性比較操作。
在步驟s2中,按照相應壓縮方法的分塊大小對解碼后原始多媒體數(shù)據(jù)按照像素點位置進行分塊處理,即按照原多媒體數(shù)據(jù)采用壓縮方法壓縮的單位即宏塊,來做后面相似性比較操作。
在步驟s2中,按照一定判定相似標準,對分塊數(shù)據(jù)進行相似性比較,將相似數(shù)據(jù)塊位置信息分組保存為臨時文件,為每一組相似數(shù)據(jù)塊保存一個相似塊組信息,相似塊組信息中按照原多媒體數(shù)據(jù)相應壓縮方法壓縮數(shù)據(jù)塊的先后順序,保存這一組相似塊在解碼后多媒體數(shù)據(jù)中的相對位置信息,其中相似塊組中首個宏塊作為替換宏塊,同一相似塊組中其他宏塊作為被替換宏塊。
在步驟s3中,對圖片數(shù)據(jù)和視頻數(shù)據(jù)使用不同策略進行再壓縮,可根據(jù)不同類型多媒體數(shù)據(jù)、不同場景,在兩種策略中選取相應策略來對多媒體數(shù)據(jù)再壓縮。
在步驟s3中,第一種策略為:按照步驟s2中生成的相似塊組信息,生成一個再壓縮文件a,其中保存的數(shù)據(jù)為原始壓縮好的多媒體數(shù)據(jù)中去掉除了相似塊組中首個作為替換宏塊的其他存在于相似塊組中的宏塊數(shù)據(jù),并且在這些塊原數(shù)據(jù)位置插入被替換標識信息,此標識信息為該被替換宏塊對應的替換宏塊在a中的偏移信息和數(shù)據(jù)大小,a即為最終保存的再壓縮圖片數(shù)據(jù)。
在步驟s3中,第二種策略為:按照步驟s2中生成的相似塊組信息,生成一個替換塊文件a,其中保存每個相似塊組中首個宏塊在原多媒體數(shù)據(jù)中對應的壓縮數(shù)據(jù)及其在文件a中起始偏移位置信息;按照所得的相似塊組信息,生成一個再壓縮文件b,其中保存的數(shù)據(jù)為原始壓縮好的多媒體數(shù)據(jù)中去掉所有存在于相似塊組中的塊壓縮數(shù)據(jù),并且在這些塊原數(shù)據(jù)位置插入被替換標識信息,此標識信息即為塊所在相似塊組中替換宏塊數(shù)據(jù)在a中位置信息,最終再壓縮數(shù)據(jù)包括a和b兩部分。
在步驟t1中,可根據(jù)步驟s3所采用策略以及具體使用場景采取相對應策略來解壓步驟s3生成的再壓縮多媒體文件。
在步驟t1中,如s3步驟采用第一種對多媒體數(shù)據(jù)再壓縮,順序掃描并復制生成的再壓縮文件,如遇到標識信息,根據(jù)標識信息所提供的替換宏塊偏移位置及大小信息,獲得替換宏塊數(shù)據(jù),按此步驟通過順序掃描復制,還原為再壓縮前的多媒體數(shù)據(jù)。
在步驟t1中,如s3步驟采用第二種策略對多媒體數(shù)據(jù)再壓縮,順序掃描采用本方法再壓縮處理的多媒體數(shù)據(jù)中的b文件,如識別到被替換標識信息時,根據(jù)標識信息在a中找到替換塊數(shù)據(jù),將替換塊數(shù)據(jù)插入到原來被替換標識信息處,依次恢復為再壓縮前多媒體數(shù)據(jù)。
本發(fā)明的技術(shù)方案也可以是一種對經(jīng)現(xiàn)在廣泛采用壓縮方法壓縮后數(shù)據(jù)的再次壓縮的方法,該方法能夠在當前主流多媒體數(shù)據(jù)壓縮方法的基礎(chǔ)上再次提高多媒體數(shù)據(jù)的壓縮率。
具體而言,如圖1所示,本發(fā)明所采用的技術(shù)方案包含以下步驟:數(shù)據(jù)再壓縮端:
數(shù)據(jù)再壓縮端:
步驟s1、對采用分塊為基礎(chǔ)的壓縮方法壓縮的多媒體數(shù)據(jù)進行解碼;
步驟s2、對解碼后多媒體數(shù)據(jù)按照原多媒體數(shù)據(jù)采用壓縮方法的分塊大小進行分塊,對分塊數(shù)據(jù)進行相似性比較,獲取相似數(shù)據(jù)塊信息,將相似塊劃分相似塊組;
步驟s3、根據(jù)相似塊組信息,對每個相似塊組中的宏塊只保存組中第一個宏塊數(shù)據(jù),同一相似塊組中其它宏塊數(shù)據(jù)不予保存,僅在原位置保存替換宏塊信息,從而將原來壓縮好的多媒體數(shù)據(jù)進行再壓縮處理;
再壓縮數(shù)據(jù)解壓縮端:
步驟t1、對采用本方法再壓縮處理的多媒體數(shù)據(jù)恢復為再壓縮前的多媒體數(shù)據(jù);
步驟s1具體為:
識別多媒體數(shù)據(jù)類型及壓縮格式,采取相應解碼方法對多媒體數(shù)據(jù)進行解碼,解碼出原圖片或視頻i幀每個像素點的yuv值。
步驟s2具體為:
按照相應壓縮方法的分塊大小對解碼后原始多媒體數(shù)據(jù)按照像素點位置進行分塊處理;按照一定判定相似標準,對分塊數(shù)據(jù)進行相似性比較,將相似數(shù)據(jù)塊位置信息分組保存為臨時文件,為每一組相似數(shù)據(jù)塊保存一個相似塊組信息,相似塊組信息中按照原多媒體數(shù)據(jù)相應壓縮方法壓縮數(shù)據(jù)塊的先后順序,保存這一組相似塊在解碼后多媒體數(shù)據(jù)中的相對位置信息,其中相似塊組中首個宏塊作為替換宏塊,同一相似塊組中其他宏塊作為被替換宏塊,圖2、圖3分別為圖片、視頻幀比較相似性后獲得替換宏塊和被替換宏塊示意圖。
步驟s3具體為:
對圖片數(shù)據(jù)和視頻數(shù)據(jù)使用不同策略進行再壓縮,策略a用于圖片數(shù)據(jù)、視頻數(shù)據(jù)、圖片集數(shù)據(jù)的再壓縮,策略b用于對視頻數(shù)據(jù)或圖片集數(shù)據(jù)的再壓縮。
a)步驟s2所得的相似塊組中首個宏塊作為替換宏塊,同一相似塊組中其他宏塊作為被替換宏塊,按照相似塊組信息,生成一個再壓縮文件a,其中保存的數(shù)據(jù)為原始壓縮好的多媒體數(shù)據(jù)中去掉除了相似塊組中首個作為替換宏塊的其他存在于相似塊組中的宏塊數(shù)據(jù),并且在這些塊原數(shù)據(jù)位置插入被替換標識信息,此標識信息為該被替換宏塊對應的替換宏塊在a中的偏移信息和數(shù)據(jù)大小,a即為最終保存的再壓縮圖片數(shù)據(jù),圖4為本策略生成再壓縮多媒體數(shù)據(jù)文件示意圖。
b)步驟s2所得的相似塊組中首個宏塊作為替換宏塊,同一相似塊組中其他宏塊作為被替換宏塊,按照相似塊組信息,生成一個替換塊文件a,其中保存每個相似塊組中首個宏塊在原多媒體數(shù)據(jù)中對應的壓縮數(shù)據(jù)及其在文件a中起始偏移位置信息;按照所得的相似塊組信息,生成一個再壓縮文件b,其中保存的數(shù)據(jù)為原始壓縮好的多媒體數(shù)據(jù)中去掉所有存在于相似塊組中的塊壓縮數(shù)據(jù),并且在這些塊原數(shù)據(jù)位置插入被替換標識信息,此標識信息即為塊所在相似塊組中替換宏塊數(shù)據(jù)在a中位置信息,a和b為最終保存的再壓縮多媒體數(shù)據(jù),圖5為本策略生成再壓縮多媒體數(shù)據(jù)文件示意圖。
步驟t1具體為:
可根據(jù)步驟s3所采用策略以及具體使用場景采取以下兩種策略之一:
c)如s3步驟采用策略a對多媒體數(shù)據(jù)再壓縮,順序掃描并復制生成的再壓縮文件,如遇到標識信息,根據(jù)標識信息所提供的替換宏塊偏移位置及大小信息,獲得替換宏塊數(shù)據(jù),按此步驟通過順序掃描復制,還原為再壓縮前的多媒體數(shù)據(jù)。
d)如s3步驟采用策略b對多媒體數(shù)據(jù)再壓縮,順序掃描采用本方法再壓縮處理的多媒體數(shù)據(jù)中的b文件,如識別到被替換標識信息時,根據(jù)標識信息在a中找到替換塊數(shù)據(jù),將替換塊數(shù)據(jù)插入到原來被替換標識信息處,依次恢復為再壓縮前多媒體數(shù)據(jù)。
本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點及效果:
本發(fā)明針對采用分塊為基礎(chǔ)的圖片、視頻壓縮方法,對當前普遍采用的圖像、視頻壓縮算法的基礎(chǔ)上可對多媒體數(shù)據(jù)再次壓縮,以算法中分割的宏塊為單位對多個相似宏塊只存儲一個宏塊的原數(shù)據(jù),去除多媒體數(shù)據(jù)中的冗余信息,進一步提高多媒體數(shù)據(jù)壓縮率,以減少壓縮后多媒體數(shù)據(jù)占用的存儲空間。本發(fā)明具有對已經(jīng)過相應數(shù)據(jù)壓縮方法壓縮后的多媒體數(shù)據(jù)再次進行壓縮的作用,降低了壓縮后的多媒體數(shù)據(jù)所占的存儲空間。
附圖說明
圖1是本發(fā)明的方法流程圖。
圖2是圖片經(jīng)過相似性比較后示意圖。
圖3是視頻i幀經(jīng)過相似性比較后示意圖。
圖4是策略a所得再壓縮文件示意圖。
圖5是策略b所得再壓縮文件示意圖。
圖6是數(shù)據(jù)再壓縮端對圖片再壓縮具體實現(xiàn)的流程圖。
圖7是再壓縮數(shù)據(jù)解壓縮端對圖片再壓縮數(shù)據(jù)解壓具體實現(xiàn)的流程圖。
圖8是數(shù)據(jù)再壓縮端對視頻再壓縮具體實現(xiàn)的流程圖。
圖9是再壓縮數(shù)據(jù)解壓縮端對視頻再壓縮數(shù)據(jù)解壓具體實現(xiàn)的流程圖。
具體實施方式
下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。
如圖1所示,具體實現(xiàn)的系統(tǒng)包括數(shù)據(jù)再壓縮端和再壓縮數(shù)據(jù)解壓縮端兩個部分:
實施例1
具體實現(xiàn)的系統(tǒng)包括數(shù)據(jù)再壓縮端和再壓縮數(shù)據(jù)解壓縮端兩個部分:
使用策略a和策略c分別對采用分塊為基礎(chǔ)的壓縮方法壓縮的圖片數(shù)據(jù)再壓縮及解壓縮
如圖6所示,數(shù)據(jù)再壓縮端主要包括以下步驟:
p1、識別已經(jīng)通過以分塊為基礎(chǔ)壓縮算法壓縮好的圖片數(shù)據(jù)的壓縮格式;
p2、按照步驟p1識別的壓縮格式對應解碼算法,解碼出圖片的每個像素點的yuv值;
p3、按照相應圖片數(shù)據(jù)壓縮算法的分塊大小對解碼后圖片的yuv數(shù)據(jù)按照圖片像素點位置進行分塊處理;
p4、選取一定標準對步驟p3所劃圖片分塊數(shù)據(jù)進行相似性比較,得到臨時文件,該臨時文件存儲的是每一組相似數(shù)據(jù)塊保存一個相似宏塊組信息,相似塊組信息中按照圖片數(shù)據(jù)的壓縮算法中數(shù)據(jù)塊的先后順序,保存這一組相似宏塊在解碼后圖片數(shù)據(jù)中的相對位置信息;
p5、根據(jù)相似塊組信息,順序掃描原圖片數(shù)據(jù),如未掃描到被替換宏塊數(shù)據(jù),則復制圖片數(shù)據(jù)到再壓縮圖片文件,掃描到替換宏塊數(shù)據(jù)時記錄替換宏塊數(shù)據(jù)偏移位置及大小,當掃描到被替換宏塊數(shù)據(jù)時,不將該被替換宏塊數(shù)據(jù)復制到再壓縮圖片文件中,而是插入被替換標識信息,此標識信息為該被替換宏塊對應的替換宏塊在再壓縮圖片文件中的偏移信息和數(shù)據(jù)大小,替換宏塊在再壓縮圖片文件中的偏移位置s的計算方式是:
如果該替換宏塊在原圖片文件偏移位置為l,在原圖片文件中該替換宏塊之前所有被替換宏塊個數(shù)為n、總大小為x,被替換標識信息為固定大小d,則有:
s=1-x+n×d,
按此步驟順序處理原圖片數(shù)據(jù),最后得到再壓縮圖片數(shù)據(jù)。
如圖7所示,再壓縮數(shù)據(jù)解壓縮端主要包括以下步驟:
r1、順序掃描步驟p5所得的再壓縮圖片數(shù)據(jù),如識別到步驟p5在再壓縮數(shù)據(jù)中插入的被替換標識信息,執(zhí)行下一步,若未識別到被替換標識信息,轉(zhuǎn)到步驟r3,直到處理至再壓縮文件末尾;
r2、根據(jù)標識信息中的替換宏塊在再壓縮圖片文件中的偏移位置及大小信息得到替換宏塊數(shù)據(jù),追加復制到解壓縮圖片文件中;
r3、追加復制到解壓縮圖片文件中,如未掃描到再壓縮圖片文件末尾,轉(zhuǎn)到步驟r1。
實施例2
使用策略b和策略d分別對采用分塊為基礎(chǔ)的壓縮方法壓縮的視頻數(shù)據(jù)再壓縮及解壓縮
如圖8所示,數(shù)據(jù)再壓縮端主要包括以下步驟:
p1、識別已經(jīng)通過以分塊為基礎(chǔ)壓縮算法壓縮好的視頻數(shù)據(jù)的壓縮格式;
p2、按照步驟p1識別的壓縮格式對應解碼算法,解碼出每個視頻i幀的每個像素點yuv值;
p3、按照相應視頻數(shù)據(jù)壓縮算法的分塊大小對解碼后視頻i幀的yuv數(shù)據(jù)按照圖片像素點位置進行分塊處理;
p4、對解碼后的視頻i幀,選取一定標準對步驟p3所劃視頻i幀分塊數(shù)據(jù)進行相似性比較,得到臨時文件,該臨時文件為每一組相似數(shù)據(jù)塊保存一個相似塊組信息,相似塊組信息中按照視頻數(shù)據(jù)的壓縮算法中數(shù)據(jù)塊的先后順序,保存這一組相似塊在解碼后i視頻幀數(shù)據(jù)中的相對位置信息。
p5、按照所得的相似塊組信息,生成一個替換塊文件file1,其中保存每個組中首個數(shù)據(jù)塊在原始壓縮好的視頻數(shù)據(jù)中對應的壓縮數(shù)據(jù)及其在文件file1中起始偏移位置信息;
p6、按照所得的相似塊組信息,生成一個再壓縮文件file2,其中保存的數(shù)據(jù)為原始壓縮好的視頻數(shù)據(jù)中去掉所有存在于相似塊組中的塊壓縮數(shù)據(jù),并且在這些塊原數(shù)據(jù)位置插入替換信息,替換信息即為塊所在相似塊組中首個塊數(shù)據(jù)在file1中位置信息。最終所得file1和file2為對原始壓縮好的視頻文件的再壓縮后的文件。
如圖9所示,再壓縮數(shù)據(jù)解壓縮端主要包括以下步驟:
r1、順序掃描步驟p6所得的再壓縮視頻數(shù)據(jù)中的file2,如識別到步驟p6中在file2中插入的被替換標識信息,執(zhí)行下一步,若未識別到被替換標識信息,轉(zhuǎn)到步驟r3,直到處理至file2末尾;
r2、按照被替換標識信息,得到該位置宏塊的被替換宏塊在步驟p6所得file1中的位置及大小信息,從file1中獲得被替換宏塊數(shù)據(jù),追加復制到解壓縮文件中;
r3、追加復制file2中數(shù)據(jù)到解壓縮文件中,如掃描到文件file2末尾,轉(zhuǎn)到步驟r1。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。