Cum funcționează formatele de imagine și cum le îmbunătățește WebP
Învățarea profundă este viitorul: cum să te antrenezi într-un mod diferențiat și ce oportunități vei avea
Mai avem câteva lucruri în curs de desfășurare a Google I/O. Unul dintre ele este „noul” codec de imagine pentru Web: WebP (Web - Picture, nu și-au rupt capul cu numele). Spun „nou” pentru că a existat deja cu mult timp înainte, dar nu strică să-i dai o recenzie.

Primul lucru este să înțelegem de ce Google depune acest efort. Avem trei codecuri sau formate majore: JPEG, PNG și GIF, datând din 1991, 1996 și respectiv 1987. S-au schimbat multe de atunci, dar chiar și așa aceste codecuri funcționează în continuare. despre.
JPEG este cel mai utilizat nu numai pe internet, ci și în afara acestuia. Cel mai mare avantaj pe care îl are este capacitatea sa de compresie, care poate ajunge până la 100: 1 (o imagine de 100 KB stocată într-un fișier de 1 KB). Dar, desigur, această compresie puternică are dezavantajele sale: pierderea calității. Vom vedea mai târziu de ce se întâmplă acest lucru, dar sunt sigur că artefactele, distorsiunea JPG-urilor sunt familiare tuturor.
Apoi avem formatul GIF. Formatul este de fapt destul de rău: deși compresia este fără pierderi, avem o problemă, și anume că putem reprezenta doar 256 de culori. Pentru a vă face o idee, un ecran normal reprezintă milioane de culori. Rezultatul este că GIF nu este un format de bună calitate și, de fapt, este utilizat doar pentru sigle și animații simple (este singurul care le permite).
În cele din urmă, există PNG. Este un format fără pierderi care acceptă transparența. Problema este că nu atinge o compresie la fel de mare ca JPEG, deci este utilizată doar cu imagini mici și cu puține culori.
WebP unifică avantajele PNG, GIF și JPEG într-un singur format.
La final, avem trei formate diferite și fiecare excelează într-un domeniu în care celelalte nu au nimic de făcut: JPEG pentru fișiere mici, PNG pentru calitate și transparență ridicate și GIF pentru animații.
WebP își propune să unifice toate aceste avantaje într-un singur fișier. Are compresie cu pierderi pentru a reduce dimensiunea fișierului, fără pierderi pentru a menține calitatea (și fișiere încă mai mici decât PNG), acceptă transparență și animații. Formatul final, hai. Cum o fac pe Google?
Cum funcționează codecurile de imagine?
Pentru a înțelege puțin de ce este nevoie de WebP, trebuie să vedem cum funcționează codecurile de imagine. Observați că voi face mai multe simplificări, astfel încât să fie mai bine înțeles.
În primul rând, să ne amintim că o imagine nu este altceva decât o serie de puncte sau pixeli, în care fiecare poziție are cantitățile de roșu, verde și albastru care alcătuiesc culoarea pixelului.
Pierderea compresiei de calitate a imaginii se bazează pe două principii (cel mai important, există multe altele). Principalul este că ochiul uman nu este capabil să distingă multe ușoare schimbări de culoare. Și al doilea, că este mai scurt să salvați o serie de puncte ca funcție. De exemplu, ceea ce este mai scurt de salvat, cincizeci de puncte ale unei linii sau funcția sa (y = ax + b in caz ca cineva nu-si aminteste)?
Nu putem detecta micile modificări de culoare, deci de ce să le salvăm?
Se pare că ceea ce am spus nu are legătură, dar de fapt este. Am spus că o imagine nu este altceva decât o serie de puncte, deci putem reprezenta acele puncte într-un grafic și apoi putem construi o funcție care aproxima aceste puncte.
Această funcție apare cu multe vârfuri foarte mici. Stai, nu am spus că modificări atât de mici nu sunt detectate de ochi? Ei bine, o avem ușor: să scăpăm de acele vârfuri. Să „aplatizăm” funcția. Acest lucru îl va face mai scurt și îl vom salva mai ușor. Puteți vedea o diagramă a ceea ce se întâmplă în următoarea imagine.
În JPEG, acesta (mai mult sau mai puțin) este ceea ce se numește procesul de cuantificare. Întrebarea este: ce se întâmplă dacă trecem la „aplatizarea” funcției? Că pierdem detaliile. Culorile sunt literalmente mai plate: pierdem contrastul. Fiecare pixel seamănă mult mai mult cu restul și de aceea apar artefacte. Exagerând mult, asta se întâmplă într-o imagine reală dacă trecem peste compresie: