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

Formatted document.

parent 21d3a549
No related branches found
No related tags found
No related merge requests found
@manual{czi_spec, @manual{czi_spec,
organization = "Carl Zeiss Microscopy GmbH", organization = "Carl Zeiss Microscopy GmbH",
title = ZISRAW (CZI) File Format", title = "ZISRAW (CZI) File Format",
year = 2016, year = 2016,
number = "MC33879", number = "MC33879",
note = "Version 1.2.2", note = "Version 1.2.2",
...@@ -18,3 +18,9 @@ ...@@ -18,3 +18,9 @@
eprint = {https://www.biorxiv.org/content/early/2017/07/21/164624.full.pdf}, eprint = {https://www.biorxiv.org/content/early/2017/07/21/164624.full.pdf},
journal = {bioRxiv} 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
No preview for this file type
...@@ -12,83 +12,47 @@ ...@@ -12,83 +12,47 @@
\usepackage{amssymb} \usepackage{amssymb}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{dirtytalk} \usepackage{dirtytalk}
\usepackage{siunitx}
%\usepackage{titlesec} %\usepackage{titlesec}
%\newcommand{\sectionbreak}{\clearpage} %\newcommand{\sectionbreak}{\clearpage}
%\setlist{nosep} %\setlist{nosep}
\newcommand{\image}[4]{\begin{figure}[h!] \centering \includegraphics[width=#1\linewidth]{figures/#2} \label{#3} \caption{#4} \end{figure}} \newcommand{\image}[4]{\begin{figure}[h!] \centering \includegraphics[width=#1\linewidth]{figures/#2} \caption{#4} \label{#3} \end{figure}}
\newcommand{\bThreed}{B$^3$D} \newcommand{\bThreed}{B$^3$D }
\author{Moravec Vojtěch} \author{Moravec Vojtěch}
\title{Semestrální projekt} \title{Semestrální projekt}
\date{2018/2019} \date{2018/2019}
\begin{document} \begin{document}
% \maketitle %\maketitle
% \newpage %\newpage
\section{ZISRAW (CZI) formát} \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}. 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 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ů. 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.
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.} 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}.
\subsection{CZI segmenty}
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ů.
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í: 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.
\begin{itemize} V souboru nalezneme speciální segmenty, které fungují jako adresáře pro segmenty s obrazy a přílohami.
\item \textbf{ID} - 16 B, unikátní ANSI kód s prefixem \say{ZISRAW} 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.
\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) Obrazy se nacházejí v segmentech, označené jako \mbox{ZISRAWSUBBLOCK}. Kromě samotných pixelů zde najdeme i metadata, specifické pro daný obraz.
\end{itemize} 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}).
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} 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}.
\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:
\begin{figure}[h!] \begin{figure}[h!]
\centering \centering
\begin{tabular}{| l | c | l |} \begin{tabular}{| l | c | l |}
\hline \hline
Typ & Byte/Pixel & Poznámka \\\hline Typ & Byte/Pixel & Poznámka \\\hline
Gray8 & 1 & 8 bit unsigned \\\hline Gray8 & 1 & 8 bit unsigned \\\hline
Gray16 & 2 & 16 bit unsigned \\\hline Gray16 & 2 & 16 bit unsigned \\\hline
Gray32Float & 4 & 32 bit IEEE float \\\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ě ...@@ -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 Gray32 & 4 & 32 bit signed \textit{planovaný} \\\hline
Gray64 & 8 & 64 bit float \textit{planovaný} \\\hline Gray64 & 8 & 64 bit float \textit{planovaný} \\\hline
\end{tabular} \end{tabular}
\caption{Tabulka podporovaných typů pixelu v CZI}
\label{tab:pixelTypes}
\end{figure} \end{figure}
Data pixelů v CZI souboru mohou být jak nekomprimovaná tak komprimovaná. Informaci o typu pixelu nalezneme v metadatech, které jsou společné pro všechny obrazy nacházející se v CZI souboru.
Nekomprimovaná data jsou streamem pixelů podle jejich typu. Specifikace povoluje komprimaci dat pixelů pomocí LZW, Mimo typ pixelu, nalezneme v těchto společných vlastnostech další zajímavé informace, některé jsou uvedeny v Tabulce \ref{tab:imageMetadata},
JPEG a Jpeg-Xr. nutno podotknout, že soubor nemusí tyto informace obsahovat.
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.
\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} \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. Tato sekce vychází z \cite{Balazs164624}, taktéž grafy jsou přebrány z této práce.
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, \bThreed je Open Source knihovna, řešící problém komprese obrazů z mikroskopu. Je napsána v jazyce C++ a využívá CUDA architekturu.
ž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 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,
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. ž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}. 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ů} \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 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
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. 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
Překryv pro WNL je téměř dokonalý 0,996. 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} \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 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 a pokud je použita WNL komprese druhé části jsou chyby predikce zakódovány pomocí RLE a Huffmana.
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). 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} \bibliography{citations}
% \bibliographystyle{ieeetr} \bibliographystyle{ieeetr}
\end{document} \end{document}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment