[xiph-commits] r14386 - trunk/theora/doc/spec

tterribe at svn.xiph.org tterribe at svn.xiph.org
Wed Jan 9 18:06:51 PST 2008


Author: tterribe
Date: 2008-01-09 18:06:49 -0800 (Wed, 09 Jan 2008)
New Revision: 14386

Modified:
   trunk/theora/doc/spec/spec.tex
Log:
Make the spec's handling of LAST1/LAST2 for INTER_4MV mode when not all the
 luma blocks are coded match the source code.
I don't know why they diverged, but it makes no sense to use (0,0) for one of
 the last MV's, since there's special MB modes dedicated to that value already.


Modified: trunk/theora/doc/spec/spec.tex
===================================================================
--- trunk/theora/doc/spec/spec.tex	2008-01-09 19:53:18 UTC (rev 14385)
+++ trunk/theora/doc/spec/spec.tex	2008-01-10 02:06:49 UTC (rev 14386)
@@ -4138,40 +4138,41 @@
 Thus, \locvar{A} is the index in coded order of the block in the lower left,
  \locvar{B} the lower right, \locvar{C} the upper left, and \locvar{D} the
  upper right. % TODO: as shown in Figure~REF.
+\item If $\bitvar{BCODED}[\locvar{A}]$ is non-zero:
+\begin{enumerate}
+\item Decode a single motion vector into \locvar{MVX} and \locvar{MVY} using
+ the procedure described in Section~\ref{sub:mv-decode}.
+\item Assign $\bitvar{MVECTS}[\locvar{A}]$ the value
+ $(\locvar{MVX},\locvar{MVY})$.
+\end{enumerate}
+\item Otherwise, assign $\bitvar{MVECTS}[\locvar{A}]$ the value $(0,0)$.
+\item If $\bitvar{BCODED}[\locvar{B}]$ is non-zero:
+\begin{enumerate}
+\item Decode a single motion vector into \locvar{MVX} and \locvar{MVY} using
+ the procedure described in Section~\ref{sub:mv-decode}.
+\item Assign $\bitvar{MVECTS}[\locvar{B}]$ the value
+ $(\locvar{MVX},\locvar{MVY})$.
+\end{enumerate}
 \item
-If $\bitvar{BCODED}[\locvar{A}]$ is non-zero, decode a single motion vector
- into \locvar{MVX} and \locvar{MVY} using the procedure described in
- Section~\ref{sub:mv-decode}.
+Otherwise assign $\bitvar{MVECTS}[\locvar{B}]$ the value $(0,0)$.
+\item If $\bitvar{BCODED}[\locvar{C}]$ is non-zero:
+\begin{enumerate}
+\item Decode a single motion vector into \locvar{MVX} and \locvar{MVY} using
+ the procedure described in Section~\ref{sub:mv-decode}.
+\item Assign $\bitvar{MVECTS}[\locvar{C}]$ the value
+ $(\locvar{MVX},\locvar{MVY})$.
+\end{enumerate}
+\item Otherwise assign $\bitvar{MVECTS}[\locvar{C}]$ the value $(0,0)$.
+\item If $\bitvar{BCODED}[\locvar{D}]$ is non-zero:
+\begin{enumerate}
+\item Decode a single motion vector into \locvar{MVX} and \locvar{MVY} using
+ the procedure described in Section~\ref{sub:mv-decode}.
+\item Assign $\bitvar{MVECTS}[\locvar{D}]$ the value
+ $(\locvar{MVX},\locvar{MVY})$.
+\end{enumerate}
 \item
-Otherwise, assign \locvar{MVX} and \locvar{MVY} both the value zero.
+Otherwise, assign $\bitvar{MVECTS}[\locvar{D}]$ the value $(0,0)$.
 \item
-Assign $\bitvar{MVECTS}[\locvar{A}]$ the value $(\locvar{MVX},\locvar{MVY})$.
-\item
-If $\bitvar{BCODED}[\locvar{B}]$ is non-zero, decode a single motion vector
- into \locvar{MVX} and \locvar{MVY} using the procedure described in
- Section~\ref{sub:mv-decode}.
-\item
-Otherwise, assign \locvar{MVX} and \locvar{MVY} both the value zero.
-\item
-Assign $\bitvar{MVECTS}[\locvar{B}]$ the value $(\locvar{MVX},\locvar{MVY})$.
-\item
-If $\bitvar{BCODED}[\locvar{C}]$ is non-zero, decode a single motion vector
- into \locvar{MVX} and \locvar{MVY} using the procedure described in
- Section~\ref{sub:mv-decode}.
-\item
-Otherwise, assign \locvar{MVX} and \locvar{MVY} both the value zero.
-\item
-Assign $\bitvar{MVECTS}[\locvar{C}]$ the value $(\locvar{MVX},\locvar{MVY})$.
-\item
-If $\bitvar{BCODED}[\locvar{D}]$ is non-zero, decode a single motion vector
- into \locvar{MVX} and \locvar{MVY} using the procedure described in
- Section~\ref{sub:mv-decode}.
-\item
-Otherwise, assign \locvar{MVX} and \locvar{MVY} both the value zero.
-\item
-Assign $\bitvar{MVECTS}[\locvar{D}]$ the value $(\locvar{MVX},\locvar{MVY})$.
-Note that \locvar{MVX} and \locvar{MVY} retain this last value.
-\item
 If \bitvar{PF} is 0 (4:2:0):
 \begin{enumerate}
 \item
@@ -4245,6 +4246,10 @@
 Assign \locvar{LAST2} the value \locvar{LAST1}.
 \item
 Assign \locvar{LAST1} the value $(\locvar{MVX},\locvar{MVY})$.
+This is the value of the motion vector decoded from the last coded luma block
+ in raster order.
+There must always be at least one, since macro blocks with no coded luma blocks
+ must use mode 0:~INTER\_NOMV.
 \end{enumerate}
 \item
 Otherwise, if $\bitvar{MBMODES}[\locvar{\mbi}]$ is 6 (INTER\_GOLDEN\_MV),



More information about the commits mailing list