Отношения между DCT и PCA

12

У меня есть базовые знания по реализации 2DT 8x8 DCT, используемого в сжатии изображений и видео. Читая о Принципиальном компонентном анализе, я вижу много сходства, хотя PCA явно более общий. Когда я читал о DCT ранее, он всегда был представлен в связи с DFT. Поэтому мой вопрос заключается в том, как можно получить DCT с точки зрения PCA? (достаточно даже подробного объяснения)

Большое спасибо

Trican
источник

Ответы:

19

Основное различие между DCT и PCA (точнее, представлением набора данных в базисе, образованном собственными векторами его корреляционной матрицы - также известного как преобразование Карвунена-Лоэва ) состоит в том, что PCA должен быть определен относительно данного набора данных (из которого оценивается корреляционная матрица), тогда как DCT является «абсолютным» и определяется только размером входного сигнала. Это делает PCA «адаптивным» преобразованием, в то время как DCT не зависит от данных.

Можно задаться вопросом, почему PCA не используется чаще при сжатии изображений или аудио из-за его адаптивности. Есть две причины:

  1. Представьте себе кодировщик, вычисляющий PCA набора данных и кодирующий коэффициенты. Чтобы восстановить набор данных, декодеру понадобятся не только сами коэффициенты, но и матрица преобразования (это зависит от данных, к которым у него нет доступа!). DCT или любое другое независимое от данных преобразование может быть менее эффективным при удалении статистических зависимостей во входных данных, но матрица преобразования заранее известна как кодеру, так и декодеру без необходимости ее передачи. «Достаточно хорошее» преобразование, которое требует мало дополнительной информации, иногда лучше, чем оптимальное преобразование, которое требует дополнительной загрузки дополнительной информации ...

  2. NN×64Матрица со светимостью этих плиток. Вычислите PCA на этих данных и наметьте основные компоненты, которые будут оценены. Это очень познавательный эксперимент! Существует очень хорошая вероятность того, что большинство собственных векторов с более высоким рейтингом на самом деле будут выглядеть как модулированные синусоидальные паттерны в основе DCT. Это означает, что для достаточно большого и общего набора мозаичных изображений DCT является очень хорошим приближением собственных значений. То же самое было проверено и для аудио, где собственное основание для энергии лог-сигнала в полосах частот, расположенных на небольшом расстоянии, оцененное для большого объема аудиозаписей, близко к основе DCT (следовательно, использование DCT в качестве преобразования декорреляции при расчете MFCC).

pichenettes
источник
1
Интересно, однако, не может ли быть создан другой базис на основе «обычной» статистики изображений для начала и тех, которые используются вместо DCT? Я полагаю, что такая основа не будет так хорошо, как PCA, но лучше, чем DCT нет?
Spacey
@pichenettes - что касается DCT, какие изображения обычно увеличиваются по горизонтали и вертикали (например, goo.gl/XLMt5 )? Это изображение-представление базисных функций DCT? Если это так, если я рассчитал PCA / собственные векторы по ковариационной матрице этих изображений - даст ли это по существу матрицу коэффициентов DCT?
Trican
Кстати @pichenettes большое спасибо за ваш проницательный ответ. Я знал о пункте 1, но на самом деле не рассматривал пункт 2.
Трайкан
1
@ Мохаммед: это хороший вопрос, и я не знаю ответа. Я вижу преимущества в использовании DCT: легче писать спецификации (легче напечатать «наше преобразование - это функция закрытой формы», чем «наше преобразование - это матрица 64x64, опубликованная в приложении»), заседаний комитетов по стандартизации по поводу того, какой набор данных обучать преобразование, меньше таблиц поиска для встраивания в ПЗУ декодеров и, вероятно, «симметрии» в матрице преобразования, которые делают возможным его аппаратное ускорение по сравнению с жестким умножением матрицы 64x64 - эти преимущества могут перевесить маржинальные коэффициенты сжатия.
pichenettes
1
@trican: изображение, на которое вы ссылаетесь, представляет двумерную основу DCT для плиток 8x8. Каждая из 64 маленьких плиток является базовой функцией. Если вы возьмете большую коллекцию плиток 8х8 из реальных изображений и проведете PCA с данными, то полученное вами собственное основание будет очень похоже на это.
pichenettes