Ki jan fòma JPEG la ap travay

Imaj JPEG yo omniprésente nan lavi dijital nou an, men dèyè laparans konsyans sa a gen algoritm ki retire detay ki pa perceptib nan je imen an. Rezilta a se pi wo kalite vizyèl nan gwosè dosye ki pi piti a - men ki jan egzakteman li tout travay? Ann wè sa egzakteman je nou pa wè!

Ki jan fòma JPEG la ap travay

Li fasil pou w pran kapasite pou voye yon foto bay yon zanmi epi pa enkyete w sou ki aparèy, navigatè oswa sistèm opere yo ap itilize - men sa pa t toujou ka a. Nan kòmansman ane 1980 yo, òdinatè yo te kapab estoke ak montre imaj dijital, men te gen anpil lide konpetisyon sou pi bon fason pou fè sa. Ou pa t 'kapab jis voye yon imaj soti nan yon òdinatè nan yon lòt ak espere ke li ta travay.

Pou rezoud pwoblèm sa a, yo te reyini an 1986 yon komite ekspè atravè mond lan ki te rele "Gwoup Konjwen Ekspè Fotografi» (Joint Photographic Experts Group, JPEG), ki te fonde kòm yon efò ansanm ant Òganizasyon Entènasyonal pou Normalisation (ISO) ak Komisyon Elektwoteknik Entènasyonal (IEC), de òganizasyon estanda entènasyonal ki gen katye jeneral nan Jenèv, Swis.

Yon gwoup moun ki rele JPEG te kreye estanda konpresyon imaj dijital JPEG an 1992. Nenpòt moun ki te itilize entènèt la te pwobableman rankontre imaj JPEG kode. Sa a se fason ki pi komen yo kode, voye ak magazen imaj. Soti nan paj wèb rive imèl ak medya sosyal, JPEG yo itilize dè milya de fwa pa jou—prèske chak fwa nou wè yon imaj sou entènèt oswa voye li. San JPEG, entènèt la ta gen mwens kolore, pi dousman, epi pwobableman gen mwens foto chat!

Atik sa a se sou kòman yo dekode yon imaj JPEG. Nan lòt mo, sa ki oblije konvèti done konprese ki estoke sou yon òdinatè nan yon imaj ki parèt sou ekran an. Sa a se vo konnen, pa sèlman paske li enpòtan pou konprann teknoloji nou itilize chak jou, men tou paske lè nou debloke nivo konpresyon, nou aprann plis sou pèsepsyon ak vizyon, ak ki detay je nou yo pi sansib.

Anplis de sa, jwe ak imaj nan fason sa a se trè enteresan.

Ki jan fòma JPEG la ap travay

Gade anndan JPEG

Sou yon òdinatè, tout bagay estoke kòm yon sekans nimewo binè. Tipikman, bit sa yo, zewo ak youn, yo gwoupe nan gwoup uit pou fè moute byte. Lè ou louvri yon imaj JPEG sou yon òdinatè, yon bagay (yon navigatè, yon sistèm opere, yon lòt bagay) dwe dekode byte yo, restore imaj orijinal la kòm yon lis koulè ki ka parèt.

Si w telechaje dous sa a foto yon chat epi ouvri li nan yon editè tèks, ou pral wè yon pakèt karaktè enkoyeran.

Ki jan fòma JPEG la ap travay
Isit la mwen itilize Notepad ++ pou egzamine sa ki nan dosye a, depi editè tèks regilye tankou Notepad sou Windows ap koripsyon dosye binè a apre li fin sove epi li pap satisfè fòma JPEG ankò.

Louvri yon imaj nan yon processeur tèks konfonn òdinatè a, menm jan ou konfonn sèvo ou lè ou fwote je ou epi kòmanse wè tach koulè!

