VI. el®adás: Szöveges és média fájlformátumok
Halácsy Péter, Varga Dániel 2012. október 12.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Fájlformátumok
Minden fájl egy bájtsorozat. Honnan tudja a gép, hogy egy bájtsorozattal mit csináljon? Pontos szabályrendszerekre van szükségünk, ami leírja, hogy a bájtsorozat hogyan értelmezend®. Ezek a szabályok a fájlformátumok.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Szövegkódolás
Talán a legegyszer¶bb példák fájlformátumra az írott, formázatlan szöveg tárolására szolgáló formátumok. De már itt is felmerül jónéhány kérdés, és sokféle megoldás lehetséges. Kezdetnek nézzük meg az egyetlen bet¶ tárolására szolgáló formátumokat, mint épít®köveket.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Karakterkódolás
Szedjük össze, hogy hányféle karakterre lenne szükségünk! Ehhez hány bit kell? Az USA-ban 1963-ban úgy ítélték meg, hogy elég lesz 7 bit. Ebb®l elég sok baj származik még ma is.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
ASCII tábla
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
8 bites kódtáblázatok
Tehát van egy kódtáblázatunk (eddig ASCII (American Standard Code for Information Interchange)), ami megadja, hogy egy számhoz milyen karakter tartozik. Szükség lenne helyre további karaktereknek. Logikus megoldás: használjuk a bájt mind a 8 bitjét. Így 256-féle karaktert tárolhatunk. Ilyenek az ISO kódtáblák (ISO = nemzetközi szabvány).
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
ISO Latin 1 - Nyugat-Európa
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
ISO Latin 2 - Közép-Európa
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
ISO Cirill - bolgár, szerb, orosz, ukrán, macedón
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Miért látunk néha hullámos Õ-t helyett?
Ha a számítógép nem tudja, hogy egy szöveget tartalmazó bájtsorozat kódolása ASCII, Latin 1, Latin 2, vagy valami más, akkor bajban van. Ha lát egy 245-ös bájtot, mit fog megjeleníteni?
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Unicode
Mára már nem elfogadható (bár még el®fordul), ha mondjuk egy program képtelen a magyar ¶-t vagy a cirill bet¶ket értelmezni, tárolni, kezelni. Belenyugszunk, hogy nem elég egy bájt. Ha egy bet¶ több bájtot is foglalhat, akkor akárhányféle bet¶t tárolhatunk. Az Unicode szabvány célja a Föld összes különböz® bet¶jének a felsorolása. UTF-8 (Universal Character Set Transformation Format 8-bit) kódolás: a bet¶knek rövid (1-4 hosszú) bájtsorozatokat feletetünk meg. Az angol bet¶k továbbra is ugyanazt az egy bájtos kódot kapják, mint 1963-ban az ASCII-tól. De a többiek több bájtosat. Például az á kódja a 195 161 (ez két bájt). Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formázatlan szöveg
Ha a szöveget egyszer¶en valamelyik fenti módon kódolt bet¶k sorozataként tároljuk, akkor formázatlan szövegr®l beszélünk. Egy nagyon kicsit azért ez is formázott, hiszen a 32 a szóköz (space) karakter, és a 10 és a 13 az új sor kezdésének kódszámai. A karakter szót azért használtuk a bet¶ szó helyett, hogy jelezzük, hogy bet¶n kívül szám, írásjel, szóköz, újsor, és több más szimbólum is szerepelhet itt. A formázatlan szöveget tartalmazó fájlok hagyományosan txt kiterjesztés¶ek. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formázott szöveg
Formázatlan szöveg nem képes azt az információt hordozni, hogy hogyan jelenik meg a szöveg. Ilyen információ például a tipográai, például: d®lt bet¶ vastag bet¶ aláhúzás bet¶méret ..és tördelési, például: sorkizárás középre igazítás A formázott szöveget kezel® formátumok többsége képek beillesztését is lehet®vé teszi. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formázott szöveg
Mindenképpen szükségünk van egy megjelenít® programra. Ha ez egybeesik a szerkeszt® progammal, akkor WYSIWYG, what you see is what you get szerkeszt®r®l beszélünk. Példa: wikipedia szerkeszt®, Microsoft Word. Léteznek csak gép által kezelhet® formátumok (doc), ...és ember által is olvasható és szerkeszthet® formátumok (html). Ez szubjektív és folytonos skála (például: rtf, docx). Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formátumok - MS Word doc
Microsoft Word formátum, doc. Az egyik legelterjedtebb fájlformátum formázott szöveg tárolására. Ember által nem olvasható formátum. El®állításához és megjelenítéséhez a Microsoft Word programra van szükség (vagy más olyan szövegszerkeszt®re, amely többé-kevésbé képes kezelni a formátumot, például LibreOce, OpenOce). A nem Microsoft által írott programok számára nehéz az értelmezése, mert a Microsoft nem ad ehhez elegend® tájékoztatást. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formátumok - MS Word docx
A Microsoft Word 2007 óta az alapértelmezett formátum a MS Word-ben a docx. Az egyik legelterjedtebb fájlformátum formázott szöveg tárolására. Ember által olvasható formátum (visszanyerhet® bel®le a szöveges tartalom), csak egy kicsit dolgozni kell érte: ha átnevezzük .zip kiterjesztésér¶ a .docx állományt, akkor egy a .zip formátumot kezelni képes tömörít® programmal ki lehet csomagolni a tartalmát, és a különböz® formázási és egyéb utasításokat és meghatározásokat tartalmazó állományok mellett megtaláljuk a tényleges szöveget tartalmazó állományt, amelyet böngész®vel vagy csak szöveget tartalmazó fájlok megnyitására alkalmas szövegszerkeszt®vel is megnézhetünk. El®állításához és megjelenítéséhez olyan szövegszerkeszt®re van szükség, amely képes kezelni a formátumot, például MS Word, LibreOce, OpenOce. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formátumok - pdf
pdf (Portable Document Format): Ember által nem szerkeszthet® formátum formázott szövegek és ábrák megjelenítésére. El®állításához és megjelenítéséhez a doc-hoz és a docx-hez hasonlóan speciális programokra van szükség. Fontos tulajdonsága, hogy a doc és docx formátumokkal szemben egészen pontosan rögzíti a bet¶k és ábrák formáját és elrendezését: egy pdf dokumentum két különböz® számítógépen kinyomtatva ugyanúgy fog kinézni mindkett®n, ami doc és docx esetében nem mindig igaz. További különbség a doc formátumhoz képest, hogy a kódolás szabályrendszere teljesen nyilvános, tehát bárki írhat pdf-megjelenít® vagy szerkeszt® programot. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Formátumok - html
Hypertext Markup Language, html. Ember által is szerkeszthet® formátum. A célja az adatok megjelenítésmódjának leírása és nem az adatok deniálása (ez utóbbi az XML alapvet® célja) A weboldalak meghatározó formátuma, ezért a webböngész® els®dleges feladata html adatok értelmezése és megjelenítése. (Ugyanakkor a böngész®nek nem feladata html formátumú adatok szerkesztése.) Speciális szöveges jelölésrendszer (markup) segítségével sokféle tipográai és tördelési információt hordozhat. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
HTML szerkesztés
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Multimédia
tömörítés alapelvei képek hangok mozgóképek
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Bitmap (rasztergraka) és RGB színkeverés
Kép forrása: https://secure.wikimedia.org/wikipedia/ en/wiki/Raster_graphics Halácsy Péter, Varga Dániel
Minden pixel külön deniálva, ezért hívják pixelgrakának is Az RGB színskálát alkalmazva az egyes pixelek színét a piros, zöld és kék színek összegeként deniáljuk (például 24bit RGB esetén egy-egy bájt adja meg a piros, zöld és kék színek értékét) VI. el®adás: Szöveges és média fájlformátumok
Képek - tömörítés
Pixelekb®l álló kép tárolásához a pixelek színeit kell feljegyezni. De különböz® trükköket használunk arra, hogy kisebb helyen eltárolhassuk ezeket. Például: Grakák, rajzok - kihasználhatjuk, hogy kevés színük van. Fotók - kihasználhatjuk, hogy kis változtatások nem felt¶n®ek.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítés: alapötlet
Egy fájlban lehetnek szabályszer¶ségek. Két egyszer¶ példa:
1. példa: valami egymás után sokszor ismétl®dik. 2. példa: valami gyakran fordul el®, nem okvetlenül egymás után.
A szabályszer¶ségeket ki tudom használni arra, hogy ugyanazt az információt kisebb helyen tárolhassam, mint az eredeti fájl. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítés: 1. példa
A fájlban ezer nulla áll egymás után. Ekkor rövidebb eltárolni, hogy "itt most ezer nulla következik egymás után", mint magukat a nullákat. Ezt felhasználhatom tömörítésre.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítés: 1. példa (képekre alkalmazva)
Tegyük fel, hogy 256x256-os fekete-fehér képeket akarok eltárolni. Tömörítetlenül ez 256x256 bitet igényel, ami 8192 bájt. A példa kedvéért tegyük fel, hogy a képeim mind fehér alapon fekete köröket ábrázolnak. Hogyan tudom ezt kihasználni tömörítésre?
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítés: 1. példa (képekre alkalmazva)
A kép minden egyes sorát tekintsük úgy, mint fekete és fehér csíkok egymásutánja. Például: "A sorban balról jobbra haladva el®ször van 130 fehér pixel, aztán 16 fekete pixel, aztán 110 fehér pixel." Hogyan lesz ebb®l fájlformátum? Minden egyszín¶ csíkot eltárolhatok 9 biten: Nyolc bit a csík hossza (1-256), egy bit a színe (fekete/fehér). Egy 256x256-os fehér alapon fekete kör tárolása ezen a módon. Hány bájt? Soronként 5x9 bit: 256x45 bit, 1440 bájt. Egy pepita kép tárolása ezen a módon. Hány bájt? Soronként 256x9 bit, vagyis összesen 256x256x9 bit, 73728 bájt. Ez most nem érte meg. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítés: 2. példa
Tegyük fel, hogy egy szövegben gyakori az E bet¶. (Magyar szövegekben valóban gyakori.) Ekkor kevesebb biten is eltárolhatjuk a szöveget, pontosan azon az elven, mint a Morse-ábécében, ahol az E egyetlen ponttal van kódolva, míg a ritkább Q bet¶ néggyel (- - . -). Miben különbözik a bináris eset a Morse ábécét®l? Hogy ott igaziból háromféle jel van: vessz®, pont és szünet. Akkor hogyan is kell ezt pontosan megoldani? Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Egy kis elmélet
Mi történik, ha egy olyan fájlt próbálunk meg tömöríteni, amiben semmi szabályszer¶ség sincs? Nem lesz rajta tömörítenivaló, így nem lesz kisebb. De a legrosszabb esetben is fenntarthatjuk a fájlformátumunkban azt az esetet, hogy ha a "tömörítetlen:" bájtsorozat után ott áll az eredeti állomány tartalma, akkor azt értelmezzük bet¶r®l bet¶re. Tehát a jó tömörítés sem mindig tömörít, de legrosszabb esetben is csak kicsivel növeli a méretet. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Egy kis elmélet II.
Mi egy tipikus példa tömöríthetetlen fájlra? Egy már tömörített állományon általában már nincs mit tovább tömöríteni: ha jó a tömörít®nk, akkor már els®re is kifacsarta a tömörítési lehet®ségeket. Ha egy tömörítési módszer minden állományt képes lenne tömöríteni, akkor ismételt alkalmazásával el®bb-utóbb mindenb®l egybájtos fájlt tömöríthetnénk, ami képtelenség. (Ennek ellenére id®r®l id®re emberek azzal próbálnak pénzt kicsalni befektet®kb®l, hogy azt állítják, hogy feltalálták a minden fájlt tömöríteni képes programot.) Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Veszteségmentes tömörítés a gyakorlatban
A most bemutatott elveken alapulnak a tömörít®eljárások, mint például a zip és rar. A tömörít® tehát olyan program, amely egy fájlból egy olyan (remélhet®leg kisebb) tömörített fájlt hoz létre, amib®l aztán egy kitömörít® program képes pontosan visszaállítani az eredeti fájlt. A tömörített fájlt gyorsabban továbbíthatjuk, illetve kisebb helyen tárolhatjuk, mint az eredetit, de ha vissza akarjuk kapni az eredetit, akkor szükségünk van a kitömörít® programra. A zip nyílt formátumnak számítana, de nem felel meg teljes mértékben a nyílt formátumokkal szemben támasztott követelményeknek. Megjegyzés: praktikus okokból a zip és rar fájlformátumok képesek több fájl tömörítve való tárolására is. Kitömörítéskor válaszhatunk, hogy mindet, vagy csak néhányat állítjuk helyre. A tömör fájlt hagyományosan archívumnak nevezzük. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Veszteséges tömörítés
Veszteséges tömörítés: Ha képet vagy hangot továbbítunk, akkor nem okoz végzetes problémát, ha néhány pixel színe kicsit megváltozik a képen, vagy a hang az emberi fül számára nem hallható módon megváltozik. Ezen az elven alapulnak a veszteséges tömörít® eljárások: Lényegében keresnek egy olyan jelet, amely a tömörítend® jelhez a felhasználó szempontjából hasonlít (úgy néz ki, úgy hangzik), de annál szabályosabb, jobban tömöríthet®. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Paletta
Ha csak 256 különböz® színt használnánk egy képen, akkor egy pixel színe 1 bájtot foglalhatna 3 helyett, mert az RGB bájtok helyett az tárolhatnánk, hogy a szín hanyadik a palettán. és plusz még 3x256 bájt lenne magának a palettának a tárolása. Így körülbelül harmadannyi bájt kellene egy nagy kép tárolásához. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
gif tömörítés
Palettát alkalmaz a gif veszteséges képtömörítés is: El®ször okos módszerekkel kitalálja, hogy mik a legfontosabb szinek, és a palettán nem szerepl® színeket a palettán szerepl® hasonló színekkel helyettesíti, lebutítva a képet. Aztán a pixelenként már csak egybájtos fájlt veszteségmentesen tömöríti. A kitömörítés értelemszer¶: a helyettesített színeket nem kapjuk vissza. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
gif
eredeti kép
kép gif formátumban Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
jpeg tömörítés
Fénykép tömörítésénél kihasználhatjuk, hogy a képen általában sok hasonló ismétl®d® részlet van. Például a kék ég, vagy az út aszfaltja. Ha egy részlet több helyen is felbukkan hasonló formában, akkor csak egyszer tároljuk, de eltároljuk azt is, hogy az egyes példányok miben térnek el az alapváltozattól. A jpeg tömörítésnél ezek a kis részletek konkrétan 8x8 pixeles négyzetecskék. Ha a tömörítés mértékét növelni akarjuk, akkor az alapváltozat négyzett®l való eltérést csak nagyjából, pontatlanul tároljuk. A következ® képet kinagyítva gyeljük meg mindhárom képen a négyzetecskéket! Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
jpeg tömörítés
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
jpeg tömörítés
99%, 133,9 kB
30%, 17,1 kB
Halácsy Péter, Varga Dániel
10%, 8,3 kB
1%, 4,0 kB
VI. el®adás: Szöveges és média fájlformátumok
Vektorgraka
is egy kép, egy ellipszist deniál Vektorgrakus kép: a kirajzolás receptjét adjuk meg, és nem a pixeleket. Cserébe: akármilyen min®ség, akármilyen nagyítás, anélkül, hogy a kép kockás (pixeles) lenne. Bet¶k formájának leírásához is vektorgrakát alkalmaznak, tehát a bet¶k körvonalának íveit tárolják. A pdf szövegformátum vektorgrakusan eltárolja a bet¶k formáját, így éri el, hogy minden gépen pontosan ugyanúgy jelenik meg a szöveg. ellipse(50,50,25,25);
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Vektorgraka: egy g bet¶ közelr®l
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Különbség bitmap (rasztergraka) és vektorgraka között
Kép forrása: https://secure.wikimedia.org/wikipedia/ en/wiki/Vector_graphics
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítetlen hang
Hogyan tárolhatunk egy hangot számítógéppel? Például ugyanúgy, ahogy CD-n. És ott hogyan tároljuk? A hangszóró membránja (avagy a lemezjátszó t¶je) ritmikus mozgást végez. Ezt az id® függvényében ábrázolva egy jellegzetes függvénygörbét kapunk. Másodpercenként 44,100-szor feljegyezzük a függvényértéket. Az értéket egész számmal kódoljuk két bájton (-32768 és 32767 között). Ha sztereó a hang, akkor a fentieket mindkét csatornára el kell végeznünk. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörítetlen hang II.
Mi történik, ha a függvénygörbét függ®leges irányban kétszeresére nyújtjuk? Kétszer hangosabb lesz a hang. Mi történik, ha a függvénygörbét vízszintes irányban kétszeresére nyújtjuk? Kétszer (egy oktávval) mélyebb lesz a hang. Mi történik, ha két függvényt összeadunk? Az eredmény azt adja, mintha a két hang egyszerre szólna.
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Igény a tömörítésre
Ha a függvényt leíró bájtsorozatot sorfolytonosan tároljuk, akkor lényegében megkaptuk a .wav hangformátumot. De másodpercenként 44100x2x2 bájt nagyon sok. (mai gyorsabb otthoni internet-kapcsolat) Hogyan lehetne takarékoskodni?
Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörített hang
A hang magassága (némi leegyszer¶sítéssel) azzal függ össze, hogy a membrán másodpercenként hányszor van alsó állásban. Ha sokszor, az magas hang. Ha másodpercenként 25,000-nél többször, akkor azt már nem is halljuk. mp3 tömörítés: Változtassuk meg a hangot úgy, hogy a különbség ne legyen hallható, de simábbá tegye a hang-görbét, hogy jobban lehessen tömöríteni. Tizedére csökkenti a méretet elfogadható szint¶ min®ségromlás mellett. A tömörítés mértéke többféleképpen beállítható, az alig élvezhet® pici fájltól az eredetit®l szinte megkülönböztethetetlen nagy fájlig. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Veszteségmentesen tömörített hang
Veszteség-mentesen is lehet tömöríteni a hangadatokat, bár ez ritkán szükséges. Ha ezt a f®leg szövegdokumentumokra kitalált zip és rar módszerekkel végezzük, akkor nem tömörítenek túl sokat, mert nem vesznek észre túl sok szabályszer¶séget. De például a ac tömörítés a szabályszer¶ségek keresésekor gyelembe veszi, hogy hanggal van dolga. Körülbelül harmadára csökkenti a méretet bármiféle veszteség nélkül. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Tömörített mozgókép
Ha mozgóképet akarunk tömöríteni, akkor sokkal nagyobb adatmennyiséggel van dolgunk, mint állóképeknél, de a pontatlanságok kevésbé felt¶n®ek. Ezért ezt szinte mindig veszteségesen tömörítjük. Ugyanazokat a trükköket alkalmazhatjuk, mint állóképnél (jpeg), tehát ismétl®d® kis részleteket keresünk, ...de itt segít az is, hogy a képkocka általában hasonlít az el®z®höz, ...pontosabban fogalmazva egyes részleteinek hasonmásai gyakran eltolva megtalálhatók az id®ben közel es® képkockák valamelyikén. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok
Gyakorlati tudnivalók multimédia fájlokról
Csatorna: Multimédia jel. (hang, mozgókép, szöveg) Kodek: Jel tömörítési módja. Konténer: Fájl, amiben egy vagy több multimédia jel van szinkronizálva. A tömörítés módja csatornánként meg van adva a fájlban. Példák konténerekre: avi, mov. Példa: Az egyik avi kiterjesztés¶ fájlomban három csatorna van: Egy DivX kodekkel tömörített mozgókép. Egy mp3-mal tömörített hangcsatorna. Egy tömörítetlen lmfelirat. Ezek képkocka pontossággal szinkronizálva vannak egymáshoz. Halácsy Péter, Varga Dániel
VI. el®adás: Szöveges és média fájlformátumok