Commit 7377bca4 authored by Bryce Hepner's avatar Bryce Hepner

Initial commit

parents
Pipeline #2549 canceled with stages
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ImageCompressionPaper</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.texlipse.builder.TexlipseBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.texlipse.builder.TexlipseNature</nature>
</natures>
</projectDescription>
\relax
\providecommand\hyper@newdestlabel[2]{}
\@nameuse{bbl@beforestart}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\citation{PNGoverview}
\citation{PNGdetails}
\citation{PNGdetails}
\citation{LZW}
\citation{PNGdetails}
\babel@aux{english}{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces The other 4 pixels are used to find the value of the 5th.\relax }}{1}{figure.caption.1}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{fig:pixels}{{1}{1}{The other 4 pixels are used to find the value of the 5th.\relax }{figure.caption.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Related Work}{1}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}PNG}{1}{subsection.2.1}\protected@file@percent }
\@writefile{brf}{\backcite{PNGoverview}{{1}{2.1}{subsection.2.1}}}
\@writefile{brf}{\backcite{PNGdetails}{{1}{2.1}{subsection.2.1}}}
\@writefile{brf}{\backcite{PNGdetails}{{1}{2.1}{subsection.2.1}}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}LZW}{1}{subsection.2.2}\protected@file@percent }
\@writefile{brf}{\backcite{LZW}{{1}{2.2}{subsection.2.2}}}
\citation{ABRARDO1997321}
\citation{AIAZZI20021619}
\@writefile{brf}{\backcite{PNGdetails}{{2}{2.2}{subsection.2.2}}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}A Method to Save Some of the Interpolated Errors}{2}{subsection.2.3}\protected@file@percent }
\@writefile{brf}{\backcite{ABRARDO1997321}{{2}{2.3}{subsection.2.3}}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}A Method of Interpolation by Clustering}{2}{subsection.2.4}\protected@file@percent }
\@writefile{brf}{\backcite{AIAZZI20021619}{{2}{2.4}{subsection.2.4}}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Background}{2}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4}The Approach}{2}{section.4}\protected@file@percent }
\citation{Numpy}
\citation{Huffman}
\citation{Numpy}
\@writefile{brf}{\backcite{Numpy}{{3}{4}{section.4}}}
\@writefile{brf}{\backcite{Huffman}{{3}{4}{section.4}}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Encoding the Pixel Values\relax }}{3}{figure.caption.2}\protected@file@percent }
\newlabel{fig:sub1}{{2}{3}{Encoding the Pixel Values\relax }{figure.caption.2}{}}
\@writefile{brf}{\backcite{Numpy}{{3}{4}{figure.caption.3}}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Encoding the Error Values\relax }}{3}{figure.caption.3}\protected@file@percent }
\newlabel{fig:sub2}{{3}{3}{Encoding the Error Values\relax }{figure.caption.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Results}{3}{section.5}\protected@file@percent }
\citation{Numpy}
\citation{LAPACKAlgorithms}
\citation{DBLP:journals/corr/abs-2010-05846}
\citation{LeastSquaredProblem}
\bibstyle{alpha}
\bibdata{main}
\bibcite{ABRARDO1997321}{AAB97}
\bibcite{AIAZZI20021619}{AAB02}
\bibcite{DBLP:journals/corr/abs-2010-05846}{AW20}
\bibcite{LeastSquaredProblem}{AWxx}
\bibcite{LAPACKAlgorithms}{Bla99}
\bibcite{PNGdetails}{Deu96}
\bibcite{Numpy}{HMvdW{$^{+}$}20}
\bibcite{Huffman}{Huf52}
\bibcite{PNGoverview}{{Mar}03}
\@writefile{toc}{\contentsline {section}{\numberline {6}Discussion}{4}{section.6}\protected@file@percent }
\@writefile{brf}{\backcite{Numpy}{{4}{6}{section.6}}}
\@writefile{brf}{\backcite{LAPACKAlgorithms}{{4}{6}{section.6}}}
\@writefile{brf}{\backcite{DBLP:journals/corr/abs-2010-05846}{{4}{6}{section.6}}}
\@writefile{brf}{\backcite{LeastSquaredProblem}{{4}{6}{section.6}}}
\bibcite{LZW}{Wel84}
\newcommand{\etalchar}[1]{$^{#1}$}
\begin{thebibliography}{HMvdW{\etalchar{+}}20}
\bibitem[AAB97]{ABRARDO1997321}
Andrea Abrardo, Luciano Alparone, and Franco Bartolini.
\newblock Encoding-interleaved hierarchical interpolation for lossless image
compression.
\newblock {\em Signal Processing}, 56(3):321--328, 1997.
\bibitem[AAB02]{AIAZZI20021619}
Bruno Aiazzi, Luciano Alparone, and Stefano Baronti.
\newblock Near-lossless image compression by relaxation-labelled prediction.
\newblock {\em Signal Processing}, 82(11):1619--1631, 2002.
\bibitem[AW20]{DBLP:journals/corr/abs-2010-05846}
Josh Alman and Virginia~Vassilevska Williams.
\newblock A refined laser method and faster matrix multiplication.
\newblock {\em CoRR}, abs/2010.05846, 2020.
\bibitem[AWxx]{LeastSquaredProblem}
Josh Alman and Virginia~Vassilevska Williams.
\newblock Algorithm 853: an efficient algorithm for solving rank-deficient
least squares problems.
\newblock {\em ACM Transactions on Mathematical Software}, Vol. x, No. x,,
20xx.
\bibitem[Bla99]{LAPACKAlgorithms}
Susan Blackford.
\newblock {LAPACK Benchmark}.
\newblock \url{http://www.netlib.org/lapack/lug/node71.html}, October 1999.
\newblock Accessed: 2022-6-23.
\bibitem[Deu96]{PNGdetails}
L.~Peter Deutsch.
\newblock {DEFLATE Compressed Data Format Specification version 1.3}.
\newblock \url{https://www.w3.org/Graphics/PNG/RFC-1951}, 1996.
\newblock Accessed: 6/14/2022.
\bibitem[HMvdW{\etalchar{+}}20]{Numpy}
Charles~R. Harris, K.~Jarrod Millman, St{\'{e}}fan~J. van~der Walt, Ralf
Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor,
Sebastian Berg, Nathaniel~J. Smith, Robert Kern, Matti Picus, Stephan Hoyer,
Marten~H. van Kerkwijk, Matthew Brett, Allan Haldane, Jaime~Fern{\'{a}}ndez
del R{\'{i}}o, Mark Wiebe, Pearu Peterson, Pierre G{\'{e}}rard-Marchant,
Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph
Gohlke, and Travis~E. Oliphant.
\newblock Array programming with {NumPy}.
\newblock {\em Nature}, 585(7825):357--362, September 2020.
\bibitem[Huf52]{Huffman}
D.~A. Huffman.
\newblock A method for the construction of minimum redundancy codes.
\newblock {\em Proceedings of the Institute of Radio Engineers},
40(9):1098--1101, September 1952.
\bibitem[{Mar}03]{PNGoverview}
{Mark Adler, Thomas Boutell, John Bowler, Christian Brunschen, Adam M.
Costello, Lee Daniel Crocker, Andreas Dilger, Oliver Fromme, Jean-loup
Gailly, Chris Herborth, Alex Jakulin, Neal Kettler, Tom Lane, Alexander
Lehmann, Chris Lilley, Dave Martindale, Owen Mortensen, Keith S. Pickens,
Robert P. Poole, Glenn Randers-Pehrson, Greg Roelofs, Willem van Schaik, Guy
Schalnat, Paul Schmidt, Michael Stokes, Tim Wegner, Jeremy Wohl}.
\newblock {Portable Network Graphics (PNG) Specification (Second Edition)}.
\newblock \url{https://www.w3.org/TR/PNG/}, November 2003.
\newblock Accessed: 6/23/2022.
\bibitem[Wel84]{LZW}
Welch.
\newblock A technique for high-performance data compression.
\newblock {\em Computer}, 17(6):8--19, 1984.
\end{thebibliography}
@Article{ Numpy,
title = {Array programming with {NumPy}},
author = {Charles R. Harris and K. Jarrod Millman and St{\'{e}}fan J.
van der Walt and Ralf Gommers and Pauli Virtanen and David
Cournapeau and Eric Wieser and Julian Taylor and Sebastian
Berg and Nathaniel J. Smith and Robert Kern and Matti Picus
and Stephan Hoyer and Marten H. van Kerkwijk and Matthew
Brett and Allan Haldane and Jaime Fern{\'{a}}ndez del
R{\'{i}}o and Mark Wiebe and Pearu Peterson and Pierre
G{\'{e}}rard-Marchant and Kevin Sheppard and Tyler Reddy and
Warren Weckesser and Hameer Abbasi and Christoph Gohlke and
Travis E. Oliphant},
year = {2020},
month = sep,
journal = {Nature},
volume = {585},
number = {7825},
pages = {357--362},
doi = {10.1038/s41586-020-2649-2},
publisher = {Springer Science and Business Media {LLC}},
url = {https://doi.org/10.1038/s41586-020-2649-2}
}
@misc{PNGoverview,
title = "{Portable Network Graphics (PNG) Specification (Second Edition)}",
howpublished = {\url{https://www.w3.org/TR/PNG/}},
year = 2003,
author = "{Mark Adler,
Thomas Boutell,
John Bowler,
Christian Brunschen,
Adam M. Costello,
Lee Daniel Crocker,
Andreas Dilger,
Oliver Fromme,
Jean-loup Gailly,
Chris Herborth,
Alex Jakulin,
Neal Kettler,
Tom Lane,
Alexander Lehmann,
Chris Lilley,
Dave Martindale,
Owen Mortensen,
Keith S. Pickens,
Robert P. Poole,
Glenn Randers-Pehrson,
Greg Roelofs,
Willem van Schaik,
Guy Schalnat,
Paul Schmidt,
Michael Stokes,
Tim Wegner,
Jeremy Wohl}",
month = nov,
note = {Accessed: 6/23/2022}
}
@misc{PNGdetails,
title = "{DEFLATE Compressed Data Format Specification version 1.3}",
howpublished = {\url{https://www.w3.org/Graphics/PNG/RFC-1951}},
year = 1996,
author = "L. Peter Deutsch",
note = {Accessed: 6/14/2022}
}
@Article{ Huffman,
title = {A Method for the Construction of Minimum Redundancy Codes},
author = {D. A. Huffman},
year = {1952},
month = sep,
journal = {Proceedings of the Institute of Radio Engineers},
volume = {40},
number = {9},
pages = {1098-1101},
}
@misc{LAPACKAlgorithms,
title = "{LAPACK Benchmark}",
author = "Susan Blackford",
howpublished = "\url{http://www.netlib.org/lapack/lug/node71.html}",
year = 1999,
month = oct,
note = "Accessed: 2022-6-23"
}
@article{DBLP:journals/corr/abs-2010-05846,
author = {Josh Alman and
Virginia Vassilevska Williams},
title = {A Refined Laser Method and Faster Matrix Multiplication},
journal = {CoRR},
volume = {abs/2010.05846},
year = {2020},
url = {https://arxiv.org/abs/2010.05846},
eprinttype = {arXiv},
eprint = {2010.05846},
timestamp = {Tue, 20 Oct 2020 15:08:10 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2010-05846.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{LeastSquaredProblem,
author = {Josh Alman and
Virginia Vassilevska Williams},
title = {Algorithm 853: an Efficient Algorithm for Solving Rank-Deficient Least Squares Problems},
journal = {ACM Transactions on Mathematical Software},
volume = {Vol. x, No. x,},
year = {20xx},
url = {http://www.math.sjsu.edu/~foster/foster_kommu.pdf},
}
@ARTICLE{LZW,
author={Welch},
journal={Computer},
title={A Technique for High-Performance Data Compression},
year={1984},
volume={17},
number={6},
pages={8-19},
doi={10.1109/MC.1984.1659158}}
@article{ABRARDO1997321,
title = {Encoding-interleaved hierarchical interpolation for lossless image compression},
journal = {Signal Processing},
volume = {56},
number = {3},
pages = {321-328},
year = {1997},
issn = {0165-1684},
doi = {https://doi.org/10.1016/S0165-1684(97)00034-0},
url = {https://www.sciencedirect.com/science/article/pii/S0165168497000340},
author = {Andrea Abrardo and Luciano Alparone and Franco Bartolini},
keywords = {Image compression, Lossless compression, Progressive transmission, Hierarchical interpolation, Cyclic differences encoding},
abstract = {In this correspondence an improved version of the Hierarchical INTerpolation (HINT) algorithm is proposed for multi-resolution reversible compression of still images. The efficiency of the basic scheme is increased by splitting the non-separable interpolation process into two cascaded directional steps interleaved with encoding. Interpolation errors from the former are encoded to yield error-free pixel values, from which the left-over pixels are interpolated in the latter step. The outcome benefit is twofold: interpolation is executed starting from all error-free pixel values, and different directional correlations may be exploited. In addition, the differences between true and interpolated pixel values are encoded cyclically with respect to the range of pixel values within square blocks, thus saving extra bits compared to plain entropy coding. Results and comparisons witness the improved coding performance.}
}
@article{AIAZZI20021619,
title = {Near-lossless image compression by relaxation-labelled prediction},
journal = {Signal Processing},
volume = {82},
number = {11},
pages = {1619-1631},
year = {2002},
issn = {0165-1684},
doi = {https://doi.org/10.1016/S0165-1684(02)00305-5},
url = {https://www.sciencedirect.com/science/article/pii/S0165168402003055},
author = {Bruno Aiazzi and Luciano Alparone and Stefano Baronti},
keywords = {Differential pulse code modulation (DPCM), Data compression, Near-lossless image compression, Relaxation labelling, Statistical context modelling},
abstract = {This paper describes a differential pulse code modulation scheme suitable for lossless and near-lossless compression of monochrome still images. The proposed method is based on a classified linear-regression prediction followed by context-based arithmetic coding of the outcome residuals. Images are partitioned into blocks, typically 8×8, and a minimum mean square error linear predictor is calculated for each block. Given a preset number of classes, a clustering algorithm produces an initial guess of as many predictors to be fed to an iterative labelling procedure that classifies pixel blocks simultaneously refining the associated predictors. The final set of predictors is encoded, together with the labels identifying the class, and hence the predictor, to which each block belongs. A thorough performance comparison, both lossless and near-lossless, with advanced methods from the literature and both current and upcoming standards highlights the advantages of the proposed approach. The method provides impressive performances, especially on medical images. Coding time are affordable thanks to fast convergence of training and easy balance between compression and computation by varying the system's parameters. Decoding is always real-time thanks to the absence of training.}
}
This is BibTeX, Version 0.99d (TeX Live 2019/Debian)
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
The top-level auxiliary file: main.aux
The style file: alpha.bst
Database file #1: main.bib
You've used 10 entries,
2543 wiz_defined-function locations,
633 strings with 6854 characters,
and the built_in function-call counts, 4277 in all, are:
= -- 401
> -- 268
< -- 5
+ -- 98
- -- 95
* -- 344
:= -- 742
add.period$ -- 33
call.type$ -- 10
change.case$ -- 81
chr.to.int$ -- 10
cite$ -- 10
duplicate$ -- 131
empty$ -- 267
format.name$ -- 109
if$ -- 834
int.to.chr$ -- 1
int.to.str$ -- 0
missing$ -- 7
newline$ -- 57
num.names$ -- 30
pop$ -- 74
preamble$ -- 1
purify$ -- 91
quote$ -- 0
skip$ -- 113
stack$ -- 0
substring$ -- 185
swap$ -- 10
text.length$ -- 5
text.prefix$ -- 5
top$ -- 0
type$ -- 80
warning$ -- 0
while$ -- 31
width$ -- 13
write$ -- 136
\backcite {PNGoverview}{{1}{2.1}{subsection.2.1}}
\backcite {PNGdetails}{{1}{2.1}{subsection.2.1}}
\backcite {PNGdetails}{{1}{2.1}{subsection.2.1}}
\backcite {LZW}{{1}{2.2}{subsection.2.2}}
\backcite {PNGdetails}{{2}{2.2}{subsection.2.2}}
\backcite {ABRARDO1997321}{{2}{2.3}{subsection.2.3}}
\backcite {AIAZZI20021619}{{2}{2.4}{subsection.2.4}}
\backcite {Numpy}{{3}{4}{section.4}}
\backcite {Huffman}{{3}{4}{section.4}}
\backcite {Numpy}{{3}{4}{figure.caption.3}}
\backcite {Numpy}{{4}{6}{section.6}}
\backcite {LAPACKAlgorithms}{{4}{6}{section.6}}
\backcite {DBLP:journals/corr/abs-2010-05846}{{4}{6}{section.6}}
\backcite {LeastSquaredProblem}{{4}{6}{section.6}}
\RequireVersions{
*{application}{pdfeTeX} {0000/00/00 v0.14020}
*{format} {LaTeX2e} {2020-02-02 v2.e}
*{package}{snapshot} {2012/08/06 v2.13}
*{class} {article} {2019/12/20 v1.4l}
*{file} {size10.clo} {2019/12/20 v1.4l}
*{package}{caption} {2020/01/03 v3.4h}
*{package}{caption3} {2020/01/03 v1.8h}
*{package}{keyval} {2014/10/28 v1.15}
*{package}{subcaption} {2020/01/22 v1.3d}
*{package}{babel} {2020/02/14 v3.40}
*{file} {english.ldf} {2017/06/06 v3.3r}
*{package}{amsmath} {2020/01/20 v2.17e}
*{package}{amstext} {2000/06/29 v2.01}
*{package}{amsgen} {1999/11/30 v2.0}
*{package}{amsbsy} {1999/11/29 v1.2d}
*{package}{amsopn} {2016/03/08 v2.02}
*{package}{graphicx} {2019/11/30 v1.2a}
*{package}{graphics} {2019/11/30 v1.4a}
*{package}{trig} {2016/01/03 v1.10}
*{file} {graphics.cfg}{2016/06/04 v1.11}
*{file} {pdftex.def} {2018/01/08 v1.0l}
*{package}{xspace} {2014/10/28 v1.13}
*{package}{multirow} {2019/05/31 v2.5}
*{package}{titlesec} {2019/10/16 v2.13}
*{package}{etoolbox} {2019/09/21 v2.5h}
*{package}{gensymb} {2003/07/02 v1.0}
*{package}{textcomp} {2020/02/02 v2.0n}
*{package}{enumitem} {2019/06/20 v3.9}
*{package}{hyperref} {2020/01/14 v7.00d}
*{package}{ltxcmds} {2019/12/15 v1.24}
*{package}{iftex} {2019/11/07 v1.0c}
*{package}{pdftexcmds} {2019/11/24 v0.31}
*{package}{infwarerr} {2019/12/03 v1.5}
*{package}{kvsetkeys} {2019/12/15 v1.18}
*{package}{kvdefinekeys}{2019-12-19 v1.6}
*{package}{pdfescape} {2019/12/09 v1.15}
*{package}{hycolor} {2020-01-27 v1.10}
*{package}{letltxmacro} {2019/12/03 v1.6}
*{package}{auxhook} {2019-12-17 v1.6}
*{package}{kvoptions} {2019/11/29 v3.13}
*{file} {pd1enc.def} {2020/01/14 v7.00d}
*{package}{intcalc} {2019/12/15 v1.3}
*{package}{etexcmds} {2019/12/15 v1.7}
*{package}{backref} {2020/01/14 v1.40}
*{package}{rerunfilecheck}{2019/12/05 v1.9}
*{package}{atveryend} {2019-12-11 v1.11}
*{package}{uniquecounter}{2019/12/15 v1.4}
*{package}{bigintcalc} {2019/12/15 v1.5}
*{package}{url} {2013/09/16 v3.4}
*{package}{bitset} {2019/12/09 v1.3}
*{package}{atbegshi} {2019/12/05 v1.19}
*{file} {hpdftex.def} {2020/01/14 v7.00d}
*{file} {l3backend-pdfmode.def}{2020-02-03 v3}
*{-------}{Document-specific files:}{----}
*{file} {supp-pdf.mkii}{0000/00/00 v0.0}
*{package}{epstopdf-base}{2020-01-24 v2.11}
*{file} {epstopdf-sys.cfg}{2010/07/13 v1.3}
*{package}{color} {2019/11/23 v1.2a}
*{file} {color.cfg} {2016/01/02 v1.6}
*{package}{nameref} {2019/09/16 v2.46}
*{package}{refcount} {2019/12/15 v3.6}
*{package}{gettitlestring}{2019/12/15 v1.6}
*{file} {main.out} {0000/00/00 v0.0}
*{file} {main.out} {0000/00/00 v0.0}
*{file} {PixelArrangement.png}{Graphic v0.0}
*{file} {Uniform_No_Title.png}{Graphic v0.0}
*{file} {Normal_No_Title.png}{Graphic v0.0}
*{file} {main.bbl} {0000/00/00 v0.0}
}
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.7.20) 23 JUN 2022 14:18
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**main.tex
(./main.tex
LaTeX2e <2020-02-02> patch level 2
L3 programming layer <2020-02-14>
(/usr/share/texlive/texmf-dist/tex/latex/snapshot/snapshot.sty
Package: snapshot 2012/08/06 v2.13
)
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
\c@part=\count167
\c@section=\count168
\c@subsection=\count169
\c@subsubsection=\count170
\c@paragraph=\count171
\c@subparagraph=\count172
\c@figure=\count173
\c@table=\count174
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen134
)
(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty
Package: caption 2020/01/03 v3.4h Customizing captions (AR)
(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty
Package: caption3 2020/01/03 v1.8h caption3 kernel (AR)
Package caption3 Info: TeX engine: e-TeX on input line 61.
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks14
)
\captionmargin=\dimen135
\captionmargin@=\dimen136
\captionwidth=\dimen137
\caption@tempdima=\dimen138
\caption@indent=\dimen139
\caption@parindent=\dimen140
\caption@hangindent=\dimen141
Package caption Info: Standard document class detected.
)
\c@caption@flags=\count175
\c@continuedfloat=\count176
)
(/usr/share/texlive/texmf-dist/tex/latex/caption/subcaption.sty
Package: subcaption 2020/01/22 v1.3d Sub-captions (AR)
\c@subfigure=\count177
\c@subtable=\count178
)
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2020/02/14 3.40 The Babel package
(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def
File: switch.def 2020/02/14 3.40 Babel switching mechanism
)
(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf
Language: english 2017/06/06 v3.3r English support from the babel system
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def
File: babel.def 2020/02/14 3.40 Babel common definitions
\babel@savecnt=\count179
\U@D=\dimen142
(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def)
\bbl@readstream=\read2
\bbl@dirlevel=\count180
)
Package babel Info: \l@canadian = using hyphenrules for english
(babel) (\language0) on input line 102.
Package babel Info: \l@australian = using hyphenrules for ukenglish
(babel) (\language11) on input line 105.
Package babel Info: \l@newzealand = using hyphenrules for ukenglish
(babel) (\language11) on input line 108.
))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2020/01/20 v2.17e AMS math features
\@mathmargin=\skip49
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2000/06/29 v2.01 AMS text
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks15
\ex@=\dimen143
))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen144
)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2016/03/08 v2.02 operator names
)
\inf@bad=\count181
LaTeX Info: Redefining \frac on input line 227.
\uproot@=\count182
\leftroot@=\count183
LaTeX Info: Redefining \overline on input line 389.
\classnum@=\count184
\DOTSCASE@=\count185
LaTeX Info: Redefining \ldots on input line 486.
LaTeX Info: Redefining \dots on input line 489.
LaTeX Info: Redefining \cdots on input line 610.
\Mathstrutbox@=\box45
\strutbox@=\box46
\big@size=\dimen145
LaTeX Font Info: Redeclaring font encoding OML on input line 733.
LaTeX Font Info: Redeclaring font encoding OMS on input line 734.
\macc@depth=\count186
\c@MaxMatrixCols=\count187
\dotsspace@=\muskip16
\c@parentequation=\count188
\dspbrk@lvl=\count189
\tag@help=\toks16
\row@=\count190
\column@=\count191
\maxfields@=\count192
\andhelp@=\toks17
\eqnshift@=\dimen146
\alignsep@=\dimen147
\tagshift@=\dimen148
\tagwidth@=\dimen149
\totwidth@=\dimen150
\lineht@=\dimen151
\@envbody=\toks18
\multlinegap=\skip50
\multlinetaggap=\skip51
\mathdisplay@stack=\toks19
LaTeX Info: Redefining \[ on input line 2859.
LaTeX Info: Redefining \] on input line 2860.
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 105.
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
))
\Gin@req@height=\dimen152
\Gin@req@width=\dimen153
)
(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
)
(/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty
Package: multirow 2019/05/31 v2.5 Span multiple rows of a table
\multirow@colwidth=\skip52
\multirow@cntb=\count193
\multirow@dima=\skip53
\bigstrutjot=\dimen154
)
(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty
Package: titlesec 2019/10/16 v2.13 Sectioning titles
\ttl@box=\box47
\beforetitleunit=\skip54
\aftertitleunit=\skip55
\ttl@plus=\dimen155
\ttl@minus=\dimen156
\ttl@toksa=\toks20
\titlewidth=\dimen157
\titlewidthlast=\dimen158
\titlewidthfirst=\dimen159
)
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count194
)
(/usr/share/texlive/texmf-dist/tex/latex/was/gensymb.sty
Package: gensymb 2003/07/02 v1.0 (WaS)
)
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
)
(/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty
Package: enumitem 2019/06/20 v3.9 Customized lists
\labelindent=\skip56
\enit@outerparindent=\dimen160
\enit@toks=\toks21
\enit@inbox=\box48
\enit@count@id=\count195
\enitdp@description=\count196
)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
Package: hyperref 2020/01/14 v7.00d Hypertext links for LaTeX
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2019/11/07 v1.0c TeX engine tests
)
(/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty
Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO
)
(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
)
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
)
(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
)
(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
Package: kvoptions 2019/11/29 v3.13 Key value format for package options (HO)
)
\@linkdim=\dimen161
\Hy@linkcounter=\count197
\Hy@pagecounter=\count198
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
File: pd1enc.def 2020/01/14 v7.00d Hyperref: PDFDocEncoding definition (HO)
Now handling font encoding PD1 ...
... no UTF-8 mapping file for font encoding PD1
)
(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
)
\Hy@SavedSpaceFactor=\count199
\pdfmajorversion=\count266
Package hyperref Info: Option `breaklinks' set `true' on input line 4421.
Package hyperref Warning: Option `letterpaper' is no longer used.
Package hyperref Info: Option `colorlinks' set `true' on input line 4421.
Package hyperref Info: Option `bookmarks' set `true' on input line 4421.
Package hyperref Info: Hyper figures OFF on input line 4547.
Package hyperref Info: Link nesting OFF on input line 4552.
Package hyperref Info: Hyper index ON on input line 4555.
Package hyperref Info: Plain pages OFF on input line 4562.
Package hyperref Info: Backreferencing ON on input line 4565.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4800.
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/backref.sty
Package: backref 2020/01/14 v1.40 Bibliographical back referencing
(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO)
(/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty
Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
)
))
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
86.
))
\c@Hy@tempcnt=\count267
(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
LaTeX Info: Redefining \url on input line 5159.
\XeTeXLinkMargin=\dimen162
(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
)
\Fld@menulength=\count268
\Field@Width=\dimen163
\Fld@charsize=\dimen164
Package hyperref Info: Hyper figures OFF on input line 6430.
Package hyperref Info: Link nesting OFF on input line 6435.
Package hyperref Info: Hyper index ON on input line 6438.
Package hyperref Info: backreferencing ON on input line 6443.
Package hyperref Info: Link coloring ON on input line 6448.
Package hyperref Info: Link coloring with OCG OFF on input line 6455.
Package hyperref Info: PDF/A mode OFF on input line 6460.
LaTeX Info: Redefining \ref on input line 6500.
LaTeX Info: Redefining \pageref on input line 6504.
(/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty
Package: atbegshi 2019/12/05 v1.19 At begin shipout hook (HO)
)
\Hy@abspage=\count269
\c@Item=\count270
\c@Hfootnote=\count271
)
Package hyperref Info: Driver (autodetected): hpdftex.
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
File: hpdftex.def 2020/01/14 v7.00d Hyperref driver for pdfTeX
\Fld@listcount=\count272
\c@bookmark@seq@number=\count273
\Hy@SectionHShift=\skip57
)
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
File: l3backend-pdfmode.def 2020-02-03 L3 backend support: PDF mode
\l__kernel_color_stack_int=\count274
\l__pdf_internal_box=\box49
)
(./main.aux)
\openout1 = `main.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 91.
LaTeX Font Info: ... okay on input line 91.
Package caption Info: Begin \AtBeginDocument code.
Package caption Info: hyperref package is loaded.
Package caption Info: End \AtBeginDocument code.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count275
\scratchdimen=\dimen165
\scratchbox=\box50
\nofMPsegments=\count276
\nofMParguments=\count277
\everyMPshowfont=\toks22
\MPscratchCnt=\count278
\MPscratchDim=\dimen166
\MPnumerator=\count279
\makeMPintoPDFobject=\count280
\everyMPtoPDFconversion=\toks23
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
\symgns@font=\mathgroup4
LaTeX Font Info: Overwriting symbol font `gns@font' in version `bold'
(Font) TS1/cmr/m/n --> TS1/cmr/b/n on input line 91.
Package gensymb Info: Math companion symbols declared on input line 91.
LaTeX Info: Redefining \degree on input line 91.
LaTeX Info: Redefining \celsius on input line 91.
Package gensymb Info: Using text companion symbols for \degree, \celsius and \p
erthousand on input line 91.
LaTeX Info: Redefining \ohm on input line 91.
Package gensymb Info: Using \textohm for \ohm on input line 91.
Package gensymb Info: Using \textmu for \micro on input line 91.
\AtBeginShipoutBox=\box51
(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
Package: color 2019/11/23 v1.2a Standard LaTeX Color (DPC)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: pdftex.def on input line 147.
)
Package hyperref Info: Link coloring ON on input line 91.
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section
(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
)
\c@section@level=\count281
)
LaTeX Info: Redefining \ref on input line 91.
LaTeX Info: Redefining \pageref on input line 91.
LaTeX Info: Redefining \nameref on input line 91.
(./main.out) (./main.out)
\@outlinefile=\write3
\openout3 = `main.out'.
LaTeX Font Info: Trying to load font information for OMS+cmtt on input line
93.
LaTeX Font Info: No file OMScmtt.fd. on input line 93.
LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined
(Font) using `OMS/cmsy/m/n' instead
(Font) for symbol `textbraceleft' on input line 93.
<PixelArrangement.png, id=44, 130.55226pt x 86.724pt>
File: PixelArrangement.png Graphic file (type png)
<use PixelArrangement.png>
Package pdftex.def Info: PixelArrangement.png used on input line 113.
(pdftex.def) Requested size: 99.36972pt x 66.01147pt.
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
<./PixelArrangement.png (PNG copy)>] [2]
<Uniform_No_Title.png, id=82, 462.528pt x 346.896pt>
File: Uniform_No_Title.png Graphic file (type png)
<use Uniform_No_Title.png>
Package pdftex.def Info: Uniform_No_Title.png used on input line 234.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt.
<Normal_No_Title.png, id=84, 462.528pt x 346.896pt>
File: Normal_No_Title.png Graphic file (type png)
<use Normal_No_Title.png>
Package pdftex.def Info: Normal_No_Title.png used on input line 240.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt.
LaTeX Warning: `h' float specifier changed to `ht'.
Underfull \hbox (badness 4713) in paragraph at lines 266--278
[]\OT1/cmr/m/n/10 We are us-ing it on a set of at least 16
[]
Underfull \hbox (badness 5161) in paragraph at lines 266--278
\OT1/cmr/m/n/10 im-ages, so this does not af-fect us as much.
[]
Underfull \hbox (badness 4353) in paragraph at lines 266--278
\OT1/cmr/m/n/10 When tested on a ran-dom set of 16 im-ages,
[]
Underfull \hbox (badness 3428) in paragraph at lines 266--278
\OT1/cmr/m/n/10 the ra-tio only changed from $0\OML/cmm/m/it/10 :\OT1/cmr/m/n/1
0 3973$ to $0\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 4193$.
[]
[3 <./Uniform_No_Title.png> <./Normal_No_Title.png>] (./main.bbl (./main.brf)
\tf@brf=\write4
\openout4 = `main.brf'.
Underfull \hbox (badness 1668) in paragraph at lines 9--9
[]\OT1/cmr/m/n/10 Andrea Abrardo, Lu-ciano Al-parone,
[]
Underfull \hbox (badness 4467) in paragraph at lines 9--9
\OT1/cmr/m/n/10 and Franco Bar-tolini. Encoding-
[]
Underfull \hbox (badness 4403) in paragraph at lines 9--9
\OT1/cmr/m/n/10 interleaved hi-er-ar-chi-cal in-ter-po-la-tion
[]
Underfull \hbox (badness 4765) in paragraph at lines 26--26
\OT1/cmr/m/n/10 al-go-rithm for solv-ing rank-deficient
[]
Underfull \hbox (badness 1152) in paragraph at lines 32--32
[]\OT1/cmr/m/n/10 Susan Black-ford. LA-PACK Bench-
[]
Underfull \hbox (badness 10000) in paragraph at lines 32--32
\OT1/cmr/m/n/10 mark. [][]$\OT1/cmtt/m/n/10 http : / / www . netlib . org /
[]
Underfull \hbox (badness 10000) in paragraph at lines 32--32
\OT1/cmtt/m/n/10 lapack / lug / node71 . html$[][]\OT1/cmr/m/n/10 , Oc-to-ber
[]
Underfull \hbox (badness 8189) in paragraph at lines 38--38
\OT1/cmr/m/n/10 pressed Data For-mat Spec-i-fi-ca-tion
[]
Underfull \hbox (badness 2150) in paragraph at lines 38--38
\OT1/cmr/m/n/10 ver-sion 1.3. [][]$\OT1/cmtt/m/n/10 https : / / www . w3 . org
/
[]
Underfull \hbox (badness 1728) in paragraph at lines 49--49
\OT1/cmr/m/n/10 Kern, Matti Pi-cus, Stephan Hoyer,
[]
Underfull \hbox (badness 2119) in paragraph at lines 49--49
\OT1/cmr/m/n/10 Marten H. van Kerk-wijk, Matthew
[]
Underfull \hbox (badness 1371) in paragraph at lines 55--55
\OT1/cmr/m/n/10 codes. \OT1/cmr/m/it/10 Pro-ceed-ings of the In-sti-tute
[]
Underfull \hbox (badness 1354) in paragraph at lines 66--66
[]\OT1/cmr/m/n/10 Mark Adler, Thomas Boutell, John
[]
Underfull \hbox (badness 1275) in paragraph at lines 66--66
\OT1/cmr/m/n/10 Bowler, Chris-tian Brun-schen, Adam
[]
Underfull \hbox (badness 1152) in paragraph at lines 66--66
\OT1/cmr/m/n/10 Neal Ket-tler, Tom Lane, Alexan-der
[]
Underfull \hbox (badness 1521) in paragraph at lines 66--66
\OT1/cmr/m/n/10 Pehrson, Greg Roelofs, Willem van
[]
Underfull \hbox (badness 4954) in paragraph at lines 66--66
\OT1/cmr/m/n/10 Wohl. Portable Net-work Graph-
[]
[4]
Underfull \hbox (badness 10000) in paragraph at lines 71--71
[]\OT1/cmr/m/n/10 Welch. A tech-nique for high-
[]
)
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 308.
[5
]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 308.
(./main.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 308.
\snap@out=\write5
\openout5 = `main.dep'.
Dependency list written on main.dep.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 308.
Package rerunfilecheck Info: File `main.out' has not changed.
(rerunfilecheck) Checksum: 19F8E58C28815E7487A3EF4998E64AEE;563.
Package rerunfilecheck Info: File `main.brf' has not changed.
(rerunfilecheck) Checksum: C570B9102030AF83512B881CA3D8BB07;666.
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
)
Here is how much of TeX's memory you used:
9017 strings out of 481239
137386 string characters out of 5920377
423188 words of memory out of 5000000
24081 multiletter control sequences out of 15000+600000
540547 words of font info for 53 fonts, out of 8000000 for 9000
1142 hyphenation exceptions out of 8191
47i,9n,42p,782b,432s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/shar
e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texl
ive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/te
xmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dis
t/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts
/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/type1/
public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/
amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts
/cm/cmr9.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy
10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy9.pfb>
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/
share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/share/
texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt9.pfb>
Output written on main.pdf (5 pages, 238230 bytes).
PDF statistics:
186 PDF objects out of 1000 (max. 8388607)
157 compressed objects within 2 object streams
29 named destinations out of 1000 (max. 500000)
96 words of extra memory for PDF output out of 10000 (max. 10000000)
\BOOKMARK [1][-]{section.1}{Introduction}{}% 1
\BOOKMARK [1][-]{section.2}{Related Work}{}% 2
\BOOKMARK [2][-]{subsection.2.1}{PNG}{section.2}% 3
\BOOKMARK [2][-]{subsection.2.2}{LZW}{section.2}% 4
\BOOKMARK [2][-]{subsection.2.3}{A Method to Save Some of the Interpolated Errors}{section.2}% 5
\BOOKMARK [2][-]{subsection.2.4}{A Method of Interpolation by Clustering}{section.2}% 6
\BOOKMARK [1][-]{section.3}{Background}{}% 7
\BOOKMARK [1][-]{section.4}{The Approach}{}% 8
\BOOKMARK [1][-]{section.5}{Results}{}% 9
\BOOKMARK [1][-]{section.6}{Discussion}{}% 10
File added
File added
\RequirePackage{snapshot}
\documentclass[10pt,twocolumn,letterpaper]{article}
\newif\ifrev
% comment out the following line after the revision is done
%\revtrue
\usepackage{caption}
\usepackage{subcaption}
% Language setting
% Replace `english' with e.g. `spanish' to change the document language
\usepackage[english]{babel}
% Set page size and margins
% Replace `letterpaper' with `a4paper' for UK/EU standard size
\setlength{\textheight}{8.875in}
\setlength{\textwidth}{6.875in}
\setlength{\columnsep}{0.3125in}
\setlength{\topmargin}{0in}
\setlength{\headheight}{0in}
\setlength{\headsep}{0in}
\setlength{\parindent}{1pc}
\setlength{\oddsidemargin}{-.304in}
\setlength{\evensidemargin}{-.304in}
% Useful packages
\usepackage{amsmath}
\usepackage{graphicx}
% \usepackage[colorlinks=true, allcolors=blue]{hyperref}
\def\abstract{\centerline{\large\bf Abstract}\vspace*{12pt}\it}
\def\endabstract{\vspace*{12pt}}
\renewcommand{\dblfloatpagefraction}{0.99}
\usepackage{xspace}
\usepackage{multirow}
\makeatletter
\DeclareRobustCommand\onedot{\futurelet\@let@token\@onedot}
\def\@onedot{\ifx\@let@token.\else.\null\fi\xspace}
\def\eg{\emph{e.g}\onedot} \def\Eg{\emph{E.g}\onedot}
\def\ie{\emph{i.e}\onedot} \def\Ie{\emph{I.e}\onedot}
\def\cf{\emph{c.f}\onedot} \def\Cf{\emph{C.f}\onedot}
\def\etc{\emph{etc}\onedot} \def\vs{\emph{vs}\onedot}
\def\wrt{w.r.t\onedot} \def\dof{d.o.f\onedot}
\def\etal{\emph{et al}\onedot}
\makeatother
\usepackage{titlesec}
%fixing titlesec bug:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\ttlh@hang}{\parindent\z@}{\parindent\z@\leavevmode}{}{}
\patchcmd{\ttlh@hang}{\noindent}{}{}{}
\makeatother
\titlespacing {\section}
{0pt}{1.2ex plus 1ex minus .2ex}{1.0ex plus .2ex}
\titlespacing {\subsection}
{0pt}{1.0ex plus 1ex minus .2ex}{1.0ex plus .2ex}
\titleformat{\section}
{\normalfont\fontsize{12}{15}\bfseries}{\thesection.}{0.3em}{}
\titleformat{\subsection}
{\normalfont\fontsize{11}{15}\bfseries}{\thesubsection}{0.3em}{}
\setlength{\abovecaptionskip}{4pt plus 2pt minus 2pt} % minus 2pt} %default 10
\setlength{\belowcaptionskip}{0pt plus 2pt} % minus 2pt} %default 00
\captionsetup{font=small} % fontsize{8}}
\usepackage{gensymb} % math \degree
\usepackage{textcomp} % \textdegree
%Make itemize compact
\usepackage{enumitem}
\setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}
\usepackage[pagebackref=true,breaklinks=true,letterpaper=true,colorlinks,bookmarks=true]{hyperref}
\def\httilde{\mbox{\tt\raisebox{-.5ex}{\symbol{126}}}}
\hyphenation{off-loads}
\title{Lossless Single Pass Image Compression by Interpolation}
\author{Dr. Andrey Filippov \qquad Nathaniel Callens Jr. \\
Kelly Chang \qquad Bryce Hepner \\
Elphel, Inc.\\
1455 W. 2200 S. \#205, Salt Lake City, Utah 84119 USA \\
{\tt\small \{andrey,bryce\}@elphel.com}}
\begin{document}
\maketitle
\begin{abstract}
This algorithm operates by scanning through each pixel in a raster pattern, using already scanned pixels to decompress the next pixel's value.
By saving the encoded error between the predicted pixel value and the actual value, we were able to losslessly get the compressed images to be less than 41\% of their original size.
This resulted in files that are approximately 34\% smaller than their equivalent PNGs, and 35\% smaller than the LZW compression method with TIFF.
\end{abstract}
\section{Introduction}
The idea is based off of how images are scanned in originally.
Like a cathode-ray tube in a television, the algorithm goes line by line, reading/writing each pixel individually in a raster pattern.
Each pixel, as long as it is not on the top or side boundaries, will have 4 neighbors that have already been read into the machine.
Those points can be interpolated and used to predict the next pixel's value.
The goal is to encode the error between that value and the original value, save that, and use that to compress and decompress the image.
Even though a possibly larger integer may need to be stored, it's more likely that the guess will be correct, or off by a small margin, making the distribution less uniform and better for compression.
\begin{figure}[h]
\centering
\includegraphics[width=0.2\textwidth]{PixelArrangement.png}
\caption{\label{fig:pixels}The other 4 pixels are used to find the value of the 5th.}
\end{figure}
\section{Related Work}
\subsection{PNG}
PNG is a compression lossless algorithm that operates using a single pass like ours \cite{PNGoverview}.
The image is separated into several blocks of arbitrary size, which are then compressed using a combination of LZ77 and Huffman encoding \cite{PNGdetails}.
LZ77 operates by finding patterns in the data and creating pointers to the original instance of that pattern.
For example, if there are two identical blocks of just the color blue, the second one only has to make reference to the first.
Instead of saving two full blocks, the second one just contains the location of the first, telling the decoder to use that block.
Huffman encoding is then used to save these numbers, optimizing how the location data is stored.
If one pattern is more frequent, the algorithm should optimize over this, producing an even smaller file\cite{PNGdetails}.
The Huffman encoding portion is what separates LZ77 from ``deflate'', the algorithm summarized here, and the same one used in PNG.
Our algorithm has a similar use of Huffman encoding, but a completely different algorithm than LZ77.
LZ77 seeks patterns between blocks while ours has no block structure and no explicit pattern functionality.
Ours uses the equivalent block size of 1, and instead of encoding the data it encodes alternate information which is used to compress.
\subsection{LZW}
LZW operates differently by created a separate code table that maps every sequence to a code.
Although this is used for an image, the original paper explains it through text examples which will be done here as well \cite {LZW}.
Instead of looking at each character individually, it looks at variable length string chains and compresses those.
Passing through the items to be compressed, if a phrase has already been encountered, it saves the reference to the original phrase along with the next character in sequence.
In this way, the longer repeated phrases are automatically found and can be compressed to be smaller.
This system also uses blocks like PNG in order to save patterns in the data, but instead by looking at the entire data as it moves along, PNG only operates on a short portion of the text \cite{PNGdetails}.
Ours, similarly to PNG, only looks at a short portion of the data, which may have an advantage over LZW for images.
Images generally do not have the same patterns that text does, so it may be advantageous to not use the entire corpus in compressing an image and instead only evaluate it based off of nearby objects.
The blue parts of the sky will be next to other blue parts of the sky, and in the realm of thermal images, objects will probably be most similar to nearby ones in temperature due to how heat flows.
\subsection{A Method to Save Some of the Interpolated Errors}
No projects or papers are very similar to the ideas expressed in this paper, especially not for 16 bit thermal images.
One paper that comes close is ``Encoding-interleaved hierarchical interpolation for lossless image compression'' \cite{ABRARDO1997321}.
This method seems to operate with a similar end goal, to save the interpolation, but operates on a different system, including how it interpolates.
Instead of using neighboring pixels in a raster format, it uses vertical and horizontal ribbons, and a different way of interpolating.
The ribbons alternate, going between a row that is just saved and one that is not saved but is later interpolated.
In this way it is filling in the gaps of an already robust image and saving that finer detail.
It should show an increase in speed but not in overall compression.
This will not have the same benefit as ours as ours uses interpolation on almost the entire image, instead of just parts, optimizing over the larger amount of saved error values.
\subsection{A Method of Interpolation by Clustering}
The closest method is ``Near-lossless image compression by relaxation-labelled prediction'' \cite{AIAZZI20021619} which has similarity with the general principles of the interpolation and encoding.
The algorithm detailed in the paper uses a clustering algorithm of the nearby points to create the interpolation, saving the errors in order to retrieve the original later.
This method is much more complex, not using a direct interpolation method but instead using a clustering algorithm to find the next point.
This could potentially have an advantage by using more points in the process, but the implementation becomes too complicated and may lose value.
It also has a binning system based off of the mean square prediction error, but which bin it goes into can shift over the classification process adding to the complexity of the algorithm.
The use of more points could be implemented into ours too, although it would not help the temporal complexity.
\section{Background}
The images that were used in the backing of this paper are all thermal images, with the values from the sensors ranging from 19197 to 25935.
Total possible values can range from 0 to 32768.
Most images had ranges of at most 4,096 between the smallest and the largest pixel values.
The original purpose was for the development of an algorithm that works in raster format that can be used to load the images individually.
This algorithm has support for 16 bit images, as well as 8 bits with some slight modification.
For other uses of this algorithm, such as being used on multiple channel color images, only slight modifications would be necessary.
The camera being used has 16 forward facing thermal sensors creating 16 similar thermal images every frame.
\section{The Approach}
To begin, the border values are encoded into the system.
There are not many values here and the algorithm needs a place to start.
Once the middle points are reached, the pixel to the left, top left, directly above, and top right have already been read in.
Each of these values is given a point in the x-y plane, with the top left at (-1,1), top pixel at (0,1), top right pixel at (1,1), and the middle left pixel at (-1,0), giving the target (0,0).
Using the formula for a plane in 3D ($ax + by + c = z$) we get the system of equations
$$-a + b + c = z_0$$
$$b + c = z_1$$
$$a + b + c = z_2$$
$$-a + c = z_3$$.
These complete the form $Ax = b$ as
$$A =
\begin{bmatrix}
-1 & 1 & 1\\
0 & 1 & 1 \\
1 & 1 & 1 \\
-1 & 0 & 1
\end{bmatrix}
$$
$$b =
\begin{bmatrix}
z_0\\
z_1 \\
z_2 \\
z_3
\end{bmatrix}
$$
Due to there being 4 equations and 4 unknowns, this is unsolvable.
This can be corrected by making
$$A =
\begin{bmatrix}
3 & 0 & -1\\
0 & 3 & 3 \\
1 & -3 & -4
\end{bmatrix}
$$
and
$$b =
\begin{bmatrix}
-z_0 + z_2 - z_3\\
z_0 + z_1 + z_2 \\
-z_0 - z_1 - z_2 - z_3
\end{bmatrix}
$$
.
The new matrix is full rank and can therefore be solved using \verb|numpy.linalg.solve| \cite{Numpy}.
The x that results corresponds to two values followed by the original $c$ from the $ax+by+c=z$ form, which is the predicted pixel value.
Huffman encoding performs well on data with varying frequency \cite{Huffman}, which makes saving the error numbers a good candidate for using it.
Most pixels will be off by low numbers since many objects have close to uniform surface temperature or have an almost uniform temperature gradient.
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{Uniform_No_Title.png}
\caption{Encoding the Pixel Values}
\label{fig:sub1}
\end{figure}
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{Normal_No_Title.png}
\caption{Encoding the Error Values}
\label{fig:sub2}
\end{figure}
In order to control for objects in images that are known to have an unpredictable temperature (fail the cases before), a bin system is used.
The residuals from \verb|numpy.linalg.lstsq| \cite{Numpy} are used to determine the difference across the 4 known points, which is then used to place it in a category.
This number is the difference between trying to fit a plane between 4 different points.
If a plane is able to be drawn that contains all 4 points, it makes sense that the error will be much smaller than if the best fitted plane was not very close to any of the points.
Something more certain in this case is likely to be more correct.
5 bins were used with splits chosen by evenly distributing the difference numbers into evenly sized bins.
Many of the images had several different bin sizes ranging from 11 in the first category to a difference of 30 as the first category.
An average number between all of them was chosen, since using the average versus specific bins had an effect on compression of less than half a percent.
\section{Results}
We attained an average compression ratio of $0.4057$ on a set of 262 images, with compression ratios ranging from $0.3685$ to $0.4979$.
Because the system as it stands runs off of a saved dictionary, it is better to think of the system as a cross between individual compression and a larger archive tool.
This means that there are large changes in compression ratios depending on how many files are compressed, despite the ability to decompress files individually.
When the size of the saved dictionary was included, the compression ratio on the entire set only changed from $0.4043$ to $0.4057$. However, when tested on just the first image in the set, it went from $0.3981$ to $0.7508$.
This is not a permanent issue, as changes to the system can be made to fix this.
These are detailed in the discussion section below.
We are using it on a set of at least 16 images, so this does not affect us as much.
When tested on a random set of 16 images, the ratio only changed from $0.3973$ to $0.4193$.
\begin{tabular}{ |p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}| }
\hline
\multicolumn{4}{|c|}{Compression Rates} \\
\hline
Original & LZW & PNG & Ours\\
\hline
100\% & 61.94\% & 61.21\% &40.57\% \\
\hline
\end{tabular}
The created file system together created files that are on average 33.7\% smaller than PNG and 34.5\% smaller than LWZ compression on TIFF.
\section{Discussion}
The files produced through this method are much smaller than the others tested but at great computational costs.
PNG compression is several orders of magnitude faster than the code that was used in this project.
Using a compiled language instead of python will increase the speed but there are other improvements that could be made.
Part of the problem with the speed was the \verb|numpy.linalg.solve| \cite{Numpy} function, which is not the fastest way to solve the system.
This method operates in $O(N^3)$ \cite{LAPACKAlgorithms} for an $N\times N$ matrix, while more recent algorithms have placed it at $O(n^{2.37286})$ \cite{DBLP:journals/corr/abs-2010-05846}
Using an approximation could be helpful.
Although it is potentially lossy, it would greatly improve computational complexity.
The least squares method mentioned in this project also has the same shortcoming.
It runs in $O(N^3)$ for a similar $N\times N$ matrix \cite{LeastSquaredProblem}.
This compression suffers greatly when it is only used on individual images, which is not a problem for the project it was designed for.
The camera that this compression was built for has 16 image sensors that work simultaneously.
They work in 100 image increments and therefore create large packets that can be saved together, while still having the functionality of decompressing individually.
This saves greatly on the memory that is required to view an image.
It was therefore not seen necessary to create a different system to compress individual files as individual images are not created.
A potential workaround for this problem would be to code extraneous values into the image directly instead of adding them to the full dictionary.
This has the downside of not being able to integrate perfectly with Huffman encoding.
A leaf of the tree would have to be a trigger to not use Huffman encoding anymore and use an alternate system to read in the bits.
We chose not to do this but it would be a simple operation for someone with a different use case.
\bibliographystyle{alpha}
\bibliography{main}
\end{document}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment