04 reprezentacja informacji

background image

Reprezentacja podstawowych

informacji w systemach

informatycznych dla medycyny

Wykład nr 4 z kursu IT dla

Wykład nr 4 z kursu IT dla

Inżynierii Biomedycznej

prowadzonego przez

Prof. Ryszarda Tadeusiewicza

background image

Komputery nie są urządzeniami, które
istnieją „same dla siebie”.

Ich użyteczność wynika z tego, że z pomocą technologii informacyjnych
można:

• rejestrować,

• ewidencjonować,

2

• opisywać,

• badać,

• analizować,

• sterować

• i przewidywać...

różne fakty dotyczące rzeczywistego świata.

Aby to było możliwe – fakty te trzeba właściwie

odwzorowywać

w rejestrach

i pamięciach systemów komputerowych. Przywołuje to problem

background image

... reprezentacji danych w
systemach informatycznych

3

background image

Reprezentacja informacji w systemach
komputerowych



Wszelkie informacje przetwarzane,
przechowywane oraz przesyłane
w systemach komputerowych mają postać
binarną

4



Jeśli są to dane liczbowe, to są ona zapisane w
systemie dwójkowym
, czyli w systemie
pozycyjnym o podstawie 2



Jeśli są to dane inne niż wartości liczbowe, to są
one

kodowane za pomocą symboli binarnych.



Sygnały (dźwięki, obrazy, rejestracje EKG itd. są
umieszczane w komputerze jako tablice liczb.

background image

Jednostki ilości informacji

5

background image

Reprezentacja wartości liczbowych.

6

Reprezentacja wartości liczbowych.

background image

Pozycyjne systemy liczenia (1)



Każda liczba całkowita N

2 może być

podstawą systemu liczenia (mówimy
wówczas o systemie o podstawie N
).



System dziesiętny (system o podstawie

7

System dziesiętny (system o podstawie
równej 10) jest przykładem pozycyjnego
systemu liczenia



System binarny jest także przykładem

pozycyjnego

systemu liczenia

background image

Pozycyjne systemy liczenia (2)



Do zapisu liczb wykorzystywane są cyfry:



w systemie dwójkowym: 0, 1;



w systemie dziesiętnym: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;



w systemie ósemkowym: 0, 1, 2, 3, 4, 5, 6, 7;



w systemie szesnastkowym: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

8



w systemie szesnastkowym: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
A, B, C, D, E, F;



w systemie o podstawie N: 0, 1, ..., N - 1



Cechą charakterystyczną systemów pozycyjnych jest
to, że wartość cyfry uzależniona jest od jej pozycji.

background image

Przykłady zapisów liczb i ich interpretacja
w różnych systemach pozycyjnych

9

background image

To, co warto zapamiętać:

10

background image

Obliczanie wartości liczby (1)



system dziesiętny (system o podstawie 10)

353

(10)

= 3 * 100 + 5 * 10 + 3 * 1 = 3 * 10

2

+

5 * 10

1

+ 3 * 10

0

11

5 * 10 + 3 * 10

2,4

(10)

= 2 * 1 + 4 * 0,1 = 2 * 10

0

+ 4 * 10

-1

=

i

i

i

c

W

10

background image

Obliczanie wartości liczby (2)



System dwójkowy (system o podstawie 2)



Analizowana liczba 101,11

(2)

12

=

i

i

i

c

W

2

background image

Obliczanie wartości liczby (3)



Uogólnienie:

System o podstawie N

=

i

i

i

N

c

W

13

background image

Zamiana liczb dziesiętnych na system
binarny (1)

14

background image

Zamiana liczb dziesiętnych na system
binarny (2)

15

background image

Zamiana liczb dziesiętnych na system
binarny (3)

Wniosek: ułamek
dziesiętny o skończonej

16

dziesiętny o skończonej
liczbie cyfr może wymagać
ułamka binarnego o
nieskończonej liczbie cyfr.

background image

System szesnastkowy



dzielimy liczbę binarną na grupy po 4 cyfry -
w lewo i prawo rozpoczynając od pozycji
separatora dziesiętnego;



wartość każdej wydzielonej grupy zapisujemy

17

wartość każdej wydzielonej grupy zapisujemy
za pomocą jednej cyfry szesnastkowej.



Przykład:

1111100000

(2)

= ?

(16)

0011 | 1110 | 0000 = 3E0
1111100000

(2)

= 3E0

(16)

background image

Zamiana liczby binarnej na heksadecymalną
(nad cyframi napisano wagi pozycji):

18

background image

Przyczyny stosowania systemu
szesnastkowego



znacznie większa zwięzłość zapisu w
porównaniu z zapisem binarnym (4 cyfry
binarne = 1 cyfra szesnastkowa)



prosta konwersja pomiędzy systemem

19

prosta konwersja pomiędzy systemem
binarnym i szesnastkowym



liczba bitów w jednej komórce jest zwykle
wielokrotnością liczby 4, co znacznie ułatwia
przedstawienie jej zawartości w systemie
szesnastkowym.

background image

Reprezentacja liczb całkowitych (1)

a)

liczby całkowite bez znaku



na kolejnych bitach przechowywane są
poszczególne cyfry binarne



Np. liczba 41

(10)

w komórce ośmiobitowej

20

(10)

przechowywana jest w następujący sposób:

background image

Reprezentacja liczb całkowitych (2)

b)

