diff options
author | Jean-Marc Valin <jean-marc.valin@octasic.com> | 2009-06-11 01:48:39 +0400 |
---|---|---|
committer | Jean-Marc Valin <jean-marc.valin@octasic.com> | 2009-06-11 01:48:39 +0400 |
commit | eb5aa094c479bc26f3ff88c8e0f262b977a0652e (patch) | |
tree | 5d7e48adfdd034705d9b68f6c702acf428059b83 /doc | |
parent | 9ac1673cd4d6a503cb1a76f63392b6999c3dea22 (diff) |
ietf doc: synthesis
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ietf/draft-valin-celt-codec.xml | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/doc/ietf/draft-valin-celt-codec.xml b/doc/ietf/draft-valin-celt-codec.xml index 7e4940e..9e07c3c 100644 --- a/doc/ietf/draft-valin-celt-codec.xml +++ b/doc/ietf/draft-valin-celt-codec.xml @@ -376,6 +376,9 @@ prediction or a folding vector P is used, the unit vector X becomes: <t>X = P + g_f * y,</t> <t>where g_f = ( sqrt( (y^T*P)^2 + ||y||^2*(1-||P||^2) ) - y^T*P ) / ||y||^2. </t> +<t>This is described in mix_pitch_and_residual() (<xref target="vq.c">vq.c</xref>).</t> + + <t> The search for the best codevector y is performed by alg_quant() (<xref target="vq.c">vq.c</xref>). There are several possible approaches to the @@ -399,7 +402,13 @@ formulation one line (or column) at a time to save on memory use. </section> -<section anchor="Short windows" title="Short windows"> +<section anchor="synthesis" title="Synthesis"> +<t> +After all the quantisation is completed, the quantised energy is used along with the +quantised normalised band data to resynthesise the MDCT spectrum. The inverse MDCT (<xref target="inverse-mdct"></xref>) and the weighted overlap-add are applied and the signal is stored in the <spanx style="emph">synthesis buffer</spanx> so it can be used for pitch prediction. +The encoder MAY omit this step of the processing if it knows that it will not be using +the pitch predictor for the next few frames. +</t> </section> @@ -455,7 +464,7 @@ multiplied by the square root of the decoded energy. This is done by denormalise </t> </section> -<section anchor="Inverse MDCT" title="Inverse MDCT"> +<section anchor="inverse-mdct" title="Inverse MDCT"> <t>The inverse MDCT implementation has no special characteristic. The input is N frequency-domain samples and the output is 2*N time-domain samples. The output is windowed using the same <spanx style="emph">low-overlap</spanx> window |