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á.