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时容易收敛。