Commit things
[ipdf/sam.git] / presentation / presentation.tex
index 8b4108c..d98b820 100644 (file)
@@ -35,7 +35,7 @@
 %   affiliation.
 
 \institute[UWA]% (optional) {Universities of Western Australia} 
-{Supervisors: Tim French, Rowan Davies}
+{Supervisors: Tim French, Rowan Davies \\ Colleagues: David Gow}
 
 \date[CSS 2009]{\today} % change the actual date
  %\titlegraphic{\includegraphics[width=3cm]{./Logos/WAMSI.png}}
 
 \end{frame}
 
+\begin{frame}
+\begin{itemize}
+       \item Vector graphics scale better than raster graphics
+\end{itemize}
+       \centering
+       \includegraphics[scale=0.7528125, viewport=210 85 280 150,clip, width=0.45\textwidth]{../figures/fox-vector.pdf}
+       \includegraphics[scale=0.7528125, viewport=0 85 70 150,clip, width=0.45\textwidth]{../figures/fox-raster.png}
+\end{frame}
+
 
 
 
 \begin{frame} 
 \frametitle{Is there a zoom limit?} 
 \centering
-\includegraphics{../figures/koch1.pdf}
+\includegraphics{../figures/koch.pdf}
 \end{frame}
 
 \section{Floating Point}
 \begin{itemize}
        \item SVG, PostScript, PDF specify IEEE-754 \emph{single} floating point number representations
        \item Range of values: $\approx 3 \times 10^{-38} \to 3 \times 10^{+38}$
+       \item Bigger than size of Universe?
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Floating Point Definition}
+\begin{itemize}
        \item Rough Floating Point Definition\footnote{IEEE-754 is more complicated}:
        
        \begin{align}
        \end{align}
        \item $m$ and $E$ are encoded in a \emph{fixed length} string of bits
        \item Floating Point $\approx$ Scientific Notation for computers
-
 \end{itemize}
 \end{frame}
 
 \frametitle{Visualisation of Floats II}
 \begin{itemize}
        \item Difference between successive floats
+       \item Further from origin $\implies$ less precision
 \end{itemize}
 \centering
 \includegraphics[width=0.8\textwidth]{../figures/floats_diff.pdf}
 
 \begin{frame}
        \frametitle{Precision is limited}
+       \begin{itemize}
+               \item Eg: Fox scaled to width of $\approx 10^{-6}$ viewed at zoom of $\approx 10^{8}$
+               \item (Outline should look like images in first slide)
+       \end{itemize}
        \centering
        \includegraphics[width=0.8\textwidth]{../figures/fox-vector_highzoom1.png}
 \end{frame}
 
+
 \begin{frame}
 \frametitle{Structure of Vector Graphics}
 \begin{itemize}
 \includegraphics[width=0.5\textwidth]{../figures/fox-vector_face_with_bezbounds.png}
 \end{frame}
 
+\begin{frame}
+\frametitle{Vector Graphics Viewer Features}
+\begin{itemize}
+       \item GPU (OpenGL) or CPU (custom) rendering
+       \item Import SVG into current View location
+       \item Control through scripts (Python) or Qt4 GUI
+\end{itemize}
+\centering
+\includegraphics[width=0.4\textwidth]{../figures/controlpanel_screenshot.png}
+
+\end{frame}
+
 
 \begin{frame}
 \frametitle{Viewing Vector Graphics}
 \end{frame}
 
 
+\begin{frame}
+       \frametitle{Quantitative Results}
+       \begin{itemize}
+               \item Invariance of grid of lines after scaling
+       \end{itemize}
+       \centering
+       \includegraphics[width=0.8\textwidth]{../figures/cumulative_error_grid.pdf}
+\end{frame}
+
+
 
 
 \section{Demonstration}
        \begin{itemize}
                \item Implement more of the SVG standard
                \item Trial alternative number representations
