Kompresja stratna - Google

Kompresja stratna

Z Wikipedii

Skocz do: nawigacji, szukaj

Kompresja stratna to metody zmniejszania ilości bitów potrzebnych do wyrażenia danej informacji, które nie dają gwarancji, że odtworzona informacja będzie identyczna z oryginałem. Dla niektórych danych algorytm kompresji stratnej może odtworzyć informację w sposób identyczny.

Kompresja stratna jest możliwa ze względu na sposób działania ludzkich zmysłów, tj. wyższą wartość pewnych części danych nad innymi. Algorytmy kompresji stratnej zazwyczaj posługują się modelami psychoakustycznymi, 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. Ilość odrzucanych danych jest zazwyczaj określana przez stopień kompresji.

Z tego też względu nie istnieją algorytmy kompresji stratnej, które można stosować do dowolnego typu danych. Np. kompresja stratna plików wykonywalnych byłaby praktycznie niemożliwa do zastosowania, gdyż nie jest to informacja odczytywana przez zmysły, a przez maszynę.

Zwykle kompresjÄ™ stratnÄ… stosuje siÄ™ do:

  • obrazków
  • dźwiÄ™ków
  • ruchomych obrazów, np. w filmie

Przy danych audiowizualnych zazwyczaj kompresuje się osobno dźwięk, a osobno obraz.

Prostym przykładem kompresji stratnej jest np. zachowanie tylko co drugiego piksela, lub odrzucenie 2 najmniej istotnych bitów. Takie metody jednak nie dają zazwyczaj tak zadowalających rezultatów jak oparte na modelach psychozmysłowych.

Spis treści

[edytuj] Najpopularniejsze algorytmy kompresji

[edytuj] Obraz

  • JPEG, podstawa algorytmu MPEG, oparty na DCT i dajÄ…cy relatywnie sÅ‚abe rezultaty.
  • JPEG2000, oparty na falkach, dajÄ…cy znacznie lepsze wyniki

[edytuj] Video

  • DivX/XviD, przy odpowiednich warunkach może skompresować zawartość pÅ‚yty DVD na zwykłą CD, bez widocznych różnic.
  • MPEG, jednÄ… z jego odmian stosuje siÄ™ przy filmach na DVD, bardzo wysoka jakość, połączona z wiÄ™kszymi objÄ™toÅ›ciowo plikami (100MB DivX = ok.350MB MPEG).
  • Real Video, niskÄ… jakość obrazu rekompensuje maÅ‚a objÄ™tość dziÄ™ki czemu wykorzystywany jest przy transmisjach na żywo.

[edytuj] Dźwięk

  • MP3, najpopularniejsze kodowanie stratne audio, oparte na MDCT, stosuje model psychoakustyczny Instytutu Fraunhoffera i firmy Tomphson.
  • Ogg Vorbis, oparte na MDCT
  • Real Audio, podobnie jak Real Video, rekompensuje straty jakoÅ›ci małą objÄ™toÅ›ciÄ…, jest stosowany głównie do transmisji na żywo.

[edytuj] Kompresja obrazków

[edytuj] JPEG

Najbardziej powszechnym algorytmem kompresji obrazów jest JPEG. Wiele rozwiązań użytych w JPEG jest używanych także w innych algorytmach, więc warto je tutaj omówić. Kolejne kroki algorytmu JPEG to:

  • zamiana przestrzeni kolorów z RGB na kanaÅ‚ jasnoÅ›ci i dwa kanaÅ‚y koloru. Ludzie znacznie dokÅ‚adniej postrzegajÄ… drobne różnice jasnoÅ›ci od drobnych różnic barwy, a wiÄ™c użyteczne jest tutaj użycie różnych parametrów kompresji. Krok nie jest obowiÄ…zkowy.
  • obniżenie rozdzielczoÅ›ci kanałów koloru, zwykle odrzuca siÄ™ co drugÄ… wartość wzdÅ‚uż osi poziomej i każdÄ… na pionowej, choć możliwe sÄ… też inne ustawienia. Tak radykalne ciÄ™cie danych nieznacznie wpÅ‚ywa na jakość, ponieważ rozdzielczość postrzegania kolorów przez ludzkie oko jest sÅ‚aba. Krok nie jest obowiÄ…zkowy.
  • podzielenie każdego kanaÅ‚u obrazka na bloki 8x8. W przypadku kanałów kolorów, jest to 8x8 aktualnych danych, a wiÄ™c zwykle 16x8.
  • transformata kosinusowa każdego z bloków. Zamiast wartoÅ›ci pikseli mamy teraz Å›redniÄ… wartość wewnÄ…trz bloku oraz czÄ™stotliwoÅ›ci zmian wewnÄ…trz bloku, obie wyrażone przez liczby zmiennoprzecinkowe. Transformata DCT jest odwracalna, wiÄ™c na razie nie tracimy żadnych danych.
  • ZastÄ…pienie Å›rednich wartoÅ›ci bloków przez różnice wobec wartoÅ›ci poprzedniej. Poprawia to w pewnym stopniu współczynnik kompresji.
  • Kwantyzacja, czyli zastÄ…pienie danych zmiennoprzecinkowych przez liczby caÅ‚kowite. To wÅ‚aÅ›nie tutaj wystÄ™pujÄ… straty danych. Zależnie od parametrów kompresora, odrzuca siÄ™ mniej lub wiÄ™cej danych. Zasadniczo wiÄ™ksza dokÅ‚adność jest stosowana do danych dotyczÄ…cych niskich czÄ™stotliwoÅ›ci niż wysokich kodowanych algorytmem Huffmana.

Użyta transformata powoduje efekty blokowe w przypadku mocno skompresowanych obrazków.

[edytuj] Inne metody

Inne algorytmy kompresji obrazków opierają się głównie na:

  • użyciu innej transformaty
    • zmodyfikowanej transformaty kosinusowej, która nie powoduje efektu bloków, a wiÄ™c jest korzystniejsza w przypadku mocno skompresowanych obrazków. Nie odbiega ona wynikami znaczÄ…co od DCT w przypadku obrazów o Å›redniej i niskiej kompresji.
    • transformat falkowych - mogÄ… one dać znacznie lepsze wyniki. Zazwyczaj nie powodujÄ… efektu bloków.
  • użyciu innego algorytmu kompresji bezstratnej
  • kompresja wszystkich kanałów naraz, w szczególnoÅ›ci ich wspólna kwantyzacja. Daje lepsze wyniki jeÅ›li wartoÅ›ci w różnych kanaÅ‚ach sÄ… mocno skorelowane.

[edytuj] Kompresja fraktalna

Zupełnie inną metodą jest kompresja fraktalna. Opisuje ona obraz w postaci parametrów funkcji fraktalnej, która daje w efekcie przybliżoną postać obrazu. Dotychczas kompresja fraktalna daje znacznie słabszą jakość w przypadku obrazów o niskim i średnim stopniu kompresji. Dla obrazów silnie skompresowanych może dawać lepsze rezultaty niż JPEG, przede wszystkim nie powoduje efektu bloków, jednak są one słabsze od znacznie prostszych metod opartych na MDCT czy falkach. Nic nie wskazuje na to, że kompresja fraktalna znajdzie szersze zastosowanie.

[edytuj] Kompresja ruchomych obrazów

Najprostsze systemy kompresji ruchomych obrazów po prostu kompresują wszystkie klatki osobno. Jest to bardzo nieefektywne, ponieważ kolejne klatki są zazwyczaj do siebie bardzo podobne.

Zazwyczaj używa się zestawu klatek kluczowych, które kompresuje się tak samo jak samodzielne obrazki. Pozostałe klatki kompresuje się natomiast korzystając z danych z klatek poprzednich. Lepsze wyniki dałoby wykorzystanie danych o poprzednich klatkach przy kompresji każdej klatki, jednak utrudniało by to znacznie przewijanie.

Prostym sposobem wykorzystania danych o poprzednich klatkach jest kodowanie różnicy wartości pikseli o tym samym położeniu zamiast samych wartości. Tym sposobem można dobrze skompresować sceny w których kamera jest nieruchoma, jednak nie da to znaczących efektów w scenach z ruchomą kamerą. Zwykle wykorzystuje się więc różne rodzaje kompensacji ruchu. Np. dla każdego bloku podaje się który niewielki wektor przesunięcia, np. <+2,-1>, czyli zamiast tego samego bloku klatki poprzedniej używamy bloku o 2 piksele w prawo i jeden w górę (czy też w lewo i w dół).

