| /* |
| * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| /****************************************************************** |
| |
| iLBC Speech Coder ANSI-C Source Code |
| |
| WebRtcIlbcfix_SimpleLsfQ.c |
| |
| ******************************************************************/ |
| |
| #include "modules/audio_coding/codecs/ilbc/simple_lsf_quant.h" |
| |
| #include "modules/audio_coding/codecs/ilbc/constants.h" |
| #include "modules/audio_coding/codecs/ilbc/defines.h" |
| #include "modules/audio_coding/codecs/ilbc/split_vq.h" |
| |
| /*----------------------------------------------------------------* |
| * lsf quantizer (subrutine to LPCencode) |
| *---------------------------------------------------------------*/ |
| |
| void WebRtcIlbcfix_SimpleLsfQ( |
| int16_t *lsfdeq, /* (o) dequantized lsf coefficients |
| (dimension FILTERORDER) Q13 */ |
| int16_t *index, /* (o) quantization index */ |
| int16_t *lsf, /* (i) the lsf coefficient vector to be |
| quantized (dimension FILTERORDER) Q13 */ |
| int16_t lpc_n /* (i) number of lsf sets to quantize */ |
| ){ |
| |
| /* Quantize first LSF with memoryless split VQ */ |
| WebRtcIlbcfix_SplitVq( lsfdeq, index, lsf, |
| (int16_t*)WebRtcIlbcfix_kLsfCb, (int16_t*)WebRtcIlbcfix_kLsfDimCb, (int16_t*)WebRtcIlbcfix_kLsfSizeCb); |
| |
| if (lpc_n==2) { |
| /* Quantize second LSF with memoryless split VQ */ |
| WebRtcIlbcfix_SplitVq( lsfdeq + LPC_FILTERORDER, index + LSF_NSPLIT, |
| lsf + LPC_FILTERORDER, (int16_t*)WebRtcIlbcfix_kLsfCb, |
| (int16_t*)WebRtcIlbcfix_kLsfDimCb, (int16_t*)WebRtcIlbcfix_kLsfSizeCb); |
| } |
| return; |
| } |