| /* |
| * 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. |
| */ |
| |
| /* |
| * entropy_coding.h |
| * |
| * This header file contains all of the functions used to arithmetically |
| * encode the iSAC bistream |
| * |
| */ |
| |
| #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_ENTROPY_CODING_H_ |
| #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_ENTROPY_CODING_H_ |
| |
| #include "structs.h" |
| |
| /* decode complex spectrum (return number of bytes in stream) */ |
| WebRtc_Word16 WebRtcIsacfix_DecodeSpec(Bitstr_dec *streamdata, |
| WebRtc_Word16 *frQ7, |
| WebRtc_Word16 *fiQ7, |
| WebRtc_Word16 AvgPitchGain_Q12); |
| |
| /* encode complex spectrum */ |
| int WebRtcIsacfix_EncodeSpec(const WebRtc_Word16 *fr, |
| const WebRtc_Word16 *fi, |
| Bitstr_enc *streamdata, |
| WebRtc_Word16 AvgPitchGain_Q12); |
| |
| |
| /* decode & dequantize LPC Coef */ |
| int WebRtcIsacfix_DecodeLpcCoef(Bitstr_dec *streamdata, |
| WebRtc_Word32 *LPCCoefQ17, |
| WebRtc_Word32 *gain_lo_hiQ17, |
| WebRtc_Word16 *outmodel); |
| |
| int WebRtcIsacfix_DecodeLpc(WebRtc_Word32 *gain_lo_hiQ17, |
| WebRtc_Word16 *LPCCoef_loQ15, |
| WebRtc_Word16 *LPCCoef_hiQ15, |
| Bitstr_dec *streamdata, |
| WebRtc_Word16 *outmodel); |
| |
| /* quantize & code LPC Coef */ |
| int WebRtcIsacfix_EncodeLpc(WebRtc_Word32 *gain_lo_hiQ17, |
| WebRtc_Word16 *LPCCoef_loQ15, |
| WebRtc_Word16 *LPCCoef_hiQ15, |
| WebRtc_Word16 *model, |
| WebRtc_Word32 *sizeQ11, |
| Bitstr_enc *streamdata, |
| ISAC_SaveEncData_t* encData, |
| transcode_obj *transcodeParam); |
| |
| int WebRtcIsacfix_EstCodeLpcGain(WebRtc_Word32 *gain_lo_hiQ17, |
| Bitstr_enc *streamdata, |
| ISAC_SaveEncData_t* encData); |
| /* decode & dequantize RC */ |
| int WebRtcIsacfix_DecodeRcCoef(Bitstr_dec *streamdata, |
| WebRtc_Word16 *RCQ15); |
| |
| /* quantize & code RC */ |
| int WebRtcIsacfix_EncodeRcCoef(WebRtc_Word16 *RCQ15, |
| Bitstr_enc *streamdata); |
| |
| /* decode & dequantize squared Gain */ |
| int WebRtcIsacfix_DecodeGain2(Bitstr_dec *streamdata, |
| WebRtc_Word32 *Gain2); |
| |
| /* quantize & code squared Gain (input is squared gain) */ |
| int WebRtcIsacfix_EncodeGain2(WebRtc_Word32 *gain2, |
| Bitstr_enc *streamdata); |
| |
| int WebRtcIsacfix_EncodePitchGain(WebRtc_Word16 *PitchGains_Q12, |
| Bitstr_enc *streamdata, |
| ISAC_SaveEncData_t* encData); |
| |
| int WebRtcIsacfix_EncodePitchLag(WebRtc_Word16 *PitchLagQ7, |
| WebRtc_Word16 *PitchGain_Q12, |
| Bitstr_enc *streamdata, |
| ISAC_SaveEncData_t* encData); |
| |
| int WebRtcIsacfix_DecodePitchGain(Bitstr_dec *streamdata, |
| WebRtc_Word16 *PitchGain_Q12); |
| |
| int WebRtcIsacfix_DecodePitchLag(Bitstr_dec *streamdata, |
| WebRtc_Word16 *PitchGain_Q12, |
| WebRtc_Word16 *PitchLagQ7); |
| |
| int WebRtcIsacfix_DecodeFrameLen(Bitstr_dec *streamdata, |
| WebRtc_Word16 *framelength); |
| |
| |
| int WebRtcIsacfix_EncodeFrameLen(WebRtc_Word16 framelength, |
| Bitstr_enc *streamdata); |
| |
| int WebRtcIsacfix_DecodeSendBandwidth(Bitstr_dec *streamdata, |
| WebRtc_Word16 *BWno); |
| |
| |
| int WebRtcIsacfix_EncodeReceiveBandwidth(WebRtc_Word16 *BWno, |
| Bitstr_enc *streamdata); |
| |
| void WebRtcIsacfix_TranscodeLpcCoef(WebRtc_Word32 *tmpcoeffs_gQ6, |
| WebRtc_Word16 *index_gQQ); |
| |
| #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_ENTROPY_CODING_H_ */ |