Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
\documentclass[a4paper,12pt]{article}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{mathrsfs}
\usepackage{enumitem}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{dirtytalk}
%\usepackage{titlesec}
%\newcommand{\sectionbreak}{\clearpage}
%\setlist{nosep}
\newcommand{\image}[3]{\begin{figure}[h!] \centering \includegraphics[width=#3\linewidth]{#1} \caption{#2} \end{figure}}
\author{Moravec Vojtěch}
\title{Semestrální projekt}
\date{2018/2019}
\begin{document}
% \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. \ref{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:
\begin{figure}[h!]
\centering
\begin{tabular}{| l | c | l |}
\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
Bgr24 & 3 & 3 $\times$ 8 bit unsigned \\\hline
Bgr48 & 6 & 3 $\times$ 16 bit unsigned \\\hline
Bgr96Float & 12 & 3 $\times$ IEEE float \\\hline
Bgra32 & 4 & 4 $\times$ 8 bit unsigned \\\hline
Gray64ComplexFloat & 8 & 2 $\times$ IEEE float (komplexní a reálná část) \\\hline
Bgr192ComplexFloat & 24 & 8 $\times$ IEEE float (komplexní a reálná část) \\\hline
Gray32 & 4 & 32 bit signed \textit{planovaný} \\\hline
Gray64 & 8 & 64 bit float \textit{planovaný} \\\hline
\end{tabular}
\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.
\bibliography{citations}
\end{document}