-               \item Allow for saving and loading SVGs with arbitrary precision
+               \item Allow for saving and loading
+               \item Optimisations, eg: clip objects that are not visible
+               \item Compile for Windows (MinGW)
        \end{itemize}
 \end{frame}
-%\section{References}
+
 \begin{frame}
-       \frametitle{References \& More information}
+       \frametitle{Acknowledgements}
        \begin{itemize}
                \item Work on SVG viewer collaborative with David Gow
                \begin{itemize}
                        \item See David Gow's presentation about Quadtrees
                \end{itemize}
+               \item Supervisors: Tim French and Rowan Davies  
+       \end{itemize}
+\end{frame}
+%\section{References}
+\begin{frame}
+       \frametitle{References \& More information}
+       \begin{itemize}
                \item Muller et al, \emph{Handbook of Floating Point Arithmetic}, 
                \item Hearn, Baker \emph{Computer Graphics}
                \item Kahan et al, \emph{IEEE-754} (1985 and 2008 revision)
 \end{frame}
 %\section{Questions}
 
-
-
 \begin{frame}
-\frametitle{Q: Why not just increase \\ floating point precision?}
-\begin{itemize}
-       \item Any fixed precision format will still give inexact results
-       \item Eg: Accuracy of rendering a grid
-\end{itemize}
+\frametitle{Q: Why not just increase float precision?}
+       \begin{itemize}
+               \item GPU uses singles anyway
+               \item Can use CPU for bounds transforms
+               \item But eventually lose precision for any \emph{fixed} precision float
+       \end{itemize}
+       \centering
+       \includegraphics[width=0.8\textwidth]{{../figures/loss_of_precision_grid_0.5}.pdf}
 \end{frame}
 
 \begin{frame}
+
 \frametitle{Q: Arbitrary precision floats?}
 \begin{align}
        X &= m \times 2^{E}
 \end{align}
 \begin{itemize}
        \item $m$ and $E$ are of arbitrary size
-       \item Implemented by MPFR or GMP
+       \item Implemented by MPFR (based on GMP)
        \item Difficulties:
        \begin{itemize}
                \item Need to manually set precision (size) of $m$
                        \frac{1}{3} &= 0.3333333333333333333333 \text{ ... } \times 10^0
                \end{align}
                \item How do you choose when to increase precision?
+               \item GMP Rational implementation automatically increases size, but MPFR floats do not
        \end{itemize}
 \end{itemize}
 \end{frame}
 
 \end{frame}
 
+\begin{frame}
+       \frametitle{Quantitative?}
+%      \begin{figure}[H]
+       \centering
+       \includegraphics[width=0.4\textwidth]{../figures/grid_0_1e-6.png}
+       \includegraphics[width=0.4\textwidth]{../figures/{grid_0.5_1e-6}.png} \\
+       \includegraphics[width=0.4\textwidth]{../figures/grid_1_1e-6.png}
+       \includegraphics[width=0.4\textwidth]{../figures/grid_2_1e-6.png}
+       %\caption{Effect of applying \eqref{view-transformation} to a grid of lines seperated by 1 pixel \\
+       %a) Near origin (denormals) b), c), d) Increasing the exponent of $(v_x,v_y)$ by 1}\label{grid-precision}
+%\end{figure}
+
+       
+\end{frame}
+
+\begin{frame}
+       \frametitle{Bresenham and Wu}
+       \centering
+       \includegraphics[width=0.5\textwidth]{../figures/line1.pdf}
+       \includegraphics[width=0.5\textwidth]{../figures/line2.pdf}
+\end{frame}
+
+\begin{frame}
+       \frametitle{Bonus: IEEE-754 on GPUs}
+       \begin{itemize}
+               \item Inconsistent behaviour of calculations on different GPUs
+               \item {\small Eg: $x^2 + y^2 < 1$ (shading a circle) zoomed in on the edge.}
+       \end{itemize}
+       \centering
+       \includegraphics[width=0.4\textwidth]{../figures/gpufloats.pdf}
+\end{frame}
 
 \end{document}

UCC git Repository :: git.ucc.asn.au