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

Side by Side Diff: silk/fixed/burg_modified_FIX.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/fixed/autocorr_FIX.c ('k') | silk/fixed/encode_frame_FIX.c » ('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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 /* Compute reflection coefficients from input signal */ 44 /* Compute reflection coefficients from input signal */
45 void silk_burg_modified( 45 void silk_burg_modified(
46 opus_int32 *res_nrg, /* O Residual energy */ 46 opus_int32 *res_nrg, /* O Residual energy */
47 opus_int *res_nrg_Q, /* O Residual energy Q va lue */ 47 opus_int *res_nrg_Q, /* O Residual energy Q va lue */
48 opus_int32 A_Q16[], /* O Prediction coefficie nts (length order) */ 48 opus_int32 A_Q16[], /* O Prediction coefficie nts (length order) */
49 const opus_int16 x[], /* I Input signal, length : nb_subfr * ( D + subfr_length ) */ 49 const opus_int16 x[], /* I Input signal, length : nb_subfr * ( D + subfr_length ) */
50 const opus_int32 minInvGain_Q30, /* I Inverse of max predi ction gain */ 50 const opus_int32 minInvGain_Q30, /* I Inverse of max predi ction gain */
51 const opus_int subfr_length, /* I Input signal subfram e length (incl. D preceding samples) */ 51 const opus_int subfr_length, /* I Input signal subfram e length (incl. D preceding samples) */
52 const opus_int nb_subfr, /* I Number of subframes stacked in x */ 52 const opus_int nb_subfr, /* I Number of subframes stacked in x */
53 const opus_int D /* I Order */ 53 const opus_int D, /* I Order */
54 int arch /* I Run-time architectur e */
54 ) 55 )
55 { 56 {
56 opus_int k, n, s, lz, rshifts, rshifts_extra, reached_max_gain; 57 opus_int k, n, s, lz, rshifts, rshifts_extra, reached_max_gain;
57 opus_int32 C0, num, nrg, rc_Q31, invGain_Q30, Atmp_QA, Atmp1, tmp1, tm p2, x1, x2; 58 opus_int32 C0, num, nrg, rc_Q31, invGain_Q30, Atmp_QA, Atmp1, tmp1, tm p2, x1, x2;
58 const opus_int16 *x_ptr; 59 const opus_int16 *x_ptr;
59 opus_int32 C_first_row[ SILK_MAX_ORDER_LPC ]; 60 opus_int32 C_first_row[ SILK_MAX_ORDER_LPC ];
60 opus_int32 C_last_row[ SILK_MAX_ORDER_LPC ]; 61 opus_int32 C_last_row[ SILK_MAX_ORDER_LPC ];
61 opus_int32 Af_QA[ SILK_MAX_ORDER_LPC ]; 62 opus_int32 Af_QA[ SILK_MAX_ORDER_LPC ];
62 opus_int32 CAf[ SILK_MAX_ORDER_LPC + 1 ]; 63 opus_int32 CAf[ SILK_MAX_ORDER_LPC + 1 ];
63 opus_int32 CAb[ SILK_MAX_ORDER_LPC + 1 ]; 64 opus_int32 CAb[ SILK_MAX_ORDER_LPC + 1 ];
(...skipping 27 matching lines...) Expand all
91 for( n = 1; n < D + 1; n++ ) { 92 for( n = 1; n < D + 1; n++ ) {
92 C_first_row[ n - 1 ] += (opus_int32)silk_RSHIFT64( 93 C_first_row[ n - 1 ] += (opus_int32)silk_RSHIFT64(
93 silk_inner_prod16_aligned_64( x_ptr, x_ptr + n, subfr_length - n ), rshifts ); 94 silk_inner_prod16_aligned_64( x_ptr, x_ptr + n, subfr_length - n ), rshifts );
94 } 95 }
95 } 96 }
96 } else { 97 } else {
97 for( s = 0; s < nb_subfr; s++ ) { 98 for( s = 0; s < nb_subfr; s++ ) {
98 int i; 99 int i;
99 opus_int32 d; 100 opus_int32 d;
100 x_ptr = x + s * subfr_length; 101 x_ptr = x + s * subfr_length;
101 celt_pitch_xcorr(x_ptr, x_ptr + 1, xcorr, subfr_length - D, D ); 102 celt_pitch_xcorr(x_ptr, x_ptr + 1, xcorr, subfr_length - D, D, arch );
102 for( n = 1; n < D + 1; n++ ) { 103 for( n = 1; n < D + 1; n++ ) {
103 for ( i = n + subfr_length - D, d = 0; i < subfr_length; i++ ) 104 for ( i = n + subfr_length - D, d = 0; i < subfr_length; i++ )
104 d = MAC16_16( d, x_ptr[ i ], x_ptr[ i - n ] ); 105 d = MAC16_16( d, x_ptr[ i ], x_ptr[ i - n ] );
105 xcorr[ n - 1 ] += d; 106 xcorr[ n - 1 ] += d;
106 } 107 }
107 for( n = 1; n < D + 1; n++ ) { 108 for( n = 1; n < D + 1; n++ ) {
108 C_first_row[ n - 1 ] += silk_LSHIFT32( xcorr[ n - 1 ], -rshifts ); 109 C_first_row[ n - 1 ] += silk_LSHIFT32( xcorr[ n - 1 ], -rshifts );
109 } 110 }
110 } 111 }
111 } 112 }
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 for( k = 0; k < D; k++ ) { 270 for( k = 0; k < D; k++ ) {
270 Atmp1 = silk_RSHIFT_ROUND( Af_QA[ k ], QA - 16 ); /* Q16 */ 271 Atmp1 = silk_RSHIFT_ROUND( Af_QA[ k ], QA - 16 ); /* Q16 */
271 nrg = silk_SMLAWW( nrg, CAf[ k + 1 ], Atmp1 ); /* Q( -rshifts ) */ 272 nrg = silk_SMLAWW( nrg, CAf[ k + 1 ], Atmp1 ); /* Q( -rshifts ) */
272 tmp1 = silk_SMLAWW( tmp1, Atmp1, Atmp1 ); /* Q16 */ 273 tmp1 = silk_SMLAWW( tmp1, Atmp1, Atmp1 ); /* Q16 */
273 A_Q16[ k ] = -Atmp1; 274 A_Q16[ k ] = -Atmp1;
274 } 275 }
275 *res_nrg = silk_SMLAWW( nrg, silk_SMMUL( SILK_FIX_CONST( FIND_LPC_COND_F AC, 32 ), C0 ), -tmp1 );/* Q( -rshifts ) */ 276 *res_nrg = silk_SMLAWW( nrg, silk_SMMUL( SILK_FIX_CONST( FIND_LPC_COND_F AC, 32 ), C0 ), -tmp1 );/* Q( -rshifts ) */
276 *res_nrg_Q = -rshifts; 277 *res_nrg_Q = -rshifts;
277 } 278 }
278 } 279 }
OLDNEW
« no previous file with comments | « silk/fixed/autocorr_FIX.c ('k') | silk/fixed/encode_frame_FIX.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698