JPEG 2000: Porovnání verzí
Smazaný obsah Přidaný obsah
m sjednocení infoboxu; kosmetické úpravy |
m opravy některých nesmyslů, ale ještě to chce upravit |
||
Řádek 28:
'''JPEG 2000''' je standard pro [[komprese dat|kompresi]] obrazu založený na [[diskrétní vlnková transformace|vlnkové transformaci]]. Umožňuje použít [[ztrátová komprese|ztrátovou]] i [[bezeztrátová komprese|bezeztrátovou]] kompresní metodu. Při stejném kompresním poměru poskytuje lepší kvalitu než starší standard [[JPEG]]. Naopak při použití bezeztrátové metody dosahuje většinou lepšího kompresního poměru formát [[Portable Network Graphics|PNG]].
U ztrátové komprese lze při kompresi specifikovat jednu či více kvalit (v závislosti na použitém kodéru, např. zadáním cílových hodnot [[PSNR]]), nebo přesně zadat jeden či více datových toků (případně kompresních poměrů, v závislosti na kodéru). Vytvořený codestream je pak hierarchicky rozdělen do několika vrstev s postupně se zvyšující kvalitou / datovým tokem. To je zásadní rozdíl proti předcházející metodě JPEG, ve které nelze předem (bez provedení komprese) přesně datový tok určit, ani nelze do jednoho toku uložit obraz ve více kvalitách.
* Přípona souborů: <code>.jp2</code> nebo <code>.j2c</code>▼
▲* Přípona souborů: <code>.jp2</code> (kontejner JP2) nebo <code>.j2c</code> (čistý codestream)
* MIME typ: <code>image/jp2</code>
== Postup komprese ==
Řádek 52 ⟶ 53:
</math>.
RCT lze provést pouze s celočíselnou aritmetikou. Po převodu se každá složka komprimuje samostatně. Obraz je rozřezán na pravidelné
=== Rozklad ===
Řádek 58 ⟶ 59:
[[Soubor:Wavelet Bior2.2.svg|náhled|vpravo|Biortogonální spline vlnka 2,2 (CDF 5/3) použitá ve standardu JPEG 2000]]
Následuje komprese každé dlaždice odděleně. K tomu se použije
Diskrétní vlnkovou transformací je obraz reprezentován v několika rozlišeních (tzv. pyramida rozlišení). To dává kodéru možnost organizovat codestream takovým způsobem, že se na straně příjemce postupně zvyšuje rozlišení dekódovatelného obrazu. Reprezentace přitom není redundantní. Každé vyšší rozlišení se složí ze čtyřech podpásem předcházejícího rozlišení.
[[Kvantizace]] jednotlivých podpásem – reálné koeficienty (v pohyblivé řádové čárce) se kvantizují na celá čísla pomocí [[uniformní kvantizace]], krok kvantizace lze volit zvlášť pro každé podpásmo (a tím též
=== Kódování koeficientů ===
Po kvantizaci je každé podpásmo rozděleno na
[[Soubor:Jpeg2000 EBCOT.png|vpravo]]
Řádek 70 ⟶ 71:
* Nejprve se rozdělí koeficienty do [[bitová rovina|bitových rovin]].
* Bitové roviny obsahující pouze nuly jsou přeskočeny (uchová se jen jejich počet), začne se první rovinou obsahující alespoň jednu jedničku.
* Bity se z roviny
* Každá rovina je pak kódována ve třech průchodech: ''Significance Propagation'', ''Magnitude Refinement'' a ''Cleanup Pass''. Prvním průchodem je vždy ''Cleanup Pass''.
Bit je
* '''Significance Propagation''' – Zakóduji ty bity, které nejsou důležité, ale sousedí s alespoň jedním důležitým (v některém z 8 směrů).
* '''Magnitude Refinement''' – Zakóduji bity z míst, které se byly v minulých rovinách důležité.
* '''Cleanup Pass''' – Zakóduji všechny zbylé bity.
Znaménko se kóduje společně s prvním bitem.
Takto získané bity se kódují binárním kontextovým [[aritmetické kódování|aritmetickým kodérem]],
Kontext
Výsledný proud bitů je rozdělen na pakety
Paket má hlavičku, kde jsou informace o obsažených blocích: počet nulových a obsazených bitových rovin, zdali blok vůbec obsahuje data a
Pomocí vypouštění méně důležitých paketů se řídí kvalita, při bezeztrátové kompresi se žádný paket vypustit nesmí. To je zásadní rozdíl proti metodě [[JPEG]], ve které je kvalita pevně svázána s kompresí. Pro změnu kvality je u JPEGu třeba celý obraz znovu zkomprimovat. U JPEG 2000 rekomprese nutná není, dochází pouze k reorganizaci codestreamu, což není výpočetně náročné.
Pakety ze všech podpásem jsou složeny do tzv. vrstev
Standard však nedefinuje způsob, jak najít optimální délku paketu pro všechny bloky.
Řádek 97 ⟶ 96:
* Pro každý bit kódovaný EBCOT kodérem se změří zlepšení kvality.
* Vyrobí se graf počtu bitů ku kvalitě pro každý blok.
* Tam, kde strmost grafu (nárůst kvality na přidaný bit) klesne pod určitou úroveň danou kvalitou, se zbylé bity
* Při kompresi na určitou velikost se vždy
== Další vlastnosti JPEG 2000 ==
Řádek 108 ⟶ 107:
== Srovnání s JPEG ==
Pro střední stupeň komprese poskytuje JPEG 2000 asi o 20 % lepší kompresi než JPEG, pro nízké nebo vysoké stupně komprese může být zlepšení ještě větší. Vhodné pro JPEG 2000 jsou velké snímky, nebo snímky s málo kontrastními okraji (například lékařské snímky). Kodér
JPEG 2000 (stejně jako JPEG) osciluje ve spektrální doméně (algoritmus se snaží na ostrou hranu napasovat vlnovou funkci), což znamená, že kolem ostrých hran i zde budou viditelné artefakty. Obrazy s vysokým poměrem komprese jsou rozmazanější než originál (neboť ztrátovost komprese se projeví nejvíce u vysokofrekvenční složky).
|