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 բայթից և իդենտիֆիկատոր-բայթից։ Որոշ մարկերներ կազմված են միայն այդ զույգ բայթերից, իսկ մյուսները պարունակում են լրացուցիչ տվյալներ, որոնք բաղկացած են մարկերի ինֆորմացիոն երկարության երկբայթ դաշտից և սեփական տվյալներից։ Նիշքի այսպիսի կառուցվածքը թույլատրում է արագորեն գտնել անհրաժեշտ տվյալներով մարկեր (օրինակ՝ տողի երկարությամբ, տողերի թվով և խտացված պատկերի գունային բաղադրիչների թվով)։

JPEG-ի հիմնական մարկերները[3]

խմբագրել
Մարկեր Բայթեր Երկարություն Նշանակությունը Մեկնաբանություններ
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-րդ դարի սկզբում հայտնի թվային ձևաչափերի մասին ինֆորմացիան սերունդների համար պահպանելու նպատակով։

Ծանոթագրություններ

խմբագրել
  1. «ISO/IEC 10918-1 : 1993(E) p.28». Արխիվացված է օրիգինալից 2011 թ․ օգոստոսի 22-ին. Վերցված է 2015 թ․ նոյեմբերի 1-ին.
  2. Kerr, Douglas A. «Chrominance Subsampling in Digital Images»
  3. «ISO/IEC 10918-1 : 1993(E) p.36». Արխիվացված է օրիգինալից 2011 թ․ օգոստոսի 22-ին. Վերցված է 2015 թ․ նոյեմբերի 1-ին.

Արտաքին հղումներ

խմբագրել
 Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «JPEG» հոդվածին։