Inną ważną techniką wykorzystywaną przy kompresji ruchomych obrazów jest zmienna przepływność (variable bitrate), czyli używanie różnej dokładności dla różnych klatek. Jest wiele sposobów dobierania takich różnic, algorytmy wyboru jakości zwykle są cechą bardziej enkodera niż formatu. Często enkodery stosują metody dwu-przejazdowe, pierwszy przejazd po danych zbiera informacje potrzebne algorytmowi zmiennej przepływności, a dopiero drugi kompresuje dane.

Ruchome obrazy są zazwyczaj mocno skompresowane, a więc dla kodeka MPEG, który używa podobnie jak JPEG transformaty kosinusowej, efekty blokowe mogą być bardzo uciążliwe.

[edytuj] Kompresja dźwięku

Dwa najpopularniejsze publicznie dostępne algorytmy - MP3 i Vorbis, używają podobnych technik. Warto tu omówić algorytm Vorbis, ponieważ używa on bardziej efektywnych rozwiązań.

  • StrumieÅ„ jest dzielony na okna. Okna wystÄ™pujÄ… w dwóch rozmiarach - duże (zwykle 2048 próbek) i maÅ‚e (zwykle 256 próbek). MaÅ‚e sÅ‚użą do przedstawienia szybko zmieniajÄ…cego siÄ™ dźwiÄ™ku oraz nagÅ‚ego wzrostu intensywnoÅ›ci dźwiÄ™ku w danej czÄ™stotliwoÅ›ci. Nie używa siÄ™ ich w przypadku spadków intensywnoÅ›ci, ponieważ ludzkie ucho jest na nie znacznie mniej czuÅ‚e. Okna nie sÄ… po prostu grupÄ… kolejnych wartoÅ›ci natężenia dźwiÄ™ku. Okna częściowo siÄ™ nakrywajÄ… i jedna wartość należy w tych obszarach częściowo do kilku okien. Dla obszarów zachodzenia na siebie okien, dana wartość należy do lewego okna w stopniu sin(pi/2 × sin2(pi/2 × t)), gdzie t=0 dla poczÄ…tku obszaru i t=1 dla jego koÅ„ca.
  • Na każdym oknie jest przeprowadzana zmodyfikowana transformata kosinusowa. Zamiast poszczególnych wartoÅ›ci mamy teraz w bloku widmo parametrów MDCT czyli (pomijajÄ…c szczegóły) czÄ™stotliwoÅ›ci.
  • Dane z MDCT sÄ… upraszczane zależnie od parametrów kompresji zgodnie z modelem psychoakustycznym.
  • Dane o energii przypadajÄ…cej na danÄ… czÄ™stotliwość sÄ… skalowane, co umożliwia równie dobrÄ… kompresje gÅ‚oÅ›nych jak i cichych dźwiÄ™ków.
  • Dane sÄ… kwantyfikowane i kompresowane bezstratnie.

[edytuj] Zobacz też


Nanorurkowa waga pojedynczych atomów
Nanorurka węglowa o podwójnej ściance może służyć, jako waga za pomocą której możliwe jest określanie masy pojedynczych atomów lub cząsteczek - informuje "Nature Nanotechnology".
Nie nadużywać komórek - mogą powodować raka
Jeden z czołowych amerykańskich instytutów onkologicznych ostrzegł swoich pracowników przed nadużywaniem telefonów komórkowych. Ostrzeżenie oparto na wstępnych danych, dotyczących związku pomiędzy polem elektromagnetycznym a rakiem mózgu.
Waga noworodka ma wpływ na jego zdrowie
U kilkuletnich chłopców, którzy mieli niską wagę przy urodzeniu można zaobserwować zmiany w naczyniach krwionośnych, które mają związek z kłopotami zdrowotnymi w późniejszym życiu - informuje "European Heart Journal".
Znaleziska sprzed ponad 800 lat w Kanadzie
Archeolodzy odkryli na stanowisku w środkowej Kanadzie odcisk ludzkiej stopy, liczne naczynia i groty strzał sprzed około 800 lat - donosi serwis internetowy People's Daily Online.
"Elektrownia jÄ…drowa najlepsza dla Polski"
Za 12 lat w Polsce może zabraknąć prądu - ostrzega w swoim raporcie Money.pl. Po 2020 roku zapotrzebowanie na energię elektryczną przekroczy jej produkcję.
Linki: Strona g³ówna