[xiph-cvs] r6720 - trunk/theora/doc/spec
silvia at xiph.org
silvia at xiph.org
Mon May 17 23:16:49 PDT 2004
Author: silvia
Date: 2004-05-18 02:16:48 -0400 (Tue, 18 May 2004)
New Revision: 6720
Added:
trunk/theora/doc/spec/macroblock.fig
Modified:
trunk/theora/doc/spec/Makefile
trunk/theora/doc/spec/spec.tex
Log:
Added macroblock and superblock pictures.
<p>Modified: trunk/theora/doc/spec/Makefile
===================================================================
--- trunk/theora/doc/spec/Makefile 2004-05-18 06:04:53 UTC (rev 6719)
+++ trunk/theora/doc/spec/Makefile 2004-05-18 06:16:48 UTC (rev 6720)
@@ -9,13 +9,13 @@
SPEC_SRCS = spec.tex spec.bib
FIG_SRCS = pic-frame.fig hilbert-mb.fig hilbert-block.fig xifish.fig \
- superblock.fig
+ superblock.fig macroblock.fig
FIG_TEXS = $(FIG_SRCS:.fig=.tex)
FIG_AUXS = $(FIG_SRCS:.fig=.aux)
FIG_OBJS = pic-frame.tex hilbert-mb.tex hilbert-block.tex xifish.pdf \
- superblock.tex
+ superblock.tex macroblock.tex
Theora_I_spec.pdf : spec.pdf
$(MV) $< $@
Added: trunk/theora/doc/spec/macroblock.fig
===================================================================
--- trunk/theora/doc/spec/macroblock.fig 2004-05-18 06:04:53 UTC (rev 6719)
+++ trunk/theora/doc/spec/macroblock.fig 2004-05-18 06:16:48 UTC (rev 6720)
@@ -0,0 +1,37 @@
+#FIG 3.2 Produced by xfig version 3.2.5-alpha4
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 2 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 5
+ 702 1540 4867 1540 4867 4828 702 4828 702 1540
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 710 4828 928 4828 928 4610 710 4610 710 4828
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 914 4610 1133 4610 1133 4391 914 4391 914 4610
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 723 4385 1133 4385 1133 4828 723 4828 723 4385
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 710 4610 928 4610 928 4391 710 4391 710 4610
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 914 4828 1133 4828 1133 4610 914 4610 914 4828
+2 2 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 5
+ 2068 857 6233 857 6233 4145 2068 4145 2068 857
+2 2 1 2 0 7 50 -1 -1 6.000 0 0 -1 0 0 5
+ 1385 1198 5550 1198 5550 4487 1385 4487 1385 1198
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 2089 3702 2499 3702 2499 4145 2089 4145 2089 3702
+2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 1406 4043 1816 4043 1816 4487 1406 4487 1406 4043
+4 0 0 50 -1 0 5 0.0000 4 79 182 613 4943 (0,0)\001
+4 0 0 50 -1 0 5 0.0000 4 80 785 2055 833 Frame: chroma plane\001
+4 0 0 50 -1 0 5 0.0000 4 57 467 894 4009 Macroblock\001
+4 0 0 50 -1 0 5 0.0000 4 57 228 450 4521 Block\001
+4 0 0 50 -1 0 5 0.0000 4 57 228 450 4760 Block\001
+4 0 0 50 -1 0 5 0.0000 4 57 148 450 4863 8x8\001
+4 0 0 50 -1 0 5 0.0000 4 80 785 1235 1175 Frame: chroma plane\001
+4 0 0 50 -1 0 5 0.0000 4 80 694 621 1516 Frame: luma plane\001
Modified: trunk/theora/doc/spec/spec.tex
===================================================================
--- trunk/theora/doc/spec/spec.tex 2004-05-18 06:04:53 UTC (rev 6719)
+++ trunk/theora/doc/spec/spec.tex 2004-05-18 06:16:48 UTC (rev 6720)
@@ -255,7 +255,7 @@
however Mike Melanson maintains a detailed description \cite{Mel04}.
Portions of this specification were adopted from that text with permission.
-\subsection{VP3 and Theora}
+\section{VP3 and Theora}
Theora contains a superset of the features that were available in the original
VP3 codec.
@@ -269,7 +269,7 @@
%TODO: VP3 - theora comparison in appendix
-\subsection{Video Formats}
+\section{Video Formats}
Theora I currently supports progressive video data of arbitrary dimensions at a
constant frame rate in one of several $Y'C_bC_r$ color spaces.
@@ -286,12 +286,14 @@
Black and white content can be efficiently encoded, however, because the
uniform chroma planes compress well.
Support for interlaced material is planned for a future version.
-Note that infrequently changing frame rates---as when film and video sequences
+\begin{verse}
+{\bf Note:} Infrequently changing frame rates---as when film and video sequences
are cut together---can be supported in the Ogg container format by chaining
several Theora streams together.
+\end{verse}
Support for increased bit depths or additional color spaces is not planned.
-\subsection{Classification}
+\section{Classification}
Theora I is a block-based lossy transform codec that utilizes an
$8\times 8$ Type-II Discrete Cosine Transform and block-based motion
@@ -304,7 +306,7 @@
There is no equivalent to the bi-predictive frames (B frames) found in MPEG
codecs.
-\subsection{Assumptions}
+\section{Assumptions}
The Theora codec design assumes a complex, psychovisually-aware encoder and a
simple, low-complexity decoder.
@@ -329,7 +331,7 @@
The specification for embedding Theora into an Ogg transport stream is given in
Appendix~\ref{app:oggencapsulation}.
-\subsection{Codec Setup and Probability Model}
+\section{Codec Setup and Probability Model}
Theora's heritage is the proprietary commerical codec VP3, and it retains a
fair amount of inflexibility when compared to Vorbis \cite{vorbis}, the first
@@ -372,7 +374,7 @@
%silvia: renamed
%\subsection{Format Specification}
-\subsection{Format Conformance}
+\section{Format Conformance}
The Theora format is well-defined by its decode specification; any encoder that
produces packets that are correctly decoded by an implementation following
@@ -393,9 +395,9 @@
\chapter{Coded Video Structure}
-Theora is based on $8\times 8$ blocks of pixels.
-This sections describes how a video frame is laid out, divided into blocks, and
- how those blocks are organized.
+Theora's encoding and decoding process is based on $8\times 8$ blocks of pixels.
+This sections describes how a video frame is laid out, divided into such
+blocks, and how those blocks are organized.
\section{Frame Layout}
@@ -464,13 +466,22 @@
\section{Blocks and Super Blocks}
\label{sec:blocks-and-sbs}
-Each color plane is subdivided into $8\times 8$ \term{blocks}.
-Blocks are grouped into $4\times 4$ arrays called \term{super blocks}.
+Each color plane is subdivided into \term{blocks} of $8\times 8$ pixels.
+Blocks are grouped into $4\times 4$ arrays called \term{super blocks} as
+shown in Figure~\ref{fig:superblock}.
Each color plane has its own set of blocks and super blocks.
The boundaries of blocks and super blocks in the luma plane do not necessarily
coincide with those of the chroma planes, if the chroma planes have been
subsampled.
+\begin{figure}[htb]
+ \begin{center}
+ \include{superblock}
+ \end{center}
+ \caption{Subdivision of a frame into blocks and super blocks}
+ \label{fig:superblock}
+\end{figure}
+
Blocks are accessed in two different orders in the various decoder processes.
The first is \term{raster order}.
This indexes each block in row-major order, starting in the lower left and
@@ -543,7 +554,7 @@
\label{sec:mbs}
A macro block contains a $2\times 2$ array of blocks in the luma plane
- {\em and} the co-located blocks in the chroma planes.
+ {\em and} the co-located blocks in the chroma planes, as shown in Figure~\ref{fig:macroblock}.
Thus macro blocks can represent anywhere from six to twelve blocks, depending
on how the chroma planes are subsampled.
This is in contrast to super blocks, which only contain macro blocks from a
@@ -561,8 +572,13 @@
Macro bocks contain information about coding mode and motion vectors for the
corresponding blocks in all color planes.
-%TODO: Add figure showing organization of blocks, super blocks, and macro
-% blocks.
+\begin{figure}[htb]
+ \begin{center}
+ \include{macroblock}
+ \end{center}
+ \caption{Subdivision of a frame into macro blocks}
+ \label{fig:macroblock}
+\end{figure}
Macro blocks are also accessed in a \term{coded order}.
This coded order proceeds by examining each super block in the luma plane in
--- >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