Kamoo sebopeho sa JPEG se sebetsang kateng

Litšoantšo tsa JPEG li fumaneha hohle bophelong ba rona ba digital, empa ka mor'a mokhoa ona oa tlhokomeliso ho na le li-algorithms tse tlosang lintlha tse sa bonahaleng mahlong a motho. Sephetho ke boleng bo phahameng ka ho fetisisa ba pono ka boholo bo bonyenyane ba faele - empa e sebetsa hantle hakae? A re boneng hore na hantle-ntle mahlo a rōna ha a bone eng!

Kamoo sebopeho sa JPEG se sebetsang kateng

Ho bonolo ho nka habonolo bokhoni ba ho romella motsoalle foto mme u se ke ua tšoenyeha ka hore na ba sebelisa sesebelisoa sefe, sebatli kapa sistimi ea ts'ebetso - empa ho ne ho se joalo kamehla. Mathoasong a lilemo tsa bo-1980, lik’homphieutha li ne li khona ho boloka le ho bontša litšoantšo tsa digital, empa ho ne ho e-na le likhopolo tse ngata tse hlōlisanang mabapi le tsela e molemohali ea ho etsa sena. U ne u ke ke ua romela setšoantšo ho tloha khomphuteng e 'ngoe ho ea ho e' ngoe 'me u tšepa hore se tla sebetsa.

Ho rarolla bothata bona, komiti ea litsebi tse tsoang lefats'eng lohle e ile ea bokelloa ka 1986 e bitsoang "Sehlopha se Kopanetsoeng sa Litsebi tsa Litšoantšo» (Joint Photographic Experts Group, JPEG), e thehiloeng e le boiteko bo kopanetsoeng pakeng tsa International Organization for Standardization (ISO) le International Electrotechnical Commission (IEC), mekhatlo e 'meli ea litekanyetso tsa machaba e ntlo-khōlō e Geneva, Switzerland.

Sehlopha sa batho se bitsoang JPEG se thehile JPEG digital image compression standard ka 1992. Mang kapa mang ea sebelisitseng Marang-rang mohlomong o kile a kopana le litšoantšo tse kentsoeng tsa JPEG. Ena ke mokhoa o atileng haholo oa ho kenyelletsa, ho romella le ho boloka litšoantšo. Ho tloha maqepheng a tepo ho ea ho lengolo-tsoibila ho ea ho mecha ea litaba ea sechaba, JPEG e sebelisoa makhetlo a libilione ka letsatsi — hoo e batlang e le nako le nako ha re sheba setšoantšo inthaneteng kapa ha re se romela. Ntle le JPEG, tepo e ne e tla hloka mebala e fokolang, butle, 'me mohlomong e be le litšoantšo tse fokolang tsa katse!

Sengoliloeng sena se bua ka mokhoa oa ho khetholla setšoantšo sa JPEG. Ka mantsoe a mang, ho hlokahala eng ho fetolela data e hatisitsoeng e bolokiloeng komporong hore e be setšoantšo se hlahang skrineng. Sena ke sa bohlokoa ho tseba, eseng feela hobane ho le bohlokoa ho utloisisa theknoloji eo re e sebelisang letsatsi le leng le le leng, empa hape hobane ka ho notlolla maemo a khatello, re ithuta haholoanyane ka pono le pono, le lintlha life tseo mahlo a rona a li utloang haholo.

Ho phaella moo, ho bapala ka litšoantšo ka tsela ena ho thahasellisa haholo.

Kamoo sebopeho sa JPEG se sebetsang kateng

E sheba ka hare ho JPEG

K'homphieutheng, ntho e 'ngoe le e' ngoe e bolokiloe e le tatellano ea linomoro tsa binary. Ka tloaelo likotoana tsena, li-zero le tse ling, li hlophisoa ka lihlopha tsa tse robeli ho etsa li-byte. Ha u bula setšoantšo sa JPEG k'homphieutheng, ntho e itseng (sebatli, tsamaiso ea ts'ebetso, ntho e 'ngoe) e tlameha ho khetholla li-byte, ho tsosolosa setšoantšo sa pele e le lethathamo la mebala e ka bontšoang.

Haeba u khoasolla monate ona foto ea katse 'me u e bule ka har'a mohlophisi oa mongolo, u tla bona sehlopha sa litlhaku tse sa lumellaneng.

