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