4)的一個(gè)或多個(gè)部分,其中所述數(shù)據(jù)處理裝置用于將差分和/ 或總和形式的編碼應(yīng)用于所述一個(gè)或多個(gè)部分的一個(gè)或多個(gè)相應(yīng)的已編碼序列,其中所述 一個(gè)或多個(gè)已編碼序列受到一個(gè)圍繞最大值的回繞和/或一個(gè)圍繞最小值的回繞處理,生 成已解碼輸出數(shù)據(jù)(D5)。
[0046] 可選地,所述解碼器(20)用于解碼包括一個(gè)或多個(gè)Ι-bit值的所述已編碼數(shù)據(jù) (D2、D3或D4),所述解碼器(20)用于以一位一位的方式解碼所述已編碼數(shù)據(jù)(D2、D3或 D4) 〇
[0047] 可選地,所述數(shù)據(jù)處理裝置用于接收一個(gè)或多個(gè)偏移值、最小值或最大值,用于所 述一個(gè)或多個(gè)已編碼序列,以生成所述已解碼輸出數(shù)據(jù)(D5)。進(jìn)一步可選地,所述接收的數(shù) 據(jù)為偏移值、最小值和/或最大值。進(jìn)一步可選地,所述一個(gè)或多個(gè)偏移值有值。
[0048] 可選地,所述一個(gè)或多個(gè)相應(yīng)的已編碼序列代表在已編碼成所述已編碼數(shù)據(jù)(D2 或D3)的多個(gè)值中的變化。
[0049] 可選地,所述解碼器用于使用一個(gè)回繞值(wrapValue),其中所述回繞值是最大 值(highValue)-最小值(lowValue)+1。當(dāng)生成所述已解碼輸出數(shù)據(jù)(D5)時(shí),這樣的回繞 值被優(yōu)選地使用,以避免產(chǎn)生比所述最小值(lowValue)更小的值、負(fù)值、或比最大值(high Value)更大的值。
[0050] 可選地,所述數(shù)據(jù)處理裝置用于將至少以下一種的逆運(yùn)算應(yīng)用于被處理的數(shù)據(jù): 行程長(zhǎng)度編碼(RLE)、SRLE、熵修正(EM)、可變長(zhǎng)度編碼(VLC)、哈夫曼編碼、算術(shù)編碼、距離 編碼。
[0051] 可選地,在所述解碼器中,所述數(shù)據(jù)處理裝置用于在由此被解碼的一系列數(shù)據(jù)中 假定一個(gè)第一個(gè)預(yù)測(cè)值的默認(rèn)值。進(jìn)一步可選地,所述默認(rèn)值有值。然而,所述預(yù)測(cè)值 可以為:最小值(lowValue)、最大值(highValue)、(最大值(highValue) +最小值(low Value)+l)/2〇
[0052] 可選地,在所述解碼器中,所述處理裝置通過(guò)使用計(jì)算機(jī)硬件實(shí)現(xiàn),所述計(jì)算機(jī)硬 件用于執(zhí)行一個(gè)或多個(gè)記錄于非瞬時(shí)機(jī)器可讀的數(shù)據(jù)存儲(chǔ)介質(zhì)上的軟件產(chǎn)品。
[0053] 根據(jù)第四個(gè)方面,提供了一種使用解碼器(20)解碼已編碼數(shù)據(jù)(D2、D3或D4)以 生成相應(yīng)的已解碼輸出數(shù)據(jù)(D5)的方法,其特征在于,所述方法包括:
[0054] 使用數(shù)據(jù)處理裝置來(lái)處理所述已編碼數(shù)據(jù)(D2、D3或D4)的一個(gè)或多個(gè)部分,其中 所述數(shù)據(jù)處理裝置用于將差分和/或總和形式的編碼應(yīng)用于所述一個(gè)或多個(gè)部分的一個(gè) 或多個(gè)相應(yīng)的已編碼序列,其中所述一個(gè)或多個(gè)已編碼序列受到一個(gè)圍繞最大值的回繞和 /或一個(gè)圍繞最小值的回繞處理,來(lái)生成所述已解碼輸出數(shù)據(jù)(D5)。
[0055] 可選地,所述方法包括解碼包括一個(gè)或多個(gè)1-bit值的所述已編碼數(shù)據(jù)(D2、D3或 D4),并使用所述解碼器(20)以一位一位的方式解碼所述已編碼的數(shù)據(jù)(D2、D3或D4)。進(jìn) 一步可選地,所述一個(gè)或多個(gè)偏移值有"0"值。
[0056] 可選地,所述方法包括使用所述數(shù)據(jù)處理裝置來(lái)接收一個(gè)或多個(gè)偏移值、最小值 和最大值,用于所述一個(gè)或多個(gè)已編碼序列,以生成所述已解碼輸出數(shù)據(jù)(D5)。
[0057] 可選地,在所述方法中,所述一個(gè)或多個(gè)相應(yīng)的已編碼序列代表在已編碼成所述 已編碼的數(shù)據(jù)(D2、D3或D4)的多個(gè)值中的變化。
[0058] 可選地,所述方法包括使用一個(gè)圍繞最大值的回繞或圍繞一個(gè)最小值的回繞,以 避免在生成所述已解碼輸出數(shù)據(jù)(D5)時(shí)產(chǎn)生負(fù)值或太大的值。
[0059] 可選地,所述數(shù)據(jù)處理裝置用于將以下至少一種的逆運(yùn)算應(yīng)用于被處理數(shù)據(jù):行 程長(zhǎng)度編碼(RLE)、SRLE、熵修正(EM)、可變長(zhǎng)度編碼(VLC)、哈夫曼編碼、算術(shù)編碼、距離編 碼。
[0060] 可選地,在所述方法中,所述數(shù)據(jù)處理裝置用于在由此被編碼的一系列數(shù)據(jù)中假 定第一個(gè)預(yù)測(cè)值的一個(gè)默認(rèn)值。進(jìn)一步可選地,所述默認(rèn)值有值。
[0061] 可選地,在所述方法中,所述處理裝置通過(guò)使用計(jì)算機(jī)硬件實(shí)現(xiàn),所述計(jì)算機(jī)硬件 用于執(zhí)行一個(gè)或多個(gè)記錄于非瞬時(shí)機(jī)器可讀的數(shù)據(jù)存儲(chǔ)介質(zhì)上的軟件產(chǎn)品。
[0062] 根據(jù)第五個(gè)方面,提供了一種使用解碼器(20)解碼已編碼數(shù)據(jù)(D2、D3或D4)以 生成相應(yīng)的已解碼輸出數(shù)據(jù)(D5)的方法,其特征在于,所述方法包括:
[0063] (a)使用數(shù)據(jù)處理裝置處理所述已編碼數(shù)據(jù)(D2、D3或D4)以解碼所述已編碼數(shù) 據(jù)(D2、D3或D4)的一個(gè)或多個(gè)部分,考慮到所述已編碼數(shù)據(jù)(D2、D3或D4)包括至少一種 已編碼序列,所述已編碼序列代表在已轉(zhuǎn)換的數(shù)據(jù)的多個(gè)值中變化,并使用一個(gè)圍繞最大 值的回繞和/或一個(gè)圍繞最小值的回繞;并且
[0064] (b)使用所述數(shù)據(jù)處理裝置來(lái)生成相應(yīng)的已處理的數(shù)據(jù),并通過(guò)使用至少一個(gè)預(yù) 偏移值和/或后偏移值來(lái)轉(zhuǎn)換所述一個(gè)或多個(gè)部分以生成所述已解碼的輸出數(shù)據(jù)(D5)。[0065] 參考前述方面,關(guān)于偏移值,可選地,在所述解碼器中,所述數(shù)據(jù)處理裝置用于接 收在所述已編碼數(shù)據(jù)(D2、D3或D4)中的一系列值,得到至少一個(gè)預(yù)偏移值和/或后偏移 值。所述后偏移值可以用于在一個(gè)逆算子使用之前生成所述已轉(zhuǎn)換數(shù)據(jù),例如一個(gè)直接逆 ODelta算子,所述預(yù)偏移值用于在所述逆算子之后轉(zhuǎn)換數(shù)據(jù)??蛇x地,至少一個(gè)偏移值與所 述處理的數(shù)據(jù)結(jié)合以生成所述已解碼輸出數(shù)據(jù)(D5)。
[0066] 所述偏移值在所述解碼器中被可選地支持。當(dāng)它在編碼器使用時(shí)同樣在所述解碼 器中使用。所述回繞在一個(gè)使用范圍(lowValue到highValue)的參數(shù)(wrapValue)內(nèi), 所述逆算子(總和vs.差分)和逆預(yù)測(cè)(輸入值vs.輸出值)為所述解碼器的重要因素。 [0067] 可選地,在所述解碼器中,所述數(shù)據(jù)處理裝置用于將至少以下一種的逆運(yùn)算應(yīng)用 于被處理的數(shù)據(jù):行程長(zhǎng)度編碼(RLE)、SRLE、熵修正(EM)、可變長(zhǎng)度編碼(VLC)、哈夫曼編 碼、算術(shù)編碼、距離編碼。所述處理被執(zhí)行以從數(shù)據(jù)(D3)生成數(shù)據(jù)(D4)。
[0068] 在所述解碼器中,所述數(shù)據(jù)處理裝置用于當(dāng)用逆解碼形式實(shí)施時(shí),例如逆ODelta 解碼,使用一個(gè)回繞,所述回繞在一個(gè)使用范圍(lowValue到highValue)的參數(shù)(wrap Value)內(nèi)。
[0069] 根據(jù)第六個(gè)方面,提供了一種編解碼器,包括至少一個(gè)如第一個(gè)方面所述的編碼 器(10)以及至少一個(gè)如第三個(gè)方面所述的解碼器,所述編碼器(10)用于編碼輸入數(shù)據(jù) (D1)以生成相應(yīng)的已編碼數(shù)據(jù)(D2或D3),所述解碼器用于解碼所述已編碼數(shù)據(jù)(D2、D3或 D4)以生成相應(yīng)的已解碼數(shù)據(jù)(D5)。
[0070] 根據(jù)第七個(gè)方面,提供了一種記錄于非瞬時(shí)機(jī)器可讀的數(shù)據(jù)存儲(chǔ)介質(zhì)上的軟件產(chǎn) 品,其特征在于,所述軟件產(chǎn)品執(zhí)行于計(jì)算機(jī)硬件上以執(zhí)行所述第二個(gè)方面的編碼數(shù)據(jù)方 法。
[0071] 根據(jù)第八個(gè)方面,提供了一種記錄于非瞬時(shí)機(jī)器可讀的數(shù)據(jù)存儲(chǔ)介質(zhì)上的軟件產(chǎn) 品,其特征在于,所述軟件產(chǎn)品執(zhí)行于計(jì)算機(jī)硬件上以執(zhí)行所述第四個(gè)方面的編碼數(shù)據(jù)方 法。
[0072] 應(yīng)當(dāng)理解,本發(fā)明的實(shí)施例是容易以各種組合被結(jié)合,而不脫離本發(fā)明的權(quán)利要 求的保護(hù)范圍。
【附圖說(shuō)明】
[0073] 下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例加以描述,其中:
[0074] 圖1是實(shí)現(xiàn)了本發(fā)明的功能的、包括編碼器和解碼器的編解碼器的示意圖;
[0075] 圖2是圖1中編碼器執(zhí)行的數(shù)據(jù)編碼方法的示意圖;
[0076] 圖3是圖1中解碼器執(zhí)行的數(shù)據(jù)解碼方法的示意圖。
[0077] 在附圖中,使用有下劃線的數(shù)字表示有下劃線的數(shù)字位于其上的項(xiàng)目,或者表示 與有下劃線的數(shù)字相鄰的項(xiàng)目。不帶下劃線的數(shù)字涉及一個(gè)項(xiàng)目,該項(xiàng)目通過(guò)將不帶下劃 線的數(shù)字連接至所述項(xiàng)目的線標(biāo)識(shí)。當(dāng)數(shù)字不帶下劃線并且伴有一個(gè)相關(guān)的箭頭時(shí),所述 不帶下劃線的數(shù)字是用來(lái)識(shí)別這個(gè)箭頭所指向的整個(gè)項(xiàng)目。
【具體實(shí)施方式】
[0078] 在描述本申請(qǐng)實(shí)施例時(shí),以下首字母縮寫詞和定義將會(huì)被使用,如表2所提供。
[0079] 表2:首字母縮寫詞和定義
[0080]
[0081] 籠統(tǒng)地講,參照?qǐng)D1,本發(fā)明涉及編碼器10及其相關(guān)的操作方法;有益地,編碼器 10作為一個(gè)直接的ODelta編碼器來(lái)實(shí)現(xiàn)。此外,本發(fā)明還涉及相應(yīng)的解碼器20 ;有益地, 解碼器20作為逆ODelta解碼器來(lái)實(shí)現(xiàn)。本發(fā)明的實(shí)施例中采用直接Odelta算子,它是 作為上述已知德?tīng)査幋a的位優(yōu)化版本,它也是為其他數(shù)據(jù)的距離優(yōu)化版本。ODelta編碼 被用于采用可變長(zhǎng)度數(shù)據(jù)字的計(jì)算硬件或?qū)S脭?shù)字硬件,例如8/16/32/64位,和/或采用 8/16/32/64位數(shù)據(jù)元素的可變長(zhǎng)度編碼,這些數(shù)據(jù)元素的原始值被表示在1至64比特的范 圍內(nèi),并生成1到64比特的相應(yīng)的編碼值。當(dāng)然,編碼器10和解碼器20,在任何情況下,都 知道哪種數(shù)字值被包含在數(shù)據(jù)D1中,例如原始數(shù)據(jù),因此它的定義或傳輸將不會(huì)進(jìn)一步在 這里闡明。只是被假定數(shù)字范圍(MIN和MAX)是已知的,并且數(shù)據(jù)D1可供利用。
[0082] 已知德?tīng)査幋a方法增加值的范圍,從初始(MIN到MAX)到結(jié)果(MIN-MAX到 MAX-ΜΙΝ)。這意味著,當(dāng)原始數(shù)據(jù)僅包含正數(shù)時(shí),它也會(huì)產(chǎn)生負(fù)值。根據(jù)本發(fā)明的ODelta 算子永遠(yuǎn)不會(huì)產(chǎn)生一個(gè)不在相應(yīng)的原始值范圍內(nèi)的值,所以它不會(huì)增加已經(jīng)使用的數(shù)據(jù)范 圍,因而適用于熵降低和相關(guān)的數(shù)據(jù)壓縮的情況。例如,已知德?tīng)査幋a方法用5位的數(shù)據(jù) 流來(lái)工作,也即在從0到31范圍的值,這樣這種德?tīng)査幋a方法所生成的數(shù)據(jù)值將在-31 到+31范圍之間,即使用6位(也即符號(hào)位+5位)極大表述的63值;相區(qū)別地,當(dāng)上述5 位的數(shù)據(jù)流生成時(shí),直接ODelta生成的值仍在0到31范圍內(nèi)。而且,鑒于已知德?tīng)査幋a 方法不太可能遞歸,直接,或逆實(shí)現(xiàn),根據(jù)本發(fā)明的直接或逆ODelta算子則易被遞歸實(shí)現(xiàn), 然而它仍然保留值的已使用范圍。值的范圍不需要是與位(bit)準(zhǔn)確對(duì)應(yīng)。例如0到31 的值由5位定義;ODelta算子能夠使用值的任何范圍,例如從0到25范圍的值,同時(shí)仍然 正常運(yùn)行。
[0083] 原則上,這里所描述的ODelta方法總是能夠直接在現(xiàn)有的數(shù)據(jù)范圍基礎(chǔ)上起作 用,下文將給出一個(gè)示例。ODelta方法還可以被加強(qiáng),它可以傳遞信息,所述信息指示在數(shù) 據(jù)中出現(xiàn)的最低數(shù)字值("lowValue")和在數(shù)據(jù)中出現(xiàn)的最高數(shù)字值("highValue")。 值得注意的是,lowValue>=MIN和highValue<=MAX,并且這些值是可選的。
[0084] 下面將描述根據(jù)本發(fā)明的直接和逆ODelta算子的兩個(gè)例子。直接和逆ODelta算 子的第一個(gè)例子是高效的并且是相對(duì)簡(jiǎn)單實(shí)現(xiàn)的,例如在電子硬件和/或計(jì)算機(jī)硬件上可 操作的執(zhí)行一個(gè)或多個(gè)記錄于非瞬時(shí)(非暫時(shí)的)機(jī)器可讀數(shù)據(jù)存儲(chǔ)介質(zhì)上的軟件產(chǎn)品。
[0085] 當(dāng)根據(jù)本發(fā)明實(shí)施直接或逆ODelta算子時(shí),數(shù)據(jù)值的所有原始序列都是正數(shù)且 最低值為〇??蛇x地,一些偏移值,也即預(yù)偏移值或后偏移值,可以用來(lái)轉(zhuǎn)移(shift)數(shù)據(jù) 值,使得他們均為正值且最低值為"〇"。根據(jù)本發(fā)明的ODelta算子可以以直接的方式被用 于所有類型的數(shù)據(jù);它通常能夠提供數(shù)據(jù)壓縮,即減少需要傳輸?shù)臄?shù)據(jù)率,因?yàn)?,?dāng)偏移值 添加到所有值中或從所有值中減去時(shí),數(shù)據(jù)值的范圍可能被使用更少的比特定義。例如,原 始數(shù)據(jù)值,在直接或逆ODelta算子的應(yīng)用之前,是在從-11至+18的范圍內(nèi);這樣的范圍可 以通過(guò)使用+11的偏移值轉(zhuǎn)化為0至29的范圍,并且所述轉(zhuǎn)化后的范圍此后由5-bits描 述。當(dāng)這樣的預(yù)偏移值或后偏移值沒(méi)有被使用時(shí),原始數(shù)據(jù)值至少需要6比特來(lái)描述它們, 并且通常情況下,在實(shí)踐中,完整的8比特的有符號(hào)的(signed)字節(jié)便于使用。
[0086] 當(dāng)使用廣義的直接或逆ODelta算子時(shí),數(shù)據(jù)范圍的類似優(yōu)化也是可能的。因此, 如果直接或逆ODelta算子,或一些其他方法,生成數(shù)據(jù)值,通過(guò)偏移值,這些數(shù)據(jù)可以呈現(xiàn) 為小于值的全部范圍的形式,則所述范圍優(yōu)化可以在ODelta編碼方法的任何階段實(shí)施。當(dāng) 所述偏移值被使用時(shí),無(wú)論符號(hào)是正還是負(fù),它都會(huì)被從編碼器10傳遞至解碼器20,如后 面參照?qǐng)D1、圖2和圖3所闡述。
[0087] 直接ODelta算子可以以Ι-bit方式實(shí)施,例如為了以逐位方式編碼所述原始數(shù)據(jù) D1 ;以這樣的Ι-bit方式,如下面被更詳細(xì)描述的方法1和方法3,當(dāng)圖1中原始數(shù)據(jù)D1中 比特值沒(méi)有變化時(shí)生成"〇",并當(dāng)原始數(shù)據(jù)D1中比特值發(fā)生變化時(shí)生成"1"。可選地,在原 始數(shù)據(jù)中第一比特的預(yù)測(cè)為"〇",因此在原始數(shù)據(jù)D1中第一比特的值被保留??蛇x地,也 可能在原始數(shù)據(jù)中第一比特使用預(yù)測(cè)值為"1",但這種選擇不提供任何編碼的好處;為此, 當(dāng)所述預(yù)測(cè)總是為Ι-bit數(shù)據(jù)被默認(rèn)定義為"0",即預(yù)定義的"0"被編碼器10和解碼器20 使用時(shí),不需要傳遞任何選擇,從而避免了傳達(dá)所述預(yù)測(cè)這一需要,由此改進(jìn)數(shù)據(jù)壓縮。<