Commit aa67056b authored by multrus's avatar multrus
Browse files

[cleanup] accept OPT_BIN_REND_V2_NBE

parent 7e422aff
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@
#endif

/* Note: each compile switch (FIX_1101_...) is independent from the other ones */
#define OPT_BIN_REND_V2_NBE

#define FIX_1348_BIT_PRECISION_IMPROVEMENT
#define FIX_1348_BIT_PRECISION_IMPROVEMENT_QWIN
+0 −77
Original line number Diff line number Diff line
@@ -88,31 +88,11 @@ static void ivas_binRenderer_filterModule_fx(
    Q_filterStates = hBinRenderer->hBinRenConvModule->Q_filterStates[pos_idx];
    move16();

#ifdef OPT_BIN_REND_V2_NBE
    shift_q = add( sub( Q_filterStates, Q_curr ), 1 );
    hBinRenderer->hBinRenConvModule->Q_filterStates[pos_idx] = Q_curr;
#else  /* OPT_BIN_REND_V2_NBE */
    Word64 Cldfb_RealBuffer_64fx[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES];
    Word64 Cldfb_ImagBuffer_64fx[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES];
#endif /* OPT_BIN_REND_V2_NBE */

    FOR( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ )
    {
#ifndef OPT_BIN_REND_V2_NBE
        set64_fx( &Cldfb_RealBuffer_64fx[0][0], 0, BINAURAL_CHANNELS * MAX_PARAM_SPATIAL_SUBFRAMES );
        set64_fx( &Cldfb_ImagBuffer_64fx[0][0], 0, BINAURAL_CHANNELS * MAX_PARAM_SPATIAL_SUBFRAMES );

        FOR( chIdx = 0; chIdx < hBinRenderer->nInChannels; chIdx++ )
        {
            filterStatesLeftRealPtr_fx = (Word32 *) &( hBinRenderer->hBinRenConvModule->filterStatesLeftReal_fx[pos_idx][bandIdx][chIdx][0] );
            filterStatesLeftImagPtr_fx = (Word32 *) &( hBinRenderer->hBinRenConvModule->filterStatesLeftImag_fx[pos_idx][bandIdx][chIdx][0] );

            filterTapsLeftRealPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsLeftReal_fx[bandIdx][chIdx];   // Q29
            filterTapsLeftImagPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsLeftImag_fx[bandIdx][chIdx];   // Q29
            filterTapsRightRealPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsRightReal_fx[bandIdx][chIdx]; // Q29
            filterTapsRightImagPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsRightImag_fx[bandIdx][chIdx]; // Q29

#endif /* OPT_BIN_REND_V2_NBE */
            FOR( k = 0; k < numTimeSlots; k++ )
            {
                Word64 outRealLeft_fx = 0, outRealRight_fx = 0, outImagLeft_fx = 0, outImagRight_fx = 0;
@@ -120,7 +100,6 @@ static void ivas_binRenderer_filterModule_fx(
                move64();
                move64();
                move64();
#ifdef OPT_BIN_REND_V2_NBE
                Word64 outRealLeft = 0, outRealRight = 0, outImagLeft = 0, outImagRight = 0;
                move64();
                move64();
@@ -136,7 +115,6 @@ static void ivas_binRenderer_filterModule_fx(
                    filterTapsLeftImagPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsLeftImag_fx[bandIdx][chIdx];   // Q29
                    filterTapsRightRealPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsRightReal_fx[bandIdx][chIdx]; // Q29
                    filterTapsRightImagPtr_fx = hBinRenderer->hBinRenConvModule->filterTapsRightImag_fx[bandIdx][chIdx]; // Q29
#endif                                                                                                                   /* OPT_BIN_REND_V2_NBE */

                    FOR( tapIdx = hBinRenderer->hBinRenConvModule->numTapsArray[bandIdx] - 1; tapIdx > 0; tapIdx-- )
                    {
@@ -160,25 +138,11 @@ static void ivas_binRenderer_filterModule_fx(
                        outImagRight_fx = W_mac_32_32( outImagRight_fx, filterStatesLeftImagPtr_fx[tapIdx], filterTapsRightRealPtr_fx[tapIdx] ); // Q30 + Q_filterStates
                    }

#ifndef OPT_BIN_REND_V2_NBE
                    shift_q = add( sub( Q_filterStates, Q_curr ), 1 );

                    IF( shift_q != 0 )
                    {
                        outRealLeft_fx = W_shr( outRealLeft_fx, shift_q );   // Q_curr + Q29
                        outImagLeft_fx = W_shr( outImagLeft_fx, shift_q );   // Q_curr + Q29
                        outRealRight_fx = W_shr( outRealRight_fx, shift_q ); // Q_curr + Q29
                        outImagRight_fx = W_shr( outImagRight_fx, shift_q ); // Q_curr + Q29
                        hBinRenderer->hBinRenConvModule->Q_filterStates[pos_idx] = Q_curr;
                        move16();
                    }
#endif /* OPT_BIN_REND_V2_NBE */
                    filterStatesLeftRealPtr_fx[0] = CLDFB_real[chIdx][k][bandIdx];
                    move32();
                    filterStatesLeftImagPtr_fx[0] = CLDFB_imag[chIdx][k][bandIdx];
                    move32();

#ifdef OPT_BIN_REND_V2_NBE
                    /* Left Real and Imag */
                    Word32 neg_temp2 = L_negate( filterStatesLeftImagPtr_fx[0] ); // Q_curr

@@ -198,47 +162,6 @@ static void ivas_binRenderer_filterModule_fx(
                move32();
                move32();
            }
#else  /* OPT_BIN_REND_V2_NBE */
            /* Left Real and Imag */

            Word32 temp1 = L_shr( filterStatesLeftRealPtr_fx[0], 1 ); // Q_curr -1
            Word32 temp2 = L_shr( filterStatesLeftImagPtr_fx[0], 1 ); // Q_curr -1
            Word32 neg_temp2 = L_negate( temp2 );                     // Q_curr -1


            outRealLeft_fx = W_mac_32_32( outRealLeft_fx, temp1, filterTapsLeftRealPtr_fx[0] );
            outRealLeft_fx = W_mac_32_32( outRealLeft_fx, neg_temp2, filterTapsLeftImagPtr_fx[0] );
            Cldfb_RealBuffer_64fx[0][k] = W_add( Cldfb_RealBuffer_64fx[0][k], outRealLeft_fx ); // Q29 + Q_curr
            move64();

            outImagLeft_fx = W_mac_32_32( outImagLeft_fx, temp1, filterTapsLeftImagPtr_fx[0] );
            outImagLeft_fx = W_mac_32_32( outImagLeft_fx, temp2, filterTapsLeftRealPtr_fx[0] );
            Cldfb_ImagBuffer_64fx[0][k] = W_add( Cldfb_ImagBuffer_64fx[0][k], outImagLeft_fx ); // Q29 + Q_curr
            move64();

            /* Right Real and Imag */
            outRealRight_fx = W_mac_32_32( outRealRight_fx, temp1, filterTapsRightRealPtr_fx[0] );
            outRealRight_fx = W_mac_32_32( outRealRight_fx, neg_temp2, filterTapsRightImagPtr_fx[0] );
            Cldfb_RealBuffer_64fx[1][k] = W_add( Cldfb_RealBuffer_64fx[1][k], outRealRight_fx ); // Q29 + Q_curr
            move64();

            outImagRight_fx = W_mac_32_32( outImagRight_fx, temp1, filterTapsRightImagPtr_fx[0] );
            outImagRight_fx = W_mac_32_32( outImagRight_fx, temp2, filterTapsRightRealPtr_fx[0] );
            Cldfb_ImagBuffer_64fx[1][k] = W_add( Cldfb_ImagBuffer_64fx[1][k], outImagRight_fx ); // Q29 + Q_curr
            move64();
        }
    }
    FOR( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ )
    {
        FOR( k = 0; k < MAX_PARAM_SPATIAL_SUBFRAMES; k++ )
        {
            out_Conv_CLDFB_real[chIdx][k][bandIdx] = W_shl_sat_l( Cldfb_RealBuffer_64fx[chIdx][k], shift_q6 ); // Q6
            move32();
            out_Conv_CLDFB_imag[chIdx][k][bandIdx] = W_shl_sat_l( Cldfb_ImagBuffer_64fx[chIdx][k], shift_q6 ); // Q6
            move32();
        }
    }
#endif /* OPT_BIN_REND_V2_NBE */
        }