Tach sa yo ou wè yo ke yo rekonèt kòm fosfen, epi yo pa rezilta nan yon estimilis limyè oswa yon alisinasyon ki te pwodwi pa lespri a. Yo rive paske sèvo ou panse ke nenpòt siyal elektrik nan nè optik yo transmèt enfòmasyon sou limyè. Sèvo a bezwen fè sipozisyon sa yo paske pa gen okenn fason pou konnen si yon siyal se yon son, yon vizyon, oswa yon lòt bagay. Tout nè nan kò a transmèt egzakteman menm enpilsyon elektrik yo. Lè w aplike presyon sou je ou, ou voye siyal ki pa vizyèl, men aktive reseptè je a, ki sèvo ou entèprete - nan ka sa a, mal - kòm yon bagay vizyèl. Ou ka literalman wè presyon an!

Li komik pou reflechi sou ki jan òdinatè yo sanble ak sèvo a, men li se tou yon analoji itil pou ilistre konbyen siyifikasyon done yo-si yo pote nan kò a pa nè oswa ki estoke sou yon òdinatè-depann sou fason yo entèprete yo. Tout done binè konpoze de XNUMXs ak XNUMXs, eleman debaz yo ki ka transmèt enfòmasyon nenpòt kalite. Òdinatè ou souvan kalkile kijan pou entèprete yo lè l sèvi avèk endikasyon tankou ekstansyon dosye. Koulye a, nou fòse li entèprete yo kòm tèks, paske se sa editè tèks la espere.

Pou konprann ki jan yo dekode JPEG, nou bezwen wè siyal orijinal yo tèt yo - done yo binè. Sa a ka fè lè l sèvi avèk yon editè egzadesimal, oswa dirèkteman sou paj wèb atik orijinal la! Gen yon imaj, bò kote ki nan jaden an tèks yo tout bytes li yo (eksepte pou header la), prezante nan fòm desimal. Ou ka chanje yo, epi script la pral re-kode epi pwodui yon nouvo imaj sou vole.

Ki jan fòma JPEG la ap travay

Ou ka aprann anpil bagay jis pa jwe ak editè sa a. Pou egzanp, èske w ka di nan ki lòd piksèl yo estoke?

Bagay la etranj sou egzanp sa a se ke chanje kèk nimewo pa afekte imaj la ditou, men, pou egzanp, si ou ranplase nimewo a 17 ak 0 nan premye liy lan, foto a pral konplètman depafini!

Ki jan fòma JPEG la ap travay

Lòt chanjman, tankou ranplase 7 la sou liy 1988 ak nimewo a 254, chanje koulè a, men sèlman nan piksèl ki vin apre.

Ki jan fòma JPEG la ap travay

Petèt bagay ki pi etranj la se ke kèk nimewo chanje pa sèlman koulè a, men tou, fòm nan imaj la. Chanje 70 nan liy 12 a 2 epi gade ranje anlè imaj la pou w wè sa m vle di.

Ki jan fòma JPEG la ap travay

E kèlkeswa imaj JPEG ou itilize, w ap toujou jwenn modèl echèk misterye sa yo lè w ap modifye byte yo.

Lè w ap jwe ak editè a, li difisil pou w konprann ki jan yon foto rkree nan bytes sa yo, paske konpresyon JPEG konsiste de twa teknoloji diferan, aplike sekans nan nivo. Nou pral etidye chak separeman pou dekouvri konpòtman misterye n ap wè a.

Twa nivo konpresyon JPEG:

  1. Sousampling koulè.
  2. Disrè kosinin transfòme ak echantiyon.
  3. Kouri longè kouri, delta и Huffman

Pou ba ou yon lide sou grandè konpresyon an, sonje ke imaj ki anwo a reprezante 79 nimewo, oswa apeprè 819 KB. Si nou estoke li san konpresyon, chak pixel ta mande twa nimewo - pou konpozan wouj, vèt ak ble. Sa a ta monte a 79 nimewo, oswa apeprè. 917 KB. Kòm yon rezilta nan konpresyon JPEG, dosye final la te redwi pa plis pase 700 fwa!

