. .
Vnitřní reprezentace dat Výpočetní technika I Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně
[email protected]
Přednáška 3:
Osnova přednášky
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty
• Uložení dat v paměti počítače — textová data — zvuková data — obrazová data • Organizace dat na discích — zařízení počítače — soubory a adresáře — specifikace souborů • Datové formáty — vyjádření hodnot datového typu — formátová specifikace — textový a binární formát
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
2 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Uložení znaků v počítači • 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
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
3 / 35
Přednáška 3:
Převodní tabulky
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data
• EBCDIC — Extended Binary Coded Decimal Interchange Code
Zvuková data Obrazová data
Organizace dat na discích Datové formáty
• 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
Přednáška 3: Vnitřní reprezentace dat
4 / 35
Přednáška 3:
EBCDIC
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
• 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
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
5 / 35
Přednáška 3:
ASCII
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
• 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
Přednáška 3: Vnitřní reprezentace dat
6 / 35
Přednáška 3:
Vnitřní reprezentace dat
ASCII – základní část
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
7 / 35
Přednáška 3:
ASCII – rozšířená část
Vnitřní reprezentace dat
Uložení dat v paměti počítače
• Národní znaky – určeny pro zobrazení textů v jiných
Textová data Zvuková data Obrazová data
•
Organizace dat na discích Datové formáty
• • •
Výpočetní technika I
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
Přednáška 3: Vnitřní reprezentace dat
8 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Varianty kódování českých nár. znaků • Kód bratrů Kamenických — KEYBCS2, CP895 — pro osobní počítače 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í počítače 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.)
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
9 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Varianty kódování českých nár. znaků • 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
Přednáška 3: Vnitřní reprezentace dat
10 / 35
Přednáška 3:
Vícebajtová kódování
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
• 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
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
11 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Unicode – 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
Přednáška 3: Vnitřní reprezentace dat
12 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
UTF – UCS Transformation Format • 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.
Výpočetní technika I
Kódování UTF-8
0000–007F
7
0xxxxxxx
0080–07FF
11
110xxxxx 10xxxxx
0800–FFFF
16
1110xxxx 10xxxxxx 10xxxxxx
Přednáška 3: Vnitřní reprezentace dat
13 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače
BOM – Byte-Order Mark • UTF signatura – označení pořadí bajtů v souboru
Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Výpočetní technika I
Kódování
Obsah souboru
UTF-8 UTF-16 Little Endian UTF-16 Big Endian UTF-32 Little Endian UTF-32 Big Endian
EF BB BF … FF FE … FE FF … FF FE 00 00 … 00 00 FE FF …
Přednáška 3: Vnitřní reprezentace dat
14 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Výpočetní technika I
Kódování národních znaků – shrnutí • Příklad: textový soubor se slovem „Béďa“ • ASCII / ISO 8859-2 — 42 E9 EF 61
4B
• 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 �
9B
Přednáška 3: Vnitřní reprezentace dat
15 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Výpočetní technika I
Uložení zvukové informace • 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
Přednáška 3: Vnitřní reprezentace dat
16 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Uložení zvukové 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
Přednáška 3: Vnitřní reprezentace dat
17 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Výpočetní technika I
Uložení obrazové informace • 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 (28 = 256 možností) — informace o barvě každého pixelu zabere v paměti 3 B (3 složky × 1 B), celkem 2563 = 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 Přednáška 3: Vnitřní reprezentace dat
18 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Textová data Zvuková data Obrazová data
Organizace dat na discích Datové formáty
Uložení obrazové informace • 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
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
19 / 35
Přednáška 3:
Zařízení počítače
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače Soubory a adresáře
• Znaková zařízení — chovají se jako soubory — pracují vždy s jedním znakem — vstupně-výstupní zařízení
Specifikace souborů
Datové formáty
Výpočetní technika I
• Bloková zařízení — pracují s celými bloky bajtů (soubory) — jednotky vnějších pamětí
Přednáška 3: Vnitřní reprezentace dat
20 / 35
Přednáška 3:
Jednotky
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače
• Blokově orientovaná zařízení • A, B – disketové jednotky • C – pevný disk
Soubory a adresáře Specifikace souborů
Datové formáty
Výpočetní technika I
• Dále jednotky CD-ROM, DVD-ROM, Flash disky, ZIP
drive apod.
Přednáška 3: Vnitřní reprezentace dat
21 / 35
Přednáška 3:
Soubor
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače Soubory a adresáře Specifikace souborů
Datové formáty
• 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 typu • 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
Přednáška 3: Vnitřní reprezentace dat
22 / 35
Přednáška 3:
Adresář
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače Soubory a adresáře Specifikace souborů
Datové formáty
• Pod operačním systémem Windows označován jako • • • • • •
Výpočetní technika I
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ář
Přednáška 3: Vnitřní reprezentace dat
23 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače Soubory a adresáře Specifikace souborů
Datové formáty
Výpočetní technika I
Specifikace souboru • 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
Přednáška 3: Vnitřní reprezentace dat
24 / 35
Přednáška 3:
Cesta
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače Soubory a adresáře Specifikace souborů
Datové formáty
• 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 \
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
25 / 35
Přednáška 3:
Vnitřní reprezentace dat
Spouštění spustitelných souborů ve Windows
Uložení dat v paměti počítače Organizace dat na discích Zařízení počítače Soubory a adresáře Specifikace souborů
Datové formáty
Výpočetní technika I
• 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
Přednáška 3: Vnitřní reprezentace dat
26 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace Textový a binární formát
Vyjádření hodnot datového typu • Datový formát – způsob uložení dat v jakékoli paměti
počítače • 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
Výpočetní technika I
00110010 00110110
Přednáška 3: Vnitřní reprezentace dat
32 36
27 / 35
Přednáška 3:
Vyjádření hodnot datového typu
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace
• 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
43
69
6d
72
6d
61
6e
00
’C’ ’i’ ’m’ ’r’ ’m’ ’a’ ’n’ ’ ’
’’
’’ 20
Textový a binární formát
b) s oddělovači
Výpočetní technika I
43
69
6d
72
6d
61
6e
20
20
43
69
6d
72
6d
61
6e
0d
0a
Přednáška 3: Vnitřní reprezentace dat
28 / 35
Přednáška 3:
Porovnání způsobů uložení
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu
• 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
Formátová specifikace Textový a binární formát
43 69 6d 72 6d 61 6e 20 20 20 32 36 ’C’ ’i’ ’m’ ’r’ ’m’ ’a’ ’n’ ’ ’ ’ ’ ’ ’ ’2’ ’6’
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
29 / 35
Přednáška 3:
Formátová specifikace
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace Textový a binární formát
• 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ů • Formátová specifikace – 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
Výpočetní technika I
43
69
6d
72
Přednáška 3: Vnitřní reprezentace dat
6d
61
6e
1b
30 / 35
Přednáška 3:
Druh formátu
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu
• 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 počítače
Formátová specifikace Textový a binární formát
Výpočetní technika I
Přednáška 3: Vnitřní reprezentace dat
31 / 35
Přednáška 3:
Definice formátu
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace Textový a binární formát
• 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
Přednáška 3: Vnitřní reprezentace dat
32 / 35
Přednáška 3:
Konec řádku a konec souboru
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace Textový a binární formát
Výpočetní technika I
• 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í systém
Konec řádku
Název znaku
Unix Mac MS
0a 0d 0d 0a
LF CR CR LF
Přednáška 3: Vnitřní reprezentace dat
Konec Název souboru znaku 04 04 1a
EOT EOT ESC
33 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace Textový a binární formát
Výpočetní technika I
Textový formát – vlastnosti • 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í
Přednáška 3: Vnitřní reprezentace dat
34 / 35
Přednáška 3:
Vnitřní reprezentace dat
Uložení dat v paměti počítače Organizace dat na discích Datové formáty Vyjádření hodnot datového typu Formátová specifikace Textový a binární formát
Výpočetní technika I
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)
Přednáška 3: Vnitřní reprezentace dat
35 / 35