Перевод фрагмента статьи Paul S. Heckbert Color image quantization for frame buffer display

Автор перевода: Ломовцева О.В.

Первоисточник материала: http://www2.usu.ru/mathem/kadm/dwm/archiv/Texts/Color/HECKBERT.TXT

Библиотека Английская версия

БУФЕРЫ ИЗОБРАЖЕНИЯ И ЦВЕТОВАЯ ПАЛИТРА

Перед описанием технических средств, которые используются при обработке цвета изображений, полезно определить, что мы понимаем под "цветом". Для наших целей, мы определим цвет как сочетанием цветовых составляющих в Красном Зеленом Голубом цветном пространстве: (Cr, Cg, Cb). Каждый компонент цвета - это целое число из интервала [0,255], требующее 8 бит памяти. Это общее представление для цветов в мире обработки изображений. Это не стандарт видео, используемый широковещательным телевидением в США.

БУФЕРЫ ИЗОБРАЖЕНИЯ

Буфер изображения, или память картинки, - это компьютерная память, организованная в прямоугольную матрицу из m x n точек - элементов изображения, или для краткости пикселей. Каждый пиксель требует определенного числа битов, изменяясь от 1 к 24 или больше в высококачественных цветных дисплеях. Мы называем число битов на пиксель как "глубина" буфера изображения.

Общий размер буферов изображения - это m=n=512, в глубине - 8 битов: 512x512x8. Картинка этого размер занимает 256 Кбайт. Когда есть связь с процессором, можно считывать и записывать в буфер изображения, так же, как мы считываем и записываем в стандартную компьютерную память. Главная разница - это то, что эта память сканируется, обычно 30 раз в секунду, чтобы сгенерировать видеокартинку, которая появляется на CRT-мониторе. Увеличенный вид пикселей в цветном изображении показан на рисунке 1. Дальнейшее объяснение буферов изображения, цветные представления, и другие технические средства компьютерной графики могут быть найдены в Newman и Sproull [36].

В настоящее время коммерчески доступны несколько различных архитектур растрового сканирования буфера изображения. Полезно различать два класса цветных буферов изображения: давайте назовем их "отделенный" и "интегрированный". В отделенных буферах изображения есть три независимых памяти для красных, зеленых, и голубых компонентов изображения. Обычно 8 бит используются за элемент изображения (пиксель). Цветная таблица для каждого компонента вставлена между памятью картинки и устройством визуализации для того, чтобы позволить исправить контраст.

Интегрированный цветной буфер изображения, с другой стороны, запоминает единственный номер цвета для каждого пикселя, а не трех отдельных компонентов. В качестве этих чисел цвета, (называемых значениями пикселя) используются как адреса в однозначной цветной таблице. Это "цветовая палитра", которая обеспечивает уровень перенаправления между данными в памяти изображения и фактически представленным изображением. Также, нужно учесть, что порядок цветов в цветовой палитре произволен.

С интегрированным буфером изображения из 3*n бит в пикселе, может быть создан отделенный буфер изображения, имеющий n бит в основе; интегрированный буфер изображения более обобщенный, чем отделенный. К сожалению, память, требуемая для глубокой цветовой палитры буфера изображения, получается запрещенной. 24-разрядная цветовая палитра, встроенная в буфер изображения, если бы оно создавалось, требовало бы как минимум 48 Мбайт памяти. Это делало бы цветовую палитру больше, чем память картинки, которая требовала бы приблизительно 0.8 Мбайт. По этой причине, редко можно встретить буферы изображения с больше, чем 8-9 бит/пкл.

В настоящий момент, отделенные буферы изображения гораздо более распространены, чем объединенные системы в мире обработки изображений, вероятно из-за их простоты и высокого качества изображений. Тем не менее, это может измениться. В данный момент, мелкие, низкого разрешения объединенные графические терминалы, как, например, Apple стоят на пути к рынку домашнего компьютера. Они могут стать гораздо более распространенными, чем огромные буферы изображения, которые находятся в университетах. Если бы это случилось, запрос на программы квантования цветных изображений, конечно, возрос бы.

В основном люди ощущают, что 6-8 бит на компонент необходимо для высокого качества черно-белых изображений. С меньшим, чем 100 уровней квантования, глаз отвлекается на искусственно вызванные края, называемые контурами. Рисунок 2 показывает 2-разрядное квантированное изображение.

Отметьте, что цветовая палитра также позволяет некоторую избыточность. Например, есть много путей представления полностью черного изображения. Один мог бы чернить полную цветовую палитру и заполнять память картинки случайными значениями пикселей, или один мог бы обнулить память картинки и только установить 0-й слот цветовой карты, чтобы быть черным (R=G=B=0).

ТЕКУЩИЕ ТЕХНИЧЕСКИЕ СРЕДСТВА:

Алгоритмы, приведенные в разделе IV, были осуществлены для растрового представления изображения в Ramtek 9300 в AMG в MIT. Это - объединение 9-разрядных систем с 24-разрядными цветами в цветовой палитре. Это подразумевает, что цветовая палитра (также называемая цветовой матрицей) является таблицей 9x24: 9 бит на входе и 24 на выходе. Цветовые карты для Ramtek требуют 2K памяти. Разрешение памяти этой картинки - это пиксели m=640 линий по горизонтально n=480 по вертикально, или всего N=m x n= 307,200 пикселей.

Разделение цветных изображений исходит от нескольких источников: фотографии, преобразованные в цифровую форму vidicon, через красные, зеленые и голубые фильтры, оцифрованные видео и изображения из других лабораторий, записанных на магнитной ленте. Программы квантования, описанные ниже, требуют три 8-разрядных отделения и квантования до 8 или 9.

ОПТИМИЗАЦИЯ ЦВЕТОВОЙ ПАЛИТРЫ

Когда изображение отквантовано, каждый из 3-х имеющихся цветов должен перекодироваться в единичное значение пикселя. В AMG имеется 307,200 24-разрядных цветов в исходном изображении, каждый из которых должен преобразовываться в значение пикселя. Это шаг квантования, который будет сделан один раз (в программном обеспечении) перед сохранением изображения на диске или ленте. Когда изображение загружено в буфер изображения, дисплейный процессор в буфере изображения производит декодирование для нас посредством цветовой карты. Это преобразовывает наши цветовые числа (значения пикселя) обратно в 3-х-цветный видео сигнал.

Мы производим квантование изображения для приближения к 24-разрядному источнику как можно ближе. Хотя мы не можем (в AMG) отобразить 24-разрядный источник для субъективного сравнения с квантованным изображением, качество приближения может быть определено по формулам искажения. Данная формула искажения - это мера сходства квантованного изображения с оригиналом. Формула, которую мы будем использовать, является:

Мы пробуем минимизировать дистанцию с помощью изменения цветовой палитры. Другими словами, мы хотим приблизить 24-разрядное изображение с 8 или 9-разрядным с помощью минимизации суммы дистанций между соответствующими пикселями в оригинале и квантованном изображения. Это тяжелая задача оптимизации, которая не имеет быстрого решения.

МЫ ИСПОЛЬЗУЕМ СООТВЕТСТВУЮЩУЮ МЕРУ ИСКАЖЕНИЯ?

Качество изображения и сходство изображения - это самая тяжелая физиологическая и психологическая задача. Мы не будем пытаться делать никаких новых открытий в этой области. Вместо этого, мы будем использовать простую формулу расстояния для ускорения алгоритмов квантования. Полная оценка сходства изображения имела бы много составляющих, таких, как текстуру, продолжительность, контраст, пространственную частоту, цветной баланс, и деятельность. К счастью, можно достичь относительно хороших результатов с помощью пренебрежения большинством этих эффектов и сравнения только соответствия пикселей в оригинале и квантованных изображениях. Это подход, используемый здесь.

C. F. Hall [19] и другие достигли превосходного сжатия цветного изображения с использованием perceptual преобразовывающего кодирования. Путем преобразования в perceptual пространство, чрезмерные спектральные и пространственные данные сжимаются. Холл достиг хороших результатов даже при 1 бите на пиксель. К сожалению, эти результаты не пригодны к нашей проблеме квантования буфера изображения, потому что буферы изображения современного состояния не могут еще вычислять пространственные преобразования в реальном времени. Лучшее, что можно делать в пределах ограничений объединенной архитектуры буфера изображения - выбрать цветные ячейки квантования, основанные на модели искажения perceptual цветных отличий; никакие пространственные эффекты не уместны.

Какой вид искажений цвета мы ожидаем, когда сжимаем изображения? Когда большие полноцветные картинки квантируются, не возможно точно соответствовать каждому цвету, так что мы ожидаем эффект оконтуривания. Эффект оконтуривания может облегчаться дополнением цветного шума. Эксперименты с дополнением шума представлены во главе IV.

Мы можем сейчас продолжать перефразировать нашу проблему обработки изображений в математические термины. Пусть K - число цветов, к которым мы применяем квантирование. Попробуйте все возможные цветовые карты и выберите одну с наименьшим искажением, но это трудоемкое вычисление, которое требовало бы много компьютерного времени. Более удобно получить нашу цветовую карту от цветового распределения, квантированного изображения.

Распространение цветов в изображении аналогично распространению точек N в цветном кубе RGB. Цветной куб - это дискретная решетка, потому что цвета нашего исходного изображения имеют компоненты целого числа между 0 и 255. Поэтому мы имеем 256x256x256 цветов в решетке, или в итоге 16 миллионов цветов. Хотя число возможных цветов намного больше, чем число пикселей в изображении.

Понятно, что мы намереваемся генерировать различные цветовые карты для каждого изображения в зависимости от его цветного ряда. В одном предложении, это двухпроходное, адаптивное заостренное квантование.


Библиотека Английская версия