Kamoo sebopeho sa JPEG se sebetsang kateng
Mona ke sebelisa Notepad ++ ho hlahloba likahare tsa faele, kaha bahlophisi ba kamehla ba mongolo joaloka Notepad ho Windows ba tla senya faele ea binary ka mor'a ho boloka 'me e ke ke ea hlola e khotsofatsa sebopeho sa JPEG.

Ho bula setšoantšo ka har'a mochine oa lentsoe ho ferekanya k'homphieutha, feela joalokaha u ferekanya boko ba hao ha u itlotsa mahlo 'me u qala ho bona matheba a mebala!

Matheba ana ao u a bonang a tsejoa e le phosphenes, 'me ha se phello ea ho hlasimoloha ha leseli kapa pono e fosahetseng e hlahisoang ke kelello. Li etsahala hobane boko ba hao bo nahana hore matšoao leha e le afe a motlakase methapong ea optic a fetisa boitsebiso ka khanya. Boko bo hloka ho etsa likhakanyo tsena hobane ha ho tsela ea ho tseba hore na pontšo ke molumo, pono, kapa ntho e 'ngoe. Methapo eohle ea 'mele e fetisa matla a motlakase a tšoanang hantle. Ka ho sebelisa khatello mahlong a hau, u romela lipontšo tse sa bonahaleng, empa u kenya tšebetsong li-receptor tsa mahlo, tseo boko ba hao bo li hlalosang - tabeng ena, ka phoso - e le ntho e bonahalang. U ka bona khatello ka tsela ea sebele!

Ke ntho e qabolang ho nahana hore na lik’homphieutha li tšoana joang le boko, empa hape ke papiso e molemo ho bontša hore na moelelo oa boitsebiso—ebang o fetisetsoa ’meleng ke methapo kapa o bolokoa k’homphieutheng—o itšetlehile ka hore na o hlalosoa joang. Lintlha tsohle tsa binary li entsoe ka XNUMXs le XNUMXs, likarolo tsa motheo tse ka fetisang boitsebiso ba mofuta ofe kapa ofe. Hangata khomphuta ea hau e fumana mokhoa oa ho li hlalosa ka ho sebelisa lintlha tse kang li-extensions tsa lifaele. Joale re e qobella ho li hlalosa joalo ka mongolo, hobane ke seo mohlophisi oa mongolo a se lebelletseng.

Ho utloisisa mokhoa oa ho khetholla JPEG, re hloka ho bona lipontšo tsa pele ka botsona - data ea binary. Sena se ka etsoa ho sebelisa mohlophisi oa hexadecimal, kapa ka kotloloho ho leqephe la webo la sengoloa sa mantlha! Ho na le setšoantšo, haufi le moo tšimong ea mongolo ho na le li-byte tsohle tsa eona (ntle le hlooho), tse hlahisoang ka mokhoa oa decimal. U ka li fetola, 'me script e tla tsosolosa le ho hlahisa setšoantšo se secha ka fofa.

Kamoo sebopeho sa JPEG se sebetsang kateng

U ka ithuta ho hongata ka ho bapala le mohlophisi enoa. Mohlala, na u ka tseba hore na lipikselse li bolokiloe ka tatellano efe?

Ntho e makatsang ka mohlala ona ke hore ho fetola linomoro tse ling ha ho ame setšoantšo ho hang, empa, mohlala, haeba u nkela nomoro ea 17 sebakeng sa 0 moleng oa pele, setšoantšo se tla senyeha ka ho feletseng!

Kamoo sebopeho sa JPEG se sebetsang kateng

Liphetoho tse ling, joalo ka ho nkela 7 moleng oa 1988 ka nomoro ea 254, li fetola 'mala, empa ke lipikselse tse latelang feela.

Kamoo sebopeho sa JPEG se sebetsang kateng

Mohlomong ntho e makatsang ka ho fetisisa ke hore linomoro tse ling ha li fetole 'mala feela, empa le sebōpeho sa setšoantšo. Fetola 70 moleng oa 12 ho isa ho 2 'me u shebe mola o ka holimo oa setšoantšo ho bona seo ke se bolelang.

Kamoo sebopeho sa JPEG se sebetsang kateng

Mme ho sa tsotelehe hore na o sebelisa setšoantšo sefe sa JPEG, u tla lula u fumana mekhoa ena e makatsang ea chess ha u hlophisa li-byte.

Ha u bapala le mohlophisi, ho thata ho utloisisa hore na foto e etsoa joang hape ho tsoa ho li-byte tsena, kaha compression ea JPEG e na le mahlale a mararo a fapaneng, a sebelisoang ka tatellano maemong. Re tla ithuta e 'ngoe le e 'ngoe ka thoko ho senola boitšoaro bo makatsang boo re bo bonang.

Methati e meraro ea compression ea JPEG:

  1. Mehlala ea mebala.
  2. Phetoho e fapaneng ea cosine le sampole.
  3. Kenya bolelele ba khouto, makgobokgobo и Huffman

Ho u fa leseli la boholo ba khatello, hlokomela hore setšoantšo se kaholimo se emetse linomoro tsa 79, kapa 819 KB. Haeba re e bolokile ntle le khatello, pixel ka 'ngoe e ne e tla hloka linomoro tse tharo - bakeng sa likarolo tse khubelu, tse tala le tse putsoa. Sena se ka ba lipalo tse 79, kapa hoo e ka bang. 917 KB. Ka lebaka la khatello ea JPEG, faele ea ho qetela e fokotsehile ka makhetlo a fetang 700!

Ha e le hantle, setšoantšo sena se ka hatelloa le ho feta. Ka tlase ho na le litšoantšo tse peli tse bapileng - foto e ka letsohong le letona e hatelitsoe ho 16 KB, ke hore, makhetlo a 57 a manyane ho feta mofuta o sa hatelloang!

Kamoo sebopeho sa JPEG se sebetsang kateng

Ha u sheba ka hloko, u tla bona hore litšoantšo tsena ha li tšoane. Ka bobeli ke litšoantšo tse nang le khatello ea JPEG, empa e nepahetseng e nyane haholo ka molumo. E boetse e shebahala e le mpe le ho feta (sheba mabala a ka morao a mebala). Ke ka lebaka leo JPEG e boetse e bitsoa ho hatella ha tahlehelo; Nakong ea ts'ebetso ea khatello, setšoantšo se fetoha 'me se lahleheloa ke lintlha tse ling.

1. Mebala e menyenyane

Mona ke setšoantšo se nang le boemo ba pele feela ba ho hatella.

Kamoo sebopeho sa JPEG se sebetsang kateng
(Phetolelo e sebetsang - ho ea mantlha lingoliloeng). Ho tlosa nomoro e le 'ngoe ho senya mebala eohle. Leha ho le joalo, haeba ho tlosoa linomoro tse tšeletseng hantle, ha ho na phello ho setšoantšo.

Hona joale lipalo li se li le bonolo ho li hlalosa. Ena ke hoo e batlang e le lethathamo le bonolo la mebala, moo byte e 'ngoe le e' ngoe e fetolang pixel e le 'ngoe hantle, empa ka nako e ts'oanang e se e le halofo ea boholo ba setšoantšo se sa hatelloang (se ka nkang hoo e ka bang 300 KB ka boholo bona bo fokolitsoeng). A na u ka nahana hore na ke hobane'ng?

U ka bona hore linomoro tsena ha li emele likarolo tse tloaelehileng tse khubelu, tse tala le tse putsoa, ​​​​hobane ha re ka fetola linomoro tsohle ka li-zero, re tla fumana setšoantšo se setala (ho e-na le se tšoeu).

Kamoo sebopeho sa JPEG se sebetsang kateng

Sena ke hobane li-byte tsena li emela Y (khanya),

Kamoo sebopeho sa JPEG se sebetsang kateng

Cb (boputsoa bo amanang le bona),

Kamoo sebopeho sa JPEG se sebetsang kateng

le litšoantšo tsa Cr (bofubelu bo amanang le bona).

Kamoo sebopeho sa JPEG se sebetsang kateng

Hobaneng u sa sebelise RGB? Ntle le moo, ke kamoo li-skrini tse ngata tsa sejoale-joale li sebetsang kateng. Sesebelisoa sa hau se ka bonts'a 'mala ofe kapa ofe, ho kenyeletsoa bofubelu, botala le boputsoa, ​​​​ka matla a fapaneng bakeng sa pixel ka 'ngoe. Bosoeu bo fumanoa ka ho bulela tse tharo kaofela ka khanya e felletseng, le botšo ka ho li tima.

Kamoo sebopeho sa JPEG se sebetsang kateng

