Commit 62bcc1c5 authored by vaclav's avatar vaclav
Browse files

address reviewer's comments

parent 68099f48
Loading
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -259,22 +259,29 @@ uint32_t ivas_syn_output(
    int16_t *synth_out                                          /* o  : integer 16 bits synthesis signal        */
);

void ivas_syn_output_f(
    float *synth[],                                             /* i/o: float synthesis signal                  */
    const int16_t output_frame,                                 /* i  : output frame length (one channel)       */
    const int16_t n_channels,                                   /* i  : number of output channels               */
    float *synth_out                                            /* o  : integer 16 bits synthesis signal        */
);

#ifdef JBM_MEMORY_OPT
void ivas_buffer_serial_to_parallel(
void ivas_buffer_interleaved_to_deinterleaved(
    float *audio,                                               /* i/o: audio buffer                            */
    const int16_t n_channels,                                   /* i  : number of channels                      */
    const int16_t frame_length,                                 /* i  : frame length (one channel )             */
    const int16_t n_samp_full                                   /* i  : full frame length (one channel)         */
);

void ivas_buffer_deinterleaved_to_interleaved(
    float *audio[],                                             /* i  : deinterleaved audio buffer              */
    const int16_t n_channels,                                   /* i  : number of channels                      */
    const int16_t frame_length,                                 /* i  : frame length (one channel )             */
    float *audio_out                                            /* o  : interleaved audio buffer                */
);
#else
void ivas_syn_output_f(
    float *synth[],                                             /* i/o: float synthesis signal                  */
    const int16_t output_frame,                                 /* i  : output frame length (one channel)       */
    const int16_t n_channels,                                   /* i  : number of output channels               */
    float *synth_out                                            /* o  : integer 16 bits synthesis signal        */
);
#endif

void ivas_initialize_handles_enc(
    Encoder_Struct *st_ivas                                     /* i/o: IVAS encoder structure                  */
);
+32 −4
Original line number Diff line number Diff line
@@ -151,12 +151,12 @@ uint32_t ivas_syn_output(
#ifdef JBM_MEMORY_OPT

/*-------------------------------------------------------------------*
 * ivas_buffer_serial_to_parallel()
 * ivas_buffer_interleaved_to_deinterleaved()
 *
 * reshuffle an interleaved serial buffer to one-by-one audio channels representation
 * Convert an interleaved buffer of audio channels to deinterleaved one 
 *-------------------------------------------------------------------*/

void ivas_buffer_serial_to_parallel(
void ivas_buffer_interleaved_to_deinterleaved(
    float *audio,               /* i/o: audio buffer                    */
    const int16_t n_channels,   /* i  : number of channels              */
    const int16_t frame_length, /* i  : frame length (one channel )     */
@@ -184,7 +184,34 @@ void ivas_buffer_serial_to_parallel(
    return;
}

#endif

/*-------------------------------------------------------------------*
 * ivas_buffer_deinterleaved_to_interleaved()
 *
 * Convert a deinterleaved buffer of audio channels to interleaved one 
 *-------------------------------------------------------------------*/

void ivas_buffer_deinterleaved_to_interleaved(
    float *audio[],             /* i/o: deinterleaved audio buffer      */
    const int16_t n_channels,   /* i  : number of channels              */
    const int16_t frame_length, /* i  : frame length (one channel )     */
    float *audio_out            /* o  : interleaved audio buffer        */
)
{
    int16_t ch, m;

    for ( ch = 0; ch < n_channels; ch++ )
    {
        for ( m = 0; m < frame_length; m++ )
        {
            audio_out[m * n_channels + ch] = audio[ch][m];
        }
    }

    return;
}

#else

/*-------------------------------------------------------------------*
 * ivas_syn_output_f()
@@ -218,6 +245,7 @@ void ivas_syn_output_f(
    return;
}

#endif

/*-------------------------------------------------------------------*
 * mvr2r_inc()
+11 −4
Original line number Diff line number Diff line
@@ -784,7 +784,6 @@ void ivas_jbm_dec_feed_tc_to_renderer(
        int16_t n_samples_still_available;
        int16_t n_ch_full_copy, n_ch_res_copy;

        hTcBuffer = st_ivas->hTcBuffer;
        n_samples_still_available = hTcBuffer->n_samples_buffered - hTcBuffer->n_samples_rendered;
        hTcBuffer->n_samples_buffered = n_samples_still_available + nSamplesForRendering + hTcBuffer->n_samples_discard;
        hTcBuffer->n_samples_available = hTcBuffer->n_samples_granularity * ( hTcBuffer->n_samples_buffered / hTcBuffer->n_samples_granularity );
@@ -796,7 +795,7 @@ void ivas_jbm_dec_feed_tc_to_renderer(
        {
            mvr2r( hTcBuffer->tc[ch], tmp_buf, nSamplesForRendering );
            set_zero( hTcBuffer->tc[ch], hTcBuffer->n_samples_discard );
            mvr2r( st_ivas->hTcBuffer->tc_buffer_old[ch], st_ivas->hTcBuffer->tc[ch] + st_ivas->hTcBuffer->n_samples_discard, n_samples_still_available );
            mvr2r( hTcBuffer->tc_buffer_old[ch], hTcBuffer->tc[ch] + hTcBuffer->n_samples_discard, n_samples_still_available );
            mvr2r( tmp_buf, hTcBuffer->tc[ch] + n_samples_still_available + hTcBuffer->n_samples_discard, nSamplesForRendering - *nSamplesResidual );
            mvr2r( tmp_buf + nSamplesForRendering - *nSamplesResidual, hTcBuffer->tc_buffer_old[ch], *nSamplesResidual );
        }
@@ -807,7 +806,7 @@ void ivas_jbm_dec_feed_tc_to_renderer(
            {
                p_data_f[ch - n_ch_full_copy] = hTcBuffer->tc[ch];
                mvr2r( hTcBuffer->tc[ch], tmp_buf, nSamplesForRendering );
                mvr2r( st_ivas->hTcBuffer->tc_buffer_old[ch], p_data_f[ch], n_samples_still_available );
                mvr2r( hTcBuffer->tc_buffer_old[ch], p_data_f[ch], n_samples_still_available );
                mvr2r( tmp_buf, p_data_f[ch] + n_samples_still_available, nSamplesForRendering - *nSamplesResidual );
                mvr2r( tmp_buf + nSamplesForRendering - *nSamplesResidual, hTcBuffer->tc_buffer_old[ch], *nSamplesResidual );
            }
@@ -864,7 +863,7 @@ void ivas_jbm_dec_feed_tc_to_renderer(
        }

#ifdef JBM_MEMORY_OPT
        for ( n = 0; n < max( st_ivas->hTcBuffer->nchan_transport_jbm, st_ivas->hTcBuffer->nchan_buffer_full ); n++ )
        for ( n = 0; n < max( hTcBuffer->nchan_transport_jbm, hTcBuffer->nchan_buffer_full ); n++ )
#else
        for ( n = 0; n < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); n++ )
#endif
@@ -1397,7 +1396,11 @@ ivas_error ivas_jbm_dec_render(

            break;
        case PCM_FLOAT32:
#ifdef JBM_MEMORY_OPT
            ivas_buffer_deinterleaved_to_interleaved( p_output, nchan_out_syn_output, *nSamplesRendered, (float *) data );
#else
            ivas_syn_output_f( p_output, *nSamplesRendered, nchan_out_syn_output, (float *) data );
#endif
            break;
        default:
            error = IVAS_ERR_UNKNOWN;
@@ -1679,7 +1682,11 @@ ivas_error ivas_jbm_dec_flush_renderer(
                ivas_syn_output( p_output, *nSamplesRendered, st_ivas->hDecoderConfig->nchan_out, (int16_t *) data );
            break;
        case PCM_FLOAT32:
#ifdef JBM_MEMORY_OPT
            ivas_buffer_deinterleaved_to_interleaved( p_output, st_ivas->hDecoderConfig->nchan_out, *nSamplesRendered, (float *) data );
#else
            ivas_syn_output_f( p_output, *nSamplesRendered, st_ivas->hDecoderConfig->nchan_out, (float *) data );
#endif
            break;
        default:
            error = IVAS_ERR_UNKNOWN;
+6 −6
Original line number Diff line number Diff line
@@ -1206,13 +1206,13 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
            }

#ifdef JBM_MEMORY_OPT
            /* reshuffle one-by-one decoded TC audio channels to an interleaved serial buffer */
            ivas_syn_output_f( st_ivas->p_output_f, hIvasDec->nSamplesFrame, nTransportChannels, st_ivas->hTcBuffer->tc_buffer );
            /* convert deinterleaved decoded TC audio channels buffer to an interleaved one */
            ivas_buffer_deinterleaved_to_interleaved( st_ivas->p_output_f, nTransportChannels, hIvasDec->nSamplesFrame, st_ivas->hTcBuffer->tc_buffer );

            /* time scale modification */
            if ( apa_exec( hIvasDec->hTimeScaler, st_ivas->hTcBuffer->tc_buffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, st_ivas->hTcBuffer->tc_buffer, &nTimeScalerOutSamples ) != 0 )
#else
            ivas_syn_output_f( hIvasDec->st_ivas->p_output_f, hIvasDec->nSamplesFrame, nTransportChannels, hIvasDec->apaExecBuffer );
            ivas_syn_output_f( st_ivas->p_output_f, hIvasDec->nSamplesFrame, nTransportChannels, hIvasDec->apaExecBuffer );

            if ( apa_exec( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer, &nTimeScalerOutSamples ) != 0 )
#endif
@@ -1225,8 +1225,8 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
            hIvasDec->timeScalingDone = 1;
#ifdef JBM_MEMORY_OPT

            /* reshuffle interleaved serial buffer to one-by-one time-scaled TC audio channels */
            ivas_buffer_serial_to_parallel( st_ivas->hTcBuffer->tc_buffer, nTransportChannels, nSamplesTcsScaled, NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) );
            /* convert interleaved time-scaled TC audio channels buffer to deinterleaved one */
            ivas_buffer_interleaved_to_deinterleaved( st_ivas->hTcBuffer->tc_buffer, nTransportChannels, nSamplesTcsScaled, NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) );
#endif
        }
        else
@@ -1244,7 +1244,7 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
        ivas_jbm_dec_feed_tc_to_renderer( st_ivas, nSamplesTcsScaled, &nResidualSamples, hIvasDec->apaExecBuffer );
#endif

        if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm )
        if ( st_ivas->hDecoderConfig->Opt_tsm )
        {
            /* feed residual samples to TSM for the next call */
            if ( apa_set_renderer_residual_samples( hIvasDec->hTimeScaler, (uint16_t) nResidualSamples ) != 0 )