JPEG. Algoritmu tal-kompressjoni

Hello mill-ġdid! Sibt dan l-artiklu miktub lura f'Mejju 2019. Din hija kontinwazzjoni ta' sensiela ta' artikli dwar WAVE u JPEG, hawn l-ewwel. Din il-pubblikazzjoni se tinkludi informazzjoni dwar l-algoritmu tal-kodifikazzjoni tal-immaġni u l-format innifsu kollu kemm hu.

Niskata storja

Mgħarfa ta' artiklu tal-Wikipedija:

JPEG (Grupp Konġunt ta' Esperti Fotografiċi) huwa wieħed mill-formati popolari tal-grafika raster użati għall-ħażna ta' ritratti u stampi simili.

Dan l-istandard ġie żviluppat mill-Grupp Konġunt ta' Esperti Fotografiċi lura fl-1991 għal kompressjoni effiċjenti tal-immaġni.

Kif l-immaġini jmorru minn mhux maħdum għal JPEG?

Xi nies jaħsbu li l-immaġini JPEG huma dejta mhux ipproċessata kkompressata bl-użu tal-metodu Huffman, iżda dan mhux minnu. Qabel il-kompressjoni tal-kontroll, id-data tivvjaġġa triq twila.

L-ewwel, il-mudell tal-kulur jinbidel minn RGB għal YCbCr. Hemm anke algoritmu speċjali għal dan - hawn. Y mhix mimsusa, peress li hija responsabbli għall-luminożità, u l-bidla tagħha tkun notevoli.

L-ewwel ħaġa li għandek tagħmel bl-immaġni hija "tnaqqija" (sottokampjunar). Dan huwa faċli biex jinftiehem: tittieħed firxa ta 'pixels 2x2, imbagħad jittieħdu Cb u Cr - il-valuri medji ta' kull wieħed mill-komponenti YCbCr ta 'dawn l-4 pixels. Allura, irbaħna 6 bytes, minflok 4 Y, 4 Cb, 4 Cr sirna 4 Y u l-istess Cb u Cr għal kull wieħed minnhom (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). Anke fuq skala 2x2, kompressjoni lossy bi proporzjon ta 'kompressjoni 2:1 ħsejjes solidi. Dan japplika għall-immaġni kollha. U għalhekk - niżlu nofs daqs. U nistgħu nużaw din it-teknika grazzi għall-perċezzjoni tal-kulur tagħna. Persuna faċilment tinnota differenza fil-luminożità, iżda mhux fil-kulur, jekk tkun medja fuq blokka żgħira ta 'pixels. It-tnaqqija jista 'jsir ukoll f'linja, 4 pixels orizzontalment u vertikalment. L-ewwel għażla tintuża aktar spiss. Jekk il-kwalità tal-immaġini hija importanti, allura d-deċimazzjoni ma titwettaq xejn.
Illustrazzjoni viżwali tat-tnaqqija (Habr ma ħalliniex indaħħal gif) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

Il-parti prinċipali tal-preparazzjoni

PrEP

Issa tiġi l-aktar parti diffiċli u meħtieġa. L-immaġni kollha hija maqsuma fi blokki 8x8 (il-mili jintuża jekk ir-riżoluzzjoni mhix multiplu tan-naħa tal-blokka).

Issa applika għal kull blokk DCT (Trasformazzjoni tal-Cosine Diskreta). F'din il-parti, dak kollu li mhux meħtieġ jitneħħa mill-istampa. Billi tuża DCT, trid tifhem jekk blokka partikolari (8 × 8) tiddeskrivix xi parti monotona tal-immaġni: is-sema, il-ħajt; jew fih struttura kumplessa (xagħar, simboli, eċċ.). Huwa loġiku li 64 pixel ta 'kulur simili jistgħu jiġu deskritti b'1 biss, għaliex id-daqs tal-blokk huwa diġà magħruf. Tant għall-kompressjoni: 64 sa 1.

DCT iddawwar il-blokka fi spettru, u fejn il-qari jinbidel drastikament, il-koeffiċjent isir pożittiv, u iktar ma tkun qawwija t-tranżizzjoni, iktar ikun għoli l-output. Fejn il-koeffiċjent huwa ogħla, l-istampa turi tranżizzjonijiet ċari fil-kulur u l-luminożità, fejn huwa aktar baxx - bidliet dgħajfa (bla xkiel) fil-valuri tal-komponenti YCbCr fil-blokka.

Kwantizzazzjoni

Is-settings tal-kompressjoni huma diġà applikati hawn. Kull wieħed mill-koeffiċjenti f'kull waħda mill-matriċi 8x8 huwa diviż b'ċertu numru. Jekk mhux se tnaqqas il-kwalità tal-immaġni wara l-modifiki kollha tagħha, allura d-diviżur għandu jkun wieħed. Jekk il-memorja okkupata minn dan ir-ritratt hija aktar importanti għalik, allura d-diviżur ikun akbar minn 1, u l-kwozjent ikun imqarreb. Jirriżulta li wara l-arrotondament ħafna drabi tispiċċa b'ħafna żerijiet.

Il-kwantizzazzjoni ssir biex tinħoloq il-possibbiltà ta 'kompressjoni saħansitra akbar. Hawn kif jidher billi tuża l-eżempju tal-kwantizzazzjoni tal-graff y = sin(x):

JPEG. Algoritmu tal-kompressjoni

Kompressjoni

L-ewwel ngħaddu mill-matriċi f'mudell ta 'żig-zag:

JPEG. Algoritmu tal-kompressjoni

Ikollna firxa waħda dimensjonali bin-numri. Naraw li hemm ħafna żerijiet fiha, jistgħu jitneħħew. Biex tagħmel dan, minflok sekwenza ta 'ħafna żerijiet, indaħħlu 1 żero u wara numru li jindika n-numru tagħhom fis-sekwenza. Dan il-mod tista 'terġa' ssettja għal 1/3 tad-daqs tal-firxa kollha. U allura aħna sempliċement nikkompressaw din il-firxa billi tuża l-metodu Huffman u niktbuha fil-fajl innifsu.

Fejn jintuża

Kullimkien. Bħal PNG, JPEG jintuża f'kameras, OSs (bħala logos tal-kumpaniji, ikoni tal-applikazzjoni, thumbnails) u fl-oqsma kollha possibbli fejn l-immaġini jeħtieġ li jinħażnu b'mod effiċjenti.

Output

Bħalissa, l-għarfien dwar JPEG issa huwa ta 'valur biss għal skopijiet edukattivi, minħabba li diġà huwa mibni kullimkien u ottimizzat minn gruppi kbar ta' nies, iżda l-granit tax-xjenza għadu fit-togħma.

Sorsi

Artiklu dwar YCbCr fuq il-Wikipedija
Artiklu tal-Wikipedija fuq JPEG
Ftit dwar il-PrEP mill-post Pikabu
Artiklu tal-Wikipedija dwar il-PrEP

Sors: www.habr.com

Żid kumment