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

Side by Side Diff: third_party/opus/src/silk/fixed/schur64_FIX.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 25 matching lines...) Expand all
36 opus_int32 silk_schur64( /* O returns residual ene rgy */ 36 opus_int32 silk_schur64( /* O returns residual ene rgy */
37 opus_int32 rc_Q16[], /* O Reflection coefficie nts [order] Q16 */ 37 opus_int32 rc_Q16[], /* O Reflection coefficie nts [order] Q16 */
38 const opus_int32 c[], /* I Correlations [order+ 1] */ 38 const opus_int32 c[], /* I Correlations [order+ 1] */
39 opus_int32 order /* I Prediction order */ 39 opus_int32 order /* I Prediction order */
40 ) 40 )
41 { 41 {
42 opus_int k, n; 42 opus_int k, n;
43 opus_int32 C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ]; 43 opus_int32 C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ];
44 opus_int32 Ctmp1_Q30, Ctmp2_Q30, rc_tmp_Q31; 44 opus_int32 Ctmp1_Q30, Ctmp2_Q30, rc_tmp_Q31;
45 45
46 silk_assert( order==6||order==8||order==10||order==12||order==14||order==16 ); 46 silk_assert( order >= 0 && order <= SILK_MAX_ORDER_LPC );
47 47
48 /* Check for invalid input */ 48 /* Check for invalid input */
49 if( c[ 0 ] <= 0 ) { 49 if( c[ 0 ] <= 0 ) {
50 silk_memset( rc_Q16, 0, order * sizeof( opus_int32 ) ); 50 silk_memset( rc_Q16, 0, order * sizeof( opus_int32 ) );
51 return 0; 51 return 0;
52 } 52 }
53 53
54 for( k = 0; k < order + 1; k++ ) { 54 k = 0;
55 do {
55 C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ]; 56 C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ];
56 } 57 } while( ++k <= order );
57 58
58 for( k = 0; k < order; k++ ) { 59 for( k = 0; k < order; k++ ) {
59 /* Check that we won't be getting an unstable rc, otherwise stop here. * / 60 /* Check that we won't be getting an unstable rc, otherwise stop here. * /
60 if (silk_abs_int32(C[ k + 1 ][ 0 ]) >= C[ 0 ][ 1 ]) { 61 if (silk_abs_int32(C[ k + 1 ][ 0 ]) >= C[ 0 ][ 1 ]) {
61 if ( C[ k + 1 ][ 0 ] > 0 ) { 62 if ( C[ k + 1 ][ 0 ] > 0 ) {
62 rc_Q16[ k ] = -SILK_FIX_CONST( .99f, 16 ); 63 rc_Q16[ k ] = -SILK_FIX_CONST( .99f, 16 );
63 } else { 64 } else {
64 rc_Q16[ k ] = SILK_FIX_CONST( .99f, 16 ); 65 rc_Q16[ k ] = SILK_FIX_CONST( .99f, 16 );
65 } 66 }
66 k++; 67 k++;
(...skipping 16 matching lines...) Expand all
83 C[ n ][ 1 ] = Ctmp2_Q30 + silk_SMMUL( silk_LSHIFT( Ctmp1_Q30 , 1 ), rc_tmp_Q31 ); 84 C[ n ][ 1 ] = Ctmp2_Q30 + silk_SMMUL( silk_LSHIFT( Ctmp1_Q30 , 1 ), rc_tmp_Q31 );
84 } 85 }
85 } 86 }
86 87
87 for(; k < order; k++ ) { 88 for(; k < order; k++ ) {
88 rc_Q16[ k ] = 0; 89 rc_Q16[ k ] = 0;
89 } 90 }
90 91
91 return silk_max_32( 1, C[ 0 ][ 1 ] ); 92 return silk_max_32( 1, C[ 0 ][ 1 ] );
92 } 93 }
OLDNEW
« no previous file with comments | « third_party/opus/src/silk/fixed/prefilter_FIX.c ('k') | third_party/opus/src/silk/fixed/schur_FIX.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698