1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
\r
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"/>
\r
6 <title>Ogg Vorbis Documentation</title>
\r
8 <style type="text/css">
\r
10 margin: 0 18px 0 18px;
\r
11 padding-bottom: 30px;
\r
12 font-family: Verdana, Arial, Helvetica, sans-serif;
\r
26 margin: 30px 0 16px 0;
\r
33 h1, h1 a, h2, h2 a, h3, h3 a {
\r
36 margin: 1.3em 0 8px 0;
\r
70 <a href="http://www.xiph.org/"><img src="fish_xiph_org.png" alt="Fish Logo and Xiph.org"/></a>
\r
73 <h1>Ogg Vorbis encoding format documentation</h1>
\r
75 <p><img src="wait.png" alt="wait"/>As of writing, not all the below document
\r
76 links are live. They will be populated as we complete the documents.</p>
\r
81 <li><a href="packet.html">Vorbis packet structure</a></li>
\r
82 <li><a href="envelope.html">Temporal envelope shaping and blocksize</a></li>
\r
83 <li><a href="mdct.html">Time domain segmentation and MDCT transform</a></li>
\r
84 <li><a href="resolution.html">The resolution floor</a></li>
\r
85 <li><a href="residuals.html">MDCT-domain fine structure</a></li>
\r
89 <li><a href="probmodel.html">The Vorbis probability model</a></li>
\r
90 <li><a href="bitpack.html">The Vorbis bitpacker</a></li>
\r
94 <li><a href="oggstream.html">Ogg bitstream overview</a></li>
\r
95 <li><a href="framing.html">Ogg logical bitstream and framing spec</a></li>
\r
96 <li><a href="vorbis-stream.html">Vorbis packet->Ogg bitstream mapping</a></li>
\r
100 <li><a href="programming.html">Programming with libvorbis</a></li>
\r
103 <h2>Description</h2>
\r
105 <p>Ogg Vorbis is a general purpose compressed audio format
\r
106 for high quality (44.1-48.0kHz, 16+ bit, polyphonic) audio and music
\r
107 at moderate fixed and variable bitrates (40-80 kb/s/channel). This
\r
108 places Vorbis in the same class as audio representations including
\r
109 MPEG-1 audio layer 3, MPEG-4 audio (AAC and TwinVQ), and PAC.</p>
\r
111 <p>Vorbis is the first of a planned family of Ogg multimedia coding
\r
112 formats being developed as part of the Xiph.org Foundation's Ogg multimedia
\r
113 project. See <a href="http://www.xiph.org/">http://www.xiph.org/</a>
\r
114 for more information.</p>
\r
116 <h2>Vorbis technical documents</h2>
\r
118 <p>A Vorbis encoder takes in overlapping (but contiguous) short-time
\r
119 segments of audio data. The encoder analyzes the content of the audio
\r
120 to determine an optimal compact representation; this phase of encoding
\r
121 is known as <em>analysis</em>. For each short-time block of sound,
\r
122 the encoder then packs an efficient representation of the signal, as
\r
123 determined by analysis, into a raw packet much smaller than the size
\r
124 required by the original signal; this phase is <em>coding</em>.
\r
125 Lastly, in a streaming environment, the raw packets are then
\r
126 structured into a continuous stream of octets; this last phase is
\r
127 <em>streaming</em>. Note that the stream of octets is referred to both
\r
128 as a 'byte-' and 'bit-'stream; the latter usage is acceptible as the
\r
129 stream of octets is a physical representation of a true logical
\r
130 bit-by-bit stream.</p>
\r
132 <p>A Vorbis decoder performs a mirror image process of extracting the
\r
133 original sequence of raw packets from an Ogg stream (<em>stream
\r
134 decomposition</em>), reconstructing the signal representation from the
\r
135 raw data in the packet (<em>decoding</em>) and them reconstituting an
\r
136 audio signal from the decoded representation (<em>synthesis</em>).</p>
\r
138 <p>The <a href="programming.html">Programming with libvorbis</a>
\r
139 documents discuss use of the reference Vorbis codec library
\r
140 (libvorbis) produced by the Xiph.org Foundation.</p>
\r
142 <p>The data representations and algorithms necessary at each step to
\r
143 encode and decode Ogg Vorbis bitstreams are described by the below
\r
144 documents in sufficient detail to construct a complete Vorbis codec.
\r
145 Note that at the time of writing, Vorbis is still in a 'Request For
\r
146 Comments' stage of development; despite being in advanced stages of
\r
147 development, input from the multimedia community is welcome.</p>
\r
149 <h3>Vorbis analysis and synthesis</h3>
\r
151 <p>Analysis begins by seperating an input audio stream into individual,
\r
152 overlapping short-time segments of audio data. These segments are
\r
153 then transformed into an alternate representation, seeking to
\r
154 represent the original signal in a more efficient form that codes into
\r
155 a smaller number of bytes. The analysis and transformation stage is
\r
156 the most complex element of producing a Vorbis bitstream.</p>
\r
158 <p>The corresponding synthesis step in the decoder is simpler; there is
\r
159 no analysis to perform, merely a mechanical, deterministic
\r
160 reconstruction of the original audio data from the transform-domain
\r
161 representation.</p>
\r
164 <li><a href="packet.html">Vorbis packet structure</a>:
\r
165 Describes the basic analysis components necessary to produce Vorbis
\r
166 packets and the structure of the packet itself.</li>
\r
167 <li><a href="envelope.html">Temporal envelope shaping and blocksize</a>:
\r
168 Use of temporal envelope shaping and variable blocksize to minimize
\r
169 time-domain energy leakage during wide dynamic range and spectral energy
\r
170 swings. Also discusses time-related principles of psychoacoustics.</li>
\r
171 <li><a href="mdct.html">Time domain segmentation and MDCT transform</a>:
\r
172 Division of time domain data into individual overlapped, windowed
\r
173 short-time vectors and transformation using the MDCT</li>
\r
174 <li><a href="resolution.html">The resolution floor</a>: Use of frequency
\r
175 doamin psychoacoustics, and the MDCT-domain noise, masking and resolution
\r
177 <li><a href="residuals.html">MDCT-domain fine structure</a>: Production,
\r
178 quantization and massaging of MDCT-spectrum fine structure</li>
\r
181 <h3>Vorbis coding and decoding</h3>
\r
183 <p>Coding and decoding converts the transform-domain representation of
\r
184 the original audio produced by analysis to and from a bitwise packed
\r
185 raw data packet. Coding and decoding consist of two logically
\r
186 orthogonal concepts, <em>back-end coding</em> and <em>bitpacking</em>.</p>
\r
188 <p><em>Back-end coding</em> uses a probability model to represent the raw numbers
\r
189 of the audio representation in as few physical bits as possible;
\r
190 familiar examples of back-end coding include Huffman coding and Vector
\r
193 <p><em>Bitpacking</em> arranges the variable sized words of the back-end
\r
194 coding into a vector of octets without wasting space. The octets
\r
195 produced by coding a single short-time audio segment is one raw Vorbis
\r
199 <li><a href="probmodel.html">The Vorbis probability model</a></li>
\r
200 <li><a href="bitpack.html">The Vorbis bitpacker</a>: Arrangement of
\r
201 variable bit-length words into an octet-aligned packet.</li>
\r
204 <h3>Vorbis streaming and stream decomposition</h3>
\r
206 <p>Vorbis packets contain the raw, bitwise-compressed representation of a
\r
207 snippet of audio. These packets contain no structure and cannot be
\r
208 strung together directly into a stream; for streamed transmission and
\r
209 storage, Vorbis packets are encoded into an Ogg bitstream.</p>
\r
212 <li><a href="oggstream.html">Ogg bitstream overview</a>: High-level
\r
213 description of Ogg logical bitstreams, how logical bitstreams
\r
214 (of mixed media types) can be combined into physical bitstreams, and
\r
215 restrictions on logical-to-physical mapping. Note that this document is
\r
216 not specific only to Ogg Vorbis.</li>
\r
217 <li><a href="framing.html">Ogg logical bitstream and framing
\r
218 spec</a>: Low level, complete specification of Ogg logical
\r
219 bitstream pages. Note that this document is not specific only to Ogg
\r
221 <li><a href="vorbis-stream.html">Vorbis bitstream mapping</a>:
\r
222 Specifically describes mapping Vorbis data into an
\r
223 Ogg physical bitstream.</li>
\r
226 <div id="copyright">
\r
227 The Xiph Fish Logo is a
\r
228 trademark (™) of Xiph.Org.<br/>
\r
230 These pages © 1994 - 2005 Xiph.Org. All rights reserved.
\r