Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: silk/PLC.c

Issue 107243004: Updating Opus to release 1.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « silk/NSQ_del_dec.c ('k') | silk/SigProc_FIX.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « silk/NSQ_del_dec.c ('k') | silk/SigProc_FIX.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698