aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2011-10-26 15:47:53 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2011-10-26 15:47:53 -0400
commitd481798ad1f3fc6a51630acae10eff032b681142 (patch)
treeac7482a33d8fafbb4ba208914cd89f9d5fa46a9b
parent602fd8a6f8228189ce78eb14d8b3a0d6b4f5a6e7 (diff)
downloadlibopus-d481798ad1f3fc6a51630acae10eff032b681142.tar.gz
draft: Update to normative/non-normative switching
Making SILK bandwidth changes non-normative when there's no redundancy
-rw-r--r--doc/draft-ietf-codec-opus.xml39
1 files changed, 19 insertions, 20 deletions
diff --git a/doc/draft-ietf-codec-opus.xml b/doc/draft-ietf-codec-opus.xml
index d0e83672..5536a6ee 100644
--- a/doc/draft-ietf-codec-opus.xml
+++ b/doc/draft-ietf-codec-opus.xml
@@ -5433,7 +5433,10 @@ However, other transitions between SILK-only packets or between NB or MB SILK
nor the LTP, LPC, stereo unmixing, and resampler buffers are available at the
new sample rate.
These switches SHOULD be delayed by the encoder until quiet periods or
- transients, where the inevitable glitches will be less audible.
+ transients, where the inevitable glitches will be less audible. Additionally,
+ the bit-stream MAY include redundant side information ("redundancy"), in the
+ form of additional CELT frames embedded in each of the Opus frames around the
+ transition.
</t>
<t>
@@ -5453,17 +5456,14 @@ To avoid or reduces glitches during these problematic mode transitions, and
<t>
A transition between coding the lower frequencies with the LP model and the
- MDCT model is only normatively specified when it includes redundancy.
+ MDCT model or a transition that involves changing the SILK bandwidth
+ is only normatively specified when it includes redundancy.
For those without redundancy, it is RECOMMENDED that the decoder use a
concealment technique (e.g., make use of a PLC algorithm) to "fill in" the
gap or discontinuity caused by the mode transition.
-Transitions between SILK-only modes without redundancy are normative, however,
- as these often occur at bitrates that are too low to reasonably include the
- extra side information.
-Therefore, PLC MUST NOT be applied during a transition when
+Therefore, PLC MUST NOT be applied during any normative transition, i.e., when
<list style="symbols">
<t>A packet includes redundancy for this transition (as described below),</t>
-<t>The transition is between two SILK-mode packets,</t>
<t>The transition is between any WB SILK packet and any Hybrid packet, or vice
versa,</t>
<t>The transition is between any two Hybrid mode packets, or</t>
@@ -5661,14 +5661,10 @@ Finally, a c indicates the contents of the CELT overlap buffer after the
<figure align="center" anchor="normative_transitions"
title="Normative Transitions">
<artwork align="center"><![CDATA[
-SILK to SILK (audio bandwidth change): S -> S -> S ;S -> S -> S
-
SILK to SILK with Redundancy: S -> S -> S ;S -> S -> S
& &
!R -> R
-NB or MB SILK to Hybrid: S -> S -> S |H -> H -> H
-
NB or MB SILK to Hybrid with Redundancy: S -> S -> S
&
!R ->;H -> H -> H
@@ -5679,13 +5675,9 @@ SILK to CELT with Redundancy: S -> S -> S
&
!R -> C -> C -> C
-Hybrid to NB or MB SILK: H -> H -> H -> c
- +
- ;S -> S -> S
-
-Hybrid to NB or MB SILK with Redundancy: H -> H -> H -> R
- &
- ;S -> S -> S
+Hybrid to NB or MB SILK with Redundancy: H -> H -> H ;S -> S -> S
+ & &
+ !R -> R
Hybrid to WB SILK: H -> H -> H -> c
\ +
@@ -5717,8 +5709,7 @@ The first two and the last two Opus frames in each example are illustrative,
</t>
<t>
-For transitions without redundancy, the use of PLC (as RECOMMENDED above) means
- their behavior is non-normative.
+The behavior of transitions without redundancy where PLC is allowed is non-normative.
An encoder might still wish to use these transitions if, for example, it
doesn't want to add the extra bitrate required for redundancy or if it makes
a decision to switch after it has already transmitted the frame that would
@@ -5728,10 +5719,18 @@ An encoder might still wish to use these transitions if, for example, it
<figure align="center" anchor="nonnormative_transitions"
title="Recommended Non-Normative Transitions">
<artwork align="center"><![CDATA[
+SILK to SILK (audio bandwidth change): S -> S -> S ;S -> S -> S
+
+NB or MB SILK to Hybrid: S -> S -> S |H -> H -> H
+
SILK to CELT without Redundancy: S -> S -> S -> P
&
!C -> C -> C
+Hybrid to NB or MB SILK: H -> H -> H -> c
+ +
+ ;S -> S -> S
+
Hybrid to CELT without Redundancy: H -> H -> H -> P
&
!C -> C -> C