Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna



Podobne dokumenty
Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Techniki multimedialne

Podstawy Informatyki

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Systemy liczenia. 333= 3*100+3*10+3*1

Technologie Informacyjne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Wstęp do informatyki- wykład 1 Systemy liczbowe

Teoretyczne Podstawy Informatyki

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Architektura komputerów

Cel wykładu. Cel wykładu. Cel wykładu, cd. Cel wykładu, cd. Cel wykładu, cd. Z. Postawa, "Podstawy Informatyki II" Strona: 1 z 6

Metoda znak-moduł (ZM)

kodowanie informacji Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Podstawy Informatyki dla Nauczyciela

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Systemy zapisu liczb.

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Materiały laboratoryjne. Kodowanie i liczby. dr inż. Zbigniew Zakrzewski. Z.Z. Podstawy informatyki

L6.1 Systemy liczenia stosowane w informatyce

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

PODSTAWY INFORMATYKI. Informatyka? - definicja

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Naturalny kod binarny (NKB)

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Pracownia Komputerowa wykład IV

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Arytmetyka komputera

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Stan wysoki (H) i stan niski (L)

Architektura komputerów

Pracownia Komputerowa wykład VI

Pracownia Komputerowa wyk ad IV

Kodowanie informacji. Przygotował: Ryszard Kijanka

Kodowanie informacji. Kody liczbowe

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

architektura komputerów w. 2

Wstęp do informatyki- wykład 1

Pozycyjny system liczbowy

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

BŁĘDY OBLICZEŃ NUMERYCZNYCH

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Arytmetyka binarna - wykład 6

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Podstawy Systemów Liczbowych

Architektura komputerów

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Podstawy informatyki (2)

Zapis liczb binarnych ze znakiem

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Algorytmy i struktury danych

LICZBY ZMIENNOPRZECINKOWE

Jednostki informacji - bit. Kodowanie znaków: ASCII, ISO 8859, Unicode liczb: NKB (BCN), U2, BCD. Liczby zmiennoprzecinkowe standard IEEE 754

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Technika Cyfrowa i Mikroprocesorowa

1.1. Pozycyjne systemy liczbowe

Jednostki miar stosowane w sieciach komputerowych. mgr inż. Krzysztof Szałajko

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

dr inż. Jarosław Forenc

Kod U2 Opracował: Andrzej Nowak

Pracownia Komputerowa wykład V

Arytmetyka stało i zmiennoprzecinkowa

SYSTEMY LICZBOWE 275,538 =

Wstęp do Informatyki

2.3. Wyznaczanie wartości wielomianu, pozycyjne systemy liczbowe i reprezentacja danych liczbowych w komputerze

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Kodowanie liczb całkowitych w systemach komputerowych

System Liczbowe. Szesnastkowy ( heksadecymalny)

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Technologie Informacyjne Wykład 4

Pracownia Komputerowa wyk ad VI

O bitach, bajtach i hardware. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Cyfrowy zapis informacji

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

ZADANIE 1. Rozwiązanie:

PI 02-01/12. W jednym bajcie można można zakodować 256 różnych znaków.

Transkrypt:

Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna

DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje, rysunki, fotografie) dźwiękowe (audio-data) filmowe (video-data): - animacja - ruch rzeczywisty

Dane a informacja Dane Przetwarzanie Informacja Ang.: information meaningful piece of data UWAGA: Procesor przetwarza tylko cyfrową reprezentację danych, a więc ciągi zer i jedynek. Dane (wszystkie 4 grupy) i programy muszą być zakodowane.

Systemy kodowania danych Oparte na systemie binarnym. Przykład: litera H kod ASCII 72 binarnie 01001000 (2 6 +2 3 =64+8) litera I kod ASCII 73 binarnie 01001001 (2 6 +2 3 +2 0 =64+8+1) Napis HI na klawiaturze Kodowanie w systemie ASCII Przetwarzanie przez procesor Dekodowanie Ekran

Jednostki pamięci dla danych BIT (Binary Digit) Bajt=8 bitów Wielokrotności bajtów Nazwa Symbol Mnożnik dziesiętny Mnożnik binarny Kilobajt kb 10 3 2 10 Megabajt MB 10 6 2 20 Gigabajt GB 10 9 2 30 Terabajt TB 10 12 2 40 Petabajt PB 10 15 2 50 Eksabajt EB 10 18 2 60 Zettabajt ZB 10 21 2 70 Jottobajt JB 10 24 2 80

Systemy liczbowe Dziesiętny: 0,1,, 9 Dwójkowy (binarny, cyfrowy): 0,1 Ósemkowy (oct): 0,1,,7 Szestnastkowy (heksadecymalny): 0,1,,9,A,B,,F Przykład: (248) 10 =(11111000) 2 =(370) 8 =(F8) 16 bo:

