新四季網

信號多速率點陣矢量量化的方法和系統的製作方法

2023-05-17 01:49:46

專利名稱:信號多速率點陣矢量量化的方法和系統的製作方法
技術領域:
本發明涉及信號的編碼和解碼。尤其是,本發明涉及信號多速率點陣矢量(lattice vector)量化的方法和系統,其可用於諸如數字傳輸和存儲系統中。
背景技術:
現有技術傳統的數字語音和音頻信號的編碼技術是變換編碼,其中將待編碼的信號分成稱為幀的採樣塊,且用諸如離散傅立葉變換或離散餘弦變換等線性正交變換對每幀進行處理,以獲得變換係數,之後對其進行量化。
附圖1表示變換編碼中的高層結構圖。在該結構中,在編碼器中將變換T應用於輸入幀,給出變換係數。用量化器Q對變換係數進行量化,以獲得表徵該幀的量化的變換係數的一個索引(index)或一組索引。通常將索引編為二進位碼,將其以二進位形式存儲在存儲介質中,或通過通信信道傳輸。在解碼器中,由量化器Q-1的解碼器將從通信信道接收的或從存儲介質獲取的二進位碼用於重建量化的變換係數。之後將逆變換T-1應用於這些量化的變換係數,以重建合成幀。
在矢量量化(VQ)中,將幾個採樣或係數在矢量中組塊在一起(blockedtogether),且以一個碼本(codebook)項(entry)對每個矢量進行近似(量化)。為量化輸入矢量所選擇的項通常是根據距離準則得出的碼本中最近的鄰點。在碼本中增加更多的項會增加比特率和複雜性,但會降低平均失真。將碼本項稱為碼矢(codevector)。
為適應源的不斷變化的特徵,通常使用自適應比特分配。通過自適應比特分配,可使用不同的碼本尺寸來量化源矢量。變換編碼中,在不超過量化所有係數的可用比特數的最大值的情況下,分配給源矢量的比特數通常取決於該矢量相對於同一幀中其它矢量的能量。圖2a和2b詳細描述常見多速率量化器環境下圖1中的量化方框圖。該多速率量化器使用幾個碼本,它們通常具有不同的比特率以量化源矢量x。通常通過對信號進行變換並取所有的變換係數或其子集來獲得該源矢量。
圖2(a)表示多速率量化器的編碼器,用Q表示,其選擇一個碼本號n和一個碼矢索引i來表徵源矢量x的量化值(quantized representation)y。碼本號n指明編碼器選擇的碼本,而索引i表示在該特定碼本中選擇的碼矢。通常,將適當的無損編碼技術分別應用於塊En和Ei中的n和i,以便在將它們複合(multiplexing,MUX)以存儲或通過通信信道傳輸之前,減小所編碼的碼本號nE和索引iE的平均比特率。
圖2(b)表示多速率量化器的解碼過程。首先,將二進位碼nE和iE分離(demultiplex,DEMUX),且分別在塊Dn和Di中解碼其無損編碼。將所獲取的碼本號n和索引i送給多速率量化器中的解碼器,用Q-1表示,其使用它們來恢復源矢量x的量化值y。不同的n值通常產生不同的比特分配,同樣對索引i而言,產生不同的比特率。將以每維所需比特數給出的碼本比特率定義為分配給源矢量的比特數與源矢量的維數的比值。
可使用幾種方法構建碼本。一種流行的方法是根據源的分布,採用訓練算法(如k均值算法)來優化碼本項。該方法得到非結構化碼本,其對於待量化的每個源矢量通常必須進行存儲和窮舉搜索。因而,該方法的缺點是內存需求大且計算複雜,它隨碼本比特率的增加而成指數增長。如果多速率量化方案基於非結構化的碼本,該缺陷會更加擴大,因為通常要為每個可能的位分配使用特定的碼本。
另一種做法是使用約束或結構化的碼本,其降低了搜索複雜程度,且在許多情況下,減少了存儲需求。
現在更詳細描述兩個結構化矢量量化的例子多階段和點陣矢量量化。
在多階段矢量量化中,用第一階段碼本C1將源矢量x量化為碼矢y1。為減小量化誤差,之後用第二階段碼本C2將其為輸入矢量x和所選擇的第一階段碼矢y1的差值的第一階段的殘差e1=x-y1量化為碼矢y2。在後續階段中,重複該過程直到最後階段,其中用第n階段的碼本Cn將第(n-1)階段的殘差en-1=x-yn-1量化為碼矢yn。
當使用了n個階段時(n>=2),重建就可寫為這些碼矢的和y=y1+...yn,其中y1是第1階段碼本C1中的項,l=1,...,n。總比特率是所有n個碼本的比特率之和。
在點陣矢量量化中,為簡潔起見也簡稱為點陣VQ或代數VQ,碼本是通過選擇給定點陣(lattice)中的點陣點的子集形成的。
點陣是一種N維線性結構,其中所有點或矢量可通過N個基本矢量的整數組合來獲得,即作為具有有符號整數加權的基本矢量的加權和。圖3是二維空間中的例子,其中基本矢量是v1和v2。該例中使用的點陣是所熟悉的六角形點陣,用A2表示。該圖中用十字標記的所有點可如下獲得y=k1v1+k2v2(等式1)其中y是點陣點,且k1和k2可以是任何整數。注意到圖3隻表示該點陣的一個子集,因為該點陣本身可無窮擴展。我們也可以把等式l表示為矩陣形式y=y1y2=k1k2v1v2=k1k2v11v12v21v22]]>(等式2)其中基本矢量v1=[v11v12]和v2=[v21v22]構成生成矩陣的行。之後,通過這些行矢量的整數組合來獲得點陣矢量。
當選擇一個點陣來構造量化碼本時,選擇點的子集來獲得具有給定(有限)比特數的碼本。這通常採用一種稱為成形的技術來實現。成形是根據成形邊界對該點陣截取來完成的。成形邊界通常以原點為中心,但不必總是如此,且可以是諸如矩形、球形或塔形。圖3是球形成形邊界的示例。
使用點陣的好處是在確定碼本內的所有點陣點中源矢量x的最近鄰點時,存在快速碼本搜索算法,其與非結構化碼本相比,可以極大減小複雜性。事實上也不需要存儲點陣點,因為可從生成矩陣中獲得它們。快速搜索算法通常涉及將受某些約束的x中的元素捨入(rounding off)為最近的整數,以便所有捨入元素的和是偶數或奇數,或等於模運算中的某個整數。一旦量化了該矢量,即一旦確定了碼本內最近的點陣點,通常一個更複雜的操作包括對所選擇的點陣點進行索引。
一種特殊類型的快速點陣碼本搜索和索引算法涉及引導項(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).
引導項是一種其分量按常規的降序排列的點陣點。絕對引導項是一種所有分量非負的引導項。有符號引導項是一種每個分量都有符號的引導項。通常,點陣結構對點陣點的符號有約束,因此對引導項的符號有約束。之後將對引導項的概念更詳細描述。
矢量量化中經常使用的點陣是8維的Gosset點陣,用RE8表示。REB中的任何8維點陣點可如下生成y=k1k2...k8GRE8]]>(等式3)其中k1,k2...k8是有符號的整數,且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中的球上的點陣點可從一個或幾個引導項通過排列它們的有符號分量來生成。引導項的分量的所有排列是具有相同範數的點陣點,因而它們位於相同的點陣外殼上。因此,引導項對精確列舉點陣的外殼十分有用。位於靠近原點的外殼上的點陣點確實可從數量非常小的引導項獲得。生成外殼上的所有點陣點只需要絕對引導項和符號約束。
為設計RE8碼本,可通過利用點陣固有的幾何特性,尤其是其外殼結構,來選擇有限的點陣點子集。如Lamblin,1988中所描述的,RE8的第1個外殼的半徑是 其中l是一個非負整數。半徑大的外殼比半徑小的外殼包含更多的點陣點。注意到外殼上有固定數目的引導項,以及該外殼上的所有其它點陣點通過排列有符號的引導項分量來獲得,儘管對符號有一些限制,有可能使用絕對和有符號引導項列舉給定外殼上的所有點。
在球形點陣VQ中,按降序重新排列x的分量,之後在定義碼本的引導項中進行最近鄰點搜索就足以確定源矢量x在該碼本中的所有點陣點中的最近鄰點。之後將最近引導項的索引以及從x排序操作中間接獲得的排列索引發送到解碼器,其可從該信息重建x的量化模擬值。結果,引導項的概念允許一種方便的索引策略,其中可用稱為有符號引導項的基數偏置(cardinalityoffset)以及稱為該有符號引導項排列的相對索引的排列索引來描述點陣點。
根據點陣的外殼結構以及按照絕對和有符號引導項形式的點陣枚舉,有可能通過只保留小半徑的外殼、且有可能用大半徑外殼中的一些附加引導項來完善該碼本,從而構造碼本。我們稱這種點陣碼本生成方法為近球形點陣成形(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)中找到。
要使點陣量化用於自適應比特分配的變換編碼中,需要構造多速率點陣碼本。一種可能的解決方案包括利用按照與Xie(1996)中類似方式的引導項形式的點陣列舉。如Xie中所解釋的那樣,多速率基於引導項的點陣量化器可用諸如下列碼本設計·嵌入代數碼本,其中低速率碼本是高速率碼本的子集,或·嵌套代數碼本,其中多速率碼本不重疊,但以與俄羅斯玩偶(Russiandolls)的嵌套類似的方式互補。
在Xie的特定例子中,多速率點陣量化使用六個名為Q0,Q1,Q2,...,Q5的碼本,其中最後五個碼本是嵌入的,即Q1Q2...Q5。這些碼本本質上從8維點陣RE8得到。根據Xie的記法,Qn指第n個RE8碼本。碼本Qn的比特分配是4n位,對應於24n項。碼本的比特率定義為分配給源矢量的比特數與源矢量的維數之間的比值,且在RE8量化中,源矢量的維數是8,Qn的碼本比特率是每維4n/8=n/2位。
對Xie的技術而言,碼本比特率不能超過每維5/2位。由於這個限制,必須應用處理來浸潤(saturate)局外點(outlier)。局外點定義為空間中在點陣RE8中有最近的、但不在多速率碼本Qn之一中的鄰點y的點x。在Xie中,這樣的點通過因子g>1按比例縮小,直到x/g不再是局外點。很明顯,使用g可產生大的量化誤差。在Xie(1996)中,該問題的糾正方法是在多速率點陣量化之前將源矢量正則化。
在Xie的多速率量化技術中,有一些不足和缺陷,包括1.局外點浸潤通常是計算負擔。另外,在巨大局外點的情況下,浸潤會極大降低量化性能(波及質量)。
2.該技術用浸潤處理局外點,且不允許為每8維矢量分配超過20比特。這在變換編碼中是一個缺陷,因為通常應該用小失真來量化高能量矢量(其更可能是局外點)以最優化質量,這意味著必須使用分配給特定矢量的具有足夠的比特的碼本。
3. 8、12、16和20比特的碼本Q2,Q3,Q4和Q5分別指定有3、8、23和73個絕對引導項。因為存儲需求和搜索複雜性與絕對引導項的數量密切相關,這些點陣碼本的複雜性隨碼本比特率的增長而迅猛增長。
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)中描述。它根據在諸如A.Gersho和R.M.Gray,Vector Quantization and Signal Compression,Kluwer Academic Publishers,1992(Gersho,1992)中描述的Voronoi區域的概念。在點陣碼本的特定情況下,Voronoi區域是其中在N維空間中的所有點都比該點陣中的任何其它點更靠近給定的點陣點的空間區域。每個點陣點有一個相關的閉Voronoi區域,該區域也包括與相鄰點陣點等距離的邊界點。在給定點陣中,所有Voronoi區域有相同的形狀,即它們是全等的。對非結構化的碼本而言,就不是這種情況。
Voronoi碼本是點陣的子集,該碼本的所有點都落入與該點陣的Voronoi區域有相同的形狀的空間區域內,並適當地按比例放大與平移。更準確而言,將從N維的點陣Λ得到的Voronoi碼本V(r)定義為V(r)=Λ∩(2rVΛ(0)+a) (等式7)其中,r是一個非負整數參數,之後更詳細定義,VΛ(0)是Λ的繞原點的Voronoi區域,且a是適當的N維偏置矢量。等式7按如下解釋為「將Voronoi碼本V(r)定義為點陣Λ的所有包含在以縮放比例因子m=2r和偏置矢量a對Voronoi區域VΛ(0)放大和平移的N維空間區域中的點。」有了這樣的定義,V(r)的碼本比特率是每維r比特。a的作用是整理連結(fix ties),即防止任何點陣點落在成形區域2rVΛ(0)+a上。
圖4表示二維六角形點陣A2中的Voronoi編碼、Voronoi區域和Voronoi區域的貼面(tiling)。點o指原點。點o和z兩者都落在用虛線標記的相同邊界內。該邊界實際上是對A2放大m=2並稍微平移到右邊以避免點陣點落在區域邊界上的Voronoi區域。在包括點0和z的該邊界內,總共有4個點陣點,標記為3個圓點(·)和一個加號(+)符號。更一般而言,每個這樣的區域包含mN個點。在圖4中可以看到,相同的圖案(pattern),即A2放大m=2後的Voronoi區域,被重複了幾次。這個過程稱為帖面。例如,點o′和z′與o和z從帖面上是等價的。可將點z′寫為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的多階段技術在每次提煉後會產生更細描述粒度(granularity)的多速率量化。這種可用在變換編碼中作多速率量化的技術,有幾個缺點1.每次不斷提煉之後,量化步幅減小,因此不能有效處理巨大局外點。事實上,如果巨大局外點出現在第一階段,後續階段不能有效減小所產生的誤差,因為它們只被設計為減少粒狀噪聲。因此,第一階段的性能是十分關鍵的。
2.後續提煉特性意味著對後續量化步幅有約束。這限制了量化性能。

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


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


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


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



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


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


