[xiph-cvs] cvs commit: vorbis/doc helper.html vorbis-spec-floor1.html

Monty xiphmont at xiph.org
Tue Sep 10 20:30:05 PDT 2002



xiphmont    02/09/10 23:30:05

  Modified:    doc      helper.html vorbis-spec-floor1.html
  Log:
  A number of floor1 spec corrections.

Revision  Changes    Path
1.4       +2 -2      vorbis/doc/helper.html

Index: helper.html
===================================================================
RCS file: /usr/local/cvsroot/vorbis/doc/helper.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- helper.html	9 Aug 2002 00:09:58 -0000	1.3
+++ helper.html	11 Sep 2002 03:30:05 -0000	1.4
@@ -6,7 +6,7 @@
 Ogg Vorbis I format specification: helper equations
 </font></h1>
 
-Last update to this document: August 8, 2002</em><p>
+Last update to this document: September 10, 2002</em><p>
 
 <h1>Overview</h1>
 
@@ -141,7 +141,7 @@
 
      }
 
- 11) [ady] = [ady] - [base] * [adx]
+ 11) [ady] = [ady] - (absolute value of [base]) * [adx]
  12) vector [v] element [x] = [y]
 
  13) iterate [x] over the range [x0]+1 ... [x1]-1 {

<p><p>1.7       +36 -35    vorbis/doc/vorbis-spec-floor1.html

Index: vorbis-spec-floor1.html
===================================================================
RCS file: /usr/local/cvsroot/vorbis/doc/vorbis-spec-floor1.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- vorbis-spec-floor1.html	9 Aug 2002 00:09:58 -0000	1.6
+++ vorbis-spec-floor1.html	11 Sep 2002 03:30:05 -0000	1.7
@@ -6,7 +6,7 @@
 Ogg Vorbis I format specification: floor type 1 setup and decode
 </font></h1>
 
-Last update to this document: August 8, 2002</em><br>
+Last update to this document: September 10, 2002</em><br>
 
 <h1>Overview</h1>
 
@@ -185,23 +185,24 @@
       13) iterate [j] over the range 0 ... [cdim]-1 {
        
              14) [book] = array [floor1_subclass_books] element [class],([cval] bitwise AND [csub])
-	     15) if ( [book] is not less than zero ) {
+             15) [cval] = [cval] right shifted [cbits] bits
+	     16) if ( [book] is not less than zero ) {
              
-	           16) vector [floor1_Y] element ([j]+[offset]) = read from packet using codebook 
+	           17) vector [floor1_Y] element ([j]+[offset]) = read from packet using codebook 
                        [book] in scalar context
 
                  } else [book] is less than zero {
 
-	           17) vector [floor1_Y] element ([j]+[offset]) = 0
+	           18) vector [floor1_Y] element ([j]+[offset]) = 0
 
                  }
           }
              
-      18) [offset] = [offset] + [cdim]
+      19) [offset] = [offset] + [cdim]
          
      }
   
- 19) done
+ 20) done
 </pre>
 
 An end-of-packet condition during curve decode should be considered a
@@ -235,57 +236,61 @@
 
 <pre>
   1) [range] = vector { 256, 128, 86, 64 } element ([floor1_multiplier]-1)
-  2) iterate [i] over the range 2 ... [floor1_values]-1 {
+  2) vector [floor1_step2_flag] element [0] = set
+  3) vector [floor1_step2_flag] element [1] = set
+  4) vector [floor1_final_Y] element [0] = vector [floor1_Y] element [0]
+  5) vector [floor1_final_Y] element [1] = vector [floor1_Y] element [1]
+  6) iterate [i] over the range 2 ... [floor1_values]-1 {
     
-       3) [low_neighbor_offset] = low_neighbor([floor1_X_list],[i])
-       4) [high_neighbor_offset] = high_neighbor([floor1_X_list],[i])
+       7) [low_neighbor_offset] = low_neighbor([floor1_X_list],[i])
+       8) [high_neighbor_offset] = high_neighbor([floor1_X_list],[i])
 