An reyalite, imaj sa a ka konprese pi plis. Anba a gen de imaj kòt a kòt - foto ki sou bò dwat la te konprese a 16 KB, se sa ki, 57 fwa pi piti pase vèsyon an dekonprese!

Ki jan fòma JPEG la ap travay

Si w gade ak anpil atansyon, w ap wè imaj sa yo pa idantik. Tou de nan yo se imaj ak konpresyon JPEG, men youn nan dwa se pi piti anpil nan volim. Li sanble tou yon ti kras pi mal (gade kare yo koulè background). Se poutèt sa yo rele JPEG tou konpresyon pèt; Pandan pwosesis konpresyon an, imaj la chanje epi li pèdi kèk detay.

1. Sousampling koulè

Isit la se yon imaj ak sèlman premye nivo konpresyon aplike.

Ki jan fòma JPEG la ap travay
(Vèsyon entèaktif - nan orijinal atik). Retire yon nimewo detwi tout koulè. Sepandan, si egzakteman sis nimewo yo retire, li nòmalman pa gen okenn efè sou imaj la.

Koulye a, nimewo yo se yon ti kras pi fasil dechifre. Sa a se prèske yon lis koulè senp, nan ki chak byte chanje egzakteman yon pixel, men an menm tan an li deja mwatye gwosè a nan imaj la dekonprese (ki ta pran apeprè 300 KB nan gwosè sa a redwi). Èske ou ka devine poukisa?

Ou ka wè nimewo sa yo pa reprezante eleman estanda wouj, vèt ak ble, paske si nou ranplase tout nimewo yo ak zewo, n ap jwenn yon imaj vèt (olye ke blan).

Ki jan fòma JPEG la ap travay

Sa a se paske bytes sa yo vle di Y (klere),

Ki jan fòma JPEG la ap travay

Cb (bleness relatif),

Ki jan fòma JPEG la ap travay

ak foto Cr (relatif wouj).

Ki jan fòma JPEG la ap travay

Poukisa nou pa itilize RGB? Apre yo tout, sa a se ki jan pifò ekran modèn travay. Monitè ou a ka montre nenpòt koulè, tankou wouj, vèt ak ble, ak entansite diferan pou chak pixel. Blan yo jwenn lè w vire tout twa nan klète konplè, ak nwa lè w fèmen yo.

Ki jan fòma JPEG la ap travay

Sa a se tou trè menm jan ak ki jan je imen an ap travay. Reseptè koulè yo nan je nou yo rele "kòn", epi yo divize an twa kalite, chak nan yo ki pi sansib a swa koulè wouj, vèt, oswa ble [kòn S-kalite yo sansib nan vyolèt-ble a (S soti nan angle a kout - spectre kout-onn), M. -type - nan vèt-jòn (M soti nan angle a Mwayen - mwayen-vag), ak L-kalite - nan jòn-wouj (L soti nan angle a Long - long-vag) pati nan spectre an. Prezans twa kalite kòn sa yo (ak branch bwa, ki sansib nan pati vèt emwòd nan spectre an) bay yon moun vizyon koulè. / approx. tradiksyon]. Baton, yon lòt kalite fotoreseptè nan je nou an, se kapab detekte chanjman nan klète, men li pi sansib a koulè. Je nou gen anviwon 120 milyon baton ak sèlman 6 milyon kòn.

Se poutèt sa je nou yo pi bon nan detekte chanjman nan klète pase chanjman nan koulè. Si ou separe koulè ak klète, ou ka retire yon ti koulè epi pèsonn pa pral remake anyen. Chroma Sousampling se pwosesis pou reprezante eleman koulè yon imaj nan yon rezolisyon ki pi ba pase eleman luminans yo. Nan egzanp ki anwo a, chak piksèl gen egzakteman yon eleman Y, ak chak gwoup endividyèl kat piksèl gen egzakteman yon sèl Cb ak yon eleman Cr. Se poutèt sa, imaj la gen kat fwa mwens enfòmasyon koulè pase orijinal la.

Yo itilize espas koulè YCbCr pa sèlman nan JPEG. Li te orijinal envante an 1938 pou pwogram televizyon. Se pa tout moun ki gen yon televizyon koulè, kidonk separe koulè ak klète pèmèt tout moun jwenn menm siyal la, ak televizyon san koulè tou senpleman itilize sèlman eleman klète a.

Se konsa, retire yon nimewo nan editè a konplètman kraze tout koulè yo. Konpozan yo estoke nan fòm YYYY Cb Cr (an reyalite, pa nesesèman nan lòd sa a - se lòd depo a espesifye nan tèt dosye a). Retire premye nimewo a pral lakòz premye valè Cb yo dwe konnen kòm Y, Cr kòm Cb, epi an jeneral ou pral gen yon efè domino ki chanje tout koulè yo nan foto a.

Spesifikasyon JPEG a pa fòse ou sèvi ak YCbCr. Men pifò fichye yo sèvi ak li paske li pwodui pi bon imaj anba echantiyon pase RGB. Men, ou pa bezwen pran pawòl mwen pou li. Gade pou tèt ou nan tablo ki anba a ki sou-echantiyon chak eleman endividyèl pral sanble nan tou de RGB ak YCbCr.

Ki jan fòma JPEG la ap travay
(Vèsyon entèaktif - nan orijinal atik).

Retire nan ble se pa tankou aparan kòm sa yo ki nan wouj oswa vèt. Se poutèt sis milyon kòn nan je ou, anviwon 64% sansib pou wouj, 32% pou vèt ak 2% pou ble.

Yo pi byen wè echantiyonaj la nan eleman Y a (anba goch). Menm yon ti chanjman aparan.

Konvèti yon imaj ki soti nan RGB an YCbCr pa diminye gwosè dosye, men li fè li pi fasil jwenn detay mwens vizib ki ka retire. Konpresyon pèt rive nan dezyèm etap la. Li baze sou lide pou prezante done nan yon fòm ki pi konpresib.

2. Disrè kosinin transfòme ak echantiyon

Nivo konpresyon sa a se, pou pati ki pi, sa JPEG se tout sou. Apre konvèti koulè yo nan YCbCr, konpozan yo konprese endividyèlman, kidonk nou ka Lè sa a, konsantre sou jis eleman nan Y. Ak isit la se sa ki bytes yo eleman Y sanble apre ou fin aplike kouch sa a.

Ki jan fòma JPEG la ap travay
(Vèsyon entèaktif - nan orijinal atik). Nan vèsyon entèaktif la, klike sou yon pixel woulo liv editè a nan liy ki reprezante li. Eseye retire nimewo nan fen a oswa ajoute kèk zewo nan yon sèten nimewo.

Nan premye gade, li sanble trè move konpresyon. Gen 100 piksèl nan yon imaj, epi li pran 000 nimewo yo reprezante klète yo (Y-konpozan)-sa a pi mal pase konpresyon pa gen anyen ditou!

Sepandan, sonje ke pi fò nan nimewo sa yo se zewo. Anplis, tout zewo sa yo nan fen liy yo ka retire san yo pa chanje imaj la. Gen apeprè 26 nimewo ki rete, e sa a se prèske 000 fwa mwens!

Nivo sa a gen sekrè a nan modèl echèk. Kontrèman ak lòt efè nou te wè, aparans nan modèl sa yo se pa yon glitch. Yo se blòk bilding nan imaj la tout antye. Chak liy nan editè a gen egzakteman 64 nimewo, koyefisyan transfòmasyon kosinis disrè (DCT) ki koresponn ak entansite 64 modèl inik.

Modèl sa yo fòme ki baze sou trase kosinis la. Men ki jan kèk nan yo sanble:

Ki jan fòma JPEG la ap travay
8 sou 64 chans

Anba a se yon imaj ki montre tout 64 modèl yo.

Ki jan fòma JPEG la ap travay
(Vèsyon entèaktif - nan orijinal atik).

Modèl sa yo gen yon enpòtans patikilye paske yo fòme baz imaj 8x8 yo. Si ou pa abitye ak aljèb lineyè, sa vle di ke nenpòt imaj 8x8 ka fèt nan 64 modèl sa yo. DCT se pwosesis pou divize imaj an blòk 8x8 epi konvèti chak blòk nan yon konbinezon 64 koyefisyan sa yo.

Li sanble tankou majik ke nenpòt imaj ka konpoze de 64 modèl espesifik. Sepandan, sa a se menm jan ak di ke nenpòt kote sou Latè ka dekri pa de nimewo - latitid ak lonjitid [ki endike emisfè / approx. tradiksyon]. Souvan nou panse sifas Latè a genyen de dimansyon, kidonk nou bezwen sèlman de nimewo. Yon imaj 8x8 gen 64 dimansyon, kidonk nou bezwen 64 nimewo.

Li poko klè ki jan sa ede nou an tèm de konpresyon. Si nou bezwen 64 nimewo pou reprezante yon imaj 8x8, poukisa sa a ta pi bon pase jis estoke 64 eleman klète? Nou fè sa pou menm rezon an nou te tounen twa nimewo RGB nan twa nimewo YCbCr: li pèmèt nou retire detay sibtil.

Li difisil pou wè egzakteman ki detay yo retire nan etap sa a paske JPEG aplike DCT nan blòk 8x8. Sepandan, pèsonn pa entèdi nou aplike li nan foto an antye. Men sa DCT sanble pou eleman Y yo aplike nan foto an antye:

Ki jan fòma JPEG la ap travay

Plis pase 60 nimewo yo ka retire nan fen a ak nòmalman pa gen okenn chanjman aparan nan foto a.

Ki jan fòma JPEG la ap travay

Sepandan, sonje ke si nou zewo soti senk premye nimewo yo, diferans lan pral evidan.

Ki jan fòma JPEG la ap travay

Nimewo yo nan kòmansman an reprezante chanjman frekans ki ba nan imaj la, ki je nou ranmase pi byen. Nimewo nan direksyon fen endike chanjman nan frekans segondè yo ki pi difisil pou remake. Pou "wè sa je a pa ka wè," nou ka izole detay segondè frekans sa yo lè nou elimine premye 5000 nimewo yo.

Ki jan fòma JPEG la ap travay

Nou wè tout zòn nan imaj la kote pi gwo chanjman ki fèt de pixel an pixel. Je chat la, moustach li yo, dra terry la ak lonbraj ki nan kwen anba gòch la kanpe deyò. Ou ka ale pi lwen lè w elimine 10 premye nimewo yo:

Ki jan fòma JPEG la ap travay

20 X:

Ki jan fòma JPEG la ap travay

40 X:

Ki jan fòma JPEG la ap travay

60 X:

Ki jan fòma JPEG la ap travay

Detay segondè-frekans sa yo retire pa JPEG pandan etap konpresyon an. Pa gen okenn pèt nan konvèti koulè nan koyefisyan DCT. Pèt fèt nan etap echantiyon an, kote yo retire gwo frekans oswa valè tou pre zewo. Lè ou bese bon jan kalite a JPEG ekonomize, pwogram nan ogmante papòt la pou kantite valè yo retire, ki diminye gwosè a fichye, men fè foto a pi pixelated. Se poutèt sa imaj la nan premye seksyon an, ki te 57 fwa pi piti, te sanble ak sa a. Chak blòk 8x8 te reprezante pa anpil mwens koyefisyan DCT konpare ak vèsyon an pi bon kalite.

Ou ka kreye tankou yon efè fre tankou difizyon gradyèl nan imaj. Ou ka montre yon foto flou ki vin pi plis ak plis detay kòm pi plis ak plis koyefisyan yo telechaje.

Isit la, jis pou plezi, se sa ou jwenn lè l sèvi avèk jis 24 nimewo:

Ki jan fòma JPEG la ap travay

Oswa jis 5000:

Ki jan fòma JPEG la ap travay

