Commit f54c590e authored by Bryce Hepner's avatar Bryce Hepner

Changed the abstract

parent bef515ef
Pipeline #2628 passed with stage
in 8 seconds
......@@ -29,15 +29,15 @@
\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}}}
\citation{LZW}
\citation{PNGdetails}
\citation{ABRARDO1997321}
\citation{Dahlen1993}
\citation{AIAZZI20021619}
\@writefile{toc}{\contentsline {section}{\numberline {2}Related Work}{2}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}PNG}{2}{subsection.2.1}\protected@file@percent }
\@writefile{brf}{\backcite{PNGoverview}{{2}{2.1}{subsection.2.1}}}
\@writefile{brf}{\backcite{PNGdetails}{{2}{2.1}{subsection.2.1}}}
\@writefile{brf}{\backcite{PNGdetails}{{2}{2.1}{subsection.2.1}}}
\@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}}}
......@@ -46,18 +46,17 @@
\@writefile{brf}{\backcite{ABRARDO1997321}{{2}{2.3}{subsection.2.3}}}
\@writefile{brf}{\backcite{Dahlen1993}{{2}{2.3}{subsection.2.3}}}
\@writefile{brf}{\backcite{AIAZZI20021619}{{2}{2.3}{subsection.2.3}}}
\@writefile{toc}{\contentsline {section}{\numberline {3}The Approach}{2}{section.3}\protected@file@percent }
\citation{Numpy}
\citation{Huffman}
\citation{Numpy}
\@writefile{toc}{\contentsline {section}{\numberline {3}The Approach}{3}{section.3}\protected@file@percent }
\@writefile{brf}{\backcite{Numpy}{{3}{3}{section.3}}}
\@writefile{brf}{\backcite{Huffman}{{3}{3}{section.3}}}
\@writefile{brf}{\backcite{Numpy}{{3}{3}{figure.caption.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}{}}
\newlabel{fig:Uniform}{{2}{3}{Encoding the Pixel Values\relax }{figure.caption.2}{}}
\@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 {4}Results}{3}{section.4}\protected@file@percent }
\newlabel{fig:Normal}{{3}{3}{Encoding the Error Values\relax }{figure.caption.3}{}}
\@writefile{brf}{\backcite{Numpy}{{3}{3}{figure.caption.3}}}
\citation{LAPACKAlgorithms}
\citation{LeastSquaredProblem}
\bibstyle{ieee}
......@@ -69,11 +68,12 @@
\bibcite{Dahlen1993}{5}
\bibcite{PNGdetails}{6}
\bibcite{Numpy}{7}
\bibcite{Huffman}{8}
\bibcite{ISO/IEC14495-1}{9}
\bibcite{PNGoverview}{10}
\@writefile{toc}{\contentsline {section}{\numberline {4}Results}{4}{section.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5}Discussion}{4}{section.5}\protected@file@percent }
\@writefile{brf}{\backcite{LAPACKAlgorithms}{{4}{5}{section.5}}}
\@writefile{brf}{\backcite{LeastSquaredProblem}{{4}{5}{section.5}}}
\bibcite{Huffman}{8}
\bibcite{ISO/IEC14495-1}{9}
\bibcite{PNGoverview}{10}
\bibcite{LZW}{11}
\bibcite{544819}{12}
......@@ -52,7 +52,7 @@ D.~A. Huffman.
\bibitem{ISO/IEC14495-1}
JPEG.
\newblock {Information technology Lossless and near-lossless compression of
\newblock {Information technology - Lossless and near-lossless compression of
continuous-tone still images}.
\newblock Standard, International Organization for Standardization, Geneva, CH,
Dec. 1999.
......
......@@ -178,7 +178,7 @@ key = {LosslessJPG},
author = {JPEG},
month = dec,
year = {1999},
title = {{Information technology Lossless and near-lossless compression of continuous-tone still images}},
title = {{Information technology - Lossless and near-lossless compression of continuous-tone still images}},
volume = {1999},
address = {Geneva, CH},
institution = {International Organization for Standardization}
......@@ -191,5 +191,6 @@ institution = {International Organization for Standardization}
volume={4},
number={},
pages={1890-1893 vol. 4},
doi={10.1109/ICASSP.1996.544819}}
doi={10.1109/ICASSP.1996.544819}
}
......@@ -5,7 +5,7 @@ The style file: ieee.bst
Database file #1: main.bib
You've used 12 entries,
2120 wiz_defined-function locations,
591 strings with 6591 characters,
591 strings with 6589 characters,
and the built_in function-call counts, 4378 in all, are:
= -- 411
> -- 250
......
\backcite {ISO/IEC14495-1}{{1}{1.1}{subsection.1.1}}
\backcite {544819}{{1}{1.1}{subsection.1.1}}
\backcite {PNGoverview}{{1}{2.1}{subsection.2.1}}
\backcite {PNGdetails}{{1}{2.1}{subsection.2.1}}
\backcite {PNGoverview}{{2}{2.1}{subsection.2.1}}
\backcite {PNGdetails}{{2}{2.1}{subsection.2.1}}
\backcite {PNGdetails}{{2}{2.1}{subsection.2.1}}
\backcite {LZW}{{2}{2.2}{subsection.2.2}}
\backcite {PNGdetails}{{2}{2.2}{subsection.2.2}}
......
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.7.20) 13 JUL 2022 11:16
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.7.20) 18 JUL 2022 16:10
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
......@@ -404,32 +404,34 @@ 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=46, 130.55226pt x 86.724pt>
Underfull \hbox (badness 1019) in paragraph at lines 116--119
\OT1/cmr/m/n/10 com-pres-sion is not new, as ev-i-denced by its use
[]
<PixelArrangement.png, id=47, 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 116.
Package pdftex.def Info: PixelArrangement.png used on input line 122.
(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=84, 462.528pt x 346.896pt>
<./PixelArrangement.png (PNG copy)>]
Underfull \vbox (badness 4156) has occurred while \output is active []
[2]
<Uniform_No_Title.png, id=87, 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 242.
Package pdftex.def Info: Uniform_No_Title.png used on input line 250.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt.
LaTeX Warning: `h' float specifier changed to `ht'.
<Normal_No_Title.png, id=86, 462.528pt x 346.896pt>
<Normal_No_Title.png, id=89, 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 248.
Package pdftex.def Info: Normal_No_Title.png used on input line 256.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt.
LaTeX Warning: `h' float specifier changed to `ht'.
[3 <./Uniform_No_Title.png> <./Normal_No_Title.png>] (./main.bbl (./main.brf)
\tf@brf=\write4
\openout4 = `main.brf'.
......@@ -441,35 +443,35 @@ Underfull \hbox (badness 7362) in paragraph at lines 26--26
[]
[4])
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 320.
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 328.
[5
]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 320.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 328.
(./main.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 320.
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 328.
\snap@out=\write5
\openout5 = `main.dep'.
Dependency list written on main.dep.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 320.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 328.
Package rerunfilecheck Info: File `main.out' has not changed.
(rerunfilecheck) Checksum: 32E97EDE93C04899CE7128EA0CB0D790;513.
Package rerunfilecheck Info: File `main.brf' has not changed.
(rerunfilecheck) Checksum: 9099E033D70D51ED61C40175FF1C40FF;711.
(rerunfilecheck) Checksum: 6459ACEAE59D2F518EBB98684716CB6C;711.
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
)
Here is how much of TeX's memory you used:
8449 strings out of 481239
129190 string characters out of 5920377
404256 words of memory out of 5000000
129195 string characters out of 5920377
403256 words of memory out of 5000000
23525 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,468s stack positions out of 5000i,500n,10000p,200000b,80000s
47i,9n,42p,782b,466s 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
......@@ -484,10 +486,10 @@ y9.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb
></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti9.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, 252045 bytes).
Output written on main.pdf (5 pages, 254345 bytes).
PDF statistics:
191 PDF objects out of 1000 (max. 8388607)
162 compressed objects within 2 object streams
193 PDF objects out of 1000 (max. 8388607)
164 compressed objects within 2 object streams
31 named destinations out of 1000 (max. 500000)
96 words of extra memory for PDF output out of 10000 (max. 10000000)
No preview for this file type
No preview for this file type
......@@ -91,10 +91,15 @@ Elphel, Inc.\\
\begin{abstract}
% The method described in this paper is a simple method that has intended use with thermal images.
This method operates by scanning through each pixel in a raster pattern, using already scanned pixels to decompress the next pixel's value.
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.
%This method operates by scanning through each pixel in a raster pattern, using already scanned pixels to decompress the next pixel's value.
%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 TIFF files compressed with LZW.
The specific properties of thermal images compared to photographic ones are higher dynamic range (16 bits) and dependence of pixels only on the temperature variations of self-radiating objects. The ambient temperature variations add to the pixel values, not multiply them as in the case of the illuminated scenes.
We base our algorithm on the 4-neighbor method and use local context to switch between encoding tables as the expected prediction error depends only on the differences between the known pixels invariant of their average value.
This approach allows for building a 2D histogram for the prediction error and the "smoothness" of the known pixels and using it to construct the encoding tables.
Table selection only depends on the four-pixel values (so available to the decoder) and does not increase the compressed stream.
As a result, we could 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 TIFF files compressed with LZW.
\end{abstract}
\section{Introduction}
......@@ -104,16 +109,18 @@ Like a cathode-ray tube in a television, the algorithm goes line by line, readin
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 analyzed and interpolated to find the next pixel's value.
A visual demostration of this pattern is given in \figurename{ \ref{fig:pixels}}.
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 is more likely that the guess will be correct or off by a small margin, making the distribution better for compression.
The approach of using the neighboring pixels for compression is not new, as evidenced by its use in ISO/IEC14495-1:1999 \cite{ISO/IEC14495-1} and ``CALIC-a context based adaptive lossless image codec''\cite{544819}, which were both written more than 20 years before the publication of this paper.
The approach of using the neighboring pixels for compression is not new, as evidenced by its use in ISO/IEC 14495-1:1999 \cite{ISO/IEC14495-1} and ``CALIC-a context based adaptive lossless image codec''\cite{544819}, which were both written more than 20 years before the publication of this paper.
%This ``neighbor'' system is not as common as it should be, as it provides a base for simple implementation with high rates of compression.
Our final implementation differs from these methods, and others, in ways that we found beneficial, and in ways others may find to be beneficial as well.
\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}
......@@ -179,7 +186,7 @@ There are not many values here and the algorithm needs a place to start.
Alternate things could have been done, but they would have raised temporal complexity with marginal gain.
Once the middle points are reached, the pixel to the left, top left, directly above, and top right have already been read into the system.
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 the coordinates (0,0).
Using the formula for a plane in 3D ($ax + by + c = z$) we get the system of equations
Using the formula for a plane in 3D ($ax + by + c = z$) we have the system of equations
$$-a + b + c = z_0$$
$$b + c = z_1$$
$$a + b + c = z_2$$
......@@ -234,20 +241,21 @@ $$
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}, making it a good candidate for saving the error numbers.
Huffman encoding performs well on data with varying frequency \cite{Huffman}, making it a good candidate for saving the error numbers.
Figures \ref{fig:Uniform} and \ref{fig:Normal} give a representation of why saving the error numbers is better than saving the actual values.
Most pixels will be off the predicted values 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}
\label{fig:Uniform}
\end{figure}
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{Normal_No_Title.png}
\caption{Encoding the Error Values}
\label{fig:sub2}
\label{fig:Normal}
\end{figure}
......
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