Informační systémy ve zdravotnictví ZS 2008/2009 Zoltán Szabó Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz č.dv.: 504, 5.p Dnešní přednáška Kódování, komprese 2 1
Komprese dat Cíl komprese: redukovat objem dat za účelem přenosu dat archivace dat Kvalita komprese: rychlost komprese symetrie/asymetrie kompresního algoritmu Symetrické algoritmy stejný čas potřebný pro kompresy i dekompresi Asymetrické algoritmy čas potřebný pro kompresi a dekompresi se liší 3 Míra komprese Kompresní poměr = př: ř 40/160 = 1/4 = 0,25 Komprimované Nekomprimované Ratio = 1 - kompresní poměr (úspora, udává kolik % ušetřilo) př: 1-0,25 = 0,75 = 75% Bit per pixel = velikost obrazu [bit] / počet pixelů v obraze př: 65536 / (256x256) = 1 bpp 4 2
Komprese dat bezztrátová - po kódování a dekódování je výsledek 100% shodný, nižší kompresní poměr požívají s výhradně pro kompresi textů a v případech, kdy nelze připustit ztrátu informace ztrátová - po kódování a dekódování dochází ke ztrátě obvykle vyšší kompresní poměr než bezztrátové lze použít pouze v případech p kdy ztráta je akceptovatelná (komprese obrazů, zvuku 5 Metody komprese jednoduché založené na kódování opakujících se posloupností znaků (RLE) statistické založené na četnosti výskytu znaků v komprimovaném souboru (Huffmanovo kódování, Aritmetické kódování) slovníkové založené na kodování všech vyskytujících se posloupností (LZW) transformační založené na ortogonálních popř. jiných transformacích (JPEG, waveletová komprese, fraktálová komprese) 6 3
RLE - kódování délkou běhu RLE (Run Length Encoding) Princip: opakující se symboly se kódují dvojicí Počet opakování Symbol Př. Vstup: Výstup: AAAABBCDDDDABD 4A2B1C4D1A1B1D Nevýhoda: pokud se znaky neopakují často nedochází ke kompresi, ale naopak k prodloužení kódovaného souboru 7 RLE - kódování délkou běhu pomocí escape sekvencí kódují se pouze opakující se sekvence delší než 3 znaky, kratší sekvence se zapisují přímo do výstupního souboru Př. Vstup: AAAABBCDDDDABD Výstup: #4ABBC#4DABD Výhoda: neprodlužuje soubor, kde není co komprimovat to zůstane v původní podobě Pozn.: escape - z množiny znaků je nutné vyčlenit symbol, který se nevyskytuje v komprimovaném souboru. Dále může nastat problém pokud je opakující se sekvence delší než 255 znaků (pokud kódujeme délku běhu na 8 bitech). Řešení závisí na konkrétní aplikaci Použití RLE: např. obrazový formát BMP 8 4
LZW (Lempel-Ziv-Welch) metoda Princip: vyhledávání á opakujících í se posloupností znaků, ukládání těchto posloupností do slovníku pro další použití a přiřazení jednoznakového kódu těmto posloupnostem. jednoprůchodová metoda (nevyžaduje předběžnou analýzu souboru) Při průchodu komprimovaným souborem se vytváří slovník (kde první položky jsou znaky původní abecedy a zbývající položky tvoří posloupnosti znaků obsažené v komprimovaném souboru. 9 LZW (Lempel-Ziv-Welch) metoda Algoritmus komprese a vytvoření slovníku Výsledný výstupní řetězec: 65 66 67 256 258 257 68 259 10 5
Huffmanovo kódování algoritmus navržen v Davidem Huffmanem v roce 1952 kódové symboly mají proměnnou délku Princip: Metoda je založená na stanovení četnosti výskytů jednotlivých znaků v kódovaném souboru a kódování znaků s největší četností slovem s nejkratší délkou. Algoritmus kódování: 1. Zjištění četnosti jednotlivých znaků v kódovaném souboru 2. Vytvoření binárního stromu (Huffmanova kódu jednotlivých znaků) 3. Uložení stromu 4. Nahrazení symbolů jednotlivými kódy (posloupností bitů) 11 Příklad: ABRAKADABRA A 1 R 01 B 001 K 0001 D 0000 10010110001100001001011 0 (2) 0 1 (4) 0 1 (6) 0 (11) 1 Algoritmus vytvoření stromu D K B R A (1) (1) (2) (2) (5) 1 12 6
Dekomprese 1. Načtení a obnovení stromu, algoritmus je popsán při kompresi X 2. Vlastní dekomprese: Nahrazení kódů původními znaky. Příklad: 10010110001100001001011 A 1 R 01 B 001 K 0001 D 0000 ABRAKADABRA 13 Zpracování biosignálu Digitální zpracování A/D převod EKG Diagnosticky podstatné od 0,5 do 150 Hz Vzorkování EKG 250 až 1000 vzorků/s. (pro klinické účely doporučeno 500 vzorků/s) Filtrace Šum způsobený napěťovými interferencemi, kolísáním isoelektrické linie, svalové artefakty, apod. Doporučena hranice 0,05 Hz (aby nedošlo ke zkreslení T vlny a ST úseku) Speciální problém odstranění síťové frekvence 50 Hz Detekce pozdních potenciálů (ve srovnání s EKG mají velmi malou amplitudu a vysoký frekvence min. 1000 Hz až 8000 Hz) kumulační metody odstranění šumu. 7
Zpracování biosignálu Komprese dat Vzorkování vs. Množství dat Bezeztrátová vs. ztrátová komprese Rozpoznání začátku a konců ů jednotlivých vln a kmitů Např.: Prahování Korelace P R Q S Počítačové systémy pro analýzu EKG T Základními parametry jsou úseky a intervaly, z těchto jsou pak odvozeny další parametry (různé poměry jednotlivých kmytů komplexu QRS), gradienty, integrály a úhly. Běžně dnes více než 300 ukazatelů. Zpracování obrazu RTG, CT, NMR, PET, SPECT, UZ, termovize Pořízení obrazu Zobrazení Zpracování Uchování Obecný systém pro zp pracování obrazu 8
Zpracování obrazu Základní pojmy CCD (Charge Coupled Devices nábojově vázané struktury) obsahuje světlocitlivé prvky, které generují množstvý elektrického náboje úměrné počtu dopadajících fotonů Rozlišovací schopnost, DPI (Dots Per Inch) Bitová hloubka obrazu (2 8, u CT 2 10 =1024 úrovní) Šedotónový, černobílý, barevný, pseudobarevný obraz Zpracování obrazu JPEG (Joint Photographic Experts Group) 9
Zpracování obrazu Originál 243 054 bajtů Komprimovaný ~30:1 7 977 bajtů X=imread('Kobzanova.bmp','bmp'); imwrite(x,'q50.jpg','jpg','quality',50); Zpracování obrazu Originál 243 054 bajtů Komprimovaný ~70:1 3 400 bajtů X=imread('Kobzanova.bmp','bmp'); imwrite(x,'q10.jpg','jpg','quality',10); 10
Zpracování obrazu Originál 243 054 bajtů Komprimovaný ~100:1 2 415 bajtů X=imread('Kobzanova.bmp','bmp'); imwrite(x,'q4.jpg','jpg','quality',4); Zpracování obrazu Čtyři modifikace: bezeztrátový mód kódování sekvenční kódování progresivní kódování hierarchické kódování r = Predikce - x vstup Prediktor VLC výstup C B A x Predikce A B C A+B-C A+(B-C)/2 B+(A-C)/2 (A+B)/2 Kódovací tabulka 11
Zpracování obrazu Čtyři modifikace: bezeztrátový mód kódování sekvenční kódování progresivní kódování hierarchické kódování S q v,u 8x8 blok DCT Kvantizátor VLC výstup S x,y Kvantizaèní tabulka Kódovací tabulka S vu v,u S vu ( 2x + 1) uπ ( 2y 1) vπ 1 7 7 + CuCv S yx cos cos 4 x= 0 y= 0 16 16 = q S S vu = round Q vu vu 1 2 kde Cu, Cv = 1 pro u, v = 0 jinak Zpracování obrazu Čtyři modifikace: bezeztrátový mód kódování sekvenční kódování progresivní kódování hierarchické kódování 12
Zpracování obrazu Čtyři modifikace: bezeztrátový mód kódování sekvenční kódování progresivní kódování hierarchické kódování 4 Encode - + 2 + - + + 2 + 2 + Decode Encode Decode Encode 13