两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

信號多速率點陣矢量量化的方法和系統(tǒng)的制作方法

文檔序號:2821056閱讀:319來源:國知局
專利名稱:信號多速率點陣矢量量化的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信號的編碼和解碼。尤其是,本發(fā)明涉及信號多速率點陣矢量(lattice vector)量化的方法和系統(tǒng),其可用于諸如數(shù)字傳輸和存儲系統(tǒng)中。
背景技術(shù)
現(xiàn)有技術(shù)傳統(tǒng)的數(shù)字語音和音頻信號的編碼技術(shù)是變換編碼,其中將待編碼的信號分成稱為幀的采樣塊,且用諸如離散傅立葉變換或離散余弦變換等線性正交變換對每幀進行處理,以獲得變換系數(shù),之后對其進行量化。
附圖1表示變換編碼中的高層結(jié)構(gòu)圖。在該結(jié)構(gòu)中,在編碼器中將變換T應用于輸入幀,給出變換系數(shù)。用量化器Q對變換系數(shù)進行量化,以獲得表征該幀的量化的變換系數(shù)的一個索引(index)或一組索引。通常將索引編為二進制碼,將其以二進制形式存儲在存儲介質(zhì)中,或通過通信信道傳輸。在解碼器中,由量化器Q-1的解碼器將從通信信道接收的或從存儲介質(zhì)獲取的二進制碼用于重建量化的變換系數(shù)。之后將逆變換T-1應用于這些量化的變換系數(shù),以重建合成幀。
在矢量量化(VQ)中,將幾個采樣或系數(shù)在矢量中組塊在一起(blockedtogether),且以一個碼本(codebook)項(entry)對每個矢量進行近似(量化)。為量化輸入矢量所選擇的項通常是根據(jù)距離準則得出的碼本中最近的鄰點。在碼本中增加更多的項會增加比特率和復雜性,但會降低平均失真。將碼本項稱為碼矢(codevector)。
為適應源的不斷變化的特征,通常使用自適應比特分配。通過自適應比特分配,可使用不同的碼本尺寸來量化源矢量。變換編碼中,在不超過量化所有系數(shù)的可用比特數(shù)的最大值的情況下,分配給源矢量的比特數(shù)通常取決于該矢量相對于同一幀中其它矢量的能量。圖2a和2b詳細描述常見多速率量化器環(huán)境下圖1中的量化方框圖。該多速率量化器使用幾個碼本,它們通常具有不同的比特率以量化源矢量x。通常通過對信號進行變換并取所有的變換系數(shù)或其子集來獲得該源矢量。
圖2(a)表示多速率量化器的編碼器,用Q表示,其選擇一個碼本號n和一個碼矢索引i來表征源矢量x的量化值(quantized representation)y。碼本號n指明編碼器選擇的碼本,而索引i表示在該特定碼本中選擇的碼矢。通常,將適當?shù)臒o損編碼技術(shù)分別應用于塊En和Ei中的n和i,以便在將它們復合(multiplexing,MUX)以存儲或通過通信信道傳輸之前,減小所編碼的碼本號nE和索引iE的平均比特率。
圖2(b)表示多速率量化器的解碼過程。首先,將二進制碼nE和iE分離(demultiplex,DEMUX),且分別在塊Dn和Di中解碼其無損編碼。將所獲取的碼本號n和索引i送給多速率量化器中的解碼器,用Q-1表示,其使用它們來恢復源矢量x的量化值y。不同的n值通常產(chǎn)生不同的比特分配,同樣對索引i而言,產(chǎn)生不同的比特率。將以每維所需比特數(shù)給出的碼本比特率定義為分配給源矢量的比特數(shù)與源矢量的維數(shù)的比值。
可使用幾種方法構(gòu)建碼本。一種流行的方法是根據(jù)源的分布,采用訓練算法(如k均值算法)來優(yōu)化碼本項。該方法得到非結(jié)構(gòu)化碼本,其對于待量化的每個源矢量通常必須進行存儲和窮舉搜索。因而,該方法的缺點是內(nèi)存需求大且計算復雜,它隨碼本比特率的增加而成指數(shù)增長。如果多速率量化方案基于非結(jié)構(gòu)化的碼本,該缺陷會更加擴大,因為通常要為每個可能的位分配使用特定的碼本。
另一種做法是使用約束或結(jié)構(gòu)化的碼本,其降低了搜索復雜程度,且在許多情況下,減少了存儲需求。
現(xiàn)在更詳細描述兩個結(jié)構(gòu)化矢量量化的例子多階段和點陣矢量量化。
在多階段矢量量化中,用第一階段碼本C1將源矢量x量化為碼矢y1。為減小量化誤差,之后用第二階段碼本C2將其為輸入矢量x和所選擇的第一階段碼矢y1的差值的第一階段的殘差e1=x-y1量化為碼矢y2。在后續(xù)階段中,重復該過程直到最后階段,其中用第n階段的碼本Cn將第(n-1)階段的殘差en-1=x-yn-1量化為碼矢yn。
當使用了n個階段時(n>=2),重建就可寫為這些碼矢的和y=y(tǒng)1+...yn,其中y1是第1階段碼本C1中的項,l=1,...,n??偙忍芈适撬衝個碼本的比特率之和。
在點陣矢量量化中,為簡潔起見也簡稱為點陣VQ或代數(shù)VQ,碼本是通過選擇給定點陣(lattice)中的點陣點的子集形成的。
點陣是一種N維線性結(jié)構(gòu),其中所有點或矢量可通過N個基本矢量的整數(shù)組合來獲得,即作為具有有符號整數(shù)加權(quán)的基本矢量的加權(quán)和。圖3是二維空間中的例子,其中基本矢量是v1和v2。該例中使用的點陣是所熟悉的六角形點陣,用A2表示。該圖中用十字標記的所有點可如下獲得y=k1v1+k2v2(等式1)其中y是點陣點,且k1和k2可以是任何整數(shù)。注意到圖3只表示該點陣的一個子集,因為該點陣本身可無窮擴展。我們也可以把等式l表示為矩陣形式y(tǒng)=y1y2=k1k2v1v2=k1k2v11v12v21v22]]>(等式2)其中基本矢量v1=[v11v12]和v2=[v21v22]構(gòu)成生成矩陣的行。之后,通過這些行矢量的整數(shù)組合來獲得點陣矢量。
當選擇一個點陣來構(gòu)造量化碼本時,選擇點的子集來獲得具有給定(有限)比特數(shù)的碼本。這通常采用一種稱為成形的技術(shù)來實現(xiàn)。成形是根據(jù)成形邊界對該點陣截取來完成的。成形邊界通常以原點為中心,但不必總是如此,且可以是諸如矩形、球形或塔形。圖3是球形成形邊界的示例。
使用點陣的好處是在確定碼本內(nèi)的所有點陣點中源矢量x的最近鄰點時,存在快速碼本搜索算法,其與非結(jié)構(gòu)化碼本相比,可以極大減小復雜性。事實上也不需要存儲點陣點,因為可從生成矩陣中獲得它們??焖偎阉魉惴ㄍǔI婕皩⑹苣承┘s束的x中的元素舍入(rounding off)為最近的整數(shù),以便所有舍入元素的和是偶數(shù)或奇數(shù),或等于模運算中的某個整數(shù)。一旦量化了該矢量,即一旦確定了碼本內(nèi)最近的點陣點,通常一個更復雜的操作包括對所選擇的點陣點進行索引。
一種特殊類型的快速點陣碼本搜索和索引算法涉及引導項(leader)的概念,在下面的參考文獻中對其詳細描述·C.Lamblin and J.-P.Adoul.Algorithme de quantification vectoriellespherique a partir du reseau de Gosset d′ordre 8.Ann.Telecommun.,vol.43,no.3-4,pp.172-186,1988(Lamblin,1988);·J.-M.Moureaux,P.Loyer,and M.Antonini.Low-complexity indexing method for Znand Dnlattice quantizers.IEEE Trans.Communications,vol.46,no.12,Dec.1998(Moureaux,1998);以及在下面的參考文獻中對其詳細描述
·P.Rault and C.Guillemot.Indexing algorithms for Zn,AnDn,and Dn++latticevector quantizers.
IEEE Transactions on Multimedia,vol.3,no.4,pp.395-404,Dec.2001(Rault,2001).
引導項是一種其分量按常規(guī)的降序排列的點陣點。絕對引導項是一種所有分量非負的引導項。有符號引導項是一種每個分量都有符號的引導項。通常,點陣結(jié)構(gòu)對點陣點的符號有約束,因此對引導項的符號有約束。之后將對引導項的概念更詳細描述。
矢量量化中經(jīng)常使用的點陣是8維的Gosset點陣,用RE8表示。REB中的任何8維點陣點可如下生成y=k1k2...k8GRE8]]>(等式3)其中k1,k2...k8是有符號的整數(shù),且GRE8是生成矩陣,定義為GRE8=4000000022000000202000002002000020002000200002002000002011111111=v1v2v3v4v5v6v7v8]]>(等式4)行矢量v1,v2,...,v8是該點陣的基本矢量。很容易驗證生成矩陣GRE8的逆是GRE8-1=1410000000-12000000-10200000-10020000-10002000-10000200-100000205-2-2-2-2-2-24]]>(等式5)該逆矩陣在獲取y的基本展開式時十分有用。
k1k2...k8=yGRe8-1]]>(等式6)眾所周知,點陣包括所有點陣點位于其上的嵌入球的無限集合。通常將這些球稱為外殼。RE8中的球上的點陣點可從一個或幾個引導項通過排列它們的有符號分量來生成。引導項的分量的所有排列是具有相同范數(shù)的點陣點,因而它們位于相同的點陣外殼上。因此,引導項對精確列舉點陣的外殼十分有用。位于靠近原點的外殼上的點陣點確實可從數(shù)量非常小的引導項獲得。生成外殼上的所有點陣點只需要絕對引導項和符號約束。
為設(shè)計RE8碼本,可通過利用點陣固有的幾何特性,尤其是其外殼結(jié)構(gòu),來選擇有限的點陣點子集。如Lamblin,1988中所描述的,RE8的第1個外殼的半徑是 其中l(wèi)是一個非負整數(shù)。半徑大的外殼比半徑小的外殼包含更多的點陣點。注意到外殼上有固定數(shù)目的引導項,以及該外殼上的所有其它點陣點通過排列有符號的引導項分量來獲得,盡管對符號有一些限制,有可能使用絕對和有符號引導項列舉給定外殼上的所有點。
在球形點陣VQ中,按降序重新排列x的分量,之后在定義碼本的引導項中進行最近鄰點搜索就足以確定源矢量x在該碼本中的所有點陣點中的最近鄰點。之后將最近引導項的索引以及從x排序操作中間接獲得的排列索引發(fā)送到解碼器,其可從該信息重建x的量化模擬值。結(jié)果,引導項的概念允許一種方便的索引策略,其中可用稱為有符號引導項的基數(shù)偏置(cardinalityoffset)以及稱為該有符號引導項排列的相對索引的排列索引來描述點陣點。
根據(jù)點陣的外殼結(jié)構(gòu)以及按照絕對和有符號引導項形式的點陣枚舉,有可能通過只保留小半徑的外殼、且有可能用大半徑外殼中的一些附加引導項來完善該碼本,從而構(gòu)造碼本。我們稱這種點陣碼本生成方法為近球形點陣成形(near-spherical lattice shaping)。該方法在M.Xie和J.-P.Adoul,Embeddedalgebraic vector quantization(EAVQ)with application to wideband audio coding.IEEEInternational Conference on Acoustics,Speech,and Signal Processing(ICASSP),Atlanta,GA,U.S.A,vol.1,pp.240-243,1996(Xie,19,96)中被使用。
對RE8而言,半徑為0和 的外殼中的絕對引導項如下所示。
半徑為0的外殼的絕對引導項為
半徑為 的外殼的絕對引導項為[22000000]和[11111111]對特定情形RE8下的小半徑外殼的更完整的列表,可在Lamblin(1988)中找到。
要使點陣量化用于自適應比特分配的變換編碼中,需要構(gòu)造多速率點陣碼本。一種可能的解決方案包括利用按照與Xie(1996)中類似方式的引導項形式的點陣列舉。如Xie中所解釋的那樣,多速率基于引導項的點陣量化器可用諸如下列碼本設(shè)計·嵌入代數(shù)碼本,其中低速率碼本是高速率碼本的子集,或·嵌套代數(shù)碼本,其中多速率碼本不重疊,但以與俄羅斯玩偶(Russiandolls)的嵌套類似的方式互補。
在Xie的特定例子中,多速率點陣量化使用六個名為Q0,Q1,Q2,...,Q5的碼本,其中最后五個碼本是嵌入的,即Q1Q2...Q5。這些碼本本質(zhì)上從8維點陣RE8得到。根據(jù)Xie的記法,Qn指第n個RE8碼本。碼本Qn的比特分配是4n位,對應于24n項。碼本的比特率定義為分配給源矢量的比特數(shù)與源矢量的維數(shù)之間的比值,且在RE8量化中,源矢量的維數(shù)是8,Qn的碼本比特率是每維4n/8=n/2位。
對Xie的技術(shù)而言,碼本比特率不能超過每維5/2位。由于這個限制,必須應用處理來浸潤(saturate)局外點(outlier)。局外點定義為空間中在點陣RE8中有最近的、但不在多速率碼本Qn之一中的鄰點y的點x。在Xie中,這樣的點通過因子g>1按比例縮小,直到x/g不再是局外點。很明顯,使用g可產(chǎn)生大的量化誤差。在Xie(1996)中,該問題的糾正方法是在多速率點陣量化之前將源矢量正則化。
在Xie的多速率量化技術(shù)中,有一些不足和缺陷,包括1.局外點浸潤通常是計算負擔。另外,在巨大局外點的情況下,浸潤會極大降低量化性能(波及質(zhì)量)。
2.該技術(shù)用浸潤處理局外點,且不允許為每8維矢量分配超過20比特。這在變換編碼中是一個缺陷,因為通常應該用小失真來量化高能量矢量(其更可能是局外點)以最優(yōu)化質(zhì)量,這意味著必須使用分配給特定矢量的具有足夠的比特的碼本。
3. 8、12、16和20比特的碼本Q2,Q3,Q4和Q5分別指定有3、8、23和73個絕對引導項。因為存儲需求和搜索復雜性與絕對引導項的數(shù)量密切相關(guān),這些點陣碼本的復雜性隨碼本比特率的增長而迅猛增長。
4.嵌入碼本的性能要比非重疊(即嵌套)碼本稍微差些。
與近球形成形不同的另一種點陣成形是Voronoi成形,在J.H.Conway和N.J.A.Sloane,A fast encoding method for lattice codes and quantizers,IEEE Trans.Inform.Theory,vol.IT-29,no.6,pp.820-824,Nov.1983(Conway,1983)中描述。它根據(jù)在諸如A.Gersho和R.M.Gray,Vector Quantization and Signal Compression,Kluwer Academic Publishers,1992(Gersho,1992)中描述的Voronoi區(qū)域的概念。在點陣碼本的特定情況下,Voronoi區(qū)域是其中在N維空間中的所有點都比該點陣中的任何其它點更靠近給定的點陣點的空間區(qū)域。每個點陣點有一個相關(guān)的閉Voronoi區(qū)域,該區(qū)域也包括與相鄰點陣點等距離的邊界點。在給定點陣中,所有Voronoi區(qū)域有相同的形狀,即它們是全等的。對非結(jié)構(gòu)化的碼本而言,就不是這種情況。
Voronoi碼本是點陣的子集,該碼本的所有點都落入與該點陣的Voronoi區(qū)域有相同的形狀的空間區(qū)域內(nèi),并適當?shù)匕幢壤糯笈c平移。更準確而言,將從N維的點陣Λ得到的Voronoi碼本V(r)定義為V(r)=Λ∩(2rVΛ(0)+a) (等式7)其中,r是一個非負整數(shù)參數(shù),之后更詳細定義,VΛ(0)是Λ的繞原點的Voronoi區(qū)域,且a是適當?shù)腘維偏置矢量。等式7按如下解釋為“將Voronoi碼本V(r)定義為點陣Λ的所有包含在以縮放比例因子m=2r和偏置矢量a對Voronoi區(qū)域VΛ(0)放大和平移的N維空間區(qū)域中的點?!庇辛诉@樣的定義,V(r)的碼本比特率是每維r比特。a的作用是整理連結(jié)(fix ties),即防止任何點陣點落在成形區(qū)域2rVΛ(0)+a上。
圖4表示二維六角形點陣A2中的Voronoi編碼、Voronoi區(qū)域和Voronoi區(qū)域的貼面(tiling)。點o指原點。點o和z兩者都落在用虛線標記的相同邊界內(nèi)。該邊界實際上是對A2放大m=2并稍微平移到右邊以避免點陣點落在區(qū)域邊界上的Voronoi區(qū)域。在包括點0和z的該邊界內(nèi),總共有4個點陣點,標記為3個圓點(·)和一個加號(+)符號。更一般而言,每個這樣的區(qū)域包含mN個點。在圖4中可以看到,相同的圖案(pattern),即A2放大m=2后的Voronoi區(qū)域,被重復了幾次。這個過程稱為帖面。例如,點o′和z′與o和z從帖面上是等價的??蓪Ⅻcz′寫為z′=o′+z,其中o′是2A2中的點。在圖4中,2A2中的點用加號表示。更一般而言,整個點陣可通過將Voronoi碼本的所有可能平移帖面至放大m后的點陣中的點的附近而生成。
如在D.Mukherjee和S.K.Mitra,Vector set-partitioning with successiverefinement Voronoi lattice VQ for embedded wavelet image coding,Proc.ICIP,Part I,Chicago,IL,Oct.1998,pp.107-111(Mukherjee,1998)中描述的,可通過不斷提煉將Voronoi編碼用以擴展點陣量化。Mukherjee的多階段技術(shù)在每次提煉后會產(chǎn)生更細描述粒度(granularity)的多速率量化。這種可用在變換編碼中作多速率量化的技術(shù),有幾個缺點1.每次不斷提煉之后,量化步幅減小,因此不能有效處理巨大局外點。事實上,如果巨大局外點出現(xiàn)在第一階段,后續(xù)階段不能有效減小所產(chǎn)生的誤差,因為它們只被設(shè)計為減少粒狀噪聲。因此,第一階段的性能是十分關(guān)鍵的。
2.后續(xù)提煉特性意味著對后續(xù)量化步幅有約束。這限制了量化性能。

