| OLD | NEW |
| 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 double_step_size_threshold = 2 * MAX_DELTA_GAIN_QUANT - N_LEVELS_QGA
IN + *prev_ind; | 69 double_step_size_threshold = 2 * MAX_DELTA_GAIN_QUANT - N_LEVELS_QGA
IN + *prev_ind; |
| 70 if( ind[ k ] > double_step_size_threshold ) { | 70 if( ind[ k ] > double_step_size_threshold ) { |
| 71 ind[ k ] = double_step_size_threshold + silk_RSHIFT( ind[ k ] -
double_step_size_threshold + 1, 1 ); | 71 ind[ k ] = double_step_size_threshold + silk_RSHIFT( ind[ k ] -
double_step_size_threshold + 1, 1 ); |
| 72 } | 72 } |
| 73 | 73 |
| 74 ind[ k ] = silk_LIMIT_int( ind[ k ], MIN_DELTA_GAIN_QUANT, MAX_DELTA
_GAIN_QUANT ); | 74 ind[ k ] = silk_LIMIT_int( ind[ k ], MIN_DELTA_GAIN_QUANT, MAX_DELTA
_GAIN_QUANT ); |
| 75 | 75 |
| 76 /* Accumulate deltas */ | 76 /* Accumulate deltas */ |
| 77 if( ind[ k ] > double_step_size_threshold ) { | 77 if( ind[ k ] > double_step_size_threshold ) { |
| 78 *prev_ind += silk_LSHIFT( ind[ k ], 1 ) - double_step_size_thres
hold; | 78 *prev_ind += silk_LSHIFT( ind[ k ], 1 ) - double_step_size_thres
hold; |
| 79 *prev_ind = silk_min_int( *prev_ind, N_LEVELS_QGAIN - 1 ); |
| 79 } else { | 80 } else { |
| 80 *prev_ind += ind[ k ]; | 81 *prev_ind += ind[ k ]; |
| 81 } | 82 } |
| 82 | 83 |
| 83 /* Shift to make non-negative */ | 84 /* Shift to make non-negative */ |
| 84 ind[ k ] -= MIN_DELTA_GAIN_QUANT; | 85 ind[ k ] -= MIN_DELTA_GAIN_QUANT; |
| 85 } | 86 } |
| 86 | 87 |
| 87 /* Scale and convert to linear scale */ | 88 /* Scale and convert to linear scale */ |
| 88 gain_Q16[ k ] = silk_log2lin( silk_min_32( silk_SMULWB( INV_SCALE_Q16, *
prev_ind ) + OFFSET, 3967 ) ); /* 3967 = 31 in Q7 */ | 89 gain_Q16[ k ] = silk_log2lin( silk_min_32( silk_SMULWB( INV_SCALE_Q16, *
prev_ind ) + OFFSET, 3967 ) ); /* 3967 = 31 in Q7 */ |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 opus_int k; | 133 opus_int k; |
| 133 opus_int32 gainsID; | 134 opus_int32 gainsID; |
| 134 | 135 |
| 135 gainsID = 0; | 136 gainsID = 0; |
| 136 for( k = 0; k < nb_subfr; k++ ) { | 137 for( k = 0; k < nb_subfr; k++ ) { |
| 137 gainsID = silk_ADD_LSHIFT32( ind[ k ], gainsID, 8 ); | 138 gainsID = silk_ADD_LSHIFT32( ind[ k ], gainsID, 8 ); |
| 138 } | 139 } |
| 139 | 140 |
| 140 return gainsID; | 141 return gainsID; |
| 141 } | 142 } |
| OLD | NEW |