Sena se boetse se tšoana haholo le kamoo leihlo la motho le sebetsang kateng. Li-receptor tsa mebala mahlong a rona li bitsoa "likhoune“, ’me li arotsoe ka mefuta e meraro, eo e ’ngoe le e ’ngoe ea eona e nang le kutloelo-bohloko ho ’mala o mofubelu, o motala, kapa o moputsoa [Likhoune tsa mofuta oa S li utloa bohloko ka boputsoa bo boputsoa (S ho tsoa ho English Short - short-wave spectrum), M -mofuta - ka botala-bosehla (M ho tloha ho English Medium - medium-wave), le mofuta oa L - ka mosehla o mofubelu (L ho tloha ho English Long - long-wave) likarolo tsa spectrum. Ho ba teng ha mefuta ena e meraro ea li-cones (le lithupa, tse nang le kutloelo-bohloko karolong e tala ea emeralde ea spectrum) ho fa motho pono ea mebala. / hoo e ka bang. fetolela.]. Lithupa, mofuta o mong oa photoreceptor mahlong a rōna, o khona ho lemoha ho fetoha ha khanya, empa o khona ho lemoha mebala haholoanyane. Mahlo a rona a na le lithupa tse ka bang limilione tse 120 le li-cones tse limilione tse 6 feela.

Ke ka lebaka leo mahlo a rona a leng betere ho bona ho fetoha ha khanya ho feta ho fetoha ha 'mala. Haeba u arola 'mala ho khanya, u ka tlosa' mala o monyenyane 'me ha ho motho ea tla hlokomela letho. Chroma subsampling ke mokhoa oa ho emela likarolo tsa mebala ea setšoantšo ka qeto e tlase ho feta likarolo tsa khanya. Mohlala o ka holimo, pixel e 'ngoe le e' ngoe e na le motsoako oa Y o le mong hantle, 'me sehlopha ka seng sa lipikselse tse' nè se na le Cb e le 'ngoe hantle le karolo e le' ngoe ea Cr. Ka hona, setšoantšo se na le tlhahisoleseding ea mebala e fokolang ka makhetlo a mane ho feta ea pele.

Sebaka sa mebala sa YCbCr ha se sebelisoe feela ho JPEG. E ile ea qaptjoa qalong ka 1938 bakeng sa mananeo a thelevishene. Ha se motho e mong le e mong ea nang le TV ea 'mala, kahoo ho arola mebala le khanya ho ile ha lumella bohle ho fumana letšoao le tšoanang,' me lithelevishene tse se nang mebala li ne li sebelisa feela karolo ea khanya.

Kahoo ho tlosa nomoro e le 'ngoe ho mohlophisi ho senya mebala eohle ka ho feletseng. Likarolo li bolokiloe ka mokhoa oa YYYY Cb Cr (ha e le hantle, eseng hakaalo ka tatellano eo - taelo ea polokelo e hlalositsoe sehloohong sa faele). Ho tlosa nomoro ea pele ho tla etsa hore boleng ba pele ba Cb bo lemohuoe e le Y, Cr e le Cb, 'me ka kakaretso u tla ba le phello ea domino e fetolang mebala eohle ea setšoantšo.

Tlhaloso ea JPEG ha e u qobelle ho sebelisa YCbCr. Empa lifaele tse ngata li e sebelisa hobane e hlahisa litšoantšo tse theotsoeng hantle ho feta RGB. Empa ha o a tlameha ho nka lentswe la ka bakeng sa yona. Ipone ka bouena tafoleng e ka tlase hore na sampole ea karolo ka 'ngoe e tla shebahala joang ho RGB le YCbCr ka bobeli.

Kamoo sebopeho sa JPEG se sebetsang kateng
(Phetolelo e sebetsang - ho ea mantlha lingoliloeng).

Ho tlosoa ha 'mala o moputsoa ha ho hlokomelehe joaloka bofubelu kapa botala. Ke ka lebaka la likhoune tse limilione tse tšeletseng tse mahlong a hau, hoo e ka bang 64% e na le kutloelo-bohloko ho bofubelu, 32% ho botala le 2% ho boputsoa.

Ho theoleloa ha karolo ea Y (ka tlaase ka ho le letšehali) ho bonoa hantle. Esita le phetoho e nyenyane e bonahala.

