Commit 820087f4 authored by Bryce Hepner's avatar Bryce Hepner

Bib change

parent a6d4bdf4
Pipeline #2569 passed with stage
in 8 seconds
......@@ -19,39 +19,40 @@
\citation{PNGoverview}
\citation{PNGdetails}
\citation{PNGdetails}
\citation{LZW}
\citation{PNGdetails}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Technical Overview}{1}{subsection.1.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 {subsection}{\numberline {1.2}Background}{1}{subsection.1.2}\protected@file@percent }
\@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{LZW}
\citation{PNGdetails}
\citation{ABRARDO1997321}
\citation{AIAZZI20021619}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}LZW}{2}{subsection.2.2}\protected@file@percent }
\@writefile{brf}{\backcite{LZW}{{2}{2.2}{subsection.2.2}}}
\@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 }
\@writefile{toc}{\contentsline {section}{\numberline {3}The Approach}{2}{section.3}\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{brf}{\backcite{Numpy}{{3}{3}{section.3}}}
\@writefile{brf}{\backcite{Huffman}{{3}{3}{section.3}}}
\@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{brf}{\backcite{Numpy}{{3}{3}{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 }
\@writefile{toc}{\contentsline {section}{\numberline {4}Results}{3}{section.4}\protected@file@percent }
\citation{Numpy}
\citation{LAPACKAlgorithms}
\citation{DBLP:journals/corr/abs-2010-05846}
......@@ -68,8 +69,8 @@
\bibcite{Huffman}{8}
\bibcite{PNGoverview}{9}
\bibcite{LZW}{10}
\@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}}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Discussion}{4}{section.5}\protected@file@percent }
\@writefile{brf}{\backcite{Numpy}{{4}{5}{section.5}}}
\@writefile{brf}{\backcite{LAPACKAlgorithms}{{4}{5}{section.5}}}
\@writefile{brf}{\backcite{DBLP:journals/corr/abs-2010-05846}{{4}{5}{section.5}}}
\@writefile{brf}{\backcite{LeastSquaredProblem}{{4}{5}{section.5}}}
\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 {LZW}{{2}{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}}
\backcite {Numpy}{{3}{3}{section.3}}
\backcite {Huffman}{{3}{3}{section.3}}
\backcite {Numpy}{{3}{3}{figure.caption.3}}
\backcite {Numpy}{{4}{5}{section.5}}
\backcite {LAPACKAlgorithms}{{4}{5}{section.5}}
\backcite {DBLP:journals/corr/abs-2010-05846}{{4}{5}{section.5}}
\backcite {LeastSquaredProblem}{{4}{5}{section.5}}
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.7.20) 24 JUN 2022 11:04
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.7.20) 27 JUN 2022 14:56
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
......@@ -404,46 +404,49 @@ LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined
(Font) using `OMS/cmsy/m/n' instead
(Font) for symbol `textbraceleft' on input line 91.
<PixelArrangement.png, id=44, 130.55226pt x 86.724pt>
<PixelArrangement.png, id=48, 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 111.
Package pdftex.def Info: PixelArrangement.png used on input line 112.
(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>
<./PixelArrangement.png (PNG copy)>]
Underfull \vbox (badness 1931) has occurred while \output is active []
[2]
<Uniform_No_Title.png, id=86, 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 232.
Package pdftex.def Info: Uniform_No_Title.png used on input line 231.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt.
<Normal_No_Title.png, id=84, 462.528pt x 346.896pt>
<Normal_No_Title.png, id=88, 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 238.
Package pdftex.def Info: Normal_No_Title.png used on input line 237.
(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 264--276
Underfull \hbox (badness 4713) in paragraph at lines 263--275
[]\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 264--276
Underfull \hbox (badness 5161) in paragraph at lines 263--275
\OT1/cmr/m/n/10 im-ages, so this does not af-fect us as much.
[]
Underfull \hbox (badness 4353) in paragraph at lines 264--276
Underfull \hbox (badness 4353) in paragraph at lines 263--275
\OT1/cmr/m/n/10 When tested on a ran-dom set of 16 im-ages,
[]
Underfull \hbox (badness 3428) in paragraph at lines 264--276
Underfull \hbox (badness 3428) in paragraph at lines 263--275
\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$.
[]
......@@ -459,30 +462,30 @@ Underfull \hbox (badness 7362) in paragraph at lines 31--31
[]
)
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 308.
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 307.
[4]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 308.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 307.
(./main.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 308.
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 307.
\snap@out=\write5
\openout5 = `main.dep'.
Dependency list written on main.dep.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 308.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 307.
Package rerunfilecheck Info: File `main.out' has not changed.
(rerunfilecheck) Checksum: 19F8E58C28815E7487A3EF4998E64AEE;563.
(rerunfilecheck) Checksum: 678B3FD8ACEC81A3FDC0098488E26BA3;645.
Package rerunfilecheck Info: File `main.brf' has not changed.
(rerunfilecheck) Checksum: C570B9102030AF83512B881CA3D8BB07;666.
(rerunfilecheck) Checksum: B884F516D3798BA29F2253029CE65F80;666.
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
)
Here is how much of TeX's memory you used:
8438 strings out of 481239
129151 string characters out of 5920377
401171 words of memory out of 5000000
23517 multiletter control sequences out of 15000+600000
8440 strings out of 481239
129191 string characters out of 5920377
402171 words of memory out of 5000000
23518 multiletter control sequences out of 15000+600000
541812 words of font info for 57 fonts, out of 8000000 for 9000
1142 hyphenation exceptions out of 8191
47i,9n,42p,782b,389s stack positions out of 5000i,500n,10000p,200000b,80000s
......@@ -501,10 +504,10 @@ amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts
share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti9.pfb></usr/share/t
exlive/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 (4 pages, 255326 bytes).
Output written on main.pdf (4 pages, 255928 bytes).
PDF statistics:
186 PDF objects out of 1000 (max. 8388607)
157 compressed objects within 2 object streams
28 named destinations out of 1000 (max. 500000)
96 words of extra memory for PDF output out of 10000 (max. 10000000)
190 PDF objects out of 1000 (max. 8388607)
161 compressed objects within 2 object streams
29 named destinations out of 1000 (max. 500000)
104 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
\BOOKMARK [2][-]{subsection.1.1}{Technical Overview}{section.1}% 2
\BOOKMARK [2][-]{subsection.1.2}{Background}{section.1}% 3
\BOOKMARK [1][-]{section.2}{Related Work}{}% 4
\BOOKMARK [2][-]{subsection.2.1}{PNG}{section.2}% 5
\BOOKMARK [2][-]{subsection.2.2}{LZW}{section.2}% 6
\BOOKMARK [2][-]{subsection.2.3}{A Method to Save Some of the Interpolated Errors}{section.2}% 7
\BOOKMARK [2][-]{subsection.2.4}{A Method of Interpolation by Clustering}{section.2}% 8
\BOOKMARK [1][-]{section.3}{The Approach}{}% 9
\BOOKMARK [1][-]{section.4}{Results}{}% 10
\BOOKMARK [1][-]{section.5}{Discussion}{}% 11
No preview for this file type
No preview for this file type
......@@ -90,38 +90,46 @@ Elphel, Inc.\\
\maketitle
\begin{abstract}
% The method described in this paper is a simple method that has intended use with thermal images.
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.
By saving the error between the predicted pixel value and the actual value, we were able to losslessly compress thermal images to be less than 41\% of their original size.
The resulting files were approximately 34\% smaller than their equivalent PNGs, and 35\% smaller than LZW compression with TIFF files.
\end{abstract}
\section{Introduction}
\subsection{Technical Overview}
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.
Those points can be analyzed and interpolated to find 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.
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 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}
\subsection{Background}
The images that were used in the development of this paper are all thermal images, with values ranging from 19,197 to 25,935.
Total possible values can range from 0 to 32,768.
Everything detailed here can still apply to standard grayscale or RGB images, but for testing, only 16 bit thermal images were used.
Most images had ranges of at most 4,096 between the smallest and the largest pixel values.
The camera being used has 16 forward facing thermal sensors creating 16 similar thermal images every frame.
\section{Related Work}
\subsection{PNG}
PNG is a compression lossless algorithm that operates using a single pass like ours \cite{PNGoverview}.
PNG is a lossless compression algorithm that also operates using a single pass system\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.
The Huffman encoding portion is what separates LZ77 from ``deflate'', the algorithm summarized here, and the 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.
......@@ -155,15 +163,6 @@ This could potentially have an advantage by using more points in the process, bu
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.
......
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