| OLD | NEW |
| 1 /*********************************************************************** | 1 /*********************************************************************** |
| 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. | 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. |
| 3 Redistribution and use in source and binary forms, with or without | 3 Redistribution and use in source and binary forms, with or without |
| 4 modification, are permitted provided that the following conditions | 4 modification, are permitted provided that the following conditions |
| 5 are met: | 5 are met: |
| 6 - Redistributions of source code must retain the above copyright notice, | 6 - Redistributions of source code must retain the above copyright notice, |
| 7 this list of conditions and the following disclaimer. | 7 this list of conditions and the following disclaimer. |
| 8 - Redistributions in binary form must reproduce the above copyright | 8 - Redistributions in binary form must reproduce the above copyright |
| 9 notice, this list of conditions and the following disclaimer in the | 9 notice, this list of conditions and the following disclaimer in the |
| 10 documentation and/or other materials provided with the distribution. | 10 documentation and/or other materials provided with the distribution. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 | 31 |
| 32 #include "main.h" | 32 #include "main.h" |
| 33 #include "stack_alloc.h" | 33 #include "stack_alloc.h" |
| 34 #include "PLC.h" | 34 #include "PLC.h" |
| 35 | 35 |
| 36 #define NB_ATT 2 | 36 #define NB_ATT 2 |
| 37 static const opus_int16 HARM_ATT_Q15[NB_ATT] = { 32440, 31130 }; /*
0.99, 0.95 */ | 37 static const opus_int16 HARM_ATT_Q15[NB_ATT] = { 32440, 31130 }; /*
0.99, 0.95 */ |
| 38 static const opus_int16 PLC_RAND_ATTENUATE_V_Q15[NB_ATT] = { 31130, 26214 }; /*
0.95, 0.8 */ | 38 static const opus_int16 PLC_RAND_ATTENUATE_V_Q15[NB_ATT] = { 31130, 26214 }; /*
0.95, 0.8 */ |
| 39 static const opus_int16 PLC_RAND_ATTENUATE_UV_Q15[NB_ATT] = { 32440, 29491 }; /*
0.99, 0.9 */ | 39 static const opus_int16 PLC_RAND_ATTENUATE_UV_Q15[NB_ATT] = { 32440, 29491 }; /*
0.99, 0.9 */ |
| 40 | 40 |
| 41 static inline void silk_PLC_update( | 41 static OPUS_INLINE void silk_PLC_update( |
| 42 silk_decoder_state *psDec, /* I/O Decoder state
*/ | 42 silk_decoder_state *psDec, /* I/O Decoder state
*/ |
| 43 silk_decoder_control *psDecCtrl /* I/O Decoder contr
ol */ | 43 silk_decoder_control *psDecCtrl /* I/O Decoder contr
ol */ |
| 44 ); | 44 ); |
| 45 | 45 |
| 46 static inline void silk_PLC_conceal( | 46 static OPUS_INLINE void silk_PLC_conceal( |
| 47 silk_decoder_state *psDec, /* I/O Decoder state
*/ | 47 silk_decoder_state *psDec, /* I/O Decoder state
*/ |
| 48 silk_decoder_control *psDecCtrl, /* I/O Decoder contr
ol */ | 48 silk_decoder_control *psDecCtrl, /* I/O Decoder contr
ol */ |
| 49 opus_int16 frame[] /* O LPC residual si
gnal */ | 49 opus_int16 frame[] /* O LPC residual si
gnal */ |
| 50 ); | 50 ); |
| 51 | 51 |
| 52 | 52 |
| 53 void silk_PLC_Reset( | 53 void silk_PLC_Reset( |
| 54 silk_decoder_state *psDec /* I/O Decoder state
*/ | 54 silk_decoder_state *psDec /* I/O Decoder state
*/ |
| 55 ) | 55 ) |
| 56 { | 56 { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 85 /****************************/ | 85 /****************************/ |
| 86 /* Update state */ | 86 /* Update state */ |
| 87 /****************************/ | 87 /****************************/ |
| 88 silk_PLC_update( psDec, psDecCtrl ); | 88 silk_PLC_update( psDec, psDecCtrl ); |
| 89 } | 89 } |
| 90 } | 90 } |
| 91 | 91 |
| 92 /**************************************************/ | 92 /**************************************************/ |
| 93 /* Update state of PLC */ | 93 /* Update state of PLC */ |
| 94 /**************************************************/ | 94 /**************************************************/ |
| 95 static inline void silk_PLC_update( | 95 static OPUS_INLINE void silk_PLC_update( |
| 96 silk_decoder_state *psDec, /* I/O Decoder state
*/ | 96 silk_decoder_state *psDec, /* I/O Decoder state
*/ |
| 97 silk_decoder_control *psDecCtrl /* I/O Decoder contr
ol */ | 97 silk_decoder_control *psDecCtrl /* I/O Decoder contr
ol */ |
| 98 ) | 98 ) |
| 99 { | 99 { |
| 100 opus_int32 LTP_Gain_Q14, temp_LTP_Gain_Q14; | 100 opus_int32 LTP_Gain_Q14, temp_LTP_Gain_Q14; |
| 101 opus_int i, j; | 101 opus_int i, j; |
| 102 silk_PLC_struct *psPLC; | 102 silk_PLC_struct *psPLC; |
| 103 | 103 |
| 104 psPLC = &psDec->sPLC; | 104 psPLC = &psDec->sPLC; |
| 105 | 105 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 silk_memcpy( psPLC->prevLPC_Q12, psDecCtrl->PredCoef_Q12[ 1 ], psDec->LPC_or
der * sizeof( opus_int16 ) ); | 158 silk_memcpy( psPLC->prevLPC_Q12, psDecCtrl->PredCoef_Q12[ 1 ], psDec->LPC_or
der * sizeof( opus_int16 ) ); |
| 159 psPLC->prevLTP_scale_Q14 = psDecCtrl->LTP_scale_Q14; | 159 psPLC->prevLTP_scale_Q14 = psDecCtrl->LTP_scale_Q14; |
| 160 | 160 |
| 161 /* Save last two gains */ | 161 /* Save last two gains */ |
| 162 silk_memcpy( psPLC->prevGain_Q16, &psDecCtrl->Gains_Q16[ psDec->nb_subfr - 2
], 2 * sizeof( opus_int32 ) ); | 162 silk_memcpy( psPLC->prevGain_Q16, &psDecCtrl->Gains_Q16[ psDec->nb_subfr - 2
], 2 * sizeof( opus_int32 ) ); |
| 163 | 163 |
| 164 psPLC->subfr_length = psDec->subfr_length; | 164 psPLC->subfr_length = psDec->subfr_length; |
| 165 psPLC->nb_subfr = psDec->nb_subfr; | 165 psPLC->nb_subfr = psDec->nb_subfr; |
| 166 } | 166 } |
| 167 | 167 |
| 168 static inline void silk_PLC_conceal( | 168 static OPUS_INLINE void silk_PLC_conceal( |
| 169 silk_decoder_state *psDec, /* I/O Decoder state
*/ | 169 silk_decoder_state *psDec, /* I/O Decoder state
*/ |
| 170 silk_decoder_control *psDecCtrl, /* I/O Decoder contr
ol */ | 170 silk_decoder_control *psDecCtrl, /* I/O Decoder contr
ol */ |
| 171 opus_int16 frame[] /* O LPC residual si
gnal */ | 171 opus_int16 frame[] /* O LPC residual si
gnal */ |
| 172 ) | 172 ) |
| 173 { | 173 { |
| 174 opus_int i, j, k; | 174 opus_int i, j, k; |
| 175 opus_int lag, idx, sLTP_buf_idx, shift1, shift2; | 175 opus_int lag, idx, sLTP_buf_idx, shift1, shift2; |
| 176 opus_int32 rand_seed, harm_Gain_Q15, rand_Gain_Q15, inv_gain_Q30; | 176 opus_int32 rand_seed, harm_Gain_Q15, rand_Gain_Q15, inv_gain_Q30; |
| 177 opus_int32 energy1, energy2, *rand_ptr, *pred_lag_ptr; | 177 opus_int32 energy1, energy2, *rand_ptr, *pred_lag_ptr; |
| 178 opus_int32 LPC_pred_Q10, LTP_pred_Q12; | 178 opus_int32 LPC_pred_Q10, LTP_pred_Q12; |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 gain_Q16 += slope_Q16; | 414 gain_Q16 += slope_Q16; |
| 415 if( gain_Q16 > (opus_int32)1 << 16 ) { | 415 if( gain_Q16 > (opus_int32)1 << 16 ) { |
| 416 break; | 416 break; |
| 417 } | 417 } |
| 418 } | 418 } |
| 419 } | 419 } |
| 420 } | 420 } |
| 421 psPLC->last_frame_lost = 0; | 421 psPLC->last_frame_lost = 0; |
| 422 } | 422 } |
| 423 } | 423 } |
| OLD | NEW |