DCT - diskrétní kosinová transformace

Teorie:

Diskrétní kosinová transformace je speciálním případem diskrétní Fourierovy transformace. Při výpočtu diskrétní Fourierovy transformace dochází (jako v případě transformací spojitých funkcí) k periodickému rozšíření signálu na celou množinu R. Můžeme však záměrně signál rozšířit periodicky tak, že vznikne funkce sudá. Ta je, kromě jiného, vhodná proto, že je spojitá. Při výpočtu Four. koeficientů se pak vyruší sinusové složky a zůstanou pouze složky kosinusové. A toho lze využít ke snížení počtu výpočtů potřebných koeficientů. Chcete vědět víc?

Spektra

Spektra generovaných obrázků jsou počítána funkcí dct2 v Matlabu. Spektra jsou počítána ze svetělnosti (kanál Y). Kvůli vysoké stejnosměrné složce je tato složka potlačena a pro vyniknutí detailů je celé spektrum vynásobeno koeficientem 2.

Obrázek Obr1 Kosinový obraz obrázků

=>

Obr2
=>
Obr3
=>
Obr4
=>
Obr5
=>

Výpis programu v matlabu:

dct_obraz.zip

Kosinová spektra podle JPEGu

Je zde pěkně zřetelná jistá lokalizace spektra k místu na obrázku.

Obrázek Obr1 Kosinový obraz obrázků (JPG)

=>

Obr2
=>
Obr3
=>
Obr4
=>
Obr5
=>

Výpis programu v matlabu:

dct_al_jpeg.zip

Komprese obrázků

Pro srovnání rozdílů mezi jednotlivými transformacemi jsme sepsali malý prográmek v Matlabu, který komprimoval naše vygenerované obrázky. Pro všechny obrázky jsou nastaveny stejné parametry ( koeficient prahování ). Komprimován je celý obrázek a ne čtverečky 8x8, jak tomu bylo u JPEGu. Proto na obrázcích nejsou artefakty známé z JPEGu.

OBR1
Obr1 před kompresí

Obr1po kompresi

Obrázek sestavený ze zahozených koeficientů
Statistická data - Matlab
Velikost obrázku před kompresí:
1843200 B

Velikost obrázku po kompresi:
28200 B

Kompresní poměr:
1 : 65,36

Ušetřené místo v procentech
98,470055%


OBR2

Obr2 před kompresí

Obr2 po kompresi

Obrázek sestavený ze zahozených koeficientů
Statistická data - Matlab
Velikost obrázku před kompresí:
1843200 B

Velikost obrázku po kompresi:
111392 B

Kompresní poměr:
1 : 16,54

Ušetřené místo v procentech
93,9566%


OBR3

Obr3 před kompresí

Obr3 po kompresi

Obrázek sestavený ze zahozených koeficientů
Statistická data - Matlab
Velikost obrázku před kompresí:
1843200 B

Velikost obrázku po kompresi:
19376 B

Kompresní poměr:
1 : 95,1279

Ušetřené místo v procentech
98,9487%


OBR4

Obr4 před kompresí

Obr4 po kompresi

Obrázek sestavený ze zahozených koeficientů
Statistická data - Matlab
Velikost obrázku před kompresí:
1843200 B

Velikost obrázku po kompresi:
192 B

Kompresní poměr:
1 : 9600

Ušetřené místo v procentech
99,98958%


Obr5 před kompresí

Obr5 po kompresi

Obrázek sestavený ze zahozených koeficientů
Statistická data - Matlab
Velikost obrázku před kompresí:
1843200 B

Velikost obrázku po kompresi:
4072 B

Kompresní poměr:
1 : 452,6523

Ušetřené místo v procentech
99,77908%

Výpis programu v Matlabu:


komprese_dct.zip

Závěrem:

Jak je vidět, tak DCT transformace a na ní postavená komprese poskytuje velmi dobré kompresní možnosti. Data v naší ukázkové kompresi jsou sice zajímavá, ale je nutné si uvědomit že velikosti v naší tabulce postrádají jakoukoliv hlavičku. Pro formát "schopný života" by nároky na paměťové místo vzrostly asi tak dvojnásobně.(Hlavička souboru+ režijní informace)

Leoš Maršálek, Jan Skapa © 2003 Leos.Marsalek@tiscali.cz, jeniczek.s@seznam.cz