JPEG
JPEG | |
---|---|
![]() | |
Ընդլայնում | .jpg , .jpeg , .JPG , .JPEG , .jpe և .JPE |
Ֆորմատի տեսակ | conflation? |
Կայք | jpeg.org/jpeg/(անգլ.) |
![]() |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/JPEG_example_down.jpg/220px-JPEG_example_down.jpg)
JPEG (անգլ.՝ Joint Photographic Experts Group մշակող կազմակերպության անվամբ), լուսանկարների և նմանատիպ պատկերների պահպանման համար նախատեսված հայտնի գրաֆիկական ձևաչափերից (ֆորմատ) մեկն է։ JPEG պարունակող նիշքերը (ֆայլ) սովորաբար ունեն .jpg, .jfif, .jpe կամ .jpeg ընդլայնումները։ Սակայն բոլոր հարթակներում ամենից հայտնին .jpg-ն է։
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-րդ դարի սկզբում հայտնի թվային ձևաչափերի մասին ինֆորմացիան սերունդների համար պահպանելու նպատակով։
Ծանոթագրություններ
[խմբագրել | խմբագրել կոդը]- ↑ «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» հոդվածին։ |
|