2017. június 29., csütörtök

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

Képformátumok, mindenkinek

  • (f)
  • (p)
Írta: |

Ezt a leírást informatikában kevésbé jártas olvasóknak készítettem a digitális képformátumokról.

[ ÚJ TESZT ]

- Gizike, mentse le inkább jépégébe, úgy küldje nekem, tudja a béempé nagyon nagy helyet foglal, és betelik a mélboxom.
- Nekáromkoggyon már Józsi! Tudja, hogy nem szeretem.

Időnként hasonló párbeszédeknek lehetünk fültanúi, netán részesei. A régi szép időkben, mikor még az MS-DOS volt a menő (vagy inkább az egyetlen lehetőség), mindenki tudta, hogy mi a különbség a képformátumok között. Legalábbis akinek voltak ún. "digitalizált" képei, az biztos tudta. A digitális médiák nem igazán voltak elterjedve akkoriban, még az mpeg kódolás is gyerekcipőben volt.
Manapság ez nem egészen így van, a média és az informatika összefonódott. Már rég messze kerültünk attól a korszaktól, amikor minden CD-ROM meghajtóval szerelt gépre nagy betűkkel azt írták: multimédiás.

Ezt a leírást informatikában kevésbé jártas olvasóknak készítettem, ezért helyenként - az érthetőség kedvéért - nem a szakszerű kifejezéseket fogom használni.

Készítsünk képeket!

Készítsünk képeket!

De nézzük csak, miből is áll egy digitális kép...

A számítógép képpontok (pixelek) formájában tárolja a képeket. Rengeteg - megfelelően kicsi - képpontot a szemünk egy összefüggő formának lát (1. ábra). Minden képpont másmilyen színű lehet. Persze a színek száma függ a képformátumtól, sőt, a hőskorban a monitortól ill. a grafikus kártyától is függött. Hihetetlen manapság, de létezett olyan videokártya is, mely egyszerre csak 4 színt, és maximum 640x200-as felbontást kezelt (CGA). Valamint a DOS-os korszakban az sem volt természetes, ha egy monitor színes volt (többnyire fekete-fehér monitorok léteztek, a hasonló képességekkel bíró TV-k mintájára).

De a pixelekkel még mindig nem jutottunk el a legelemibb összetevőhöz. Mindegyik képpont, további 3 kisebb pontból áll össze, az egyik adja a vörös színösszetevőt, a másik a zöldet, a harmadik pedig a kéket. Tudom, hihetetlenül hangzik, de ebből a három színből - szinte - bármilyen színt ki lehet keverni (így működnek a színes monitorok és tv-k). A három összetevő angol nyelvű rövidítéséből kialakítva már el is érkeztünk az RGB színkeveréshez. Ez egy ún. additív színkeverési mód, vagyis minél több mennyiséget keverünk a 3 színből össze, annál világosabb lesz az eredményül kapott szín. Ha mindhárom pont maximum (255) intenzitással világít, fehéret kapunk. Ha minimum (0) intenzitással, feketét. Ha festékeket keverünk, akkor éppen ellenkező színkeverést használunk, amit szubtraktívnak nevezünk. Ismerős az általános iskolai rajzóráról? :) Utóbbit használják például a nyomtatásban, de akár a festők is.

Additív RGB szinkeverés Szubtraktív CMY színkeverés

Additív (RGB) és szubtraktív (CMY) színkeverési mód.

A fenti okfejtésből világossá válik, hogy általában egy digitális kép egy képpontja 3 bájtból (vagyis 24 bitből) áll. Általában, mert léteznek egyéb formátumok is, de mi most maradjunk a hagyományos, 24 bites (vagy más néven truecolor) megjelenítési/tárolás módnál. A JPEG képek (hacsak nem szürkeárnyalatosként lettek elmentve), - mely az interneten a legelterjedtebb képformátum - mind ezt a módot használják.

Számoljunk kicsit. 1 bájt piros, 1 bájt zöld és 1 bájt kék, szorozva a kép méretével képpontokban kifejezve. Tegyük fel, hogy képünk jelen esetben 2 megapixeles, mely már nagyon kicsinek számít a jelenkor digitális fényképezőihez mérve. 1600x1200 pixel közelítőleg 2 megapixel, és ez épp megfelel egy szabványos képfelbontásnak. Ha mindezt összeszorozzuk (1600x1200x3), kapunk 5,7 MB adatot. Ez nem kevés, 4 megabites internet kapcsolattal kb. 12mp letölteni, és ez még csak egy darab kép, ráadásul manapság már kicsinek mondható felbontással. Képzeljük el, hogy barátainkkal meg akarjuk osztani a nyaralásunkon készült több száz képet. Egy lassabb (mondjuk 1 megabites, netán betárcsázós "és mit eszik?") internettel rendelkező haver megőszül, mire végignézi. Arról nem is beszélve, hogy ily módon 100 kép tárolásához 600MB tárhely kell, ennyi pedig még ma sem számít kevésnek. És ha 8 megapixeles képeket veszünk alapul, akkor mindezen számokat megszorozhatjuk néggyel...
Mindehhez hozzájön az is, hogy egyre elterjedtebb a mobil internet, mely ismérve, hogy nagyon lassú, és általában erősen korlátozott a forgalmazható adatmennyiség. Barátunk biztos nem örülne, ha már egy képünkkel betelne a havi adatforgalmi kvótája (aztán mi sem örülnénk a szavainak).

Az LCD monitor fizikai felépítése

Az LCD monitor fizikai felépítése. Ez látjuk, ha felnagyítjuk a monitor kijelzőjét.

Na de mi a megoldás?

A megoldás valamilyen tömörített képformátum használata. Rengeteg képformátum létezik, melyeket általában a kép kiterjesztése jelez is felénk. Nézzük végig ezeket, a formátumokat. Csak az átlagember számára jelentősebbeket fogom felsorolni, ezért senki se reklamáljon, hogy mi a helyzet mondjuk a TGA-val. De kezdjük először a tömörítetlen képformátumokkal.

Tömörítetlen formátumok

BMP
A BMP kiterjesztés Windows Bitmap formátumot jelent, mely tömörítetlen (létezik tömörített változata is, de nem használják). Tehát ha ebben mentjük el a képeket, akkor kerülünk szembe a fentebb ecsetelt helyzettel. Soha ne használjuk, nem érdemes! Feleslegesen foglalunk a képpel nagy tárhelyet, és csak bosszúságot okozunk vele másoknak, de hosszú távon akár maguknak is.

RAW
A legtöbb minőségi fényképezőgépnek van olyan módja, mely ilyen RAW (nyers) formátumban menti le a képeket. Erre azért van szükség, mert a másik - a fényképezésben általánosan elterjedt formátum -, a JPG veszteségesen tárolja a képeket. Hogy mit is jelent ez, majd később kitérek rá. A RAW formátummal sem érdemes foglalkozni, hiszen - mivel mindegyik gyártó máshogy specifikálta, nem egy általános szabványról van szó, ezért csak speciális célszoftverekkel lehet megnyitni ezeket a képeket. Ráadásul a képek ilyen formában való tárolásához, hatalmas tárhely szükséges (még rengeteg egyéb információt tárol a fent említett RGB színeken kívül).

Veszteségmentes, tömörített formátumok

Ezeknek az előnye az, hogy - mint a nevük is mutatja - tömörítve tárolják a képpontokat, vagyis jó esetben sokkal kisebbek lesznek fizikailag a képek az adattárolón. Ugyanakkor megtartják a képek minőségét, vagyis a képpontok nem változnak az eredeti képhez képest.

TIF (TIFF)
Eredetileg a scanner gyártók megegyezésével született, közösen specifikált képformátum. Scannelésen kívül egy átlagember nemigen találkozik ezzel a formátummal. Annyit érdemes róla megjegyezni, hogy ha veszteségmentesen akarunk scannelni, és nincs PNG formátum (erről később), akkor ebbe mentsük a képeket. A képnéző programok szinte 100%-a képes megnyitni ezt a formátumot, és némelyik program a tömörítés algoritmusát is engedi kiválasztani (az LZW a legjobb).

Látkép a Magas Tátrában. Itt érdemes fotózni. Katt a teljes képért

Látkép a Magas Tátrában. Itt érdemes fotózni. Katt a nagyításért.

A fent látható kép nagyjából 2 megapixeles (1600x1200 pixel). BMP-ben 7501 KB, TIFF-ben (LZW tömörítéssel) 2886 KB, PNG-ben (max. tömörítés) 2524 KB, GIF-ben 936 KB, és végezetül JPG-ben (95-ös minőség) 606 KB.

GIF
Ez is veszteségmentes, hátránya, hogy csak maximum 256 különböző színt képes tárolni egy képben, ezért manapság főleg rajzfilmszerű megjelenítésre használják. A maximum megjeleníthető színek számából következik, hogy csak abban az esetben lesz veszteségmentes, ha a használt színek száma nem több 256-nál. Az internet hőskorában ez volt a fő képtárolási mód a weblapokon, hiszen egy képponthoz csak egy bájtra van szükség (RGB-nél ugye háromra). Hozzátartozik az is, hogy akkoriban a monitorok felbontása és minősége is jelentősen rosszabb volt, ezért ez a formátum is megfelelt az igényeknek. A GIF még manapság is ideális lehet egy olyan kép tárolásához, ami max. 256 színt tartalmaz (pl.: szürkeárnyalatos). Érdekessége még, hogy támogatja az animációt, vagyis ugyanaz a fájl több, egymást követő képet (ún. frame-t) tartalmazhat. Ha az interneten látunk egy kisebb méretű animációt, filmrészletet, mely nagyon szemcsés, valószínűleg GIF formátumban töltötték fel a weboldalra. Figyelem! Amennyiben egy fényképet (vagy egy 16,7 millió színt tartalmazó bármilyen képet) konvertálunk GIF-re, az eredmény veszteséges lesz. A veszteség viszont nem a tömörítés, hanem a konvertálás közben lép fel. Minden képnéző szoftver ismeri a formátumot.

PNG
Az eddigi legfiatalabb formátum, mely évekkel ezelőtt azért jött létre, hogy megtörje a GIF dominanciáját (ennek főleg anyagi okai voltak). Manapság az egyik legelterjedtebb formátum a JPG mellett. Előnye, hogy ez is veszteségmentes, és viszonylag jó tömörítési hatásfokkal dolgozik. Azoknak, akik veszteségmentesen szeretnék tárolni a képeiket, mindenképpen ezt a formátumot ajánlom (kivéve a profi fotósok, ők maradjanak a RAW-nál :). Természetesen felesleges, egy már előzőleg veszteséges formátumba elmentett fotót átkonvertálni ebbe, mert nem lesz jobb a minősége. Ami egyszer elveszett, már nem lehet visszahozni. De, ne ezt a formátumot használjuk arra, hogy kidekoráljuk a cikkünket, mert sokkal nagyobbak a képek, mint a veszteséges tömörített formátumokban. Viszont tökéletes lehet olyan screenshotok tárolására, melyek nem tartalmaznak képeket (pl. egy felhasználói szoftver felülete). Némelyik képkonvertáló engedi, hogy állítsuk a tömörítés hatásfokát 1-9-ig (mint a ZIP-nél), mely természetesen - veszteségmentes lévén - nem befolyásolja a minőséget.

JPEG tömörítés. Katt a teljes képért.

JPEG tömörítés, 10-es, 50-es és 90-es minőséggel. Katt a teljes képért.

Veszteséges, tömörített formátum

JPG (JPEG)
Konkrétan csak erről az egyről fogok beszélni, hiszen ez a legelterjedtebb, más veszteséges formátum nem is igen fordul elő (nem azt jelenti, hogy nem létezik).
Miért veszteséges? Ahhoz, hogy a tömörítés hatásfoka minél jobb legyen, a tömörítő algoritmus bizonyos pixelek színét megváltoztatja. Fontos, hogy az eredeti szín elveszik, mikor kitömörítjük (megnézzük) a képet, már a változtatott színeket kapjuk vissza. Persze jó esetben ez észrevehetetlen. A tömörített kép minősége a tömörítés hatásfokától függ. Minél jobb hatásfokot szeretnénk, annál több pixelnek változik meg egyre jelentősebb mértékben a színe. Ez az eljárás arra épül, hogy az emberi szem nem képes megkülönböztetni minden egyes pixelt, és a kis változásokat sem veszi észre. A zenetárolásban elterjedt MPEG (MP3) formátum is ugyanígy működik. Módosítja a hanghullámot a jobb tömörítési hatásfok érdekében, melyet jó esetben - a tömörítés hatásfokától függően - ugyancsak nem hallunk meg.
A JPG kép minőségét 1 és 100 között állíthatjuk a kép mentése/konverziója esetén (ez alól is van kivétel, pl. a Windows Paint nem kérdez rá a minőségre, nagyjából 95-98-as minőséggel dolgozhat). Tapasztalatom szerint a 95-ös minőségnél a legtöbb ember már nem vesz észre minőségromlást. De a legjobb, ha mindenki saját maga kikísérletezi a megfelelő minőséget. Van, aki nem mentene el semmit 100 alatt. A képméret-minőség összefüggése fordítottan arányos. Egy 90-es minőségű kép mérete, hatoda-nyolcada lehet a tömörítetlen változatnak (BMP), de egy 10-es minőségű akár a 100-ad része is lehet, persze borzalmas minőséggel.
Ezt a formátumot minden képnéző ismeri, és ezt érdemes használni, ha fotókat küldünk ismerősnek, netán feltöltünk egy képet az internetre. Sőt, fontos megjegyeznem, hogy a Windows XP-ben található Paint már képes ebben a formátumban menteni a képeket. Remélem mindenki érti a célzást...

Ne pazaroljuk feleslegesen a sávszélességet, gondoljunk a kis sávszélességgel rendelkező emberekre is (betárcsázós és mobil)!

cousin333 javaslatára összefoglalom:

1. BMP-t soha ne használjunk (legfeljebb köztes formátumnak), mivel túlságosan és feleslegesen nagy méretű
2. vonalas ábráknál (pl. táblázat, szöveg, grafikon) PNG, esetleg GIF ajánlott (veszteségmentes, és a jpg-vel szemben nem "maszatolja" szét a vonalakat)
3. fotóknál elsősorban JPG ajánlott, 90-95 körüli minőséget érdemes használni

Mindenki mondja utánam hangosan:

Soha többet nem fogok képet BMP formátumban feltölteni! Soha többet nem fogok képet BMP formátumban feltölteni! Soha többet nem fogok képet BMP formátumban feltölteni! Soha többet nem fogok képet BMP formátumban feltölteni! Soha többet nem fogok ...

Végezetül egy jótanács: a kép konvertálásához nem elég átnevezni a kép kiterjesztését (mondjuk BMP-ről JPG-re), konvertáló programot kell használnunk (pl. Irfanview)

Hatalmas köszönet Viszlátnak a korrektúráért! :)
Amennyiben találtok hibát az írásban, kérlek jelezzétek egy hozzászólásban.

Hirdetés

Előzmények

Hirdetés

Copyright © 2000-2017 PROHARDVER Informatikai Kft.