prosta reprezentacja liczb całkowitych ze
znakiem (reprezentacja typu znak-moduł,
reprezentacja bezpośrednia)



Kodowanie informacji o znaku:

21



plus



0



minus



1



Np. liczba -41 w komórce ośmiobitowej
przechowywana jest w następujący sposób:

background image

Reprezentacja liczb całkowitych (3)



Wady reprezentacji znak-moduł:



możliwe są dwa sposoby reprezentacji zera:

10000000

00000000

22



występują problemy przy realizacji obliczeń na
liczbach ujemnych (np. -2 + 3)

10000010

(-2)

00000011

(+3)

10000101

(-5)

background image

Reprezentacja liczb całkowitych (4)

c)

kod uzupełnieniowy



Kod uzupełnieniowy służy do reprezentacji
liczb całkowitych:



liczby całkowite nieujemne przyjmują

23

postać:

bit znaku, moduł liczby

background image

Reprezentacja liczb całkowitych (5)



liczby całkowite ujemne przyjmują postać:

bit znaku, uzupełnienie do dwóch modułu liczby

24

background image

Reprezentacja liczb całkowitych (6)



Pojęcie „uzupełnienia do dwóch”



Uzupełnieniem do dwóch dodatniej liczby binarnej b zapisanej

na N bitach jest wartość u wyrażona wzorem:

u = 2

N

– b.



Należy zauważyć, że 2

N

jest wartością większą o jeden od

największej liczby zapisanej na N bitach – czyli liczby

25

największej liczby zapisanej na N bitach – czyli liczby

składającej się z N jedynek.



Przykład:

Niech N = 4.
Poszukujemy uzupełnienia do dwóch liczby b = 0011

(2)

= 3

(10)

2

N

= 2

4

= 16

(10)

= 10000

(2)

2

N

– b = 16

(10)

– 3

(10)

= 13

(10)

= 1101

(2)

Uzupełnieniem do dwóch liczby 0011

(2)

jest 1101

(2)

.

background image

Reprezentacja liczb całkowitych (7)



Przykład: Przedstaw wartość -41

(10)

w kodzie

uzupełnieniowym w komórce 8-bitowej

26

background image

Reprezentacja liczb całkowitych (8)



Zamiana pomiędzy reprezentacją w kodzie
prostym i uzupełnieniowym



zapis liczby dodatniej w kodzie prostym i
uzupełnieniowym jest identyczny;

27



konwersja liczby ujemnej z zapisu w kodzie
prostym na kod uzupełnieniowy (lub z kodu
uzupełnieniowego na prosty):



dokonaj negacji wszystkich bitów z wyjątkiem bitu
znaku,



do otrzymanej wartości dodaj (binarnie) jedynkę.

background image

Reprezentacja liczb całkowitych (9)



Przykład:



Przedstaw sposób reprezentacji w kodzie
uzupełnieniowym w komórce 8-bitowej liczby
-41

(10)

.

28

-41

(10)

.

10101001

(2)

,

kod prosty

11010110

(2)

,

negacja wartości (bez bitu znaku)

00000001

(2)

,

jedynka

11010111

(2)

,

suma (wart. w kodzie uzupeł.)

background image

Reprezentacja liczb całkowitych (10)



Zamiana wartości z kodu uzupełnieniowego na
system dziesi
ętny



Kolejnym pozycjom przypisywane są
współczynniki będące kolejnymi potęgami liczby 2,
przy czym współczynnik odpowiadający pozycji

29

przy czym współczynnik odpowiadający pozycji
wysuniętej najbardziej w lewo (bit znaku)
uwzględniany jest ze znakiem minus



Przy konwersji na system dziesiętny sumowane
są współczynniki znajdujące się na pozycjach
jedynek w rozpatrywanej liczbie binarnej.

background image

Reprezentacja liczb całkowitych (11)



Przykład:



przedstaw w systemie dziesiętnym wartość
wyrażoną w kodzie uzupełnieniowym jako
10000011

30

background image

Reprezentacja liczb całkowitych (12)



Przykład:



przedstaw w systemie dziesiętnym wartość
wyrażoną w kodzie uzupełnieniowym jako
10000000

31

background image

Reprezentacja liczb całkowitych (13)



Kod uzupełnieniowy:



trudny do stosowany dla człowieka,



ułatwia wykonywanie działań na liczbach
całkowitych ze znakiem - w trakcie obliczeń bit

32

znaku jest traktowany w taki sam sposób jak
pozostałe bity.

background image

Reprezentacja liczb całkowitych (14)

Przykład

:

-2 + 3
-2

10000010

(kod prosty)

11111101

(negacja, bez bitu znaku)

00000001

(jedynka)

11111110

(kod uzupełnieniowy)

33

11111110

(kod uzupełnieniowy)

+3

00000011

(kod prosty)

00000011

(kod uzupełnieniowy)

-2 + 3

11111110

(-2, kod uzupełnieniowy)

00000011

(+3, kod uzupełnieniowy)

1 00000001

(wynik, kod uzupeł., bit przeniesienia jest ignorowany)

00000001

(wynik, kod prosty)

background image

Reprezentacja liczb całkowitych (15)



Cechy maszynowej reprezentacji liczb całkowitych:



w systemach komputerowych mogą być reprezentowane

wartości całkowite z pewnego zakresu - uzależnionego od:



liczby bitów przeznaczonych na przechowywanie jednej

wartości numerycznej,



przyjętego sposobu reprezentacji.

34



wartości całkowite mieszczące się w dopuszczalnym

zakresie przechowywane są w sposób dokładny



wyniki obliczeń realizowanych na liczbach całkowitych są

dokładne (pod warunkiem, że mieszczą się na przyjętej

liczbie bitów)



podstawowym problemem mogącym pojawić się w trakcie

obliczeń na liczbach całkowitych jest ąd nadmiaru -

powstaje wtedy, gdy wynik nie mieści się na przyjętej liczbie

bitów

background image

ilość
bitów

nazwa

zakres

8

char

−128 — +127 (ze znakiem)
0 — +255 (bez znaku)

16

short int

−32 768 — +32 767 (ze znakiem)

35

16

short int

0 — +65 535 (bez znaku)

32

int, long int

−2 147 483 648 — +2 147 483 647 (ze znakiem)
0 — +4 294 967 295 (bez znaku)

64

long long int

−9 223 372 036 854 775 808 — +9 223 372 036 854 775 807
(ze znakiem)
0 — +18 446 744 073 709 551 615 (bez znaku)

background image

Reprezentacja liczb rzeczywistych (1)



Do reprezentacji wartości rzeczywistych
stosuje się:



reprezentację stałopozycyjną
(stałoprzecinkową),

36



reprezentację zmiennopozycyjną
(zmiennoprzecinkową, półlogarytmiczną).

background image

Reprezentacja liczb rzeczywistych (2)



Reprezentacja stałopozycyjna:



do przechowania jednej wartości rzeczywistej
wykorzystuje się N bitów,



bit najbardziej wysunięty w lewo przechowuje

37

informację o znaku liczby (0 - dodatnia, 1 -
ujemna)



liczba bitów służących do przechowania
części całkowitej i części ułamkowej jest stała
(stała jest pozycja separatora dziesiętnego -
stąd określenie stałopozycyjny).

background image

Reprezentacja liczb rzeczywistych (3)



Przykład zastosowania reprezentacji
stałopozycyjnej:



do przechowania jednej wartości rzeczywistej
przeznaczono 32 bity, przy czym

38

background image

Zapis liczb rzeczywistych w komputerze
nawiązuje do wykładniczego zapisu liczb,
stosowanego także w arytmetyce dziesiętnej

39

background image

Reprezentacja liczb rzeczywistych (4)



Cechy reprezentacji stałopozycyjnej:



w systemie komputerowym mogą być przechowywane wartości

rzeczywiste z pewnego zakresu,



komputerowa reprezentacja liczb rzeczywistych ma charakter
dyskretny
(a nie ciągły),

0.00000000(2) = 0

(10)

40

0.00000000(2) = 0

(10)

0.00000001(2) = 1*2

-8

= 1/256 = 0,00390625

0.00000010(2) = 1 * 2

-7

= 1/128 = 0,0078125

0.00000011(2) = 1 * 2

-7

+ 1 * 2

-8

= 0,01171875

......

więc np. liczba 0,005

(10)

= 0,0000000101...

(2)

Liczby rzeczywiste

nie są

przechowywane w sposób dokładny!!!

background image

Reprezentacja liczb rzeczywistych (5)



Cechy reprezentacji stałopozycyjnej:



pamięć przeznaczona do przechowywania wartości

rzeczywistej nie jest wykorzystywana w sposób

optymalny

np. wartość 0,0000011111 przechowywana jest

41

np. wartość 0,0000011111

(2)

przechowywana jest

jako:

0

00000000000000000000000

00000111

Pominięte zostały dwie ostatnie cyfry, a część

przeznaczona na przechowywanie części

całkowitej nie jest wykorzystana!

background image

Reprezentacja liczb rzeczywistych (6)



Cechy reprezentacji stałopozycyjnej:



może wystąpić błąd nadmiaru

np. liczba złożona z „1” i dwudziestu pięciu „0” nie
może być przechowywana

42

background image

Reprezentacja liczb rzeczywistych (7)



Reprezentacja zmiennopozycyjna

(zmiennoprzecinkowa, półlogarytmiczna)



Każda liczba rzeczywista X może być

przedstawiona w postaci:

X = mantysa * 2

cecha

43

X = mantysa * 2

cecha

gdzie:
mantysa jest wartością rzeczywistą (dodatnią lub

ujemną),

cecha jest wartością całkowitą (dodatnią lub ujemną).



Stosując reprezentację zmiennopozycyjną w

systemie komputerowym przechowywana jest

mantysa oraz cecha liczby.

background image

Liczby rzeczywistej mogą być w pojedynczej (float)

i w podwójnej (double) dokładności (wg. norm IEEE 754)

Załóżmy, że m to liczba cyfr przeznaczonych na mantysę, natomiast n+1 to liczba
cyfr przeznaczonych na wykładnik (n cyfr dla wartości i 1 dla znaku wykładnika).

44

Uznaje się również, że jedna dodatkowa pozycja (najstarsza) zarezerwowana

jest dla zapisu znaku całej liczby. Wówczas wartości maksymalne i minimalne dla
M i E określone są następująco:

Wykładnik E:

E

min

= − B

n

+ 1

E

max

= B

n

− 1

Mantysa M:

M

min

= 1

M

max

= B B

− (m − 1)

background image

Stąd najmniejsza i największa liczba dodatnia
możliwa do zapisania w takiej reprezentacji to:

Jeśli komputer wygeneruje w trakcie obliczeń liczbę o wartości bezwzględnej

|x| < x

min

to uważa się, że jest to wartość błędna (underflow),

zwykle zamieniana na 0

.

Jeśli komputer wygeneruje w trakcie obliczeń liczbę o wartości bezwzględnej

|x| > x

max

to uważa się, że jest to wartość błędna (overflow) co

zwykle przerywa obliczenia!

background image

Reprezentacja liczb rzeczywistych (9)



Przykładowa liczba: 7(10) = 111(2)

111 = 111 * 2

0

= 11,1 * 2

1

= 1,11 * 2

