[xiph-commits] r18181 - trunk/vorbis/doc

xiphmont at svn.xiph.org xiphmont at svn.xiph.org
Fri Feb 3 11:49:57 PST 2012


Author: xiphmont
Date: 2012-02-03 11:49:57 -0800 (Fri, 03 Feb 2012)
New Revision: 18181

Modified:
   trunk/vorbis/doc/07-floor1.tex
Log:
Add a clarification to the floor1 decode spec, since I had to re-determine some of what 
it says for myself after not thinking about it for 15-ish years.

Also, fix an indentation bug that occurred due to TABs sneaking in


Modified: trunk/vorbis/doc/07-floor1.tex
===================================================================
--- trunk/vorbis/doc/07-floor1.tex	2012-02-02 22:02:53 UTC (rev 18180)
+++ trunk/vorbis/doc/07-floor1.tex	2012-02-03 19:49:57 UTC (rev 18181)
@@ -252,6 +252,16 @@
 Deviation from implementing a strictly equivalent algorithm can result
 in serious decoding errors.
 
+{\em Additional note:} Although predicted values in the prediction
+loop and at the end of step 1 (that is, the values in vector
+\varname{[floor1\_final\_Y]} are inherently limited by the prediction
+algorithm to \[0, \varname{[range]}\), it is possible to abuse the
+setup and codebook machinery to produce negative or over-range
+results.  We suggest that decoder implementations guard the values in
+vector \varname{[floor1\_final\_Y]} by clamping each element to \[0,
+\varname{[range]}\) after step 1.  Variants of this suggestion are
+acceptable as valid floor1 setups cannot produce out of range values.
+
 \begin{description}
 \item[step 1: amplitude value synthesis]
 
@@ -307,7 +317,7 @@
 
                 \} else [val] is less than [room] \{
 
-		  24) if ([val] is odd) \{
+                    24) if ([val] is odd) \{
 
                         25) vector [floor1\_final\_Y] element [i] =
                             [predicted] - (([val] + 1) divided by  2 using integer division)



More information about the commits mailing list