Internet Windows Android

Codificare raster. Codare binară a informațiilor grafice Codare paletă

Întrebarea 7. Adâncimea culorii

adâncimea culorii - este numărul de biți utilizați pentru a codifica un pixel.

Dacă pentru a codifica un pixel luăm 1 bit– atunci cu ajutorul lui putem obține doar 2 culori: negru (0) și alb (1), adică o imagine alb-negru.

2 biți– 4 culori (00, 01, 10, 11)

8 biți– 2 8 culori = 256 flori, etc.

Astfel, numărul de culori poate fi determinat prin formula:

Unde, N- numărul de flori

eu - adâncimea de biți de culoare.

Concluzie: cu cât sunt folosiți mai mulți biți pentru a codifica 1 pixel, cu atât mai multe culori și mai realiste imaginea, dar și dimensiunea fișierului crește.

În acest fel, dimensiunea fișierului bitmap este produsul dintre lățimea și înălțimea imaginii în pixeli și adâncimea culorii.

Nu contează deloc ceea ce se arată în fotografie. Dacă cei trei parametri sunt aceiași, atunci dimensiunea fișierului necomprimat va fi aceeași pentru orice imagine.

Exemplu de calcul. Determinați dimensiunea unui fișier grafic pe 24 de biți cu o rezoluție de 800 x 600.

Soluţie. Din condiție fișierul are parametri

A = 800 pixeli

H = 600 pixeli

Adâncimea culorii eu= 24 de biți(3 octeți)

atunci formula dimensiunii fișierului este V = A + B + I

V = 800 x 600 x 24 = 11520000 biți = 1440000 octeți = 1406, 25 KB = 1,37 MB

Exemplul 2În procesul de optimizare, numărul de culori a fost redus de la 65536 la 256. De câte ori a scăzut dimensiunea fișierului.

Din formula N = 2 I rezultă că adâncimea culorii eu 1 = Buturuga 2 65536 = 16 biți și după optimizare eu 2 = Buturuga 2 256 = 8 biți

În același timp, dimensiunea imaginii în pixeli nu s-a schimbat. folosind formula pentru a calcula dimensiunea fișierului avem: V 1 = a x b x 16 = 16 ab și

V 2 \u003d a x b x 8 \u003d 8 ab

Alcătuim proporția V 1: V 2 \u003d 16 ab: 8 ab

Deci: dimensiunea fișierului grafic depinde de dimensiunea imaginii și de numărul de culori.

În același timp, o imagine de înaltă calitate cu codare pe 24 sau 32 de biți se dovedește a fi destul de mare (megaocteți).

Acest lucru este foarte incomod pentru stocarea și transferul de imagini (în special pe Internet). Prin urmare, fișierele grafice sunt supuse optimizării.

Adâncimea culorii– numărul de biți pe pixel (bpp). Cea mai populară rezoluție este 8 bpp (256 culori), 16 bpp (65536 culori)

Din anii 80 se dezvoltă tehnologia de procesare a informațiilor grafice pe un PC. Forma de reprezentare pe ecranul de afișare a unei imagini grafice, constând din puncte individuale (pixeli), se numește raster.

Obiectul minim dintr-un editor grafic raster este un punct. Editorul de grafică raster este conceput pentru a crea desene, diagrame.

Rezoluția monitorului (numărul de puncte orizontale și verticale) și numărul de culori posibile pentru fiecare punct sunt determinate de tipul de monitor.

Rezoluția comună este 800 x 600 = 480.000 de puncte.

1 pixel al unui ecran alb-negru este codificat de 1 bit de informații (punct negru sau punct alb). Numărul de culori diferite K și numărul de biți pentru codificarea lor sunt legate prin formula: K = 2b.

Monitoarele moderne au următoarele palete de culori: 16 culori, 256 de culori; 65.536 culori (culoare înaltă), 16.777.216 culori (culoare adevărată).

În tabel. 1 arată dependența capacității de informații a unui pixel de paleta de culori a monitorului.

tabelul 1

Numărul de culori

monitor

Numărul de biți care codifică un punct

16 (2 16 = 65 536)

24 (2 24 =16 777 216)

Memorie necesar pentru a stoca o imagine grafică care ocupă întregul ecran (memorie video), este egal cu produsul rezoluției și numărul de biți care codifică un punct. Un bitmap (cod de imagine binar) este stocat în memoria video a unui computer, este citit de procesor de cel puțin 50 de ori pe secundă și afișat pe ecran.

În tabel. 2 arată cantitatea de memorie video pentru monitoare cu diferite rezoluții și palete de culori.

masa 2

256 de culori

65536 culori

167777216 culori

Introducerea și stocarea desenelor tehnice și a imaginilor grafice similare într-un computer se realizează diferit. Orice desen este format din segmente, arce, cercuri. Poziția fiecărui segment din desen este dată de coordonatele a două puncte care îi definesc începutul și sfârșitul. Cercul este dat de coordonatele centrului și lungimea razei. Arc - coordonatele începutului și sfârșitului, centrului și razei. Pentru fiecare linie este indicat tipul acesteia: subțire, punctat, etc. Această formă de prezentare a informațiilor grafice se numește vector. Unitatea minimă procesată de editorul de grafică vectorială este un obiect (dreptunghi, cerc, arc). Informațiile despre desene sunt procesate prin programe speciale. Stocarea informațiilor în formă vectorială reduce cantitatea necesară de memorie cu câteva ordine de mărime în comparație cu forma raster de reprezentare a informațiilor.

memorie video sunt informații binare despre imaginea afișată pe ecran. Aproape toate imaginile create, procesate sau vizualizate folosind un computer pot fi împărțite în două părți mari - grafică raster și vector.

Bitmaps sunt o grilă cu un singur strat de puncte numite pixeli (pixel, din elementul imagine în engleză). Cod pixel conține informații despre culoarea sa.

Pentru o imagine alb-negru (fără semitonuri), un pixel poate lua doar două valori: alb și negru (luminează - nu strălucește), iar un bit de memorie este suficient pentru a-l codifica: 1 - alb, 0 - negru.

Un pixel de pe un afișaj color poate avea culori diferite, așa că un bit per pixel nu este suficient. Sunt necesari doi biți pe pixel pentru a codifica o imagine cu 4 culori, deoarece doi biți pot lua 4 stări diferite. De exemplu, această opțiune de codificare a culorilor poate fi utilizată: 00 - negru, 10 - verde, 01 - roșu, 11 - maro.

Pe monitoarele RGB, toată varietatea de culori se obține prin combinarea culorilor de bază - roșu (roșu), verde (verde), albastru (albastru), din care se pot obține 8 combinații de bază:

culoare

Maro

Desigur, dacă aveți capacitatea de a controla intensitatea (luminozitatea) strălucirii culorilor de bază, atunci crește numărul de opțiuni diferite pentru combinațiile lor, generând diverse nuanțe. Numărul de culori diferite - K și numărul de biți pentru codificarea lor - N sunt interconectate printr-o formulă simplă: 2 N = K.

Spre deosebire de grafica raster imagine vectorială stratificată. Fiecare element al unei imagini vectoriale - o linie, un dreptunghi, un cerc sau un fragment de text - este situat în propriul strat, ai cărui pixeli sunt stabiliți independent de alte straturi. Fiecare element al unei imagini vectoriale este un obiect care este descris folosind un limbaj special (ecuații matematice de linii, arce, cercuri etc.). Obiectele complexe (linii întrerupte, diverse forme geometrice) sunt reprezentate ca un set de obiecte grafice elementare.

Sarcini

Întrebări de control

1. Câți biți sunt necesari pentru a codifica 1 caracter?

2. Viteza medie de citire a elevilor este de 160 de caractere pe minut. Câte informații va procesa în 7 ore de citire continuă a textului?

3. Care este esența formei raster de reprezentare a informațiilor grafice?

4. Câți biți de informații sunt necesari pentru a codifica 1 punct dintr-un monitor alb-negru?

5. Care este formula pentru determinarea cantității de memorie video afișată?

6. Care este esența formei vectoriale de prezentare a informațiilor grafice?

Sarcina 1. Determinați dimensiunea unui fișier grafic pe 24 de biți cu o rezoluție de 1024 x 600.

