1. Profunzimea de culoare - cati biti primeste un pixel
Fotografiezi un apus la ora de astronomie. Pe ecran, trecerea de la portocaliu la albastru arata neteda. Salvezi imaginea, o deschizi din nou si maresti contrastul - si dintr-odata apar dungi late de culoare, ca niste trepte, in loc de degrade continuu.
Nu ai stricat culorile. Doar ai ajuns la limita: intre doua nuante vecine nu mai exista nicio valoare intermediara pe care fisierul sa o poata tine minte. Efectul se numeste banding (dungare).
- 1 bit - 2 valori: alb sau negru. Faxuri, scanuri de text pur.
- 8 biti, un singur canal - 256 de nuante de gri. Camerele de microscopie monocrome, imaginile de fluorescenta.
- 8 biti indexat - o paleta de maximum 256 de culori alese din toate cele posibile. Este limita formatului GIF.
- 24 de biti (8 pe fiecare canal R, G, B) - 16.777.216 de culori. Standardul numit true color; JPEG obisnuit lucreaza exact asa.
- 32 de biti - cei 24 de mai sus plus 8 biti de canal alpha, adica 256 de trepte de transparenta. Este cazul unui PNG cu fundal transparent.
- 16 biti pe canal (48 de biti pe pixel) - 65.536 de nivele pe canal. PNG si TIFF il suporta; JPEG obisnuit, nu.
2. Cat ar ocupa imaginea fara compresie - si de ce conteaza
Camera microscopului da imagini de 4000 x 3000 pixeli, color, pe 8 biti pe canal. Ai facut 200 de capturi intr-o ora de laborator.
O singura imagine, necomprimata: 4000 x 3000 = 12.000.000 de pixeli, fiecare cu 3 octeti → 36.000.000 de octeti (aproximativ 34 MiB). Cele 200 de capturi ar insemna aproape 7 GB - mai mult decat incape pe un stick obisnuit de 8 GB, dupa o singura ora de lucru.
octeti = latime_px × inaltime_px × (biti_pe_pixel / 8)Impartirea la 8 transforma bitii in octeti. Rezultatul este marimea „bruta" a datelor de imagine, inainte ca vreun algoritm sa le micsoreze.
- 1 MB (megaoctet, zecimal) = 1.000.000 de octeti - unitatea folosita de producatorii de discuri si de camere.
- 1 MiB (mebioctet, binar) = 1.048.576 de octeti - unitatea in care Windows afiseaza dimensiunile, desi scrie tot „MB".
- De aceea 36.000.000 de octeti apar ca „36 MB" pe eticheta si ca „34,3 MB" in Explorer. Nu s-a pierdut nimic; sunt doua rigle diferite.
3. Spatii de culoare - de ce acelasi RGB da culori diferite
Prelucrezi in laborator fotografiile unei culturi de alge. Pe calculatorul din sala, verdele este intens, exact ca la microscop. Incarci imaginile pe site-ul proiectului si, de pe telefon, acelasi verde arata sters, aproape kaki.
Numerele din fisier nu s-au schimbat: pixelul este in continuare RGB(60, 180, 75). S-a schimbat intelesul acelor numere - adica spatiul de culoare in care sunt citite.
- sRGB - standardizat in 1996, gamut relativ mic. Este spatiul implicit al webului si al majoritatii ecranelor. Daca nu stii ce sa alegi pentru o imagine publicata online, alegi sRGB.
- Adobe RGB (1998) - gamut mai larg, mai ales pe verzuri si cyan. Folosit in tipar profesional si in fotografia pregatita pentru print.
- Display P3 - gamut larg, folosit de ecranele moderne de telefon si laptop. Poate arata rosuri si verzuri pe care sRGB nu le atinge.
- Spatii CMYK - nu sunt un singur spatiu, ci depind de tipar: hartia, cerneala si masina. Tipografia iti da profilul pe care trebuie sa-l folosesti.
4. Compresia fara pierderi - micsorare fara sacrificiu
Ai o captura de ecran cu un grafic pe fundal alb. Un rand intreg contine 800 de pixeli albi identici. Necomprimat, calculatorul scrie de 800 de ori acelasi triplet (255, 255, 255) - 2400 de octeti pentru un rand gol.
Un algoritm fara pierderi scrie, in schimb, ceva de forma „alb, de 800 de ori": cativa octeti in loc de 2400. La deschidere, programul reface exact cei 800 de pixeli. Nimic nu s-a pierdut - doar felul de a nota a fost mai economic.
- Filtrare pe randuri: in loc sa scrie culoarea fiecarui pixel, PNG poate scrie diferenta fata de pixelul din stanga sau de deasupra. Intr-un degrade lin, diferentele sunt numere mici si repetitive.
- DEFLATE: algoritmul care urmeaza (acelasi din arhivele ZIP) inlocuieste secventele care se repeta cu referinte scurte si codifica simbolurile frecvente cu mai putini biti.
- Rezultatul depinde de imagine: o schema cu zone plate se poate micsora de 10-20 de ori, in timp ce o fotografie cu zgomot fin abia daca se micsoreaza de doua ori.
Merge foarte bine pe
Grafice si diagrame cu zone de culoare uniforma, capturi de ecran, text, scheme, imagini cu fundal transparent, benzi de electroforeza cu fundal curat.
Formate: PNG, TIFF (cu LZW sau ZIP), WebP in modul lossless.
Merge slab pe
Fotografii reale cu detaliu fin si zgomot: acolo aproape niciun pixel nu-l repeta pe vecin, deci nu are ce sa scurteze. Fisierul ramane mare.
Consecinta: o poza de laborator salvata PNG poate fi de 5-10 ori mai mare decat acelasi cadru in JPG.
5. Compresia cu pierderi - ce arunca JPEG si de ce
Colegul tau fotografiaza tabla cu graficul reactiei, il trimite, altcineva il redistribuie, iar tu il primesti a cincea oara. Cifrele de pe axe sunt inconjurate de un fel de ceata, iar liniile subtiri au capatat marginile zimtate.
Nimeni nu a editat imaginea. Doar ca fiecare trimitere a insemnat o noua compresie JPEG peste una anterioara - si ce s-a aruncat o data nu se mai intoarce. Pierderile se aduna.
- Separa luminozitatea de culoare. Ochiul vede mult mai bine detaliul de luminozitate decat pe cel de culoare, asa ca informatia de culoare poate fi pastrata la rezolutie mai mica (subesantionare a crominantei).
- Imparte imaginea in blocuri de 8 x 8 pixeli si descrie fiecare bloc prin cat de „lin" sau cat de „agitat" este, nu prin pixeli individuali.
- Rotunjeste (cuantizeaza) descrierea fiecarui bloc. Aici se pierde informatia: cu cat cursorul de calitate e mai jos, cu atat rotunjirea e mai brutala. Detaliile fine dispar primele.
6. Alegerea formatului - pornesti de la destinatie, nu de la obicei
Ai o singura fotografie de microscopie a unui preparat vegetal, 4000 x 3000 pixeli, 16 biti pe canal, iesita din camera aparatului. Ea pleaca in patru directii diferite, iar in fiecare caz raspunsul corect este altul:
- arhiva laboratorului → TIFF fara pierderi, 16 biti pe canal, cu profilul de culoare pastrat;
- articolul tiparit → TIFF sau PNG, convertit in profilul CMYK cerut de tipografie, minim 300 DPI la dimensiunea de tipar;
- site-ul proiectului → JPG (sau WebP) la calitate 85, convertit in sRGB, redimensionat la latimea reala de afisare;
- posterul de concurs → imaginea raster la 300 DPI pentru dimensiunea finala, iar schemele si logo-urile de langa ea in SVG.
- Arhiva / date brute de laborator → TIFF sau PNG, fara pierderi, 16 biti pe canal daca aparatul le da. Nu comprimi niciodata cu pierderi datele-sursa.
- Fisier de lucru, in editare → formatul nativ al programului (XCF in GIMP), care pastreaza straturile; exportul vine la final.
- Fotografie pe web → JPG calitate 85 sau WebP, in sRGB, redimensionata la dimensiunea de afisare.
- Grafic, schema, captura de ecran pe web → PNG (fara pierderi, linii curate) sau SVG daca l-ai desenat vectorial.
- Tipar (articol, revista, poster) → fara pierderi, profil CMYK dat de tipografie, minim 300 DPI la dimensiunea finala.
- Logo, iconita, harta schematica → SVG, la orice destinatie: ramane curat si pe o eticheta, si pe un banner.