Commit 6f0a0616 authored by multrus's avatar multrus
Browse files

Merge branch '812-double-precision-arithmetic-in-mct' into 'main'

Resolve "Double precision arithmetic in MCT"

See merge request !1105
parents 21b21cfa d0389b48
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@
#define FIX_796_MCT_MODE_DIFF_JBM                       /* FhG: Issue 796: fix differences between JBM and non-JBM fOR MC */
#define LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK               /* fix 755 */
#define FIX_803_SCE_MD_HANDLE                           /* VA: issue 803: Resolve "MD handle needed only for one SCE" */
#define FIX_812_DOUBLE_PREC_MCT                         /* FhG: Issue 812: Avoid double precision in MCT */

/* #################### End BE switches ################################## */

lib_dec/ivas_mct_dec.c

100644 → 100755
+8 −0
Original line number Diff line number Diff line
@@ -432,7 +432,11 @@ ivas_error create_mct_dec(
    hMCT->currBlockDataCnt = 0;

    /*Initialize bits required to signal channel-pair index*/
#ifdef FIX_812_DOUBLE_PREC_MCT
    hMCT->bitsChannelPairIndex = max( 1, (int16_t) ( floorf( ( logf( (float) hMCT->nchan_out_woLFE * ( hMCT->nchan_out_woLFE - 1 ) / 2 - 1 ) * INV_LOG_2 ) ) + 1 ) );
#else
    hMCT->bitsChannelPairIndex = max( 1, (int16_t) ( floor( ( log( hMCT->nchan_out_woLFE * ( hMCT->nchan_out_woLFE - 1 ) / 2 - 1 ) / log( 2. ) ) ) + 1 ) );
#endif

    set_s( hMCT->chBitRatios, 0, MCT_MAX_CHANNELS );
    set_s( hMCT->lowE_ch, 0, MCT_MAX_CHANNELS );
@@ -593,7 +597,11 @@ ivas_error mct_dec_reconfigure(
        hMCT->currBlockDataCnt = 0;

        /*Initialize bits required to signal channel-pair index*/
#ifdef FIX_812_DOUBLE_PREC_MCT
        hMCT->bitsChannelPairIndex = max( 1, (int16_t) ( floorf( ( logf( (float) hMCT->nchan_out_woLFE * ( hMCT->nchan_out_woLFE - 1 ) / 2 - 1 ) * INV_LOG_2 ) ) + 1 ) );
#else
        hMCT->bitsChannelPairIndex = max( 1, (int16_t) ( floor( ( log( hMCT->nchan_out_woLFE * ( hMCT->nchan_out_woLFE - 1 ) / 2 - 1 ) / log( 2. ) ) ) + 1 ) );
#endif

        set_s( hMCT->chBitRatios, 0, MCT_MAX_CHANNELS );
        set_s( hMCT->lowE_ch, 0, MCT_MAX_CHANNELS );

lib_enc/ivas_mct_enc.c

100644 → 100755
+4 −0
Original line number Diff line number Diff line
@@ -71,7 +71,11 @@ static void set_mct_enc_params(
        hMCT->currBlockDataCnt = 0;

        /*Initialize bits required to signal channel-pair index*/
#ifdef FIX_812_DOUBLE_PREC_MCT
        hMCT->bitsChannelPairIndex = max( 1, (int16_t) ( floorf( ( logf( (float) hMCT->nchan_out_woLFE * ( hMCT->nchan_out_woLFE - 1 ) / 2 - 1 ) * INV_LOG_2 ) ) + 1 ) );
#else
        hMCT->bitsChannelPairIndex = max( 1, (int16_t) ( floor( ( log( hMCT->nchan_out_woLFE * ( hMCT->nchan_out_woLFE - 1 ) / 2 - 1 ) / log( 2. ) ) ) + 1 ) );
#endif

        set_s( hMCT->lowE_ch, 0, MCT_MAX_CHANNELS );