Sarcina 2.În procesul de optimizare, numărul de culori a fost redus de la 65536 la 2. De câte ori a scăzut dimensiunea fișierului.

Sarcina 3. Este dat codul binar al imaginii. Se știe că desenul este monocrom și matricea are o dimensiune de 8X8. Restaurați desenul prin cod:

a) 00111100 01000010 00000010 01111110 10000010 10000010 10000110 01111011

b) 10111110 11000001 10000001 00111110 00000001 00000001 10000001 01111110

c) 00111111 01000010 01000010 01000010 00111110 00100010 01000010 11000111

Sarcină4 . Imaginea de pe ecran este construită din puncte individuale (pixeli). Lăsați rezoluția ecranului să fie setată la 1200x1024. Câți octeți va ocupa imaginea ecranului în memoria computerului dacă este salvată (punct cu punct, în formatul hartă de biți - * bmp) ca:

a) imagine monocromă;

b) desen cu 256 de culori;

c) desen pe 24 de biți.

Sarcina 5. Pentru a codifica nuanța de culoare a unui punct (pixel) dintr-o imagine color în conformitate cu modelul de formare a culorii RGB, se utilizează 1 octet (8 biți): 3 biți pentru codificarea nivelului de luminozitate al culorii roșii (roșii), 2 biți pentru codificarea nivelului de luminozitate al culorii verde (verde) și al culorii albastre (albastru) pe 3 biți. Defini:

a) câte niveluri de luminozitate ale fiecărei culori pot fi codificate în acest fel;

b) câte nuanțe de culoare ale imaginii pot fi transferate.

Rezolvați aceeași problemă, dar folosind modul True Color, când se folosesc 3 octeți pentru a transmite culoarea unui pixel - câte unul pentru fiecare culoare.

Test

1. Curriculum-ul ocupă 19 KB de memorie PC. Instrucțiunea programului ocupă 1 cadru de afișare (25 de linii de 80 de caractere). Ce parte a programului este instrucțiunea?

a) 2000 de octeți;

c) 1/10 parte;

2. Ecranul computerului poate funcționa în diferite moduri, care diferă ca rezoluție și numărul de culori posibile pentru fiecare punct.

Completați tabelul:

3. Care este obiectul minim folosit într-un editor de grafică raster?

a) Punct ecran (pixel);

b) obiect (dreptunghi, cerc etc.);

c) paleta de culori;

d) familiaritatea (simbol).

4. Pentru ce este un editor de grafică vectorială?

a) Să creeze desene;

b) pentru trasarea graficelor:

c) să construiască diagrame;

d) să creeze și să editeze desene.

6. Câte informații necesită codificarea binară a 1 punct pe un ecran alb-negru (fără gradarea luminozității)?

d) 16 octeți.

7. Un fișier grafic raster conține o imagine alb-negru cu 16 nuanțe de gri, cu dimensiunea de 10x10 pixeli. Care este volumul de informații al acestui fișier?

b) 400 de octeți;

d) 100 de octeți.

Răspunsuri corecte pentru testul 2.2: 1-d, 3-a, 4-a, 5-b, 6-a, 7-c.

Un cod este un set de convenții (sau semnale) pentru înregistrarea (sau transmiterea) unor concepte predefinite.

Codificarea informațiilor este procesul de formare a unei anumite reprezentări a informațiilor. Într-un sens mai restrâns, termenul „codificare” este adesea înțeles ca trecerea de la o formă de prezentare a informațiilor la alta, mai convenabilă pentru stocare, transmitere sau procesare.

De obicei, fiecare imagine la codificare (uneori se spune - criptare) este reprezentată de un caracter separat.

Un semn este un element dintr-un set finit de elemente distincte.

Într-un sens mai restrâns, termenul „codificare” este adesea înțeles ca trecerea de la o formă de prezentare a informațiilor la alta, mai convenabilă pentru stocare, transmitere sau procesare.

Un computer poate procesa doar informații prezentate sub formă numerică. Toate celelalte informații (cum ar fi sunete, imagini, citiri ale instrumentelor etc.) trebuie convertite în formă numerică pentru procesare pe computer. De exemplu, pentru a cuantifica sunetul muzical, se poate măsura intensitatea sunetului la anumite frecvențe la intervale scurte de timp, prezentând rezultatele fiecărei măsurători în formă numerică. Cu ajutorul programelor de calculator, puteți efectua transformări ale informațiilor primite, de exemplu, sunete „suprapuse” din diferite surse unele peste altele.

În mod similar, informațiile text pot fi procesate pe un computer. Când este introdusă într-un computer, fiecare literă este codificată cu un anumit număr, iar atunci când este transmisă către dispozitive externe (ecran sau imprimare), pentru percepția umană, imaginile literelor sunt construite folosind aceste numere. Corespondența dintre un set de litere și numere se numește codificare de caractere.

De regulă, toate numerele din computer sunt reprezentate folosind zerouri și unu (și nu zece cifre, așa cum este obișnuit pentru oameni). Cu alte cuvinte, computerele funcționează de obicei în sistem binar, deoarece dispozitivele pentru procesarea lor sunt mult mai simple. Introducerea numerelor într-un computer și scoaterea lor pentru citire umană se poate face în forma zecimală obișnuită, iar toate conversiile necesare sunt efectuate de programe care rulează pe un computer.

Modalități de codificare a informațiilor.

Aceeași informație poate fi prezentată (codificat) în mai multe forme. Odată cu apariția computerelor, a devenit necesară codificarea tuturor tipurilor de informații cu care se confruntă atât un individ, cât și umanitatea în ansamblu. Dar omenirea a început să rezolve problema codificării informațiilor cu mult înainte de apariția computerelor. Realizările grandioase ale omenirii - scrisul și aritmetica - nu sunt altceva decât un sistem de codificare a vorbirii și a informațiilor numerice. Informația nu apare niciodată în forma ei pură, este întotdeauna prezentată într-un fel, codificat într-un fel.

Codarea binară este una dintre cele mai comune modalități de a reprezenta informații. În calculatoare, roboți și mașini-unelte cu comandă numerică, de regulă, toate informațiile cu care se ocupă dispozitivul sunt codificate sub formă de cuvinte din alfabetul binar.

Codificarea informațiilor despre caractere (text).

Operația principală efectuată asupra caracterelor individuale ale textului este compararea caracterelor.

La compararea caracterelor, cele mai importante aspecte sunt unicitatea codului pentru fiecare caracter și lungimea acestui cod, iar alegerea principiului de codificare în sine este practic irelevantă.

Pentru codificarea textelor sunt folosite diverse tabele de conversie. Este important ca același tabel să fie folosit la codificarea și decodificarea aceluiași text.

Tabel de conversie - un tabel care conține o listă de caractere codificate ordonate într-un fel, conform căreia caracterul este convertit în codul său binar și invers.

Cele mai populare tabele de conversie: DKOI-8, ASCII, CP1251, Unicode.

Din punct de vedere istoric, 8 biți sau 1 octet a fost ales ca lungime a codului pentru codificarea caracterelor. Prin urmare, cel mai adesea un caracter de text stocat într-un computer corespunde unui octet de memorie.

Pot exista 28 = 256 de combinații diferite de 0 și 1 cu o lungime a codului de 8 biți, prin urmare, folosind un singur tabel de codificare, nu pot fi codificate mai mult de 256 de caractere. Cu o lungime a codului de 2 octeți (16 biți), pot fi codificate 65536 de caractere.

Codificarea informațiilor numerice.

Asemănarea în codificarea informațiilor numerice și textuale este următoarea: pentru a putea compara date de acest tip, numere diferite (precum și caractere diferite) trebuie să aibă un cod diferit. Principala diferență între datele numerice și datele simbolice este că, pe lângă operația de comparare, se efectuează diverse operații matematice asupra numerelor: adunarea, înmulțirea, extragerea rădăcinii, calculul logaritmului etc. Regulile pentru efectuarea acestor operații în matematică sunt: dezvoltate în detaliu pentru numerele reprezentate în sistemul numeric pozițional.

Sistemul de numere de bază pentru reprezentarea numerelor într-un computer este sistemul de numere binar pozițional.

Codificarea informațiilor text

