JPEG - JPEG
Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Fotografie a Evropská kočka divoká s klesající rychlostí komprese a tím i se zvyšující se kvalitou, zleva doprava | |
Přípona názvu souboru | .jpg , .jpeg , .jpe .jif , .jfif , .jfi |
---|---|
Typ internetového média | obrázek / jpeg |
Typový kód | JPEG [Citace je zapotřebí ] |
Jednotný identifikátor typu (UTI) | public.jpeg |
Magické číslo | ff d8 ff |
Vyvinul | Společná skupina fotografických odborníků, IBM, Mitsubishi Electric, AT&T, Canon Inc.,[1] Studijní skupina ITU-T 16 |
První vydání | 18. září 1992 |
Typ formátu | Ztrátový komprese obrazu formát |
Standard | ITU-T T.81, ITU-T T.83, ITU-T T.84, ITU-T T.86, ISO / IEC 10918 |
webová stránka | www |
JPEG (/ˈdʒeɪpɛɡ/ SOJKA-kolík )[2] je běžně používanou metodou ztrátová komprese pro digitální obrázky, zejména pro ty obrázky, které vytvořil digitální fotografie. Stupeň komprese lze upravit, což umožňuje volitelný kompromis mezi velikostí úložiště a kvalita obrazu. JPEG obvykle dosahuje komprese 10: 1 s malou znatelnou ztrátou kvality obrazu.[3] Od svého zavedení v roce 1992 je nejrozšířenější JPEG komprese obrazu světový standard,[4][5] a nejpoužívanější digitální formát obrázku, od roku 2015 každý den vyprodukováno několik miliard obrázků JPEG.[6]
Termín „JPEG“ je inicialismus / zkratka pro Společná skupina fotografických odborníků, který vytvořil standard v roce 1992. Základem pro JPEG je diskrétní kosinová transformace (DCT),[1] technika ztráty komprese obrazu, kterou poprvé navrhl Nasir Ahmed v roce 1972.[7] JPEG byl z velké části zodpovědný za šíření digitálních obrázků a digitální fotografie přes internet a později sociální média.[8]
Komprese JPEG se používá v řadě formáty obrazových souborů. JPEG /Exif je nejběžnější formát obrazu používaný digitální fotoaparáty a další zařízení pro snímání fotografických obrazů; spolu s JPEG /JFIF, je to nejběžnější formát pro ukládání a přenos fotografické obrazy na Celosvětová Síť.[9] Tyto varianty formátu se často nerozlišují a jednoduše se nazývají JPEG.
The Typ média MIME pro JPEG je obrázek / jpeg, kromě starších internet Explorer verze, která poskytuje typ MIME obrázek / pjpeg při nahrávání obrázků JPEG.[10] Soubory JPEG mají obvykle a přípona souboru z .jpg
nebo .jpeg
. JPEG / JFIF podporuje maximální velikost obrázku 65 535 × 65 535 pixelů,[11] tedy až 4 gigapixely pro poměr stran 1: 1. V roce 2000 představila skupina JPEG formát určený jako nástupce, JPEG 2000, ale nebyl schopen nahradit původní JPEG jako dominantní obrazový standard.[12]
Dějiny
Pozadí
Původní specifikace JPEG publikovaná v roce 1992 implementuje procesy z různých dřívějších výzkumné práce a patenty citováno CCITT (Nyní ITU-T, přes Studijní skupina ITU-T 16 ) a Společná skupina fotografických odborníků.[1] Hlavním základem pro algoritmus ztrátové komprese JPEG je diskrétní kosinová transformace (DCT),[1][13] který jako první navrhl Nasir Ahmed jako komprese obrazu technika v roce 1972.[7][13] Ahmed vyvinul praktický algoritmus DCT s T. Natarajanem z Kansaská státní univerzita a K. R. Rao z University of Texas v roce 1973.[7] Jejich klíčová práce z roku 1974[14] je citován ve specifikaci JPEG spolu s několika pozdějšími výzkumnými pracemi, které dále pracovaly na DCT, včetně článku z roku 1977 od Wen-Hsiung Chen, C.H. Smith a S.C. Fralick, kteří popsali rychlý algoritmus DCT,[1][15] stejně jako příspěvek N.J.Narasinhy a S.C.Fralicka z roku 1978 a příspěvek B.G. Závětří.[1] Specifikace také cituje dokument z roku 1984 od Wen-Hsiung Chen a W.K. Pratt jako vliv na jeho kvantování algoritmus,[1][16] a David A. Huffman 1952 papír pro jeho Huffmanovo kódování algoritmus.[1]
Specifikace JPEG uvádí patenty od několika společností. Základem byly následující patenty aritmetické kódování algoritmus.[1]
- IBM
- US patent 4 652 856 - 4. února 1986 - Kottappuram M. A. Mohiuddin a Jorma J. Rissanen - multi-abecední aritmetický kód bez násobení
- US patent 4,905,297 - 27. února 1990 - G. Langdon, J.L. Mitchell, W.B. Pennebaker a Jorma J. Rissanen - aritmetický systém kódování a dekodéru kódování
- US patent 4 935 882 - 19. června 1990 - W.B. Pennebaker a J.L. Mitchell - adaptace pravděpodobnosti pro aritmetické kodéry
- Mitsubishi Electric
- JP H02202267 (1021672 ) - 21. ledna 1989 - Toshihiro Kimura, Shigenori Kino, Fumitaka Ono, Masayuki Yoshida - kódovací systém
- JP H03247123 (2-46275 ) - 26. února 1990 - Fumitaka Ono, Tomohiro Kimura, Masayuki Yoshida a Shigenori Kino - kódovací zařízení a metoda kódování
Specifikace JPEG také cituje tři další patenty od IBM. Mezi další společnosti uváděné jako držitelé patentů patří AT&T (dva patenty) a Canon Inc.[1] Chybí v seznamu US patent 4 698 672 , podal Kompresní laboratoře „Wen-Hsiung Chen a Daniel J. Klenke v říjnu 1986. Patent popisuje algoritmus komprese obrazu založený na DCT a později by byl v roce 2002 předmětem kontroverze (viz Patentová diskuse níže).[17] Specifikace JPEG však citovala dva dřívější výzkumné práce Wen-Hsiung Chen publikované v letech 1977 a 1984.[1]
Standard JPEG
„JPEG“ znamená Joint Photographic Experts Group, název výboru, který vytvořil standard JPEG a také další standardy kódování statických obrázků. „Kloub“ stál za ISO TC97 WG8 a CCITT SGVIII. Skupina, která byla založena v roce 1986, vyvinula standard JPEG na konci 80. let. Mezi několika transformovat kódování techniky, které zkoumali, vybrali diskrétní kosinová transformace (DCT), protože to byla zdaleka nejúčinnější praktická kompresní technika. Skupina zveřejnila standard JPEG v roce 1992.[4]
V roce 1987 se ISO TC 97 stalo ISO / IEC JTC1 a v roce 1992 CCITT ITU-T. V současné době na straně JTC1 je JPEG jednou ze dvou podskupin ISO /IEC Smíšený technický výbor 1, Podvýbor 29, pracovní skupina 1 (ISO / IEC JTC 1 / SC 29 / WG 1) - s názvem jako Kódování statických snímků.[18][19][20] Na straně ITU-T je příslušným orgánem ITU-T SG16. Původní skupina JPEG byla uspořádána v roce 1986,[21] vydávání prvního standardu JPEG v roce 1992, který byl schválen v září 1992 jako ITU-T Doporučení T.81[22] a v roce 1994 jako ISO / IEC 10918-1.
Standard JPEG specifikuje kodek, který definuje, jak je obraz komprimován do proudu bajtů a dekomprimovány zpět do obrázku, ale nikoli formát souboru, který tento stream obsahuje.[23]Standardy Exif a JFIF definují běžně používané formáty souborů pro výměnu obrázků komprimovaných do formátu JPEG.
Standardy JPEG jsou formálně pojmenovány jako Informační technologie - Digitální komprese a kódování statických obrázků s nepřetržitým tónem. ISO / IEC 10918 se skládá z následujících částí:
Část | Norma ISO / IEC | ITU-T Rec. | Datum prvního veřejného vydání | Poslední pozměňovací návrh | Titul | Popis |
---|---|---|---|---|---|---|
Část 1 | ISO / IEC 10918-1: 1994 | T.81 (09/92) | 18. září 1992 | Požadavky a pokyny | ||
Část 2 | ISO / IEC 10918-2: 1995 | T.83 (11/94) | 11. listopadu 1994 | Testování shody | Pravidla a kontroly shody softwaru (k části 1). | |
Část 3 | ISO / IEC 10918-3: 1997 | T.84 (07/96) | 3. července 1996 | 1. dubna 1999 | Rozšíření | Sada rozšíření pro vylepšení části 1, včetně Formát souboru pro výměnu statických obrázků (SPIFF).[25] |
Část 4 | ISO / IEC 10918-4: 1999 | T.86 (06/98) | 18. června 1998 | 29. června 2012 | Registrace profilů JPEG, profilů SPIFF, značek SPIFF, barevných prostorů SPIFF, značek APPn, typů komprese SPIFF a registračních autorit (REGAUT) | metody registrace některých parametrů použitých k rozšíření JPEG |
Část 5 | ISO / IEC 10918-5: 2013 | T.871 (05/11) | 14. května 2011 | Formát pro výměnu souborů JPEG (JFIF) | Populární formát, který byl de facto formátem souboru pro obrázky kódované standardem JPEG. V roce 2009 Výbor JPEG formálně založil Ad Hoc skupinu, která standardizuje JFIF jako JPEG Část 5.[26] | |
Část 6 | ISO / IEC 10918-6: 2013 | T.872 (06/12) | Červen 2012 | Aplikace na tiskové systémy | Určuje podmnožinu funkcí a aplikačních nástrojů pro výměnu obrazů kódovaných podle ISO / IEC 10918-1 pro tisk. | |
Část 7 | ISO / IEC 10918-7: 2019 | T.873 (05/19) | Květen 2019 | Digitální komprese a kódování statických obrázků s nepřetržitým tónem | Poskytuje referenční software pro technologii kódování specifikovanou v doporučení ITU-T T.81 - ISO / IEC 10918-1. Zatímco referenční implementace také poskytují kodér, testování shody jejich procesu kódování je nad rámec této specifikace. |
Ecma International TR/ 98 specifikuje formát JPEG File Interchange Format (JFIF); první vydání vyšlo v červnu 2009.[27]
Patentová diskuse
V roce 2002 Naléhavé sítě tvrdil, že vlastní a bude vymáhat patentová práva na technologii JPEG, vyplývající z patentu, který byl podán 27. října 1986 a udělený 6. října 1987: US patent 4 698 672 Wen-Hsiung Chen a Daniel J. Klenke z Compression Labs.[17][28] Zatímco Forgent v té době nevlastnil kompresní laboratoře, Chen později prodal kompresní laboratoře společnosti Forgent, než Chen pokračoval v práci pro Cisco. To vedlo k tomu, že Forgent získal vlastnictví patentu.[17] Oznámení společnosti Forgent z roku 2002 vytvořilo rozruch připomínající Unisys „pokusí se uplatnit svá práva nad standardem komprese obrazu GIF.
Výbor JPEG vyšetřoval patentové nároky v roce 2002 a byl toho názoru, že byly zrušeny předchozí umění,[29] pohled sdílený různými odborníky.[17][30] Patent popisuje algoritmus komprese obrazu založený na diskrétní kosinové transformaci (DCT),[17] technika ztráty komprese obrazu, která vychází z článku z roku 1974 od Nasira Ahmeda, T. Natarajana a K. R. Rao.[1][13][14] Wen-Hsiung Chen dále rozvinul svou techniku DCT, popisující rychlý algoritmus DCT v článku z roku 1977 s C.H. Smith a S.C. Fralick.[15][17] Specifikace JPEG z roku 1992 uvádí pro svůj algoritmus DCT papír Ahmed 1974 a papír Chen 1977, stejně jako papír Chen a W.K. Pratt za to kvantování algoritmus.[1][16] Společnost Compression Labs založila společnost Chen a byla první společností, která komercializovala technologii DCT.[31] V době, kdy Chen podal svůj patent na algoritmus komprese obrazu založený na DCT u Klenkeho v roce 1986, většina z toho, co se později stalo standardem JPEG, již byla formulována v předchozí literatuře.[17] Zástupce JPEG Richard Clark rovněž tvrdil, že sám Chen seděl v jednom z výborů JPEG, ale Forgent toto tvrzení popřel.[17]
V letech 2002 až 2004 společnost Forgent dokázala získat asi 105 milionů USD licencí na svůj patent asi 30 společnostem. V dubnu 2004 společnost Forgent žalovala 31 dalších společností za účelem vymáhání dalších licenčních plateb. V červenci téhož roku podalo konsorcium 21 velkých počítačových společností žalobu s cílem zneplatnit patent. Společnost Microsoft navíc v dubnu 2005 zahájila proti společnosti Forgent samostatný soudní spor.[32] V únoru 2006 Úřad pro patenty a ochranné známky Spojených států souhlasil s přezkoumáním patentu Forgent JPEG na žádost Veřejná patentová nadace.[33] 26. května 2006 USPTO shledal patent neplatným na základě dosavadního stavu techniky. USPTO také zjistil, že Forgent věděl o dosavadním stavu techniky, přesto se záměrně vyhnul informování patentového úřadu. Proto je velmi nepravděpodobné, že by jakékoli odvolání k obnovení patentu uspělo.[34]
Forgent také vlastní obdobný patent udělený Evropský patentový úřad v roce 1994, i když není jasné, jak vymahatelná je.[35]
Zdá se, že ke dni 27. října 2006 vypršelo 20leté funkční období amerického patentu a v listopadu 2006 Forgent souhlasil s upuštěním od vymáhání patentových nároků proti použití standardu JPEG.[36]
Výbor JPEG si za jeden ze svých explicitních cílů stanovil, že jejich standardy (zejména jejich základní metody) lze implementovat bez placení licenčních poplatků, a zajistil odpovídající licenční práva pro svůj standard JPEG 2000 od více než 20 velkých organizací.
Počínaje srpnem 2007 tvrdila jiná společnost Global Patent Holdings, LLC, že její patent (US patent 5,253,341 ) vydaný v roce 1993, je porušován stahováním obrázků JPEG na webovou stránku nebo prostřednictvím e-mailu. Pokud nebude zrušen, může se tento patent vztahovat na jakoukoli webovou stránku, která zobrazuje obrázky JPEG. Patent byl znovu přezkoumán americkým Úřadem pro patenty a ochranné známky v letech 2000–2007; v červenci 2007 patentový úřad zrušil všechny původní nároky patentu, ale zjistil, že je platný další nárok navržený společností Global Patent Holdings (nárok 17).[37] Společnost Global Patent Holdings poté podala řadu žalob na základě nároku 17 svého patentu.
Ve svých prvních dvou soudních sporech po přezkoumání, obě podané v Chicagu, Illinois, žalovala společnost Global Patent Holdings Packery Green Bay, CDW, Motorola, Jablko, Orbitz, Officemax, Housenka, Kraft a Peapod jako obžalovaní. Třetí žaloba byla podána dne 5. prosince 2007 na jižní Floridě proti Bezpečnostní služby ADT, AutoNation, Florida Crystals Corp., HearUSA, MovieTickets.com, Ocwen Financial Corp. a Království pneumatik a čtvrtý soudní spor 8. ledna 2008 na jižní Floridě proti Boca Raton Resort & Club. Pátá žaloba byla podána proti společnosti Global Patent Holdings v Nevadě. Tuto žalobu podal Zappos.com, Inc., která byla údajně ohrožena společností Global Patent Holdings, a domáhala se soudního prohlášení, že patent „341 je neplatný a není porušen.
Společnost Global Patent Holdings také použila patent '341 k žalování nebo vyhrožování otevřeným kritikům širokých softwarových patentů, včetně Gregoryho Aharonian[38] a anonymní provozovatel webového blogu známého jako „Patent Troll Tracker."[39] 21. prosince 2007 požádal patentový právník Vernon Francissen z Chicaga Úřad pro patenty a ochranné známky USA, aby na základě nového dosavadního stavu techniky přezkoumal jediný zbývající nárok patentu '341.[40]
5. března 2008 americký úřad pro patenty a ochranné známky souhlasil s přezkoumáním patentu '341, přičemž zjistil, že nový dosavadní stav techniky vyvolává podstatné nové otázky týkající se platnosti patentu.[41] S ohledem na nové přezkoumání podali obvinění porušovatelé ve čtyřech z pěti probíhajících soudních sporů návrhy na pozastavení (pozastavení) jejich případů až do dokončení přezkumu patentu „341“ ze strany Úřadu pro patenty a ochranné známky USA. 23. dubna 2008 soudce, který předsedal dvěma soudním sporům v Chicagu ve státě Illinois, vyhověl návrhům v těchto případech.[42] Dne 22. července 2008 vydal patentový úřad první „kancelářskou akci“ druhého přezkoumání a shledal žalobu neplatnou na základě devatenácti samostatných důvodů.[43] 24. listopadu 2009 bylo vydáno osvědčení o přezkoumání, které ruší všechny nároky.
Počínaje rokem 2011 a pokračováním počátkem roku 2013, subjekt známý jako Princeton Digital Image Corporation,[44] se sídlem ve východním Texasu, začal žalovat velké množství společností za údajné porušení US patent 4 813 056 . Princeton tvrdí, že standard komprese obrázků JPEG porušuje patent '056 a žaloval velké množství webů, maloobchodníků, výrobců fotoaparátů a zařízení a prodejců. Patent byl původně vlastněn a přidělen společnosti General Electric. Platnost patentu vypršela v prosinci 2007, ale společnost Princeton žalovala velké množství společností za „minulé porušení“ tohoto patentu. (Podle amerických patentových zákonů může majitel patentu žalovat za „minulé porušení“ až šest let před podáním žaloby, takže Princeton mohl teoreticky pokračovat v žalobách na společnosti až do prosince 2013.) V březnu 2013 měl Princeton žaloby projednávané New York a Delaware proti více než 55 společnostem. Účast společnosti General Electric na žalobě není známa, i když soudní záznamy naznačují, že v roce 2009 přiřadila patent společnosti Princeton a zachovala si určitá práva k patentu.[45]
Typické použití
Algoritmus komprese JPEG funguje v nejlepším případě na fotografiích a malbách realistických scén s plynulými variacemi tónu a barvy. Pro použití na webu, kde je pro responzivní prezentaci důležité snížit množství dat použitých pro obrázek, jsou díky výhodám komprese JPEG JPEG populární. JPEG / Exif je také nejběžnější formát uložený digitálními fotoaparáty.
JPEG však není vhodný pro perokresby a další textovou nebo ikonickou grafiku, kde mohou ostré kontrasty mezi sousedními pixely způsobit výrazné artefakty. Takové obrázky se lépe ukládají do a bezztrátový grafický formát jako TIFF, GIF nebo PNG.[46] Standard JPEG obsahuje režim bezztrátového kódování, ale tento režim není ve většině produktů podporován.
Protože typickým použitím JPEG je metoda ztrátové komprese, která snižuje věrnost obrazu, je nevhodné pro přesnou reprodukci obrazových dat (například některé vědecké a lékařské zobrazovací aplikace a určité technické zpracování obrazu práce).
JPEG také není vhodný pro soubory, které projdou vícenásobnými úpravami, protože při každém opětovném komprimování obrazu dojde ke ztrátě kvality obrazu, zejména pokud je obraz oříznut nebo posunut, nebo pokud jsou změněny parametry kódování - viz ztráta digitální generace pro detaily. Aby se zabránilo ztrátě obrazových informací během postupných a opakovaných úprav, lze první úpravy uložit ve bezztrátovém formátu, následně je upravit v tomto formátu a nakonec publikovat jako JPEG k distribuci.
Komprese JPEG
JPEG používá ztrátovou formu komprese na základě diskrétní kosinová transformace (DCT). Tato matematická operace převádí každý snímek / pole zdroje videa z prostorové (2D) domény na frekvenční doména (aka transformovaná doména). Percepční model volně založený na lidském psychovizuálním systému odhodí vysokofrekvenční informace, tj. Ostré přechody v intenzitě, a barevný odstín. V transformační doméně se proces redukce informací nazývá kvantizace. Zjednodušeně řečeno, kvantizace je metoda pro optimální zmenšení velkého číselného rozsahu (s různým výskytem každého čísla) na menší a transformační doména je pohodlnou reprezentací obrazu, protože vysokofrekvenční koeficienty, které přispívají méně do celkového obrazu než jiné koeficienty, jsou charakteristicky malé hodnoty s vysokou stlačitelností. Kvantované koeficienty jsou poté sekvenovány a bezztrátově zabaleny do výstupu bitový proud. Téměř všechny softwarové implementace JPEG umožňují uživateli kontrolu nad kompresní poměr (stejně jako další volitelné parametry), což uživateli umožňuje vyměnit kvalitu obrazu za menší velikost souboru. V integrovaných aplikacích (jako je miniDV, které používá podobné schéma komprese DCT) jsou parametry předem vybrány a opraveny pro aplikaci.
Metoda komprese je obvykle ztrátová, což znamená, že některé původní obrazové informace jsou ztraceny a nelze je obnovit, což může ovlivnit kvalitu obrazu. K dispozici je volitelná položka bezztrátový režim definovaný ve standardu JPEG. Tento režim však není v produktech široce podporován.
K dispozici je také prokládaný progresivní Formát JPEG, ve kterém jsou data komprimována v několika průchodech s postupně vyššími detaily. To je ideální pro velké obrázky, které se zobrazí při stahování přes pomalé připojení, což umožňuje přiměřený náhled po obdržení pouze části dat. Podpora progresivních souborů JPEG však není univerzální. Pokud jsou přijímány progresivní soubory JPEG programy, které je nepodporují (například verze internet Explorer před Windows 7 )[47] software zobrazí obrázek až po úplném stažení.
Bezztrátová editace
Lze provést řadu změn obrázku JPEG bezztrátově (tj. Bez rekomprese a související ztráty kvality), pokud je velikost obrazu násobkem 1 bloku MCU (Minimum Coded Unit) (obvykle 16 pixelů v obou směrech, za 4: 2: 0 podvzorkování chroma ). Mezi nástroje, které to implementují, patří:
jpegtran
a jeho GUI, Jpegcrop.IrfanView
pomocí „JPG Lossless Crop (PlugIn)“ a „JPG Lossless Rotation (PlugIn)“, které vyžadují instalaci pluginu JPG_TRANSFORM.Prohlížeč obrázků FastStone
pomocí „Lossless Crop to File“ a „JPEG Lossless Rotate“.XnViewMP
pomocí „JPEG bezztrátových transformací“.ACDSee
podporuje bezztrátové střídání (ale ne bezztrátové ořezávání) s možností „Vynutit bezztrátové operace JPEG“.
Bloky lze otáčet v krocích po 90 stupních, převracet je ve vodorovné, svislé a úhlopříčné ose a posouvat je v obraze. V upraveném nemusí být použity všechny bloky z původního obrázku.
Horní a levý okraj obrázku JPEG musí ležet na hranici bloku 8 × 8 pixelů, ale spodní a pravý okraj to nemusí dělat. To omezuje možné bezztrátová plodina operace a také zabrání převrácení a otočení obrazu, jehož spodní nebo pravý okraj neleží na hranici bloku pro všechny kanály (protože okraj by skončil nahoře nebo vlevo, kde - jak je uvedeno výše - je hranice bloku povinná).
Rotace, kde šířka a výška obrazu není násobkem 8 nebo 16 (v závislosti na převzorkování barevnosti), nejsou bezztrátové. Otočení takového obrazu způsobí, že bloky budou přepočítány, což má za následek ztrátu kvality.[48]
Pokud při použití bezeztrátového oříznutí není spodní nebo pravá strana oblasti oříznutí na hranici bloku, zbytek dat z částečně použitých bloků bude i nadále přítomen v oříznutém souboru a lze je obnovit. Je také možné transformovat mezi základním a progresivním formátem bez ztráty kvality, protože jediným rozdílem je pořadí, ve kterém jsou koeficienty umístěny do souboru.
Kromě toho lze několik obrázků JPEG bezztrátově spojit dohromady, pokud byly uloženy ve stejné kvalitě a hrany se shodovaly s hranicemi bloků.
Soubory JPEG
The formát souboru známý jako „JPEG Interchange Format“ (JIF) je uveden v příloze B normy. Tento „čistý“ formát souboru se však používá jen zřídka, zejména kvůli obtížnosti programování kodérů a dekodérů, které plně implementují všechny aspekty standardu, a kvůli určitým nedostatkům standardu:
- Definice barevného prostoru
- Registrace dílčího vzorkování komponent
- Definice poměru stran pixelů.
K řešení těchto problémů se vyvinulo několik dalších standardů. První z nich, vydaná v roce 1992, byla Formát pro výměnu souborů JPEG (nebo JFIF), v posledních letech následuje Vyměnitelný formát obrazového souboru (Exif) a ICC barevné profily. Oba tyto formáty používají skutečné rozložení bajtů JIF, skládající se z různých markery, ale navíc použijte jeden z bodů rozšíření standardu JIF, a to aplikační značky: JFIF používá APP0, zatímco Exif používá APP1. V rámci těchto segmentů souboru, které byly ponechány pro budoucí použití ve standardu JIF a nejsou tímto standardem čteny, přidávají tyto standardy konkrétní metadata.
JFIF je tedy v některých ohledech omezenou verzí standardu JIF v tom, že specifikuje určitá omezení (například neumožňuje všechny různé režimy kódování), zatímco v jiných ohledech jde o rozšíření JIF kvůli přidané metadata. Dokumentace k původnímu standardu JFIF uvádí:[49]
- Formát pro výměnu souborů JPEG je minimální formát souboru, který umožňuje výměnu bitových toků JPEG mezi širokou škálou platforem a aplikací. Tento minimální formát nezahrnuje žádné pokročilé funkce nalezené ve specifikaci TIFF JPEG ani žádný jiný formát souboru pro konkrétní aplikaci. Ani by to nemělo být, jediným účelem tohoto zjednodušeného formátu je umožnit výměnu obrázků komprimovaných ve formátu JPEG.
Obrazové soubory, které využívají kompresi JPEG, se běžně nazývají „soubory JPEG“ a ukládají se ve variantách obrazového formátu JIF. Většina zařízení pro snímání obrázků (například digitální fotoaparáty), která vydávají soubory JPEG, ve skutečnosti vytváří soubory ve formátu Exif, což je formát, který průmysl fotoaparátů standardizuje pro výměnu metadat. Na druhou stranu, protože standard Exif neumožňuje barevné profily, většina softwaru pro úpravu obrázků ukládá JPEG ve formátu JFIF a také zahrnuje segment APP1 ze souboru Exif, aby zahrnoval metadata téměř kompatibilním způsobem; standard JFIF je interpretován poněkud pružně.[50]
Přesně řečeno, standardy JFIF a Exif jsou nekompatibilní, protože každý určuje, že jeho segment markeru (APP0 nebo APP1) se zobrazí jako první. V praxi většina souborů JPEG obsahuje segment značky JFIF, který předchází záhlaví Exif. To umožňuje starším čtenářům správně zpracovat segment JFIF staršího formátu, zatímco novější čtenáři také dekódují následující segment Exif, přičemž je méně přísné vyžadovat, aby se nejprve zobrazil.
Přípony souborů JPEG
Nejběžnější přípony souborů pro soubory využívající kompresi JPEG jsou .jpg
a .jpeg
, ačkoli .jpe
, .jfif
a .jif
jsou také používány. Je také možné, aby data JPEG byla vložena do jiných typů souborů - TIFF zakódované soubory často vloží obrázek JPEG jako miniatura hlavního obrazu; a soubory MP3 mohou obsahovat JPEG ve formátu obal umění v ID3v2 štítek.
Barevný profil
Mnoho souborů JPEG obsahuje ICC barevný profil (barevný prostor ). Mezi běžně používané barevné profily patří sRGB a Adobe RGB. Protože tyto barevné prostory používají nelineární transformaci, dynamický rozsah 8bitového souboru JPEG je asi 11 zastaví; vidět křivka gama.
Syntaxe a struktura
Obrázek JPEG se skládá ze sekvence segmenty, každý začínající a popisovač, z nichž každý začíná bajtem 0xFF, za kterým následuje bajt označující, o jaký druh značky jde. Některé značky se skládají pouze z těchto dvou bytů; za ostatními následují dva bajty (vysoké než nízké), které označují délku dat užitečného zatížení specifických pro značku, které následují. (Délka zahrnuje dva bajty pro délku, ale ne dva bajty pro značku.) Za některými značkami následuje entropické kódování data; délka takové značky nezahrnuje entropicky kódovaná data. Všimněte si, že po sobě jdoucích 0xFF bajtů se používají jako výplňové bajty pro polstrování účely, ačkoli toto vyplnění bajtu výplně by mělo vždy probíhat pouze pro markery bezprostředně následující po entropicky kódovaných skenovacích datech (podrobnosti viz část Specifikace JPEG B.1.1.2 a E.1.2; konkrétně „Ve všech případech, kdy jsou markery připojeny po komprimaci data, volitelná 0xFF vyplňovací bajty mohou předcházet značku ").
V rámci dat kódovaných entropií je po libovolném bajtu 0xFF vložen kodér 0x00 bajtů před další bajt, takže se nezdá, že by tam byla značka, kde není zamýšleno, což brání chybám rámování. Dekodéry musí tento 0x00 bajt přeskočit. Tato technika, tzv byte nádivka (viz část Specifikace JPEG F.1.2.3), se použije pouze na data kódovaná entropií, nikoli na data užitečného zatížení značky. Mějte však na paměti, že entropicky kódovaná data mají několik vlastních značek; konkrétně značky Reset (0xD0 až 0xD7), které se používají k izolaci nezávislých bloků dat kódovaných entropií, aby bylo možné paralelní dekódování, a kodéry mohou tyto značky Reset vkládat v pravidelných intervalech (i když to ne všechny kodéry).
Krátké jméno | Bajty | Užitečné zatížení | název | Komentáře |
---|---|---|---|---|
SOI | 0xFF, 0xD8 | žádný | Začátek obrazu | |
SOF0 | 0xFF, 0xC0 | proměnná velikost | Začátek rámce (základní DCT) | Označuje, že se jedná o základní JPEG založený na DCT, a určuje šířku, výšku, počet komponent a podvzorkování komponent (např. 4: 2: 0). |
SOF2 | 0xFF, 0xC2 | proměnná velikost | Začátek rámce (progresivní DCT) | Označuje, že se jedná o progresivní formát JPEG založený na DCT, a určuje šířku, výšku, počet komponent a podvzorkování komponent (např. 4: 2: 0). |
DHT | 0xFF, 0xC4 | proměnná velikost | Definujte Huffmanovy tabulky | Určuje jednu nebo více Huffmanových tabulek. |
DQT | 0xFF, 0xDB | proměnná velikost | Definujte kvantifikační tabulky | Určuje jednu nebo více kvantizačních tabulek. |
DRI | 0xFF, 0xDD | 4 byty | Definujte interval restartu | Určuje interval mezi RSTn značky v minimálních kódovaných jednotkách (MCU). Za touto značkou následují dva bajty označující pevnou velikost, takže s ní lze zacházet jako s jakýmkoli jiným segmentem proměnné velikosti. |
SOS | 0xFF, 0xDA | proměnná velikost | Začátek skenování | Zahájí skenování obrázku shora dolů. U výchozích obrázků DCT JPEG je obvykle jeden sken. Progresivní obrázky DCT JPEG obvykle obsahují více skenů. Tato značka určuje, který výřez dat bude obsahovat, a bezprostředně za ním následují data kódovaná entropií. |
RSTn | 0xFF, 0xDn (n=0..7) | žádný | Restartujte | Vloženo každý r makrobloky, kde r je interval restartu nastavený značkou DRI. Nepoužívá se, pokud tam nebyl žádný DRI marker. Nízké tři bity cyklu kódu markeru v hodnotě od 0 do 7. |
APLIKACEn | 0xFF, 0xEn | proměnná velikost | Specifické pro aplikaci | Například soubor Exif JPEG používá k ukládání metadat značku APP1, která je uspořádána ve struktuře úzce založené na TIFF. |
KOM | 0xFF, 0xFE | proměnná velikost | Komentář | Obsahuje textový komentář. |
EOI | 0xFF, 0xD9 | žádný | Konec obrázku |
Existují i jiné Začátek rámce značky, které zavádějí jiné druhy kódování JPEG.
Protože několik prodejců může používat stejnou aplikacin typ značky, značky specifické pro aplikaci často začínají standardním jménem nebo jménem dodavatele (např. „Exif“ nebo „Adobe“) nebo jiným identifikačním řetězcem.
Na značce restartu se resetují proměnné prediktoru mezi bloky a bitový proud se synchronizuje s hranicí bajtu. Značky restartu poskytují prostředky pro zotavení po chybě bitového proudu, jako je přenos přes nespolehlivou síť nebo poškození souboru. Protože běhy makrobloků mezi značkami restartu mohou být nezávisle dekódovány, mohou být tyto běhy dekódovány paralelně.
Příklad kodeku JPEG
Přestože soubor JPEG lze kódovat různými způsoby, nejčastěji se to provádí pomocí kódování JFIF. Proces kódování se skládá z několika kroků:
- Reprezentace barev v obrázku se převede na Y'CBCR, skládající se z jednoho luma složka (Y '), představující jas, a dvě sytost komponenty (C.B a C.R), představující barvu. Tento krok je někdy přeskočen.
- Rozlišení barevných dat je sníženo, obvykle o faktor 2 nebo 3. To odráží skutečnost, že oko je méně citlivé na jemné barevné detaily než na jemné detaily jasu.
- Obrázek je rozdělen do bloků 8 × 8 pixelů a pro každý blok každý z Y, C.Ba C.R data procházejí diskrétní kosinovou transformací (DCT). DCT je podobný a Fourierova transformace v tom smyslu, že vytváří jakési prostorové frekvenční spektrum.
- Amplitudy frekvenčních složek jsou kvantovány. Lidské vidění je mnohem citlivější na malé odchylky barvy nebo jasu na velkých plochách než na sílu vysokofrekvenčních odchylek jasu. Proto jsou veličiny vysokofrekvenčních komponent uloženy s nižší přesností než nízkofrekvenční komponenty. Nastavení kvality kodéru (například 50 nebo 95 na stupnici od 0 do 100 v knihovně nezávislé skupiny JPEG)[52]) ovlivňuje, do jaké míry je rozlišení jednotlivých frekvenčních složek sníženo. Pokud je použito nastavení s příliš nízkou kvalitou, vysokofrekvenční komponenty jsou zcela vyřazeny.
- Výsledná data pro všechny bloky 8 × 8 jsou dále komprimována bezztrátovým algoritmem, variantou Huffmanovo kódování.
Proces dekódování obrátí tyto kroky, s výjimkou kvantování protože je to nevratné. Ve zbývající části této části jsou procesy kódování a dekódování popsány podrobněji.
Kódování
Mnoho možností ve standardu JPEG se běžně nepoužívá a jak již bylo zmíněno výše, většina obrazového softwaru používá při vytváření souboru JPEG jednodušší formát JFIF, který mimo jiné specifikuje metodu kódování. Zde je stručný popis jedné z běžnějších metod kódování při použití na vstup, který má 24 bitů na pixel (po osmi červených, zelených a modrých). Tato konkrétní možnost je a ztrátová komprese dat metoda.
Transformace barevného prostoru
Nejprve by měl být obraz převeden z RGB do jiného barevného prostoru Y'CBCR (nebo neformálně YCbCr). Má tři složky Y ', CB a C.R: složka Y 'představuje jas pixelu a CB a C.R komponenty představují chrominancí (rozdělené na modré a červené komponenty). Jedná se v podstatě o stejný barevný prostor, jaký používá digitální barevná televize stejně jako digitální video včetně video DVD, a je podobný způsobu, jakým je barva reprezentována analogově KAMARÁD video a MAC (ale ne analogicky NTSC, který používá YIQ barevný prostor). Y'CBCR převod barevného prostoru umožňuje větší kompresi bez významného vlivu na kvalitu vnímání obrazu (nebo vyšší kvalitu vnímání obrazu pro stejnou kompresi). Komprese je efektivnější, protože informace o jasu, které jsou důležitější pro případnou vjemovou kvalitu obrazu, jsou omezeny na jeden kanál. To přesněji odpovídá vnímání barvy v lidském vizuálním systému. Transformace barev také statisticky zlepšuje kompresi dekorelace.
Konkrétní převod na Y'CBCR je specifikováno ve standardu JFIF a mělo by být provedeno, aby výsledný soubor JPEG měl maximální kompatibilitu. Některé implementace JPEG v režimu „nejvyšší kvality“ však tento krok nepoužijí a místo toho ponechají informace o barvách v barevném modelu RGB,[53] kde je obraz uložen v samostatných kanálech pro červené, zelené a modré složky jasu. Výsledkem je méně účinná komprese a pravděpodobně by se nepoužila, pokud je obzvláště důležitá velikost souboru.
Převzorkování
Kvůli hustotám receptorů citlivých na barvu a jas v lidském oku mohou lidé vidět podstatně jemnější detaily v jasu obrazu (složka Y ') než v odstínu a sytosti barev obrazu (Cb a Cr komponenty). S využitím těchto znalostí lze navrhnout kodéry pro efektivnější kompresi obrázků.
Transformace na Y'CBCR barevný model umožňuje další obvyklý krok, kterým je snížení prostorového rozlišení komponent Cb a Cr (tzv. „převzorkování "nebo" podvzorkování chroma "). Poměry, ve kterých se podvzorkování obvykle provádí pro obrázky JPEG, jsou 4:4:4 (bez převzorkování), 4:2:2 (snížení o faktor 2 ve vodorovném směru), nebo (nejčastěji) 4:2:0 (snížení o faktor 2 v horizontálním i vertikálním směru). Po zbytek procesu komprese se Y ', Cb a Cr zpracovávají odděleně a velmi podobným způsobem.
Blokové rozdělení
Po podvzorkování, každý kanál musí být rozděleny do 8 × 8 bloků. V závislosti na podvzorkování chroma to poskytuje bloky minimální kódované jednotky (MCU) o velikosti 8 × 8 (4: 4: 4 - žádné převzorkování), 16 × 8 (4: 2: 2) nebo nejčastěji 16 × 16 (4: 2: 0). v komprese videa Jsou volány MCU makrobloky.
Pokud data pro kanál nepředstavují celočíselný počet bloků, pak musí kodér vyplnit zbývající oblast neúplných bloků nějakou formou fiktivních dat. Lze vytvořit vyplnění okrajů fixní barvou (například černou) vyzváněcí artefakty podél viditelné části ohraničení; opakování okrajových pixelů je běžná technika, která takové artefakty omezuje (ale nemusí zcela eliminovat) a lze také použít sofistikovanější techniky vyplňování okrajů.
Diskrétní kosinová transformace
Dále je každý blok 8 × 8 každé komponenty (Y, Cb, Cr) převeden na a frekvenční doména reprezentace pomocí normalizované dvourozměrné diskrétní kosinové transformace typu II (DCT), viz Citace 1 v diskrétní kosinová transformace. DCT se někdy označuje jako „DCT typu II“ v kontextu rodiny transformací jako v diskrétní kosinová transformace a odpovídající inverzní (IDCT) je označen jako „DCT typu III“.
Jako příklad může být jeden takový 8 × 8 8bitový subimage:
Před výpočtem DCT bloku 8 × 8 jsou jeho hodnoty posunuty z kladného rozsahu do jednoho se středem na nulu. U 8bitového obrazu spadá každá položka v původním bloku do rozsahu . Střední bod rozsahu (v tomto případě hodnota 128) se odečte od každého záznamu, aby se vytvořil datový rozsah, který je soustředěn na nulu, takže upravený rozsah je . Tento krok snižuje požadavky na dynamický rozsah v následující fázi zpracování DCT.
Výsledkem tohoto kroku jsou následující hodnoty:
Dalším krokem je přijetí dvourozměrného DCT, který je dán vztahem:
kde
- je horizontální prostorová frekvence, pro celá čísla .
- je vertikální prostorová frekvence pro celá čísla .
- je normalizační měřítko k provedení transformace ortonormální
- je hodnota pixelu na souřadnicích
- je DCT koeficient na souřadnicích
Pokud provedeme tuto transformaci na naší matici výše, dostaneme následující (zaokrouhleno na nejbližší dvě číslice za desetinnou čárku):
Všimněte si vstupu v levém horním rohu s poměrně velkou velikostí. Toto je koeficient DC (nazývaný také konstantní složka), který definuje základní odstín pro celý blok. Zbývajících 63 koeficientů jsou AC koeficienty (nazývané také střídavé komponenty).[54] Výhodou DCT je jeho tendence agregovat většinu signálu v jednom rohu výsledku, jak je vidět výše. Následný kvantizační krok tento účinek zdůrazňuje a současně snižuje celkovou velikost koeficientů DCT, což vede k signálu, který lze snadno a efektivně komprimovat ve fázi entropie.
DCT dočasně zvyšuje bitovou hloubku dat, protože DCT koeficienty 8bitového / komponentního obrazu zabírají až 11 nebo více bitů (v závislosti na věrnosti výpočtu DCT). To může přinutit kodek dočasně použít 16bitová čísla k udržení těchto koeficientů, čímž se zdvojnásobí velikost obrazové reprezentace v tomto bodě; tyto hodnoty jsou typicky sníženy zpět na 8bitové hodnoty krokem kvantování. Dočasné zvětšení velikosti v této fázi nepředstavuje problém s výkonem u většiny implementací JPEG, protože obvykle je jen velmi malá část obrazu uložena v plné DCT formě kdykoli během procesu kódování nebo dekódování obrazu.
Kvantování
Lidské oko dokáže dobře vidět malé rozdíly jas na relativně velké ploše, ale ne tak dobře v rozlišení přesné síly vysokofrekvenční variace jasu. To umožňuje výrazně snížit množství informací ve vysokofrekvenčních komponentách. To se děje jednoduchým dělením každé komponenty ve frekvenční doméně konstantou pro tuto komponentu a poté zaokrouhlením na nejbližší celé číslo. Tato operace zaokrouhlování je jedinou ztrátovou operací v celém procesu (kromě podvzorkování chroma), pokud je výpočet DCT prováděn s dostatečně vysokou přesností. V důsledku toho je obvykle případ, že mnoho složek s vyšší frekvencí je zaokrouhleno na nulu a mnoho ze zbytku se stane malými kladnými nebo zápornými čísly, které představují mnohem méně bitů.
Prvky v kvantizační matice ovládat kompresní poměr, přičemž větší hodnoty produkují větší kompresi. Typická kvantizační matice (pro kvalitu 50%, jak je uvedeno v původním standardu JPEG), je následující:
Vypočítají se kvantované koeficienty DCT
kde jsou nevyčíslené koeficienty DCT; je kvantizační matice výše; a jsou kvantované DCT koeficienty.
Použití této kvantovací matice s maticí koeficientu DCT shora vede k: