diff options
author | Monty <xiphmont@xiph.org> | 2015-02-27 21:35:42 +0000 |
---|---|---|
committer | Monty <xiphmont@xiph.org> | 2015-02-27 21:35:42 +0000 |
commit | c4bfbb911ece8983bb71e4cd7219415743330330 (patch) | |
tree | 28e78f0b30aed719f2d638daf87f7d1e5a8a4484 | |
parent | ee8669c0e07521d9abbca233996a8b2164b0185e (diff) | |
download | libvorbis-git-c4bfbb911ece8983bb71e4cd7219415743330330.tar.gz |
Errata to correct typo in bark equation in 6.2.5 of spec; the last
paren was misplaced. The error apparently appeared when resetting the
doc to XML or DocBook. Note that lspmap.png was erroneously updated
to reflect the typo in r8547 and so it's been wrong since then too.
The original HTML spec was correct (as is the code).
Also remove the associated rendered versions of the typeset equations
as they're no longer used (and lspmap.png was incorrect as described
above anyway)
svn path=/trunk/vorbis/; revision=19450
-rw-r--r-- | doc/06-floor0.tex | 14 | ||||
-rw-r--r-- | doc/Makefile.am | 3 | ||||
-rw-r--r-- | doc/Vorbis_I_spec.html | 1188 | ||||
-rw-r--r-- | doc/Vorbis_I_spec.pdf | bin | 417933 -> 418532 bytes | |||
-rw-r--r-- | doc/evenlsp.png | bin | 2540 -> 0 bytes | |||
-rw-r--r-- | doc/oddlsp.png | bin | 1928 -> 0 bytes |
6 files changed, 615 insertions, 590 deletions
diff --git a/doc/06-floor0.tex b/doc/06-floor0.tex index cad70047..954f786a 100644 --- a/doc/06-floor0.tex +++ b/doc/06-floor0.tex @@ -139,7 +139,7 @@ synthesized: and \begin{displaymath} - \mathrm{bark}(x) = 13.1 \arctan (.00074x) + 2.24 \arctan (.0000000185x^2 + .0001x) + \mathrm{bark}(x) = 13.1 \arctan (.00074x) + 2.24 \arctan (.0000000185x^2) + .0001x \end{displaymath} The above is used to synthesize the LSP curve on a Bark-scale frequency @@ -184,9 +184,19 @@ Similarly, the below calculation synthesizes the output LSP curve \varname{[outp \item done \end{enumerate} +\paragraph{Errata 20150227: Bark scale computation} +Due to a typo when typesetting this version of the specification from the original HTML document, the Bark scale computation previously erroneously read: + \begin{displaymath} + \hbox{\sout{$ + \mathrm{bark}(x) = 13.1 \arctan (.00074x) + 2.24 \arctan (.0000000185x^2 + .0001x) + $}} + \end{displaymath} +Note that the last parenthesis is misplaced. This document now uses the correct equation as it appeared in the original HTML spec document: - + \begin{displaymath} + \mathrm{bark}(x) = 13.1 \arctan (.00074x) + 2.24 \arctan (.0000000185x^2) + .0001x + \end{displaymath} diff --git a/doc/Makefile.am b/doc/Makefile.am index 970b619a..cfc9bbca 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -9,7 +9,6 @@ static_docs = \ rfc5215.xml \ rfc5215.txt \ eightphase.png \ - evenlsp.png \ fish_xiph_org.png \ floor1_inverse_dB_table.html \ floorval.png \ @@ -17,8 +16,6 @@ static_docs = \ framing.html \ helper.html \ index.html \ - lspmap.png \ - oddlsp.png \ oggstream.html \ programming.html \ squarepolar.png \ diff --git a/doc/Vorbis_I_spec.html b/doc/Vorbis_I_spec.html index c170563b..145d88b8 100644 --- a/doc/Vorbis_I_spec.html +++ b/doc/Vorbis_I_spec.html @@ -7,7 +7,7 @@ <meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> <!-- html --> <meta name="src" content="Vorbis_I_spec.tex"> -<meta name="date" content="2015-02-26 14:14:00"> +<meta name="date" content="2015-02-27 13:18:00"> <link rel="stylesheet" type="text/css" href="Vorbis_I_spec.css"> </head><body > @@ -23,7 +23,7 @@ <div class="author" ><span class="cmr-17">Xiph.Org Foundation</span></div><br /> <div class="date" ><span -class="cmr-17">February 26, 2015</span></div> +class="cmr-17">February 27, 2015</span></div> </div> <h3 class="likesectionHead"><a id="x1-1000"></a>Contents</h3> @@ -163,85 +163,85 @@ href="#x1-940006.2.2" id="QQ2-1-100">packet decode</a></span> <br />   <span class="subsubsectionToc" >6.2.3 <a href="#x1-950006.2.3" id="QQ2-1-101">curve computation</a></span> <br /> <span class="sectionToc" >7 <a -href="#x1-960007" id="QQ2-1-102">Floor type 1 setup and decode</a></span> +href="#x1-970007" id="QQ2-1-103">Floor type 1 setup and decode</a></span> <br />  <span class="subsectionToc" >7.1 <a -href="#x1-970007.1" id="QQ2-1-103">Overview</a></span> +href="#x1-980007.1" id="QQ2-1-104">Overview</a></span> <br />  <span class="subsectionToc" >7.2 <a -href="#x1-980007.2" id="QQ2-1-104">Floor 1 format</a></span> +href="#x1-990007.2" id="QQ2-1-105">Floor 1 format</a></span> <br />   <span class="subsubsectionToc" >7.2.1 <a -href="#x1-990007.2.1" id="QQ2-1-105">model</a></span> +href="#x1-1000007.2.1" id="QQ2-1-106">model</a></span> <br />   <span class="subsubsectionToc" >7.2.2 <a -href="#x1-1000007.2.2" id="QQ2-1-110">header decode</a></span> +href="#x1-1010007.2.2" id="QQ2-1-111">header decode</a></span> <br />   <span class="subsubsectionToc" >7.2.3 <a -href="#x1-1010007.2.3" id="QQ2-1-111">packet decode</a></span> +href="#x1-1020007.2.3" id="QQ2-1-112">packet decode</a></span> <br />   <span class="subsubsectionToc" >7.2.4 <a -href="#x1-1020007.2.4" id="QQ2-1-112">curve computation</a></span> +href="#x1-1030007.2.4" id="QQ2-1-113">curve computation</a></span> <br /> <span class="sectionToc" >8 <a -href="#x1-1030008" id="QQ2-1-113">Residue setup and decode</a></span> +href="#x1-1040008" id="QQ2-1-114">Residue setup and decode</a></span> <br />  <span class="subsectionToc" >8.1 <a -href="#x1-1040008.1" id="QQ2-1-114">Overview</a></span> +href="#x1-1050008.1" id="QQ2-1-115">Overview</a></span> <br />  <span class="subsectionToc" >8.2 <a -href="#x1-1050008.2" id="QQ2-1-115">Residue format</a></span> +href="#x1-1060008.2" id="QQ2-1-116">Residue format</a></span> <br />  <span class="subsectionToc" >8.3 <a -href="#x1-1060008.3" id="QQ2-1-117">residue 0</a></span> +href="#x1-1070008.3" id="QQ2-1-118">residue 0</a></span> <br />  <span class="subsectionToc" >8.4 <a -href="#x1-1070008.4" id="QQ2-1-118">residue 1</a></span> +href="#x1-1080008.4" id="QQ2-1-119">residue 1</a></span> <br />  <span class="subsectionToc" >8.5 <a -href="#x1-1080008.5" id="QQ2-1-119">residue 2</a></span> +href="#x1-1090008.5" id="QQ2-1-120">residue 2</a></span> <br />  <span class="subsectionToc" >8.6 <a -href="#x1-1090008.6" id="QQ2-1-121">Residue decode</a></span> +href="#x1-1100008.6" id="QQ2-1-122">Residue decode</a></span> <br />   <span class="subsubsectionToc" >8.6.1 <a -href="#x1-1100008.6.1" id="QQ2-1-122">header decode</a></span> +href="#x1-1110008.6.1" id="QQ2-1-123">header decode</a></span> <br />   <span class="subsubsectionToc" >8.6.2 <a -href="#x1-1110008.6.2" id="QQ2-1-123">packet decode</a></span> +href="#x1-1120008.6.2" id="QQ2-1-124">packet decode</a></span> <br />   <span class="subsubsectionToc" >8.6.3 <a -href="#x1-1120008.6.3" id="QQ2-1-124">format 0 specifics</a></span> +href="#x1-1130008.6.3" id="QQ2-1-125">format 0 specifics</a></span> <br />   <span class="subsubsectionToc" >8.6.4 <a -href="#x1-1130008.6.4" id="QQ2-1-125">format 1 specifics</a></span> +href="#x1-1140008.6.4" id="QQ2-1-126">format 1 specifics</a></span> <br />   <span class="subsubsectionToc" >8.6.5 <a -href="#x1-1140008.6.5" id="QQ2-1-126">format 2 specifics</a></span> +href="#x1-1150008.6.5" id="QQ2-1-127">format 2 specifics</a></span> <br /> <span class="sectionToc" >9 <a -href="#x1-1150009" id="QQ2-1-127">Helper equations</a></span> +href="#x1-1160009" id="QQ2-1-128">Helper equations</a></span> <br />  <span class="subsectionToc" >9.1 <a -href="#x1-1160009.1" id="QQ2-1-128">Overview</a></span> +href="#x1-1170009.1" id="QQ2-1-129">Overview</a></span> <br />  <span class="subsectionToc" >9.2 <a -href="#x1-1170009.2" id="QQ2-1-129">Functions</a></span> +href="#x1-1180009.2" id="QQ2-1-130">Functions</a></span> <br />   <span class="subsubsectionToc" >9.2.1 <a -href="#x1-1180009.2.1" id="QQ2-1-130">ilog</a></span> +href="#x1-1190009.2.1" id="QQ2-1-131">ilog</a></span> <br />   <span class="subsubsectionToc" >9.2.2 <a -href="#x1-1190009.2.2" id="QQ2-1-131">float32_unpack</a></span> +href="#x1-1200009.2.2" id="QQ2-1-132">float32_unpack</a></span> <br />   <span class="subsubsectionToc" >9.2.3 <a -href="#x1-1200009.2.3" id="QQ2-1-132">lookup1_values</a></span> +href="#x1-1210009.2.3" id="QQ2-1-133">lookup1_values</a></span> <br />   <span class="subsubsectionToc" >9.2.4 <a -href="#x1-1210009.2.4" id="QQ2-1-133">low_neighbor</a></span> +href="#x1-1220009.2.4" id="QQ2-1-134">low_neighbor</a></span> <br />   <span class="subsubsectionToc" >9.2.5 <a -href="#x1-1220009.2.5" id="QQ2-1-134">high_neighbor</a></span> +href="#x1-1230009.2.5" id="QQ2-1-135">high_neighbor</a></span> <br />   <span class="subsubsectionToc" >9.2.6 <a -href="#x1-1230009.2.6" id="QQ2-1-135">render_point</a></span> +href="#x1-1240009.2.6" id="QQ2-1-136">render_point</a></span> <br />   <span class="subsubsectionToc" >9.2.7 <a -href="#x1-1240009.2.7" id="QQ2-1-136">render_line</a></span> +href="#x1-1250009.2.7" id="QQ2-1-137">render_line</a></span> <br /> <span class="sectionToc" >10 <a -href="#x1-12500010" id="QQ2-1-137">Tables</a></span> +href="#x1-12600010" id="QQ2-1-138">Tables</a></span> <br />  <span class="subsectionToc" >10.1 <a -href="#x1-12600010.1" id="QQ2-1-138">floor1_inverse_dB_table</a></span> +href="#x1-12700010.1" id="QQ2-1-139">floor1_inverse_dB_table</a></span> <br /> <span class="sectionToc" >A <a -href="#x1-127000A" id="QQ2-1-139">Embedding Vorbis into an Ogg stream</a></span> +href="#x1-128000A" id="QQ2-1-140">Embedding Vorbis into an Ogg stream</a></span> <br />  <span class="subsectionToc" >A.1 <a -href="#x1-128000A.1" id="QQ2-1-140">Overview</a></span> +href="#x1-129000A.1" id="QQ2-1-141">Overview</a></span> <br />   <span class="subsubsectionToc" >A.1.1 <a -href="#x1-129000A.1.1" id="QQ2-1-141">Restrictions</a></span> +href="#x1-130000A.1.1" id="QQ2-1-142">Restrictions</a></span> <br />   <span class="subsubsectionToc" >A.1.2 <a -href="#x1-130000A.1.2" id="QQ2-1-142">MIME type</a></span> +href="#x1-131000A.1.2" id="QQ2-1-143">MIME type</a></span> <br />  <span class="subsectionToc" >A.2 <a -href="#x1-131000A.2" id="QQ2-1-143">Encapsulation</a></span> +href="#x1-132000A.2" id="QQ2-1-144">Encapsulation</a></span> <br /> <span class="sectionToc" >B <a -href="#x1-133000B" id="QQ2-1-145">Vorbis encapsulation in RTP</a></span> +href="#x1-134000B" id="QQ2-1-146">Vorbis encapsulation in RTP</a></span> </div> @@ -306,9 +306,9 @@ document, we will assume that Vorbis is to be embedded in an Ogg stream specific although this is by no means a requirement or fundamental assumption in the Vorbis design. <!--l. 72--><p class="noindent" >The specification for embedding Vorbis into an Ogg transport stream is in <a -href="#x1-127000A">section A</a>, +href="#x1-128000A">section A</a>, “<a -href="#x1-127000A">Embedding Vorbis into an Ogg stream<!--tex4ht:ref: vorbis:over:ogg --></a>”. +href="#x1-128000A">Embedding Vorbis into an Ogg stream<!--tex4ht:ref: vorbis:over:ogg --></a>”. <!--l. 77--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">1.1.4. </span> <a id="x1-70001.1.4"></a>Codec Setup and Probability Model</h5> @@ -2358,7 +2358,7 @@ class="cmtt-8"> [number]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> read</span><span class="cmtt-8"> </span><a -href="#x1-1180009.2.1"><span +href="#x1-1190009.2.1"><span class="cmtt-8">ilog</span></a><span class="cmtt-8">([codebook_entries]</span><span class="cmtt-8"> -</span><span @@ -2528,7 +2528,7 @@ class="cmtt-8"> 1)</span><span class="cmtt-8"> [codebook_minimum_value]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> </span><a -href="#x1-1190009.2.2"><span +href="#x1-1200009.2.2"><span class="cmtt-8">float32_unpack</span></a><span class="cmtt-8">(</span><span class="cmtt-8"> read</span><span @@ -2548,7 +2548,7 @@ class="cmtt-8"> 2)</span><span class="cmtt-8"> [codebook_delta_value]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> </span><a -href="#x1-1190009.2.2"><span +href="#x1-1200009.2.2"><span class="cmtt-8">float32_unpack</span></a><span class="cmtt-8">(</span><span class="cmtt-8"> read</span><span @@ -2629,7 +2629,7 @@ class="cmtt-8"> 5)</span><span class="cmtt-8"> [codebook_lookup_values]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> </span><a -href="#x1-1200009.2.3"><span +href="#x1-1210009.2.3"><span class="cmtt-8">lookup1_values</span></a><span class="cmtt-8">([codebook_entries],</span><span class="cmtt-8"> [codebook_dimensions]</span><span @@ -3803,9 +3803,9 @@ class="cmtt-12">[vorbis_floor_configurations]</span>. </dd><dt class="enumerate-enumitem"> c) </dt><dd class="enumerate-enumitem">If the floor type is one, decode the floor configuration as defined in <a -href="#x1-960007">section 7</a>, +href="#x1-970007">section 7</a>, “<a -href="#x1-960007">Floor type 1 setup and decode<!--tex4ht:ref: vorbis:spec:floor1 --></a>”; save this configuration in slot <span +href="#x1-970007">Floor type 1 setup and decode<!--tex4ht:ref: vorbis:spec:floor1 --></a>”; save this configuration in slot <span class="cmtt-12">[i] </span>of the floor configuration array <span class="cmtt-12">[vorbis_floor_configurations]</span>. @@ -3840,8 +3840,8 @@ class="cmtt-12">[i] </span>= read 16 b) </dt><dd class="enumerate-enumitem">If the residue type is zero, one or two, decode the residue configuration as defined in <a -href="#x1-1030008">section 8</a>, “<a -href="#x1-1030008">Residue setup and decode<!--tex4ht:ref: vorbis:spec:residue --></a>”; save this configuration in slot <span +href="#x1-1040008">section 8</a>, “<a +href="#x1-1040008">Residue setup and decode<!--tex4ht:ref: vorbis:spec:residue --></a>”; save this configuration in slot <span class="cmtt-12">[i] </span>of the residue configuration array <span class="cmtt-12">[vorbis_residue_configurations]</span>. @@ -3910,14 +3910,14 @@ class="cmtt-12">[vorbis_mapping_coupling_steps] </span>steps: class="cmtt-12">[vorbis_mapping_magnitude] </span>element <span class="cmtt-12">[j]</span>= read <a -href="#x1-1180009.2.1">ilog</a>(<span +href="#x1-1190009.2.1">ilog</a>(<span class="cmtt-12">[audio_channels] </span>- 1) bits as unsigned integer </li> <li class="itemize">vector <span class="cmtt-12">[vorbis_mapping_angle] </span>element <span class="cmtt-12">[j]</span>= read <a -href="#x1-1180009.2.1">ilog</a>(<span +href="#x1-1190009.2.1">ilog</a>(<span class="cmtt-12">[audio_channels] </span>- 1) bits as unsigned integer </li> <li class="itemize">the numbers read in the above two steps are channel numbers @@ -4070,7 +4070,7 @@ class="cmtt-12">[packet_type]</span>; check that packet type is 0 (audio) </dd><dt class="enumerate-enumitem"> 2. </dt><dd class="enumerate-enumitem">read <a -href="#x1-1180009.2.1">ilog</a>([vorbis_mode_count]-1) bits <span +href="#x1-1190009.2.1">ilog</a>([vorbis_mode_count]-1) bits <span class="cmtt-12">[mode_number]</span> </dd><dt class="enumerate-enumitem"> 3. </dt><dd @@ -4326,8 +4326,8 @@ href="#x1-940006.2.2">packet decode<!--tex4ht:ref: vorbis:spec:floor0-decode --> class="enumerate-enumitem">if the type of this floor is one then decode the floor for channel <span class="cmtt-12">[i] </span>according to the <a -href="#x1-1010007.2.3">subsubsection 7.2.3</a>, “<a -href="#x1-1010007.2.3">packet decode<!--tex4ht:ref: vorbis:spec:floor1-decode --></a>” +href="#x1-1020007.2.3">subsubsection 7.2.3</a>, “<a +href="#x1-1020007.2.3">packet decode<!--tex4ht:ref: vorbis:spec:floor1-decode --></a>” </dd><dt class="enumerate-enumitem"> 5. </dt><dd class="enumerate-enumitem">save the needed decoded floor information for channel for later synthesis @@ -5340,7 +5340,7 @@ class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><span class="cmtt-8"> of</span><span class="cmtt-8"> </span><a -href="#x1-1180009.2.1"><span +href="#x1-1190009.2.1"><span class="cmtt-8">ilog</span></a><span class="cmtt-8">(</span><span class="cmtt-8"> [floor0_number_of_books]</span><span @@ -5546,7 +5546,7 @@ class="cmtt-12">[amplitude] </span>value of zero must result in a return code th class="cmtt-12">[amplitude] </span>value had read zero at the beginning of decode. </li> <li class="itemize">The book number used for decode can, in fact, be stored in the bitstream in <a -href="#x1-1180009.2.1">ilog</a>( +href="#x1-1190009.2.1">ilog</a>( <span class="cmtt-12">[floor0_number_of_books] </span>- 1 ) bits. Nevertheless, the above specification is correct and values greater than the maximum possible book value are reserved. @@ -5601,7 +5601,7 @@ f oobar = bark 2n ⋅ bark(.5 ⋅ floor0_rate ) <center class="par-math-display" > <img src="Vorbis_I_spec9x.png" alt=" 2 -bark(x) = 13.1arctan (.00074x ) + 2.24 arctan(.0000000185x + .0001x ) +bark(x) = 13.1arctan (.00074x ) + 2.24 arctan(.0000000185x ) + .0001x " class="par-math-display" ></center> <!--l. 143--><p class="nopar" > <!--l. 145--><p class="noindent" >The above is used to synthesize the LSP curve on a Bark-scale frequency axis, then map the @@ -5710,6 +5710,24 @@ class="cmtt-12">[n] </span>) continue at step 2 </dd><dt class="enumerate-enumitem"> 10. </dt><dd class="enumerate-enumitem">done</dd></dl> +<!--l. 187--><p class="noindent" ><span class="paragraphHead"><a + id="x1-960006.2.3"></a><span +class="cmbx-12">Errata 20150227: Bark scale computation</span></span> +Due to a typo when typesetting this version of the specification from the original HTML +document, the Bark scale computation previously erroneously read: +<center class="par-math-display" > +<img +src="Vorbis_I_spec13x.png" alt=" 2 +bark(x) = 13.1arctan (.00074x ) + 2.24 arctan(.0000000185x + .0001x ) +" class="par-math-display" ></center> +<!--l. 195--><p class="nopar" > +<!--l. 197--><p class="noindent" >Note that the last parenthesis is misplaced. This document now uses the correct equation as it +appeared in the original HTML spec document: +<center class="par-math-display" > +<img +src="Vorbis_I_spec14x.png" alt="bark(x) = 13.1arctan (.00074x ) + 2.24 arctan(.0000000185x2 ) + .0001x +" class="par-math-display" ></center> +<!--l. 201--><p class="nopar" > @@ -5717,20 +5735,20 @@ class="enumerate-enumitem">done</dd></dl> <h3 class="sectionHead"><span class="titlemark">7. </span> <a - id="x1-960007"></a>Floor type 1 setup and decode</h3> + id="x1-970007"></a>Floor type 1 setup and decode</h3> <!--l. 6--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">7.1. </span> <a - id="x1-970007.1"></a>Overview</h4> + id="x1-980007.1"></a>Overview</h4> <!--l. 8--><p class="noindent" >Vorbis floor type one uses a piecewise straight-line representation to encode a spectral envelope curve. The representation plots this curve mechanically on a linear frequency axis and a logarithmic (dB) amplitude axis. The integer plotting algorithm used is similar to Bresenham’s algorithm. <!--l. 16--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">7.2. </span> <a - id="x1-980007.2"></a>Floor 1 format</h4> + id="x1-990007.2"></a>Floor 1 format</h4> <!--l. 18--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">7.2.1. </span> <a - id="x1-990007.2.1"></a>model</h5> + id="x1-1000007.2.1"></a>model</h5> <!--l. 20--><p class="noindent" >Floor type one represents a spectral curve as a series of line segments. Synthesis constructs a floor curve using iterative prediction in a process roughly equivalent to the following simplified description: @@ -5771,7 +5789,7 @@ src="floor1-1.png" alt="PIC" > <br /> <div class="caption" ><span class="id">Figure 7: </span><span -class="content">graph of example floor</span></div><!--tex4ht:label?: x1-990017 --> +class="content">graph of example floor</span></div><!--tex4ht:label?: x1-1000017 --> </div> <!--l. 64--><p class="noindent" >We now draw new logical lines to reflect the correction to new˙Y, and iterate for X positions 32 and 96: @@ -5784,7 +5802,7 @@ src="floor1-2.png" alt="PIC" > <br /> <div class="caption" ><span class="id">Figure 8: </span><span -class="content">graph of example floor</span></div><!--tex4ht:label?: x1-990028 --> +class="content">graph of example floor</span></div><!--tex4ht:label?: x1-1000028 --> </div> <!--l. 72--><p class="noindent" >Although the new Y value at X position 96 is unchanged, it is still used later as an endpoint for further refinement. From here on, the pattern should be clear; we complete the floor computation @@ -5801,7 +5819,7 @@ src="floor1-3.png" alt="PIC" > <br /> <div class="caption" ><span class="id">Figure 9: </span><span -class="content">graph of example floor</span></div><!--tex4ht:label?: x1-990039 --> +class="content">graph of example floor</span></div><!--tex4ht:label?: x1-1000039 --> </div> <div class="center" > @@ -5812,7 +5830,7 @@ src="floor1-4.png" alt="PIC" > <br /> <div class="caption" ><span class="id">Figure 10: </span><span -class="content">graph of example floor</span></div><!--tex4ht:label?: x1-9900410 --> +class="content">graph of example floor</span></div><!--tex4ht:label?: x1-10000410 --> </div> <!--l. 86--><p class="noindent" >A more efficient algorithm with carefully defined integer rounding behavior is used for actual decode, as described later. The actual algorithm splits Y value computation and line plotting @@ -5820,7 +5838,7 @@ into two steps with modifications to the above algorithm to eliminate noise accu through integer roundoff/truncation. <!--l. 94--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">7.2.2. </span> <a - id="x1-1000007.2.2"></a>header decode</h5> + id="x1-1010007.2.2"></a>header decode</h5> <!--l. 96--><p class="noindent" >A list of floor X values is stored in the packet header in interleaved format (used in list order during packet decode and synthesis). This list is split into partitions, and each partition is assigned to a partition class. X positions 0 and [n] are implicit and do not belong to an explicit @@ -5837,11 +5855,11 @@ context. <!--l. 112--><p class="noindent" > <div class="fancyvrb" id="fancyvrb28"><a - id="x1-100002r1"></a><span + id="x1-101002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100004r2"></a><span + id="x1-101004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5855,7 +5873,7 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><br class="fancyvrb" /><a - id="x1-100006r3"></a><span + id="x1-101006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5864,7 +5882,7 @@ class="cmtt-8"> 2)</span><span class="cmtt-8"> [maximum_class]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> -1</span><br class="fancyvrb" /><a - id="x1-100008r4"></a><span + id="x1-101008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5881,11 +5899,11 @@ class="cmtt-8"> [floor1_partitions]-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span> <br class="fancyvrb" /><a - id="x1-100010r5"></a><span + id="x1-101010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100012r6"></a><span + id="x1-101012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5908,11 +5926,11 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><br class="fancyvrb" /><a - id="x1-100014r7"></a><span + id="x1-101014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100016r8"></a><span + id="x1-101016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5922,12 +5940,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-100018r9"></a><span + id="x1-101018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-100020r10"></a><span + id="x1-101020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5942,7 +5960,7 @@ class="cmtt-8"> value</span><span class="cmtt-8"> in</span><span class="cmtt-8"> vector</span><span class="cmtt-8"> [floor1_partition_class_list]</span><br class="fancyvrb" /><a - id="x1-100022r11"></a><span + id="x1-101022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5959,11 +5977,11 @@ class="cmtt-8"> [maximum_class]</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span> <br class="fancyvrb" /><a - id="x1-100024r12"></a><span + id="x1-101024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100026r13"></a><span + id="x1-101026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -5990,7 +6008,7 @@ class="cmtt-8"> and</span><span class="cmtt-8"> add</span><span class="cmtt-8"> 1</span> <br class="fancyvrb" /><a - id="x1-100028r14"></a><span + id="x1-101028r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8">  8)</span><span @@ -6006,7 +6024,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-100030r15"></a><span + id="x1-101030r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6029,12 +6047,12 @@ class="cmtt-8"> nonzero</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-100032r16"></a><span + id="x1-101032r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-100034r17"></a><span + id="x1-101034r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6062,11 +6080,11 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><br class="fancyvrb" /><a - id="x1-100036r18"></a><span + id="x1-101036r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100038r19"></a><span + id="x1-101038r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6082,12 +6100,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-100040r20"></a><span + id="x1-101040r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-100042r21"></a><span + id="x1-101042r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6114,12 +6132,12 @@ class="cmtt-8"> -</span><span class="cmtt-8"> 1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-100044r22"></a><span + id="x1-101044r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-100046r23"></a><span + id="x1-101046r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6141,7 +6159,7 @@ class="cmtt-8"> [floor1_subclass_books]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [i],[j]</span><span class="cmtt-8"> =</span><br class="fancyvrb" /><a - id="x1-100048r24"></a><span + id="x1-101048r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6170,7 +6188,7 @@ class="cmtt-8"> integer</span><span class="cmtt-8"> and</span><span class="cmtt-8"> subtract</span><span class="cmtt-8"> one</span><br class="fancyvrb" /><a - id="x1-100050r25"></a><span + id="x1-101050r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6187,7 +6205,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span> <br class="fancyvrb" /><a - id="x1-100052r26"></a><span + id="x1-101052r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6198,11 +6216,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-100054r27"></a><span + id="x1-101054r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100056r28"></a><span + id="x1-101056r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6218,7 +6236,7 @@ class="cmtt-8"> integer</span><span class="cmtt-8"> and</span><span class="cmtt-8"> add</span><span class="cmtt-8"> one</span><br class="fancyvrb" /><a - id="x1-100058r29"></a><span + id="x1-101058r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6232,7 +6250,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-100060r30"></a><span + id="x1-101060r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6243,7 +6261,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [0]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span><br class="fancyvrb" /><a - id="x1-100062r31"></a><span + id="x1-101062r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6257,7 +6275,7 @@ class="cmtt-8"> 2</span><span class="cmtt-8"> exponent</span><span class="cmtt-8"> [rangebits];</span> <br class="fancyvrb" /><a - id="x1-100064r32"></a><span + id="x1-101064r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6265,7 +6283,7 @@ class="cmtt-8"> 17)</span><span class="cmtt-8"> [floor1_values]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 2</span><br class="fancyvrb" /><a - id="x1-100066r33"></a><span + id="x1-101066r33"></a><span class="cmr-6">33</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6281,11 +6299,11 @@ class="cmtt-8"> [floor1_partitions]-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span> <br class="fancyvrb" /><a - id="x1-100068r34"></a><span + id="x1-101068r34"></a><span class="cmr-6">34</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100070r35"></a><span + id="x1-101070r35"></a><span class="cmr-6">35</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6303,7 +6321,7 @@ class="cmtt-8"> [floor1_partition_class_list]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span> <br class="fancyvrb" /><a - id="x1-100072r36"></a><span + id="x1-101072r36"></a><span class="cmr-6">36</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6327,7 +6345,7 @@ class="cmtt-8"> [current_class_number])-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span> <br class="fancyvrb" /><a - id="x1-100074r37"></a><span + id="x1-101074r37"></a><span class="cmr-6">37</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6349,7 +6367,7 @@ class="cmtt-8"> [floor1_X_list]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> ([floor1_values])</span><span class="cmtt-8"> =</span><br class="fancyvrb" /><a - id="x1-100076r38"></a><span + id="x1-101076r38"></a><span class="cmr-6">38</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6376,7 +6394,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-100078r39"></a><span + id="x1-101078r39"></a><span class="cmr-6">39</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6397,7 +6415,7 @@ class="cmtt-8"> increment</span><span class="cmtt-8"> [floor1_values]</span><span class="cmtt-8"> by</span><span class="cmtt-8"> one</span><br class="fancyvrb" /><a - id="x1-100080r40"></a><span + id="x1-101080r40"></a><span class="cmr-6">40</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6413,7 +6431,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-100082r41"></a><span + id="x1-101082r41"></a><span class="cmr-6">41</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6423,11 +6441,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-100084r42"></a><span + id="x1-101084r42"></a><span class="cmr-6">42</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-100086r43"></a><span + id="x1-101086r43"></a><span class="cmr-6">43</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6445,12 +6463,12 @@ undecodable. All vector [floor1_x_list] element values must be unique within the non-unique value renders the stream undecodable. <!--l. 170--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">7.2.3. </span> <a - id="x1-1010007.2.3"></a>packet decode</h5> + id="x1-1020007.2.3"></a>packet decode</h5> <!--l. 172--><p class="noindent" >Packet decode begins by checking the <span class="cmtt-12">[nonzero] </span>flag: <!--l. 174--><p class="noindent" > <div class="fancyvrb" id="fancyvrb29"><a - id="x1-101002r1"></a><span + id="x1-102002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6473,7 +6491,7 @@ points set to minimum representation amplitude, which happens to be approximatel class="cmtt-12">[nonzero] </span>is set, decode proceeds as follows: <!--l. 188--><p class="noindent" > <div class="fancyvrb" id="fancyvrb30"><a - id="x1-101004r1"></a><span + id="x1-102004r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6496,7 +6514,7 @@ class="cmtt-8"> ([floor1_multiplier]-1)</span> <br class="fancyvrb" /><a - id="x1-101006r2"></a><span + id="x1-102006r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6509,7 +6527,7 @@ class="cmtt-8"> [0]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> read</span><span class="cmtt-8"> </span><a -href="#x1-1180009.2.1"><span +href="#x1-1190009.2.1"><span class="cmtt-8">ilog</span></a><span class="cmtt-8">([range]-1)</span><span class="cmtt-8"> bits</span><span @@ -6517,7 +6535,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-101008r3"></a><span + id="x1-102008r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6530,7 +6548,7 @@ class="cmtt-8"> [1]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> read</span><span class="cmtt-8"> </span><a -href="#x1-1180009.2.1"><span +href="#x1-1190009.2.1"><span class="cmtt-8">ilog</span></a><span class="cmtt-8">([range]-1)</span><span class="cmtt-8"> bits</span><span @@ -6538,7 +6556,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-101010r4"></a><span + id="x1-102010r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6547,7 +6565,7 @@ class="cmtt-8"> 4)</span><span class="cmtt-8"> [offset]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 2;</span><br class="fancyvrb" /><a - id="x1-101012r5"></a><span + id="x1-102012r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6563,12 +6581,12 @@ class="cmtt-8"> ...</span><span class="cmtt-8"> [floor1_partitions]-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-101014r6"></a><span + id="x1-102014r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-101016r7"></a><span + id="x1-102016r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6586,7 +6604,7 @@ class="cmtt-8"> [floor1_partition_class]</span><span class="cmtt-8"> </span><span class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><br class="fancyvrb" /><a - id="x1-101018r8"></a><span + id="x1-102018r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6605,7 +6623,7 @@ class="cmtt-8"> [floor1_class_dimensions]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [class]</span> <br class="fancyvrb" /><a - id="x1-101020r9"></a><span + id="x1-102020r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6622,7 +6640,7 @@ class="cmtt-8"> vector</span><span class="cmtt-8"> [floor1_class_subclasses]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [class]</span><br class="fancyvrb" /><a - id="x1-101022r10"></a><span + id="x1-102022r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6639,7 +6657,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> (2</span><span class="cmtt-8"> exponent</span><span class="cmtt-8"> [cbits])-1</span><br class="fancyvrb" /><a - id="x1-101024r11"></a><span + id="x1-102024r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6654,7 +6672,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span> <br class="fancyvrb" /><a - id="x1-101026r12"></a><span + id="x1-102026r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6674,11 +6692,11 @@ class="cmtt-8"> zero</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-101028r13"></a><span + id="x1-102028r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101030r14"></a><span + id="x1-102030r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6704,7 +6722,7 @@ class="cmtt-8"> using</span><span class="cmtt-8"> codebook</span><span class="cmtt-8"> number</span> <br class="fancyvrb" /><a - id="x1-101032r15"></a><span + id="x1-102032r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6732,7 +6750,7 @@ class="cmtt-8"> in</span><span class="cmtt-8"> scalar</span><span class="cmtt-8"> context</span> <br class="fancyvrb" /><a - id="x1-101034r16"></a><span + id="x1-102034r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6747,11 +6765,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-101036r17"></a><span + id="x1-102036r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101038r18"></a><span + id="x1-102038r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6771,12 +6789,12 @@ class="cmtt-8"> ...</span><span class="cmtt-8"> [cdim]-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-101040r19"></a><span + id="x1-102040r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-101042r20"></a><span + id="x1-102042r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6803,7 +6821,7 @@ class="cmtt-8"> bitwise</span><span class="cmtt-8"> AND</span><span class="cmtt-8"> [csub])</span> <br class="fancyvrb" /><a - id="x1-101044r21"></a><span + id="x1-102044r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6827,7 +6845,7 @@ class="cmtt-8"> right</span><span class="cmtt-8"> shifted</span><span class="cmtt-8"> [cbits]</span><span class="cmtt-8"> bits</span><br class="fancyvrb" /><a - id="x1-101046r22"></a><span + id="x1-102046r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -6847,12 +6865,12 @@ class="cmtt-8"> zero</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-101048r23"></a><span + id="x1-102048r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-101050r24"></a><span + id="x1-102050r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -6877,7 +6895,7 @@ class="cmtt-8"> from</span><span class="cmtt-8"> packet</span><span class="cmtt-8"> using</span><span class="cmtt-8"> codebook</span><br class="fancyvrb" /><a - id="x1-101052r25"></a><span + id="x1-102052r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6908,11 +6926,11 @@ class="cmtt-8"> in</span><span class="cmtt-8"> scalar</span><span class="cmtt-8"> context</span> <br class="fancyvrb" /><a - id="x1-101054r26"></a><span + id="x1-102054r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101056r27"></a><span + id="x1-102056r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6942,11 +6960,11 @@ class="cmtt-8"> than</span><span class="cmtt-8"> zero</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-101058r28"></a><span + id="x1-102058r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101060r29"></a><span + id="x1-102060r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -6968,11 +6986,11 @@ class="cmtt-8"> ([j]+[offset])</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span> <br class="fancyvrb" /><a - id="x1-101062r30"></a><span + id="x1-102062r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101064r31"></a><span + id="x1-102064r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -6994,7 +7012,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-101066r32"></a><span + id="x1-102066r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7009,11 +7027,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-101068r33"></a><span + id="x1-102068r33"></a><span class="cmr-6">33</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101070r34"></a><span + id="x1-102070r34"></a><span class="cmr-6">34</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7028,11 +7046,11 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [offset]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [cdim]</span><br class="fancyvrb" /><a - id="x1-101072r35"></a><span + id="x1-102072r35"></a><span class="cmr-6">35</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101074r36"></a><span + id="x1-102074r36"></a><span class="cmr-6">36</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7042,11 +7060,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-101076r37"></a><span + id="x1-102076r37"></a><span class="cmr-6">37</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-101078r38"></a><span + id="x1-102078r38"></a><span class="cmr-6">38</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7060,7 +7078,7 @@ class="cmtt-12">[nonzero] </span>flag had been unset at the beginning of decode. class="cmtt-12">[floor1_Y] </span>contains the values from packet decode needed for floor 1 synthesis. <!--l. 240--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">7.2.4. </span> <a - id="x1-1020007.2.4"></a>curve computation</h5> + id="x1-1030007.2.4"></a>curve computation</h5> <!--l. 242--><p class="noindent" >Curve computation is split into two logical steps; the first step derives final Y amplitude values from the encoded, wrapped difference values taken from the bitstream. The second step plots the curve lines. Also, although zero-difference values are used in the iterative @@ -7093,7 +7111,7 @@ class="description"> values, then apply to line prediction. <!--l. 271--><p class="noindent" > <div class="fancyvrb" id="fancyvrb31"><a - id="x1-102002r1"></a><span + id="x1-103002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7112,7 +7130,7 @@ class="cmtt-8"> </span><span class="cmsy-8">}</span><span class="cmtt-8"> element</span><span class="cmtt-8"> ([floor1_multiplier]-1)</span><br class="fancyvrb" /><a - id="x1-102004r2"></a><span + id="x1-103004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7125,7 +7143,7 @@ class="cmtt-8"> [0]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> set</span> <br class="fancyvrb" /><a - id="x1-102006r3"></a><span + id="x1-103006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7137,7 +7155,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [1]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> set</span><br class="fancyvrb" /><a - id="x1-102008r4"></a><span + id="x1-103008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7153,7 +7171,7 @@ class="cmtt-8"> [floor1_Y]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [0]</span> <br class="fancyvrb" /><a - id="x1-102010r5"></a><span + id="x1-103010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7168,7 +7186,7 @@ class="cmtt-8"> vector</span><span class="cmtt-8"> [floor1_Y]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [1]</span><br class="fancyvrb" /><a - id="x1-102012r6"></a><span + id="x1-103012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7184,12 +7202,12 @@ class="cmtt-8"> ...</span><span class="cmtt-8"> [floor1_values]-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102014r7"></a><span + id="x1-103014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102016r8"></a><span + id="x1-103016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7203,10 +7221,10 @@ class="cmtt-8"> 7)</span><span class="cmtt-8"> [low_neighbor_offset]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> </span><a -href="#x1-1210009.2.4"><span +href="#x1-1220009.2.4"><span class="cmtt-8">low_neighbor</span></a><span class="cmtt-8">([floor1_X_list],[i])</span><br class="fancyvrb" /><a - id="x1-102018r9"></a><span + id="x1-103018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7220,15 +7238,15 @@ class="cmtt-8"> 8)</span><span class="cmtt-8"> [high_neighbor_offset]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> </span><a -href="#x1-1220009.2.5"><span +href="#x1-1230009.2.5"><span class="cmtt-8">high_neighbor</span></a><span class="cmtt-8">([floor1_X_list],[i])</span> <br class="fancyvrb" /><a - id="x1-102020r10"></a><span + id="x1-103020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102022r11"></a><span + id="x1-103022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7242,7 +7260,7 @@ class="cmtt-8"> 9)</span><span class="cmtt-8"> [predicted]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> </span><a -href="#x1-1230009.2.6"><span +href="#x1-1240009.2.6"><span class="cmtt-8">render_point</span></a><span class="cmtt-8">(</span><span class="cmtt-8"> vector</span><span @@ -7250,7 +7268,7 @@ class="cmtt-8"> [floor1_X_list]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [low_neighbor_offset],</span> <br class="fancyvrb" /><a - id="x1-102024r12"></a><span + id="x1-103024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -7264,7 +7282,7 @@ class="cmtt-8"> [floor1_final_Y]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [low_neighbor_offset],</span> <br class="fancyvrb" /><a - id="x1-102026r13"></a><span + id="x1-103026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7310,7 +7328,7 @@ class="cmtt-8"> [floor1_X_list]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [high_neighbor_offset],</span> <br class="fancyvrb" /><a - id="x1-102028r14"></a><span + id="x1-103028r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -7324,7 +7342,7 @@ class="cmtt-8"> [floor1_final_Y]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [high_neighbor_offset],</span> <br class="fancyvrb" /><a - id="x1-102030r15"></a><span + id="x1-103030r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7370,11 +7388,11 @@ class="cmtt-8"> [floor1_X_list]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> )</span><br class="fancyvrb" /><a - id="x1-102032r16"></a><span + id="x1-103032r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102034r17"></a><span + id="x1-103034r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7391,7 +7409,7 @@ class="cmtt-8"> [floor1_Y]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span> <br class="fancyvrb" /><a - id="x1-102036r18"></a><span + id="x1-103036r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7406,7 +7424,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [range]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [predicted]</span><br class="fancyvrb" /><a - id="x1-102038r19"></a><span + id="x1-103038r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7421,7 +7439,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> =</span><span class="cmtt-8"> [predicted]</span> <br class="fancyvrb" /><a - id="x1-102040r20"></a><span + id="x1-103040r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7441,11 +7459,11 @@ class="cmtt-8"> [lowroom]</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102042r21"></a><span + id="x1-103042r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102044r22"></a><span + id="x1-103044r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7466,12 +7484,12 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [highroom]</span><span class="cmtt-8"> *</span><span class="cmtt-8"> 2</span><br class="fancyvrb" /><a - id="x1-102046r23"></a><span + id="x1-103046r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102048r24"></a><span + id="x1-103048r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7495,11 +7513,11 @@ class="cmtt-8"> than</span><span class="cmtt-8"> [lowroom]</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102050r25"></a><span + id="x1-103050r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102052r26"></a><span + id="x1-103052r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7520,11 +7538,11 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [lowroom]</span><span class="cmtt-8"> *</span><span class="cmtt-8"> 2</span><br class="fancyvrb" /><a - id="x1-102054r27"></a><span + id="x1-103054r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102056r28"></a><span + id="x1-103056r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7539,12 +7557,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102058r29"></a><span + id="x1-103058r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102060r30"></a><span + id="x1-103060r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7562,11 +7580,11 @@ class="cmtt-8"> nonzero</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102062r31"></a><span + id="x1-103062r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102064r32"></a><span + id="x1-103064r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7589,7 +7607,7 @@ class="cmtt-8"> [low_neighbor_offset]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> set</span> <br class="fancyvrb" /><a - id="x1-102066r33"></a><span + id="x1-103066r33"></a><span class="cmr-6">33</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7612,7 +7630,7 @@ class="cmtt-8"> [high_neighbor_offset]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> set</span> <br class="fancyvrb" /><a - id="x1-102068r34"></a><span + id="x1-103068r34"></a><span class="cmr-6">34</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7634,7 +7652,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> set</span><br class="fancyvrb" /><a - id="x1-102070r35"></a><span + id="x1-103070r35"></a><span class="cmr-6">35</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7664,11 +7682,11 @@ class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span> <br class="fancyvrb" /><a - id="x1-102072r36"></a><span + id="x1-103072r36"></a><span class="cmr-6">36</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102074r37"></a><span + id="x1-103074r37"></a><span class="cmr-6">37</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7700,12 +7718,12 @@ class="cmtt-8"> [lowroom]</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102076r38"></a><span + id="x1-103076r38"></a><span class="cmr-6">38</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102078r39"></a><span + id="x1-103078r39"></a><span class="cmr-6">39</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7744,11 +7762,11 @@ class="cmtt-8"> [lowroom]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [predicted]</span> <br class="fancyvrb" /><a - id="x1-102080r40"></a><span + id="x1-103080r40"></a><span class="cmr-6">40</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102082r41"></a><span + id="x1-103082r41"></a><span class="cmr-6">41</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -7768,12 +7786,12 @@ class="cmtt-8"> than</span><span class="cmtt-8"> [lowroom]</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102084r42"></a><span + id="x1-103084r42"></a><span class="cmr-6">42</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102086r43"></a><span + id="x1-103086r43"></a><span class="cmr-6">43</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7814,11 +7832,11 @@ class="cmtt-8"> [highroom]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> 1</span> <br class="fancyvrb" /><a - id="x1-102088r44"></a><span + id="x1-103088r44"></a><span class="cmr-6">44</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102090r45"></a><span + id="x1-103090r45"></a><span class="cmr-6">45</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7845,11 +7863,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102092r46"></a><span + id="x1-103092r46"></a><span class="cmr-6">46</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102094r47"></a><span + id="x1-103094r47"></a><span class="cmr-6">47</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7878,12 +7896,12 @@ class="cmtt-8"> than</span><span class="cmtt-8"> [room]</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102096r48"></a><span + id="x1-103096r48"></a><span class="cmr-6">48</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102098r49"></a><span + id="x1-103098r49"></a><span class="cmr-6">49</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7913,11 +7931,11 @@ class="cmtt-8"> is</span><span class="cmtt-8"> odd)</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102100r50"></a><span + id="x1-103100r50"></a><span class="cmr-6">50</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102102r51"></a><span + id="x1-103102r51"></a><span class="cmr-6">51</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7951,7 +7969,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> =</span> <br class="fancyvrb" /><a - id="x1-102104r52"></a><span + id="x1-103104r52"></a><span class="cmr-6">52</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -7994,12 +8012,12 @@ class="cmtt-8"> 2</span><span class="cmtt-8"> using</span><span class="cmtt-8"> integer</span><span class="cmtt-8"> division)</span><br class="fancyvrb" /><a - id="x1-102106r53"></a><span + id="x1-103106r53"></a><span class="cmr-6">53</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102108r54"></a><span + id="x1-103108r54"></a><span class="cmr-6">54</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8032,11 +8050,11 @@ class="cmtt-8"> is</span><span class="cmtt-8"> even</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102110r55"></a><span + id="x1-103110r55"></a><span class="cmr-6">55</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102112r56"></a><span + id="x1-103112r56"></a><span class="cmr-6">56</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8070,7 +8088,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> =</span> <br class="fancyvrb" /><a - id="x1-102114r57"></a><span + id="x1-103114r57"></a><span class="cmr-6">57</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8109,11 +8127,11 @@ class="cmtt-8"> 2</span><span class="cmtt-8"> using</span><span class="cmtt-8"> integer</span><span class="cmtt-8"> division)</span><br class="fancyvrb" /><a - id="x1-102116r58"></a><span + id="x1-103116r58"></a><span class="cmr-6">58</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102118r59"></a><span + id="x1-103118r59"></a><span class="cmr-6">59</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8140,12 +8158,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102120r60"></a><span + id="x1-103120r60"></a><span class="cmr-6">60</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102122r61"></a><span + id="x1-103122r61"></a><span class="cmr-6">61</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8166,11 +8184,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102124r62"></a><span + id="x1-103124r62"></a><span class="cmr-6">62</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102126r63"></a><span + id="x1-103126r63"></a><span class="cmr-6">63</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8191,11 +8209,11 @@ class="cmtt-8"> is</span><span class="cmtt-8"> zero</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102128r64"></a><span + id="x1-103128r64"></a><span class="cmr-6">64</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102130r65"></a><span + id="x1-103130r65"></a><span class="cmr-6">65</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8218,7 +8236,7 @@ class="cmtt-8"> [i]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> unset</span> <br class="fancyvrb" /><a - id="x1-102132r66"></a><span + id="x1-103132r66"></a><span class="cmr-6">66</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8240,11 +8258,11 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [predicted]</span><br class="fancyvrb" /><a - id="x1-102134r67"></a><span + id="x1-103134r67"></a><span class="cmr-6">67</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102136r68"></a><span + id="x1-103136r68"></a><span class="cmr-6">68</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8259,11 +8277,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102138r69"></a><span + id="x1-103138r69"></a><span class="cmr-6">69</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102140r70"></a><span + id="x1-103140r70"></a><span class="cmr-6">70</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8273,17 +8291,17 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102142r71"></a><span + id="x1-103142r71"></a><span class="cmr-6">71</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102144r72"></a><span + id="x1-103144r72"></a><span class="cmr-6">72</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 29)</span><span class="cmtt-8"> done</span><br class="fancyvrb" /><a - id="x1-102146r73"></a><span + id="x1-103146r73"></a><span class="cmr-6">73</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span></div> @@ -8318,7 +8336,7 @@ class="cmtt-12">[floor1_X_list] </span>and then apply the same <!--l. 368--><p class="noindent" >Then compute the final curve in one pass: <!--l. 370--><p class="noindent" > <div class="fancyvrb" id="fancyvrb32"><a - id="x1-102148r1"></a><span + id="x1-103148r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8327,7 +8345,7 @@ class="cmtt-8"> 1)</span><span class="cmtt-8"> [hx]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span><br class="fancyvrb" /><a - id="x1-102150r2"></a><span + id="x1-103150r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8336,7 +8354,7 @@ class="cmtt-8"> 2)</span><span class="cmtt-8"> [lx]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span><br class="fancyvrb" /><a - id="x1-102152r3"></a><span + id="x1-103152r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8351,7 +8369,7 @@ class="cmtt-8"> [0]</span><span class="cmtt-8"> *</span><span class="cmtt-8"> [floor1_multiplier]</span> <br class="fancyvrb" /><a - id="x1-102154r4"></a><span + id="x1-103154r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8367,11 +8385,11 @@ class="cmtt-8"> ...</span><span class="cmtt-8"> [floor1_values]-1</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102156r5"></a><span + id="x1-103156r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102158r6"></a><span + id="x1-103158r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8392,12 +8410,12 @@ class="cmtt-8"> set</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102160r7"></a><span + id="x1-103160r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-102162r8"></a><span + id="x1-103162r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8421,7 +8439,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> *</span><span class="cmtt-8"> [floor1_multiplier]</span><br class="fancyvrb" /><a - id="x1-102164r9"></a><span + id="x1-103164r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8437,7 +8455,7 @@ class="cmtt-8"> [floor1_X_list]’</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [i]</span> <br class="fancyvrb" /><a - id="x1-102166r10"></a><span + id="x1-103166r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8455,7 +8473,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 8)</span><span class="cmtt-8"> </span><a -href="#x1-1240009.2.7"><span +href="#x1-1250009.2.7"><span class="cmtt-8">render_line</span></a><span class="cmtt-8">(</span><span class="cmtt-8"> [lx],</span><span @@ -8464,7 +8482,7 @@ class="cmtt-8"> [hx],</span><span class="cmtt-8"> [hy],</span><span class="cmtt-8"> [floor]</span><span class="cmtt-8"> )</span><br class="fancyvrb" /><a - id="x1-102168r11"></a><span + id="x1-103168r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8484,7 +8502,7 @@ class="cmtt-8"> 9)</span><span class="cmtt-8"> [lx]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [hx]</span><br class="fancyvrb" /><a - id="x1-102170r12"></a><span + id="x1-103170r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -8496,7 +8514,7 @@ class="cmtt-8"> [ly]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [hy]</span> <br class="fancyvrb" /><a - id="x1-102172r13"></a><span + id="x1-103172r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8511,7 +8529,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102174r14"></a><span + id="x1-103174r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8521,11 +8539,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102176r15"></a><span + id="x1-103176r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102178r16"></a><span + id="x1-103178r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8540,11 +8558,11 @@ class="cmtt-8"> [n]</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102180r17"></a><span + id="x1-103180r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102182r18"></a><span + id="x1-103182r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8557,7 +8575,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 12)</span><span class="cmtt-8"> </span><a -href="#x1-1240009.2.7"><span +href="#x1-1250009.2.7"><span class="cmtt-8">render_line</span></a><span class="cmtt-8">(</span><span class="cmtt-8"> [hx],</span><span @@ -8567,11 +8585,11 @@ class="cmtt-8"> [hy],</span><span class="cmtt-8"> [floor]</span><span class="cmtt-8"> )</span> <br class="fancyvrb" /><a - id="x1-102184r19"></a><span + id="x1-103184r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102186r20"></a><span + id="x1-103186r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8581,11 +8599,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102188r21"></a><span + id="x1-103188r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102190r22"></a><span + id="x1-103190r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8600,11 +8618,11 @@ class="cmtt-8"> [n]</span><span class="cmtt-8"> )</span><span class="cmtt-8"> </span><span class="cmsy-8">{</span><br class="fancyvrb" /><a - id="x1-102192r23"></a><span + id="x1-103192r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102194r24"></a><span + id="x1-103194r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8627,11 +8645,11 @@ class="cmtt-8"> to</span><span class="cmtt-8"> [n]</span><span class="cmtt-8"> elements</span> <br class="fancyvrb" /><a - id="x1-102196r25"></a><span + id="x1-103196r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102198r26"></a><span + id="x1-103198r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8641,11 +8659,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmsy-8">}</span><br class="fancyvrb" /><a - id="x1-102200r27"></a><span + id="x1-103200r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102202r28"></a><span + id="x1-103202r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8665,7 +8683,7 @@ class="cmtt-8"> using</span> <br class="fancyvrb" /><a - id="x1-102204r29"></a><span + id="x1-103204r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8685,19 +8703,19 @@ class="cmtt-8"> into</span><span class="cmtt-8"> the</span><span class="cmtt-8"> vector</span><span class="cmtt-8"> </span><a -href="#x1-12600010.1"><span +href="#x1-12700010.1"><span class="cmtt-8">[floor1_inverse_dB_static_table]</span></a><br class="fancyvrb" /><a - id="x1-102206r30"></a><span + id="x1-103206r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-102208r31"></a><span + id="x1-103208r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 16)</span><span class="cmtt-8"> done</span><br class="fancyvrb" /><a - id="x1-102210r32"></a><span + id="x1-103210r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span></div> @@ -8706,10 +8724,10 @@ class="cmtt-8"> </span></div> <h3 class="sectionHead"><span class="titlemark">8. </span> <a - id="x1-1030008"></a>Residue setup and decode</h3> + id="x1-1040008"></a>Residue setup and decode</h3> <!--l. 6--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">8.1. </span> <a - id="x1-1040008.1"></a>Overview</h4> + id="x1-1050008.1"></a>Overview</h4> <!--l. 8--><p class="noindent" >A residue vector represents the fine detail of the audio spectrum of one channel in an audio frame after the encoder subtracts the floor curve and performs any channel coupling. A residue vector may represent spectral lines, spectral magnitude, spectral phase or hybrids as mixed by channel @@ -8721,7 +8739,7 @@ different encoding variants (numbered 0, 1 and 2) of the same basic vector encod abstraction. <!--l. 23--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">8.2. </span> <a - id="x1-1050008.2"></a>Residue format</h4> + id="x1-1060008.2"></a>Residue format</h4> <!--l. 25--><p class="noindent" >Residue format partitions each vector in the vector bundle into chunks, classifies each chunk, encodes the chunk classifications and finally encodes the chunks themselves using the the specific VQ arrangement defined for each selected classification. The @@ -8779,11 +8797,11 @@ src="residue-pack.png" alt="PIC" > <br /> <div class="caption" ><span class="id">Figure 11: </span><span -class="content">illustration of residue vector format</span></div><!--tex4ht:label?: x1-10500111 --> +class="content">illustration of residue vector format</span></div><!--tex4ht:label?: x1-10600111 --> </div> <!--l. 77--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">8.3. </span> <a - id="x1-1060008.3"></a>residue 0</h4> + id="x1-1070008.3"></a>residue 0</h4> <!--l. 79--><p class="noindent" >Residue 0 and 1 differ only in the way the values within a residue partition are interleaved during partition encoding (visually treated as a black box–or cyan box or brown box–in the above figure). @@ -8798,11 +8816,11 @@ dimension. codebook sizes of 8, 4, 2 and 1: <!--l. 92--><p class="noindent" > <div class="fancyvrb" id="fancyvrb33"><a - id="x1-106002r1"></a><span + id="x1-107002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-106004r2"></a><span + id="x1-107004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8830,11 +8848,11 @@ class="cmtt-8"> 5</span><span class="cmtt-8"> 6</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-106006r3"></a><span + id="x1-107006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-106008r4"></a><span + id="x1-107008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -8854,12 +8872,12 @@ class="cmtt-8"> 5</span><span class="cmtt-8"> 6</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-106010r5"></a><span + id="x1-107010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-106012r6"></a><span + id="x1-107012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -8881,11 +8899,11 @@ class="cmtt-8"> 3</span><span class="cmtt-8"> 5</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-106014r7"></a><span + id="x1-107014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-106016r8"></a><span + id="x1-107016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -8912,11 +8930,11 @@ class="cmtt-8"> 3</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span> <br class="fancyvrb" /><a - id="x1-106018r9"></a><span + id="x1-107018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-106020r10"></a><span + id="x1-107020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -8950,7 +8968,7 @@ class="cmtt-8"> ],</span><span class="cmtt-8"> [</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-106022r11"></a><span + id="x1-107022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span></div> @@ -8958,7 +8976,7 @@ class="cmtt-8"> </span></div> restricted to a power of two. <!--l. 111--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">8.4. </span> <a - id="x1-1070008.4"></a>residue 1</h4> + id="x1-1080008.4"></a>residue 1</h4> <!--l. 113--><p class="noindent" >Residue 1 does not interleave VQ encoding. It represents partition vector scalars in order. As with residue 0, however, partition length must be an integer multiple of the codebook dimension, although dimension may vary from pass to pass. @@ -8966,11 +8984,11 @@ although dimension may vary from pass to pass. codebook sizes of 8, 4, 2 and 1: <!--l. 121--><p class="noindent" > <div class="fancyvrb" id="fancyvrb34"><a - id="x1-107002r1"></a><span + id="x1-108002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-107004r2"></a><span + id="x1-108004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -8998,11 +9016,11 @@ class="cmtt-8"> 5</span><span class="cmtt-8"> 6</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-107006r3"></a><span + id="x1-108006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-107008r4"></a><span + id="x1-108008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -9022,12 +9040,12 @@ class="cmtt-8"> 5</span><span class="cmtt-8"> 6</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-107010r5"></a><span + id="x1-108010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-107012r6"></a><span + id="x1-108012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -9049,11 +9067,11 @@ class="cmtt-8"> 5</span><span class="cmtt-8"> 6</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-107014r7"></a><span + id="x1-108014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-107016r8"></a><span + id="x1-108016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -9080,11 +9098,11 @@ class="cmtt-8"> 6</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span> <br class="fancyvrb" /><a - id="x1-107018r9"></a><span + id="x1-108018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-107020r10"></a><span + id="x1-108020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> codebook</span><span @@ -9118,13 +9136,13 @@ class="cmtt-8"> ],</span><span class="cmtt-8"> [</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> ]</span><br class="fancyvrb" /><a - id="x1-107022r11"></a><span + id="x1-108022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span></div> <!--l. 137--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">8.5. </span> <a - id="x1-1080008.5"></a>residue 2</h4> + id="x1-1090008.5"></a>residue 2</h4> <!--l. 139--><p class="noindent" >Residue type two can be thought of as a variant of residue type 1. Rather than encoding multiple passed-in vectors as in residue type 1, the <span class="cmti-12">ch </span>passed in vectors of length <span @@ -9146,17 +9164,17 @@ src="residue2.png" alt="PIC" > <br /> <div class="caption" ><span class="id">Figure 12: </span><span -class="content">illustration of residue type 2</span></div><!--tex4ht:label?: x1-10800112 --> +class="content">illustration of residue type 2</span></div><!--tex4ht:label?: x1-10900112 --> </div> <!--l. 153--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">8.6. </span> <a - id="x1-1090008.6"></a>Residue decode</h4> + id="x1-1100008.6"></a>Residue decode</h4> <!--l. 155--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">8.6.1. </span> <a - id="x1-1100008.6.1"></a>header decode</h5> + id="x1-1110008.6.1"></a>header decode</h5> <!--l. 157--><p class="noindent" >Header decode for all three residue types is identical. <div class="fancyvrb" id="fancyvrb35"><a - id="x1-110002r1"></a><span + id="x1-111002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9170,7 +9188,7 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><br class="fancyvrb" /><a - id="x1-110004r2"></a><span + id="x1-111004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9185,7 +9203,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-110006r3"></a><span + id="x1-111006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9203,7 +9221,7 @@ class="cmtt-8"> and</span><span class="cmtt-8"> add</span><span class="cmtt-8"> one</span> <br class="fancyvrb" /><a - id="x1-110008r4"></a><span + id="x1-111008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9220,7 +9238,7 @@ class="cmtt-8"> integer</span><span class="cmtt-8"> and</span><span class="cmtt-8"> add</span><span class="cmtt-8"> one</span><br class="fancyvrb" /><a - id="x1-110010r5"></a><span + id="x1-111010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9269,7 +9287,7 @@ class="cmtt-12">[residue_classbook]</span>.entries, the bitstream should be rega passes. <!--l. 193--><p class="noindent" > <div class="fancyvrb" id="fancyvrb36"><a - id="x1-110012r1"></a><span + id="x1-111012r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9284,11 +9302,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [residue\_classifications]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-110014r2"></a><span + id="x1-111014r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-110016r3"></a><span + id="x1-111016r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9303,7 +9321,7 @@ class="cmtt-8"> [high\_bits]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span> <br class="fancyvrb" /><a - id="x1-110018r4"></a><span + id="x1-111018r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9322,7 +9340,7 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><br class="fancyvrb" /><a - id="x1-110020r5"></a><span + id="x1-111020r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9341,7 +9359,7 @@ class="cmtt-8"> bit</span><span class="cmtt-8"> as</span><span class="cmtt-8"> boolean</span> <br class="fancyvrb" /><a - id="x1-110022r6"></a><span + id="x1-111022r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9368,7 +9386,7 @@ class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span> <br class="fancyvrb" /><a - id="x1-110024r7"></a><span + id="x1-111024r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9389,7 +9407,7 @@ class="cmtt-8"> *</span><span class="cmtt-8"> 8</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [low\_bits]</span><br class="fancyvrb" /><a - id="x1-110026r8"></a><span + id="x1-111026r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9398,7 +9416,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-110028r9"></a><span + id="x1-111028r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9411,7 +9429,7 @@ encoding stages (8 in Vorbis I, as constrained by the elements of the cascade bi bits): <!--l. 211--><p class="noindent" > <div class="fancyvrb" id="fancyvrb37"><a - id="x1-110030r1"></a><span + id="x1-111030r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9426,11 +9444,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [residue\_classifications]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-110032r2"></a><span + id="x1-111032r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-110034r3"></a><span + id="x1-111034r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9451,11 +9469,11 @@ class="cmtt-8"> ...</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> {</span> <br class="fancyvrb" /><a - id="x1-110036r4"></a><span + id="x1-111036r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-110038r5"></a><span + id="x1-111038r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9483,12 +9501,12 @@ class="cmtt-8"> is</span><span class="cmtt-8"> set</span><span class="cmtt-8"> )</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-110040r6"></a><span + id="x1-111040r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-110042r7"></a><span + id="x1-111042r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9520,11 +9538,11 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> as</span><span class="cmtt-8"> unsigned</span><span class="cmtt-8"> integer</span><br class="fancyvrb" /><a - id="x1-110044r8"></a><span + id="x1-111044r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-110046r9"></a><span + id="x1-111046r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9545,12 +9563,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> }</span><span class="cmtt-8"> else</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-110048r10"></a><span + id="x1-111048r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-110050r11"></a><span + id="x1-111050r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9577,11 +9595,11 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [i][j]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> unused</span><br class="fancyvrb" /><a - id="x1-110052r12"></a><span + id="x1-111052r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-110054r13"></a><span + id="x1-111054r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9600,7 +9618,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-110056r14"></a><span + id="x1-111056r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9614,7 +9632,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-110058r15"></a><span + id="x1-111058r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9624,11 +9642,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-110060r16"></a><span + id="x1-111060r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-110062r17"></a><span + id="x1-111062r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9643,7 +9661,7 @@ set up in this stream also renders the stream undecodable. All codebooks in arra undecodable. <!--l. 241--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">8.6.2. </span> <a - id="x1-1110008.6.2"></a>packet decode</h5> + id="x1-1120008.6.2"></a>packet decode</h5> <!--l. 243--><p class="noindent" >Format 0 and 1 packet decode is identical except for specific partition interleave. Format 2 packet decode can be built out of the format 1 decode process. Thus we describe first the decode infrastructure identical to all three formats. @@ -9672,7 +9690,7 @@ class="cmtt-12">[ch] </span>is provided by the higher level decoding process. <!--l. 269--><p class="noindent" > <div class="fancyvrb" id="fancyvrb38"><a - id="x1-111002r1"></a><span + id="x1-112002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9682,7 +9700,7 @@ class="cmtt-8"> [actual\_size]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> current</span><span class="cmtt-8"> blocksize/2;</span><br class="fancyvrb" /><a - id="x1-111004r2"></a><span + id="x1-112004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9695,7 +9713,7 @@ class="cmtt-8"> is</span><span class="cmtt-8"> format</span><span class="cmtt-8"> 2</span> <br class="fancyvrb" /><a - id="x1-111006r3"></a><span + id="x1-112006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9711,7 +9729,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [actual\_size]</span><span class="cmtt-8"> *</span><span class="cmtt-8"> [ch];</span><br class="fancyvrb" /><a - id="x1-111008r4"></a><span + id="x1-112008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9723,7 +9741,7 @@ class="cmtt-8"> maximum</span><span class="cmtt-8"> of</span><span class="cmtt-8"> ([residue\_begin],[actual\_size]);</span> <br class="fancyvrb" /><a - id="x1-111010r5"></a><span + id="x1-112010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9737,7 +9755,7 @@ class="cmtt-8"> ([residue\_end],[actual\_size]);</span></div> <!--l. 277--><p class="noindent" >The following convenience values are conceptually useful to clarifying the decode process: <!--l. 280--><p class="noindent" > <div class="fancyvrb" id="fancyvrb39"><a - id="x1-111012r1"></a><span + id="x1-112012r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9751,7 +9769,7 @@ class="cmtt-8"> of</span><span class="cmtt-8"> codebook</span><span class="cmtt-8"> [residue\_classbook]</span> <br class="fancyvrb" /><a - id="x1-111014r2"></a><span + id="x1-112014r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9762,7 +9780,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [limit\_residue\_end]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [limit\_residue\_begin]</span><br class="fancyvrb" /><a - id="x1-111016r3"></a><span + id="x1-112016r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9775,7 +9793,7 @@ class="cmtt-8"> /</span><span class="cmtt-8"> [residue\_partition\_size]</span></div> <!--l. 286--><p class="noindent" >Packet decode proceeds as follows, matching the description offered earlier in the document. <div class="fancyvrb" id="fancyvrb40"><a - id="x1-111018r1"></a><span + id="x1-112018r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9790,7 +9808,7 @@ class="cmtt-8"> that</span><span class="cmtt-8"> will</span><span class="cmtt-8"> be</span><span class="cmtt-8"> returned.</span><br class="fancyvrb" /><a - id="x1-111020r2"></a><span + id="x1-112020r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9808,7 +9826,7 @@ class="cmtt-8"> residue</span><span class="cmtt-8"> to</span><span class="cmtt-8"> decode.</span> <br class="fancyvrb" /><a - id="x1-111022r3"></a><span + id="x1-112022r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9823,11 +9841,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> 7</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-111024r4"></a><span + id="x1-112024r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111026r5"></a><span + id="x1-112026r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9841,12 +9859,12 @@ class="cmtt-8"> 4)</span><span class="cmtt-8"> [partition\_count]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span><br class="fancyvrb" /><a - id="x1-111028r6"></a><span + id="x1-112028r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-111030r7"></a><span + id="x1-112030r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9863,11 +9881,11 @@ class="cmtt-8"> is</span><span class="cmtt-8"> less</span><span class="cmtt-8"> than</span><span class="cmtt-8"> [partitions\_to\_read]</span><br class="fancyvrb" /><a - id="x1-111032r8"></a><span + id="x1-112032r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111034r9"></a><span + id="x1-112034r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9888,12 +9906,12 @@ class="cmtt-8"> ([pass]</span><span class="cmtt-8"> is</span><span class="cmtt-8"> zero)</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-111036r10"></a><span + id="x1-112036r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-111038r11"></a><span + id="x1-112038r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9923,11 +9941,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ..</span><span class="cmtt-8"> [ch]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-111040r12"></a><span + id="x1-112040r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111042r13"></a><span + id="x1-112042r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -9964,11 +9982,11 @@ class="cmtt-8"> not</span><span class="cmtt-8"> decode’</span><span class="cmtt-8"> {</span> <br class="fancyvrb" /><a - id="x1-111044r14"></a><span + id="x1-112044r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111046r15"></a><span + id="x1-112046r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10011,7 +10029,7 @@ class="cmtt-8"> in</span><span class="cmtt-8"> scalar</span><span class="cmtt-8"> context</span> <br class="fancyvrb" /><a - id="x1-111048r16"></a><span + id="x1-112048r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10052,11 +10070,11 @@ class="cmtt-8"> ...</span><span class="cmtt-8"> 0</span><span class="cmtt-8"> {</span> <br class="fancyvrb" /><a - id="x1-111050r17"></a><span + id="x1-112050r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111052r18"></a><span + id="x1-112052r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10097,7 +10115,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [j],([i]+[partition\_count])</span><span class="cmtt-8"> =</span> <br class="fancyvrb" /><a - id="x1-111054r19"></a><span + id="x1-112054r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10140,7 +10158,7 @@ class="cmtt-8"> integer</span><span class="cmtt-8"> modulo</span><span class="cmtt-8"> [residue\_classifications]</span> <br class="fancyvrb" /><a - id="x1-111056r20"></a><span + id="x1-112056r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10183,12 +10201,12 @@ class="cmtt-8"> [residue\_classifications]</span><span class="cmtt-8"> using</span><span class="cmtt-8"> integer</span><span class="cmtt-8"> division</span><br class="fancyvrb" /><a - id="x1-111058r21"></a><span + id="x1-112058r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-111060r22"></a><span + id="x1-112060r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10222,11 +10240,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111062r23"></a><span + id="x1-112062r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111064r24"></a><span + id="x1-112064r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10255,11 +10273,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111066r25"></a><span + id="x1-112066r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111068r26"></a><span + id="x1-112068r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10283,11 +10301,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111070r27"></a><span + id="x1-112070r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111072r28"></a><span + id="x1-112072r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10306,12 +10324,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111074r29"></a><span + id="x1-112074r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-111076r30"></a><span + id="x1-112076r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10339,7 +10357,7 @@ class="cmtt-8"> 1)</span><span class="cmtt-8"> while</span><span class="cmtt-8"> [partition\_count]</span> <br class="fancyvrb" /><a - id="x1-111078r31"></a><span + id="x1-112078r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10363,11 +10381,11 @@ class="cmtt-8"> less</span><span class="cmtt-8"> than</span><span class="cmtt-8"> [partitions\_to\_read]</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-111080r32"></a><span + id="x1-112080r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111082r33"></a><span + id="x1-112082r33"></a><span class="cmr-6">33</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10398,11 +10416,11 @@ class="cmtt-8"> ..</span><span class="cmtt-8"> [ch]-1</span><span class="cmtt-8"> {</span> <br class="fancyvrb" /><a - id="x1-111084r34"></a><span + id="x1-112084r34"></a><span class="cmr-6">34</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111086r35"></a><span + id="x1-112086r35"></a><span class="cmr-6">35</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10438,12 +10456,12 @@ class="cmtt-8"> ’do</span><span class="cmtt-8"> not</span><span class="cmtt-8"> decode’</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-111088r36"></a><span + id="x1-112088r36"></a><span class="cmr-6">36</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-111090r37"></a><span + id="x1-112090r37"></a><span class="cmr-6">37</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10481,7 +10499,7 @@ class="cmtt-8"> [classifications]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [j],[partition\_count]</span> <br class="fancyvrb" /><a - id="x1-111092r38"></a><span + id="x1-112092r38"></a><span class="cmr-6">38</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10518,7 +10536,7 @@ class="cmtt-8"> array</span><span class="cmtt-8"> [residue\_books]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [vqclass],[pass]</span><br class="fancyvrb" /><a - id="x1-111094r39"></a><span + id="x1-112094r39"></a><span class="cmr-6">39</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10556,11 +10574,11 @@ class="cmtt-8"> not</span><span class="cmtt-8"> ’unused’)</span><span class="cmtt-8"> {</span> <br class="fancyvrb" /><a - id="x1-111096r40"></a><span + id="x1-112096r40"></a><span class="cmr-6">40</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111098r41"></a><span + id="x1-112098r41"></a><span class="cmr-6">41</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10607,7 +10625,7 @@ class="cmtt-8"> starting</span><span class="cmtt-8"> at</span><span class="cmtt-8"> scalar</span> <br class="fancyvrb" /><a - id="x1-111100r42"></a><span + id="x1-112100r42"></a><span class="cmr-6">42</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10650,7 +10668,7 @@ class="cmtt-8"> offset</span><span class="cmtt-8"> [limit\_residue\_begin]+[partition\_count]*[residue\_partition\_size]</span><span class="cmtt-8"> using</span> <br class="fancyvrb" /><a - id="x1-111102r43"></a><span + id="x1-112102r43"></a><span class="cmr-6">43</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10695,7 +10713,7 @@ class="cmtt-8"> [vqbook]</span><span class="cmtt-8"> in</span><span class="cmtt-8"> VQ</span><span class="cmtt-8"> context</span><br class="fancyvrb" /><a - id="x1-111104r44"></a><span + id="x1-112104r44"></a><span class="cmr-6">44</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10725,7 +10743,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111106r45"></a><span + id="x1-112106r45"></a><span class="cmr-6">45</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10751,11 +10769,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span> <br class="fancyvrb" /><a - id="x1-111108r46"></a><span + id="x1-112108r46"></a><span class="cmr-6">46</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111110r47"></a><span + id="x1-112110r47"></a><span class="cmr-6">47</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10780,11 +10798,11 @@ class="cmtt-8"> increment</span><span class="cmtt-8"> [partition\_count]</span><span class="cmtt-8"> by</span><span class="cmtt-8"> one</span><br class="fancyvrb" /><a - id="x1-111112r48"></a><span + id="x1-112112r48"></a><span class="cmr-6">48</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111114r49"></a><span + id="x1-112114r49"></a><span class="cmr-6">49</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10803,7 +10821,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111116r50"></a><span + id="x1-112116r50"></a><span class="cmr-6">50</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10817,7 +10835,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111118r51"></a><span + id="x1-112118r51"></a><span class="cmr-6">51</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10826,17 +10844,17 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-111120r52"></a><span + id="x1-112120r52"></a><span class="cmr-6">52</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-111122r53"></a><span + id="x1-112122r53"></a><span class="cmr-6">53</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 21)</span><span class="cmtt-8"> done</span><br class="fancyvrb" /><a - id="x1-111124r54"></a><span + id="x1-112124r54"></a><span class="cmr-6">54</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span></div> @@ -10844,7 +10862,7 @@ class="cmtt-8"> </span></div> Decode returns the result of vector decode up to that point. <!--l. 350--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">8.6.3. </span> <a - id="x1-1120008.6.3"></a>format 0 specifics</h5> + id="x1-1130008.6.3"></a>format 0 specifics</h5> <!--l. 352--><p class="noindent" >Format zero decodes partitions exactly as described earlier in the ’Residue Format: residue 0’ section. The following pseudocode presents the same algorithm. Assume: @@ -10862,7 +10880,7 @@ class="cmtt-12">[v] </span>is the residue vector class="cmtt-12">[offset] </span>is the beginning read offset in [v]</li></ul> <!--l. 363--><p class="noindent" > <div class="fancyvrb" id="fancyvrb41"><a - id="x1-112002r1"></a><span + id="x1-113002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10872,7 +10890,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [n]</span><span class="cmtt-8"> /</span><span class="cmtt-8"> [codebook\_dimensions]</span><br class="fancyvrb" /><a - id="x1-112004r2"></a><span + id="x1-113004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10886,12 +10904,12 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [step]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-112006r3"></a><span + id="x1-113006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-112008r4"></a><span + id="x1-113008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10915,7 +10933,7 @@ class="cmtt-8"> in</span><span class="cmtt-8"> VQ</span><span class="cmtt-8"> context</span> <br class="fancyvrb" /><a - id="x1-112010r5"></a><span + id="x1-113010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10934,11 +10952,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [codebook\_dimensions]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-112012r6"></a><span + id="x1-113012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-112014r7"></a><span + id="x1-113014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10959,7 +10977,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> ([offset]+[i]+[j]*[step])</span><span class="cmtt-8"> =</span> <br class="fancyvrb" /><a - id="x1-112016r8"></a><span + id="x1-113016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -10975,7 +10993,7 @@ class="cmtt-8"> [v]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> ([offset]+[i]+[j]*[step])</span><span class="cmtt-8"> +</span><br class="fancyvrb" /><a - id="x1-112018r9"></a><span + id="x1-113018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -10998,11 +11016,11 @@ class="cmtt-8"> vector</span><span class="cmtt-8"> [entry\_temp]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [j]</span><br class="fancyvrb" /><a - id="x1-112020r10"></a><span + id="x1-113020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-112022r11"></a><span + id="x1-113022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11015,11 +11033,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-112024r12"></a><span + id="x1-113024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-112026r13"></a><span + id="x1-113026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11027,24 +11045,24 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-112028r14"></a><span + id="x1-113028r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-112030r15"></a><span + id="x1-113030r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 6)</span><span class="cmtt-8"> done</span><br class="fancyvrb" /><a - id="x1-112032r16"></a><span + id="x1-113032r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span></div> <!--l. 384--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">8.6.4. </span> <a - id="x1-1130008.6.4"></a>format 1 specifics</h5> + id="x1-1140008.6.4"></a>format 1 specifics</h5> <!--l. 386--><p class="noindent" >Format 1 decodes partitions exactly as described earlier in the ’Residue Format: residue 1’ section. The following pseudocode presents the same algorithm. Assume: <ul class="itemize1"> @@ -11059,7 +11077,7 @@ class="cmtt-12">[v] </span>is the residue vector class="cmtt-12">[offset] </span>is the beginning read offset in [v]</li></ul> <!--l. 398--><p class="noindent" > <div class="fancyvrb" id="fancyvrb42"><a - id="x1-113002r1"></a><span + id="x1-114002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11067,7 +11085,7 @@ class="cmtt-8"> 1)</span><span class="cmtt-8"> [i]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span><br class="fancyvrb" /><a - id="x1-113004r2"></a><span + id="x1-114004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11086,7 +11104,7 @@ class="cmtt-8"> in</span><span class="cmtt-8"> VQ</span><span class="cmtt-8"> context</span> <br class="fancyvrb" /><a - id="x1-113006r3"></a><span + id="x1-114006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11100,11 +11118,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [codebook\_dimensions]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-113008r4"></a><span + id="x1-114008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-113010r5"></a><span + id="x1-114010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11120,7 +11138,7 @@ class="cmtt-8"> element</span><span class="cmtt-8"> ([offset]+[i])</span><span class="cmtt-8"> =</span> <br class="fancyvrb" /><a - id="x1-113012r6"></a><span + id="x1-114012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8">  </span><span @@ -11130,7 +11148,7 @@ class="cmtt-8"> [v]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> ([offset]+[i])</span><span class="cmtt-8"> +</span><br class="fancyvrb" /><a - id="x1-113014r7"></a><span + id="x1-114014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11147,7 +11165,7 @@ class="cmtt-8"> vector</span><span class="cmtt-8"> [entry\_temp]</span><span class="cmtt-8"> element</span><span class="cmtt-8"> [j]</span><br class="fancyvrb" /><a - id="x1-113016r8"></a><span + id="x1-114016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11159,12 +11177,12 @@ class="cmtt-8"> </span><span class="cmtt-8"> 5)</span><span class="cmtt-8"> increment</span><span class="cmtt-8"> [i]</span><br class="fancyvrb" /><a - id="x1-113018r9"></a><span + id="x1-114018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-113020r10"></a><span + id="x1-114020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11172,11 +11190,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-113022r11"></a><span + id="x1-114022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-113024r12"></a><span + id="x1-114024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11194,7 +11212,7 @@ class="cmtt-8"> continue</span><span class="cmtt-8"> at</span><span class="cmtt-8"> step</span><span class="cmtt-8"> 2</span><br class="fancyvrb" /><a - id="x1-113026r13"></a><span + id="x1-114026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11203,7 +11221,7 @@ class="cmtt-8"> 7)</span><span class="cmtt-8"> done</span></div> <!--l. 416--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">8.6.5. </span> <a - id="x1-1140008.6.5"></a>format 2 specifics</h5> + id="x1-1150008.6.5"></a>format 2 specifics</h5> @@ -11240,7 +11258,7 @@ class="cmtt-12">[v] </span>returned by format 1 decode as class="cmti-12">ch </span>independent vectors, one for each outputchannel, according to: <div class="fancyvrb" id="fancyvrb43"><a - id="x1-114005r1"></a><span + id="x1-115005r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11255,11 +11273,11 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [n]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-114007r2"></a><span + id="x1-115007r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-114009r3"></a><span + id="x1-115009r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11279,12 +11297,12 @@ class="cmtt-8"> 0</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [ch]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-114011r4"></a><span + id="x1-115011r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-114013r5"></a><span + id="x1-115013r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11315,11 +11333,11 @@ class="cmtt-8"> *</span><span class="cmtt-8"> [ch]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [j])</span><br class="fancyvrb" /><a - id="x1-114015r6"></a><span + id="x1-115015r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-114017r7"></a><span + id="x1-115017r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11333,7 +11351,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-114019r8"></a><span + id="x1-115019r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11342,11 +11360,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-114021r9"></a><span + id="x1-115021r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-114023r10"></a><span + id="x1-115023r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11361,19 +11379,19 @@ class="cmtt-8"> done</span></div> <h3 class="sectionHead"><span class="titlemark">9. </span> <a - id="x1-1150009"></a>Helper equations</h3> + id="x1-1160009"></a>Helper equations</h3> <!--l. 6--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">9.1. </span> <a - id="x1-1160009.1"></a>Overview</h4> + id="x1-1170009.1"></a>Overview</h4> <!--l. 8--><p class="noindent" >The equations below are used in multiple places by the Vorbis codec specification. Rather than cluttering up the main specification documents, they are defined here and referenced where appropriate. <!--l. 13--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">9.2. </span> <a - id="x1-1170009.2"></a>Functions</h4> + id="x1-1180009.2"></a>Functions</h4> <!--l. 15--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.1. </span> <a - id="x1-1180009.2.1"></a>ilog</h5> + id="x1-1190009.2.1"></a>ilog</h5> <!--l. 17--><p class="noindent" >The ”ilog(x)” function returns the position number (1 through n) of the highest set bit in the two’s complement integer value <span class="cmtt-12">[x]</span>. Values of <span @@ -11381,7 +11399,7 @@ class="cmtt-12">[x] </span>less than zero are defined to return zero. <!--l. 20--><p class="noindent" > <div class="fancyvrb" id="fancyvrb44"><a - id="x1-118002r1"></a><span + id="x1-119002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11390,7 +11408,7 @@ class="cmtt-8"> 1)</span><span class="cmtt-8"> [return\_value]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0;</span><br class="fancyvrb" /><a - id="x1-118004r2"></a><span + id="x1-119004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11405,11 +11423,11 @@ class="cmtt-8"> than</span><span class="cmtt-8"> zero</span><span class="cmtt-8"> )</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-118006r3"></a><span + id="x1-119006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-118008r4"></a><span + id="x1-119008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11423,7 +11441,7 @@ class="cmtt-8"> 3)</span><span class="cmtt-8"> increment</span><span class="cmtt-8"> [return\_value];</span> <br class="fancyvrb" /><a - id="x1-118010r5"></a><span + id="x1-119010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11447,7 +11465,7 @@ class="cmtt-8"> the</span><span class="cmtt-8"> MSb</span><span class="cmtt-8"> with</span><span class="cmtt-8"> zero</span><br class="fancyvrb" /><a - id="x1-118012r6"></a><span + id="x1-119012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11462,11 +11480,11 @@ class="cmtt-8"> repeat</span><span class="cmtt-8"> at</span><span class="cmtt-8"> step</span><span class="cmtt-8"> 2)</span><br class="fancyvrb" /><a - id="x1-118014r7"></a><span + id="x1-119014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-118016r8"></a><span + id="x1-119016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11475,11 +11493,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-118018r9"></a><span + id="x1-119018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-118020r10"></a><span + id="x1-119020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11507,14 +11525,14 @@ class="cmtt-8"> done</span></div> <li class="itemize">ilog(negative number) = 0;</li></ul> <!--l. 48--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.2. </span> <a - id="x1-1190009.2.2"></a>float32_unpack</h5> + id="x1-1200009.2.2"></a>float32_unpack</h5> <!--l. 50--><p class="noindent" >”float32_unpack(x)” is intended to translate the packed binary representation of a Vorbis codebook float value into the representation used by the decoder for floating point numbers. For purposes of this example, we will unpack a Vorbis float32 into a host-native floating point number. <!--l. 56--><p class="noindent" > <div class="fancyvrb" id="fancyvrb45"><a - id="x1-119002r1"></a><span + id="x1-120002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11528,7 +11546,7 @@ class="cmtt-8"> AND</span><span class="cmtt-8"> 0x1fffff</span><span class="cmtt-8"> (unsigned</span><span class="cmtt-8"> result)</span><br class="fancyvrb" /><a - id="x1-119004r2"></a><span + id="x1-120004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11543,7 +11561,7 @@ class="cmtt-8"> 0x80000000</span><span class="cmtt-8"> (unsigned</span><span class="cmtt-8"> result)</span> <br class="fancyvrb" /><a - id="x1-119006r3"></a><span + id="x1-120006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11563,7 +11581,7 @@ class="cmtt-8"> bits</span><span class="cmtt-8"> (unsigned</span><span class="cmtt-8"> result)</span> <br class="fancyvrb" /><a - id="x1-119008r4"></a><span + id="x1-120008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11578,7 +11596,7 @@ class="cmtt-8"> )</span><span class="cmtt-8"> then</span><span class="cmtt-8"> negate</span><span class="cmtt-8"> [mantissa]</span><br class="fancyvrb" /><a - id="x1-119010r5"></a><span + id="x1-120010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11598,7 +11616,7 @@ class="cmtt-8"> )</span><span class="cmtt-8"> )</span></div> <!--l. 66--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.3. </span> <a - id="x1-1200009.2.3"></a>lookup1_values</h5> + id="x1-1210009.2.3"></a>lookup1_values</h5> <!--l. 68--><p class="noindent" >”lookup1_values(codebook_entries,codebook_dimensions)” is used to compute the correct length of the value index for a codebook VQ lookup table of lookup type 1. The values on this list are permuted to construct the VQ vector lookup table of size @@ -11615,7 +11633,7 @@ class="cmtt-12">[codebook_entries]</span>’. <!--l. 81--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.4. </span> <a - id="x1-1210009.2.4"></a>low_neighbor</h5> + id="x1-1220009.2.4"></a>low_neighbor</h5> <!--l. 83--><p class="noindent" >”low_neighbor(v,x)” finds the position <span class="cmtt-12">n </span>in vector <span class="cmtt-12">[v] </span>of the greatest value scalar element for @@ -11629,7 +11647,7 @@ class="cmtt-12">[v] </span>element class="cmtt-12">[x]</span>. <!--l. 88--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.5. </span> <a - id="x1-1220009.2.5"></a>high_neighbor</h5> + id="x1-1230009.2.5"></a>high_neighbor</h5> <!--l. 90--><p class="noindent" >”high_neighbor(v,x)” finds the position <span class="cmtt-12">n </span>in vector [v] of the lowest value scalar element for which <span @@ -11642,13 +11660,13 @@ class="cmtt-12">[v] </span>element class="cmtt-12">[x]</span>. <!--l. 97--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.6. </span> <a - id="x1-1230009.2.6"></a>render_point</h5> + id="x1-1240009.2.6"></a>render_point</h5> <!--l. 99--><p class="noindent" >”render_point(x0,y0,x1,y1,X)” is used to find the Y value at point X along the line specified by x0, x1, y0 and y1. This function uses an integer algorithm to solve for the point directly without calculating intervening values along the line. <!--l. 104--><p class="noindent" > <div class="fancyvrb" id="fancyvrb46"><a - id="x1-123002r1"></a><span + id="x1-124002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11660,7 +11678,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [y1]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [y0]</span><br class="fancyvrb" /><a - id="x1-123004r2"></a><span + id="x1-124004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11671,7 +11689,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [x1]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [x0]</span><br class="fancyvrb" /><a - id="x1-123006r3"></a><span + id="x1-124006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11683,7 +11701,7 @@ class="cmtt-8"> absolute</span><span class="cmtt-8"> value</span><span class="cmtt-8"> of</span><span class="cmtt-8"> [dy]</span><br class="fancyvrb" /><a - id="x1-123008r4"></a><span + id="x1-124008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11697,7 +11715,7 @@ class="cmtt-8"> ([X]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [x0])</span> <br class="fancyvrb" /><a - id="x1-123010r5"></a><span + id="x1-124010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11711,7 +11729,7 @@ class="cmtt-8"> [adx]</span><span class="cmtt-8"> using</span><span class="cmtt-8"> integer</span><span class="cmtt-8"> division</span><br class="fancyvrb" /><a - id="x1-123012r6"></a><span + id="x1-124012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11726,11 +11744,11 @@ class="cmtt-8"> than</span><span class="cmtt-8"> zero</span><span class="cmtt-8"> )</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-123014r7"></a><span + id="x1-124014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-123016r8"></a><span + id="x1-124016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11747,11 +11765,11 @@ class="cmtt-8"> [y0]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [off]</span> <br class="fancyvrb" /><a - id="x1-123018r9"></a><span + id="x1-124018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-123020r10"></a><span + id="x1-124020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11762,11 +11780,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> }</span><span class="cmtt-8"> else</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-123022r11"></a><span + id="x1-124022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-123024r12"></a><span + id="x1-124024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11782,11 +11800,11 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [y0]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [off]</span><br class="fancyvrb" /><a - id="x1-123026r13"></a><span + id="x1-124026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-123028r14"></a><span + id="x1-124028r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11795,11 +11813,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-123030r15"></a><span + id="x1-124030r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-123032r16"></a><span + id="x1-124032r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11808,7 +11826,7 @@ class="cmtt-8"> 9)</span><span class="cmtt-8"> done</span></div> <!--l. 125--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.2.7. </span> <a - id="x1-1240009.2.7"></a>render_line</h5> + id="x1-1250009.2.7"></a>render_line</h5> @@ -11818,7 +11836,7 @@ been relevant elsewhere, but here we must define integer division as rounding di positive and negative numbers toward zero. <!--l. 134--><p class="noindent" > <div class="fancyvrb" id="fancyvrb47"><a - id="x1-124002r1"></a><span + id="x1-125002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11831,7 +11849,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [y1]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [y0]</span><br class="fancyvrb" /><a - id="x1-124004r2"></a><span + id="x1-125004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11843,7 +11861,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [x1]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [x0]</span><br class="fancyvrb" /><a - id="x1-124006r3"></a><span + id="x1-125006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11856,7 +11874,7 @@ class="cmtt-8"> absolute</span><span class="cmtt-8"> value</span><span class="cmtt-8"> of</span><span class="cmtt-8"> [dy]</span><br class="fancyvrb" /><a - id="x1-124008r4"></a><span + id="x1-125008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11871,7 +11889,7 @@ class="cmtt-8"> using</span><span class="cmtt-8"> integer</span><span class="cmtt-8"> division</span> <br class="fancyvrb" /><a - id="x1-124010r5"></a><span + id="x1-125010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11883,7 +11901,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> [x]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [x0]</span><br class="fancyvrb" /><a - id="x1-124012r6"></a><span + id="x1-125012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11895,7 +11913,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> [y]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [y0]</span><br class="fancyvrb" /><a - id="x1-124014r7"></a><span + id="x1-125014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11905,11 +11923,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> [err]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> 0</span><br class="fancyvrb" /><a - id="x1-124016r8"></a><span + id="x1-125016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124018r9"></a><span + id="x1-125018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11924,11 +11942,11 @@ class="cmtt-8"> than</span><span class="cmtt-8"> 0</span><span class="cmtt-8"> )</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-124020r10"></a><span + id="x1-125020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124022r11"></a><span + id="x1-125022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11946,11 +11964,11 @@ class="cmtt-8"> [base]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> 1</span> <br class="fancyvrb" /><a - id="x1-124024r12"></a><span + id="x1-125024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124026r13"></a><span + id="x1-125026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11961,11 +11979,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> }</span><span class="cmtt-8"> else</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-124028r14"></a><span + id="x1-125028r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124030r15"></a><span + id="x1-125030r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11981,11 +11999,11 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [base]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> 1</span><br class="fancyvrb" /><a - id="x1-124032r16"></a><span + id="x1-125032r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124034r17"></a><span + id="x1-125034r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -11994,11 +12012,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-124036r18"></a><span + id="x1-125036r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124038r19"></a><span + id="x1-125038r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12014,7 +12032,7 @@ class="cmtt-8"> [base])</span><span class="cmtt-8"> *</span><span class="cmtt-8"> [adx]</span> <br class="fancyvrb" /><a - id="x1-124040r20"></a><span + id="x1-125040r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12025,11 +12043,11 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [x]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [y]</span><br class="fancyvrb" /><a - id="x1-124042r21"></a><span + id="x1-125042r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124044r22"></a><span + id="x1-125044r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12043,11 +12061,11 @@ class="cmtt-8"> [x0]+1</span><span class="cmtt-8"> ...</span><span class="cmtt-8"> [x1]-1</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-124046r23"></a><span + id="x1-125046r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124048r24"></a><span + id="x1-125048r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12064,7 +12082,7 @@ class="cmtt-8"> [err]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [ady];</span> <br class="fancyvrb" /><a - id="x1-124050r25"></a><span + id="x1-125050r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12082,11 +12100,11 @@ class="cmtt-8"> >=</span><span class="cmtt-8"> [adx]</span><span class="cmtt-8"> )</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-124052r26"></a><span + id="x1-125052r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124054r27"></a><span + id="x1-125054r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12108,7 +12126,7 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [err]</span><span class="cmtt-8"> -</span><span class="cmtt-8"> [adx]</span><br class="fancyvrb" /><a - id="x1-124056r28"></a><span + id="x1-125056r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12132,12 +12150,12 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [y]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [sy]</span><br class="fancyvrb" /><a - id="x1-124058r29"></a><span + id="x1-125058r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span> <br class="fancyvrb" /><a - id="x1-124060r30"></a><span + id="x1-125060r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12154,11 +12172,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> }</span><span class="cmtt-8"> else</span><span class="cmtt-8"> {</span><br class="fancyvrb" /><a - id="x1-124062r31"></a><span + id="x1-125062r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124064r32"></a><span + id="x1-125064r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12180,11 +12198,11 @@ class="cmtt-8"> =</span><span class="cmtt-8"> [y]</span><span class="cmtt-8"> +</span><span class="cmtt-8"> [base]</span><br class="fancyvrb" /><a - id="x1-124066r33"></a><span + id="x1-125066r33"></a><span class="cmr-6">33</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124068r34"></a><span + id="x1-125068r34"></a><span class="cmr-6">34</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12199,11 +12217,11 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> }</span><br class="fancyvrb" /><a - id="x1-124070r35"></a><span + id="x1-125070r35"></a><span class="cmr-6">35</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124072r36"></a><span + id="x1-125072r36"></a><span class="cmr-6">36</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12220,11 +12238,11 @@ class="cmtt-8"> element</span><span class="cmtt-8"> [x]</span><span class="cmtt-8"> =</span><span class="cmtt-8"> [y]</span><br class="fancyvrb" /><a - id="x1-124074r37"></a><span + id="x1-125074r37"></a><span class="cmr-6">37</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><br class="fancyvrb" /><a - id="x1-124076r38"></a><span + id="x1-125076r38"></a><span class="cmr-6">38</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12240,16 +12258,16 @@ class="cmtt-8"> }</span></div> <h3 class="sectionHead"><span class="titlemark">10. </span> <a - id="x1-12500010"></a>Tables</h3> + id="x1-12600010"></a>Tables</h3> <!--l. 6--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">10.1. </span> <a - id="x1-12600010.1"></a>floor1_inverse_dB_table</h4> + id="x1-12700010.1"></a>floor1_inverse_dB_table</h4> <!--l. 8--><p class="noindent" >The vector <span class="cmtt-12">[floor1_inverse_dB_table] </span>is a 256 element static lookup table consisting of the following values (read left to right then top to bottom): <!--l. 12--><p class="noindent" > <div class="fancyvrb" id="fancyvrb48"><a - id="x1-126002r1"></a><span + id="x1-127002r1"></a><span class="cmr-6">1</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12258,7 +12276,7 @@ class="cmtt-8"> 1.0649863e-07,</span><span class="cmtt-8"> 1.1341951e-07,</span><span class="cmtt-8"> 1.2079015e-07,</span><span class="cmtt-8"> 1.2863978e-07,</span><br class="fancyvrb" /><a - id="x1-126004r2"></a><span + id="x1-127004r2"></a><span class="cmr-6">2</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12268,7 +12286,7 @@ class="cmtt-8"> 1.4590251e-07,</span><span class="cmtt-8"> 1.5538408e-07,</span><span class="cmtt-8"> 1.6548181e-07,</span> <br class="fancyvrb" /><a - id="x1-126006r3"></a><span + id="x1-127006r3"></a><span class="cmr-6">3</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12277,7 +12295,7 @@ class="cmtt-8"> 1.7623575e-07,</span><span class="cmtt-8"> 1.8768855e-07,</span><span class="cmtt-8"> 1.9988561e-07,</span><span class="cmtt-8"> 2.1287530e-07,</span><br class="fancyvrb" /><a - id="x1-126008r4"></a><span + id="x1-127008r4"></a><span class="cmr-6">4</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12287,7 +12305,7 @@ class="cmtt-8"> 2.4144197e-07,</span><span class="cmtt-8"> 2.5713223e-07,</span><span class="cmtt-8"> 2.7384213e-07,</span> <br class="fancyvrb" /><a - id="x1-126010r5"></a><span + id="x1-127010r5"></a><span class="cmr-6">5</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12296,7 +12314,7 @@ class="cmtt-8"> 2.9163793e-07,</span><span class="cmtt-8"> 3.1059021e-07,</span><span class="cmtt-8"> 3.3077411e-07,</span><span class="cmtt-8"> 3.5226968e-07,</span><br class="fancyvrb" /><a - id="x1-126012r6"></a><span + id="x1-127012r6"></a><span class="cmr-6">6</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12306,7 +12324,7 @@ class="cmtt-8"> 3.9954229e-07,</span><span class="cmtt-8"> 4.2550680e-07,</span><span class="cmtt-8"> 4.5315863e-07,</span> <br class="fancyvrb" /><a - id="x1-126014r7"></a><span + id="x1-127014r7"></a><span class="cmr-6">7</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12315,7 +12333,7 @@ class="cmtt-8"> 4.8260743e-07,</span><span class="cmtt-8"> 5.1396998e-07,</span><span class="cmtt-8"> 5.4737065e-07,</span><span class="cmtt-8"> 5.8294187e-07,</span><br class="fancyvrb" /><a - id="x1-126016r8"></a><span + id="x1-127016r8"></a><span class="cmr-6">8</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12325,7 +12343,7 @@ class="cmtt-8"> 6.6116941e-07,</span><span class="cmtt-8"> 7.0413592e-07,</span><span class="cmtt-8"> 7.4989464e-07,</span> <br class="fancyvrb" /><a - id="x1-126018r9"></a><span + id="x1-127018r9"></a><span class="cmr-6">9</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12334,7 +12352,7 @@ class="cmtt-8"> 7.9862701e-07,</span><span class="cmtt-8"> 8.5052630e-07,</span><span class="cmtt-8"> 9.0579828e-07,</span><span class="cmtt-8"> 9.6466216e-07,</span><br class="fancyvrb" /><a - id="x1-126020r10"></a><span + id="x1-127020r10"></a><span class="cmr-6">10</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12344,7 +12362,7 @@ class="cmtt-8"> 1.0941144e-06,</span><span class="cmtt-8"> 1.1652161e-06,</span><span class="cmtt-8"> 1.2409384e-06,</span> <br class="fancyvrb" /><a - id="x1-126022r11"></a><span + id="x1-127022r11"></a><span class="cmr-6">11</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12353,7 +12371,7 @@ class="cmtt-8"> 1.3215816e-06,</span><span class="cmtt-8"> 1.4074654e-06,</span><span class="cmtt-8"> 1.4989305e-06,</span><span class="cmtt-8"> 1.5963394e-06,</span><br class="fancyvrb" /><a - id="x1-126024r12"></a><span + id="x1-127024r12"></a><span class="cmr-6">12</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12363,7 +12381,7 @@ class="cmtt-8"> 1.8105592e-06,</span><span class="cmtt-8"> 1.9282195e-06,</span><span class="cmtt-8"> 2.0535261e-06,</span> <br class="fancyvrb" /><a - id="x1-126026r13"></a><span + id="x1-127026r13"></a><span class="cmr-6">13</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12372,7 +12390,7 @@ class="cmtt-8"> 2.1869758e-06,</span><span class="cmtt-8"> 2.3290978e-06,</span><span class="cmtt-8"> 2.4804557e-06,</span><span class="cmtt-8"> 2.6416497e-06,</span><br class="fancyvrb" /><a - id="x1-126028r14"></a><span + id="x1-127028r14"></a><span class="cmr-6">14</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12382,7 +12400,7 @@ class="cmtt-8"> 2.9961443e-06,</span><span class="cmtt-8"> 3.1908506e-06,</span><span class="cmtt-8"> 3.3982101e-06,</span> <br class="fancyvrb" /><a - id="x1-126030r15"></a><span + id="x1-127030r15"></a><span class="cmr-6">15</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12391,7 +12409,7 @@ class="cmtt-8"> 3.6190449e-06,</span><span class="cmtt-8"> 3.8542308e-06,</span><span class="cmtt-8"> 4.1047004e-06,</span><span class="cmtt-8"> 4.3714470e-06,</span><br class="fancyvrb" /><a - id="x1-126032r16"></a><span + id="x1-127032r16"></a><span class="cmr-6">16</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12401,7 +12419,7 @@ class="cmtt-8"> 4.9580707e-06,</span><span class="cmtt-8"> 5.2802740e-06,</span><span class="cmtt-8"> 5.6234160e-06,</span> <br class="fancyvrb" /><a - id="x1-126034r17"></a><span + id="x1-127034r17"></a><span class="cmr-6">17</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12410,7 +12428,7 @@ class="cmtt-8"> 5.9888572e-06,</span><span class="cmtt-8"> 6.3780469e-06,</span><span class="cmtt-8"> 6.7925283e-06,</span><span class="cmtt-8"> 7.2339451e-06,</span><br class="fancyvrb" /><a - id="x1-126036r18"></a><span + id="x1-127036r18"></a><span class="cmr-6">18</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12420,7 +12438,7 @@ class="cmtt-8"> 8.2047000e-06,</span><span class="cmtt-8"> 8.7378876e-06,</span><span class="cmtt-8"> 9.3057248e-06,</span> <br class="fancyvrb" /><a - id="x1-126038r19"></a><span + id="x1-127038r19"></a><span class="cmr-6">19</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12429,7 +12447,7 @@ class="cmtt-8"> 9.9104632e-06,</span><span class="cmtt-8"> 1.0554501e-05,</span><span class="cmtt-8"> 1.1240392e-05,</span><span class="cmtt-8"> 1.1970856e-05,</span><br class="fancyvrb" /><a - id="x1-126040r20"></a><span + id="x1-127040r20"></a><span class="cmr-6">20</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12439,7 +12457,7 @@ class="cmtt-8"> 1.3577278e-05,</span><span class="cmtt-8"> 1.4459606e-05,</span><span class="cmtt-8"> 1.5399272e-05,</span> <br class="fancyvrb" /><a - id="x1-126042r21"></a><span + id="x1-127042r21"></a><span class="cmr-6">21</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12448,7 +12466,7 @@ class="cmtt-8"> 1.6400004e-05,</span><span class="cmtt-8"> 1.7465768e-05,</span><span class="cmtt-8"> 1.8600792e-05,</span><span class="cmtt-8"> 1.9809576e-05,</span><br class="fancyvrb" /><a - id="x1-126044r22"></a><span + id="x1-127044r22"></a><span class="cmr-6">22</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12458,7 +12476,7 @@ class="cmtt-8"> 2.2467911e-05,</span><span class="cmtt-8"> 2.3928002e-05,</span><span class="cmtt-8"> 2.5482978e-05,</span> <br class="fancyvrb" /><a - id="x1-126046r23"></a><span + id="x1-127046r23"></a><span class="cmr-6">23</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12467,7 +12485,7 @@ class="cmtt-8"> 2.7139006e-05,</span><span class="cmtt-8"> 2.8902651e-05,</span><span class="cmtt-8"> 3.0780908e-05,</span><span class="cmtt-8"> 3.2781225e-05,</span><br class="fancyvrb" /><a - id="x1-126048r24"></a><span + id="x1-127048r24"></a><span class="cmr-6">24</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12477,7 +12495,7 @@ class="cmtt-8"> 3.7180282e-05,</span><span class="cmtt-8"> 3.9596466e-05,</span><span class="cmtt-8"> 4.2169667e-05,</span> <br class="fancyvrb" /><a - id="x1-126050r25"></a><span + id="x1-127050r25"></a><span class="cmr-6">25</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12486,7 +12504,7 @@ class="cmtt-8"> 4.4910090e-05,</span><span class="cmtt-8"> 4.7828601e-05,</span><span class="cmtt-8"> 5.0936773e-05,</span><span class="cmtt-8"> 5.4246931e-05,</span><br class="fancyvrb" /><a - id="x1-126052r26"></a><span + id="x1-127052r26"></a><span class="cmr-6">26</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12496,7 +12514,7 @@ class="cmtt-8"> 6.1526565e-05,</span><span class="cmtt-8"> 6.5524908e-05,</span><span class="cmtt-8"> 6.9783085e-05,</span> <br class="fancyvrb" /><a - id="x1-126054r27"></a><span + id="x1-127054r27"></a><span class="cmr-6">27</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12505,7 +12523,7 @@ class="cmtt-8"> 7.4317983e-05,</span><span class="cmtt-8"> 7.9147585e-05,</span><span class="cmtt-8"> 8.4291040e-05,</span><span class="cmtt-8"> 8.9768747e-05,</span><br class="fancyvrb" /><a - id="x1-126056r28"></a><span + id="x1-127056r28"></a><span class="cmr-6">28</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12515,7 +12533,7 @@ class="cmtt-8"> 0.00010181521,</span><span class="cmtt-8"> 0.00010843174,</span><span class="cmtt-8"> 0.00011547824,</span> <br class="fancyvrb" /><a - id="x1-126058r29"></a><span + id="x1-127058r29"></a><span class="cmr-6">29</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12524,7 +12542,7 @@ class="cmtt-8"> 0.00012298267,</span><span class="cmtt-8"> 0.00013097477,</span><span class="cmtt-8"> 0.00013948625,</span><span class="cmtt-8"> 0.00014855085,</span><br class="fancyvrb" /><a - id="x1-126060r30"></a><span + id="x1-127060r30"></a><span class="cmr-6">30</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12534,7 +12552,7 @@ class="cmtt-8"> 0.00016848555,</span><span class="cmtt-8"> 0.00017943469,</span><span class="cmtt-8"> 0.00019109536,</span> <br class="fancyvrb" /><a - id="x1-126062r31"></a><span + id="x1-127062r31"></a><span class="cmr-6">31</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12543,7 +12561,7 @@ class="cmtt-8"> 0.00020351382,</span><span class="cmtt-8"> 0.00021673929,</span><span class="cmtt-8"> 0.00023082423,</span><span class="cmtt-8"> 0.00024582449,</span><br class="fancyvrb" /><a - id="x1-126064r32"></a><span + id="x1-127064r32"></a><span class="cmr-6">32</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12553,7 +12571,7 @@ class="cmtt-8"> 0.00027881276,</span><span class="cmtt-8"> 0.00029693158,</span><span class="cmtt-8"> 0.00031622787,</span> <br class="fancyvrb" /><a - id="x1-126066r33"></a><span + id="x1-127066r33"></a><span class="cmr-6">33</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12562,7 +12580,7 @@ class="cmtt-8"> 0.00033677814,</span><span class="cmtt-8"> 0.00035866388,</span><span class="cmtt-8"> 0.00038197188,</span><span class="cmtt-8"> 0.00040679456,</span><br class="fancyvrb" /><a - id="x1-126068r34"></a><span + id="x1-127068r34"></a><span class="cmr-6">34</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12572,7 +12590,7 @@ class="cmtt-8"> 0.00046138411,</span><span class="cmtt-8"> 0.00049136745,</span><span class="cmtt-8"> 0.00052329927,</span> <br class="fancyvrb" /><a - id="x1-126070r35"></a><span + id="x1-127070r35"></a><span class="cmr-6">35</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12581,7 +12599,7 @@ class="cmtt-8"> 0.00055730621,</span><span class="cmtt-8"> 0.00059352311,</span><span class="cmtt-8"> 0.00063209358,</span><span class="cmtt-8"> 0.00067317058,</span><br class="fancyvrb" /><a - id="x1-126072r36"></a><span + id="x1-127072r36"></a><span class="cmr-6">36</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12591,7 +12609,7 @@ class="cmtt-8"> 0.00076350630,</span><span class="cmtt-8"> 0.00081312324,</span><span class="cmtt-8"> 0.00086596457,</span> <br class="fancyvrb" /><a - id="x1-126074r37"></a><span + id="x1-127074r37"></a><span class="cmr-6">37</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12601,7 +12619,7 @@ class="cmtt-8"> 0.00098217216,</span><span class="cmtt-8"> 0.0010459992,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0011139742,</span><br class="fancyvrb" /><a - id="x1-126076r38"></a><span + id="x1-127076r38"></a><span class="cmr-6">38</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12614,7 +12632,7 @@ class="cmtt-8"> 0.0013455702,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0014330129,</span> <br class="fancyvrb" /><a - id="x1-126078r39"></a><span + id="x1-127078r39"></a><span class="cmr-6">39</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12626,7 +12644,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> 0.0017309374,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0018434235,</span><br class="fancyvrb" /><a - id="x1-126080r40"></a><span + id="x1-127080r40"></a><span class="cmr-6">40</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12639,7 +12657,7 @@ class="cmtt-8"> 0.0022266726,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0023713743,</span> <br class="fancyvrb" /><a - id="x1-126082r41"></a><span + id="x1-127082r41"></a><span class="cmr-6">41</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12651,7 +12669,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> 0.0028643847,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0030505286,</span><br class="fancyvrb" /><a - id="x1-126084r42"></a><span + id="x1-127084r42"></a><span class="cmr-6">42</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12664,7 +12682,7 @@ class="cmtt-8"> 0.0036847358,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0039241906,</span> <br class="fancyvrb" /><a - id="x1-126086r43"></a><span + id="x1-127086r43"></a><span class="cmr-6">43</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12676,7 +12694,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> 0.0047400328,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0050480668,</span><br class="fancyvrb" /><a - id="x1-126088r44"></a><span + id="x1-127088r44"></a><span class="cmr-6">44</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12689,7 +12707,7 @@ class="cmtt-8"> 0.0060975636,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0064938176,</span> <br class="fancyvrb" /><a - id="x1-126090r45"></a><span + id="x1-127090r45"></a><span class="cmr-6">45</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12701,7 +12719,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> 0.0078438871,</span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.0083536271,</span><br class="fancyvrb" /><a - id="x1-126092r46"></a><span + id="x1-127092r46"></a><span class="cmr-6">46</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12716,7 +12734,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.010746080,</span> <br class="fancyvrb" /><a - id="x1-126094r47"></a><span + id="x1-127094r47"></a><span class="cmr-6">47</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12731,7 +12749,7 @@ class="cmtt-8"> 0.012980198,</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.013823725,</span><br class="fancyvrb" /><a - id="x1-126096r48"></a><span + id="x1-127096r48"></a><span class="cmr-6">48</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12747,7 +12765,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.017782797,</span> <br class="fancyvrb" /><a - id="x1-126098r49"></a><span + id="x1-127098r49"></a><span class="cmr-6">49</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12762,7 +12780,7 @@ class="cmtt-8"> 0.021479854,</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.022875735,</span><br class="fancyvrb" /><a - id="x1-126100r50"></a><span + id="x1-127100r50"></a><span class="cmr-6">50</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12778,7 +12796,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.029427276,</span> <br class="fancyvrb" /><a - id="x1-126102r51"></a><span + id="x1-127102r51"></a><span class="cmr-6">51</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12793,7 +12811,7 @@ class="cmtt-8"> 0.035545228,</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.037855157,</span><br class="fancyvrb" /><a - id="x1-126104r52"></a><span + id="x1-127104r52"></a><span class="cmr-6">52</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12809,7 +12827,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.048696758,</span> <br class="fancyvrb" /><a - id="x1-126106r53"></a><span + id="x1-127106r53"></a><span class="cmr-6">53</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12824,7 +12842,7 @@ class="cmtt-8"> 0.058820850,</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.062643361,</span><br class="fancyvrb" /><a - id="x1-126108r54"></a><span + id="x1-127108r54"></a><span class="cmr-6">54</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12840,7 +12858,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.080584227,</span> <br class="fancyvrb" /><a - id="x1-126110r55"></a><span + id="x1-127110r55"></a><span class="cmr-6">55</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12855,7 +12873,7 @@ class="cmtt-8"> 0.097337747,</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.10366330,</span><br class="fancyvrb" /><a - id="x1-126112r56"></a><span + id="x1-127112r56"></a><span class="cmr-6">56</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12874,7 +12892,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.13335215,</span> <br class="fancyvrb" /><a - id="x1-126114r57"></a><span + id="x1-127114r57"></a><span class="cmr-6">57</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12892,7 +12910,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.17154380,</span><br class="fancyvrb" /><a - id="x1-126116r58"></a><span + id="x1-127116r58"></a><span class="cmr-6">58</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12911,7 +12929,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.22067342,</span> <br class="fancyvrb" /><a - id="x1-126118r59"></a><span + id="x1-127118r59"></a><span class="cmr-6">59</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12929,7 +12947,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.28387361,</span><br class="fancyvrb" /><a - id="x1-126120r60"></a><span + id="x1-127120r60"></a><span class="cmr-6">60</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12948,7 +12966,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.36517414,</span> <br class="fancyvrb" /><a - id="x1-126122r61"></a><span + id="x1-127122r61"></a><span class="cmr-6">61</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12966,7 +12984,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.46975890,</span><br class="fancyvrb" /><a - id="x1-126124r62"></a><span + id="x1-127124r62"></a><span class="cmr-6">62</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -12985,7 +13003,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.60429640,</span> <br class="fancyvrb" /><a - id="x1-126126r63"></a><span + id="x1-127126r63"></a><span class="cmr-6">63</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -13003,7 +13021,7 @@ class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span class="cmtt-8"> 0.77736504,</span><br class="fancyvrb" /><a - id="x1-126128r64"></a><span + id="x1-127128r64"></a><span class="cmr-6">64</span><span class="cmtt-8"> </span><span class="cmtt-8"> </span><span @@ -13029,10 +13047,10 @@ class="cmtt-8"> 1.</span></div> <h3 class="sectionHead"><span class="titlemark">A. </span> <a - id="x1-127000A"></a>Embedding Vorbis into an Ogg stream</h3> + id="x1-128000A"></a>Embedding Vorbis into an Ogg stream</h3> <!--l. 6--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">A.1. </span> <a - id="x1-128000A.1"></a>Overview</h4> + id="x1-129000A.1"></a>Overview</h4> <!--l. 8--><p class="noindent" >This document describes using Ogg logical and physical transport streams to encapsulate Vorbis compressed audio packet data into file form. <!--l. 12--><p class="noindent" >The <a @@ -13047,7 +13065,7 @@ knowledge of the concepts covered in these named backround documents. Please rea first. <!--l. 22--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">A.1.1. </span> <a - id="x1-129000A.1.1"></a>Restrictions</h5> + id="x1-130000A.1.1"></a>Restrictions</h5> <!--l. 24--><p class="noindent" >The Ogg/Vorbis I specification currently dictates that Ogg/Vorbis streams use Ogg transport streams in degenerate, unmultiplexed form only. That is: <ul class="itemize1"> @@ -13072,7 +13090,7 @@ stream (naturally, application authors are encouraged to support full multiplexe handling). <!--l. 55--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">A.1.2. </span> <a - id="x1-130000A.1.2"></a>MIME type</h5> + id="x1-131000A.1.2"></a>MIME type</h5> <!--l. 57--><p class="noindent" >The MIME type of Ogg files depend on the context. Specifically, complex multimedia and applications should use <span class="cmtt-12">application/ogg</span>, while visual media should use <span @@ -13084,7 +13102,7 @@ class="cmtt-12">audio/vorbis </span>+ <span class="cmtt-12">audio/vorbis-config</span>. <!--l. 65--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">A.2. </span> <a - id="x1-131000A.2"></a>Encapsulation</h4> + id="x1-132000A.2"></a>Encapsulation</h4> <!--l. 67--><p class="noindent" >Ogg encapsulation of a Vorbis packet stream is straightforward. <ul class="itemize1"> <li class="itemize">The first Vorbis packet (the identification header), which uniquely identifies a stream @@ -13153,7 +13171,7 @@ class="cmti-12">completed </span>on that page. The ’last PCM sample’ synthesis, resulting in correct positioning information without any aditional seeking logic. <!--l. 170--><p class="noindent" ><span class="likesubparagraphHead"><a - id="x1-132000A.2"></a><span + id="x1-133000A.2"></a><span class="cmbx-12">Note:</span></span> Failure to do so should, at worst, cause a decoder implementation to return incorrect positioning information for seeking operations at the very beginning of the stream. @@ -13168,7 +13186,7 @@ class="cmbx-12">Note:</span></span> Failure to do so should, at worst, cause a d <h3 class="sectionHead"><span class="titlemark">B. </span> <a - id="x1-133000B"></a>Vorbis encapsulation in RTP</h3> + id="x1-134000B"></a>Vorbis encapsulation in RTP</h3> <!--l. 8--><p class="noindent" >Please consult RFC 5215 <span class="cmti-12">“RTP Payload Format for Vorbis Encoded Audio” </span>for description of how to embed Vorbis audio in an RTP stream. @@ -13179,7 +13197,7 @@ how to embed Vorbis audio in an RTP stream. <h3 class="likesectionHead"><a - id="x1-134000B"></a>Colophon</h3> + id="x1-135000B"></a>Colophon</h3> <!--l. 6--><p class="noindent" ><img src="fish_xiph_org.png" alt="PIC" > @@ -13205,7 +13223,7 @@ class="E">E</span>X</span></span>. <h3 class="likesectionHead"><a - id="x1-135000B"></a>References</h3> + id="x1-136000B"></a>References</h3> <!--l. 133--><p class="noindent" > <div class="thebibliography"> <p class="bibitem" ><span class="biblabel"> diff --git a/doc/Vorbis_I_spec.pdf b/doc/Vorbis_I_spec.pdf Binary files differindex c8d2c158..04c06827 100644 --- a/doc/Vorbis_I_spec.pdf +++ b/doc/Vorbis_I_spec.pdf diff --git a/doc/evenlsp.png b/doc/evenlsp.png Binary files differdeleted file mode 100644 index 4d4fee45..00000000 --- a/doc/evenlsp.png +++ /dev/null diff --git a/doc/oddlsp.png b/doc/oddlsp.png Binary files differdeleted file mode 100644 index c7546176..00000000 --- a/doc/oddlsp.png +++ /dev/null |