發(fā)明內(nèi)容
本發(fā)明的一個目的是提供改進的方法和系統(tǒng),以構(gòu)造、搜索和索引多速率點陣矢量量化器。
本發(fā)明的另一個目的是提供一種改進的搜索和索引點陣碼本的方法。
上述目的是通過使用一組稱為基本碼本的點陣碼本和擴展的多速率量化器實現(xiàn)的,該量化器與現(xiàn)有技術(shù)的量化器相比能夠從基本碼本獲得更高的比特率碼本。
尤其是,根據(jù)本發(fā)明的第一個方面,提供了一種多速率點陣量化編碼方法,包括i)提供表示源信號中的幀的源矢量x;ii)提供從點陣Λ中導出的基本碼本C;iii)將點陣Λ中的點陣點y與x關(guān)聯(lián);iv)如果y包括在基本碼本C中,那么為基本碼本C中的y編索引以得到量化索引,且該方法結(jié)束;如果不包括,那么v)擴展基本碼本,以得到擴展的碼本;vi)將擴展碼本中的碼矢c與y關(guān)聯(lián);以及vii)為擴展碼本中的y編索引,以得到量化索引。
根據(jù)本發(fā)明的第二個方面,提供了一種多速率點陣量化解碼方法,包括i)提供從點陣Λ中導出的基本碼本C;ii)提供碼本號n和量化索引i;iii)使用碼本號n分離出量化索引i;iv)如果n=0,那么使用基本碼本解碼索引i,得到量化的矢量y,并結(jié)束該方法;
v)如果,那么a)提供預先選擇的Voronoi碼本V(r);b)設(shè)置擴展階數(shù)r=n以及縮放因子m=2r;c)從i中分離出索引j和k;d)將j解碼為基本碼本C中的c;e)將k解碼為Voronoi碼本V(r)中的v;以及f)重建量化的矢量為y=mc+v按照本發(fā)明的第三個方面,還提供一種擴展點陣碼本的方法,包括i)從矢量點陣L提供矢量子集,得到基本碼本;ii)以預先確定的縮放因子縮放基本碼本,得到縮放的碼矢;以及iii)在每個縮放的碼矢周圍插入Voronoi碼本,得到擴展的碼本。
可對從任意維數(shù)的任意點陣中得到的碼本使用該公開的擴展方法。但是,根據(jù)本發(fā)明一說明性實施例,與通過最優(yōu)的引導項表指定的近球形基本碼本一起使用8維Gosset點陣RE8。
除多速率點陣矢量量化方法之外,根據(jù)本發(fā)明的另一個說明性實施例,還提供了利用絕對引導項標識符的用于點陣碼本中的快速搜索和索引的方法。這些方法不是RE8點陣所特有的,且可用于任何擴展或沒有擴展的點陣中。
根據(jù)本發(fā)明的第四個方面,提供了一種多速率點陣量化編碼器,包括接收裝置,以提供表示源信號中的幀的源矢量x;存儲裝置,包括從點陣Λ中導出的基本碼本C;將點陣Λ中的點陣點y與x關(guān)聯(lián)的裝置;驗證是否y包括在基本碼本C中,以及為基本碼本C中的y編索引以得到量化的索引的裝置;擴展基本碼本以及得到擴展的碼本的裝置;將擴展碼本中的碼矢c與y關(guān)聯(lián)的裝置;以及為擴展碼本C中的y編索引,以及得到量化索引的裝置。
最后,根據(jù)本發(fā)明的第五個方面,提供了一種多速率點陣量化解碼器,包括存儲裝置,以提供從點陣Λ中導出的基本碼本C;
接收裝置,以提供編碼的碼本號n和編碼的索引i;使用碼本號n分離出量化索引i的裝置;驗證是否n=0,以及a)使用基本碼本解碼索引i,以得到量化的矢量y的裝置;驗證是否n>0的裝置;提供預先選擇的Voronoi碼本V(r)的裝置;設(shè)置擴展階數(shù)r=n以及縮放因子m=2r的裝置;從i中分離出索引j和k的裝置;將j解碼為基本碼本C中的c的裝置;將k解碼為Voronoi碼本V(r)中的v的裝置;以及重建量化的矢量為y=mc+v的裝置。
根據(jù)本發(fā)明中的方法和系統(tǒng),通過將其不斷按2的冪縮放,且將Voronoi碼本V(r)貼面在縮放的基本碼本中每個點的周圍來擴展二維基本碼本C。因此,將該擴展方法稱為Voronoi擴展。擴展階數(shù)r是應用擴展的次數(shù)。擴展的碼本C(r)包括更多的點,且在矢量空間中向上擴展更高,可捕獲局外點,同時保持與基本碼本相同的粒度。獲取的代價是比特率增加,這是為基本碼本和Voronoi碼本進行索引以及傳輸有關(guān)擴展階數(shù)的附帶信息所必需的。所公開的方法可獲得的多速率量化器的比特率是由源來決定的。將用于為Voronoi碼本編索引的比特數(shù)稱為額外開銷。
在閱讀了下面的參照附圖僅通過例子給出的、說明性的實施例中的非限制性的描述之后,本發(fā)明的其它目的、優(yōu)點和特性會變得更明顯。


在附圖中圖1標記為“現(xiàn)有技術(shù)”,是說明根據(jù)現(xiàn)有技術(shù)的變換編碼器的方框圖。
圖2(a)和2(b)標記為“現(xiàn)有技術(shù)”,分別是根據(jù)現(xiàn)有技術(shù)中方法的多速率量化器的編碼器和解碼器的方框圖;圖3標記為“現(xiàn)有技術(shù)”,是說明根據(jù)現(xiàn)有技術(shù)中的方法的二維六角形點陣A2上的球形成形的示意圖。
圖4標記為“現(xiàn)有技術(shù)”,是說明根據(jù)現(xiàn)有技術(shù)中的方法的二維六角形點陣A2中的Voronoi編碼、Voronoi區(qū)域以及Voronoi區(qū)域貼面的示意圖。
圖5是說明六角形點陣A2中的點的圖;圖6是包含用于定義基本碼本的成形邊界的圖5中的圖;圖7是說明通過只保留落在圖6所示成形邊界內(nèi)的點陣點所獲得的基本碼本C的圖。
圖8是說明具有每個碼矢周圍的Voronoi區(qū)域的圖7的基本碼本C的圖;圖9是說明源矢量位置的圖8中的圖;圖10說明將圖8中的基本碼本C按因子m=2縮放的圖。
圖11是說明具有平移的、縮放的Voronoi區(qū)域,以及包含4個點的Voronoi碼本的圖10中的縮放的基本碼本的圖;圖12是說明階數(shù)為r=1的擴展的碼本的來自圖11的圖;圖13是說明具有相關(guān)的Voronoi區(qū)域的圖12中的擴展的碼本的圖;圖14是說明將量化的矢量y重建為縮放的碼矢mc與Voronoi碼本中的碼矢v之和的來自圖13的圖;圖15是說明根據(jù)本發(fā)明第二個方面的第一個說明性的實施例的多速率點陣量化編碼方法的流程圖;圖16是說明根據(jù)本發(fā)明第三個方面的第一個說明性的實施例的多速率點陣量化解碼方法的流程圖;圖17是說明根據(jù)本發(fā)明的一個方面生成擴展的碼本Q5,Q6以及其它高速率碼本的流程圖;圖18是說明根據(jù)本發(fā)明第二個方面的第二個說明性的實施例的多速率點陣量化編碼方法的流程圖;圖19A-19B是說明分別在不使用擴展和使用擴展的情況下由圖18中的編碼方法所產(chǎn)生的碼矢索引i結(jié)構(gòu)的示意圖;以及圖20是說明根據(jù)本發(fā)明第三個方面的第二個說明性的實施例的多速率點陣量化解碼方法的流程圖。
具體實施例方式
首先,轉(zhuǎn)到圖5到14,將描述按照本發(fā)明的第一個方面的第一個說明性實施例中的多速率點陣碼本擴展方法。這里將根據(jù)本發(fā)明的這種擴展方法稱為Voronoi擴展方法。
通過一個基于六角形點陣A2的二維例子描述第一個說明性實施例。
為表述清楚,表1中匯集了與第一個說明性實施例有關(guān)的關(guān)鍵符號。


