Skip to content
Snippets Groups Projects
Commit e9fef5dd authored by Vojtěch Moravec's avatar Vojtěch Moravec
Browse files

Docyment update.

parent c60833a9
No related branches found
No related tags found
No related merge requests found
-- SELECT ROUND(AVG(compressionRatio),5)
-- FROM DiffPrevFrameBenchmark
-- WHERE diffType = 'PrevFrameDiff_BSDIFF' AND filename = '16Bit-ZStack.czi' AND level = 6 AND compression = 'BZIP2';
-- SELECT * -- AVG(compressionRatio) as [cr]
-- FROM DiffPrevFrameBenchmark
-- WHERE filename = 'AxioZoom_Artemia_AT-1Ch-Z_sect.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
SELECT * FROM
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [artemia_div] FROM
(
SELECT AVG(compressionRatio) as [cr], compressedSize
FROM DiffPrevFrameBenchmark
WHERE filename = 'AxioZoom_Artemia_AT-1Ch-Z_sect.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr], compressedSize
FROM CompressionBenchmark
WHERE filename = 'AxioZoom_Artemia_AT-1Ch-Z_sect.czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) artemia_diff,
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [artemia_flash_diff] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = '40x075_Artemia-Flash-AT-1Ch-Z-sect.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = '40x075_Artemia-Flash-AT-1Ch-Z-sect.czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) artemia_flash_diff,
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [llc_diff] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = 'LLC-PK1_TubX-emerald_H2B-mCherry-2chZ(SD).czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = 'LLC-PK1_TubX-emerald_H2B-mCherry-2chZ(SD).czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) llc_diff,
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [bit16_diff] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = '16Bit-ZStack.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = '16Bit-ZStack.czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) bit16_diff;
/*
-- FIXED BIT COUNT
SELECT * FROM
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [artemia_div] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = 'AxioZoom_Artemia_AT-1Ch-Z_sect.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = 'AxioZoom_Artemia_AT-1Ch-Z_sect.czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) artemia_diff,
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [artemia_flash_diff] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = '40x075_Artemia-Flash-AT-1Ch-Z-sect.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = '40x075_Artemia-Flash-AT-1Ch-Z-sect.czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) artemia_flash_diff,
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [llc_diff] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = 'LLC-PK1_TubX-emerald_H2B-mCherry-2chZ(SD).czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = 'LLC-PK1_TubX-emerald_H2B-mCherry-2chZ(SD).czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) llc_diff,
(
SELECT ROUND((fbc.cr - referenceCompression.cr),5) as [bit16_diff] FROM
(
SELECT AVG(compressionRatio) as [cr]
FROM DiffPrevFrameBenchmark
WHERE filename = '16Bit-ZStack.czi' and diffType = 'PrevFrameDiff_BSDIFF' and compression = 'BZIP2' AND level = 6
) fbc,
(
SELECT AVG(compressionRatio) as [cr]
FROM CompressionBenchmark
WHERE filename = '16Bit-ZStack.czi' and compression = 'BZIP2' AND level = 6
) referenceCompression
) bit16_diff;
*/
\ No newline at end of file
SELECT ROUND(AVG(bitsUsed),5) -- , MAX(bitsUsed), MIN(bitsUsed) --select distinct DiffPrevFrameBenchmark.diffType from DiffPrevFrameBenchmark;
SELECT ROUND(AVG(compressionRatio),5)
FROM DiffPrevFrameBenchmark FROM DiffPrevFrameBenchmark
WHERE filename = '16Bit-ZStack.czi' and diffType = 'PrevFrameDiff_VBC'; WHERE diffType = 'PrevFrameDiff' AND filename = '16Bit-ZStack.czi' AND level = 6 AND compression = 'BZIP2';
SELECT * FROM
(
SELECT ((16.0-ROUND(AVG(BitsUsed),5)) * width * height) / (8.0 * 1000.0) as [artemia]
FROM DiffPrevFrameBenchmark
WHERE filename = 'AxioZoom_Artemia_AT-1Ch-Z_sect.czi' and diffType = 'PrevFrameDiff_VBC' and
compression = 'BZIP2' AND level = 6
) a,
(
SELECT ((16.0-ROUND(AVG(BitsUsed),5)) * width * height) / (8.0*1000.0) as [artemia_flash]
FROM DiffPrevFrameBenchmark
WHERE filename = '40x075_Artemia-Flash-AT-1Ch-Z-sect.czi' and diffType = 'PrevFrameDiff_VBC' and
compression = 'BZIP2' AND level = 6
) af,
(
SELECT ((16.0-ROUND(AVG(BitsUsed),5)) * width * height) / (8.0*1000.0) as [llc]
FROM DiffPrevFrameBenchmark
WHERE filename = 'LLC-PK1_TubX-emerald_H2B-mCherry-2chZ(SD).czi' AND diffType = 'PrevFrameDiff_VBC' and
compression = 'BZIP2' AND level = 6
) llc,
(
SELECT ((16.0-ROUND(AVG(BitsUsed),5)) * width * height) / (8.0*1000.0) as [16BitZStack]
FROM DiffPrevFrameBenchmark
WHERE filename = '16Bit-ZStack.czi' and diffType = 'PrevFrameDiff_VBC' and
compression = 'BZIP2' AND level = 6
) b16;
/* /*
-- DIFFERENCE BENCHMARK -- DIFFERENCE BENCHMARK
SELECT * FROM SELECT * FROM
......
No preview for this file type
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
\newcommand{\bThreed}{B$^3$D } \newcommand{\bThreed}{B$^3$D }
\pgfplotsset{ \pgfplotsset{
compat=1.5, compat=1.9,
width=7cm, width=7cm,
/pgfplots/ybar legend/.style={ /pgfplots/ybar legend/.style={
/pgfplots/legend image code/.code={% /pgfplots/legend image code/.code={%
...@@ -189,7 +189,7 @@ tedy 2 byty pro každý pixel, rozmezí hodnot $0 - 65535$. ...@@ -189,7 +189,7 @@ tedy 2 byty pro každý pixel, rozmezí hodnot $0 - 65535$.
Na Obrázku \ref{fig:comp_level_comp} vidíme, že pro metody gzip a bzip2 nehraje kompresní úroveň velkou roli a naopak lzma algoritmus vydává lepší Na Obrázku \ref{fig:comp_level_comp} vidíme, že pro metody gzip a bzip2 nehraje kompresní úroveň velkou roli a naopak lzma algoritmus vydává lepší
výsledky od úrovně 5. Také vidíme, že pro kompresi daných snímků žabronožky je nejlepší metoda gzip. Uvedené kompresní poměry jsou průměrem přes výsledky od úrovně 5. Také vidíme, že pro kompresi daných snímků žabronožky je nejlepší metoda gzip. Uvedené kompresní poměry jsou průměrem přes
všechn 39 řezů. Na následujícím Obrázku \ref{fig:more_files_comp} si porovnáme algoritmy na více souborech, uvedené kompresní poměry jsou průměrem přes všechn 39 řezů. Na následujícím Obrázku \ref{fig:basic_compression_plot} si porovnáme algoritmy na více souborech, uvedené kompresní poměry jsou průměrem přes
všechny snímky v souboru a kompresní úroveň 6. všechny snímky v souboru a kompresní úroveň 6.
\begin{figure}[h!] \begin{figure}[h!]
...@@ -231,7 +231,7 @@ všechny snímky v souboru a kompresní úroveň 6. ...@@ -231,7 +231,7 @@ všechny snímky v souboru a kompresní úroveň 6.
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\caption{Srovnání kompresí mezi více soubory, úroveň komprese 6} \caption{Srovnání kompresí mezi více soubory, úroveň komprese 6}
\label{fig:more_files_comp} \label{fig:basic_compression_plot}
\end{figure} \end{figure}
% NOTE: This graph is misleading because the jumps in compression ratios are results of different image channels. In conclusion % NOTE: This graph is misleading because the jumps in compression ratios are results of different image channels. In conclusion
...@@ -297,7 +297,7 @@ grafických kartách, kde toto indexování vede k optimalizaci přístupů do p ...@@ -297,7 +297,7 @@ grafických kartách, kde toto indexování vede k optimalizaci přístupů do p
\image{0.5}{ZCurve.pdf}{fig:zCurve}{Mortonovo kódování} \image{0.5}{ZCurve.pdf}{fig:zCurve}{Mortonovo kódování}
V grafu na Obrázku \ref{fig:z_order_comp}, můžeme vidět změnu kompresního poměru, vzhledem k výsledkům v grafu \ref{fig:more_files_comp}. V grafu na Obrázku \ref{fig:z_order_compression_plot}, můžeme vidět změnu kompresního poměru, vzhledem k výsledkům v grafu \ref{fig:basic_compression_plot}.
Naměřené výsledky jsou znovu průměrem přes všechny snímky s úrovní komprese 6. Naměřené výsledky jsou znovu průměrem přes všechny snímky s úrovní komprese 6.
Mortonovo kódování se nejvíce vyplatilo pro metody GZIP a LZMA, kde pozorujeme nějvětší nárost v kompresním poměru. Naopak pro metodu bzip2 nemělo Mortonovo kódování se nejvíce vyplatilo pro metody GZIP a LZMA, kde pozorujeme nějvětší nárost v kompresním poměru. Naopak pro metodu bzip2 nemělo
přeuspořádání dat smysl, neboť naměřené kompresní poměry jsou o něco horší než původní. přeuspořádání dat smysl, neboť naměřené kompresní poměry jsou o něco horší než původní.
...@@ -341,7 +341,7 @@ přeuspořádání dat smysl, neboť naměřené kompresní poměry jsou o něco ...@@ -341,7 +341,7 @@ přeuspořádání dat smysl, neboť naměřené kompresní poměry jsou o něco
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\caption{Komprese dat, přeuspořadaných podle \emph{Z křivky}} \caption{Komprese dat, přeuspořadaných podle \emph{Z křivky}}
\label{fig:z_order_comp} \label{fig:z_order_compression_plot}
\end{figure} \end{figure}
\subsection{Komprese rozdílu} \subsection{Komprese rozdílu}
...@@ -374,56 +374,64 @@ ještě méně než originálních 16 bitů. ...@@ -374,56 +374,64 @@ ještě méně než originálních 16 bitů.
\label{fig:diff_freq} \label{fig:diff_freq}
\end{figure} \end{figure}
První typ mapování, který jsme vyzkoušeli je velmi jednodnuchý. První typ mapování, který jsme vyzkoušeli je velmi jednodnuchý. Všechny záporné hodnoty posuneme za maximální kladnou hodnotu a následně zjístíme počet bitů, potřebný k zakódování nejvyšší namapované hodnoty. Aby mělo toto mapování smysl musí být počet bitů menší než originálních 16 bitů, neboli hodnota musí být
Všechny záporné hodnoty posuneme za maximální kladnou hodnotu a následně zjístíme počet bitů, potřebný k zakódování nejvyšší namapované hodnoty. menší než $65 536 \text{neboli} (1\ll16)$.
Aby mělo toto mapování smysl musí být počet bitů menší než 16, neboli:
\begin{equation*}
\text{MAX}(\Delta I) + \text{MIN}( \Delta I ) < (1\ll16)
\end{equation*}
\noindent samozřejmě, pokud by $\Delta I$ neobsahovala žádné záporné hodnoty $\text{MIN}( \Delta I )$ můžeme vypustit.
V grafu na Obrázku \ref{fig:bitsUsed} můžeme pozorovat průměrný počet bitů, potřebný k zakódování rozdílu mezi dvěmi snímky. Pro každý rozdíl V grafu na Obrázku \ref{table:bits_used} můžeme pozorovat průměrný počet bitů, potřebný k zakódování rozdílu mezi dvěma snímky. Pro každý rozdíl
používáme minimální potřebný počet bitů, aby jsme se nejvíce zmenšili velikost dat. Samo o sobě touto metodou nezískáme lepší kompresní poměr, menší velikost, používáme minimální potřebný počet bitů, aby jsme co nejvíce zmenšili velikost dat. Vzniklé byty následně komprimujeme námi zkoušenými algoritmy
snímky než pomocí kompresních metod, proto je rozdíl třeba zkomprimovat dříve zmíněnými algoritmy. gzip, lzma a bzip2. Mapování do méně bitů je tedy metoda \emph{pre-processingu} dat před samotnou kompresí, kterým také zmenšíme velikost.
Zde ale narážíme na problém. Neboť používáme proměnná počet bitů, informace v jednom bytu může náležet dvoum hodnotám a kompresní algoritmy s tím neumí dobře poradit.
Celkově je kompresní poměr po použití kompresních algoritmů vzhledem k originální velikosti snímku horší, než kdyby jsme přímo zkomprimovali snímek.
Chce to tedy vyzkoušet jiný typ mapování.
%TODO TODO TODOTODOTODO
\begin{figure}[h!] \begin{figure}[h!]
\begin{tikzpicture} \begin{tikzpicture}
\begin{axis}[ \begin{axis}[
width=0.8\linewidth, width=0.8\linewidth,
height=0.55\linewidth, height=0.55\linewidth,
xbar stacked, xbar,
enlargelimits=0.2, enlargelimits=0.2,
xlabel={Počet bitů}, xlabel={Počet bitů},
legend style={at={(0.5,-0.1)},anchor=north},
symbolic y coords={{Artemia},{Artemia Flash}, {LLC Emerald}, {16 Bit Z Stack}}, symbolic y coords={{Artemia},{Artemia Flash}, {LLC Emerald}, {16 Bit Z Stack}},
% nodes near coords, nodes near coords,
] ]
% BITS USED
\addplot coordinates { \addplot coordinates {
(08.23684,{Artemia})
(12.36842,{Artemia Flash})
(12.25728,{LLC Emerald})
(10.54386,{16 Bit Z Stack}) (10.54386,{16 Bit Z Stack})
(12.25728,{LLC Emerald})
(12.36842,{Artemia Flash})
(08.23684,{Artemia})
}; };
\addplot coordinates {
(7.76316,{Artemia})
(3.63158,{Artemia Flash})
(3.74272,{LLC Emerald})
(5.45614,{16 Bit Z Stack})
};
\legend{{Vyžadováno},{Ušetřeno}}
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\label{fig:bitsUsed} \label{table:bits_used}
\caption{Průměrný počet bitů pro mapování rozdílu} \caption{Průměrný počet bitů pro mapování rozdílu}
\end{figure} \end{figure}
Samo o sobě vypadá tento \emph{pre-processing} nadějně, neboť u některých obrázků ušetříme až 7 bitů na jednom pixelu. Problémem je ale to,
že najednou ukládáme do jednoho bytu informace i více číslech. Ukazuje se, že toto je problém pro testované algoritmy, neboť ty vydávají lepší výsledky
když nejsou data takhle předzpracovaná. Rozdíly kompresních poměrů vzhledem k výsledkům v grafu \ref{fig:basic_compression_plot} můžeme vidět v tabulce
\ref{table:difference_compression_table}.
% TODO: BSDIFF.
\begin{figure}[h!]
\centering
\begin{tabular}{ l l | r r r }
Metoda & Soubor & Pevných 16 bitů & Proměnlivý počet bitů & bsdiff \\\hline\hline
gzip & Artemia & -0.206 & 0.056 & N/A \\
& Artemia Flash & -0.102 & -0.210 & N/A \\
& LLC Emerald & -0.040 & 0.008 & N/A \\
& 16 Bit Z Stack & 0.033 & 0.152 & N/A \\\hline
lzma & Artemia & -0.289 & -0.499 & N/A \\
& Artemia Flash & -0.187 & -0.487 & N/A \\
& LLC Emerald & -0.060 & -0.205 & N/A \\
& 16 Bit Z Stack & -0.010 & -0.150 & N/A \\\hline
bzip2 & Artemia & -0.479 & -0.659 & -0.56762 \\
& Artemia Flash & -0.293 & -0.527 & -0.05141 \\
& LLC Emerald & -0.103 & -0.242 & -0.00099 \\
& 16 Bit Z Stack & -0.044 & -0.204 & 0.00227 \\
\end{tabular}
\caption{Změna kompresních poměrů pro kódování rozdílu mezi snímky}
\label{table:difference_compression_table}
\end{figure}
\newpage \newpage
\subsection{Komprese pomocí knihovny \bThreed} \subsection{Komprese pomocí knihovny \bThreed}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment