Portable Network Graphics: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
→‎Historie a vývoj: +podpora Exif
m vylepšení v závorce hned za názvem
značky: editace z mobilu editace z mobilní aplikace
Řádek 36: Řádek 36:
| caption2 = …nahoře bílé pozadí, dole šachovnice.
| caption2 = …nahoře bílé pozadí, dole šachovnice.
}}
}}
'''PNG''' (''Portable Network Graphics'' – anglicky ''přenosná síťová grafika''; oficiální výslovnost zkratky je „ping“) je [[grafický formát]] určený pro [[bezeztrátová komprese|bezeztrátovou kompresi]] [[rastrová grafika|rastrové grafiky]]. Byl vyvinut jako zdokonalení a náhrada formátu [[GIF]], který byl [[patent]]ově chráněný ([[LZW]] [[algoritmus]]), dnes jsou patenty prošlé. PNG nabízí podporu 24 [[bit]]ové [[barevná hloubka|barevné hloubky]], nemá tedy jako GIF omezení na maximální počet 256 barev současně. PNG tedy do jisté míry nahrazuje GIF, nabízí více barev a lepší kompresi (algoritmus [[Deflate]] + filtry). Navíc obsahuje osmibitovou průhlednost (tzv. [[alfa kanál]]), to znamená, že obrázek může být v různých částech různě průhledný (tzv. [[RGBA]] barevný model). Nevýhodou PNG oproti GIF je praktická nedostupnost jednoduché [[animace]], pro kterou sice existují 2 návrhy [[APNG]] a [[MNG]], které se ale zatím neprosadily. PNG se stejně jako formáty [[GIF]] a [[JPEG]] používá na [[Internet]]u.
'''PNG''' (oficiální výslovnost „ping“, ''Portable Network Graphics'', česky ''přenosná síťová grafika'') je [[grafický formát]] určený pro [[bezeztrátová komprese|bezeztrátovou kompresi]] [[rastrová grafika|rastrové grafiky]]. Byl vyvinut jako zdokonalení a náhrada formátu [[GIF]], který byl [[patent]]ově chráněný ([[LZW]] [[algoritmus]]), dnes jsou patenty prošlé. PNG nabízí podporu 24 [[bit]]ové [[barevná hloubka|barevné hloubky]], nemá tedy jako GIF omezení na maximální počet 256 barev současně. PNG tedy do jisté míry nahrazuje GIF, nabízí více barev a lepší kompresi (algoritmus [[Deflate]] + filtry). Navíc obsahuje osmibitovou průhlednost (tzv. [[alfa kanál]]), to znamená, že obrázek může být v různých částech různě průhledný (tzv. [[RGBA]] barevný model). Nevýhodou PNG oproti GIF je praktická nedostupnost jednoduché [[animace]], pro kterou sice existují 2 návrhy [[APNG]] a [[MNG]], které se ale zatím neprosadily. PNG se stejně jako formáty [[GIF]] a [[JPEG]] používá na [[Internet]]u.


Formát PNG nepodporuje systém kladení barev [[CMYK]].
Formát PNG nepodporuje systém kladení barev [[CMYK]].

Verze z 24. 1. 2018, 00:35

Šablona:Infobox formát souboru

<div class="thumbinner" style=" width:Chyba Lua v modulu Modul:Image na řádku 22: attempt to index local 'fileTitle' (a nil value).px">
{{{obrázek1}}}{{{obrázek2}}}

PNG (oficiální výslovnost „ping“, Portable Network Graphics, česky přenosná síťová grafika) je grafický formát určený pro bezeztrátovou kompresi rastrové grafiky. Byl vyvinut jako zdokonalení a náhrada formátu GIF, který byl patentově chráněný (LZW algoritmus), dnes jsou patenty prošlé. PNG nabízí podporu 24 bitové barevné hloubky, nemá tedy jako GIF omezení na maximální počet 256 barev současně. PNG tedy do jisté míry nahrazuje GIF, nabízí více barev a lepší kompresi (algoritmus Deflate + filtry). Navíc obsahuje osmibitovou průhlednost (tzv. alfa kanál), to znamená, že obrázek může být v různých částech různě průhledný (tzv. RGBA barevný model). Nevýhodou PNG oproti GIF je praktická nedostupnost jednoduché animace, pro kterou sice existují 2 návrhy APNG a MNG, které se ale zatím neprosadily. PNG se stejně jako formáty GIF a JPEG používá na Internetu.