表1與根據(jù)本發(fā)明第一個說明性實施例的Voronoi擴展方法有關(guān)的符號列表圖5表示擴展至無限的六角形點陣A2中的一部分。基本碼本是通過將該點陣適當成形以得到有限的點陣點集而獲得的。圖6中對此加以說明,其中用實線表示球形成形邊界,且在圖7中,只保留了成形邊界內(nèi)的點陣點。成形邊界內(nèi)的點包括基本碼本C。盡管在本說明性實施例中使用球形成形,也可選擇性使用其它的邊界,如正方形、塔形、矩形等。
在該特定例子中,基本碼本C包括31個點陣點,且為了簡便,假定使用5位的索引i來標記該碼本。基本碼本的Voronoi區(qū)域是以圖8中用點(·)表示的每個點陣點為中心的六角形區(qū)域。
圖9表示二維平面中的源矢量x。在該說明性例子中,可看到該點陣中x的最近鄰點y(未顯示)不是基本碼本C中的項。應注意到搜索最近鄰點不限制在基本碼本C中,最近鄰點y定義為整個點陣A2中與x最近的點。在圖9的特定情況下,y是一個局外點。值得提醒的是,現(xiàn)有技術(shù)處理這種局外點y的方法是將碼本按給定因子例如2的冪縮放,得到圖10所示的縮放的碼本??墒?,這會擴大Voronoi區(qū)域,從而產(chǎn)生粒狀失真。
為保持相同的Voronoi區(qū)域以維護粒度同時擴展碼本以包含局外點,將基本碼本縮放2倍,且將Voronoi碼本嵌入每個縮放的碼矢周圍,如圖11和12所示。這種縮放方法得到包含4個點陣點的二維Voronoi碼本V(1),且需要額外2比特以作為為它編索引的額外開銷。圖13描述所得到的擴展碼本C(1)。正如圖13中所看到的,x的最近鄰點y不再是一個局外點,因為它屬于擴展碼本??墒?,與不進行擴展的基本碼本所需要的5位相比,現(xiàn)在需要5+2=7位來描述擴展碼本中的y。如圖14所示,可將量化的矢量y表示為y=mc+v (等式8)其中m是擴展縮放因子(這里m=2),c是基本碼本C中的碼矢,且v屬于用于擴展C的Voronoi碼本。
緊接著該最近的二維例子,說明一種擴展點陣碼本以防止浸潤的方法,現(xiàn)在參照第二個說明性實施例,介紹一種按照本發(fā)明的第一個方面的點陣碼本擴展方法。
現(xiàn)在假定基本碼本C是從其比特率是每維R比特的N維點陣Λ得到的。換言之,C包含2NR個N維碼矢,且需要NR位用于索引。
這種擴展包括將基本碼本按2的冪(2,4,8,等)不斷縮放,并將Voronoi碼本貼面在縮放的基本碼本中的每個點周圍。因為這個原因,這里將該擴展方法稱為Voronoi擴展。階數(shù)為r的基本碼本C的擴展是碼本C(r),定義為C(r)=∪c∈Cv∈V(r)mc+v]]>(等式9)其中m=2r且V(r)是從與C相同的點陣Λ得到的尺寸為mN=2rN的Voronoi碼本。擴展階數(shù)r定義了應用擴展的次數(shù)。擴展碼本包括更多的碼矢,因而比基本碼本C使用更多的比特數(shù)。等式9中的定義意味著擴展碼本C(r)首先需要NR位來索引基本碼本,之后需要Nr位來索引Voronoi碼本,從而總比特數(shù)是N(R+r)加上與擴展階數(shù)r有關(guān)的附帶信息。
基本碼本按2的冪不斷縮放使得Voronoi索引以精確的比特數(shù)(非分數(shù))表示??墒牵ǔ可以是大于或等于2的任何整數(shù)。
注意到這種基本形式的Voronoi擴展的粒度是每維1位,因為從第r次到第(r+1)次擴展,碼本比特率的增長是每維1位。
注意到前一個二維例子使用從點陣A2得到的特定基本碼本C。在圖7的例子中,Λ=A2,N=2,且基本碼本的比特率是每維R=5/2位。
現(xiàn)在參照圖15描述按照本發(fā)明的第二個方面的第一個說明性實施例的多速率點陣量化編碼方法100。
設(shè)x為要量化的N維源矢量。C表示從點陣Λ得到的基本碼本,且將mΛ定義為點陣Λ按整數(shù)因子m>0縮放所得。那么,根據(jù)方法100,使用C或其擴展之一對矢量x編碼的步驟如下在步驟102中,確定在無窮點陣Λ中x的最近鄰點y。步驟102得到量化的矢量y。
之后,在步驟104中,確定y是否是基本碼本C中的項。如果y在C中(步驟106),那么用于量化x的比特數(shù)是NR,其對應于基本碼本使用的比特數(shù)。將碼本號n設(shè)為0,且編碼方法結(jié)束。如果y不在基本碼本C中,將y看作是局外點,且方法100轉(zhuǎn)到步驟108,用步驟110-118構(gòu)成根據(jù)本發(fā)明的第一個方面的第三個實施例的Voronoi擴展方法。
如在這之后所討論的,因為y是一個局外點,與y是基本碼本一部分的情況相比,需要更多比特數(shù)來用y量化x。迭代的擴展程序得到擴展的碼本,最終包括點陣矢量y,之后可以適當?shù)貙λ幩饕?br> 步驟108是初始化步驟,其中將擴展階數(shù)r設(shè)為1,且縮放因子m設(shè)為2r=2。
之后計算作為步驟102中獲得的點陣Λ中矢量x的最近鄰點的點陣點y的Voronoi索引k(步驟110)。Voronoi索引k取決于擴展階數(shù)r和縮放因子m。通過下面模運算計算Voronoi索引k,因而它只取決于y在縮放并平移的Voronoi區(qū)域中的相對位置k=modm(yGΛ-1)]]>(等式10)其中GΛ是Λ的生成矩陣,且modm(·)是逐分量的模m運算。因此,Voronoi索引k是一個整數(shù)矢量,每個分量在區(qū)間0到m-1之內(nèi)。
在步驟112中,給定m,從Voronoi索引k計算Voronoi碼矢v。例如,這可以使用Conway(1983)中描述的算法實現(xiàn)。
可以按下列步驟計算v1.計算z=k*G(RE8);2.在RE8中找到1/m.(z-a)的最近鄰點w;3.計算v=z-m*w。
在步驟114中,首先計算差分矢量w=y(tǒng)-v。該差分矢量w總屬于縮放的點陣mΛ。之后,通過將逆縮放應用于差分矢量w來計算c=w/m。碼矢c屬于點陣Λ,因為w屬于mΛ。
之后驗證c是否在基本碼本C中(步驟116)。如果c不在基本碼本C中,將擴展階數(shù)r增加1,縮放因子m乘以2(步驟118),且Voronoi擴展轉(zhuǎn)到一次新迭代中(步驟110)。可是,如果c在C中,已經(jīng)找到了足夠大的用y量化源矢量x而不會出現(xiàn)浸潤的擴展階數(shù)r和縮放因子m=2r。之后象Lamblin(1988)中那樣,將y作為索引j的基本碼矢(步驟120),將j和k復合成索引i(步驟122),且在步驟124中將碼本號n設(shè)置為擴展階數(shù)(n=r),并結(jié)束編碼方法100。正如現(xiàn)有技術(shù)中所熟知的,復合包括將j和k級聯(lián),這意味著j的比特之后跟著k的比特。
量化方法的輸出包括碼本號n和碼矢y的索引i。如果使用了Voronoi擴展,n>0。否則,n=0。索引i為·基本碼本中y=c的索引,如果不使用Voronoi擴展的話,
·j和k的復合,其中j是基本碼本C中c的索引,且k是與矢量v對應的Voronoi索引。
應注意到在等式10中,將Voronoi索引k定義為k=modm(yGΛ-1),]]>其中m=2r。因為y是Λ中的點陣點,yGΛ-1實際上對應于Λ中y的基本擴展,從而是一個N維整數(shù)矢量。因此,k也是一個N維整數(shù)矢量,且由于逐分量的模運算modm,k的每個分量是0和m-1之間的整數(shù)。因為m=2r,從構(gòu)造上講,k總共需要Nr位來索引其所有的N個分量。
通過定義碼本號n和索引i的無損編碼以獲得如圖2所示的要被復合并存儲或通過通信信道傳輸?shù)膎E和iE,來完成量化方法100。
通常,多速率矢量量化器的輸出包括碼本號n和索引i,兩者從統(tǒng)計意義上都可能是冗余的。在不限制本發(fā)明的范圍和通用性的情況下,我們這里只討論碼本號n的熵編碼,以減少量化器的平均比特率,盡管對索引i不進行編碼,從而iE=i。對n可采用任何適合的現(xiàn)有技術(shù)中的無損編碼技術(shù),如算術(shù)編碼或Huffman編碼(Gersho,1992)。簡單的編碼方法是一元編碼,其中正整數(shù)n以二進制形式用n-1個1后跟0表示。將在之后更詳細描述該編碼方案。
現(xiàn)在轉(zhuǎn)到附圖16,詳細描述按照本發(fā)明第四個方面的說明性實施例的多速率點陣量化解碼方法200。首先從信道中讀取編碼的碼本號nE,且將方法100中使用的無損編碼技術(shù)倒轉(zhuǎn)以得到碼本號n(步驟202)。重要的是應注意到n表示多速率量化器的比特分配,且在步驟204中需要用它來分離量化索引i。
如果n=0(步驟206),就沒有使用Voronoi擴展。在該情況下,使用現(xiàn)有技術(shù),如(Lamblin,1988),(Moureaux,1998)或(Rault,2001)中所描述的,將索引i解碼以構(gòu)成基本碼本C中的碼矢c(步驟208)。之后只需要將量化矢量重建為y=c。
如果n>0(步驟206),就使用了Voronoi擴展。分別將擴展階數(shù)和縮放因子設(shè)置為r=n和m=2r(步驟210)。將索引j和k分離(步驟212)。將索引j解碼為基本碼本C中的c(步驟214),而將k解碼為Voronoi碼本V(r)中的v(步驟216)。在步驟218中將量化的矢量重建為y=mc+v (等式11)應注意到僅當與要量化的矢量x的最近的點陣點y在基本碼本范圍之外時,才需要本發(fā)明的說明性實施例中所使用的擴展方法。因此,假定存儲(可用比特數(shù))足夠的話,該擴展可防止浸潤。重要的是,應注意到擴展的碼本在N維空間中更進一步延伸,而有與基本碼本相同的粒度(參看諸如圖5)??墒?,當使用擴展時,需要更多的比特。
在某些情況下,量化器可能用完了比特也不能捕獲源矢量x。換言之,量化源矢量x可用的比特數(shù)可能比碼矢索引i和碼本號n所需要的比特數(shù)少。在該情況下,量化誤差不受基本碼本的粒狀結(jié)構(gòu)的限制,可出現(xiàn)大的誤差。這通常發(fā)生在非常大局外點的情況下。
可實現(xiàn)幾種策略來處理局外點,如在多速率量化之前,將源矢量x向下縮小。應用于x上的縮放因子可以不超出比特預算的方式改變。
對任意局外點x而言,之前描述的擴展的復雜性是極大的,因為擴展總是從r=0開始,在每次迭代中將r增加1,而與x無關(guān)??墒?,實際上,因為分配給實現(xiàn)平臺上的整數(shù)的大小,如對16位無符號整數(shù)而言是16,擴展階數(shù)是有限的。這種限制與Voronoi索引k的分量的最大值有關(guān)。
已發(fā)現(xiàn)所有點陣點是基本碼本C或其擴展C(r),r=1,2,...之一中的項更可取。否則,一些點陣點不可能索引。例如,按以原點為中心的近球形成形設(shè)計的基本碼本C滿足該條件。同樣,用居中的(凸狀的)區(qū)域成形(截取)點陣所得到的大多數(shù)碼本滿足該條件。
現(xiàn)在描述分別按本發(fā)明第二和第三個方面的第三個實施例的多速率點陣量化編碼和解碼方法。
本發(fā)明的第三個實施例是基于上文討論的RE8點陣。
之前的按本發(fā)明的多速率量化編碼和解碼方法的說明性實施例是基于從點陣Λ得到的以每維1比特的比特率粒度對其擴展的單個基本碼本。尤其是,使用的擴展方法適合于擴展幾個近球形基本碼本以獲得每維1/2比特、8維4比特的速率粒度。
為清楚起見,與8維多速率點陣量化方法有關(guān)的關(guān)鍵符號收集在表2中。


