#include <math.h>
#include "nb_celp.h"
#include "lpc.h"
#include "lsp.h"
#include "ltp.h"
#include "quant_lsp.h"
#include "cb_search.h"
#include "filters.h"
#include "stack_alloc.h"
#include "vq.h"
#include <speex/speex_bits.h>
#include "vbr.h"
#include "misc.h"
#include <speex/speex_callbacks.h>
Defines | |
#define | M_PI 3.14159265358979323846 |
#define | NULL 0 |
#define | SUBMODE(x) st->submodes[st->submodeID]->x |
#define | NB_ENC_STACK (8000*sizeof(spx_sig_t)) |
#define | NB_DEC_STACK (4000*sizeof(spx_sig_t)) |
#define | LSP_MARGIN .002 |
#define | LSP_DELTA1 .2 |
#define | LSP_DELTA2 .05 |
#define | EXTRA_BUFFER 0 |
#define | sqr(x) ((x)*(x)) |
#define | median3(a, b, c) ((a) < (b) ? ((b) < (c) ? (b) : ((a) < (c) ? (c) : (a))) : ((c) < (b) ? (b) : ((c) < (a) ? (c) : (a)))) |
Functions | |
void * | nb_encoder_init (const SpeexMode *m) |
void | nb_encoder_destroy (void *state) |
int | nb_encode (void *state, void *vin, SpeexBits *bits) |
void * | nb_decoder_init (const SpeexMode *m) |
void | nb_decoder_destroy (void *state) |
int | nb_decode (void *state, SpeexBits *bits, void *vout) |
int | nb_encoder_ctl (void *state, int request, void *ptr) |
int | nb_decoder_ctl (void *state, int request, void *ptr) |
Variables | |
const float | exc_gain_quant_scal3_bound [7] = {0.112338, 0.236980, 0.369316, 0.492054, 0.637471, 0.828874, 1.132784} |
const float | exc_gain_quant_scal3 [8] = {0.061130, 0.163546, 0.310413, 0.428220, 0.555887, 0.719055, 0.938694, 1.326874} |
const float | exc_gain_quant_scal1_bound [1] = {0.87798} |
const float | exc_gain_quant_scal1 [2] = {0.70469, 1.05127} |
const spx_word16_t | attenuation [10] = {1., 0.961, 0.852, 0.698, 0.527, 0.368, 0.237, 0.141, 0.077, 0.039} |
#define EXTRA_BUFFER 0 |
Referenced by nb_encode(), and nb_encoder_init().
#define LSP_DELTA1 .2 |
Referenced by nb_encode(), and sb_encode().
#define LSP_DELTA2 .05 |
Referenced by nb_encode(), and sb_encode().
#define LSP_MARGIN .002 |
Referenced by nb_decode(), nb_encode(), sb_decode(), and sb_encode().
#define M_PI 3.14159265358979323846 |
#define median3 | ( | a, | |||
b, | |||||
c | ) | ((a) < (b) ? ((b) < (c) ? (b) : ((a) < (c) ? (c) : (a))) : ((c) < (b) ? (b) : ((c) < (a) ? (c) : (a)))) |
#define NB_DEC_STACK (4000*sizeof(spx_sig_t)) |
Referenced by nb_decoder_init().
#define NB_ENC_STACK (8000*sizeof(spx_sig_t)) |
Referenced by nb_encoder_init().
#define NULL 0 |
#define sqr | ( | x | ) | ((x)*(x)) |
Referenced by nb_encoder_init(), sb_encoder_init(), and vbr_analysis().
#define SUBMODE | ( | x | ) | st->submodes[st->submodeID]->x |
Referenced by nb_decode(), nb_decoder_ctl(), nb_encode(), nb_encoder_ctl(), sb_decode(), sb_decoder_ctl(), sb_encode(), and sb_encoder_ctl().
int nb_decode | ( | void * | state, | |
SpeexBits * | bits, | |||
void * | out | |||
) |
Decodes one frame
References ABS, ADD16, ADD32, ALLOC, bw_lpc(), comb_filter(), DecState::comb_mem, compute_rms(), DecState::count_lost, DIV32, DIV32_16, DecState::dtx_enabled, DecState::encode_submode, DecState::exc, exc_gain_quant_scal1, exc_gain_quant_scal3, DecState::excBuf, EXTEND32, EXTRACT16, filter_mem2(), DecState::first, DecState::frame, DecState::frameSize, gain_3tap_to_1tap, GAIN_SCALING, GAMMA_SCALING, iir_mem2(), DecState::innov, DecState::interp_qlpc, DecState::interp_qlsp, DecState::last_ol_gain, DecState::last_pitch, DecState::last_pitch_gain, DecState::lpc_enh_enabled, LPC_SCALING, DecState::lpcSize, lsp_enforce_margin(), lsp_interpolate(), LSP_MARGIN, LSP_SHIFT, lsp_to_lpc(), DecState::max_pitch, DecState::mem_sp, DecState::min_pitch, MULT16_32_Q14, MULT16_32_Q15, DecState::nbSubframes, NULL, DecState::old_qlsp, DecState::pi_gain, DecState::pitch_gain_buf, DecState::pitch_gain_buf_idx, PSHR16, PSHR32, DecState::qlsp, SB_SUBMODE_BITS, SHL32, SHR16, SHR32, SIG_SCALING, SIG_SHIFT, signal_mul(), speex_bits_advance(), speex_bits_remaining(), speex_bits_unpack_unsigned(), DecState::speex_callbacks, speex_error(), speex_inband_handler(), speex_mode_query(), speex_move(), speex_rand_vec(), speex_warning(), speex_wb_mode, DecState::stack, SUB32, DecState::subframeSize, SUBMODE, DecState::submodeID, DecState::submodes, DecState::user_callback, VARDECL, VERY_SMALL, DecState::voc_m1, DecState::voc_m2, DecState::voc_mean, and DecState::voc_offset.
int nb_decoder_ctl | ( | void * | state, | |
int | request, | |||
void * | ptr | |||
) |
ioctl-like function for controlling a narrowband decoder
References DecState::dtx_enabled, DecState::encode_submode, DecState::exc, DecState::excBuf, DecState::frameSize, DecState::inBuf, DecState::innov, DecState::lpc_enh_enabled, DecState::lpcSize, DecState::max_pitch, DecState::mem_sp, NB_SUBMODE_BITS, DecState::nbSubframes, DecState::pi_gain, DecState::sampling_rate, DecState::speex_callbacks, speex_warning_int(), SUBMODE, DecState::submodeID, DecState::submodes, and DecState::user_callback.
void nb_decoder_destroy | ( | void * | state | ) |
De-allocates decoder state resources
References DecState::comb_mem, DecState::excBuf, DecState::inBuf, DecState::innov, DecState::interp_qlpc, DecState::interp_qlsp, DecState::mem_sp, DecState::old_qlsp, DecState::pi_gain, DecState::qlsp, speex_free(), speex_free_scratch(), and DecState::stack.
void* nb_decoder_init | ( | const SpeexMode * | m | ) |
Initializes decoder state
References comb_filter_mem_init(), DecState::comb_mem, DecState::count_lost, SpeexNBMode::defaultSubmode, DecState::dtx_enabled, DecState::encode_submode, DecState::exc, DecState::excBuf, DecState::first, DecState::frame, SpeexNBMode::frameSize, DecState::frameSize, DecState::inBuf, DecState::innov, DecState::interp_qlpc, DecState::interp_qlsp, DecState::last_ol_gain, DecState::last_pitch, DecState::lpc_enh_enabled, SpeexNBMode::lpcSize, DecState::lpcSize, DecState::max_pitch, DecState::mem_sp, DecState::min_pitch, DecState::mode, NB_DEC_STACK, DecState::nbSubframes, NULL, DecState::old_qlsp, DecState::pi_gain, DecState::pitch_gain_buf, DecState::pitch_gain_buf_idx, SpeexNBMode::pitchEnd, SpeexNBMode::pitchStart, DecState::qlsp, DecState::sampling_rate, DecState::seed, speex_alloc(), speex_alloc_scratch(), DecState::speex_callbacks, speex_default_user_handler(), DecState::stack, DecState::subframeSize, SpeexNBMode::subframeSize, DecState::submodeID, SpeexNBMode::submodes, DecState::submodes, DecState::user_callback, DecState::voc_m1, DecState::voc_m2, DecState::voc_mean, and DecState::voc_offset.
int nb_encode | ( | void * | state, | |
void * | in, | |||
SpeexBits * | bits | |||
) |
Encodes one frame
References _spx_autocorr(), _spx_lpc(), ABS, ADD16, ALLOC, EncState::autocorr, bw_lpc(), EncState::bw_lpc1, EncState::bw_lpc2, EncState::complexity, compute_rms(), EncState::exc, EncState::excBuf, EXTEND32, EXTRA_BUFFER, EXTRACT16, filter_mem2(), fir_mem2(), EncState::first, EncState::frame, EncState::frameSize, GAIN_SCALING_1, EncState::gamma1, EncState::gamma2, EncState::inBuf, EncState::interp_lpc, EncState::interp_lsp, EncState::lagWindow, EncState::lpc, EncState::lpc_floor, lpc_to_lsp(), EncState::lpcSize, EncState::lsp, LSP_DELTA1, LSP_DELTA2, lsp_enforce_margin(), lsp_interpolate(), LSP_MARGIN, lsp_to_lpc(), EncState::max_pitch, EncState::mem_exc, EncState::mem_sw_whole, EncState::min_pitch, MULT16_16, MULT16_16_Q14, MULT16_16_Q15, EncState::nbSubframes, EncState::old_lsp, open_loop_nbest_pitch(), SHL32, SHR, SHR32, SIG_SHIFT, speex_move(), EncState::stack, SUBMODE, EncState::submodeID, EncState::submodes, EncState::sw, EncState::swBuf, EncState::vad_enabled, VARDECL, EncState::vbr_enabled, EncState::window, and EncState::windowSize.
int nb_encoder_ctl | ( | void * | state, | |
int | request, | |||
void * | ptr | |||
) |
ioctl-like function for controlling a narrowband encoder
References EncState::abr_count, EncState::abr_drift, EncState::abr_drift2, EncState::abr_enabled, EncState::bounded_pitch, EncState::complexity, EncState::dtx_enabled, EncState::encode_submode, EncState::exc, EncState::excBuf, EncState::first, EncState::frameSize, EncState::inBuf, EncState::innov, EncState::lpcSize, EncState::lsp, M_PI, EncState::max_pitch, EncState::mem_exc, EncState::mem_sp, EncState::mem_sw, EncState::mem_sw_whole, EncState::mode, NB_SUBMODE_BITS, EncState::nbSubframes, EncState::pi_gain, EncState::plc_tuning, EncState::relative_quality, EncState::sampling_rate, speex_encoder_ctl(), speex_warning_int(), SUBMODE, EncState::submodeID, EncState::submodes, EncState::submodeSelect, EncState::swBuf, EncState::vad_enabled, EncState::vbr_enabled, EncState::vbr_quality, and EncState::windowSize.
void nb_encoder_destroy | ( | void * | state | ) |
De-allocates encoder state resources
References EncState::autocorr, EncState::bw_lpc1, EncState::bw_lpc2, EncState::excBuf, EncState::inBuf, EncState::innov, EncState::interp_lpc, EncState::interp_lsp, EncState::interp_qlpc, EncState::interp_qlsp, EncState::lagWindow, EncState::lpc, EncState::lsp, EncState::mem_exc, EncState::mem_sp, EncState::mem_sw, EncState::mem_sw_whole, EncState::old_lsp, EncState::old_qlsp, EncState::pi_gain, EncState::pitch, EncState::qlsp, speex_free(), speex_free_scratch(), EncState::stack, EncState::swBuf, EncState::vbr, vbr_destroy(), and EncState::window.
void* nb_encoder_init | ( | const SpeexMode * | m | ) |
Initializes encoder state
References EncState::abr_drift, EncState::abr_enabled, EncState::autocorr, EncState::bounded_pitch, EncState::bw_lpc1, EncState::bw_lpc2, EncState::complexity, SpeexNBMode::defaultSubmode, EncState::dtx_count, EncState::dtx_enabled, EncState::encode_submode, EncState::exc, EncState::excBuf, EXTRA_BUFFER, EncState::first, EncState::frame, SpeexNBMode::frameSize, EncState::frameSize, SpeexNBMode::gamma1, EncState::gamma1, SpeexNBMode::gamma2, EncState::gamma2, EncState::inBuf, EncState::innov, EncState::interp_lpc, EncState::interp_lsp, EncState::interp_qlpc, EncState::interp_qlsp, SpeexNBMode::lag_factor, EncState::lag_factor, EncState::lagWindow, EncState::lpc, SpeexNBMode::lpc_floor, EncState::lpc_floor, SpeexNBMode::lpcSize, EncState::lpcSize, EncState::lsp, LSP_SCALING, M_PI, EncState::max_pitch, EncState::mem_exc, EncState::mem_sp, EncState::mem_sw, EncState::mem_sw_whole, EncState::min_pitch, EncState::mode, NB_ENC_STACK, EncState::nbSubframes, NULL, EncState::old_lsp, EncState::old_qlsp, EncState::pi_gain, EncState::pitch, SpeexNBMode::pitchEnd, SpeexNBMode::pitchStart, EncState::plc_tuning, EncState::qlsp, EncState::sampling_rate, SIG_SCALING, speex_alloc(), speex_alloc_scratch(), sqr, EncState::stack, EncState::subframeSize, SpeexNBMode::subframeSize, EncState::submodeID, SpeexNBMode::submodes, EncState::submodes, EncState::submodeSelect, EncState::sw, EncState::swBuf, EncState::vad_enabled, EncState::vbr, EncState::vbr_enabled, vbr_init(), EncState::vbr_quality, EncState::window, and EncState::windowSize.
const spx_word16_t attenuation[10] = {1., 0.961, 0.852, 0.698, 0.527, 0.368, 0.237, 0.141, 0.077, 0.039} |
const float exc_gain_quant_scal1[2] = {0.70469, 1.05127} |
Referenced by nb_decode().
const float exc_gain_quant_scal1_bound[1] = {0.87798} |
const float exc_gain_quant_scal3[8] = {0.061130, 0.163546, 0.310413, 0.428220, 0.555887, 0.719055, 0.938694, 1.326874} |
Referenced by nb_decode().
const float exc_gain_quant_scal3_bound[7] = {0.112338, 0.236980, 0.369316, 0.492054, 0.637471, 0.828874, 1.132784} |