CELT和SILK以及Opus的位分配方法
三者的位分配編碼都主要是使用Range Coding(Opus是CELT和SILK拼出來的)。
那麼有如下問題:
1.有什麼區別。還是一樣?
2.把AAC的Huffman Coding換成Range Coding怎麼樣
首先分析,SILK,
SILK裏面的Range Coding比較簡單,SILK裏面有2個全部
1. SILK 全部參數使用RC。
2. SILK 全部參數都有自己的積累概率函數CDF。
SILK 裏面 RC統一調用SKP_Silk_range_encoder進行編碼,3個參數,第一個是數據結構指針,第二個CDF,第三個是CDF的定點長度。
SILK能全部使用RC編碼的原因是,SILK是語音編碼,參數的動態幅值比較固定且小,統計CDF時容易收斂。