Krok nie jest obowiązkowy. podzielenie każdego kanału obrazka na bloki 8×8. W przypadku kanałów kolorów, jest to 8×8 rzeczywistych danych, a więc zwykle 16×8. 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. Tutaj właśnie następuje utrata precyzji 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.