Кодирование, основанное на ДКП, представляет собой основу всех стандартов сжатия изображений. Преобразование выполняется для блоков из N×N точек, причем в стандартах принято N = 8. Такой размер блоков выбран по следующим причинам. С точки зрения аппаратной и программной реализации размер блока 8×8 не накладывает существенных ограничений на размер требуемой памяти, вычислительная сложность ДКП для блока 8×8 также является приемлемой для большинства вычислительных платформ.
Выбор ДКП в качестве стандартного решения диктуется следующими причинами:
· для изображений с сильно коррелированными отсчетами (коэффициент корреляции >0.7) эффективность ДКП в смысле компактности представления данных близка к преобразованию Карунена-Лоэва,
· ДКП представляет собой ортогональное сепарабельное преобразование, не зависящее от изображения, поэтому его вычислительная сложность относительно невелика.
ДКП для блоков 8×8 может быть записано в виде:
(1)
где
Обратное ДКП может быть записано как
(2)
Отметим, что с вычислительной точки зрения прямое и обратное ДКП почти одинаковы, т.е. при аппаратной реализации одни и те же модули могут быть использованы при выполнении прямого и обратного преобразования.
Важным свойством двумерного прямого и обратного ДКП преобразований является их сепарабельность. Одномерное ДКП может быть вычислено по формуле
(3)
Из (1) и (3) следует, что двумерное ДКП может быть представлено как
(4)
Пусть
обозначает выход одномерного ДКП строк X. Таким образом, двумерное ДКП может быть получено вначале выполнением одномерного ДКП строк X со следующим за ним одномерным ДКП столбцов Z. В матричной форме преобразование
можно теперь записать в виде последовательности преобразований:
Система кодирования, использующая ДКП, выполняет следующие вычисления:
1. Вычисляется ДКП для каждого блока изображения, состоящего из 8×8 точек. Результатом преобразования является блок из 8×8 коэффициентов ДКП.
2. При кодировании с потерей качества далее следует операция квантования, результатом которой является устранение наименее информативных коэффициентов ДКП.
3. Ненулевые квантованные значения ykl сжимаются с использованием неравномерного кодирования без потерь.
В большинстве приложений используется кодирование длин серий со следующим за ним кодированием кодом Хаффмана.