Updated draft
[speexdsp.git] / doc / manual.lyx
index 671463d..43710b8 100644 (file)
@@ -1,5 +1,5 @@
-#LyX 1.5.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 276
+#LyX 1.6.0rc2 created this file. For more info see http://www.lyx.org/
+\lyxformat 340
 \begin_document
 \begin_header
 \textclass scrbook
 \begin_document
 \begin_header
 \textclass scrbook
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
+
 \graphics default
 \paperfontsize 10
 \spacing single
 \graphics default
 \paperfontsize 10
 \spacing single
+\use_hyperref false
 \papersize letterpaper
 \use_geometry true
 \use_amsmath 2
 \papersize letterpaper
 \use_geometry true
 \use_amsmath 2
 \begin_body
 
 \begin_layout Title
 \begin_body
 
 \begin_layout Title
-The Speex Codec Manual
-\newline
-Version 1.2 Beta 3
+The Speex Manual
+\begin_inset Newline newline
+\end_inset
+
+Version 1.2
 \end_layout
 
 \begin_layout Author
 \end_layout
 
 \begin_layout Author
@@ -55,8 +59,9 @@ Jean-Marc Valin
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 \end_layout
 
 
 \end_layout
 
@@ -65,7 +70,7 @@ Copyright
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -74,7 +79,7 @@ copyright
 
 \end_inset
 
 
 \end_inset
 
- 2002-2007 Jean-Marc Valin/Xiph.org Foundation
+ 2002-2008 Jean-Marc Valin/Xiph.org Foundation
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
@@ -88,15 +93,19 @@ on License".
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 
-\begin_inset LatexCommand tableofcontents
+\begin_inset CommandInset toc
+LatexCommand tableofcontents
 
 \end_inset
 
 
 
 \end_inset
 
 
-\newpage
+\begin_inset Newpage newpage
+\end_inset
+
 
 \end_layout
 
 
 \end_layout
 
@@ -106,7 +115,9 @@ on License".
 \end_inset
 
 
 \end_inset
 
 
-\newpage
+\begin_inset Newpage newpage
+\end_inset
+
 
 \end_layout
 
 
 \end_layout
 
@@ -148,8 +159,12 @@ Designing for VoIP instead of mobile phones means that Speex is robust to
 
 \begin_layout Standard
 All the design goals led to the choice of CELP
 
 \begin_layout Standard
 All the design goals led to the choice of CELP
-\begin_inset LatexCommand index
-name "CELP"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+CELP
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -163,7 +178,8 @@ name "CELP"
 
 \begin_layout Section
 Getting help
 
 \begin_layout Section
 Getting help
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sec:Getting-help"
 
 \end_inset
 name "sec:Getting-help"
 
 \end_inset
@@ -200,7 +216,7 @@ Email the author privately at jean-marc.valin@usherbrooke.ca
 \series bold
 only
 \series default
 \series bold
 only
 \series default
- for private/delicate topics you do not wish to discuss publically.
+ for private/delicate topics you do not wish to discuss publicly.
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
@@ -224,7 +240,8 @@ Here are some additional guidelines related to the mailing list.
  Before reporting bugs in Speex to the list, it is strongly recommended
  (if possible) to first test whether these bugs can be reproduced using
  the speexenc and speexdec (see Section 
  Before reporting bugs in Speex to the list, it is strongly recommended
  (if possible) to first test whether these bugs can be reproduced using
  the speexenc and speexdec (see Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Command-line-encoder/decoder"
 
 \end_inset
 reference "sec:Command-line-encoder/decoder"
 
 \end_inset
@@ -242,7 +259,8 @@ About this document
 \begin_layout Standard
 This document is divided in the following way.
  Section 
 \begin_layout Standard
 This document is divided in the following way.
  Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Feature-description"
 
 \end_inset
 reference "sec:Feature-description"
 
 \end_inset
@@ -250,27 +268,34 @@ reference "sec:Feature-description"
  describes the different Speex features and defines many basic terms that
  are used throughout this manual.
  Section 
  describes the different Speex features and defines many basic terms that
  are used throughout this manual.
  Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Command-line-encoder/decoder"
 
 \end_inset
 
  documents the standard command-line tools provided in the Speex distribution.
  Section 
 reference "sec:Command-line-encoder/decoder"
 
 \end_inset
 
  documents the standard command-line tools provided in the Speex distribution.
  Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Programming-with-Speex"
 
 \end_inset
 
  includes detailed instructions about programming using the libspeex
 reference "sec:Programming-with-Speex"
 
 \end_inset
 
  includes detailed instructions about programming using the libspeex
-\begin_inset LatexCommand index
-name "libspeex"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+libspeex
+\end_layout
 
 \end_inset
 
  API.
  Section 
 
 \end_inset
 
  API.
  Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Formats-and-standards"
 
 \end_inset
 reference "sec:Formats-and-standards"
 
 \end_inset
@@ -286,19 +311,22 @@ The three last sections describe the algorithms used in Speex.
  They are intended for people who want to understand how Speex really works
  and/or want to do research based on Speex.
  Section 
  They are intended for people who want to understand how Speex really works
  and/or want to do research based on Speex.
  Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Introduction-to-CELP"
 
 \end_inset
 
  explains the general idea behind CELP, while sections 
 reference "sec:Introduction-to-CELP"
 
 \end_inset
 
  explains the general idea behind CELP, while sections 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Speex-narrowband-mode"
 
 \end_inset
 
  and 
 reference "sec:Speex-narrowband-mode"
 
 \end_inset
 
  and 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Speex-wideband-mode"
 
 \end_inset
 reference "sec:Speex-wideband-mode"
 
 \end_inset
@@ -307,14 +335,16 @@ reference "sec:Speex-wideband-mode"
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 \end_layout
 
 \begin_layout Chapter
 Codec description
 
 \end_layout
 
 \begin_layout Chapter
 Codec description
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sec:Feature-description"
 
 \end_inset
 name "sec:Feature-description"
 
 \end_inset
@@ -339,8 +369,12 @@ Before introducing all the Speex features, here are some concepts in speech
 
 \begin_layout Subsection*
 Sampling rate
 
 \begin_layout Subsection*
 Sampling rate
-\begin_inset LatexCommand index
-name "sampling rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+sampling rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -367,21 +401,33 @@ The sampling rate expressed in Hertz (Hz) is the number of samples taken
  the sampling theorem.
  Speex is mainly designed for three different sampling rates: 8 kHz, 16
  kHz, and 32 kHz.
  the sampling theorem.
  Speex is mainly designed for three different sampling rates: 8 kHz, 16
  kHz, and 32 kHz.
- These are respectively refered to as narrowband
-\begin_inset LatexCommand index
-name "narrowband"
+ These are respectively referred to as narrowband
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+narrowband
+\end_layout
 
 \end_inset
 
 , wideband
 
 \end_inset
 
 , wideband
-\begin_inset LatexCommand index
-name "wideband"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+wideband
+\end_layout
 
 \end_inset
 
  and ultra-wideband
 
 \end_inset
 
  and ultra-wideband
-\begin_inset LatexCommand index
-name "ultra-wideband"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+ultra-wideband
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -440,8 +486,12 @@ ps).
 
 \begin_layout Subsection*
 Quality
 
 \begin_layout Subsection*
 Quality
-\begin_inset LatexCommand index
-name "quality"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+quality
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -449,15 +499,19 @@ name "quality"
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-Speex is a lossy codec, which means that it achives compression at the expense
- of fidelity of the input speech signal.
- Unlike some other speech codecs, it is possible to control the tradeoff
+Speex is a lossy codec, which means that it achieves compression at the
expense of fidelity of the input speech signal.
+ Unlike some other speech codecs, it is possible to control the trade-off
  made between quality and bit-rate.
  The Speex encoding process is controlled most of the time by a quality
  parameter that ranges from 0 to 10.
  In constant bit-rate
  made between quality and bit-rate.
  The Speex encoding process is controlled most of the time by a quality
  parameter that ranges from 0 to 10.
  In constant bit-rate
-\begin_inset LatexCommand index
-name "constant bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+constant bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -468,8 +522,12 @@ name "constant bit-rate"
 
 \begin_layout Subsection*
 Complexity
 
 \begin_layout Subsection*
 Complexity
-\begin_inset LatexCommand index
-name "complexity"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+complexity
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -494,8 +552,12 @@ bzip2
  5 times higher than for complexity 1.
  In practice, the best trade-off is between complexity 2 and 4, though higher
  settings are often useful when encoding non-speech sounds like DTMF
  5 times higher than for complexity 1.
  In practice, the best trade-off is between complexity 2 and 4, though higher
  settings are often useful when encoding non-speech sounds like DTMF
-\begin_inset LatexCommand index
-name "DTMF"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+DTMF
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -504,8 +566,12 @@ name "DTMF"
 
 \begin_layout Subsection*
 Variable Bit-Rate
 
 \begin_layout Subsection*
 Variable Bit-Rate
-\begin_inset LatexCommand index
-name "variable bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+variable bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -526,7 +592,7 @@ difficulty
  In the example of Speex, sounds like vowels and high-energy transients
  require a higher bit-rate to achieve good quality, while fricatives (e.g.
  s,f sounds) can be coded adequately with less bits.
  In the example of Speex, sounds like vowels and high-energy transients
  require a higher bit-rate to achieve good quality, while fricatives (e.g.
  s,f sounds) can be coded adequately with less bits.
- For this reason, VBR can achive lower bit-rate for the same quality, or
+ For this reason, VBR can achieve lower bit-rate for the same quality, or
  a better quality for a certain bit-rate.
  Despite its advantages, VBR has two main drawbacks: first, by only specifying
  quality, there's no guaranty about the final average bit-rate.
  a better quality for a certain bit-rate.
  Despite its advantages, VBR has two main drawbacks: first, by only specifying
  quality, there's no guaranty about the final average bit-rate.
@@ -537,8 +603,12 @@ difficulty
 
 \begin_layout Subsection*
 Average Bit-Rate
 
 \begin_layout Subsection*
 Average Bit-Rate
-\begin_inset LatexCommand index
-name "average bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+average bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -555,8 +625,12 @@ Average bit-rate solves one of the problems of VBR, as it dynamically adjusts
 
 \begin_layout Subsection*
 Voice Activity Detection
 
 \begin_layout Subsection*
 Voice Activity Detection
-\begin_inset LatexCommand index
-name "voice activity detection"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+voice activity detection
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -583,8 +657,12 @@ comfort noise generation
 
 \begin_layout Subsection*
 Discontinuous Transmission
 
 \begin_layout Subsection*
 Discontinuous Transmission
-\begin_inset LatexCommand index
-name "discontinuous transmission"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+discontinuous transmission
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -600,8 +678,12 @@ Discontinuous transmission is an addition to VAD/VBR operation, that allows
 
 \begin_layout Subsection*
 Perceptual enhancement
 
 \begin_layout Subsection*
 Perceptual enhancement
-\begin_inset LatexCommand index
-name "perceptual enhancement"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+perceptual enhancement
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -627,8 +709,12 @@ sounds
 
 \begin_layout Subsection*
 Latency and algorithmic delay
 
 \begin_layout Subsection*
 Latency and algorithmic delay
-\begin_inset LatexCommand index
-name "algorithmic delay"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+algorithmic delay
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -662,14 +748,22 @@ The main characteristics of Speex can be summarized as follows:
 
 \begin_layout Itemize
 Free software/open-source
 
 \begin_layout Itemize
 Free software/open-source
-\begin_inset LatexCommand index
-name "open-source"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+open-source
+\end_layout
 
 \end_inset
 
 , patent
 
 \end_inset
 
 , patent
-\begin_inset LatexCommand index
-name "patent"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+patent
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -678,14 +772,22 @@ name "patent"
 
 \begin_layout Itemize
 Integration of narrowband
 
 \begin_layout Itemize
 Integration of narrowband
-\begin_inset LatexCommand index
-name "narrowband"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+narrowband
+\end_layout
 
 \end_inset
 
  and wideband
 
 \end_inset
 
  and wideband
-\begin_inset LatexCommand index
-name "wideband"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+wideband
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -698,8 +800,12 @@ Wide range of bit-rates available (from 2.15 kbps to 44 kbps)
 
 \begin_layout Itemize
 Dynamic bit-rate switching (AMR) and Variable Bit-Rate
 
 \begin_layout Itemize
 Dynamic bit-rate switching (AMR) and Variable Bit-Rate
-\begin_inset LatexCommand index
-name "variable bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+variable bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -708,8 +814,12 @@ name "variable bit-rate"
 
 \begin_layout Itemize
 Voice Activity Detection
 
 \begin_layout Itemize
 Voice Activity Detection
-\begin_inset LatexCommand index
-name "voice activity detection"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+voice activity detection
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -718,8 +828,12 @@ name "voice activity detection"
 
 \begin_layout Itemize
 Variable complexity
 
 \begin_layout Itemize
 Variable complexity
-\begin_inset LatexCommand index
-name "complexity"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+complexity
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -815,7 +929,8 @@ Acoustic Echo Canceller
 \begin_layout Standard
 In any hands-free communication system (Fig.
  
 \begin_layout Standard
 In any hands-free communication system (Fig.
  
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "fig:Acoustic-echo-model"
 
 \end_inset
 reference "fig:Acoustic-echo-model"
 
 \end_inset
@@ -840,11 +955,11 @@ wide false
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -864,7 +979,7 @@ begin{center}
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -876,12 +991,13 @@ end{center}
 
 \end_layout
 
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset Caption
 
 \begin_inset Caption
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Acoustic echo model
 Acoustic echo model
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "fig:Acoustic-echo-model"
 
 \end_inset
 name "fig:Acoustic-echo-model"
 
 \end_inset
@@ -915,14 +1031,112 @@ In some cases, it may be useful to convert audio from one sampling rate
 plexity tradeoff.
 \end_layout
 
 plexity tradeoff.
 \end_layout
 
+\begin_layout Section
+Integration
+\end_layout
+
+\begin_layout Standard
+Knowing 
+\emph on
+how
+\emph default
+ to use eacho of the components is not that useful unless we know 
+\emph on
+where
+\emph default
+ to use them.
+ Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:Integration-VoIP"
+
+\end_inset
+
+ shows where each of the components would be used in a typical VoIP client.
+ Components in dotted lines are optional, though they may be very useful
+ in some circumstances.
+ There are several important things to note from there.
+ The AEC must be placed as close as possible to the playback and capture.
+ Only the resampling may be closer.
+ Also, it is very important to use the same clock for both mic capture and
+ speaker/headphones playback.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{center}
+\end_layout
+
+\end_inset
+
+
+\begin_inset Graphics
+       filename components.eps
+       width 80text%
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{center}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Integration of all the components in a VoIP client.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:Integration-VoIP"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
 \begin_layout Standard
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 \end_layout
 
 \begin_layout Chapter
 
 \end_layout
 
 \begin_layout Chapter
-Compiling
+Compiling and Porting
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
@@ -976,8 +1190,12 @@ The options supported by the Speex configure script are:
 
 \begin_layout Description
 --enable-fixed-point
 
 \begin_layout Description
 --enable-fixed-point
-\begin_inset LatexCommand index
-name "fixed-point"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+fixed-point
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -997,8 +1215,12 @@ name "fixed-point"
 
 \begin_layout Description
 --enable-fixed-point-debug Use only for debugging the fixed-point
 
 \begin_layout Description
 --enable-fixed-point-debug Use only for debugging the fixed-point
-\begin_inset LatexCommand index
-name "fixed-point"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+fixed-point
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -1006,11 +1228,6 @@ name "fixed-point"
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---enable-epic-48k Enable a special (and non-compatible) 4.8 kbps narrowband
- mode (broken in 1.1.x and 1.2beta)
-\end_layout
-
-\begin_layout Description
 --enable-ti-c55x Enable support for the TI C5x family
 \end_layout
 
 --enable-ti-c55x Enable support for the TI C5x family
 \end_layout
 
@@ -1019,11 +1236,6 @@ name "fixed-point"
  (gcc only)
 \end_layout
 
  (gcc only)
 \end_layout
 
-\begin_layout Description
---enable-vorbis-psycho Make the encoder use the Vorbis psycho-acoustic model.
- This is very experimental and may be removed in the future.
-\end_layout
-
 \begin_layout Section
 Platforms
 \end_layout
 \begin_layout Section
 Platforms
 \end_layout
@@ -1034,11 +1246,11 @@ Speex is known to compile and work on a large number of architectures, both
  In general, any architecture that can natively compute the multiplication
  of two signed 16-bit numbers (32-bit result) and runs at a sufficient clock
  rate (architecture-dependent) is capable of running Speex.
  In general, any architecture that can natively compute the multiplication
  of two signed 16-bit numbers (32-bit result) and runs at a sufficient clock
  rate (architecture-dependent) is capable of running Speex.
- Architectures that are 
+ Architectures on which Speex is 
 \series bold
 known
 \series default
 \series bold
 known
 \series default
- to be supported (it probably works on many others) are:
+ to work (it probably works on many others) are:
 \end_layout
 
 \begin_layout Itemize
 \end_layout
 
 \begin_layout Itemize
@@ -1062,6 +1274,10 @@ Blackfin
 \end_layout
 
 \begin_layout Itemize
 \end_layout
 
 \begin_layout Itemize
+Coldfire (68k family)
+\end_layout
+
+\begin_layout Itemize
 TI C54xx & C55xx
 \end_layout
 
 TI C54xx & C55xx
 \end_layout
 
@@ -1124,8 +1340,8 @@ CPU optimisation
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-The single that will affect the CPU usage of Speex the most is whether it
- is compiled for floating point or fixed-point.
+The single factor that will affect the CPU usage of Speex the most is whether
+ it is compiled for floating point or fixed-point.
  If your CPU/DSP does not have a floating-point unit FPU, then compiling
  as fixed-point will be orders of magnitudes faster.
  If there is an FPU present, then it is important to test which version
  If your CPU/DSP does not have a floating-point unit FPU, then compiling
  as fixed-point will be orders of magnitudes faster.
  If there is an FPU present, then it is important to test which version
@@ -1136,7 +1352,13 @@ generally
 \series default
  faster, but not always.
  To compile Speex as fixed-point, you need to pass --fixed-point to the
 \series default
  faster, but not always.
  To compile Speex as fixed-point, you need to pass --fixed-point to the
- configure script or define the FIXED_POINT maccro for the compiler.
+ configure script or define the FIXED_POINT macro for the compiler.
+ As of 1.2beta3, it is now possible to disable the floating-point compatibility
+ API, which means that your code can link without a float emulation library.
+ To do that configure with --disable-float-api or define the DISABLE_FLOAT_API
+ macro.
+ Until the VBR feature is ported to fixed-point, you will also need to configure
+ with --disable-vbr or define DISABLE_VBR.
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
@@ -1166,7 +1388,7 @@ usually
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 filter_mem16()
 \end_layout
 
 filter_mem16()
 \end_layout
@@ -1181,7 +1403,7 @@ filter_mem16()
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 iir_mem16()
 \end_layout
 
 iir_mem16()
 \end_layout
@@ -1196,7 +1418,22 @@ iir_mem16()
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
+
+vq_nbest()
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
 
 pitch_xcorr()
 \end_layout
 
 pitch_xcorr()
 \end_layout
@@ -1211,7 +1448,7 @@ pitch_xcorr()
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 interp_pitch()
 \end_layout
 
 interp_pitch()
 \end_layout
@@ -1221,6 +1458,47 @@ interp_pitch()
 
 \end_layout
 
 
 \end_layout
 
+\begin_layout Standard
+The filtering functions 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+filter_mem16()
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+iir_mem16()
+\end_layout
+
+\end_inset
+
+ are implemented in the direct form II transposed (DF2T).
+ However, for architectures based on multiply-accumulate (MAC), DF2T requires
+ frequent reload of the accumulator, which can make the code very slow.
+ For these architectures (e.g.
+ Blackfin and Coldfire), a better approach is to implement those functions
+ as direct form I (DF1), which is easier to express in terms of MAC.
+ When doing that however, 
+\series bold
+it is important to make sure that the DF1 implementation still behaves like
+ the original DF2T behaviour when it comes to memory values
+\series default
+.
+ This is necessary because the filter is time-varying and must compute exactly
+ the same value (not counting machine rounding) on any encoder or decoder.
+\end_layout
+
 \begin_layout Subsection
 Memory optimisation
 \end_layout
 \begin_layout Subsection
 Memory optimisation
 \end_layout
@@ -1250,7 +1528,7 @@ Support for stereo (removing stereo.c)
 \end_layout
 
 \begin_layout Itemize
 \end_layout
 
 \begin_layout Itemize
-VBR support (vbr.c and a few lines in nb_celp.c)
+VBR support (--disable-vbr or DISABLE_VBR)
 \end_layout
 
 \begin_layout Itemize
 \end_layout
 
 \begin_layout Itemize
@@ -1295,7 +1573,7 @@ manual
 \begin_inset Foot
 status collapsed
 
 \begin_inset Foot
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 In this case, one must be careful with threads
 \end_layout
 
 In this case, one must be careful with threads
 \end_layout
 
@@ -1304,20 +1582,22 @@ In this case, one must be careful with threads
 .
  In addition to that, by redefining the NB_ENC_STACK and NB_DEC_STACK (or
  similar for wideband), it is possible to only allocate memory for a scenario
 .
  In addition to that, by redefining the NB_ENC_STACK and NB_DEC_STACK (or
  similar for wideband), it is possible to only allocate memory for a scenario
- that is known in advange.
+ that is known in advance.
  In this case, it is important to measure the amount of memory required
  for the specific sampling rate, bit-rate and complexity level being used.
 \end_layout
 
 \begin_layout Standard
  In this case, it is important to measure the amount of memory required
  for the specific sampling rate, bit-rate and complexity level being used.
 \end_layout
 
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 \end_layout
 
 \begin_layout Chapter
 Command-line encoder/decoder
 
 \end_layout
 
 \begin_layout Chapter
 Command-line encoder/decoder
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sec:Command-line-encoder/decoder"
 
 \end_inset
 name "sec:Command-line-encoder/decoder"
 
 \end_inset
@@ -1346,8 +1626,12 @@ speexdec
 
 \emph on
 speexenc
 
 \emph on
 speexenc
-\begin_inset LatexCommand index
-name "speexenc"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+speexenc
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -1374,18 +1658,27 @@ The value '-' for input_file or output_file corresponds respectively to
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---narrowband\InsetSpace ~
+--narrowband
+\begin_inset space ~
+\end_inset
+
 (-n) Tell Speex to treat the input as narrowband (8 kHz).
  This is the default
 \end_layout
 
 \begin_layout Description
 (-n) Tell Speex to treat the input as narrowband (8 kHz).
  This is the default
 \end_layout
 
 \begin_layout Description
---wideband\InsetSpace ~
+--wideband
+\begin_inset space ~
+\end_inset
+
 (-w) Tell Speex to treat the input as wideband (16 kHz)
 \end_layout
 
 \begin_layout Description
 (-w) Tell Speex to treat the input as wideband (16 kHz)
 \end_layout
 
 \begin_layout Description
---ultra-wideband\InsetSpace ~
+--ultra-wideband
+\begin_inset space ~
+\end_inset
+
 (-u) Tell Speex to treat the input as 
 \begin_inset Quotes eld
 \end_inset
 (-u) Tell Speex to treat the input as 
 \begin_inset Quotes eld
 \end_inset
@@ -1398,12 +1691,18 @@ ultra-wideband
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---quality\InsetSpace ~
+--quality
+\begin_inset space ~
+\end_inset
+
 n Set the encoding quality (0-10), default is 8
 \end_layout
 
 \begin_layout Description
 n Set the encoding quality (0-10), default is 8
 \end_layout
 
 \begin_layout Description
---bitrate\InsetSpace ~
+--bitrate
+\begin_inset space ~
+\end_inset
+
 n Encoding bit-rate (use bit-rate n or lower) 
 \end_layout
 
 n Encoding bit-rate (use bit-rate n or lower) 
 \end_layout
 
@@ -1412,7 +1711,10 @@ n Encoding bit-rate (use bit-rate n or lower)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---abr\InsetSpace ~
+--abr
+\begin_inset space ~
+\end_inset
+
 n Enable ABR (Average Bit-Rate) at n kbps, disabled by default
 \end_layout
 
 n Enable ABR (Average Bit-Rate) at n kbps, disabled by default
 \end_layout
 
@@ -1425,12 +1727,18 @@ n Enable ABR (Average Bit-Rate) at n kbps, disabled by default
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---nframes\InsetSpace ~
+--nframes
+\begin_inset space ~
+\end_inset
+
 n Pack n frames in each Ogg packet (this saves space at low bit-rates)
 \end_layout
 
 \begin_layout Description
 n Pack n frames in each Ogg packet (this saves space at low bit-rates)
 \end_layout
 
 \begin_layout Description
---comp\InsetSpace ~
+--comp
+\begin_inset space ~
+\end_inset
+
 n Set encoding speed/quality tradeoff.
  The higher the value of n, the slower the encoding (default is 3)
 \end_layout
 n Set encoding speed/quality tradeoff.
  The higher the value of n, the slower the encoding (default is 3)
 \end_layout
@@ -1440,12 +1748,18 @@ n Set encoding speed/quality tradeoff.
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---help\InsetSpace ~
+--help
+\begin_inset space ~
+\end_inset
+
 (-h) Print the help
 \end_layout
 
 \begin_layout Description
 (-h) Print the help
 \end_layout
 
 \begin_layout Description
---version\InsetSpace ~
+--version
+\begin_inset space ~
+\end_inset
+
 (-v) Print version information
 \end_layout
 
 (-v) Print version information
 \end_layout
 
@@ -1474,7 +1788,10 @@ Raw input options
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---rate\InsetSpace ~
+--rate
+\begin_inset space ~
+\end_inset
+
 n Sampling rate for raw input
 \end_layout
 
 n Sampling rate for raw input
 \end_layout
 
@@ -1502,8 +1819,12 @@ n Sampling rate for raw input
 
 \emph on
 speexdec
 
 \emph on
 speexdec
-\begin_inset LatexCommand index
-name "speexdec"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+speexdec
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -1558,12 +1879,18 @@ The value '-' for input_file or output_file corresponds respectively to
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---rate\InsetSpace ~
+--rate
+\begin_inset space ~
+\end_inset
+
 n Force decoding at n Hz sampling rate
 \end_layout
 
 \begin_layout Description
 n Force decoding at n Hz sampling rate
 \end_layout
 
 \begin_layout Description
---packet-loss\InsetSpace ~
+--packet-loss
+\begin_inset space ~
+\end_inset
+
 n Simulate n % random packet loss
 \end_layout
 
 n Simulate n % random packet loss
 \end_layout
 
@@ -1572,18 +1899,25 @@ n Simulate n % random packet loss
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
---help\InsetSpace ~
+--help
+\begin_inset space ~
+\end_inset
+
 (-h) Print the help
 \end_layout
 
 \begin_layout Description
 (-h) Print the help
 \end_layout
 
 \begin_layout Description
---version\InsetSpace ~
+--version
+\begin_inset space ~
+\end_inset
+
 (-v) Print version information
 \end_layout
 
 \begin_layout Standard
 (-v) Print version information
 \end_layout
 
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 \end_layout
 
 
 \end_layout
 
@@ -1593,13 +1927,18 @@ Using the Speex Codec API (
 libspeex
 \emph default
 
 libspeex
 \emph default
 
-\begin_inset LatexCommand index
-name "libspeex"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+libspeex
+\end_layout
 
 \end_inset
 
 )
 
 \end_inset
 
 )
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sec:Programming-with-Speex"
 
 \end_inset
 name "sec:Programming-with-Speex"
 
 \end_inset
@@ -1630,7 +1969,8 @@ calls using the same state from multiple threads must be protected by mutexes
 \series default
 .
  Examples of code can also be found in Appendix 
 \series default
 .
  Examples of code can also be found in Appendix 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Sample-code"
 
 \end_inset
 reference "sec:Sample-code"
 
 \end_inset
@@ -1641,7 +1981,8 @@ reference "sec:Sample-code"
 
 \begin_layout Section
 Encoding
 
 \begin_layout Section
 Encoding
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Encoding"
 
 \end_inset
 name "sub:Encoding"
 
 \end_inset
@@ -1658,7 +1999,7 @@ In order to encode speech using Speex, one first needs to:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 #include <speex/speex.h>
 \end_layout
 
 #include <speex/speex.h>
 \end_layout
@@ -1671,12 +2012,12 @@ Then in the code, a Speex bit-packing struct must be declared, along with
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 SpeexBits bits;
 \end_layout
 
 
 SpeexBits bits;
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 void *enc_state;
 \end_layout
 
 void *enc_state;
 \end_layout
@@ -1688,12 +2029,12 @@ The two are initialized by:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_bits_init(&bits);
 \end_layout
 
 
 speex_bits_init(&bits);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 enc_state = speex_encoder_init(&speex_nb_mode);
 \end_layout
 
 enc_state = speex_encoder_init(&speex_nb_mode);
 \end_layout
@@ -1731,7 +2072,7 @@ samples
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_encoder_ctl(enc_state,SPEEX_GET_FRAME_SIZE,&frame_size);
 \end_layout
 
 speex_encoder_ctl(enc_state,SPEEX_GET_FRAME_SIZE,&frame_size);
 \end_layout
@@ -1758,7 +2099,7 @@ frame_size
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_encoder_ctl(enc_state,SPEEX_SET_QUALITY,&quality);
 \end_layout
 
 speex_encoder_ctl(enc_state,SPEEX_SET_QUALITY,&quality);
 \end_layout
@@ -1772,7 +2113,8 @@ quality
  is an integer value ranging from 0 to 10 (inclusively).
  The mapping between quality and bit-rate is described in Fig.
  
  is an integer value ranging from 0 to 10 (inclusively).
  The mapping between quality and bit-rate is described in Fig.
  
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "cap:quality_vs_bps"
 
 \end_inset
 reference "cap:quality_vs_bps"
 
 \end_inset
@@ -1789,17 +2131,17 @@ Once the initialization is done, for every input frame:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_bits_reset(&bits);
 \end_layout
 
 
 speex_bits_reset(&bits);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_encode_int(enc_state, input_frame, &bits);
 \end_layout
 
 
 speex_encode_int(enc_state, input_frame, &bits);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 nbBytes = speex_bits_write(&bits, byte_ptr, MAX_NB_BYTES);
 \end_layout
 
 nbBytes = speex_bits_write(&bits, byte_ptr, MAX_NB_BYTES);
 \end_layout
@@ -1889,12 +2231,12 @@ After you're done with the encoding, free all resources with:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_bits_destroy(&bits);
 \end_layout
 
 
 speex_bits_destroy(&bits);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_encoder_destroy(enc_state);
 \end_layout
 
 speex_encoder_destroy(enc_state);
 \end_layout
@@ -1911,7 +2253,8 @@ That's about it for the encoder.
 
 \begin_layout Section
 Decoding
 
 \begin_layout Section
 Decoding
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Decoding"
 
 \end_inset
 name "sub:Decoding"
 
 \end_inset
@@ -1925,7 +2268,7 @@ In order to decode speech using Speex, you first need to:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 #include <speex/speex.h>
 \end_layout
 
 #include <speex/speex.h>
 \end_layout
@@ -1937,7 +2280,7 @@ You also need to declare a Speex bit-packing struct
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 SpeexBits bits;
 \end_layout
 
 SpeexBits bits;
 \end_layout
@@ -1949,7 +2292,7 @@ and a Speex decoder state
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 void *dec_state;
 \end_layout
 
 void *dec_state;
 \end_layout
@@ -1961,12 +2304,12 @@ The two are initialized by:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_bits_init(&bits);
 \end_layout
 
 
 speex_bits_init(&bits);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 dec_state = speex_decoder_init(&speex_nb_mode);
 \end_layout
 
 dec_state = speex_decoder_init(&speex_nb_mode);
 \end_layout
@@ -2003,7 +2346,7 @@ samples
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_decoder_ctl(dec_state, SPEEX_GET_FRAME_SIZE, &frame_size);
 \end_layout
 
 speex_decoder_ctl(dec_state, SPEEX_GET_FRAME_SIZE, &frame_size);
 \end_layout
@@ -2024,7 +2367,7 @@ There is also a parameter that can be set for the decoder: whether or not
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_decoder_ctl(dec_state, SPEEX_SET_ENH, &enh);
 \end_layout
 
 speex_decoder_ctl(dec_state, SPEEX_SET_ENH, &enh);
 \end_layout
@@ -2052,12 +2395,12 @@ Again, once the decoder initialization is done, for every input frame:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_bits_read_from(&bits, input_bytes, nbBytes);
 \end_layout
 
 
 speex_bits_read_from(&bits, input_bytes, nbBytes);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_decode_int(dec_state, &bits, output_frame);
 \end_layout
 
 speex_decode_int(dec_state, &bits, output_frame);
 \end_layout
@@ -2105,12 +2448,12 @@ speex_decode()
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_bits_destroy(&bits);
 \end_layout
 
 
 speex_bits_destroy(&bits);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_decoder_destroy(dec_state);
 \end_layout
 
 speex_decoder_destroy(dec_state);
 \end_layout
@@ -2122,7 +2465,8 @@ speex_decoder_destroy(dec_state);
 
 \begin_layout Section
 Codec Options (speex_*_ctl)
 
 \begin_layout Section
 Codec Options (speex_*_ctl)
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Codec-Options"
 
 \end_inset
 name "sub:Codec-Options"
 
 \end_inset
@@ -2168,12 +2512,12 @@ ioctl
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 void speex_encoder_ctl(void *encoder, int request, void *ptr);
 \end_layout
 
 
 void speex_encoder_ctl(void *encoder, int request, void *ptr);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 void speex_decoder_ctl(void *encoder, int request, void *ptr);
 \end_layout
 
 void speex_decoder_ctl(void *encoder, int request, void *ptr);
 \end_layout
@@ -2203,7 +2547,7 @@ Here is a list of the values allowed for the requests.
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 void *
 \end_layout
 
 void *
 \end_layout
@@ -2215,7 +2559,7 @@ void *
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 _ctl()
 \end_layout
 
 _ctl()
 \end_layout
@@ -2226,13 +2570,13 @@ _ctl()
 \series bold
 not type safe
 \series default
 \series bold
 not type safe
 \series default
-, and shoud thus be used with care.
+, and should thus be used with care.
  The type 
 \begin_inset listings
 inline true
 status collapsed
 
  The type 
 \begin_inset listings
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2244,7 +2588,7 @@ spx_int32_t
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 int32_t
 \end_layout
 
 int32_t
 \end_layout
@@ -2260,8 +2604,12 @@ SPEEX_SET_ENH
 \end_inset
 
  Set perceptual enhancer
 \end_inset
 
  Set perceptual enhancer
-\begin_inset LatexCommand index
-name "perceptual enhancement"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+perceptual enhancement
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -2270,14 +2618,14 @@ name "perceptual enhancement"
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
-)
+, default is on)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2290,7 +2638,7 @@ SPEEX_GET_ENH
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2307,7 +2655,7 @@ SPEEX_GET_FRAME_SIZE Get the number of samples per frame for the current
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2327,14 +2675,14 @@ SPEEX_SET_QUALITY
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
- from 0 to 10)
+ from 0 to 10, default is 8)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2347,7 +2695,7 @@ SPEEX_GET_QUALITY
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2367,7 +2715,7 @@ SPEEX_SET_MODE
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2387,7 +2735,7 @@ SPEEX_GET_MODE
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2407,14 +2755,14 @@ SPEEX_SET_VBR
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
-)
+, default is off)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2423,8 +2771,12 @@ SPEEX_GET_VBR
 \end_inset
 
  Get variable bit-rate
 \end_inset
 
  Get variable bit-rate