10

= 0,111 * 2

11



zawsze wybiera się taki sposób reprezentacji, w
którym mantysa (w zapisie binarnym) zaczyna się od
0,1…. Dzięki temu nie ma potrzeby zapamiętywania

46

0,1…. Dzięki temu nie ma potrzeby zapamiętywania
znaków „0,”. Prezentacja spełniająca ten warunek
określana jest jako znormalizowana.



Ostatecznie, liczba rzeczywista 7 przechowywana
jest w postaci:

0111000000000011

background image

Reprezentacja liczb rzeczywistych (10)



Cechy prezentacji zmiennopozycyjnej:



zbiór reprezentowanych wartości jest:



ograniczony,



dyskretny,



liczby rzeczywiste nie są przechowywane w

47



liczby rzeczywiste nie są przechowywane w

sposób dokładny - szczególnie niebezpieczne

jest kumulowanie się błędów w trakcie

obliczeń,



reprezentacja zmiennopozycyjna pozwala

zwykle na lepsze wykorzystanie pamięci niż

reprezentacja stałopozycyjna.

background image

Reprezentacja liczb rzeczywistych (11)



Wybór pomiędzy reprezentacją stało-
i zmiennopozycyjn
ą



Reprezentacja zmiennopozycyjna:



możliwość reprezentowania wartości z większego
zakresu.

48

zakresu.



Reprezentacja stałopozycyjna:



wartości reprezentowane są z taką samą
dokładnością (co jest istotne np. w obliczeniach
finansowych).

background image

Maszynowa reprezentacja informacji

49

Maszynowa reprezentacja informacji

nienumerycznych.

background image

Reprezentacja znaków



W systemie komputerowym każdy tekst
przechowywany jest w postaci binarnej



Jest to możliwe, ponieważ każdy znak (litera,
cyfra, znak przestankowy itp.) jest zamieniany

50

cyfra, znak przestankowy itp.) jest zamieniany
w kod znaku (będący liczbą całkowitą).



Liczbami binarnymi są także informacje
sterujące, określające format tekstu (na
przykład wielkość i kolor czcionki, rozmiar
strony, wielkość marginesu itp.)

background image

Kod ASCII



ASCII - American Standard Code for
Information Interchange.



w wersji podstawowej - 7 bitowy (128 znaków)



w wersji rozszerzonej - 8 bitowy (256 znaków)

51

w wersji rozszerzonej - 8 bitowy (256 znaków)

background image

Kod ASCII

52

background image

Kod ASCII

53

background image

Kod ASCII – problem polskich
znaków



Znaki specyficzne dla języka polskiego

(ąćęłńóśżźĄĆĘŁŃÓŚŻŹ) przypisane mają kody

większe od 128  utrudnia to proces sortowanie,

wyszukiwania i porządkowania danych!!!



Istnieją różne sposoby kodowania polskich znaków
 utrudnia to wymianę dokumentów tekstowych

pomiędzy różnymi systemami.

54

 utrudnia to wymianę dokumentów tekstowych

pomiędzy różnymi systemami.



Podstawowe sposoby kodowania polskich znaków:



MS Windows CP 1250 (Windows Latin-2, Windows-

1250) - sposób kodowania wprowadzony przez firmę

Microsoft wraz z systemem Windows 3.11 PL



ISO Latin-2 (ISO-8859-2, Polska Norma PN-93 T-

42118) - sposób kodowania określony przez ISO,

stosowany powszechnie w Internecie.

background image

Polskie znaki – standardy kodowania

55

background image

Unicode (Unikod)



Unikod (ang. Unicode lub UCS - Universal Character
Set
) – sposób kodowania znaków uwzględniający
większości wykorzystywanych znaków w różnych
językach na całym świecie.



Znaki uwzględnione w Unikodzie podzielone zostały

56



Znaki uwzględnione w Unikodzie podzielone zostały
na:



podstawowy zestaw znaków (określany jako Basic
Multilingual Plane - BMP lub Plane 0) – dla tych
znaków stosowane są kody 16 bitowe;



dodatkowy zestaw znaków – stosowane są kody 32
bitowe.

background image

Reprezentacja unikodów



UTF - Unicode Transformation Format – metody

