Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

Печать RGB-цветных изображений на CMY-цветных струйных принтерах

#12 декабрь 2004

О

О.П. Архипов, канд. техн. наук,

З.П. Зыкова, канд. физ.-мат. наук, Орловский филиал ИПИ РАН

 

Печать RGB-цветных изображений на CMY-цветных струйных принтерах

 

Рассмотрены вопросы совершенствования печати графических изображений на печатающих устройствах массового применения. Предлагается новый алгоритм печати RGB-цветных изображений на CMY-цветных струйных принтерах, основанный на алгоритме цветосинтеза Random Dots Color, позволяющий обеспечить многовариантный вывод графических изображений на печать в целях получения наилучшего оттиска на конкретном печатающем, устройстве при имеющихся чернилах и бумаге.

 

Рассмотрим задачу печати RGB-цветных растровых графических изображений на CMY-цветных струйных принтерах, поддерживающих точечный вывод. Предположим, что имеется совокупность пикселей, каждому из которых приписана тройка чисел, характеризующих долю каждого из RGB-цветов, при совмещении которых формируется данный пиксель. Поскольку обычно тона RGB-цветов характеризуются числом долей, равных 1/255, без ограничения общности можно характеризовать значение тона неотрицательным вещественным числом, не превосходящим 1. Полное изображение, таким образом, описывается тремя прямоугольными матрицами Аk, k = 1, 2, 3, размера m x n с вещественными компонентами аку, lin, 1≤jn, 0≤aki≤1, которые выражают значение тона (т.е. долю соответствующего полного цвета) в пикселе:

Задача технологии печати состоит в получении образа каждого пикселя на бумаге. Принтер наносит на бумагу чернильные точки в соответствии с определенным, доступным ему, разрешением. Управление плотностью расположения чернильных капель в любом фрагменте изображения - единственный инструмент технологии печати для рассматриваемого класса принтеров.

Результат работы принтера можно описать с помощью трех прямоугольных матриц, каждая из которых соответствует одному из основных цветов палитры CMY (Cyan, Magenta, Yellow). Значениями компонентов таких матриц является одно из двух значений: 0 или 1. Чернильная точка наносится на бумагу, если значение соответствующего компонента соответствующей матрицы равно 1. Для определенности рассмотрим матрицы Вk, k = 1, 2, 3, размера m x n с компонентами соответственно bkij, lim, ljn, bkij {0, 1}:

Разделим процесс преобразования матриц Аk в Вk, k = 1, 2, 3, на две части:

·        преобразование RGB-матриц Аk в CMY-матрицы Сk, k = 1, 2, 3, вещественные неотрицальные компоненты которых кодируют цвет пикселя в долях основных цветов CMY (в частности, в долях, равных 1/255, что позволяет использовать для хранения кодировки одного тона основного цвета только один байт);

·        преобразование CMY-матриц Сk в CMY-матрицы Вk, k = 1, 2, 3, компоненты которых принимают лишь одно из двух значений: 0 или 1.

Известно, что

В таких условиях естественно определить компоненты матриц Сk, k = 1, 2, 3, следующими соотношениями:

Без ограничения общности и для обеспечения свободы манипулирования палитрой при цветосинтезе будем полагать:

где βi = 1, i = 1, 2, 3.

Приведенный выше частный случай получается, очевидно, при

Определим теперь процедуру преобразования матриц Сk в матрицы Вk, k = 1,2,3, на основе технологии цветосинтеза Random Dots Color, которая в свою очередь основана на применении вероятностного алгоритма полутонирования Random Dot (вариант частотно-модулированного растрирования), состоящего в том, что компонент bij матрицы Вk полагается равным 1 с вероятностью Pkij = ckij.

Рассмотрим два способа реализации Random Dots Color. В первом из них чернильные капли разных цветов распределяются независимо друг от друга:

1) определяется случайное число rkij из отрезка [0, 1];

2) определяется bkij:

При втором способе чернильные капли разных цветов распределяются группами:

1) если cmin, ij > 0, то

1.1) определяется случайное число rij из отрезка [0, 1];

1.2) определяется bkij;:

2) если bkij = 1, т.е. max {c1ij, c2ij, c3ij} = 0, где ckij = ckijcmin ij то процедура для данных i и j заканчивается, и переходят к определению следующих компонентов матриц;

3) если существуют k1 и k2 такие, что c'min ij = min (ck1ij, ck2ij)>0, то

3.1) определяется случайное число rij из отрезка [0 ,1];

3.2) определяется bkij для k {k1, k2}:

4) если c'k3ij = max (ck1ijcmin ij, ck1ijcmin ij) = 0 или bkij = 1, то процедура для данных i и j закончена и переходят к определению следующих компонентов матриц;

5) если же с'k3ij > 0, то

5.1) определяется случайное число rij из отрезка [0, 1];

5.2) определяется bkij для k = k3:

При печати графических изображений важно обеспечить возможность избирательной коррекции цвета (возможность менять интенсивность того или иного основного цвета), например [1], "увеличить количество желтой краски, которое использует принтер при печати зеленого цвета, или уменьшить количество голубой, использующейся для печати красного".

В технологии Random Dots Color возможна коррекция любого из цветов R, G, В, С, М, Y, К, если они только используются при печати в качестве основных. Пусть, например, совокупность тонов корректируемого цвета составляет интервал [c1, c2]. Пусть с1 < с2.

Для преобразования [c1, c2] => [q1; q2] полагаем

Теперь, определяя bij равным 1 с вероятностью рij = min(l, max (0, qij)), мы отобразим совокупность тонов [c1, с2] на новый интервал значений тонов [p1, p2] = [q1, q2] ∩ [0, 1], т.е. обеспечим желаемую коррекцию цвета при печати графического изображения.

Известно, что при печати графических изображений в ряде случаев качество печати повышается при использовании метода "дуплекс" [2] (наложение изображений, выполненных с разным контрастом). В технологии Random Dots Color идея метода "дуплекс" реализуется для каждого основного цвета. Достаточно рассмотреть отображение [с1, с2] на два различных интервала: [q1, q2] и [q'1, q2]- Теперь, определяя bij равным 1 с вероятностью рij = min (1, max (0, Θ q'ij + (1 - Θ) q'ij)), 0 ≤ Θ ≤ 1, мы решаем поставленную задачу. Фактически достаточно ввести два вещественных параметра: коэффициент растяжения/сжатия и сдвиг - этого достаточно для определения нового интервала изменения тонов, обеспечивающего применение метода "дуплекс".

Рассмотрим теперь вопрос о масштабировании графических изображений. Известно [3], что в обычных, часто встречающихся на практике ситуациях (формат бумаги =А4, разрешение сканера и принтера =300 точек на дюйм), требуется масштабирование в 3-4 раза. Следовательно, без ограничения общности можно рассмотреть коэффициенты масштабирования по горизонтали Н и вертикали V в интервалах Н = {1, 2,..., 8}, V = {1, 2,..., 8}, т.е. необходимо максимально заполнить ячейки следующей таблицы по четырем уже известным значениям:

ckij = mk00

mk01

ckij+1=mk0H

mk10

mk11

mk1H

cki + 1j = mkV0

mkV1

cki+1j+1=mkVH

 

Задача может быть решена многими способами выбором подходящей интерполяционной формулы.

Например, выбирая формулу Бесселя, построим функции:

Теперь получаем для h = 0, 1,..., Н, v = 0, 1,..., V:

Если объем вычислений по этой весьма простой формуле покажется чрезмерным, то его можно сократить, уменьшив число точек, в которых вычисляются значения. Различными способами можно разбить множество точек на несколько подмножеств и в пределах каждого подмножества полагать соответствующие компоненты постоянными. Например, введем в рассмотрение подматрицы заполнения интерполяционных матриц, внутри которых значения тонов постоянны и определяются по формуле Бесселя для геометрических центров подматриц. Такой метод интерполяции в ряде случаев может привести к существенному улучшению качества печати (наложение "тонких" и "грубых" растров) при формировании цветных изображений. Заметим, что применение инструмента матриц заполнения влияет на повышение контраста при выделении границ. Если в исходном случае пространство между известными пикселями как бы "размывается" (значение цвета меняется непрерывно), что хорошо при масштабировании фотографических изображений, то при использовании матриц заполнения произойдет скачкообразное изменение значений цвета при переходе от одной матрицы заполнения к другой, что позволяет получить четкие границы изображения. К аналогичным результатам приводит метод разбиения масштабируемого прямоугольника на четыре меньших с помощью вертикальной и горизонтальной границ заполнения. Внутри каждого из полученных прямоугольников значения тонов полагаются равными тому известному значению тона, который также принадлежит тому же прямоугольнику.

Получив двоичные матрицы Вk, k = 1, 2, 3, - код оттиска, можно воспользоваться PCL - языком управления принтером и, составив необходимую последовательность команд и переслав их на принтер, получить оттиск в соответствии с запланированным дизайном, независимо от того, какую технологию печати предусмотрели разработчики принтера. Если цель пользователя состоит в печати только одного графического изображения, то использование языка PCL представляется наиболее целесообразным. Иначе обстоит дело, если пользователь хотел бы напечатать сложную страницу, лишь фрагмент которой должен быть напечатан по технологии, отлич­ной от фирменной технологии принтера. Естественным в такой ситуации является желание воспользоваться тем сервисом, который предоставляют привычные программные продукты.

Для определенности представим себя на месте пользователя Microsoft Word 6.0, хотя и в других случаях действия аналогичны. Предположим, что для того, чтобы добавить цветное растровое графическое изображение из файла pic. bmp, редактируется страница, уже содержащая фрагменты текстовой и графической информации. Выбрав в меню опцию Вставка/Рисунок и указав файл pic. bmp, пользователь импортирует графическое изображение в нужное место страницы. Если теперь напечатать страницу, то изображение из pic. bmp наряду со всеми другими фрагментами страницы будет преобразовано и напечатано в соответствии с фирменной технологией принтера.

Для дальнейшего важно отметить следующий "вырожденный" случай. Пусть одному пикселю изображения из pic. bmp должен соответствовать один пиксель оттиска, и каждому RGB-пикселю соответствует тройка значений тонов лишь двух типов: 0 и 255. Очевидно, что какая бы технология печати (полутонирование, цветосинтез) не использовалась, при печати на CMY-принтере битовые карты оттиска, реализуемые драйвером принтера, однозначны. А именно, возможны следующие восемь вариантов:

1) RGB = (0, 0, 0) <=> CMY = (1, 1, 1);

