Commit 42f49a95 authored by Nishant S Kulgod's avatar Nishant S Kulgod
Browse files

commit 2

parent 1be6ea77
Loading
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1001,6 +1001,7 @@ ivas_error init_encoder(
#ifdef MSAN_FIX
        // set_f( st->hTcxEnc->spectrum_long, 0, N_MAX );
        set32_fx( st->hTcxEnc->spectrum_long_fx, 0, N_MAX );
        st->hTcxEnc->spectrum_long_e = 0;
#endif // MSAN_FIX

        /* Share the memories for 2xTCX10/4xTCX5 and for TCX20 */
@@ -2134,6 +2135,7 @@ ivas_error init_encoder_ivas_fx(
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for hTcxEnc\n" ) );
        }
        set32_fx( st->hTcxEnc->spectrum_long_fx, 0, N_MAX );
		st->hTcxEnc->spectrum_long_e = 0;

        /* Share the memories for 2xTCX10/4xTCX5 and for TCX20 */
        st->hTcxEnc->spectrum_fx[0] = st->hTcxEnc->spectrum_long_fx;
+4 −2
Original line number Diff line number Diff line
@@ -2726,8 +2726,10 @@ ivas_error pre_proc_front_ivas_fx(
            Word16 wsp_fx_temp[L_WSP];
            Word16 *wsp_fx_l;
            // floatToFixed_arrL( st->hTcxEnc->spectrum_long, st->hTcxEnc->spectrum_long_fx, Q15, N_MAX );
            scale_sig32( st->hTcxEnc->spectrum_fx[0], N_TCX10_MAX, st->hTcxEnc->spectrum_e[0] - Q16 );
            scale_sig32( st->hTcxEnc->spectrum_fx[1], N_MAX - N_TCX10_MAX, st->hTcxEnc->spectrum_e[1] - Q16 );
            scale_sig32( st->hTcxEnc->spectrum_long_fx, N_MAX, sub( st->hTcxEnc->spectrum_long_e, Q16 ) );
            st->hTcxEnc->spectrum_long_e = 16;
            st->hTcxEnc->spectrum_e[0] = 16;
            st->hTcxEnc->spectrum_e[1] = 16;
#endif
            IF( flag_16k_smc )
            {
+30 −13
Original line number Diff line number Diff line
@@ -611,11 +611,18 @@ ivas_error ivas_mct_enc_fx(
    {
        FOR( ch = 0; ch < CPE_CHANNELS; ch++ )
        {
            length = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->L_frameTCX / ( ( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV );
            scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_fx, N_MAX, q_spec - ( 31 - st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_e ) );
            IF( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->core == TCX_20 )
            {
                length = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->L_frameTCX;
            }
            ELSE
            {
                length = idiv1616( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->L_frameTCX, NB_DIV );
            }
            scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_fx, N_MAX, sub( q_spec, sub( 31, st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_e ) ) );

            st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] = 31 - q_spec;
            st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[1] = 31 - q_spec;
            st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] = sub( 31, q_spec );
            st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[1] = sub( 31, q_spec );
        }
    }

@@ -626,28 +633,38 @@ ivas_error ivas_mct_enc_fx(
    {
        FOR( ch = 0; ch < CPE_CHANNELS; ch++ )
        {
            length = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->L_frameTCX / ( ( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV );
            Word16 e_spec = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] - L_norm_arr( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_fx, N_MAX );
            IF( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->core == TCX_20 )
            {
                length = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->L_frameTCX;
            }
            ELSE
            {
                length = idiv1616( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->L_frameTCX, NB_DIV );
            }
            Word16 e_spec = sub( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0], L_norm_arr( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_fx, N_MAX ) );
            IF( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->last_core == ACELP_CORE )
            {
                length += length / 4;
                length = add( length, shr( length, 2 ) );
            }
            IF( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->core == TCX_20 )
            {
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[0], length, st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] - e_spec );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_fx + length, N_MAX - length, ( 31 - q_spec ) - e_spec );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[0], length, sub( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0], e_spec ) );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_fx + length, sub( N_MAX, length ), sub( sub( 31, q_spec ), e_spec ) );
                st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_e = e_spec;
            }
            ELSE
            {
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[0], length, st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] - e_spec );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[0] + length, N_TCX10_MAX - length, ( 31 - q_spec ) - e_spec );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[1], length, st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] - e_spec );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[1] + length, N_MAX - N_TCX10_MAX - length, ( 31 - q_spec ) - e_spec );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[0], length, sub( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0], e_spec ) );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[0] + length, sub( N_TCX10_MAX, length ), sub( sub( 31, q_spec ), e_spec ) );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[1], length, sub( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0], e_spec ) );
                scale_sig32( st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_fx[1] + length, sub( N_MAX - N_TCX10_MAX, length ), sub( sub( 31, q_spec ), e_spec ) );
                st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_e = e_spec;
                move16();
            }
            st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[0] = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_e;
            move16();
            st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_e[1] = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]->hTcxEnc->spectrum_long_e;
            move16();
        }
    }

+2 −1
Original line number Diff line number Diff line
@@ -682,6 +682,7 @@ ivas_error stereo_memory_enc_fx(
            // set_f( st->hTcxEnc->spectrum_long, 0, N_MAX );
#ifdef IVAS_FLOAT_FIXED
            set32_fx( st->hTcxEnc->spectrum_long_fx, 0, N_MAX );
            st->hTcxEnc->spectrum_long_e = 0;
#endif
#ifndef IVAS_FLOAT_FIXED
            st->hTcxEnc->tfm_mem = 0.75f;