Loading lib_com/ivas_cnst.h +1 −0 Original line number Diff line number Diff line Loading @@ -1193,6 +1193,7 @@ typedef enum #define MP_DIFF_HUFFMAN_MODE 0 #define MP_FLC_MODE 1 #define MP_MIN_Q_GAIN -75.f #define MP_MAX_Q_GAIN 15.f #define MP_DELTA_Q_GAIN 0.1f #define MP_MAX_HUFFMAN_BITS 20 #define MP_Q_GAIN_TABLE_SIZE ( ( 15 + 1 ) * 2) Loading lib_com/ivas_mp_com.c +4 −7 Original line number Diff line number Diff line Loading @@ -79,8 +79,7 @@ void debug_ivas_mp_write_pcm( MP_TCS_DMX_CONFIG ivas_mp_get_transport_group_config( const int16_t sba_order, const int32_t total_bitrate, const int16_t nchannels ) const int16_t nchannels ) { int16_t i, idx; Loading Loading @@ -210,8 +209,7 @@ void ivas_mp_config_open( const int16_t nchan_input, const int32_t total_bitrate, const int16_t sba_order_input, const int32_t sr ) const int32_t sr ) { int16_t i; Loading Loading @@ -324,8 +322,7 @@ int16_t ivas_mp_metadata_open( } void ivas_mp_metadata_close( MP_META_DATA_HANDLE hQMetadata ) MP_META_DATA_HANDLE hQMetadata ) { int16_t i, ch; int16_t nchan_reference_gain; Loading lib_com/ivas_mp_rom.c +64 −62 Original line number Diff line number Diff line Loading @@ -97,71 +97,73 @@ const MP_TCS_DMX_CONFIG ivas_mp_TCs_dmx_cfg_table[MP_MAX_GROUP_TRANSPORT_CFG] = }; const int16_t ivas_mp_q_gain_table[MP_Q_GAIN_TABLE_SIZE] = { ( (int16_t) ( MP_MIN_Q_GAIN ) ), -65, -55, -50, -45, -40, -35, -30, -28, -26, -24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 12, 14, 17, 20 // 2.383918403484545 ( (int16_t) ( MP_MIN_Q_GAIN ) ), -55, -50, -45, -40, -38, -36, -34, -32, -30, -28, -26, -24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 12, ( (int16_t) ( MP_MAX_Q_GAIN ) ) }; const Huffman_codebook ivas_diff_huffman_codebook_table[MP_Q_GAIN_TABLE_SIZE * 2 - 1] = { { 0, 1, 1 }, /* 0 -> 1 */ { -1, 1, 2 }, /* 10 -> 01 */ { 3, 13, 5 }, /* 10010 -> 01101 */ { 1, 0, 3 }, /* 111 -> 000 */ { -2, 4, 5 }, /* 11011 -> 00100 */ { 2, 5, 5 }, /* 11010 -> 00101 */ { -3, 12, 6 }, /* 110011 -> 001100 */ { 3, 13, 6 }, /* 110010 -> 001101 */ { -4, 15, 6 }, /* 110000 -> 001111 */ { 4, 28, 7 }, /* 1100011 -> 0011100 */ { -5, 117, 9 }, /* 110001010 -> 001110101 */ { 5, 116, 9 }, /* 110001011 -> 001110100 */ { -6, 237, 10 }, /* 1100010010 -> 0011101101 */ { -8, 1906, 13 }, /* 1100010001101 -> 0011101110010 */ { 6, 236, 10 }, /* 1100010011 -> 0011101100 */ { 8, 1904, 13 }, /* 1100010001111 -> 0011101110000 */ { 7, 477, 11 }, /* 11000100010 -> 00111011101 */ { -7, 479, 11 }, /* 11000100000 -> 00111011111 */ { 9, 1915, 13 }, /* 1100010000100 -> 0011101111011 */ { -9, 3824, 14 }, /* 11000100001111 -> 00111011110000 */ { 22, 3811, 14 }, /* 11000100011100 -> 00111011100011 */ { 10, 3825, 14 }, /* 11000100001110 -> 00111011110001 */ { 14, 15256, 16 }, /* 1100010001100111 -> 0011101110011000 */ { 21, 30632, 17 }, /* 11000100001010111 -> 00111011110101000 */ { -22, 3827, 14 }, /* 11000100001100 -> 00111011110011 */ { -11, 7656, 15 }, /* 110001000010111 -> 001110111101000 */ { -10, 7629, 15 }, /* 110001000110010 -> 001110111001101 */ { -21, 61231, 18 }, /* 110001000011010000 -> 001110111100101111 */ { 11, 7621, 15 }, /* 110001000111010 -> 001110111000101 */ { 12, 7652, 15 }, /* 110001000011011 -> 001110111100100 */ { 13, 7659, 15 }, /* 110001000010100 -> 001110111101011 */ { 16, 15314, 16 }, /* 1100010000101101 -> 0011101111010010 */ { 19, 15261, 16 }, /* 1100010001100010 -> 0011101110011101 */ { 18, 15257, 16 }, /* 1100010001100110 -> 0011101110011001 */ { -12, 15240, 16 }, /* 1100010001110111 -> 0011101110001000 */ { -15, 30483, 17 }, /* 11000100011101100 -> 00111011100010011 */ { -14, 15317, 16 }, /* 1100010000101010 -> 0011101111010101 */ { -13, 15263, 16 }, /* 1100010001100000 -> 0011101110011111 */ { 17, 15306, 16 }, /* 1100010000110101 -> 0011101111001010 */ { 15, 15262, 16 }, /* 1100010001100001 -> 0011101110011110 */ { 20, 15315, 16 }, /* 1100010000101100 -> 0011101111010011 */ { -16, 30520, 17 }, /* 11000100011000111 -> 00111011100111000 */ { -17, 60964, 18 }, /* 110001000111011011 -> 001110111000100100 */ { -19, 30633, 17 }, /* 11000100001010110 -> 00111011110101001 */ { -20, 30614, 17 }, /* 11000100001101001 -> 00111011110010110 */ { -18, 60965, 18 }, /* 110001000111011010 -> 001110111000100101 */ { -29, 244172, 20 }, /* 11000100011000110011 -> 00111011100111001100 */ { -31, 61230, 18 }, /* 110001000011010001 -> 001110111100101110 */ { 31, 61042, 18 }, /* 110001000110001101 -> 001110111001110010 */ { 30, 976700, 22 }, /* 1100010001100011000011 -> 0011101110011100111100 */ { 28, 976701, 22 }, /* 1100010001100011000010 -> 0011101110011100111101 */ { -25, 488349, 21 }, /* 110001000110001100010 -> 001110111001110011101 */ { -26, 3906770, 24 }, /* 110001000110001100101101 -> 001110111001110011010010 */ { -30, 976702, 22 }, /* 1100010001100011000001 -> 0011101110011100111110 */ { -27, 976703, 22 }, /* 1100010001100011000000 -> 0011101110011100111111 */ { 23, 488348, 21 }, /* 110001000110001100011 -> 001110111001110011100 */ { 25, 1953384, 23 }, /* 11000100011000110010111 -> 00111011100111001101000 */ { 26, 1953390, 23 }, /* 11000100011000110010001 -> 00111011100111001101110 */ { -28, 976693, 22 }, /* 1100010001100011001010 -> 0011101110011100110101 */ { 24, 3906771, 24 }, /* 110001000110001100101100 -> 001110111001110011010011 */ { -23, 976694, 22 }, /* 1100010001100011001001 -> 0011101110011100110110 */ { -24, 1953391, 23 }, /* 11000100011000110010000 -> 00111011100111001101111 */ { 0, 1, 1 }, /* 0 -> 1 */ { 4, 29, 6 }, /* 100010 -> 011101 */ { 2, 5, 4 }, /* 1010 -> 0101 */ { -1, 1, 3 }, /* 110 -> 001 */ { -3, 12, 5 }, /* 10011 -> 01100 */ { 7, 252, 9 }, /* 100000011 -> 011111100 */ { -4, 28, 6 }, /* 100011 -> 011100 */ { -2, 4, 4 }, /* 1011 -> 0100 */ { -6, 125, 8 }, /* 10000010 -> 01111101 */ { -5, 60, 7 }, /* 1000011 -> 0111100 */ { 5, 61, 7 }, /* 1000010 -> 0111101 */ { -7, 253, 9 }, /* 100000010 -> 011111101 */ { 6, 124, 8 }, /* 10000011 -> 01111100 */ { 9, 1023, 11 }, /* 10000000000 -> 01111111111 */ { -8, 510, 10 }, /* 1000000001 -> 0111111110 */ { 8, 509, 10 }, /* 1000000010 -> 0111111101 */ { -9, 2033, 12 }, /* 100000001110 -> 011111110001 */ { 11, 8128, 14 }, /* 10000000111111 -> 01111111000000 */ { 10, 4065, 13 }, /* 1000000011110 -> 0111111100001 */ { -10, 4071, 13 }, /* 1000000011000 -> 0111111100111 */ { -11, 8176, 14 }, /* 10000000001111 -> 01111111110000 */ { 24, 4069, 13 }, /* 1000000011010 -> 0111111100101 */ { 12, 8177, 14 }, /* 10000000001110 -> 01111111110001 */ { 15, 16360, 15 }, /* 100000000010111 -> 011111111101000 */ { 14, 16280, 15 }, /* 100000001100111 -> 011111110011000 */ { -12, 16274, 15 }, /* 100000001101101 -> 011111110010010 */ { 21, 32547, 16 }, /* 1000000011011100 -> 0111111100100011 */ { 31, 32518, 16 }, /* 1000000011111001 -> 0111111100000110 */ { -24, 4089, 13 }, /* 1000000000110 -> 0111111111001 */ { 16, 16365, 15 }, /* 100000000010010 -> 011111111101101 */ { 19, 32545, 16 }, /* 1000000011011110 -> 0111111100100001 */ { 25, 32565, 16 }, /* 1000000011001010 -> 0111111100110101 */ { 26, 65125, 17 }, /* 10000000110011010 -> 01111111001100101 */ { 22, 16367, 15 }, /* 100000000010000 -> 011111111101111 */ { 20, 16364, 15 }, /* 100000000010011 -> 011111111101100 */ { 18, 32519, 16 }, /* 1000000011111000 -> 0111111100000111 */ { -20, 65092, 17 }, /* 10000000110111011 -> 01111111001000100 */ { -18, 32724, 16 }, /* 1000000000101011 -> 0111111111010100 */ { -17, 32567, 16 }, /* 1000000011001000 -> 0111111100110111 */ { -16, 32564, 16 }, /* 1000000011001011 -> 0111111100110100 */ { -19, 32732, 16 }, /* 1000000000100011 -> 0111111111011100 */ { -14, 32544, 16 }, /* 1000000011011111 -> 0111111100100000 */ { 13, 16258, 15 }, /* 100000001111101 -> 011111110000010 */ { 23, 16275, 15 }, /* 100000001101100 -> 011111110010011 */ { -15, 32563, 16 }, /* 1000000011001100 -> 0111111100110011 */ { -22, 65450, 17 }, /* 10000000001010101 -> 01111111110101010 */ { -21, 65124, 17 }, /* 10000000110011011 -> 01111111001100100 */ { -23, 130187, 18 }, /* 100000001101110100 -> 011111110010001011 */ { 17, 16363, 15 }, /* 100000000010100 -> 011111111101011 */ { -31, 65132, 17 }, /* 10000000110010011 -> 01111111001101100 */ { 30, 260373, 19 }, /* 1000000011011101010 -> 0111111100100010101 */ { 28, 65467, 17 }, /* 10000000001000100 -> 01111111110111011 */ { -30, 261866, 19 }, /* 1000000000100010101 -> 0111111111011101010 */ { -29, 261865, 19 }, /* 1000000000100010110 -> 0111111111011101001 */ { -27, 523734, 20 }, /* 10000000001000101001 -> 01111111110111010110 */ { -13, 16361, 15 }, /* 100000000010110 -> 011111111101001 */ { 27, 65133, 17 }, /* 10000000110010010 -> 01111111001101101 */ { 29, 261864, 19 }, /* 1000000000100010111 -> 0111111111011101000 */ { -26, 260372, 19 }, /* 1000000011011101011 -> 0111111100100010100 */ { -25, 65451, 17 }, /* 10000000001010100 -> 01111111110101011 */ { -28, 523735, 20 } /* 10000000001000101000 -> 01111111110111010111 */ }; const float ivas_mp_basis_matrix_R1[MP_MAX_NB_COEFFS][MP_COLS_R1] = { Loading lib_com/ivas_rom_com.h +5 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,11 @@ extern const int16_t ivas_pca_offset_index2[2692]; extern const int16_t ivas_pca_offset_n2[IVAS_PCA_N1]; #ifdef IVAS_SBA_MP_768KBPS /*----------------------------------------------------------------------* * MP ROM tables *-----------------------------------------------------------------------*/ extern const int16_t ivas_mp_dirac_band_group_16kHz[MP_MAX_NBANDS + 1]; extern const int16_t ivas_mp_dirac_band_group_32kHz[MP_MAX_NBANDS + 1]; extern const int16_t ivas_mp_dirac_band_group_48kHz[MP_MAX_NBANDS + 1]; Loading lib_dec/ivas_mp_dec.c +4 −3 Original line number Diff line number Diff line Loading @@ -559,7 +559,7 @@ static void ivas_mp_parameters_dec( for ( b = 0; b < hConfig->nb_subbands; b++ ) { int16_t q_idx = hQMetadata->q_reference_gain[ch][subframe_idx][b]; assert( ( q_idx >= 0 ) && ( q_idx <= MP_Q_GAIN_TABLE_SIZE - 1 ) ); //assert( ( q_idx >= 0 ) && ( q_idx <= MP_Q_GAIN_TABLE_SIZE - 1 ) ); hMp->synth_reference_gain[ch][subframe_idx + nb_subframe_delay][b] = (float) hConfig->q_gain_table[q_idx]; } Loading Loading @@ -1093,7 +1093,7 @@ static void ivas_mp_freq_components_recovery( { for ( b = 0; b < hMp->hDecorr->decorr_start_band; b++ ) { for ( i = hConfig->band_grouping[b]; i < hConfig->band_grouping[b]; i++ ) for ( i = hConfig->band_grouping[b]; i < hConfig->band_grouping[b + 1]; i++ ) { cldfb_real_buffer[ch][ts][i] = cldfb_real_buffer[hMp->hDecorr->decorr_table[0]][ts][i]; cldfb_imag_buffer[ch][ts][i] = cldfb_imag_buffer[hMp->hDecorr->decorr_table[0]][ts][i]; Loading @@ -1105,6 +1105,7 @@ static void ivas_mp_freq_components_recovery( if ( is_transient ) { /* recovery transient part later! */ assert( is_transient == 0 || is_transient == 1 ); } return; Loading Loading @@ -1147,7 +1148,7 @@ static void ivas_mp_synthesis_high_order_ambisonics_components_dec_ts( } ivas_mp_freq_components_recovery( hMp, cldfb_real_buffer, cldfb_imag_buffer, tmp_cldfb_real_buffer, tmp_cldfb_imag_buffer, mat_ambi_coefs, 0 /* consider recovery transient part later! */ ); mat_ambi_coefs, 0 ); pop_wmops(); Loading Loading
lib_com/ivas_cnst.h +1 −0 Original line number Diff line number Diff line Loading @@ -1193,6 +1193,7 @@ typedef enum #define MP_DIFF_HUFFMAN_MODE 0 #define MP_FLC_MODE 1 #define MP_MIN_Q_GAIN -75.f #define MP_MAX_Q_GAIN 15.f #define MP_DELTA_Q_GAIN 0.1f #define MP_MAX_HUFFMAN_BITS 20 #define MP_Q_GAIN_TABLE_SIZE ( ( 15 + 1 ) * 2) Loading
lib_com/ivas_mp_com.c +4 −7 Original line number Diff line number Diff line Loading @@ -79,8 +79,7 @@ void debug_ivas_mp_write_pcm( MP_TCS_DMX_CONFIG ivas_mp_get_transport_group_config( const int16_t sba_order, const int32_t total_bitrate, const int16_t nchannels ) const int16_t nchannels ) { int16_t i, idx; Loading Loading @@ -210,8 +209,7 @@ void ivas_mp_config_open( const int16_t nchan_input, const int32_t total_bitrate, const int16_t sba_order_input, const int32_t sr ) const int32_t sr ) { int16_t i; Loading Loading @@ -324,8 +322,7 @@ int16_t ivas_mp_metadata_open( } void ivas_mp_metadata_close( MP_META_DATA_HANDLE hQMetadata ) MP_META_DATA_HANDLE hQMetadata ) { int16_t i, ch; int16_t nchan_reference_gain; Loading
lib_com/ivas_mp_rom.c +64 −62 Original line number Diff line number Diff line Loading @@ -97,71 +97,73 @@ const MP_TCS_DMX_CONFIG ivas_mp_TCs_dmx_cfg_table[MP_MAX_GROUP_TRANSPORT_CFG] = }; const int16_t ivas_mp_q_gain_table[MP_Q_GAIN_TABLE_SIZE] = { ( (int16_t) ( MP_MIN_Q_GAIN ) ), -65, -55, -50, -45, -40, -35, -30, -28, -26, -24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 12, 14, 17, 20 // 2.383918403484545 ( (int16_t) ( MP_MIN_Q_GAIN ) ), -55, -50, -45, -40, -38, -36, -34, -32, -30, -28, -26, -24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 12, ( (int16_t) ( MP_MAX_Q_GAIN ) ) }; const Huffman_codebook ivas_diff_huffman_codebook_table[MP_Q_GAIN_TABLE_SIZE * 2 - 1] = { { 0, 1, 1 }, /* 0 -> 1 */ { -1, 1, 2 }, /* 10 -> 01 */ { 3, 13, 5 }, /* 10010 -> 01101 */ { 1, 0, 3 }, /* 111 -> 000 */ { -2, 4, 5 }, /* 11011 -> 00100 */ { 2, 5, 5 }, /* 11010 -> 00101 */ { -3, 12, 6 }, /* 110011 -> 001100 */ { 3, 13, 6 }, /* 110010 -> 001101 */ { -4, 15, 6 }, /* 110000 -> 001111 */ { 4, 28, 7 }, /* 1100011 -> 0011100 */ { -5, 117, 9 }, /* 110001010 -> 001110101 */ { 5, 116, 9 }, /* 110001011 -> 001110100 */ { -6, 237, 10 }, /* 1100010010 -> 0011101101 */ { -8, 1906, 13 }, /* 1100010001101 -> 0011101110010 */ { 6, 236, 10 }, /* 1100010011 -> 0011101100 */ { 8, 1904, 13 }, /* 1100010001111 -> 0011101110000 */ { 7, 477, 11 }, /* 11000100010 -> 00111011101 */ { -7, 479, 11 }, /* 11000100000 -> 00111011111 */ { 9, 1915, 13 }, /* 1100010000100 -> 0011101111011 */ { -9, 3824, 14 }, /* 11000100001111 -> 00111011110000 */ { 22, 3811, 14 }, /* 11000100011100 -> 00111011100011 */ { 10, 3825, 14 }, /* 11000100001110 -> 00111011110001 */ { 14, 15256, 16 }, /* 1100010001100111 -> 0011101110011000 */ { 21, 30632, 17 }, /* 11000100001010111 -> 00111011110101000 */ { -22, 3827, 14 }, /* 11000100001100 -> 00111011110011 */ { -11, 7656, 15 }, /* 110001000010111 -> 001110111101000 */ { -10, 7629, 15 }, /* 110001000110010 -> 001110111001101 */ { -21, 61231, 18 }, /* 110001000011010000 -> 001110111100101111 */ { 11, 7621, 15 }, /* 110001000111010 -> 001110111000101 */ { 12, 7652, 15 }, /* 110001000011011 -> 001110111100100 */ { 13, 7659, 15 }, /* 110001000010100 -> 001110111101011 */ { 16, 15314, 16 }, /* 1100010000101101 -> 0011101111010010 */ { 19, 15261, 16 }, /* 1100010001100010 -> 0011101110011101 */ { 18, 15257, 16 }, /* 1100010001100110 -> 0011101110011001 */ { -12, 15240, 16 }, /* 1100010001110111 -> 0011101110001000 */ { -15, 30483, 17 }, /* 11000100011101100 -> 00111011100010011 */ { -14, 15317, 16 }, /* 1100010000101010 -> 0011101111010101 */ { -13, 15263, 16 }, /* 1100010001100000 -> 0011101110011111 */ { 17, 15306, 16 }, /* 1100010000110101 -> 0011101111001010 */ { 15, 15262, 16 }, /* 1100010001100001 -> 0011101110011110 */ { 20, 15315, 16 }, /* 1100010000101100 -> 0011101111010011 */ { -16, 30520, 17 }, /* 11000100011000111 -> 00111011100111000 */ { -17, 60964, 18 }, /* 110001000111011011 -> 001110111000100100 */ { -19, 30633, 17 }, /* 11000100001010110 -> 00111011110101001 */ { -20, 30614, 17 }, /* 11000100001101001 -> 00111011110010110 */ { -18, 60965, 18 }, /* 110001000111011010 -> 001110111000100101 */ { -29, 244172, 20 }, /* 11000100011000110011 -> 00111011100111001100 */ { -31, 61230, 18 }, /* 110001000011010001 -> 001110111100101110 */ { 31, 61042, 18 }, /* 110001000110001101 -> 001110111001110010 */ { 30, 976700, 22 }, /* 1100010001100011000011 -> 0011101110011100111100 */ { 28, 976701, 22 }, /* 1100010001100011000010 -> 0011101110011100111101 */ { -25, 488349, 21 }, /* 110001000110001100010 -> 001110111001110011101 */ { -26, 3906770, 24 }, /* 110001000110001100101101 -> 001110111001110011010010 */ { -30, 976702, 22 }, /* 1100010001100011000001 -> 0011101110011100111110 */ { -27, 976703, 22 }, /* 1100010001100011000000 -> 0011101110011100111111 */ { 23, 488348, 21 }, /* 110001000110001100011 -> 001110111001110011100 */ { 25, 1953384, 23 }, /* 11000100011000110010111 -> 00111011100111001101000 */ { 26, 1953390, 23 }, /* 11000100011000110010001 -> 00111011100111001101110 */ { -28, 976693, 22 }, /* 1100010001100011001010 -> 0011101110011100110101 */ { 24, 3906771, 24 }, /* 110001000110001100101100 -> 001110111001110011010011 */ { -23, 976694, 22 }, /* 1100010001100011001001 -> 0011101110011100110110 */ { -24, 1953391, 23 }, /* 11000100011000110010000 -> 00111011100111001101111 */ { 0, 1, 1 }, /* 0 -> 1 */ { 4, 29, 6 }, /* 100010 -> 011101 */ { 2, 5, 4 }, /* 1010 -> 0101 */ { -1, 1, 3 }, /* 110 -> 001 */ { -3, 12, 5 }, /* 10011 -> 01100 */ { 7, 252, 9 }, /* 100000011 -> 011111100 */ { -4, 28, 6 }, /* 100011 -> 011100 */ { -2, 4, 4 }, /* 1011 -> 0100 */ { -6, 125, 8 }, /* 10000010 -> 01111101 */ { -5, 60, 7 }, /* 1000011 -> 0111100 */ { 5, 61, 7 }, /* 1000010 -> 0111101 */ { -7, 253, 9 }, /* 100000010 -> 011111101 */ { 6, 124, 8 }, /* 10000011 -> 01111100 */ { 9, 1023, 11 }, /* 10000000000 -> 01111111111 */ { -8, 510, 10 }, /* 1000000001 -> 0111111110 */ { 8, 509, 10 }, /* 1000000010 -> 0111111101 */ { -9, 2033, 12 }, /* 100000001110 -> 011111110001 */ { 11, 8128, 14 }, /* 10000000111111 -> 01111111000000 */ { 10, 4065, 13 }, /* 1000000011110 -> 0111111100001 */ { -10, 4071, 13 }, /* 1000000011000 -> 0111111100111 */ { -11, 8176, 14 }, /* 10000000001111 -> 01111111110000 */ { 24, 4069, 13 }, /* 1000000011010 -> 0111111100101 */ { 12, 8177, 14 }, /* 10000000001110 -> 01111111110001 */ { 15, 16360, 15 }, /* 100000000010111 -> 011111111101000 */ { 14, 16280, 15 }, /* 100000001100111 -> 011111110011000 */ { -12, 16274, 15 }, /* 100000001101101 -> 011111110010010 */ { 21, 32547, 16 }, /* 1000000011011100 -> 0111111100100011 */ { 31, 32518, 16 }, /* 1000000011111001 -> 0111111100000110 */ { -24, 4089, 13 }, /* 1000000000110 -> 0111111111001 */ { 16, 16365, 15 }, /* 100000000010010 -> 011111111101101 */ { 19, 32545, 16 }, /* 1000000011011110 -> 0111111100100001 */ { 25, 32565, 16 }, /* 1000000011001010 -> 0111111100110101 */ { 26, 65125, 17 }, /* 10000000110011010 -> 01111111001100101 */ { 22, 16367, 15 }, /* 100000000010000 -> 011111111101111 */ { 20, 16364, 15 }, /* 100000000010011 -> 011111111101100 */ { 18, 32519, 16 }, /* 1000000011111000 -> 0111111100000111 */ { -20, 65092, 17 }, /* 10000000110111011 -> 01111111001000100 */ { -18, 32724, 16 }, /* 1000000000101011 -> 0111111111010100 */ { -17, 32567, 16 }, /* 1000000011001000 -> 0111111100110111 */ { -16, 32564, 16 }, /* 1000000011001011 -> 0111111100110100 */ { -19, 32732, 16 }, /* 1000000000100011 -> 0111111111011100 */ { -14, 32544, 16 }, /* 1000000011011111 -> 0111111100100000 */ { 13, 16258, 15 }, /* 100000001111101 -> 011111110000010 */ { 23, 16275, 15 }, /* 100000001101100 -> 011111110010011 */ { -15, 32563, 16 }, /* 1000000011001100 -> 0111111100110011 */ { -22, 65450, 17 }, /* 10000000001010101 -> 01111111110101010 */ { -21, 65124, 17 }, /* 10000000110011011 -> 01111111001100100 */ { -23, 130187, 18 }, /* 100000001101110100 -> 011111110010001011 */ { 17, 16363, 15 }, /* 100000000010100 -> 011111111101011 */ { -31, 65132, 17 }, /* 10000000110010011 -> 01111111001101100 */ { 30, 260373, 19 }, /* 1000000011011101010 -> 0111111100100010101 */ { 28, 65467, 17 }, /* 10000000001000100 -> 01111111110111011 */ { -30, 261866, 19 }, /* 1000000000100010101 -> 0111111111011101010 */ { -29, 261865, 19 }, /* 1000000000100010110 -> 0111111111011101001 */ { -27, 523734, 20 }, /* 10000000001000101001 -> 01111111110111010110 */ { -13, 16361, 15 }, /* 100000000010110 -> 011111111101001 */ { 27, 65133, 17 }, /* 10000000110010010 -> 01111111001101101 */ { 29, 261864, 19 }, /* 1000000000100010111 -> 0111111111011101000 */ { -26, 260372, 19 }, /* 1000000011011101011 -> 0111111100100010100 */ { -25, 65451, 17 }, /* 10000000001010100 -> 01111111110101011 */ { -28, 523735, 20 } /* 10000000001000101000 -> 01111111110111010111 */ }; const float ivas_mp_basis_matrix_R1[MP_MAX_NB_COEFFS][MP_COLS_R1] = { Loading
lib_com/ivas_rom_com.h +5 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,11 @@ extern const int16_t ivas_pca_offset_index2[2692]; extern const int16_t ivas_pca_offset_n2[IVAS_PCA_N1]; #ifdef IVAS_SBA_MP_768KBPS /*----------------------------------------------------------------------* * MP ROM tables *-----------------------------------------------------------------------*/ extern const int16_t ivas_mp_dirac_band_group_16kHz[MP_MAX_NBANDS + 1]; extern const int16_t ivas_mp_dirac_band_group_32kHz[MP_MAX_NBANDS + 1]; extern const int16_t ivas_mp_dirac_band_group_48kHz[MP_MAX_NBANDS + 1]; Loading
lib_dec/ivas_mp_dec.c +4 −3 Original line number Diff line number Diff line Loading @@ -559,7 +559,7 @@ static void ivas_mp_parameters_dec( for ( b = 0; b < hConfig->nb_subbands; b++ ) { int16_t q_idx = hQMetadata->q_reference_gain[ch][subframe_idx][b]; assert( ( q_idx >= 0 ) && ( q_idx <= MP_Q_GAIN_TABLE_SIZE - 1 ) ); //assert( ( q_idx >= 0 ) && ( q_idx <= MP_Q_GAIN_TABLE_SIZE - 1 ) ); hMp->synth_reference_gain[ch][subframe_idx + nb_subframe_delay][b] = (float) hConfig->q_gain_table[q_idx]; } Loading Loading @@ -1093,7 +1093,7 @@ static void ivas_mp_freq_components_recovery( { for ( b = 0; b < hMp->hDecorr->decorr_start_band; b++ ) { for ( i = hConfig->band_grouping[b]; i < hConfig->band_grouping[b]; i++ ) for ( i = hConfig->band_grouping[b]; i < hConfig->band_grouping[b + 1]; i++ ) { cldfb_real_buffer[ch][ts][i] = cldfb_real_buffer[hMp->hDecorr->decorr_table[0]][ts][i]; cldfb_imag_buffer[ch][ts][i] = cldfb_imag_buffer[hMp->hDecorr->decorr_table[0]][ts][i]; Loading @@ -1105,6 +1105,7 @@ static void ivas_mp_freq_components_recovery( if ( is_transient ) { /* recovery transient part later! */ assert( is_transient == 0 || is_transient == 1 ); } return; Loading Loading @@ -1147,7 +1148,7 @@ static void ivas_mp_synthesis_high_order_ambisonics_components_dec_ts( } ivas_mp_freq_components_recovery( hMp, cldfb_real_buffer, cldfb_imag_buffer, tmp_cldfb_real_buffer, tmp_cldfb_imag_buffer, mat_ambi_coefs, 0 /* consider recovery transient part later! */ ); mat_ambi_coefs, 0 ); pop_wmops(); Loading