Ho fetola setšoantšo ho tloha ho RGB ho ea ho YCbCr ha ho fokotse boholo ba faele, empa ho etsa hore ho be bonolo ho fumana lintlha tse sa bonahaleng tse ka tlosoang. Khatello ea tahlehelo e etsahala mothating oa bobeli. E ipapisitse le mohopolo oa ho hlahisa data ka mokhoa o hatellehang haholoanyane.

2. Discrete cosine fetola le sampole

Boemo bona ba khatello, boholo ba eona, ke hore na JPEG e bua ka eng. Kamora ho fetolela mebala ho YCbCr, likarolo li hatelloa ka bonngoe, kahoo re ka tsepamisa maikutlo ho karolo ea Y feela. 'Me sena ke hore na likarolo tsa Y li shebahala joang kamora ho sebelisa lera lena.

Kamoo sebopeho sa JPEG se sebetsang kateng
(Phetolelo e sebetsang - ho ea mantlha lingoliloeng). Mofuteng oa ho sebelisana, ho tobetsa pixel ho tsamaisa mohlophisi ho ea moleng o e emelang. Leka ho tlosa linomoro qetellong kapa ho kenya li-zero tse seng kae palo e itseng.

Ha u sheba ka lekhetlo la pele, e shebahala joaloka compression e mpe haholo. Ho na le li-pixels tse 100 setšoantšong, 'me ho nka linomoro tse 000 ho emela khanya ea tsona (Y-components) - hoo ho hobe ho feta ho hatella letho ho hang!

Leha ho le joalo, hlokomela hore boholo ba linomoro tsena ke zero. Ho feta moo, li-zero tsohle tse qetellong ea mela li ka tlosoa ntle le ho fetola setšoantšo. Ho setse lipalo tse ka bang 26 000, ’me sena se batla se le ka tlaase ho makhetlo a 4!

Boemo bona bo na le sephiri sa mekhoa ea chess. Ho fapana le litlamorao tse ling tseo re li boneng, ponahalo ea mekhoa ena ha se glitch. Ke litene tsa mohaho oa setšoantšo sohle. Mohala o mong le o mong oa mohlophisi o na le linomoro tsa 64 hantle, li-coefficients tsa discrete cosine transform (DCT) tse tsamaellanang le matla a lipaterone tse 64 tse ikhethang.

Mekhoa ena e thehiloe ho latela morero oa cosine. Mona ke hore na tse ling tsa tsona li shebahala joang:

Kamoo sebopeho sa JPEG se sebetsang kateng
8 ho ​​tse 64 tse fapaneng

Ka tlase ke setšoantšo se bonts'ang lipaterone tsohle tse 64.

Kamoo sebopeho sa JPEG se sebetsang kateng
(Phetolelo e sebetsang - ho ea mantlha lingoliloeng).

Mekhoa ena e bohlokoa haholo hobane e theha motheo oa litšoantšo tsa 8x8. Haeba u sa tloaelane le linear algebra, sena se bolela hore setšoantšo sefe kapa sefe sa 8x8 se ka etsoa ho tsoa ho lipaterone tsena tse 64. DCT ke mokhoa oa ho arola litšoantšo ka li-block tsa 8x8 le ho fetola boloko bo bong le bo bong hore e be motsoako oa li-coefficients tsena tse 64.

Ho bonahala eka ke boselamose hore setšoantšo leha e le sefe se ka etsoa ka mekhoa e khethehileng ea 64. Leha ho le joalo, sena se tšoana le ho bolela hore sebaka leha e le sefe sa Lefatše se ka hlalosoa ka linomoro tse peli - latitude le longitude [e bontšang li-hemispheres / approx. fetolela.]. Re atisa ho nahana ka bokaholimo ba Lefatše e le mahlakore a mabeli, kahoo re hloka linomoro tse peli feela. Setšoantšo sa 8x8 se na le litekanyo tse 64, kahoo re hloka linomoro tse 64.

Ha e-so hlake hore na sena se re thusa joang tabeng ea khatello. Haeba re hloka linomoro tse 64 ho emela setšoantšo sa 8x8, hobaneng see se ka ba betere ho feta ho boloka likarolo tse 64 tsa khanya? Re etsa sena ka lebaka le tšoanang re fetotse linomoro tse tharo tsa RGB hore e be linomoro tse tharo tsa YCbCr: e re lumella ho tlosa lintlha tse poteletseng.

