19.03.2015 Views

Laborator01

Laborator01

Laborator01

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

SACCDAV<br />

memorează o secvenŃă de imagine, fără a mai sintetiza o paletă de culori care ar creşte ca mărime o dată cu creşterea<br />

duratei secvenŃei. Aceste moduri grafice sunt cele folosite în High Digital Television având posibilitatea redării oricărui<br />

conŃinut de culoare dintr-o imagine.<br />

1.2.3 Calculul dimensiunii unui fişier BMP<br />

După cum am arătat mai sus un fişier BMP este format din trei părŃi: bitmap header, paleta de culori şi<br />

informaŃia de imagine. De aici rezultă că dimensiunea unui fişier BMP va fi egală cu suma dimensiunilor celor trei<br />

câmpuri. Astfel, spaŃiul de memorie ocupat de bitmap header este de 54 de octeti (bytes). În cazul în care se foloseşte<br />

pentru reprezentarea imaginii o paletă de culori, pentru fiecare culoare se vor aloca câte patru octeŃi (câte unul pentru<br />

fiecare componenta de culoare roşu, albastru şi verde, urmaŃi de încă unul cu valoarea 0, octet rezervat de standard).<br />

Mărimea informaŃiei de imagine este direct proporŃională cu dimensiunea imaginii. Astfel, pentru fiecare pixel<br />

al imaginii se vor aloca câte b-biti (unde b reprezintă poziŃia culorii în paletă, b este reprezentat de un număr de biŃi egal<br />

cu numărul de biŃi pe care este reprezentată fiecare culoare din paleta de culori împărŃit la trei) respective 24 biŃi (pentru<br />

imaginile true color, cele care nu folosesc paleta de culori).<br />

Între calculul teoretic şi cel practic (dimensiunea reală a unui fişier BMP) pot să existe diferenŃe. Acestea apar<br />

atunci când numărul de pixeli pe orizontală nu este divizibil cu patru (multiplu de patru). Prin urmare avem două cazuri.<br />

1. Dimensiunea liniei unei imagini este multiplu de patru, caz în care rezultatul calculului teoretic va coincide cu<br />

dimensiunea fişierului:<br />

Ex. O imagine de 16 pixeli lăŃime şi 10 înălŃime, având o paletă de 256 de culori.<br />

D = D + D + D = 54octeti + 4*256octeti + 16*10octeti = 1238octeti<br />

teoretic header paleta inf . img .<br />

D = D + D + D = 54octeti + 4* 256octeti + 16*10octeti = 1238octeti<br />

practic header paleta inf . img.<br />

4 4 4 4<br />

1<br />

2<br />

10<br />

2. LăŃimea imaginii nu este multiplu de patru.<br />

Ex: Dimensiunea liniei este de 17 pixeli lăŃime şi 10 înălŃime, având aceeaşi paletă de culori:<br />

D = D + D + D = 54octeti + 4*256octeti + 17*10octeti = 1248octeti<br />

teoretic header paleta inf . img.<br />

D = D + D + D = 54octeti + 4*256 octeti + *10octeti = 1278octeti<br />

practic header paleta inf . img.<br />

20<br />

4 4 4 4<br />

1<br />

1<br />

2<br />

10<br />

În acest caz se observă că, se va lua în calcul nu dimensiunea liniei, ci a primului număr divizibil cu 4 mai<br />

mare decât lăŃimea liniei. Conform standardului, cei 1, 2 sau 3 pixeli adăugaŃi în fiecare linie se completează cu 0, ei<br />

nefiind interpretaŃi la afişare. De remarcat că în headerul BMP se reŃine dimensiune reală a imaginii, nu cea la care au<br />

fost adăugaŃi pixelii de completare (în cazul nostru 17 nu 20 cât este multiplu de 4).<br />

3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!