[xiph-commits] r7902 - trunk/theora/doc/spec
tterribe at motherfish-iii.xiph.org
tterribe at motherfish-iii.xiph.org
Fri Oct 1 10:24:15 PDT 2004
Author: tterribe
Date: 2004-10-01 10:24:14 -0700 (Fri, 01 Oct 2004)
New Revision: 7902
Modified:
trunk/theora/doc/spec/spec.tex
Log:
Clarify wording in the motion vector decode section.
Also, fill in a couple of outstanding section references.
Modified: trunk/theora/doc/spec/spec.tex
===================================================================
--- trunk/theora/doc/spec/spec.tex 2004-10-01 14:08:13 UTC (rev 7901)
+++ trunk/theora/doc/spec/spec.tex 2004-10-01 17:24:14 UTC (rev 7902)
@@ -2727,7 +2727,7 @@
\paragraph{VP3 Compatibility}
The quantization parameters are hardcoded in VP3.
-The values used are given in Appendix~REF.
+The values used are given in Appendix~\ref{app:vp3-quant-params}.
\subsection{Computing a Quantization Matrix}
\label{sub:quant-mat}
@@ -3930,7 +3930,14 @@
own motion vector, and motion vectors for blocks in the chroma planes are
computed from these, using averaging appropriate to the pixel format.
-Only of a few of the macro block coding modes require decoding motion vectors
+For INTER\_MV and INTER\_GOLDEN\_MV modes, a single motion vector is decoded
+ and applied to each block.
+For INTER\_MV\_FOUR macro blocks, a motion vector is decoded for each coded
+ luma block.
+Uncoded luma blocks receive the default $(0,0)$ vector for the purposes of
+ computing the chroma motion vectors.
+
+None of the remaining macro block coding modes require decoding motion vectors
from the stream.
INTRA mode does not use a motion-compensated predictor, and so requires no
motion vector, and INTER\_NOMV and INTER\_GOLDEN\_NOMV modes use the default
@@ -3941,19 +3948,14 @@
The modes INTER\_MV\_LAST and INTER\_MV\_LAST2 use the motion vector from the
last macro block (in coded order) and the second to last macro block,
respectively, that contained a motion vector pointing to the previous frame.
+Thus no explicit motion vector needs to be decoded for these modes.
Macro blocks coded in INTRA mode or one of the GOLDEN modes are not considered
in this process.
+If an insufficient number of macro blocks have been coded in one of the INTER
+ modes, then the $(0,0)$ vector is used instead.
For macro blocks coded in INTER\_MV\_FOUR mode, the vector from the upper-right
luma block is used, even if the upper-right block is not coded.
-Thus no explicit motion vector needs to be decoded for these modes.
-For INTER\_MV and INTER\_GOLDEN\_MV modes, a single motion vector is decoded
- and applied to each block.
-For INTER\_MV\_FOUR macro blocks, a motion vector is decoded for each coded
- luma block.
-Uncoded luma blocks receive the default $(0,0)$ vector for the purposes of
- computing the chroma motion vectors.
-
The motion vectors are decoded from the stream as follows:
\begin{enumerate}
@@ -4537,8 +4539,9 @@
buffer overflows from invalidly formed packets.
\begin{verse}
{\bf Note:} One way to achieve this efficiently is to combine the inverse
- zig-zag mapping (described later in Section~REF) with coefficient decode, and
- use a table look-up to map zig-zag indices greater than 63 to a safe location.
+ zig-zag mapping (described later in Section~\ref{sub:dequant}) with
+ coefficient decode, and use a table look-up to map zig-zag indices greater
+ than 63 to a safe location.
\end{verse}
\begin{enumerate}
More information about the commits
mailing list