Quality: Forces trim to 5 on hybrid mode
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Sat, 5 Dec 2015 19:31:54 +0000 (14:31 -0500)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Fri, 15 Jul 2016 21:51:45 +0000 (17:51 -0400)
This saves bits and makes more sense since alloc_trim_analysis()
mostly looks at the lower bands that are coded with SILK

celt/celt_encoder.c

index 1c6128a..b2ad8fc 100644 (file)
@@ -1886,12 +1886,15 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm,
    alloc_trim = 5;
    if (tell+(6<<BITRES) <= total_bits - total_boost)
    {
-      if (st->lfe)
+      if (start > 0 || st->lfe)
+      {
+         st->stereo_saving = 0;
          alloc_trim = 5;
-      else
+      } else {
          alloc_trim = alloc_trim_analysis(mode, X, bandLogE,
             end, LM, C, N, &st->analysis, &st->stereo_saving, tf_estimate,
             st->intensity, surround_trim, st->arch);
+      }
       ec_enc_icdf(enc, alloc_trim, trim_icdf, 7);
       tell = ec_tell_frac(enc);
    }