tabamrwb.c

来自「这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数」· C语言 代码 · 共 401 行 · 第 1/2 页

C
401
字号
   8, 8, 8, 8, 8, 8, 8, 8,
   8, 8, 8, 8, 8, 8, 8, 8,
   8, 8, 8, 8, 8, 8, 8, 8,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7,
   7, 7, 7, 7, 7, 7, 7, 7
};

__ALIGN32 CONST short IspInitTbl[LP_ORDER] =
{
    32138,  30274,  27246,  23170,
    18205,  12540,   6393,      0,
    -6393, -12540, -18205, -23170,
   -27246, -30274, -32138,   1475
};

__ALIGN32 CONST short IsfInitTbl[LP_ORDER] =
{
    1024,  2048,  3072,  4096,
    5120,  6144,  7168,  8192,
    9216, 10240, 11264, 12288,
   13312, 14336, 15360,  3840
};

/* High Band encoding */
__ALIGN32 CONST short HPGainTbl[16] =
{
    3624,  4673,  5597,  6479,
    7425,  8378,  9324, 10264,
   11210, 12206, 13391, 14844,
   16770, 19655, 24289, 32728
};

__ALIGN32 CONST short Fir6k_7kTbl[31] =
{
      -32,     47,     32,    -27,   -369,    1122,
    -1421,      0,   3798,  -8880,  12349,  -10984,
     3548,   7766, -18001,  22118, -18001,    7766,
     3548, -10984,  12349,  -8880,   3798,       0,
     -1421,  1122,   -369,    -27,     32,      47,
      -32
};

__ALIGN32 CONST short Fir7kTbl[31] =
{
      -21,    47,   -89,   146,  -203,   229,
     -177,     0,   335,  -839,  1485, -2211,
     2931, -3542,  3953, 28682,  3953, -3542,
     2931, -2211,  1485,  -839,   335,     0,
     -177,   229,  -203,   146,   -89,    47,
      -21
};

__ALIGN32 CONST short InterpolFracTbl[NUMBER_SUBFRAME] = {14746, 26214, 31457, 32767};

__ALIGN32 CONST short BCoeffHP50Tbl[3] = {4053, -8106, 4053};
__ALIGN32 CONST short ACoeffHP50Tbl[3] = {8192, 16211, -8021};

__ALIGN32 CONST short BCoeffHP400Tbl[3] = {915, -1830, 915};
__ALIGN32 CONST short ACoeffHP400Tbl[3] = {16384, 29280, -14160};

__ALIGN32 CONST short PCoeffDownUnusableTbl[7] = {32767, 31130, 29491, 24576, 7537, 1638, 328};
__ALIGN32 CONST short CCoeffDownUnusableTbl[7] = {32767, 16384, 8192, 8192, 8192, 4915, 3277};

__ALIGN32 CONST short PCoeffDownUsableTbl[7] = {32767, 32113, 31457, 24576, 7537, 1638, 328};
__ALIGN32 CONST short CCoeffDownUsableTbl[7] = {32767, 32113, 32113, 32113, 32113, 32113, 22938};

__ALIGN32 CONST short ACoeffTbl[4] = {8192, 21663, -19258, 5734};
__ALIGN32 CONST short BCoeffTbl[4] = {-3432, +10280, -10280, +3432};

/* number of parameters per modes (values must be <= MAX_PRM_SIZE!) */
enum _PRMNO_MR {
    PRMNO_MR660   = 18,
    PRMNO_MR8850  = 32,
    PRMNO_MR12650 = 36,
    PRMNO_MR14250 = 36,
    PRMNO_MR15850 = 36,
    PRMNO_MR18250 = 52,
    PRMNO_MR19850 = 52,
    PRMNO_MR23050 = 52,
    PRMNO_MR23850 = 56,
    PRMNO_MRDTX   =  7
};

/* number of parameters per modes (values must be <= MAX_PRM_SIZE!) */
__ALIGN32 CONST short NumberPrmsTbl[NUM_OF_MODES] = {
  PRMNO_MR660, PRMNO_MR8850, PRMNO_MR12650, PRMNO_MR14250,
  PRMNO_MR15850, PRMNO_MR18250, PRMNO_MR19850, PRMNO_MR23050,
  PRMNO_MR23850, PRMNO_MRDTX
};


