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

📄 tables_stereo.c

📁 关于AMR-WB+语音压缩编码的实现代码
💻 C
字号:
/* Tables used by stereo modes */
#include "../include/amr_plus.h"

const int StereoNbits[] = {
  (int)(1.2*80),  /* 1.2 + 0.8 = 2.0 kbps */
  (int)(1.6*80),  /* 1.6 + 0.8 = 2.4 kbps */
  (int)(2.0*80),  /* 2.0 + 0.8 = 2.8 kbps */
  (int)(2.4*80),  /* 2.4 + 0.8 = 3.2 kbps */
  (int)(2.8*80),  /* 2.8 + 0.8 = 3.6 kbps */
  (int)(3.2*80),  /* 3.2 + 0.8 = 4.0 kbps */
  (int)(3.6*80),  /* 3.6 + 0.8 = 4.4 kbps */
  (int)(4.0*80),  /* 4.0 + 0.8 = 4.8 kbps */
  (int)(4.4*80),  /* 4.4 + 0.8 = 5.2 kbps */
  (int)(4.8*80),  /* 4.8 + 0.8 = 5.6 kbps */
  (int)(5.2*80),  /* 5.2 + 0.8 = 6.0 kbps */
  (int)(5.6*80),  /* 5.6 + 0.8 = 6.4 kbps */
  (int)(6.0*80),  /* 6.0 + 0.8 = 6.8 kbps */
  (int)(6.4*80),  /* 6.4 + 0.8 = 7.2 kbps */
  (int)(6.8*80),  /* 6.8 + 0.8 = 7.6 kbps */
  (int)(7.2*80)}; /* 7.2 + 0.8 = 8.0 kbps */


