Loading lib_com/cnst.h +10 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading lib_com/lsf_tools.c +14 −2 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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 ); Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 */ Loading lib_com/prot.h +3 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading lib_com/rom_com.c +33 −1 Original line number Diff line number Diff line Loading @@ -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
lib_com/cnst.h +10 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading
lib_com/lsf_tools.c +14 −2 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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 ); Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 */ Loading
lib_com/prot.h +3 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading
lib_com/rom_com.c +33 −1 Original line number Diff line number Diff line Loading @@ -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