Loading lib_com/mslvq_com_fx.c +52 −11 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 { Loading @@ -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() Loading lib_com/prot_fx.h +8 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading lib_com/rom_com_fx.c +1 −8 Original line number Diff line number Diff line Loading @@ -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 lib_enc/mslvq_enc_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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 */ ) Loading Loading
lib_com/mslvq_com_fx.c +52 −11 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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 { Loading @@ -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() Loading
lib_com/prot_fx.h +8 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading
lib_com/rom_com_fx.c +1 −8 Original line number Diff line number Diff line Loading @@ -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
lib_enc/mslvq_enc_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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 */ ) Loading