summaryrefslogtreecommitdiff
path: root/doc/oggstream.html
diff options
context:
space:
mode:
authornehal <nehal@xiph.org>2005-09-05 00:14:31 +0000
committernehal <nehal@xiph.org>2005-09-05 00:14:31 +0000
commit9c524d53c8a3c0a411f5f0f7b1627bbde6baf1d1 (patch)
tree007605716b7d40f5a74f2887b2f8356d019e0281 /doc/oggstream.html
parenta80448d53054829cc28e477395683ed5f9be69bd (diff)
downloadogg-git-9c524d53c8a3c0a411f5f0f7b1627bbde6baf1d1.tar.gz
cleanup docs
svn path=/trunk/ogg/; revision=9956
Diffstat (limited to 'doc/oggstream.html')
-rw-r--r--doc/oggstream.html248
1 files changed, 143 insertions, 105 deletions
diff --git a/doc/oggstream.html b/doc/oggstream.html
index 4df3346..d9b80db 100644
--- a/doc/oggstream.html
+++ b/doc/oggstream.html
@@ -1,43 +1,105 @@
-<HTML><HEAD><TITLE>xiph.org: Ogg Vorbis documentation</TITLE>
-<BODY bgcolor="#ffffff" text="#202020" link="#006666" vlink="#000000">
-<nobr><a href="http://www.xiph.org/ogg/index.html"><img src="white-ogg.png" border=0><img
-src="vorbisword2.png" border=0></a></nobr><p>
-
-
-<h1><font color=#000070>
-Ogg logical and physical bitstream overview
-</font></h1>
-
-<em>Last update to this document: July 14, 2002</em><br>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"/>
+<title>Ogg Documentation</title>
+
+<style type="text/css">
+body {
+ margin: 0 18px 0 18px;
+ padding-bottom: 30px;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ color: #333333;
+ font-size: .8em;
+}
+
+a {
+ color: #3366cc;
+}
+
+img {
+ border: 0;
+}
+
+#xiphlogo {
+ margin: 30px 0 16px 0;
+}
+
+#content p {
+ line-height: 1.4;
+}
+
+h1, h1 a, h2, h2 a, h3, h3 a {
+ font-weight: bold;
+ color: #ff9900;
+ margin: 1.3em 0 8px 0;
+}
+
+h1 {
+ font-size: 1.3em;
+}
+
+h2 {
+ font-size: 1.2em;
+}
+
+h3 {
+ font-size: 1.1em;
+}
+
+li {
+ line-height: 1.4;
+}
+
+#copyright {
+ margin-top: 30px;
+ line-height: 1.5em;
+ text-align: center;
+ font-size: .8em;
+ color: #888888;
+ clear: both;
+}
+</style>
+
+</head>
+
+<body>
+
+<div id="xiphlogo">
+ <a href="http://www.xiph.org/"><img src="fish_xiph_org.png" alt="Fish Logo and Xiph.org"/></a>
+</div>
+
+<h1>Ogg logical and physical bitstream overview</h1>
<h2>Ogg bitstreams</h2>
-Ogg codecs use octet vectors of raw, compressed data
+<p>Ogg codecs use octet vectors of raw, compressed data
(<em>packets</em>). These compressed packets do not have any
high-level structure or boundary information; strung together, they
-appear to be streams of random bytes with no landmarks.<p>
+appear to be streams of random bytes with no landmarks.</p>
-Raw packets may be used directly by transport mechanisms that provide
+<p>Raw packets may be used directly by transport mechanisms that provide
their own framing and packet-separation mechanisms (such as UDP
-datagrams). For stream based storage (such as files) and transport
+datagrams). For stream based storage (such as files) and transport
(such as TCP streams or pipes), Vorbis and other future Ogg codecs use
the Ogg bitstream format to provide framing/sync, sync recapture
after error, landmarks during seeking, and enough information to
properly separate data back into packets at the original packet
-boundaries without relying on decoding to find packet boundaries.<p>
+boundaries without relying on decoding to find packet boundaries.</p>
<h2>Logical and physical bitstreams</h2>
-Raw packets are grouped and encoded into contiguous pages of
-structured bitstream data called <em>logical bitstreams</em>. A
+<p>Raw packets are grouped and encoded into contiguous pages of
+structured bitstream data called <em>logical bitstreams</em>. A
logical bitstream consists of pages, in order, belonging to a single
-codec instance. Each page is a self contained entity (although it is
+codec instance. Each page is a self contained entity (although it is
possible that a packet may be split and encoded across one or more
pages); that is, the page decode mechanism is designed to recognize,
-verify and handle single pages at a time from the overall bitstream.<p>
+verify and handle single pages at a time from the overall bitstream.</p>
-Multiple logical bitstreams can be combined (with restrictions) into a
-single <em>physical bitstream</em>. A physical bitstream consists of
+<p>Multiple logical bitstreams can be combined (with restrictions) into a
+single <em>physical bitstream</em>. A physical bitstream consists of
multiple logical bitstreams multiplexed at the page level and may
include a 'meta-header' at the beginning of the multiplexed logical
stream that serves as identification magic. Whole pages are taken in
@@ -47,150 +109,126 @@ logical bitstreams from the physical bitstream by taking the pages in
order from the physical bitstream and redirecting them into the
appropriate logical decoding entity. The simplest physical bitstream
is a single, unmultiplexed logical bitstream with no meta-header; this
-is referred to as a 'degenerate stream'. <p>
+is referred to as a 'degenerate stream'.</p>
-<a href=framing.html>Ogg Logical Bitstream Framing</a> discusses
+<p><a href="framing.html">Ogg Logical Bitstream Framing</a> discusses
the page format of an Ogg bitstream, the packet coding process
-and logical bitstreams in detail. The remainder of this document
+and logical bitstreams in detail. The remainder of this document
specifies requirements for constructing finished, physical Ogg
-bitstreams.<p>
+bitstreams.</p>
<h2>Mapping Restrictions</h2>
-Logical bitstreams may not be mapped/multiplexed into physical
-bitstreams without restriction. Here we discuss design restrictions
+<p>Logical bitstreams may not be mapped/multiplexed into physical
+bitstreams without restriction. Here we discuss design restrictions
on Ogg physical bitstreams in general, mostly to introduce
design rationale. Each 'media' format defines its own (generally more
-restrictive) mapping. An '<a href="vorbis-ogg.html">Ogg Vorbis
-Audio Bitstream</a>', for example, has a <a
-href="vorbis-ogg.html">specific physical bitstream structure</a>.
+restrictive) mapping. An 'Ogg Vorbis Audio Bitstream', for example, has a
+specific physical bitstream structure.
An 'Ogg A/V' bitstream (not currently specified) will also mandate a
-specific, restricted physical bitstream format.<p>
+specific, restricted physical bitstream format.</p>
<h3>additional end-to-end structure</h3>
-The <a href="framing.html">framing specification</a> defines
+<p>The <a href="framing.html">framing specification</a> defines
'beginning of stream' and 'end of stream' page markers via a header
-flag (it is possible for a stream to consist of a single page). A
+flag (it is possible for a stream to consist of a single page). A
stream always consists of an integer number of pages, an easy
-requirement given the variable size nature of pages.<p>
+requirement given the variable size nature of pages.</p>
-In addition to the header flag marking the first and last pages of a
+<p>In addition to the header flag marking the first and last pages of a
logical bitstream, the first page of an Ogg bitstream obeys
-additional restrictions. Each individual media mapping specifies its
-own implementation details regarding these restrictions.<p>
+additional restrictions. Each individual media mapping specifies its
+own implementation details regarding these restrictions.</p>
-The first page of a logical Ogg bitstream consists of a single,
+<p>The first page of a logical Ogg bitstream consists of a single,
small 'initial header' packet that includes sufficient information to
identify the exact CODEC type and media requirements of the logical
-bitstream. The intent of this restriction is to simplify identifying
+bitstream. The intent of this restriction is to simplify identifying
the bitstream type and content; for a given media type (or across all
Ogg media types) we can know that we only need a small, fixed
-amount of data to uniquely identify the bitstream type.<p>
+amount of data to uniquely identify the bitstream type.</p>
-As an example, Ogg Vorbis places the name and revision of the Vorbis
+<p>As an example, Ogg Vorbis places the name and revision of the Vorbis
CODEC, the audio rate and the audio quality into this initial header,
thus simplifying vastly the certain identification of an Ogg Vorbis
-audio bitstream.<p>
+audio bitstream.</p>
<h3>sequential multiplexing (chaining)</h3>
-The simplest form of logical bitstream multiplexing is concatenation
-(<em>chaining</em>). Complete logical bitstreams are strung
-one-after-another in order. The bitstreams do not overlap; the final
+<p>The simplest form of logical bitstream multiplexing is concatenation
+(<em>chaining</em>). Complete logical bitstreams are strung
+one-after-another in order. The bitstreams do not overlap; the final
page of a given logical bitstream is immediately followed by the
-initial page of the next. Chaining is the only logical->physical
-mapping allowed by Ogg Vorbis.<p>
+initial page of the next. Chaining is the only logical->physical
+mapping allowed by Ogg Vorbis.</p>
-Each chained logical bitstream must have a unique serial number within
-the scope of the physical bitstream.<p>
+<p>Each chained logical bitstream must have a unique serial number within
+the scope of the physical bitstream.</p>
<h3>concurrent multiplexing (grouping)</h3>
-Logical bitstreams may also be multiplexed 'in parallel'
-(<em>grouped</em>). An example of grouping would be to allow
+<p>Logical bitstreams may also be multiplexed 'in parallel'
+(<em>grouped</em>). An example of grouping would be to allow
streaming of separate audio and video streams, using different codecs
and different logical bitstreams, in the same physical bitstream.
-Whole pages from multiple logical bitstreams are mixed together.<p>
+Whole pages from multiple logical bitstreams are mixed together.</p>
-The initial pages of each logical bitstream must appear first; the
-media mapping specifies the order of the initial pages. For example,
+<p>The initial pages of each logical bitstream must appear first; the
+media mapping specifies the order of the initial pages. For example,
Ogg A/V will eventually specify an Ogg video bitstream with
-audio. The mapping may specify that the physical bitstream must begin
+audio. The mapping may specify that the physical bitstream must begin
with the initial page of a logical video bitstream, followed by the
-initial page of an audio stream. Unlike initial pages, terminal pages
+initial page of an audio stream. Unlike initial pages, terminal pages
for the logical bitstreams need not all occur contiguously (although a
specific media mapping may require this; it is not mandated by the
-generic Ogg stream spec). Terminal pages may be 'nil' pages,
+generic Ogg stream spec). Terminal pages may be 'nil' pages,
that is, pages containing no content but simply a page header with
position information and the 'last page of bitstream' flag set in the
-page header.<p>
+page header.</p>
-Each grouped bitstream must have a unique serial number within the
-scope of the physical bitstream.<p>
+<p>Each grouped bitstream must have a unique serial number within the
+scope of the physical bitstream.</p>
<h3>sequential and concurrent multiplexing</h3>
-Groups of concurrently multiplexed bitstreams may be chained
-consecutively. Such a physical bitstream obeys all the rules of both
+<p>Groups of concurrently multiplexed bitstreams may be chained
+consecutively. Such a physical bitstream obeys all the rules of both
grouped and chained multiplexed streams; the groups, when unchained ,
must stand on their own as a valid concurrently multiplexed
-bitstream.<p>
+bitstream.</p>
<h3>multiplexing example</h3>
-Below, we present an example of a grouped and chained bitstream:<p>
+<p>Below, we present an example of a grouped and chained bitstream:</p>
-<img src=stream.png><p>
+<p><img src="stream.png" alt="stream"/></p>
-In this example, we see pages from five total logical bitstreams
-multiplexed into a physical bitstream. Note the following
-characteristics:
+<p>In this example, we see pages from five total logical bitstreams
+multiplexed into a physical bitstream. Note the following
+characteristics:</p>
-<ol><li>Grouped bitstreams begin together; all of the initial pages
-must appear before any data pages. When concurrently multiplexed
+<ol>
+<li>Grouped bitstreams begin together; all of the initial pages
+must appear before any data pages. When concurrently multiplexed
groups are chained, the new group does not begin until all the
-bitstreams in the previous group have terminated.<p>
+bitstreams in the previous group have terminated.</li>
<li>The pages of concurrently multiplexed bitstreams need not conform
to a regular order; the only requirement is that page <tt>n</tt> of a
logical bitstream follow page <tt>n-1</tt> in the physical bitstream.
There are no restrictions on intervening pages belonging to other
-logical bitstreams. (Tying page appearance to bitrate demands is one
+logical bitstreams. (Tying page appearance to bitrate demands is one
logical strategy, ie, the page appears at the chronological point
-where decode requires more information).
-
+where decode requires more information).</li>
</ol>
-<hr>
-<a href="http://www.xiph.org/">
-<img src="white-xifish.png" align=left border=0>
-</a>
-<font size=-2 color=#505050>
-
-Ogg is a <a href="http://www.xiph.org">Xiph.org Foundation</a> effort
-to protect essential tenets of Internet multimedia from corporate
-hostage-taking; Open Source is the net's greatest tool to keep
-everyone honest. See <a href="http://www.xiph.org/about.html">About
-the Xiph.org Foundation</a> for details.
-<p>
-
-Ogg Vorbis is the first Ogg audio CODEC. Anyone may freely use and
-distribute the Ogg and Vorbis specification, whether in a private,
-public or corporate capacity. However, the Xiph.org Foundation and
-the Ogg project (xiph.org) reserve the right to set the Ogg Vorbis
-specification and certify specification compliance.<p>
-
-Xiph.org's Vorbis software CODEC implementation is distributed under a
-BSD-like license. This does not restrict third parties from
-distributing independent implementations of Vorbis software under
-other licenses.<p>
-
-Ogg, Vorbis, Xiph.org Foundation and their logos are trademarks (tm)
-of the <a href="http://www.xiph.org/">Xiph.org Foundation</a>. These
-pages are copyright (C) 1994-2002 Xiph.org Foundation. All rights
-reserved.<p>
-
-</body>
+<div id="copyright">
+ The Xiph Fish Logo is a
+ trademark (&trade;) of Xiph.Org.<br/>
+ These pages &copy; 1994 - 2005 Xiph.Org. All rights reserved.
+</div>
+</body>
+</html>