Dyskretna transformata kosinusowa
Z Wikipedii
DCT (ang. discrete cosine transform, czyli dyskretna transformata kosinusowa) to jedna z najpopularniejszych blokowych transformat danych. Jest szczególnie popularna w stratnej kompresji danych.
DCT przekształca skończony ciąg N liczb rzeczywistych lub zespolonych w ciąg liczb (rzeczywistych lub zespolonych) zgodnie z zależnościami:
G(k) są nazywane współczynnikami DCT. Definiuje się również odwrotną dyskretną transformatę kosinusową (IDCT):
Zaletą transformaty jest to, że większość współczynników jest zwykle bliska 0 – po kwantyzacji wyzerują się, co umożliwi lepszą kompresję danych.
Chociaż DCT jest transformatą 1-wymiarową, łatwo można ją składać, dzięki czemu działa również na blokach 2- lub więcej wymiarowych.
[edytuj] DCT w multimediach
DCT jest używana m.in. w kompresji JPEG i MPEG. Standardowy algorytm to podział obrazka na bloki o stałych rozmiarach (np. 8x8), transformatę tych bloków, kwantyzację i kompresję bezstratną.
Głównym problemem kodowania transformatowego opartego na blokach DCT są gwałtowne skoki wartości na granicach zrekonstruowanych bloków (tzw. efekt blokowy). Jednym ze sposobów minimalizacji tego zjawiska jest używanie większych bloków (w przypadku mocno skompresowanych obrazków używane przez JPEG bloki 8x8 są stanowczo za małe, 16x16 lub nawet 32x32 byłyby bardziej odpowiednie). Innym sposobem jest używanie zmodyfikowanej dyskretnej transformaty kosinusowej (MDCT), która używa nachodzących na siebie bloków lub transformat falkowych.
Ze względu na to, że w przypadku dźwięków efekty blokowe byłyby słyszalne jako trzaski, DCT praktycznie nie jest tam używana, natomiast bardzo popularna jest w tym przypadku transformata MDCT.