În prezent, majoritatea utilizatorilor, folosind un computer, prelucrează informații textuale, care constă din caractere: litere, cifre, semne de punctuație etc. Să calculăm de câte caractere și de câți biți avem nevoie.

10 cifre, 12 semne de punctuație, 15 simboluri aritmetice, litere din alfabetul rus și latin, TOTAL: 155 de caractere, care corespunde la 8 biți de informații.

Unitățile de măsură ale informațiilor.

1 octet = 8 biți

1 KB = 1024 de octeți

1 MB = 1024 KB

1 GB = 1024 MB

1 TB = 1024 GB

Esența codificării este că fiecărui caracter i se atribuie un cod binar de la 00000000 la 11111111 sau codul zecimal corespunzător de la 0 la 255.

Trebuie amintit că în prezent sunt utilizate cinci tabele de coduri diferite pentru a codifica literele rusești (KOI - 8, СР1251, СР866, Mac, ISO), iar textele codificate folosind un tabel nu vor fi afișate corect în altul.

Afișajul principal de codificare a caracterelor este codul ASCII - Codul standard american pentru schimbul de informații - codul standard american pentru schimbul de informații, care este un tabel de 16 pe 16, în care caracterele sunt codificate în hexazecimal.

Codificarea informațiilor grafice.

Un pas important în codificarea unei imagini grafice este împărțirea acesteia în elemente discrete (eșantionare).

Principalele modalități de reprezentare a graficelor pentru stocarea și procesarea acesteia folosind un computer sunt imaginile raster și vectoriale.

O imagine vectorială este un obiect grafic format din forme geometrice elementare (cel mai adesea segmente și arce). Poziția acestor segmente elementare este determinată de coordonatele punctelor și de valoarea razei. Pentru fiecare linie, sunt indicate coduri binare pentru tipul de linie (solid, punctat, liniuță punctată), grosime și culoare.

O imagine raster este o colecție de puncte (pixeli) obținute ca rezultat al discretizării imaginii în conformitate cu principiul matricei.

Principiul matriceal al codificării imaginilor grafice este că imaginea este împărțită într-un număr dat de rânduri și coloane. Apoi fiecare element al grilei rezultate este codificat conform regulii selectate.

Pixel (element de imagine - element de imagine) - unitatea minimă a imaginii, a cărei culoare și luminozitate pot fi setate independent de restul imaginii.

În conformitate cu principiul matricei, sunt construite imagini care sunt scoase la imprimantă, afișate pe ecranul de afișare, obținute cu ajutorul unui scanner.

Calitatea imaginii va fi mai mare, cu cât pixelii sunt „densi”, adică cu cât rezoluția dispozitivului este mai mare și cu atât culoarea fiecăruia dintre ei este codificată mai precis.

Pentru o imagine alb-negru, codul de culoare al fiecărui pixel este dat de un bit.

Dacă imaginea este colorată, atunci pentru fiecare punct este setat codul binar al culorii sale.

Deoarece culorile sunt, de asemenea, codificate în cod binar, dacă, de exemplu, doriți să utilizați un desen cu 16 culori, atunci veți avea nevoie de 4 biți (16=24) pentru a codifica fiecare pixel și dacă este posibil să utilizați 16 biți ( 2 octeți) pentru a codifica o culoare cu un pixel, apoi puteți transmite 216 = 65536 culori diferite. Utilizarea a trei octeți (24 de biți) pentru a codifica culoarea unui punct vă permite să reflectați 16777216 (sau aproximativ 17 milioane) diferite nuanțe de culoare - așa-numitul mod „culoare adevărată” (True Color). Rețineți că acestea sunt utilizate în prezent, dar departe de capacitățile limitative ale computerelor moderne.

Codificare audio.

Din cursul fizicii, știi că sunetul sunt vibrații ale aerului. Prin natura sa, sunetul este un semnal continuu. Dacă convertim sunetul într-un semnal electric (de exemplu, folosind un microfon), vom vedea o tensiune care se schimbă fără probleme în timp.

Pentru procesarea computerizată, un semnal analogic trebuie cumva convertit într-o succesiune de numere binare, iar pentru aceasta trebuie eșantionat și digitizat.

Puteți face următoarele: măsurați amplitudinea semnalului la intervale regulate și scrieți valorile numerice obținute în memoria computerului.

Informația grafică poate fi înțeleasă ca un desen, un desen, o fotografie, o imagine într-o carte, imagini pe un ecran TV sau într-un cinema, etc. Să luăm în considerare principiile de codificare a informațiilor grafice pe exemplul unei imagini pe un televizor ecran. Această imagine constă din linii orizontale - linii, fiecare dintre acestea, la rândul lor, constă din cele mai mici unități elementare ale imaginii - puncte, care sunt denumite în mod obișnuit. pixeli (picsel - PICTURE "S ELEMENT - element of picture). Întreaga matrice de unități elementare ale imaginii se numește raster .

Gradul de claritate al imaginii depinde de numărul de linii de pe întregul ecran și de numărul de puncte pe linie, care reprezintă rezoluţie ecran, sau doar permisiune . Cu cât sunt mai multe linii și puncte, cu atât imaginea este mai clară și mai bună.

Dacă ne uităm la cifrele de rezoluție ale televizoarelor cu plasmă și LCD de astăzi, constatăm că cele mai comune rezoluții sunt 640x480 (televizoare LCD cu un raport de aspect 4:3); 852×480 (panouri cu plasmă cu raport de aspect 16:9), 1024×768 (LCD și plasmă atât 4:3, cât și 16:9); 1366×768 (HD Ready); 1920×1080 (Full HD) pixeli. Există, dar rareori, alte valori de rezoluție, cum ar fi 800x600 sau 1024x1024 pixeli.

O desemnare a rezoluției precum 640×480 înseamnă că sunt utilizate 480 de linii orizontale a câte 640 de pixeli fiecare. Astfel, imaginea de pe ecran este o secvență de 640 480=307200 pixeli.

Imaginile pot fi monocrome sau color.

imagine monocromă constă din oricare două culori contrastante - alb și negru, verde și alb, maro și alb etc. Pentru simplitatea discuției, vom presupune că una dintre culori este neagră, iar a doua este albă. Apoi fiecare pixel al imaginii poate fi fie negru, fie alb. Atribuind codul binar „0” negru și codul „1” alb (sau invers), putem codifica starea de 1 pixel a unei imagini monocrome pe 1 bit. Cu toate acestea, imaginea rezultată va fi prea contrastată.

Este în general acceptat astăzi, ceea ce oferă imagini monocrome destul de realiste, codificarea stării de 1 pixel folosind 1 octet, ceea ce vă permite să transferați 256 de nuanțe diferite de gri de la complet alb la complet negru. În acest caz, pentru a transfera întregul raster de 640x480 pixeli, sunt necesari 307200 de octeți.

imagine color poate fi format pe baza diferitelor modele. Cele mai comune modele de culoare:

· RGB este cel mai des folosit în informatică;


· CMYK - modelul de culoare principal în poligrafie;

· în televiziune, modelul color YUV este utilizat pentru standardul PAL, modelul YDbDr pentru SÉCAM și modelul YIQ pentru NTSC;

· Modelul de referință XYZ se bazează pe măsurători ale caracteristicilor ochiului uman.

Model RGB(din cuvintele Roșu, Verde, Albastru - roșu, verde, albastru) se potrivește cel mai bine principiilor de afișare a unei imagini pe un ecran de monitor - trei numere stabilesc luminozitatea strălucirii granulelor de fosfor roșu, verde și albastru la un punct dat pe ecran. Prin urmare, acest model este cel mai utilizat în domeniul graficii computerizate, axat pe vizualizarea imaginilor pe un ecran de monitor.

Modelul RGB se bazează pe faptul că ochiul uman percepe toate culorile ca suma a trei culori primare - roșu , verde și albastru (fig.4.1). Deoarece o culoare se formează prin adăugarea a trei culori împreună, acest model este adesea denumit aditiv(Rezumând).

De exemplu, pentru a seta o culoare albă, trebuie să specificați valorile maxime de luminozitate pentru toate cele trei componente și pentru a seta una neagră, să stingeți complet toate sursele (de exemplu, punctele de fosfor) care setează culoarea în punctul dorit din imaginea, specificați luminozitatea zero pentru ele.

Dacă fiecare dintre culori este codificată folosind 1 octet (luminozitatea fiecărei componente este dată de numere de la 0 la 255), așa cum este obișnuit pentru o imagine monocromă realistă, va fi posibilă transmiterea a 256 de nuanțe din fiecare dintre culorile primare. Și în total, în acest caz, se transmit 256 256 256 = 16 777 216 culori diferite, ceea ce este suficient de aproape de sensibilitatea reală a ochiului uman. Astfel, cu această schemă de codare a culorilor, imaginea cu 1 pixel necesită 3 octeți sau 24 de biți de memorie. Acest mod de reprezentare a graficelor color se numește modul culoare adevarata (culoare adevărată - culoare adevărată) sau modul plin de culoare .

Există dispozitive profesionale (de exemplu, scanere) care vă permit să obțineți imagini în care fiecare pixel este descris nu cu trei, ci cu șase (16 biți pentru fiecare componentă de culoare) sau chiar opt octeți. Astfel de moduri sunt folosite pentru cea mai bună reproducere a nuanțelor și, cel mai important, luminozitatea pixelilor imaginii. Acest lucru permite reproducerea cea mai fiabilă a imaginilor unor scene atât de complexe din punct de vedere tehnic, cum ar fi, de exemplu, peisajele de seară sau de zori.

Orez. 4.1. Model de culoare RGB reprezentat ca un cub

Exemplul 4.7.În Win32, tipul standard pentru reprezentarea culorilor este COLORREF. Pentru a defini o culoare în RGB, 4 octeți sunt utilizați sub forma:

BB, GG, RR - valoarea intensității componentelor albastru, verde și respectiv roșu ale culorii. Valoarea lor maximă este 0xFF.

Apoi puteți defini o variabilă de tip COLORREF după cum urmează:

COLORREF C=(b,g,r);

b, gși r- intensitatea (în intervalul de la 0 la 255) respectiv a componentelor albastru, verde și roșu ale culorii determinate C. Adică culoarea roșu aprins poate fi definită ca (255.0.0), violet strălucitor - (255.0.255). ), negru - (0,0,0) și alb - (255,255,255).

Modul full color necesită multă memorie. Prin urmare, pentru memorie sunt dezvoltate diverse moduri și formate grafice, care transmit culoarea puțin mai rău, dar necesită mult mai puțină memorie. În special, putem aminti modul High Color (culoare înaltă - culoare bogată), în care se folosesc 16 biți pentru a transmite culoarea a 1 pixel și, prin urmare, pot fi transmise 65.535 de nuanțe de culoare, precum și modul index, care este pe baza unui tabel de imagini pre-creat pentru un anumit tabel de nuanțe de culoare utilizate în acesta. Apoi culoarea pixelului dorită este selectată din acest tabel folosind numărul de index, care ocupă doar 1 octet de memorie. Când scrieți o imagine în memoria computerului, pe lângă culoarea punctelor individuale, este necesar să înregistrați o mulțime de informații suplimentare - dimensiunea imaginii, rezoluția, luminozitatea punctelor etc. O metodă specifică de codificare a tuturor informațiilor necesar la scrierea unei imagini în memoria computerului formează un format grafic. Formatele de codificare a informațiilor grafice bazate pe transferul culorii fiecărui pixel individual care alcătuiește imaginea sunt clasificate ca formate raster sau BMP (Bit Map - bitmap).

Model CMYK(Cyan, Magenta, Galben, negru) O schemă de culori subtractivă utilizată în principal în industria tipăririi pentru tipărirea prin proces standard. Schema CMYK (Fig. 4.2) are de obicei o gamă de culori relativ mică.

Orez. 4.2. Schema de sinteză subtractivă în CMYK

În rusă, aceste culori sunt adesea numite astfel: cyan, magenta, galben . Culoarea într-o astfel de schemă depinde nu numai de caracteristicile spectrale ale coloranților și de metoda de aplicare a acestora, ci și de cantitatea lor, de caracteristicile hârtiei și de alți factori. De exemplu, există standarde americane, europene și japoneze pentru hârtiile cretate și necretate.

Deși în teorie negrul poate fi obținut prin amestecarea magenta, cyan și galben în proporții egale, în practică amestecarea magenta, cyan și galben realizează o culoare maro mai murdară sau gri murdară. Deoarece puritatea și saturația negrului sunt extrem de importante în procesul de imprimare, în model a fost introdusă o altă culoare - negru .

Explicația primelor trei litere din abrevierea CMYK este dată mai sus, iar aproximativ a patra dintre versiuni susține că K- prescurtare pentru engleză. negru K (dacă am lua B, atunci ar fi confuzie cu modelul RGB, unde B este albastru). Conform acestei versiuni, la tipărirea filmelor de tipărire, culoarea căreia îi aparțin era indicată cu o literă. Potrivit unei alte versiuni, scrisoarea K a apărut din abrevierea engleză. cuvintele cheie : în țările de limbă engleză după termen placa cheie indică placa de imprimare pentru cerneală neagră.

CMYK se numește modelul stractiv deoarece acest model este utilizat în principal în imprimare pentru imprimarea color, iar hârtia și alte materiale tipărite servesc ca suprafețe care reflectă lumina: este mai convenabil să se calculeze câtă lumină (și culoare) este reflectată de o anumită suprafață. , mai degrabă decât cât de mult absorbit. Astfel, dacă scădem trei culori primare, RGB, din alb, obținem un triplu de culori complementare CMY. „Scădere” înseamnă „scădere” - scădem culorile primare din alb.

Fiecare număr care definește o culoare în CMYK reprezintă procentul de cerneală a acelei culori care formează combinația de culori. De exemplu, pentru a obține portocaliu închis, amestecați 30% cyan, 45 magenta, 80 galben și 5% negru. Acesta poate fi notat astfel: (30,45,80,5). Uneori folosesc această denumire: C30M45Y80K5.

Controlați întrebările și sarcinile

1. Care este formatul datelor?

2. Cum sunt codificate informațiile numerice în computere?

3. Cum se raportează intervalul de reprezentare a unui număr întreg cu formatul de stocare al acestuia.

4. Există diferențe în afișarea numerelor pozitive în codurile directe, inverse și suplimentare?

5. Exprimați numărul -78 în coduri înainte, inversă și complement a doi în format de un octet.

6. Cum sunt corelate precizia și gama de reprezentare a unui număr real de capacitatea mantisei?

7. De ce ordinea în reprezentarea unui număr real se numește deplasată?

8. De ce prima cifră a mantisei nu este stocată atunci când reprezintă un număr real normalizat?

9. Scrieți numărul 34,256 în format un singur număr real.

10. Cum sunt codificate informațiile text în computere?

11. Pentru ce sunt folosite tabelele de coduri? Ce tabele de coduri cunoașteți?

12. Care este diferența dintre un tabel ASCII de bază și unul extins?

13. Care sunt avantajele prezentării informațiilor textuale în format Unicode?

14. Definiți termenii pixel, raster, rezoluție .

15. Câți octeți de memorie sunt necesari pentru a codifica o imagine pe ecranul unui monitor de computer cu o rezoluție de 800×600 la 256 de culori?

16. Ce modele de imagini color cunoașteți?

17. Ce culori sunt considerate primare în modelele RGB și CMYK?


5. Concepte de bază ale algebrei logicii

a) b)

Figura 6.3 - Desen raster

a) raster; b) modelarea modelelor

Un bitmap este o colecție de pixeli pătrați. Mărimea pătratului este determinată rezoluţie. Rezoluția este numărul de pixeli pe unitatea de lungime a unei imagini. Rezoluția este măsurată în pixeli pe inch. ppi - pixeli pe inch. De exemplu, o rezoluție de 254 ppi înseamnă că există 254 de pixeli pe inch (25,4 mm), astfel încât fiecare pixel are o dimensiune de 0,1 ∙ 0,1 mm. Cu cât rezoluția este mai mare, cu atât modelul este mai precis (mai clar).

6.2 Codificarea culorilor

Fiecare pixel este codificat cu o culoare. De exemplu, pentru un desen alb-negru, albul este 1, negrul este 0. Apoi figura 6.3 poate fi codificată cu o matrice de 4 9, ale căror primele trei rânduri, completate cu coduri, sunt prezentate mai jos:

Dacă desenul este colorat? De exemplu, un desen al unui steag care folosește 4 culori - negru, alb, roșu, albastru (Figura 6.4, a). Anexat este un desen color.

albastru
roșu

Figura 6.4 - Codarea unui bitmap de culoare;

a) desen raster; b) matricea de codificare a modelelor

Este nevoie de 2 biți pentru a codifica una dintre cele patru opțiuni de culoare, astfel încât codul pentru fiecare culoare (și codul pentru fiecare pixel) va consta din doi biți. Fie 00 negru, 01 roșu, 10 albastru și 11 alb. Apoi obținem un tabel de coduri (Figura 6.4, b).

6.2.1 Codificarea culorilor ecranului

Se crede că orice radiat culoarea poate fi simulată folosind doar trei fascicule de lumină (roșu, verde și albastru) de luminozitate diferită. În consecință, orice culoare (inclusiv „albul”) este aproximativ descompusă în trei componente - roșu, verde și albastru. Schimbând luminozitatea acestor componente, puteți face orice culoare. Acest model de culoare a fost numit RGB după literele inițiale ale cuvintelor englezești. roșu- Roșu, verde- verde și albastru- albastru (Figura 6.5, a). Desenul color este dat în anexă.



În modelul RGB, luminozitatea fiecărei componente este cel mai adesea codificată ca un număr întreg de la 0 la 255. În acest caz, codul de culoare este un triplu de numere (R, G, B), luminozitatea componentelor individuale. Culoarea (0,0,0) este neagră și (255,255,255) este albă. Dacă toate componentele sunt de luminozitate egală, se obțin nuanțe de gri, de la negru la alb. De exemplu, (75,75,75) este gri închis și (175,175,175) este gri deschis.

Pentru a face o culoare roșu deschis (roz), trebuie să creșteți luminozitatea culorilor verde și albastru în mod egal în roșu (255,0,0), de exemplu, (255, 155, 155) este roz. Acest lucru poate fi verificat în editorul MSWord, instrument - culoare text - alte culori... - spectru(Figura 6.5, b).

a) b)


Figura 6.5 - Model de culoare RGB;

a) model RGB; b) instrument de culoare text în MSWord

Unele coduri de culoare sunt prezentate în Tabelul 6.1 de mai jos.

Tabel 6.1 - Coduri de culori

În total, există 256 de opțiuni de luminozitate pentru fiecare dintre cele trei culori. Acest lucru face posibilă codificarea 256 3 = 16.777.216 de nuanțe (mai mult de 16 milioane), ceea ce este mai mult decât suficient pentru un om. pentru că
256 = 2 8 , fiecare dintre cele trei componente are 8 biți sau un octet în memorie și toate informațiile despre o anumită culoare sunt de 24 de biți (sau trei octeți). Această valoare este numită adâncimea culorii.



Adâncimea culorii este numărul de biți folosiți pentru a codifica culoarea unui pixel.

Fiecare pixel este alocat de la 1 bit la 3 octeți de memorie video ( imaginea se formează în memoria video). De exemplu:

Mod monocrom, 2 culori (alb și negru) - 1 bit (Figura 6.3, b).

Mod culoare, 8 culori - 3 biți. roșu=0; 1. Verde=0; 1. Albastru=0; 1. RGB= 2 3 = 8.

Mod culoare, 16 culori - 4 biți; i = 0; 1 - intensitate (luminoasă, slabă); i RGB = 2∙2 3 = 2 4 = 16 (tabelul 6.2).

Mod culoare, 256 culori - 8 biți; i = 00000 ,…, 11111 = = 2 5 = 32 gradații de intensitate; i RGB = 2 5 * 2 3 = 2 8 = 256.

Sau 2 gradații de intensitate și 2 culori RGB
i 2 R 2 G 2 B 2 \u003d 4 * 4 * 4 * 4 \u003d 2 8 \u003d 256 (tabelul 6.3).

Mod culoare, 16 milioane de culori - 3 octeți = 24 de biți
(Figura 6.5, b).

Tabelul 6.2 - Coduri pentru formarea a 16 culori

Culoare i RGB
negru (negru)
Albastru (albastru)
verde (verde)
Cyan (albastru-verde)
roșu (roșu)
Magenta (violet)
maro (maro)
Gri deschis (gri deschis)
Gri închis (gri închis)
Albastru deschis (albastru strălucitor)
Verde deschis (verde aprins)
Cyan deschis (turcoaz)
Roșu deschis (roșu aprins)
Magenta deschis (violet)
galben (galben)
alb (alb)

Tabelul 6.3 - Coduri pentru formarea a 256 de culori

i R G B
∙∙∙ ∙∙∙ ∙∙∙ ∙∙∙

Codarea culorilor pe 24 de biți este adesea denumită modul culoare adevarata(Engleză) culoare adevarata- culoare adevarata). Pentru a calcula dimensiunea imaginii în octeți cu această codificare, trebuie să determinați numărul total de pixeli (înmulțiți lățimea și înălțimea) și înmulțiți rezultatul cu 3, deoarece culoarea fiecărui pixel este codificată în trei octeți. De exemplu, o imagine de 20x30 pixeli codificată în modul truecolor ar ocupa 20x30x3 = 1800 de octeți.

Pe lângă modul de culoare adevărată, este folosită și codarea pe 16 biți (ing. culoare înaltă- culoare „înaltă”, când cinci biți sunt alocați componentelor roșii și albastre și șase biți celei verzi, la care ochiul uman este mai sensibil (în total 16 biți). În modul High Color, pot fi codificate 2 16 = 65536 culori diferite. În telefoanele mobile, codificarea culorilor pe 12 biți (4 biți per componentă, 2 12 = 4096 culori).

Relația dintre adâncimea culorii și numărul de culori generate poate fi prezentată în Tabelul 6.4.

Tabel 6.4 - Adâncimea culorii și numărul de culori

În general, cu cât sunt utilizate mai puține culori, cu atât imaginea color va fi mai distorsionată. Astfel, la codificarea culorii, există și o pierdere inevitabilă de informații care se „adăugă” la pierderea cauzată de eșantionare. Discretizarea are loc atunci când modelul este înlocuit cu un set de pixeli pătrați. Cu toate acestea, pe măsură ce numărul de culori utilizate crește, dimensiunea fișierului crește în același timp. De exemplu, în modul culoare adevarata fișierul va fi de două ori mai mare decât cu
Codare pe 12 biți.

Foarte des (de exemplu, în diagrame, diagrame și desene), numărul de culori din imagine este mic (nu mai mult de 256). În acest caz se aplică codificarea paletei.

Paleta de culori este un tabel în care fiecărei culori specificate ca componente în modelul RGB i se atribuie un cod numeric.

Dimensiunea paletei este numărul de octeți care indică culorile paletei.

De exemplu, o paletă alb-negru, doar 2 culori (Figura 6.3):

ü negru: cod RGB (0,0,0); cod binar 0 2 ;

ü alb: cod RGB (255,255,255); cod binar 1 2 .

Aici dimensiunea paletei este de 6 octeți.

Codificarea imaginii cu steag, patru culori (Figura 6.4):

ü negru: cod RGB (0,0,0); cod binar 00 2 ;

ü roșu: cod RGB (255,0,0); cod binar 01 2 ;

ü albastru: cod RGB (0,0,255); cod binar 10 2 ;

ü alb: cod RGB (255,255,255); cod binar 11 2 .

Aici dimensiunea paletei este de 12 octeți.

Mai jos sunt date despre unele variante de codificare cu o paletă (Tabelul 6.5).

Tabel 6.5 - Opțiuni de codare cu paletă

Având în vedere caracteristicile cunoscute ale ecranului monitorului (rezoluția ecranului și numărul de culori ale pixelilor), puteți calcula cantitatea minimă de memorie video pentru a forma o imagine de înaltă calitate (Tabelul 6.6).

Tabel 6.6 - Cantitatea de memorie video

6.2.2 Codarea culorilor pe hârtie

Codarea RGB descrie cel mai bine culoarea emisă de un dispozitiv, cum ar fi un monitor sau un ecran de laptop. Când privim o imagine tipărită pe hârtie, situația este cu totul alta. Nu vedem razele directe ale sursei care intră în ochi, ci reflectate de la suprafață. Pe hârtia pe care se aplică vopseaua cade „lumină albă” dintr-o anumită sursă (soarele, un bec), care conține valuri în toată gama vizibilă. Vopseaua absoarbe o parte din raze (energia lor este cheltuită pentru încălzirea hârtiei), iar culorile reflectate rămase cad în ochi, aceasta este culoarea pe care o vedem.

De exemplu, dacă vopseaua absoarbe razele roșii, doar cele albastre și verzi sunt reflectate - vedem albastru. În acest sens, culorile roșu și albastru se completează reciproc, la fel ca perechile verde-violet și albastru-galben. Într-adevăr, dacă „scădeți” verdele din alb, obțineți violet, iar dacă „scădeți” albastrul, obțineți galben.

Observați sinonimele culorilor: violet = magenta.

Rapoartele culorilor incidente și reflectate sunt prezentate mai jos (Tabelul 6.7).

Tabelul 6.7 - Raportul culorilor incidente și reflectate

Trei culori suplimentare - albastru, violet și galben - sunt folosite pentru a construi un model de culoare. CMY(Engleză) cyan- albastru, Magenta- Violet, Galben- galben), care este utilizat pentru imprimare (Figura 6.6, b). Astfel, modelele de culoare RGB și CMY sunt reversibile (Figura 6.7). Desenul color este afișat în aplicație.

