Commit bf5cfe9a authored by vasilache's avatar vasilache
Browse files

update FIX 2492

parent 74f7a434
Loading
Loading
Loading
Loading
Loading
+52 −11
Original line number Diff line number Diff line
@@ -1622,7 +1622,7 @@ static void put_value_fx(
 *
 *
 *-----------------------------------------------------------------*/

#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES
void create_offset_fx(
    UWord32 *offset_scale1,
    UWord32 *offset_scale2,
@@ -1643,13 +1643,8 @@ void create_offset_fx(
            tmp = add( tmp, DELTA_LEADER );
        }

#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES
        make_offset_scale_fx( table_no_cv_fx, leaders_short[tmp], MAX_NO_SCALES, offset_scale1 );
        make_offset_scale_fx( table_no_cv_fx, leaders_short[no_lead_idx[mode][1]], MAX_NO_SCALES, offset_scale2 );
#else
        make_offset_scale( table_no_cv_fx, leaders_short[tmp], MAX_NO_SCALES, offset_scale1 );
        make_offset_scale( table_no_cv_fx, leaders_short[no_lead_idx[mode][1]], MAX_NO_SCALES, offset_scale2 );
#endif
    }
    ELSE
    {
@@ -1672,18 +1667,64 @@ void create_offset_fx(
            move16();
        }

#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES
        make_offset_scale_fx( table_no_cv_fx, leaders_short[tmp], MAX_NO_SCALES, offset_scale1 );
        make_offset_scale_fx( table_no_cv_fx, leaders_short[tmp1], MAX_NO_SCALES, offset_scale2 );
#else
        make_offset_scale( table_no_cv_fx, leaders_short[tmp], MAX_NO_SCALES, offset_scale1 );
        make_offset_scale( table_no_cv_fx, leaders_short[tmp1], MAX_NO_SCALES, offset_scale2 );
#endif
    }

    return;
}
#else
void create_offset_fx(
    UWord32 *offset_scale1,
    UWord32 *offset_scale2,
    const Word16 mode,
    const Word16 prediction_flag )
{
    Word16 tmp, tmp1;

    IF( prediction_flag == 0 )
    {
        /* safety_net */
        tmp = no_lead_idx[mode][0];
        move16();

        test();
        if ( LE_16( tmp, LIMIT_LEADER ) && LT_16( tmp, no_lead_idx[mode][1] - 2 ) )
        {
            tmp = add( tmp, DELTA_LEADER );
        }

        make_offset_scale( table_no_cv, leaders_short[tmp], MAX_NO_SCALES, offset_scale1 );
        make_offset_scale( table_no_cv, leaders_short[no_lead_idx[mode][1]], MAX_NO_SCALES, offset_scale2 );
    }
    ELSE
    {
        tmp = no_lead_p_idx[mode][0];
        tmp1 = no_lead_p_idx[mode][1];
        move16();
        move16();

        test();
        IF( LE_16( tmp, LIMIT_LEADER ) && LT_16( tmp, sub( tmp1, 2 ) ) )
        {
            tmp = add( tmp, DELTA_LEADER );
        }

        test();
        IF( EQ_16( tmp, LIMIT_LEADER ) && tmp1 == 0 )
        {
            tmp = add( tmp, DELTA_LEADER );
            tmp1 = DELTA_LEADER;
            move16();
        }

        make_offset_scale( table_no_cv, leaders_short[tmp], MAX_NO_SCALES, offset_scale1 );
        make_offset_scale( table_no_cv, leaders_short[tmp1], MAX_NO_SCALES, offset_scale2 );
    }

    return;
}
#endif

/*-----------------------------------------------------------------*
 * sort_desc_ind()
+8 −0
Original line number Diff line number Diff line
@@ -9865,11 +9865,19 @@ void preemph_ivas_fx(
    Word32 *mem      /* i/o: memory (x[-1])     Qx*/
);

#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES
void create_offset_fx(
    UWord32 *offset_scale1,
    UWord32 *offset_scale2,
    const Word16 mode,
    const Word16 prediction_flag );
#else
void create_offset(
    UWord32 *offset_scale1,
    UWord32 *offset_scale2,
    const Word16 mode,
    const Word16 prediction_flag );
#endif

void BASOP_cfft_ivas(
    Word32 *re,   /* i/o: real part                                 */
+1 −8
Original line number Diff line number Diff line
@@ -27534,14 +27534,7 @@ const Word16 scales_fx[][MAX_NO_SCALES * 2] = /* 2 subvectors Q11*/
        { 1233, 1780, 2904, 2589, 1565, 4542 },
/* 36 */ /* mode 10 AUDIO_WB LVQ bitrate 15-36 + 4 + 1*/
#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES_VE
        {
            1747,
            3623,
            9062,
            2048,
            2048,
            2048,
        }, /* 17 */
        { 1747, 3623, 9062, 2048, 2048, 2048 }, /* 17 */
#else
        { 1746, 3622, 9062, 2048, 2048, 2048 }, /* 17 */
#endif
+8 −0
Original line number Diff line number Diff line
@@ -29,7 +29,11 @@ static void take_out_val_fx( const Word16 *v, Word16 *v_out, const Word16 val, c
static Word16 index_leaders_fx( const Word16 *cv, const Word16 idx_lead, const Word16 dim );
static Word16 c2idx_fx( const Word16 n, Word16 *p, const Word16 k );
static Word16 encode_sign_pc1_fx( const Word16 parity, const Word16 *cv );
#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES
static Word32 encode_comb_fx( Word16 *cv, const Word16 idx_lead );
#else
Word32 encode_comb_fx( Word16 *cv, const Word16 idx_lead );
#endif
static void sort_desc_ind_fx( Word16 *s, const Word16 len, Word16 *ind );


@@ -1485,7 +1489,11 @@ void index_lvq_ivas_fx(
 *-----------------------------------------------------------------*/

/* o: index of the absolute valued codevector */
#ifdef FIX_2492_REMOVE_DUPLICATES_FOR_DECODE_INDEXES
static Word32 encode_comb_fx(
#else
Word32 encode_comb_fx(
#endif
    Word16 *cv,           /* i  : codevector to be indexed            Q13*/
    const Word16 idx_lead /* i  : leader class index, to know the values */
)