Kompresja danych – proces polegający na zmianie sposobu zapisu informacji w sposób, który pozwala na zmniejszenie redundancji i tym samym objętości zbioru. Ma ona na celu wyrażenie tego samego zestawu informacji, przy użyciu mniejszej liczby bitów. Pojęciem, które wyraża działanie przeciwne do kompresji, jest dekompresja.
Wyróżniamy kompresję bezstratną, czyli taką, w której postaci skompresowanej można odzyskać identyczną postać pierwotną , a także stratną – w której takie odzyskanie jest niemożliwe. Pozwala ona jednak zachować główne właściwości, które nas interesują.
Istnieje podział algorytmów kompresji na algorytmy zastosowania ogólnego oraz algorytmy do danego typu danych. Z definicji nie istnieją algorytmy kompresji stratnej zastosowania ogólnego, z powodu konieczności zachowania różnych właściwości dla różnych typów danych. Przykładem może być tutaj fakt, że 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.
Większość algorytmów bezstratnych stanowią algorytmy zastosowania ogólnego oraz ich drobne przeróbki, umożliwiające lepsze działanie z określonymi typami danych. Nawet drobne poprawki mogą mieć znaczenie w polepszaniu wyników dla pewnych typów danych. Kompresja bezstratna używana jest często jako ostatnia faza przez algorytmy kompresji stratnej. W takiej sytuacji, zadaniem poprzednich faz jest nie tyle kompresja, ile przygotowanie danych do łatwiejszej kompresji.
Wyróżniamy systemy kompresji stratnej obrazu: JPEG , JPEG2000 , MPEG-1, MPEG-2, MPEG-4 H.261, H.263 , Quicktime , Windows Media Video (wmv), RealVideo oraz systemy kompresji stratnej dźwięku: Vorbis (Ogg), A/52 (AC3) MP1, MP2, MP3 , AAC, Musepack (mpc), Windows Media Audio (wma), ATRAC (używany w Minidisc).