/* parameter sizes (# of bits), one table per rate */
static __ALIGN32 CONST short NumberBits660Tbl[PRMNO_MR660] = {
   1,                                       /* VAD             */
   8,  8, 7, 7, 6,                          /* ISFs            */
   8, 12, 6,                                /* first subframe  */
   5, 12, 6,                                /* second subframe */
   5, 12, 6,                                /* third subframe  */
   5, 12, 6,                                /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits8850Tbl[PRMNO_MR8850] = {
   1,                                       /* VAD             */
   8, 8, 6, 7, 7, 5, 5,                     /* ISFs            */
   8, 5, 5, 5, 5, 6,                        /* first subframe  */
   5, 5, 5, 5, 5, 6,                        /* second subframe */
   8, 5, 5, 5, 5, 6,                        /* third subframe  */
   5, 5, 5, 5, 5, 6,                        /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits12650Tbl[PRMNO_MR12650] = {
   1,                                       /* VAD             */
   8, 8, 6, 7, 7, 5, 5,                     /* ISFs            */
   9, 1, 9, 9, 9, 9, 7,                     /* first subframe  */
   6, 1, 9, 9, 9, 9, 7,                     /* second subframe */
   9, 1, 9, 9, 9, 9, 7,                     /* third subframe  */
   6, 1, 9, 9, 9, 9, 7,                     /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits14250Tbl[PRMNO_MR14250] = {
   1,                                       /* VAD             */
   8, 8,  6,  7, 7, 5, 5,                   /* ISFs            */
   9, 1, 13, 13, 9, 9, 7,                   /* first subframe  */
   6, 1, 13, 13, 9, 9, 7,                   /* second subframe */
   9, 1, 13, 13, 9, 9, 7,                   /* third subframe  */
   6, 1, 13, 13, 9, 9, 7,                   /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits15850Tbl[PRMNO_MR15850] = {
   1,                                       /* VAD             */
   8, 8,  6,  7,  7,  5, 5,                 /* ISFs            */
   9, 1, 13, 13, 13, 13, 7,                 /* first subframe  */
   6, 1, 13, 13, 13, 13, 7,                 /* second subframe */
   9, 1, 13, 13, 13, 13, 7,                 /* third subframe  */
   6, 1, 13, 13, 13, 13, 7,                 /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits18250Tbl[PRMNO_MR18250] = {
   1,                                       /* VAD             */
   8, 8,  6,  7,  7,  5, 5,                 /* ISFs            */
   9, 1, 2, 2, 2, 2, 14, 14, 14, 14, 7,     /* first subframe  */
   6, 1, 2, 2, 2, 2, 14, 14, 14, 14, 7,     /* second subframe */
   9, 1, 2, 2, 2, 2, 14, 14, 14, 14, 7,     /* third subframe  */
   6, 1, 2, 2, 2, 2, 14, 14, 14, 14, 7,     /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits19850Tbl[PRMNO_MR19850] = {
   1,                                       /* VAD             */
   8, 8,  6,  7,  7,  5, 5,                 /* ISFs            */
   9, 1, 10, 10, 2, 2, 10, 10, 14, 14, 7,   /* first subframe  */
   6, 1, 10, 10, 2, 2, 10, 10, 14, 14, 7,   /* second subframe */
   9, 1, 10, 10, 2, 2, 10, 10, 14, 14, 7,   /* third subframe  */
   6, 1, 10, 10, 2, 2, 10, 10, 14, 14, 7,   /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits23050Tbl[PRMNO_MR23050] = {
   1,                                       /* VAD             */
   8, 8,  6,  7,  7,  5, 5,                 /* ISFs            */
   9, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, /* first subframe  */
   6, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, /* second subframe */
   9, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, /* third subframe  */
   6, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, /* fourth subframe */
};

static __ALIGN32 CONST short NumberBits23850Tbl[PRMNO_MR23850] = {
   1,                                          /* VAD             */
   8, 8,  6,  7,  7,  5, 5,                    /* ISFs            */
   9, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, 4, /* first subframe  */
   6, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, 4, /* second subframe */
   9, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, 4, /* third subframe  */
   6, 1, 11, 11, 11, 11, 11, 11, 11, 11, 7, 4, /* fourth subframe */
};

static __ALIGN32 CONST short NumberBitsDTXTbl[PRMNO_MRDTX] = {
   6, 6,  6,  5, 5,                            /* ISFs            */
   6,                                          /* log_en_index    */
   1,                                          /* CN_dith         */
};

/* overall table with all parameter sizes for all modes */
__ALIGN32 CONST short *pNumberBitsTbl[NUM_OF_MODES] = {
   NumberBits660Tbl,   NumberBits8850Tbl,   NumberBits12650Tbl,   NumberBits14250Tbl,
   NumberBits15850Tbl, NumberBits18250Tbl,  NumberBits19850Tbl,   NumberBits23050Tbl,
   NumberBits23850Tbl, NumberBitsDTXTbl
};

⌨️ 快捷键说明

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