Formát PNG nepodporuje systém kladení barev CMYK.

Podle MIME má PNG přidělen typ image/png.

Historie a vývoj

Impuls pro vytvoření formátu PNG přišel v roce 1994, kdy po dohodě firem Unisys a CompuServe došlo k licenčnímu zpoplatnění použití formátu GIF. Upravená licence se pak začala vztahovat nejen na velké firmy, ale i na programátory vyvíjející freeware, shareware a také programy šířené pod volnou licencí(GPL). Tato politika vyvolala velkou vlnu odporu, která vyvrcholila akcí „Burn All GIFs“, které se zúčastnily jak velké softwarové firmy, tak samotní programátoři na svých soukromých stránkách.

16.1.1995 firma CompuServe zahájila vývoj nového grafického formátu GIF, který měl nahradit stávající GIF. Nový formát pod názvem GIF24 neměl být zatížený patenty (změna komprimačního algoritmu), maximální počet barev měl být zvýšen z 256 na 16 milionů.

Současně s vývojem GIF24, avšak ne u žádné softwarové firmy, se začalo s vývojem naprosto nového formátu, který neměl být vázán žádným patentem ani vztahem k žádné firmě a předčil by tehdejší grafické formáty (především GIF, JPEG). Původní název zněl PBF (Portable Bitmap Format), ale posléze byl změněn na PNG (Portable Network Graphics).

Technické detaily

Hlavička souboru

Hlavička souboru PNG má délku 8 bytů a je v každém souboru stejná. Hexadecimální vyjádření: 89 50 4E 47 0D 0A 1A 0A

Byte Význam bytu
89 Jedná se o byte s nejvýše nastaveným bitem.Detekce podpory 8 bitového přenosu dat.
50 4E 47 Řetězec „PNG“ kódovaný v ASCII; slouží k identifikaci souborového formátu.
0D 0A (CR LF) Konec řádky v DOSu kódovaný v ASCII. Detekce náhrady za jinou sekvenci.
1A Byte zastavující výpis souboru v DOSu.
0A V UNIXu detekce konce přenosu (LF).

Chunk uvnitř souboru

Po hlavičce přichází série chunků, z nichž každý zprostředkovává jistou informaci o obrazu. Chunky deklarují sebe jako „rozhodující“ nebo „pomocné“. Pokud se program setká s pomocným chunkem, kterému nerozumí, může ho bezpečně ignorovat. Struktura tohoto chunku je založena tak, aby dovolovala slučitelnost PNG formátů se staršími verzemi.

Každý chunk má hlavičku specifické velikosti a typu. Pak ihned následují vlastní data, posléze probíhá kontrolní součet dat. Chunky jsou dány čtyřmi znaky v ASCII s vlastností case sensitive. Rozdílnost znaků (pátý bit je číselná hodnota) poskytuje možnost dešifrovat informaci o povaze chunku v případě jeho nerozeznatelnosti.

První znak signalizuje, zda je chunk rozhodující nebo ne. Pokud je první znak velké písmeno, chunk je rozhodující; pokud ne, jedná se o pomocný chunk. Rozhodující chunk obsahuje informaci, která je nezbytná ke čtení souboru. Pokud dekodér nerozezná rozhodující chunk, čtení souboru se buď přeruší, nebo je uživatel informován vhodným varováním.

Druhý znak informuje, zda je chunk „veřejný“ (jedná se o jednoúčelový chunk) nebo „privátní“ (není standardizován). Velké písmeno značí veřejný a malé privátní chunk. To zajistí, že veřejný a privátní znak chunku se nemohou nikdy vzájemně střetnout.

Třetí znak musí být velké písmeno přizpůsobené podle PNG specifikace. Rezervovaný pro budoucí expanzi. V případě malého písmene na pozici třetího znaku by měl dekodér jednat s tímto chukem jako s jakýmkoliv jiným neznámým.