-\begin_inset LatexCommand index
-name "variable bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+variable bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -2433,7 +2785,7 @@ name "variable bit-rate"
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2448,7 +2800,7 @@ SPEEX_SET_VBR_QUALITY
 \begin_inset Formula $\dagger$
 \end_inset
 
 \begin_inset Formula $\dagger$
 \end_inset
 
- Set the encoder VBR speech quality (float 0 to 10)
+ Set the encoder VBR speech quality (float 0.0 to 10.0, default is 8.0)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2469,14 +2821,14 @@ SPEEX_SET_COMPLEXITY
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
- from 1 to 10)
+ from 1 to 10, default is 2)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2489,14 +2841,14 @@ SPEEX_GET_COMPLEXITY
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
- from 1 to 10)
+ from 1 to 10, default is 2)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2504,13 +2856,12 @@ SPEEX_SET_BITRATE
 \begin_inset Formula $\dagger$
 \end_inset
 
 \begin_inset Formula $\dagger$
 \end_inset
 
- Set the bit-rate to use to the closest value not exceeding the parameter
- (
+ Set the bit-rate to use the closest value not exceeding the parameter (
 \begin_inset listings
 inline true
 status collapsed
 
 \begin_inset listings
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2526,7 +2877,7 @@ SPEEX_GET_BITRATE Get the current bit-rate in use (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2542,7 +2893,7 @@ SPEEX_SET_SAMPLING_RATE Set real sampling rate (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2558,7 +2909,7 @@ SPEEX_GET_SAMPLING_RATE Get real sampling rate (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2579,8 +2930,12 @@ SPEEX_SET_VAD
 \end_inset
 
  Set voice activity detection
 \end_inset
 
  Set voice activity detection
-\begin_inset LatexCommand index
-name "voice activity detection"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+voice activity detection
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -2589,14 +2944,14 @@ name "voice activity detection"
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
-)
+, default is off)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2609,7 +2964,7 @@ SPEEX_GET_VAD
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2625,8 +2980,12 @@ SPEEX_SET_DTX
 \end_inset
 
  Set discontinuous transmission
 \end_inset
 
  Set discontinuous transmission
-\begin_inset LatexCommand index
-name "discontinuous transmission"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+discontinuous transmission
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -2635,14 +2994,14 @@ name "discontinuous transmission"
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
-)
+, default is off)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -2655,7 +3014,7 @@ SPEEX_GET_DTX
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2671,8 +3030,12 @@ SPEEX_SET_ABR
 \end_inset
 
  Set average bit-rate
 \end_inset
 
  Set average bit-rate
-\begin_inset LatexCommand index
-name "average bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+average bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -2681,7 +3044,7 @@ name "average bit-rate"
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2701,7 +3064,7 @@ SPEEX_GET_ABR
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2722,7 +3085,7 @@ SPEEX_SET_PLC_TUNING
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2742,7 +3105,7 @@ SPEEX_GET_PLC_TUNING
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2762,7 +3125,7 @@ SPEEX_SET_VBR_MAX_BITRATE
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2782,7 +3145,7 @@ SPEEX_GET_VBR_MAX_BITRATE
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2798,23 +3161,23 @@ SPEEX_SET_HIGHPASS Set the high-pass filter on (1) or off (0) (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
 
 spx_int32_t
 \end_layout
 
 \end_inset
 
-)
+, default is on)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_TET_HIGHPASS Get the current high-pass filter status (
+SPEEX_GET_HIGHPASS Get the current high-pass filter status (
 \begin_inset listings
 inline true
 status collapsed
 
 \begin_inset listings
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -2840,7 +3203,8 @@ spx_int32_t
 
 \begin_layout Section
 Mode queries
 
 \begin_layout Section
 Mode queries
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Mode-queries"
 
 \end_inset
 name "sub:Mode-queries"
 
 \end_inset
@@ -2858,7 +3222,7 @@ er_ctl calls.
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 void speex_mode_query(SpeexMode *mode, int request, void *ptr);
 \end_layout
 
 void speex_mode_query(SpeexMode *mode, int request, void *ptr);
 \end_layout
@@ -2889,8 +3253,12 @@ ptr
 
 \begin_layout Section
 Packing and in-band signalling
 
 \begin_layout Section
 Packing and in-band signalling
-\begin_inset LatexCommand index
-name "in-band signalling"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+in-band signalling
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -2909,7 +3277,8 @@ Sometimes it is desirable to pack more than one frame per packet (or other
  mechanism, it is possible to include a terminator code.
  That terminator consists of the code 15 (decimal) encoded with 5 bits,
  as shown in Table 
  mechanism, it is possible to include a terminator code.
  That terminator consists of the code 15 (decimal) encoded with 5 bits,
  as shown in Table 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "cap:quality_vs_bps"
 
 \end_inset
 reference "cap:quality_vs_bps"
 
 \end_inset
@@ -2941,7 +3310,8 @@ pseudo-frames
 
  of mode 14 which contain a 4-bit message type code, followed by the message.
  Table 
 
  of mode 14 which contain a 4-bit message type code, followed by the message.
  Table 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "cap:In-band-signalling-codes"
 
 \end_inset
 reference "cap:In-band-signalling-codes"
 
 \end_inset
@@ -2960,11 +3330,11 @@ wide false
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -2977,43 +3347,43 @@ begin{center}
 \begin_inset Tabular
 <lyxtabular version="3" rows="17" columns="3">
 <features>
 \begin_inset Tabular
 <lyxtabular version="3" rows="17" columns="3">
 <features>
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" rightline="true" width="0pt">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Code
 \end_layout
 
 \end_inset
 </cell>
 Code
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Size (bits)
 \end_layout
 
 \end_inset
 </cell>
 Size (bits)
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Content
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Content
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -3022,7 +3392,7 @@ Content
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 1
 \end_layout
 
 1
 \end_layout
 
@@ -3031,18 +3401,18 @@ Content
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks decoder to set perceptual enhancement off (0) or on(1)
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Asks decoder to set perceptual enhancement off (0) or on(1)
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 1
 \end_layout
 
 1
 \end_layout
 
@@ -3051,7 +3421,7 @@ Asks decoder to set perceptual enhancement off (0) or on(1)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 1
 \end_layout
 
 1
 \end_layout
 
@@ -3060,12 +3430,12 @@ Asks decoder to set perceptual enhancement off (0) or on(1)
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks (if 1) the encoder to be less 
 \begin_inset Quotes eld
 \end_inset
 
 Asks (if 1) the encoder to be less 
 \begin_inset Quotes eld
 \end_inset
 
-agressive
+aggressive
 \begin_inset Quotes erd
 \end_inset
 
 \begin_inset Quotes erd
 \end_inset
 
@@ -3075,11 +3445,11 @@ agressive
 \end_inset
 </cell>
 </row>
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 2
 \end_layout
 
 2
 \end_layout
 
@@ -3088,7 +3458,7 @@ agressive
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3097,18 +3467,18 @@ agressive
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks encoder to switch to mode N
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Asks encoder to switch to mode N
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 3
 \end_layout
 
 3
 \end_layout
 
@@ -3117,7 +3487,7 @@ Asks encoder to switch to mode N
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3126,18 +3496,18 @@ Asks encoder to switch to mode N
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks encoder to switch to mode N for low-band
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Asks encoder to switch to mode N for low-band
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3146,7 +3516,7 @@ Asks encoder to switch to mode N for low-band
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3155,18 +3525,18 @@ Asks encoder to switch to mode N for low-band
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks encoder to switch to mode N for high-band
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Asks encoder to switch to mode N for high-band
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5
 \end_layout
 
 5
 \end_layout
 
@@ -3175,7 +3545,7 @@ Asks encoder to switch to mode N for high-band
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3184,18 +3554,18 @@ Asks encoder to switch to mode N for high-band
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks encoder to switch to quality N for VBR
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Asks encoder to switch to quality N for VBR
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 6
 \end_layout
 
 6
 \end_layout
 
@@ -3204,7 +3574,7 @@ Asks encoder to switch to quality N for VBR
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3213,18 +3583,18 @@ Asks encoder to switch to quality N for VBR
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-Request acknowloedge (0=no, 1=all, 2=only for in-band data)
+\begin_layout Plain Layout
+Request acknowledge (0=no, 1=all, 2=only for in-band data)
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 7
 \end_layout
 
 7
 \end_layout
 
@@ -3233,7 +3603,7 @@ Request acknowloedge (0=no, 1=all, 2=only for in-band data)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -3242,18 +3612,18 @@ Request acknowloedge (0=no, 1=all, 2=only for in-band data)
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Asks encoder to set CBR (0), VAD(1), DTX(3), VBR(5), VBR+DTX(7)
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Asks encoder to set CBR (0), VAD(1), DTX(3), VBR(5), VBR+DTX(7)
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 8
 \end_layout
 
 8
 \end_layout
 
@@ -3262,7 +3632,7 @@ Asks encoder to set CBR (0), VAD(1), DTX(3), VBR(5), VBR+DTX(7)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 8
 \end_layout
 
 8
 \end_layout
 
@@ -3271,18 +3641,18 @@ Asks encoder to set CBR (0), VAD(1), DTX(3), VBR(5), VBR+DTX(7)
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Transmit (8-bit) character to the other end
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Transmit (8-bit) character to the other end
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 9
 \end_layout
 
 9
 \end_layout
 
@@ -3291,7 +3661,7 @@ Transmit (8-bit) character to the other end
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 8
 \end_layout
 
 8
 \end_layout
 
@@ -3300,18 +3670,18 @@ Transmit (8-bit) character to the other end
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Intensity stereo information
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Intensity stereo information
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 10
 \end_layout
 
 10
 \end_layout
 
@@ -3320,7 +3690,7 @@ Intensity stereo information
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 16
 \end_layout
 
 16
 \end_layout
 
@@ -3329,18 +3699,18 @@ Intensity stereo information
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Announce maximum bit-rate acceptable (N in bytes/second)
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Announce maximum bit-rate acceptable (N in bytes/second)
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 11
 \end_layout
 
 11
 \end_layout
 
@@ -3349,7 +3719,7 @@ Announce maximum bit-rate acceptable (N in bytes/second)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 16
 \end_layout
 
 16
 \end_layout
 
@@ -3358,18 +3728,18 @@ Announce maximum bit-rate acceptable (N in bytes/second)
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 reserved
 \end_layout
 
 \end_inset
 </cell>
 </row>
 reserved
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 12
 \end_layout
 
 12
 \end_layout
 
@@ -3378,7 +3748,7 @@ reserved
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 32
 \end_layout
 
 32
 \end_layout
 
@@ -3387,18 +3757,18 @@ reserved
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Acknowledge receiving packet N
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Acknowledge receiving packet N
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 13
 \end_layout
 
 13
 \end_layout
 
@@ -3407,7 +3777,7 @@ Acknowledge receiving packet N
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 32
 \end_layout
 
 32
 \end_layout
 
@@ -3416,18 +3786,18 @@ Acknowledge receiving packet N
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 reserved
 \end_layout
 
 \end_inset
 </cell>
 </row>
 reserved
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 14
 \end_layout
 
 14
 \end_layout
 
@@ -3436,7 +3806,7 @@ reserved
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 64
 \end_layout
 
 64
 \end_layout
 
@@ -3445,36 +3815,36 @@ reserved
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 reserved
 \end_layout
 
 \end_inset
 </cell>
 </row>
 reserved
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 15
 \end_layout
 
 \end_inset
 </cell>
 15
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 64
 \end_layout
 
 \end_inset
 </cell>
 64
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 reserved
 \end_layout
 
 reserved
 \end_layout
 
@@ -3489,7 +3859,7 @@ reserved
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -3501,12 +3871,13 @@ end{center}
 
 \end_layout
 
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset Caption
 
 \begin_inset Caption
 
-\begin_layout Standard
+\begin_layout Plain Layout
 In-band signalling codes
 In-band signalling codes
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "cap:In-band-signalling-codes"
 
 \end_inset
 name "cap:In-band-signalling-codes"
 
 \end_inset
@@ -3528,7 +3899,9 @@ name "cap:In-band-signalling-codes"
 Finally, applications may define custom in-band messages using mode 13.
  The size of the message in bytes is encoded with 5 bits, so that the decoder
  can skip it if it doesn't know how to interpret it.
 Finally, applications may define custom in-band messages using mode 13.
  The size of the message in bytes is encoded with 5 bits, so that the decoder
  can skip it if it doesn't know how to interpret it.
-\newpage
+\begin_inset Newpage newpage
+\end_inset
+
 
 \end_layout
 
 
 \end_layout
 
@@ -3568,7 +3941,8 @@ calls using the same state from multiple threads must be protected by mutexes
 
 \begin_layout Section
 Preprocessor
 
 \begin_layout Section
 Preprocessor
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Preprocessor"
 
 \end_inset
 name "sub:Preprocessor"
 
 \end_inset
@@ -3579,8 +3953,12 @@ name "sub:Preprocessor"
 \begin_layout Standard
 \noindent
 In order to use the Speex preprocessor
 \begin_layout Standard
 \noindent
 In order to use the Speex preprocessor
-\begin_inset LatexCommand index
-name "preprocessor"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+preprocessor
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -3589,7 +3967,7 @@ name "preprocessor"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 #include <speex/speex_preprocess.h>
 \end_layout
 
 #include <speex/speex_preprocess.h>
 \end_layout
@@ -3606,7 +3984,7 @@ Then, a preprocessor state can be created as:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 SpeexPreprocessState *preprocess_state = speex_preprocess_state_init(frame_size,
  sampling_rate);
 
 SpeexPreprocessState *preprocess_state = speex_preprocess_state_init(frame_size,
  sampling_rate);
@@ -3639,7 +4017,7 @@ For each input frame, you need to call:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_preprocess_run(preprocess_state, audio_frame);
 \end_layout
 
 speex_preprocess_run(preprocess_state, audio_frame);
 \end_layout
@@ -3665,7 +4043,7 @@ audio_frame
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_preprocess_estimate_update(preprocess_state, audio_frame);
 \end_layout
 
 speex_preprocess_estimate_update(preprocess_state, audio_frame);
 \end_layout
@@ -3690,7 +4068,7 @@ The behaviour of the preprocessor can be changed using:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_preprocess_ctl(preprocess_state, request, ptr);
 \end_layout
 
 speex_preprocess_ctl(preprocess_state, request, ptr);
 \end_layout
@@ -3704,7 +4082,8 @@ speex_preprocess_ctl(preprocess_state, request, ptr);
 \noindent
 which is used in the same way as the encoder and decoder equivalent.
  Options are listed in Section 
 \noindent
 which is used in the same way as the encoder and decoder equivalent.
  Options are listed in Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sub:Preprocessor-options"
 
 \end_inset
 reference "sub:Preprocessor-options"
 
 \end_inset
@@ -3721,7 +4100,7 @@ The preprocessor state can be destroyed using:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_preprocess_state_destroy(preprocess_state);
 \end_layout
 
 speex_preprocess_state_destroy(preprocess_state);
 \end_layout
@@ -3733,7 +4112,8 @@ speex_preprocess_state_destroy(preprocess_state);
 
 \begin_layout Subsection
 Preprocessor options
 
 \begin_layout Subsection
 Preprocessor options
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Preprocessor-options"
 
 \end_inset
 name "sub:Preprocessor-options"
 
 \end_inset
@@ -3753,7 +4133,7 @@ SPEEX_PREPROCESS_SET_DENOISE Turns denoising on(1) or off(2) (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3769,7 +4149,7 @@ SPEEX_PREPROCESS_GET_DENOISE Get denoising status (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3786,7 +4166,7 @@ SPEEX_PREPROCESS_SET_AGC Turns automatic gain control (AGC) on(1) or off(2)
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3802,7 +4182,7 @@ SPEEX_PREPROCESS_GET_AGC Get AGC status (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3819,7 +4199,7 @@ SPEEX_PREPROCESS_SET_VAD Turns voice activity detector (VAD) on(1) or off(2)
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3835,7 +4215,7 @@ SPEEX_PREPROCESS_GET_VAD Get VAD status (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3860,7 +4240,7 @@ SPEEX_PREPROCESS_SET_DEREVERB Turns reverberation removal on(1) or off(2)
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3876,7 +4256,7 @@ SPEEX_PREPROCESS_GET_DEREVERB Get reverberation removal status (
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3887,19 +4267,19 @@ spx_int32_t
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_SET_DEREVERB_LEVEL
+SPEEX_PREPROCESS_SET_DEREVERB_LEVEL Not working yet, do not use
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_GET_DEREVERB_LEVEL
+SPEEX_PREPROCESS_GET_DEREVERB_LEVEL Not working yet, do not use
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_SET_DEREVERB_DECAY
+SPEEX_PREPROCESS_SET_DEREVERB_DECAY Not working yet, do not use
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_GET_DEREVERB_DECAY
+SPEEX_PREPROCESS_GET_DEREVERB_DECAY Not working yet, do not use
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
@@ -3925,7 +4305,7 @@ SPEEX_PREPROCESS_SET_NOISE_SUPPRESS Set maximum attenuation of the noise
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3942,7 +4322,7 @@ SPEEX_PREPROCESS_GET_NOISE_SUPPRESS Get maximum attenuation of the noise
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3959,7 +4339,7 @@ SPEEX_PREPROCESS_SET_ECHO_SUPPRESS Set maximum attenuation of the residual
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3970,13 +4350,13 @@ spx_int32_t
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_GET_ECHO_SUPPRESS Set maximum attenuation of the residual
+SPEEX_PREPROCESS_GET_ECHO_SUPPRESS Get maximum attenuation of the residual
  echo in dB (negative 
 \begin_inset listings
 inline true
 status collapsed
 
  echo in dB (negative 
 \begin_inset listings
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -3993,7 +4373,7 @@ SPEEX_PREPROCESS_SET_ECHO_SUPPRESS_ACTIVE Set maximum attenuation of the
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -4004,13 +4384,13 @@ spx_int32_t
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE Set maximum attenuation of the
+SPEEX_PREPROCESS_GET_ECHO_SUPPRESS_ACTIVE Get maximum attenuation of the
  echo in dB when near end is active (negative 
 \begin_inset listings
 inline true
 status collapsed
 
  echo in dB when near end is active (negative 
 \begin_inset listings
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 spx_int32_t
 \end_layout
 
 spx_int32_t
 \end_layout
@@ -4022,16 +4402,17 @@ spx_int32_t
 
 \begin_layout Description
 SPEEX_PREPROCESS_SET_ECHO_STATE Set the associated echo canceller for residual
 
 \begin_layout Description
 SPEEX_PREPROCESS_SET_ECHO_STATE Set the associated echo canceller for residual
- echo suppression (NULL for no residual echo suppression)
+ echo suppression (pointer or NULL for no residual echo suppression)
 \end_layout
 
 \begin_layout Description
 \end_layout
 
 \begin_layout Description
-SPEEX_PREPROCESS_GET_ECHO_STATE Get the associated echo canceller
+SPEEX_PREPROCESS_GET_ECHO_STATE Get the associated echo canceller (pointer)
 \end_layout
 
 \begin_layout Section
 Echo Cancellation
 \end_layout
 
 \begin_layout Section
 Echo Cancellation
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sub:Echo-Cancellation"
 
 \end_inset
 name "sub:Echo-Cancellation"
 
 \end_inset
@@ -4041,14 +4422,22 @@ name "sub:Echo-Cancellation"
 
 \begin_layout Standard
 The Speex library now includes an echo cancellation
 
 \begin_layout Standard
 The Speex library now includes an echo cancellation
-\begin_inset LatexCommand index
-name "echo cancellation"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+echo cancellation
+\end_layout
 
 \end_inset
 
  algorithm suitable for Acoustic Echo Cancellation
 
 \end_inset
 
  algorithm suitable for Acoustic Echo Cancellation
-\begin_inset LatexCommand index
-name "acoustic echo cancellation"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+acoustic echo cancellation
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -4061,7 +4450,7 @@ name "acoustic echo cancellation"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 #include <speex/speex_echo.h>
 \end_layout
 
 #include <speex/speex_echo.h>
 \end_layout
@@ -4080,7 +4469,7 @@ Then, an echo canceller state can be created by:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 SpeexEchoState *echo_state = speex_echo_state_init(frame_size, filter_length);
 \end_layout
 
 SpeexEchoState *echo_state = speex_echo_state_init(frame_size, filter_length);
 \end_layout
@@ -4105,8 +4494,12 @@ filter_length
 tail length
 \shape default
 
 tail length
 \shape default
 
-\begin_inset LatexCommand index
-name "tail length"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+tail length
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -4130,7 +4523,7 @@ Once the echo canceller state is created, audio can be processed by:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);
 \end_layout
 
 speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);
 \end_layout
@@ -4185,17 +4578,17 @@ lstparams "breaklines=true"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 write_to_soundcard(echo_frame, frame_size);
 \end_layout
 
 
 write_to_soundcard(echo_frame, frame_size);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 read_from_soundcard(input_frame, frame_size);
 \end_layout
 
 
 read_from_soundcard(input_frame, frame_size);
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);
 \end_layout
 
 speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);
 \end_layout
@@ -4208,7 +4601,8 @@ speex_echo_cancellation(echo_state, input_frame, echo_frame, output_frame);
 \begin_layout Standard
 If you wish to further reduce the echo present in the signal, you can do
  so by associating the echo canceller to the preprocessor (see Section 
 \begin_layout Standard
 If you wish to further reduce the echo present in the signal, you can do
  so by associating the echo canceller to the preprocessor (see Section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sub:Preprocessor"
 
 \end_inset
 reference "sub:Preprocessor"
 
 \end_inset
@@ -4220,7 +4614,7 @@ lstparams "breaklines=true"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_preprocess_ctl(preprocess_state, SPEEX_PREPROCESS_SET_ECHO_STATE,echo_stat
 e);
 
 speex_preprocess_ctl(preprocess_state, SPEEX_PREPROCESS_SET_ECHO_STATE,echo_stat
 e);
@@ -4249,7 +4643,7 @@ select()
 \emph default
  system call), it can be difficult to keep track of what input_frame comes
  with what echo_frame.
 \emph default
  system call), it can be difficult to keep track of what input_frame comes
  with what echo_frame.
- Instead, the playback comtext/thread can simply call:
+ Instead, the playback context/thread can simply call:
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
@@ -4257,7 +4651,7 @@ select()
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_echo_playback(echo_state, echo_frame);
 \end_layout
 
 speex_echo_playback(echo_state, echo_frame);
 \end_layout
@@ -4277,7 +4671,7 @@ every time an audio frame is played.
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_echo_capture(echo_state, input_frame, output_frame);
 \end_layout
 
 speex_echo_capture(echo_state, input_frame, output_frame);
 \end_layout
@@ -4320,7 +4714,7 @@ The echo cancellation state can be destroyed with:
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_echo_state_destroy(echo_state);
 \end_layout
 
 speex_echo_state_destroy(echo_state);
 \end_layout
@@ -4340,7 +4734,7 @@ It is also possible to reset the state of the echo canceller so it can be
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 speex_echo_state_reset(echo_state);
 \end_layout
 
 speex_echo_state_reset(echo_state);
 \end_layout
@@ -4406,7 +4800,11 @@ sees
 \end_layout
 
 \begin_layout Itemize
 \end_layout
 
 \begin_layout Itemize
-When it comes to echo tail length (filter length), longer is *not* better.
+When it comes to echo tail length (filter length), longer is 
+\series bold
+not
+\series default
+ better.
  Actually, the longer the tail length, the longer it takes for the filter
  to adapt.
  Of course, a tail length that is too short will not cancel enough echo,
  Actually, the longer the tail length, the longer it takes for the filter
  to adapt.
  Of course, a tail length that is too short will not cancel enough echo,
@@ -4429,7 +4827,7 @@ Echo Cancellation Demystified
 \begin_inset Foot
 status collapsed
 
 \begin_inset Foot
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 http://www.embeddedstar.com/articles/2003/7/article20030720-1.html
 \end_layout
 
 http://www.embeddedstar.com/articles/2003/7/article20030720-1.html
 \end_layout
 
@@ -4460,7 +4858,7 @@ lstparams "language=Matlab"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 echo_diagnostic('aec_rec.sw', 'aec_play.sw', 'aec_diagnostic.sw', 1024);
 \end_layout
 
 echo_diagnostic('aec_rec.sw', 'aec_play.sw', 'aec_diagnostic.sw', 1024);
 \end_layout
@@ -4489,7 +4887,7 @@ lstparams "breaklines=true"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 #include <speex/speex_jitter.h>
 \end_layout
 
 #include <speex/speex_jitter.h>
 \end_layout
@@ -4505,9 +4903,9 @@ lstparams "breaklines=true"
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
-JitterBuffer *state = jitter_buffer_init(tick);
+JitterBuffer *state = jitter_buffer_init(step);
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -4521,17 +4919,22 @@ where the
 inline true
 status collapsed
 
 inline true
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
-tick
+step
 \end_layout
 
 \end_inset
 
 \end_layout
 
 \end_inset
 
- argument is the time resolution (in timestamp units) used for the jitter
- buffer, and is generally the period at which the data is played out of
- the jitter buffer.
+ argument is the default time step (in timestamp units) used for adjusting
+ the delay and doing concealment.
+ A value of 1 is always correct, but higher values may be more convenient
+ sometimes.
+ For example, if you are only able to do concealment on 20ms frames, there
+ is no point in the jitter buffer asking you to do it on one sample.
+ Another example is that for video, it makes no sense to adjust the delay
+ by less than a full frame.
+ The value provided can always be changed at a later time.
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
@@ -4540,7 +4943,7 @@ The jitter buffer API is based on the
 inline true
 status open
 
 inline true
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 JitterBufferPacket
 \end_layout
 
 JitterBufferPacket
 \end_layout
@@ -4552,33 +4955,33 @@ JitterBufferPacket
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 typedef struct {
 \end_layout
 
 
 typedef struct {
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
    char        *data;       /* Data bytes contained in the packet */
 \end_layout
 
 
    char        *data;       /* Data bytes contained in the packet */
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
    spx_uint32_t len;        /* Length of the packet in bytes */
 \end_layout
 
 
    spx_uint32_t len;        /* Length of the packet in bytes */
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
    spx_uint32_t timestamp;  /* Timestamp for the packet */
 \end_layout
 
 
    spx_uint32_t timestamp;  /* Timestamp for the packet */
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
    spx_uint32_t span;       /* Time covered by the packet (timestamp units)
  */
 \end_layout
 
 
    spx_uint32_t span;       /* Time covered by the packet (timestamp units)
  */
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 } JitterBufferPacket; 
 \end_layout
 
 } JitterBufferPacket; 
 \end_layout
@@ -4589,22 +4992,31 @@ typedef struct {
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
+As an example, for audio the timestamp field would be what is obtained from
+ the RTP timestamp field and the span would be the number of samples that
+ are encoded in the packet.
+ For Speex narrowband, span would be 160 if only one frame is included in
+ the packet.
+\end_layout
+
+\begin_layout Standard
 When a packet arrives, it need to be inserter into the jitter buffer by:
 \begin_inset listings
 inline false
 status open
 
 When a packet arrives, it need to be inserter into the jitter buffer by:
 \begin_inset listings
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 JitterBufferPacket packet;
 \end_layout
 
 
 JitterBufferPacket packet;
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
-/* Fill in the packet fields */
+/* Fill in each field in the packet struct */
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 jitter_buffer_put(state, &packet);
 \end_layout
 
 jitter_buffer_put(state, &packet);
 \end_layout
@@ -4621,14 +5033,14 @@ When the decoder is ready to decode a packet the packet to be decoded can
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 int start_offset;
 \end_layout
 
 
 int start_offset;
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
-err = jitter_buffer_get(state, &packet, &start_offset);
+err = jitter_buffer_get(state, &packet, desired_span, &start_offset);
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -4642,7 +5054,7 @@ If
 inline true
 status open
 
 inline true
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 jitter_buffer_put()
 \end_layout
 
 jitter_buffer_put()
 \end_layout
@@ -4652,9 +5064,9 @@ jitter_buffer_put()
  and 
 \begin_inset listings
 inline true
  and 
 \begin_inset listings
 inline true
-status open
+status collapsed
 
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 jitter_buffer_get()
 \end_layout
 
 jitter_buffer_get()
 \end_layout
@@ -4677,7 +5089,7 @@ Because the jitter buffer is designed not to use an explicit timer, it needs
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 jitter_buffer_tick(state);
 \end_layout
 
 jitter_buffer_tick(state);
 \end_layout
@@ -4688,39 +5100,84 @@ jitter_buffer_tick(state);
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-This needs to be done every time 
+This needs to be done periodically in the playing thread.
+ This will be the last jitter buffer call before going to sleep (until more
+ data is played back).
+ In some cases, it may be preferable to use 
 \begin_inset listings
 \begin_inset listings
-inline true
-status collapsed
+inline false
+status open
 
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
-tick
+jitter_buffer_remaining_span(state, remaining);
 \end_layout
 
 \end_inset
 
 \end_layout
 
 \end_inset
 
- units have elapsed.
-\end_layout
 
 
-\begin_layout Section
-Resampler
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-Speex includes a resampling modules.
- To make use of the resampler, it is necessary to include its header file:
+The second argument is used to specify that we are still holding data that
+ has not been written to the playback device.
+ For instance, if 256 samples were needed by the soundcard (specified by
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+desired_span
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
+\end_inset
+
+), but 
 \begin_inset listings
 \begin_inset listings
-inline false
-status open
+inline true
+status collapsed
 
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
-#include <speex/speex_resampler.h>
+jitter_buffer_get()
+\end_layout
+
+\end_inset
+
+ returned 320 samples, we would have 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+remaining=64
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Resampler
+\end_layout
+
+\begin_layout Standard
+Speex includes a resampling modules.
+ To make use of the resampler, it is necessary to include its header file:
+\end_layout
+
+\begin_layout Standard
+\begin_inset listings
+inline false
+status open
+
+\begin_layout Plain Layout
+
+#include <speex/speex_resampler.h>
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -4738,12 +5195,12 @@ For each stream that is to be resampled, it is necessary to create a resampler
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 SpeexResamplerState *resampler;
 \end_layout
 
 
 SpeexResamplerState *resampler;
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 resampler = speex_resampler_init(nb_channels, input_rate, output_rate, quality,
  &err);
 
 resampler = speex_resampler_init(nb_channels, input_rate, output_rate, quality,
  &err);
@@ -4755,10 +5212,56 @@ resampler = speex_resampler_init(nb_channels, input_rate, output_rate, quality,
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-where nb_channels is the number of channels that will be used (either interleave
-d or non-interleaved), input_rate is the sampling rate of the input stream,
- output_rate is the sampling rate of the output stream and quality is the
- requested quality setting (0 to 10).
+where 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+nb_channels
+\end_layout
+
+\end_inset
+
+ is the number of channels that will be used (either interleaved or non-interlea
+ved), 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+input_rate
+\end_layout
+
+\end_inset
+
+ is the sampling rate of the input stream, 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+output_rate
+\end_layout
+
+\end_inset
+
+ is the sampling rate of the output stream and 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+quality
+\end_layout
+
+\end_inset
+
+ is the requested quality setting (0 to 10).
  The quality parameter is useful for controlling the quality/complexity/latency
  tradeoff.
  Using a higher quality setting means less noise/aliasing, a higher complexity
  The quality parameter is useful for controlling the quality/complexity/latency
  tradeoff.
  Using a higher quality setting means less noise/aliasing, a higher complexity
@@ -4778,7 +5281,7 @@ The actual resampling is performed using
 inline false
 status open
 
 inline false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 err = speex_resampler_process_int(resampler, channelID, in, &in_length,
  out, &out_length);
 
 err = speex_resampler_process_int(resampler, channelID, in, &in_length,
  out, &out_length);
@@ -4786,7 +5289,19 @@ err = speex_resampler_process_int(resampler, channelID, in, &in_length,
 
 \end_inset
 
 
 \end_inset
 
-where channelID is the ID of the channel to be processed.
+where 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+channelID
+\end_layout
+
+\end_inset
+
+ is the ID of the channel to be processed.
  For a mono stream, use 0.
  The 
 \emph on
  For a mono stream, use 0.
  The 
 \emph on
 \emph default
  pointer points to the first sample of the input buffer for the selected
  channel and 
 \emph default
  pointer points to the first sample of the input buffer for the selected
  channel and 
-\emph on
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
 out
 out
-\emph default
+\end_layout
+
+\end_inset
+
  points to the first sample of the output.
  The size of the input and output buffers are specified by 
  points to the first sample of the output.
  The size of the input and output buffers are specified by 
-\emph on
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
 in_length
 in_length
-\emph default
+\end_layout
+
+\end_inset
+
  and 
  and 
-\emph on
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
 out_length
 out_length
-\emph default
+\end_layout
+
+\end_inset
+
  respectively.
  Upon completion, these values are replaced by the number of samples read
  and written by the resampler.
  Unless an error occurs, either all input samples will be read or all output
  samples will be written to (or both).
  respectively.
  Upon completion, these values are replaced by the number of samples read
  and written by the resampler.
  Unless an error occurs, either all input samples will be read or all output
  samples will be written to (or both).
- For floating-point samples, the function speex_resampler_process_float()
+ For floating-point samples, the function 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+speex_resampler_process_float()
+\end_layout
+
+\end_inset
+
  behaves similarly.
 \end_layout
 
 \begin_layout Standard
 It is also possible to process multiple channels at once.
  behaves similarly.
 \end_layout
 
 \begin_layout Standard
 It is also possible to process multiple channels at once.
+ To do that, you can use speex_resampler_process_interleaved_int() or 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+speex_resampler_process_interleaved_float()
+\end_layout
+
+\end_inset
+
+.
+ The arguments are the same except that there is no 
+\begin_inset listings
+inline true
+status collapsed
+
+\begin_layout Plain Layout
+
+channelID
+\end_layout
+
+\end_inset
+
+ argument.
+ Note that the 
+\series bold
+length parameters are per-channel
+\series default
+.
+ So if you have 1024 samples for each of 4 channels, you pass 1024 and not
+ 4096.
+\end_layout
+
+\begin_layout Standard
+The resampler allows changing the quality and input/output sampling frequencies
+ on the fly without glitches.
+ This can be done with calls such as 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+speex_resampler_set_quality()
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+speex_resampler_set_rate()
+\end_layout
+
+\end_inset
+
+.
+ The only side effect is that a new filter will have to be recomputed, consuming
+ many CPU cycles.
+\end_layout
+
+\begin_layout Standard
+When resampling a file, it is often desirable to have the output file perfectly
+ synchronised with the input.
+ To do that, you need to call 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+speex_resampler_skip_zeros()
+\end_layout
+
+\end_inset
+
  
  
+\series bold
+before
+\series default
+ you start processing any samples.
+ For real-time applications (e.g.
+ VoIP), it is not recommended to do that as the first process frame will
+ be shorter to compensate for the delay (the skipped zeros).
+ To destroy a resampler state, just call 
+\begin_inset listings
+inline true
+status open
+
+\begin_layout Plain Layout
+
+speex_resampler_destroy()
+\end_layout
+
+\end_inset
+
+.
 \end_layout
 
 \begin_layout Section
 \end_layout
 
 \begin_layout Section
@@ -4825,24 +5478,40 @@ Ring Buffer
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-Put some stuff there...
+In some cases, it is necessary to interface components that use different
+ block sizes.
+ For example, it is possible that the soundcard does not support reading/writing
+ in blocks of 20
+\begin_inset space ~
+\end_inset
+
+ms or sometimes, complicated resampling ratios mean that the blocks don't
+ always have the same time.
+ In thoses cases, it is often necessary to buffer a bit of audio using a
+ ring buffer.
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
 
 
-\newpage
 
 \end_layout
 
 \begin_layout Chapter
 Formats and standards
 
 \end_layout
 
 \begin_layout Chapter
 Formats and standards
-\begin_inset LatexCommand index
-name "standards"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+standards
+\end_layout
 
 \end_inset
 
 
 
 \end_inset
 
 
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sec:Formats-and-standards"
 
 \end_inset
 name "sec:Formats-and-standards"
 
 \end_inset
@@ -4874,7 +5543,7 @@ At the minimum, all narrowband modes of operation MUST be supported at the
 \begin_inset Foot
 status collapsed
 
 \begin_inset Foot
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 The wideband bit-stream contains an embedded narrowband bit-stream which
  can be decoded alone
 \end_layout
 The wideband bit-stream contains an embedded narrowband bit-stream which
  can be decoded alone
 \end_layout
@@ -4897,8 +5566,12 @@ For encoders, at least one narrowband or wideband mode MUST be supported.
 
 \begin_layout Section
 RTP
 
 \begin_layout Section
 RTP
-\begin_inset LatexCommand index
-name "RTP"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+RTP
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -4907,14 +5580,20 @@ name "RTP"
 
 \begin_layout Standard
 The RTP payload draft is included in appendix 
 
 \begin_layout Standard
 The RTP payload draft is included in appendix 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:IETF-draft"
 
 \end_inset
 
  and the latest version is available at 
 reference "sec:IETF-draft"
 
 \end_inset
 
  and the latest version is available at 
-\begin_inset LatexCommand url
-target "http://www.speex.org/drafts/latest"
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.speex.org/drafts/latest
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -4939,8 +5618,12 @@ audio/speex
 
 \begin_layout Section
 Ogg
 
 \begin_layout Section
 Ogg
-\begin_inset LatexCommand index
-name "Ogg"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+Ogg
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -4951,7 +5634,8 @@ name "Ogg"
 Speex bit-streams can be stored in Ogg files.
  In this case, the first packet of the Ogg file contains the Speex header
  described in table 
 Speex bit-streams can be stored in Ogg files.
  In this case, the first packet of the Ogg file contains the Speex header
  described in table 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "cap:ogg_speex_header"
 
 \end_inset
 reference "cap:ogg_speex_header"
 
 \end_inset
@@ -4970,9 +5654,18 @@ speex_string
 \family typewriter
 Speex
 \family default
 \family typewriter
 Speex
 \family default
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
+
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
 
 \begin_inset Quotes erd
 \end_inset
 
 \begin_inset Quotes erd
 \end_inset
@@ -5049,11 +5742,11 @@ wide true
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -5066,43 +5759,43 @@ begin{center}
 \begin_inset Tabular
 <lyxtabular version="3" rows="16" columns="3">
 <features>
 \begin_inset Tabular
 <lyxtabular version="3" rows="16" columns="3">
 <features>
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" rightline="true" width="0pt">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Field
 \end_layout
 
 \end_inset
 </cell>
 Field
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Type
 \end_layout
 
 \end_inset
 </cell>
 Type
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Size
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Size
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 speex_string
 \end_layout
 
 speex_string
 \end_layout
 
@@ -5111,7 +5804,7 @@ speex_string
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 char[]
 \end_layout
 
 char[]
 \end_layout
 
@@ -5120,18 +5813,18 @@ char[]
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 8
 \end_layout
 
 \end_inset
 </cell>
 </row>
 8
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 speex_version
 \end_layout
 
 speex_version
 \end_layout
 
@@ -5140,7 +5833,7 @@ speex_version
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 char[]
 \end_layout
 
 char[]
 \end_layout
 
@@ -5149,18 +5842,18 @@ char[]
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 20
 \end_layout
 
 \end_inset
 </cell>
 </row>
 20
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 speex_version_id
 \end_layout
 
 speex_version_id
 \end_layout
 
@@ -5169,7 +5862,7 @@ speex_version_id
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5178,18 +5871,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 header_size
 \end_layout
 
 header_size
 \end_layout
 
@@ -5198,7 +5891,7 @@ header_size
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5207,18 +5900,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 rate
 \end_layout
 
 rate
 \end_layout
 
@@ -5227,7 +5920,7 @@ rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5236,18 +5929,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 mode
 \end_layout
 
 mode
 \end_layout
 
@@ -5256,7 +5949,7 @@ mode
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5265,18 +5958,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 mode_bitstream_version
 \end_layout
 
 mode_bitstream_version
 \end_layout
 
@@ -5285,7 +5978,7 @@ mode_bitstream_version
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5294,18 +5987,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 nb_channels
 \end_layout
 
 nb_channels
 \end_layout
 
@@ -5314,7 +6007,7 @@ nb_channels
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5323,18 +6016,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 bitrate
 \end_layout
 
 bitrate
 \end_layout
 
@@ -5343,7 +6036,7 @@ bitrate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5352,18 +6045,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 frame_size
 \end_layout
 
 frame_size
 \end_layout
 
@@ -5372,7 +6065,7 @@ frame_size
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5381,18 +6074,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 vbr
 \end_layout
 
 vbr
 \end_layout
 
@@ -5401,7 +6094,7 @@ vbr
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5410,18 +6103,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 frames_per_packet
 \end_layout
 
 frames_per_packet
 \end_layout
 
@@ -5430,7 +6123,7 @@ frames_per_packet
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5439,18 +6132,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 extra_headers
 \end_layout
 
 extra_headers
 \end_layout
 
@@ -5459,7 +6152,7 @@ extra_headers
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5468,18 +6161,18 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 reserved1
 \end_layout
 
 reserved1
 \end_layout
 
@@ -5488,7 +6181,7 @@ reserved1
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 int
 \end_layout
 
@@ -5497,36 +6190,36 @@ int
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 4
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 reserved2
 \end_layout
 
 \end_inset
 </cell>
 reserved2
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 int
 \end_layout
 
 \end_inset
 </cell>
 int
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -5541,7 +6234,7 @@ int
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -5553,12 +6246,13 @@ end{center}
 
 \end_layout
 
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset Caption
 
 \begin_inset Caption
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Ogg/Speex header packet
 Ogg/Speex header packet
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "cap:ogg_speex_header"
 
 \end_inset
 name "cap:ogg_speex_header"
 
 \end_inset
@@ -5580,7 +6274,7 @@ name "cap:ogg_speex_header"
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -5594,13 +6288,18 @@ clearpage
 
 \begin_layout Chapter
 Introduction to CELP Coding
 
 \begin_layout Chapter
 Introduction to CELP Coding
-\begin_inset LatexCommand index
-name "CELP"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+CELP
+\end_layout
 
 \end_inset
 
 
 
 \end_inset
 
 
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "sec:Introduction-to-CELP"
 
 \end_inset
 name "sec:Introduction-to-CELP"
 
 \end_inset
@@ -5620,7 +6319,8 @@ Do not meddle in the affairs of poles, for they are subtle and quick to
 Speex is based on CELP, which stands for Code Excited Linear Prediction.
  This section attempts to introduce the principles behind CELP, so if you
  are already familiar with CELP, you can safely skip to section 
 Speex is based on CELP, which stands for Code Excited Linear Prediction.
  This section attempts to introduce the principles behind CELP, so if you
  are already familiar with CELP, you can safely skip to section 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "sec:Speex-narrowband-mode"
 
 \end_inset
 reference "sec:Speex-narrowband-mode"
 
 \end_inset
@@ -5683,7 +6383,8 @@ The source-filter model of speech production assumes that the vocal cords
 The source-filter model is usually tied with the use of Linear prediction.
  The CELP model is based on source-filter model, as can be seen from the
  CELP decoder illustrated in Figure 
 The source-filter model is usually tied with the use of Linear prediction.
  The CELP model is based on source-filter model, as can be seen from the
  CELP decoder illustrated in Figure 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "fig:The-CELP-model"
 
 \end_inset
 reference "fig:The-CELP-model"
 
 \end_inset
@@ -5698,11 +6399,11 @@ wide false
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -5723,7 +6424,7 @@ begin{center}
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -5735,12 +6436,13 @@ end{center}
 
 \end_layout
 
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset Caption
 
 \begin_inset Caption
 
-\begin_layout Standard
+\begin_layout Plain Layout
 The CELP model of speech synthesis (decoder)
 The CELP model of speech synthesis (decoder)
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "fig:The-CELP-model"
 
 \end_inset
 name "fig:The-CELP-model"
 
 \end_inset
@@ -5759,9 +6461,13 @@ name "fig:The-CELP-model"
 \end_layout
 
 \begin_layout Section
 \end_layout
 
 \begin_layout Section
-Linear Prediction (LPC)
-\begin_inset LatexCommand index
-name "linear prediction"
+Linear Prediction Coefficients (LPC)
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+linear prediction
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -5869,8 +6575,12 @@ with
 \end_inset
 
 , the auto-correlation
 \end_inset
 
 , the auto-correlation
-\begin_inset LatexCommand index
-name "auto-correlation"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+auto-correlation
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -5896,8 +6606,12 @@ Because
 \end_inset
 
  is Hermitian Toeplitz, the Levinson-Durbin
 \end_inset
 
  is Hermitian Toeplitz, the Levinson-Durbin
-\begin_inset LatexCommand index
-name "Levinson-Durbin"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+Levinson-Durbin
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -5933,8 +6647,12 @@ name "Levinson-Durbin"
 
 \begin_layout Section
 Pitch Prediction
 
 \begin_layout Section
 Pitch Prediction
-\begin_inset LatexCommand index
-name "pitch"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+pitch
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -6035,14 +6753,22 @@ X(z)=\frac{C(z)}{A(z)\left(1-\beta z^{-T}\right)}\]
 
 \begin_layout Section
 Noise Weighting
 
 \begin_layout Section
 Noise Weighting
-\begin_inset LatexCommand index
-name "error weighting"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+error weighting
+\end_layout
 
 \end_inset
 
 
 
 \end_inset
 
 
-\begin_inset LatexCommand index
-name "analysis-by-synthesis"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+analysis-by-synthesis
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -6142,14 +6868,16 @@ The weighting filter is applied to the error signal used to optimize the
  function.
  Fig.
  
  function.
  Fig.
  
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "cap:Standard-noise-shaping"
 
 \end_inset
 
  illustrates the noise shaping that results from Eq.
  
 reference "cap:Standard-noise-shaping"
 
 \end_inset
 
  illustrates the noise shaping that results from Eq.
  
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "eq:gamma-weighting"
 
 \end_inset
 reference "eq:gamma-weighting"
 
 \end_inset
@@ -6172,11 +6900,11 @@ wide false
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -6197,7 +6925,7 @@ begin{center}
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -6209,13 +6937,14 @@ end{center}
 
 \end_layout
 
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset Caption
 
 \begin_inset Caption
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Standard noise shaping in CELP.
  Arbitrary y-axis offset.
 Standard noise shaping in CELP.
  Arbitrary y-axis offset.
-\begin_inset LatexCommand label
+\begin_inset CommandInset label
+LatexCommand label
 name "cap:Standard-noise-shaping"
 
 \end_inset
 name "cap:Standard-noise-shaping"
 
 \end_inset
@@ -6264,140 +6993,71 @@ In order to achieve real-time encoding using limited computing resources,
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-
-\newpage
-
-\end_layout
-
-\begin_layout Chapter
-Speex narrowband mode
-\begin_inset LatexCommand label
-name "sec:Speex-narrowband-mode"
-
-\end_inset
-
-
-\begin_inset LatexCommand index
-name "narrowband"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This section looks at how Speex works for narrowband (
-\begin_inset Formula $8\:\mathrm{kHz}$
-\end_inset
-
- sampling rate) operation.
- The frame size for this mode is 
-\begin_inset Formula $20\:\mathrm{ms}$
+\begin_inset Newpage newpage
 \end_inset
 
 \end_inset
 
-, corresponding to 160 samples.
- Each frame is also subdivided into 4 sub-frames of 40 samples each.
-\end_layout
-
-\begin_layout Standard
-Also many design decisions were based on the original goals and assumptions:
-\end_layout
-
-\begin_layout Itemize
-Minimizing the amount of information extracted from past frames (for robustness
- to packet loss)
-\end_layout
 
 
-\begin_layout Itemize
-Dynamically-selectable codebooks (LSP, pitch and innovation)
 \end_layout
 
 \end_layout
 
-\begin_layout Itemize
-sub-vector fixed (innovation) codebooks
+\begin_layout Chapter
+The Speex Decoder Specification
 \end_layout
 
 \begin_layout Section
 \end_layout
 
 \begin_layout Section
-Whole-Frame Analysis
-\begin_inset LatexCommand index
-name "linear prediction"
-
-\end_inset
-
-
+Narrowband decoder
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-In narrowband, Speex frames are 20 ms long (160 samples) and are subdivided
- in 4 sub-frames of 5 ms each (40 samples).
- For most narrowband bit-rates (8 kbps and above), the only parameters encoded
- at the frame level are the Line Spectral Pairs (LSP) and a global excitation
- gain 
-\begin_inset Formula $g_{frame}$
-\end_inset
-
-, as shown in Fig.
-\begin_inset LatexCommand ref
-reference "cap:Frame-open-loop-analysis"
-
-\end_inset
+<Insert decoder figure here>
+\end_layout
 
 
-.
- All other parameters are encoded at the sub-frame level.
+\begin_layout Subsection
+Narrowband modes
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-Linear prediction analysis is performed once per frame using an asymmetric
- Hamming window centered on the fourth sub-frame.
- Because linear prediction coefficients (LPC) are not robust to quantization,
- they are first are converted to line spectral pairs (LSP)
-\begin_inset LatexCommand index
-name "line spectral pair"
-
-\end_inset
-
-.
- The LSP's are considered to be associated to the 
-\begin_inset Formula $4^{th}$
-\end_inset
+There are 7 different narrowband bit-rates defined for Speex, ranging from
+ 250 bps to 24.6 kbps, although the modes below 5.9 kbps should not be used
+ for speech.
+ The bit-allocation for each mode is detailed in table 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "cap:bits-narrowband"
 
 
- sub-frames and the LSP's associated to the first 3 sub-frames are linearly
- interpolated using the current and previous LSP coefficients.
- The LSP coefficients and converted back to the LPC filter 
-\begin_inset Formula $\hat{A}(z)$
 \end_inset
 
 .
 \end_inset
 
 .
- The non-quantized interpolated filter is denoted 
-\begin_inset Formula $A(z)$
+ Each frame starts with the mode ID encoded with 4 bits which allows a range
+ from 0 to 15, though only the first 7 values are used (the others are reserved).
+ The parameters are listed in the table in the order they are packed in
+ the bit-stream.
+ All frame-based parameters are packed before sub-frame parameters.
+ The parameters for a certain sub-frame are all packed before the following
+ sub-frame is packed.
+ The 
+\begin_inset Quotes eld
 \end_inset
 
 \end_inset
 
- and can be used for the weighting filter 
-\begin_inset Formula $W(z)$
+OL
+\begin_inset Quotes erd
 \end_inset
 
 \end_inset
 
- because it does not need to be available to the decoder.
-\end_layout
-
-\begin_layout Standard
-To make Speex more robust to packet loss, no prediction is applied on the
- LSP coefficients prior to quantization.
- The LSPs are encoded using vector quantizatin (VQ) with 30 bits for higher
- quality modes and 18 bits for lower quality.
+ in the parameter description means that the parameter is an open loop estimatio
+n based on the whole frame.
 \end_layout
 
 \begin_layout Standard
 \end_layout
 
 \begin_layout Standard
-\begin_inset Float figure
-wide false
+\begin_inset Float table
+placement h
+wide true
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -6407,304 +7067,228 @@ begin{center}
 \end_inset
 
 
 \end_inset
 
 
-\begin_inset Graphics
-       filename speex_analysis.eps
-       width 35page%
+\begin_inset Tabular
+<lyxtabular version="3" rows="12" columns="11">
+<features>
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Parameter
+\end_layout
 
 \end_inset
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
+\begin_layout Plain Layout
+Update rate
+\end_layout
 
 
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-\backslash
-end{center}
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
-\begin_inset Caption
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-\begin_layout Standard
-Frame open-loop analysis
-\begin_inset LatexCommand label
-name "cap:Frame-open-loop-analysis"
+\begin_layout Plain Layout
+2
+\end_layout
 
 \end_inset
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+3
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_layout
 
-\begin_layout Section
-Sub-Frame Analysis-by-Synthesis
-\end_layout
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-\begin_layout Standard
-\begin_inset Float figure
-wide false
-sideways false
-status open
+\begin_layout Plain Layout
+6
+\end_layout
 
 
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-\begin_layout Standard
+\begin_layout Plain Layout
+7
+\end_layout
 
 
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
 
-\backslash
-begin{center}
+\begin_layout Plain Layout
+8
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
-\begin_inset Graphics
-       filename speex_abs.eps
-       lyxscale 75
-       width 40page%
+\begin_layout Plain Layout
+Wideband bit
+\end_layout
 
 \end_inset
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-end{center}
+\begin_layout Plain Layout
+frame
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Analysis-by-synthesis closed-loop optimization on a sub-frame.
-\begin_inset LatexCommand label
-name "cap:Sub-frame-AbS"
-
 \end_inset
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
-The analysis-by-synthesis (AbS) encoder loop is described in Fig.
-\begin_inset LatexCommand ref
-reference "cap:Sub-frame-AbS"
-
-\end_inset
-
-.
- There are three main aspects where Speex significantly differs from most
- other CELP codecs.
- First, while most recent CELP codecs make use of fractional pitch estimation
- with a single gain, Speex uses an integer to encode the pitch period, but
- uses a 3-tap predictor (3 gains).
- The adaptive codebook contribution 
-\begin_inset Formula $e_{a}[n]$
-\end_inset
-
- can thus be expressed as:
-\begin_inset Formula \begin{equation}
-e_{a}[n]=g_{0}e[n-T-1]+g_{1}e[n-T]+g_{2}e[n-T+1]\label{eq:adaptive-3tap}\end{equation}
-
-\end_inset
-
-where 
-\begin_inset Formula $g_{0}$
-\end_inset
-
-, 
-\begin_inset Formula $g_{1}$
-\end_inset
-
- and 
-\begin_inset Formula $g_{2}$
-\end_inset
-
- are the jointly quantized pitch gains and 
-\begin_inset Formula $e[n]$
-\end_inset
-
- is the codec excitation memory.
- It is worth noting that when the pitch is smaller than the sub-frame size,
- we repeat the excitation at a period 
-\begin_inset Formula $T$
-\end_inset
-
-.
- For example, when 
-\begin_inset Formula $n-T+1\geq0$
-\end_inset
-
-, we use 
-\begin_inset Formula $n-2T+1$
-\end_inset
-
- instead.
- In most modes, the pitch period is encoded with 7 bits in the 
-\begin_inset Formula $\left[17,144\right]$
-\end_inset
-
- range and the 
-\begin_inset Formula $\beta_{i}$
 \end_inset
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
- coefficients are vector-quantized using 7 bits at higher bit-rates (15
- kbps narrowband and above) and 5 bits at lower bit-rates (11 kbps narrowband
- and below).
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
-Many current CELP codecs use moving average (MA) prediction to encode the
- fixed codebook gain.
- This provides slightly better coding at the expense of introducing a dependency
- on previously encoded frames.
- A second difference is that Speex encodes the fixed codebook gain as the
- product of the global excitation gain 
-\begin_inset Formula $g_{frame}$
 \end_inset
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
- with a sub-frame gain corrections 
-\begin_inset Formula $g_{subf}$
-\end_inset
-
-.
- This increases robustness to packet loss by eliminating the inter-frame
- dependency.
- The sub-frame gain correction is encoded before the fixed codebook is searched
- (not closed-loop optimized) and uses between 0 and 3 bits per sub-frame,
- depending on the bit-rate.
-\end_layout
-
-\begin_layout Standard
-The third difference is that Speex uses sub-vector quantization of the innovatio
-n (fixed codebook) signal instead of an algebraic codebook.
- Each sub-frame is divided into sub-vectors of lengths ranging between 5
- and 20 samples.
- Each sub-vector is chosen from a bitrate-dependent codebook and all sub-vectors
- are concatenated to form a sub-frame.
- As an example, the 3.95 kbps mode uses a sub-vector size of 20 samples with
- 32 entries in the codebook (5 bits).
- This means that the innovation is encoded with 10 bits per sub-frame, or
- 2000 bps.
- On the other hand, the 18.2 kbps mode uses a sub-vector size of 5 samples
- with 256 entries in the codebook (8 bits), so the innovation uses 64 bits
- per sub-frame, or 12800 bps.
-\end_layout
-
-\begin_layout Section
-Bit allocation
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
-There are 7 different narrowband bit-rates defined for Speex, ranging from
- 250 bps to 24.6 kbps, although the modes below 5.9 kbps should not be used
- for speech.
- The bit-allocation for each mode is detailed in table 
-\begin_inset LatexCommand ref
-reference "cap:bits-narrowband"
-
 \end_inset
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
-.
- Each frame starts with the mode ID encoded with 4 bits which allows a range
- from 0 to 15, though only the first 7 values are used (the others are reserved).
- The parameters are listed in the table in the order they are packed in
- the bit-stream.
- All frame-based parameters are packed before sub-frame parameters.
- The parameters for a certain sub-frame are all packed before the following
- sub-frame is packed.
- Note that the 
-\begin_inset Quotes eld
-\end_inset
+\begin_layout Plain Layout
+1
+\end_layout
 
 
-OL
-\begin_inset Quotes erd
 \end_inset
 \end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
 
 
- in the parameter description means that the parameter is an open loop estimatio
-n based on the whole frame.
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_layout
 
-\begin_layout Standard
-\begin_inset Float table
-placement h
-wide true
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
 
 
-\backslash
-begin{center}
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="12" columns="11">
-<features>
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" rightline="true" width="0pt">
-<row topline="true" bottomline="true">
+</cell>
+</row>
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-Parameter
+\begin_layout Plain Layout
+Mode ID
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6712,8 +7296,8 @@ Parameter
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-Update rate
+\begin_layout Plain Layout
+frame
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6721,8 +7305,8 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6730,8 +7314,8 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6739,8 +7323,8 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-2
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6748,8 +7332,8 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-3
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6757,7 +7341,7 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -6766,26 +7350,26 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-6
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6793,19 +7377,19 @@ Update rate
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-8
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-Wideband bit
+\begin_layout Plain Layout
+LSP
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6813,7 +7397,7 @@ Wideband bit
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 frame
 \end_layout
 
 frame
 \end_layout
 
@@ -6822,8 +7406,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6831,8 +7415,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+18
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6840,8 +7424,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+18
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6849,8 +7433,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+18
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6858,8 +7442,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+18
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6867,26 +7451,26 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+30
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+30
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+30
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6894,19 +7478,19 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+18
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-Mode ID
+\begin_layout Plain Layout
+OL pitch
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6914,7 +7498,7 @@ Mode ID
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 frame
 \end_layout
 
 frame
 \end_layout
 
@@ -6923,8 +7507,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6932,8 +7516,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6941,8 +7525,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6950,8 +7534,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6959,8 +7543,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6968,26 +7552,26 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -6995,19 +7579,19 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-LSP
+\begin_layout Plain Layout
+OL pitch gain
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7015,7 +7599,7 @@ LSP
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 frame
 \end_layout
 
 frame
 \end_layout
 
@@ -7024,7 +7608,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7033,8 +7617,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-18
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7042,8 +7626,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-18
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7051,8 +7635,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-18
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7060,8 +7644,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-18
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7069,26 +7653,26 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-30
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-30
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-30
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7096,19 +7680,19 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-18
+\begin_layout Plain Layout
+4
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-OL pitch
+\begin_layout Plain Layout
+OL Exc gain
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7116,7 +7700,7 @@ OL pitch
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 frame
 \end_layout
 
 frame
 \end_layout
 
@@ -7125,7 +7709,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7134,8 +7718,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7143,8 +7727,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7152,8 +7736,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7161,8 +7745,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7170,26 +7754,26 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7197,19 +7781,19 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-OL pitch gain
+\begin_layout Plain Layout
+Fine pitch
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7217,8 +7801,8 @@ OL pitch gain
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-frame
+\begin_layout Plain Layout
+sub-frame
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7226,7 +7810,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7235,8 +7819,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7244,7 +7828,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7253,8 +7837,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7262,8 +7846,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7271,26 +7855,26 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7298,19 +7882,19 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-4
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-OL Exc gain
+\begin_layout Plain Layout
+Pitch gain
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7318,8 +7902,8 @@ OL Exc gain
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-frame
+\begin_layout Plain Layout
+sub-frame
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7327,7 +7911,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7336,8 +7920,8 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7345,7 +7929,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5
 \end_layout
 
 5
 \end_layout
 
@@ -7354,7 +7938,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5
 \end_layout
 
 5
 \end_layout
 
@@ -7363,7 +7947,7 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5
 \end_layout
 
 5
 \end_layout
 
@@ -7372,26 +7956,26 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+7
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7399,19 +7983,19 @@ frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+0
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-Fine pitch
+\begin_layout Plain Layout
+Innovation gain
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7419,7 +8003,7 @@ Fine pitch
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 sub-frame
 \end_layout
 
 sub-frame
 \end_layout
 
@@ -7428,7 +8012,7 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7437,8 +8021,8 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7446,7 +8030,7 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -7455,8 +8039,8 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7464,8 +8048,8 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+1
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7473,26 +8057,26 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+3
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+3
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+3
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
@@ -7500,476 +8084,762 @@ sub-frame
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 \end_inset
 </cell>
 </row>
 0
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-Pitch gain
+\begin_layout Plain Layout
+Innovation VQ
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 sub-frame
 \end_layout
 
 \end_inset
 </cell>
 sub-frame
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 \end_inset
 </cell>
 0
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 \end_inset
 </cell>
 0
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+16
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+20
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-5
+\begin_layout Plain Layout
+35
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+48
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+64
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-7
+\begin_layout Plain Layout
+96
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+10
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-Innovation gain
+\begin_layout Plain Layout
+Total
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-sub-frame
+\begin_layout Plain Layout
+frame
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+5
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+43
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+119
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+160
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-1
+\begin_layout Plain Layout
+220
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-3
+\begin_layout Plain Layout
+300
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-3
+\begin_layout Plain Layout
+364
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-3
+\begin_layout Plain Layout
+492
 \end_layout
 
 \end_inset
 </cell>
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
-0
+\begin_layout Plain Layout
+79
 \end_layout
 
 \end_inset
 </cell>
 </row>
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
+</lyxtabular>
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{center}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Bit allocation for narrowband modes
+\begin_inset CommandInset label
+LatexCommand label
+name "cap:bits-narrowband"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+LSP decoding
+\end_layout
 
 \begin_layout Standard
 
 \begin_layout Standard
-Innovation VQ
+Depending on the mode, LSP parameters are encoded using either 18 bits or
+ 30 bits.
 \end_layout
 
 \end_layout
 
+\begin_layout Standard
+Interpolation
+\end_layout
+
+\begin_layout Standard
+Safe margin
+\end_layout
+
+\begin_layout Subsection
+Adaptive codebook
+\end_layout
+
+\begin_layout Standard
+For rates of 8 kbit/s and above, the pitch period is encoded for each subframe.
+ The real period is 
+\begin_inset Formula $T=p_{i}+17$
 \end_inset
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
+
+ where 
+\begin_inset Formula $p_{i}$
+\end_inset
+
+ is a value encoded with 7 bits and 17 corresponds to the minimum pitch.
+ The maximum period is 144.
+ At 5.95 kbit/s (mode 2), the pitch period is similarly encoded, but only
+ once for the frame.
+ Each sub-frame then has a 2-bit offset that is added to the pitch value
+ of the frame.
+ In that case, the pitch for each sub-frame is equal to 
+\begin_inset Formula $T-1+offset$
+\end_inset
+
+.
+ For rates below 5.95 kbit/s, only the per-frame pitch is used and the pitch
+ is constant for all sub-frames.
+\end_layout
 
 \begin_layout Standard
 
 \begin_layout Standard
-sub-frame
+Speex uses a 3-tap predictor for rates of 5.95 kbit/s and above.
+ The three gain values are obtained from a 5-bit or a 7-bit codebook, depending
+ on the mode.
+  
 \end_layout
 
 \end_layout
 
+\begin_layout Subsection
+Innovation codebook
+\end_layout
+
+\begin_layout Standard
+Split codebook, size and entries depend on bit-rate
+\end_layout
+
+\begin_layout Standard
+a 5-bit gain is encoder on a per-frame basis
+\end_layout
+
+\begin_layout Standard
+Depending on the mode, higher resolution per sub-frame
+\end_layout
+
+\begin_layout Standard
+innovation sub-vectors concatenated, gain applied
+\end_layout
+
+\begin_layout Subsection
+Perceptual enhancement
+\end_layout
+
+\begin_layout Standard
+Optional, implementation-defined.
+\end_layout
+
+\begin_layout Section
+Wideband embedded decoder
+\end_layout
+
+\begin_layout Standard
+QMF filter.
+ Narrowband signal decoded using narrowband decoder
+\end_layout
+
+\begin_layout Standard
+For the high band, the decoder is similar to the narrowband decoder, with
+ the main difference being that there is no adaptive codebook.
+\end_layout
+
+\begin_layout Standard
+Gain is per-subframe
+\end_layout
+
+\begin_layout Chapter
+Speex narrowband mode
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:Speex-narrowband-mode"
+
 \end_inset
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
+
+
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+narrowband
+\end_layout
+
+\end_inset
+
+
+\end_layout
 
 \begin_layout Standard
 
 \begin_layout Standard
-0
+This section looks at how Speex works for narrowband (
+\begin_inset Formula $8\:\mathrm{kHz}$
+\end_inset
+
+ sampling rate) operation.
+ The frame size for this mode is 
+\begin_inset Formula $20\:\mathrm{ms}$
+\end_inset
+
+, corresponding to 160 samples.
+ Each frame is also subdivided into 4 sub-frames of 40 samples each.
+\end_layout
+
+\begin_layout Standard
+Also many design decisions were based on the original goals and assumptions:
+\end_layout
+
+\begin_layout Itemize
+Minimizing the amount of information extracted from past frames (for robustness
+ to packet loss)
+\end_layout
+
+\begin_layout Itemize
+Dynamically-selectable codebooks (LSP, pitch and innovation)
+\end_layout
+
+\begin_layout Itemize
+sub-vector fixed (innovation) codebooks
+\end_layout
+
+\begin_layout Section
+Whole-Frame Analysis
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+linear prediction
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-0
+
+\end_layout
+
+\begin_layout Standard
+In narrowband, Speex frames are 20 ms long (160 samples) and are subdivided
+ in 4 sub-frames of 5 ms each (40 samples).
+ For most narrowband bit-rates (8 kbps and above), the only parameters encoded
+ at the frame level are the Line Spectral Pairs (LSP) and a global excitation
+ gain 
+\begin_inset Formula $g_{frame}$
+\end_inset
+
+, as shown in Fig.
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "cap:Frame-open-loop-analysis"
+
+\end_inset
+
+.
+ All other parameters are encoded at the sub-frame level.
+\end_layout
+
+\begin_layout Standard
+Linear prediction analysis is performed once per frame using an asymmetric
+ Hamming window centered on the fourth sub-frame.
+ Because linear prediction coefficients (LPC) are not robust to quantization,
+ they are first converted to line spectral pairs (LSP)
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+line spectral pair
+\end_layout
+
+\end_inset
+
+.
+ The LSP's are considered to be associated to the 
+\begin_inset Formula $4^{th}$
+\end_inset
+
+ sub-frames and the LSP's associated to the first 3 sub-frames are linearly
+ interpolated using the current and previous LSP coefficients.
+ The LSP coefficients and converted back to the LPC filter 
+\begin_inset Formula $\hat{A}(z)$
+\end_inset
+
+.
+ The non-quantized interpolated filter is denoted 
+\begin_inset Formula $A(z)$
+\end_inset
+
+ and can be used for the weighting filter 
+\begin_inset Formula $W(z)$
+\end_inset
+
+ because it does not need to be available to the decoder.
+\end_layout
+
+\begin_layout Standard
+To make Speex more robust to packet loss, no prediction is applied on the
+ LSP coefficients prior to quantization.
+ The LSPs are encoded using vector quantization (VQ) with 30 bits for higher
+ quality modes and 18 bits for lower quality.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{center}
+\end_layout
+
+\end_inset
+
+
+\begin_inset Graphics
+       filename speex_analysis.eps
+       width 35page%
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{center}
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-16
+
 \end_layout
 
 \end_layout
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
+\begin_layout Plain Layout
+\begin_inset Caption
 
 
-\begin_layout Standard
-20
-\end_layout
+\begin_layout Plain Layout
+Frame open-loop analysis
+\begin_inset CommandInset label
+LatexCommand label
+name "cap:Frame-open-loop-analysis"
 
 \end_inset
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-35
+
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-48
+
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-64
+
 \end_layout
 
 \end_layout
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
+\begin_layout Section
+Sub-Frame Analysis-by-Synthesis
+\end_layout
 
 \begin_layout Standard
 
 \begin_layout Standard
-96
-\end_layout
+\begin_inset Float figure
+wide false
+sideways false
+status open
 
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
+\begin_layout Plain Layout
+\begin_inset ERT
+status collapsed
 
 
-\begin_layout Standard
-10
-\end_layout
+\begin_layout Plain Layout
 
 
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-Total
+\backslash
+begin{center}
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-frame
-\end_layout
+
+\begin_inset Graphics
+       filename speex_abs.eps
+       lyxscale 75
+       width 40page%
 
 \end_inset
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-5
-\end_layout
 
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
+\begin_inset ERT
+status collapsed
 
 
-\begin_layout Standard
-43
-\end_layout
+\begin_layout Plain Layout
 
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-119
+\backslash
+end{center}
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-160
+
 \end_layout
 
 \end_layout
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
+\begin_layout Plain Layout
+\begin_inset Caption
 
 
-\begin_layout Standard
-220
-\end_layout
+\begin_layout Plain Layout
+Analysis-by-synthesis closed-loop optimization on a sub-frame.
+\begin_inset CommandInset label
+LatexCommand label
+name "cap:Sub-frame-AbS"
 
 \end_inset
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-300
+
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-364
+
 \end_layout
 
 \end_inset
 \end_layout
 
 \end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
 
 
-\begin_layout Standard
-492
-\end_layout
 
 
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
+\end_layout
 
 \begin_layout Standard
 
 \begin_layout Standard
-79
-\end_layout
+The analysis-by-synthesis (AbS) encoder loop is described in Fig.
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "cap:Sub-frame-AbS"
 
 \end_inset
 
 \end_inset
-</cell>
-</row>
-</lyxtabular>
 
 
+.
+ There are three main aspects where Speex significantly differs from most
+ other CELP codecs.
+ First, while most recent CELP codecs make use of fractional pitch estimation
+ with a single gain, Speex uses an integer to encode the pitch period, but
+ uses a 3-tap predictor (3 gains).
+ The adaptive codebook contribution 
+\begin_inset Formula $e_{a}[n]$
 \end_inset
 
 \end_inset
 
+ can thus be expressed as:
+\begin_inset Formula \begin{equation}
+e_{a}[n]=g_{0}e[n-T-1]+g_{1}e[n-T]+g_{2}e[n-T+1]\label{eq:adaptive-3tap}\end{equation}
 
 
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
+\end_inset
 
 
+where 
+\begin_inset Formula $g_{0}$
+\end_inset
 
 
-\backslash
-end{center}
-\end_layout
+, 
+\begin_inset Formula $g_{1}$
+\end_inset
 
 
+ and 
+\begin_inset Formula $g_{2}$
 \end_inset
 
 \end_inset
 
+ are the jointly quantized pitch gains and 
+\begin_inset Formula $e[n]$
+\end_inset
 
 
-\end_layout
+ is the codec excitation memory.
+ It is worth noting that when the pitch is smaller than the sub-frame size,
+ we repeat the excitation at a period 
+\begin_inset Formula $T$
+\end_inset
 
 
-\begin_layout Standard
-\begin_inset Caption
+.
+ For example, when 
+\begin_inset Formula $n-T+1\geq0$
+\end_inset
 
 
-\begin_layout Standard
-Bit allocation for narrowband modes
-\begin_inset LatexCommand label
-name "cap:bits-narrowband"
+, we use 
+\begin_inset Formula $n-2T+1$
+\end_inset
 
 
+ instead.
+ In most modes, the pitch period is encoded with 7 bits in the 
+\begin_inset Formula $\left[17,144\right]$
 \end_inset
 
 \end_inset
 
+ range and the 
+\begin_inset Formula $\beta_{i}$
+\end_inset
 
 
+ coefficients are vector-quantized using 7 bits at higher bit-rates (15
+ kbps narrowband and above) and 5 bits at lower bit-rates (11 kbps narrowband
+ and below).
 \end_layout
 
 \end_layout
 
+\begin_layout Standard
+Many current CELP codecs use moving average (MA) prediction to encode the
+ fixed codebook gain.
+ This provides slightly better coding at the expense of introducing a dependency
+ on previously encoded frames.
+ A second difference is that Speex encodes the fixed codebook gain as the
+ product of the global excitation gain 
+\begin_inset Formula $g_{frame}$
 \end_inset
 
 \end_inset
 
+ with a sub-frame gain corrections 
+\begin_inset Formula $g_{subf}$
+\end_inset
 
 
+.
+ This increases robustness to packet loss by eliminating the inter-frame
+ dependency.
+ The sub-frame gain correction is encoded before the fixed codebook is searched
+ (not closed-loop optimized) and uses between 0 and 3 bits per sub-frame,
+ depending on the bit-rate.
 \end_layout
 
 \end_layout
 
-\end_inset
-
+\begin_layout Standard
+The third difference is that Speex uses sub-vector quantization of the innovatio
+n (fixed codebook) signal instead of an algebraic codebook.
+ Each sub-frame is divided into sub-vectors of lengths ranging between 5
+ and 20 samples.
+ Each sub-vector is chosen from a bitrate-dependent codebook and all sub-vectors
+ are concatenated to form a sub-frame.
+ As an example, the 3.95 kbps mode uses a sub-vector size of 20 samples with
+ 32 entries in the codebook (5 bits).
+ This means that the innovation is encoded with 10 bits per sub-frame, or
+ 2000 bps.
+ On the other hand, the 18.2 kbps mode uses a sub-vector size of 5 samples
+ with 256 entries in the codebook (8 bits), so the innovation uses 64 bits
+ per sub-frame, or 12800 bps.
+\end_layout
 
 
+\begin_layout Section
+Bit-rates
 \end_layout
 
 \begin_layout Standard
 So far, no MOS (Mean Opinion Score
 \end_layout
 
 \begin_layout Standard
 So far, no MOS (Mean Opinion Score
-\begin_inset LatexCommand index
-name "mean opinion score"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+mean opinion score
+\end_layout
 
 \end_inset
 
 ) subjective evaluation has been performed for Speex.
  In order to give an idea of the quality achievable with it, table 
 
 \end_inset
 
 ) subjective evaluation has been performed for Speex.
  In order to give an idea of the quality achievable with it, table 
-\begin_inset LatexCommand ref
+\begin_inset CommandInset ref
+LatexCommand ref
 reference "cap:quality_vs_bps"
 
 \end_inset
 
  presents my own subjective opinion on it.
 reference "cap:quality_vs_bps"
 
 \end_inset
 
  presents my own subjective opinion on it.
- It sould be noted that different people will perceive the quality differently
+ It should be noted that different people will perceive the quality differently
  and that the person that designed the codec often has a bias (one way or
  another) when it comes to subjective evaluation.
  Last thing, it should be noted that for most codecs (including Speex) encoding
  and that the person that designed the codec often has a bias (one way or
  another) when it comes to subjective evaluation.
  Last thing, it should be noted that for most codecs (including Speex) encoding
@@ -7977,8 +8847,12 @@ reference "cap:quality_vs_bps"
  Note that the complexity is only approximate (within 0.5 mflops and using
  the lowest complexity setting).
  Decoding requires approximately 0.5 mflops
  Note that the complexity is only approximate (within 0.5 mflops and using
  the lowest complexity setting).
  Decoding requires approximately 0.5 mflops
-\begin_inset LatexCommand index
-name "complexity"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+complexity
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -7992,11 +8866,11 @@ wide true
 sideways false
 status open
 
 sideways false
 status open
 
-\begin_layout Standard
+\begin_layout Plain Layout
 \begin_inset ERT
 status collapsed
 
 \begin_inset ERT
 status collapsed
 
-\begin_layout Standard
+\begin_layout Plain Layout
 
 
 \backslash
 
 
 \backslash
@@ -8009,37 +8883,41 @@ begin{center}
 \begin_inset Tabular
 <lyxtabular version="3" rows="17" columns="5">
 <features>
 \begin_inset Tabular
 <lyxtabular version="3" rows="17" columns="5">
 <features>
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" width="0pt">
-<column alignment="center" valignment="top" leftline="true" rightline="true" width="0pt">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<column alignment="center" valignment="top" width="0pt">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Mode
 \end_layout
 
 \end_inset
 </cell>
 Mode
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Quality
 \end_layout
 
 \end_inset
 </cell>
 Quality
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Bit-rate
 Bit-rate
-\begin_inset LatexCommand index
-name "bit-rate"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+bit-rate
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -8048,13 +8926,17 @@ name "bit-rate"
 
 \end_inset
 </cell>
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 mflops
 mflops
-\begin_inset LatexCommand index
-name "complexity"
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+complexity
+\end_layout
 
 \end_inset
 
 
 \end_inset
 
@@ -8063,21 +8945,21 @@ name "complexity"
 
 \end_inset
 </cell>
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Quality/description
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Quality/description
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -8086,7 +8968,7 @@ Quality/description
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 -
 \end_layout
 
 -
 \end_layout
 
@@ -8095,7 +8977,7 @@ Quality/description
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 250
 \end_layout
 
 250
 \end_layout
 
@@ -8104,7 +8986,7 @@ Quality/description
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -8113,18 +8995,18 @@ Quality/description
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 No transmission (DTX)
 \end_layout
 
 \end_inset
 </cell>
 </row>
 No transmission (DTX)
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 1
 \end_layout
 
 1
 \end_layout
 
@@ -8133,7 +9015,7 @@ No transmission (DTX)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 0
 \end_layout
 
 0
 \end_layout
 
@@ -8142,7 +9024,7 @@ No transmission (DTX)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 2,150
 \end_layout
 
 2,150
 \end_layout
 
@@ -8151,7 +9033,7 @@ No transmission (DTX)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 6
 \end_layout
 
 6
 \end_layout
 
@@ -8160,18 +9042,18 @@ No transmission (DTX)
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Vocoder (mostly for comfort noise)
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Vocoder (mostly for comfort noise)
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 2
 \end_layout
 
 2
 \end_layout
 
@@ -8180,7 +9062,7 @@ Vocoder (mostly for comfort noise)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 2
 \end_layout
 
 2
 \end_layout
 
@@ -8189,7 +9071,7 @@ Vocoder (mostly for comfort noise)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5,950
 \end_layout
 
 5,950
 \end_layout
 
@@ -8198,7 +9080,7 @@ Vocoder (mostly for comfort noise)
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 9
 \end_layout
 
 9
 \end_layout
 
@@ -8207,18 +9089,18 @@ Vocoder (mostly for comfort noise)
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Very noticeable artifacts/noise, good intelligibility
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Very noticeable artifacts/noise, good intelligibility
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 3
 \end_layout
 
 3
 \end_layout
 
@@ -8227,7 +9109,7 @@ Very noticeable artifacts/noise, good intelligibility
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 3-4
 \end_layout
 
 3-4
 \end_layout
 
@@ -8236,7 +9118,7 @@ Very noticeable artifacts/noise, good intelligibility
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 8,000
 \end_layout
 
 8,000
 \end_layout
 
@@ -8245,7 +9127,7 @@ Very noticeable artifacts/noise, good intelligibility
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 10
 \end_layout
 
 10
 \end_layout
 
@@ -8254,18 +9136,18 @@ Very noticeable artifacts/noise, good intelligibility
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Artifacts/noise sometimes noticeable
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Artifacts/noise sometimes noticeable
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 4
 \end_layout
 
 4
 \end_layout
 
@@ -8274,7 +9156,7 @@ Artifacts/noise sometimes noticeable
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5-6
 \end_layout
 
 5-6
 \end_layout
 
@@ -8283,7 +9165,7 @@ Artifacts/noise sometimes noticeable
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 11,000
 \end_layout
 
 11,000
 \end_layout
 
@@ -8292,7 +9174,7 @@ Artifacts/noise sometimes noticeable
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 14
 \end_layout
 
 14
 \end_layout
 
@@ -8301,18 +9183,18 @@ Artifacts/noise sometimes noticeable
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Artifacts usually noticeable only with headphones
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Artifacts usually noticeable only with headphones
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 5
 \end_layout
 
 5
 \end_layout
 
@@ -8321,7 +9203,7 @@ Artifacts usually noticeable only with headphones
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 7-8
 \end_layout
 
 7-8
 \end_layout
 
@@ -8330,7 +9212,7 @@ Artifacts usually noticeable only with headphones
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 15,000
 \end_layout
 
 15,000
 \end_layout
 
@@ -8339,7 +9221,7 @@ Artifacts usually noticeable only with headphones
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 11
 \end_layout
 
 11
 \end_layout
 
@@ -8348,18 +9230,18 @@ Artifacts usually noticeable only with headphones
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 Need good headphones to tell the difference
 \end_layout
 
 \end_inset
 </cell>
 </row>
 Need good headphones to tell the difference
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true">
+<row>
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
-\begin_layout Standard
+\begin_layout Plain Layout
 6
 \end_layout