FFmpeg
|
Opus SILK decoder. More...
Go to the source code of this file.
Data Structures | |
struct | SilkFrame |
struct | SilkContext |
Macros | |
#define | SILK_MAX_LAG (288 + LTP_ORDER / 2) |
Maximum residual history according to 4.2.7.6.1. More... | |
#define | LTP_ORDER 5 |
Order of the LTP filter. More... | |
Functions | |
static void | silk_stabilize_lsf (int16_t nlsf[16], int order, const uint16_t min_delta[17]) |
static int | silk_is_lpc_stable (const int16_t lpc[16], int order) |
static void | silk_lsp2poly (const int32_t lsp[16], int32_t pol[16], int half_order) |
static void | silk_lsf2lpc (const int16_t nlsf[16], float lpcf[16], int order) |
static void | silk_decode_lpc (SilkContext *s, SilkFrame *frame, OpusRangeCoder *rc, float lpc_leadin[16], float lpc[16], int *lpc_order, int *has_lpc_leadin, int voiced) |
static void | silk_count_children (OpusRangeCoder *rc, int model, int32_t total, int32_t child[2]) |
static void | silk_decode_excitation (SilkContext *s, OpusRangeCoder *rc, float *excitationf, int qoffset_high, int active, int voiced) |
static void | silk_decode_frame (SilkContext *s, OpusRangeCoder *rc, int frame_num, int channel, int coded_channels, int active, int active1) |
static void | silk_unmix_ms (SilkContext *s, float *l, float *r) |
static void | silk_flush_frame (SilkFrame *frame) |
int | ff_silk_decode_superframe (SilkContext *s, OpusRangeCoder *rc, float *output[2], enum OpusBandwidth bandwidth, int coded_channels, int duration_ms) |
Decode the LP layer of one Opus frame (which may correspond to several SILK frames). More... | |
void | ff_silk_free (SilkContext **ps) |
void | ff_silk_flush (SilkContext *s) |
int | ff_silk_init (AVCodecContext *avctx, SilkContext **ps, int output_channels) |
Variables | |
static const uint16_t | silk_model_stereo_s1 [] |
static const uint16_t | silk_model_stereo_s2 [] = {256, 85, 171, 256} |
static const uint16_t | silk_model_stereo_s3 [] = {256, 51, 102, 154, 205, 256} |
static const uint16_t | silk_model_mid_only [] = {256, 192, 256} |
static const uint16_t | silk_model_frame_type_inactive [] = {256, 26, 256} |
static const uint16_t | silk_model_frame_type_active [] = {256, 24, 98, 246, 256} |
static const uint16_t | silk_model_gain_highbits [3][9] |
static const uint16_t | silk_model_gain_lowbits [] = {256, 32, 64, 96, 128, 160, 192, 224, 256} |
static const uint16_t | silk_model_gain_delta [] |
static const uint16_t | silk_model_lsf_s1 [2][2][33] |
static const uint16_t | silk_model_lsf_s2 [32][10] |
static const uint16_t | silk_model_lsf_s2_ext [] = { 256, 156, 216, 240, 249, 253, 255, 256 } |
static const uint16_t | silk_model_lsf_interpolation_offset [] = { 256, 13, 35, 64, 75, 256 } |
static const uint16_t | silk_model_pitch_highbits [] |
static const uint16_t | silk_model_pitch_lowbits_nb [] = { 256, 64, 128, 192, 256 } |
static const uint16_t | silk_model_pitch_lowbits_mb [] = { 256, 43, 85, 128, 171, 213, 256 } |
static const uint16_t | silk_model_pitch_lowbits_wb [] = { 256, 32, 64, 96, 128, 160, 192, 224, 256 } |
static const uint16_t | silk_model_pitch_delta [] |
static const uint16_t | silk_model_pitch_contour_nb10ms [] = { 256, 143, 193, 256 } |
static const uint16_t | silk_model_pitch_contour_nb20ms [] |
static const uint16_t | silk_model_pitch_contour_mbwb10ms [] |
static const uint16_t | silk_model_pitch_contour_mbwb20ms [] |
static const uint16_t | silk_model_ltp_filter [] = { 256, 77, 157, 256 } |
static const uint16_t | silk_model_ltp_filter0_sel [] |
static const uint16_t | silk_model_ltp_filter1_sel [] |
static const uint16_t | silk_model_ltp_filter2_sel [] |
static const uint16_t | silk_model_ltp_scale_index [] = { 256, 128, 192, 256 } |
static const uint16_t | silk_model_lcg_seed [] = { 256, 64, 128, 192, 256 } |
static const uint16_t | silk_model_exc_rate [2][10] |
static const uint16_t | silk_model_pulse_count [11][19] |
static const uint16_t | silk_model_pulse_location [4][168] |
static const uint16_t | silk_model_excitation_lsb [] = {256, 136, 256} |
static const uint16_t | silk_model_excitation_sign [3][2][7][3] |
static const int16_t | silk_stereo_weights [] |
static const uint8_t | silk_lsf_s2_model_sel_nbmb [32][10] |
static const uint8_t | silk_lsf_s2_model_sel_wb [32][16] |
static const uint8_t | silk_lsf_pred_weights_nbmb [2][9] |
static const uint8_t | silk_lsf_pred_weights_wb [2][15] |
static const uint8_t | silk_lsf_weight_sel_nbmb [32][9] |
static const uint8_t | silk_lsf_weight_sel_wb [32][15] |
static const uint8_t | silk_lsf_codebook_nbmb [32][10] |
static const uint8_t | silk_lsf_codebook_wb [32][16] |
static const uint16_t | silk_lsf_min_spacing_nbmb [] |
static const uint16_t | silk_lsf_min_spacing_wb [] |
static const uint8_t | silk_lsf_ordering_nbmb [] |
static const uint8_t | silk_lsf_ordering_wb [] |
static const int16_t | silk_cosine [] |
static const uint16_t | silk_pitch_scale [] = { 4, 6, 8} |
static const uint16_t | silk_pitch_min_lag [] = { 16, 24, 32} |
static const uint16_t | silk_pitch_max_lag [] = {144, 216, 288} |
static const int8_t | silk_pitch_offset_nb10ms [3][2] |
static const int8_t | silk_pitch_offset_nb20ms [11][4] |
static const int8_t | silk_pitch_offset_mbwb10ms [12][2] |
static const int8_t | silk_pitch_offset_mbwb20ms [34][4] |
static const int8_t | silk_ltp_filter0_taps [8][5] |
static const int8_t | silk_ltp_filter1_taps [16][5] |
static const int8_t | silk_ltp_filter2_taps [32][5] |
static const uint16_t | silk_ltp_scale_factor [] = {15565, 12288, 8192} |
static const uint8_t | silk_shell_blocks [3][2] |
static const uint8_t | silk_quant_offset [2][2] |
static const int | silk_stereo_interp_len [3] |
Opus SILK decoder.
Definition in file opus_silk.c.
#define SILK_MAX_LAG (288 + LTP_ORDER / 2) |
Maximum residual history according to 4.2.7.6.1.
Definition at line 1218 of file opus_silk.c.
Referenced by silk_decode_frame().
#define LTP_ORDER 5 |
Order of the LTP filter.
Definition at line 1221 of file opus_silk.c.
Referenced by silk_decode_frame().
|
inlinestatic |
Definition at line 788 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
inlinestatic |
Definition at line 867 of file opus_silk.c.
Referenced by silk_lsf2lpc().
Definition at line 918 of file opus_silk.c.
Referenced by silk_lsf2lpc().
|
static |
Definition at line 934 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
inlinestatic |
Definition at line 1019 of file opus_silk.c.
Referenced by silk_decode_frame().
|
inlinestatic |
Definition at line 1116 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
inlinestatic |
Definition at line 1129 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 1223 of file opus_silk.c.
Referenced by ff_silk_decode_superframe().
|
static |
Definition at line 1450 of file opus_silk.c.
Referenced by ff_silk_decode_superframe().
Definition at line 1480 of file opus_silk.c.
Referenced by ff_silk_decode_superframe(), and ff_silk_flush().
int ff_silk_decode_superframe | ( | SilkContext * | s, |
OpusRangeCoder * | rc, | ||
float * | output[2], | ||
enum OpusBandwidth | bandwidth, | ||
int | coded_channels, | ||
int | duration_ms | ||
) |
Decode the LP layer of one Opus frame (which may correspond to several SILK frames).
Definition at line 1498 of file opus_silk.c.
Referenced by opus_decode_frame().
void ff_silk_free | ( | SilkContext ** | ps | ) |
Definition at line 1562 of file opus_silk.c.
Referenced by opus_decode_close().
void ff_silk_flush | ( | SilkContext * | s | ) |
Definition at line 1567 of file opus_silk.c.
Referenced by ff_silk_init(), opus_decode_flush(), and opus_decode_frame().
int ff_silk_init | ( | AVCodecContext * | avctx, |
SilkContext ** | ps, | ||
int | output_channels | ||
) |
Definition at line 1575 of file opus_silk.c.
Referenced by opus_decode_init().
|
static |
Definition at line 64 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 69 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 71 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 73 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 75 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 77 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 79 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 85 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 87 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 92 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 112 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 134 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 136 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 138 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 143 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 145 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 147 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 149 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 154 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 156 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 160 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 164 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 170 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 172 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 176 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 180 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 185 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 187 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 189 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 194 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 219 of file opus_silk.c.
Referenced by silk_count_children().
|
static |
Definition at line 291 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 293 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 351 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 356 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 391 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 426 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 431 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 436 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 471 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 506 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 541 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 576 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 580 of file opus_silk.c.
Referenced by silk_decode_lpc().
|
static |
Definition at line 584 of file opus_silk.c.
Referenced by silk_lsf2lpc().
|
static |
Definition at line 588 of file opus_silk.c.
Referenced by silk_lsf2lpc().
|
static |
Definition at line 592 of file opus_silk.c.
Referenced by silk_lsf2lpc().
|
static |
Definition at line 628 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 630 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 632 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 634 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 640 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 654 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 669 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 706 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 717 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 736 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 771 of file opus_silk.c.
Referenced by silk_decode_frame().
|
static |
Definition at line 773 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 779 of file opus_silk.c.
Referenced by silk_decode_excitation().
|
static |
Definition at line 784 of file opus_silk.c.
Referenced by silk_unmix_ms().