Osnova přednášky Výpočetní technika I Ing Pavel Haluza ústav informatiky PEF MENDELU v Brně pavelhaluza@mendelucz textová data zvuková data obrazová data zařízení soubory a adresáře specifikace souborů vyjádření hodnot datového formátová specifikace textový a binární formát Výpočetní technika I 2 / 35 Uložení znaků v počítači Převodní tabulky Znaky v počítači zobrazitelné znaky všechny znaky, které slouží pro zápis textové informace (písmena, číslice, interpunkční znaménka, matematické symboly apod) řídicí znaky slouží k ovládání přídavných zařízení (nebo programu) Počítač není schopen zpracovávat jiné než číselné informace Aby bylo možné zpracovat textovou informaci, bylo nutné přiřadit jednotlivým znakům číselné ekvivalenty Znaky a symboly se uchovávají ve formě čísel podle převodní tabulky EBCDIC Extended Binary Coded Decimal Interchange Code ASCII (ISO 646) American Standard Code for Information Interchange UCS (ISO 10646) Universal Character Set UTF UCS Transformation Format Unicode Výpočetní technika I 3 / 35 Výpočetní technika I 4 / 35
EBCDIC ASCII Extended Binary Coded Decimal Interchange Code Prehistorický kód navržený IBM na konci 50 let 20 století Vychází z kódu používaného pro děrné štítky a BCD kódu využívaného v periferiích IBM Kódovací prostor 8 bitů 256 znaků Rozložení kódu řídicí znaky #0 63, #255 zobrazitelné znaky #64 254 Nevýhoda: znaky anglické abecedy netvoří spojitou posloupnost, nelze použít regulární výraz American Standard Code for Information Interchange Kódovací prostor 8 bitů 256 znaků Původně 7bitový kód + 1 paritní bit pro kontrolu Rozložení kódu řídicí znaky #0 31, #127 zobrazitelné znaky #32 126, #128 255 Kód má dvě části základní část #0 127 (původních 7 bitů) rozšířená část #128 255 (přidání 8 bitu) Výpočetní technika I 5 / 35 Výpočetní technika I 6 / 35 ASCII základní část ASCII rozšířená část Národní znaky určeny pro zobrazení textů v jiných jazycích než angličtině Žádný znakový kód nebyl původně navržen pro zobrazování národních znaků Základní kód ASCII neposkytuje dostatečný prostor pro uložení všech národních znaků Využití zbylých 128 pozic kódu ASCII (paritní bit) Způsob využití zcela nejednotný, existence různých znakových sad pro různé skupiny jazyky Výpočetní technika I 7 / 35 Výpočetní technika I 8 / 35
Varianty kódování českých nár znaků Varianty kódování českých nár znaků Kód bratrů Kamenických KEYBCS2, CP895 pro osobní pod MS-DOS využití sady CP437 s náhradou pozic 128 171 českými a slovenskými národními znaky PC Latin 2 IBM Latin 2, CP852 pro osobní pod MS-DOS podpora středoevropských jazyků používajících latinku (čeština, slovenština, polština, rumunština, maďarština, srbochorvatština aj) KOI8čs Kod Obmena Informaciey vyvinut v SSSR v rámci RVHP ISO Latin 2 ISO 8859-2 podpora středoevropských a východoevropských jazyků psaných latinkou nebo latinskou transkripcí použitelné i pro němčinu a finštinu Windows-1250 CP1250 pro operační systém Windows podpora středoevropských jazyků a němčiny velmi podobné kódu ISO 8859-2 (pouze 6 rozdílů v českých znacích) Výpočetní technika I 9 / 35 Výpočetní technika I 10 / 35 Vícebajtová kódování Unicode Little Endian a Big Endian I 256 pozic kódu ASCII přestává stačit, hledají se nové možnosti ISO 10646 UCS = Universal Character Set univerzální prostor 4 B, tj přes 4 miliardy znaků zbytečně neúsporné řešení Unicode jeden znak ukládán vždy na 2 B snaha o vytvoření jediné globální znakové sady dolní polovina ASCII (#0 127) se ukládá pod stejnými hodnotami (00000000 xxxxxxxx) číselný kód se pro přehlednost zapisuje v hexadecimální soustavě, např A = \u0041 varianty Little Endian a Big Endian Little Endian méně významový bajt leží na nižší adrese takto kódované soubory začínají znakem FF FE typické pro Windows příklad: znak A = 41 00 Big Endian méně významový bajt leží na vyšší adrese takto kódované soubory začínají znakem FE FF typické pro programovací jazyk Java příklad: znak A = 00 41 Výpočetní technika I 11 / 35 Výpočetní technika I 12 / 35
UTF UCS Transformation Format BOM Byte-Order Mark Zmírňuje redundanci univerzálního kódu UCS Varianty UTF-8, UTF-16, UTF-32 UTF-8 odstraňuje nevýhody Unicode (dvojnásobná délka souborů oproti ASCII, problémy s Little/Big Endianem) znaky jsou kódovány na 1 3 B Převod mezi Unicode a UTF-8 Unicode Význam b max Kódování UTF-8 0000 007F 7 0xxxxxxx 0080 07FF 11 110xxxxx 10xxxxx 0800 FFFF 16 1110xxxx 10xxxxxx 10xxxxxx UTF signatura označení pořadí bajtů v souboru Kódování Obsah souboru UTF-8 EF BB BF UTF-16 Little Endian FF FE UTF-16 Big Endian FE FF UTF-32 Little Endian FF FE 00 00 UTF-32 Big Endian 00 00 FE FF Výpočetní technika I 13 / 35 Výpočetní technika I 14 / 35 Kódování národních znaků shrnutí Uložení zvukové informace Příklad: textový soubor se slovem Béďa ASCII / ISO 8859-2 42 E9 EF 61 4 B Unicode Little Endian FF FE 42 00 E9 00 0F 01 61 00 10 B Unicode Big Endian FE FF 00 42 00 E9 01 0F 00 61 10 B UTF-8 EF BB BF 42 C3 A9 C4 8F 61 9 B V zásadě dva způsoby uložení přímý záznam MIDI sekvence Přímý záznam (pulsně kódová modulace, PCM) digitalizace frekvencí a amplitud zvukových vln pravidelné odečítání hodnoty signálu a její záznam v binární podobě určující parametry: vzorková frekvence, jemnost rozlišení jednotlivých hodnot výsledkem rozsáhlé soubory (např WAV), často ztrátová komprese (MP3, WMA, AAC, Ogg Vorbis) bezztrátová komprese např ALAC nebo FLAC Výpočetní technika I 15 / 35 Výpočetní technika I 16 / 35
Zařízení Uložení zvukové informace Uložení obrazové informace MIDI sekvence (Musical Instruments Digital Interface) stručný digitální popis výšky jednotlivých tónů, jejich intenzity, délky a nejrůznějších doprovodných efektů výstupní zvukové zařízení (zvuková karta, klávesy) z těchto informací umí vytvářet zvuky signál neobsahuje zvuk, ale pouze velmi stručné pokyny pro jeho vytvoření nelze zaznamenat lidský hlas ani žádný hudební nástroj, který syntetizátor nedokáže zahrát velmi malé soubory, převod WAV MP3/MIDI náročný Příklad: nekomprimovaný soubor se zvukovou stereo nahrávkou o délce 3 minuty, vzorkovací frekvenci 44,1 khz a velikosti vzorku 16 b 2 44 100 16 180 b = 254 016 000 b = 31,752 MB Výpočetní technika I 17 / 35 Opět dva způsoby uložení rastrová grafika vektorová grafika Rastrová grafika obraz tvořen maticí bodů (pixelů), jejichž barva se skládá ze tří složek červené, zelené a modré (RGB) intenzitu barvy každé složky ukládáme v paměti zvlášť dnes nejrozšířenější model: odstín každého bodu uložen jako 8bitové číslo (2 8 = 256 možností) informace o barvě každého pixelu zabere v paměti 3 B (3 složky 1 B), celkem 256 3 = 16 777 216 barev model RGBA používá ještě bajt pro uložení informace o intenzitě průhlednosti pixelu (tzv alfa kanál) model CMYK (Cyan, Magenta, Yellow, black) používají barevné tiskárny Výpočetní technika I 18 / 35 Uložení obrazové informace Zařízení Vektorová grafika obraz tvořen různými geometrickými objekty (body, přímky, křivky, ) využití pro tvorbu ilustrací, diagramů, schémat apod Příklad: nekomprimovaný rastrový obraz o rozměrech 1600 1200 bodů v modelu RGB 1 600 1 200 3 B = 5 760 000 B = 5,76 MB Znaková zařízení chovají se jako soubory pracují vždy s jedním znakem vstupně-výstupní zařízení Bloková zařízení pracují s celými bloky bajtů (soubory) jednotky vnějších pamětí Výpočetní technika I 19 / 35 Výpočetní technika I 20 / 35
Zařízení Zařízení Zařízení Zařízení Jednotky Soubor Blokově orientovaná zařízení A, B disketové jednotky C pevný disk Dále jednotky CD-ROM, DVD-ROM, Flash disky, ZIP drive apod Pojmenovaná konečná posloupnost bytů s definovaným umístěním ve vnější paměti Základní množina dat určitého Mají jedinečná jména např v OS Windows maximálně 255 znaků za tečkou přípona (určuje typ souboru) povolené znaky jsou A Z, a z, 0 9, $, %,, -, @, {, },,,!, #, (, ), &, _, Mají atributy (různý význam v různých OS) Výpočetní technika I 21 / 35 Výpočetní technika I 22 / 35 Adresář Specifikace souboru Pod operačním systémem Windows označován jako složka Pojmenovaná množina jiných adresářů a souborů Tvoří hierarchickou strukturu Mají jména jako soubory Na každém zařízení existuje kořenový adresář, v OS Windows značíme \ V jednom adresáři se vyskytují soubory s jedinečnými jmény Každá jednotka má svůj aktuální adresář Určuje jméno a cestu k souboru Přístup k souboru úplná specifikace jednotka:\cesta\soubor, kde cesta=[adresář1[\adresář2[\adresář3]]] neúplná specifikace vynechání označení jednotky, vynechání cesty nebo pouze název souboru Výpočetní technika I 23 / 35 Výpočetní technika I 24 / 35
Zařízení Zařízení Určuje konkrétní adresář v hierarchické struktuře Jednotlivé podadresáře oddělujeme \ Cesta může být relativní od aktuálního adresáře absolutní od kořenového adresáře Speciální adresáře rodičovský (nadřazený) označujeme aktuální (aktivní) označujeme kořenový označujeme \ Cesta Spouštění spustitelných souborů ve Windows Použití příkazu Spustit (Win+R) a volbou souboru Výběrem z nabídky pravého tlačítka myši Dvojklikem (nebo označení + Enter) na ikonu umístěnou na ploše Otevření v příslušném programu přes nabídku Soubor/Otevřít Výpočetní technika I 25 / 35 Výpočetní technika I 26 / 35 Datový formát způsob uložení dat v jakékoli paměti Příklad 1: věk osoby 26 let a) převod čísla do dvojkové soustavy 11010 00011010 1a b) zápis čísla pomocí znaků (znakový kód) 110010 110110 00110010 00110110 32 36 Příklad 2: příjmení osoby Cimrman a) s určením délky 7 C i m r m a n 07 43 69 6d 72 6d 61 6e b) s oddělovači 43 69 6d 72 6d 61 6e 00 C i m r m a n 43 69 6d 72 6d 61 6e 20 20 20 43 69 6d 72 6d 61 6e 0d 0a Výpočetní technika I 27 / 35 Výpočetní technika I 28 / 35
Porovnání způsobů uložení Tvar použitý v operační paměti 43 69 6d 72 6d 61 6e 00 1a Tvar použitý pro vstup nebo výstup 43 69 6d 72 6d 61 6e 20 20 20 32 36 C i m r m a n 2 6 V operační paměti jsou obvykle data ve tvaru vhodném pro zpracování (výpočty, řazení, ) Viditelný tvar (tiskárna, displej, klávesnice, ) musí být složen výhradně z čitelných (zobrazitelných) znaků popis formátu, tj přesný význam jednotlivých bitů (bytů) dat Příklad formátové specifikace: délka příjmení L jeden byte příjmení řetězec, ISO 8859-2, L bytů věk binárně, jeden byte 07 43 69 6d 72 6d 61 6e 1b Výpočetní technika I 29 / 35 Výpočetní technika I 30 / 35 Druh formátu Definice formátu Textový formát data jsou připravena pro zobrazení a přímé čtení člověkem Netextový (binární) formát data jsou připravena pro aritmetické a logické operace v paměti Intuitivní definice textový formát: všechny prvky formátu jsou složeny výhradně ze zobrazitelných znaků binární formát: alespoň některé prvky formátu jsou řešeny jiným způsobem (řídicími znaky) Problémy kolik řádků může mít soubor, je-li v textovém formátu? jak poznáte konec souboru? Upravená definice textový formát: všechny prvky formátu jsou složeny ze zobrazitelných znaků, mezi nimiž jsou použity jako oddělovače konce řádků a na konci dat nejvýše jeden znak konce souboru Výpočetní technika I 31 / 35 Výpočetní technika I 32 / 35
Konec řádku a konec souboru Textový formát vlastnosti V různých operačních systémech jsou řídicí znaky různé Vedlejší efekt: podle tvaru konce řádku lze zjistit operační systém, ve kterém byl soubor vytvořen Dnešní kvalitní textové editory dokážou řídicí znak změnit Operační Konec Název Konec Název systém řádku znaku souboru znaku Unix 0a LF 04 EOT Mac 0d CR 04 EOT MS 0d 0a CR LF 1a ESC Data jsou přímo čitelná člověkem Pro zpracování je obvykle nutná změna vyjádření Zpracovatelný celou škálou obecných programů a služeb každého operačního systému, což zvyšuje přenositelnost Odolnost vůči porušení (ztrátě) informací Nenapadnutelné virem Většinou nižší úspornost zobrazení Výpočetní technika I 33 / 35 Výpočetní technika I 34 / 35 Binární formát vlastnosti Data nejsou přímo čitelná člověkem Vhodný pro přímé zpracování Nízká přenositelnost, závisí na určitém programu, který zná přesnou a detailní strukturu dat Snadná ztráta všech informací při porušení Napadnutelné virem, lze ukrýt mnoho informací Někdy maximálně úsporný (ale i naopak) Výpočetní technika I 35 / 35