⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scb_code.c

📁 4.8k/s速率FS1016标准语音压缩源码
💻 C
字号:
          /*LINTLIBRARY*/          /*PROTOLIB1*/#include <math.h>#include "main.h"#include "scb_code.h"/**************************************************************************** ROUTINE*		SCBGainEncode** FUNCTION**		encode and quantize code book gain** SYNOPSIS*		SCBGainEncode(UGain, QGain)**   formal**                       data    I/O*       name            type    type    function*       -------------------------------------------------------------------*	UGain		float	i	code book gain input (true value)*	QGain		int	o	encoded code book gain ZERO BASED index**	SCBGainEncode	float	func	encoded code book gain****************************************************************************** DESCRIPTION***      Fast code book gain quantizer to allow practical quantization*      inside the code book search loop. A binary tree search quantization *      is implemented below.***************************************************************************/ /* *Log quantization                               */static float SCBGainTable[32] ={ -1330., -870., -660., -520., -418., -340., -278., -224., -178., -136.,  -98.,  -64.,  -35.,  -13.,   -3.,   -1.,    1.,    3.,   13.,   35.,   64.,   98.,  136.,  178.,  224.,  278.,  340.,  418.,  520.,  660.,  870., 1330.};float SCBGainEncode(float 	UGain,int 	*QGain){  int i;  static float midpoints[31] =   {    -1100., -765., -590., -469., -379., -309., -251., -201.,     -157., -117.,  -81.,  -49.5, -24.,   -8.,   -2.,    0.,        2.,    8.,   24.,   49.5,  81.,  117.,  157.,  201.,      251.,  309.,  379.,  469.,  590.,  765., 1100.  };  /* *Binary tree search for closest gain				 */  for (*QGain = 15, i = 8; i >= 1; i = i >> 1)  {    if (UGain > midpoints[*QGain])      *QGain += i;    else      *QGain -= i;  }  if (UGain > midpoints[*QGain])    (*QGain)++;  /* *Return quantized gain and ZERO based index			 */  return (SCBGainTable[*QGain]);}   /**************************************************************************** ROUTINE*		SCBGainDecode** FUNCTION**		decode code book gain from the quantized gain ** SYNOPSIS*		SCBGainDecode(QGain, UGain)**   formal**                       data    I/O*       name            type    type    function*       -------------------------------------------------------------------*	QGain		int	i	Quantized gain*	UGain		float	o	Unquantized gain****************************************************************************** REFERENCES**       Quantizing for Minimum Distorion*       J. Max*       IRE Trans. Inform. Theory, vol. IT-6, pp.7-12, Mar. 1960******************************************************************************       The data used in the table generation is from 3m3f.spd.***************************************************************************/void SCBGainDecode(int 	QGain, float 	*UGain){  /* Choose appropriate gain                                         */    *UGain = SCBGainTable[QGain];}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -