Wstęp do informatyki - Katedra Informatyki > Home

Transkrypt

Wstęp do informatyki - Katedra Informatyki > Home
Liczby całkowite
Za pomocą n-bitów moŜna zapisać dokładnie 2n róŜnych
liczb całkowitych (NKB, U2)
Wstęp do informatyki
NKB – liczby całkowite z zakresu 0...2n-1
U2
– liczby całkowite z zakresu –2n-1...+2n-1-1
Podstawy arytmetyki komputerowej c.d.
2n liczb
Cezary Bolek
[email protected]
NKB
Uniwersytet Łódzki
U2
Wydział Zarządzania
.....
0 1 2 3
Imin=2n-1
.....
-2 -1 0 1 2
Imax=2n-1
.....
Imax=2n-1-1
Katedra Informatyki
Wstęp do informatyki
Dla n-bitowego zapisu liczb całkowitych:
KaŜda cyfra dziesiętna kodowana jest oddzielnie na
4 bitach. Dopuszczalne są tylko kombinacje
od 0000 do 1001.
1. MoŜliwe jest zapisanie wszystkich liczb z
dostępnego zakresu.
2. Działania arytmetyczne (+,-,*,div,mod) dają zawsze
wyniki całkowite dokładne (bez przybliŜeń lub
zaokrągleń).
3. Błąd przekroczenia zakresu (overflow) jest
sygnalizowany:
17BCD
0001 0111b
1001 0101b
95BCD
Kod BCD powala uniknąć konwersji pomiędzy systemem
dziesiętnym a binarnym, ale zapis liczb wymaga więcej
miejsca i bardziej złoŜonych (wolnych) algorytmów
operacji arytmetycznych.
a) wystąpieniem bitu przeniesienia (w NKB)
b) zmianą znaku wyniku (w U2 dla dwóch liczb o tych
samych znakach)
Cezary Bolek <[email protected]>
2
Kod BCD
(Binary Coded Decimal)
Arytmetyka liczb całkowitych
Wstęp do informatyki
Cezary Bolek <[email protected]>
3
Wstęp do informatyki
Cezary Bolek <[email protected]>
4
1
Liczby dwójkowe
w postaci m.n
Liczby wymierne
x
Zapis typu n.m obowiązuje w systemie pozycyjnym
o dowolnej podstawie, równieŜ dla liczb dwójkowych
Zapis ułamkowy y jest mało wygodny do potrzeb zapisu
komputerowego.
am ... a1 a0 . a-1 a-2 ... a-n
Zapis z kropką oddzielającą część całkowitą od
ułamkowej n.m nadaje się tylko do bardzo ograniczonego
zakresu liczb o ustalonej długości pól m i n. (zapis
stałopozycyjny)
am·2m + ...+ a1·21 + a0·20 + a-1·2-1 + ... + a-n·2-n
np. obliczenia walutowe w zakresie 000000.00 ... 999999.99
kaŜda liczba kodowana w BCD zajmuje 4b.
Wstęp do informatyki
Cezary Bolek <[email protected]>
101.11b = 22+20+2-1+2-2=4+1+0.5+0.25=5.75
100.001b = 4 + 1/8 = 4.125
5
Wstęp do informatyki
Cezary Bolek <[email protected]>
Zapis zmiennopozycyjny
Zapis zmiennopozycyjny
(floating point)
(floating point)
6
Zapis zmiennopozycyjny nazywa się równieŜ
notacją naukową.
KaŜdą liczbę moŜna zapisać w postaci
±X * bY,
gdzie:
Notacja naukowa pozwala na zwarty zapis
zarówno liczb bardzo duŜych, jak i małych.
X – mantysa (część ułamkowa),
Y – wykładnik,
b – podstawa systemu liczbowego
149600000.0
-0.000076502
Wstęp do informatyki
149600000.0 = .1496E9
-0.000076502 = -76.502e-6
0.1496*109
=
= -76.502*10-6
Cezary Bolek <[email protected]>
7
Wstęp do informatyki
Cezary Bolek <[email protected]>
8
2
Postać znormalizowana
Zapis liczb dwójkowych
zmiennopozycyjnych
Postać znormalizowana liczby:
tylko jedna cyfra znacząca przed kropką
Ogólna postać liczby: ± X*2Y
149600000.0 = 1.496E8
-0.000076502 = -7.6502e-5
11010b = 0.1101b*25
-0.000000101b = -1.01b*2-7
110100000.0b = 1.101b*28
-0.000000101b = -1.01b*2-7
W systemie dwójkowym:
11010 = 0.1101*10101
-0.000000101 = -1.01*10-111
Wstęp do informatyki
Cezary Bolek <[email protected]>
W systemie dwójkowym, liczby znormalizowane
zawsze mają mantysę z cyfrą 1 przed kropką.
9
Kod IEEE754
Wstęp do informatyki
Cezary Bolek <[email protected]>
10
IEEE754 c.d.
IEEE – Institute of Electrical and Electronics Engineers
(-1)s * 1.f * 2e-127
IEEE754 (1985) - norma dotycząca zapisu binarnego liczb
zmiennopozycyjnych
Mantysa zapisywana jest bez wiodącej cyfry 1, co pozwala
oszczędzić miejsce
Liczbę binarną o postaci
(-1)s * 1.f * 2e-127
Wykładnik zapisany jest w formie przesuniętej, tj. zwiększony o
127, co pozwala na uniknięcie liczb ujemnych w jego zapisie.
zapisuje się na 32-bitach następująco:
s
znak
1 bit
Wstęp do informatyki
e
wykładnik
8 bitów
110000001010000...000b =
-1 * 1.01b*2129-127 = -1.01b*22 = -5
f
001100000000000...000b =
+1 * 1.0b*296-127 = 1 * 2-31 ≈ 4.65e-10
mantysa
23 bity
Cezary Bolek <[email protected]>
11
Wstęp do informatyki
Cezary Bolek <[email protected]>
12
3
Dec → IEEE754
IEEE754 – kody specjalne
-7.25
-111.01b
-1.1101b*22
1 10000001 11010000000000000000000
Wstęp do informatyki
Cezary Bolek <[email protected]>
13
Ograniczenia zapisu
zmiennopozycyjnego
znak
wykł.
mantysa
zero dodatnie
0
0
0
zero ujemne
1
0
0
zdenormalizowana
0 lub 1
0
≠0
+ nieskończoność
0
255
0
- nieskończoność
1
255
0
nie-liczba (NaN)
0 lub 1
255
≠0
liczba dodatnia
0
1...254
dowolna
liczba ujemna
1
1...254
dowolna
Wstęp do informatyki
Cezary Bolek <[email protected]>
Ograniczenia zapisu zmiennopozycyjnego
Ograniczenie dokładności:
skończona długość pola mantysy
Ograniczenie zakresu:
skończona długość pola wykładnika
Rmax
0
-Rmax
-Rmin 0
Rmin
Rmax
1.f*2k 1.f*2k+1
Cezary Bolek <[email protected]>
1.f*2k+1
1.f*2k+2
1.f*2k+3
Zapisać moŜna tylko niektóre liczby wymierne.
„Zagęszczenie” liczb jest zmienne i zaleŜy od wartości wykładnika.
W kaŜdym przedziale pomiędzy 2i i 2i+1 znajduje się tyle równomiernie rozłoŜonych
liczb, na ile kombinacji pozwala długość pola mantysy.
Dla liczb bliskich Rmin dokładność jest największa, ale zakres najmniejszy,
dla liczb bliskich Rmax – najmniejsza, a zakres największy.
IEEE754 single precision (32 bity)
Rmin ≈ 1.1754943e-38 00000000100000...000b
Rmax ≈ 3.4028235e+38 X1111111011111...111b
Wstęp do informatyki
14
15
Wstęp do informatyki
Cezary Bolek <[email protected]>
16
4
Liczby całkowite vs zmiennopozycyjne
Single vs Double Precision IEEE754
Za pomocą n-bitów moŜna zapisać dokładnie 2n róŜnych
liczb całkowitych (NKB, U2)
Single Precision: 32 bity
8b wykładnik + 23b mantysa
Rmin ≈ 10-38
Rmax ≈ 10+38
dokładność około 7 cyfr znaczących
2n liczb
NKB
.....
0 1 2 3
Imax=2n-1
Za pomocą n-bitów moŜna zapisać mniej niŜ 2n
róŜnych liczb wymiernych (IEEE754)
-Rmax
-Rmin 0
Rmin
Double Precision: 64 bity
11b wykładnik + 52b mantysa
Rmin ≈ 10-308
Rmax ≈ 10+308
dokładność około 16 cyfr znaczących
Rmax
Z n-bitów moŜna utworzyć 2n róŜnych kombinacji binarnych.
Znaczenie tych kombinacji zaleŜy od interpretacji.
W przypadku zapisu zmiennopozycyjnego, dostępne wartości są jedynie inaczej
rozłoŜone na osi liczbowej, ale jest ich niemal tyle samo co liczb całkowitych.
Wstęp do informatyki
Cezary Bolek <[email protected]>
17
Wstęp do informatyki
Cezary Bolek <[email protected]>
18
Dodawanie liczb IEEE754
Arytmetyka liczb zmiennopozycyjnych
Dodawanie:
1.111*22 + 1.01*2-1
1. Sprowadź liczby do
wspólnego większego
wykładnika
1.111*22 + 0.00101*22
Dla zapisu zmiennopozycyjnego IEEE754:
1. NiemoŜliwe jest zapisanie wszystkich liczb z
dostępnego zakresu.
2. Działania arytmetyczne (+,-,*,/) dają wyniki obarczone
błędem przybliŜenia.
3. Błąd zakresu (niedomiar lub przepełnienie) jest
sygnalizowany kodem specjalnym IEEE754
4. Błąd przybliŜenia nie jest sygnalizowany.
5. Operacje arytmetyczne wymagają
skomplikowanych algorytmów.
Wstęp do informatyki
Cezary Bolek <[email protected]>
2. Dodaj mantysy
(ze znakiem)
1.11100
0.00101
10.00001
3. Normalizuj wynik
10.00001*22 = 1.000001*23
Po kaŜdym kroku algorytmu naleŜy dodatkowo sprawdzać czy nie powstał
niedomiar lub przepełnienie i na końcu zaokrąglić wynik, jeśli potrzeba.
19
Wstęp do informatyki
Cezary Bolek <[email protected]>
20
5
MnoŜenie liczb IEEE754
MnoŜenie:
1.111*22 * 1.01*2-1
1. Dodaj wykładniki
obu liczb
2+(-1) = 1
2. PomnóŜ mantysy
(ze znakiem)
3. Normalizuj wynik
Konwersja pomiędzy systemami
Liczby o skończonej długości w jednym systemie liczbowym,
mogą mieć nieskończone rozwinięcie w innym systemie
liczbowym.
1.111
1.01
1111
111100
10.01011
10.01011*21 =
Sytuacja taka skutkuje nieodwracalną utratą dokładności
podczas przeliczania.
0.13 = 0.33333333333333333333333310...
0.17 = 0.14285714285714285714285710...
0.110 = 0,00011001100110011001100112...
1.001011*22
Po kaŜdym kroku algorytmu naleŜy dodatkowo sprawdzać czy nie powstał niedomiar
lub przepełnienie i na końcu zaokrąglić wynik, jeśli potrzeba.
Wstęp do informatyki
Cezary Bolek <[email protected]>
21
Wstęp do informatyki
Cezary Bolek <[email protected]>
22
Kod ASCII
Kodowanie tekstu
ASCII – The American Standard Code for Information
Interchange
Podstawowy zestaw znaków:
• Litery alfabetu (małe i wielkie)
• Znaki interpunkcyjne i inne
• Cyfry
• Spacja
Razem: nieco mniej niŜ 100 znaków
Standard ASCII jest kodem 7-bitowym przyjętym w 1968r.
w celu uzyskania podstawowej kompatybilności pomiędzy
róŜnymi systemami komputerowymi.
Kodowanie znaku wymaga minimum 7 bitów.
W praktyce kodowanie tekstu wymaga 1Bajtu na zapis
kaŜdego znaku tekstu.
Jakie wartości naleŜy przypisać poszczególnym znakom –
czyli jaki standard kodowania?
Wstęp do informatyki
Cezary Bolek <[email protected]>
23
Wstęp do informatyki
Cezary Bolek <[email protected]>
24
6
ASCII c.d.
Strony kodowe
Standard ASCII nie definiuje znaków o wartościach
powyŜej 127.
0..31 (0..1Fh) – kody sterujące dla terminala
bs
lf
cr
esc
– back space – cofnięcie kursora
– line feed – przesunięcie kursora do nowej linii (w dół)
– carriage return – powrót kursora (karetki) na początek linii
– escape – kod ucieczki, sygnalizacja sytuacji specjalnej
32 (20h)
Niewykorzystane 128 wartości są przypisywane znaków z
alfabetów narodowych, które nie występują w kodzie ASCII
oraz innych znaków dodatkowych.
– kody znaku odstępu (spacja)
Strona kodowa (Code Page) określa standard wykorzystania
znaków o kodach od 128 do 255.
48..57 (30..39h) – kody znaków cyfr (0..9)
Polskie strony kodowe (niektóre):
DOS
– cp852, Mazovia, ...
Windows
– cp1250
Unix, Internet – iso-8859-2
65..90 (41..5Ah) – kody wielkich liter (A..Z)
97..122 (61..7Ah) – kody małych liter (a..z)
Wstęp do informatyki
Cezary Bolek <[email protected]>
25
Wstęp do informatyki
ISO/IEC 8859
26
ISO/IEC 8859
Stosowane standardy ISO 8859:
ISO/IEC 8859 - zestaw standardów słuŜących do kodowania znaków za
pomocą 8-bitów
Standardy te zostały utworzone przez European Computer
Manufacturers’ Association w połowie lat 80-tych, po czym zostały
uznane przez ISO
Wszystkie zestawy ISO 8859 mają znaki 0d-127d (00h-7Fh) takie same
jak w kodzie ASCII
Pozycjom 128d-159d (80h-9Fh) przypisane są dodatkowe kody
sterujące, tzw. C1 (obecnie nie są uŜywane)
W czerwcu 2004 roku, grupa robocza odpowiedzialna za utrzymanie
zestawów znaków kodowanych ośmiobitowo została rozwiązana, a co za
tym idzie, wstrzymane zostały prace związane z ISO 8859,
a skoncentrowano się na uniwersalnym zestawie znaków (UCS) i
Unicode
Wstęp do informatyki
Cezary Bolek <[email protected]>
Cezary Bolek <[email protected]>
27
ISO 8859-1 (Latin-1) - alfabet łaciński dla Europy zachodniej
ISO 8859-2 (Latin-2) - łaciński dla Europy środkowej i wschodniej
ISO 8859-3 (Latin-3) - łaciński dla Europy południowej
ISO 8859-4 (Latin-4) - łaciński dla Europy płnocnej
ISO 8859-5 (Cyrillic) - dla cyrylicy
ISO 8859-6 (Arabic) - dla alfabetu arabskiego
ISO 8859-7 (Greek) - dla alfabetu greckiego
ISO 8859-8 (Hebrew) - dla alfabetu hebrajskiego
ISO 8859-9 (Latin-5)
ISO 8859-10 (Latin-6)
ISO 8859-11 (Thai) - dla alfabetu tajskiego
ISO 8859-12 - brak
ISO 8859-13 (Latin-7)
ISO 8859-14 (Latin-8)
ISO 8859-15 (Latin-9)
ISO 8859-16 (Latin-10) - łaciński dla Europy środkowej
Wstęp do informatyki
Cezary Bolek <[email protected]>
28
7
Windows-1250 (CP-1250) strona kodowa uŜywana przez
system Microsoft Windows do
reprezentacji tekstów w językach
środkowoeuropejskich
uŜywających alfabetu łacińskiego
D z
Obsługiwane języki: albański,
chorwacki, czeski, polski,
rumuński, słowacki, słoweński,
węgierski, niemiecki
Windows-1250 jest podobny do
ISO 8859-2 - posiada wszystkie
jego drukowalne znaki (a takŜe
kilka dodatkowych), lecz kilka z
nich zajmuje inne miejsca
Wstęp do informatyki
Dzień
i noc.
Standardy kodowania nowej linii:
DOS, Windows: cr+lf
Unix:
lf
44 7A 69 65 F1 0D 0A 69 20 6E 6F 63 2E
Mac OS:
cr
i e ń
znak o kodzie > 128
litera ń w kodzie cp1250
i
cr
lf
n o
c .
spacja
•Problem z wyświetlaniem polskich znaków:
•Tekst zapisany w standardzie ISO-8859-2:
ISO 8859-2
ASCII w praktyce
Windows-1250
Windows-1250
•Tekst wyświetlony w Notatniku systemu Windows (Windows-1250):
Cezary Bolek <[email protected]>
29
Wstęp do informatyki
ISO/IEC 10646 - Universal Character Set
Cezary Bolek <[email protected]>
30
Unicode (Unikod)
Równolegle z ISO/IEC 10646 opracowano inny standard: przyporządkowanie
znaków, kodowanie danych, zasady typografii i składu – UNICODE.
ASCII – standard ograniczony + kłopoty ze stronami kodowymi
Od 1991 ISO/IEC 10646 oraz UNICODE posługują się tym samym zestawem
znaków.
Rozwiązanie:
zebranie razem w jednym zestawie kodów znaków wszystkich języków
świata (języki europejskie, cyrylica, hebrajski, arabski, japoński, chiński,
hieroglify, etc.) oraz róŜne symbole (techniczne, prawne, medyczne,
muzyczne, wymowy, etc.).
KaŜdy kod Unicode jednoznacznie identyfikuje symbol na dowolnym
komputerze na Ziemi i pozwala umieszczać razem w jednym dokumencie
teksty w róŜnych językach.
Dla zapewnienie kompatybilności z kodem ASCII, pierwsze 128 kodów w
obu standardach określa te same znaki.
Standard ISO/IEC 10646 definiuje znaki za pomocą 4 bajtów (32 bity)
Plane
0
1
2
3 to 13
14
15
16
Wstęp do informatyki
Cezary Bolek <[email protected]>
31
Range
0000–FFFF
10000–1FFFF
20000–2FFFF
30000–DFFFF
E0000–EFFFF
F0000–FFFFF
100000–10FFFF
Wstęp do informatyki
Description
Basic Multilingual Plane
Supplementary Multilingual Plane
Supplementary Ideographic Plane
currently unassigned
Supplementary Special-purpose Plane
Supplementary Private Use Area-A
Supplementary Private Use Area-B
Abbreviation
BMP
SMP
SIP
SSP
http://www.unicode.org
Cezary Bolek <[email protected]>
32
8
Basic Multilingual Plane
Unicode – kodowanie znaków UCS
Zakres:
0000 - 007F
0080 - 00FF
0100 - 017F
0180 - 024F
0250 - 02AF
02B0 - 02FF
...
0370 - 03FF
0400 - 04FF
...
1D00 - 1D7F
1D80 - 1DBF
1E00 - 1EFF
1F00 - 1FFF
Unicode – kodowanie znaków UCS
Znaczenie:
Basic Latin (to samo co w ASCII)
Latin-1 Supplement (to samo co w ISO/IEC 8859-1)
Latin Extended-A
Latin Extended-B
IPA Extensions
Spacing Modifiers Letters
Metody
UTF-7 – kodowanie opracowane na potrzeby poczty elektronicznej
(załączniki MIME), mało popularne kodowanie 7-bitowe
Greek
Cyrillic
Phonetic Extensions
Phonetic Extensions Supplement
Latin Extended Additional
Greek Extended
UCS-2
kodowania UTF (Unicode Transformation Format)
UTF-8 - kodowanie 8-bitowe ze zmienną długością kodowania,
zgodne z ASCII
Standardy Kolejnością ułoŜenia
bajtów w słowie:
UTF-16 - kodowanie 16-bitowe ze zmienną długością kodowania
Little Endian – pierwszy jest mniej
znaczący bajt (Windows)
Big Endian – pierwszy jest
bardziej znaczący bajt
UTF-32/UCS-4 - kodowanie 32-bitowe
kodowanie za pomocą dwóch bajtów (tylko Basic Multilingual Plane)
UCS-4
kodowanie za pomocą czterech bajtów (wszystkie moŜliwe znaki)
Wstęp do informatyki
Cezary Bolek <[email protected]>
33
Wstęp do informatyki
Unicode - kodowanie UTF-8
10xxxxxx
- bity 111110xx
10xxxxxx
0x4000000 do 0x7FFFFFFF - bity 1111110x
10xxxxxx
zawiera bajtu z ASCII
przekonwertowaniu go do UTF-8 (teksty w języku polskim zwiększają
objętość jedynie o kilka procent)
o kaŜdym bajcie wiadomo czy jest początkiem znaku, czy teŜ leŜy w środku
10xxxxxx 10xxxxxx
10xxxxxx
10xxxxxx 10xxxxxx
10xxxxxx 10xxxxxx
Cezary Bolek <[email protected]>
Zalety kodowania UTF-8
kaŜdy tekst w ASCII jest tekstem w UTF-8, a Ŝaden znak spoza ASCII nie
typowy tekst ISO-Latin-x rozrasta się w bardzo niewielkim stopniu po
Nie ma problemów z little endian vs. big endian.
Z powodu takiego kodowania ten sam znak moŜna zapisać na kilka
sposobów, np znak ‘a’:
Standard UTF-8 przewiduje, Ŝe
01100001
kaŜdy program MUSI odrzucać
wszystkie znaki zapisane
11000001 10100001
sekwencjami dłuŜszymi niŜ
11100000 10000001 10100001
minimalna.
Wstęp do informatyki
34
Unicode - kodowanie UTF-8
UTF-8 - system kodowania ze zmienną długością reprezentacji znaku
Znaki Unikodu są mapowane na ciągi bajtów
0x00 do 0x7F
- bity 0xxxxxxx
0x80 do 0x7FF
- bity 110xxxxx 10xxxxxx
0x800 do 0xFFFF
- bity 1110xxxx 10xxxxxx 10xxxxxx
0x10000 do 0x1FFFFF
- bity 11110xxx 10xxxxxx 10xxxxxx
0x200000 do 0x3FFFFFF
Cezary Bolek <[email protected]>
Wady kodowania UTF-8
znaki alfabetów niełacińskich zajmują po dwa bajty zamiast jednego jak jest
to w kodowaniach narodowych
Nie wszystkie systemy i programy posługują się Unikodem
Tekst w Unicode moŜe być nawet 2 razy większy od ASCII
35
Wstęp do informatyki
Cezary Bolek <[email protected]>
36
9
Unicode w praktyce
Kodowanie dźwięku
Dźwięk: drgania cząsteczek powietrza
odbierane jako zmiany ciśnienia poruszające
membranę mikrofonu.
w zaleŜności
Utf-8:
Amplituda drgań:
głośność dźwięku
Częstotliwość drgań: wysokość dźwięku
77 20 7A 61 6C 65 C5 BC 6E 6F C5 9B 63 69
w
z a
l
e
Ŝ
n o
c
odchylenie
membrany
i
polska
litera ś
polska
litera Ŝ
spacja
ś
Próbkowanie: pomiar wielkości ciągłej w
określonych momentach czasowych.
czas
Wstęp do informatyki
Cezary Bolek <[email protected]>
37
Wstęp do informatyki
Częstotliwość próbkowania musi być większa
od największej częstotliwości zmian
próbkowanego sygnału.
Cezary Bolek <[email protected]>
38
Kodowanie obrazu
Kodowanie dźwięku
Układ rejestracji dźwięku
Obraz monochromatyczny – punkt obrazu kodowany 1 bitem.
mikrofon
ADC
RAM
przetwornik
analog/cyfra
pamięć
pamięć obrazu:
16 linii x 2B = 32B
RAM
DAC
pamięć
przetwornik
cyfra/analog
linie obrazu
Układ odtwarzania dźwięku
głośnik
Compact Disc Standard:
przetworniki ADC/DAC 16-bitowy (kaŜda próbka 2B)
częstotliwość próbkowania 44kHz (pomiar co 23µs)
1s dźwięku (mono) ≈ 86kB, 1h ≈ 302MB
Wstęp do informatyki
Cezary Bolek <[email protected]>
1 bajt
1 bajt
długość linii obrazu
39
Wstęp do informatyki
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00011100 01001000
00100010 01010000
00100010 01100000
00100010 01100000
00100010 01010000
00100010 01001000
00100010 01000100
00011100 01000100
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
Cezary Bolek <[email protected]>
40
10
Kodowanie obrazu
Kompresja danych
Obraz kolorowy – punkt obrazu kodowany 1B, 2B, 3B lub 4B
8-bitowa głębokość koloru
– 256 kolorów
16-bitowa głębokość koloru
– 65536 kolorów
24,32-bitowa głębokość koloru – 16.7 milionów kolorów
gł
ęb
ko ok
lo oś
ru ć
Kompresja danych – zmniejszanie rozmiaru danych poprzez
usuwanie redundancji (nadmiaru informacji).
Kompresja bezstratna:
moŜliwe jest odtworzenie oryginalnej postaci danych
(pakowanie programów, tekstów, grafiki)
ZIP, GIF
rozdzielczość
pionowa
pamięć obrazu:
16p x 16p x 1B = 256B
Kompresja stratna:
nie jest moŜliwe odtworzenie oryginalnej postaci danych,
ale postać skompresowana jest wystarczająco
„podobna do oryginału”
(pakowanie danych multimedialnych: grafika, dźwięk)
JPG, MP3
640x480x8bpp = 300kB
1024x768x8bpp=768kB
640x480x24bpp = 900kB
1024x768x24bpp=2.25MB
rozdzielczość pozioma
Wstęp do informatyki
bpp – bits per pixel
Cezary Bolek <[email protected]>
41
Wstęp do informatyki
Kompresja stratna jest moŜliwa ze względu na sposób działania ludzkich
zmysłów, tj. zmienną wraŜliwość na odbiór róŜnych części danych.
Najczęściej uŜywane metody kompresji bezstratnej to:
Algorytmy kompresji stratnej zazwyczaj posługują się
modelami psychoakustycznymi,
modelami psychowizualnymi
itd., aby odrzucić najmniej istotne dane o dźwięku, obrazie, pozostawiając dane
o wyŜszej wartości dla rozpoznawania tej informacji (akustycznej, wizualnej)
przez zmysły.
metody słownikowe, które polegają na poszukiwaniu dokładnych
wystąpień danego ciągu znaków lub bitów, np. zastępują wyraz „auto”
krótszą ilością bitów niŜ jest potrzebna na zakodowanie 4 niezwiązanych
znaków. Jednak znajomość symbolu „auto” nie pociąga za sobą
usprawnień w kompresowaniu np. wyrazu „autor” .
Nie istnieją algorytmy kompresji stratnej, które moŜna stosować do dowolnego
typu danych (kompresja stratna plików wykonywalnych jest niemoŜliwa, gdyŜ nie
jest to informacja odczytywana przez zmysły, a przez maszynę).
metody statystyczne, które uŜywają mniejszej ilości bitów dla częściej
występujących symboli.
W przypadku praktycznie wszystkich, oprócz najprostszych metod,
prawdopodobieństwa zaleŜą od kontekstu.
A wiec np. dla liter „sz” uŜywają mniejszej ilości bitów niŜ dla dwóch
oddzielnych znaków.
Cezary Bolek <[email protected]>
42
Kompresja stratna
Kompresja bezstratna
Wstęp do informatyki
Cezary Bolek <[email protected]>
Obraz:
•JPEG,
Video:
•DivX, MPEG, Real Video
Audio:
•MP3, OGG Vorbis, Real Audio,
43
Wstęp do informatyki
Cezary Bolek <[email protected]>
44
11
JPEG
Motto
Obraz
oryginalny
There are 10 kinds of people:
those who understand binary
and those who do not.
Kompresja
75%
Kompresja
95%
Wstęp do informatyki
Cezary Bolek <[email protected]>
45
Wstęp do informatyki
Cezary Bolek <[email protected]>
46
12

Podobne dokumenty