Kompresja danych (ang. data compression) – opiera się na zmianie sposobu zapisu informacji tak, aby zmniejszyć redundancję oraz tym samym objętość zbioru. Innymi słowy chodzi o wyrażenie tego samego zestawu informacji, lecz za pomocą mniejszej liczby bitów.
Działaniem przeciwnym do kompresji jest dekompresja.
Kompresja stratna oraz bezstratna
Kompresja dzieli się na bezstratną – w której z postaci skompresowanej da się odzyskać identyczną osoba pierwotną oraz stratną – w której takie odzyskanie jest niemożliwe, jednak główne właściwości, które nas interesują, zostają zachowane, np. jeśli kompresowany jest obrazek, nie są w postaci odtworzonej widoczne różnice w stosunku do oryginału. Pomimo to może się już nie nadawać zbyt dobrze np. do dalszej przeróbki czy do wydruku, albowiem w tych zastosowaniach wymaga się zachowania innych właściwości.
Algorytmy kompresji dzieli się na algorytmy zastosowania ogólnego oraz algorytmy do danego typu danych. Z definicji nie są algorytmy kompresji stratnej zastosowania ogólnego, albowiem dla wielorakich typów danych konieczne jest zachowanie wielorakich właściwości. Dla przykładu kompresja dźwięku używa specjalnego modelu psychoakustycznego, który nie ma sensu w zastosowaniu do obrazu, poza bardzo ogólnymi przesłankami dotyczącymi sposobu postrzegania rzeczywistości przez człowieka.
Przeważajaca ilość algorytmów bezstratnych to algorytmy zastosowania ogólnego oraz ich drobne przeróbki, dzięki którym lepiej działają z określonymi typami danych. Nawet drobne poprawki potrafią znacząco polepszyć wyniki dla pewnych typów danych.
Algorytmy kompresji stratnej wielokrotnie jako ostatniej fazy używają kompresji bezstratnej. W takim przypadku poprzednie fazy posiadają za zadanie nie tyle kompresować, ile przygotować dane do łatwiejszej kompresji.
Modele prawdopodobieństw
Algorytmy kompresji używają pewnych modeli prawdopodobieństwa. Są generalnie 2 systemy: modele statyczne oraz modele adaptywne.
Modele statyczne, jeśli nie są znane z góry, są przesyłane przed właściwymi danymi. Koszt przesłania takiego modelu jest bardzo duży oraz wymusza stosowanie jedynie bardzo prostych modeli. To powoduje, że modele statyczne sporadycznie są stosowane. Kompresory są tutaj zwykle wydatnie bardziej złożone niż dekompresory.
Modele adaptywne są wykonywane w miarę przetwarzania danych. Kompresor oraz dekompresor używają tego samego algorytmu do nanoszenia zmian na model w miarę napływania danych. W tym przypadku złożoność kompresorów oraz dekompresorów jest zwykle, choć nie zawsze, podobna. Wadą modeli adaptywnych jest to, że na początku model ten wydatnie odbiega od optymalnego. Jednak możliwość stosowania modeli o dowolnej złożoności, możliwość używania wielorakich modeli do wielorakich obszarów kompresowanych danych oraz niedobór potrzeby przesyłania modelu sprawia, że właściwie całkowicie wyparły one modele statyczne.
Czasami, np. w algorytmie PNG, stosowane są modele pośrednie.
Algorytmy kompresji bezstratnej
Algorytmy wykorzystywane w kompresji stratnej
Systemy kompresji stratnej obrazu
Systemy kompresji stratnej dźwięku
Standardowe zestawy danych do testowania algorytmów kompresji
Sprawdź też
|
Formaty archiwów |
|
| Tylko archiwizacja |
|
|
| Tylko kompresja |
|
|
| Kompresja oraz archiwizacja |
|
|
| Archiwa dystrybucji oraz systemowe |
|
|
|
Formaty kompresji danych audiowizualnych |
|
| Obrazy |
|
|
| Wideo |
|
|
| Dźwięk |
|
|
| Kontenery |
|
|