[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