Przykład c.d. tak, jak 248=2*10 2 +4*10 1 +8*10 0 analogicznie (11111000) 2 =1*2 7 +1*2 6 +1*2 5 +1*2 4 +1*2 3 =(248) 10 (370) 8 =3*8 2 +7*8 1 =3*64+56=192+56=(248) 10 (F8) 16 =15*16 1 +8*16 0 =240+8=(248) 10

Przykładowe systemy kodowania (dla danych tekstowych) ASCII (American Standard Code for Information Interchange) jednobajtowy, oparty na unikalnej kombinacji 8 bitów, pozwala zakodować 255 znaków EBCDIC (Extended Binary-Coded Decimal Interchange Code) też 8-bitowy, IBM UNICODE (unikod) 32-bitowy, zdolny zakodować ponad mln znaków, uniwersalny

Przykłady kodów ASCII i UNICODE Znak Kod ASCII Wartości bitów 32 00100000 A 65 01000001 C 67 01000011 a 97 01100001 7 55 00110111 Uwaga: cyfra 7 ma reprezentację dwójkową 00000111 Unicode: Znak Kod dziesiętnie Kod szestnastkowo Ą 260 0104 Ć 262 0106 D 270 010E

Reprezentacja cyfrowa liczby rzeczywistej Liczba n-cyfrowa w systemie dziesiętnym ma postać: d n-1 d 1 d 0 gdzie d n-1,, d 1,d 0 są cyframi dziesiętnymi, czyli należą do zbioru {0,1,,9} Wartość tak zapisanej liczby dziesiętnej wynosi: d n-1 *10 n-1 + +d 1 *10 1 +d 0 *10 0

Analogiczną postać ma reprezentacja liczby naturalnej w systemie dwójkowym. Podstawa zmienia się z 10 na 2, a zestaw cyfr ogranicza się do dwóch: 1 oraz 0. Czyli liczba postaci: c n-1 c 1 c 0 gdzie c n-1,, c 1,c 0 są bitami i należą do zbioru {0,1} ma wartość c n-1 *2 n-1 + +c 1 *2 1 +c 0 *2 0

Przykład: Liczba 11001 w systemie dwójkowym oznacza wartość 2 4 +2 3 +2 0 =25 Liczby ujemne w zapisie dwójkowym poprzedza się znakiem minus, reprezentowanym przez dodatkowy bit tzw. bit znaku. Cyfra 1 na bicie znaku oznacza minus w zapisie liczby ujemnej, a 0 występuje przed liczbami nieujemnymi. A więc liczba 25 z bitem znaku ma reprezentację binarną 011001, a liczba -25: 111001 (bit znaku oznaczony czerwono)

W zapisie binarnym liczby rzeczywistej uwzględnia się część całkowitą i ułamkową. Jeżeli na część całkowitą przeznaczy się n bitów, a na część ułamkową k bitów, to binarna reprezentacja liczby rzeczywistej będzie miała postać c n c n-1 c 1 c 0 c -1 c -k, gdzie c n bit znaku c n-1 c 1 c 0 kolejne cyfry binarnego rozwinięcia części całkowitej liczby c -1 c -k kolejne cyfry binarnego rozwinięcia części ułamkowej liczby

Zatem ciąg bitów c n c n-1 c 1 c 0 c -1 c -k reprezentuje wartość równą (-2*c n +1)*( c n-1 *2 n-1 + +c 1 *2 1 +c 0 *2 0 +c -1 *2 _1 + +c -k *2 -k ), gdzie pierwszy czynnik nadaje znak liczbie, ponieważ: -2*c n +1= 1 gdy c n = 1 1 gdy c n = 0

Przykład: Załóżmy, że n=k=8 Wtedy liczba 12,635 będzie miała rozwinięcie binarne postaci: 0 00001100 10100000, bo 0,625=0,5+0,125=2-1 +2-3 A liczba -127,3125 ma rozwinięcie postaci: 1 01111111 01010000, bo 0,3125=0,25+0,0625=2-2 +2-4

Kod uzupełnieniowy liczby całkowitej Inny sposób reprezentacji liczby: x uzup = x gdy x 0 2 n x gdy x < 0 gdzie x oznacza wartość bezwzględną x, natomiast n jest liczbą bitów na reprezentację liczby (łącznie z bitem znaku). Przykład: dla n=8 liczba -75 w kodzie uzupełnieniowym przybiera postać 10110101, ponieważ I-75I=01001011, 2 8 =100000000,