表2與按本發(fā)明第三個說明性實施例的8維多速率點陣量化方法有關(guān)的符號列表正如將在下文更詳細解釋的,按本發(fā)明的第二個方面的第三個說明性實施例的編碼方法包括取8維源矢量x作為輸入,并輸出索引i和碼本號n。碼本號n標識特定的RE8碼本,用Qn表示,即每個Qn是RE8點陣的子集。Qn的碼本比特率是每維4n/8位。因此,索引i中的比特數(shù)是4n。解碼器使用與編碼器相同的多速率碼本Qn,并僅僅是從索引i和碼本號n重建點陣點y。
按照第三個說明性實施例,n可以是除1之外的任何非負整數(shù),即取集合{0,2,3,4,5,6,...}中的值。n=1的情況是不利的,因為它對應于為維數(shù)8分配4比特。當然,在這樣低的比特率上,點陣量化不是十分有效,且在變換編碼中使用噪聲填充技術(shù)通常更好。
按照第三個說明性的實施例,將多速率碼本分為兩類低速率基本碼本Q0,Q2,Q3和Q4,其為傳統(tǒng)的近球形點陣碼本。在設(shè)備中實現(xiàn)該方法的情況下,通過使用存儲器中存儲的表或?qū)⑵溆簿幋a在該設(shè)備中而使這些碼本可用。注意到在該說明性的實施例中,碼本Q2和Q3是嵌入的,即Q2是Q3中的子集。
n>4時的高速率擴展碼本Qn,其實際上是在該設(shè)備中通過將按照本發(fā)明的Voronoi擴展方法交替應用于Q3和Q4、從而使Q5作為Q3的第一階擴展生成,Q6作為Q4的第一階擴展生成,Q7作為Q3的第二階擴展生成等而構(gòu)造出來的。更一般而言,如圖17中所示,n′=n+2r>4時的擴展碼本Qn′作為Qn的第r階擴展生成,因而對于奇數(shù)n′,n=3,且對于偶數(shù)n′,n=4。
在Q4處區(qū)分低和高速率擴展碼本使得可在質(zhì)量(性能)和復雜性之間進行折衷。例如,將區(qū)分點設(shè)置在Q5處會得到更大的索引表,而將區(qū)分點設(shè)置在Q3處會導致質(zhì)量下降但復雜性降低。
表3定義從絕對引導項到Q0,Q2,Q3和Q4的映射。該映射使得可明白無誤地指定基本碼本。注意到該表中沒有出現(xiàn)與這些引導項有關(guān)的符號約束,但可以肯定有普通技術(shù)技能的人能從RE8的特性中找到它們(Lamblin,1988)。