Figura 6.6 - Modele color;

a) model RGB (pentru monitor); b) Model CMY (pentru imprimantă)

Figura 6.7 - Modele de culoare reversibile

Valorile C=M=Y=0 indică asta pe hârtie albă
nu se aplica vopsea, deci toate razele sunt reflectate, este alb.

La aplicarea vopselelor albastre, violete și galbene, teoretic, ar trebui să se obțină negru (Figura 6.6, b), toate razele sunt absorbite. Cu toate acestea, în practică, culorile nu sunt perfecte, așa că în loc de negru se obține un maro murdar. În plus, atunci când imprimați zone negre, trebuie să „turnați” o porțiune triplă de cerneală într-un singur loc. De asemenea, trebuie avut în vedere faptul că, de obicei, textul negru este adesea tipărit pe imprimante, iar cernelurile color sunt mult mai scumpe decât cele negre.

Pentru a rezolva această problemă, setul de vopsea este adăugat negru, acesta este așa-numitul cheie culoare (engleză) Culoarea cheii), deci modelul rezultat este notat CMYK.

Pe lângă modelele de culoare RGB și CMY (CMYK), există și altele. Cel mai interesant dintre ele este modelul HSB(Engleză Hue - ton, umbră; Saturation - saturație, Brightness - luminozitate), care este cel mai apropiat de percepția naturală a unei persoane. Nuanța este, de exemplu, albastru, verde, galben. Saturația este puritatea unei nuanțe, reducând saturația la zero rezultă în gri. Luminozitatea determină cât de deschisă sau închisă este o culoare. Orice culoare devine neagră când luminozitatea este redusă la zero.

6.3 Caracteristici ale codării bitmap

Cu codificarea raster, imaginea este împărțită în pixeli (discretizat). Pentru fiecare pixel, se determină o culoare, care este cel mai adesea codificată folosind un cod RGB.

Codificarea raster are demnitate:

ü metoda universală (orice imagine poate fi codificată);

ü singura metodă de codificare și procesare a imaginilor neclare care nu au limite clare, cum ar fi fotografiile;

și limitări:

ü există întotdeauna o pierdere de informații în timpul discretizării;

ü la redimensionarea imaginii, culoarea și forma obiectelor din imagine sunt distorsionate, deoarece la creșterea dimensiunii, este necesar să restabiliți cumva pixelii lipsă, iar la scădere, înlocuiți mai mulți pixeli cu unul;

ü dimensiunea fișierului nu depinde de complexitatea imaginii, ci este determinată doar de rezoluție și adâncimea culorii; de regulă, desenele raster au un volum mare.

Există multe formate diferite pentru desenele raster. Cele mai comune extensii de nume de fișiere sunt:

.bmp(eng. bitmap - bitmap) - un format standard în sistemul de operare Windows; acceptă codare paletă și truecolor;

.jpg sau .jpeg(ing. Joint Photographic Experts Group - un grup comun de fotografi experți) - un format conceput special pentru codificarea fotografiilor; acceptă doar modul de culoare adevărată; pentru a reduce dimensiunea fișierului, se folosește compresie puternică, în care imaginea este ușor distorsionată, deci nu este recomandat să o folosești pentru desene cu limite clare;

.gif(ing. Graphics Interchange Format - un format pentru schimbul de imagini) - un format care acceptă doar codificarea cu o paletă (de la 2 la 256 de culori); spre deosebire de formatele anterioare, părți ale imaginii pot fi transparente; în versiunea modernă, puteți stoca imagini animate; se utilizează compresia fără pierderi, adică imaginea nu este distorsionată în timpul compresiei;

.png(English Portable Network Graphics - imagini de rețea portabile) - un format care acceptă atât modul de culoare adevărată, cât și codare paletă; părți ale imaginii pot fi transparente și chiar semi-transparente (codare RGBA pe 32 de biți, unde al patrulea octet specifică transparența); imaginea este comprimată fără distorsiuni; animația nu este acceptată.

6.4 O notă despre codificarea fișierelor

Mai devreme se spunea că tot felul de informații sunt stocate în memoria computerului sub formă de coduri binare, adică lanțuri de zerouri și unu. După ce a primit un astfel de lanț, este absolut imposibil să spunem că este text, imagine, sunet sau video. De exemplu, codul 11001000 2 poate reprezenta numărul 200, litera „I”, una dintre componentele de culoare ale unui pixel în modul de culoare adevărată, numărul de culoare din paletă pentru o imagine cu o paletă de 256 de culori, culoarea de 8 pixeli dintr-o imagine alb-negru etc. Cum înțelege computerul datele binare? În primul rând, trebuie să vă concentrați pe extensia numelui fișierului. De exemplu, cel mai adesea fișierele .txt conțin text, în timp ce fișierele cu extensii .bmp, .gif, .jpg, .png conțin imagini.

Cu toate acestea, extensia fișierului poate fi modificată după cum doriți. De exemplu, puteți face ca un fișier text să aibă extensia .bmp și o imagine JPEG să aibă extensia .txt. Prin urmare, la începutul tuturor fișierelor de formate speciale (cu excepția textului simplu, .txt), este scris un antet, prin care puteți „recunoaște” tipul fișierului și caracteristicile acestuia. De exemplu, fișierele BMP încep cu caracterele „BM” și fișierele GIF încep cu caracterele „GIF”. În plus, titlul indică dimensiunea imaginii și caracteristicile acesteia, cum ar fi numărul de culori din paletă, metoda de compresie etc. Folosind aceste informații, programul decodifică (decriptează) partea principală a fișierului și o afișează pe ecran.

6.5 Întrebări și sarcini

1. Care sunt cele două principii de codificare a desenelor utilizate în tehnologia computerelor?

2. De ce nu este posibil să se vină cu o singură metodă de codificare a desenelor care să fie potrivită în toate situațiile?

3. Care este ideea codării raster?
Ce este un raster?

4. Care este ideea din spatele codificării vectoriale? Ce este o primitivă grafică?

5. Ce este un pixel? Cum a apărut un astfel de cuvânt?

6. Ce este discretizarea modelului? De ce este necesar?

7. Ce se pierde la discretizarea unei imagini?

8. Care este rezoluția (ecran, imprimantă)? In ce unitati se masoara?

9. Ce este adâncimea culorii? In ce unitati este
măsurat?

10. Ce este modul True Color?

11. Ce este modul High Color?

12. Ce este codarea paletei? Care este diferența sa fundamentală față de modul de culoare adevărată?

13. Care sunt avantajele și dezavantajele codării raster?

14. Care sunt avantajele și dezavantajele codificării vectoriale?