Zatem 2 8 -I-75I=100000000-01001011=10110101 Kod uzupełnieniowy dla ułamków wyraża się wzorem: x dla x 0 x uzup = 2 x dla x < 0

Dokładność obliczeń Liczby całkowite system stałoprzecinkowy Dokładne wartości, ale mały zakres, bo: na 1 bajcie albo tylko liczby dodatnie z przedziału (0; 255) albo dodatnie i ujemne z (-128; 127) Na 2 bajtach analogicznie tylko liczby dodatnie z przedziału (0; 65 535) albo dodatnie i ujemne z przedziału (-32 768; 32767)

Liczby rzeczywiste problem przy zapisie stałoprzecinkowym, bo: jeszcze mniejszy zakres wartości oraz marnotrawstwo bitów. Poza tym błędy odczytów i błędy reprezentacji cyfrowej.

Przykład (na mały zakres): 2 bajty 1 przeznaczony na część całkowitą i 1 na część ułamkową Wtedy największa wartość rzeczywista zapisana na 2 bajtach to: 1 1 1 1 1 1 1 1, 1 1 1 1 1 1 1 1 a więc 255 255 256

Przykład (na marnotrawstwo bitów): Przy założeniu jak wyżej reprezentacja liczby 0,5 ma postać: 0 0 0 0 0 0 0 0, 1 0 0 0 0 0 0 0

Przykład (na błędy reprezentacji): a) 1 0 0 0 0 0 0 0, 0 0 0 0 0 0 0 1 I 1 1 0 1 0 1 b) 0 0 0 0 0 0 0 1, 0 0 0 0 0 0 0 1 I 1 1 1 1 1 c) 0 0 0 0 0 0 0 0, 0 0 0 0 0 0 0 1 I 1 0 1 1 1 Zawsze odcinamy dziewiąty bit, czyli wartość 2 9 = 1 2 9 = 1 512 = 0,001953125

Jest to błąd bezwzględny reprezentacji tych liczb. Policzmy błąd względny w każdym z tych przypadków, wiedząc że 2 8 = 1 2 8 = 1 256 = 0,00390625 a) 0,001953125 128,00390625 100% 0,001526% b) 0,001953125 1,00390625 c) 0,001953125 0,00390625 100% 0,194552% 100% 50%

Czyli: błąd względny reprezentacji binarnej liczby w zapisie stałoprzecinkowym zależy od wielkości tej liczby!

Zapis zmiennoprzecinkowy liczba zmiennopozycyjna Liczba przechowywana w komputerze w znormalizowanej postaci wykładniczej: L=M*N C M mantysa <1, mantysa znormalizowana mieści się w przedziale <0,1 ;1) N podstawa sytemu (potęgi) C cecha, czyli wykładnik potęgi, dzięki któremu przecinek w liczbie zostaje przesunięty tak, aby utworzyć mantysę w zgodzie z powyższą definicją

Przykłady: 2340,23=0,234023*10 4 C=4 2,34023=0,234023*10 1 C=1 0,15934=0,15934*10 0 C=0 0,00015934=0,15934*10-3 C=-3 W takim zapisie gwałtownie zwiększa się zakres wartości reprezentowanych liczb.

Przykład: Przy reprezentacji 2-bajtowej, z czego 1 bajt przeznaczony jest na reprezentację cechy i 1 na reprezentację mantysy, liczba 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 c e c h a m a n t y s a przedstawia wartość 0,625*10 3

Ważne: przy obliczaniu błędu względnego wartość cechy nie ma znaczenia! błąd N C błąd liczba NC 100% = 100% liczba Policzmy największy możliwy błąd bezwzględny przy zapisie zmiennopozycyjnym w naszym przykładzie: Najmniejsza mantysa (0,1000000) 2 =(0,5) 10

Największy błąd bezwzględny gdy obcinamy bity z samymi jedynkami, czyli 2 9 + 2 10 + 2 11 + = 1 512 + 1 1024 + 1 2048 + = 1 512 = 2 512 = 1 256 = 0,00390625 1 1 2 (bo suma nieskończonego ciągu geometrycznego S = a 0 ) 1 q

Stąd : Maksymalny błąd względny, obliczany jako iloraz maksymalnego błędu bezwzględnego i najmniejszej mantysy, wynosi 0,00390625 100% 0,78123 0,5 Wnioski: Przy 1 bajcie na mantysę błąd względny < 0,8% (górna granica błędu)

Cecha jednobajtowa daje nam już zakres (gdy dodatnie i ujemne) 2 128 3,4 10 38 oraz 2 127 5,8 10 39 Zatem: Za dokładność reprezentowanych liczb odpowiada mantysa Za zakres wartości tych liczb odpowiada cecha