新聞中心

        EEPW首頁 > 設計應用 > 一種增強的LPC參數多級矢量量化技術

        一種增強的LPC參數多級矢量量化技術

        ——
        作者: 時間:2007-02-06 來源:電子技術應用 收藏

        周高洪, 唐 昆, 崔慧娟
        (清華大學 電子工程系,微波與數字通信技術國家重點實驗室,北京100084)
         
          摘 要:為充分利用碼本的級間相關性,提出了一種聯合碼本優化(JCO-MSVQ)碼本設計方法。每次迭代時,先將訓練矢量對碼字進行聚類,再對各級碼本進行聯合優化,利用條件期望逐級更新碼本。實驗數據表明,該算法在設計10維(LSF)參數量化碼本時,較隨機松弛算法(SR)碼本有更小的平均量化畸變。23比特/幀LSF參數量化器平均對數譜失真為0.87dB,達到了要求。
          關鍵詞:

          矢量量化(Vector Quantization)是一種極其重要的信號壓縮方法,廣泛應用于語音、圖像信號壓縮等領域。信息論的一個分支——“率-畸變理論”指出,無論對于何種信息源,即使是無記憶的信息源(即各個采樣信號之間互相統計獨立),矢量量化總是優于標量量化,且矢量維數越大優度越高。因此,目前國內外對于矢量量化技術的研究非常廣泛而深入。平衡考慮量化效果和運算復雜度,(MSVQ)提供了一個很好的折衷辦法。
          線性預測編碼(LPC)參數能很好地表征語音信號的短時譜包絡信息,在各種LPC參數中,(LSF)[1]較其它參數能更有效地表達LPC信息。K.K.Paliwal和B.S.Atal仔細研究了用24~26個比特量化一個10階LSF參數的方法,提出了分裂矢量量化(Split Vector Quantization)和多級矢量量化MSVQ(Multistage Vector Quantization)兩種方案,并且試驗得到了用25比特的2級MSVQ能取得較好的量化效果(平均失真1dB,2~4dB概率小于2%,大于4dB為0)。
          MSVQ算法有效減小了碼本容量,但如果在量化比特有限的情況下,想取得透明的量化效果,必須解決兩個問題:(1)怎樣搜索碼本得到最佳匹配索引;(2)怎樣設計碼本。在算法設計中這兩個問題必須統一考慮。對前一個問題,為了方便一般采用序列搜索算法,依次搜索得到各級的最佳匹配矢量。在碼本設計中,更多的也是分級依次進行碼本訓練,割裂了各級碼本之間的相關性。本文將著重研究多級矢量量化的聯合優化碼本設計問題。
        1 問題分析
          傳統的MSVQ算法在LSF參數碼本設計時采用一種連續(stage-by-stage)的設計方法,第k級碼本只與前面的第1至第(k-1)級碼本有關,而不考慮后續各級碼本,即將后續各級碼本內容視為0。在量化時,同樣只在本級尋找1個最佳匹配矢量,然后得到余量矢量送入下一級量化。量化過程可以用式(1)表示,假設有2級碼本,需要找出各級碼本索引:


          
          其中,K1和K2是第一、二級的碼本容量。最終量化結果為:
          在序列搜索算法中,搜索yi時,假設zj為0,搜索zj時yi已經固定。這樣的搜索算法顯然是一種次優的搜索算法,解決這個問題的方法是全搜索[3]。全搜索是最優的搜索算法,但是其計算復雜度卻是難以承受的。例如,一個25比特2級碼本(13-12結構),其全搜索復雜度是上述連續搜索的2000倍以上。M進制搜索[4]折衷解決了這個問題。在運算量大大減小的情況下,取得了逼近全搜索的量化效果。
          在碼本設計中,無論是經典的GLA算法還是改進的模擬退火(SA)算法,碼本設計都是逐級連續進行的。利用各級碼本之間的相關性優化碼本設計,可以較明顯地改善MSVQ的量化效果。在應用聯合碼本設計方法量化音頻DCT系數時,已經取得了大約0.4 dB的SNR改善[5]。本文在量化LSF參數時,對比300步的SR算法,得到了大約0.05dB、約1bit的(WLSD)[6]的改進效果。
        2 算法說明
        2.1 失真距離量度
          對一個MSVQ碼本,為方便考慮假設共有2級碼本。LSF參數為10維矢量。對LSF參數而言,其敏感矩陣(sensitivity matrix)是對角陣,因此可以用加權最小均方誤差(WMSE)代替(WLSD)作為失真量度[6]。量化失真


          
          其中,wi為功率譜幅度加權,ci為LSF參數人耳聽覺加權。


          
          r的經驗值一般為0.15。
        2.2 理論推導
          對一個訓練矢量集X和兩級碼本Y、Z,可以對X中每個矢量進行2級全搜索,得到最佳索引值對(i,j)。根據i和j的不同可以對X中每個矢量進行聚類。假設S為對第一級碼字形成的聚類,Si為所有X中第一級量化索引為i的訓練矢量集合。同樣假設R為第二級碼字聚類,可知,{S1,S2,…,SK1}和{R1,R2,…,RK2}均是同一X集合的不同劃分。對于X∈Si,平均量化失真為:


          
          Z的輸入為(x-y),因此(5)式也可表達成:


          
          令U=Q2(x-yi),并引入一個中間矢量v,則(6)式成為:
          
          可以令v=E{x-U|x∈Si},則第三項為0。第二項恒為非負,所以


          
          因此,在不改變第二級碼本的情況下,更新第一級碼字yi可以減少平均失真,新的碼字為如下條件期望值:


          
          同樣,在第一級碼本固定的情況下,第二級碼本按(10)式更新得到的將是最優碼字。


          
          通過多次迭代,可以得到聯合優化的最優碼本。
        2.3 算法描述
          (1)設置初始碼本,讀入訓練矢量文件,并對其進行兩級碼本全搜索,得到針對兩級碼本的聚類{S1,S2,…,SK1}和{R1,R2,…,RK2}。假設訓練矢量個數為num,對所有訓練矢量計算此時的量化失真之和,失真測度采用WLSD距離。設置迭代最大步數N,設置初始步數n=0;
          (2)n=n+1,利用式(9)更新第一級碼本;
          (3)重新對訓練矢量集進行全搜索,得到新的索引值對(i, j),然后利用式(10)更新第二級碼本;
          (4)再次對訓練矢量集進行量化搜索,得到新的索引值對(i, j),并重新計算量化總畸變Dn;
          (5)判斷n=N?若n< N,跳轉至(2)繼續進行迭代;若n=N,結束迭代,保存更新后的碼字至碼本文件。
        2.4 算法的進一步優化
          上述聯合優化MSVQ算法中,很重要的一步就是對訓練矢量進行聚類,使每個訓練矢量得到一個最匹配的索引值對(i, j)。(i, j)應當是通過全搜索得到的全局最佳匹配矢量。在不需要在線更新碼本的情況下,全搜索是可以采用的。然而如果在矢量維數較高時,想減小碼本訓練的運算量,也可以采用M進制序列搜索的方法。取M=8在實驗中得到了很好的效果。這樣即可得到一個性能近似的簡化版JCO-MSVQ碼本設計方法。
          另外,在碼本設計中,可能出現聚類中無訓練矢量,即出現空聚類的情況。這時可以刪除該空聚類,并將包含訓練矢量最多的那個聚類抖動成兩個聚類。這樣可以獲得更小的聯合量化誤差,如圖1所示。

        圖1 聯合碼本優化碼本生成算法流程圖

        3 實驗結果和分析
          實際應用中,碼本訓練采用107 MB的語音文件,得到342302幀LSF參數(10維)和加權系數,訓練矢量集足夠大。在實際的2kbps語音編碼算法中,對LSF參數進行3級矢量量化,比特分配為9/8/6,共23bits。利用聯合優化碼本生成算法進行300步迭代,與SR算法的第三級300步迭代結果進行比較,得到訓練碼本總畸變數據,如圖2所示。

        圖2 聯合碼本優化MSVQ迭代效果圖

          可以看到,同樣步數的JCO-MSVQ算法較SR算法能取得更小的量化畸變。SR算法經過一定步數的迭代,基本沒有下探的空間。而JCO-MSVQ算法則能繼續優化碼本,獲得更好的量化效果。并且,與SR算法不同,JCO-MSVQ算法中量化畸變是單調遞減的,因在訓練過程中每一步都是最優的(簡化算法中是多進制搜索,因而是次優的)。統計量化譜失真,聯合碼本優化MSVQ比其他的MSVQ有明顯的改善。在同一個LSF量化器中分別采用23bits SR碼本(碼本1)、24bits SR碼本(碼本2)和23bits聯合優化碼本(碼本3),測試語音為一個3.5MB的語音文件,既有男聲也有女聲,共11348幀LSF參數。統計量化譜失真得到表1所示數據。
        表1不同碼本生成算法譜失真比較

        碼本 平均
        SD/dB
        譜失真分布密度/%
        [0,2dB) [2,4dB) >4dB
        碼本1(23bits) 0.922 95.065 4.935 0.000
        碼本2(24bits) 0.859 96.069 3.931 0.000
        碼本3(23bits) 0.870 96.105 3.895 0.000

          從表1數據可以看到,同是23bits的量化,聯合碼本設計MSVQ與應用SR算法生成碼本的MSVQ相比較,有大約1個比特的改善,接近于應用SR算法24bits量化的效果。甚至優于文獻[2]中MSVQ算法的26bits量化(平均譜失真0.93dB)。平均譜失真為0.87dB,大于4dB的譜失真統計為0,達到了的要求。本文研究結果已經成功應用于1/2kbps可變速率聲碼器項目中。
        參考文獻
        1 Itakura F. Line spectrum representation of linear predictive coefficients of speech
          signals [J]. J.Acoust.Soc.Amer.,1975; 57:S35
        2 Paliwal K K, Atal B S. Efficient vector quantization of LPC parameters at
          24 bits/frame [J]. Proc. ICASSP,1991:661~664
        3 Juang B H, Gray A H. Multiple stage vector quantization for speech coding[J].
          Proc.ICASSP,1982:597~600
        4 Anderson J, Bodie J. Least square quantization in PCM [J]. IEEE Trans. Inform. Theory,
          1975;IT-21:379~387
        5 Chan W Y, Gupta S, Gersho A. Enhanced Multistage Vector Quantization by Joint Codebook
          Design [J]. IEEE Transations on Communications, 1992;40(11):1693~1697
        6 Gardner W R, Rao B D. Theoretical Analysis of the High-Rate Vector Quantization of LPC
          Parameters [J]. IEEE Transactions on Speech and Audio Processing,1995;3(5):367~381
        7 楊行峻, 遲惠生.語音信號數字處理 [M]. 北京:電子工業出版社, 1995 



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武城县| 辽宁省| 静安区| 会理县| 浦县| 海安县| 闻喜县| 绥芬河市| 威远县| 石泉县| 霍林郭勒市| 盈江县| 霍州市| 乾安县| 鄂托克前旗| 会理县| 武鸣县| 佛山市| 济阳县| 昌黎县| 周至县| 宁远县| 诸城市| 大安市| 准格尔旗| 错那县| 鄱阳县| 新竹县| 双桥区| 宁波市| 华坪县| 正蓝旗| 清丰县| 沙湾县| 莱西市| 永川市| 南充市| 墨脱县| 平罗县| 双城市| 昆山市|