Квантование , используемое в обработке изображений , представляет собой метод сжатия с потерями , достигаемый путем сжатия диапазона значений до одного квантового (дискретного) значения. Когда количество дискретных символов в данном потоке уменьшается, поток становится более сжимаемым. Например, уменьшение количества цветов, необходимых для представления цифрового изображения, позволяет уменьшить размер его файла. Конкретные приложения включают квантование данных DCT в JPEG и квантование данных DWT в JPEG 2000 .
Квантование цвета уменьшает количество цветов, используемых в изображении; это важно для отображения изображений на устройствах, которые поддерживают ограниченное количество цветов, и для эффективного сжатия определенных видов изображений. Большинство редакторов растровых изображений и многие операционные системы имеют встроенную поддержку квантования цвета. Популярные современные алгоритмы квантования цвета включают алгоритм ближайшего цвета (для фиксированных палитр), алгоритм медианного разреза и алгоритм на основе октодеревьев .
Обычно квантование цвета сочетают с дизерингом , чтобы создать впечатление большего количества цветов и устранить артефакты полосатости .
Квантование в оттенках серого, также известное как квантование уровней серого, представляет собой процесс цифровой обработки изображений, который включает в себя сокращение количества уникальных уровней интенсивности (оттенков серого) в изображении с сохранением его основной визуальной информации. Этот метод обычно используется для упрощения изображений, снижения требований к хранению и упрощения операций обработки. При квантовании в оттенках серого изображение с N уровнями интенсивности преобразуется в изображение с уменьшенным количеством уровней, обычно L уровнями, где L < N. Процесс включает в себя сопоставление исходного значения интенсивности каждого пикселя с одним из новых уровней интенсивности. Одним из простейших методов квантования в оттенках серого является равномерное квантование, при котором диапазон интенсивности делится на равные интервалы, и каждый интервал представлен одним значением интенсивности. Допустим, у нас есть изображение с уровнями интенсивности в диапазоне от 0 до 255 (8-битная шкала серого). Если мы хотим квантовать его до 4 уровней, интервалы будут следующими: [0-63], [64-127], [128-191] и [192-255]. Каждый интервал будет представлен средним значением интенсивности, что даст уровни интенсивности 31, 95, 159 и 223 соответственно.
Формула равномерного квантования:
Где:
Давайте квантуем исходное значение интенсивности 147 до 3 уровней интенсивности.
Исходное значение интенсивности: x =147
Желаемые уровни интенсивности: L =3
Сначала нам необходимо рассчитать размер каждого интервала квантования:
Используя формулу равномерного квантования:
Округляя 191,25 до ближайшего целого числа, получаем
Таким образом, квантованное значение интенсивности 147 по 3 уровням равно 191.
Человеческий глаз довольно хорошо видит небольшие различия в яркости на относительно большой площади, но не так хорошо различает точную силу высокочастотного (быстро меняющегося) изменения яркости. Этот факт позволяет сократить объем требуемой информации, игнорируя высокочастотные компоненты. Это делается простым делением каждого компонента в частотной области на константу для этого компонента, а затем округлением до ближайшего целого числа. Это основная операция с потерями во всем процессе. В результате этого обычно бывает так, что многие из высокочастотных компонентов округляются до нуля, а многие из остальных становятся небольшими положительными или отрицательными числами.
Поскольку человеческое зрение более чувствительно к яркости, чем к цветности , можно добиться дальнейшего сжатия, работая в цветовом пространстве, отличном от RGB, которое разделяет эти два пространства (например, YCbCr ), и квантуя каналы по отдельности. [1]
Типичный видеокодек работает, разбивая изображение на дискретные блоки (8×8 пикселей в случае MPEG [1] ). Затем эти блоки могут быть подвергнуты дискретному косинусному преобразованию (DCT) для вычисления частотных компонентов, как по горизонтали, так и по вертикали. [1] Полученный блок (того же размера, что и исходный блок) затем предварительно умножается на код шкалы квантования и делится поэлементно на матрицу квантования, и округляет каждый полученный элемент. Матрица квантования предназначена для обеспечения большего разрешения для более воспринимаемых частотных компонентов по сравнению с менее воспринимаемыми компонентами (обычно более низкие частоты по сравнению с высокими частотами) в дополнение к преобразованию как можно большего количества компонентов в 0, что может быть закодировано с наибольшей эффективностью. Многие видеокодеры (такие как DivX , Xvid и 3ivx ) и стандарты сжатия (такие как MPEG-2 и H.264/AVC ) позволяют использовать пользовательские матрицы. Степень сокращения может варьироваться путем изменения кода шкалы квантователя, занимая гораздо меньшую полосу пропускания, чем полная матрица квантователя. [1]
Это пример матрицы коэффициентов DCT:
Обычная матрица квантования:
Деление матрицы коэффициентов DCT поэлементно на эту матрицу квантования и округление до целых чисел дает:
Например, используя −415 (коэффициент DC) и округляя до ближайшего целого числа
Обычно этот процесс приводит к матрицам со значениями, расположенными в основном в верхнем левом углу (низкая частота). Используя зигзагообразный порядок для группировки ненулевых записей и кодирования длины серии , квантованная матрица может быть сохранена гораздо более эффективно, чем неквантованная версия. [1]
[1]