mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-14 22:30:40 +01:00

In https://webrtc-review.googlesource.com/c/src/+/1560 we moved WebRTC from src/webrtc to src/ (in order to preserve an healthy git history). This CL takes care of fixing header guards, #include paths, etc... NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true TBR=tommi@webrtc.org Bug: chromium:611808 Change-Id: Iea91618212bee0af16aa3f05071eab8f93706578 Reviewed-on: https://webrtc-review.googlesource.com/1561 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Henrik Kjellander <kjellander@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#19846}
189 lines
8.4 KiB
C
189 lines
8.4 KiB
C
/*
|
|
* 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 MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_ENTROPY_CODING_H_
|
|
#define MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_ENTROPY_CODING_H_
|
|
|
|
#include "structs.h"
|
|
|
|
/* decode complex spectrum (return number of bytes in stream) */
|
|
int WebRtcIsacfix_DecodeSpec(Bitstr_dec *streamdata,
|
|
int16_t *frQ7,
|
|
int16_t *fiQ7,
|
|
int16_t AvgPitchGain_Q12);
|
|
|
|
/* encode complex spectrum */
|
|
int WebRtcIsacfix_EncodeSpec(const int16_t *fr,
|
|
const int16_t *fi,
|
|
Bitstr_enc *streamdata,
|
|
int16_t AvgPitchGain_Q12);
|
|
|
|
|
|
/* decode & dequantize LPC Coef */
|
|
int WebRtcIsacfix_DecodeLpcCoef(Bitstr_dec *streamdata,
|
|
int32_t *LPCCoefQ17,
|
|
int32_t *gain_lo_hiQ17,
|
|
int16_t *outmodel);
|
|
|
|
int WebRtcIsacfix_DecodeLpc(int32_t *gain_lo_hiQ17,
|
|
int16_t *LPCCoef_loQ15,
|
|
int16_t *LPCCoef_hiQ15,
|
|
Bitstr_dec *streamdata,
|
|
int16_t *outmodel);
|
|
|
|
/* quantize & code LPC Coef */
|
|
int WebRtcIsacfix_EncodeLpc(int32_t *gain_lo_hiQ17,
|
|
int16_t *LPCCoef_loQ15,
|
|
int16_t *LPCCoef_hiQ15,
|
|
int16_t *model,
|
|
int32_t *sizeQ11,
|
|
Bitstr_enc *streamdata,
|
|
IsacSaveEncoderData* encData,
|
|
transcode_obj *transcodeParam);
|
|
|
|
int WebRtcIsacfix_EstCodeLpcGain(int32_t *gain_lo_hiQ17,
|
|
Bitstr_enc *streamdata,
|
|
IsacSaveEncoderData* encData);
|
|
/* decode & dequantize RC */
|
|
int WebRtcIsacfix_DecodeRcCoef(Bitstr_dec *streamdata,
|
|
int16_t *RCQ15);
|
|
|
|
/* quantize & code RC */
|
|
int WebRtcIsacfix_EncodeRcCoef(int16_t *RCQ15,
|
|
Bitstr_enc *streamdata);
|
|
|
|
/* decode & dequantize squared Gain */
|
|
int WebRtcIsacfix_DecodeGain2(Bitstr_dec *streamdata,
|
|
int32_t *Gain2);
|
|
|
|
/* quantize & code squared Gain (input is squared gain) */
|
|
int WebRtcIsacfix_EncodeGain2(int32_t *gain2,
|
|
Bitstr_enc *streamdata);
|
|
|
|
int WebRtcIsacfix_EncodePitchGain(int16_t *PitchGains_Q12,
|
|
Bitstr_enc *streamdata,
|
|
IsacSaveEncoderData* encData);
|
|
|
|
int WebRtcIsacfix_EncodePitchLag(int16_t *PitchLagQ7,
|
|
int16_t *PitchGain_Q12,
|
|
Bitstr_enc *streamdata,
|
|
IsacSaveEncoderData* encData);
|
|
|
|
int WebRtcIsacfix_DecodePitchGain(Bitstr_dec *streamdata,
|
|
int16_t *PitchGain_Q12);
|
|
|
|
int WebRtcIsacfix_DecodePitchLag(Bitstr_dec *streamdata,
|
|
int16_t *PitchGain_Q12,
|
|
int16_t *PitchLagQ7);
|
|
|
|
int WebRtcIsacfix_DecodeFrameLen(Bitstr_dec *streamdata,
|
|
size_t *framelength);
|
|
|
|
|
|
int WebRtcIsacfix_EncodeFrameLen(int16_t framelength,
|
|
Bitstr_enc *streamdata);
|
|
|
|
int WebRtcIsacfix_DecodeSendBandwidth(Bitstr_dec *streamdata,
|
|
int16_t *BWno);
|
|
|
|
|
|
int WebRtcIsacfix_EncodeReceiveBandwidth(int16_t *BWno,
|
|
Bitstr_enc *streamdata);
|
|
|
|
void WebRtcIsacfix_TranscodeLpcCoef(int32_t *tmpcoeffs_gQ6,
|
|
int16_t *index_gQQ);
|
|
|
|
// Pointer functions for LPC transforms.
|
|
|
|
typedef void (*MatrixProduct1)(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix1_index_factor1,
|
|
const int matrix0_index_factor1,
|
|
const int matrix1_index_init_case,
|
|
const int matrix1_index_step,
|
|
const int matrix0_index_step,
|
|
const int inner_loop_count,
|
|
const int mid_loop_count,
|
|
const int shift);
|
|
typedef void (*MatrixProduct2)(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix0_index_factor,
|
|
const int matrix0_index_step);
|
|
|
|
extern MatrixProduct1 WebRtcIsacfix_MatrixProduct1;
|
|
extern MatrixProduct2 WebRtcIsacfix_MatrixProduct2;
|
|
|
|
void WebRtcIsacfix_MatrixProduct1C(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix1_index_factor1,
|
|
const int matrix0_index_factor1,
|
|
const int matrix1_index_init_case,
|
|
const int matrix1_index_step,
|
|
const int matrix0_index_step,
|
|
const int inner_loop_count,
|
|
const int mid_loop_count,
|
|
const int shift);
|
|
void WebRtcIsacfix_MatrixProduct2C(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix0_index_factor,
|
|
const int matrix0_index_step);
|
|
|
|
#if defined(WEBRTC_HAS_NEON)
|
|
void WebRtcIsacfix_MatrixProduct1Neon(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix1_index_factor1,
|
|
const int matrix0_index_factor1,
|
|
const int matrix1_index_init_case,
|
|
const int matrix1_index_step,
|
|
const int matrix0_index_step,
|
|
const int inner_loop_count,
|
|
const int mid_loop_count,
|
|
const int shift);
|
|
void WebRtcIsacfix_MatrixProduct2Neon(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix0_index_factor,
|
|
const int matrix0_index_step);
|
|
#endif
|
|
|
|
#if defined(MIPS32_LE)
|
|
void WebRtcIsacfix_MatrixProduct1MIPS(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix1_index_factor1,
|
|
const int matrix0_index_factor1,
|
|
const int matrix1_index_init_case,
|
|
const int matrix1_index_step,
|
|
const int matrix0_index_step,
|
|
const int inner_loop_count,
|
|
const int mid_loop_count,
|
|
const int shift);
|
|
|
|
void WebRtcIsacfix_MatrixProduct2MIPS(const int16_t matrix0[],
|
|
const int32_t matrix1[],
|
|
int32_t matrix_product[],
|
|
const int matrix0_index_factor,
|
|
const int matrix0_index_step);
|
|
#endif
|
|
|
|
#endif // MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_ENTROPY_CODING_H_
|