Ho thata ho bona hore na ke lintlha life tse tlositsoeng mothating ona hobane JPEG e sebetsa DCT ho li-block tsa 8x8. Leha ho le joalo, ha ho motho ea re thibelang ho e sebelisa setšoantšong sohle. Mona ke hore na DCT e shebahala joang bakeng sa karolo ea Y e sebelisitsoeng setšoantšong sohle:

Kamoo sebopeho sa JPEG se sebetsang kateng

Linomoro tse fetang 60 li ka tlosoa qetellong ntle le liphetoho tse hlokomelehang fotong.

Kamoo sebopeho sa JPEG se sebetsang kateng

Leha ho le joalo, hlokomela hore haeba re ka fokotsa lipalo tse hlano tsa pele, phapang e tla bonahala.

Kamoo sebopeho sa JPEG se sebetsang kateng

Linomoro qalong li emela liphetoho tse fokolang tsa maqhubu setšoantšong, tseo mahlo a rona a li bonang hantle. Linomoro ho ea qetellong li bontša liphetoho ho maqhubu a phahameng ao ho leng thata ho a hlokomela. Ho "bona seo leihlo le ke keng la se bona," re ka arola lintlha tsena tse holimo ka ho hlakola linomoro tsa pele tse 5000.

Kamoo sebopeho sa JPEG se sebetsang kateng

Re bona libaka tsohle tsa setšoantšo moo phetoho e kholo ka ho fetisisa e hlahang ho tloha ho pixel ho ea ho pixel. Mahlo a katse, litelu tsa hae, kobo ea terry le meriti e hukung e ka tlase ho le letšehali lia hlahella. U ka fetela pele ka ho hlakola linomoro tsa pele tse 10:

Kamoo sebopeho sa JPEG se sebetsang kateng

20 000:

Kamoo sebopeho sa JPEG se sebetsang kateng

40 000:

Kamoo sebopeho sa JPEG se sebetsang kateng

60 000:

Kamoo sebopeho sa JPEG se sebetsang kateng

Lintlha tsena tse phahameng tsa maqhubu li tlosoa ke JPEG nakong ea mohato oa khatello. Ha ho tahlehelo ea ho fetolela mebala ho li-coefficients tsa DCT. Tahlehelo e etsahala mohatong oa lisampole, moo litekanyetso tse phahameng kapa tse haufi le zero li tlosoang. Ha o theola boleng ba ho boloka JPEG, lenaneo le eketsa moeli oa palo ea boleng bo tlositsoeng, e fokotsang boholo ba faele, empa e etsa hore setšoantšo se be pixelated haholoanyane. Ke kahoo setšoantšo se karolong ea pele, e neng e le nyenyane ka makhetlo a 57, e shebahala tjena. Sebaka se seng le se seng sa 8x8 se ne se emeloa ke li-coefficients tse fokolang tsa DCT ha li bapisoa le mofuta oa boleng bo holimo.

U ka theha phello e pholileng joalo ka ho phalla butle-butle ha litšoantšo. U ka hlahisa setšoantšo se lerootho se ntseng se ba le lintlha tse ngata ha li-coefficients tse ngata li ntse li jarolloa.

Mona, bakeng sa ho ithabisa, ke seo u se fumanang u sebelisa linomoro tse 24 feela:

Kamoo sebopeho sa JPEG se sebetsang kateng

Kapa 5000 feela:

Kamoo sebopeho sa JPEG se sebetsang kateng

Lerootho haholo, empa ka tsela e itseng oa hlokomeleha!

3. Matha bolelele ba khouto, delta le Huffman

Ho fihlela joale, mekhahlelo eohle ea khatello e fokotsehile. Mokhahlelo oa ho qetela, ho fapana le hoo, o tsoela pele ntle le tahlehelo. Ha e tlose tlhahisoleseling, empa e fokotsa boholo ba faele haholo.

U ka hatella ntho joang ntle le ho lahla boitsebiso? Ak'u inahanele hore na re ka hlalosa joang khutlontsi e bonolo e ntšo ea 700 x 437.

JPEG e sebelisa linomoro tsa 5000 bakeng sa sena, empa liphello tse molemo haholo li ka finyelloa. A na u ka inahanela moralo oa khouto o ka hlalosang setšoantšo se joalo ka li-byte tse fokolang kamoo ho ka khonehang?

