[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