diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-04-18 20:39:41 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-06-29 22:21:31 +0300 |
commit | 17afc752d4e6307987cfd01c88303d269d877265 (patch) | |
tree | b4b1515c15e113ddee5236ff85520c080fdd2ee2 | |
parent | e7fcc9b53bf34efaccae79614f1d9d9fb411ab00 (diff) |
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 ); |