專利名稱::用于編碼器/譯碼器系統(tǒng)的緊湊型源編碼表的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及及使用表或矩陣對信息進(jìn)行編碼和譯碼的各種源編碼技術(shù)。本發(fā)明特別是涉及編碼/譯碼系統(tǒng),這種系統(tǒng)需要較少的空間存儲諸如赫夫曼編碼(HuffmanCoding)等編碼技術(shù)表。在數(shù)據(jù)存儲和通信系統(tǒng)中,數(shù)據(jù)壓縮技術(shù)的使用正呈上升趨勢,這是因為數(shù)據(jù)壓縮能使存儲空間或傳送信息所需的帶寬減至最小。由“有損耗”技術(shù)壓縮的數(shù)據(jù)無法采用任何去壓縮技術(shù)來完全地恢復(fù),這是因為在壓縮期間已丟失了一些信息,但通過“無損耗”技術(shù)壓縮的數(shù)據(jù)能完全恢復(fù)。量化是一個非常著名的“有損耗”技術(shù)實例,而游程長度編碼(RLE)是一個非常著名的“無損耗”技術(shù)實例。在一些音頻與視頻應(yīng)用中,系統(tǒng)通常既采用有損耗壓縮技術(shù)又采用無損耗壓縮技術(shù)。一些用于人類感知信號的“感知編碼器”根據(jù)心理感知學(xué)原理采用有損耗壓縮技術(shù),從而感受不到損耗壓縮帶來的影響。通常,丟失的信息量隨著損耗壓縮級的增高而增高,于是,為使所產(chǎn)生的信號的主觀質(zhì)量不降低,對于采用多少有損耗壓縮是有限制的。一些感知編碼器除了采用有損耗壓縮技術(shù)外,還采用無損耗壓縮技術(shù),以在不會發(fā)生可感知的質(zhì)量降低情況下進(jìn)一步進(jìn)行壓縮。ISO/IECJTCI/SC29,1992,在ISO/MPEG標(biāo)準(zhǔn)文件“至多可達(dá)1.5兆位/秒的用于數(shù)字存儲媒體的動畫及相關(guān)音頻的編碼-CD11172-3(部分3音頻)”中描述了一種包括將無損耗壓縮應(yīng)用于量化的信息的感知編碼標(biāo)準(zhǔn),在此作為一個整體來引用。在美國專利US-5,285,498中描述了一個變換編碼器的例子,它對量化的變換因子應(yīng)用赫夫曼編碼(無損耗壓縮技術(shù)),在此作為一個整體來引用。赫夫曼編碼是一種非常著名的無損耗壓縮技術(shù)。在實施赫夫曼編碼過程中經(jīng)常使用一個或多個表、矩陣。在壓縮期間,采用一個或多個待壓縮的數(shù)據(jù)符號作為進(jìn)入一個合適的編碼表的關(guān)鍵字,該編碼表提供合適的可變長度代碼字。在去壓縮過程中,使用可變長度代碼字來遍歷存儲在一個或多個編碼表中的樹型結(jié)構(gòu),以建立所壓縮符號的原始值。在許多實際應(yīng)用的實施例中,將編碼與譯碼表存儲在只讀存儲器(ROM)或隨機(jī)訪問存儲器(RAM)中。不幸的是,這類編碼表通常很大,需要相當(dāng)大的存儲空間,所以增加實施成本。希望將存儲和使用編/譯碼表所需的存儲空間減至到最小。本發(fā)明的目的在于提供緊湊型編/譯碼表,它比傳統(tǒng)的用于數(shù)據(jù)壓縮和去壓縮的編譯碼表所需的存儲空間要小,并且對壓縮性能無任何明顯的損害。根據(jù)結(jié)合到一編碼器實施例中的本發(fā)明的技術(shù),產(chǎn)生代表符號對中符號次序(相對一特定次序)的次序信息,參照編碼表依據(jù)按特定次序排序的符號對來產(chǎn)生代碼字,并將代碼及次序信息組合成一個適于后續(xù)處理、傳送或存儲的格式。根據(jù)結(jié)合到一譯碼器實施例中的本發(fā)明的技術(shù),從一代碼化信號中提取出代碼字和次序信息,參照譯碼表依據(jù)代碼字產(chǎn)生有序的符號對,并按次序信息所要求的那樣對符號對重新排序。還可能有許多變型。例如,可將符號分組成為包括兩個以上符號的有序組,并根據(jù)本質(zhì)上所具有的任何次序?qū)⒔M中這些符號重新排序。本發(fā)明還可以在許多不同的實施例中實施,并能結(jié)合到各種編碼器及譯碼器中去。雖然在整個討論中特別指出可應(yīng)用于音頻編碼,但應(yīng)清楚看到,本發(fā)明具有很寬的應(yīng)用范圍,例如信息存儲和檢索。通過以下參照附圖的說明,可使本發(fā)明及其優(yōu)選實施例的各種特征更加清楚。以下參照附圖的討論僅作為示例,不應(yīng)理解為對本發(fā)明范圍的限制。圖1示出了一個信息處理系統(tǒng)的基本方框圖;圖2a和圖2b示出了一個分頻帶(split-band)信號分析/合成系統(tǒng)的功能性方框圖;圖3a和圖3b示出了一個壓縮器和一個去壓縮器的功能性方框圖;圖4a和圖4b示出了根據(jù)本發(fā)明的技術(shù)的壓縮和去壓縮邏輯的方框圖5a和5b示出了二叉樹譯碼結(jié)構(gòu);圖6a和6b是用于三維編/譯碼的編/譯碼表的示意圖。圖1描述了一信息處理系統(tǒng),該系統(tǒng)可采用本發(fā)明的技術(shù)。在一實施例中,處理器2從路徑1接收用于傳送信息的輸入信號、對該信號實施數(shù)據(jù)壓縮技術(shù)后沿路徑3傳送代表壓縮結(jié)果的代碼化信號。存儲器4中存儲了一個或多個在實施數(shù)據(jù)壓縮時由處理器2使用的編碼表。在第二實施例中,處理器2由路徑1接收包括壓縮數(shù)據(jù)的代碼化信號,對該信號進(jìn)行數(shù)據(jù)去壓縮并沿路徑3傳送代表去壓縮結(jié)果的輸出信號。存儲器4中存儲了一個或多個在實施數(shù)據(jù)去壓縮時由處理器2使用的譯碼表。處理系統(tǒng)的具體實現(xiàn)與結(jié)構(gòu)對于實施本發(fā)明來說并不重要。例如,處理器2可以是執(zhí)行存儲在存儲器4中的軟件的一個處理器,也可以是特定應(yīng)用的硬件。存儲器4可以包括ROM及讀/寫存儲器(如RAM)的任何所希望的組合。處理器2和存儲器4也可由一單個部件(如微計算機(jī)集成電路)來實現(xiàn)。圖2a和2b示出了一分帶信號分析/合成系統(tǒng)的幾個特征部分,它適于應(yīng)用本發(fā)明的各個方面。參照圖2a,分析濾波器102根據(jù)由路徑100接收到的輸入信號產(chǎn)生頻譜信號,量化器104對該頻譜信號進(jìn)行量化,壓縮處理器106對該量化的信號實施無損耗壓縮,而格式化處理器108將壓縮的信號組合到具有適于后續(xù)處理、傳送或存儲格式的編碼信號中去。在感知編譯碼系統(tǒng)中,量化器根據(jù)感知模型來進(jìn)行量化。參照圖2b,去格式化處理器122從由路徑120接收的編碼信號中提取壓縮的頻譜信號,去壓縮處理器124通過對壓縮的頻譜信號進(jìn)行去壓縮而實施與無損耗壓縮相反的作用,去量化器126對去壓縮的頻譜信號進(jìn)行去量化,而反相濾波器根據(jù)去量化的頻譜信號沿路徑130產(chǎn)生一輸出信號。對于實施本發(fā)明來說,分帶分析/合成系統(tǒng)的具體實施細(xì)節(jié)并不重要。作為附加信息,可參見美國US-5,109,417,在此作為一整體對其進(jìn)行引用。本發(fā)明并不局限應(yīng)用于信號分析/合成方面,也不局限應(yīng)用于采用有損耗的數(shù)據(jù)壓縮方面。例如,本發(fā)明可結(jié)合到計算機(jī)磁盤存儲系統(tǒng)中去。應(yīng)理解,圖2a所示的區(qū)域112的元素只代表了待壓縮數(shù)據(jù)源的一個例子。類似地,圖2b所示的區(qū)域132中的元素只代表了一個目的地或?qū)θ嚎s數(shù)據(jù)使用的一個例子。圖3a所示的方框圖提供了有關(guān)壓縮處理器106的一個實施例的細(xì)節(jié)。由路徑200接收多個符號。次序發(fā)生器202沿路徑204根據(jù)一特定次序產(chǎn)生有關(guān)多個符號的次序的信息,對符號進(jìn)行必要的重新排序以符合所述特定次序并將排序的符號傳送給編碼器206。編碼器206參照表308并沿路徑210根據(jù)排序的符號產(chǎn)生一代碼字。在另一實施例中,次序發(fā)生器202根據(jù)特定次序產(chǎn)生有關(guān)多個符號的次序的信息,但不對這些符號重新排序。替代地,將次序信息傳送給編碼器206,圖中未示出其可能沿著的路徑。編碼器206根據(jù)符號及次序信息產(chǎn)生一代碼字。在數(shù)字化系統(tǒng)中,通常將數(shù)字次序選作為特定次序,因為信息是以數(shù)字形式來表示的。例如,諸如字母和標(biāo)點符號等非數(shù)字信息,可依據(jù)美國信息交換標(biāo)準(zhǔn)代碼(ASCII)用具有數(shù)字值的符號來表示。數(shù)字信息,盡管本身是定量的,仍可以通過一些編碼格式由具有數(shù)字值的符號來表示。例如,從1980開始的年歷可編碼成為,值的范圍為從零開始的一個正整數(shù)的符號。在優(yōu)選實施例中,每個符號Xi僅代表數(shù)字量的大小。需要附加信息來說明一個符號所代表的數(shù)字信息是正還是負(fù)。此外,無法在正和負(fù)量之間區(qū)分按照這種符號產(chǎn)生的代碼字,于是,表示非零數(shù)字信息的代碼字包括一個符號位。在前面所引用的ISO/MPEG標(biāo)準(zhǔn)中提供了這種編碼的一個例子。一種方便的符號數(shù)字排序是按升值順序,例如,按順序x1≤x2≤…xn排列的一組n個符號xi。另一例子,可將一個由三個符號組成組排列成x1≤x3≤x2。對實施本發(fā)明來說,特定的排序并不重要。圖4a是一流程圖,示出了根據(jù)本發(fā)明的用于壓縮符號對的一壓縮處理器的一實施例的邏輯。入口(ENTRY)300接收一對符號(x,y)。次序發(fā)生器(ORDER)302判斷x≤y。如果是,清除器(CLEAR)304將“重新排序標(biāo)志”設(shè)置成零;否則,交換器(SWAP)306對x和y的值進(jìn)行交換,并將“重新排序標(biāo)志”設(shè)置成1。編碼器(CODER)308根據(jù)已適當(dāng)?shù)嘏藕眯虻姆枌?x,y)來產(chǎn)生一代碼字。出口(EXIT)310提供用于后續(xù)處理、傳送或存儲的代碼字和重新排序標(biāo)志。以下程序段表示出基本等價的處理,其中CW是一代碼字,OI是一重新排序標(biāo)志,TE(x,y)表示使用編碼表編碼。注意,符號的重新排序是通過將第六行的參數(shù)反序來完成的。(1)entry[x,y](2)ifx≤ythen(3)CW=TE[x,y](4)OI=0(5)else(6)CW=TE[y,x](7)OI=1(8)endif(9)exit[CW,OI]圖3b示出的方框圖提供了有關(guān)去壓縮處理器126的一個實施例的詳細(xì)情況。譯碼器224參照表226并根據(jù)由路徑220接收的一個代碼字產(chǎn)生多個排好序的符號。次序發(fā)生器228由路徑222接收一個“原始”次序的指示,按要求對多個符號重新排序以建立原始次序,沿路徑230傳送適當(dāng)排好序的符號。圖4b是一流程圖,示出了根據(jù)本發(fā)明的用于將代碼字去壓縮成為符號對的一去壓縮處理器的一實施例的邏輯。入口(ENTRY)320接收一代碼字及一個“原始次序”的指示。譯碼器(DECODER)322根據(jù)該代碼字產(chǎn)生一對符號(x,y)。次序發(fā)生器(ORDER)324判斷該符號對的原始次序是否為x≤y。如果不是,交換器(SWAP)326交換x與y的值。出口(EXIT)310提供適當(dāng)排好序的符號對(x,y),用于后續(xù)處理。在以下程序段中表示出一個基本上等價的處理,其中CW是一代碼字,OI是一次序的指示;TD(CW)表示使用譯碼表來譯碼。注意,當(dāng)從程序段退出時,通過在第六行對符號倒序來實現(xiàn)符號的重新排序。(1)entry[CW,OI](2)(x,y)=TD[CW](3)ifOI=0then(4)exit[x,y](5)else(6)exit[y,x](7)endif傳統(tǒng)的編碼表通過以下幾個能夠結(jié)合本發(fā)明各個方面的編碼器的實施例,能更好地理解一些基本概念。在此討論的實施例將赫夫曼編碼技術(shù)應(yīng)用到符號對x和y上,但應(yīng)理解的是,這些原理和概念也適用于其它維數(shù)及其它編碼技術(shù),如香農(nóng)法諾(Shanno-Fano)編碼。在一實施例中,赫夫曼編碼提供了用于任何十六個不同消息的數(shù)據(jù)壓縮,其中,每個消息都由一符號對(x,y)來表示。在以下矩陣P0中提供了各消息出現(xiàn)的概率yx12341.07.05.03.022.05.10.07.053.03.07.15.074.02.05.07.10在本例子中,概率矩陣是對稱的,于是,消息(2,3)出現(xiàn)的概率P0(2,3)等于消息(3,2)出現(xiàn)的概率P0(3,2),為0.07。一個消息組的“平均信息量”(“entropy”)是組中每個消息的平均信息量。該“平均信息量”是表示組中每個消息所需的平均位數(shù)的下限。對于任意由N個消息組成的組,平均信息量可由以下表達(dá)式獲得H=Σi=1N-Pi·logPi------(1)]]>其中H=消息組{i}的平均信息量;Pi=消息i出現(xiàn)的概率;和log=以2為底的對數(shù)函數(shù)。由Lynch的“數(shù)據(jù)壓縮技術(shù)與應(yīng)用”(“DataCompressionTechniquesandApplication”),1985,1-60頁及Bell、Cleary與Witlen的“文本壓縮”(“TextCompression”)1990,100-107頁中可獲得更詳細(xì)的說明,在此將它們二者都以整體的形式加以引用。以上由概率矩陣P0表示的消息組{x,y}的平均信息量等于由下式中獲得的平均信息量H0H0=Σx=14Σy=14-Pxy·logPxy=Σi∈(x,y)-Pi·logPi------(2)]]>它大約為3.8114位例如,可以使用赫夫曼編碼或香農(nóng)編碼來導(dǎo)出用于每十六個消息的可變長度二進(jìn)字代碼字組。以下例子表明本發(fā)明如何與赫夫曼編碼技術(shù)一起使用,同樣也適用于其它編碼技術(shù)。以下矩陣是一編碼表TE0,它包括一組可變長度的代碼字,其中可能性最大的消息為3位,而可能性最小的為6位。yx1234100101100001110001100211011000100111030011110101000O110400110111110111101對2-符號消息進(jìn)行編碼或壓縮的過程可以采用2-符號的值從編碼表中查出合適的代碼字。例如,消息(2,3)的代碼字是CW=TE0〔2,3〕=0100。假設(shè)具體的消息以依據(jù)概率矩陣的頻率出現(xiàn),則對于一特定的編碼技術(shù),平均代碼字長度可由下式得到l-=Σi∈(x,y)Pi·len(i)------(3)]]>其中l(wèi)=代碼字的平均長度;及l(fā)en(i)=消息i的代碼字長度。編碼表TE0的平均代碼字長度為3.85位,它略微大于理論最小值或平均信息量。超出部分表明在編碼中有些冗余。盡管赫夫曼編碼不是在所有情況下都是最優(yōu)的,但由于能進(jìn)行有效的計算,所以使它應(yīng)用非常廣泛。不幸的是,編碼和譯碼表通常很大,于是需要相當(dāng)大的存儲空間。在以上例子中,編碼表的大小適中,因為每個符號都假定只是4個值中的一個。在許多實際應(yīng)用中,每個符號都可以假定任意多個值。很容易看出,多符號消息的編碼表按每個符號可能具有的值的數(shù)目的乘積來增加。例如上述的表TE0就按對于x和y符號可能具有的值的數(shù)目的平方來增加。在信息處理系統(tǒng)的許多實施例(如圖1所描述的)中,編碼表存儲在RAM或ROM中,于是,能夠減小編譯碼表大小的技術(shù)也能減少所需的存儲空間,于是也能降低實現(xiàn)成本。緊型編碼表結(jié)合了本發(fā)明特征的多符號消息的編碼器采用了一個比傳統(tǒng)的編碼表小得多的編碼表。如果假定2-符號消息中的每個符號都具有N個可能值中的任意一個,則傳統(tǒng)的編碼表將N2個元素。根據(jù)本發(fā)明的用于這類2-符號消息的緊湊型編碼表僅(N2+N)/2個元素,當(dāng)N很大時,它僅相當(dāng)于傳統(tǒng)編碼表大小的1/2。參照上述例子,編碼表TE0包括十六個代碼字,每個可能的消息(x,y)都對應(yīng)一個代碼字。通常保證使符號x小于等于符號y,或x≤y,從消息組{x,y}中可以消除六個消息,于是減小了編碼表的大小??梢酝ㄟ^在編碼之前對x和y進(jìn)行必要的重新排序,來保證這種數(shù)字關(guān)系??梢酝ㄟ^一相應(yīng)的譯碼器依據(jù)有關(guān)符號的原來次序的信息來消除這種重新排序的影響。可僅用一位來傳遞這種次序信息。例如,在一實施例中,只要x≠y,編碼器就對符號對進(jìn)行必要的重新排序,產(chǎn)生該重新排序符號對的代碼字,并且產(chǎn)生次序信息。僅用一位來傳遞這種次序信息,當(dāng)符號不是原來次序時,該位為1,如果符號按原來次序,則該位為0。當(dāng)x>y時符號的重新排序可以有效地使每個消息(x,y)出現(xiàn)的概率加倍,其中x≠y。在以下概率矩陣P1中反映出這種變化。yx12341.07.10.06.042--.10.14.103----.15.144------.10以下編碼表TE1包括用于這種修改后消息組的代碼字,其長度變化為3~4位。yx123411001011000000012--00111010003----1011114------010考慮到消息組{x,y}中一些消息的概率現(xiàn)在為零,所以從表達(dá)式2和3中可得出,修改后的消息的平均信息量大約為3.2314位,表TE1的代碼字平均長度為3.27位。這種減少可由向譯碼器傳送次序信息所需要的任何附加位來補(bǔ)償。這種通過交換來減小代碼表大小的方法并不會影響壓縮性能,因為傳遞次序信息所需的位數(shù)可由消息平均信息量的等同降低來補(bǔ)償。這可由以下表達(dá)式來表示(4)lOI+ΔH其中l(wèi)oI=傳送次序信息所需的平均位數(shù);和ΔH=已修改消息組中平均信息量的變化。如上所述,2-符號消息的次序信息可由一位來傳遞,并且僅在x≠y時才需要發(fā)送。從下述表達(dá)式可計算出這個平均長度。l-OI=Σi∈(x,y)Pi·len(OIi)=Σi∈APi+Σi∈BPi=PA+PB-----(5)]]>其中A=x<y的消息組;B=x>y的消息組;PA=組A中所有消息的概率累加值;和PB=組B中所有消息的概率累加值。概率矩陣P0是對稱的,于是,PA=PB,并且lOI=PA+PB=2PA.(6)由概率矩陣P0主對角線之外的元素能很容易地推算出平均信息量的變化。首先可以看出,原始消息組的平均信息量H0為H0=Σi∈(x,y)-Pi·logPi=Σi∈A-Pi·logPi+Σi∈I-Pi·logPi+Σi∈B-Pi·logPi----(7)]]>=HA+HI+HB其中I=為x=y(tǒng)的消息組;HA=組A的平均信息量;HI=組I的平均信息量;HB=組B的平均信息量。相應(yīng)于概率矩陣P1的修改后的消息組的平均信息量H1為H1=Σi∈A-2Pi·log2Pi+Σi∈I-Pi·logPi]]>=2Σi∈A-Pi·(1+logPi)+Σi∈I-Pi·logPi------(8)]]>=2Σi∈A-Pi+2Σi∈A-Pi·logPi+Σi∈I-Pi·logPi]]>=-2PA+2HA+H1概率矩陣量對稱的,于是HA=HB,(9a)HO=HA+HI+HB=HI+2HA,(9b)HI=-2PA+2HA+HI=-2PA+HO,(9c)ΔH=HI-HO=-2PA.(9d)于是,(10)lOI+ΔH=2PA+(-2PA)=0.傳送次序信息所需的附加位數(shù)正好可由平均信息量的減少來補(bǔ)償。于是,不會影響壓縮性能。傳統(tǒng)的譯碼表圖5a以二叉樹400的形式示出了譯碼結(jié)構(gòu)。所描述的特定的樹相應(yīng)于前面所討論的編碼表TE0。樹中每個節(jié)點或者具有兩個分支,每個都與另一節(jié)點相連,或者是一“葉子”節(jié)點,無分支并代表一特定的消息。從“樹干”的“根”節(jié)點開始依據(jù)代碼字中連續(xù)的諸位的值遍歷各分支,最終到合適的葉子節(jié)點,它提供了由該代碼字所代表的消息。在所示例子中,根據(jù)“0”位來遍歷左邊分支,而根據(jù)“1”位來遍歷右邊分支。例如,關(guān)于代碼字“1101”,對于樹400的遍歷從根節(jié)點開始,根據(jù)第一位(“1”)沿右邊分支繼續(xù)到第一節(jié)點,根據(jù)第二位(“1”)沿右邊分支繼續(xù)到第二節(jié)點,根據(jù)第三位(“0”)沿左邊分支繼續(xù)到第三節(jié)點,根據(jù)第四位(“1”)沿右邊分支繼續(xù)到第四節(jié)點。參照上面的編碼表TE0,可以看出這是正確的結(jié)果。在一實施例中,使用鏈表結(jié)構(gòu)來實現(xiàn)樹。表示樹節(jié)點的存儲塊包含兩個指向其它節(jié)點塊的鏈。表示葉子節(jié)點的存儲塊或者存儲消息本身或者包含指向消息存儲何地的鏈。存儲一個樹所需的存儲量通常隨樹的節(jié)點數(shù)增加而增加。一般,存儲量大約正比于節(jié)點數(shù)及消息數(shù)。在所示例子中,該樹包括十五個節(jié)點和十六條消息。緊湊型譯碼表結(jié)合了本發(fā)明各特征的多符號消息譯碼器可以采用遠(yuǎn)遠(yuǎn)小于傳統(tǒng)的譯碼表。圖5b以相應(yīng)于上述編碼表TE1的二叉樹410形式示出了一個譯碼結(jié)構(gòu)。與樹400相比,樹410僅包含九個節(jié)點和10條消息??梢园瓷鲜鰝鹘y(tǒng)方式來遍歷緊湊型樹,但為了能正確地對一代碼字譯碼,必須附加步驟。例如,參照圖5b,代碼字“011”相應(yīng)于消息(1,2);然而使用編碼表TE1的編碼器已對這些符號重新排序了。譯碼器通過參照與代碼字一起在代碼化信號中傳送來的次序信息,來建立正確的消息。在一實施例中,如果次序信息是“0”位則正確的消息為(1,2),而如果次序信息是“1”位,則正確的消息為(2,1)。作為另一實施例,代碼字“010”相應(yīng)于消息(4,4)。此譯碼器不需要任何次序信息來判斷這是否是正確的消息。也可以用其它方式來實現(xiàn)譯碼表。例如,譯碼表可以包括代表所有可能代碼字的表項(entry),并且譯碼包括用一表項匹配一代碼字并取出相應(yīng)的消息。應(yīng)該理解,本發(fā)明并不局限于任何編碼與譯碼表的特定實施。在此討論的實施例僅作為示例。高維編譯碼如上所述,本發(fā)明也可以應(yīng)用于更高次的多維編/譯碼。對于包括n個符號的消息(x1、x2、…xn),可以采用n維編譯碼。如果假設(shè)n個符號每個都有任意N個不同值,則概率矩陣及傳統(tǒng)的編碼表每個都包含Nn表項??梢钥闯觯幋a和譯碼表的大小明顯地隨維數(shù)增加而增加。在以下例子中,假設(shè)消息中的每個符號都具有N個不同值。一組n個符號可以有n!種不同方式的排列。這意謂著,可以由n個符號的各種排列來表示多至n!個不同的消息。保證符號只按這些排列中的一個來排列,編碼矩陣能減少到大約Nn/n!個表項。例如,在3-維編碼器,消息包含3個符號(x,y,z)。用于消息組{x,y,z}的傳統(tǒng)的編碼表包括N3個表項,并且如圖6a所示,可以看成3-維空間中各邊長為N的立方體500。根據(jù)本發(fā)明的緊湊型編碼表僅包含(N3+3N2+2N)/6個表項,如圖6b所示,可以看成3維空間中的四面體510,其底為等邊三角形并且頂點面對底在三個相互垂直長度為N的邊的會合處。事實上,四面體510為立方體512的一個角。隨著N增大,緊型編碼表中表項數(shù)目接近于N3/6。理論上講,使用緊湊型表并不會損壞編/譯碼的性能。然而,在特定實施例中,由于次序信息冗余,可能會使編碼性能略有損壞。這種冗余使傳送次序信息的位要比消息組平均信息量降低所節(jié)約的位數(shù)要多。例如,在三維編(譯)碼中,必須用次序信息來傳送六個可能次序中的任意一個。采用三位來傳送六個可能次序的編(譯)碼方案是易于實現(xiàn)的,但有冗余。如果六個次序每個概率都相等,次序信息僅需要大約2.585(或log26)位。3-位方案大約對于每個代碼字都浪費0.415位,但是這種低效率的方案更具有吸引力,因為它可通過使編(譯)碼表大小降低80%而得到補(bǔ)償。權(quán)利要求1.一種對多個符號進(jìn)行編碼的編碼方法,所述符號表示人類感知方面的信號,所述方法包括根據(jù)一特定次序產(chǎn)生表示所述多個符號中符號次序的次序信息;根據(jù)按照所述特定次序排序的所述多個符號生成一代碼字;和將所述代碼字及所述次序信息組合成適于處理、傳送或存儲的形式。2.根據(jù)權(quán)利要求1的編碼方法,其中所述特定次序是基于與所述符號相對應(yīng)的相關(guān)數(shù)字值。3.根據(jù)權(quán)利要求1的編碼方法,其中,所述多個符號是一符號對x和y,而所述次序信息表明所述符號對是否根據(jù)相應(yīng)于所述符號對的特定數(shù)字關(guān)系被排序,所述特定數(shù)字關(guān)系由關(guān)系組x<y、x≤y、x>y及x≥y中選取。4.根據(jù)權(quán)利要求1-3任意一個的所述編碼方法,其中根據(jù)包含表項(tableentry)的編碼表生成所述代碼字,其中所述表項代表了那些按照所述特定次序排序的各個多個符號的代碼字。5.根據(jù)權(quán)利要求1至4中的任意一個的編碼方法,其中所述代碼字的長度與按照所述特定次序排序的所述多個符號出現(xiàn)的概率成反比例地變化。6.根據(jù)權(quán)利要求5所述的編碼方法,其中根據(jù)赫夫曼(Huffman)編碼或香農(nóng)一法諾(Shannon-Fano)編碼技術(shù)來生成所述代碼字。7.一種對代碼化信號進(jìn)行譯碼的譯碼方法,所述代碼化信號是按照代表人類感知信號的多個符號處理過的,所述方法包括從所述代碼化信號中提取一代碼字及表示相應(yīng)一特定次序的所述多個符號中符號次序的次序信息;通過對所述代碼字譯碼產(chǎn)生一個中間符號組;和通過對所述中間符號組中符號按照所述特定次序信息排序來恢復(fù)所述多個符號。8.根據(jù)權(quán)利要求7的譯碼方法,其中所述中間符號組包括一符號對,而所述次序信息表明,多個符號中的符號是否按照所述特定次序被排序。9.根據(jù)權(quán)利要求7或8的譯碼方法,其中所述中間符號組是根據(jù)包含表項的譯碼表生成的,所述表項僅代表符號按照所述特定次序排序的中間符號組。10.根據(jù)權(quán)利要求7至9任意一個的譯碼方法,其中所述代碼字的長度與按照所述特定次序排序的所述多個符號出現(xiàn)的概率成反比例地變化。11.根據(jù)權(quán)利要求10的譯碼方法,其中所述譯碼是根據(jù)赫夫曼(Huffman)譯碼或香農(nóng)一法諾(Shannon-Fano)譯碼技術(shù)來實現(xiàn)的。12.一種對多個表示人類感知信號的多個符號進(jìn)行編碼的編碼器,所述編碼器包括次序發(fā)生裝置,產(chǎn)生表示多個符號中相應(yīng)于一特定次序的符號次序的次序信息;代碼生成裝置,根據(jù)按照所述特定次序排序的所述多個符號生成一代碼字;和格式生成裝置,將所述代碼字及所述次序信息組成易于處理、傳送或存儲的格式。13.根據(jù)權(quán)利要求12的編碼器,其中所述特定次序是基于與所述符號相對應(yīng)的相關(guān)數(shù)字值。14.根據(jù)權(quán)利要求12的編碼器,其中所述多個符號是一符號對x和y,而所述次序發(fā)生裝置產(chǎn)生表明所述符號對是否按照相應(yīng)于所述符號對的特定數(shù)字值關(guān)系被排序的次序信息,所述特定數(shù)字值關(guān)系選自關(guān)系組x<y、x≤y、x>y及x≥y。15.根據(jù)權(quán)利要求12至14任意一個的編碼器,其中所述代碼生成裝置包括用于存儲一個或多個包含表項的編碼表的RAM與/或ROM,并且所述代碼生成裝置根據(jù)所述一個或多個編碼表生成所述代碼字,所述表項僅代表了符號按照所述特定次序排序的各個多個符號的代碼字。16.根據(jù)權(quán)利要求10至15任意一個的編碼器,其中所述代碼生成裝置產(chǎn)生代碼字,而代碼字的長度與按照所述特定次序排序的所述多個符號出現(xiàn)的概率成反比例地變化。17.根據(jù)權(quán)利要求16的編碼器,其中所述代碼生成裝置按照赫夫曼(Huffman)編碼或香農(nóng)一法諾(Shannon-Fano)編碼技術(shù)來產(chǎn)生所述代碼字。18.一種用于對所述代碼化信號進(jìn)行譯碼的譯碼器,所述代碼化信號按照多個表示人類感知信號的符號來處理,所述譯碼器包括去格式裝置,從所述代碼化信號中提取出一代碼字及表示所述多個符號中依據(jù)特定次序的符號次序的次序信息;譯碼裝置,對所述代碼字譯碼產(chǎn)生一中間符號組;及次序生成裝置,通過對所述中間符號組中的符號按照所述次序信息排序來恢復(fù)所述多個符號。19.根據(jù)權(quán)利要求18的譯碼器,其中所述中間符號組包括一符號對,并且所述次序信息表明,所述多個符號中的符號是否按照所述特定次序被排序。20.根據(jù)權(quán)利要求18或19的譯碼器,其中所述譯碼裝置包括存儲一個或多個包括多個表項的譯碼表的RAM和/或ROM,并且所述譯碼裝置根據(jù)所述譯碼表產(chǎn)生所述中間符號組,所述表項代表符號按照所述特定次序排序的中間符號組。21.根據(jù)權(quán)利要求18至20中任意一個的譯碼器,其中所述代碼生成裝置產(chǎn)生所述代碼字,其長度與按照所述特定次序排序的所述多個符號的出現(xiàn)概率成反比例地變化。22.根據(jù)權(quán)利要求21的譯碼器,其中所述譯碼裝置按照赫夫曼(Huffman)譯碼或香農(nóng)一法諾(Shannon-Fano)譯碼技術(shù)對所述代碼字譯碼。全文摘要一種應(yīng)用諸如多維赫夫曼編碼等數(shù)據(jù)壓縮技術(shù)的裝置或方法,在編/譯碼之前對消息中的符號進(jìn)行排序,并與所產(chǎn)生的代碼字一起傳送次序信息,這樣該方法或裝置就可以采用比傳統(tǒng)的編碼表小得多的壓縮型表。一種數(shù)據(jù)解壓縮裝置或方法可以根據(jù)代碼字從一壓縮型譯碼表中恢復(fù)消息;并根據(jù)和代碼字一起接收的次序信息對消息中的符號重新排序。文檔編號H03M7/42GK1144583SQ95192240公開日1997年3月5日申請日期1995年3月31日優(yōu)先權(quán)日1994年4月1日發(fā)明者克雷格·坎普貝爾·托德申請人:多爾拜實驗特許公司