-       5) [predicted] = render_point( vector [floor1_X_list] element [low_neighbor_offset],
+       9) [predicted] = render_point( vector [floor1_X_list] element [low_neighbor_offset],
                                       vector [floor1_X_list] element [high_neighbor_offset],
-				      vector [floor1_Y] element [low_neighbor_offset],
-				      vector [floor1_Y] element [high_neighbor_offset],
+				      vector [floor1_final_Y] element [low_neighbor_offset],
+				      vector [floor1_final_Y] element [high_neighbor_offset],
                                       vector [floor1_X_list] element [i] )
 
-       6) [val] = vector [floor1_Y] element [i]
-       7) [highroom] = [range] - [predicted]
-       8) [lowroom]  = [predicted]
-       9) if ( [highroom] is less than [lowroom] ) {
+      10) [val] = vector [floor1_Y] element [i]
+      11) [highroom] = [range] - [predicted]
+      12) [lowroom]  = [predicted]
+      13) if ( [highroom] is less than [lowroom] ) {
 
-            10) [room] = [highroom] * 2
+            14) [room] = [highroom] * 2
          
           } else [highroom] is not less than [lowroom] {
                       
-            11) [root] = [lowroom] * 2
+            15) [root] = [lowroom] * 2
         
           }
 
-      12) if ( [val] is nonzero ) {
+      16) if ( [val] is nonzero ) {
 
-            13) vector [floor1_step2_flag] element [low_neighbor_offset] = set
-            14) vector [floor1_step2_flag] element [high_neighbor_offset] = set
-            15) vector [floor1_step2_flag] element [i] = set
-            16) if ( [val] is greater than or equal to [room] ) {
+            17) vector [floor1_step2_flag] element [low_neighbor_offset] = set
+            18) vector [floor1_step2_flag] element [high_neighbor_offset] = set
+            19) vector [floor1_step2_flag] element [i] = set
+            20) if ( [val] is greater than or equal to [room] ) {
  
-                  17) if ( [hiroom] is greater than [lowroom] ) {
+                  21) if ( [hiroom] is greater than [lowroom] ) {
 
-                        18) vector [floor1_final_Y] element [i] = [val] - [lowroom] + [predicted]
+                        22) vector [floor1_final_Y] element [i] = [val] - [lowroom] + [predicted]
                      
                       } else [hiroom] is not greater than [lowroom] {
               
-                        19) vector [floor1_final_Y] element [i] = [predicted] - ([val] - [lowroom]) - 1
+                        23) vector [floor1_final_Y] element [i] = [predicted] - ([val] - [lowroom]) - 1
                    
                       }
                
                 } else [val] is less than [room] {
                  
-		  20) if ([val] is odd) {
+		  24) if ([val] is odd) {
                  
-                        21) vector [floor1_final_Y] element [i] = 
+                        25) vector [floor1_final_Y] element [i] = 
                             [predicted] - (([val] - 1) divided by  2 using integer division)
 
                       } else [val] is even {
 
-                        22) vector [floor1_final_Y] element [i] = 
+                        26) vector [floor1_final_Y] element [i] = 
                             [predicted] + ([val] / 2 using integer division)
                           
                       }
@@ -294,17 +299,13 @@
 
           } else [val] is zero {
 
-            23) vector [floor1_step2_flag] element [i] = unset
-            24) vector [floor1_final_Y] element [i] = [predicted]
+            27) vector [floor1_step2_flag] element [i] = unset
+            28) vector [floor1_final_Y] element [i] = [predicted]
 
           }
 
      }
 
- 25) vector [floor1_step2_flag] element [0] = set
- 26) vector [floor1_step2_flag] element [1] = set
- 27) vector [floor1_final_Y] element [0] = vector [floor1_Y] element [0]
- 28) vector [floor1_final_Y] element [1] = vector [floor1_Y] element [1]
  29) done
 
 </pre>

<p><p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list