diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-04-18 13:39:41 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-17 15:05:54 -0400 |
commit | 89857b5c0c9246f2d24a8bf17031b001c3722c4e (patch) | |
tree | 2d6583318909c4f5bd2ad624468cfe614d7f8c4f | |
parent | 691f6f931b69e85d2a31838313bdd7d04ba460c0 (diff) | |
download | opus-89857b5c0c9246f2d24a8bf17031b001c3722c4e.tar.gz |
Using more fine-grained complexity settings for SILK
Only complexity 0-1 now uses the plain non-delayed-decision NSQ since its
quality is pretty bad. Previously 0-3 were using that plain NSQ.
-rw-r--r-- | silk/control_codec.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/silk/control_codec.c b/silk/control_codec.c index 071e066f..7ebea25d 100644 --- a/silk/control_codec.c +++ b/silk/control_codec.c @@ -319,7 +319,7 @@ static opus_int silk_setup_complexity( /* Set encoding complexity */ silk_assert( Complexity >= 0 && Complexity <= 10 ); - if( Complexity < 2 ) { + if( Complexity < 1 ) { psEncC->pitchEstimationComplexity = SILK_PE_MIN_COMPLEX; psEncC->pitchEstimationThreshold_Q16 = SILK_FIX_CONST( 0.8, 16 ); psEncC->pitchEstimationLPCOrder = 6; @@ -330,7 +330,7 @@ static opus_int silk_setup_complexity( psEncC->LTPQuantLowComplexity = 1; psEncC->NLSF_MSVQ_Survivors = 2; psEncC->warping_Q16 = 0; - } else if( Complexity < 4 ) { + } else if( Complexity < 2 ) { psEncC->pitchEstimationComplexity = SILK_PE_MID_COMPLEX; psEncC->pitchEstimationThreshold_Q16 = SILK_FIX_CONST( 0.76, 16 ); psEncC->pitchEstimationLPCOrder = 8; @@ -341,6 +341,28 @@ static opus_int silk_setup_complexity( psEncC->LTPQuantLowComplexity = 0; psEncC->NLSF_MSVQ_Survivors = 3; psEncC->warping_Q16 = 0; + } else if( Complexity < 3 ) { + psEncC->pitchEstimationComplexity = SILK_PE_MIN_COMPLEX; + psEncC->pitchEstimationThreshold_Q16 = SILK_FIX_CONST( 0.8, 16 ); + psEncC->pitchEstimationLPCOrder = 6; + psEncC->shapingLPCOrder = 8; + psEncC->la_shape = 3 * psEncC->fs_kHz; + psEncC->nStatesDelayedDecision = 2; + psEncC->useInterpolatedNLSFs = 0; + psEncC->LTPQuantLowComplexity = 1; + psEncC->NLSF_MSVQ_Survivors = 2; + psEncC->warping_Q16 = 0; + } else if( Complexity < 4 ) { + psEncC->pitchEstimationComplexity = SILK_PE_MID_COMPLEX; + psEncC->pitchEstimationThreshold_Q16 = SILK_FIX_CONST( 0.76, 16 ); + psEncC->pitchEstimationLPCOrder = 8; + psEncC->shapingLPCOrder = 10; + psEncC->la_shape = 5 * psEncC->fs_kHz; + psEncC->nStatesDelayedDecision = 2; + psEncC->useInterpolatedNLSFs = 0; + psEncC->LTPQuantLowComplexity = 0; + psEncC->NLSF_MSVQ_Survivors = 4; + psEncC->warping_Q16 = 0; } else if( Complexity < 6 ) { psEncC->pitchEstimationComplexity = SILK_PE_MID_COMPLEX; psEncC->pitchEstimationThreshold_Q16 = SILK_FIX_CONST( 0.74, 16 ); |