diff --git a/document/citations.bib b/document/citations.bib
index 41b6cc1b0cbe89dba5c05a4095a9c3d26fd9e63a..0012439d4d92dcf03dc808a3d275c3f088757101 100644
--- a/document/citations.bib
+++ b/document/citations.bib
@@ -3,7 +3,6 @@
   title        = {A real-time compression library for microscopy images},
   elocation-id = {164624},
   year         = {2017},
-  doi          = {10.1101/164624},
   publisher    = {Cold Spring Harbor Laboratory},
   abstract     = {Fluorescence imaging techniques such as single molecule localization microscopy, high-content screening and light-sheet microscopy are producing ever-larger datasets, which poses increasing challenges in data handling and data sharing. Here, we introduce a real-time compression library that allows for very fast (beyond 1 GB/s) compression and de-compression of microscopy datasets during acquisition. In addition to an efficient lossless mode, our algorithm also includes a lossy option, which limits pixel deviations to the intrinsic noise level of the image and yields compression ratio of up to 100-fold. We present a detailed performance analysis of the different compression modes for various biological samples and imaging modalities.},
   url          = {https://www.biorxiv.org/content/early/2017/07/21/164624},
@@ -158,7 +157,6 @@
   number   = {1},
   pages    = {xviii-xxxiv},
   keywords = {data compression;picture processing;television standards;transforms;ISO;CCITT;lossy compression;coding;lossless compression;TV standard;still picture compression standard;JPEG;Joint Photographic Experts Group;international compression standard;continuous-tone still images;grayscale;color;DCT;discrete cosine transform;predictive method;Baseline method;Transform coding;Image coding;Digital images;Image storage;Standards development;ISO standards;Gray-scale;Displays;Costs;Facsimile},
-  doi      = {10.1109/30.125072},
   issn     = {1558-4127},
   month    = {Feb}
 }
@@ -267,7 +265,6 @@ volume={28},
 number={1},
 pages={84-95},
 keywords={Quantization (signal);Signal quantization;Speech coding;Algorithm design and analysis;Distortion measurement;Vectors;Clustering algorithms;Speech analysis;Linear predictive coding;Senior members;Sufficient conditions;Quantization;Data communication},
-doi={10.1109/TCOM.1980.1094577},
 ISSN={1558-0857},
 month={January},
 }
diff --git a/document/parts/appendix/result_images.tex b/document/parts/appendix/result_images.tex
index 718a6904ecac1ba57ca4b94ee0735fa55624ebc1..7128b1d0cce60ca94332c2145ea2592fb05f1198 100644
--- a/document/parts/appendix/result_images.tex
+++ b/document/parts/appendix/result_images.tex
@@ -130,7 +130,7 @@
         \caption{$L$ = 256, BPP = 0,7459}
     \end{subfigure}
     % ROW END
-    \caption{Řez 400 datasetu embrya octomilky (kanál 0) po vektorové kvantizaci ($3\times 3$) s využitím Huffmanova kódování}
+    \caption{Řez 400 datasetu embrya octomilky (kanál 0) po vektorové kvantizaci ($3\times 3$) \linebreak s využitím Huffmanova kódování}
     \label{fig:appendix_vq3x3_result_images_ch0}
 \end{figure}
 % ---------------------------------------------------------------------------------
@@ -176,7 +176,7 @@
         \caption{$L$ = 256, BPP = 0,6764}
     \end{subfigure}
     % ROW END
-    \caption{Řez 400 datasetu embrya octomilky (kanál 0) po vektorové kvantizaci ($9\times 1$) s využitím Huffmanova kódování}
+    \caption{Řez 400 datasetu embrya octomilky (kanál 0) po vektorové kvantizaci ($9\times 1$) \linebreak s využitím Huffmanova kódování}
     \label{fig:appendix_vq9x1_result_images_ch0}
 \end{figure}
 
@@ -223,7 +223,7 @@
         \caption{$L$ = 256, BPP = 0,6171}
     \end{subfigure}
     % ROW END
-    \caption{Řez 683 datasetu embrya octomilky (kanál 1) po vektorové kvantizaci ($3\times 3$) s využitím Huffmanova kódování}
+    \caption{Řez 683 datasetu embrya octomilky (kanál 1) po vektorové kvantizaci ($3\times 3$) \linebreak s využitím Huffmanova kódování}
     \label{fig:appendix_vq3x3_result_images_ch0}
 \end{figure}
 % ---------------------------------------------------------------------------------
@@ -269,6 +269,6 @@
         \caption{$L$ = 256, BPP = 0,5739}
     \end{subfigure}
     % ROW END
-    \caption{Řez 683 datasetu embrya octomilky (kanál 1) po vektorové kvantizaci ($9\times 1$) s využitím Huffmanova kódování}
+    \caption{Řez 683 datasetu embrya octomilky (kanál 1) po vektorové kvantizaci ($9\times 1$) \linebreak s využitím Huffmanova kódování}
     \label{fig:appendix_vq9x1_result_images_ch0}
 \end{figure}
\ No newline at end of file
diff --git a/document/parts/scalar_quantization_results.tex b/document/parts/scalar_quantization_results.tex
index 24eb43ae2ef6ea4f122776d27c5e3a1a9964a877..f06cd111b1a816e127206e0f39901f088e331e5e 100644
--- a/document/parts/scalar_quantization_results.tex
+++ b/document/parts/scalar_quantization_results.tex
@@ -63,6 +63,7 @@ U prvních dvou z těchto obrázků ihned vidíme výraznou chybu, způsobenou m
 
 
 Dále bychom se více podívali na samotnou kvantizační chybu. Vybrané statistické charakteristiky této chyby pro jednotlivé velikosti slovníku můžeme najít v Tabulce \ref{tab:sq_error_stats}. Z této tabulky vidíme, že rozdělení chyb u všech slovníku je pozitivně zešikmené a zároveň velmi špičaté. Normálnímu rozdělení se v rámci špičatosti blíží pouze poslední slovník $L = 256$. Dle vývoje mediánu můžeme pozorovat, jak se celá distribuce postupně posouvá na pravou stranu blíže k nule. Samotné zužování histogramu a přibližování se tak k Diracovu impulsu, lze dobře vyčíst ze snižující se hodnoty směrodatné odchylky. V naprosto ideálním případě by distribuce chyby vypadalo jako Diracův impuls. Všechny hodnoty chyby by byly nulové. Toto zužování histogramu chyby můžeme graficky pozorovat na Obrázku \ref{fig:sq_error_dist}.
+Následně na Obrázku \ref{fig:sq_value_dist} vidíme distribuci hodnot pixelů po provedení komprese. Tyto histogramy můžeme porovnat s histogramy na Obrázku \ref{fig:drosohpila_ch0_hist}. Distribuce hodnot pixelů po kompresi by se měla co nejvíce blížit originálnímu rozdělení hodnot jasu, toto při porovnání grafů můžeme potvrdit.
 
 \begin{table}[ht!]
     \centering
@@ -82,10 +83,11 @@ Dále bychom se více podívali na samotnou kvantizační chybu. Vybrané statis
     \label{tab:sq_error_stats}
 \end{table}
 
-Na Obrázku \ref{fig:sq_value_dist} poté vidíme distribuci hodnot pixelů po provedení komprese. Tyto histogramy můžeme porovnat s histogramy na Obrázku \ref{fig:drosohpila_ch0_hist}. Distribuce hodnot pixelů po kompresi by se měla co nejvíce blížit originálnímu rozdělení hodnot jasu, toto při porovnání grafů můžeme potvrdit.
-
 Co se týče normality kvantizační chyby, tak ta může být dle vybraných statistických charakteristik v Tabulce \ref{tab:sq_error_stats} zavrhnuta. Hlavním problémem je velká špičatost. Toto tvrzení si potvrdíme provedením Kolmogorovova--Smirnovova testu. Shapiro--Wilkův test nemohl byt použit, neboť velikost výběrů přesahuje limit 5000 vzorků. Nulová hypotéza $H_0$ říká, že data pocházejí z normálního rozdělení. Alternativní hypotéza je rovna negaci nulové hypotézy, $H_A = \neg H_0$. $p$-hodnota pro daný test vyšla $\ll 0,0001$. Na hladině významnosti 5 \% tedy zamítáme nulovou hypotézu ve prospěch alternativní hypotézy a potvrzujeme, že rozdělení kvantizační chyby není normálním rozdělením.