przechowywania unikodów w pamięci komputera:



UTF-8 – kody znaków wchodzących w skład

podstawowego zestawu ASCII zapisywane są jako

wartości jednobajtowe; pozostałe kody zapisywane są

na dwóch, trzech, czterech, pięciu lub sześciu bajtach

57

na dwóch, trzech, czterech, pięciu lub sześciu bajtach

(znaki o kodach zapisywanych na trzech i większej

liczbie bajtów spotykane są we współczesnych

językach bardzo rzadko);



UTF-16 – kody znaków zapisywane są na dwóch,

trzech lub czterech bajtach (najczęściej

wykorzystywane są znaki o kodach dwubajtowych);



UTF-32 – kody znaków zapisywane są na 4 bajtach.

background image

Unicode jest międzynarodowym standardem zbioru
znaków, który może być wykorzystany do pisania
dokumentów w niemalże każdym istniejącym języku.

Wersja 4.0.1 z czerwca 2004 roku zawiera

96 447

znaków z prawie wszystkich języków na świecie.

Unicode z łatwością mieści cały alfabet łaciński, ale
również pismo pochodzenia greckiego, włączając

58

również pismo pochodzenia greckiego, włączając
starożytne i współczesne odmiany oraz cyrylicę używaną
np. w Serbii.

Prawdopodobnie jedna osoba na milion obywateli świata
obecnie mówi językiem, który nie może być sensownie
przedstawiony w Unicode.

background image

W wielu zastosowaniach napisy koduje się
z pomocą kodów kreskowych

59

background image

Kody kreskowe są łatwe do wytworzenia
(zrobi je każda drukarka) i łatwe do

(zrobi je każda drukarka) i łatwe do
automatycznego odczytywania

60

background image

Stosowany w Polsce i Europie trzynastocyfrowy kod
paskowy EAN-13, widziany na większości produktów
kupowanych w sklepach, pozwala kodować jedynie cyfry.

61

background image

Bitmapowa reprezentacja grafiki



Reprezentacja bitmapowa (rastrowa) -
zapamiętywane są parametry każdego
punktu składającego się na obraz.

62

background image

Charakterystyka reprezentacji
bitmapowej



bardzo duże zapotrzebowanie na pamięć,



trudne przekształcenie obrazu (skalowanie,
obrót),



