Сжатие DCT

#compression #signal-processing #dct

#сжатие #обработка сигнала #dct

Вопрос:

Как DCT (Discrete Cosine Transform) помогает сжимать звук (или любые волнообразные данные)? В соответствии с преобразованием DCT в результате получается N входных значений и N выходных значений. Где достигается сжатие и как?

Комментарии:

1. Этот вопрос напрямую не связан с программированием; он больше касается обработки сигналов и математики. Таким образом, вам следует рассмотреть возможность переноса его на обмен стеками обработки сигналов или на математический обмен стеками .

Ответ №1:

DCT не выполняет сжатие. Размер выходного сигнала DCT такой же, как размер входного сигнала. Однако DCT выполняет сжатие энергии сигнала. Грубо говоря, в итоге вы получаете небольшое подмножество больших коэффициентов и множество малых коэффициентов в частотной области. Эта ситуация идеально подходит для энтропийного кодера, который может устранить избыточность на выходе DCT, обеспечивая таким образом сжатие.

Комментарии:

1. Четкое объяснение … короткое и приятное для ответа

Ответ №2:

Подумайте о последовательности 1,2,3,4,5,.. Он вообще не будет сжиматься с использованием LZ (zip), потому что повторение равно нулю. Теперь закодируйте последовательность как различия: 1,1,1,1,1, … Zip теперь сжмет ее на 99%. Каждый алгоритм хорошо распознает определенный шаблон. DCT помогает кодировать данные в формат, который хорошо сжимается.

Ответ №3:

IMO это анализ повторений определенных значений входного сигнала (волны), представленных в виде частот (frequence amplitude повторение). Например, если у вас много низких шумов в аудио (бас), DCT выдаст много значений (= похожих значений) с низкими частотами (т. Е. Подумайте о диапазоне эквалайзера). Это может быть использовано для любого алгоритма сжатия. А также DCT является без потерь и обратимым.

Комментарии:

1. Без потерь? Не могли бы вы, пожалуйста, дать несколько ссылок на написанные вами алгоритмы?

2. Возможно, это с потерями, но если вы можете округлить коэффициенты, вы можете немного сжать: en.wikipedia.org/wiki/Discrete_cosine_transform

3. Я попробовал это DCT. Просто преобразование в частотную область и снова во временную область. Конечный результат отличался от исходного..

4. Странно! Вы смотрели на нижнюю часть страницы en.wikipedia.org/wiki/Discrete_cosine_transform ? Существует DCT для растрового изображения размером 8×8?