const float filter_2k[N_COEFF_F2K] = {
  +0.029688f, +0.029644f, +0.029512f, +0.029293f, +0.028988f, +0.028598f, +0.028127f, +0.027575f, 
  +0.026948f, +0.026247f, +0.025476f, +0.024641f, +0.023745f, +0.022793f, +0.021790f, +0.020742f, 
  +0.019653f, +0.018531f, +0.017379f, +0.016205f, +0.015015f, +0.013813f, +0.012607f, +0.011402f, 
  +0.010204f, +0.009018f, +0.007850f, +0.006706f, +0.005590f, +0.004507f, +0.003462f, +0.002458f, 
  +0.001500f, +0.000592f, -0.000265f, -0.001066f, -0.001809f, -0.002493f, -0.003116f, -0.003677f, 
  -0.004175f, -0.004610f, -0.004982f, -0.005291f, -0.005538f, -0.005724f, -0.005852f, -0.005922f, 
  -0.005938f, -0.005901f, -0.005814f, -0.005681f, -0.005504f, -0.005287f, -0.005033f, -0.004747f, 
  -0.004432f, -0.004091f, -0.003730f, -0.003350f, -0.002958f, -0.002555f, -0.002147f, -0.001736f, 
  -0.001327f, -0.000922f, -0.000525f, -0.000139f, +0.000233f, +0.000589f, +0.000926f, +0.001242f, 
  +0.001536f, +0.001804f, +0.002047f, +0.002263f, +0.002451f, +0.002611f, +0.002742f, +0.002844f, 
  +0.002918f, +0.002963f, +0.002980f, +0.002971f, +0.002936f, +0.002876f, +0.002793f, +0.002688f, 
  +0.002564f, +0.002421f, +0.002262f, +0.002089f, +0.001903f, +0.001707f, +0.001502f, +0.001292f, 
  +0.001077f, +0.000860f, +0.000643f, +0.000428f, +0.000217f, +0.000011f, -0.000189f, -0.000379f, 
  -0.000560f, -0.000730f, -0.000887f, -0.001032f, -0.001162f, -0.001278f, -0.001378f, -0.001463f, 
  -0.001532f, -0.001585f, -0.001622f, -0.001643f, -0.001650f, -0.001641f, -0.001618f, -0.001582f, 
  -0.001533f, -0.001472f, -0.001400f, -0.001318f, -0.001228f, -0.001129f, -0.001024f, -0.000914f, 
  -0.000799f, -0.000681f, -0.000561f, -0.000440f, -0.000320f, -0.000201f, -0.000084f, +0.000029f, 
  +0.000139f, +0.000243f, +0.000341f, +0.000433f, +0.000517f, +0.000595f, +0.000664f, +0.000724f, 
  +0.000776f, +0.000820f, +0.000854f, +0.000880f, +0.000897f, +0.000905f, +0.000905f, +0.000897f, 
  +0.000881f, +0.000858f, +0.000828f, +0.000791f, +0.000749f, +0.000702f, +0.000651f, +0.000595f, 
  +0.000536f, +0.000475f, +0.000412f, +0.000347f, +0.000282f, +0.000216f, +0.000151f, +0.000088f, 
  +0.000026f, -0.000034f, -0.000092f, -0.000146f, -0.000197f, -0.000244f, -0.000287f, -0.000326f, 
  -0.000360f, -0.000390f, -0.000415f, -0.000435f, -0.000451f, -0.000462f, -0.000468f, -0.000470f, 
  -0.000468f, -0.000461f, -0.000450f, -0.000436f, -0.000419f, -0.000398f, -0.000375f, -0.000349f, 
  -0.000322f, -0.000292f, -0.000261f, -0.000229f, -0.000197f, -0.000163f, -0.000130f, -0.000097f, 
  -0.000065f, -0.000034f, -0.000003f, +0.000026f, +0.000054f, +0.000079f, +0.000104f, +0.000125f, 
  +0.000145f, +0.000163f, +0.000178f, +0.000191f, +0.000202f, +0.000210f, +0.000216f, +0.000220f, 
  +0.000222f, +0.000221f, +0.000219f, +0.000214f, +0.000208f, +0.000200f, +0.000191f, +0.000180f, 
  +0.000169f, +0.000156f, +0.000142f, +0.000128f, +0.000113f, +0.000099f, +0.000083f, +0.000068f, 
  +0.000053f, +0.000039f, +0.000024f, +0.000010f, -0.000003f, -0.000015f, -0.000027f, -0.000038f, 
  -0.000047f, -0.000056f, -0.000064f, -0.000071f, -0.000077f, -0.000082f, -0.000085f, -0.000088f, 
  -0.000090f, -0.000091f, -0.000091f, -0.000090f, -0.000088f, -0.000085f, -0.000082f, -0.000078f, 
  -0.000074f, -0.000069f, -0.000064f, -0.000059f, -0.000053f, -0.000047f, -0.000042f, -0.000036f, 
  -0.000030f, -0.000024f, -0.000018f, -0.000013f, -0.000007f, -0.000002f, +0.000002f, +0.000007f, 
  +0.000011f, +0.000014f, +0.000018f, +0.000021f, +0.000023f, +0.000025f, +0.000027f, +0.000028f, 
  +0.000029f, +0.000030f, +0.000030f, +0.000030f, +0.000029f, +0.000029f, +0.000028f, +0.000027f, 
  +0.000025f, +0.000024f, +0.000022f, +0.000021f, +0.000019f, +0.000017f, +0.000015f, +0.000013f, 
  +0.000011f, +0.000010f, +0.000008f, +0.000006f, +0.000004f, +0.000003f, +0.000002f, +0.000000f, 
  -0.000001f, -0.000002f, -0.000003f, -0.000004f, -0.000005f, -0.000005f, -0.000006f, -0.000006f, 
  -0.000006f, -0.000006f, -0.000006f, -0.000006f, -0.000006f, -0.000006f, -0.000006f, -0.000006f, 
  -0.000000f
};
const float cb_filt_hi_mean[HI_FILT_ORDER] =
    { +1.489089e-002f, -1.568130e-003f, +1.413887e-003f, +3.824072e-004f, -5.147307e-003f, -4.111475e-003f, -2.299495e-003f,
-2.088294e-003f, -1.472486e-003f };
const float filt_hi_mscb_4a[SIZE_FILT_HI_MSVQ_4A][HI_FILT_ORDER] = {
    {+5.464870e-002f, +1.660430e-002f, +6.815220e-002f, +7.767190e-002f, +3.402440e-002f, -1.940250e-002f, -5.670480e-002f,
     -6.692470e-002f, -1.080700e-001f},
    {+8.657790e-002f, +1.007120e-002f, -1.490410e-002f, -1.550350e-002f, -1.886690e-002f, -1.431070e-002f, -1.196620e-002f,
     -1.049080e-002f, -1.060710e-002f},
    {-3.325660e-001f, +8.086450e-001f, +2.465110e-002f, -1.017260e-001f, -1.524320e-001f, +6.400380e-002f, +6.248250e-001f,
     -1.606550e+000f, +6.711510e-001f},
    {-3.056550e-001f, +6.354410e-002f, +3.174060e-002f, +2.615930e-002f, +3.660030e-002f, +3.216860e-002f, +2.860530e-002f,
     +2.979010e-002f, +5.704660e-002f},
    {+9.068480e-002f, -1.522110e-001f, +2.273580e-002f, -1.326630e-002f, +3.027790e-002f, +4.560750e-003f, +1.155960e-002f,
     +1.483750e-004f, +5.509880e-003f},
    {-1.214430e-001f, +1.238840e-001f, +1.759550e-001f, +6.842070e-003f, -9.359120e-002f, -8.561700e-003f, +1.230760e-002f,
     -3.551310e-002f, -5.988060e-002f},
    {-1.330560e-001f, -3.161280e-002f, +1.609570e-002f, +2.237370e-002f, +3.480910e-002f, +3.204470e-002f, +2.818490e-002f,
     +1.726600e-002f, +1.389450e-002f},
    {+2.795940e-001f, +8.668480e-003f, -5.930820e-002f, -6.158540e-002f, -2.623430e-002f, -2.898560e-002f, -3.258070e-002f,
     -2.289400e-002f, -5.667430e-002f},
    {+2.761010e-001f, +2.082300e-002f, +1.846440e-001f, -3.053220e-001f, -1.610030e-001f, +1.635470e-001f, -4.527610e-001f,
     +4.422920e-002f, +2.297420e-001f},
    {-6.207890e-002f, +1.168650e-001f, -5.453490e-002f, +1.911180e-003f, -1.205590e-003f, +4.137830e-003f, -8.378440e-003f,
     +1.731850e-002f, -1.403480e-002f},
    {+5.908640e-001f, -2.379910e-001f, -1.854310e-001f, +4.773460e-001f, -6.333740e-001f, -3.332720e-001f, +3.959910e-001f,
     -2.136490e-001f, +1.395170e-001f},
    {-1.527530e-002f, -5.299870e-003f, +6.757760e-003f, -4.496840e-003f, +6.041250e-003f, +5.295930e-003f, +6.797770e-003f,
     +3.635170e-003f, -3.455930e-003f},
    {+1.526000e-001f, -2.996270e-001f, -2.901080e-002f, +1.835990e-001f, -1.652230e-001f, +1.664720e-001f, -9.440340e-002f,
     +1.250500e-001f, -3.945620e-002f},
    {+3.325660e-001f, -8.086450e-001f, -2.465110e-002f, +1.017260e-001f, +1.524320e-001f, -6.400380e-002f, -6.248250e-001f,
     +1.606550e+000f, -6.711510e-001f},
    {-2.062010e-002f, -3.292900e-002f, -3.652870e-002f, -2.559180e-002f, -1.844930e-002f, -2.497540e-002f, +1.401900e-003f,
     +2.273700e-002f, +1.349550e-001f},
    {+1.194850e-001f, +2.697220e-001f, +6.424790e-002f, +1.591710e-001f, +1.339440e-001f, -4.459630e-001f, +1.329960e-002f,
     -2.543560e-001f, -5.955040e-002f},
};
const float filt_hi_mscb_7a[SIZE_FILT_HI_MSVQ_7A][HI_FILT_ORDER] = {
    {-7.418330e-002f, +2.996430e-002f, -1.029920e-002f, -5.515410e-002f, -5.832710e-002f, +1.823550e-002f, +7.845990e-002f,
     -1.136890e-001f, +1.849940e-001f},
    {+5.284760e-002f, +1.193880e-001f, +6.179990e-002f, -5.256120e-002f, -7.550290e-002f, +1.155760e-003f, -1.177490e-002f,
     -1.791040e-001f, +8.375210e-002f},
    {+4.920520e-001f, +1.339710e-002f, -2.980330e-001f, +2.926940e-001f, -2.213910e-001f, -4.084130e-001f, +3.057470e-001f,
     -1.075940e-001f, -6.846000e-002f},
    {-5.732670e-002f, +1.935000e-001f, -7.925840e-002f, +3.092220e-002f, -5.357770e-002f, +6.142280e-002f, +2.139930e-002f,
     -1.468130e-001f, +2.973270e-002f},
    {-1.577910e-002f, +7.905690e-002f, +7.619300e-002f, +3.914150e-002f, +1.766860e-002f, +6.243360e-002f, +1.855050e-002f,
     -2.366330e-001f, -4.063090e-002f},
    {-9.538240e-002f, +1.000530e-001f, +2.087060e-002f, -2.320290e-002f, -4.414930e-003f, +5.308620e-002f, +5.891830e-002f,
     -1.667220e-001f, +5.679560e-002f},
    {-3.884810e-001f, +6.886450e-002f, +7.601600e-002f, +4.621100e-002f, +4.314670e-002f, +1.004930e-001f, +8.404240e-002f,
     -1.388800e-001f, +1.085880e-001f},
    {+5.655340e-002f, +2.366300e-001f, +7.158930e-002f, +1.096640e-001f, +7.215510e-002f, -2.381210e-001f, +3.135600e-002f,
     -3.183090e-001f, -2.151700e-002f},
    {+3.262000e-002f, -3.950250e-002f, +5.659990e-002f, -6.241360e-002f, +2.579630e-002f, +3.172810e-002f, +5.411430e-002f,
     -1.614940e-001f, +6.255280e-002f},
    {-1.838470e-001f, +2.103640e-001f, +1.164840e-001f, -2.372570e-002f, -9.733500e-002f, +3.824010e-002f, +9.337010e-002f,
     -1.624820e-001f, +8.932560e-003f},
    {-2.753770e-002f, +2.846910e-002f, -2.070630e-002f, +4.141390e-002f, +1.645410e-002f, +1.617700e-002f, +1.963190e-002f,
     -1.988810e-001f, +1.249800e-001f},
    {+1.814860e-002f, +7.191140e-002f, -3.626700e-003f, -3.347380e-002f, -3.091600e-002f, +5.173730e-002f, +6.634910e-002f,
     -1.738660e-001f, +3.373670e-002f},
    {+2.379480e-001f, +7.187100e-002f, -4.486730e-002f, -5.430090e-002f, -4.520310e-002f, +7.127280e-003f, +1.195480e-002f,
     -1.985030e-001f, +1.397290e-002f},
    {-4.920520e-001f, -1.339710e-002f, +2.980330e-001f, -2.926940e-001f, +2.213910e-001f, +4.084130e-001f, -3.057470e-001f,
     +1.075940e-001f, +6.846000e-002f},
    {+1.245870e-001f, -2.256780e-001f, +5.247850e-002f, +1.335030e-001f, -1.254880e-001f, +1.300520e-001f, -2.986840e-002f,
     -7.372050e-002f, +1.413600e-002f},
    {-1.739920e-001f, +8.942610e-002f, +1.999770e-002f, -1.404370e-002f, +1.358690e-002f, +6.402990e-002f, +7.280530e-002f,
     -1.532990e-001f, +8.149020e-002f}
};
const float filt_hi_mscb_7b[SIZE_FILT_HI_MSVQ_7B][HI_FILT_ORDER] = {
    {+3.976060e-002f, -2.283840e-002f, -1.171990e-002f, -4.563000e-003f, +5.729080e-002f, -5.655730e-002f, -5.485150e-002f,
     +2.347640e-001f, -1.812860e-001f},
    {+1.306840e-001f, -1.055970e-001f, -2.124800e-002f, +1.890850e-002f, +8.665830e-004f, -5.605270e-002f, -6.424890e-002f,
     +1.608330e-001f, -6.414460e-002f},
    {+3.264880e-002f, -1.560840e-001f, +4.003960e-002f, +4.596550e-002f, +2.135530e-003f, -4.553400e-002f, -1.977430e-002f,
     +1.645600e-001f, -6.395760e-002f},
    {-5.496700e-002f, -3.865690e-002f, +9.639840e-003f, +3.162140e-002f, +2.937320e-002f, -4.720480e-002f, -6.345550e-002f,
     +1.734100e-001f, -3.976010e-002f},
    {-2.139990e-001f, +5.387970e-001f, +6.076380e-002f, +1.356540e-002f, -1.622450e-001f, +1.806550e-001f, +3.962520e-001f,
     -1.207370e+000f, +3.935820e-001f},
    {+5.717420e-002f, +1.112040e-002f, -5.604540e-002f, -1.446760e-002f, +4.651930e-004f, -6.386340e-002f, -3.832830e-002f,
     +1.468410e-001f, -4.289650e-002f},
    {+5.113360e-002f, -9.433520e-002f, +6.269480e-002f, -1.105210e-001f, +1.621160e-002f, +6.745590e-002f, -1.604080e-001f,
     +1.288910e-001f, +3.887740e-002f},
    {-4.243470e-002f, -1.324060e-001f, -8.412480e-002f, +1.949060e-002f, +5.590220e-002f, +2.110180e-002f, +4.815310e-003f,
     +1.980700e-001f, -4.041510e-002f},
};
const float cb_gain_hi_mean[HI_GAIN_ORDER] = {
    +1.157013e+000f, +1.157013e+000f
};
const float gain_hi_mscb_2a[SIZE_GAIN_HI_MSVQ_2A][HI_GAIN_ORDER] = {
    {+2.630640e-001f, +8.150010e-001f},
    {-1.115640e+000f, +2.567330e+000f},
    {-4.263890e-001f, -5.567020e-001f},
    {+1.629350e+000f, -1.525540e-001f},
};
const float gain_hi_mscb_5a[SIZE_GAIN_HI_MSVQ_5A][HI_GAIN_ORDER] = {
    {-6.552080e-001f, +3.714960e+000f},
    {-1.739300e-001f, -6.110530e+000f},
    {+3.219630e+000f, -5.917670e-001f},
    {-2.115770e+000f, +5.897130e-002f},
    {-1.936060e-001f, -1.185300e+001f},
    {-4.230930e-001f, -1.918930e-002f},
    {+1.431820e+000f, +2.766980e-001f},
    {+4.244140e-001f, +7.890940e-001f},
    {-9.580130e-001f, +1.132300e+000f},
    {+2.106100e-001f, -1.286130e+000f},
    {-5.541610e-001f, -5.130360e-001f},
    {-7.772880e+000f, -1.635380e-001f},
    {+1.048880e+000f, -2.419940e+001f},
    {+4.840080e-001f, -4.974180e-001f},
    {+7.784300e-001f, +1.791020e-001f},
    {-1.273840e-001f, +1.294400e+000f},
    {-9.415370e-001f, +3.062470e-001f},
    {+1.610220e-001f, +1.282730e-001f},
    {-7.251860e-002f, -4.044760e-001f},
    {+1.104590e+000f, +9.188680e-001f},
    {+2.160310e+000f, -1.927920e-002f},
    {-1.827780e+001f, -2.763200e-001f},
    {+5.285410e-001f, +1.589880e+000f},
    {-1.616460e-001f, -3.241580e+000f},
    {+5.434530e+000f, -1.018020e+000f},
    {+1.262450e+000f, -6.096080e-001f},
    {-2.189640e-001f, -8.492780e-001f},
    {-6.539870e-001f, +7.206940e+000f},
    {-1.220310e+000f, -1.302560e+000f},
    {-8.970630e-001f, -2.128290e-001f},
    {-2.637690e-001f, +5.845460e-001f},
    {-2.787550e-001f, +2.280510e+000f}
};
const int size_filt_hi_msvq_4[NSTAGES_FILT_HI_MSVQ4] = {SIZE_FILT_HI_MSVQ_4A};
const float *cbs_filt_hi_msvq_4[NSTAGES_FILT_HI_MSVQ4] = {(const float *)filt_hi_mscb_4a};
const PMSVQ filt_hi_pmsvq4={ 
	0.5,
	0.5,			
	cb_filt_hi_mean,
	{	HI_FILT_ORDER,
		NSTAGES_FILT_HI_MSVQ4, 
		INTENS_FILT_HI_MSVQ4, 
		size_filt_hi_msvq_4,
		cbs_filt_hi_msvq_4
	}
};
const int size_filt_hi_msvq_7[NSTAGES_FILT_HI_MSVQ7] = {SIZE_FILT_HI_MSVQ_7A, SIZE_FILT_HI_MSVQ_7B};
const float *cbs_filt_hi_msvq_7[NSTAGES_FILT_HI_MSVQ7] = {(const float *)filt_hi_mscb_7a, (const float *)filt_hi_mscb_7b};
const PMSVQ filt_hi_pmsvq7={ 
	0.5,
	0.5,
	cb_filt_hi_mean,
	{	HI_FILT_ORDER,
		NSTAGES_FILT_HI_MSVQ7, 
		INTENS_FILT_HI_MSVQ7, 
		size_filt_hi_msvq_7,
		cbs_filt_hi_msvq_7
	}
};
const int size_gain_hi_msvq_2[NSTAGES_GAIN_HI_MSVQ2] = {SIZE_GAIN_HI_MSVQ_2A};
const float *cbs_gain_hi_msvq_2[NSTAGES_GAIN_HI_MSVQ2] = {(const float *)gain_hi_mscb_2a};
const PMSVQ gain_hi_pmsvq2={ 
	0.5,
	0.5,
	cb_gain_hi_mean,
	{	HI_GAIN_ORDER,
		NSTAGES_GAIN_HI_MSVQ2, 
		INTENS_GAIN_HI_MSVQ2, 
		size_gain_hi_msvq_2,
		cbs_gain_hi_msvq_2
	}
};
const int size_gain_hi_msvq_5[NSTAGES_GAIN_HI_MSVQ5] = {SIZE_GAIN_HI_MSVQ_5A};
const float *cbs_gain_hi_msvq_5[NSTAGES_GAIN_HI_MSVQ5] = {(const float *)gain_hi_mscb_5a};
const PMSVQ gain_hi_pmsvq5={ 
	0.5,
	0.5,
	cb_gain_hi_mean,
	{	HI_GAIN_ORDER,
		NSTAGES_GAIN_HI_MSVQ5, 
		INTENS_GAIN_HI_MSVQ5, 
		size_gain_hi_msvq_5,
		cbs_gain_hi_msvq_5
	}
};

⌨️ 快捷键说明

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