Morero o fokolang oo nka o hlahisang o sebelisa tse 'nè: tse tharo ho emela' mala, le ea bone ho bontša hore na 'mala oo o na le lipikselse tse kae. Mohopolo oa ho emela litekanyetso tse pheta-phetoang ka tsela ena e khutsufalitsoeng o bitsoa "run-length encoding". Ha e na tahlehelo hobane re ka khutlisetsa data e kentsoeng ka sebopeho sa eona sa mantlha.

Faele ea JPEG e nang le khutlonnetsepa e ntšo e kholo haholo ho feta li-byte tse 4 - hopola hore boemong ba DCT, compression e sebelisoa ho li-pixel 8x8. Ka hona, bonyane, re hloka coefficient e le 'ngoe ea DCT bakeng sa lipikselse tse ling le tse ling tse 64. Re hloka e le 'ngoe hobane ho e-na le ho boloka coefficient e le' ngoe ea DCT e lateloa ke zero tse 63, run length encoding e re lumella ho boloka nomoro e le 'ngoe le ho bontša hore "tse ling kaofela ke zero."

Delta encoding ke mokhoa oo ho ona byte ka 'ngoe e nang le phapang ho tsoa ho boleng bo itseng, ho fapana le boleng bo felletseng. Ka hona, ho hlophisa li-byte tse itseng ho fetola 'mala oa lipikselse tse ling kaofela. Ka mohlala, ho e-na le ho boloka

12 13 14 14 14 13 13 14

Re ka qala ka 12 ebe re bontša feela hore na re hloka ho eketsa kapa ho fokotsa bokae ho fumana nomoro e latelang. 'Me tatellano ena ea likhoutu tsa delta e nka sebopeho:

12 1 1 0 0 -1 0 1

Lintlha tse fetotsoeng ha li nyane ho feta data ea mantlha, empa ho bonolo ho e hatella. Ho sebelisa encoding ea delta pele ho encoding ea bolelele ba nako ho ka thusa haholo ha e ntse e le khatello e sa lahleheng.

