diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-06-08 02:15:21 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-19 16:11:50 -0400 |
commit | 2ca6df03df62154c9b76220a94108b56e4dfb34b (patch) | |
tree | 4180bd5fc5f34e77f91f2faacb674e09d0caf37b | |
parent | f705e9b5bd0b4c60b9934962aef7af3c0865272f (diff) | |
download | opus-2ca6df03df62154c9b76220a94108b56e4dfb34b.tar.gz |
Minor TF cleanup (tf_sum was useless), plus comments
-rw-r--r-- | celt/celt.c | 13 | ||||
-rw-r--r-- | celt/celt_encoder.c | 9 |
2 files changed, 11 insertions, 11 deletions
diff --git a/celt/celt.c b/celt/celt.c index b121c51a..2425ba3e 100644 --- a/celt/celt.c +++ b/celt/celt.c @@ -244,11 +244,16 @@ void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N, } #endif /* OVERRIDE_comb_filter */ +/* TF change table. Positive values mean better frequency resolution (longer + effective window), whereas negative values mean better time resolution + (shorter effective window). The second index is computed as: + 4*isTransient + 2*tf_select + per_band_flag */ const signed char tf_select_table[4][8] = { - {0, -1, 0, -1, 0,-1, 0,-1}, - {0, -1, 0, -2, 1, 0, 1,-1}, - {0, -2, 0, -3, 2, 0, 1,-1}, - {0, -2, 0, -3, 3, 0, 1,-1}, + /*isTransient=0 isTransient=1 */ + {0, -1, 0, -1, 0,-1, 0,-1}, /* 2.5 ms */ + {0, -1, 0, -2, 1, 0, 1,-1}, /* 5 ms */ + {0, -2, 0, -3, 2, 0, 1,-1}, /* 10 ms */ + {0, -2, 0, -3, 3, 0, 1,-1}, /* 20 ms */ }; diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c index 9486bd16..edb08e80 100644 --- a/celt/celt_encoder.c +++ b/celt/celt_encoder.c @@ -550,7 +550,7 @@ static opus_val32 l1_metric(const celt_norm *tmp, int N, int LM, opus_val16 bias static int tf_analysis(const CELTMode *m, int len, int isTransient, int *tf_res, int lambda, celt_norm *X, int N0, int LM, - int *tf_sum, opus_val16 tf_estimate, int tf_chan) + opus_val16 tf_estimate, int tf_chan) { int i; VARDECL(int, metric); @@ -575,7 +575,6 @@ static int tf_analysis(const CELTMode *m, int len, int isTransient, ALLOC(path0, len, int); ALLOC(path1, len, int); - *tf_sum = 0; for (i=0;i<len;i++) { int k, N; @@ -630,7 +629,6 @@ static int tf_analysis(const CELTMode *m, int len, int isTransient, metric[i] = 2*best_level; else metric[i] = -2*best_level; - *tf_sum += (isTransient ? LM : 0) - metric[i]/2; /* For bands that can't be split to -1, set the metric to the half-way point to avoid biasing the decision */ if (narrow && (metric[i]==0 || metric[i]==-2*LM)) @@ -1334,7 +1332,6 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, int end; int effEnd; int codedBands; - int tf_sum; int alloc_trim; int pitch_index=COMBFILTER_MINPERIOD; opus_val16 gain1 = 0; @@ -1769,18 +1766,16 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, else lambda = 3; lambda*=2; - tf_select = tf_analysis(mode, effEnd, isTransient, tf_res, lambda, X, N, LM, &tf_sum, tf_estimate, tf_chan); + tf_select = tf_analysis(mode, effEnd, isTransient, tf_res, lambda, X, N, LM, tf_estimate, tf_chan); for (i=effEnd;i<end;i++) tf_res[i] = tf_res[effEnd-1]; } else if (hybrid && effectiveBytes<15) { /* For low bitrate hybrid, we force temporal resolution to 5 ms rather than 2.5 ms. */ - tf_sum = 0; for (i=0;i<end;i++) tf_res[i] = 0; tf_select=isTransient; } else { - tf_sum = 0; for (i=0;i<end;i++) tf_res[i] = isTransient; tf_select=0; |