Trè flou, men yon jan kanmenm rekonèt!

3. Kouri longè kodaj, delta ak Huffman

Jiskaprezan, tout etap konpresyon yo te pèdi. Dènye etap la, okontrè, kontinye san pèt. Li pa efase enfòmasyon, men li siyifikativman diminye gwosè dosye a.

Ki jan ou ka konprese yon bagay san yo pa jete enfòmasyon? Imajine kijan nou ta dekri yon senp rektang nwa 700 x 437.

JPEG sèvi ak nimewo 5000 pou sa, men rezilta pi bon yo ka reyalize. Èske ou ka imajine yon konplo kodaj ki ta dekri tankou yon imaj nan kòm kèk byte ke posib?

Minim konplo mwen ta ka vini ak itilize kat: twa pou reprezante yon koulè, ak yon katriyèm pou endike konbyen piksèl koulè sa a genyen. Lide a pou reprezante valè repete nan fason kondanse sa a rele kodaj longè kouri. Li se san pèt paske nou ka retabli done yo kode nan fòm orijinal li.

Yon dosye JPEG ak yon rektang nwa pi gwo pase 4 octets - sonje ke nan nivo DCT, konpresyon yo aplike nan blòk 8x8 pixel. Se poutèt sa, nan yon minimòm, nou bezwen yon koyefisyan DCT pou chak 64 piksèl. Nou bezwen yon sèl paske olye pou yo estoke yon koyefisyan DCT ki te swiv pa 63 zewo, kodaj longè kouri pèmèt nou estoke yon nimewo epi endike ke "tout lòt yo se zewo."

Delta kodaj se yon teknik kote chak byte gen yon diferans ak kèk valè, olye ke yon valè absoli. Se poutèt sa, modifye sèten byte chanje koulè a ​​nan tout lòt piksèl. Pou egzanp, olye pou yo estoke

12 13 14 14 14 13 13

Nou ta ka kòmanse ak 12 epi apresa tou senpleman endike konbyen nou bezwen ajoute oswa soustraksyon pou jwenn pwochen nimewo a. Ak sekans sa a nan kodaj delta pran fòm sa a:

12 1 1 0 0 -1 0 1

Done konvèti yo pa pi piti pase done orijinal yo, men li pi fasil pou konprese li. Aplike delta kodaj anvan kodaj longè kouri ka ede anpil pandan y ap toujou konpresyon san pèt.

Delta kodaj se youn nan kèk teknik yo itilize deyò blòk 8x8. Nan 64 koyefisyan DCT yo, youn se tou senpleman yon fonksyon vag konstan (koulè solid). Li reprezante klète an mwayèn nan chak blòk pou konpozan luma yo, oswa mwayèn blueness pou konpozan Cb yo, ak sou sa. Premye valè chak blòk DCT yo rele valè DC, epi chak valè DC se delta kode ki gen rapò ak sa yo anvan yo. Se poutèt sa, chanje klète premye blòk la pral afekte tout blòk yo.

Mistè final la rete: ki jan chanje sengilye a konplètman ruine foto a tout antye? Jiskaprezan, nivo konpresyon pa te gen pwopriyete sa yo. Repons lan manti nan header JPEG la. Premye 500 bytes yo genyen metadata sou imaj la - lajè, wotè, elatriye, epi nou poko travay avèk yo.

San yo pa yon header li prèske enposib (oswa trè difisil) dekode JPEG. Li pral sanble kòm si mwen ap eseye dekri foto a pou ou, epi mwen kòmanse envante mo yo nan lòd yo transmèt enpresyon mwen an. Pwobableman deskripsyon an ap byen kondanse, paske mwen ka envante mo ki gen egzakteman siyifikasyon mwen vle transmèt, men pou tout lòt moun yo pa pral fè sans.

Li son estipid, men se egzakteman sa k ap pase. Chak imaj JPEG konprese ak kòd espesifik pou li. Diksyonè kòd la estoke nan header la. Teknik sa a rele kòd Huffman ak vokabilè a rele Huffman tab. Nan tèt la, tab la make ak de byte - 255 ak Lè sa a, 196. Chak eleman koulè ka gen tab pwòp li yo.