Delta coding ke e 'ngoe ea mekhoa e fokolang e sebelisoang kantle ho li-block tsa 8x8. Har'a li-coefficients tse 64 tsa DCT, e 'ngoe e mpa e le ts'ebetso ea maqhubu a tsitsitseng ('mala o tiileng). E emela khanya e tloaelehileng ea block e 'ngoe le e' ngoe bakeng sa likarolo tsa luma, kapa karolelano ea blueness bakeng sa likarolo tsa Cb, joalo-joalo. Boleng ba pele ba boloko bo bong le bo bong ba DCT bo bitsoa boleng ba DC, 'me boleng bo bong le bo bong ba DC bo kentsoe delta mabapi le tse fetileng. Ka hona, ho fetola khanya ea block ea pele ho tla ama li-blocks tsohle.

Sephiri sa ho qetela se sala: ho fetola bonngoe ho senya setšoantšo sohle joang? Ho fihlela joale, maemo a khatello ha a so be le thepa e joalo. Karabo e ho hlooho ea JPEG. Li-byte tsa pele tse 500 li na le metadata mabapi le setšoantšo - bophara, bophahamo, joalo-joalo, 'me ha re so sebetse le bona.

Ntle le hlooho ho batla ho sa khonehe (kapa ho thata haholo) ho khetholla JPEG. Ho tla bonahala eka ke leka ho u hlalosetsa setšoantšo sena, 'me ke qala ho qapa mantsoe e le ho fetisa maikutlo a ka. Tlhaloso e kanna ea khutsufatsoa, ​​hobane nka qapa mantsoe a nang le moelelo oo ke batlang ho o fetisa, empa ho ba bang kaofela a ke ke a utloahala.

E utloahala e le bothoto, empa ke sona se etsahalang hantle. Setšoantšo se seng le se seng sa JPEG se hatelloa ka likhoutu tse ikhethileng ho sona. Bukantswe ya khoutu e bolokilwe sehloohong. Mokhoa ona o bitsoa Huffman code mme tlotlontswe e bitswa Tafole ya Huffman. Sehloohong, tafole e tšoailoe ka li-byte tse peli - 255 le 196. Karolo e 'ngoe le e' ngoe ea mebala e ka ba le tafole ea eona.

Liphetoho ho litafole li tla ama setšoantšo leha e le sefe haholo. Mohlala o motle ke ho fetola mola oa 15 ho ea ho oa 1.

Kamoo sebopeho sa JPEG se sebetsang kateng

Sena se etsahala hobane litafole li hlakisa hore na likotoana tsa motho ka mong li lokela ho baloa joang. Ho fihlela joale re sebelitse feela ka linomoro tsa binary ka mokhoa oa decimal. Empa sena se re patela taba ea hore haeba u batla ho boloka nomoro ea 1 ka li-byte, e tla shebahala joaloka 00000001, kaha byte ka 'ngoe e tlameha ho ba le likotoana tse robeli, esita le haeba ho hlokahala e le 'ngoe feela ea tsona.

Sena e kanna ea ba tšenyo e kholo ea sebaka haeba u na le lipalo tse nyane tse ngata. Khoutu ea Huffman ke mokhoa o re lumellang ho phutholoha tlhokahalo ena ea hore nomoro ka 'ngoe e tlameha ho nka likotoana tse robeli. Sena se bolela hore haeba u bona li-byte tse peli:

234 115

Joale, ho itšetlehile ka tafole ea Huffman, tsena e ka ba linomoro tse tharo. Ho li ntša, u lokela ho qala ka ho li arola ka likotoana ka bomong:

11101010 01110011

Ebe re sheba tafole ho fumana mokhoa oa ho li hlopha. Ka mohlala, ena e ka 'na ea e-ba li-bits tse tšeletseng tsa pele, (111010), kapa 58 ho decimal, e lateloa ke li-bits tse hlano (10011), kapa 19,' me qetellong tse 'nè tsa ho qetela (0011), kapa 3.

Ka hona, ho thata haholo ho utloisisa li-byte sethaleng sena sa khatello. Li-byte ha li emele seo li se bonang. Ha ke na ho kena lintlheng tsa ho sebetsa le tafole sehloohong sena, empa lisebelisoa ka taba ena inthaneteng e lekane.

Leqheka le leng le khahlisang leo u ka le etsang ka tsebo ena ke ho arola hlooho ho JPEG le ho e boloka ka thoko. Ha e le hantle, ho bonahala eka ke uena feela ea ka balang faele. Facebook e etsa sena ho etsa hore lifaele li be nyane le ho feta.

Ntho e 'ngoe e ka etsoang ke ho fetola tafole ea Huffman hanyane. Ho ba bang ho tla shebahala joaloka setšoantšo se robehileng. 'Me ke uena feela ea tla tseba tsela ea boselamose ea ho e lokisa.

Ha re akaretsa: joale ho hlokahala eng ho khetholla JPEG? Ho hlokahala:

  1. Ntša (li)tafole (li)tafole tsa Huffman ho tloha hloohong ebe u khetha likotoana.
  2. Ntša li-coefficients tsa discrete tsa cosine bakeng sa 'mala o mong le o mong le karolo ea khanya bakeng sa boloko e' ngoe le e 'ngoe ea 8x8, u etsa liphetoho tse fapaneng tsa bolelele ba nako le likhoutu tsa delta.
  3. Kopanya li-cosine tse thehiloeng ho li-coefficients ho fumana boleng ba pixel bakeng sa block e 'ngoe le e' ngoe ea 8x8.
  4. Eketsa likarolo tsa mebala haeba ho etsoa sampole (tsebiso ena e sehloohong).
  5. Fetolela boleng ba YCbCr bo hlahisitsoeng bakeng sa pixel ka 'ngoe ho RGB.
  6. Hlahisa setšoantšo skrineng!

Mosebetsi o boima oa ho shebella foto le katse feela! Leha ho le joalo, seo ke se ratang ka eona ke hore e bontša kamoo theknoloji ea JPEG e leng batho ka teng. E ipapisitse le likarolo tse ikhethang tsa pono ea rona, e re lumellang ho fihlela khatello e betere ho feta mahlale a tloaelehileng. 'Me kaha joale re utloisisa kamoo JPEG e sebetsang kateng, re ka inahanela hore na mekhoa ena ea theknoloji e ka fetisetsoa libakeng tse ling joang. Ka mohlala, delta encoding ka video e ka fana ka phokotso e kholo ea boholo ba faele, kaha hangata ho na le libaka tse feletseng tse sa fetoheng ho tloha ho foreimi ho ea ho foreimi (mohlala, bokamorao).

Khoutu e sebelisitsoeng sehloohong, e butsoe, 'me e na le litaelo tsa hore na u ka kenya litšoantšo tsa hau joang sebakeng sa hau.

Source: www.habr.com

Eketsa ka tlhaloso