Wstęp do Informatyki Liczby całkowite Arytmetyka liczb całkowitych

Transkrypt

Wstęp do Informatyki Liczby całkowite Arytmetyka liczb całkowitych
Wstęp do Informatyki
Liczby całkowite
Podstawy arytmetyki komputerowej c.d.
Cezary Bolek
[email protected]
Uniwersytet Łódzki
Wydział Zarządzania
Katedra Informatyki
Za pomocą n-bitów moŜna zapisać dokładnie 2n róŜnych
liczb całkowitych (NKB, U2)
NKB – liczby całkowite z zakresu 0...2n-1
U2
– liczby całkowite z zakresu –2n-1...+2n-1-1
2n liczb
NKB
U2
.....
0 1 2 3
Imin=2n-1
.....
-2 -1 0 1 2
Wstęp do Informatyki
Arytmetyka liczb całkowitych
Dla n-bitowego zapisu liczb całkowitych:
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:
a) wystąpieniem bitu przeniesienia (w NKB)
b) zmianą znaku wyniku (w U2 dla dwóch liczb o tych
samych znakach)
Wstęp do Informatyki
[email protected]
Imax=2n-1
.....
Imax=2n-1-1
[email protected]
Kod BCD (Binary Coded Decimal)
KaŜda cyfra dziesiętna kodowana jest oddzielnie na
4 bitach. Dopuszczalne są tylko kombinacje
od 0000 do 1001.
17BCD
1001 0101b
0001 0111b
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.
Wstęp do Informatyki
[email protected]
1
Liczby dwójkowe w postaci m.n
Liczby wymierne
x
Zapis ułamkowy y jest mało wygodny do potrzeb zapisu
komputerowego.
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)
np. obliczenia walutowe w zakresie 000000.00 ... 999999.99
kaŜda liczba kodowana w BCD zajmuje 4b.
Wstęp do Informatyki
[email protected]
Zapis typu n.m obowiązuje w systemie pozycyjnym
o dowolnej podstawie, równieŜ dla liczb dwójkowych
am ... a1 a0 . a-1 a-2 ... a-n
am·2m + ...+ a1·21 + a0·20 + a-1·2-1 + ... + a-n·2-n
101.11b = 22+20+2-1+2-2=4+1+0.5+0.25=5.75
100.001b = 4 + 1/8 = 4.125
Wstęp do Informatyki
[email protected]
Zapis zmiennopozycyjny (floating
Zapis zmiennopozycyjny (floating
point)
point)
KaŜdą liczbę moŜna zapisać w postaci
±X * bY,
Zapis zmiennopozycyjny nazywa się równieŜ
notacją naukową.
gdzie:
X – mantysa (część ułamkowa),
Y – wykładnik,
b – podstawa systemu liczbowego
149600000.0
-0.000076502
Wstęp do Informatyki
0.1496*109
=
= -76.502*10-6
[email protected]
Notacja naukowa pozwala na zwarty zapis
zarówno liczb bardzo duŜych, jak i małych.
149600000.0 = .1496E9
-0.000076502 = -76.502e-6
Wstęp do Informatyki
[email protected]
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
[email protected]
W systemie dwójkowym, liczby znormalizowane
zawsze mają mantysę z cyfrą 1 przed kropką.
Wstęp do Informatyki
[email protected]
IEEE754 c.d.
Kod IEEE754
IEEE – Institute of Electrical and Electronics Engineers
IEEE754 (1985) - norma dotycząca zapisu binarnego liczb
zmiennopozycyjnych
Liczbę binarną o postaci
(-1)s * 1.f * 2e-127
znak
1 bit
Wstęp do Informatyki
e
wykładnik
8 bitów
Mantysa zapisywana jest bez wiodącej cyfry 1, co pozwala
oszczędzić miejsce
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
(-1)s * 1.f * 2e-127
f
mantysa
23 bity
[email protected]
110000001010000...000b =
-1 * 1.01b*2129-127 = -1.01b*22 = -5
001100000000000...000b =
+1 * 1.0b*296-127 = 1 * 2-31 ≈ 4.65e-10
Wstęp do Informatyki
[email protected]
3
Dec → IEEE754
IEEE754 – kody specjalne
-7.25
-111.01b
-1.1101b*22
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
1 10000001 11010000000000000000000
Wstęp do Informatyki
Wstęp do Informatyki
[email protected]
Ograniczenia zapisu zmiennopozycyjnego
Ograniczenie zakresu:
skończona długość pola wykładnika
[email protected]
Ograniczenia zapisu zmiennopozycyjnego
Ograniczenie dokładności:
skończona długość pola mantysy
Rmax
0
-Rmax
-Rmin 0
Rmin
Rmax
1.f*2k 1.f*2k+1
IEEE754 single precision (32 bity)
Rmin ≈ 1.1754943e-38 00000000100000...000b
Rmax ≈ 3.4028235e+38 X1111111011111...111b
Wstęp do Informatyki
[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.
Wstęp do Informatyki
[email protected]
4
Liczby całkowite vs zmiennopozycyjne
Za pomocą n-bitów moŜna zapisać dokładnie 2n róŜnych
liczb całkowitych (NKB, U2)
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
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
[email protected]
Arytmetyka liczb zmiennopozycyjnych
Single vs Double Precision IEEE754
Single Precision: 32 bity
8b wykładnik + 23b mantysa
Rmin ≈ 10-38
Rmax ≈ 10+38
dokładność około 7 cyfr znaczących
Double Precision: 64 bity
11b wykładnik + 52b mantysa
Rmin ≈ 10-308
Rmax ≈ 10+308
dokładność około 16 cyfr znaczących
Wstęp do Informatyki
[email protected]
Dodawanie liczb IEEE754
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
[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.
Wstęp do Informatyki
[email protected]
5
MnoŜenie liczb IEEE754
Konwersja pomiędzy systemami
MnoŜenie:
1.111*22 * 1.01*2-1
1. Dodaj wykładniki
obu liczb
2+(-1) = 1
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
2. PomnóŜ mantysy
(ze znakiem)
10.01011*21 =
3. Normalizuj wynik
Sytuacja taka skutkuje nieodwracalną utratą dokładności
podczas przeliczania.
1.001011*22
0.13 = 0.33333333333333333333333310...
0.17 = 0.14285714285714285714285710...
0.110 = 0,00011001100110011001100112...
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
[email protected]
Kodowanie tekstu
Podstawowy zestaw znaków:
• Litery alfabetu (małe i wielkie)
• Znaki interpunkcyjne i inne
• Cyfry
• Spacja
Razem: nieco mniej niŜ 100 znaków
Wstęp do Informatyki
[email protected]
Kod ASCII
ASCII – The American Standard Code for Information
Interchange
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
[email protected]
Wstęp do Informatyki
[email protected]
6
Strony kodowe
ASCII c.d.
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
[email protected]
Wstęp do Informatyki
ISO/IEC 8859
ISO/IEC 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
[email protected]
[email protected]
•
Stosowane standardy ISO 8859:
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
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
[email protected]
7
Windows-1250
Wstęp do Informatyki
[email protected]
ASCII – standard ograniczony + kłopoty ze stronami kodowymi
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.).
Standard ISO/IEC 10646 definiuje znaki za pomocą 4 bajtów (32 bity)
[email protected]
i e ń
znak o kodzie > 128
litera ń w kodzie cp1250
ISO/IEC 10646 - Universal Character
Set
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
D z
ISO 8859-2
• 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
• 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
Windows-1250
ASCII w praktyce
i
cr
lf
n o
c .
spacja
•Problem z wyświetlaniem polskich znaków:
•Tekst zapisany w standardzie ISO-8859-2:
•Tekst wyświetlony w Notatniku systemu Windows (Windows-1250):
Wstęp do Informatyki
[email protected]
Unicode (Unikod)
Równolegle z ISO/IEC 10646 opracowano inny standard: przyporządkowanie
znaków, kodowanie danych, zasady typografii i składu – UNICODE.
Od 1991 ISO/IEC 10646 oraz UNICODE posługują się tym samym zestawem
znaków.
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.
Plane
0
1
2
3 to 13
14
15
16
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
[email protected]
8
Unicode – kodowanie znaków UCS
Basic Multilingual Plane
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
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
Greek
Cyrillic
Phonetic Extensions
Phonetic Extensions Supplement
Latin Extended Additional
Greek Extended
• UCS-2
Standardy Kolejnością ułoŜenia
bajtów w słowie:
Little Endian – pierwszy jest mniej
znaczący bajt (Windows)
Big Endian – pierwszy jest
bardziej znaczący bajt
Unicode – kodowanie znaków UTF
• Metody kodowania UTF (Unicode Transformation Format)
– UTF-7 – kodowanie opracowane na potrzeby poczty elektronicznej
(załączniki MIME), mało popularne kodowanie 7-bitowe
– UTF-8 - kodowanie 8-bitowe ze zmienną długością kodowania,
zgodne z ASCII
– UTF-16 - kodowanie 16-bitowe ze zmienną długością kodowania
– 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
Wstęp do Informatyki
[email protected]
Unicode - kodowanie UTF-8
• UTF-8 - system kodowania ze zmienną długością reprezentacji znaku
• Znaki Unikodu są mapowane na ciągi bajtów
- bity 0xxxxxxx
- bity 110xxxxx
- bity 1110xxxx
- bity 11110xxx
10xxxxxx
– 0x200000 do 0x3FFFFFF - bity 111110xx
10xxxxxx
– 0x4000000 do 0x7FFFFFFF - bity 1111110x
10xxxxxx
–
–
–
–
0x00 do 0x7F
0x80 do 0x7FF
0x800 do 0xFFFF
0x10000 do 0x1FFFFF
10xxxxxx
10xxxxxx 10xxxxxx
10xxxxxx 10xxxxxx
10xxxxxx 10xxxxxx
10xxxxxx
10xxxxxx 10xxxxxx
10xxxxxx 10xxxxxx
• Z powodu takiego kodowania ten sam znak moŜna zapisać na kilka
sposobów, np znak ‘a’:
Standard UTF-8 przewiduje, Ŝe
– 01100001
– 11000001 10100001
– 11100000 10000001 10100001
Wstęp do Informatyki
[email protected]
kaŜdy program MUSI odrzucać
wszystkie znaki zapisane
sekwencjami dłuŜszymi niŜ
minimalna.
[email protected]
Unicode - kodowanie UTF-8
• Zalety kodowania UTF-8
– kaŜdy tekst w ASCII jest tekstem w UTF-8, a Ŝaden znak spoza ASCII nie
zawiera bajtu z ASCII
– typowy tekst ISO-Latin-x rozrasta się w bardzo niewielkim stopniu po
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
– Nie ma problemów z little endian vs. big endian.
• Wady kodowania UTF-8
– znaki alfabetów niełacińskich zajmują po kilka bajtów 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
Wstęp do Informatyki
[email protected]
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
i
odchylenie
membrany
polska
litera ś
polska
litera Ŝ
spacja
ś
Próbkowanie: pomiar wielkości ciągłej w
określonych momentach czasowych.
czas
Wstęp do Informatyki
Wstęp do Informatyki
[email protected]
Kodowanie dźwięku
Częstotliwość próbkowania musi być większa
od największej częstotliwości zmian
próbkowanego sygnału.
[email protected]
Kodowanie obrazu
Układ rejestracji dźwięku
Obraz monochromatyczny – punkt obrazu kodowany 1 bitem.
RAM
przetwornik
analog/cyfra
pamięć
Układ odtwarzania dźwięku
RAM
DAC
pamięć
przetwornik
cyfra/analog
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
[email protected]
pamięć obrazu:
16 linii x 2B = 32B
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
linie obrazu
mikrofon
ADC
1 bajt
1 bajt
długość linii obrazu
Wstęp do Informatyki
[email protected]
10
Kodowanie obrazu
Kompresja danych
gł
ęb
ko ok
lo oś
ru ć
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
rozdzielczość
pionowa
pamięć obrazu:
16p x 16p x 1B = 256B
640x480x8bpp = 300kB
1024x768x8bpp=768kB
640x480x24bpp = 900kB
1024x768x24bpp=2.25MB
[email protected]
Kompresja bezstratna
Najczęściej uŜywane metody kompresji bezstratnej to:
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” .
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.
Wstęp do Informatyki
Kompresja bezstratna:
moŜliwe jest odtworzenie oryginalnej postaci danych
(pakowanie programów, tekstów, grafiki)
ZIP, GIF
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
bpp – bits per pixel
rozdzielczość pozioma
Wstęp do Informatyki
Kompresja danych – zmniejszanie rozmiaru danych poprzez
usuwanie redundancji (nadmiaru informacji).
[email protected]
Wstęp do Informatyki
[email protected]
Kompresja stratna
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.
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.
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ę).
Obraz:
•JPEG,
Video:
•DivX, MPEG, Real Video
Audio:
•MP3, OGG Vorbis, Real Audio,
Wstęp do Informatyki
[email protected]
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
[email protected]
Wstęp do Informatyki
[email protected]
12

Podobne dokumenty