JPEG

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
JPEG
Přípona souboru .jpg, .jpeg, .jpe
.jif, .jfif, .jfi
Typ internetového média image/jpeg
Type code JPEG
Uniform Type Identifier public.jpeg
Magické číslo ff d8
Tvůrce Joint Photographic Experts Group
Otevřený formát? ano
Fotografie květiny komprimovaná se vzrůstajícím komprimačním poměrem zleva doprava.

JPEG (vyslovováno originálně džeipeg, ale užívá se též počeštěné výslovnosti jépeg nebo jpeg) je standardní metoda ztrátové komprese používané pro ukládání počítačových obrázků ve fotorealistické kvalitě. Formát souboru, který tuto kompresi používá, se také běžně nazývá JPEG. Nejrozšířenější příponou tohoto formátu je .jpg, .jpeg, .jfif, .jpe, nebo tato jména psána velkými písmeny.

Skutečným názvem typu souboru je JFIF, což znamená JPEG File Interchange Format. Zkratka JPEG znamená Joint Photographic Experts Group, což je vlastně konsorcium, které tuto kompresi navrhlo.

Když se běžně hovoří o souboru JPEG, míní se tím většinou soubor JFIF, nebo soubor Exif JPEG. Existuje však více formátů souborů založených na kompresi JPEG, například JNG.

JPEG/JFIF je nejčastější formát používaný pro přenášení a ukládání fotografií na World Wide Webu. Není však vhodný pro perokresbu, zobrazení textu nebo ikonky, protože kompresní metoda JPEG vytváří v takovém obrazu viditelné a rušivé artefakty. Pro takové účely se většinou používají soubory PNG a GIF. Protože má GIF pouze 8 bitů na pixel, není vhodný pro barevné fotografie, PNG je možné použít pro ukládání fotografií, ale výsledná velikost souboru je nevhodná pro publikování na webu.

MIME typ pro JFIF je image/jpeg (definované v RFC 1341).

Ukázka postupu JPEG kodeku[editovat | editovat zdroj]

DCT převede blok vstupních hodnot 8x8 na jejich lineární kombinaci.
Cikcak schéma postupného čtení hodnot z bloku pro optimální využití RLE.

Většina ze široké škály voleb komprese JPEG standardu se téměř nepoužívá. Následuje krátký popis běžnějších metod kódování. Celý proces se skládá z několika kroků:

  1. Obrázek je převeden do barevného modelu YCbCr. Jednotlivé složky (jasové a chrominační) jsou pak zpracovávány samostatně.
  2. Snížení přesnosti informací o barvě (podvzorkování barvonosných složek).
  3. Složky obrázku jsou následně rozděleny do bloků o velikosti 8x8 pixelů. A pro každý blok se provede dvourozměrná diskrétní cosinová transformace (2D DCT). DCT je diskrétní transformace, která na rozdíl od DFT produkuje pouze reálné koeficienty. Díky separabilitě 2D DCT, lze vypočítat:
     2D DCT = DCT\{DCT\{f(x,y)\}\}
    Blok 8x8 se tak vyjádří jako složení signálů o různé frekvenci. Kde je stejnosměrná hodnota signálu zastoupena v levém horním rohu bloku matice.
  4. Nad bloky se provede kvantizace. Lidský zrak je citlivý k relativně malé změně v jasu nebo v barvě na poměrně velké ploše. V rozlišování konkrétní síly rychle se měnícího jasu (vysokofrekvenční změny) je však mnohem horší. To nám umožňuje informace o takovýchto změnách vynechat. Výsledek 2D DCT se vydělí kvantizační maticí (tabulkou) a zaokrouhlí. Hodnoty v kvantizační tabulce, kterými se budou násobit hodnoty vysokofrekvenčních změn, jsou takové, aby po vydělení původní hodnoty hodnotou z tabulky a zaokrouhlení vyšla nula nebo malé číslo. Kvantizační matice je pro celý obrázek shodná.
  5. Výsledná data v bloku se postupně vyčítají metodou zig-zag a data dále komprimují bezeztrátově nejprve pomocí Run-length encoding (RLE) a pak Huffmanovým kódováním nebo pomocí Aritmetického kódování.
  6. Stejnosměrná hodnota bloků je přenášena, či uložena zvlášť a slouží pro vytvoření malého náhledu na obrázek.

Před zobrazením obrázku je postup opačný:

  1. Nejdříve proběhne dekomprese použitých bezeztrátových metod.
  2. Prvky bloku 8x8 jsou vynásobeny příslušnými prvky kvantizační matice.
  3. Z toho se následně vypočítá inverzní 2D DCT(2D IDCT).
  4. Sloučit bloky jednotlivých složek do matic, které přísluší jednotlivým složkám obrazu.
  5. Protože došlo k snížení vzorků barevné informace, je potřeba je dopočítat a doplnit tak, aby matice Y,Cb,Cr měly stejný rozměr.
  6. Barevná transformace YCbCr například na RGB.

Použití[editovat | editovat zdroj]

JPEG je vhodný pro fotografické snímky nebo malby realistických scenérií s hladkými přechody v tónu a barvě. V tomto případě poskytuje mnohem menší velikosti souboru než čistě bezztrátové metody jako PNG, přičemž zachovává stále dobrou kvalitu obrazu. Formát JPEG je často srovnáván s GIF - tato srovnaní jsou velmi problematická, protože GIF nikdy nebyl určen pro fotografické obrazy, je limitován na 256 barev, a konečně byl překonán formátem PNG, který je také vhodný pro fotografické obrazy, je bezeztrátový, za cenu větších souborů. Použití na webu - Formát JPEG byl spolu s formátem GIF běžně nejpoužívanějším formátem pro kompresi obrázků na webu, jako jsou designové prvky a loga. V dnešní době je vytlačován formátem PNG, zejména v oblasti designových prvků stránek, jelikož jak již bylo řečeno, tento formát je bezeztrátový a aktuálně, kdy obecně průměrná rychlost připojení internetu u běžných uživatelů narůstá, nehraje větší velikost souborů ve formátu PNG tak významnou roli jako dříve, navíc při použití osmibitových barev ve formátu PNG není rozdíl ve velikosti u srovnatelně kvalitních obrázků v JPEG a PNG zas tak velký. V neposlední řadě také formát PNG podporuje oproti JPEG označení určitých barev v obrázku jako průhledných (toto umí i formát GIF), což je při tvorbě designu webových stránek bezesporu velmi užitečná věc. Zhruba od května 2014 APU od AMD pro socket AM1 mají hardwarový dekodér pro tento formát.[1]

Další ztrátové metody[editovat | editovat zdroj]

Novější ztrátové kompresní metody, zvláště vlnková komprese, dávají ještě lepší výsledky. Nicméně JPEG je velmi dobře zavedený standard, s nímž je schopno pracovat mnoho aplikací. Mnoho vlnkových algoritmů je navíc patentováno, takže je obtížné nebo nemožné používat je v mnoha softwarových projektech. Komise JPEG vytvořila vlastní standard na bázi vlnek zvaný JPEG 2000, od kterého se očekávalo, že nahradí originální standard JPEG, což se však nakonec nestalo. Další neúspěšný pokus byla „Wavelet image compression“ od „M software“. Poslední nápad pro náhradu JPEG je použití algoritmu z video kodeku Dirac.

Reference[editovat | editovat zdroj]

  1. AMD aktivovala JPEG dekodér pro AM1 procesory

Externí odkazy[editovat | editovat zdroj]

Logo Wikimedia Commons
Wikimedia Commons nabízí obrázky, zvuky či videa k tématu