Матрица дискретного косинусного преобразования
D = dctmtx(n)
Если у вас есть n
-by-n
изображение, A
, то
является DCT столбцов D*A
A
, и D'*A
является обратным DCT столбцов A
.
Двумерный DCT A
может быть вычислен как D*A*D'
. Это вычисление иногда быстрее, чем использование dct2
, особенно если вы вычисляете большое количество маленького DCTs, потому что D
должен быть определен только однажды.
Например, в сжатии JPEG, DCT каждого 8 8 блокируется, вычисляется. Чтобы выполнить это вычисление, используйте dctmtx
, чтобы определить D
, и затем вычислить каждый DCT с помощью D*A*D'
(где A
, каждый 8 8 блокируется). Это быстрее, чем вызов dct2
для каждого отдельного блока.