表3按本發(fā)明的第三個方面的第三個說明性實施例定義基本碼本Q0,Q2,Q3和Q4的RE8中的絕對引導項列表另外,將定義Voronoi成形的8維偏置a設(shè)置為a=[2 0 0 0 0 0 0 0 0]。
現(xiàn)在參照圖18更詳細描述按本發(fā)明的第二個方面的第三個實施例的多速率點陣編碼方法300。
假定x是待量化的8維源矢量。該方法首先從步驟302開始,找到在無窮點陣RE8中8維輸入x的最近鄰點y。之后,在步驟304中,驗證y是否是基本碼本QO,Q2,Q3或Q4中的項。該驗證輸出碼本號n和n>0時的標識符ka。下文提供該驗證的細節(jié)。該階段中的碼本號n從集合{0,2,3,4,out)中取。值out是一個整數(shù),將其設(shè)置為任意值out=100。值n=out用于表示已檢測到局外點,意思是點陣點y不是任何基本碼本中的項。之后有兩種情況·如果n≤4(步驟304),在步驟306結(jié)束編碼。如果n=0(步驟306),y是零矢量,且結(jié)束編碼。如果n=2,3或4,那么額外信息ka標識定義Qn的絕對引導項之一。下文將更詳細解釋給定ka在Qn中索引矢量y。
·如果n=out(步驟304),應用按照本發(fā)明的Voronoi擴展方法。該擴展方法的第一步(308)是初始化擴展參數(shù),之后迭代Voronoi擴展算法,如下面所描述的,直到y(tǒng)包括在擴展的碼本中。
在多速率點陣矢量編碼和解碼方法的第二個實施例中,Voronoi擴展是通過將擴展階數(shù)r增加1進行迭代直到到達y為止。這可產(chǎn)生極大的復雜性。為抑制最壞情況下的復雜性,已發(fā)現(xiàn)對Voronoi擴展而言,使用最多兩次迭代是有利的。
在該擴展方法的初始化步驟中,給定點陣矢量y=[y1...y8],將擴展階數(shù)r和擴展縮放因子m設(shè)置為某個初始值以便最小化對r的迭代次數(shù)。將迭代記數(shù)器iter設(shè)置為0。
預先選擇r和m的實現(xiàn)過程如下首先,計算浮點值σ=(y12+...+y82)/32,設(shè)置r=1以及m=2r=2。之后,當σ>11時,通過更新σ=σ/4,r=r+1和m=2m迭代σ,r和m。該方法的合理性通過下列兩點觀測得到證明·從第r階擴展到第(r+1)階擴展時,基本碼本Q3和Q4擴大m=2r+1倍,而不是m=2r倍。與第r次擴展相比,在第(r+1)次擴展之后,擴展的基本碼矢的二范數(shù)(squared norm)擴大4倍。這解釋為什么在每次對r迭代之后,將因子1/4應用于σ。
·基本碼本的并集Q0∪Q2∪Q3∪Q4包含RE8外殼0到32上的點陣點。可驗證Q0∪Q2∪Q3∪Q4中的最外層完備外殼是外殼5。終止條件σ>11中的常量11通過實驗在5和32之間選擇的。
另一種初始化程序包括直接計算σ小于(go into)11有多少次,之后相應設(shè)置r和m。該結(jié)果自然與之前描述的迭代程序相同。
如果iter=2(步驟310),該方法退出步驟310-326中的循環(huán)。
在步驟312中,給定m,使用模算法計算點陣點y的Voronoi索引k。Voronoi索引k取決于擴展階數(shù)r和縮放因子m。在RE8點陣的特定情況下,如下計算Voronoi索引k=modm(yGRE8-1)]]>其中GRE8是等式4中定義的生成矩陣,且modm(·)是逐分量的模m運算。因此,Voronoi索引k是一個8個整數(shù)的矢量,每個分量在0與m-1之間。因此,從結(jié)構(gòu)上講,k總共需要8r位來索引所有分量。
給定m,從Voronoi索引k計算Voronoi碼矢v(步驟314)。為此,可使用(Conway,1983)中描述的算法。
計算差分矢量w=y(tǒng)-v(步驟316)。該差分矢量w是縮放的點陣mRE8中的一個點。之后計算c=w/m(步驟316),即將逆縮放應用于差分矢量w。點c屬于點陣RE8,因為w屬于mRE8。
該擴展方法繼續(xù)驗證c是否是基本碼本Q2,Q3或Q4中的項(步驟318)。該驗證輸出碼本號n和標識符ka。之后將對驗證的細節(jié)作更詳細的描述。對所公開的多速率基本碼本而言,在該階段c不可能在中。因而,n的實際值可能是2,3,4或out。
如果n=out,將擴展階數(shù)r增加1,且將擴展縮放因子m乘以2(步驟320)。
如果c是Q2中的項,它也是Q3中的項,因為Q2內(nèi)含在Q3中(Q2Q3)。因此,如果n=2,將n設(shè)置為n=3(步驟322)。當n=3或n=4時,擴展階數(shù)r和縮放因子m=2r足夠大以量化源矢量x而不出現(xiàn)浸潤。更新碼本號n以合并擴展階數(shù)r。這是通過將n增加2r來實現(xiàn)的(步驟322)。之后將c,ka,n和k保存到存儲器中(步驟324),且將擴展階數(shù)r減少1,將縮放因子m除以2(步驟326)。
在開始新的迭代(步驟310)之前,將迭代記數(shù)器iter的增量增加1(步驟328)。
當循環(huán)在兩次迭代后終止時,從包含下列值的存儲器中獲取表征擴展的參數(shù)(步驟330)·在步驟316中計算的矢量c,其是Q3或Q4中的項;·在步驟312中計算的Voronoi索引k。應注意Voronoi索引k是一個8維矢量,其中每個分量是在0與m-1之間的整數(shù),且可用r位來索引;·作為步驟318的副產(chǎn)品計算的標識符ka;以及·如在步驟320中計算的合并擴展階數(shù)r的碼本號n。
在步驟332中計算c的索引j。該索引與Voronoi索引k復合在一起形成索引i(步驟334)。為完成編碼,如之后將要描述的,對碼本號n進行無損編碼,且與索引i復合在一起存儲或通過信道傳輸。
應注意編碼方法300假定有足夠的存儲量可用來以點陣點y表征源矢量x。因此,多速率量化編碼方法300最好通過在應用方法300之前、將源矢量x向下縮放成x/g而以增益形式(gain-shape)方式應用。確定標量參數(shù)g>1以避免濫用存儲器,并用現(xiàn)有技術(shù)方法將其單獨量化??墒牵绻荒苓m當選擇g而出現(xiàn)存儲器溢出,則缺省時將n設(shè)置為0,因此重建值y變成零矢量。g的選擇和量化技術(shù)這里不詳細敘述,因為這取決于實際的應用。
另外,假定在軟件平臺上實現(xiàn)方法300,其中Voronoi索引k的分量用16位整數(shù)表示,r的最大值是r=16,從而碼本號的最大值是n=4+2×16=36。
現(xiàn)在更詳細說明在基本碼本中尋找絕對引導項標識符以及驗證一個點陣點是否在基本碼本中的方法(步驟304和318)。
按照現(xiàn)有技術(shù)的方法,為驗證點陣點y是否是近球形點陣碼本Q2,Q3或Q4中的項,將y的分量的絕對值以降序重新排列并逐分量直接與定義該碼本的絕對引導項作比較(參見諸如Lamblin,1988)。按照本發(fā)明的方法是基于使用標識符ka。下面按三個步驟來描述該方法1)從y中計算值s。將y寫為分量形式y(tǒng)=[y1...y8],該值計算為
s=(y14+...+y84)/8 (等式12)2)為定義基本碼本的絕對引導項y計算的值s相互不同。再者y的所有有效的有符號排列將產(chǎn)生相同的s值。因此,這里將s值稱為關(guān)鍵值,因為它唯一標識一個絕對引導項和所有有關(guān)的有符號排列。
3)如果s=0,將ka設(shè)置為36,y是零矢量。否則,在映射表中查找關(guān)鍵值s,將s轉(zhuǎn)換成標識符ka,可獲得在0和37之間的整數(shù)值。表4給出該映射,很容易從表3計算得到它。如果關(guān)鍵值s是表4中的項,標識符ka是在0和36之間的整數(shù)(參見表4)。否則,通過將ka設(shè)置為37,將y聲明為局外點。


表4用于定義基本碼本Q2,Q3和Q4的RE8中的絕對引導項的標識符ka列表應注意到表4中右邊的最后一列只是提供信息,并明白無誤地定義標識符ka與有關(guān)的絕對引導項之間的映射。
在該階段,標識符證實0≤ka≤37。當然,如果0≤ka<36,y就在Q2,Q3或Q4中。如果ka=36,y就在Q0中。如果ka=37,y不在任何基本碼本中。之后,用表5將標識符ka映射到碼本號n。


