數(shù)據(jù)編碼器、數(shù)據(jù)解碼器及編解碼方法
【技術領域】
[0001] 本發(fā)明設及數(shù)據(jù)編碼器W及相應的數(shù)據(jù)編碼方法。本發(fā)明還設及數(shù)據(jù)解碼器W及 相應的對編碼數(shù)據(jù)進行解碼的方法。進一步,本發(fā)明還設及記錄在機器可讀數(shù)據(jù)存儲介質 上的軟件產(chǎn)品,其中,軟件產(chǎn)品在計算硬件上執(zhí)行,實現(xiàn)上述方法。數(shù)據(jù)編碼器可W用作數(shù) 據(jù)通訊系統(tǒng)、數(shù)據(jù)提供系統(tǒng)W及電子消費產(chǎn)品的部件,解碼器也是類似的情況。此外,本發(fā) 明還設及編解碼器,所述編解碼器包括至少一個上述的數(shù)據(jù)編碼器,并包括至少一個上述 的數(shù)據(jù)解碼器。
【背景技術】
[0002] 當今社會,人們越來越多地使用數(shù)據(jù),因而需要一種簡單但有效的方法W提供無 損數(shù)據(jù)壓縮,W及相應的簡單的方法來提供無損的數(shù)據(jù)解壓縮。已知的傳統(tǒng)的用于壓縮連 續(xù)數(shù)據(jù)的行程長度編碼方法是唯一真正有效的壓縮連續(xù)數(shù)據(jù)的方法,但在數(shù)據(jù)通訊系統(tǒng)內(nèi) 連續(xù)數(shù)據(jù)是不很常見的,數(shù)據(jù)通訊系統(tǒng)通常執(zhí)行分組化的數(shù)據(jù)交換。在數(shù)據(jù)通訊系統(tǒng),例如 在互聯(lián)網(wǎng)中,分組化的數(shù)據(jù)導致許多小的數(shù)據(jù)包的傳送。不管怎樣,為本領域技術人員所熟 知的是,相比于其它的已知的壓縮技術,行程長度編碼(RL巧能夠提供較好的數(shù)據(jù)壓縮率。
[0003] 行程長度編碼的所有變化形式都使用計數(shù)器和字節(jié)的字符,對它們進行編碼。當 實現(xiàn)運些方法時,為具有該字符的每個行程設定計數(shù)器。在運些方法中,針對如何呈現(xiàn)字符 的計數(shù)器,還存在幾種變形,但是,運些總是被編碼進具有字節(jié)的字符的同樣的輸出數(shù)據(jù)。 其結果是,人們發(fā)現(xiàn),已知的常用的RLE方法存在數(shù)據(jù)壓縮率不夠好的情況。
[0004] 已知的現(xiàn)有技術被列舉在表1中。
[0005] 表1、已知的現(xiàn)有技術
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的之一是,提供一種改進的方法,對輸入數(shù)據(jù)進行壓縮,W生成相應的 壓縮輸出數(shù)據(jù)。
[0009] 本發(fā)明的目的還在于,提供一種改進的方法,對輸入數(shù)據(jù)進行編碼,W生成相應的 編碼輸出數(shù)據(jù)。
[0010] 本發(fā)明的目的還在于,提供一種改進的方法,對接收壓縮輸入數(shù)據(jù)進行數(shù)據(jù)解壓 縮,W生成相應的解壓縮輸出數(shù)據(jù)。
[0011] 本發(fā)明的目的還在于,提供一種改進的方法,對輸入數(shù)據(jù)進行解碼,W生成相應的 解碼輸出數(shù)據(jù)。
[0012] 本發(fā)明的目的還在于,提供編碼器、解碼器W及編解碼器,可操作W執(zhí)行上述的改 進的方法。
[0013] 根據(jù)本發(fā)明的第一方面,提供一種編碼器,用于對輸入數(shù)據(jù)值1)進行編碼W生成 相應的編碼輸出數(shù)據(jù)值2),其中,編碼器包括數(shù)據(jù)處理裝置,用于生成輸入數(shù)據(jù)值1)的行 程長度編碼(Run-lengthencoded,RLE)的呈現(xiàn),其特征在于,編碼器可操作用于把行程長 度編碼(RL巧呈現(xiàn)分割成多個部分(A,B),其中至少一個部分關聯(lián)于原始符號,且至少另一 個部分關聯(lián)于計數(shù)器,計數(shù)器代表原始符號的出現(xiàn)(occurrence);編碼器可操作用于對多 個部分(A,B)分別單獨地進行編碼,W生成編碼輸出數(shù)據(jù)值2)。
[0014] 本發(fā)明的優(yōu)點在于,通過單獨地處理多個部分(A,B),與已知類型的編碼器相比, 它提供更高水平的大體上無損的壓縮。
[0015] 術語"出現(xiàn)的呈現(xiàn)"(representation ofOC州rrence)應該廣義地理解,不局限于 僅僅是直接計數(shù)一個數(shù)據(jù)流中多個互相類似的相鄰的字符的計數(shù)器。
[0016] 當編碼器工作的時候,原始符號包括至少下列之一:字符、字母元素、數(shù)字、比特、 字節(jié)、字。
[0017] 編碼器操作W生成相對于輸入數(shù)據(jù)值1)W壓縮格式存在的編碼輸出數(shù)據(jù)值2)。
[0018]編碼器操作用于對多個部分(A,B)進行編碼W生成編碼輸出數(shù)據(jù)值2),它采用至 少下列之一:可變長度編碼(VLC)、哈夫曼編碼、戈洛姆編碼、算術編碼、距離編碼、德爾塔 編碼、ODelta編碼、Lempel-Ziv編碼、BWT編碼。當編碼器是處于對編碼輸出數(shù)據(jù)值。中 的部分(A和/或B)進行賭編碼的進程中時,編碼器操作用于對多個部分(A,B)的至少之 一進行編碼,它采用賭編碼方法,所述的賭編碼方法能夠使用一個或多個轉義碼或者連續(xù) 統(tǒng)值(continuumvalue)符號對多個部分(A和/或B)進行編碼。
[0019] 編碼器操作用于把一個或多個標記包括于編碼輸出數(shù)據(jù)值2)中,用W指示多個 部分(A,B)中的每個所對應的編碼數(shù)據(jù)的出現(xiàn)。
[0020] 編碼器被設置,使得行程編碼(RLE)的呈現(xiàn)W大體上無損的方式被實現(xiàn)。
[0021] 根據(jù)本發(fā)明的第二方面,提供一種編碼方法,用于在編碼器中對輸入數(shù)據(jù)值1)進 行編碼W生成相應的編碼輸出數(shù)據(jù)值2),其中,所述方法包括,使用數(shù)據(jù)處理裝置生成輸入 數(shù)據(jù)值1)的行程長度編碼(Run-lengthencoded,RL巧的呈現(xiàn),其特征在于,所述方法還包 括:
[0022] (C)使用編碼器把行程長度編碼(RL巧呈現(xiàn)分成多個部分(A,B),其中至少一 個部分關聯(lián)于原始符號,且至少另一個部分關聯(lián)于計數(shù)器,計數(shù)器代表原始符號的出現(xiàn) (occurrence);
[002引 (d)使用編碼器對多個部分(A,B)分別地進行編碼,W生成編碼輸出數(shù)據(jù)值。。 [0024] 術語"出現(xiàn)的呈現(xiàn)"(representationofOC州rrence)應該廣義地理解,不局限于 僅僅是直接計數(shù)一個數(shù)據(jù)流中多個互相類似的相鄰的字符的計數(shù)器。
[00巧]在所述方法中,原始符號包括至少下列之一:字符、字母元素、數(shù)字、比特、字節(jié)、 字。
[0026] 所述方法包括,使用編碼器生成相對于輸入數(shù)據(jù)值I)W壓縮格式存在的編碼輸 出數(shù)據(jù)值2)。
[0027] 所述方法包括,使用編碼器對多個部分(A,B)進行編碼W生成編碼輸出數(shù)據(jù) 值2),它采用至少下列之一:可變長度編碼(VLC)、哈夫曼編碼、戈洛姆編碼、算術編碼、距 罔編碼、德爾塔編碼、ODelta編碼、Lempel-Ziv編碼、BWT編碼。所述方法還包括,當編碼器 是處于對編碼輸出數(shù)據(jù)值2)中的部分(A和/或B)進行賭編碼的進程中時,使用編碼器對 多個部分(A,B)的至少之一進行編碼,它采用賭編碼方法,所述的賭編碼方法能夠使用一 個或多個轉義碼或者一個或多個連續(xù)統(tǒng)值(continuumvalue)符號對多個部分(A和/或 B)進行編碼。
[0028] 所述方法包括,使用編碼器把一個或多個標記包括于編碼輸出數(shù)據(jù)值2)中,用W 指示多個部分(A,B)中的每個所對應的編碼數(shù)據(jù)的出現(xiàn)。
[0029] 所述方法包括,W大體上無損的方式實現(xiàn)行程編碼(RLE)的呈現(xiàn)。
[0030] 根據(jù)本發(fā)明的第=方面,提供解碼器,用于對編碼輸入數(shù)據(jù)值2)進行解碼,W生 成相應的解碼輸出數(shù)據(jù)值3),其中,解碼器包括一個數(shù)據(jù)處理裝置,用于將編碼輸入數(shù)據(jù) 值2)解碼成為多個分立的部分(A,B),其中,至少一個部分關聯(lián)于原始符號,至少另一個部 分關聯(lián)于代表原始符號的出現(xiàn)的計數(shù)器;數(shù)據(jù)處理裝置用于合并多個部分(A,B)在一起W 生成合并數(shù)據(jù),用于通過行程長度解碼進程來解碼W生成解碼輸出數(shù)據(jù)值3)。
[0031] 術語"出現(xiàn)的呈現(xiàn)"(representationofOC州rrence)應該廣義地理解,不局限于 僅僅是直接計數(shù)一個數(shù)據(jù)流中多個互相類似的相鄰的字符的計數(shù)器。
[0032] 當解碼器工作的時候,原始符號包括至少下列之一:字符、字母元素、數(shù)字、比特、 字節(jié)、字。
[0033] 解碼器操作W生成相對于編碼輸入數(shù)據(jù)值2)W解壓縮格式存在的解碼輸出數(shù)據(jù) 值3)。
[0034]解碼器操作用于對編碼輸入數(shù)據(jù)值2)進行解碼W生成多個部分(A,B),它采用至 少下列之一:逆可變長度編碼(VLC)、逆哈夫曼編碼、逆戈洛姆編碼、逆算術編碼(逆距離編 碼)、逆德爾塔編碼、逆ODelta編碼、逆Lempel-Ziv編碼、逆BWT編碼。當解碼器是處于生 成部分(A,B)的進程中時,解碼器操作用于對多個部分(A,B)的至少之一進行解碼,它采用 賭解碼方法,所述的賭解碼方法能夠從編碼輸入數(shù)據(jù)值2)中解碼一個或多個轉義碼或者 一個或多個連續(xù)統(tǒng)值(continuumvalue)符號。
[0035] 解碼器操作用于識別編碼輸入數(shù)據(jù)值2)中的一個或多個標記,所述標記用于確 定多個部分(A,B)中的每個所對應的編碼數(shù)據(jù)的出現(xiàn)。
[0036] 解碼器被設置,使得行程長度解碼進程W大體無損的方式被實現(xiàn)。
[0037] 根據(jù)本發(fā)明的第四方面,提供