shithub: opus

Download patch

ref: d481798ad1f3fc6a51630acae10eff032b681142
parent: 602fd8a6f8228189ce78eb14d8b3a0d6b4f5a6e7
author: Jean-Marc Valin <[email protected]>
date: Wed Oct 26 11:47:53 EDT 2011

draft: Update to normative/non-normative switching

Making SILK bandwidth changes non-normative when there's no redundancy

--- a/doc/draft-ietf-codec-opus.xml
+++ b/doc/draft-ietf-codec-opus.xml
@@ -5433,7 +5433,10 @@
  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 @@
 
 <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 @@
 <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,14 +5675,10 @@
                                                     &
                                                    !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   ;S -> S -> S
+                                                    &    &
+                                                   !R -> R
 
-Hybrid to NB or MB SILK with Redundancy:  H -> H -> H -> R
-                                                         &
-                                                        ;S -> S -> S
-
 Hybrid to WB SILK:                        H -> H -> H -> c
                                                       \  +
                                                        > S -> S -> S
@@ -5717,8 +5709,7 @@
 </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,9 +5719,17 @@
 <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
                                                          &