Как DCT (Discrete Cosine Ttransform) помогает сжимать звук (или любые волнообразные данные)? В соответствии с DCT-преобразованием в результате получается N входных значений и N выходных значений. Где достигается сжатие и как?
ДКП-сжатие
Ответы (3)
Подумайте о последовательности 1,2,3,4,5,.. Она вообще не будет сжиматься с помощью LZ (zip), потому что нет повторений. Теперь закодируйте последовательность в виде различий: 1,1,1,1,1,... Теперь Zip сожмет ее на 99%. Каждый алгоритм хорошо обнаруживает определенный шаблон. DCT помогает кодировать данные в формат, который хорошо сжимается.
DCT не сжимает. Размер выхода DCT такой же, как размер входного сигнала. Однако, что делает DCT, так это сжимает энергию сигнала. Грубо говоря, вы получаете небольшое подмножество больших коэффициентов и множество маленьких коэффициентов в частотной области. Эта ситуация идеальна для энтропийного кодировщика, который может удалить избыточность в выходных данных DCT, тем самым обеспечивая сжатие.
ИМО - это анализ повторений определенных значений входного сигнала (волны), представленного в виде частот (частота + амплитуда + повторение). Например, если у вас много низких шумов в аудио (басы), DCT выдаст много значений (= похожих значений) с низкими частотами (т.е. подумайте о полосе эквалайзера). Это можно использовать для любого алгоритма сжатия. А также DCT без потерь и обратимый.