Chanjman nan tab yo pral radikalman afekte nenpòt imaj. Yon bon egzanp se chanje 15yèm liy lan nan 1.

Ki jan fòma JPEG la ap travay

Sa rive paske tab yo presize kijan yo ta dwe li moso endividyèl yo. Jiskaprezan nou te travay sèlman ak nimewo binè nan fòm desimal. Men, sa a kache nan men nou lefèt ke si ou vle estoke nimewo a 1 nan yon byte, li pral sanble ak 00000001, paske chak byte dwe gen egzakteman uit Bits, menm si se sèlman youn nan yo ki nesesè.

Sa a se potansyèlman yon gwo fatra nan espas si ou gen anpil ti nimewo. Kòd Huffman se yon teknik ki pèmèt nou detann egzijans sa a ke chak nimewo dwe okipe uit bit. Sa vle di ke si ou wè de byte:

234 115

Lè sa a, depann sou tablo Huffman, sa yo ta ka twa nimewo. Pou ekstrè yo, ou bezwen premye kraze yo an ti moso endividyèl:

11101010 01110011

Lè sa a, nou gade tab la pou konnen kijan pou gwoup yo. Pou egzanp, sa a ta ka premye sis bit yo, (111010), oswa 58 nan desimal, ki te swiv pa senk bit (10011), oswa 19, epi finalman kat dènye bit yo (0011), oswa 3.

Se poutèt sa, li trè difisil pou konprann bytes yo nan etap sa a nan konpresyon. Bytes pa reprezante sa yo sanble. Mwen pa pral antre nan detay sou travay ak tab la nan atik sa a, men materyèl yo sou pwoblèm sa a sou entènèt ase.

Yon trik enteresan ou ka fè ak konesans sa a se separe header a soti nan JPEG a epi estoke li separeman. An reyalite, li sanble ke sèlman ou ka li dosye a. Facebook fè sa pou fè fichiers menm pi piti.

Ki lòt bagay ka fè se chanje tab la Huffman byen yon ti jan. Pou lòt moun li pral sanble ak yon foto kase. Epi sèlman ou pral konnen fason majik la ranje li.

Ann rezime: Se konsa, sa ki nesesè yo dekode JPEG? Nesesè:

  1. Ekstrè tab Huffman (yo) soti nan header la epi dekode ti moso yo.
  2. Ekstrè koyefisyan transfòmasyon kosinis disrè pou chak eleman koulè ak luminans pou chak blòk 8x8, fè transfòmasyon envès longè ak delta kodaj.
  3. Konbine kosinis ki baze sou koyefisyan pou jwenn valè pixel pou chak blòk 8x8.
  4. Echèl eleman koulè si yo te fè sou-échantillonnage (enfòmasyon sa a se nan tèt la).
  5. Konvèti valè YCbCr ki kapab lakòz yo pou chak pixel nan RGB.
  6. Montre imaj la sou ekran an!

Travay serye pou tou senpleman gade yon foto ak yon chat! Sepandan, sa mwen renmen sou li se ke li montre ki jan moun-santre teknoloji JPEG se. Li baze sou sengularite pèsepsyon nou an, ki pèmèt nou reyalize pi bon konpresyon pase teknoloji konvansyonèl yo. Epi kounye a ke nou konprann ki jan JPEG travay, nou ka imajine ki jan teknoloji sa yo ka transfere nan lòt zòn. Pou egzanp, delta kodaj nan videyo ka bay yon rediksyon enpòtan nan gwosè fichye a, paske gen souvan zòn antye ki pa chanje soti nan ankadreman an ankadreman (pa egzanp, background nan).

Kòd yo itilize nan atik la, li louvri, epi li gen enstriksyon sou fason pou ranplase foto yo ak pwòp ou yo.

Sous: www.habr.com

Add nouvo kòmantè