A képek megjelenítése az egyik alapvetõ része a multimédiának.
Számítógépen a képek ún. pixelekbõl
(képpontokból) épülnek fel.
A pixeleknek különbözõ színük lehet,
és mivel ezek nagyon kis méretû pixelek, egymás
mellé téve egy képet alkotnak (hasonlóan a
TV képernyõ mûködéséhez).
A képek tulajdonságai:
- méret (szélesség / magasság )
- színmélység.
Ezt a három tulajdonságot egy számhármassal szokták felírni, pl. 640x480x256, itt az elsõ két tag a szélességet illetve a magasságot jelenti pixelekben, a harmadik pedig a színek számát.
Attól függõen, hogy milyen minõségben szeretnénk egy képet látni, a pixelek leírásához egynél több byteot is felhasználhatunk. Így több szín ábrázolására nyílik lehetõség, és minél több színt alkalmazhatunk, annál élethûbb lesz a képünk.
8 bit - 256 szín (2^8)
15 bit - 32768 ("32k" vagy HiColor) szín (2^15)
16 bit - 65535 ("64k" vagy HiColor) szín (2^16)
24 bit - 16,8 millió ("16m" vagy TrueColor) szín (2^24)
(a 24 bitesen ábrázolható 16,8 millió színárnyalatnál többet szemünk nem képes érzékelni).
Könnyen utánaszámolhatunk, hogy egy kép mennyi helyet foglalhat, hiszen csak be kell szoroznunk a méretét a színábrázoláshoz használt byte-mérettel. Például egy 640x480 truecolor képet 640x480x3 byte = 921600 byte.
Mivel a multimédiás felhasználásnál rendszerint nagyon sok képre van szükségünk, ezt az adatmennyiséget túlzott könnyelmûség és pazarlás lenne tömörítés nélkül használni, fõleg a CD véges tárolókapacitása miatt. Szerencsére a mai processzoroknál a tömörítés már egyáltalán jelent különösebb terhet, emiatt tehát nem probléma a tömörített képek alkalmazása.
Rengeteg képformátum létezik, amelyek különbözõ tömörítési algoritmusokat alkalmaznak. Lássunk pár példát.
PCX - egyike a legõsibb formátumoknak, bár manapság már nem nagyon használják. A legkézenfekvõbb tömörítési eljárást alkalmazza: ha egymás mellett több ugyanolyan színû képpont van, akkor leírja azt, hogy hány darab képpont, majd leírja a képpontot magát. Sajnos ez nem túlzottan hatékony például fényképeknél, mert a rengeteg árnyalat miatt kevés az egymás mellett lévõ ugyanolyan színû pixel.
GIF ("Graphics Interchange Format") - ez már a Lempel
- Ziw néven közismert, rendkívül elterjedt tömörítõ
algoritmust használja. Mûködése nagy vonalakban
annyi, hogy a kép készítésekor a készítõ
program készít egy speciális szótárt,
amelyben néhány, a képre nagyon jellemzõ pixelsorozatot
egy - egy kóddal lát el. Ezt a szótárt a program
leírja a GIF fileba, és amikor ezek a sorozatokat kellene
kiírni, már csak a kódjukat írja le a program.
Felolvasásuk "kiszótárazással" történik,
vagyis a megjelenítõ program a szótár alapján
behelyettesít.
A formátummal maximum nagyjából 50%-os tömörítést
lehet elérni, de a leggyakoribb 60-70% körül van. Hátránya,
hogy maximum 256 színû képeket lehet vele letárolni.
A formátum rendkívüli népszerûsége
visszaesett, amikor megalkotója, a Compuserve nevû cég
pénz kezdett kérni azoktól a programozóktól,
akiknek programja ilyen formátumban írt képeket.
A formátum egy késõbbi változatában
(GIF89a) több újítást is bevezettek, ami
miatt még ma is megvan a létjogosultsága. Az egyik
ilyen újítás az átlátszóság
(transparency). Ez esetben a kép készítésekor
megadhatunk egy átlátszó színt, amelyet megjelenítéskor
nem kell kirajzolni, így például készíthetünk
"lyukas", vagy például kör alakú képeket.
Ennek a jelentõsége az Internet miatt lett nagy, mivel az
Internetes oldalakon nagyon fontos tényezõ a látvány,
és ezzel néhány új trükköt lehet
alkalmazni az oldalakon.
Ez egy transzparens GIF file egy szürke, mintás háttér elõtt: a háttér "kibukkan" a kép közepén, ahol a képben az átlátszónak kijelölt színnel rajzoltak (a felirat természetesen szintén a kép része). |
A másik nagy újítás az volt, hogy animációt
is meg lehetett valósítani a formátummal. Igaz, ez
már a mozgóképek témájához tartozna,
a formátum miatt azonban mégis itt ismertetetem. A "moving
GIF" formátum ráadásul igen egyszerû: több
kép lejátszása egymás után. A képek
lehetnek különbözõ méretûek, és
"frame"-enként, vagyis képkockánként máshol
is elhelyezkedhetnek. Mindez egyetlen GIF fileba kerül bele, amit
megfelelõ programmal megnézve visszakapjuk a kívánt
animációt.
egyetlen GIF fileban |
Ezt szintén egybõl felhasználták az Interneten, mert így az egyébként statikus, álló oldalak elõször "mozdultak meg" (erre késõbb aztán már más lehetõség is akadt).
PNG ("Portable Network Graphics")- a GIF utódja hivatott lenni, ingyenes, és még hatékonyabb formátum. Nem terjedt el eléggé, fõleg azért, mert a különbözõ Internetes böngészõprogramok (Netscape, Explorer) nem támogatták.
BMP - a Windows nagyon gyenge hatásfokú formátuma. Több verziója létezik, de még a legjobbjának a tömörítése is nagyon alulmarad a legtöbb formátumhoz képest.
Az eddig tárgyalt formátumok mindegyikére igaz, hogy sorfolytonosan írják le a képeket (elsõ sor elsõ pixel, második, harmadik, és így tovább, majd a következõ sor, stb), valamint bitre pontosan ugyanazt a képet adják vissza, amit szerettünk volna tömöríteni.
Itt jön be a képbe a JPEG (Joint Photographic Experts
Group).
A JPEG bizonyos információk intelligens eltávolítása
útján tömöríti a képet, a file méret
csökkentése céljából. Ezt "veszteséges"
eljárásnak nevezik, mivel információ vész
el a kép egyszerûsítése érdekében.
Minden egyes képet külön megvizsgálva meghatározhatjuk
az eltávolítandó információ mennyiségét,
kompromisszumot kötve a kép minõsége és
a file mérete között.
A JPEG tömörítést alkalmazva soha nem bitre
pontosan ugyanazt a képet kapjuk, de ettõl függetlenül
az eredmény rendszerint tökéletesen élethû
(köszönhetõen annak, hogy a truecolor módban (24
biten) tároljuk).
Napjainkban ez a formátum a legelterjedtebb az összes közül,
fõleg azért, mert átlagos tömörítési
módját alkalmazva legalább tizedére vagy akár
még jobban össze tudja tömöríteni a képi
anyagot.
Az összes internetes böngészõ támogatja
a formátumot, fõleg azért, hogy az oldalak készítõi
is ezt használják tervezés közben - így
az Internet terhelése jóval kisebb, mintha egy nagyobb, bõvebb
formátum lenne elterjedt.
A JPEG és a GIF formátum összehasonlítása
A JPEG és a GIF formátum - mint a két elsõdleges formátum - közötti különbség a gyakorlatban annyi, hogy - ha mindkettõt használhatjuk - a GIF elsõsorban különbözõ "homogén" színeket tartalmazó ábrák tárolására alkalmas, a JPEG pedig elsõsorban fotó jellegû képekhez.
A következõkben saját szemünkkel is meggyõzõdhetünk
a különbségrõl (elõtte gyõzõdjünk
meg arról, hogy az alkalmazott videomód 256 színnél
többet képes kezelni, mert a JPG képek ez esetben valószínûleg
nem teljes minõségükben fognak megjelenni).
|
|
|
|
A két kép ugyanazt a képet ábrázolja
GIF illetve JPEG formátumban. A GIF formátum
hasonló minõségben tárolta
a képet, mégis nagyobb méretben.
A két kép szinte teljesen ugyanúgy néz
ki, ha csak 256 színû üzemmódban nézzük,
ám a JPEG sokkal szebb, ha legalább 15 bites üzemmódban
vagyunk - ráadásul kisebb is.
|
|
|
|
Szintén ugyanazt a két képet tároltuk a
két különbözõ formátumban, de ez alkalommal
az egyszínû képrészletek dominálnak.
Látható a minõségromlás a JPG formátumnál,
rááadásul még nagyobb is (ha ugyanolyan minõségben
szeretnénk látni, a JPG formátummal ugyan elérhetjük,
de aránytalanul nagy fileméret árán).
Ez a különbség az alkalmazott algoritmusok természete
miatt tûnik így fel ilyen egyszerû ábra esetén.
home - prev - next