Add my proposal and references
authorSam Moore <[email protected]>
Thu, 20 Mar 2014 04:47:33 +0000 (12:47 +0800)
committerSam Moore <[email protected]>
Thu, 20 Mar 2014 04:47:33 +0000 (12:47 +0800)
12 files changed:
.gitignore [new file with mode: 0644]
ProjectProposalSam.pdf [new file with mode: 0644]
ProjectProposalSam.tex [new file with mode: 0644]
papers.bib
references/barnes2013embedding.pdf [new file with mode: 0644]
references/bergen2012automatic.pdf [new file with mode: 0644]
references/cheng2002portable.pdf [new file with mode: 0644]
references/goldberg1991whatevery.pdf [new file with mode: 0644]
references/goldberg1992thedesign.pdf [new file with mode: 0644]
references/goldman_fractal.pdf [new file with mode: 0644]
references/hayes2012pixels.pdf [new file with mode: 0644]
references/priest1991algorithms.pdf [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..0c56648
--- /dev/null
@@ -0,0 +1,7 @@
+*~
+*.aux
+*.log
+*.dvi
+*.out
+*.bbl
+*.blg
diff --git a/ProjectProposalSam.pdf b/ProjectProposalSam.pdf
new file mode 100644 (file)
index 0000000..4dfa99a
Binary files /dev/null and b/ProjectProposalSam.pdf differ
diff --git a/ProjectProposalSam.tex b/ProjectProposalSam.tex
new file mode 100644 (file)
index 0000000..ea7d6b4
--- /dev/null
@@ -0,0 +1,193 @@
+\documentclass[12pt]{article}
+\usepackage{graphicx}
+\usepackage{caption}
+\usepackage{amsmath} % needed for math align
+\usepackage{bm} % needed for maths bold face
+ \usepackage{graphicx}    % needed for including graphics e.g. EPS, PS
+\usepackage{fancyhdr}  % needed for header
+
+\usepackage{hyperref}
+
+ \topmargin -1.5cm        % read Lamport p.163
+ \oddsidemargin -0.04cm   % read Lamport p.163
+ \evensidemargin -0.04cm  % same as oddsidemargin but for left-hand pages
+ \textwidth 16.59cm
+ \textheight 21.94cm 
+ %\pagestyle{empty}       % Uncomment if don't want page numbers
+ \parskip 8.2pt           % sets spacing between paragraphs
+ %\renewcommand{\baselinestretch}{1.5}         % Uncomment for 1.5 spacing between lines
+ %\parindent 0pt                 % sets leading space for paragraphs
+
+
+\newcommand{\vect}[1]{\boldsymbol{#1}} % Draw a vector
+\newcommand{\divg}[1]{\nabla \cdot #1} % divergence
+\newcommand{\curl}[1]{\nabla \times #1} % curl
+\newcommand{\grad}[1]{\nabla #1} %gradient
+\newcommand{\pd}[3][ ]{\frac{\partial^{#1} #2}{\partial #3^{#1}}} %partial derivative
+%\newcommand{\d}[3][ ]{\frac{d^{#1} #2}{d #3^{#1}}} %full derivative
+\newcommand{\phasor}[1]{\tilde{#1}} % make a phasor
+\newcommand{\laplacian}[1]{\nabla^2 {#1}} % The laplacian operator
+
+\usepackage{color}
+\usepackage{listings}
+
+\definecolor{darkgray}{rgb}{0.95,0.95,0.95}
+\definecolor{darkred}{rgb}{0.75,0,0}
+\definecolor{darkblue}{rgb}{0,0,0.75}
+\definecolor{pink}{rgb}{1,0.5,0.5}
+\lstset{language=Java}
+\lstset{backgroundcolor=\color{darkgray}}
+\lstset{numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt}
+\lstset{keywordstyle=\color{darkred}\bfseries}
+\lstset{commentstyle=\color{darkblue}}
+%\lstset{stringsyle=\color{red}}
+\lstset{showstringspaces=false}
+\lstset{basicstyle=\small}
+
+
+\begin{document}
+
+\pagestyle{fancy}
+\fancyhead{}
+\fancyfoot{}
+
+\fancyhead[LO, L]{}
+\fancyfoot[CO, C]{\thepage}
+
+\begin{center}
+       B.Eng. Final Year Project \par
+       {\bf \Large Research Proposal} \par
+       Sam Moore \\
+       Faculty of Engineering, Computing and Mathematics, University of Western Australia \\
+       March 2014
+\end{center}
+
+\section*{Infinite Precision Document Formats}
+{\bf \emph{Keywords:} fractals, arbitrary precision, vector graphics, postscript, pdf, OpenGL} \\
+{\bf \emph{Superviser:}} Prof. Tim French (UWA) \\
+{\bf \emph{Team Members:}}  \underline{Sam Moore} (Mechatronics Eng), David Gow (Software Eng)\cite{proposalGow} \\
+
+
+%\tableofcontents
+
+\section{Background}
+
+Early electronic document formats such as PostScript were motivated by a need to print documents onto a paper medium. In the PostScript standard, this lead to a model of the document
+as a program; a series of instructions to be executed by an interpreter which would result in ``ink'' being placed on ``pages'' of a fixed size\cite{plrm}. The ubiquitous Portable Document Format (PDF) standard provides many enhancements to PostScript taking into account desktop publishing requirements\cite{cheng2002portable}, but it is still fundamentally based on the same imaging model\cite{pdfref17}. This idea of a document as a static ``page'' has lead to limited precision in these and other traditional document formats. 
+
+The emergence of the internet, web browsers, XML/HTML and related technologies has seen a revolution in the ways in which information can be presented digitally, and the PDF standard itself has moved well beyond static text and figures\cite{hayes2012pixels, barnes2013embedding} but all modern document formats are still designed with the intention of showing information at a single, fixed level of detail.
+
+
+As most digital display devices are smaller than physical paper medium, all useful viewers are able to ``zoom'' to a subset of the document. Vector graphics formats including PostScript and PDF support rasterisation at different zoom levels\cite{plrm, pdfref17}, but the use of fixed precision floating point numbers causes problems due to imprecision either far from the origin, or at a high level of detail\cite{goldberg91whatevery, goldberg1992thedesign}.
+
+We are now seeing a widespread use of mobile computing devices with touch screens, where the display size is typically much smaller than paper pages and traditional computer monitors; it seems that there is much to be gained by breaking free of the restricted precision of traditional document formats.
+
+
+\section{Aim}
+
+In this project, we will explore the state of the art of current document formats including PDF, PostScript, SVG, HTML, and the limitations of each in terms of precision.
+We will consider designs for a document format allowing graphics primitives at an arbitrary level of zoom with no loss of detail. A viewer and editor will be implemented as a proof of concept. 
+
+The goal is to be able to render a primitive at the same level of detail it is specified. For example, the coordinates of primitives drawn in a graphical editor will be limited by the resolution of the display on which they are drawn, but not by the viewer.
+
+There are many possible applications for documents in which precision is unlimited. Several areas of use include: visualisation of extremely large or infinite data sets; digital artwork; computer aided design; and maps.
+   
+\section{Methods}
+
+Initial research and software development will be conducted in collaboration with David Gow\cite{proposalGow}. Once a simple testbed application has been developed, we will individually explore approaches for introducing arbitrary levels of precision; these approaches will be implemented as alternate versions of the same software. The focus will be on drawing simple primitives (lines, polygons, circles). However, if time permits we will explore adding more complicated primitives (font glyphs, bezier curves, embedded bitmaps). 
+
+
+At this stage we have identified two possible areas for individual research:
+
+\begin{enumerate}
+
+       \item {\bf Arbitrary Precision real valued numbers} --- Sam Moore
+
+       We plan to investigate algorithms related to the representation of real values to an arbitary degree of precision. This would allow for a document to be represented
+       using a single global coordinate system. However, we would expect a decrease in performance with increased complexity of the data structure used to represent a real value.
+       We will also need to consider limitations imposed by performing calculations on the GPU or CPU.
+
+       Possible starting points for research in this area are Priest's 1991 paper, ``Algorithms for Arbitrary Precision Floating Point Arithmetic''\cite{priest1991algorithms}, and Goldberg's 1992 paper ``The design of floating point data types''\cite{goldberg1992thedesign}.
+
+
+
+       \item {\bf Local coordinate systems} --- David Gow \cite{proposalGow}
+       
+       An alternative approach involves segmenting the document into different regions using fixed precision floats to define primitives within each region. A quadtree or similar data structure could be employed to identify and render those regions currently visible in the document viewer.
+
+\end{enumerate}
+\pagebreak
+We aim to compare these and any additional implementations considered using the following metrics:
+\begin{enumerate}
+
+       \item {\bf Performance vs Number of Primitives}
+
+       As it is clearly desirable to include more objects in a document, this is a natural metric for the usefulness of an implementation.
+       We will compare the performance of rendering different implementations, using several ``standard'' test documents.
+       
+       \item {\bf Performance vs Visible Primitives}
+
+       There will inevitably be an overhead to all primitives in the document, whether drawn or not.
+       As the structure of the document format and rendering algorithms may be designed independently, we will repeat the above tests considering only the number of visible primitives. 
+       
+       
+       \item {\bf Performance vs Zoom Level}
+
+       We will also consider the performance of rendering at zoom levels that include primitives on both small and large scales, since these are the cases under which floating point precision causes problems in the PostScript and PDF standards.
+
+       \item {\bf Performance whilst translation and scaling}
+
+       Whilst changing the view, it is ideal that the document be re-rendered as efficiently as possible, to avoid disorienting and confusing the user.
+       We will therefore compare the speed of rendering as the standard documents are translated or scaled at a constant rate.
+
+       \item {\bf Artifacts and Limitations on Precision}
+
+       As we are unlikely to achieve truly ``infinite'' precision, qualitative comparisons of the accuracy of rendering under different implementations should be made.
+
+\end{enumerate}
+
+\section{Software and Hardware Requirements}
+
+Due to the relative immaturity and inconsistency of graphics drivers on mobile devices, our proof of concept will be developed for a conventional GNU/Linux desktop or laptop computer using OpenGL. However, the techniques explored could easily be extended to other platforms and libraries.
+
+
+\pagebreak
+
+\section{Timeline}
+
+Deadlines enforced by the faculty of Engineering Computing and Mathematics are \emph{italicised}.\footnote{David Gow is being assessed under the 2014 rules for a BEng (Software) Final Year Project, whilst the author is being assessed under the 2014 rules for a BEng (Mechatronics) Final Year Project; deadlines and requirements as shown in Gow's proposal\cite{proposalGow} may differ}.
+
+\begin{center}
+\begin{tabular}{l|p{0.5\textwidth}}
+       {\bf Date} & {\bf Milestone}\\
+       \hline
+       $17^{\text{th}}$ April & Draft Literature Review completed.\\
+       \hline
+       $1^{\text{st}}$ May & Testbed Software (basic document format and viewer) completed and approaches for extending to allow infinite precision identified. \\
+       \hline
+       $26^{\text{th}}$ May & \emph{Progress Report and Revised Literature Review due.}\\
+       \hline
+       $9^{\text{th}}$ June & Demonstrations of limitations of floating point precision in the Testbed software. \\
+       $1^{\text{st}}$ July & At least one implementation of infinite precision for basic primitives (lines, polygons, curves) completed. Other implementations, advanced features, and areas for more detailed research identified. \\
+       \hline
+       $1^{\text{st}}$ August & Experiments and comparison of various infinite precision implementations completed. \\
+       \hline
+       $1^{\text{st}}$ September & Advanced features implemented and tested, work underway on Final Report. \\
+       \hline
+       TBA & \emph{Conference Abstract and Presentation due.} \\
+       \hline
+       $10^{\text{th}}$ October & \emph{Draft of Final Report due.} \\
+       \hline
+       $27^{\text{th}}$ October & \emph{Final Report due.}\\
+       \hline
+\end{tabular}
+\end{center}
+
+\pagebreak
+\bibliographystyle{unsrt}
+\bibliography{papers}
+
+This proposal also available at: \\ \url{http://szmoore.net/ipdf/documents/ProjectProposalSam.pdf}.
+
+\end{document}
+
index 1dc6e87..739bf0b 100644 (file)
 %%%%%%%%%%%%%%%%%%%%%%%
 % Floating-pt Precision
 %%%%%%%%%%%%%%%%%%%%%%%
+Goldberg:1991:CSK:103162.103163,
 @article{goldberg91whatevery,
-  author = {David Goldberg},
-  title = {What Every Computer Scientist Should Know About Floating-Point Arithmetic},
-  year = {1991},
-  publisher={Sun Microsystems, Inc.}
-}
-
+ author = {Goldberg, David},
+ title = {What Every Computer Scientist Should Know About Floating-point Arithmetic},
+ journal = {ACM Comput. Surv.},
+ issue_date = {March 1991},
+ volume = {23},
+ number = {1},
+ month = mar,
+ year = {1991},
+ issn = {0360-0300},
+ pages = {5--48},
+ numpages = {44},
+ url = {http://doi.acm.org/10.1145/103162.103163},
+ doi = {10.1145/103162.103163},
+ acmid = {103163},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {NaN, denormalized number, exception, floating-point, floating-point standard, gradual underflow, guard digit, overflow, relative error, rounding error, rounding mode, ulp, underflow},
+} 
 @inproceedings{emmart2010high,
   title={High precision integer multiplication with a graphics processing unit},
   author={Emmart, Niall and Weems, Charles},
   organization={IEEE}
 }
 
+% Basic overview of PDF and how it is awesome.
+% This doesn't seem like a major revelation for 2002
+@article{cheng2002portable,
+       Abstract = {Focuses on the portable document format (PDF) as a universal document exchange technology. Features of PDF; PDF software; Description of how to create a PDF file.},
+       Author = {Wan-Lee Cheng, Michael A.},
+       ISSN = {10716084},
+       Journal = {Journal of Technology Studies},
+       Keywords = {PDF (Computer file format), FILE organization (Computer science), ELECTRONIC data processing},
+       Number = {1},
+       Pages = {59 - 63},
+       Title = {Portable Document Format (PDF) -- Finally, a Universal Document Exchange Technology.},
+       Volume = {28},
+       URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=11512377&site=ehost-live},
+       Year = {2002},
+}
+
+% Overview of different formats
+% Talks about JavaScript being the future
+% Best title so far
+@article{hayes2012pixels,
+       Abstract = {The article discusses digital methods for producing and reproducing scientific illustrations for online publication. Topics covered include the benefits of digital techniques for publishing such as three-dimensional graphics, the contribution to the visual quality of artwork using the computer language PostScript, and the Internet as a source for innovation in graphics like Scalable Vector Graphics (SVG). Also mentioned is the JavaScript library D3, an open-source software project, which can create and modify elements.},
+       Author = {Hayes, Brian},
+       ISSN = {00030996},
+       Journal = {American Scientist},
+       Keywords = {ELECTRONIC publishing, SCIENCE publishing, GRAPHIC methods -- Software, POSTSCRIPT (Computer program language), JAVASCRIPT (Computer program language), CHARTS, diagrams, etc., DESIGN & construction},
+       Number = {2},
+       Pages = {106 - 111},
+       Title = {Pixels or Perish.},
+       Volume = {100},
+       URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=71853141&site=ehost-live},
+       Year = {2012},
+}
+
+% Embedding 3D models / graphs in PDFs
+% Actually works (in Adobe Reader)
+@article{barnes2013embedding,
+       Abstract = {With the latest release of the S2PLOT graphics library, embedding interactive, 3-dimensional (3-d) scientific figures in Adobe Portable Document Format (PDF) files is simple, and can be accomplished without commercial software. In this paper, we motivate the need for embedding 3-d figures in scholarly articles. We explain how 3-d figures can be created using the S2PLOT graphics library, exported to Product Representation Compact (PRC) format, and included as fully interactive, 3-d figures in PDF files using the movie15 LaTeX package. We present new examples of 3-d PDF figures, explain how they have been made, validate them, and comment on their advantages over traditional, static 2-dimensional (2-d) figures. With the judicious use of 3-d rather than 2-d figures, scientists can now publish, share and archive more useful, flexible and faithful representations of their study outcomes. The article you are reading does not have embedded 3-d figures. The full paper, with embedded 3-d figure},
+       Author = {Barnes, David G. and Vidiassov, Michail and Ruthensteiner, Bernhard and Fluke, Christopher J. and Quayle, Michelle R. and McHenry, Colin R.},
+       ISSN = {19326203},
+       Journal = {PLoS ONE},
+       Keywords = {PDF (Computer file format), EMBEDDINGS (Mathematics), COMPUTER software, THREE-dimensional imaging, LATEX (Computer software), COMPUTER graphics, Research Article},
+       Number = {9},
+       Pages = {1 - 15},
+       Title = {Embedding and Publishing Interactive, 3-Dimensional, Scientific Figures in Portable Document Format (PDF) Files.},
+       Volume = {8},
+       URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=90530375&site=ehost-live},
+       Year = {2013},
+}
+
+%Goldberg:1992:DFD:151333.151373
+% Looks useful... although it does have FORTRAN in it
+@article{goldberg1992thedesign,
+ author = {Goldberg, David},
+ title = {The Design of Floating-point Data Types},
+ journal = {ACM Lett. Program. Lang. Syst.},
+ issue_date = {June 1992},
+ volume = {1},
+ number = {2},
+ month = jun,
+ year = {1992},
+ issn = {1057-4514},
+ pages = {138--151},
+ numpages = {14},
+ url = {http://doi.acm.org/10.1145/151333.151373},
+ doi = {10.1145/151333.151373},
+ acmid = {151373},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {Ada, FORTRAN 90, Modula-3, backward error analysis, error analysis, exceptions, floating point, floating-point standard, guard digit, precision, rounding, ulp},
+} 
+
+% It seems wierd using our last names...
+@article{proposalGow,
+       title = "Infinite-precision Document Formats (Project Proposal)",
+       author = "David Gow",
+       year = "2014",
+       howpublished = "http://davidgow.net/stuff/ProjectProposal.pdf"
+}
+
+% Note the different title
+@article{proposalMoore,
+       title = "Infinite Precision Document Formats (Project Proposal)",
+       author = "Sam Moore",
+       year = "2014",
+       howpublished = "http://szmoore.net/ipdf/documents/ProjectProposalSam.pdf"
+}
+
+% The Fractal Nature of Bezier Curves
+% Added 2014-01-15
+% No date?
+@article {goldman_thefractal,
+       title = "The Fractal Nature of Bezier Curves",
+       author = "Ron Goldman",
+       publisher = "Department of Computer Science, Rice University",
+       address = "6100 Main Street, Houstan, Texas",
+       note = "The de Casteljau subdivision algorithm is used to show that Bezier curves are also attractors (ie: fractals).
+               A new rendering algorithm is derived for Bezier curves."
+}
+
+% Talks about security of PDF, probably not useful,
+@article{sami2009alook,
+       Abstract = {Abstract: Portable Document Format (PDF) developed by Adobe Systems Inc. is a flexible and popular document distribution and delivery file format, and it is supported within various operating systems and devices. This article provides insight for some of the security issues within the format itself as well as an outlook of the vulnerabilities found from various versions of Adobeā€˜s own PDF viewer implementation. [Copyright &y& Elsevier]},
+       Author = {Rautiainen, Sami},
+       ISSN = {13634127},
+       Journal = {Information Security Technical Report},
+       Keywords = {PDF (Computer file format), FILE organization (Computer science), SYSTEMS software, COMPUTER files},
+       Number = {1},
+       Pages = {30 - 33},
+       Title = {A look at Portable Document Format vulnerabilities.},
+       Volume = {14},
+       URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=40637035&site=ehost-live},
+       Year = {2009},
+}
+
+% Interesting but not related to the project
+@article{bergen2012automatic,
+       Abstract = {Vector graphics are popular in illustration and graphic design. Images are composed of discrete geometric shapes, such as circles, squares, and lines. The generation of vector images by evolutionary computation techniques, however, has been given little attention. JNetic is an implementation of a comprehensive evolutionary vector graphics tool. Vector primitives available range from simple geometric shapes (circles, polygons) to spline-based paint strokes. JNetic supports automatic and user-guided evolution, chromosome editing, and high-detail masks. Automatic evolution involves measuring the pixel-by-pixel colour distance between a candidate and target image. Masks can be painted over areas of the target image, which help reproduce the high-detail features within those areas. By creative selection of primitives and colour schemes, stylized interpretations of target images are produced. The system has been successfully used by the authors as a creative tool. [ABSTRACT FROM AUTHOR]},
+       Author = {Bergen, Steven and Ross, Brian},
+       ISSN = {01782789},
+       Journal = {Visual Computer},
+       Keywords = {GRAPHIC arts, GENETIC algorithms, GRAPHIC design, GRAPHIC designers, VISUAL communication, RESEARCH, Evolutionary art, Genetic algorithm, Vector graphics},
+       Number = {1},
+       Pages = {35 - 45},
+       Title = {Automatic and interactive evolution of vector graphics images with genetic algorithms.},
+       Volume = {28},
+       URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=70129435&site=ehost-live},
+       Year = {2012},
+}
+
+% Similar to goldman1992, also old, need to find newer references
+@INPROCEEDINGS{priest1991algorithms,
+author={Priest, D.M.},
+booktitle={Computer Arithmetic, 1991. Proceedings., 10th IEEE Symposium on},
+title={Algorithms for arbitrary precision floating point arithmetic},
+year={1991},
+month={Jun},
+pages={132-143},
+keywords={digital arithmetic;number theory;coordinates;floating point arithmetic;intersection point;line intersection;line segment;Algorithm design and analysis;Costs;Error analysis;Floating-point arithmetic;Hardware;High performance computing;Libraries;Mathematics;Packaging;Roundoff errors},
+doi={10.1109/ARITH.1991.145549},}
diff --git a/references/barnes2013embedding.pdf b/references/barnes2013embedding.pdf
new file mode 100644 (file)
index 0000000..dff80de
Binary files /dev/null and b/references/barnes2013embedding.pdf differ
diff --git a/references/bergen2012automatic.pdf b/references/bergen2012automatic.pdf
new file mode 100644 (file)
index 0000000..ddb01c7
Binary files /dev/null and b/references/bergen2012automatic.pdf differ
diff --git a/references/cheng2002portable.pdf b/references/cheng2002portable.pdf
new file mode 100644 (file)
index 0000000..10448dd
Binary files /dev/null and b/references/cheng2002portable.pdf differ
diff --git a/references/goldberg1991whatevery.pdf b/references/goldberg1991whatevery.pdf
new file mode 100644 (file)
index 0000000..fd05ccd
Binary files /dev/null and b/references/goldberg1991whatevery.pdf differ
diff --git a/references/goldberg1992thedesign.pdf b/references/goldberg1992thedesign.pdf
new file mode 100644 (file)
index 0000000..3cdf858
Binary files /dev/null and b/references/goldberg1992thedesign.pdf differ
diff --git a/references/goldman_fractal.pdf b/references/goldman_fractal.pdf
new file mode 100644 (file)
index 0000000..6b54ac6
Binary files /dev/null and b/references/goldman_fractal.pdf differ
diff --git a/references/hayes2012pixels.pdf b/references/hayes2012pixels.pdf
new file mode 100644 (file)
index 0000000..b37b293
Binary files /dev/null and b/references/hayes2012pixels.pdf differ
diff --git a/references/priest1991algorithms.pdf b/references/priest1991algorithms.pdf
new file mode 100644 (file)
index 0000000..77e2708
Binary files /dev/null and b/references/priest1991algorithms.pdf differ

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