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

Side by Side Diff: third_party/opus/src/silk/float/schur_FLP.c

Issue 2962373002: [Opus] Update to v1.2.1 (Closed)
Patch Set: Pre-increment instead of post-increment Created 3 years, 5 months 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
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 "SigProc_FLP.h" 32 #include "SigProc_FLP.h"
33 33
34 silk_float silk_schur_FLP( /* O returns residual energy */ 34 silk_float silk_schur_FLP( /* O returns residual energy */
35 silk_float refl_coef[], /* O reflection coefficients (len gth order) */ 35 silk_float refl_coef[], /* O reflection coefficients (len gth order) */
36 const silk_float auto_corr[], /* I autocorrelation sequence (le ngth order+1) */ 36 const silk_float auto_corr[], /* I autocorrelation sequence (le ngth order+1) */
37 opus_int order /* I order */ 37 opus_int order /* I order */
38 ) 38 )
39 { 39 {
40 opus_int k, n; 40 opus_int k, n;
41 silk_float C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ]; 41 double C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ];
42 silk_float Ctmp1, Ctmp2, rc_tmp; 42 double Ctmp1, Ctmp2, rc_tmp;
43 43
44 silk_assert( order==6||order==8||order==10||order==12||order==14||order==16 ); 44 silk_assert( order >= 0 && order <= SILK_MAX_ORDER_LPC );
45 45
46 /* Copy correlations */ 46 /* Copy correlations */
47 for( k = 0; k < order+1; k++ ) { 47 k = 0;
48 do {
48 C[ k ][ 0 ] = C[ k ][ 1 ] = auto_corr[ k ]; 49 C[ k ][ 0 ] = C[ k ][ 1 ] = auto_corr[ k ];
49 } 50 } while( ++k <= order );
50 51
51 for( k = 0; k < order; k++ ) { 52 for( k = 0; k < order; k++ ) {
52 /* Get reflection coefficient */ 53 /* Get reflection coefficient */
53 rc_tmp = -C[ k + 1 ][ 0 ] / silk_max_float( C[ 0 ][ 1 ], 1e-9f ); 54 rc_tmp = -C[ k + 1 ][ 0 ] / silk_max_float( C[ 0 ][ 1 ], 1e-9f );
54 55
55 /* Save the output */ 56 /* Save the output */
56 refl_coef[ k ] = rc_tmp; 57 refl_coef[ k ] = (silk_float)rc_tmp;
57 58
58 /* Update correlations */ 59 /* Update correlations */
59 for( n = 0; n < order - k; n++ ) { 60 for( n = 0; n < order - k; n++ ) {
60 Ctmp1 = C[ n + k + 1 ][ 0 ]; 61 Ctmp1 = C[ n + k + 1 ][ 0 ];
61 Ctmp2 = C[ n ][ 1 ]; 62 Ctmp2 = C[ n ][ 1 ];
62 C[ n + k + 1 ][ 0 ] = Ctmp1 + Ctmp2 * rc_tmp; 63 C[ n + k + 1 ][ 0 ] = Ctmp1 + Ctmp2 * rc_tmp;
63 C[ n ][ 1 ] = Ctmp2 + Ctmp1 * rc_tmp; 64 C[ n ][ 1 ] = Ctmp2 + Ctmp1 * rc_tmp;
64 } 65 }
65 } 66 }
66 67
67 /* Return residual energy */ 68 /* Return residual energy */
68 return C[ 0 ][ 1 ]; 69 return (silk_float)C[ 0 ][ 1 ];
69 } 70 }
70
OLDNEW
« no previous file with comments | « third_party/opus/src/silk/float/prefilter_FLP.c ('k') | third_party/opus/src/silk/float/solve_LS_FLP.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698