-\begin{figure}[ht!]
+
+Do této doby jsme se bavili pouze o kompresi jednoho vybraného řezu, z kanálu 0 datasetu embrya octomilky. V dalším grafu této sekce se podíváme a probereme výsledky, kterých jsme dosáhli kompresí všech rovin obou datasetů. V grafech na Obrázku \ref {fig:sq_compression_dist} můžeme vidět vývoj průměrné absolutní chyby pixelu MAE vzhledem k rovině datasetu. MAE je vypočítáno podobně jako MSE, akorát místo sumy druhé mocniny rozdílu je sčítána absolutní hodnota rozdílu.
+
+\begin{figure} %[ht!]
     \centering
     \begin{subfigure}{.45\textwidth}
         \centering
@@ -103,8 +105,6 @@ Co se týče normality kvantizační chyby, tak ta může být dle vybraných st
     \label{fig:sq_compression_dist}
 \end{figure}
 
-Do této doby jsme se bavili pouze o kompresi jednoho vybraného řezu, z kanálu 0 datasetu embrya octomilky. V dalším grafu této sekce se podíváme a probereme výsledky, kterých jsme dosáhli kompresí všech rovin obou datasetů. V grafech na Obrázku \ref {fig:sq_compression_dist} můžeme vidět vývoj průměrné absolutní chyby pixelu MAE vzhledem k rovině datasetu. MAE je vypočítáno podobně jako MSE, akorát místo sumy druhé mocniny rozdílu je sčítána absolutní hodnota rozdílu.
-
 Zároveň na těchto grafech porovnáváme tři různé typy slovníků. V prvním grafu je každá rovina komprimována podle svého vlastního slovníku. U nejmenšího slovníku $L = 4$ můžeme pozorovat kolísání MAE, neboť 4 hodnoty nestačí ke kompresi detailního obrazu. Toto kolísání můžeme ještě dramatičtěji pozorovat pro výsledky z druhého kanálu. Grafy pro tento druhý kanál najdeme na Obrázku \ref{fig:sq_error_trend_ch1} v přílohách. Na tomto grafu si všimneme velmi divného stoupání chyby od cca 290. roviny. Právě někdy od této roviny začíná okolí vzorku zabírat významnou část obrazu. Toto okolí je velmi tmavé, obsahující pouze pixely malých hodnot. Avšak většinová část obrazu je stále zabírána světlejšími pixely, a proto algoritmus vytváří slovník, obsahující právě tyto vyšší hodnoty. Se zvětšováním se tohoto tmavého okolí roste vzniklá chyba MAE. Stejná situace nastává pro roviny 550 až 560. Dle grafu vidíme, že toto je pouze chyba nejmenšího slovníku.
 
 Zbylé dva grafy reprezentují výsledky dosáhnuté pomocí jediného slovníku. Tento slovník byl využit pro kompresi všech rovin v datasetu. Ihned si všimneme, že tyto výsledky nejsou pro žádnou velikost slovníku horší, než tomu bylo v prvním grafu. Je tomu právě naopak, křivky vypadají stabilněji. Například v Obrázku \ref{fig:sq_error_trend_ch1} vidíme, že nedochází ke vzniku velké chyby na několika za sebou jdoucích rovinách. Velmi dobré výsledky slovníku vytvořeného z prostřední roviny potvrzují naši hypotézu, že uprostřed datasetu se nachází řez, obsahující snímaný vzorek. Díky přítomnosti vzorku slovník obsahuje správné kvantizační hodnoty, hodící se k rekonstrukci obrazu. Toto, avšak nemusí být vždy pravda, a proto je jistější využít slovník globální, který je vytvořen ze všech rovin datasetu. Jedinou nevýhodou globálního slovníku, oproti slovníku \linebreak z prostřední roviny je délka učení. V přílohách na Obrázku \ref{fig:sq_error_trend_ch0_detail} najdeme stejný graf hodnoty MAE podle rovin, avšak pouze pro 4 nejlepší slovníky. Na těchto přiložených grafech můžeme detailněji pozorovat výsledky lepších slovníků.
