国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      編碼器、解碼器和編碼解碼方法_3

      文檔序號:9602781閱讀:來源:國知局
      br>[0088] 現(xiàn)在將介紹根據(jù)本發(fā)明的直接ODelta編碼的實例。作為示例,比特的原始序列, 即37位,包括17個"1"和20個"0",在如下的等式1 (Eq. 1)中提供:
      [0089] 0101011001000101000000000001111111111 Eq-1
      [0090]
      [0091] 熵E是從等式2 (Eq. 2)計算得到:
      [0093]
      [0094] -些比特數(shù),即最小比特數(shù)(Min_bit),需要用來編碼等式2 (Eq. 2)中的熵E,它可 以根據(jù)香農(nóng)的信源編碼定理計算得到,如上述D7和D8文件描述,如等式3 (Eq. 3)中提供 的:
      [0097]當如上所述的直接ODelta算子被于比特的原始序列時,即方法1和方法3,生成一 個比特序列如下,包括37位,其中有13個"1"和24個"0"。
      [0098] 0111110101100111100000000001000000000 Eq. 4
      [0099]
      [0100] 熵E是從等式5 (Eq. 5)計算得到:
      [0102] 按照等式6(Eq. 6),表示為比特的最小數(shù),即Min_bit:
      [0104] 在等式4 (Eq. 4)中比特的序列被更進一步地編碼來實現(xiàn)數(shù)據(jù)壓縮,例如利用以下 至少一種:行程長度編碼(RLE)、哈夫曼編碼、算術編碼、范圍編碼、熵編碼或SRLE編碼。
      [0105]ODelta算子,當它與所用的熵編碼方法一同使用時,減少了一些呈現(xiàn)始數(shù)據(jù)D1所 需要的比特數(shù)量,例如RLE或SRLE被用于等式4 (Eq4)中那樣的操作過的數(shù)據(jù),而不是如等 式1 (Eq. 1)中那樣的原始數(shù)據(jù);這個Ι-bit直接ODelta算子,S卩方法1和方法3,當在等式 l(Eq. 1)中比特的原始序列中有許多改變時生成"1",當在等式l(Eq. 1)中比特的原始序列 中有一長串互相類似的比特時產(chǎn)生"0"。
      [0106] 對于ODelta算子的逆版本,即方法1和方法3的逆,當在編碼數(shù)據(jù)流,即數(shù)據(jù)D2中 有" 1"時,將一個比特值從"0"改為" 1",或在適當?shù)臅r候從" 1"改為"0",且當在編碼數(shù)據(jù)流 D2中有"0"時不改變比特值。當ODelta運算被執(zhí)行于ODelta運算過的(ODelta-operated) 數(shù)據(jù)比特流D2時,原始數(shù)據(jù)流數(shù)據(jù)D1被再生成為解碼數(shù)據(jù)流D5。然而,如上所述,額外的 編碼方式如VLC或哈夫曼編碼也可以被使用,這也需要被考慮;這意味著通過使用熵編碼 器的正向運算由數(shù)據(jù)D2生成數(shù)據(jù)D3,使用熵解碼器的逆運算由數(shù)據(jù)D3生成數(shù)據(jù)D4。
      [0107] 原始數(shù)據(jù)流D1在應用于編碼之前被分為兩個或更多部分。這種細分為原始數(shù)據(jù) 流D1的編碼提供了更多的優(yōu)化的機會。例如,這種細分的益處在于,在直接ODelta編碼, 即利用方法1和方法3時,數(shù)據(jù)D1中的可變序列生成更多的" 1",反之,平坦的不可變序列, 即平坦(flat)序列,生成更多的"0",這是后續(xù)V的RL編碼或哈夫曼編碼所期望的,所以, 通過把數(shù)據(jù)D1分成可以如上所述被獨立編碼的多個部分,針對構成數(shù)據(jù)D1的整個比特流, 熵E可以被減小。
      [0108] 下一步將描述根據(jù)本發(fā)明的直接ODelta編碼的示例,它針對采用了被相互獨立 編碼的多個部分的情形。。包括原始單個比特序列的第一部分總共包括16比特,即7個"1" 和9個"0",如下面的等式7(Eq. 7)所示:
      [0109]0101011001000101 Eq. 7
      [0110]其中,Η⑴=4· 7621,B= 15. 82 ;"H"表示熵,"B"表示Min_bit。當直接ODelta 算子被用于等式7 (Eq. 7)的原始比特序列時,相應的轉化比特序列如等式8 (Eq. 8)所示:
      [0111]0111110101100111 Eq. 8
      [0112] 其中H(X) = 4. 3158,B= 14. 34。
      [0113] 包括原始單個比特序列的第二部分如下面等式9 (Eq. 9)所示:
      [0114] 000000000001111111111 Eq. 9
      [0115] 其中H(X) = 6. 313,B= 20. 97。當直接ODelta算子被用于等式9(Eq. 9)的原始 比特序列時,相應的轉化比特序列如等式10 (Eq. 10)所示:
      [0116] 000000000001000000000 Eq. 10
      [0117] 其中H(X) = 1.7460,B= 5. 80。在這些例子中,如上所述,H(X)代表熵E,B代表 編碼所需要的比特的最小數(shù)。
      [0118] 在等式7(Eq.7)和等式10(Eq.10)的這個例子中,把直接ODelta算子分別用于兩 個部分時,達到最好的壓縮(即編碼到14. 34比特+5. 80比特=總計20. 14比特);這需要 的比特比原來所需要的36. 82比特更少,直接ODelta運算過的比特需要34. 60比特,也少 于細分后所需的比特的原始數(shù)(=15. 82比特+20. 97比特=36. 79比特)。通過逐塊地 (piece-by-piece)分析原始數(shù)據(jù)D1的熵E和修改后的-即,包括在數(shù)據(jù)D2中-數(shù)據(jù)的相 應的熵H,,可以自動地將數(shù)據(jù)D1中比特的原始流分成多個部分。
      [0119] 數(shù)據(jù)壓縮也可以以粗糙的方式實現(xiàn),假如有一個足夠大的數(shù)據(jù)空間,其中的比特 值沿著序列快速地變化,當在數(shù)據(jù)D1中有多個長行程(longrun)部分時,僅將數(shù)據(jù)D1的 部分細分成一個新的部分進行編碼??蛇x地,數(shù)據(jù)D1的部分數(shù)據(jù)進行編碼,無需使用直接 ODelta算子,例如,如果有長的相互類似的比特,其間有相對較少的個別不同的比特,在這 種情況下,直接ODelta算子并沒有為數(shù)據(jù)壓縮給予顯著的好處。
      [0120] 將數(shù)據(jù)D1細分成較小的部分有一個缺點,它產(chǎn)生額外的開銷,使得編碼數(shù)據(jù)D2的 數(shù)據(jù)更多。例如,這種開銷包括與每個新的部分相關的數(shù)據(jù)比特或數(shù)據(jù)字節(jié)的數(shù)量的信息 指示。然而,傳輸至少一定量的額外開銷數(shù)據(jù)值往往是必要的,從而當給定數(shù)據(jù)細分為兩個 數(shù)據(jù)部分時只有一個額外開銷數(shù)據(jù)值。
      [0121] 為了實現(xiàn)以后可以解碼的編碼的比特流,在直接ODelta算子之后實施熵編碼,例 如VLC,哈夫曼編碼,算術編碼,距離編碼,RLE,SRLE,EM和其他類似的。執(zhí)行基于計算熵E 和與實際數(shù)據(jù)編碼相比最小的比特估計值的優(yōu)化計算是更容易和更有效的。這樣的順序 的執(zhí)行可以實現(xiàn)相當快的速度優(yōu)化,并在編碼數(shù)據(jù)D2中實現(xiàn)最佳的數(shù)據(jù)壓縮。或者,以一 種方式執(zhí)行熵優(yōu)化是可行的,這種方式為原始比特、字母、數(shù)字、字節(jié)和字數(shù)據(jù),即在數(shù)據(jù)D1 中,首先與其他一些方法編碼來生成熵優(yōu)化的比特流,并此后使用直接ODelta算子修正熵 優(yōu)化的比特流來提供相應的已編碼的數(shù)據(jù),即數(shù)據(jù)D2。此外,所述ODelta操作數(shù)據(jù)仍然可 以用其他編碼方法從數(shù)據(jù)D2編碼生成數(shù)據(jù)D3。
      [0122] 廣義的直接ODelta算子使用一個參數(shù),該參數(shù)描述了用于數(shù)據(jù)D1中的值的范圍, 即表示這些值所需的一個值或比特數(shù)。此外,所述ODelta算子被用于允許使用正負偏移值 的方法,換句話說正負"pedestal"值(這里稱主基礎值)。例如,如果數(shù)據(jù)D1是七位數(shù)據(jù), 即支持"〇"到" 127"的值,但它僅包含從"60"到" 115"范圍內的值,然后,-60的偏移值被 用于數(shù)據(jù)D1時,由此生成從"0"到"55"范圍的轉換數(shù)據(jù),"0"到"55"也可以表示為僅包 含6比特的值,即從而可以實現(xiàn)一定程序的數(shù)據(jù)壓縮。因此,當數(shù)據(jù)值的全部范圍存在數(shù)據(jù) D1中,即以7比特表示通常以8位字節(jié)表示時,廣義的直接ODelta算子改善了結果。
      [0123] 根據(jù)本發(fā)明,直接的ODelta值,即方法1,可以使用由如下的示例軟件代碼的摘錄 所描述的過程來計算,它是針對于僅具有正值的數(shù)據(jù)(lowValue=ΜΙΝ= 0和highValue =MAX= 127,wrapValue= 127-0+1 = 128):
      [0125] 現(xiàn)在將提供一個例子來進一步澄清上述ODelta算子。
      [0126] 值的原始序列如下面的等式11 (Eq. 11)所示:
      [0127] 65,80,126,1,62,45,89,54,66 Eq. 11
      [0128] 相應的德爾塔編碼值如下面的等式12 (Eq. 12)所示:
      [0129] 65,15,46, _125,61,_17,44,-35,12 Eq. 12
      [0130] 相應的直接ODelta編碼值如下面的等式13 (Eq. 13):
      [0131] 1,15,46,3,61,111,44,93,12 Eq. 13
      [0132] 其中使用了在參數(shù)wrapValue之內的回繞。
      [0133] 逆ODelta算子,即方法1,可用于生成逆ODelta值,例如利用如下的軟件代碼示例 實現(xiàn):
      [0136] 當這個軟件代碼被執(zhí)行并被應用于等式13 (Eq. 13)時,生成如等式14 (Eq. 14)提 供的值:
      [0137] 65,80,126,1,62,45,89,54,66 Eq. 14
      [0138] 這個例子使用wrapValue作為2的冪值。這不是強制性,wrapValue也可以是比 最大的數(shù)據(jù)值更大的任何值或比已使用的范圍更大的值(如果負值也可用),或者范圍可 以在數(shù)據(jù)給定序列中根據(jù)前偏移量修改。稍后會有說明此功能的另一個例子。
      [0139] 參照圖1總結上面所述,本發(fā)明涉及編碼器10和解碼器20??蛇x地,編碼器10和 解碼器20相結合作為由編號30指示的編解碼器。編碼器10是可以接收原始輸入數(shù)據(jù)D1, D1被使用例如直接的ODelta方法來編碼以生成相應的編碼數(shù)據(jù)D2或D3。編碼數(shù)據(jù)D2或 D3通過通信網(wǎng)絡40傳送或存儲于數(shù)據(jù)存儲介質50上,例如數(shù)據(jù)的載體,如光盤只讀存儲器 (ROM)或類似的。解碼器20可以接收編碼數(shù)據(jù)D2或D3,例如通過通信網(wǎng)絡40或數(shù)據(jù)存儲 介質50上提供,并使用逆方法,例如逆ODelta方法,來生成相應的解碼數(shù)據(jù)D5,它基本上類 似于原始數(shù)據(jù)D1。編碼器10和解碼器20使用數(shù)字硬件實現(xiàn),例如可以執(zhí)行一個或多個軟 件產(chǎn)品的計算機硬件,例如在此描述的作為示例實施例所提供的代碼??蛇x地,編碼器10 和/或解碼器20使用專用數(shù)字硬件實現(xiàn)。
      [0140] 如在編碼器10中執(zhí)行的ODelta方法,采用如圖2所示的步驟??蛇x地,第一步 100,處理輸入數(shù)據(jù)D1來找到它的數(shù)據(jù)元素的值的范圍。在可選的第二步110中,從所述值 的范圍,計算偏移量,即前偏移量,用于把數(shù)據(jù)元素轉換為一個有利的形態(tài)從而生成對應的 一組轉換元素(translatedelements)。在第三步120中,所述在第二步110中轉換的元 素,受到直接ODelta編碼來生成相應的ODelta編碼值。在第四步130中,ODelta編碼值 和可選的偏移值,最小值(lowValue),和/或最大值(highValue)分別被編碼,例如行程 長度編碼(RLE)、距離編碼,或哈夫曼編碼,來從數(shù)據(jù)D2生成數(shù)據(jù)D3。偏移值、最小值(low Value),和/或最大值(highValue)并不總是可壓縮的,因此需要使用一定量的比特從編 碼器10傳遞到解碼器20。此外,偏移值、最小值(lowValue),和/或最大值(highValue) 是直接ODelta算子的可選功能;例如,偏移值,在某些情況下有"0"值,lowValue有MIN 值,highValue有MAX值,即沒有進行轉換,其全部范圍被用。特別是,當直接ODelta算子 為1比特數(shù)據(jù)數(shù)實現(xiàn)時,即為一位一位編碼,它根本不需要偏移值,此時步驟100和110通 常被忽略。當偏移值也用于步驟110時,其中的代表最高和最低值的范圍值應更新。解碼器 20應已知不同值的數(shù)量,即wrapValue,或者編碼器10應當在壓縮數(shù)據(jù)內把它傳遞至解碼 器20。可選地,默認wrapValue( =highValue-lowValue+Ι)用于編碼器和解碼器???選地,至少編碼器10和解碼器20以遞歸方式操作,例如為了找到一種最佳的方式,將輸入 數(shù)據(jù)D1再分成用于編碼的部分以提供數(shù)據(jù)D1的優(yōu)化壓縮來生成編碼數(shù)據(jù)D2。
      [0141] 在解碼器20中執(zhí)行的逆ODelta方法采用如圖3所示的步驟。在第一步200中, 數(shù)據(jù)D2/D3或D4被使用上述步驟130進行逆編碼來生成解碼ODelta數(shù)據(jù),其中已解碼的 ODelta數(shù)據(jù)有已ODelta編碼的值并可選地有單獨的偏移值。在第二步210中,ODelta編碼 值被解碼來產(chǎn)生數(shù)據(jù)元素序列。在第三步220中,數(shù)據(jù)元素的序列使用可選的預偏移值來 轉換生成解碼數(shù)據(jù)D5 ;在某些情況下,這種轉換被設置為"0",即沒有轉換被有效地使用。 再者,無需使用偏移值來執(zhí)行所述方法也是可以的,例如當執(zhí)行1比特編碼時,即一位一位 編碼,步驟220被省略。更進一步地,解碼器20也應當知道wrapValue,從而能夠以適當?shù)?方式解數(shù)被接收的數(shù)據(jù)元素。
      當前第3頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1