% -----------------------------------------------------------------------------
%
% CS 888, Winter 2010
% Template for CS 888 Paper reports
%
% Created by Craig S. Kaplan
% 
% Some tips:
%
%  * Don't use latex/dvips/pstopdf.  That's old news.  Just use
%    the newer pdflatex to go from .tex directly to .pdf.
%
%  * In order to format your paper's bibliographic record, you should
%    grab a copy of papers_full.bib from the CS 888 web page and put
%    it in the same directory as this file.  Then you'll need to
%    run:
%       pdflatex cs888report.tex
%       bibtex cs888report
%       pdflatex cs888report.tex
%
%  * This example doesn't include images.  See the \includegraphics
%    command for instructions on including images.  In pdflatex, you
%    can easily include PDF, JPG or PNG images.
% 
% -----------------------------------------------------------------------------

\documentclass[10pt,letterpaper]{article}

\setlength{\oddsidemargin}{0in}
\setlength{\topmargin}{0.0in}
\setlength{\textheight}{9in}
\setlength{\textwidth}{6.5in}
\setlength{\parindent}{3.0em}
\setlength{\headheight}{0in}
\setlength{\headsep}{0in}
\setlength{\footskip}{0in}

\setlength{\parskip}{1ex}
\setlength{\abovecaptionskip}{1ex}

\usepackage{graphicx}
\usepackage{times}
\usepackage{url}
\usepackage{bibentry}

\bibliographystyle{plain}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% CHANGE THESE
%%
\newcommand{\Name}{YOUR NAME HERE}
\newcommand{\Title}{YOUR PAPER TITLE HERE}
%% Replace "SCG+2005" with the appropriate tag from papers_full.bib.
\newcommand{\Bib}{SCG+2005}

\begin{document}

\thispagestyle{empty}
\nobibliography{papers_full}

\noindent
\parbox{4.5in}{\Large\textbf{\Title}}
\hfill
\parbox{1.5in}{\begin{flushright}\textbf{\Name}\end{flushright}}

\begin{center}\line(1,0){400} \\
\parbox{400pt}{\bibentry{\Bib}} \\
\line(1,0){400}\end{center}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% YOUR TEXT STARTS HERE 
%%
%% You should aim to provide about one page of text.  2/3 of the page
%% should be devoted to a description of the paper; 1/3 should be for
%% a critique of the paper (strengths and weaknesses, ideas for future
%% work, etc).

Sen et al.'s Dual Photography consists mostly of ways to speed up
the capture of light fields. The authors accomplish this in two
ways: taking advantage of Helmholtz reciprocity, they are able to
use a physical setup that inherently allows for faster capture;
taking advantage of localized light source influence, they are able
to use an algorithm that shows logarithmic speed-up.  Given a projector
with resolution $p\times q$ and a camera with resolution $m\times
n$, we can describe their states with vectors $\mathbf{p'} =
[p_1'p_2'\ldots p_{pq}']^T$ and $\mathbf{c'}=[c_1'c_2'\ldots c_{mn}']^T$
respectively. Each element of $\mathbf{p'}$ is the
output of a particular projector pixel, and each element of
$\mathbf{c'}$ is the input at a particular camera pixel. The transport
matrix, $\mathbf{T} =[\mathbf{c'^1}\mathbf{c'^2}\ldots \mathbf{c'^{pq}}]$,
of size $mn\times pq$, relates the two states: $\mathbf{c'} =
\mathbf{Tp'}$.  Each column of $\mathbf{T}$ is the camera image
resulting from the corresponding projector pixel lighting up with
value 1. The goal is to populate the matrix $\mathbf{T}$ so that we can
relight a scene using any $\mathbf{p'}$ we desire, without having to measure
the physical scene for each $\mathbf{p'}$.

Helmholtz reciprocity says that the reflectance of light from $\omega_i$
to $\omega_o$ is equivalent to the reflectance from $\omega_o$ to
$\omega_i$.  Let $\mathbf{c''}$ be
the state of a virtual projector with the camera's position,
orientation, and resolution, and $\mathbf{p''}$ be the state of a virtual
camera with the projector's position, orientation, and resolution,
resulting from illumination from the virtual projector. Helmholtz
reciprocity implies that $\mathbf{p''} = \mathbf{T}^\mathrm{T}\mathbf{c''}$.
The capture of a 6D light
field requires multiple projectors. Projectors can not operate
simultaneously (two projector pixels conflict with each other if
they activate the same camera pixel), but cameras can. This means
that using a single projector (or virtual camera) and multiple
cameras (or virtual projectors) gives almost the same results, but
in a much shorter time. Helmholtz reciprocity thus speeds up the
capture process in any setup requiring multiple projectors.

Now $\mathbf{T}$ is very large. If we capture each column of
$\mathbf{T}$ separately (meaning sequentially illuminating each
projector pixel), it will take a very long time. Instead, we can
illuminate multiple projector pixels at the same time, but determine
how to separate contributions from different projector pixels. This
is easy if, for any given projection, each illuminated projector
pixel activates a non-intersecting set of camera pixels. Sen et al.\
introduce an adaptive subdivision algorithm that takes advantage
of the sparseness of $\mathbf{T}$ by grouping projector pixels into
blocks.  They try to capture as many projector pixels as possible
at a time.  At each subdivision level, they divide each block into
four sub-blocks.  The previous set of block conflicts determines
an illumination order for the new sub-blocks.  This series of
projections then determines the conflicts among the new sub-blocks.
Subdivision stops when a sub-block no longer activates any pixels,
or can not be divided anymore. The illumination history of each
projector pixel determines which camera pixels were activated by
which projector pixels, allowing us to build $\mathbf{T}$. This
algorithm speeds up the capture process in any setup, assuming the
scene is well-behaved (the worst case would be that every projector
pixel needs to be illuminated separately).

The two main ideas in this paper are each interesting, but they are
completely independent of each other. Helmholtz reciprocity and
input/output device duality are not new, but the the authors apply
them to computational photography in a novel way. Dual photography
and its applications are new and interesting\footnote{I was especially
impressed by the detection of doubly-bounced (diffuse) light to
reveal a surface that was facing away from the physical camera.}
enough that they could be presented in a paper by themselves. The
authors appear to have relegated the core of dual photography to
an appendix.  They also spent very little space discussing the
capture of 6D and 8D light fields, which seem to be the most important
application of dual photography.

The paper also contains a set of other algorithms and techniques
devoted to efficiently and effectively capturing light fields. These
in no way contribute to dual photography, and seem extraneous. The
adaptive subdivision algorithm is simple and neat, but not explored
very thoroughly. It would have been interesting to see more performance
evaluations for this algorithm (the performance graph was not very
convincing), and the hierarchical signal conservation algorithm.

\end{document}