diff --git a/document/parts/vector_quantization_results.tex b/document/parts/vector_quantization_results.tex
index 78265e75a8fecd4713089fdeb169f8b7b56d31c3..787e0fd5ece80c766b6ef091eed272cf01f9a072 100644
--- a/document/parts/vector_quantization_results.tex
+++ b/document/parts/vector_quantization_results.tex
@@ -29,7 +29,7 @@ V této práci jsme se zaměřili hlavně na kompresi pomocí vektorů velikosti
 
 Dle této tabulky se zdá, že kvalita výsledného obrazu je po provedení vektorové kvantizace velmi špatná. PSNR dosahuje v nejlepším případě pouze hodnoty 39,5944 dB, kdežto u skalární kvantizace jsme se dostali až na hodnotu 62,7451 dB. Stejně tak chyba MSE je mnohonásobně vyšší. Na obrázcích, které budou následovat, si vysvětlíme, proč došlo ke vzniku tak velkých chyb. Ještě v této tabulce si všimneme velmi pozitivního posledního sloupce. U všech slovníků jsme se dostali na hodnotu menší než 1 bit na pixel. Vysvětlení nízké hodnoty BPP je jednoduché. Jak jsme již zmínili, jeden blok zastupuje $N$ pixelů a k zakódování obrazu je potřeba mnohem méně bloků, než je pixelů.
 
-Abychom lépe porozuměli chybě, která vzniká vektorovou kvantizací, podíváme se znova na teplotní mapy, které najdeme na Obrázku \ref{fig:vq_hm}. Na prvních třech grafech vidíme, že většinová část chybných pixelů se vyskytuje přímo na buněčné stěně vzorku. Navíc se tyto pixely liší \linebreak o maximální hodnotu teplotní mapy, někdy i víc jak 15 000. Z tohoto můžeme usoudit, že pro aplikaci vektorové kvantizace nebude možné využít slovníku menších nežli 32. Na dalších grafech vidíme, že chyba na pixelech vzorku klesá a teplejší místa se nacházejí spíše v okolí vzorku. Tyto chybné pixely na markerech jsou taky důvodem velmi vysokých hodnot MSE a malé hodnoty PSNR \linebreak v předcházející tabulce. Obecně jsou tyto teplotní mapy více zašuměné, něž tomu bylo u skalární kvantizace. U skalární kvantizace byl pixel nahrazován jedním pixelem, kdežto zde je nahrazován v rámci bloku. Stává se tedy, že i když je slovníkový vektor nejblíže bloku obrazu, tak některý pixel nebo pixely mohou být zcela rozlišné. Tento efekt se dá ještě více pozorovat na řádkovém vektoru. U něj si můžeme představit, že se budou bloky v prvních $N-2$ pixelech rovnat a zbylé 2 pixely budou odlišné. Díky tomuto jevu bohužel pozorujeme několik velkých chyb v rámci buněčné stěny embrya octomilky. Avšak v posledním grafu se již největší chyby vyskytují v okolí vzorku na markerech. Tyto objekty nejsou pro člověka důležité, a tudíž se dá tato chyba tolerovat. V budoucí práci by stálo za vyzkoušení provést předzpracování obrazu, které by odstranilo okolí vzorku od vzorku samotného. Samotné snímky po dekompresi najdeme znovu v přílohách na Obrázcích \ref{fig:appendix_vq3x3_result_images_ch0} a \ref{fig:appendix_vq9x1_result_images_ch0}. Při typickém prohlížení obrázku je poměrně náročné vidět vizuální artefakty vzniklé kompresí. Samozřejmě kvalita by se dala zlepšit větším slovníkem nebo menším kvantizačním vektorem.
+Abychom lépe porozuměli chybě, která vzniká vektorovou kvantizací, podíváme se znova na teplotní mapy, které najdeme na Obrázku \ref{fig:vq_hm}. Na prvních třech grafech vidíme, že většinová část chybných pixelů se vyskytuje přímo na buněčné stěně vzorku. Navíc se tyto pixely liší \linebreak o maximální hodnotu teplotní mapy, někdy i víc jak 15 000. Z tohoto můžeme usoudit, že pro aplikaci vektorové kvantizace nebude možné využít slovníku menších nežli 32. Na dalších grafech vidíme, že chyba na pixelech vzorku klesá a teplejší místa se nacházejí spíše v okolí vzorku. Tyto chybné pixely na markerech jsou taky důvodem velmi vysokých hodnot MSE a malé hodnoty PSNR v předcházející tabulce. 
 
 \begin{figure}[h!]
     \centering
@@ -45,9 +45,13 @@ Abychom lépe porozuměli chybě, která vzniká vektorovou kvantizací, podív
     \label{fig:vq_hm}
 \end{figure}
 
+Obecně jsou tyto teplotní mapy více zašuměné, něž tomu bylo u skalární kvantizace. U té byl pixel nahrazován jedním pixelem, kdežto zde je nahrazován v rámci bloku. Stává se tedy, že i když je slovníkový vektor nejblíže bloku obrazu, tak některý pixel nebo pixely mohou být zcela rozlišné. Tento efekt se dá ještě více pozorovat na řádkovém vektoru. U něj si můžeme představit, že se budou bloky v prvních $N-2$ pixelech rovnat a zbylé 2 pixely budou odlišné. \\ Díky tomuto jevu bohužel pozorujeme několik velkých chyb v rámci buněčné stěny embrya octomilky. Avšak v posledním grafu se již největší chyby vyskytují v okolí vzorku na markerech. Tyto objekty nejsou pro člověka důležité, a tudíž se dá tato chyba tolerovat. V budoucí práci by stálo za vyzkoušení provést předzpracování obrazu, které by odstranilo okolí vzorku od vzorku samotného. Samotné snímky po dekompresi najdeme znovu v přílohách na Obrázcích \ref{fig:appendix_vq3x3_result_images_ch0} a \ref{fig:appendix_vq9x1_result_images_ch0}. Při typickém prohlížení obrázku je poměrně náročné vidět vizuální artefakty vzniklé kompresí. Samozřejmě kvalita by se dala zlepšit větším slovníkem nebo menším kvantizačním vektorem.
+
+
+
 Histogramem na Obrázku \ref{fig:vq_error_dist} si můžeme potvrdit, že pixely lišící se výrazně od původních pixelů zaujímají menšinovou část v obraze. Nejčetnější jsou opět hodnoty v okolí nuly, tedy minimální rozdíly. Oproti skalární kvantizaci je rozsah chyby v okolí nuly širší. Toto je znovu způsobeno efektem, který jsme zmínili v předcházejícím odstavci. Tento efekt má za důsledek vznik většího počtu malých chyb. Na vedlejším histogramu v Obrázku \ref{fig:vq_value_dist} znovu vidíme distribuci hodnot pixelů po dekompresi. Tyto histogramy už nebudou mít přesně $L$ vrcholů, jak tomu bylo u skalární kvantizace. Což může být výhodou vektorové kvantizace, která je schopna zrekonstruovat více než jen $L$ hodnot jasu. Toto platí díky slovníku, obsahujícího obecně více unikátních hodnot.
 
-\begin{figure}[ht!]
+\begin{figure} %[ht!]
     \centering
     \begin{subfigure}{.45\textwidth}
         \centering
@@ -111,7 +115,8 @@ Samozřejmě i ve vektorové kvantizaci jsme využili Huffmanovo kódování, kt
     \label{tab:vq_cr_huffman}
 \end{table}
 
