JPEG
JPEG (անգլ.՝ Joint Photographic Experts Group մշակող կազմակերպության անվամբ), լուսանկարների և նմանատիպ պատկերների պահպանման համար նախատեսված հայտնի գրաֆիկական ձևաչափերից (ֆորմատ) մեկն է։ JPEG պարունակող նիշքերը (ֆայլ) սովորաբար ունեն .jpg, .jfif, .jpe կամ .jpeg ընդլայնումները։ Սակայն բոլոր հարթակներում ամենից հայտնին .jpg-ն է։
JPEG | |
---|---|
Ընդլայնում | .jpg , .jpeg , .JPG , .JPEG , .jpe և .JPE |
Ֆորմատի տեսակ | conflation? |
Կայք | jpeg.org/jpeg/(անգլ.) |
JPEG Վիքիպահեստում |
JPEG-ի ալգորիթմը թույլ է տալիս խտացնել նկարը ինչպես կորուստներով, այնպես էլ առանց կորուստների (lossless JPEG սեղմման ռեժիմ)։ Թույլատրվում են 65535 × 65535 փիքսելից ոչ ավել գծային չափերի պատկերներ։
Կիրառման բնագավառ
խմբագրելJPEG-ի ալգորիթմը առավելագույնս կիրառելի է լուսանկարների և նկարների խտացման համար, որոնք պարունակում են պայծառության և գույնի սահուն անցումներով իրական տեսարաններ։ JPEG-ը առավել տարածում է գտել թվային լուսանկարչության մեջ Համացանցի կիրառմամբ դրանց պահպանման և փոխանցման համար։
Կորուստներով խտացման ռեժիմով JPEG ձևաչափը այնքան էլ պիտանի չէ գծագրերի, տեքստային և նշանային գրաֆիկայի համար, որտեղ հարևան փիքսելների միջև կտրուկ ցայտունությունը (կոնտրաստ) առաջացնում է նկատելի աղավաղումներ (անգլ.՝ artifact)։ Այդպիսի պատկերները նպատակահարմար է պահպանել առանց կորուստների ձևաչափերով, ինչպիսիք են JPEG-LS, TIFF, GIF, PNG, կամ օգտագործել Lossless JPEG խտացման ռեժիմը։
Պատկերների խտացման բազմափուլ մշակման ընթացքում JPEG-ը (ինչպես նաև կորուստներով խտացման այլ ձևաչափերը) հարմար չեն, քանի որ ամեն անգամ մշակման արդյունքների միջանկյալ պահպանման ընթացքում կլինեն պատկերի աղավաղումներ։
JPEG-ը չպետք է օգտագործվի այն դեպքերում, երբ թույլատրելի չեն անգամ նվազագույն կորուստներ, օրինակ՝ աստղագիտական և բժշկական պատկերներում։ Այդ դեպքերում խորհուրդ է տրվում JPEG ստանդարտով նախատեսված խտացման Lossless JPEG-ը (որը, սակայն չի ընդունվում հայտնի կոդեկների կողմից) կամ խտացման ստանդարտ JPEG-LS-ը։
Խտացում
խմբագրելԽտացման ընթացքում պատկերը RGB գունային տարածքից վերափոխվում է YCbCr: Պատկերի Cb և Cr ուղիների համար (պատասխանատու են գույների համար) RGB-ից YCbCr վերափոխվելուց հետո կարող է կատարվել նոսրացումը (անգլ.՝ subsampling[1]), պայծառության Y ուղու 4 փիքսելանոց (2x2) յուրաքանչյուր բլոկ դրվում է միջինացված Cb և Cr արժեքների վրա։ Ընդ որում յուրաքանչյուր 2x2 բլոկի համար 12 արժեքների (4 Y, 4 Cb և 4 Cr) փոխարեն կիրառվում է ընդամենը 6-ը (4 Y, մեկական Cb և Cr)։ Երբ պատկերի խտացումից հետո վերականգնման որակին ներկայացվում են բարձր պահանջներ, նոսրացումը կարող է կատարվել միայն մի ուղղությամբ՝ հորիզոնական («4:4:0» սխեմայով[2]), ուղղահայաց («4:2:2»), կամ ընդհանրապես չի կատարվում («4:4:4»)։
Ստանդարտը ինչպես նաև թույլատրում է Cb և Cr միջինացմամբ նոսրացում ոչ թե 2х2 բլոկի, այլ հաջորդաբար դասավորված 4 փիքսելների համար (ուղղահայաց կամ հորիզոնական), այսինքն 1х4, 4х1 («4:1:1» սխեմա), ինչպես նաև 2х4 и 4х2 («4:1:0» սխեմա)։ Cb և Cr-ի համար թույլատրվում են նաև այլ տիպերի նոսրացումներ, բայց պրակտիկայում դրանք հազվադեպ են կիրառվում։
Այնուհետև պայծառության բաղադրիչ Y-ը և գույնի համար պատասխանատու բաղադրիչներ Cb և Cr-ը բաժանվում են 8х8 փիքսելներից կազմված բլոկների։ Յուրաքանչյուր այդպիսի բլոկ ենթարկվում է դիսկրետ կոսոինուսային վերափոխման (ԴԿՎ), որից ստացված գործակիցները քվանտացվում և փաթեթավորվում են կոդավորման շարքերի և Հաֆմանի կոդերի օգտագործմամբ։
Պատկերի պահպանման ընթացքում JPEG նիշքում (ֆայլ) նշվում է որակի պարամետրը, որը տրվում է մի քանի պայմանական միավորներով՝ 1-ից 100 կամ 1-ից 10։ Մեծ թիվը հիմնականում համապատասխանում է լավագույն որակին և խտացված ֆայլի մեծ չափին։ Սակայն նույնիսկ ամենաբարձր որակի օգտագործման դեպքում վերականգնվող պատկերը ճշգրտությամբ չի համընկնի սկզբնականի հետ, ինչը կապված է ԴԿՎ կատարման վերջնական ճշգրտության հետ, ինչպես նաև Y, Cb, Cr արժեքները և ԴԿՎ գործակիցները մինչև ամենամոտ ամբողջ թիվը կլորացնելու անհրաժեշտության հետ։ ԴԿՎ չօգտագործող Lossless JPEG խտացման ռեժիմը ապահովում է վերականգնվող և սկզբնական պատկերի ճշգրիտ համընկնումը, սակայն դրա փոքր էֆեկտիվությունը և ծրագրային ապահովման մշակողների կողմից խրախուսանքի բացակայությունը չեն նպաստում Lossless JPEG-ի հայտնիությանը։
Գրելաոճը (սինտակսիս) և կառուցվածքը
խմբագրելJPEG նիշքը պարունակում է մարկերների հաջորդականություն, որոնցից յուրաքանչյուրը սկսվում է մարկերի սկիզբը վկայող 0xFF բայթից և իդենտիֆիկատոր-բայթից։ Որոշ մարկերներ կազմված են միայն այդ զույգ բայթերից, իսկ մյուսները պարունակում են լրացուցիչ տվյալներ, որոնք բաղկացած են մարկերի ինֆորմացիոն երկարության երկբայթ դաշտից և սեփական տվյալներից։ Նիշքի այսպիսի կառուցվածքը թույլատրում է արագորեն գտնել անհրաժեշտ տվյալներով մարկեր (օրինակ՝ տողի երկարությամբ, տողերի թվով և խտացված պատկերի գունային բաղադրիչների թվով)։
Մարկեր | Բայթեր | Երկարություն | Նշանակությունը | Մեկնաբանություններ |
---|---|---|---|---|
SOI | 0xFFD8 | չունի | Պատկերի սկիզբ | |
SOF0 | 0xFFC0 | փոփոխական երկարություն | Ֆրեյմի սկիզբ (հիմնական, ԴԿՎ) | Ցույց է տալիս, որ պատկերը կոդավորվել է ԴԿՎ-ի և Հաֆմանի կոդի կիրառմամբ հիմնական ռեժիմով։ Մարկերը պարունակում է պատկերի տողերի թիվը, տողերի երկարությունը (մարկերի սկզբի համեմատ համապատասխանաբար 5 և 7 շարժով երկբայթ դաշտեր), բաղադրիչների քանակը (մարկերի սկզբի համեմատ 9 շարժով բայթային դաշտ), բաղադրիչի բիթերի թիվը՝ միմիայն 8 (մարկերի սկզբի համեմատ 4 շարժով բայթային դաշտ), ինչպես նաև բաղադրիչների հարաբերությունը (օրինակ՝ 4:2:0)։ |
SOF1 | 0xFFC1 | փոփոխական երկարություն | Ֆրեյմի սկիզբ (ընդլայնված, ԴԿՎ, Հաֆմանի կոդ) | Ցույց է տալիս, որ պատկերը կոդավորվել է ԴԿՎ-ի և Հաֆմանի կոդի կիրառմամբ ընդլայնված (extended) ռեժիմով։ Մարկերը պարունակում է պատկերի տողերի թիվը, տողերի երկարությունը, բաղադրիչների քանակը, բաղադրիչի բիթերի թիվը (8 կամ 12), ինչպես նաև բաղադրիչների հարաբերությունը (օրինակ՝ 4:2:0)։ |
SOF2 | 0xFFC2 | փոփոխական երկարություն | Ֆրեյմի սկիզբ (պրոգրեսիվ, ԴԿՎ, Հաֆմանի կոդ | Ցույց է տալիս, որ պատկերը կոդավորվել է ԴԿՎ-ի և Հաֆմանի կոդի կիրառմամբ պրոգրեսիվ ռեժիմով։ Մարկերը պարունակում է պատկերի տողերի թիվը, տողերի երկարությունը, բաղադրիչների քանակը, բաղադրիչի բիթերի թիվը (8 կամ 12), ինչպես նաև բաղադրիչների հարաբերությունը (օրինակ՝ 4:2:0)։ |
DHT | 0xFFC4 | փոփոխական երկարություն | Պարունակում է Հաֆմանի աղյուսակներ | Սահմանում է մեկ կամ ավելի Հաֆմանի աղյուսակներ։ |
DQT | 0xFFDB | փոփոխական երկարություն | Պարունակում է քվանտավորման աղյուսակ | Սահմանում է քվանտավորման մեկ կամ ավելի աղյուսակներ։ |
DRI | 0xFFDD | 4 բայթ | Ցույց է տալիս վերաբեռնում-միջակայքի երկարությունը | Մակրոբլոկներում միջակայքներ է սահմանում RST n մարկերների միջև։ DRI-ի բացակայության դեպքում կոդավորված տվյալների հոսքում RST n մարկերների հայտնվելն անթույլատրելի է և համարվում է սխալ։ Եթե կոդավորման ընթացքում RST n մարկերները չեն օգտագործվում, DRI մարկերը կամ ընդհանրապես չի օգտագործվում, կամ կրկնությունների միջակայքը նրանում ցույց է տրվում 0։ |
SOS | 0xFFDA | փոփոխական երկարություն | Տեսածրման սկիզբ | Առաջին կամ հերթական պատկերի տեսածրման սկիզբը ձախից աջ, վերևից ներքև անցումով։ Եթե կիրառվում է կոդավորման հիմնական ռեժիմը, օգտագործվում է մեկ տեսածրիչ, իսկ պրոգրեսիվ ռեժիմների դեպքում՝ մի քանի տեսածրիչ։ SOS մարկերը հանդիսանում է բաժանիչ պատկերի տեղեկատվական (վերնագիրի)և կոդավորված մասերի (սեփական խտացված տվյալների) միջև |
RSTn | 0xFFDn | չունի | Վերագործարկում | Վերագործարկման մարկերն օգտագործվում է էնտրոպիկ կոդավորիչով կոդավորված տվյալների հատվածավորման համար։ Յուրաքանչյուր հատվածում տվյալները վերակոդավորում են անկախ։ Կոդավորված տվյալների վնասվածքի դեպքում JPEG նիշքի փոխանցման և պահպանման գործընթացում վերագործարկման մարկերը թույլատրում է սահմանափակել կորուստները։ |
APPn | 0xFFEn | փոփոխական երկարություն | Տրվում է հավելվածի կողմից | Օրինակ՝ EXIF-ում JPEG նիշքերը մետատվյալների պահպանման համար օգտագործում է TIFF-ի կառուցվածքում տեղակայված APP1 մարկերը։ |
COM | 0xFFFE | փոփոխական երկարություն | Մեկնաբանություն | Պարունակում է մեկնաբանության տեքստ։ |
EOI | 0xFFD9 | չունի | Պատկերի կոդավորված հատվածի վերջ |
Առավելությունները և թերությունները
խմբագրելJPEG ստանդարտով խտացման թերություններից է վերականգնված պատկերի վրա բարձր աստիճանի խտացմանը բնորոշ աղավաղումների հայտնվելը։ Պատկերը բաժանվում է 8x8 փիքսելներից կազմված բլոկների (ինչն ավելի նկատելի է պատկերի պայծառության սահուն փոփոխությունների տարածքներում), տարածական բարձր հաճախության հատվածներում (օրինակ՝ ցայտուն ուրվագծերի և պատկերի սահմանների վրա) հայտնվում են աղավաղումներ խանգարող լուսապսակների տեսքով։ Սակայն չնայած թերություններին, JPEG-ն ստացել է լայն տարածում իր խտացման բավականին բարձր աստիճանի, պատկերի լիարժեք գունային խտացման հնարավորության և հարաբերական ոչ բարձր հաշվողական բարդության համար։
Հետաքրքիր փաստեր
խմբագրել2010 թվականին PLANETS նախագծի գիտնականները JPEG ձևափաչի ընթերցման հրահանգը դրել են հատուկ կապսուլայում, որը տեղադրել են շվեյցարական Ալպերում, հատուկ բունկերի մեջ։ Դա արվել է 21-րդ դարի սկզբում հայտնի թվային ձևաչափերի մասին ինֆորմացիան սերունդների համար պահպանելու նպատակով։
Ծանոթագրություններ
խմբագրել- ↑ «ISO/IEC 10918-1 : 1993(E) p.28». Արխիվացված է օրիգինալից 2011 թ․ օգոստոսի 22-ին. Վերցված է 2015 թ․ նոյեմբերի 1-ին.
- ↑ Kerr, Douglas A. «Chrominance Subsampling in Digital Images»
- ↑ «ISO/IEC 10918-1 : 1993(E) p.36». Արխիվացված է օրիգինալից 2011 թ․ օգոստոսի 22-ին. Վերցված է 2015 թ․ նոյեմբերի 1-ին.
Արտաքին հղումներ
խմբագրել- The JPEG committee homepage
- JPEG Standard (JPEG ISO/IEC 10918-1 ITU-T Recommendation T.81) at W3.org
- JFIF File Format at W3.org
- Example images over the full range of quantization levels from 1 to 100 at visengi.com
- JPEG decoder open source code, copyright (C) 1995–1997, Thomas G. Lane
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «JPEG» հոդվածին։ |