Commit bd8ebe21 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh Committed by Manuel Jander
Browse files

Q-factor of synthesis memory buffers of LPDmem struct updates

parent b731e4cf
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -3044,11 +3044,11 @@ void lsf_syn_mem_backup_ivas_fx(
    /* back-up memories */
    FOR( i = 0; i < M; i++ )
    {
        mem_syn_bck[i] = hLPDmem->mem_syn[i]; // Q: ( 15 - st_fx->hLPDmem->e_mem_syn )
        mem_syn_bck[i] = hLPDmem->mem_syn[i]; // Q( st_fx->hLPDmem->q_mem_syn )
        move16();
    }

    *mem_w0_bck = hLPDmem->mem_w0; // ( 15 - st_fx->hLPDmem->e_mem_syn )
    *mem_w0_bck = hLPDmem->mem_w0; // Q( st_fx->hLPDmem->q_mem_syn )
    move16();


@@ -3263,12 +3263,12 @@ void lsf_syn_mem_restore_ivas_fx(
    }

    /* restoring memories */
    hLPDmem->mem_w0 = mem_w0_bck; // Q(15 - st_fx->hLPDmem->e_mem_syn )
    hLPDmem->mem_w0 = mem_w0_bck; // Q( st_fx->hLPDmem->q_mem_syn )
    move16();

    FOR( i = 0; i < M; i++ )
    {
        hLPDmem->mem_syn[i] = mem_syn_bck[i]; // Q(15 - st_fx->hLPDmem->e_mem_syn )
        hLPDmem->mem_syn[i] = mem_syn_bck[i]; // Q( st_fx->hLPDmem->q_mem_syn )
        move16();
    }

+2 −2
Original line number Diff line number Diff line
@@ -3743,7 +3743,7 @@ void QuantizeTCXSpectrum_fx(
            }

            /* Quantize original spectrum */
            sqGain_fx = SQ_gain_ivas_fx( spectrum_fx, *spectrum_e, shl( mult( hTcxEnc->tcx_target_bits_fac, sqTargetBits ), 1 ), L_spec, &sqGain_e );
            sqGain_fx = SQ_gain_ivas_fx( spectrum_fx, *spectrum_e, ( mult( hTcxEnc->tcx_target_bits_fac, shl( sqTargetBits, 1 ) ) ), L_spec, &sqGain_e );

            tcx_scalar_quantization_ivas_fx( spectrum_fx, *spectrum_e, sqQ, L_spec, sqGain_fx, sqGain_e, st->hTcxCfg->sq_rounding, hTcxEnc->memQuantZeros, st->tcxonly );

@@ -4730,7 +4730,7 @@ void InternalTCXDecoder_fx(
    }
    ELSE
    {
        mdct_shaping( spectrum_fx, L_frame, gainlpc_fx, gainlpc_e );
        mdct_noiseShaping_ivas_fx( spectrum_fx, spectrum_e, L_frame, gainlpc_fx, gainlpc_e );
    }
    /*-----------------------------------------------------------*
     * Apply gain                                                *
+6 −0
Original line number Diff line number Diff line
@@ -1561,6 +1561,10 @@ static void init_acelp_ivas_fx( Encoder_State *st, Word16 L_frame_old, Word16 sh
        {
            set16_fx( hLPDmem->syn, 0, 1 + M );
            set16_fx( hLPDmem->mem_syn_r, 0, L_SYN_MEM );
            hLPDmem->q_lpd_syn = Q15;
            hLPDmem->q_mem_syn = Q15;
            move16();
            move16();
        }

        IF( st->hTcxEnc != NULL )
@@ -1591,6 +1595,8 @@ static void init_acelp_ivas_fx( Encoder_State *st, Word16 L_frame_old, Word16 sh
                Copy( hLPDmem->mem_syn1_fx, hLPDmem->mem_syn2, M );
                set16_fx( hLPDmem->syn, 0, M );
                hLPDmem->q_lpd_syn = Q15;
                hLPDmem->q_mem_syn = Q15;
                move16();
                move16();
            }
            IF( st->hTcxEnc != NULL )
+4 −10
Original line number Diff line number Diff line
@@ -998,16 +998,18 @@ void LPDmem_enc_init_ivas_fx(
    set16_fx( hLPDmem->mem_syn2, 0, M );
    set16_fx( hLPDmem->mem_syn_r, 0, L_SYN_MEM );
    set16_fx( hLPDmem->mem_syn3, 0, M );
    hLPDmem->q_lpd_old_exc = Q15;
    move16();
    hLPDmem->q_lpd_syn = Q15;
    move16();
    hLPDmem->q_mem_syn = Q15;
    move16();
    hLPDmem->mem_w0 = 0;
    move16();
    hLPDmem->tilt_code = 0;
    move16();
    hLPDmem->gc_threshold = 0;
    move32();
    hLPDmem->q_mem_syn = Q15;
    move16();
    hLPDmem->dm_fx.prev_state = 0;
    move16(); /* This corresponds to st_fx->dispMem in FLP */
    hLPDmem->dm_fx.prev_gain_code = 0;
@@ -1019,14 +1021,6 @@ void LPDmem_enc_init_ivas_fx(
        move16();
    }

    hLPDmem->q_lpd_syn = Q15;
    move16();
    hLPDmem->q_lpd_old_exc = Q15;
    move16();
    hLPDmem->q_mem_syn = Q15;
    move16();


    return;
}

+2 −14
Original line number Diff line number Diff line
@@ -562,9 +562,9 @@ void stereo_tcx_core_enc(
    }
    Scale_sig( st->synth, st->L_frame, s );  /* st->Q_syn + s */
    Scale_sig( st->hLPDmem->syn, M + 1, s ); /* st->Q_syn + s */
    st->hLPDmem->q_lpd_syn = add( st->hLPDmem->q_lpd_syn, s );
    Q_new = add( Q_new, s );
    move16();
    move16();

    coder_tcx_post_ivas_fx( st, st->hLPDmem, st->hTcxCfg, st->synth, A_q_fx, Aw_fx, st->wspeech_enc, Q_new );

@@ -688,19 +688,7 @@ void stereo_tcx_core_enc(
    {
        set16_fx( pitch_buf_fx, L_SUBFR * ONE_IN_Q6, NB_SUBFR16k ); /* Q6 */
    }
    /* Memory scaling to keep everything in common q */
    Word16 curr_q_syn = sub( shl( Q_new, 1 ), 1 );
    Scale_sig( st->hLPDmem->mem_syn_r, L_SYN_MEM, sub( s_min( curr_q_syn, st->hLPDmem->q_mem_syn ), curr_q_syn ) ); /* s_min( curr_q_syn, st->hLPDmem->q_mem_syn ) */
    Scale_sig( st->hLPDmem->mem_syn, M, sub( s_min( curr_q_syn, st->hLPDmem->q_mem_syn ), curr_q_syn ) );           /* s_min( curr_q_syn, st->hLPDmem->q_mem_syn ) */
    Scale_sig( st->hLPDmem->mem_syn2, M, sub( s_min( curr_q_syn, st->hLPDmem->q_mem_syn ), curr_q_syn ) );          /* s_min( curr_q_syn, st->hLPDmem->q_mem_syn ) */
    st->hLPDmem->mem_w0 = shl_sat( st->hLPDmem->mem_w0, sub( s_min( Q_new, st->hLPDmem->q_mem_syn ), Q_new ) );     /* s_min( Q_new, st->hLPDmem->q_mem_syn ) */
    move16();
    Scale_sig( st->hLPDmem->mem_syn1_fx, M, sub( s_min( curr_q_syn, st->hLPDmem->q_mem_syn ), st->hLPDmem->q_mem_syn ) ); /* s_min( curr_q_syn, st->hLPDmem->q_mem_syn ) */
    Scale_sig( st->hLPDmem->mem_syn3, M, sub( s_min( curr_q_syn, st->hLPDmem->q_mem_syn ), st->hLPDmem->q_mem_syn ) );    /* s_min( curr_q_syn, st->hLPDmem->q_mem_syn ) */
    st->hLPDmem->q_mem_syn = s_min( curr_q_syn, st->hLPDmem->q_mem_syn );
    move16();
    st->hLPDmem->q_lpd_syn = Q_new;
    move16();

    IF( st->hTdCngEnc != NULL )
    {
        FOR( Word16 ii = 0; ii < HO_HIST_SIZE; ii++ )
Loading