15. În ce formate este indicat să salvați fotografiile?

16. În ce formate este indicat să salvați desene, desene cu limite clare?

17. Cum va fi scris codul pentru imaginea următoare? Un bitmap alb-negru este codificat linie cu linie, începând din stânga sus și terminând în dreapta jos. Când este codificat, 0 denotă negru și 1 denotă alb.

Soluţie. Introducerea codului de imagine va fi după cum urmează:

010100 011111 101010 011101 = 010100011111101010011101 2 =

24375235 8 = 51FAD 16 .


Lista surselor utilizate

1. Andreeva E. V. Fundamentele matematice ale informaticii: manual. indemnizaţie / E. V. Andreeva, L. L. Bosova, I. N. Falina. – M. : BINOM. Laboratorul de cunoștințe, 2007.

2. Pospelov D. A. Bazele aritmetice ale calculatoarelor de acţiune discretă / D. A. Pospelov. - M .: Energie, 1970.

3. Saveliev A. Ya. Fundamentele aritmetice și logice ale automatelor digitale / A. Ya. Saveliev. - M .: Liceu, 1980.

4. Pozdnyakov S. N. Matematică discretă: manual
/ S. N. Pozdnyakov, S. V. Rybin. - M. : Academia, 2008.

5. Hartley R. V. L. Transfer de informații / R. V. L. Hartley
// Teoria informației și aplicațiile acesteia. - M. : Fizmatgiz, 1959.

6. Shannon K. Teoria matematică a comunicării. (Shannon C.E. A Mathematical Theory of Communication. Bell System Technical Journal. - 1948. - pp. 379-423, 623-656).

7. Iuşkevici A. P. Istoria matematicii în Evul Mediu
/ A. P. Iuşkevici. - M. : Fizmatgiz, 1961.


Culoare pe 24 de biți(care este un subset culoare adevarata Engleză "culoare adevarata") în grafica computerizată - o metodă de reprezentare și stocare a unei imagini care vă permite să afișați un număr mare de culori, semitonuri și nuanțe. O culoare este reprezentată folosind 256 de niveluri pentru fiecare dintre cele trei componente ale modelului RGB: roșu (R), verde (G) și albastru (B), rezultând 16.777.216 (224) culori diferite.

TrueColor pe 32 de biți poate stoca un canal alfa, care setează gradul de transparență a pixelilor pentru afișarea imaginilor translucide, cum ar fi ferestre translucide, meniuri cu fade-out și umbre. Unele adaptoare video sunt capabile să proceseze canalul alfa în hardware.

Numărul de biți la digitizarea unui semnal

Nu trebuie să confundați numărul de biți când digitalizați un semnal (cu un scaner sau o cameră digitală) și numărul de biți când îl stocați și îl afișați pe ecran.

Culoarea cu 256 de nivele pe canal este stocată într-o formă corectată cu gama, în timp ce un semnal liniar este digitizat de la pixelii camerei. De obicei, este stocat în date brute ale camerei în format Raw.

Scrieți o recenzie la articolul „TrueColor”

Note

Un fragment care caracterizează TrueColor

Contesa era atât de obosită de vizite, încât a ordonat să nu fie primit pe nimeni altcineva, iar portarului i s-a ordonat doar să-i cheme pe toți cei care mai vor veni cu felicitări să mănânce fără greșeală. Contesa dorea să vorbească față în față cu prietena ei din copilărie, prințesa Anna Mikhailovna, pe care nu o văzuse bine de la sosirea ei de la Petersburg. Anna Mihailovna, cu chipul ei înlăcrimat și plăcut, se apropie de scaunul contesei.
„Voi fi complet sincer cu tine”, a spus Anna Mihailovna. „Nu au mai rămas mulți dintre noi, vechi prieteni!” De aceea pretuiesc prietenia ta.
Anna Mihailovna se uită la Vera și se opri. Contesa a dat mâna prietenei ei.
— Vera, spuse contesa, întorcându-se către fiica ei cea mare, care era evident neiubită. Cum de habar n-ai? Nu ai impresia că ești deplasat aici? Du-te la surorile tale sau...
Frumoasa Vera a zâmbit disprețuitor, aparent fără să simtă nici cea mai mică insultă.
„Dacă mi-ai fi spus demult, mamă, aș fi plecat imediat”, a spus ea și a mers în camera ei.
Dar, trecând pe lângă canapea, a observat că două cupluri stăteau simetric în ea la două ferestre. Ea s-a oprit și a zâmbit disprețuitor. Sonya stătea aproape lângă Nikolai, care copia pentru ea poeziile pe care acesta le compusese pentru prima dată. Boris și Natasha stăteau la cealaltă fereastră și au tăcut când Vera a intrat. Sonya și Natasha o priveau pe Vera cu fețe vinovate și fericite.
A fost distractiv și emoționant să privești aceste fete îndrăgostite, dar vederea lor, evident, nu a stârnit un sentiment plăcut în Vera.
„De câte ori ți-am cerut”, a spus ea, „să nu-mi iei lucrurile, ai propria ta cameră.
Ea a luat călimară de la Nikolai.
— Acum, acum, spuse el, udându-și stiloul.
„Știi cum să faci totul la momentul nepotrivit”, a spus Vera. - Apoi au fugit în sufragerie, astfel încât toată lumea s-a simțit rușinat pentru tine.
În ciuda faptului, sau tocmai pentru că ceea ce a spus ea era perfect adevărat, nimeni nu i-a răspuns și toți patru s-au uitat doar unul la altul. Ea ezită în cameră cu o călimară în mână.

Rastere, pixeli, eșantionare, rezoluție

Ca toate tipurile de informații, imaginile dintr-un computer sunt codificate ca secvențe binare. Sunt utilizate două metode de codare fundamental diferite, fiecare dintre ele având propriile avantaje și dezavantaje.

Atât o linie, cât și o zonă sunt formate dintr-un număr infinit de puncte. Trebuie să codificăm culoarea fiecăruia dintre aceste puncte. Dacă există infinit de multe dintre ele, ajungem imediat la concluzia că aceasta necesită o cantitate infinită de memorie. Prin urmare, imaginea nu poate fi codificată într-un mod „punct cu punct”. Cu toate acestea, această idee poate fi încă folosită.

Să începem cu un desen alb-negru. Imaginează-ți că pe imaginea unui romb se suprapune o grilă, care o împarte în pătrate. O astfel de grilă se numește raster. Acum pentru fiecare pătrat definim o culoare (negru sau alb). Pentru acele pătrate în care o parte s-a dovedit a fi vopsită în negru și o parte în alb, vom alege o culoare în funcție de care parte (negru sau alb) este mai mare.

Poza 1.

Avem un așa-numit desen raster, format din pătrate de pixeli.

Definiția 1

Pixel(eng. pixel = element de imagine, element de imagine) este cel mai mic element de imagine pentru care vă puteți seta propria culoare. După ce am împărțit desenul „obișnuit” în pătrate, am efectuat discretizarea acestuia - am împărțit un singur obiect în elemente separate. Într-adevăr, aveam un desen unic și indivizibil - imaginea unui romb. Ca rezultat, am obținut un obiect discret - un set de pixeli.

Codul binar pentru o imagine alb-negru obținută ca rezultat al eșantionării poate fi construit după cum urmează:

  • înlocuim pixelii albi cu zerouri, iar pixelii negri cu unu;
  • scrieți rândurile tabelului rezultat unul câte unul.

Exemplul 1

Să arătăm asta cu un exemplu simplu:

Figura 2.

Lățimea acestei imagini este de $8$ pixeli, așa că fiecare linie a tabelului constă din $8$ biți. Pentru a nu scrie un lanț foarte lung de zerouri și unu, este convenabil să folosiți sistemul numeric hexazecimal, codând $4$ biți vecini (tetradă) cu o cifră hexazecimală.

Figura 3

De exemplu, pentru prima linie obținem codul $1A_(16)$:

iar pentru tot desenul: $1A2642FF425A5A7E_(16)$.

Observație 1

