Commit eff6ad2d authored by Jonas Svedberg's avatar Jonas Svedberg
Browse files

added dct20 to support N=20 for fdcng WB1 bandwidth (occuring for ISM2 at bit rate 16400 )

parent 6e9cf7fa
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -1395,6 +1395,10 @@ enum
#define FDCNG_VQ_DCT_MAXTRUNC   18  
#define FDCNG_VQ_MAX_LEN_WB     21 

#ifdef ERI_MSVQ_CLEANUP_WB1  
#define FDCNG_VQ_MAX_LEN_WB1     20 
#endif 

#define FDCNG_VQ_DCT_NPOST   8   

typedef enum _DCTTYPE
@@ -1403,6 +1407,11 @@ typedef enum _DCTTYPE
    IDCT_T2_XX_24 = 1,
    DCT_T2_21_XX = 2, /* truncated DCT_T2_21 */
    IDCT_T2_XX_21 = 3    
#ifdef ERI_MSVQ_CLEANUP_WB1
    ,DCT_T2_20_XX = 4, /* truncated DCT_T2_20 */
    IDCT_T2_XX_20 = 5    
#endif 

} DCTTYPE;


+14 −2
Original line number Diff line number Diff line
@@ -2460,7 +2460,11 @@ void dctT2_N_apply_matrix(
        mat_step_col = matrix_row_dim; /* matrix maximum storage size dependent,  width of first row in matrix  */
        mat_step_row = 0;
        mat_step_col_flag = 1;
#ifdef ERI_MSVQ_CLEANUP_WB1
        assert( dcttype == DCT_T2_20_XX || dcttype == DCT_T2_21_XX || dcttype == DCT_T2_24_XX );
#else 
        assert( dcttype == DCT_T2_21_XX || dcttype == DCT_T2_24_XX );
#endif 
    }
    else
    {
@@ -2569,6 +2573,14 @@ void create_IDCT_N_Matrix( float *inv_matrixFloatQ, const int16_t N, const int16
        idx_ptr    = idctT2_21_compressed_idx;
        len = N;
    }
#ifdef ERI_MSVQ_CLEANUP_WB1
    if ( N == FDCNG_VQ_MAX_LEN_WB1 )
    {
        absval_ptr = unique_idctT2_20coeffsQ16;
        idx_ptr    = idctT2_20_compressed_idx;
        len = N;
    }
#endif 

    assert( alloc_size >= ( n_cols * len ) ); /* enough space for the full expanded IDCT matrix  */
    assert( N <= len );
+1 −1
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@


#define ERI_MSVQ_CLEANUP                                /* Eri: Contribution #31  BE modularization of msvq encoder side DCT21&DCT24 within msvq_enc()        */

#define ERI_MSVQ_CLEANUP_WB1                             /*Eri: Contribution #31   non-BE for  ISM   low rate (total_rate < 8kbps)   using WB1 bandwidth        */

#define FIX_416_ISM_BR_SWITCHING                        /* FhG: add missing CLDFB reconfig to ISM BR switching */
#define FIX_SP2A                                        /* VA: Issue 412: Adjust threshold for the S_p2a feature in the tonal detector */
+3 −0
Original line number Diff line number Diff line
@@ -8142,6 +8142,9 @@ int16_t msvq_stage1_dct_search( /* o

int16_t msvq_stage1_dct_recalc_candidates_fdcng_wb(
    /* o  : (updated p_max)                */
#ifdef ERI_MSVQ_CLEANUP_WB1
    const int16_t n,              /*i   : original target length            */
#endif 
    const float *st1_syn_vec_ptr, /* i  : IDCT24 synthesis vectors       */
    const float *u,               /* i  : target   signal                */
    const int16_t maxC_st1,       /* i  : number of candidates in stage1 */
+33 −1
Original line number Diff line number Diff line
@@ -6140,7 +6140,39 @@ const Word8 idctT2_21_compressed_idx[(FDCNG_VQ_DCT_MAXTRUNC *( (21/2) + 1)) /*
};
 /*low storage IDCT24x18 table &&  IDCT21*18 */
#ifdef ERI_MSVQ_CLEANUP_WB1
const Word16  unique_idctT2_20coeffsQ16[21] = {  
     0,   1626,   3242,   4838,   6404,   7931,   9409,  10828,
 12181,  13459,  14654,  15759,  16766,  17670,  18465,  19147,
 19710,  20152,  20469,  20660,  20724
};
const Word8 idctT2_20_compressed_idx[(FDCNG_VQ_DCT_MAXTRUNC *( (20/2) ))  /* ==  180  Word8 */ ] = { 
    10,     19,     18,     17,     16,     15,     14,     13,     12,     11,     10,      9,      8,      7,      6,      5,      4,      3,
    10,     17,     14,     11,      8,      5,      2,     -1,     -4,     -7,    -10,    -13,    -16,    -19,    -18,    -15,    -12,     -9,
    10,     15,     10,      5,      0,     -5,    -10,    -15,    -20,    -15,    -10,     -5,      0,      5,     10,     15,     20,     15,
    10,     13,      6,     -1,     -8,    -15,    -18,    -11,     -4,      3,     10,     17,     16,      9,      2,     -5,    -12,    -19,
    10,     11,      2,     -7,    -16,    -15,     -6,      3,     12,     19,     10,      1,     -8,    -17,    -14,     -5,      4,     13,
    10,      9,     -2,    -13,    -16,     -5,      6,     17,     12,      1,    -10,    -19,     -8,      3,     14,     15,      4,     -7,
    10,      7,     -6,    -19,     -8,      5,     18,      9,     -4,    -17,    -10,      3,     16,     11,     -2,    -15,    -12,      1,
    10,      5,    -10,    -15,      0,     15,     10,     -5,    -20,     -5,     10,     15,      0,    -15,    -10,      5,     20,      5,
    10,      3,    -14,     -9,      8,     15,     -2,    -19,     -4,     13,     10,     -7,    -16,      1,     18,      5,    -12,    -11,
    10,      1,    -18,     -3,     16,      5,    -14,     -7,     12,      9,    -10,    -11,      8,     13,     -6,    -15,      4,     17,
    /*
    10,     -1,    -18,      3,     16,     -5,    -14,      7,     12,     -9,    -10,     11,      8,    -13,     -6,     15,      4,    -17,
    10,     -3,    -14,      9,      8,    -15,     -2,     19,     -4,    -13,     10,      7,    -16,     -1,     18,     -5,    -12,     11,
    10,     -5,    -10,     15,      0,    -15,     10,      5,    -20,      5,     10,    -15,      0,     15,    -10,     -5,     20,     -5,
    10,     -7,     -6,     19,     -8,     -5,     18,     -9,     -4,     17,    -10,     -3,     16,    -11,     -2,     15,    -12,     -1,
    10,     -9,     -2,     13,    -16,      5,      6,    -17,     12,     -1,    -10,     19,     -8,     -3,     14,    -15,      4,      7,
    10,    -11,      2,      7,    -16,     15,     -6,     -3,     12,    -19,     10,     -1,     -8,     17,    -14,      5,      4,    -13,
    10,    -13,      6,      1,     -8,     15,    -18,     11,     -4,     -3,     10,    -17,     16,     -9,      2,      5,    -12,     19,
    10,    -15,     10,     -5,      0,      5,    -10,     15,    -20,     15,    -10,      5,      0,     -5,     10,    -15,     20,    -15,
    10,    -17,     14,    -11,      8,     -5,      2,      1,     -4,      7,    -10,     13,    -16,     19,    -18,     15,    -12,      9,
    10,    -19,     18,    -17,     16,    -15,     14,    -13,     12,    -11,     10,     -9,      8,     -7,      6,     -5,      4,     -3 */
};
 /*low storage IDCT20x18 table  */
#endif 
 
Loading