-Na konci této sekce se ještě podíváme na propustnosti, rychlosti obou implementovaných metod, při použití globálního slovníku. Globální slovník jsme využili, protože jsme chtěli porovnat pouze časy komprese/dekomprese a nebrat v potaz čas potřebný pro naučení slovníku. Čas učení slovníku je výrazně delší u vektorové kvantizace. Výsledky byly změřeny na počítači \linebreak s procesor Intel Core i7-8850H, komprese i dekomprese byla prováděna sériově. Naměřené hodnoty jsou uvedeny v Tabulce \ref{tab:sq_vq_speed}. Dle naměřených hodnot zjišťujeme, že pro obě metody propustnost kompresoru klesá spolu s rostoucím slovníkem. Toto je logické, neboť kompresor musí vyhledat vhodnou slovníkovou hodnotu z většího slovníku, kterou nahradí originální pixel nebo blok pixelů. U vektorové kvantizace je toto zpomalení více dramatické a s každým dalším slovníkem je propustnost dvojnásobně menší. Toto je způsobeno větším počtem porovnání, kdy musí být pro každý vektor porovnáno $N$ hodnot. Oproti tomu v dekompresi je vektorová kvantizace mnohem výkonnější a rychlost klesne až u větších slovníků. Pomalejší rychlost skalární kvantizace je daná metodou nahrazování pixelů postupně po jednom.
+Na konci této sekce se ještě podíváme na propustnosti, rychlosti obou implementovaných metod, při použití globálního slovníku. Globální slovník jsme využili, protože jsme chtěli porovnat pouze časy komprese/dekomprese a nebrat v potaz čas potřebný pro naučení slovníku. Čas učení slovníku je výrazně delší u vektorové kvantizace. Výsledky byly změřeny na \linebreak počítači s procesor Intel Core i7-8850H, komprese i dekomprese byla prováděna sériově. \linebreak Naměřené hodnoty jsou uvedeny v Tabulce \ref{tab:sq_vq_speed}. Dle naměřených hodnot zjišťujeme, že pro obě metody propustnost kompresoru klesá spolu s rostoucím slovníkem. Toto je logické, neboť kompresor musí vyhledat vhodnou slovníkovou hodnotu z většího slovníku, kterou nahradí originální pixel nebo blok pixelů. U vektorové kvantizace je toto zpomalení více dramatické a s každým dalším slovníkem je propustnost dvojnásobně menší. Toto je způsobeno větším počtem porovnání, kdy musí být pro každý vektor porovnáno $N$ hodnot. Oproti tomu v dekompresi je vektorová kvantizace mnohem výkonnější a rychlost klesne až u větších slovníků. Pomalejší rychlost skalární kvantizace je daná metodou nahrazování pixelů postupně po jednom.
+Nutno podotknout, že komprese i dekomprese jsou v aktuální době implementovány sériově a metody jsou poměrně snadno paralelizovatelné. Oba implementované algoritmy pracují při kompresi a dekompresi pouze s daty aktuální roviny a s konstantním slovníkem, který jim byl předán. Tyto výsledky byly získány zpracováním 250 rovin z datasetu. Můžeme si tedy představit, že při kompresi bude každé vlákno komprimovat každou rovinu zvlášť. Stejné platí pro dekompresi.
 
 \begin{table}[ht!]
     \centering
@@ -138,7 +143,7 @@ Na konci této sekce se ještě podíváme na propustnosti, rychlosti obou imple
     \label{tab:sq_vq_speed}
 \end{table}
 
-Nutno podotknout, že komprese i dekomprese jsou v aktuální době implementovány sériově a metody jsou poměrně snadno paralelizovatelné. Oba implementované algoritmy pracují při kompresi a dekompresi pouze s daty aktuální roviny a s konstantním slovníkem, který jim byl předán. Tyto výsledky byly získány zpracováním 250 rovin z datasetu. Můžeme si tedy představit, že při kompresi bude každé vlákno komprimovat každou rovinu zvlášť. Stejné platí pro dekompresi.
+
 
 Navíc je pro nás důležitější rychlost dekomprese, neboť počítáme s tím, že komprese bude prováděna na výkonném serveru nebo superpočítači. Zde mohou být obrazy kódovány za běhu, nebo už mohou být uloženy ve speciálním formátu QCMP. Komprimovaná data budou přenášena \linebreak k uživateli, na jehož počítači bude docházet k dekompresi, která je již nenáročná a rychlá.