przydatna przy reprezentacji zdjęć (ale nie

63



przydatna przy reprezentacji zdjęć (ale nie
medycznych!).

background image

Obrazy bitmapowe (rastrowe) bywają
często kompresowane (żeby zajmowały
mniej miejsca)

Formaty graficzne:

• GIF

• TIF

64

• TIF

• JPG

background image

Wektorowa reprezentacja grafiki



Reprezentacja wektorowa - przechowywany
jest matematyczny opis elementów
składających się na rysunek

65

background image

Charakterystyka reprezentacji
wektorowej



mniejsze zapotrzebowanie na pamięć
w porównaniu z grafiką rastrową,



łatwiejsze przekształcenie obrazu
(skalowanie, obrót).

66

(skalowanie, obrót).

background image

Zmiana sposobu reprezentacji grafiki



rasteryzacja - budowanie mapy bitowej,
zwykle na podstawie opisu wektorowego.



wektoryzacja - przejście do reprezentacji
wektorowej.

67

wektorowej.

background image

Kompresja jako zmiana sposobu
reprezentacji informacji



Kompresja - przekształcenie sposobu
reprezentacji informacji mające na celu
zmniejszenie zapotrzebowania na pamięć
(wewnętrzną, zewnętrzną) przeznaczoną do
jej przechowywania.

68

jej przechowywania.



Dekompresja - odtworzenie pierwotnego
sposobu reprezentacji informacji.

background image

Rodzaje kompresji



Operacje kompresji i dekompresji najczęściej
dotyczą plików.



Rodzaje kompresji:



bezstratna – plik po dekompresji jest

69



bezstratna – plik po dekompresji jest
dokładnie taki sam jak plik poddany kompresji
(kompresja tekstów, programów),



stratna – plik po dekompresji jest zbliżony do
pliku poddanego kompresji (kompresja
dźwięku, grafiki, filmów).

background image

Kodowanie Huffmana jako przykład
algorytmu kompresji bezstratnej



metoda kompresji bezstratnej (przydatna do

kompresji tekstów, programów),



metoda ta wykorzystuje różnice

w częstościach występowania

poszczególnych znaków w tekście (krótsze

70

poszczególnych znaków w tekście (krótsze

kody przypisywane są znakom częściej się

pojawiającym, zaś dłuższe znakom rzadko

występującym),



metoda ta wykorzystywana jest

w popularnych programach pakujących

(np. pkzip, arj, rar).

background image

Przykładowe zastosowanie algorytmu
Huffmana (1)



Załóżmy, że:



w tekście występują tylko cztery znaki: A, B, C, D,



długość tekstu wynosi 1000 znaków



Przed kompresją:



do zakodowania jednego znaku potrzebne są 2 bity:

71



do zakodowania jednego znaku potrzebne są 2 bity:

A – 00
B – 01
C – 10
D – 11



do zakodowania tekstu o długości 1000 znaków
potrzebny jest obszar pamięci o wielkości 2000 bitów.

background image

Przykładowe zastosowanie algorytmu
Huffmana (2)

Proces kompresji:



wyznacza się częstości wystąpienia każdego
ze znaków

72

ze znaków

A (45%)
B (15%)
C (35%)
D (5%)

background image

Przykładowe zastosowanie algorytmu
Huffmana (3)

Proces kompresji:

porządkuje się elementy względem częstości
występowania (od najrzadziej do najczęściej

73

występowania (od najrzadziej do najczęściej
występującego)

D (5%)
B (15%)
C (35%)
A (45%)

background image

Przykładowe zastosowanie algorytmu
Huffmana (4)

Proces kompresji:

w kolejnych krokach pobiera się dwa

najrzadziej

występujące elementy, łączy w jeden

74

występujące elementy, łączy w jeden

i umieszcza na odpowiedniej pozycji listy



krok 1 – połączenie elementów D i B

(D, B) (20%)
C

(35%)

A

(45%)

background image

Przykładowe zastosowanie algorytmu
Huffmana (5)

Proces kompresji:



krok 2 – połączenie (D, B) i C

A

(45%)

75

A

(45%)

((D, B), C)

(55%)



krok 3 – połączenie A i ((D, B), C)

(A, ((D, B), C)) (100%)

background image

Przykładowe zastosowanie algorytmu
Huffmana (6)

Proces kompresji:

Uzyskany element (A, ((D, B), C)) przedstawia
się w postaci drzewa

76

się w postaci drzewa

C

A

D

B

Kody znaków

A – 0
B – 101
C – 11
D – 100

background image

Przykładowe zastosowanie algorytmu
Huffmana (7)



Długość tekstu w postaci skompresowanej

A: 1 * 0.45 * 1000 = 450 bitów
B: 3 * 0.15 * 1000 = 450 bitów
C: 2 * 0.35 * 1000 = 700 bitów

77

C: 2 * 0.35 * 1000 = 700 bitów
D: 3 * 0.05 * 1000 = 150 bitów
SUMA:

1750 bitów

background image

Realizacja kompresji bezstratnej

78


Wyszukiwarka

Podobne podstrony:
04 LOG M Informatyzacja log
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
04 Wykorzystanie informacyjnych technik biurowych
04 Krótka informacja o świadczeniach
Podstawy Informatyki Wykład VI Reprezentacja informacji w komputerze
Ekonomia rynkowa - wyk+éad 04, Studia, Informatyka Stosowana PWSZ Tarnów st 1, Semestr I, Ekonomia,
Reprezentacja informacji w komputerze
04 Technologia informacyjna
Egzamin 04, System Informacji Terenowych SIT
04 4 1 Podstawowa informacja określona w art ) § 3 KP u pracodawcy posiadającego regulamin pracy
gielda 04 biom inform mikroby
04 LOG M Informatyzacja log
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
04 Wykorzystanie informacyjnych technik biurowych
2008 04 Ochrona informacji biznesowych
2014 04 17 Informator Pomoc dla potrzebujących
polityka 00 04 obowiazek informacyjny zfss
Reprezentacja informacji w komputerze
Program nauczania Technik Informatyk 312[01] 2004 06 04

więcej podobnych podstron