ref: 606cc10f2f7d76046a25fde5ec5e0a35dafdaae6
parent: 446b7f3ffff07fbb18e7bf886e476730b6d60354
author: Koen Vos <[email protected]>
date: Mon Jan 31 11:38:33 EST 2011
Big SILK update
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,18 +6,23 @@
INCLUDES = -I$(top_srcdir)/src_FLP -I$(top_srcdir)/src_SigProc_FIX -I$(top_srcdir)/src_SigProc_FLP -I$(top_srcdir)/src_common -I$(top_srcdir)/interface -I$(top_srcdir)/../celt/libcelt
EXTRA_DIST = Silk_FLP.sln \
Silk_FLP.sln \
-src_FIX/Silk_FIX.vcproj \
-src_FLP/Silk_FLP.vcproj \
-src_common/Silk_Common.vcproj \
-src_common/Silk_CommonFLP.vcproj \
+src_FIX/src_FIX.vcxproj \
+src_FIX/src_FIX.vcxproj.filters \
+src_FLP/src_FLP.vcxproj \
+src_FLP/src_FLP.vcxproj.filters \
+src_common/src_common.vcxproj \
+src_common/src_common.vcxproj.filters \
test/Encoder.c \
-test/Enc_SDK.vcproj \
test/Decoder.c \
-test/Dec_SDK.vcproj \
test/signalCompare.c \
-test/SignalCompare.vcproj \
-src_SigProc_FLP/SigProc_FLP.vcproj \
-src_SigProc_FIX/SigProc_FIX.vcproj
+src_SigProc_FLP/src_SigProc_FLP.vcxproj \
+src_SigProc_FLP/src_SigProc_FLP.vcxproj.filters \
+src_SigProc_FIX/src_SigProc_FIX.vcxproj \
+src_SigProc_FIX/src_SigProc_FIX.vcxproj.filters \
+test_silk_dec/test_silk_dec.vcxproj \
+test_silk_dec/test_silk_dec.vcxproj.filters \
+test_silk_enc/test_silk_enc.vcxproj \
+test_silk_enc/test_silk_enc.vcxproj.filters
lib_LTLIBRARIES = libSKP_SILK_SDK.la
libSKP_SILK_SDK_la_SOURCES = src_common/SKP_Silk_CNG.c \
@@ -56,9 +61,10 @@
src_common/SKP_Silk_tables_pitch_lag.c \
src_common/SKP_Silk_tables_pulses_per_block.c \
src_common/SKP_Silk_tables_sign.c \
-src_common/SKP_Silk_tables_type_offset.c \
src_common/SKP_Silk_VAD.c \
src_common/SKP_Silk_control_audio_bandwidth.c \
+src_common/SKP_Silk_quant_LTP_gains.c \
+src_common/SKP_Silk_VQ_WMat_EC.c \
src_FLP/SKP_Silk_apply_sine_window_FLP.c \
src_FLP/SKP_Silk_control_codec_FLP.c \
src_FLP/SKP_Silk_corrMatrix_FLP.c \
@@ -81,16 +87,9 @@
src_FLP/SKP_Silk_prefilter_FLP.c \
src_FLP/SKP_Silk_process_gains_FLP.c \
src_FLP/SKP_Silk_process_NLSFs_FLP.c \
-src_FLP/SKP_Silk_quant_LTP_gains_FLP.c \
src_FLP/SKP_Silk_regularize_correlations_FLP.c \
src_FLP/SKP_Silk_residual_energy_FLP.c \
src_FLP/SKP_Silk_solve_LS_FLP.c \
-src_FLP/SKP_Silk_tables_NLSF_CB0_10_FLP.c \
-src_FLP/SKP_Silk_tables_NLSF_CB0_16_FLP.c \
-src_FLP/SKP_Silk_tables_NLSF_CB1_10_FLP.c \
-src_FLP/SKP_Silk_tables_NLSF_CB1_16_FLP.c \
-src_FLP/SKP_Silk_tables_other_FLP.c \
-src_FLP/SKP_Silk_VQ_nearest_neighbor_FLP.c \
src_FLP/SKP_Silk_warped_autocorrelation_FLP.c \
src_FLP/SKP_Silk_wrappers_FLP.c \
src_SigProc_FIX/SKP_Silk_A2NLSF.c \
@@ -177,21 +176,14 @@
src_common/SKP_Silk_PLC.h \
src_common/SKP_Silk_structs.h \
src_common/SKP_Silk_tables.h \
-src_common/SKP_Silk_tables_NLSF_CB0_10.h \
-src_common/SKP_Silk_tables_NLSF_CB0_16.h \
-src_common/SKP_Silk_tables_NLSF_CB1_10.h \
-src_common/SKP_Silk_tables_NLSF_CB1_16.h \
+src_common/SKP_Silk_tables_NLSF_CB.h \
src_common/SKP_Silk_tuning_parameters.h \
src_common/SKP_Silk_setup_complexity.h \
-src_FIX/SKP_Silk_define_FIX.h \
src_FIX/SKP_Silk_main_FIX.h \
-src_FIX/SKP_Silk_perceptual_parameters_FIX.h \
src_FIX/SKP_Silk_structs_FIX.h \
src_FLP/SKP_Silk_assembler_FLP.h \
-src_FLP/SKP_Silk_define_FLP.h \
src_FLP/SKP_Silk_main_FLP.h \
src_FLP/SKP_Silk_structs_FLP.h \
-src_FLP/SKP_Silk_tables_FLP.h \
src_SigProc_FIX/SKP_Silk_common_pitch_est_defines.h \
src_SigProc_FIX/SKP_Silk_Inlines.h \
src_SigProc_FIX/SKP_Silk_MacroCount.h \
@@ -202,19 +194,18 @@
src_SigProc_FIX/SKP_Silk_resampler_rom.h \
src_SigProc_FIX/SKP_Silk_resampler_structs.h \
src_SigProc_FIX/SKP_Silk_SigProc_FIX.h \
-src_SigProc_FLP/SKP_Silk_pitch_est_defines_FLP.h \
src_SigProc_FLP/SKP_Silk_SigProc_FLP.h
bin_PROGRAMS = Encoder Decoder signalCompare
-Encoder_SOURCES = test/Encoder.c test/SKP_debug.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
+Encoder_SOURCES = test/Encoder.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
Encoder_LDADD = $(lib_LTLIBRARIES)
Encoder_LDFLAGS = $(LIBS)
-Decoder_SOURCES = test/Decoder.c test/SKP_debug.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
+Decoder_SOURCES = test/Decoder.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
Decoder_LDADD = $(lib_LTLIBRARIES)
Decoder_LDFLAGS = $(LIBS)
-signalCompare_SOURCES = test/signalCompare.c test/SKP_debug.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
+signalCompare_SOURCES = test/signalCompare.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
signalCompare_LDADD = $(lib_LTLIBRARIES)
signalCompare_LDFLAGS = $(LIBS)
--- a/interface/SKP_Silk_SDK_API.h
+++ b/interface/SKP_Silk_SDK_API.h
@@ -118,7 +118,7 @@
ec_dec *psRangeDec, /* I/O Compressor data structure */
const SKP_int nBytesIn, /* I: Number of input bytes */
SKP_int16 *samplesOut, /* O: Decoded output speech vector */
- SKP_int32 *nSamplesOut /* I/O: Number of samples (vector/decoded) */
+ SKP_int32 *nSamplesOut /* O: Number of samples decoded */
);
/***************************************************************/
--- a/interface/SKP_debug.h
+++ b/interface/SKP_debug.h
@@ -254,7 +254,18 @@
/************************************/
/* opens an empty file if this file has not yet been open, then writes to the file and closes it */
/* if file has been open previously it is opened again and the fwrite is appending, finally it is closed */
-#define SAVE_DATA(FILE_NAME, DATA_PTR, N_BYTES) { static SKP_int32 init = 0;FILE *fp;if (init == 0) {init = 1;fp = fopen(#FILE_NAME, "wb");}else {fp = fopen(#FILE_NAME, "ab+");} fwrite((DATA_PTR), (N_BYTES), 1, fp);fclose(fp);}
+#define SAVE_DATA( FILE_NAME, DATA_PTR, N_BYTES ) { \
+ static SKP_int32 init = 0; \
+ FILE *fp; \
+ if (init == 0) { \
+ init = 1; \
+ fp = fopen(#FILE_NAME, "wb"); \
+ } else { \
+ fp = fopen(#FILE_NAME, "ab+"); \
+ } \
+ fwrite((DATA_PTR), (N_BYTES), 1, fp); \
+ fclose(fp); \
+}
/* Example: DEBUG_STORE_DATA(testfile.pcm, &RIN[0], 160*sizeof(SKP_int16)); */
@@ -261,18 +272,33 @@
#if 0
/* Ensure that everything is written to files when an assert breaks */
#define DEBUG_STORE_DATA(FILE_NAME, DATA_PTR, N_BYTES) SAVE_DATA(FILE_NAME, DATA_PTR, N_BYTES)
+#define DEBUG_STORE_CLOSE_FILES
+
#else
+
+#define SKP_NUM_STORES_MAX 100
+extern FILE *SKP_debug_store_fp[ SKP_NUM_STORES_MAX ];
+extern int SKP_debug_store_count;
+
/* Faster way of storing the data */
-#define DEBUG_STORE_DATA(FILE_NAME, DATA_PTR, N_BYTES) { \
- static SKP_int32 init = 0; \
- static FILE *fp; \
- if (init == 0) \
- { \
- init = 1; \
- fp = fopen(#FILE_NAME, "wb"); \
- } \
- fwrite((DATA_PTR), (N_BYTES), 1, fp); \
+#define DEBUG_STORE_DATA( FILE_NAME, DATA_PTR, N_BYTES ) { \
+ static SKP_int init = 0, cnt = 0; \
+ static FILE **fp; \
+ if (init == 0) { \
+ init = 1; \
+ cnt = SKP_debug_store_count++; \
+ SKP_debug_store_fp[ cnt ] = fopen(#FILE_NAME, "wb"); \
+ } \
+ fwrite((DATA_PTR), (N_BYTES), 1, SKP_debug_store_fp[ cnt ]); \
}
+
+/* Call this at the end of main() */
+#define DEBUG_STORE_CLOSE_FILES { \
+ SKP_int i; \
+ for( i = 0; i < SKP_debug_store_count; i++ ) { \
+ fclose( SKP_debug_store_fp[ i ] ); \
+ } \
+}
#endif
/* micro sec */
@@ -283,6 +309,7 @@
/* define macros as empty strings */
#define DEBUG_STORE_DATA(FILE_NAME, DATA_PTR, N_BYTES)
#define SAVE_DATA(FILE_NAME, DATA_PTR, N_BYTES)
+#define DEBUG_STORE_CLOSE_FILES
#endif /* SKP_DEBUG */
--- a/src_FIX/SKP_Silk_VQ_nearest_neighbor_FIX.c
+++ /dev/null
@@ -1,107 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-#include "SKP_Silk_main_FIX.h"
-
-/* Entropy constrained MATRIX-weighted VQ, hard-coded to 5-element vectors, for a single input data vector */
-void SKP_Silk_VQ_WMat_EC_FIX(
- SKP_int *ind, /* O index of best codebook vector */
- SKP_int32 *rate_dist_Q14, /* O best weighted quantization error + mu * rate*/
- const SKP_int16 *in_Q14, /* I input vector to be quantized */
- const SKP_int32 *W_Q18, /* I weighting matrix */
- const SKP_int16 *cb_Q14, /* I codebook */
- const SKP_int16 *cl_Q6, /* I code length for each codebook vector */
- const SKP_int mu_Q8, /* I tradeoff between weighted error and rate */
- SKP_int L /* I number of vectors in codebook */
-)
-{
- SKP_int k;
- const SKP_int16 *cb_row_Q14;
- SKP_int16 diff_Q14[ 5 ];
- SKP_int32 sum1_Q14, sum2_Q16;
-
- /* Loop over codebook */
- *rate_dist_Q14 = SKP_int32_MAX;
- cb_row_Q14 = cb_Q14;
- for( k = 0; k < L; k++ ) {
- diff_Q14[ 0 ] = in_Q14[ 0 ] - cb_row_Q14[ 0 ];
- diff_Q14[ 1 ] = in_Q14[ 1 ] - cb_row_Q14[ 1 ];
- diff_Q14[ 2 ] = in_Q14[ 2 ] - cb_row_Q14[ 2 ];
- diff_Q14[ 3 ] = in_Q14[ 3 ] - cb_row_Q14[ 3 ];
- diff_Q14[ 4 ] = in_Q14[ 4 ] - cb_row_Q14[ 4 ];
-
- /* Weighted rate */
- sum1_Q14 = SKP_SMULBB( mu_Q8, cl_Q6[ k ] );
-
- SKP_assert( sum1_Q14 >= 0 );
-
- /* first row of W_Q18 */
- sum2_Q16 = SKP_SMULWB( W_Q18[ 1 ], diff_Q14[ 1 ] );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 2 ], diff_Q14[ 2 ] );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 3 ], diff_Q14[ 3 ] );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 4 ], diff_Q14[ 4 ] );
- sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 0 ], diff_Q14[ 0 ] );
- sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 0 ] );
-
- /* second row of W_Q18 */
- sum2_Q16 = SKP_SMULWB( W_Q18[ 7 ], diff_Q14[ 2 ] );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 8 ], diff_Q14[ 3 ] );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 9 ], diff_Q14[ 4 ] );
- sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 6 ], diff_Q14[ 1 ] );
- sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 1 ] );
-
- /* third row of W_Q18 */
- sum2_Q16 = SKP_SMULWB( W_Q18[ 13 ], diff_Q14[ 3 ] );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 14 ], diff_Q14[ 4 ] );
- sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 12 ], diff_Q14[ 2 ] );
- sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 2 ] );
-
- /* fourth row of W_Q18 */
- sum2_Q16 = SKP_SMULWB( W_Q18[ 19 ], diff_Q14[ 4 ] );
- sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
- sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 18 ], diff_Q14[ 3 ] );
- sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 3 ] );
-
- /* last row of W_Q18 */
- sum2_Q16 = SKP_SMULWB( W_Q18[ 24 ], diff_Q14[ 4 ] );
- sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 4 ] );
-
- SKP_assert( sum1_Q14 >= 0 );
-
- /* find best */
- if( sum1_Q14 < *rate_dist_Q14 ) {
- *rate_dist_Q14 = sum1_Q14;
- *ind = k;
- }
-
- /* Go to next cbk vector */
- cb_row_Q14 += LTP_ORDER;
- }
-}
--- a/src_FIX/SKP_Silk_control_codec_FIX.c
+++ b/src_FIX/SKP_Silk_control_codec_FIX.c
@@ -34,11 +34,6 @@
SKP_int fs_kHz /* I */
);
-SKP_INLINE SKP_int SKP_Silk_setup_packetsize(
- SKP_Silk_encoder_state_FIX *psEnc, /* I/O */
- SKP_int PacketSize_ms /* I */
-);
-
SKP_INLINE SKP_int SKP_Silk_setup_fs(
SKP_Silk_encoder_state_FIX *psEnc, /* I/O */
SKP_int fs_kHz, /* I */
@@ -141,40 +136,6 @@
}
}
-SKP_INLINE SKP_int SKP_Silk_setup_packetsize(
- SKP_Silk_encoder_state_FIX *psEnc, /* I/O */
- SKP_int PacketSize_ms /* I */
-)
-{
- SKP_int ret = SKP_SILK_NO_ERROR;
- if( ( PacketSize_ms != 10 ) &&
- ( PacketSize_ms != 20 ) &&
- ( PacketSize_ms != 40 ) &&
- ( PacketSize_ms != 60 ) ) {
- ret = SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED;
- } else {
- if( PacketSize_ms != psEnc->sCmn.PacketSize_ms ) {
- if( PacketSize_ms == 10 ) {
- /* Only allowed when the payload buffer is empty */
- psEnc->sCmn.nb_subfr = MAX_NB_SUBFR >> 1;
- psEnc->sCmn.PacketSize_ms = PacketSize_ms;
- psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS_2_SF, psEnc->sCmn.fs_kHz );
- /* Packet length changes. Reset LBRR buffer */
- SKP_Silk_LBRR_reset( &psEnc->sCmn );
- } else{
- psEnc->sCmn.nb_subfr = MAX_NB_SUBFR;
- psEnc->sCmn.PacketSize_ms = PacketSize_ms;
- psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, psEnc->sCmn.fs_kHz );
- /* Packet length changes. Reset LBRR buffer */
- SKP_Silk_LBRR_reset( &psEnc->sCmn );
- }
- }
- psEnc->sCmn.frame_length = SKP_SMULBB( psEnc->sCmn.subfr_length, psEnc->sCmn.nb_subfr );
- }
-
- return(ret);
-}
-
SKP_INLINE SKP_int SKP_Silk_setup_resamplers(
SKP_Silk_encoder_state_FIX *psEnc, /* I/O */
SKP_int fs_kHz /* I */
@@ -235,16 +196,37 @@
{
SKP_int ret = SKP_SILK_NO_ERROR;
+ /* Set packet size */
+ if( PacketSize_ms != psEnc->sCmn.PacketSize_ms ) {
+ if( ( PacketSize_ms != 10 ) &&
+ ( PacketSize_ms != 20 ) &&
+ ( PacketSize_ms != 40 ) &&
+ ( PacketSize_ms != 60 ) ) {
+ ret = SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED;
+ }
+ if( PacketSize_ms == 10 ) {
+ /* Only allowed when the payload buffer is empty */
+ psEnc->sCmn.nb_subfr = MAX_NB_SUBFR >> 1;
+ psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS_2_SF, fs_kHz );
+ } else {
+ psEnc->sCmn.nb_subfr = MAX_NB_SUBFR;
+ psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, fs_kHz );
+ }
+ /* Packet length changes. Reset LBRR buffer */
+ SKP_Silk_LBRR_reset( &psEnc->sCmn );
+ psEnc->sCmn.PacketSize_ms = PacketSize_ms;
+ }
+
/* Set internal sampling frequency */
if( psEnc->sCmn.fs_kHz != fs_kHz ) {
/* reset part of the state */
- SKP_memset( &psEnc->sShape, 0, sizeof( SKP_Silk_shape_state_FIX ) );
- SKP_memset( &psEnc->sPrefilt, 0, sizeof( SKP_Silk_prefilter_state_FIX ) );
- SKP_memset( &psEnc->sNSQ, 0, sizeof( SKP_Silk_nsq_state ) );
- SKP_memset( &psEnc->sPred, 0, sizeof( SKP_Silk_predict_state_FIX ) );
- SKP_memset( psEnc->sNSQ.xq, 0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
- SKP_memset( psEnc->sNSQ_LBRR.xq, 0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
- SKP_memset( psEnc->sCmn.LBRR_buffer, 0, MAX_LBRR_DELAY * sizeof( SKP_SILK_LBRR_struct ) );
+ SKP_memset( &psEnc->sShape, 0, sizeof( SKP_Silk_shape_state_FIX ) );
+ SKP_memset( &psEnc->sPrefilt, 0, sizeof( SKP_Silk_prefilter_state_FIX ) );
+ SKP_memset( &psEnc->sNSQ, 0, sizeof( SKP_Silk_nsq_state ) );
+ SKP_memset( &psEnc->sPred, 0, sizeof( SKP_Silk_predict_state_FIX ) );
+ SKP_memset( psEnc->sNSQ.xq, 0, 2 * MAX_FRAME_LENGTH * sizeof( SKP_int16 ) );
+ SKP_memset( psEnc->sNSQ_LBRR.xq, 0, 2 * MAX_FRAME_LENGTH * sizeof( SKP_int16 ) );
+ SKP_memset( psEnc->sCmn.LBRR_buffer, 0, MAX_LBRR_DELAY * sizeof( SKP_SILK_LBRR_struct ) );
#if SWITCH_TRANSITION_FILTERING
SKP_memset( psEnc->sCmn.sLP.In_LP_State, 0, 2 * sizeof( SKP_int32 ) );
if( psEnc->sCmn.sLP.mode == 1 ) {
@@ -278,12 +260,29 @@
psEnc->sCmn.predictLPCOrder = MIN_LPC_ORDER;
psEnc->sCmn.psNLSF_CB[ 0 ] = &SKP_Silk_NLSF_CB0_10;
psEnc->sCmn.psNLSF_CB[ 1 ] = &SKP_Silk_NLSF_CB1_10;
+ if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_NB_iCDF;
+ } else if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR / 2 ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_10_ms_NB_iCDF;
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
+ }
} else {
psEnc->sCmn.predictLPCOrder = MAX_LPC_ORDER;
psEnc->sCmn.psNLSF_CB[ 0 ] = &SKP_Silk_NLSF_CB0_16;
psEnc->sCmn.psNLSF_CB[ 1 ] = &SKP_Silk_NLSF_CB1_16;
+ if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_iCDF;
+ } else if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR / 2 ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_10_ms_iCDF;
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
+ }
}
- psEnc->sCmn.subfr_length = SKP_SMULBB( SUB_FRAME_LENGTH_MS, fs_kHz );
+ psEnc->sCmn.subfr_length = SUB_FRAME_LENGTH_MS * fs_kHz;
+ psEnc->sCmn.frame_length = SKP_SMULBB( psEnc->sCmn.subfr_length, psEnc->sCmn.nb_subfr );
psEnc->sCmn.ltp_mem_length = SKP_SMULBB( LTP_MEM_LENGTH_MS, fs_kHz );
psEnc->sCmn.la_pitch = SKP_SMULBB( LA_PITCH_MS, fs_kHz );
psEnc->sPred.min_pitch_lag = SKP_SMULBB( 3, fs_kHz );
@@ -290,34 +289,39 @@
psEnc->sPred.max_pitch_lag = SKP_SMULBB( 18, fs_kHz );
if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR ){
psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, fs_kHz );
- } else {
+ } else if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR / 2 ){
psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS_2_SF, fs_kHz );
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
}
if( psEnc->sCmn.fs_kHz == 24 ) {
- psEnc->mu_LTP_Q8 = SKP_FIX_CONST( MU_LTP_QUANT_SWB, 8 );
- psEnc->sCmn.bitrate_threshold_up = SKP_int32_MAX;
- psEnc->sCmn.bitrate_threshold_down = SWB2WB_BITRATE_BPS;
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_SWB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = SKP_int32_MAX;
+ psEnc->sCmn.bitrate_threshold_down = SWB2WB_BITRATE_BPS;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform12_iCDF;
} else if( psEnc->sCmn.fs_kHz == 16 ) {
- psEnc->mu_LTP_Q8 = SKP_FIX_CONST( MU_LTP_QUANT_WB, 8 );
- psEnc->sCmn.bitrate_threshold_up = WB2SWB_BITRATE_BPS;
- psEnc->sCmn.bitrate_threshold_down = WB2MB_BITRATE_BPS;
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_WB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = WB2SWB_BITRATE_BPS;
+ psEnc->sCmn.bitrate_threshold_down = WB2MB_BITRATE_BPS;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform8_iCDF;
} else if( psEnc->sCmn.fs_kHz == 12 ) {
- psEnc->mu_LTP_Q8 = SKP_FIX_CONST( MU_LTP_QUANT_MB, 8 );
- psEnc->sCmn.bitrate_threshold_up = MB2WB_BITRATE_BPS;
- psEnc->sCmn.bitrate_threshold_down = MB2NB_BITRATE_BPS;
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_MB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = MB2WB_BITRATE_BPS;
+ psEnc->sCmn.bitrate_threshold_down = MB2NB_BITRATE_BPS;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform6_iCDF;
+ } else if( psEnc->sCmn.fs_kHz == 8 ) {
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_NB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = NB2MB_BITRATE_BPS;
+ psEnc->sCmn.bitrate_threshold_down = 0;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform4_iCDF;
} else {
- psEnc->mu_LTP_Q8 = SKP_FIX_CONST( MU_LTP_QUANT_NB, 8 );
- psEnc->sCmn.bitrate_threshold_up = NB2MB_BITRATE_BPS;
- psEnc->sCmn.bitrate_threshold_down = 0;
+ /* unsupported sampling rate */
+ SKP_assert( 0 );
}
psEnc->sCmn.fs_kHz_changed = 1;
}
- /********************************************/
- /* Set packet size */
- /********************************************/
- ret += SKP_Silk_setup_packetsize( psEnc, PacketSize_ms );
-
/* Check that settings are valid */
SKP_assert( ( psEnc->sCmn.subfr_length * psEnc->sCmn.nb_subfr ) == psEnc->sCmn.frame_length );
@@ -329,9 +333,9 @@
SKP_int TargetRate_bps /* I */
)
{
- SKP_int k, ret = 0;
+ SKP_int k, ret = SKP_SILK_NO_ERROR;
SKP_int32 frac_Q6;
- const SKP_int32 *rateTable;
+ const SKP_uint16 *rateTable;
/* Set bitrate/coding quality */
if( TargetRate_bps != psEnc->sCmn.TargetRate_bps ) {
--- a/src_FIX/SKP_Silk_define_FIX.h
+++ /dev/null
@@ -1,92 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_DEFINE_FIX_H
-#define SKP_SILK_DEFINE_FIX_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* Head room for correlations */
-#define LTP_CORRS_HEAD_ROOM 2
-#define LPC_CORRS_HEAD_ROOM 10
-
-#define WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES_Q8 179 // 179.2_Q8 = 0.7f required speech activity for counting frame as active
-
-/* DTX settings */
-#define SPEECH_ACTIVITY_DTX_THRES_Q8 26 // 25.60_Q8 = 0.1f
-
-#define LBRR_SPEECH_ACTIVITY_THRES_Q8 128
-
-/* level of noise floor for whitening filter LPC analysis in pitch analysis */
-#define FIND_PITCH_WHITE_NOISE_FRACTION_Q16 66
-
-/* bandwdith expansion for whitening filter in pitch analysis */
-#define FIND_PITCH_BANDWITH_EXPANSION_Q16 64881
-
-/* Threshold used by pitch estimator for early escape */
-#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_HC_MODE 45875 // 0.7
-#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_MC_MODE 49152 // 0.75
-#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_LC_MODE 52429 // 0.8
-
-/* Regualarization factor for correlation matrix. Equivalent to adding noise at -50 dB */
-#define FIND_LTP_COND_FAC_Q31 21475
-#define FIND_LPC_COND_FAC_Q32 257698 // 6e-5
-
-/* Find Pred Coef defines */
-#define INACTIVE_BWExp_Q16 64225 // 0.98
-#define ACTIVE_BWExp_Q16 65470 // 0.999
-#define LTP_DAMPING_Q16 66
-#define LTP_SMOOTHING_Q26 6710886
-
-/* LTP quantization settings */
-#define MU_LTP_QUANT_NB_Q8 8
-#define MU_LTP_QUANT_MB_Q8 6
-#define MU_LTP_QUANT_WB_Q8 5
-#define MU_LTP_QUANT_SWB_Q8 4
-
-/***********************/
-/* High pass filtering */
-/***********************/
-/* Smoothing parameters for low end of pitch frequency range estimation */
-#define VARIABLE_HP_SMTH_COEF1_Q16 6554 // 0.1
-#define VARIABLE_HP_SMTH_COEF2_Q16 983 // 0.015
-
-/* Min and max values for low end of pitch frequency range estimation */
-#define VARIABLE_HP_MIN_FREQ_Q0 80
-#define VARIABLE_HP_MAX_FREQ_Q0 150
-
-/* Max absolute difference between log2 of pitch frequency and smoother state, to enter the smoother */
-#define VARIABLE_HP_MAX_DELTA_FREQ_Q7 51 // 0.4 in Q7
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src_FIX/SKP_Silk_encode_frame_FIX.c
+++ b/src_FIX/SKP_Silk_encode_frame_FIX.c
@@ -46,7 +46,6 @@
SKP_int16 pIn_HP[ MAX_FRAME_LENGTH ];
SKP_int16 res_pitch[ 2 * MAX_FRAME_LENGTH + LA_PITCH_MAX ];
SKP_int LBRR_idx, frame_terminator, SNR_dB_Q7;
- const SKP_uint16 *FrameTermination_CDF;
/* Low bitrate redundancy parameters */
SKP_uint8 LBRRpayload[ MAX_ARITHM_BYTES ];
@@ -115,7 +114,7 @@
/* Find linear prediction coefficients (LPC + LTP) */
/***************************************************/
TIC(FIND_PRED_COEF)
- SKP_Silk_find_pred_coefs_FIX( psEnc, &sEncCtrl, res_pitch );
+ SKP_Silk_find_pred_coefs_FIX( psEnc, &sEncCtrl, res_pitch, x_frame );
TOC(FIND_PRED_COEF)
/****************************************/
@@ -133,7 +132,7 @@
/****************************************/
nBytesLBRR = MAX_ARITHM_BYTES;
TIC(LBRR)
- SKP_Silk_LBRR_encode_FIX( psEnc, &sEncCtrl, LBRRpayload, &nBytesLBRR, xfw );
+ //SKP_Silk_LBRR_encode_FIX( psEnc, &sEncCtrl, LBRRpayload, &nBytesLBRR, xfw );
TOC(LBRR)
/*****************************************/
@@ -186,7 +185,6 @@
/****************************************/
TIC(ENCODE_PARAMS)
SKP_Silk_encode_parameters( &psEnc->sCmn, &sEncCtrl.sCmn, psRangeEnc );
- FrameTermination_CDF = SKP_Silk_FrameTermination_CDF;
TOC(ENCODE_PARAMS)
/****************************************/
@@ -220,8 +218,7 @@
frame_terminator = SKP_SILK_NO_LBRR;
/* Add the frame termination info to stream */
- ec_encode_bin( psRangeEnc, FrameTermination_CDF[ frame_terminator ],
- FrameTermination_CDF[ frame_terminator + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, frame_terminator, SKP_Silk_FrameTermination_iCDF, 8 );
/* Code excitation signal */
for( i = 0; i < psEnc->sCmn.nFramesInPayloadBuf; i++ ) {
@@ -316,7 +313,6 @@
int i;
DEBUG_STORE_DATA( xf.dat, x_frame + LA_SHAPE_MS * psEnc->sCmn.fs_kHz, psEnc->sCmn.frame_length * sizeof( SKP_int16 ) );
DEBUG_STORE_DATA( xfw.dat, xfw, psEnc->sCmn.frame_length * sizeof( SKP_int16 ) );
- // DEBUG_STORE_DATA( q.dat, &psEnc->sCmn.q[ ( psEnc->sCmn.nFramesInPayloadBuf - 1)*psEnc->sCmn.frame_length ], psEnc->sCmn.frame_length * sizeof( SKP_int8 ) );
DEBUG_STORE_DATA( pitchL.dat, sEncCtrl.sCmn.pitchL, psEnc->sCmn.nb_subfr * sizeof( SKP_int ) );
for( i = 0; i < psEnc->sCmn.nb_subfr * LTP_ORDER; i++ ) {
tmp[ i ] = (SKP_float)sEncCtrl.LTPCoef_Q14[ i ] / 16384.0f;
@@ -471,8 +467,7 @@
frame_terminator = SKP_SILK_LAST_FRAME;
/* Add the frame termination info to stream */
- ec_encode_bin( psRangeEnc_LBRR, FrameTermination_CDF[ frame_terminator ],
- FrameTermination_CDF[ frame_terminator + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, frame_terminator, SKP_Silk_FrameTermination_iCDF, 8 );
/*********************************************/
/* Encode quantization indices of excitation */
@@ -512,8 +507,7 @@
/* Encode that more frames follows */
frame_terminator = SKP_SILK_MORE_FRAMES;
- ec_encode_bin( psRangeEnc_LBRR, FrameTermination_CDF[ frame_terminator ],
- FrameTermination_CDF[ frame_terminator + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, frame_terminator, SKP_Silk_FrameTermination_iCDF, 8 );
}
/* Restore original Gains */
--- a/src_FIX/SKP_Silk_find_pitch_lags_FIX.c
+++ b/src_FIX/SKP_Silk_find_pitch_lags_FIX.c
@@ -82,7 +82,7 @@
SKP_Silk_autocorr( auto_corr, &scale, Wsig, psPredSt->pitch_LPC_win_length, psEnc->sCmn.pitchEstimationLPCOrder + 1 );
/* Add white noise, as fraction of energy */
- auto_corr[ 0 ] = SKP_SMLAWB( auto_corr[ 0 ], auto_corr[ 0 ], SKP_FIX_CONST( FIND_PITCH_WHITE_NOISE_FRACTION, 16 ) );
+ auto_corr[ 0 ] = SKP_SMLAWB( auto_corr[ 0 ], auto_corr[ 0 ], SKP_FIX_CONST( FIND_PITCH_WHITE_NOISE_FRACTION, 16 ) ) + 1;
/* Calculate the reflection coefficients using schur */
res_nrg = SKP_Silk_schur( rc_Q15, auto_corr, psEnc->sCmn.pitchEstimationLPCOrder );
--- a/src_FIX/SKP_Silk_find_pred_coefs_FIX.c
+++ b/src_FIX/SKP_Silk_find_pred_coefs_FIX.c
@@ -54,10 +54,16 @@
/* integer to floating-point conversion */
SKP_INLINE void SKP_short2float_array(
- SKP_float *out,
- const SKP_int16 *in,
- SKP_int32 length
-);
+ SKP_float *out,
+ const SKP_int16 *in,
+ SKP_int32 length
+)
+{
+ SKP_int32 k;
+ for (k = length-1; k >= 0; k--) {
+ out[k] = (SKP_float)in[k];
+ }
+}
SKP_INLINE SKP_float SKP_Silk_log2( double x ) { return ( SKP_float )( 3.32192809488736 * log10( x ) ); }
@@ -66,7 +72,8 @@
void SKP_Silk_find_pred_coefs_FIX(
SKP_Silk_encoder_state_FIX *psEnc, /* I/O encoder state */
SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O encoder control */
- const SKP_int16 res_pitch[] /* I Residual from pitch analysis */
+ const SKP_int16 res_pitch[], /* I Residual from pitch analysis */
+ const SKP_int16 x[] /* I Speech signal */
)
{
SKP_int i;
@@ -126,8 +133,8 @@
#endif
/* Quantize LTP gain parameters */
- SKP_Silk_quant_LTP_gains_FIX( psEncCtrl->LTPCoef_Q14, psEncCtrl->sCmn.LTPIndex, &psEncCtrl->sCmn.PERIndex,
- WLTP, psEnc->mu_LTP_Q8, psEnc->sCmn.LTPQuantLowComplexity, psEnc->sCmn.nb_subfr);
+ SKP_Silk_quant_LTP_gains( psEncCtrl->LTPCoef_Q14, psEncCtrl->sCmn.LTPIndex, &psEncCtrl->sCmn.PERIndex,
+ WLTP, psEnc->sCmn.mu_LTP_Q10, psEnc->sCmn.LTPQuantLowComplexity, psEnc->sCmn.nb_subfr);
/* Control LTP scaling */
SKP_Silk_LTP_scale_ctrl_FIX( psEnc, psEncCtrl );
@@ -141,7 +148,7 @@
/* UNVOICED */
/************/
/* Create signal with prepended subframes, scaled by inverse gains */
- x_ptr = psEnc->x_buf + psEnc->sCmn.ltp_mem_length - psEnc->sCmn.predictLPCOrder;
+ x_ptr = x - psEnc->sCmn.predictLPCOrder;
x_pre_ptr = LPC_in_pre;
for( i = 0; i < psEnc->sCmn.nb_subfr; i++ ) {
SKP_Silk_scale_copy_vector16( x_pre_ptr, x_ptr, invGains_Q16[ i ],
--- a/src_FIX/SKP_Silk_main_FIX.h
+++ b/src_FIX/SKP_Silk_main_FIX.h
@@ -144,7 +144,8 @@
void SKP_Silk_find_pred_coefs_FIX(
SKP_Silk_encoder_state_FIX *psEnc, /* I/O encoder state */
SKP_Silk_encoder_control_FIX *psEncCtrl, /* I/O encoder control */
- const SKP_int16 res_pitch[] /* I Residual from pitch analysis */
+ const SKP_int16 res_pitch[], /* I Residual from pitch analysis */
+ const SKP_int16 x[] /* I Speech signal */
);
/* LPC analysis */
@@ -197,17 +198,6 @@
const SKP_int LPC_order /* I LPC order */
);
-/* LTP tap quantizer */
-void SKP_Silk_quant_LTP_gains_FIX(
- SKP_int16 B_Q14[], /* I/O (un)quantized LTP gains */
- SKP_int cbk_index[], /* O Codebook Index */
- SKP_int *periodicity_index, /* O Periodicity Index */
- const SKP_int32 W_Q18[], /* I Error Weights in Q18 */
- SKP_int mu_Q8, /* I Mu value (R/D tradeoff) */
- SKP_int lowComplexity, /* I Flag for low complexity */
- const SKP_int nb_subfr /* I number of subframes */
-);
-
/******************/
/* NLSF Quantizer */
/******************/
@@ -263,18 +253,6 @@
SKP_int32 wxx, /* I Signal energy */
SKP_int D, /* I Dimension */
SKP_int cQ /* I Q value for c vector 0 - 15 */
-);
-
-/* Entropy constrained MATRIX-weighted VQ, for a single input data vector */
-void SKP_Silk_VQ_WMat_EC_FIX(
- SKP_int *ind, /* O index of best codebook vector */
- SKP_int32 *rate_dist_Q14, /* O best weighted quantization error + mu * rate*/
- const SKP_int16 *in_Q14, /* I input vector to be quantized */
- const SKP_int32 *W_Q18, /* I weighting matrix */
- const SKP_int16 *cb_Q14, /* I codebook */
- const SKP_int16 *cl_Q6, /* I code length for each codebook vector */
- const SKP_int mu_Q8, /* I tradeoff between weighted error and rate */
- SKP_int L /* I number of vectors in codebook */
);
/* Processing of gains */
--- a/src_FIX/SKP_Silk_noise_shape_analysis_FIX.c
+++ b/src_FIX/SKP_Silk_noise_shape_analysis_FIX.c
@@ -161,14 +161,15 @@
/****************/
/* CONTROL SNR */
/****************/
-#if DEACTIVATE_SNR_FEEDBACK
- psEncCtrl->current_SNR_dB_Q7 = psEnc->SNR_dB_Q7;
-#else
/* Reduce SNR_dB values if recent bitstream has exceeded TargetRate */
psEncCtrl->current_SNR_dB_Q7 = psEnc->SNR_dB_Q7 - SKP_SMULWB( SKP_LSHIFT( ( SKP_int32 )psEnc->BufferedInChannel_ms, 7 ),
- SKP_FIX_CONST( 0.05, 16 ) );
-#endif
+ SKP_FIX_CONST( 0.1, 16 ) );
+ /* Reduce SNR for 10 ms frames */
+ if( psEnc->sCmn.nb_subfr == 2 ) {
+ psEncCtrl->current_SNR_dB_Q7 -= SKP_FIX_CONST( 1.5, 7 );
+ }
+
/* Reduce SNR_dB if inband FEC used */
if( psEnc->speech_activity_Q8 > SKP_FIX_CONST( LBRR_SPEECH_ACTIVITY_THRES, 8 ) ) {
psEncCtrl->current_SNR_dB_Q7 -= SKP_RSHIFT( psEnc->inBandFEC_SNR_comp_Q8, 1 );
@@ -186,11 +187,14 @@
SKP_FIX_CONST( 18.0, 7 ), 4 ) ), 1 );
/* Reduce coding SNR during low speech activity */
- b_Q8 = SKP_FIX_CONST( 1.0, 8 ) - psEnc->speech_activity_Q8;
- b_Q8 = SKP_SMULWB( SKP_LSHIFT( b_Q8, 8 ), b_Q8 );
- SNR_adj_dB_Q7 = SKP_SMLAWB( psEncCtrl->current_SNR_dB_Q7,
- SKP_SMULBB( SKP_FIX_CONST( -BG_SNR_DECR_dB, 7 ) >> ( 4 + 1 ), b_Q8 ), // Q11
- SKP_SMULWB( SKP_FIX_CONST( 1.0, 14 ) + psEncCtrl->input_quality_Q14, psEncCtrl->coding_quality_Q14 ) ); // Q12
+ SNR_adj_dB_Q7 = psEncCtrl->current_SNR_dB_Q7;
+ if( psEnc->sCmn.useCBR == 0 ) {
+ b_Q8 = SKP_FIX_CONST( 1.0, 8 ) - psEnc->speech_activity_Q8;
+ b_Q8 = SKP_SMULWB( SKP_LSHIFT( b_Q8, 8 ), b_Q8 );
+ SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7,
+ SKP_SMULBB( SKP_FIX_CONST( -BG_SNR_DECR_dB, 7 ) >> ( 4 + 1 ), b_Q8 ), // Q11
+ SKP_SMULWB( SKP_FIX_CONST( 1.0, 14 ) + psEncCtrl->input_quality_Q14, psEncCtrl->coding_quality_Q14 ) ); // Q12
+ }
if( psEncCtrl->sCmn.sigtype == SIG_TYPE_VOICED ) {
/* Reduce gains for periodic signals */
@@ -356,31 +360,17 @@
/* Gain tweaking */
/*****************/
/* Increase gains during low speech activity and put lower limit on gains */
- gain_mult_Q16 = SKP_Silk_log2lin( -SKP_SMLAWB( -SKP_FIX_CONST( 16.0, 7 ), SNR_adj_dB_Q7, SKP_FIX_CONST( 0.16, 16 ) ) );
- gain_add_Q16 = SKP_Silk_log2lin( SKP_SMLAWB( SKP_FIX_CONST( 16.0, 7 ), SKP_FIX_CONST( NOISE_FLOOR_dB, 7 ), SKP_FIX_CONST( 0.16, 16 ) ) );
- tmp32 = SKP_Silk_log2lin( SKP_SMLAWB( SKP_FIX_CONST( 16.0, 7 ), SKP_FIX_CONST( RELATIVE_MIN_GAIN_dB, 7 ), SKP_FIX_CONST( 0.16, 16 ) ) );
- tmp32 = SKP_SMULWW( psEnc->avgGain_Q16, tmp32 );
- gain_add_Q16 = SKP_ADD_SAT32( gain_add_Q16, tmp32 );
- SKP_assert( gain_mult_Q16 >= 0 );
-
+ gain_mult_Q16 = SKP_Silk_log2lin( -SKP_SMLAWB( -SKP_FIX_CONST( 16.0, 7 ), SNR_adj_dB_Q7, SKP_FIX_CONST( 0.16, 16 ) ) );
+ gain_add_Q16 = SKP_Silk_log2lin( SKP_SMLAWB( SKP_FIX_CONST( 16.0, 7 ), SKP_FIX_CONST( MIN_QGAIN_DB, 7 ), SKP_FIX_CONST( 0.16, 16 ) ) );
+ SKP_assert( gain_mult_Q16 > 0 );
for( k = 0; k < psEnc->sCmn.nb_subfr; k++ ) {
psEncCtrl->Gains_Q16[ k ] = SKP_SMULWW( psEncCtrl->Gains_Q16[ k ], gain_mult_Q16 );
SKP_assert( psEncCtrl->Gains_Q16[ k ] >= 0 );
- }
-
- for( k = 0; k < psEnc->sCmn.nb_subfr; k++ ) {
psEncCtrl->Gains_Q16[ k ] = SKP_ADD_POS_SAT32( psEncCtrl->Gains_Q16[ k ], gain_add_Q16 );
- psEnc->avgGain_Q16 = SKP_ADD_SAT32(
- psEnc->avgGain_Q16,
- SKP_SMULWB(
- psEncCtrl->Gains_Q16[ k ] - psEnc->avgGain_Q16,
- SKP_RSHIFT_ROUND( SKP_SMULBB( psEnc->speech_activity_Q8, SKP_FIX_CONST( GAIN_SMOOTHING_COEF, 10 ) ), 2 )
- ) );
}
gain_mult_Q16 = SKP_FIX_CONST( 1.0, 16 ) + SKP_RSHIFT_ROUND( SKP_MLA( SKP_FIX_CONST( INPUT_TILT, 26 ),
psEncCtrl->coding_quality_Q14, SKP_FIX_CONST( HIGH_RATE_INPUT_TILT, 12 ) ), 10 );
-
for( k = 0; k < psEnc->sCmn.nb_subfr; k++ ) {
psEncCtrl->GainsPre_Q14[ k ] = SKP_SMULWB( gain_mult_Q16, psEncCtrl->GainsPre_Q14[ k ] );
}
@@ -389,8 +379,15 @@
/* Control low-frequency shaping and noise tilt */
/************************************************/
/* Less low frequency shaping for noisy inputs */
+#if 1
strength_Q16 = SKP_MUL( SKP_FIX_CONST( LOW_FREQ_SHAPING, 0 ), SKP_FIX_CONST( 1.0, 16 ) +
SKP_SMULBB( SKP_FIX_CONST( LOW_QUALITY_LOW_FREQ_SHAPING_DECR, 1 ), psEncCtrl->input_quality_bands_Q15[ 0 ] - SKP_FIX_CONST( 1.0, 15 ) ) );
+#else
+// TODO: CHECK THAT BELOW WORKS FINE AND REPLACE
+ strength_Q16 = SKP_MUL( SKP_FIX_CONST( LOW_FREQ_SHAPING, 4 ), SKP_SMLAWB( SKP_FIX_CONST( 1.0, 12 ),
+ SKP_FIX_CONST( LOW_QUALITY_LOW_FREQ_SHAPING_DECR, 13 ), psEncCtrl->input_quality_bands_Q15[ 0 ] - SKP_FIX_CONST( 1.0, 15 ) ) );
+#endif
+ strength_Q16 = SKP_RSHIFT( SKP_MUL( strength_Q16, psEnc->speech_activity_Q8 ), 8 );
if( psEncCtrl->sCmn.sigtype == SIG_TYPE_VOICED ) {
/* Reduce low frequencies quantization noise for periodic signals, depending on pitch lag */
/*f = 400; freqz([1, -0.98 + 2e-4 * f], [1, -0.97 + 7e-4 * f], 2^12, Fs); axis([0, 1000, -10, 1])*/
--- a/src_FIX/SKP_Silk_perceptual_parameters_FIX.h
+++ /dev/null
@@ -1,117 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
-#define SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
-
-#include "SKP_Silk_perceptual_parameters.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* reduction in coding SNR during low speech activity */
-#define BG_SNR_DECR_dB_Q7 SKP_FIX_CONST( BG_SNR_DECR_dB, 7 )
-
-/* factor for reducing quantization noise during voiced speech */
-#define HARM_SNR_INCR_dB_Q7 SKP_FIX_CONST( HARM_SNR_INCR_dB, 7 )
-
-/* factor for reducing quantization noise for unvoiced sparse signals */
-#define SPARSE_SNR_INCR_dB_Q7 SKP_FIX_CONST( SPARSE_SNR_INCR_dB, 7 )
-
-/* threshold for sparseness measure above which to use lower quantization offset during unvoiced */
-#define SPARSENESS_THRESHOLD_QNT_OFFSET_Q8 SKP_FIX_CONST( SPARSENESS_THRESHOLD_QNT_OFFSET, 8 )
-
-
-/* noise shaping filter chirp factor */
-#define BANDWIDTH_EXPANSION_Q16 SKP_FIX_CONST( BANDWIDTH_EXPANSION, 16 )
-
-/* difference between chirp factors for analysis and synthesis noise shaping filters at low bitrates */
-#define LOW_RATE_BANDWIDTH_EXPANSION_DELTA_Q16 SKP_FIX_CONST( LOW_RATE_BANDWIDTH_EXPANSION_DELTA, 16 )
-
-/* factor to reduce all bandwidth expansion coefficients for super wideband, relative to wideband */
-#define SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16 SKP_FIX_CONST( SWB_BANDWIDTH_EXPANSION_REDUCTION, 16 )
-
-/* gain reduction for fricatives */
-#define DE_ESSER_COEF_SWB_dB_Q7 SKP_FIX_CONST( DE_ESSER_COEF_SWB_dB, 7 )
-#define DE_ESSER_COEF_WB_dB_Q7 SKP_FIX_CONST( DE_ESSER_COEF_WB_dB, 7 )
-
-/* extra harmonic boosting (signal shaping) at low bitrates */
-#define LOW_RATE_HARMONIC_BOOST_Q16 SKP_FIX_CONST( LOW_RATE_HARMONIC_BOOST, 16 )
-
-/* extra harmonic boosting (signal shaping) for noisy input signals */
-#define LOW_INPUT_QUALITY_HARMONIC_BOOST_Q16 SKP_FIX_CONST( LOW_INPUT_QUALITY_HARMONIC_BOOST, 16 )
-
-/* harmonic noise shaping */
-#define HARMONIC_SHAPING_Q16 SKP_FIX_CONST( HARMONIC_SHAPING, 16 )
-
-/* extra harmonic noise shaping for high bitrates or noisy input */
-#define HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING_Q16 SKP_FIX_CONST( HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING, 16 )
-
-
-/* parameter for shaping noise towards higher frequencies */
-#define HP_NOISE_COEF_Q16 SKP_FIX_CONST( HP_NOISE_COEF, 16 )
-
-/* parameter for shaping noise extra towards higher frequencies during voiced speech */
-#define HARM_HP_NOISE_COEF_Q24 SKP_FIX_CONST( HARM_HP_NOISE_COEF, 24 )
-
-/* parameter for applying a high-pass tilt to the input signal */
-#define INPUT_TILT_Q26 SKP_FIX_CONST( INPUT_TILT, 26 )
-
-/* parameter for extra high-pass tilt to the input signal at high rates */
-#define HIGH_RATE_INPUT_TILT_Q12 SKP_FIX_CONST( HIGH_RATE_INPUT_TILT, 12 )
-
-/* parameter for reducing noise at the very low frequencies */
-#define LOW_FREQ_SHAPING_Q0 SKP_FIX_CONST( LOW_FREQ_SHAPING, 0 )
-
-/* less reduction of noise at the very low frequencies for signals with low SNR at low frequencies */
-#define LOW_QUALITY_LOW_FREQ_SHAPING_DECR_Q1 SKP_FIX_CONST( LOW_QUALITY_LOW_FREQ_SHAPING_DECR, 1 )
-
-/* fraction added to first autocorrelation value */
-#define SHAPE_WHITE_NOISE_FRACTION_Q20 SKP_FIX_CONST( SHAPE_WHITE_NOISE_FRACTION, 20 )
-
-/* fraction of first autocorrelation value added to residual energy value; limits prediction gain */
-#define SHAPE_MIN_ENERGY_RATIO_Q24 SKP_FIX_CONST( SHAPE_MIN_ENERGY_RATIO, 24 )
-
-/* noise floor to put a low limit on the quantization step size */
-#define NOISE_FLOOR_dB_Q7 SKP_FIX_CONST( NOISE_FLOOR_dB, 7 )
-
-/* noise floor relative to active speech gain level */
-#define RELATIVE_MIN_GAIN_dB_Q7 SKP_FIX_CONST( RELATIVE_MIN_GAIN_dB, 7 )
-
-/* subframe smoothing coefficient for determining active speech gain level (lower -> more smoothing) */
-#define GAIN_SMOOTHING_COEF_Q10 SKP_FIX_CONST( GAIN_SMOOTHING_COEF, 10 )
-
-/* subframe smoothing coefficient for HarmBoost, HarmShapeGain, Tilt (lower -> more smoothing) */
-#define SUBFR_SMTH_COEF_Q16 SKP_FIX_CONST( SUBFR_SMTH_COEF, 16 )
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
--- a/src_FIX/SKP_Silk_quant_LTP_gains_FIX.c
+++ /dev/null
@@ -1,124 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-#include "SKP_Silk_main_FIX.h"
-
-void SKP_Silk_quant_LTP_gains_FIX(
- SKP_int16 B_Q14[], /* I/O (un)quantized LTP gains */
- SKP_int cbk_index[], /* O Codebook Index */
- SKP_int *periodicity_index, /* O Periodicity Index */
- const SKP_int32 W_Q18[], /* I Error Weights in Q18 */
- SKP_int mu_Q8, /* I Mu value (R/D tradeoff) */
- SKP_int lowComplexity, /* I Flag for low complexity */
- const SKP_int nb_subfr /* I number of subframes */
-)
-{
- SKP_int j, k, temp_idx[ MAX_NB_SUBFR ], cbk_size;
- const SKP_uint16 *cdf_ptr;
- const SKP_int16 *cl_ptr;
- const SKP_int16 *cbk_ptr_Q14;
- const SKP_int16 *b_Q14_ptr;
- const SKP_int32 *W_Q18_ptr;
- SKP_int32 rate_dist_subfr, rate_dist, min_rate_dist;
-
-
-TIC(quant_LTP_fix)
-
- /***************************************************/
- /* iterate over different codebooks with different */
- /* rates/distortions, and choose best */
- /***************************************************/
- min_rate_dist = SKP_int32_MAX;
- for( k = 0; k < 3; k++ ) {
- cdf_ptr = SKP_Silk_LTP_gain_CDF_ptrs[ k ];
- cl_ptr = SKP_Silk_LTP_gain_BITS_Q6_ptrs[ k ];
- cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ k ];
- cbk_size = SKP_Silk_LTP_vq_sizes[ k ];
-
- /* Setup pointer to first subframe */
- W_Q18_ptr = W_Q18;
- b_Q14_ptr = B_Q14;
-
- rate_dist = 0;
- for( j = 0; j < nb_subfr; j++ ) {
-
- SKP_Silk_VQ_WMat_EC_FIX(
- &temp_idx[ j ], /* O index of best codebook vector */
- &rate_dist_subfr, /* O best weighted quantization error + mu * rate */
- b_Q14_ptr, /* I input vector to be quantized */
- W_Q18_ptr, /* I weighting matrix */
- cbk_ptr_Q14, /* I codebook */
- cl_ptr, /* I code length for each codebook vector */
- mu_Q8, /* I tradeoff between weighted error and rate */
- cbk_size /* I number of vectors in codebook */
- );
-
- rate_dist = SKP_ADD_POS_SAT32( rate_dist, rate_dist_subfr );
-
- b_Q14_ptr += LTP_ORDER;
- W_Q18_ptr += LTP_ORDER * LTP_ORDER;
- }
-
- /* Avoid never finding a codebook */
- rate_dist = SKP_min( SKP_int32_MAX - 1, rate_dist );
-
- if( rate_dist < min_rate_dist ) {
- min_rate_dist = rate_dist;
- SKP_memcpy( cbk_index, temp_idx, nb_subfr * sizeof( SKP_int ) );
- *periodicity_index = k;
- }
-
- /* Break early in low-complexity mode if rate distortion is below threshold */
- if( lowComplexity && ( rate_dist < SKP_Silk_LTP_gain_middle_avg_RD_Q14 ) ) {
- break;
- }
- }
-
- cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ *periodicity_index ];
- for( j = 0; j < nb_subfr; j++ ) {
- for( k = 0; k < LTP_ORDER; k++ ) {
- B_Q14[ j * LTP_ORDER + k ] = cbk_ptr_Q14[ SKP_MLA( k, cbk_index[ j ], LTP_ORDER ) ];
- }
- }
-TOC(quant_LTP_fix)
-#ifdef SAVE_ALL_INTERNAL_DATA
- /* save rate */
- {
- SKP_int nbits_LTP;
- SKP_float rateBPF_LTP;
-
- cl_ptr = SKP_Silk_LTP_gain_BITS_Q6_ptrs[*periodicity_index];
- nbits_LTP = 0;
- for(j = 0; j < nb_subfr; j++){
- nbits_LTP += cl_ptr[cbk_index[j]];
- }
- rateBPF_LTP = (SKP_float)nbits_LTP / 64.0f; // Q6 -> Q0
- SAVE_DATA( rateBPF_LTP.dat, &rateBPF_LTP, sizeof(SKP_float));
- }
-#endif
-}
-
--- a/src_FIX/SKP_Silk_structs_FIX.h
+++ b/src_FIX/SKP_Silk_structs_FIX.h
@@ -91,10 +91,7 @@
/* Buffer for find pitch and noise shape analysis */
SKP_DWORD_ALIGN SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
SKP_int LTPCorr_Q15; /* Normalized correlation from pitch lag estimator */
- SKP_int mu_LTP_Q8; /* Rate-distortion tradeoff in LTP quantization */
SKP_int32 SNR_dB_Q7; /* Quality setting */
- SKP_int32 avgGain_Q16; /* average gain during active speech */
- SKP_int32 avgGain_Q16_one_bit_per_sample; /* average gain during active speech */
SKP_int BufferedInChannel_ms; /* Simulated number of ms buffer because of exceeded TargetRate_bps */
SKP_int speech_activity_Q8; /* Speech activity in Q8 */
--- a/src_FIX/Silk_FIX.vcproj
+++ /dev/null
@@ -1,288 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="Silk_FIX"
- ProjectGUID="{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"
- RootNamespace="Silk"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories=""../../../celt-0.8.0/libcelt";../interface;../src_common;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;HAVE_CONFIG_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_FIX_Win32_debug.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories=""../../../celt-0.8.0/libcelt";../interface;../src_common;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;HAVE_CONFIG_H"
- GeneratePreprocessedFile="0"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_FIX_Win32_mt.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\SKP_Silk_control_codec_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_corrMatrix_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_encode_frame_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_LPC_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_LTP_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_pitch_lags_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_pred_coefs_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_HP_variable_cutoff_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_init_encoder_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LTP_analysis_filter_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LTP_scale_ctrl_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_MSVQ_encode_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_VQ_rate_distortion_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_VQ_sum_error_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_noise_shape_analysis_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_prefilter_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_process_gains_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_process_NLSFs_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_quant_LTP_gains_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_regularize_correlations_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_residual_energy16_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_residual_energy_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_solve_LS_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_VQ_nearest_neighbor_FIX.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_warped_autocorrelation_FIX.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\SKP_Silk_define_FIX.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_main_FIX.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_perceptual_parameters_FIX.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_structs_FIX.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- /dev/null
+++ b/src_FIX/src_FIX.vcxproj
@@ -1,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8484C90D-1561-402F-A91D-2DB10F8C5171}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>src_FIX</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface;../src_SigProc_FIX;../src_common;../../celt/libcelt</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface;../src_SigProc_FIX;../src_common;../../celt/libcelt</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_main_FIX.h" />
+ <ClInclude Include="SKP_Silk_structs_FIX.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_control_codec_FIX.c" />
+ <ClCompile Include="SKP_Silk_corrMatrix_FIX.c" />
+ <ClCompile Include="SKP_Silk_encode_frame_FIX.c" />
+ <ClCompile Include="SKP_Silk_find_LPC_FIX.c" />
+ <ClCompile Include="SKP_Silk_find_LTP_FIX.c" />
+ <ClCompile Include="SKP_Silk_find_pitch_lags_FIX.c" />
+ <ClCompile Include="SKP_Silk_find_pred_coefs_FIX.c" />
+ <ClCompile Include="SKP_Silk_HP_variable_cutoff_FIX.c" />
+ <ClCompile Include="SKP_Silk_init_encoder_FIX.c" />
+ <ClCompile Include="SKP_Silk_LTP_analysis_filter_FIX.c" />
+ <ClCompile Include="SKP_Silk_LTP_scale_ctrl_FIX.c" />
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_encode_FIX.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_rate_distortion_FIX.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_sum_error_FIX.c" />
+ <ClCompile Include="SKP_Silk_noise_shape_analysis_FIX.c" />
+ <ClCompile Include="SKP_Silk_prefilter_FIX.c" />
+ <ClCompile Include="SKP_Silk_process_gains_FIX.c" />
+ <ClCompile Include="SKP_Silk_process_NLSFs_FIX.c" />
+ <ClCompile Include="SKP_Silk_regularize_correlations_FIX.c" />
+ <ClCompile Include="SKP_Silk_residual_energy16_FIX.c" />
+ <ClCompile Include="SKP_Silk_residual_energy_FIX.c" />
+ <ClCompile Include="SKP_Silk_solve_LS_FIX.c" />
+ <ClCompile Include="SKP_Silk_warped_autocorrelation_FIX.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/src_FIX/src_FIX.vcxproj.filters
@@ -1,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_main_FIX.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_structs_FIX.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_control_codec_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_corrMatrix_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_encode_frame_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_LPC_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_LTP_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_pitch_lags_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_pred_coefs_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_HP_variable_cutoff_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_init_encoder_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LTP_analysis_filter_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LTP_scale_ctrl_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_encode_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_rate_distortion_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_sum_error_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_noise_shape_analysis_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_prefilter_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_process_gains_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_process_NLSFs_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_regularize_correlations_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_residual_energy_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_residual_energy16_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_solve_LS_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_warped_autocorrelation_FIX.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- a/src_FLP/SKP_Silk_LPC_analysis_filter_FLP.c
+++ b/src_FLP/SKP_Silk_LPC_analysis_filter_FLP.c
@@ -91,22 +91,22 @@
s_ptr = &s[ix - 1];
/* short-term prediction */
- LPC_pred = s_ptr[ 0 ] * PredCoef[ 0 ] +
- s_ptr[-1] * PredCoef[ 1 ] +
- s_ptr[-2] * PredCoef[ 2 ] +
- s_ptr[-3] * PredCoef[ 3 ] +
- s_ptr[-4] * PredCoef[ 4 ] +
- s_ptr[-5] * PredCoef[ 5 ] +
- s_ptr[-6] * PredCoef[ 6 ] +
- s_ptr[-7] * PredCoef[ 7 ] +
- s_ptr[-8] * PredCoef[ 8 ] +
- s_ptr[-9] * PredCoef[ 9 ] +
- s_ptr[-10] * PredCoef[ 10 ] +
- s_ptr[-11] * PredCoef[ 11 ] +
- s_ptr[-12] * PredCoef[ 12 ] +
- s_ptr[-13] * PredCoef[ 13 ] +
- s_ptr[-14] * PredCoef[ 14 ] +
- s_ptr[-15] * PredCoef[ 15 ];
+ LPC_pred = s_ptr[ 0 ] * PredCoef[ 0 ] +
+ s_ptr[ -1 ] * PredCoef[ 1 ] +
+ s_ptr[ -2 ] * PredCoef[ 2 ] +
+ s_ptr[ -3 ] * PredCoef[ 3 ] +
+ s_ptr[ -4 ] * PredCoef[ 4 ] +
+ s_ptr[ -5 ] * PredCoef[ 5 ] +
+ s_ptr[ -6 ] * PredCoef[ 6 ] +
+ s_ptr[ -7 ] * PredCoef[ 7 ] +
+ s_ptr[ -8 ] * PredCoef[ 8 ] +
+ s_ptr[ -9 ] * PredCoef[ 9 ] +
+ s_ptr[ -10 ] * PredCoef[ 10 ] +
+ s_ptr[ -11 ] * PredCoef[ 11 ] +
+ s_ptr[ -12 ] * PredCoef[ 12 ] +
+ s_ptr[ -13 ] * PredCoef[ 13 ] +
+ s_ptr[ -14 ] * PredCoef[ 14 ] +
+ s_ptr[ -15 ] * PredCoef[ 15 ];
/* prediction error */
r_LPC[ix] = s_ptr[ 1 ] - LPC_pred;
@@ -129,18 +129,18 @@
s_ptr = &s[ix - 1];
/* short-term prediction */
- LPC_pred = s_ptr[ 0 ] * PredCoef[ 0 ] +
- s_ptr[-1] * PredCoef[ 1 ] +
- s_ptr[-2] * PredCoef[ 2 ] +
- s_ptr[-3] * PredCoef[ 3 ] +
- s_ptr[-4] * PredCoef[ 4 ] +
- s_ptr[-5] * PredCoef[ 5 ] +
- s_ptr[-6] * PredCoef[ 6 ] +
- s_ptr[-7] * PredCoef[ 7 ] +
- s_ptr[-8] * PredCoef[ 8 ] +
- s_ptr[-9] * PredCoef[ 9 ] +
- s_ptr[-10] * PredCoef[ 10 ] +
- s_ptr[-11] * PredCoef[ 11 ];
+ LPC_pred = s_ptr[ 0 ] * PredCoef[ 0 ] +
+ s_ptr[ -1 ] * PredCoef[ 1 ] +
+ s_ptr[ -2 ] * PredCoef[ 2 ] +
+ s_ptr[ -3 ] * PredCoef[ 3 ] +
+ s_ptr[ -4 ] * PredCoef[ 4 ] +
+ s_ptr[ -5 ] * PredCoef[ 5 ] +
+ s_ptr[ -6 ] * PredCoef[ 6 ] +
+ s_ptr[ -7 ] * PredCoef[ 7 ] +
+ s_ptr[ -8 ] * PredCoef[ 8 ] +
+ s_ptr[ -9 ] * PredCoef[ 9 ] +
+ s_ptr[ -10 ] * PredCoef[ 10 ] +
+ s_ptr[ -11 ] * PredCoef[ 11 ];
/* prediction error */
r_LPC[ix] = s_ptr[ 1 ] - LPC_pred;
@@ -163,16 +163,16 @@
s_ptr = &s[ix - 1];
/* short-term prediction */
- LPC_pred = s_ptr[ 0 ] * PredCoef[ 0 ] +
- s_ptr[-1] * PredCoef[ 1 ] +
- s_ptr[-2] * PredCoef[ 2 ] +
- s_ptr[-3] * PredCoef[ 3 ] +
- s_ptr[-4] * PredCoef[ 4 ] +
- s_ptr[-5] * PredCoef[ 5 ] +
- s_ptr[-6] * PredCoef[ 6 ] +
- s_ptr[-7] * PredCoef[ 7 ] +
- s_ptr[-8] * PredCoef[ 8 ] +
- s_ptr[-9] * PredCoef[ 9 ];
+ LPC_pred = s_ptr[ 0 ] * PredCoef[ 0 ] +
+ s_ptr[ -1 ] * PredCoef[ 1 ] +
+ s_ptr[ -2 ] * PredCoef[ 2 ] +
+ s_ptr[ -3 ] * PredCoef[ 3 ] +
+ s_ptr[ -4 ] * PredCoef[ 4 ] +
+ s_ptr[ -5 ] * PredCoef[ 5 ] +
+ s_ptr[ -6 ] * PredCoef[ 6 ] +
+ s_ptr[ -7 ] * PredCoef[ 7 ] +
+ s_ptr[ -8 ] * PredCoef[ 8 ] +
+ s_ptr[ -9 ] * PredCoef[ 9 ];
/* prediction error */
r_LPC[ix] = s_ptr[ 1 ] - LPC_pred;
@@ -217,7 +217,7 @@
const SKP_int length /* I Length of input signal */
)
{
- SKP_int ix = 8;
+ SKP_int ix = 6;
SKP_float LPC_pred;
const SKP_float *s_ptr;
--- a/src_FLP/SKP_Silk_NLSF_MSVQ_decode_FLP.c
+++ b/src_FLP/SKP_Silk_NLSF_MSVQ_decode_FLP.c
@@ -30,65 +30,68 @@
/* NLSF vector decoder */
void SKP_Silk_NLSF_MSVQ_decode_FLP(
SKP_float *pNLSF, /* O Decoded output vector [ LPC_ORDER ] */
- const SKP_Silk_NLSF_CB_FLP *psNLSF_CB_FLP, /* I NLSF codebook struct */
+ const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I NLSF codebook struct */
const SKP_int *NLSFIndices, /* I NLSF indices [ nStages ] */
const SKP_int LPC_order /* I LPC order used */
)
{
- const SKP_float *pCB_element;
- SKP_int s;
- SKP_int i;
+ const SKP_int8 *pCB_element;
+ SKP_int s;
+ SKP_int i;
/* Check that each index is within valid range */
- SKP_assert( 0 <= NLSFIndices[ 0 ] && NLSFIndices[ 0 ] < psNLSF_CB_FLP->CBStages[ 0 ].nVectors );
+ SKP_assert( 0 <= NLSFIndices[ 0 ] && NLSFIndices[ 0 ] < psNLSF_CB->CBStages[ 0 ].nVectors );
/* Point to the first vector element */
- pCB_element = &psNLSF_CB_FLP->CBStages[ 0 ].CB[ SKP_MUL( NLSFIndices[ 0 ], LPC_order ) ];
+ pCB_element = &psNLSF_CB->CBStages[ 0 ].CB_NLSF_Q8[ SKP_MUL( NLSFIndices[ 0 ], LPC_order ) ];
/* Initialize with the codebook vector from stage 0 */
- SKP_memcpy( pNLSF, pCB_element, LPC_order * sizeof( SKP_float ) );
+ for( i = 0; i < LPC_order; i++ ) {
+ pNLSF[ i ] = ( SKP_float )pCB_element[ i ];
+ }
- for( s = 1; s < psNLSF_CB_FLP->nStages; s++ ) {
+ for( s = 1; s < psNLSF_CB->nStages; s++ ) {
/* Check that each index is within valid range */
- SKP_assert( 0 <= NLSFIndices[ s ] && NLSFIndices[ s ] < psNLSF_CB_FLP->CBStages[ s ].nVectors );
+ SKP_assert( 0 <= NLSFIndices[ s ] && NLSFIndices[ s ] < psNLSF_CB->CBStages[ s ].nVectors );
if( LPC_order == 16 ) {
/* Point to the first vector element */
- pCB_element = &psNLSF_CB_FLP->CBStages[ s ].CB[ SKP_LSHIFT( NLSFIndices[ s ], 4 ) ];
+ pCB_element = &psNLSF_CB->CBStages[ s ].CB_NLSF_Q8[ SKP_LSHIFT( NLSFIndices[ s ], 4 ) ];
/* Add the codebook vector from the current stage */
- pNLSF[ 0 ] += pCB_element[ 0 ];
- pNLSF[ 1 ] += pCB_element[ 1 ];
- pNLSF[ 2 ] += pCB_element[ 2 ];
- pNLSF[ 3 ] += pCB_element[ 3 ];
- pNLSF[ 4 ] += pCB_element[ 4 ];
- pNLSF[ 5 ] += pCB_element[ 5 ];
- pNLSF[ 6 ] += pCB_element[ 6 ];
- pNLSF[ 7 ] += pCB_element[ 7 ];
- pNLSF[ 8 ] += pCB_element[ 8 ];
- pNLSF[ 9 ] += pCB_element[ 9 ];
- pNLSF[ 10 ] += pCB_element[ 10 ];
- pNLSF[ 11 ] += pCB_element[ 11 ];
- pNLSF[ 12 ] += pCB_element[ 12 ];
- pNLSF[ 13 ] += pCB_element[ 13 ];
- pNLSF[ 14 ] += pCB_element[ 14 ];
- pNLSF[ 15 ] += pCB_element[ 15 ];
+ pNLSF[ 0 ] += ( SKP_float )pCB_element[ 0 ];
+ pNLSF[ 1 ] += ( SKP_float )pCB_element[ 1 ];
+ pNLSF[ 2 ] += ( SKP_float )pCB_element[ 2 ];
+ pNLSF[ 3 ] += ( SKP_float )pCB_element[ 3 ];
+ pNLSF[ 4 ] += ( SKP_float )pCB_element[ 4 ];
+ pNLSF[ 5 ] += ( SKP_float )pCB_element[ 5 ];
+ pNLSF[ 6 ] += ( SKP_float )pCB_element[ 6 ];
+ pNLSF[ 7 ] += ( SKP_float )pCB_element[ 7 ];
+ pNLSF[ 8 ] += ( SKP_float )pCB_element[ 8 ];
+ pNLSF[ 9 ] += ( SKP_float )pCB_element[ 9 ];
+ pNLSF[ 10 ] += ( SKP_float )pCB_element[ 10 ];
+ pNLSF[ 11 ] += ( SKP_float )pCB_element[ 11 ];
+ pNLSF[ 12 ] += ( SKP_float )pCB_element[ 12 ];
+ pNLSF[ 13 ] += ( SKP_float )pCB_element[ 13 ];
+ pNLSF[ 14 ] += ( SKP_float )pCB_element[ 14 ];
+ pNLSF[ 15 ] += ( SKP_float )pCB_element[ 15 ];
} else {
/* Point to the first vector element */
- pCB_element = &psNLSF_CB_FLP->CBStages[ s ].CB[ NLSFIndices[ s ] * LPC_order ];
+ pCB_element = &psNLSF_CB->CBStages[ s ].CB_NLSF_Q8[ NLSFIndices[ s ] * LPC_order ];
/* Add the codebook vector from the current stage */
for( i = 0; i < LPC_order; i++ ) {
- pNLSF[ i ] += pCB_element[ i ];
+ pNLSF[ i ] += ( SKP_float )pCB_element[ i ];
}
}
}
- /* Add 1/2 */
+ /* Add 1/2 in Q8 and convert to Q0 */
for( i = 0; i < LPC_order; i++ ) {
- pNLSF[ i ] += 0.5f;
+ pNLSF[ i ] += 128.0f;
+ pNLSF[ i ] *= ( 1.0f / 256.0f );
}
/* NLSF stabilization */
- SKP_Silk_NLSF_stabilize_FLP( pNLSF, psNLSF_CB_FLP->NDeltaMin, LPC_order );
+ SKP_Silk_NLSF_stabilize_FLP( pNLSF, psNLSF_CB->NDeltaMin_Q15, LPC_order );
}
--- a/src_FLP/SKP_Silk_NLSF_MSVQ_encode_FLP.c
+++ b/src_FLP/SKP_Silk_NLSF_MSVQ_encode_FLP.c
@@ -33,7 +33,7 @@
void SKP_Silk_NLSF_MSVQ_encode_FLP(
SKP_int *NLSFIndices, /* O Codebook path vector [ CB_STAGES ] */
SKP_float *pNLSF, /* I/O Quantized NLSF vector [ LPC_ORDER ] */
- const SKP_Silk_NLSF_CB_FLP *psNLSF_CB_FLP, /* I Codebook object */
+ const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Codebook object */
const SKP_float *pNLSF_q_prev, /* I Prev. quantized NLSF 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 */
@@ -44,7 +44,10 @@
)
{
SKP_int i, s, k, cur_survivors, prev_survivors, min_survivors, input_index, cb_index, bestIndex;
- SKP_float se, wsse, rateDistThreshold, bestRateDist;
+ SKP_float rateDistThreshold;
+#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 1 )
+ SKP_float se, wsse, bestRateDist;
+#endif
#if( LOW_COMPLEXITY_ONLY == 1 )
SKP_float pRateDist[ NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE ];
@@ -53,8 +56,8 @@
SKP_int pTempIndices[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ];
SKP_int pPath[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_CB_STAGES ];
SKP_int pPath_new[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_CB_STAGES ];
- SKP_float pRes[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
- SKP_float pRes_new[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
+ SKP_float pRes_Q8[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
+ SKP_float pRes_Q8_new[ MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
#else
SKP_float pRateDist[ NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED ];
SKP_float pRate[ MAX_NLSF_MSVQ_SURVIVORS ];
@@ -62,8 +65,8 @@
SKP_int pTempIndices[ MAX_NLSF_MSVQ_SURVIVORS ];
SKP_int pPath[ MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_CB_STAGES ];
SKP_int pPath_new[ MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_CB_STAGES ];
- SKP_float pRes[ MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
- SKP_float pRes_new[ MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
+ SKP_float pRes_Q8[ MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
+ SKP_float pRes_Q8_new[ MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
#endif
const SKP_float *pConstFloat;
@@ -70,12 +73,19 @@
SKP_float *pFloat;
const SKP_int *pConstInt;
SKP_int *pInt;
- const SKP_float *pCB_element;
- const SKP_Silk_NLSF_CBS_FLP *pCurrentCBStage;
+ const SKP_int8 *pCB_element;
+ const SKP_Silk_NLSF_CBS *pCurrentCBStage;
SKP_assert( NLSF_MSVQ_Survivors <= MAX_NLSF_MSVQ_SURVIVORS );
SKP_assert( ( LOW_COMPLEXITY_ONLY == 0 ) || ( NLSF_MSVQ_Survivors <= MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ) );
+#ifdef SAVE_ALL_INTERNAL_DATA
+ /* Use sigtype.dat to seperate into signal types */
+ DEBUG_STORE_DATA( NLSF.dat, pNLSF, LPC_order * sizeof( SKP_float ) );
+ DEBUG_STORE_DATA( WNLSF.dat, pW, LPC_order * sizeof( SKP_float ) );
+ DEBUG_STORE_DATA( NLSF_mu.dat, &NLSF_mu, sizeof( SKP_float ) );
+#endif
+
cur_survivors = NLSF_MSVQ_Survivors;
/****************************************************/
@@ -85,9 +95,9 @@
/* Clear accumulated rates */
SKP_memset( pRate, 0, NLSF_MSVQ_Survivors * sizeof( SKP_float ) );
- /* Subtract 1/2 from NLSF input vector to create initial residual */
+ /* Subtract 1/2 from NLSF input vector to create initial residual, and scale to Q8 */
for( i = 0; i < LPC_order; i++ ) {
- pRes[ i ] = pNLSF[ i ] - 0.5f;
+ pRes_Q8[ i ] = ( pNLSF[ i ] - 0.5f ) * 256.0f;
}
/* Set first stage values */
@@ -97,10 +107,10 @@
min_survivors = NLSF_MSVQ_Survivors / 2;
/* Loop over all stages */
- for( s = 0; s < psNLSF_CB_FLP->nStages; s++ ) {
+ for( s = 0; s < psNLSF_CB->nStages; s++ ) {
/* Set a pointer to the current stage codebook */
- pCurrentCBStage = &psNLSF_CB_FLP->CBStages[ s ];
+ pCurrentCBStage = &psNLSF_CB->CBStages[ s ];
/* Calculate the number of survivors in the current stage */
cur_survivors = SKP_min_32( NLSF_MSVQ_Survivors, prev_survivors * pCurrentCBStage->nVectors );
@@ -108,12 +118,12 @@
#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 0 )
/* Find a single best survivor in the last stage, if we */
/* do not need candidates for fluctuation reduction */
- if( s == psNLSF_CB_FLP->nStages - 1 ) {
+ if( s == psNLSF_CB->nStages - 1 ) {
cur_survivors = 1;
}
#endif
/* Nearest neighbor clustering for multiple input data vectors */
- SKP_Silk_NLSF_VQ_rate_distortion_FLP( pRateDist, pCurrentCBStage, pRes, pW, pRate, NLSF_mu, prev_survivors, LPC_order );
+ SKP_Silk_NLSF_VQ_rate_distortion_FLP( pRateDist, pCurrentCBStage, pRes_Q8, pW, pRate, NLSF_mu, prev_survivors, LPC_order );
/* Sort the rate-distortion errors */
SKP_Silk_insertion_sort_increasing_FLP( pRateDist, pTempIndices, prev_survivors * pCurrentCBStage->nVectors, cur_survivors );
@@ -142,19 +152,19 @@
}
/* Subtract new contribution from the previous residual vector for each of 'cur_survivors' */
- pConstFloat = &pRes[ input_index * LPC_order ];
- pCB_element = &pCurrentCBStage->CB[ cb_index * LPC_order ];
- pFloat = &pRes_new[ k * LPC_order ];
+ pConstFloat = &pRes_Q8[ input_index * LPC_order ];
+ pCB_element = &pCurrentCBStage->CB_NLSF_Q8[ cb_index * LPC_order ];
+ pFloat = &pRes_Q8_new[ k * LPC_order ];
for( i = 0; i < LPC_order; i++ ) {
pFloat[ i ] = pConstFloat[ i ] - pCB_element[ i ];
}
/* Update accumulated rate for stage 1 to the current */
- pRate_new[ k ] = pRate[ input_index ] + pCurrentCBStage->Rates[ cb_index ];
+ pRate_new[ k ] = pRate[ input_index ] + 0.0625f * ( SKP_float )pCurrentCBStage->Rates_Q4[ cb_index ];
/* Copy paths from previous matrix, starting with the best path */
- pConstInt = &pPath[ input_index * psNLSF_CB_FLP->nStages ];
- pInt = &pPath_new[ k * psNLSF_CB_FLP->nStages ];
+ pConstInt = &pPath[ input_index * psNLSF_CB->nStages ];
+ pInt = &pPath_new[ k * psNLSF_CB->nStages ];
for( i = 0; i < s; i++ ) {
pInt[ i ] = pConstInt[ i ];
}
@@ -162,15 +172,15 @@
pInt[ s ] = cb_index;
}
- if( s < psNLSF_CB_FLP->nStages - 1 ) {
+ if( s < psNLSF_CB->nStages - 1 ) {
/* Copy NLSF residual matrix for next stage */
- SKP_memcpy(pRes, pRes_new, cur_survivors * LPC_order * sizeof( SKP_float ) );
+ SKP_memcpy( pRes_Q8, pRes_Q8_new, cur_survivors * LPC_order * sizeof( SKP_float ) );
/* Copy rate vector for next stage */
- SKP_memcpy(pRate, pRate_new, cur_survivors * sizeof( SKP_float ) );
+ SKP_memcpy( pRate, pRate_new, cur_survivors * sizeof( SKP_float ) );
/* Copy best path matrix for next stage */
- SKP_memcpy(pPath, pPath_new, cur_survivors * psNLSF_CB_FLP->nStages * sizeof( SKP_int ) );
+ SKP_memcpy( pPath, pPath_new, cur_survivors * psNLSF_CB->nStages * sizeof( SKP_int ) );
}
prev_survivors = cur_survivors;
@@ -189,7 +199,7 @@
bestRateDist = SKP_float_MAX;
for( s = 0; s < cur_survivors; s++ ) {
/* Decode survivor to compare with previous quantized NLSF vector */
- SKP_Silk_NLSF_MSVQ_decode_FLP( pNLSF, psNLSF_CB_FLP, &pPath_new[ s * psNLSF_CB_FLP->nStages ], LPC_order );
+ SKP_Silk_NLSF_MSVQ_decode_FLP( pNLSF, psNLSF_CB, &pPath_new[ s * psNLSF_CB->nStages ], LPC_order );
/* Compare decoded NLSF vector with the previously quantized vector */
wsse = 0;
@@ -216,9 +226,9 @@
#endif
/* Copy best path to output argument */
- SKP_memcpy( NLSFIndices, &pPath_new[ bestIndex * psNLSF_CB_FLP->nStages ], psNLSF_CB_FLP->nStages * sizeof( SKP_int ) );
+ SKP_memcpy( NLSFIndices, &pPath_new[ bestIndex * psNLSF_CB->nStages ], psNLSF_CB->nStages * sizeof( SKP_int ) );
/* Decode and stabilize the best survivor */
- SKP_Silk_NLSF_MSVQ_decode_FLP( pNLSF, psNLSF_CB_FLP, NLSFIndices, LPC_order );
+ SKP_Silk_NLSF_MSVQ_decode_FLP( pNLSF, psNLSF_CB, NLSFIndices, LPC_order );
}
--- a/src_FLP/SKP_Silk_NLSF_VQ_rate_distortion_FLP.c
+++ b/src_FLP/SKP_Silk_NLSF_VQ_rate_distortion_FLP.c
@@ -26,11 +26,11 @@
***********************************************************************/
#include "SKP_Silk_main_FLP.h"
-
+
/* Rate-Distortion calculations for multiple input data vectors */
void SKP_Silk_NLSF_VQ_rate_distortion_FLP(
SKP_float *pRD, /* O Rate-distortion values [psNLSF_CBS_FLP->nVectors*N] */
- const SKP_Silk_NLSF_CBS_FLP *psNLSF_CBS_FLP, /* I NLSF codebook stage struct */
+ const SKP_Silk_NLSF_CBS *psNLSF_CBS, /* I NLSF codebook stage struct */
const SKP_float *in, /* I Input vectors to be quantized */
const SKP_float *w, /* I Weight vector */
const SKP_float *rate_acc, /* I Accumulated rates from previous stage */
@@ -43,15 +43,15 @@
SKP_int i, n;
/* Compute weighted quantization errors for all input vectors over one codebook stage */
- SKP_Silk_NLSF_VQ_sum_error_FLP( pRD, in, w, psNLSF_CBS_FLP->CB, N, psNLSF_CBS_FLP->nVectors, LPC_order );
+ SKP_Silk_NLSF_VQ_sum_error_FLP( pRD, in, w, psNLSF_CBS->CB_NLSF_Q8, N, psNLSF_CBS->nVectors, LPC_order );
/* Loop over input vectors */
pRD_vec = pRD;
for( n = 0; n < N; n++ ) {
/* Add rate cost to error for each codebook vector */
- for( i = 0; i < psNLSF_CBS_FLP->nVectors; i++ ) {
- pRD_vec[ i ] += mu * ( rate_acc[n] + psNLSF_CBS_FLP->Rates[ i ] );
+ for( i = 0; i < psNLSF_CBS->nVectors; i++ ) {
+ pRD_vec[ i ] += mu * ( rate_acc[n] + 0.0625f * ( SKP_float )psNLSF_CBS->Rates_Q4[ i ] );
}
- pRD_vec += psNLSF_CBS_FLP->nVectors;
+ pRD_vec += psNLSF_CBS->nVectors;
}
}
--- a/src_FLP/SKP_Silk_NLSF_VQ_sum_error_FLP.c
+++ b/src_FLP/SKP_Silk_NLSF_VQ_sum_error_FLP.c
@@ -30,18 +30,18 @@
/* compute weighted quantization errors for LPC_order element input vectors, over one codebook stage */
void SKP_Silk_NLSF_VQ_sum_error_FLP(
SKP_float *err, /* O Weighted quantization errors [ N * K ] */
- const SKP_float *in, /* I Input vectors [ N * LPC_order ] */
+ const SKP_float *in_NLSF_Q8, /* I Input vectors [ N * LPC_order ] */
const SKP_float *w, /* I Weighting vectors [ N * LPC_order ] */
- const SKP_float *pCB, /* I Codebook vectors [ K * LPC_order ] */
+ const SKP_int8 *pCB_NLSF_Q8, /* I Codebook vectors [ K * LPC_order ] */
const SKP_int N, /* I Number of input vectors */
const SKP_int K, /* I Number of codebook vectors */
const SKP_int LPC_order /* I LPC order */
)
{
- SKP_int i, n;
- SKP_float diff, sum_error;
- SKP_float Wcpy[ MAX_LPC_ORDER ];
- const SKP_float *cb_vec;
+ SKP_int i, n;
+ SKP_float diff_Q8, sum_error_Q16;
+ SKP_float Wcpy[ MAX_LPC_ORDER ];
+ const SKP_int8 *cb_vec_NLSF_Q8;
/* Copy to local stack */
SKP_memcpy( Wcpy, w, LPC_order * sizeof( SKP_float ) );
@@ -50,47 +50,47 @@
/* Loop over input vectors */
for( n = 0; n < N; n++ ) {
/* Loop over codebook */
- cb_vec = pCB;
+ cb_vec_NLSF_Q8 = pCB_NLSF_Q8;
for( i = 0; i < K; i++ ) {
/* Compute weighted squared quantization error */
- diff = in[ 0 ] - cb_vec[ 0 ];
- sum_error = Wcpy[ 0 ] * diff * diff;
- diff = in[ 1 ] - cb_vec[ 1 ];
- sum_error += Wcpy[ 1 ] * diff * diff;
- diff = in[ 2 ] - cb_vec[ 2 ];
- sum_error += Wcpy[ 2 ] * diff * diff;
- diff = in[ 3 ] - cb_vec[ 3 ];
- sum_error += Wcpy[ 3 ] * diff * diff;
- diff = in[ 4 ] - cb_vec[ 4 ];
- sum_error += Wcpy[ 4 ] * diff * diff;
- diff = in[ 5 ] - cb_vec[ 5 ];
- sum_error += Wcpy[ 5 ] * diff * diff;
- diff = in[ 6 ] - cb_vec[ 6 ];
- sum_error += Wcpy[ 6 ] * diff * diff;
- diff = in[ 7 ] - cb_vec[ 7 ];
- sum_error += Wcpy[ 7 ] * diff * diff;
- diff = in[ 8 ] - cb_vec[ 8 ];
- sum_error += Wcpy[ 8 ] * diff * diff;
- diff = in[ 9 ] - cb_vec[ 9 ];
- sum_error += Wcpy[ 9 ] * diff * diff;
- diff = in[ 10 ] - cb_vec[ 10 ];
- sum_error += Wcpy[ 10 ] * diff * diff;
- diff = in[ 11 ] - cb_vec[ 11 ];
- sum_error += Wcpy[ 11 ] * diff * diff;
- diff = in[ 12 ] - cb_vec[ 12 ];
- sum_error += Wcpy[ 12 ] * diff * diff;
- diff = in[ 13 ] - cb_vec[ 13 ];
- sum_error += Wcpy[ 13 ] * diff * diff;
- diff = in[ 14 ] - cb_vec[ 14 ];
- sum_error += Wcpy[ 14 ] * diff * diff;
- diff = in[ 15 ] - cb_vec[ 15 ];
- sum_error += Wcpy[ 15 ] * diff * diff;
+ diff_Q8 = in_NLSF_Q8[ 0 ] - ( SKP_float )cb_vec_NLSF_Q8[ 0 ];
+ sum_error_Q16 = Wcpy[ 0 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 1 ] - ( SKP_float )cb_vec_NLSF_Q8[ 1 ];
+ sum_error_Q16 += Wcpy[ 1 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 2 ] - ( SKP_float )cb_vec_NLSF_Q8[ 2 ];
+ sum_error_Q16 += Wcpy[ 2 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 3 ] - ( SKP_float )cb_vec_NLSF_Q8[ 3 ];
+ sum_error_Q16 += Wcpy[ 3 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 4 ] - ( SKP_float )cb_vec_NLSF_Q8[ 4 ];
+ sum_error_Q16 += Wcpy[ 4 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 5 ] - ( SKP_float )cb_vec_NLSF_Q8[ 5 ];
+ sum_error_Q16 += Wcpy[ 5 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 6 ] - ( SKP_float )cb_vec_NLSF_Q8[ 6 ];
+ sum_error_Q16 += Wcpy[ 6 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 7 ] - ( SKP_float )cb_vec_NLSF_Q8[ 7 ];
+ sum_error_Q16 += Wcpy[ 7 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 8 ] - ( SKP_float )cb_vec_NLSF_Q8[ 8 ];
+ sum_error_Q16 += Wcpy[ 8 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 9 ] - ( SKP_float )cb_vec_NLSF_Q8[ 9 ];
+ sum_error_Q16 += Wcpy[ 9 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 10 ] - ( SKP_float )cb_vec_NLSF_Q8[ 10 ];
+ sum_error_Q16 += Wcpy[ 10 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 11 ] - ( SKP_float )cb_vec_NLSF_Q8[ 11 ];
+ sum_error_Q16 += Wcpy[ 11 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 12 ] - ( SKP_float )cb_vec_NLSF_Q8[ 12 ];
+ sum_error_Q16 += Wcpy[ 12 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 13 ] - ( SKP_float )cb_vec_NLSF_Q8[ 13 ];
+ sum_error_Q16 += Wcpy[ 13 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 14 ] - ( SKP_float )cb_vec_NLSF_Q8[ 14 ];
+ sum_error_Q16 += Wcpy[ 14 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 15 ] - ( SKP_float )cb_vec_NLSF_Q8[ 15 ];
+ sum_error_Q16 += Wcpy[ 15 ] * diff_Q8 * diff_Q8;
- err[ i ] = sum_error;
- cb_vec += 16;
+ err[ i ] = ( 1.0f / 65536.0f ) * sum_error_Q16;
+ cb_vec_NLSF_Q8 += 16;
}
- err += K;
- in += 16;
+ err += K;
+ in_NLSF_Q8 += 16;
}
} else {
SKP_assert( LPC_order == 10 );
@@ -98,35 +98,35 @@
/* Loop over input vectors */
for( n = 0; n < N; n++ ) {
/* Loop over codebook */
- cb_vec = pCB;
+ cb_vec_NLSF_Q8 = pCB_NLSF_Q8;
for( i = 0; i < K; i++ ) {
/* Compute weighted squared quantization error */
- diff = in[ 0 ] - cb_vec[ 0 ];
- sum_error = Wcpy[ 0 ] * diff * diff;
- diff = in[ 1 ] - cb_vec[ 1 ];
- sum_error += Wcpy[ 1 ] * diff * diff;
- diff = in[ 2 ] - cb_vec[ 2 ];
- sum_error += Wcpy[ 2 ] * diff * diff;
- diff = in[ 3 ] - cb_vec[ 3 ];
- sum_error += Wcpy[ 3 ] * diff * diff;
- diff = in[ 4 ] - cb_vec[ 4 ];
- sum_error += Wcpy[ 4 ] * diff * diff;
- diff = in[ 5 ] - cb_vec[ 5 ];
- sum_error += Wcpy[ 5 ] * diff * diff;
- diff = in[ 6 ] - cb_vec[ 6 ];
- sum_error += Wcpy[ 6 ] * diff * diff;
- diff = in[ 7 ] - cb_vec[ 7 ];
- sum_error += Wcpy[ 7 ] * diff * diff;
- diff = in[ 8 ] - cb_vec[ 8 ];
- sum_error += Wcpy[ 8 ] * diff * diff;
- diff = in[ 9 ] - cb_vec[ 9 ];
- sum_error += Wcpy[ 9 ] * diff * diff;
+ diff_Q8 = in_NLSF_Q8[ 0 ] - ( SKP_float )cb_vec_NLSF_Q8[ 0 ];
+ sum_error_Q16 = Wcpy[ 0 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 1 ] - ( SKP_float )cb_vec_NLSF_Q8[ 1 ];
+ sum_error_Q16 += Wcpy[ 1 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 2 ] - ( SKP_float )cb_vec_NLSF_Q8[ 2 ];
+ sum_error_Q16 += Wcpy[ 2 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 3 ] - ( SKP_float )cb_vec_NLSF_Q8[ 3 ];
+ sum_error_Q16 += Wcpy[ 3 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 4 ] - ( SKP_float )cb_vec_NLSF_Q8[ 4 ];
+ sum_error_Q16 += Wcpy[ 4 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 5 ] - ( SKP_float )cb_vec_NLSF_Q8[ 5 ];
+ sum_error_Q16 += Wcpy[ 5 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 6 ] - ( SKP_float )cb_vec_NLSF_Q8[ 6 ];
+ sum_error_Q16 += Wcpy[ 6 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 7 ] - ( SKP_float )cb_vec_NLSF_Q8[ 7 ];
+ sum_error_Q16 += Wcpy[ 7 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 8 ] - ( SKP_float )cb_vec_NLSF_Q8[ 8 ];
+ sum_error_Q16 += Wcpy[ 8 ] * diff_Q8 * diff_Q8;
+ diff_Q8 = in_NLSF_Q8[ 9 ] - ( SKP_float )cb_vec_NLSF_Q8[ 9 ];
+ sum_error_Q16 += Wcpy[ 9 ] * diff_Q8 * diff_Q8;
- err[ i ] = sum_error;
- cb_vec += 10;
+ err[ i ] = ( 1.0f / 65536.0f ) * sum_error_Q16;
+ cb_vec_NLSF_Q8 += 10;
}
- err += K;
- in += 10;
+ err += K;
+ in_NLSF_Q8 += 10;
}
}
}
--- a/src_FLP/SKP_Silk_VQ_nearest_neighbor_FLP.c
+++ /dev/null
@@ -1,98 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-#include "SKP_Silk_main_FLP.h"
-
-#define Q14_CONVERSION_FAC 6.1035e-005f // 1 / 2^14
-
-/* entropy constrained MATRIX-weighted VQ, for a single input data vector */
-void SKP_Silk_VQ_WMat_EC_FLP(
- SKP_int *ind, /* O Index of best codebook vector */
- SKP_float *rate_dist, /* O Best weighted quant. error + mu * rate */
- const SKP_float *in, /* I Input vector to be quantized */
- const SKP_float *W, /* I Weighting matrix */
- const SKP_int16 *cb, /* I Codebook */
- const SKP_int16 *cl_Q6, /* I Code length for each codebook vector */
- const SKP_float mu, /* I Tradeoff between WSSE and rate */
- const SKP_int L /* I Number of vectors in codebook */
-)
-{
- SKP_int k;
- SKP_float sum1;
- SKP_float diff[ 5 ];
- const SKP_int16 *cb_row;
-
- /* Loop over codebook */
- *rate_dist = SKP_float_MAX;
- cb_row = cb;
- for( k = 0; k < L; k++ ) {
- /* Calc difference between in vector and cbk vector */
- diff[ 0 ] = in[ 0 ] - ( SKP_float )cb_row[ 0 ] * Q14_CONVERSION_FAC;
- diff[ 1 ] = in[ 1 ] - ( SKP_float )cb_row[ 1 ] * Q14_CONVERSION_FAC;
- diff[ 2 ] = in[ 2 ] - ( SKP_float )cb_row[ 2 ] * Q14_CONVERSION_FAC;
- diff[ 3 ] = in[ 3 ] - ( SKP_float )cb_row[ 3 ] * Q14_CONVERSION_FAC;
- diff[ 4 ] = in[ 4 ] - ( SKP_float )cb_row[ 4 ] * Q14_CONVERSION_FAC;
-
- /* Weighted rate */
- sum1 = mu * cl_Q6[ k ] / 64.0f;
-
- /* Add weighted quantization error, assuming W is symmetric */
- /* first row of W */
- sum1 += diff[ 0 ] * ( W[ 0 ] * diff[ 0 ] +
- 2.0f * ( W[ 1 ] * diff[ 1 ] +
- W[ 2 ] * diff[ 2 ] +
- W[ 3 ] * diff[ 3 ] +
- W[ 4 ] * diff[ 4 ] ) );
-
- /* second row of W */
- sum1 += diff[ 1 ] * ( W[ 6 ] * diff[ 1 ] +
- 2.0f * ( W[ 7 ] * diff[ 2 ] +
- W[ 8 ] * diff[ 3 ] +
- W[ 9 ] * diff[ 4 ] ) );
-
- /* third row of W */
- sum1 += diff[ 2 ] * ( W[ 12 ] * diff[ 2 ] +
- 2.0f * ( W[ 13 ] * diff[ 3 ] +
- W[ 14 ] * diff[ 4 ] ) );
-
- /* fourth row of W */
- sum1 += diff[ 3 ] * ( W[ 18 ] * diff[ 3 ] +
- 2.0f * ( W[ 19 ] * diff[ 4 ] ) );
-
- /* last row of W */
- sum1 += diff[ 4 ] * ( W[ 24 ] * diff[ 4 ] );
-
- /* find best */
- if( sum1 < *rate_dist ) {
- *rate_dist = sum1;
- *ind = k;
- }
-
- /* Go to next cbk vector */
- cb_row += LTP_ORDER;
- }
-}
--- a/src_FLP/SKP_Silk_control_codec_FLP.c
+++ b/src_FLP/SKP_Silk_control_codec_FLP.c
@@ -33,11 +33,6 @@
SKP_int fs_kHz /* I Internal sampling rate (kHz) */
);
-SKP_INLINE SKP_int SKP_Silk_setup_packetsize(
- SKP_Silk_encoder_state_FLP *psEnc, /* I/O Pointer to Silk encoder state FLP */
- SKP_int PacketSize_ms /* I Packet length (ms) */
-);
-
SKP_INLINE SKP_int SKP_Silk_setup_fs(
SKP_Silk_encoder_state_FLP *psEnc, /* I/O */
SKP_int fs_kHz, /* I */
@@ -140,40 +135,6 @@
}
}
-SKP_INLINE SKP_int SKP_Silk_setup_packetsize(
- SKP_Silk_encoder_state_FLP *psEnc, /* I/O */
- SKP_int PacketSize_ms /* I */
-)
-{
- SKP_int ret = SKP_SILK_NO_ERROR;
- if( ( PacketSize_ms != 10 ) &&
- ( PacketSize_ms != 20 ) &&
- ( PacketSize_ms != 40 ) &&
- ( PacketSize_ms != 60 ) ) {
- ret = SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED;
- } else {
- if( PacketSize_ms != psEnc->sCmn.PacketSize_ms ) {
- if( PacketSize_ms == 10 ) {
- /* Only allowed when the payload buffer is empty */
- psEnc->sCmn.nb_subfr = MAX_NB_SUBFR >> 1;
- psEnc->sCmn.PacketSize_ms = PacketSize_ms;
- psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS_2_SF, psEnc->sCmn.fs_kHz );
- /* Packet length changes. Reset LBRR buffer */
- SKP_Silk_LBRR_reset( &psEnc->sCmn );
- } else{
- psEnc->sCmn.nb_subfr = MAX_NB_SUBFR;
- psEnc->sCmn.PacketSize_ms = PacketSize_ms;
- psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, psEnc->sCmn.fs_kHz );
- /* Packet length changes. Reset LBRR buffer */
- SKP_Silk_LBRR_reset( &psEnc->sCmn );
- }
- }
- psEnc->sCmn.frame_length = SKP_SMULBB( psEnc->sCmn.subfr_length, psEnc->sCmn.nb_subfr );
- }
-
- return(ret);
-}
-
SKP_INLINE SKP_int SKP_Silk_setup_resamplers(
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Pointer to Silk encoder state FLP */
SKP_int fs_kHz /* I External (API) sampling rate (Hz) */
@@ -238,16 +199,37 @@
{
SKP_int ret = SKP_SILK_NO_ERROR;
+ /* Set packet size */
+ if( PacketSize_ms != psEnc->sCmn.PacketSize_ms ) {
+ if( ( PacketSize_ms != 10 ) &&
+ ( PacketSize_ms != 20 ) &&
+ ( PacketSize_ms != 40 ) &&
+ ( PacketSize_ms != 60 ) ) {
+ ret = SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED;
+ }
+ if( PacketSize_ms == 10 ) {
+ /* Only allowed when the payload buffer is empty */
+ psEnc->sCmn.nb_subfr = MAX_NB_SUBFR >> 1;
+ psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS_2_SF, fs_kHz );
+ } else {
+ psEnc->sCmn.nb_subfr = MAX_NB_SUBFR;
+ psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, fs_kHz );
+ }
+ /* Packet length changes. Reset LBRR buffer */
+ SKP_Silk_LBRR_reset( &psEnc->sCmn );
+ psEnc->sCmn.PacketSize_ms = PacketSize_ms;
+ }
+
/* Set internal sampling frequency */
if( psEnc->sCmn.fs_kHz != fs_kHz ) {
/* reset part of the state */
- SKP_memset( &psEnc->sShape, 0, sizeof( SKP_Silk_shape_state_FLP ) );
- SKP_memset( &psEnc->sPrefilt, 0, sizeof( SKP_Silk_prefilter_state_FLP ) );
- SKP_memset( &psEnc->sNSQ, 0, sizeof( SKP_Silk_nsq_state ) );
- SKP_memset( &psEnc->sPred, 0, sizeof( SKP_Silk_predict_state_FLP ) );
- SKP_memset( psEnc->sNSQ.xq, 0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
- SKP_memset( psEnc->sNSQ_LBRR.xq, 0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
- SKP_memset( psEnc->sCmn.LBRR_buffer, 0, MAX_LBRR_DELAY * sizeof( SKP_SILK_LBRR_struct ) );
+ SKP_memset( &psEnc->sShape, 0, sizeof( SKP_Silk_shape_state_FLP ) );
+ SKP_memset( &psEnc->sPrefilt, 0, sizeof( SKP_Silk_prefilter_state_FLP ) );
+ SKP_memset( &psEnc->sNSQ, 0, sizeof( SKP_Silk_nsq_state ) );
+ SKP_memset( &psEnc->sPred, 0, sizeof( SKP_Silk_predict_state_FLP ) );
+ SKP_memset( psEnc->sNSQ.xq, 0, 2 * MAX_FRAME_LENGTH * sizeof( SKP_int16 ) );
+ SKP_memset( psEnc->sNSQ_LBRR.xq, 0, 2 * MAX_FRAME_LENGTH * sizeof( SKP_int16 ) );
+ SKP_memset( psEnc->sCmn.LBRR_buffer, 0, MAX_LBRR_DELAY * sizeof( SKP_SILK_LBRR_struct ) );
#if SWITCH_TRANSITION_FILTERING
SKP_memset( psEnc->sCmn.sLP.In_LP_State, 0, 2 * sizeof( SKP_int32 ) );
if( psEnc->sCmn.sLP.mode == 1 ) {
@@ -281,16 +263,29 @@
psEnc->sCmn.predictLPCOrder = MIN_LPC_ORDER;
psEnc->sCmn.psNLSF_CB[ 0 ] = &SKP_Silk_NLSF_CB0_10;
psEnc->sCmn.psNLSF_CB[ 1 ] = &SKP_Silk_NLSF_CB1_10;
- psEnc->psNLSF_CB_FLP[ 0 ] = &SKP_Silk_NLSF_CB0_10_FLP;
- psEnc->psNLSF_CB_FLP[ 1 ] = &SKP_Silk_NLSF_CB1_10_FLP;
+ if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_NB_iCDF;
+ } else if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR / 2 ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_10_ms_NB_iCDF;
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
+ }
} else {
psEnc->sCmn.predictLPCOrder = MAX_LPC_ORDER;
psEnc->sCmn.psNLSF_CB[ 0 ] = &SKP_Silk_NLSF_CB0_16;
psEnc->sCmn.psNLSF_CB[ 1 ] = &SKP_Silk_NLSF_CB1_16;
- psEnc->psNLSF_CB_FLP[ 0 ] = &SKP_Silk_NLSF_CB0_16_FLP;
- psEnc->psNLSF_CB_FLP[ 1 ] = &SKP_Silk_NLSF_CB1_16_FLP;
+ if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_iCDF;
+ } else if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR / 2 ){
+ psEnc->sCmn.pitch_contour_iCDF = SKP_Silk_pitch_contour_10_ms_iCDF;
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
+ }
}
psEnc->sCmn.subfr_length = SUB_FRAME_LENGTH_MS * fs_kHz;
+ psEnc->sCmn.frame_length = psEnc->sCmn.subfr_length * psEnc->sCmn.nb_subfr;
psEnc->sCmn.ltp_mem_length = LTP_MEM_LENGTH_MS * fs_kHz;
psEnc->sCmn.la_pitch = LA_PITCH_MS * fs_kHz;
psEnc->sPred.min_pitch_lag = 3 * fs_kHz;
@@ -297,34 +292,39 @@
psEnc->sPred.max_pitch_lag = 18 * fs_kHz;
if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR ){
psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, fs_kHz );
- } else {
+ } else if( psEnc->sCmn.nb_subfr == MAX_NB_SUBFR / 2 ){
psEnc->sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS_2_SF, fs_kHz );
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
}
if( psEnc->sCmn.fs_kHz == 24 ) {
- psEnc->mu_LTP = MU_LTP_QUANT_SWB;
- psEnc->sCmn.bitrate_threshold_up = SKP_int32_MAX;
- psEnc->sCmn.bitrate_threshold_down = SWB2WB_BITRATE_BPS;
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_SWB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = SKP_int32_MAX;
+ psEnc->sCmn.bitrate_threshold_down = SWB2WB_BITRATE_BPS;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform12_iCDF;
} else if( psEnc->sCmn.fs_kHz == 16 ) {
- psEnc->mu_LTP = MU_LTP_QUANT_WB;
- psEnc->sCmn.bitrate_threshold_up = WB2SWB_BITRATE_BPS;
- psEnc->sCmn.bitrate_threshold_down = WB2MB_BITRATE_BPS;
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_WB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = WB2SWB_BITRATE_BPS;
+ psEnc->sCmn.bitrate_threshold_down = WB2MB_BITRATE_BPS;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform8_iCDF;
} else if( psEnc->sCmn.fs_kHz == 12 ) {
- psEnc->mu_LTP = MU_LTP_QUANT_MB;
- psEnc->sCmn.bitrate_threshold_up = MB2WB_BITRATE_BPS;
- psEnc->sCmn.bitrate_threshold_down = MB2NB_BITRATE_BPS;
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_MB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = MB2WB_BITRATE_BPS;
+ psEnc->sCmn.bitrate_threshold_down = MB2NB_BITRATE_BPS;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform6_iCDF;
+ } else if( psEnc->sCmn.fs_kHz == 8 ) {
+ psEnc->sCmn.mu_LTP_Q10 = SKP_FIX_CONST( MU_LTP_QUANT_NB, 10 );
+ psEnc->sCmn.bitrate_threshold_up = NB2MB_BITRATE_BPS;
+ psEnc->sCmn.bitrate_threshold_down = 0;
+ psEnc->sCmn.pitch_lag_low_bits_iCDF = SKP_Silk_uniform4_iCDF;
} else {
- psEnc->mu_LTP = MU_LTP_QUANT_NB;
- psEnc->sCmn.bitrate_threshold_up = NB2MB_BITRATE_BPS;
- psEnc->sCmn.bitrate_threshold_down = 0;
+ /* unsupported sampling rate */
+ SKP_assert( 0 );
}
psEnc->sCmn.fs_kHz_changed = 1;
}
- /********************************************/
- /* Set packet size */
- /********************************************/
- ret += SKP_Silk_setup_packetsize( psEnc, PacketSize_ms );
-
/* Check that settings are valid */
SKP_assert( ( psEnc->sCmn.subfr_length * psEnc->sCmn.nb_subfr ) == psEnc->sCmn.frame_length );
@@ -338,7 +338,7 @@
{
SKP_int k, ret = SKP_SILK_NO_ERROR;
SKP_float frac;
- const SKP_int32 *rateTable;
+ const SKP_uint16 *rateTable;
/* Set bitrate/coding quality */
if( TargetRate_bps != psEnc->sCmn.TargetRate_bps ) {
--- a/src_FLP/SKP_Silk_define_FLP.h
+++ /dev/null
@@ -1,103 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_DEFINE_FLP_H
-#define SKP_SILK_DEFINE_FLP_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/*******************/
-/* Pitch estimator */
-/*******************/
-
-/* Level of noise floor for whitening filter LPC analysis in pitch analysis */
-#define FIND_PITCH_WHITE_NOISE_FRACTION 1e-3f
-
-/* Bandwidth expansion for whitening filter in pitch analysis */
-#define FIND_PITCH_BANDWITH_EXPANSION 0.99f
-
-/* Threshold used by pitch estimator for early escape */
-#define FIND_PITCH_CORRELATION_THRESHOLD_HC_MODE 0.7f
-#define FIND_PITCH_CORRELATION_THRESHOLD_MC_MODE 0.75f
-#define FIND_PITCH_CORRELATION_THRESHOLD_LC_MODE 0.8f
-
-/***********************/
-/* Long-Term predictor */
-/***********************/
-
-/* Regualarization factor for correlation matrix. Equivalent to adding noise at -50 dB */
-#define FIND_LTP_COND_FAC 1e-5f
-#define FIND_LPC_COND_FAC 6e-5f
-
-/* Find prediction coefficients defines */
-#define LTP_DAMPING 0.001f
-#define LTP_SMOOTHING 0.1f
-
-/* LTP quantization settings */
-#define MU_LTP_QUANT_NB 0.03f
-#define MU_LTP_QUANT_MB 0.025f
-#define MU_LTP_QUANT_WB 0.02f
-#define MU_LTP_QUANT_SWB 0.016f
-
-/***********************/
-/* High pass filtering */
-/***********************/
-
-/* Smoothing parameters for low end of pitch frequency range estimation */
-#define VARIABLE_HP_SMTH_COEF1 0.1f
-#define VARIABLE_HP_SMTH_COEF2 0.015f
-
-/* Min and max values for low end of pitch frequency range estimation */
-#define VARIABLE_HP_MIN_FREQ 80.0f
-#define VARIABLE_HP_MAX_FREQ 150.0f
-
-/* Max absolute difference between log2 of pitch frequency and smoother state, to enter the smoother */
-#define VARIABLE_HP_MAX_DELTA_FREQ 0.4f
-
-/***********/
-/* Various */
-/***********/
-
-/* Required speech activity for counting frame as active */
-#define WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES 0.7f
-
-#define SPEECH_ACTIVITY_DTX_THRES 0.1f
-
-/* Speech Activity LBRR enable threshold (needs tuning) */
-#define LBRR_SPEECH_ACTIVITY_THRES 0.5f
-
-#define Q14_CONVERSION_FAC 6.1035e-005f // 1 / 2^14
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src_FLP/SKP_Silk_encode_frame_FLP.c
+++ b/src_FLP/SKP_Silk_encode_frame_FLP.c
@@ -52,8 +52,6 @@
SKP_uint8 LBRRpayload[ MAX_ARITHM_BYTES ];
SKP_int16 nBytesLBRR;
- const SKP_uint16 *FrameTermination_CDF;
-
TIC(ENCODE_FRAME)
sEncCtrl.sCmn.Seed = psEnc->sCmn.frameCounter++ & 3;
@@ -125,7 +123,7 @@
/* Find linear prediction coefficients (LPC + LTP) */
/***************************************************/
TIC(FIND_PRED_COEF)
- SKP_Silk_find_pred_coefs_FLP( psEnc, &sEncCtrl, res_pitch );
+ SKP_Silk_find_pred_coefs_FLP( psEnc, &sEncCtrl, res_pitch, x_frame );
TOC(FIND_PRED_COEF)
/****************************************/
@@ -183,7 +181,6 @@
/****************************************/
TIC(ENCODE_PARAMS)
SKP_Silk_encode_parameters( &psEnc->sCmn, &sEncCtrl.sCmn, psRangeEnc );
- FrameTermination_CDF = SKP_Silk_FrameTermination_CDF;
TOC(ENCODE_PARAMS)
/****************************************/
@@ -217,8 +214,7 @@
frame_terminator = SKP_SILK_NO_LBRR;
/* Add the frame termination info to stream */
- ec_encode_bin( psRangeEnc, FrameTermination_CDF[ frame_terminator ],
- FrameTermination_CDF[ frame_terminator + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, frame_terminator, SKP_Silk_FrameTermination_iCDF, 8 );
/* Code excitation signal */
for( i = 0; i < psEnc->sCmn.nFramesInPayloadBuf; i++ ) {
@@ -304,9 +300,8 @@
TOC(ENCODE_FRAME)
#ifdef SAVE_ALL_INTERNAL_DATA
- DEBUG_STORE_DATA( xf.dat, pIn_HP_LP, psEnc->sCmn.frame_length * sizeof( SKP_int16 ) );
- DEBUG_STORE_DATA( xfw.dat, xfw, psEnc->sCmn.frame_length * sizeof( SKP_float ) );
-// DEBUG_STORE_DATA( q.dat, q, psEnc->sCmn.frame_length * sizeof( SKP_int ) );
+ //DEBUG_STORE_DATA( xf.dat, pIn_HP_LP, psEnc->sCmn.frame_length * sizeof( SKP_int16 ) );
+ //DEBUG_STORE_DATA( xfw.dat, xfw, psEnc->sCmn.frame_length * sizeof( SKP_float ) );
DEBUG_STORE_DATA( pitchL.dat, sEncCtrl.sCmn.pitchL, MAX_NB_SUBFR * sizeof( SKP_int ) );
DEBUG_STORE_DATA( pitchG_quantized.dat, sEncCtrl.LTPCoef, psEnc->sCmn.nb_subfr * LTP_ORDER * sizeof( SKP_float ) );
DEBUG_STORE_DATA( pitch_freq_low_Hz.dat, &sEncCtrl.pitch_freq_low_Hz, sizeof( SKP_float ) );
@@ -313,7 +308,7 @@
DEBUG_STORE_DATA( LTPcorr.dat, &psEnc->LTPCorr, sizeof( SKP_float ) );
DEBUG_STORE_DATA( tilt.dat, &sEncCtrl.input_tilt, sizeof( SKP_float ) );
DEBUG_STORE_DATA( gains.dat, sEncCtrl.Gains, psEnc->sCmn.nb_subfr * sizeof( SKP_float ) );
-// DEBUG_STORE_DATA( gains_indices.dat, sEncCtrl.sCmn.GainsIndices, MAX_LAYERS * psEnc->sCmn.nb_subfr * sizeof( SKP_int ) );
+ DEBUG_STORE_DATA( gains_indices.dat, &sEncCtrl.sCmn.GainsIndices, psEnc->sCmn.nb_subfr * sizeof( SKP_int ) );
DEBUG_STORE_DATA( nBytes.dat, &nBytes, sizeof( SKP_int ) );
DEBUG_STORE_DATA( current_SNR_db.dat, &sEncCtrl.current_SNR_dB, sizeof( SKP_float ) );
DEBUG_STORE_DATA( QuantOffsetType.dat, &sEncCtrl.sCmn.QuantOffsetType, sizeof( SKP_int ) );
--- a/src_FLP/SKP_Silk_find_pitch_lags_FLP.c
+++ b/src_FLP/SKP_Silk_find_pitch_lags_FLP.c
@@ -81,7 +81,7 @@
SKP_Silk_autocorrelation_FLP( auto_corr, Wsig, psPredSt->pitch_LPC_win_length, psEnc->sCmn.pitchEstimationLPCOrder + 1 );
/* Add white noise, as a fraction of the energy */
- auto_corr[ 0 ] += auto_corr[ 0 ] * FIND_PITCH_WHITE_NOISE_FRACTION;
+ auto_corr[ 0 ] += auto_corr[ 0 ] * FIND_PITCH_WHITE_NOISE_FRACTION + 1;
/* Calculate the reflection coefficients using Schur */
res_nrg = SKP_Silk_schur_FLP( refl_coef, auto_corr, psEnc->sCmn.pitchEstimationLPCOrder );
--- a/src_FLP/SKP_Silk_find_pred_coefs_FLP.c
+++ b/src_FLP/SKP_Silk_find_pred_coefs_FLP.c
@@ -29,9 +29,10 @@
void SKP_Silk_find_pred_coefs_FLP(
- SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder state FLP */
- SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder control FLP */
- const SKP_float res_pitch[] /* I Residual from pitch analysis */
+ SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder state FLP */
+ SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder control FLP */
+ const SKP_float res_pitch[], /* I Residual from pitch analysis */
+ const SKP_float x[] /* I Speech signal */
)
{
SKP_int i;
@@ -60,9 +61,14 @@
psEncCtrl->sCmn.pitchL, Wght, psEnc->sCmn.subfr_length,
psEnc->sCmn.nb_subfr, psEnc->sCmn.ltp_mem_length );
+#ifdef SAVE_ALL_INTERNAL_DATA
+ DEBUG_STORE_DATA( ltp_gains.dat, psEncCtrl->LTPCoef, sizeof( psEncCtrl->LTPCoef ) );
+ DEBUG_STORE_DATA( ltp_weights.dat, WLTP, sizeof( WLTP ) );
+#endif
+
/* Quantize LTP gain parameters */
SKP_Silk_quant_LTP_gains_FLP( psEncCtrl->LTPCoef, psEncCtrl->sCmn.LTPIndex, &psEncCtrl->sCmn.PERIndex,
- WLTP, psEnc->mu_LTP, psEnc->sCmn.LTPQuantLowComplexity , psEnc->sCmn.nb_subfr );
+ WLTP, psEnc->sCmn.mu_LTP_Q10, psEnc->sCmn.LTPQuantLowComplexity , psEnc->sCmn.nb_subfr );
/* Control LTP scaling */
SKP_Silk_LTP_scale_ctrl_FLP( psEnc, psEncCtrl );
@@ -76,7 +82,7 @@
/* UNVOICED */
/************/
/* Create signal with prepended subframes, scaled by inverse gains */
- x_ptr = psEnc->x_buf + psEnc->sCmn.ltp_mem_length - psEnc->sCmn.predictLPCOrder;
+ x_ptr = x - psEnc->sCmn.predictLPCOrder;
x_pre_ptr = LPC_in_pre;
for( i = 0; i < psEnc->sCmn.nb_subfr; i++ ) {
SKP_Silk_scale_copy_vector_FLP( x_pre_ptr, x_ptr, invGains[ i ],
@@ -104,7 +110,5 @@
/* Copy to prediction struct for use in next frame for fluctuation reduction */
SKP_memcpy( psEnc->sPred.prev_NLSFq, NLSF, psEnc->sCmn.predictLPCOrder * sizeof( SKP_float ) );
-
-
}
--- a/src_FLP/SKP_Silk_main_FLP.h
+++ b/src_FLP/SKP_Silk_main_FLP.h
@@ -31,7 +31,6 @@
#include "SKP_Silk_SigProc_FLP.h"
#include "SKP_Silk_SigProc_FIX.h"
#include "SKP_Silk_structs_FLP.h"
-#include "SKP_Silk_tables_FLP.h"
#include "SKP_Silk_main.h"
#include "SKP_Silk_define.h"
#include "SKP_debug.h"
@@ -146,7 +145,8 @@
void SKP_Silk_find_pred_coefs_FLP(
SKP_Silk_encoder_state_FLP *psEnc, /* I/O Encoder state FLP */
SKP_Silk_encoder_control_FLP *psEncCtrl, /* I/O Encoder control FLP */
- const SKP_float res_pitch[] /* I Residual from pitch analysis */
+ const SKP_float res_pitch[], /* I Residual from pitch analysis */
+ const SKP_float x[] /* I Speech signal */
);
/* LPC analysis */
@@ -248,13 +248,13 @@
/* LTP tap quantizer */
void SKP_Silk_quant_LTP_gains_FLP(
- SKP_float B[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (Un-)quantized LTP gains */
- SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Codebook index */
- SKP_int *periodicity_index, /* O Periodicity index */
- const SKP_float W[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error weights */
- const SKP_float mu, /* I Mu value (R/D tradeoff) */
- const SKP_int lowComplexity, /* I Flag for low complexity */
- const SKP_int nb_subfr /* I number of subframes */
+ SKP_float B[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (Un-)quantized LTP gains */
+ SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Codebook index */
+ SKP_int *periodicity_index, /* O Periodicity index */
+ const SKP_float W[ MAX_NB_SUBFR * LTP_ORDER * LTP_ORDER ], /* I Error weights */
+ const SKP_int mu_Q10, /* I Mu value (R/D tradeoff) */
+ const SKP_int lowComplexity, /* I Flag for low complexity */
+ const SKP_int nb_subfr /* I number of subframes */
);
/******************/
@@ -271,7 +271,7 @@
void SKP_Silk_NLSF_MSVQ_encode_FLP(
SKP_int *NLSFIndices, /* O Codebook path vector [ CB_STAGES ] */
SKP_float *pNLSF, /* I/O Quantized NLSF vector [ LPC_ORDER ] */
- const SKP_Silk_NLSF_CB_FLP *psNLSF_CB_FLP, /* I Codebook object */
+ const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I Codebook object */
const SKP_float *pNLSF_q_prev, /* I Prev. quantized NLSF 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 */
@@ -284,7 +284,7 @@
/* Rate-Distortion calculations for multiple input data vectors */
void SKP_Silk_NLSF_VQ_rate_distortion_FLP(
SKP_float *pRD, /* O Rate-distortion values [psNLSF_CBS_FLP->nVectors*N] */
- const SKP_Silk_NLSF_CBS_FLP *psNLSF_CBS_FLP, /* I NLSF codebook stage struct */
+ const SKP_Silk_NLSF_CBS *psNLSF_CBS, /* I NLSF codebook stage struct */
const SKP_float *in, /* I Input vectors to be quantized */
const SKP_float *w, /* I Weight vector */
const SKP_float *rate_acc, /* I Accumulated rates from previous stage */
@@ -298,7 +298,7 @@
SKP_float *err, /* O Weighted quantization errors [ N * K ] */
const SKP_float *in, /* I Input vectors [ N * LPC_order ] */
const SKP_float *w, /* I Weighting vectors [ N * LPC_order ] */
- const SKP_float *pCB, /* I Codebook vectors [ K * LPC_order ] */
+ const SKP_int8 *pCB_NLSF_Q8, /* I Codebook vectors [ K * LPC_order ] */
const SKP_int N, /* I Number of input vectors */
const SKP_int K, /* I Number of codebook vectors */
const SKP_int LPC_order /* I LPC order */
@@ -307,7 +307,7 @@
/* NLSF vector decoder */
void SKP_Silk_NLSF_MSVQ_decode_FLP(
SKP_float *pNLSF, /* O Decoded output vector [ LPC_ORDER ] */
- const SKP_Silk_NLSF_CB_FLP *psNLSF_CB_FLP, /* I NLSF codebook struct */
+ const SKP_Silk_NLSF_CB_struct *psNLSF_CB, /* I NLSF codebook struct */
const SKP_int *NLSFIndices, /* I NLSF indices [ nStages ] */
const SKP_int LPC_order /* I LPC order used */
);
@@ -404,8 +404,8 @@
/* NLSF stabilizer, for a single input data vector */
void SKP_Silk_NLSF_stabilize_FLP(
- SKP_float *pNLSF, /* I/O (Un)stable NLSF vector [ LPC_order ] */
- const SKP_float *pNDelta_min, /* I Normalized delta min vector[LPC_order+1]*/
+ SKP_float *pNLSF, /* I/O (Un)stable NLSF vector [ LPC_order ] */
+ const SKP_int *pNDelta_min_Q15, /* I Normalized delta min vector[LPC_order+1]*/
const SKP_int LPC_order /* I LPC order */
);
--- a/src_FLP/SKP_Silk_noise_shape_analysis_FLP.c
+++ b/src_FLP/SKP_Silk_noise_shape_analysis_FLP.c
@@ -142,8 +142,13 @@
/* CONTROL SNR */
/****************/
/* Reduce SNR_dB values if recent bitstream has exceeded TargetRate */
- psEncCtrl->current_SNR_dB = psEnc->SNR_dB - 0.05f * psEnc->BufferedInChannel_ms;
+ psEncCtrl->current_SNR_dB = psEnc->SNR_dB - 0.1f * psEnc->BufferedInChannel_ms;
+ /* Reduce SNR for 10 ms frames */
+ if( psEnc->sCmn.nb_subfr == 2 ) {
+ psEncCtrl->current_SNR_dB -= 1.5f;
+ }
+
/* Reduce SNR_dB if inband FEC used */
if( psEnc->speech_activity > LBRR_SPEECH_ACTIVITY_THRES ) {
psEncCtrl->current_SNR_dB -= psEnc->inBandFEC_SNR_comp;
@@ -158,10 +163,12 @@
/* Coding quality level, between 0.0 and 1.0 */
psEncCtrl->coding_quality = SKP_sigmoid( 0.25f * ( psEncCtrl->current_SNR_dB - 18.0f ) );
- /* Reduce coding SNR during low speech activity */
- b = 1.0f - psEnc->speech_activity;
- SNR_adj_dB = psEncCtrl->current_SNR_dB -
- BG_SNR_DECR_dB * psEncCtrl->coding_quality * ( 0.5f + 0.5f * psEncCtrl->input_quality ) * b * b;
+ SNR_adj_dB = psEncCtrl->current_SNR_dB;
+ if( psEnc->sCmn.useCBR == 0 ) {
+ /* Reduce coding SNR during low speech activity */
+ b = 1.0f - psEnc->speech_activity;
+ SNR_adj_dB -= BG_SNR_DECR_dB * psEncCtrl->coding_quality * ( 0.5f + 0.5f * psEncCtrl->input_quality ) * b * b;
+ }
if( psEncCtrl->sCmn.sigtype == SIG_TYPE_VOICED ) {
/* Reduce gains for periodic signals */
@@ -290,18 +297,15 @@
/*****************/
/* Gain tweaking */
/*****************/
- /* Increase gains during low speech activity and put lower limit on gains */
- gain_mult = ( SKP_float )pow( 2.0f, -0.16f * SNR_adj_dB );
- gain_add = ( SKP_float )pow( 2.0f, 0.16f * NOISE_FLOOR_dB ) +
- ( SKP_float )pow( 2.0f, 0.16f * RELATIVE_MIN_GAIN_dB ) * psEnc->avgGain;
+ /* Increase gains during low speech activity */
+ gain_mult = (SKP_float)pow( 2.0f, -0.16f * SNR_adj_dB );
+ gain_add = (SKP_float)pow( 2.0f, 0.16f * MIN_QGAIN_DB );
for( k = 0; k < psEnc->sCmn.nb_subfr; k++ ) {
psEncCtrl->Gains[ k ] *= gain_mult;
psEncCtrl->Gains[ k ] += gain_add;
- psEnc->avgGain += psEnc->speech_activity * GAIN_SMOOTHING_COEF * ( psEncCtrl->Gains[ k ] - psEnc->avgGain );
}
gain_mult = 1.0f + INPUT_TILT + psEncCtrl->coding_quality * HIGH_RATE_INPUT_TILT;
-
for( k = 0; k < psEnc->sCmn.nb_subfr; k++ ) {
psEncCtrl->GainsPre[ k ] *= gain_mult;
}
@@ -311,6 +315,7 @@
/************************************************/
/* Less low frequency shaping for noisy inputs */
strength = LOW_FREQ_SHAPING * ( 1.0f + LOW_QUALITY_LOW_FREQ_SHAPING_DECR * ( psEncCtrl->input_quality_bands[ 0 ] - 1.0f ) );
+ strength *= psEnc->speech_activity;
if( psEncCtrl->sCmn.sigtype == SIG_TYPE_VOICED ) {
/* Reduce low frequencies quantization noise for periodic signals, depending on pitch lag */
/*f = 400; freqz([1, -0.98 + 2e-4 * f], [1, -0.97 + 7e-4 * f], 2^12, Fs); axis([0, 1000, -10, 1])*/
--- a/src_FLP/SKP_Silk_prefilter_FLP.c
+++ b/src_FLP/SKP_Silk_prefilter_FLP.c
@@ -116,9 +116,9 @@
/* Noise shape parameters */
HarmShapeGain = psEncCtrl->HarmShapeGain[ k ] * ( 1.0f - psEncCtrl->HarmBoost[ k ] );
- HarmShapeFIR[ 0 ] = SKP_Silk_HarmShapeFIR_FLP[ 0 ] * HarmShapeGain;
- HarmShapeFIR[ 1 ] = SKP_Silk_HarmShapeFIR_FLP[ 1 ] * HarmShapeGain;
- HarmShapeFIR[ 2 ] = SKP_Silk_HarmShapeFIR_FLP[ 2 ] * HarmShapeGain;
+ HarmShapeFIR[ 0 ] = 0.25f * HarmShapeGain;
+ HarmShapeFIR[ 1 ] = 32767.0f / 65536.0f * HarmShapeGain;
+ HarmShapeFIR[ 2 ] = 0.25f * HarmShapeGain;
Tilt = psEncCtrl->Tilt[ k ];
LF_MA_shp = psEncCtrl->LF_MA_shp[ k ];
LF_AR_shp = psEncCtrl->LF_AR_shp[ k ];
--- a/src_FLP/SKP_Silk_process_NLSFs_FLP.c
+++ b/src_FLP/SKP_Silk_process_NLSFs_FLP.c
@@ -38,7 +38,7 @@
SKP_int doInterpolate;
SKP_float pNLSFW[ MAX_LPC_ORDER ];
SKP_float NLSF_mu, NLSF_mu_fluc_red, i_sqr, NLSF_interpolation_factor = 0.0f;
- const SKP_Silk_NLSF_CB_FLP *psNLSF_CB_FLP;
+ const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
/* Used only for NLSF interpolation */
SKP_float pNLSF0_temp[ MAX_LPC_ORDER ];
@@ -81,10 +81,10 @@
}
/* Set pointer to the NLSF codebook for the current signal type and LPC order */
- psNLSF_CB_FLP = psEnc->psNLSF_CB_FLP[ psEncCtrl->sCmn.sigtype ];
+ psNLSF_CB = psEnc->sCmn.psNLSF_CB[ psEncCtrl->sCmn.sigtype ];
/* Quantize NLSF parameters given the trained NLSF codebooks */
- SKP_Silk_NLSF_MSVQ_encode_FLP( psEncCtrl->sCmn.NLSFIndices, pNLSF, psNLSF_CB_FLP, psEnc->sPred.prev_NLSFq, pNLSFW, NLSF_mu,
+ SKP_Silk_NLSF_MSVQ_encode_FLP( psEncCtrl->sCmn.NLSFIndices, pNLSF, psNLSF_CB, psEnc->sPred.prev_NLSFq, pNLSFW, NLSF_mu,
NLSF_mu_fluc_red, psEnc->sCmn.NLSF_MSVQ_Survivors, psEnc->sCmn.predictLPCOrder, psEnc->sCmn.first_frame_after_reset );
/* Convert quantized NLSFs back to LPC coefficients */
--- a/src_FLP/SKP_Silk_process_gains_FLP.c
+++ b/src_FLP/SKP_Silk_process_gains_FLP.c
@@ -65,6 +65,7 @@
/* Noise shaping quantization */
SKP_Silk_gains_quant( psEncCtrl->sCmn.GainsIndices, pGains_Q16,
&psShapeSt->LastGainIndex, psEnc->sCmn.nFramesInPayloadBuf, psEnc->sCmn.nb_subfr );
+
/* Overwrite unquantized gains with quantized gains and convert back to Q0 from Q16 */
for( k = 0; k < psEnc->sCmn.nb_subfr; k++ ) {
psEncCtrl->Gains[ k ] = pGains_Q16[ k ] / 65536.0f;
--- a/src_FLP/SKP_Silk_quant_LTP_gains_FLP.c
+++ /dev/null
@@ -1,110 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-#include "SKP_Silk_main_FLP.h"
-
-#define Q14_CONVERSION_FAC 6.1035e-005f // 1 / 2^14
-
-void SKP_Silk_quant_LTP_gains_FLP(
- SKP_float B[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (Un-)quantized LTP gains */
- SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Codebook index */
- SKP_int *periodicity_index, /* O Periodicity index */
- const SKP_float W[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error weights */
- const SKP_float mu, /* I Mu value (R/D tradeoff) */
- const SKP_int lowComplexity, /* I Flag for low complexity */
- const SKP_int nb_subfr /* I number of subframes */
-)
-{
- SKP_int j, k, temp_idx[ MAX_NB_SUBFR ], cbk_size;
- const SKP_uint16 *cdf_ptr;
- const SKP_int16 *cl_ptr;
- const SKP_int16 *cbk_ptr_Q14;
- const SKP_float *b_ptr, *W_ptr;
- SKP_float rate_dist_subfr, rate_dist, min_rate_dist;
-
-
-
- /***************************************************/
- /* Iterate over different codebooks with different */
- /* rates/distortions, and choose best */
- /***************************************************/
- min_rate_dist = SKP_float_MAX;
- for( k = 0; k < 3; k++ ) {
- cdf_ptr = SKP_Silk_LTP_gain_CDF_ptrs[ k ];
- cl_ptr = SKP_Silk_LTP_gain_BITS_Q6_ptrs[ k ];
- cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ k ];
- cbk_size = SKP_Silk_LTP_vq_sizes[ k ];
-
- /* Setup pointer to first subframe */
- W_ptr = W;
- b_ptr = B;
-
- rate_dist = 0.0f;
- for( j = 0; j < nb_subfr; j++ ) {
-
- SKP_Silk_VQ_WMat_EC_FLP(
- &temp_idx[ j ], /* O index of best codebook vector */
- &rate_dist_subfr, /* O best weighted quantization error + mu * rate */
- b_ptr, /* I input vector to be quantized */
- W_ptr, /* I weighting matrix */
- cbk_ptr_Q14, /* I codebook */
- cl_ptr, /* I code length for each codebook vector */
- mu, /* I tradeoff between weighted error and rate */
- cbk_size /* I number of vectors in codebook */
- );
-
- rate_dist += rate_dist_subfr;
-
- b_ptr += LTP_ORDER;
- W_ptr += LTP_ORDER * LTP_ORDER;
- }
-
- if( rate_dist < min_rate_dist ) {
- min_rate_dist = rate_dist;
- SKP_memcpy( cbk_index, temp_idx, nb_subfr * sizeof( SKP_int ) );
- *periodicity_index = k;
- }
-
- /* Break early in low-complexity mode if rate distortion is below threshold */
- if( lowComplexity && ( rate_dist * 16384.0f < ( SKP_float )SKP_Silk_LTP_gain_middle_avg_RD_Q14 ) ) {
- break;
- }
- }
-
- cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ *periodicity_index ];
- for( j = 0; j < nb_subfr; j++ ) {
- SKP_short2float_array( &B[ j * LTP_ORDER ],
- &cbk_ptr_Q14[ cbk_index[ j ] * LTP_ORDER ],
- LTP_ORDER );
- }
-
- for( j = 0; j < nb_subfr * LTP_ORDER; j++ ) {
- B[ j ] *= Q14_CONVERSION_FAC;
- }
-
-}
-
--- a/src_FLP/SKP_Silk_structs_FLP.h
+++ b/src_FLP/SKP_Silk_structs_FLP.h
@@ -70,29 +70,6 @@
SKP_float prev_NLSFq[ MAX_LPC_ORDER ]; /* Previously quantized NLSF vector */
} SKP_Silk_predict_state_FLP;
-/*******************************************/
-/* Structure containing NLSF MSVQ codebook */
-/*******************************************/
-/* structure for one stage of MSVQ */
-typedef struct {
- const SKP_int32 nVectors;
- const SKP_float *CB;
- const SKP_float *Rates;
-} SKP_Silk_NLSF_CBS_FLP;
-
-typedef struct {
- const SKP_int32 nStages;
-
- /* fields for (de)quantizing */
- const SKP_Silk_NLSF_CBS_FLP *CBStages;
- const SKP_float *NDeltaMin;
-
- /* fields for arithmetic (de)coding */
- const SKP_uint16 *CDF;
- const SKP_uint16 * const *StartPtr;
- const SKP_int *MiddleIx;
-} SKP_Silk_NLSF_CB_FLP;
-
/********************************/
/* Encoder state FLP */
/********************************/
@@ -111,9 +88,7 @@
/* Buffer for find pitch and noise shape analysis */
SKP_float x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];/* Buffer for find pitch and noise shape analysis */
SKP_float LTPCorr; /* Normalized correlation from pitch lag estimator */
- SKP_float mu_LTP; /* Rate-distortion tradeoff in LTP quantization */
SKP_float SNR_dB; /* Quality setting */
- SKP_float avgGain; /* average gain during active speech */
SKP_float BufferedInChannel_ms; /* Simulated number of ms buffer in channel because of exceeded TargetRate_bps */
SKP_float speech_activity; /* Speech activity */
@@ -122,8 +97,6 @@
SKP_float HPLTPredCodGain;
SKP_float inBandFEC_SNR_comp; /* Compensation to SNR_DB when using inband FEC Voiced */
-
- const SKP_Silk_NLSF_CB_FLP *psNLSF_CB_FLP[ 2 ]; /* Pointers to voiced/unvoiced NLSF codebooks */
} SKP_Silk_encoder_state_FLP;
--- a/src_FLP/SKP_Silk_tables_FLP.h
+++ /dev/null
@@ -1,52 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_TABLES_FLP_H
-#define SKP_SILK_TABLES_FLP_H
-
-#include "SKP_Silk_structs_FLP.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* filters */
-extern const SKP_float SKP_Silk_HarmShapeFIR_FLP[ HARM_SHAPE_FIR_TAPS ];
-
-/* Table of quantization offset values */
-extern const SKP_float SKP_Silk_Quantization_Offsets[ 2 ][ 2 ];
-
-/* NLSF codebooks */
-extern const SKP_Silk_NLSF_CB_FLP SKP_Silk_NLSF_CB0_16_FLP, SKP_Silk_NLSF_CB1_16_FLP;
-extern const SKP_Silk_NLSF_CB_FLP SKP_Silk_NLSF_CB0_10_FLP, SKP_Silk_NLSF_CB1_10_FLP;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src_FLP/SKP_Silk_tables_NLSF_CB0_10_FLP.c
+++ /dev/null
@@ -1,784 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/* */
-/* ROM usage: 5.68 kB */
-/**********************************************/
-
-#include "SKP_Silk_tables_FLP.h"
-#include "SKP_Silk_tables_NLSF_CB0_10.h"
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB0_10_rates[ NLSF_MSVQ_CB0_10_VECTORS ] =
-{
- 4.75000000000000000000f, 4.75000000000000000000f,
- 4.87500000000000000000f, 5.12500000000000000000f,
- 5.37500000000000000000f, 5.37500000000000000000f,
- 5.43750000000000000000f, 5.43750000000000000000f,
- 5.43750000000000000000f, 5.50000000000000000000f,
- 5.50000000000000000000f, 5.50000000000000000000f,
- 5.56250000000000000000f, 5.56250000000000000000f,
- 5.62500000000000000000f, 5.62500000000000000000f,
- 5.62500000000000000000f, 5.68750000000000000000f,
- 5.75000000000000000000f, 5.75000000000000000000f,
- 5.75000000000000000000f, 5.87500000000000000000f,
- 5.87500000000000000000f, 5.87500000000000000000f,
- 5.93750000000000000000f, 5.93750000000000000000f,
- 6.00000000000000000000f, 6.00000000000000000000f,
- 6.00000000000000000000f, 6.06250000000000000000f,
- 6.06250000000000000000f, 6.06250000000000000000f,
- 6.12500000000000000000f, 6.12500000000000000000f,
- 6.12500000000000000000f, 6.12500000000000000000f,
- 6.12500000000000000000f, 6.18750000000000000000f,
- 6.18750000000000000000f, 6.25000000000000000000f,
- 6.25000000000000000000f, 6.25000000000000000000f,
- 6.31250000000000000000f, 6.31250000000000000000f,
- 6.31250000000000000000f, 6.37500000000000000000f,
- 6.37500000000000000000f, 6.37500000000000000000f,
- 6.43750000000000000000f, 6.43750000000000000000f,
- 6.43750000000000000000f, 6.50000000000000000000f,
- 6.75000000000000000000f, 6.75000000000000000000f,
- 6.75000000000000000000f, 7.12500000000000000000f,
- 7.56250000000000000000f, 7.68750000000000000000f,
- 8.00000000000000000000f, 8.00000000000000000000f,
- 8.00000000000000000000f, 8.00000000000000000000f,
- 8.00000000000000000000f, 8.00000000000000000000f,
- 3.68750000000000000000f, 3.68750000000000000000f,
- 3.75000000000000000000f, 3.81250000000000000000f,
- 3.93750000000000000000f, 3.93750000000000000000f,
- 3.93750000000000000000f, 3.93750000000000000000f,
- 3.93750000000000000000f, 4.06250000000000000000f,
- 4.12500000000000000000f, 4.18750000000000000000f,
- 4.18750000000000000000f, 4.18750000000000000000f,
- 4.50000000000000000000f, 4.56250000000000000000f,
- 2.87500000000000000000f, 2.87500000000000000000f,
- 3.00000000000000000000f, 3.00000000000000000000f,
- 3.00000000000000000000f, 3.06250000000000000000f,
- 3.12500000000000000000f, 3.12500000000000000000f,
- 2.68750000000000000000f, 2.87500000000000000000f,
- 2.93750000000000000000f, 2.93750000000000000000f,
- 3.00000000000000000000f, 3.06250000000000000000f,
- 3.25000000000000000000f, 3.31250000000000000000f,
- 2.87500000000000000000f, 2.93750000000000000000f,
- 2.93750000000000000000f, 2.93750000000000000000f,
- 3.06250000000000000000f, 3.06250000000000000000f,
- 3.06250000000000000000f, 3.06250000000000000000f,
- 2.87500000000000000000f, 2.93750000000000000000f,
- 3.00000000000000000000f, 3.00000000000000000000f,
- 3.00000000000000000000f, 3.06250000000000000000f,
- 3.06250000000000000000f, 3.12500000000000000000f,
- 3.75000000000000000000f, 3.75000000000000000000f,
- 3.81250000000000000000f, 3.81250000000000000000f,
- 3.81250000000000000000f, 3.81250000000000000000f,
- 3.87500000000000000000f, 3.93750000000000000000f,
- 4.00000000000000000000f, 4.00000000000000000000f,
- 4.06250000000000000000f, 4.18750000000000000000f,
- 4.18750000000000000000f, 4.31250000000000000000f,
- 4.31250000000000000000f, 4.75000000000000000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min[ 10 + 1 ] =
-{
- 0.01687622070312500000f,
- 0.00015258789062500000f,
- 0.00067138671874999989f,
- 0.00057983398437500000f,
- 0.00009155273437500000f,
- 0.00009155273437500000f,
- 0.00549316406250000000f,
- 0.00494384765625000000f,
- 0.00933837890625000000f,
- 0.00521850585937500000f,
- 0.03024291992187500000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * NLSF_MSVQ_CB0_10_VECTORS ] =
-{
- -0.42187500000000000000f, -0.35156250000000000000f,
- -0.27734375000000000000f, -0.19140625000000000000f,
- -0.09375000000000000000f, -0.01953125000000000000f,
- 0.08203125000000000000f, 0.18750000000000000000f,
- 0.29296875000000000000f, 0.38671875000000006000f,
- -0.42187500000000000000f, -0.38671875000000006000f,
- -0.29687500000000000000f, -0.22265625000000000000f,
- -0.15234375000000000000f, -0.02734375000000000000f,
- 0.07812500000000000000f, 0.19531250000000000000f,
- 0.29687500000000000000f, 0.38281250000000000000f,
- -0.41015625000000000000f, -0.37890625000000000000f,
- -0.32421875000000006000f, -0.19140625000000000000f,
- -0.07421875000000000000f, -0.02734375000000000000f,
- 0.10546875000000000000f, 0.18359375000000000000f,
- 0.26171875000000000000f, 0.39843750000000000000f,
- -0.37890625000000000000f, -0.35156250000000000000f,
- -0.29296875000000000000f, -0.19140625000000000000f,
- -0.02343750000000000000f, 0.02343750000000000000f,
- 0.10546875000000000000f, 0.21484375000000000000f,
- 0.28515625000000000000f, 0.37109375000000000000f,
- -0.37109375000000000000f, -0.34765625000000000000f,
- -0.28125000000000000000f, -0.15625000000000000000f,
- -0.10937500000000000000f, -0.04296874999999999300f,
- 0.08203125000000000000f, 0.14453125000000000000f,
- 0.27343750000000000000f, 0.33593750000000000000f,
- -0.40234375000000000000f, -0.37890625000000000000f,
- -0.32031250000000000000f, -0.18750000000000000000f,
- 0.03125000000000000000f, 0.08203125000000000000f,
- 0.14062500000000000000f, 0.21875000000000000000f,
- 0.28906250000000000000f, 0.39453125000000000000f,
- -0.40234375000000000000f, -0.37500000000000000000f,
- -0.31640625000000000000f, -0.12890625000000000000f,
- -0.07421875000000000000f, -0.01171875000000000000f,
- 0.10937500000000000000f, 0.16015625000000000000f,
- 0.33593750000000000000f, 0.39843750000000000000f,
- -0.43359375000000000000f, -0.39843750000000000000f,
- -0.33203125000000000000f, -0.24218750000000000000f,
- -0.14843750000000000000f, -0.08203125000000000000f,
- 0.04296874999999999300f, 0.16015625000000000000f,
- 0.25781250000000000000f, 0.37109375000000000000f,
- -0.34374999999999994000f, -0.32031250000000000000f,
- -0.24609375000000000000f, -0.10937500000000000000f,
- -0.03906250000000000000f, 0.00390625000000000000f,
- 0.13671875000000000000f, 0.20703125000000000000f,
- 0.28515625000000000000f, 0.40234375000000000000f,
- -0.39453125000000000000f, -0.37500000000000000000f,
- -0.26171875000000000000f, -0.06640625000000000000f,
- -0.01562500000000000000f, 0.03906250000000000000f,
- 0.11718749999999999000f, 0.17578125000000000000f,
- 0.33593750000000000000f, 0.40234375000000000000f,
- -0.36718750000000000000f, -0.33984375000000000000f,
- -0.27343750000000000000f, -0.21484375000000000000f,
- -0.17187499999999997000f, -0.09765625000000000000f,
- 0.14453125000000000000f, 0.21484375000000000000f,
- 0.28515625000000000000f, 0.40625000000000006000f,
- -0.38281250000000000000f, -0.35937500000000000000f,
- -0.27734375000000000000f, -0.14453125000000000000f,
- -0.08984375000000000000f, -0.03906250000000000000f,
- 0.14453125000000000000f, 0.21093750000000000000f,
- 0.28515625000000000000f, 0.40625000000000006000f,
- -0.44531250000000000000f, -0.42187500000000000000f,
- -0.30859375000000000000f, -0.19140625000000000000f,
- -0.07812500000000000000f, 0.00781250000000000000f,
- 0.11328125000000000000f, 0.21093750000000000000f,
- 0.31250000000000000000f, 0.40234375000000000000f,
- -0.41796875000000000000f, -0.38671875000000006000f,
- -0.33593750000000000000f, -0.23437499999999997000f,
- -0.02734375000000000000f, 0.04296874999999999300f,
- 0.10546875000000000000f, 0.19140625000000000000f,
- 0.26171875000000000000f, 0.37109375000000000000f,
- -0.39062500000000000000f, -0.36718750000000000000f,
- -0.29687500000000000000f, -0.15625000000000000000f,
- -0.01953125000000000000f, 0.02343750000000000000f,
- 0.10156250000000001000f, 0.16796875000000000000f,
- 0.24218750000000000000f, 0.39843750000000000000f,
- -0.34374999999999994000f, -0.30859375000000000000f,
- -0.25000000000000000000f, -0.17187499999999997000f,
- -0.10937500000000000000f, -0.05859374999999999300f,
- 0.10156250000000001000f, 0.16796875000000000000f,
- 0.25000000000000000000f, 0.40625000000000006000f,
- -0.40234375000000000000f, -0.38281250000000000000f,
- -0.27734375000000000000f, -0.10156250000000001000f,
- -0.05468750000000000000f, 0.01562500000000000000f,
- 0.08984375000000000000f, 0.16796875000000000000f,
- 0.28125000000000000000f, 0.33984375000000000000f,
- -0.42968750000000000000f, -0.40234375000000000000f,
- -0.32421875000000006000f, -0.22656250000000000000f,
- -0.10546875000000000000f, -0.01953125000000000000f,
- 0.06250000000000000000f, 0.13671875000000000000f,
- 0.22656250000000000000f, 0.35937500000000000000f,
- -0.40234375000000000000f, -0.36718750000000000000f,
- -0.30859375000000000000f, -0.24218750000000000000f,
- -0.08203125000000000000f, -0.02734375000000000000f,
- 0.04687500000000000000f, 0.20312500000000003000f,
- 0.26953125000000000000f, 0.34374999999999994000f,
- -0.41796875000000000000f, -0.38281250000000000000f,
- -0.32812500000000000000f, -0.17187499999999997000f,
- -0.11328125000000000000f, -0.04687500000000000000f,
- 0.03515625000000000000f, 0.10937500000000000000f,
- 0.28515625000000000000f, 0.35156250000000000000f,
- -0.38671875000000006000f, -0.36328124999999994000f,
- -0.26562500000000000000f, -0.12500000000000000000f,
- -0.07421875000000000000f, -0.01953125000000000000f,
- 0.04687500000000000000f, 0.10937500000000000000f,
- 0.33593750000000000000f, 0.40625000000000006000f,
- -0.39062500000000000000f, -0.35546875000000000000f,
- -0.29296875000000000000f, -0.21484375000000000000f,
- -0.15625000000000000000f, -0.10156250000000001000f,
- 0.07812500000000000000f, 0.15625000000000000000f,
- 0.22656250000000000000f, 0.39453125000000000000f,
- -0.39062500000000000000f, -0.36718750000000000000f,
- -0.28515625000000000000f, -0.23437499999999997000f,
- -0.19140625000000000000f, -0.00390625000000000000f,
- 0.07031250000000000000f, 0.14062500000000000000f,
- 0.32421875000000006000f, 0.37500000000000000000f,
- -0.41406250000000000000f, -0.37890625000000000000f,
- -0.26953125000000000000f, -0.18359375000000000000f,
- -0.09765625000000000000f, 0.04296874999999999300f,
- 0.12109375000000000000f, 0.17968750000000000000f,
- 0.25390625000000000000f, 0.34765625000000000000f,
- -0.36328124999999994000f, -0.33984375000000000000f,
- -0.26953125000000000000f, -0.17968750000000000000f,
- -0.12500000000000000000f, -0.07031250000000000000f,
- -0.00781250000000000000f, 0.05468750000000000000f,
- 0.28906250000000000000f, 0.40234375000000000000f,
- -0.36328124999999994000f, -0.33984375000000000000f,
- -0.25390625000000000000f, -0.11328125000000000000f,
- 0.02343750000000000000f, 0.07031250000000000000f,
- 0.14843750000000000000f, 0.22265625000000000000f,
- 0.28906250000000000000f, 0.39843750000000000000f,
- -0.35937500000000000000f, -0.33203125000000000000f,
- -0.25781250000000000000f, -0.21093750000000000000f,
- -0.16796875000000000000f, -0.01562500000000000000f,
- 0.12500000000000000000f, 0.17578125000000000000f,
- 0.34374999999999994000f, 0.40625000000000006000f,
- -0.42187500000000000000f, -0.38671875000000006000f,
- -0.33203125000000000000f, -0.19531250000000000000f,
- -0.13671875000000000000f, -0.07421875000000000000f,
- 0.11328125000000000000f, 0.16015625000000000000f,
- 0.32812500000000000000f, 0.39843750000000000000f,
- -0.37890625000000000000f, -0.35156250000000000000f,
- -0.28515625000000000000f, -0.22265625000000000000f,
- -0.18750000000000000000f, -0.09375000000000000000f,
- 0.08203125000000000000f, 0.13671875000000000000f,
- 0.30859375000000000000f, 0.36718750000000000000f,
- -0.32812500000000000000f, -0.29687500000000000000f,
- -0.22265625000000000000f, -0.15625000000000000000f,
- -0.11328125000000000000f, -0.04296874999999999300f,
- 0.16015625000000000000f, 0.23437499999999997000f,
- 0.31250000000000000000f, 0.40625000000000006000f,
- -0.39062500000000000000f, -0.36718750000000000000f,
- -0.29296875000000000000f, -0.25000000000000000000f,
- -0.19921875000000000000f, 0.00781250000000000000f,
- 0.07812500000000000000f, 0.17578125000000000000f,
- 0.26562500000000000000f, 0.33203125000000000000f,
- -0.39062500000000000000f, -0.36718750000000000000f,
- -0.24218750000000000000f, -0.16015625000000000000f,
- -0.11718749999999999000f, 0.05078125000000000700f,
- 0.12109375000000000000f, 0.20312500000000003000f,
- 0.33203125000000000000f, 0.39453125000000000000f,
- -0.37109375000000000000f, -0.33593750000000000000f,
- -0.27343750000000000000f, -0.20312500000000003000f,
- -0.14843750000000000000f, -0.08984375000000000000f,
- 0.07031250000000000000f, 0.25000000000000000000f,
- 0.32421875000000006000f, 0.39453125000000000000f,
- -0.44531250000000000000f, -0.42187500000000000000f,
- -0.36718750000000000000f, -0.26953125000000000000f,
- -0.12109375000000000000f, -0.01953125000000000000f,
- 0.09375000000000000000f, 0.17968750000000000000f,
- 0.28125000000000000000f, 0.38671875000000006000f,
- -0.39062500000000000000f, -0.37109375000000000000f,
- -0.21093750000000000000f, -0.14843750000000000000f,
- -0.10156250000000001000f, -0.03906250000000000000f,
- 0.01171875000000000000f, 0.19921875000000000000f,
- 0.29296875000000000000f, 0.34765625000000000000f,
- -0.40625000000000006000f, -0.38281250000000000000f,
- -0.28515625000000000000f, -0.12109375000000000000f,
- 0.07031250000000000000f, 0.12109375000000000000f,
- 0.17968750000000000000f, 0.25390625000000000000f,
- 0.32031250000000000000f, 0.41015625000000000000f,
- -0.35156250000000000000f, -0.32812500000000000000f,
- -0.24218750000000000000f, -0.19921875000000000000f,
- -0.14843750000000000000f, 0.01171875000000000000f,
- 0.09765625000000000000f, 0.17187499999999997000f,
- 0.28125000000000000000f, 0.33593750000000000000f,
- -0.42578124999999994000f, -0.40234375000000000000f,
- -0.32421875000000006000f, -0.11328125000000000000f,
- 0.00781250000000000000f, 0.04296874999999999300f,
- 0.14843750000000000000f, 0.20703125000000000000f,
- 0.32812500000000000000f, 0.39453125000000000000f,
- -0.33593750000000000000f, -0.29296875000000000000f,
- -0.23828125000000000000f, -0.17968750000000000000f,
- -0.06640625000000000000f, -0.01562500000000000000f,
- 0.07031250000000000000f, 0.20312500000000003000f,
- 0.26953125000000000000f, 0.35546875000000000000f,
- -0.42578124999999994000f, -0.39062500000000000000f,
- -0.32421875000000006000f, -0.21093750000000000000f,
- -0.03906250000000000000f, 0.00390625000000000000f,
- 0.07421875000000000000f, 0.13671875000000000000f,
- 0.31640625000000000000f, 0.39062500000000000000f,
- -0.39453125000000000000f, -0.37109375000000000000f,
- -0.30468750000000000000f, -0.26562500000000000000f,
- -0.22656250000000000000f, -0.06250000000000000000f,
- 0.15234375000000000000f, 0.21875000000000000000f,
- 0.33203125000000000000f, 0.40234375000000000000f,
- -0.33984375000000000000f, -0.31250000000000000000f,
- -0.22656250000000000000f, -0.16015625000000000000f,
- -0.11328125000000000000f, -0.02734375000000000000f,
- 0.05468750000000000000f, 0.11718749999999999000f,
- 0.33593750000000000000f, 0.40625000000000006000f,
- -0.41015625000000000000f, -0.38671875000000006000f,
- -0.23828125000000000000f, -0.02734375000000000000f,
- 0.02343750000000000000f, 0.08203125000000000000f,
- 0.17187499999999997000f, 0.23828125000000000000f,
- 0.33984375000000000000f, 0.39843750000000000000f,
- -0.33593750000000000000f, -0.31250000000000000000f,
- -0.18750000000000000000f, -0.11718749999999999000f,
- -0.07031250000000000000f, 0.01953125000000000000f,
- 0.09765625000000000000f, 0.16796875000000000000f,
- 0.32031250000000000000f, 0.37890625000000000000f,
- -0.38281250000000000000f, -0.35937500000000000000f,
- -0.25781250000000000000f, -0.19140625000000000000f,
- -0.14062500000000000000f, -0.05078125000000000700f,
- 0.00000000000000000000f, 0.13671875000000000000f,
- 0.23046875000000000000f, 0.30859375000000000000f,
- -0.38281250000000000000f, -0.36328124999999994000f,
- -0.25781250000000000000f, -0.20312500000000003000f,
- -0.15625000000000000000f, -0.09375000000000000000f,
- -0.04687500000000000000f, 0.17968750000000000000f,
- 0.31640625000000000000f, 0.38281250000000000000f,
- -0.41796875000000000000f, -0.37109375000000000000f,
- -0.25000000000000000000f, -0.15234375000000000000f,
- -0.05468750000000000000f, 0.05468750000000000000f,
- 0.16406250000000000000f, 0.25390625000000000000f,
- 0.34374999999999994000f, 0.41406250000000000000f,
- -0.40625000000000006000f, -0.37500000000000000000f,
- -0.32031250000000000000f, -0.25390625000000000000f,
- -0.21093750000000000000f, -0.13671875000000000000f,
- 0.08203125000000000000f, 0.19921875000000000000f,
- 0.28125000000000000000f, 0.38671875000000006000f,
- -0.36718750000000000000f, -0.33984375000000000000f,
- -0.28906250000000000000f, -0.23046875000000000000f,
- -0.08203125000000000000f, -0.03906250000000000000f,
- 0.05468750000000000000f, 0.13671875000000000000f,
- 0.22656250000000000000f, 0.37500000000000000000f,
- -0.42187500000000000000f, -0.39062500000000000000f,
- -0.33593750000000000000f, -0.27734375000000000000f,
- -0.23046875000000000000f, -0.06250000000000000000f,
- 0.07812500000000000000f, 0.16015625000000000000f,
- 0.28906250000000000000f, 0.37890625000000000000f,
- -0.40234375000000000000f, -0.37109375000000000000f,
- -0.31250000000000000000f, -0.22265625000000000000f,
- -0.17578125000000000000f, -0.09375000000000000000f,
- -0.02343750000000000000f, 0.07421875000000000000f,
- 0.25781250000000000000f, 0.34765625000000000000f,
- -0.38671875000000006000f, -0.36328124999999994000f,
- -0.28906250000000000000f, -0.25390625000000000000f,
- -0.19531250000000000000f, 0.07812500000000000000f,
- 0.15625000000000000000f, 0.22265625000000000000f,
- 0.33203125000000000000f, 0.38281250000000000000f,
- -0.39843750000000000000f, -0.37500000000000000000f,
- -0.16015625000000000000f, -0.08203125000000000000f,
- -0.04296874999999999300f, 0.03515625000000000000f,
- 0.09765625000000000000f, 0.23046875000000000000f,
- 0.32421875000000006000f, 0.38281250000000000000f,
- -0.36718750000000000000f, -0.33984375000000000000f,
- -0.27734375000000000000f, -0.23046875000000000000f,
- -0.18359375000000000000f, -0.03125000000000000000f,
- 0.19531250000000000000f, 0.26562500000000000000f,
- 0.33593750000000000000f, 0.41015625000000000000f,
- -0.42187500000000000000f, -0.39453125000000000000f,
- -0.32812500000000000000f, -0.23046875000000000000f,
- -0.04296874999999999300f, 0.11328125000000000000f,
- 0.17187499999999997000f, 0.23828125000000000000f,
- 0.32031250000000000000f, 0.38671875000000006000f,
- -0.38281250000000000000f, -0.36718750000000000000f,
- -0.32031250000000000000f, -0.28515625000000000000f,
- -0.10156250000000001000f, 0.02343750000000000000f,
- 0.11718749999999999000f, 0.20703125000000000000f,
- 0.30859375000000000000f, 0.38281250000000000000f,
- -0.33203125000000000000f, -0.27734375000000000000f,
- -0.14453125000000000000f, -0.04687500000000000000f,
- 0.01171875000000000000f, 0.08593749999999998600f,
- 0.16015625000000000000f, 0.23828125000000000000f,
- 0.33203125000000000000f, 0.39062500000000000000f,
- -0.33203125000000000000f, -0.30859375000000000000f,
- -0.25781250000000000000f, -0.21484375000000000000f,
- -0.07421875000000000000f, 0.06640625000000000000f,
- 0.12890625000000000000f, 0.21875000000000000000f,
- 0.32421875000000006000f, 0.37890625000000000000f,
- -0.28125000000000000000f, -0.25781250000000000000f,
- -0.23437499999999997000f, -0.22265625000000000000f,
- -0.19531250000000000000f, 0.01562500000000000000f,
- 0.10156250000000001000f, 0.20312500000000003000f,
- 0.30859375000000000000f, 0.40234375000000000000f,
- -0.37109375000000000000f, -0.28906250000000000000f,
- -0.12109375000000000000f, -0.07031250000000000000f,
- -0.04296874999999999300f, -0.02343750000000000000f,
- 0.03515625000000000000f, 0.20312500000000003000f,
- 0.30078125000000000000f, 0.39062500000000000000f,
- -0.30468750000000000000f, -0.29296875000000000000f,
- -0.26562500000000000000f, -0.19921875000000000000f,
- -0.16796875000000000000f, -0.14843750000000000000f,
- 0.04687500000000000000f, 0.17578125000000000000f,
- 0.28906250000000000000f, 0.39062500000000000000f,
- -0.38671875000000006000f, -0.26562500000000000000f,
- -0.15625000000000000000f, -0.12890625000000000000f,
- -0.09375000000000000000f, -0.06250000000000000000f,
- 0.08984375000000000000f, 0.22656250000000000000f,
- 0.30859375000000000000f, 0.37890625000000000000f,
- -0.38671875000000006000f, -0.18750000000000000000f,
- -0.16406250000000000000f, -0.15625000000000000000f,
- -0.14062500000000000000f, -0.07421875000000000000f,
- 0.10156250000000001000f, 0.20312500000000003000f,
- 0.31250000000000000000f, 0.41015625000000000000f,
- -0.28515625000000000000f, -0.26953125000000000000f,
- -0.24218750000000000000f, -0.16796875000000000000f,
- -0.12109375000000000000f, -0.09765625000000000000f,
- 0.08203125000000000000f, 0.18750000000000000000f,
- 0.29687500000000000000f, 0.39453125000000000000f,
- 0.03125000000000000000f, 0.02734375000000000000f,
- 0.01953125000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.03125000000000000000f, -0.04296874999999999300f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, -0.02343750000000000000f,
- -0.01562500000000000000f, -0.02734375000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.02343750000000000000f, 0.01953125000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.03125000000000000000f,
- 0.01953125000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- 0.03125000000000000000f, 0.01953125000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.03515625000000000000f, -0.05078125000000000700f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.01562500000000000000f, -0.00390625000000000000f,
- 0.03515625000000000000f, 0.01562500000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.03515625000000000000f, 0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- 0.04296874999999999300f, 0.02734375000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.04296874999999999300f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.01953125000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.04687500000000000000f, 0.03125000000000000000f,
- 0.01953125000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- -0.01953125000000000000f, -0.02343750000000000000f,
- -0.05078125000000000700f, 0.01953125000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01953125000000000000f, -0.01953125000000000000f,
- -0.03906250000000000000f, 0.03125000000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.01953125000000000000f, -0.00781250000000000000f,
- -0.01953125000000000000f, -0.03125000000000000000f,
- 0.03906250000000000000f, 0.01953125000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- -0.03515625000000000000f, 0.04687500000000000000f,
- 0.02343750000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.01953125000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.04687500000000000000f,
- 0.03125000000000000000f, 0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01953125000000000000f, -0.02734375000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.01562500000000000000f,
- -0.03125000000000000000f, 0.02734375000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, 0.01953125000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, -0.02734375000000000000f,
- 0.02343750000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.02343750000000000000f,
- 0.01171875000000000000f, 0.02343750000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- 0.01562500000000000000f, 0.01953125000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.01953125000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.01562500000000000000f,
- -0.01562500000000000000f, -0.02734375000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.02734375000000000000f,
- -0.00390625000000000000f, 0.02343750000000000000f,
- -0.01562500000000000000f, -0.01562500000000000000f,
- -0.01953125000000000000f, -0.01953125000000000000f,
- -0.01562500000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.03906250000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.02734375000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, -0.02343750000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.01562500000000000000f, -0.01562500000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- 0.01171875000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- 0.01953125000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.01953125000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.01953125000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.02734375000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.01953125000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.01953125000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.01953125000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.01171875000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.01953125000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.01562500000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.01953125000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f
-};
-
-const SKP_Silk_NLSF_CBS_FLP SKP_Silk_NLSF_CB0_10_Stage_info_FLP[ NLSF_MSVQ_CB0_10_STAGES ] =
-{
- { 64, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 0 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 0 ] },
- { 16, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 64 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 64 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 80 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 80 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 88 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 88 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 96 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 96 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 104 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 104 ] },
- { 16, &SKP_Silk_NLSF_MSVQ_CB0_10[ 10 * 112 ], &SKP_Silk_NLSF_MSVQ_CB0_10_rates[ 112 ] }
-};
-
-const SKP_Silk_NLSF_CB_FLP SKP_Silk_NLSF_CB0_10_FLP =
-{
- NLSF_MSVQ_CB0_10_STAGES,
- SKP_Silk_NLSF_CB0_10_Stage_info_FLP,
- SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min,
- SKP_Silk_NLSF_MSVQ_CB0_10_CDF,
- SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx
-};
-
--- a/src_FLP/SKP_Silk_tables_NLSF_CB0_16_FLP.c
+++ /dev/null
@@ -1,1381 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/* */
-/* ROM usage: 10.40 kB */
-/**********************************************/
-
-#include "SKP_Silk_tables_FLP.h"
-#include "SKP_Silk_tables_NLSF_CB0_16.h"
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB0_16_rates[ NLSF_MSVQ_CB0_16_VECTORS ] =
-{
- 4.62500000000000000000f, 4.75000000000000000000f,
- 4.81250000000000000000f, 5.06250000000000000000f,
- 5.25000000000000000000f, 5.25000000000000000000f,
- 5.31250000000000000000f, 5.50000000000000000000f,
- 5.56250000000000000000f, 5.56250000000000000000f,
- 5.56250000000000000000f, 5.62500000000000000000f,
- 5.75000000000000000000f, 5.81250000000000000000f,
- 5.81250000000000000000f, 5.81250000000000000000f,
- 5.87500000000000000000f, 5.87500000000000000000f,
- 5.87500000000000000000f, 5.87500000000000000000f,
- 5.93750000000000000000f, 5.93750000000000000000f,
- 5.93750000000000000000f, 6.00000000000000000000f,
- 6.00000000000000000000f, 6.00000000000000000000f,
- 6.00000000000000000000f, 6.06250000000000000000f,
- 6.06250000000000000000f, 6.12500000000000000000f,
- 6.12500000000000000000f, 6.12500000000000000000f,
- 6.12500000000000000000f, 6.18750000000000000000f,
- 6.18750000000000000000f, 6.18750000000000000000f,
- 6.25000000000000000000f, 6.25000000000000000000f,
- 6.25000000000000000000f, 6.25000000000000000000f,
- 6.25000000000000000000f, 6.31250000000000000000f,
- 6.31250000000000000000f, 6.31250000000000000000f,
- 6.37500000000000000000f, 6.37500000000000000000f,
- 6.43750000000000000000f, 6.50000000000000000000f,
- 6.50000000000000000000f, 6.56250000000000000000f,
- 6.62500000000000000000f, 6.68750000000000000000f,
- 6.68750000000000000000f, 6.68750000000000000000f,
- 6.68750000000000000000f, 6.75000000000000000000f,
- 6.75000000000000000000f, 6.81250000000000000000f,
- 6.81250000000000000000f, 6.93750000000000000000f,
- 6.93750000000000000000f, 7.12500000000000000000f,
- 7.37500000000000000000f, 7.75000000000000000000f,
- 3.56250000000000000000f, 3.62500000000000000000f,
- 3.62500000000000000000f, 3.75000000000000000000f,
- 3.81250000000000000000f, 3.93750000000000000000f,
- 4.06250000000000000000f, 4.06250000000000000000f,
- 4.12500000000000000000f, 4.12500000000000000000f,
- 4.18750000000000000000f, 4.18750000000000000000f,
- 4.25000000000000000000f, 4.31250000000000000000f,
- 4.37500000000000000000f, 4.37500000000000000000f,
- 2.62500000000000000000f, 2.93750000000000000000f,
- 2.93750000000000000000f, 3.00000000000000000000f,
- 3.00000000000000000000f, 3.18750000000000000000f,
- 3.18750000000000000000f, 3.25000000000000000000f,
- 2.87500000000000000000f, 2.87500000000000000000f,
- 2.93750000000000000000f, 2.93750000000000000000f,
- 3.00000000000000000000f, 3.00000000000000000000f,
- 3.06250000000000000000f, 3.31250000000000000000f,
- 2.75000000000000000000f, 2.75000000000000000000f,
- 3.00000000000000000000f, 3.00000000000000000000f,
- 3.06250000000000000000f, 3.06250000000000000000f,
- 3.18750000000000000000f, 3.25000000000000000000f,
- 2.81250000000000000000f, 2.81250000000000000000f,
- 2.87500000000000000000f, 2.87500000000000000000f,
- 3.06250000000000000000f, 3.06250000000000000000f,
- 3.25000000000000000000f, 3.31250000000000000000f,
- 2.81250000000000000000f, 2.93750000000000000000f,
- 2.93750000000000000000f, 2.93750000000000000000f,
- 3.00000000000000000000f, 3.06250000000000000000f,
- 3.12500000000000000000f, 3.25000000000000000000f,
- 2.87500000000000000000f, 2.87500000000000000000f,
- 2.87500000000000000000f, 2.93750000000000000000f,
- 3.00000000000000000000f, 3.12500000000000000000f,
- 3.18750000000000000000f, 3.18750000000000000000f,
- 2.87500000000000000000f, 2.93750000000000000000f,
- 3.00000000000000000000f, 3.00000000000000000000f,
- 3.00000000000000000000f, 3.00000000000000000000f,
- 3.00000000000000000000f, 3.18750000000000000000f,
- 3.75000000000000000000f, 3.75000000000000000000f,
- 3.81250000000000000000f, 3.87500000000000000000f,
- 3.93750000000000000000f, 3.93750000000000000000f,
- 3.93750000000000000000f, 4.00000000000000000000f,
- 4.00000000000000000000f, 4.06250000000000000000f,
- 4.06250000000000000000f, 4.12500000000000000000f,
- 4.12500000000000000000f, 4.12500000000000000000f,
- 4.31250000000000000000f, 4.37500000000000000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min[ 16 + 1 ] =
-{
- 0.00720214843750000000f,
- 0.00012207031250000000f,
- 0.00228881835937500000f,
- 0.00009155273437500000f,
- 0.00009155273437500000f,
- 0.00015258789062500000f,
- 0.00350952148437500040f,
- 0.00289916992187500000f,
- 0.00344848632812500000f,
- 0.00421142578125000000f,
- 0.00537109374999999910f,
- 0.00515747070312500000f,
- 0.00759887695312500000f,
- 0.00781250000000000000f,
- 0.00827026367187500000f,
- 0.00802612304687500000f,
- 0.01922607421875000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * NLSF_MSVQ_CB0_16_VECTORS ] =
-{
- -0.45703125000000000000f, -0.41406250000000000000f,
- -0.36718750000000000000f, -0.31640625000000000000f,
- -0.25390625000000000000f, -0.20312500000000003000f,
- -0.14453125000000000000f, -0.08593749999999998600f,
- -0.01953125000000000000f, 0.04296874999999999300f,
- 0.10546875000000000000f, 0.16406250000000000000f,
- 0.23046875000000000000f, 0.29296875000000000000f,
- 0.35546875000000000000f, 0.41406250000000000000f,
- -0.46874999999999994000f, -0.45312500000000000000f,
- -0.39062500000000000000f, -0.32812500000000000000f,
- -0.26171875000000000000f, -0.19140625000000000000f,
- -0.12500000000000000000f, -0.06250000000000000000f,
- 0.00000000000000000000f, 0.05859374999999999300f,
- 0.11718749999999999000f, 0.17968750000000000000f,
- 0.24218750000000000000f, 0.30078125000000000000f,
- 0.36718750000000000000f, 0.42578124999999994000f,
- -0.47265625000000000000f, -0.45312500000000000000f,
- -0.39843750000000000000f, -0.33203125000000000000f,
- -0.27734375000000000000f, -0.22656250000000000000f,
- -0.15234375000000000000f, -0.09375000000000000000f,
- -0.01953125000000000000f, 0.03906250000000000000f,
- 0.11328125000000000000f, 0.17578125000000000000f,
- 0.23828125000000000000f, 0.30078125000000000000f,
- 0.35937500000000000000f, 0.41796875000000000000f,
- -0.46874999999999994000f, -0.45312500000000000000f,
- -0.36718750000000000000f, -0.32421875000000006000f,
- -0.26953125000000000000f, -0.22265625000000000000f,
- -0.17968750000000000000f, -0.09765625000000000000f,
- -0.02734375000000000000f, 0.03906250000000000000f,
- 0.10546875000000000000f, 0.16406250000000000000f,
- 0.22656250000000000000f, 0.29296875000000000000f,
- 0.35546875000000000000f, 0.41796875000000000000f,
- -0.44531250000000000000f, -0.42578124999999994000f,
- -0.36718750000000000000f, -0.30859375000000000000f,
- -0.25781250000000000000f, -0.20312500000000003000f,
- -0.13671875000000000000f, -0.07031250000000000000f,
- -0.01562500000000000000f, 0.03515625000000000000f,
- 0.10156250000000001000f, 0.15625000000000000000f,
- 0.20703125000000000000f, 0.25390625000000000000f,
- 0.31640625000000000000f, 0.35937500000000000000f,
- -0.44531250000000000000f, -0.42187500000000000000f,
- -0.37500000000000000000f, -0.28906250000000000000f,
- -0.24218750000000000000f, -0.19531250000000000000f,
- -0.13281250000000000000f, -0.07031250000000000000f,
- 0.00000000000000000000f, 0.07031250000000000000f,
- 0.12890625000000000000f, 0.18359375000000000000f,
- 0.23828125000000000000f, 0.30078125000000000000f,
- 0.36718750000000000000f, 0.41796875000000000000f,
- -0.45312500000000000000f, -0.42578124999999994000f,
- -0.38671875000000006000f, -0.32812500000000000000f,
- -0.27734375000000000000f, -0.23437499999999997000f,
- -0.17187499999999997000f, -0.11718749999999999000f,
- -0.03515625000000000000f, 0.01953125000000000000f,
- 0.07031250000000000000f, 0.12890625000000000000f,
- 0.20312500000000003000f, 0.27343750000000000000f,
- 0.34374999999999994000f, 0.41406250000000000000f,
- -0.46484375000000000000f, -0.44531250000000000000f,
- -0.38671875000000006000f, -0.34765625000000000000f,
- -0.27734375000000000000f, -0.23437499999999997000f,
- -0.19531250000000000000f, -0.14453125000000000000f,
- -0.01562500000000000000f, 0.04687500000000000000f,
- 0.10937500000000000000f, 0.17968750000000000000f,
- 0.23437499999999997000f, 0.30078125000000000000f,
- 0.35546875000000000000f, 0.41406250000000000000f,
- -0.44140625000000000000f, -0.42578124999999994000f,
- -0.33984375000000000000f, -0.30468750000000000000f,
- -0.26171875000000000000f, -0.20312500000000003000f,
- -0.15625000000000000000f, -0.07421875000000000000f,
- -0.03125000000000000000f, 0.04687500000000000000f,
- 0.11328125000000000000f, 0.16796875000000000000f,
- 0.22656250000000000000f, 0.29296875000000000000f,
- 0.36718750000000000000f, 0.44140625000000000000f,
- -0.46484375000000000000f, -0.44531250000000000000f,
- -0.34374999999999994000f, -0.30078125000000000000f,
- -0.24609375000000000000f, -0.19140625000000000000f,
- -0.14062500000000000000f, -0.08984375000000000000f,
- 0.00390625000000000000f, 0.06640625000000000000f,
- 0.12890625000000000000f, 0.19921875000000000000f,
- 0.26562500000000000000f, 0.31640625000000000000f,
- 0.37890625000000000000f, 0.42578124999999994000f,
- -0.46484375000000000000f, -0.44531250000000000000f,
- -0.39453125000000000000f, -0.34374999999999994000f,
- -0.27734375000000000000f, -0.22265625000000000000f,
- -0.16406250000000000000f, -0.06250000000000000000f,
- -0.00390625000000000000f, 0.04296874999999999300f,
- 0.09375000000000000000f, 0.14843750000000000000f,
- 0.21093750000000000000f, 0.26953125000000000000f,
- 0.35156250000000000000f, 0.42968750000000000000f,
- -0.45312500000000000000f, -0.40234375000000000000f,
- -0.33593750000000000000f, -0.28515625000000000000f,
- -0.22265625000000000000f, -0.16796875000000000000f,
- -0.10546875000000000000f, -0.05078125000000000700f,
- 0.00781250000000000000f, 0.06250000000000000000f,
- 0.12109375000000000000f, 0.17578125000000000000f,
- 0.23828125000000000000f, 0.29687500000000000000f,
- 0.35937500000000000000f, 0.42187500000000000000f,
- -0.45312500000000000000f, -0.43750000000000000000f,
- -0.39062500000000000000f, -0.30078125000000000000f,
- -0.26562500000000000000f, -0.19921875000000000000f,
- -0.16015625000000000000f, -0.08593749999999998600f,
- -0.04296874999999999300f, 0.00000000000000000000f,
- 0.06250000000000000000f, 0.14453125000000000000f,
- 0.21875000000000000000f, 0.28125000000000000000f,
- 0.34374999999999994000f, 0.40625000000000006000f,
- -0.46093750000000000000f, -0.44140625000000000000f,
- -0.37500000000000000000f, -0.32812500000000000000f,
- -0.26953125000000000000f, -0.21484375000000000000f,
- -0.16406250000000000000f, -0.11718749999999999000f,
- -0.04687500000000000000f, 0.06640625000000000000f,
- 0.12890625000000000000f, 0.19921875000000000000f,
- 0.27343750000000000000f, 0.32421875000000006000f,
- 0.38281250000000000000f, 0.42968750000000000000f,
- -0.42578124999999994000f, -0.40625000000000006000f,
- -0.35937500000000000000f, -0.31250000000000000000f,
- -0.26171875000000000000f, -0.21875000000000000000f,
- -0.16015625000000000000f, -0.10937500000000000000f,
- -0.05078125000000000700f, 0.00000000000000000000f,
- 0.05468750000000000000f, 0.10937500000000000000f,
- 0.16796875000000000000f, 0.23437499999999997000f,
- 0.33203125000000000000f, 0.40625000000000006000f,
- -0.43750000000000000000f, -0.41796875000000000000f,
- -0.37109375000000000000f, -0.32031250000000000000f,
- -0.27734375000000000000f, -0.22265625000000000000f,
- -0.17578125000000000000f, -0.10156250000000001000f,
- -0.04296874999999999300f, 0.00390625000000000000f,
- 0.10546875000000000000f, 0.16015625000000000000f,
- 0.20703125000000000000f, 0.25781250000000000000f,
- 0.32812500000000000000f, 0.40625000000000006000f,
- -0.44921875000000006000f, -0.43359375000000000000f,
- -0.38671875000000006000f, -0.35937500000000000000f,
- -0.24609375000000000000f, -0.20312500000000003000f,
- -0.15234375000000000000f, -0.09375000000000000000f,
- -0.05078125000000000700f, 0.01953125000000000000f,
- 0.10546875000000000000f, 0.16406250000000000000f,
- 0.23437499999999997000f, 0.30468750000000000000f,
- 0.36328124999999994000f, 0.42578124999999994000f,
- -0.43750000000000000000f, -0.42187500000000000000f,
- -0.37500000000000000000f, -0.34765625000000000000f,
- -0.30078125000000000000f, -0.19921875000000000000f,
- -0.16015625000000000000f, -0.08593749999999998600f,
- -0.04296874999999999300f, 0.05078125000000000700f,
- 0.12109375000000000000f, 0.17187499999999997000f,
- 0.22265625000000000000f, 0.28125000000000000000f,
- 0.33984375000000000000f, 0.41015625000000000000f,
- -0.43359375000000000000f, -0.41796875000000000000f,
- -0.37109375000000000000f, -0.33984375000000000000f,
- -0.30078125000000000000f, -0.19140625000000000000f,
- -0.14843750000000000000f, -0.09375000000000000000f,
- -0.03906250000000000000f, 0.00000000000000000000f,
- 0.05859374999999999300f, 0.11718749999999999000f,
- 0.21093750000000000000f, 0.29296875000000000000f,
- 0.36328124999999994000f, 0.41796875000000000000f,
- -0.41796875000000000000f, -0.40234375000000000000f,
- -0.36328124999999994000f, -0.28906250000000000000f,
- -0.20312500000000003000f, -0.17187499999999997000f,
- -0.12109375000000000000f, -0.06250000000000000000f,
- -0.01171875000000000000f, 0.03906250000000000000f,
- 0.12890625000000000000f, 0.17578125000000000000f,
- 0.22656250000000000000f, 0.27734375000000000000f,
- 0.33203125000000000000f, 0.38281250000000000000f,
- -0.44921875000000006000f, -0.43359375000000000000f,
- -0.38281250000000000000f, -0.28125000000000000000f,
- -0.23437499999999997000f, -0.19140625000000000000f,
- -0.13671875000000000000f, -0.09375000000000000000f,
- 0.00390625000000000000f, 0.04296874999999999300f,
- 0.09765625000000000000f, 0.14843750000000000000f,
- 0.21875000000000000000f, 0.31640625000000000000f,
- 0.38281250000000000000f, 0.43750000000000000000f,
- -0.45312500000000000000f, -0.43750000000000000000f,
- -0.39843750000000000000f, -0.27343750000000000000f,
- -0.23046875000000000000f, -0.19140625000000000000f,
- -0.14062500000000000000f, -0.09765625000000000000f,
- -0.02734375000000000000f, 0.01953125000000000000f,
- 0.06640625000000000000f, 0.11718749999999999000f,
- 0.18750000000000000000f, 0.25781250000000000000f,
- 0.33984375000000000000f, 0.40234375000000000000f,
- -0.44140625000000000000f, -0.42578124999999994000f,
- -0.36718750000000000000f, -0.33593750000000000000f,
- -0.29296875000000000000f, -0.25000000000000000000f,
- -0.20312500000000003000f, -0.09375000000000000000f,
- -0.05468750000000000000f, 0.02343750000000000000f,
- 0.08984375000000000000f, 0.16796875000000000000f,
- 0.23828125000000000000f, 0.30078125000000000000f,
- 0.35937500000000000000f, 0.42187500000000000000f,
- -0.46093750000000000000f, -0.43750000000000000000f,
- -0.39062500000000000000f, -0.35156250000000000000f,
- -0.25390625000000000000f, -0.20703125000000000000f,
- -0.15234375000000000000f, -0.08593749999999998600f,
- 0.02343750000000000000f, 0.07031250000000000000f,
- 0.12500000000000000000f, 0.19140625000000000000f,
- 0.26171875000000000000f, 0.31640625000000000000f,
- 0.37890625000000000000f, 0.42578124999999994000f,
- -0.45312500000000000000f, -0.42578124999999994000f,
- -0.38671875000000006000f, -0.31250000000000000000f,
- -0.26953125000000000000f, -0.21484375000000000000f,
- -0.16015625000000000000f, -0.10546875000000000000f,
- -0.04296874999999999300f, 0.01171875000000000000f,
- 0.08984375000000000000f, 0.15625000000000000000f,
- 0.23828125000000000000f, 0.31250000000000000000f,
- 0.39453125000000000000f, 0.44140625000000000000f,
- -0.42968750000000000000f, -0.41406250000000000000f,
- -0.35937500000000000000f, -0.32812500000000000000f,
- -0.28515625000000000000f, -0.16406250000000000000f,
- -0.12109375000000000000f, -0.06640625000000000000f,
- -0.00390625000000000000f, 0.03906250000000000000f,
- 0.10156250000000001000f, 0.14453125000000000000f,
- 0.19921875000000000000f, 0.29687500000000000000f,
- 0.38671875000000006000f, 0.44140625000000000000f,
- -0.45312500000000000000f, -0.42968750000000000000f,
- -0.36328124999999994000f, -0.29296875000000000000f,
- -0.22265625000000000000f, -0.16015625000000000000f,
- -0.08203125000000000000f, -0.02343750000000000000f,
- 0.03906250000000000000f, 0.09765625000000000000f,
- 0.15625000000000000000f, 0.21093750000000000000f,
- 0.26562500000000000000f, 0.32031250000000000000f,
- 0.37500000000000000000f, 0.42968750000000000000f,
- -0.45312500000000000000f, -0.43359375000000000000f,
- -0.39062500000000000000f, -0.35937500000000000000f,
- -0.31640625000000000000f, -0.17968750000000000000f,
- -0.12500000000000000000f, -0.07421875000000000000f,
- -0.01953125000000000000f, 0.02734375000000000000f,
- 0.09765625000000000000f, 0.16406250000000000000f,
- 0.22656250000000000000f, 0.28906250000000000000f,
- 0.35937500000000000000f, 0.41796875000000000000f,
- -0.43750000000000000000f, -0.42578124999999994000f,
- -0.33593750000000000000f, -0.30468750000000000000f,
- -0.26562500000000000000f, -0.21875000000000000000f,
- -0.17578125000000000000f, -0.08593749999999998600f,
- -0.05078125000000000700f, -0.00390625000000000000f,
- 0.05078125000000000700f, 0.12500000000000000000f,
- 0.22656250000000000000f, 0.30468750000000000000f,
- 0.35546875000000000000f, 0.41796875000000000000f,
- -0.42187500000000000000f, -0.40625000000000006000f,
- -0.34765625000000000000f, -0.29687500000000000000f,
- -0.25781250000000000000f, -0.20312500000000003000f,
- -0.14843750000000000000f, -0.10156250000000001000f,
- -0.02734375000000000000f, 0.01562500000000000000f,
- 0.07031250000000000000f, 0.11718749999999999000f,
- 0.16796875000000000000f, 0.28906250000000000000f,
- 0.38281250000000000000f, 0.43750000000000000000f,
- -0.44531250000000000000f, -0.42968750000000000000f,
- -0.32031250000000000000f, -0.28125000000000000000f,
- -0.23828125000000000000f, -0.19531250000000000000f,
- -0.14453125000000000000f, -0.07812500000000000000f,
- -0.04296874999999999300f, 0.00390625000000000000f,
- 0.06640625000000000000f, 0.17968750000000000000f,
- 0.24218750000000000000f, 0.30468750000000000000f,
- 0.36328124999999994000f, 0.43750000000000000000f,
- -0.43750000000000000000f, -0.42187500000000000000f,
- -0.38671875000000006000f, -0.30078125000000000000f,
- -0.25781250000000000000f, -0.22656250000000000000f,
- -0.12890625000000000000f, -0.08593749999999998600f,
- -0.04296874999999999300f, 0.05078125000000000700f,
- 0.09765625000000000000f, 0.13671875000000000000f,
- 0.18359375000000000000f, 0.25000000000000000000f,
- 0.33984375000000000000f, 0.42187500000000000000f,
- -0.44140625000000000000f, -0.42578124999999994000f,
- -0.37500000000000000000f, -0.27343750000000000000f,
- -0.23046875000000000000f, -0.19140625000000000000f,
- -0.13671875000000000000f, -0.09375000000000000000f,
- -0.02343750000000000000f, 0.02734375000000000000f,
- 0.07421875000000000000f, 0.13281250000000000000f,
- 0.25390625000000000000f, 0.30859375000000000000f,
- 0.36718750000000000000f, 0.41406250000000000000f,
- -0.44921875000000006000f, -0.43359375000000000000f,
- -0.37500000000000000000f, -0.33203125000000000000f,
- -0.28125000000000000000f, -0.23046875000000000000f,
- -0.18359375000000000000f, -0.12890625000000000000f,
- -0.07812500000000000000f, -0.03125000000000000000f,
- 0.03125000000000000000f, 0.13671875000000000000f,
- 0.21875000000000000000f, 0.28906250000000000000f,
- 0.35937500000000000000f, 0.42968750000000000000f,
- -0.43359375000000000000f, -0.42187500000000000000f,
- -0.35937500000000000000f, -0.25390625000000000000f,
- -0.21093750000000000000f, -0.17578125000000000000f,
- -0.12109375000000000000f, -0.07812500000000000000f,
- -0.00781250000000000000f, 0.04296874999999999300f,
- 0.08984375000000000000f, 0.13281250000000000000f,
- 0.18359375000000000000f, 0.24609375000000000000f,
- 0.37500000000000000000f, 0.44531250000000000000f,
- -0.44140625000000000000f, -0.42187500000000000000f,
- -0.38281250000000000000f, -0.33984375000000000000f,
- -0.30859375000000000000f, -0.26562500000000000000f,
- -0.12500000000000000000f, -0.07421875000000000000f,
- -0.01953125000000000000f, 0.04687500000000000000f,
- 0.09765625000000000000f, 0.16015625000000000000f,
- 0.23437499999999997000f, 0.30078125000000000000f,
- 0.37500000000000000000f, 0.42578124999999994000f,
- -0.44921875000000006000f, -0.42578124999999994000f,
- -0.37500000000000000000f, -0.32031250000000000000f,
- -0.22656250000000000000f, -0.18750000000000000000f,
- -0.13281250000000000000f, -0.06640625000000000000f,
- -0.01562500000000000000f, 0.03515625000000000000f,
- 0.14062500000000000000f, 0.19531250000000000000f,
- 0.25390625000000000000f, 0.30859375000000000000f,
- 0.37890625000000000000f, 0.42578124999999994000f,
- -0.44921875000000006000f, -0.42968750000000000000f,
- -0.39062500000000000000f, -0.34374999999999994000f,
- -0.21875000000000000000f, -0.17578125000000000000f,
- -0.13281250000000000000f, -0.08203125000000000000f,
- -0.02734375000000000000f, 0.02734375000000000000f,
- 0.09375000000000000000f, 0.14453125000000000000f,
- 0.19531250000000000000f, 0.25000000000000000000f,
- 0.33593750000000000000f, 0.41796875000000000000f,
- -0.40625000000000006000f, -0.38281250000000000000f,
- -0.34374999999999994000f, -0.30078125000000000000f,
- -0.23437499999999997000f, -0.19921875000000000000f,
- -0.14453125000000000000f, -0.07031250000000000000f,
- -0.01171875000000000000f, 0.03125000000000000000f,
- 0.09765625000000000000f, 0.15625000000000000000f,
- 0.20703125000000000000f, 0.26562500000000000000f,
- 0.35546875000000000000f, 0.41796875000000000000f,
- -0.46093750000000000000f, -0.44140625000000000000f,
- -0.37890625000000000000f, -0.33203125000000000000f,
- -0.28906250000000000000f, -0.24218750000000000000f,
- -0.19921875000000000000f, -0.15625000000000000000f,
- -0.09765625000000000000f, 0.01562500000000000000f,
- 0.09375000000000000000f, 0.15625000000000000000f,
- 0.22265625000000000000f, 0.29296875000000000000f,
- 0.35937500000000000000f, 0.42578124999999994000f,
- -0.41796875000000000000f, -0.40234375000000000000f,
- -0.35937500000000000000f, -0.32421875000000006000f,
- -0.28906250000000000000f, -0.24218750000000000000f,
- -0.10937500000000000000f, -0.07031250000000000000f,
- -0.01562500000000000000f, 0.03515625000000000000f,
- 0.08593749999999998600f, 0.13281250000000000000f,
- 0.19531250000000000000f, 0.26171875000000000000f,
- 0.33984375000000000000f, 0.41796875000000000000f,
- -0.45312500000000000000f, -0.43750000000000000000f,
- -0.29296875000000000000f, -0.26171875000000000000f,
- -0.21875000000000000000f, -0.17578125000000000000f,
- -0.12109375000000000000f, -0.06250000000000000000f,
- -0.01953125000000000000f, 0.03906250000000000000f,
- 0.11718749999999999000f, 0.17578125000000000000f,
- 0.24609375000000000000f, 0.30859375000000000000f,
- 0.37500000000000000000f, 0.43359375000000000000f,
- -0.41406250000000000000f, -0.39843750000000000000f,
- -0.34374999999999994000f, -0.30078125000000000000f,
- -0.26562500000000000000f, -0.20312500000000003000f,
- -0.14843750000000000000f, -0.09765625000000000000f,
- -0.01562500000000000000f, 0.02734375000000000000f,
- 0.08984375000000000000f, 0.14062500000000000000f,
- 0.25781250000000000000f, 0.32812500000000000000f,
- 0.38281250000000000000f, 0.43359375000000000000f,
- -0.40234375000000000000f, -0.38671875000000006000f,
- -0.33984375000000000000f, -0.29687500000000000000f,
- -0.25781250000000000000f, -0.21875000000000000000f,
- -0.11328125000000000000f, -0.05078125000000000700f,
- 0.00000000000000000000f, 0.05468750000000000000f,
- 0.12109375000000000000f, 0.16406250000000000000f,
- 0.22265625000000000000f, 0.27734375000000000000f,
- 0.33203125000000000000f, 0.37500000000000000000f,
- -0.44531250000000000000f, -0.43359375000000000000f,
- -0.35546875000000000000f, -0.22656250000000000000f,
- -0.18359375000000000000f, -0.14843750000000000000f,
- -0.10156250000000001000f, -0.05468750000000000000f,
- 0.01171875000000000000f, 0.05078125000000000700f,
- 0.10156250000000001000f, 0.15625000000000000000f,
- 0.24218750000000000000f, 0.31250000000000000000f,
- 0.37500000000000000000f, 0.42968750000000000000f,
- -0.44531250000000000000f, -0.42968750000000000000f,
- -0.35156250000000000000f, -0.32421875000000006000f,
- -0.28125000000000000000f, -0.25000000000000000000f,
- -0.14062500000000000000f, -0.09375000000000000000f,
- -0.05078125000000000700f, 0.02343750000000000000f,
- 0.10937500000000000000f, 0.19140625000000000000f,
- 0.25781250000000000000f, 0.31640625000000000000f,
- 0.37890625000000000000f, 0.43750000000000000000f,
- -0.42578124999999994000f, -0.41015625000000000000f,
- -0.35546875000000000000f, -0.32031250000000000000f,
- -0.27734375000000000000f, -0.19921875000000000000f,
- -0.14843750000000000000f, -0.09375000000000000000f,
- -0.03906250000000000000f, 0.00390625000000000000f,
- 0.07812500000000000000f, 0.19140625000000000000f,
- 0.25000000000000000000f, 0.30468750000000000000f,
- 0.35546875000000000000f, 0.41406250000000000000f,
- -0.43359375000000000000f, -0.41796875000000000000f,
- -0.35156250000000000000f, -0.32031250000000000000f,
- -0.27343750000000000000f, -0.23437499999999997000f,
- -0.19140625000000000000f, -0.04687500000000000000f,
- 0.00000000000000000000f, 0.04296874999999999300f,
- 0.09765625000000000000f, 0.14453125000000000000f,
- 0.23437499999999997000f, 0.32031250000000000000f,
- 0.39453125000000000000f, 0.44531250000000000000f,
- -0.43359375000000000000f, -0.41796875000000000000f,
- -0.36328124999999994000f, -0.28125000000000000000f,
- -0.16406250000000000000f, -0.11718749999999999000f,
- -0.07812500000000000000f, -0.03125000000000000000f,
- 0.01562500000000000000f, 0.06250000000000000000f,
- 0.13281250000000000000f, 0.17968750000000000000f,
- 0.22656250000000000000f, 0.27343750000000000000f,
- 0.33203125000000000000f, 0.38281250000000000000f,
- -0.43750000000000000000f, -0.42578124999999994000f,
- -0.31250000000000000000f, -0.25390625000000000000f,
- -0.21875000000000000000f, -0.17187499999999997000f,
- -0.12890625000000000000f, -0.06640625000000000000f,
- -0.01171875000000000000f, 0.03125000000000000000f,
- 0.07812500000000000000f, 0.12109375000000000000f,
- 0.19140625000000000000f, 0.30859375000000000000f,
- 0.38281250000000000000f, 0.43750000000000000000f,
- -0.40625000000000006000f, -0.38281250000000000000f,
- -0.32812500000000000000f, -0.28125000000000000000f,
- -0.23046875000000000000f, -0.17578125000000000000f,
- -0.12109375000000000000f, -0.07031250000000000000f,
- -0.00390625000000000000f, 0.04687500000000000000f,
- 0.12109375000000000000f, 0.18359375000000000000f,
- 0.25000000000000000000f, 0.31640625000000000000f,
- 0.38281250000000000000f, 0.42968750000000000000f,
- -0.42968750000000000000f, -0.41406250000000000000f,
- -0.35937500000000000000f, -0.30859375000000000000f,
- -0.27343750000000000000f, -0.23046875000000000000f,
- -0.19140625000000000000f, -0.15234375000000000000f,
- -0.00390625000000000000f, 0.04296874999999999300f,
- 0.08593749999999998600f, 0.13671875000000000000f,
- 0.20312500000000003000f, 0.26953125000000000000f,
- 0.34765625000000000000f, 0.42578124999999994000f,
- -0.44140625000000000000f, -0.42578124999999994000f,
- -0.39453125000000000000f, -0.37109375000000000000f,
- -0.21875000000000000000f, -0.17187499999999997000f,
- -0.11328125000000000000f, -0.06250000000000000000f,
- -0.00781250000000000000f, 0.07031250000000000000f,
- 0.12890625000000000000f, 0.18750000000000000000f,
- 0.24609375000000000000f, 0.30468750000000000000f,
- 0.37109375000000000000f, 0.42968750000000000000f,
- -0.42578124999999994000f, -0.41406250000000000000f,
- -0.36718750000000000000f, -0.33984375000000000000f,
- -0.28906250000000000000f, -0.16015625000000000000f,
- -0.11328125000000000000f, -0.05468750000000000000f,
- 0.00390625000000000000f, 0.05078125000000000700f,
- 0.10937500000000000000f, 0.18359375000000000000f,
- 0.26953125000000000000f, 0.32812500000000000000f,
- 0.38671875000000006000f, 0.43359375000000000000f,
- -0.44921875000000006000f, -0.42968750000000000000f,
- -0.39453125000000000000f, -0.32812500000000000000f,
- -0.19531250000000000000f, -0.12500000000000000000f,
- -0.08593749999999998600f, -0.04296874999999999300f,
- 0.00390625000000000000f, 0.05078125000000000700f,
- 0.11718749999999999000f, 0.17578125000000000000f,
- 0.22656250000000000000f, 0.28125000000000000000f,
- 0.34765625000000000000f, 0.41796875000000000000f,
- -0.41406250000000000000f, -0.39843750000000000000f,
- -0.34765625000000000000f, -0.29296875000000000000f,
- -0.25000000000000000000f, -0.21484375000000000000f,
- -0.17187499999999997000f, -0.13281250000000000000f,
- -0.05078125000000000700f, 0.06250000000000000000f,
- 0.12500000000000000000f, 0.16796875000000000000f,
- 0.23046875000000000000f, 0.28515625000000000000f,
- 0.33593750000000000000f, 0.39062500000000000000f,
- -0.43359375000000000000f, -0.41796875000000000000f,
- -0.36718750000000000000f, -0.27343750000000000000f,
- -0.21484375000000000000f, -0.17968750000000000000f,
- -0.12890625000000000000f, -0.08203125000000000000f,
- -0.02734375000000000000f, 0.01953125000000000000f,
- 0.07421875000000000000f, 0.12109375000000000000f,
- 0.16796875000000000000f, 0.21484375000000000000f,
- 0.27343750000000000000f, 0.40234375000000000000f,
- -0.39843750000000000000f, -0.37890625000000000000f,
- -0.31250000000000000000f, -0.27734375000000000000f,
- -0.23437499999999997000f, -0.19140625000000000000f,
- -0.14062500000000000000f, -0.09375000000000000000f,
- -0.03125000000000000000f, 0.01562500000000000000f,
- 0.07421875000000000000f, 0.12500000000000000000f,
- 0.18750000000000000000f, 0.24609375000000000000f,
- 0.30859375000000000000f, 0.39062500000000000000f,
- -0.44140625000000000000f, -0.42578124999999994000f,
- -0.35156250000000000000f, -0.29687500000000000000f,
- -0.25781250000000000000f, -0.20703125000000000000f,
- -0.16015625000000000000f, -0.11328125000000000000f,
- -0.06250000000000000000f, -0.02734375000000000000f,
- 0.01953125000000000000f, 0.05859374999999999300f,
- 0.16406250000000000000f, 0.26953125000000000000f,
- 0.34765625000000000000f, 0.42187500000000000000f,
- -0.42187500000000000000f, -0.41015625000000000000f,
- -0.36328124999999994000f, -0.33203125000000000000f,
- -0.29687500000000000000f, -0.24218750000000000000f,
- -0.08984375000000000000f, -0.03125000000000000000f,
- 0.01562500000000000000f, 0.07031250000000000000f,
- 0.12890625000000000000f, 0.17578125000000000000f,
- 0.23437499999999997000f, 0.28906250000000000000f,
- 0.35156250000000000000f, 0.41015625000000000000f,
- -0.44531250000000000000f, -0.42968750000000000000f,
- -0.34765625000000000000f, -0.23828125000000000000f,
- -0.20312500000000003000f, -0.16406250000000000000f,
- -0.11718749999999999000f, -0.07031250000000000000f,
- -0.01562500000000000000f, 0.05078125000000000700f,
- 0.10156250000000001000f, 0.15234375000000000000f,
- 0.20703125000000000000f, 0.26171875000000000000f,
- 0.31640625000000000000f, 0.37500000000000000000f,
- -0.38671875000000006000f, -0.37109375000000000000f,
- -0.33593750000000000000f, -0.30078125000000000000f,
- -0.26953125000000000000f, -0.23437499999999997000f,
- -0.12500000000000000000f, -0.05859374999999999300f,
- -0.00781250000000000000f, 0.05859374999999999300f,
- 0.13671875000000000000f, 0.18359375000000000000f,
- 0.25000000000000000000f, 0.31250000000000000000f,
- 0.37500000000000000000f, 0.42968750000000000000f,
- -0.44921875000000006000f, -0.41015625000000000000f,
- -0.31250000000000000000f, -0.23828125000000000000f,
- -0.16796875000000000000f, -0.10546875000000000000f,
- -0.05468750000000000000f, -0.00390625000000000000f,
- 0.05078125000000000700f, 0.10156250000000001000f,
- 0.15625000000000000000f, 0.20703125000000000000f,
- 0.26171875000000000000f, 0.31250000000000000000f,
- 0.37109375000000000000f, 0.42968750000000000000f,
- -0.39062500000000000000f, -0.35546875000000000000f,
- -0.28125000000000000000f, -0.23046875000000000000f,
- -0.18750000000000000000f, -0.14843750000000000000f,
- -0.09765625000000000000f, -0.05078125000000000700f,
- 0.00390625000000000000f, 0.05859374999999999300f,
- 0.10937500000000000000f, 0.15234375000000000000f,
- 0.22656250000000000000f, 0.29296875000000000000f,
- 0.35546875000000000000f, 0.41015625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.01953125000000000000f, -0.01953125000000000000f,
- -0.02734375000000000000f, -0.03125000000000000000f,
- -0.01953125000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.02343750000000000000f,
- -0.03125000000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.02343750000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.03515625000000000000f, 0.02734375000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- -0.01953125000000000000f, -0.02343750000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.01562500000000000000f, -0.03125000000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.01953125000000000000f, -0.02734375000000000000f,
- -0.03515625000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, 0.03515625000000000000f,
- 0.02734375000000000000f, 0.02343750000000000000f,
- 0.01953125000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.01562500000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.03125000000000000000f, 0.03125000000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.02343750000000000000f,
- 0.02343750000000000000f, 0.02343750000000000000f,
- 0.02734375000000000000f, 0.02343750000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.01562500000000000000f,
- -0.02734375000000000000f, -0.03906250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, -0.01953125000000000000f,
- 0.03125000000000000000f, 0.01953125000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- -0.02343750000000000000f, -0.03906250000000000000f,
- -0.03906250000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- -0.03125000000000000000f, -0.03515625000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- 0.03906250000000000000f, 0.03515625000000000000f,
- 0.02734375000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- 0.03515625000000000000f, 0.02734375000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- -0.02343750000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, -0.01562500000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, 0.01953125000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- -0.02734375000000000000f, 0.01953125000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- -0.02343750000000000000f, -0.02734375000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.02734375000000000000f, 0.01953125000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.01953125000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01562500000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.02343750000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.01562500000000000000f, -0.02343750000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01562500000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, 0.01953125000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01953125000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01562500000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.01562500000000000000f,
- 0.00781250000000000000f, 0.01562500000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.01171875000000000000f, 0.01562500000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, -0.01171875000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f
-};
-
-const SKP_Silk_NLSF_CBS_FLP SKP_Silk_NLSF_CB0_16_Stage_info_FLP[ NLSF_MSVQ_CB0_16_STAGES ] =
-{
- { 64, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 0 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 0 ] },
- { 16, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 64 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 64 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 80 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 80 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 88 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 88 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 96 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 96 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 104 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 104 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 112 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 112 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 120 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 120 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 128 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 128 ] },
- { 16, &SKP_Silk_NLSF_MSVQ_CB0_16[ 16 * 136 ], &SKP_Silk_NLSF_MSVQ_CB0_16_rates[ 136 ] }
-};
-
-const SKP_Silk_NLSF_CB_FLP SKP_Silk_NLSF_CB0_16_FLP =
-{
- NLSF_MSVQ_CB0_16_STAGES,
- SKP_Silk_NLSF_CB0_16_Stage_info_FLP,
- SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min,
- SKP_Silk_NLSF_MSVQ_CB0_16_CDF,
- SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx
-};
-
--- a/src_FLP/SKP_Silk_tables_NLSF_CB1_10_FLP.c
+++ /dev/null
@@ -1,520 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/* */
-/* ROM usage: 3.56 kB */
-/**********************************************/
-
-#include "SKP_Silk_tables_FLP.h"
-#include "SKP_Silk_tables_NLSF_CB1_10.h"
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB1_10_rates[ NLSF_MSVQ_CB1_10_VECTORS ] =
-{
- 1.62500000000000000000f, 3.18750000000000000000f,
- 3.43750000000000000000f, 4.00000000000000000000f,
- 4.75000000000000000000f, 4.81250000000000000000f,
- 5.00000000000000000000f, 5.31250000000000000000f,
- 5.43750000000000000000f, 5.62500000000000000000f,
- 5.68750000000000000000f, 5.75000000000000000000f,
- 5.75000000000000000000f, 6.12500000000000000000f,
- 6.18750000000000000000f, 6.31250000000000000000f,
- 6.37500000000000000000f, 6.43750000000000000000f,
- 6.43750000000000000000f, 6.50000000000000000000f,
- 6.56250000000000000000f, 6.75000000000000000000f,
- 6.93750000000000000000f, 7.06250000000000000000f,
- 7.06250000000000000000f, 7.06250000000000000000f,
- 7.06250000000000000000f, 7.06250000000000000000f,
- 7.06250000000000000000f, 7.06250000000000000000f,
- 7.06250000000000000000f, 7.06250000000000000000f,
- 0.93750000000000000000f, 2.87500000000000000000f,
- 3.68750000000000000000f, 4.00000000000000000000f,
- 4.25000000000000000000f, 4.25000000000000000000f,
- 4.25000000000000000000f, 4.37500000000000000000f,
- 1.12500000000000000000f, 2.62500000000000000000f,
- 3.50000000000000000000f, 3.93750000000000000000f,
- 4.00000000000000000000f, 4.18750000000000000000f,
- 4.25000000000000000000f, 4.25000000000000000000f,
- 1.06250000000000000000f, 3.18750000000000000000f,
- 3.62500000000000000000f, 3.75000000000000000000f,
- 3.87500000000000000000f, 3.93750000000000000000f,
- 3.93750000000000000000f, 4.25000000000000000000f,
- 2.18750000000000000000f, 2.56250000000000000000f,
- 2.75000000000000000000f, 2.87500000000000000000f,
- 2.93750000000000000000f, 3.56250000000000000000f,
- 4.06250000000000000000f, 4.31250000000000000000f,
- 1.31250000000000000000f, 2.75000000000000000000f,
- 2.93750000000000000000f, 3.62500000000000000000f,
- 3.93750000000000000000f, 4.00000000000000000000f,
- 4.12500000000000000000f, 4.12500000000000000000f,
- 1.68750000000000000000f, 2.50000000000000000000f,
- 3.25000000000000000000f, 3.37500000000000000000f,
- 3.37500000000000000000f, 3.43750000000000000000f,
- 3.56250000000000000000f, 4.31250000000000000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min[ 10 + 1 ] =
-{
- 0.00894165039062500000f,
- 0.00097656250000000000f,
- 0.00686645507812500000f,
- 0.00854492187500000000f,
- 0.00466918945312500000f,
- 0.00070190429687500000f,
- 0.00039672851562500005f,
- 0.00042724609375000000f,
- 0.00027465820312500000f,
- 0.00009155273437500000f,
- 0.02099609375000000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * NLSF_MSVQ_CB1_10_VECTORS ] =
-{
- -0.44140625000000000000f, -0.35937500000000000000f,
- -0.26562500000000000000f, -0.16796875000000000000f,
- -0.07812500000000000000f, 0.01171875000000000000f,
- 0.10937500000000000000f, 0.20312500000000003000f,
- 0.30468750000000000000f, 0.39062500000000000000f,
- -0.44531250000000000000f, -0.39453125000000000000f,
- -0.29296875000000000000f, -0.20703125000000000000f,
- -0.11718749999999999000f, -0.02734375000000000000f,
- 0.07812500000000000000f, 0.17578125000000000000f,
- 0.28125000000000000000f, 0.37500000000000000000f,
- -0.38281250000000000000f, -0.31640625000000000000f,
- -0.22656250000000000000f, -0.12890625000000000000f,
- -0.03906250000000000000f, 0.03906250000000000000f,
- 0.13671875000000000000f, 0.22656250000000000000f,
- 0.32031250000000000000f, 0.40234375000000000000f,
- -0.42968750000000000000f, -0.38671875000000006000f,
- -0.31250000000000000000f, -0.23828125000000000000f,
- -0.14843750000000000000f, -0.05859374999999999300f,
- 0.04687500000000000000f, 0.14843750000000000000f,
- 0.25781250000000000000f, 0.34765625000000000000f,
- -0.44921875000000006000f, -0.42187500000000000000f,
- -0.30078125000000000000f, -0.19140625000000000000f,
- -0.08203125000000000000f, 0.01562500000000000000f,
- 0.11328125000000000000f, 0.20703125000000000000f,
- 0.30859375000000000000f, 0.39843750000000000000f,
- -0.39453125000000000000f, -0.31640625000000000000f,
- -0.21484375000000000000f, -0.11328125000000000000f,
- -0.02734375000000000000f, 0.08984375000000000000f,
- 0.18359375000000000000f, 0.27734375000000000000f,
- 0.36328124999999994000f, 0.42968750000000000000f,
- -0.39062500000000000000f, -0.32421875000000006000f,
- -0.25390625000000000000f, -0.17187499999999997000f,
- -0.09765625000000000000f, -0.02734375000000000000f,
- 0.07421875000000000000f, 0.17578125000000000000f,
- 0.28125000000000000000f, 0.37500000000000000000f,
- -0.42968750000000000000f, -0.39062500000000000000f,
- -0.33203125000000000000f, -0.17578125000000000000f,
- -0.09765625000000000000f, -0.03125000000000000000f,
- 0.08593749999999998600f, 0.15234375000000000000f,
- 0.30468750000000000000f, 0.37890625000000000000f,
- -0.44921875000000006000f, -0.41796875000000000000f,
- -0.34765625000000000000f, -0.26953125000000000000f,
- -0.14062500000000000000f, -0.03515625000000000000f,
- 0.07812500000000000000f, 0.17578125000000000000f,
- 0.28125000000000000000f, 0.38671875000000006000f,
- -0.44140625000000000000f, -0.38671875000000006000f,
- -0.26953125000000000000f, -0.14843750000000000000f,
- -0.04687500000000000000f, 0.06250000000000000000f,
- 0.17187499999999997000f, 0.26562500000000000000f,
- 0.35937500000000000000f, 0.42578124999999994000f,
- -0.42578124999999994000f, -0.38281250000000000000f,
- -0.32812500000000000000f, -0.23437499999999997000f,
- -0.07421875000000000000f, -0.01171875000000000000f,
- 0.07031250000000000000f, 0.16796875000000000000f,
- 0.23828125000000000000f, 0.38281250000000000000f,
- -0.38671875000000006000f, -0.30078125000000000000f,
- -0.17968750000000000000f, -0.06640625000000000000f,
- 0.03906250000000000000f, 0.13671875000000000000f,
- 0.21484375000000000000f, 0.28906250000000000000f,
- 0.35937500000000000000f, 0.41406250000000000000f,
- -0.41015625000000000000f, -0.35546875000000000000f,
- -0.27343750000000000000f, -0.16406250000000000000f,
- -0.00390625000000000000f, 0.06640625000000000000f,
- 0.13671875000000000000f, 0.22656250000000000000f,
- 0.29296875000000000000f, 0.38671875000000006000f,
- -0.35156250000000000000f, -0.30078125000000000000f,
- -0.20703125000000000000f, -0.14843750000000000000f,
- -0.08203125000000000000f, 0.00000000000000000000f,
- 0.10937500000000000000f, 0.19140625000000000000f,
- 0.29687500000000000000f, 0.37890625000000000000f,
- -0.42968750000000000000f, -0.39453125000000000000f,
- -0.31250000000000000000f, -0.11328125000000000000f,
- -0.03125000000000000000f, 0.02343750000000000000f,
- 0.11718749999999999000f, 0.18750000000000000000f,
- 0.32031250000000000000f, 0.38671875000000006000f,
- -0.42968750000000000000f, -0.35937500000000000000f,
- -0.21484375000000000000f, -0.07421875000000000000f,
- 0.01562500000000000000f, 0.09765625000000000000f,
- 0.16796875000000000000f, 0.24218750000000000000f,
- 0.32812500000000000000f, 0.39453125000000000000f,
- -0.39453125000000000000f, -0.34374999999999994000f,
- -0.28515625000000000000f, -0.22656250000000000000f,
- -0.17578125000000000000f, -0.10156250000000001000f,
- 0.08203125000000000000f, 0.17968750000000000000f,
- 0.27734375000000000000f, 0.38281250000000000000f,
- -0.32421875000000006000f, -0.26171875000000000000f,
- -0.15625000000000000000f, -0.08593749999999998600f,
- -0.00781250000000000000f, 0.07421875000000000000f,
- 0.16015625000000000000f, 0.24609375000000000000f,
- 0.33203125000000000000f, 0.40234375000000000000f,
- -0.43750000000000000000f, -0.40234375000000000000f,
- -0.34765625000000000000f, -0.24218750000000000000f,
- -0.03125000000000000000f, 0.05859374999999999300f,
- 0.12890625000000000000f, 0.21875000000000000000f,
- 0.28906250000000000000f, 0.37890625000000000000f,
- -0.45703125000000000000f, -0.28515625000000000000f,
- -0.21875000000000000000f, -0.12890625000000000000f,
- -0.05078125000000000700f, 0.04296874999999999300f,
- 0.13281250000000000000f, 0.22265625000000000000f,
- 0.31250000000000000000f, 0.39453125000000000000f,
- -0.42968750000000000000f, -0.39062500000000000000f,
- -0.32812500000000000000f, -0.28125000000000000000f,
- -0.23046875000000000000f, -0.05859374999999999300f,
- 0.08203125000000000000f, 0.17578125000000000000f,
- 0.29687500000000000000f, 0.37500000000000000000f,
- -0.40234375000000000000f, -0.35156250000000000000f,
- -0.28125000000000000000f, -0.23046875000000000000f,
- -0.15625000000000000000f, 0.00390625000000000000f,
- 0.12500000000000000000f, 0.21875000000000000000f,
- 0.32031250000000000000f, 0.38281250000000000000f,
- -0.41796875000000000000f, -0.37890625000000000000f,
- -0.30859375000000000000f, -0.21093750000000000000f,
- -0.14453125000000000000f, -0.08203125000000000000f,
- -0.01562500000000000000f, 0.08593749999999998600f,
- 0.27734375000000000000f, 0.36718750000000000000f,
- -0.37890625000000000000f, -0.26171875000000000000f,
- -0.10546875000000000000f, -0.00781250000000000000f,
- 0.11328125000000000000f, 0.17187499999999997000f,
- 0.22656250000000000000f, 0.27734375000000000000f,
- 0.32031250000000000000f, 0.38281250000000000000f,
- -0.34765625000000000000f, -0.28906250000000000000f,
- -0.21484375000000000000f, -0.17578125000000000000f,
- -0.11718749999999999000f, -0.07031250000000000000f,
- -0.00781250000000000000f, 0.08984375000000000000f,
- 0.25390625000000000000f, 0.37890625000000000000f,
- -0.41406250000000000000f, -0.32031250000000000000f,
- -0.21875000000000000000f, -0.12109375000000000000f,
- -0.01953125000000000000f, 0.13281250000000000000f,
- 0.23046875000000000000f, 0.25390625000000000000f,
- 0.26562500000000000000f, 0.30468750000000000000f,
- -0.41796875000000000000f, -0.32031250000000000000f,
- -0.22265625000000000000f, -0.12109375000000000000f,
- 0.07812500000000000000f, 0.12109375000000000000f,
- 0.13281250000000000000f, 0.13671875000000000000f,
- 0.26562500000000000000f, 0.40234375000000000000f,
- -0.42578124999999994000f, -0.32421875000000006000f,
- -0.21875000000000000000f, -0.12500000000000000000f,
- -0.02343750000000000000f, 0.07031250000000000000f,
- 0.19140625000000000000f, 0.32031250000000000000f,
- 0.42578124999999994000f, 0.45312500000000000000f,
- -0.40234375000000000000f, -0.32031250000000000000f,
- -0.19531250000000000000f, -0.06640625000000000000f,
- -0.02343750000000000000f, 0.00781250000000000000f,
- 0.07421875000000000000f, 0.21875000000000000000f,
- 0.32421875000000006000f, 0.41015625000000000000f,
- -0.41406250000000000000f, -0.32031250000000000000f,
- -0.21093750000000000000f, -0.11718749999999999000f,
- -0.00390625000000000000f, 0.12500000000000000000f,
- 0.16015625000000000000f, 0.19140625000000000000f,
- 0.20312500000000003000f, 0.38281250000000000000f,
- -0.38281250000000000000f, -0.25781250000000000000f,
- -0.14062500000000000000f, 0.00000000000000000000f,
- 0.01953125000000000000f, 0.04687500000000000000f,
- 0.05468750000000000000f, 0.10156250000000001000f,
- 0.25000000000000000000f, 0.37890625000000000000f,
- -0.41015625000000000000f, -0.31250000000000000000f,
- -0.20703125000000000000f, -0.11328125000000000000f,
- 0.00781250000000000000f, 0.11718749999999999000f,
- 0.29687500000000000000f, 0.35156250000000000000f,
- 0.36718750000000000000f, 0.37500000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01953125000000000000f,
- 0.02734375000000000000f, 0.02343750000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- 0.03125000000000000000f, 0.03515625000000000000f,
- 0.01953125000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- -0.02734375000000000000f, -0.04296874999999999300f,
- -0.04296874999999999300f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- -0.02343750000000000000f, -0.01171875000000000000f,
- 0.00781250000000000000f, -0.01562500000000000000f,
- 0.03906250000000000000f, 0.01953125000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.01953125000000000000f, -0.02734375000000000000f,
- 0.04296874999999999300f, 0.02734375000000000000f,
- 0.01562500000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.02734375000000000000f, 0.03906250000000000000f,
- 0.01171875000000000000f, -0.00390625000000000000f,
- -0.02343750000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.01953125000000000000f,
- -0.04296874999999999300f, -0.03906250000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.01953125000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.01953125000000000000f,
- 0.01562500000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.03515625000000000000f,
- -0.01953125000000000000f, -0.00390625000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.02343750000000000000f,
- 0.02734375000000000000f, 0.02343750000000000000f,
- -0.00781250000000000000f, -0.01953125000000000000f,
- -0.03515625000000000000f, -0.01562500000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.01171875000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- -0.02343750000000000000f, -0.03515625000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- 0.01562500000000000000f, -0.01171875000000000000f,
- 0.03515625000000000000f, 0.01171875000000000000f,
- -0.01171875000000000000f, 0.01562500000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- -0.02343750000000000000f, 0.04296874999999999300f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.01953125000000000000f, 0.02343750000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.02343750000000000000f, -0.03125000000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.03125000000000000000f, 0.00390625000000000000f,
- -0.01953125000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.03125000000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.03906250000000000000f,
- 0.00390625000000000000f, -0.01562500000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- -0.02343750000000000000f, 0.02343750000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.01562500000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.01562500000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.01562500000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.01953125000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.02734375000000000000f, 0.02343750000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.01562500000000000000f,
- -0.01562500000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.01562500000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.01953125000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.01953125000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.01562500000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.01953125000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.01171875000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01562500000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.01171875000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- -0.01562500000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.01562500000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f
-};
-
-const SKP_Silk_NLSF_CBS_FLP SKP_Silk_NLSF_CB1_10_Stage_info_FLP[ NLSF_MSVQ_CB1_10_STAGES ] =
-{
- { 32, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 0 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 0 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 32 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 32 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 40 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 40 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 48 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 48 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 56 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 56 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 64 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 64 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_10[ 10 * 72 ], &SKP_Silk_NLSF_MSVQ_CB1_10_rates[ 72 ] }
-};
-
-const SKP_Silk_NLSF_CB_FLP SKP_Silk_NLSF_CB1_10_FLP =
-{
- NLSF_MSVQ_CB1_10_STAGES,
- SKP_Silk_NLSF_CB1_10_Stage_info_FLP,
- SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min,
- SKP_Silk_NLSF_MSVQ_CB1_10_CDF,
- SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx
-};
-
--- a/src_FLP/SKP_Silk_tables_NLSF_CB1_16_FLP.c
+++ /dev/null
@@ -1,973 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/* */
-/* ROM usage: 7.14 kB */
-/**********************************************/
-
-#include "SKP_Silk_tables_FLP.h"
-#include "SKP_Silk_tables_NLSF_CB1_16.h"
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB1_16_rates[ NLSF_MSVQ_CB1_16_VECTORS ] =
-{
- 1.93750000000000000000f, 3.25000000000000000000f,
- 3.81250000000000000000f, 4.31250000000000000000f,
- 4.56250000000000000000f, 4.75000000000000000000f,
- 5.06250000000000000000f, 5.06250000000000000000f,
- 5.18750000000000000000f, 5.25000000000000000000f,
- 5.31250000000000000000f, 5.37500000000000000000f,
- 5.37500000000000000000f, 5.50000000000000000000f,
- 5.50000000000000000000f, 5.62500000000000000000f,
- 5.87500000000000000000f, 5.87500000000000000000f,
- 5.93750000000000000000f, 6.06250000000000000000f,
- 6.12500000000000000000f, 6.25000000000000000000f,
- 6.37500000000000000000f, 6.68750000000000000000f,
- 6.68750000000000000000f, 7.00000000000000000000f,
- 7.00000000000000000000f, 7.00000000000000000000f,
- 7.00000000000000000000f, 7.00000000000000000000f,
- 7.00000000000000000000f, 7.00000000000000000000f,
- 1.25000000000000000000f, 2.62500000000000000000f,
- 2.75000000000000000000f, 3.87500000000000000000f,
- 4.00000000000000000000f, 4.25000000000000000000f,
- 4.62500000000000000000f, 4.62500000000000000000f,
- 1.06250000000000000000f, 2.87500000000000000000f,
- 3.68750000000000000000f, 3.75000000000000000000f,
- 3.87500000000000000000f, 3.87500000000000000000f,
- 4.31250000000000000000f, 4.37500000000000000000f,
- 0.75000000000000000000f, 3.75000000000000000000f,
- 3.93750000000000000000f, 4.06250000000000000000f,
- 4.18750000000000000000f, 4.31250000000000000000f,
- 4.31250000000000000000f, 4.43750000000000000000f,
- 0.62500000000000000000f, 3.87500000000000000000f,
- 3.93750000000000000000f, 4.00000000000000000000f,
- 4.25000000000000000000f, 4.62500000000000000000f,
- 4.75000000000000000000f, 5.00000000000000000000f,
- 0.56250000000000000000f, 4.06250000000000000000f,
- 4.31250000000000000000f, 4.37500000000000000000f,
- 4.43750000000000000000f, 4.56250000000000000000f,
- 4.56250000000000000000f, 4.68750000000000000000f,
- 0.68750000000000000000f, 3.81250000000000000000f,
- 3.87500000000000000000f, 4.18750000000000000000f,
- 4.25000000000000000000f, 4.37500000000000000000f,
- 4.43750000000000000000f, 4.50000000000000000000f,
- 1.06250000000000000000f, 3.06250000000000000000f,
- 3.56250000000000000000f, 3.62500000000000000000f,
- 3.68750000000000000000f, 4.12500000000000000000f,
- 4.18750000000000000000f, 4.68750000000000000000f,
- 1.18750000000000000000f, 2.56250000000000000000f,
- 3.00000000000000000000f, 3.75000000000000000000f,
- 4.31250000000000000000f, 4.31250000000000000000f,
- 4.37500000000000000000f, 4.37500000000000000000f,
- 1.87500000000000000000f, 2.00000000000000000000f,
- 2.93750000000000000000f, 3.25000000000000000000f,
- 3.50000000000000000000f, 4.12500000000000000000f,
- 4.37500000000000000000f, 4.50000000000000000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min[ 16 + 1 ] =
-{
- 0.00335693359375000000f,
- 0.00085449218750000000f,
- 0.00372314453125000000f,
- 0.00207519531250000000f,
- 0.00228881835937500000f,
- 0.00216674804687500000f,
- 0.00195312500000000000f,
- 0.00238037109375000000f,
- 0.00253295898437500040f,
- 0.00234985351562500000f,
- 0.00247192382812500000f,
- 0.00231933593750000000f,
- 0.00256347656250000000f,
- 0.00222778320312500000f,
- 0.00210571289062500000f,
- 0.00064086914062500000f,
- 0.02374267578125000000f
-};
-
-const SKP_float SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * NLSF_MSVQ_CB1_16_VECTORS ] =
-{
- -0.46093750000000000000f, -0.41015625000000000000f,
- -0.35156250000000000000f, -0.28906250000000000000f,
- -0.22656250000000000000f, -0.17187499999999997000f,
- -0.11328125000000000000f, -0.05078125000000000700f,
- 0.01171875000000000000f, 0.07031250000000000000f,
- 0.12890625000000000000f, 0.19140625000000000000f,
- 0.25000000000000000000f, 0.30859375000000000000f,
- 0.37109375000000000000f, 0.42578124999999994000f,
- -0.46093750000000000000f, -0.42968750000000000000f,
- -0.37109375000000000000f, -0.31640625000000000000f,
- -0.25781250000000000000f, -0.20312500000000003000f,
- -0.14453125000000000000f, -0.08203125000000000000f,
- -0.01562500000000000000f, 0.04687500000000000000f,
- 0.10546875000000000000f, 0.16796875000000000000f,
- 0.23437499999999997000f, 0.30078125000000000000f,
- 0.36328124999999994000f, 0.41796875000000000000f,
- -0.46874999999999994000f, -0.44531250000000000000f,
- -0.36718750000000000000f, -0.30468750000000000000f,
- -0.23437499999999997000f, -0.17578125000000000000f,
- -0.11328125000000000000f, -0.05078125000000000700f,
- 0.01171875000000000000f, 0.07421875000000000000f,
- 0.13281250000000000000f, 0.19140625000000000000f,
- 0.25390625000000000000f, 0.31250000000000000000f,
- 0.37109375000000000000f, 0.42968750000000000000f,
- -0.47656250000000000000f, -0.45703125000000000000f,
- -0.40234375000000000000f, -0.34374999999999994000f,
- -0.26953125000000000000f, -0.20312500000000003000f,
- -0.14453125000000000000f, -0.07421875000000000000f,
- -0.00781250000000000000f, 0.05859374999999999300f,
- 0.12109375000000000000f, 0.18359375000000000000f,
- 0.24609375000000000000f, 0.30859375000000000000f,
- 0.37109375000000000000f, 0.42968750000000000000f,
- -0.46484375000000000000f, -0.43359375000000000000f,
- -0.37109375000000000000f, -0.31640625000000000000f,
- -0.26562500000000000000f, -0.20703125000000000000f,
- -0.14062500000000000000f, -0.08593749999999998600f,
- -0.01953125000000000000f, 0.03515625000000000000f,
- 0.10546875000000000000f, 0.15625000000000000000f,
- 0.21875000000000000000f, 0.27343750000000000000f,
- 0.33203125000000000000f, 0.37500000000000000000f,
- -0.45703125000000000000f, -0.41406250000000000000f,
- -0.35156250000000000000f, -0.29687500000000000000f,
- -0.24218750000000000000f, -0.19140625000000000000f,
- -0.12109375000000000000f, -0.05859374999999999300f,
- -0.00781250000000000000f, 0.03906250000000000000f,
- 0.10156250000000001000f, 0.15234375000000000000f,
- 0.19921875000000000000f, 0.25000000000000000000f,
- 0.31250000000000000000f, 0.35156250000000000000f,
- -0.44140625000000000000f, -0.39843750000000000000f,
- -0.32812500000000000000f, -0.26953125000000000000f,
- -0.21093750000000000000f, -0.16406250000000000000f,
- -0.10546875000000000000f, -0.05859374999999999300f,
- -0.00390625000000000000f, 0.05078125000000000700f,
- 0.10937500000000000000f, 0.16406250000000000000f,
- 0.22656250000000000000f, 0.28515625000000000000f,
- 0.35156250000000000000f, 0.41406250000000000000f,
- -0.44921875000000006000f, -0.40625000000000006000f,
- -0.35156250000000000000f, -0.29687500000000000000f,
- -0.24609375000000000000f, -0.19531250000000000000f,
- -0.13671875000000000000f, -0.08203125000000000000f,
- -0.03125000000000000000f, 0.02734375000000000000f,
- 0.08593749999999998600f, 0.14453125000000000000f,
- 0.20703125000000000000f, 0.27343750000000000000f,
- 0.34374999999999994000f, 0.41796875000000000000f,
- -0.42578124999999994000f, -0.38281250000000000000f,
- -0.32031250000000000000f, -0.25781250000000000000f,
- -0.19140625000000000000f, -0.13671875000000000000f,
- -0.07031250000000000000f, -0.00781250000000000000f,
- 0.05468750000000000000f, 0.11718749999999999000f,
- 0.17578125000000000000f, 0.22656250000000000000f,
- 0.28515625000000000000f, 0.33593750000000000000f,
- 0.39062500000000000000f, 0.44140625000000000000f,
- -0.41406250000000000000f, -0.37500000000000000000f,
- -0.32031250000000000000f, -0.26562500000000000000f,
- -0.20703125000000000000f, -0.15625000000000000000f,
- -0.09765625000000000000f, -0.03906250000000000000f,
- 0.01953125000000000000f, 0.07421875000000000000f,
- 0.13281250000000000000f, 0.19140625000000000000f,
- 0.25390625000000000000f, 0.31250000000000000000f,
- 0.37500000000000000000f, 0.42968750000000000000f,
- -0.46874999999999994000f, -0.44140625000000000000f,
- -0.38671875000000006000f, -0.33593750000000000000f,
- -0.28125000000000000000f, -0.23046875000000000000f,
- -0.19531250000000000000f, -0.14062500000000000000f,
- -0.02734375000000000000f, 0.03906250000000000000f,
- 0.10546875000000000000f, 0.17578125000000000000f,
- 0.23828125000000000000f, 0.30468750000000000000f,
- 0.36718750000000000000f, 0.42578124999999994000f,
- -0.45703125000000000000f, -0.42578124999999994000f,
- -0.37500000000000000000f, -0.32812500000000000000f,
- -0.28125000000000000000f, -0.22656250000000000000f,
- -0.18359375000000000000f, -0.12500000000000000000f,
- -0.07421875000000000000f, -0.00781250000000000000f,
- 0.08984375000000000000f, 0.15625000000000000000f,
- 0.22265625000000000000f, 0.29296875000000000000f,
- 0.35937500000000000000f, 0.42578124999999994000f,
- -0.46484375000000000000f, -0.43750000000000000000f,
- -0.38671875000000006000f, -0.33984375000000000000f,
- -0.30468750000000000000f, -0.25781250000000000000f,
- -0.16406250000000000000f, -0.07812500000000000000f,
- -0.02343750000000000000f, 0.04296874999999999300f,
- 0.10937500000000000000f, 0.17187499999999997000f,
- 0.23437499999999997000f, 0.30468750000000000000f,
- 0.36718750000000000000f, 0.42968750000000000000f,
- -0.42968750000000000000f, -0.37890625000000000000f,
- -0.30859375000000000000f, -0.24218750000000000000f,
- -0.17187499999999997000f, -0.10156250000000001000f,
- -0.03125000000000000000f, 0.03125000000000000000f,
- 0.08984375000000000000f, 0.14062500000000000000f,
- 0.19140625000000000000f, 0.23437499999999997000f,
- 0.28125000000000000000f, 0.32812500000000000000f,
- 0.37890625000000000000f, 0.43359375000000000000f,
- -0.42578124999999994000f, -0.36718750000000000000f,
- -0.28515625000000000000f, -0.21484375000000000000f,
- -0.14453125000000000000f, -0.08593749999999998600f,
- -0.03125000000000000000f, 0.00781250000000000000f,
- 0.05078125000000000700f, 0.09375000000000000000f,
- 0.14453125000000000000f, 0.19531250000000000000f,
- 0.25390625000000000000f, 0.30859375000000000000f,
- 0.37109375000000000000f, 0.42968750000000000000f,
- -0.44531250000000000000f, -0.39453125000000000000f,
- -0.32421875000000006000f, -0.26171875000000000000f,
- -0.18750000000000000000f, -0.12109375000000000000f,
- -0.05859374999999999300f, -0.00390625000000000000f,
- 0.03906250000000000000f, 0.08203125000000000000f,
- 0.13281250000000000000f, 0.19140625000000000000f,
- 0.25390625000000000000f, 0.31250000000000000000f,
- 0.37500000000000000000f, 0.43359375000000000000f,
- -0.46093750000000000000f, -0.43750000000000000000f,
- -0.39062500000000000000f, -0.35937500000000000000f,
- -0.31250000000000000000f, -0.19140625000000000000f,
- -0.13281250000000000000f, -0.07421875000000000000f,
- -0.02734375000000000000f, 0.03125000000000000000f,
- 0.10156250000000001000f, 0.16796875000000000000f,
- 0.23437499999999997000f, 0.30468750000000000000f,
- 0.36718750000000000000f, 0.42968750000000000000f,
- -0.46093750000000000000f, -0.43750000000000000000f,
- -0.39062500000000000000f, -0.30468750000000000000f,
- -0.23828125000000000000f, -0.19921875000000000000f,
- -0.14843750000000000000f, -0.10156250000000001000f,
- -0.02343750000000000000f, 0.02343750000000000000f,
- 0.07421875000000000000f, 0.12890625000000000000f,
- 0.20312500000000003000f, 0.28515625000000000000f,
- 0.36718750000000000000f, 0.42968750000000000000f,
- -0.45703125000000000000f, -0.42968750000000000000f,
- -0.36718750000000000000f, -0.30859375000000000000f,
- -0.26171875000000000000f, -0.21093750000000000000f,
- -0.16406250000000000000f, -0.10546875000000000000f,
- -0.06250000000000000000f, -0.02343750000000000000f,
- 0.03125000000000000000f, 0.13671875000000000000f,
- 0.22265625000000000000f, 0.29296875000000000000f,
- 0.35937500000000000000f, 0.42578124999999994000f,
- -0.44140625000000000000f, -0.35937500000000000000f,
- -0.27734375000000000000f, -0.22265625000000000000f,
- -0.17578125000000000000f, -0.13281250000000000000f,
- -0.08593749999999998600f, -0.03906250000000000000f,
- 0.01562500000000000000f, 0.06640625000000000000f,
- 0.12500000000000000000f, 0.17968750000000000000f,
- 0.24218750000000000000f, 0.30078125000000000000f,
- 0.36328124999999994000f, 0.41796875000000000000f,
- -0.46874999999999994000f, -0.42968750000000000000f,
- -0.35156250000000000000f, -0.27734375000000000000f,
- -0.21093750000000000000f, -0.14453125000000000000f,
- -0.06640625000000000000f, -0.00390625000000000000f,
- 0.06250000000000000000f, 0.12109375000000000000f,
- 0.17187499999999997000f, 0.21875000000000000000f,
- 0.27343750000000000000f, 0.32031250000000000000f,
- 0.37890625000000000000f, 0.43359375000000000000f,
- -0.42968750000000000000f, -0.39453125000000000000f,
- -0.34374999999999994000f, -0.31250000000000000000f,
- -0.26953125000000000000f, -0.19531250000000000000f,
- -0.11718749999999999000f, -0.05078125000000000700f,
- 0.00781250000000000000f, 0.06640625000000000000f,
- 0.12500000000000000000f, 0.18750000000000000000f,
- 0.25000000000000000000f, 0.31250000000000000000f,
- 0.37890625000000000000f, 0.43359375000000000000f,
- -0.46093750000000000000f, -0.43750000000000000000f,
- -0.39453125000000000000f, -0.33593750000000000000f,
- -0.21484375000000000000f, -0.16015625000000000000f,
- -0.11328125000000000000f, -0.06250000000000000000f,
- -0.01562500000000000000f, 0.03906250000000000000f,
- 0.11718749999999999000f, 0.16796875000000000000f,
- 0.21875000000000000000f, 0.28125000000000000000f,
- 0.35156250000000000000f, 0.41796875000000000000f,
- -0.43750000000000000000f, -0.40234375000000000000f,
- -0.34374999999999994000f, -0.28906250000000000000f,
- -0.23828125000000000000f, -0.19140625000000000000f,
- -0.14062500000000000000f, -0.09375000000000000000f,
- -0.03906250000000000000f, 0.01562500000000000000f,
- 0.06640625000000000000f, 0.11328125000000000000f,
- 0.16796875000000000000f, 0.22265625000000000000f,
- 0.28906250000000000000f, 0.39843750000000000000f,
- -0.46093750000000000000f, -0.41796875000000000000f,
- -0.32812500000000000000f, -0.26953125000000000000f,
- -0.20312500000000003000f, -0.13671875000000000000f,
- -0.06640625000000000000f, -0.01953125000000000000f,
- 0.03515625000000000000f, 0.07812500000000000000f,
- 0.13281250000000000000f, 0.17578125000000000000f,
- 0.23046875000000000000f, 0.26953125000000000000f,
- 0.32812500000000000000f, 0.36328124999999994000f,
- -0.41406250000000000000f, -0.37109375000000000000f,
- -0.30468750000000000000f, -0.24609375000000000000f,
- -0.18750000000000000000f, -0.14062500000000000000f,
- -0.09375000000000000000f, -0.05078125000000000700f,
- -0.00390625000000000000f, 0.03515625000000000000f,
- 0.08203125000000000000f, 0.12500000000000000000f,
- 0.17968750000000000000f, 0.23437499999999997000f,
- 0.29687500000000000000f, 0.35937500000000000000f,
- -0.45312500000000000000f, -0.39453125000000000000f,
- -0.33203125000000000000f, -0.26953125000000000000f,
- -0.21093750000000000000f, -0.14453125000000000000f,
- -0.08203125000000000000f, -0.02343750000000000000f,
- 0.04296874999999999300f, 0.09375000000000000000f,
- 0.15234375000000000000f, 0.20703125000000000000f,
- 0.29687500000000000000f, 0.36328124999999994000f,
- 0.40625000000000006000f, 0.43750000000000000000f,
- -0.44531250000000000000f, -0.40625000000000006000f,
- -0.33984375000000000000f, -0.28906250000000000000f,
- -0.23828125000000000000f, -0.19531250000000000000f,
- -0.15625000000000000000f, -0.11718749999999999000f,
- -0.07421875000000000000f, -0.03906250000000000000f,
- 0.01562500000000000000f, 0.05468750000000000000f,
- 0.14062500000000000000f, 0.26953125000000000000f,
- 0.34765625000000000000f, 0.42578124999999994000f,
- -0.43750000000000000000f, -0.38281250000000000000f,
- -0.33203125000000000000f, -0.28125000000000000000f,
- -0.21093750000000000000f, -0.13671875000000000000f,
- -0.08984375000000000000f, -0.04296874999999999300f,
- 0.01171875000000000000f, 0.07812500000000000000f,
- 0.14843750000000000000f, 0.21875000000000000000f,
- 0.26953125000000000000f, 0.31640625000000000000f,
- 0.35156250000000000000f, 0.42187500000000000000f,
- -0.45312500000000000000f, -0.39453125000000000000f,
- -0.32812500000000000000f, -0.27343750000000000000f,
- -0.21484375000000000000f, -0.15625000000000000000f,
- -0.09765625000000000000f, -0.03125000000000000000f,
- 0.04296874999999999300f, 0.11718749999999999000f,
- 0.16015625000000000000f, 0.19140625000000000000f,
- 0.24218750000000000000f, 0.32421875000000006000f,
- 0.41015625000000000000f, 0.45703125000000000000f,
- -0.44921875000000006000f, -0.38281250000000000000f,
- -0.32031250000000000000f, -0.23828125000000000000f,
- -0.18750000000000000000f, -0.15625000000000000000f,
- -0.11328125000000000000f, -0.05468750000000000000f,
- 0.02343750000000000000f, 0.08593749999999998600f,
- 0.15234375000000000000f, 0.20703125000000000000f,
- 0.26562500000000000000f, 0.32031250000000000000f,
- 0.37500000000000000000f, 0.42968750000000000000f,
- -0.44140625000000000000f, -0.37500000000000000000f,
- -0.29687500000000000000f, -0.26562500000000000000f,
- -0.23046875000000000000f, -0.17187499999999997000f,
- -0.08203125000000000000f, -0.03125000000000000000f,
- 0.01171875000000000000f, 0.05859374999999999300f,
- 0.12890625000000000000f, 0.19140625000000000000f,
- 0.25390625000000000000f, 0.31250000000000000000f,
- 0.37109375000000000000f, 0.42968750000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.02343750000000000000f,
- -0.02343750000000000000f, -0.01953125000000000000f,
- -0.01562500000000000000f, -0.01562500000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- -0.01562500000000000000f, -0.01953125000000000000f,
- -0.01953125000000000000f, -0.01562500000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.03515625000000000000f, 0.03125000000000000000f,
- 0.01953125000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.01953125000000000000f, -0.03125000000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.03125000000000000000f,
- 0.03515625000000000000f, 0.03125000000000000000f,
- 0.01953125000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.01562500000000000000f, 0.01953125000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.01953125000000000000f,
- -0.03125000000000000000f, -0.03125000000000000000f,
- -0.02343750000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00781250000000000000f,
- 0.01953125000000000000f, 0.01953125000000000000f,
- 0.01953125000000000000f, 0.03125000000000000000f,
- 0.03515625000000000000f, 0.02734375000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.02343750000000000000f, -0.02734375000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.01562500000000000000f, 0.02734375000000000000f,
- 0.01562500000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, -0.01953125000000000000f,
- -0.02734375000000000000f, 0.01953125000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.02734375000000000000f, -0.02343750000000000000f,
- -0.01953125000000000000f, -0.01171875000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01562500000000000000f,
- 0.01953125000000000000f, 0.01562500000000000000f,
- 0.00390625000000000000f, -0.01171875000000000000f,
- -0.02343750000000000000f, -0.02734375000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- -0.02343750000000000000f, -0.03515625000000000000f,
- -0.01562500000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01953125000000000000f, -0.02734375000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.01171875000000000000f,
- 0.01562500000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- -0.01562500000000000000f, -0.01171875000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.01171875000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- -0.01562500000000000000f, -0.02343750000000000000f,
- -0.01562500000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.01953125000000000000f,
- -0.02734375000000000000f, -0.01953125000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.01562500000000000000f, -0.02734375000000000000f,
- 0.01953125000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.01171875000000000000f,
- -0.02734375000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.01562500000000000000f, 0.02343750000000000000f,
- 0.02343750000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.01562500000000000000f, -0.01562500000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, -0.01562500000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.01171875000000000000f,
- 0.01562500000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01953125000000000000f,
- -0.01562500000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- -0.01562500000000000000f, 0.00390625000000000000f,
- 0.01562500000000000000f, 0.01562500000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01953125000000000000f, 0.01562500000000000000f,
- -0.00390625000000000000f, -0.01953125000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.01562500000000000000f,
- -0.02734375000000000000f, 0.01953125000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.01171875000000000000f, -0.01171875000000000000f,
- 0.02343750000000000000f, 0.01953125000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, -0.01562500000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- 0.01562500000000000000f, 0.00000000000000000000f,
- -0.01562500000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.01562500000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.01171875000000000000f,
- -0.00781250000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, -0.01953125000000000000f,
- 0.01562500000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00781250000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.01953125000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.01953125000000000000f,
- 0.01171875000000000000f, -0.00781250000000000000f,
- -0.01562500000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.01953125000000000000f,
- 0.01171875000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.01562500000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.01562500000000000000f, 0.00781250000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00781250000000000000f,
- -0.00781250000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00781250000000000000f,
- -0.01171875000000000000f, 0.00781250000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- -0.01562500000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.01171875000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.01171875000000000000f,
- 0.00781250000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01171875000000000000f, -0.01562500000000000000f,
- 0.01953125000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.01171875000000000000f,
- 0.01171875000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00781250000000000000f, -0.00781250000000000000f,
- 0.00781250000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, 0.01562500000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.01953125000000000000f, 0.01171875000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00781250000000000000f, -0.01171875000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.01562500000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.01562500000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00781250000000000000f, -0.01562500000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- -0.00781250000000000000f, 0.01171875000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00390625000000000000f, -0.00781250000000000000f,
- 0.00000000000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.01171875000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- -0.00781250000000000000f, 0.01171875000000000000f,
- -0.00390625000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00390625000000000000f, 0.00781250000000000000f,
- -0.01562500000000000000f, -0.00390625000000000000f,
- -0.00781250000000000000f, -0.00390625000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- -0.00390625000000000000f, 0.00390625000000000000f,
- 0.00000000000000000000f, 0.00390625000000000000f,
- 0.00390625000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f,
- 0.00000000000000000000f, 0.00000000000000000000f
-};
-
-const SKP_Silk_NLSF_CBS_FLP SKP_Silk_NLSF_CB1_16_Stage_info_FLP[ NLSF_MSVQ_CB1_16_STAGES ] =
-{
- { 32, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 0 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 0 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 32 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 32 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 40 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 40 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 48 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 48 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 56 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 56 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 64 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 64 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 72 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 72 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 80 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 80 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 88 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 88 ] },
- { 8, &SKP_Silk_NLSF_MSVQ_CB1_16[ 16 * 96 ], &SKP_Silk_NLSF_MSVQ_CB1_16_rates[ 96 ] }
-};
-
-const SKP_Silk_NLSF_CB_FLP SKP_Silk_NLSF_CB1_16_FLP =
-{
- NLSF_MSVQ_CB1_16_STAGES,
- SKP_Silk_NLSF_CB1_16_Stage_info_FLP,
- SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min,
- SKP_Silk_NLSF_MSVQ_CB1_16_CDF,
- SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx
-};
-
--- a/src_FLP/SKP_Silk_tables_other_FLP.c
+++ /dev/null
@@ -1,35 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-#include "SKP_Silk_structs_FLP.h"
-#include "SKP_Silk_tables_FLP.h"
-
-const SKP_float SKP_Silk_HarmShapeFIR_FLP[ HARM_SHAPE_FIR_TAPS ] = { 16384.0f / 65536.0f, 32767.0f / 65536.0f, 16384.0f / 65536.0f };
-
-const SKP_float SKP_Silk_Quantization_Offsets[ 2 ][ 2 ] = {
- { OFFSET_VL_Q10 / 1024.0f, OFFSET_VH_Q10 / 1024.0f }, { OFFSET_UVL_Q10 / 1024.0f, OFFSET_UVH_Q10 / 1024.0f }
-};
--- a/src_FLP/SKP_Silk_wrappers_FLP.c
+++ b/src_FLP/SKP_Silk_wrappers_FLP.c
@@ -76,7 +76,7 @@
/* LSF stabilizer, for a single input data vector */
void SKP_Silk_NLSF_stabilize_FLP(
SKP_float *pNLSF, /* I/O (Un)stable NLSF vector [ LPC_order ] */
- const SKP_float *pNDelta_min, /* I Normalized delta min vector[LPC_order+1]*/
+ const SKP_int *pNDelta_min_Q15, /* I Normalized delta min vector[LPC_order+1]*/
const SKP_int LPC_order /* I LPC order */
)
{
@@ -84,10 +84,10 @@
SKP_int NLSF_Q15[ MAX_LPC_ORDER ], ndelta_min_Q15[ MAX_LPC_ORDER + 1 ];
for( i = 0; i < LPC_order; i++ ) {
- NLSF_Q15[ i ] = ( SKP_int )SKP_float2int( pNLSF[ i ] * 32768.0f );
- ndelta_min_Q15[ i ] = ( SKP_int )SKP_float2int( pNDelta_min[ i ] * 32768.0f );
+ NLSF_Q15[ i ] = ( SKP_int )SKP_float2int( pNLSF[ i ] * 32768.0f );
+ ndelta_min_Q15[ i ] = ( SKP_int )SKP_float2int( pNDelta_min_Q15[ i ] );
}
- ndelta_min_Q15[ LPC_order ] = ( SKP_int )SKP_float2int( pNDelta_min[ LPC_order ] * 32768.0f );
+ ndelta_min_Q15[ LPC_order ] = ( SKP_int )SKP_float2int( pNDelta_min_Q15[ LPC_order ] );
/* NLSF stabilizer, for a single input data vector */
SKP_Silk_NLSF_stabilize( NLSF_Q15, ndelta_min_Q15, LPC_order );
@@ -241,5 +241,36 @@
x_16, q, psEncCtrl->sCmn.NLSFInterpCoef_Q2, PredCoef_Q12[ 0 ], LTPCoef_Q14, AR2_Q13,
HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, Lambda_Q10, LTP_scale_Q14 );
}
+ }
+}
+
+/***********************************************/
+/* Floating-point Silk LTP quantiation wrapper */
+/***********************************************/
+void SKP_Silk_quant_LTP_gains_FLP(
+ SKP_float B[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (Un-)quantized LTP gains */
+ SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Codebook index */
+ SKP_int *periodicity_index, /* O Periodicity index */
+ const SKP_float W[ MAX_NB_SUBFR * LTP_ORDER * LTP_ORDER ], /* I Error weights */
+ const SKP_int mu_Q10, /* I Mu value (R/D tradeoff) */
+ const SKP_int lowComplexity, /* I Flag for low complexity */
+ const SKP_int nb_subfr /* I number of subframes */
+)
+{
+ SKP_int i;
+ SKP_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ];
+ SKP_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ];
+
+ for( i = 0; i < MAX_NB_SUBFR * LTP_ORDER; i++ ) {
+ B_Q14[ i ] = (SKP_int16)SKP_float2int( B[ i ] * 16384.0f );
+ }
+ for( i = 0; i < MAX_NB_SUBFR * LTP_ORDER * LTP_ORDER; i++ ) {
+ W_Q18[ i ] = (SKP_int32)SKP_float2int( W[ i ] * 262144.0f );
+ }
+
+ SKP_Silk_quant_LTP_gains( B_Q14, cbk_index, periodicity_index, W_Q18, mu_Q10, lowComplexity, nb_subfr );
+
+ for( i = 0; i < MAX_NB_SUBFR * LTP_ORDER; i++ ) {
+ B[ i ] = ( (SKP_float)B_Q14[ i ] ) / 16384.0f;
}
}
--- a/src_FLP/Silk_FLP.vcproj
+++ /dev/null
@@ -1,328 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="Silk_FLP"
- ProjectGUID="{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"
- RootNamespace="Silk"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_common;../src_SigProc_FLP;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;HAVE_CONFIG_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_FLP_Win32_debug.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_common;../src_SigProc_FLP;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;HAVE_CONFIG_H"
- GeneratePreprocessedFile="0"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_FLP_Win32_mt.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\SKP_Silk_apply_sine_window_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_control_codec_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_corrMatrix_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_encode_frame_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_LPC_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_LTP_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_pitch_lags_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_find_pred_coefs_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_HP_variable_cutoff_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_init_encoder_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LPC_analysis_filter_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LTP_analysis_filter_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LTP_scale_ctrl_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_MSVQ_decode_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_MSVQ_encode_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_VQ_rate_distortion_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_VQ_sum_error_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_noise_shape_analysis_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_prefilter_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_process_gains_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_process_NLSFs_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_quant_LTP_gains_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_regularize_correlations_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_residual_energy_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_solve_LS_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB0_10_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB0_16_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB1_10_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB1_16_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_other_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_VQ_nearest_neighbor_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_warped_autocorrelation_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_wrappers_FLP.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\SKP_Silk_assembler_FLP.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_define_FLP.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_main_FLP.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_perceptual_parameters_FLP.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_structs_FLP.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_FLP.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- /dev/null
+++ b/src_FLP/src_FLP.vcxproj
@@ -1,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>src_FLP</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface;../src_SigProc_FLP;../src_SigProc_FIX;../src_common;../../celt/libcelt</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface;../src_SigProc_FLP;../src_SigProc_FIX;../src_common;../../celt/libcelt</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_assembler_FLP.h" />
+ <ClInclude Include="SKP_Silk_main_FLP.h" />
+ <ClInclude Include="SKP_Silk_structs_FLP.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_apply_sine_window_FLP.c" />
+ <ClCompile Include="SKP_Silk_control_codec_FLP.c" />
+ <ClCompile Include="SKP_Silk_corrMatrix_FLP.c" />
+ <ClCompile Include="SKP_Silk_encode_frame_FLP.c" />
+ <ClCompile Include="SKP_Silk_find_LPC_FLP.c" />
+ <ClCompile Include="SKP_Silk_find_LTP_FLP.c" />
+ <ClCompile Include="SKP_Silk_find_pitch_lags_FLP.c" />
+ <ClCompile Include="SKP_Silk_find_pred_coefs_FLP.c" />
+ <ClCompile Include="SKP_Silk_HP_variable_cutoff_FLP.c" />
+ <ClCompile Include="SKP_Silk_init_encoder_FLP.c" />
+ <ClCompile Include="SKP_Silk_LPC_analysis_filter_FLP.c" />
+ <ClCompile Include="SKP_Silk_LTP_analysis_filter_FLP.c" />
+ <ClCompile Include="SKP_Silk_LTP_scale_ctrl_FLP.c" />
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_decode_FLP.c" />
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_encode_FLP.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_rate_distortion_FLP.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_sum_error_FLP.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_weights_laroia_FLP.c" />
+ <ClCompile Include="SKP_Silk_noise_shape_analysis_FLP.c" />
+ <ClCompile Include="SKP_Silk_prefilter_FLP.c" />
+ <ClCompile Include="SKP_Silk_process_gains_FLP.c" />
+ <ClCompile Include="SKP_Silk_process_NLSFs_FLP.c" />
+ <ClCompile Include="SKP_Silk_regularize_correlations_FLP.c" />
+ <ClCompile Include="SKP_Silk_residual_energy_FLP.c" />
+ <ClCompile Include="SKP_Silk_solve_LS_FLP.c" />
+ <ClCompile Include="SKP_Silk_warped_autocorrelation_FLP.c" />
+ <ClCompile Include="SKP_Silk_wrappers_FLP.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/src_FLP/src_FLP.vcxproj.filters
@@ -1,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_assembler_FLP.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_main_FLP.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_structs_FLP.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_apply_sine_window_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_control_codec_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_corrMatrix_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_encode_frame_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_LPC_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_LTP_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_pitch_lags_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_find_pred_coefs_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_HP_variable_cutoff_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_init_encoder_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LPC_analysis_filter_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LTP_analysis_filter_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LTP_scale_ctrl_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_decode_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_encode_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_rate_distortion_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_sum_error_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_weights_laroia_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_noise_shape_analysis_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_prefilter_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_process_gains_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_process_NLSFs_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_regularize_correlations_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_residual_energy_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_solve_LS_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_warped_autocorrelation_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_wrappers_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- a/src_SigProc_FIX/SKP_Silk_NLSF2A.c
+++ b/src_SigProc_FIX/SKP_Silk_NLSF2A.c
@@ -72,7 +72,7 @@
SKP_int32 a_int32[SKP_Silk_MAX_ORDER_LPC];
SKP_int32 maxabs, absval, idx=0, sc_Q16;
- SKP_assert(LSF_COS_TAB_SZ_FIX == 128);
+ SKP_assert( LSF_COS_TAB_SZ_FIX == 128 );
/* convert LSFs to 2*cos(LSF(i)), using piecewise linear curve from table */
for( k = 0; k < d; k++ ) {
--- a/src_SigProc_FIX/SKP_Silk_NLSF_stabilize.c
+++ b/src_SigProc_FIX/SKP_Silk_NLSF_stabilize.c
@@ -45,10 +45,10 @@
const SKP_int L /* I: Number of NLSF parameters in the input vector */
)
{
- SKP_int center_freq_Q15, diff_Q15, min_center_Q15, max_center_Q15;
- SKP_int32 min_diff_Q15;
- SKP_int loops;
- SKP_int i, I=0, k;
+ SKP_int center_freq_Q15, diff_Q15, min_center_Q15, max_center_Q15;
+ SKP_int32 min_diff_Q15;
+ SKP_int loops;
+ SKP_int i, I=0, k;
/* This is necessary to ensure an output within range of a SKP_int16 */
SKP_assert( NDeltaMin_Q15[L] >= 1 );
--- a/src_SigProc_FIX/SKP_Silk_biquad.c
+++ b/src_SigProc_FIX/SKP_Silk_biquad.c
@@ -48,7 +48,7 @@
)
{
SKP_int k, in16;
- SKP_int32 A0_neg, A1_neg, S0, S1, out32, tmp32;
+ SKP_int32 A0_neg, A1_neg, S0, S1, out32;
S0 = S[ 0 ];
S1 = S[ 1 ];
@@ -64,8 +64,7 @@
S1 = SKP_LSHIFT( SKP_SMULWB( out32, A1_neg ), 3 );
S1 = SKP_SMLABB( S1, in16, B[ 2 ] );
- tmp32 = SKP_RSHIFT_ROUND( out32, 13 ) + 1;
- out[ k ] = (SKP_int16)SKP_SAT16( tmp32 );
+ out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( out32, 13 ) );
}
S[ 0 ] = S0;
S[ 1 ] = S1;
--- a/src_SigProc_FIX/SKP_Silk_biquad_alt.c
+++ b/src_SigProc_FIX/SKP_Silk_biquad_alt.c
@@ -39,7 +39,7 @@
const SKP_int16 *in, /* I: Input signal */
const SKP_int32 *B_Q28, /* I: MA coefficients [3] */
const SKP_int32 *A_Q28, /* I: AR coefficients [2] */
- SKP_int32 *S, /* I/O: State vector [2] */
+ SKP_int32 *S, /* I/O: State vector [2] */
SKP_int16 *out, /* O: Output signal */
const SKP_int32 len /* I: Signal length (must be even) */
)
@@ -59,15 +59,15 @@
inval = in[ k ];
out32_Q14 = SKP_LSHIFT( SKP_SMLAWB( S[ 0 ], B_Q28[ 0 ], inval ), 2 );
- S[ 0 ] = S[1] + SKP_RSHIFT( SKP_SMULWB( out32_Q14, A0_L_Q28 ), 14 );
+ S[ 0 ] = S[1] + SKP_RSHIFT_ROUND( SKP_SMULWB( out32_Q14, A0_L_Q28 ), 14 );
S[ 0 ] = SKP_SMLAWB( S[ 0 ], out32_Q14, A0_U_Q28 );
S[ 0 ] = SKP_SMLAWB( S[ 0 ], B_Q28[ 1 ], inval);
- S[ 1 ] = SKP_RSHIFT( SKP_SMULWB( out32_Q14, A1_L_Q28 ), 14 );
+ S[ 1 ] = SKP_RSHIFT_ROUND( SKP_SMULWB( out32_Q14, A1_L_Q28 ), 14 );
S[ 1 ] = SKP_SMLAWB( S[ 1 ], out32_Q14, A1_U_Q28 );
S[ 1 ] = SKP_SMLAWB( S[ 1 ], B_Q28[ 2 ], inval );
/* Scale back to Q0 and saturate */
- out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT( out32_Q14, 14 ) + 2 );
+ out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT( out32_Q14 + (1<<14) - 1, 14 ) );
}
}
--- a/src_SigProc_FIX/SKP_Silk_common_pitch_est_defines.h
+++ b/src_SigProc_FIX/SKP_Silk_common_pitch_est_defines.h
@@ -47,7 +47,7 @@
#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_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_MAX_LAG (PE_MAX_LAG_MS * PE_MAX_FS_KHZ)
#define PE_MIN_LAG (PE_MIN_LAG_MS * PE_MAX_FS_KHZ)
@@ -71,11 +71,14 @@
#define PE_NB_CBKS_STAGE3_10MS 12
#define PE_NB_CBKS_STAGE2_10MS 3
+#define PE_SHORTLAG_BIAS 0.2f /* for logarithmic weighting */
+#define PE_PREVLAG_BIAS 0.2f /* for logarithmic weighting */
+#define PE_FLATCONTOUR_BIAS 0.05f
+
extern const SKP_int8 SKP_Silk_CB_lags_stage2[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE2_EXT ];
extern const SKP_int8 SKP_Silk_CB_lags_stage3[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE3_MAX ];
extern const SKP_int8 SKP_Silk_Lag_range_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ] [ PE_MAX_NB_SUBFR ][ 2 ];
extern const SKP_int8 SKP_Silk_nb_cbk_searchs_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ];
-extern const SKP_int8 SKP_Silk_cbk_offsets_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ];
/* Tables added for 10 ms frames */
extern const SKP_int8 SKP_Silk_CB_lags_stage2_10_ms[ PE_MAX_NB_SUBFR >> 1][ 3 ];
--- a/src_SigProc_FIX/SKP_Silk_debug.c
+++ b/src_SigProc_FIX/SKP_Silk_debug.c
@@ -167,3 +167,9 @@
#endif
#endif /* SKP_TIC_TOC */
+
+#if SKP_DEBUG
+FILE *SKP_debug_store_fp[ SKP_NUM_STORES_MAX ];
+int SKP_debug_store_count = 0;
+#endif /* SKP_DEBUG */
+
--- a/src_SigProc_FIX/SKP_Silk_pitch_analysis_core.c
+++ b/src_SigProc_FIX/SKP_Silk_pitch_analysis_core.c
@@ -98,8 +98,8 @@
SKP_int sf_length, sf_length_8kHz, sf_length_4kHz;
SKP_int min_lag, min_lag_8kHz, min_lag_4kHz;
SKP_int max_lag, max_lag_8kHz, max_lag_4kHz;
- SKP_int32 contour_bias, diff, lz, lshift;
- SKP_int cbk_offset, nb_cbk_search, cbk_size;
+ SKP_int32 contour_bias_Q20, diff, lz, lshift;
+ SKP_int nb_cbk_search, cbk_size;
SKP_int32 delta_lag_log2_sqr_Q7, lag_log2_Q7, prevLag_log2_Q7, prev_lag_bias_Q15, corr_thres_Q15;
const SKP_int8 *Lag_CB_ptr;
/* Check for valid sampling frequency */
@@ -122,9 +122,9 @@
min_lag = PE_MIN_LAG_MS * Fs_kHz;
min_lag_4kHz = PE_MIN_LAG_MS * 4;
min_lag_8kHz = PE_MIN_LAG_MS * 8;
- max_lag = PE_MAX_LAG_MS * Fs_kHz;
+ max_lag = PE_MAX_LAG_MS * Fs_kHz - 1;
max_lag_4kHz = PE_MAX_LAG_MS * 4;
- max_lag_8kHz = PE_MAX_LAG_MS * 8;
+ max_lag_8kHz = PE_MAX_LAG_MS * 8 - 1;
SKP_memset( C, 0, sizeof( SKP_int16 ) * nb_subfr * ( ( PE_MAX_LAG >> 1 ) + 5) );
@@ -391,7 +391,7 @@
nb_cbk_search = PE_NB_CBKS_STAGE2;
}
corr_thres_Q15 = SKP_RSHIFT( SKP_SMULBB( search_thres2_Q15, search_thres2_Q15 ), 13 );
- }else{
+ } else {
cbk_size = PE_NB_CBKS_STAGE2_10MS;
Lag_CB_ptr = &SKP_Silk_CB_lags_stage2_10_ms[ 0 ][ 0 ];
nb_cbk_search = PE_NB_CBKS_STAGE2_10MS;
@@ -420,16 +420,16 @@
/* Bias towards shorter lags */
lag_log2_Q7 = SKP_Silk_lin2log( (SKP_int32)d ); /* Q7 */
SKP_assert( lag_log2_Q7 == SKP_SAT16( lag_log2_Q7 ) );
- SKP_assert( nb_subfr * PE_SHORTLAG_BIAS_Q15 == SKP_SAT16( nb_subfr * PE_SHORTLAG_BIAS_Q15 ) );
- CCmax_new_b = CCmax_new - SKP_RSHIFT( SKP_SMULBB( nb_subfr * PE_SHORTLAG_BIAS_Q15, lag_log2_Q7 ), 7 ); /* Q15 */
+ SKP_assert( nb_subfr * SKP_FIX_CONST( PE_SHORTLAG_BIAS, 15 ) == SKP_SAT16( nb_subfr * SKP_FIX_CONST( PE_SHORTLAG_BIAS, 15 ) ) );
+ CCmax_new_b = CCmax_new - SKP_RSHIFT( SKP_SMULBB( nb_subfr * SKP_FIX_CONST( PE_SHORTLAG_BIAS, 15 ), lag_log2_Q7 ), 7 ); /* Q15 */
/* Bias towards previous lag */
- SKP_assert( nb_subfr * PE_PREVLAG_BIAS_Q15 == SKP_SAT16( nb_subfr * PE_PREVLAG_BIAS_Q15 ) );
+ SKP_assert( nb_subfr * SKP_FIX_CONST( PE_PREVLAG_BIAS, 15 ) == SKP_SAT16( nb_subfr * SKP_FIX_CONST( PE_PREVLAG_BIAS, 15 ) ) );
if( prevLag > 0 ) {
delta_lag_log2_sqr_Q7 = lag_log2_Q7 - prevLag_log2_Q7;
SKP_assert( delta_lag_log2_sqr_Q7 == SKP_SAT16( delta_lag_log2_sqr_Q7 ) );
delta_lag_log2_sqr_Q7 = SKP_RSHIFT( SKP_SMULBB( delta_lag_log2_sqr_Q7, delta_lag_log2_sqr_Q7 ), 7 );
- prev_lag_bias_Q15 = SKP_RSHIFT( SKP_SMULBB( nb_subfr * PE_PREVLAG_BIAS_Q15, ( *LTPCorr_Q15 ) ), 15 ); /* Q15 */
+ prev_lag_bias_Q15 = SKP_RSHIFT( SKP_SMULBB( nb_subfr * SKP_FIX_CONST( PE_PREVLAG_BIAS, 15 ), *LTPCorr_Q15 ), 15 ); /* Q15 */
prev_lag_bias_Q15 = SKP_DIV32( SKP_MUL( prev_lag_bias_Q15, delta_lag_log2_sqr_Q7 ), delta_lag_log2_sqr_Q7 + ( 1 << 6 ) );
CCmax_new_b -= prev_lag_bias_Q15; /* Q15 */
}
@@ -505,22 +505,20 @@
lag_counter = 0;
SKP_assert( lag == SKP_SAT16( lag ) );
- contour_bias = SKP_DIV32_16( PE_FLATCONTOUR_BIAS_Q20, lag );
+ contour_bias_Q20 = SKP_DIV32_16( SKP_FIX_CONST( PE_FLATCONTOUR_BIAS, 20 ), lag );
/* Setup cbk parameters acording to complexity setting and frame length */
if( nb_subfr == PE_MAX_NB_SUBFR ) {
- nb_cbk_search = (SKP_int)SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
+ nb_cbk_search = (SKP_int)SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
cbk_size = PE_NB_CBKS_STAGE3_MAX;
- cbk_offset = (SKP_int)SKP_Silk_cbk_offsets_stage3[ complexity ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
} else {
nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
cbk_size = PE_NB_CBKS_STAGE3_10MS;
- cbk_offset = 0;
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
}
for( d = start_lag; d <= end_lag; d++ ) {
- for( j = cbk_offset; j < ( cbk_offset + nb_cbk_search ); j++ ) {
+ for( j = 0; j < nb_cbk_search; j++ ) {
cross_corr = 0;
energy = 0;
for( k = 0; k < nb_subfr; k++ ) {
@@ -544,9 +542,7 @@
CCmax_new = SKP_LSHIFT( CCmax_new, 3 );
}
/* Reduce depending on flatness of contour */
- diff = j - SKP_RSHIFT( cbk_size, 1 );
- diff = SKP_MUL( diff, diff );
- diff = SKP_int16_MAX - SKP_RSHIFT( SKP_MUL( contour_bias, diff ), 5 ); /* Q20 -> Q15 */
+ diff = SKP_int16_MAX - SKP_RSHIFT( SKP_MUL( contour_bias_Q20, j ), 5 ); /* Q20 -> Q15 */
SKP_assert( diff == SKP_SAT16( diff ) );
CCmax_new = SKP_LSHIFT( SKP_SMULWB( CCmax_new, diff ), 1 );
} else {
@@ -554,7 +550,7 @@
}
if( CCmax_new > CCmax &&
- ( d + (SKP_int)SKP_Silk_CB_lags_stage3[ 0 ][ j ] ) <= max_lag
+ ( d + SKP_Silk_CB_lags_stage3[ 0 ][ j ] ) <= max_lag
) {
CCmax = CCmax_new;
lag_new = d;
@@ -600,7 +596,7 @@
const SKP_int16 *target_ptr, *basis_ptr;
SKP_int32 cross_corr;
SKP_int i, j, k, lag_counter, lag_low, lag_high;
- SKP_int cbk_offset, nb_cbk_search, delta, idx, cbk_size;
+ SKP_int nb_cbk_search, delta, idx, cbk_size;
SKP_int32 scratch_mem[ SCRATCH_SIZE ];
const SKP_int8 *Lag_range_ptr, *Lag_CB_ptr;
@@ -610,14 +606,12 @@
if( nb_subfr == PE_MAX_NB_SUBFR ){
Lag_range_ptr = &SKP_Silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
- cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
- nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
+ nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
cbk_size = PE_NB_CBKS_STAGE3_MAX;
} else {
SKP_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1);
Lag_range_ptr = &SKP_Silk_Lag_range_stage3_10_ms[ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
- cbk_offset = 0;
nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
cbk_size = PE_NB_CBKS_STAGE3_10MS;
}
@@ -638,7 +632,7 @@
}
delta = matrix_ptr( Lag_range_ptr, k, 0, 2 );
- for( i = cbk_offset; i < ( cbk_offset + nb_cbk_search ); i++ ) {
+ for( i = 0; i < nb_cbk_search; i++ ) {
/* Fill out the 3 dim array that stores the correlations for */
/* each code_book vector for each start lag */
idx = matrix_ptr( Lag_CB_ptr, k, i, cbk_size ) - delta;
@@ -668,7 +662,7 @@
const SKP_int16 *target_ptr, *basis_ptr;
SKP_int32 energy;
SKP_int k, i, j, lag_counter;
- SKP_int cbk_offset, nb_cbk_search, delta, idx, cbk_size, lag_diff;
+ SKP_int nb_cbk_search, delta, idx, cbk_size, lag_diff;
SKP_int32 scratch_mem[ SCRATCH_SIZE ];
const SKP_int8 *Lag_range_ptr, *Lag_CB_ptr;
@@ -678,14 +672,12 @@
if( nb_subfr == PE_MAX_NB_SUBFR ){
Lag_range_ptr = &SKP_Silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
- cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
- nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
+ nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
cbk_size = PE_NB_CBKS_STAGE3_MAX;
} else {
SKP_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1);
Lag_range_ptr = &SKP_Silk_Lag_range_stage3_10_ms[ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
- cbk_offset = 0;
nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
cbk_size = PE_NB_CBKS_STAGE3_10MS;
}
@@ -715,7 +707,7 @@
}
delta = matrix_ptr( Lag_range_ptr, k, 0, 2 );
- for( i = cbk_offset; i < ( cbk_offset + nb_cbk_search ); i++ ) {
+ for( i = 0; i < nb_cbk_search; i++ ) {
/* Fill out the 3 dim array that stores the correlations for */
/* each code_book vector for each start lag */
idx = matrix_ptr( Lag_CB_ptr, k, i, cbk_size ) - delta;
--- a/src_SigProc_FIX/SKP_Silk_pitch_est_defines.h
+++ b/src_SigProc_FIX/SKP_Silk_pitch_est_defines.h
@@ -29,15 +29,61 @@
#define SKP_SILK_PE_DEFINES_H
#include "SKP_Silk_SigProc_FIX.h"
-#include "SKP_Silk_common_pitch_est_defines.h"
/************************************************************/
/* Definitions For Fix pitch estimator */
/************************************************************/
-#define PE_SHORTLAG_BIAS_Q15 6554 /* 0.2f. for logarithmic weighting */
-#define PE_PREVLAG_BIAS_Q15 6554 /* Prev lag bias */
-#define PE_FLATCONTOUR_BIAS_Q20 52429 /* 0.05f */
+#define PE_MAX_FS_KHZ 24 /* Maximum sampling frequency used */
+
+#define PE_MAX_NB_SUBFR 4
+#define PE_SUBFR_LENGTH_MS 5 /* 5 ms */
+
+#define PE_LTP_MEM_LENGTH_MS (4 * PE_SUBFR_LENGTH_MS)
+
+#define PE_MAX_FRAME_LENGTH_MS (PE_LTP_MEM_LENGTH_MS + PE_MAX_NB_SUBFR * PE_SUBFR_LENGTH_MS)
+#define PE_MAX_FRAME_LENGTH (PE_MAX_FRAME_LENGTH_MS * PE_MAX_FS_KHZ)
+#define PE_MAX_FRAME_LENGTH_ST_1 (PE_MAX_FRAME_LENGTH >> 2)
+#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_LAG_MS 18 /* 18 ms -> 56 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_MIN_LAG (PE_MIN_LAG_MS * PE_MAX_FS_KHZ)
+
+#define PE_D_SRCH_LENGTH 24
+
+#define PE_MAX_DECIMATE_STATE_LENGTH 7
+
+#define PE_NB_STAGE3_LAGS 5
+
+#define PE_NB_CBKS_STAGE2 3
+#define PE_NB_CBKS_STAGE2_EXT 11
+
+#define PE_CB_mn2 1
+#define PE_CB_mx2 2
+
+#define PE_NB_CBKS_STAGE3_MAX 34
+#define PE_NB_CBKS_STAGE3_MID 24
+#define PE_NB_CBKS_STAGE3_MIN 16
+
+#define PE_NB_CBKS_STAGE3_10MS 12
+#define PE_NB_CBKS_STAGE2_10MS 3
+
+#define PE_SHORTLAG_BIAS 0.2f /* for logarithmic weighting */
+#define PE_PREVLAG_BIAS 0.2f /* for logarithmic weighting */
+#define PE_FLATCONTOUR_BIAS 0.05f
+
+extern const SKP_int8 SKP_Silk_CB_lags_stage2[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE2_EXT ];
+extern const SKP_int8 SKP_Silk_CB_lags_stage3[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE3_MAX ];
+extern const SKP_int8 SKP_Silk_Lag_range_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ] [ PE_MAX_NB_SUBFR ][ 2 ];
+extern const SKP_int8 SKP_Silk_nb_cbk_searchs_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ];
+
+/* Tables added for 10 ms frames */
+extern const SKP_int8 SKP_Silk_CB_lags_stage2_10_ms[ PE_MAX_NB_SUBFR >> 1][ 3 ];
+extern const SKP_int8 SKP_Silk_CB_lags_stage3_10_ms[ PE_MAX_NB_SUBFR >> 1 ][ 12 ];
+extern const SKP_int8 SKP_Silk_Lag_range_stage3_10_ms[ PE_MAX_NB_SUBFR >> 1 ][ 2 ];
#endif
--- a/src_SigProc_FIX/SKP_Silk_pitch_est_tables.c
+++ b/src_SigProc_FIX/SKP_Silk_pitch_est_tables.c
@@ -36,8 +36,8 @@
const SKP_int8 SKP_Silk_CB_lags_stage3_10_ms[ PE_MAX_NB_SUBFR >> 1 ][ PE_NB_CBKS_STAGE3_10MS ] =
{
- {-3,-2,-2,-1,-1, 0, 0, 1, 1, 2, 2, 3},
- { 3, 3, 2, 2, 1, 1, 0, 0,-1,-1,-2,-2}
+ { 0, 0, 1,-1, 1,-1, 2,-2, 2,-2, 3,-3},
+ { 0, 1, 0, 1,-1, 2,-1, 2,-2, 3,-2, 3}
};
const SKP_int8 SKP_Silk_Lag_range_stage3_10_ms[ PE_MAX_NB_SUBFR >> 1 ][ 2 ] =
@@ -46,10 +46,6 @@
{-2, 7}
};
-/********************************************************/
-/* Auto Generated File from generate_pitch_est_tables.m */
-/********************************************************/
-
const SKP_int8 SKP_Silk_CB_lags_stage2[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE2_EXT ] =
{
{0, 2,-1,-1,-1, 0, 0, 1, 1, 0, 1},
@@ -60,27 +56,27 @@
const SKP_int8 SKP_Silk_CB_lags_stage3[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE3_MAX ] =
{
- {-9,-7,-6,-5,-5,-4,-4,-3,-3,-2,-2,-2,-1,-1,-1, 0, 0, 0, 1, 1, 0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 5, 6, 8},
- {-3,-2,-2,-2,-1,-1,-1,-1,-1, 0, 0,-1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 2, 1, 2, 2, 2, 2, 3},
- { 3, 3, 2, 2, 2, 2, 1, 2, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,-1, 0, 0,-1,-1,-1,-1,-1,-2,-2,-2},
- { 9, 8, 6, 5, 6, 5, 4, 4, 3, 3, 2, 2, 2, 1, 0, 1, 1, 0, 0, 0,-1,-1,-1,-2,-2,-2,-3,-3,-4,-4,-5,-5,-6,-7}
- };
+ {0, 0, 1,-1, 0, 1,-1, 0,-1, 1,-2, 2,-2,-2, 2,-3, 2, 3,-3,-4, 3,-4, 4, 4,-5, 5,-6,-5, 6,-7, 6, 5, 8,-9},
+ {0, 0, 1, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 0, 1,-1, 0, 1,-1,-1, 1,-1, 2, 1,-1, 2,-2,-2, 2,-2, 2, 2, 3,-3},
+ {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1,-1, 1, 0, 0, 2, 1,-1, 2,-1,-1, 2,-1, 2, 2,-1, 3,-2,-2,-2, 3},
+ {0, 1, 0, 0, 1, 0, 1,-1, 2,-1, 2,-1, 2, 3,-2, 3,-2,-2, 4, 4,-3, 5,-3,-4, 6,-4, 6, 5,-5, 8,-6,-5,-7, 9}
+};
const SKP_int8 SKP_Silk_Lag_range_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ] [ PE_MAX_NB_SUBFR ][ 2 ] =
{
/* Lags to search for low number of stage3 cbks */
{
- {-2,6},
- {-1,5},
- {-1,5},
- {-2,7}
+ {-5,8},
+ {-1,6},
+ {-1,6},
+ {-4,10}
},
/* Lags to search for middle number of stage3 cbks */
{
- {-4,8},
+ {-6,10},
+ {-2,6},
{-1,6},
- {-1,6},
- {-4,9}
+ {-5,10}
},
/* Lags to search for max number of stage3 cbks */
{
@@ -97,11 +93,3 @@
PE_NB_CBKS_STAGE3_MID,
PE_NB_CBKS_STAGE3_MAX
};
-
-const SKP_int8 SKP_Silk_cbk_offsets_stage3[ SKP_Silk_PE_MAX_COMPLEX + 1 ] =
-{
- ((PE_NB_CBKS_STAGE3_MAX - PE_NB_CBKS_STAGE3_MIN) >> 1),
- ((PE_NB_CBKS_STAGE3_MAX - PE_NB_CBKS_STAGE3_MID) >> 1),
- 0
-};
-
--- a/src_SigProc_FIX/SigProc_FIX.vcproj
+++ /dev/null
@@ -1,408 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="SigProc_FIX"
- ProjectGUID="{2769AFC5-8FC2-42E8-803C-528ACBA89C74}"
- RootNamespace="Silk"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../interface"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_SigProcFLP_Win32_debug.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../interface"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
- GeneratePreprocessedFile="0"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_SigProcFLP_Win32_mt.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\SKP_Silk_A2NLSF.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_allpass_int.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_ana_filt_bank_1.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_apply_sine_window.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_array_maxabs.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_autocorr.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_biquad.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_biquad_alt.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_burg_modified.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_bwexpander.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_bwexpander_32.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decode_pitch.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_inner_prod_aligned.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_k2a.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_k2a_Q16.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_lin2log.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_log2lin.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_lowpass_int.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_lowpass_short.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LPC_inv_pred_gain.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LPC_stabilize.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LPC_synthesis_filter.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LPC_synthesis_order16.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LSF_cos_table.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_MA.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF2A.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_stabilize.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_VQ_weights_laroia.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_pitch_analysis_core.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_pitch_est_tables.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_down2.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_down2_3.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_down3.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_AR2.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_ARMA4.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_copy.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_down4.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_down_FIR.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_IIR_FIR.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_up2_HQ.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_private_up4.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_rom.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_up2.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_scale_copy_vector16.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_scale_vector.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_schur.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_schur64.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_sigm_Q15.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_sort.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_sum_sqr_shift.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\SKP_Silk_common_pitch_est_defines.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_Inlines.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_macros.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_pitch_est_defines.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resample_rom.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_rom.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_resampler_structs.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_SigProc_FIX.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- /dev/null
+++ b/src_SigProc_FIX/src_SigProc_FIX.vcxproj
@@ -1,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{950F7176-3D29-4CBF-8C40-58B918EAEBB2}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>src_SigProc_FIX</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_pitch_est_defines.h" />
+ <ClInclude Include="SKP_Silk_Inlines.h" />
+ <ClInclude Include="SKP_Silk_MacroCount.h" />
+ <ClInclude Include="SKP_Silk_MacroDebug.h" />
+ <ClInclude Include="SKP_Silk_macros.h" />
+ <ClInclude Include="SKP_Silk_resampler_private.h" />
+ <ClInclude Include="SKP_Silk_resampler_rom.h" />
+ <ClInclude Include="SKP_Silk_resampler_structs.h" />
+ <ClInclude Include="SKP_Silk_SigProc_FIX.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_A2NLSF.c" />
+ <ClCompile Include="SKP_Silk_allpass_int.c" />
+ <ClCompile Include="SKP_Silk_ana_filt_bank_1.c" />
+ <ClCompile Include="SKP_Silk_apply_sine_window.c" />
+ <ClCompile Include="SKP_Silk_array_maxabs.c" />
+ <ClCompile Include="SKP_Silk_autocorr.c" />
+ <ClCompile Include="SKP_Silk_biquad.c" />
+ <ClCompile Include="SKP_Silk_biquad_alt.c" />
+ <ClCompile Include="SKP_Silk_burg_modified.c" />
+ <ClCompile Include="SKP_Silk_bwexpander.c" />
+ <ClCompile Include="SKP_Silk_bwexpander_32.c" />
+ <ClCompile Include="SKP_Silk_debug.c" />
+ <ClCompile Include="SKP_Silk_decode_pitch.c" />
+ <ClCompile Include="SKP_Silk_inner_prod_aligned.c" />
+ <ClCompile Include="SKP_Silk_k2a.c" />
+ <ClCompile Include="SKP_Silk_k2a_Q16.c" />
+ <ClCompile Include="SKP_Silk_lin2log.c" />
+ <ClCompile Include="SKP_Silk_log2lin.c" />
+ <ClCompile Include="SKP_Silk_lowpass_int.c" />
+ <ClCompile Include="SKP_Silk_lowpass_short.c" />
+ <ClCompile Include="SKP_Silk_LPC_inv_pred_gain.c" />
+ <ClCompile Include="SKP_Silk_LPC_stabilize.c" />
+ <ClCompile Include="SKP_Silk_LPC_synthesis_filter.c" />
+ <ClCompile Include="SKP_Silk_LPC_synthesis_order16.c" />
+ <ClCompile Include="SKP_Silk_LSF_cos_table.c" />
+ <ClCompile Include="SKP_Silk_MA.c" />
+ <ClCompile Include="SKP_Silk_NLSF2A.c" />
+ <ClCompile Include="SKP_Silk_NLSF_stabilize.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_weights_laroia.c" />
+ <ClCompile Include="SKP_Silk_pitch_analysis_core.c" />
+ <ClCompile Include="SKP_Silk_pitch_est_tables.c" />
+ <ClCompile Include="SKP_Silk_resampler.c" />
+ <ClCompile Include="SKP_Silk_resampler_down2.c" />
+ <ClCompile Include="SKP_Silk_resampler_down2_3.c" />
+ <ClCompile Include="SKP_Silk_resampler_down3.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_AR2.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_ARMA4.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_copy.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_down4.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_down_FIR.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_IIR_FIR.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_up2_HQ.c" />
+ <ClCompile Include="SKP_Silk_resampler_private_up4.c" />
+ <ClCompile Include="SKP_Silk_resampler_rom.c" />
+ <ClCompile Include="SKP_Silk_resampler_up2.c" />
+ <ClCompile Include="SKP_Silk_scale_copy_vector16.c" />
+ <ClCompile Include="SKP_Silk_scale_vector.c" />
+ <ClCompile Include="SKP_Silk_schur.c" />
+ <ClCompile Include="SKP_Silk_schur64.c" />
+ <ClCompile Include="SKP_Silk_sigm_Q15.c" />
+ <ClCompile Include="SKP_Silk_sort.c" />
+ <ClCompile Include="SKP_Silk_sum_sqr_shift.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/src_SigProc_FIX/src_SigProc_FIX.vcxproj.filters
@@ -1,0 +1,207 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_Inlines.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_MacroCount.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_MacroDebug.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_macros.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_resampler_private.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_resampler_rom.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_resampler_structs.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_SigProc_FIX.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_pitch_est_defines.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_A2NLSF.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_allpass_int.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_ana_filt_bank_1.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_apply_sine_window.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_array_maxabs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_autocorr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_biquad.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_biquad_alt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_burg_modified.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_bwexpander.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_bwexpander_32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decode_pitch.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_inner_prod_aligned.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_k2a.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_k2a_Q16.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_lin2log.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_log2lin.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_lowpass_int.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_lowpass_short.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LPC_inv_pred_gain.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LPC_stabilize.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LPC_synthesis_filter.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LPC_synthesis_order16.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LSF_cos_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_MA.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_stabilize.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_weights_laroia.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF2A.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_pitch_analysis_core.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_pitch_est_tables.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_down2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_down2_3.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_down3.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_AR2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_ARMA4.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_copy.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_down_FIR.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_down4.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_IIR_FIR.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_up2_HQ.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_private_up4.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_rom.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_resampler_up2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_scale_copy_vector16.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_scale_vector.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_schur.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_schur64.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_sigm_Q15.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_sort.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_sum_sqr_shift.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_debug.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- a/src_SigProc_FLP/SKP_Silk_decimate2_coarsest_FLP.c
+++ b/src_SigProc_FLP/SKP_Silk_decimate2_coarsest_FLP.c
@@ -59,7 +59,7 @@
/* allpass filters */
SKP_Silk_allpass_int_FLP( scratch, S + 0, A21cst_FLP[ 0 ], scratch + 2 * len, len );
- SKP_Silk_allpass_int_FLP( scratch + len, S + 1, A20cst_FLP[ 0 ], scratch, len );
+ SKP_Silk_allpass_int_FLP( scratch + len, S + 1, A20cst_FLP[ 0 ], scratch, len );
/* add two allpass outputs */
for ( k = 0; k < len; k++ ) {
--- a/src_SigProc_FLP/SKP_Silk_pitch_analysis_core_FLP.c
+++ b/src_SigProc_FLP/SKP_Silk_pitch_analysis_core_FLP.c
@@ -32,8 +32,7 @@
******************************************************************************/
#include "SKP_Silk_SigProc_FLP.h"
#include "SKP_Silk_SigProc_FIX.h"
-#include "SKP_Silk_pitch_est_defines_FLP.h"
-#include "SKP_Silk_common_pitch_est_defines.h"
+#include "SKP_Silk_pitch_est_defines.h"
#define SCRATCH_SIZE 22
@@ -70,7 +69,7 @@
//% CORE PITCH ANALYSIS FUNCTION %
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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_LENGTH_MS*Fs_kHz */
+ const SKP_float *signal, /* I signal of length PE_FRAME_LENGTH_MS*Fs_kHz */
SKP_int *pitch_out, /* O 4 pitch lag values */
SKP_int *lagIndex, /* O lag Index */
SKP_int *contourIndex, /* O pitch contour Index */
@@ -98,11 +97,11 @@
SKP_int length_d_srch, length_d_comp;
SKP_float Cmax, CCmax, CCmax_b, CCmax_new_b, CCmax_new;
SKP_int CBimax, CBimax_new, lag, start_lag, end_lag, lag_new;
- SKP_int cbk_offset, cbk_size;
+ SKP_int cbk_size;
SKP_float lag_log2, prevLag_log2, delta_lag_log2_sqr;
SKP_float energies_st3[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE3_MAX ][ PE_NB_STAGE3_LAGS ];
SKP_float cross_corr_st3[ PE_MAX_NB_SUBFR ][ PE_NB_CBKS_STAGE3_MAX ][ PE_NB_STAGE3_LAGS ];
- SKP_int diff, lag_counter;
+ SKP_int lag_counter;
SKP_int frame_length, frame_length_8kHz, frame_length_4kHz;
SKP_int sf_length, sf_length_8kHz, sf_length_4kHz;
SKP_int min_lag, min_lag_8kHz, min_lag_4kHz;
@@ -130,9 +129,9 @@
min_lag = PE_MIN_LAG_MS * Fs_kHz;
min_lag_4kHz = PE_MIN_LAG_MS * 4;
min_lag_8kHz = PE_MIN_LAG_MS * 8;
- max_lag = PE_MAX_LAG_MS * Fs_kHz;
+ max_lag = PE_MAX_LAG_MS * Fs_kHz - 1;
max_lag_4kHz = PE_MAX_LAG_MS * 4;
- max_lag_8kHz = PE_MAX_LAG_MS * 8;
+ max_lag_8kHz = PE_MAX_LAG_MS * 8 - 1;
SKP_memset(C, 0, sizeof(SKP_float) * nb_subfr * ((PE_MAX_LAG >> 1) + 5));
@@ -402,13 +401,13 @@
/* Bias towards shorter lags */
lag_log2 = SKP_P_log2((SKP_float)d);
- CCmax_new_b -= PE_FLP_SHORTLAG_BIAS * nb_subfr * lag_log2;
+ CCmax_new_b -= PE_SHORTLAG_BIAS * nb_subfr * lag_log2;
/* Bias towards previous lag */
if ( prevLag > 0 ) {
delta_lag_log2_sqr = lag_log2 - prevLag_log2;
delta_lag_log2_sqr *= delta_lag_log2_sqr;
- CCmax_new_b -= PE_FLP_PREVLAG_BIAS * nb_subfr * (*LTPCorr) * delta_lag_log2_sqr / (delta_lag_log2_sqr + 0.5f);
+ CCmax_new_b -= PE_PREVLAG_BIAS * nb_subfr * (*LTPCorr) * delta_lag_log2_sqr / (delta_lag_log2_sqr + 0.5f);
}
if ( CCmax_new_b > CCmax_b && /* Find maximum biased correlation */
@@ -460,23 +459,21 @@
lag_counter = 0;
SKP_assert( lag == SKP_SAT16( lag ) );
- contour_bias = PE_FLP_FLATCONTOUR_BIAS / lag;
+ contour_bias = PE_FLATCONTOUR_BIAS / lag;
/* Setup cbk parameters acording to complexity setting and frame length */
if( nb_subfr == PE_MAX_NB_SUBFR ) {
- nb_cbk_search = (SKP_int)SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
- cbk_size = PE_NB_CBKS_STAGE3_MAX;
- cbk_offset = (SKP_int)SKP_Silk_cbk_offsets_stage3[ complexity ];
- Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
+ nb_cbk_search = (SKP_int)SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
+ cbk_size = PE_NB_CBKS_STAGE3_MAX;
+ Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
} else {
- nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
- cbk_size = PE_NB_CBKS_STAGE3_10MS;
- cbk_offset = 0;
- Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
+ nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
+ cbk_size = PE_NB_CBKS_STAGE3_10MS;
+ Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
}
for( d = start_lag; d <= end_lag; d++ ) {
- for( j = cbk_offset; j < ( cbk_offset + nb_cbk_search ); j++ ) {
+ for( j = 0; j < nb_cbk_search; j++ ) {
cross_corr = 0.0;
energy = eps;
for( k = 0; k < nb_subfr; k++ ) {
@@ -486,8 +483,7 @@
if( cross_corr > 0.0 ) {
CCmax_new = (SKP_float)(cross_corr * cross_corr / energy);
/* Reduce depending on flatness of contour */
- diff = j - SKP_RSHIFT( cbk_size, 1 );
- CCmax_new *= ( 1.0f - contour_bias * diff * diff );
+ CCmax_new *= 1.0f - contour_bias * j;
} else {
CCmax_new = 0.0f;
}
@@ -547,7 +543,7 @@
{
const SKP_float *target_ptr, *basis_ptr;
SKP_int i, j, k, lag_counter, lag_low, lag_high;
- SKP_int cbk_offset, nb_cbk_search, delta, idx, cbk_size;
+ SKP_int nb_cbk_search, delta, idx, cbk_size;
SKP_float scratch_mem[ SCRATCH_SIZE ];
const SKP_int8 *Lag_range_ptr, *Lag_CB_ptr;
@@ -557,14 +553,12 @@
if( nb_subfr == PE_MAX_NB_SUBFR ){
Lag_range_ptr = &SKP_Silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
- cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
- nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
+ nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
cbk_size = PE_NB_CBKS_STAGE3_MAX;
} else {
SKP_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1);
Lag_range_ptr = &SKP_Silk_Lag_range_stage3_10_ms[ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
- cbk_offset = 0;
nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
cbk_size = PE_NB_CBKS_STAGE3_10MS;
}
@@ -584,7 +578,7 @@
}
delta = matrix_ptr( Lag_range_ptr, k, 0, 2 );
- for( i = cbk_offset; i < ( cbk_offset + nb_cbk_search ); i++ ) {
+ for( i = 0; i < nb_cbk_search; i++ ) {
/* Fill out the 3 dim array that stores the correlations for */
/* each code_book vector for each start lag */
idx = matrix_ptr( Lag_CB_ptr, k, i, cbk_size ) - delta;
@@ -614,7 +608,7 @@
const SKP_float *target_ptr, *basis_ptr;
double energy;
SKP_int k, i, j, lag_counter;
- SKP_int cbk_offset, nb_cbk_search, delta, idx, cbk_size, lag_diff;
+ SKP_int nb_cbk_search, delta, idx, cbk_size, lag_diff;
SKP_float scratch_mem[ SCRATCH_SIZE ];
const SKP_int8 *Lag_range_ptr, *Lag_CB_ptr;
@@ -624,14 +618,12 @@
if( nb_subfr == PE_MAX_NB_SUBFR ){
Lag_range_ptr = &SKP_Silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3[ 0 ][ 0 ];
- cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
- nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
+ nb_cbk_search = SKP_Silk_nb_cbk_searchs_stage3[ complexity ];
cbk_size = PE_NB_CBKS_STAGE3_MAX;
} else {
SKP_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1);
Lag_range_ptr = &SKP_Silk_Lag_range_stage3_10_ms[ 0 ][ 0 ];
Lag_CB_ptr = &SKP_Silk_CB_lags_stage3_10_ms[ 0 ][ 0 ];
- cbk_offset = 0;
nb_cbk_search = PE_NB_CBKS_STAGE3_10MS;
cbk_size = PE_NB_CBKS_STAGE3_10MS;
}
@@ -662,7 +654,7 @@
}
delta = matrix_ptr( Lag_range_ptr, k, 0, 2 );
- for( i = cbk_offset; i < ( cbk_offset + nb_cbk_search ); i++ ) {
+ for( i = 0; i < nb_cbk_search; i++ ) {
/* Fill out the 3 dim array that stores the correlations for */
/* each code_book vector for each start lag */
idx = matrix_ptr( Lag_CB_ptr, k, i, cbk_size ) - delta;
--- a/src_SigProc_FLP/SKP_Silk_pitch_est_defines_FLP.h
+++ /dev/null
@@ -1,42 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SIGPROCFLP_PE_DEFINES_H
-#define SIGPROCFLP_PE_DEFINES_H
-
-#include "SKP_Silk_common_pitch_est_defines.h"
-
-/************************************************************/
-/* Definitions For FLP pitch estimator */
-/************************************************************/
-
-#define PE_FLP_SHORTLAG_BIAS 0.2f /* for logarithmic weighting */
-#define PE_FLP_PREVLAG_BIAS 0.2f /* for logarithmic weighting */
-#define PE_FLP_FLATCONTOUR_BIAS 0.05f
-
-#endif
-
--- a/src_SigProc_FLP/SigProc_FLP.vcproj
+++ /dev/null
@@ -1,248 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="SigProc_FLP"
- ProjectGUID="{793D0EC2-8554-4674-9A97-F25DE5DBE926}"
- RootNamespace="Silk"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../interface;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_SigProcFIX_Win32_debug.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../interface;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
- GeneratePreprocessedFile="0"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_SigProcFIX_Win32_mt.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\SKP_Silk_allpass_int_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_autocorrelation_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_burg_modified_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_bwexpander_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decimate2_coarse_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decimate2_coarsest_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_energy_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_inner_product_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_k2a_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_levinsondurbin_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LPC_inv_pred_gain_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_VQ_weights_laroia_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_pitch_analysis_core_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_scale_copy_vector_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_scale_vector_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_schur_FLP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_sort_FLP.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\SKP_Silk_pitch_est_defines_FLP.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_SigProc_FLP.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- /dev/null
+++ b/src_SigProc_FLP/src_SigProc_FLP.vcxproj
@@ -1,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{06D10292-A23C-4C5E-9C0F-28737769206F}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>src_SigProc_FLP</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface;../src_SigProc_FIX</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface;../src_SigProc_FIX</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_SigProc_FLP.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_allpass_int_FLP.c" />
+ <ClCompile Include="SKP_Silk_autocorrelation_FLP.c" />
+ <ClCompile Include="SKP_Silk_burg_modified_FLP.c" />
+ <ClCompile Include="SKP_Silk_bwexpander_FLP.c" />
+ <ClCompile Include="SKP_Silk_decimate2_coarsest_FLP.c" />
+ <ClCompile Include="SKP_Silk_decimate2_coarse_FLP.c" />
+ <ClCompile Include="SKP_Silk_energy_FLP.c" />
+ <ClCompile Include="SKP_Silk_inner_product_FLP.c" />
+ <ClCompile Include="SKP_Silk_k2a_FLP.c" />
+ <ClCompile Include="SKP_Silk_levinsondurbin_FLP.c" />
+ <ClCompile Include="SKP_Silk_LPC_inv_pred_gain_FLP.c" />
+ <ClCompile Include="SKP_Silk_NLSF_VQ_weights_laroia_FLP.c" />
+ <ClCompile Include="SKP_Silk_pitch_analysis_core_FLP.c" />
+ <ClCompile Include="SKP_Silk_scale_copy_vector_FLP.c" />
+ <ClCompile Include="SKP_Silk_scale_vector_FLP.c" />
+ <ClCompile Include="SKP_Silk_schur_FLP.c" />
+ <ClCompile Include="SKP_Silk_sort_FLP.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/src_SigProc_FLP/src_SigProc_FLP.vcxproj.filters
@@ -1,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_SigProc_FLP.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_allpass_int_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_autocorrelation_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_burg_modified_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_bwexpander_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decimate2_coarse_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decimate2_coarsest_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_energy_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_inner_product_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_k2a_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_levinsondurbin_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LPC_inv_pred_gain_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_VQ_weights_laroia_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_pitch_analysis_core_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_scale_copy_vector_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_scale_vector_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_schur_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_sort_FLP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- a/src_common/SKP_Silk_NSQ_del_dec.c
+++ b/src_common/SKP_Silk_NSQ_del_dec.c
@@ -294,8 +294,8 @@
SKP_memmove( NSQ->sLTP_shp_Q10, &NSQ->sLTP_shp_Q10[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( SKP_int32 ) );
#ifdef SAVE_ALL_INTERNAL_DATA
- DEBUG_STORE_DATA( sLTP_Q16, &sLTP_Q16[ psEncC->frame_length ], psEncC->frame_length * sizeof( SKP_int32 ) );
- DEBUG_STORE_DATA( xq.dat, NSQ->xq, psEncC->frame_length * sizeof( SKP_int16 ) );
+ DEBUG_STORE_DATA( sLTP_Q16.dat, &sLTP_Q16[ psEncC->frame_length ], psEncC->frame_length * sizeof( SKP_int32 ) );
+ DEBUG_STORE_DATA( xq.dat, NSQ->xq, psEncC->frame_length * sizeof( SKP_int16 ) );
#endif
}
@@ -526,7 +526,7 @@
Winner_ind = 0;
for( k = 1; k < nStatesDelayedDecision; k++ ) {
if( psSampleState[ k ][ 0 ].RD_Q10 < RDmin_Q10 ) {
- RDmin_Q10 = psSampleState[ k ][ 0 ].RD_Q10;
+ RDmin_Q10 = psSampleState[ k ][ 0 ].RD_Q10;
Winner_ind = k;
}
}
--- /dev/null
+++ b/src_common/SKP_Silk_VQ_WMat_EC.c
@@ -1,0 +1,107 @@
+/***********************************************************************
+Copyright (c) 2006-2010, 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.
+***********************************************************************/
+
+#include "SKP_Silk_main.h"
+
+/* Entropy constrained matrix-weighted VQ, hard-coded to 5-element vectors, for a single input data vector */
+void SKP_Silk_VQ_WMat_EC(
+ SKP_int *ind, /* O index of best codebook vector */
+ SKP_int32 *rate_dist_Q14, /* O best weighted quantization error + mu * rate*/
+ const SKP_int16 *in_Q14, /* I input vector to be quantized */
+ const SKP_int32 *W_Q18, /* I weighting matrix */
+ const SKP_int8 *cb_Q7, /* I codebook */
+ const SKP_int8 *cl_Q4, /* I code length for each codebook vector */
+ const SKP_int mu_Q10, /* I tradeoff between weighted error and rate */
+ SKP_int L /* I number of vectors in codebook */
+)
+{
+ SKP_int k;
+ const SKP_int8 *cb_row_Q7;
+ SKP_int16 diff_Q14[ 5 ];
+ SKP_int32 sum1_Q14, sum2_Q16;
+
+ /* Loop over codebook */
+ *rate_dist_Q14 = SKP_int32_MAX;
+ cb_row_Q7 = cb_Q7;
+ for( k = 0; k < L; k++ ) {
+ diff_Q14[ 0 ] = in_Q14[ 0 ] - SKP_LSHIFT( cb_row_Q7[ 0 ], 7 );
+ diff_Q14[ 1 ] = in_Q14[ 1 ] - SKP_LSHIFT( cb_row_Q7[ 1 ], 7 );
+ diff_Q14[ 2 ] = in_Q14[ 2 ] - SKP_LSHIFT( cb_row_Q7[ 2 ], 7 );
+ diff_Q14[ 3 ] = in_Q14[ 3 ] - SKP_LSHIFT( cb_row_Q7[ 3 ], 7 );
+ diff_Q14[ 4 ] = in_Q14[ 4 ] - SKP_LSHIFT( cb_row_Q7[ 4 ], 7 );
+
+ /* Weighted rate */
+ sum1_Q14 = SKP_SMULBB( mu_Q10, cl_Q4[ k ] );
+
+ SKP_assert( sum1_Q14 >= 0 );
+
+ /* first row of W_Q18 */
+ sum2_Q16 = SKP_SMULWB( W_Q18[ 1 ], diff_Q14[ 1 ] );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 2 ], diff_Q14[ 2 ] );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 3 ], diff_Q14[ 3 ] );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 4 ], diff_Q14[ 4 ] );
+ sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 0 ], diff_Q14[ 0 ] );
+ sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 0 ] );
+
+ /* second row of W_Q18 */
+ sum2_Q16 = SKP_SMULWB( W_Q18[ 7 ], diff_Q14[ 2 ] );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 8 ], diff_Q14[ 3 ] );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 9 ], diff_Q14[ 4 ] );
+ sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 6 ], diff_Q14[ 1 ] );
+ sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 1 ] );
+
+ /* third row of W_Q18 */
+ sum2_Q16 = SKP_SMULWB( W_Q18[ 13 ], diff_Q14[ 3 ] );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 14 ], diff_Q14[ 4 ] );
+ sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 12 ], diff_Q14[ 2 ] );
+ sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 2 ] );
+
+ /* fourth row of W_Q18 */
+ sum2_Q16 = SKP_SMULWB( W_Q18[ 19 ], diff_Q14[ 4 ] );
+ sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+ sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 18 ], diff_Q14[ 3 ] );
+ sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 3 ] );
+
+ /* last row of W_Q18 */
+ sum2_Q16 = SKP_SMULWB( W_Q18[ 24 ], diff_Q14[ 4 ] );
+ sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16, diff_Q14[ 4 ] );
+
+ SKP_assert( sum1_Q14 >= 0 );
+
+ /* find best */
+ if( sum1_Q14 < *rate_dist_Q14 ) {
+ *rate_dist_Q14 = sum1_Q14;
+ *ind = k;
+ }
+
+ /* Go to next cbk vector */
+ cb_row_Q7 += LTP_ORDER;
+ }
+}
--- a/src_common/SKP_Silk_code_signs.c
+++ b/src_common/SKP_Silk_code_signs.c
@@ -43,17 +43,17 @@
const SKP_int RateLevelIndex /* I Rate level index */
)
{
- SKP_int i;
- SKP_int inData;
- SKP_uint16 prob;
+ SKP_int i, inData;
+ SKP_uint8 icdf[ 2 ];
i = SKP_SMULBB( N_RATE_LEVELS - 1, SKP_LSHIFT( sigtype, 1 ) + QuantOffsetType ) + RateLevelIndex;
- prob = 65536 - SKP_Silk_sign_CDF[ i ];
+ icdf[ 0 ] = SKP_Silk_sign_iCDF[ i ];
+ icdf[ 1 ] = 0;
for( i = 0; i < length; i++ ) {
if( q[ i ] != 0 ) {
inData = SKP_enc_map( q[ i ] ); /* - = 0, + = 1 */
- ec_enc_bit_prob( psRangeEnc, inData, prob );
+ ec_enc_icdf( psRangeEnc, inData, icdf, 8 );
}
}
}
@@ -68,18 +68,16 @@
const SKP_int RateLevelIndex /* I Rate Level Index */
)
{
- SKP_int i;
- SKP_int data;
- SKP_uint16 cdf[ 3 ];
+ SKP_int i, data;
+ SKP_uint8 icdf[ 2 ];
i = SKP_SMULBB( N_RATE_LEVELS - 1, SKP_LSHIFT( sigtype, 1 ) + QuantOffsetType ) + RateLevelIndex;
- cdf[ 0 ] = 0;
- cdf[ 1 ] = SKP_Silk_sign_CDF[ i ];
- cdf[ 2 ] = 65535;
+ icdf[ 0 ] = SKP_Silk_sign_iCDF[ i ];
+ icdf[ 1 ] = 0;
for( i = 0; i < length; i++ ) {
if( q[ i ] > 0 ) {
- SKP_Silk_range_decoder( &data, psRangeDec, cdf, 1 );
+ data = ec_dec_icdf( psRangeDec, icdf, 8 );
/* attach sign */
/* implementation with shift, subtraction, multiplication */
q[ i ] *= SKP_dec_map( data );
--- a/src_common/SKP_Silk_control_audio_bandwidth.c
+++ b/src_common/SKP_Silk_control_audio_bandwidth.c
@@ -99,22 +99,23 @@
( psEncC->fs_kHz == 12 ) && ( psEncC->maxInternal_fs_kHz >= 16 ) ||
( psEncC->fs_kHz == 8 ) && ( psEncC->maxInternal_fs_kHz >= 12 ) )
#if SWITCH_TRANSITION_FILTERING
- && ( psEncC->sLP.transition_frame_no == 0 ) ) { /* No transition phase running, ready to switch */
- psEncC->sLP.mode = 1; /* Switch up */
+ && ( psEncC->sLP.transition_frame_no == 0 ) ) /* No transition phase running, ready to switch */
+ {
+ psEncC->sLP.mode = 1; /* Switch up */
#else
- ) {
+ ) {
#endif
- psEncC->bitrateDiff = 0;
+ psEncC->bitrateDiff = 0;
- /* Switch to a higher sample frequency */
- if( psEncC->fs_kHz == 8 ) {
- fs_kHz = 12;
- } else if( psEncC->fs_kHz == 12 ) {
- fs_kHz = 16;
- } else {
- SKP_assert( psEncC->fs_kHz == 16 );
- fs_kHz = 24;
- }
+ /* Switch to a higher sample frequency */
+ if( psEncC->fs_kHz == 8 ) {
+ fs_kHz = 12;
+ } else if( psEncC->fs_kHz == 12 ) {
+ fs_kHz = 16;
+ } else {
+ SKP_assert( psEncC->fs_kHz == 16 );
+ fs_kHz = 24;
+ }
}
}
}
@@ -132,6 +133,10 @@
}
#endif
}
+
+#ifdef FORCE_INTERNAL_FS_KHZ
+ fs_kHz = FORCE_INTERNAL_FS_KHZ;
+#endif
return fs_kHz;
}
--- a/src_common/SKP_Silk_dec_API.c
+++ b/src_common/SKP_Silk_dec_API.c
@@ -64,7 +64,7 @@
ec_dec *psRangeDec, /* I/O Compressor data structure */
const SKP_int nBytesIn, /* I: Number of input bytes */
SKP_int16 *samplesOut, /* O: Decoded output speech vector */
- SKP_int32 *nSamplesOut /* I/O: Number of samples (vector/decoded) */
+ SKP_int32 *nSamplesOut /* O: Number of samples decoded */
)
{
SKP_int ret = SKP_SILK_NO_ERROR, used_bytes, prev_fs_kHz;
@@ -170,7 +170,7 @@
psDec->prev_API_sampleRate = decControl->API_sampleRate;
/* Copy all parameters that are needed out of internal structure to the control stucture */
- decControl->frameSize = ( SKP_int )psDec->frame_length;
+ decControl->frameSize = ( SKP_int )*nSamplesOut;
decControl->framesPerPayload = ( SKP_int )psDec->nFramesInPacket;
decControl->inBandFECOffset = ( SKP_int )psDec->inband_FEC_offset;
decControl->moreInternalDecoderFrames = ( SKP_int )psDec->moreInternalDecoderFrames;
--- a/src_common/SKP_Silk_decode_core.c
+++ b/src_common/SKP_Silk_decode_core.c
@@ -37,7 +37,7 @@
const SKP_int q[ MAX_FRAME_LENGTH ] /* I Pulse signal */
)
{
- SKP_int i, k, lag = 0, start_idx, sLTP_buf_idx, NLSF_interpolation_flag, sigtype, LTP_scale_Q14;
+ SKP_int i, j, k, lag = 0, start_idx, sLTP_buf_idx, NLSF_interpolation_flag, sigtype;
SKP_int16 *A_Q12, *B_Q14, *pxq, A_Q12_tmp[ MAX_LPC_ORDER ];
SKP_int16 sLTP[ MAX_FRAME_LENGTH ];
SKP_int32 LTP_pred_Q14, LPC_pred_Q10, Gain_Q16, inv_gain_Q16, inv_gain_Q32, gain_adj_Q16, rand_seed, offset_Q10, dither;
@@ -44,7 +44,6 @@
SKP_int32 *pred_lag_ptr, *pexc_Q10, *pres_Q10;
SKP_int32 vec_Q10[ MAX_SUB_FRAME_LENGTH ];
SKP_int32 FiltState[ MAX_LPC_ORDER ];
- SKP_int j;
SKP_assert( psDec->prev_inv_gain_Q16 != 0 );
@@ -57,7 +56,7 @@
}
#ifdef SAVE_ALL_INTERNAL_DATA
- DEBUG_STORE_DATA( q_dec.dat, q, psDec->frame_length * sizeof( SKP_int ) );
+ //DEBUG_STORE_DATA( q_dec.dat, q, psDec->frame_length * sizeof( SKP_int ) );
#endif
/* Decode excitation */
@@ -91,7 +90,6 @@
SKP_memcpy( A_Q12_tmp, A_Q12, psDec->LPC_order * sizeof( SKP_int16 ) );
B_Q14 = &psDecCtrl->LTPCoef_Q14[ k * LTP_ORDER ];
Gain_Q16 = psDecCtrl->Gains_Q16[ k ];
- LTP_scale_Q14 = psDecCtrl->LTP_scale_Q14;
sigtype = psDecCtrl->sigtype;
inv_gain_Q16 = SKP_INVERSE32_varQ( SKP_max( Gain_Q16, 1 ), 32 );
@@ -112,7 +110,6 @@
sigtype = SIG_TYPE_VOICED;
psDecCtrl->pitchL[ k ] = psDec->lagPrev;
- LTP_scale_Q14 = ( SKP_int )1 << 14;
}
if( sigtype == SIG_TYPE_VOICED ) {
@@ -225,7 +222,7 @@
SKP_memcpy( xq, &psDec->outBuf[ psDec->ltp_mem_length ], psDec->frame_length * sizeof( SKP_int16 ) );
#ifdef SAVE_ALL_INTERNAL_DATA
- DEBUG_STORE_DATA( LTP_buf_Q16.dat, &psDec->sLTP_Q16[psDec->frame_length], psDec->frame_length * sizeof( SKP_int32 ));
- DEBUG_STORE_DATA( xq_dec.dat, xq, psDec->frame_length * sizeof( SKP_int16 ) );
+ //DEBUG_STORE_DATA( LTP_buf_Q16.dat, &psDec->sLTP_Q16[psDec->frame_length], psDec->frame_length * sizeof( SKP_int32 ));
+ //DEBUG_STORE_DATA( xq_dec.dat, xq, psDec->frame_length * sizeof( SKP_int16 ) );
#endif
}
--- a/src_common/SKP_Silk_decode_frame.c
+++ b/src_common/SKP_Silk_decode_frame.c
@@ -142,7 +142,7 @@
/************************************************/
/* Comfort noise generation / estimation */
/************************************************/
- SKP_Silk_CNG( psDec, &sDecCtrl, pOut , L );
+ SKP_Silk_CNG( psDec, &sDecCtrl, pOut, L );
/********************************************/
/* HP filter output */
@@ -150,7 +150,7 @@
SKP_assert( ( ( psDec->fs_kHz == 12 ) && ( L % 3 ) == 0 ) ||
( ( psDec->fs_kHz != 12 ) && ( L % 2 ) == 0 ) );
TIC(HP_out)
- SKP_Silk_biquad( pOut, psDec->HP_B, psDec->HP_A, psDec->HPState, pOut, L );
+ SKP_Silk_biquad_alt( pOut, psDec->HP_B, psDec->HP_A, psDec->HPState, pOut, L );
TOC(HP_out)
/********************************************/
--- a/src_common/SKP_Silk_decode_indices.c
+++ b/src_common/SKP_Silk_decode_indices.c
@@ -34,7 +34,7 @@
)
{
SKP_int i, k, Ix, FrameIndex;
- SKP_int sigtype, QuantOffsetType, seed_int, nBytesUsed;
+ SKP_int sigtype, QuantOffsetType, nBytesUsed;
SKP_int decode_absolute_lagIndex, delta_lagIndex, prev_lagIndex = 0;
const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
@@ -42,18 +42,17 @@
/*******************/
/* Decode VAD flag */
/*******************/
- SKP_Silk_range_decoder( &psDec->vadFlagBuf[ FrameIndex ], psRangeDec, SKP_Silk_vadflag_CDF, SKP_Silk_vadflag_offset );
+ psDec->vadFlagBuf[ FrameIndex ] = ec_dec_icdf( psRangeDec, SKP_Silk_vadflag_iCDF, 8 );
/*******************************************/
/* Decode signal type and quantizer offset */
/*******************************************/
if( FrameIndex == 0 ) {
- /* first frame in packet: independent coding */
- SKP_Silk_range_decoder( &Ix, psRangeDec, SKP_Silk_type_offset_CDF, SKP_Silk_type_offset_CDF_offset );
+ /* first frame in packet: independent coding, in two stages: MSB bits followed by 3 LSBs */
+ Ix = ec_dec_icdf( psRangeDec, SKP_Silk_type_offset_iCDF, 8 );
} else {
/* condidtional coding */
- SKP_Silk_range_decoder( &Ix, psRangeDec, SKP_Silk_type_offset_joint_CDF[ psDec->typeOffsetPrev ],
- SKP_Silk_type_offset_CDF_offset );
+ Ix = ec_dec_icdf( psRangeDec, SKP_Silk_type_offset_joint_iCDF[ psDec->typeOffsetPrev ], 8 );
}
sigtype = SKP_RSHIFT( Ix, 1 );
QuantOffsetType = Ix & 1;
@@ -65,15 +64,17 @@
/* first subframe */
if( FrameIndex == 0 ) {
/* first frame in packet: independent coding */
- SKP_Silk_range_decoder( &psDec->GainsIndices[ FrameIndex ][ 0 ], psRangeDec, SKP_Silk_gain_CDF[ sigtype ], SKP_Silk_gain_CDF_offset );
+ psDec->GainsIndices[ FrameIndex ][ 0 ] = SKP_LSHIFT( ec_dec_icdf( psRangeDec, SKP_Silk_gain_iCDF[ sigtype ], 8 ), 3 );
+ //psDec->GainsIndices[ FrameIndex ][ 0 ] += ec_dec_bits( psRangeDec, 3 ); /* doesn't work somehow */
+ psDec->GainsIndices[ FrameIndex ][ 0 ] += ec_dec_icdf( psRangeDec, SKP_Silk_uniform8_iCDF, 8 );
} else {
/* condidtional coding */
- SKP_Silk_range_decoder( &psDec->GainsIndices[ FrameIndex ][ 0 ], psRangeDec, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
+ psDec->GainsIndices[ FrameIndex ][ 0 ] = ec_dec_icdf( psRangeDec, SKP_Silk_delta_gain_iCDF, 8 );
}
/* remaining subframes */
for( i = 1; i < psDec->nb_subfr; i++ ) {
- SKP_Silk_range_decoder( &psDec->GainsIndices[ FrameIndex ][ i ], psRangeDec, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
+ psDec->GainsIndices[ FrameIndex ][ i ] = ec_dec_icdf( psRangeDec, SKP_Silk_delta_gain_iCDF, 8 );
}
/**********************/
@@ -83,16 +84,15 @@
/* Set pointer to LSF VQ CB for the current signal type */
psNLSF_CB = psDec->psNLSF_CB[ sigtype ];
- /* Arithmetically decode NLSF path */
+ /* Range decoding of the NLSF path */
for( i = 0; i < psNLSF_CB->nStages; i++ ) {
- SKP_Silk_range_decoder( &psDec->NLSFIndices[ FrameIndex ][ i ], psRangeDec, psNLSF_CB->StartPtr[ i ], psNLSF_CB->MiddleIx[ i ] );
+ psDec->NLSFIndices[ FrameIndex ][ i ] = ec_dec_icdf( psRangeDec, psNLSF_CB->StartPtr[ i ], 8 );
}
/***********************************/
/* Decode LSF interpolation factor */
/***********************************/
- SKP_Silk_range_decoder( &psDec->NLSFInterpCoef_Q2[ FrameIndex ], psRangeDec, SKP_Silk_NLSF_interpolation_factor_CDF,
- SKP_Silk_NLSF_interpolation_factor_offset );
+ psDec->NLSFInterpCoef_Q2[ FrameIndex ] = ec_dec_icdf( psRangeDec, SKP_Silk_NLSF_interpolation_factor_iCDF, 8 );
if( sigtype == SIG_TYPE_VOICED ) {
/*********************/
@@ -102,9 +102,9 @@
decode_absolute_lagIndex = 1;
if( FrameIndex > 0 && psDec->sigtype[ FrameIndex - 1 ] == SIG_TYPE_VOICED ) {
/* Decode Delta index */
- SKP_Silk_range_decoder( &delta_lagIndex, psRangeDec, SKP_Silk_pitch_delta_CDF, SKP_Silk_pitch_delta_CDF_offset );
- if( delta_lagIndex < ( MAX_DELTA_LAG << 1 ) + 1 ) {
- delta_lagIndex = delta_lagIndex - MAX_DELTA_LAG;
+ delta_lagIndex = ec_dec_icdf( psRangeDec, SKP_Silk_pitch_delta_iCDF, 8 );
+ if( delta_lagIndex > 0 ) {
+ delta_lagIndex = delta_lagIndex - 9;
psDec->lagIndex[ FrameIndex ] = prev_lagIndex + delta_lagIndex;
decode_absolute_lagIndex = 0;
}
@@ -111,49 +111,34 @@
}
if( decode_absolute_lagIndex ) {
/* Absolute decoding */
- if( psDec->fs_kHz == 8 ) {
- SKP_Silk_range_decoder( &psDec->lagIndex[ FrameIndex ], psRangeDec, SKP_Silk_pitch_lag_NB_CDF, SKP_Silk_pitch_lag_NB_CDF_offset );
- } else if( psDec->fs_kHz == 12 ) {
- SKP_Silk_range_decoder( &psDec->lagIndex[ FrameIndex ], psRangeDec, SKP_Silk_pitch_lag_MB_CDF, SKP_Silk_pitch_lag_MB_CDF_offset );
- } else if( psDec->fs_kHz == 16 ) {
- SKP_Silk_range_decoder( &psDec->lagIndex[ FrameIndex ], psRangeDec, SKP_Silk_pitch_lag_WB_CDF, SKP_Silk_pitch_lag_WB_CDF_offset );
- } else {
- SKP_Silk_range_decoder( &psDec->lagIndex[ FrameIndex ], psRangeDec, SKP_Silk_pitch_lag_SWB_CDF, SKP_Silk_pitch_lag_SWB_CDF_offset );
- }
+ psDec->lagIndex[ FrameIndex ] = ec_dec_icdf( psRangeDec, SKP_Silk_pitch_lag_iCDF, 8 ) * SKP_RSHIFT( psDec->fs_kHz, 1 );
+ psDec->lagIndex[ FrameIndex ] += ec_dec_icdf( psRangeDec, psDec->pitch_lag_low_bits_iCDF, 8 );
}
prev_lagIndex = psDec->lagIndex[ FrameIndex ];
/* Get countour index */
- if( psDec->fs_kHz == 8 ) {
- /* Less codevectors used in 8 khz mode */
- SKP_Silk_range_decoder( &psDec->contourIndex[ FrameIndex ], psRangeDec, SKP_Silk_pitch_contour_NB_CDF, SKP_Silk_pitch_contour_NB_CDF_offset );
- } else {
- /* Joint for 12, 16, and 24 khz */
- SKP_Silk_range_decoder( &psDec->contourIndex[ FrameIndex ], psRangeDec, SKP_Silk_pitch_contour_CDF, SKP_Silk_pitch_contour_CDF_offset );
- }
+ psDec->contourIndex[ FrameIndex ] = ec_dec_icdf( psRangeDec, psDec->pitch_contour_iCDF, 8 );
/********************/
/* Decode LTP gains */
/********************/
/* Decode PERIndex value */
- SKP_Silk_range_decoder( &psDec->PERIndex[ FrameIndex ], psRangeDec, SKP_Silk_LTP_per_index_CDF, SKP_Silk_LTP_per_index_CDF_offset );
-
+ psDec->PERIndex[ FrameIndex ] = ec_dec_icdf( psRangeDec, SKP_Silk_LTP_per_index_iCDF, 8 );
+
for( k = 0; k < psDec->nb_subfr; k++ ) {
- SKP_Silk_range_decoder( &psDec->LTPIndex[ FrameIndex ][ k ], psRangeDec, SKP_Silk_LTP_gain_CDF_ptrs[ psDec->PERIndex[ FrameIndex ] ],
- SKP_Silk_LTP_gain_CDF_offsets[ psDec->PERIndex[ FrameIndex ] ] );
+ psDec->LTPIndex[ FrameIndex ][ k ] = ec_dec_icdf( psRangeDec, SKP_Silk_LTP_gain_iCDF_ptrs[ psDec->PERIndex[ FrameIndex ] ], 8 );
}
/**********************/
/* Decode LTP scaling */
/**********************/
- SKP_Silk_range_decoder( &psDec->LTP_scaleIndex[ FrameIndex ], psRangeDec, SKP_Silk_LTPscale_CDF, SKP_Silk_LTPscale_offset );
+ psDec->LTP_scaleIndex[ FrameIndex ] = ec_dec_icdf( psRangeDec, SKP_Silk_LTPscale_iCDF, 8 );
}
/***************/
/* Decode seed */
/***************/
- SKP_Silk_range_decoder( &seed_int, psRangeDec, SKP_Silk_Seed_CDF, SKP_Silk_Seed_offset );
- psDec->Seed[ FrameIndex ] = ( SKP_int32 )seed_int;
+ psDec->Seed[ FrameIndex ] = ec_dec_icdf( psRangeDec, SKP_Silk_Seed_iCDF, 8 );
psDec->sigtype[ FrameIndex ] = sigtype;
psDec->QuantOffsetType[ FrameIndex ] = QuantOffsetType;
@@ -162,7 +147,7 @@
/**************************************/
/* Decode Frame termination indicator */
/**************************************/
- SKP_Silk_range_decoder( &psDec->FrameTermination, psRangeDec, SKP_Silk_FrameTermination_CDF, SKP_Silk_FrameTermination_offset );
+ psDec->FrameTermination = ec_dec_icdf( psRangeDec, SKP_Silk_FrameTermination_iCDF, 8 );
/****************************************/
/* get number of bytes used so far */
--- a/src_common/SKP_Silk_decode_parameters.c
+++ b/src_common/SKP_Silk_decode_parameters.c
@@ -38,7 +38,7 @@
{
SKP_int i, k, Ix, nBytesUsed;
SKP_int pNLSF_Q15[ MAX_LPC_ORDER ], pNLSF0_Q15[ MAX_LPC_ORDER ];
- const SKP_int16 *cbk_ptr_Q14;
+ const SKP_int8 *cbk_ptr_Q7;
const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
psDecCtrl->sigtype = psDec->sigtype[ psDec->nFramesDecoded ];
@@ -108,12 +108,12 @@
psDecCtrl->PERIndex = psDec->PERIndex[ psDec->nFramesDecoded ];
/* Decode Codebook Index */
- cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ psDecCtrl->PERIndex ]; /* set pointer to start of codebook */
+ cbk_ptr_Q7 = SKP_Silk_LTP_vq_ptrs_Q7[ psDecCtrl->PERIndex ]; /* set pointer to start of codebook */
for( k = 0; k < psDec->nb_subfr; k++ ) {
Ix = psDec->LTPIndex[ psDec->nFramesDecoded ][ k ];
for( i = 0; i < LTP_ORDER; i++ ) {
- psDecCtrl->LTPCoef_Q14[ k * LTP_ORDER + i ] = cbk_ptr_Q14[ Ix * LTP_ORDER + i ];
+ psDecCtrl->LTPCoef_Q14[ k * LTP_ORDER + i ] = SKP_LSHIFT( cbk_ptr_Q7[ Ix * LTP_ORDER + i ], 7 );
}
}
--- a/src_common/SKP_Silk_decode_pulses.c
+++ b/src_common/SKP_Silk_decode_pulses.c
@@ -37,7 +37,7 @@
const SKP_int frame_length /* I Frame length (preliminary) */
)
{
- SKP_int i, j, k, iter, abs_q, nLS, bit;
+ SKP_int i, j, k, iter, abs_q, nLS;
SKP_int sum_pulses[ MAX_NB_SHELL_BLOCKS ], nLshifts[ MAX_NB_SHELL_BLOCKS ];
SKP_int *pulses_ptr;
const SKP_uint16 *cdf_ptr;
@@ -93,8 +93,7 @@
abs_q = pulses_ptr[ k ];
for( j = 0; j < nLS; j++ ) {
abs_q = SKP_LSHIFT( abs_q, 1 );
- SKP_Silk_range_decoder( &bit, psRangeDec, SKP_Silk_lsb_CDF, 1 );
- abs_q += bit;
+ abs_q += ec_dec_icdf( psRangeDec, SKP_Silk_lsb_iCDF, 8 );
}
pulses_ptr[ k ] = abs_q;
}
--- a/src_common/SKP_Silk_decoder_set_fs.c
+++ b/src_common/SKP_Silk_decoder_set_fs.c
@@ -43,10 +43,26 @@
psDec->LPC_order = MIN_LPC_ORDER;
psDec->psNLSF_CB[ 0 ] = &SKP_Silk_NLSF_CB0_10;
psDec->psNLSF_CB[ 1 ] = &SKP_Silk_NLSF_CB1_10;
+ if( psDec->nb_subfr == MAX_NB_SUBFR ){
+ psDec->pitch_contour_iCDF = SKP_Silk_pitch_contour_NB_iCDF;
+ } else if( psDec->nb_subfr == MAX_NB_SUBFR / 2 ){
+ psDec->pitch_contour_iCDF = SKP_Silk_pitch_contour_10_ms_NB_iCDF;
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
+ }
} else {
psDec->LPC_order = MAX_LPC_ORDER;
psDec->psNLSF_CB[ 0 ] = &SKP_Silk_NLSF_CB0_16;
psDec->psNLSF_CB[ 1 ] = &SKP_Silk_NLSF_CB1_16;
+ if( psDec->nb_subfr == MAX_NB_SUBFR ){
+ psDec->pitch_contour_iCDF = SKP_Silk_pitch_contour_iCDF;
+ } else if( psDec->nb_subfr == MAX_NB_SUBFR / 2 ){
+ psDec->pitch_contour_iCDF = SKP_Silk_pitch_contour_10_ms_iCDF;
+ } else {
+ /* Unsupported number of frames */
+ SKP_assert( 0 );
+ }
}
/* Reset part of the decoder state */
SKP_memset( psDec->sLPC_Q14, 0, MAX_LPC_ORDER * sizeof( SKP_int32 ) );
@@ -61,15 +77,19 @@
if( fs_kHz == 24 ) {
psDec->HP_A = SKP_Silk_Dec_A_HP_24;
psDec->HP_B = SKP_Silk_Dec_B_HP_24;
+ psDec->pitch_lag_low_bits_iCDF = SKP_Silk_uniform12_iCDF;
} else if( fs_kHz == 16 ) {
psDec->HP_A = SKP_Silk_Dec_A_HP_16;
psDec->HP_B = SKP_Silk_Dec_B_HP_16;
+ psDec->pitch_lag_low_bits_iCDF = SKP_Silk_uniform8_iCDF;
} else if( fs_kHz == 12 ) {
psDec->HP_A = SKP_Silk_Dec_A_HP_12;
psDec->HP_B = SKP_Silk_Dec_B_HP_12;
+ psDec->pitch_lag_low_bits_iCDF = SKP_Silk_uniform6_iCDF;
} else if( fs_kHz == 8 ) {
psDec->HP_A = SKP_Silk_Dec_A_HP_8;
psDec->HP_B = SKP_Silk_Dec_B_HP_8;
+ psDec->pitch_lag_low_bits_iCDF = SKP_Silk_uniform4_iCDF;
} else {
/* unsupported sampling rate */
SKP_assert( 0 );
--- a/src_common/SKP_Silk_define.h
+++ b/src_common/SKP_Silk_define.h
@@ -46,20 +46,17 @@
# define FIXED_POINT 0
#endif
-/* MAX DELTA LAG used for multiframe packets */
-#define MAX_DELTA_LAG 10
-
/* Limits on bitrate */
#define MIN_TARGET_RATE_BPS 5000
-#define MAX_TARGET_RATE_BPS 100000
+#define MAX_TARGET_RATE_BPS SKP_uint16_MAX
/* Transition bitrates between modes */
-#define SWB2WB_BITRATE_BPS 25000
-#define WB2SWB_BITRATE_BPS 30000
-#define WB2MB_BITRATE_BPS 14000
-#define MB2WB_BITRATE_BPS 18000
-#define MB2NB_BITRATE_BPS 10000
-#define NB2MB_BITRATE_BPS 14000
+#define SWB2WB_BITRATE_BPS 24000
+#define WB2SWB_BITRATE_BPS 28000
+#define WB2MB_BITRATE_BPS 12000
+#define MB2WB_BITRATE_BPS 16000
+#define MB2NB_BITRATE_BPS 9000
+#define NB2MB_BITRATE_BPS 12000
/* Integration/hysteresis threshold for lowering internal sample frequency */
/* 30000000 -> 6 sec if bitrate is 5000 bps below limit; 3 sec if bitrate is 10000 bps below limit */
@@ -135,10 +132,6 @@
#define FIND_PITCH_LPC_WIN_MS_2_SF ( 10 + (LA_PITCH_MS << 1) )
#define FIND_PITCH_LPC_WIN_MAX ( FIND_PITCH_LPC_WIN_MS * MAX_FS_KHZ )
-#define PITCH_EST_COMPLEXITY_HC_MODE SKP_Silk_PE_MAX_COMPLEX
-#define PITCH_EST_COMPLEXITY_MC_MODE SKP_Silk_PE_MID_COMPLEX
-#define PITCH_EST_COMPLEXITY_LC_MODE SKP_Silk_PE_MIN_COMPLEX
-
/* Milliseconds of lookahead for noise shape analysis */
#define LA_SHAPE_MS 5
#define LA_SHAPE_MAX ( LA_SHAPE_MS * MAX_FS_KHZ )
@@ -150,13 +143,13 @@
#define MAX_ARITHM_BYTES 1024
/* dB level of lowest gain quantization level */
-#define MIN_QGAIN_DB 6
+#define MIN_QGAIN_DB 2
/* dB level of highest gain quantization level */
-#define MAX_QGAIN_DB 86
+#define MAX_QGAIN_DB 88
/* Number of gain quantization levels */
#define N_LEVELS_QGAIN 64
/* Max increase in gain quantization index */
-#define MAX_DELTA_GAIN_QUANT 40
+#define MAX_DELTA_GAIN_QUANT 38
/* Max decrease in gain quantization index */
#define MIN_DELTA_GAIN_QUANT -4
@@ -164,7 +157,7 @@
#define OFFSET_VL_Q10 32
#define OFFSET_VH_Q10 100
#define OFFSET_UVL_Q10 100
-#define OFFSET_UVH_Q10 256
+#define OFFSET_UVH_Q10 240
/* Maximum numbers of iterations used to stabilize a LPC vector */
#define MAX_LPC_STABILIZE_ITERATIONS 20
--- a/src_common/SKP_Silk_encode_parameters.c
+++ b/src_common/SKP_Silk_encode_parameters.c
@@ -48,7 +48,7 @@
/*********************************************/
/* Encode VAD flag */
/*********************************************/
- ec_enc_bit_prob( psRangeEnc, psEncC->vadFlag, 65536 - SKP_Silk_vadflag_CDF[ 1 ] );
+ ec_enc_icdf( psRangeEnc, psEncC->vadFlag, SKP_Silk_vadflag_iCDF, 8 );
/*******************************************/
/* Encode signal type and quantizer offset */
@@ -56,12 +56,10 @@
typeOffset = 2 * psEncCtrlC->sigtype + psEncCtrlC->QuantOffsetType;
if( psEncC->nFramesInPayloadBuf == 0 ) {
/* first frame in packet: independent coding */
- ec_encode_bin( psRangeEnc, SKP_Silk_type_offset_CDF[ typeOffset ],
- SKP_Silk_type_offset_CDF[ typeOffset + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, typeOffset, SKP_Silk_type_offset_iCDF, 8 );
} else {
/* condidtional coding */
- ec_encode_bin( psRangeEnc, SKP_Silk_type_offset_joint_CDF[ psEncC->typeOffsetPrev ][ typeOffset ],
- SKP_Silk_type_offset_joint_CDF[ psEncC->typeOffsetPrev ][ typeOffset + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, typeOffset, SKP_Silk_type_offset_joint_iCDF[ psEncC->typeOffsetPrev ], 8 );
}
psEncC->typeOffsetPrev = typeOffset;
@@ -73,19 +71,18 @@
#endif
/* first subframe */
if( psEncC->nFramesInPayloadBuf == 0 ) {
- /* first frame in packet: independent coding */
- ec_encode_bin( psRangeEnc, SKP_Silk_gain_CDF[ psEncCtrlC->sigtype ][ psEncCtrlC->GainsIndices[ 0 ] ],
- SKP_Silk_gain_CDF[ psEncCtrlC->sigtype ][ psEncCtrlC->GainsIndices[ 0 ] + 1 ], 16 );
+ /* first frame in packet: independent coding, in two stages: MSB bits followed by 3 LSBs */
+ ec_enc_icdf( psRangeEnc, SKP_RSHIFT( psEncCtrlC->GainsIndices[ 0 ], 3 ), SKP_Silk_gain_iCDF[ psEncCtrlC->sigtype ], 8 );
+ //ec_enc_bits( psRangeEnc, psEncCtrlC->GainsIndices[ 0 ] & 7, 3 ); /* doesn't work somehow */
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->GainsIndices[ 0 ] & 7, SKP_Silk_uniform8_iCDF, 8 );
} else {
/* condidtional coding */
- ec_encode_bin( psRangeEnc, SKP_Silk_delta_gain_CDF[ psEncCtrlC->GainsIndices[ 0 ] ],
- SKP_Silk_delta_gain_CDF[ psEncCtrlC->GainsIndices[ 0 ] + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->GainsIndices[ 0 ], SKP_Silk_delta_gain_iCDF, 8 );
}
/* remaining subframes */
for( i = 1; i < psEncC->nb_subfr; i++ ) {
- ec_encode_bin( psRangeEnc, SKP_Silk_delta_gain_CDF[ psEncCtrlC->GainsIndices[ i ] ],
- SKP_Silk_delta_gain_CDF[ psEncCtrlC->GainsIndices[ i ] + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->GainsIndices[ i ], SKP_Silk_delta_gain_iCDF, 8 );
}
#ifdef SAVE_ALL_INTERNAL_DATA
@@ -103,16 +100,15 @@
/* Range encoding of the NLSF path */
psNLSF_CB = psEncC->psNLSF_CB[ psEncCtrlC->sigtype ];
for( i = 0; i < psNLSF_CB->nStages; i++ ) {
- ec_encode_bin( psRangeEnc, psNLSF_CB->StartPtr[ i ][ psEncCtrlC->NLSFIndices[ i ] ],
- psNLSF_CB->StartPtr[ i ][ psEncCtrlC->NLSFIndices[ i ] + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->NLSFIndices[ i ], psNLSF_CB->StartPtr[ i ], 8 );
}
/* Encode NLSF interpolation factor */
SKP_assert( psEncC->useInterpolatedNLSFs == 1 || psEncCtrlC->NLSFInterpCoef_Q2 == ( 1 << 2 ) );
- ec_encode_bin( psRangeEnc, SKP_Silk_NLSF_interpolation_factor_CDF[ psEncCtrlC->NLSFInterpCoef_Q2 ],
- SKP_Silk_NLSF_interpolation_factor_CDF[ psEncCtrlC->NLSFInterpCoef_Q2 + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->NLSFInterpCoef_Q2, SKP_Silk_NLSF_interpolation_factor_iCDF, 8 );
#ifdef SAVE_ALL_INTERNAL_DATA
+ DEBUG_STORE_DATA( lsf_interpol.dat, &psEncCtrlC->NLSFInterpCoef_Q2, sizeof(int) );
nBytes_after = SKP_RSHIFT( ec_enc_tell( psRangeEnc, 0 ) + 7, 3 );
nBytes_after -= nBytes_before; // bytes just added
DEBUG_STORE_DATA( nBytes_LSF.dat, &nBytes_after, sizeof( SKP_int ) );
@@ -130,32 +126,24 @@
if( psEncC->nFramesInPayloadBuf > 0 && psEncC->prev_sigtype == SIG_TYPE_VOICED ) {
/* Delta Encoding */
delta_lagIndex = psEncCtrlC->lagIndex - psEncC->prev_lagIndex;
- if( delta_lagIndex > MAX_DELTA_LAG ) {
- delta_lagIndex = ( MAX_DELTA_LAG << 1 ) + 1;
- } else if ( delta_lagIndex < -MAX_DELTA_LAG ) {
- delta_lagIndex = ( MAX_DELTA_LAG << 1 ) + 1;
+ if( delta_lagIndex < -8 || delta_lagIndex > 11 ) {
+ delta_lagIndex = 0;
} else {
- delta_lagIndex = delta_lagIndex + MAX_DELTA_LAG;
+ delta_lagIndex = delta_lagIndex + 9;
encode_absolute_lagIndex = 0; /* Only use delta */
}
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_delta_CDF[ delta_lagIndex ],
- SKP_Silk_pitch_delta_CDF[ delta_lagIndex + 1 ], 16 );
+ SKP_assert( delta_lagIndex < 21 );
+ ec_enc_icdf( psRangeEnc, delta_lagIndex, SKP_Silk_pitch_delta_iCDF, 8 );
}
if( encode_absolute_lagIndex ) {
/* Absolute encoding */
- if( psEncC->fs_kHz == 8 ) {
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_lag_NB_CDF[ psEncCtrlC->lagIndex ],
- SKP_Silk_pitch_lag_NB_CDF[ psEncCtrlC->lagIndex + 1 ], 16 );
- } else if( psEncC->fs_kHz == 12 ) {
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_lag_MB_CDF[ psEncCtrlC->lagIndex ],
- SKP_Silk_pitch_lag_MB_CDF[ psEncCtrlC->lagIndex + 1 ], 16 );
- } else if( psEncC->fs_kHz == 16 ) {
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_lag_WB_CDF[ psEncCtrlC->lagIndex ],
- SKP_Silk_pitch_lag_WB_CDF[ psEncCtrlC->lagIndex + 1 ], 16 );
- } else {
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_lag_SWB_CDF[ psEncCtrlC->lagIndex ],
- SKP_Silk_pitch_lag_SWB_CDF[ psEncCtrlC->lagIndex + 1 ], 16 );
- }
+ SKP_int32 pitch_high_bits, pitch_low_bits;
+ pitch_high_bits = SKP_DIV32_16( psEncCtrlC->lagIndex, SKP_RSHIFT( psEncC->fs_kHz, 1 ) );
+ pitch_low_bits = psEncCtrlC->lagIndex - SKP_SMULBB( pitch_high_bits, SKP_RSHIFT( psEncC->fs_kHz, 1 ) );
+ SKP_assert( pitch_low_bits < psEncC->fs_kHz / 2 );
+ SKP_assert( pitch_high_bits < 32 );
+ ec_enc_icdf( psRangeEnc, pitch_high_bits, SKP_Silk_pitch_lag_iCDF, 8 );
+ ec_enc_icdf( psRangeEnc, pitch_low_bits, psEncC->pitch_lag_low_bits_iCDF, 8 );
}
psEncC->prev_lagIndex = psEncCtrlC->lagIndex;
@@ -167,16 +155,12 @@
#ifdef SAVE_ALL_INTERNAL_DATA
nBytes_before = SKP_RSHIFT( ec_enc_tell( psRangeEnc, 0 ) + 7, 3 );
#endif
- /* countour index */
- if( psEncC->fs_kHz == 8 ) {
- /* Less codevectors used in 8 khz mode */
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_contour_NB_CDF[ psEncCtrlC->contourIndex ],
- SKP_Silk_pitch_contour_NB_CDF[ psEncCtrlC->contourIndex + 1 ], 16 );
- } else {
- /* Joint for 12, 16, 24 khz */
- ec_encode_bin( psRangeEnc, SKP_Silk_pitch_contour_CDF[ psEncCtrlC->contourIndex ],
- SKP_Silk_pitch_contour_CDF[ psEncCtrlC->contourIndex + 1 ], 16 );
- }
+ /* Countour index */
+ SKP_assert( ( psEncCtrlC->contourIndex < 34 && psEncC->fs_kHz > 8 && psEncC->nb_subfr == 4 ) ||
+ ( psEncCtrlC->contourIndex < 11 && psEncC->fs_kHz == 8 && psEncC->nb_subfr == 4 ) ||
+ ( psEncCtrlC->contourIndex < 12 && psEncC->fs_kHz > 8 && psEncC->nb_subfr == 2 ) ||
+ ( psEncCtrlC->contourIndex < 3 && psEncC->fs_kHz == 8 && psEncC->nb_subfr == 2 ) );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->contourIndex, psEncC->pitch_contour_iCDF, 8 );
#ifdef SAVE_ALL_INTERNAL_DATA
nBytes_after = SKP_RSHIFT( ec_enc_tell( psRangeEnc, 0 ) + 7, 3 );
nBytes_contourIndex = nBytes_after - nBytes_before; // bytes just added
@@ -190,20 +174,17 @@
#endif
/* PERIndex value */
- ec_encode_bin( psRangeEnc, SKP_Silk_LTP_per_index_CDF[ psEncCtrlC->PERIndex ],
- SKP_Silk_LTP_per_index_CDF[ psEncCtrlC->PERIndex + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->PERIndex, SKP_Silk_LTP_per_index_iCDF, 8 );
/* Codebook Indices */
for( k = 0; k < psEncC->nb_subfr; k++ ) {
- ec_encode_bin( psRangeEnc, SKP_Silk_LTP_gain_CDF_ptrs[ psEncCtrlC->PERIndex ][ psEncCtrlC->LTPIndex[ k ] ],
- SKP_Silk_LTP_gain_CDF_ptrs[ psEncCtrlC->PERIndex ][ psEncCtrlC->LTPIndex[ k ] + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->LTPIndex[ k ], SKP_Silk_LTP_gain_iCDF_ptrs[ psEncCtrlC->PERIndex ], 8 );
}
/**********************/
/* Encode LTP scaling */
/**********************/
- ec_encode_bin( psRangeEnc, SKP_Silk_LTPscale_CDF[ psEncCtrlC->LTP_scaleIndex ],
- SKP_Silk_LTPscale_CDF[ psEncCtrlC->LTP_scaleIndex + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->LTP_scaleIndex, SKP_Silk_LTPscale_iCDF, 8 );
#ifdef SAVE_ALL_INTERNAL_DATA
nBytes_after = SKP_RSHIFT( ec_enc_tell( psRangeEnc, 0 ) + 7, 3 );
nBytes_LTP = nBytes_after - nBytes_before; // bytes just added
@@ -228,6 +209,5 @@
/***************/
/* Encode seed */
/***************/
- ec_encode_bin( psRangeEnc, SKP_Silk_Seed_CDF[ psEncCtrlC->Seed ],
- SKP_Silk_Seed_CDF[ psEncCtrlC->Seed + 1 ], 16 );
+ ec_enc_icdf( psRangeEnc, psEncCtrlC->Seed, SKP_Silk_Seed_iCDF, 8 );
}
--- a/src_common/SKP_Silk_encode_pulses.c
+++ b/src_common/SKP_Silk_encode_pulses.c
@@ -207,10 +207,10 @@
abs_q = (SKP_int8)SKP_abs( pulses_ptr[ k ] );
for( j = nLS; j > 0; j-- ) {
bit = SKP_RSHIFT( abs_q, j ) & 1;
- ec_enc_bit_prob( psRangeEnc, bit, 65536 - SKP_Silk_lsb_CDF[ 1 ] );
+ ec_enc_icdf( psRangeEnc, bit, SKP_Silk_lsb_iCDF, 8 );
}
bit = abs_q & 1;
- ec_enc_bit_prob( psRangeEnc, bit, 65536 - SKP_Silk_lsb_CDF[ 1 ] );
+ ec_enc_icdf( psRangeEnc, bit, SKP_Silk_lsb_iCDF, 8 );
}
}
}
--- a/src_common/SKP_Silk_gain_quant.c
+++ b/src_common/SKP_Silk_gain_quant.c
@@ -27,9 +27,9 @@
#include "SKP_Silk_main.h"
-#define OFFSET ( ( MIN_QGAIN_DB * 128 ) / 6 + 16 * 128 )
-#define SCALE_Q16 ( ( 65536 * ( N_LEVELS_QGAIN - 1 ) ) / ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) )
-#define INV_SCALE_Q16 ( ( 65536 * ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) ) / ( N_LEVELS_QGAIN - 1 ) )
+#define OFFSET ( ( MIN_QGAIN_DB * 128 ) / 6 + 16 * 128 )
+#define SCALE_Q16 ( ( 65536 * ( N_LEVELS_QGAIN - 1 ) ) / ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) )
+#define INV_SCALE_Q16 ( ( 65536 * ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) ) / ( N_LEVELS_QGAIN - 1 ) )
/* Gain scalar quantization with hysteresis, uniform on log scale */
void SKP_Silk_gains_quant(
@@ -40,7 +40,7 @@
const SKP_int nb_subfr /* I number of subframes */
)
{
- SKP_int k;
+ SKP_int k, double_step_size_threshold;
for( k = 0; k < nb_subfr; k++ ) {
/* Add half of previous quantization error, convert to log scale, scale, floor() */
@@ -50,18 +50,32 @@
if( ind[ k ] < *prev_ind ) {
ind[ k ]++;
}
+ ind[ k ] = SKP_max_int( ind[ k ], 0 );
/* Compute delta indices and limit */
if( k == 0 && conditional == 0 ) {
/* Full index */
- ind[ k ] = SKP_LIMIT_int( ind[ k ], 0, N_LEVELS_QGAIN - 1 );
- ind[ k ] = SKP_max_int( ind[ k ], *prev_ind + MIN_DELTA_GAIN_QUANT );
+ ind[ k ] = SKP_LIMIT_int( ind[ k ], *prev_ind + MIN_DELTA_GAIN_QUANT, N_LEVELS_QGAIN - 1 );
*prev_ind = ind[ k ];
} else {
/* Delta index */
- ind[ k ] = SKP_LIMIT_int( ind[ k ] - *prev_ind, MIN_DELTA_GAIN_QUANT, MAX_DELTA_GAIN_QUANT );
+ ind[ k ] = ind[ k ] - *prev_ind;
+
+ /* Double the quantization step size is doubled for large gain increases, so that the max gain level can be reached */
+ double_step_size_threshold = 2 * MAX_DELTA_GAIN_QUANT - N_LEVELS_QGAIN + *prev_ind;
+ if( ind[ k ] > double_step_size_threshold ) {
+ ind[ k ] = double_step_size_threshold + SKP_RSHIFT( ind[ k ] - double_step_size_threshold + 1, 1 );
+ }
+
+ ind[ k ] = SKP_LIMIT_int( ind[ k ], MIN_DELTA_GAIN_QUANT, MAX_DELTA_GAIN_QUANT );
+
/* Accumulate deltas */
- *prev_ind += ind[ k ];
+ if( ind[ k ] > double_step_size_threshold ) {
+ *prev_ind += SKP_LSHIFT( ind[ k ], 1 ) - double_step_size_threshold;
+ } else {
+ *prev_ind += ind[ k ];
+ }
+
/* Shift to make non-negative */
ind[ k ] -= MIN_DELTA_GAIN_QUANT;
}
@@ -80,7 +94,7 @@
const SKP_int nb_subfr /* I number of subframes */
)
{
- SKP_int k;
+ SKP_int k, ind_tmp, double_step_size_threshold;
for( k = 0; k < nb_subfr; k++ ) {
if( k == 0 && conditional == 0 ) {
@@ -87,7 +101,15 @@
*prev_ind = ind[ k ];
} else {
/* Delta index */
- *prev_ind += ind[ k ] + MIN_DELTA_GAIN_QUANT;
+ ind_tmp = ind[ k ] + MIN_DELTA_GAIN_QUANT;
+
+ /* Accumulate deltas */
+ double_step_size_threshold = 2 * MAX_DELTA_GAIN_QUANT - N_LEVELS_QGAIN + *prev_ind;
+ if( ind[ k ] > double_step_size_threshold ) {
+ *prev_ind += SKP_LSHIFT( ind_tmp, 1 ) - double_step_size_threshold;
+ } else {
+ *prev_ind += ind_tmp;
+ }
}
/* Convert to linear scale and scale */
--- a/src_common/SKP_Silk_main.h
+++ b/src_common/SKP_Silk_main.h
@@ -43,6 +43,12 @@
#include "entdec.h"
+/* Uncomment the next line to store intermadiate data to files */
+//#define SAVE_ALL_INTERNAL_DATA 1
+/* Uncomment the next line to force a fixed internal sampling rate (independent of what bitrate is used */
+//#define FORCE_INTERNAL_FS_KHZ 16
+
+
/* Encodes signs of excitation */
void SKP_Silk_encode_signs(
ec_enc *psRangeEnc, /* I/O Compressor data structure */
@@ -138,6 +144,29 @@
const SKP_int x1[ MAX_LPC_ORDER ], /* I second vector */
const SKP_int ifact_Q2, /* I interp. factor, weight on 2nd vector */
const SKP_int d /* I number of parameters */
+);
+
+/* LTP tap quantizer */
+void SKP_Silk_quant_LTP_gains(
+ SKP_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (un)quantized LTP gains */
+ SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Codebook Index */
+ SKP_int *periodicity_index, /* O Periodicity Index */
+ const SKP_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error Weights in Q18 */
+ SKP_int mu_Q10, /* I Mu value (R/D tradeoff) */
+ SKP_int lowComplexity, /* I Flag for low complexity */
+ const SKP_int nb_subfr /* I number of subframes */
+);
+
+/* Entropy constrained matrix-weighted VQ, for a single input data vector */
+void SKP_Silk_VQ_WMat_EC(
+ SKP_int *ind, /* O index of best codebook vector */
+ SKP_int32 *rate_dist_Q14, /* O best weighted quantization error + mu * rate*/
+ const SKP_int16 *in_Q14, /* I input vector to be quantized */
+ const SKP_int32 *W_Q18, /* I weighting matrix */
+ const SKP_int8 *cb_Q7, /* I codebook */
+ const SKP_int8 *cl_Q4, /* I code length for each codebook vector */
+ const SKP_int mu_Q10, /* I tradeoff between weighted error and rate */
+ SKP_int L /* I number of vectors in codebook */
);
/***********************************/
--- a/src_common/SKP_Silk_perceptual_parameters.h
+++ /dev/null
@@ -1,115 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_PERCEPTUAL_PARAMETERS_H
-#define SKP_SILK_PERCEPTUAL_PARAMETERS_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* reduction in coding SNR during low speech activity */
-#define BG_SNR_DECR_dB 4.0f
-
-/* factor for reducing quantization noise during voiced speech */
-#define HARM_SNR_INCR_dB 2.0f
-
-/* factor for reducing quantization noise for unvoiced sparse signals */
-#define SPARSE_SNR_INCR_dB 2.0f
-
-/* threshold for sparseness measure above which to use lower quantization offset during unvoiced */
-#define SPARSENESS_THRESHOLD_QNT_OFFSET 0.75f
-
-
-/* noise shaping filter chirp factor */
-#define BANDWIDTH_EXPANSION 0.95f
-
-/* difference between chirp factors for analysis and synthesis noise shaping filters at low bitrates */
-#define LOW_RATE_BANDWIDTH_EXPANSION_DELTA 0.01f
-
-/* factor to reduce all bandwdith expansion coefficients for super wideband, relative to wideband */
-#define SWB_BANDWIDTH_EXPANSION_REDUCTION 1.0f
-
-/* gain reduction for fricatives */
-#define DE_ESSER_COEF_SWB_dB 2.0f
-#define DE_ESSER_COEF_WB_dB 1.0f
-
-/* extra harmonic boosting (signal shaping) at low bitrates */
-#define LOW_RATE_HARMONIC_BOOST 0.1f
-
-/* extra harmonic boosting (signal shaping) for noisy input signals */
-#define LOW_INPUT_QUALITY_HARMONIC_BOOST 0.1f
-
-/* harmonic noise shaping */
-#define HARMONIC_SHAPING 0.3f
-
-/* extra harmonic noise shaping for high bitrates or noisy input */
-#define HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING 0.2f
-
-
-/* parameter for shaping noise towards higher frequencies */
-#define HP_NOISE_COEF 0.3f
-
-/* parameter for shaping noise extra towards higher frequencies during voiced speech */
-#define HARM_HP_NOISE_COEF 0.4f
-
-/* parameter for applying a high-pass tilt to the input signal */
-#define INPUT_TILT 0.04f
-
-/* parameter for extra high-pass tilt to the input signal at high rates */
-#define HIGH_RATE_INPUT_TILT 0.04f
-
-/* parameter for reducing noise at the very low frequencies */
-#define LOW_FREQ_SHAPING 3.0f
-
-/* less reduction of noise at the very low frequencies for signals with low SNR at low frequencies */
-#define LOW_QUALITY_LOW_FREQ_SHAPING_DECR 0.5f
-
-/* fraction added to first autocorrelation value */
-#define SHAPE_WHITE_NOISE_FRACTION 3.8147e-5f
-
-/* fraction of first autocorrelation value added to residual energy value; limits prediction gain */
-#define SHAPE_MIN_ENERGY_RATIO 1.526e-5f // 1.526e-5 = 1/65536
-
-/* noise floor to put a low limit on the quantization step size */
-#define NOISE_FLOOR_dB 4.0f
-
-/* noise floor relative to active speech gain level */
-#define RELATIVE_MIN_GAIN_dB -50.0f
-
-/* subframe smoothing coefficient for determining active speech gain level (lower -> more smoothing) */
-#define GAIN_SMOOTHING_COEF 1e-3f
-
-/* subframe smoothing coefficient for HarmBoost, HarmShapeGain, Tilt (lower -> more smoothing) */
-#define SUBFR_SMTH_COEF 0.4f
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/src_common/SKP_Silk_pulses_to_bytes.c
+++ b/src_common/SKP_Silk_pulses_to_bytes.c
@@ -46,6 +46,7 @@
SKP_int i, j, iter;
SKP_int8 *q_ptr;
SKP_int32 sum_abs_val, nBytes, acc_nBytes;
+
/* Take the absolute value of the pulses */
iter = psEncC->frame_length / SHELL_CODEC_FRAME_LENGTH;
@@ -77,5 +78,5 @@
acc_nBytes = SKP_RSHIFT_ROUND( acc_nBytes, 15 ); // Q0
acc_nBytes = SKP_SAT16( acc_nBytes ); // just to be sure // Q0
- return(( SKP_int )acc_nBytes);
+ return (SKP_int)acc_nBytes;
}
--- /dev/null
+++ b/src_common/SKP_Silk_quant_LTP_gains.c
@@ -1,0 +1,107 @@
+/***********************************************************************
+Copyright (c) 2006-2010, 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.
+***********************************************************************/
+
+#include "SKP_Silk_main.h"
+
+void SKP_Silk_quant_LTP_gains(
+ SKP_int16 B_Q14[ MAX_NB_SUBFR * LTP_ORDER ], /* I/O (un)quantized LTP gains */
+ SKP_int cbk_index[ MAX_NB_SUBFR ], /* O Codebook Index */
+ SKP_int *periodicity_index, /* O Periodicity Index */
+ const SKP_int32 W_Q18[ MAX_NB_SUBFR*LTP_ORDER*LTP_ORDER ], /* I Error Weights in Q18 */
+ SKP_int mu_Q10, /* I Mu value (R/D tradeoff) */
+ SKP_int lowComplexity, /* I Flag for low complexity */
+ const SKP_int nb_subfr /* I number of subframes */
+)
+{
+ SKP_int j, k, temp_idx[ MAX_NB_SUBFR ], cbk_size;
+ const SKP_int8 *cl_ptr_Q4;
+ const SKP_int8 *cbk_ptr_Q7;
+ const SKP_int16 *b_Q14_ptr;
+ const SKP_int32 *W_Q18_ptr;
+ SKP_int32 rate_dist_Q14_subfr, rate_dist_Q14, min_rate_dist_Q14;
+
+
+TIC(quant_LTP)
+
+ /***************************************************/
+ /* iterate over different codebooks with different */
+ /* rates/distortions, and choose best */
+ /***************************************************/
+ min_rate_dist_Q14 = SKP_int32_MAX;
+ for( k = 0; k < 3; k++ ) {
+ cl_ptr_Q4 = SKP_Silk_LTP_gain_BITS_Q4_ptrs[ k ];
+ cbk_ptr_Q7 = SKP_Silk_LTP_vq_ptrs_Q7[ k ];
+ cbk_size = SKP_Silk_LTP_vq_sizes[ k ];
+
+ /* Setup pointer to first subframe */
+ W_Q18_ptr = W_Q18;
+ b_Q14_ptr = B_Q14;
+
+ rate_dist_Q14 = 0;
+ for( j = 0; j < nb_subfr; j++ ) {
+
+ SKP_Silk_VQ_WMat_EC(
+ &temp_idx[ j ], /* O index of best codebook vector */
+ &rate_dist_Q14_subfr, /* O best weighted quantization error + mu * rate */
+ b_Q14_ptr, /* I input vector to be quantized */
+ W_Q18_ptr, /* I weighting matrix */
+ cbk_ptr_Q7, /* I codebook */
+ cl_ptr_Q4, /* I code length for each codebook vector */
+ mu_Q10, /* I tradeoff between weighted error and rate */
+ cbk_size /* I number of vectors in codebook */
+ );
+
+ rate_dist_Q14 = SKP_ADD_POS_SAT32( rate_dist_Q14, rate_dist_Q14_subfr );
+
+ b_Q14_ptr += LTP_ORDER;
+ W_Q18_ptr += LTP_ORDER * LTP_ORDER;
+ }
+
+ /* Avoid never finding a codebook */
+ rate_dist_Q14 = SKP_min( SKP_int32_MAX - 1, rate_dist_Q14 );
+
+ if( rate_dist_Q14 < min_rate_dist_Q14 ) {
+ min_rate_dist_Q14 = rate_dist_Q14;
+ SKP_memcpy( cbk_index, temp_idx, nb_subfr * sizeof( SKP_int ) );
+ *periodicity_index = k;
+ }
+
+ /* Break early in low-complexity mode if rate distortion is below threshold */
+ if( lowComplexity && ( rate_dist_Q14 < SKP_Silk_LTP_gain_middle_avg_RD_Q14 ) ) {
+ break;
+ }
+ }
+
+ cbk_ptr_Q7 = SKP_Silk_LTP_vq_ptrs_Q7[ *periodicity_index ];
+ for( j = 0; j < nb_subfr; j++ ) {
+ for( k = 0; k < LTP_ORDER; k++ ) {
+ B_Q14[ j * LTP_ORDER + k ] = SKP_LSHIFT( cbk_ptr_Q7[ cbk_index[ j ] * LTP_ORDER + k ], 7 );
+ }
+ }
+TOC(quant_LTP)
+}
+
--- a/src_common/SKP_Silk_setup_complexity.h
+++ b/src_common/SKP_Silk_setup_complexity.h
@@ -44,8 +44,8 @@
if( Complexity == 0 || LOW_COMPLEXITY_ONLY ) {
/* Low complexity */
psEncC->Complexity = 0;
- psEncC->pitchEstimationComplexity = PITCH_EST_COMPLEXITY_LC_MODE;
- psEncC->pitchEstimationThreshold_Q16 = SKP_FIX_CONST( FIND_PITCH_CORRELATION_THRESHOLD_LC_MODE, 16 );
+ psEncC->pitchEstimationComplexity = SKP_Silk_PE_MIN_COMPLEX;
+ psEncC->pitchEstimationThreshold_Q16 = SKP_FIX_CONST( FIND_PITCH_CORRELATION_THRESHOLD_LOW_COMPL_MODE, 16 );
psEncC->pitchEstimationLPCOrder = 6;
psEncC->shapingLPCOrder = 8;
psEncC->la_shape = 3 * psEncC->fs_kHz;
@@ -57,8 +57,8 @@
} else if( Complexity == 1 ) {
/* Medium complexity */
psEncC->Complexity = 1;
- psEncC->pitchEstimationComplexity = PITCH_EST_COMPLEXITY_MC_MODE;
- psEncC->pitchEstimationThreshold_Q16 = SKP_FIX_CONST( FIND_PITCH_CORRELATION_THRESHOLD_MC_MODE, 16 );
+ psEncC->pitchEstimationComplexity = SKP_Silk_PE_MID_COMPLEX;
+ psEncC->pitchEstimationThreshold_Q16 = SKP_FIX_CONST( FIND_PITCH_CORRELATION_THRESHOLD_MID_COMPL_MODE, 16 );
psEncC->pitchEstimationLPCOrder = 12;
psEncC->shapingLPCOrder = 12;
psEncC->la_shape = 5 * psEncC->fs_kHz;
@@ -70,8 +70,8 @@
} else if( Complexity == 2 ) {
/* High complexity */
psEncC->Complexity = 2;
- psEncC->pitchEstimationComplexity = PITCH_EST_COMPLEXITY_HC_MODE;
- psEncC->pitchEstimationThreshold_Q16 = SKP_FIX_CONST( FIND_PITCH_CORRELATION_THRESHOLD_HC_MODE, 16 );
+ psEncC->pitchEstimationComplexity = SKP_Silk_PE_MAX_COMPLEX;
+ psEncC->pitchEstimationThreshold_Q16 = SKP_FIX_CONST( FIND_PITCH_CORRELATION_THRESHOLD_HI_COMPL_MODE, 16 );
psEncC->pitchEstimationLPCOrder = 16;
psEncC->shapingLPCOrder = 16;
psEncC->la_shape = 5 * psEncC->fs_kHz;
--- a/src_common/SKP_Silk_structs.h
+++ b/src_common/SKP_Silk_structs.h
@@ -130,9 +130,8 @@
const SKP_int *NDeltaMin_Q15;
/* Fields for arithmetic (de)coding */
- const SKP_uint16 *CDF;
- const SKP_uint16 * const *StartPtr;
- const SKP_int *MiddleIx;
+ const SKP_uint8 *CDF;
+ const SKP_uint8 * const *StartPtr;
} SKP_Silk_NLSF_CB_struct;
/********************************/
@@ -180,11 +179,14 @@
SKP_int pitchEstimationLPCOrder; /* Whitening filter order for pitch estimator */
SKP_int32 pitchEstimationThreshold_Q16; /* Threshold for pitch estimator */
SKP_int LTPQuantLowComplexity; /* Flag for low complexity LTP quantization */
+ SKP_int mu_LTP_Q10; /* Rate-distortion tradeoff in LTP quantization */
SKP_int NLSF_MSVQ_Survivors; /* Number of survivors in NLSF MSVQ */
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 warping_Q16; /* Warping parameter for warped noise shaping */
SKP_int useCBR; /* Flag to enable constant bitrate */
+ 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 */
/* Input/output buffering */
SKP_int16 inputBuf[ MAX_FRAME_LENGTH ]; /* buffer containin input signal */
@@ -294,8 +296,8 @@
SKP_int LastGainIndex_EnhLayer; /* Previous gain index */
SKP_int typeOffsetPrev; /* Previous signal type and quantization offset */
SKP_int32 HPState[ DEC_HP_ORDER ]; /* HP filter state */
- const SKP_int16 *HP_A; /* HP filter AR coefficients */
- const SKP_int16 *HP_B; /* HP filter MA coefficients */
+ const SKP_int32 *HP_A; /* HP filter AR coefficients */
+ const SKP_int32 *HP_B; /* HP filter MA coefficients */
SKP_int fs_kHz; /* Sampling frequency in kHz */
SKP_int32 prev_API_sampleRate; /* Previous API sample frequency (Hz) */
SKP_int nb_subfr; /* Number of 5 ms subframes in a frame */
@@ -305,6 +307,8 @@
SKP_int LPC_order; /* LPC order */
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 */
+ 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 */
/* For buffering payload in case of more frames per packet */
SKP_int nBytesLeft;
--- a/src_common/SKP_Silk_tables.h
+++ b/src_common/SKP_Silk_tables.h
@@ -40,31 +40,16 @@
#endif
/* entropy coding tables */
-extern const SKP_uint16 SKP_Silk_type_offset_CDF[ 5 ]; /* 5 */
-extern const SKP_uint16 SKP_Silk_type_offset_joint_CDF[ 4 ][ 5 ]; /* 20 */
-extern const SKP_int SKP_Silk_type_offset_CDF_offset;
+extern const SKP_uint8 SKP_Silk_gain_iCDF[ 2 ][ N_LEVELS_QGAIN / 8 ]; /* 16 */
+extern const SKP_uint8 SKP_Silk_delta_gain_iCDF[ MAX_DELTA_GAIN_QUANT - MIN_DELTA_GAIN_QUANT + 1 ]; /* 43 */
-extern const SKP_uint16 SKP_Silk_gain_CDF[ 2 ][ N_LEVELS_QGAIN + 1 ]; /* 130 */
-extern const SKP_int SKP_Silk_gain_CDF_offset;
-extern const SKP_uint16 SKP_Silk_delta_gain_CDF[ MAX_DELTA_GAIN_QUANT - MIN_DELTA_GAIN_QUANT + 2 ]; /* 46 */
-extern const SKP_int SKP_Silk_delta_gain_CDF_offset;
+extern const SKP_uint8 SKP_Silk_pitch_lag_iCDF[ 2 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) ]; /* 32 */
+extern const SKP_uint8 SKP_Silk_pitch_delta_iCDF[21]; /* 21 */
+extern const SKP_uint8 SKP_Silk_pitch_contour_iCDF[34]; /* 34 */
+extern const SKP_uint8 SKP_Silk_pitch_contour_NB_iCDF[ 11 ]; /* 11 */
+extern const SKP_uint8 SKP_Silk_pitch_contour_10_ms_iCDF[12]; /* 12 */
+extern const SKP_uint8 SKP_Silk_pitch_contour_10_ms_NB_iCDF[3]; /* 3 */
-extern const SKP_uint16 SKP_Silk_pitch_lag_NB_CDF[ 8 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ]; /* 130 */
-extern const SKP_int SKP_Silk_pitch_lag_NB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_lag_MB_CDF[ 12 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ]; /* 194 */
-extern const SKP_int SKP_Silk_pitch_lag_MB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_lag_WB_CDF[ 16 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ]; /* 258 */
-extern const SKP_int SKP_Silk_pitch_lag_WB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_lag_SWB_CDF[ 24 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ]; /* 386 */
-extern const SKP_int SKP_Silk_pitch_lag_SWB_CDF_offset;
-
-extern const SKP_uint16 SKP_Silk_pitch_contour_CDF[ 35 ]; /* 35 */
-extern const SKP_int SKP_Silk_pitch_contour_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_contour_NB_CDF[ 12 ]; /* 12 */
-extern const SKP_int SKP_Silk_pitch_contour_NB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_delta_CDF[23]; /* 23 */
-extern const SKP_int SKP_Silk_pitch_delta_CDF_offset;
-
extern const SKP_uint16 SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS ][ MAX_PULSES + 3 ]; /* 210 */
extern const SKP_int SKP_Silk_pulses_per_block_CDF_offset;
extern const SKP_int16 SKP_Silk_pulses_per_block_BITS_Q6[ N_RATE_LEVELS - 1 ][ MAX_PULSES + 2 ]; /* 180 */
@@ -81,72 +66,62 @@
extern const SKP_uint16 SKP_Silk_shell_code_table3[ 207 ]; /* 207 */
extern const SKP_uint16 SKP_Silk_shell_code_table_offsets[ 19 ]; /* 19 */
-extern const SKP_uint16 SKP_Silk_lsb_CDF[ 3 ]; /* 3 */
+extern const SKP_uint8 SKP_Silk_lsb_iCDF[ 2 ]; /* 2 */
-extern const SKP_uint16 SKP_Silk_sign_CDF[ 36 ]; /* 36 */
+extern const SKP_uint8 SKP_Silk_sign_iCDF[ 36 ]; /* 36 */
-extern const SKP_uint16 SKP_Silk_LTP_per_index_CDF[ 4 ]; /* 4 */
-extern const SKP_int SKP_Silk_LTP_per_index_CDF_offset;
-extern const SKP_int16 * const SKP_Silk_LTP_gain_BITS_Q6_ptrs[ NB_LTP_CBKS ]; /* 3 */
-extern const SKP_uint16 * const SKP_Silk_LTP_gain_CDF_ptrs[ NB_LTP_CBKS ]; /* 3 */
-extern const SKP_int SKP_Silk_LTP_gain_CDF_offsets[ NB_LTP_CBKS ]; /* 3 */
-extern const SKP_int32 SKP_Silk_LTP_gain_middle_avg_RD_Q14;
-extern const SKP_uint16 SKP_Silk_LTPscale_CDF[ 4 ]; /* 4 */
-extern const SKP_int SKP_Silk_LTPscale_offset;
+extern const SKP_uint8 SKP_Silk_uniform4_iCDF[ 4 ]; /* 4 */
+extern const SKP_uint8 SKP_Silk_uniform6_iCDF[ 6 ]; /* 6 */
+extern const SKP_uint8 SKP_Silk_uniform8_iCDF[ 8 ]; /* 8 */
+extern const SKP_uint8 SKP_Silk_uniform12_iCDF[ 12 ]; /* 12 */
-/* Tables for LTPScale */
+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_int8 * const SKP_Silk_LTP_gain_BITS_Q4_ptrs[ NB_LTP_CBKS ]; /* 3 */
+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 SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ]; /* 3 */
+
+extern const SKP_uint8 SKP_Silk_LTPscale_iCDF[ 3 ]; /* 4 */
extern const SKP_int16 SKP_Silk_LTPScales_table_Q14[ 3 ];
-extern const SKP_uint16 SKP_Silk_vadflag_CDF[ 3 ]; /* 3 */
-extern const SKP_int SKP_Silk_vadflag_offset;
+extern const SKP_uint8 SKP_Silk_vadflag_iCDF[ 2 ]; /* 2 */
-extern const SKP_uint16 SKP_Silk_NLSF_interpolation_factor_CDF[ 6 ];
-extern const SKP_int SKP_Silk_NLSF_interpolation_factor_offset;
+extern const SKP_uint8 SKP_Silk_type_offset_iCDF[4]; /* 4 */
+extern const SKP_uint8 SKP_Silk_type_offset_joint_iCDF[4][4]; /* 16 */
+extern const SKP_uint8 SKP_Silk_NLSF_interpolation_factor_iCDF[ 5 ]; /* 5 */
+
/* NLSF codebooks */
extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_16, SKP_Silk_NLSF_CB1_16;
extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_10, SKP_Silk_NLSF_CB1_10;
-/* quantization tables */
-extern const SKP_int16 * const SKP_Silk_LTP_vq_ptrs_Q14[ NB_LTP_CBKS ]; /* 168 */
-extern const SKP_int SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ]; /* 3 */
-
/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
-extern const SKP_int32 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ];
-extern const SKP_int32 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ];
-extern const SKP_int32 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ];
-extern const SKP_int32 TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ];
-extern const SKP_int32 SNR_table_Q1[ TARGET_RATE_TAB_SZ ];
+extern const SKP_uint16 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ];
+extern const SKP_uint16 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ];
+extern const SKP_uint16 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ];
+extern const SKP_uint16 TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ];
+extern const SKP_uint16 SNR_table_Q1[ TARGET_RATE_TAB_SZ ];
-extern const SKP_int32 SNR_table_one_bit_per_sample_Q7[ 4 ];
-
/* Filter coeficicnts for HP filter: 4. Order filter implementad as two biquad filters */
extern const SKP_int16 SKP_Silk_SWB_detect_B_HP_Q13[ NB_SOS ][ 3 ];
extern const SKP_int16 SKP_Silk_SWB_detect_A_HP_Q13[ NB_SOS ][ 2 ];
-/* Decoder high-pass filter coefficients for 24 kHz sampling */
-extern const SKP_int16 SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER ]; /* 2 */
-extern const SKP_int16 SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ]; /* 3 */
+/* Decoder high-pass filter coefficients */
+extern const SKP_int32 SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER ]; /* 2 */
+extern const SKP_int32 SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ]; /* 3 */
+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_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_A_HP_8[ DEC_HP_ORDER ]; /* 2 */
+extern const SKP_int32 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ]; /* 3 */
-/* Decoder high-pass filter coefficients for 16 kHz sampling */
-extern const SKP_int16 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ]; /* 2 */
-extern const SKP_int16 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ]; /* 3 */
-
-/* Decoder high-pass filter coefficients for 12 kHz sampling */
-extern const SKP_int16 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ]; /* 2 */
-extern const SKP_int16 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ]; /* 3 */
-
-/* Decoder high-pass filter coefficients for 8 kHz sampling */
-extern const SKP_int16 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ]; /* 2 */
-extern const SKP_int16 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ]; /* 3 */
-
/* Table for frame termination indication */
-extern const SKP_uint16 SKP_Silk_FrameTermination_CDF[ 3 ];
-extern const SKP_int SKP_Silk_FrameTermination_offset;
+extern const SKP_uint8 SKP_Silk_FrameTermination_iCDF[ 2 ];
/* Table for random seed */
-extern const SKP_uint16 SKP_Silk_Seed_CDF[ 5 ];
-extern const SKP_int SKP_Silk_Seed_offset;
+extern const SKP_uint8 SKP_Silk_Seed_iCDF[ 4 ];
/* Quantization offsets */
extern const SKP_int16 SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ];
--- a/src_common/SKP_Silk_tables_LTP.c
+++ b/src_common/SKP_Silk_tables_LTP.c
@@ -27,298 +27,242 @@
#include "SKP_Silk_tables.h"
-const SKP_uint16 SKP_Silk_LTP_per_index_CDF[ 4 ] = {
- 0, 20992, 40788, 65535
+const SKP_uint8 SKP_Silk_LTP_per_index_iCDF[3] = {
+ 188, 111, 0
};
-const SKP_int SKP_Silk_LTP_per_index_CDF_offset = 1;
-
-
-const SKP_uint16 SKP_Silk_LTP_gain_CDF_0[ 11 ] = {
- 0, 49380, 54463, 56494, 58437, 60101, 61683, 62985,
- 64066, 64823, 65535
+const SKP_uint8 SKP_Silk_LTP_gain_iCDF_0[8] = {
+ 83, 65, 48, 34, 24, 15, 7, 0
};
-const SKP_uint16 SKP_Silk_LTP_gain_CDF_1[ 21 ] = {
- 0, 25290, 30654, 35710, 40386, 42937, 45250, 47459,
- 49411, 51348, 52974, 54517, 55976, 57423, 58865, 60285,
- 61667, 62895, 63827, 64724, 65535
+const SKP_uint8 SKP_Silk_LTP_gain_iCDF_1[16] = {
+ 211, 186, 163, 144, 129, 115, 102, 89,
+ 77, 65, 53, 42, 31, 19, 9, 0
};
-const SKP_uint16 SKP_Silk_LTP_gain_CDF_2[ 41 ] = {
- 0, 4958, 9439, 13581, 17638, 21651, 25015, 28025,
- 30287, 32406, 34330, 36240, 38130, 39790, 41281, 42764,
- 44229, 45676, 47081, 48431, 49675, 50849, 51932, 52966,
- 53957, 54936, 55869, 56789, 57708, 58504, 59285, 60043,
- 60796, 61542, 62218, 62871, 63483, 64076, 64583, 65062,
- 65535
+const SKP_uint8 SKP_Silk_LTP_gain_iCDF_2[32] = {
+ 241, 227, 214, 202, 191, 180, 170, 160,
+ 149, 139, 129, 120, 110, 101, 92, 84,
+ 76, 69, 61, 54, 47, 40, 35, 30,
+ 26, 21, 17, 13, 10, 6, 3, 0
};
-const SKP_int SKP_Silk_LTP_gain_CDF_offsets[ 3 ] = {
- 1, 3, 10
-};
+const SKP_int16 SKP_Silk_LTP_gain_middle_avg_RD_Q14 = 14008;
-const SKP_int32 SKP_Silk_LTP_gain_middle_avg_RD_Q14 = 11010;
-
-const SKP_int16 SKP_Silk_LTP_gain_BITS_Q6_0[ 10 ] = {
- 26, 236, 321, 325, 339, 344, 362, 379,
- 412, 418
+const SKP_int8 SKP_Silk_LTP_gain_BITS_Q4_0[8] = {
+ 9, 61, 63, 66, 76, 77, 81, 83
};
-const SKP_int16 SKP_Silk_LTP_gain_BITS_Q6_1[ 20 ] = {
- 88, 231, 237, 244, 300, 309, 313, 324,
- 325, 341, 346, 351, 352, 352, 354, 356,
- 367, 393, 396, 406
+const SKP_int8 SKP_Silk_LTP_gain_BITS_Q4_1[16] = {
+ 40, 54, 56, 60, 65, 68, 68, 68,
+ 71, 71, 72, 72, 72, 72, 76, 76
};
-const SKP_int16 SKP_Silk_LTP_gain_BITS_Q6_2[ 40 ] = {
- 238, 248, 255, 257, 258, 274, 284, 311,
- 317, 326, 326, 327, 339, 349, 350, 351,
- 352, 355, 358, 366, 371, 379, 383, 387,
- 388, 393, 394, 394, 407, 409, 412, 412,
- 413, 422, 426, 432, 434, 449, 454, 455
+const SKP_int8 SKP_Silk_LTP_gain_BITS_Q4_2[32] = {
+ 65, 67, 69, 70, 73, 74, 74, 74,
+ 74, 75, 75, 76, 76, 76, 78, 80,
+ 80, 81, 82, 82, 82, 86, 90, 91,
+ 92, 95, 95, 96, 99, 100, 102, 102
};
-const SKP_uint16 * const SKP_Silk_LTP_gain_CDF_ptrs[ NB_LTP_CBKS ] = {
- SKP_Silk_LTP_gain_CDF_0,
- SKP_Silk_LTP_gain_CDF_1,
- SKP_Silk_LTP_gain_CDF_2
+const SKP_uint8 * const SKP_Silk_LTP_gain_iCDF_ptrs[NB_LTP_CBKS] = {
+ SKP_Silk_LTP_gain_iCDF_0,
+ SKP_Silk_LTP_gain_iCDF_1,
+ SKP_Silk_LTP_gain_iCDF_2
};
-const SKP_int16 * const SKP_Silk_LTP_gain_BITS_Q6_ptrs[ NB_LTP_CBKS ] = {
- SKP_Silk_LTP_gain_BITS_Q6_0,
- SKP_Silk_LTP_gain_BITS_Q6_1,
- SKP_Silk_LTP_gain_BITS_Q6_2
+const SKP_int8 * const SKP_Silk_LTP_gain_BITS_Q4_ptrs[NB_LTP_CBKS] = {
+ SKP_Silk_LTP_gain_BITS_Q4_0,
+ SKP_Silk_LTP_gain_BITS_Q4_1,
+ SKP_Silk_LTP_gain_BITS_Q4_2
};
-const SKP_int16 SKP_Silk_LTP_gain_vq_0_Q14[ 10 ][ 5 ] =
+const SKP_int8 SKP_Silk_LTP_gain_vq_0[8][5] =
{
{
- 594, 984, 2840, 1021, 669
+ 6, 9, 28, 9, 8
},
{
- 10, 35, 304, -1, 23
+ 0, 0, 2, 0, 0
},
{
- -694, 1923, 4603, 2975, 2335
+ -4, 32, 55, 5, -1
},
{
- 2437, 3176, 3778, 1940, 481
+ -6, 6, 51, 34, 1
},
{
- 214, -46, 7870, 4406, -521
+ 27, 8, 43, 26, -20
},
{
- -896, 4818, 8501, 1623, -887
+ 2, 5, 11, 5, 3
},
{
- -696, 3178, 6480, -302, 1081
+ -23, 8, 35, 4, 22
},
{
- 517, 599, 1002, 567, 560
-},
-{
- -2075, -834, 4712, -340, 896
-},
-{
- 1435, -644, 3993, -612, -2063
+ 22, 18, 26, -6, -14
}
};
-const SKP_int16 SKP_Silk_LTP_gain_vq_1_Q14[ 20 ][ 5 ] =
+const SKP_int8 SKP_Silk_LTP_gain_vq_1[16][5] =
{
{
- 1655, 2918, 5001, 3010, 1775
+ 10, 22, 39, 23, 17
},
{
- 113, 198, 856, 176, 178
+ 5, 29, 56, 38, -8
},
{
- -843, 2479, 7858, 5371, 574
+ 20, 40, 54, 4, -5
},
{
- 59, 5356, 7648, 2850, -315
+ 0, 1, 7, 0, 1
},
{
- 3840, 4851, 6527, 1583, -1233
+ -20, 12, 67, 46, 9
},
{
- 1620, 1760, 2330, 1876, 2045
+ -9, 51, 75, 12, -12
},
{
- -545, 1854, 11792, 1547, -307
+ 6, -11, 84, 41, -14
},
{
- -604, 689, 5369, 5074, 4265
+ -8, 15, 96, 5, 3
},
{
- 521, -1331, 9829, 6209, -1211
+ 41, 5, 32, 4, 10
},
{
- -1315, 6747, 9929, -1410, 546
+ -13, 50, 73, -18, 18
},
{
- 117, -144, 2810, 1649, 5240
+ 7, -14, 56, 47, 10
},
{
- 5392, 3476, 2425, -38, 633
+ -3, -2, 73, 8, 10
},
{
- 14, -449, 5274, 3547, -171
+ -11, 30, 42, -7, 14
},
{
- -98, 395, 9114, 1676, 844
+ -23, 42, 57, 15, 21
},
{
- -908, 3843, 8861, -957, 1474
+ -1, 0, 21, 23, 38
},
{
- 396, 6747, 5379, -329, 1269
-},
-{
- -335, 2830, 4281, 270, -54
-},
-{
- 1502, 5609, 8958, 6045, 2059
-},
-{
- -370, 479, 5267, 5726, 1174
-},
-{
- 5237, -1144, 6510, 455, 512
+ -1, -6, 37, 20, -3
}
};
-const SKP_int16 SKP_Silk_LTP_gain_vq_2_Q14[ 40 ][ 5 ] =
+const SKP_int8 SKP_Silk_LTP_gain_vq_2[32][5] =
{
{
- -278, 415, 9345, 7106, -431
+ -6, 59, 68, 3, 0
},
{
- -1006, 3863, 9524, 4724, -871
+ -6, 36, 72, 29, -6
},
{
- -954, 4624, 11722, 973, -300
+ -3, 1, 93, 24, 6
},
{
- -117, 7066, 8331, 1959, -901
+ -4, 16, 52, 39, 19
},
{
- 593, 3412, 6070, 4914, 1567
+ 0, -11, 80, 52, 1
},
{
- 54, -51, 12618, 4228, -844
+ 3, 4, 19, 3, 6
},
{
- 3157, 4822, 5229, 2313, 717
+ -3, 35, 98, 5, -13
},
{
- -244, 1161, 14198, 779, 69
+ -9, 16, 75, 60, -15
},
{
- -1218, 5603, 12894, -2301, 1001
+ 9, -21, 84, 71, -17
},
{
- -132, 3960, 9526, 577, 1806
+ 11, -20, 106, 44, -13
},
{
- -1633, 8815, 10484, -2452, 895
+ 3, 9, 98, 33, -23
},
{
- 235, 450, 1243, 667, 437
+ 22, -4, 65, 51, -15
},
{
- 959, -2630, 10897, 8772, -1852
+ -6, 11, 109, 7, 2
},
{
- 2420, 2046, 8893, 4427, -1569
+ 21, 38, 41, 22, 4
},
{
- 23, 7091, 8356, -1285, 1508
+ -19, 72, 83, -22, 13
},
{
- -1133, 835, 7662, 6043, 2800
+ 1, 24, 77, -5, 17
},
{
- 439, 391, 11016, 2253, 1362
+ 4, -12, 121, 19, -6
},
{
- -1020, 2876, 13436, 4015, -3020
+ -6, 25, 115, -17, 7
},
{
- 1060, -2690, 13512, 5565, -1394
+ 27, 11, 84, 12, -27
},
{
- -1420, 8007, 11421, -152, -1672
+ -13, 49, 105, -24, 8
},
{
- -893, 2895, 15434, -1490, 159
+ -21, 43, 91, -4, 15
},
{
- -1054, 428, 12208, 8538, -3344
+ 7, 49, 88, -25, -4
},
{
- 1772, -1304, 7593, 6185, 561
+ 0, 5, 128, -5, -4
},
{
- 525, -1207, 6659, 11151, -1170
+ -9, 67, 95, -4, -23
},
{
- 439, 2667, 4743, 2359, 5515
+ 6, -10, 45, 93, -9
},
{
- 2951, 7432, 7909, -230, -1564
+ -8, 95, 43, -11, 6
},
{
- -72, 2140, 5477, 1391, 1580
+ 17, -19, 101, 77, -42
},
{
- 476, -1312, 15912, 2174, -1027
+ 35, 74, 19, -7, 1
},
{
- 5737, 441, 2493, 2043, 2757
+ 3, 12, 128, 27, -39
},
{
- 228, -43, 1803, 6663, 7064
+ 1, -2, 14, 80, 31
},
{
- 4596, 9182, 1917, -200, 203
+ 86, 10, 12, -3, 3
},
{
- -704, 12039, 5451, -1188, 542
-},
-{
- 1782, -1040, 10078, 7513, -2767
-},
-{
- -2626, 7747, 9019, 62, 1710
-},
-{
- 235, -233, 2954, 10921, 1947
-},
-{
- 10854, 2814, 1232, -111, 222
-},
-{
- 2267, 2778, 12325, 156, -1658
-},
-{
- -2950, 8095, 16330, 268, -3626
-},
-{
- 67, 2083, 7950, -80, -2432
-},
-{
- 518, -66, 1718, 415, 11435
+ 5, -3, 14, 7, 85
}
};
-const SKP_int16 * const SKP_Silk_LTP_vq_ptrs_Q14[ NB_LTP_CBKS ] = {
- &SKP_Silk_LTP_gain_vq_0_Q14[ 0 ][ 0 ],
- &SKP_Silk_LTP_gain_vq_1_Q14[ 0 ][ 0 ],
- &SKP_Silk_LTP_gain_vq_2_Q14[ 0 ][ 0 ]
+const SKP_int8 * const SKP_Silk_LTP_vq_ptrs_Q7[NB_LTP_CBKS] = {
+ (SKP_int8 *)&SKP_Silk_LTP_gain_vq_0[0][0],
+ (SKP_int8 *)&SKP_Silk_LTP_gain_vq_1[0][0],
+ (SKP_int8 *)&SKP_Silk_LTP_gain_vq_2[0][0]
};
-const SKP_int SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ] = {
- 10, 20, 40
+const SKP_int8 SKP_Silk_LTP_vq_sizes[NB_LTP_CBKS] = {
+ 8, 16, 32
};
--- /dev/null
+++ b/src_common/SKP_Silk_tables_NLSF_CB.h
@@ -1,0 +1,63 @@
+/***********************************************************************
+Copyright (c) 2006-2010, 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 SKP_SILK_TABLES_NLSF_CB
+#define SKP_SILK_TABLES_NLSF_CB
+
+#include "SKP_Silk_define.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define NLSF_MSVQ_CB0_10_STAGES 7
+#define NLSF_MSVQ_CB0_10_VECTORS 128
+#define NLSF_MSVQ_CB1_10_STAGES 7
+#define NLSF_MSVQ_CB1_10_VECTORS 80
+#define NLSF_MSVQ_CB0_16_STAGES 10
+#define NLSF_MSVQ_CB0_16_VECTORS 152
+#define NLSF_MSVQ_CB1_16_STAGES 10
+#define NLSF_MSVQ_CB1_16_VECTORS 104
+
+/* NLSF codebook entropy coding tables */
+extern const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS ];
+extern const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[ NLSF_MSVQ_CB0_10_STAGES ];
+extern const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS ];
+extern const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[ NLSF_MSVQ_CB1_10_STAGES ];
+extern const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS ];
+extern const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[ NLSF_MSVQ_CB0_16_STAGES ];
+extern const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS ];
+extern const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[ NLSF_MSVQ_CB1_16_STAGES ];
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
--- a/src_common/SKP_Silk_tables_NLSF_CB0_10.c
+++ b/src_common/SKP_Silk_tables_NLSF_CB0_10.c
@@ -28,899 +28,881 @@
/**********************************************/
/* This file has been automatically generated */
/* */
-/* ROM usage: 0.31 + 1.43 kB */
+/* ROM usage: 0.16 + 1.43 kB */
/**********************************************/
#include "SKP_Silk_structs.h"
#include "SKP_Silk_tables.h"
-#include "SKP_Silk_tables_NLSF_CB0_10.h"
+#include "SKP_Silk_tables_NLSF_CB.h"
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS + NLSF_MSVQ_CB0_10_STAGES ] =
+const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS ] =
{
+ 244,
+ 236,
+ 228,
+ 220,
+ 213,
+ 207,
+ 201,
+ 195,
+ 190,
+ 184,
+ 179,
+ 173,
+ 168,
+ 163,
+ 158,
+ 153,
+ 148,
+ 143,
+ 139,
+ 134,
+ 129,
+ 125,
+ 120,
+ 116,
+ 112,
+ 107,
+ 103,
+ 99,
+ 95,
+ 91,
+ 88,
+ 84,
+ 80,
+ 77,
+ 73,
+ 69,
+ 66,
+ 62,
+ 59,
+ 55,
+ 52,
+ 48,
+ 45,
+ 42,
+ 39,
+ 36,
+ 32,
+ 29,
+ 27,
+ 24,
+ 21,
+ 18,
+ 16,
+ 13,
+ 11,
+ 9,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1,
0,
- 2433,
- 4865,
- 7096,
- 8971,
- 10549,
- 12126,
- 13636,
- 15147,
- 16657,
- 18104,
- 19550,
- 20996,
- 22381,
- 23766,
- 25093,
- 26419,
- 27745,
- 29016,
- 30232,
- 31448,
- 32664,
- 33780,
- 34895,
- 36010,
- 37078,
- 38146,
- 39169,
- 40192,
- 41215,
- 42194,
- 43173,
- 44153,
- 45091,
- 46028,
- 46966,
- 47904,
- 48842,
- 49740,
- 50638,
- 51498,
- 52358,
- 53218,
- 54042,
- 54865,
- 55689,
- 56478,
- 57266,
- 58055,
- 58810,
- 59565,
- 60321,
- 61044,
- 61652,
- 62260,
- 62868,
- 63337,
- 63683,
- 64001,
- 64257,
- 64512,
- 64768,
- 65024,
- 65279,
- 65535,
+ 235,
+ 216,
+ 198,
+ 180,
+ 162,
+ 145,
+ 129,
+ 112,
+ 96,
+ 80,
+ 65,
+ 50,
+ 36,
+ 22,
+ 10,
0,
- 5110,
- 10220,
- 15114,
- 19800,
- 24097,
- 28394,
- 32691,
- 36988,
- 41285,
- 45225,
- 48999,
- 52612,
- 56226,
- 59839,
- 62749,
- 65535,
+ 222,
+ 189,
+ 155,
+ 123,
+ 92,
+ 62,
+ 31,
0,
- 8964,
- 17928,
- 26148,
- 34368,
- 42588,
- 50459,
- 57997,
- 65535,
+ 221,
+ 187,
+ 154,
+ 122,
+ 91,
+ 60,
+ 29,
0,
- 10142,
- 19048,
- 27576,
- 36104,
- 44271,
- 52091,
- 58959,
- 65535,
+ 220,
+ 186,
+ 154,
+ 122,
+ 90,
+ 60,
+ 29,
0,
- 8874,
- 17371,
- 25869,
- 34366,
- 42158,
- 49951,
- 57743,
- 65535,
+ 223,
+ 189,
+ 156,
+ 124,
+ 92,
+ 60,
+ 29,
0,
- 8970,
- 17560,
- 25786,
- 34012,
- 42238,
- 50115,
- 57992,
- 65535,
- 0,
- 4875,
- 9750,
- 14418,
- 19086,
- 23754,
- 28422,
- 32892,
- 37173,
- 41272,
- 45371,
- 49297,
- 52896,
- 56496,
- 59797,
- 63098,
- 65535
+ 236,
+ 219,
+ 201,
+ 184,
+ 168,
+ 151,
+ 134,
+ 117,
+ 101,
+ 85,
+ 69,
+ 53,
+ 38,
+ 24,
+ 11,
+ 0
};
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[ NLSF_MSVQ_CB0_10_STAGES ] =
+const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[ NLSF_MSVQ_CB0_10_STAGES ] =
{
&SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 0 ],
- &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 65 ],
- &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 82 ],
- &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 91 ],
- &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 100 ],
- &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 109 ],
- &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 118 ]
+ &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 64 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 80 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 88 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 96 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 104 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 112 ]
};
-const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx[ NLSF_MSVQ_CB0_10_STAGES ] =
-{
- 22,
- 8,
- 5,
- 5,
- 5,
- 5,
- 8
-};
-
const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q4[ NLSF_MSVQ_CB0_10_VECTORS ] =
{
- 76, 76,
- 78, 82,
- 86, 86,
- 87, 87,
+ 71, 79,
+ 80, 81,
+ 84, 85,
87, 88,
88, 88,
89, 89,
90, 90,
- 90, 91,
+ 91, 91,
92, 92,
- 92, 94,
+ 92, 92,
+ 93, 93,
94, 94,
- 95, 95,
+ 94, 95,
96, 96,
96, 97,
- 97, 97,
+ 97, 98,
98, 98,
98, 98,
- 98, 99,
+ 99, 99,
+ 99, 99,
99, 100,
- 100, 100,
- 101, 101,
- 101, 102,
+ 100, 101,
102, 102,
- 103, 103,
- 103, 104,
- 108, 108,
- 108, 114,
- 121, 123,
+ 102, 103,
+ 104, 104,
+ 105, 105,
+ 105, 108,
+ 111, 111,
+ 114, 123,
128, 128,
128, 128,
128, 128,
- 59, 59,
- 60, 61,
+ 58, 60,
+ 61, 61,
+ 62, 63,
63, 63,
- 63, 63,
- 63, 65,
- 66, 67,
- 67, 67,
- 72, 73,
- 46, 46,
- 48, 48,
- 48, 49,
- 50, 50,
- 43, 46,
+ 64, 64,
+ 65, 66,
+ 67, 68,
+ 69, 76,
47, 47,
- 48, 49,
- 52, 53,
- 46, 47,
- 47, 47,
+ 47, 48,
49, 49,
49, 49,
46, 47,
+ 47, 48,
+ 49, 49,
+ 49, 50,
+ 45, 47,
48, 48,
48, 49,
49, 50,
- 60, 60,
- 61, 61,
- 61, 61,
+ 47, 47,
+ 47, 48,
+ 48, 48,
+ 49, 50,
+ 59, 62,
62, 63,
+ 63, 63,
+ 63, 63,
64, 64,
- 65, 67,
- 67, 69,
- 69, 76
+ 64, 64,
+ 65, 68,
+ 68, 73
};
const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min_Q15[ 10 + 1 ] =
{
- 553,
- 5,
+ 550,
+ 3,
22,
- 19,
+ 18,
3,
3,
- 180,
+ 181,
162,
- 306,
- 171,
- 991
+ 310,
+ 172,
+ 982
};
const SKP_int8 SKP_Silk_NLSF_MSVQ_CB0_10_Q8[ 10 * NLSF_MSVQ_CB0_10_VECTORS ] =
{
- -108, -90,
- -71, -49,
- -24, -5,
- 21, 48,
- 75, 99,
- -108, -99,
- -76, -57,
- -39, -7,
- 20, 50,
- 76, 98,
- -105, -97,
- -83, -49,
- -19, -7,
- 27, 47,
- 67, 102,
- -97, -90,
- -75, -49,
- -6, 6,
- 27, 55,
- 73, 95,
- -95, -89,
- -72, -40,
- -28, -11,
- 21, 37,
- 70, 86,
- -103, -97,
- -82, -48,
- 8, 21,
- 36, 56,
- 74, 101,
- -103, -96,
- -81, -33,
- -19, -3,
- 28, 41,
- 86, 102,
- -111, -102,
- -85, -62,
- -38, -21,
- 11, 41,
- 66, 95,
- -88, -82,
- -63, -28,
- -10, 1,
- 35, 53,
- 73, 103,
- -101, -96,
- -67, -17,
- -4, 10,
- 30, 45,
- 86, 103,
- -94, -87,
- -70, -55,
- -44, -25,
- 37, 55,
- 73, 104,
+ -109, -96,
+ -74, -56,
+ -35, -11,
+ 17, 45,
+ 74, 100,
-98, -92,
- -71, -37,
- -23, -10,
- 37, 54,
- 73, 104,
- -114, -108,
- -79, -49,
- -20, 2,
- 29, 54,
- 80, 103,
- -107, -99,
- -86, -60,
- -7, 11,
- 27, 49,
- 67, 95,
- -100, -94,
-76, -40,
- -5, 6,
- 26, 43,
- 62, 102,
- -88, -79,
- -64, -44,
- -28, -15,
- 26, 43,
- 64, 104,
- -103, -98,
- -71, -26,
- -14, 4,
- 23, 43,
- 72, 87,
- -110, -103,
- -83, -58,
- -27, -5,
- 16, 35,
- 58, 92,
- -103, -94,
- -79, -62,
+ -10, 0,
+ 28, 47,
+ 65, 103,
+ -107, -92,
+ -69, -48,
+ -16, 4,
+ 29, 49,
+ 77, 101,
+ -104, -94,
+ -81, -60,
+ -24, -10,
+ 13, 49,
+ 67, 94,
+ -104, -97,
+ -81, -51,
+ 2, 18,
+ 33, 53,
+ 70, 101,
+ -104, -96,
+ -82, -54,
+ -10, 3,
+ 26, 51,
+ 70, 89,
+ -109, -99,
+ -84, -53,
+ -33, -18,
+ 22, 36,
+ 77, 96,
+ -92, -86,
+ -70, -37,
+ -25, -10,
+ 24, 40,
+ 79, 95,
+ -102, -95,
+ -78, -47,
+ -32, -17,
+ 34, 52,
+ 71, 105,
+ -113, -106,
+ -85, -60,
+ -34, -15,
+ 15, 40,
+ 63, 93,
+ -99, -94,
+ -64, -18,
+ -6, 10,
+ 32, 47,
+ 88, 104,
+ -115, -108,
+ -79, -48,
+ -21, 0,
+ 28, 55,
+ 77, 101,
+ -94, -88,
+ -69, -32,
+ 5, 16,
+ 37, 57,
+ 75, 103,
+ -110, -101,
+ -87, -58,
+ -12, 1,
+ 19, 38,
+ 65, 101,
+ -103, -96,
+ -80, -40,
+ -26, -11,
+ 8, 26,
+ 78, 93,
+ -104, -98,
+ -83, -35,
-21, -7,
- 12, 52,
- 69, 88,
- -107, -98,
- -84, -44,
- -29, -12,
- 9, 28,
- 73, 90,
- -99, -93,
- -68, -32,
- -19, -5,
- 12, 28,
- 86, 104,
- -100, -91,
- -75, -55,
- -40, -26,
- 20, 40,
- 58, 101,
- -100, -94,
- -73, -60,
- -49, -1,
- 18, 36,
- 83, 96,
- -106, -97,
- -69, -47,
- -25, 11,
- 31, 46,
- 65, 89,
- -93, -87,
- -69, -46,
- -32, -18,
- -2, 14,
- 74, 103,
- -93, -87,
- -65, -29,
- 6, 18,
- 38, 57,
- 74, 102,
- -92, -85,
- -66, -54,
- -43, -4,
- 32, 45,
+ 30, 43,
88, 104,
- -108, -99,
- -85, -50,
- -35, -19,
- 29, 41,
- 84, 102,
- -97, -90,
- -73, -57,
- -48, -24,
- 21, 35,
- 79, 94,
- -84, -76,
- -57, -40,
- -29, -11,
- 41, 60,
- 80, 104,
- -100, -94,
- -75, -64,
- -51, 2,
- 20, 45,
- 68, 85,
- -100, -94,
- -62, -41,
- -30, 13,
- 31, 52,
+ -105, -100,
+ -78, -21,
+ -7, 6,
+ 28, 45,
+ 77, 92,
+ -102, -95,
+ -71, -34,
+ -21, -1,
+ 22, 41,
+ 66, 83,
+ -98, -91,
+ -71, -60,
+ -49, -4,
+ 20, 36,
85, 101,
- -95, -86,
- -70, -52,
- -38, -23,
- 18, 64,
- 83, 101,
- -114, -108,
- -94, -69,
- -31, -5,
- 24, 46,
- 72, 99,
- -100, -95,
- -54, -38,
- -26, -10,
- 3, 51,
- 75, 89,
- -104, -98,
- -73, -31,
- 18, 31,
- 46, 65,
- 82, 105,
- -90, -84,
- -62, -51,
- -38, 3,
- 25, 44,
- 72, 86,
+ -86, -80,
+ -61, -28,
+ -10, 1,
+ 35, 54,
+ 74, 103,
+ -107, -100,
+ -81, -45,
+ -35, 2,
+ 25, 45,
+ 83, 99,
+ -103, -97,
+ -73, -33,
+ 17, 30,
+ 45, 64,
+ 81, 105,
+ -86, -79,
+ -59, -41,
+ -29, -14,
+ 41, 59,
+ 78, 105,
+ -87, -76,
+ -62, -45,
+ -23, -10,
+ 20, 44,
+ 63, 96,
+ -108, -99,
+ -73, -53,
+ -28, 7,
+ 27, 42,
+ 60, 94,
+ -95, -87,
+ -72, -54,
+ -40, -26,
+ 24, 42,
+ 60, 102,
+ -96, -89,
+ -73, -59,
+ -49, -25,
+ 31, 45,
+ 80, 96,
+ -100, -94,
+ -77, -67,
+ -56, -14,
+ 41, 59,
+ 85, 104,
+ -96, -91,
+ -65, -30,
+ -18, -4,
+ 14, 28,
+ 82, 105,
+ -102, -95,
+ -59, -41,
+ -29, 10,
+ 31, 52,
+ 83, 99,
+ -103, -97,
+ -78, -66,
+ -54, 1,
+ 22, 42,
+ 70, 87,
+ -109, -101,
+ -86, -70,
+ -57, -17,
+ 19, 41,
+ 75, 98,
+ -87, -80,
+ -67, -51,
+ -7, 6,
+ 26, 54,
+ 74, 94,
+ -101, -91,
+ -76, -52,
+ -27, -14,
+ 8, 27,
+ 54, 96,
+ -99, -93,
+ -65, -51,
+ -39, -23,
+ -10, 48,
+ 79, 95,
+ -100, -95,
+ -54, -37,
+ -25, -9,
+ 5, 51,
+ 74, 89,
+ -113, -107,
+ -93, -70,
+ -27, 1,
+ 23, 46,
+ 72, 96,
+ -96, -86,
+ -67, -40,
+ -22, -10,
+ 21, 62,
+ 80, 100,
+ -93, -87,
+ -65, -49,
+ -37, -10,
+ 11, 30,
+ 67, 82,
+ -106, -97,
+ -83, -64,
+ -51, -33,
+ 20, 52,
+ 72, 100,
+ -93, -87,
+ -65, -55,
+ -41, 6,
+ 27, 46,
+ 70, 84,
-109, -103,
- -83, -29,
- 2, 11,
- 38, 53,
- 84, 101,
- -86, -75,
- -61, -46,
- -17, -4,
- 18, 52,
- 69, 91,
- -109, -100,
- -83, -54,
- -10, 1,
- 19, 35,
- 81, 100,
- -101, -95,
- -78, -68,
- -58, -16,
- 39, 56,
- 85, 103,
- -87, -80,
- -58, -41,
- -29, -7,
- 14, 30,
- 86, 104,
+ -86, -37,
+ 1, 11,
+ 34, 50,
+ 84, 100,
-105, -99,
-61, -7,
- 6, 21,
- 44, 61,
- 87, 102,
- -86, -80,
- -48, -30,
- -18, 5,
- 25, 43,
- 82, 97,
- -98, -92,
- -66, -49,
- -36, -13,
- 0, 35,
- 59, 79,
- -98, -93,
- -66, -52,
- -40, -24,
- -12, 46,
- 81, 98,
- -107, -95,
- -64, -39,
- -14, 14,
- 42, 65,
- 88, 106,
- -104, -96,
- -82, -65,
- -54, -35,
- 21, 51,
- 72, 99,
- -94, -87,
- -74, -59,
- -21, -10,
- 14, 35,
- 58, 96,
- -108, -100,
- -86, -71,
- -59, -16,
- 20, 41,
- 74, 97,
+ 6, 20,
+ 43, 61,
+ 86, 101,
+ -96, -88,
+ -73, -54,
+ -40, -25,
+ 18, 64,
+ 82, 100,
+ -90, -83,
+ -67, -56,
+ -45, -18,
+ 47, 67,
+ 85, 106,
-103, -95,
-80, -57,
-45, -24,
- -6, 19,
- 66, 89,
- -99, -93,
- -74, -65,
- -50, 20,
- 40, 57,
- 85, 98,
- -102, -96,
- -41, -21,
+ -4, 19,
+ 70, 92,
+ -93, -87,
+ -69, -47,
+ -34, -20,
+ -5, 12,
+ 75, 106,
+ -87, -81,
+ -59, -42,
+ -28, -8,
+ 10, 30,
+ 86, 104,
+ -107, -100,
+ -85, -60,
+ -8, 28,
+ 42, 61,
+ 80, 98,
+ -88, -81,
+ -62, -51,
+ -37, 9,
+ 37, 52,
+ 88, 103,
+ -99, -94,
+ -74, -66,
+ -51, 19,
+ 41, 57,
+ 86, 101,
+ -103, -96,
+ -76, -52,
+ -39, -18,
+ -1, 34,
+ 56, 79,
+ -104, -98,
+ -44, -21,
-11, 9,
- 25, 59,
- 83, 98,
- -94, -87,
- -71, -59,
- -47, -8,
- 50, 68,
- 86, 105,
- -108, -101,
- -84, -59,
- -11, 29,
- 44, 61,
- 82, 99,
- -98, -94,
- -82, -73,
- -26, 6,
- 30, 53,
- 79, 98,
- -85, -71,
- -37, -12,
- 3, 22,
- 41, 61,
- 85, 100,
- -85, -79,
- -66, -55,
- -19, 17,
- 33, 56,
- 83, 97,
- -72, -66,
- -60, -57,
- -50, 4,
- 26, 52,
- 79, 103,
- -95, -74,
- -31, -18,
- -11, -6,
- 9, 52,
- 77, 100,
- -78, -75,
+ 25, 55,
+ 80, 95,
+ -84, -76,
+ -43, -28,
+ -15, 8,
+ 28, 47,
+ 79, 95,
+ -106, -95,
+ -63, -39,
+ -12, 19,
+ 45, 68,
+ 90, 107,
+ -83, -79,
+ -61, -49,
+ -41, -22,
+ 26, 40,
+ 81, 105,
+ -98, -93,
+ -81, -73,
+ -27, 8,
+ 28, 58,
+ 78, 95,
+ -85, -72,
+ -35, -11,
+ 4, 22,
+ 40, 61,
+ 83, 99,
+ -74, -70,
+ -62, -37,
+ -30, -17,
+ 19, 57,
+ 75, 97,
+ -95, -75,
+ -31, -22,
+ -16, -11,
+ 5, 56,
+ 80, 100,
+ -82, -79,
+ -75, -72,
+ -23, -16,
+ 24, 49,
+ 78, 105,
+ -74, -70,
+ -61, -50,
+ -44, 6,
+ 29, 50,
+ 76, 99,
+ -76, -73,
-68, -51,
- -43, -38,
- 12, 45,
- 74, 100,
- -99, -68,
- -40, -33,
- -24, -16,
- 23, 58,
- 79, 97,
- -99, -48,
- -42, -40,
- -36, -19,
- 26, 52,
- 80, 105,
- -73, -69,
- -62, -43,
- -31, -25,
- 21, 48,
- 76, 101,
- 8, 7,
- 5, 2,
- 1, -1,
- 1, 0,
- 0, -1,
- 0, -1,
- -1, 0,
- -2, -4,
- -8, -11,
- -2, -4,
- 3, 2,
- -2, -6,
- -4, -7,
- -2, -2,
- -6, 5,
- 0, -1,
- 2, 8,
- 5, 3,
- 2, -2,
- 8, 5,
- 0, -1,
+ -46, -40,
+ 14, 46,
+ 75, 101,
+ -99, -51,
+ -42, -39,
+ -34, -25,
+ 27, 53,
+ 79, 103,
+ 2, 0,
+ 4, 10,
+ 6, 5,
+ 3, 1,
+ 3, 0,
0, 0,
- -2, -4,
- -1, -2,
- -9, -13,
- -1, -1,
- -4, -1,
- 9, 4,
- 0, -3,
+ -3, -6,
+ -8, -10,
+ 1, -2,
+ -5, 2,
+ -2, -3,
+ -3, -5,
-9, 4,
- 0, -1,
- -2, 1,
- -2, -4,
- 11, 7,
- 4, 3,
- 0, -1,
- -3, -11,
- 4, 3,
- 1, 5,
- 1, -2,
- 1, 0,
- 12, 8,
- 5, 3,
- -1, 2,
- -1, -4,
- -5, -6,
- -13, 5,
- 3, 1,
- 0, 0,
- 1, 0,
- -1, -2,
- -5, -5,
- -10, 8,
- 2, 0,
- 3, -1,
- 1, 0,
+ -2, -2,
+ 0, -4,
+ 2, 1,
+ 1, 1,
+ -1, -1,
+ -2, -5,
+ -8, -13,
+ -1, -1,
+ -4, -5,
+ 9, 6,
+ 5, 2,
+ -2, -1,
+ -1, -1,
+ -2, -2,
+ -3, -7,
+ -13, 4,
0, -3,
- -5, -2,
- -5, -8,
+ 1, 1,
+ -1, -1,
+ -3, -6,
10, 5,
- 1, 0,
+ 7, 4,
+ 8, 8,
+ 6, 1,
1, -2,
- -3, -5,
- -9, 12,
- 6, 2,
+ -2, 1,
+ 0, -2,
+ 1, 1,
+ 1, 2,
+ 3, -1,
+ -3, -8,
+ -13, 6,
+ 1, 0,
3, 2,
- 5, -1,
- -1, 12,
- 8, 4,
0, -1,
- -5, -7,
- 6, 3,
- -2, -3,
- 3, 1,
- -2, 4,
- -8, 7,
- 2, 1,
- 2, -1,
- -2, 0,
- -2, 0,
- -3, -3,
- -3, 5,
- 4, 2,
- 2, 0,
- -2, -4,
- 1, 1,
- -1, -3,
- -3, -7,
- 6, 2,
+ -6, -12,
+ 9, 4,
+ -5, -5,
+ -10, 5,
3, 2,
- -1, -1,
- 2, 0,
- 0, 6,
- 3, 6,
+ -1, -2,
+ 3, -1,
+ 1, 1,
6, 3,
- 4, 5,
- 2, 2,
- 5, 2,
- 1, 2,
+ 4, 2,
+ -2, 13,
+ 7, 3,
+ 1, -1,
0, 1,
- 3, 3,
- 2, -2,
- -2, 1,
- 0, -4,
- -4, -7,
+ -3, 13,
+ 8, 5,
+ 3, -1,
+ 0, -1,
+ -5, -14,
+ 3, -1,
0, 0,
+ 2, 4,
+ -5, -6,
+ 4, 4,
+ -2, -2,
+ 4, 0,
+ -2, 4,
+ -7, 8,
4, 2,
0, -2,
- -2, -7,
- -1, 6,
- -4, -4,
- -5, -5,
- -4, 0,
- -1, -2,
- -2, 2,
+ -1, 0,
+ -3, 0,
+ 0, 0,
+ -2, 4,
+ 4, 4,
+ 3, 0,
+ 3, 5,
+ 0, 0,
+ -1, -1,
+ -3, -4,
+ -4, -9,
+ 1, 0,
-1, -1,
- 0, 0,
+ -2, 4,
+ 2, 0,
+ -4, -1,
+ -6, -4,
+ 4, 4,
+ 2, 1,
-1, -3,
- -10, 3,
- 0, -3,
- 0, 0,
- 0, 2,
- 0, -1,
- -1, -2,
- -7, 3,
- 0, 1,
+ 5, 2,
-1, 0,
- -1, 2,
- 3, 2,
- -2, -6,
- -1, -1,
- -2, -1,
-4, -4,
- -1, -4,
- 3, -1,
- 0, 0,
- -3, -5,
- 5, 1,
- 1, -1,
+ -6, -2,
+ -2, -2,
+ 5, 2,
+ 0, 1,
2, 2,
- 1, 1,
- 1, 5,
- 2, 1,
- 2, -1,
- 4, 1,
- -2, -2,
- -3, 2,
- 0, 0,
- -2, 5,
+ 0, -6,
+ 3, 5,
+ 1, 1,
+ -2, -4,
+ -1, -2,
+ 10, 3,
1, 2,
- -2, -2,
- 7, -1,
+ -1, -1,
+ 1, -1,
0, 0,
+ 0, -3,
+ -5, -1,
+ -5, 7,
+ 4, 2,
+ 1, 1,
+ 1, 0,
+ 0, -4,
0, 0,
- -1, -2,
- 3, 4,
- 2, -1,
- -2, 0,
- -3, 2,
- 2, 1,
- 0, 0,
- 0, -1,
- -2, 0,
- 5, 0,
- -1, 1,
+ -3, 5,
-2, -2,
- 2, 1,
- 0, 3,
- 0, -3,
+ -2, -1,
+ 1, 1,
+ -2, -4,
+ -5, 2,
+ -1, -1,
+ 3, 3,
+ 3, 2,
+ 4, 3,
+ -1, -3,
+ 0, 0,
+ 0, -2,
+ -3, -4,
1, -1,
- -1, 0,
- 2, 1,
- 3, 1,
- 0, 3,
+ -1, -6,
+ 3, 3,
1, 2,
- 2, 2,
- 0, 2,
1, 0,
- -2, -3,
- -1, -2,
- 1, 0,
- 2, 0,
+ -4, -2,
+ 1, -2,
-3, -3,
- -2, 2,
- 0, 1,
- 1, 0,
- -5, 3,
- 0, 1,
- 0, 0,
2, 1,
1, 0,
- -1, -5,
- 0, 2,
- -2, 0,
- 0, 1,
- -2, -2,
- -2, -1,
- 1, -3,
- 0, 0,
- -2, -3,
- -3, 3,
- 0, 0,
- -2, -1,
- 0, 0,
- -1, 0,
+ 0, -1,
+ 6, 2,
+ 2, 3,
+ 2, -3,
+ -4, 4,
2, 1,
- 2, 0,
- 0, 3,
- 2, 0,
- 0, 2,
+ 3, 1,
+ 0, 0,
+ -6, -1,
+ 1, 1,
+ 1, 4,
+ 1, 1,
1, -1,
+ 2, -1,
+ -2, -2,
+ -5, 1,
-2, -1,
- -2, 2,
- -2, 0,
+ 2, 2,
+ 1, 1,
+ 2, 3,
0, -1,
+ -4, 1,
+ 2, 0,
+ -1, 0,
0, -2,
- 1, 3,
+ 4, 4,
+ 0, -2,
+ -5, 3,
+ 0, 0,
0, -1,
- 0, 1,
- -2, -1,
- 2, 1,
- -1, 0,
- 1, -3,
- -1, 0,
- 0, 1,
- 1, 0,
- 1, 0,
0, 0,
- 1, 1,
- 2, -3,
+ 1, 0,
-1, -2,
+ -1, -1,
+ 3, 1,
-1, -2,
- 0, -1,
+ 0, -3,
+ 0, -2,
+ 0, -3,
+ -3, 2,
+ 2, -1,
+ 0, 2,
2, 1,
- 1, 2,
-2, 1,
+ 1, -1,
+ 1, -3,
+ 3, 2,
+ 0, -2,
+ -1, 4,
0, 0,
+ -1, 2,
+ 1, 2,
+ 1, 0,
+ -1, -2,
+ 3, 0,
+ 1, 1,
+ 0, 1,
+ 0, 2,
3, 1,
- -2, -2,
- 0, 0,
- 0, 0,
+ 1, 0,
+ 0, -2,
+ 1, -1,
0, -1,
- 0, 0,
- 0, 3,
+ -1, 0,
+ -1, -2,
-3, 0,
- -1, 1,
- 3, -2,
- 0, -1,
+ 3, 1,
-1, -1,
+ -2, 2,
-1, 0,
- 0, -1,
- -2, 1,
- 2, 1,
- 2, 0,
- -1, 0,
- -1, 0,
- 0, -1,
+ 2, -2,
-1, -1,
- -1, 0,
- 5, 1,
1, 0,
+ 2, 2,
0, 0,
+ 2, 2,
+ -1, 3,
+ -2, -1,
+ 1, -2,
-1, 0,
- 1, -4,
+ 0, 2,
-1, 0,
- 0, -1,
- -1, 0,
0, 0,
+ -1, 0,
+ 0, 4,
+ -1, 1,
+ 2, -1,
+ 1, 2,
-1, -1,
- -1, 5,
+ -2, -1,
+ -1, -1,
+ -1, -1,
+ -2, 1,
+ 0, -2,
1, 0,
- -2, -1,
- -1, -2,
- -1, 0,
- 0, -3,
- 0, 1,
- 1, 2,
1, -2,
- 2, 0,
- 0, 0,
- 0, 3,
- -1, -1,
- 1, 1,
+ -1, 0,
+ 1, 3,
1, 0,
1, 0,
- -1, -2,
+ -1, 1,
+ 1, 1,
+ -1, 3,
+ -2, 2,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ -1, -1,
0, 1,
+ 1, -3,
+ 0, 0,
+ -1, 1,
+ 0, -1,
1, 0,
- -3, -1,
- 1, 0,
- -3, -1,
+ 0, 1,
+ -1, -3,
+ -1, 2,
+ -2, -2,
+ 0, 1,
+ 1, 2,
+ -1, 1,
+ 0, 1,
+ 0, 0,
+ -1, 0,
+ 0, 0,
+ 3, 0,
+ 3, 1,
+ 0, 0,
+ -1, 0,
0, -1,
- 1, 1,
+ -1, 1,
+ 2, -4,
1, -1,
- 0, -1,
- 2, 1,
+ 2, -3,
+ 1, 0,
+ 0, 1,
1, 1,
+ 1, 0,
0, 2,
+ 2, 0,
-2, 1,
- 0, 0,
- -1, 1,
- -1, 2,
- -2, 1,
-1, 0,
- 0, 0,
- 2, 1,
+ 0, -1,
+ -3, -2,
-1, 0,
- -2, 0,
+ -1, 0,
+ 0, 0,
+ 1, 1,
+ 0, 0,
+ -1, 1,
1, 2,
+ -3, -1,
+ -1, 0,
+ 1, 1,
+ -3, 0,
1, 0,
+ 0, 0,
0, -2,
- 1, 0,
- -2, 0,
- 1, 1,
- 1, -1,
- 2, -2,
2, 0,
- 1, -1,
+ 0, -1,
+ 2, -1,
+ 0, -1,
+ 2, -1,
0, 1,
- 0, 1
+ -2, 2,
+ -1, 0,
+ 0, -1,
+ 2, 1,
+ -1, 1,
+ 0, -1,
+ 1, -1,
+ 0, -1
};
const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB0_10_Stage_info[ NLSF_MSVQ_CB0_10_STAGES ] =
@@ -940,7 +922,6 @@
SKP_Silk_NLSF_CB0_10_Stage_info,
SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min_Q15,
SKP_Silk_NLSF_MSVQ_CB0_10_CDF,
- SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx
+ SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr
};
--- a/src_common/SKP_Silk_tables_NLSF_CB0_10.h
+++ /dev/null
@@ -1,51 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_TABLES_NLSF_CB0_10_H
-#define SKP_SILK_TABLES_NLSF_CB0_10_H
-
-#include "SKP_Silk_define.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#define NLSF_MSVQ_CB0_10_STAGES 7
-#define NLSF_MSVQ_CB0_10_VECTORS 128
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS + NLSF_MSVQ_CB0_10_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[ NLSF_MSVQ_CB0_10_STAGES ];
-extern const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx[ NLSF_MSVQ_CB0_10_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
--- a/src_common/SKP_Silk_tables_NLSF_CB0_16.c
+++ b/src_common/SKP_Silk_tables_NLSF_CB0_16.c
@@ -28,918 +28,894 @@
/**********************************************/
/* This file has been automatically generated */
/* */
-/* ROM usage: 0.38 + 2.62 kB */
+/* ROM usage: 0.19 + 2.62 kB */
/**********************************************/
#include "SKP_Silk_structs.h"
#include "SKP_Silk_tables.h"
-#include "SKP_Silk_tables_NLSF_CB0_16.h"
+#include "SKP_Silk_tables_NLSF_CB.h"
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS + NLSF_MSVQ_CB0_16_STAGES ] =
+const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS ] =
{
+ 246,
+ 237,
+ 228,
+ 221,
+ 214,
+ 207,
+ 200,
+ 194,
+ 188,
+ 182,
+ 177,
+ 173,
+ 168,
+ 163,
+ 158,
+ 154,
+ 149,
+ 145,
+ 140,
+ 136,
+ 131,
+ 127,
+ 123,
+ 119,
+ 115,
+ 110,
+ 106,
+ 102,
+ 99,
+ 95,
+ 91,
+ 87,
+ 84,
+ 80,
+ 76,
+ 73,
+ 69,
+ 66,
+ 62,
+ 59,
+ 56,
+ 52,
+ 49,
+ 46,
+ 43,
+ 40,
+ 36,
+ 33,
+ 31,
+ 28,
+ 25,
+ 22,
+ 20,
+ 17,
+ 15,
+ 13,
+ 10,
+ 8,
+ 6,
+ 5,
+ 3,
+ 2,
+ 1,
0,
- 2661,
- 5102,
- 7439,
- 9404,
- 11130,
- 12855,
- 14508,
- 15959,
- 17349,
- 18738,
- 20128,
- 21458,
- 22679,
- 23847,
- 25016,
- 26184,
- 27303,
- 28422,
- 29541,
- 30660,
- 31731,
- 32803,
- 33874,
- 34901,
- 35927,
- 36953,
- 37979,
- 38961,
- 39944,
- 40885,
- 41826,
- 42767,
- 43708,
- 44609,
- 45510,
- 46411,
- 47274,
- 48136,
- 48999,
- 49862,
- 50725,
- 51551,
- 52377,
- 53204,
- 53995,
- 54786,
- 55544,
- 56269,
- 56995,
- 57690,
- 58355,
- 58992,
- 59629,
- 60266,
- 60904,
- 61514,
- 62124,
- 62708,
- 63292,
- 63828,
- 64364,
- 64834,
- 65230,
- 65535,
+ 235,
+ 215,
+ 197,
+ 180,
+ 163,
+ 146,
+ 130,
+ 114,
+ 98,
+ 82,
+ 66,
+ 51,
+ 37,
+ 23,
+ 11,
0,
- 5542,
- 10849,
- 16156,
- 21023,
- 25683,
- 29957,
- 33876,
- 37795,
- 41547,
- 45300,
- 48894,
- 52487,
- 55928,
- 59224,
- 62379,
- 65535,
+ 216,
+ 181,
+ 149,
+ 118,
+ 87,
+ 58,
+ 28,
0,
- 10647,
- 19220,
- 27793,
- 36003,
- 44213,
- 51422,
- 58631,
- 65535,
+ 218,
+ 183,
+ 148,
+ 117,
+ 86,
+ 56,
+ 28,
0,
- 8897,
- 17795,
- 26315,
- 34835,
- 42993,
- 51152,
- 58965,
- 65535,
+ 220,
+ 185,
+ 151,
+ 118,
+ 85,
+ 53,
+ 26,
0,
- 9726,
- 19453,
- 27632,
- 35811,
- 43643,
- 51475,
- 58657,
- 65535,
+ 220,
+ 185,
+ 152,
+ 120,
+ 88,
+ 56,
+ 28,
0,
- 9306,
- 18611,
- 27522,
- 36433,
- 44258,
- 52084,
- 58955,
- 65535,
+ 221,
+ 187,
+ 154,
+ 120,
+ 90,
+ 59,
+ 28,
0,
- 9344,
- 17912,
- 26481,
- 35049,
- 43254,
- 51111,
- 58635,
- 65535,
+ 221,
+ 186,
+ 152,
+ 118,
+ 85,
+ 51,
+ 23,
0,
- 8946,
- 17891,
- 26837,
- 35403,
- 43606,
- 51128,
- 58332,
- 65535,
+ 221,
+ 187,
+ 152,
+ 117,
+ 87,
+ 56,
+ 27,
0,
- 8919,
- 17460,
- 25638,
- 33817,
- 41996,
- 50174,
- 58353,
- 65535,
- 0,
- 4876,
- 9752,
- 14421,
- 18893,
- 23175,
- 27456,
- 31738,
- 35839,
- 39939,
- 43865,
- 47792,
- 51552,
- 55312,
- 59072,
- 62373,
- 65535
+ 237,
+ 218,
+ 199,
+ 182,
+ 164,
+ 147,
+ 130,
+ 115,
+ 99,
+ 83,
+ 67,
+ 51,
+ 37,
+ 24,
+ 12,
+ 0
};
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[ NLSF_MSVQ_CB0_16_STAGES ] =
+const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[ NLSF_MSVQ_CB0_16_STAGES ] =
{
&SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 0 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 65 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 82 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 91 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 100 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 109 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 118 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 127 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 136 ],
- &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 145 ]
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 64 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 80 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 88 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 96 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 104 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 112 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 120 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 128 ],
+ &SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 136 ]
};
-const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx[ NLSF_MSVQ_CB0_16_STAGES ] =
-{
- 23,
- 8,
- 5,
- 5,
- 5,
- 5,
- 5,
- 5,
- 5,
- 8
-};
-
const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q4[ NLSF_MSVQ_CB0_16_VECTORS ] =
{
- 74, 76,
- 77, 81,
- 84, 84,
- 85, 88,
- 89, 89,
- 89, 90,
+ 75, 77,
+ 77, 83,
+ 83, 83,
+ 84, 85,
+ 88, 89,
+ 91, 92,
+ 92, 92,
92, 93,
93, 93,
+ 93, 94,
94, 94,
- 94, 94,
95, 95,
- 95, 96,
+ 95, 95,
96, 96,
- 96, 97,
+ 97, 97,
97, 98,
98, 98,
98, 99,
- 99, 99,
+ 99, 100,
100, 100,
- 100, 100,
100, 101,
101, 101,
+ 101, 101,
102, 102,
- 103, 104,
104, 105,
- 106, 107,
+ 105, 105,
107, 107,
- 107, 108,
+ 108, 108,
108, 109,
- 109, 111,
- 111, 114,
- 118, 124,
- 57, 58,
- 58, 60,
- 61, 63,
+ 111, 121,
+ 121, 124,
+ 128, 128,
+ 58, 58,
+ 62, 62,
+ 63, 63,
+ 63, 64,
+ 64, 64,
65, 65,
- 66, 66,
- 67, 67,
- 68, 69,
- 70, 70,
- 42, 47,
- 47, 48,
- 48, 51,
- 51, 52,
- 46, 46,
+ 66, 68,
+ 71, 72,
+ 43, 46,
+ 48, 49,
+ 49, 50,
+ 50, 51,
+ 44, 46,
+ 46, 49,
+ 49, 50,
+ 51, 51,
+ 45, 46,
47, 47,
+ 47, 48,
+ 52, 53,
+ 45, 46,
+ 47, 48,
48, 48,
- 49, 53,
- 44, 44,
- 48, 48,
+ 51, 51,
+ 46, 47,
+ 47, 47,
49, 49,
- 51, 52,
- 45, 45,
+ 49, 51,
46, 46,
- 49, 49,
- 52, 53,
- 45, 47,
47, 47,
- 48, 49,
- 50, 52,
+ 47, 47,
+ 51, 56,
46, 46,
- 46, 47,
- 48, 50,
- 51, 51,
- 46, 47,
- 48, 48,
- 48, 48,
- 48, 51,
+ 46, 46,
+ 49, 49,
+ 50, 52,
60, 60,
- 61, 62,
- 63, 63,
+ 60, 62,
+ 62, 62,
63, 64,
+ 64, 64,
64, 65,
- 65, 66,
- 66, 66,
- 69, 70
+ 66, 69,
+ 70, 71
};
const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min_Q15[ 16 + 1 ] =
{
- 236,
- 4,
- 75,
+ 290,
3,
+ 54,
3,
- 5,
- 115,
- 95,
+ 3,
+ 3,
113,
- 138,
- 176,
- 169,
- 249,
- 256,
- 271,
- 263,
- 630
+ 90,
+ 103,
+ 132,
+ 172,
+ 154,
+ 245,
+ 248,
+ 262,
+ 253,
+ 618
};
const SKP_int8 SKP_Silk_NLSF_MSVQ_CB0_16_Q8[ 16 * NLSF_MSVQ_CB0_16_VECTORS ] =
{
- -117, -106, -94, -81,
- -65, -52, -37, -22,
- -5, 11, 27, 42,
- 59, 75, 91, 106,
- -120, -116, -100, -84,
- -67, -49, -32, -16,
- 0, 15, 30, 46,
- 62, 77, 94, 109,
- -121, -116, -102, -85,
- -71, -58, -39, -24,
- -5, 10, 29, 45,
- 61, 77, 92, 107,
- -120, -116, -94, -83,
- -69, -57, -46, -25,
- -7, 10, 27, 42,
- 58, 75, 91, 107,
+ -119, -115, -98, -85,
+ -67, -51, -37, -20,
+ -3, 13, 30, 46,
+ 62, 78, 93, 108,
+ -116, -102, -91, -78,
+ -63, -51, -37, -21,
+ -4, 10, 28, 42,
+ 58, 74, 92, 107,
+ -115, -109, -95, -76,
+ -65, -47, -32, -15,
+ 1, 17, 32, 46,
+ 61, 76, 92, 106,
+ -115, -107, -98, -83,
+ -71, -60, -45, -26,
+ -9, 4, 24, 38,
+ 52, 69, 86, 103,
-114, -109, -94, -79,
- -66, -52, -35, -18,
- -4, 9, 26, 40,
- 53, 65, 81, 92,
- -114, -108, -96, -74,
- -62, -50, -34, -18,
- 0, 18, 33, 47,
- 61, 77, 94, 107,
- -116, -109, -99, -84,
- -71, -60, -44, -30,
- -9, 5, 18, 33,
- 52, 70, 88, 106,
- -119, -114, -99, -89,
- -71, -60, -50, -37,
- -4, 12, 28, 46,
- 60, 77, 91, 106,
- -113, -109, -87, -78,
- -67, -52, -40, -19,
- -8, 12, 29, 43,
- 58, 75, 94, 113,
- -119, -114, -88, -77,
- -63, -49, -36, -23,
- 1, 17, 33, 51,
- 68, 81, 97, 109,
- -119, -114, -101, -88,
- -71, -57, -42, -16,
- -1, 11, 24, 38,
- 54, 69, 90, 110,
- -116, -103, -86, -73,
+ -67, -53, -37, -20,
+ -6, 8, 24, 39,
+ 52, 65, 81, 93,
+ -118, -111, -101, -83,
+ -69, -58, -37, -26,
+ -4, 9, 24, 43,
+ 61, 77, 95, 110,
+ -116, -107, -87, -75,
-57, -43, -27, -13,
- 2, 16, 31, 45,
- 61, 76, 92, 108,
- -116, -112, -100, -77,
- -68, -51, -41, -22,
- -11, 0, 16, 37,
- 56, 72, 88, 104,
- -118, -113, -96, -84,
- -69, -55, -42, -30,
- -12, 17, 33, 51,
- 70, 83, 98, 110,
- -109, -104, -92, -80,
- -67, -56, -41, -28,
- -13, 0, 14, 28,
- 43, 60, 85, 104,
- -112, -107, -95, -82,
- -71, -57, -45, -26,
- -11, 1, 27, 41,
- 53, 66, 84, 104,
- -115, -111, -99, -92,
- -63, -52, -39, -24,
- -13, 5, 27, 42,
- 60, 78, 93, 109,
- -112, -108, -96, -89,
- -77, -51, -41, -22,
- -11, 13, 31, 44,
- 57, 72, 87, 105,
- -111, -107, -95, -87,
- -77, -49, -38, -24,
- -10, 0, 15, 30,
- 54, 75, 93, 107,
- -107, -103, -93, -74,
- -52, -44, -31, -16,
- -3, 10, 33, 45,
- 58, 71, 85, 98,
- -115, -111, -98, -72,
- -60, -49, -35, -24,
- 1, 11, 25, 38,
- 56, 81, 98, 112,
- -116, -112, -102, -70,
- -59, -49, -36, -25,
- -7, 5, 17, 30,
- 48, 66, 87, 103,
+ 2, 18, 32, 48,
+ 63, 78, 93, 109,
+ -116, -112, -99, -75,
+ -66, -51, -40, -22,
+ -10, 3, 18, 37,
+ 55, 72, 89, 105,
+ -107, -103, -94, -77,
+ -51, -43, -32, -16,
+ -3, 8, 31, 44,
+ 57, 70, 86, 100,
+ -115, -109, -99, -89,
+ -81, -60, -37, -26,
+ -6, 6, 22, 37,
+ 56, 75, 93, 108,
+ -114, -111, -83, -74,
+ -64, -53, -39, -23,
+ -12, 5, 28, 44,
+ 59, 76, 94, 111,
+ -114, -109, -99, -81,
+ -71, -59, -47, -33,
+ -16, -3, 17, 36,
+ 56, 73, 92, 108,
+ -114, -110, -98, -69,
+ -57, -48, -34, -23,
+ -6, 7, 20, 35,
+ 64, 81, 97, 110,
+ -112, -109, -94, -86,
+ -77, -52, -43, -23,
+ -13, -2, 13, 36,
+ 58, 77, 91, 105,
+ -111, -106, -95, -78,
+ -67, -56, -40, -28,
+ -11, 2, 15, 29,
+ 43, 57, 85, 105,
+ -109, -107, -90, -84,
+ -70, -53, -41, -22,
+ -12, 15, 30, 43,
+ 57, 72, 91, 111,
-113, -109, -94, -86,
- -75, -64, -52, -24,
- -14, 6, 23, 43,
- 61, 77, 92, 108,
- -118, -112, -100, -90,
- -65, -53, -39, -22,
- 6, 18, 32, 49,
- 67, 81, 97, 109,
- -116, -109, -99, -80,
- -69, -55, -41, -27,
- -11, 3, 23, 40,
- 61, 80, 101, 113,
- -110, -106, -92, -84,
- -73, -42, -31, -17,
- -1, 10, 26, 37,
- 51, 76, 99, 113,
- -116, -110, -93, -75,
- -57, -41, -21, -6,
- 10, 25, 40, 54,
- 68, 82, 96, 110,
- -116, -111, -100, -92,
- -81, -46, -32, -19,
- -5, 7, 25, 42,
- 58, 74, 92, 107,
- -112, -109, -86, -78,
- -68, -56, -45, -22,
- -13, -1, 13, 32,
- 58, 78, 91, 107,
- -108, -104, -89, -76,
- -66, -52, -38, -26,
- -7, 4, 18, 30,
- 43, 74, 98, 112,
- -114, -110, -82, -72,
- -61, -50, -37, -20,
- -11, 1, 17, 46,
- 62, 78, 93, 112,
- -112, -108, -99, -77,
- -66, -58, -33, -22,
- -11, 13, 25, 35,
- 47, 64, 87, 108,
- -113, -109, -96, -70,
- -59, -49, -35, -24,
- -6, 7, 19, 34,
- 65, 79, 94, 106,
- -115, -111, -96, -85,
- -72, -59, -47, -33,
- -20, -8, 8, 35,
- 56, 74, 92, 110,
- -111, -108, -92, -65,
- -54, -45, -31, -20,
- -2, 11, 23, 34,
- 47, 63, 96, 114,
- -113, -108, -98, -87,
- -79, -68, -32, -19,
- -5, 12, 25, 41,
- 60, 77, 96, 109,
- -115, -109, -96, -82,
- -58, -48, -34, -17,
- -4, 9, 36, 50,
- 65, 79, 97, 109,
- -115, -110, -100, -88,
- -56, -45, -34, -21,
- -7, 7, 24, 37,
- 50, 64, 86, 107,
- -104, -98, -88, -77,
- -60, -51, -37, -18,
- -3, 8, 25, 40,
- 53, 68, 91, 107,
- -118, -113, -97, -85,
- -74, -62, -51, -40,
- -25, 4, 24, 40,
- 57, 75, 92, 109,
- -107, -103, -92, -83,
- -74, -62, -28, -18,
- -4, 9, 22, 34,
- 50, 67, 87, 107,
- -116, -112, -75, -67,
- -56, -45, -31, -16,
- -5, 10, 30, 45,
- 63, 79, 96, 111,
- -106, -102, -88, -77,
- -68, -52, -38, -25,
- -4, 7, 23, 36,
- 66, 84, 98, 111,
- -103, -99, -87, -76,
- -66, -56, -29, -13,
- 0, 14, 31, 42,
- 57, 71, 85, 96,
- -114, -111, -91, -58,
- -47, -38, -26, -14,
- 3, 13, 26, 40,
- 62, 80, 96, 110,
- -114, -110, -90, -83,
- -72, -64, -36, -24,
- -13, 6, 28, 49,
- 66, 81, 97, 112,
- -109, -105, -91, -82,
- -71, -51, -38, -24,
- -10, 1, 20, 49,
- 64, 78, 91, 106,
- -111, -107, -90, -82,
- -70, -60, -49, -12,
- 0, 11, 25, 37,
- 60, 82, 101, 114,
- -111, -107, -93, -72,
- -42, -30, -20, -8,
- 4, 16, 34, 46,
- 58, 70, 85, 98,
- -112, -109, -80, -65,
- -56, -44, -33, -17,
- -3, 8, 20, 31,
- 49, 79, 98, 112,
- -104, -98, -84, -72,
- -59, -45, -31, -18,
- -1, 12, 31, 47,
- 64, 81, 98, 110,
- -110, -106, -92, -79,
- -70, -59, -49, -39,
- -1, 11, 22, 35,
- 52, 69, 89, 109,
- -113, -109, -101, -95,
- -56, -44, -29, -16,
- -2, 18, 33, 48,
- 63, 78, 95, 110,
- -109, -106, -94, -87,
- -74, -41, -29, -14,
- 1, 13, 28, 47,
- 69, 84, 99, 111,
- -115, -110, -101, -84,
- -50, -32, -22, -11,
- 1, 13, 30, 45,
- 58, 72, 89, 107,
- -106, -102, -89, -75,
- -64, -55, -44, -34,
- -13, 16, 32, 43,
- 59, 73, 86, 100,
- -111, -107, -94, -70,
- -55, -46, -33, -21,
- -7, 5, 19, 31,
- 43, 55, 70, 103,
- -102, -97, -80, -71,
- -60, -49, -36, -24,
- -8, 4, 19, 32,
- 48, 63, 79, 100,
- -113, -109, -90, -76,
- -66, -53, -41, -29,
- -16, -7, 5, 15,
- 42, 69, 89, 108,
- -108, -105, -93, -85,
- -76, -62, -23, -8,
- 4, 18, 33, 45,
- 60, 74, 90, 105,
- -114, -110, -89, -61,
- -52, -42, -30, -18,
- -4, 13, 26, 39,
- 53, 67, 81, 96,
- -99, -95, -86, -77,
- -69, -60, -32, -15,
- -2, 15, 35, 47,
- 64, 80, 96, 110,
- -115, -105, -80, -61,
- -43, -27, -14, -1,
- 13, 26, 40, 53,
- 67, 80, 95, 110,
- -100, -91, -72, -59,
- -48, -38, -25, -13,
- 1, 15, 28, 39,
- 58, 75, 91, 105,
- 0, 0, 0, -1,
- -2, -2, -2, -4,
- -5, -5, -7, -8,
- -5, -2, 0, 1,
- -1, -1, -3, -6,
- -8, -2, -1, -2,
- 1, 2, 3, 4,
- 3, 3, 2, 1,
- -3, -3, -6, 4,
- 2, 1, -1, -2,
- 0, 0, -1, 1,
+ -75, -65, -53, -27,
+ -16, 6, 22, 42,
+ 60, 77, 92, 109,
+ -110, -106, -93, -73,
+ -64, -52, -39, -27,
+ -6, 6, 20, 32,
+ 48, 79, 98, 112,
+ -115, -110, -94, -74,
+ -61, -48, -36, -24,
+ 4, 15, 31, 45,
+ 63, 81, 99, 112,
+ -115, -110, -102, -77,
+ -54, -47, -32, -20,
+ -7, 12, 26, 37,
+ 50, 65, 88, 107,
+ -113, -109, -97, -88,
+ -78, -50, -39, -21,
+ -7, 9, 32, 46,
+ 58, 71, 85, 102,
+ -104, -99, -89, -76,
+ -67, -58, -33, -23,
+ -7, 8, 22, 37,
+ 61, 78, 94, 107,
+ -113, -109, -86, -77,
+ -67, -56, -43, -24,
+ -15, -2, 12, 43,
+ 61, 77, 91, 109,
+ -109, -106, -93, -66,
+ -60, -48, -34, -23,
+ -2, 10, 23, 35,
+ 47, 63, 92, 113,
+ -116, -112, -100, -92,
+ -82, -50, -38, -21,
+ -10, 5, 25, 43,
+ 60, 77, 94, 108,
+ -109, -104, -92, -84,
+ -75, -50, -37, -25,
+ -7, 4, 18, 31,
+ 45, 69, 92, 106,
+ -105, -101, -89, -71,
+ -61, -52, -28, -14,
+ -1, 14, 33, 44,
+ 58, 71, 86, 99,
+ -113, -109, -99, -94,
+ -59, -48, -36, -21,
+ -10, 5, 20, 37,
+ 56, 75, 91, 108,
+ -110, -106, -88, -77,
+ -68, -45, -34, -17,
+ -2, 10, 25, 36,
+ 48, 76, 97, 113,
+ -115, -112, -98, -64,
+ -54, -45, -33, -21,
+ -5, 9, 21, 35,
+ 50, 67, 85, 99,
+ -117, -111, -97, -78,
+ -60, -46, -25, -9,
+ 7, 24, 40, 53,
+ 68, 83, 97, 110,
+ -110, -106, -91, -82,
+ -72, -58, -44, -30,
+ -17, -5, 8, 20,
+ 51, 72, 92, 109,
+ -112, -108, -96, -89,
+ -78, -40, -29, -16,
+ -1, 10, 27, 40,
+ 54, 73, 94, 109,
+ -110, -107, -90, -81,
+ -71, -62, -50, -14,
+ -2, 11, 25, 37,
+ 58, 81, 100, 114,
+ -113, -109, -87, -60,
+ -51, -41, -29, -17,
+ 0, 11, 23, 34,
+ 49, 78, 97, 111,
+ -116, -111, -102, -86,
+ -51, -37, -28, -16,
+ -2, 10, 27, 41,
+ 55, 68, 86, 106,
+ -112, -108, -96, -89,
+ -74, -48, -38, -16,
+ -3, 9, 22, 37,
+ 65, 84, 100, 112,
+ -111, -107, -95, -77,
+ -43, -29, -19, -8,
+ 4, 16, 35, 48,
+ 60, 74, 90, 104,
+ -113, -108, -95, -86,
+ -60, -50, -35, -21,
+ -10, 3, 32, 50,
+ 63, 77, 93, 109,
+ -114, -111, -78, -68,
+ -59, -48, -37, -19,
+ -9, 3, 15, 29,
+ 52, 74, 92, 110,
+ -102, -98, -85, -74,
+ -63, -52, -35, -23,
+ -9, 6, 21, 33,
+ 48, 62, 77, 100,
+ -115, -112, -74, -64,
+ -54, -42, -29, -15,
+ -4, 10, 28, 44,
+ 61, 78, 94, 110,
+ -113, -110, -92, -86,
+ -74, -66, -36, -24,
+ -10, 9, 29, 49,
+ 65, 80, 96, 111,
+ -115, -111, -95, -60,
+ -48, -39, -25, -14,
+ 1, 13, 27, 44,
+ 63, 79, 96, 109,
+ -109, -105, -95, -82,
+ -74, -65, -30, -19,
+ -7, 12, 25, 36,
+ 48, 63, 87, 108,
+ -108, -104, -92, -79,
+ -71, -60, -51, -40,
+ -2, 10, 23, 38,
+ 56, 73, 92, 109,
+ -107, -105, -86, -81,
+ -72, -46, -34, -21,
+ -2, 9, 27, 45,
+ 66, 83, 97, 111,
+ -112, -107, -97, -85,
+ -75, -66, -40, -11,
+ 2, 14, 31, 43,
+ 56, 73, 91, 106,
+ -113, -109, -95, -71,
+ -61, -51, -39, -29,
+ -14, -3, 8, 19,
+ 44, 69, 90, 106,
+ -116, -112, -103, -97,
+ -61, -47, -33, -19,
+ -3, 17, 33, 46,
+ 60, 76, 93, 109,
+ -110, -106, -94, -71,
+ -55, -47, -34, -20,
+ -7, 5, 20, 32,
+ 43, 54, 68, 103,
+ -106, -102, -89, -73,
+ -63, -55, -43, -34,
+ -13, 17, 33, 44,
+ 58, 71, 85, 99,
+ -100, -95, -81, -68,
+ -55, -45, -30, -17,
+ -2, 13, 33, 47,
+ 65, 80, 97, 110,
+ -104, -100, -89, -79,
+ -74, -62, -23, -11,
+ 2, 16, 31, 42,
+ 57, 71, 86, 101,
+ -111, -107, -90, -61,
+ -42, -35, -23, -11,
+ 2, 17, 32, 43,
+ 56, 67, 80, 96,
+ -107, -103, -96, -91,
+ -58, -41, -29, -14,
+ 0, 14, 29, 45,
+ 61, 78, 96, 111,
+ -110, -106, -96, -88,
+ -80, -67, -27, -15,
+ -2, 13, 25, 38,
+ 61, 77, 95, 108,
+ -105, -103, -79, -75,
+ -67, -52, -40, -22,
+ -6, 6, 22, 38,
+ 53, 70, 90, 109,
+ -113, -106, -84, -65,
+ -48, -31, -14, 0,
+ 15, 28, 42, 55,
+ 68, 81, 96, 110,
+ -101, -92, -71, -59,
+ -48, -39, -26, -16,
+ -1, 12, 25, 38,
+ 55, 72, 89, 104,
+ -97, -92, -82, -74,
+ -68, -56, -28, -10,
+ 3, 16, 33, 46,
+ 61, 78, 96, 108,
+ -106, -103, -93, -88,
+ -83, -50, -23, -11,
+ 3, 20, 32, 47,
+ 64, 78, 94, 109,
+ -97, -94, -85, -78,
+ -73, -66, -32, -14,
+ 1, 16, 35, 49,
+ 61, 77, 96, 111,
+ -97, -94, -89, -81,
+ -63, -58, -42, -15,
+ 2, 13, 31, 49,
+ 64, 77, 94, 109,
+ -3, -2, -5, -8,
0, 1, 0, 0,
- -2, -2, 9, 7,
- 4, 3, 1, 1,
- 0, 0, -2, -1,
- -2, -2, 0, -1,
- -2, -2, -1, -2,
- -2, 1, 0, 0,
- -1, -2, -3, -1,
- -3, -2, -5, -6,
- -1, -1, -4, -8,
- 3, 2, 1, 3,
- 1, 1, -1, 1,
- 2, 3, 3, 1,
- 0, 0, -2, -4,
- -5, -7, -9, 4,
- 2, 0, 1, 0,
- -2, -1, 0, 0,
- -3, -3, -1, 9,
- 7, 6, 5, 4,
- 3, 3, 4, 4,
- 3, 3, 2, 1,
- 8, 8, 6, 3,
- 2, 0, 2, -1,
- 0, 1, 1, 0,
- -1, 0, 1, 0,
- 2, 2, 3, 1,
- 1, 1, 0, 6,
- 6, 6, 7, 6,
- 4, 3, 2, 0,
- 1, 1, 0, -1,
- -3, -4, -7, -10,
- 0, 0, -1, 2,
- 3, 2, 3, 2,
- -1, 0, -1, -2,
- -4, -5, 8, 5,
- 3, 3, 1, -1,
- -3, -3, -1, 0,
- 2, 2, 2, 2,
- 1, 1, 0, 0,
- 0, 0, -2, -3,
- -6, -10, -10, -1,
- 1, 1, 1, -1,
- -1, -2, -3, -5,
- -8, -9, 4, 3,
- 1, 1, 0, 1,
- 0, 0, -2, -3,
- 10, 9, 7, 4,
- 2, 2, 1, 0,
- -1, -3, -3, -2,
- 2, 2, 2, 1,
- 0, 1, 1, 0,
- -1, 0, -2, -4,
- 9, 7, 4, 1,
- -1, -1, -2, -2,
- -3, -3, -3, -1,
- -2, -4, -3, -2,
- 0, -1, 0, 1,
- 0, 0, 3, 4,
- 3, 2, 1, 1,
- 0, -2, -3, -5,
- -6, -2, -1, 0,
- -2, -2, -4, -4,
- 4, 2, 1, 1,
+ -1, -1, 0, 0,
0, 0, 0, 0,
- 0, 1, 0, 0,
- 1, 1, 0, -2,
- -4, 5, 4, 3,
- 4, 1, 0, 0,
- 0, -1, 0, 0,
- 3, 3, 2, 1,
- 0, -1, -1, 0,
- -1, -3, 0, 3,
- 3, 3, 3, 3,
- 0, 0, 1, 0,
- 0, -3, -3, -5,
- -7, 5, 3, 1,
- 0, 0, 0, 0,
- 1, 1, 1, 2,
- 1, 0, 1, 2,
- 1, 0, 3, 3,
- 1, -2, -6, -7,
-1, -1, 1, 1,
- 0, -1, -1, -1,
- 7, 5, 3, 2,
- 3, 2, 3, 2,
- -2, -2, -2, 0,
- -1, 0, -2, 5,
- 2, 2, 2, 0,
- 0, 0, -1, -1,
- 0, 0, -1, -2,
- -3, -5, 4, 1,
- 1, 1, -2, -1,
- 0, 2, 1, 0,
- 2, 2, 0, -3,
- 3, 2, 1, 1,
- -1, -1, -1, -2,
- -1, 0, -2, -2,
- -1, -1, 1, 3,
- 2, 2, 0, -1,
- -2, -2, -4, -2,
- 2, 2, 2, 1,
- -1, -1, -1, -2,
- -2, -1, -2, -2,
- -3, -4, 4, 3,
- 2, 2, -1, 0,
- 1, 1, 1, 0,
- -1, -1, -3, -6,
- 4, 2, 0, -1,
+ 0, 1, -1, -2,
+ -4, -5, -6, -8,
+ -8, -6, -5, -2,
+ -3, -4, -6, 5,
+ 2, 2, 3, 2,
+ 2, 1, 1, 0,
+ -1, 0, 0, 1,
+ -1, -1, 2, 3,
+ 3, 3, 2, 3,
+ 2, 1, 2, 1,
+ -1, -4, -8, -11,
+ -2, -2, 3, 4,
+ 3, 4, 3, 5,
+ 4, 5, 6, 7,
+ 6, 5, 4, 3,
+ -2, -2, -1, -1,
+ -4, -5, -8, 4,
+ 1, 0, 2, 2,
+ 1, 0, 0, 1,
+ 3, 3, 2, 0,
+ -3, 0, 0, -2,
+ 4, 3, 3, 5,
+ 6, 5, 3, 1,
+ 2, 2, 0, -4,
+ 7, 7, 5, 6,
+ 4, 3, 2, 2,
+ 1, 1, 0, 0,
+ 1, 1, 0, -2,
+ -4, -7, 1, -2,
+ -4, 3, 1, -2,
+ -3, -2, 0, 1,
+ 1, 0, -1, 2,
+ -1, -3, -6, -9,
+ 2, 0, -1, -1,
+ -2, -2, -3, -1,
+ 0, 0, 0, -1,
+ -2, -2, -2, -4,
+ -6, -9, -8, 2,
+ 2, 2, 2, 2,
+ 7, 8, 4, 1,
+ 2, 1, 0, -1,
+ -1, -3, -2, -2,
+ -4, -3, -2, -1,
+ 1, 1, 3, 3,
+ 0, 2, 0, 0,
+ 1, -2, -4, -6,
+ 8, 7, 4, 2,
+ -1, 0, -1, -4,
+ -4, -5, 8, 6,
+ 4, 2, 1, 0,
+ 0, 0, 0, 0,
-1, -1, -1, -1,
- 0, 0, 3, 3,
- 2, 2, 3, 1,
- -1, 4, 3, 3,
- 1, 0, -1, 1,
- 1, 1, 1, 1,
- 0, 0, -1, 0,
- -1, -2, -1, -1,
- -4, -6, 4, 2,
- 0, -1, -4, 3,
- 2, 0, 1, -1,
- 0, 1, 0, -2,
- -2, -1, -1, -1,
- -1, -1, -1, -2,
- -3, 3, 0, 0,
- -1, -1, -1, -2,
- -1, -1, 0, 1,
- 1, 0, 1, 0,
- -1, -2, -4, 4,
- 2, 0, 0, -1,
- 1, 1, 1, 1,
- 1, 1, 0, -2,
- -2, -3, 2, 0,
- 0, 2, 2, 1,
- 0, -3, -2, 1,
- 0, 0, -1, 0,
- 1, 2, 1, 0,
- 2, 1, 3, 4,
- 3, 1, 1, -1,
- -2, -2, 4, 1,
- 1, 0, 1, -1,
- -2, -1, 0, -1,
+ -2, -3, -4, -7,
+ -10, 4, 5, 3,
+ 4, 4, 3, 1,
+ 1, 1, 2, 2,
+ 2, 2, 0, 0,
+ 0, -1, -1, -3,
+ -6, -7, 7, 5,
+ 1, 1, 0, -1,
+ -1, -2, -2, -1,
+ -3, -3, -5, -5,
+ -5, -2, -1, -1,
+ -1, -1, 6, 6,
+ 4, 3, 2, 2,
+ 1, 1, -1, -1,
+ -1, -1, -1, 0,
+ 4, 4, 1, 0,
+ -1, -2, -1, 0,
+ 0, -1, 1, 2,
+ 2, 4, 4, 2,
+ -1, -1, -3, -3,
+ 5, 2, 0, -1,
+ -3, 3, 2, 0,
+ 1, 1, 0, 0,
+ -3, -3, -5, 1,
+ -1, -2, 0, 0,
+ 0, 0, -2, 0,
+ 3, 3, 3, 2,
+ 1, 0, 0, -2,
+ -3, 7, 6, 4,
+ 3, 2, 0, 0,
0, -1, 0, 0,
+ 0, -1, 0, -1,
+ -2, -3, -4, -2,
+ -3, -5, 5, 5,
+ 2, 0, -1, -1,
+ -1, -1, 0, -1,
+ -2, -2, -1, -2,
+ 6, 5, 2, 1,
+ -1, -3, -2, -2,
+ -2, -1, -3, -4,
+ -4, -1, 0, 0,
1, 1, 1, 0,
+ 1, 1, 0, -1,
+ -1, -1, -2, 0,
+ 0, 0, -1, -1,
+ 0, -1, -3, -3,
+ -4, -5, 0, 0,
1, 1, 0, 0,
- 0, 0, 1, -2,
- -4, 5, 4, 2,
+ 0, -1, -2, 4,
+ 3, 3, 4, 2,
+ 2, 2, 1, -1,
1, 2, 0, 0,
- 1, 0, 0, -3,
- -1, -2, -5, 3,
- 3, 0, -1, -2,
- -1, -1, 0, -1,
- -1, 0, 0, -1,
- 2, 2, 0, -1,
- -3, -2, -1, -2,
- 0, 0, 1, 2,
- 0, -1, -3, 1,
- -1, -2, 2, 1,
+ 0, 0, -1, -3,
+ -5, -5, 2, -1,
+ -1, 1, 0, -1,
+ 2, 2, 1, 1,
+ 1, 0, 1, 1,
+ 1, 1, 0, 0,
+ -1, -5, -7, 1,
+ 0, 0, 1, 3,
+ 3, 3, 3, 1,
+ 2, 1, 0, -3,
+ -4, 3, 3, 1,
+ -1, -2, 3, 0,
+ 0, -2, 0, -2,
+ -2, 0, -1, 0,
+ 2, 2, 4, 3,
+ 0, 0, 0, 1,
+ 1, 2, 1, 0,
+ 0, -2, -4, 6,
+ 5, 1, -1, -3,
+ -1, -1, -3, 4,
+ 2, 1, 0, -1,
+ 0, -1, 1, 2,
+ 1, 0, -1, 0,
+ 0, 0, 1, 0,
-1, -2, -1, -1,
+ -4, 4, 2, 1,
+ 0, -1, -2, -1,
0, 0, 1, 0,
- -1, 1, -1, 2,
- 1, 0, -3, 3,
- 1, 2, 2, 0,
- 0, 0, -2, 1,
- 0, -1, 0, 0,
- -2, 4, 2, 1,
- 3, 1, 1, 0,
+ 0, -2, -4, 5,
+ 2, 0, -2, -1,
+ -1, -1, -1, 0,
+ -1, -1, -2, -4,
+ 1, -1, 1, 0,
+ -1, -2, -1, 0,
+ 0, 2, 2, 2,
+ 0, 0, 1, 0,
+ -1, -1, -2, -5,
+ 4, 1, 0, -1,
+ 0, 2, 2, 2,
+ 2, 2, 1, 0,
+ 0, 0, 3, 0,
0, 0, -1, -2,
- 2, 1, 0, -2,
- -1, 1, 0, 0,
- -1, -1, 2, 2,
- 1, 1, 1, 1,
- 1, 1, 1, 1,
- 2, 0, -2, -2,
- 1, -1, -4, 2,
- -1, -1, -1, -1,
- -1, -1, 4, 1,
- -1, -3, 1, 2,
- 0, 0, 1, 1,
- 1, 1, 0, 0,
- 0, 0, -1, -2,
- -1, -2, 0, -4,
- 2, 4, 0, -2,
- 1, 0, 0, -1,
- -1, -2, -2, 1,
- -2, 1, 1, -1,
- -2, -1, -1, 0,
- 1, 1, 0, 1,
- 0, 2, 1, 0,
- 0, -2, 1, 0,
- -2, 0, 1, -2,
- 0, -1, 0, 1,
- 0, 0, 1, -1,
- -1, 0, -3, 2,
+ 3, 3, 0, -2,
+ 1, 2, 1, 0,
+ -1, 1, 1, 0,
-1, -2, 1, 1,
- 0, -1, 1, 0,
- 1, 1, 0, 0,
- 1, -1, 2, 1,
- 1, -1, -2, 3,
- 0, -1, 1, 0,
- 0, -1, 3, 1,
- 1, 1, 0, 1,
- 2, 2, -1, -3,
- 0, -1, -3, 0,
- 0, -1, -1, -1,
- 2, -1, 0, 1,
- 0, 2, 1, 1,
- 0, 0, 0, -1,
- 1, 0, 0, 1,
- 0, 0, -1, -3,
- 3, 0, 2, 1,
- -3, 4, 1, 0,
+ -2, -5, 2, 2,
+ -3, -3, 1, 0,
+ -1, 3, 2, 1,
+ 1, 0, 0, 0,
+ -1, -1, -2, -2,
+ 0, 0, 1, 0,
+ 0, 0, -1, -1,
+ 0, 1, 0, -2,
+ 3, 2, -2, -3,
+ 0, 1, 0, -2,
+ -1, 1, 0, 1,
+ 0, -1, -3, -3,
+ -1, -2, -1, 1,
0, 0, 0, 0,
- 0, 0, 0, 0,
+ 3, 1, 1, 0,
+ -2, -2, 1, 1,
+ -1, -1, -1, -3,
+ 1, 1, 0, 0,
+ 0, -2, -2, -2,
+ 0, 0, -2, 4,
+ 1, -1, 1, 0,
+ 0, 0, 2, 0,
+ 0, 2, 1, 0,
+ -1, -2, 2, 0,
+ 2, 1, 0, 4,
+ 0, 0, -1, 1,
+ -1, -3, 3, 0,
+ 1, 2, 0, -1,
+ -1, 0, 1, 0,
+ -1, -1, 0, 0,
+ 0, 0, -2, 1,
+ 0, -1, 1, -1,
+ -4, 4, 3, 1,
+ -1, -1, -2, 1,
+ 0, 1, 0, 2,
+ 1, 2, 2, 1,
+ 0, -3, 1, 1,
+ 0, 0, 0, -2,
+ 3, 1, -1, 0,
+ 2, 0, -1, 2,
1, 0, 0, 0,
+ 0, 0, 2, 2,
+ 1, 1, 0, -2,
+ 2, 1, 0, 0,
+ -1, -1, 0, -2,
+ 0, 0, 0, 0,
+ -3, 3, 1, 0,
+ 0, -1, 1, 1,
+ 1, 0, 0, -1,
+ 0, 0, -1, 0,
0, 0, 0, -1,
+ -3, 3, 1, 1,
+ -2, 1, 1, 1,
+ 0, 0, 0, 0,
0, -1, -1, 0,
- 0, -2, -1, 1,
- 0, -1, -2, -1,
- 0, 2, 0, 0,
- 1, -1, 0, 2,
- 1, 0, -1, 0,
- -2, 0, 0, 0,
- -1, -1, 0, -1,
+ -2, -1, -1, -3,
+ 3, 0, 2, 1,
+ -1, -1, -3, 0,
+ 0, -1, 0, 1,
+ 0, 0, 0, 0,
+ -1, 1, -1, -3,
+ 1, 1, 0, 0,
+ -1, -1, -1, 1,
+ 2, 0, 1, -2,
+ -1, 0, -2, 3,
+ 0, 0, 2, 0,
+ 0, -3, 3, 1,
+ -1, -1, 0, 2,
+ 0, 0, -1, 0,
0, -1, 0, 0,
- -1, 1, -1, -2,
- 0, 2, -2, 0,
- 1, 0, 0, -1,
+ -1, 0, -1, -1,
+ -1, -1, -1, 1,
+ -1, -2, -2, 2,
-2, 2, 0, 0,
- 1, 2, 1, 1,
0, 0, -1, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 1, 1, 0, 0,
+ 0, -1, 1, 0,
+ 1, -1, 0, 0,
+ 2, 0, -2, 0,
+ 1, 0, 0, -1,
+ -1, 2, 0, 1,
+ 1, 1, 0, -1,
+ -2, 2, -1, -2,
+ 1, 0, 0, 2,
+ 0, 1, -1, 1,
+ 0, -1, -2, 1,
+ 1, 1, 2, 0,
+ 0, 0, -1, 0,
+ 3, 0, 1, -1,
+ -1, 2, 0, -2,
+ 0, -1, -1, 1,
+ 0, -1, 0, 0,
0, 0, 2, 0,
- 0, -2, 0, -2,
- 1, 1, 0, 1,
- 0, 1, 1, 1,
- 0, 0, -2, 1,
- -1, 1, 1, -1,
- 1, -1, 0, -2,
- 0, -1, 2, 2,
- -1, -1, 1, 1,
- 1, 1, 0, 1,
- 0, 1, 0, 0,
- 0, -1, 2, -3,
- 1, 0, 0, 1,
- 2, 0, 0, -1,
- -2, -2, 2, 0,
- 0, 0, 0, 1,
- 0, -1, 0, 2,
+ 0, 0, 2, 1,
+ 1, 1, 3, 1,
+ -1, -2, 2, 0,
+ 0, -1, -1, 1,
+ 1, 0, 1, -1,
+ 0, -2, 1, -1,
+ -1, -1, 1, 0,
+ 0, -1, -1, 0,
+ 0, 0, 0, 2,
+ 0, 2, -1, 1,
+ 0, -1, -2, 0,
0, 1, -1, -1,
- 1, 0, -1, 0,
- -1, 1, -1, 0,
- -1, 0, -3, 0,
- 0, 0, 0, 1,
- -1, 0, 0, 0,
- 1, -1, 0, 0,
- 1, 0, 0, 0,
- 0, -1, 2, 2,
- 1, 1, 1, 0,
- -1, 0, 1, 1,
+ 1, 0, 0, -1,
+ 0, 0, 1, 0,
+ 0, 0, 0, -2,
0, -1, 0, 0,
- -2, 0, -1, 0,
- -1, 0, 1, 0,
- 0, 1, 2, 1,
- 1, 0, 1, 0,
- -1, 1, 1, 0,
- -2, 0, -1, -1,
+ 0, 1, 1, 1,
1, -1, -1, -1,
- 0, 0, 0, -2,
- 2, 0, -1, 0,
- -1, 1, 0, 1,
- 0, 1, 0, -1,
- 1, 1, 0, 0,
- -1, -1, -1, -1,
1, 0, 0, 0,
- 1, -1, 0, 0,
- -2, 1, 1, 0,
- 1, 0, 1, -1,
+ -1, -1, 0, -2,
+ -1, -1, -1, -1,
+ -2, 0, 0, -1,
+ 1, 2, 1, 0,
+ 0, 1, 0, 1,
+ 1, 1, 0, 0,
+ 0, 0, 2, 0,
+ 1, 0, 0, 1,
+ 0, 0, -1, 2,
+ -2, -1, 2, -1,
0, -1, 0, 0,
- 0, 0, 0, 0,
- -1, 0, 1, 2,
- -1, 0, 1, 1,
+ 0, -1, 1, 0,
+ 0, 1, 2, 1,
+ 0, 1, -2, 0,
+ 0, 0, 0, 1,
+ -1, 0, 0, 0,
+ 0, 0, 2, 0,
0, -1, 0, 0,
- 1, 0, 0, -1,
+ 0, 0, 0, 0,
+ -2, 1, 0, 1,
+ 0, 0, -1, 0,
1, 1, -1, 0,
- -1, 0, 0, 0,
- 0, -1, 0, 1,
- -1, 1, -1, 1,
- 1, 1, 1, 1,
+ 0, 0, -1, 0,
+ 1, 0, -2, 0,
+ 0, 0, 1, 0,
+ 1, 0, 0, 2,
+ -2, 0, 0, 0,
0, 1, 0, 0,
- 0, 2, 0, -1,
- 0, 0, 1, 1,
- -2, 1, 0, 1,
- 0, 1, -2, -1,
- -1, 0, -1, 0,
+ 1, -1, -2, -1,
+ 0, -2, 2, 0,
+ 0, 0, 0, -1,
0, 0, 0, 0,
- -2, -1, 0, -1,
- 0, -1, 0, 1,
- 1, 1, -1, 0,
+ 0, 0, 0, -1,
1, -1, 0, 1,
- 0, -1, -1, 0,
+ 1, -3, 0, 0,
0, 0, 0, -1,
- 0, 1, 1, 2,
- -2, 0, 0, 0,
- 0, 0, 0, 0,
- 0, 0, 0, 0,
- 1, -1, 2, -2,
- 0, 0, -1, -1,
- 0, 0, 2, -1,
- 0, 1, -1, 0,
- 1, -1, -1, -1,
- -1, 0, 0, 0,
+ -2, -1, 0, 1,
+ 0, 0, -1, 0,
+ 0, 0, 1, 1,
0, -1, 0, 0,
- 1, 2, 1, 1,
- -1, -1, 0, 0,
- -1, 1, 0, 1,
+ 0, 1, 1, -2,
+ -1, 0, -1, 0,
+ 0, 1, -1, 0,
1, 0, 0, 0,
- 0, 0, -2, 1,
- 0, 0, 1, 1,
- 1, 1, 1, 1,
+ 0, 1, -2, 1,
+ -1, 0, 0, 0,
1, 0, -1, 0,
- 2, 0, 0, 0,
- 2, 0, -1, 0,
- 0, -1, 0, -1,
- 1, 0, -1, 0,
- -1, -1, 0, 0,
- 0, 1, -2, 0,
- 0, 0, 1, -1,
- 0, -1, 0, 1,
- 1, -2, 0, 0,
- -1, -1, -1, -1,
- 0, 0, 0, 0,
+ 1, 0, 0, 0,
+ 2, -1, 0, 1,
0, 0, -1, -1,
- 0, 1, 2, -2,
+ 0, 0, 0, 1,
+ 1, 0, 0, 0,
+ 0, -2, 0, -1,
+ 1, 2, 1, 0,
0, 0, 0, 0,
- 1, 1, 0, 0,
- 0, -1, 0, 0,
- 0, 0, 0, -2,
- -1, 0, 0, -1,
- 1, -2, -1, 0,
- 0, 1, 0, -1,
+ -1, 0, -1, 0,
+ 0, 1, 0, 2,
+ 0, 1, 0, 0,
+ 2, 1, 0, 0,
+ 0, 0, 3, 0,
+ 0, 1, 0, 0,
0, 0, 1, 0,
+ -1, 0, 0, 1,
+ 1, 3, 0, 0,
+ 0, 0, 1, 0,
+ -1, 0, 0, -1,
+ 0, 0, 0, 0,
+ 0, -1, 0, 0,
+ 0, 0, 0, 0,
+ -2, 0, -1, 1,
+ 0, -1, 2, -2,
+ 0, 0, 0, 2,
-1, 0, 1, 0,
- 1, -1, 1, 0
+ 0, 0, 0, -1,
+ 0, 0, -1, 0,
+ -2, -1, 0, -1,
+ 0, 0, 0, 0,
+ -1, 0, 0, -1,
+ 0, 0, 0, 1,
+ 0, -1, 0, 0,
+ 0, 1, 1, 1,
+ 1, -1, 1, -1,
+ 0, 0, 0, 0
};
const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB0_16_Stage_info[ NLSF_MSVQ_CB0_16_STAGES ] =
@@ -962,7 +938,6 @@
SKP_Silk_NLSF_CB0_16_Stage_info,
SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min_Q15,
SKP_Silk_NLSF_MSVQ_CB0_16_CDF,
- SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx
+ SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr
};
--- a/src_common/SKP_Silk_tables_NLSF_CB0_16.h
+++ /dev/null
@@ -1,51 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_TABLES_NLSF_CB0_16_H
-#define SKP_SILK_TABLES_NLSF_CB0_16_H
-
-#include "SKP_Silk_define.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#define NLSF_MSVQ_CB0_16_STAGES 10
-#define NLSF_MSVQ_CB0_16_VECTORS 152
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS + NLSF_MSVQ_CB0_16_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[ NLSF_MSVQ_CB0_16_STAGES ];
-extern const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx[ NLSF_MSVQ_CB0_16_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
--- a/src_common/SKP_Silk_tables_NLSF_CB1_10.c
+++ b/src_common/SKP_Silk_tables_NLSF_CB1_10.c
@@ -28,587 +28,569 @@
/**********************************************/
/* This file has been automatically generated */
/* */
-/* ROM usage: 0.22 + 0.90 kB */
+/* ROM usage: 0.11 + 0.90 kB */
/**********************************************/
#include "SKP_Silk_structs.h"
#include "SKP_Silk_tables.h"
-#include "SKP_Silk_tables_NLSF_CB1_10.h"
+#include "SKP_Silk_tables_NLSF_CB.h"
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS + NLSF_MSVQ_CB1_10_STAGES ] =
+const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS ] =
{
+ 176,
+ 144,
+ 119,
+ 102,
+ 92,
+ 85,
+ 79,
+ 73,
+ 68,
+ 63,
+ 58,
+ 53,
+ 49,
+ 45,
+ 41,
+ 37,
+ 34,
+ 30,
+ 27,
+ 24,
+ 22,
+ 19,
+ 17,
+ 15,
+ 13,
+ 12,
+ 10,
+ 8,
+ 6,
+ 4,
+ 2,
0,
- 21247,
- 28440,
- 34489,
- 38585,
- 41021,
- 43353,
- 45401,
- 47050,
- 48562,
- 49890,
- 51162,
- 52379,
- 53597,
- 54536,
- 55435,
- 56260,
- 57049,
- 57805,
- 58562,
- 59286,
- 59979,
- 60588,
- 61122,
- 61613,
- 62103,
- 62593,
- 63084,
- 63574,
- 64064,
- 64554,
- 65045,
- 65535,
+ 149,
+ 93,
+ 71,
+ 55,
+ 40,
+ 26,
+ 12,
0,
- 34067,
- 42961,
- 48025,
- 52103,
- 55532,
- 58961,
- 62391,
- 65535,
+ 121,
+ 100,
+ 80,
+ 61,
+ 45,
+ 29,
+ 14,
0,
- 30146,
- 40804,
- 46615,
- 50906,
- 55016,
- 58624,
- 62080,
- 65535,
+ 133,
+ 110,
+ 88,
+ 67,
+ 48,
+ 30,
+ 13,
0,
- 31530,
- 38758,
- 44096,
- 48990,
- 53478,
- 57776,
- 62074,
- 65535,
+ 199,
+ 152,
+ 111,
+ 76,
+ 53,
+ 32,
+ 15,
0,
- 14400,
- 25503,
- 35253,
- 44194,
- 52756,
- 58308,
- 62234,
- 65535,
+ 161,
+ 109,
+ 88,
+ 68,
+ 49,
+ 30,
+ 14,
0,
- 26248,
- 35939,
- 44449,
- 49733,
- 53988,
- 58062,
- 61799,
- 65535,
- 0,
- 20097,
- 31540,
- 38344,
- 44584,
- 50823,
- 56798,
- 62277,
- 65535
+ 211,
+ 171,
+ 134,
+ 98,
+ 63,
+ 37,
+ 11,
+ 0
};
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[ NLSF_MSVQ_CB1_10_STAGES ] =
+const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[ NLSF_MSVQ_CB1_10_STAGES ] =
{
&SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 0 ],
- &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 33 ],
- &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 42 ],
- &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 51 ],
- &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 60 ],
- &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 69 ],
- &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 78 ]
+ &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 32 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 40 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 48 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 56 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 64 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ 72 ]
};
-const SKP_int SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx[ NLSF_MSVQ_CB1_10_STAGES ] =
-{
- 4,
- 2,
- 2,
- 2,
- 4,
- 3,
- 3
-};
-
const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q4[ NLSF_MSVQ_CB1_10_VECTORS ] =
{
- 26, 51,
- 55, 64,
- 76, 77,
- 80, 85,
- 87, 90,
- 91, 92,
- 92, 98,
- 99, 101,
- 102, 103,
- 103, 104,
- 105, 108,
- 111, 113,
+ 27, 48,
+ 54, 63,
+ 74, 84,
+ 85, 89,
+ 91, 91,
+ 91, 91,
+ 94, 95,
+ 96, 97,
+ 100, 101,
+ 102, 104,
+ 106, 106,
113, 113,
113, 113,
113, 113,
113, 113,
- 15, 46,
- 59, 64,
- 68, 68,
- 68, 70,
- 18, 42,
- 56, 63,
- 64, 67,
- 68, 68,
- 17, 51,
- 58, 60,
- 62, 63,
- 63, 68,
- 35, 41,
- 44, 46,
- 47, 57,
- 65, 69,
- 21, 44,
- 47, 58,
- 63, 64,
+ 113, 113,
+ 20, 35,
+ 57, 64,
66, 66,
- 27, 40,
- 52, 54,
- 54, 55,
- 57, 69
+ 67, 71,
+ 15, 58,
+ 58, 61,
+ 64, 64,
+ 65, 68,
+ 17, 55,
+ 57, 58,
+ 60, 61,
+ 63, 68,
+ 35, 39,
+ 43, 46,
+ 56, 58,
+ 63, 65,
+ 23, 37,
+ 57, 59,
+ 60, 61,
+ 63, 68,
+ 40, 43,
+ 45, 45,
+ 46, 53,
+ 53, 73
};
const SKP_int SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min_Q15[ 10 + 1 ] =
{
- 293,
- 32,
- 225,
- 280,
+ 488,
+ 31,
+ 249,
+ 268,
153,
- 23,
- 13,
- 14,
+ 20,
+ 12,
+ 15,
9,
3,
- 688
+ 685
};
const SKP_int8 SKP_Silk_NLSF_MSVQ_CB1_10_Q8[ 10 * NLSF_MSVQ_CB1_10_VECTORS ] =
{
- -113, -92,
- -68, -43,
+ -112, -92,
+ -67, -43,
-20, 3,
28, 52,
78, 100,
- -114, -101,
- -75, -53,
+ -113, -100,
+ -76, -53,
-30, -7,
20, 45,
- 72, 96,
- -98, -81,
- -58, -33,
- -10, 10,
- 35, 58,
- 82, 103,
- -110, -99,
+ 72, 97,
+ -97, -81,
+ -58, -34,
+ -10, 11,
+ 37, 59,
+ 83, 104,
+ -110, -100,
-80, -61,
-38, -15,
12, 38,
- 66, 89,
- -115, -108,
- -77, -49,
- -21, 4,
- 29, 53,
- 79, 102,
- -101, -81,
- -55, -29,
- -7, 23,
- 47, 71,
- 93, 110,
- -100, -83,
- -65, -44,
- -25, -7,
- 19, 45,
- 72, 96,
- -110, -100,
- -85, -45,
- -25, -8,
- 22, 39,
- 78, 97,
- -115, -107,
- -89, -69,
- -36, -9,
- 20, 45,
- 72, 99,
- -113, -99,
- -69, -38,
- -12, 16,
- 44, 68,
- 92, 109,
+ 66, 90,
+ -114, -107,
+ -81, -50,
+ -23, 2,
+ 28, 51,
+ 77, 101,
+ -92, -80,
+ -59, -42,
+ -18, 2,
+ 26, 50,
+ 77, 97,
+ -102, -83,
+ -56, -29,
+ -8, 23,
+ 48, 73,
+ 98, 111,
+ -98, -78,
+ -48, -19,
+ 7, 32,
+ 54, 73,
+ 92, 107,
+ -105, -90,
+ -69, -42,
+ -4, 20,
+ 38, 57,
+ 77, 97,
+ -113, -101,
+ -71, -40,
+ -14, 11,
+ 42, 65,
+ 89, 108,
+ -109, -99,
+ -84, -61,
+ -17, 0,
+ 19, 46,
+ 65, 97,
+ -109, -100,
+ -85, -49,
+ -25, -10,
+ 21, 35,
+ 79, 97,
+ -109, -101,
+ -81, -33,
+ -10, 6,
+ 28, 46,
+ 81, 99,
+ -115, -84,
+ -58, -32,
+ -11, 11,
+ 36, 61,
+ 84, 104,
+ -114, -106,
+ -88, -68,
+ -39, -3,
+ 25, 44,
+ 66, 97,
+ -79, -68,
+ -46, -29,
+ -7, 13,
+ 36, 58,
+ 82, 101,
+ -106, -87,
+ -69, -51,
+ -27, -11,
+ 15, 52,
+ 74, 92,
+ -99, -87,
+ -70, -55,
+ -40, -13,
+ 31, 52,
+ 78, 101,
-109, -98,
- -84, -60,
- -19, -3,
- 18, 43,
- 61, 98,
- -99, -77,
- -46, -17,
- 10, 35,
- 55, 74,
- 92, 106,
- -105, -91,
- -70, -42,
- -1, 17,
- 35, 58,
- 75, 99,
- -90, -77,
- -53, -38,
- -21, 0,
- 28, 49,
- 76, 97,
- -110, -101,
- -80, -29,
- -8, 6,
- 30, 48,
- 82, 99,
- -110, -92,
- -55, -19,
- 4, 25,
- 43, 62,
- 84, 101,
- -101, -88,
- -73, -58,
- -45, -26,
- 21, 46,
- 71, 98,
- -83, -67,
- -40, -22,
+ -83, -66,
+ -52, -28,
+ 23, 46,
+ 74, 99,
+ -111, -103,
+ -87, -57,
-2, 19,
- 41, 63,
- 85, 103,
- -112, -103,
- -89, -62,
- -8, 15,
- 33, 56,
- 74, 97,
- -117, -73,
- -56, -33,
- -13, 11,
- 34, 57,
- 80, 101,
- -110, -100,
- -84, -72,
- -59, -15,
- 21, 45,
- 76, 96,
- -103, -90,
- -72, -59,
- -40, 1,
- 32, 56,
- 82, 98,
- -107, -97,
- -79, -54,
- -37, -21,
- -4, 22,
- 71, 94,
- -97, -67,
- -27, -2,
- 29, 44,
- 58, 71,
- 82, 98,
- -89, -74,
- -55, -45,
- -30, -18,
- -2, 23,
- 65, 97,
- -106, -82,
- -56, -31,
- -5, 34,
- 59, 65,
- 68, 78,
+ 33, 53,
+ 72, 97,
+ -113, -99,
+ -62, -21,
+ 5, 27,
+ 47, 65,
+ 86, 103,
+ -99, -79,
+ -37, -16,
+ 3, 19,
+ 37, 62,
+ 83, 101,
+ -92, -79,
+ -57, -41,
+ -25, -10,
+ 8, 30,
+ 68, 96,
+ -104, -92,
+ -77, -56,
+ -39, -23,
+ -7, 21,
+ 72, 95,
+ -78, -65,
+ -34, -16,
+ 10, 30,
+ 51, 71,
+ 90, 106,
+ -104, -76,
+ -38, -5,
+ 27, 52,
+ 66, 77,
+ 89, 101,
+ -106, -79,
+ -50, -24,
+ 15, 40,
+ 43, 35,
+ 47, 102,
+ -103, -71,
+ -40, -6,
+ 22, 22,
+ 26, 37,
+ 66, 99,
+ -106, -78,
+ -53, -30,
+ -3, 40,
+ 63, 69,
+ 57, 75,
+ -106, -79,
+ -51, -33,
+ -1, 17,
+ 51, 89,
+ 108, 121,
-107, -82,
- -57, -31,
- 20, 31,
- 34, 35,
- 68, 103,
- -109, -83,
- -56, -32,
- -6, 18,
- 49, 82,
- 109, 116,
- -103, -82,
- -50, -17,
- -6, 2,
- 19, 56,
- 83, 105,
- -106, -82,
- -54, -30,
- -1, 32,
- 41, 49,
- 52, 98,
- -98, -66,
- -36, 0,
- 5, 12,
- 14, 26,
- 64, 97,
- -105, -80,
- -53, -29,
- 2, 30,
- 76, 90,
- 94, 96,
+ -56, -37,
+ -7, 17,
+ 68, 86,
+ 86, 88,
+ -102, -76,
+ -47, -13,
+ -3, 3,
+ 10, 43,
+ 77, 105,
-2, -2,
- -2, 0,
-1, -1,
+ 0, 0,
-1, 0,
0, 0,
+ 2, 4,
+ 4, 3,
+ 4, 5,
+ 4, 3,
2, 2,
- 3, 4,
- 3, 5,
- 7, 6,
- 4, 2,
- 8, 9,
- 5, -2,
+ -1, -3,
+ -5, 0,
+ -5, -9,
+ -4, -1,
+ -4, -6,
1, 1,
+ 0, 2,
+ -4, -6,
+ -2, -4,
+ 9, 5,
+ -3, -6,
+ -9, -12,
+ 2, 0,
+ 0, 2,
+ 0, -1,
+ 0, -1,
+ 2, 9,
+ 6, 2,
+ -4, -9,
+ -7, -3,
+ 9, 9,
+ 7, 3,
+ -3, -6,
+ -3, -5,
+ -8, -2,
1, 0,
- -2, -2,
- 1, 1,
- 2, -2,
- -7, -11,
- -11, 0,
+ -3, -8,
+ -12, 4,
+ 4, 7,
+ 7, 0,
-1, 0,
- 1, 0,
- -3, -2,
- -6, -3,
- 2, -4,
- 10, 5,
- -1, -3,
- -5, -7,
- 11, 7,
- 4, -1,
- 1, 1,
+ 0, 0,
0, 1,
- 7, 10,
- 3, -1,
- -6, -2,
- -3, -4,
- 0, -1,
+ 0, 1,
+ 1, 1,
+ 3, 3,
+ 2, -5,
+ -8, -3,
+ -3, -1,
+ -1, -3,
+ 3, 3,
+ 4, 4,
+ 2, -4,
+ -9, -1,
-2, -2,
- 0, 3,
- 0, -5,
- -11, -10,
- -1, 1,
- 1, 1,
- 1, 1,
- 1, 1,
+ 2, 2,
+ 2, 4,
+ 5, 5,
+ 3, 0,
+ -5, -7,
+ -1, -2,
+ -6, -5,
+ -1, -6,
+ 1, -1,
+ -6, 5,
+ -5, -10,
+ 4, 2,
+ 2, 0,
+ 0, 1,
1, 0,
2, 1,
- -2, -4,
- -5, -3,
- -3, -3,
- -3, -3,
- 3, 2,
- 3, 5,
- 4, 0,
- -3, -9,
- -5, -1,
- 3, 2,
- 2, -1,
- -1, -1,
- -2, 6,
- 7, 6,
- -2, -5,
- -9, -4,
+ -1, 3,
+ 3, -1,
+ 12, 3,
+ 3, 3,
+ 0, -2,
+ -4, -4,
+ -4, 5,
+ -1, -9,
+ 1, 0,
+ -1, 0,
+ -1, 0,
+ 0, 0,
+ 1, 0,
+ -1, -2,
+ 0, -1,
+ -2, -1,
+ -1, 0,
+ 2, 8,
+ 4, 4,
+ 6, 4,
+ 0, -2,
+ -2, 0,
+ 0, -1,
+ -2, 1,
+ 2, 0,
+ -3, -2,
+ 7, 1,
+ 1, -1,
+ -3, 2,
-1, -3,
- -3, 1,
- 2, 2,
- -6, -9,
- 6, 3,
- 3, 1,
- 2, 1,
+ -4, 6,
+ 0, 1,
+ -3, -1,
+ 5, 0,
+ 0, -2,
+ 1, -2,
+ -2, -2,
+ -6, -2,
+ 2, 5,
+ 0, -2,
+ 10, 5,
+ -1, 1,
+ 0, 0,
-1, -1,
- 3, 1,
- -2, 2,
- 4, -3,
- 9, 3,
- -3, 4,
+ -1, 7,
+ 5, -2,
+ 0, 0,
+ 0, -4,
+ -1, -3,
+ -2, -1,
+ -2, -3,
+ 1, -1,
+ -1, -2,
+ 3, 0,
+ 0, 0,
+ 1, 1,
+ -2, -5,
+ 1, 1,
+ 0, 2,
+ 2, 1,
+ 1, -3,
+ 1, 2,
+ 0, 3,
+ 0, -2,
+ 2, 1,
+ 2, 3,
1, 0,
- -1, -4,
- -6, 11,
- 4, 1,
- 2, -1,
- -1, -1,
+ -1, -3,
+ 0, -1,
-1, -2,
0, 0,
+ 1, 3,
+ 5, 1,
+ -1, 1,
+ -4, 5,
+ 0, 2,
+ 1, 1,
0, 0,
-1, 0,
- 6, 3,
+ 0, -2,
+ -1, 1,
+ 2, 0,
+ -5, 4,
+ -1, 0,
1, 0,
- 1, 1,
- 1, -1,
- 1, 2,
- -5, 6,
- 3, 2,
- 3, 4,
- 2, 1,
- 0, 1,
+ -2, 1,
+ -6, 4,
+ 0, 0,
+ -2, 0,
0, -1,
- -2, 2,
1, -1,
- -6, -8,
- 2, -1,
- 0, -1,
- 8, 1,
- -5, 0,
-1, -1,
- 0, 0,
- 0, 0,
+ 0, -3,
-2, 0,
- -2, -8,
- 3, 0,
- 2, 2,
1, 1,
- 0, 0,
+ -1, 4,
1, 0,
- -2, 10,
- 1, -4,
- -1, -4,
- -6, 6,
- 3, 4,
- 4, 1,
- -1, -2,
- 0, 1,
- 2, 1,
- 1, 4,
- 1, 1,
- -1, -2,
- 0, 4,
- 2, 0,
- -1, -2,
- -1, -2,
+ 0, 2,
+ -1, 2,
+ -3, 0,
+ 3, 0,
+ 1, 0,
+ 1, 4,
+ 2, 0,
+ 2, 0,
1, 0,
- -1, -2,
+ 0, 1,
+ 1, -1,
+ 6, 2,
+ 0, 3,
+ -1, -3,
+ 0, -2,
-2, 1,
- -1, -4,
- 0, -1,
- -1, -4,
- 0, -1,
- -2, -4,
+ 1, 0,
+ 0, 0,
+ -1, -1,
+ 1, 6,
-1, 0,
- 3, 3,
- 1, 1,
- -1, -3,
- 1, 1,
- 1, 1,
- -1, -2,
- 4, 3,
- 2, 0,
- -1, -2,
- 5, -1,
- -3, 0,
- -1, 0,
0, -1,
- 0, 0,
- 0, -2,
- 0, -1,
- -7, 6,
- 2, 0,
- -2, 4,
- -4, 1,
- -1, 1,
1, 0,
- 1, -1,
- 1, 2,
- 2, 0,
- 1, 1,
0, 1,
- -1, 1,
- 1, -4,
- 2, -1,
0, -1,
- -1, -1,
- 0, -1,
- -3, -1,
- -2, 1,
- 1, -3,
- -1, 1,
1, 1,
- -2, 1,
- 0, 1,
- -5, 1,
- -2, 1,
- 1, 1,
+ 0, -7,
+ -1, -3,
+ -4, -1,
-2, 0,
0, 1,
- -1, 0,
- 5, -3,
- 0, -3,
- 2, 0,
- -3, -2,
- -2, 0,
- 0, -1,
- 2, 2,
- 1, 0,
- -4, -1,
+ 0, 1,
2, 1,
- -1, -3,
- -5, 1,
- 1, 2,
- -2, 0,
- 1, 1,
- 2, 2,
- 1, 1,
- 0, -1,
- -2, -1,
+ -3, 0,
0, 0,
+ 0, -1,
+ 1, -1,
+ -1, 1,
+ 1, -1,
0, 2,
0, 0,
- 1, -1,
0, 3,
- -2, -1,
1, 0,
+ 1, 1,
+ -3, 0,
+ -2, 1,
+ 1, 0,
0, 0,
1, 0,
+ 3, -2,
0, 0,
- 4, -1,
- 1, -3,
- 0, 1,
- 1, 4,
+ 1, 0,
+ -1, 0,
0, -1,
+ 0, 0,
-1, 0,
- -1, -1,
+ -4, -1,
-2, -3,
- -1, 0,
- -1, 0,
0, 1,
- -3, 0,
- -1, 2,
- -4, 0,
- 1, 1,
- 1, 1,
0, 0,
- -2, -1,
+ 0, -1,
+ 1, 0,
+ 0, 1,
0, 0,
- 3, -2,
- -1, 1,
- 1, 1,
- 4, -1,
-1, 0,
- 1, 0,
+ 5, 0,
+ 1, -1,
+ 2, -3,
+ 1, -1,
0, 0,
- 0, -1
+ 0, 0,
+ 0, 0
};
const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB1_10_Stage_info[ NLSF_MSVQ_CB1_10_STAGES ] =
@@ -628,7 +610,6 @@
SKP_Silk_NLSF_CB1_10_Stage_info,
SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min_Q15,
SKP_Silk_NLSF_MSVQ_CB1_10_CDF,
- SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx
+ SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr
};
--- a/src_common/SKP_Silk_tables_NLSF_CB1_16.c
+++ b/src_common/SKP_Silk_tables_NLSF_CB1_16.c
@@ -28,654 +28,630 @@
/**********************************************/
/* This file has been automatically generated */
/* */
-/* ROM usage: 0.29 + 1.80 kB */
+/* ROM usage: 0.14 + 1.80 kB */
/**********************************************/
#include "SKP_Silk_structs.h"
#include "SKP_Silk_tables.h"
-#include "SKP_Silk_tables_NLSF_CB1_16.h"
+#include "SKP_Silk_tables_NLSF_CB.h"
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS + NLSF_MSVQ_CB1_16_STAGES ] =
+const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS ] =
{
+ 192,
+ 162,
+ 146,
+ 130,
+ 116,
+ 103,
+ 92,
+ 83,
+ 75,
+ 69,
+ 63,
+ 57,
+ 51,
+ 46,
+ 40,
+ 36,
+ 32,
+ 28,
+ 25,
+ 23,
+ 21,
+ 19,
+ 17,
+ 15,
+ 13,
+ 12,
+ 10,
+ 8,
+ 6,
+ 4,
+ 2,
0,
- 17152,
- 24057,
- 28733,
- 32040,
- 34820,
- 37262,
- 39228,
- 41194,
- 42997,
- 44723,
- 46376,
- 47959,
- 49543,
- 50994,
- 52446,
- 53777,
- 54897,
- 56016,
- 57088,
- 58071,
- 59013,
- 59876,
- 60667,
- 61305,
- 61942,
- 62455,
- 62969,
- 63482,
- 63995,
- 64508,
- 65022,
- 65535,
+ 118,
+ 91,
+ 64,
+ 44,
+ 32,
+ 21,
+ 10,
0,
- 27679,
- 38351,
- 48138,
- 52625,
- 56739,
- 60199,
- 62867,
- 65535,
+ 128,
+ 104,
+ 81,
+ 60,
+ 41,
+ 26,
+ 12,
0,
- 31319,
- 40235,
- 45312,
- 50174,
- 54632,
- 59091,
- 62383,
- 65535,
+ 134,
+ 103,
+ 82,
+ 60,
+ 42,
+ 25,
+ 12,
0,
- 39134,
- 44026,
- 48322,
- 52261,
- 55873,
- 59185,
- 62498,
- 65535,
+ 103,
+ 83,
+ 64,
+ 47,
+ 32,
+ 19,
+ 8,
0,
- 42248,
- 46688,
- 50941,
- 55013,
- 58437,
- 61078,
- 63499,
- 65535,
+ 97,
+ 77,
+ 59,
+ 43,
+ 29,
+ 17,
+ 8,
0,
- 44150,
- 48053,
- 51334,
- 54477,
- 57486,
- 60245,
- 63005,
- 65535,
+ 96,
+ 75,
+ 58,
+ 41,
+ 29,
+ 18,
+ 9,
0,
- 40440,
- 45076,
- 49515,
- 53089,
- 56512,
- 59651,
- 62657,
- 65535,
+ 110,
+ 82,
+ 55,
+ 41,
+ 28,
+ 18,
+ 9,
0,
- 31605,
- 39507,
- 45094,
- 50444,
- 55567,
- 59351,
- 62973,
- 65535,
+ 197,
+ 143,
+ 101,
+ 73,
+ 50,
+ 33,
+ 16,
0,
- 28639,
- 39681,
- 47834,
- 52682,
- 55965,
- 59248,
- 62391,
- 65535,
- 0,
- 17932,
- 34375,
- 42961,
- 49875,
- 55689,
- 59458,
- 62628,
- 65535
+ 169,
+ 128,
+ 99,
+ 72,
+ 47,
+ 30,
+ 13,
+ 0
};
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[ NLSF_MSVQ_CB1_16_STAGES ] =
+const SKP_uint8 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[ NLSF_MSVQ_CB1_16_STAGES ] =
{
&SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 0 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 33 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 42 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 51 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 60 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 69 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 78 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 87 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 96 ],
- &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 105 ]
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 32 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 40 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 48 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 56 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 64 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 72 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 80 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 88 ],
+ &SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 96 ]
};
-const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx[ NLSF_MSVQ_CB1_16_STAGES ] =
-{
- 5,
- 2,
- 2,
- 2,
- 2,
- 2,
- 2,
- 2,
- 2,
- 3
-};
-
const SKP_uint8 SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q4[ NLSF_MSVQ_CB1_16_VECTORS ] =
{
- 31, 52,
- 61, 69,
- 73, 76,
- 81, 81,
- 83, 84,
- 85, 86,
- 86, 88,
- 88, 90,
- 94, 94,
- 95, 97,
- 98, 100,
- 102, 107,
- 107, 112,
- 112, 112,
- 112, 112,
- 112, 112,
- 20, 42,
- 44, 62,
- 64, 68,
- 74, 74,
- 17, 46,
- 59, 60,
- 62, 62,
- 69, 70,
- 12, 60,
+ 32, 50,
63, 65,
- 67, 69,
- 69, 71,
- 10, 62,
- 63, 64,
- 68, 74,
- 76, 80,
- 9, 65,
- 69, 70,
+ 66, 70,
+ 73, 77,
+ 81, 85,
+ 85, 88,
+ 88, 89,
+ 89, 93,
+ 95, 98,
+ 103, 113,
+ 113, 113,
+ 113, 113,
+ 113, 113,
+ 113, 113,
+ 113, 113,
+ 113, 113,
+ 14, 52,
+ 52, 58,
71, 73,
- 73, 75,
- 11, 61,
- 62, 67,
- 68, 70,
- 71, 72,
+ 73, 74,
+ 16, 55,
+ 56, 58,
+ 60, 65,
+ 67, 71,
17, 49,
- 57, 58,
- 59, 66,
- 67, 75,
- 19, 41,
- 48, 60,
- 69, 69,
- 70, 70,
- 30, 32,
- 47, 52,
- 56, 66,
- 70, 72
+ 57, 57,
+ 61, 63,
+ 69, 70,
+ 12, 60,
+ 60, 62,
+ 66, 70,
+ 72, 80,
+ 11, 59,
+ 61, 64,
+ 67, 72,
+ 77, 79,
+ 11, 58,
+ 63, 63,
+ 71, 73,
+ 77, 78,
+ 13, 51,
+ 52, 67,
+ 69, 76,
+ 77, 77,
+ 34, 36,
+ 42, 51,
+ 55, 63,
+ 63, 64,
+ 25, 42,
+ 50, 52,
+ 54, 62,
+ 63, 69
};
const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min_Q15[ 16 + 1 ] =
{
110,
- 28,
- 122,
- 68,
- 75,
- 71,
- 64,
- 78,
- 83,
- 77,
- 81,
- 76,
- 84,
- 73,
- 69,
- 21,
- 778
+ 27,
+ 146,
+ 128,
+ 34,
+ 27,
+ 32,
+ 23,
+ 31,
+ 25,
+ 32,
+ 25,
+ 23,
+ 24,
+ 29,
+ 4,
+ 653
};
const SKP_int8 SKP_Silk_NLSF_MSVQ_CB1_16_Q8[ 16 * NLSF_MSVQ_CB1_16_VECTORS ] =
{
- -118, -105, -90, -74,
- -58, -44, -29, -13,
- 3, 18, 33, 49,
- 64, 79, 95, 109,
- -118, -110, -95, -81,
- -66, -52, -37, -21,
- -4, 12, 27, 43,
+ -118, -106, -90, -74,
+ -59, -44, -28, -13,
+ 2, 18, 33, 48,
+ 64, 79, 95, 110,
+ -118, -108, -94, -78,
+ -65, -51, -35, -19,
+ -4, 12, 28, 44,
60, 77, 93, 107,
- -120, -114, -94, -78,
- -60, -45, -29, -13,
- 3, 19, 34, 49,
- 65, 80, 95, 110,
- -122, -117, -103, -88,
- -69, -52, -37, -19,
- -2, 15, 31, 47,
- 63, 79, 95, 110,
+ -118, -111, -100, -88,
+ -74, -57, -41, -27,
+ -9, 9, 26, 42,
+ 60, 77, 94, 109,
+ -113, -100, -86, -69,
+ -54, -39, -24, -8,
+ 6, 21, 36, 51,
+ 66, 82, 97, 111,
+ -119, -113, -99, -85,
+ -67, -50, -33, -17,
+ 1, 16, 32, 48,
+ 64, 79, 95, 110,
-119, -111, -95, -81,
- -68, -53, -36, -22,
- -5, 9, 27, 40,
- 56, 70, 85, 96,
- -117, -106, -90, -76,
- -62, -49, -31, -15,
- -2, 10, 26, 39,
- 51, 64, 80, 90,
- -113, -102, -84, -69,
- -54, -42, -27, -15,
- -1, 13, 28, 42,
- 58, 73, 90, 106,
- -115, -104, -90, -76,
- -63, -50, -35, -21,
- -8, 7, 22, 37,
- 53, 70, 88, 107,
- -109, -98, -82, -66,
- -49, -35, -18, -2,
- 14, 30, 45, 58,
- 73, 86, 100, 113,
- -106, -96, -82, -68,
- -53, -40, -25, -10,
- 5, 19, 34, 49,
- 65, 80, 96, 110,
- -120, -113, -99, -86,
- -72, -59, -50, -36,
- -7, 10, 27, 45,
- 61, 78, 94, 109,
- -117, -109, -96, -84,
- -72, -58, -47, -32,
- -19, -2, 23, 40,
- 57, 75, 92, 109,
- -119, -112, -99, -87,
- -78, -66, -42, -20,
- -6, 11, 28, 44,
- 60, 78, 94, 110,
+ -68, -53, -36, -21,
+ -6, 9, 27, 40,
+ 57, 71, 86, 97,
+ -117, -106, -90, -77,
+ -63, -49, -30, -16,
+ -2, 10, 26, 38,
+ 51, 64, 81, 90,
+ -114, -103, -88, -71,
+ -57, -44, -31, -19,
+ -3, 11, 26, 40,
+ 55, 71, 89, 106,
+ -113, -101, -84, -67,
+ -50, -34, -18, -1,
+ 16, 31, 46, 59,
+ 71, 84, 99, 113,
+ -117, -110, -95, -81,
+ -70, -56, -43, -27,
+ -16, -4, 14, 38,
+ 58, 75, 92, 109,
-110, -97, -79, -62,
- -44, -26, -8, 8,
- 23, 36, 49, 60,
- 72, 84, 97, 111,
- -109, -94, -73, -55,
- -37, -22, -8, 2,
- 13, 24, 37, 50,
- 65, 79, 95, 110,
- -114, -101, -83, -67,
- -48, -31, -15, -1,
- 10, 21, 34, 49,
- 65, 80, 96, 111,
- -118, -112, -100, -92,
- -80, -49, -34, -19,
- -7, 8, 26, 43,
- 60, 78, 94, 110,
- -118, -112, -100, -78,
- -61, -51, -38, -26,
- -6, 6, 19, 33,
- 52, 73, 94, 110,
- -117, -110, -94, -79,
- -67, -54, -42, -27,
- -16, -6, 8, 35,
- 57, 75, 92, 109,
- -113, -92, -71, -57,
- -45, -34, -22, -10,
- 4, 17, 32, 46,
- 62, 77, 93, 107,
- -120, -110, -90, -71,
- -54, -37, -17, -1,
- 16, 31, 44, 56,
- 70, 82, 97, 111,
- -110, -101, -88, -80,
- -69, -50, -30, -13,
- 2, 17, 32, 48,
- 64, 80, 97, 111,
- -118, -112, -101, -86,
- -55, -41, -29, -16,
- -4, 10, 30, 43,
- 56, 72, 90, 107,
- -112, -103, -88, -74,
- -61, -49, -36, -24,
- -10, 4, 17, 29,
- 43, 57, 74, 102,
- -118, -107, -84, -69,
- -52, -35, -17, -5,
- 9, 20, 34, 45,
- 59, 69, 84, 93,
- -106, -95, -78, -63,
- -48, -36, -24, -13,
- -1, 9, 21, 32,
- 46, 60, 76, 92,
- -116, -101, -85, -69,
- -54, -37, -21, -6,
- 11, 24, 39, 53,
- 76, 93, 104, 112,
- -114, -104, -87, -74,
- -61, -50, -40, -30,
- -19, -10, 4, 14,
- 36, 69, 89, 109,
- -112, -98, -85, -72,
- -54, -35, -23, -11,
- 3, 20, 38, 56,
- 69, 81, 90, 108,
- -116, -101, -84, -70,
- -55, -40, -25, -8,
- 11, 30, 41, 49,
- 62, 83, 105, 117,
- -115, -98, -82, -61,
- -48, -40, -29, -14,
- 6, 22, 39, 53,
- 68, 82, 96, 110,
- -113, -96, -76, -68,
- -59, -44, -21, -8,
- 3, 15, 33, 49,
+ -44, -26, -8, 9,
+ 24, 38, 50, 62,
+ 74, 87, 100, 112,
+ -112, -96, -75, -58,
+ -43, -29, -18, -6,
+ 7, 19, 34, 46,
+ 61, 76, 92, 107,
+ -110, -94, -75, -57,
+ -38, -22, -7, 2,
+ 15, 28, 40, 51,
65, 80, 95, 110,
- -1, 0, 0, 1,
- 1, 2, 2, 2,
+ -116, -108, -96, -80,
+ -67, -54, -40, -26,
+ -9, 5, 19, 33,
+ 48, 66, 88, 108,
+ -118, -106, -86, -68,
+ -48, -31, -14, -1,
+ 14, 26, 39, 50,
+ 65, 80, 95, 109,
+ -119, -112, -102, -86,
+ -56, -42, -29, -19,
+ -3, 10, 26, 40,
+ 56, 72, 90, 107,
+ -117, -110, -99, -88,
+ -78, -67, -46, -20,
+ -5, 10, 27, 43,
+ 60, 77, 93, 110,
+ -118, -108, -92, -75,
+ -58, -44, -28, -9,
+ 10, 26, 41, 57,
+ 70, 81, 95, 108,
+ -118, -107, -87, -71,
+ -51, -35, -18, -6,
+ 7, 19, 34, 44,
+ 58, 68, 83, 93,
+ -116, -96, -75, -61,
+ -58, -49, -29, 2,
+ 16, 19, 32, 54,
+ 72, 86, 97, 112,
+ -113, -101, -84, -70,
+ -57, -41, -42, -28,
+ -14, -8, 8, 19,
+ 38, 69, 87, 106,
+ -114, -104, -90, -74,
+ -58, -45, -31, -19,
+ -5, 7, 17, 28,
+ 40, 52, 67, 102,
+ -109, -95, -77, -62,
+ -51, -39, -24, -12,
+ 1, 10, 23, 35,
+ 50, 65, 81, 94,
+ -115, -95, -81, -69,
+ -49, -27, -21, -16,
+ -1, 25, 52, 50,
+ 51, 79, 98, 113,
+ -115, -96, -81, -67,
+ -50, -28, -9, -2,
+ 9, 15, 34, 52,
+ 65, 80, 96, 111,
+ -115, -95, -77, -57,
+ -39, -29, -32, -23,
+ 2, 17, 34, 49,
+ 66, 81, 96, 110,
+ -117, -97, -85, -74,
+ -52, -36, -15, 1,
+ 33, 39, 39, 36,
+ 56, 80, 94, 110,
+ -112, -96, -81, -65,
+ -52, -39, -22, -8,
+ 9, 23, 42, 60,
+ 87, 99, 100, 100,
+ -114, -99, -80, -67,
+ -52, -37, -19, -3,
+ 10, 29, 54, 63,
+ 65, 76, 111, 111,
+ -113, -96, -79, -64,
+ -51, -37, -22, -8,
+ 11, 25, 41, 60,
+ 78, 99, 118, 119,
+ -112, -95, -77, -59,
+ -48, -39, -23, -8,
+ 13, 41, 43, 41,
+ 48, 78, 98, 112,
+ -117, -102, -82, -66,
+ -50, -34, -16, 0,
+ 18, 35, 38, 62,
+ 74, 95, 101, 111,
+ -1, -1, 0, 0,
+ 1, 1, 1, 1,
2, 2, 2, 1,
1, 1, 1, 0,
- 0, -1, -3, -6,
- -6, -5, -4, -4,
- -3, -1, 0, 0,
- 0, 0, 1, 1,
- 0, 0, -1, 0,
- -1, -2, -3, -3,
- -4, -5, -5, -4,
- -3, -2, -2, 0,
- 9, 8, 5, 2,
- 1, -1, -1, -2,
- -1, -2, -1, -2,
- -2, -2, -2, -2,
- -5, -8, 3, 2,
- 2, 0, 0, 0,
- 0, 0, 1, 1,
- 1, 1, 0, 0,
- 0, 0, 2, 8,
- 9, 8, 5, 2,
- -1, -2, -2, -2,
- -1, 1, 1, 2,
- -1, 0, -1, 0,
- 0, 2, 4, 5,
- 4, 2, -1, -5,
- -8, -8, -6, -2,
- 0, 0, -2, -2,
- -1, -1, 0, 2,
- 5, 5, 5, 8,
- 9, 7, 6, 3,
- -1, -1, -1, -1,
- -1, -1, -1, -1,
- -1, -1, -1, 0,
- -1, 0, 0, 0,
- 4, 3, 4, 3,
- 3, 3, 3, 3,
- 2, 2, 2, 2,
- 2, 2, 2, 2,
- -1, -3, -6, -7,
- 0, 0, 4, 3,
- 3, 1, 1, 1,
+ 1, 2, 1, -1,
+ -2, -2, -2, -5,
+ -4, -3, -4, -4,
+ -6, -4, -2, 0,
+ 0, 0, 2, 7,
+ 5, 3, 1, -2,
+ -5, -5, -6, -4,
+ 0, 1, 1, 1,
+ 8, 8, 6, 1,
+ -1, -2, -2, 0,
+ 1, 0, 0, 0,
1, 1, 1, 1,
+ 1, 1, -1, -3,
+ -4, -7, -2, 1,
+ -7, -2, 2, 3,
+ 3, 3, 1, 2,
+ 1, 0, -3, -8,
+ -11, -1, 0, 3,
+ 0, -2, -3, -2,
+ -4, -2, -4, -2,
+ 0, 1, 0, -2,
+ -3, -1, 0, 1,
+ 5, 2, 0, 0,
+ -1, -5, -6, -6,
+ -2, -5, -9, -1,
+ 2, -2, -4, -1,
+ -2, -3, 2, 3,
+ 3, -2, -1, 0,
+ 0, 0, 0, 0,
+ -1, -1, -1, -1,
+ -1, -1, 0, 0,
+ 0, 0, 0, 0,
+ -3, -7, 1, 3,
+ 2, 1, 2, 2,
+ 4, 2, 2, 2,
+ 2, 1, 1, 2,
+ 2, 2, 0, -2,
+ -3, -5, -4, -5,
+ -1, 0, -2, -2,
+ -2, -1, 1, 0,
+ 0, -2, -5, -7,
+ 2, 0, 0, 2,
+ -1, 0, 1, 1,
+ 2, 3, 3, 3,
+ 6, 5, 4, 2,
+ 2, 2, -1, -1,
+ -2, -1, -1, 0,
+ -1, -3, -4, -5,
-4, 7, 4, 4,
- 3, 3, 2, 2,
- 1, 1, 1, 1,
- 1, 1, 1, 1,
- -2, -5, -7, 5,
- 3, 3, 3, 3,
- 2, 2, 1, 1,
- 1, 0, 0, 0,
- 2, 1, 4, 3,
- 0, -3, -7, -6,
- -5, -3, -2, -1,
+ 2, 3, 4, 5,
+ 3, 4, 4, 4,
+ 3, 0, 0, 2,
+ 0, -1, 0, 2,
+ 5, 4, 3, 3,
+ 2, -1, -5, -9,
+ -6, -1, -2, -1,
+ 0, -2, -3, -1,
+ -1, 7, 5, 4,
+ 4, 4, 1, 1,
+ 1, 0, -3, -3,
+ -1, 1, 0, 0,
0, 0, 0, 0,
- 0, 0, 0, 1,
- 2, 3, 3, 4,
- 3, 4, 5, 4,
- 1, -3, -6, -7,
- 2, 2, 1, -1,
- -3, -2, -2, -1,
- 2, -1, -6, -9,
- -4, -1, 1, 2,
0, 0, 0, 0,
0, 0, 0, 0,
+ 0, -1, 1, 4,
+ 3, 3, 5, 3,
+ 1, 1, 0, 0,
0, 0, 0, 0,
+ -3, -5, -3, -4,
+ -1, 0, 0, 0,
+ -1, 0, 0, -1,
+ -1, 0, -1, -2,
+ 1, 1, 2, 1,
+ 0, -4, -4, -5,
+ -4, 0, 0, 1,
+ 0, -1, 0, 1,
+ 0, 0, 0, -1,
+ -2, -1, 1, 3,
+ 4, 3, 5, 4,
+ 2, 0, 0, -1,
+ 6, 4, 3, -1,
+ -2, -1, -1, -2,
+ 0, -2, 0, 0,
+ 0, -1, 0, 1,
+ 0, -2, 0, -1,
+ -1, -1, -8, 0,
+ -2, -1, 0, 1,
+ -1, 2, 0, 1,
+ 1, 0, -1, 0,
+ -1, 3, 2, 1,
+ 2, -3, -7, -7,
+ 0, 0, 1, 0,
+ 0, 0, -1, 0,
0, 0, 0, 0,
- 3, 3, 1, -1,
- -5, -7, 1, -1,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 1, 1, 1, -1,
+ -2, 0, 0, 1,
+ -1, 0, 2, 3,
+ 5, 5, 4, 2,
+ 1, 1, 2, 0,
+ 0, 4, 4, 1,
+ -2, -5, -2, -1,
+ 0, -1, 0, 0,
+ 0, -1, -3, 2,
+ 0, -2, -4, -6,
+ 4, 0, 0, 0,
0, 1, 0, 0,
- 0, 0, 1, 1,
- -1, -1, 1, 1,
- 2, 3, 4, 4,
- 3, 0, -3, -5,
- -4, -3, -2, -1,
- 2, 2, 1, 1,
- 0, -2, -2, -2,
- 1, 3, 3, 0,
- -4, -6, -4, -1,
- 0, 0, 1, 1,
- 2, 0, -2, -5,
- -7, -5, -1, 0,
- 2, 2, 3, 2,
- 0, 0, -4, -7,
- 5, 3, -1, -2,
- -1, -1, -1, 0,
+ -1, -1, 7, 0,
+ 0, -1, 0, 1,
+ -1, 0, 0, 0,
+ -2, -2, -1, 0,
+ -1, 0, 0, 0,
+ 0, 0, 3, 2,
+ 0, 1, -1, -3,
+ -5, -3, 0, 1,
+ 0, 1, 1, 2,
+ 2, -1, 1, 0,
+ 2, 4, 5, 0,
+ -1, -2, -5, -3,
+ 1, 1, -2, -5,
+ 1, -1, -5, 1,
+ -1, 1, 0, 0,
+ -2, -2, -2, -2,
+ 0, 0, 0, -1,
+ -1, 0, 0, 0,
0, 0, 0, 0,
- 0, -1, -1, -3,
- -7, 2, 0, 4,
- 3, 3, 2, 1,
- 1, 1, 0, 0,
- 0, 0, 2, 3,
- 1, 0, 0, -1,
- 2, 2, 4, 6,
- 6, 3, 0, -2,
- 1, 1, 0, 0,
0, 0, 0, 0,
+ 1, -1, 2, 2,
+ 0, 0, 0, 1,
+ 0, 0, 0, 1,
+ 4, 3, 0, 0,
+ 0, 0, -2, -2,
+ 4, 4, -1, -3,
0, 0, 0, 0,
+ 0, -1, -1, 0,
+ 0, -2, -4, 5,
+ 1, 0, -1, 1,
0, 0, 0, 0,
- -4, -4, 2, 0,
- 2, 2, 2, 1,
- 2, 1, 1, 1,
- 1, 0, 1, 0,
- -1, -2, -4, 3,
- 1, -2, -1, -4,
- 2, 0, -2, -1,
- -1, -2, -2, -1,
- 0, 0, 1, -2,
- -1, 3, 4, 0,
- -3, -5, -4, -1,
- -1, -1, 0, 0,
- -1, -1, 2, 2,
- 0, -3, -4, 1,
- 4, 4, 3, 1,
- 0, 1, 1, 2,
+ -3, -1, -2, -1,
+ 0, 0, 0, 1,
+ 1, -3, 6, 0,
+ 0, 0, -4, 0,
0, -1, -1, -1,
- -1, -2, -5, 4,
- -1, -5, 2, 1,
- -1, 0, 0, 1,
- 0, -1, 0, 0,
- 1, 0, 0, -4,
- -7, 5, 2, 0,
- 1, 1, 0, 0,
- 1, 1, 0, 1,
- 1, 0, 2, 1,
- 0, 0, -3, -3,
- 6, 5, 0, -3,
+ 1, 1, 1, 2,
+ 1, 0, -3, 0,
+ 0, -4, 2, 2,
+ -1, -1, 5, 2,
+ 0, -1, -1, 1,
+ 1, -2, -2, -2,
+ -6, 5, 2, -2,
+ 1, 0, 0, -1,
+ 0, 1, 2, 1,
+ 2, 0, -1, 2,
+ 6, 4, 2, -2,
+ -2, 0, 1, 1,
+ 0, -1, -1, 0,
0, 0, 0, 0,
- -1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
- 1, 1, 1, 0,
- 1, 3, 1, 1,
- 0, 0, 0, 0,
- -1, -2, -3, -4,
- 1, 0, -2, 0,
- 4, 0, -4, 1,
- 0, 1, 0, -1,
- -1, 0, 0, 0,
- 0, -2, 4, 3,
- 1, -1, -2, 3,
- -2, 0, -2, -1,
0, 1, 1, 0,
- 1, 1, 0, -1,
- -1, 2, -2, -5,
- 4, 1, 1, 0,
- -1, -1, 0, 1,
- 1, 0, -2, 2,
- 2, 0, 5, 3,
- 2, 1, 1, 0,
- -2, 1, 3, 0,
- 0, 0, 1, 0,
- 1, 0, -1, -1,
- -1, -2, 1, 5,
- 3, -2, -4, 2,
- -2, 5, 3, -2,
- 0, -1, -1, -1,
+ 0, 0, 0, -1,
+ 2, 0, 0, -1,
+ -1, 1, 0, -5,
+ 1, 1, 2, 2,
+ 0, 0, -1, 5,
+ 0, 0, -1, 0,
+ 0, 0, 0, 1,
0, 1, 0, 0,
- 2, 1, 0, -1,
- -1, 0, 0, 0,
+ 0, -3, 3, 0,
+ 0, 0, -1, -2,
+ 0, 2, 4, 4,
+ 0, 0, 1, 0,
+ 0, 0, 1, -1,
+ 0, -2, -3, 5,
+ 0, -1, -4, -1,
+ 1, 2, 2, 1,
+ 3, 0, -3, -3,
+ -1, 0, 1, -3,
+ 0, 1, -1, 1,
+ 1, 0, 1, -1,
+ -4, 5, 0, -1,
+ 1, 1, 2, -2,
+ 0, -2, 0, 1,
1, 1, 0, 0,
0, 0, 0, 0,
+ -1, 2, 2, 3,
+ -1, -5, 1, 2,
+ 0, 1, 1, 1,
+ 1, 1, 0, 0,
0, 0, 0, 0,
- 1, -1, -3, -1,
- -3, 0, 0, -1,
- -2, -1, 0, 0,
0, 0, 0, 0,
- 1, 0, 0, 0,
- -1, -2, -2, -2,
- 1, 2, 0, -1,
- -1, 0, 0, -4,
- 0, -1, 4, 2,
- -3, 0, 1, -1,
- 0, -2, -1, 0,
- 0, 0, -1, -1,
- 1, 0, -1, -1,
- 1, -2, 2, 2,
- -2, 3, 0, -2,
- -2, -1, -3, 0,
- 0, 0, -1, -1,
- -1, -2, -3, 2,
- 3, 0, -4, 1,
- 2, 1, 0, 0,
- 1, 1, 0, -2,
- 1, 0, 1, 0,
- -2, -1, 3, 0,
- 1, 3, 2, 0,
+ 0, -1, 1, 1,
+ -3, -2, -1, 1,
+ -1, 0, -1, 0,
0, 0, 0, 0,
- 0, 1, 0, 0,
- 0, 0, 1, -1,
- -3, -4, 5, 3,
- -1, -1, 0, -1,
- -1, 0, -1, -1,
- -1, -1, -1, -1,
+ 1, -1, -2, -3,
+ 0, -1, 0, 0,
+ -1, 1, -3, 0,
+ 0, 0, 0, 1,
+ 1, 0, -3, -1,
+ -1, -1, 2, 0,
+ 2, 2, 2, -2,
0, 0, 0, 0,
- -1, 2, 1, 1,
- 1, 2, 1, 1,
- 1, 1, 0, 1,
- 1, 1, 1, 1,
- 2, 1, 0, 1,
- 2, -1, 0, -2,
- -1, 0, -1, 0,
- 1, 0, 0, 0,
- 1, 0, 1, -1,
- 0, 1, -1, 3,
- 1, 1, 1, 1,
- 0, -1, -1, -1,
- 0, 0, -1, 1,
- 0, -3, 3, 1,
- 0, -2, 2, 1,
- 0, -1, -1, 0,
0, 0, -1, -1,
- -1, 1, 2, -2,
- 2, 3, -1, -1,
- 1, -1, 0, 0,
- 1, -1, -2, 4,
- 0, 0, -2, 1,
+ 0, -1, 0, 0,
+ 0, -4, 4, 0,
+ 0, 0, -2, 0,
+ 0, -1, 0, -1,
0, 0, 0, 0,
- 1, 1, 0, 0,
+ 1, 1, 2, 0,
+ -5, 1, 3, 1,
+ -2, -1, 0, -2,
+ -2, 0, 0, -1,
+ 2, 0, 1, 0,
+ 0, -3, -1, -1,
+ 0, 1, -1, -1,
+ 0, -1, -2, -1,
+ 1, 2, 1, 0,
+ 5, 4, -2, -1,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, -1, -1,
+ -2, -2, -1, -1,
+ -3, 2, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 1,
+ -1, -3, 0, 0,
+ 0, 0, 0, 0,
+ -1, 0, 0, 1,
1, 0, 0, 0,
- 0, 1, 0, 0,
- 0, 0, 1, -1,
- -5, 3, 1, 0,
- -1, -1, -1, -1,
- 0, -1, 0, 0,
- 0, 1, 1, 1,
- 1, 1, 0, 0,
- 2, 1, 0, 1,
- -1, -1, 1, 1,
- 1, 0, -1, 0,
- -1, 0, 0, 0,
- 0, -1, 1, 2,
+ 1, 0, 0, 0,
+ 0, -1, 1, 1,
+ 2, -2, -1, -1,
1, 1, 1, 0,
- -1, 1, 1, 0,
- -1, -1, -1, -1,
- 0, 0, 2, -3,
- 1, -1, 0, 0,
+ 2, 1, 2, 0,
+ 0, 1, 0, -1,
+ -2, 2, 1, 1,
+ 1, 0, 0, 0,
+ 1, 0, -3, 2,
+ 0, 0, -2, 0,
+ 0, 0, 0, 0,
+ 4, 0, 1, 0,
1, 0, -1, 0,
- -1, -1, 0, 0,
- 1, 0, 1, 0,
- 0, 4, -1, -1,
- -1, 1, -1, 0,
- 1, 1, 1, 1,
- 1, 0, -1, 0,
- 1, 1, 0, 0,
- 1, -4, 0, 1,
+ 0, 0, 0, 0,
+ -1, -1, 1, 0,
+ -2, 4, 0, 0,
0, 0, 1, -2,
0, 0, 0, 0,
- -1, 0, -1, 0,
- 1, -1, 2, -4,
- 1, 0, -1, 1,
- -2, 3, 0, 1,
- -1, 0, -1, 0,
- -1, 0, 0, 1,
- 0, 0, -1, 0,
- 1, 1, 1, 0,
- -1, 0, 0, 0,
- -1, 0, 1, 1,
+ 2, 2, 2, 1,
+ 0, 0, 0, 1,
+ -1, -1, 1, -1,
+ 0, 0, -1, 1,
+ 0, -1, 0, 0,
0, 0, 0, 0,
- -1, 0, 1, 1,
- 1, -1, -1, -1,
- 1, -1, 0, -1,
+ 0, 0, 0, 1,
+ -2, 0, 1, -2,
0, 0, 0, 0,
- 0, 0, 0, 0,
+ 0, 0, 0, 1,
+ 1, 2, -1, -1,
0, 0, 1, 1,
- -1, 0, -1, -1,
- 1, -1, 0, -1,
- 1, -2, 0, -1,
+ -1, -1, 0, 1,
+ 0, 0, -1, -1,
+ 0, 0, -1, 1,
+ 3, -2, 0, 0,
0, 0, 0, 0,
- 1, 0, 0, 0,
- 0, 0, 1, 1,
- 1, 2, -3, -1,
0, 0, 0, 0,
+ -1, 0, -1, 0,
+ 0, 3, 1, 1,
+ 1, 1, 0, 1,
+ 0, 1, 0, 0,
0, 0, 0, 0,
- -1, 0, 0, 0,
+ 0, -1, 0, 0,
+ 1, 3, 0, 1,
+ 0, 0, 3, -1,
0, 0, 0, 0,
1, 0, 0, 0,
- -1, 0, -2, 3,
- -1, 0, 1, 0,
- 0, 0, 0, 0,
- 0, 0, 0, 0,
- 0, 0, 0, 0,
- 1, 2, -4, -1,
- -2, -1, 0, 0,
+ 0, 0, -1, -5,
+ 0, -1, 0, 0,
+ 2, -1, 1, 0,
+ 0, 0, 0, -1,
-1, 1, 0, 1,
- 1, 0, 0, 0,
- 0, 0, 0, 0
+ 0, -1, -1, 0
};
const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB1_16_Stage_info[ NLSF_MSVQ_CB1_16_STAGES ] =
@@ -698,7 +674,6 @@
SKP_Silk_NLSF_CB1_16_Stage_info,
SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min_Q15,
SKP_Silk_NLSF_MSVQ_CB1_16_CDF,
- SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr,
- SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx
+ SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr
};
--- a/src_common/SKP_Silk_tables_NLSF_CB1_16.h
+++ /dev/null
@@ -1,51 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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 SKP_SILK_TABLES_NLSF_CB1_16_H
-#define SKP_SILK_TABLES_NLSF_CB1_16_H
-
-#include "SKP_Silk_define.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#define NLSF_MSVQ_CB1_16_STAGES 10
-#define NLSF_MSVQ_CB1_16_VECTORS 104
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS + NLSF_MSVQ_CB1_16_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[ NLSF_MSVQ_CB1_16_STAGES ];
-extern const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx[ NLSF_MSVQ_CB1_16_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
--- a/src_common/SKP_Silk_tables_gain.c
+++ b/src_common/SKP_Silk_tables_gain.c
@@ -32,45 +32,24 @@
{
#endif
-const SKP_uint16 SKP_Silk_gain_CDF[ 2 ][ 65 ] =
+const SKP_uint8 SKP_Silk_gain_iCDF[ 2 ][ N_LEVELS_QGAIN / 8 ] =
{
{
- 0, 18, 45, 94, 181, 320, 519, 777,
- 1093, 1468, 1909, 2417, 2997, 3657, 4404, 5245,
- 6185, 7228, 8384, 9664, 11069, 12596, 14244, 16022,
- 17937, 19979, 22121, 24345, 26646, 29021, 31454, 33927,
- 36438, 38982, 41538, 44068, 46532, 48904, 51160, 53265,
- 55184, 56904, 58422, 59739, 60858, 61793, 62568, 63210,
- 63738, 64165, 64504, 64769, 64976, 65133, 65249, 65330,
- 65386, 65424, 65451, 65471, 65487, 65501, 65513, 65524,
- 65535
+ 255, 251, 219, 143, 53, 10, 1, 0
},
{
- 0, 214, 581, 1261, 2376, 3920, 5742, 7632,
- 9449, 11157, 12780, 14352, 15897, 17427, 18949, 20462,
- 21957, 23430, 24889, 26342, 27780, 29191, 30575, 31952,
- 33345, 34763, 36200, 37642, 39083, 40519, 41930, 43291,
- 44602, 45885, 47154, 48402, 49619, 50805, 51959, 53069,
- 54127, 55140, 56128, 57101, 58056, 58979, 59859, 60692,
- 61468, 62177, 62812, 63368, 63845, 64242, 64563, 64818,
- 65023, 65184, 65306, 65391, 65447, 65482, 65505, 65521,
- 65535
+ 242, 199, 146, 94, 48, 15, 2, 0
}
};
-const SKP_int SKP_Silk_gain_CDF_offset = 32;
-
-
-const SKP_uint16 SKP_Silk_delta_gain_CDF[ 46 ] = {
- 0, 2358, 3856, 7023, 15376, 53058, 59135, 61555,
- 62784, 63498, 63949, 64265, 64478, 64647, 64783, 64894,
- 64986, 65052, 65113, 65169, 65213, 65252, 65284, 65314,
- 65338, 65359, 65377, 65392, 65403, 65415, 65424, 65432,
- 65440, 65448, 65455, 65462, 65470, 65477, 65484, 65491,
- 65499, 65506, 65513, 65521, 65528, 65535
+const SKP_uint8 SKP_Silk_delta_gain_iCDF[ MAX_DELTA_GAIN_QUANT - MIN_DELTA_GAIN_QUANT + 1 ] = {
+ 250, 245, 234, 203, 73, 52, 44, 40,
+ 37, 35, 33, 31, 30, 29, 28, 27,
+ 26, 25, 24, 23, 22, 21, 20, 19,
+ 18, 17, 16, 15, 14, 13, 12, 11,
+ 10, 9, 8, 7, 6, 5, 4, 3,
+ 2, 1, 0
};
-
-const SKP_int SKP_Silk_delta_gain_CDF_offset = 5;
#ifdef __cplusplus
}
--- a/src_common/SKP_Silk_tables_other.c
+++ b/src_common/SKP_Silk_tables_other.c
@@ -28,6 +28,7 @@
#include "SKP_Silk_structs.h"
#include "SKP_Silk_define.h"
#include "SKP_Silk_tables.h"
+
#ifdef __cplusplus
extern "C"
{
@@ -34,26 +35,22 @@
#endif
/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
-const SKP_int32 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ] = {
+const SKP_uint16 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ] = {
0, 8000, 9000, 11000, 13000, 16000, 22000, MAX_TARGET_RATE_BPS
};
-const SKP_int32 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ] = {
+const SKP_uint16 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ] = {
0, 10000, 12000, 14000, 17000, 21000, 28000, MAX_TARGET_RATE_BPS
};
-const SKP_int32 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ] = {
+const SKP_uint16 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ] = {
0, 11000, 14000, 17000, 21000, 26000, 36000, MAX_TARGET_RATE_BPS
};
-const SKP_int32 TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ] = {
+const SKP_uint16 TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ] = {
0, 13000, 16000, 19000, 25000, 32000, 46000, MAX_TARGET_RATE_BPS
};
-const SKP_int32 SNR_table_Q1[ TARGET_RATE_TAB_SZ ] = {
+const SKP_uint16 SNR_table_Q1[ TARGET_RATE_TAB_SZ ] = {
19, 31, 35, 39, 43, 47, 54, 59
};
-const SKP_int32 SNR_table_one_bit_per_sample_Q7[ 4 ] = {
- 1984, 2240, 2408, 2708
-};
-
/* Filter coeficicnts for HP filter: 4. Order filter implementad as two biquad filters */
const SKP_int16 SKP_Silk_SWB_detect_B_HP_Q13[ NB_SOS ][ 3 ] = {
//{400, -550, 400}, {400, 130, 400}, {400, 390, 400}
@@ -64,44 +61,56 @@
//{14880, 6900}, {14400, 7300}, {13700, 7800}
};
-/* Decoder high-pass filter coefficients for 24 kHz sampling, -6 dB @ 44 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER ] = {-16220, 8030}; // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000}; // second order MA coefs, Q13
+/* Decoder high-pass filter coefficients, -6 dB @ 50 Hz, 0.05 dB ripple */
+const SKP_int32 SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER ] = {-530479464, 262127223}; /* second order AR coefs, Q28 */
+const SKP_int32 SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ] = { 265214231, -530428461, 265214231}; /* second order MA coefs, Q28 */
-/* Decoder high-pass filter coefficients for 16 kHz sampling, - 6 dB @ 46 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ] = {-16127, 7940}; // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000}; // second order MA coefs, Q13
+const SKP_int32 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ] = {-527234079, 258986528}; /* second order AR coefs, Q28 */
+const SKP_int32 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ] = { 263603618, -527207236, 263603618}; /* second order MA coefs, Q28 */
-/* Decoder high-pass filter coefficients for 12 kHz sampling, -6 dB @ 44 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ] = {-16043, 7859}; // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000}; // second order MA coefs, Q13
+const SKP_int32 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ] = {-524058488, 255953207}; /* second order AR coefs, Q28 */
+const SKP_int32 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ] = { 261993005, -523986010, 261993005}; /* second order MA coefs, Q28 */
-/* Decoder high-pass filter coefficients for 8 kHz sampling, -6 dB @ 43 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ] = {-15885, 7710}; // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000}; // second order MA coefs, Q13
+const SKP_int32 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ] = {-517610668, 249913410}; /* second order AR coefs, Q28 */
+const SKP_int32 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ] = { 258905997, -517811995, 258905997}; /* second order MA coefs, Q28 */
/* table for LSB coding */
-const SKP_uint16 SKP_Silk_lsb_CDF[ 3 ] = {0, 40000, 65535};
+const SKP_uint8 SKP_Silk_lsb_iCDF[ 2 ] = { 100, 0 };
/* tables for LTPScale */
-const SKP_uint16 SKP_Silk_LTPscale_CDF[ 4 ] = {0, 32000, 48000, 65535};
-const SKP_int SKP_Silk_LTPscale_offset = 2;
+const SKP_uint8 SKP_Silk_LTPscale_iCDF[ 3 ] = { 128, 64, 0 };
/* tables for VAD flag */
-const SKP_uint16 SKP_Silk_vadflag_CDF[ 3 ] = {0, 22000, 65535}; // 66% for speech, 33% for no speech
-const SKP_int SKP_Silk_vadflag_offset = 1;
+const SKP_uint8 SKP_Silk_vadflag_iCDF[ 2 ] = { 171, 0 }; /* 66% for speech, 33% for no speech */
+/* tables for signal type and offset coding */
+const SKP_uint8 SKP_Silk_type_offset_iCDF[4] = {
+ 123, 116, 94, 0
+};
+const SKP_uint8 SKP_Silk_type_offset_joint_iCDF[4][4] = {
+{
+ 151, 33, 9, 0
+},
+{
+ 248, 50, 25, 0
+},
+{
+ 231, 204, 43, 0
+},
+{
+ 249, 215, 126, 0
+}
+};
+
+
/* tables for NLSF interpolation factor */
-const SKP_uint16 SKP_Silk_NLSF_interpolation_factor_CDF[ 6 ] = {0, 3706, 8703, 19226, 30926, 65535};
-const SKP_int SKP_Silk_NLSF_interpolation_factor_offset = 4;
+const SKP_uint8 SKP_Silk_NLSF_interpolation_factor_iCDF[ 5 ] = { 243, 221, 192, 181, 0 };
/* Table for frame termination indication */
-const SKP_uint16 SKP_Silk_FrameTermination_CDF[ 3 ] = {0, 50000, 65535};
-const SKP_int SKP_Silk_FrameTermination_offset = 1;
+const SKP_uint8 SKP_Silk_FrameTermination_iCDF[ 2 ] = { 64, 0 };
/* Table for random seed */
-const SKP_uint16 SKP_Silk_Seed_CDF[ 5 ] = {0, 16384, 32768, 49152, 65535};
-const SKP_int SKP_Silk_Seed_offset = 2;
+const SKP_uint8 SKP_Silk_Seed_iCDF[ 4 ] = { 192, 128, 64, 0 };
/* Quantization offsets */
const SKP_int16 SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ] = {
@@ -110,6 +119,12 @@
/* Table for LTPScale */
const SKP_int16 SKP_Silk_LTPScales_table_Q14[ 3 ] = { 15565, 11469, 8192 };
+
+/* Uniform entropy tables */
+const SKP_uint8 SKP_Silk_uniform4_iCDF[ 4 ] = { 192, 128, 64, 0 };
+const SKP_uint8 SKP_Silk_uniform6_iCDF[ 6 ] = { 213, 171, 128, 85, 43, 0 };
+const SKP_uint8 SKP_Silk_uniform8_iCDF[ 8 ] = { 224, 192, 160, 128, 96, 64, 32, 0 };
+const SKP_uint8 SKP_Silk_uniform12_iCDF[ 12 ] = { 235, 213, 192, 171, 149, 128, 107, 85, 64, 43, 21, 0 };
#if SWITCH_TRANSITION_FILTERING
/* Elliptic/Cauer filters designed with 0.1 dB passband ripple,
--- a/src_common/SKP_Silk_tables_pitch_lag.c
+++ b/src_common/SKP_Silk_tables_pitch_lag.c
@@ -27,173 +27,39 @@
#include "SKP_Silk_tables.h"
-const SKP_uint16 SKP_Silk_pitch_lag_NB_CDF[ 8 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
- 0, 194, 395, 608, 841, 1099, 1391, 1724,
- 2105, 2544, 3047, 3624, 4282, 5027, 5865, 6799,
- 7833, 8965, 10193, 11510, 12910, 14379, 15905, 17473,
- 19065, 20664, 22252, 23814, 25335, 26802, 28206, 29541,
- 30803, 31992, 33110, 34163, 35156, 36098, 36997, 37861,
- 38698, 39515, 40319, 41115, 41906, 42696, 43485, 44273,
- 45061, 45847, 46630, 47406, 48175, 48933, 49679, 50411,
- 51126, 51824, 52502, 53161, 53799, 54416, 55011, 55584,
- 56136, 56666, 57174, 57661, 58126, 58570, 58993, 59394,
- 59775, 60134, 60472, 60790, 61087, 61363, 61620, 61856,
- 62075, 62275, 62458, 62625, 62778, 62918, 63045, 63162,
- 63269, 63368, 63459, 63544, 63623, 63698, 63769, 63836,
- 63901, 63963, 64023, 64081, 64138, 64194, 64248, 64301,
- 64354, 64406, 64457, 64508, 64558, 64608, 64657, 64706,
- 64754, 64803, 64851, 64899, 64946, 64994, 65041, 65088,
- 65135, 65181, 65227, 65272, 65317, 65361, 65405, 65449,
- 65492, 65535
+const SKP_uint8 SKP_Silk_pitch_lag_iCDF[ 2 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) ] = {
+ 253, 250, 244, 233, 212, 182, 150, 131,
+ 120, 110, 98, 85, 72, 60, 49, 40,
+ 32, 25, 19, 15, 13, 11, 9, 8,
+ 7, 6, 5, 4, 3, 2, 1, 0
};
-const SKP_int SKP_Silk_pitch_lag_NB_CDF_offset = 43;
-
-const SKP_uint16 SKP_Silk_pitch_contour_NB_CDF[ 12 ] = {
- 0, 14445, 18587, 25628, 30013, 34859, 40597, 48426,
- 54460, 59033, 62990, 65535
+const SKP_uint8 SKP_Silk_pitch_delta_iCDF[21] = {
+ 210, 208, 206, 203, 199, 193, 183, 168,
+ 142, 104, 74, 52, 37, 27, 20, 14,
+ 10, 6, 4, 2, 0
};
-const SKP_int SKP_Silk_pitch_contour_NB_CDF_offset = 5;
-
-const SKP_uint16 SKP_Silk_pitch_lag_MB_CDF[ 12 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
- 0, 132, 266, 402, 542, 686, 838, 997,
- 1167, 1349, 1546, 1760, 1993, 2248, 2528, 2835,
- 3173, 3544, 3951, 4397, 4882, 5411, 5984, 6604,
- 7270, 7984, 8745, 9552, 10405, 11300, 12235, 13206,
- 14209, 15239, 16289, 17355, 18430, 19507, 20579, 21642,
- 22688, 23712, 24710, 25677, 26610, 27507, 28366, 29188,
- 29971, 30717, 31427, 32104, 32751, 33370, 33964, 34537,
- 35091, 35630, 36157, 36675, 37186, 37692, 38195, 38697,
- 39199, 39701, 40206, 40713, 41222, 41733, 42247, 42761,
- 43277, 43793, 44309, 44824, 45336, 45845, 46351, 46851,
- 47347, 47836, 48319, 48795, 49264, 49724, 50177, 50621,
- 51057, 51484, 51902, 52312, 52714, 53106, 53490, 53866,
- 54233, 54592, 54942, 55284, 55618, 55944, 56261, 56571,
- 56873, 57167, 57453, 57731, 58001, 58263, 58516, 58762,
- 58998, 59226, 59446, 59656, 59857, 60050, 60233, 60408,
- 60574, 60732, 60882, 61024, 61159, 61288, 61410, 61526,
- 61636, 61742, 61843, 61940, 62033, 62123, 62210, 62293,
- 62374, 62452, 62528, 62602, 62674, 62744, 62812, 62879,
- 62945, 63009, 63072, 63135, 63196, 63256, 63316, 63375,
- 63434, 63491, 63549, 63605, 63661, 63717, 63772, 63827,
- 63881, 63935, 63988, 64041, 64094, 64147, 64199, 64252,
- 64304, 64356, 64409, 64461, 64513, 64565, 64617, 64669,
- 64721, 64773, 64824, 64875, 64925, 64975, 65024, 65072,
- 65121, 65168, 65215, 65262, 65308, 65354, 65399, 65445,
- 65490, 65535
+const SKP_uint8 SKP_Silk_pitch_contour_iCDF[34] = {
+ 223, 201, 183, 167, 152, 138, 124, 111,
+ 98, 88, 79, 70, 62, 56, 50, 44,
+ 39, 35, 31, 27, 24, 21, 18, 16,
+ 14, 12, 10, 8, 6, 4, 3, 2,
+ 1, 0
};
-const SKP_int SKP_Silk_pitch_lag_MB_CDF_offset = 64;
-
-const SKP_uint16 SKP_Silk_pitch_lag_WB_CDF[ 16 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
- 0, 106, 213, 321, 429, 539, 651, 766,
- 884, 1005, 1132, 1264, 1403, 1549, 1705, 1870,
- 2047, 2236, 2439, 2658, 2893, 3147, 3420, 3714,
- 4030, 4370, 4736, 5127, 5546, 5993, 6470, 6978,
- 7516, 8086, 8687, 9320, 9985, 10680, 11405, 12158,
- 12938, 13744, 14572, 15420, 16286, 17166, 18057, 18955,
- 19857, 20759, 21657, 22547, 23427, 24293, 25141, 25969,
- 26774, 27555, 28310, 29037, 29736, 30406, 31048, 31662,
- 32248, 32808, 33343, 33855, 34345, 34815, 35268, 35704,
- 36127, 36537, 36938, 37330, 37715, 38095, 38471, 38844,
- 39216, 39588, 39959, 40332, 40707, 41084, 41463, 41844,
- 42229, 42615, 43005, 43397, 43791, 44186, 44583, 44982,
- 45381, 45780, 46179, 46578, 46975, 47371, 47765, 48156,
- 48545, 48930, 49312, 49690, 50064, 50433, 50798, 51158,
- 51513, 51862, 52206, 52544, 52877, 53204, 53526, 53842,
- 54152, 54457, 54756, 55050, 55338, 55621, 55898, 56170,
- 56436, 56697, 56953, 57204, 57449, 57689, 57924, 58154,
- 58378, 58598, 58812, 59022, 59226, 59426, 59620, 59810,
- 59994, 60173, 60348, 60517, 60681, 60840, 60993, 61141,
- 61284, 61421, 61553, 61679, 61800, 61916, 62026, 62131,
- 62231, 62326, 62417, 62503, 62585, 62663, 62737, 62807,
- 62874, 62938, 62999, 63057, 63113, 63166, 63217, 63266,
- 63314, 63359, 63404, 63446, 63488, 63528, 63567, 63605,
- 63642, 63678, 63713, 63748, 63781, 63815, 63847, 63879,
- 63911, 63942, 63973, 64003, 64033, 64063, 64092, 64121,
- 64150, 64179, 64207, 64235, 64263, 64291, 64319, 64347,
- 64374, 64401, 64428, 64455, 64481, 64508, 64534, 64560,
- 64585, 64610, 64635, 64660, 64685, 64710, 64734, 64758,
- 64782, 64807, 64831, 64855, 64878, 64902, 64926, 64950,
- 64974, 64998, 65022, 65045, 65069, 65093, 65116, 65139,
- 65163, 65186, 65209, 65231, 65254, 65276, 65299, 65321,
- 65343, 65364, 65386, 65408, 65429, 65450, 65471, 65493,
- 65514, 65535
+const SKP_uint8 SKP_Silk_pitch_contour_NB_iCDF[11] = {
+ 188, 176, 155, 138, 119, 97, 67, 43,
+ 26, 10, 0
};
-const SKP_int SKP_Silk_pitch_lag_WB_CDF_offset = 86;
-
-
-const SKP_uint16 SKP_Silk_pitch_lag_SWB_CDF[ 24 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
- 0, 253, 505, 757, 1008, 1258, 1507, 1755,
- 2003, 2249, 2494, 2738, 2982, 3225, 3469, 3713,
- 3957, 4202, 4449, 4698, 4949, 5203, 5460, 5720,
- 5983, 6251, 6522, 6798, 7077, 7361, 7650, 7942,
- 8238, 8539, 8843, 9150, 9461, 9775, 10092, 10411,
- 10733, 11057, 11383, 11710, 12039, 12370, 12701, 13034,
- 13368, 13703, 14040, 14377, 14716, 15056, 15398, 15742,
- 16087, 16435, 16785, 17137, 17492, 17850, 18212, 18577,
- 18946, 19318, 19695, 20075, 20460, 20849, 21243, 21640,
- 22041, 22447, 22856, 23269, 23684, 24103, 24524, 24947,
- 25372, 25798, 26225, 26652, 27079, 27504, 27929, 28352,
- 28773, 29191, 29606, 30018, 30427, 30831, 31231, 31627,
- 32018, 32404, 32786, 33163, 33535, 33902, 34264, 34621,
- 34973, 35320, 35663, 36000, 36333, 36662, 36985, 37304,
- 37619, 37929, 38234, 38535, 38831, 39122, 39409, 39692,
- 39970, 40244, 40513, 40778, 41039, 41295, 41548, 41796,
- 42041, 42282, 42520, 42754, 42985, 43213, 43438, 43660,
- 43880, 44097, 44312, 44525, 44736, 44945, 45153, 45359,
- 45565, 45769, 45972, 46175, 46377, 46578, 46780, 46981,
- 47182, 47383, 47585, 47787, 47989, 48192, 48395, 48599,
- 48804, 49009, 49215, 49422, 49630, 49839, 50049, 50259,
- 50470, 50682, 50894, 51107, 51320, 51533, 51747, 51961,
- 52175, 52388, 52601, 52813, 53025, 53236, 53446, 53655,
- 53863, 54069, 54274, 54477, 54679, 54879, 55078, 55274,
- 55469, 55662, 55853, 56042, 56230, 56415, 56598, 56779,
- 56959, 57136, 57311, 57484, 57654, 57823, 57989, 58152,
- 58314, 58473, 58629, 58783, 58935, 59084, 59230, 59373,
- 59514, 59652, 59787, 59919, 60048, 60174, 60297, 60417,
- 60533, 60647, 60757, 60865, 60969, 61070, 61167, 61262,
- 61353, 61442, 61527, 61609, 61689, 61765, 61839, 61910,
- 61979, 62045, 62109, 62170, 62230, 62287, 62343, 62396,
- 62448, 62498, 62547, 62594, 62640, 62685, 62728, 62770,
- 62811, 62852, 62891, 62929, 62967, 63004, 63040, 63075,
- 63110, 63145, 63178, 63212, 63244, 63277, 63308, 63340,
- 63371, 63402, 63432, 63462, 63491, 63521, 63550, 63578,
- 63607, 63635, 63663, 63690, 63718, 63744, 63771, 63798,
- 63824, 63850, 63875, 63900, 63925, 63950, 63975, 63999,
- 64023, 64046, 64069, 64092, 64115, 64138, 64160, 64182,
- 64204, 64225, 64247, 64268, 64289, 64310, 64330, 64351,
- 64371, 64391, 64411, 64431, 64450, 64470, 64489, 64508,
- 64527, 64545, 64564, 64582, 64600, 64617, 64635, 64652,
- 64669, 64686, 64702, 64719, 64735, 64750, 64766, 64782,
- 64797, 64812, 64827, 64842, 64857, 64872, 64886, 64901,
- 64915, 64930, 64944, 64959, 64974, 64988, 65003, 65018,
- 65033, 65048, 65063, 65078, 65094, 65109, 65125, 65141,
- 65157, 65172, 65188, 65204, 65220, 65236, 65252, 65268,
- 65283, 65299, 65314, 65330, 65345, 65360, 65375, 65390,
- 65405, 65419, 65434, 65449, 65463, 65477, 65492, 65506,
- 65521, 65535
+const SKP_uint8 SKP_Silk_pitch_contour_10_ms_iCDF[12] = {
+ 165, 119, 80, 61, 47, 35, 27, 20,
+ 14, 9, 4, 0
};
-const SKP_int SKP_Silk_pitch_lag_SWB_CDF_offset = 128;
-
-
-const SKP_uint16 SKP_Silk_pitch_contour_CDF[ 35 ] = {
- 0, 372, 843, 1315, 1836, 2644, 3576, 4719,
- 6088, 7621, 9396, 11509, 14245, 17618, 20777, 24294,
- 27992, 33116, 40100, 44329, 47558, 50679, 53130, 55557,
- 57510, 59022, 60285, 61345, 62316, 63140, 63762, 64321,
- 64729, 65099, 65535
+const SKP_uint8 SKP_Silk_pitch_contour_10_ms_NB_iCDF[3] = {
+ 113, 63, 0
};
-const SKP_int SKP_Silk_pitch_contour_CDF_offset = 17;
-const SKP_uint16 SKP_Silk_pitch_delta_CDF[23] = {
- 0, 343, 740, 1249, 1889, 2733, 3861, 5396,
- 7552, 10890, 16053, 24152, 30220, 34680, 37973, 40405,
- 42243, 43708, 44823, 45773, 46462, 47055, 65535
-};
-
-const SKP_int SKP_Silk_pitch_delta_CDF_offset = 11;
--- a/src_common/SKP_Silk_tables_sign.c
+++ b/src_common/SKP_Silk_tables_sign.c
@@ -27,8 +27,9 @@
#include "SKP_Silk_tables.h"
-const SKP_uint16 SKP_Silk_sign_CDF[ 36 ] =
+const SKP_uint8 SKP_Silk_sign_iCDF[ 36 ] =
{
+ /*
37840, 36944, 36251, 35304,
34715, 35503, 34529, 34296,
34016, 47659, 44945, 42503,
@@ -38,5 +39,15 @@
38252, 37795, 36637, 59159,
55630, 51806, 48073, 45036,
48416, 43857, 42678, 41146,
+ */
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
+ 128, 128, 128, 128,
};
--- a/src_common/SKP_Silk_tables_type_offset.c
+++ /dev/null
@@ -1,52 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-#include "SKP_Silk_tables.h"
-
-const SKP_uint16 SKP_Silk_type_offset_CDF[ 5 ] = {
- 0, 37522, 41030, 44212, 65535
-};
-
-const SKP_int SKP_Silk_type_offset_CDF_offset = 2;
-
-
-const SKP_uint16 SKP_Silk_type_offset_joint_CDF[ 4 ][ 5 ] =
-{
-{
- 0, 57686, 61230, 62358, 65535
-},
-{
- 0, 18346, 40067, 43659, 65535
-},
-{
- 0, 22694, 24279, 35507, 65535
-},
-{
- 0, 6067, 7215, 13010, 65535
-}
-};
-
--- a/src_common/SKP_Silk_tuning_parameters.h
+++ b/src_common/SKP_Silk_tuning_parameters.h
@@ -44,9 +44,9 @@
#define FIND_PITCH_BANDWITH_EXPANSION 0.99f
/* Threshold used by pitch estimator for early escape */
-#define FIND_PITCH_CORRELATION_THRESHOLD_HC_MODE 0.7f
-#define FIND_PITCH_CORRELATION_THRESHOLD_MC_MODE 0.75f
-#define FIND_PITCH_CORRELATION_THRESHOLD_LC_MODE 0.8f
+#define FIND_PITCH_CORRELATION_THRESHOLD_HI_COMPL_MODE 0.7f
+#define FIND_PITCH_CORRELATION_THRESHOLD_MID_COMPL_MODE 0.75f
+#define FIND_PITCH_CORRELATION_THRESHOLD_LOW_COMPL_MODE 0.8f
/*********************/
/* Linear prediction */
@@ -147,19 +147,10 @@
#define HIGH_RATE_INPUT_TILT 0.1f
/* parameter for reducing noise at the very low frequencies */
-#define LOW_FREQ_SHAPING 3.0f
+#define LOW_FREQ_SHAPING 4.0f
/* less reduction of noise at the very low frequencies for signals with low SNR at low frequencies */
#define LOW_QUALITY_LOW_FREQ_SHAPING_DECR 0.5f
-
-/* noise floor to put a lower limit on the quantization step size */
-#define NOISE_FLOOR_dB 4.0f
-
-/* noise floor relative to active speech gain level */
-#define RELATIVE_MIN_GAIN_dB -50.0f
-
-/* subframe smoothing coefficient for determining active speech gain level (lower -> more smoothing) */
-#define GAIN_SMOOTHING_COEF 1e-3f
/* subframe smoothing coefficient for HarmBoost, HarmShapeGain, Tilt (lower -> more smoothing) */
#define SUBFR_SMTH_COEF 0.4f
--- a/src_common/Silk_CommonFLP.vcproj
+++ /dev/null
@@ -1,364 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="Silk_Common"
- ProjectGUID="{0E29E502-AB22-4147-93A1-AC91528ED758}"
- RootNamespace="Silk"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_SigProc_FIX;../src_SigProc_FLP;../src_FLP"
- PreprocessorDefinitions="WIN32;_DEBUG;_LIB;HAVE_CONFIG_H"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_CommonFLP_Win32_debug.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- FavorSizeOrSpeed="0"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_SigProc_FIX;../src_SigProc_FLP;../src_FLP"
- PreprocessorDefinitions="WIN32;NDEBUG;_LIB;HAVE_CONFIG_H"
- GeneratePreprocessedFile="0"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- OutputFile="SKP_Silk_CommonFLP_Win32_mt.lib"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- CommandLine=""
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\SKP_Silk_CNG.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_code_signs.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_create_init_destroy.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_dec_SDK_API.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decode_core.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decode_frame.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decode_indices.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decode_parameters.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decode_pulses.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_decoder_set_fs.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_detect_SWB_input.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_enc_API.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_encode_parameters.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_encode_pulses.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_gain_quant.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_interpolate.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LBRR_reset.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_LP_variable_cutoff.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF2A_stable.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NLSF_MSVQ_decode.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NSQ.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_NSQ_del_dec.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_PLC.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_pulses_to_bytes.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_range_coder.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_shell_coder.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_gain.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_LTP.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB0_10.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB0_16.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB1_10.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB1_16.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_other.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_pitch_lag.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_pulses_per_block.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_sign.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_type_offset.c"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_VAD.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\SKP_Silk_define.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_main.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_perceptual_parameters.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_PLC.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_structs.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB0_10.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB0_16.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB1_10.h"
- >
- </File>
- <File
- RelativePath=".\SKP_Silk_tables_NLSF_CB1_16.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- /dev/null
+++ b/src_common/src_common.vcxproj
@@ -1,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>src_common</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface/;../src_SigProc_FIX;../src_SigProc_FLP;../src_FIX;../src_FLP;../../celt/libcelt</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>../interface/;../src_SigProc_FIX;../src_SigProc_FLP;../src_FIX;../src_FLP;../../celt/libcelt</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_define.h" />
+ <ClInclude Include="SKP_Silk_main.h" />
+ <ClInclude Include="SKP_Silk_PLC.h" />
+ <ClInclude Include="SKP_Silk_setup_complexity.h" />
+ <ClInclude Include="SKP_Silk_structs.h" />
+ <ClInclude Include="SKP_Silk_tables.h" />
+ <ClInclude Include="SKP_Silk_tables_NLSF_CB.h" />
+ <ClInclude Include="SKP_Silk_tuning_parameters.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_CNG.c" />
+ <ClCompile Include="SKP_Silk_code_signs.c" />
+ <ClCompile Include="SKP_Silk_control_audio_bandwidth.c" />
+ <ClCompile Include="SKP_Silk_create_init_destroy.c" />
+ <ClCompile Include="SKP_Silk_decoder_set_fs.c" />
+ <ClCompile Include="SKP_Silk_decode_core.c" />
+ <ClCompile Include="SKP_Silk_decode_frame.c" />
+ <ClCompile Include="SKP_Silk_decode_indices.c" />
+ <ClCompile Include="SKP_Silk_decode_parameters.c" />
+ <ClCompile Include="SKP_Silk_decode_pulses.c" />
+ <ClCompile Include="SKP_Silk_dec_API.c" />
+ <ClCompile Include="SKP_Silk_detect_SWB_input.c" />
+ <ClCompile Include="SKP_Silk_encode_parameters.c" />
+ <ClCompile Include="SKP_Silk_encode_pulses.c" />
+ <ClCompile Include="SKP_Silk_enc_API.c" />
+ <ClCompile Include="SKP_Silk_gain_quant.c" />
+ <ClCompile Include="SKP_Silk_interpolate.c" />
+ <ClCompile Include="SKP_Silk_LBRR_reset.c" />
+ <ClCompile Include="SKP_Silk_LP_variable_cutoff.c" />
+ <ClCompile Include="SKP_Silk_NLSF2A_stable.c" />
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_decode.c" />
+ <ClCompile Include="SKP_Silk_NSQ.c" />
+ <ClCompile Include="SKP_Silk_NSQ_del_dec.c" />
+ <ClCompile Include="SKP_Silk_PLC.c" />
+ <ClCompile Include="SKP_Silk_pulses_to_bytes.c" />
+ <ClCompile Include="SKP_Silk_quant_LTP_gains.c" />
+ <ClCompile Include="SKP_Silk_range_coder.c" />
+ <ClCompile Include="SKP_Silk_shell_coder.c" />
+ <ClCompile Include="SKP_Silk_tables_gain.c" />
+ <ClCompile Include="SKP_Silk_tables_LTP.c" />
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB0_10.c" />
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB0_16.c" />
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB1_10.c" />
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB1_16.c" />
+ <ClCompile Include="SKP_Silk_tables_other.c" />
+ <ClCompile Include="SKP_Silk_tables_pitch_lag.c" />
+ <ClCompile Include="SKP_Silk_tables_pulses_per_block.c" />
+ <ClCompile Include="SKP_Silk_tables_sign.c" />
+ <ClCompile Include="SKP_Silk_VAD.c" />
+ <ClCompile Include="SKP_Silk_VQ_WMat_EC.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/src_common/src_common.vcxproj.filters
@@ -1,0 +1,168 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="SKP_Silk_define.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_main.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_PLC.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_structs.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_tables.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_tuning_parameters.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_setup_complexity.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="SKP_Silk_tables_NLSF_CB.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="SKP_Silk_CNG.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_code_signs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_create_init_destroy.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decode_core.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decode_frame.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decode_indices.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decode_parameters.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decode_pulses.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_decoder_set_fs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_detect_SWB_input.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_enc_API.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_encode_parameters.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_encode_pulses.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_gain_quant.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_interpolate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LBRR_reset.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_LP_variable_cutoff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF_MSVQ_decode.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NLSF2A_stable.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NSQ.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_NSQ_del_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_PLC.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_pulses_to_bytes.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_range_coder.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_shell_coder.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_gain.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_LTP.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB0_10.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB0_16.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB1_10.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_NLSF_CB1_16.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_other.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_pitch_lag.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_pulses_per_block.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_tables_sign.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_VAD.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_dec_API.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_control_audio_bandwidth.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_quant_LTP_gains.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SKP_Silk_VQ_WMat_EC.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- a/test/Dec_SDK.vcproj
+++ /dev/null
@@ -1,221 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="Dec"
- ProjectGUID="{82685D7F-0589-42BD-877C-31A952D53A8E}"
- RootNamespace="Test"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)_Dec"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;COMPILE_SDK"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(OutDir)\Decoder_debug.exe"
- LinkIncremental="2"
- AdditionalLibraryDirectories=""
- IgnoreAllDefaultLibraries="false"
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)_Dec"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;COMPILE_SDK"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/fixed:no"
- OutputFile="$(OutDir)\Decoder.exe"
- LinkIncremental="1"
- AdditionalLibraryDirectories=""
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="false"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\Decoder.c"
- >
- </File>
- <File
- RelativePath=".\SKP_debug.c"
- >
- </File>
- </Filter>
- <Filter
- Name="interface"
- >
- <File
- RelativePath="..\interface\SKP_Silk_control.h"
- >
- </File>
- <File
- RelativePath="..\interface\SKP_Silk_errors.h"
- >
- </File>
- <File
- RelativePath="..\interface\SKP_Silk_SDK_API.h"
- >
- </File>
- <File
- RelativePath="..\interface\SKP_Silk_typedef.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- a/test/Enc_SDK.vcproj
+++ /dev/null
@@ -1,221 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="Enc"
- ProjectGUID="{6D97A8EF-5724-4D85-8BF4-C583714BBA78}"
- RootNamespace="Enc"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)\Enc"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="$(OutDir)\Encoder_debug.exe"
- LinkIncremental="2"
- AdditionalLibraryDirectories=""
- IgnoreAllDefaultLibraries="false"
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)_Enc"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="../../../celt-0.8.0/libcelt;../interface;../src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/fixed:no"
- OutputFile="$(OutDir)\Encoder.exe"
- LinkIncremental="1"
- AdditionalLibraryDirectories=""
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="false"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\Encoder.c"
- >
- </File>
- <File
- RelativePath=".\SKP_debug.c"
- >
- </File>
- </Filter>
- <Filter
- Name="interface"
- >
- <File
- RelativePath="..\interface\SKP_Silk_control.h"
- >
- </File>
- <File
- RelativePath="..\interface\SKP_Silk_errors.h"
- >
- </File>
- <File
- RelativePath="..\interface\SKP_Silk_SDK_API.h"
- >
- </File>
- <File
- RelativePath="..\interface\SKP_Silk_typedef.h"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- a/test/SKP_debug.c
+++ /dev/null
@@ -1,169 +1,0 @@
-/***********************************************************************
-Copyright (c) 2006-2010, 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.
-***********************************************************************/
-
-/* *
- * SKP_debug.c *
- * *
- * This contains code to help debugging *
- * *
- * Copyright 2009 (c), Skype Limited *
- * Date: 090629 *
- * */
-
-#include "SKP_debug.h"
-#include "../src_SigProc_FIX/SKP_Silk_SigProc_FIX.h"
-
-#ifdef _WIN32
-
-#if (defined(_WIN32) || defined(_WINCE))
-#include <windows.h> /* timer */
-#else // Linux or Mac
-#include <sys/time.h>
-#endif
-
-unsigned long GetHighResolutionTime() /* O: time in usec*/
-{
- /* Returns a time counter in microsec */
- /* the resolution is platform dependent */
- /* but is typically 1.62 us resolution */
- LARGE_INTEGER lpPerformanceCount;
- LARGE_INTEGER lpFrequency;
- QueryPerformanceCounter(&lpPerformanceCount);
- QueryPerformanceFrequency(&lpFrequency);
- return (unsigned long)((1000000*(lpPerformanceCount.QuadPart)) / lpFrequency.QuadPart);
-}
-#else // Linux or Mac
-unsigned long GetHighResolutionTime() /* O: time in usec*/
-{
- struct timeval tv;
- gettimeofday(&tv, 0);
- return((tv.tv_sec*1000000)+(tv.tv_usec));
-}
-#endif
-
-#if SKP_TIC_TOC
-
-int SKP_Timer_nTimers = 0;
-int SKP_Timer_depth_ctr = 0;
-char SKP_Timer_tags[SKP_NUM_TIMERS_MAX][SKP_NUM_TIMERS_MAX_TAG_LEN];
-#ifdef WIN32
-LARGE_INTEGER SKP_Timer_start[SKP_NUM_TIMERS_MAX];
-#else
-unsigned long SKP_Timer_start[SKP_NUM_TIMERS_MAX];
-#endif
-unsigned int SKP_Timer_cnt[SKP_NUM_TIMERS_MAX];
-SKP_int64 SKP_Timer_min[SKP_NUM_TIMERS_MAX];
-SKP_int64 SKP_Timer_sum[SKP_NUM_TIMERS_MAX];
-SKP_int64 SKP_Timer_max[SKP_NUM_TIMERS_MAX];
-SKP_int64 SKP_Timer_depth[SKP_NUM_TIMERS_MAX];
-
-#ifdef WIN32
-void SKP_TimerSave(char *file_name)
-{
- if( SKP_Timer_nTimers > 0 )
- {
- int k;
- FILE *fp;
- LARGE_INTEGER lpFrequency;
- LARGE_INTEGER lpPerformanceCount1, lpPerformanceCount2;
- int del = 0x7FFFFFFF;
- double avg, sum_avg;
- /* estimate overhead of calling performance counters */
- for( k = 0; k < 1000; k++ ) {
- QueryPerformanceCounter(&lpPerformanceCount1);
- QueryPerformanceCounter(&lpPerformanceCount2);
- lpPerformanceCount2.QuadPart -= lpPerformanceCount1.QuadPart;
- if( (int)lpPerformanceCount2.LowPart < del )
- del = lpPerformanceCount2.LowPart;
- }
- QueryPerformanceFrequency(&lpFrequency);
- /* print results to file */
- sum_avg = 0.0f;
- for( k = 0; k < SKP_Timer_nTimers; k++ ) {
- if (SKP_Timer_depth[k] == 0) {
- sum_avg += (1e6 * SKP_Timer_sum[k] / SKP_Timer_cnt[k] - del) / lpFrequency.QuadPart * SKP_Timer_cnt[k];
- }
- }
- fp = fopen(file_name, "w");
- fprintf(fp, " min avg %% max count\n");
- for( k = 0; k < SKP_Timer_nTimers; k++ ) {
- if (SKP_Timer_depth[k] == 0) {
- fprintf(fp, "%-28s", SKP_Timer_tags[k]);
- } else if (SKP_Timer_depth[k] == 1) {
- fprintf(fp, " %-27s", SKP_Timer_tags[k]);
- } else if (SKP_Timer_depth[k] == 2) {
- fprintf(fp, " %-26s", SKP_Timer_tags[k]);
- } else if (SKP_Timer_depth[k] == 3) {
- fprintf(fp, " %-25s", SKP_Timer_tags[k]);
- } else {
- fprintf(fp, " %-24s", SKP_Timer_tags[k]);
- }
- avg = (1e6 * SKP_Timer_sum[k] / SKP_Timer_cnt[k] - del) / lpFrequency.QuadPart;
- fprintf(fp, "%8.2f", (1e6 * (SKP_max_64(SKP_Timer_min[k] - del, 0))) / lpFrequency.QuadPart);
- fprintf(fp, "%12.2f %6.2f", avg, 100.0 * avg / sum_avg * SKP_Timer_cnt[k]);
- fprintf(fp, "%12.2f", (1e6 * (SKP_max_64(SKP_Timer_max[k] - del, 0))) / lpFrequency.QuadPart);
- fprintf(fp, "%10d\n", SKP_Timer_cnt[k]);
- }
- fprintf(fp, " microseconds\n");
- fclose(fp);
- }
-}
-#else
-void SKP_TimerSave(char *file_name)
-{
- if( SKP_Timer_nTimers > 0 )
- {
- int k;
- FILE *fp;
- /* print results to file */
- fp = fopen(file_name, "w");
- fprintf(fp, " min avg max count\n");
- for( k = 0; k < SKP_Timer_nTimers; k++ )
- {
- if (SKP_Timer_depth[k] == 0) {
- fprintf(fp, "%-28s", SKP_Timer_tags[k]);
- } else if (SKP_Timer_depth[k] == 1) {
- fprintf(fp, " %-27s", SKP_Timer_tags[k]);
- } else if (SKP_Timer_depth[k] == 2) {
- fprintf(fp, " %-26s", SKP_Timer_tags[k]);
- } else if (SKP_Timer_depth[k] == 3) {
- fprintf(fp, " %-25s", SKP_Timer_tags[k]);
- } else {
- fprintf(fp, " %-24s", SKP_Timer_tags[k]);
- }
- fprintf(fp, "%d ", SKP_Timer_min[k]);
- fprintf(fp, "%f ", (double)SKP_Timer_sum[k] / (double)SKP_Timer_cnt[k]);
- fprintf(fp, "%d ", SKP_Timer_max[k]);
- fprintf(fp, "%10d\n", SKP_Timer_cnt[k]);
- }
- fprintf(fp, " microseconds\n");
- fclose(fp);
- }
-}
-#endif
-
-#endif /* SKP_TIC_TOC */
--- a/test/SignalCompare.vcproj
+++ /dev/null
@@ -1,197 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="SignalCompare"
- ProjectGUID="{7FE8F544-9175-40C3-A187-7F15CE9A75D8}"
- RootNamespace="Test"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)_SigCmp"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\interface;..\src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- OutputFile="SignalCompare_debug.exe"
- LinkIncremental="2"
- AdditionalLibraryDirectories=""
- IgnoreAllDefaultLibraries="false"
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="true"
- ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)"
- IntermediateDirectory="$(ConfigurationName)_SigCmp"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\interface;..\src_SigProc_FIX"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="0"
- FloatingPointModel="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/fixed:no"
- OutputFile="$(SolutionDir)SignalCompare.exe"
- LinkIncremental="1"
- AdditionalLibraryDirectories=""
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="false"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\signalCompare.c"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- /dev/null
+++ b/test_silk_dec/test_silk_dec.vcxproj
@@ -1,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8CA2DBCB-F28E-4022-ACD7-E2C23A15827F}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>test_silk_dec</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\interface;..\..\celt\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>libcelt.lib;src_common.lib;src_FIX.lib;src_FLP.lib;src_SigProc_FIX.lib;src_SigProc_FLP.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\interface;..\..\celt\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <AdditionalLibraryDirectories>$(SolutionDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>libcelt.lib;src_common.lib;src_FIX.lib;src_FLP.lib;src_SigProc_FIX.lib;src_SigProc_FLP.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\test\Decoder.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\interface\SKP_Silk_SDK_API.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/test_silk_dec/test_silk_dec.vcxproj.filters
@@ -1,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\test\Decoder.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\interface\SKP_Silk_SDK_API.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/test_silk_enc/test_silk_enc.vcxproj
@@ -1,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{38945839-ADA4-40CA-9C43-092FD47960A0}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>test_silk_enc</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\interface;..\..\celt\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalLibraryDirectories>$(SolutionDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>libcelt.lib;src_common.lib;src_FIX.lib;src_FLP.lib;src_SigProc_FIX.lib;src_SigProc_FLP.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\interface;..\..\celt\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <AdditionalLibraryDirectories>$(SolutionDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalDependencies>libcelt.lib;src_common.lib;src_FIX.lib;src_FLP.lib;src_SigProc_FIX.lib;src_SigProc_FLP.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\test\Encoder.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+++ b/test_silk_enc/test_silk_enc.vcxproj.filters
@@ -1,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\test\Encoder.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file