專利名稱:一種基于rle原理的行程壓縮方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信息的無損壓縮、解壓處理領(lǐng)域,具體來說是一種應(yīng)用于高速印花系統(tǒng)上基于RLE原理的行程壓縮方法及裝置。
背景技術(shù):
信息數(shù)字化后,可以通過磁帶機、硬盤等設(shè)備進行數(shù)據(jù)的永久存儲,也可以通過遍
布全球的網(wǎng)絡(luò)系統(tǒng)進行數(shù)據(jù)傳輸。原始信息經(jīng)過數(shù)字量化后,其樣本總數(shù)是有限值,這樣一
段數(shù)字信息中,如果存在連續(xù)相同的樣本值,可以采用行程長度壓縮算法(RLE)進行壓縮。
經(jīng)過壓縮的數(shù)字信息占用更小的存儲空間和更少的網(wǎng)絡(luò)帶寬,因而被普遍采用。 目前,采用RLE原理,派生出許多具體的行程壓縮算法PCX行程壓縮算法、BI
RLE8、 BI RLE4、緊湊位壓縮算法等,這些壓縮算法,采用固定的規(guī)則,進行數(shù)字信息的編碼,
對于特定的數(shù)字序列,有可能出現(xiàn)壓縮后的數(shù)據(jù)量比壓縮前的數(shù)據(jù)量更大的情況。此外,還
有霍夫曼編碼、算術(shù)編碼、LZW等非RLE原理算法,這些算法或者復(fù)雜度高,或者需要得到所
有的樣本才能進行壓縮,不適用于實時傳輸系統(tǒng)場合。 隨著數(shù)碼印花機的飛速發(fā)展,需要有更大帶寬的前端裝置來提供高速的數(shù)據(jù)傳輸和處理,而采用數(shù)據(jù)壓縮是一種簡單可行的辦法。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于RLE原理的行程壓縮方法,使用該方法,提供可控的壓縮比,并適用于網(wǎng)絡(luò)實時傳輸。 —種基于RLE原理的行程壓縮方法,采用宏塊分割壓縮策略和壓縮閥值系數(shù),達到穩(wěn)定、高效、可控的目的;其中,
所述的數(shù)據(jù)壓縮過程為
a.將原始數(shù)據(jù)讀入緩存中; b.根據(jù)預(yù)先設(shè)定的宏塊大小,對緩存中的原始數(shù)據(jù)進行分割,得到一個宏塊數(shù)據(jù); c.使用BI RLE8算法對宏塊數(shù)據(jù)進行預(yù)壓縮; d.將宏塊數(shù)據(jù)經(jīng)預(yù)壓縮后的壓縮率與壓縮閥值系數(shù)進行比較,如果預(yù)壓縮后的壓縮率大于壓縮閥值系數(shù),就進行該宏塊數(shù)據(jù)壓縮,壓縮后輸出,否則使用原始宏塊直接輸出; e.返回步驟b,進行下一個宏塊數(shù)據(jù)的分割壓縮。
所述的數(shù)據(jù)解壓過程為 a.將所述的數(shù)據(jù)壓縮過程所輸出的宏塊數(shù)據(jù)接收入緩存中; b.對緩存中的接收到的宏塊數(shù)據(jù)是否被壓縮、壓縮數(shù)據(jù)大小、解壓后數(shù)據(jù)大小分別進行識別,得到宏塊基本信息; c.根據(jù)宏塊基本信息,進行解壓操作,如果宏塊沒有被壓縮,就直接輸出,如果宏塊有壓縮,就使用BI RLE8解壓算法進行解壓。 d.返回步驟b,進行下一個宏塊數(shù)據(jù)的解壓,直至完成所有宏塊處理。 本發(fā)明還提供了一種基于RLE原理的行程壓縮方法運行裝置,包括數(shù)據(jù)壓縮端、
數(shù)據(jù)解壓端以及用于從數(shù)據(jù)壓縮端向數(shù)據(jù)解壓端傳送數(shù)據(jù)的傳輸裝置, 所述的數(shù)據(jù)壓縮端包括 原始數(shù)據(jù)讀取接口 ,用于選擇存放于PC機硬盤上的原始文件,并把所選文件的內(nèi)容存放至原始數(shù)據(jù)緩存器; 原始數(shù)據(jù)緩存器,用于存放壓縮前的原始數(shù)據(jù); 宏塊分割器,提供宏塊大小設(shè)定接口,并使用設(shè)定的宏塊大小值對原始數(shù)據(jù)緩存器中的數(shù)據(jù)進行分割控制; 宏塊預(yù)壓縮器,對原始宏塊數(shù)據(jù)進行預(yù)壓縮,預(yù)壓縮指僅進行壓縮算法處理,輸出壓縮后宏塊大小,但不進行壓縮數(shù)據(jù)輸出; 壓縮閥值系數(shù)器,提供壓縮閥值系數(shù)設(shè)定接口 ,并提供壓縮閥值系數(shù)至宏塊壓縮器; 宏塊壓縮器,根據(jù)宏塊預(yù)處理器的輸出結(jié)果和壓縮閥值系數(shù)器的輸出結(jié)果進行壓縮判定,宏塊壓縮器根據(jù)壓縮判定結(jié)果,產(chǎn)生兩種輸出,第一種輸出為,宏塊頭+不壓縮宏塊,第二種輸出為宏塊頭+壓縮宏塊,宏塊壓縮器采用的RLE算法為BI RLE8算法;
所述的數(shù)據(jù)解壓端包括 壓縮數(shù)據(jù)接收器,用于從傳輸裝置接收壓縮宏塊數(shù)據(jù),并存放至壓縮數(shù)據(jù)緩存器; 壓縮數(shù)據(jù)緩存器,用于存放待解壓的數(shù)據(jù); 宏塊信息提取器,提取宏塊頭中的信息,送至宏塊解壓器; 宏塊解壓器,根據(jù)宏塊信息提取器提供的宏塊信息進行解壓處理,如果宏塊信息指示該宏塊沒有被壓縮,就直接輸出宏塊數(shù)據(jù)至輸出原始數(shù)據(jù)緩存,如果宏塊信息指示該宏塊進行了壓縮,就采用BI RLE8算法進行解壓縮處理,解壓縮需要循環(huán)進行直至解壓完成整個壓縮宏塊。 輸出原始數(shù)據(jù)緩存器,存放解壓后的原始數(shù)據(jù),該原始數(shù)據(jù)即為壓縮系統(tǒng)上的原始數(shù)據(jù)。 本發(fā)明在進行數(shù)據(jù)壓縮前,首先將大塊數(shù)據(jù)分割為一個一個宏塊,宏塊的大小可以通過宏塊分割器提供的設(shè)定接口進行設(shè)定,使用宏塊的方式,使得塊與塊之間沒有依賴,部分錯誤不會導(dǎo)致后續(xù)數(shù)據(jù)一直出錯,提高了系統(tǒng)的可靠性;使用宏塊的方式,大塊數(shù)據(jù)被分割為大小可控的單元,便于傳輸系統(tǒng)進行數(shù)據(jù)傳輸,提供實時傳輸、實時處理特性。
本發(fā)明在對宏塊數(shù)據(jù)進行壓縮時,引入預(yù)壓縮策略,預(yù)壓縮指僅進行壓縮算法處理,輸出壓縮后宏塊大小,但不進行壓縮數(shù)據(jù)輸出,通過預(yù)壓縮,可以得到預(yù)定的宏塊壓縮大小,通過與壓縮閥值系數(shù)的比較,可以得到可控的數(shù)據(jù)壓縮率。 結(jié)合具體技術(shù)領(lǐng)域,本發(fā)明還提供了一種數(shù)碼印花機圖像數(shù)據(jù)的基于RLE原理的行程壓縮方法,包括數(shù)據(jù)壓縮和數(shù)據(jù)解壓兩個過程,
所述的數(shù)據(jù)壓縮過程為 a.將數(shù)碼印花機的待打印圖像數(shù)據(jù)讀入緩存中;
b.根據(jù)預(yù)先設(shè)定的宏塊大小,對緩存中的待打印圖像數(shù)據(jù)進行分割,得到一個宏塊數(shù)據(jù); c.使用BI RLE8算法對宏塊數(shù)據(jù)進行預(yù)壓縮; d.將宏塊數(shù)據(jù)經(jīng)預(yù)壓縮后的壓縮率與壓縮閥值系數(shù)進行比較,如果預(yù)壓縮后的壓縮率大于壓縮閥值系數(shù),就進行該宏塊數(shù)據(jù)進行壓縮后輸出,否則使用原始宏塊直接輸出; e.返回步驟b,進行下一個宏塊數(shù)據(jù)的分割壓縮。
所述的數(shù)據(jù)解壓過程為 a.將所述的數(shù)據(jù)壓縮過程所輸出的宏塊數(shù)據(jù)接收入緩存中; b.對緩存中的接收到的宏塊數(shù)據(jù)是否被壓縮、壓縮數(shù)據(jù)大小、解壓后數(shù)據(jù)大小分別進行識別,得到宏塊基本信息; c.根據(jù)宏塊基本信息,進行解壓操作,如果宏塊沒有被壓縮,就直接輸出,如果宏塊有壓縮,就使用BI RLE8解壓算法進行解壓。 d.返回步驟b,進行下一個宏塊數(shù)據(jù)的解壓,直至完成所有宏塊處理。 相對于傳統(tǒng)的RLE壓縮算法,本發(fā)明使用宏塊的策略,將大塊分割為小塊,并確保
小塊之間無耦合,容錯性能好,系統(tǒng)更穩(wěn)定;使用宏塊策略,大塊數(shù)據(jù)分割為可預(yù)測大小的
宏塊,便于傳輸系統(tǒng)進行傳輸;宏塊內(nèi)采用閥值系數(shù)方法,動態(tài)調(diào)整壓縮閥值,處理更靈活。
圖1為本發(fā)明行程壓縮方法運行裝置的結(jié)構(gòu)示意框 圖2為本發(fā)明宏塊分割器和壓縮閥值系數(shù)器的結(jié)構(gòu)示意框 圖3為本發(fā)明數(shù)據(jù)壓縮過程的示意 圖4為本發(fā)明數(shù)據(jù)解壓過程的示意圖。
具體實施例方式
如圖1所示, 一種基于RLE原理的行程壓縮裝置,包括 原始數(shù)據(jù)讀取接口 lll,用于選擇存放于PC機硬盤上的原始文件,并把所選文件的內(nèi)容存放至原始數(shù)據(jù)緩存器; 原始數(shù)據(jù)緩存器113,用于存放壓縮前的原始數(shù)據(jù); 宏塊分割器112,提供宏塊大小設(shè)定接口,并使用設(shè)定的宏塊大小值對原始數(shù)據(jù)緩存器中的數(shù)據(jù)進行分割控制; 宏塊預(yù)壓縮器114,對原始宏塊數(shù)據(jù)進行預(yù)壓縮,預(yù)壓縮指僅進行壓縮算法處理,輸出壓縮后宏塊大小,但不進行壓縮數(shù)據(jù)輸出; 壓縮閥值系數(shù)器115,提供壓縮閥值系數(shù)設(shè)定接口,并提供壓縮閥值系數(shù)至宏塊壓縮器; 宏塊壓縮器116,根據(jù)宏塊預(yù)處理器的輸出結(jié)果和壓縮閥值系數(shù)器的輸出結(jié)果進行壓縮判定,宏塊壓縮器根據(jù)壓縮判定結(jié)果,產(chǎn)生兩種輸出,第一種輸出為,宏塊頭+不壓縮宏塊,第二種輸出為宏塊頭+壓縮宏塊,宏塊壓縮器采用的RLE算法為BI RLE8算法;
傳輸裝置120,將壓縮宏塊數(shù)據(jù)從數(shù)據(jù)壓縮端110傳送至數(shù)據(jù)解碼端130 ;
壓縮數(shù)據(jù)接收器131,用于從傳輸裝置接收壓縮宏塊數(shù)據(jù),并存放至壓縮數(shù)據(jù)緩存器; 壓縮數(shù)據(jù)緩存器132,用于存放待解壓的數(shù)據(jù); 宏塊信息提取器133,提取宏塊頭中的信息,送至宏塊解壓器; 宏塊解壓器134,根據(jù)宏塊信息提取器提供的宏塊信息進行解壓處理,如果宏塊信息指示該宏塊沒有被壓縮,就直接輸出宏塊數(shù)據(jù)至輸出原始數(shù)據(jù)緩存,如果宏塊信息指示該宏塊進行了壓縮,就采用BI RLE8算法進行解壓縮處理,解壓縮需要循環(huán)進行直至解壓完成整個壓縮宏塊。 輸出原始數(shù)據(jù)緩存器135,存放解壓后的原始數(shù)據(jù),該原始數(shù)據(jù)即為壓縮系統(tǒng)上的原始數(shù)據(jù)。 宏塊分割器210在初始化時自行設(shè)定默認的宏塊大小參數(shù),如圖2所示,在運行過程中,外部設(shè)備可以通過其設(shè)定接口 211,設(shè)置宏塊大小參數(shù),宏塊分割器在接收到設(shè)定請求后,首先判定請求值是否合法,如果合法,參數(shù)被保存在宏塊大小參數(shù)保存區(qū)212,如果不合法,返回設(shè)置錯誤結(jié)果給外部設(shè)備,并保持當(dāng)前的宏塊大小參數(shù)。新設(shè)定的宏塊大小參數(shù),通過控制接口 213輸出,在宏塊壓縮器下一次取宏塊數(shù)據(jù)時生效。 壓縮閥值系數(shù)器220在初始化時自行設(shè)定默認的壓縮閥值系數(shù),如圖2所示,在運行過程中,外部設(shè)備可以通過其設(shè)定接口 221,設(shè)置壓縮閥值系數(shù),壓縮閥值系數(shù)器在接收到設(shè)定請求后,首先判定請求值是否合法,如果合法,系數(shù)被保存在壓縮閥值參數(shù)保存區(qū)222,如果不合法,返回設(shè)置錯誤結(jié)果給外部設(shè)備,并保持當(dāng)前的壓縮閥值參數(shù)。新設(shè)定的壓縮閥值參數(shù),通過控制接口 223輸出,在宏塊壓縮器下一次比較時生效。
如圖3所示,在數(shù)碼印花機的工作過程中,待打印的圖像數(shù)據(jù)一般是位于計算機中,需要通過網(wǎng)絡(luò)或數(shù)據(jù)線傳輸至數(shù)碼印花機,本發(fā)明行程壓縮方法就是在計算機中完成數(shù)據(jù)壓縮,再傳輸?shù)綌?shù)碼印花機中后進行數(shù)據(jù)解壓。 解壓的待打印圖像數(shù)據(jù)再根據(jù)需要進行旋轉(zhuǎn)等處理后,發(fā)送至數(shù)碼印花機噴頭打印出圖像。 進行數(shù)據(jù)壓縮時,從計算機硬盤中將原始的待打印圖像數(shù)據(jù)讀入緩存,根據(jù)預(yù)先設(shè)置好宏塊的大小,對緩存中的待打印圖像數(shù)據(jù)進行分割,分割得到若干個宏塊數(shù)據(jù)。
對宏塊數(shù)據(jù)執(zhí)行BI RLE8宏塊預(yù)壓縮,壓縮過程中,不產(chǎn)生實際數(shù)據(jù)的輸出,只記錄隨著壓縮算法的進行,當(dāng)前壓縮后將會得到的宏塊大小。 預(yù)壓縮完成后,根據(jù)宏塊實際大小和宏塊壓縮后大小算出壓縮率結(jié)果,將壓縮率
結(jié)果和預(yù)先設(shè)定的壓縮閥值系數(shù)進行比較,根據(jù)比較結(jié)果進行相應(yīng)處理。 如果預(yù)壓縮后的壓縮率結(jié)果大于壓縮閥值系數(shù),就進行宏塊壓縮,輸出為宏塊頭+
壓縮宏塊,壓縮使用BI RLE8算法循環(huán)進行,直到將整個宏塊數(shù)據(jù)壓縮完成,壓縮完成后傳
輸?shù)綌?shù)碼印花機中。 如果預(yù)壓縮后的壓縮率結(jié)果小于等于壓縮閥值系數(shù),就不進行宏塊壓縮,直接輸出為到數(shù)碼印花機中,輸出形式為宏塊頭+不壓縮宏塊。 如圖4所示,數(shù)碼印花機端接收到計算機發(fā)送的數(shù)據(jù)后進行數(shù)據(jù)解壓,先提取數(shù)
據(jù)壓縮時寫入壓縮數(shù)據(jù)中的宏塊頭,解析宏塊頭信息,識別出其是否經(jīng)過壓縮。 對于不壓縮數(shù)據(jù),去除宏塊頭信息,得到恢復(fù)后的待打印圖像數(shù)據(jù)。
7
對于壓縮數(shù)據(jù),宏塊解碼器執(zhí)行BI RLE8解壓算法,解壓數(shù)據(jù),得到經(jīng)過解壓后的 待打印圖像數(shù)據(jù)。 之后再根據(jù)需要對待打印圖像數(shù)據(jù)進行旋轉(zhuǎn)等處理后,發(fā)送至數(shù)碼印花機噴頭打 印出圖像。
權(quán)利要求
一種基于RLE原理的行程壓縮方法,包括數(shù)據(jù)壓縮和數(shù)據(jù)解壓兩個過程,其特征在于,所述的數(shù)據(jù)壓縮過程為a.將原始數(shù)據(jù)讀入緩存中;b.根據(jù)預(yù)先設(shè)定的宏塊大小,對緩存中的原始數(shù)據(jù)進行分割,得到一個宏塊數(shù)據(jù);c.使用BI_RLE8算法對宏塊數(shù)據(jù)進行預(yù)壓縮;d.將宏塊數(shù)據(jù)經(jīng)預(yù)壓縮后的壓縮率與壓縮閥值系數(shù)進行比較,如果預(yù)壓縮后的壓縮率大于壓縮閥值系數(shù),就進行該宏塊數(shù)據(jù)壓縮,壓縮后輸出,否則使用原始宏塊直接輸出;e.返回步驟b,進行下一個宏塊數(shù)據(jù)的分割壓縮。所述的數(shù)據(jù)解壓過程為a.將所述的數(shù)據(jù)壓縮過程所輸出的宏塊數(shù)據(jù)接收入緩存中;b.對緩存中的接收到的宏塊數(shù)據(jù)是否被壓縮、壓縮數(shù)據(jù)大小、解壓后數(shù)據(jù)大小分別進行識別,得到宏塊基本信息;c.根據(jù)宏塊基本信息,進行解壓操作,如果宏塊沒有被壓縮,就直接輸出,如果宏塊有壓縮,就使用BI_RLE8解壓算法進行解壓。d.返回步驟b,進行下一個宏塊數(shù)據(jù)的解壓,直至完成所有宏塊處理。
2. —種基于RLE原理的行程壓縮方法運行裝置,包括數(shù)據(jù)壓縮端(110)、數(shù)據(jù)解壓端(130)以及用于從數(shù)據(jù)壓縮端(110)向數(shù)據(jù)解壓端(130)傳送數(shù)據(jù)的傳輸裝置(120),其特征在于,所述的數(shù)據(jù)壓縮端(110)包括原始數(shù)據(jù)讀取接口 (lll),用于選擇存放于PC機硬盤上的原始文件;原始數(shù)據(jù)緩存器(113),用于存放原始數(shù)據(jù)讀取接口 (111)所選的原始文件;宏塊分割器(112),提供宏塊大小設(shè)定接口,并使用設(shè)定的宏塊大小值對原始數(shù)據(jù)緩存器(113)中的原始文件的數(shù)據(jù)進行分割得到若干宏塊數(shù)據(jù);宏塊預(yù)壓縮器(114),采用BLRLE8算法對原始數(shù)據(jù)緩存器(113)中的所有的宏塊數(shù)據(jù)分別進行預(yù)壓縮;壓縮閥值系數(shù)器(115),提供壓縮閥值系數(shù)設(shè)定接口,并提供壓縮閥值系數(shù);宏塊壓縮器(116),根據(jù)宏塊預(yù)處理器(114)的輸出結(jié)果和壓縮閥值系數(shù)器(115)的輸出結(jié)果進行壓縮判定,如果預(yù)壓縮后的壓縮率大于壓縮閥值系數(shù),就進行該宏塊數(shù)據(jù)壓縮,壓縮后輸出,否則使用原始宏塊直接輸出;所述的數(shù)據(jù)解壓端(130)包括壓縮數(shù)據(jù)接收器(131),用于從傳輸裝置(120)接收數(shù)據(jù)壓縮端(110)輸出的待解壓的宏塊數(shù)據(jù);壓縮數(shù)據(jù)緩存器(132),用于存放壓縮數(shù)據(jù)接收器(131)接收的待解壓的宏塊數(shù)據(jù);宏塊信息提取器(133),提取所述的待解壓的宏塊數(shù)據(jù)的宏塊信息;宏塊解壓器(134),根據(jù)宏塊信息提取器(133)提供的宏塊信息對壓縮數(shù)據(jù)緩存器(132)中的待解壓的宏塊數(shù)據(jù)采用BI_RLE8算法進行解壓,如果宏塊信息指示該宏塊沒有被壓縮,就直接輸出該宏塊數(shù)據(jù),如果宏塊信息指示該宏塊進行了壓縮,就進行解壓縮處理后輸出;輸出原始數(shù)據(jù)緩存器(135),存放宏塊解壓器(134)輸出的數(shù)據(jù)。
3. —種數(shù)碼印花機圖像數(shù)據(jù)的基于RLE原理的行程壓縮方法,包括數(shù)據(jù)壓縮和數(shù)據(jù)解壓兩個過程,其特征在于,所述的數(shù)據(jù)壓縮過程為a. 將數(shù)碼印花機的待打印圖像數(shù)據(jù)讀入緩存中;b. 根據(jù)預(yù)先設(shè)定的宏塊大小,對緩存中的待打印圖像數(shù)據(jù)進行分割,得到一個宏塊數(shù)據(jù);c. 使用BI_RLE8算法對宏塊數(shù)據(jù)進行預(yù)壓縮;d. 將宏塊數(shù)據(jù)經(jīng)預(yù)壓縮后的壓縮率與壓縮閥值系數(shù)進行比較,如果預(yù)壓縮后的壓縮率大于壓縮閥值系數(shù),就進行該宏塊數(shù)據(jù)進行壓縮后輸出,否則使用原始宏塊直接輸出;e. 返回步驟b,進行下一個宏塊數(shù)據(jù)的分割壓縮。所述的數(shù)據(jù)解壓過程為a. 將所述的數(shù)據(jù)壓縮過程所輸出的宏塊數(shù)據(jù)接收入緩存中;b. 對緩存中的接收到的宏塊數(shù)據(jù)是否被壓縮、壓縮數(shù)據(jù)大小、解壓后數(shù)據(jù)大小分別進行識別,得到宏塊基本信息;c. 根據(jù)宏塊基本信息,進行解壓操作,如果宏塊沒有被壓縮,就直接輸出,如果宏塊有壓縮,就使用BI_RLE8解壓算法進行解壓。d. 返回步驟b,進行下一個宏塊數(shù)據(jù)的解壓,直至完成所有宏塊處理。
全文摘要
本發(fā)明公開了一種應(yīng)用于高速印花系統(tǒng)上基于RLE原理的行程壓縮方法,該壓縮方法以RLE算法為基礎(chǔ),增加了宏塊分割策略和壓縮閥值系數(shù),達到了運行穩(wěn)定、實時傳輸、壓縮可控的目的。采用宏塊分割壓縮策略,去除了數(shù)據(jù)間的耦合性,即使在傳輸過程中發(fā)生錯誤,也只影響當(dāng)前宏塊,容錯性能好,運行更穩(wěn)定;宏塊大小值可以使用宏塊控制器進行設(shè)定,用以適應(yīng)不同的傳輸環(huán)境,便于實時傳輸處理;對于宏塊內(nèi)編碼,本發(fā)明采用壓縮閥值系數(shù)確保算法壓縮比,實現(xiàn)可控的壓縮率;本發(fā)明還公開了一種基于RLE原理的行程壓縮算法運行裝置,該裝置作為本發(fā)明壓縮方法運行環(huán)境,很好的運用了宏塊分割策略和壓縮閥值系數(shù)。
文檔編號G11B20/10GK101777366SQ20101003958
公開日2010年7月14日 申請日期2010年1月7日 優(yōu)先權(quán)日2010年1月7日
發(fā)明者蔣榮欣, 陳耀武 申請人:浙江大學(xué)