Adaptive Multi-rate Speech Codec

Implementation on TI TMS320C6201 DSP

 

 

知識庫

[ AMR學理介紹 | 目錄分類 | 搜尋 |]

  

bullet

 分析與討論

 

1        分析問題的方法

        在分析中,我們需要知道的,首先是在AMR編解碼架構中,各個子模組耗費系統資源的比較。透過工具的使用我們可以得到如圖5-1所示的表。

(5-1    A Profile of AMR Analysis)

   此表中,我們可見得最耗資源的前五名,都屬於編碼模組。而最甚者,是分析filter的函式。故我們最需要在此函式做加速的動作。

 

2        加速的方法

        在加速過程中,我們需要施行三個步驟:

-         找出數值的範圍。

-         浮點數直接縮減。

-         浮點轉定點。

其實浮點本身的表示並沒有什麼問題,只要有浮點運算器,使用浮點數並不會影響我們的運算時間。只是在沒有浮點運算器的情況下,我們所自稱的浮點數,都會被CCS的編繹過程,轉為相當冗長的指令集。所以要使執行的指令縮減,最好的方式,便是透過我們的分析,直接去定義數值。

 

    2.1    找出數值的範圍

   控制數值的第一步,便需要了解它的範圍在哪裡。知道範圍在哪裡,我們便可以確切地把握每一個bit都有其用處。剩下多餘的bit,便移到小數處作為精確度的加強。

 

    2.2    浮點數直接縮減

   所謂浮點數直接縮減,是在找出數值範圍後,縮減高位元處的冗位元,轉化為小數的部分。再以耳朵為準,去試出到底這個部分我們需要多少的小數位才夠使用?一但最高位元數與小數的位元我們都能夠掌握,我們便不再需要浮點的運算了。

 

2.2    點轉定點

   經過前面的兩個步驟,我們直接把浮點數改成定點數,如此即大量地簡化了指令的運用。

 

3        分析加速結果

   透過我們前面所介紹的加速法,我們將加速施加於syn_filt的函式上,並以圖表表示其結果比較:

 

(5-2-1         A Table before Acceleration

)

(5-2-2         A Table after Acceleration)

 

 

 

 

 

(5-2-3         A Table before Acceleration)

 

(5-2-4         A Table after Acceleration)

 

        此處我們可以發現整個程式的執行速度由原本的1019.997ms變為957.673ms。而syn_filt函式在整個程式的負荷上,由原本的10.9%變為8.1%。可見得我們的加速是有效的。