g723源码详细分析-17-舒适噪声解码
Dec_Cng舒适噪声解码
知道舒适噪声如何生成,解码就简单了.
sid会传递滤波参数(在滤波器相似度不高时,sid报文会被发送)
解出报文里的lpc参数与增益估值
代码片段:
/*
* SID Frame decoding
*/
DecCng.SidGain = Dec_SidGain(Line->Sfs[0].Mamp);
/* Inverse quantization of the LSP */
Lsp_Inq( DecCng.LspSid, DecStat.PrevLsp, Line->LspId, 0) ;
Calc_Exc_Rand:生成随机激励,这个在编码舒适噪声时分析过了,编解码多方只要同步DecCng.RandSeed
即可
lpc插值:
/* Interpolate the Lsp vectors */
Lsp_Int( QntLpc, DecCng.LspSid, DecStat.PrevLsp ) ;
之后就是合成语音,同正常的语音包一样的处理
知道舒适噪声如何生成,解码就简单了.
sid会传递滤波参数(在滤波器相似度不高时,sid报文会被发送)
解出报文里的lpc参数与增益估值
代码片段:
/*
* SID Frame decoding
*/
DecCng.SidGain = Dec_SidGain(Line->Sfs[0].Mamp);
/* Inverse quantization of the LSP */
Lsp_Inq( DecCng.LspSid, DecStat.PrevLsp, Line->LspId, 0) ;
Calc_Exc_Rand:生成随机激励,这个在编码舒适噪声时分析过了,编解码多方只要同步DecCng.RandSeed
即可
lpc插值:
/* Interpolate the Lsp vectors */
Lsp_Int( QntLpc, DecCng.LspSid, DecStat.PrevLsp ) ;
之后就是合成语音,同正常的语音包一样的处理