shithub: opus

Download patch

ref: 018b0df9c93cb8907f34d028f16a9000f876f66a
parent: fbbd9bf6082043d368b1892b630f5b20a1e28fe5
author: Jean-Marc Valin <[email protected]>
date: Tue Sep 6 04:03:38 EDT 2011

Rotation wip

--- a/doc/build_draft.sh
+++ b/doc/build_draft.sh
@@ -45,5 +45,6 @@
 echo '</figure>' >> opus_compare_escaped.c
 
 echo running xml2rfc
+xml2rfc draft-ietf-codec-opus.xml draft-ietf-codec-opus.html &
 xml2rfc draft-ietf-codec-opus.xml
-xml2rfc draft-ietf-codec-opus.xml draft-ietf-codec-opus.html
+wait
--- a/doc/draft-ietf-codec-opus.xml
+++ b/doc/draft-ietf-codec-opus.xml
@@ -4291,16 +4291,27 @@
 The rotation angle is then calculated as
 <figure align="center">
 <artwork align="center"><![CDATA[
-        pi *  g_r^2
-theta = -----------
+                 2
+        pi *  g_r
+theta = ----------
             4
 ]]></artwork>
 </figure>
+A 2-D rotation R(i,j) between points x_i and x_j is defined as:
+<figure align="center">
+<artwork align="center"><![CDATA[
+x_i' =  cos(theta)*x_i + sin(theta)*x_j
+x_j' = -sin(theta)*x_i + cos(theta)*x_j
+]]></artwork>
+</figure>
 
+An N-D rotation is then achieved by applying a series of 2-D rotations back and forth, in the
+following order: R(x_1, x_2), R(x_2, x_3), ..., R(x_N-2, X_N-1), R(x_N-1, X_N),
+R(x_N-2, X_N-1), ..., R(x_1, x_2).
 </t>
 
 <t>
- If the decoded vector represents more
+If the decoded vector represents more
 than one time block, then the following process is applied separately on each time block.
 </t>
 </section>