Commit af323c51 authored by vaclav's avatar vaclav
Browse files

simplification of logic in ivas_interformat_brate(); this is a BE change

parent ac2065bc
Loading
Loading
Loading
Loading
+26 −55
Original line number Diff line number Diff line
@@ -42,23 +42,17 @@
#ifdef MASA_AND_OBJECTS
#ifdef OMASA_BRATE
/*---------------------------------------------------------------
 * Local constants
 * Local constants and tables
 * ---------------------------------------------------------------*/

const float gamma_tbl_set1[3] = { 0.8f, 1.2f, 1.4f };

#define GAMMA_ISM_LOW_IMP    0.8f
#define GAMMA_ISM_MEDIUM_IMP 1.2f
#define GAMMA_ISM_HIGH_IMP   1.4f
const float gamma_tbl_set2[3] = { 0.9f, 1.2f, 1.35f };

#define GAMMA_ISM_LOW_IMP2    0.9f
#define GAMMA_ISM_MEDIUM_IMP2 1.2f
#define GAMMA_ISM_HIGH_IMP2   1.35f

#define GAMMA_ISM_LOW_IMP3    0.85f
#define GAMMA_ISM_MEDIUM_IMP3 1.15f
#define GAMMA_ISM_HIGH_IMP3   1.3f
const float gamma_tbl_set3[3] = { 0.85f, 1.15f, 1.3f };
#endif


/*---------------------------------------------------------------
 * ivas_omasa_ism_mode_select()
 *
@@ -171,69 +165,46 @@ int32_t ivas_interformat_brate(
{
    int32_t element_brate_out;
    int16_t nBits, limit_low, limit_high;
    const float *gamma_tbl;

    nBits = (int16_t) ( element_brate / FRAMES_PER_SEC );


    if ( ism_imp == ISM_INACTIVE_IMP )
    {
        nBits = BITS_ISM_INACTIVE;
    }
    else
    {
        gamma_tbl = gamma_tbl_set1;

        if ( ism_mode == ISM_MASA_MODE_ONE_OBJ ||
             ( ism_mode == ISM_MASA_MODE_DISC && nchan_ism == 1 && element_brate == 9600 ) /* this condition corresponds to the ivas_total_brate = 24400 and 1 object */
        )
        {
            gamma_tbl = gamma_tbl_set2;
        }
#ifdef TUNING_96kbps_3obj
        if ( ( ism_mode == ISM_MASA_MODE_DISC && nchan_ism >= 3 && element_brate == 16000 ) /* this condition corresponds to the ivas_total_brate = 96000 and 3 objects and 128 kbps and 4 objects */
        else if ( ( ism_mode == ISM_MASA_MODE_DISC && nchan_ism >= 3 && element_brate == 16000 ) /* this condition corresponds to the ivas_total_brate = 96000 and 3 objects and 128 kbps and 4 objects */
#ifdef TUNING_48kbps_2obj
                  || ( ism_mode == ISM_MASA_MODE_DISC && nchan_ism == 2 && element_brate == 9600 ) /* this condition corresponds to the ivas_total_brate = 48000 and 2 objects */
#endif
        )
        {
            if ( ism_imp == ISM_LOW_IMP )
            {
                nBits = (int16_t) ( nBits * GAMMA_ISM_LOW_IMP3 );
            gamma_tbl = gamma_tbl_set3;
        }
            else if ( ism_imp == ISM_MEDIUM_IMP )
            {
                nBits = (int16_t) ( nBits * GAMMA_ISM_MEDIUM_IMP3 );
            }
            else /* ISM_HIGH_IMP */
            {
                nBits = (int16_t) ( nBits * GAMMA_ISM_HIGH_IMP3 );
            }
        }
        else
#endif
            if ( ism_mode == ISM_MASA_MODE_ONE_OBJ ||
                 ( ism_mode == ISM_MASA_MODE_DISC && element_brate == 9600 ) /* this condition corresponds to the ivas_total_brate = 24400 and 1 object */
            )
        {
            if ( ism_imp == ISM_LOW_IMP )
            {
                nBits = (int16_t) ( nBits * GAMMA_ISM_LOW_IMP2 );
            }
            else if ( ism_imp == ISM_MEDIUM_IMP )
            {
                nBits = (int16_t) ( nBits * GAMMA_ISM_MEDIUM_IMP2 );
            }
            else /* ISM_HIGH_IMP */
            {
                nBits = (int16_t) ( nBits * GAMMA_ISM_HIGH_IMP2 );
            }
        }
        else
        {

        if ( ism_imp == ISM_LOW_IMP )
        {
                nBits = (int16_t) ( nBits * GAMMA_ISM_LOW_IMP );
            nBits = (int16_t) ( nBits * gamma_tbl[0] );
        }
        else if ( ism_imp == ISM_MEDIUM_IMP )
        {
                nBits = (int16_t) ( nBits * GAMMA_ISM_MEDIUM_IMP );
            nBits = (int16_t) ( nBits * gamma_tbl[1] );
        }
        else /* ISM_HIGH_IMP */
        {
                nBits = (int16_t) ( nBits * GAMMA_ISM_HIGH_IMP );
            }
            nBits = (int16_t) ( nBits * gamma_tbl[2] );
        }
    }