Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2015-11-17 07:03:17 +0300
committerJean-Marc Valin <jmvalin@jmvalin.ca>2016-04-22 22:14:17 +0300
commit6d08dacb36ac815183a4db805b1e4bfc0d0fd5f9 (patch)
tree22273e1418805719c4f162b0e80ec7de0fcd715a
parent4d3decfe4da706a7045236b02b8c4e08da22489f (diff)
Quality: removes VBR attenuation at low bitrate
Turns out that even low bitrates benefit from VBR
-rw-r--r--celt/celt_encoder.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c
index 41fbfd49..7bdd1e49 100644
--- a/celt/celt_encoder.c
+++ b/celt/celt_encoder.c
@@ -1279,18 +1279,11 @@ static int compute_vbr(const CELTMode *mode, AnalysisInfo *analysis, opus_int32
/*printf("%f %d\n", maxDepth, floor_depth);*/
}
- if ((!has_surround_mask||lfe) && (constrained_vbr || bitrate<64000))
+ /* Make VBR less aggressive for constrained VBR because we can't keep a higher bitrate
+ for long. Needs tuning. */
+ if ((!has_surround_mask||lfe) && constrained_vbr)
{
- opus_val16 rate_factor;
-#ifdef FIXED_POINT
- rate_factor = MAX16(0,(bitrate-32000));
-#else
- rate_factor = MAX16(0,(1.f/32768)*(bitrate-32000));
-#endif
- if (constrained_vbr)
- rate_factor = MIN16(rate_factor, QCONST16(0.67f, 15));
- target = base_target + (opus_int32)MULT16_32_Q15(rate_factor, target-base_target);
-
+ target = base_target + (opus_int32)MULT16_32_Q15(QCONST16(0.67f, 15), target-base_target);
}
if (!has_surround_mask && tf_estimate < QCONST16(.2f, 14))