Матрица дискретного косинусного преобразования
D = dctmtx(n)Если у вас есть n-by-n изображение, A, то является DCT столбцов D*AA, и 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 для каждого отдельного блока.