Este foarte important să înțelegem ce am câștigat și ce am pierdut ca urmare a discretizării. Cel mai important, am putut să codificăm desenul în binar. Cu toate acestea, imaginea a fost distorsionată - în loc de romb, am primit un set de pătrate. Motivul distorsiunii este că în unele pătrate, părți ale imaginii originale au fost umplute cu culori diferite, iar în imaginea codificată, fiecare pixel are neapărat o culoare. Astfel, o parte din informațiile originale au fost pierdute în timpul codificării. Acest lucru se va manifesta, de exemplu, atunci când imaginea este mărită - pătratele cresc, iar imaginea este și mai distorsionată. Pentru a reduce pierderea de informații, trebuie să reduceți dimensiunea pixelilor, adică să măriți rezoluția.

Definiția 2

Permisiune este numărul de pixeli pe inch de dimensiunea imaginii.

Rezoluția este de obicei măsurată în pixeli pe inch (se folosește notația engleză $ppi$ = pixeli pe inch). De exemplu, o rezoluție de $254$ $ppi$ înseamnă că există $254$ pixeli pe inch ($25.4$ mm), deci fiecare pixel „conține” un pătrat de $0.1×0.1$ mm din imaginea originală. Cu cât rezoluția este mai mare, cu atât imaginea este codificată mai precis (se pierd mai puține informații), dar în același timp crește și dimensiunea fișierului.

Cod de culoare

Dacă desenul este colorat? În acest caz, un bit nu mai este suficient pentru a codifica culoarea unui pixel. De exemplu, în imaginea steagului rus $4$ prezentată în figură, culorile sunt negru, albastru, roșu și alb. Pentru a codifica una dintre cele patru opțiuni, sunt necesari $2$ biți, astfel încât codul pentru fiecare culoare (și codul pentru fiecare pixel) va consta din doi biți. Fie $00$ negru, $01$ roșu, $10$ albastru și $11$ alb. Apoi obținem următorul tabel:

Figura 4

Singura problemă este că, atunci când afișați pe ecran, trebuie să determinați cumva ce culoare corespunde unuia sau altuia cod. Adică, informațiile de culoare trebuie exprimate ca un număr (sau un set de numere).

Omul percepe lumina ca un set de unde electromagnetice. O anumită lungime de undă corespunde unei anumite culori. De exemplu, lungimile de undă de $500-565$ nm sunt verzi. Așa-numita lumină „albă” este de fapt un amestec de lungimi de undă care acoperă întreaga gamă vizibilă.

Conform conceptului modern de viziune a culorilor (teoria Jung-Helmholtz), ochiul uman conține trei tipuri de elemente sensibile. Fiecare dintre ei percepe întregul flux de lumină, dar primii sunt cei mai sensibili în regiunea roșie, a doua în regiunea verde și a treia în regiunea albastră. Culoarea este rezultatul excitației tuturor celor trei tipuri de receptori. Prin urmare, se crede că orice culoare (adică senzațiile unei persoane care percepe unde de o anumită lungime de undă) poate fi imitată folosind doar trei fascicule de lumină (roșu, verde și albastru) de luminozitate diferită. Prin urmare, orice culoare este aproximativ descompusă în trei componente - roșu, verde și albastru. Schimbând puterea acestor componente, puteți face orice culoare. Acest model de culoare se numește RGB după literele inițiale ale cuvintelor englezești roșu (roșu), verde (verde) și albastru (albastru).

În modelul RBG, luminozitatea fiecărei componente (sau, după cum se spune, fiecărui canal) este cel mai adesea codificată de un număr întreg de la $0$ la $255$. În acest caz, codul de culoare este un triplu de numere (R, G, B), luminozitatea canalelor individuale. Culoarea ($0,0,0$) este neagră și ($255,255,255$) este albă. Dacă toate componentele sunt de luminozitate egală, se obțin nuanțe de gri, de la negru la alb.

Figura 5

Pentru a face o culoare roșu deschis (roz), trebuie să măriți luminozitatea canalelor verde și albastru în mod egal în roșu ($255.0.0$), de exemplu, culoarea ($255, $150, $150) este roz. Scăderea uniformă a luminozității tuturor canalelor face o culoare închisă, de exemplu, culoarea cu codul ($100.0.0$) este roșu închis.

În total, există opțiuni de luminozitate de 256 USD pentru fiecare dintre cele trei culori. Acest lucru permite codificarea a 256$^3= 16.777.216$ nuanțe, ceea ce este mai mult decât suficient pentru un om. Deoarece $256 = 2^8$, fiecare dintre cele trei componente ocupă $8$ biți sau $1$ octeți în memorie, iar toate informațiile despre o anumită culoare sunt de $24$ biți (sau $3$ octeți). Această valoare se numește adâncimea culorii.

Definiția 3

Adâncimea culorii este numărul de biți folosiți pentru a codifica culoarea unui pixel.

Codarea culorilor de $24$-biți este adesea denumită modul True Color. Pentru a calcula dimensiunea imaginii în octeți cu această codificare, trebuie să determinați numărul total de pixeli (înmulțiți lățimea și înălțimea) și înmulțiți rezultatul cu $3$, deoarece culoarea fiecărui pixel este codificată în trei octeți. De exemplu, o imagine de $20x30$ pixeli codificată în modul truecolor ar lua $20x30x3 = 1800$ octeți.

În plus față de modul de culoare adevărată, se folosește și codarea $16$-biți (High Color), când biți $5$ sunt alocați componentelor roșii și albastre și biți $6$ componentei verde, la care ochiul uman este mai mult sensibil. În modul High Color, $2^(16) = 65.536$ culori diferite pot fi codificate. Telefoanele mobile au coduri de culoare de $12$-biți ($4$ biți pe canal, $4096$ culori).

Codarea paletei

În general, cu cât sunt utilizate mai puține culori, cu atât imaginea color va fi mai distorsionată. Astfel, la codificarea culorii, există și o pierdere inevitabilă de informații care se „adăugă” la pierderea cauzată de eșantionare. Foarte des (de exemplu, în scheme, diagrame și desene) numărul de culori din imagine este mic (nu mai mult de 256 USD). În acest caz, se folosește codarea paletei.

Definiția 4

Paleta de culori este un tabel în care fiecărei culori specificate ca componente în modelul RGB i se atribuie un cod numeric.

Codificarea paletei se face astfel:

  • selectați numărul de culori $N$ (de obicei nu mai mult de $256$);
  • alege orice $N$ culori din paleta de culori adevărate ($16 777 216$ culori) și găsește componente în modelul RGB pentru fiecare dintre ele;
  • fiecărei culori i se atribuie un număr (cod) de la $0$ la $N–1$;
  • compunem paleta, scriind mai întâi componentele RGB ale culorii cu codul $0$, apoi componentele de culoare cu codul $1$ și așa mai departe.

Culoarea fiecărui pixel este codificată nu ca valori RGB, ci ca număr de culoare în paletă. De exemplu, la codificarea imaginii steagului rus (vezi mai sus), au fost alese culorile $4$:

  • negru: cod RGB ($0.0.0$); cod binar $002$;
  • roșu: cod RGB ($255.0.0$); cod binar $012$;
  • albastru: cod RGB (0,0,255 USD); binar $102$;
  • alb: cod RGB (255.255.255 USD); cod binar $112$.

Prin urmare, paleta, care este de obicei scrisă într-o zonă de serviciu specială la începutul fișierului (se numește antetul fișierului), este format din patru blocuri de trei octeți:

Figura 6

Codul fiecărui pixel are doar doi biți.

Paletele cu culori de peste 256 USD nu sunt folosite în practică.

Avantajele și dezavantajele codării raster

Codificarea raster are demnitate:

  • metoda universală (orice imagine poate fi codificată);
  • singura metodă de codificare și procesare a imaginilor neclare care nu au limite clare, cum ar fi fotografiile.

ȘI limitări:

  • la discretizare, există întotdeauna o pierdere de informații;
  • la redimensionarea imaginii, culoarea și forma obiectelor din imagine sunt distorsionate, deoarece la creșterea dimensiunii, este necesar să restabiliți cumva pixelii lipsă, iar la scădere, înlocuiți mai mulți pixeli cu unul;
  • dimensiunea fișierului nu depinde de complexitatea imaginii, ci este determinată doar de rezoluție și adâncimea culorii.

De regulă, desenele raster au un volum mare.