SKP_Silk_Inlines.h | SKP_Silk_Inlines.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_MacroCount.h | SKP_Silk_MacroCount.h | |||
---|---|---|---|---|
/*********************************************************************** | ||||
Copyright (c) 2006-2011, Skype Limited. All rights reserved. | ||||
Redistribution and use in source and binary forms, with or without | ||||
modification, (subject to the limitations in the disclaimer below) | ||||
are permitted provided that the following conditions are met: | ||||
- Redistributions of source code must retain the above copyright notice, | ||||
this list of conditions and the following disclaimer. | ||||
- Redistributions in binary form must reproduce the above copyright | ||||
notice, this list of conditions and the following disclaimer in the | ||||
documentation and/or other materials provided with the distribution. | ||||
- Neither the name of Skype Limited, nor the names of specific | ||||
contributors, may be used to endorse or promote products derived from | ||||
this software without specific prior written permission. | ||||
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED | ||||
BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND | ||||
CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, | ||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||||
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
***********************************************************************/ | ||||
#ifndef _SIGPROCFIX_API_MACROCOUNT_H_ | #ifndef _SIGPROCFIX_API_MACROCOUNT_H_ | |||
#define _SIGPROCFIX_API_MACROCOUNT_H_ | #define _SIGPROCFIX_API_MACROCOUNT_H_ | |||
#include <stdio.h> | #include <stdio.h> | |||
#ifdef SKP_MACRO_COUNT | #ifdef SKP_MACRO_COUNT | |||
#define varDefine SKP_int64 ops_count = 0; | #define varDefine SKP_int64 ops_count = 0; | |||
extern SKP_int64 ops_count; | extern SKP_int64 ops_count; | |||
SKP_INLINE SKP_int64 SKP_SaveCount(){ | SKP_INLINE SKP_int64 SKP_SaveCount(){ | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 27 lines changed or added | |||
SKP_Silk_MacroDebug.h | SKP_Silk_MacroDebug.h | |||
---|---|---|---|---|
/*********************************************************************** | ||||
Copyright (c) 2006-2011, Skype Limited. All rights reserved. | ||||
Redistribution and use in source and binary forms, with or without | ||||
modification, (subject to the limitations in the disclaimer below) | ||||
are permitted provided that the following conditions are met: | ||||
- Redistributions of source code must retain the above copyright notice, | ||||
this list of conditions and the following disclaimer. | ||||
- Redistributions in binary form must reproduce the above copyright | ||||
notice, this list of conditions and the following disclaimer in the | ||||
documentation and/or other materials provided with the distribution. | ||||
- Neither the name of Skype Limited, nor the names of specific | ||||
contributors, may be used to endorse or promote products derived from | ||||
this software without specific prior written permission. | ||||
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED | ||||
BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND | ||||
CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, | ||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||||
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
***********************************************************************/ | ||||
#ifndef _SIGPROCFIX_API_DEBUG_H_ | #ifndef _SIGPROCFIX_API_DEBUG_H_ | |||
#define _SIGPROCFIX_API_DEBUG_H_ | #define _SIGPROCFIX_API_DEBUG_H_ | |||
// Redefine macro functions with extensive assertion in Win32_DEBUG mode. | // Redefine macro functions with extensive assertion in Win32_DEBUG mode. | |||
// As function can't be undefined, this file can't work with SigProcFIX_Mac roCount.h | // As function can't be undefined, this file can't work with SigProcFIX_Mac roCount.h | |||
#if 0 && defined (_WIN32) && defined (_DEBUG) && !defined (SKP_MACRO_COUNT) | #if 0 && defined (_WIN32) && defined (_DEBUG) && !defined (SKP_MACRO_COUNT) | |||
#undef SKP_ADD16 | #undef SKP_ADD16 | |||
SKP_INLINE SKP_int16 SKP_ADD16(SKP_int16 a, SKP_int16 b){ | SKP_INLINE SKP_int16 SKP_ADD16(SKP_int16 a, SKP_int16 b){ | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 27 lines changed or added | |||
SKP_Silk_PLC.h | SKP_Silk_PLC.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_SDK_API.h | SKP_Silk_SDK_API.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 46 | skipping to change at line 46 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
#define SILK_MAX_FRAMES_PER_PACKET 3 | #define SILK_MAX_FRAMES_PER_PACKET 3 | |||
/* Struct for TOC (Table of Contents) */ | /* Struct for TOC (Table of Contents) */ | |||
typedef struct { | typedef struct { | |||
SKP_int framesInPacket; /* Number o | SKP_int VADFlag; /* Voice activity f | |||
f 20 ms frames in packet */ | or packet */ | |||
SKP_int fs_kHz; /* Sampling | SKP_int VADFlags[ SILK_MAX_FRAMES_PER_PACKET ]; /* Voice activity f | |||
frequency in packet */ | or each frame in packet */ | |||
SKP_int inbandLBRR; /* Does pac | SKP_int inbandFECFlag; /* Flag indicating | |||
ket contain LBRR information */ | if packet contains in-band FEC */ | |||
SKP_int corrupt; /* Packet i | ||||
s corrupt */ | ||||
SKP_int signalTypeFlags[ SILK_MAX_FRAMES_PER_PACKET ]; /* Signal t | ||||
ype for each frame in packet */ | ||||
} SKP_Silk_TOC_struct; | } SKP_Silk_TOC_struct; | |||
/****************************************/ | /****************************************/ | |||
/* Encoder functions */ | /* Encoder functions */ | |||
/****************************************/ | /****************************************/ | |||
/***********************************************/ | /***********************************************/ | |||
/* Get size in bytes of the Silk encoder state */ | /* Get size in bytes of the Silk encoder state */ | |||
/***********************************************/ | /***********************************************/ | |||
SKP_int SKP_Silk_SDK_Get_Encoder_Size( /* O: Returns err or code */ | SKP_int SKP_Silk_SDK_Get_Encoder_Size( /* O: Returns err or code */ | |||
skipping to change at line 116 | skipping to change at line 114 | |||
SKP_int SKP_Silk_SDK_InitDecoder( /* O: Returns err or code */ | SKP_int SKP_Silk_SDK_InitDecoder( /* O: Returns err or code */ | |||
void *decState /* I/O: State */ | void *decState /* I/O: State */ | |||
); | ); | |||
/******************/ | /******************/ | |||
/* Decode a frame */ | /* Decode a frame */ | |||
/******************/ | /******************/ | |||
SKP_int SKP_Silk_SDK_Decode( /* O: Returns err or code */ | SKP_int SKP_Silk_SDK_Decode( /* O: Returns err or code */ | |||
void* decState, /* I/O: State */ | void* decState, /* I/O: State */ | |||
SKP_SILK_SDK_DecControlStruct* decControl, /* I/O: Control Str ucture */ | SKP_SILK_SDK_DecControlStruct* decControl, /* I/O: Control Str ucture */ | |||
SKP_int lostFlag, /* I: 0: no loss, | SKP_int lostFlag, /* I: 0: no loss, | |||
1 loss */ | 1 loss, 2 decode fec */ | |||
SKP_int newPacketFlag, /* I: Indicates f | ||||
irst decoder call for this packet */ | ||||
ec_dec *psRangeDec, /* I/O Compressor data structure */ | ec_dec *psRangeDec, /* I/O Compressor data structure */ | |||
const SKP_int nBytesIn, /* I: Number of i nput bytes */ | const SKP_int nBytesIn, /* I: Number of i nput bytes */ | |||
SKP_int16 *samplesOut, /* O: Decoded out put speech vector */ | SKP_int16 *samplesOut, /* O: Decoded out put speech vector */ | |||
SKP_int32 *nSamplesOut /* O: Number of s amples decoded */ | SKP_int32 *nSamplesOut /* O: Number of s amples decoded */ | |||
); | ); | |||
/***************************************************************/ | /***************************************************************/ | |||
/* Find Low Bit Rate Redundancy (LBRR) information in a packet */ | /* Find Low Bit Rate Redundancy (LBRR) information in a packet */ | |||
/***************************************************************/ | /***************************************************************/ | |||
void SKP_Silk_SDK_search_for_LBRR( | void SKP_Silk_SDK_search_for_LBRR( | |||
const SKP_uint8 *inData, /* I: Encoded inp ut vector */ | const SKP_uint8 *inData, /* I: Encoded inp ut vector */ | |||
const SKP_int16 nBytesIn, /* I: Number of i nput bytes */ | const SKP_int16 nBytesIn, /* I: Number of i nput bytes */ | |||
SKP_int lost_offset, /* I: Offset from lost packet */ | SKP_int lost_offset, /* I: Offset from lost packet */ | |||
SKP_uint8 *LBRRData, /* O: LBRR payloa d */ | SKP_uint8 *LBRRData, /* O: LBRR payloa d */ | |||
SKP_int32 *nLBRRBytes /* O: Number of L BRR Bytes */ | SKP_int32 *nLBRRBytes /* O: Number of L BRR Bytes */ | |||
); | ); | |||
/**************************************/ | /**************************************/ | |||
/* Get table of contents for a packet */ | /* Get table of contents for a packet */ | |||
/**************************************/ | /**************************************/ | |||
void SKP_Silk_SDK_get_TOC( | SKP_int SKP_Silk_SDK_get_TOC( | |||
ec_dec *psRangeDec, /* I/O Compressor | const SKP_uint8 *payload, /* I Payload | |||
data structure */ | data */ | |||
const SKP_int16 nBytesIn, /* I: Number of i | const SKP_int nBytesIn, /* I: Number | |||
nput bytes */ | of input bytes */ | |||
SKP_Silk_TOC_struct *Silk_TOC /* O: Table of co | const SKP_int nFramesPerPayload, /* I: Number | |||
ntents */ | of SILK frames per payload */ | |||
SKP_Silk_TOC_struct *Silk_TOC /* O: Type of | ||||
content */ | ||||
); | ); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
20 lines changed or deleted | 20 lines changed or added | |||
SKP_Silk_SigProc_FIX.h | SKP_Silk_SigProc_FIX.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 39 | skipping to change at line 39 | |||
#define _SKP_SILK_SIGPROC_FIX_H_ | #define _SKP_SILK_SIGPROC_FIX_H_ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
//#define SKP_MACRO_COUNT /* Used to enable WMOPS counting */ | //#define SKP_MACRO_COUNT /* Used to enable WMOPS counting */ | |||
#define SKP_Silk_MAX_ORDER_LPC 16 /* max orde r of the LPC analysis in schur() and k2a() */ | #define SKP_Silk_MAX_ORDER_LPC 16 /* max orde r of the LPC analysis in schur() and k2a() */ | |||
#define SKP_Silk_MAX_CORRELATION_LENGTH 640 /* max inpu t length to the correlation */ | #define SKP_Silk_MAX_CORRELATION_LENGTH 640 /* max inpu t length to the correlation */ | |||
#include "SKP_Silk_typedef.h" | #include "SKP_Silk_typedef.h" | |||
#include <string.h> | #include <string.h> | |||
#include <stdlib.h> /* for abs() */ | #include <stdlib.h> /* for abs() */ | |||
#include "SKP_Silk_resampler_structs.h" | #include "SKP_Silk_resampler_structs.h" | |||
# include "SKP_Silk_macros.h" | # include "SKP_Silk_macros.h" | |||
/********************************************************************/ | /********************************************************************/ | |||
/* SIGNAL PROCESSING FUNCTIONS */ | /* SIGNAL PROCESSING FUNCTIONS */ | |||
/********************************************************************/ | /********************************************************************/ | |||
/*! | /*! | |||
* Initialize/reset the resampler state for a given pair of input/output sa mpling rates | * Initialize/reset the resampler state for a given pair of input/output sa mpling rates | |||
*/ | */ | |||
SKP_int SKP_Silk_resampler_init( | SKP_int SKP_Silk_resampler_init( | |||
SKP_Silk_resampler_state_struct *S, /* I/O: Resample r state */ | SKP_Silk_resampler_state_struct *S, /* I/O: Resa mpler state */ | |||
SKP_int32 Fs_H z_in, /* I: Input sampling rate (Hz) */ | SKP_int32 Fs_H z_in, /* I: Input sampling rate (Hz) */ | |||
SKP_int32 Fs_H z_out /* I: Output sampling rate (Hz) */ | SKP_int32 Fs_H z_out /* I: Output sampling rate (Hz) */ | |||
); | ); | |||
/*! | /*! | |||
* Clear the states of all resampling filters, without resetting sampling r ate ratio | * Clear the states of all resampling filters, without resetting sampling r ate ratio | |||
*/ | */ | |||
SKP_int SKP_Silk_resampler_clear( | SKP_int SKP_Silk_resampler_clear( | |||
SKP_Silk_resampler_state_struct *S /* I/O: Resample r state */ | SKP_Silk_resampler_state_struct *S /* I/O: Resa mpler state */ | |||
); | ); | |||
/*! | /*! | |||
* Resampler: convert from one sampling rate to another | * Resampler: convert from one sampling rate to another | |||
*/ | */ | |||
SKP_int SKP_Silk_resampler( | SKP_int SKP_Silk_resampler( | |||
SKP_Silk_resampler_state_struct *S, /* I/O: Resample r state */ | SKP_Silk_resampler_state_struct *S, /* I/O: Resa mpler state */ | |||
SKP_int16 out[ ], /* O: Output signal */ | SKP_int16 out[ ], /* O: Output signal */ | |||
const SKP_int16 in[], /* I: Input signal */ | const SKP_int16 in[], /* I: Input signal */ | |||
SKP_int32 inLe n /* I: Number of input samples */ | SKP_int32 inLe n /* I: Number of input samples */ | |||
); | ); | |||
/*! | /*! | |||
Upsample 2x, low quality | Upsample 2x, low quality | |||
*/ | */ | |||
void SKP_Silk_resampler_up2( | void SKP_Silk_resampler_up2( | |||
SKP_int32 *S, /* I/O: State vector [ 2 ] */ | SKP_int32 *S, /* I/O: State vector [ 2 ] */ | |||
skipping to change at line 174 | skipping to change at line 174 | |||
*/ | */ | |||
void SKP_Silk_MA_Prediction( | void SKP_Silk_MA_Prediction( | |||
const SKP_int16 *in, /* I: Input signal */ | const SKP_int16 *in, /* I: Input signal */ | |||
const SKP_int16 *B, /* I: MA prediction coefficients, Q12 [order] */ | const SKP_int16 *B, /* I: MA prediction coefficients, Q12 [order] */ | |||
SKP_int32 *S, /* I/O: State vector [order] */ | SKP_int32 *S, /* I/O: State vector [order] */ | |||
SKP_int16 *out, /* O: Output signal */ | SKP_int16 *out, /* O: Output signal */ | |||
const SKP_int32 len, /* I: Signal length */ | const SKP_int32 len, /* I: Signal length */ | |||
const SKP_int32 order /* I: Filter order */ | const SKP_int32 order /* I: Filter order */ | |||
); | ); | |||
void SKP_Silk_MA_Prediction_Q13( | ||||
const SKP_int16 *in, /* I: input signal | ||||
*/ | ||||
const SKP_int16 *B, /* I: MA prediction coefficients, | ||||
Q13 [order] */ | ||||
SKP_int32 *S, /* I/O: state vector [order] | ||||
*/ | ||||
SKP_int16 *out, /* O: output signal | ||||
*/ | ||||
SKP_int32 len, /* I: signal length | ||||
*/ | ||||
SKP_int32 order /* I: filter order | ||||
*/ | ||||
); | ||||
/*! | /*! | |||
* 16th order AR filter for LPC synthesis, coefficients are in Q12 | * 16th order AR filter for LPC synthesis, coefficients are in Q12 | |||
*/ | */ | |||
void SKP_Silk_LPC_synthesis_order16( | void SKP_Silk_LPC_synthesis_order16( | |||
const SKP_int16 *in, /* I: excitation signal */ | const SKP_int16 *in, /* I: excitation signal */ | |||
const SKP_int16 *A_Q12, /* I: AR coefficients [16], betwee n -8_Q0 and 8_Q0 */ | const SKP_int16 *A_Q12, /* I: AR coefficients [16], betwee n -8_Q0 and 8_Q0 */ | |||
const SKP_int32 Gain_Q26, /* I: gain */ | const SKP_int32 Gain_Q26, /* I: gain */ | |||
SKP_int32 *S, /* I/O: state vector [16] */ | SKP_int32 *S, /* I/O: state vector [16] */ | |||
SKP_int16 *out, /* O: output signal */ | SKP_int16 *out, /* O: output signal */ | |||
const SKP_int32 len /* I: signal length, must be multi ple of 16 */ | const SKP_int32 len /* I: signal length, must be multi ple of 16 */ | |||
); | ); | |||
/* variable order MA prediction error filter. */ | /* variable order MA prediction error filter. */ | |||
/* Inverse filter of SKP_Silk_LPC_synthesis_filter */ | /* Inverse filter of SKP_Silk_LPC_synthesis_filter */ | |||
void SKP_Silk_LPC_analysis_filter( | void SKP_Silk_LPC_analysis_filter( | |||
SKP_int16 *out, /* O: Output signal */ | ||||
const SKP_int16 *in, /* I: Input signal */ | const SKP_int16 *in, /* I: Input signal */ | |||
const SKP_int16 *B, /* I: MA prediction coefficients, Q12 [order] */ | const SKP_int16 *B, /* I: MA prediction coefficients, Q12 [order] */ | |||
SKP_int16 *S, /* I/O: State vector [order] | ||||
*/ | ||||
SKP_int16 *out, /* O: Output signal | ||||
*/ | ||||
const SKP_int32 len, /* I: Signal length */ | const SKP_int32 len, /* I: Signal length */ | |||
const SKP_int32 Order /* I: Filter order */ | const SKP_int32 Order /* I: Filter order */ | |||
); | ); | |||
/* even order AR filter */ | /* even order AR filter */ | |||
void SKP_Silk_LPC_synthesis_filter( | void SKP_Silk_LPC_synthesis_filter( | |||
const SKP_int16 *in, /* I: excitation signal */ | const SKP_int16 *in, /* I: excitation signal */ | |||
const SKP_int16 *A_Q12, /* I: AR coefficients [Order], bet ween -8_Q0 and 8_Q0 */ | const SKP_int16 *A_Q12, /* I: AR coefficients [Order], bet ween -8_Q0 and 8_Q0 */ | |||
const SKP_int32 Gain_Q26, /* I: gain */ | const SKP_int32 Gain_Q26, /* I: gain */ | |||
SKP_int32 *S, /* I/O: state vector [Order] */ | SKP_int32 *S, /* I/O: state vector [Order] */ | |||
skipping to change at line 344 | skipping to change at line 334 | |||
const SKP_int inputDataSize, /* I Length of input */ | const SKP_int inputDataSize, /* I Length of input */ | |||
const SKP_int correlationCount /* I Number of correlation taps t o compute */ | const SKP_int correlationCount /* I Number of correlation taps t o compute */ | |||
); | ); | |||
/* Pitch estimator */ | /* Pitch estimator */ | |||
#define SKP_Silk_PE_MIN_COMPLEX 0 | #define SKP_Silk_PE_MIN_COMPLEX 0 | |||
#define SKP_Silk_PE_MID_COMPLEX 1 | #define SKP_Silk_PE_MID_COMPLEX 1 | |||
#define SKP_Silk_PE_MAX_COMPLEX 2 | #define SKP_Silk_PE_MAX_COMPLEX 2 | |||
void SKP_Silk_decode_pitch( | void SKP_Silk_decode_pitch( | |||
SKP_int lagIndex, /* I | SKP_int16 lagIndex, /* I | |||
*/ | */ | |||
SKP_int contourIndex, /* O | SKP_int8 contourIndex, /* O | |||
*/ | */ | |||
SKP_int pitch_lags[], /* O 4 pitch values */ | SKP_int pitch_lags[], /* O 4 pitch values */ | |||
const SKP_int Fs_kHz, /* I sampling frequenc y (kHz) */ | const SKP_int Fs_kHz, /* I sampling frequenc y (kHz) */ | |||
const SKP_int nb_subfr /* I number of sub fra mes */ | const SKP_int nb_subfr /* I number of sub fra mes */ | |||
); | ); | |||
SKP_int SKP_Silk_pitch_analysis_core( /* O Voicing estimate: 0 voiced, | SKP_int SKP_Silk_pitch_analysis_core( /* O Voicing estimate: 0 voiced | |||
1 unvoiced */ | , 1 unvoiced */ | |||
const SKP_int16 *signal, /* I Signal of length PE_FRAME_ | const SKP_int16 *signal, /* I Signal of length PE_FRAME_ | |||
LENGTH_MS*Fs_kHz */ | LENGTH_MS*Fs_kHz */ | |||
SKP_int *pitch_out, /* O 4 pitch lag values | SKP_int *pitch_out, /* O 4 pitch lag values | |||
*/ | */ | |||
SKP_int *lagIndex, /* O Lag Index | SKP_int16 *lagIndex, /* O Lag Index | |||
*/ | */ | |||
SKP_int *contourIndex, /* O Pitch contour Index | SKP_int8 *contourIndex, /* O Pitch contour Index | |||
*/ | */ | |||
SKP_int *LTPCorr_Q15, /* I/O Normalized correlation; in | SKP_int *LTPCorr_Q15, /* I/O Normalized correlation; in | |||
put: value from previous frame */ | put: value from previous frame */ | |||
SKP_int prevLag, /* I Last lag of previous frame | SKP_int prevLag, /* I Last lag of previous frame | |||
; set to zero is unvoiced */ | ; set to zero is unvoiced */ | |||
const SKP_int32 search_thres1_Q16, /* I First stage threshold for | const SKP_int32 search_thres1_Q16, /* I First stage threshold for | |||
lag candidates 0 - 1 */ | lag candidates 0 - 1 */ | |||
const SKP_int search_thres2_Q15, /* I Final threshold for lag ca | const SKP_int search_thres2_Q15, /* I Final threshold for lag ca | |||
ndidates 0 - 1 */ | ndidates 0 - 1 */ | |||
const SKP_int Fs_kHz, /* I Sample frequency (kHz) | const SKP_int Fs_kHz, /* I Sample frequency (kHz) | |||
*/ | */ | |||
const SKP_int complexity, /* I Complexity setting, 0-2, w | const SKP_int complexity, /* I Complexity setting, 0-2, w | |||
here 2 is highest */ | here 2 is highest */ | |||
const SKP_int nb_subfr /* I number of 5 ms subframes | const SKP_int nb_subfr /* I number of 5 ms subframes | |||
*/ | */ | |||
); | ); | |||
/* parameter defining the size and accuracy of the piecewise linear */ | /* parameter defining the size and accuracy of the piecewise linear */ | |||
/* cosine approximatin table. */ | /* cosine approximatin table. */ | |||
#define LSF_COS_TAB_SZ_FIX 128 | #define LSF_COS_TAB_SZ_FIX 128 | |||
/* rom table with cosine values */ | /* rom table with cosine values */ | |||
extern const SKP_int SKP_Silk_LSFCosTab_FIX_Q12[ LSF_COS_TAB_SZ_FIX + 1 ]; | extern const SKP_int SKP_Silk_LSFCosTab_FIX_Q12[ LSF_COS_TAB_SZ_FIX + 1 ]; | |||
void SKP_Silk_LPC_fit( | void SKP_Silk_LPC_fit( | |||
SKP_int16 *a_QQ, /* O stabilized LPC vector, Q(2 | SKP_int16 *a_QQ, /* O stabilized LPC vector, Q(2 | |||
4-rshift) [L] */ | 4-rshift) [L] */ | |||
SKP_int32 *a_Q24, /* I LPC vector [L] | SKP_int32 *a_Q24, /* I LPC vector [L] | |||
*/ | */ | |||
const SKP_int QQ, /* I Q domain of output LPC vec | const SKP_int QQ, /* I Q domain of output LPC vec | |||
tor */ | tor */ | |||
const SKP_int L /* I Number of LPC parameters i | const SKP_int L /* I Number of LPC parameters i | |||
n the input vector */ | n the input vector */ | |||
); | ); | |||
/* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filt | /* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filt | |||
er coefficients */ | er coefficients */ | |||
/* If not all roots are found, the a_Q16 coefficients are bandwidth expande | /* If not all roots are found, the a_Q16 coefficients are bandwidth expande | |||
d until convergence. */ | d until convergence. */ | |||
void SKP_Silk_A2NLSF( | void SKP_Silk_A2NLSF( | |||
SKP_int *NLSF, /* O Normalized Line Spectral F requencies, Q15 (0 - (2^15-1)), [d] */ | SKP_int *NLSF, /* O Normalized Line Spectral F requencies, Q15 (0 - (2^15-1)), [d] */ | |||
SKP_int32 *a_Q16, /* I/O Monic whitening filter coe fficients in Q16 [d] */ | SKP_int32 *a_Q16, /* I/O Monic whitening filter coe fficients in Q16 [d] */ | |||
const SKP_int d /* I Filter order (must be even ) */ | const SKP_int d /* I Filter order (must be even ) */ | |||
); | ); | |||
/* compute whitening filter coefficients from normalized line spectral freq uencies */ | /* compute whitening filter coefficients from normalized line spectral freq uencies */ | |||
void SKP_Silk_NLSF2A( | void SKP_Silk_NLSF2A( | |||
SKP_int16 *a, /* o monic whitening filter coe fficients in Q12, [d] */ | SKP_int16 *a, /* o monic whitening filter coe fficients in Q12, [d] */ | |||
const SKP_int *NLSF, /* i normalized line spectral f requencies in Q15, [d] */ | const SKP_int *NLSF, /* i normalized line spectral f requencies in Q15, [d] */ | |||
skipping to change at line 547 | skipping to change at line 537 | |||
/* Allocate SKP_int16 alligned to 4-byte memory address */ | /* Allocate SKP_int16 alligned to 4-byte memory address */ | |||
#if EMBEDDED_ARM | #if EMBEDDED_ARM | |||
#define SKP_DWORD_ALIGN __attribute__((aligned(4))) | #define SKP_DWORD_ALIGN __attribute__((aligned(4))) | |||
#else | #else | |||
#define SKP_DWORD_ALIGN | #define SKP_DWORD_ALIGN | |||
#endif | #endif | |||
/* Useful Macros that can be adjusted to other platforms */ | /* Useful Macros that can be adjusted to other platforms */ | |||
#define SKP_memcpy(a, b, c) memcpy((a), (b), (c)) /* Dest , Src, ByteCount */ | #define SKP_memcpy(a, b, c) memcpy((a), (b), (c)) /* Dest , Src, ByteCount */ | |||
#define SKP_memset(a, b, c) memset((a), (b), (c)) /* Dest , value, ByteCount */ | #define SKP_memset(a, b, c) memset((a), (b), (c)) /* Dest , value, ByteCount */ | |||
#define SKP_memmove(a, b, c) memmove((a), (b), (c)) /* Des t, Src, ByteCount */ | #define SKP_memmove(a, b, c) memmove((a), (b), (c)) /* Dest , Src, ByteCount */ | |||
/* fixed point macros */ | /* fixed point macros */ | |||
// (a32 * b32) output have to be 32bit int | // (a32 * b32) output have to be 32bit int | |||
#define SKP_MUL(a32, b32) ((a32) * (b32)) | #define SKP_MUL(a32, b32) ((a32) * (b32)) | |||
// (a32 * b32) output have to be 32bit uint | // (a32 * b32) output have to be 32bit uint | |||
#define SKP_MUL_uint(a32, b32) SKP_MUL(a32, b32) | #define SKP_MUL_uint(a32, b32) SKP_MUL(a32, b32) | |||
// a32 + (b32 * c32) output have to be 32bit int | // a32 + (b32 * c32) output have to be 32bit int | |||
#define SKP_MLA(a32, b32, c32) SKP_ADD32((a32),((b32) * (c32))) | #define SKP_MLA(a32, b32, c32) SKP_ADD32((a32),((b32) * (c32))) | |||
skipping to change at line 729 | skipping to change at line 719 | |||
#define SKP_abs_int32(a) (((a) ^ ((a) >> 31)) - ((a) >> 31) ) | #define SKP_abs_int32(a) (((a) ^ ((a) >> 31)) - ((a) >> 31) ) | |||
#define SKP_abs_int64(a) (((a) > 0) ? (a) : -(a)) | #define SKP_abs_int64(a) (((a) > 0) ? (a) : -(a)) | |||
#define SKP_sign(a) ((a) > 0 ? 1 : ( (a) < 0 ? -1 : 0 )) | #define SKP_sign(a) ((a) > 0 ? 1 : ( (a) < 0 ? -1 : 0 )) | |||
#define SKP_sqrt(a) (sqrt(a)) | #define SKP_sqrt(a) (sqrt(a)) | |||
/* PSEUDO-RANDOM GENERATOR */ | /* PSEUDO-RANDOM GENERATOR */ | |||
/* Make sure to store the result as the seed for the next call (also in bet ween */ | /* Make sure to store the result as the seed for the next call (also in bet ween */ | |||
/* frames), otherwise result won't be random at all. When only using some o f the */ | /* frames), otherwise result won't be random at all. When only using some o f the */ | |||
/* bits, take the most significant bits by right-shifting. Do not just mask | /* bits, take the most significant bits by right-shifting. | |||
off */ | */ | |||
/* the lowest bits. | ||||
*/ | ||||
#define SKP_RAND(seed) (SKP_MLA_ovflw(907633515, (seed), 196314165)) | #define SKP_RAND(seed) (SKP_MLA_ovflw(907633515, (seed), 196314165)) | |||
// Add some multiplication functions that can be easily mapped to ARM. | // Add some multiplication functions that can be easily mapped to ARM. | |||
// SKP_SMMUL: Signed top word multiply. | // SKP_SMMUL: Signed top word multiply. | |||
// ARMv6 2 instruction cycles. | // ARMv6 2 instruction cycles. | |||
// ARMv3M+ 3 instruction cycles. use SMULL and ignore LSB reg isters.(except xM) | // ARMv3M+ 3 instruction cycles. use SMULL and ignore LSB reg isters.(except xM) | |||
//#define SKP_SMMUL(a32, b32) (SKP_int32)SKP_RSHIFT(SKP_SMLAL(SK P_SMULWB((a32), (b32)), (a32), SKP_RSHIFT_ROUND((b32), 16)), 16) | //#define SKP_SMMUL(a32, b32) (SKP_int32)SKP_RSHIFT(SKP_SMLAL(SK P_SMULWB((a32), (b32)), (a32), SKP_RSHIFT_ROUND((b32), 16)), 16) | |||
// the following seems faster on x86 | // the following seems faster on x86 | |||
#define SKP_SMMUL(a32, b32) (SKP_int32)SKP_RSHIFT64(SKP_SMULL( (a32), (b32)), 32) | #define SKP_SMMUL(a32, b32) (SKP_int32)SKP_RSHIFT64(SKP_SMULL( (a32), (b32)), 32) | |||
End of changes. 14 change blocks. | ||||
69 lines changed or deleted | 49 lines changed or added | |||
SKP_Silk_SigProc_FLP.h | SKP_Silk_SigProc_FLP.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 32 | skipping to change at line 32 | |||
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
***********************************************************************/ | ***********************************************************************/ | |||
#ifndef _SKP_SILK_SIGPROC_FLP_H_ | #ifndef _SKP_SILK_SIGPROC_FLP_H_ | |||
#define _SKP_SILK_SIGPROC_FLP_H_ | #define _SKP_SILK_SIGPROC_FLP_H_ | |||
#include "SKP_Silk_SigProc_FIX.h" | #include "SKP_Silk_SigProc_FIX.h" | |||
#include "float_cast.h" | ||||
#include <math.h> | #include <math.h> | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
/********************************************************************/ | /********************************************************************/ | |||
/* SIGNAL PROCESSING FUNCTIONS */ | /* SIGNAL PROCESSING FUNCTIONS */ | |||
/********************************************************************/ | /********************************************************************/ | |||
/* first-order allpass filter */ | ||||
void SKP_Silk_allpass_int_FLP( | ||||
const SKP_float *in, /* I: input signal [len] | ||||
*/ | ||||
SKP_float *S, /* I/O: state [1] | ||||
*/ | ||||
SKP_float A, /* I: coefficient (0 <= A < 1) | ||||
*/ | ||||
SKP_float *out, /* O: output signal [len] | ||||
*/ | ||||
const SKP_int32 len /* I: number of samples | ||||
*/ | ||||
); | ||||
/* downsample by a factor 2, coarser */ | ||||
void SKP_Silk_decimate2_coarse_FLP( | ||||
const SKP_float *in, /* I: signal [2*len] | ||||
*/ | ||||
SKP_float *S, /* I/O: state vector [2] * | ||||
/ | ||||
SKP_float *out, /* O: decimated signal [len] * | ||||
/ | ||||
SKP_float *scratch, /* I: scratch memory [3*len] * | ||||
/ | ||||
const SKP_int32 len /* I: number of OUTPUT samples * | ||||
/ | ||||
); | ||||
/* downsample by a factor 2, coarsest */ | ||||
void SKP_Silk_decimate2_coarsest_FLP( | ||||
const SKP_float *in, /* I: signal [2*len] | ||||
*/ | ||||
SKP_float *S, /* I/O: state vector [2] * | ||||
/ | ||||
SKP_float *out, /* O: decimated signal [len] * | ||||
/ | ||||
SKP_float *scratch, /* I: scratch memory [3*len] * | ||||
/ | ||||
const SKP_int32 len /* I: number of OUTPUT samples * | ||||
/ | ||||
); | ||||
/* Chirp (bw expand) LP AR filter */ | /* Chirp (bw expand) LP AR filter */ | |||
void SKP_Silk_bwexpander_FLP( | void SKP_Silk_bwexpander_FLP( | |||
SKP_float *ar, /* io AR filter to be expanded (wi thout leading 1) */ | SKP_float *ar, /* io AR filter to be expanded (wi thout leading 1) */ | |||
const SKP_int d, /* i length of ar */ | const SKP_int d, /* i length of ar */ | |||
const SKP_float chirp /* i chirp factor (typically in r ange (0..1) ) */ | const SKP_float chirp /* i chirp factor (typically in r ange (0..1) ) */ | |||
); | ); | |||
/* compute inverse of LPC prediction gain, and */ | /* compute inverse of LPC prediction gain, and */ | |||
/* test if LPC coefficients are stable (all poles within unit circle) */ | /* test if LPC coefficients are stable (all poles within unit circle) */ | |||
/* this code is based on SKP_Silk_FLP_a2k() */ | /* this code is based on SKP_Silk_FLP_a2k() */ | |||
skipping to change at line 119 | skipping to change at line 93 | |||
SKP_int inputDataSize, /* i length of input */ | SKP_int inputDataSize, /* i length of input */ | |||
SKP_int correlationCount /* i number of correlation taps to compute */ | SKP_int correlationCount /* i number of correlation taps to compute */ | |||
); | ); | |||
/* Pitch estimator */ | /* Pitch estimator */ | |||
#define SigProc_PE_MIN_COMPLEX 0 | #define SigProc_PE_MIN_COMPLEX 0 | |||
#define SigProc_PE_MID_COMPLEX 1 | #define SigProc_PE_MID_COMPLEX 1 | |||
#define SigProc_PE_MAX_COMPLEX 2 | #define SigProc_PE_MAX_COMPLEX 2 | |||
SKP_int SKP_Silk_pitch_analysis_core_FLP( /* O voicing estimate: 0 voiced, 1 unvoiced */ | SKP_int SKP_Silk_pitch_analysis_core_FLP( /* O voicing estimate: 0 voiced, 1 unvoiced */ | |||
const SKP_float *signal, /* I signal of length PE_FRAME_LENG TH_MS*Fs_kHz */ | const SKP_float *signal, /* I signal of length PE_FRAME_LENG TH_MS*Fs_kHz */ | |||
SKP_int *pitch_out, /* O 4 pitch lag values */ | SKP_int *pitch_out, /* O 4 pitch lag values */ | |||
SKP_int *lagIndex, /* O lag Index | SKP_int16 *lagIndex, /* O lag Index | |||
*/ | */ | |||
SKP_int *contourIndex, /* O pitch contour Index | SKP_int8 *contourIndex, /* O pitch contour Index | |||
*/ | */ | |||
SKP_float *LTPCorr, /* I/O normalized correlation; inpu t: value from previous frame */ | SKP_float *LTPCorr, /* I/O normalized correlation; inpu t: value from previous frame */ | |||
SKP_int prevLag, /* I last lag of previous frame; se t to zero is unvoiced */ | SKP_int prevLag, /* I last lag of previous frame; se t to zero is unvoiced */ | |||
const SKP_float search_thres1, /* I first stage threshold for lag candidates 0 - 1 */ | const SKP_float search_thres1, /* I first stage threshold for lag candidates 0 - 1 */ | |||
const SKP_float search_thres2, /* I final threshold for lag candid ates 0 - 1 */ | const SKP_float search_thres2, /* I final threshold for lag candid ates 0 - 1 */ | |||
const SKP_int Fs_kHz, /* I sample frequency (kHz) */ | const SKP_int Fs_kHz, /* I sample frequency (kHz) */ | |||
const SKP_int complexity, /* I Complexity setting, 0-2, where 2 is highest */ | const SKP_int complexity, /* I Complexity setting, 0-2, where 2 is highest */ | |||
const SKP_int nb_subfr /* I number of 5 ms subframes */ | const SKP_int nb_subfr /* I number of 5 ms subframes */ | |||
); | ); | |||
#define PI (3.1415926536f) | #define PI (3.1415926536f) | |||
skipping to change at line 211 | skipping to change at line 185 | |||
#define SKP_LIMIT_float( a, limit1, limit2) ((limit1) > (limit2) ? ((a) > (limit1) ? (limit1) : ((a) < (limit2) ? (limit2) : (a))) \ | #define SKP_LIMIT_float( a, limit1, limit2) ((limit1) > (limit2) ? ((a) > (limit1) ? (limit1) : ((a) < (limit2) ? (limit2) : (a))) \ | |||
: ((a) > (limit2) ? (limit 2) : ((a) < (limit1) ? (limit1) : (a)))) | : ((a) > (limit2) ? (limit 2) : ((a) < (limit1) ? (limit1) : (a)))) | |||
/* sigmoid function */ | /* sigmoid function */ | |||
SKP_INLINE SKP_float SKP_sigmoid(SKP_float x) | SKP_INLINE SKP_float SKP_sigmoid(SKP_float x) | |||
{ | { | |||
return (SKP_float)(1.0 / (1.0 + exp(-x))); | return (SKP_float)(1.0 / (1.0 + exp(-x))); | |||
} | } | |||
/* floating-point to integer conversion (rounding) */ | /* floating-point to integer conversion (rounding) */ | |||
#if 1 | ||||
/* use implementation in float_cast.h */ | ||||
#define SKP_float2int(x) float2int(x) | ||||
#else | ||||
SKP_INLINE SKP_int32 SKP_float2int(SKP_float x) | ||||
{ | ||||
double y = x; | ||||
return (SKP_int32)( ( y > 0 ) ? y + 0.5 : y - 0.5 ); | ||||
} | ||||
#endif | ||||
/* floating-point to integer conversion (rounding) */ | ||||
SKP_INLINE void SKP_float2short_array( | SKP_INLINE void SKP_float2short_array( | |||
SKP_int16 *out, | SKP_int16 *out, | |||
const SKP_float *in, | const SKP_float *in, | |||
SKP_int32 length | SKP_int32 length | |||
) | ) | |||
{ | { | |||
SKP_int32 k; | SKP_int32 k; | |||
for (k = length-1; k >= 0; k--) { | for (k = length-1; k >= 0; k--) { | |||
double x = in[k]; | out[k] = (SKP_int16)SKP_SAT16( float2int( in[k] ) ); | |||
out[k] = (SKP_int16)SKP_SAT16( ( x > 0 ) ? x + 0.5 : x - 0.5 ); | ||||
} | } | |||
} | } | |||
/* floating-point to integer conversion (rounding) */ | ||||
SKP_INLINE SKP_int32 SKP_float2int(double x) | ||||
{ | ||||
return (SKP_int32)( ( x > 0 ) ? x + 0.5 : x - 0.5 ); | ||||
} | ||||
/* integer to floating-point conversion */ | /* integer to floating-point conversion */ | |||
SKP_INLINE void SKP_short2float_array( | SKP_INLINE void SKP_short2float_array( | |||
SKP_float *out, | SKP_float *out, | |||
const SKP_int16 *in, | const SKP_int16 *in, | |||
SKP_int32 length | SKP_int32 length | |||
) | ) | |||
{ | { | |||
SKP_int32 k; | SKP_int32 k; | |||
for (k = length-1; k >= 0; k--) { | for (k = length-1; k >= 0; k--) { | |||
out[k] = (SKP_float)in[k]; | out[k] = (SKP_float)in[k]; | |||
End of changes. 8 change blocks. | ||||
56 lines changed or deleted | 20 lines changed or added | |||
SKP_Silk_assembler_FLP.h | SKP_Silk_assembler_FLP.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_control.h | SKP_Silk_control.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 45 | skipping to change at line 45 | |||
{ | { | |||
#endif | #endif | |||
/***********************************************/ | /***********************************************/ | |||
/* Structure for controlling encoder operation */ | /* Structure for controlling encoder operation */ | |||
/***********************************************/ | /***********************************************/ | |||
typedef struct { | typedef struct { | |||
/* I: Input signal sampling rate in Hertz; 8000/12000/16000/24000/320 00/44100/48000 */ | /* I: Input signal sampling rate in Hertz; 8000/12000/16000/24000/320 00/44100/48000 */ | |||
SKP_int32 API_sampleRate; | SKP_int32 API_sampleRate; | |||
/* I: Maximum internal sampling rate in Hertz; 8000/12000/16000/24000 */ | /* I: Maximum internal sampling rate in Hertz; 8000/12000/16000 */ | |||
SKP_int32 maxInternalSampleRate; | SKP_int32 maxInternalSampleRate; | |||
/* I: Minimum internal sampling rate in Hertz; 8000/12000/16000/24000 */ | /* I: Minimum internal sampling rate in Hertz; 8000/12000/16000 */ | |||
SKP_int32 minInternalSampleRate; | SKP_int32 minInternalSampleRate; | |||
/* I: Number of samples per packet in milliseconds; 10/20/40/60 */ | /* I: Number of samples per packet in milliseconds; 10/20/40/60 */ | |||
SKP_int payloadSize_ms; | SKP_int payloadSize_ms; | |||
/* I: Bitrate during active speech in bits/second; internally limited */ | /* I: Bitrate during active speech in bits/second; internally limited */ | |||
SKP_int32 bitRate; | SKP_int32 bitRate; | |||
/* I: Uplink packet loss in percent (0-100) */ | /* I: Uplink packet loss in percent (0-100) */ | |||
SKP_int packetLossPercentage; | SKP_int packetLossPercentage; | |||
skipping to change at line 72 | skipping to change at line 72 | |||
/* I: Flag to enable in-band Forward Error Correction (FEC); 0/1 */ | /* I: Flag to enable in-band Forward Error Correction (FEC); 0/1 */ | |||
SKP_int useInBandFEC; | SKP_int useInBandFEC; | |||
/* I: Flag to enable discontinuous transmission (DTX); 0/1 */ | /* I: Flag to enable discontinuous transmission (DTX); 0/1 */ | |||
SKP_int useDTX; | SKP_int useDTX; | |||
/* I: Flag to use constant bitrate */ | /* I: Flag to use constant bitrate */ | |||
SKP_int useCBR; | SKP_int useCBR; | |||
/* O: Internal sampling rate used, in Hertz; 8000/12000/16000/24000 */ | /* O: Internal sampling rate used, in Hertz; 8000/12000/16000 */ | |||
SKP_int32 internalSampleRate; | SKP_int32 internalSampleRate; | |||
} SKP_SILK_SDK_EncControlStruct; | } SKP_SILK_SDK_EncControlStruct; | |||
/************************************************************************** / | /************************************************************************** / | |||
/* Structure for controlling decoder operation and reading decoder status * / | /* Structure for controlling decoder operation and reading decoder status * / | |||
/************************************************************************** / | /************************************************************************** / | |||
typedef struct { | typedef struct { | |||
/* I: Output signal sampling rate in Hertz; 8000/12000/16000/24000/32 000/44100/48000 */ | /* I: Output signal sampling rate in Hertz; 8000/12000/16000/24000/32 000/44100/48000 */ | |||
SKP_int32 API_sampleRate; | SKP_int32 API_sampleRate; | |||
/* I: Number of samples per packet in milliseconds; 10/20/40/60 */ | /* I: Number of samples per packet in milliseconds; 10/20/40/60 */ | |||
SKP_int payloadSize_ms; | SKP_int payloadSize_ms; | |||
/* I: Internal sampling rate used, in Hertz; 8000/12000/16000/24000 */ | /* I: Internal sampling rate used, in Hertz; 8000/12000/16000 */ | |||
SKP_int32 internalSampleRate; | SKP_int32 internalSampleRate; | |||
/* O: Number of samples per frame */ | /* O: Number of samples per frame */ | |||
SKP_int frameSize; | SKP_int frameSize; | |||
/* O: Frames per payload 1, 2, 3 */ | /* O: Frames per payload 1, 2, 3 */ | |||
SKP_int framesPerPayload; | SKP_int framesPerPayload; | |||
/* O: Flag to indicate that the decoder has remaining payloads intern | ||||
ally */ | ||||
SKP_int moreInternalDecoderFrames; | ||||
/* O: Distance between main payload and redundant payload in packets | ||||
*/ | ||||
SKP_int inBandFECOffset; | ||||
} SKP_SILK_SDK_DecControlStruct; | } SKP_SILK_SDK_DecControlStruct; | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
13 lines changed or deleted | 5 lines changed or added | |||
SKP_Silk_define.h | SKP_Silk_define.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 51 | skipping to change at line 51 | |||
#endif | #endif | |||
#define MAX_FRAMES_PER_PACKET 3 | #define MAX_FRAMES_PER_PACKET 3 | |||
#ifndef FIXED_POINT | #ifndef FIXED_POINT | |||
# define FIXED_POINT 0 | # define FIXED_POINT 0 | |||
#endif | #endif | |||
/* Limits on bitrate */ | /* Limits on bitrate */ | |||
#define MIN_TARGET_RATE_BPS 5000 | #define MIN_TARGET_RATE_BPS 5000 | |||
#define MAX_TARGET_RATE_BPS SKP_uint16_MAX | #define MAX_TARGET_RATE_BPS 80000 | |||
/* Compensation in bitrate calculations for 10 ms modes */ | /* Compensation in bitrate calculations for 10 ms modes */ | |||
#define REDUCE_BITRATE_10_MS_BPS 2200 | #define REDUCE_BITRATE_10_MS_BPS 2200 | |||
/* Transition bitrates between modes */ | /* Transition bitrates between modes */ | |||
#define WB2MB_BITRATE_BPS 12000 | #define WB2MB_BITRATE_BPS 12000 | |||
#define MB2WB_BITRATE_BPS 16000 | #define MB2WB_BITRATE_BPS 16000 | |||
#define MB2NB_BITRATE_BPS 9000 | #define MB2NB_BITRATE_BPS 9000 | |||
#define NB2MB_BITRATE_BPS 12000 | #define NB2MB_BITRATE_BPS 12000 | |||
/* Integration/hysteresis threshold for lowering internal sample frequency */ | /* Integration/hysteresis threshold for lowering internal sample frequency */ | |||
/* 30000000 -> 6 sec if bitrate is 5000 bps below limit; 3 sec if bitrate i s 10000 bps below limit */ | /* 30000000 -> 6 sec if bitrate is 5000 bps below limit; 3 sec if bitrate i s 10000 bps below limit */ | |||
#define ACCUM_BITS_DIFF_THRESHOLD 30000000 | #define ACCUM_BITS_DIFF_THRESHOLD 30000000 | |||
#define TARGET_RATE_TAB_SZ 8 | #define TARGET_RATE_TAB_SZ 8 | |||
/* DTX settings */ | /* DTX settings */ | |||
#define NO_SPEECH_FRAMES_BEFORE_DTX 5 /* eq 100 ms */ | #define NO_SPEECH_FRAMES_BEFORE_DTX 5 /* eq 100 ms */ | |||
#define MAX_CONSECUTIVE_DTX 20 /* eq 400 ms */ | #define MAX_CONSECUTIVE_DTX 20 /* eq 400 ms */ | |||
#define USE_LBRR 0 | /* LBRR thresholds */ | |||
#define LBRR_NB_MIN_RATE_BPS 9000 | ||||
/* Amount of concecutive no FEC packets before telling JB */ | #define LBRR_MB_MIN_RATE_BPS 12000 | |||
#define NO_LBRR_THRES 10 | #define LBRR_WB_MIN_RATE_BPS 15000 | |||
/* Maximum delay between real packet and LBRR packet */ | ||||
#define MAX_LBRR_DELAY 2 | ||||
#define LBRR_IDX_MASK 1 | ||||
#define INBAND_FEC_MIN_RATE_BPS 18000 /* Dont use inband F | ||||
EC below this total target rate */ | ||||
#define LBRR_LOSS_THRES 2 /* Start adding LBRR at | ||||
this loss rate (needs tuning) */ | ||||
/* Frame termination indicator defines */ | ||||
#define SKP_SILK_NO_LBRR 0 | ||||
#define SKP_SILK_LBRR 1 | ||||
/* Activate bandwidth transition filtering for mode switching */ | /* Activate bandwidth transition filtering for mode switching */ | |||
#define SWITCH_TRANSITION_FILTERING 1 | #define SWITCH_TRANSITION_FILTERING 1 | |||
/* Decoder Parameters */ | /* Decoder Parameters */ | |||
#define DEC_HP_ORDER 2 | #define DEC_HP_ORDER 2 | |||
/* Maximum sampling frequency, should be 16 for embedded */ | /* Maximum sampling frequency, should be 16 for embedded */ | |||
#define MAX_FS_KHZ 16 | #define MAX_FS_KHZ 16 | |||
#define MAX_API_FS_KHZ 48 | #define MAX_API_FS_KHZ 48 | |||
/* Signal types used by silk */ | /* Signal types used by silk */ | |||
#define TYPE_NO_VOICE_ACTIVITY 0 | #define TYPE_NO_VOICE_ACTIVITY 0 | |||
#define TYPE_UNVOICED 1 | #define TYPE_UNVOICED 1 | |||
#define TYPE_VOICED 2 | #define TYPE_VOICED 2 | |||
/* VAD Types used by silk */ | ||||
#define NO_VOICE_ACTIVITY 0 | ||||
#define VOICE_ACTIVITY 1 | ||||
/* Number of subframes */ | /* Number of subframes */ | |||
#define MAX_NB_SUBFR 4 | #define MAX_NB_SUBFR 4 | |||
/* Number of samples per frame */ | /* Number of samples per frame */ | |||
#define LTP_MEM_LENGTH_MS 20 | #define LTP_MEM_LENGTH_MS 20 | |||
#define SUB_FRAME_LENGTH_MS 5 | #define SUB_FRAME_LENGTH_MS 5 | |||
#define MAX_SUB_FRAME_LENGTH ( SUB_FRAME_LENGTH_MS * MAX _FS_KHZ ) | #define MAX_SUB_FRAME_LENGTH ( SUB_FRAME_LENGTH_MS * MAX _FS_KHZ ) | |||
#define MAX_FRAME_LENGTH_MS ( SUB_FRAME_LENGTH_MS * MAX _NB_SUBFR ) | #define MAX_FRAME_LENGTH_MS ( SUB_FRAME_LENGTH_MS * MAX _NB_SUBFR ) | |||
#define MAX_FRAME_LENGTH ( MAX_FRAME_LENGTH_MS * MAX _FS_KHZ ) | #define MAX_FRAME_LENGTH ( MAX_FRAME_LENGTH_MS * MAX _FS_KHZ ) | |||
skipping to change at line 135 | skipping to change at line 120 | |||
#define FIND_PITCH_LPC_WIN_MS_2_SF ( 10 + (LA_PITCH_MS << 1) ) | #define FIND_PITCH_LPC_WIN_MS_2_SF ( 10 + (LA_PITCH_MS << 1) ) | |||
#define FIND_PITCH_LPC_WIN_MAX ( FIND_PITCH_LPC_WIN_MS * M AX_FS_KHZ ) | #define FIND_PITCH_LPC_WIN_MAX ( FIND_PITCH_LPC_WIN_MS * M AX_FS_KHZ ) | |||
/* Milliseconds of lookahead for noise shape analysis */ | /* Milliseconds of lookahead for noise shape analysis */ | |||
#define LA_SHAPE_MS 5 | #define LA_SHAPE_MS 5 | |||
#define LA_SHAPE_MAX ( LA_SHAPE_MS * MAX_FS_KHZ ) | #define LA_SHAPE_MAX ( LA_SHAPE_MS * MAX_FS_KHZ ) | |||
/* Maximum length of LPC window used in noise shape analysis */ | /* Maximum length of LPC window used in noise shape analysis */ | |||
#define SHAPE_LPC_WIN_MAX ( 15 * MAX_FS_KHZ ) | #define SHAPE_LPC_WIN_MAX ( 15 * MAX_FS_KHZ ) | |||
/* Max number of bytes in payload output buffer (may contain multiple frame | ||||
s) */ | ||||
#define MAX_ARITHM_BYTES 1024 | ||||
/* dB level of lowest gain quantization level */ | /* dB level of lowest gain quantization level */ | |||
#define MIN_QGAIN_DB 2 | #define MIN_QGAIN_DB 2 | |||
/* dB level of highest gain quantization level */ | /* dB level of highest gain quantization level */ | |||
#define MAX_QGAIN_DB 88 | #define MAX_QGAIN_DB 88 | |||
/* Number of gain quantization levels */ | /* Number of gain quantization levels */ | |||
#define N_LEVELS_QGAIN 64 | #define N_LEVELS_QGAIN 64 | |||
/* Max increase in gain quantization index */ | /* Max increase in gain quantization index */ | |||
#define MAX_DELTA_GAIN_QUANT 36 | #define MAX_DELTA_GAIN_QUANT 36 | |||
/* Max decrease in gain quantization index */ | /* Max decrease in gain quantization index */ | |||
#define MIN_DELTA_GAIN_QUANT -4 | #define MIN_DELTA_GAIN_QUANT -4 | |||
End of changes. 5 change blocks. | ||||
27 lines changed or deleted | 6 lines changed or added | |||
SKP_Silk_errors.h | SKP_Silk_errors.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 48 | skipping to change at line 48 | |||
/******************/ | /******************/ | |||
#define SKP_SILK_NO_ERROR 0 | #define SKP_SILK_NO_ERROR 0 | |||
/**************************/ | /**************************/ | |||
/* Encoder error messages */ | /* Encoder error messages */ | |||
/**************************/ | /**************************/ | |||
/* Input length is not a multiple of 10 ms, or length is longer than the pa cket length */ | /* Input length is not a multiple of 10 ms, or length is longer than the pa cket length */ | |||
#define SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES -101 | #define SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES -101 | |||
/* Sampling frequency not 8000, 12000, 16000 or 24000 Hertz */ | /* Sampling frequency not 8000, 12000 or 16000 Hertz */ | |||
#define SKP_SILK_ENC_FS_NOT_SUPPORTED -102 | #define SKP_SILK_ENC_FS_NOT_SUPPORTED -102 | |||
/* Packet size not 20, 40, 60, 80 or 100 ms */ | /* Packet size not 10, 20, 40, or 60 ms */ | |||
#define SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED -103 | #define SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED -103 | |||
/* Allocated payload buffer too short */ | /* Allocated payload buffer too short */ | |||
#define SKP_SILK_ENC_PAYLOAD_BUF_TOO_SHORT -104 | #define SKP_SILK_ENC_PAYLOAD_BUF_TOO_SHORT -104 | |||
/* Loss rate not between 0 and 100 percent */ | /* Loss rate not between 0 and 100 percent */ | |||
#define SKP_SILK_ENC_INVALID_LOSS_RATE -105 | #define SKP_SILK_ENC_INVALID_LOSS_RATE -105 | |||
/* Complexity setting not valid, use 0...10 */ | /* Complexity setting not valid, use 0...10 */ | |||
#define SKP_SILK_ENC_INVALID_COMPLEXITY_SETTING -106 | #define SKP_SILK_ENC_INVALID_COMPLEXITY_SETTING -106 | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
SKP_Silk_macros.h | SKP_Silk_macros.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_main.h | SKP_Silk_main.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 53 | skipping to change at line 53 | |||
#include "entdec.h" | #include "entdec.h" | |||
/* Uncomment the next line to store intermadiate data to files */ | /* Uncomment the next line to store intermadiate data to files */ | |||
//#define SAVE_ALL_INTERNAL_DATA 1 | //#define SAVE_ALL_INTERNAL_DATA 1 | |||
/* Uncomment the next line to force a fixed internal sampling rate (indepen dent of what bitrate is used */ | /* Uncomment the next line to force a fixed internal sampling rate (indepen dent of what bitrate is used */ | |||
//#define FORCE_INTERNAL_FS_KHZ 16 | //#define FORCE_INTERNAL_FS_KHZ 16 | |||
/* Encodes signs of excitation */ | /* Encodes signs of excitation */ | |||
void SKP_Silk_encode_signs( | void SKP_Silk_encode_signs( | |||
ec_enc *psRangeEnc, /* I/O Compressor data structure */ | ec_enc *psRangeEnc, /* I/O Compressor data structure */ | |||
const SKP_int8 q[], /* I pulse signal */ | const SKP_int8 pulses[], /* I pulse signal */ | |||
SKP_int length, /* I length of input */ | SKP_int length, /* I length of input */ | |||
const SKP_int signalType, /* I Signal type */ | const SKP_int signalType, /* I Signal type */ | |||
const SKP_int quantOffsetType, /* I Quantization offset type */ | const SKP_int quantOffsetType, /* I Quantization offset type */ | |||
const SKP_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */ | const SKP_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */ | |||
); | ); | |||
/* Decodes signs of excitation */ | /* Decodes signs of excitation */ | |||
void SKP_Silk_decode_signs( | void SKP_Silk_decode_signs( | |||
ec_dec *psRangeDec, /* I/O Compressor data structure */ | ec_dec *psRangeDec, /* I/O Compressor data structure */ | |||
SKP_int q[], /* I/O pulse signal */ | SKP_int pulses[], /* I/O pulse signal */ | |||
SKP_int length, /* I length of input */ | SKP_int length, /* I length of input */ | |||
const SKP_int signalType, /* I Signal type */ | const SKP_int signalType, /* I Signal type */ | |||
const SKP_int quantOffsetType, /* I Quantization offset type */ | const SKP_int quantOffsetType, /* I Quantization offset type */ | |||
const SKP_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */ | const SKP_int sum_pulses[ MAX_NB_SHELL_BLOCKS ] /* I Sum of absolute pulses per block */ | |||
); | ); | |||
/* Control internal sampling rate */ | /* Control internal sampling rate */ | |||
SKP_int SKP_Silk_control_audio_bandwidth( | SKP_int SKP_Silk_control_audio_bandwidth( | |||
SKP_Silk_encoder_state *psEncC, /* I/O Pointer to Silk encoder state */ | SKP_Silk_encoder_state *psEncC, /* I/O Pointer to Silk encoder state */ | |||
SKP_int32 TargetRate_bps /* I Target max bitr ate (bps) */ | SKP_int32 TargetRate_bps /* I Target max bitr ate (bps) */ | |||
skipping to change at line 85 | skipping to change at line 85 | |||
/***************/ | /***************/ | |||
/* Shell coder */ | /* Shell coder */ | |||
/***************/ | /***************/ | |||
/* Encode quantization indices of excitation */ | /* Encode quantization indices of excitation */ | |||
void SKP_Silk_encode_pulses( | void SKP_Silk_encode_pulses( | |||
ec_enc *psRangeEnc, /* I/O compressor data structure */ | ec_enc *psRangeEnc, /* I/O compressor data structure */ | |||
const SKP_int signalType, /* I Signal type */ | const SKP_int signalType, /* I Signal type */ | |||
const SKP_int quantOffsetType, /* I quantOffsetType */ | const SKP_int quantOffsetType, /* I quantOffsetType */ | |||
SKP_int8 q[], /* I quantization in dices */ | SKP_int8 pulses[], /* I quantization in dices */ | |||
const SKP_int frame_length /* I Frame length */ | const SKP_int frame_length /* I Frame length */ | |||
); | ); | |||
/* Shell encoder, operates on one shell code frame of 16 pulses */ | /* Shell encoder, operates on one shell code frame of 16 pulses */ | |||
void SKP_Silk_shell_encoder( | void SKP_Silk_shell_encoder( | |||
ec_enc *psRangeEnc, /* I/O compressor data structure */ | ec_enc *psRangeEnc, /* I/O compressor data structure */ | |||
const SKP_int *pulses0 /* I data: nonnegati ve pulse amplitudes */ | const SKP_int *pulses0 /* I data: nonnegati ve pulse amplitudes */ | |||
); | ); | |||
/* Shell decoder, operates on one shell code frame of 16 pulses */ | /* Shell decoder, operates on one shell code frame of 16 pulses */ | |||
void SKP_Silk_shell_decoder( | void SKP_Silk_shell_decoder( | |||
SKP_int *pulses0, /* O data: nonnegati ve pulse amplitudes */ | SKP_int *pulses0, /* O data: nonnegati ve pulse amplitudes */ | |||
ec_dec *psRangeDec, /* I/O Compressor data structure */ | ec_dec *psRangeDec, /* I/O Compressor data structure */ | |||
const SKP_int pulses4 /* I number of pulse s per pulse-subframe */ | const SKP_int pulses4 /* I number of pulse s per pulse-subframe */ | |||
); | ); | |||
/* Gain scalar quantization with hysteresis, uniform on log scale */ | /* Gain scalar quantization with hysteresis, uniform on log scale */ | |||
void SKP_Silk_gains_quant( | void SKP_Silk_gains_quant( | |||
SKP_int ind[ MAX_NB_SUBFR ], /* O gai n indices */ | SKP_int8 ind[ MAX_NB_SUBFR ], /* O gai n indices */ | |||
SKP_int32 gain_Q16[ MAX_NB_SUBFR ], /* I/O gai ns (quantized out) */ | SKP_int32 gain_Q16[ MAX_NB_SUBFR ], /* I/O gai ns (quantized out) */ | |||
SKP_int *prev_ind, /* I/O las t index in previous frame */ | SKP_int8 *prev_ind, /* I/O las t index in previous frame */ | |||
const SKP_int conditional, /* I fir st gain is delta coded if 1 */ | const SKP_int conditional, /* I fir st gain is delta coded if 1 */ | |||
const SKP_int nb_subfr /* I num ber of subframes */ | const SKP_int nb_subfr /* I num ber of subframes */ | |||
); | ); | |||
/* Gains scalar dequantization, uniform on log scale */ | /* Gains scalar dequantization, uniform on log scale */ | |||
void SKP_Silk_gains_dequant( | void SKP_Silk_gains_dequant( | |||
SKP_int32 gain_Q16[ MAX_NB_SUBFR ], /* O qua ntized gains */ | SKP_int32 gain_Q16[ MAX_NB_SUBFR ], /* O qua ntized gains */ | |||
const SKP_int ind[ MAX_NB_SUBFR ], /* I gai | const SKP_int8 ind[ MAX_NB_SUBFR ], /* I gai | |||
n indices */ | n indices */ | |||
SKP_int *prev_ind, /* I/O las | SKP_int8 *prev_ind, /* I/O las | |||
t index in previous frame */ | t index in previous frame */ | |||
const SKP_int conditional, /* I fir st gain is delta coded if 1 */ | const SKP_int conditional, /* I fir st gain is delta coded if 1 */ | |||
const SKP_int nb_subfr /* I num ber of subframes */ | const SKP_int nb_subfr /* I num ber of subframes */ | |||
); | ); | |||
/* Convert NLSF parameters to stable AR prediction filter coefficients */ | /* Convert NLSF parameters to stable AR prediction filter coefficients */ | |||
void SKP_Silk_NLSF2A_stable( | void SKP_Silk_NLSF2A_stable( | |||
SKP_int16 pAR_Q12[ MAX_LPC_ORDER ], /* O Stabili zed AR coefs [LPC_order] */ | SKP_int16 pAR_Q12[ MAX_LPC_ORDER ], /* O Stabili zed AR coefs [LPC_order] */ | |||
const SKP_int pNLSF[ MAX_LPC_ORDER ], /* I NLSF ve ctor [LPC_order] */ | const SKP_int pNLSF[ MAX_LPC_ORDER ], /* I NLSF ve ctor [LPC_order] */ | |||
const SKP_int LPC_order /* I LPC/LSF order */ | const SKP_int LPC_order /* I LPC/LSF order */ | |||
); | ); | |||
skipping to change at line 139 | skipping to change at line 139 | |||
SKP_int xi[ MAX_LPC_ORDER ], /* O interpolate d vector */ | SKP_int xi[ MAX_LPC_ORDER ], /* O interpolate d vector */ | |||
const SKP_int x0[ MAX_LPC_ORDER ], /* I first vecto r */ | const SKP_int x0[ MAX_LPC_ORDER ], /* I first vecto r */ | |||
const SKP_int x1[ MAX_LPC_ORDER ], /* I second vect or */ | const SKP_int x1[ MAX_LPC_ORDER ], /* I second vect or */ | |||
const SKP_int ifact_Q2, /* I interp. fac tor, weight on 2nd vector */ | const SKP_int ifact_Q2, /* I interp. fac tor, weight on 2nd vector */ | |||
const SKP_int d /* I number of p arameters */ | const SKP_int d /* I number of p arameters */ | |||
); | ); | |||
/* LTP tap quantizer */ | /* LTP tap quantizer */ | |||
void SKP_Silk_quant_LTP_gains( | void SKP_Silk_quant_LTP_gains( | |||
SKP_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (un)quantized LTP gains */ | SKP_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (un)quantized LTP gains */ | |||
SKP_int cbk_index[ MAX_NB_SUBFR ], /* | SKP_int8 cbk_index[ MAX_NB_SUBFR ], /* | |||
O Codebook Index */ | O Codebook Index */ | |||
SKP_int *periodicity_index, /* | SKP_int8 *periodicity_index, /* | |||
O Periodicity Index */ | O Periodicity Index */ | |||
const SKP_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error Weights in Q18 */ | const SKP_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error Weights in Q18 */ | |||
SKP_int mu_Q9, /* I Mu value (R/D tradeoff) */ | SKP_int mu_Q9, /* I Mu value (R/D tradeoff) */ | |||
SKP_int lowComplexity, /* I Flag for low complexity */ | SKP_int lowComplexity, /* I Flag for low complexity */ | |||
const SKP_int nb_subfr /* I number of subframes */ | const SKP_int nb_subfr /* I number of subframes */ | |||
); | ); | |||
/* Entropy constrained matrix-weighted VQ, for a single input data vector * / | /* Entropy constrained matrix-weighted VQ, for a single input data vector * / | |||
void SKP_Silk_VQ_WMat_EC( | void SKP_Silk_VQ_WMat_EC( | |||
SKP_int *ind, /* O index of be st codebook vector */ | SKP_int8 *ind, /* O index of be st codebook vector */ | |||
SKP_int32 *rate_dist_Q14, /* O best weight ed quantization error + mu * rate*/ | SKP_int32 *rate_dist_Q14, /* O best weight ed quantization error + mu * rate*/ | |||
const SKP_int16 *in_Q14, /* I input vecto r to be quantized */ | const SKP_int16 *in_Q14, /* I input vecto r to be quantized */ | |||
const SKP_int32 *W_Q18, /* I weighting m atrix */ | const SKP_int32 *W_Q18, /* I weighting m atrix */ | |||
const SKP_int8 *cb_Q7, /* I codebook */ | const SKP_int8 *cb_Q7, /* I codebook */ | |||
const SKP_uint8 *cl_Q5, /* I code length for each codebook vector */ | const SKP_uint8 *cl_Q5, /* I code length for each codebook vector */ | |||
const SKP_int mu_Q9, /* I tradeoff be tween weighted error and rate */ | const SKP_int mu_Q9, /* I tradeoff be tween weighted error and rate */ | |||
SKP_int L /* I number of v ectors in codebook */ | SKP_int L /* I number of v ectors in codebook */ | |||
); | ); | |||
/***********************************/ | /***********************************/ | |||
/* Noise shaping quantization (NSQ)*/ | /* Noise shaping quantization (NSQ)*/ | |||
/***********************************/ | /***********************************/ | |||
void SKP_Silk_NSQ( | void SKP_Silk_NSQ( | |||
SKP_Silk_encoder_state *psEncC, | const SKP_Silk_encoder_state *psEncC, | |||
/* I/O Encoder State */ | /* I/O Encoder State */ | |||
SKP_Silk_encoder_control *psEncCtrlC, | ||||
/* I Encoder Control */ | ||||
SKP_Silk_nsq_state *NSQ, /* I/O NSQ state */ | SKP_Silk_nsq_state *NSQ, /* I/O NSQ state */ | |||
SideInfoIndices *psIndices, /* I/O Quantization Indices */ | ||||
const SKP_int16 x[], /* I prefiltered input signal */ | const SKP_int16 x[], /* I prefiltered input signal */ | |||
SKP_int8 q[], | SKP_int8 pulses[], | |||
/* O quantized qulse signal */ | /* O quantized qulse signal */ | |||
const SKP_int LSFInterpFactor_Q2, | ||||
/* I LSF interpolation factor in Q2 */ | ||||
const SKP_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Short term prediction coefficients */ | const SKP_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Short term prediction coefficients */ | |||
const SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ] | const SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ] | |||
, /* I Long term prediction coefficients */ | , /* I Long term prediction coefficients */ | |||
const SKP_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_O | const SKP_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_O | |||
RDER ], /* I */ | RDER ], /* I */ | |||
const SKP_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], | const SKP_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], | |||
/* I */ | /* I */ | |||
const SKP_int Tilt_Q14[ MAX_NB_SUBFR ], | const SKP_int Tilt_Q14[ MAX_NB_SUBFR ], | |||
/* I Spectral tilt */ | /* I Spectral tilt */ | |||
const SKP_int32 LF_shp_Q14[ MAX_NB_SUBFR ], | const SKP_int32 LF_shp_Q14[ MAX_NB_SUBFR ], | |||
/* I */ | /* I */ | |||
const SKP_int32 Gains_Q16[ MAX_NB_SUBFR ], | const SKP_int32 Gains_Q16[ MAX_NB_SUBFR ], | |||
/* I */ | /* I */ | |||
const SKP_int pitchL[ MAX_NB_SUBFR ], | ||||
/* I */ | ||||
const SKP_int Lambda_Q10, /* I */ | const SKP_int Lambda_Q10, /* I */ | |||
const SKP_int LTP_scale_Q14 /* I LTP state scaling */ | const SKP_int LTP_scale_Q14 /* I LTP state scaling */ | |||
); | ); | |||
/* Noise shaping using delayed decision */ | /* Noise shaping using delayed decision */ | |||
void SKP_Silk_NSQ_del_dec( | void SKP_Silk_NSQ_del_dec( | |||
SKP_Silk_encoder_state *psEncC, | const SKP_Silk_encoder_state *psEncC, | |||
/* I/O Encoder State */ | /* I/O Encoder State */ | |||
SKP_Silk_encoder_control *psEncCtrlC, | ||||
/* I Encoder Control */ | ||||
SKP_Silk_nsq_state *NSQ, /* I/O NSQ state */ | SKP_Silk_nsq_state *NSQ, /* I/O NSQ state */ | |||
SideInfoIndices *psIndices, /* I/O Quantization Indices */ | ||||
const SKP_int16 x[], /* I Prefiltered input signal */ | const SKP_int16 x[], /* I Prefiltered input signal */ | |||
SKP_int8 q[], | SKP_int8 pulses[], | |||
/* O Quantized pulse signal */ | /* O Quantized pulse signal */ | |||
const SKP_int LSFInterpFactor_Q2, | ||||
/* I LSF interpolation factor in Q2 */ | ||||
const SKP_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Prediction coefs */ | const SKP_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Prediction coefs */ | |||
const SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ] | const SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ] | |||
, /* I LT prediction coefs */ | , /* I LT prediction coefs */ | |||
const SKP_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_O | const SKP_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_O | |||
RDER ], /* I */ | RDER ], /* I */ | |||
const SKP_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], | const SKP_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], | |||
/* I */ | /* I */ | |||
const SKP_int Tilt_Q14[ MAX_NB_SUBFR ], | const SKP_int Tilt_Q14[ MAX_NB_SUBFR ], | |||
/* I Spectral tilt */ | /* I Spectral tilt */ | |||
const SKP_int32 LF_shp_Q14[ MAX_NB_SUBFR ], | const SKP_int32 LF_shp_Q14[ MAX_NB_SUBFR ], | |||
/* I */ | /* I */ | |||
const SKP_int32 Gains_Q16[ MAX_NB_SUBFR ], | const SKP_int32 Gains_Q16[ MAX_NB_SUBFR ], | |||
/* I */ | /* I */ | |||
const SKP_int pitchL[ MAX_NB_SUBFR ], | ||||
/* I */ | ||||
const SKP_int Lambda_Q10, /* I */ | const SKP_int Lambda_Q10, /* I */ | |||
const SKP_int LTP_scale_Q14 /* I LTP state scaling */ | const SKP_int LTP_scale_Q14 /* I LTP state scaling */ | |||
); | ); | |||
/************/ | /************/ | |||
/* Silk VAD */ | /* Silk VAD */ | |||
/************/ | /************/ | |||
/* Initialize the Silk VAD */ | /* Initialize the Silk VAD */ | |||
SKP_int SKP_Silk_VAD_Init( /* O Return value, 0 if success */ | SKP_int SKP_Silk_VAD_Init( /* O Return value, 0 if success */ | |||
SKP_Silk_VAD_state *psSilk_VAD /* I/O Pointer to Silk VAD state */ | SKP_Silk_VAD_state *psSilk_VAD /* I/O Pointer to Silk VAD state */ | |||
skipping to change at line 231 | skipping to change at line 231 | |||
const SKP_int framelength, /* I Inp ut frame length */ | const SKP_int framelength, /* I Inp ut frame length */ | |||
const SKP_int fs_kHz /* I Inp ut frame sample frequency */ | const SKP_int fs_kHz /* I Inp ut frame sample frequency */ | |||
); | ); | |||
#if SWITCH_TRANSITION_FILTERING | #if SWITCH_TRANSITION_FILTERING | |||
/* Low-pass filter with variable cutoff frequency based on */ | /* Low-pass filter with variable cutoff frequency based on */ | |||
/* piece-wise linear interpolation between elliptic filters */ | /* piece-wise linear interpolation between elliptic filters */ | |||
/* Start by setting transition_frame_no = 1; */ | /* Start by setting transition_frame_no = 1; */ | |||
void SKP_Silk_LP_variable_cutoff( | void SKP_Silk_LP_variable_cutoff( | |||
SKP_Silk_LP_state *psLP, /* I/O LP filter state */ | SKP_Silk_LP_state *psLP, /* I/O LP filter state */ | |||
SKP_int16 *out, /* O Low-pass filter | SKP_int16 *signal, /* I/O Low-pass filter | |||
ed output signal */ | ed output signal */ | |||
const SKP_int16 *in, /* I Input signal | ||||
*/ | ||||
const SKP_int frame_length /* I Frame length */ | const SKP_int frame_length /* I Frame length */ | |||
); | ); | |||
#endif | #endif | |||
/* Encode LBRR side info and excitation */ | ||||
void SKP_Silk_LBRR_embed( | ||||
SKP_Silk_encoder_state *psEncC, /* I/O Encoder state | ||||
*/ | ||||
ec_enc *psRangeEnc /* I/O Compressor data | ||||
structure */ | ||||
); | ||||
/****************************************************/ | /****************************************************/ | |||
/* Decoder Functions */ | /* Decoder Functions */ | |||
/****************************************************/ | /****************************************************/ | |||
SKP_int SKP_Silk_create_decoder( | SKP_int SKP_Silk_create_decoder( | |||
SKP_Silk_decoder_state **ppsDec /* I/O Decoder state p ointer pointer */ | SKP_Silk_decoder_state **ppsDec /* I/O Decoder state p ointer pointer */ | |||
); | ); | |||
SKP_int SKP_Silk_free_decoder( | SKP_int SKP_Silk_free_decoder( | |||
SKP_Silk_decoder_state *psDec /* I/O Decoder state p ointer */ | SKP_Silk_decoder_state *psDec /* I/O Decoder state p ointer */ | |||
); | ); | |||
skipping to change at line 267 | skipping to change at line 272 | |||
/****************/ | /****************/ | |||
/* Decode frame */ | /* Decode frame */ | |||
/****************/ | /****************/ | |||
SKP_int SKP_Silk_decode_frame( | SKP_int SKP_Silk_decode_frame( | |||
SKP_Silk_decoder_state *psDec, /* I/O Pointer to Silk decoder state */ | SKP_Silk_decoder_state *psDec, /* I/O Pointer to Silk decoder state */ | |||
ec_dec *psRangeDec, /* I/O Compressor data structure */ | ec_dec *psRangeDec, /* I/O Compressor data structure */ | |||
SKP_int16 pOut[], /* O Pointer to outp ut speech frame */ | SKP_int16 pOut[], /* O Pointer to outp ut speech frame */ | |||
SKP_int32 *pN, /* O Pointer to size of output frame */ | SKP_int32 *pN, /* O Pointer to size of output frame */ | |||
const SKP_int nBytes, /* I Payload length */ | const SKP_int nBytes, /* I Payload length */ | |||
SKP_int action, /* I Action from Jit | SKP_int lostFlag /* I 0: no loss, 1 l | |||
ter Buffer */ | oss, 2 decode fec */ | |||
SKP_int *decBytes /* O Used bytes to d | ); | |||
ecode this frame */ | ||||
/* Decode LBRR side info and excitation */ | ||||
void SKP_Silk_LBRR_extract( | ||||
SKP_Silk_decoder_state *psDec, /* I/O State | ||||
*/ | ||||
ec_dec *psRangeDec /* I/O Compressor data | ||||
structure */ | ||||
); | ); | |||
/* Decode indices from payload v4 Bitstream */ | /* Decode indices from payload v4 Bitstream */ | |||
void SKP_Silk_decode_indices( | void SKP_Silk_decode_indices( | |||
SKP_Silk_decoder_state *psDec, /* I/O State */ | SKP_Silk_decoder_state *psDec, /* I/O State */ | |||
ec_dec *psRangeDec /* I/O Compressor data | ec_dec *psRangeDec, /* I/O Compressor data | |||
structure */ | structure */ | |||
SKP_int FrameIndex, /* I Frame number | ||||
*/ | ||||
SKP_int decode_LBRR /* I Flag indicating | ||||
LBRR data is being decoded */ | ||||
); | ); | |||
/* Decode parameters from payload v4 Bitstream */ | /* Decode parameters from payload v4 Bitstream */ | |||
void SKP_Silk_decode_parameters( | void SKP_Silk_decode_parameters( | |||
SKP_Silk_decoder_state *psDec, /* I/O State */ | SKP_Silk_decoder_state *psDec, /* I/O State */ | |||
SKP_Silk_decoder_control *psDecCtrl, /* I/O | SKP_Silk_decoder_control *psDecCtrl /* I/O | |||
Decoder control */ | Decoder control */ | |||
ec_dec *psRangeDec, /* I/O | ||||
Compressor data structure */ | ||||
SKP_int q[ MAX_FRAME_LENGTH ] /* O | ||||
Excitation signal */ | ||||
); | ); | |||
/* Core decoder. Performs inverse NSQ operation LTP + LPC */ | /* Core decoder. Performs inverse NSQ operation LTP + LPC */ | |||
void SKP_Silk_decode_core( | void SKP_Silk_decode_core( | |||
SKP_Silk_decoder_state *psDec, /* I/O Decoder state */ | SKP_Silk_decoder_state *psDec, /* I/O Decoder state */ | |||
SKP_Silk_decoder_control *psDecCtrl, /* I Decoder control */ | SKP_Silk_decoder_control *psDecCtrl, /* I Decoder control */ | |||
SKP_int16 xq[], /* O Decoded speech */ | SKP_int16 xq[], /* O Decoded speech */ | |||
const SKP_int q[ MAX_FRAME_LENGTH ] /* I Pulse signal */ | const SKP_int pulses[ MAX_FRAME_LENGTH ] /* I Pulse signal */ | |||
); | ); | |||
/* NLSF vector decoder */ | /* NLSF vector decoder */ | |||
void SKP_Silk_NLSF_MSVQ_decode( | void SKP_Silk_NLSF_MSVQ_decode( | |||
SKP_int *pNLSF_Q15, /* O Pointer to deco ded output [LPC_ORDER x 1] */ | SKP_int *pNLSF_Q15, /* O Pointer to deco ded output [LPC_ORDER x 1] */ | |||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Pointer to NLSF codebook struct */ | const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Pointer to NLSF codebook struct */ | |||
const SKP_int *NLSFIndices, /* I Pointer to NLSF indices [nStages x 1] */ | const SKP_int8 *NLSFIndices, /* I Pointer to NLSF indices [nStages x 1] */ | |||
const SKP_int LPC_order /* I LPC order */ | const SKP_int LPC_order /* I LPC order */ | |||
); | ); | |||
/**********************/ | ||||
/* Arithmetic coding */ | ||||
/*********************/ | ||||
/* Decode quantization indices of excitation (Shell coding) */ | /* Decode quantization indices of excitation (Shell coding) */ | |||
void SKP_Silk_decode_pulses( | void SKP_Silk_decode_pulses( | |||
ec_dec *psRangeDec, /* I/O Compressor data | ec_dec *psRangeDec, /* I/O Compressor | |||
structure */ | data structure */ | |||
SKP_Silk_decoder_control *psDecCtrl, /* I/O Decoder control | SKP_int pulses[], /* O Excitation | |||
*/ | signal */ | |||
SKP_int q[], /* O Excitation sign | const SKP_int signalType, /* I Sigtype | |||
al */ | */ | |||
const SKP_int frame_length /* I Frame length (p | const SKP_int quantOffsetType, /* I quantOffset | |||
reliminary) */ | Type */ | |||
const SKP_int frame_length /* I Frame lengt | ||||
h */ | ||||
); | ); | |||
/******************/ | /******************/ | |||
/* CNG */ | /* CNG */ | |||
/******************/ | /******************/ | |||
/* Reset CNG */ | /* Reset CNG */ | |||
void SKP_Silk_CNG_Reset( | void SKP_Silk_CNG_Reset( | |||
SKP_Silk_decoder_state *psDec /* I/O Decoder state */ | SKP_Silk_decoder_state *psDec /* I/O Decoder state */ | |||
); | ); | |||
skipping to change at line 333 | skipping to change at line 340 | |||
void SKP_Silk_CNG( | void SKP_Silk_CNG( | |||
SKP_Silk_decoder_state *psDec, /* I/O Decoder state */ | SKP_Silk_decoder_state *psDec, /* I/O Decoder state */ | |||
SKP_Silk_decoder_control *psDecCtrl, /* I/O Decoder control */ | SKP_Silk_decoder_control *psDecCtrl, /* I/O Decoder control */ | |||
SKP_int16 signal[], /* I/O Signal */ | SKP_int16 signal[], /* I/O Signal */ | |||
SKP_int length /* I Length of resid ual */ | SKP_int length /* I Length of resid ual */ | |||
); | ); | |||
/* Encoding of various parameters */ | /* Encoding of various parameters */ | |||
void SKP_Silk_encode_indices( | void SKP_Silk_encode_indices( | |||
SKP_Silk_encoder_state *psEncC, /* I/O Encoder state */ | SKP_Silk_encoder_state *psEncC, /* I/O Encoder state */ | |||
SKP_Silk_encoder_control *psEncCtrlC, /* I/O Encoder control | ec_enc *psRangeEnc, /* I/O Compressor data | |||
*/ | structure */ | |||
ec_enc *psRangeEnc /* I/O Compressor data | SKP_int FrameIndex, /* I Frame number | |||
structure */ | */ | |||
); | SKP_int encode_LBRR /* I Flag indicating | |||
LBRR data is being encoded */ | ||||
/* Extract lowest layer encoding */ | ||||
void SKP_Silk_get_low_layer_internal( | ||||
const SKP_uint8 *indata, /* I: Encoded input v | ||||
ector */ | ||||
const SKP_int16 nBytesIn, /* I: Number of input | ||||
Bytes */ | ||||
SKP_uint8 *Layer0data, /* O: Layer0 payload | ||||
*/ | ||||
SKP_int32 *nLayer0Bytes /* O: Number of FEC B | ||||
ytes */ | ||||
); | ||||
/* Predict number of bytes used to encode q */ | ||||
SKP_int SKP_Silk_pulses_to_bytes( /* O Return value, predicted number of b | ||||
ytes used to encode q */ | ||||
SKP_Silk_encoder_state *psEncC, /* I/O Encoder State*/ | ||||
SKP_int8 q[] /* I Pulse signal * | ||||
/ | ||||
); | ); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 27 change blocks. | ||||
109 lines changed or deleted | 99 lines changed or added | |||
SKP_Silk_main_FIX.h | SKP_Silk_main_FIX.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 60 | skipping to change at line 60 | |||
void SKP_Silk_HP_variable_cutoff_FIX( | void SKP_Silk_HP_variable_cutoff_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc, /* I/O Encoder state */ | SKP_Silk_encoder_state_FIX *psEnc, /* I/O Encoder state */ | |||
SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O Encoder control */ | SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O Encoder control */ | |||
SKP_int16 *out, /* O high-pass filte red output signal */ | SKP_int16 *out, /* O high-pass filte red output signal */ | |||
const SKP_int16 *in /* I input signal */ | const SKP_int16 *in /* I input signal */ | |||
); | ); | |||
/* Encoder main function */ | /* Encoder main function */ | |||
SKP_int SKP_Silk_encode_frame_FIX( | SKP_int SKP_Silk_encode_frame_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */ | SKP_Silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */ | |||
SKP_int32 *pnBytesOut, /* I/O Pointer to | SKP_int32 *pnBytesOut, /* O Pointer to | |||
number of payload bytes; */ | number of payload bytes; */ | |||
/* input: max | ec_enc *psRangeEnc /* I/O compressor | |||
length; output: used */ | data structure */ | |||
ec_enc *psRangeEnc, /* I/O compressor | ||||
data structure */ | ||||
const SKP_int16 *pIn /* I Pointer to | ||||
input speech frame */ | ||||
); | ); | |||
/* Low Bitrate Redundancy (LBRR) encoding. Reuse all parameters but encode with lower bitrate */ | /* Low Bitrate Redundancy (LBRR) encoding. Reuse all parameters but encode with lower bitrate */ | |||
void SKP_Silk_LBRR_encode_FIX( | void SKP_Silk_LBRR_encode_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */ | SKP_Silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */ | |||
SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O Pointer to Silk FIX encoder control struct */ | SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O Pointer to Silk FIX encoder control struct */ | |||
SKP_uint8 *pCode, /* O Pointer to payl | const SKP_int16 xfw[] /* I Input signal | |||
oad */ | */ | |||
SKP_int32 *pnBytesOut, /* I/O Pointer to numb | ||||
er of payload bytes */ | ||||
SKP_int16 xfw[] /* I Input signal | ||||
*/ | ||||
); | ); | |||
/* Initializes the Silk encoder state */ | /* Initializes the Silk encoder state */ | |||
SKP_int SKP_Silk_init_encoder_FIX( | SKP_int SKP_Silk_init_encoder_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc /* I/O Pointer to Silk FIX encoder state */ | SKP_Silk_encoder_state_FIX *psEnc /* I/O Pointer to Silk FIX encoder state */ | |||
); | ); | |||
/* Control the Silk encoder */ | /* Control the Silk encoder */ | |||
SKP_int SKP_Silk_control_encoder_FIX( | SKP_int SKP_Silk_control_encoder_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk encoder state */ | SKP_Silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk encoder state */ | |||
skipping to change at line 148 | skipping to change at line 144 | |||
void SKP_Silk_find_pred_coefs_FIX( | void SKP_Silk_find_pred_coefs_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc, /* I/O encoder state */ | SKP_Silk_encoder_state_FIX *psEnc, /* I/O encoder state */ | |||
SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O encoder control */ | SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O encoder control */ | |||
const SKP_int16 res_pitch[], /* I Residual from p itch analysis */ | const SKP_int16 res_pitch[], /* I Residual from p itch analysis */ | |||
const SKP_int16 x[] /* I Speech signal */ | const SKP_int16 x[] /* I Speech signal */ | |||
); | ); | |||
/* LPC analysis */ | /* LPC analysis */ | |||
void SKP_Silk_find_LPC_FIX( | void SKP_Silk_find_LPC_FIX( | |||
SKP_int NLSF_Q15[], /* O NLSFs */ | SKP_int NLSF_Q15[], /* O NLSFs */ | |||
SKP_int *interpIndex, /* O NLSF interpolat ion index, only used for NLSF interpolation */ | SKP_int8 *interpIndex, /* O NLSF interpolat ion index, only used for NLSF interpolation */ | |||
const SKP_int prev_NLSFq_Q15[], /* I previous NLSFs, only used for NLSF interpolation */ | const SKP_int prev_NLSFq_Q15[], /* I previous NLSFs, only used for NLSF interpolation */ | |||
const SKP_int useInterpolatedNLSFs, /* I Flag */ | const SKP_int useInterpolatedNLSFs, /* I Flag */ | |||
const SKP_int LPC_order, /* I LPC order */ | const SKP_int LPC_order, /* I LPC order */ | |||
const SKP_int16 x[], /* I Input signal */ | const SKP_int16 x[], /* I Input signal */ | |||
const SKP_int subfr_length, /* I Input signal su bframe length including preceeding samples */ | const SKP_int subfr_length, /* I Input signal su bframe length including preceeding samples */ | |||
const SKP_int nb_subfr /* I: Number of subfr ames */ | const SKP_int nb_subfr /* I: Number of subfr ames */ | |||
); | ); | |||
/* LTP analysis */ | /* LTP analysis */ | |||
void SKP_Silk_find_LTP_FIX( | void SKP_Silk_find_LTP_FIX( | |||
skipping to change at line 207 | skipping to change at line 203 | |||
/******************/ | /******************/ | |||
/* Limit, stabilize, convert and quantize NLSFs. */ | /* Limit, stabilize, convert and quantize NLSFs. */ | |||
void SKP_Silk_process_NLSFs_FIX( | void SKP_Silk_process_NLSFs_FIX( | |||
SKP_Silk_encoder_state_FIX *psEnc, /* I/O encoder state */ | SKP_Silk_encoder_state_FIX *psEnc, /* I/O encoder state */ | |||
SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O encoder control */ | SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O encoder control */ | |||
SKP_int *pNLSF_Q15 /* I/O Normalized LSFs (qu ant out) (0 - (2^15-1)) */ | SKP_int *pNLSF_Q15 /* I/O Normalized LSFs (qu ant out) (0 - (2^15-1)) */ | |||
); | ); | |||
/* NLSF vector encoder */ | /* NLSF vector encoder */ | |||
void SKP_Silk_NLSF_MSVQ_encode_FIX( | void SKP_Silk_NLSF_MSVQ_encode_FIX( | |||
SKP_int *NLSFIndices, /* O Codeboo k path vector [ CB_STAGES ] */ | SKP_int8 *NLSFIndices, /* O Codeboo k path vector [ CB_STAGES ] */ | |||
SKP_int *pNLSF_Q15, /* I/O Quantiz ed NLSF vector [ LPC_ORDER ] */ | SKP_int *pNLSF_Q15, /* I/O Quantiz ed NLSF vector [ LPC_ORDER ] */ | |||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Codeboo k object */ | const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Codeboo k object */ | |||
const SKP_int *pNLSF_q_Q15_prev, /* I Prev. q uantized NLSF vector [LPC_ORDER] */ | const SKP_int *pNLSF_q_Q15_prev, /* I Prev. q uantized NLSF vector [LPC_ORDER] */ | |||
const SKP_int *pW_Q6, /* I NLSF we ight vector [ LPC_ORDER ] */ | const SKP_int *pW_Q6, /* I NLSF we ight vector [ LPC_ORDER ] */ | |||
const SKP_int NLSF_mu_Q15, /* I Rate we ight for the RD optimization */ | const SKP_int NLSF_mu_Q15, /* I Rate we ight for the RD optimization */ | |||
const SKP_int NLSF_mu_fluc_red_Q16, /* I Fluctua tion reduction error weight */ | const SKP_int NLSF_mu_fluc_red_Q16, /* I Fluctua tion reduction error weight */ | |||
const SKP_int NLSF_MSVQ_Survivors, /* I Max sur vivors from each stage */ | const SKP_int NLSF_MSVQ_Survivors, /* I Max sur vivors from each stage */ | |||
const SKP_int LPC_order, /* I LPC ord er */ | const SKP_int LPC_order, /* I LPC ord er */ | |||
const SKP_int deactivate_fluc_red /* I Deactiv ate fluctuation reduction */ | const SKP_int deactivate_fluc_red /* I Deactiv ate fluctuation reduction */ | |||
); | ); | |||
/* Rate-Distortion calculations for multiple input data vectors */ | /* Rate-Distortion calculations for multiple input data vectors */ | |||
void SKP_Silk_NLSF_VQ_rate_distortion_FIX( | void SKP_Silk_NLSF_VQ_rate_distortion_FIX( | |||
SKP_int32 *pRD_Q20, /* O Rate-distor tion values [psNLSF_CBS->nVectors*N] */ | SKP_int32 *pRD_Q20, /* O Rate-distor tion values [psNLSF_CBS->nVectors*N] */ | |||
const SKP_Silk_NLSF_CBS *psNLSF_CBS, /* I NLSF codebo ok stage struct */ | const SKP_Silk_NLSF_CBS *psNLSF_CBS, /* I NLSF codebo ok stage struct */ | |||
const SKP_int *in_Q15, /* I Input vecto rs to be quantized */ | const SKP_int16 *in_Q15, /* I Input vecto rs to be quantized */ | |||
const SKP_int *w_Q6, /* I Weight vect or */ | const SKP_int *w_Q6, /* I Weight vect or */ | |||
const SKP_int32 *rate_acc_Q5, /* I Accumulated rates from previous stage */ | const SKP_int32 *rate_acc_Q5, /* I Accumulated rates from previous stage */ | |||
const SKP_int mu_Q15, /* I Weight betw een weighted error and rate */ | const SKP_int mu_Q15, /* I Weight betw een weighted error and rate */ | |||
const SKP_int N, /* I Number of i nput vectors to be quantized */ | const SKP_int N, /* I Number of i nput vectors to be quantized */ | |||
const SKP_int LPC_order /* I LPC order */ | const SKP_int LPC_order /* I LPC order */ | |||
); | ); | |||
/* Compute weighted quantization errors for an LPC_order element input vect or, over one codebook stage */ | /* Compute weighted quantization errors for an LPC_order element input vect or, over one codebook stage */ | |||
void SKP_Silk_NLSF_VQ_sum_error_FIX( | void SKP_Silk_NLSF_VQ_sum_error_FIX( | |||
SKP_int32 *err_Q20, /* O Weighted qu antization errors [N*K] */ | SKP_int32 *err_Q20, /* O Weighted qu antization errors [N*K] */ | |||
const SKP_int *in_Q15, /* I Input vecto rs to be quantized [N*LPC_order] */ | const SKP_int16 *in_Q15, /* I Input vecto rs to be quantized [N*LPC_order] */ | |||
const SKP_int *w_Q6, /* I Weighting v ectors [N*LPC_order] */ | const SKP_int *w_Q6, /* I Weighting v ectors [N*LPC_order] */ | |||
const SKP_int8 *pCB_Q9, /* I Codebook ve ctors [K*LPC_order] */ | const SKP_int8 *pCB_Q9, /* I Codebook ve ctors [K*LPC_order] */ | |||
const SKP_int N, /* I Number of i nput vectors */ | const SKP_int N, /* I Number of i nput vectors */ | |||
const SKP_int K, /* I Number of c odebook vectors */ | const SKP_int K, /* I Number of c odebook vectors */ | |||
const SKP_int LPC_order /* I Number of L PCs */ | const SKP_int LPC_order /* I Number of L PCs */ | |||
); | ); | |||
/* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */ | /* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */ | |||
SKP_int32 SKP_Silk_residual_energy16_covar_FIX( | SKP_int32 SKP_Silk_residual_energy16_covar_FIX( | |||
const SKP_int16 *c, /* I Prediction vector */ | const SKP_int16 *c, /* I Prediction vector */ | |||
End of changes. 7 change blocks. | ||||
19 lines changed or deleted | 11 lines changed or added | |||
SKP_Silk_main_FLP.h | SKP_Silk_main_FLP.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 62 | skipping to change at line 62 | |||
void SKP_Silk_HP_variable_cutoff_FLP( | void SKP_Silk_HP_variable_cutoff_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | |||
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | |||
SKP_int16 *out, /* O High-pass f iltered output signal */ | SKP_int16 *out, /* O High-pass f iltered output signal */ | |||
const SKP_int16 *in /* I Input signa l */ | const SKP_int16 *in /* I Input signa l */ | |||
); | ); | |||
/* Encoder main function */ | /* Encoder main function */ | |||
SKP_int SKP_Silk_encode_frame_FLP( | SKP_int SKP_Silk_encode_frame_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | |||
SKP_int32 *pnBytesOut, /* I/O Number of p | SKP_int32 *pnBytesOut, /* O Number of p | |||
ayload bytes; */ | ayload bytes; */ | |||
/* input: max | ec_enc *psRangeEnc /* I/O compressor | |||
length; output: used */ | data structure */ | |||
ec_enc *psRangeEnc, /* I/O compressor | ||||
data structure */ | ||||
const SKP_int16 *pIn /* I Input speec | ||||
h frame */ | ||||
); | ); | |||
/* Low Bitrate Redundancy (LBRR) encoding. Reuse all parameters but encode with lower bitrate */ | /* Low Bitrate Redundancy (LBRR) encoding. Reuse all parameters but encode with lower bitrate */ | |||
void SKP_Silk_LBRR_encode_FLP( | void SKP_Silk_LBRR_encode_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | |||
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | |||
SKP_uint8 *pCode, /* O Payload | ||||
*/ | ||||
SKP_int32 *pnBytesOut, /* I/O Payload byt | ||||
es; in: max; out: used */ | ||||
const SKP_float xfw[] /* I Input signa l */ | const SKP_float xfw[] /* I Input signa l */ | |||
); | ); | |||
/* Initializes the Silk encoder state */ | /* Initializes the Silk encoder state */ | |||
SKP_int SKP_Silk_init_encoder_FLP( | SKP_int SKP_Silk_init_encoder_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc /* I/O Encoder sta te FLP */ | SKP_Silk_encoder_state_FLP *psEnc /* I/O Encoder sta te FLP */ | |||
); | ); | |||
/* Control the Silk encoder */ | /* Control the Silk encoder */ | |||
SKP_int SKP_Silk_control_encoder_FLP( | SKP_int SKP_Silk_control_encoder_FLP( | |||
skipping to change at line 149 | skipping to change at line 145 | |||
void SKP_Silk_find_pred_coefs_FLP( | void SKP_Silk_find_pred_coefs_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | |||
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | |||
const SKP_float res_pitch[], /* I Residual fr om pitch analysis */ | const SKP_float res_pitch[], /* I Residual fr om pitch analysis */ | |||
const SKP_float x[] /* I Speech sign al */ | const SKP_float x[] /* I Speech sign al */ | |||
); | ); | |||
/* LPC analysis */ | /* LPC analysis */ | |||
void SKP_Silk_find_LPC_FLP( | void SKP_Silk_find_LPC_FLP( | |||
SKP_float NLSF[], /* O NLSFs */ | SKP_float NLSF[], /* O NLSFs */ | |||
SKP_int *interpIndex, /* O NLSF interp . index for NLSF interp. */ | SKP_int8 *interpIndex, /* O NLSF interp . index for NLSF interp. */ | |||
const SKP_float prev_NLSFq[], /* I Previous NL SFs, for NLSF interpolation */ | const SKP_float prev_NLSFq[], /* I Previous NL SFs, for NLSF interpolation */ | |||
const SKP_int useInterpNLSFs, /* I Flag */ | const SKP_int useInterpNLSFs, /* I Flag */ | |||
const SKP_int LPC_order, /* I LPC order */ | const SKP_int LPC_order, /* I LPC order */ | |||
const SKP_float x[], /* I Input signa l */ | const SKP_float x[], /* I Input signa l */ | |||
const SKP_int subfr_length, /* I Subframe le ngth incl preceeding samples */ | const SKP_int subfr_length, /* I Subframe le ngth incl preceeding samples */ | |||
const SKP_int nb_subfr /* I: Number of s ubframes */ | const SKP_int nb_subfr /* I: Number of s ubframes */ | |||
); | ); | |||
/* LTP analysis */ | /* LTP analysis */ | |||
void SKP_Silk_find_LTP_FLP( | void SKP_Silk_find_LTP_FLP( | |||
skipping to change at line 206 | skipping to change at line 202 | |||
SKP_float r_LPC[], /* O LPC residua l signal */ | SKP_float r_LPC[], /* O LPC residua l signal */ | |||
const SKP_float PredCoef[], /* I LPC coeffic ients */ | const SKP_float PredCoef[], /* I LPC coeffic ients */ | |||
const SKP_float s[], /* I Input signa l */ | const SKP_float s[], /* I Input signa l */ | |||
const SKP_int length, /* I Length of i nput signal */ | const SKP_int length, /* I Length of i nput signal */ | |||
const SKP_int Order /* I LPC order */ | const SKP_int Order /* I LPC order */ | |||
); | ); | |||
/* LTP tap quantizer */ | /* LTP tap quantizer */ | |||
void SKP_Silk_quant_LTP_gains_FLP( | void SKP_Silk_quant_LTP_gains_FLP( | |||
SKP_float B[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (Un -)quantized LTP gains */ | SKP_float B[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (Un -)quantized LTP gains */ | |||
SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Cod | SKP_int8 cbk_index[ MAX_NB_SUBFR ], /* O Cod | |||
ebook index */ | ebook index */ | |||
SKP_int *periodicity_index, /* O Per | SKP_int8 *periodicity_index, /* O Per | |||
iodicity index */ | iodicity index */ | |||
const SKP_float W[ MAX_NB_SUBFR * LTP_ORDER * LTP_ORDER ], /* I Err or weights */ | const SKP_float W[ MAX_NB_SUBFR * LTP_ORDER * LTP_ORDER ], /* I Err or weights */ | |||
const SKP_int mu_Q10, /* I Mu value (R/D tradeoff) */ | const SKP_int mu_Q10, /* I Mu value (R/D tradeoff) */ | |||
const SKP_int lowComplexity, /* I Fla g for low complexity */ | const SKP_int lowComplexity, /* I Fla g for low complexity */ | |||
const SKP_int nb_subfr /* I num ber of subframes */ | const SKP_int nb_subfr /* I num ber of subframes */ | |||
); | ); | |||
/******************/ | /******************/ | |||
/* NLSF Quantizer */ | /* NLSF Quantizer */ | |||
/******************/ | /******************/ | |||
/* Limit, stabilize, and quantize NLSFs */ | /* Limit, stabilize, and quantize NLSFs */ | |||
void SKP_Silk_process_NLSFs_FLP( | void SKP_Silk_process_NLSFs_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder sta te FLP */ | |||
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | |||
SKP_float *pNLSF /* I/O NLSFs (quan tized output) */ | SKP_float *pNLSF /* I/O NLSFs (quan tized output) */ | |||
); | ); | |||
/* NLSF vector encoder */ | /* NLSF vector encoder */ | |||
void SKP_Silk_NLSF_MSVQ_encode_FLP( | void SKP_Silk_NLSF_MSVQ_encode_FLP( | |||
SKP_int *NLSFIndices, /* O Codebook pa th vector [ CB_STAGES ] */ | SKP_int8 *NLSFIndices, /* O Codebook pa th vector [ CB_STAGES ] */ | |||
SKP_float *pNLSF, /* I/O Quantized N LSF vector [ LPC_ORDER ] */ | SKP_float *pNLSF, /* I/O Quantized N LSF vector [ LPC_ORDER ] */ | |||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Codebook ob ject */ | const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Codebook ob ject */ | |||
const SKP_float *pNLSF_q_prev, /* I Prev. quant ized NLSF vector [LPC_ORDER] */ | const SKP_float *pNLSF_q_prev, /* I Prev. quant ized NLSF vector [LPC_ORDER] */ | |||
const SKP_float *pW, /* I NLSF weight vector [ LPC_ORDER ] */ | const SKP_float *pW, /* I NLSF weight vector [ LPC_ORDER ] */ | |||
const SKP_float NLSF_mu, /* I Rate weight for the RD optimization */ | const SKP_float NLSF_mu, /* I Rate weight for the RD optimization */ | |||
const SKP_float NLSF_mu_fluc_red, /* I Fluctuation reduction error weight */ | const SKP_float NLSF_mu_fluc_red, /* I Fluctuation reduction error weight */ | |||
const SKP_int NLSF_MSVQ_Survivors,/* I Max survivo rs from each stage */ | const SKP_int NLSF_MSVQ_Survivors,/* I Max survivo rs from each stage */ | |||
const SKP_int LPC_order, /* I LPC order */ | const SKP_int LPC_order, /* I LPC order */ | |||
const SKP_int deactivate_fluc_red /* I Deactivate fluctuation reduction */ | const SKP_int deactivate_fluc_red /* I Deactivate fluctuation reduction */ | |||
); | ); | |||
skipping to change at line 265 | skipping to change at line 261 | |||
const SKP_int8 *pCB_NLSF_Q8, /* I Codebook ve ctors [ K * LPC_order ] */ | const SKP_int8 *pCB_NLSF_Q8, /* I Codebook ve ctors [ K * LPC_order ] */ | |||
const SKP_int N, /* I Number of i nput vectors */ | const SKP_int N, /* I Number of i nput vectors */ | |||
const SKP_int K, /* I Number of c odebook vectors */ | const SKP_int K, /* I Number of c odebook vectors */ | |||
const SKP_int LPC_order /* I LPC order */ | const SKP_int LPC_order /* I LPC order */ | |||
); | ); | |||
/* NLSF vector decoder */ | /* NLSF vector decoder */ | |||
void SKP_Silk_NLSF_MSVQ_decode_FLP( | void SKP_Silk_NLSF_MSVQ_decode_FLP( | |||
SKP_float *pNLSF, /* O Decoded out put vector [ LPC_ORDER ] */ | SKP_float *pNLSF, /* O Decoded out put vector [ LPC_ORDER ] */ | |||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I NLSF codebo ok struct */ | const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I NLSF codebo ok struct */ | |||
const SKP_int *NLSFIndices, /* I NLSF indice s [ nStages ] */ | const SKP_int8 *NLSFIndices, /* I NLSF indice s [ nStages ] */ | |||
const SKP_int LPC_order /* I LPC order u sed */ | const SKP_int LPC_order /* I LPC order u sed */ | |||
); | ); | |||
/* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */ | /* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */ | |||
SKP_float SKP_Silk_residual_energy_covar_FLP( /* O Weighted re sidual energy */ | SKP_float SKP_Silk_residual_energy_covar_FLP( /* O Weighted re sidual energy */ | |||
const SKP_float *c, /* I Filter coef ficients */ | const SKP_float *c, /* I Filter coef ficients */ | |||
SKP_float *wXX, /* I/O Weighted co rrelation matrix, reg. out */ | SKP_float *wXX, /* I/O Weighted co rrelation matrix, reg. out */ | |||
const SKP_float *wXx, /* I Weighted co rrelation vector */ | const SKP_float *wXx, /* I Weighted co rrelation vector */ | |||
const SKP_float wxx, /* I Weighted co rrelation value */ | const SKP_float wxx, /* I Weighted co rrelation value */ | |||
const SKP_int D /* I Dimension */ | const SKP_int D /* I Dimension */ | |||
skipping to change at line 390 | skipping to change at line 386 | |||
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder con trol FLP */ | |||
const SKP_int16 *pIn /* I Input signa l */ | const SKP_int16 *pIn /* I Input signa l */ | |||
); | ); | |||
/****************************************/ | /****************************************/ | |||
/* Floating-point Silk NSQ wrapper */ | /* Floating-point Silk NSQ wrapper */ | |||
/****************************************/ | /****************************************/ | |||
void SKP_Silk_NSQ_wrapper_FLP( | void SKP_Silk_NSQ_wrapper_FLP( | |||
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder state F LP */ | SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder state F LP */ | |||
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder control FLP */ | SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder control FLP */ | |||
const SKP_float x[], /* I Prefiltered inp | SideInfoIndices *psIndices, /* I/O Quantization in | |||
ut signal */ | dices */ | |||
SKP_int8 q[], /* O Quantized pulse | SKP_Silk_nsq_state *psNSQ, /* I/O Noise Shaping Q | |||
signal */ | uantzation state */ | |||
const SKP_int useLBRR /* I LBRR flag | SKP_int8 pulses[], /* O Quantized pulse | |||
*/ | signal */ | |||
const SKP_float x[] /* I Prefiltered inp | ||||
ut signal */ | ||||
); | ); | |||
/* using log2() helps the fixed-point conversion */ | /* using log2() helps the fixed-point conversion */ | |||
SKP_INLINE SKP_float SKP_Silk_log2( double x ) { return ( SKP_float )( 3.32 192809488736 * log10( x ) ); } | SKP_INLINE SKP_float SKP_Silk_log2( double x ) { return ( SKP_float )( 3.32 192809488736 * log10( x ) ); } | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 9 change blocks. | ||||
27 lines changed or deleted | 21 lines changed or added | |||
SKP_Silk_pitch_est_defines.h | SKP_Silk_pitch_est_defines.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 57 | skipping to change at line 57 | |||
#define PE_MAX_FRAME_LENGTH_ST_2 (PE_MAX_FRAME_LENGTH >> 1) | #define PE_MAX_FRAME_LENGTH_ST_2 (PE_MAX_FRAME_LENGTH >> 1) | |||
#define PE_MAX_SF_FRAME_LENGTH (PE_SUB_FRAME * PE_MAX_FS_KHZ) | #define PE_MAX_SF_FRAME_LENGTH (PE_SUB_FRAME * PE_MAX_FS_KHZ) | |||
#define PE_MAX_LAG_MS 18 /* 18 ms -> 56 Hz */ | #define PE_MAX_LAG_MS 18 /* 18 ms -> 56 Hz */ | |||
#define PE_MIN_LAG_MS 2 /* 2 ms -> 500 Hz */ | #define PE_MIN_LAG_MS 2 /* 2 ms -> 500 Hz */ | |||
#define PE_MAX_LAG (PE_MAX_LAG_MS * PE_MAX_FS_KHZ) | #define PE_MAX_LAG (PE_MAX_LAG_MS * PE_MAX_FS_KHZ) | |||
#define PE_MIN_LAG (PE_MIN_LAG_MS * PE_MAX_FS_KHZ) | #define PE_MIN_LAG (PE_MIN_LAG_MS * PE_MAX_FS_KHZ) | |||
#define PE_D_SRCH_LENGTH 24 | #define PE_D_SRCH_LENGTH 24 | |||
#define PE_MAX_DECIMATE_STATE_LENGTH 7 | ||||
#define PE_NB_STAGE3_LAGS 5 | #define PE_NB_STAGE3_LAGS 5 | |||
#define PE_NB_CBKS_STAGE2 3 | #define PE_NB_CBKS_STAGE2 3 | |||
#define PE_NB_CBKS_STAGE2_EXT 11 | #define PE_NB_CBKS_STAGE2_EXT 11 | |||
#define PE_CB_mn2 1 | #define PE_CB_mn2 1 | |||
#define PE_CB_mx2 2 | #define PE_CB_mx2 2 | |||
#define PE_NB_CBKS_STAGE3_MAX 34 | #define PE_NB_CBKS_STAGE3_MAX 34 | |||
#define PE_NB_CBKS_STAGE3_MID 24 | #define PE_NB_CBKS_STAGE3_MID 24 | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_resampler_private.h | SKP_Silk_resampler_private.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_resampler_rom.h | SKP_Silk_resampler_rom.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_resampler_structs.h | SKP_Silk_resampler_structs.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_structs.h | SKP_Silk_structs.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 48 | skipping to change at line 48 | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
/************************************/ | /************************************/ | |||
/* Noise shaping quantization state */ | /* Noise shaping quantization state */ | |||
/************************************/ | /************************************/ | |||
typedef struct { | typedef struct { | |||
SKP_int16 xq[ 2 * MAX_FRAME_LENGTH ]; /* Buffer for quantiz ed output signal */ | SKP_int16 xq[ 2 * MAX_FRAME_LENGTH ]; /* Buffer for quantiz ed output signal */ | |||
SKP_int32 sLTP_shp_Q10[ 2 * MAX_FRAME_LENGTH ]; | SKP_int32 sLTP_shp_Q10[ 2 * MAX_FRAME_LENGTH ]; | |||
SKP_int32 sLPC_Q14[ MAX_FRAME_LENGTH / MAX_NB_SUBFR + NSQ_LPC_BUF_LEN GTH ]; | SKP_int32 sLPC_Q14[ MAX_SUB_FRAME_LENGTH + NSQ_LPC_BUF_LENGTH ]; | |||
SKP_int32 sAR2_Q14[ MAX_SHAPE_LPC_ORDER ]; | SKP_int32 sAR2_Q14[ MAX_SHAPE_LPC_ORDER ]; | |||
SKP_int32 sLF_AR_shp_Q12; | SKP_int32 sLF_AR_shp_Q12; | |||
SKP_int lagPrev; | SKP_int lagPrev; | |||
SKP_int sLTP_buf_idx; | SKP_int sLTP_buf_idx; | |||
SKP_int sLTP_shp_buf_idx; | SKP_int sLTP_shp_buf_idx; | |||
SKP_int32 rand_seed; | SKP_int32 rand_seed; | |||
SKP_int32 prev_inv_gain_Q16; | SKP_int32 prev_inv_gain_Q16; | |||
SKP_int rewhite_flag; | SKP_int rewhite_flag; | |||
} SKP_Silk_nsq_state; /* FIX*/ | } SKP_Silk_nsq_state; | |||
/********************************/ | /********************************/ | |||
/* VAD state */ | /* VAD state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
SKP_int32 AnaState[ 2 ]; /* Analysis filterbank stat e: 0-8 kHz */ | SKP_int32 AnaState[ 2 ]; /* Analysis filterbank stat e: 0-8 kHz */ | |||
SKP_int32 AnaState1[ 2 ]; /* Analysis filterbank stat e: 0-4 kHz */ | SKP_int32 AnaState1[ 2 ]; /* Analysis filterbank stat e: 0-4 kHz */ | |||
SKP_int32 AnaState2[ 2 ]; /* Analysis filterbank stat e: 0-2 kHz */ | SKP_int32 AnaState2[ 2 ]; /* Analysis filterbank stat e: 0-2 kHz */ | |||
SKP_int32 XnrgSubfr[ VAD_N_BANDS ]; /* Subframe energies */ | SKP_int32 XnrgSubfr[ VAD_N_BANDS ]; /* Subframe energies */ | |||
SKP_int32 NrgRatioSmth_Q8[ VAD_N_BANDS ]; /* Smoothed energy level in each band */ | SKP_int32 NrgRatioSmth_Q8[ VAD_N_BANDS ]; /* Smoothed energy level in each band */ | |||
SKP_int16 HPstate; /* State of differentiator in the lowest band */ | SKP_int16 HPstate; /* State of differentiator in the lowest band */ | |||
SKP_int32 NL[ VAD_N_BANDS ]; /* Noise energy level in ea ch band */ | SKP_int32 NL[ VAD_N_BANDS ]; /* Noise energy level in ea ch band */ | |||
SKP_int32 inv_NL[ VAD_N_BANDS ]; /* Inverse noise energy lev el in each band */ | SKP_int32 inv_NL[ VAD_N_BANDS ]; /* Inverse noise energy lev el in each band */ | |||
SKP_int32 NoiseLevelBias[ VAD_N_BANDS ]; /* Noise level estimator bi as/offset */ | SKP_int32 NoiseLevelBias[ VAD_N_BANDS ]; /* Noise level estimator bi as/offset */ | |||
SKP_int32 counter; /* Frame counter used in th e initial phase */ | SKP_int32 counter; /* Frame counter used in th e initial phase */ | |||
} SKP_Silk_VAD_state; | } SKP_Silk_VAD_state; | |||
/*******************************/ | ||||
/* Range encoder/decoder state */ | ||||
/*******************************/ | ||||
#if 0 | ||||
typedef struct { | ||||
SKP_int32 bufferLength; | ||||
SKP_int32 bufferIx; | ||||
SKP_uint32 base_Q32; | ||||
SKP_uint32 range_Q16; | ||||
SKP_int32 error; | ||||
SKP_uint8 buffer[ MAX_ARITHM_BYTES ]; /* Buffer containing payloa | ||||
d */ | ||||
/* The CELT entropy decoder */ | ||||
ec_dec range_dec_celt_state; | ||||
} SKP_Silk_range_coder_state; | ||||
#endif | ||||
#if SWITCH_TRANSITION_FILTERING | #if SWITCH_TRANSITION_FILTERING | |||
/* Variable cut-off low-pass filter state */ | /* Variable cut-off low-pass filter state */ | |||
typedef struct { | typedef struct { | |||
SKP_int32 In_LP_State[ 2 ]; /* Low pass fil ter state */ | SKP_int32 In_LP_State[ 2 ]; /* Low pass fil ter state */ | |||
SKP_int32 transition_frame_no; /* Counter whic h is mapped to a cut-off frequency */ | SKP_int32 transition_frame_no; /* Counter whic h is mapped to a cut-off frequency */ | |||
SKP_int mode; /* Operating mo de, 0: switch down, 1: switch up */ | SKP_int mode; /* Operating mo de, 0: switch down, 1: switch up */ | |||
} SKP_Silk_LP_state; | } SKP_Silk_LP_state; | |||
#endif | #endif | |||
/* Structure for one stage of MSVQ */ | /* Structure for one stage of MSVQ */ | |||
skipping to change at line 115 | skipping to change at line 99 | |||
} SKP_Silk_NLSF_CBS; | } SKP_Silk_NLSF_CBS; | |||
/* Structure containing NLSF MSVQ codebook */ | /* Structure containing NLSF MSVQ codebook */ | |||
typedef struct { | typedef struct { | |||
const SKP_int32 nStages; | const SKP_int32 nStages; | |||
/* Fields for (de)quantizing */ | /* Fields for (de)quantizing */ | |||
const SKP_Silk_NLSF_CBS *CBStages; | const SKP_Silk_NLSF_CBS *CBStages; | |||
const SKP_int *NDeltaMin_Q15; | const SKP_int *NDeltaMin_Q15; | |||
/* Fields for arithmetic (de)coding */ | /* Fields for range (de)coding */ | |||
const SKP_uint8 *CDF; | ||||
const SKP_uint8 * const *StartPtr; | const SKP_uint8 * const *StartPtr; | |||
} SKP_Silk_NLSF_CB_struct; | } SKP_Silk_NLSF_CB_struct; | |||
typedef struct { | ||||
SKP_int8 GainsIndices[ MAX_NB_SUBFR ]; | ||||
SKP_int8 LTPIndex[ MAX_NB_SUBFR ]; | ||||
SKP_int8 NLSFIndices[ NLSF_MSVQ_MAX_CB_STAGES ]; | ||||
SKP_int16 lagIndex; | ||||
SKP_int8 contourIndex; | ||||
SKP_int8 signalType; | ||||
SKP_int8 quantOffsetType; | ||||
SKP_int8 NLSFInterpCoef_Q2; | ||||
SKP_int8 PERIndex; | ||||
SKP_int8 LTP_scaleIndex; | ||||
SKP_int8 Seed; | ||||
} SideInfoIndices; | ||||
/********************************/ | /********************************/ | |||
/* Encoder state */ | /* Encoder state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
#if HIGH_PASS_INPUT | #if HIGH_PASS_INPUT | |||
SKP_int32 In_HP_State[ 2 ]; /* High pass filter state */ | SKP_int32 In_HP_State[ 2 ]; /* High pass filter state */ | |||
#endif | #endif | |||
#if SWITCH_TRANSITION_FILTERING | #if SWITCH_TRANSITION_FILTERING | |||
SKP_Silk_LP_state sLP; /* Low pass filter state */ | SKP_Silk_LP_state sLP; /* Low pass filter state */ | |||
#endif | #endif | |||
SKP_Silk_VAD_state sVAD; /* Voic e activity detector state */ | SKP_Silk_VAD_state sVAD; /* Voic e activity detector state */ | |||
SKP_Silk_nsq_state sNSQ; /* Nois | ||||
SKP_int LBRRprevLastGainIndex; | e Shape Quantizer State */ | |||
SKP_int prevSignalType; | SKP_int8 LBRRprevLastGainIndex; | |||
SKP_int typeOffsetPrev; /* Prev | SKP_int8 prevSignalType; | |||
ious signal type and quantization offset */ | ||||
SKP_int prevLag; | SKP_int prevLag; | |||
SKP_int prev_lagIndex; | ||||
SKP_int32 API_fs_Hz; /* API sampling frequency (Hz) */ | SKP_int32 API_fs_Hz; /* API sampling frequency (Hz) */ | |||
SKP_int32 prev_API_fs_Hz; /* Prev ious API sampling frequency (Hz) */ | SKP_int32 prev_API_fs_Hz; /* Prev ious API sampling frequency (Hz) */ | |||
SKP_int maxInternal_fs_kHz; /* Maxi mum internal sampling frequency (kHz) */ | SKP_int maxInternal_fs_kHz; /* Maxi mum internal sampling frequency (kHz) */ | |||
SKP_int minInternal_fs_kHz; /* Mini mum internal sampling frequency (kHz) */ | SKP_int minInternal_fs_kHz; /* Mini mum internal sampling frequency (kHz) */ | |||
SKP_int fs_kHz; /* Inte rnal sampling frequency (kHz) */ | SKP_int fs_kHz; /* Inte rnal sampling frequency (kHz) */ | |||
SKP_int fs_kHz_changed; /* Did we switch yet? */ | ||||
SKP_int nb_subfr; /* Numb er of 5 ms subframes in a frame */ | SKP_int nb_subfr; /* Numb er of 5 ms subframes in a frame */ | |||
SKP_int frame_length; /* Fram e length (samples) */ | SKP_int frame_length; /* Fram e length (samples) */ | |||
SKP_int subfr_length; /* Subf rame length (samples) */ | SKP_int subfr_length; /* Subf rame length (samples) */ | |||
SKP_int ltp_mem_length; /* Leng th of LTP memory */ | SKP_int ltp_mem_length; /* Leng th of LTP memory */ | |||
SKP_int la_pitch; /* Look -ahead for pitch analysis (samples) */ | SKP_int la_pitch; /* Look -ahead for pitch analysis (samples) */ | |||
SKP_int la_shape; /* Look -ahead for noise shape analysis (samples) */ | SKP_int la_shape; /* Look -ahead for noise shape analysis (samples) */ | |||
SKP_int shapeWinLength; /* Wind ow length for noise shape analysis (samples) */ | SKP_int shapeWinLength; /* Wind ow length for noise shape analysis (samples) */ | |||
SKP_int32 TargetRate_bps; /* Targ et bitrate (bps) */ | SKP_int32 TargetRate_bps; /* Targ et bitrate (bps) */ | |||
SKP_int PacketSize_ms; /* Numb er of milliseconds to put in each packet */ | SKP_int PacketSize_ms; /* Numb er of milliseconds to put in each packet */ | |||
SKP_int PacketLoss_perc; /* Pack et loss rate measured by farend */ | SKP_int PacketLoss_perc; /* Pack et loss rate measured by farend */ | |||
skipping to change at line 169 | skipping to change at line 163 | |||
SKP_int pitchEstimationComplexity; /* Comp lexity level for pitch estimator */ | SKP_int pitchEstimationComplexity; /* Comp lexity level for pitch estimator */ | |||
SKP_int pitchEstimationLPCOrder; /* Whit ening filter order for pitch estimator */ | SKP_int pitchEstimationLPCOrder; /* Whit ening filter order for pitch estimator */ | |||
SKP_int32 pitchEstimationThreshold_Q16; /* Thre shold for pitch estimator */ | SKP_int32 pitchEstimationThreshold_Q16; /* Thre shold for pitch estimator */ | |||
SKP_int LTPQuantLowComplexity; /* Flag for low complexity LTP quantization */ | SKP_int LTPQuantLowComplexity; /* Flag for low complexity LTP quantization */ | |||
SKP_int mu_LTP_Q9; /* Rate -distortion tradeoff in LTP quantization */ | SKP_int mu_LTP_Q9; /* Rate -distortion tradeoff in LTP quantization */ | |||
SKP_int NLSF_MSVQ_Survivors; /* Numb er of survivors in NLSF MSVQ */ | SKP_int NLSF_MSVQ_Survivors; /* Numb er of survivors in NLSF MSVQ */ | |||
SKP_int first_frame_after_reset; /* Flag for deactivating NLSF interp. and fluc. reduction after resets */ | SKP_int first_frame_after_reset; /* Flag for deactivating NLSF interp. and fluc. reduction after resets */ | |||
SKP_int controlled_since_last_payload; /* Flag for ensuring codec_control only runs once per packet */ | SKP_int controlled_since_last_payload; /* Flag for ensuring codec_control only runs once per packet */ | |||
SKP_int warping_Q16; /* W arping parameter for warped noise shaping */ | SKP_int warping_Q16; /* W arping parameter for warped noise shaping */ | |||
SKP_int useCBR; /* Flag to enable constant bitrate */ | SKP_int useCBR; /* Flag to enable constant bitrate */ | |||
SKP_int prev_nBits; /* Use to track bits used by each frame in packet */ | ||||
const SKP_uint8 *pitch_lag_low_bits_iCDF; /* Poin ter to iCDF table for low bits of pitch lag index */ | const SKP_uint8 *pitch_lag_low_bits_iCDF; /* Poin ter to iCDF table for low bits of pitch lag index */ | |||
const SKP_uint8 *pitch_contour_iCDF; /* Poin ter to iCDF table for pitch contour index */ | const SKP_uint8 *pitch_contour_iCDF; /* Poin ter to iCDF table for pitch contour index */ | |||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB[ 2 ]; /* Poin | ||||
ters to voiced/unvoiced NLSF codebooks */ | ||||
SKP_int8 VAD_flags[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_int8 LBRR_flag; | ||||
SKP_int LBRR_flags[ MAX_FRAMES_PER_PACKET ]; | ||||
SideInfoIndices indices; | ||||
SKP_int8 pulses[ MAX_FRAME_LENGTH ]; | ||||
/* Input/output buffering */ | /* Input/output buffering */ | |||
SKP_int16 inputBuf[ MAX_FRAME_LENGTH ]; /* buff er containin input signal */ | SKP_int16 inputBuf[ MAX_FRAME_LENGTH ]; /* buff er containing input signal */ | |||
SKP_int inputBufIx; | SKP_int inputBufIx; | |||
SKP_int nFramesInPayloadBuf; /* numb | SKP_int nFramesPerPacket; | |||
er of frames sitting in outputBuf */ | SKP_int nFramesAnalyzed; /* Numb | |||
SKP_int nBytesInPayloadBuf; /* numb | er of frames analyzed in current packet */ | |||
er of bytes sitting in outputBuf */ | ||||
/* Parameters For LTP scaling Control */ | /* Parameters For LTP scaling Control */ | |||
SKP_int frames_since_onset; | SKP_int frames_since_onset; | |||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB[ 2 ]; /* Poin | /* Specifically for entropy coding */ | |||
ters to voiced/unvoiced NLSF codebooks */ | SKP_int ec_prevSignalType; | |||
SKP_int16 ec_prevLagIndex; | ||||
/* Inband Low Bitrate Redundancy (LBRR) data */ | ||||
SKP_int useInBandFEC; /* Save | ||||
s the API setting for query */ | ||||
SKP_int LBRR_enabled; | ||||
SKP_int LBRR_GainIncreases; /* Numb | ||||
er of shifts to Gains to get LBRR rate Voiced frames */ | ||||
/* Bitrate control */ | /* Bitrate control */ | |||
SKP_int32 bitrateDiff; /* Accu mulated diff. between the target bitrate and the switch bitrates */ | SKP_int32 bitrateDiff; /* Accu mulated diff. between the target bitrate and the switch bitrates */ | |||
SKP_int32 bitrate_threshold_up; /* Thre shold for switching to a higher internal sample frequency */ | SKP_int32 bitrate_threshold_up; /* Thre shold for switching to a higher internal sample frequency */ | |||
SKP_int32 bitrate_threshold_down; /* Thre shold for switching to a lower internal sample frequency */ | SKP_int32 bitrate_threshold_down; /* Thre shold for switching to a lower internal sample frequency */ | |||
SKP_Silk_resampler_state_struct resampler_state; | SKP_Silk_resampler_state_struct resampler_state; | |||
/* DTX */ | /* DTX */ | |||
SKP_int noSpeechCounter; /* Coun ts concecutive nonactive frames, used by DTX */ | ||||
SKP_int useDTX; /* Flag to enable DTX */ | SKP_int useDTX; /* Flag to enable DTX */ | |||
SKP_int inDTX; /* Flag to signal DTX period */ | SKP_int inDTX; /* Flag to signal DTX period */ | |||
SKP_int LBRR_nBytes; | SKP_int noSpeechCounter; /* Coun ts concecutive nonactive frames, used by DTX */ | |||
/* Buffers */ | /* Inband Low Bitrate Redundancy (LBRR) data */ | |||
SKP_int8 q[ MAX_FRAME_LENGTH * MAX_FRAMES_PER | SKP_int useInBandFEC; /* Save | |||
_PACKET ]; /* pulse signal buffer */ | s the API setting for query */ | |||
SKP_int8 q_LBRR[ MAX_FRAME_LENGTH * MAX_FRAMES_P | SKP_int LBRR_enabled; /* Depe | |||
ER_PACKET ]; /* pulse signal buffer */ | nds on useInBandFRC, bitrate and packet loss rate */ | |||
SKP_int quantOffsetType[ MAX_FRAMES_PER_PACKET | SKP_int LBRR_GainIncreases; /* Numb | |||
]; | er of shifts to Gains to get LBRR rate Voiced frames */ | |||
SKP_int signalType[ MAX_FRAMES_PER_PACKET ]; | SideInfoIndices indices_LBRR[ MAX_FRAMES_PER_PACKET ]; | |||
SKP_int8 pulses_LBRR[ MAX_FRAMES_PER_PACKET ] | ||||
[ MAX_FRAME_LENGTH ]; | ||||
} SKP_Silk_encoder_state; | } SKP_Silk_encoder_state; | |||
/************************/ | ||||
/* Encoder control */ | ||||
/************************/ | ||||
typedef struct { | ||||
/* Quantization indices */ | ||||
SKP_int lagIndex; | ||||
SKP_int contourIndex; | ||||
SKP_int PERIndex; | ||||
SKP_int LTPIndex[ MAX_NB_SUBFR ]; | ||||
SKP_int NLSFIndices[ NLSF_MSVQ_MAX_CB_STAGES ]; /* NLSF path of qu | ||||
antized LSF vector */ | ||||
SKP_int NLSFInterpCoef_Q2; | ||||
SKP_int GainsIndices[ MAX_NB_SUBFR ]; | ||||
SKP_int32 Seed; | ||||
SKP_int LTP_scaleIndex; | ||||
SKP_int RateLevelIndex; | ||||
SKP_int quantOffsetType; | ||||
SKP_int signalType; | ||||
/* Prediction and coding parameters */ | ||||
SKP_int pitchL[ MAX_NB_SUBFR ]; | ||||
SKP_int LBRR_usage; /* Low bitrate redundancy u | ||||
sage */ | ||||
} SKP_Silk_encoder_control; | ||||
/* Struct for Packet Loss Concealment */ | /* Struct for Packet Loss Concealment */ | |||
typedef struct { | typedef struct { | |||
SKP_int32 pitchL_Q8; /* Pitch lag to use for voi ced concealment */ | SKP_int32 pitchL_Q8; /* Pitch lag to use for voi ced concealment */ | |||
SKP_int16 LTPCoef_Q14[ LTP_ORDER ]; /* LTP coeficients to use f or voiced concealment */ | SKP_int16 LTPCoef_Q14[ LTP_ORDER ]; /* LTP coeficients to use f or voiced concealment */ | |||
SKP_int16 prevLPC_Q12[ MAX_LPC_ORDER ]; | SKP_int16 prevLPC_Q12[ MAX_LPC_ORDER ]; | |||
SKP_int last_frame_lost; /* Was previous frame lost */ | SKP_int last_frame_lost; /* Was previous frame lost */ | |||
SKP_int32 rand_seed; /* Seed for unvoiced signal generation */ | SKP_int32 rand_seed; /* Seed for unvoiced signal generation */ | |||
SKP_int16 randScale_Q14; /* Scaling of unvoiced rand om signal */ | SKP_int16 randScale_Q14; /* Scaling of unvoiced rand om signal */ | |||
SKP_int32 conc_energy; | SKP_int32 conc_energy; | |||
SKP_int conc_energy_shift; | SKP_int conc_energy_shift; | |||
skipping to change at line 261 | skipping to change at line 237 | |||
SKP_int32 CNG_synth_state[ MAX_LPC_ORDER ]; | SKP_int32 CNG_synth_state[ MAX_LPC_ORDER ]; | |||
SKP_int32 CNG_smth_Gain_Q16; | SKP_int32 CNG_smth_Gain_Q16; | |||
SKP_int32 rand_seed; | SKP_int32 rand_seed; | |||
SKP_int fs_kHz; | SKP_int fs_kHz; | |||
} SKP_Silk_CNG_struct; | } SKP_Silk_CNG_struct; | |||
/********************************/ | /********************************/ | |||
/* Decoder state */ | /* Decoder state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
//SKP_Silk_range_coder_state sRC; /* Range coder state */ | ||||
SKP_int32 prev_inv_gain_Q16; | SKP_int32 prev_inv_gain_Q16; | |||
SKP_int32 sLTP_Q16[ 2 * MAX_FRAME_LENGTH ]; | SKP_int32 sLTP_Q16[ 2 * MAX_FRAME_LENGTH ]; | |||
SKP_int32 sLPC_Q14[ MAX_FRAME_LENGTH / MAX_NB_SUBFR + MAX_LPC_ORD ER ]; | SKP_int32 sLPC_Q14[ MAX_SUB_FRAME_LENGTH + MAX_LPC_ORDER ]; | |||
SKP_int32 exc_Q10[ MAX_FRAME_LENGTH ]; | SKP_int32 exc_Q10[ MAX_FRAME_LENGTH ]; | |||
SKP_int16 outBuf[ 2 * MAX_FRAME_LENGTH ]; /* Buffer f or output signal */ | SKP_int16 outBuf[ 2 * MAX_FRAME_LENGTH ]; /* Buffer f or output signal */ | |||
SKP_int lagPrev; /* Previous Lag */ | SKP_int lagPrev; /* Previous Lag */ | |||
SKP_int LastGainIndex; /* Previous | SKP_int8 LastGainIndex; /* Previous | |||
gain index */ | gain index */ | |||
SKP_int LastGainIndex_EnhLayer; /* Previous | ||||
gain index */ | ||||
SKP_int typeOffsetPrev; /* Previous | ||||
signal type and quantization offset */ | ||||
SKP_int32 HPState[ DEC_HP_ORDER ]; /* HP filte r state */ | SKP_int32 HPState[ DEC_HP_ORDER ]; /* HP filte r state */ | |||
const SKP_int32 *HP_A; /* HP filte r AR coefficients */ | const SKP_int32 *HP_A; /* HP filte r AR coefficients */ | |||
const SKP_int32 *HP_B; /* HP filte r MA coefficients */ | const SKP_int32 *HP_B; /* HP filte r MA coefficients */ | |||
SKP_int fs_kHz; /* Sampling frequency in kHz */ | SKP_int fs_kHz; /* Sampling frequency in kHz */ | |||
SKP_int32 prev_API_sampleRate; /* Previous API sample frequency (Hz) */ | SKP_int32 prev_API_sampleRate; /* Previous API sample frequency (Hz) */ | |||
SKP_int nb_subfr; /* Number o f 5 ms subframes in a frame */ | SKP_int nb_subfr; /* Number o f 5 ms subframes in a frame */ | |||
SKP_int frame_length; /* Frame le ngth (samples) */ | SKP_int frame_length; /* Frame le ngth (samples) */ | |||
SKP_int subfr_length; /* Subframe length (samples) */ | SKP_int subfr_length; /* Subframe length (samples) */ | |||
SKP_int ltp_mem_length; /* Length o f LTP memory */ | SKP_int ltp_mem_length; /* Length o f LTP memory */ | |||
SKP_int LPC_order; /* LPC orde r */ | SKP_int LPC_order; /* LPC orde r */ | |||
SKP_int prevNLSF_Q15[ MAX_LPC_ORDER ]; /* Used to interpolate LSFs */ | SKP_int prevNLSF_Q15[ MAX_LPC_ORDER ]; /* Used to interpolate LSFs */ | |||
SKP_int first_frame_after_reset; /* Flag for deactivating NLSF interp. and fluc. reduction after resets */ | SKP_int first_frame_after_reset; /* Flag for deactivating NLSF interp. and fluc. reduction after resets */ | |||
const SKP_uint8 *pitch_lag_low_bits_iCDF; /* Pointer to iCDF table for low bits of pitch lag index */ | const SKP_uint8 *pitch_lag_low_bits_iCDF; /* Pointer to iCDF table for low bits of pitch lag index */ | |||
const SKP_uint8 *pitch_contour_iCDF; /* Pointer to iCDF table for pitch contour index */ | const SKP_uint8 *pitch_contour_iCDF; /* Pointer to iCDF table for pitch contour index */ | |||
/* For buffering payload in case of more frames per packet */ | /* For buffering payload in case of more frames per packet */ | |||
SKP_int nBytesLeft; | ||||
SKP_int nFramesDecoded; | SKP_int nFramesDecoded; | |||
SKP_int nFramesInPacket; | SKP_int nFramesPerPacket; | |||
SKP_int moreInternalDecoderFrames; | ||||
SKP_int FrameTermination; | /* Specifically for entropy coding */ | |||
SKP_int ec_prevSignalType; | ||||
SKP_int16 ec_prevLagIndex; | ||||
SKP_Silk_resampler_state_struct resampler_state; | SKP_int VAD_flags[ MAX_FRAMES_PER_PACKET ]; | |||
SKP_int LBRR_flag; | ||||
SKP_int LBRR_flags[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_Silk_resampler_state_struct resampler_state; | ||||
const SKP_Silk_NLSF_CB_struct *psNLSF_CB[ 2 ]; /* Pointers to voic ed/unvoiced NLSF codebooks */ | const SKP_Silk_NLSF_CB_struct *psNLSF_CB[ 2 ]; /* Pointers to voic ed/unvoiced NLSF codebooks */ | |||
SKP_int signalType[ MAX_FRAMES_PER_PACKET ]; | /* Quantization indices */ | |||
SKP_int quantOffsetType[ MAX_FRAMES_PER_PACKET ]; | SideInfoIndices indices; | |||
SKP_int GainsIndices[ MAX_FRAMES_PER_PACKET ][ MAX_NB_ | ||||
SUBFR ]; | ||||
SKP_int GainsIndices_EnhLayer[ MAX_FRAMES_PER_PACKET ][ MAX_NB_ | ||||
SUBFR ]; | ||||
SKP_int NLSFIndices[ MAX_FRAMES_PER_PACKET ][ NLSF_MS | ||||
VQ_MAX_CB_STAGES ]; | ||||
SKP_int NLSFInterpCoef_Q2[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_int lagIndex[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_int contourIndex[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_int PERIndex[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_int LTPIndex[ MAX_FRAMES_PER_PACKET ][ MAX_NB_ | ||||
SUBFR ]; | ||||
SKP_int LTP_scaleIndex[ MAX_FRAMES_PER_PACKET ]; | ||||
SKP_int Seed[ MAX_FRAMES_PER_PACKET ]; | ||||
/* Parameters used to investigate if inband FEC is used */ | ||||
SKP_int vadFlag; | ||||
SKP_int no_FEC_counter; /* Counts n | ||||
umber of frames wo inband FEC */ | ||||
SKP_int inband_FEC_offset; /* 0: no FE | ||||
C, 1: FEC with 1 packet offset, 2: FEC w 2 packets offset */ | ||||
/* CNG state */ | /* CNG state */ | |||
SKP_Silk_CNG_struct sCNG; | SKP_Silk_CNG_struct sCNG; | |||
/* Stuff used for PLC */ | /* Stuff used for PLC */ | |||
SKP_int lossCnt; | SKP_int lossCnt; | |||
SKP_int prevSignalType; | SKP_int prevSignalType; | |||
SKP_Silk_PLC_struct sPLC; | SKP_Silk_PLC_struct sPLC; | |||
} SKP_Silk_decoder_state; | } SKP_Silk_decoder_state; | |||
/************************/ | /************************/ | |||
/* Decoder control */ | /* Decoder control */ | |||
/************************/ | /************************/ | |||
typedef struct { | typedef struct { | |||
/* prediction and coding parameters */ | /* prediction and coding parameters */ | |||
SKP_int pitchL[ MAX_NB_SUBFR ]; | SKP_int pitchL[ MAX_NB_SUBFR ]; | |||
SKP_int32 Gains_Q16[ MAX_NB_SUBFR ]; | SKP_int32 Gains_Q16[ MAX_NB_SUBFR ]; | |||
SKP_int32 Seed; | ||||
/* holds interpolated and final coefficients, 4-byte aligned */ | /* holds interpolated and final coefficients, 4-byte aligned */ | |||
SKP_DWORD_ALIGN SKP_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ]; | SKP_DWORD_ALIGN SKP_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ]; | |||
SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ]; | SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ]; | |||
SKP_int LTP_scale_Q14; | SKP_int LTP_scale_Q14; | |||
/* quantization indices */ | ||||
SKP_int PERIndex; | ||||
SKP_int RateLevelIndex; | ||||
SKP_int quantOffsetType; | ||||
SKP_int signalType; | ||||
SKP_int NLSFInterpCoef_Q2; | ||||
} SKP_Silk_decoder_control; | } SKP_Silk_decoder_control; | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 29 change blocks. | ||||
125 lines changed or deleted | 67 lines changed or added | |||
SKP_Silk_structs_FIX.h | SKP_Silk_structs_FIX.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 44 | skipping to change at line 44 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
/********************************/ | /********************************/ | |||
/* Noise shaping analysis state */ | /* Noise shaping analysis state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
SKP_int LastGainIndex; | SKP_int8 LastGainIndex; | |||
SKP_int32 HarmBoost_smth_Q16; | SKP_int32 HarmBoost_smth_Q16; | |||
SKP_int32 HarmShapeGain_smth_Q16; | SKP_int32 HarmShapeGain_smth_Q16; | |||
SKP_int32 Tilt_smth_Q16; | SKP_int32 Tilt_smth_Q16; | |||
} SKP_Silk_shape_state_FIX; | } SKP_Silk_shape_state_FIX; | |||
/********************************/ | /********************************/ | |||
/* Prefilter state */ | /* Prefilter state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
SKP_int16 sLTP_shp[ LTP_BUF_LENGTH ]; | SKP_int16 sLTP_shp[ LTP_BUF_LENGTH ]; | |||
skipping to change at line 87 | skipping to change at line 87 | |||
typedef struct { | typedef struct { | |||
SKP_Silk_encoder_state sCmn; /* Comm on struct, shared with floating-point code */ | SKP_Silk_encoder_state sCmn; /* Comm on struct, shared with floating-point code */ | |||
#if HIGH_PASS_INPUT | #if HIGH_PASS_INPUT | |||
SKP_int32 variable_HP_smth1_Q15; /* Stat e of first smoother */ | SKP_int32 variable_HP_smth1_Q15; /* Stat e of first smoother */ | |||
SKP_int32 variable_HP_smth2_Q15; /* Stat e of second smoother */ | SKP_int32 variable_HP_smth2_Q15; /* Stat e of second smoother */ | |||
#endif | #endif | |||
SKP_Silk_shape_state_FIX sShape; /* Shap e state */ | SKP_Silk_shape_state_FIX sShape; /* Shap e state */ | |||
SKP_Silk_prefilter_state_FIX sPrefilt; /* Pref ilter State */ | SKP_Silk_prefilter_state_FIX sPrefilt; /* Pref ilter State */ | |||
SKP_Silk_predict_state_FIX sPred; /* Pred iction state */ | SKP_Silk_predict_state_FIX sPred; /* Pred iction state */ | |||
SKP_Silk_nsq_state sNSQ; /* Nois | ||||
e Shape Quantizer State */ | ||||
SKP_Silk_nsq_state sNSQ_LBRR; /* Nois | ||||
e Shape Quantizer State ( for low bitrate redundancy ) */ | ||||
/* Buffer for find pitch and noise shape analysis */ | /* Buffer for find pitch and noise shape analysis */ | |||
SKP_DWORD_ALIGN SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; | SKP_DWORD_ALIGN SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; | |||
SKP_int LTPCorr_Q15; /* Norm alized correlation from pitch lag estimator */ | SKP_int LTPCorr_Q15; /* Norm alized correlation from pitch lag estimator */ | |||
SKP_int32 SNR_dB_Q7; /* Qual ity setting */ | SKP_int32 SNR_dB_Q7; /* Qual ity setting */ | |||
SKP_int BufferedInChannel_ms; /* Simu lated number of ms buffer because of exceeded TargetRate_bps */ | SKP_int BufferedInChannel_ms; /* Simu lated number of ms buffer because of exceeded TargetRate_bps */ | |||
SKP_int speech_activity_Q8; /* Spee ch activity in Q8 */ | SKP_int speech_activity_Q8; /* Spee ch activity in Q8 */ | |||
/* Parameters For LTP scaling Control */ | /* Parameters For LTP scaling Control */ | |||
SKP_int prevLTPredCodGain_Q7; | SKP_int prevLTPredCodGain_Q7; | |||
SKP_int HPLTPredCodGain_Q7; | SKP_int HPLTPredCodGain_Q7; | |||
SKP_int32 inBandFEC_SNR_comp_Q8; /* Comp ensation to SNR_dB when using inband FEC Voiced */ | SKP_int32 inBandFEC_SNR_comp_Q7; /* Comp ensation to SNR_dB when using inband FEC Voiced */ | |||
} SKP_Silk_encoder_state_FIX; | } SKP_Silk_encoder_state_FIX; | |||
/************************/ | /************************/ | |||
/* Encoder control FIX */ | /* Encoder control FIX */ | |||
/************************/ | /************************/ | |||
typedef struct { | typedef struct { | |||
SKP_Silk_encoder_control sCmn; /* Comm | ||||
on struct, shared with floating-point code */ | ||||
/* Prediction and coding parameters */ | /* Prediction and coding parameters */ | |||
SKP_int32 Gains_Q16[ MAX_NB_SUBFR ]; | SKP_int32 Gains_Q16[ MAX_NB_SUBFR ]; | |||
SKP_DWORD_ALIGN SKP_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ]; | SKP_DWORD_ALIGN SKP_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ]; | |||
SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ]; | SKP_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ]; | |||
SKP_int LTP_scale_Q14; | SKP_int LTP_scale_Q14; | |||
SKP_int pitchL[ MAX_NB_SUBFR ]; | ||||
/* Noise shaping parameters */ | /* Noise shaping parameters */ | |||
/* Testing */ | /* Testing */ | |||
SKP_DWORD_ALIGN SKP_int16 AR1_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ] ; | SKP_DWORD_ALIGN SKP_int16 AR1_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ] ; | |||
SKP_DWORD_ALIGN SKP_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ] ; | SKP_DWORD_ALIGN SKP_int16 AR2_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ] ; | |||
SKP_int32 LF_shp_Q14[ MAX_NB_SUBFR ]; /* Packs two in t16 coefficients per int32 value */ | SKP_int32 LF_shp_Q14[ MAX_NB_SUBFR ]; /* Packs two in t16 coefficients per int32 value */ | |||
SKP_int GainsPre_Q14[ MAX_NB_SUBFR ]; | SKP_int GainsPre_Q14[ MAX_NB_SUBFR ]; | |||
SKP_int HarmBoost_Q14[ MAX_NB_SUBFR ]; | SKP_int HarmBoost_Q14[ MAX_NB_SUBFR ]; | |||
SKP_int Tilt_Q14[ MAX_NB_SUBFR ]; | SKP_int Tilt_Q14[ MAX_NB_SUBFR ]; | |||
SKP_int HarmShapeGain_Q14[ MAX_NB_SUBFR ]; | SKP_int HarmShapeGain_Q14[ MAX_NB_SUBFR ]; | |||
End of changes. 6 change blocks. | ||||
10 lines changed or deleted | 4 lines changed or added | |||
SKP_Silk_structs_FLP.h | SKP_Silk_structs_FLP.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 43 | skipping to change at line 43 | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
/********************************/ | /********************************/ | |||
/* Noise shaping analysis state */ | /* Noise shaping analysis state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
SKP_int LastGainIndex; | SKP_int8 LastGainIndex; | |||
SKP_float HarmBoost_smth; | SKP_float HarmBoost_smth; | |||
SKP_float HarmShapeGain_smth; | SKP_float HarmShapeGain_smth; | |||
SKP_float Tilt_smth; | SKP_float Tilt_smth; | |||
} SKP_Silk_shape_state_FLP; | } SKP_Silk_shape_state_FLP; | |||
/********************************/ | /********************************/ | |||
/* Prefilter state */ | /* Prefilter state */ | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
SKP_float sLTP_shp[ LTP_BUF_LENGTH ]; | SKP_float sLTP_shp[ LTP_BUF_LENGTH ]; | |||
skipping to change at line 85 | skipping to change at line 85 | |||
/********************************/ | /********************************/ | |||
typedef struct { | typedef struct { | |||
SKP_Silk_encoder_state sCmn; /* Comm on struct, shared with fixed-point code */ | SKP_Silk_encoder_state sCmn; /* Comm on struct, shared with fixed-point code */ | |||
SKP_float variable_HP_smth1; /* Stat e of first smoother */ | SKP_float variable_HP_smth1; /* Stat e of first smoother */ | |||
SKP_float variable_HP_smth2; /* Stat e of second smoother */ | SKP_float variable_HP_smth2; /* Stat e of second smoother */ | |||
SKP_Silk_shape_state_FLP sShape; /* Nois e shaping state */ | SKP_Silk_shape_state_FLP sShape; /* Nois e shaping state */ | |||
SKP_Silk_prefilter_state_FLP sPrefilt; /* Pref ilter State */ | SKP_Silk_prefilter_state_FLP sPrefilt; /* Pref ilter State */ | |||
SKP_Silk_predict_state_FLP sPred; /* Pred iction State */ | SKP_Silk_predict_state_FLP sPred; /* Pred iction State */ | |||
SKP_Silk_nsq_state sNSQ; /* Nois | ||||
e Shape Quantizer State */ | ||||
SKP_Silk_nsq_state sNSQ_LBRR; /* Nois | ||||
e Shape Quantizer State ( for low bitrate redundancy )*/ | ||||
/* Buffer for find pitch and noise shape analysis */ | /* Buffer for find pitch and noise shape analysis */ | |||
SKP_float x_buf[ 2 * MAX_FRAME_LENGTH + LA_SH APE_MAX ];/* Buffer for find pitch and noise shape analysis */ | SKP_float x_buf[ 2 * MAX_FRAME_LENGTH + LA_SH APE_MAX ];/* Buffer for find pitch and noise shape analysis */ | |||
SKP_float LTPCorr; /* Norm alized correlation from pitch lag estimator */ | SKP_float LTPCorr; /* Norm alized correlation from pitch lag estimator */ | |||
SKP_float SNR_dB; /* Qual ity setting */ | SKP_float SNR_dB; /* Qual ity setting */ | |||
SKP_float BufferedInChannel_ms; /* Simu lated number of ms buffer in channel because of exceeded TargetRate_bps */ | SKP_float BufferedInChannel_ms; /* Simu lated number of ms buffer in channel because of exceeded TargetRate_bps */ | |||
SKP_float speech_activity; /* Spee ch activity */ | SKP_float speech_activity; /* Spee ch activity */ | |||
/* Parameters for LTP scaling control */ | /* Parameters for LTP scaling control */ | |||
SKP_float prevLTPredCodGain; | SKP_float prevLTPredCodGain; | |||
SKP_float HPLTPredCodGain; | SKP_float HPLTPredCodGain; | |||
SKP_float inBandFEC_SNR_comp; /* Comp ensation to SNR_DB when using inband FEC Voiced */ | SKP_float inBandFEC_SNR_comp; /* Comp ensation to SNR_DB when using inband FEC Voiced */ | |||
} SKP_Silk_encoder_state_FLP; | } SKP_Silk_encoder_state_FLP; | |||
/************************/ | /************************/ | |||
/* Encoder control FLP */ | /* Encoder control FLP */ | |||
/************************/ | /************************/ | |||
typedef struct { | typedef struct { | |||
SKP_Silk_encoder_control sCmn; /* Comm | ||||
on struct, shared with fixed-point code */ | ||||
/* Prediction and coding parameters */ | /* Prediction and coding parameters */ | |||
SKP_float Gains[MAX_NB_SUBFR]; | SKP_float Gains[MAX_NB_SUBFR]; | |||
SKP_float PredCoef[ 2 ][ MAX_L PC_ORDER ]; /* holds interpolated and final coefficients */ | SKP_float PredCoef[ 2 ][ MAX_L PC_ORDER ]; /* holds interpolated and final coefficients */ | |||
SKP_float LTPCoef[LTP_ORDER * MAX_NB_SUBFR]; | SKP_float LTPCoef[LTP_ORDER * MAX_NB_SUBFR]; | |||
SKP_float LTP_scale; | SKP_float LTP_scale; | |||
SKP_int pitchL[ MAX_NB_SUBFR ]; | ||||
/* Noise shaping parameters */ | /* Noise shaping parameters */ | |||
SKP_float AR1[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ]; | SKP_float AR1[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ]; | |||
SKP_float AR2[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ]; | SKP_float AR2[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ]; | |||
SKP_float LF_MA_shp[ MAX_N B_SUBFR ]; | SKP_float LF_MA_shp[ MAX_N B_SUBFR ]; | |||
SKP_float LF_AR_shp[ MAX_N B_SUBFR ]; | SKP_float LF_AR_shp[ MAX_N B_SUBFR ]; | |||
SKP_float GainsPre[ MAX_N B_SUBFR ]; | SKP_float GainsPre[ MAX_N B_SUBFR ]; | |||
SKP_float HarmBoost[ MAX_N B_SUBFR ]; | SKP_float HarmBoost[ MAX_N B_SUBFR ]; | |||
SKP_float Tilt[ MAX_N B_SUBFR ]; | SKP_float Tilt[ MAX_N B_SUBFR ]; | |||
SKP_float HarmShapeGain[ MAX_N B_SUBFR ]; | SKP_float HarmShapeGain[ MAX_N B_SUBFR ]; | |||
End of changes. 5 change blocks. | ||||
9 lines changed or deleted | 3 lines changed or added | |||
SKP_Silk_tables.h | SKP_Silk_tables.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 85 | skipping to change at line 85 | |||
extern const SKP_uint8 SKP_Silk_LTP_per_index_iCDF[ 3 ]; /* 3 */ | extern const SKP_uint8 SKP_Silk_LTP_per_index_iCDF[ 3 ]; /* 3 */ | |||
extern const SKP_uint8 * const SKP_Silk_LTP_gain_iCDF_ptrs[ NB_LTP_CBKS ]; /* 3 */ | extern const SKP_uint8 * const SKP_Silk_LTP_gain_iCDF_ptrs[ NB_LTP_CBKS ]; /* 3 */ | |||
extern const SKP_uint8 * const SKP_Silk_LTP_gain_BITS_Q5_ptrs[ NB_LTP_CBKS ]; /* 3 */ | extern const SKP_uint8 * const SKP_Silk_LTP_gain_BITS_Q5_ptrs[ NB_LTP_CBKS ]; /* 3 */ | |||
extern const SKP_int16 SKP_Silk_LTP_gain_middle_avg_RD_Q14; | extern const SKP_int16 SKP_Silk_LTP_gain_middle_avg_RD_Q14; | |||
extern const SKP_int8 * const SKP_Silk_LTP_vq_ptrs_Q7[ NB_LTP_CBKS ]; /* 168 */ | extern const SKP_int8 * const SKP_Silk_LTP_vq_ptrs_Q7[ NB_LTP_CBKS ]; /* 168 */ | |||
extern const SKP_int8 SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ]; /* 3 */ | extern const SKP_int8 SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ]; /* 3 */ | |||
extern const SKP_uint8 SKP_Silk_LTPscale_iCDF[ 3 ]; /* 4 */ | extern const SKP_uint8 SKP_Silk_LTPscale_iCDF[ 3 ]; /* 4 */ | |||
extern const SKP_int16 SKP_Silk_LTPScales_table_Q14[ 3 ]; | extern const SKP_int16 SKP_Silk_LTPScales_table_Q14[ 3 ]; | |||
const SKP_uint8 SKP_Silk_type_offset_iCDF[6]; | extern const SKP_uint8 SKP_Silk_type_offset_VAD_iCDF[4]; | |||
/* 6 */ | /* 4 */ | |||
const SKP_uint8 SKP_Silk_type_offset_joint_iCDF[6][6]; | extern const SKP_uint8 SKP_Silk_type_offset_no_VAD_iCDF[2]; | |||
/* 36 */ | /* 2 */ | |||
extern const SKP_uint8 * const SKP_Silk_LBRR_flags_iCDF_ptr[2]; | ||||
/* 10 */ | ||||
extern const SKP_uint8 SKP_Silk_NLSF_interpolation_factor_iCDF[ 5 ]; /* 5 */ | extern const SKP_uint8 SKP_Silk_NLSF_interpolation_factor_iCDF[ 5 ]; /* 5 */ | |||
/* NLSF codebooks */ | /* NLSF codebooks */ | |||
extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_16, SKP_Silk_NLSF_CB 1_16; | extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_16, SKP_Silk_NLSF_CB 1_16; | |||
extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_10, SKP_Silk_NLSF_CB 1_10; | extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_10, SKP_Silk_NLSF_CB 1_10; | |||
/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB S NR */ | /* Piece-wise linear mapping from bitrate in kbps to coding quality in dB S NR */ | |||
extern const SKP_uint16 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ]; | extern const SKP_int32 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ]; | |||
extern const SKP_uint16 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ]; | extern const SKP_int32 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ]; | |||
extern const SKP_uint16 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ]; | extern const SKP_int32 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ]; | |||
extern const SKP_uint16 SNR_table_Q1[ TARGET_RATE_TAB_SZ ]; | extern const SKP_int16 SNR_table_Q1[ TARGET_RATE_TAB_SZ ]; | |||
/* Decoder high-pass filter coefficients */ | /* Decoder high-pass filter coefficients */ | |||
extern const SKP_int32 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ]; /* 2 */ | extern const SKP_int32 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ]; /* 2 */ | |||
extern const SKP_int32 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ]; /* 3 */ | extern const SKP_int32 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ]; /* 3 */ | |||
extern const SKP_int32 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ]; /* 2 */ | extern const SKP_int32 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ]; /* 2 */ | |||
extern const SKP_int32 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ]; /* 3 */ | extern const SKP_int32 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ]; /* 3 */ | |||
extern const SKP_int32 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ]; /* 2 */ | extern const SKP_int32 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ]; /* 2 */ | |||
extern const SKP_int32 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ]; /* 3 */ | extern const SKP_int32 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ]; /* 3 */ | |||
/* Table for frame termination indication */ | ||||
extern const SKP_uint8 SKP_Silk_LBRR_Present_iCDF[ 2 ]; | ||||
/* Table for random seed */ | ||||
extern const SKP_uint8 SKP_Silk_Seed_iCDF[ 4 ]; | ||||
/* Quantization offsets */ | /* Quantization offsets */ | |||
extern const SKP_int16 SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ]; | extern const SKP_int16 SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ]; | |||
#if SWITCH_TRANSITION_FILTERING | #if SWITCH_TRANSITION_FILTERING | |||
/* Interpolation points for filter coefficients used in the bandwidth trans ition smoother */ | /* Interpolation points for filter coefficients used in the bandwidth trans ition smoother */ | |||
extern const SKP_int32 SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ]; | extern const SKP_int32 SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ]; | |||
extern const SKP_int32 SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ]; | extern const SKP_int32 SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ]; | |||
#endif | #endif | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
End of changes. 4 change blocks. | ||||
15 lines changed or deleted | 12 lines changed or added | |||
SKP_Silk_tables_NLSF_CB.h | SKP_Silk_tables_NLSF_CB.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_Silk_tuning_parameters.h | SKP_Silk_tuning_parameters.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
skipping to change at line 83 | skipping to change at line 83 | |||
#define VARIABLE_HP_MIN_FREQ 80.0f | #define VARIABLE_HP_MIN_FREQ 80.0f | |||
#define VARIABLE_HP_MAX_FREQ 150.0f | #define VARIABLE_HP_MAX_FREQ 150.0f | |||
/* Max absolute difference between log2 of pitch frequency and smoother sta te, to enter the smoother */ | /* Max absolute difference between log2 of pitch frequency and smoother sta te, to enter the smoother */ | |||
#define VARIABLE_HP_MAX_DELTA_FREQ 0.4f | #define VARIABLE_HP_MAX_DELTA_FREQ 0.4f | |||
/***********/ | /***********/ | |||
/* Various */ | /* Various */ | |||
/***********/ | /***********/ | |||
/* Required speech activity for counting frame as active */ | /* VAD threshold */ | |||
#define WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES 0.7f | #define SPEECH_ACTIVITY_DTX_THRES 0.2f | |||
#define SPEECH_ACTIVITY_DTX_THRES 0.1f | /* Speech Activity LBRR enable threshold */ | |||
#define LBRR_SPEECH_ACTIVITY_THRES 0.3f | ||||
/* Speech Activity LBRR enable threshold (needs tuning) */ | ||||
#define LBRR_SPEECH_ACTIVITY_THRES 0.5f | ||||
/*************************/ | /*************************/ | |||
/* Perceptual parameters */ | /* Perceptual parameters */ | |||
/*************************/ | /*************************/ | |||
/* reduction in coding SNR during low speech activity */ | /* reduction in coding SNR during low speech activity */ | |||
#define BG_SNR_DECR_dB 4.0f | #define BG_SNR_DECR_dB 4.0f | |||
/* factor for reducing quantization noise during voiced speech */ | /* factor for reducing quantization noise during voiced speech */ | |||
#define HARM_SNR_INCR_dB 2.0f | #define HARM_SNR_INCR_dB 2.0f | |||
End of changes. 3 change blocks. | ||||
7 lines changed or deleted | 5 lines changed or added | |||
SKP_Silk_typedef.h | SKP_Silk_typedef.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
SKP_debug.h | SKP_debug.h | |||
---|---|---|---|---|
/*********************************************************************** | /*********************************************************************** | |||
Copyright (c) 2006-2010, Skype Limited. All rights reserved. | Copyright (c) 2006-2011, Skype Limited. All rights reserved. | |||
Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
modification, (subject to the limitations in the disclaimer below) | modification, (subject to the limitations in the disclaimer below) | |||
are permitted provided that the following conditions are met: | are permitted provided that the following conditions are met: | |||
- Redistributions of source code must retain the above copyright notice, | - Redistributions of source code must retain the above copyright notice, | |||
this list of conditions and the following disclaimer. | this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of Skype Limited, nor the names of specific | - Neither the name of Skype Limited, nor the names of specific | |||
contributors, may be used to endorse or promote products derived from | contributors, may be used to endorse or promote products derived from | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
celt.h | celt.h | |||
---|---|---|---|---|
skipping to change at line 22 | skipping to change at line 22 | |||
modification, are permitted provided that the following conditions | modification, are permitted provided that the following conditions | |||
are met: | are met: | |||
- Redistributions of source code must retain the above copyright | - Redistributions of source code must retain the above copyright | |||
notice, this list of conditions and the following disclaimer. | notice, this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of the Xiph.org Foundation nor the names of its | ||||
contributors may be used to endorse or promote products derived from | ||||
this software without specific prior written permission. | ||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O R | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O R | |||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||
skipping to change at line 223 | skipping to change at line 219 | |||
@param compressed The compressed data is written here. This may not alias pcm or | @param compressed The compressed data is written here. This may not alias pcm or | |||
* optional_synthesis. | * optional_synthesis. | |||
@param nbCompressedBytes Maximum number of bytes to use for compressing th e frame | @param nbCompressedBytes Maximum number of bytes to use for compressing th e frame | |||
* (can change from one frame to another) | * (can change from one frame to another) | |||
@return Number of bytes written to "compressed". Will be the same as | @return Number of bytes written to "compressed". Will be the same as | |||
* "nbCompressedBytes" unless the stream is VBR and will never be lar ger. | * "nbCompressedBytes" unless the stream is VBR and will never be lar ger. | |||
* If negative, an error has occurred (see error codes). It is IMPORT ANT that | * If negative, an error has occurred (see error codes). It is IMPORT ANT that | |||
* the length returned be somehow transmitted to the decoder. Otherwi se, no | * the length returned be somehow transmitted to the decoder. Otherwi se, no | |||
* decoding is possible. | * decoding is possible. | |||
*/ | */ | |||
EXPORT int celt_encode_float(CELTEncoder *st, const float *pcm, int frame_s ize, unsigned char *compressed, int nbCompressedBytes); | EXPORT int celt_encode_float(CELTEncoder *st, const float *pcm, int frame_s ize, unsigned char *compressed, int maxCompressedBytes); | |||
/** Encodes a frame of audio. | /** Encodes a frame of audio. | |||
@param st Encoder state | @param st Encoder state | |||
@param pcm PCM audio in signed 16-bit format (native endian). There must b e | @param pcm PCM audio in signed 16-bit format (native endian). There must b e | |||
* exactly frame_size samples per channel. | * exactly frame_size samples per channel. | |||
@param compressed The compressed data is written here. This may not alias pcm or | @param compressed The compressed data is written here. This may not alias pcm or | |||
* optional_synthesis. | * optional_synthesis. | |||
@param nbCompressedBytes Maximum number of bytes to use for compressing th e frame | @param nbCompressedBytes Maximum number of bytes to use for compressing th e frame | |||
* (can change from one frame to another) | * (can change from one frame to another) | |||
@return Number of bytes written to "compressed". Will be the same as | @return Number of bytes written to "compressed". Will be the same as | |||
* "nbCompressedBytes" unless the stream is VBR and will never be lar ger. | * "nbCompressedBytes" unless the stream is VBR and will never be lar ger. | |||
* If negative, an error has occurred (see error codes). It is IMPORT ANT that | * If negative, an error has occurred (see error codes). It is IMPORT ANT that | |||
* the length returned be somehow transmitted to the decoder. Otherwi se, no | * the length returned be somehow transmitted to the decoder. Otherwi se, no | |||
* decoding is possible. | * decoding is possible. | |||
*/ | */ | |||
EXPORT int celt_encode(CELTEncoder *st, const celt_int16 *pcm, int frame_si ze, unsigned char *compressed, int nbCompressedBytes); | EXPORT int celt_encode(CELTEncoder *st, const celt_int16 *pcm, int frame_si ze, unsigned char *compressed, int maxCompressedBytes); | |||
/** Query and set encoder parameters | /** Query and set encoder parameters | |||
@param st Encoder state | @param st Encoder state | |||
@param request Parameter to change or query | @param request Parameter to change or query | |||
@param value Pointer to a 32-bit int value | @param value Pointer to a 32-bit int value | |||
@return Error code | @return Error code | |||
*/ | */ | |||
EXPORT int celt_encoder_ctl(CELTEncoder * st, int request, ...); | EXPORT int celt_encoder_ctl(CELTEncoder * st, int request, ...); | |||
/* Decoder stuff */ | /* Decoder stuff */ | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 2 lines changed or added | |||
celt_header.h | celt_header.h | |||
---|---|---|---|---|
skipping to change at line 16 | skipping to change at line 16 | |||
modification, are permitted provided that the following conditions | modification, are permitted provided that the following conditions | |||
are met: | are met: | |||
- Redistributions of source code must retain the above copyright | - Redistributions of source code must retain the above copyright | |||
notice, this list of conditions and the following disclaimer. | notice, this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of the Xiph.org Foundation nor the names of its | ||||
contributors may be used to endorse or promote products derived from | ||||
this software without specific prior written permission. | ||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O R | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O R | |||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||
End of changes. 1 change blocks. | ||||
4 lines changed or deleted | 0 lines changed or added | |||
celt_types.h | celt_types.h | |||
---|---|---|---|---|
/* celt_types.h taken from libogg */ | /* (C) COPYRIGHT 1994-2002 Xiph.Org Foundation */ | |||
/******************************************************************** | /* Modified by Jean-Marc Valin */ | |||
* * | /* | |||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * | Redistribution and use in source and binary forms, with or without | |||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * | modification, are permitted provided that the following conditions | |||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * | are met: | |||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * | ||||
* * | - Redistributions of source code must retain the above copyright | |||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * | notice, this list of conditions and the following disclaimer. | |||
* by the Xiph.Org Foundation http://www.xiph.org/ * | ||||
* * | - Redistributions in binary form must reproduce the above copyright | |||
******************************************************************** | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | ||||
function: #ifdef jail to whip a few platforms into the UNIX ideal. | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
last mod: $Id: os_types.h 7524 2004-08-11 04:20:36Z conrad $ | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O | ||||
R | ||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
*/ | ||||
/* celt_types.h taken from libogg */ | ||||
********************************************************************/ | ||||
/** | /** | |||
@file celt_types.h | @file celt_types.h | |||
@brief CELT types | @brief CELT types | |||
*/ | */ | |||
#ifndef _CELT_TYPES_H | #ifndef _CELT_TYPES_H | |||
#define _CELT_TYPES_H | #define _CELT_TYPES_H | |||
/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ | /* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ | |||
#if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defi ned(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HA VE_STDINT_H)) | #if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defi ned(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HA VE_STDINT_H)) | |||
#include <stdint.h> | #include <stdint.h> | |||
End of changes. 3 change blocks. | ||||
15 lines changed or deleted | 27 lines changed or added | |||
opus.h | opus.h | |||
---|---|---|---|---|
skipping to change at line 15 | skipping to change at line 15 | |||
modification, are permitted provided that the following conditions | modification, are permitted provided that the following conditions | |||
are met: | are met: | |||
- Redistributions of source code must retain the above copyright | - Redistributions of source code must retain the above copyright | |||
notice, this list of conditions and the following disclaimer. | notice, this list of conditions and the following disclaimer. | |||
- Redistributions in binary form must reproduce the above copyright | - Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | |||
- Neither the name of the Xiph.org Foundation nor the names of its | ||||
contributors may be used to endorse or promote products derived from | ||||
this software without specific prior written permission. | ||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O R | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION O R | |||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||
skipping to change at line 119 | skipping to change at line 115 | |||
unsigned char *data, int max_data_bytes); | unsigned char *data, int max_data_bytes); | |||
void opus_encoder_destroy(OpusEncoder *st); | void opus_encoder_destroy(OpusEncoder *st); | |||
void opus_encoder_ctl(OpusEncoder *st, int request, ...); | void opus_encoder_ctl(OpusEncoder *st, int request, ...); | |||
OpusDecoder *opus_decoder_create(int Fs, int channels); | OpusDecoder *opus_decoder_create(int Fs, int channels); | |||
/* returns (CELT) error code */ | /* returns (CELT) error code */ | |||
int opus_decode(OpusDecoder *st, const unsigned char *data, int len, | int opus_decode(OpusDecoder *st, const unsigned char *data, int len, | |||
short *pcm, int frame_size); | short *pcm, int frame_size, int decode_fec); | |||
void opus_decoder_ctl(OpusDecoder *st, int request, ...); | void opus_decoder_ctl(OpusDecoder *st, int request, ...); | |||
void opus_decoder_destroy(OpusDecoder *st); | void opus_decoder_destroy(OpusDecoder *st); | |||
#if OPUS_TEST_RANGE_CODER_STATE | #if OPUS_TEST_RANGE_CODER_STATE | |||
int opus_encoder_get_final_range(OpusEncoder *st); | int opus_encoder_get_final_range(OpusEncoder *st); | |||
int opus_decoder_get_final_range(OpusDecoder *st); | int opus_decoder_get_final_range(OpusDecoder *st); | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 1 lines changed or added | |||