表5按照本發(fā)明將絕對引導項的標識符ka轉(zhuǎn)換為基本碼本號n的映射表現(xiàn)在更詳細描述基于絕對引導項的標識符索引基本碼本Q2,Q3和Q4的方法(步驟306和332)。
使用諸如Lamblin(1988)中描述的現(xiàn)有技術(shù)中用于近球形碼本的索引技術(shù)計算基本碼本Q2,Q3和Q4中的項y的索引。更準確而言,如下計算y的索引例如,jj=基數(shù)偏置+排列的秩。按照Schalkwijk公式計算排列的秩,這是熟知的技術(shù),且在(Lamblin,1988)中描述。在計算了y的有符號的引導項之后,通過查表找到基數(shù)偏置。這種查表是基于有關(guān)的絕對索引項的標識符ka。
按照本發(fā)明的說明性實施例,基于下列映射、使用現(xiàn)有技術(shù)中作為一元碼的所熟知的變長二進制碼來編碼碼本號nQ0→0
Q2→10Q3→110Q4→1110Q5→11110...
上述映射的右端給出以二進制表示的nE,將其與碼矢索引i復合在一起。另外,當使用Voronoi擴展時(當n>4時),碼矢索引i包括兩個復合在一起的子索引·對于奇數(shù)n為12位且對于偶數(shù)n為16位的基本碼本索引j;以及·8r位的Voronoi索引k包括r位的8個整數(shù)作為其分量。
當2≤n≤4時,i的結(jié)構(gòu)如圖19(a)所示,而圖19(b)中考慮n>4的情況。應注意到在整個4n位的塊中,復合的位可按任何方式排列。
現(xiàn)在參照圖20更詳細描述按本發(fā)明的第三個方面的第三個實施例的多速率點陣解碼方法400。
首先從信道中讀取編碼的碼本號nE,并解碼以得到碼本號n(步驟402)。通過將方法300中描述的映射反轉(zhuǎn)過來,可從nE中獲得碼本號n。之后,解碼器根據(jù)碼本號n對碼矢索引i作不同解釋。
如果n=0(步驟404),y重建為零矢量,其是基本碼本Q0中的唯一項(步驟406)。
如果0<n≤4(步驟404),將來自信道的4n位大小的碼矢索引i分離出來(步驟408)。之后,將i解碼為基本碼本Q2,Q3或Q4的索引,且使用現(xiàn)有技術(shù)重建y(步驟410),如在Lambiin(1988),Moureaux(1998)和Rault(2001)中所描述的。
在步驟404中值n>4表示使用了Voronoi擴展。將來自信道的4n位大小的碼矢索引i(步驟408)從i中分離為基本碼本索引j和Voronoi索引k步驟412)。同樣獲取擴展階數(shù)r,且從n中得到縮放因子m(步驟414)。r的值作為商(n-3)/2獲得,且m=2r之后,從n中減去2r以標識Q3或Q4,且使用減去后的n值,將索引j解碼為c(步驟416)。j的解碼是基于現(xiàn)有技術(shù)方法,包括秩解碼和查表,如Lamblin(1988),Moureaux(1998)和Rault(2001)中所描述的。使用(Conway,1983)中描述的現(xiàn)有技術(shù)算法,基于m將Voronoi索引k解碼為v(步驟418)。最后,在步驟420中,解碼器計算重建值y=mc+v,其中m=2r是擴展縮放因子,c是基本碼本的碼矢,且v是Voronoi碼本的碼矢。當r=0時,沒有使用擴展,且v是零矢量,m變成為1。
盡管上文通過其中的說明性實施例描述本發(fā)明,可對其修改而不偏離本發(fā)明的精神和實質(zhì),如附加權(quán)利要求中所定義的。
權(quán)利要求
1.一種多速率點陣量化編碼方法,包括i)提供用于表示來自源信號的幀的源矢量x;ii)提供從點陣Λ中導出的基本碼本C;iii)將所述點陣Λ中的點陣點y與x關(guān)聯(lián);iv)如果y包括在所述基本碼本C中,則為所述基本碼本C中的y編索引,得到量化索引,并且結(jié)束該方法,如果不包括,則v)擴展所述基本碼本,以得到擴展的碼本;vi)將來自所述擴展碼本的碼矢c與y關(guān)聯(lián);以及vii)為所述擴展碼本中的y編索引,以得到量化索引。
2.根據(jù)權(quán)利要求1所述的方法,其中用表達式mC+V來表示所述擴展碼本,其中C是所述基本碼本,V是所述點陣Λ中的適當點集。
3.根據(jù)權(quán)利要求1所述的方法,其中在iii)中,選擇所述點陣Λ中的所述點陣點y作為所述點陣Λ中x的最近鄰點。
4.根據(jù)權(quán)利要求1所述的方法,其中步驟v)包括提供整數(shù)縮放因子m>=2;步驟vi)包括使用m計算與點陣點y對應的Voronoi碼矢v,并且提供偏置;以及vi)包括使用v和m計算所述碼矢c。
5.根據(jù)權(quán)利要求4所述的方法,其中在步驟v)中將所述縮放因子m設(shè)置為2r,且步驟v)還包括計算Voronoi索引k;步驟vi)包括使用k和m計算與所述點陣點y對應的Voronoi碼矢v。
6.根據(jù)權(quán)利要求4所述的方法,其中在vi)中將所述碼矢c計算為c=(y-v)/m,其中m是一個大于或等于2的整數(shù)。
7.根據(jù)權(quán)利要求4所述的方法,其中步驟vi)還包括驗證c是否在所述基本碼本C中,那么a)步驟vii)還包括將y作為基本碼矢為其編索引,以及將j和k復合得到量化索引,其中j是基本碼本C中的c的索引,且k是與矢量v對應的Voronoi索引;如果不在,那么b)增加所述縮放因子以及所述Voronoi擴展的所述階數(shù),并重復步驟v)到vi)。
8.根據(jù)權(quán)利要求4所述的方法,還包括在vii)中定義與所述擴展階數(shù)r對應的碼本號以及所述基本碼本中碼矢y的索引i的無損編碼,得到編碼的碼本號nE和編碼的索引iE;以及將nE和iE復合在一起。
9.根據(jù)權(quán)利要求1所述的方法,還包括vii)在存儲裝置中存儲所述量化索引。
10.根據(jù)權(quán)利要求1所述的方法,還包括vii)通過通信信道傳輸所述量化索引。
11.一種多速率點陣量化編碼方法,包括提供表示來自源信號的幀的源矢量x;提供無窮點陣L中的點的有限子集C和V;將x與y關(guān)聯(lián),y是所述點陣L中的所述點之一;以及當y=mc+v時,用整數(shù)碼本號n和索引i作為y的索引,其中c是C中的元素,v是V中的元素,且m是一個大于或等于2的整數(shù);其中從n唯一定義點陣L的所述子集C和V、m的值和i的大小。
12.根據(jù)權(quán)利要求11所述的方法,其中用一元碼表示n。
13.根據(jù)權(quán)利要求11所述的方法,其中無窮點陣L的所述子集V是Voronoi碼本,且v的所述索引是Voronoi索引。
14.根據(jù)權(quán)利要求11所述的方法,其中所述索引i是c的索引與v的索引的級聯(lián)。
15.根據(jù)權(quán)利要求11所述的方法,其中當實現(xiàn)該方法時可用的所分配比特數(shù)不足以表示所述無窮點陣L中的所述源矢量x時,y=
且將n設(shè)置預先確定的值。
16.根據(jù)權(quán)利要求11所述的方法,其中m=2r;所述子集C預先確定;所述碼本號n等于r加上一個預先確定的整數(shù);r是一個大于或等于1的整數(shù)。
17.一種多速率點陣量化編碼方法,包括i)提供表示來自源信號的幀的8維源矢量x;ii)提供從RE8點陣導出的低速率點陣基本碼本Qo,Q2,Q3和Q4;iii)確定所述點陣RE8中的點陣點y,其是所述點陣RE8中的x的最近鄰點;iv)如果y包含在Qz中,其中z等于0,2,3或4,那么a)存儲號碼z和標識定義Qz的絕對引導項之一的標識符ka,b)如果z>0,那么b1)為Qz中的y編索引,得到量化索引,如果m=0,那么b2)將y作為零矢量輸出,且c)結(jié)束該方法;v)提供擴展階數(shù)r,并將縮放因子m設(shè)置為2r;vi)設(shè)置迭代次數(shù)iter=0;vii)計算點陣點y的Voronoi索引k;viii)使用k和m計算與所述點陣點y對應的Voronoi碼矢v;ix)根據(jù)c=(y-v)/m計算碼矢c;x)如果c包含在Qz中,其中z等于2,3或4,那么aa)提供z和ka;如果n=2,設(shè)置n=3;將n增加2r;存儲k,c,z,和ka的值;將m除以2;將r減少1;如果不包含,那么bb)將m乘以2;將r增加1;xi)將所述迭代次數(shù)增加1;xii)如果所述迭代次數(shù)=2,那么aaa)獲取所述k,c,z和ka的值;給定ka,為Q3或Q4中的c編索引j;將j和k復合以形成索引i,其中k是碼矢y的索引,且j是c的索引;如果不等,那么bbb)重復步驟vii)到xii)。
18.根據(jù)權(quán)利要求17所述的方法,其中在vii)中,按下式計算kk=modm(yGRE8-1)]]>其中GRE8是生成矩陣,定義為GRE8=4000000022000000202000002002000020002000200002002000002011111111=v1v2v3v4v5v6v7v8]]>且modm(.)是逐分量的模m運算。
19.根據(jù)權(quán)利要求17所述的方法,還包括在步驟iii)之前,將所述源矢量x按比例縮小為x/g;選擇g以便大于1且避免實現(xiàn)該方法中所使用的存儲器中的溢出。
20.一種多速率點陣量化解碼方法,包括i)提供從點陣Λ中導出的基本碼本C;ii)提供碼本號n和量化索引i;iii)使用所述碼本號n分離所述量化索引i;iv)如果n=0,那么使用所述基本碼本解碼所述索引i,得到量化的矢量y,且結(jié)束該方法;v)如果,那么a)提供預先選擇的Voronoi碼本V(r);b)設(shè)置擴展階數(shù)r=n以及縮放因子m=2r;c)從i中分離出索引j和k;d)將j解碼為所述基本碼本C中的c;e)將k解碼為所述Voronoi碼本V(r)中的v;以及f)重建量化的矢量為y=mc+v。
21.根據(jù)權(quán)利要求20所述的方法,其中在ii)中,首先提供編碼的碼本號nE和編碼的索引iE;之后將預先確定的無損編碼技術(shù)應用于所述編碼的碼本號nE之上以得到所述碼本號和所述量化索引i。
22.根據(jù)權(quán)利要求20中所述解碼方法,其中從通信信道讀取所述碼本號n和所述索引i。
23.根據(jù)權(quán)利要求20中所述解碼方法,其中從存儲裝置讀取所述碼本號n和所述索引i。
24.一種多速率點陣量化解碼方法,包括提供無窮點陣L中的點的有限子集C和V;提供碼本號n和索引i;使用n和i將點陣L中的矢量y重建為y=mc+v,其中m是一個大于或等于2的整數(shù),且c和v是L中包含的點;所述點c被重建為L的有限子集C中的元素;所述點v被重建為L的有限子集V中的元素;使用i計算v和c的索引;其中從n唯一定義點陣L的所述子集C和V、m的值和i的大小。
25.根據(jù)權(quán)利要求20所述的方法,其中從一元碼重建n。
26.根據(jù)權(quán)利要求20所述的方法,其中L的所述子集V是Voronoi碼,且v的所述索引是Voronoi索引。
27.一種多速率點陣量化解碼方法,包括提供從RE8點陣導出的低速率點陣基本碼本Qo,Q2,Q3和Q4;提供碼本號n和索引i;如果n=0,那么將y重建為零矢量;如果0<n≤4,那么分離碼矢索引i,將i解碼為基本碼本Q2,Q3或Q4的索引,并重建y;如果n>4,那么將所述碼矢索引i分離為基本碼本索引j和來自i的Voronoi索引k;從n提供擴展階數(shù)r和縮放因子m;使用n標識Q3或Q4,且解碼所述索引j;計算y=mc+v,其中m=2r是擴展縮放因子,c是所述基本碼本的碼矢,且v是Voronoi碼本的碼矢。
28.一種點陣碼本擴展方法,包括i)從矢量點陣L提供矢量子集,得到基本碼本;ii)根據(jù)預先確定的縮放因子縮放所述基本碼本,得到縮放的碼矢;以及iii)在每個縮放的碼矢周圍插入Voronoi碼本,得到擴展的碼本。
29.根據(jù)權(quán)利要求28所述的方法,其中通過保留邊界內(nèi)的矢量選擇所述矢量子集。
30.根據(jù)權(quán)利要求28所述的方法,其中步驟ii)包括提供整數(shù)縮放因子m>=2。
31.根據(jù)權(quán)利要求28所述的方法,其中在步驟ii)中將所述縮放因子m設(shè)置為2r。
32.根據(jù)權(quán)利要求28所述的方法,其中通過保留邊界內(nèi)的矢量選擇所述矢量子集。
33.一種源矢量x的點陣矢量量化方法,包括i)從N維矢量點陣提供矢量子集,得到需要用NR位來索引的基本碼本,其中R是所述基本碼本每維的比特率。ii)確定所述矢量點陣中x的最近矢量y;iii)如果所述最近矢量y包含在所述基本碼本中,那么為所述基本碼本中的y編索引,得到量化索引,輸出所述量化索引,且結(jié)束該方法;如果不在,那么iv)提供預先確定的縮放因子;v)將所述基本碼本按所述縮放因子縮放,得到包含縮放的碼矢的縮放的碼本;vi)在每個所述縮放的碼矢周圍插入Voronoi碼本,得到需要用N(R+r)位來索引的擴展的碼本,其中r是所述Vorenoi碼本的階數(shù);以及vii)如果所述最近鄰點y包含在所述擴展碼本中,那么為所述擴展碼本中的y編索引,得到量化索引,輸出所述量化索引,且結(jié)束該方法;如果不在,那么viii)如果索引所述擴展碼本所需要的比特數(shù)不超過預先確定的門限,那么增加所述縮放因子和所述Voronoi碼本的所述階數(shù),并重復步驟v)到viii);如果超過,那么將所述最近鄰點考慮作為遙遠的局外點,并輸出預先確定的對應量化索引。
34.根據(jù)權(quán)利要求33所述的方法,其中在步驟iv)中,所述預先確定的縮放因子是2,且在步驟viii)中,所述縮放因子增加2倍。
35.根據(jù)權(quán)利要求33所述的方法,其中在步驟viii)中,所述Voronoi碼本的所述階數(shù)增加1。
36.一種多速率點陣量化編碼器,包括接收裝置,以提供表示來自源信號的幀的源矢量x;存儲裝置,包括從點陣Λ中導出的基本碼本C;將所述點陣Λ中的點陣點y與x關(guān)聯(lián)的裝置;驗證是否y包括在所述基本碼本C中,以及在所述基本碼本C為y編索引,以得到量化索引的裝置;擴展所述基本碼本以及得到擴展的碼本的裝置;將所述擴展碼本中的碼矢c與y關(guān)聯(lián)的裝置;以及在所述擴展碼本C為y編索引,以及得到量化索引的裝置。
37.一種多速率點陣量化編碼器,包括接收表示來自源信號的幀的源矢量x的裝置;提供無窮點陣L中的點的有限子集C和V的裝置;將x與所述點陣L中的所述點之一y關(guān)聯(lián)的裝置;當y=mc+v時,將整數(shù)碼本號n和索引i作為y的索引的裝置,其中c是C中的元素,v是V中的元素,且m是大于或等于2的整數(shù);其中點陣L的所述子集C和V、m的值和i的大小都唯一根據(jù)n定義。
38.一種多速率點陣量化解碼器,包括存儲裝置,以提供從點陣Λ中導出的基本碼本C;接收裝置,以提供編碼的碼本號n和編碼的索引i;使用所述碼本號n分離所述量化索引i的裝置;驗證是否n=0,以及a)使用所述基本碼本解碼所述索引i,以得到量化的矢量y的裝置;驗證是否n>0的裝置;提供預先選擇的Voronoi碼本V(r)的裝置;設(shè)置擴展階數(shù)r=n以及縮放因子m=2r的裝置;從i中分離出索引j和k的裝置;將j解碼為所述基本碼本C中的c的裝置;將k解碼為所述Voronoi碼本V(r)中的v的裝置;以及重建量化的矢量y=mc+v的裝置。
39.一種多速率點陣量化解碼器,包括存儲裝置,其提供無窮點陣L中的點的有限子集C和V;接收裝置,其提供碼本號n和索引i;使用n和i將點陣L中的矢量y重建為y=mc+v的裝置,其中m是一個大于或等于2的整數(shù),且c和v是L中包含的點;所述點c被重建為L的有限子集C中的元素;將所述點v重建為L的有限子集V中的元素;使用i計算v和c的索引;其中根據(jù)n唯一定義點陣L的所述子集C和V、m的值和i的大小。
全文摘要
本發(fā)明涉及一種用于諸如數(shù)字傳輸和存儲系統(tǒng)中的表示來自源信號的幀的源矢量x的多速率點陣矢量量化的方法和系統(tǒng)。該多速率點陣量化編碼方法包括如下步驟將無窮點陣∧中的點陣點y與x關(guān)聯(lián);驗證y是否包括在從點陣∧導出的基本碼本C中;如果是這種情況,那么為C中的y編索引以便得到量化索引。如果不是,那么使用諸如基于Voronoi的擴展方法擴展基本碼本,得到擴展的碼本;將擴展碼本中的碼矢c與y關(guān)聯(lián),為擴展碼本C中的y編索引。與現(xiàn)有技術(shù)中的量化方法和系統(tǒng)相比,該擴展方法可從基本碼本獲得更高比特率碼本。
文檔編號G10L19/038GK1659785SQ03812652
公開日2005年8月24日 申請日期2003年5月30日 優(yōu)先權(quán)日2002年5月31日
發(fā)明者布魯諾·貝塞特, 斯蒂芬·拉戈特, 讓-皮埃爾·阿道爾 申請人:沃伊斯亞吉公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南充市| 乐亭县| 临漳县| 锡林浩特市| 静乐县| 新源县| 利川市| 望都县| 会泽县| 永新县| 宝应县| 麻城市| 洪洞县| 两当县| 高台县| 丽水市| 资源县| 临颍县| 侯马市| 汝南县| 平舆县| 陆良县| 湾仔区| 浙江省| 衡东县| 康定县| 林甸县| 泽州县| 莲花县| 咸宁市| 泽州县| 葵青区| 博白县| 长兴县| 恭城| 朝阳区| 林口县| 宜城市| 尖扎县| 观塘区| 平塘县|