Commit 4fb341cd authored by Bryce Hepner's avatar Bryce Hepner

after abstract changes

parent f54c590e
Pipeline #2634 passed with stage
in 7 seconds
...@@ -18,9 +18,6 @@ ...@@ -18,9 +18,6 @@
\providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\HyField@AuxAddToCoFields[2]{}
\citation{ISO/IEC14495-1} \citation{ISO/IEC14495-1}
\citation{544819} \citation{544819}
\citation{PNGoverview}
\citation{PNGdetails}
\citation{PNGdetails}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Overview}{1}{subsection.1.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Overview}{1}{subsection.1.1}\protected@file@percent }
\@writefile{brf}{\backcite{ISO/IEC14495-1}{{1}{1.1}{subsection.1.1}}} \@writefile{brf}{\backcite{ISO/IEC14495-1}{{1}{1.1}{subsection.1.1}}}
...@@ -29,6 +26,9 @@ ...@@ -29,6 +26,9 @@
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} \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}{}} \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 {subsection}{\numberline {1.2}Background}{1}{subsection.1.2}\protected@file@percent }
\citation{PNGoverview}
\citation{PNGdetails}
\citation{PNGdetails}
\citation{LZW} \citation{LZW}
\citation{PNGdetails} \citation{PNGdetails}
\citation{ABRARDO1997321} \citation{ABRARDO1997321}
...@@ -45,33 +45,33 @@ ...@@ -45,33 +45,33 @@
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Similar Methods}{2}{subsection.2.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Similar Methods}{2}{subsection.2.3}\protected@file@percent }
\@writefile{brf}{\backcite{ABRARDO1997321}{{2}{2.3}{subsection.2.3}}} \@writefile{brf}{\backcite{ABRARDO1997321}{{2}{2.3}{subsection.2.3}}}
\@writefile{brf}{\backcite{Dahlen1993}{{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}}}
\citation{Numpy} \citation{Numpy}
\citation{Huffman} \citation{Huffman}
\citation{Numpy} \citation{Numpy}
\@writefile{brf}{\backcite{AIAZZI20021619}{{3}{2.3}{subsection.2.3}}}
\@writefile{toc}{\contentsline {section}{\numberline {3}The Approach}{3}{section.3}\protected@file@percent } \@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{Numpy}{{3}{3}{section.3}}}
\@writefile{brf}{\backcite{Huffman}{{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 } \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Encoding the Pixel Values\relax }}{3}{figure.caption.2}\protected@file@percent }
\newlabel{fig:Uniform}{{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:Normal}{{3}{3}{Encoding the Error Values\relax }{figure.caption.3}{}}
\@writefile{brf}{\backcite{Numpy}{{3}{3}{figure.caption.3}}} \@writefile{brf}{\backcite{Numpy}{{3}{3}{figure.caption.3}}}
\citation{LAPACKAlgorithms} \citation{LAPACKAlgorithms}
\citation{LeastSquaredProblem} \citation{LeastSquaredProblem}
\bibstyle{ieee} \bibstyle{ieee}
\bibdata{main} \bibdata{main}
\bibcite{ABRARDO1997321}{1} \bibcite{ABRARDO1997321}{1}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Encoding the Error Values\relax }}{4}{figure.caption.3}\protected@file@percent }
\newlabel{fig:Normal}{{3}{4}{Encoding the Error Values\relax }{figure.caption.3}{}}
\@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{AIAZZI20021619}{2} \bibcite{AIAZZI20021619}{2}
\bibcite{LeastSquaredProblem}{3} \bibcite{LeastSquaredProblem}{3}
\bibcite{LAPACKAlgorithms}{4} \bibcite{LAPACKAlgorithms}{4}
\bibcite{Dahlen1993}{5} \bibcite{Dahlen1993}{5}
\bibcite{PNGdetails}{6} \bibcite{PNGdetails}{6}
\bibcite{Numpy}{7} \bibcite{Numpy}{7}
\@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{Huffman}{8}
\bibcite{ISO/IEC14495-1}{9} \bibcite{ISO/IEC14495-1}{9}
\bibcite{PNGoverview}{10} \bibcite{PNGoverview}{10}
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
\backcite {PNGdetails}{{2}{2.2}{subsection.2.2}} \backcite {PNGdetails}{{2}{2.2}{subsection.2.2}}
\backcite {ABRARDO1997321}{{2}{2.3}{subsection.2.3}} \backcite {ABRARDO1997321}{{2}{2.3}{subsection.2.3}}
\backcite {Dahlen1993}{{2}{2.3}{subsection.2.3}} \backcite {Dahlen1993}{{2}{2.3}{subsection.2.3}}
\backcite {AIAZZI20021619}{{2}{2.3}{subsection.2.3}} \backcite {AIAZZI20021619}{{3}{2.3}{subsection.2.3}}
\backcite {Numpy}{{3}{3}{section.3}} \backcite {Numpy}{{3}{3}{section.3}}
\backcite {Huffman}{{3}{3}{section.3}} \backcite {Huffman}{{3}{3}{section.3}}
\backcite {Numpy}{{3}{3}{figure.caption.3}} \backcite {Numpy}{{3}{3}{figure.caption.3}}
......
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 This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.7.20) 26 JUL 2022 16:15
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
...@@ -405,61 +405,66 @@ LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined ...@@ -405,61 +405,66 @@ LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined
(Font) for symbol `textbraceleft' on input line 91. (Font) for symbol `textbraceleft' on input line 91.
Underfull \hbox (badness 1019) in paragraph at lines 116--119 Underfull \hbox (badness 1019) in paragraph at lines 118--121
\OT1/cmr/m/n/10 com-pres-sion is not new, as ev-i-denced by its use \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> <PixelArrangement.png, id=47, 130.55226pt x 86.724pt>
File: PixelArrangement.png Graphic file (type png) File: PixelArrangement.png Graphic file (type png)
<use PixelArrangement.png> <use PixelArrangement.png>
Package pdftex.def Info: PixelArrangement.png used on input line 122. Package pdftex.def Info: PixelArrangement.png used on input line 124.
(pdftex.def) Requested size: 99.36972pt x 66.01147pt. (pdftex.def) Requested size: 99.36972pt x 66.01147pt.
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
<./PixelArrangement.png (PNG copy)>] <./PixelArrangement.png (PNG copy)>] [2]
Underfull \vbox (badness 4156) has occurred while \output is active [] <Uniform_No_Title.png, id=86, 462.528pt x 346.896pt>
[2]
<Uniform_No_Title.png, id=87, 462.528pt x 346.896pt>
File: Uniform_No_Title.png Graphic file (type png) File: Uniform_No_Title.png Graphic file (type png)
<use Uniform_No_Title.png> <use Uniform_No_Title.png>
Package pdftex.def Info: Uniform_No_Title.png used on input line 250. Package pdftex.def Info: Uniform_No_Title.png used on input line 259.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt. (pdftex.def) Requested size: 237.13594pt x 177.8515pt.
<Normal_No_Title.png, id=89, 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) File: Normal_No_Title.png Graphic file (type png)
<use Normal_No_Title.png> <use Normal_No_Title.png>
Package pdftex.def Info: Normal_No_Title.png used on input line 256. Package pdftex.def Info: Normal_No_Title.png used on input line 265.
(pdftex.def) Requested size: 237.13594pt x 177.8515pt. (pdftex.def) Requested size: 237.13594pt x 177.8515pt.
[3 <./Uniform_No_Title.png> <./Normal_No_Title.png>] (./main.bbl (./main.brf)
LaTeX Warning: `h' float specifier changed to `ht'.
[3 <./Uniform_No_Title.png>] (./main.bbl (./main.brf)
\tf@brf=\write4 \tf@brf=\write4
\openout4 = `main.brf'. \openout4 = `main.brf'.
[4 <./Normal_No_Title.png>]
Underfull \hbox (badness 7362) in paragraph at lines 26--26 Underfull \hbox (badness 7362) in paragraph at lines 26--26
\OT1/cmtt/m/n/9 netlib . org / lapack / lug / node71 . html$[][]\OT1/cmr/m/n/9 \OT1/cmtt/m/n/9 netlib . org / lapack / lug / node71 . html$[][]\OT1/cmr/m/n/9
, Oct. 1999. , Oct. 1999.
[] []
[4]) )
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 328. Package atveryend Info: Empty hook `BeforeClearDocument' on input line 337.
[5 [5
] ]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 328. Package atveryend Info: Empty hook `AfterLastShipout' on input line 337.
(./main.aux) (./main.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 328. Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 337.
\snap@out=\write5 \snap@out=\write5
\openout5 = `main.dep'. \openout5 = `main.dep'.
Dependency list written on main.dep. Dependency list written on main.dep.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 328. Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 337.
Package rerunfilecheck Info: File `main.out' has not changed. Package rerunfilecheck Info: File `main.out' has not changed.
(rerunfilecheck) Checksum: 32E97EDE93C04899CE7128EA0CB0D790;513. (rerunfilecheck) Checksum: 32E97EDE93C04899CE7128EA0CB0D790;513.
Package rerunfilecheck Info: File `main.brf' has not changed.
(rerunfilecheck) Checksum: 6459ACEAE59D2F518EBB98684716CB6C;711. Package rerunfilecheck Warning: File `main.brf' has changed.
(rerunfilecheck) Rerun to get bibliographical references right.
Package rerunfilecheck Info: Checksums for `main.brf':
(rerunfilecheck) Before: 433719AC429FD6C7B6A5F8432FFC0561;711
(rerunfilecheck) After: CE4087E59E4E6D34D4C7CEA41D264500;711.
LaTeX Font Warning: Some font shapes were not available, defaults substituted. LaTeX Font Warning: Some font shapes were not available, defaults substituted.
...@@ -471,7 +476,7 @@ Here is how much of TeX's memory you used: ...@@ -471,7 +476,7 @@ Here is how much of TeX's memory you used:
23525 multiletter control sequences out of 15000+600000 23525 multiletter control sequences out of 15000+600000
541812 words of font info for 57 fonts, out of 8000000 for 9000 541812 words of font info for 57 fonts, out of 8000000 for 9000
1142 hyphenation exceptions out of 8191 1142 hyphenation exceptions out of 8191
47i,9n,42p,782b,466s stack positions out of 5000i,500n,10000p,200000b,80000s 47i,9n,42p,782b,468s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></us </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 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 e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texl
...@@ -486,10 +491,10 @@ y9.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb ...@@ -486,10 +491,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/ ></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/ share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/share/
texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt9.pfb> texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt9.pfb>
Output written on main.pdf (5 pages, 254345 bytes). Output written on main.pdf (5 pages, 255693 bytes).
PDF statistics: PDF statistics:
193 PDF objects out of 1000 (max. 8388607) 194 PDF objects out of 1000 (max. 8388607)
164 compressed objects within 2 object streams 165 compressed objects within 2 object streams
31 named destinations out of 1000 (max. 500000) 31 named destinations out of 1000 (max. 500000)
96 words of extra memory for PDF output out of 10000 (max. 10000000) 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
...@@ -96,7 +96,7 @@ Elphel, Inc.\\ ...@@ -96,7 +96,7 @@ Elphel, Inc.\\
%The resulting files were approximately 34\% smaller than their equivalent PNGs, and 35\% smaller than TIFF files compressed with LZW. %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. 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. 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. 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. 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. 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. The resulting files were approximately 34\% smaller than their equivalent PNGs, and 35\% smaller than TIFF files compressed with LZW.
...@@ -104,6 +104,8 @@ The resulting files were approximately 34\% smaller than their equivalent PNGs, ...@@ -104,6 +104,8 @@ The resulting files were approximately 34\% smaller than their equivalent PNGs,
\section{Introduction} \section{Introduction}
\subsection{Overview} \subsection{Overview}
The base system is not new, but it will be explained here in order to keep consistant definitions and in case any reader is not familiar with the method.
The idea is based on how images are scanned in originally. The idea is based on 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. Like a cathode-ray tube in a television, the algorithm goes line by line, reading/writing each pixel individually in a raster pattern.
...@@ -115,7 +117,7 @@ Even though a possibly larger integer may need to be stored, it is more likely t ...@@ -115,7 +117,7 @@ Even though a possibly larger integer may need to be stored, it is more likely t
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. 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. %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. Our final implementation differs from these methods, and others, in ways that we found beneficial for thermal images, and in ways others may find to be beneficial as well.
\begin{figure}[h] \begin{figure}[h]
\centering \centering
...@@ -130,7 +132,14 @@ Most images had ranges of at most 4,096 between the smallest and the largest pix ...@@ -130,7 +132,14 @@ Most images had ranges of at most 4,096 between the smallest and the largest pix
The camera being used has 16 forward-facing thermal sensors creating 16 similar thermal images every frame. The camera being used has 16 forward-facing thermal sensors creating 16 similar thermal images every frame.
Everything detailed here can still apply to standard grayscale or RGB images, but only 16-bit thermal images were used in testing. Everything detailed here can still apply to standard grayscale or RGB images, but only 16-bit thermal images were used in testing.
Thermal images are unique in that pixel values will not depend on lighting but solely on the temperature values of the objects they represent.
Direct lighting can change these values due to the heat exchange, but the general case is that due to heat conduction, objects will have near uniform temperature across the surface.
This creates a need for a different type of compression system, one that is better suited for this different type of data used in the IR spectrum.
Thermal images also have large offsets since when the environment heats up, the pixel values increase while the relationship between objects remains almost constant.
For example, grass will always be cooler than a similar colored surface due to the different thermal properties, but when the day gets hotter, both surfaces will get hotter.
The images are 16-bit because they have to save these larger temperature values, even if they will be shown on a screen in 8-bit format.
Normal compression systems work on thermal images, but since they are not optimized for these, we found it necessary to use a different system.
\section{Related Work} \section{Related Work}
\subsection{PNG} \subsection{PNG}
PNG is a lossless compression algorithm that also operates using a single pass system\cite{PNGoverview}. PNG is a lossless compression algorithm that also operates using a single pass system\cite{PNGoverview}.
......
This diff is collapsed.
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