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

Side by Side Diff: third_party/opus/src/silk/float/find_LPC_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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 /* Convert to NLSFs */ 66 /* Convert to NLSFs */
67 silk_A2NLSF_FLP( NLSF_Q15, a_tmp, psEncC->predictLPCOrder ); 67 silk_A2NLSF_FLP( NLSF_Q15, a_tmp, psEncC->predictLPCOrder );
68 68
69 /* Search over interpolation indices to find the one with lowest residua l energy */ 69 /* Search over interpolation indices to find the one with lowest residua l energy */
70 res_nrg_2nd = silk_float_MAX; 70 res_nrg_2nd = silk_float_MAX;
71 for( k = 3; k >= 0; k-- ) { 71 for( k = 3; k >= 0; k-- ) {
72 /* Interpolate NLSFs for first half */ 72 /* Interpolate NLSFs for first half */
73 silk_interpolate( NLSF0_Q15, psEncC->prev_NLSFq_Q15, NLSF_Q15, k, ps EncC->predictLPCOrder ); 73 silk_interpolate( NLSF0_Q15, psEncC->prev_NLSFq_Q15, NLSF_Q15, k, ps EncC->predictLPCOrder );
74 74
75 /* Convert to LPC for residual energy evaluation */ 75 /* Convert to LPC for residual energy evaluation */
76 silk_NLSF2A_FLP( a_tmp, NLSF0_Q15, psEncC->predictLPCOrder ); 76 silk_NLSF2A_FLP( a_tmp, NLSF0_Q15, psEncC->predictLPCOrder, psEncC-> arch );
77 77
78 /* Calculate residual energy with LSF interpolation */ 78 /* Calculate residual energy with LSF interpolation */
79 silk_LPC_analysis_filter_FLP( LPC_res, a_tmp, x, 2 * subfr_length, p sEncC->predictLPCOrder ); 79 silk_LPC_analysis_filter_FLP( LPC_res, a_tmp, x, 2 * subfr_length, p sEncC->predictLPCOrder );
80 res_nrg_interp = (silk_float)( 80 res_nrg_interp = (silk_float)(
81 silk_energy_FLP( LPC_res + psEncC->predictLPCOrder, subfr_length - psEncC->predictLPCOrder ) + 81 silk_energy_FLP( LPC_res + psEncC->predictLPCOrder, subfr_length - psEncC->predictLPCOrder ) +
82 silk_energy_FLP( LPC_res + psEncC->predictLPCOrder + subfr_lengt h, subfr_length - psEncC->predictLPCOrder ) ); 82 silk_energy_FLP( LPC_res + psEncC->predictLPCOrder + subfr_lengt h, subfr_length - psEncC->predictLPCOrder ) );
83 83
84 /* Determine whether current interpolated NLSFs are best so far */ 84 /* Determine whether current interpolated NLSFs are best so far */
85 if( res_nrg_interp < res_nrg ) { 85 if( res_nrg_interp < res_nrg ) {
86 /* Interpolation has lower residual energy */ 86 /* Interpolation has lower residual energy */
87 res_nrg = res_nrg_interp; 87 res_nrg = res_nrg_interp;
88 psEncC->indices.NLSFInterpCoef_Q2 = (opus_int8)k; 88 psEncC->indices.NLSFInterpCoef_Q2 = (opus_int8)k;
89 } else if( res_nrg_interp > res_nrg_2nd ) { 89 } else if( res_nrg_interp > res_nrg_2nd ) {
90 /* No reason to continue iterating - residual energies will cont inue to climb */ 90 /* No reason to continue iterating - residual energies will cont inue to climb */
91 break; 91 break;
92 } 92 }
93 res_nrg_2nd = res_nrg_interp; 93 res_nrg_2nd = res_nrg_interp;
94 } 94 }
95 } 95 }
96 96
97 if( psEncC->indices.NLSFInterpCoef_Q2 == 4 ) { 97 if( psEncC->indices.NLSFInterpCoef_Q2 == 4 ) {
98 /* NLSF interpolation is currently inactive, calculate NLSFs from full f rame AR coefficients */ 98 /* NLSF interpolation is currently inactive, calculate NLSFs from full f rame AR coefficients */
99 silk_A2NLSF_FLP( NLSF_Q15, a, psEncC->predictLPCOrder ); 99 silk_A2NLSF_FLP( NLSF_Q15, a, psEncC->predictLPCOrder );
100 } 100 }
101 101
102 silk_assert( psEncC->indices.NLSFInterpCoef_Q2 == 4 || 102 silk_assert( psEncC->indices.NLSFInterpCoef_Q2 == 4 ||
103 ( psEncC->useInterpolatedNLSFs && !psEncC->first_frame_after_reset && ps EncC->nb_subfr == MAX_NB_SUBFR ) ); 103 ( psEncC->useInterpolatedNLSFs && !psEncC->first_frame_after_reset && ps EncC->nb_subfr == MAX_NB_SUBFR ) );
104 } 104 }
OLDNEW
« no previous file with comments | « third_party/opus/src/silk/float/energy_FLP.c ('k') | third_party/opus/src/silk/float/find_LTP_FLP.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698