2) RGB = (255, 0 0) <=> CMY = (0, 1, 1);

3) RGB = (0, 255, 0) <=> CMY = (1, 0, 1);

4) RGB = (0, 0, 255) <=> CMY = (1, 1, 0);

5) RGB = (255, 255, 0) <=> CMY = (0, 0, 1);

6) RGB = (255, 0, 255) <=> CMY = (0, 1, 0);

7) RGB = (0, 255, 255) <=> CMY = (1, 0, 0);

8) RGB = (255, 255, 255) <=> CMY = (0, 0, 0).

На основе битовых карт Bk, k = 1, 2, 3, создадим 16-цветный BMP-файл (назовем его picnew. bmp) со следующими свойствами:

·        палитра содержит перечисленные восемь цветов первыми по порядку (0, 0, 0), (255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 0, 255), (0, 255, 255), (255, 255, 255);

·        указаны фактические значения параметров: bi-Width - ширина битовой карты в пикселях, biHight -высота битовой карты в пикселях, biXPels - разрешение принтера по горизонтали, biYPels - разрешение принте­ра по вертикали.

Если теперь в редактируемую страницу вместо изображения из файла pic. bmp пользователь импортирует графическое изображение picnew. bmp, то при печати будут точно воспроизведены пользовательские битовые карты, т.е. для выбранного фрагмента изображения будет реализована пользовательская технология печати.

 

Список литературы

1. Фрейзер Б. Adobe Photoshop 3.0 — многослойность, точность, гибкость // PC/Magazine. 1995. № 4. С. 82-84.

2. Рязанов И.М. Офсетная печать. М.: Книга, 1983. С. 33-34.

3. Спенбауэр С. Сканируем без потери качества // Мир ПК. 1995. № 1.С. 10-22.

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ №3. 1997.

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ.

Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2020 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)