diff --git a/document/citations.bib b/document/citations.bib index 4a7c8da9c0ffbf30a1d23fc4caee91e964aea1c9..901d687e0fd3aba9633b5111ade226f2f264be2a 100644 --- a/document/citations.bib +++ b/document/citations.bib @@ -1,6 +1,6 @@ @manual{czi_spec, organization = "Carl Zeiss Microscopy GmbH", - title = ZISRAW (CZI) File Format", + title = "ZISRAW (CZI) File Format", year = 2016, number = "MC33879", note = "Version 1.2.2", @@ -18,3 +18,9 @@ eprint = {https://www.biorxiv.org/content/early/2017/07/21/164624.full.pdf}, journal = {bioRxiv} } + +@misc{omeweb, + title = {Open Microscopy Environment}, + howpublished = {\url{https://www.openmicroscopy.org/}}, + note = {Dne: 23.01.2019} +} \ No newline at end of file diff --git a/document/document.pdf b/document/document.pdf index fa40272e92744076009ca53aa05af392ef2cd18f..596f3f9119360b34ed233a448f34cbdf2c214a62 100644 Binary files a/document/document.pdf and b/document/document.pdf differ diff --git a/document/document.tex b/document/document.tex index 9bb5d94d2c3977f5dc7197758c438bbabd153ec3..900b016e35516469f4dad7af2661a3938028d7a0 100644 --- a/document/document.tex +++ b/document/document.tex @@ -12,83 +12,47 @@ \usepackage{amssymb} \usepackage{graphicx} \usepackage{dirtytalk} +\usepackage{siunitx} + %\usepackage{titlesec} %\newcommand{\sectionbreak}{\clearpage} %\setlist{nosep} -\newcommand{\image}[4]{\begin{figure}[h!] \centering \includegraphics[width=#1\linewidth]{figures/#2} \label{#3} \caption{#4} \end{figure}} -\newcommand{\bThreed}{B$^3$D} +\newcommand{\image}[4]{\begin{figure}[h!] \centering \includegraphics[width=#1\linewidth]{figures/#2} \caption{#4} \label{#3} \end{figure}} +\newcommand{\bThreed}{B$^3$D } \author{Moravec VojtÄ›ch} \title{SemestrálnĂ projekt} \date{2018/2019} \begin{document} -% \maketitle -% \newpage +%\maketitle +%\newpage \section{ZISRAW (CZI) formát} -Vše co bude v tĂ©to sekci uvedeno vychĂ˝zĂ z oficiálnĂ specifikace formátu CZI. \cite{czi_spec}. - -Formát CZI je urÄŤen pro uloĹľenĂ obrazkĹŻ, samotnĂ© schĂ©ma uloĹľenĂ dat ale vycházĂ z formátu ZISRAW, kterĂ˝ je urÄŤen pro rĹŻznĂ© typy souborĹŻ. -HlavnĂm cĂlem formátu ZISRAW je umoĹľnit streamovánĂ dat a metadat v binárnĂ podobÄ› (metadata jsou buÄŹ binárnĂ nebo v XML). \textit{CZI formát je aktuálnÄ› jedinou implementacĂ ZISRAW.} - -\subsection{CZI segmenty} - -CZI soubor se skládá z Ĺ™etÄ›zce segmentĹŻ, kaĹľdĂ˝ segment je identifikován hlaviÄŤkou s identifikátorem (SID). HlaviÄŤka segmentu se skládá ze 3 polĂ: -\begin{itemize} - \item \textbf{ID} - 16 B, unikátnĂ ANSI kĂłd s prefixem \say{ZISRAW} - \item \textbf{AllocatedSize} - 8 B, velikost rezervována pro data segmentu (velikost je vĹľdy násobkem 32 B) - \item \textbf{UsedSize} - 8 B, poÄŤet bytĹŻ, kolik uĹľ je vyuĹľitu daty segmentu (jestliĹľe 0, pak celĂ˝ segment je vyuĹľit) -\end{itemize} - -Za hlaviÄŤkou se nacházĂ data danĂ©ho segmentu. Tyto data se skládájĂ ze dvou částĂ, kde prvnà část urÄŤuje velikost druhĂ© části a to jakĂ© data se v ni nacházejĂ. HlavnĂmi typy dat jsou: -\begin{itemize} - \item \textbf{Pixely} (\textit{ImageSubBlock}) - pixely obrázkĹŻ a s nim pĹ™Ămo spjata metadata. RAW nekompresovanĂ© obrázky mohou bĂ˝t vĂcedimenzionálnĂ - \item \textbf{Metadata} - kaĹľdĂ˝ segment obsahuje jedny metadata. Ty obsahujĂ XML Ĺ™etÄ›zec, odpovĂdajĂcĂ danĂ©mu schĂ©matu, a binárnĂ sekcĂ s dalšĂmi daty ve formátu ZIP - \item \textbf{PĹ™Ălohy} (\textit{Attachment}) - rĹŻznĂ© typy pĹ™Ăloh -\end{itemize} - -\subsection{ZISRAW kontejner} -PoĹ™adĂ bytĹŻ je little-endian. Data jsou uloĹľena v segmentech s definovanĂ˝mi schĂ©maty, kaĹľdĂ˝ segment obsahuje binárnĂ data nebo XML Ĺ™etÄ›zec. -Je povoleno uloĹľenĂ do jednoho nebo vĂce souborĹŻ, ale vĹľdy existuje jeden hlavnĂ, \emph{master} soubor. KaĹľdĂ˝ ZISRAW soubor obsahuje tyto typy segmentĹŻ: -\begin{itemize} - \item \textbf{FileHeader} - \item \textbf{Metadata} - nevyĹľadováno - \item \textbf{SubBlockDirectory} - adresář všech SubBlock. Je vyĹľadován pokud existuje nÄ›jakĂ˝ SubBlock - \item \textbf{SubBlock} - kaĹľdĂ˝ SubBlock ve svĂ©m segmentu, mĹŻĹľe obsahovat XML metadata a binárnĂ data - \item \textbf{AttachmentDirectory} - adresář všech Attachment, je vyĹľadován pokud existuje nÄ›jakĂ˝ Attachment - \item \textbf{Attachment} - kaĹľdĂ˝ Attachment ve svĂ©m segmentu. PĹ™Ăloha je identifikována svĂ˝m názvem -\end{itemize} - -SubBlockDirectory a AttachmentDirectory obsahujĂ informace potĹ™ebnĂ© pro pĹ™eÄŤtenĂ pouze potĹ™ebnĂ©ho segmentu, dovolujĂ pĹ™eskoÄŤit naÄŤĂtánĂ segmentĹŻ, -kterĂ© nejsou potĹ™eba. - -% \subsection{SchĂ©mata segmentĹŻ} -% V tĂ©to sekci uvedeme základnĂ informace o schĂ©matech segmentĹŻ. Jak jiĹľ bylo zmĂnÄ›no, kaĹľdĂ˝ segment zaÄŤĂná hlaviÄŤkou se 3 poli, Id, AllocatedSize a UsedSize. -% Pole Id nabĂ˝va hodnoty z tĂ©to enumerace SID: -% \begin{itemize} -% \item \textbf{ZISRAWFILE} - hlaviÄŤka souboru, nacházĂ se na začátku souboru -% \item \textbf{ZISRAWDIRECTORY} - adresář segmentĹŻ -% \item \textbf{ZISRAWSUBBLOCK} - obsahuje data obrázkĹŻ -% \item \textbf{ZISRAWMETADATA} - obsahuje metadata -% \item \textbf{ZISRAWATTACH} - pĹ™Ălohy -% \item \textbf{ZISRAWATTDIR} - adresář pĹ™Ăloh -% \item \textbf{DELETED} - smazanĂ˝ segment, mÄ›l by bĂ˝t ignorován -% \end{itemize} - -\subsection{ObrazovĂ© data} -Data obrázkĹŻ se nacházejĂ v \textbf{SubBlock} segmentech, tento segment obsahuje všechny informace o tom jak jsou data uloĹľena a jak je interpretovat. - -V CZI formátu jsou brány v potaz rĹŻznĂ© dimenze obrázku v \\multi-dimenzionálnĂm hyperprostoru. Jsou jimi napĹ™Ăklád: -pozice ve smÄ›ru X, pozice ve smÄ›ru Y, ÄŤas zachycenĂ, Ăşhel zachycenĂ, osvÄ›tlenĂ pĹ™i zachycenĂ atd. Pixely mohou bĂ˝t uloĹľeny v tÄ›chto typech: +Vše co bude v tĂ©to sekci uvedeno vycházĂ z oficiálnĂ specifikace formátu CZI \cite{czi_spec}, spoleÄŤnosti Carl Zeiss ZEN software. + +Formát CZI je urÄŤen pro ukládánĂ obrazĹŻ a metadat, kterĂ© popisujĂ jak samotnĂ˝ obraz tak i zpĹŻsob zĂskánĂ obrazĹŻ, napĹ™Ăklad v jakĂ˝ch podmĂnkách byl snĂmek zĂskán. +CZI vycházĂ z obecnÄ›jšĂho formátu ZISRAW, jehoĹľ hlavnĂm cĂlem je umoĹľnit streamovánĂ velkĂ˝ch dat a metadat v binárnĂ podobÄ›. Metadata jsou ukládány ve formátu XML +s kĂłdovánĂm UTF-8. Metadata v souberech CZI vycházejĂ ze specifikace OME (Open Microscopy Environment) \cite{omeweb}. + +StruktĹŻra ZISRAW/CZI formátu byla navrĹľena tak, aby dovolovala streamovánĂ velkĂ©ho mnoĹľstvĂ dat, proto se ZISRAW/CZI soubory skládajĂ ze segmentĹŻ. +KaĹľdĂ˝ segment je identifikován svou hlaviÄŤkou, která obsahuje informace o jakĂ˝ segment se jedná a jaká je jeho velikost. Za hlaviÄŤkou následuje část s daty. +V souboru nalezneme speciálnĂ segmenty, kterĂ© fungujĂ jako adresáře pro segmenty s obrazy a pĹ™Ălohami. +Tyto adresáře odkazujĂ na pozice v souboru, kde se nacházĂ poĹľadovanĂ© segmenty, coĹľ umoĹľĹuje naÄŤĂtánĂ pouze tÄ›ch částĂ, kterĂ© jsou potĹ™eba. + +Obrazy se nacházejĂ v segmentech, oznaÄŤenĂ© jako \mbox{ZISRAWSUBBLOCK}. KromÄ› samotnĂ˝ch pixelĹŻ zde najdeme i metadata, specifickĂ© pro danĂ˝ obraz. +SpecifickĂ˝mi metadaty mohou bĂ˝t napĹ™. minimálnĂ a maximálnĂ hodnoty pixelĹŻ, poÄŤet bitĹŻ na pixel a seznam dvojic klĂÄŤ/hodnota, udávajĂcĂ libovolnou informaci o obrazu (datum poĹ™ĂzenĂ, pozice mikroskopu v \SI{}{\micro\metre}). + + +Formát CZI dovoluje rĹŻznĂ© typy pixelu, jak pro barevnĂ© tak i ÄŤernobĂlĂ© obrazy, seznam všech podporovanĂ˝ch typĹŻ najdeme v Tabulce \ref{tab:pixelTypes}. \begin{figure}[h!] \centering \begin{tabular}{| l | c | l |} \hline - Typ & Byte/Pixel & Poznámka \\\hline + Typ & Byte/Pixel & Poznámka \\\hline Gray8 & 1 & 8 bit unsigned \\\hline Gray16 & 2 & 16 bit unsigned \\\hline Gray32Float & 4 & 32 bit IEEE float \\\hline @@ -101,36 +65,69 @@ pozice ve smÄ›ru X, pozice ve smÄ›ru Y, ÄŤas zachycenĂ, Ăşhel zachycenĂ, osvÄ› Gray32 & 4 & 32 bit signed \textit{planovanĂ˝} \\\hline Gray64 & 8 & 64 bit float \textit{planovanĂ˝} \\\hline \end{tabular} + \caption{Tabulka podporovanĂ˝ch typĹŻ pixelu v CZI} + \label{tab:pixelTypes} \end{figure} -Data pixelĹŻ v CZI souboru mohou bĂ˝t jak nekomprimovaná tak komprimovaná. -Nekomprimovaná data jsou streamem pixelĹŻ podle jejich typu. Specifikace povoluje komprimaci dat pixelĹŻ pomocĂ LZW, -JPEG a Jpeg-Xr. -LZW je bezztrátová komprese, aktuálnÄ› se nepouĹľĂvá ve \say{widefield} mikroskopii. JPEG komprese je ztrátová a -mĹŻĹľe bĂ˝t pouĹľita pouze pro 2D obrazy. -Jpeg-XR podporuje jak ztrátovou tak i bezztrátovou kompresi. VycházĂ z JPEG a nabĂzĂ menšà velikost pro stejnou kvalitu obrazu, ale stejnÄ› jako JPEG, je omezen na 2D obrazy. +Informaci o typu pixelu nalezneme v metadatech, kterĂ© jsou spoleÄŤnĂ© pro všechny obrazy nacházejĂcĂ se v CZI souboru. +Mimo typ pixelu, nalezneme v tÄ›chto spoleÄŤnĂ˝ch vlastnostech dalšà zajĂmavĂ© informace, nÄ›kterĂ© jsou uvedeny v Tabulce \ref{tab:imageMetadata}, +nutno podotknout, Ĺľe soubor nemusĂ tyto informace obsahovat. +\begin{figure}[h!] + \centering + \begin{tabular}{| l | l |} + \hline + KlĂÄŤ & VĂ˝znam \\\hline + SizeX & Ĺ ĂĹ™ka obrázku \\\hline + SizeY & Výška obrázku \\\hline + SizeC & PoÄŤet kanálĹŻ \\\hline + SizeZ & PoÄŤet Ĺ™ezĹŻ ve smÄ›ru Z \\\hline + SizeT & PoÄŤet ÄŤasovĂ˝ch bodĹŻ \\\hline + SizeH & PoÄŤet fázĂ \\\hline + SizeR & PoÄŤet rĹŻznĂ˝ch Ăşhlu, ze kterĂ˝ch byl obraz zĂskán \\\hline + SizeS & PoÄŤet rĹŻznĂ˝ch scĂ©n \\\hline + SizeI & PoÄŤet rĹŻznĂ˝ch nasvĂcenĂ \\\hline + SizeM & PoÄŤet dĂlĹŻ mozaiky \\\hline + SizeB & PoÄŤet snĂmánĂ jednoho obrazu \\\hline + SizeV & PoÄŤet rĹŻznĂ˝ch pohledĹŻ \\\hline + PixelType & Typ pixelu \\\hline + Dimensions & DodateÄŤnĂ© informace k dimenzĂm \\\hline + \end{tabular} + \caption{ZákladnĂ informace o obrazech v souboru CZI} + \label{tab:imageMetadata} +\end{figure} + +Ĺ ĂĹ™ka, výška obrázku, poÄŤet kanálĹŻ, Ĺ™ezĹŻ, fázĂ atd. to vše jsou \say{dimenze} obrázku, pro kterĂ© mohou bĂ˝t uvedeny dodateÄŤnĂ© informace. Taktéž, kanály se mohou lišit +typem pixelu, poÄŤtem bitĹŻ na komponentu, metodou zĂskanĂ atd., proto i pro nÄ› najdeme specifická metadata. + +Data pixelu mohou bĂ˝t v CZI souborech jak komprimovaná tak nekomprimovaná. SpecifikacĂ jsou povolenĂ© komprese +LZW, JPEG a JPEG-XR. Všechny tyto komprese jsou specifikacĂ omezeny na 2D obrazy. LZW je bezztrátová komprese a momentálnÄ› se nepouĹľĂvá pro +širokopásmovou mikroskopii. JPEG je ztrátová komprese a JPEG-XR je modernÄ›jšà variantou JPEG, která nabĂzĂ lepšà kompresnĂ pomÄ›ry a takĂ© bezztrátovou kompresi. + +\newpage \section{KompresnĂ knihovna \bThreed} -\bThreed je Open Source knihovna, Ĺ™ešĂcĂ problĂ©m komprese obrazĹŻ z mikroskopu. Je napsána v jazyce C++ a vyuĹľĂvá CUDA architektury. -Slibovaná rychlost komprese je vĂce neĹľ 1 GB/s \cite{Balazs164624}. Tato knihovna nabĂzĂ jak ztrátovou tak i bezztrátovou kompres, kde ztrátová zohledĹuje fakt, -Ĺľe se jedná o obrazy z mikroskopu a uĹľivatel si mĹŻĹľe zvolit maximálnĂ chybu, kterou bude tolerovat. Definuji takzvanĂ˝ WNL (\emph{within noise level}) mĂłd -ztrátovĂ© komprese, kde kvantizaÄŤnĂ krok je roven šumu v obraze. V tomto mĂłdu je chyba vzniklá ztrátovou kompresĂ mnohem menšĂ, neĹľ šum nacházejĂcĂ se v obraze. +Tato sekce vycházĂ z \cite{Balazs164624}, taktéž grafy jsou pĹ™ebrány z tĂ©to práce. +\bThreed je Open Source knihovna, Ĺ™ešĂcĂ problĂ©m komprese obrazĹŻ z mikroskopu. Je napsána v jazyce C++ a vyuĹľĂvá CUDA architekturu. +Slibovaná rychlost komprese je vĂce neĹľ 1 GB/s. Tato knihovna nabĂzĂ jak ztrátovou tak i bezztrátovou kompresi, kde ztrátová zohledĹuje fakt, +Ĺľe se jedná o obrazy z mikroskopu a uĹľivatel si mĹŻĹľe zvolit maximálnĂ chybu, kterou bude tolerovat. +AutoĹ™i knihovny definuji tzv. WNL (\emph{within noise level}) mĂłd ztrátovĂ© komprese, kde kvantizaÄŤnĂ krok je roven šumu v obraze. +V tomto mĂłdu je chyba, vzniklá ztrátovou kompresĂ, mnohem menšà neĹľ šum nacházejĂcĂ se v obraze. KompresnĂ pomÄ›ry bezztrátovĂ© a WNL komprese mĹŻĹľeme vĂdÄ›t na Obrázku \ref{img:compressionComp}. \image{0.65}{compressionComparsionBars.pdf}{img:compressionComp}{PorovnánĂ kompresnĂch pomÄ›rĹŻ rĹŻznĂ˝ch vzorkĹŻ} -Vliv ztrátovĂ© komprese na obraz byl testován na datasetu ebrya octomilky obecnĂ©, metodou segmentaÄŤnĂho pĹ™ekrĂ˝vánĂ. Testovalo se vzhledem k originálnĂmu -obrazu, a hodnota 1 znamená, Ĺľe se obrazy dokonale pĹ™ekrĂ˝vajĂ. Na Obrázku \ref{img:segoverlap}, mĹŻĹľeme, Ĺľe pĹ™ekryv klesá aĹľ pĹ™i velkĂ˝ch komrpesnĂch pomÄ›rech. -PĹ™ekryv pro WNL je tĂ©měř dokonalĂ˝ 0,996. +Vliv ztrátovĂ© komprese na obraz byl testován na datasetu embrya octomilky obecnĂ©, metodou segmentaÄŤnĂho pĹ™ekrĂ˝vánĂ. Byl testován komprimovanĂ˝ obraz s originálnĂm +obrazem, a hodnota 1 znamená, Ĺľe se obrazy dokonale pĹ™ekrĂ˝vajĂ. V grafu na Obrázku \ref{img:segoverlap}, mĹŻĹľeme vidÄ›t, Ĺľe pĹ™ekryv klesá aĹľ pĹ™i velkĂ˝ch +kompresnĂch pomÄ›rech. PĹ™ekryv pro WNL mĂłd je tĂ©měř dokonalĂ˝ 0,996. \image{0.65}{noise_overlap.pdf}{img:segoverlap}{Vliv ztrátovĂ© komprese na kvalitu obrazu} -PouĹľitĂ˝ bezztrátovĂ˝ algoritmus se skládá ze dvou částĂ. V prvnà části se provede predikce hodnoty pixelu vzhledem k hodnotám jeho sousedĹŻ a v -druhĂ© části jsou chyby predikce zakĂłdovány pomocĂ RLE a Huffmana. Bezztrátová komprese dosáhla kompresnĂho pomÄ›ru 2,7 a pokud je pouĹľita WNL komprese -dostáváme se aĹľ na kompresnĂ pomÄ›r 5, a chyba lokalizace jedinĂ© molekuly v obrazu vstoupla pouze o 4\%. (Bylo testováno na datasetu zĂskanĂ©m pomocĂ -Single-Molecule Localization Microscopy, rozlišenĂ 2-25 nm). +PouĹľitĂ˝ bezztrátovĂ˝ algoritmus se skládá ze dvou částĂ. V prvnà části se provede predikce hodnoty pixelu vzhledem k hodnotám jeho sousednĂch pixelĹŻ a v +druhĂ© části jsou chyby predikce zakĂłdovány pomocĂ RLE a Huffmana. + +Bezztrátová komprese dosáhla kompresnĂho pomÄ›ru 2,7 kdeĹľto ztrátová WNL komprese dosahuje kompresnĂho pomÄ›ru 5. Chyba lokalizace jedinĂ© molekuly v obrazu vstoupla pouze o 4\%. (Bylo testováno na datasetu zĂskanĂ©m pomocĂ Single-Molecule Localization Microscopy, rozlišenĂ 2-25 nm). -% \bibliography{citations} -% \bibliographystyle{ieeetr} +\bibliography{citations} +\bibliographystyle{ieeetr} \end{document} \ No newline at end of file