表5按照本發明將絕對引導項的標識符ka轉換為基本碼本號n的映射表現在更詳細描述基於絕對引導項的標識符索引基本碼本Q2,Q3和Q4的方法(步驟306和332)。
使用諸如Lamblin(1988)中描述的現有技術中用於近球形碼本的索引技術計算基本碼本Q2,Q3和Q4中的項y的索引。更準確而言,如下計算y的索引例如,jj=基數偏置+排列的秩。按照Schalkwijk公式計算排列的秩,這是熟知的技術,且在(Lamblin,1988)中描述。在計算了y的有符號的引導項之後,通過查表找到基數偏置。這種查表是基於有關的絕對索引項的標識符ka。
按照本發明的說明性實施例,基於下列映射、使用現有技術中作為一元碼的所熟知的變長二進位碼來編碼碼本號nQ0→0
Q2→10Q3→110Q4→1110Q5→11110...
上述映射的右端給出以二進位表示的nE,將其與碼矢索引i複合在一起。另外,當使用Voronoi擴展時(當n>4時),碼矢索引i包括兩個複合在一起的子索引·對於奇數n為12位且對於偶數n為16位的基本碼本索引j;以及·8r位的Voronoi索引k包括r位的8個整數作為其分量。
當2≤n≤4時,i的結構如圖19(a)所示,而圖19(b)中考慮n>4的情況。應注意到在整個4n位的塊中,複合的位可按任何方式排列。
現在參照圖20更詳細描述按本發明的第三個方面的第三個實施例的多速率點陣解碼方法400。
首先從信道中讀取編碼的碼本號nE,並解碼以得到碼本號n(步驟402)。通過將方法300中描述的映射反轉過來,可從nE中獲得碼本號n。之後,解碼器根據碼本號n對碼矢索引i作不同解釋。
如果n=0(步驟404),y重建為零矢量,其是基本碼本Q0中的唯一項(步驟406)。
如果0<n≤4(步驟404),將來自信道的4n位大小的碼矢索引i分離出來(步驟408)。之後,將i解碼為基本碼本Q2,Q3或Q4的索引,且使用現有技術重建y(步驟410),如在Lambiin(1988),Moureaux(1998)和Rault(2001)中所描述的。
在步驟404中值n>4表示使用了Voronoi擴展。將來自信道的4n位大小的碼矢索引i(步驟408)從i中分離為基本碼本索引j和Voronoi索引k步驟412)。同樣獲取擴展階數r,且從n中得到縮放因子m(步驟414)。r的值作為商(n-3)/2獲得,且m=2r之後,從n中減去2r以標識Q3或Q4,且使用減去後的n值,將索引j解碼為c(步驟416)。j的解碼是基於現有技術方法,包括秩解碼和查表,如Lamblin(1988),Moureaux(1998)和Rault(2001)中所描述的。使用(Conway,1983)中描述的現有技術算法,基於m將Voronoi索引k解碼為v(步驟418)。最後,在步驟420中,解碼器計算重建值y=mc+v,其中m=2r是擴展縮放因子,c是基本碼本的碼矢,且v是Voronoi碼本的碼矢。當r=0時,沒有使用擴展,且v是零矢量,m變成為1。
儘管上文通過其中的說明性實施例描述本發明,可對其修改而不偏離本發明的精神和實質,如附加權利要求中所定義的。
權利要求
1.一種多速率點陣量化編碼方法,包括i)提供用於表示來自源信號的幀的源矢量x;ii)提供從點陣Λ中導出的基本碼本C;iii)將所述點陣Λ中的點陣點y與x關聯;iv)如果y包括在所述基本碼本C中,則為所述基本碼本C中的y編索引,得到量化索引,並且結束該方法,如果不包括,則v)擴展所述基本碼本,以得到擴展的碼本;vi)將來自所述擴展碼本的碼矢c與y關聯;以及vii)為所述擴展碼本中的y編索引,以得到量化索引。
2.根據權利要求1所述的方法,其中用表達式mC+V來表示所述擴展碼本,其中C是所述基本碼本,V是所述點陣Λ中的適當點集。
3.根據權利要求1所述的方法,其中在iii)中,選擇所述點陣Λ中的所述點陣點y作為所述點陣Λ中x的最近鄰點。
4.根據權利要求1所述的方法,其中步驟v)包括提供整數縮放因子m>=2;步驟vi)包括使用m計算與點陣點y對應的Voronoi碼矢v,並且提供偏置;以及vi)包括使用v和m計算所述碼矢c。
5.根據權利要求4所述的方法,其中在步驟v)中將所述縮放因子m設置為2r,且步驟v)還包括計算Voronoi索引k;步驟vi)包括使用k和m計算與所述點陣點y對應的Voronoi碼矢v。
6.根據權利要求4所述的方法,其中在vi)中將所述碼矢c計算為c=(y-v)/m,其中m是一個大於或等於2的整數。
7.根據權利要求4所述的方法,其中步驟vi)還包括驗證c是否在所述基本碼本C中,那麼a)步驟vii)還包括將y作為基本碼矢為其編索引,以及將j和k複合得到量化索引,其中j是基本碼本C中的c的索引,且k是與矢量v對應的Voronoi索引;如果不在,那麼b)增加所述縮放因子以及所述Voronoi擴展的所述階數,並重複步驟v)到vi)。
8.根據權利要求4所述的方法,還包括在vii)中定義與所述擴展階數r對應的碼本號以及所述基本碼本中碼矢y的索引i的無損編碼,得到編碼的碼本號nE和編碼的索引iE;以及將nE和iE複合在一起。
9.根據權利要求1所述的方法,還包括vii)在存儲裝置中存儲所述量化索引。
10.根據權利要求1所述的方法,還包括vii)通過通信信道傳輸所述量化索引。
11.一種多速率點陣量化編碼方法,包括提供表示來自源信號的幀的源矢量x;提供無窮點陣L中的點的有限子集C和V;將x與y關聯,y是所述點陣L中的所述點之一;以及當y=mc+v時,用整數碼本號n和索引i作為y的索引,其中c是C中的元素,v是V中的元素,且m是一個大於或等於2的整數;其中從n唯一定義點陣L的所述子集C和V、m的值和i的大小。
12.根據權利要求11所述的方法,其中用一元碼表示n。
13.根據權利要求11所述的方法,其中無窮點陣L的所述子集V是Voronoi碼本,且v的所述索引是Voronoi索引。
14.根據權利要求11所述的方法,其中所述索引i是c的索引與v的索引的級聯。
15.根據權利要求11所述的方法,其中當實現該方法時可用的所分配比特數不足以表示所述無窮點陣L中的所述源矢量x時,y=
且將n設置預先確定的值。
16.根據權利要求11所述的方法,其中m=2r;所述子集C預先確定;所述碼本號n等於r加上一個預先確定的整數;r是一個大於或等於1的整數。
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)結束該方法;v)提供擴展階數r,並將縮放因子m設置為2r;vi)設置迭代次數iter=0;vii)計算點陣點y的Voronoi索引k;viii)使用k和m計算與所述點陣點y對應的Voronoi碼矢v;ix)根據c=(y-v)/m計算碼矢c;x)如果c包含在Qz中,其中z等於2,3或4,那麼aa)提供z和ka;如果n=2,設置n=3;將n增加2r;存儲k,c,z,和ka的值;將m除以2;將r減少1;如果不包含,那麼bb)將m乘以2;將r增加1;xi)將所述迭代次數增加1;xii)如果所述迭代次數=2,那麼aaa)獲取所述k,c,z和ka的值;給定ka,為Q3或Q4中的c編索引j;將j和k複合以形成索引i,其中k是碼矢y的索引,且j是c的索引;如果不等,那麼bbb)重複步驟vii)到xii)。
18.根據權利要求17所述的方法,其中在vii)中,按下式計算kk=modm(yGRE8-1)]]>其中GRE8是生成矩陣,定義為GRE8=4000000022000000202000002002000020002000200002002000002011111111=v1v2v3v4v5v6v7v8]]>且modm(.)是逐分量的模m運算。
19.根據權利要求17所述的方法,還包括在步驟iii)之前,將所述源矢量x按比例縮小為x/g;選擇g以便大於1且避免實現該方法中所使用的存儲器中的溢出。
20.一種多速率點陣量化解碼方法,包括i)提供從點陣Λ中導出的基本碼本C;ii)提供碼本號n和量化索引i;iii)使用所述碼本號n分離所述量化索引i;iv)如果n=0,那麼使用所述基本碼本解碼所述索引i,得到量化的矢量y,且結束該方法;v)如果,那麼a)提供預先選擇的Voronoi碼本V(r);b)設置擴展階數r=n以及縮放因子m=2r;c)從i中分離出索引j和k;d)將j解碼為所述基本碼本C中的c;e)將k解碼為所述Voronoi碼本V(r)中的v;以及f)重建量化的矢量為y=mc+v。
21.根據權利要求20所述的方法,其中在ii)中,首先提供編碼的碼本號nE和編碼的索引iE;之後將預先確定的無損編碼技術應用於所述編碼的碼本號nE之上以得到所述碼本號和所述量化索引i。
22.根據權利要求20中所述解碼方法,其中從通信信道讀取所述碼本號n和所述索引i。
23.根據權利要求20中所述解碼方法,其中從存儲裝置讀取所述碼本號n和所述索引i。
24.一種多速率點陣量化解碼方法,包括提供無窮點陣L中的點的有限子集C和V;提供碼本號n和索引i;使用n和i將點陣L中的矢量y重建為y=mc+v,其中m是一個大於或等於2的整數,且c和v是L中包含的點;所述點c被重建為L的有限子集C中的元素;所述點v被重建為L的有限子集V中的元素;使用i計算v和c的索引;其中從n唯一定義點陣L的所述子集C和V、m的值和i的大小。
25.根據權利要求20所述的方法,其中從一元碼重建n。
26.根據權利要求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提供擴展階數r和縮放因子m;使用n標識Q3或Q4,且解碼所述索引j;計算y=mc+v,其中m=2r是擴展縮放因子,c是所述基本碼本的碼矢,且v是Voronoi碼本的碼矢。
28.一種點陣碼本擴展方法,包括i)從矢量點陣L提供矢量子集,得到基本碼本;ii)根據預先確定的縮放因子縮放所述基本碼本,得到縮放的碼矢;以及iii)在每個縮放的碼矢周圍插入Voronoi碼本,得到擴展的碼本。
29.根據權利要求28所述的方法,其中通過保留邊界內的矢量選擇所述矢量子集。
30.根據權利要求28所述的方法,其中步驟ii)包括提供整數縮放因子m>=2。
31.根據權利要求28所述的方法,其中在步驟ii)中將所述縮放因子m設置為2r。
32.根據權利要求28所述的方法,其中通過保留邊界內的矢量選擇所述矢量子集。
33.一種源矢量x的點陣矢量量化方法,包括i)從N維矢量點陣提供矢量子集,得到需要用NR位來索引的基本碼本,其中R是所述基本碼本每維的比特率。ii)確定所述矢量點陣中x的最近矢量y;iii)如果所述最近矢量y包含在所述基本碼本中,那麼為所述基本碼本中的y編索引,得到量化索引,輸出所述量化索引,且結束該方法;如果不在,那麼iv)提供預先確定的縮放因子;v)將所述基本碼本按所述縮放因子縮放,得到包含縮放的碼矢的縮放的碼本;vi)在每個所述縮放的碼矢周圍插入Voronoi碼本,得到需要用N(R+r)位來索引的擴展的碼本,其中r是所述Vorenoi碼本的階數;以及vii)如果所述最近鄰點y包含在所述擴展碼本中,那麼為所述擴展碼本中的y編索引,得到量化索引,輸出所述量化索引,且結束該方法;如果不在,那麼viii)如果索引所述擴展碼本所需要的比特數不超過預先確定的門限,那麼增加所述縮放因子和所述Voronoi碼本的所述階數,並重複步驟v)到viii);如果超過,那麼將所述最近鄰點考慮作為遙遠的局外點,並輸出預先確定的對應量化索引。
34.根據權利要求33所述的方法,其中在步驟iv)中,所述預先確定的縮放因子是2,且在步驟viii)中,所述縮放因子增加2倍。
35.根據權利要求33所述的方法,其中在步驟viii)中,所述Voronoi碼本的所述階數增加1。
36.一種多速率點陣量化編碼器,包括接收裝置,以提供表示來自源信號的幀的源矢量x;存儲裝置,包括從點陣Λ中導出的基本碼本C;將所述點陣Λ中的點陣點y與x關聯的裝置;驗證是否y包括在所述基本碼本C中,以及在所述基本碼本C為y編索引,以得到量化索引的裝置;擴展所述基本碼本以及得到擴展的碼本的裝置;將所述擴展碼本中的碼矢c與y關聯的裝置;以及在所述擴展碼本C為y編索引,以及得到量化索引的裝置。
37.一種多速率點陣量化編碼器,包括接收表示來自源信號的幀的源矢量x的裝置;提供無窮點陣L中的點的有限子集C和V的裝置;將x與所述點陣L中的所述點之一y關聯的裝置;當y=mc+v時,將整數碼本號n和索引i作為y的索引的裝置,其中c是C中的元素,v是V中的元素,且m是大於或等於2的整數;其中點陣L的所述子集C和V、m的值和i的大小都唯一根據n定義。
38.一種多速率點陣量化解碼器,包括存儲裝置,以提供從點陣Λ中導出的基本碼本C;接收裝置,以提供編碼的碼本號n和編碼的索引i;使用所述碼本號n分離所述量化索引i的裝置;驗證是否n=0,以及a)使用所述基本碼本解碼所述索引i,以得到量化的矢量y的裝置;驗證是否n>0的裝置;提供預先選擇的Voronoi碼本V(r)的裝置;設置擴展階數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的整數,且c和v是L中包含的點;所述點c被重建為L的有限子集C中的元素;將所述點v重建為L的有限子集V中的元素;使用i計算v和c的索引;其中根據n唯一定義點陣L的所述子集C和V、m的值和i的大小。
全文摘要
本發明涉及一種用於諸如數字傳輸和存儲系統中的表示來自源信號的幀的源矢量x的多速率點陣矢量量化的方法和系統。該多速率點陣量化編碼方法包括如下步驟將無窮點陣∧中的點陣點y與x關聯;驗證y是否包括在從點陣∧導出的基本碼本C中;如果是這種情況,那麼為C中的y編索引以便得到量化索引。如果不是,那麼使用諸如基於Voronoi的擴展方法擴展基本碼本,得到擴展的碼本;將擴展碼本中的碼矢c與y關聯,為擴展碼本C中的y編索引。與現有技術中的量化方法和系統相比,該擴展方法可從基本碼本獲得更高比特率碼本。
文檔編號G10L19/038GK1659785SQ03812652
公開日2005年8月24日 申請日期2003年5月30日 優先權日2002年5月31日
發明者布魯諾·貝塞特, 史蒂芬·拉戈特, 讓-皮埃爾·阿道爾 申請人:沃伊斯亞吉公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