Čtvrtý znak signalizuje jestli je chunk bezpečný ke kopírování pomocí editorů, které ho nerozeznají. Je-li čtvrtý znak malé písmeno, chunk může být bezpečně kopírován bez ohledu na rozsah modifikací souboru. Je-li čtvrtý znak velké písmeno, může být kopírován jen pokud se modifikace nedotýkají žádných kritických chunků.

Komprese

PNG používá dvoustupňovou bezeztrátovou kompresi:

  1. Před samotnou kompresí se snaží objevit běžné vzory (např. barevné pruhy, gradienty). Tento krok se nazývá filtering.
  2. Komprese – PNG ke kompresi používá metodu DEFLATE, tu využívá i zlib – knihovna pro kompresi souborů. DEFLATE kombinuje slovníkový algoritmus LZ77 a Huffmanovo kódování.

Prokládání

Ukázka prokládání Adam7 na obrázku o rozměrech 16×16 pixelů

PNG nabízí volitelné prokládání pomocí dvourozměrného sedmiprůchodového algoritmu Adam7. Jedná se o pokročilejší prokládání než jednorozměrné čtyřprůchodové prokládání u formátu GIF – umožňuje lepší zobrazení obrázku v dřívější fázi přenosu souboru, obzvlášť při použití interpolace, např. bikubické interpolace.[2]

Sedmiprůchodový algoritmus však obvykle zhoršuje kompresní poměr víc než jednodušší algoritmy.

Porovnání s jinými formáty

GIF

  • GIF podporuje nejvýš 8bitovou barevnou paletu (maximálně 256 barev). PNG podporuje i 24 bitů na pixel (8 bitů na kanál) a 48 bitů na pixel (16 bitů na kanál), což umožňuje lepší podání barev, jemnější barevné přechody atd. S přidaným alfa kanálem je k dispozici až 64 bitů na pixel.
  • PNG nabízí širší možnosti průhlednosti než GIF, včetně alfa kanálu.
  • Ve většině případů PNG dosahuje lepšího kompresního poměru než GIF. Jen u některých malých obrázků to je naopak.
  • GIF podporuje jednoduché animace. PNG sám o sobě nikoliv (podporují je odvozené, málo rozšířené formáty APNG a MNG, které byly za tím účelem vytvořeny).
  • Při konverzi z PNG na GIF dochází ke ztrátě kvality v případě, že PNG obsahuje víc než 256 barev (takové snížení barevné hloubky se obvykle projeví zmenšením souboru, což může vést k mylnému závěru, že GIF má lepší kompresi).
  • Prokládání v PNG umožňuje dřívější rozpoznání obsahu stahovaného obrázku než prokládání v GIF.
  • Oba formáty jsou podporované širokou softwarovou základnou.

JPEG

Porovnání JPEG a PNG: všimněte si roztřepených okrajů v JPEG oproti čistým okrajům PNG.

JPEG může vytvářet menší soubory než PNG pro fotografie a fotorealistické vizualizace, protože JPEG používá ztrátovou kompresi speciálně navrženou pro fotografii. PNG má ve stejné kvalitě až 5-10× větší soubory.

PNG je naopak lepší než JPEG pro obrázky obsahující text, čárovou grafiku, čisté barevné plochy a ostré rozhraní barev. JPEG nepodporuje průhlednost (indexové barvy, alfa kanál). Tam, kde se vyskytují jak fotografické, tak grafické prvky, je potřeba se rozhodnout mezi čistým zobrazováním bezeztrátového PNG, nebo malým souborem ztrátového JPEG.

JPEG je také špatným rozhodnutím pro archivování obrázků pro další zpracování a fotomontáž. To dělá PNG vhodnějším pro ukládání dočasných fotografií vyžadujících fotomontáž. Teprve finální fotografie určená k distribuci může být uložena jako JPEG se ztrátou detailů pouze pro jednu generaci. PNG může obsahovat metadata, avšak nejsou nijak striktně definována, jako u JPEGu formát Exif obsahující informace o digitální kameře, čase, expozici atd., které jsou potřebné pro profesionální fotografy (jak umožňuje např. TIFF).

Reference

  1. News and History of the PNG Development Group from 2017 [online]. PNG Development Group, 2017-07-13 [cit. 2018-01-23]. Dostupné online. (anglicky) 
  2. Introduction to PNG [online]. [cit. 2017-08-15]. Dostupné online. (anglicky) 

Externí odkazy